summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.editorconfig96
-rw-r--r--.github/CODEOWNERS40
-rw-r--r--.github/stale.yml43
-rw-r--r--.github/workflows/pending-clear.yml30
-rw-r--r--.github/workflows/pending-set.yml29
-rw-r--r--.gitignore1
-rw-r--r--README.md1
-rw-r--r--doc/Makefile2
-rw-r--r--doc/builders/images/dockertools.xml23
-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/agda.section.md106
-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.xml28
-rw-r--r--doc/languages-frameworks/index.xml3
-rw-r--r--doc/languages-frameworks/lua.section.md252
-rw-r--r--doc/languages-frameworks/lua.xml36
-rw-r--r--doc/languages-frameworks/node.section.md19
-rw-r--r--doc/languages-frameworks/perl.xml318
-rw-r--r--doc/languages-frameworks/python.section.md540
-rw-r--r--doc/languages-frameworks/rust.section.md85
-rw-r--r--doc/old/cross.txt4
-rw-r--r--doc/stdenv/meta.xml6
-rw-r--r--doc/stdenv/stdenv.xml215
-rw-r--r--doc/using/configuration.xml12
-rw-r--r--doc/using/overlays.xml29
-rw-r--r--flake.nix19
-rw-r--r--lib/attrsets.nix3
-rw-r--r--lib/default.nix4
-rw-r--r--lib/generators.nix6
-rw-r--r--lib/kernel.nix8
-rw-r--r--lib/licenses.nix66
-rw-r--r--lib/minver.nix2
-rw-r--r--lib/modules.nix164
-rw-r--r--lib/sources.nix10
-rw-r--r--lib/strings.nix16
-rw-r--r--lib/systems/default.nix2
-rw-r--r--lib/systems/doubles.nix5
-rw-r--r--lib/systems/examples.nix9
-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.nix6
-rw-r--r--maintainers/maintainer-list.nix815
-rwxr-xr-xmaintainers/scripts/debian-patches.sh2
-rw-r--r--maintainers/scripts/luarocks-packages.csv10
-rwxr-xr-xmaintainers/scripts/rebuild-amount.sh3
-rwxr-xr-xmaintainers/scripts/update.nix87
-rw-r--r--maintainers/team-list.nix38
-rw-r--r--nixos/doc/manual/administration/boot-problems.xml42
-rw-r--r--nixos/doc/manual/configuration/configuration.xml1
-rw-r--r--nixos/doc/manual/configuration/file-systems.xml11
-rw-r--r--nixos/doc/manual/configuration/gpu-accel.xml258
-rw-r--r--nixos/doc/manual/configuration/profiles/demo.xml3
-rw-r--r--nixos/doc/manual/configuration/x-windows.xml46
-rw-r--r--nixos/doc/manual/development/freeform-modules.xml68
-rw-r--r--nixos/doc/manual/development/running-nixos-tests-interactively.xml9
-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.xml22
-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.xml6
-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-rebuild.xml2
-rw-r--r--nixos/doc/manual/release-notes/rl-2003.xml2
-rw-r--r--nixos/doc/manual/release-notes/rl-2009.xml618
-rw-r--r--nixos/lib/eval-config.nix4
-rw-r--r--nixos/lib/make-disk-image.nix85
-rw-r--r--nixos/lib/make-ext4-fs.nix42
-rw-r--r--nixos/lib/make-iso9660-image.nix8
-rw-r--r--nixos/lib/make-iso9660-image.sh23
-rw-r--r--nixos/lib/make-options-doc/default.nix6
-rw-r--r--nixos/lib/qemu-flags.nix11
-rw-r--r--nixos/lib/test-driver/Logger.pm8
-rw-r--r--nixos/lib/test-driver/test-driver.py60
-rw-r--r--nixos/lib/testing-python.nix8
-rw-r--r--nixos/lib/testing.nix6
-rw-r--r--nixos/lib/testing/jquery-ui.nix24
-rw-r--r--nixos/lib/testing/jquery.nix36
-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.nix103
-rw-r--r--nixos/modules/config/i18n.nix3
-rw-r--r--nixos/modules/config/ldap.nix4
-rw-r--r--nixos/modules/config/networking.nix33
-rw-r--r--nixos/modules/config/no-x-libs.nix2
-rw-r--r--nixos/modules/config/nsswitch.nix48
-rw-r--r--nixos/modules/config/power-management.nix2
-rw-r--r--nixos/modules/config/resolvconf.nix2
-rw-r--r--nixos/modules/config/system-path.nix10
-rw-r--r--nixos/modules/config/update-users-groups.pl55
-rw-r--r--nixos/modules/config/users-groups.nix113
-rw-r--r--nixos/modules/config/zram.nix2
-rw-r--r--nixos/modules/hardware/bladeRF.nix2
-rw-r--r--nixos/modules/hardware/ckb-next.nix1
-rw-r--r--nixos/modules/hardware/device-tree.nix13
-rw-r--r--nixos/modules/hardware/logitech.nix94
-rw-r--r--nixos/modules/hardware/onlykey.nix2
-rw-r--r--nixos/modules/hardware/printers.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.nix11
-rw-r--r--nixos/modules/installer/cd-dvd/sd-image-aarch64.nix8
-rw-r--r--nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix8
-rw-r--r--nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix8
-rw-r--r--nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix7
-rw-r--r--nixos/modules/installer/cd-dvd/sd-image.nix26
-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.pl5
-rw-r--r--nixos/modules/installer/tools/nixos-install.sh13
-rw-r--r--nixos/modules/installer/tools/nixos-rebuild.sh4
-rw-r--r--nixos/modules/installer/tools/nixos-version.sh2
-rw-r--r--nixos/modules/installer/tools/tools.nix5
-rw-r--r--nixos/modules/misc/documentation.nix38
-rw-r--r--nixos/modules/misc/ids.nix12
-rw-r--r--nixos/modules/module-list.nix44
-rw-r--r--nixos/modules/profiles/base.nix1
-rw-r--r--nixos/modules/profiles/demo.nix10
-rw-r--r--nixos/modules/programs/autojump.nix4
-rw-r--r--nixos/modules/programs/bash/bash.nix3
-rw-r--r--nixos/modules/programs/ccache.nix2
-rw-r--r--nixos/modules/programs/chromium.nix19
-rw-r--r--nixos/modules/programs/dconf.nix37
-rw-r--r--nixos/modules/programs/fish.nix3
-rw-r--r--nixos/modules/programs/freetds.nix4
-rw-r--r--nixos/modules/programs/gnupg.nix3
-rw-r--r--nixos/modules/programs/hamster.nix15
-rw-r--r--nixos/modules/programs/shadow.nix5
-rw-r--r--nixos/modules/programs/ssh.nix30
-rw-r--r--nixos/modules/programs/ssmtp.nix77
-rw-r--r--nixos/modules/programs/steam.nix25
-rw-r--r--nixos/modules/programs/zsh/zsh.nix12
-rw-r--r--nixos/modules/rename.nix16
-rw-r--r--nixos/modules/security/acme.nix60
-rw-r--r--nixos/modules/security/google_oslogin.nix1
-rw-r--r--nixos/modules/security/pam.nix51
-rw-r--r--nixos/modules/security/sudo.nix4
-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.nix4
-rw-r--r--nixos/modules/services/audio/mpd.nix14
-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/restic.nix66
-rw-r--r--nixos/modules/services/backup/zfs-replication.nix2
-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/master.nix32
-rw-r--r--nixos/modules/services/continuous-integration/buildbot/worker.nix11
-rw-r--r--nixos/modules/services/continuous-integration/gitlab-runner.nix93
-rw-r--r--nixos/modules/services/databases/mysql.nix307
-rw-r--r--nixos/modules/services/databases/openldap.nix32
-rw-r--r--nixos/modules/services/databases/postgresql.nix101
-rw-r--r--nixos/modules/services/databases/redis.nix5
-rw-r--r--nixos/modules/services/databases/rethinkdb.nix5
-rw-r--r--nixos/modules/services/databases/riak-cs.nix2
-rw-r--r--nixos/modules/services/desktops/deepin/deepin.nix2
-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/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/editors/emacs.nix47
-rw-r--r--nixos/modules/services/editors/emacs.xml12
-rw-r--r--nixos/modules/services/games/minetest-server.nix16
-rw-r--r--nixos/modules/services/games/teeworlds.nix119
-rw-r--r--nixos/modules/services/games/terraria.nix2
-rw-r--r--nixos/modules/services/hardware/fwupd.nix35
-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/u2f.nix23
-rw-r--r--nixos/modules/services/hardware/udev.nix4
-rw-r--r--nixos/modules/services/hardware/undervolt.nix100
-rw-r--r--nixos/modules/services/logging/logrotate.nix151
-rw-r--r--nixos/modules/services/logging/logstash.nix6
-rw-r--r--nixos/modules/services/mail/dovecot.nix38
-rw-r--r--nixos/modules/services/mail/mailman.nix455
-rw-r--r--nixos/modules/services/mail/mailman.xml59
-rw-r--r--nixos/modules/services/mail/opensmtpd.nix23
-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/bazarr.nix76
-rw-r--r--nixos/modules/services/misc/docker-registry.nix2
-rw-r--r--nixos/modules/services/misc/freeswitch.nix6
-rw-r--r--nixos/modules/services/misc/gitea.nix144
-rw-r--r--nixos/modules/services/misc/gitlab.nix73
-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/home-assistant.nix11
-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-appservice-discord.nix162
-rw-r--r--nixos/modules/services/misc/matrix-synapse.nix15
-rw-r--r--nixos/modules/services/misc/matrix-synapse.xml38
-rw-r--r--nixos/modules/services/misc/mautrix-telegram.nix163
-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.nix170
-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.nix4
-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.nix10
-rw-r--r--nixos/modules/services/misc/tzupdate.nix4
-rw-r--r--nixos/modules/services/misc/zigbee2mqtt.nix98
-rw-r--r--nixos/modules/services/misc/zoneminder.nix8
-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.nix14
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix38
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/keylight.nix19
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/lnd.nix46
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix33
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/redis.nix19
-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/tuptime.nix9
-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/ipfs.nix192
-rw-r--r--nixos/modules/services/network-filesystems/samba.nix1
-rw-r--r--nixos/modules/services/networking/3proxy.nix2
-rw-r--r--nixos/modules/services/networking/avahi-daemon.nix4
-rw-r--r--nixos/modules/services/networking/bitcoind.nix206
-rw-r--r--nixos/modules/services/networking/blockbook-frontend.nix275
-rw-r--r--nixos/modules/services/networking/corerad.nix48
-rw-r--r--nixos/modules/services/networking/dhcpcd.nix4
-rw-r--r--nixos/modules/services/networking/dhcpd.nix12
-rw-r--r--nixos/modules/services/networking/dnschain.nix184
-rw-r--r--nixos/modules/services/networking/dnscrypt-proxy2.nix1
-rw-r--r--nixos/modules/services/networking/dnscrypt-wrapper.nix94
-rw-r--r--nixos/modules/services/networking/ergo.nix141
-rw-r--r--nixos/modules/services/networking/gateone.nix2
-rw-r--r--nixos/modules/services/networking/go-neb.nix53
-rw-r--r--nixos/modules/services/networking/haproxy.nix32
-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/mstpd.nix2
-rw-r--r--nixos/modules/services/networking/namecoind.nix5
-rw-r--r--nixos/modules/services/networking/ncdns.nix278
-rw-r--r--nixos/modules/services/networking/networkmanager.nix7
-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/nsd.nix11
-rw-r--r--nixos/modules/services/networking/onedrive.nix72
-rw-r--r--nixos/modules/services/networking/onedrive.xml34
-rw-r--r--nixos/modules/services/networking/prosody.nix2
-rw-r--r--nixos/modules/services/networking/radicale.nix11
-rw-r--r--nixos/modules/services/networking/resilio.nix20
-rw-r--r--nixos/modules/services/networking/skydns.nix2
-rw-r--r--nixos/modules/services/networking/sslh.nix18
-rw-r--r--nixos/modules/services/networking/supplicant.nix26
-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/v2ray.nix8
-rw-r--r--nixos/modules/services/networking/vsftpd.nix3
-rw-r--r--nixos/modules/services/networking/wasabibackend.nix158
-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.nix6
-rw-r--r--nixos/modules/services/networking/xandikos.nix4
-rw-r--r--nixos/modules/services/networking/yggdrasil.nix140
-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/fprintd.nix1
-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.nix1
-rw-r--r--nixos/modules/services/security/privacyidea.nix278
-rw-r--r--nixos/modules/services/security/tor.nix2
-rw-r--r--nixos/modules/services/security/usbguard.nix143
-rw-r--r--nixos/modules/services/security/yubikey-agent.nix60
-rw-r--r--nixos/modules/services/system/cgmanager.nix26
-rw-r--r--nixos/modules/services/system/earlyoom.nix24
-rw-r--r--nixos/modules/services/system/nscd.conf2
-rw-r--r--nixos/modules/services/torrent/rtorrent.nix209
-rw-r--r--nixos/modules/services/torrent/transmission.nix452
-rw-r--r--nixos/modules/services/video/mirakurun.nix165
-rw-r--r--nixos/modules/services/wayland/cage.nix2
-rw-r--r--nixos/modules/services/web-apps/codimd.nix4
-rw-r--r--nixos/modules/services/web-apps/convos.nix72
-rw-r--r--nixos/modules/services/web-apps/dokuwiki.nix28
-rw-r--r--nixos/modules/services/web-apps/engelsystem.nix186
-rw-r--r--nixos/modules/services/web-apps/gerrit.nix21
-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.nix279
-rw-r--r--nixos/modules/services/web-apps/nextcloud.xml67
-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.nix272
-rw-r--r--nixos/modules/services/web-apps/trilium.nix2
-rw-r--r--nixos/modules/services/web-apps/tt-rss.nix7
-rw-r--r--nixos/modules/services/web-servers/apache-httpd/default.nix32
-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.nix45
-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/web-servers/uwsgi.nix20
-rw-r--r--nixos/modules/services/x11/colord.nix2
-rw-r--r--nixos/modules/services/x11/desktop-managers/cde.nix17
-rw-r--r--nixos/modules/services/x11/desktop-managers/default.nix2
-rw-r--r--nixos/modules/services/x11/desktop-managers/enlightenment.nix39
-rw-r--r--nixos/modules/services/x11/desktop-managers/gnome3.nix6
-rw-r--r--nixos/modules/services/x11/desktop-managers/lumina.nix9
-rw-r--r--nixos/modules/services/x11/desktop-managers/maxx.nix31
-rw-r--r--nixos/modules/services/x11/desktop-managers/pantheon.nix1
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix21
-rw-r--r--nixos/modules/services/x11/display-managers/default.nix42
-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.nix74
-rw-r--r--nixos/modules/services/x11/display-managers/sddm.nix67
-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/berry.nix25
-rw-r--r--nixos/modules/services/x11/window-managers/default.nix4
-rw-r--r--nixos/modules/services/x11/window-managers/lwm.nix25
-rw-r--r--nixos/modules/services/x11/window-managers/qtile.nix2
-rw-r--r--nixos/modules/services/x11/window-managers/smallwm.nix25
-rw-r--r--nixos/modules/services/x11/window-managers/xmonad.nix11
-rw-r--r--nixos/modules/services/x11/window-managers/yeahwm.nix25
-rw-r--r--nixos/modules/services/x11/xautolock.nix2
-rw-r--r--nixos/modules/services/x11/xserver.nix2
-rw-r--r--nixos/modules/system/activation/top-level.nix19
-rw-r--r--nixos/modules/system/boot/binfmt.nix9
-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.nix7
-rw-r--r--nixos/modules/system/boot/loader/generations-dir/generations-dir-builder.sh2
-rw-r--r--nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix29
-rw-r--r--nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh17
-rw-r--r--nixos/modules/system/boot/loader/grub/grub.nix143
-rw-r--r--nixos/modules/system/boot/loader/grub/install-grub.pl195
-rw-r--r--nixos/modules/system/boot/loader/init-script/init-script-builder.sh2
-rw-r--r--nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.sh5
-rw-r--r--nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py20
-rw-r--r--nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix4
-rw-r--r--nixos/modules/system/boot/luksroot.nix34
-rw-r--r--nixos/modules/system/boot/modprobe.nix2
-rw-r--r--nixos/modules/system/boot/networkd.nix1502
-rw-r--r--nixos/modules/system/boot/plymouth.nix3
-rw-r--r--nixos/modules/system/boot/resolved.nix1
-rw-r--r--nixos/modules/system/boot/stage-1-init.sh22
-rw-r--r--nixos/modules/system/boot/stage-1.nix28
-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.nix173
-rw-r--r--nixos/modules/system/boot/timesyncd.nix1
-rw-r--r--nixos/modules/system/boot/tmp.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.nix19
-rw-r--r--nixos/modules/tasks/filesystems/btrfs.nix5
-rw-r--r--nixos/modules/tasks/filesystems/zfs.nix62
-rw-r--r--nixos/modules/tasks/lvm.nix67
-rw-r--r--nixos/modules/tasks/network-interfaces-scripted.nix83
-rw-r--r--nixos/modules/tasks/network-interfaces.nix26
-rw-r--r--nixos/modules/testing/test-instrumentation.nix18
-rw-r--r--nixos/modules/virtualisation/azure-agent.nix2
-rw-r--r--nixos/modules/virtualisation/azure-image.nix2
-rw-r--r--nixos/modules/virtualisation/containers.nix63
-rw-r--r--nixos/modules/virtualisation/cri-o.nix79
-rw-r--r--nixos/modules/virtualisation/docker-preloader.nix134
-rw-r--r--nixos/modules/virtualisation/docker.nix1
-rw-r--r--nixos/modules/virtualisation/hyperv-image.nix1
-rw-r--r--nixos/modules/virtualisation/kvmgt.nix52
-rw-r--r--nixos/modules/virtualisation/libvirtd.nix21
-rw-r--r--nixos/modules/virtualisation/lxd.nix17
-rw-r--r--nixos/modules/virtualisation/podman.nix28
-rw-r--r--nixos/modules/virtualisation/qemu-vm.nix172
-rw-r--r--nixos/modules/virtualisation/railcar.nix12
-rw-r--r--nixos/modules/virtualisation/rkt.nix64
-rw-r--r--nixos/modules/virtualisation/virtualbox-guest.nix2
-rw-r--r--nixos/modules/virtualisation/virtualbox-image.nix66
-rw-r--r--nixos/modules/virtualisation/vmware-image.nix90
-rw-r--r--nixos/release.nix5
-rw-r--r--nixos/tests/acme.nix62
-rw-r--r--nixos/tests/agda.nix41
-rw-r--r--nixos/tests/all-tests.nix52
-rw-r--r--nixos/tests/bazarr.nix26
-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.nix28
-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/common/auto.nix4
-rw-r--r--nixos/tests/common/ec2.nix58
-rw-r--r--nixos/tests/consul.nix136
-rw-r--r--nixos/tests/containers-portforward.nix2
-rw-r--r--nixos/tests/containers-reloadable.nix4
-rw-r--r--nixos/tests/convos.nix30
-rw-r--r--nixos/tests/corerad.nix37
-rw-r--r--nixos/tests/cri-o.nix19
-rw-r--r--nixos/tests/dnscrypt-wrapper/default.nix71
-rw-r--r--nixos/tests/dnscrypt-wrapper/public.key1
-rw-r--r--nixos/tests/dnscrypt-wrapper/secret.key1
-rw-r--r--nixos/tests/docker-preloader.nix27
-rw-r--r--nixos/tests/docker-tools.nix89
-rw-r--r--nixos/tests/docker.nix4
-rw-r--r--nixos/tests/dokuwiki.nix24
-rw-r--r--nixos/tests/ec2.nix140
-rw-r--r--nixos/tests/engelsystem.nix41
-rw-r--r--nixos/tests/enlightenment.nix16
-rw-r--r--nixos/tests/ergo.nix18
-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/go-neb.nix44
-rw-r--r--nixos/tests/graphite.nix11
-rw-r--r--nixos/tests/grub.nix60
-rw-r--r--nixos/tests/haproxy.nix8
-rw-r--r--nixos/tests/hardened.nix114
-rw-r--r--nixos/tests/hocker-fetchdocker/default.nix9
-rw-r--r--nixos/tests/home-assistant.nix134
-rw-r--r--nixos/tests/hostname.nix66
-rw-r--r--nixos/tests/hydra/common.nix1
-rw-r--r--nixos/tests/hydra/db-migration.nix6
-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.nix23
-rw-r--r--nixos/tests/ipfs.nix18
-rw-r--r--nixos/tests/jitsi-meet.nix55
-rw-r--r--nixos/tests/kubernetes/base.nix9
-rw-r--r--nixos/tests/kubernetes/dns.nix74
-rw-r--r--nixos/tests/kubernetes/rbac.nix86
-rw-r--r--nixos/tests/leaps.nix2
-rw-r--r--nixos/tests/lorri/default.nix2
-rw-r--r--nixos/tests/lxd-nftables.nix50
-rw-r--r--nixos/tests/lxd.nix135
-rw-r--r--nixos/tests/mathics.nix20
-rw-r--r--nixos/tests/matrix-synapse.nix4
-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/mariadb-galera-mariabackup.nix32
-rw-r--r--nixos/tests/mysql/mariadb-galera-rsync.nix32
-rw-r--r--nixos/tests/mysql/mysql-replication.nix12
-rw-r--r--nixos/tests/mysql/mysql.nix114
-rw-r--r--nixos/tests/ncdns.nix77
-rw-r--r--nixos/tests/networking.nix21
-rw-r--r--nixos/tests/nextcloud/basic.nix27
-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/nginx-pubhtml.nix1
-rw-r--r--nixos/tests/nginx-sandbox.nix66
-rw-r--r--nixos/tests/nginx-variants.nix33
-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.nix33
-rw-r--r--nixos/tests/postfix-raise-smtpd-tls-security-level.nix44
-rw-r--r--nixos/tests/postfix.nix76
-rw-r--r--nixos/tests/postgresql-wal-receiver.nix4
-rw-r--r--nixos/tests/privacyidea.nix36
-rw-r--r--nixos/tests/prometheus-exporters.nix117
-rw-r--r--nixos/tests/prometheus.nix7
-rw-r--r--nixos/tests/pt2-clone.nix35
-rw-r--r--nixos/tests/qboot.nix13
-rw-r--r--nixos/tests/radicale.nix28
-rw-r--r--nixos/tests/restic.nix55
-rw-r--r--nixos/tests/sddm.nix4
-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/sogo.nix58
-rw-r--r--nixos/tests/sslh.nix83
-rw-r--r--nixos/tests/sudo.nix2
-rw-r--r--nixos/tests/syncthing-init.nix3
-rw-r--r--nixos/tests/syncthing.nix65
-rw-r--r--nixos/tests/systemd-binfmt.nix24
-rw-r--r--nixos/tests/systemd-boot.nix89
-rw-r--r--nixos/tests/systemd-networkd-vrf.nix24
-rw-r--r--nixos/tests/systemd.nix52
-rw-r--r--nixos/tests/taskserver.nix310
-rw-r--r--nixos/tests/teeworlds.nix55
-rw-r--r--nixos/tests/tiddlywiki.nix2
-rw-r--r--nixos/tests/transmission.nix2
-rw-r--r--nixos/tests/trezord.nix5
-rw-r--r--nixos/tests/trickster.nix6
-rw-r--r--nixos/tests/virtualbox.nix1
-rw-r--r--nixos/tests/wasabibackend.nix38
-rw-r--r--nixos/tests/web-servers/unit-php.nix14
-rw-r--r--nixos/tests/wireguard/basic.nix74
-rw-r--r--nixos/tests/wireguard/default.nix96
-rw-r--r--nixos/tests/wireguard/generated.nix5
-rw-r--r--nixos/tests/wireguard/namespaces.nix8
-rw-r--r--nixos/tests/wireguard/wg-quick.nix4
-rw-r--r--nixos/tests/xandikos.nix6
-rw-r--r--nixos/tests/xfce.nix4
-rw-r--r--nixos/tests/yggdrasil.nix43
-rw-r--r--nixos/tests/zfs.nix23
-rw-r--r--nixos/tests/zigbee2mqtt.nix19
-rw-r--r--nixos/tests/zoneminder.nix23
-rw-r--r--pkgs/applications/audio/a2jmidid/default.nix12
-rw-r--r--pkgs/applications/audio/adlplug/default.nix10
-rw-r--r--pkgs/applications/audio/aeolus/default.nix4
-rw-r--r--pkgs/applications/audio/amarok/default.nix14
-rw-r--r--pkgs/applications/audio/ardour/5.nix162
-rw-r--r--pkgs/applications/audio/ardour/as-flags.patch12
-rw-r--r--pkgs/applications/audio/ardour/default.nix124
-rw-r--r--pkgs/applications/audio/artyFX/default.nix7
-rw-r--r--pkgs/applications/audio/ashuffle/default.nix26
-rw-r--r--pkgs/applications/audio/asunder/default.nix4
-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.nix9
-rw-r--r--pkgs/applications/audio/autotalent/default.nix30
-rw-r--r--pkgs/applications/audio/bambootracker/default.nix72
-rw-r--r--pkgs/applications/audio/bchoppr/default.nix28
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix4
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix4
-rw-r--r--pkgs/applications/audio/bjumblr/default.nix28
-rw-r--r--pkgs/applications/audio/bschaffl/default.nix28
-rw-r--r--pkgs/applications/audio/bsequencer/default.nix4
-rw-r--r--pkgs/applications/audio/bshapr/default.nix4
-rw-r--r--pkgs/applications/audio/bslizr/default.nix4
-rw-r--r--pkgs/applications/audio/cantata/default.nix4
-rw-r--r--pkgs/applications/audio/carla/default.nix8
-rw-r--r--pkgs/applications/audio/cava/default.nix4
-rw-r--r--pkgs/applications/audio/clementine/clementine-spotify-blob-remove-from-build.patch21
-rw-r--r--pkgs/applications/audio/clementine/default.nix41
-rw-r--r--pkgs/applications/audio/csound/default.nix4
-rw-r--r--pkgs/applications/audio/deadbeef/default.nix10
-rw-r--r--pkgs/applications/audio/denemo/default.nix4
-rw-r--r--pkgs/applications/audio/dr14_tmeter/default.nix2
-rw-r--r--pkgs/applications/audio/dragonfly-reverb/default.nix4
-rw-r--r--pkgs/applications/audio/drumgizmo/default.nix12
-rw-r--r--pkgs/applications/audio/drumkv1/default.nix4
-rw-r--r--pkgs/applications/audio/eq10q/default.nix6
-rw-r--r--pkgs/applications/audio/faust/faust2.nix13
-rw-r--r--pkgs/applications/audio/faust/faust2jack.nix1
-rw-r--r--pkgs/applications/audio/faust/faustlive.nix22
-rw-r--r--pkgs/applications/audio/fdkaac/default.nix31
-rw-r--r--pkgs/applications/audio/flacon/default.nix29
-rw-r--r--pkgs/applications/audio/foo-yc20/default.nix8
-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/fverb/default.nix34
-rw-r--r--pkgs/applications/audio/geonkick/default.nix27
-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/goattracker/default.nix69
-rw-r--r--pkgs/applications/audio/gpodder/default.nix4
-rw-r--r--pkgs/applications/audio/gspeech/default.nix73
-rw-r--r--pkgs/applications/audio/guitarix/default.nix92
-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/industrializer/default.nix50
-rw-r--r--pkgs/applications/audio/infamousPlugins/default.nix8
-rw-r--r--pkgs/applications/audio/ir.lv2/default.nix7
-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.nix27
-rw-r--r--pkgs/applications/audio/kapitonov-plugins-pack/default.nix43
-rw-r--r--pkgs/applications/audio/kid3/default.nix8
-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.nix47
-rw-r--r--pkgs/applications/audio/lingot/default.nix2
-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/moc/default.nix4
-rw-r--r--pkgs/applications/audio/molot-lite/default.nix37
-rw-r--r--pkgs/applications/audio/monkeys-audio/default.nix2
-rw-r--r--pkgs/applications/audio/mopidy/default.nix6
-rw-r--r--pkgs/applications/audio/mopidy/gmusic.nix19
-rw-r--r--pkgs/applications/audio/mopidy/iris.nix4
-rw-r--r--pkgs/applications/audio/mopidy/mpris.nix27
-rw-r--r--pkgs/applications/audio/mopidy/somafm.nix26
-rw-r--r--pkgs/applications/audio/mopidy/tunein.nix28
-rw-r--r--pkgs/applications/audio/mopidy/youtube.nix24
-rw-r--r--pkgs/applications/audio/mp3blaster/default.nix16
-rw-r--r--pkgs/applications/audio/mpg123/default.nix4
-rw-r--r--pkgs/applications/audio/munt/default.nix8
-rw-r--r--pkgs/applications/audio/muse/default.nix4
-rw-r--r--pkgs/applications/audio/musescore/default.nix21
-rw-r--r--pkgs/applications/audio/musikcube/default.nix15
-rw-r--r--pkgs/applications/audio/musikcube/dont-strip.patch14
-rw-r--r--pkgs/applications/audio/ncspot/default.nix6
-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/pamixer/default.nix2
-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/pianobar/default.nix4
-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.nix100
-rw-r--r--pkgs/applications/audio/pt2-clone/default.nix9
-rw-r--r--pkgs/applications/audio/pulseaudio-modules-bt/default.nix15
-rw-r--r--pkgs/applications/audio/pulseaudio-modules-bt/fix-aac-defaults.patch15
-rw-r--r--pkgs/applications/audio/pulseeffects/default.nix6
-rw-r--r--pkgs/applications/audio/qmmp/default.nix8
-rw-r--r--pkgs/applications/audio/qtractor/default.nix4
-rw-r--r--pkgs/applications/audio/r128gain/default.nix4
-rw-r--r--pkgs/applications/audio/real_time_config_quick_scan/default.nix52
-rw-r--r--pkgs/applications/audio/reaper/default.nix8
-rw-r--r--pkgs/applications/audio/rhvoice/default.nix4
-rw-r--r--pkgs/applications/audio/rosegarden/default.nix4
-rw-r--r--pkgs/applications/audio/rubyripper/default.nix6
-rw-r--r--pkgs/applications/audio/schismtracker/default.nix8
-rw-r--r--pkgs/applications/audio/sfizz/default.nix10
-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.nix13
-rw-r--r--pkgs/applications/audio/snd/default.nix4
-rw-r--r--pkgs/applications/audio/sonic-pi/default.nix43
-rw-r--r--pkgs/applications/audio/sooperlooper/default.nix8
-rw-r--r--pkgs/applications/audio/sorcer/default.nix6
-rw-r--r--pkgs/applications/audio/sound-juicer/default.nix2
-rw-r--r--pkgs/applications/audio/soundtracker/default.nix14
-rw-r--r--pkgs/applications/audio/speech-denoiser/default.nix2
-rw-r--r--pkgs/applications/audio/spek/default.nix25
-rw-r--r--pkgs/applications/audio/spotify-tui/default.nix7
-rw-r--r--pkgs/applications/audio/squeezelite/default.nix4
-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/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/tuijam/default.nix46
-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/audio/yoshimi/default.nix16
-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-knots.nix41
-rw-r--r--pkgs/applications/blockchains/bitcoin-unlimited.nix6
-rw-r--r--pkgs/applications/blockchains/bitcoin.nix79
-rw-r--r--pkgs/applications/blockchains/btc1.nix2
-rw-r--r--pkgs/applications/blockchains/btcdeb/default.nix12
-rw-r--r--pkgs/applications/blockchains/cgminer/default.nix49
-rw-r--r--pkgs/applications/blockchains/clightning.nix4
-rw-r--r--pkgs/applications/blockchains/dashpay.nix1
-rw-r--r--pkgs/applications/blockchains/dcrd.nix34
-rw-r--r--pkgs/applications/blockchains/dcrwallet.nix43
-rw-r--r--pkgs/applications/blockchains/ergo/default.nix27
-rw-r--r--pkgs/applications/blockchains/go-ethereum.nix11
-rw-r--r--pkgs/applications/blockchains/ledger-live-desktop/default.nix4
-rw-r--r--pkgs/applications/blockchains/litecoin.nix4
-rw-r--r--pkgs/applications/blockchains/lnd.nix24
-rw-r--r--pkgs/applications/blockchains/mist.nix72
-rw-r--r--pkgs/applications/blockchains/monero-gui/default.nix16
-rw-r--r--pkgs/applications/blockchains/monero/default.nix13
-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/create_deps.sh98
-rw-r--r--pkgs/applications/blockchains/wasabibackend/default.nix100
-rw-r--r--pkgs/applications/blockchains/wasabibackend/deps.nix951
-rw-r--r--pkgs/applications/blockchains/wasabiwallet/default.nix32
-rw-r--r--pkgs/applications/blockchains/whirlpool-gui/default.nix104
-rw-r--r--pkgs/applications/blockchains/wownero.nix33
-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/apostrophe/default.nix4
-rw-r--r--pkgs/applications/editors/atom/default.nix41
-rw-r--r--pkgs/applications/editors/atom/env.nix3
-rw-r--r--pkgs/applications/editors/dit/default.nix4
-rw-r--r--pkgs/applications/editors/eclipse/build-eclipse.nix2
-rw-r--r--pkgs/applications/editors/eclipse/default.nix32
-rw-r--r--pkgs/applications/editors/eclipse/plugins.nix11
-rw-r--r--pkgs/applications/editors/ed/default.nix5
-rw-r--r--pkgs/applications/editors/emacs-modes/elpa-generated.nix388
-rw-r--r--pkgs/applications/editors/emacs-modes/elpa-packages.nix10
-rw-r--r--pkgs/applications/editors/emacs-modes/hol_light/default.nix29
-rw-r--r--pkgs/applications/editors/emacs-modes/libgenerated.nix6
-rw-r--r--pkgs/applications/editors/emacs-modes/manual-packages.nix5
-rw-r--r--pkgs/applications/editors/emacs-modes/melpa-packages.nix265
-rw-r--r--pkgs/applications/editors/emacs-modes/ocaml/default.nix32
-rw-r--r--pkgs/applications/editors/emacs-modes/org-generated.nix12
-rw-r--r--pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json14100
-rwxr-xr-xpkgs/applications/editors/emacs-modes/update-from-overlay8
-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)134
-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/glow/default.nix4
-rw-r--r--pkgs/applications/editors/gnome-builder/default.nix7
-rw-r--r--pkgs/applications/editors/gnome-latex/default.nix4
-rw-r--r--pkgs/applications/editors/hexdino/default.nix1
-rw-r--r--pkgs/applications/editors/jedit/default.nix4
-rw-r--r--pkgs/applications/editors/jetbrains/default.nix85
-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/default.nix1
-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/kdevelop5/kdev-php.nix4
-rw-r--r--pkgs/applications/editors/kdevelop5/kdev-python.nix4
-rw-r--r--pkgs/applications/editors/kdevelop5/kdevelop.nix4
-rw-r--r--pkgs/applications/editors/lite/default.nix58
-rw-r--r--pkgs/applications/editors/mg/default.nix2
-rw-r--r--pkgs/applications/editors/micro/default.nix22
-rw-r--r--pkgs/applications/editors/micro/deps.nix8
-rw-r--r--pkgs/applications/editors/nano/default.nix4
-rw-r--r--pkgs/applications/editors/neovim/default.nix28
-rw-r--r--pkgs/applications/editors/neovim/gnvim/default.nix12
-rw-r--r--pkgs/applications/editors/neovim/wrapper.nix118
-rw-r--r--pkgs/applications/editors/netbeans/default.nix6
-rw-r--r--pkgs/applications/editors/notepadqq/default.nix2
-rw-r--r--pkgs/applications/editors/nvi/default.nix1
-rw-r--r--pkgs/applications/editors/okteta/default.nix4
-rw-r--r--pkgs/applications/editors/quartus-prime/default.nix21
-rw-r--r--pkgs/applications/editors/quartus-prime/vsim.patch11
-rw-r--r--pkgs/applications/editors/quilter/default.nix8
-rw-r--r--pkgs/applications/editors/setzer/default.nix60
-rw-r--r--pkgs/applications/editors/sigil/default.nix17
-rw-r--r--pkgs/applications/editors/sublime/3/common.nix9
-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.nix11
-rw-r--r--pkgs/applications/editors/vis/default.nix4
-rw-r--r--pkgs/applications/editors/vscode/generic.nix4
-rwxr-xr-xpkgs/applications/editors/vscode/update.sh39
-rw-r--r--pkgs/applications/editors/vscode/vscode.nix6
-rw-r--r--pkgs/applications/editors/vscode/vscodium.nix8
-rw-r--r--pkgs/applications/editors/vscode/with-extensions.nix2
-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/grass/default.nix4
-rw-r--r--pkgs/applications/gis/openorienteering-mapper/default.nix69
-rw-r--r--pkgs/applications/gis/openorienteering-mapper/fix-qttranslations-path.diff13
-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.nix12
-rw-r--r--pkgs/applications/graphics/ImageMagick/7.0.nix6
-rw-r--r--pkgs/applications/graphics/ImageMagick/default.nix8
-rw-r--r--pkgs/applications/graphics/akira/default.nix8
-rw-r--r--pkgs/applications/graphics/akira/fix-build-with-vala-0-44-or-later.patch88
-rw-r--r--pkgs/applications/graphics/avocode/default.nix6
-rw-r--r--pkgs/applications/graphics/azpainter/default.nix2
-rw-r--r--pkgs/applications/graphics/cloudcompare/default.nix82
-rw-r--r--pkgs/applications/graphics/cq-editor/default.nix4
-rw-r--r--pkgs/applications/graphics/darktable/default.nix8
-rw-r--r--pkgs/applications/graphics/digikam/default.nix14
-rw-r--r--pkgs/applications/graphics/displaycal/default.nix14
-rw-r--r--pkgs/applications/graphics/draftsight/default.nix88
-rw-r--r--pkgs/applications/graphics/drawio/default.nix5
-rw-r--r--pkgs/applications/graphics/evilpixie/default.nix59
-rw-r--r--pkgs/applications/graphics/feh/default.nix10
-rw-r--r--pkgs/applications/graphics/fluxus/default.nix4
-rw-r--r--pkgs/applications/graphics/fondo/default.nix7
-rw-r--r--pkgs/applications/graphics/freecad/default.nix20
-rw-r--r--pkgs/applications/graphics/gimp/default.nix68
-rw-r--r--pkgs/applications/graphics/gimp/hardcode-plugin-interpreters.patch11
-rw-r--r--pkgs/applications/graphics/gnome-photos/default.nix6
-rw-r--r--pkgs/applications/graphics/goxel/default.nix4
-rw-r--r--pkgs/applications/graphics/gscan2pdf/default.nix5
-rw-r--r--pkgs/applications/graphics/ideogram/default.nix3
-rw-r--r--pkgs/applications/graphics/imv/default.nix4
-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/jpeg-archive/default.nix2
-rw-r--r--pkgs/applications/graphics/krita/default.nix4
-rw-r--r--pkgs/applications/graphics/krop/default.nix8
-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.nix154
-rw-r--r--pkgs/applications/graphics/meshlab/fix-version.patch5
-rw-r--r--pkgs/applications/graphics/meshlab/meshlab.desktop15
-rw-r--r--pkgs/applications/graphics/meshlab/no-build-date.patch10
-rw-r--r--pkgs/applications/graphics/mypaint/default.nix8
-rw-r--r--pkgs/applications/graphics/nomacs/default.nix16
-rw-r--r--pkgs/applications/graphics/nomacs/nomacs-iostream.patch26
-rw-r--r--pkgs/applications/graphics/openscad/default.nix2
-rw-r--r--pkgs/applications/graphics/paraview/default.nix74
-rw-r--r--pkgs/applications/graphics/pdfcpu/default.nix10
-rw-r--r--pkgs/applications/graphics/pqiv/default.nix4
-rw-r--r--pkgs/applications/graphics/processing/default.nix12
-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.nix8
-rw-r--r--pkgs/applications/graphics/sane/backends/default.nix6
-rw-r--r--pkgs/applications/graphics/shotwell/default.nix2
-rw-r--r--pkgs/applications/graphics/swingsane/default.nix2
-rw-r--r--pkgs/applications/graphics/tev/default.nix4
-rw-r--r--pkgs/applications/graphics/write_stylus/default.nix28
-rw-r--r--pkgs/applications/graphics/xara/debian-patches.nix30
-rw-r--r--pkgs/applications/graphics/xara/debian-patches.txt7
-rw-r--r--pkgs/applications/graphics/xara/default.nix22
-rw-r--r--pkgs/applications/graphics/xfractint/default.nix4
-rw-r--r--pkgs/applications/graphics/yeetgif/default.nix5
-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.nix6
-rw-r--r--pkgs/applications/kde/akonadi/series3
-rw-r--r--pkgs/applications/kde/ark/default.nix4
-rw-r--r--pkgs/applications/kde/bomber.nix30
-rw-r--r--pkgs/applications/kde/bovo.nix28
-rw-r--r--pkgs/applications/kde/default.nix7
-rw-r--r--pkgs/applications/kde/fetch.sh2
-rw-r--r--pkgs/applications/kde/ffmpegthumbs.nix4
-rw-r--r--pkgs/applications/kde/granatier.nix23
-rw-r--r--pkgs/applications/kde/k3b.nix4
-rw-r--r--pkgs/applications/kde/kapptemplate.nix24
-rw-r--r--pkgs/applications/kde/kdegraphics-thumbnailers.nix8
-rw-r--r--pkgs/applications/kde/kdenlive.nix6
-rw-r--r--pkgs/applications/kde/kfloppy.nix20
-rw-r--r--pkgs/applications/kde/kio-extras.nix12
-rw-r--r--pkgs/applications/kde/kmail.nix3
-rw-r--r--pkgs/applications/kde/ksquares.nix22
-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/spectacle.nix4
-rw-r--r--pkgs/applications/kde/srcs.nix1738
-rw-r--r--pkgs/applications/logging/humioctl/default.nix39
-rw-r--r--pkgs/applications/misc/1password/default.nix42
-rw-r--r--pkgs/applications/misc/ArchiSteamFarm/default.nix42
-rw-r--r--pkgs/applications/misc/airtame/default.nix6
-rw-r--r--pkgs/applications/misc/alacritty/default.nix15
-rw-r--r--pkgs/applications/misc/almanah/default.nix10
-rw-r--r--pkgs/applications/misc/aminal/default.nix4
-rw-r--r--pkgs/applications/misc/appeditor/default.nix3
-rw-r--r--pkgs/applications/misc/archiver/default.nix5
-rw-r--r--pkgs/applications/misc/audio/wavesurfer/default.nix4
-rw-r--r--pkgs/applications/misc/ausweisapp2/default.nix4
-rw-r--r--pkgs/applications/misc/azuredatastudio/default.nix115
-rw-r--r--pkgs/applications/misc/batsignal/default.nix25
-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/darwin.patch21
-rw-r--r--pkgs/applications/misc/blender/default.nix18
-rw-r--r--pkgs/applications/misc/break-time/default.nix45
-rw-r--r--pkgs/applications/misc/buku/default.nix5
-rw-r--r--pkgs/applications/misc/calibre/default.nix6
-rw-r--r--pkgs/applications/misc/cgminer/default.nix45
-rw-r--r--pkgs/applications/misc/cheat/default.nix9
-rw-r--r--pkgs/applications/misc/cherrytree/default.nix4
-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/clightd.nix4
-rw-r--r--pkgs/applications/misc/clight/default.nix4
-rw-r--r--pkgs/applications/misc/clipmenu/default.nix20
-rw-r--r--pkgs/applications/misc/cointop/default.nix4
-rw-r--r--pkgs/applications/misc/coolreader/default.nix26
-rw-r--r--pkgs/applications/misc/copyq/default.nix4
-rw-r--r--pkgs/applications/misc/cpu-x/default.nix17
-rw-r--r--pkgs/applications/misc/dbeaver/default.nix6
-rw-r--r--pkgs/applications/misc/ddcui/default.nix42
-rw-r--r--pkgs/applications/misc/ddgr/default.nix4
-rw-r--r--pkgs/applications/misc/devdocs-desktop/default.nix43
-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.nix42
-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.nix27
-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.nix8
-rw-r--r--pkgs/applications/misc/exercism/default.nix4
-rw-r--r--pkgs/applications/misc/fbmenugen/0001-Fix-paths.patch69
-rw-r--r--pkgs/applications/misc/fbmenugen/default.nix75
-rw-r--r--pkgs/applications/misc/fetchmail/default.nix4
-rw-r--r--pkgs/applications/misc/firestarter/default.nix4
-rw-r--r--pkgs/applications/misc/fitnesstrax/default.nix2
-rw-r--r--pkgs/applications/misc/fme/default.nix2
-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/ganttproject-bin/default.nix2
-rw-r--r--pkgs/applications/misc/gcalcli/default.nix4
-rw-r--r--pkgs/applications/misc/gcstar/default.nix72
-rw-r--r--pkgs/applications/misc/geoipupdate/default.nix9
-rw-r--r--pkgs/applications/misc/get_iplayer/default.nix4
-rw-r--r--pkgs/applications/misc/girara/default.nix6
-rw-r--r--pkgs/applications/misc/gitit/default.nix61
-rw-r--r--pkgs/applications/misc/glom/default.nix19
-rw-r--r--pkgs/applications/misc/gmrun/default.nix6
-rw-r--r--pkgs/applications/misc/go-jira/default.nix24
-rw-r--r--pkgs/applications/misc/golden-cheetah/default.nix2
-rw-r--r--pkgs/applications/misc/goldendict/default.nix13
-rw-r--r--pkgs/applications/misc/gollum/Gemfile.lock39
-rw-r--r--pkgs/applications/misc/gollum/gemset.nix69
-rw-r--r--pkgs/applications/misc/gomatrix/default.nix4
-rw-r--r--pkgs/applications/misc/googler/default.nix18
-rw-r--r--pkgs/applications/misc/gopacked/default.nix25
-rw-r--r--pkgs/applications/misc/gosmore/default.nix3
-rw-r--r--pkgs/applications/misc/gpsbabel/default.nix4
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix16
-rw-r--r--pkgs/applications/misc/gpxsee/fix-qttranslations-path.diff18
-rw-r--r--pkgs/applications/misc/hamster/default.nix62
-rw-r--r--pkgs/applications/misc/heimer/default.nix5
-rw-r--r--pkgs/applications/misc/hstr/default.nix10
-rw-r--r--pkgs/applications/misc/html5validator/default.nix25
-rw-r--r--pkgs/applications/misc/hugo/default.nix12
-rw-r--r--pkgs/applications/misc/ikiwiki/default.nix8
-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.lock30
-rw-r--r--pkgs/applications/misc/jekyll/basic/gemset.nix52
-rw-r--r--pkgs/applications/misc/jekyll/full/Gemfile.lock36
-rw-r--r--pkgs/applications/misc/jekyll/full/gemset.nix64
-rw-r--r--pkgs/applications/misc/jgmenu/default.nix29
-rw-r--r--pkgs/applications/misc/joplin-desktop/default.nix26
-rw-r--r--pkgs/applications/misc/josm/default.nix8
-rw-r--r--pkgs/applications/misc/k4dirstat/default.nix33
-rw-r--r--pkgs/applications/misc/kanboard/default.nix4
-rw-r--r--pkgs/applications/misc/keepass-plugins/keeagent/default.nix6
-rw-r--r--pkgs/applications/misc/keepass/default.nix11
-rw-r--r--pkgs/applications/misc/keepass/fix-paths.patch73
-rw-r--r--pkgs/applications/misc/keepass/keepass-plugins-load.patch2
-rw-r--r--pkgs/applications/misc/keepass/keepass-plugins.patch26
-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.nix9
-rw-r--r--pkgs/applications/misc/kitty/default.nix40
-rw-r--r--pkgs/applications/misc/kitty/library-paths.patch38
-rw-r--r--pkgs/applications/misc/kitty/no-lto.patch2
-rw-r--r--pkgs/applications/misc/klayout/default.nix4
-rw-r--r--pkgs/applications/misc/kondo/default.nix6
-rw-r--r--pkgs/applications/misc/ksmoothdock/default.nix43
-rw-r--r--pkgs/applications/misc/llpp/default.nix4
-rw-r--r--pkgs/applications/misc/llpp/fix-build-bash.patch32
-rw-r--r--pkgs/applications/misc/lutris/default.nix81
-rw-r--r--pkgs/applications/misc/lutris/fhsenv.nix (renamed from pkgs/applications/misc/lutris/chrootenv.nix)7
-rw-r--r--pkgs/applications/misc/lyx/default.nix4
-rw-r--r--pkgs/applications/misc/makeself/default.nix3
-rw-r--r--pkgs/applications/misc/mapproxy/default.nix2
-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.nix4
-rw-r--r--pkgs/applications/misc/mediainfo/default.nix4
-rw-r--r--pkgs/applications/misc/megacmd/default.nix4
-rw-r--r--pkgs/applications/misc/megasync/default.nix8
-rw-r--r--pkgs/applications/misc/menumaker/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/moonlight-embedded/default.nix4
-rw-r--r--pkgs/applications/misc/mop/default.nix1
-rw-r--r--pkgs/applications/misc/mrxvt/default.nix8
-rw-r--r--pkgs/applications/misc/mupdf/default.nix4
-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.nix57
-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.nix52
-rw-r--r--pkgs/applications/misc/obsidian/default.nix32
-rw-r--r--pkgs/applications/misc/octoprint/default.nix15
-rw-r--r--pkgs/applications/misc/ola/default.nix34
-rw-r--r--pkgs/applications/misc/olifant/default.nix69
-rw-r--r--pkgs/applications/misc/openjump/default.nix36
-rw-r--r--pkgs/applications/misc/openrgb/default.nix36
-rw-r--r--pkgs/applications/misc/opentx/default.nix4
-rw-r--r--pkgs/applications/misc/orca/default.nix4
-rw-r--r--pkgs/applications/misc/osmium-tool/default.nix39
-rw-r--r--pkgs/applications/misc/overmind/default.nix6
-rw-r--r--pkgs/applications/misc/overmind/deps.nix147
-rw-r--r--pkgs/applications/misc/pastel/default.nix7
-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.nix10
-rw-r--r--pkgs/applications/misc/pgadmin/default.nix2
-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/polybar/default.nix11
-rw-r--r--pkgs/applications/misc/prusa-slicer/default.nix2
-rw-r--r--pkgs/applications/misc/pueue/default.nix6
-rw-r--r--pkgs/applications/misc/qcad/default.nix4
-rw-r--r--pkgs/applications/misc/qmapshack/default.nix8
-rw-r--r--pkgs/applications/misc/qsudo/default.nix42
-rw-r--r--pkgs/applications/misc/qt-video-wlr/default.nix46
-rw-r--r--pkgs/applications/misc/razergenie/default.nix41
-rw-r--r--pkgs/applications/misc/redshift/default.nix41
-rw-r--r--pkgs/applications/misc/remarkable/remarkable-mouse/default.nix20
-rw-r--r--pkgs/applications/misc/remarkable/rmapi/default.nix25
-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/sbagen/default.nix2
-rw-r--r--pkgs/applications/misc/sequeler/default.nix8
-rw-r--r--pkgs/applications/misc/sidequest/default.nix4
-rw-r--r--pkgs/applications/misc/sigal/default.nix4
-rw-r--r--pkgs/applications/misc/simplenote/default.nix4
-rw-r--r--pkgs/applications/misc/sl1-to-photon/default.nix41
-rw-r--r--pkgs/applications/misc/sleepyhead/default.nix20
-rw-r--r--pkgs/applications/misc/slic3r/default.nix2
-rw-r--r--pkgs/applications/misc/slstatus/default.nix12
-rw-r--r--pkgs/applications/misc/snowsql/default.nix50
-rw-r--r--pkgs/applications/misc/solaar/default.nix4
-rw-r--r--pkgs/applications/misc/st/default.nix7
-rw-r--r--pkgs/applications/misc/stretchly/default.nix5
-rw-r--r--pkgs/applications/misc/stupidterm/default.nix2
-rw-r--r--pkgs/applications/misc/styx/default.nix6
-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.nix6
-rw-r--r--pkgs/applications/misc/sweethome3d/editors.nix2
-rw-r--r--pkgs/applications/misc/syncthing-tray/default.nix1
-rw-r--r--pkgs/applications/misc/syncthingtray/default.nix10
-rw-r--r--pkgs/applications/misc/synergy/default.nix13
-rw-r--r--pkgs/applications/misc/systembus-notify/default.nix30
-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/tellico/default.nix67
-rw-r--r--pkgs/applications/misc/tellico/hex.patch15
-rw-r--r--pkgs/applications/misc/terminal-parrot/default.nix5
-rw-r--r--pkgs/applications/misc/thinking-rock/default.nix6
-rw-r--r--pkgs/applications/misc/tilda/default.nix4
-rw-r--r--pkgs/applications/misc/timewarrior/default.nix4
-rw-r--r--pkgs/applications/misc/tint2/default.nix58
-rw-r--r--pkgs/applications/misc/tipp10/default.nix6
-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/toot/default.nix6
-rw-r--r--pkgs/applications/misc/tootle/default.nix3
-rw-r--r--pkgs/applications/misc/tut/default.nix4
-rw-r--r--pkgs/applications/misc/udiskie/default.nix4
-rw-r--r--pkgs/applications/misc/ulauncher/default.nix12
-rw-r--r--pkgs/applications/misc/urlscan/default.nix4
-rw-r--r--pkgs/applications/misc/visidata/default.nix2
-rw-r--r--pkgs/applications/misc/waybar/default.nix23
-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/wtf/default.nix8
-rw-r--r--pkgs/applications/misc/x3270/default.nix44
-rw-r--r--pkgs/applications/misc/xastir/default.nix2
-rw-r--r--pkgs/applications/misc/xmenu/default.nix25
-rw-r--r--pkgs/applications/misc/xmrig/default.nix4
-rw-r--r--pkgs/applications/misc/xmrig/proxy.nix4
-rw-r--r--pkgs/applications/misc/xpdf/libxpdf.nix11
-rw-r--r--pkgs/applications/misc/xterm/default.nix2
-rw-r--r--pkgs/applications/misc/yubioath-desktop/default.nix4
-rw-r--r--pkgs/applications/misc/zathura/core/default.nix7
-rw-r--r--pkgs/applications/misc/zathura/pdf-mupdf/default.nix10
-rw-r--r--pkgs/applications/misc/zola/default.nix7
-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/default.nix26
-rw-r--r--pkgs/applications/networking/browsers/av-98/default.nix21
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/captive-browser/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/castor/default.nix51
-rw-r--r--pkgs/applications/networking/browsers/chromium/browser.nix1
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix34
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix35
-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/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.nix49
-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.nix21
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix770
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/default.nix18
-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.nix32
-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.nix31
-rw-r--r--pkgs/applications/networking/browsers/google-chrome/default.nix19
-rw-r--r--pkgs/applications/networking/browsers/kristall/default.nix31
-rw-r--r--pkgs/applications/networking/browsers/links2/default.nix5
-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.nix4
-rw-r--r--pkgs/applications/networking/browsers/palemoon/default.nix63
-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.nix16
-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.nix12
-rw-r--r--pkgs/applications/networking/browsers/webbrowser/default.nix108
-rw-r--r--pkgs/applications/networking/calls/default.nix4
-rw-r--r--pkgs/applications/networking/cawbird/default.nix4
-rw-r--r--pkgs/applications/networking/cloudflared/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/argo/default.nix28
-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.nix4
-rw-r--r--pkgs/applications/networking/cluster/cni/plugins.nix18
-rw-r--r--pkgs/applications/networking/cluster/docker-machine/hyperkit.nix4
-rw-r--r--pkgs/applications/networking/cluster/docker-machine/kvm2.nix4
-rw-r--r--pkgs/applications/networking/cluster/fluxctl/default.nix19
-rw-r--r--pkgs/applications/networking/cluster/helm/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/helmfile/default.nix21
-rw-r--r--pkgs/applications/networking/cluster/helmsman/default.nix25
-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/3321-fix-location-of-thrift.patch36
-rw-r--r--pkgs/applications/networking/cluster/jx/default.nix28
-rw-r--r--pkgs/applications/networking/cluster/k3s/default.nix12
-rw-r--r--pkgs/applications/networking/cluster/k3s/patches/00-k3s.patch81
-rw-r--r--pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch25
-rw-r--r--pkgs/applications/networking/cluster/k3s/patches/0002-Add-nixpkgs-patches.patch87
-rw-r--r--pkgs/applications/networking/cluster/k9s/default.nix10
-rw-r--r--pkgs/applications/networking/cluster/kops/default.nix9
-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/kubecfg/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubeless/default.nix17
-rw-r--r--pkgs/applications/networking/cluster/kubernetes/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubeseal/default.nix10
-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.nix12
-rw-r--r--pkgs/applications/networking/cluster/luigi/default.nix7
-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/minishift/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/node-problem-detector/default.nix14
-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.nix18
-rw-r--r--pkgs/applications/networking/cluster/spacegun/node-packages.nix1392
-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/data.nix424
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/default.nix12
-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/libvirt/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/shell/default.nix30
-rwxr-xr-xpkgs/applications/networking/cluster/terraform-providers/update-all2
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix14
-rw-r--r--pkgs/applications/networking/cluster/terragrunt/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/tilt/default.nix19
-rw-r--r--pkgs/applications/networking/datovka/default.nix4
-rw-r--r--pkgs/applications/networking/dnscontrol/default.nix4
-rw-r--r--pkgs/applications/networking/feedreaders/feedreader/default.nix18
-rw-r--r--pkgs/applications/networking/feedreaders/newsboat/default.nix17
-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.nix16
-rw-r--r--pkgs/applications/networking/ftp/taxi/default.nix4
-rw-r--r--pkgs/applications/networking/gmailctl/default.nix5
-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.nix17
-rw-r--r--pkgs/applications/networking/gopher/sacc/default.nix32
-rw-r--r--pkgs/applications/networking/hydroxide/default.nix8
-rw-r--r--pkgs/applications/networking/ids/snort/default.nix8
-rw-r--r--pkgs/applications/networking/ids/zeek/default.nix30
-rw-r--r--pkgs/applications/networking/instant-messengers/baresip/default.nix4
-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/blink/default.nix2
-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/deltachat-electron/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/base.nix28
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/default.nix12
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop-package.json112
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix6493
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop.nix81
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-web.nix (renamed from pkgs/applications/networking/instant-messengers/riot/riot-web.nix)14
-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.nix17
-rw-r--r--pkgs/applications/networking/instant-messengers/franz/default.nix52
-rw-r--r--pkgs/applications/networking/instant-messengers/franz/generic.nix89
-rw-r--r--pkgs/applications/networking/instant-messengers/gajim/default.nix32
-rw-r--r--pkgs/applications/networking/instant-messengers/go-neb/default.nix29
-rw-r--r--pkgs/applications/networking/instant-messengers/go-neb/go-mod.patch50
-rw-r--r--pkgs/applications/networking/instant-messengers/gomuks/default.nix16
-rw-r--r--pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix15
-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/linphone/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/matrix-recorder/node-packages.nix126
-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/nheko/default.nix23
-rw-r--r--pkgs/applications/networking/instant-messengers/pantalaimon/default.nix6
-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/pidgin/default.nix23
-rw-r--r--pkgs/applications/networking/instant-messengers/poezio/default.nix8
-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/qtox/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/quaternion/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/rambox/default.nix10
-rw-r--r--pkgs/applications/networking/instant-messengers/rambox/pro.nix26
-rw-r--r--pkgs/applications/networking/instant-messengers/ring-daemon/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json15
-rw-r--r--pkgs/applications/networking/instant-messengers/riot/riot-desktop-yarndeps.nix1021
-rw-r--r--pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix86
-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-cli/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/sky/default.nix4
-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.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/teamspeak/client.nix12
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix19
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/wire-desktop/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/ytalk/default.nix21
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix16
-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.nix9
-rw-r--r--pkgs/applications/networking/ipfs-migrator/default.nix8
-rw-r--r--pkgs/applications/networking/ipfs/default.nix37
-rw-r--r--pkgs/applications/networking/ipget/default.nix27
-rw-r--r--pkgs/applications/networking/irc/convos/default.nix73
-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.nix6
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/default.nix2
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix4
-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/lieer/default.nix6
-rw-r--r--pkgs/applications/networking/maestral-qt/default.nix49
-rw-r--r--pkgs/applications/networking/maestral/default.nix57
-rw-r--r--pkgs/applications/networking/mailreaders/aerc/default.nix20
-rw-r--r--pkgs/applications/networking/mailreaders/alpine/default.nix5
-rw-r--r--pkgs/applications/networking/mailreaders/balsa/default.nix46
-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.nix104
-rw-r--r--pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix31
-rw-r--r--pkgs/applications/networking/mailreaders/mailspring/default.nix84
-rw-r--r--pkgs/applications/networking/mailreaders/meli/default.nix50
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/neomutt/default.nix28
-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.nix16
-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.nix35
-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.nix2
-rw-r--r--pkgs/applications/networking/mpop/default.nix4
-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.nix4
-rw-r--r--pkgs/applications/networking/newsreaders/liferea/default.nix61
-rw-r--r--pkgs/applications/networking/newsreaders/pan/default.nix7
-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/nym/default.nix10
-rw-r--r--pkgs/applications/networking/offrss/default.nix6
-rw-r--r--pkgs/applications/networking/openbazaar/client.nix60
-rw-r--r--pkgs/applications/networking/openbazaar/default.nix48
-rw-r--r--pkgs/applications/networking/owncloud-client/default.nix6
-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/retroshare/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/stig/default.nix7
-rw-r--r--pkgs/applications/networking/p2p/synapse-bt/default.nix1
-rw-r--r--pkgs/applications/networking/p2p/torrential/default.nix3
-rw-r--r--pkgs/applications/networking/p2p/transmission/default.nix109
-rw-r--r--pkgs/applications/networking/ping/default.nix3
-rw-r--r--pkgs/applications/networking/protonvpn-cli-ng/default.nix35
-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.nix8
-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.nix8
-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.nix17
-rw-r--r--pkgs/applications/networking/remote/wayvnc/default.nix15
-rw-r--r--pkgs/applications/networking/resilio-sync/default.nix6
-rw-r--r--pkgs/applications/networking/scaleft/default.nix41
-rw-r--r--pkgs/applications/networking/sniffers/etherape/default.nix4
-rw-r--r--pkgs/applications/networking/sniffers/ettercap/default.nix4
-rw-r--r--pkgs/applications/networking/sniffers/sngrep/default.nix4
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/default.nix10
-rw-r--r--pkgs/applications/networking/ssb-patchwork/default.nix (renamed from pkgs/applications/networking/ssb/patchwork/default.nix)26
-rw-r--r--pkgs/applications/networking/ssb/patchwork-classic/default.nix106
-rw-r--r--pkgs/applications/networking/sync/onedrive/default.nix28
-rw-r--r--pkgs/applications/networking/sync/rclone/default.nix9
-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.nix68
-rw-r--r--pkgs/applications/networking/testssl/default.nix4
-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/networking/znc/default.nix4
-rw-r--r--pkgs/applications/office/aesop/default.nix4
-rw-r--r--pkgs/applications/office/agenda/default.nix3
-rw-r--r--pkgs/applications/office/atlassian-cli/default.nix4
-rw-r--r--pkgs/applications/office/beamerpresenter/default.nix40
-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.nix55
-rw-r--r--pkgs/applications/office/fava/default.nix9
-rw-r--r--pkgs/applications/office/flexibee/default.nix4
-rw-r--r--pkgs/applications/office/gnucash/default.nix1
-rw-r--r--pkgs/applications/office/gnumeric/default.nix4
-rw-r--r--pkgs/applications/office/gtg/default.nix68
-rw-r--r--pkgs/applications/office/homebank/default.nix4
-rw-r--r--pkgs/applications/office/jabref/default.nix2
-rw-r--r--pkgs/applications/office/khronos/default.nix3
-rw-r--r--pkgs/applications/office/kmymoney/default.nix4
-rw-r--r--pkgs/applications/office/ledger/default.nix31
-rw-r--r--pkgs/applications/office/libreoffice/default.nix83
-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.nix67
-rw-r--r--pkgs/applications/office/scribus/unstable.nix8
-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/todoman/default.nix4
-rw-r--r--pkgs/applications/office/trilium/default.nix26
-rw-r--r--pkgs/applications/office/tudu/default.nix17
-rw-r--r--pkgs/applications/office/watson/default.nix19
-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.nix4
-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.nix24
-rw-r--r--pkgs/applications/radio/direwolf/default.nix57
-rw-r--r--pkgs/applications/radio/dsd/default.nix44
-rw-r--r--pkgs/applications/radio/dump1090/default.nix4
-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/gnuradio/default.nix67
-rw-r--r--pkgs/applications/radio/inspectrum/default.nix11
-rw-r--r--pkgs/applications/radio/limesuite/default.nix26
-rw-r--r--pkgs/applications/radio/rtl-ais/default.nix24
-rw-r--r--pkgs/applications/radio/soapyremote/default.nix4
-rw-r--r--pkgs/applications/radio/urh/default.nix4
-rw-r--r--pkgs/applications/radio/welle-io/default.nix3
-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/astronomy/gildas/default.nix6
-rw-r--r--pkgs/applications/science/astronomy/gildas/wrapper.patch3
-rw-r--r--pkgs/applications/science/astronomy/stellarium/default.nix4
-rw-r--r--pkgs/applications/science/biology/ants/default.nix4
-rw-r--r--pkgs/applications/science/biology/bppsuite/default.nix21
-rw-r--r--pkgs/applications/science/biology/emboss/default.nix4
-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/mrbayes/default.nix6
-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/spades/default.nix4
-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/molden/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/eagle/eagle.nix6
-rw-r--r--pkgs/applications/science/electronics/eagle/eagle7.nix2
-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.nix4
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix15
-rw-r--r--pkgs/applications/science/electronics/kicad/libraries.nix6
-rw-r--r--pkgs/applications/science/electronics/kicad/versions.nix56
-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/boolector/cmake-gtest.patch16
-rw-r--r--pkgs/applications/science/logic/boolector/default.nix41
-rw-r--r--pkgs/applications/science/logic/btor2tools/default.nix16
-rw-r--r--pkgs/applications/science/logic/cadical/default.nix6
-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/elan/default.nix6
-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.nix11
-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/proverif/default.nix4
-rw-r--r--pkgs/applications/science/logic/sad/default.nix3
-rw-r--r--pkgs/applications/science/logic/sad/patch.patch (renamed from pkgs/applications/science/logic/sad/patch)0
-rw-r--r--pkgs/applications/science/logic/symbiyosys/default.nix25
-rw-r--r--pkgs/applications/science/logic/tlaplus/toolbox.nix2
-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.nix17
-rw-r--r--pkgs/applications/science/logic/workcraft/default.nix4
-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/machine-learning/shogun/default.nix2
-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/clp/default.nix4
-rw-r--r--pkgs/applications/science/math/gap/default.nix45
-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/gmsh/default.nix4
-rw-r--r--pkgs/applications/science/math/mathematica/l10ns.nix6
-rw-r--r--pkgs/applications/science/math/mxnet/default.nix2
-rw-r--r--pkgs/applications/science/math/nauty/default.nix8
-rw-r--r--pkgs/applications/science/math/palp/default.nix8
-rw-r--r--pkgs/applications/science/math/qalculate-gtk/default.nix15
-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/colmap/default.nix4
-rw-r--r--pkgs/applications/science/misc/cytoscape/default.nix17
-rw-r--r--pkgs/applications/science/misc/cytoscape/gen_vmoptions_to_homedir.patch19
-rw-r--r--pkgs/applications/science/misc/foldingathome/control.nix4
-rw-r--r--pkgs/applications/science/misc/foldingathome/viewer.nix4
-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/5.nix15
-rw-r--r--pkgs/applications/science/misc/root/default.nix9
-rw-r--r--pkgs/applications/science/misc/sasview/xhtml2pdf.nix2
-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/physics/sherpa/default.nix4
-rw-r--r--pkgs/applications/science/physics/xflr5/default.nix23
-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/gazebo/6.nix8
-rw-r--r--pkgs/applications/science/robotics/gazebo/default.nix84
-rw-r--r--pkgs/applications/science/robotics/qgroundcontrol/default.nix33
-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/bazaar/CVE-2017-14176.patch149
-rw-r--r--pkgs/applications/version-management/bazaar/add_certificates.patch11
-rw-r--r--pkgs/applications/version-management/bazaar/default.nix36
-rw-r--r--pkgs/applications/version-management/bazaar/tools.nix20
-rw-r--r--pkgs/applications/version-management/bcompare/default.nix8
-rw-r--r--pkgs/applications/version-management/cvs-fast-export/default.nix6
-rw-r--r--pkgs/applications/version-management/cvs2svn/default.nix4
-rw-r--r--pkgs/applications/version-management/fossil/default.nix4
-rw-r--r--pkgs/applications/version-management/gerrit/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix23
-rw-r--r--pkgs/applications/version-management/git-and-tools/delta/default.nix25
-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.nix24
-rw-r--r--pkgs/applications/version-management/git-and-tools/ghq/default.nix8
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-absorb/default.nix14
-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-extras/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix5
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-gone/default.nix6
-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-open/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-subset/default.nix26
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-subtrac/default.nix8
-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.nix15
-rw-r--r--pkgs/applications/version-management/git-and-tools/gita/default.nix38
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitbatch/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitin/default.nix32
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitin/deps.nix121
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitstatus/default.nix9
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitstatus/romkatv_libgit2.nix7
-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.nix8
-rw-r--r--pkgs/applications/version-management/git-and-tools/stgit/default.nix25
-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-repo/default.nix4
-rw-r--r--pkgs/applications/version-management/git-sizer/default.nix1
-rw-r--r--pkgs/applications/version-management/gitea/default.nix9
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/data.json16
-rw-r--r--pkgs/applications/version-management/gitlab/default.nix2
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile12
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock64
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix26
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/deps.nix596
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/gemset.nix98
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-shell/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-workhorse/deps.nix266
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile74
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock326
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix380
-rwxr-xr-xpkgs/applications/version-management/gitlab/update.py6
-rw-r--r--pkgs/applications/version-management/gitlab/yarnPkgs.nix1592
-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/reposurgeon/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/core.nix2
-rw-r--r--pkgs/applications/version-management/sourcehut/dispatch.nix2
-rw-r--r--pkgs/applications/version-management/sourcehut/git.nix22
-rw-r--r--pkgs/applications/version-management/sourcehut/hg.nix2
-rw-r--r--pkgs/applications/version-management/sourcehut/lists.nix2
-rw-r--r--pkgs/applications/version-management/sourcehut/man.nix2
-rw-r--r--pkgs/applications/version-management/sourcehut/meta.nix2
-rw-r--r--pkgs/applications/version-management/sourcehut/paste.nix2
-rw-r--r--pkgs/applications/version-management/sourcehut/scm.nix2
-rw-r--r--pkgs/applications/version-management/sourcehut/todo.nix2
-rw-r--r--pkgs/applications/version-management/sublime-merge/common.nix14
-rw-r--r--pkgs/applications/version-management/sublime-merge/default.nix8
-rw-r--r--pkgs/applications/video/aegisub/default.nix4
-rw-r--r--pkgs/applications/video/avidemux/default.nix4
-rw-r--r--pkgs/applications/video/avxsynth/default.nix4
-rw-r--r--pkgs/applications/video/bombono/default.nix4
-rw-r--r--pkgs/applications/video/catt/default.nix2
-rw-r--r--pkgs/applications/video/celluloid/default.nix7
-rw-r--r--pkgs/applications/video/clipgrab/default.nix14
-rw-r--r--pkgs/applications/video/devede/default.nix6
-rw-r--r--pkgs/applications/video/dvd-slideshow/default.nix4
-rw-r--r--pkgs/applications/video/dvdauthor/default.nix2
-rw-r--r--pkgs/applications/video/ffmpeg-normalize/default.nix4
-rw-r--r--pkgs/applications/video/gnomecast/default.nix4
-rw-r--r--pkgs/applications/video/handbrake/default.nix92
-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.nix14
-rw-r--r--pkgs/applications/video/makemkv/default.nix12
-rw-r--r--pkgs/applications/video/manim/default.nix6
-rw-r--r--pkgs/applications/video/mapmap/default.nix4
-rw-r--r--pkgs/applications/video/mkvtoolnix/default.nix6
-rw-r--r--pkgs/applications/video/mlv-app/aarch64-flags.patch13
-rw-r--r--pkgs/applications/video/mlv-app/default.nix62
-rw-r--r--pkgs/applications/video/molotov/default.nix31
-rw-r--r--pkgs/applications/video/motion/default.nix7
-rw-r--r--pkgs/applications/video/mplayer/default.nix7
-rw-r--r--pkgs/applications/video/mpv/default.nix48
-rw-r--r--pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix33
-rw-r--r--pkgs/applications/video/mpv/scripts/sponsorblock.nix51
-rw-r--r--pkgs/applications/video/mpv/wrapper.nix89
-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/natron/default.nix4
-rw-r--r--pkgs/applications/video/obs-studio/default.nix62
-rw-r--r--pkgs/applications/video/obs-studio/wlrobs.nix6
-rw-r--r--pkgs/applications/video/olive-editor/default.nix7
-rw-r--r--pkgs/applications/video/openshot-qt/libopenshot.nix4
-rw-r--r--pkgs/applications/video/peek/default.nix12
-rw-r--r--pkgs/applications/video/plex-mpv-shim/default.nix4
-rw-r--r--pkgs/applications/video/qstopmotion/default.nix4
-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/simplescreenrecorder/default.nix4
-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.nix8
-rw-r--r--pkgs/applications/video/tartube/default.nix10
-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/vdr/plugins.nix4
-rw-r--r--pkgs/applications/video/vlc/default.nix8
-rw-r--r--pkgs/applications/video/webcamoid/default.nix40
-rw-r--r--pkgs/applications/video/webtorrent_desktop/default.nix54
-rw-r--r--pkgs/applications/video/wf-recorder/default.nix4
-rw-r--r--pkgs/applications/video/xawtv/default.nix4
-rw-r--r--pkgs/applications/video/xscast/default.nix4
-rw-r--r--pkgs/applications/virtualization/8086tiny/builder.sh8
-rw-r--r--pkgs/applications/virtualization/8086tiny/default.nix34
-rw-r--r--pkgs/applications/virtualization/OVMF/default.nix13
-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.nix7
-rw-r--r--pkgs/applications/virtualization/containerd/default.nix4
-rw-r--r--pkgs/applications/virtualization/cri-o/default.nix33
-rw-r--r--pkgs/applications/virtualization/cri-o/wrapper.nix53
-rw-r--r--pkgs/applications/virtualization/crun/default.nix7
-rw-r--r--pkgs/applications/virtualization/docker-compose/default.nix17
-rw-r--r--pkgs/applications/virtualization/docker-slim/default.nix9
-rw-r--r--pkgs/applications/virtualization/docker/default.nix12
-rw-r--r--pkgs/applications/virtualization/firectl/default.nix6
-rw-r--r--pkgs/applications/virtualization/firectl/gomod.patch15
-rw-r--r--pkgs/applications/virtualization/gvisor/containerd-shim.nix3
-rw-r--r--pkgs/applications/virtualization/gvisor/default.nix2
-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/oci-seccomp-bpf-hook/default.nix58
-rw-r--r--pkgs/applications/virtualization/open-vm-tools/default.nix15
-rw-r--r--pkgs/applications/virtualization/open-vm-tools/find_gdk_pixbuf_xlib.patch12
-rw-r--r--pkgs/applications/virtualization/podman-compose/default.nix12
-rw-r--r--pkgs/applications/virtualization/podman/default.nix41
-rw-r--r--pkgs/applications/virtualization/podman/wrapper.nix6
-rw-r--r--pkgs/applications/virtualization/qboot/default.nix14
-rw-r--r--pkgs/applications/virtualization/qemu/default.nix75
-rw-r--r--pkgs/applications/virtualization/qemu/fix-qemu-ga.patch30
-rw-r--r--pkgs/applications/virtualization/qemu/utils.nix8
-rw-r--r--pkgs/applications/virtualization/railcar/default.nix1
-rw-r--r--pkgs/applications/virtualization/rkt/default.nix78
-rw-r--r--pkgs/applications/virtualization/runc/default.nix13
-rw-r--r--pkgs/applications/virtualization/singularity/default.nix37
-rw-r--r--pkgs/applications/virtualization/spice-vdagent/default.nix3
-rw-r--r--pkgs/applications/virtualization/spice-vdagent/timeout.diff84
-rw-r--r--pkgs/applications/virtualization/umoci/default.nix29
-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/virtualization/x11docker/default.nix4
-rw-r--r--pkgs/applications/virtualization/xhyve/default.nix7
-rw-r--r--pkgs/applications/window-managers/berry/default.nix47
-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.nix6
-rw-r--r--pkgs/applications/window-managers/dwm/dwm-status.nix6
-rw-r--r--pkgs/applications/window-managers/herbstluftwm/default.nix4
-rw-r--r--pkgs/applications/window-managers/hikari/default.nix75
-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/i3/pystatus.nix40
-rw-r--r--pkgs/applications/window-managers/i3/status-rust.nix6
-rw-r--r--pkgs/applications/window-managers/icewm/default.nix8
-rw-r--r--pkgs/applications/window-managers/leftwm/default.nix6
-rw-r--r--pkgs/applications/window-managers/lwm/default.nix45
-rw-r--r--pkgs/applications/window-managers/notion/default.nix6
-rw-r--r--pkgs/applications/window-managers/openbox/default.nix17
-rw-r--r--pkgs/applications/window-managers/picom/default.nix4
-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/smallwm/default.nix38
-rw-r--r--pkgs/applications/window-managers/spectrwm/default.nix6
-rw-r--r--pkgs/applications/window-managers/sway/contrib.nix95
-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/sway/lock.nix2
-rw-r--r--pkgs/applications/window-managers/tinywm/default.nix3
-rw-r--r--pkgs/applications/window-managers/wmfs/default.nix2
-rw-r--r--pkgs/applications/window-managers/yeahwm/default.nix58
-rw-r--r--pkgs/build-support/agda/default.nix156
-rw-r--r--pkgs/build-support/alternatives/blas/default.nix4
-rwxr-xr-xpkgs/build-support/appimage/appimage-exec.sh108
-rw-r--r--pkgs/build-support/appimage/default.nix59
-rw-r--r--pkgs/build-support/bintools-wrapper/add-flags.sh26
-rw-r--r--pkgs/build-support/bintools-wrapper/add-hardening.sh2
-rw-r--r--pkgs/build-support/bintools-wrapper/default.nix97
-rw-r--r--pkgs/build-support/bintools-wrapper/ld-wrapper.sh20
-rw-r--r--pkgs/build-support/bintools-wrapper/setup-hook.sh11
-rw-r--r--pkgs/build-support/build-bazel-package/default.nix12
-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/build-fhs-userenv/env.nix2
-rwxr-xr-xpkgs/build-support/buildenv/builder.pl9
-rw-r--r--pkgs/build-support/cc-wrapper/add-flags.sh46
-rw-r--r--pkgs/build-support/cc-wrapper/add-hardening.sh2
-rw-r--r--pkgs/build-support/cc-wrapper/cc-wrapper.sh41
-rw-r--r--pkgs/build-support/cc-wrapper/default.nix207
-rw-r--r--pkgs/build-support/cc-wrapper/fortran-hook.sh11
-rw-r--r--pkgs/build-support/cc-wrapper/gnat-wrapper.sh10
-rw-r--r--pkgs/build-support/cc-wrapper/setup-hook.sh26
-rw-r--r--pkgs/build-support/docker/default.nix433
-rw-r--r--pkgs/build-support/docker/examples.nix146
-rwxr-xr-xpkgs/build-support/docker/nix-prefetch-docker6
-rwxr-xr-xpkgs/build-support/docker/store-path-to-layer.sh53
-rw-r--r--pkgs/build-support/docker/stream_layered_image.py313
-rw-r--r--pkgs/build-support/dotnetbuildhelpers/default.nix2
-rw-r--r--pkgs/build-support/emacs/generic.nix10
-rw-r--r--pkgs/build-support/emacs/wrapper.nix2
-rw-r--r--pkgs/build-support/fetchbzr/default.nix4
-rw-r--r--pkgs/build-support/fetchgitlab/default.nix3
-rw-r--r--pkgs/build-support/fetchmavenartifact/default.nix2
-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/fetchurl/mirrors.nix1
-rw-r--r--pkgs/build-support/kernel/modules-closure.sh67
-rw-r--r--pkgs/build-support/ocaml/oasis.nix6
-rw-r--r--pkgs/build-support/pkg-config-wrapper/add-flags.sh12
-rw-r--r--pkgs/build-support/pkg-config-wrapper/default.nix126
-rw-r--r--pkgs/build-support/pkg-config-wrapper/pkg-config-wrapper.sh21
-rw-r--r--pkgs/build-support/pkg-config-wrapper/setup-hook.sh29
-rw-r--r--pkgs/build-support/rust/build-rust-crate/build-crate.nix6
-rw-r--r--pkgs/build-support/rust/build-rust-crate/configure-crate.nix30
-rw-r--r--pkgs/build-support/rust/build-rust-crate/default.nix17
-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/build-rust-crate/test/default.nix60
-rw-r--r--pkgs/build-support/rust/default.nix61
-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/role.bash14
-rw-r--r--pkgs/build-support/setup-hooks/validate-pkg-config.sh19
-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/skaware/clean-packaging.nix4
-rw-r--r--pkgs/build-support/trivial-builders.nix2
-rw-r--r--pkgs/build-support/vm/default.nix2
-rw-r--r--pkgs/build-support/vm/windows/controller/default.nix2
-rw-r--r--pkgs/build-support/wrapper-common/utils.bash32
-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.nix28
-rw-r--r--pkgs/data/documentation/zeal/default.nix34
-rw-r--r--pkgs/data/documentation/zeal/remove_ads.patch23
-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/amiri/default.nix4
-rw-r--r--pkgs/data/fonts/barlow/default.nix28
-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/cozette/default.nix57
-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/fira-code/default.nix7
-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.nix8
-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/joypixels/default.nix4
-rw-r--r--pkgs/data/fonts/kanji-stroke-order-font/default.nix20
-rw-r--r--pkgs/data/fonts/line-awesome/default.nix2
-rw-r--r--pkgs/data/fonts/marathi-cursive/default.nix14
-rw-r--r--pkgs/data/fonts/material-design-icons/default.nix6
-rw-r--r--pkgs/data/fonts/nerdfonts/default.nix7
-rw-r--r--pkgs/data/fonts/noto-fonts/default.nix25
-rw-r--r--pkgs/data/fonts/oldsindhi/default.nix17
-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/rictydiminished-with-firacode/default.nix2
-rw-r--r--pkgs/data/fonts/sarasa-gothic/default.nix9
-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.nix37
-rw-r--r--pkgs/data/fonts/terminus-font/default.nix7
-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.nix4
-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/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.nix4
-rw-r--r--pkgs/data/icons/luna-icons/default.nix52
-rw-r--r--pkgs/data/icons/mint-x-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/numix-icon-theme/default.nix4
-rw-r--r--pkgs/data/icons/papirus-icon-theme/default.nix4
-rw-r--r--pkgs/data/icons/qogir-icon-theme/default.nix4
-rw-r--r--pkgs/data/misc/cacert/default.nix1
-rw-r--r--pkgs/data/misc/cldr-emoji-annotation/default.nix4
-rw-r--r--pkgs/data/misc/dns-root-data/default.nix2
-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.nix41
-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/misc/wireless-regdb/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/amber/default.nix4
-rw-r--r--pkgs/data/themes/arc/default.nix33
-rw-r--r--pkgs/data/themes/canta/default.nix45
-rw-r--r--pkgs/data/themes/cdetheme/default.nix34
-rw-r--r--pkgs/data/themes/jade1/default.nix4
-rw-r--r--pkgs/data/themes/marwaita/default.nix47
-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/plano/default.nix37
-rw-r--r--pkgs/data/themes/plata/default.nix8
-rw-r--r--pkgs/data/themes/pop-gtk/default.nix14
-rw-r--r--pkgs/data/themes/snowblind/default.nix6
-rw-r--r--pkgs/data/themes/stilo/default.nix4
-rw-r--r--pkgs/data/themes/ubuntu-themes/default.nix77
-rw-r--r--pkgs/data/themes/yaru/default.nix4
-rw-r--r--pkgs/data/themes/zuki/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-translations/default.nix4
-rw-r--r--pkgs/desktops/deepin/dbus-factory/default.nix43
-rw-r--r--pkgs/desktops/deepin/dde-api/default.nix7
-rw-r--r--pkgs/desktops/deepin/dde-control-center/default.nix2
-rw-r--r--pkgs/desktops/deepin/dde-daemon/default.nix2
-rw-r--r--pkgs/desktops/deepin/deepin-icon-theme/default.nix35
-rw-r--r--pkgs/desktops/deepin/deepin-movie-reborn/default.nix4
-rw-r--r--pkgs/desktops/deepin/deepin-screenshot/default.nix73
-rw-r--r--pkgs/desktops/deepin/default.nix5
-rw-r--r--pkgs/desktops/deepin/disomaster/default.nix11
-rw-r--r--pkgs/desktops/deepin/go-dbus-generator/default.nix38
-rw-r--r--pkgs/desktops/deepin/go-gir-generator/default.nix2
-rw-r--r--pkgs/desktops/deepin/go-lib/default.nix4
-rw-r--r--pkgs/desktops/deepin/qcef/default.nix4
-rw-r--r--pkgs/desktops/deepin/qt5integration/default.nix4
-rw-r--r--pkgs/desktops/deepin/qt5platform-plugins/default.nix (renamed from pkgs/desktops/deepin/qt5dxcb-plugin/default.nix)10
-rw-r--r--pkgs/desktops/deepin/startdde/default.nix2
-rw-r--r--pkgs/desktops/deepin/udisks2-qt5/default.nix12
-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)29
-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.nix88
-rw-r--r--pkgs/desktops/enlightenment/enlightenment.suid-exes.patch25
-rw-r--r--pkgs/desktops/enlightenment/enlightenment/0001-wrapped-setuid-executables.patch114
-rw-r--r--pkgs/desktops/enlightenment/enlightenment/0003-setuid-missing-path.patch25
-rw-r--r--pkgs/desktops/enlightenment/enlightenment/default.nix76
-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)4
-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/glade/default.nix37
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix23
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-documents/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-logs/default.nix59
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-maps/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-music/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-notes/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/polari/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/seahorse/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/baobab/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-dictionary/default.nix2
-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.nix190
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-software/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/default.nix56
-rw-r--r--pkgs/desktops/gnome-3/core/nautilus/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/rygel/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/simple-scan/default.nix62
-rw-r--r--pkgs/desktops/gnome-3/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/appindicator/default.nix4
-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/chrome-gnome-shell/default.nix51
-rw-r--r--pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/extensions/dash-to-dock/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.nix12
-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.nix4
-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-chess/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-klotski/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-applets/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-panel/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/misc/gpaste/default.nix2
-rw-r--r--pkgs/desktops/gnustep/back/default.nix4
-rw-r--r--pkgs/desktops/gnustep/base/default.nix4
-rw-r--r--pkgs/desktops/gnustep/gorm/default.nix6
-rw-r--r--pkgs/desktops/gnustep/gui/default.nix4
-rw-r--r--pkgs/desktops/gnustep/libobjc2/default.nix4
-rw-r--r--pkgs/desktops/gnustep/make/default.nix4
-rw-r--r--pkgs/desktops/lumina/lumina-calculator/default.nix10
-rw-r--r--pkgs/desktops/lumina/lumina-pdf/default.nix10
-rw-r--r--pkgs/desktops/lumina/lumina/default.nix64
-rw-r--r--pkgs/desktops/lxde/core/lxappearance/default.nix36
-rw-r--r--pkgs/desktops/lxqt/libfm-qt/default.nix4
-rw-r--r--pkgs/desktops/lxqt/liblxqt/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-archiver/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-panel/default.nix66
-rw-r--r--pkgs/desktops/lxqt/lxqt-qtplugin/default.nix26
-rw-r--r--pkgs/desktops/lxqt/pcmanfm-qt/default.nix8
-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/maxx/default.nix77
-rw-r--r--pkgs/desktops/pantheon/apps/appcenter/default.nix13
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calculator/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calendar/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-camera/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-code/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-dock/default.nix6
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-feedback/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-files/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-music/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-photos/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-terminal/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-videos/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/sideload/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix16
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard/default.nix7
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix3
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix11
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix3
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix3
-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.nix11
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix7
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix54
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix7
-rw-r--r--pkgs/desktops/pantheon/desktop/gala/default.nix15
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix9
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/207.patch4726
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix16
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix7
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix17
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel/default.nix7
-rw-r--r--pkgs/desktops/pantheon/granite/default.nix14
-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.nix3
-rw-r--r--pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix3
-rw-r--r--pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix3
-rw-r--r--pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix3
-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/kwin/scripts/tiling.nix4
-rw-r--r--pkgs/desktops/plasma-5/powerdevil.nix18
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-volumed/default.nix52
-rw-r--r--pkgs/desktops/xfce/core/thunar/default.nix4
-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-eyes-plugin.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/androidndk-pkgs.nix5
-rw-r--r--pkgs/development/arduino/arduino-cli/default.nix46
-rw-r--r--pkgs/development/arduino/arduino-core/default.nix124
-rw-r--r--pkgs/development/arduino/arduino-core/downloads.nix186
-rw-r--r--pkgs/development/arduino/platformio/chrootenv.nix13
-rw-r--r--pkgs/development/arduino/platformio/core.nix5
-rw-r--r--pkgs/development/arduino/platformio/missing-udev-rules-nixos.patch14
-rw-r--r--pkgs/development/arduino/platformio/use-local-spdx-license-list.patch2
-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/adoptopenjdk-icedtea-web/default.nix4
-rw-r--r--pkgs/development/compilers/aliceml/default.nix6
-rw-r--r--pkgs/development/compilers/aspectj/default.nix11
-rw-r--r--pkgs/development/compilers/binaryen/default.nix4
-rw-r--r--pkgs/development/compilers/bluespec/default.nix7
-rw-r--r--pkgs/development/compilers/bs-platform/default.nix4
-rw-r--r--pkgs/development/compilers/ccl/default.nix32
-rw-r--r--pkgs/development/compilers/ciao/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/dasm/default.nix34
-rw-r--r--pkgs/development/compilers/dotnet/build-dotnet.nix92
-rw-r--r--pkgs/development/compilers/dotnet/buildDotnet.nix72
-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.nix25
-rw-r--r--pkgs/development/compilers/dtc/default.nix4
-rw-r--r--pkgs/development/compilers/elm/default.nix65
-rw-r--r--pkgs/development/compilers/elm/packages/elm-json.nix29
-rw-r--r--pkgs/development/compilers/elm/packages/elm-json.patch48
-rwxr-xr-xpkgs/development/compilers/elm/packages/generate-node-packages.sh2
-rw-r--r--pkgs/development/compilers/elm/packages/lib.nix43
-rw-r--r--pkgs/development/compilers/elm/packages/node-composition.nix2
-rw-r--r--pkgs/development/compilers/elm/packages/node-packages.nix3798
-rw-r--r--pkgs/development/compilers/elm/packages/patch-binwrap.nix30
-rw-r--r--pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix6
-rw-r--r--pkgs/development/compilers/flutter/default.nix18
-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/lazarus.nix9
-rw-r--r--pkgs/development/compilers/gambit/bootstrap.nix22
-rw-r--r--pkgs/development/compilers/gambit/build.nix68
-rw-r--r--pkgs/development/compilers/gambit/default.nix6
-rw-r--r--pkgs/development/compilers/gambit/gambit-support.nix33
-rw-r--r--pkgs/development/compilers/gambit/unstable.nix12
-rw-r--r--pkgs/development/compilers/gcc/10/default.nix12
-rw-r--r--pkgs/development/compilers/gcc/4.8/default.nix6
-rw-r--r--pkgs/development/compilers/gcc/4.9/default.nix7
-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.nix31
-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.nix14
-rw-r--r--pkgs/development/compilers/gcc/8/default.nix12
-rw-r--r--pkgs/development/compilers/gcc/9/default.nix32
-rw-r--r--pkgs/development/compilers/gcc/builder.sh86
-rw-r--r--pkgs/development/compilers/gcc/common/configure-flags.nix38
-rw-r--r--pkgs/development/compilers/gcc/common/extra-target-flags.nix17
-rw-r--r--pkgs/development/compilers/gcc/common/pre-configure.nix32
-rw-r--r--pkgs/development/compilers/gcc/libphobos.patch119
-rw-r--r--pkgs/development/compilers/gcc/libstdc++-hook.sh4
-rw-r--r--pkgs/development/compilers/gerbil/build.nix89
-rw-r--r--pkgs/development/compilers/gerbil/default.nix10
-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.nix73
-rw-r--r--pkgs/development/compilers/gerbil/gerbil-utils.nix25
-rw-r--r--pkgs/development/compilers/gerbil/unstable.nix18
-rw-r--r--pkgs/development/compilers/ghc/8.10.1.nix7
-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-binary.nix18
-rw-r--r--pkgs/development/compilers/ghc/8.8.2.nix2
-rw-r--r--pkgs/development/compilers/ghc/8.8.3.nix5
-rw-r--r--pkgs/development/compilers/ghc/8.8.4.nix247
-rw-r--r--pkgs/development/compilers/ghc/head.nix25
-rw-r--r--pkgs/development/compilers/ghc/issue-18549.patch296
-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.nix10
-rw-r--r--pkgs/development/compilers/go/1.14.nix18
-rw-r--r--pkgs/development/compilers/go/1.15.nix255
-rw-r--r--pkgs/development/compilers/go/1.4.nix2
-rw-r--r--pkgs/development/compilers/go/remove-test-pie-1.15.patch (renamed from pkgs/development/compilers/go/remove-test-pie-1.13.patch)8
-rw-r--r--pkgs/development/compilers/go/setup-hook.sh5
-rw-r--r--pkgs/development/compilers/go/skip-cgo-tests-1.15.patch13
-rw-r--r--pkgs/development/compilers/go/skip-external-network-tests-1.15.patch13
-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.patch76
-rw-r--r--pkgs/development/compilers/graalvm/default.nix2
-rw-r--r--pkgs/development/compilers/graalvm/enterprise-edition.nix4
-rw-r--r--pkgs/development/compilers/idris2/default.nix78
-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/jsonnet/default.nix4
-rw-r--r--pkgs/development/compilers/julia/1.3.nix2
-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.nix4
-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/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.nix3
-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.nix5
-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.nix3
-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.nix3
-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/mlkit/default.nix24
-rw-r--r--pkgs/development/compilers/mono/generic.nix4
-rw-r--r--pkgs/development/compilers/mozart/default.nix3
-rw-r--r--pkgs/development/compilers/mruby/bison-36-compat.patch59
-rw-r--r--pkgs/development/compilers/mruby/default.nix10
-rw-r--r--pkgs/development/compilers/nextpnr/default.nix8
-rw-r--r--pkgs/development/compilers/nim/default.nix4
-rw-r--r--pkgs/development/compilers/ocaml/4.11.nix6
-rw-r--r--pkgs/development/compilers/ocaml/generic.nix8
-rw-r--r--pkgs/development/compilers/openjdk/11.nix12
-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/11.nix4
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/14.nix4
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk-linux-base.nix4
-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/purescript/purescript/default.nix8
-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.nix42
-rw-r--r--pkgs/development/compilers/rust/1_45.nix42
-rw-r--r--pkgs/development/compilers/rust/cargo.nix8
-rw-r--r--pkgs/development/compilers/rust/clippy.nix3
-rwxr-xr-xpkgs/development/compilers/rust/print-hashes.sh1
-rw-r--r--pkgs/development/compilers/rust/rls/default.nix20
-rw-r--r--pkgs/development/compilers/rust/rustc.nix12
-rw-r--r--pkgs/development/compilers/rust/rustfmt.nix13
-rw-r--r--pkgs/development/compilers/sbcl/2.0.0.nix26
-rw-r--r--pkgs/development/compilers/sbcl/default.nix26
-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/scas/default.nix26
-rw-r--r--pkgs/development/compilers/solc/default.nix16
-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.nix27
-rw-r--r--pkgs/development/compilers/tinygo/go.mod13
-rw-r--r--pkgs/development/compilers/tinygo/main.go18
-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.nix9
-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.nix14
-rw-r--r--pkgs/development/compilers/zulu/default.nix14
-rw-r--r--pkgs/development/compilers/zz/default.nix10
-rw-r--r--pkgs/development/coq-modules/Cheerios/default.nix8
-rw-r--r--pkgs/development/coq-modules/CoLoR/default.nix1
-rw-r--r--pkgs/development/coq-modules/InfSeqExt/default.nix8
-rw-r--r--pkgs/development/coq-modules/QuickChick/default.nix34
-rw-r--r--pkgs/development/coq-modules/Verdi/default.nix8
-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.nix12
-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/coquelicot/default.nix8
-rw-r--r--pkgs/development/coq-modules/equations/default.nix12
-rw-r--r--pkgs/development/coq-modules/flocq/default.nix10
-rw-r--r--pkgs/development/coq-modules/hierarchy-builder/default.nix10
-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/mathcomp/default.nix8
-rw-r--r--pkgs/development/coq-modules/mathcomp/extra.nix64
-rw-r--r--pkgs/development/coq-modules/simple-io/default.nix6
-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/dhall-modules/Prelude.nix31
-rw-r--r--pkgs/development/dhall-modules/dhall-kubernetes.nix31
-rw-r--r--pkgs/development/dhall-modules/dhall-packages.nix39
-rw-r--r--pkgs/development/dotnet-modules/python-language-server/default.nix6
-rw-r--r--pkgs/development/dotnet-modules/python-language-server/deps.nix768
-rw-r--r--pkgs/development/go-modules/generic/default.nix74
-rw-r--r--pkgs/development/guile-modules/guile-cairo/default.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix691
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix50
-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.nix5
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-head.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml1316
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix73
-rw-r--r--pkgs/development/haskell-modules/configuration-tensorflow.nix110
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix79
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix21547
-rw-r--r--pkgs/development/haskell-modules/non-hackage-packages.nix7
-rw-r--r--pkgs/development/haskell-modules/patches/proto-lens-0.5.1.0.patch23
-rw-r--r--pkgs/development/haskell-modules/patches/proto-lens-setup-0.4.0.2.patch154
-rw-r--r--pkgs/development/haskell-modules/with-packages-wrapper.nix16
-rw-r--r--pkgs/development/idris-modules/idris-wrapper.nix2
-rw-r--r--pkgs/development/idris-modules/sdl2.nix2
-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/TDEPS-150.patch23
-rw-r--r--pkgs/development/interpreters/clojure/babashka.nix16
-rw-r--r--pkgs/development/interpreters/clojure/default.nix36
-rw-r--r--pkgs/development/interpreters/dhall/build-dhall-directory-package.nix25
-rw-r--r--pkgs/development/interpreters/dhall/build-dhall-github-package.nix50
-rw-r--r--pkgs/development/interpreters/eff/default.nix4
-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/gauche/default.nix2
-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.nix9
-rw-r--r--pkgs/development/interpreters/janet/default.nix4
-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.nix37
-rw-r--r--pkgs/development/interpreters/perl/setup-hook-cross.sh2
-rw-r--r--pkgs/development/interpreters/php/default.nix55
-rw-r--r--pkgs/development/interpreters/php/php72-darwin-isfinite.patch62
-rw-r--r--pkgs/development/interpreters/php/zlib-darwin-tests.patch44
-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.nix17
-rw-r--r--pkgs/development/interpreters/python/cpython/2.7/profile-task.patch21
-rw-r--r--pkgs/development/interpreters/python/cpython/3.5/profile-task.patch21
-rw-r--r--pkgs/development/interpreters/python/cpython/3.6/profile-task.patch21
-rw-r--r--pkgs/development/interpreters/python/cpython/3.7/fix-hardcoded-path-checking-for-rpmbuild.patch30
-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.nix54
-rw-r--r--pkgs/development/interpreters/python/default.nix50
-rw-r--r--pkgs/development/interpreters/python/hooks/default.nix11
-rw-r--r--pkgs/development/interpreters/python/hooks/pip-build-hook.sh3
-rw-r--r--pkgs/development/interpreters/python/hooks/pip-install-hook.sh4
-rw-r--r--pkgs/development/interpreters/python/hooks/pytest-check-hook.sh12
-rw-r--r--pkgs/development/interpreters/python/hooks/python-recompile-bytecode-hook.sh24
-rw-r--r--pkgs/development/interpreters/python/hooks/python-remove-bin-bytecode-hook.sh8
-rw-r--r--pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh3
-rw-r--r--pkgs/development/interpreters/python/hooks/venv-shell-hook.sh6
-rw-r--r--pkgs/development/interpreters/python/mk-python-derivation.nix151
-rw-r--r--pkgs/development/interpreters/python/pypy/default.nix15
-rw-r--r--pkgs/development/interpreters/python/pypy/prebuilt.nix19
-rw-r--r--pkgs/development/interpreters/python/sitecustomize.py12
-rw-r--r--pkgs/development/interpreters/python/tests.nix16
-rw-r--r--pkgs/development/interpreters/python/tests/test_python.py7
-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.nix4
-rw-r--r--pkgs/development/interpreters/rakudo/zef.nix4
-rw-r--r--pkgs/development/interpreters/red/default.nix8
-rw-r--r--pkgs/development/interpreters/renpy/default.nix6
-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.nix7
-rw-r--r--pkgs/development/interpreters/wasmtime/default.nix10
-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/LASzip/LASzip2.nix21
-rw-r--r--pkgs/development/libraries/LASzip/default.nix16
-rw-r--r--pkgs/development/libraries/SDL2/default.nix10
-rw-r--r--pkgs/development/libraries/SDL2_mixer/default.nix4
-rw-r--r--pkgs/development/libraries/accountsservice/default.nix5
-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-Sheaves/default.nix24
-rw-r--r--pkgs/development/libraries/agda/TotalParserCombinators/contextfile259
-rw-r--r--pkgs/development/libraries/agda/TotalParserCombinators/default.nix26
-rw-r--r--pkgs/development/libraries/agda/agda-base/default.nix23
-rw-r--r--pkgs/development/libraries/agda/agda-categories/default.nix23
-rw-r--r--pkgs/development/libraries/agda/agda-prelude/default.nix27
-rw-r--r--pkgs/development/libraries/agda/bitvector/default.nix24
-rw-r--r--pkgs/development/libraries/agda/categories/default.nix24
-rw-r--r--pkgs/development/libraries/agda/cubical/default.nix33
-rw-r--r--pkgs/development/libraries/agda/generic/default.nix31
-rw-r--r--pkgs/development/libraries/agda/iowa-stdlib/default.nix (renamed from pkgs/development/libraries/agda/agda-iowa-stdlib/default.nix)16
-rw-r--r--pkgs/development/libraries/agda/pretty/contextfile43
-rw-r--r--pkgs/development/libraries/agda/pretty/default.nix26
-rw-r--r--pkgs/development/libraries/agda/standard-library/default.nix (renamed from pkgs/development/libraries/agda/agda-stdlib/default.nix)16
-rw-r--r--pkgs/development/libraries/alembic/default.nix4
-rw-r--r--pkgs/development/libraries/amdvlk/default.nix86
-rw-r--r--pkgs/development/libraries/aml/default.nix23
-rw-r--r--pkgs/development/libraries/amtk/default.nix4
-rw-r--r--pkgs/development/libraries/apache-activemq/default.nix4
-rw-r--r--pkgs/development/libraries/appstream/default.nix2
-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.nix76
-rw-r--r--pkgs/development/libraries/arrow-cpp/jemalloc-disable-shared.patch11
-rw-r--r--pkgs/development/libraries/asio/1.12.nix6
-rw-r--r--pkgs/development/libraries/asio/default.nix6
-rw-r--r--pkgs/development/libraries/asio/generic.nix2
-rw-r--r--pkgs/development/libraries/aspell/dictionaries.nix4
-rw-r--r--pkgs/development/libraries/assimp/default.nix2
-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/libgme/default.nix12
-rw-r--r--pkgs/development/libraries/audio/libinstpatch/default.nix4
-rw-r--r--pkgs/development/libraries/audio/libmysofa/default.nix6
-rw-r--r--pkgs/development/libraries/audio/lilv/default.nix4
-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/audio/qm-dsp/default.nix6
-rw-r--r--pkgs/development/libraries/audio/vamp-plugin-sdk/default.nix4
-rw-r--r--pkgs/development/libraries/avahi/default.nix14
-rw-r--r--pkgs/development/libraries/aws-checksums/default.nix4
-rw-r--r--pkgs/development/libraries/ayatana-ido/default.nix29
-rw-r--r--pkgs/development/libraries/babl/default.nix6
-rw-r--r--pkgs/development/libraries/bctoolbox/default.nix4
-rw-r--r--pkgs/development/libraries/biblesync/default.nix6
-rw-r--r--pkgs/development/libraries/bzrtp/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/capstone/default.nix4
-rw-r--r--pkgs/development/libraries/catch2/default.nix4
-rw-r--r--pkgs/development/libraries/celt/0.5.1.nix2
-rw-r--r--pkgs/development/libraries/celt/0.7.nix2
-rw-r--r--pkgs/development/libraries/celt/default.nix2
-rw-r--r--pkgs/development/libraries/cgui/default.nix1
-rw-r--r--pkgs/development/libraries/check/default.nix4
-rw-r--r--pkgs/development/libraries/cimg/default.nix4
-rw-r--r--pkgs/development/libraries/civetweb/default.nix2
-rw-r--r--pkgs/development/libraries/cm256cc/default.nix1
-rw-r--r--pkgs/development/libraries/comedilib/default.nix55
-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/cpputest/default.nix4
-rw-r--r--pkgs/development/libraries/curlcpp/default.nix6
-rw-r--r--pkgs/development/libraries/cutelyst/default.nix4
-rw-r--r--pkgs/development/libraries/dav1d/default.nix13
-rw-r--r--pkgs/development/libraries/dbus/default.nix4
-rw-r--r--pkgs/development/libraries/dbxml/default.nix2
-rw-r--r--pkgs/development/libraries/dclib/default.nix7
-rw-r--r--pkgs/development/libraries/dconf/default.nix2
-rw-r--r--pkgs/development/libraries/dlib/default.nix4
-rw-r--r--pkgs/development/libraries/docopt_cpp/default.nix11
-rw-r--r--pkgs/development/libraries/doctest/default.nix4
-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.nix26
-rw-r--r--pkgs/development/libraries/dxflib/default.nix36
-rw-r--r--pkgs/development/libraries/exiv2/default.nix10
-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/ffmpeg-full/default.nix28
-rw-r--r--pkgs/development/libraries/ffmpeg-full/prefer-libdav1d-over-libaom.patch19
-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.nix6
-rw-r--r--pkgs/development/libraries/ffmpeg/generic.nix9
-rw-r--r--pkgs/development/libraries/ffmpegthumbnailer/default.nix4
-rw-r--r--pkgs/development/libraries/ffms/default.nix4
-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/fmt/default.nix14
-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.nix82
-rw-r--r--pkgs/development/libraries/fontconfig/fix-joypixels.patch23
-rw-r--r--pkgs/development/libraries/fontconfig/make-fonts-conf.xsl8
-rw-r--r--pkgs/development/libraries/freeimage/default.nix5
-rw-r--r--pkgs/development/libraries/freenect/default.nix4
-rw-r--r--pkgs/development/libraries/freetds/default.nix4
-rw-r--r--pkgs/development/libraries/freetype/default.nix4
-rw-r--r--pkgs/development/libraries/gamin/default.nix2
-rw-r--r--pkgs/development/libraries/gbenchmark/default.nix4
-rw-r--r--pkgs/development/libraries/gcc/libgcc/default.nix2
-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/gdcm/default.nix29
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/default.nix76
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/xlib.nix52
-rw-r--r--pkgs/development/libraries/gdl/default.nix2
-rw-r--r--pkgs/development/libraries/gegl/4.0.nix14
-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-setup-hook.sh2
-rw-r--r--pkgs/development/libraries/gettext/gettext.git-2336451ed68d91ff4b5ae1acbc1eca30e47a86a9.patch82
-rw-r--r--pkgs/development/libraries/gexiv2/default.nix4
-rw-r--r--pkgs/development/libraries/gfbgraph/default.nix24
-rw-r--r--pkgs/development/libraries/gio-sharp/default.nix4
-rw-r--r--pkgs/development/libraries/gjs/default.nix19
-rw-r--r--pkgs/development/libraries/gjs/installed-tests-path.patch15
-rw-r--r--pkgs/development/libraries/gl2ps/default.nix18
-rw-r--r--pkgs/development/libraries/glib-networking/default.nix4
-rw-r--r--pkgs/development/libraries/glib/default.nix4
-rw-r--r--pkgs/development/libraries/glibc/2.27-CVE-2019-19126.patch18
-rw-r--r--pkgs/development/libraries/glibc/2.30-cve-2020-1752.patch62
-rw-r--r--pkgs/development/libraries/glibc/2.31-cve-2020-10029.patch79
-rw-r--r--pkgs/development/libraries/glibc/common.nix15
-rw-r--r--pkgs/development/libraries/gloox/default.nix4
-rw-r--r--pkgs/development/libraries/gmm/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/gnutls/default.nix4
-rw-r--r--pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch43
-rw-r--r--pkgs/development/libraries/gobject-introspection/default.nix110
-rw-r--r--pkgs/development/libraries/gobject-introspection/test_shlibs.patch43
-rw-r--r--pkgs/development/libraries/goffice/default.nix4
-rw-r--r--pkgs/development/libraries/gom/default.nix2
-rw-r--r--pkgs/development/libraries/gperftools/default.nix25
-rw-r--r--pkgs/development/libraries/gpgme/default.nix16
-rw-r--r--pkgs/development/libraries/graphene/default.nix9
-rw-r--r--pkgs/development/libraries/grib-api/default.nix2
-rw-r--r--pkgs/development/libraries/grpc/default.nix11
-rw-r--r--pkgs/development/libraries/gsettings-qt/default.nix27
-rw-r--r--pkgs/development/libraries/gssdp/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/core/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix2
-rw-r--r--pkgs/development/libraries/gthree/default.nix24
-rw-r--r--pkgs/development/libraries/gtk-sharp/3.0.nix32
-rw-r--r--pkgs/development/libraries/gtk/3.x.nix6
-rw-r--r--pkgs/development/libraries/gtkd/default.nix2
-rw-r--r--pkgs/development/libraries/gtksourceview/4.x.nix6
-rw-r--r--pkgs/development/libraries/harfbuzz/default.nix13
-rw-r--r--pkgs/development/libraries/hivex/default.nix4
-rw-r--r--pkgs/development/libraries/hunspell/dictionaries.nix29
-rw-r--r--pkgs/development/libraries/hyperscan/default.nix4
-rw-r--r--pkgs/development/libraries/ignition-math/default.nix27
-rw-r--r--pkgs/development/libraries/ignition-transport/0.9.0.nix9
-rw-r--r--pkgs/development/libraries/ignition-transport/1.0.1.nix9
-rw-r--r--pkgs/development/libraries/ignition-transport/generic.nix32
-rw-r--r--pkgs/development/libraries/igraph/default.nix16
-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/impy/default.nix44
-rw-r--r--pkgs/development/libraries/intel-gmmlib/default.nix4
-rw-r--r--pkgs/development/libraries/intel-media-driver/default.nix18
-rw-r--r--pkgs/development/libraries/intel-media-sdk/default.nix21
-rw-r--r--pkgs/development/libraries/iso-codes/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/jansson/default.nix4
-rw-r--r--pkgs/development/libraries/java/commons/lang/default.nix4
-rw-r--r--pkgs/development/libraries/java/jzmq/default.nix30
-rw-r--r--pkgs/development/libraries/jbig2dec/default.nix11
-rw-r--r--pkgs/development/libraries/json-c/default.nix18
-rw-r--r--pkgs/development/libraries/jsoncpp/default.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/default.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/fetch.sh2
-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.nix4
-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/kfilemetadata/default.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch36
-rw-r--r--pkgs/development/libraries/kde-frameworks/knewstuff.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/krunner.nix31
-rw-r--r--pkgs/development/libraries/kde-frameworks/qqc2-desktop-style.nix15
-rw-r--r--pkgs/development/libraries/kde-frameworks/srcs.nix656
-rw-r--r--pkgs/development/libraries/kdsoap/default.nix39
-rw-r--r--pkgs/development/libraries/kerberos/krb5.nix5
-rw-r--r--pkgs/development/libraries/khronos-ocl-icd-loader/default.nix4
-rw-r--r--pkgs/development/libraries/kissfft/default.nix6
-rw-r--r--pkgs/development/libraries/kmsxx/default.nix6
-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/leveldb/default.nix4
-rw-r--r--pkgs/development/libraries/libLAS/default.nix8
-rw-r--r--pkgs/development/libraries/libaom/default.nix30
-rw-r--r--pkgs/development/libraries/libaom/outputs.patch45
-rw-r--r--pkgs/development/libraries/libarchive/default.nix8
-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/libblockdev/default.nix4
-rw-r--r--pkgs/development/libraries/libblocksruntime/default.nix6
-rw-r--r--pkgs/development/libraries/libbytesize/default.nix4
-rw-r--r--pkgs/development/libraries/libchewing/default.nix2
-rw-r--r--pkgs/development/libraries/libcint/default.nix4
-rw-r--r--pkgs/development/libraries/libcloudproviders/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/libdap/default.nix4
-rw-r--r--pkgs/development/libraries/libdeflate/default.nix6
-rw-r--r--pkgs/development/libraries/libdigidoc/default.nix11
-rw-r--r--pkgs/development/libraries/libdigidocpp/default.nix4
-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/libe57format/default.nix55
-rw-r--r--pkgs/development/libraries/libebml/default.nix4
-rw-r--r--pkgs/development/libraries/libelf/default.nix5
-rw-r--r--pkgs/development/libraries/liberfa/default.nix27
-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/libexecinfo/default.nix17
-rw-r--r--pkgs/development/libraries/libexif/default.nix47
-rw-r--r--pkgs/development/libraries/libextractor/default.nix6
-rw-r--r--pkgs/development/libraries/libffi/default.nix5
-rw-r--r--pkgs/development/libraries/libfilezilla/default.nix11
-rw-r--r--pkgs/development/libraries/libfive/default.nix41
-rw-r--r--pkgs/development/libraries/libfprint/default.nix54
-rw-r--r--pkgs/development/libraries/libfyaml/default.nix21
-rw-r--r--pkgs/development/libraries/libgaminggear/default.nix4
-rw-r--r--pkgs/development/libraries/libgcrypt/default.nix8
-rw-r--r--pkgs/development/libraries/libgdiplus/default.nix2
-rw-r--r--pkgs/development/libraries/libglvnd/default.nix4
-rw-r--r--pkgs/development/libraries/libgpg-error/default.nix27
-rw-r--r--pkgs/development/libraries/libguestfs/default.nix4
-rw-r--r--pkgs/development/libraries/libgweather/default.nix4
-rw-r--r--pkgs/development/libraries/libhandy/default.nix16
-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/libiconv/setup-hook.sh2
-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/libjcat/default.nix4
-rw-r--r--pkgs/development/libraries/libjpeg-drop/default.nix36
-rw-r--r--pkgs/development/libraries/libjpeg-turbo/default.nix9
-rw-r--r--pkgs/development/libraries/libksba/default.nix4
-rw-r--r--pkgs/development/libraries/liblastfm/default.nix34
-rw-r--r--pkgs/development/libraries/liblinear/default.nix42
-rw-r--r--pkgs/development/libraries/liblinphone/default.nix4
-rw-r--r--pkgs/development/libraries/liblouis/default.nix4
-rw-r--r--pkgs/development/libraries/libmanette/default.nix2
-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/libmilter/darwin.patch28
-rw-r--r--pkgs/development/libraries/libmilter/default.nix3
-rw-r--r--pkgs/development/libraries/libmilter/sharedlib.patch17
-rw-r--r--pkgs/development/libraries/libmodulemd/1.nix21
-rw-r--r--pkgs/development/libraries/libmodulemd/default.nix6
-rw-r--r--pkgs/development/libraries/libmodulemd/dont-check-docs.patch29
-rw-r--r--pkgs/development/libraries/libmpack/default.nix2
-rw-r--r--pkgs/development/libraries/libmpc/default.nix5
-rw-r--r--pkgs/development/libraries/libmypaint/default.nix4
-rw-r--r--pkgs/development/libraries/libmysqlconnectorcpp/default.nix4
-rw-r--r--pkgs/development/libraries/libndctl/default.nix4
-rw-r--r--pkgs/development/libraries/libnetfilter_queue/default.nix4
-rw-r--r--pkgs/development/libraries/libnftnl/default.nix4
-rw-r--r--pkgs/development/libraries/libngspice/default.nix2
-rw-r--r--pkgs/development/libraries/libnotify/default.nix2
-rw-r--r--pkgs/development/libraries/libnsl/default.nix4
-rw-r--r--pkgs/development/libraries/libosinfo/default.nix13
-rw-r--r--pkgs/development/libraries/libosmium/default.nix6
-rw-r--r--pkgs/development/libraries/libpam-wrapper/default.nix33
-rw-r--r--pkgs/development/libraries/libpcap/default.nix26
-rw-r--r--pkgs/development/libraries/libplacebo/default.nix38
-rw-r--r--pkgs/development/libraries/libqalculate/default.nix4
-rw-r--r--pkgs/development/libraries/libqb/default.nix2
-rw-r--r--pkgs/development/libraries/libqmi/default.nix10
-rw-r--r--pkgs/development/libraries/libqtav/default.nix6
-rw-r--r--pkgs/development/libraries/libraspberrypi/default.nix6
-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/libressl/default.nix17
-rw-r--r--pkgs/development/libraries/librseq/default.nix15
-rw-r--r--pkgs/development/libraries/librsvg/default.nix4
-rw-r--r--pkgs/development/libraries/librsync/default.nix4
-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/libsolv/default.nix4
-rw-r--r--pkgs/development/libraries/libssh2/CVE-2019-17498.patch210
-rw-r--r--pkgs/development/libraries/libssh2/default.nix8
-rw-r--r--pkgs/development/libraries/libsvm/default.nix15
-rw-r--r--pkgs/development/libraries/libtap/default.nix2
-rw-r--r--pkgs/development/libraries/libtomcrypt/default.nix10
-rw-r--r--pkgs/development/libraries/libtoxcore/default.nix4
-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.nix15
-rw-r--r--pkgs/development/libraries/libu2f-server/default.nix11
-rw-r--r--pkgs/development/libraries/libuchardet/default.nix4
-rw-r--r--pkgs/development/libraries/libucl/default.nix58
-rw-r--r--pkgs/development/libraries/libunibreak/default.nix20
-rw-r--r--pkgs/development/libraries/libunistring/default.nix5
-rw-r--r--pkgs/development/libraries/liburcu/default.nix4
-rw-r--r--pkgs/development/libraries/liburing/default.nix6
-rw-r--r--pkgs/development/libraries/libusb1/default.nix4
-rw-r--r--pkgs/development/libraries/libuv/default.nix8
-rw-r--r--pkgs/development/libraries/libva/default.nix27
-rw-r--r--pkgs/development/libraries/libva/utils.nix (renamed from pkgs/development/libraries/libva-utils/default.nix)16
-rw-r--r--pkgs/development/libraries/libvdpau-va-gl/default.nix4
-rw-r--r--pkgs/development/libraries/libversion/default.nix2
-rw-r--r--pkgs/development/libraries/libvirt/default.nix13
-rw-r--r--pkgs/development/libraries/libvmaf/default.nix10
-rw-r--r--pkgs/development/libraries/libvncserver/default.nix17
-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/libwnck/3.x.nix2
-rw-r--r--pkgs/development/libraries/libxls/default.nix4
-rw-r--r--pkgs/development/libraries/libxml2/default.nix5
-rw-r--r--pkgs/development/libraries/libxmlb/default.nix4
-rw-r--r--pkgs/development/libraries/libxslt/default.nix11
-rw-r--r--pkgs/development/libraries/libxsmm/default.nix41
-rw-r--r--pkgs/development/libraries/libyaml/default.nix4
-rw-r--r--pkgs/development/libraries/lightstep-tracer-cpp/default.nix4
-rw-r--r--pkgs/development/libraries/lime/default.nix4
-rw-r--r--pkgs/development/libraries/lmdb/default.nix11
-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/marisa/default.nix4
-rw-r--r--pkgs/development/libraries/medfile/default.nix4
-rw-r--r--pkgs/development/libraries/mediastreamer/default.nix4
-rw-r--r--pkgs/development/libraries/mesa/default.nix86
-rw-r--r--pkgs/development/libraries/mesa/link-radv-with-ld_args_build_id.patch26
-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/mm-common/default.nix4
-rw-r--r--pkgs/development/libraries/mp4v2/default.nix30
-rw-r--r--pkgs/development/libraries/mpfr/default.nix9
-rw-r--r--pkgs/development/libraries/mtxclient/default.nix4
-rw-r--r--pkgs/development/libraries/multipart-parser-c/default.nix2
-rw-r--r--pkgs/development/libraries/mygui/default.nix4
-rw-r--r--pkgs/development/libraries/nanomsg/default.nix2
-rw-r--r--pkgs/development/libraries/nanopb/default.nix90
-rw-r--r--pkgs/development/libraries/nanopb/protoc-gen-nanopb3
-rw-r--r--pkgs/development/libraries/nanopb/test-message-with-annotations/default.nix27
-rw-r--r--pkgs/development/libraries/nanopb/test-message-with-annotations/withannotations.proto7
-rw-r--r--pkgs/development/libraries/nanopb/test-message-with-options/default.nix27
-rw-r--r--pkgs/development/libraries/nanopb/test-message-with-options/withoptions.options1
-rw-r--r--pkgs/development/libraries/nanopb/test-message-with-options/withoptions.proto5
-rw-r--r--pkgs/development/libraries/nanopb/test-simple-proto2/default.nix24
-rw-r--r--pkgs/development/libraries/nanopb/test-simple-proto2/simple.proto5
-rw-r--r--pkgs/development/libraries/nanopb/test-simple-proto3/default.nix24
-rw-r--r--pkgs/development/libraries/nanopb/test-simple-proto3/simple.proto5
-rw-r--r--pkgs/development/libraries/nco/default.nix4
-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.nix5
-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.nix92
-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/nuspell/default.nix5
-rw-r--r--pkgs/development/libraries/nv-codec-headers/default.nix4
-rw-r--r--pkgs/development/libraries/olm/default.nix6
-rw-r--r--pkgs/development/libraries/oneDNN/default.nix14
-rw-r--r--pkgs/development/libraries/oniguruma/default.nix8
-rw-r--r--pkgs/development/libraries/onnxruntime/default.nix12
-rw-r--r--pkgs/development/libraries/opencl-headers/default.nix4
-rw-r--r--pkgs/development/libraries/opencv/3.x.nix4
-rw-r--r--pkgs/development/libraries/opencv/4.x.nix4
-rw-r--r--pkgs/development/libraries/opencv/default.nix4
-rw-r--r--pkgs/development/libraries/opendht/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.nix32
-rw-r--r--pkgs/development/libraries/opengrm-ngram/default.nix25
-rw-r--r--pkgs/development/libraries/openh264/default.nix4
-rw-r--r--pkgs/development/libraries/openimagedenoise/default.nix16
-rw-r--r--pkgs/development/libraries/openldap/default.nix21
-rw-r--r--pkgs/development/libraries/openmpi/default.nix27
-rw-r--r--pkgs/development/libraries/openscenegraph/default.nix4
-rw-r--r--pkgs/development/libraries/openssl/default.nix5
-rw-r--r--pkgs/development/libraries/openvdb/default.nix4
-rw-r--r--pkgs/development/libraries/openwsman/default.nix4
-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/packr/default.nix8
-rw-r--r--pkgs/development/libraries/pango/default.nix15
-rw-r--r--pkgs/development/libraries/pangolin/default.nix4
-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.nix4
-rw-r--r--pkgs/development/libraries/pdal/default.nix98
-rw-r--r--pkgs/development/libraries/pdf2xml/default.nix6
-rw-r--r--pkgs/development/libraries/phonetisaurus/default.nix32
-rw-r--r--pkgs/development/libraries/physics/cernlib/default.nix2
-rw-r--r--pkgs/development/libraries/physics/cernlib/patch.patch (renamed from pkgs/development/libraries/physics/cernlib/patch)0
-rw-r--r--pkgs/development/libraries/physics/fastjet/default.nix4
-rw-r--r--pkgs/development/libraries/physics/geant4/datasets.nix7
-rw-r--r--pkgs/development/libraries/physics/geant4/default.nix31
-rw-r--r--pkgs/development/libraries/physics/geant4/g4py/default.nix65
-rw-r--r--pkgs/development/libraries/physics/geant4/g4py/setup-hook.sh1
-rw-r--r--pkgs/development/libraries/physics/hepmc2/default.nix17
-rw-r--r--pkgs/development/libraries/physics/hepmc2/in_source.patch25
-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/physics/mcgrid/default.nix30
-rw-r--r--pkgs/development/libraries/physics/rivet/default.nix44
-rw-r--r--pkgs/development/libraries/physics/yoda/default.nix18
-rw-r--r--pkgs/development/libraries/pipewire/0.2.nix (renamed from pkgs/development/libraries/pipewire/2.nix)4
-rw-r--r--pkgs/development/libraries/pipewire/default.nix15
-rw-r--r--pkgs/development/libraries/pkger/default.nix29
-rw-r--r--pkgs/development/libraries/pmix/default.nix48
-rw-r--r--pkgs/development/libraries/poco/default.nix4
-rw-r--r--pkgs/development/libraries/poppler/default.nix4
-rw-r--r--pkgs/development/libraries/precice/0001-Fix-the-install-target-dirs-to-use-the-CMAKE-flags.patch112
-rw-r--r--pkgs/development/libraries/precice/default.nix18
-rw-r--r--pkgs/development/libraries/prometheus-client-c/default.nix71
-rw-r--r--pkgs/development/libraries/protobuf/3.12.nix6
-rw-r--r--pkgs/development/libraries/protobufc/1.3.nix9
-rw-r--r--pkgs/development/libraries/protolock/default.nix4
-rw-r--r--pkgs/development/libraries/protozero/default.nix4
-rw-r--r--pkgs/development/libraries/qgnomeplatform/default.nix7
-rw-r--r--pkgs/development/libraries/qscintilla/default.nix9
-rw-r--r--pkgs/development/libraries/qt-4.x/4.8/default.nix5
-rw-r--r--pkgs/development/libraries/qt-5/5.12/default.nix27
-rw-r--r--pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0014-qtbase-pkg-config.patch14
-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.nix176
-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/modules/qtgamepad.nix9
-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.nix56
-rw-r--r--pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix4
-rw-r--r--pkgs/development/libraries/qtutilities/default.nix4
-rw-r--r--pkgs/development/libraries/quazip/default.nix4
-rw-r--r--pkgs/development/libraries/qwt/6.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/rapidcheck/default.nix2
-rw-r--r--pkgs/development/libraries/rdkafka/default.nix4
-rw-r--r--pkgs/development/libraries/readline/6.3.nix4
-rw-r--r--pkgs/development/libraries/readline/7.0.nix4
-rw-r--r--pkgs/development/libraries/readline/8.0.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/robin-map/default.nix4
-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/rubberband/default.nix22
-rw-r--r--pkgs/development/libraries/science/biology/bpp-core/default.nix36
-rw-r--r--pkgs/development/libraries/science/biology/bpp-phyl/default.nix32
-rw-r--r--pkgs/development/libraries/science/biology/bpp-popgen/default.nix35
-rw-r--r--pkgs/development/libraries/science/biology/bpp-seq/default.nix35
-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/itpp/default.nix55
-rw-r--r--pkgs/development/libraries/science/math/magma/default.nix12
-rw-r--r--pkgs/development/libraries/science/math/mkl/default.nix23
-rw-r--r--pkgs/development/libraries/science/math/openblas/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/sdformat/3.nix7
-rw-r--r--pkgs/development/libraries/sdformat/default.nix29
-rw-r--r--pkgs/development/libraries/seasocks/default.nix4
-rw-r--r--pkgs/development/libraries/sentencepiece/default.nix4
-rw-r--r--pkgs/development/libraries/serd/default.nix6
-rw-r--r--pkgs/development/libraries/serf/default.nix4
-rw-r--r--pkgs/development/libraries/serialdv/default.nix1
-rw-r--r--pkgs/development/libraries/simgear/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.nix46
-rw-r--r--pkgs/development/libraries/sord/default.nix2
-rw-r--r--pkgs/development/libraries/spdk/default.nix44
-rw-r--r--pkgs/development/libraries/spdlog/default.nix4
-rw-r--r--pkgs/development/libraries/speechd/default.nix2
-rw-r--r--pkgs/development/libraries/sqlcipher/default.nix16
-rw-r--r--pkgs/development/libraries/sqlite/analyzer.nix4
-rw-r--r--pkgs/development/libraries/sqlite/default.nix4
-rw-r--r--pkgs/development/libraries/sundials/default.nix4
-rw-r--r--pkgs/development/libraries/swiften/build-fix.patch32
-rw-r--r--pkgs/development/libraries/swiften/default.nix13
-rw-r--r--pkgs/development/libraries/swiftshader/default.nix63
-rw-r--r--pkgs/development/libraries/tachyon/default.nix1
-rw-r--r--pkgs/development/libraries/telepathy/qt/default.nix16
-rw-r--r--pkgs/development/libraries/tevent/default.nix2
-rw-r--r--pkgs/development/libraries/ticpp/default.nix2
-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/tpm2-tss/default.nix40
-rw-r--r--pkgs/development/libraries/tracker-miners/default.nix2
-rw-r--r--pkgs/development/libraries/tracker/default.nix105
-rw-r--r--pkgs/development/libraries/tremor/default.nix8
-rw-r--r--pkgs/development/libraries/trompeloeil/default.nix4
-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/unixODBCDrivers/default.nix2
-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/uriparser/default.nix12
-rw-r--r--pkgs/development/libraries/utf8cpp/default.nix32
-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/vapoursynth-mvtools/default.nix4
-rw-r--r--pkgs/development/libraries/vapoursynth/default.nix8
-rw-r--r--pkgs/development/libraries/vtk/7.x.nix74
-rw-r--r--pkgs/development/libraries/vtk/9.x.nix95
-rw-r--r--pkgs/development/libraries/vtk/default.nix17
-rw-r--r--pkgs/development/libraries/wasilibc/default.nix7
-rw-r--r--pkgs/development/libraries/wavpack/default.nix4
-rw-r--r--pkgs/development/libraries/wayland/default.nix11
-rw-r--r--pkgs/development/libraries/wayland/fix-wayland-cross-compilation.patch14
-rw-r--r--pkgs/development/libraries/waylandpp/default.nix4
-rw-r--r--pkgs/development/libraries/wcslib/default.nix4
-rw-r--r--pkgs/development/libraries/webkitgtk/default.nix7
-rw-r--r--pkgs/development/libraries/wiiuse/default.nix33
-rw-r--r--pkgs/development/libraries/wlroots/default.nix16
-rw-r--r--pkgs/development/libraries/wxSVG/default.nix4
-rw-r--r--pkgs/development/libraries/wxsqlite3/default.nix4
-rw-r--r--pkgs/development/libraries/wxwidgets/3.0/default.nix14
-rw-r--r--pkgs/development/libraries/wxwidgets/3.1/default.nix16
-rw-r--r--pkgs/development/libraries/x265/default.nix66
-rw-r--r--pkgs/development/libraries/xapian/default.nix3
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix5
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix26
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal/default.nix12
-rw-r--r--pkgs/development/libraries/xercesc/default.nix4
-rw-r--r--pkgs/development/libraries/xine-lib/default.nix4
-rw-r--r--pkgs/development/libraries/xmlrpc-c/default.nix4
-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/libraries/zlog/default.nix30
-rw-r--r--pkgs/development/libraries/zziplib/default.nix67
-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.nix617
-rw-r--r--pkgs/development/lua-modules/luaexpat.patch36
-rw-r--r--pkgs/development/lua-modules/overrides.nix56
-rw-r--r--pkgs/development/misc/google-clasp/node-packages.nix320
-rw-r--r--pkgs/development/misc/h3/default.nix4
-rw-r--r--pkgs/development/misc/msp430/mspdebug.nix51
-rw-r--r--pkgs/development/misc/rpiboot/unstable.nix6
-rw-r--r--pkgs/development/mobile/adb-sync/default.nix39
-rw-r--r--pkgs/development/mobile/androidenv/build-tools.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/emulator.nix7
-rw-r--r--pkgs/development/mobile/cocoapods/Gemfile-beta.lock57
-rw-r--r--pkgs/development/mobile/cocoapods/Gemfile.lock22
-rw-r--r--pkgs/development/mobile/cocoapods/gemset-beta.nix101
-rw-r--r--pkgs/development/mobile/cocoapods/gemset.nix42
-rw-r--r--pkgs/development/mobile/titaniumenv/default.nix2
-rw-r--r--pkgs/development/node-packages/composition.nix (renamed from pkgs/development/node-packages/composition-v12.nix)2
-rw-r--r--pkgs/development/node-packages/default-v10.nix132
-rw-r--r--pkgs/development/node-packages/default-v12.nix16
-rw-r--r--pkgs/development/node-packages/default-v13.nix16
-rw-r--r--pkgs/development/node-packages/default.nix187
-rwxr-xr-xpkgs/development/node-packages/generate.sh4
-rw-r--r--pkgs/development/node-packages/node-packages-v12.json9
-rw-r--r--pkgs/development/node-packages/node-packages-v12.nix3185
-rw-r--r--pkgs/development/node-packages/node-packages-v13.json3
-rw-r--r--pkgs/development/node-packages/node-packages-v13.nix1451
-rw-r--r--pkgs/development/node-packages/node-packages.json (renamed from pkgs/development/node-packages/node-packages-v10.json)17
-rw-r--r--pkgs/development/node-packages/node-packages.nix (renamed from pkgs/development/node-packages/node-packages-v10.nix)24161
-rw-r--r--pkgs/development/ocaml-modules/afl-persistent/default.nix39
-rw-r--r--pkgs/development/ocaml-modules/angstrom/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/async_extra/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/async_kernel/default.nix25
-rw-r--r--pkgs/development/ocaml-modules/async_unix/default.nix27
-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/base64/2.0.nix25
-rw-r--r--pkgs/development/ocaml-modules/batteries/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/bigarray-overlap/default.nix28
-rw-r--r--pkgs/development/ocaml-modules/biocaml/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/cairo2/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/cohttp/default.nix22
-rw-r--r--pkgs/development/ocaml-modules/cohttp/lwt-unix.nix2
-rw-r--r--pkgs/development/ocaml-modules/cohttp/lwt.nix2
-rw-r--r--pkgs/development/ocaml-modules/conduit/default.nix22
-rw-r--r--pkgs/development/ocaml-modules/conduit/lwt-unix.nix20
-rw-r--r--pkgs/development/ocaml-modules/conduit/lwt.nix14
-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/core/default.nix30
-rw-r--r--pkgs/development/ocaml-modules/core_kernel/default.nix30
-rw-r--r--pkgs/development/ocaml-modules/crowbar/default.nix32
-rw-r--r--pkgs/development/ocaml-modules/curly/default.nix29
-rw-r--r--pkgs/development/ocaml-modules/custom_printf/default.nix23
-rw-r--r--pkgs/development/ocaml-modules/dns/client.nix10
-rw-r--r--pkgs/development/ocaml-modules/dns/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/dune-action-plugin/default.nix19
-rw-r--r--pkgs/development/ocaml-modules/dune-glob/default.nix19
-rw-r--r--pkgs/development/ocaml-modules/dune-private-libs/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/eliom/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/elpi/default.nix18
-rw-r--r--pkgs/development/ocaml-modules/encore/default.nix18
-rw-r--r--pkgs/development/ocaml-modules/eqaf/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/functoria/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/functoria/runtime.nix17
-rw-r--r--pkgs/development/ocaml-modules/genspio/default.nix32
-rw-r--r--pkgs/development/ocaml-modules/git-http/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/git-unix/default.nix14
-rw-r--r--pkgs/development/ocaml-modules/git/default.nix27
-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/graphql/cohttp.nix2
-rw-r--r--pkgs/development/ocaml-modules/graphql_ppx/default.nix30
-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/index/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/inotify/default.nix18
-rw-r--r--pkgs/development/ocaml-modules/io-page/default.nix17
-rw-r--r--pkgs/development/ocaml-modules/io-page/unix.nix17
-rw-r--r--pkgs/development/ocaml-modules/ipaddr/2.6.1.nix32
-rw-r--r--pkgs/development/ocaml-modules/ipaddr/cstruct.nix17
-rw-r--r--pkgs/development/ocaml-modules/ipaddr/default.nix16
-rw-r--r--pkgs/development/ocaml-modules/ipaddr/sexp.nix18
-rw-r--r--pkgs/development/ocaml-modules/irmin/default.nix23
-rw-r--r--pkgs/development/ocaml-modules/irmin/fs.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/git.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/graphql.nix5
-rw-r--r--pkgs/development/ocaml-modules/irmin/http.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/mem.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/pack.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/ppx.nix23
-rw-r--r--pkgs/development/ocaml-modules/irmin/test.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/unix.nix2
-rw-r--r--pkgs/development/ocaml-modules/janestreet/0.13.nix3
-rw-r--r--pkgs/development/ocaml-modules/janestreet/async-extra.nix17
-rw-r--r--pkgs/development/ocaml-modules/janestreet/async-kernel.nix16
-rw-r--r--pkgs/development/ocaml-modules/janestreet/async-unix.nix17
-rw-r--r--pkgs/development/ocaml-modules/janestreet/core.nix19
-rw-r--r--pkgs/development/ocaml-modules/janestreet/core_kernel.nix18
-rw-r--r--pkgs/development/ocaml-modules/janestreet/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/janestreet/email-message-angstrom-0.14.patch22
-rw-r--r--pkgs/development/ocaml-modules/janestreet/textutils.nix18
-rw-r--r--pkgs/development/ocaml-modules/jingoo/default.nix24
-rw-r--r--pkgs/development/ocaml-modules/jwto/default.nix30
-rw-r--r--pkgs/development/ocaml-modules/lablgtk/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/lablgtk3/default.nix7
-rw-r--r--pkgs/development/ocaml-modules/lablgtkmathview/default.nix40
-rw-r--r--pkgs/development/ocaml-modules/labltk/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/lambdasoup/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/lens/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/lua-ml/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/lwt/default.nix (renamed from pkgs/development/ocaml-modules/lwt/4.x.nix)4
-rw-r--r--pkgs/development/ocaml-modules/lwt/legacy.nix58
-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/macaddr/cstruct.nix17
-rw-r--r--pkgs/development/ocaml-modules/macaddr/default.nix11
-rw-r--r--pkgs/development/ocaml-modules/macaddr/sexp.nix18
-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.nix17
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix18
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/rng.nix8
-rw-r--r--pkgs/development/ocaml-modules/mirage-unix/default.nix21
-rw-r--r--pkgs/development/ocaml-modules/mirage/runtime.nix25
-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/ocaml-gettext/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix4
-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/ocplib-json-typed/browser.nix1
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-server/default.nix14
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-start/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ocurl/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/odoc/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/opam-core/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/opam-format/default.nix21
-rw-r--r--pkgs/development/ocaml-modules/opam-repository/default.nix24
-rw-r--r--pkgs/development/ocaml-modules/opam-repository/download-tool.patch29
-rw-r--r--pkgs/development/ocaml-modules/opam-state/default.nix19
-rw-r--r--pkgs/development/ocaml-modules/opium/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ounit2/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/owl-base/default.nix13
-rw-r--r--pkgs/development/ocaml-modules/pa_test/default.nix23
-rw-r--r--pkgs/development/ocaml-modules/piqi/default.nix17
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving/default.nix4
-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/ppxfind/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/ppxlib/default.nix29
-rw-r--r--pkgs/development/ocaml-modules/prof_spacetime/default.nix43
-rw-r--r--pkgs/development/ocaml-modules/sexplib/108.08.00.nix28
-rw-r--r--pkgs/development/ocaml-modules/sexplib/111.25.00.nix28
-rw-r--r--pkgs/development/ocaml-modules/sexplib/112.24.01.nix25
-rw-r--r--pkgs/development/ocaml-modules/sodium/default.nix4
-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/textutils/default.nix23
-rw-r--r--pkgs/development/ocaml-modules/tls/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/torch/default.nix55
-rw-r--r--pkgs/development/ocaml-modules/tsort/default.nix21
-rw-r--r--pkgs/development/ocaml-modules/tuntap/default.nix28
-rw-r--r--pkgs/development/ocaml-modules/tyxml/default.nix4
-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/vg/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/webmachine/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/x509/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/xtmpl/default.nix4
-rw-r--r--pkgs/development/perl-modules/Percona-Toolkit/default.nix30
-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/3to2/default.nix2
-rw-r--r--pkgs/development/python-modules/Cython/default.nix8
-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/HTSeq/default.nix4
-rw-r--r--pkgs/development/python-modules/JPype1/default.nix6
-rw-r--r--pkgs/development/python-modules/JayDeBeApi/default.nix4
-rw-r--r--pkgs/development/python-modules/Mako/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/Pygments/2_5.nix27
-rw-r--r--pkgs/development/python-modules/Pygments/default.nix4
-rw-r--r--pkgs/development/python-modules/Theano/default.nix4
-rw-r--r--pkgs/development/python-modules/WSME/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/acoustics/default.nix4
-rw-r--r--pkgs/development/python-modules/adal/default.nix4
-rw-r--r--pkgs/development/python-modules/aenum/default.nix4
-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/aiofiles/default.nix4
-rw-r--r--pkgs/development/python-modules/aioftp/default.nix7
-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.nix50
-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/aiolifx/default.nix4
-rw-r--r--pkgs/development/python-modules/aioresponses/default.nix6
-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/alembic/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.nix17
-rw-r--r--pkgs/development/python-modules/amqp/default.nix13
-rw-r--r--pkgs/development/python-modules/ansible-runner/default.nix4
-rw-r--r--pkgs/development/python-modules/ansible/default.nix6
-rw-r--r--pkgs/development/python-modules/anytree/default.nix4
-rw-r--r--pkgs/development/python-modules/apache-airflow/default.nix20
-rw-r--r--pkgs/development/python-modules/apispec/default.nix4
-rw-r--r--pkgs/development/python-modules/appdirs/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/aresponses/default.nix4
-rw-r--r--pkgs/development/python-modules/argcomplete/default.nix4
-rw-r--r--pkgs/development/python-modules/arrow/default.nix35
-rw-r--r--pkgs/development/python-modules/ase/default.nix4
-rw-r--r--pkgs/development/python-modules/asgiref/default.nix4
-rw-r--r--pkgs/development/python-modules/astral/default.nix9
-rw-r--r--pkgs/development/python-modules/astroid/default.nix8
-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.nix3
-rwxr-xr-xpkgs/development/python-modules/atlassian-python-api/default.nix4
-rw-r--r--pkgs/development/python-modules/atom/default.nix7
-rw-r--r--pkgs/development/python-modules/atomicwrites/default.nix4
-rw-r--r--pkgs/development/python-modules/audio-metadata/default.nix7
-rw-r--r--pkgs/development/python-modules/auth0-python/default.nix16
-rw-r--r--pkgs/development/python-modules/authheaders/default.nix8
-rw-r--r--pkgs/development/python-modules/authlib/default.nix4
-rw-r--r--pkgs/development/python-modules/autobahn/default.nix4
-rw-r--r--pkgs/development/python-modules/automat/default.nix4
-rw-r--r--pkgs/development/python-modules/autopep8/default.nix10
-rw-r--r--pkgs/development/python-modules/av/default.nix10
-rw-r--r--pkgs/development/python-modules/avro-python3/default.nix4
-rw-r--r--pkgs/development/python-modules/avro/default.nix21
-rw-r--r--pkgs/development/python-modules/awkward/default.nix7
-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.nix8
-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-batch/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-cdn/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-cognitiveservices/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-hanaonazure/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-imagebuilder/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-iothub/default.nix4
-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-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-signalr/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-web/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-multiapi-storage/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-servicebus/default.nix7
-rw-r--r--pkgs/development/python-modules/azure-servicefabric/default.nix4
-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/backoff/default.nix26
-rw-r--r--pkgs/development/python-modules/base58/default.nix7
-rw-r--r--pkgs/development/python-modules/bash_kernel/default.nix7
-rw-r--r--pkgs/development/python-modules/batchgenerators/default.nix8
-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/beancount/default.nix4
-rw-r--r--pkgs/development/python-modules/beancount_docverif/default.nix46
-rw-r--r--pkgs/development/python-modules/beautifulsoup4/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.nix4
-rw-r--r--pkgs/development/python-modules/bidict/default.nix6
-rw-r--r--pkgs/development/python-modules/bids-validator/default.nix9
-rw-r--r--pkgs/development/python-modules/binwalk/default.nix10
-rw-r--r--pkgs/development/python-modules/biopython/default.nix7
-rw-r--r--pkgs/development/python-modules/bip_utils/default.nix34
-rw-r--r--pkgs/development/python-modules/biplist/default.nix35
-rw-r--r--pkgs/development/python-modules/bitarray/default.nix5
-rw-r--r--pkgs/development/python-modules/bitcoinlib/default.nix12
-rw-r--r--pkgs/development/python-modules/bitstruct/default.nix4
-rw-r--r--pkgs/development/python-modules/blaze/default.nix71
-rw-r--r--pkgs/development/python-modules/bleach/default.nix11
-rw-r--r--pkgs/development/python-modules/bleak/default.nix34
-rw-r--r--pkgs/development/python-modules/blis/default.nix4
-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.nix39
-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/boto3/default.nix4
-rw-r--r--pkgs/development/python-modules/botocore/default.nix6
-rw-r--r--pkgs/development/python-modules/bottleneck/default.nix4
-rw-r--r--pkgs/development/python-modules/bpython/clipboard-make-which-substitutable.patch27
-rw-r--r--pkgs/development/python-modules/bpython/default.nix17
-rw-r--r--pkgs/development/python-modules/braintree/default.nix4
-rw-r--r--pkgs/development/python-modules/branca/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/browser-cookie3/default.nix4
-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/btrees/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.nix46
-rw-r--r--pkgs/development/python-modules/buildbot/default.nix11
-rw-r--r--pkgs/development/python-modules/buildbot/pkg.nix6
-rw-r--r--pkgs/development/python-modules/buildbot/plugins.nix10
-rw-r--r--pkgs/development/python-modules/buildbot/worker.nix8
-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/cadquery/default.nix33
-rw-r--r--pkgs/development/python-modules/caldav/default.nix41
-rw-r--r--pkgs/development/python-modules/caldavclientlibrary-asynk/default.nix35
-rw-r--r--pkgs/development/python-modules/can/default.nix4
-rw-r--r--pkgs/development/python-modules/canmatrix/default.nix14
-rw-r--r--pkgs/development/python-modules/canonicaljson/default.nix7
-rw-r--r--pkgs/development/python-modules/canopen/default.nix26
-rw-r--r--pkgs/development/python-modules/capturer/default.nix4
-rw-r--r--pkgs/development/python-modules/cassandra-driver/default.nix4
-rw-r--r--pkgs/development/python-modules/catalogue/default.nix7
-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.nix16
-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/cffi/default.nix4
-rw-r--r--pkgs/development/python-modules/cfgv/default.nix7
-rw-r--r--pkgs/development/python-modules/cfn-lint/default.nix8
-rw-r--r--pkgs/development/python-modules/cftime/default.nix4
-rw-r--r--pkgs/development/python-modules/cgen/default.nix4
-rw-r--r--pkgs/development/python-modules/chalice/default.nix4
-rw-r--r--pkgs/development/python-modules/chameleon/default.nix4
-rw-r--r--pkgs/development/python-modules/chart-studio/default.nix4
-rw-r--r--pkgs/development/python-modules/check-manifest/default.nix15
-rw-r--r--pkgs/development/python-modules/cheetah3/default.nix20
-rw-r--r--pkgs/development/python-modules/cheroot/default.nix63
-rw-r--r--pkgs/development/python-modules/cherrypy/default.nix17
-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.nix50
-rw-r--r--pkgs/development/python-modules/citeproc-py/default.nix34
-rw-r--r--pkgs/development/python-modules/cjson/default.nix4
-rw-r--r--pkgs/development/python-modules/ckcc-protocol/default.nix4
-rw-r--r--pkgs/development/python-modules/cleo/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/click/default.nix4
-rw-r--r--pkgs/development/python-modules/clickclick/default.nix4
-rw-r--r--pkgs/development/python-modules/clifford/default.nix4
-rw-r--r--pkgs/development/python-modules/clikit/default.nix12
-rw-r--r--pkgs/development/python-modules/cloudflare/default.nix4
-rw-r--r--pkgs/development/python-modules/cloudpickle/default.nix7
-rw-r--r--pkgs/development/python-modules/cnvkit/default.nix8
-rw-r--r--pkgs/development/python-modules/codecov/default.nix4
-rw-r--r--pkgs/development/python-modules/codespell/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.nix26
-rw-r--r--pkgs/development/python-modules/configparser/default.nix10
-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/convertdate/default.nix4
-rw-r--r--pkgs/development/python-modules/cookiecutter/default.nix9
-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.nix7
-rw-r--r--pkgs/development/python-modules/cppy/default.nix27
-rw-r--r--pkgs/development/python-modules/crashtest/default.nix25
-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.nix4
-rw-r--r--pkgs/development/python-modules/croniter/default.nix8
-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/csscompressor/default.nix2
-rw-r--r--pkgs/development/python-modules/cssselect2/default.nix31
-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.nix4
-rw-r--r--pkgs/development/python-modules/curio/default.nix8
-rw-r--r--pkgs/development/python-modules/cvxpy/default.nix4
-rw-r--r--pkgs/development/python-modules/cx_freeze/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-jobqueue/default.nix4
-rw-r--r--pkgs/development/python-modules/dask-ml/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-cli/default.nix4
-rw-r--r--pkgs/development/python-modules/dataclasses-json/default.nix30
-rw-r--r--pkgs/development/python-modules/datadog/default.nix4
-rw-r--r--pkgs/development/python-modules/datasette/default.nix2
-rw-r--r--pkgs/development/python-modules/datashader/default.nix10
-rw-r--r--pkgs/development/python-modules/datatable/default.nix4
-rw-r--r--pkgs/development/python-modules/dateparser/default.nix27
-rw-r--r--pkgs/development/python-modules/dbus/default.nix4
-rw-r--r--pkgs/development/python-modules/ddt/default.nix21
-rw-r--r--pkgs/development/python-modules/debian/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.nix4
-rw-r--r--pkgs/development/python-modules/deepmerge/default.nix29
-rw-r--r--pkgs/development/python-modules/deform/default.nix4
-rw-r--r--pkgs/development/python-modules/deluge-client/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/deprecated/default.nix4
-rw-r--r--pkgs/development/python-modules/detox/default.nix30
-rw-r--r--pkgs/development/python-modules/devpi-common/default.nix11
-rw-r--r--pkgs/development/python-modules/diceware/default.nix (renamed from pkgs/tools/security/diceware/default.nix)10
-rw-r--r--pkgs/development/python-modules/dictionaries/default.nix4
-rw-r--r--pkgs/development/python-modules/diff_cover/default.nix4
-rw-r--r--pkgs/development/python-modules/discogs_client/default.nix4
-rw-r--r--pkgs/development/python-modules/discordpy/default.nix8
-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/distro/default.nix17
-rw-r--r--pkgs/development/python-modules/distro/nixos.patch31
-rw-r--r--pkgs/development/python-modules/dj-email-url/default.nix4
-rw-r--r--pkgs/development/python-modules/django-auth-ldap/default.nix4
-rw-r--r--pkgs/development/python-modules/django-cache-url/default.nix4
-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.nix4
-rw-r--r--pkgs/development/python-modules/django-filter/default.nix4
-rw-r--r--pkgs/development/python-modules/django-jinja2/default.nix4
-rw-r--r--pkgs/development/python-modules/django-mailman3/default.nix4
-rw-r--r--pkgs/development/python-modules/django-picklefield/default.nix4
-rw-r--r--pkgs/development/python-modules/django-q/default.nix4
-rw-r--r--pkgs/development/python-modules/django-raster/default.nix4
-rw-r--r--pkgs/development/python-modules/django-sampledatahelper/default.nix4
-rw-r--r--pkgs/development/python-modules/django-simple-captcha/default.nix2
-rw-r--r--pkgs/development/python-modules/django-versatileimagefield/default.nix7
-rw-r--r--pkgs/development/python-modules/django-widget-tweaks/default.nix25
-rw-r--r--pkgs/development/python-modules/django/2_2.nix4
-rw-r--r--pkgs/development/python-modules/django_guardian/default.nix4
-rw-r--r--pkgs/development/python-modules/django_modelcluster/default.nix4
-rw-r--r--pkgs/development/python-modules/django_redis/default.nix4
-rw-r--r--pkgs/development/python-modules/django_reversion/default.nix4
-rw-r--r--pkgs/development/python-modules/django_silk/default.nix8
-rw-r--r--pkgs/development/python-modules/django_tagging/default.nix4
-rw-r--r--pkgs/development/python-modules/django_taggit/default.nix4
-rw-r--r--pkgs/development/python-modules/djangorestframework/default.nix4
-rw-r--r--pkgs/development/python-modules/djmail/default.nix4
-rw-r--r--pkgs/development/python-modules/dkimpy/default.nix4
-rw-r--r--pkgs/development/python-modules/dm-sonnet/default.nix2
-rw-r--r--pkgs/development/python-modules/dnslib/default.nix4
-rw-r--r--pkgs/development/python-modules/doc8/default.nix4
-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.nix4
-rw-r--r--pkgs/development/python-modules/dogtail/default.nix6
-rw-r--r--pkgs/development/python-modules/dot2tex/default.nix24
-rw-r--r--pkgs/development/python-modules/dot2tex/path.patch104
-rw-r--r--pkgs/development/python-modules/dot2tex/test.patch12
-rw-r--r--pkgs/development/python-modules/dpath/default.nix15
-rw-r--r--pkgs/development/python-modules/dpkt/default.nix4
-rw-r--r--pkgs/development/python-modules/drf-yasg/default.nix4
-rw-r--r--pkgs/development/python-modules/dropbox/default.nix4
-rw-r--r--pkgs/development/python-modules/duckdb/default.nix46
-rw-r--r--pkgs/development/python-modules/duecredit/default.nix37
-rw-r--r--pkgs/development/python-modules/dulwich/0_19.nix30
-rw-r--r--pkgs/development/python-modules/dulwich/default.nix4
-rw-r--r--pkgs/development/python-modules/easyprocess/default.nix4
-rw-r--r--pkgs/development/python-modules/ecdsa/default.nix5
-rw-r--r--pkgs/development/python-modules/ecpy/default.nix4
-rw-r--r--pkgs/development/python-modules/elasticsearch-dsl/default.nix4
-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/email-validator/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/enum34/default.nix4
-rw-r--r--pkgs/development/python-modules/ephem/default.nix4
-rw-r--r--pkgs/development/python-modules/escapism/default.nix4
-rw-r--r--pkgs/development/python-modules/etelemetry/default.nix9
-rw-r--r--pkgs/development/python-modules/etesync/default.nix4
-rw-r--r--pkgs/development/python-modules/evdev/default.nix4
-rw-r--r--pkgs/development/python-modules/eve/default.nix4
-rw-r--r--pkgs/development/python-modules/eventlet/default.nix4
-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/exifread/default.nix4
-rw-r--r--pkgs/development/python-modules/extension-helpers/default.nix41
-rw-r--r--pkgs/development/python-modules/eyed3/default.nix23
-rw-r--r--pkgs/development/python-modules/face/default.nix4
-rw-r--r--pkgs/development/python-modules/fake-useragent/default.nix22
-rw-r--r--pkgs/development/python-modules/faker/default.nix4
-rw-r--r--pkgs/development/python-modules/fastapi/default.nix4
-rw-r--r--pkgs/development/python-modules/fastparquet/default.nix8
-rw-r--r--pkgs/development/python-modules/fastrlock/default.nix4
-rw-r--r--pkgs/development/python-modules/ffmpeg-python/default.nix4
-rw-r--r--pkgs/development/python-modules/filemagic/default.nix3
-rw-r--r--pkgs/development/python-modules/finalfusion/default.nix56
-rw-r--r--pkgs/development/python-modules/flake8-debugger/default.nix11
-rw-r--r--pkgs/development/python-modules/flake8-future-import/default.nix7
-rw-r--r--pkgs/development/python-modules/flake8/default.nix11
-rw-r--r--pkgs/development/python-modules/flammkuchen/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-admin/default.nix15
-rw-r--r--pkgs/development/python-modules/flask-appbuilder/default.nix3
-rw-r--r--pkgs/development/python-modules/flask-assets/default.nix6
-rw-r--r--pkgs/development/python-modules/flask-autoindex/default.nix12
-rw-r--r--pkgs/development/python-modules/flask-caching/default.nix7
-rw-r--r--pkgs/development/python-modules/flask-compress/default.nix10
-rw-r--r--pkgs/development/python-modules/flask-httpauth/default.nix6
-rw-r--r--pkgs/development/python-modules/flask-limiter/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-login/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-marshmallow/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-migrate/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-restful/default.nix30
-rw-r--r--pkgs/development/python-modules/flask-restx/default.nix50
-rw-r--r--pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix6
-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-swagger-ui/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-testing/default.nix20
-rw-r--r--pkgs/development/python-modules/flask-versioned/default.nix23
-rw-r--r--pkgs/development/python-modules/flask/default.nix4
-rw-r--r--pkgs/development/python-modules/flit-core/default.nix36
-rw-r--r--pkgs/development/python-modules/flit/default.nix16
-rw-r--r--pkgs/development/python-modules/flower/default.nix37
-rw-r--r--pkgs/development/python-modules/flowlogs_reader/default.nix4
-rw-r--r--pkgs/development/python-modules/fluent-logger/default.nix4
-rw-r--r--pkgs/development/python-modules/fluidasserts/default.nix210
-rw-r--r--pkgs/development/python-modules/folium/default.nix4
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix4
-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/freezegun/default.nix7
-rw-r--r--pkgs/development/python-modules/fritzconnection/default.nix2
-rw-r--r--pkgs/development/python-modules/fsspec/default.nix18
-rw-r--r--pkgs/development/python-modules/ftfy/default.nix9
-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.nix31
-rw-r--r--pkgs/development/python-modules/genzshcomp/default.nix4
-rw-r--r--pkgs/development/python-modules/geoalchemy2/default.nix10
-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/geopy/2.nix4
-rw-r--r--pkgs/development/python-modules/gevent/default.nix13
-rw-r--r--pkgs/development/python-modules/geventhttpclient/default.nix4
-rw-r--r--pkgs/development/python-modules/gidgethub/default.nix10
-rw-r--r--pkgs/development/python-modules/gin-config/default.nix4
-rw-r--r--pkgs/development/python-modules/gipc/default.nix4
-rw-r--r--pkgs/development/python-modules/git-revise/default.nix26
-rw-r--r--pkgs/development/python-modules/gitdb/default.nix4
-rw-r--r--pkgs/development/python-modules/github-webhook/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/glom/default.nix4
-rw-r--r--pkgs/development/python-modules/gnutls/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-music-proto/default.nix6
-rw-r--r--pkgs/development/python-modules/google-music/default.nix4
-rw-r--r--pkgs/development/python-modules/google-pasta/default.nix6
-rw-r--r--pkgs/development/python-modules/google_api_core/default.nix17
-rw-r--r--pkgs/development/python-modules/google_auth/default.nix14
-rw-r--r--pkgs/development/python-modules/google_cloud_asset/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_container/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_error_reporting/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_firestore/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_iot/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_kms/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_monitoring/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_pubsub/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_redis/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_resource_manager/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_secret_manager/default.nix34
-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_speech/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_storage/default.nix19
-rw-r--r--pkgs/development/python-modules/google_cloud_tasks/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_texttospeech/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_videointelligence/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_vision/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/googleapis_common_protos/default.nix4
-rw-r--r--pkgs/development/python-modules/gpxpy/default.nix7
-rw-r--r--pkgs/development/python-modules/graph_nets/default.nix4
-rw-r--r--pkgs/development/python-modules/graphite-web/default.nix4
-rw-r--r--pkgs/development/python-modules/graphite-web/update-django-tagging.patch15
-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/green/default.nix4
-rw-r--r--pkgs/development/python-modules/greenlet/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/gspread/default.nix8
-rw-r--r--pkgs/development/python-modules/gst-python/default.nix9
-rw-r--r--pkgs/development/python-modules/gtimelog/default.nix61
-rw-r--r--pkgs/development/python-modules/gym/default.nix4
-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.nix38
-rw-r--r--pkgs/development/python-modules/ha-ffmpeg/default.nix4
-rw-r--r--pkgs/development/python-modules/hass-nabucasa/default.nix27
-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.nix4
-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/hiyapyco/default.nix32
-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/homeassistant-pyozw/default.nix4
-rw-r--r--pkgs/development/python-modules/hsaudiotag3k/default.nix4
-rw-r--r--pkgs/development/python-modules/hstspreload/default.nix4
-rw-r--r--pkgs/development/python-modules/html-sanitizer/default.nix21
-rw-r--r--pkgs/development/python-modules/htmllaundry/default.nix4
-rw-r--r--pkgs/development/python-modules/htmlmin/default.nix2
-rw-r--r--pkgs/development/python-modules/http-ece/default.nix7
-rw-r--r--pkgs/development/python-modules/httplib2/default.nix4
-rw-r--r--pkgs/development/python-modules/httpretty/0.nix52
-rw-r--r--pkgs/development/python-modules/httpretty/default.nix15
-rw-r--r--pkgs/development/python-modules/httptools/default.nix11
-rw-r--r--pkgs/development/python-modules/huey/default.nix25
-rw-r--r--pkgs/development/python-modules/humanfriendly/default.nix4
-rw-r--r--pkgs/development/python-modules/humanize/default.nix10
-rw-r--r--pkgs/development/python-modules/hupper/default.nix4
-rw-r--r--pkgs/development/python-modules/hvac/default.nix4
-rw-r--r--pkgs/development/python-modules/hvplot/default.nix13
-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/hypothesis/2.nix45
-rw-r--r--pkgs/development/python-modules/hypothesis/default.nix11
-rw-r--r--pkgs/development/python-modules/i3ipc/default.nix7
-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.nix4
-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/imageio-ffmpeg/default.nix4
-rw-r--r--pkgs/development/python-modules/imageio/default.nix16
-rw-r--r--pkgs/development/python-modules/imagesize/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)15
-rw-r--r--pkgs/development/python-modules/immutables/default.nix4
-rw-r--r--pkgs/development/python-modules/impacket/default.nix4
-rw-r--r--pkgs/development/python-modules/importlib-metadata/default.nix6
-rw-r--r--pkgs/development/python-modules/importlib-resources/default.nix14
-rw-r--r--pkgs/development/python-modules/inflect/default.nix9
-rw-r--r--pkgs/development/python-modules/inflection/default.nix7
-rw-r--r--pkgs/development/python-modules/influxdb-client/default.nix53
-rw-r--r--pkgs/development/python-modules/influxdb/default.nix15
-rw-r--r--pkgs/development/python-modules/infoqscraper/default.nix2
-rw-r--r--pkgs/development/python-modules/iniparse/default.nix7
-rw-r--r--pkgs/development/python-modules/intake/default.nix4
-rw-r--r--pkgs/development/python-modules/internetarchive/default.nix4
-rw-r--r--pkgs/development/python-modules/invoke/default.nix7
-rw-r--r--pkgs/development/python-modules/ipdb/default.nix4
-rw-r--r--pkgs/development/python-modules/ipympl/default.nix4
-rw-r--r--pkgs/development/python-modules/ipyparallel/default.nix6
-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.nix11
-rw-r--r--pkgs/development/python-modules/isbnlib/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.nix31
-rw-r--r--pkgs/development/python-modules/janus/default.nix11
-rw-r--r--pkgs/development/python-modules/jaraco_collections/default.nix4
-rw-r--r--pkgs/development/python-modules/jaraco_functools/2.nix25
-rw-r--r--pkgs/development/python-modules/jaraco_functools/default.nix10
-rw-r--r--pkgs/development/python-modules/jaraco_itertools/0001-Don-t-run-flake8-checks-during-the-build.patch37
-rw-r--r--pkgs/development/python-modules/jaraco_itertools/default.nix15
-rw-r--r--pkgs/development/python-modules/jaraco_logging/0001-Don-t-run-flake8-checks-during-the-build.patch38
-rw-r--r--pkgs/development/python-modules/jaraco_logging/default.nix18
-rw-r--r--pkgs/development/python-modules/jaraco_stream/2.nix13
-rw-r--r--pkgs/development/python-modules/javaobj-py3/default.nix6
-rw-r--r--pkgs/development/python-modules/jc/default.nix4
-rw-r--r--pkgs/development/python-modules/jedi/default.nix8
-rw-r--r--pkgs/development/python-modules/jeepney/default.nix4
-rw-r--r--pkgs/development/python-modules/jellyfin-apiclient-python/default.nix4
-rw-r--r--pkgs/development/python-modules/jellyfish/default.nix4
-rw-r--r--pkgs/development/python-modules/jenkins-job-builder/default.nix4
-rw-r--r--pkgs/development/python-modules/jinja2/default.nix4
-rw-r--r--pkgs/development/python-modules/jmespath/default.nix4
-rw-r--r--pkgs/development/python-modules/joblib/default.nix4
-rw-r--r--pkgs/development/python-modules/jq/default.nix2
-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/jsonpickle/default.nix21
-rw-r--r--pkgs/development/python-modules/jug/default.nix4
-rw-r--r--pkgs/development/python-modules/junit-xml/default.nix23
-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-repo2docker/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyter-sphinx/default.nix32
-rw-r--r--pkgs/development/python-modules/jupyter-telemetry/default.nix32
-rw-r--r--pkgs/development/python-modules/jupyter_client/5.nix2
-rw-r--r--pkgs/development/python-modules/jupyter_client/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix37
-rw-r--r--pkgs/development/python-modules/jupyterhub/default.nix6
-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/kafka-python/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/keras-preprocessing/default.nix4
-rw-r--r--pkgs/development/python-modules/keyring/default.nix10
-rw-r--r--pkgs/development/python-modules/kinparse/default.nix38
-rw-r--r--pkgs/development/python-modules/kiwisolver/1_1.nix28
-rw-r--r--pkgs/development/python-modules/kiwisolver/default.nix9
-rw-r--r--pkgs/development/python-modules/knack/default.nix4
-rw-r--r--pkgs/development/python-modules/kombu/default.nix7
-rw-r--r--pkgs/development/python-modules/kubernetes/default.nix4
-rw-r--r--pkgs/development/python-modules/labelbox/default.nix4
-rw-r--r--pkgs/development/python-modules/lark-parser/default.nix4
-rw-r--r--pkgs/development/python-modules/latexcodec/default.nix12
-rw-r--r--pkgs/development/python-modules/launchpadlib/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.nix21
-rw-r--r--pkgs/development/python-modules/lazy_import/default.nix35
-rw-r--r--pkgs/development/python-modules/ldap/default.nix4
-rw-r--r--pkgs/development/python-modules/libagent/default.nix12
-rw-r--r--pkgs/development/python-modules/libcloud/2.nix39
-rw-r--r--pkgs/development/python-modules/libcloud/default.nix4
-rw-r--r--pkgs/development/python-modules/libevdev/default.nix35
-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.nix4
-rw-r--r--pkgs/development/python-modules/libthumbor/default.nix4
-rw-r--r--pkgs/development/python-modules/libusb1/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/limits/default.nix4
-rw-r--r--pkgs/development/python-modules/limnoria/default.nix6
-rw-r--r--pkgs/development/python-modules/line_profiler/default.nix20
-rw-r--r--pkgs/development/python-modules/line_profiler/python37.patch36
-rw-r--r--pkgs/development/python-modules/linecache2/default.nix10
-rw-r--r--pkgs/development/python-modules/livelossplot/default.nix40
-rw-r--r--pkgs/development/python-modules/llvmlite/default.nix7
-rw-r--r--pkgs/development/python-modules/loguru/default.nix6
-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/maestral/default.nix57
-rw-r--r--pkgs/development/python-modules/mahotas/default.nix4
-rw-r--r--pkgs/development/python-modules/mailmanclient/default.nix8
-rw-r--r--pkgs/development/python-modules/mapsplotlib/default.nix4
-rw-r--r--pkgs/development/python-modules/marionette-harness/mozfile.nix3
-rw-r--r--pkgs/development/python-modules/markdown/3_1.nix34
-rw-r--r--pkgs/development/python-modules/markdown/default.nix15
-rw-r--r--pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix4
-rw-r--r--pkgs/development/python-modules/marshmallow/default.nix4
-rw-r--r--pkgs/development/python-modules/mathics/default.nix50
-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.nix6
-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/mdp/default.nix4
-rw-r--r--pkgs/development/python-modules/mecab-python3/default.nix4
-rw-r--r--pkgs/development/python-modules/meinheld/default.nix4
-rw-r--r--pkgs/development/python-modules/meld3/default.nix4
-rw-r--r--pkgs/development/python-modules/meshlabxml/default.nix29
-rw-r--r--pkgs/development/python-modules/mido/default.nix39
-rw-r--r--pkgs/development/python-modules/mido/libportmidi-cdll.patch19
-rw-r--r--pkgs/development/python-modules/minidb/default.nix4
-rw-r--r--pkgs/development/python-modules/minio/default.nix27
-rw-r--r--pkgs/development/python-modules/mlflow/default.nix6
-rw-r--r--pkgs/development/python-modules/mock/2.nix44
-rw-r--r--pkgs/development/python-modules/mock/default.nix12
-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/mortgage/default.nix4
-rw-r--r--pkgs/development/python-modules/moto/default.nix10
-rw-r--r--pkgs/development/python-modules/moviepy/default.nix4
-rw-r--r--pkgs/development/python-modules/mox3/default.nix6
-rw-r--r--pkgs/development/python-modules/mpv/default.nix4
-rw-r--r--pkgs/development/python-modules/msal-extensions/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/multidict/default.nix4
-rw-r--r--pkgs/development/python-modules/mutagen/1.43.nix35
-rw-r--r--pkgs/development/python-modules/mutagen/default.nix6
-rw-r--r--pkgs/development/python-modules/mwclient/default.nix4
-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/nassl/default.nix120
-rw-r--r--pkgs/development/python-modules/nassl/nix-ssl-cert-file.patch14
-rw-r--r--pkgs/development/python-modules/natsort/default.nix8
-rw-r--r--pkgs/development/python-modules/nbclient/default.nix24
-rw-r--r--pkgs/development/python-modules/nbformat/2.nix2
-rw-r--r--pkgs/development/python-modules/nbformat/default.nix4
-rw-r--r--pkgs/development/python-modules/nbsmoke/default.nix4
-rw-r--r--pkgs/development/python-modules/nbsphinx/default.nix7
-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/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/nilearn/default.nix4
-rw-r--r--pkgs/development/python-modules/nine/default.nix4
-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.nix20
-rw-r--r--pkgs/development/python-modules/nltk/default.nix18
-rw-r--r--pkgs/development/python-modules/nmigen/default.nix8
-rw-r--r--pkgs/development/python-modules/nodeenv/default.nix6
-rw-r--r--pkgs/development/python-modules/notebook/2.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.nix94
-rw-r--r--pkgs/development/python-modules/numpy/default.nix7
-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.nix4
-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/oauthlib/3.1.nix33
-rw-r--r--pkgs/development/python-modules/oauthlib/default.nix13
-rw-r--r--pkgs/development/python-modules/odo/default.nix59
-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/opentimestamps/default.nix10
-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.nix7
-rw-r--r--pkgs/development/python-modules/orderedmultidict/default.nix7
-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/owslib/default.nix8
-rw-r--r--pkgs/development/python-modules/packaging/default.nix4
-rw-r--r--pkgs/development/python-modules/packet-python/default.nix4
-rw-r--r--pkgs/development/python-modules/pandas/default.nix16
-rw-r--r--pkgs/development/python-modules/pandocfilters/default.nix2
-rw-r--r--pkgs/development/python-modules/panel/default.nix4
-rw-r--r--pkgs/development/python-modules/papermill/default.nix8
-rw-r--r--pkgs/development/python-modules/papis/default.nix17
-rw-r--r--pkgs/development/python-modules/parameterized/default.nix4
-rw-r--r--pkgs/development/python-modules/paramiko/default.nix1
-rw-r--r--pkgs/development/python-modules/parfive/default.nix4
-rw-r--r--pkgs/development/python-modules/parsedatetime/default.nix4
-rw-r--r--pkgs/development/python-modules/parsel/default.nix7
-rw-r--r--pkgs/development/python-modules/parso/default.nix4
-rw-r--r--pkgs/development/python-modules/parsy/default.nix2
-rw-r--r--pkgs/development/python-modules/paste/default.nix4
-rw-r--r--pkgs/development/python-modules/pastedeploy/default.nix4
-rw-r--r--pkgs/development/python-modules/pathspec/default.nix4
-rw-r--r--pkgs/development/python-modules/pbr/default.nix4
-rw-r--r--pkgs/development/python-modules/pc-ble-driver-py/default.nix40
-rw-r--r--pkgs/development/python-modules/pdf2image/default.nix4
-rw-r--r--pkgs/development/python-modules/pdfminer_six/default.nix18
-rw-r--r--pkgs/development/python-modules/peewee/default.nix6
-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.nix52
-rw-r--r--pkgs/development/python-modules/pep8-naming/default.nix12
-rw-r--r--pkgs/development/python-modules/periodictable/default.nix2
-rw-r--r--pkgs/development/python-modules/persim/default.nix4
-rw-r--r--pkgs/development/python-modules/persistent/default.nix4
-rw-r--r--pkgs/development/python-modules/pex/default.nix4
-rw-r--r--pkgs/development/python-modules/pexpect/default.nix13
-rw-r--r--pkgs/development/python-modules/pg8000/default.nix4
-rw-r--r--pkgs/development/python-modules/pglast/default.nix7
-rw-r--r--pkgs/development/python-modules/phik/default.nix6
-rw-r--r--pkgs/development/python-modules/phonenumbers/default.nix4
-rw-r--r--pkgs/development/python-modules/piccata/default.nix20
-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.nix82
-rw-r--r--pkgs/development/python-modules/pillow/default.nix27
-rw-r--r--pkgs/development/python-modules/pint/default.nix4
-rw-r--r--pkgs/development/python-modules/pip-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/pip/default.nix8
-rw-r--r--pkgs/development/python-modules/pip/reproducible.patch13
-rw-r--r--pkgs/development/python-modules/pipdate/default.nix16
-rw-r--r--pkgs/development/python-modules/pkgconfig/default.nix10
-rw-r--r--pkgs/development/python-modules/pkuseg/default.nix36
-rw-r--r--pkgs/development/python-modules/pkutils/default.nix41
-rw-r--r--pkgs/development/python-modules/plac/default.nix4
-rw-r--r--pkgs/development/python-modules/plaid-python/default.nix6
-rw-r--r--pkgs/development/python-modules/playsound/default.nix28
-rw-r--r--pkgs/development/python-modules/plexapi/default.nix4
-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/plyfile/default.nix4
-rw-r--r--pkgs/development/python-modules/poetry-core/default.nix63
-rw-r--r--pkgs/development/python-modules/poetry/default.nix108
-rw-r--r--pkgs/development/python-modules/poetry/glob2.nix11
-rw-r--r--pkgs/development/python-modules/ponywhoosh/default.nix23
-rw-r--r--pkgs/development/python-modules/portalocker/default.nix27
-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.nix20
-rw-r--r--pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch32
-rw-r--r--pkgs/development/python-modules/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch26
-rw-r--r--pkgs/development/python-modules/premailer/default.nix4
-rw-r--r--pkgs/development/python-modules/privacyidea/default.nix51
-rw-r--r--pkgs/development/python-modules/privacyidea/ldap-proxy.nix27
-rw-r--r--pkgs/development/python-modules/process-tests/default.nix4
-rw-r--r--pkgs/development/python-modules/progressbar2/default.nix10
-rw-r--r--pkgs/development/python-modules/prometheus_client/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/psd-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/psutil/default.nix9
-rw-r--r--pkgs/development/python-modules/psycopg2/default.nix4
-rw-r--r--pkgs/development/python-modules/ptpython/default.nix11
-rw-r--r--pkgs/development/python-modules/pulp/default.nix11
-rw-r--r--pkgs/development/python-modules/pulsectl/default.nix4
-rw-r--r--pkgs/development/python-modules/pure-pcapy3/default.nix18
-rw-r--r--pkgs/development/python-modules/pvlib/default.nix44
-rw-r--r--pkgs/development/python-modules/pwntools/default.nix57
-rw-r--r--pkgs/development/python-modules/pxml/default.nix37
-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/py3status/default.nix4
-rw-r--r--pkgs/development/python-modules/py4j/default.nix5
-rw-r--r--pkgs/development/python-modules/pyGithub/default.nix2
-rw-r--r--pkgs/development/python-modules/pyTelegramBotAPI/default.nix4
-rw-r--r--pkgs/development/python-modules/py_scrypt/default.nix6
-rw-r--r--pkgs/development/python-modules/pyacoustid/default.nix4
-rw-r--r--pkgs/development/python-modules/pyaml/default.nix4
-rw-r--r--pkgs/development/python-modules/pyarrow/default.nix17
-rw-r--r--pkgs/development/python-modules/pyasn1-modules/default.nix4
-rw-r--r--pkgs/development/python-modules/pyatmo/default.nix8
-rw-r--r--pkgs/development/python-modules/pyatspi/default.nix2
-rw-r--r--pkgs/development/python-modules/pyatv/default.nix44
-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/pybindgen/default.nix4
-rw-r--r--pkgs/development/python-modules/pybullet/default.nix4
-rw-r--r--pkgs/development/python-modules/pycares/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/pycodestyle/default.nix15
-rw-r--r--pkgs/development/python-modules/pycognito/default.nix4
-rw-r--r--pkgs/development/python-modules/pycoin/default.nix42
-rw-r--r--pkgs/development/python-modules/pycountry/default.nix4
-rw-r--r--pkgs/development/python-modules/pycparser/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/pycuda/default.nix6
-rw-r--r--pkgs/development/python-modules/pycurl/default.nix10
-rw-r--r--pkgs/development/python-modules/pydantic/default.nix9
-rw-r--r--pkgs/development/python-modules/pydicom/default.nix12
-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/pyenchant/default.nix4
-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/pyflakes/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfritzhome/default.nix34
-rw-r--r--pkgs/development/python-modules/pyftdi/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfxa/default.nix11
-rw-r--r--pkgs/development/python-modules/pygdbmi/default.nix6
-rw-r--r--pkgs/development/python-modules/pygls/default.nix31
-rw-r--r--pkgs/development/python-modules/pygments-better-html/default.nix31
-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/pygrok/default.nix28
-rw-r--r--pkgs/development/python-modules/pyhamcrest/1.nix27
-rw-r--r--pkgs/development/python-modules/pyhamcrest/default.nix4
-rw-r--r--pkgs/development/python-modules/pyhaversion/default.nix4
-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/pyicloud/default.nix11
-rw-r--r--pkgs/development/python-modules/pyipp/default.nix40
-rw-r--r--pkgs/development/python-modules/pyjet/default.nix4
-rw-r--r--pkgs/development/python-modules/pyjks/default.nix4
-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.nix9
-rw-r--r--pkgs/development/python-modules/pylibgen/default.nix33
-rw-r--r--pkgs/development/python-modules/pylint-django/default.nix19
-rw-r--r--pkgs/development/python-modules/pylint-plugin-utils/default.nix3
-rw-r--r--pkgs/development/python-modules/pylint/1.9.nix4
-rw-r--r--pkgs/development/python-modules/pylint/default.nix17
-rw-r--r--pkgs/development/python-modules/pyls-black/default.nix4
-rw-r--r--pkgs/development/python-modules/pyls-mypy/default.nix34
-rw-r--r--pkgs/development/python-modules/pymatgen/default.nix27
-rw-r--r--pkgs/development/python-modules/pymavlink/default.nix4
-rw-r--r--pkgs/development/python-modules/pymbolic/default.nix4
-rw-r--r--pkgs/development/python-modules/pymetno/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/pynacl/default.nix4
-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/pynput/default.nix25
-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/pyowm/default.nix4
-rw-r--r--pkgs/development/python-modules/pypcap/default.nix2
-rw-r--r--pkgs/development/python-modules/pyperclip/default.nix4
-rw-r--r--pkgs/development/python-modules/pyperf/default.nix4
-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/pyqt/5.x.nix12
-rw-r--r--pkgs/development/python-modules/pyqtgraph/default.nix4
-rw-r--r--pkgs/development/python-modules/pyqtwebengine/default.nix17
-rw-r--r--pkgs/development/python-modules/pyqtwebengine/fix-build-with-qt-514.patch31
-rw-r--r--pkgs/development/python-modules/pyrad/default.nix27
-rw-r--r--pkgs/development/python-modules/pyro-ppl/default.nix4
-rw-r--r--pkgs/development/python-modules/pyro4/default.nix4
-rw-r--r--pkgs/development/python-modules/pyro5/default.nix6
-rw-r--r--pkgs/development/python-modules/pyroute2/default.nix4
-rw-r--r--pkgs/development/python-modules/pyrsistent/default.nix8
-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/pyscreenshot/default.nix4
-rw-r--r--pkgs/development/python-modules/pyscss/default.nix8
-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.nix9
-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/pysmb/default.nix4
-rw-r--r--pkgs/development/python-modules/pysnooper/default.nix6
-rw-r--r--pkgs/development/python-modules/pysnow/default.nix4
-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/pyspread/default.nix4
-rw-r--r--pkgs/development/python-modules/pysptk/default.nix4
-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-astropy-header/default.nix37
-rw-r--r--pkgs/development/python-modules/pytest-astropy/default.nix17
-rw-r--r--pkgs/development/python-modules/pytest-asyncio/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-black/default.nix6
-rw-r--r--pkgs/development/python-modules/pytest-check/default.nix18
-rw-r--r--pkgs/development/python-modules/pytest-cov/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-datadir/default.nix32
-rw-r--r--pkgs/development/python-modules/pytest-dependency/default.nix13
-rw-r--r--pkgs/development/python-modules/pytest-django/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-doctestplus/default.nix9
-rw-r--r--pkgs/development/python-modules/pytest-factoryboy/default.nix43
-rw-r--r--pkgs/development/python-modules/pytest-filter-subpackage/default.nix39
-rw-r--r--pkgs/development/python-modules/pytest-flake8/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-flakes/default.nix12
-rw-r--r--pkgs/development/python-modules/pytest-flask/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-freezegun/default.nix29
-rw-r--r--pkgs/development/python-modules/pytest-isort/default.nix9
-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/2.nix40
-rw-r--r--pkgs/development/python-modules/pytest-mock/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-mypy/default.nix9
-rw-r--r--pkgs/development/python-modules/pytest-openfiles/default.nix24
-rw-r--r--pkgs/development/python-modules/pytest-pylint/default.nix8
-rw-r--r--pkgs/development/python-modules/pytest-pythonpath/default.nix26
-rw-r--r--pkgs/development/python-modules/pytest-quickcheck/default.nix5
-rw-r--r--pkgs/development/python-modules/pytest-rerunfailures/default.nix10
-rw-r--r--pkgs/development/python-modules/pytest-sanic/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-sugar/default.nix9
-rw-r--r--pkgs/development/python-modules/pytest-testmon/default.nix6
-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.nix39
-rw-r--r--pkgs/development/python-modules/pytest-xdist/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-xprocess/default.nix6
-rw-r--r--pkgs/development/python-modules/pytest-xvfb/default.nix6
-rw-r--r--pkgs/development/python-modules/pytest/4.nix4
-rw-r--r--pkgs/development/python-modules/pytest/default.nix28
-rw-r--r--pkgs/development/python-modules/python-binance/default.nix4
-rw-r--r--pkgs/development/python-modules/python-daemon/default.nix4
-rw-r--r--pkgs/development/python-modules/python-didl-lite/default.nix35
-rw-r--r--pkgs/development/python-modules/python-dotenv/default.nix7
-rw-r--r--pkgs/development/python-modules/python-engineio/default.nix5
-rw-r--r--pkgs/development/python-modules/python-gnupg/default.nix4
-rw-r--r--pkgs/development/python-modules/python-hosts/default.nix4
-rw-r--r--pkgs/development/python-modules/python-igraph/default.nix14
-rw-r--r--pkgs/development/python-modules/python-jose/default.nix14
-rw-r--r--pkgs/development/python-modules/python-jsonrpc-server/default.nix16
-rw-r--r--pkgs/development/python-modules/python-language-server/default.nix13
-rw-r--r--pkgs/development/python-modules/python-lz4/default.nix2
-rw-r--r--pkgs/development/python-modules/python-magic/default.nix4
-rw-r--r--pkgs/development/python-modules/python-miio/default.nix4
-rw-r--r--pkgs/development/python-modules/python-mnist/default.nix4
-rw-r--r--pkgs/development/python-modules/python-mpv-jsonipc/default.nix4
-rw-r--r--pkgs/development/python-modules/python-pam/default.nix23
-rw-r--r--pkgs/development/python-modules/python-periphery/default.nix4
-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.nix29
-rw-r--r--pkgs/development/python-modules/python-slugify/default.nix4
-rw-r--r--pkgs/development/python-modules/python-socketio/default.nix4
-rw-r--r--pkgs/development/python-modules/python-telegram-bot/default.nix4
-rw-r--r--pkgs/development/python-modules/python-toolbox/default.nix7
-rw-r--r--pkgs/development/python-modules/python-utils/default.nix4
-rw-r--r--pkgs/development/python-modules/python-vipaccess/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/python_fedora/default.nix4
-rw-r--r--pkgs/development/python-modules/pythonmagick/default.nix (renamed from pkgs/applications/graphics/PythonMagick/default.nix)31
-rw-r--r--pkgs/development/python-modules/pythonnet/default.nix2
-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.nix4
-rw-r--r--pkgs/development/python-modules/pytorch-lightning/default.nix46
-rw-r--r--pkgs/development/python-modules/pytorch-metric-learning/default.nix40
-rw-r--r--pkgs/development/python-modules/pytorch/default.nix79
-rw-r--r--pkgs/development/python-modules/pytorch/pthreadpool-disable-gcd.diff45
-rw-r--r--pkgs/development/python-modules/pytrends/default.nix6
-rw-r--r--pkgs/development/python-modules/pytz/default.nix4
-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.nix2
-rw-r--r--pkgs/development/python-modules/pyunifi/default.nix4
-rw-r--r--pkgs/development/python-modules/pyvcd/default.nix6
-rw-r--r--pkgs/development/python-modules/pyviz-comms/default.nix4
-rw-r--r--pkgs/development/python-modules/pywbem/default.nix4
-rw-r--r--pkgs/development/python-modules/pywebpush/default.nix4
-rw-r--r--pkgs/development/python-modules/pywebview/default.nix23
-rw-r--r--pkgs/development/python-modules/pyx/default.nix9
-rw-r--r--pkgs/development/python-modules/pyxdg/default.nix9
-rw-r--r--pkgs/development/python-modules/pyxl3/default.nix4
-rw-r--r--pkgs/development/python-modules/pyyaml/default.nix4
-rw-r--r--pkgs/development/python-modules/pyzmq/default.nix7
-rw-r--r--pkgs/development/python-modules/qasm2image/default.nix1
-rw-r--r--pkgs/development/python-modules/qds_sdk/default.nix12
-rw-r--r--pkgs/development/python-modules/qimage2ndarray/default.nix4
-rw-r--r--pkgs/development/python-modules/qiskit-aer/default.nix17
-rw-r--r--pkgs/development/python-modules/qiskit-aqua/default.nix20
-rw-r--r--pkgs/development/python-modules/qiskit-ibmq-provider/default.nix6
-rw-r--r--pkgs/development/python-modules/qiskit-ignis/default.nix9
-rw-r--r--pkgs/development/python-modules/qiskit-terra/default.nix7
-rw-r--r--pkgs/development/python-modules/qiskit/default.nix6
-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/qtawesome/default.nix4
-rw-r--r--pkgs/development/python-modules/qtconsole/default.nix4
-rw-r--r--pkgs/development/python-modules/quandl/default.nix6
-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/readme_renderer/default.nix4
-rw-r--r--pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix4
-rw-r--r--pkgs/development/python-modules/rebulk/default.nix4
-rw-r--r--pkgs/development/python-modules/recommonmark/default.nix4
-rw-r--r--pkgs/development/python-modules/redis/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/reportlab/default.nix5
-rw-r--r--pkgs/development/python-modules/repoze_who/default.nix4
-rw-r--r--pkgs/development/python-modules/reproject/default.nix14
-rw-r--r--pkgs/development/python-modules/requests-file/default.nix8
-rw-r--r--pkgs/development/python-modules/requests-mock/default.nix7
-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/restructuredtext_lint/default.nix4
-rw-r--r--pkgs/development/python-modules/restview/default.nix3
-rw-r--r--pkgs/development/python-modules/rethinkdb/default.nix11
-rw-r--r--pkgs/development/python-modules/retry_decorator/default.nix4
-rw-r--r--pkgs/development/python-modules/retworkx/default.nix23
-rw-r--r--pkgs/development/python-modules/rnc2rng/default.nix27
-rw-r--r--pkgs/development/python-modules/robotframework-requests/default.nix4
-rw-r--r--pkgs/development/python-modules/robotframework/default.nix4
-rw-r--r--pkgs/development/python-modules/robotsuite/default.nix4
-rw-r--r--pkgs/development/python-modules/rope/default.nix6
-rw-r--r--pkgs/development/python-modules/rq/default.nix7
-rw-r--r--pkgs/development/python-modules/rsa/4_0.nix33
-rw-r--r--pkgs/development/python-modules/rsa/default.nix8
-rw-r--r--pkgs/development/python-modules/rtmidi-python/default.nix29
-rw-r--r--pkgs/development/python-modules/ruamel_yaml/default.nix4
-rw-r--r--pkgs/development/python-modules/runway-python/default.nix4
-rw-r--r--pkgs/development/python-modules/rx/default.nix9
-rw-r--r--pkgs/development/python-modules/s3fs/default.nix4
-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/sanic/default.nix4
-rw-r--r--pkgs/development/python-modules/sasmodels/default.nix4
-rw-r--r--pkgs/development/python-modules/schema/default.nix4
-rw-r--r--pkgs/development/python-modules/scikit-bio/default.nix4
-rw-r--r--pkgs/development/python-modules/scikit-build/default.nix14
-rw-r--r--pkgs/development/python-modules/scikit-image/default.nix21
-rw-r--r--pkgs/development/python-modules/scikitlearn/default.nix6
-rw-r--r--pkgs/development/python-modules/scipy/default.nix4
-rw-r--r--pkgs/development/python-modules/scrapy-deltafetch/default.nix22
-rw-r--r--pkgs/development/python-modules/scrapy-fake-useragent/default.nix21
-rw-r--r--pkgs/development/python-modules/scrapy-splash/default.nix20
-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/screeninfo/default.nix35
-rw-r--r--pkgs/development/python-modules/seaborn/default.nix4
-rw-r--r--pkgs/development/python-modules/secp256k1/default.nix1
-rw-r--r--pkgs/development/python-modules/seekpath/default.nix15
-rw-r--r--pkgs/development/python-modules/selectors2/default.nix7
-rw-r--r--pkgs/development/python-modules/semantic-version/default.nix4
-rw-r--r--pkgs/development/python-modules/semver/default.nix25
-rw-r--r--pkgs/development/python-modules/sentry-sdk/default.nix8
-rw-r--r--pkgs/development/python-modules/serpent/default.nix4
-rw-r--r--pkgs/development/python-modules/setuptools-lint/default.nix21
-rw-r--r--pkgs/development/python-modules/setuptools/default.nix4
-rw-r--r--pkgs/development/python-modules/setuptools_scm/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/shellingham/default.nix5
-rw-r--r--pkgs/development/python-modules/shiboken2/nix_compile_cflags.patch13
-rw-r--r--pkgs/development/python-modules/shortuuid/default.nix4
-rw-r--r--pkgs/development/python-modules/simpleparse/default.nix4
-rw-r--r--pkgs/development/python-modules/simpy/default.nix21
-rw-r--r--pkgs/development/python-modules/sip/default.nix4
-rw-r--r--pkgs/development/python-modules/sipsimple/default.nix2
-rw-r--r--pkgs/development/python-modules/six/default.nix4
-rw-r--r--pkgs/development/python-modules/skein/default.nix39
-rw-r--r--pkgs/development/python-modules/skein/skeinjar.nix21
-rw-r--r--pkgs/development/python-modules/skein/skeinrepo.nix46
-rw-r--r--pkgs/development/python-modules/skorch/default.nix42
-rw-r--r--pkgs/development/python-modules/slither-analyzer/default.nix4
-rw-r--r--pkgs/development/python-modules/slixmpp/default.nix4
-rw-r--r--pkgs/development/python-modules/smart_open/default.nix4
-rw-r--r--pkgs/development/python-modules/smmap/default.nix4
-rw-r--r--pkgs/development/python-modules/smpplib/default.nix29
-rw-r--r--pkgs/development/python-modules/snapcast/default.nix4
-rw-r--r--pkgs/development/python-modules/snowflake-connector-python/default.nix4
-rw-r--r--pkgs/development/python-modules/snowflake-sqlalchemy/default.nix4
-rw-r--r--pkgs/development/python-modules/snscrape/default.nix4
-rw-r--r--pkgs/development/python-modules/sockjs-tornado/default.nix4
-rw-r--r--pkgs/development/python-modules/soco/default.nix9
-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.nix8
-rw-r--r--pkgs/development/python-modules/sortedcollections/default.nix4
-rw-r--r--pkgs/development/python-modules/sounddevice/default.nix4
-rw-r--r--pkgs/development/python-modules/soupsieve/1.nix36
-rw-r--r--pkgs/development/python-modules/soupsieve/default.nix4
-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.nix20
-rw-r--r--pkgs/development/python-modules/spacy/models.json254
-rw-r--r--pkgs/development/python-modules/spacy/models.nix12
-rw-r--r--pkgs/development/python-modules/sparse/default.nix7
-rw-r--r--pkgs/development/python-modules/spectral-cube/default.nix3
-rw-r--r--pkgs/development/python-modules/spglib/default.nix4
-rw-r--r--pkgs/development/python-modules/sphfile/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinx/default.nix10
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix6
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix6
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-katex/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-openapi/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix6
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix6
-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/1_1.nix25
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-websupport/default.nix4
-rw-r--r--pkgs/development/python-modules/spidev/default.nix24
-rw-r--r--pkgs/development/python-modules/spotipy/default.nix4
-rw-r--r--pkgs/development/python-modules/spyder-kernels/default.nix4
-rw-r--r--pkgs/development/python-modules/spyder/default.nix6
-rw-r--r--pkgs/development/python-modules/sqlalchemy-citext/default.nix4
-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/sqlmap/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlparse/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlsoup/default.nix21
-rw-r--r--pkgs/development/python-modules/srp/default.nix4
-rw-r--r--pkgs/development/python-modules/srsly/default.nix11
-rw-r--r--pkgs/development/python-modules/srvlookup/default.nix24
-rw-r--r--pkgs/development/python-modules/sseclient/default.nix11
-rw-r--r--pkgs/development/python-modules/sslyze/default.nix52
-rw-r--r--pkgs/development/python-modules/starfish/default.nix4
-rw-r--r--pkgs/development/python-modules/starlette/default.nix4
-rw-r--r--pkgs/development/python-modules/statsmodels/default.nix9
-rw-r--r--pkgs/development/python-modules/stevedore/default.nix7
-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/structlog/default.nix7
-rw-r--r--pkgs/development/python-modules/stumpy/default.nix9
-rw-r--r--pkgs/development/python-modules/stytra/default.nix8
-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/svglib/default.nix48
-rw-r--r--pkgs/development/python-modules/svgwrite/default.nix12
-rw-r--r--pkgs/development/python-modules/sybil/default.nix4
-rw-r--r--pkgs/development/python-modules/sympy/1_5.nix36
-rw-r--r--pkgs/development/python-modules/sympy/default.nix4
-rw-r--r--pkgs/development/python-modules/tablib/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/tbm-utils/default.nix11
-rw-r--r--pkgs/development/python-modules/telethon/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.nix21
-rw-r--r--pkgs/development/python-modules/tenacity/default.nix15
-rw-r--r--pkgs/development/python-modules/tensorboardx/default.nix31
-rw-r--r--pkgs/development/python-modules/tensorflow-estimator/2/default.nix4
-rw-r--r--pkgs/development/python-modules/tensorflow-probability/default.nix2
-rw-r--r--pkgs/development/python-modules/tensorflow/1/default.nix5
-rw-r--r--pkgs/development/python-modules/tensorflow/2/default.nix5
-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/testtools/default.nix4
-rw-r--r--pkgs/development/python-modules/textacy/default.nix4
-rw-r--r--pkgs/development/python-modules/thespian/default.nix4
-rw-r--r--pkgs/development/python-modules/thinc/default.nix14
-rw-r--r--pkgs/development/python-modules/thumbor/default.nix2
-rw-r--r--pkgs/development/python-modules/tifffile/default.nix4
-rw-r--r--pkgs/development/python-modules/tiledb/default.nix7
-rw-r--r--pkgs/development/python-modules/timezonefinder/default.nix4
-rw-r--r--pkgs/development/python-modules/tinycss2/default.nix24
-rw-r--r--pkgs/development/python-modules/tinycss2/remove-redundant-dependency.patch12
-rw-r--r--pkgs/development/python-modules/tld/default.nix4
-rw-r--r--pkgs/development/python-modules/tls-parser/default.nix29
-rw-r--r--pkgs/development/python-modules/toggl-cli/default.nix23
-rw-r--r--pkgs/development/python-modules/tokenizers/default.nix129
-rw-r--r--pkgs/development/python-modules/tokenizers/update-parking-lot.diff63
-rw-r--r--pkgs/development/python-modules/toml/default.nix4
-rw-r--r--pkgs/development/python-modules/tomlkit/default.nix4
-rw-r--r--pkgs/development/python-modules/toolz/default.nix2
-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.nix6
-rw-r--r--pkgs/development/python-modules/traitsui/default.nix4
-rw-r--r--pkgs/development/python-modules/transformers/default.nix70
-rw-r--r--pkgs/development/python-modules/transitions/default.nix4
-rw-r--r--pkgs/development/python-modules/trezor/default.nix19
-rw-r--r--pkgs/development/python-modules/trezor_agent/default.nix6
-rw-r--r--pkgs/development/python-modules/trimesh/default.nix4
-rw-r--r--pkgs/development/python-modules/trio/default.nix4
-rw-r--r--pkgs/development/python-modules/trytond/default.nix (renamed from pkgs/applications/office/trytond/default.nix)51
-rw-r--r--pkgs/development/python-modules/tvdb_api/default.nix4
-rw-r--r--pkgs/development/python-modules/tvnamer/default.nix4
-rw-r--r--pkgs/development/python-modules/twiggy/default.nix6
-rw-r--r--pkgs/development/python-modules/twilio/default.nix4
-rw-r--r--pkgs/development/python-modules/twill/default.nix20
-rw-r--r--pkgs/development/python-modules/twine/default.nix8
-rw-r--r--pkgs/development/python-modules/txaio/default.nix7
-rw-r--r--pkgs/development/python-modules/txdbus/default.nix22
-rw-r--r--pkgs/development/python-modules/typed-ast/default.nix4
-rw-r--r--pkgs/development/python-modules/typeguard/default.nix7
-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/tzlocal/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/uarray/default.nix4
-rw-r--r--pkgs/development/python-modules/ueberzug/default.nix4
-rw-r--r--pkgs/development/python-modules/ujson/default.nix10
-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/unidiff/default.nix4
-rw-r--r--pkgs/development/python-modules/unittest-xml-reporting/default.nix7
-rw-r--r--pkgs/development/python-modules/unrpa/default.nix24
-rw-r--r--pkgs/development/python-modules/update_checker/default.nix4
-rw-r--r--pkgs/development/python-modules/uproot-methods/default.nix4
-rw-r--r--pkgs/development/python-modules/uproot/default.nix4
-rw-r--r--pkgs/development/python-modules/urllib3/default.nix4
-rw-r--r--pkgs/development/python-modules/urwid/default.nix11
-rw-r--r--pkgs/development/python-modules/us/default.nix4
-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/uvicorn/default.nix16
-rw-r--r--pkgs/development/python-modules/uvloop/default.nix6
-rw-r--r--pkgs/development/python-modules/validators/default.nix13
-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/default.nix (renamed from pkgs/tools/misc/vdirsyncer/default.nix)44
-rw-r--r--pkgs/development/python-modules/vdirsyncer/stable.nix64
-rw-r--r--pkgs/development/python-modules/vega/default.nix15
-rw-r--r--pkgs/development/python-modules/venusian/default.nix2
-rw-r--r--pkgs/development/python-modules/vertica-python/default.nix4
-rw-r--r--pkgs/development/python-modules/vidstab/default.nix4
-rw-r--r--pkgs/development/python-modules/virtual-display/default.nix4
-rw-r--r--pkgs/development/python-modules/virtualenv/0001-Check-base_prefix-and-base_exec_prefix-for-Python-2.patch37
-rw-r--r--pkgs/development/python-modules/virtualenv/default.nix42
-rw-r--r--pkgs/development/python-modules/virtualenv/virtualenv-change-prefix.patch62
-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/vmprof/default.nix9
-rw-r--r--pkgs/development/python-modules/voluptuous-serialize/default.nix4
-rw-r--r--pkgs/development/python-modules/vulture/default.nix21
-rw-r--r--pkgs/development/python-modules/w3lib/default.nix4
-rw-r--r--pkgs/development/python-modules/wadllib/default.nix4
-rw-r--r--pkgs/development/python-modules/waitress/default.nix4
-rw-r--r--pkgs/development/python-modules/wasabi/default.nix4
-rw-r--r--pkgs/development/python-modules/watchdog/default.nix4
-rw-r--r--pkgs/development/python-modules/wcwidth/default.nix20
-rw-r--r--pkgs/development/python-modules/web/default.nix4
-rw-r--r--pkgs/development/python-modules/webcolors/default.nix6
-rw-r--r--pkgs/development/python-modules/webdavclient3/default.nix30
-rw-r--r--pkgs/development/python-modules/webob/default.nix4
-rw-r--r--pkgs/development/python-modules/websocket_client/default.nix4
-rw-r--r--pkgs/development/python-modules/werkzeug/default.nix18
-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/word2vec/default.nix4
-rw-r--r--pkgs/development/python-modules/wordcloud/default.nix12
-rw-r--r--pkgs/development/python-modules/wptserve/default.nix4
-rw-r--r--pkgs/development/python-modules/wrapt/default.nix4
-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.nix18
-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/x11_hash/default.nix2
-rw-r--r--pkgs/development/python-modules/xarray/default.nix7
-rw-r--r--pkgs/development/python-modules/xhtml2pdf/default.nix4
-rw-r--r--pkgs/development/python-modules/xlsx2csv/default.nix4
-rw-r--r--pkgs/development/python-modules/xml2rfc/default.nix4
-rw-r--r--pkgs/development/python-modules/xmlschema/default.nix9
-rw-r--r--pkgs/development/python-modules/xpybutil/default.nix24
-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/yapf/default.nix4
-rw-r--r--pkgs/development/python-modules/yappi/default.nix7
-rw-r--r--pkgs/development/python-modules/yattag/default.nix4
-rw-r--r--pkgs/development/python-modules/yenc/default.nix2
-rw-r--r--pkgs/development/python-modules/yt/default.nix4
-rw-r--r--pkgs/development/python-modules/yubico-client/default.nix4
-rw-r--r--pkgs/development/python-modules/zarr/default.nix4
-rw-r--r--pkgs/development/python-modules/zconfig/default.nix10
-rw-r--r--pkgs/development/python-modules/zeroc-ice/default.nix4
-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/zict/default.nix4
-rw-r--r--pkgs/development/python-modules/zigpy-cc/default.nix24
-rw-r--r--pkgs/development/python-modules/zigpy-deconz/default.nix13
-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/zimports/default.nix8
-rw-r--r--pkgs/development/python-modules/zipp/1.nix38
-rw-r--r--pkgs/development/python-modules/zipp/default.nix7
-rw-r--r--pkgs/development/python-modules/zodb/default.nix17
-rw-r--r--pkgs/development/python-modules/zope-hookable/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_component/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_configuration/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_contenttype/default.nix5
-rw-r--r--pkgs/development/python-modules/zope_filerepresentation/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_i18nmessageid/default.nix8
-rw-r--r--pkgs/development/python-modules/zope_interface/default.nix8
-rw-r--r--pkgs/development/python-modules/zope_lifecycleevent/default.nix11
-rw-r--r--pkgs/development/python-modules/zope_proxy/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_schema/default.nix4
-rwxr-xr-xpkgs/development/python-modules/zstandard/default.nix7
-rw-r--r--pkgs/development/python-modules/zstd/default.nix6
-rw-r--r--pkgs/development/r-modules/default.nix7
-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/agda-pkg/default.nix44
-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.nix30
-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/coz/default.nix6
-rw-r--r--pkgs/development/tools/analysis/cppcheck/default.nix11
-rw-r--r--pkgs/development/tools/analysis/cpplint/default.nix5
-rw-r--r--pkgs/development/tools/analysis/eresi/default.nix1
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix4
-rw-r--r--pkgs/development/tools/analysis/frama-c/default.nix6
-rw-r--r--pkgs/development/tools/analysis/hopper/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.nix11
-rw-r--r--pkgs/development/tools/analysis/radare2/cutter.nix4
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix32
-rw-r--r--pkgs/development/tools/analysis/randoop/default.nix4
-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.nix20
-rw-r--r--pkgs/development/tools/azcopy/default.nix10
-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/bazel-watcher/default.nix10
-rw-r--r--pkgs/development/tools/bazelisk/default.nix10
-rw-r--r--pkgs/development/tools/bazelisk/gomod.patch12
-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/apache-maven/builder.sh1
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_2/src-deps.json506
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_3/default.nix (renamed from pkgs/development/tools/build-managers/bazel/bazel_2/default.nix)41
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_3/python-shebang.patch20
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json781
-rw-r--r--pkgs/development/tools/build-managers/bazel/buildtools/default.nix5
-rwxr-xr-xpkgs/development/tools/build-managers/bazel/update-srcDeps.py2
-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.nix23
-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.sh18
-rw-r--r--pkgs/development/tools/build-managers/colormake/default.nix17
-rw-r--r--pkgs/development/tools/build-managers/conan/default.nix23
-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/clear-old-rpath.patch20
-rw-r--r--pkgs/development/tools/build-managers/meson/default.nix54
-rw-r--r--pkgs/development/tools/build-managers/meson/fix-rpath.patch76
-rw-r--r--pkgs/development/tools/build-managers/meson/more-env-vars.patch9
-rw-r--r--pkgs/development/tools/build-managers/mill/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/sbt-extras/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix4
-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/build-managers/tup/default.nix7
-rw-r--r--pkgs/development/tools/build-managers/tup/setup-hook.sh44
-rw-r--r--pkgs/development/tools/buildah/default.nix26
-rw-r--r--pkgs/development/tools/buildah/disable-go-module-mode.patch32
-rw-r--r--pkgs/development/tools/buildah/wrapper.nix52
-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.nix7
-rw-r--r--pkgs/development/tools/cargo-web/default.nix1
-rw-r--r--pkgs/development/tools/casperjs/default.nix56
-rw-r--r--pkgs/development/tools/castxml/default.nix4
-rw-r--r--pkgs/development/tools/chit/default.nix1
-rw-r--r--pkgs/development/tools/clj-kondo/default.nix2
-rw-r--r--pkgs/development/tools/cloudflare-wrangler/default.nix35
-rw-r--r--pkgs/development/tools/cloudfoundry-cli/default.nix15
-rw-r--r--pkgs/development/tools/cmake-format/default.nix4
-rw-r--r--pkgs/development/tools/cmake-language-server/default.nix43
-rw-r--r--pkgs/development/tools/conftest/default.nix13
-rw-r--r--pkgs/development/tools/container-linux-config-transpiler/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/buildkite-cli/default.nix28
-rw-r--r--pkgs/development/tools/continuous-integration/drone-cli/default.nix9
-rw-r--r--pkgs/development/tools/continuous-integration/drone/default.nix9
-rw-r--r--pkgs/development/tools/continuous-integration/fly/default.nix20
-rw-r--r--pkgs/development/tools/continuous-integration/fly/fly.bash10
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix10
-rw-r--r--pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix21
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix4
-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.nix8
-rw-r--r--pkgs/development/tools/database/liquibase/default.nix4
-rw-r--r--pkgs/development/tools/database/sqldeveloper/default.nix6
-rw-r--r--pkgs/development/tools/database/sqlitebrowser/default.nix24
-rw-r--r--pkgs/development/tools/database/squirrel-sql/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.nix12
-rw-r--r--pkgs/development/tools/delve/default.nix4
-rw-r--r--pkgs/development/tools/dep/default.nix1
-rw-r--r--pkgs/development/tools/devd/default.nix1
-rw-r--r--pkgs/development/tools/devpi-client/default.nix22
-rw-r--r--pkgs/development/tools/devpi-server/default.nix13
-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.nix23
-rw-r--r--pkgs/development/tools/documentation/antora/default.nix6
-rw-r--r--pkgs/development/tools/documentation/doxygen/default.nix4
-rw-r--r--pkgs/development/tools/documentation/gtk-doc/default.nix4
-rw-r--r--pkgs/development/tools/documentation/mdsh/default.nix5
-rw-r--r--pkgs/development/tools/easyjson/default.nix3
-rw-r--r--pkgs/development/tools/eclipse-mat/default.nix119
-rw-r--r--pkgs/development/tools/electron/3.x.nix77
-rw-r--r--pkgs/development/tools/electron/default.nix54
-rw-r--r--pkgs/development/tools/electron/generic.nix9
-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.nix37
-rw-r--r--pkgs/development/tools/flatpak-builder/default.nix10
-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/gauge/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/glade/default.nix65
-rw-r--r--pkgs/development/tools/gllvm/default.nix5
-rw-r--r--pkgs/development/tools/glpaper/default.nix29
-rw-r--r--pkgs/development/tools/go-bindata-assetfs/default.nix1
-rw-r--r--pkgs/development/tools/go-bindata/default.nix21
-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.nix8
-rw-r--r--pkgs/development/tools/go-repo-root/default.nix2
-rw-r--r--pkgs/development/tools/go-swagger/default.nix28
-rw-r--r--pkgs/development/tools/go-task/default.nix34
-rw-r--r--pkgs/development/tools/go-toml/default.nix24
-rw-r--r--pkgs/development/tools/go-tools/default.nix10
-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.nix7
-rw-r--r--pkgs/development/tools/gogetdoc/deps.nix13
-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.nix8
-rw-r--r--pkgs/development/tools/gopkgs/default.nix6
-rw-r--r--pkgs/development/tools/gopls/default.nix13
-rw-r--r--pkgs/development/tools/gore/default.nix24
-rw-r--r--pkgs/development/tools/gosec/default.nix33
-rw-r--r--pkgs/development/tools/gosec/deps.nix193
-rw-r--r--pkgs/development/tools/gotags/default.nix2
-rw-r--r--pkgs/development/tools/gotestsum/default.nix8
-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.nix29
-rw-r--r--pkgs/development/tools/heroku/default.nix6
-rw-r--r--pkgs/development/tools/hobbes/default.nix9
-rw-r--r--pkgs/development/tools/icestorm/default.nix8
-rw-r--r--pkgs/development/tools/java/cfr/default.nix4
-rw-r--r--pkgs/development/tools/java/dex2jar/default.nix44
-rw-r--r--pkgs/development/tools/java/visualvm/default.nix6
-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/jp/default.nix4
-rw-r--r--pkgs/development/tools/just/default.nix23
-rw-r--r--pkgs/development/tools/k6/default.nix7
-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.nix6
-rw-r--r--pkgs/development/tools/ktlint/default.nix4
-rw-r--r--pkgs/development/tools/kubectx/default.nix42
-rw-r--r--pkgs/development/tools/kubeprompt/default.nix8
-rw-r--r--pkgs/development/tools/kubie/default.nix25
-rw-r--r--pkgs/development/tools/kustomize/default.nix26
-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/literate-programming/eweb/default.nix2
-rw-r--r--pkgs/development/tools/literate-programming/nuweb/default.nix2
-rw-r--r--pkgs/development/tools/metals/default.nix21
-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.nix9
-rw-r--r--pkgs/development/tools/misc/arcanist/default.nix69
-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/autogen/default.nix52
-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.nix28
-rw-r--r--pkgs/development/tools/misc/ccache/fix-debug-prefix-map-suite.patch42
-rw-r--r--pkgs/development/tools/misc/ccache/skip-fs-dependent-test.patch26
-rw-r--r--pkgs/development/tools/misc/circleci-cli/default.nix10
-rw-r--r--pkgs/development/tools/misc/cli11/default.nix4
-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/cquery/default.nix64
-rw-r--r--pkgs/development/tools/misc/cquery/wrapper12
-rw-r--r--pkgs/development/tools/misc/easypdkprog/default.nix27
-rw-r--r--pkgs/development/tools/misc/editorconfig-checker/default.nix20
-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.nix4
-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/common.nix6
-rw-r--r--pkgs/development/tools/misc/hydra/default.nix9
-rw-r--r--pkgs/development/tools/misc/intltool/default.nix6
-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/libtool/libtool2.nix4
-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/mkrom/default.nix27
-rw-r--r--pkgs/development/tools/misc/nix-build-uncached/default.nix32
-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/pahole/default.nix4
-rw-r--r--pkgs/development/tools/misc/patchelf/0.9.nix16
-rw-r--r--pkgs/development/tools/misc/patchelf/default.nix12
-rw-r--r--pkgs/development/tools/misc/patchelf/unstable.nix12
-rw-r--r--pkgs/development/tools/misc/pkg-config/default.nix9
-rw-r--r--pkgs/development/tools/misc/pkg-config/setup-hook.sh6
-rw-r--r--pkgs/development/tools/misc/pkgconf/default.nix33
-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.nix8
-rw-r--r--pkgs/development/tools/misc/saleae-logic/default.nix2
-rw-r--r--pkgs/development/tools/misc/stm32cubemx/default.nix36
-rw-r--r--pkgs/development/tools/misc/strace/default.nix8
-rw-r--r--pkgs/development/tools/misc/terracognita/default.nix8
-rw-r--r--pkgs/development/tools/misc/terraform-ls/default.nix24
-rw-r--r--pkgs/development/tools/misc/terraformer/default.nix24
-rw-r--r--pkgs/development/tools/misc/texinfo/common.nix5
-rw-r--r--pkgs/development/tools/misc/texinfo/cross-tools-flags.patch3
-rw-r--r--pkgs/development/tools/misc/texlab/default.nix14
-rw-r--r--pkgs/development/tools/misc/tockloader/default.nix27
-rw-r--r--pkgs/development/tools/misc/tokei/default.nix7
-rw-r--r--pkgs/development/tools/misc/travis/Gemfile.lock50
-rw-r--r--pkgs/development/tools/misc/travis/gemset.nix114
-rw-r--r--pkgs/development/tools/misc/uncrustify/default.nix4
-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/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/camlp5/default.nix6
-rw-r--r--pkgs/development/tools/ocaml/dune-release/default.nix54
-rw-r--r--pkgs/development/tools/ocaml/dune/2.nix6
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/3.0.nix18
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix20
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/default.nix40
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix4
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix4
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix4
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix4
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix4
-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/ofono-phonesim/default.nix2
-rw-r--r--pkgs/development/tools/omnisharp-roslyn/default.nix7
-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.nix14
-rw-r--r--pkgs/development/tools/out-of-tree/deps.nix120
-rw-r--r--pkgs/development/tools/packer/default.nix6
-rw-r--r--pkgs/development/tools/packet-cli/default.nix13
-rw-r--r--pkgs/development/tools/pandoc/default.nix4
-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.nix1
-rw-r--r--pkgs/development/tools/pet/default.nix4
-rw-r--r--pkgs/development/tools/pipenv/default.nix19
-rw-r--r--pkgs/development/tools/poetry/default.nix33
-rw-r--r--pkgs/development/tools/poetry/src.json6
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/default.nix187
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/editable.nix54
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix43
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/lib.nix130
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix10
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix1489
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix11
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix55
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix44
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock (renamed from pkgs/development/tools/poetry/poetry.lock)675
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml (renamed from pkgs/development/tools/poetry/pyproject.toml)27
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json6
-rwxr-xr-xpkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update (renamed from pkgs/development/tools/poetry/update)4
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/plugins.nix70
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/semver.nix12
-rwxr-xr-xpkgs/development/tools/poetry2nix/update2
-rw-r--r--pkgs/development/tools/profiling/oprofile/default.nix4
-rw-r--r--pkgs/development/tools/profiling/sysprof/default.nix12
-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.nix8
-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/redis-dump/default.nix2
-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.nix6
-rw-r--r--pkgs/development/tools/rshell/default.nix4
-rw-r--r--pkgs/development/tools/rtags/default.nix4
-rw-r--r--pkgs/development/tools/run/default.nix8
-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-deny/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-expand/default.nix7
-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-insta/cargo-lock.patch780
-rw-r--r--pkgs/development/tools/rust/cargo-insta/default.nix27
-rw-r--r--pkgs/development/tools/rust/cargo-insta/ignore-rustfmt-test.patch10
-rw-r--r--pkgs/development/tools/rust/cargo-make/Cargo.lock474
-rw-r--r--pkgs/development/tools/rust/cargo-make/default.nix13
-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/Cargo.lock.patch13
-rw-r--r--pkgs/development/tools/rust/maturin/default.nix12
-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.nix17
-rwxr-xr-xpkgs/development/tools/rust/rust-analyzer/update.sh19
-rw-r--r--pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch27
-rw-r--r--pkgs/development/tools/rust/rustup/default.nix22
-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.nix6
-rw-r--r--pkgs/development/tools/skaffold/default.nix9
-rw-r--r--pkgs/development/tools/skopeo/default.nix53
-rw-r--r--pkgs/development/tools/solarus-quest-editor/default.nix4
-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.nix23
-rw-r--r--pkgs/development/tools/toxiproxy/default.nix4
-rw-r--r--pkgs/development/tools/tracy/default.nix45
-rw-r--r--pkgs/development/tools/trellis/default.nix8
-rw-r--r--pkgs/development/tools/tychus/default.nix1
-rw-r--r--pkgs/development/tools/unity3d/default.nix5
-rw-r--r--pkgs/development/tools/unityhub/default.nix5
-rw-r--r--pkgs/development/tools/vagrant/default.nix4
-rw-r--r--pkgs/development/tools/vagrant/gemset.nix12
-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.nix24
-rw-r--r--pkgs/development/tools/vultr/default.nix7
-rw-r--r--pkgs/development/tools/wabt/default.nix8
-rw-r--r--pkgs/development/tools/wasm-bindgen-cli/0001-Add-cargo.lock.patch2546
-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/winpdb/default.nix2
-rw-r--r--pkgs/development/tools/wrangler/default.nix35
-rw-r--r--pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix4
-rw-r--r--pkgs/development/tools/yj/default.nix1
-rw-r--r--pkgs/development/tools/yq-go/default.nix19
-rw-r--r--pkgs/development/tools/yq/default.nix33
-rw-r--r--pkgs/development/web/cypress/default.nix6
-rw-r--r--pkgs/development/web/deno/default.nix82
-rw-r--r--pkgs/development/web/deno/deps.nix12
-rw-r--r--pkgs/development/web/deno/update/common.ts65
-rw-r--r--pkgs/development/web/deno/update/deps.ts79
-rw-r--r--pkgs/development/web/deno/update/src.ts67
-rwxr-xr-xpkgs/development/web/deno/update/update.ts50
-rw-r--r--pkgs/development/web/flyctl/default.nix16
-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.nix8
-rw-r--r--pkgs/development/web/nodejs/nodejs.nix2
-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.nix12
-rw-r--r--pkgs/development/web/remarkjs/node-packages.nix388
-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/angband/default.nix4
-rw-r--r--pkgs/games/anki/default.nix329
-rw-r--r--pkgs/games/arena/default.nix8
-rw-r--r--pkgs/games/arx-libertatis/default.nix4
-rw-r--r--pkgs/games/assaultcube/default.nix2
-rw-r--r--pkgs/games/augustus/default.nix24
-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.nix4
-rw-r--r--pkgs/games/chocolate-doom/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/lazy-pack.nix3
-rw-r--r--pkgs/games/dwarf-fortress/twbt/default.nix13
-rw-r--r--pkgs/games/dwarf-fortress/wrapper/default.nix4
-rw-r--r--pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in2
-rw-r--r--pkgs/games/easyrpg-player/default.nix4
-rw-r--r--pkgs/games/eduke32/default.nix2
-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/factorio/default.nix34
-rw-r--r--pkgs/games/factorio/utils.nix2
-rw-r--r--pkgs/games/flightgear/default.nix8
-rw-r--r--pkgs/games/freecell-solver/default.nix2
-rw-r--r--pkgs/games/frogatto/default.nix2
-rw-r--r--pkgs/games/frotz/default.nix33
-rw-r--r--pkgs/games/galaxis/default.nix2
-rw-r--r--pkgs/games/gargoyle/default.nix9
-rw-r--r--pkgs/games/gnome-hexgl/default.nix10
-rw-r--r--pkgs/games/gnuchess/default.nix4
-rw-r--r--pkgs/games/gzdoom/default.nix130
-rw-r--r--pkgs/games/hedgewars/default.nix4
-rw-r--r--pkgs/games/hyperrogue/default.nix4
-rw-r--r--pkgs/games/julius/default.nix24
-rw-r--r--pkgs/games/katago/default.nix11
-rw-r--r--pkgs/games/klavaro/default.nix30
-rw-r--r--pkgs/games/legendary-gl/default.nix30
-rw-r--r--pkgs/games/linux-steam-integration/default.nix81
-rw-r--r--pkgs/games/minecraft-server/default.nix10
-rwxr-xr-xpkgs/games/minecraft-server/update.sh21
-rw-r--r--pkgs/games/minecraft/default.nix27
-rw-r--r--pkgs/games/minetest/default.nix10
-rw-r--r--pkgs/games/mnemosyne/default.nix4
-rw-r--r--pkgs/games/mudlet/default.nix4
-rw-r--r--pkgs/games/ninvaders/default.nix23
-rw-r--r--pkgs/games/nottetris2/default.nix51
-rw-r--r--pkgs/games/openjk/default.nix6
-rw-r--r--pkgs/games/openmw/default.nix12
-rw-r--r--pkgs/games/openmw/tes3mp.nix21
-rw-r--r--pkgs/games/openmw/tes3mp.patch13
-rw-r--r--pkgs/games/openrct2/default.nix21
-rw-r--r--pkgs/games/openrw/default.nix4
-rw-r--r--pkgs/games/openttd/default.nix10
-rw-r--r--pkgs/games/openttd/jgrpp.nix13
-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.nix6
-rw-r--r--pkgs/games/pentobi/default.nix4
-rw-r--r--pkgs/games/pingus/default.nix2
-rw-r--r--pkgs/games/privateer/default.nix4
-rw-r--r--pkgs/games/quake2/yquake2/default.nix8
-rw-r--r--pkgs/games/quake2/yquake2/games.nix12
-rw-r--r--pkgs/games/runelite/default.nix2
-rw-r--r--pkgs/games/sfrotz/default.nix69
-rw-r--r--pkgs/games/shattered-pixel-dungeon/default.nix29
-rw-r--r--pkgs/games/sm64ex/default.nix69
-rw-r--r--pkgs/games/spring/springlobby.nix4
-rw-r--r--pkgs/games/steam/build-runtime.py98
-rw-r--r--pkgs/games/steam/default.nix5
-rw-r--r--pkgs/games/steam/fhsenv.nix (renamed from pkgs/games/steam/chrootenv.nix)10
-rw-r--r--pkgs/games/steam/runtime-generated.nix4149
-rw-r--r--pkgs/games/steam/runtime-mirror.nix20
-rw-r--r--pkgs/games/steam/runtime.nix19
-rw-r--r--pkgs/games/steam/update-runtime-shell.nix13
-rwxr-xr-xpkgs/games/steam/update-runtime.py141
-rw-r--r--pkgs/games/super-tux-kart/default.nix67
-rw-r--r--pkgs/games/supertux/default.nix4
-rw-r--r--pkgs/games/taisei/0001-lto-fix.patch13
-rw-r--r--pkgs/games/taisei/default.nix46
-rw-r--r--pkgs/games/tdm/default.nix6
-rw-r--r--pkgs/games/teeworlds/default.nix3
-rw-r--r--pkgs/games/terraria-server/default.nix26
-rw-r--r--pkgs/games/the-powder-toy/default.nix17
-rw-r--r--pkgs/games/tintin/default.nix4
-rw-r--r--pkgs/games/tome2/default.nix2
-rw-r--r--pkgs/games/tome4/default.nix2
-rw-r--r--pkgs/games/tuxpaint/default.nix8
-rw-r--r--pkgs/games/ultrastardx/default.nix2
-rw-r--r--pkgs/games/ut2004/wrapper.nix2
-rw-r--r--pkgs/games/vdrift/default.nix4
-rw-r--r--pkgs/games/vms-empire/default.nix2
-rw-r--r--pkgs/games/wesnoth/default.nix14
-rw-r--r--pkgs/misc/autotiling/default.nix23
-rw-r--r--pkgs/misc/base16-builder/node-packages-generated.nix128
-rw-r--r--pkgs/misc/base16-builder/supplement.nix76
-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.nix10
-rw-r--r--pkgs/misc/drivers/hplip/3.18.5.nix5
-rw-r--r--pkgs/misc/drivers/hplip/default.nix25
-rw-r--r--pkgs/misc/drivers/xboxdrv/default.nix4
-rw-r--r--pkgs/misc/drivers/xow/default.nix18
-rw-r--r--pkgs/misc/emulators/atari++/default.nix2
-rw-r--r--pkgs/misc/emulators/atari800/default.nix2
-rw-r--r--pkgs/misc/emulators/attract-mode/default.nix4
-rw-r--r--pkgs/misc/emulators/ccemux/default.nix2
-rw-r--r--pkgs/misc/emulators/dolphin-emu/default.nix4
-rw-r--r--pkgs/misc/emulators/dolphin-emu/master.nix4
-rw-r--r--pkgs/misc/emulators/dosbox/default.nix2
-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/mednafen/default.nix4
-rw-r--r--pkgs/misc/emulators/melonDS/default.nix41
-rw-r--r--pkgs/misc/emulators/mgba/default.nix8
-rw-r--r--pkgs/misc/emulators/np2kai/default.nix196
-rw-r--r--pkgs/misc/emulators/openmsx/default.nix1
-rw-r--r--pkgs/misc/emulators/pcsx2/default.nix4
-rw-r--r--pkgs/misc/emulators/ppsspp/default.nix4
-rw-r--r--pkgs/misc/emulators/resim/default.nix2
-rw-r--r--pkgs/misc/emulators/retroarch/cores.nix23
-rw-r--r--pkgs/misc/emulators/retroarch/default.nix7
-rw-r--r--pkgs/misc/emulators/rpcs3/default.nix8
-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/stella/default.nix4
-rw-r--r--pkgs/misc/emulators/vice/default.nix2
-rw-r--r--pkgs/misc/emulators/wine/sources.nix9
-rw-r--r--pkgs/misc/emulators/wine/staging.nix12
-rw-r--r--pkgs/misc/flashfocus/default.nix28
-rw-r--r--pkgs/misc/ghostscript/0001-Bug-702364-Fix-missing-echogs-dependencies.patch105
-rw-r--r--pkgs/misc/ghostscript/default.nix17
-rw-r--r--pkgs/misc/hdt/default.nix27
-rw-r--r--pkgs/misc/lightspark/default.nix4
-rw-r--r--pkgs/misc/mxt-app/default.nix2
-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/solfege/css.patch33
-rw-r--r--pkgs/misc/solfege/default.nix30
-rw-r--r--pkgs/misc/solfege/menubar.patch7
-rw-r--r--pkgs/misc/solfege/webbrowser.patch8
-rw-r--r--pkgs/misc/stabber/default.nix8
-rw-r--r--pkgs/misc/tmux-plugins/default.nix14
-rw-r--r--pkgs/misc/uboot/default.nix11
-rwxr-xr-xpkgs/misc/uq/default.nix1
-rw-r--r--pkgs/misc/vim-plugins/generated.nix2034
-rw-r--r--pkgs/misc/vim-plugins/overrides.nix98
-rw-r--r--pkgs/misc/vim-plugins/patches/fruzzy/get_version.patch25
-rwxr-xr-xpkgs/misc/vim-plugins/update.py15
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names67
-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/mktplcExtRefToFetchArgs.nix8
-rw-r--r--pkgs/misc/vscode-extensions/python/default.nix15
-rw-r--r--pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json30
-rw-r--r--pkgs/misc/vscode-extensions/rust-analyzer/default.nix11
-rw-r--r--pkgs/misc/vscode-extensions/updateSettings.nix39
-rw-r--r--pkgs/misc/vscode-extensions/updateSettingsTest.nix6
-rw-r--r--pkgs/misc/vscode-extensions/vscode-utils.nix38
-rw-r--r--pkgs/misc/vscode-extensions/vscodeEnv.nix86
-rw-r--r--pkgs/misc/vscode-extensions/vscodeEnvTest.nix12
-rw-r--r--pkgs/misc/vscode-extensions/vscodeExts2nix.nix44
-rw-r--r--pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix54
-rw-r--r--pkgs/os-specific/bsd/netbsd/compat-setup-hook.sh6
-rw-r--r--pkgs/os-specific/bsd/netbsd/fts-setup-hook.sh2
-rw-r--r--pkgs/os-specific/darwin/ios-deploy/default.nix35
-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.nix10
-rw-r--r--pkgs/os-specific/linux/alsa-lib/default.nix4
-rw-r--r--pkgs/os-specific/linux/alsa-topology-conf/default.nix4
-rw-r--r--pkgs/os-specific/linux/alsa-ucm-conf/default.nix4
-rw-r--r--pkgs/os-specific/linux/alsa-utils/default.nix4
-rw-r--r--pkgs/os-specific/linux/apparmor/default.nix15
-rw-r--r--pkgs/os-specific/linux/batman-adv/alfred.nix2
-rw-r--r--pkgs/os-specific/linux/batman-adv/batctl.nix2
-rw-r--r--pkgs/os-specific/linux/bcc/default.nix4
-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/cgmanager/default.nix27
-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/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/device-tree/raspberrypi.nix3
-rw-r--r--pkgs/os-specific/linux/displaylink/default.nix8
-rw-r--r--pkgs/os-specific/linux/displaylink/udev-installer.patch4
-rw-r--r--pkgs/os-specific/linux/dpdk/default.nix6
-rw-r--r--pkgs/os-specific/linux/e1000e/default.nix7
-rw-r--r--pkgs/os-specific/linux/earlyoom/default.nix6
-rw-r--r--pkgs/os-specific/linux/earlyoom/fix-dbus-path.patch11
-rw-r--r--pkgs/os-specific/linux/ell/default.nix4
-rw-r--r--pkgs/os-specific/linux/ena/default.nix4
-rw-r--r--pkgs/os-specific/linux/evdi/default.nix9
-rw-r--r--pkgs/os-specific/linux/exfat/default.nix3
-rw-r--r--pkgs/os-specific/linux/facetimehd/default.nix11
-rw-r--r--pkgs/os-specific/linux/ffado/default.nix8
-rw-r--r--pkgs/os-specific/linux/firejail/default.nix17
-rw-r--r--pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix6
-rw-r--r--pkgs/os-specific/linux/firmware/fwupd/default.nix401
-rw-r--r--pkgs/os-specific/linux/firmware/fwupdate/default.nix66
-rw-r--r--pkgs/os-specific/linux/firmware/fwupdate/do-not-create-sharedstatedir.patch10
-rw-r--r--pkgs/os-specific/linux/firmware/raspberrypi/default.nix4
-rw-r--r--pkgs/os-specific/linux/firmware/raspberrypi/tools-dont-install-sysv-init-scripts.patch20
-rw-r--r--pkgs/os-specific/linux/firmware/raspberrypi/tools.nix8
-rw-r--r--pkgs/os-specific/linux/firmware/sof-firmware/default.nix23
-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.nix8
-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.nix28
-rw-r--r--pkgs/os-specific/linux/google-authenticator/default.nix4
-rw-r--r--pkgs/os-specific/linux/hostapd/default.nix21
-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/input-utils/default.nix2
-rw-r--r--pkgs/os-specific/linux/intel-compute-runtime/default.nix2
-rw-r--r--pkgs/os-specific/linux/iproute/default.nix7
-rw-r--r--pkgs/os-specific/linux/iptables/default.nix4
-rw-r--r--pkgs/os-specific/linux/iptstate/default.nix1
-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/jool/source.nix4
-rw-r--r--pkgs/os-specific/linux/kernel-headers/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix60
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix8
-rw-r--r--pkgs/os-specific/linux/kernel/gpio-utils.nix5
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/config.nix5
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json31
-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.nix (renamed from pkgs/os-specific/linux/kernel/linux-5.5.nix)4
-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-rpi.nix8
-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.nix9
-rw-r--r--pkgs/os-specific/linux/kexectools/default.nix3
-rw-r--r--pkgs/os-specific/linux/keyutils/default.nix5
-rw-r--r--pkgs/os-specific/linux/klibc/shrunk.nix4
-rw-r--r--pkgs/os-specific/linux/kmod-blacklist-ubuntu/default.nix1
-rw-r--r--pkgs/os-specific/linux/kmod-debian-aliases/default.nix7
-rw-r--r--pkgs/os-specific/linux/kmod/default.nix14
-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/libaio/default.nix11
-rw-r--r--pkgs/os-specific/linux/libbpf/default.nix4
-rw-r--r--pkgs/os-specific/linux/libfabric/default.nix4
-rw-r--r--pkgs/os-specific/linux/libratbag/default.nix4
-rw-r--r--pkgs/os-specific/linux/libvolume_id/default.nix9
-rw-r--r--pkgs/os-specific/linux/linuxptp/default.nix4
-rw-r--r--pkgs/os-specific/linux/lvm2/default.nix131
-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.nix19
-rw-r--r--pkgs/os-specific/linux/microcode/intel.nix4
-rw-r--r--pkgs/os-specific/linux/multipath-tools/default.nix11
-rw-r--r--pkgs/os-specific/linux/multipath-tools/json-c-0.14.patch21
-rw-r--r--pkgs/os-specific/linux/musl/default.nix17
-rw-r--r--pkgs/os-specific/linux/mwprocapture/default.nix4
-rw-r--r--pkgs/os-specific/linux/nftables/default.nix4
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix28
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/generic.nix2
-rw-r--r--pkgs/os-specific/linux/nvme-cli/default.nix4
-rw-r--r--pkgs/os-specific/linux/open-iscsi/default.nix4
-rw-r--r--pkgs/os-specific/linux/pam/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.nix13
-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/rfkill/udev.nix5
-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.nix8
-rw-r--r--pkgs/os-specific/linux/rtl8821cu/default.nix37
-rw-r--r--pkgs/os-specific/linux/rtl88x2bu/default.nix38
-rw-r--r--pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix40
-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/sysklogd/default.nix5
-rw-r--r--pkgs/os-specific/linux/syslinux/default.nix13
-rw-r--r--pkgs/os-specific/linux/sysstat/default.nix4
-rw-r--r--pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch2
-rw-r--r--pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch22
-rw-r--r--pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch8
-rw-r--r--pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch2
-rw-r--r--pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch6
-rw-r--r--pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch12
-rw-r--r--pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch2
-rw-r--r--pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch2
-rw-r--r--pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch6
-rw-r--r--pkgs/os-specific/linux/systemd/0012-Install-default-configuration-into-out-share-factory.patch12
-rw-r--r--pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch6
-rw-r--r--pkgs/os-specific/linux/systemd/0014-add-rootprefix-to-lookup-dir-paths.patch2
-rw-r--r--pkgs/os-specific/linux/systemd/0015-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch6
-rw-r--r--pkgs/os-specific/linux/systemd/0016-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch2
-rw-r--r--pkgs/os-specific/linux/systemd/0017-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch2
-rw-r--r--pkgs/os-specific/linux/systemd/0018-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch2
-rw-r--r--pkgs/os-specific/linux/systemd/cryptsetup-generator.nix34
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix44
-rw-r--r--pkgs/os-specific/linux/targetcli/default.nix10
-rw-r--r--pkgs/os-specific/linux/turbostat/default.nix3
-rw-r--r--pkgs/os-specific/linux/uclibc/default.nix4
-rw-r--r--pkgs/os-specific/linux/udisks/2-default.nix2
-rw-r--r--pkgs/os-specific/linux/undervolt/default.nix4
-rw-r--r--pkgs/os-specific/linux/usbguard/default.nix4
-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/wpa_supplicant/gui.nix13
-rw-r--r--pkgs/os-specific/linux/xf86-video-nested/default.nix7
-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/zenpower/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.nix15
-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/adguardhome/default.nix23
-rw-r--r--pkgs/servers/adminer/default.nix4
-rw-r--r--pkgs/servers/amqp/rabbitmq-server/default.nix10
-rw-r--r--pkgs/servers/atlassian/confluence.nix6
-rw-r--r--pkgs/servers/atlassian/crowd.nix4
-rw-r--r--pkgs/servers/atlassian/jira.nix4
-rw-r--r--pkgs/servers/bazarr/default.nix35
-rw-r--r--pkgs/servers/beanstalkd/default.nix4
-rw-r--r--pkgs/servers/blockbook/default.nix43
-rw-r--r--pkgs/servers/caddy/default.nix6
-rw-r--r--pkgs/servers/caddy/v2.nix8
-rw-r--r--pkgs/servers/cayley/default.nix2
-rw-r--r--pkgs/servers/clickhouse/default.nix46
-rw-r--r--pkgs/servers/code-server/default.nix187
-rw-r--r--pkgs/servers/computing/slurm/common-env-echo.patch13
-rw-r--r--pkgs/servers/computing/slurm/default.nix38
-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.nix10
-rw-r--r--pkgs/servers/coturn/default.nix4
-rw-r--r--pkgs/servers/demoit/default.nix12
-rw-r--r--pkgs/servers/dgraph/default.nix41
-rw-r--r--pkgs/servers/dgraph/deps.nix1154
-rw-r--r--pkgs/servers/dict/default.nix19
-rw-r--r--pkgs/servers/dns/bind/default.nix7
-rw-r--r--pkgs/servers/dns/coredns/default.nix10
-rw-r--r--pkgs/servers/dns/dnsdist/default.nix4
-rw-r--r--pkgs/servers/dns/knot-dns/default.nix7
-rw-r--r--pkgs/servers/dns/knot-resolver/default.nix4
-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.nix12
-rw-r--r--pkgs/servers/dns/pdns-recursor/default.nix4
-rw-r--r--pkgs/servers/documize-community/default.nix19
-rw-r--r--pkgs/servers/echoip/default.nix4
-rw-r--r--pkgs/servers/etcd/3.4.nix36
-rw-r--r--pkgs/servers/etcd/default.nix7
-rw-r--r--pkgs/servers/fcgiwrap/default.nix1
-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.nix13
-rw-r--r--pkgs/servers/gobetween/gomod.patch13
-rw-r--r--pkgs/servers/gortr/default.nix9
-rw-r--r--pkgs/servers/gotify/default.nix5
-rw-r--r--pkgs/servers/gotify/mod-sha.nix1
-rw-r--r--pkgs/servers/gotify/source-sha.nix2
-rwxr-xr-xpkgs/servers/gotify/update.sh12
-rw-r--r--pkgs/servers/gotify/vendor-sha.nix1
-rw-r--r--pkgs/servers/gotify/version.nix2
-rw-r--r--pkgs/servers/gpsd/default.nix6
-rw-r--r--pkgs/servers/hashi-ui/default.nix1
-rw-r--r--pkgs/servers/hasura/cli.nix5
-rw-r--r--pkgs/servers/hitch/default.nix8
-rw-r--r--pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch53
-rw-r--r--pkgs/servers/home-assistant/cli.nix4
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix187
-rw-r--r--pkgs/servers/home-assistant/default.nix28
-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
-rwxr-xr-xpkgs/servers/home-assistant/update.sh34
-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/generic.nix3
-rw-r--r--pkgs/servers/http/nginx/mainline.nix4
-rw-r--r--pkgs/servers/http/nginx/modules.nix148
-rw-r--r--pkgs/servers/http/openresty/default.nix2
-rw-r--r--pkgs/servers/http/pshs/default.nix4
-rw-r--r--pkgs/servers/http/unit/default.nix20
-rw-r--r--pkgs/servers/http/webhook/default.nix4
-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/jellyfin/10.5.x.nix61
-rw-r--r--pkgs/servers/jellyfin/default.nix9
-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.nix26
-rw-r--r--pkgs/servers/keycloak/default.nix4
-rw-r--r--pkgs/servers/livepeer/default.nix6
-rw-r--r--pkgs/servers/mail/dovecot/default.nix7
-rw-r--r--pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix35
-rw-r--r--pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix4
-rw-r--r--pkgs/servers/mail/exim/default.nix25
-rw-r--r--pkgs/servers/mail/mailman/default.nix20
-rw-r--r--pkgs/servers/mail/mailman/hyperkitty.nix4
-rw-r--r--pkgs/servers/mail/mailman/log-stderr.patch13
-rw-r--r--pkgs/servers/mail/mailman/postorius.nix4
-rw-r--r--pkgs/servers/mail/mailman/web.nix8
-rw-r--r--pkgs/servers/mail/opensmtpd/default.nix4
-rw-r--r--pkgs/servers/mail/postfix/0001-Fix-build-with-glibc-2.30.patch34
-rw-r--r--pkgs/servers/mail/postfix/default.nix5
-rw-r--r--pkgs/servers/mail/sympa/default.nix4
-rw-r--r--pkgs/servers/martin/default.nix27
-rw-r--r--pkgs/servers/matrix-appservice-discord/default.nix29
-rwxr-xr-xpkgs/servers/matrix-appservice-discord/generate.sh10
-rw-r--r--pkgs/servers/matrix-appservice-discord/node-composition.nix (renamed from pkgs/development/node-packages/composition-v13.nix)6
-rw-r--r--pkgs/servers/matrix-appservice-discord/node-packages.nix5251
-rw-r--r--pkgs/servers/matrix-appservice-discord/package.json3
-rw-r--r--pkgs/servers/matrix-synapse/default.nix35
-rw-r--r--pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix628
-rw-r--r--pkgs/servers/matrix-synapse/matrix-appservice-slack/package.json2
-rw-r--r--pkgs/servers/matrix-synapse/plugins/default.nix6
-rw-r--r--pkgs/servers/matrix-synapse/plugins/ldap3.nix17
-rw-r--r--pkgs/servers/matrix-synapse/plugins/pam.nix15
-rw-r--r--pkgs/servers/matterbridge/default.nix9
-rw-r--r--pkgs/servers/mattermost/default.nix6
-rw-r--r--pkgs/servers/mattermost/matterircd.nix4
-rw-r--r--pkgs/servers/mautrix-telegram/default.nix29
-rw-r--r--pkgs/servers/mautrix-whatsapp/default.nix20
-rw-r--r--pkgs/servers/mediatomb/default.nix4
-rw-r--r--pkgs/servers/meguca/default.nix52
-rw-r--r--pkgs/servers/meguca/server_deps.nix390
-rw-r--r--pkgs/servers/memcached/default.nix4
-rw-r--r--pkgs/servers/mesos-dns/default.nix2
-rw-r--r--pkgs/servers/metabase/default.nix4
-rw-r--r--pkgs/servers/meteor/default.nix4
-rw-r--r--pkgs/servers/miniflux/default.nix11
-rw-r--r--pkgs/servers/minio/default.nix16
-rw-r--r--pkgs/servers/misc/airsonic/default.nix4
-rw-r--r--pkgs/servers/misc/navidrome/default.nix37
-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.nix20
-rw-r--r--pkgs/servers/monitoring/kapacitor/default.nix4
-rw-r--r--pkgs/servers/monitoring/loki/default.nix4
-rw-r--r--pkgs/servers/monitoring/mtail/default.nix9
-rw-r--r--pkgs/servers/monitoring/munin/default.nix4
-rw-r--r--pkgs/servers/monitoring/net-snmp/default.nix2
-rw-r--r--pkgs/servers/monitoring/plugins/wmiplus/default.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/alertmanager.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix23
-rw-r--r--pkgs/servers/monitoring/prometheus/apcupsd-exporter_deps.nix93
-rw-r--r--pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix1
-rw-r--r--pkgs/servers/monitoring/prometheus/bind-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/blackbox-exporter.nix10
-rw-r--r--pkgs/servers/monitoring/prometheus/collectd-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/consul-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/cups-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/default.nix8
-rw-r--r--pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix8
-rw-r--r--pkgs/servers/monitoring/prometheus/dovecot-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix1
-rw-r--r--pkgs/servers/monitoring/prometheus/jmx-httpserver.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/json-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/keylight-exporter.nix26
-rw-r--r--pkgs/servers/monitoring/prometheus/lnd-exporter.nix26
-rw-r--r--pkgs/servers/monitoring/prometheus/mail-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix8
-rw-r--r--pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix26
-rw-r--r--pkgs/servers/monitoring/prometheus/mysqld-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/nginx-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix1
-rw-r--r--pkgs/servers/monitoring/prometheus/node-exporter.nix10
-rw-r--r--pkgs/servers/monitoring/prometheus/postfix-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/postgres-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/process-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/redis-exporter-deps.nix390
-rw-r--r--pkgs/servers/monitoring/prometheus/redis-exporter.nix34
-rw-r--r--pkgs/servers/monitoring/prometheus/snmp-exporter.nix10
-rw-r--r--pkgs/servers/monitoring/prometheus/surfboard-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/tor-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/varnish-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/webui-package.json2
-rw-r--r--pkgs/servers/monitoring/prometheus/webui-yarndeps.nix24
-rw-r--r--pkgs/servers/monitoring/prometheus/wireguard-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/sensu-go/default.nix12
-rw-r--r--pkgs/servers/monitoring/telegraf/default.nix19
-rw-r--r--pkgs/servers/monitoring/thanos/default.nix8
-rw-r--r--pkgs/servers/monitoring/timescale-prometheus/default.nix30
-rw-r--r--pkgs/servers/monitoring/zabbix/agent.nix2
-rw-r--r--pkgs/servers/monitoring/zabbix/proxy.nix2
-rw-r--r--pkgs/servers/monitoring/zabbix/server.nix13
-rw-r--r--pkgs/servers/monitoring/zabbix/versions.nix6
-rw-r--r--pkgs/servers/monitoring/zabbix/web.nix4
-rw-r--r--pkgs/servers/mpd/clientlib.nix4
-rw-r--r--pkgs/servers/mpd/default.nix50
-rw-r--r--pkgs/servers/mqtt/mosquitto/default.nix4
-rw-r--r--pkgs/servers/nats-server/default.nix5
-rw-r--r--pkgs/servers/nats-streaming-server/default.nix1
-rw-r--r--pkgs/servers/nextcloud/default.nix13
-rw-r--r--pkgs/servers/nfs-ganesha/default.nix48
-rw-r--r--pkgs/servers/nfs-ganesha/sysstatedir.patch15
-rw-r--r--pkgs/servers/nginx-sso/default.nix10
-rw-r--r--pkgs/servers/nosql/influxdb/default.nix4
-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.nix11
-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.nix20
-rw-r--r--pkgs/servers/oauth2_proxy/deps.nix615
-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/openafs/1.8/module.nix4
-rw-r--r--pkgs/servers/openafs/1.8/srcs.nix10
-rw-r--r--pkgs/servers/pinnwand/default.nix55
-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.nix9
-rw-r--r--pkgs/servers/radarr/default.nix4
-rw-r--r--pkgs/servers/radicale/2.x.nix (renamed from pkgs/servers/radicale/default.nix)6
-rw-r--r--pkgs/servers/radicale/3.x.nix38
-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/roundcube/plugins/carddav/default.nix11
-rw-r--r--pkgs/servers/roundcube/plugins/persistent_login/default.nix4
-rw-r--r--pkgs/servers/roundcube/plugins/plugins.nix1
-rw-r--r--pkgs/servers/routinator/default.nix8
-rw-r--r--pkgs/servers/sabnzbd/default.nix24
-rw-r--r--pkgs/servers/samba/4.x.nix21
-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.nix8
-rw-r--r--pkgs/servers/serviio/default.nix4
-rw-r--r--pkgs/servers/sickbeard/sickgear.nix4
-rw-r--r--pkgs/servers/sip/freeswitch/default.nix14
-rw-r--r--pkgs/servers/sip/freeswitch/modules.nix8
-rw-r--r--pkgs/servers/skydns/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.nix8
-rw-r--r--pkgs/servers/sql/mariadb/cmake-without-plugin-auth-pam.patch12
-rw-r--r--pkgs/servers/sql/mariadb/connector-c/3_1.nix4
-rw-r--r--pkgs/servers/sql/mariadb/default.nix23
-rw-r--r--pkgs/servers/sql/mariadb/galera/25.nix6
-rw-r--r--pkgs/servers/sql/mariadb/galera/default.nix13
-rw-r--r--pkgs/servers/sql/monetdb/default.nix4
-rw-r--r--pkgs/servers/sql/pgbouncer/default.nix4
-rw-r--r--pkgs/servers/sql/postgresql/default.nix20
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_ed25519.nix31
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_partman.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgroonga.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgrouting.nix8
-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.nix10
-rw-r--r--pkgs/servers/tacacsplus/default.nix2
-rw-r--r--pkgs/servers/tailscale/default.nix14
-rw-r--r--pkgs/servers/tautulli/default.nix4
-rw-r--r--pkgs/servers/tegola/default.nix9
-rw-r--r--pkgs/servers/teleport/default.nix4
-rw-r--r--pkgs/servers/traefik/default.nix9
-rw-r--r--pkgs/servers/trezord/default.nix2
-rw-r--r--pkgs/servers/trickster/trickster.nix5
-rw-r--r--pkgs/servers/ttyd/default.nix4
-rw-r--r--pkgs/servers/tvheadend/default.nix23
-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.nix26
-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.nix58
-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/engelsystem/default.nix52
-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.nix23
-rw-r--r--pkgs/servers/web-apps/shiori/default.nix4
-rw-r--r--pkgs/servers/web-apps/sogo/default.nix76
-rw-r--r--pkgs/servers/web-apps/wallabag/default.nix10
-rw-r--r--pkgs/servers/web-apps/wordpress/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/prosody/default.nix13
-rw-r--r--pkgs/servers/zigbee2mqtt/default.nix35
-rw-r--r--pkgs/servers/zigbee2mqtt/node-packages.nix9739
-rw-r--r--pkgs/servers/zigbee2mqtt/node.nix (renamed from pkgs/development/node-packages/composition-v10.nix)6
-rwxr-xr-xpkgs/servers/zigbee2mqtt/update.sh30
-rw-r--r--pkgs/servers/zoneminder/default.nix19
-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.nix10
-rw-r--r--pkgs/shells/elvish/default.nix15
-rw-r--r--pkgs/shells/fish/default.nix25
-rw-r--r--pkgs/shells/ion/default.nix1
-rw-r--r--pkgs/shells/liquidprompt/default.nix6
-rw-r--r--pkgs/shells/mksh/default.nix4
-rw-r--r--pkgs/shells/nushell/default.nix15
-rw-r--r--pkgs/shells/oil/default.nix4
-rw-r--r--pkgs/shells/powershell/default.nix6
-rw-r--r--pkgs/shells/rssh/default.nix97
-rw-r--r--pkgs/shells/rssh/fix-config-path.patch12
-rw-r--r--pkgs/shells/tcsh/default.nix2
-rw-r--r--pkgs/shells/xonsh/default.nix4
-rw-r--r--pkgs/shells/zsh/antibody/default.nix8
-rw-r--r--pkgs/shells/zsh/grml-zsh-config/default.nix4
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix17
-rw-r--r--pkgs/shells/zsh/pure-prompt/default.nix30
-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.nix7
-rw-r--r--pkgs/shells/zsh/zsh-powerlevel10k/gitstatusd.patch5
-rw-r--r--pkgs/shells/zsh/zsh-prezto/default.nix16
-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.nix22
-rw-r--r--pkgs/stdenv/generic/check-meta.nix13
-rw-r--r--pkgs/stdenv/generic/default.nix11
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix13
-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/test/cross/default.nix16
-rw-r--r--pkgs/test/kernel.nix90
-rw-r--r--pkgs/tools/X11/alttab/default.nix6
-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/ksuperkey/default.nix37
-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/wpgtk/default.nix4
-rw-r--r--pkgs/tools/X11/xbanish/default.nix4
-rw-r--r--pkgs/tools/X11/xbindkeys/default.nix4
-rw-r--r--pkgs/tools/X11/xdg-utils/default.nix1
-rw-r--r--pkgs/tools/X11/xidlehook/default.nix6
-rw-r--r--pkgs/tools/X11/xlayoutdisplay/default.nix4
-rw-r--r--pkgs/tools/X11/xpra/default.nix16
-rw-r--r--pkgs/tools/X11/xpra/fix-41106.patch15
-rw-r--r--pkgs/tools/X11/xpra/fix-paths.patch53
-rw-r--r--pkgs/tools/X11/xpra/libfakeXinerama.nix3
-rw-r--r--pkgs/tools/X11/xsecurelock/default.nix4
-rw-r--r--pkgs/tools/X11/xwallpaper/default.nix27
-rw-r--r--pkgs/tools/admin/amazon-ecr-credential-helper/default.nix4
-rw-r--r--pkgs/tools/admin/ansible/default.nix39
-rw-r--r--pkgs/tools/admin/aws-rotate-key/default.nix2
-rw-r--r--pkgs/tools/admin/aws-vault/default.nix9
-rw-r--r--pkgs/tools/admin/aws_shell/default.nix44
-rw-r--r--pkgs/tools/admin/awscli/default.nix6
-rw-r--r--pkgs/tools/admin/awscli2/default.nix86
-rw-r--r--pkgs/tools/admin/awsweeper/default.nix12
-rw-r--r--pkgs/tools/admin/azure-cli/default.nix4
-rw-r--r--pkgs/tools/admin/azure-cli/python-packages.nix157
-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.nix8
-rw-r--r--pkgs/tools/admin/docker-credential-gcr/default.nix4
-rw-r--r--pkgs/tools/admin/eksctl/default.nix25
-rw-r--r--pkgs/tools/admin/elasticsearch-curator/default.nix2
-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/fastlane/Gemfile.lock122
-rw-r--r--pkgs/tools/admin/fastlane/default.nix1
-rw-r--r--pkgs/tools/admin/fastlane/gemset.nix303
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/default.nix11
-rw-r--r--pkgs/tools/admin/iamy/default.nix6
-rw-r--r--pkgs/tools/admin/lego/default.nix9
-rw-r--r--pkgs/tools/admin/lexicon/default.nix4
-rw-r--r--pkgs/tools/admin/lxd/default.nix30
-rw-r--r--pkgs/tools/admin/mycli/default.nix7
-rw-r--r--pkgs/tools/admin/nomachine-client/default.nix30
-rw-r--r--pkgs/tools/admin/procs/default.nix6
-rw-r--r--pkgs/tools/admin/pulumi/data.nix50
-rwxr-xr-x[-rw-r--r--]pkgs/tools/admin/pulumi/update.sh45
-rw-r--r--pkgs/tools/admin/salt/default.nix31
-rw-r--r--pkgs/tools/admin/salt/fix-libcrypto-loading.patch15
-rw-r--r--pkgs/tools/admin/scaleway-cli/default.nix3
-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/12-CVE-2016-9296.patch23
-rw-r--r--pkgs/tools/archivers/p7zip/13-CVE-2017-17969.patch35
-rw-r--r--pkgs/tools/archivers/p7zip/default.nix47
-rw-r--r--pkgs/tools/archivers/unar/default.nix4
-rw-r--r--pkgs/tools/archivers/undmg/default.nix11
-rw-r--r--pkgs/tools/archivers/undmg/setup-hook.sh2
-rw-r--r--pkgs/tools/audio/abcm2ps/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.nix18
-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/mpd-mpris/default.nix5
-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.nix6
-rw-r--r--pkgs/tools/audio/video2midi/default.nix4
-rw-r--r--pkgs/tools/backup/bacula/default.nix4
-rw-r--r--pkgs/tools/backup/borg/default.nix4
-rw-r--r--pkgs/tools/backup/bup/default.nix4
-rw-r--r--pkgs/tools/backup/diskrsync/default.nix1
-rw-r--r--pkgs/tools/backup/duplicati/default.nix6
-rw-r--r--pkgs/tools/backup/duplicity/default.nix4
-rw-r--r--pkgs/tools/backup/easysnap/default.nix2
-rw-r--r--pkgs/tools/backup/grab-site/default.nix4
-rw-r--r--pkgs/tools/backup/kopia/default.nix43
-rw-r--r--pkgs/tools/backup/monolith/default.nix14
-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.nix16
-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/bluetooth/blueman/default.nix4
-rw-r--r--pkgs/tools/bluetooth/bluez-alsa/default.nix4
-rw-r--r--pkgs/tools/cd-dvd/isolyzer/default.nix25
-rw-r--r--pkgs/tools/cd-dvd/unetbootin/default.nix4
-rw-r--r--pkgs/tools/compression/bzip2/default.nix5
-rw-r--r--pkgs/tools/compression/gzip/default.nix17
-rw-r--r--pkgs/tools/compression/hactool/default.nix10
-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.nix53
-rw-r--r--pkgs/tools/compression/zstd/playtests-darwin.patch18
-rw-r--r--pkgs/tools/filesystems/archivemount/default.nix4
-rw-r--r--pkgs/tools/filesystems/avfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/bashmount/default.nix4
-rw-r--r--pkgs/tools/filesystems/bcache-tools/default.nix7
-rw-r--r--pkgs/tools/filesystems/bees/default.nix4
-rw-r--r--pkgs/tools/filesystems/bindfs/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.nix59
-rw-r--r--pkgs/tools/filesystems/convoy/default.nix4
-rw-r--r--pkgs/tools/filesystems/davfs2/default.nix2
-rw-r--r--pkgs/tools/filesystems/fatsort/default.nix4
-rw-r--r--pkgs/tools/filesystems/file-rename/default.nix6
-rw-r--r--pkgs/tools/filesystems/fuse-overlayfs/default.nix10
-rw-r--r--pkgs/tools/filesystems/gcsfuse/default.nix6
-rw-r--r--pkgs/tools/filesystems/genromfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/glusterfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/moosefs/default.nix7
-rw-r--r--pkgs/tools/filesystems/netatalk/default.nix2
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/cryptsetup.nix11
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/default.nix8
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/lvm2.nix14
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix19
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/parted.nix11
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/pyblock-sysmacros.h.patch12
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/pyblock.nix6
-rw-r--r--pkgs/tools/filesystems/s3fs/default.nix4
-rw-r--r--pkgs/tools/filesystems/snapraid/default.nix4
-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/cfdg/default.nix4
-rw-r--r--pkgs/tools/graphics/dpic/default.nix24
-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/glxinfo/default.nix3
-rw-r--r--pkgs/tools/graphics/gmic/default.nix11
-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/imgurbash2/default.nix4
-rw-r--r--pkgs/tools/graphics/jhead/default.nix21
-rw-r--r--pkgs/tools/graphics/lepton/default.nix8
-rw-r--r--pkgs/tools/graphics/lprof/keep-environment.patch2
-rw-r--r--pkgs/tools/graphics/luxcorerender/default.nix26
-rw-r--r--pkgs/tools/graphics/netpbm/default.nix2
-rw-r--r--pkgs/tools/graphics/oxipng/default.nix7
-rw-r--r--pkgs/tools/graphics/shotgun/default.nix2
-rw-r--r--pkgs/tools/graphics/spirv-cross/default.nix4
-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/transfig/default.nix10
-rw-r--r--pkgs/tools/graphics/transfig/patch-fig2dev-Imakefile.patch (renamed from pkgs/tools/graphics/transfig/patch-fig2dev-Imakefile)0
-rw-r--r--pkgs/tools/graphics/transfig/patch-fig2dev-dev-Imakefile.patch (renamed from pkgs/tools/graphics/transfig/patch-fig2dev-dev-Imakefile)0
-rw-r--r--pkgs/tools/graphics/transfig/patch-fig2dev-dev-gensvg.c.patch (renamed from pkgs/tools/graphics/transfig/patch-fig2dev-dev-gensvg.c)0
-rw-r--r--pkgs/tools/graphics/transfig/patch-fig2dev-fig2dev.h.patch (renamed from pkgs/tools/graphics/transfig/patch-fig2dev-fig2dev.h)0
-rw-r--r--pkgs/tools/graphics/transfig/patch-transfig-Imakefile.patch (renamed from pkgs/tools/graphics/transfig/patch-transfig-Imakefile)0
-rw-r--r--pkgs/tools/graphics/vips/default.nix4
-rw-r--r--pkgs/tools/graphics/viu/default.nix1
-rw-r--r--pkgs/tools/graphics/wkhtmltopdf/default.nix4
-rw-r--r--pkgs/tools/graphics/yafaray-core/default.nix8
-rw-r--r--pkgs/tools/graphics/yaxg/default.nix6
-rw-r--r--pkgs/tools/graphics/zbar/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/inputmethods/interception-tools/default.nix4
-rw-r--r--pkgs/tools/misc/3mux/default.nix8
-rw-r--r--pkgs/tools/misc/agedu/default.nix6
-rw-r--r--pkgs/tools/misc/antimicro/default.nix27
-rw-r--r--pkgs/tools/misc/antimicroX/default.nix44
-rw-r--r--pkgs/tools/misc/autorandr/default.nix6
-rw-r--r--pkgs/tools/misc/bashcards/default.nix30
-rw-r--r--pkgs/tools/misc/bat-extras/default.nix42
-rw-r--r--pkgs/tools/misc/bat/default.nix21
-rw-r--r--pkgs/tools/misc/bat/macos.patch13
-rw-r--r--pkgs/tools/misc/bdf2psf/default.nix4
-rw-r--r--pkgs/tools/misc/bdf2sfd/default.nix5
-rw-r--r--pkgs/tools/misc/bibtool/default.nix5
-rw-r--r--pkgs/tools/misc/birdfont/default.nix4
-rw-r--r--pkgs/tools/misc/broot/default.nix47
-rw-r--r--pkgs/tools/misc/brotab/default.nix4
-rw-r--r--pkgs/tools/misc/capture/default.nix4
-rw-r--r--pkgs/tools/misc/chafa/default.nix2
-rw-r--r--pkgs/tools/misc/chezmoi/default.nix9
-rw-r--r--pkgs/tools/misc/clex/default.nix2
-rw-r--r--pkgs/tools/misc/clipman/default.nix4
-rw-r--r--pkgs/tools/misc/cloc/default.nix4
-rw-r--r--pkgs/tools/misc/cloud-sql-proxy/default.nix1
-rw-r--r--pkgs/tools/misc/cloud-utils/default.nix6
-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/cowsay/default.nix2
-rw-r--r--pkgs/tools/misc/cpuminer/default.nix20
-rw-r--r--pkgs/tools/misc/dashing/default.nix20
-rw-r--r--pkgs/tools/misc/dashing/deps.nix112
-rw-r--r--pkgs/tools/misc/dasht/default.nix11
-rw-r--r--pkgs/tools/misc/ddcutil/default.nix4
-rw-r--r--pkgs/tools/misc/debianutils/default.nix4
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix47
-rw-r--r--pkgs/tools/misc/diffoscope/ignore_links.patch44
-rw-r--r--pkgs/tools/misc/diffoscope/skip-failing-test.patch12
-rw-r--r--pkgs/tools/misc/dijo/default.nix21
-rw-r--r--pkgs/tools/misc/direnv/default.nix30
-rw-r--r--pkgs/tools/misc/diskonaut/default.nix22
-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/entr/default.nix4
-rw-r--r--pkgs/tools/misc/envsubst/default.nix5
-rw-r--r--pkgs/tools/misc/esphome/default.nix (renamed from pkgs/servers/home-assistant/esphome.nix)17
-rw-r--r--pkgs/tools/misc/etcher/default.nix4
-rw-r--r--pkgs/tools/misc/exa/default.nix2
-rw-r--r--pkgs/tools/misc/execline/default.nix4
-rw-r--r--pkgs/tools/misc/fd/default.nix9
-rw-r--r--pkgs/tools/misc/fdtools/default.nix78
-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.nix12
-rw-r--r--pkgs/tools/misc/figlet/default.nix2
-rw-r--r--pkgs/tools/misc/file/default.nix10
-rw-r--r--pkgs/tools/misc/file/webassembly-format-fix.patch13
-rw-r--r--pkgs/tools/misc/findutils/default.nix9
-rw-r--r--pkgs/tools/misc/fluent-bit/default.nix4
-rw-r--r--pkgs/tools/misc/fluentd/Gemfile1
-rw-r--r--pkgs/tools/misc/fluentd/Gemfile.lock53
-rw-r--r--pkgs/tools/misc/fluentd/gemset.nix112
-rw-r--r--pkgs/tools/misc/fontforge/default.nix48
-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/fzf/default.nix19
-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/gh-ost/default.nix4
-rw-r--r--pkgs/tools/misc/gif-for-cli/default.nix4
-rw-r--r--pkgs/tools/misc/go.rice/default.nix27
-rw-r--r--pkgs/tools/misc/goaccess/default.nix4
-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.nix58
-rw-r--r--pkgs/tools/misc/gringo/default.nix4
-rw-r--r--pkgs/tools/misc/h/default.nix2
-rw-r--r--pkgs/tools/misc/hashit/default.nix4
-rw-r--r--pkgs/tools/misc/hdf4/default.nix7
-rw-r--r--pkgs/tools/misc/heatseeker/default.nix2
-rw-r--r--pkgs/tools/misc/hebcal/default.nix4
-rw-r--r--pkgs/tools/misc/hexyl/default.nix6
-rw-r--r--pkgs/tools/misc/hyperfine/default.nix18
-rw-r--r--pkgs/tools/misc/ical2org/default.nix2
-rw-r--r--pkgs/tools/misc/intermodal/default.nix6
-rw-r--r--pkgs/tools/misc/jdiskreport/default.nix2
-rw-r--r--pkgs/tools/misc/jdupes/default.nix11
-rw-r--r--pkgs/tools/misc/jugglinglab/default.nix30
-rw-r--r--pkgs/tools/misc/kak-lsp/default.nix1
-rw-r--r--pkgs/tools/misc/kargo/default.nix17
-rw-r--r--pkgs/tools/misc/kepubify/default.nix8
-rw-r--r--pkgs/tools/misc/latex2html/default.nix4
-rw-r--r--pkgs/tools/misc/lazydocker/default.nix4
-rw-r--r--pkgs/tools/misc/lf/default.nix20
-rw-r--r--pkgs/tools/misc/libcpuid/default.nix4
-rw-r--r--pkgs/tools/misc/libgen-cli/default.nix20
-rw-r--r--pkgs/tools/misc/licensor/default.nix1
-rw-r--r--pkgs/tools/misc/lnch/default.nix21
-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.nix39
-rw-r--r--pkgs/tools/misc/lottieconverter/default.nix33
-rw-r--r--pkgs/tools/misc/man-db/default.nix12
-rw-r--r--pkgs/tools/misc/man-db/systemwide-man-db-conf.patch39
-rw-r--r--pkgs/tools/misc/mbuffer/default.nix4
-rw-r--r--pkgs/tools/misc/mc/default.nix4
-rw-r--r--pkgs/tools/misc/mcfly/default.nix19
-rw-r--r--pkgs/tools/misc/mdbtools/default.nix42
-rw-r--r--pkgs/tools/misc/miniserve/default.nix8
-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.nix25
-rw-r--r--pkgs/tools/misc/multitail/default.nix4
-rw-r--r--pkgs/tools/misc/mutagen/default.nix8
-rw-r--r--pkgs/tools/misc/ncdu/default.nix6
-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/osinfo-db-tools/default.nix10
-rw-r--r--pkgs/tools/misc/osm2pgsql/default.nix28
-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.nix8
-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.nix11
-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/profile-cleaner/default.nix4
-rw-r--r--pkgs/tools/misc/profile-sync-daemon/default.nix4
-rw-r--r--pkgs/tools/misc/progress/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/rmlint/default.nix57
-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.nix8
-rw-r--r--pkgs/tools/misc/sdate/default.nix4
-rw-r--r--pkgs/tools/misc/shadowenv/default.nix6
-rw-r--r--pkgs/tools/misc/shell-hist/default.nix1
-rw-r--r--pkgs/tools/misc/silicon/default.nix7
-rw-r--r--pkgs/tools/misc/skim/default.nix17
-rw-r--r--pkgs/tools/misc/snapper/default.nix8
-rw-r--r--pkgs/tools/misc/spigot/default.nix36
-rw-r--r--pkgs/tools/misc/starship/default.nix30
-rw-r--r--pkgs/tools/misc/system-config-printer/default.nix17
-rw-r--r--pkgs/tools/misc/systrayhelper/default.nix1
-rw-r--r--pkgs/tools/misc/tealdeer/default.nix7
-rw-r--r--pkgs/tools/misc/teleconsole/default.nix1
-rw-r--r--pkgs/tools/misc/tewisay/default.nix1
-rw-r--r--pkgs/tools/misc/tmux-xpanes/default.nix4
-rw-r--r--pkgs/tools/misc/tmuxp/default.nix4
-rw-r--r--pkgs/tools/misc/topgrade/default.nix7
-rw-r--r--pkgs/tools/misc/toybox/default.nix4
-rw-r--r--pkgs/tools/misc/ttwatch/default.nix14
-rw-r--r--pkgs/tools/misc/txt2man/default.nix4
-rw-r--r--pkgs/tools/misc/uhubctl/default.nix4
-rw-r--r--pkgs/tools/misc/umlet/default.nix2
-rw-r--r--pkgs/tools/misc/unicode/default.nix16
-rw-r--r--pkgs/tools/misc/up/default.nix6
-rw-r--r--pkgs/tools/misc/up/gomod.patch23
-rw-r--r--pkgs/tools/misc/upower-notify/default.nix2
-rw-r--r--pkgs/tools/misc/vdirsyncer/stable.nix52
-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/woeusb/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/yle-dl/default.nix4
-rw-r--r--pkgs/tools/misc/you-get/default.nix4
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix8
-rw-r--r--pkgs/tools/misc/ytree/default.nix49
-rw-r--r--pkgs/tools/misc/yubikey-personalization/default.nix11
-rw-r--r--pkgs/tools/misc/z-lua/default.nix4
-rw-r--r--pkgs/tools/misc/zabbixctl/default.nix1
-rw-r--r--pkgs/tools/misc/zoxide/default.nix21
-rw-r--r--pkgs/tools/networking/acme-client/default.nix18
-rw-r--r--pkgs/tools/networking/airfield/node-packages.nix62
-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/axel/default.nix4
-rw-r--r--pkgs/tools/networking/bandwhich/default.nix6
-rw-r--r--pkgs/tools/networking/bukubrow/default.nix1
-rw-r--r--pkgs/tools/networking/bully/default.nix29
-rw-r--r--pkgs/tools/networking/cassowary/default.nix8
-rw-r--r--pkgs/tools/networking/chrony/default.nix4
-rw-r--r--pkgs/tools/networking/cjdns/default.nix8
-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/connman/connmanui/default.nix34
-rw-r--r--pkgs/tools/networking/corerad/default.nix28
-rw-r--r--pkgs/tools/networking/croc/default.nix11
-rw-r--r--pkgs/tools/networking/curl/default.nix16
-rw-r--r--pkgs/tools/networking/curlie/default.nix4
-rw-r--r--pkgs/tools/networking/dd-agent/datadog-agent.nix1
-rw-r--r--pkgs/tools/networking/dd-agent/datadog-process-agent.nix1
-rw-r--r--pkgs/tools/networking/dnscrypt-proxy2/default.nix14
-rw-r--r--pkgs/tools/networking/dnsmasq/default.nix4
-rw-r--r--pkgs/tools/networking/dnsproxy/default.nix9
-rw-r--r--pkgs/tools/networking/dropbear/default.nix4
-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/fastd/default.nix21
-rw-r--r--pkgs/tools/networking/findomain/default.nix7
-rw-r--r--pkgs/tools/networking/flannel/default.nix4
-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/goimapnotify/default.nix26
-rw-r--r--pkgs/tools/networking/goimapnotify/deps.nix66
-rw-r--r--pkgs/tools/networking/grpcui/default.nix12
-rw-r--r--pkgs/tools/networking/haproxy/default.nix4
-rw-r--r--pkgs/tools/networking/hey/default.nix4
-rw-r--r--pkgs/tools/networking/httpie/default.nix17
-rw-r--r--pkgs/tools/networking/httplab/default.nix4
-rw-r--r--pkgs/tools/networking/i2pd/default.nix4
-rw-r--r--pkgs/tools/networking/ip2unix/default.nix4
-rw-r--r--pkgs/tools/networking/iperf/3.nix7
-rw-r--r--pkgs/tools/networking/isync/default.nix6
-rw-r--r--pkgs/tools/networking/libreswan/default.nix17
-rw-r--r--pkgs/tools/networking/mailutils/default.nix2
-rw-r--r--pkgs/tools/networking/megatools/default.nix2
-rw-r--r--pkgs/tools/networking/memtier-benchmark/default.nix4
-rw-r--r--pkgs/tools/networking/minidlna/default.nix4
-rw-r--r--pkgs/tools/networking/minio-client/default.nix14
-rw-r--r--pkgs/tools/networking/modem-manager/default.nix4
-rw-r--r--pkgs/tools/networking/mozwire/default.nix24
-rw-r--r--pkgs/tools/networking/mu/default.nix12
-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/applet/default.nix4
-rw-r--r--pkgs/tools/networking/network-manager/default.nix9
-rw-r--r--pkgs/tools/networking/network-manager/dmenu/default.nix6
-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/fortisslvpn/default.nix53
-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/strongswan/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/ofono/0001-Search-connectors-in-OFONO_PLUGIN_PATH.patch2
-rw-r--r--pkgs/tools/networking/oneshot/default.nix26
-rw-r--r--pkgs/tools/networking/openapi-generator-cli/default.nix2
-rw-r--r--pkgs/tools/networking/openconnect/default.nix8
-rw-r--r--pkgs/tools/networking/openconnect_pa/default.nix2
-rw-r--r--pkgs/tools/networking/openfortivpn/default.nix4
-rw-r--r--pkgs/tools/networking/openresolv/default.nix4
-rw-r--r--pkgs/tools/networking/openssh/default.nix31
-rw-r--r--pkgs/tools/networking/openvpn/default.nix25
-rw-r--r--pkgs/tools/networking/p2p/gtk-gnutella/default.nix4
-rw-r--r--pkgs/tools/networking/persepolis/default.nix20
-rw-r--r--pkgs/tools/networking/pirate-get/default.nix8
-rw-r--r--pkgs/tools/networking/pixiecore/default.nix5
-rw-r--r--pkgs/tools/networking/pmacct/default.nix6
-rw-r--r--pkgs/tools/networking/privoxy/default.nix2
-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.nix5
-rw-r--r--pkgs/tools/networking/shadowsocks-rust/default.nix11
-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/slack-cli/default.nix5
-rw-r--r--pkgs/tools/networking/slirp4netns/default.nix7
-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/ssldump/default.nix6
-rw-r--r--pkgs/tools/networking/tayga/default.nix2
-rw-r--r--pkgs/tools/networking/tcpreplay/default.nix4
-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/tinyproxy/default.nix2
-rw-r--r--pkgs/tools/networking/tridactyl-native/default.nix4
-rw-r--r--pkgs/tools/networking/tunnelto/default.nix (renamed from pkgs/tools/networking/wormhole/default.nix)8
-rw-r--r--pkgs/tools/networking/unbound/default.nix4
-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.nix6
-rwxr-xr-xpkgs/tools/networking/v2ray/update.sh28
-rw-r--r--pkgs/tools/networking/vde2/default.nix2
-rw-r--r--pkgs/tools/networking/vpn-slice/default.nix25
-rw-r--r--pkgs/tools/networking/wifite2/default.nix4
-rw-r--r--pkgs/tools/networking/wireguard-go/default.nix4
-rw-r--r--pkgs/tools/networking/wireguard-tools/default.nix8
-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/nix/cached-nix-shell/default.nix12
-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.nix7
-rw-r--r--pkgs/tools/package-management/cargo-audit/default.nix1
-rw-r--r--pkgs/tools/package-management/cargo-deb/default.nix12
-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/morph/default.nix8
-rw-r--r--pkgs/tools/package-management/morph/deps.nix2
-rw-r--r--pkgs/tools/package-management/mynewt-newt/default.nix4
-rw-r--r--pkgs/tools/package-management/nfpm/default.nix8
-rw-r--r--pkgs/tools/package-management/nix-bundle/default.nix4
-rw-r--r--pkgs/tools/package-management/nix-doc/default.nix29
-rw-r--r--pkgs/tools/package-management/nix-index/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-prefetch-scripts/default.nix4
-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-universal-prefetch/default.nix4
-rw-r--r--pkgs/tools/package-management/nix-update/default.nix34
-rw-r--r--pkgs/tools/package-management/nix/default.nix67
-rw-r--r--pkgs/tools/package-management/nixui/node-packages.nix2
-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/package-management/reuse/default.nix5
-rw-r--r--pkgs/tools/package-management/rpm/default.nix8
-rw-r--r--pkgs/tools/security/1password-gui/default.nix68
-rw-r--r--pkgs/tools/security/2fa/default.nix1
-rw-r--r--pkgs/tools/security/afl/default.nix4
-rw-r--r--pkgs/tools/security/aflplusplus/default.nix30
-rw-r--r--pkgs/tools/security/age/default.nix11
-rw-r--r--pkgs/tools/security/aws-okta/default.nix9
-rw-r--r--pkgs/tools/security/aws-okta/deps.nix29
-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.nix9
-rw-r--r--pkgs/tools/security/bitwarden/default.nix4
-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/bundler-audit/Gemfile.lock6
-rw-r--r--pkgs/tools/security/bundler-audit/default.nix1
-rw-r--r--pkgs/tools/security/bundler-audit/gemset.nix12
-rw-r--r--pkgs/tools/security/ccid/default.nix4
-rw-r--r--pkgs/tools/security/certstrap/default.nix5
-rw-r--r--pkgs/tools/security/cfssl/default.nix49
-rw-r--r--pkgs/tools/security/chipsec/default.nix4
-rw-r--r--pkgs/tools/security/clamav/default.nix16
-rw-r--r--pkgs/tools/security/clevis/default.nix4
-rw-r--r--pkgs/tools/security/creddump/default.nix36
-rw-r--r--pkgs/tools/security/doas/0001-add-NixOS-specific-dirs-to-safe-PATH.patch24
-rw-r--r--pkgs/tools/security/doas/default.nix13
-rw-r--r--pkgs/tools/security/doona/default.nix36
-rw-r--r--pkgs/tools/security/doppler/default.nix28
-rw-r--r--pkgs/tools/security/duo-unix/default.nix4
-rw-r--r--pkgs/tools/security/ecryptfs/default.nix13
-rw-r--r--pkgs/tools/security/eid-mw/default.nix18
-rw-r--r--pkgs/tools/security/fprintd/default.nix104
-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/gnome-keysign/default.nix7
-rw-r--r--pkgs/tools/security/gnupg-pkcs11-scd/default.nix2
-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.nix8
-rw-r--r--pkgs/tools/security/hash_extender/default.nix11
-rw-r--r--pkgs/tools/security/hashcat/default.nix12
-rw-r--r--pkgs/tools/security/hcxdumptool/default.nix4
-rw-r--r--pkgs/tools/security/hcxtools/default.nix4
-rw-r--r--pkgs/tools/security/hologram/default.nix1
-rw-r--r--pkgs/tools/security/honggfuzz/default.nix45
-rw-r--r--pkgs/tools/security/ibm-sw-tpm2/default.nix4
-rw-r--r--pkgs/tools/security/ipscan/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.nix42
-rw-r--r--pkgs/tools/security/keybase/default.nix4
-rw-r--r--pkgs/tools/security/keybase/gui.nix9
-rw-r--r--pkgs/tools/security/keycard-cli/default.nix4
-rw-r--r--pkgs/tools/security/keysmith/default.nix45
-rw-r--r--pkgs/tools/security/lynis/default.nix12
-rw-r--r--pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--pkgs/tools/security/metasploit/Gemfile.lock104
-rw-r--r--pkgs/tools/security/metasploit/default.nix4
-rw-r--r--pkgs/tools/security/metasploit/gemset.nix164
-rw-r--r--pkgs/tools/security/metasploit/shell.nix11
-rw-r--r--pkgs/tools/security/minisign/default.nix8
-rw-r--r--pkgs/tools/security/mkp224o/default.nix4
-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/rage/default.nix14
-rw-r--r--pkgs/tools/security/rhash/default.nix4
-rw-r--r--pkgs/tools/security/ripasso/cursive.nix2
-rw-r--r--pkgs/tools/security/ripasso/fix-tests.patch35
-rw-r--r--pkgs/tools/security/saml2aws/default.nix9
-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/sn0int/default.nix10
-rw-r--r--pkgs/tools/security/softhsm/default.nix21
-rw-r--r--pkgs/tools/security/sops/default.nix8
-rw-r--r--pkgs/tools/security/ssh-audit/default.nix69
-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/tpm2-abrmd/default.nix40
-rw-r--r--pkgs/tools/security/tpm2-tools/default.nix4
-rw-r--r--pkgs/tools/security/vault/default.nix9
-rw-r--r--pkgs/tools/security/verifpal/default.nix32
-rw-r--r--pkgs/tools/security/verifpal/deps.nix12
-rw-r--r--pkgs/tools/security/vulnix/default.nix10
-rw-r--r--pkgs/tools/security/yara/default.nix28
-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/confd/default.nix13
-rw-r--r--pkgs/tools/system/confd/deps.nix74
-rw-r--r--pkgs/tools/system/ctop/default.nix4
-rw-r--r--pkgs/tools/system/datefudge/default.nix18
-rw-r--r--pkgs/tools/system/di/default.nix4
-rw-r--r--pkgs/tools/system/disk-filltest/default.nix38
-rw-r--r--pkgs/tools/system/efibootmgr/default.nix2
-rw-r--r--pkgs/tools/system/efivar/default.nix10
-rw-r--r--pkgs/tools/system/facter/default.nix14
-rw-r--r--pkgs/tools/system/fio/default.nix4
-rw-r--r--pkgs/tools/system/freeipmi/default.nix4
-rw-r--r--pkgs/tools/system/gotop/default.nix11
-rw-r--r--pkgs/tools/system/inxi/default.nix4
-rw-r--r--pkgs/tools/system/ior/default.nix26
-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.nix10
-rw-r--r--pkgs/tools/system/netdata/go.d.plugin.nix8
-rw-r--r--pkgs/tools/system/pciutils/default.nix4
-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/runit/default.nix9
-rw-r--r--pkgs/tools/system/s-tui/default.nix4
-rw-r--r--pkgs/tools/system/smartmontools/default.nix9
-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.nix17
-rw-r--r--pkgs/tools/system/tuptime/default.nix27
-rw-r--r--pkgs/tools/system/ytop/default.nix6
-rw-r--r--pkgs/tools/system/zenith/cargo-lock.patch13
-rw-r--r--pkgs/tools/system/zenith/default.nix7
-rw-r--r--pkgs/tools/text/agrep/default.nix8
-rw-r--r--pkgs/tools/text/aha/default.nix6
-rw-r--r--pkgs/tools/text/amber/default.nix1
-rw-r--r--pkgs/tools/text/ansifilter/default.nix6
-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/epubcheck/default.nix4
-rw-r--r--pkgs/tools/text/fanficfare/default.nix4
-rw-r--r--pkgs/tools/text/fastmod/default.nix28
-rw-r--r--pkgs/tools/text/gjo/default.nix5
-rw-r--r--pkgs/tools/text/glogg/default.nix27
-rw-r--r--pkgs/tools/text/gnugrep/default.nix7
-rw-r--r--pkgs/tools/text/gtranslator/default.nix2
-rw-r--r--pkgs/tools/text/highlight/default.nix4
-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/languagetool/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.nix33
-rw-r--r--pkgs/tools/text/platinum-searcher/default.nix1
-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.nix11
-rw-r--r--pkgs/tools/text/ripgrep/default.nix9
-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.nix20
-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.nix7
-rw-r--r--pkgs/tools/text/ugrep/default.nix23
-rw-r--r--pkgs/tools/text/vale/default.nix18
-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/text/xurls/default.nix4
-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/scdoc/default.nix5
-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.nix8
-rw-r--r--pkgs/tools/typesetting/tex/texlive/bin.nix4
-rw-r--r--pkgs/tools/typesetting/tex/texlive/combine.nix4
-rw-r--r--pkgs/tools/typesetting/tex/texlive/default.nix9
-rw-r--r--pkgs/tools/video/gopro/default.nix4
-rw-r--r--pkgs/tools/video/rav1e/default.nix42
-rw-r--r--pkgs/tools/video/untrunc-anthwlock/default.nix36
-rw-r--r--pkgs/tools/virtualization/alpine-make-vm-image/default.nix36
-rw-r--r--pkgs/tools/virtualization/cri-tools/default.nix9
-rw-r--r--pkgs/tools/virtualization/google-compute-engine-oslogin/default.nix15
-rw-r--r--pkgs/tools/virtualization/google-compute-engine/default.nix2
-rw-r--r--pkgs/tools/virtualization/govc/default.nix6
-rw-r--r--pkgs/tools/virtualization/linode-cli/default.nix8
-rw-r--r--pkgs/tools/virtualization/marathonctl/default.nix1
-rwxr-xr-xpkgs/tools/virtualization/nixos-container/nixos-container.pl38
-rw-r--r--pkgs/tools/virtualization/nixos-shell/default.nix30
-rw-r--r--pkgs/tools/wayland/wayland-utils/default.nix30
-rw-r--r--pkgs/top-level/agda-packages.nix30
-rw-r--r--pkgs/top-level/aliases.nix89
-rw-r--r--pkgs/top-level/all-packages.nix2273
-rw-r--r--pkgs/top-level/beam-packages.nix81
-rw-r--r--pkgs/top-level/coq-packages.nix15
-rw-r--r--pkgs/top-level/darwin-packages.nix2
-rw-r--r--pkgs/top-level/dhall-packages.nix28
-rw-r--r--pkgs/top-level/dotnet-packages.nix2
-rw-r--r--pkgs/top-level/haskell-packages.nix61
-rw-r--r--pkgs/top-level/lua-packages.nix33
-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.nix255
-rw-r--r--pkgs/top-level/perl-packages.nix2034
-rw-r--r--pkgs/top-level/php-packages.nix82
-rw-r--r--pkgs/top-level/python-packages.nix649
-rw-r--r--pkgs/top-level/release-cross.nix4
-rw-r--r--pkgs/top-level/release-lib.nix7
-rw-r--r--pkgs/top-level/release-small.nix4
-rw-r--r--pkgs/top-level/release.nix7
-rw-r--r--pkgs/top-level/static.nix36
6682 files changed, 181786 insertions, 103466 deletions
diff --git a/.editorconfig b/.editorconfig
index f272739f240..75c34374130 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,5 +1,5 @@
 # EditorConfig configuration for nixpkgs
-# http://EditorConfig.org
+# https://EditorConfig.org
 
 # Top-most EditorConfig file
 root = true
@@ -11,18 +11,96 @@ insert_final_newline = true
 trim_trailing_whitespace = true
 charset = utf-8
 
+# Ignore diffs/patches
+[*.{diff,patch}]
+end_of_line = unset
+insert_final_newline = unset
+trim_trailing_whitespace = unset
+
 # see https://nixos.org/nixpkgs/manual/#chap-conventions
 
-# Match nix/ruby/docbook files, set indent to spaces with width of two
-[*.{nix,rb,xml}]
+# Match json/lockfiles/markdown/nix/perl/python/ruby/shell/docbook files, set indent to spaces
+[*.{json,lock,md,nix,pl,pm,py,rb,sh,xml}]
 indent_style = space
+
+# Match docbook files, set indent width of one
+[*.xml]
+indent_size = 1
+
+# Match json/lockfiles/markdown/nix/ruby files, set indent width of two
+[*.{json,lock,md,nix,rb}]
 indent_size = 2
 
-# Match shell/python/perl scripts, set indent to spaces with width of four
-[*.{sh,py,pl}]
-indent_style = space
+# Match perl/python/shell scripts, set indent width of four
+[*.{pl,pm,py,sh}]
 indent_size = 4
 
-# Match diffs, avoid to trim trailing whitespace
-[*.{diff,patch}]
-trim_trailing_whitespace = false
+# Match gemfiles, set indent to spaces with width of two
+[Gemfile]
+indent_size = 2
+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
+
+[gemset.nix]
+insert_final_newline = unset
+
+[node-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
+
+[pkgs/development/haskell-modules/hackage-packages.nix]
+indent_style = unset
+indent_size = unset
+trim_trailing_whitespace = unset
+
+[pkgs/development/mobile/androidenv/generated/{addons,packages}.nix]
+trim_trailing_whitespace = unset
+
+[pkgs/development/node-packages/node-packages.nix]
+insert_final_newline = unset
+
+[pkgs/servers/dict/wordnet_structures.py]
+indent_size = unset
+trim_trailing_whitespace = unset
+
+[pkgs/top-level/perl-packages.nix]
+indent_size = unset
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 7c39ce48a3f..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
@@ -55,6 +61,13 @@
 # NixOS integration test driver
 /nixos/lib/test-driver  @tfc
 
+# Updaters
+## update.nix
+/maintainers/scripts/update.nix   @jtojnar
+/maintainers/scripts/update.py    @jtojnar
+## common-updater-scripts
+/pkgs/common-updater/scripts/update-source-version    @jtojnar
+
 # Python-related code and docs
 /maintainers/scripts/update-python-libraries	@FRidh
 /pkgs/top-level/python-packages.nix     @FRidh @jonringer
@@ -174,9 +187,24 @@
 /nixos/modules/services/monitoring/prometheus/exporters.xml  @WilliButz
 /nixos/tests/prometheus-exporters.nix                        @WilliButz
 
-# PHP
-/doc/languages-frameworks/php.section.md @etu
-/nixos/tests/php                         @etu
-/pkgs/build-support/build-pecl.nix       @etu
-/pkgs/development/interpreters/php       @etu
-/pkgs/top-level/php-packages.nix         @etu
+# PHP interpreter, packages, extensions, tests and documentation
+/doc/languages-frameworks/php.section.md @NixOS/php
+/nixos/tests/php                         @NixOS/php
+/pkgs/build-support/build-pecl.nix       @NixOS/php
+/pkgs/development/interpreters/php       @NixOS/php
+/pkgs/top-level/php-packages.nix         @NixOS/php
+
+# Podman, CRI-O modules and related
+/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 bf47ba3c25b..606d5637cc5 100644
--- a/.github/stale.yml
+++ b/.github/stale.yml
@@ -1,32 +1,41 @@
+# Configuration for probot-stale - https://github.com/probot/stale
 # Number of days of inactivity before an issue becomes stale
 daysUntilStale: 180
 # Number of days of inactivity before a stale issue is closed
 daysUntilClose: false
 # Issues with these labels will never be considered stale
 exemptLabels:
-  - 1.severity: security
+  - "1.severity: security"
 # Label to use when marking an issue as stale
-staleLabel: 2.status: 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).
 
-  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).
+    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).
 
 # Comment to post when closing a stale issue. Set to `false` to disable
 closeComment: false
diff --git a/.github/workflows/pending-clear.yml b/.github/workflows/pending-clear.yml
new file mode 100644
index 00000000000..d888a414506
--- /dev/null
+++ b/.github/workflows/pending-clear.yml
@@ -0,0 +1,30 @@
+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 }}
+        GSU_VERSION: "0.5.0"
+        GSU_URL: "https://github.com/cloudposse/github-status-updater/releases/download"
+      run: |
+        curl -sSf -O -L -C - \
+        "$GSU_URL/$GSU_VERSION/github-status-updater_linux_amd64" && \
+        chmod +x github-status-updater_linux_amd64 && \
+        ./github-status-updater_linux_amd64 \
+          -action update_state \
+          -token "$GITHUB_TOKEN" \
+          -owner NixOS \
+          -repo nixpkgs \
+          -state success \
+          -context "Wait for ofborg" \
+          -description " " \
+          -url " " \
+          -ref "${{ 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..ee1d537295c
--- /dev/null
+++ b/.github/workflows/pending-set.yml
@@ -0,0 +1,29 @@
+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 }}
+        GSU_VERSION: "0.5.0"
+        GSU_URL: "https://github.com/cloudposse/github-status-updater/releases/download"
+      run: |
+        curl -sSf -O -L -C - \
+        "$GSU_URL/$GSU_VERSION/github-status-updater_linux_amd64" && \
+        chmod +x github-status-updater_linux_amd64 && \
+        ./github-status-updater_linux_amd64 \
+          -action update_state \
+          -token "$GITHUB_TOKEN" \
+          -owner NixOS \
+          -repo nixpkgs \
+          -state failure \
+          -context "Wait for ofborg" \
+          -description "This failed status will be cleared when ofborg finishes eval." \
+          -url " " \
+          -ref "${{ 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/README.md b/README.md
index da38b227b56..d1187b37280 100644
--- a/README.md
+++ b/README.md
@@ -34,6 +34,7 @@ the main ones:
 
 * [Nix](https://github.com/NixOS/nix) - the purely functional package manager
 * [NixOps](https://github.com/NixOS/nixops) - the tool to remotely deploy NixOS machines
+* [nixos-hardware](https://github.com/NixOS/nixos-hardware) - NixOS profiles to optimize settings for different hardware
 * [Nix RFCs](https://github.com/NixOS/rfcs) - the formal process for making substantial changes to the community
 * [NixOS homepage](https://github.com/NixOS/nixos-homepage) - the [NixOS.org](https://nixos.org) website
 * [hydra](https://github.com/NixOS/hydra) - our continuous integration system
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/images/dockertools.xml b/doc/builders/images/dockertools.xml
index e7f37fdaaf0..126698d0a9e 100644
--- a/doc/builders/images/dockertools.xml
+++ b/doc/builders/images/dockertools.xml
@@ -166,7 +166,7 @@ hello        latest   de2bf4786de6   About a minute ago   25.2MB
   <title>buildLayeredImage</title>
 
   <para>
-   Create a Docker image with many of the store paths being on their own layer to improve sharing between images.
+   Create a Docker image with many of the store paths being on their own layer to improve sharing between images. The image is realized into the Nix store as a gzipped tarball. Depending on the intended usage, many users might prefer to use <function>streamLayeredImage</function> instead, which this function uses internally.
   </para>
 
   <variablelist>
@@ -327,6 +327,27 @@ pkgs.dockerTools.buildLayeredImage {
   </section>
  </section>
 
+ <section xml:id="ssec-pkgs-dockerTools-streamLayeredImage">
+  <title>streamLayeredImage</title>
+
+  <para>
+   Builds a script which, when run, will stream an uncompressed tarball of a Docker image to stdout. The arguments to this function are as for <function>buildLayeredImage</function>. This method of constructing an image does not realize the image into the Nix store, so it saves on IO and disk/cache space, particularly with large images.
+  </para>
+
+  <para>
+    The image produced by running the output script can be piped directly into <command>docker load</command>, to load it into the local docker daemon:
+    <screen><![CDATA[
+$(nix-build) | docker load
+    ]]></screen>
+  </para>
+  <para>
+    Alternatively, the image be piped via <command>gzip</command> into <command>skopeo</command>, e.g. to copy it into a registry:
+    <screen><![CDATA[
+$(nix-build) | gzip --fast | skopeo copy docker-archive:/dev/stdin docker://some_docker_registry/myimage:tag
+    ]]></screen>
+  </para>
+ </section>
+
  <section xml:id="ssec-pkgs-dockerTools-fetchFromRegistry">
   <title>pullImage</title>
 
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/agda.section.md b/doc/languages-frameworks/agda.section.md
new file mode 100644
index 00000000000..9ce046d05b6
--- /dev/null
+++ b/doc/languages-frameworks/agda.section.md
@@ -0,0 +1,106 @@
+---
+title: Agda
+author: Alex Rice (alexarice)
+date: 2020-01-06
+---
+# Agda
+
+## How to use Agda
+
+Agda can be installed from `agda`:
+```
+$ nix-env -iA agda
+```
+
+To use agda with libraries, the `agda.withPackages` function can be used. This function either takes:
++ A list of packages,
++ or a function which returns a list of packages when given the `agdaPackages` attribute set,
++ or an attribute set containing a list of packages and a GHC derivation for compilation (see below).
+
+For example, suppose we wanted a version of agda which has access to the standard library. This can be obtained with the expressions:
+
+```
+agda.withPackages [ agdaPackages.standard-library ]
+```
+
+or
+
+```
+agda.withPackages (p: [ p.standard-library ])
+```
+
+or can be called as in the [Compiling Agda](#compiling-agda) section.
+
+If you want to use a library in your home directory (for instance if it is a development version) then typecheck it manually (using `agda.withPackages` if necessary) and then override the `src` attribute of the package to point to your local repository.
+
+Agda will not by default use these libraries. To tell agda to use the library we have some options:
+- Call `agda` with the library flag:
+```
+$ agda -l standard-library -i . MyFile.agda
+```
+- Write a `my-library.agda-lib` file for the project you are working on which may look like:
+```
+name: my-library
+include: .
+depend: standard-library
+```
+- Create the file `~/.agda/defaults` and add any libraries you want to use by default.
+
+More information can be found in the [official Agda documentation on library management](https://agda.readthedocs.io/en/v2.6.1/tools/package-system.html).
+
+## Compiling Agda
+Agda modules can be compiled with the `--compile` flag. A version of `ghc` with `ieee` is made available to the Agda program via the `--with-compiler` flag.
+This can be overridden by a different version of `ghc` as follows:
+
+```
+agda.withPackages {
+  pkgs = [ ... ];
+  ghc = haskell.compiler.ghcHEAD;
+}
+```
+
+## Writing Agda packages
+To write a nix derivation for an agda library, first check that the library has a `*.agda-lib` file.
+
+A derivation can then be written using `agdaPackages.mkDerivation`. This has similar arguments to `stdenv.mkDerivation` with the following additions:
++ `everythingFile` can be used to specify the location of the `Everything.agda` file, defaulting to `./Everything.agda`. If this file does not exist then either it should be patched in or the `buildPhase` should be overridden (see below).
++ `libraryName` should be the name that appears in the `*.agda-lib` file, defaulting to `pname`.
++ `libraryFile` should be the file name of the `*.agda-lib` file, defaulting to `${libraryName}.agda-lib`.
+
+### Building Agda packages
+The default build phase for `agdaPackages.mkDerivation` simply runs `agda` on the `Everything.agda` file.
+If something else is needed to build the package (e.g. `make`) then the `buildPhase` should be overridden.
+Additionally, a `preBuild` or `configurePhase` can be used if there are steps that need to be done prior to checking the `Everything.agda` file.
+`agda` and the Agda libraries contained in `buildInputs` are made available during the build phase.
+
+### Installing Agda packages
+The default install phase copies agda source files, agda interface files (`*.agdai`) and `*.agda-lib` files to the output directory.
+This can be overridden.
+
+By default, agda sources are files ending on  `.agda`, or literate agda files ending on `.lagda`, `.lagda.tex`, `.lagda.org`, `.lagda.md`, `.lagda.rst`. The list of recognised agda source extensions can be extended by setting the `extraExtensions` config variable.
+
+To add an agda package to `nixpkgs`, the derivation should be written to `pkgs/development/libraries/agda/${library-name}/` and an entry should be added to `pkgs/top-level/agda-packages.nix`. Here it is called in a scope with access to all other agda libraries, so the top line of the `default.nix` can look like:
+```
+{ mkDerivation, standard-library, fetchFromGitHub }:
+```
+and `mkDerivation` should be called instead of `agdaPackages.mkDerivation`. Here is an example skeleton derivation for iowa-stdlib:
+
+```
+mkDerivation {
+  version = "1.5.0";
+  pname = "iowa-stdlib";
+
+  src = ...
+
+  libraryFile = "";
+  libraryName = "IAL-1.3";
+
+  buildPhase = ''
+    patchShebangs find-deps.sh
+    make
+  '';
+}
+```
+This library has a file called `.agda-lib`, and so we give an empty string to `libraryFile` as nothing precedes `.agda-lib` in the filename. This file contains `name: IAL-1.3`, and so we let `libraryName =  "IAL-1.3"`. This library does not use an `Everything.agda` file and instead has a Makefile, so there is no need to set `everythingFile` and we set a custom `buildPhase`.
+
+When writing an agda package it is essential to make sure that no `.agda-lib` file gets added to the store as a single file (for example by using `writeText`). This causes agda to think that the nix store is a agda library and it will attempt to write to it whenever it typechecks something. See [https://github.com/agda/agda/issues/4613](https://github.com/agda/agda/issues/4613).
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 70c135555ea..26414f23c7d 100644
--- a/doc/languages-frameworks/go.xml
+++ b/doc/languages-frameworks/go.xml
@@ -36,10 +36,14 @@ pet = buildGoModule rec {
     sha256 = "0m2fzpqxk7hrbxsgqplkg7h2p7gv6s1miymv3gvw0cz039skag0s";
   };
 
-  modSha256 = "1879j77k96684wi554rkjxydrj8g3hpp0kvxz03sd8dmwr3lh83j"; <co xml:id='ex-buildGoModule-1' />
+  vendorSha256 = "1879j77k96684wi554rkjxydrj8g3hpp0kvxz03sd8dmwr3lh83j"; <co xml:id='ex-buildGoModule-1' />
 
   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";
@@ -56,7 +60,7 @@ pet = buildGoModule rec {
    <calloutlist>
     <callout arearefs='ex-buildGoModule-1'>
      <para>
-      <varname>modSha256</varname> is the hash of the output of the intermediate fetcher derivation.
+      <varname>vendorSha256</varname> is the hash of the output of the intermediate fetcher derivation.
      </para>
     </callout>
     <callout arearefs='ex-buildGoModule-2'>
@@ -64,16 +68,26 @@ 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>
 
   <para>
-    <varname>modSha256</varname> can also take <varname>null</varname> as an input.
+    <varname>vendorSha256</varname> can also take <varname>null</varname> as an input.
 
-    When `null` is used as a value, the derivation won't be a
-    fixed-output derivation but disable the build sandbox instead. This can be useful outside
-    of nixpkgs where re-generating the modSha256 on each mod.sum changes is cumbersome,
-    but will fail to build by Hydra, as builds with a disabled sandbox are discouraged.
+    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,
+    run `go mod vendor` in your source repo and set 'vendorSha256 = null;'
   </para>
  </section>
 
diff --git a/doc/languages-frameworks/index.xml b/doc/languages-frameworks/index.xml
index a6f56d791c5..728a38c264a 100644
--- a/doc/languages-frameworks/index.xml
+++ b/doc/languages-frameworks/index.xml
@@ -5,6 +5,7 @@
  <para>
   The <link linkend="chap-stdenv">standard build environment</link> makes it easy to build typical Autotools-based packages with very little code. Any other kind of package can be accomodated by overriding the appropriate phases of <literal>stdenv</literal>. However, there are specialised functions in Nixpkgs to easily build packages for other programming languages, such as Perl or Haskell. These are described in this chapter.
  </para>
+ <xi:include href="agda.section.xml" />
  <xi:include href="android.section.xml" />
  <xi:include href="beam.xml" />
  <xi:include href="bower.xml" />
@@ -17,7 +18,7 @@
  <xi:include href="idris.section.xml" />
  <xi:include href="ios.section.xml" />
  <xi:include href="java.xml" />
- <xi:include href="lua.xml" />
+ <xi:include href="lua.section.xml" />
  <xi:include href="node.section.xml" />
  <xi:include href="ocaml.xml" />
  <xi:include href="perl.xml" />
diff --git a/doc/languages-frameworks/lua.section.md b/doc/languages-frameworks/lua.section.md
new file mode 100644
index 00000000000..a0e9917b8ec
--- /dev/null
+++ b/doc/languages-frameworks/lua.section.md
@@ -0,0 +1,252 @@
+---
+title: Lua
+author: Matthieu Coudron
+date: 2019-02-05
+---
+
+# User's Guide to Lua Infrastructure
+
+## Using Lua
+
+### Overview of Lua
+
+Several versions of the Lua interpreter are available: luajit, lua 5.1, 5.2, 5.3.
+The attribute `lua` refers to the default interpreter, it is also possible to refer to specific versions, e.g. `lua5_2` refers to Lua 5.2.
+
+Lua libraries are in separate sets, with one set per interpreter version.
+
+The interpreters have several common attributes. One of these attributes is
+`pkgs`, which is a package set of Lua libraries for this specific
+interpreter. E.g., the `busted` package corresponding to the default interpreter
+is `lua.pkgs.busted`, and the lua 5.2 version is `lua5_2.pkgs.busted`.
+The main package set contains aliases to these package sets, e.g.
+`luaPackages` refers to `lua5_1.pkgs` and `lua52Packages` to
+`lua5_2.pkgs`.
+
+### Installing Lua and packages
+
+#### Lua environment defined in separate `.nix` file
+
+Create a file, e.g. `build.nix`, with the following expression
+```nix
+with import <nixpkgs> {};
+
+lua5_2.withPackages (ps: with ps; [ busted luafilesystem ])
+```
+and install it in your profile with
+```shell
+nix-env -if build.nix
+```
+Now you can use the Lua interpreter, as well as the extra packages (`busted`,
+`luafilesystem`) that you added to the environment.
+
+#### Lua environment defined in `~/.config/nixpkgs/config.nix`
+
+If you prefer to, you could also add the environment as a package override to the Nixpkgs set, e.g.
+using `config.nix`,
+```nix
+{ # ...
+
+  packageOverrides = pkgs: with pkgs; {
+    myLuaEnv = lua5_2.withPackages (ps: with ps; [ busted luafilesystem ]);
+  };
+}
+```
+and install it in your profile with
+```shell
+nix-env -iA nixpkgs.myLuaEnv
+```
+The environment is is installed by referring to the attribute, and considering
+the `nixpkgs` channel was used.
+
+#### Lua environment defined in `/etc/nixos/configuration.nix`
+
+For the sake of completeness, here's another example how to install the environment system-wide.
+
+```nix
+{ # ...
+
+  environment.systemPackages = with pkgs; [
+    (lua.withPackages(ps: with ps; [ busted luafilesystem ]))
+  ];
+}
+```
+
+### How to override a Lua package using overlays?
+
+Use the following overlay template:
+
+```nix
+final: prev:
+{
+
+  lua = prev.lua.override {
+    packageOverrides = luaself: luaprev: {
+
+      luarocks-nix = luaprev.luarocks-nix.overrideAttrs(oa: {
+        pname = "luarocks-nix";
+        src = /home/my_luarocks/repository;
+      });
+  };
+
+  luaPackages = lua.pkgs;
+}
+```
+
+### Temporary Lua environment with `nix-shell`
+
+
+There are two methods for loading a shell with Lua packages. The first and recommended method
+is to create an environment with `lua.buildEnv` or `lua.withPackages` and load that. E.g.
+```sh
+$ nix-shell -p 'lua.withPackages(ps: with ps; [ busted luafilesystem ])'
+```
+opens a shell from which you can launch the interpreter
+```sh
+[nix-shell:~] lua
+```
+The other method, which is not recommended, does not create an environment and requires you to list the packages directly,
+
+```sh
+$ nix-shell -p lua.pkgs.busted lua.pkgs.luafilesystem
+```
+Again, it is possible to launch the interpreter from the shell.
+The Lua interpreter has the attribute `pkgs` which contains all Lua libraries for that specific interpreter.
+
+
+## Developing with Lua
+
+Now that you know how to get a working Lua environment with Nix, it is time
+to go forward and start actually developing with Lua. There are two ways to
+package lua software, either it is on luarocks and most of it can be taken care
+of by the luarocks2nix converter or the packaging has to be done manually.
+Let's present the luarocks way first and the manual one in a second time.
+
+### Packaging a library on luarocks
+
+[Luarocks.org](www.luarocks.org) is the main repository of lua packages.
+The site proposes two types of packages, the rockspec and the src.rock
+(equivalent of a [rockspec](https://github.com/luarocks/luarocks/wiki/Rockspec-format) but with the source).
+These packages can have different build types such as `cmake`, `builtin` etc .
+
+Luarocks-based packages are generated in pkgs/development/lua-modules/generated-packages.nix from
+the whitelist maintainers/scripts/luarocks-packages.csv and updated by running maintainers/scripts/update-luarocks-packages.
+
+[luarocks2nix](https://github.com/nix-community/luarocks) is a tool capable of generating nix derivations from both rockspec and src.rock (and favors the src.rock).
+The automation only goes so far though and some packages need to be customized.
+These customizations go in `pkgs/development/lua-modules/overrides.nix`.
+For instance if the rockspec defines `external_dependencies`, these need to be manually added in in its rockspec file then it won't work.
+
+You can try converting luarocks packages to nix packages with the command `nix-shell -p luarocks-nix` and then `luarocks nix PKG_NAME`.
+Nix rely on luarocks to install lua packages, basically it runs:
+`luarocks make --deps-mode=none --tree $out`
+
+#### Packaging a library manually
+
+You can develop your package as you usually would, just don't forget to wrap it
+within a `toLuaModule` call, for instance
+```nix
+mynewlib = toLuaModule ( stdenv.mkDerivation { ... });
+```
+
+There is also the `buildLuaPackage` function that can be used when lua modules
+are not packaged for luarocks. You can see a few examples at `pkgs/top-level/lua-packages.nix`.
+
+## Lua Reference
+
+### Lua interpreters
+
+Versions 5.1, 5.2 and 5.3 of the lua interpreter are available as
+respectively `lua5_1`, `lua5_2` and `lua5_3`. Luajit is available too.
+The Nix expressions for the interpreters can be found in `pkgs/development/interpreters/lua-5`.
+
+
+#### Attributes on lua interpreters packages
+
+Each interpreter has the following attributes:
+
+- `interpreter`. Alias for `${pkgs.lua}/bin/lua`.
+- `buildEnv`. Function to build lua interpreter environments with extra packages bundled together. See section *lua.buildEnv function* for usage and documentation.
+- `withPackages`. Simpler interface to `buildEnv`.
+- `pkgs`. Set of Lua packages for that specific interpreter. The package set can be modified by overriding the interpreter and passing `packageOverrides`.
+
+
+#### `buildLuarocksPackage` function
+
+The `buildLuarocksPackage` function is implemented in `pkgs/development/interpreters/lua-5/build-lua-package.nix`
+The following is an example:
+```nix
+luaposix = buildLuarocksPackage {
+  pname = "luaposix";
+  version = "34.0.4-1";
+
+  src = fetchurl {
+    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/luaposix-34.0.4-1.src.rock";
+    sha256 = "0yrm5cn2iyd0zjd4liyj27srphvy0gjrjx572swar6zqr4dwjqp2";
+  };
+  disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
+  propagatedBuildInputs = [ bit32 lua std_normalize ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/luaposix/luaposix/";
+    description = "Lua bindings for POSIX";
+    maintainers = with maintainers; [ vyp lblasc ];
+    license.fullName = "MIT/X11";
+  };
+};
+```
+
+The `buildLuarocksPackage` delegates most tasks to luarocks:
+
+* it adds `luarocks` as an unpacker for `src.rock` files (zip files really).
+* configurePhase` writes a temporary luarocks configuration file which location
+is exported via the environment variable `LUAROCKS_CONFIG`.
+* the `buildPhase` does nothing.
+* `installPhase` calls `luarocks make --deps-mode=none --tree $out` to build and
+install the package
+* In the `postFixup` phase, the `wrapLuaPrograms` bash function is called to
+  wrap all programs in the `$out/bin/*` directory to include `$PATH`
+  environment variable and add dependent libraries to script's `LUA_PATH` and
+  `LUA_CPATH`.
+
+By default `meta.platforms` is set to the same value as the interpreter unless overridden otherwise.
+
+#### `buildLuaApplication` function
+
+The `buildLuaApplication` function is practically the same as `buildLuaPackage`.
+The difference is that `buildLuaPackage` by default prefixes the names of the packages with the version of the interpreter.
+Because with an application we're not interested in multiple version the prefix is dropped.
+
+#### lua.withPackages function
+
+The `lua.withPackages` takes a function as an argument that is passed the set of lua packages and returns the list of packages to be included in the environment.
+Using the `withPackages` function, the previous example for the luafilesystem environment can be written like this:
+```nix
+with import <nixpkgs> {};
+
+lua.withPackages (ps: [ps.luafilesystem])
+```
+
+`withPackages` passes the correct package set for the specific interpreter version as an argument to the function. In the above example, `ps` equals `luaPackages`.
+But you can also easily switch to using `lua5_2`:
+```nix
+with import <nixpkgs> {};
+
+lua5_2.withPackages (ps: [ps.lua])
+```
+
+Now, `ps` is set to `lua52Packages`, matching the version of the interpreter.
+
+
+### Possible Todos
+
+* export/use version specific variables such as `LUA_PATH_5_2`/`LUAROCKS_CONFIG_5_2`
+* let luarocks check for dependencies via exporting the different rocktrees in temporary config
+
+### Lua Contributing guidelines
+
+Following rules should be respected:
+
+* Make sure libraries build for all Lua interpreters.
+* Commit names of Lua libraries should reflect that they are Lua libraries, so write for example `luaPackages.luafilesystem: 1.11 -> 1.12`.
+
diff --git a/doc/languages-frameworks/lua.xml b/doc/languages-frameworks/lua.xml
deleted file mode 100644
index bcca6b73753..00000000000
--- a/doc/languages-frameworks/lua.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<section xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="sec-language-lua">
- <title>Lua</title>
-
- <para>
-  Lua packages are built by the <varname>buildLuaPackage</varname> function. This function is implemented in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/lua-modules/generic/default.nix"> <filename>pkgs/development/lua-modules/generic/default.nix</filename></link> and works similarly to <varname>buildPerlPackage</varname>. (See <xref linkend="sec-language-perl"/> for details.)
- </para>
-
- <para>
-  Lua packages are defined in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/lua-packages.nix"><filename>pkgs/top-level/lua-packages.nix</filename></link>. Most of them are simple. For example:
-<programlisting>
-fileSystem = buildLuaPackage {
-  name = "filesystem-1.6.2";
-  src = fetchurl {
-    url = "https://github.com/keplerproject/luafilesystem/archive/v1_6_2.tar.gz";
-    sha256 = "1n8qdwa20ypbrny99vhkmx8q04zd2jjycdb5196xdhgvqzk10abz";
-  };
-  meta = {
-    homepage = "https://github.com/keplerproject/luafilesystem";
-    hydraPlatforms = stdenv.lib.platforms.linux;
-    maintainers = with maintainers; [ flosse ];
-  };
-};
-</programlisting>
- </para>
-
- <para>
-  Though, more complicated package should be placed in a seperate file in <link
-  xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/lua-modules"><filename>pkgs/development/lua-modules</filename></link>.
- </para>
-
- <para>
-  Lua packages accept additional parameter <varname>disabled</varname>, which defines the condition of disabling package from luaPackages. For example, if package has <varname>disabled</varname> assigned to <literal>lua.luaversion != "5.1"</literal>, it will not be included in any luaPackages except lua51Packages, making it only be built for lua 5.1.
- </para>
-</section>
diff --git a/doc/languages-frameworks/node.section.md b/doc/languages-frameworks/node.section.md
index 4dc95fc1dd9..c1f4294711a 100644
--- a/doc/languages-frameworks/node.section.md
+++ b/doc/languages-frameworks/node.section.md
@@ -12,10 +12,9 @@ When it is desired to use NPM libraries in a development project, use the
 `node2nix` generator directly on the `package.json` configuration file of the
 project.
 
-The package set also provides support for multiple Node.js versions. The policy
-is that a new package should be added to the collection for the latest stable LTS
-release (which is currently 10.x), unless there is an explicit reason to support
-a different release.
+The package set provides support for the official stable Node.js versions.
+The latest stable LTS release in `nodePackages`, as well as the latest stable
+Current release in `nodePackages_latest`.
 
 If your package uses native addons, you need to examine what kind of native
 build system it uses. Here are some examples:
@@ -26,7 +25,7 @@ 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-v10.nix`:
+requires `node-gyp-build`, so we override its expression in `default.nix`:
 
 ```nix
 dat = nodePackages.dat.override (oldAttrs: {
@@ -36,14 +35,14 @@ dat = nodePackages.dat.override (oldAttrs: {
 
 To add a package from NPM to nixpkgs:
 
- 1. Modify `pkgs/development/node-packages/node-packages-v10.json` to add, update
-    or remove package entries. (Or `pkgs/development/node-packages/node-packages-v8.json`
-    for packages depending on Node.js 8.x)
+ 1. Modify `pkgs/development/node-packages/node-packages.json` to add, update
+    or remove package entries to have it included in `nodePackages` and
+    `nodePackages_latest`.
  2. Run the script: `(cd pkgs/development/node-packages && ./generate.sh)`.
  3. Build your new package to test your changes:
     `cd /path/to/nixpkgs && nix-build -A nodePackages.<new-or-updated-package>`.
-    To build against a specific Node.js version (e.g. 10.x):
-    `nix-build -A nodePackages_10_x.<new-or-updated-package>`
+    To build against the latest stable Current Node.js version (e.g. 14.x):
+    `nix-build -A nodePackages_latest.<new-or-updated-package>`
  4. Add and commit all modified and generated files.
 
 For more information about the generation process, consult the
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 00d5d0ff04c..f189ce31448 100644
--- a/doc/languages-frameworks/python.section.md
+++ b/doc/languages-frameworks/python.section.md
@@ -36,121 +36,191 @@ The Nix and NixOS manuals explain how packages are generally installed. In the
 case of Python and Nix, it is important to make a distinction between whether the
 package is considered an application or a library.
 
-Applications on Nix are typically installed into your user
-profile imperatively using `nix-env -i`, and on NixOS declaratively by adding the
-package name to `environment.systemPackages` in `/etc/nixos/configuration.nix`.
-Dependencies such as libraries are automatically installed and should not be
-installed explicitly.
-
-The same goes for Python applications and libraries. Python applications can be
-installed in your profile. But Python libraries you would like to use for
-development cannot be installed, at least not individually, because they won't
-be able to find each other resulting in import errors. Instead, it is possible
-to create an environment with `python.buildEnv` or `python.withPackages` where
-the interpreter and other executables are able to find each other and all of the
-modules.
-
-In the following examples we create an environment with Python 3.8, `numpy` and
-`toolz`. As you may imagine, there is one limitation here, and that's that
-you can install only one environment at a time. You will notice the complaints
-about collisions when you try to install a second environment.
-
-##### Environment defined in separate `.nix` file
-
-Create a file, e.g. `build.nix`, with the following expression
-```nix
-with import <nixpkgs> {};
+Applications on Nix are typically installed into your user profile imperatively
+using `nix-env -i`, and on NixOS declaratively by adding the package name to
+`environment.systemPackages` in `/etc/nixos/configuration.nix`. Dependencies
+such as libraries are automatically installed and should not be installed
+explicitly.
 
-python38.withPackages (ps: with ps; [ numpy toolz ])
-```
-and install it in your profile with
-```shell
-nix-env -if build.nix
-```
-Now you can use the Python interpreter, as well as the extra packages (`numpy`,
-`toolz`) that you added to the environment.
-
-##### Environment defined in `~/.config/nixpkgs/config.nix`
+The same goes for Python applications. Python applications can be installed in
+your profile, and will be wrapped to find their exact library dependencies,
+without impacting other applications or polluting your user environment.
 
-If you prefer you could also add the environment as a package override to the
-Nixpkgs set, e.g. using `config.nix`,
+But Python libraries you would like to use for development cannot be installed,
+at least not individually, because they won't be able to find each other
+resulting in import errors. Instead, it is possible to create an environment
+with `python.buildEnv` or `python.withPackages` where the interpreter and other
+executables are wrapped to be able to find each other and all of the modules.
 
-```nix
-{ # ...
+In the following examples we will start by creating a simple, ad-hoc environment
+with a nix-shell that has `numpy` and `toolz` in Python 3.8; then we will create
+a re-usable environment in a single-file Python script; then we will create a
+full Python environment for development with this same environment.
 
-  packageOverrides = pkgs: with pkgs; {
-    myEnv = python38.withPackages (ps: with ps; [ numpy toolz ]);
-  };
-}
-```
-and install it in your profile with
+Philosphically, this should be familiar to users who are used to a `venv` style
+of development: individual projects create their own Python environments without
+impacting the global environment or each other.
 
-```shell
-nix-env -iA nixpkgs.myEnv
-```
+#### Ad-hoc temporary Python environment with `nix-shell`
 
-The environment is is installed by referring to the attribute, and considering
-the `nixpkgs` channel was used.
+The simplest way to start playing with the way nix wraps and sets up Python
+environments is with `nix-shell` at the cmdline. These environments create a
+temporary shell session with a Python and a *precise* list of packages (plus
+their runtime dependencies), with no other Python packages in the Python
+interpreter's scope.
 
-##### Environment defined in `/etc/nixos/configuration.nix`
+To create a Python 3.8 session with `numpy` and `toolz` available, run:
 
-For the sake of completeness, here's another example how to install the
-environment system-wide.
+```sh
+$ nix-shell -p 'python38.withPackages(ps: with ps; [ numpy toolz ])'
+```
 
-```nix
-{ # ...
+By default `nix-shell` will start a `bash` session with this interpreter in our
+`PATH`, so if we then run:
 
-  environment.systemPackages = with pkgs; [
-    (python38.withPackages(ps: with ps; [ numpy toolz ]))
-  ];
-}
+```
+[nix-shell:~/src/nixpkgs]$ python3
+Python 3.8.1 (default, Dec 18 2019, 19:06:26)
+[GCC 9.2.0] on linux
+Type "help", "copyright", "credits" or "license" for more information.
+>>> import numpy; import toolz
 ```
 
-#### Temporary Python environment with `nix-shell`
+Note that no other modules are in scope, even if they were imperatively
+installed into our user environment as a dependency of a Python application:
 
-The examples in the previous section showed how to install a Python environment
-into a profile. For development you may need to use multiple environments.
-`nix-shell` gives the possibility to temporarily load another environment, akin
-to `virtualenv`.
+```
+>>> import requests
+Traceback (most recent call last):
+  File "<stdin>", line 1, in <module>
+ModuleNotFoundError: No module named 'requests'
+```
 
-There are two methods for loading a shell with Python packages. The first and
-recommended method is to create an environment with `python.buildEnv` or
-`python.withPackages` and load that. E.g.
+We can add as many additional modules onto the `nix-shell` as we need, and we
+will still get 1 wrapped Python interpreter. We can start the interpreter
+directly like so:
 
 ```sh
-$ nix-shell -p 'python38.withPackages(ps: with ps; [ numpy toolz ])'
+$ nix-shell -p 'python38.withPackages(ps: with ps; [ numpy toolz requests ])' --run python3
+these derivations will be built:
+  /nix/store/xbdsrqrsfa1yva5s7pzsra8k08gxlbz1-python3-3.8.1-env.drv
+building '/nix/store/xbdsrqrsfa1yva5s7pzsra8k08gxlbz1-python3-3.8.1-env.drv'...
+created 277 symlinks in user environment
+Python 3.8.1 (default, Dec 18 2019, 19:06:26)
+[GCC 9.2.0] on linux
+Type "help", "copyright", "credits" or "license" for more information.
+>>> import requests
+>>>
+```
+
+Notice that this time it built a new Python environment, which now includes
+`requests`. Building an environment just creates wrapper scripts that expose the
+selected dependencies to the interpreter while re-using the actual modules. This
+means if any other env has installed `requests` or `numpy` in a different
+context, we don't need to recompile them -- we just recompile the wrapper script
+that sets up an interpreter pointing to them. This matters much more for "big"
+modules like `pytorch` or `tensorflow`.
+
+Module names usually match their names on [pypi.org](https://pypi.org/), but
+you can use the [Nixpkgs search website](https://nixos.org/nixos/packages.html)
+to find them as well (along with non-python packages).
+
+At this point we can create throwaway experimental Python environments with
+arbitrary dependencies. This is a good way to get a feel for how the Python
+interpreter and dependencies work in Nix and NixOS, but to do some actual
+development, we'll want to make it a bit more persistent.
+
+##### Running Python scripts and using `nix-shell` as shebang
+
+Sometimes, we have a script whose header looks like this:
+
+```python
+#!/usr/bin/env python3
+import numpy as np
+a = np.array([1,2])
+b = np.array([3,4])
+print(f"The dot product of {a} and {b} is: {np.dot(a, b)}")
 ```
 
-opens a shell from which you can launch the interpreter
+Executing this script requires a `python3` that has `numpy`. Using what we learned
+in the previous section, we could startup a shell and just run it like so:
 
-```sh
-[nix-shell:~] python3
+```
+nix-shell -p 'python38.withPackages(ps: with ps; [ numpy ])' --run 'python3 foo.py'
+The dot product of [1 2] and [3 4] is: 11
 ```
 
-The other method, which is not recommended, does not create an environment and
-requires you to list the packages directly,
+But if we maintain the script ourselves, and if there are more dependencies, it
+may be nice to encode those dependencies in source to make the script re-usable
+without that bit of knowledge. That can be done by using `nix-shell` as a
+[shebang](https://en.wikipedia.org/wiki/Shebang_(Unix), like so:
+
+```python
+#!/usr/bin/env nix-shell
+#!nix-shell -i python3 -p "python3.withPackages(ps: [ ps.numpy ])"
+import numpy as np
+a = np.array([1,2])
+b = np.array([3,4])
+print(f"The dot product of {a} and {b} is: {np.dot(a, b)}")
+```
+
+Then we simply execute it, without requiring any environment setup at all!
 
 ```sh
-$ nix-shell -p python38.pkgs.numpy python38.pkgs.toolz
+$ ./foo.py
+The dot product of [1 2] and [3 4] is: 11
+```
+
+If the dependencies are not available on the host where `foo.py` is executed, it
+will build or download them from a Nix binary cache prior to starting up, prior
+that it is executed on a machine with a multi-user nix installation.
+
+This provides a way to ship a self bootstrapping Python script, akin to a
+statically linked binary, where it can be run on any machine (provided nix is
+installed) without having to assume that `numpy` is installed globally on the
+system.
+
+By default it is pulling the import checkout of Nixpkgs itself from our nix
+channel, which is nice as it cache aligns with our other package builds, but we
+can make it fully reproducible by pinning the `nixpkgs` import:
+
+```python
+#!/usr/bin/env nix-shell
+#!nix-shell -i python3 -p "python3.withPackages(ps: [ ps.numpy ])"
+#!nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/d373d80b1207d52621961b16aa4a3438e4f98167.tar.gz
+import numpy as np
+a = np.array([1,2])
+b = np.array([3,4])
+print(f"The dot product of {a} and {b} is: {np.dot(a, b)}")
 ```
 
-Again, it is possible to launch the interpreter from the shell. The Python
-interpreter has the attribute `pkgs` which contains all Python libraries for
-that specific interpreter.
+This will execute with the exact same versions of Python 3.8, numpy, and system
+dependencies a year from now as it does today, because it will always use
+exactly git commit `d373d80b1207d52621961b16aa4a3438e4f98167` of Nixpkgs for all
+of the package versions.
+
+This is also a great way to ensure the script executes identically on different
+servers.
 
 ##### Load environment from `.nix` expression
-As explained in the Nix manual, `nix-shell` can also load an
-expression from a `.nix` file. Say we want to have Python 3.8, `numpy`
-and `toolz`, like before, in an environment. Consider a `shell.nix` file
-with
+
+We've now seen how to create an ad-hoc temporary shell session, and how to
+create a single script with Python dependencies, but in the course of normal
+development we're usually working in an entire package repository.
+
+As explained in the Nix manual, `nix-shell` can also load an expression from a
+`.nix` file. Say we want to have Python 3.8, `numpy` and `toolz`, like before,
+in an environment. We can add a `shell.nix` file describing our dependencies:
 
 ```nix
 with import <nixpkgs> {};
-
 (python38.withPackages (ps: [ps.numpy ps.toolz])).env
 ```
 
-Executing `nix-shell` gives you again a Nix shell from which you can run Python.
+And then at the command line, just typing `nix-shell` produces the same
+environment as before. In a normal project, we'll likely have many more
+dependencies; this can provide a way for developers to share the environments
+with each other and with CI builders.
 
 What's happening here?
 
@@ -158,9 +228,9 @@ What's happening here?
    imports the `<nixpkgs>` function, `{}` calls it and the `with` statement
    brings all attributes of `nixpkgs` in the local scope. These attributes form
    the main package set.
-2. Then we create a Python 3.8 environment with the `withPackages` function.
+2. Then we create a Python 3.8 environment with the `withPackages` function, as before.
 3. The `withPackages` function expects us to provide a function as an argument
-   that takes the set of all python packages and returns a list of packages to
+   that takes the set of all Python packages and returns a list of packages to
    include in the environment. Here, we select the packages `numpy` and `toolz`
    from the package set.
 
@@ -168,7 +238,6 @@ To combine this with `mkShell` you can:
 
 ```nix
 with import <nixpkgs> {};
-
 let
   pythonEnv = python38.withPackages (ps: [
     ps.numpy
@@ -177,50 +246,98 @@ let
 in mkShell {
   buildInputs = [
     pythonEnv
-    hello
+
+    black
+    mypy
+
+    libffi
+    openssl
   ];
 }
 ```
 
-##### Execute command with `--run`
-A convenient option with `nix-shell` is the `--run`
-option, with which you can execute a command in the `nix-shell`. We can
-e.g. directly open a Python shell
+This will create a unified environment that has not just our Python interpreter
+and its Python dependencies, but also tools like `black` or `mypy` and libraries
+like `libffi` the `openssl` in scope. This is generic and can span any number of
+tools or languages across the Nixpkgs ecosystem.
 
-```sh
-$ nix-shell -p python38Packages.numpy python38Packages.toolz --run "python3"
+##### Installing environments globally on the system
+
+Up to now, we've been creating environments scoped to an ad-hoc shell session,
+or a single script, or a single project. This is generally advisable, as it
+avoids pollution across contexts.
+
+However, sometimes we know we will often want a Python with some basic packages,
+and want this available without having to enter into a shell or build context.
+This can be useful to have things like vim/emacs editors and plugins or shell
+tools "just work" without having to set them up, or when running other software
+that expects packages to be installed globally.
+
+To create your own custom environment, create a file in `~/.config/nixpkgs/overlays/`
+that looks like this:
+
+```nix
+# ~/.config/nixpkgs/overlays/myEnv.nix
+self: super: {
+  myEnv = super.buildEnv {
+    name = "myEnv";
+    paths = [
+      # A Python 3 interpreter with some packages
+      (self.python3.withPackages (
+        ps: with ps; [
+          pyflakes
+          pytest
+          python-language-server
+        ]
+      ))
+
+      # Some other packages we'd like as part of this env
+      self.mypy
+      self.black
+      self.ripgrep
+      self.tmux
+    ];
+  };
+}
 ```
 
-or run a script
+You can then build and install this to your profile with:
 
 ```sh
-$ nix-shell -p python38Packages.numpy python38Packages.toolz --run "python3 myscript.py"
+nix-env -iA myEnv
 ```
 
-##### `nix-shell` as shebang
-In fact, for the second use case, there is a more convenient method. You can add
-a [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) to your script
-specifying which dependencies `nix-shell` needs. With the following shebang, you
-can just execute `./myscript.py`, and it will make available all dependencies
-and run the script in the `python3` shell.
+One limitation of this is that you can only have 1 Python env installed
+globally, since they conflict on the `python` to load out of your `PATH`.
 
-```py
-#! /usr/bin/env nix-shell
-#! nix-shell -i python3 -p "python3.withPackages(ps: [ps.numpy])"
+If you get a conflict or prefer to keep the setup clean, you can have `nix-env`
+atomically *uninstall* all other imperatively installed packages and replace
+your profile with just `myEnv` by using the `--replace` flag.
 
-import numpy
+##### Environment defined in `/etc/nixos/configuration.nix`
+
+For the sake of completeness, here's how to install the environment system-wide
+on NixOS.
+
+```nix
+{ # ...
 
-print(numpy.__version__)
+  environment.systemPackages = with pkgs; [
+    (python38.withPackages(ps: with ps; [ numpy toolz ]))
+  ];
+}
 ```
 
 ### Developing with Python
 
-Now that you know how to get a working Python environment with Nix, it is time
-to go forward and start actually developing with Python. We will first have a
-look at how Python packages are packaged on Nix. Then, we will look at how you
-can use development mode with your code.
+Above, we were mostly just focused on use cases and what to do to get started
+creating working Python environments in nix.
+
+Now that you know the basics to be up and running, it is time to take a step
+back and take a deeper look at at how Python packages are packaged on Nix. Then,
+we will look at how you can use development mode with your code.
 
-#### Packaging a library
+#### Python library packages in Nixpkgs
 
 With Nix all packages are built by functions. The main function in Nix for
 building Python libraries is `buildPythonPackage`. Let's see how we can build the
@@ -262,6 +379,7 @@ An expression for `toolz` can be found in the Nixpkgs repository. As explained
 in the introduction of this Python section, a derivation of `toolz` is available
 for each interpreter version, e.g. `python38.pkgs.toolz` refers to the `toolz`
 derivation corresponding to the CPython 3.8 interpreter.
+
 The above example works when you're directly working on
 `pkgs/top-level/python-packages.nix` in the Nixpkgs repository. Often though,
 you will want to test a Nix expression outside of the Nixpkgs tree.
@@ -312,7 +430,7 @@ Our example, `toolz`, does not have any dependencies on other Python packages or
 system libraries. According to the manual, `buildPythonPackage` uses the
 arguments `buildInputs` and `propagatedBuildInputs` to specify dependencies. If
 something is exclusively a build-time dependency, then the dependency should be
-included as a `buildInput`, but if it is (also) a runtime dependency, then it
+included in `buildInputs`, but if it is (also) a runtime dependency, then it
 should be added to `propagatedBuildInputs`. Test dependencies are considered
 build-time dependencies and passed to `checkInputs`.
 
@@ -420,13 +538,129 @@ 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 creates a special link to the project code.
-That way, you can run updated code without having to reinstall after each and every change you make.
-Development mode is also available. Let's see how you can use it.
+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
+creates a special link to the project code. That way, you can run updated code
+without having to reinstall after each and every change you make. Development
+mode is also available. Let's see how you can use it.
 
 In the previous Nix expression the source was fetched from an url. We can also
 refer to a local source instead using `src = ./path/to/source/tree;`
@@ -455,7 +689,6 @@ buildPythonPackage rec {
 It is important to note that due to how development mode is implemented on Nix
 it is not possible to have multiple packages simultaneously in development mode.
 
-
 ### Organising your packages
 
 So far we discussed how you can use Python on Nix, and how you can develop with
@@ -481,11 +714,11 @@ We first create a function that builds `toolz` in `~/path/to/toolz/release.nix`
 
 buildPythonPackage rec {
   pname = "toolz";
-  version = "0.7.4";
+  version = "0.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
+    sha256 = "08fdd5ef7c96480ad11c12d472de21acd32359996f69a5259299b540feba4560";
   };
 
   meta = with lib; {
@@ -497,8 +730,8 @@ buildPythonPackage rec {
 }
 ```
 
-It takes an argument `buildPythonPackage`.
-We now call this function using `callPackage` in the definition of our environment
+It takes an argument `buildPythonPackage`. We now call this function using
+`callPackage` in the definition of our environment
 
 ```nix
 with import <nixpkgs> {};
@@ -522,10 +755,10 @@ 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
-`python37`. The default interpreter, `python`, maps to `python2`. The PyPy
+`python38`. The default interpreter, `python`, maps to `python2`. The PyPy
 interpreters compatible with Python 2.7 and 3 are available as `pypy27` and
 `pypy3`, with aliases `pypy2` mapping to `pypy27` and `pypy` mapping to `pypy2`.
 The Nix expressions for the interpreters can be found in
@@ -548,7 +781,7 @@ Each interpreter has the following attributes:
 - `buildEnv`. Function to build python interpreter environments with extra packages bundled together. See section *python.buildEnv function* for usage and documentation.
 - `withPackages`. Simpler interface to `buildEnv`. See section *python.withPackages function* for usage and documentation.
 - `sitePackages`. Alias for `lib/${libPrefix}/site-packages`.
-- `executable`. Name of the interpreter executable, e.g. `python3.7`.
+- `executable`. Name of the interpreter executable, e.g. `python3.8`.
 - `pkgs`. Set of Python packages for that specific interpreter. The package set can be modified by overriding the interpreter and passing `packageOverrides`.
 
 ### Building packages and applications
@@ -571,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
@@ -643,12 +877,9 @@ following are specific to `buildPythonPackage`:
   appears more than once in dependency tree. Default is `true`.
 * `disabled` ? false: If `true`, package is not built for the particular Python
   interpreter version.
-* `dontWrapPythonPrograms ? false`: Skip wrapping of python programs.
+* `dontWrapPythonPrograms ? false`: Skip wrapping of Python programs.
 * `permitUserSite ? false`: Skip setting the `PYTHONNOUSERSITE` environment
   variable in wrapped programs.
-* `installFlags ? []`: A list of strings. Arguments to be passed to `pip
-  install`. To pass options to `python setup.py install`, use
-  `--install-option`. E.g., `installFlags=["--install-option='--cpp_implementation'"]`.
 * `format ? "setuptools"`: Format of the source. Valid options are
   `"setuptools"`, `"pyproject"`, `"flit"`, `"wheel"`, and `"other"`.
   `"setuptools"` is for when the source has a `setup.py` and `setuptools` is
@@ -664,6 +895,9 @@ following are specific to `buildPythonPackage`:
 * `namePrefix`: Prepends text to `${name}` parameter. In case of libraries, this
   defaults to `"python3.8-"` for Python 3.8, etc., and in case of applications
   to `""`.
+* `pipInstallFlags ? []`: A list of strings. Arguments to be passed to `pip
+  install`. To pass options to `python setup.py install`, use
+  `--install-option`. E.g., `pipInstallFlags=["--install-option='--cpp_implementation'"]`.
 * `pythonPath ? []`: List of packages to be added into `$PYTHONPATH`. Packages
   in `pythonPath` are not propagated (contrary to `propagatedBuildInputs`).
 * `preShellHook`: Hook to execute commands before `shellHook`.
@@ -730,7 +964,7 @@ Another difference is that `buildPythonPackage` by default prefixes the names of
 the packages with the version of the interpreter. Because this is irrelevant for
 applications, the prefix is omitted.
 
-When packaging a python application with `buildPythonApplication`, it should be
+When packaging a Python application with `buildPythonApplication`, it should be
 called with `callPackage` and passed `python` or `pythonPackages` (possibly
 specifying an interpreter version), like this:
 
@@ -761,7 +995,7 @@ luigi = callPackage ../applications/networking/cluster/luigi { };
 ```
 
 Since the package is an application, a consumer doesn't need to care about
-python versions or modules, which is why they don't go in `pythonPackages`.
+Python versions or modules, which is why they don't go in `pythonPackages`.
 
 #### `toPythonApplication` function
 
@@ -875,7 +1109,7 @@ thus be also written like this:
 ```nix
 with import <nixpkgs> {};
 
-(python36.withPackages (ps: [ps.numpy ps.requests])).env
+(python38.withPackages (ps: [ps.numpy ps.requests])).env
 ```
 
 In contrast to `python.buildEnv`, `python.withPackages` does not support the
@@ -898,14 +1132,15 @@ 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.
 - `setuptoolsBuildHook` to build a wheel using `setuptools`.
 - `setuptoolsCheckHook` to run tests with `python setup.py test`.
 - `venvShellHook` to source a Python 3 `venv` at the `venvDir` location. A
-  `venv` is created if it does not yet exist.
+  `venv` is created if it does not yet exist. `postVenvCreation` can be used to
+  to run commands only after venv is first created.
 - `wheelUnpackHook` to move a wheel to the correct folder so it can be installed
   with the `pipInstallHook`.
 
@@ -932,7 +1167,7 @@ pythonPackages.buildPythonPackage {
 Running `nix-shell` with no arguments should give you the environment in which
 the package would be built with `nix-build`.
 
-Shortcut to setup environments with C headers/libraries and python packages:
+Shortcut to setup environments with C headers/libraries and Python packages:
 
 ```shell
 nix-shell -p pythonPackages.pyramid zlib libjpeg git
@@ -963,7 +1198,6 @@ have timestamp 1. The `buildPythonPackage` function sets `DETERMINISTIC_BUILD=1`
 and [PYTHONHASHSEED=0](https://docs.python.org/3.8/using/cmdline.html#envvar-PYTHONHASHSEED).
 Both are also exported in `nix-shell`.
 
-
 ### Automatic tests
 
 It is recommended to test packages as part of the build process.
@@ -976,7 +1210,7 @@ example of such a situation is when `py.test` is used.
 #### Common issues
 
 * Non-working tests can often be deselected. By default `buildPythonPackage`
-  runs `python setup.py test`. Most python modules follows the standard test
+  runs `python setup.py test`. Most Python modules follows the standard test
   protocol where the pytest runner can be used instead. `py.test` supports a
   `-k` parameter to ignore test methods or classes:
 
@@ -1052,7 +1286,7 @@ let
   newpkgs = import pkgs.path { overlays = [ (self: super: {
     python38 = let
       packageOverrides = python-self: python-super: {
-        numpy = python-super.numpy_1_18.3;
+        numpy = python-super.numpy_1_18;
       };
     in super.python38.override {inherit packageOverrides;};
   } ) ]; };
@@ -1127,14 +1361,14 @@ If you want to create a Python environment for development, then the recommended
 method is to use `nix-shell`, either with or without the `python.buildEnv`
 function.
 
-### How to consume python modules using pip in a virtual environment like I am used to on other Operating Systems?
+### How to consume Python modules using pip in a virtual environment like I am used to on other Operating Systems?
 
 While this approach is not very idiomatic from Nix perspective, it can still be
 useful when dealing with pre-existing projects or in situations where it's not
 feasible or desired to write derivations for all required dependencies.
 
 This is an example of a `default.nix` for a `nix-shell`, which allows to consume
-a virtual environment created by `venv`, and install python modules through
+a virtual environment created by `venv`, and install Python modules through
 `pip` the traditional way.
 
 Create this `default.nix` file, together with a `requirements.txt` and simply
@@ -1149,7 +1383,7 @@ in pkgs.mkShell rec {
   name = "impurePythonEnv";
   venvDir = "./.venv";
   buildInputs = [
-    # A python interpreter including the 'venv' module is required to bootstrap
+    # A Python interpreter including the 'venv' module is required to bootstrap
     # the environment.
     pythonPackages.python
 
@@ -1163,7 +1397,7 @@ in pkgs.mkShell rec {
     pythonPackages.requests
 
     # In this particular example, in order to compile any binary extensions they may
-    # require, the python modules listed in the hypothetical requirements.txt need
+    # require, the Python modules listed in the hypothetical requirements.txt need
     # the following packages to be installed locally:
     taglib
     openssl
@@ -1174,16 +1408,23 @@ in pkgs.mkShell rec {
     zlib
   ];
 
+  # Run this command, only after creating the virtual environment
+  postVenvCreation = ''
+    unset SOURCE_DATE_EPOCH
+    pip install -r requirements.txt
+  '';
+
   # Now we can execute any commands within the virtual environment.
   # This is optional and can be left out to run pip manually.
   postShellHook = ''
-    pip install -r requirements.txt
+    # allow pip to install wheels
+    unset SOURCE_DATE_EPOCH
   '';
 
 }
 ```
 
-In case the supplied venvShellHook is insufficient, or when python 2 support is
+In case the supplied venvShellHook is insufficient, or when Python 2 support is
 needed, you can define your own shell hook and adapt to your needs like in the
 following example:
 
@@ -1229,7 +1470,7 @@ in pkgs.mkShell rec {
 ```
 
 Note that the `pip install` is an imperative action. So every time `nix-shell`
-is executed it will attempt to download the python modules listed in
+is executed it will attempt to download the Python modules listed in
 requirements.txt. However these will be cached locally within the `virtualenv`
 folder and not downloaded again.
 
@@ -1290,9 +1531,8 @@ self: super: {
 
 ### How to use Intel's MKL with numpy and scipy?
 
-MKL can be configured using an overlay. See the section “[Using
-overlays to configure
-alternatives](#sec-overlays-alternatives-blas-lapack)â€.
+MKL can be configured using an overlay. See the section "[Using overlays to
+configure alternatives](#sec-overlays-alternatives-blas-lapack)".
 
 ### What inputs do `setup_requires`, `install_requires` and `tests_require` map to?
 
diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md
index cec3373cbee..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;
   };
 }
 ```
@@ -75,6 +74,90 @@ pkgs.rustPlatform.buildRustPackage {
 }
 ```
 
+### Running package tests
+
+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,
+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
+`release` mode. For these situations, the mode for `checkPhase` can be changed like
+so:
+
+```nix
+rustPlatform.buildRustPackage {
+  /* ... */
+  checkType = "debug";
+}
+```
+
+Please note that the code will be compiled twice here: once in `release` mode
+for the `buildPhase`, and again in `debug` mode for the `checkPhase`.
+
+#### Tests relying on the structure of the `target/` directory
+
+Some tests may rely on the structure of the `target/` directory. Those tests
+are likely to fail because we use `cargo --target` during the build. This means that
+the artifacts
+[are stored in `target/<architecture>/release/`](https://doc.rust-lang.org/cargo/guide/build-cache.html),
+rather than in `target/release/`.
+
+This can only be worked around by patching the affected tests accordingly.
+
+#### Disabling package-tests
+
+In some instances, it may be necessary to disable testing altogether (with `doCheck = false;`):
+
+* If no tests exist -- the `checkPhase` should be explicitly disabled to skip
+  unnecessary build steps to speed up the build.
+* If tests are highly impure (e.g. due to network usage).
+
+There will obviously be some corner-cases not listed above where it's sensible to disable tests.
+The above are just guidelines, and exceptions may be granted on a case-by-case basis.
+
+However, please check if it's possible to disable a problematic subset of the
+test suite and leave a comment explaining your reasoning.
+
+### Building a package in `debug` mode
+
+By default, `buildRustPackage` will use `release` mode for builds. If a package
+should be built in `debug` mode, it can be configured like so:
+
+```nix
+rustPlatform.buildRustPackage {
+  /* ... */
+  buildType = "debug";
+}
+```
+
+In this scenario, the `checkPhase` will be ran in `debug` mode as well.
+
+### Custom `build`/`install`-procedures
+
+Some packages may use custom scripts for building/installing, e.g. with a `Makefile`.
+In these cases, it's recommended to override the `buildPhase`/`installPhase`/`checkPhase`.
+
+Otherwise, some steps may fail because of the modified directory structure of `target/`.
+
+### Building a crate with an absent or out-of-date Cargo.lock file
+
+`buildRustPackage` needs a `Cargo.lock` file to get all dependencies in the
+source code in a reproducible way. If it is missing or out-of-date one can use
+the `cargoPatches` attribute to update or add it.
+
+```
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  (...)
+  cargoPatches = [
+    # a patch file to add/update Cargo.lock in the source code
+    ./add-Cargo.lock.patch
+  ];
+}
+```
+
 ## Compiling Rust crates using Nix instead of Cargo
 
 ### Simple operation
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/stdenv.xml b/doc/stdenv/stdenv.xml
index 65a343d7edd..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>
@@ -2001,7 +2001,7 @@ addEnvHooks "$hostOffset" myBashFunction
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="setup-hook-autopatchelfhook">
      <term>
       autoPatchelfHook
      </term>
@@ -2010,15 +2010,16 @@ addEnvHooks "$hostOffset" myBashFunction
        This is a special setup hook which helps in packaging proprietary software in that it automatically tries to find missing shared library dependencies of ELF files based on the given <varname>buildInputs</varname> and <varname>nativeBuildInputs</varname>.
       </para>
       <para>
-       You can also specify a <envar>runtimeDependencies</envar> environment variable which lists dependencies that are unconditionally added to all executables.
-      </para>
-      <para>
+       You can also specify a <varname>runtimeDependencies</varname> variable which lists dependencies to be unconditionally added to <glossterm>rpath</glossterm> of all executables.
        This is useful for programs that use <citerefentry>
        <refentrytitle>dlopen</refentrytitle>
        <manvolnum>3</manvolnum> </citerefentry> to load libraries at runtime.
       </para>
       <para>
-       In certain situations you may want to run the main command (<command>autoPatchelf</command>) of the setup hook on a file or a set of directories instead of unconditionally patching all outputs. This can be done by setting the <envar>dontAutoPatchelf</envar> environment variable to a non-empty value.
+       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.
@@ -2085,6 +2086,16 @@ postInstall = ''
     </varlistentry>
     <varlistentry>
      <term>
+      validatePkgConfig
+     </term>
+     <listitem>
+      <para>
+       The <literal>validatePkgConfig</literal> hook validates all pkg-config (<filename>.pc</filename>) files in a package. This helps catching some common errors in pkg-config files, such as undefined variables.
+      </para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>
       cmake
      </term>
      <listitem>
diff --git a/doc/using/configuration.xml b/doc/using/configuration.xml
index f4d6e911006..b670f78f28b 100644
--- a/doc/using/configuration.xml
+++ b/doc/using/configuration.xml
@@ -85,19 +85,19 @@
   <title>Installing packages on unsupported systems</title>
 
   <para>
-   There are also two ways to try compiling a package which has been marked as unsuported for the given system.
+   There are also two ways to try compiling a package which has been marked as unsupported for the given system.
   </para>
 
   <itemizedlist>
    <listitem>
     <para>
-     For allowing the build of a broken package once, you can use an environment variable for a single invocation of the nix tools:
+     For allowing the build of an unsupported package once, you can use an environment variable for a single invocation of the nix tools:
 <programlisting>$ export NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1</programlisting>
     </para>
    </listitem>
    <listitem>
     <para>
-     For permanently allowing broken packages to be built, you may add <literal>allowUnsupportedSystem = true;</literal> to your user's configuration file, like this:
+     For permanently allowing unsupported packages to be built, you may add <literal>allowUnsupportedSystem = true;</literal> to your user's configuration file, like this:
 <programlisting>
 {
   allowUnsupportedSystem = true;
@@ -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>
@@ -387,7 +387,7 @@ fi
 </screen>
 
    <para>
-    Now just run <literal>source $HOME/.profile</literal> and you can starting loading man pages from your environent.
+    Now just run <literal>source $HOME/.profile</literal> and you can starting loading man pages from your environment.
    </para>
   </section>
 
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 52fd2f82a37..e7c04417ac8 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,8 +1,6 @@
 # Experimental flake interface to Nixpkgs.
 # See https://github.com/NixOS/rfcs/pull/49 for details.
 {
-  edition = 201909;
-
   description = "A collection of packages for the Nix package manager";
 
   outputs = { self }:
@@ -14,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/attrsets.nix b/lib/attrsets.nix
index 7d84c25de77..d91d7a0cd47 100644
--- a/lib/attrsets.nix
+++ b/lib/attrsets.nix
@@ -253,7 +253,7 @@ rec {
   /* Like `mapAttrsRecursive', but it takes an additional predicate
      function that tells it whether to recursive into an attribute
      set.  If it returns false, `mapAttrsRecursiveCond' does not
-     recurse, but does apply the map function.  It is returns true, it
+     recurse, but does apply the map function.  If it returns true, it
      does recurse, and does not apply the map function.
 
      Type:
@@ -469,6 +469,7 @@ rec {
   getBin = getOutput "bin";
   getLib = getOutput "lib";
   getDev = getOutput "dev";
+  getMan = getOutput "man";
 
   /* Pick the outputs of packages to place in buildInputs */
   chooseDevOutputs = drvs: builtins.map getDev drvs;
diff --git a/lib/default.nix b/lib/default.nix
index e7f59a67abb..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
@@ -77,7 +77,7 @@ let
       genAttrs isDerivation toDerivation optionalAttrs
       zipAttrsWithNames zipAttrsWith zipAttrs recursiveUpdateUntil
       recursiveUpdate matchAttrs overrideExisting getOutput getBin
-      getLib getDev chooseDevOutputs zipWithNames zip
+      getLib getDev getMan chooseDevOutputs zipWithNames zip
       recurseIntoAttrs dontRecurseIntoAttrs;
     inherit (lists) singleton forEach foldr fold foldl foldl' imap0 imap1
       concatMap flatten remove findSingle findFirst any all count
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/kernel.nix b/lib/kernel.nix
index 8045a228d05..ffcbc268b76 100644
--- a/lib/kernel.nix
+++ b/lib/kernel.nix
@@ -8,10 +8,10 @@ with lib;
   option = x:
       x // { optional = true; };
 
-  yes      = { tristate    = "y"; };
-  no       = { tristate    = "n"; };
-  module   = { tristate    = "m"; };
-  freeform = x: { freeform = x; };
+  yes      = { tristate    = "y"; optional = false; };
+  no       = { tristate    = "n"; optional = false; };
+  module   = { tristate    = "m"; optional = false; };
+  freeform = x: { freeform = x; optional = false; };
 
   /*
     Common patterns/legacy used in common-config/hardened/config.nix
diff --git a/lib/licenses.nix b/lib/licenses.nix
index 4c07797b16c..5cdb43ded6d 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";
@@ -95,6 +100,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = ''BSD 2-clause "Simplified" License'';
   };
 
+  bsd2Patent = spdx {
+    spdxId = "BSD-2-Clause-Patent";
+    fullName = ''BSD-2-Clause Plus Patent License'';
+  };
+
   bsd3 = spdx {
     spdxId = "BSD-3-Clause";
     fullName = ''BSD 3-clause "New" or "Revised" License'';
@@ -105,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";
@@ -276,7 +291,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "European Union Public License 1.2";
   };
 
-  fdl12 = spdx {
+  fdl11Only = spdx {
+    spdxId = "GFDL-1.1-only";
+    fullName = "GNU Free Documentation License v1.1 only";
+  };
+
+  fdl12Only = spdx {
     spdxId = "GFDL-1.2-only";
     fullName = "GNU Free Documentation License v1.2 only";
   };
@@ -286,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";
   };
@@ -317,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";
   };
@@ -327,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";
   };
@@ -352,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";
   };
@@ -427,7 +447,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";
   };
@@ -437,7 +457,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";
   };
@@ -447,7 +467,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";
   };
@@ -457,6 +477,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "GNU Lesser General Public License v3.0 or later";
   };
 
+  lgpllr = spdx {
+    spdxId = "LGPLLR";
+    fullName = "Lesser General Public License For Linguistic Resources";
+  };
+
   libpng = spdx {
     spdxId = "Libpng";
     fullName = "libpng License";
@@ -477,6 +502,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     url = "https://opensource.franz.com/preamble.html";
   };
 
+  llvm-exception = spdx {
+    spdxId = "LLVM-exception";
+    fullName = "LLVM Exception"; # LLVM exceptions to the Apache 2.0 License
+  };
+
   lppl12 = spdx {
     spdxId = "LPPL-1.2";
     fullName = "LaTeX Project Public License v1.2";
@@ -540,6 +570,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "Non-Profit Open Software License 3.0";
   };
 
+  obsidian = {
+    fullName = "Obsidian End User Agreement";
+    url = "https://obsidian.md/eula";
+    free = false;
+  };
+
   ocamlpro_nc = {
     fullName = "OCamlPro Non Commercial license version 1";
     url = "https://alt-ergo.ocamlpro.com/http/alt-ergo-2.2.0/OCamlPro-Non-Commercial-License.pdf";
@@ -756,4 +792,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/minver.nix b/lib/minver.nix
index fee6b65a244..86391bcd69e 100644
--- a/lib/minver.nix
+++ b/lib/minver.nix
@@ -1,2 +1,2 @@
 # Expose the minimum required version for evaluating Nixpkgs
-"2.0"
+"2.2"
diff --git a/lib/modules.nix b/lib/modules.nix
index c18fec66c70..2ec34699809 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.
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..0baa942355c 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" ] ||
diff --git a/lib/systems/default.nix b/lib/systems/default.nix
index 210674cc639..c929781dd8f 100644
--- a/lib/systems/default.nix
+++ b/lib/systems/default.nix
@@ -32,6 +32,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 +66,7 @@ rec {
           freebsd = "FreeBSD";
           openbsd = "OpenBSD";
           wasi = "Wasi";
+          redox = "Redox";
           genode = "Genode";
         }.${final.parsed.kernel.name} or null;
 
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 19b3790ecbe..ca562d2e456 100644
--- a/lib/systems/examples.nix
+++ b/lib/systems/examples.nix
@@ -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..1845b6ae339 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -486,9 +486,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 72d20a5a702..fe06e428ff0 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,8 +58,8 @@
       fingerprint = "F466 A548 AD3F C1F1 8C88  4576 8702 7528 B006 D66D";
     }];
   };
-  "1000101" = {
-    email = "jan.hrnko@satoshilabs.com";
+  _1000101 = {
+    email = "b1000101@pm.me";
     github = "1000101";
     githubId = 791309;
     name = "Jan Hrnko";
@@ -139,6 +146,12 @@
     githubId = 1517066;
     name = "Aiken Cairncross";
   };
+  aciceri = {
+    name = "Andrea Ciceri";
+    email = "andrea.ciceri@autistici.org";
+    github = "aciceri";
+    githubId = 2318843;
+  };
   acowley = {
     email = "acowley@gmail.com";
     github = "acowley";
@@ -193,12 +206,6 @@
     githubId = 315003;
     name = "Adam Saponara";
   };
-  aepsil0n = {
-    email = "eduard.bopp@aepsil0n.de";
-    github = "aepsil0n";
-    githubId = 3098430;
-    name = "Eduard Bopp";
-  };
   aerialx = {
     email = "aaron+nixos@aaronlindsay.com";
     github = "AerialX";
@@ -247,11 +254,11 @@
     githubId = 732652;
     name = "Andreas Herrmann";
   };
-  ahmedtd = {
-    email = "ahmed.taahir@gmail.com";
-    github = "ahmedtd";
-    githubId = 1017202;
-    name = "Taahir Ahmed";
+  ahrzb = {
+    email = "ahrzb5@gmail.com";
+    github = "ahrzb";
+    githubId = 5220438;
+    name = "AmirHossein Roozbahani";
   };
   ahuzik = {
     email = "ales.guzik@gmail.com";
@@ -289,6 +296,12 @@
     githubId = 273837;
     name = "Mateusz Czapliński";
   };
+  akamaus = {
+    email = "dmitryvyal@gmail.com";
+    github = "akamaus";
+    githubId = 58955;
+    name = "Dmitry Vyal";
+  };
   akaWolf = {
     email = "akawolf0@gmail.com";
     github = "akaWolf";
@@ -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";
@@ -325,6 +344,12 @@
     githubId = 2387841;
     name = "Alexander Bakker";
   };
+  alexbiehl = {
+    email = "alexbiehl@gmail.com";
+    github = "alexbiehl";
+    githubId = 1876617;
+    name = "Alex Biehl";
+  };
   alexchapman = {
     email = "alex@farfromthere.net";
     github = "AJChapman";
@@ -447,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";
@@ -537,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";
@@ -633,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";
@@ -661,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";
@@ -803,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";
@@ -1025,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";
@@ -1043,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";
@@ -1085,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";
@@ -1133,6 +1206,12 @@
     githubId = 7716744;
     name = "Berno Strik";
   };
+  breakds = {
+    email = "breakds@gmail.com";
+    github = "breakds";
+    githubId = 1111035;
+    name = "Break Yang";
+  };
   brettlyons = {
     email = "blyons@fastmail.com";
     github = "brettlyons";
@@ -1169,12 +1248,24 @@
     githubId = 24417923;
     name = "Renaud";
   };
+  c00w = {
+    email = "nix@daedrum.net";
+    github = "c00w";
+    githubId = 486199;
+    name = "Colin";
+  };
   c0deaddict = {
     email = "josvanbakel@protonmail.com";
     github = "c0deaddict";
     githubId = 510553;
     name = "Jos van Bakel";
   };
+  caadar = {
+    email = "v88m@posteo.net";
+    github = "caadar";
+    githubId = 15320726;
+    name = "Car Cdr";
+  };
   cab404 = {
     email = "cab404@mailbox.org";
     github = "cab404";
@@ -1280,6 +1371,12 @@
     githubId = 64804;
     name = "Dennis Gosnell";
   };
+  ccellado = {
+    email = "annplague@gmail.com";
+    github = "ccellado";
+    githubId = 44584960;
+    name = "Denis Khalmatov";
+  };
   ceedubs = {
     email = "ceedubs@gmail.com";
     github = "ceedubs";
@@ -1358,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";
@@ -1580,6 +1693,12 @@
     githubId = 32609395;
     name = "B YI";
   };
+  conradmearns = {
+    email = "conradmearns+github@pm.me";
+    github = "ConradMearns";
+    githubId = 5510514;
+    name = "Conrad Mearns";
+  };
   couchemar = {
     email = "couchemar@yandex.ru";
     github = "couchemar";
@@ -1592,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";
@@ -1610,6 +1739,22 @@
     githubId = 12202789;
     name = "CrazedProgrammer";
   };
+  cript0nauta = {
+    email = "shareman1204@gmail.com";
+    github = "cript0nauta";
+    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";
@@ -1640,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";
@@ -1748,10 +1903,22 @@
     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";
   };
+  david-sawatzke = {
+    email = "d-nix@sawatzke.dev";
+    github = "david-sawatzke";
+    githubId = 11035569;
+    name = "David Sawatzke";
+  };
   david50407 = {
     email = "me@davy.tw";
     github = "david50407";
@@ -1804,6 +1971,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";
@@ -1960,12 +2133,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";
@@ -2038,6 +2205,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";
@@ -2176,6 +2353,12 @@
     githubId = 50854;
     name = "edef";
   };
+  edibopp = {
+    email = "eduard.bopp@aepsil0n.de";
+    github = "edibopp";
+    githubId = 3098430;
+    name = "Eduard Bopp";
+  };
   emantor = {
     email = "rouven+nixos@czerwinskis.de";
     github = "emantor";
@@ -2266,6 +2449,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";
@@ -2290,6 +2479,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";
@@ -2442,6 +2637,12 @@
     githubId = 7432848;
     name = "Daniel Albert";
   };
+  eskytthe = {
+    email = "eskytthe@gmail.com";
+    github = "eskytthe";
+    githubId = 2544204;
+    name = "Erik Skytthe";
+  };
   Esteth = {
     email = "adam.copp@gmail.com";
     name = "Adam Copp";
@@ -2528,6 +2729,22 @@
     githubId = 2817965;
     name = "f--t";
   };
+  f4814n = {
+    email = "me@f4814n.de";
+    github = "f4814";
+    githubId = 11909469;
+    name = "Fabian Geiselhart";
+  };
+  fabianhauser = {
+    email = "fabian.nixos@fh2.ch";
+    github = "fabianhauser";
+    githubId = 368799;
+    name = "Fabian Hauser";
+    keys = [{
+      longkeyid = "rsa4096/0x8A52A140BEBF7D2C";
+      fingerprint = "50B7 11F4 3DFD 2018 DCE6  E8D0 8A52 A140 BEBF 7D2C";
+    }];
+  };
   fadenb = {
     email = "tristan.helmich+nixos@gmail.com";
     github = "fadenb";
@@ -2580,6 +2797,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";
@@ -2802,6 +3025,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";
@@ -2838,12 +3067,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";
@@ -2898,6 +3121,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";
@@ -2911,10 +3144,10 @@
     name = "Robin Gloster";
   };
   gnidorah = {
-    email = "gnidorah@yandex.com";
+    email = "gnidorah@users.noreply.github.com";
     github = "gnidorah";
     githubId = 12064730;
-    name = "Alex Ivanov";
+    name = "gnidorah";
   };
   gnxlxnxx = {
     email = "gnxlxnxx@web.de";
@@ -2922,6 +3155,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";
@@ -3010,6 +3249,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";
@@ -3033,6 +3278,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";
@@ -3106,6 +3355,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";
@@ -3478,12 +3733,24 @@
     }];
     name = "Jiri Daněk";
   };
+  jdbaldry = {
+    email = "jack.baldry@grafana.com";
+    github = "jdbaldry";
+    githubId = 4599384;
+    name = "Jack Baldry";
+  };
   jdehaas = {
     email = "qqlq@nullptr.club";
     github = "jeroendehaas";
     githubId = 117874;
     name = "Jeroen de Haas";
   };
+  jduan = {
+    name = "Jingjing Duan";
+    email = "duanjingjing@gmail.com";
+    github = "jduan";
+    githubId = 452450;
+  };
   jefdaj = {
     email = "jefdaj@gmail.com";
     github = "jefdaj";
@@ -3502,6 +3769,12 @@
     githubId = 1608697;
     name = "Jens Binkert";
   };
+  jeremyschlatter = {
+    email = "github@jeremyschlatter.com";
+    github = "jeremyschlatter";
+    githubId = 5741620;
+    name = "Jeremy Schlatter";
+  };
   jerith666 = {
     email = "github@matt.mchenryfamily.org";
     github = "jerith666";
@@ -3586,12 +3859,30 @@
     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";
+    githubId = 9866621;
+    name = "Jack";
+  };
   jlesquembre = {
     email = "jl@lafuente.me";
     github = "jlesquembre";
     githubId = 1058504;
     name = "José Luis Lafuente";
   };
+  jloyet = {
+    email = "ml@fatbsd.com";
+    github = "fatpat";
+    githubId = 822436;
+    name = "Jérôme Loyet";
+  };
   jluttine = {
     email = "jaakko.luttinen@iki.fi";
     github = "jluttine";
@@ -3622,12 +3913,24 @@
     githubId = 41977;
     name = "Joachim Fasting";
   };
+  joachimschmidt557 = {
+    email = "joachim.schmidt557@outlook.com";
+    github = "joachimschmidt557";
+    githubId = 28556218;
+    name = "Joachim Schmidt";
+  };
   joamaki = {
     email = "joamaki@gmail.com";
     github = "joamaki";
     githubId = 1102396;
     name = "Jussi Maki";
   };
+  jobojeha = {
+    email = "jobojeha@jeppener.de";
+    github = "jobojeha";
+    githubId = 60272884;
+    name = "Jonathan Jeppener-Haltenhoff";
+  };
   joelburget = {
     email = "joelburget@gmail.com";
     github = "joelburget";
@@ -3692,6 +3995,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";
@@ -3797,6 +4106,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";
@@ -3831,6 +4146,12 @@
     githubId = 11947756;
     name = "Julien Dehos";
   };
+  julm = {
+    email = "julm+nix@sourcephile.fr";
+    github = "ju1m";
+    githubId = 21160136;
+    name = "Julien Moutinho";
+  };
   jumper149 = {
     email = "felixspringer149@gmail.com";
     github = "jumper149";
@@ -3843,6 +4164,12 @@
     githubId = 2396926;
     name = "Justin Woo";
   };
+  jwatt = {
+    email = "jwatt@broken.watch";
+    github = "jjwatt";
+    githubId = 2397327;
+    name = "Jesse Wattenbarger";
+  };
   jwiegley = {
     email = "johnw@newartisans.com";
     github = "jwiegley";
@@ -3893,6 +4220,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";
@@ -3921,6 +4254,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";
@@ -3991,6 +4330,12 @@
     githubId = 59667;
     name = "Ahmed Kamal";
   };
+  kimat = {
+    email = "mail@kimat.org";
+    github = "kimat";
+    githubId = 3081769;
+    name = "Kimat Boven";
+  };
   kimburgess = {
     email = "kim@acaprojects.com";
     github = "kimburgess";
@@ -4041,6 +4386,16 @@
     github = "klntsky";
     githubId = 18447310;
   };
+  kloenk = {
+    email = "me@kloenk.de";
+    name = "Finn Behrens";
+    github = "kloenk";
+    githubId = 12898828;
+    keys = [{
+      longkeyid = "ed25519/0xB92445CFC9546F9D";
+      fingerprint = "6881 5A95 D715 D429 659B  48A4 B924 45CF C954 6F9D";
+    }];
+  };
   kmcopper = {
     email = "kmcopper@danwin1210.me";
     name = "Kyle Copperfield";
@@ -4108,6 +4463,12 @@
     githubId = 524268;
     name = "Koral";
   };
+  koslambrou = {
+    email = "koslambrou@gmail.com";
+    github = "koslambrou";
+    githubId = 2037002;
+    name = "Konstantinos";
+  };
   kovirobi = {
     email = "kovirobi@gmail.com";
     github = "kovirobi";
@@ -4162,6 +4523,12 @@
     githubId = 10544;
     name = "Giuluo Eulisse";
   };
+  kthielen = {
+    email = "kthielen@gmail.com";
+    github = "kthielen";
+    githubId = 1409287;
+    name = "Kalani Thielen";
+  };
   ktor = {
     email = "kruszewsky@gmail.com";
     github = "ktor";
@@ -4353,6 +4720,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";
@@ -4493,6 +4866,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";
@@ -4545,6 +4924,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";
@@ -4591,6 +4976,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";
@@ -4603,6 +4994,16 @@
     githubId = 26020062;
     name = "lumi";
   };
+  lunik1 = {
+    email = "ch.nixpkgs@themaw.xyz";
+    github = "lunik1";
+    githubId = 13547699;
+    name = "Corin Hoad";
+    keys = [{
+      longkeyid = "rsa2048/0x6A37DF9483188492";
+      fingerprint = "BA3A 5886 AE6D 526E 20B4  57D6 6A37 DF94 8318 8492";
+    }];
+  };
   luz = {
     email = "luz666@daum.net";
     github = "Luz";
@@ -4615,6 +5016,12 @@
     githubId = 2057309;
     name = "Sergey Sofeychuk";
   };
+  lynty = {
+    email = "ltdong93+nix@gmail.com";
+    github = "lynty";
+    githubId = 39707188;
+    name = "Lynn Dong";
+  };
   lyt = {
     email = "wheatdoge@gmail.com";
     name = "Tim Liou";
@@ -4689,6 +5096,12 @@
     githubId = 3507;
     name = "Michael Fellinger";
   };
+  maralorn = {
+    email = "malte.brandy@maralorn.de";
+    github = "maralorn";
+    githubId = 1651325;
+    name = "Malte Brandy";
+  };
   marcweber = {
     email = "marco-oweber@gmx.de";
     github = "marcweber";
@@ -4823,6 +5236,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";
@@ -4865,6 +5284,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";
@@ -4877,6 +5302,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";
@@ -4894,6 +5325,10 @@
     github = "mdlayher";
     githubId = 1926905;
     name = "Matt Layher";
+    keys = [{
+      longkeyid = "rsa2048/0x77BFE531397EDE94";
+      fingerprint = "D709 03C8 0BE9 ACDC 14F0  3BFB 77BF E531 397E DE94";
+    }];
   };
   meditans = {
     email = "meditans@gmail.com";
@@ -4947,6 +5382,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";
@@ -4959,6 +5400,12 @@
     githubId = 223323;
     name = "Miguel de la Cruz";
   };
+  mgdm = {
+    email = "michael@mgdm.net";
+    github = "mgdm";
+    githubId = 71893;
+    name = "Michael Maclean";
+  };
   mgregoire = {
     email = "gregoire@martinache.net";
     github = "M-Gregoire";
@@ -5086,6 +5533,12 @@
       fingerprint = "3196 83D3 9A1B 4DE1 3DC2  51FD FEA8 88C9 F5D6 4F62";
     }];
   };
+  mir06 = {
+    email = "armin.leuprecht@uni-graz.at";
+    github = "mir06";
+    githubId = 8479244;
+    name = "Armin Leuprecht";
+  };
   mirdhyn = {
     email = "mirdhyn@gmail.com";
     github = "mirdhyn";
@@ -5406,6 +5859,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";
@@ -5540,6 +5999,18 @@
     githubId = 4368690;
     name = "Ratko Mladic";
   };
+  nilp0inter = {
+    email = "robertomartinezp@gmail.com";
+    github = "nilp0inter";
+    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";
@@ -5796,6 +6267,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";
@@ -5868,6 +6349,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";
@@ -5908,6 +6395,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";
@@ -6042,6 +6535,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";
@@ -6136,6 +6635,12 @@
       fingerprint = "240B 57DE 4271 2480 7CE3  EAC8 4F74 D536 1C4C A31E";
     }];
   };
+  priegger = {
+    email = "philipp@riegger.name";
+    github = "priegger";
+    githubId = 228931;
+    name = "Philipp Riegger";
+  };
   prikhi = {
     email = "pavan.rikhi@gmail.com";
     github = "prikhi";
@@ -6186,6 +6691,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";
@@ -6244,10 +6755,6 @@
     githubId = 23097564;
     name = "Nora Widdecke";
   };
-  pxc = {
-    email = "patrick.callahan@latitudeengineering.com";
-    name = "Patrick Callahan";
-  };
   pyrolagus = {
     email = "pyrolagus@gmail.com";
     github = "PyroLagus";
@@ -6278,6 +6785,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";
@@ -6294,6 +6807,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";
@@ -6522,6 +7041,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";
@@ -6556,6 +7081,12 @@
     githubId = 353885;
     name = "Rob Vermaas";
   };
+  robaca = {
+    email = "carsten@r0hrbach.de";
+    github = "robaca";
+    githubId = 580474;
+    name = "Carsten Rohrbach";
+  };
   robberer = {
     email = "robberer@freakmail.de";
     github = "robberer";
@@ -6628,6 +7159,12 @@
     githubId = 1942810;
     name = "Christian Ulrich";
   };
+  rpearce = {
+    email = "me@robertwpearce.com";
+    github = "rpearce";
+    githubId = 592876;
+    name = "Robert W. Pearce";
+  };
   rprospero = {
     email = "rprospero+nix@gmail.com";
     github = "rprospero";
@@ -6688,6 +7225,12 @@
     githubId = 889991;
     name = "Ryan Artecona";
   };
+  ryanorendorff = {
+    email = "12442942+ryanorendorff@users.noreply.github.com";
+    github = "ryanorendorff";
+    githubId = 12442942;
+    name = "Ryan Orendorff";
+  };
   ryansydnor = {
     email = "ryan.t.sydnor@gmail.com";
     github = "ryansydnor";
@@ -6774,6 +7317,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";
@@ -6898,6 +7451,12 @@
     githubId = 2343853;
     name = "Sean Zicari";
   };
+  seb314 = {
+    email = "sebastian@seb314.com";
+    github = "seb314";
+    githubId = 19472270;
+    name = "Sebastian";
+  };
   sellout = {
     email = "greg@technomadic.org";
     github = "sellout";
@@ -6968,6 +7527,18 @@
     githubId = 1588288;
     name = "Shahrukh Khan";
   };
+  shamilton = {
+    email = "sgn.hamilton@protonmail.com";
+    github = "SCOTT-HAMILTON";
+    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";
@@ -7080,6 +7651,22 @@
     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";
+    githubId = 23038812;
+    name = "Sirio Balmelli";
+    keys = [{
+      longkeyid = "ed25519/0xF72C4A887F9A24CA";
+      fingerprint = "B234 EFD4 2B42 FE81 EE4D  7627 F72C 4A88 7F9A 24CA";
+    }];
+  };
   sivteck = {
     email = "sivaram1992@gmail.com";
     github = "sivteck";
@@ -7350,6 +7937,12 @@
     githubId = 1181362;
     name = "Stefan Junker";
   };
+  stianlagstad = {
+    email = "stianlagstad@gmail.com";
+    github = "stianlagstad";
+    githubId = 4340859;
+    name = "Stian LÃ¥gstad";
+  };
   StijnDW = {
     email = "stekke@airmail.cc";
     github = "StijnDW";
@@ -7434,6 +8027,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";
@@ -7570,6 +8169,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";
@@ -7606,6 +8211,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";
@@ -7648,6 +8259,12 @@
     githubId = 1141680;
     name = "Thane Gill";
   };
+  TheBrainScrambler = {
+    email = "esthromeris@riseup.net";
+    github = "TheBrainScrambler";
+    githubId = 34945377;
+    name = "John Smith";
+  };
   thedavidmeister = {
     email = "thedavidmeister@gmail.com";
     github = "thedavidmeister";
@@ -7666,7 +8283,7 @@
     githubId = 8547242;
     name = "Stefan Rohrbacher";
   };
-  "thelegy" = {
+  thelegy = {
     email = "mail+nixos@0jb.de";
     github = "thelegy";
     githubId = 3105057;
@@ -7772,6 +8389,12 @@
     githubId = 2845239;
     name = "Tim Put";
   };
+  timstott = {
+    email = "stott.timothy@gmail.com";
+    github = "timstott";
+    githubId = 1334474;
+    name = "Timothy Stott";
+  };
   tiramiseb = {
     email = "sebastien@maccagnoni.eu";
     github = "tiramiseb";
@@ -7860,6 +8483,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";
@@ -7872,6 +8501,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";
@@ -7930,6 +8565,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";
@@ -8101,6 +8742,16 @@
     githubId = 6508;
     name = "Vincent Demeester";
   };
+  veehaitch = {
+    name = "Vincent Haupert";
+    email = "mail@vincent-haupert.de";
+    github = "veehaitch";
+    githubId = 15069839;
+    keys = [{
+      longkeyid = "rsa4096/0x874BD6F916FAA742";
+      fingerprint = "4D23 ECDF 880D CADF 5ECA  4458 874B D6F9 16FA A742";
+    }];
+  };
   velovix = {
     email = "xaviosx@gmail.com";
     github = "velovix";
@@ -8189,6 +8840,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";
@@ -8277,6 +8936,12 @@
     githubId = 6016963;
     name = "Patrick Winter";
   };
+  wishfort36 = {
+    email = "42300264+wishfort36@users.noreply.github.com";
+    github = "wishfort36";
+    githubId = 42300264;
+    name = "wishfort36";
+  };
   wizeman = {
     email = "rcorreia@wizy.org";
     github = "wizeman";
@@ -8295,12 +8960,24 @@
     githubId = 54934;
     name = "Wout Mertens";
   };
+  wnklmnn = {
+    email = "pascal@wnklmnn.de";
+    github = "wnklmnn";
+    githubId = 9423014;
+    name = "Pascal Winkelmann";
+  };
   woffs = {
     email = "github@woffs.de";
     github = "woffs";
     githubId = 895853;
     name = "Frank Doepper";
   };
+  wohanley = {
+    email = "me@wohanley.com";
+    github = "wohanley";
+    githubId = 1322287;
+    name = "William O'Hanley";
+  };
   womfoo = {
     email = "kranium@gikos.net";
     github = "womfoo";
@@ -8503,6 +9180,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";
@@ -8567,6 +9254,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";
@@ -8705,12 +9402,24 @@
     github = "ngerstle";
     githubId = 1023752;
   };
+  shardy = {
+    email = "shardul@baral.ca";
+    github = "shardulbee";
+    githubId = 16765155;
+    name = "Shardul Baral";
+  };
   xavierzwirtz = {
     email = "me@xavierzwirtz.com";
     github = "xavierzwirtz";
     githubId = 474343;
     name = "Xavier Zwirtz";
   };
+  ymarkus = {
+    name = "Yannick Markus";
+    email = "nixpkgs@ymarkus.dev";
+    github = "ymarkus";
+    githubId = 62380378;
+  };
   ymeister = {
     name = "Yuri Meister";
     email = "47071325+ymeister@users.noreply.github.com";
@@ -8723,4 +9432,40 @@
     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;
+  };
+  yevhenshymotiuk = {
+    name = "Yevhen Shymotiuk";
+    email = "yevhenshymotiuk@gmail.com";
+    github = "yevhenshymotiuk";
+    githubId = 44244245;
+  };
 }
diff --git a/maintainers/scripts/debian-patches.sh b/maintainers/scripts/debian-patches.sh
index b4923fb537e..de6be136ca7 100755
--- a/maintainers/scripts/debian-patches.sh
+++ b/maintainers/scripts/debian-patches.sh
@@ -2,7 +2,7 @@
 
 # Download patches from debian project
 # Usage $0 debian-patches.txt debian-patches.nix
-# An example input and output files can be found in applications/graphics/xara/
+# An example input and output files can be found in tools/graphics/plotutils
 
 DEB_URL=https://sources.debian.org/data/main
 declare -a deb_patches
diff --git a/maintainers/scripts/luarocks-packages.csv b/maintainers/scripts/luarocks-packages.csv
index cb934ae3752..4ccb8483430 100644
--- a/maintainers/scripts/luarocks-packages.csv
+++ b/maintainers/scripts/luarocks-packages.csv
@@ -12,12 +12,13 @@ compat53,,,,,vcunat
 cosmo,,,,,marsam
 coxpcall,,,1.17.0-1,,
 cqueues,,,,,vcunat
-cyrussasl,,,,,vcunat
+cyrussasl,,,,,
 digestif,,,,lua5_3,
 dkjson,,,,,
 fifo,,,,,
 http,,,,,vcunat
 inspect,,,,,
+ldbus,,http://luarocks.org/dev,,,
 ldoc,,,,,
 lgi,,,,,
 linenoise,,,,,
@@ -50,9 +51,9 @@ luaepnf,,,,,
 luaevent,,,,,
 luaexpat,,,1.3.0-1,,arobyn flosse
 luaffi,,http://luarocks.org/dev,,,
-luafilesystem,,,1.7.0-2,,flosse vcunat
+luafilesystem,,,1.7.0-2,,flosse
 lualogging,,,,,
-luaossl,,,,lua5_1,vcunat
+luaossl,,,,lua5_1,
 luaposix,,,,,vyp lblasc
 luarepl,,,,,
 luasec,,,,,flosse
@@ -65,6 +66,7 @@ luazip,,,,,
 lua-yajl,,,,,pstn
 luuid,,,,,
 luv,,,,,
+lyaml,,,,,lblasc
 markdown,,,,,
 mediator_lua,,,,,
 mpack,,,,,
@@ -72,9 +74,9 @@ moonscript,,,,,arobyn
 nvim-client,,,,,
 penlight,,,,,
 rapidjson,,,,,
+readline,,,,,
 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 7c45e148e82..9568c6cbbcc 100755
--- a/maintainers/scripts/update.nix
+++ b/maintainers/scripts/update.nix
@@ -9,6 +9,16 @@
 # TODO: add assert statements
 
 let
+  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;
+
   /* Remove duplicate elements from the list based on some extracted value. O(n^2) complexity.
    */
   nubOn = f: list:
@@ -16,43 +26,44 @@ let
       []
     else
       let
-        x = pkgs.lib.head list;
-        xs = pkgs.lib.filter (p: f x != f p) (pkgs.lib.drop 1 list);
+        x = lib.head list;
+        xs = lib.filter (p: f x != f p) (lib.drop 1 list);
       in
         [x] ++ nubOn f xs;
 
-  pkgs = import ./../../default.nix (if include-overlays then { } else { overlays = []; });
-
-  packagesWith = cond: return: set:
-    nubOn (pkg: pkg.updateScript)
-      (pkgs.lib.flatten
-        (pkgs.lib.mapAttrsToList
-          (name: pkg:
-            let
-              result = builtins.tryEval (
-                if pkgs.lib.isDerivation pkg && cond name pkg
-                  then [(return name pkg)]
-                else if pkg.recurseForDerivations or false || pkg.recurseForRelease or false
-                  then packagesWith cond return pkg
-                else []
-              );
-            in
-              if result.success then result.value
-              else []
-          )
-          set
-        )
-      );
+  packagesWithPath = relativePath: cond: return: pathContent:
+    let
+      result = builtins.tryEval pathContent;
+
+      dedupResults = lst: nubOn (pkg: pkg.updateScript) (lib.concatLists lst);
+    in
+      if result.success then
+        let
+          pathContent = result.value;
+        in
+          if lib.isDerivation pathContent then
+            lib.optional (cond relativePath pathContent) (return relativePath pathContent)
+          else if lib.isAttrs pathContent then
+            # If user explicitly points to an attrSet or it is marked for recursion, we recur.
+            if relativePath == [] || pathContent.recurseForDerivations or false || pathContent.recurseForRelease or false then
+              dedupResults (lib.mapAttrsToList (name: elem: packagesWithPath (relativePath ++ [name]) cond return elem) pathContent)
+            else []
+          else if lib.isList pathContent then
+            dedupResults (lib.imap0 (i: elem: packagesWithPath (relativePath ++ [i]) cond return elem) pathContent)
+          else []
+      else [];
+
+  packagesWith = packagesWithPath [];
 
   packagesWithUpdateScriptAndMaintainer = maintainer':
     let
       maintainer =
-        if ! builtins.hasAttr maintainer' pkgs.lib.maintainers then
+        if ! builtins.hasAttr maintainer' lib.maintainers then
           builtins.throw "Maintainer with name `${maintainer'} does not exist in `maintainers/maintainer-list.nix`."
         else
-          builtins.getAttr maintainer' pkgs.lib.maintainers;
+          builtins.getAttr maintainer' lib.maintainers;
     in
-      packagesWith (name: pkg: builtins.hasAttr "updateScript" pkg &&
+      packagesWith (relativePath: pkg: builtins.hasAttr "updateScript" pkg &&
                                  (if builtins.hasAttr "maintainers" pkg.meta
                                    then (if builtins.isList pkg.meta.maintainers
                                            then builtins.elem maintainer pkg.meta.maintainers
@@ -61,23 +72,23 @@ let
                                    else false
                                  )
                    )
-                   (name: pkg: pkg)
+                   (relativePath: pkg: pkg)
                    pkgs;
 
   packagesWithUpdateScript = path:
     let
-      attrSet = pkgs.lib.attrByPath (pkgs.lib.splitString "." path) null pkgs;
+      pathContent = lib.attrByPath (lib.splitString "." path) null pkgs;
     in
-      if attrSet == null then
+      if pathContent == null then
         builtins.throw "Attribute path `${path}` does not exists."
       else
-        packagesWith (name: pkg: builtins.hasAttr "updateScript" pkg)
-                       (name: pkg: pkg)
-                       attrSet;
+        packagesWith (relativePath: pkg: builtins.hasAttr "updateScript" pkg)
+                       (relativePath: pkg: pkg)
+                       pathContent;
 
   packageByName = name:
     let
-        package = pkgs.lib.attrByPath (pkgs.lib.splitString "." name) null pkgs;
+        package = lib.attrByPath (lib.splitString "." name) null pkgs;
     in
       if package == null then
         builtins.throw "Package with an attribute name `${name}` does not exists."
@@ -125,15 +136,15 @@ let
 
   packageData = package: {
     name = package.name;
-    pname = pkgs.lib.getName package;
-    updateScript = map builtins.toString (pkgs.lib.toList package.updateScript);
+    pname = lib.getName package;
+    updateScript = map builtins.toString (lib.toList package.updateScript);
   };
 
   packagesJson = pkgs.writeText "packages.json" (builtins.toJSON (map packageData packages));
 
   optionalArgs =
-    pkgs.lib.optional (max-workers != null) "--max-workers=${max-workers}"
-    ++ pkgs.lib.optional (keep-going == "true") "--keep-going";
+    lib.optional (max-workers != null) "--max-workers=${max-workers}"
+    ++ lib.optional (keep-going == "true") "--keep-going";
 
   args = [ packagesJson ] ++ optionalArgs;
 
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index 1fed6a4d9bf..d07f602f0da 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -34,15 +34,53 @@ with lib.maintainers; {
     scope = "Maintain Freedesktop.org packages for graphical desktop.";
   };
 
+  golang = {
+    members = [
+      c00w
+      cstrahan
+      Frostman
+      kalbasit
+      mdlayher
+      mic92
+      orivej
+      rvolosatovs
+      zowoq
+    ];
+    scope = "Maintain Golang compilers.";
+  };
+
   gnome = {
     members = [
       hedning
       jtojnar
       worldofpeace
+      dasj19
     ];
     scope = "Maintain GNOME desktop environment and platform.";
   };
 
+  jitsi = {
+    members = [
+      mmilata
+      petabyteboy
+      prusnak
+      ryantm
+    ];
+    scope = "Maintain Jitsi.";
+  };
+
+  matrix = {
+    members = [
+      ma27
+      pacien
+      fadenb
+      mguentner
+      ekleog
+      ralith
+    ];
+    scope = "Maintain the ecosystem around Matrix, a decentralized messenger.";
+  };
+
   php = {
     members = [
       aanderse
diff --git a/nixos/doc/manual/administration/boot-problems.xml b/nixos/doc/manual/administration/boot-problems.xml
index de3d8ac21ae..badc374ebcf 100644
--- a/nixos/doc/manual/administration/boot-problems.xml
+++ b/nixos/doc/manual/administration/boot-problems.xml
@@ -19,9 +19,9 @@
     </term>
     <listitem>
      <para>
-      Start a root shell if something goes wrong in stage 1 of the boot process
-      (the initial ramdisk). This is disabled by default because there is no
-      authentication for the root shell.
+      Allows the user to start a root shell if something goes wrong in stage 1
+      of the boot process (the initial ramdisk). This is disabled by default
+      because there is no authentication for the root shell.
      </para>
     </listitem>
    </varlistentry>
@@ -40,6 +40,33 @@
    </varlistentry>
    <varlistentry>
     <term>
+     <literal>boot.debug1devices</literal>
+    </term>
+    <listitem>
+     <para>
+      Like <literal>boot.debug1</literal>, but runs stage1 until kernel modules are loaded and device nodes are created.
+      This may help with e.g. making the keyboard work.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <literal>boot.debug1mounts</literal>
+    </term>
+    <listitem>
+     <para>
+      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>
+      ). As a motivating example, this could be useful if you've forgotten to set
+      <option><link linkend="opt-fileSystems._name__.neededForBoot">neededForBoot</link></option>
+      on a file system.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
      <literal>boot.trace</literal>
     </term>
     <listitem>
@@ -80,6 +107,15 @@
  </para>
 
  <para>
+  Notice that for <literal>boot.shell_on_fail</literal>,
+  <literal>boot.debug1</literal>, <literal>boot.debug1devices</literal>, and
+  <literal>boot.debug1mounts</literal>, if you did <emphasis>not</emphasis>
+  select "start the new shell as pid 1", and you <literal>exit</literal> from
+  the new shell, boot will proceed normally from the point where it failed, as
+  if you'd chosen "ignore the error and continue".
+ </para>
+
+ <para>
   If no login prompts or X11 login screens appear (e.g. due to hanging
   dependencies), you can press Alt+ArrowUp. If you’re lucky, this will start
   rescue mode (described above). (Also note that since most units have a
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 e4c03de71b7..3ac02a975eb 100644
--- a/nixos/doc/manual/configuration/file-systems.xml
+++ b/nixos/doc/manual/configuration/file-systems.xml
@@ -16,6 +16,17 @@
     fsType = "ext4";
   };
 </programlisting>
+  This will create an entry in <filename>/etc/fstab</filename>, which will
+  generate a corresponding
+  <link xlink:href="https://www.freedesktop.org/software/systemd/man/systemd.mount.html">systemd.mount</link>
+  unit via
+  <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>.
+  <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>,
   it’s best to use the topology-independent device aliases in
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/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/x-windows.xml b/nixos/doc/manual/configuration/x-windows.xml
index 110712baf5f..18f0be5e7f3 100644
--- a/nixos/doc/manual/configuration/x-windows.xml
+++ b/nixos/doc/manual/configuration/x-windows.xml
@@ -90,10 +90,50 @@
   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">
+  <title>Intel Graphics drivers</title>
+  <para>
+   There are two choices for Intel Graphics drivers in X.org:
+   <literal>modesetting</literal> (included in the <package>xorg-server</package> itself)
+   and <literal>intel</literal> (provided by the package <package>xf86-video-intel</package>).
+  </para>
+  <para>
+   The default and recommended is <literal>modesetting</literal>.
+   It is a generic driver which uses the kernel
+   <link xlink:href="https://en.wikipedia.org/wiki/Mode_setting">mode setting</link>
+   (KMS) mechanism. It supports Glamor (2D graphics acceleration via OpenGL)
+   and is actively maintained but may perform worse in some cases (like in old chipsets).
+  </para>
+  <para>
+   The second driver, <literal>intel</literal>, is specific to Intel GPUs,
+   but not recommended by most distributions: it lacks several modern features
+   (for example, it doesn't support Glamor) and the package hasn't been officially
+   updated since 2015.
+  </para>
+  <para>
+   The results vary depending on the hardware, so you may have to try both drivers.
+   Use the option <xref linkend="opt-services.xserver.videoDrivers"/> to set one.
+   The recommended configuration for modern systems is:
+<programlisting>
+  <xref linkend="opt-services.xserver.videoDrivers"/> = [ "modesetting" ];
+  <xref linkend="opt-services.xserver.useGlamor"/> = true;
+</programlisting>
+   If you experience screen tearing no matter what, this configuration was
+   reported to resolve the issue:
+<programlisting>
+  <xref linkend="opt-services.xserver.videoDrivers"/> = [ "intel" ];
+  <xref linkend="opt-services.xserver.deviceSection"/> = ''
+    Option "DRI" "2"
+    Option "TearFree" "true"
+  '';
+</programlisting>
+   Note that this will likely downgrade the performance compared to
+  <literal>modesetting</literal> or <literal>intel</literal> with DRI 3 (default).
   </para>
  </simplesect>
  <simplesect xml:id="sec-x11-graphics-cards-nvidia">
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/running-nixos-tests-interactively.xml b/nixos/doc/manual/development/running-nixos-tests-interactively.xml
index 31216874c70..a11a9382764 100644
--- a/nixos/doc/manual/development/running-nixos-tests-interactively.xml
+++ b/nixos/doc/manual/development/running-nixos-tests-interactively.xml
@@ -38,7 +38,12 @@ starting VDE switch for network 1
  </para>
 
  <para>
-  The machine state is kept across VM restarts in
-  <filename>/tmp/vm-state-</filename><varname>machinename</varname>.
+   You can re-use the VM states coming from a previous run
+   by setting the <command>--keep-vm-state</command> flag.
+<screen>
+<prompt>$ </prompt>./result/bin/nixos-run-vms --keep-vm-state
+</screen>
+  The machine state is stored in the
+  <filename>$TMPDIR/vm-state-</filename><varname>machinename</varname> directory.
  </para>
 </section>
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 e5a887c18c7..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>
@@ -362,6 +362,18 @@ start_all()
    </varlistentry>
    <varlistentry>
     <term>
+     <methodname>wait_for_console_text</methodname>
+    </term>
+    <listitem>
+     <para>
+      Wait until the supplied regular expressions match a line of the serial
+      console output. This method is useful when OCR is not possibile or
+      accurate enough.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
      <methodname>wait_for_window</methodname>
     </term>
     <listitem>
@@ -373,12 +385,12 @@ start_all()
    </varlistentry>
    <varlistentry>
     <term>
-     <methodname>copy_file_from_host</methodname>
+     <methodname>copy_from_host</methodname>
     </term>
     <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/installing-from-other-distro.xml b/nixos/doc/manual/installation/installing-from-other-distro.xml
index 8ed45899fd7..45d68f8787f 100644
--- a/nixos/doc/manual/installation/installing-from-other-distro.xml
+++ b/nixos/doc/manual/installation/installing-from-other-distro.xml
@@ -89,7 +89,7 @@ nixpkgs https://nixos.org/channels/nixpkgs-unstable</screen>
     NixOS partition. They are installed by default on NixOS, but you don't have
     NixOS yet..
    </para>
-<screen><prompt>$ </prompt>nix-env -iE "_: with import &lt;nixpkgs/nixos&gt; { configuration = {}; }; with config.system.build; [ nixos-generate-config nixos-install nixos-enter manual.manpages ]"</screen>
+<screen><prompt>$ </prompt>nix-env -f '&lt;nixpkgs/nixos&gt;' --arg configuration {} -iA config.system.build.{nixos-generate-config,nixos-install,nixos-enter,manual.manpages}</screen>
   </listitem>
   <listitem>
    <note>
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 673df8f2e4c..5f216df66f8 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>
 
@@ -146,7 +146,7 @@
        partition. It uses the initially reserved 512MiB at the start of the
        disk.
 <screen language="commands"><prompt># </prompt>parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB
-<prompt># </prompt>parted /dev/sda -- set 3 boot on</screen>
+<prompt># </prompt>parted /dev/sda -- set 3 esp on</screen>
       </para>
      </listitem>
     </orderedlist>
@@ -513,7 +513,7 @@ Retype new UNIX password: ***</screen>
 <prompt># </prompt>parted /dev/sda -- mkpart primary 512MiB -8GiB
 <prompt># </prompt>parted /dev/sda -- mkpart primary linux-swap -8GiB 100%
 <prompt># </prompt>parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB
-<prompt># </prompt>parted /dev/sda -- set 3 boot on</screen>
+<prompt># </prompt>parted /dev/sda -- set 3 esp on</screen>
   </example>
 
   <example xml:id="ex-install-sequence">
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-rebuild.xml b/nixos/doc/manual/man-nixos-rebuild.xml
index f4f663b84f0..f70f08a0f8a 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>
diff --git a/nixos/doc/manual/release-notes/rl-2003.xml b/nixos/doc/manual/release-notes/rl-2003.xml
index 393a9286ca4..0e9ba027a38 100644
--- a/nixos/doc/manual/release-notes/rl-2003.xml
+++ b/nixos/doc/manual/release-notes/rl-2003.xml
@@ -792,7 +792,7 @@ 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>
diff --git a/nixos/doc/manual/release-notes/rl-2009.xml b/nixos/doc/manual/release-notes/rl-2009.xml
index ede7bed609d..166aec25512 100644
--- a/nixos/doc/manual/release-notes/rl-2009.xml
+++ b/nixos/doc/manual/release-notes/rl-2009.xml
@@ -28,6 +28,12 @@
    </listitem>
    <listitem>
     <para>
+    <package>maxx</package> package removed along with <varname>services.xserver.desktopManager.maxx</varname> module.
+    Please migrate to <package>cdesktopenv</package> and <varname>services.xserver.desktopManager.cde</varname> module.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
      We now distribute a GNOME ISO.
     </para>
    </listitem>
@@ -38,6 +44,16 @@
    </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>
+   <listitem>
+    <para>
      Two new options, <link linkend="opt-services.openssh.authorizedKeysCommand">authorizedKeysCommand</link>
      and <link linkend="opt-services.openssh.authorizedKeysCommandUser">authorizedKeysCommandUser</link>, have
      been added to the <literal>openssh</literal> module. If you have <literal>AuthorizedKeysCommand</literal>
@@ -61,6 +77,133 @@
       This is to make it possible to use <literal>podman</literal> instead of <literal>docker</literal>.
     </para>
    </listitem>
+   <listitem>
+    <para>
+      MariaDB has been updated to 10.4, MariaDB Galera to 26.4.
+      Before you upgrade, it would be best to take a backup of your database.
+      For MariaDB Galera Cluster, see <link xlink:href="https://mariadb.com/kb/en/upgrading-from-mariadb-103-to-mariadb-104-with-galera-cluster/">Upgrading
+      from MariaDB 10.3 to MariaDB 10.4 with Galera Cluster</link> instead.
+      Before doing the upgrade read <link xlink:href="https://mariadb.com/kb/en/upgrading-from-mariadb-103-to-mariadb-104/#incompatible-changes-between-103-and-104">Incompatible
+      Changes Between 10.3 and 10.4</link>.
+      After the upgrade you will need to run <literal>mysql_upgrade</literal>.
+      MariaDB 10.4 introduces a number of changes to the authentication process, intended to make things easier and more
+      intuitive. See <link xlink:href="https://mariadb.com/kb/en/authentication-from-mariadb-104/">Authentication from MariaDB 10.4</link>.
+      unix_socket auth plugin does not use a password, and uses the connecting user's UID instead. When a new MariaDB data directory is initialized, two MariaDB users are
+      created and can be used with new unix_socket auth plugin, as well as traditional mysql_native_password plugin: root@localhost and mysql@localhost. To actually use
+      the traditional mysql_native_password plugin method, one must run the following:
+<programlisting>
+services.mysql.initialScript = pkgs.writeText "mariadb-init.sql" ''
+  ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD("verysecret");
+'';
+</programlisting>
+      When MariaDB data directory is just upgraded (not initialized), the users are not created or modified.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      MySQL server is now started with additional systemd sandbox/hardening options for better security. The PrivateTmp, ProtectHome, and ProtectSystem options
+      may be problematic when MySQL is attempting to read from or write to your filesystem anywhere outside of its own state directory, for example when
+      calling <literal>LOAD DATA INFILE or SELECT * INTO OUTFILE</literal>. In this scenario a variant of the following may be required:
+        - allow MySQL to read from /home and /tmp directories when using <literal>LOAD DATA INFILE</literal>
+<programlisting>
+systemd.services.mysql.serviceConfig.ProtectHome = lib.mkForce "read-only";
+</programlisting>
+        - allow MySQL to write to custom folder <literal>/var/data</literal> when using <literal>SELECT * INTO OUTFILE</literal>, assuming the mysql user has write
+          access to <literal>/var/data</literal>
+<programlisting>
+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>
+      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>
   </itemizedlist>
  </section>
 
@@ -100,11 +243,23 @@
   <itemizedlist>
    <listitem>
     <para>
+     <literal>buildGoModule</literal> now internally creates a vendor directory
+     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
+     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.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
      Grafana is now built without support for phantomjs by default. Phantomjs support has been
      <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;
@@ -116,7 +271,7 @@
     <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>.
@@ -136,6 +291,12 @@
    </listitem>
    <listitem>
     <para>
+      <literal>vmware</literal> has been removed from the <literal>services.x11.videoDrivers</literal> defaults.
+      For VMWare guests set <literal>virtualisation.vmware.guest.enable</literal> to <literal>true</literal> which will include the appropriate drivers.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
      The initrd SSH support now uses OpenSSH rather than Dropbear to
      allow the use of Ed25519 keys and other OpenSSH-specific
      functionality. Host keys must now be in the OpenSSH format, and at
@@ -189,13 +350,13 @@ environment.systemPackages = [
              customizable to your liking by using
              <literal>php.withExtensions</literal> or
              <literal>php.buildEnv</literal> instead of writing config files
-             or changing configure flags.             
+             or changing configure flags.
            </para>
          </listitem>
          <listitem>
            <para>
              The remaining configuration flags can now be set directly on
-             the <literal>php</literal> attribute. For example, instead of 
+             the <literal>php</literal> attribute. For example, instead of
 
              <programlisting>
 php.override {
@@ -235,7 +396,16 @@ php.override {
        Be aware that backwards state migrations are not supported by Deluge.
      </para>
    </listitem>
-
+   <listitem>
+     <para>
+       Add option <literal>services.nginx.enableSandbox</literal> to starting Nginx web server with additional sandbox/hardening options.
+       By default, write access to <literal>services.nginx.stateDir</literal> is allowed. To allow writing to other folders,
+       use <literal>systemd.services.nginx.serviceConfig.ReadWritePaths</literal>
+       <programlisting>
+systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
+       </programlisting>
+     </para>
+   </listitem>
    <listitem>
     <para>
       The NixOS options <literal>nesting.clone</literal> and
@@ -344,6 +514,244 @@ php.override {
       will have changed.
     </para>
    </listitem>
+   <listitem>
+    <para>
+      The rkt module has been removed, it was archived by upstream.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      The <link xlink:href="https://bazaar.canonical.com">Bazaar</link> VCS is
+      unmaintained and, as consequence of the Python 2 EOL, the packages
+      <literal>bazaar</literal> and <literal>bazaarTools</literal> were
+      removed. Breezy, the backward compatible fork of Bazaar (see the
+      <link xlink:href="https://www.jelmer.uk/breezy-intro.html">announcement</link>),
+      was packaged as <literal>breezy</literal> and can be used instead.
+    </para>
+    <para>
+      Regarding Nixpkgs, <literal>fetchbzr</literal>,
+      <literal>nix-prefetch-bzr</literal> and Bazaar support in Hydra will
+      continue to work through Breezy.
+    </para>
+   </listitem>
+   <listitem>
+     <para>
+       In addition to the hostname, the fully qualified domain name (FQDN),
+       which consists of <literal>${cfg.hostName}</literal> and
+       <literal>${cfg.domain}</literal> is now added to
+       <literal>/etc/hosts</literal>, to allow local FQDN resolution, as used by the
+       <literal>hostname --fqdn</literal> command and other applications that
+       try to determine the FQDN. These new entries take precedence over entries
+       from the DNS which could cause regressions in some very specific setups.
+       Additionally the hostname is now resolved to <literal>127.0.0.2</literal>
+       instead of <literal>127.0.1.1</literal> to be consistent with what
+       <literal>nss-myhostname</literal> (from systemd) returns.
+       The old behaviour can e.g. be restored by using
+       <literal>networking.hosts = lib.mkForce { "127.0.1.1" = [ config.networking.hostName ]; };</literal>.
+     </para>
+   </listitem>
+   <listitem>
+     <para>
+       The hostname (<literal>networking.hostName</literal>) must now be a valid
+       DNS label (see RFC 1035) and as such must not contain the domain part.
+       This means that the hostname must start with a letter, end with a letter
+       or digit, and have as interior characters only letters, digits, and
+       hyphen. The maximum length is 63 characters. Additionally it is
+       recommended to only use lower-case characters.
+     </para>
+   </listitem>
+   <listitem>
+    <para>
+     The GRUB specific option <option>boot.loader.grub.extraInitrd</option>
+     has been replaced with the generic option
+     <option>boot.initrd.secrets</option>. This option creates a secondary
+     initrd from the specified files, rather than using a manually created
+     initrd file.
+
+     Due to an existing bug with <option>boot.loader.grub.extraInitrd</option>,
+     it is not possible to directly boot an older generation that used that
+     option. It is still possible to rollback to that generation if the required
+     initrd file has not been deleted.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <link xlink:href="https://github.com/okTurtles/dnschain">DNSChain</link>
+     package and NixOS module have been removed from Nixpkgs as the software is
+     unmaintained and can't be built. For more information see issue
+     <link xlink:href="https://github.com/NixOS/nixpkgs/issues/89205">#89205</link>.
+    </para>
+   </listitem>
+   <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>
+    <para>
+     Radicale's default package has changed from 2.x to 3.x. An upgrade
+     checklist can be found
+     <link xlink:href="https://github.com/Kozea/Radicale/blob/3.0.x/NEWS.md#upgrade-checklist">here</link>.
+     You can use the newer version in the NixOS service by setting the
+     <literal>package</literal> to <literal>radicale3</literal>, which is done
+     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>
   </itemizedlist>
  </section>
 
@@ -356,6 +764,9 @@ php.override {
 
   <itemizedlist>
    <listitem>
+    <para>SD images are now compressed by default using <literal>zstd</literal>. The compression for ISO images has also been changed to <literal>zstd</literal>, but ISO images are still not compressed by default.</para>
+   </listitem>
+   <listitem>
     <para>
      <option>services.journald.rateLimitBurst</option> was updated from
      <literal>1000</literal> to <literal>10000</literal> to follow the new
@@ -372,10 +783,205 @@ php.override {
     </para>
    </listitem>
    <listitem>
+    <para>
+      The default output of <literal>buildGoPackage</literal> is now <literal>$out</literal> instead of <literal>$bin</literal>.
+    </para>
+   </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>
+    <para>
+     Please note that Rust packages utilizing a custom build/install procedure
+     (e.g. by using a <filename>Makefile</filename>) or test suites that rely on the
+     structure of the <filename>target/</filename> directory may break due to those assumptions.
+     For further information, please read the Rust section in the Nixpkgs manual.
+    </para>
+   </listitem>
+   <listitem>
    <para>
-     The default output of <literal>buildGoPackage</literal> is now <literal>$out</literal> instead of <literal>$bin</literal>.
+     The cc- and binutils-wrapper's "infix salt" and <literal>_BUILD_</literal> and <literal>_TARGET_</literal> user infixes have been replaced with with a "suffix salt" and suffixes and <literal>_FOR_BUILD</literal> and <literal>_FOR_TARGET</literal>.
+      This matches the autotools convention for env vars which standard for these things, making interfacing with other tools easier.
    </para>
    </listitem>
+   <listitem>
+   <para>
+     Additional Git documentation (HTML and text files) is now available via the <literal>git-doc</literal> package.
+   </para>
+   </listitem>
+   <listitem>
+   <para>
+     Default algorithm for ZRAM swap was changed to <literal>zstd</literal>.
+   </para>
+   </listitem>
+   <listitem>
+    <para>
+     The scripted networking system now uses <literal>.link</literal> files in
+     <literal>/etc/systemd/network</literal> to configure mac address and link MTU,
+     instead of the sometimes buggy <literal>network-link-*</literal> units, which
+     have been removed.
+     Bringing the interface up has been moved to the beginning of the
+     <literal>network-addresses-*</literal> unit.
+     Note this doesn't require <command>systemd-networkd</command> - it's udev that
+     parses <literal>.link</literal> files.
+     Extra care needs to be taken in the presence of <link xlink:href="https://wiki.debian.org/NetworkInterfaceNames#THE_.22PERSISTENT_NAMES.22_SCHEME">legacy udev rules</link>
+     to rename interfaces, as MAC Address and MTU defined in these options can only match on the original link name.
+     In such cases, you most likely want to create a <literal>10-*.link</literal> file through <xref linkend="opt-systemd.network.links"/> and set both name and MAC Address / MTU there.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Grafana received a major update to version 7.x. A plugin is now needed for
+     image rendering support, and plugins must now be signed by default. More
+     information can be found
+     <link xlink:href="https://grafana.com/docs/grafana/latest/installation/upgrading/#upgrading-to-v7-0">in the Grafana documentation</link>.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <literal>hardware.u2f</literal> module, which was installing udev rules
+     was removed, as udev gained native support to handle FIDO security tokens.
+    </para>
+   </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)
+     devices the default buffer size (currently 128MB) is not enough.
+    </para>
+    <para>
+     On a machine with &gt;100 virtual interfaces (e.g., wireguard tunnels, VLANs, …), that all have to
+     be brought up during system startup, the receive buffer size will spike for a brief period.
+     Eventually some of the message will be dropped since there is not enough (permitted) buffer
+     space available.
+    </para>
+    <para>
+     By having <literal>systemd-networkd</literal> start with a netlink socket created by
+     <literal>systemd</literal> we can configure the <literal>ReceiveBufferSize=</literal> parameter
+     in the socket options (i.e. <literal>systemd.sockets.systemd-networkd.socketOptions.ReceiveBufferSize</literal>)
+     without recompiling <literal>systemd-networkd</literal>.
+    </para>
+    <para>
+     Since the actual memory requirements depend on hardware, timing, exact
+     configurations etc. it isn't currently possible to infer a good default
+     from within the NixOS module system. Administrators are advised to
+     monitor the logs of <literal>systemd-networkd</literal> for <literal>rtnl: kernel receive buffer
+     overrun</literal> spam and increase the memory limit as they see fit.
+    </para>
+    <para>
+     Note: Increasing the <literal>ReceiveBufferSize=</literal> doesn't allocate any memory. It just increases
+     the upper bound on the kernel side. The memory allocation depends on the amount of messages that are
+     queued on the kernel side of the netlink socket.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Specifying <link linkend="opt-services.dovecot2.mailboxes">mailboxes</link> in the <package>dovecot2</package> module
+     as a list is deprecated and will break eval in 21.03. Instead, an attribute-set should be specified where the <literal>name</literal>
+     should be the key of the attribute.
+    </para>
+    <para>
+     This means that a configuration like this
+<programlisting>{
+  <link linkend="opt-services.dovecot2.mailboxes">services.dovecot2.mailboxes</link> = [
+    { name = "Junk";
+      auto = "create";
+    }
+  ];
+}</programlisting>
+    should now look like this:
+<programlisting>{
+  <link linkend="opt-services.dovecot2.mailboxes">services.dovecot2.mailboxes</link> = {
+    Junk.auto = "create";
+  };
+}</programlisting>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      <package>netbeans</package> was upgraded to 12.0 and now defaults to OpenJDK 11. This might cause problems if your projects depend on packages that were removed in Java 11.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <package>nextcloud</package> has been updated to <link xlink:href="https://nextcloud.com/blog/nextcloud-hub-brings-productivity-to-home-office/">v19</link>.
+    </para>
+    <para>
+     If you have an existing installation, please make sure that you're on
+     <package>nextcloud18</package> before upgrading to <package>nextcloud19</package>
+     since Nextcloud doesn't support upgrades across multiple major versions.
+    </para>
+     <para>
+       The <literal>nixos-run-vms</literal> script now deletes the
+       previous run machines states on test startup. You can use the
+       <literal>--keep-vm-state</literal> flag to match the previous
+       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>
   </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 5e86ea479d5..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"
@@ -39,11 +50,11 @@
 
 , name ? "nixos-disk-image"
 
-, # Disk image format, one of qcow2, qcow2-compressed, vpc, raw.
+, # Disk image format, one of qcow2, qcow2-compressed, vdi, vpc, raw.
   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";
 
@@ -57,13 +68,15 @@ let format' = format; in let
 
   filename = "nixos." + {
     qcow2 = "qcow2";
+    vdi   = "vdi";
     vpc   = "vhd";
     raw   = "img";
-  }.${format};
+  }.${format} or format;
 
   rootPartition = { # switch-case
     legacy = "1";
     efi = "2";
+    hybrid = "3";
   }.${partitionTableType};
 
   partitionDiskScript = { # switch-case
@@ -75,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};
@@ -128,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
@@ -180,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/* /
   '';
@@ -217,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 627ac324cf5..33dbc8f5ec4 100644
--- a/nixos/lib/make-ext4-fs.nix
+++ b/nixos/lib/make-ext4-fs.nix
@@ -17,7 +17,7 @@
 , e2fsprogs
 , libfaketime
 , perl
-, lkl
+, fakeroot
 }:
 
 let
@@ -26,7 +26,7 @@ in
 pkgs.stdenv.mkDerivation {
   name = "ext4-fs.img${lib.optionalString compressImage ".zst"}";
 
-  nativeBuildInputs = [ e2fsprogs.bin libfaketime perl lkl ]
+  nativeBuildInputs = [ e2fsprogs.bin libfaketime perl fakeroot ]
   ++ lib.optional compressImage zstd;
 
   buildCommand =
@@ -37,32 +37,34 @@ pkgs.stdenv.mkDerivation {
       ${populateImageCommands}
       )
 
-      # Add the closures of the top-level store objects.
-      storePaths=$(cat ${sdClosureInfo}/store-paths)
+      echo "Preparing store paths for image..."
+
+      # Create nix/store before copying path
+      mkdir -p ./rootImage/nix/store
+
+      xargs -I % cp -a --reflink=auto % -t ./rootImage/nix/store/ < ${sdClosureInfo}/store-paths
+      (
+        GLOBIGNORE=".:.."
+        shopt -u dotglob
+
+        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
+      cp ${sdClosureInfo}/registration ./rootImage/nix-path-registration
 
       # Make a crude approximation of the size of the target image.
       # If the script starts failing, increase the fudge factors here.
-      numInodes=$(find $storePaths ./files | wc -l)
-      numDataBlocks=$(du -s -c -B 4096 --apparent-size $storePaths ./files | tail -1 | awk '{ print int($1 * 1.03) }')
+      numInodes=$(find ./rootImage | wc -l)
+      numDataBlocks=$(du -s -c -B 4096 --apparent-size ./rootImage | tail -1 | awk '{ print int($1 * 1.10) }')
       bytes=$((2 * 4096 * $numInodes + 4096 * $numDataBlocks))
       echo "Creating an EXT4 image of $bytes bytes (numInodes=$numInodes, numDataBlocks=$numDataBlocks)"
 
       truncate -s $bytes $img
-      faketime -f "1970-01-01 00:00:01" mkfs.ext4 -L ${volumeLabel} -U ${uuid} $img
-
-      # Also include a manifest of the closures in a format suitable for nix-store --load-db.
-      cp ${sdClosureInfo}/registration nix-path-registration
-      cptofs -t ext4 -i $img nix-path-registration /
-
-      # Create nix/store before copying paths
-      faketime -f "1970-01-01 00:00:01" mkdir -p nix/store
-      cptofs -t ext4 -i $img nix /
-
-      echo "copying store paths to image..."
-      cptofs -t ext4 -i $img $storePaths /nix/store/
 
-      echo "copying files to image..."
-      cptofs -t ext4 -i $img ./files/* /
+      faketime -f "1970-01-01 00:00:01" fakeroot mkfs.ext4 -L ${volumeLabel} -U ${uuid} -d ./rootImage $img
 
       export EXT2FS_NO_MTAB_OK=yes
       # I have ended up with corrupted images sometimes, I suspect that happens when the build machine's disk gets full during the build.
diff --git a/nixos/lib/make-iso9660-image.nix b/nixos/lib/make-iso9660-image.nix
index 0f3f2b5b523..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"
@@ -34,8 +34,8 @@
 , # The path (outside the ISO file system) of the isohybrid-mbr image.
   isohybridMbrImage ? ""
 
-, # Whether to compress the resulting ISO image with bzip2.
-  compressImage ? false
+, # Whether to compress the resulting ISO image with zstd.
+  compressImage ? false, zstd
 
 , # The volume ID.
   volumeID ? ""
@@ -48,7 +48,7 @@ assert usbBootable -> isohybridMbrImage != "";
 stdenv.mkDerivation {
   name = isoName;
   builder = ./make-iso9660-image.sh;
-  buildInputs = [ xorriso syslinux ];
+  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 d4633d2c8d1..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,20 +123,16 @@ 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..."
-    bzip2 $out/iso/$isoName
+    zstd -T$NIX_BUILD_CORES --rm $out/iso/$isoName
 fi
 
 mkdir -p $out/nix-support
 echo $system > $out/nix-support/system
-echo "file iso $out/iso/$isoName" >> $out/nix-support/hydra-build-products
+
+if test -n "$compressImage"; then
+    echo "file iso $out/iso/$isoName.zst" >> $out/nix-support/hydra-build-products
+else
+    echo "file iso $out/iso/$isoName" >> $out/nix-support/hydra-build-products
+fi
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/qemu-flags.nix b/nixos/lib/qemu-flags.nix
index 859d9e975fe..0cf6977af4b 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}"
     ];
 
diff --git a/nixos/lib/test-driver/Logger.pm b/nixos/lib/test-driver/Logger.pm
index 080310ea34e..a3384084a0e 100644
--- a/nixos/lib/test-driver/Logger.pm
+++ b/nixos/lib/test-driver/Logger.pm
@@ -8,17 +8,17 @@ 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;
 }
diff --git a/nixos/lib/test-driver/test-driver.py b/nixos/lib/test-driver/test-driver.py
index bf46d0df97f..f4e2bb6100f 100644
--- a/nixos/lib/test-driver/test-driver.py
+++ b/nixos/lib/test-driver/test-driver.py
@@ -3,7 +3,10 @@ from contextlib import contextmanager, _GeneratorContextManager
 from queue import Queue, Empty
 from typing import Tuple, Any, Callable, Dict, Iterator, Optional, List
 from xml.sax.saxutils import XMLGenerator
+import queue
+import io
 import _thread
+import argparse
 import atexit
 import base64
 import codecs
@@ -19,6 +22,7 @@ import subprocess
 import sys
 import tempfile
 import time
+import traceback
 import unicodedata
 
 CHAR_TO_KEY = {
@@ -420,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.
@@ -598,11 +605,8 @@ class Machine:
                 shutil.copytree(host_src, host_intermediate)
             else:
                 shutil.copy(host_src, host_intermediate)
-            self.succeed("sync")
             self.succeed(make_command(["mkdir", "-p", vm_target.parent]))
             self.succeed(make_command(["cp", "-r", vm_intermediate, vm_target]))
-        # Make sure the cleanup is synced into VM
-        self.succeed("sync")
 
     def copy_from_vm(self, source: str, target_dir: str = "") -> None:
         """Copy a file from the VM (specified by an in-VM source path) to a path
@@ -620,7 +624,6 @@ class Machine:
             # Copy the file to the shared directory inside VM
             self.succeed(make_command(["mkdir", "-p", vm_shared_temp]))
             self.succeed(make_command(["cp", "-r", vm_src, vm_intermediate]))
-            self.succeed("sync")
             abs_target = out_dir / target_dir / vm_src.name
             abs_target.parent.mkdir(exist_ok=True, parents=True)
             # Copy the file from the shared directory outside VM
@@ -628,8 +631,6 @@ class Machine:
                 shutil.copytree(intermediate, abs_target)
             else:
                 shutil.copy(intermediate, abs_target)
-        # Make sure the cleanup is synced into VM
-        self.succeed("sync")
 
     def dump_tty_contents(self, tty: str) -> None:
         """Debugging: Dump the contents of the TTY<n>
@@ -677,6 +678,22 @@ class Machine:
         with self.nested("waiting for {} to appear on screen".format(regex)):
             retry(screen_matches)
 
+    def wait_for_console_text(self, regex: str) -> None:
+        self.log("waiting for {} to appear on console".format(regex))
+        # Buffer the console output, this is needed
+        # to match multiline regexes.
+        console = io.StringIO()
+        while True:
+            try:
+                console.write(self.last_lines.get())
+            except queue.Empty:
+                self.sleep(1)
+                continue
+            console.seek(0)
+            matches = re.search(regex, console.read())
+            if matches is not None:
+                return
+
     def send_key(self, key: str) -> None:
         key = CHAR_TO_KEY.get(key, key)
         self.send_monitor_command("sendkey {}".format(key))
@@ -740,11 +757,16 @@ class Machine:
         self.monitor, _ = self.monitor_socket.accept()
         self.shell, _ = self.shell_socket.accept()
 
+        # Store last serial console lines for use
+        # of wait_for_console_text
+        self.last_lines: Queue = Queue()
+
         def process_serial_output() -> None:
             assert self.process.stdout is not None
             for _line in self.process.stdout:
                 # Ignore undecodable bytes that may occur in boot menus
                 line = _line.decode(errors="ignore").replace("\r", "").rstrip()
+                self.last_lines.put(line)
                 eprint("{} # {}".format(self.name, line))
                 self.logger.enqueue({"msg": line, "machine": self.name})
 
@@ -757,6 +779,11 @@ class Machine:
 
         self.log("QEMU running (pid {})".format(self.pid))
 
+    def cleanup_statedir(self) -> None:
+        self.log("delete the VM state directory")
+        if os.path.isfile(self.state_dir):
+            shutil.rmtree(self.state_dir)
+
     def shutdown(self) -> None:
         if not self.booted:
             return
@@ -869,7 +896,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())
@@ -895,6 +923,15 @@ def subtest(name: str) -> Iterator[None]:
 
 
 if __name__ == "__main__":
+    arg_parser = argparse.ArgumentParser()
+    arg_parser.add_argument(
+        "-K",
+        "--keep-vm-state",
+        help="re-use a VM state coming from a previous run",
+        action="store_true",
+    )
+    (cli_args, vm_scripts) = arg_parser.parse_known_args()
+
     log = Logger()
 
     vlan_nrs = list(dict.fromkeys(os.environ.get("VLANS", "").split()))
@@ -902,8 +939,10 @@ if __name__ == "__main__":
     for nr, vde_socket, _, _ in vde_sockets:
         os.environ["QEMU_VDE_SOCKET_{}".format(nr)] = vde_socket
 
-    vm_scripts = sys.argv[1:]
     machines = [create_machine({"startCommand": s}) for s in vm_scripts]
+    for machine in machines:
+        if not cli_args.keep_vm_state:
+            machine.cleanup_statedir()
     machine_eval = [
         "{0} = machines[{1}]".format(m.name, idx) for idx, m in enumerate(machines)
     ]
@@ -917,7 +956,6 @@ if __name__ == "__main__":
                     continue
                 log.log("killing {} (pid {})".format(machine.name, machine.pid))
                 machine.process.kill()
-
             for _, _, process, _ in vde_sockets:
                 process.terminate()
         log.close()
diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix
index 88801f20517..c6939c7d698 100644
--- a/nixos/lib/testing-python.nix
+++ b/nixos/lib/testing-python.nix
@@ -10,11 +10,7 @@
 with import ./build-vms.nix { inherit system pkgs minimal extraConfigurations; };
 with pkgs;
 
-let
-  jquery-ui = callPackage ./testing/jquery-ui.nix { };
-  jquery = callPackage ./testing/jquery.nix { };
-
-in rec {
+rec {
 
   inherit pkgs;
 
@@ -118,7 +114,7 @@ in rec {
 
       imagemagick_tiff = imagemagick_light.override { inherit libtiff; };
 
-      # Generate onvenience wrappers for running the test driver
+      # Generate convenience wrappers for running the test driver
       # interactively with the specified network, and for starting the
       # VMs from the command line.
       driver = let warn = if skipLint then lib.warn "Linting is disabled!" else lib.id; in warn (runCommand testDriverName
diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix
index cbb7faf039e..5c784c2f0ab 100644
--- a/nixos/lib/testing.nix
+++ b/nixos/lib/testing.nix
@@ -10,11 +10,7 @@
 with import ./build-vms.nix { inherit system pkgs minimal extraConfigurations; };
 with pkgs;
 
-let
-  jquery-ui = callPackage ./testing/jquery-ui.nix { };
-  jquery = callPackage ./testing/jquery.nix { };
-
-in rec {
+rec {
 
   inherit pkgs;
 
diff --git a/nixos/lib/testing/jquery-ui.nix b/nixos/lib/testing/jquery-ui.nix
deleted file mode 100644
index 05bd8dc2f94..00000000000
--- a/nixos/lib/testing/jquery-ui.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, unzip }:
-
-stdenv.mkDerivation rec {
-  name = "jquery-ui-1.11.4";
-
-  src = fetchurl {
-    url = "https://jqueryui.com/resources/download/${name}.zip";
-    sha256 = "0ciyaj1acg08g8hpzqx6whayq206fvf4whksz2pjgxlv207lqgjh";
-  };
-
-  buildInputs = [ unzip ];
-
-  installPhase =
-    ''
-      mkdir -p "$out/js"
-      cp -rv . "$out/js"
-    '';
-
-  meta = {
-    homepage = "https://jqueryui.com/";
-    description = "A library of JavaScript widgets and effects";
-    platforms = stdenv.lib.platforms.all;
-  };
-}
diff --git a/nixos/lib/testing/jquery.nix b/nixos/lib/testing/jquery.nix
deleted file mode 100644
index 732fdb3ba87..00000000000
--- a/nixos/lib/testing/jquery.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ stdenv, fetchurl, compressed ? true }:
-
-with stdenv.lib;
-
-stdenv.mkDerivation rec {
-  name = "jquery-1.11.3";
-
-  src = if compressed then
-    fetchurl {
-      url = "http://code.jquery.com/${name}.min.js";
-      sha256 = "1f4glgxxn3jnvry3dpzmazj3207baacnap5w20gr2xlk789idfgc";
-    }
-    else
-    fetchurl {
-      url = "http://code.jquery.com/${name}.js";
-      sha256 = "1v956yf5spw0156rni5z77hzqwmby7ajwdcd6mkhb6zvl36awr90";
-    };
-
-  dontUnpack = true;
-
-  installPhase =
-    ''
-      mkdir -p "$out/js"
-      cp -v "$src" "$out/js/jquery.js"
-      ${optionalString compressed ''
-        (cd "$out/js" && ln -s jquery.js jquery.min.js)
-      ''}
-    '';
-
-  meta = with stdenv.lib; {
-    description = "JavaScript library designed to simplify the client-side scripting of HTML";
-    homepage = "http://jquery.com/";
-    license = licenses.mit;
-    platforms = platforms.all;
-  };
-}
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 6ac64b0ec9c..1f1044bc5af 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/${pkgs.fontconfig.configVersion}/conf.d/
 
 This module generates a package containing configuration files and link it in /etc/fonts.
 
@@ -22,40 +17,21 @@ 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'?>
@@ -200,63 +176,47 @@ 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/${pkg.configVersion}/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
+    ln -s /etc/fonts/${pkg.configVersion}/fonts.conf \
+          $out/etc/fonts/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
+    # Since latest fontconfig looks for default files inside the package,
+    # we had to move this one elsewhere to be able to exclude it here.
+    ${optionalString cfg.includeUserConf ''
+    ln -s ${pkg.out}/etc/fonts/conf.d.bak/50-user.conf $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
     ''}
   '';
 
@@ -278,7 +238,14 @@ in
     (mkRemovedOptionModule [ "fonts" "fontconfig" "hinting" "style" ] "")
     (mkRemovedOptionModule [ "fonts" "fontconfig" "forceAutohint" ] "")
     (mkRemovedOptionModule [ "fonts" "fontconfig" "renderMonoTTFAsBitmap" ] "")
-  ];
+  ] ++ lib.forEach [ "enable" "substitutions" "preset" ]
+     (opt: lib.mkRemovedOptionModule [ "fonts" "fontconfig" "ultimate" "${opt}" ] ''
+       The fonts.fontconfig.ultimate module and configuration is obsolete.
+       The repository has since been archived and activity has ceased.
+       https://github.com/bohoomil/fontconfig-ultimate/issues/171.
+       No action should be needed for font configuration, as the fonts.fontconfig
+       module is already used by default.
+     '');
 
   options = {
 
@@ -483,7 +450,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/i18n.nix b/nixos/modules/config/i18n.nix
index cc2ddda9d32..feb76581a72 100644
--- a/nixos/modules/config/i18n.nix
+++ b/nixos/modules/config/i18n.nix
@@ -68,7 +68,8 @@ with lib;
   config = {
 
     environment.systemPackages =
-      optional (config.i18n.supportedLocales != []) config.i18n.glibcLocales;
+      # We increase the priority a little, so that plain glibc in systemPackages can't win.
+      optional (config.i18n.supportedLocales != []) (lib.setPrio (-1) config.i18n.glibcLocales);
 
     environment.sessionVariables =
       { LANG = config.i18n.defaultLocale;
diff --git a/nixos/modules/config/ldap.nix b/nixos/modules/config/ldap.nix
index 4c8b527676b..1a5dbcd4e26 100644
--- a/nixos/modules/config/ldap.nix
+++ b/nixos/modules/config/ldap.nix
@@ -244,6 +244,10 @@ in
       if cfg.daemon.enable then nss_pam_ldapd else nss_ldap
     );
 
+    system.nssDatabases.group = optional cfg.nsswitch "ldap";
+    system.nssDatabases.passwd = optional cfg.nsswitch "ldap";
+    system.nssDatabases.shadow = optional cfg.nsswitch "ldap";
+
     users = mkIf cfg.daemon.enable {
       groups.nslcd = {
         gid = config.ids.gids.nslcd;
diff --git a/nixos/modules/config/networking.nix b/nixos/modules/config/networking.nix
index 03944de8249..4cb7d81c997 100644
--- a/nixos/modules/config/networking.nix
+++ b/nixos/modules/config/networking.nix
@@ -8,9 +8,6 @@ let
 
   cfg = config.networking;
 
-  localhostMapped4 = cfg.hosts ? "127.0.0.1" && elem "localhost" cfg.hosts."127.0.0.1";
-  localhostMapped6 = cfg.hosts ? "::1"       && elem "localhost" cfg.hosts."::1";
-
   localhostMultiple = any (elem "localhost") (attrValues (removeAttrs cfg.hosts [ "127.0.0.1" "::1" ]));
 
 in
@@ -147,12 +144,6 @@ in
   config = {
 
     assertions = [{
-      assertion = localhostMapped4;
-      message = ''`networking.hosts` doesn't map "127.0.0.1" to "localhost"'';
-    } {
-      assertion = !cfg.enableIPv6 || localhostMapped6;
-      message = ''`networking.hosts` doesn't map "::1" to "localhost"'';
-    } {
       assertion = !localhostMultiple;
       message = ''
         `networking.hosts` maps "localhost" to something other than "127.0.0.1"
@@ -161,22 +152,34 @@ in
       '';
     }];
 
-    networking.hosts = {
-      "127.0.0.1" = [ "localhost" ];
-    } // optionalAttrs (cfg.hostName != "") {
-      "127.0.1.1" = [ cfg.hostName ];
+    # These entries are required for "hostname -f" and to resolve both the
+    # hostname and FQDN correctly:
+    networking.hosts = let
+      hostnames = # Note: The FQDN (canonical hostname) has to come first:
+        optional (cfg.hostName != "" && cfg.domain != null) "${cfg.hostName}.${cfg.domain}"
+        ++ optional (cfg.hostName != "") cfg.hostName; # Then the hostname (without the domain)
+    in {
+      "127.0.0.2" = hostnames;
     } // optionalAttrs cfg.enableIPv6 {
-      "::1" = [ "localhost" ];
+      "::1" = hostnames;
     };
 
     networking.hostFiles = let
+      # Note: localhostHosts has to appear first in /etc/hosts so that 127.0.0.1
+      # resolves back to "localhost" (as some applications assume) instead of
+      # the FQDN! By default "networking.hosts" also contains entries for the
+      # FQDN so that e.g. "hostname -f" works correctly.
+      localhostHosts = pkgs.writeText "localhost-hosts" ''
+        127.0.0.1 localhost
+        ${optionalString cfg.enableIPv6 "::1 localhost"}
+      '';
       stringHosts =
         let
           oneToString = set: ip: ip + " " + concatStringsSep " " set.${ip} + "\n";
           allToString = set: concatMapStrings (oneToString set) (attrNames set);
         in pkgs.writeText "string-hosts" (allToString (filterAttrs (_: v: v != []) cfg.hosts));
       extraHosts = pkgs.writeText "extra-hosts" cfg.extraHosts;
-    in mkBefore [ stringHosts extraHosts ];
+    in mkBefore [ localhostHosts stringHosts extraHosts ];
 
     environment.etc =
       { # /etc/services: TCP/UDP port assignments.
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/nsswitch.nix b/nixos/modules/config/nsswitch.nix
index 22ddb3490c8..d19d35a4890 100644
--- a/nixos/modules/config/nsswitch.nix
+++ b/nixos/modules/config/nsswitch.nix
@@ -4,34 +4,7 @@
 
 with lib;
 
-let
-
-  # only with nscd up and running we can load NSS modules that are not integrated in NSS
-  canLoadExternalModules = config.services.nscd.enable;
-  # XXX Move these to their respective modules
-  nssmdns = canLoadExternalModules && config.services.avahi.nssmdns;
-  nsswins = canLoadExternalModules && config.services.samba.nsswins;
-  ldap = canLoadExternalModules && (config.users.ldap.enable && config.users.ldap.nsswitch);
-
-  hostArray = mkMerge [
-    (mkBefore [ "files" ])
-    (mkIf nssmdns [ "mdns_minimal [NOTFOUND=return]" ])
-    (mkIf nsswins [ "wins" ])
-    (mkAfter [ "dns" ])
-    (mkIf nssmdns (mkOrder 1501 [ "mdns" ])) # 1501 to ensure it's after dns
-  ];
-
-  passwdArray = mkMerge [
-    (mkBefore [ "files" ])
-    (mkIf ldap [ "ldap" ])
-  ];
-
-  shadowArray = mkMerge [
-    (mkBefore [ "files" ])
-    (mkIf ldap [ "ldap" ])
-  ];
-
-in {
+{
   options = {
 
     # NSS modules.  Hacky!
@@ -122,9 +95,11 @@ in {
   config = {
     assertions = [
       {
-        # generic catch if the NixOS module adding to nssModules does not prevent it with specific message.
-        assertion = config.system.nssModules.path != "" -> canLoadExternalModules;
-        message = "Loading NSS modules from path ${config.system.nssModules.path} requires nscd being enabled.";
+        # Prevent users from disabling nscd, with nssModules being set.
+        # If disabling nscd is really necessary, it's still possible to opt out
+        # by forcing config.system.nssModules to [].
+        assertion = config.system.nssModules.path != "" -> config.services.nscd.enable;
+        message = "Loading NSS modules from system.nssModules (${config.system.nssModules.path}), requires services.nscd.enable being set to true.";
       }
     ];
 
@@ -145,10 +120,13 @@ in {
     '';
 
     system.nssDatabases = {
-      passwd = passwdArray;
-      group = passwdArray;
-      shadow = shadowArray;
-      hosts = hostArray;
+      passwd = mkBefore [ "files" ];
+      group = mkBefore [ "files" ];
+      shadow = mkBefore [ "files" ];
+      hosts = mkMerge [
+        (mkBefore [ "files" ])
+        (mkAfter [ "dns" ])
+      ];
       services = mkBefore [ "files" ];
     };
   };
diff --git a/nixos/modules/config/power-management.nix b/nixos/modules/config/power-management.nix
index 64cdf50f141..cc0ff732ffa 100644
--- a/nixos/modules/config/power-management.nix
+++ b/nixos/modules/config/power-management.nix
@@ -94,7 +94,7 @@ in
         after = [ "suspend.target" "hibernate.target" "hybrid-sleep.target" ];
         script =
           ''
-            ${config.systemd.package}/bin/systemctl try-restart post-resume.target
+            /run/current-system/systemd/bin/systemctl try-restart post-resume.target
             ${cfg.resumeCommands}
             ${cfg.powerUpCommands}
           '';
diff --git a/nixos/modules/config/resolvconf.nix b/nixos/modules/config/resolvconf.nix
index cc202bca6c4..cd0ed491383 100644
--- a/nixos/modules/config/resolvconf.nix
+++ b/nixos/modules/config/resolvconf.nix
@@ -21,7 +21,7 @@ let
     '' + optionalString config.services.nscd.enable ''
       # Invalidate the nscd cache whenever resolv.conf is
       # regenerated.
-      libc_restart='${pkgs.systemd}/bin/systemctl try-restart --no-block nscd.service 2> /dev/null'
+      libc_restart='/run/current-system/systemd/bin/systemctl try-restart --no-block nscd.service 2> /dev/null'
     '' + optionalString (length resolvconfOptions > 0) ''
       # Options as described in resolv.conf(5)
       resolv_conf_options='${concatStringsSep " " resolvconfOptions}'
diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix
index 4100ec89701..b3c5c6f93f3 100644
--- a/nixos/modules/config/system-path.nix
+++ b/nixos/modules/config/system-path.nix
@@ -8,8 +8,7 @@ with lib;
 let
 
   requiredPackages = map (pkg: setPrio ((pkg.meta.priority or 5) + 3) pkg)
-    [ config.nix.package
-      pkgs.acl
+    [ pkgs.acl
       pkgs.attr
       pkgs.bashInteractive # bash with ncurses support
       pkgs.bzip2
@@ -33,16 +32,13 @@ let
       pkgs.nano
       pkgs.ncurses
       pkgs.netcat
-      pkgs.nix-info
       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
     ];
 
 in
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 141e43fec39..56b7af98b61 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
@@ -477,14 +493,6 @@ in {
       '';
     };
 
-    # 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,65 @@ 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) (
+        flip mapAttrsToList cfg.users (name: user:
+        # This regex matches a subset of the Modular Crypto Format (MCF)[1]
+        # informal standard. Since this depends largely on the OS or the
+        # specific implementation of crypt(3) we only support the (sane)
+        # schemes implemented by glibc and BSDs. In particular the original
+        # DES hash is excluded since, having no structure, it would validate
+        # common mistakes like typing the plaintext password.
+        #
+        # [1]: https://en.wikipedia.org/wiki/Crypt_(C)
+        let
+          sep = "\\$";
+          base64 = "[a-zA-Z0-9./]+";
+          id = "[a-z0-9-]+";
+          value = "[a-zA-Z0-9/+.-]+";
+          options = "${id}(=${value})?(,${id}=${value})*";
+          scheme  = "${id}(${sep}${options})?";
+          content = "${base64}${sep}${base64}";
+          mcf = "^${sep}${scheme}${sep}${content}$";
+        in
+        if (allowsLogin user.hashedPassword
+            && user.hashedPassword != ""  # login without password
+            && builtins.match mcf user.hashedPassword == null)
+        then ''
+          The password hash of user "${name}" may be invalid. You must set a
+          valid hash or the user will be locked out of their account. Please
+          check the value of option `users.users."${name}".hashedPassword`.''
+        else null
+      ));
 
   };
 
diff --git a/nixos/modules/config/zram.nix b/nixos/modules/config/zram.nix
index 5d411c73a56..5e9870bf6b1 100644
--- a/nixos/modules/config/zram.nix
+++ b/nixos/modules/config/zram.nix
@@ -91,7 +91,7 @@ in
       };
 
       algorithm = mkOption {
-        default = "lzo";
+        default = "zstd";
         example = "lz4";
         type = with types; either (enum [ "lzo" "lz4" "zstd" ]) str;
         description = ''
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/device-tree.nix b/nixos/modules/hardware/device-tree.nix
index cf553497c89..b3f1dda98c8 100644
--- a/nixos/modules/hardware/device-tree.nix
+++ b/nixos/modules/hardware/device-tree.nix
@@ -22,11 +22,22 @@ in {
           example = literalExample "pkgs.device-tree_rpi";
           type = types.path;
           description = ''
-            The package containing the base device-tree (.dtb) to boot. Contains
+            The path containing the base device-tree (.dtb) to boot. Contains
             device trees bundled with the Linux kernel by default.
           '';
         };
 
+        name = mkOption {
+          default = null;
+          example = "some-dtb.dtb";
+          type = types.nullOr types.str;
+          description = ''
+            The name of an explicit dtb to be loaded, relative to the dtb base.
+            Useful in extlinux scenarios if the bootloader doesn't pick the
+            right .dtb file from FDTDIR.
+          '';
+        };
+
         overlays = mkOption {
           default = [];
           example = literalExample
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/printers.nix b/nixos/modules/hardware/printers.nix
index 56b91933477..752de41f26d 100644
--- a/nixos/modules/hardware/printers.nix
+++ b/nixos/modules/hardware/printers.nix
@@ -84,7 +84,7 @@ in {
             model = mkOption {
               type = types.str;
               example = literalExample ''
-                gutenprint.''${lib.version.majorMinor (lib.getVersion pkgs.cups)}://brother-hl-5140/expert
+                gutenprint.''${lib.versions.majorMinor (lib.getVersion pkgs.gutenprint)}://brother-hl-5140/expert
               '';
               description = ''
                 Location of the ppd driver file for the printer.
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 cce7cc235ec..405fbfa10db 100644
--- a/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -413,10 +413,18 @@ in
       default = false;
       description = ''
         Whether the ISO image should be compressed using
-        <command>bzip2</command>.
+        <command>zstd</command>.
       '';
     };
 
+    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-aarch64.nix b/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix
index 2d34406a032..bef6cd2fb5a 100644
--- a/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix
+++ b/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix
@@ -2,12 +2,6 @@
 # nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-aarch64.nix -A config.system.build.sdImage
 { config, lib, pkgs, ... }:
 
-let
-  extlinux-conf-builder =
-    import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
-      pkgs = pkgs.buildPackages;
-    };
-in
 {
   imports = [
     ../../profiles/base.nix
@@ -56,7 +50,7 @@ in
       '';
     populateRootCommands = ''
       mkdir -p ./files/boot
-      ${extlinux-conf-builder} -t 3 -c ${config.system.build.toplevel} -d ./files/boot
+      ${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
     '';
   };
 
diff --git a/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix b/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix
index 651d1a36dc1..d2ba611532e 100644
--- a/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix
+++ b/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix
@@ -2,12 +2,6 @@
 # nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix -A config.system.build.sdImage
 { config, lib, pkgs, ... }:
 
-let
-  extlinux-conf-builder =
-    import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
-      pkgs = pkgs.buildPackages;
-    };
-in
 {
   imports = [
     ../../profiles/base.nix
@@ -53,7 +47,7 @@ in
       '';
     populateRootCommands = ''
       mkdir -p ./files/boot
-      ${extlinux-conf-builder} -t 3 -c ${config.system.build.toplevel} -d ./files/boot
+      ${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
     '';
   };
 
diff --git a/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix b/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix
index ba4127eaa0e..40a01f96177 100644
--- a/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix
+++ b/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix
@@ -2,12 +2,6 @@
 # nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix -A config.system.build.sdImage
 { config, lib, pkgs, ... }:
 
-let
-  extlinux-conf-builder =
-    import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
-      pkgs = pkgs.buildPackages;
-    };
-in
 {
   imports = [
     ../../profiles/base.nix
@@ -42,7 +36,7 @@ in
       '';
     populateRootCommands = ''
       mkdir -p ./files/boot
-      ${extlinux-conf-builder} -t 3 -c ${config.system.build.toplevel} -d ./files/boot
+      ${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
     '';
   };
 
diff --git a/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix b/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
index c545a1e7e24..79c835dc390 100644
--- a/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
+++ b/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
@@ -18,6 +18,7 @@
 
   sdImage = {
     firmwareSize = 128;
+    firmwarePartitionName = "NIXOS_BOOT";
     # This is a hack to avoid replicating config.txt from boot.loader.raspberryPi
     populateFirmwareCommands =
       "${config.system.build.installBootLoader} ${config.system.build.toplevel} -d ./firmware";
@@ -25,6 +26,12 @@
     populateRootCommands = "";
   };
 
+  fileSystems."/boot/firmware" = {
+    # This effectively "renames" the loaOf entry set in sd-image.nix
+    mountPoint = "/boot";
+    neededForBoot = true;
+  };
+
   # the installation media is also the installation target,
   # so we don't want to provide the installation configuration.nix.
   installer.cloneConfig = false;
diff --git a/nixos/modules/installer/cd-dvd/sd-image.nix b/nixos/modules/installer/cd-dvd/sd-image.nix
index 901c60befb6..ddad1116c94 100644
--- a/nixos/modules/installer/cd-dvd/sd-image.nix
+++ b/nixos/modules/installer/cd-dvd/sd-image.nix
@@ -63,12 +63,20 @@ in
       '';
     };
 
+    firmwarePartitionName = mkOption {
+      type = types.str;
+      default = "FIRMWARE";
+      description = ''
+        Name of the filesystem which holds the boot firmware.
+      '';
+    };
+
     rootPartitionUUID = mkOption {
       type = types.nullOr types.str;
       default = null;
       example = "14e19a7b-0ae0-484d-9d54-43bd6fdc20c7";
       description = ''
-        UUID for the main NixOS partition on the SD card.
+        UUID for the filesystem on the main NixOS partition on the SD card.
       '';
     };
 
@@ -91,7 +99,7 @@ in
     };
 
     populateRootCommands = mkOption {
-      example = literalExample "''\${extlinux-conf-builder} -t 3 -c \${config.system.build.toplevel} -d ./files/boot''";
+      example = literalExample "''\${config.boot.loader.generic-extlinux-compatible.populateCmd} -c \${config.system.build.toplevel} -d ./files/boot''";
       description = ''
         Shell commands to populate the ./files directory.
         All files in that directory are copied to the
@@ -105,7 +113,7 @@ in
       default = true;
       description = ''
         Whether the SD image should be compressed using
-        <command>bzip2</command>.
+        <command>zstd</command>.
       '';
     };
 
@@ -114,7 +122,7 @@ in
   config = {
     fileSystems = {
       "/boot/firmware" = {
-        device = "/dev/disk/by-label/FIRMWARE";
+        device = "/dev/disk/by-label/${config.sdImage.firmwarePartitionName}";
         fsType = "vfat";
         # Alternatively, this could be removed from the configuration.
         # The filesystem is not needed at runtime, it could be treated
@@ -130,10 +138,10 @@ in
     sdImage.storePaths = [ config.system.build.toplevel ];
 
     system.build.sdImage = pkgs.callPackage ({ stdenv, dosfstools, e2fsprogs,
-    mtools, libfaketime, utillinux, bzip2, zstd }: stdenv.mkDerivation {
+    mtools, libfaketime, utillinux, zstd }: stdenv.mkDerivation {
       name = config.sdImage.imageName;
 
-      nativeBuildInputs = [ dosfstools e2fsprogs mtools libfaketime utillinux bzip2 zstd ];
+      nativeBuildInputs = [ dosfstools e2fsprogs mtools libfaketime utillinux zstd ];
 
       inherit (config.sdImage) compressImage;
 
@@ -143,7 +151,7 @@ in
 
         echo "${pkgs.stdenv.buildPlatform.system}" > $out/nix-support/system
         if test -n "$compressImage"; then
-          echo "file sd-image $img.bz2" >> $out/nix-support/hydra-build-products
+          echo "file sd-image $img.zst" >> $out/nix-support/hydra-build-products
         else
           echo "file sd-image $img" >> $out/nix-support/hydra-build-products
         fi
@@ -178,7 +186,7 @@ in
         # Create a FAT32 /boot/firmware partition of suitable size into firmware_part.img
         eval $(partx $img -o START,SECTORS --nr 1 --pairs)
         truncate -s $((SECTORS * 512)) firmware_part.img
-        faketime "1970-01-01 00:00:00" mkfs.vfat -i ${config.sdImage.firmwarePartitionID} -n FIRMWARE firmware_part.img
+        faketime "1970-01-01 00:00:00" mkfs.vfat -i ${config.sdImage.firmwarePartitionID} -n ${config.sdImage.firmwarePartitionName} firmware_part.img
 
         # Populate the files intended for /boot/firmware
         mkdir firmware
@@ -190,7 +198,7 @@ in
         fsck.vfat -vn firmware_part.img
         dd conv=notrunc if=firmware_part.img of=$img seek=$START count=$SECTORS
         if test -n "$compressImage"; then
-            bzip2 $img
+            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 842976c3574..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/8928ygfyf9iassfrnj76v55s6zid58ja-nix-2.3.4";
-  i686-linux = "/nix/store/b5cx3nmba9ahx3wk5ybxa67k40pdpdxn-nix-2.3.4";
-  aarch64-linux = "/nix/store/p6j4mis6agdjlk4j0cyg7yh58wpm3kif-nix-2.3.4";
-  x86_64-darwin = "/nix/store/aizhr07dljmlbf17wfrj40x3s0b5iv3d-nix-2.3.4";
+  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 422c405054d..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;';
     }
 }
 
@@ -628,6 +628,7 @@ EOF
         write_file($fn, <<EOF);
 @configuration@
 EOF
+        print STDERR "For more hardware-specific settings, see https://github.com/NixOS/nixos-hardware"
     } else {
         print STDERR "warning: not overwriting existing $fn\n";
     }
diff --git a/nixos/modules/installer/tools/nixos-install.sh b/nixos/modules/installer/tools/nixos-install.sh
index 1bccbbfaf24..e0252befdfd 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
@@ -71,6 +71,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
diff --git a/nixos/modules/installer/tools/nixos-rebuild.sh b/nixos/modules/installer/tools/nixos-rebuild.sh
index 354274478a3..437199bae1d 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
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..1582f049309 100644
--- a/nixos/modules/installer/tools/tools.nix
+++ b/nixos/modules/installer/tools/tools.nix
@@ -14,11 +14,13 @@ 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 ];
   };
@@ -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/documentation.nix b/nixos/modules/misc/documentation.nix
index 7ad4be9a02e..71a40b4f4d6 100644
--- a/nixos/modules/misc/documentation.nix
+++ b/nixos/modules/misc/documentation.nix
@@ -102,6 +102,16 @@ in
         '';
       };
 
+      man.generateCaches = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to generate the manual page index caches using
+          <literal>mandb(8)</literal>. This allows searching for a page or
+          keyword using utilities like <literal>apropos(1)</literal>.
+        '';
+      };
+
       info.enable = mkOption {
         type = types.bool;
         default = true;
@@ -187,7 +197,33 @@ in
       environment.systemPackages = [ pkgs.man-db ];
       environment.pathsToLink = [ "/share/man" ];
       environment.extraOutputsToInstall = [ "man" ] ++ optional cfg.dev.enable "devman";
-      environment.etc."man.conf".source = "${pkgs.man-db}/etc/man_db.conf";
+      environment.etc."man_db.conf".text =
+        let
+          manualPages = pkgs.buildEnv {
+            name = "man-paths";
+            paths = config.environment.systemPackages;
+            pathsToLink = [ "/share/man" ];
+            extraOutputsToInstall = ["man"];
+            ignoreCollisions = true;
+          };
+          manualCache = pkgs.runCommandLocal "man-cache" { }
+          ''
+            echo "MANDB_MAP ${manualPages}/share/man $out" > man.conf
+            ${pkgs.man-db}/bin/mandb -C man.conf -psc
+          '';
+        in
+        ''
+          # Manual pages paths for NixOS
+          MANPATH_MAP /run/current-system/sw/bin /run/current-system/sw/share/man
+          MANPATH_MAP /run/wrappers/bin          /run/current-system/sw/share/man
+
+          ${optionalString cfg.man.generateCaches ''
+          # Generated manual pages cache for NixOS (immutable)
+          MANDB_MAP /run/current-system/sw/share/man ${manualCache}
+          ''}
+          # Manual pages caches for NixOS
+          MANDB_MAP /run/current-system/sw/share/man /var/cache/man/nixos
+        '';
     })
 
     (mkIf cfg.info.enable {
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index 85e5534e906..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;
@@ -239,7 +239,6 @@ in
       shout = 206;
       gateone = 207;
       namecoin = 208;
-      dnschain = 209;
       #lxd = 210; # unused
       kibana = 211;
       xtreemfs = 212;
@@ -248,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;
@@ -322,7 +321,7 @@ in
       monetdb = 290;
       restic = 291;
       openvpn = 292;
-      meguca = 293;
+      # meguca = 293; # removed 2020-08-21
       yarn = 294;
       hdfs = 295;
       mapred = 296;
@@ -346,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!
 
@@ -549,7 +549,6 @@ in
       #shout = 206; #unused
       gateone = 207;
       namecoin = 208;
-      #dnschain = 209; #unused
       lxd = 210; # unused
       #kibana = 211;
       xtreemfs = 212;
@@ -623,7 +622,7 @@ in
       monetdb = 290;
       restic = 291;
       openvpn = 292;
-      meguca = 293;
+      # meguca = 293; # removed 2020-08-21
       yarn = 294;
       hdfs = 295;
       mapred = 296;
@@ -647,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/module-list.nix b/nixos/modules/module-list.nix
index 40904ef0c17..df68b8ceb04 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
@@ -126,6 +127,7 @@
   ./programs/gpaste.nix
   ./programs/gnupg.nix
   ./programs/gphoto2.nix
+  ./programs/hamster.nix
   ./programs/iftop.nix
   ./programs/iotop.nix
   ./programs/java.nix
@@ -153,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
@@ -297,6 +300,7 @@
   ./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
@@ -327,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
@@ -334,6 +339,7 @@
   ./services/games/minecraft-server.nix
   ./services/games/minetest-server.nix
   ./services/games/openarena.nix
+  ./services/games/teeworlds.nix
   ./services/games/terraria.nix
   ./services/hardware/acpid.nix
   ./services/hardware/actkbd.nix
@@ -361,7 +367,6 @@
   ./services/hardware/throttled.nix
   ./services/hardware/trezord.nix
   ./services/hardware/triggerhappy.nix
-  ./services/hardware/u2f.nix
   ./services/hardware/udev.nix
   ./services/hardware/udisks2.nix
   ./services/hardware/upower.nix
@@ -415,6 +420,7 @@
   ./services/misc/apache-kafka.nix
   ./services/misc/autofs.nix
   ./services/misc/autorandr.nix
+  ./services/misc/bazarr.nix
   ./services/misc/beanstalkd.nix
   ./services/misc/bees.nix
   ./services/misc/bepasty.nix
@@ -460,12 +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
@@ -481,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
@@ -506,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
@@ -585,6 +592,7 @@
   ./services/networking/autossh.nix
   ./services/networking/bird.nix
   ./services/networking/bitlbee.nix
+  ./services/networking/blockbook-frontend.nix
   ./services/networking/charybdis.nix
   ./services/networking/cjdns.nix
   ./services/networking/cntlm.nix
@@ -598,13 +606,14 @@
   ./services/networking/dhcpcd.nix
   ./services/networking/dhcpd.nix
   ./services/networking/dnscache.nix
-  ./services/networking/dnschain.nix
   ./services/networking/dnscrypt-proxy2.nix
   ./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
   ./services/networking/eternal-terminal.nix
   ./services/networking/fakeroute.nix
   ./services/networking/ferm.nix
@@ -620,6 +629,7 @@
   ./services/networking/gdomap.nix
   ./services/networking/git-daemon.nix
   ./services/networking/gnunet.nix
+  ./services/networking/go-neb.nix
   ./services/networking/go-shadowsocks2.nix
   ./services/networking/gogoclient.nix
   ./services/networking/gvpe.nix
@@ -635,6 +645,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
@@ -663,6 +675,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
@@ -680,6 +693,7 @@
   ./services/networking/ocserv.nix
   ./services/networking/ofono.nix
   ./services/networking/oidentd.nix
+  ./services/networking/onedrive.nix
   ./services/networking/openfire.nix
   ./services/networking/openvpn.nix
   ./services/networking/ostinato.nix
@@ -752,6 +766,7 @@
   ./services/networking/v2ray.nix
   ./services/networking/vsftpd.nix
   ./services/networking/wakeonlan.nix
+  ./services/networking/wasabibackend.nix
   ./services/networking/websockify.nix
   ./services/networking/wg-quick.nix
   ./services/networking/wicd.nix
@@ -768,10 +783,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
@@ -792,6 +805,7 @@
   ./services/security/nginx-sso.nix
   ./services/security/oauth2_proxy.nix
   ./services/security/oauth2_proxy_nginx.nix
+  ./services/security/privacyidea.nix
   ./services/security/physlock.nix
   ./services/security/shibboleth-sp.nix
   ./services/security/sks.nix
@@ -801,7 +815,7 @@
   ./services/security/torsocks.nix
   ./services/security/usbguard.nix
   ./services/security/vault.nix
-  ./services/system/cgmanager.nix
+  ./services/security/yubikey-agent.nix
   ./services/system/cloud-init.nix
   ./services/system/dbus.nix
   ./services/system/earlyoom.nix
@@ -815,18 +829,22 @@
   ./services/torrent/magnetico.nix
   ./services/torrent/opentracker.nix
   ./services/torrent/peerflix.nix
+  ./services/torrent/rtorrent.nix
   ./services/torrent/transmission.nix
   ./services/ttys/agetty.nix
   ./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
   ./services/web-apps/codimd.nix
+  ./services/web-apps/convos.nix
   ./services/web-apps/cryptpad.nix
   ./services/web-apps/documize.nix
   ./services/web-apps/dokuwiki.nix
+  ./services/web-apps/engelsystem.nix
   ./services/web-apps/frab.nix
   ./services/web-apps/gerrit.nix
   ./services/web-apps/gotify-server.nix
@@ -835,6 +853,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
@@ -846,6 +865,8 @@
   ./services/web-apps/matomo.nix
   ./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
@@ -866,9 +887,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
@@ -903,6 +924,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
@@ -926,6 +948,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
@@ -1001,7 +1024,6 @@
   ./virtualisation/podman.nix
   ./virtualisation/qemu-guest-agent.nix
   ./virtualisation/railcar.nix
-  ./virtualisation/rkt.nix
   ./virtualisation/virtualbox-guest.nix
   ./virtualisation/virtualbox-host.nix
   ./virtualisation/vmware-guest.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/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/bash/bash.nix b/nixos/modules/programs/bash/bash.nix
index be964ce7f3f..1b3254b54a5 100644
--- a/nixos/modules/programs/bash/bash.nix
+++ b/nixos/modules/programs/bash/bash.nix
@@ -238,9 +238,6 @@ in
       "/share/bash-completion"
     ];
 
-    environment.systemPackages = optional cfg.enableCompletion
-      pkgs.nix-bash-completions;
-
     environment.shells =
       [ "/run/current-system/sw/bin/bash"
         "/run/current-system/sw/bin/sh"
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/chromium.nix b/nixos/modules/programs/chromium.nix
index 16c063ebc89..3f042913619 100644
--- a/nixos/modules/programs/chromium.nix
+++ b/nixos/modules/programs/chromium.nix
@@ -69,11 +69,24 @@ in
       extraOpts = mkOption {
         type = types.attrs;
         description = ''
-          Extra chromium policy options, see
-          <link xlink:href="https://www.chromium.org/administrators/policy-list-3">https://www.chromium.org/administrators/policy-list-3</link>
-          for a list of avalible options
+          Extra chromium policy options. A list of available policies
+          can be found in the Chrome Enterprise documentation:
+          <link xlink:href="https://cloud.google.com/docs/chrome-enterprise/policies/">https://cloud.google.com/docs/chrome-enterprise/policies/</link>
+          Make sure the selected policy is supported on Linux and your browser version.
         '';
         default = {};
+        example = literalExample ''
+          {
+            "BrowserSignin" = 0;
+            "SyncDisabled" = true;
+            "PasswordManagerEnabled" = false;
+            "SpellcheckEnabled" = true;
+            "SpellcheckLanguage" = [
+                                     "de"
+                                     "en-US"
+                                   ];
+          }
+        '';
       };
     };
   };
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/fish.nix b/nixos/modules/programs/fish.nix
index 48b324a0fe8..39b92edf2ac 100644
--- a/nixos/modules/programs/fish.nix
+++ b/nixos/modules/programs/fish.nix
@@ -102,6 +102,9 @@ in
 
     programs.fish.shellAliases = mapAttrs (name: mkDefault) cfge.shellAliases;
 
+    # Required for man completions
+    documentation.man.generateCaches = true;
+
     environment.etc."fish/foreign-env/shellInit".text = cfge.shellInit;
     environment.etc."fish/foreign-env/loginShellInit".text = cfge.loginShellInit;
     environment.etc."fish/foreign-env/interactiveShellInit".text = cfge.interactiveShellInit;
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/hamster.nix b/nixos/modules/programs/hamster.nix
new file mode 100644
index 00000000000..b2f4a82b260
--- /dev/null
+++ b/nixos/modules/programs/hamster.nix
@@ -0,0 +1,15 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+{
+  meta.maintainers = pkgs.hamster.meta.maintainers;
+
+  options.programs.hamster.enable =
+    mkEnableOption "Whether to enable hamster time tracking.";
+
+  config = lib.mkIf config.programs.hamster.enable {
+    environment.systemPackages = [ pkgs.hamster ];
+    services.dbus.packages = [ pkgs.hamster ];
+  };
+}
diff --git a/nixos/modules/programs/shadow.nix b/nixos/modules/programs/shadow.nix
index fc352795c01..386ded9d98b 100644
--- a/nixos/modules/programs/shadow.nix
+++ b/nixos/modules/programs/shadow.nix
@@ -114,8 +114,9 @@ in
       newgrp.source    = "${pkgs.shadow.out}/bin/newgrp";
       newuidmap.source = "${pkgs.shadow.out}/bin/newuidmap";
       newgidmap.source = "${pkgs.shadow.out}/bin/newgidmap";
-    } // (if config.users.mutableUsers then {
+    } // lib.optionalAttrs config.users.mutableUsers {
+      chsh.source      = "${pkgs.shadow.out}/bin/chsh";
       passwd.source    = "${pkgs.shadow.out}/bin/passwd";
-    } else {});
+    };
   };
 }
diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix
index 44e65ee8a9a..a983ffa4b89 100644
--- a/nixos/modules/programs/ssh.nix
+++ b/nixos/modules/programs/ssh.nix
@@ -194,6 +194,33 @@ in
         '';
       };
 
+      kexAlgorithms = mkOption {
+        type = types.nullOr (types.listOf types.str);
+        default = null;
+        example = [ "curve25519-sha256@libssh.org" "diffie-hellman-group-exchange-sha256" ];
+        description = ''
+          Specifies the available KEX (Key Exchange) algorithms.
+        '';
+      };
+
+      ciphers = mkOption {
+        type = types.nullOr (types.listOf types.str);
+        default = null;
+        example = [ "chacha20-poly1305@openssh.com" "aes256-gcm@openssh.com" ];
+        description = ''
+          Specifies the ciphers allowed and their order of preference.
+        '';
+      };
+
+      macs = mkOption {
+        type = types.nullOr (types.listOf types.str);
+        default = null;
+        example = [ "hmac-sha2-512-etm@openssh.com" "hmac-sha1" ];
+        description = ''
+          Specifies the MAC (message authentication code) algorithms in order of preference. The MAC algorithm is used
+          for data integrity protection.
+        '';
+      };
     };
 
   };
@@ -232,6 +259,9 @@ in
 
         ${optionalString (cfg.pubkeyAcceptedKeyTypes != []) "PubkeyAcceptedKeyTypes ${concatStringsSep "," cfg.pubkeyAcceptedKeyTypes}"}
         ${optionalString (cfg.hostKeyAlgorithms != []) "HostKeyAlgorithms ${concatStringsSep "," cfg.hostKeyAlgorithms}"}
+        ${optionalString (cfg.kexAlgorithms != null) "KexAlgorithms ${concatStringsSep "," cfg.kexAlgorithms}"}
+        ${optionalString (cfg.ciphers != null) "Ciphers ${concatStringsSep "," cfg.ciphers}"}
+        ${optionalString (cfg.macs != null) "MACs ${concatStringsSep "," cfg.macs}"}
       '';
 
     environment.etc."ssh/ssh_known_hosts".text = knownHostsText;
diff --git a/nixos/modules/programs/ssmtp.nix b/nixos/modules/programs/ssmtp.nix
index c7a94739349..15d2750c193 100644
--- a/nixos/modules/programs/ssmtp.nix
+++ b/nixos/modules/programs/ssmtp.nix
@@ -21,9 +21,11 @@ in
     (mkRenamedOptionModule [ "networking" "defaultMailServer" "useTLS" ] [ "services" "ssmtp" "useTLS" ])
     (mkRenamedOptionModule [ "networking" "defaultMailServer" "useSTARTTLS" ] [ "services" "ssmtp" "useSTARTTLS" ])
     (mkRenamedOptionModule [ "networking" "defaultMailServer" "authUser" ] [ "services" "ssmtp" "authUser" ])
-    (mkRenamedOptionModule [ "networking" "defaultMailServer" "authPass" ] [ "services" "ssmtp" "authPass" ])
     (mkRenamedOptionModule [ "networking" "defaultMailServer" "authPassFile" ] [ "services" "ssmtp" "authPassFile" ])
     (mkRenamedOptionModule [ "networking" "defaultMailServer" "setSendmail" ] [ "services" "ssmtp" "setSendmail" ])
+
+    (mkRemovedOptionModule [ "networking" "defaultMailServer" "authPass" ] "authPass has been removed since it leaks the clear-text password into the world-readable store. Use authPassFile instead and make sure it's not a store path")
+    (mkRemovedOptionModule [ "services" "ssmtp" "authPass" ] "authPass has been removed since it leaks the clear-text password into the world-readable store. Use authPassFile instead and make sure it's not a store path")
   ];
 
   options = {
@@ -45,6 +47,21 @@ in
         '';
       };
 
+      settings = mkOption {
+        type = with types; attrsOf (oneOf [ bool str ]);
+        default = {};
+        description = ''
+          <citerefentry><refentrytitle>ssmtp</refentrytitle><manvolnum>5</manvolnum></citerefentry> configuration. Refer
+          to <link xlink:href="https://linux.die.net/man/5/ssmtp.conf"/> for details on supported values.
+        '';
+        example = literalExample ''
+          {
+            Debug = true;
+            FromLineOverride = false;
+          }
+        '';
+      };
+
       hostName = mkOption {
         type = types.str;
         example = "mail.example.org";
@@ -101,18 +118,6 @@ in
         '';
       };
 
-      authPass = mkOption {
-        type = types.str;
-        default = "";
-        example = "correctHorseBatteryStaple";
-        description = ''
-          Password used for SMTP auth. (STORED PLAIN TEXT, WORLD-READABLE IN NIX STORE)
-
-          It's recommended to use <option>authPassFile</option>
-          which takes precedence over <option>authPass</option>.
-        '';
-      };
-
       authPassFile = mkOption {
         type = types.nullOr types.str;
         default = null;
@@ -121,11 +126,6 @@ in
           Path to a file that contains the password used for SMTP auth. The file
           should not contain a trailing newline, if the password does not contain one.
           This file should be readable by the users that need to execute ssmtp.
-
-          <option>authPassFile</option> takes precedence over <option>authPass</option>.
-
-          Warning: when <option>authPass</option> is non-empty <option>authPassFile</option>
-          defaults to a file in the WORLD-READABLE Nix store containing that password.
         '';
       };
 
@@ -142,25 +142,28 @@ in
 
   config = mkIf cfg.enable {
 
-    services.ssmtp.authPassFile = mkIf (cfg.authPass != "")
-      (mkDefault (toString (pkgs.writeTextFile {
-        name = "ssmtp-authpass";
-        text = cfg.authPass;
-      })));
-
-    environment.etc."ssmtp/ssmtp.conf".text =
-      let yesNo = yes : if yes then "YES" else "NO"; in
-      ''
-        MailHub=${cfg.hostName}
-        FromLineOverride=YES
-        ${optionalString (cfg.root   != "") "root=${cfg.root}"}
-        ${optionalString (cfg.domain != "") "rewriteDomain=${cfg.domain}"}
-        UseTLS=${yesNo cfg.useTLS}
-        UseSTARTTLS=${yesNo cfg.useSTARTTLS}
-        #Debug=YES
-        ${optionalString (cfg.authUser != "")       "AuthUser=${cfg.authUser}"}
-        ${optionalString (cfg.authPassFile != null) "AuthPassFile=${cfg.authPassFile}"}
-      '';
+    services.ssmtp.settings = mkMerge [
+      ({
+        MailHub = cfg.hostName;
+        FromLineOverride = mkDefault true;
+        UseTLS = cfg.useTLS;
+        UseSTARTTLS = cfg.useSTARTTLS;
+      })
+      (mkIf (cfg.root != "") { root = cfg.root; })
+      (mkIf (cfg.domain != "") { rewriteDomain = cfg.domain; })
+      (mkIf (cfg.authUser != "") { AuthUser = cfg.authUser; })
+      (mkIf (cfg.authPassFile != null) { AuthPassFile = cfg.authPassFile; })
+    ];
+
+    environment.etc."ssmtp/ssmtp.conf".source =
+      let
+        toStr = value:
+          if value == true then "YES"
+          else if value == false then "NO"
+          else builtins.toString value
+        ;
+      in
+        pkgs.writeText "ssmtp.conf" (concatStringsSep "\n" (mapAttrsToList (key: value: "${key}=${toStr value}") cfg.settings));
 
     environment.systemPackages = [pkgs.ssmtp];
 
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/zsh/zsh.nix b/nixos/modules/programs/zsh/zsh.nix
index 930cc1987a3..049a315c762 100644
--- a/nixos/modules/programs/zsh/zsh.nix
+++ b/nixos/modules/programs/zsh/zsh.nix
@@ -135,6 +135,13 @@ in
         type = types.bool;
       };
 
+      enableBashCompletion = mkOption {
+        default = false;
+        description = ''
+          Enable compatibility with bash's programmable completion system.
+        '';
+        type = types.bool;
+      };
 
       enableGlobalCompInit = mkOption {
         default = cfg.enableCompletion;
@@ -239,6 +246,11 @@ in
           autoload -U compinit && compinit
         ''}
 
+        ${optionalString cfg.enableBashCompletion ''
+          # Enable compatibility with bash's completion system.
+          autoload -U bashcompinit && bashcompinit
+        ''}
+
         # Setup custom interactive shell init stuff.
         ${cfge.interactiveShellInit}
 
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index a946268494e..1fe00e9142b 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -17,16 +17,22 @@ 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" "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")
     (mkRemovedOptionModule [ "services" "beegfsEnable" ] "The BeeGFS module has been removed")
     (mkRemovedOptionModule [ "services" "beegfs" ] "The BeeGFS module has been removed")
+    (mkRemovedOptionModule ["services" "cgmanager" "enable"] "cgmanager was deprecated by lxc and therefore removed from nixpkgs.")
     (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" ] ''
@@ -38,21 +44,29 @@ 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
       systemd-logind API). Instead of using the module you can now
       simply add the brightnessctl package to environment.systemPackages.
     '')
+    (mkRemovedOptionModule [ "virtualisation" "rkt" ] "The rkt module has been removed, it was archived by upstream")
 
     (mkRemovedOptionModule ["services" "prey" ] ''
       prey-bash-client is deprecated upstream
     '')
 
+    (mkRemovedOptionModule ["hardware" "u2f" ] ''
+      The U2F modules module was removed, as all it did was adding the
+      udev rules from libu2f-host to the system. Udev gained native support
+      to handle FIDO security tokens, so this isn't necessary anymore.
+    '')
+
     # Do NOT add any option renames here, see top of the file
   ];
 }
diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix
index 776ef07d716..29635dbe864 100644
--- a/nixos/modules/security/acme.nix
+++ b/nixos/modules/security/acme.nix
@@ -23,16 +23,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 {
@@ -103,7 +103,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 +113,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 +123,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 +150,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,6 +165,14 @@ let
           Additional flags to pass to lego renew.
         '';
       };
+
+      extraLegoRunFlags = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          Additional flags to pass to lego run.
+        '';
+      };
     };
   };
 
@@ -169,7 +185,7 @@ in
     (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 =
+      To use Let's Encrypt's staging server, use security.acme.server =
       "https://acme-staging-v02.api.letsencrypt.org/directory".
     ''
     )
@@ -207,9 +223,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 +246,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/"/>.
         '';
       };
 
@@ -302,20 +318,27 @@ in
                 lpath = "acme/${cert}";
                 apath = "/var/lib/${lpath}";
                 spath = "/var/lib/acme/.lego/${cert}";
+                keyName = builtins.replaceStrings ["*"] ["_"] data.domain;
+                requestedDomains = pipe ([ data.domain ] ++ (attrNames data.extraDomains)) [
+                  (domains: sort builtins.lessThan domains)
+                  (domains: concatStringsSep "," domains)
+                ];
                 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)];
+                          ++ optionals (cfg.server != null || data.server != null) ["--server" (if data.server == null then cfg.server else data.server)]
+                          ++ data.extraLegoFlags;
                 certOpts = optionals data.ocspMustStaple [ "--must-staple" ];
-                runOpts = escapeShellArgs (globalOpts ++ [ "run" ] ++ certOpts);
+                runOpts = escapeShellArgs (globalOpts ++ [ "run" ] ++ certOpts ++ data.extraLegoRunFlags);
                 renewOpts = escapeShellArgs (globalOpts ++
                   [ "renew" "--days" (toString cfg.validMinDays) ] ++
                   certOpts ++ data.extraLegoRenewFlags);
                 acmeService = {
                   description = "Renew ACME Certificate for ${cert}";
+                  path = with pkgs; [ openssl ];
                   after = [ "network.target" "network-online.target" ];
                   wants = [ "network-online.target" ];
                   wantedBy = mkIf (!config.boot.isContainer) [ "multi-user.target" ];
@@ -332,11 +355,18 @@ in
                     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}
+                      LEGO_ARGS=(${runOpts})
+                      if [ -e ${spath}/certificates/${keyName}.crt ]; then
+                        REQUESTED_DOMAINS="${requestedDomains}"
+                        EXISTING_DOMAINS="$(openssl x509 -in ${spath}/certificates/${keyName}.crt -noout -ext subjectAltName | tail -n1 | sed -e 's/ *DNS://g')"
+                        if [ "''${REQUESTED_DOMAINS}" == "''${EXISTING_DOMAINS}" ]; then
+                          LEGO_ARGS=(${renewOpts})
+                        fi
+                      fi
+                      ${pkgs.lego}/bin/lego ''${LEGO_ARGS[@]}
                     '';
                     ExecStartPost =
                       let
-                        keyName = builtins.replaceStrings ["*"] ["_"] data.domain;
                         script = pkgs.writeScript "acme-post-start" ''
                           #!${pkgs.runtimeShell} -e
                           cd ${apath}
diff --git a/nixos/modules/security/google_oslogin.nix b/nixos/modules/security/google_oslogin.nix
index 78c2089baeb..c2889a0f0d1 100644
--- a/nixos/modules/security/google_oslogin.nix
+++ b/nixos/modules/security/google_oslogin.nix
@@ -50,6 +50,7 @@ in
     # enable the nss module, so user lookups etc. work
     system.nssModules = [ package ];
     system.nssDatabases.passwd = [ "cache_oslogin" "oslogin" ];
+    system.nssDatabases.group = [ "cache_oslogin" "oslogin" ];
 
     # Ugly: sshd refuses to start if a store path is given because /nix/store is group-writable.
     # So indirect by a symlink.
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index e1a94b0121a..565c15dec24 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
@@ -436,6 +449,8 @@ let
               "session required ${pkgs.pam}/lib/security/pam_lastlog.so silent"}
           ${optionalString config.security.pam.enableEcryptfs
               "session optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so"}
+          ${optionalString cfg.pamMount
+              "session optional ${pkgs.pam_mount}/lib/security/pam_mount.so"}
           ${optionalString use_ldap
               "session optional ${pam_ldap}/lib/security/pam_ldap.so"}
           ${optionalString config.services.sssd.enable
@@ -452,8 +467,6 @@ let
               "session required ${pkgs.pam}/lib/security/pam_limits.so conf=${makeLimitsConf cfg.limits}"}
           ${optionalString (cfg.showMotd && config.users.motd != null)
               "session optional ${pkgs.pam}/lib/security/pam_motd.so motd=${motd}"}
-          ${optionalString cfg.pamMount
-              "session optional ${pkgs.pam_mount}/lib/security/pam_mount.so"}
           ${optionalString (cfg.enableAppArmor && config.security.apparmor.enable)
               "session optional ${pkgs.apparmor-pam}/lib/security/pam_apparmor.so order=user,group,default debug"}
           ${optionalString (cfg.enableKwallet)
@@ -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/sudo.nix b/nixos/modules/security/sudo.nix
index e3e43177def..1ed5269c5ae 100644
--- a/nixos/modules/security/sudo.nix
+++ b/nixos/modules/security/sudo.nix
@@ -173,7 +173,9 @@ in
 
   config = mkIf cfg.enable {
 
-    security.sudo.extraRules = [
+    # We `mkOrder 600` so that the default rule shows up first, but there is
+    # still enough room for a user to `mkBefore` it.
+    security.sudo.extraRules = mkOrder 600 [
       { groups = [ "wheel" ];
         commands = [ { command = "ALL"; options = (if cfg.wheelNeedsPassword then [ "SETENV" ] else [ "NOPASSWD" "SETENV" ]); } ];
       }
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..f40ea6be29d 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>
@@ -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/mpd.nix b/nixos/modules/services/audio/mpd.nix
index f4eb4a265a4..1d2a982ac53 100644
--- a/nixos/modules/services/audio/mpd.nix
+++ b/nixos/modules/services/audio/mpd.nix
@@ -21,6 +21,12 @@ let
 
     ${optionalString (cfg.network.listenAddress != "any") ''bind_to_address "${cfg.network.listenAddress}"''}
     ${optionalString (cfg.network.port != 6600)  ''port "${toString cfg.network.port}"''}
+    ${optionalString (cfg.fluidsynth) ''
+      decoder {
+              plugin "fluidsynth"
+              soundfont "${pkgs.soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2"
+      }
+    ''}
 
     ${cfg.extraConfig}
   '';
@@ -133,6 +139,14 @@ in {
           parameter is omitted from the configuration.
         '';
       };
+
+      fluidsynth = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          If set, add fluidsynth soundfont and configure the plugin.
+        '';
+      };
     };
 
   };
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/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/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/master.nix b/nixos/modules/services/continuous-integration/buildbot/master.nix
index e3da3092d45..e1950b91382 100644
--- a/nixos/modules/services/continuous-integration/buildbot/master.nix
+++ b/nixos/modules/services/continuous-integration/buildbot/master.nix
@@ -16,7 +16,7 @@ let
     factory = util.BuildFactory()
     c = BuildmasterConfig = dict(
      workers       = [${concatStringsSep "," cfg.workers}],
-     protocols     = { 'pb': {'port': ${toString cfg.bpPort} } },
+     protocols     = { 'pb': {'port': ${toString cfg.pbPort} } },
      title         = '${escapeStr cfg.title}',
      titleURL      = '${escapeStr cfg.titleUrl}',
      buildbotURL   = '${escapeStr cfg.buildbotUrl}',
@@ -25,7 +25,7 @@ let
      change_source = [ ${concatStringsSep "," cfg.changeSource} ],
      schedulers    = [ ${concatStringsSep "," cfg.schedulers} ],
      builders      = [ ${concatStringsSep "," cfg.builders} ],
-     status        = [ ${concatStringsSep "," cfg.status} ],
+     services      = [ ${concatStringsSep "," cfg.reporters} ],
     )
     for step in [ ${concatStringsSep "," cfg.factorySteps} ]:
       factory.addStep(step)
@@ -119,10 +119,10 @@ in {
         default = [ "worker.Worker('example-worker', 'pass')" ];
       };
 
-      status = mkOption {
+      reporters = mkOption {
         default = [];
         type = types.listOf types.str;
-        description = "List of status notification endpoints.";
+        description = "List of reporter objects used to present build status to various users.";
       };
 
       user = mkOption {
@@ -155,10 +155,20 @@ in {
         description = "Specifies the Buildbot directory.";
       };
 
-      bpPort = mkOption {
+      pbPort = mkOption {
         default = 9989;
-        type = types.int;
-        description = "Port where the master will listen to Buildbot Worker.";
+        type = types.either types.str types.int;
+        example = "'tcp:9990:interface=127.0.0.1'";
+        description = ''
+          The buildmaster will listen on a TCP port of your choosing
+          for connections from workers.
+          It can also use this port for connections from remote Change Sources,
+          status clients, and debug tools.
+          This port should be visible to the outside world, and you’ll need to tell
+          your worker admins about your choice.
+          If put in (single) quotes, this can also be used as a connection string,
+          as defined in the <link xlink:href="https://twistedmatrix.com/documents/current/core/howto/endpoints.html">ConnectionStrings guide</link>.
+        '';
       };
 
       listenAddress = mkOption {
@@ -264,5 +274,13 @@ in {
     };
   };
 
+  imports = [
+    (mkRenamedOptionModule [ "services" "buildbot-master" "bpPort" ] [ "services" "buildbot-master" "pbPort" ])
+    (mkRemovedOptionModule [ "services" "buildbot-master" "status" ] ''
+      Since Buildbot 0.9.0, status targets are deprecated and ignored.
+      Review your configuration and migrate to reporters (available at services.buildbot-master.reporters).
+    '')
+  ];
+
   meta.maintainers = with lib.maintainers; [ nand0p mic92 ];
 }
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 eacfed85ddf..431555309cc 100644
--- a/nixos/modules/services/continuous-integration/gitlab-runner.nix
+++ b/nixos/modules/services/continuous-integration/gitlab-runner.nix
@@ -1,14 +1,16 @@
 { config, lib, pkgs, ... }:
+with builtins;
 with lib;
 let
   cfg = config.services.gitlab-runner;
   hasDocker = config.virtualisation.docker.enable;
-  hashedServices = with builtins; (mapAttrs' (name: service: nameValuePair
-    "${name}_${config.networking.hostName}_${
+  hashedServices = mapAttrs'
+    (name: service: nameValuePair
+      "${name}_${config.networking.hostName}_${
         substring 0 12
         (hashString "md5" (unsafeDiscardStringContext (toJSON service)))}"
       service)
-    cfg.services);
+    cfg.services;
   configPath = "$HOME/.gitlab-runner/config.toml";
   configureScript = pkgs.writeShellScriptBin "gitlab-runner-configure" (
     if (cfg.configFile != null) then ''
@@ -47,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)
@@ -76,7 +80,7 @@ let
               ++ map (v: "--docker-allowed-images ${escapeShellArg v}") service.dockerAllowedImages
               ++ map (v: "--docker-allowed-services ${escapeShellArg v}") service.dockerAllowedServices
             )
-          ))} && sleep 1
+          ))} && sleep 1 || exit 1
         fi
       '') hashedServices)}
 
@@ -89,8 +93,17 @@ let
 
       # update global options
       remarshal --if toml --of json ${configPath} \
-        | jq -cM '.check_interval = ${toString cfg.checkInterval} |
-                  .concurrent = ${toString cfg.concurrent}' \
+        | jq -cM ${escapeShellArg (concatStringsSep " | " [
+            ".check_interval = ${toJSON cfg.checkInterval}"
+            ".concurrent = ${toJSON cfg.concurrent}"
+            ".sentry_dsn = ${toJSON cfg.sentryDSN}"
+            ".listen_address = ${toJSON cfg.prometheusListenAddress}"
+            ".session_server.listen_address = ${toJSON cfg.sessionServer.listenAddress}"
+            ".session_server.advertise_address = ${toJSON cfg.sessionServer.advertiseAddress}"
+            ".session_server.session_timeout = ${toJSON cfg.sessionServer.sessionTimeout}"
+            "del(.[] | nulls)"
+            "del(.session_server[] | nulls)"
+          ])} \
         | remarshal --if json --of toml \
         | sponge ${configPath}
 
@@ -141,6 +154,66 @@ in
         0 does not mean unlimited.
       '';
     };
+    sentryDSN = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      example = "https://public:private@host:port/1";
+      description = ''
+        Data Source Name for tracking of all system level errors to Sentry.
+      '';
+    };
+    prometheusListenAddress = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      example = "localhost:8080";
+      description = ''
+        Address (&lt;host&gt;:&lt;port&gt;) on which the Prometheus metrics HTTP server
+        should be listening.
+      '';
+    };
+    sessionServer = mkOption {
+      type = types.submodule {
+        options = {
+          listenAddress = mkOption {
+            type = types.nullOr types.str;
+            default = null;
+            example = "0.0.0.0:8093";
+            description = ''
+              An internal URL to be used for the session server.
+            '';
+          };
+          advertiseAddress = mkOption {
+            type = types.nullOr types.str;
+            default = null;
+            example = "runner-host-name.tld:8093";
+            description = ''
+              The URL that the Runner will expose to GitLab to be used
+              to access the session server.
+              Fallbacks to <option>listenAddress</option> if not defined.
+            '';
+          };
+          sessionTimeout = mkOption {
+            type = types.int;
+            default = 1800;
+            description = ''
+              How long in seconds the session can stay active after
+              the job completes (which will block the job from finishing).
+            '';
+          };
+        };
+      };
+      default = { };
+      example = literalExample ''
+        {
+          listenAddress = "0.0.0.0:8093";
+        }
+      '';
+      description = ''
+        The session server allows the user to interact with jobs
+        that the Runner is responsible for. A good example of this is the
+        <link xlink:href="https://docs.gitlab.com/ee/ci/interactive_web_terminal/index.html">interactive web terminal</link>.
+      '';
+    };
     gracefulTermination = mkOption {
       type = types.bool;
       default = false;
@@ -306,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/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix
index f9e657f5774..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.")
   ];
 
@@ -32,13 +30,7 @@ in
 
     services.mysql = {
 
-      enable = mkOption {
-        type = types.bool;
-        default = false;
-        description = "
-          Whether to enable the MySQL server.
-        ";
-      };
+      enable = mkEnableOption "MySQL server";
 
       package = mkOption {
         type = types.package;
@@ -52,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 {
@@ -87,7 +85,6 @@ in
             datadir = /var/lib/mysql
             bind-address = 127.0.0.1
             port = 3336
-            plugin-load-add = auth_socket.so
 
             !includedir /etc/mysql/conf.d/
           ''';
@@ -178,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 {
@@ -266,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.";
         };
       };
     };
@@ -315,34 +312,42 @@ in
         datadir = cfg.dataDir;
         bind-address = mkIf (cfg.bind != null) cfg.bind;
         port = cfg.port;
-        plugin-load-add = optional (cfg.ensureUsers != []) "auth_socket.so";
       }
       (mkIf (cfg.replication.role == "master" || cfg.replication.role == "slave") {
         log-bin = "mysql-bin-${toString cfg.replication.serverId}";
         log-bin-index = "mysql-bin-${toString cfg.replication.serverId}.index";
         relay-log = "mysql-relay-bin";
         server-id = cfg.replication.serverId;
+        binlog-ignore-db = [ "information_schema" "performance_schema" "mysql" ];
+      })
+      (mkIf (!isMariaDB) {
+        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 -"
+      "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";
 
@@ -360,127 +365,153 @@ in
 
         preStart = if isMariaDB then ''
           if ! test -e ${cfg.dataDir}/mysql; then
-            ${mysql}/bin/mysql_install_db --defaults-file=/etc/my.cnf ${mysqldOptions}
-            touch /tmp/mysql_init
+            ${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
-            touch /tmp/mysql_init
+            ${cfg.package}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} --initialize-insecure
+            touch ${cfg.dataDir}/mysql_init
           fi
         '';
 
-        serviceConfig = {
-          User = cfg.user;
-          Group = "mysql";
-          Type = if hasNotify then "notify" else "simple";
-          RuntimeDirectory = "mysqld";
-          RuntimeDirectoryMode = "0755";
-          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 /tmp/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 "set global slave_exec_mode='IDEMPOTENT';"
-                          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 /tmp/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 = cfg.group;
+          # Runtime directory and mode
+          RuntimeDirectory = "mysqld";
+          RuntimeDirectoryMode = "0755";
+          # Access write directories
+          ReadWritePaths = [ cfg.dataDir ];
+          # Capabilities
+          CapabilityBoundingSet = "";
+          # Security
+          NoNewPrivileges = true;
+          # Sandboxing
+          ProtectSystem = "strict";
+          ProtectHome = true;
+          PrivateTmp = true;
+          PrivateDevices = true;
+          ProtectHostname = true;
+          ProtectKernelTunables = true;
+          ProtectKernelModules = true;
+          ProtectControlGroups = true;
+          RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+          LockPersonality = true;
+          MemoryDenyWriteExecute = true;
+          RestrictRealtime = true;
+          RestrictSUIDSGID = true;
+          PrivateMounts = true;
+          # System Call Filtering
+          SystemCallArchitectures = "native";
         };
       };
 
diff --git a/nixos/modules/services/databases/openldap.nix b/nixos/modules/services/databases/openldap.nix
index 8c2851c37ac..7472538b887 100644
--- a/nixos/modules/services/databases/openldap.nix
+++ b/nixos/modules/services/databases/openldap.nix
@@ -5,14 +5,14 @@ with lib;
 let
 
   cfg = config.services.openldap;
-  openldap = pkgs.openldap;
+  openldap = cfg.package;
 
   dataFile = pkgs.writeText "ldap-contents.ldif" cfg.declarativeContents;
   configFile = pkgs.writeText "slapd.conf" ((optionalString cfg.defaultSchemas ''
-    include ${pkgs.openldap.out}/etc/schema/core.schema
-    include ${pkgs.openldap.out}/etc/schema/cosine.schema
-    include ${pkgs.openldap.out}/etc/schema/inetorgperson.schema
-    include ${pkgs.openldap.out}/etc/schema/nis.schema
+    include ${openldap.out}/etc/schema/core.schema
+    include ${openldap.out}/etc/schema/cosine.schema
+    include ${openldap.out}/etc/schema/inetorgperson.schema
+    include ${openldap.out}/etc/schema/nis.schema
   '') + ''
     ${cfg.extraConfig}
     database ${cfg.database}
@@ -46,6 +46,18 @@ in
         ";
       };
 
+      package = mkOption {
+        type = types.package;
+        default = pkgs.openldap;
+        description = ''
+          OpenLDAP package to use.
+
+          This can be used to, for example, set an OpenLDAP package
+          with custom overrides to enable modules or other
+          functionality.
+        '';
+      };
+
       user = mkOption {
         type = types.str;
         default = "openldap";
@@ -152,10 +164,10 @@ in
         ";
         example = literalExample ''
             '''
-            include ${pkgs.openldap.out}/etc/schema/core.schema
-            include ${pkgs.openldap.out}/etc/schema/cosine.schema
-            include ${pkgs.openldap.out}/etc/schema/inetorgperson.schema
-            include ${pkgs.openldap.out}/etc/schema/nis.schema
+            include ${openldap.out}/etc/schema/core.schema
+            include ${openldap.out}/etc/schema/cosine.schema
+            include ${openldap.out}/etc/schema/inetorgperson.schema
+            include ${openldap.out}/etc/schema/nis.schema
 
             database bdb
             suffix dc=example,dc=org
@@ -232,7 +244,7 @@ in
   };
 
   meta = {
-    maintainers = lib.maintainers.mic92;
+    maintainers = [ lib.maintainers.mic92 ];
   };
 
 
diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix
index 93f5c1ca5f5..c726a08e34f 100644
--- a/nixos/modules/services/databases/postgresql.nix
+++ b/nixos/modules/services/databases/postgresql.nix
@@ -17,10 +17,11 @@ let
       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}
-    ''; 
+    '';
 
   groupAccessAvailable = versionAtLeast postgresql.version "11.0";
 
@@ -54,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.
         '';
       };
 
@@ -186,6 +191,17 @@ in
         '';
       };
 
+      logLinePrefix = mkOption {
+        type = types.str;
+        default = "[%p] ";
+        example = "%m [%p] ";
+        description = ''
+          A printf-style string that is output at the beginning of each log line.
+          Upstream default is <literal>'%m [%p] '</literal>, i.e. it includes the timestamp. We do
+          not include the timestamp, because journal has it anyway.
+        '';
+      };
+
       extraPlugins = mkOption {
         type = types.listOf types.path;
         default = [];
@@ -209,14 +225,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.
         '';
         };
     };
@@ -237,10 +254,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
       ''
@@ -279,59 +293,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.sudo}/bin/sudo -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
@@ -357,6 +340,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/redis.nix b/nixos/modules/services/databases/redis.nix
index 5c817422aae..f1777854e14 100644
--- a/nixos/modules/services/databases/redis.nix
+++ b/nixos/modules/services/databases/redis.nix
@@ -11,12 +11,11 @@ let
     port ${toString cfg.port}
     ${condOption "bind" cfg.bind}
     ${condOption "unixsocket" cfg.unixSocket}
-    daemonize yes
+    daemonize no
     supervised systemd
     loglevel ${cfg.logLevel}
     logfile ${cfg.logfile}
     syslog-enabled ${redisBool cfg.syslog}
-    pidfile /run/redis/redis.pid
     databases ${toString cfg.databases}
     ${concatMapStrings (d: "save ${toString (builtins.elemAt d 0)} ${toString (builtins.elemAt d 1)}\n") cfg.save}
     dbfilename dump.rdb
@@ -219,6 +218,7 @@ in
       description = "Redis database user";
       isSystemUser = true;
     };
+    users.groups.redis = {};
 
     environment.systemPackages = [ cfg.package ];
 
@@ -241,6 +241,7 @@ in
         StateDirectory = "redis";
         Type = "notify";
         User = "redis";
+        Group = "redis";
       };
     };
   };
diff --git a/nixos/modules/services/databases/rethinkdb.nix b/nixos/modules/services/databases/rethinkdb.nix
index f18fbaf5b06..c764d6c21c6 100644
--- a/nixos/modules/services/databases/rethinkdb.nix
+++ b/nixos/modules/services/databases/rethinkdb.nix
@@ -15,10 +15,7 @@ in
 
     services.rethinkdb = {
 
-      enable = mkOption {
-        default = false;
-        description = "Whether to enable the RethinkDB server.";
-      };
+      enable = mkEnableOption "RethinkDB server";
 
       #package = mkOption {
       #  default = pkgs.rethinkdb;
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
index 931bac58ace..f8fb73701af 100644
--- a/nixos/modules/services/desktops/deepin/deepin.nix
+++ b/nixos/modules/services/desktops/deepin/deepin.nix
@@ -41,7 +41,6 @@
         pkgs.deepin.dde-session-ui
         pkgs.deepin.deepin-anything
         pkgs.deepin.deepin-image-viewer
-        pkgs.deepin.deepin-screenshot
       ];
 
       services.dbus.packages = [
@@ -55,7 +54,6 @@
         pkgs.deepin.dde-session-ui
         pkgs.deepin.deepin-anything
         pkgs.deepin.deepin-image-viewer
-        pkgs.deepin.deepin-screenshot
       ];
 
       systemd.packages = [
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/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/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..05f87df43bc 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>
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/teeworlds.nix b/nixos/modules/services/games/teeworlds.nix
new file mode 100644
index 00000000000..babf989c98c
--- /dev/null
+++ b/nixos/modules/services/games/teeworlds.nix
@@ -0,0 +1,119 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.teeworlds;
+  register = cfg.register;
+
+  teeworldsConf = pkgs.writeText "teeworlds.cfg" ''
+    sv_port ${toString cfg.port}
+    sv_register ${if cfg.register then "1" else "0"}
+    ${optionalString (cfg.name != null) "sv_name ${cfg.name}"}
+    ${optionalString (cfg.motd != null) "sv_motd ${cfg.motd}"}
+    ${optionalString (cfg.password != null) "password ${cfg.password}"}
+    ${optionalString (cfg.rconPassword != null) "sv_rcon_password ${cfg.rconPassword}"}
+    ${concatStringsSep "\n" cfg.extraOptions}
+  '';
+
+in
+{
+  options = {
+    services.teeworlds = {
+      enable = mkEnableOption "Teeworlds Server";
+
+      openPorts = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Whether to open firewall ports for Teeworlds";
+      };
+
+      name = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Name of the server. Defaults to 'unnamed server'.
+        '';
+      };
+
+      register = mkOption {
+        type = types.bool;
+        example = true;
+        default = false;
+        description = ''
+          Whether the server registers as public server in the global server list. This is disabled by default because of privacy.
+        '';
+      };
+
+      motd = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Set the server message of the day text.
+        '';
+      };
+
+      password = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Password to connect to the server.
+        '';
+      };
+
+      rconPassword = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Password to access the remote console. If not set, a randomly generated one is displayed in the server log.
+        '';
+      };
+
+      port = mkOption {
+        type = types.int;
+        default = 8303;
+        description = ''
+          Port the server will listen on.
+        '';
+      };
+
+      extraOptions = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          Extra configuration lines for the <filename>teeworlds.cfg</filename>. See <link xlink:href="https://www.teeworlds.com/?page=docs&amp;wiki=server_settings">Teeworlds Documentation</link>.
+        '';
+        example = [ "sv_map dm1" "sv_gametype dm" ];
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    networking.firewall = mkIf cfg.openPorts {
+      allowedUDPPorts = [ cfg.port ];
+    };
+
+    systemd.services.teeworlds = {
+      description = "Teeworlds Server";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+
+      serviceConfig = {
+        DynamicUser = true;
+        ExecStart = "${pkgs.teeworlds}/bin/teeworlds_srv -f ${teeworldsConf}";
+
+        # Hardening
+        CapabilityBoundingSet = false;
+        PrivateDevices = true;
+        PrivateUsers = true;
+        ProtectHome = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
+        RestrictNamespaces = true;
+        SystemCallArchitectures = "native";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/games/terraria.nix b/nixos/modules/services/games/terraria.nix
index a59b74c0b4c..413660321ec 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)
diff --git a/nixos/modules/services/hardware/fwupd.nix b/nixos/modules/services/hardware/fwupd.nix
index e586af25c2b..222ac8e487e 100644
--- a/nixos/modules/services/hardware/fwupd.nix
+++ b/nixos/modules/services/hardware/fwupd.nix
@@ -6,6 +6,23 @@ with lib;
 
 let
   cfg = config.services.fwupd;
+
+  customEtc = {
+    "fwupd/daemon.conf" = {
+      source = pkgs.writeText "daemon.conf" ''
+        [fwupd]
+        BlacklistDevices=${lib.concatStringsSep ";" cfg.blacklistDevices}
+        BlacklistPlugins=${lib.concatStringsSep ";" cfg.blacklistPlugins}
+      '';
+    };
+    "fwupd/uefi.conf" = {
+      source = pkgs.writeText "uefi.conf" ''
+        [uefi]
+        OverrideESPMountPoint=${config.boot.loader.efi.efiSysMountPoint}
+      '';
+    };
+  };
+
   originalEtc =
     let
       mkEtcFile = n: nameValuePair n { source = "${cfg.package}/etc/${n}"; };
@@ -96,22 +113,8 @@ in {
 
     environment.systemPackages = [ cfg.package ];
 
-    environment.etc = {
-      "fwupd/daemon.conf" = {
-        source = pkgs.writeText "daemon.conf" ''
-          [fwupd]
-          BlacklistDevices=${lib.concatStringsSep ";" cfg.blacklistDevices}
-          BlacklistPlugins=${lib.concatStringsSep ";" cfg.blacklistPlugins}
-        '';
-      };
-      "fwupd/uefi.conf" = {
-        source = pkgs.writeText "uefi.conf" ''
-          [uefi]
-          OverrideESPMountPoint=${config.boot.loader.efi.efiSysMountPoint}
-        '';
-      };
-
-    } // originalEtc // extraTrustedKeys // testRemote;
+    # customEtc overrides some files from the package
+    environment.etc = originalEtc // customEtc // extraTrustedKeys // testRemote;
 
     services.dbus.packages = [ cfg.package ];
 
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/u2f.nix b/nixos/modules/services/hardware/u2f.nix
deleted file mode 100644
index bb4b2f05f89..00000000000
--- a/nixos/modules/services/hardware/u2f.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.hardware.u2f;
-in {
-  options = {
-    hardware.u2f = {
-      enable = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Enable U2F hardware support.
-        '';
-      };
-    };
-  };
-
-  config = mkIf cfg.enable {
-    services.udev.packages = [ pkgs.libu2f-host ];
-  };
-}
-
diff --git a/nixos/modules/services/hardware/udev.nix b/nixos/modules/services/hardware/udev.nix
index 168056a475e..587b9b0234a 100644
--- a/nixos/modules/services/hardware/udev.nix
+++ b/nixos/modules/services/hardware/udev.nix
@@ -83,6 +83,10 @@ let
       run_progs=$(grep -v '^[[:space:]]*#' $out/* | grep 'RUN+="/' |
         sed -e 's/.*RUN+="\([^ "]*\)[ "].*/\1/' | uniq)
       for i in $import_progs $run_progs; do
+        # if the path refers to /run/current-system/systemd, replace with config.systemd.package
+        if [[ $i == /run/current-system/systemd* ]]; then
+          i="${config.systemd.package}/''${i#/run/current-system/systemd/}"
+        fi
         if [[ ! -x $i ]]; then
           echo "FAIL"
           echo "$i is called in udev rules but is not executable or does not exist"
diff --git a/nixos/modules/services/hardware/undervolt.nix b/nixos/modules/services/hardware/undervolt.nix
index e5ef0601de3..054ffa35050 100644
--- a/nixos/modules/services/hardware/undervolt.nix
+++ b/nixos/modules/services/hardware/undervolt.nix
@@ -1,18 +1,35 @@
 { config, pkgs, lib, ... }:
 
 with lib;
-
 let
   cfg = config.services.undervolt;
-in {
+  cliArgs = lib.cli.toGNUCommandLineShell {} {
+    inherit (cfg)
+      verbose
+      temp
+      ;
+    # `core` and `cache` are both intentionally set to `cfg.coreOffset` as according to the undervolt docs:
+    #
+    #     Core or Cache offsets have no effect. It is not possible to set different offsets for
+    #     CPU Core and Cache. The CPU will take the smaller of the two offsets, and apply that to
+    #     both CPU and Cache. A warning message will be displayed if you attempt to set different offsets.
+    core = cfg.coreOffset;
+    cache = cfg.coreOffset;
+    gpu = cfg.gpuOffset;
+    uncore = cfg.uncoreOffset;
+    analogio = cfg.analogioOffset;
+
+    temp-bat = cfg.tempBat;
+    temp-ac = cfg.tempAc;
+  };
+in
+{
   options.services.undervolt = {
-    enable = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Whether to undervolt intel cpus.
-      '';
-    };
+    enable = mkEnableOption ''
+       Undervolting service for Intel CPUs.
+
+       Warning: This service is not endorsed by Intel and may permanently damage your hardware. Use at your own risk!
+    '';
 
     verbose = mkOption {
       type = types.bool;
@@ -32,58 +49,69 @@ in {
     };
 
     coreOffset = mkOption {
-      type = types.nullOr types.str;
+      type = types.nullOr types.int;
       default = null;
       description = ''
-        The amount of voltage to offset the CPU cores by. Accepts a floating point number.
+        The amount of voltage in mV to offset the CPU cores by.
       '';
     };
 
     gpuOffset = mkOption {
-      type = types.nullOr types.str;
+      type = types.nullOr types.int;
       default = null;
       description = ''
-        The amount of voltage to offset the GPU by. Accepts a floating point number.
+        The amount of voltage in mV to offset the GPU by.
       '';
     };
 
     uncoreOffset = mkOption {
-      type = types.nullOr types.str;
+      type = types.nullOr types.int;
       default = null;
       description = ''
-        The amount of voltage to offset uncore by. Accepts a floating point number.
+        The amount of voltage in mV to offset uncore by.
       '';
     };
 
     analogioOffset = mkOption {
-      type = types.nullOr types.str;
+      type = types.nullOr types.int;
       default = null;
       description = ''
-        The amount of voltage to offset analogio by. Accepts a floating point number.
+        The amount of voltage in mV to offset analogio by.
       '';
     };
 
     temp = mkOption {
-      type = types.nullOr types.str;
+      type = types.nullOr types.int;
       default = null;
       description = ''
-        The temperature target. Accepts a floating point number.
+        The temperature target in Celsius degrees.
       '';
     };
 
     tempAc = mkOption {
-      type = types.nullOr types.str;
+      type = types.nullOr types.int;
       default = null;
       description = ''
-        The temperature target on AC power. Accepts a floating point number.
+        The temperature target on AC power in Celsius degrees.
       '';
     };
 
     tempBat = mkOption {
-      type = types.nullOr types.str;
+      type = types.nullOr types.int;
       default = null;
       description = ''
-        The temperature target on battery power. Accepts a floating point number.
+        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.
       '';
     };
   };
@@ -97,31 +125,19 @@ 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";
-
-        # `core` and `cache` are both intentionally set to `cfg.coreOffset` as according to the undervolt docs:
-        #
-        #     Core or Cache offsets have no effect. It is not possible to set different offsets for
-        #     CPU Core and Cache. The CPU will take the smaller of the two offsets, and apply that to
-        #     both CPU and Cache. A warning message will be displayed if you attempt to set different offsets.
-        ExecStart = ''
-          ${pkgs.undervolt}/bin/undervolt \
-            ${optionalString cfg.verbose "--verbose"} \
-            ${optionalString (cfg.coreOffset != null) "--core ${cfg.coreOffset}"} \
-            ${optionalString (cfg.coreOffset != null) "--cache ${cfg.coreOffset}"} \
-            ${optionalString (cfg.gpuOffset != null) "--gpu ${cfg.gpuOffset}"} \
-            ${optionalString (cfg.uncoreOffset != null) "--uncore ${cfg.uncoreOffset}"} \
-            ${optionalString (cfg.analogioOffset != null) "--analogio ${cfg.analogioOffset}"} \
-            ${optionalString (cfg.temp != null) "--temp ${cfg.temp}"} \
-            ${optionalString (cfg.tempAc != null) "--temp-ac ${cfg.tempAc}"} \
-            ${optionalString (cfg.tempBat != null) "--temp-bat ${cfg.tempBat}"}
-        '';
+        ExecStart = "${pkgs.undervolt}/bin/undervolt ${cliArgs}";
       };
     };
 
-    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 fdd9f0f3e5c..7d6102b8255 100644
--- a/nixos/modules/services/logging/logrotate.nix
+++ b/nixos/modules/services/logging/logrotate.nix
@@ -5,42 +5,165 @@ with lib;
 let
   cfg = config.services.logrotate;
 
-  configFile = pkgs.writeText "logrotate.conf"
-    cfg.config;
+  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.
+        '';
+      };
+
+      user = mkOption {
+        type = with types; nullOr str;
+        default = null;
+        description = ''
+          The user account to use for rotation.
+        '';
+      };
+
+      group = mkOption {
+        type = with types; nullOr str;
+        default = null;
+        description = ''
+          The group to use for rotation.
+        '';
+      };
+
+      frequency = mkOption {
+        type = types.enum [ "daily" "weekly" "monthly" "yearly" ];
+        default = "daily";
+        description = ''
+          How often to rotate the logs.
+        '';
+      };
+
+      keep = mkOption {
+        type = types.int;
+        default = 20;
+        description = ''
+          How many rotations to keep.
+        '';
+      };
+
+      extraConfig = mkOption {
+        type = types.lines;
+        default = "";
+        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.
+        '';
+      };
+    };
+
+    config.extraConfig = ''
+      missingok
+      notifempty
+    '';
+  };
+
+  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}
+    }
+  '';
+
+  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
 {
+  imports = [
+    (mkRenamedOptionModule [ "services" "logrotate" "config" ] [ "services" "logrotate" "extraConfig" ])
+  ];
+
   options = {
     services.logrotate = {
-      enable = mkOption {
-        type = lib.types.bool;
-        default = false;
+      enable = mkEnableOption "the logrotate systemd service";
+
+      paths = mkOption {
+        type = with types; attrsOf (submodule pathOpts);
+        default = {};
         description = ''
-          Enable the logrotate cron job
+          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;
+            };
+          }
         '';
       };
 
-      config = mkOption {
+      extraConfig = mkOption {
         default = "";
         type = types.lines;
         description = ''
-          The contents of the logrotate config file
+          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 9fbf0c19752..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))}
           }
         }
       ''
@@ -125,15 +125,19 @@ let
   mailboxConfig = mailbox: ''
     mailbox "${mailbox.name}" {
       auto = ${toString mailbox.auto}
+  '' + optionalString (mailbox.autoexpunge != null) ''
+    autoexpunge = ${mailbox.autoexpunge}
   '' + optionalString (mailbox.specialUse != null) ''
     special_use = \${toString mailbox.specialUse}
   '' + "}";
 
-  mailboxes = { ... }: {
+  mailboxes = { name, ... }: {
     options = {
       name = mkOption {
         type = types.strMatching ''[^"]+'';
         example = "Spam";
+        default = name;
+        readOnly = true;
         description = "The name of the mailbox.";
       };
       auto = mkOption {
@@ -148,6 +152,15 @@ let
         example = "Junk";
         description = "Null if no special use flag is set. Other than that every use flag mentioned in the RFC is valid.";
       };
+      autoexpunge = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        example = "60d";
+        description = ''
+          To automatically remove all email from the mailbox which is older than the
+          specified time.
+        '';
+      };
     };
   };
 in
@@ -323,9 +336,16 @@ in
     };
 
     mailboxes = mkOption {
-      type = types.listOf (types.submodule mailboxes);
-      default = [];
-      example = [ { name = "Spam"; specialUse = "Junk"; auto = "create"; } ];
+      type = with types; coercedTo
+        (listOf unspecified)
+        (list: listToAttrs (map (entry: { name = entry.name; value = removeAttrs entry ["name"]; }) list))
+        (attrsOf (submodule mailboxes));
+      default = {};
+      example = literalExample ''
+        {
+          Spam = { specialUse = "Junk"; auto = "create"; };
+        }
+      '';
       description = "Configure mailboxes and auto create or subscribe them.";
     };
 
@@ -444,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/mailman.nix b/nixos/modules/services/mail/mailman.nix
index f5e78b18293..5c61cfbebf6 100644
--- a/nixos/modules/services/mail/mailman.nix
+++ b/nixos/modules/services/mail/mailman.nix
@@ -6,42 +6,46 @@ let
 
   cfg = config.services.mailman;
 
+  pythonEnv = pkgs.python3.withPackages (ps:
+    [ps.mailman ps.mailman-web]
+    ++ lib.optional cfg.hyperkitty.enable ps.mailman-hyperkitty
+    ++ cfg.extraPythonPackages);
+
   # This deliberately doesn't use recursiveUpdate so users can
   # override the defaults.
-  settings = {
+  webSettings = {
     DEFAULT_FROM_EMAIL = cfg.siteOwner;
     SERVER_EMAIL = cfg.siteOwner;
     ALLOWED_HOSTS = [ "localhost" "127.0.0.1" ] ++ cfg.webHosts;
     COMPRESS_OFFLINE = true;
-    STATIC_ROOT = "/var/lib/mailman-web/static";
+    STATIC_ROOT = "/var/lib/mailman-web-static";
     MEDIA_ROOT = "/var/lib/mailman-web/media";
+    LOGGING = {
+      version = 1;
+      disable_existing_loggers = true;
+      handlers.console.class = "logging.StreamHandler";
+      loggers.django = {
+        handlers = [ "console" ];
+        level = "INFO";
+      };
+    };
+    HAYSTACK_CONNECTIONS.default = {
+      ENGINE = "haystack.backends.whoosh_backend.WhooshEngine";
+      PATH = "/var/lib/mailman-web/fulltext-index";
+    };
   } // cfg.webSettings;
 
-  settingsJSON = pkgs.writeText "settings.json" (builtins.toJSON settings);
-
-  mailmanCfg = ''
-    [mailman]
-    site_owner: ${cfg.siteOwner}
-    layout: fhs
-
-    [paths.fhs]
-    bin_dir: ${pkgs.python3Packages.mailman}/bin
-    var_dir: /var/lib/mailman
-    queue_dir: $var_dir/queue
-    template_dir: $var_dir/templates
-    log_dir: $var_dir/log
-    lock_dir: $var_dir/lock
-    etc_dir: /etc
-    ext_dir: $etc_dir/mailman.d
-    pid_file: /run/mailman/master.pid
-  '' + optionalString cfg.hyperkitty.enable ''
-
-    [archiver.hyperkitty]
-    class: mailman_hyperkitty.Archiver
-    enable: yes
-    configuration: /var/lib/mailman/mailman-hyperkitty.cfg
+  webSettingsJSON = pkgs.writeText "settings.json" (builtins.toJSON webSettings);
+
+  # TODO: Should this be RFC42-ised so that users can set additional options without modifying the module?
+  mtaConfig = pkgs.writeText "mailman-postfix.cfg" ''
+    [postfix]
+    postmap_command: ${pkgs.postfix}/bin/postmap
+    transport_file_type: hash
   '';
 
+  mailmanCfg = lib.generators.toINI {} cfg.settings;
+
   mailmanHyperkittyCfg = pkgs.writeText "mailman-hyperkitty.cfg" ''
     [general]
     # This is your HyperKitty installation, preferably on the localhost. This
@@ -84,7 +88,7 @@ in {
         type = types.package;
         default = pkgs.mailman;
         defaultText = "pkgs.mailman";
-        example = "pkgs.mailman.override { archivers = []; }";
+        example = literalExample "pkgs.mailman.override { archivers = []; }";
         description = "Mailman package to use";
       };
 
@@ -98,18 +102,6 @@ in {
         '';
       };
 
-      webRoot = mkOption {
-        type = types.path;
-        default = "${pkgs.mailman-web}/${pkgs.python3.sitePackages}";
-        defaultText = "\${pkgs.mailman-web}/\${pkgs.python3.sitePackages}";
-        description = ''
-          The web root for the Hyperkity + Postorius apps provided by Mailman.
-          This variable can be set, of course, but it mainly exists so that site
-          admins can refer to it in their own hand-written web server
-          configuration files.
-        '';
-      };
-
       webHosts = mkOption {
         type = types.listOf types.str;
         default = [];
@@ -124,7 +116,7 @@ in {
 
       webUser = mkOption {
         type = types.str;
-        default = config.services.httpd.user;
+        default = "mailman-web";
         description = ''
           User to run mailman-web as
         '';
@@ -138,6 +130,22 @@ in {
         '';
       };
 
+      serve = {
+        enable = mkEnableOption "Automatic nginx and uwsgi setup for mailman-web";
+      };
+
+      extraPythonPackages = mkOption {
+        description = "Packages to add to the python environment used by mailman and mailman-web";
+        type = types.listOf types.package;
+        default = [];
+      };
+
+      settings = mkOption {
+        description = "Settings for mailman.cfg";
+        type = types.attrsOf (types.attrsOf types.str);
+        default = {};
+      };
+
       hyperkitty = {
         enable = mkEnableOption "the Hyperkitty archiver for Mailman";
 
@@ -158,6 +166,35 @@ in {
 
   config = mkIf cfg.enable {
 
+    services.mailman.settings = {
+      mailman.site_owner = lib.mkDefault cfg.siteOwner;
+      mailman.layout = "fhs";
+
+      "paths.fhs" = {
+        bin_dir = "${pkgs.python3Packages.mailman}/bin";
+        var_dir = "/var/lib/mailman";
+        queue_dir = "$var_dir/queue";
+        template_dir = "$var_dir/templates";
+        log_dir = "/var/log/mailman";
+        lock_dir = "$var_dir/lock";
+        etc_dir = "/etc";
+        ext_dir = "$etc_dir/mailman.d";
+        pid_file = "/run/mailman/master.pid";
+      };
+
+      mta.configuration = lib.mkDefault "${mtaConfig}";
+
+      "archiver.hyperkitty" = lib.mkIf cfg.hyperkitty.enable {
+        class = "mailman_hyperkitty.Archiver";
+        enable = "yes";
+        configuration = "/var/lib/mailman/mailman-hyperkitty.cfg";
+      };
+    } // (let
+      loggerNames = ["root" "archiver" "bounce" "config" "database" "debug" "error" "fromusenet" "http" "locks" "mischief" "plugins" "runner" "smtp"];
+      loggerSectionNames = map (n: "logging.${n}") loggerNames;
+      in lib.genAttrs loggerSectionNames(name: { handler = "stderr"; })
+    );
+
     assertions = let
       inherit (config.services) postfix;
 
@@ -183,7 +220,17 @@ in {
       (requirePostfixHash [ "config" "local_recipient_maps" ] "postfix_lmtp")
     ];
 
-    users.users.mailman = { description = "GNU Mailman"; isSystemUser = true; };
+    users.users.mailman = {
+      description = "GNU Mailman";
+      isSystemUser = true;
+      group = "mailman";
+    };
+    users.users.mailman-web = lib.mkIf (cfg.webUser == "mailman-web") {
+      description = "GNU Mailman web interface";
+      isSystemUser = true;
+      group = "mailman";
+    };
+    users.groups.mailman = {};
 
     environment.etc."mailman.cfg".text = mailmanCfg;
 
@@ -198,197 +245,193 @@ in {
 
       import json
 
-      with open('${settingsJSON}') as f:
+      with open('${webSettingsJSON}') as f:
           globals().update(json.load(f))
 
       with open('/var/lib/mailman-web/settings_local.json') as f:
           globals().update(json.load(f))
     '';
 
-    environment.systemPackages = [ cfg.package ] ++ (with pkgs; [ mailman-web ]);
-
-    services.postfix = {
-      recipientDelimiter = "+";         # bake recipient addresses in mail envelopes via VERP
-      config = {
-        owner_request_special = "no";   # Mailman handles -owner addresses on its own
-      };
-    };
-
-    systemd.services.mailman = {
-      description = "GNU Mailman Master Process";
-      after = [ "network.target" ];
-      restartTriggers = [ config.environment.etc."mailman.cfg".source ];
-      wantedBy = [ "multi-user.target" ];
-      serviceConfig = {
-        ExecStart = "${cfg.package}/bin/mailman start";
-        ExecStop = "${cfg.package}/bin/mailman stop";
-        User = "mailman";
-        Type = "forking";
-        RuntimeDirectory = "mailman";
-        PIDFile = "/run/mailman/master.pid";
-      };
-    };
-
-    systemd.services.mailman-settings = {
-      description = "Generate settings files (including secrets) for Mailman";
-      before = [ "mailman.service" "mailman-web.service" "hyperkitty.service" "httpd.service" "uwsgi.service" ];
-      requiredBy = [ "mailman.service" "mailman-web.service" "hyperkitty.service" "httpd.service" "uwsgi.service" ];
-      path = with pkgs; [ jq ];
-      script = ''
-        mailmanDir=/var/lib/mailman
-        mailmanWebDir=/var/lib/mailman-web
-
-        mailmanCfg=$mailmanDir/mailman-hyperkitty.cfg
-        mailmanWebCfg=$mailmanWebDir/settings_local.json
-
-        install -m 0700 -o mailman -g nogroup -d $mailmanDir
-        install -m 0700 -o ${cfg.webUser} -g nogroup -d $mailmanWebDir
-
-        if [ ! -e $mailmanWebCfg ]; then
-            hyperkittyApiKey=$(tr -dc A-Za-z0-9 < /dev/urandom | head -c 64)
-            secretKey=$(tr -dc A-Za-z0-9 < /dev/urandom | head -c 64)
-
-            mailmanWebCfgTmp=$(mktemp)
-            jq -n '.MAILMAN_ARCHIVER_KEY=$archiver_key | .SECRET_KEY=$secret_key' \
-                --arg archiver_key "$hyperkittyApiKey" \
-                --arg secret_key "$secretKey" \
-                >"$mailmanWebCfgTmp"
-            chown ${cfg.webUser} "$mailmanWebCfgTmp"
-            mv -n "$mailmanWebCfgTmp" $mailmanWebCfg
-        fi
-
-        hyperkittyApiKey="$(jq -r .MAILMAN_ARCHIVER_KEY $mailmanWebCfg)"
-        mailmanCfgTmp=$(mktemp)
-        sed "s/@API_KEY@/$hyperkittyApiKey/g" ${mailmanHyperkittyCfg} >"$mailmanCfgTmp"
-        chown mailman "$mailmanCfgTmp"
-        mv "$mailmanCfgTmp" $mailmanCfg
-      '';
-      serviceConfig = {
-        Type = "oneshot";
-        # RemainAfterExit makes restartIfChanged work for this service, so
-        # downstream services will get updated automatically when things like
-        # services.mailman.hyperkitty.baseUrl change.  Otherwise users have to
-        # restart things manually, which is confusing.
-        RemainAfterExit = "yes";
+    services.nginx = mkIf cfg.serve.enable {
+      enable = mkDefault true;
+      virtualHosts."${lib.head cfg.webHosts}" = {
+        serverAliases = cfg.webHosts;
+        locations = {
+          "/".extraConfig = "uwsgi_pass unix:/run/mailman-web.socket;";
+          "/static/".alias = webSettings.STATIC_ROOT + "/";
+        };
       };
     };
 
-    systemd.services.mailman-web = {
-      description = "Init Postorius DB";
-      before = [ "httpd.service" "uwsgi.service" ];
-      requiredBy = [ "httpd.service" "uwsgi.service" ];
-      restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
-      script = ''
-        ${pkgs.mailman-web}/bin/mailman-web migrate
-        rm -rf static
-        ${pkgs.mailman-web}/bin/mailman-web collectstatic
-        ${pkgs.mailman-web}/bin/mailman-web compress
+    environment.systemPackages = [ (pkgs.buildEnv {
+      name = "mailman-tools";
+      # We don't want to pollute the system PATH with a python
+      # interpreter etc. so let's pick only the stuff we actually
+      # want from pythonEnv
+      pathsToLink = ["/bin"];
+      paths = [pythonEnv];
+      postBuild = ''
+        find $out/bin/ -mindepth 1 -not -name "mailman*" -delete
       '';
-      serviceConfig = {
-        User = cfg.webUser;
-        Type = "oneshot";
-        # Similar to mailman-settings.service, this makes restartTriggers work
-        # properly for this service.
-        RemainAfterExit = "yes";
-        WorkingDirectory = "/var/lib/mailman-web";
-      };
-    };
+    }) ];
 
-    systemd.services.mailman-daily = {
-      description = "Trigger daily Mailman events";
-      startAt = "daily";
-      restartTriggers = [ config.environment.etc."mailman.cfg".source ];
-      serviceConfig = {
-        ExecStart = "${cfg.package}/bin/mailman digests --send";
-        User = "mailman";
-      };
-    };
-
-    systemd.services.hyperkitty = {
-      inherit (cfg.hyperkitty) enable;
-      description = "GNU Hyperkitty QCluster Process";
-      after = [ "network.target" ];
-      restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
-      wantedBy = [ "mailman.service" "multi-user.target" ];
-      serviceConfig = {
-        ExecStart = "${pkgs.mailman-web}/bin/mailman-web qcluster";
-        User = cfg.webUser;
-        WorkingDirectory = "/var/lib/mailman-web";
+    services.postfix = {
+      recipientDelimiter = "+";         # bake recipient addresses in mail envelopes via VERP
+      config = {
+        owner_request_special = "no";   # Mailman handles -owner addresses on its own
       };
     };
 
-    systemd.services.hyperkitty-minutely = {
-      inherit (cfg.hyperkitty) enable;
-      description = "Trigger minutely Hyperkitty events";
-      startAt = "minutely";
-      restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
-      serviceConfig = {
-        ExecStart = "${pkgs.mailman-web}/bin/mailman-web runjobs minutely";
-        User = cfg.webUser;
-        WorkingDirectory = "/var/lib/mailman-web";
-      };
+    systemd.sockets.mailman-uwsgi = lib.mkIf cfg.serve.enable {
+      wantedBy = ["sockets.target"];
+      before = ["nginx.service"];
+      socketConfig.ListenStream = "/run/mailman-web.socket";
     };
-
-    systemd.services.hyperkitty-quarter-hourly = {
-      inherit (cfg.hyperkitty) enable;
-      description = "Trigger quarter-hourly Hyperkitty events";
-      startAt = "*:00/15";
-      restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
-      serviceConfig = {
-        ExecStart = "${pkgs.mailman-web}/bin/mailman-web runjobs quarter_hourly";
-        User = cfg.webUser;
-        WorkingDirectory = "/var/lib/mailman-web";
+    systemd.services = {
+      mailman = {
+        description = "GNU Mailman Master Process";
+        after = [ "network.target" ];
+        restartTriggers = [ config.environment.etc."mailman.cfg".source ];
+        wantedBy = [ "multi-user.target" ];
+        serviceConfig = {
+          ExecStart = "${pythonEnv}/bin/mailman start";
+          ExecStop = "${pythonEnv}/bin/mailman stop";
+          User = "mailman";
+          Group = "mailman";
+          Type = "forking";
+          RuntimeDirectory = "mailman";
+          LogsDirectory = "mailman";
+          PIDFile = "/run/mailman/master.pid";
+        };
       };
-    };
 
-    systemd.services.hyperkitty-hourly = {
-      inherit (cfg.hyperkitty) enable;
-      description = "Trigger hourly Hyperkitty events";
-      startAt = "hourly";
-      restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
-      serviceConfig = {
-        ExecStart = "${pkgs.mailman-web}/bin/mailman-web runjobs hourly";
-        User = cfg.webUser;
-        WorkingDirectory = "/var/lib/mailman-web";
+      mailman-settings = {
+        description = "Generate settings files (including secrets) for Mailman";
+        before = [ "mailman.service" "mailman-web-setup.service" "mailman-uwsgi.service" "hyperkitty.service" ];
+        requiredBy = [ "mailman.service" "mailman-web-setup.service" "mailman-uwsgi.service" "hyperkitty.service" ];
+        path = with pkgs; [ jq ];
+        script = ''
+          mailmanDir=/var/lib/mailman
+          mailmanWebDir=/var/lib/mailman-web
+
+          mailmanCfg=$mailmanDir/mailman-hyperkitty.cfg
+          mailmanWebCfg=$mailmanWebDir/settings_local.json
+
+          install -m 0775 -o mailman -g mailman -d /var/lib/mailman-web-static
+          install -m 0770 -o mailman -g mailman -d $mailmanDir
+          install -m 0770 -o ${cfg.webUser} -g mailman -d $mailmanWebDir
+
+          if [ ! -e $mailmanWebCfg ]; then
+              hyperkittyApiKey=$(tr -dc A-Za-z0-9 < /dev/urandom | head -c 64)
+              secretKey=$(tr -dc A-Za-z0-9 < /dev/urandom | head -c 64)
+
+              mailmanWebCfgTmp=$(mktemp)
+              jq -n '.MAILMAN_ARCHIVER_KEY=$archiver_key | .SECRET_KEY=$secret_key' \
+                  --arg archiver_key "$hyperkittyApiKey" \
+                  --arg secret_key "$secretKey" \
+                  >"$mailmanWebCfgTmp"
+              chown root:mailman "$mailmanWebCfgTmp"
+              chmod 440 "$mailmanWebCfgTmp"
+              mv -n "$mailmanWebCfgTmp" "$mailmanWebCfg"
+          fi
+
+          hyperkittyApiKey="$(jq -r .MAILMAN_ARCHIVER_KEY "$mailmanWebCfg")"
+          mailmanCfgTmp=$(mktemp)
+          sed "s/@API_KEY@/$hyperkittyApiKey/g" ${mailmanHyperkittyCfg} >"$mailmanCfgTmp"
+          chown mailman:mailman "$mailmanCfgTmp"
+          mv "$mailmanCfgTmp" "$mailmanCfg"
+        '';
       };
-    };
 
-    systemd.services.hyperkitty-daily = {
-      inherit (cfg.hyperkitty) enable;
-      description = "Trigger daily Hyperkitty events";
-      startAt = "daily";
-      restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
-      serviceConfig = {
-        ExecStart = "${pkgs.mailman-web}/bin/mailman-web runjobs daily";
-        User = cfg.webUser;
-        WorkingDirectory = "/var/lib/mailman-web";
+      mailman-web-setup = {
+        description = "Prepare mailman-web files and database";
+        before = [ "uwsgi.service" "mailman-uwsgi.service" ];
+        requiredBy = [ "mailman-uwsgi.service" ];
+        restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
+        script = ''
+          [[ -e "${webSettings.STATIC_ROOT}" ]] && find "${webSettings.STATIC_ROOT}/" -mindepth 1 -delete
+          ${pythonEnv}/bin/mailman-web migrate
+          ${pythonEnv}/bin/mailman-web collectstatic
+          ${pythonEnv}/bin/mailman-web compress
+        '';
+        serviceConfig = {
+          User = cfg.webUser;
+          Group = "mailman";
+          Type = "oneshot";
+          WorkingDirectory = "/var/lib/mailman-web";
+        };
       };
-    };
 
-    systemd.services.hyperkitty-weekly = {
-      inherit (cfg.hyperkitty) enable;
-      description = "Trigger weekly Hyperkitty events";
-      startAt = "weekly";
-      restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
-      serviceConfig = {
-        ExecStart = "${pkgs.mailman-web}/bin/mailman-web runjobs weekly";
-        User = cfg.webUser;
-        WorkingDirectory = "/var/lib/mailman-web";
+      mailman-uwsgi = mkIf cfg.serve.enable (let
+        uwsgiConfig.uwsgi = {
+          type = "normal";
+          plugins = ["python3"];
+          home = pythonEnv;
+          module = "mailman_web.wsgi";
+        };
+        uwsgiConfigFile = pkgs.writeText "uwsgi-mailman.json" (builtins.toJSON uwsgiConfig);
+      in {
+        wantedBy = ["multi-user.target"];
+        requires = ["mailman-uwsgi.socket" "mailman-web-setup.service"];
+        restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
+        serviceConfig = {
+          # Since the mailman-web settings.py obstinately creates a logs
+          # dir in the cwd, change to the (writable) runtime directory before
+          # starting uwsgi.
+          ExecStart = "${pkgs.coreutils}/bin/env -C $RUNTIME_DIRECTORY ${pkgs.uwsgi.override { plugins = ["python3"]; }}/bin/uwsgi --json ${uwsgiConfigFile}";
+          User = cfg.webUser;
+          Group = "mailman";
+          RuntimeDirectory = "mailman-uwsgi";
+        };
+      });
+
+      mailman-daily = {
+        description = "Trigger daily Mailman events";
+        startAt = "daily";
+        restartTriggers = [ config.environment.etc."mailman.cfg".source ];
+        serviceConfig = {
+          ExecStart = "${pythonEnv}/bin/mailman digests --send";
+          User = "mailman";
+          Group = "mailman";
+        };
       };
-    };
 
-    systemd.services.hyperkitty-yearly = {
-      inherit (cfg.hyperkitty) enable;
-      description = "Trigger yearly Hyperkitty events";
-      startAt = "yearly";
-      restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
-      serviceConfig = {
-        ExecStart = "${pkgs.mailman-web}/bin/mailman-web runjobs yearly";
-        User = cfg.webUser;
-        WorkingDirectory = "/var/lib/mailman-web";
+      hyperkitty = lib.mkIf cfg.hyperkitty.enable {
+        description = "GNU Hyperkitty QCluster Process";
+        after = [ "network.target" ];
+        restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
+        wantedBy = [ "mailman.service" "multi-user.target" ];
+        serviceConfig = {
+          ExecStart = "${pythonEnv}/bin/mailman-web qcluster";
+          User = cfg.webUser;
+          Group = "mailman";
+          WorkingDirectory = "/var/lib/mailman-web";
+        };
       };
-    };
+    } // flip lib.mapAttrs' {
+      "minutely" = "minutely";
+      "quarter_hourly" = "*:00/15";
+      "hourly" = "hourly";
+      "daily" = "daily";
+      "weekly" = "weekly";
+      "yearly" = "yearly";
+    } (name: startAt:
+      lib.nameValuePair "hyperkitty-${name}" (lib.mkIf cfg.hyperkitty.enable {
+        description = "Trigger ${name} Hyperkitty events";
+        inherit startAt;
+        restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
+        serviceConfig = {
+          ExecStart = "${pythonEnv}/bin/mailman-web runjobs minutely";
+          User = cfg.webUser;
+          Group = "mailman";
+          WorkingDirectory = "/var/lib/mailman-web";
+        };
+      }));
+  };
 
+  meta = {
+    maintainers = with lib.maintainers; [ lheckemann ];
+    doc = ./mailman.xml;
   };
 
 }
diff --git a/nixos/modules/services/mail/mailman.xml b/nixos/modules/services/mail/mailman.xml
new file mode 100644
index 00000000000..cbe50ed0b91
--- /dev/null
+++ b/nixos/modules/services/mail/mailman.xml
@@ -0,0 +1,59 @@
+<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-mailman">
+  <title>Mailman</title>
+  <para>
+    <link xlink:href="https://www.list.org">Mailman</link> is free
+    software for managing electronic mail discussion and e-newsletter
+    lists. Mailman and its web interface can be configured using the
+    corresponding NixOS module. Note that this service is best used with
+    an existing, securely configured Postfix setup, as it does not automatically configure this.
+  </para>
+
+  <section xml:id="module-services-mailman-basic-usage">
+    <title>Basic usage</title>
+    <para>
+      For a basic configuration, the following settings are suggested:
+      <programlisting>{ config, ... }: {
+  services.postfix = {
+    enable = true;
+    relayDomains = ["hash:/var/lib/mailman/data/postfix_domains"];
+    sslCert = config.security.acme.certs."lists.example.org".directory + "/full.pem";
+    sslKey = config.security.acme.certs."lists.example.org".directory + "/key.pem";
+    config = {
+      transport_maps = ["hash:/var/lib/mailman/data/postfix_lmtp"];
+      local_recipient_maps = ["hash:/var/lib/mailman/data/postfix_lmtp"];
+    };
+  };
+  services.mailman = {
+    <link linkend="opt-services.mailman.enable">enable</link> = true;
+    <link linkend="opt-services.mailman.serve.enable">serve.enable</link> = true;
+    <link linkend="opt-services.mailman.hyperkitty.enable">hyperkitty.enable</link> = true;
+    <link linkend="opt-services.mailman.hyperkitty.enable">webHosts</link> = ["lists.example.org"];
+    <link linkend="opt-services.mailman.hyperkitty.enable">siteOwner</link> = "mailman@example.org";
+  };
+  <link linkend="opt-services.nginx.virtualHosts._name_.enableACME">services.nginx.virtualHosts."lists.example.org".enableACME</link> = true;
+  <link linkend="opt-services.mailman.hyperkitty.enable">networking.firewall.allowedTCPPorts</link> = [ 25 80 443 ];
+}</programlisting>
+    </para>
+    <para>
+      DNS records will also be required:
+      <itemizedlist>
+        <listitem><para><literal>AAAA</literal> and <literal>A</literal> records pointing to the host in question, in order for browsers to be able to discover the address of the web server;</para></listitem>
+        <listitem><para>An <literal>MX</literal> record pointing to a domain name at which the host is reachable, in order for other mail servers to be able to deliver emails to the mailing lists it hosts.</para></listitem>
+      </itemizedlist>
+    </para>
+    <para>
+      After this has been done and appropriate DNS records have been
+      set up, the Postorius mailing list manager and the Hyperkitty
+      archive browser will be available at
+      https://lists.example.org/. Note that this setup is not
+      sufficient to deliver emails to most email providers nor to
+      avoid spam -- a number of additional measures for authenticating
+      incoming and outgoing mails, such as SPF, DMARC and DKIM are
+      necessary, but outside the scope of the Mailman module.
+    </para>
+  </section>
+</chapter>
diff --git a/nixos/modules/services/mail/opensmtpd.nix b/nixos/modules/services/mail/opensmtpd.nix
index 1fabe2da45c..c838d3b949d 100644
--- a/nixos/modules/services/mail/opensmtpd.nix
+++ b/nixos/modules/services/mail/opensmtpd.nix
@@ -17,6 +17,10 @@ in {
 
   ###### interface
 
+  imports = [
+    (mkRenamedOptionModule [ "services" "opensmtpd" "addSendmailToSystemPath" ] [ "services" "opensmtpd" "setSendmail" ])
+  ];
+
   options = {
 
     services.opensmtpd = {
@@ -34,13 +38,10 @@ in {
         description = "The OpenSMTPD package to use.";
       };
 
-      addSendmailToSystemPath = mkOption {
+      setSendmail = mkOption {
         type = types.bool;
         default = true;
-        description = ''
-          Whether to add OpenSMTPD's sendmail binary to the
-          system path or not.
-        '';
+        description = "Whether to set the system sendmail to OpenSMTPD's.";
       };
 
       extraServerArgs = mkOption {
@@ -82,7 +83,7 @@ in {
 
   ###### implementation
 
-  config = mkIf cfg.enable {
+  config = mkIf cfg.enable rec {
     users.groups = {
       smtpd.gid = config.ids.gids.smtpd;
       smtpq.gid = config.ids.gids.smtpq;
@@ -101,6 +102,14 @@ in {
       };
     };
 
+    security.wrappers.smtpctl = {
+      group = "smtpq";
+      setgid = true;
+      source = "${cfg.package}/bin/smtpctl";
+    };
+
+    services.mail.sendmailSetuidWrapper = mkIf cfg.setSendmail security.wrappers.smtpctl;
+
     systemd.tmpfiles.rules = [
       "d /var/spool/smtpd 711 root - - -"
       "d /var/spool/smtpd/offline 770 root smtpq - -"
@@ -119,7 +128,5 @@ in {
       serviceConfig.ExecStart = "${cfg.package}/sbin/smtpd -d -f ${conf} ${args}";
       environment.OPENSMTPD_PROC_PATH = "${procEnv}/libexec/opensmtpd";
     };
-
-    environment.systemPackages = mkIf cfg.addSendmailToSystemPath [ sendmail ];
   };
 }
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/bazarr.nix b/nixos/modules/services/misc/bazarr.nix
new file mode 100644
index 00000000000..d3fd5b08cc8
--- /dev/null
+++ b/nixos/modules/services/misc/bazarr.nix
@@ -0,0 +1,76 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+  cfg = config.services.bazarr;
+in
+{
+  options = {
+    services.bazarr = {
+      enable = mkEnableOption "bazarr, a subtitle manager for Sonarr and Radarr";
+
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Open ports in the firewall for the bazarr web interface.";
+      };
+
+      listenPort = mkOption {
+        type = types.port;
+        default = 6767;
+        description = "Port on which the bazarr web interface should listen";
+      };
+
+      user = mkOption {
+        type = types.str;
+        default = "bazarr";
+        description = "User account under which bazarr runs.";
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "bazarr";
+        description = "Group under which bazarr runs.";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.bazarr = {
+      description = "bazarr";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+
+      serviceConfig = rec {
+        Type = "simple";
+        User = cfg.user;
+        Group = cfg.group;
+        StateDirectory = "bazarr";
+        SyslogIdentifier = "bazarr";
+        ExecStart = pkgs.writeShellScript "start-bazarr" ''
+          ${pkgs.bazarr}/bin/bazarr \
+            --config '/var/lib/${StateDirectory}' \
+            --port ${toString cfg.listenPort} \
+            --no-update True
+        '';
+        Restart = "on-failure";
+      };
+    };
+
+    networking.firewall = mkIf cfg.openFirewall {
+      allowedTCPPorts = [ cfg.listenPort ];
+    };
+
+    users.users = mkIf (cfg.user == "bazarr") {
+      bazarr = {
+        group = cfg.group;
+        home = "/var/lib/${config.systemd.services.bazarr.serviceConfig.StateDirectory}";
+      };
+    };
+
+    users.groups = mkIf (cfg.group == "bazarr") {
+      bazarr = {};
+    };
+  };
+}
diff --git a/nixos/modules/services/misc/docker-registry.nix b/nixos/modules/services/misc/docker-registry.nix
index 89bac4f47d7..1c2e2cc5359 100644
--- a/nixos/modules/services/misc/docker-registry.nix
+++ b/nixos/modules/services/misc/docker-registry.nix
@@ -138,7 +138,7 @@ in {
 
       script = ''
         ${pkgs.docker-distribution}/bin/registry garbage-collect ${configFile}
-        ${pkgs.systemd}/bin/systemctl restart docker-registry.service
+        /run/current-system/systemd/bin/systemctl restart docker-registry.service
       '';
 
       startAt = optional cfg.enableGarbageCollect cfg.garbageCollectDates;
diff --git a/nixos/modules/services/misc/freeswitch.nix b/nixos/modules/services/misc/freeswitch.nix
index 0de5ba42811..b42f36e8663 100644
--- a/nixos/modules/services/misc/freeswitch.nix
+++ b/nixos/modules/services/misc/freeswitch.nix
@@ -78,7 +78,7 @@ in {
       wantedBy = [ "multi-user.target" ];
       restartTriggers = [ configDirectory ];
       serviceConfig = {
-        ExecStart = "${pkgs.systemd}/bin/systemctl try-reload-or-restart freeswitch.service";
+        ExecStart = "/run/current-system/systemd/bin/systemctl try-reload-or-restart freeswitch.service";
         RemainAfterExit = true;
         Type = "oneshot";
       };
@@ -95,9 +95,11 @@ in {
           -conf ${configPath} \\
           -base /var/lib/freeswitch";
         ExecReload = "${pkg}/bin/fs_cli -x reloadxml";
-        Restart = "always";
+        Restart = "on-failure";
         RestartSec = "5s";
+        CPUSchedulingPolicy = "fifo";
       };
     };
+    environment.systemPackages = [ pkg ];
   };
 }
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 730166b04d2..425f35f37cb 100644
--- a/nixos/modules/services/misc/gitlab.nix
+++ b/nixos/modules/services/misc/gitlab.nix
@@ -43,6 +43,9 @@ let
 
     [gitlab-shell]
     dir = "${cfg.packages.gitlab-shell}"
+    secret_file = "${cfg.statePath}/gitlab_shell_secret"
+    gitlab_url = "http+unix://${pathUrlQuote gitlabSocket}"
+    http_settings = { self_signed_cert = false }
 
     ${concatStringsSep "\n" (attrValues (mapAttrs (k: v: ''
     [[storage]]
@@ -51,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;
@@ -68,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
@@ -129,7 +132,7 @@ let
     HOME = "${cfg.statePath}/home";
     UNICORN_PATH = "${cfg.statePath}/";
     GITLAB_PATH = "${cfg.packages.gitlab}/share/gitlab/";
-    SCHEMA = "${cfg.statePath}/db/schema.rb";
+    SCHEMA = "${cfg.statePath}/db/structure.sql";
     GITLAB_UPLOADS_PATH = "${cfg.statePath}/uploads";
     GITLAB_LOG_PATH = "${cfg.statePath}/log";
     GITLAB_REDIS_CONFIG_FILE = pkgs.writeText "redis.yml" (builtins.toJSON redisConfig);
@@ -308,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 = "";
@@ -508,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 = {};
@@ -609,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;
@@ -675,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 = {
@@ -701,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";
       };
     };
 
@@ -758,7 +784,7 @@ in {
     };
 
     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;
@@ -795,6 +821,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/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/home-assistant.nix b/nixos/modules/services/misc/home-assistant.nix
index 86033d02bf3..0477254e7c1 100644
--- a/nixos/modules/services/misc/home-assistant.nix
+++ b/nixos/modules/services/misc/home-assistant.nix
@@ -11,9 +11,9 @@ let
     (recursiveUpdate defaultConfig cfg.config) else cfg.config));
   configFile = pkgs.runCommand "configuration.yaml" { preferLocalBuild = true; } ''
     ${pkgs.remarshal}/bin/json2yaml -i ${configJSON} -o $out
-    # Hack to support secrets, that are encoded as custom yaml objects,
-    # https://www.home-assistant.io/docs/configuration/secrets/
-    sed -i -e "s/'\!secret \(.*\)'/\!secret \1/" $out
+    # Hack to support custom yaml objects,
+    # i.e. secrets: https://www.home-assistant.io/docs/configuration/secrets/
+    sed -i -e "s/'\!\([a-z_]\+\) \(.*\)'/\!\1 \2/;s/^\!\!/\!/;" $out
   '';
 
   lovelaceConfigJSON = pkgs.writeText "ui-lovelace.json"
@@ -120,7 +120,9 @@ in {
             unit_system = "metric";
             time_zone = "UTC";
           };
-          frontend = { };
+          frontend = {
+            themes = "!include_dir_merge_named themes";
+          };
           http = { };
           feedreader.urls = [ "https://nixos.org/blogs.xml" ];
         }
@@ -238,6 +240,7 @@ in {
       '');
       serviceConfig = {
         ExecStart = "${package}/bin/hass --config '${cfg.configDir}'";
+        ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
         User = "hass";
         Group = "hass";
         Restart = "on-failure";
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-appservice-discord.nix b/nixos/modules/services/misc/matrix-appservice-discord.nix
new file mode 100644
index 00000000000..49c41ff637a
--- /dev/null
+++ b/nixos/modules/services/misc/matrix-appservice-discord.nix
@@ -0,0 +1,162 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+  dataDir = "/var/lib/matrix-appservice-discord";
+  registrationFile = "${dataDir}/discord-registration.yaml";
+  appDir = "${pkgs.matrix-appservice-discord}/lib/node_modules/matrix-appservice-discord";
+  cfg = config.services.matrix-appservice-discord;
+  # TODO: switch to configGen.json once RFC42 is implemented
+  settingsFile = pkgs.writeText "matrix-appservice-discord-settings.json" (builtins.toJSON cfg.settings);
+
+in {
+  options = {
+    services.matrix-appservice-discord = {
+      enable = mkEnableOption "a bridge between Matrix and Discord";
+
+      settings = mkOption rec {
+        # TODO: switch to types.config.json as prescribed by RFC42 once it's implemented
+        type = types.attrs;
+        apply = recursiveUpdate default;
+        default = {
+          database = {
+            filename = "${dataDir}/discord.db";
+
+            # TODO: remove those old config keys once the following issues are solved:
+            # * https://github.com/Half-Shot/matrix-appservice-discord/issues/490
+            # * https://github.com/Half-Shot/matrix-appservice-discord/issues/498
+            userStorePath = "${dataDir}/user-store.db";
+            roomStorePath = "${dataDir}/room-store.db";
+          };
+
+          # empty values necessary for registration file generation
+          # actual values defined in environmentFile
+          auth = {
+            clientID = "";
+            botToken = "";
+          };
+        };
+        example = literalExample ''
+          {
+            bridge = {
+              domain = "public-domain.tld";
+              homeserverUrl = "http://public-domain.tld:8008";
+            };
+          }
+        '';
+        description = ''
+          <filename>config.yaml</filename> configuration as a Nix attribute set.
+          </para>
+
+          <para>
+          Configuration options should match those described in
+          <link xlink:href="https://github.com/Half-Shot/matrix-appservice-discord/blob/master/config/config.sample.yaml">
+          config.sample.yaml</link>.
+          </para>
+
+          <para>
+          <option>config.bridge.domain</option> and <option>config.bridge.homeserverUrl</option>
+          should be set to match the public host name of the Matrix homeserver for webhooks and avatars to work.
+          </para>
+
+          <para>
+          Secret tokens should be specified using <option>environmentFile</option>
+          instead of this world-readable attribute set.
+        '';
+      };
+
+      environmentFile = mkOption {
+        type = types.nullOr types.path;
+        default = null;
+        description = ''
+          File containing environment variables to be passed to the matrix-appservice-discord service,
+          in which secret tokens can be specified securely by defining values for
+          <literal>APPSERVICE_DISCORD_AUTH_CLIENT_I_D</literal> and
+          <literal>APPSERVICE_DISCORD_AUTH_BOT_TOKEN</literal>.
+        '';
+      };
+
+      url = mkOption {
+        type = types.str;
+        default = "http://localhost:${toString cfg.port}";
+        description = ''
+          The URL where the application service is listening for HS requests.
+        '';
+      };
+
+      port = mkOption {
+        type = types.port;
+        default = 9005; # from https://github.com/Half-Shot/matrix-appservice-discord/blob/master/package.json#L11
+        description = ''
+          Port number on which the bridge should listen for internal communication with the Matrix homeserver.
+        '';
+      };
+
+      localpart = mkOption {
+        type = with types; nullOr str;
+        default = null;
+        description = ''
+          The user_id localpart to assign to the AS.
+        '';
+      };
+
+      serviceDependencies = mkOption {
+        type = with types; listOf str;
+        default = optional config.services.matrix-synapse.enable "matrix-synapse.service";
+        description = ''
+          List of Systemd services to require and wait for when starting the application service,
+          such as the Matrix homeserver if it's running on the same host.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.matrix-appservice-discord = {
+      description = "A bridge between Matrix and Discord.";
+
+      wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ] ++ cfg.serviceDependencies;
+      after = [ "network-online.target" ] ++ cfg.serviceDependencies;
+
+      preStart = ''
+        if [ ! -f '${registrationFile}' ]; then
+          ${pkgs.matrix-appservice-discord}/bin/matrix-appservice-discord \
+            --generate-registration \
+            --url=${escapeShellArg cfg.url} \
+            ${optionalString (cfg.localpart != null) "--localpart=${escapeShellArg cfg.localpart}"} \
+            --config='${settingsFile}' \
+            --file='${registrationFile}'
+        fi
+      '';
+
+      serviceConfig = {
+        Type = "simple";
+        Restart = "always";
+
+        ProtectSystem = "strict";
+        ProtectHome = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectControlGroups = true;
+
+        DynamicUser = true;
+        PrivateTmp = true;
+        WorkingDirectory = appDir;
+        StateDirectory = baseNameOf dataDir;
+        UMask = 0027;
+        EnvironmentFile = cfg.environmentFile;
+
+        ExecStart = ''
+          ${pkgs.matrix-appservice-discord}/bin/matrix-appservice-discord \
+            --file='${registrationFile}' \
+            --config='${settingsFile}' \
+            --port='${toString cfg.port}'
+        '';
+      };
+    };
+  };
+
+  meta.maintainers = with maintainers; [ pacien ];
+}
diff --git a/nixos/modules/services/misc/matrix-synapse.nix b/nixos/modules/services/misc/matrix-synapse.nix
index 703bc9416f8..3eb1073387f 100644
--- a/nixos/modules/services/misc/matrix-synapse.nix
+++ b/nixos/modules/services/misc/matrix-synapse.nix
@@ -9,6 +9,9 @@ let
   logConfigFile = pkgs.writeText "log_config.yaml" cfg.logConfig;
   mkResource = r: ''{names: ${builtins.toJSON r.names}, compress: ${boolToString r.compress}}'';
   mkListener = l: ''{port: ${toString l.port}, bind_address: "${l.bind_address}", type: ${l.type}, tls: ${boolToString l.tls}, x_forwarded: ${boolToString l.x_forwarded}, resources: [${concatStringsSep "," (map mkResource l.resources)}]}'';
+  pluginsEnv = cfg.package.python.buildEnv.override {
+    extraLibs = cfg.plugins;
+  };
   configFile = pkgs.writeText "homeserver.yaml" ''
 ${optionalString (cfg.tls_certificate_path != null) ''
 tls_certificate_path: "${cfg.tls_certificate_path}"
@@ -125,6 +128,14 @@ in {
           Overridable attribute of the matrix synapse server package to use.
         '';
       };
+      plugins = mkOption {
+        type = types.listOf types.package;
+        default = [ ];
+        defaultText = "with config.services.matrix-synapse.package.plugins [ matrix-synapse-ldap3 matrix-synapse-pam ]";
+        description = ''
+          List of additional Matrix plugins to make available.
+        '';
+      };
       no_tls = mkOption {
         type = types.bool;
         default = false;
@@ -664,7 +675,7 @@ in {
       }
     ];
 
-    users.users.matrix-synapse = { 
+    users.users.matrix-synapse = {
         group = "matrix-synapse";
         home = cfg.dataDir;
         createHome = true;
@@ -686,6 +697,7 @@ in {
           --keys-directory ${cfg.dataDir} \
           --generate-keys
       '';
+      environment.PYTHONPATH = makeSearchPathOutput "lib" cfg.package.python.sitePackages [ pluginsEnv ];
       serviceConfig = {
         Type = "notify";
         User = "matrix-synapse";
@@ -715,5 +727,6 @@ in {
   ];
 
   meta.doc = ./matrix-synapse.xml;
+  meta.maintainers = teams.matrix.members;
 
 }
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
new file mode 100644
index 00000000000..c5e8a5b85ec
--- /dev/null
+++ b/nixos/modules/services/misc/mautrix-telegram.nix
@@ -0,0 +1,163 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+  dataDir = "/var/lib/mautrix-telegram";
+  registrationFile = "${dataDir}/telegram-registration.yaml";
+  cfg = config.services.mautrix-telegram;
+  # TODO: switch to configGen.json once RFC42 is implemented
+  settingsFile = pkgs.writeText "mautrix-telegram-settings.json" (builtins.toJSON cfg.settings);
+
+in {
+  options = {
+    services.mautrix-telegram = {
+      enable = mkEnableOption "Mautrix-Telegram, a Matrix-Telegram hybrid puppeting/relaybot bridge";
+
+      settings = mkOption rec {
+        # TODO: switch to types.config.json as prescribed by RFC42 once it's implemented
+        type = types.attrs;
+        apply = recursiveUpdate default;
+        default = {
+          appservice = rec {
+            database = "sqlite:///${dataDir}/mautrix-telegram.db";
+            hostname = "0.0.0.0";
+            port = 8080;
+            address = "http://localhost:${toString port}";
+          };
+
+          bridge = {
+            permissions."*" = "relaybot";
+            relaybot.whitelist = [ ];
+          };
+
+          logging = {
+            version = 1;
+
+            formatters.precise.format = "[%(levelname)s@%(name)s] %(message)s";
+
+            handlers.console = {
+              class = "logging.StreamHandler";
+              formatter = "precise";
+            };
+
+            loggers = {
+              mau.level = "INFO";
+              telethon.level = "INFO";
+
+              # prevent tokens from leaking in the logs:
+              # https://github.com/tulir/mautrix-telegram/issues/351
+              aiohttp.level = "WARNING";
+            };
+
+            # log to console/systemd instead of file
+            root = {
+              level = "INFO";
+              handlers = [ "console" ];
+            };
+          };
+        };
+        example = literalExample ''
+          {
+            homeserver = {
+              address = "http://localhost:8008";
+              domain = "public-domain.tld";
+            };
+
+            appservice.public = {
+              prefix = "/public";
+              external = "https://public-appservice-address/public";
+            };
+
+            bridge.permissions = {
+              "example.com" = "full";
+              "@admin:example.com" = "admin";
+            };
+          }
+        '';
+        description = ''
+          <filename>config.yaml</filename> configuration as a Nix attribute set.
+          Configuration options should match those described in
+          <link xlink:href="https://github.com/tulir/mautrix-telegram/blob/master/example-config.yaml">
+          example-config.yaml</link>.
+          </para>
+
+          <para>
+          Secret tokens should be specified using <option>environmentFile</option>
+          instead of this world-readable attribute set.
+        '';
+      };
+
+      environmentFile = mkOption {
+        type = types.nullOr types.path;
+        default = null;
+        description = ''
+          File containing environment variables to be passed to the mautrix-telegram service,
+          in which secret tokens can be specified securely by defining values for
+          <literal>MAUTRIX_TELEGRAM_APPSERVICE_AS_TOKEN</literal>,
+          <literal>MAUTRIX_TELEGRAM_APPSERVICE_HS_TOKEN</literal>,
+          <literal>MAUTRIX_TELEGRAM_TELEGRAM_API_ID</literal>,
+          <literal>MAUTRIX_TELEGRAM_TELEGRAM_API_HASH</literal> and optionally
+          <literal>MAUTRIX_TELEGRAM_TELEGRAM_BOT_TOKEN</literal>.
+        '';
+      };
+
+      serviceDependencies = mkOption {
+        type = with types; listOf str;
+        default = optional config.services.matrix-synapse.enable "matrix-synapse.service";
+        description = ''
+          List of Systemd services to require and wait for when starting the application service.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.mautrix-telegram = {
+      description = "Mautrix-Telegram, a Matrix-Telegram hybrid puppeting/relaybot bridge.";
+
+      wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ] ++ cfg.serviceDependencies;
+      after = [ "network-online.target" ] ++ cfg.serviceDependencies;
+
+      preStart = ''
+        # generate the appservice's registration file if absent
+        if [ ! -f '${registrationFile}' ]; then
+          ${pkgs.mautrix-telegram}/bin/mautrix-telegram \
+            --generate-registration \
+            --base-config='${pkgs.mautrix-telegram}/${pkgs.mautrix-telegram.pythonModule.sitePackages}/mautrix_telegram/example-config.yaml' \
+            --config='${settingsFile}' \
+            --registration='${registrationFile}'
+        fi
+
+        # run automatic database init and migration scripts
+        ${pkgs.mautrix-telegram.alembic}/bin/alembic -x config='${settingsFile}' upgrade head
+      '';
+
+      serviceConfig = {
+        Type = "simple";
+        Restart = "always";
+
+        ProtectSystem = "strict";
+        ProtectHome = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectControlGroups = true;
+
+        DynamicUser = true;
+        PrivateTmp = true;
+        WorkingDirectory = pkgs.mautrix-telegram; # necessary for the database migration scripts to be found
+        StateDirectory = baseNameOf dataDir;
+        UMask = 0027;
+        EnvironmentFile = cfg.environmentFile;
+
+        ExecStart = ''
+          ${pkgs.mautrix-telegram}/bin/mautrix-telegram \
+            --config='${settingsFile}'
+        '';
+      };
+    };
+  };
+
+  meta.maintainers = with maintainers; [ pacien vskilet ];
+}
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 2577cb78e96..924a007efc6 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.
         '';
       };
 
@@ -439,9 +500,22 @@ in
 
   config = {
 
+    assertions = [
+      {
+        assertion = config.nix.distributedBuilds || config.nix.buildMachines == [];
+        message = "You must set `nix.distributedBuilds = true` to use nix.buildMachines";
+      }
+    ];
+
     nix.binaryCachePublicKeys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" ];
     nix.binaryCaches = [ "https://cache.nixos.org/" ];
 
+    environment.systemPackages =
+      [ nix
+        pkgs.nix-info
+      ]
+      ++ optional (config.programs.bash.enableCompletion && !versionAtLeast nixVersion "2.4pre") pkgs.nix-bash-completions;
+
     environment.etc."nix/nix.conf".source = nixConf;
 
     environment.etc."nix/registry.json".text = builtins.toJSON {
@@ -455,14 +529,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;
       };
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 1febdba0c8f..0e71cf92569 100644
--- a/nixos/modules/services/misc/redmine.nix
+++ b/nixos/modules/services/misc/redmine.nix
@@ -26,7 +26,7 @@ let
       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.bazaar}/bin/bzr
+      scm_bazaar_command: ${pkgs.breezy}/bin/bzr
       scm_darcs_command: ${pkgs.darcs}/bin/darcs
 
     ${cfg.extraConfig}
@@ -297,7 +297,7 @@ in
       environment.SCHEMA = "${cfg.stateDir}/cache/schema.db";
       path = with pkgs; [
         imagemagick
-        bazaar
+        breezy
         cvs
         darcs
         gitAndTools.git
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 77f6ccfe64f..3da99a3b38c 100644
--- a/nixos/modules/services/misc/sssd.nix
+++ b/nixos/modules/services/misc/sssd.nix
@@ -42,11 +42,6 @@ in {
   };
   config = mkMerge [
     (mkIf cfg.enable {
-      assertions = singleton {
-        assertion = nscd.enable;
-        message = "nscd must be enabled through `services.nscd.enable` for SSSD to work.";
-      };
-
       systemd.services.sssd = {
         description = "System Security Services Daemon";
         wantedBy    = [ "multi-user.target" ];
@@ -74,11 +69,12 @@ in {
         mode = "0400";
       };
 
-      system.nssModules = optional cfg.enable pkgs.sssd;
+      system.nssModules = pkgs.sssd;
       system.nssDatabases = {
+        group = [ "sss" ];
         passwd = [ "sss" ];
-        shadow = [ "sss" ];
         services = [ "sss" ];
+        shadow = [ "sss" ];
       };
       services.dbus.packages = [ pkgs.sssd ];
     })
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/misc/zoneminder.nix b/nixos/modules/services/misc/zoneminder.nix
index d5b3537068d..d9d34b7fac9 100644
--- a/nixos/modules/services/misc/zoneminder.nix
+++ b/nixos/modules/services/misc/zoneminder.nix
@@ -63,10 +63,6 @@ let
     ${cfg.extraConfig}
   '';
 
-  phpExtensions = with pkgs.phpPackages; [
-    { pkg = apcu; name = "apcu"; }
-  ];
-
 in {
   options = {
     services.zoneminder = with lib; {
@@ -289,11 +285,9 @@ in {
       phpfpm = lib.mkIf useNginx {
         pools.zoneminder = {
           inherit user group;
+          phpPackage = pkgs.php.withExtensions ({ enabled, all }: enabled ++ [ all.apcu ]);
           phpOptions = ''
             date.timezone = "${config.time.timeZone}"
-
-            ${lib.concatStringsSep "\n" (map (e:
-            "extension=${e.pkg}/lib/php/extensions/${e.name}.so") phpExtensions)}
           '';
           settings = lib.mapAttrs (name: lib.mkDefault) {
             "listen.owner" = user;
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 f9ad1457fc8..59748efe0de 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters.nix
@@ -21,6 +21,7 @@ let
   #  `serviceOpts.script` or `serviceOpts.serviceConfig.ExecStart`
 
   exporterOpts = genAttrs [
+    "apcupsd"
     "bind"
     "blackbox"
     "collectd"
@@ -28,14 +29,18 @@ let
     "dovecot"
     "fritzbox"
     "json"
+    "keylight"
+    "lnd"
     "mail"
     "mikrotik"
     "minio"
+    "modemmanager"
     "nextcloud"
     "nginx"
     "node"
     "postfix"
     "postgres"
+    "redis"
     "rspamd"
     "snmp"
     "surfboard"
@@ -168,15 +173,6 @@ in
        (opt: lib.mkRemovedOptionModule [ "services" "prometheus" "${opt}" ] ''
          The prometheus exporters are now configured using `services.prometheus.exporters'.
          See the 18.03 release notes for more information.
-       '' ))
-
-    ++ (lib.forEach [ "enable" "substitutions" "preset" ]
-       (opt: lib.mkRemovedOptionModule [ "fonts" "fontconfig" "ultimate" "${opt}" ] ''
-         The fonts.fontconfig.ultimate module and configuration is obsolete.
-         The repository has since been archived and activity has ceased.
-         https://github.com/bohoomil/fontconfig-ultimate/issues/171.
-         No action should be needed for font configuration, as the fonts.fontconfig
-         module is already used by default.
        '' ));
 
   options.services.prometheus.exporters = mkOption {
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix b/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix
new file mode 100644
index 00000000000..57c35a742c5
--- /dev/null
+++ b/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix
@@ -0,0 +1,38 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.apcupsd;
+in
+{
+  port = 9162;
+  extraOpts = {
+    apcupsdAddress = mkOption {
+      type = types.str;
+      default = ":3551";
+      description = ''
+        Address of the apcupsd Network Information Server (NIS).
+      '';
+    };
+
+    apcupsdNetwork = mkOption {
+      type = types.enum ["tcp" "tcp4" "tcp6"];
+      default = "tcp";
+      description = ''
+        Network of the apcupsd Network Information Server (NIS): one of "tcp", "tcp4", or "tcp6".
+      '';
+    };
+  };
+  serviceOpts = {
+    serviceConfig = {
+      ExecStart = ''
+        ${pkgs.prometheus-apcupsd-exporter}/bin/apcupsd_exporter \
+          -telemetry.addr ${cfg.listenAddress}:${toString cfg.port} \
+          -apcupsd.addr ${cfg.apcupsdAddress} \
+          -apcupsd.network ${cfg.apcupsdNetwork} \
+          ${concatStringsSep " \\\n  " cfg.extraFlags}
+      '';
+    };
+  };
+}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/keylight.nix b/nixos/modules/services/monitoring/prometheus/exporters/keylight.nix
new file mode 100644
index 00000000000..dfa56343b87
--- /dev/null
+++ b/nixos/modules/services/monitoring/prometheus/exporters/keylight.nix
@@ -0,0 +1,19 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.keylight;
+in
+{
+  port = 9288;
+  serviceOpts = {
+    serviceConfig = {
+      ExecStart = ''
+        ${pkgs.prometheus-keylight-exporter}/bin/keylight_exporter \
+          -metrics.addr ${cfg.listenAddress}:${toString cfg.port} \
+          ${concatStringsSep " \\\n  " cfg.extraFlags}
+      '';
+    };
+  };
+}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/lnd.nix b/nixos/modules/services/monitoring/prometheus/exporters/lnd.nix
new file mode 100644
index 00000000000..35f97202057
--- /dev/null
+++ b/nixos/modules/services/monitoring/prometheus/exporters/lnd.nix
@@ -0,0 +1,46 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.lnd;
+in
+{
+  port = 9092;
+  extraOpts = {
+    lndHost = mkOption {
+      type = types.str;
+      default = "localhost:10009";
+      description = ''
+        lnd instance gRPC address:port.
+      '';
+    };
+
+    lndTlsPath = mkOption {
+      type = types.path;
+      description = ''
+        Path to lnd TLS certificate.
+      '';
+    };
+
+    lndMacaroonDir = mkOption {
+      type = types.path;
+      description = ''
+        Path to lnd macaroons.
+      '';
+    };
+  };
+  serviceOpts.serviceConfig = {
+    ExecStart = ''
+      ${pkgs.prometheus-lnd-exporter}/bin/lndmon \
+        --prometheus.listenaddr=${cfg.listenAddress}:${toString cfg.port} \
+        --prometheus.logdir=/var/log/prometheus-lnd-exporter \
+        --lnd.host=${cfg.lndHost} \
+        --lnd.tlspath=${cfg.lndTlsPath} \
+        --lnd.macaroondir=${cfg.lndMacaroonDir} \
+        ${concatStringsSep " \\\n  " cfg.extraFlags}
+    '';
+    LogsDirectory = "prometheus-lnd-exporter";
+    ReadOnlyPaths = [ cfg.lndTlsPath cfg.lndMacaroonDir ];
+  };
+}
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/prometheus/exporters/redis.nix b/nixos/modules/services/monitoring/prometheus/exporters/redis.nix
new file mode 100644
index 00000000000..befbcb21f76
--- /dev/null
+++ b/nixos/modules/services/monitoring/prometheus/exporters/redis.nix
@@ -0,0 +1,19 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.redis;
+in
+{
+  port = 9121;
+  serviceOpts = {
+    serviceConfig = {
+      ExecStart = ''
+        ${pkgs.prometheus-redis-exporter}/bin/redis_exporter \
+          -web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
+          ${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/tuptime.nix b/nixos/modules/services/monitoring/tuptime.nix
index 731260a5c20..8f79d916599 100644
--- a/nixos/modules/services/monitoring/tuptime.nix
+++ b/nixos/modules/services/monitoring/tuptime.nix
@@ -32,7 +32,10 @@ in {
 
     environment.systemPackages = [ pkgs.tuptime ];
 
-    users.users.tuptime.description = "tuptime database owner";
+    users = {
+      groups._tuptime.members = [ "_tuptime" ];
+      users._tuptime.description = "tuptime database owner";
+    };
 
     systemd = {
       services = {
@@ -45,7 +48,7 @@ in {
           serviceConfig = {
             StateDirectory = "tuptime";
             Type = "oneshot";
-            User = "tuptime";
+            User = "_tuptime";
             RemainAfterExit = true;
             ExecStart = "${pkgs.tuptime}/bin/tuptime -x";
             ExecStop = "${pkgs.tuptime}/bin/tuptime -xg";
@@ -57,7 +60,7 @@ in {
           serviceConfig = {
             StateDirectory = "tuptime";
             Type = "oneshot";
-            User = "tuptime";
+            User = "_tuptime";
             ExecStart = "${pkgs.tuptime}/bin/tuptime -x";
           };
         };
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/ipfs.nix b/nixos/modules/services/network-filesystems/ipfs.nix
index 880f70ae141..f298f831fa7 100644
--- a/nixos/modules/services/network-filesystems/ipfs.nix
+++ b/nixos/modules/services/network-filesystems/ipfs.nix
@@ -1,69 +1,39 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, options, ... }:
 with lib;
 let
-  inherit (pkgs) ipfs runCommand makeWrapper;
-
   cfg = config.services.ipfs;
+  opt = options.services.ipfs;
 
   ipfsFlags = toString ([
     (optionalString  cfg.autoMount                   "--mount")
-    #(optionalString  cfg.autoMigrate                 "--migrate")
     (optionalString  cfg.enableGC                    "--enable-gc")
     (optionalString (cfg.serviceFdlimit != null)     "--manage-fdlimit=false")
     (optionalString (cfg.defaultMode == "offline")   "--offline")
     (optionalString (cfg.defaultMode == "norouting") "--routing=none")
   ] ++ cfg.extraFlags);
 
-  defaultDataDir = if versionAtLeast config.system.stateVersion "17.09" then
-    "/var/lib/ipfs" else
-    "/var/lib/ipfs/.ipfs";
-
-  # Wrapping the ipfs binary with the environment variable IPFS_PATH set to dataDir because we can't set it in the user environment
-  wrapped = runCommand "ipfs" { buildInputs = [ makeWrapper ]; preferLocalBuild = true; } ''
-    mkdir -p "$out/bin"
-    makeWrapper "${ipfs}/bin/ipfs" "$out/bin/ipfs" \
-      --set IPFS_PATH ${cfg.dataDir} \
-      --prefix PATH : /run/wrappers/bin
-  '';
+  splitMulitaddr = addrRaw: lib.tail (lib.splitString "/" addrRaw);
+
+  multiaddrToListenStream = addrRaw: let
+      addr = splitMulitaddr addrRaw;
+      s = builtins.elemAt addr;
+    in if s 0 == "ip4" && s 2 == "tcp"
+      then "${s 1}:${s 3}"
+    else if s 0 == "ip6" && s 2 == "tcp"
+      then "[${s 1}]:${s 3}"
+    else if s 0 == "unix"
+      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
 
-
-  commonEnv = {
-    environment.IPFS_PATH = cfg.dataDir;
-    path = [ wrapped ];
-    serviceConfig.User = cfg.user;
-    serviceConfig.Group = cfg.group;
-  };
-
-  baseService = recursiveUpdate commonEnv {
-    wants = [ "ipfs-init.service" ];
-    # NB: migration must be performed prior to pre-start, else we get the failure message!
-    preStart = optionalString cfg.autoMount ''
-      ipfs --local config Mounts.FuseAllowOther --json true
-      ipfs --local config Mounts.IPFS ${cfg.ipfsMountDir}
-      ipfs --local config Mounts.IPNS ${cfg.ipnsMountDir}
-    '' + concatStringsSep "\n" (collect
-          isString
-          (mapAttrsRecursive
-            (path: value:
-            # Using heredoc below so that the value is never improperly quoted
-            ''
-              read value <<EOF
-              ${builtins.toJSON value}
-              EOF
-              ipfs --local config --json "${concatStringsSep "." path}" "$value"
-            '')
-            ({ Addresses.API = cfg.apiAddress;
-               Addresses.Gateway = cfg.gatewayAddress;
-               Addresses.Swarm = cfg.swarmAddress;
-            } //
-            cfg.extraConfig))
-        );
-    serviceConfig = {
-      ExecStart = "${wrapped}/bin/ipfs daemon ${ipfsFlags}";
-      Restart = "on-failure";
-      RestartSec = 1;
-    } // optionalAttrs (cfg.serviceFdlimit != null) { LimitNOFILE = cfg.serviceFdlimit; };
-  };
 in {
 
   ###### interface
@@ -88,7 +58,9 @@ in {
 
       dataDir = mkOption {
         type = types.str;
-        default = defaultDataDir;
+        default = if versionAtLeast config.system.stateVersion "17.09"
+                  then "/var/lib/ipfs"
+                  else "/var/lib/ipfs/.ipfs";
         description = "The data dir for IPFS";
       };
 
@@ -98,18 +70,6 @@ in {
         description = "systemd service that is enabled by default";
       };
 
-      /*
-      autoMigrate = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Whether IPFS should try to migrate the file system automatically.
-
-          The daemon will need to be able to download a binary from https://ipfs.io to perform the migration.
-        '';
-      };
-      */
-
       autoMount = mkOption {
         type = types.bool;
         default = false;
@@ -142,7 +102,12 @@ in {
 
       swarmAddress = mkOption {
         type = types.listOf types.str;
-        default = [ "/ip4/0.0.0.0/tcp/4001" "/ip6/::/tcp/4001" ];
+        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";
       };
 
@@ -199,13 +164,21 @@ in {
         example = 64*1024;
       };
 
+      startWhenNeeded = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Whether to use socket activation to start IPFS when needed.";
+      };
+
     };
   };
 
   ###### implementation
 
   config = mkIf cfg.enable {
-    environment.systemPackages = [ wrapped ];
+    environment.systemPackages = [ pkgs.ipfs ];
+    environment.variables.IPFS_PATH = cfg.dataDir;
+
     programs.fuse = mkIf cfg.autoMount {
       userAllowOther = true;
     };
@@ -217,6 +190,9 @@ in {
         createHome = false;
         uid = config.ids.uids.ipfs;
         description = "IPFS daemon user";
+        packages = [
+          pkgs.ipfs-migrator
+        ];
       };
     };
 
@@ -231,10 +207,14 @@ in {
       "d '${cfg.ipnsMountDir}' - ${cfg.user} ${cfg.group} - -"
     ];
 
-    systemd.services.ipfs-init = recursiveUpdate commonEnv {
+    systemd.packages = [ pkgs.ipfs ];
+
+    systemd.services.ipfs-init = {
       description = "IPFS Initializer";
 
-      before = [ "ipfs.service" "ipfs-offline.service" "ipfs-norouting.service" ];
+      environment.IPFS_PATH = cfg.dataDir;
+
+      path = [ pkgs.ipfs ];
 
       script = ''
         if [[ ! -f ${cfg.dataDir}/config ]]; then
@@ -248,34 +228,72 @@ in {
         fi
       '';
 
+      wantedBy = [ "default.target" ];
+
       serviceConfig = {
         Type = "oneshot";
         RemainAfterExit = true;
+        User = cfg.user;
+        Group = cfg.group;
       };
     };
 
-    # TODO These 3 definitions possibly be further abstracted through use of a function
-    # like: mutexServices "ipfs" [ "", "offline", "norouting" ] { ... shared conf here ... }
+    systemd.services.ipfs = {
+      path = [ "/run/wrappers" pkgs.ipfs ];
+      environment.IPFS_PATH = cfg.dataDir;
 
-    systemd.services.ipfs = recursiveUpdate baseService {
-      description = "IPFS Daemon";
-      wantedBy = mkIf (cfg.defaultMode == "online") [ "multi-user.target" ];
-      after = [ "network.target" "ipfs-init.service" ];
-      conflicts = [ "ipfs-offline.service" "ipfs-norouting.service"];
+      wants = [ "ipfs-init.service" ];
+      after = [ "ipfs-init.service" ];
+
+      preStart = optionalString cfg.autoMount ''
+        ipfs --local config Mounts.FuseAllowOther --json true
+        ipfs --local config Mounts.IPFS ${cfg.ipfsMountDir}
+        ipfs --local config Mounts.IPNS ${cfg.ipnsMountDir}
+      '' + concatStringsSep "\n" (collect
+            isString
+            (mapAttrsRecursive
+              (path: value:
+              # Using heredoc below so that the value is never improperly quoted
+              ''
+                read value <<EOF
+                ${builtins.toJSON value}
+                EOF
+                ipfs --local config --json "${concatStringsSep "." path}" "$value"
+              '')
+              ({ Addresses.API = cfg.apiAddress;
+                 Addresses.Gateway = cfg.gatewayAddress;
+                 Addresses.Swarm = cfg.swarmAddress;
+              } //
+              cfg.extraConfig))
+          );
+      serviceConfig = {
+        ExecStart = ["" "${pkgs.ipfs}/bin/ipfs daemon ${ipfsFlags}"];
+        User = cfg.user;
+        Group = cfg.group;
+      } // optionalAttrs (cfg.serviceFdlimit != null) { LimitNOFILE = cfg.serviceFdlimit; };
+    } // optionalAttrs (!cfg.startWhenNeeded) {
+      wantedBy = [ "default.target" ];
     };
 
-    systemd.services.ipfs-offline = recursiveUpdate baseService {
-      description = "IPFS Daemon (offline mode)";
-      wantedBy = mkIf (cfg.defaultMode == "offline") [ "multi-user.target" ];
-      after = [ "ipfs-init.service" ];
-      conflicts = [ "ipfs.service" "ipfs-norouting.service"];
+    systemd.sockets.ipfs-gateway = {
+      wantedBy = [ "sockets.target" ];
+      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.services.ipfs-norouting = recursiveUpdate baseService {
-      description = "IPFS Daemon (no routing mode)";
-      wantedBy = mkIf (cfg.defaultMode == "norouting") [ "multi-user.target" ];
-      after = [ "ipfs-init.service" ];
-      conflicts = [ "ipfs.service" "ipfs-offline.service"];
+    systemd.sockets.ipfs-api = {
+      wantedBy = [ "sockets.target" ];
+      # We also include "%t/ipfs.sock" because tere is no way to put the "%t"
+      # in the multiaddr.
+      socketConfig.ListenStream = let
+          fromCfg = multiaddrToListenStream cfg.apiAddress;
+        in [ "" "%t/ipfs.sock" ] ++ lib.optional (fromCfg != null) fromCfg;
     };
 
   };
diff --git a/nixos/modules/services/network-filesystems/samba.nix b/nixos/modules/services/network-filesystems/samba.nix
index a115590ccaa..08c912e0fcd 100644
--- a/nixos/modules/services/network-filesystems/samba.nix
+++ b/nixos/modules/services/network-filesystems/samba.nix
@@ -224,6 +224,7 @@ in
       (mkIf cfg.enable {
 
         system.nssModules = optional cfg.nsswins samba;
+        system.nssDatabases.hosts = optional cfg.nsswins "wins";
 
         systemd = {
           targets.samba = {
diff --git a/nixos/modules/services/networking/3proxy.nix b/nixos/modules/services/networking/3proxy.nix
index ae8a4958ca9..37a48657c1c 100644
--- a/nixos/modules/services/networking/3proxy.nix
+++ b/nixos/modules/services/networking/3proxy.nix
@@ -124,7 +124,7 @@ in {
                   <literal>"iponly"</literal>: specifies no authentication. ACLs authorization is used.
                 </para></listitem>
                 <listitem><para>
-                  <literal>"strong"</literal>: authentication by username/password. If user is not registered his access is denied regardless of ACLs.
+                  <literal>"strong"</literal>: authentication by username/password. If user is not registered their access is denied regardless of ACLs.
                 </para></listitem>
               </itemizedlist>
 
diff --git a/nixos/modules/services/networking/avahi-daemon.nix b/nixos/modules/services/networking/avahi-daemon.nix
index ddcfe3d77e2..c876b252e8c 100644
--- a/nixos/modules/services/networking/avahi-daemon.nix
+++ b/nixos/modules/services/networking/avahi-daemon.nix
@@ -238,6 +238,10 @@ in
     users.groups.avahi = {};
 
     system.nssModules = optional cfg.nssmdns pkgs.nssmdns;
+    system.nssDatabases.hosts = optionals cfg.nssmdns (mkMerge [
+      [ "mdns_minimal [NOTFOUND=return]" ]
+      (mkOrder 1501 [ "mdns" ]) # 1501 to ensure it's after dns
+    ]);
 
     environment.systemPackages = [ pkgs.avahi ];
 
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
new file mode 100644
index 00000000000..dde24522756
--- /dev/null
+++ b/nixos/modules/services/networking/blockbook-frontend.nix
@@ -0,0 +1,275 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  eachBlockbook = config.services.blockbook-frontend;
+
+  blockbookOpts = { config, lib, name, ...}: {
+
+    options = {
+
+      enable = mkEnableOption "blockbook-frontend application.";
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.blockbook;
+        description = "Which blockbook package to use.";
+      };
+
+      user = mkOption {
+        type = types.str;
+        default = "blockbook-frontend-${name}";
+        description = "The user as which to run blockbook-frontend-${name}.";
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "${config.user}";
+        description = "The group as which to run blockbook-frontend-${name}.";
+      };
+
+      certFile = mkOption {
+        type = types.nullOr types.path;
+        default = null;
+        example = "/etc/secrets/blockbook-frontend-${name}/certFile";
+        description = ''
+          To enable SSL, specify path to the name of certificate files without extension.
+          Expecting <filename>certFile.crt</filename> and <filename>certFile.key</filename>.
+        '';
+      };
+
+      configFile = mkOption {
+        type = with types; nullOr path;
+        default = null;
+        example = "${config.dataDir}/config.json";
+        description = "Location of the blockbook configuration file.";
+      };
+
+      coinName = mkOption {
+        type = types.str;
+        default = "Bitcoin";
+        example = "Bitcoin";
+        description = ''
+          See <link xlink:href="https://github.com/trezor/blockbook/blob/master/bchain/coins/blockchain.go#L61"/>
+          for current of coins supported in master (Note: may differ from release).
+        '';
+      };
+
+      cssDir = mkOption {
+        type = types.path;
+        default = "${config.package}/share/css/";
+        example = "${config.dataDir}/static/css/";
+        description = ''
+          Location of the dir with <filename>main.css</filename> CSS file.
+          By default, the one shipped with the package is used.
+        '';
+      };
+
+      dataDir = mkOption {
+        type = types.path;
+        default = "/var/lib/blockbook-frontend-${name}";
+        description = "Location of blockbook-frontend-${name} data directory.";
+      };
+
+      debug = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Debug mode, return more verbose errors, reload templates on each request.";
+      };
+
+      internal = mkOption {
+        type = types.nullOr types.str;
+        default = ":9030";
+        example = ":9030";
+        description = "Internal http server binding <literal>[address]:port</literal>.";
+      };
+
+      messageQueueBinding = mkOption {
+        type = types.str;
+        default = "tcp://127.0.0.1:38330";
+        example = "tcp://127.0.0.1:38330";
+        description = "Message Queue Binding <literal>address:port</literal>.";
+      };
+
+      public = mkOption {
+        type = types.nullOr types.str;
+        default = ":9130";
+        example = ":9130";
+        description = "Public http server binding <literal>[address]:port</literal>.";
+      };
+
+      rpc = {
+        url = mkOption {
+          type = types.str;
+          default = "http://127.0.0.1";
+          description = "URL for JSON-RPC connections.";
+        };
+
+        port = mkOption {
+          type = types.port;
+          default = 8030;
+          description = "Port for JSON-RPC connections.";
+        };
+
+        user = mkOption {
+          type = types.str;
+          default = "rpc";
+          example = "rpc";
+          description = "Username for JSON-RPC connections.";
+        };
+
+        password = mkOption {
+          type = types.str;
+          default = "rpc";
+          example = "rpc";
+          description = ''
+            RPC password for JSON-RPC connections.
+            Warning: this is stored in cleartext in the Nix store!!!
+            Use <literal>configFile</literal> or <literal>passwordFile</literal> if needed.
+          '';
+        };
+
+        passwordFile = mkOption {
+          type = types.nullOr types.path;
+          default = null;
+          description = ''
+            File containing password of the RPC user.
+            Note: This options is ignored when <literal>configFile</literal> is used.
+          '';
+        };
+      };
+
+      sync = mkOption {
+        type = types.bool;
+        default = true;
+        description = "Synchronizes until tip, if together with zeromq, keeps index synchronized.";
+      };
+
+      templateDir = mkOption {
+        type = types.path;
+        default = "${config.package}/share/templates/";
+        example = "${config.dataDir}/templates/static/";
+        description = "Location of the HTML templates. By default, ones shipped with the package are used.";
+      };
+
+      extraConfig = mkOption {
+        type = types.attrs;
+        default = {};
+        example = literalExample '' {
+          alternative_estimate_fee = "whatthefee-disabled";
+          alternative_estimate_fee_params = "{\"url\": \"https://whatthefee.io/data.json\", \"periodSeconds\": 60}";
+          fiat_rates = "coingecko";
+          fiat_rates_params = "{\"url\": \"https://api.coingecko.com/api/v3\", \"coin\": \"bitcoin\", \"periodSeconds\": 60}";
+          coin_shortcut = "BTC";
+          coin_label = "Bitcoin";
+          xpub_magic = 76067358;
+          xpub_magic_segwit_p2sh = 77429938;
+          xpub_magic_segwit_native = 78792518;
+        }'';
+        description = ''
+          Additional configurations to be appended to <filename>coin.conf</filename>.
+          Overrides any already defined configuration options.
+          See <link xlink:href="https://github.com/trezor/blockbook/tree/master/configs/coins"/>
+          for current configuration options supported in master (Note: may differ from release).
+        '';
+      };
+
+      extraCmdLineOptions = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        example = [ "-workers=1" "-dbcache=0" "-logtosderr" ];
+        description = ''
+          Extra command line options to pass to Blockbook.
+          Run blockbook --help to list all available options.
+        '';
+      };
+    };
+  };
+in
+{
+  # interface
+
+  options = {
+    services.blockbook-frontend = mkOption {
+      type = types.attrsOf (types.submodule blockbookOpts);
+      default = {};
+      description = "Specification of one or more blockbook-frontend instances.";
+    };
+  };
+
+  # implementation
+
+  config = mkIf (eachBlockbook != {}) {
+
+    systemd.services = mapAttrs' (blockbookName: cfg: (
+      nameValuePair "blockbook-frontend-${blockbookName}" (
+        let
+          configFile = if cfg.configFile != null then cfg.configFile else
+            pkgs.writeText "config.conf" (builtins.toJSON ( {
+                coin_name = "${cfg.coinName}";
+                rpc_user = "${cfg.rpc.user}";
+                rpc_pass = "${cfg.rpc.password}";
+                rpc_url = "${cfg.rpc.url}:${toString cfg.rpc.port}";
+                message_queue_binding = "${cfg.messageQueueBinding}";
+              } // cfg.extraConfig)
+            );
+        in {
+          description = "blockbook-frontend-${blockbookName} daemon";
+          after = [ "network.target" ];
+          wantedBy = [ "multi-user.target" ];
+          preStart = ''
+            ln -sf ${cfg.templateDir} ${cfg.dataDir}/static/
+            ln -sf ${cfg.cssDir} ${cfg.dataDir}/static/
+            ${optionalString (cfg.rpc.passwordFile != null && cfg.configFile == null) ''
+              CONFIGTMP=$(mktemp)
+              ${pkgs.jq}/bin/jq ".rpc_pass = \"$(cat ${cfg.rpc.passwordFile})\"" ${configFile} > $CONFIGTMP
+              mv $CONFIGTMP ${cfg.dataDir}/${blockbookName}-config.json
+            ''}
+          '';
+          serviceConfig = {
+            User = cfg.user;
+            Group = cfg.group;
+            ExecStart = ''
+               ${cfg.package}/bin/blockbook \
+               ${if (cfg.rpc.passwordFile != null && cfg.configFile == null) then
+               "-blockchaincfg=${cfg.dataDir}/${blockbookName}-config.json"
+               else
+               "-blockchaincfg=${configFile}"
+               } \
+               -datadir=${cfg.dataDir} \
+               ${optionalString (cfg.sync != false) "-sync"} \
+               ${optionalString (cfg.certFile != null) "-certfile=${toString cfg.certFile}"} \
+               ${optionalString (cfg.debug != false) "-debug"} \
+               ${optionalString (cfg.internal != null) "-internal=${toString cfg.internal}"} \
+               ${optionalString (cfg.public != null) "-public=${toString cfg.public}"} \
+               ${toString cfg.extraCmdLineOptions}
+            '';
+            Restart = "on-failure";
+            WorkingDirectory = cfg.dataDir;
+            LimitNOFILE = 65536;
+          };
+        }
+    ) )) eachBlockbook;
+
+    systemd.tmpfiles.rules = flatten (mapAttrsToList (blockbookName: cfg: [
+      "d ${cfg.dataDir} 0750 ${cfg.user} ${cfg.group} - -"
+      "d ${cfg.dataDir}/static 0750 ${cfg.user} ${cfg.group} - -"
+    ]) eachBlockbook);
+
+    users.users = mapAttrs' (blockbookName: cfg: (
+      nameValuePair "blockbook-frontend-${blockbookName}" {
+      name = cfg.user;
+      group = cfg.group;
+      home = cfg.dataDir;
+      isSystemUser = true;
+    })) eachBlockbook;
+
+    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 1a2c4aec665..d90a5923bc6 100644
--- a/nixos/modules/services/networking/corerad.nix
+++ b/nixos/modules/services/networking/corerad.nix
@@ -4,14 +4,50 @@ with lib;
 
 let
   cfg = config.services.corerad;
+
+  writeTOML = name: x:
+    pkgs.runCommandNoCCLocal name {
+      passAsFile = ["config"];
+      config = builtins.toJSON x;
+      buildInputs = [ pkgs.go-toml ];
+    } "jsontoml < $configPath > $out";
+
 in {
-  meta = {
-    maintainers = with maintainers; [ mdlayher ];
-  };
+  meta.maintainers = with maintainers; [ mdlayher ];
 
   options.services.corerad = {
     enable = mkEnableOption "CoreRAD IPv6 NDP RA daemon";
 
+    settings = mkOption {
+      type = types.uniq types.attrs;
+      example = literalExample ''
+        {
+          interfaces = [
+            # eth0 is an upstream interface monitoring for IPv6 router advertisements.
+            {
+              name = "eth0";
+              monitor = true;
+            }
+            # eth1 is a downstream interface advertising IPv6 prefixes for SLAAC.
+            {
+              name = "eth1";
+              advertise = true;
+              prefix = [{ prefix = "::/64"; }];
+            }
+          ];
+          # Optionally enable Prometheus metrics.
+          debug = {
+            address = "localhost:9430";
+            prometheus = true;
+          };
+        }
+      '';
+      description = ''
+        Configuration for CoreRAD, see <link xlink:href="https://github.com/mdlayher/corerad/blob/master/internal/config/default.toml"/>
+        for supported values. Ignored if configFile is set.
+      '';
+    };
+
     configFile = mkOption {
       type = types.path;
       example = literalExample "\"\${pkgs.corerad}/etc/corerad/corerad.toml\"";
@@ -27,6 +63,9 @@ in {
   };
 
   config = mkIf cfg.enable {
+    # Prefer the config file over settings if both are set.
+    services.corerad.configFile = mkDefault (writeTOML "corerad.toml" cfg.settings);
+
     systemd.services.corerad = {
       description = "CoreRAD IPv6 NDP RA daemon";
       after = [ "network.target" ];
@@ -38,8 +77,11 @@ in {
         AmbientCapabilities = "CAP_NET_ADMIN CAP_NET_RAW";
         NoNewPrivileges = true;
         DynamicUser = true;
+        Type = "notify";
+        NotifyAccess = "main";
         ExecStart = "${getBin cfg.package}/bin/corerad -c=${cfg.configFile}";
         Restart = "on-failure";
+        RestartKillSignal = "SIGHUP";
       };
     };
   };
diff --git a/nixos/modules/services/networking/dhcpcd.nix b/nixos/modules/services/networking/dhcpcd.nix
index c0619211c2f..0507b739d49 100644
--- a/nixos/modules/services/networking/dhcpcd.nix
+++ b/nixos/modules/services/networking/dhcpcd.nix
@@ -81,7 +81,7 @@ let
           # anything ever again ("couldn't resolve ..., giving up on
           # it"), so we silently lose time synchronisation. This also
           # applies to openntpd.
-          ${config.systemd.package}/bin/systemctl try-reload-or-restart ntpd.service openntpd.service chronyd.service || true
+          /run/current-system/systemd/bin/systemctl try-reload-or-restart ntpd.service openntpd.service chronyd.service || true
       fi
 
       ${cfg.runHook}
@@ -217,7 +217,7 @@ in
     powerManagement.resumeCommands = mkIf config.systemd.services.dhcpcd.enable
       ''
         # Tell dhcpcd to rebind its interfaces if it's running.
-        ${config.systemd.package}/bin/systemctl reload dhcpcd.service
+        /run/current-system/systemd/bin/systemctl reload dhcpcd.service
       '';
 
   };
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/dnschain.nix b/nixos/modules/services/networking/dnschain.nix
deleted file mode 100644
index 003609ea705..00000000000
--- a/nixos/modules/services/networking/dnschain.nix
+++ /dev/null
@@ -1,184 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  cfgs = config.services;
-  cfg  = cfgs.dnschain;
-
-  dataDir  = "/var/lib/dnschain";
-  username = "dnschain";
-
-  configFile = pkgs.writeText "dnschain.conf" ''
-    [log]
-    level = info
-
-    [dns]
-    host = ${cfg.dns.address}
-    port = ${toString cfg.dns.port}
-    oldDNSMethod = NO_OLD_DNS
-    externalIP = ${cfg.dns.externalAddress}
-
-    [http]
-    host = ${cfg.api.hostname}
-    port = ${toString cfg.api.port}
-    tlsPort = ${toString cfg.api.tlsPort}
-
-    ${cfg.extraConfig}
-  '';
-
-in
-
-{
-
-  ###### interface
-
-  options = {
-
-    services.dnschain = {
-
-      enable = mkEnableOption ''
-        DNSChain, a blockchain based DNS + HTTP server.
-        To resolve .bit domains set <literal>services.namecoind.enable = true;</literal>
-        and an RPC username/password.
-      '';
-
-      dns.address = mkOption {
-        type = types.str;
-        default = "127.0.0.1";
-        description = ''
-          The IP address the DNSChain resolver will bind to.
-          Leave this unchanged if you do not wish to directly expose the resolver.
-        '';
-      };
-
-      dns.externalAddress = mkOption {
-        type = types.str;
-        default = cfg.dns.address;
-        description = ''
-           The IP address used by clients to reach the resolver and the value of
-           the <literal>namecoin.dns</literal> record. Set this in case the bind address
-           is not the actual IP address (e.g. the machine is behind a NAT).
-        '';
-      };
-
-      dns.port = mkOption {
-        type = types.int;
-        default = 5333;
-        description = ''
-          The port the DNSChain resolver will bind to.
-        '';
-      };
-
-      api.hostname = mkOption {
-        type = types.str;
-        default = "0.0.0.0";
-        description = ''
-          The hostname (or IP address) the DNSChain API server will bind to.
-        '';
-      };
-
-      api.port = mkOption {
-        type = types.int;
-        default = 8080;
-        description = ''
-          The port the DNSChain API server (HTTP) will bind to.
-        '';
-      };
-
-      api.tlsPort = mkOption {
-        type = types.int;
-        default = 4433;
-        description = ''
-          The port the DNSChain API server (HTTPS) will bind to.
-        '';
-      };
-
-      extraConfig = mkOption {
-        type = types.lines;
-        default = "";
-        example = ''
-          [log]
-          level = debug
-        '';
-        description = ''
-          Additional options that will be appended to the configuration file.
-        '';
-      };
-
-    };
-
-    services.dnsmasq.resolveDNSChainQueries = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Resolve <literal>.bit</literal> top-level domains using DNSChain and namecoin.
-      '';
-    };
-
-    services.pdns-recursor.resolveDNSChainQueries = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Resolve <literal>.bit</literal> top-level domains using DNSChain and namecoin.
-      '';
-    };
-
-  };
-
-
-  ###### implementation
-
-  config = mkIf cfg.enable {
-
-    services.dnsmasq.servers = optionals cfgs.dnsmasq.resolveDNSChainQueries
-      [ "/.bit/127.0.0.1#${toString cfg.dns.port}"
-        "/.dns/127.0.0.1#${toString cfg.dns.port}"
-      ];
-
-    services.pdns-recursor = mkIf cfgs.pdns-recursor.resolveDNSChainQueries {
-      forwardZonesRecurse =
-        { bit = "127.0.0.1:${toString cfg.dns.port}";
-          dns = "127.0.0.1:${toString cfg.dns.port}";
-        };
-      luaConfig =''
-        addNTA("bit", "namecoin doesn't support DNSSEC")
-        addNTA("dns", "namecoin doesn't support DNSSEC")
-      '';
-    };
-
-    users.users.${username} = {
-      description = "DNSChain daemon user";
-      home = dataDir;
-      createHome = true;
-      uid = config.ids.uids.dnschain;
-      extraGroups = optional cfgs.namecoind.enable "namecoin";
-    };
-
-    systemd.services.dnschain = {
-      description = "DNSChain daemon";
-      after    = optional cfgs.namecoind.enable "namecoind.target";
-      wantedBy = [ "multi-user.target" ];
-
-      serviceConfig = {
-        User = "dnschain";
-        Restart = "on-failure";
-        ExecStart = "${pkgs.nodePackages.dnschain}/bin/dnschain";
-      };
-
-      preStart = ''
-        # Link configuration file into dnschain home directory
-        configPath=${dataDir}/.dnschain/dnschain.conf
-        mkdir -p ${dataDir}/.dnschain
-        if [ "$(realpath $configPath)" != "${configFile}" ]; then
-          rm -f $configPath
-          ln -s ${configFile} $configPath
-        fi
-      '';
-    };
-
-  };
-
-  meta.maintainers = with lib.maintainers; [ rnhmjoj ];
-
-}
diff --git a/nixos/modules/services/networking/dnscrypt-proxy2.nix b/nixos/modules/services/networking/dnscrypt-proxy2.nix
index e48eb729103..28691e83827 100644
--- a/nixos/modules/services/networking/dnscrypt-proxy2.nix
+++ b/nixos/modules/services/networking/dnscrypt-proxy2.nix
@@ -55,6 +55,7 @@ in
         AmbientCapabilities = "CAP_NET_BIND_SERVICE";
         DynamicUser = true;
         ExecStart = "${pkgs.dnscrypt-proxy2}/bin/dnscrypt-proxy -config ${cfg.configFile}";
+        Restart = "always";
       };
     };
   };
diff --git a/nixos/modules/services/networking/dnscrypt-wrapper.nix b/nixos/modules/services/networking/dnscrypt-wrapper.nix
index e53fb7a1578..b9333cd19a2 100644
--- a/nixos/modules/services/networking/dnscrypt-wrapper.nix
+++ b/nixos/modules/services/networking/dnscrypt-wrapper.nix
@@ -5,12 +5,20 @@ let
   cfg     = config.services.dnscrypt-wrapper;
   dataDir = "/var/lib/dnscrypt-wrapper";
 
+  mkPath = path: default:
+    if path != null
+      then toString path
+      else default;
+
+  publicKey = mkPath cfg.providerKey.public "${dataDir}/public.key";
+  secretKey = mkPath cfg.providerKey.secret "${dataDir}/secret.key";
+
   daemonArgs = with cfg; [
     "--listen-address=${address}:${toString port}"
     "--resolver-address=${upstream.address}:${toString upstream.port}"
     "--provider-name=${providerName}"
-    "--provider-publickey-file=public.key"
-    "--provider-secretkey-file=secret.key"
+    "--provider-publickey-file=${publicKey}"
+    "--provider-secretkey-file=${secretKey}"
     "--provider-cert-file=${providerName}.crt"
     "--crypt-secretkey-file=${providerName}.key"
   ];
@@ -24,17 +32,19 @@ let
       dnscrypt-wrapper --gen-cert-file \
         --crypt-secretkey-file=${cfg.providerName}.key \
         --provider-cert-file=${cfg.providerName}.crt \
-        --provider-publickey-file=public.key \
-        --provider-secretkey-file=secret.key \
+        --provider-publickey-file=${publicKey} \
+        --provider-secretkey-file=${secretKey} \
         --cert-file-expire-days=${toString cfg.keys.expiration}
     }
 
     cd ${dataDir}
 
     # generate provider keypair (first run only)
-    if [ ! -f public.key ] || [ ! -f secret.key ]; then
-      dnscrypt-wrapper --gen-provider-keypair
-    fi
+    ${optionalString (cfg.providerKey.public == null || cfg.providerKey.secret == null) ''
+      if [ ! -f ${publicKey} ] || [ ! -f ${secretKey} ]; then
+        dnscrypt-wrapper --gen-provider-keypair
+      fi
+    ''}
 
     # generate new keys for rotation
     if [ ! -f ${cfg.providerName}.key ] || [ ! -f ${cfg.providerName}.crt ]; then
@@ -64,6 +74,47 @@ let
     fi
   '';
 
+
+  # This is the fork of the original dnscrypt-proxy maintained by Dyne.org.
+  # dnscrypt-proxy2 doesn't provide the `--test` feature that is needed to
+  # correctly implement key rotation of dnscrypt-wrapper ephemeral keys.
+  dnscrypt-proxy1 = pkgs.callPackage
+    ({ stdenv, fetchFromGitHub, autoreconfHook
+    , pkgconfig, libsodium, ldns, openssl, systemd }:
+
+    stdenv.mkDerivation rec {
+      pname = "dnscrypt-proxy";
+      version = "2019-08-20";
+
+      src = fetchFromGitHub {
+        owner = "dyne";
+        repo = "dnscrypt-proxy";
+        rev = "07ac3825b5069adc28e2547c16b1d983a8ed8d80";
+        sha256 = "0c4mq741q4rpmdn09agwmxap32kf0vgfz7pkhcdc5h54chc3g3xy";
+      };
+
+      configureFlags = optional stdenv.isLinux "--with-systemd";
+
+      nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+      # <ldns/ldns.h> depends on <openssl/ssl.h>
+      buildInputs = [ libsodium openssl.dev ldns ] ++ optional stdenv.isLinux systemd;
+
+      postInstall = ''
+        # Previous versions required libtool files to load plugins; they are
+        # now strictly optional.
+        rm $out/lib/dnscrypt-proxy/*.la
+      '';
+
+      meta = {
+        description = "A tool for securing communications between a client and a DNS resolver";
+        homepage = "https://github.com/dyne/dnscrypt-proxy";
+        license = licenses.isc;
+        maintainers = with maintainers; [ rnhmjoj ];
+        platforms = platforms.linux;
+      };
+    }) { };
+
 in {
 
 
@@ -98,6 +149,26 @@ in {
       '';
     };
 
+    providerKey.public = mkOption {
+      type = types.nullOr types.path;
+      default = null;
+      example = "/etc/secrets/public.key";
+      description = ''
+        The filepath to the provider public key. If not given a new
+        provider key pair will be generated on the first run.
+      '';
+    };
+
+    providerKey.secret = mkOption {
+      type = types.nullOr types.path;
+      default = null;
+      example = "/etc/secrets/secret.key";
+      description = ''
+        The filepath to the provider secret key. If not given a new
+        provider key pair will be generated on the first run.
+      '';
+    };
+
     upstream.address = mkOption {
       type = types.str;
       default = "127.0.0.1";
@@ -179,7 +250,7 @@ in {
       requires = [ "dnscrypt-wrapper.service" ];
       description = "Rotates DNSCrypt wrapper keys if soon to expire";
 
-      path   = with pkgs; [ dnscrypt-wrapper dnscrypt-proxy gawk ];
+      path   = with pkgs; [ dnscrypt-wrapper dnscrypt-proxy1 gawk ];
       script = rotateKeys;
       serviceConfig.User = "dnscrypt-wrapper";
     };
@@ -196,6 +267,13 @@ in {
       };
     };
 
+    assertions = with cfg; [
+      { assertion = (providerKey.public == null && providerKey.secret == null) ||
+                    (providerKey.secret != null && providerKey.public != null);
+        message = "The secret and public provider key must be set together.";
+      }
+    ];
+
   };
 
   meta.maintainers = with lib.maintainers; [ rnhmjoj ];
diff --git a/nixos/modules/services/networking/ergo.nix b/nixos/modules/services/networking/ergo.nix
new file mode 100644
index 00000000000..c52de30dc36
--- /dev/null
+++ b/nixos/modules/services/networking/ergo.nix
@@ -0,0 +1,141 @@
+{ config, lib, pkgs, ... }:
+
+let
+  cfg = config.services.ergo;
+
+  inherit (lib) mkEnableOption mkIf mkOption optionalString types;
+
+  configFile = pkgs.writeText "ergo.conf" (''
+ergo {
+  directory = "${cfg.dataDir}"
+  node {
+    mining = false
+  }
+  wallet.secretStorage.secretDir = "${cfg.dataDir}/wallet/keystore"
+}
+
+scorex {
+  network {
+    bindAddress = "${cfg.listen.ip}:${toString cfg.listen.port}"
+  }
+'' + optionalString (cfg.api.keyHash != null) ''
+ restApi {
+    apiKeyHash = "${cfg.api.keyHash}"
+    bindAddress = "${cfg.api.listen.ip}:${toString cfg.api.listen.port}"
+ }
+'' + ''
+}
+'');
+
+in {
+
+  options = {
+
+    services.ergo = {
+      enable = mkEnableOption "Ergo service";
+
+      dataDir = mkOption {
+        type = types.path;
+        default = "/var/lib/ergo";
+        description = "The data directory for the Ergo node.";
+      };
+
+      listen = {
+        ip = mkOption {
+          type = types.str;
+          default = "0.0.0.0";
+          description = "IP address on which the Ergo node should listen.";
+        };
+
+        port = mkOption {
+          type = types.port;
+          default = 9006;
+          description = "Listen port for the Ergo node.";
+        };
+      };
+
+      api = {
+       keyHash = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        example = "324dcf027dd4a30a932c441f365a25e86b173defa4b8e58948253471b81b72cf";
+        description = "Hex-encoded Blake2b256 hash of an API key as a 64-chars long Base16 string.";
+       };
+
+       listen = {
+        ip = mkOption {
+          type = types.str;
+          default = "0.0.0.0";
+          description = "IP address that the Ergo node API should listen on if <option>api.keyHash</option> is defined.";
+          };
+
+        port = mkOption {
+          type = types.port;
+          default = 9052;
+          description = "Listen port for the API endpoint if <option>api.keyHash</option> is defined.";
+        };
+       };
+      };
+
+      testnet = mkOption {
+         type = types.bool;
+         default = false;
+         description = "Connect to testnet network instead of the default mainnet.";
+      };
+
+      user = mkOption {
+        type = types.str;
+        default = "ergo";
+        description = "The user as which to run the Ergo node.";
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = cfg.user;
+        description = "The group as which to run the Ergo node.";
+      };
+
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Open ports in the firewall for the Ergo node as well as the API.";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    systemd.tmpfiles.rules = [
+      "d '${cfg.dataDir}' 0770 '${cfg.user}' '${cfg.group}' - -"
+    ];
+
+    systemd.services.ergo = {
+      description = "ergo server";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network-online.target" ];
+      serviceConfig = {
+        User = cfg.user;
+        Group = cfg.group;
+        ExecStart = ''${pkgs.ergo}/bin/ergo \
+                      ${optionalString (!cfg.testnet)
+                      "--mainnet"} \
+                      -c ${configFile}'';
+      };
+    };
+
+    networking.firewall = mkIf cfg.openFirewall {
+      allowedTCPPorts = [ cfg.listen.port ] ++ [ cfg.api.listen.port ];
+    };
+
+    users.users.${cfg.user} = {
+      name = cfg.user;
+      group = cfg.group;
+      description = "Ergo daemon user";
+      home = cfg.dataDir;
+      isSystemUser = true;
+    };
+
+    users.groups.${cfg.group} = {};
+
+  };
+}
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/go-neb.nix b/nixos/modules/services/networking/go-neb.nix
new file mode 100644
index 00000000000..991ae38f30a
--- /dev/null
+++ b/nixos/modules/services/networking/go-neb.nix
@@ -0,0 +1,53 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.go-neb;
+
+  configFile = pkgs.writeText "config.yml" (builtins.toJSON cfg.config);
+in {
+  options.services.go-neb = {
+    enable = mkEnableOption "Extensible matrix bot written in Go";
+
+    bindAddress = mkOption {
+      type = types.str;
+      description = "Port (and optionally address) to listen on.";
+      default = ":4050";
+    };
+
+    baseUrl = mkOption {
+      type = types.str;
+      description = "Public-facing endpoint that can receive webhooks.";
+    };
+
+    config = mkOption {
+      type = types.uniq types.attrs;
+      description = ''
+        Your <filename>config.yaml</filename> as a Nix attribute set.
+        See <link xlink:href="https://github.com/matrix-org/go-neb/blob/master/config.sample.yaml">config.sample.yaml</link>
+        for possible options.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.go-neb = {
+      description = "Extensible matrix bot written in Go";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      environment = {
+        BASE_URL = cfg.baseUrl;
+        BIND_ADDRESS = cfg.bindAddress;
+        CONFIG_FILE = configFile;
+      };
+
+      serviceConfig = {
+        ExecStart = "${pkgs.go-neb}/bin/go-neb";
+        DynamicUser = true;
+      };
+    };
+  };
+
+  meta.maintainers = with maintainers; [ hexa maralorn ];
+}
diff --git a/nixos/modules/services/networking/haproxy.nix b/nixos/modules/services/networking/haproxy.nix
index 4678829986c..e9d72b35499 100644
--- a/nixos/modules/services/networking/haproxy.nix
+++ b/nixos/modules/services/networking/haproxy.nix
@@ -56,6 +56,9 @@ with lib;
       message = "You must provide services.haproxy.config.";
     }];
 
+    # configuration file indirection is needed to support reloading
+    environment.etc."haproxy.cfg".source = haproxyCfg;
+
     systemd.services.haproxy = {
       description = "HAProxy";
       after = [ "network.target" ];
@@ -64,11 +67,32 @@ with lib;
         User = cfg.user;
         Group = cfg.group;
         Type = "notify";
-        # when running the config test, don't be quiet so we can see what goes wrong
-        ExecStartPre = "${pkgs.haproxy}/sbin/haproxy -c -f ${haproxyCfg}";
-        ExecStart = "${pkgs.haproxy}/sbin/haproxy -Ws -f ${haproxyCfg}";
-        Restart = "on-failure";
+        ExecStartPre = [
+          # when the master process receives USR2, it reloads itself using exec(argv[0]),
+          # so we create a symlink there and update it before reloading
+          "${pkgs.coreutils}/bin/ln -sf ${pkgs.haproxy}/sbin/haproxy /run/haproxy/haproxy"
+          # when running the config test, don't be quiet so we can see what goes wrong
+          "/run/haproxy/haproxy -c -f ${haproxyCfg}"
+        ];
+        ExecStart = "/run/haproxy/haproxy -Ws -f /etc/haproxy.cfg -p /run/haproxy/haproxy.pid";
+        # support reloading
+        ExecReload = [
+          "${pkgs.haproxy}/sbin/haproxy -c -f ${haproxyCfg}"
+          "${pkgs.coreutils}/bin/ln -sf ${pkgs.haproxy}/sbin/haproxy /run/haproxy/haproxy"
+          "${pkgs.coreutils}/bin/kill -USR2 $MAINPID"
+        ];
+        KillMode = "mixed";
+        SuccessExitStatus = "143";
+        Restart = "always";
         RuntimeDirectory = "haproxy";
+        # upstream hardening options
+        NoNewPrivileges = true;
+        ProtectHome = true;
+        ProtectSystem = "strict";
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectControlGroups = true;
+        SystemCallFilter= "~@cpu-emulation @keyring @module @obsolete @raw-io @reboot @swap @sync";
         # needed in case we bind to port < 1024
         AmbientCapabilities = "CAP_NET_BIND_SERVICE";
       };
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/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 ead7f085943..6ca99e1321b 100644
--- a/nixos/modules/services/networking/namecoind.nix
+++ b/nixos/modules/services/networking/namecoind.nix
@@ -149,11 +149,6 @@ in
 
   config = mkIf cfg.enable {
 
-    services.dnschain.extraConfig = ''
-      [namecoin]
-      config = ${configFile}
-    '';
-
     users.users.namecoin = {
       uid  = config.ids.uids.namecoin;
       description = "Namecoin daemon user";
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 6f24141b33c..cc789897b29 100644
--- a/nixos/modules/services/networking/networkmanager.nix
+++ b/nixos/modules/services/networking/networkmanager.nix
@@ -449,6 +449,13 @@ in {
 
     systemd.services.ModemManager.aliases = [ "dbus-org.freedesktop.ModemManager1.service" ];
 
+    # override unit as recommended by upstream - see https://github.com/NixOS/nixpkgs/issues/88089
+    # TODO: keep an eye on modem-manager releases as this will eventually be added to the upstream unit
+    systemd.services.ModemManager.serviceConfig.ExecStart = [
+      ""
+      "${pkgs.modemmanager}/sbin/ModemManager --filter-policy=STRICT"
+    ];
+
     systemd.services.NetworkManager-dispatcher = {
       wantedBy = [ "network.target" ];
       restartTriggers = [ configFile ];
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/nsd.nix b/nixos/modules/services/networking/nsd.nix
index 429580e5c6c..3ecbd06ee41 100644
--- a/nixos/modules/services/networking/nsd.nix
+++ b/nixos/modules/services/networking/nsd.nix
@@ -11,8 +11,6 @@ let
 
   # build nsd with the options needed for the given config
   nsdPkg = pkgs.nsd.override {
-    configFile = "${configFile}/nsd.conf";
-
     bind8Stats = cfg.bind8Stats;
     ipv6 = cfg.ipv6;
     ratelimit = cfg.ratelimit.enable;
@@ -252,7 +250,7 @@ let
           Use imports or pkgs.lib.readFile if you don't want this data in your config file.
         '';
       };
-      
+
       dnssec = mkEnableOption "DNSSEC";
 
       dnssecPolicy = {
@@ -897,7 +895,10 @@ in
               + "want, please enable 'services.nsd.rootServer'.";
     };
 
-    environment.systemPackages = [ nsdPkg ];
+    environment = {
+      systemPackages = [ nsdPkg ];
+      etc."nsd/nsd.conf".source = "${configFile}/nsd.conf";
+    };
 
     users.groups.${username}.gid = config.ids.gids.nsd;
 
@@ -970,7 +971,7 @@ in
       script = signZones;
 
       postStop = ''
-        ${pkgs.systemd}/bin/systemctl kill -s SIGHUP nsd.service
+        /run/current-system/systemd/bin/systemctl kill -s SIGHUP nsd.service
       '';
     };
 
diff --git a/nixos/modules/services/networking/onedrive.nix b/nixos/modules/services/networking/onedrive.nix
new file mode 100644
index 00000000000..210d2217b27
--- /dev/null
+++ b/nixos/modules/services/networking/onedrive.nix
@@ -0,0 +1,72 @@
+{ config, lib, pkgs, ... }:
+let
+  cfg = config.services.onedrive;
+
+  onedriveLauncher =  pkgs.writeShellScriptBin
+    "onedrive-launcher"
+    ''
+      # XDG_CONFIG_HOME is not recognized in the environment here.
+      if [ -f $HOME/.config/onedrive-launcher ]
+      then
+        # Hopefully using underscore boundary helps locate variables
+        for _onedrive_config_dirname_ in $(cat $HOME/.config/onedrive-launcher | grep -v '[ \t]*#' )
+        do
+          systemctl --user start onedrive@$_onedrive_config_dirname_
+        done
+      else
+        systemctl --user start onedrive@onedrive
+      fi
+    ''
+  ;
+
+in {
+  ### Documentation
+  # meta.doc = ./onedrive.xml;
+
+  ### Interface
+
+  options.services.onedrive = {
+    enable = lib.mkOption {
+      type = lib.types.bool;
+      default = false;
+      description = "Enable OneDrive service";
+    };
+
+     package = lib.mkOption {
+       type = lib.types.package;
+       default = pkgs.onedrive;
+       defaultText = "pkgs.onedrive";
+       example = lib.literalExample "pkgs.onedrive";
+       description = ''
+         OneDrive package to use.
+       '';
+     };
+  };
+### Implementation
+
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = [ cfg.package ];
+
+    systemd.user.services."onedrive@" = {
+      description = "Onedrive sync service";
+
+      serviceConfig = {
+        Type = "simple";
+        ExecStart = ''
+          ${cfg.package}/bin/onedrive --monitor --verbose --confdir=%h/.config/%i
+        '';
+        Restart="on-failure";
+        RestartSec=3;
+        RestartPreventExitStatus=3;
+      };
+    };
+
+    systemd.user.services.onedrive-launcher = {
+      wantedBy = [ "default.target" ];
+      serviceConfig = {
+        Type = "oneshot";
+        ExecStart = "${onedriveLauncher}/bin/onedrive-launcher";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/networking/onedrive.xml b/nixos/modules/services/networking/onedrive.xml
new file mode 100644
index 00000000000..5a9dcf01aee
--- /dev/null
+++ b/nixos/modules/services/networking/onedrive.xml
@@ -0,0 +1,34 @@
+<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="onedrive">
+ <title>Microsoft OneDrive</title>
+ <para>
+  Microsoft Onedrive is a popular cloud file-hosting service, used by 85% of Fortune 500 companies. NixOS uses a popular OneDrive client for Linux maintained by github user abraunegg. The Linux client is excellent and allows customization of which files or paths to download, not much unlike the default Windows OneDrive client by Microsoft itself. The client allows syncing with multiple onedrive accounts at the same time, of any type- OneDrive personal, OneDrive business, Office365 and Sharepoint libraries, without any additional charge.
+ </para>
+ <para>
+  For more information, guides and documentation, see <link xlink:href="https://abraunegg.github.io/"/>.
+ </para>
+ <para>
+  To enable OneDrive support, add the following to your <filename>configuration.nix</filename>:
+<programlisting>
+<xref linkend="opt-services.onedrive.enable"/> = true;
+</programlisting>
+  This installs the <literal>onedrive</literal> package and a service <literal>onedriveLauncher</literal> which will instantiate a <literal>onedrive</literal> service for all your OneDrive accounts. Follow the steps in documentation of the onedrive client to setup your accounts. To use the service with multiple accounts, create a file named <filename>onedrive-launcher</filename> in <filename>~/.config</filename> and add the filename of the config directory, relative to <filename>~/.config</filename>. For example, if you have two OneDrive accounts with configs in <filename>~/.config/onedrive_bob_work</filename> and <filename>~/.config/onedrive_bob_personal</filename>, add the following lines:
+<programlisting>
+onedrive_bob_work
+# Not in use:
+# onedrive_bob_office365
+onedrive_bob_personal
+</programlisting>
+  No such file needs to be created if you are using only a single OneDrive account with config in the default location <filename>~/.config/onedrive</filename>, in the absence of <filename>~/.config/onedrive-launcher</filename>, only a single service is instantiated, with default config path.
+</para>
+
+  <para>
+  If you wish to use a custom OneDrive package, say from another channel, add the following line:
+<programlisting>
+<xref linkend="opt-services.onedrive.package"/> = pkgs.unstable.onedrive;
+</programlisting>
+ </para>
+</chapter>
diff --git a/nixos/modules/services/networking/prosody.nix b/nixos/modules/services/networking/prosody.nix
index cdd341c9fb6..e53d7093be8 100644
--- a/nixos/modules/services/networking/prosody.nix
+++ b/nixos/modules/services/networking/prosody.nix
@@ -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/radicale.nix b/nixos/modules/services/networking/radicale.nix
index 30bf22586f8..5af035fd59e 100644
--- a/nixos/modules/services/networking/radicale.nix
+++ b/nixos/modules/services/networking/radicale.nix
@@ -8,8 +8,10 @@ let
 
   confFile = pkgs.writeText "radicale.conf" cfg.config;
 
-  # This enables us to default to version 2 while still not breaking configurations of people with version 1
-  defaultPackage = if versionAtLeast config.system.stateVersion "17.09" then {
+  defaultPackage = if versionAtLeast config.system.stateVersion "20.09" then {
+    pkg = pkgs.radicale3;
+    text = "pkgs.radicale3";
+  } else if versionAtLeast config.system.stateVersion "17.09" then {
     pkg = pkgs.radicale2;
     text = "pkgs.radicale2";
   } else {
@@ -35,8 +37,9 @@ in
       defaultText = defaultPackage.text;
       description = ''
         Radicale package to use. This defaults to version 1.x if
-        <literal>system.stateVersion &lt; 17.09</literal> and version 2.x
-        otherwise.
+        <literal>system.stateVersion &lt; 17.09</literal>, version 2.x if
+        <literal>17.09 ≤ system.stateVersion &lt; 20.09</literal>, and
+        version 3.x otherwise.
       '';
     };
 
diff --git a/nixos/modules/services/networking/resilio.nix b/nixos/modules/services/networking/resilio.nix
index e74e03fc0b0..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;
   }));
@@ -109,8 +109,8 @@ in
 
       httpListenAddr = mkOption {
         type = types.str;
-        default = "0.0.0.0";
-        example = "1.2.3.4";
+        default = "[::1]";
+        example = "0.0.0.0";
         description = ''
           HTTP address to bind to.
         '';
@@ -206,16 +206,16 @@ in
 
           If you would like to be able to modify the contents of this
           directories, it is recommended that you make your user a
-          member of the <literal>resilio</literal> group.
+          member of the <literal>rslsync</literal> group.
 
           Directories in this list should be in the
-          <literal>resilio</literal> group, and that group must have
+          <literal>rslsync</literal> group, and that group must have
           write access to the directory. It is also recommended that
           <literal>chmod g+s</literal> is applied to the directory
           so that any sub directories created will also belong to
-          the <literal>resilio</literal> group. Also,
-          <literal>setfacl -d -m group:resilio:rwx</literal> and
-          <literal>setfacl -m group:resilio:rwx</literal> should also
+          the <literal>rslsync</literal> group. Also,
+          <literal>setfacl -d -m group:rslsync:rwx</literal> and
+          <literal>setfacl -m group:rslsync:rwx</literal> should also
           be applied so that the sub directories are writable by
           the group.
         '';
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/sslh.nix b/nixos/modules/services/networking/sslh.nix
index c4fa370a5fe..0921febba66 100644
--- a/nixos/modules/services/networking/sslh.nix
+++ b/nixos/modules/services/networking/sslh.nix
@@ -15,7 +15,11 @@ let
 
     listen:
     (
-      { host: "${cfg.listenAddress}"; port: "${toString cfg.port}"; }
+      ${
+        concatMapStringsSep ",\n"
+        (addr: ''{ host: "${addr}"; port: "${toString cfg.port}"; }'')
+        cfg.listenAddresses
+      }
     );
 
     ${cfg.appendConfig}
@@ -33,6 +37,10 @@ let
   '';
 in
 {
+  imports = [
+    (mkRenamedOptionModule [ "services" "sslh" "listenAddress" ] [ "services" "sslh" "listenAddresses" ])
+  ];
+
   options = {
     services.sslh = {
       enable = mkEnableOption "sslh";
@@ -55,10 +63,10 @@ in
         description = "Will the services behind sslh (Apache, sshd and so on) see the external IP and ports as if the external world connected directly to them";
       };
 
-      listenAddress = mkOption {
-        type = types.str;
-        default = "0.0.0.0";
-        description = "Listening address or hostname.";
+      listenAddresses = mkOption {
+        type = types.coercedTo types.str singleton (types.listOf types.str);
+        default = [ "0.0.0.0" "[::]" ];
+        description = "Listening addresses or hostnames.";
       };
 
       port = mkOption {
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/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/v2ray.nix b/nixos/modules/services/networking/v2ray.nix
index a1774cdffbb..6a924a16449 100644
--- a/nixos/modules/services/networking/v2ray.nix
+++ b/nixos/modules/services/networking/v2ray.nix
@@ -58,7 +58,13 @@ with lib;
     cfg = config.services.v2ray;
     configFile = if cfg.configFile != null
       then cfg.configFile
-      else (pkgs.writeText "v2ray.json" (builtins.toJSON cfg.config));
+      else pkgs.writeTextFile {
+        name = "v2ray.json";
+        text = builtins.toJSON cfg.config;
+        checkPhase = ''
+          ${pkgs.v2ray}/bin/v2ray -test -config $out
+        '';
+      };
 
   in mkIf cfg.enable {
     assertions = [
diff --git a/nixos/modules/services/networking/vsftpd.nix b/nixos/modules/services/networking/vsftpd.nix
index b3e20184423..c57994533c1 100644
--- a/nixos/modules/services/networking/vsftpd.nix
+++ b/nixos/modules/services/networking/vsftpd.nix
@@ -116,7 +116,8 @@ let
         userlist_file=${cfg.userlistFile}
       ''}
       background=YES
-      listen=YES
+      listen=NO
+      listen_ipv6=YES
       nopriv_user=vsftpd
       secure_chroot_dir=/var/empty
       ${optionalString (cfg.localRoot != null) ''
diff --git a/nixos/modules/services/networking/wasabibackend.nix b/nixos/modules/services/networking/wasabibackend.nix
new file mode 100644
index 00000000000..6eacffe709b
--- /dev/null
+++ b/nixos/modules/services/networking/wasabibackend.nix
@@ -0,0 +1,158 @@
+{ config, lib, pkgs, ... }:
+
+let
+  cfg = config.services.wasabibackend;
+
+  inherit (lib) mkEnableOption mkIf mkOption optionalAttrs optionalString types;
+
+  confOptions = {
+      BitcoinRpcConnectionString = "${cfg.rpc.user}:${cfg.rpc.password}";
+  } // optionalAttrs (cfg.network == "mainnet") {
+      Network = "Main";
+      MainNetBitcoinP2pEndPoint = "${cfg.endpoint.ip}:${toString cfg.endpoint.port}";
+      MainNetBitcoinCoreRpcEndPoint = "${cfg.rpc.ip}:${toString cfg.rpc.port}";
+  } // optionalAttrs (cfg.network == "testnet") {
+      Network = "TestNet";
+      TestNetBitcoinP2pEndPoint = "${cfg.endpoint.ip}:${toString cfg.endpoint.port}";
+      TestNetBitcoinCoreRpcEndPoint = "${cfg.rpc.ip}:${toString cfg.rpc.port}";
+  } // optionalAttrs (cfg.network == "regtest") {
+      Network = "RegTest";
+      RegTestBitcoinP2pEndPoint = "${cfg.endpoint.ip}:${toString cfg.endpoint.port}";
+      RegTestBitcoinCoreRpcEndPoint = "${cfg.rpc.ip}:${toString cfg.rpc.port}";
+  };
+
+	configFile = pkgs.writeText "wasabibackend.conf" (builtins.toJSON confOptions);
+
+in {
+
+  options = {
+
+    services.wasabibackend = {
+      enable = mkEnableOption "Wasabi backend service";
+
+      dataDir = mkOption {
+        type = types.path;
+        default = "/var/lib/wasabibackend";
+        description = "The data directory for the Wasabi backend node.";
+      };
+
+      customConfigFile = mkOption {
+        type = types.nullOr types.path;
+        default = null;
+        description = "Defines the path to a custom configuration file that is copied to the user's directory. Overrides any config options.";
+      };
+
+      network = mkOption {
+        type = types.enum [ "mainnet" "testnet" "regtest" ];
+        default = "mainnet";
+        description = "The network to use for the Wasabi backend service.";
+      };
+
+      endpoint = {
+        ip = mkOption {
+          type = types.str;
+          default = "127.0.0.1";
+          description = "IP address for P2P connection to bitcoind.";
+        };
+
+        port = mkOption {
+          type = types.port;
+          default = 8333;
+          description = "Port for P2P connection to bitcoind.";
+        };
+      };
+
+      rpc = {
+        ip = mkOption {
+          type = types.str;
+          default = "127.0.0.1";
+          description = "IP address for RPC connection to bitcoind.";
+        };
+
+        port = mkOption {
+          type = types.port;
+          default = 8332;
+          description = "Port for RPC connection to bitcoind.";
+        };
+
+        user = mkOption {
+          type = types.str;
+          default = "bitcoin";
+          description = "RPC user for the bitcoin endpoint.";
+        };
+
+        password = mkOption {
+          type = types.str;
+          default = "password";
+          description = "RPC password for the bitcoin endpoint. Warning: this is stored in cleartext in the Nix store! Use <literal>configFile</literal> or <literal>passwordFile</literal> if needed.";
+        };
+
+        passwordFile = mkOption {
+          type = types.nullOr types.path;
+          default = null;
+          description = "File that contains the password of the RPC user.";
+        };
+      };
+
+      user = mkOption {
+        type = types.str;
+        default = "wasabibackend";
+        description = "The user as which to run the wasabibackend node.";
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = cfg.user;
+        description = "The group as which to run the wasabibackend node.";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    systemd.tmpfiles.rules = [
+      "d '${cfg.dataDir}' 0770 '${cfg.user}' '${cfg.group}' - -"
+    ];
+
+    systemd.services.wasabibackend = {
+      description = "wasabibackend server";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network-online.target" ];
+      environment = {
+        DOTNET_PRINT_TELEMETRY_MESSAGE = "false";
+        DOTNET_CLI_TELEMETRY_OPTOUT = "true";
+      };
+      preStart = ''
+        mkdir -p ${cfg.dataDir}/.walletwasabi/backend
+        ${if cfg.customConfigFile != null then ''
+          cp -v ${cfg.customConfigFile} ${cfg.dataDir}/.walletwasabi/backend/Config.json
+        '' else ''
+          cp -v ${configFile} ${cfg.dataDir}/.walletwasabi/backend/Config.json
+          ${optionalString (cfg.rpc.passwordFile != null) ''
+            CONFIGTMP=$(mktemp)
+            cat ${cfg.dataDir}/.walletwasabi/backend/Config.json | ${pkgs.jq}/bin/jq --arg rpconnection "${cfg.rpc.user}:$(cat "${cfg.rpc.passwordFile}")" '. + { BitcoinRpcConnectionString: $rpconnection }' > $CONFIGTMP
+            mv $CONFIGTMP ${cfg.dataDir}/.walletwasabi/backend/Config.json
+          ''}
+        ''}
+        chmod ug+w ${cfg.dataDir}/.walletwasabi/backend/Config.json
+      '';
+      serviceConfig = {
+        User = cfg.user;
+        Group = cfg.group;
+        ExecStart = "${pkgs.wasabibackend}/bin/WasabiBackend";
+        ProtectSystem = "full";
+      };
+    };
+
+    users.users.${cfg.user} = {
+      name = cfg.user;
+      group = cfg.group;
+      description = "wasabibackend daemon user";
+      home = cfg.dataDir;
+      isSystemUser = true;
+    };
+
+    users.groups.${cfg.group} = {};
+
+  };
+}
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 de0f11595a9..08a17d20ed7 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''}
@@ -253,12 +253,12 @@ in {
     };
 
     powerManagement.resumeCommands = ''
-      ${config.systemd.package}/bin/systemctl try-restart wpa_supplicant
+      /run/current-system/systemd/bin/systemctl try-restart wpa_supplicant
     '';
 
     # Restart wpa_supplicant when a wlan device appears or disappears.
     services.udev.extraRules = ''
-      ACTION=="add|remove", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", RUN+="${config.systemd.package}/bin/systemctl try-restart wpa_supplicant.service"
+      ACTION=="add|remove", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", RUN+="/run/current-system/systemd/bin/systemctl try-restart wpa_supplicant.service"
     '';
   };
 
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 ecd1406b483..a71c635c9f6 100644
--- a/nixos/modules/services/networking/yggdrasil.nix
+++ b/nixos/modules/services/networking/yggdrasil.nix
@@ -1,55 +1,17 @@
 { config, lib, pkgs, ... }:
 with lib;
 let
+  keysPath = "/var/lib/yggdrasil/keys.json";
+
   cfg = config.services.yggdrasil;
-  configProvided = (cfg.config != {});
-  configAsFile = (if configProvided then
-                   toString (pkgs.writeTextFile {
-                     name = "yggdrasil-conf";
-                     text = builtins.toJSON cfg.config;
-                   })
-                   else null);
-  configFileProvided = (cfg.configFile != null);
-  generateConfig = (
-    if configProvided && configFileProvided then
-      "${pkgs.jq}/bin/jq -s add ${configAsFile} ${cfg.configFile}"
-    else if configProvided then
-      "cat ${configAsFile}"
-    else if configFileProvided then
-      "cat ${cfg.configFile}"
-    else
-      "${cfg.package}/bin/yggdrasil -genconf"
-  );
+  configProvided = cfg.config != { };
+  configFileProvided = cfg.configFile != null;
 
 in {
   options = with types; {
     services.yggdrasil = {
       enable = mkEnableOption "the yggdrasil system service";
 
-      configFile = mkOption {
-        type =  nullOr str;
-        default = null;
-        example = "/run/keys/yggdrasil.conf";
-        description = ''
-          A file which contains JSON configuration for yggdrasil.
-
-          You do not have to supply a complete configuration, as
-          yggdrasil will use default values for anything which is
-          omitted.  If the encryption and signing keys are omitted,
-          yggdrasil will generate new ones each time the service is
-          started, resulting in a random IPv6 address on the yggdrasil
-          network each time.
-
-          If both this option and <option>config</option> are
-          supplied, they will be combined, with values from
-          <option>config</option> taking precedence.
-
-          You can use the command <code>nix-shell -p yggdrasil --run
-          "yggdrasil -genconf -json"</code> to generate a default
-          JSON configuration.
-        '';
-      };
-
       config = mkOption {
         type = attrs;
         default = {};
@@ -66,16 +28,21 @@ in {
           Configuration for yggdrasil, as a Nix attribute set.
 
           Warning: this is stored in the WORLD-READABLE Nix store!
-          Therefore, it is not appropriate for private keys.  If you
-          do not specify the keys, yggdrasil will generate a new set
-          each time the service is started, creating a random IPv6
-          address on the yggdrasil network each time.
+          Therefore, it is not appropriate for private keys. If you
+          wish to specify the keys, use <option>configFile</option>.
+
+          If the <option>persistentKeys</option> is enabled then the
+          keys that are generated during activation will override
+          those in <option>config</option> or
+          <option>configFile</option>.
 
-          If you wish to specify the keys, use
-          <option>configFile</option>.  If both
-          <option>configFile</option> and <option>config</option> are
-          supplied, they will be combined, with values from
-          <option>config</option> taking precedence.
+          If no keys are specified then ephemeral keys are generated
+          and the Yggdrasil interface will have a random IPv6 address
+          each time the service is started, this is the default.
+
+          If both <option>configFile</option> and <option>config</option>
+          are supplied, they will be combined, with values from
+          <option>configFile</option> taking precedence.
 
           You can use the command <code>nix-shell -p yggdrasil --run
           "yggdrasil -genconf"</code> to generate default
@@ -83,12 +50,21 @@ in {
         '';
       };
 
+      configFile = mkOption {
+        type = nullOr path;
+        default = null;
+        example = "/run/keys/yggdrasil.conf";
+        description = ''
+          A file which contains JSON configuration for yggdrasil.
+          See the <option>config</option> option for more information.
+        '';
+      };
+
       group = mkOption {
         type = types.str;
         default = "root";
         example = "wheel";
-        description =
-          "Group to grant acces to the Yggdrasil control socket.";
+        description = "Group to grant acces to the Yggdrasil control socket.";
       };
 
       openMulticastPort = mkOption {
@@ -126,37 +102,64 @@ in {
         defaultText = "pkgs.yggdrasil";
         description = "Yggdrasil package to use.";
       };
+
+      persistentKeys = mkEnableOption ''
+        If enabled then keys will be generated once and Yggdrasil
+        will retain the same IPv6 address when the service is
+        restarted. Keys are stored at ${keysPath}.
+      '';
+
     };
   };
 
-  config = mkIf cfg.enable {
-    assertions = [
-      { assertion = config.networking.enableIPv6;
-        message = "networking.enableIPv6 must be true for yggdrasil to work";
-      }
-    ];
+  config = mkIf cfg.enable (let binYggdrasil = cfg.package + "/bin/yggdrasil";
+  in {
+    assertions = [{
+      assertion = config.networking.enableIPv6;
+      message = "networking.enableIPv6 must be true for yggdrasil to work";
+    }];
+
+    system.activationScripts.yggdrasil = mkIf cfg.persistentKeys ''
+      if [ ! -e ${keysPath} ]
+      then
+        mkdir -p ${builtins.dirOf keysPath}
+        ${binYggdrasil} -genconf -json \
+          | ${pkgs.jq}/bin/jq \
+              'to_entries|map(select(.key|endswith("Key")))|from_entries' \
+          > ${keysPath}
+        chmod 600 ${keysPath}
+      fi
+    '';
 
     systemd.services.yggdrasil = {
       description = "Yggdrasil Network Service";
-      path = [ cfg.package ] ++ optional (configProvided && configFileProvided) pkgs.jq;
       bindsTo = [ "network-online.target" ];
       after = [ "network-online.target" ];
       wantedBy = [ "multi-user.target" ];
 
-      preStart = ''
-        ${generateConfig} | yggdrasil -normaliseconf -useconf > /run/yggdrasil/yggdrasil.conf
-      '';
+      preStart =
+        (if configProvided || configFileProvided || cfg.persistentKeys then
+          "echo "
+
+          + (lib.optionalString configProvided
+            "'${builtins.toJSON cfg.config}'")
+          + (lib.optionalString configFileProvided "$(cat ${cfg.configFile})")
+          + (lib.optionalString cfg.persistentKeys "$(cat ${keysPath})")
+          + " | ${pkgs.jq}/bin/jq -s add | ${binYggdrasil} -normaliseconf -useconf"
+        else
+          "${binYggdrasil} -genconf") + " > /run/yggdrasil/yggdrasil.conf";
 
       serviceConfig = {
-        ExecStart = "${cfg.package}/bin/yggdrasil -useconffile /run/yggdrasil/yggdrasil.conf";
+        ExecStart =
+          "${binYggdrasil} -useconffile /run/yggdrasil/yggdrasil.conf";
         ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
         Restart = "always";
 
         Group = cfg.group;
         RuntimeDirectory = "yggdrasil";
         RuntimeDirectoryMode = "0750";
-        BindReadOnlyPaths = mkIf configFileProvided
-          [ "${cfg.configFile}" ];
+        BindReadOnlyPaths = lib.optional configFileProvided cfg.configFile
+          ++ lib.optional cfg.persistentKeys keysPath;
 
         # TODO: as of yggdrasil 0.3.8 and systemd 243, yggdrasil fails
         # to set up the network adapter when DynamicUser is set.  See
@@ -191,6 +194,9 @@ in {
 
     # Make yggdrasilctl available on the command line.
     environment.systemPackages = [ cfg.package ];
+  });
+  meta = {
+    doc = ./yggdrasil.xml;
+    maintainers = with lib.maintainers; [ gazally ehmry ];
   };
-  meta.maintainers = with lib.maintainers; [ gazally ];
 }
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/fprintd.nix b/nixos/modules/services/security/fprintd.nix
index 8ece1ca1901..cbac4ef05b8 100644
--- a/nixos/modules/services/security/fprintd.nix
+++ b/nixos/modules/services/security/fprintd.nix
@@ -29,7 +29,6 @@ in
         type = types.package;
         default = pkgs.fprintd;
         defaultText = "pkgs.fprintd";
-        example = "pkgs.fprintd-thinkpad";
         description = ''
           fprintd package to use.
         '';
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 61bcd84f2e6..690eb70079d 100644
--- a/nixos/modules/services/security/physlock.nix
+++ b/nixos/modules/services/security/physlock.nix
@@ -107,6 +107,7 @@ in
                 ++ cfg.lockOn.extraTargets;
         before   = optional cfg.lockOn.suspend   "systemd-suspend.service"
                 ++ optional cfg.lockOn.hibernate "systemd-hibernate.service"
+                ++ optional (cfg.lockOn.hibernate || cfg.lockOn.suspend) "systemd-suspend-then-hibernate.service"
                 ++ cfg.lockOn.extraTargets;
         serviceConfig = {
           Type = "forking";
diff --git a/nixos/modules/services/security/privacyidea.nix b/nixos/modules/services/security/privacyidea.nix
new file mode 100644
index 00000000000..c2988858e56
--- /dev/null
+++ b/nixos/modules/services/security/privacyidea.nix
@@ -0,0 +1,278 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.privacyidea;
+
+  uwsgi = pkgs.uwsgi.override { plugins = [ "python3" ]; };
+  python = uwsgi.python3;
+  penv = python.withPackages (ps: [ ps.privacyidea ]);
+  logCfg = pkgs.writeText "privacyidea-log.cfg" ''
+    [formatters]
+    keys=detail
+
+    [handlers]
+    keys=stream
+
+    [formatter_detail]
+    class=privacyidea.lib.log.SecureFormatter
+    format=[%(asctime)s][%(process)d][%(thread)d][%(levelname)s][%(name)s:%(lineno)d] %(message)s
+
+    [handler_stream]
+    class=StreamHandler
+    level=NOTSET
+    formatter=detail
+    args=(sys.stdout,)
+
+    [loggers]
+    keys=root,privacyidea
+
+    [logger_privacyidea]
+    handlers=stream
+    qualname=privacyidea
+    level=INFO
+
+    [logger_root]
+    handlers=stream
+    level=ERROR
+  '';
+
+  piCfgFile = pkgs.writeText "privacyidea.cfg" ''
+    SUPERUSER_REALM = [ '${concatStringsSep "', '" cfg.superuserRealm}' ]
+    SQLALCHEMY_DATABASE_URI = 'postgresql:///privacyidea'
+    SECRET_KEY = '${cfg.secretKey}'
+    PI_PEPPER = '${cfg.pepper}'
+    PI_ENCFILE = '${cfg.encFile}'
+    PI_AUDIT_KEY_PRIVATE = '${cfg.auditKeyPrivate}'
+    PI_AUDIT_KEY_PUBLIC = '${cfg.auditKeyPublic}'
+    PI_LOGCONFIG = '${logCfg}'
+    ${cfg.extraConfig}
+  '';
+
+in
+
+{
+  options = {
+    services.privacyidea = {
+      enable = mkEnableOption "PrivacyIDEA";
+
+      stateDir = mkOption {
+        type = types.str;
+        default = "/var/lib/privacyidea";
+        description = ''
+          Directory where all PrivacyIDEA files will be placed by default.
+        '';
+      };
+
+      superuserRealm = mkOption {
+        type = types.listOf types.str;
+        default = [ "super" "administrators" ];
+        description = ''
+          The realm where users are allowed to login as administrators.
+        '';
+      };
+
+      secretKey = mkOption {
+        type = types.str;
+        example = "t0p s3cr3t";
+        description = ''
+          This is used to encrypt the auth_token.
+        '';
+      };
+
+      pepper = mkOption {
+        type = types.str;
+        example = "Never know...";
+        description = ''
+          This is used to encrypt the admin passwords.
+        '';
+      };
+
+      encFile = mkOption {
+        type = types.str;
+        default = "${cfg.stateDir}/enckey";
+        description = ''
+          This is used to encrypt the token data and token passwords
+        '';
+      };
+
+      auditKeyPrivate = mkOption {
+        type = types.str;
+        default = "${cfg.stateDir}/private.pem";
+        description = ''
+          Private Key for signing the audit log.
+        '';
+      };
+
+      auditKeyPublic = mkOption {
+        type = types.str;
+        default = "${cfg.stateDir}/public.pem";
+        description = ''
+          Public key for checking signatures of the audit log.
+        '';
+      };
+
+      adminPasswordFile = mkOption {
+        type = types.path;
+        description = "File containing password for the admin user";
+      };
+
+      adminEmail = mkOption {
+        type = types.str;
+        example = "admin@example.com";
+        description = "Mail address for the admin user";
+      };
+
+      extraConfig = mkOption {
+        type = types.lines;
+        default = "";
+        description = ''
+          Extra configuration options for pi.cfg.
+        '';
+      };
+
+      user = mkOption {
+        type = types.str;
+        default = "privacyidea";
+        description = "User account under which PrivacyIDEA runs.";
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "privacyidea";
+        description = "Group account under which PrivacyIDEA runs.";
+      };
+
+      ldap-proxy = {
+        enable = mkEnableOption "PrivacyIDEA LDAP Proxy";
+
+        configFile = mkOption {
+          type = types.path;
+          default = "";
+          description = ''
+            Path to PrivacyIDEA LDAP Proxy configuration (proxy.ini).
+          '';
+        };
+
+        user = mkOption {
+          type = types.str;
+          default = "pi-ldap-proxy";
+          description = "User account under which PrivacyIDEA LDAP proxy runs.";
+        };
+
+        group = mkOption {
+          type = types.str;
+          default = "pi-ldap-proxy";
+          description = "Group account under which PrivacyIDEA LDAP proxy runs.";
+        };
+      };
+    };
+  };
+
+  config = mkMerge [
+
+    (mkIf cfg.enable {
+
+      environment.systemPackages = [ python.pkgs.privacyidea ];
+
+      services.postgresql.enable = mkDefault true;
+
+      systemd.services.privacyidea = let
+        piuwsgi = pkgs.writeText "uwsgi.json" (builtins.toJSON {
+          uwsgi = {
+            plugins = [ "python3" ];
+            pythonpath = "${penv}/${uwsgi.python3.sitePackages}";
+            socket = "/run/privacyidea/socket";
+            uid = cfg.user;
+            gid = cfg.group;
+            chmod-socket = 770;
+            chown-socket = "${cfg.user}:nginx";
+            chdir = cfg.stateDir;
+            wsgi-file = "${penv}/etc/privacyidea/privacyideaapp.wsgi";
+            processes = 4;
+            harakiri = 60;
+            reload-mercy = 8;
+            stats = "/run/privacyidea/stats.socket";
+            max-requests = 2000;
+            limit-as = 1024;
+            reload-on-as = 512;
+            reload-on-rss = 256;
+            no-orphans = true;
+            vacuum = true;
+          };
+        });
+      in {
+        wantedBy = [ "multi-user.target" ];
+        after = [ "postgresql.service" ];
+        path = with pkgs; [ openssl ];
+        environment.PRIVACYIDEA_CONFIGFILE = piCfgFile;
+        preStart = let
+          pi-manage = "${pkgs.sudo}/bin/sudo -u privacyidea -HE ${penv}/bin/pi-manage";
+          pgsu = config.services.postgresql.superUser;
+          psql = config.services.postgresql.package;
+        in ''
+          mkdir -p ${cfg.stateDir} /run/privacyidea
+          chown ${cfg.user}:${cfg.group} -R ${cfg.stateDir} /run/privacyidea
+          if ! test -e "${cfg.stateDir}/db-created"; then
+            ${pkgs.sudo}/bin/sudo -u ${pgsu} ${psql}/bin/createuser --no-superuser --no-createdb --no-createrole ${cfg.user}
+            ${pkgs.sudo}/bin/sudo -u ${pgsu} ${psql}/bin/createdb --owner ${cfg.user} privacyidea
+            ${pi-manage} create_enckey
+            ${pi-manage} create_audit_keys
+            ${pi-manage} createdb
+            ${pi-manage} admin add admin -e ${cfg.adminEmail} -p "$(cat ${cfg.adminPasswordFile})"
+            ${pi-manage} db stamp head -d ${penv}/lib/privacyidea/migrations
+            touch "${cfg.stateDir}/db-created"
+            chmod g+r "${cfg.stateDir}/enckey" "${cfg.stateDir}/private.pem"
+          fi
+          ${pi-manage} db upgrade -d ${penv}/lib/privacyidea/migrations
+        '';
+        serviceConfig = {
+          Type = "notify";
+          ExecStart = "${uwsgi}/bin/uwsgi --json ${piuwsgi}";
+          ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+          ExecStop = "${pkgs.coreutils}/bin/kill -INT $MAINPID";
+          NotifyAccess = "main";
+          KillSignal = "SIGQUIT";
+        };
+      };
+
+      users.users.privacyidea = mkIf (cfg.user == "privacyidea") {
+        group = cfg.group;
+      };
+
+      users.groups.privacyidea = mkIf (cfg.group == "privacyidea") {};
+    })
+
+    (mkIf cfg.ldap-proxy.enable {
+
+      systemd.services.privacyidea-ldap-proxy = let
+        ldap-proxy-env = pkgs.python2.withPackages (ps: [ ps.privacyidea-ldap-proxy ]);
+      in {
+        description = "privacyIDEA LDAP proxy";
+        wantedBy = [ "multi-user.target" ];
+        serviceConfig = {
+          User = cfg.ldap-proxy.user;
+          Group = cfg.ldap-proxy.group;
+          ExecStart = ''
+            ${ldap-proxy-env}/bin/twistd \
+              --nodaemon \
+              --pidfile= \
+              -u ${cfg.ldap-proxy.user} \
+              -g ${cfg.ldap-proxy.group} \
+              ldap-proxy \
+              -c ${cfg.ldap-proxy.configFile}
+          '';
+          Restart = "always";
+        };
+      };
+
+      users.users.pi-ldap-proxy = mkIf (cfg.ldap-proxy.user == "pi-ldap-proxy") {
+        group = cfg.ldap-proxy.group;
+      };
+
+      users.groups.pi-ldap-proxy = mkIf (cfg.ldap-proxy.group == "pi-ldap-proxy") {};
+    })
+  ];
+
+}
diff --git a/nixos/modules/services/security/tor.nix b/nixos/modules/services/security/tor.nix
index 18c105b2f57..b33e905c67d 100644
--- a/nixos/modules/services/security/tor.nix
+++ b/nixos/modules/services/security/tor.nix
@@ -159,7 +159,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>
           '';
         };
diff --git a/nixos/modules/services/security/usbguard.nix b/nixos/modules/services/security/usbguard.nix
index 4ced5acd9bd..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,47 @@ 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";
+        DevicePolicy = "strict";
+        IPAddressDeny = "any";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateTmp = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectKernelModules = true;
+        ProtectSystem = true;
+        ReadOnlyPaths = "-/";
+        ReadWritePaths = "-/dev/shm -/tmp";
+        RestrictAddressFamilies = [ "AF_UNIX" "AF_NETLINK" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        SystemCallArchitectures = "native";
+        SystemCallFilter = "@system-service";
+        UMask = "0077";
       };
     };
   };
+  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/cgmanager.nix b/nixos/modules/services/system/cgmanager.nix
deleted file mode 100644
index d3d57aa7692..00000000000
--- a/nixos/modules/services/system/cgmanager.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  cfg = config.services.cgmanager;
-in {
-  meta.maintainers = [ maintainers.mic92 ];
-
-  ###### interface
-  options.services.cgmanager.enable = mkEnableOption "cgmanager";
-
-  ###### implementation
-  config = mkIf cfg.enable {
-    systemd.services.cgmanager = {
-      wantedBy = [ "multi-user.target" ];
-      description = "Cgroup management daemon";
-      restartIfChanged = false;
-      serviceConfig = {
-        ExecStart = "${pkgs.cgmanager}/bin/cgmanager -m name=systemd";
-        KillMode = "process";
-        Restart = "on-failure";
-      };
-    };
-  };
-}
diff --git a/nixos/modules/services/system/earlyoom.nix b/nixos/modules/services/system/earlyoom.nix
index 39d1bf274bd..e29bdbe264c 100644
--- a/nixos/modules/services/system/earlyoom.nix
+++ b/nixos/modules/services/system/earlyoom.nix
@@ -67,9 +67,19 @@ in
       notificationsCommand = mkOption {
         type = types.nullOr types.str;
         default = null;
-        example = "sudo -u example_user DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus notify-send";
         description = ''
-          Command used to send notifications.
+          This option is deprecated and ignored by earlyoom since 1.6.
+          Use <option>services.earlyoom.enableNotifications</option> instead.
+        '';
+      };
+
+      enableNotifications = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Send notifications about killed processes via the system d-bus.
+          To actually see the notifications in your GUI session, you need to have
+          <literal>systembus-notify</literal> running as your user.
 
           See <link xlink:href="https://github.com/rfjakob/earlyoom#notifications">README</link> for details.
         '';
@@ -87,12 +97,15 @@ in
         message = "Both options in conjunction do not make sense"; }
     ];
 
+    warnings = optional (ecfg.notificationsCommand != null)
+      "`services.earlyoom.notificationsCommand` is deprecated and ignored by earlyoom since 1.6.";
+
     systemd.services.earlyoom = {
       description = "Early OOM Daemon for Linux";
       wantedBy = [ "multi-user.target" ];
+      path = optional ecfg.enableNotifications pkgs.dbus;
       serviceConfig = {
         StandardOutput = "null";
-        StandardError = "syslog";
         ExecStart = ''
           ${pkgs.earlyoom}/bin/earlyoom \
           -m ${toString ecfg.freeMemThreshold} \
@@ -100,10 +113,11 @@ in
           ${optionalString ecfg.useKernelOOMKiller "-k"} \
           ${optionalString ecfg.ignoreOOMScoreAdjust "-i"} \
           ${optionalString ecfg.enableDebugInfo "-d"} \
-          ${optionalString (ecfg.notificationsCommand != null)
-            "-N ${escapeShellArg ecfg.notificationsCommand}"}
+          ${optionalString ecfg.enableNotifications "-n"}
         '';
       };
     };
+
+    environment.systemPackages = optional ecfg.enableNotifications pkgs.systembus-notify;
   };
 }
diff --git a/nixos/modules/services/system/nscd.conf b/nixos/modules/services/system/nscd.conf
index 2b7523a7346..722b883ba42 100644
--- a/nixos/modules/services/system/nscd.conf
+++ b/nixos/modules/services/system/nscd.conf
@@ -24,7 +24,7 @@ negative-time-to-live   netgroup        0
 shared                  netgroup        yes
 
 enable-cache            hosts           yes
-positive-time-to-live   hosts           600
+positive-time-to-live   hosts           0
 negative-time-to-live   hosts           0
 shared                  hosts           yes
 
diff --git a/nixos/modules/services/torrent/rtorrent.nix b/nixos/modules/services/torrent/rtorrent.nix
new file mode 100644
index 00000000000..be57c03b172
--- /dev/null
+++ b/nixos/modules/services/torrent/rtorrent.nix
@@ -0,0 +1,209 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+
+  cfg = config.services.rtorrent;
+
+in {
+  options.services.rtorrent = {
+    enable = mkEnableOption "rtorrent";
+
+    dataDir = mkOption {
+      type = types.str;
+      default = "/var/lib/rtorrent";
+      description = ''
+        The directory where rtorrent stores its data files.
+      '';
+    };
+
+    downloadDir = mkOption {
+      type = types.str;
+      default = "${cfg.dataDir}/download";
+      description = ''
+        Where to put downloaded files.
+      '';
+    };
+
+    user = mkOption {
+      type = types.str;
+      default = "rtorrent";
+      description = ''
+        User account under which rtorrent runs.
+      '';
+    };
+
+    group = mkOption {
+      type = types.str;
+      default = "rtorrent";
+      description = ''
+        Group under which rtorrent runs.
+      '';
+    };
+
+    package = mkOption {
+      type = types.package;
+      default = pkgs.rtorrent;
+      defaultText = "pkgs.rtorrent";
+      description = ''
+        The rtorrent package to use.
+      '';
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = 50000;
+      description = ''
+        The rtorrent port.
+      '';
+    };
+
+    openFirewall = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Whether to open the firewall for the port in <option>services.rtorrent.port</option>.
+      '';
+    };
+
+    rpcSocket = mkOption {
+      type = types.str;
+      readOnly = true;
+      default = "/run/rtorrent/rpc.sock";
+      description = ''
+        RPC socket path.
+      '';
+    };
+
+    configText = mkOption {
+      type = types.lines;
+      default = "";
+      description = ''
+        The content of <filename>rtorrent.rc</filename>. The <link xlink:href="https://rtorrent-docs.readthedocs.io/en/latest/cookbook.html#modernized-configuration-template">modernized configuration template</link> with the values specified in this module will be prepended using mkBefore. You can use mkForce to overwrite the config completly.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    users.groups = mkIf (cfg.group == "rtorrent") {
+      rtorrent = {};
+    };
+
+    users.users = mkIf (cfg.user == "rtorrent") {
+      rtorrent = {
+        group = cfg.group;
+        shell = pkgs.bashInteractive;
+        home = cfg.dataDir;
+        description = "rtorrent Daemon user";
+        isSystemUser = true;
+      };
+    };
+
+    networking.firewall.allowedTCPPorts = mkIf (cfg.openFirewall) [ cfg.port ];
+
+    services.rtorrent.configText = mkBefore ''
+      # Instance layout (base paths)
+      method.insert = cfg.basedir, private|const|string, (cat,"${cfg.dataDir}/")
+      method.insert = cfg.watch,   private|const|string, (cat,(cfg.basedir),"watch/")
+      method.insert = cfg.logs,    private|const|string, (cat,(cfg.basedir),"log/")
+      method.insert = cfg.logfile, private|const|string, (cat,(cfg.logs),(system.time),".log")
+      method.insert = cfg.rpcsock, private|const|string, (cat,"${cfg.rpcSocket}")
+
+      # Create instance directories
+      execute.throw = sh, -c, (cat, "mkdir -p ", (cfg.basedir), "/session ", (cfg.watch), " ", (cfg.logs))
+
+      # Listening port for incoming peer traffic (fixed; you can also randomize it)
+      network.port_range.set = ${toString cfg.port}-${toString cfg.port}
+      network.port_random.set = no
+
+      # Tracker-less torrent and UDP tracker support
+      # (conservative settings for 'private' trackers, change for 'public')
+      dht.mode.set = disable
+      protocol.pex.set = no
+      trackers.use_udp.set = no
+
+      # Peer settings
+      throttle.max_uploads.set = 100
+      throttle.max_uploads.global.set = 250
+
+      throttle.min_peers.normal.set = 20
+      throttle.max_peers.normal.set = 60
+      throttle.min_peers.seed.set = 30
+      throttle.max_peers.seed.set = 80
+      trackers.numwant.set = 80
+
+      protocol.encryption.set = allow_incoming,try_outgoing,enable_retry
+
+      # Limits for file handle resources, this is optimized for
+      # an `ulimit` of 1024 (a common default). You MUST leave
+      # a ceiling of handles reserved for rTorrent's internal needs!
+      network.http.max_open.set = 50
+      network.max_open_files.set = 600
+      network.max_open_sockets.set = 3000
+
+      # Memory resource usage (increase if you have a large number of items loaded,
+      # and/or the available resources to spend)
+      pieces.memory.max.set = 1800M
+      network.xmlrpc.size_limit.set = 4M
+
+      # Basic operational settings (no need to change these)
+      session.path.set = (cat, (cfg.basedir), "session/")
+      directory.default.set = "${cfg.downloadDir}"
+      log.execute = (cat, (cfg.logs), "execute.log")
+      ##log.xmlrpc = (cat, (cfg.logs), "xmlrpc.log")
+      execute.nothrow = sh, -c, (cat, "echo >", (session.path), "rtorrent.pid", " ", (system.pid))
+
+      # Other operational settings (check & adapt)
+      encoding.add = utf8
+      system.umask.set = 0027
+      system.cwd.set = (cfg.basedir)
+      network.http.dns_cache_timeout.set = 25
+      schedule2 = monitor_diskspace, 15, 60, ((close_low_diskspace, 1000M))
+
+      # Watch directories (add more as you like, but use unique schedule names)
+      #schedule2 = watch_start, 10, 10, ((load.start, (cat, (cfg.watch), "start/*.torrent")))
+      #schedule2 = watch_load, 11, 10, ((load.normal, (cat, (cfg.watch), "load/*.torrent")))
+
+      # Logging:
+      #   Levels = critical error warn notice info debug
+      #   Groups = connection_* dht_* peer_* rpc_* storage_* thread_* tracker_* torrent_*
+      print = (cat, "Logging to ", (cfg.logfile))
+      log.open_file = "log", (cfg.logfile)
+      log.add_output = "info", "log"
+      ##log.add_output = "tracker_debug", "log"
+
+      # XMLRPC
+      scgi_local = (cfg.rpcsock)
+      schedule = scgi_group,0,0,"execute.nothrow=chown,\":rtorrent\",(cfg.rpcsock)"
+      schedule = scgi_permission,0,0,"execute.nothrow=chmod,\"g+w,o=\",(cfg.rpcsock)"
+    '';
+
+    systemd = {
+      services = {
+        rtorrent = let
+          rtorrentConfigFile = pkgs.writeText "rtorrent.rc" cfg.configText;
+        in {
+          description = "rTorrent system service";
+          after = [ "network.target" ];
+          path = [ cfg.package pkgs.bash ];
+          wantedBy = [ "multi-user.target" ];
+          serviceConfig = {
+            User = cfg.user;
+            Group = cfg.group;
+            Type = "simple";
+            Restart = "on-failure";
+            WorkingDirectory = cfg.dataDir;
+            ExecStartPre=''${pkgs.bash}/bin/bash -c "if test -e ${cfg.dataDir}/session/rtorrent.lock && test -z $(${pkgs.procps}/bin/pidof rtorrent); then rm -f ${cfg.dataDir}/session/rtorrent.lock; fi"'';
+            ExecStart="${cfg.package}/bin/rtorrent -n -o system.daemon.set=true -o import=${rtorrentConfigFile}";
+            RuntimeDirectory = "rtorrent";
+            RuntimeDirectoryMode = 755;
+          };
+        };
+      };
+
+      tmpfiles.rules = [ "d '${cfg.dataDir}' 0750 ${cfg.user} ${cfg.group} -" ];
+    };
+  };
+}
diff --git a/nixos/modules/services/torrent/transmission.nix b/nixos/modules/services/torrent/transmission.nix
index fd28b94f7be..014a22bb5a8 100644
--- a/nixos/modules/services/torrent/transmission.nix
+++ b/nixos/modules/services/torrent/transmission.nix
@@ -1,58 +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/transmission-daemon";
-  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
-    for DIR in "${homeDir}" "${settingsDir}" "${fullSettings.download-dir}" "${fullSettings.incomplete-dir}"; do
-      mkdir -p "$DIR"
-    done
-    chmod 755 "${homeDir}"
-    chmod 700 "${settingsDir}"
-    chmod ${downloadDirPermissions} "${fullSettings.download-dir}" "${fullSettings.incomplete-dir}"
-    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 =
           {
@@ -62,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.
         '';
       };
@@ -76,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.
         '';
       };
 
@@ -106,25 +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 {
+    # 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
@@ -132,68 +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,
-
-          @{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..50e424fccbf 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";
       };
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/convos.nix b/nixos/modules/services/web-apps/convos.nix
new file mode 100644
index 00000000000..8be11eec9f3
--- /dev/null
+++ b/nixos/modules/services/web-apps/convos.nix
@@ -0,0 +1,72 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.convos;
+in
+{
+  options.services.convos = {
+    enable = mkEnableOption "Convos";
+    listenPort = mkOption {
+      type = types.port;
+      default = 3000;
+      example = 8080;
+      description = "Port the web interface should listen on";
+    };
+    listenAddress = mkOption {
+      type = types.str;
+      default = "*";
+      example = "127.0.0.1";
+      description = "Address or host the web interface should listen on";
+    };
+    reverseProxy = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Enables reverse proxy support. This will allow Convos to automatically
+        pick up the <literal>X-Forwarded-For</literal> and
+        <literal>X-Request-Base</literal> HTTP headers set in your reverse proxy
+        web server. Note that enabling this option without a reverse proxy in
+        front will be a security issue.
+      '';
+    };
+  };
+  config = mkIf cfg.enable {
+    systemd.services.convos = {
+      description = "Convos Service";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "networking.target" ];
+      environment = {
+        CONVOS_HOME = "%S/convos";
+        CONVOS_REVERSE_PROXY = if cfg.reverseProxy then "1" else "0";
+        MOJO_LISTEN = "http://${toString cfg.listenAddress}:${toString cfg.listenPort}";
+      };
+      serviceConfig = {
+        ExecStart = "${pkgs.convos}/bin/convos daemon";
+        Restart = "on-failure";
+        StateDirectory = "convos";
+        WorkingDirectory = "%S/convos";
+        DynamicUser = true;
+        MemoryDenyWriteExecute = true;
+        ProtectHome = true;
+        ProtectClock = true;
+        ProtectHostname = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectKernelLogs = true;
+        ProtectControlGroups = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        PrivateUsers = true;
+        LockPersonality = true;
+        RestrictRealtime = true;
+        RestrictNamespaces = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6"];
+        SystemCallFilter = "@system-service";
+        SystemCallArchitectures = "native";
+        CapabilityBoundingSet = "";
+      };
+    };
+  };
+}
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/engelsystem.nix b/nixos/modules/services/web-apps/engelsystem.nix
new file mode 100644
index 00000000000..899582a2030
--- /dev/null
+++ b/nixos/modules/services/web-apps/engelsystem.nix
@@ -0,0 +1,186 @@
+{ config, lib, pkgs, utils, ... }:
+
+let
+  inherit (lib) mkDefault mkEnableOption mkIf mkOption types literalExample;
+  cfg = config.services.engelsystem;
+in {
+  options = {
+    services.engelsystem = {
+      enable = mkOption {
+        default = false;
+        example = true;
+        description = ''
+          Whether to enable engelsystem, an online tool for coordinating helpers
+          and shifts on large events.
+        '';
+        type = lib.types.bool;
+      };
+
+      domain = mkOption {
+        type = types.str;
+        example = "engelsystem.example.com";
+        description = "Domain to serve on.";
+      };
+
+      package = mkOption {
+        type = types.package;
+        example = literalExample "pkgs.engelsystem";
+        description = "Engelsystem package used for the service.";
+        default = pkgs.engelsystem;
+      };
+
+      createDatabase = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to create a local database automatically.
+          This will override every database setting in <option>services.engelsystem.config</option>.
+        '';
+      };
+    };
+
+    services.engelsystem.config = mkOption {
+      type = types.attrs;
+      default = {
+        database = {
+          host = "localhost";
+          database = "engelsystem";
+          username = "engelsystem";
+        };
+      };
+      example = {
+        maintenance = false;
+        database = {
+          host = "database.example.com";
+          database = "engelsystem";
+          username = "engelsystem";
+          password._secret = "/var/keys/engelsystem/database";
+        };
+        email = {
+          driver = "smtp";
+          host = "smtp.example.com";
+          port = 587;
+          from.address = "engelsystem@example.com";
+          from.name = "example engelsystem";
+          encryption = "tls";
+          username = "engelsystem@example.com";
+          password._secret = "/var/keys/engelsystem/mail";
+        };
+        autoarrive = true;
+        min_password_length = 6;
+        default_locale = "de_DE";
+      };
+      description = ''
+        Options to be added to config.php, as a nix attribute set. Options containing secret data
+        should be set to an attribute set containing the attribute _secret - a string pointing to a
+        file containing the value the option should be set to. See the example to get a better
+        picture of this: in the resulting config.php file, the email.password key will be set to
+        the contents of the /var/keys/engelsystem/mail file.
+
+        See https://engelsystem.de/doc/admin/configuration/ for available options.
+
+        Note that the admin user login credentials cannot be set here - they always default to
+        admin:asdfasdf. Log in and change them immediately.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    # create database
+    services.mysql = mkIf cfg.createDatabase {
+      enable = true;
+      package = mkDefault pkgs.mysql;
+      ensureUsers = [{
+        name = "engelsystem";
+        ensurePermissions = { "engelsystem.*" = "ALL PRIVILEGES"; };
+      }];
+      ensureDatabases = [ "engelsystem" ];
+    };
+
+    environment.etc."engelsystem/config.php".source =
+      pkgs.writeText "config.php" ''
+        <?php
+        return json_decode(file_get_contents("/var/lib/engelsystem/config.json"), true);
+      '';
+
+    services.phpfpm.pools.engelsystem = {
+      user = "engelsystem";
+      settings = {
+        "listen.owner" = config.services.nginx.user;
+        "pm" = "dynamic";
+        "pm.max_children" = 32;
+        "pm.max_requests" = 500;
+        "pm.start_servers" = 2;
+        "pm.min_spare_servers" = 2;
+        "pm.max_spare_servers" = 5;
+        "php_admin_value[error_log]" = "stderr";
+        "php_admin_flag[log_errors]" = true;
+        "catch_workers_output" = true;
+      };
+    };
+
+    services.nginx = {
+      enable = true;
+      virtualHosts."${cfg.domain}".locations = {
+        "/" = {
+          root = "${cfg.package}/share/engelsystem/public";
+          extraConfig = ''
+            index index.php;
+            try_files $uri $uri/ /index.php?$args;
+            autoindex off;
+          '';
+        };
+        "~ \\.php$" = {
+          root = "${cfg.package}/share/engelsystem/public";
+          extraConfig = ''
+            fastcgi_pass unix:${config.services.phpfpm.pools.engelsystem.socket};
+            fastcgi_index index.php;
+            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+            include ${config.services.nginx.package}/conf/fastcgi_params;
+            include ${config.services.nginx.package}/conf/fastcgi.conf;
+          '';
+        };
+      };
+    };
+
+    systemd.services."engelsystem-init" = {
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = { Type = "oneshot"; };
+      script =
+        let
+          genConfigScript = pkgs.writeScript "engelsystem-gen-config.sh"
+            (utils.genJqSecretsReplacementSnippet cfg.config "config.json");
+        in ''
+          umask 077
+          mkdir -p /var/lib/engelsystem/storage/app
+          mkdir -p /var/lib/engelsystem/storage/cache/views
+          cd /var/lib/engelsystem
+          ${genConfigScript}
+          chmod 400 config.json
+          chown -R engelsystem .
+      '';
+    };
+    systemd.services."engelsystem-migrate" = {
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        Type = "oneshot";
+        User = "engelsystem";
+        Group = "engelsystem";
+      };
+      script = ''
+        ${cfg.package}/bin/migrate
+      '';
+      after = [ "engelsystem-init.service" "mysql.service" ];
+    };
+    systemd.services."phpfpm-engelsystem".after =
+      [ "engelsystem-migrate.service" ];
+
+    users.users.engelsystem = {
+      isSystemUser = true;
+      createHome = true;
+      home = "/var/lib/engelsystem/storage";
+      group = "engelsystem";
+    };
+    users.groups.engelsystem = { };
+  };
+}
diff --git a/nixos/modules/services/web-apps/gerrit.nix b/nixos/modules/services/web-apps/gerrit.nix
index b184c0754d4..657b1a4fc5b 100644
--- a/nixos/modules/services/web-apps/gerrit.nix
+++ b/nixos/modules/services/web-apps/gerrit.nix
@@ -17,6 +17,10 @@ let
     lib.generators.toGitINI cfg.settings
   );
 
+  replicationConfig = pkgs.writeText "replication.conf" (
+    lib.generators.toGitINI cfg.replicationSettings
+  );
+
   # Wrap the gerrit java with all the java options so it can be called
   # like a normal CLI app
   gerrit-cli = pkgs.writeShellScriptBin "gerrit" ''
@@ -106,6 +110,15 @@ in
         '';
       };
 
+      replicationSettings = mkOption {
+        type = gitIniType;
+        default = {};
+        description = ''
+          Replication configuration. This will be generated to the
+          <literal>etc/replication.config</literal> file.
+        '';
+      };
+
       plugins = mkOption {
         type = types.listOf types.package;
         default = [];
@@ -138,6 +151,13 @@ in
 
   config = mkIf cfg.enable {
 
+    assertions = [
+      {
+        assertion = cfg.replicationSettings != {} -> elem "replication" cfg.builtinPlugins;
+        message = "Gerrit replicationSettings require enabling the replication plugin";
+      }
+    ];
+
     services.gerrit.settings = {
       cache.directory = "/var/cache/gerrit";
       container.heapLimit = cfg.jvmHeapLimit;
@@ -194,6 +214,7 @@ in
 
         # copy the config, keep it mutable because Gerrit
         ln -sfv ${gerritConfig} etc/gerrit.config
+        ln -sfv ${replicationConfig} etc/replication.config
 
         # install the plugins
         rm -rf plugins
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 f826096bf60..7da119758fc 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -34,7 +34,7 @@ let
     cd ${cfg.package}
     sudo=exec
     if [[ "$USER" != nextcloud ]]; then
-      sudo='exec /run/wrappers/bin/sudo -u nextcloud --preserve-env=NEXTCLOUD_CONFIG_DIR'
+      sudo='exec /run/wrappers/bin/sudo -u nextcloud --preserve-env=NEXTCLOUD_CONFIG_DIR --preserve-env=OC_PASS'
     fi
     export NEXTCLOUD_CONFIG_DIR="${cfg.home}/config"
     $sudo \
@@ -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 {
@@ -69,7 +85,7 @@ in {
     package = mkOption {
       type = types.package;
       description = "Which package to use for the Nextcloud instance.";
-      relatedPackages = [ "nextcloud17" "nextcloud18" ];
+      relatedPackages = [ "nextcloud17" "nextcloud18" "nextcloud19" ];
     };
 
     maxUploadSize = 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;
@@ -303,6 +309,14 @@ in {
         '';
       };
     };
+    occ = mkOption {
+      type = types.package;
+      default = occ;
+      internal = true;
+      description = ''
+        The nextcloud-occ program preconfigured to target this Nextcloud instance.
+      '';
+    };
   };
 
   config = mkIf cfg.enable (mkMerge [
@@ -336,7 +350,16 @@ in {
              server, and wait until the upgrade to 17 is finished.
 
           Then, set `services.nextcloud.package` to `pkgs.nextcloud18` to upgrade to
-          Nextcloud version 18.
+          Nextcloud version 18. Please note that Nextcloud 19 is already out and it's
+          recommended to upgrade to nextcloud19 after that.
+        '')
+        ++ (optional (versionOlder cfg.package.version "19") ''
+          A legacy Nextcloud install (from before NixOS 20.09/unstable) may be installed.
+
+          If/After nextcloud18 is installed successfully, you can safely upgrade to
+          nextcloud19. If not, please upgrade to nextcloud18 first since Nextcloud doesn't
+          support upgrades that skip multiple versions (i.e. an upgrade from 17 to 19 isn't
+          possible, but an upgrade from 18 to 19).
         '');
 
       services.nextcloud.package = with pkgs;
@@ -348,7 +371,8 @@ in {
               `pkgs.nextcloud`.
             ''
           else if versionOlder stateVersion "20.03" then nextcloud17
-          else nextcloud18
+          else if versionOlder stateVersion "20.09" then nextcloud18
+          else nextcloud19
         );
     }
 
@@ -360,6 +384,11 @@ in {
       };
 
       systemd.services = {
+        # When upgrading the Nextcloud package, Nextcloud can report errors such as
+        # "The files of the app [all apps in /var/lib/nextcloud/apps] were not replaced correctly"
+        # Restarting phpfpm on Nextcloud package update fixes these issues (but this is a workaround).
+        phpfpm-nextcloud.restartTriggers = [ cfg.package ];
+
         nextcloud-setup = let
           c = cfg.config;
           writePhpArrary = a: "[${concatMapStringsSep "," (val: ''"${toString val}"'') a}]";
@@ -445,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
@@ -461,6 +498,7 @@ in {
             ${occSetTrustedDomainsCmd}
           '';
           serviceConfig.Type = "oneshot";
+          serviceConfig.User = "nextcloud";
         };
         nextcloud-cron = {
           environment.NEXTCLOUD_CONFIG_DIR = "${cfg.home}/config";
@@ -479,7 +517,7 @@ in {
       services.phpfpm = {
         pools.nextcloud = {
           user = "nextcloud";
-          group = "nginx";
+          group = "nextcloud";
           phpOptions = phpOptionsStr;
           phpPackage = phpPackage;
           phpEnv = {
@@ -487,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 = ''
+              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 = ''
-              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;
-              ''}
+              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 fc454f8ba25..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>
 
@@ -161,5 +214,11 @@
   };
 }</programlisting>
   </para>
+
+  <para>
+   Ideally we should make sure that it's possible to jump two NixOS versions forward:
+   i.e. the warnings and the logic in the module should guard a user to upgrade from a
+   Nextcloud on e.g. 19.09 to a Nextcloud on 20.09.
+  </para>
  </section>
 </chapter>
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
new file mode 100644
index 00000000000..5f30124dd68
--- /dev/null
+++ b/nixos/modules/services/web-apps/sogo.nix
@@ -0,0 +1,272 @@
+{ config, pkgs, lib, ... }: with lib; let
+  cfg = config.services.sogo;
+
+  preStart = pkgs.writeShellScriptBin "sogo-prestart" ''
+    touch /etc/sogo/sogo.conf
+    chown sogo:sogo /etc/sogo/sogo.conf
+    chmod 640 /etc/sogo/sogo.conf
+
+    ${if (cfg.configReplaces != {}) then ''
+      # Insert secrets
+      ${concatStringsSep "\n" (mapAttrsToList (k: v: ''export ${k}="$(cat "${v}" | tr -d '\n')"'') cfg.configReplaces)}
+
+      ${pkgs.perl}/bin/perl -p ${concatStringsSep " " (mapAttrsToList (k: v: '' -e 's/${k}/''${ENV{"${k}"}}/g;' '') cfg.configReplaces)} /etc/sogo/sogo.conf.raw > /etc/sogo/sogo.conf
+    '' else ''
+      cp /etc/sogo/sogo.conf.raw /etc/sogo/sogo.conf
+    ''}
+  '';
+
+in {
+  options.services.sogo = with types; {
+    enable = mkEnableOption "SOGo groupware";
+
+    vhostName = mkOption {
+      description = "Name of the nginx vhost";
+      type = str;
+      default = "sogo";
+    };
+
+    timezone = mkOption {
+      description = "Timezone of your SOGo instance";
+      type = str;
+      example = "America/Montreal";
+    };
+
+    language = mkOption {
+      description = "Language of SOGo";
+      type = str;
+      default = "English";
+    };
+
+    ealarmsCredFile = mkOption {
+      description = "Optional path to a credentials file for email alarms";
+      type = nullOr str;
+      default = null;
+    };
+
+    configReplaces = mkOption {
+      description = ''
+        Replacement-filepath mapping for sogo.conf.
+        Every key is replaced with the contents of the file specified as value.
+
+        In the example, every occurence of LDAP_BINDPW will be replaced with the text of the
+        specified file.
+      '';
+      type = attrsOf str;
+      default = {};
+      example = {
+        LDAP_BINDPW = "/var/lib/secrets/sogo/ldappw";
+      };
+    };
+
+    extraConfig = mkOption {
+      description = "Extra sogo.conf configuration lines";
+      type = lines;
+      default = "";
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ pkgs.sogo ];
+
+    environment.etc."sogo/sogo.conf.raw".text = ''
+      {
+        // Mandatory parameters
+        SOGoTimeZone = "${cfg.timezone}";
+        SOGoLanguage = "${cfg.language}";
+        // 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)
+        NGLogDefaultLogEventFormatterClass = "NGLogEventFormatter";
+        // Extra config
+        ${cfg.extraConfig}
+      }
+    '';
+
+    systemd.services.sogo = {
+      description = "SOGo groupware";
+      after = [ "postgresql.service" "mysql.service" "memcached.service" "openldap.service" "dovecot2.service" ];
+      wantedBy = [ "multi-user.target" ];
+      restartTriggers = [ config.environment.etc."sogo/sogo.conf.raw".source ];
+
+      environment.LDAPTLS_CACERT = "/etc/ssl/certs/ca-certificates.crt";
+
+      serviceConfig = {
+        Type = "forking";
+        ExecStartPre = "+" + preStart + "/bin/sogo-prestart";
+        ExecStart = "${pkgs.sogo}/bin/sogod -WOLogFile - -WOPidFile /run/sogo/sogo.pid";
+
+        ProtectSystem = "strict";
+        ProtectHome = true;
+        PrivateTmp = true;
+        PrivateDevices = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectControlGroups = true;
+        RuntimeDirectory = "sogo";
+        StateDirectory = "sogo/spool";
+
+        User = "sogo";
+        Group = "sogo";
+
+        CapabilityBoundingSet = "";
+        NoNewPrivileges = true;
+
+        LockPersonality = true;
+        RestrictRealtime = true;
+        PrivateMounts = true;
+        PrivateUsers = true;
+        MemoryDenyWriteExecute = true;
+        SystemCallFilter = "@basic-io @file-system @network-io @system-service @timer";
+        SystemCallArchitectures = "native";
+        RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6";
+      };
+    };
+
+    systemd.services.sogo-tmpwatch = {
+      description = "SOGo tmpwatch";
+
+      startAt = [ "hourly" ];
+      script = ''
+        SOGOSPOOL=/var/lib/sogo/spool
+
+        find "$SOGOSPOOL" -type f -user sogo -atime +23 -delete > /dev/null
+        find "$SOGOSPOOL" -mindepth 1 -type d -user sogo -empty -delete > /dev/null
+      '';
+
+      serviceConfig = {
+        Type = "oneshot";
+
+        ProtectSystem = "strict";
+        ProtectHome = true;
+        PrivateTmp = true;
+        PrivateDevices = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectControlGroups = true;
+        StateDirectory = "sogo/spool";
+
+        User = "sogo";
+        Group = "sogo";
+
+        CapabilityBoundingSet = "";
+        NoNewPrivileges = true;
+
+        LockPersonality = true;
+        RestrictRealtime = true;
+        PrivateMounts = true;
+        PrivateUsers = true;
+        PrivateNetwork = true;
+        SystemCallFilter = "@basic-io @file-system @system-service";
+        SystemCallArchitectures = "native";
+        RestrictAddressFamilies = "";
+      };
+    };
+
+    systemd.services.sogo-ealarms = {
+      description = "SOGo email alarms";
+
+      after = [ "postgresql.service" "mysqld.service" "memcached.service" "openldap.service" "dovecot2.service" "sogo.service" ];
+      restartTriggers = [ config.environment.etc."sogo/sogo.conf.raw".source ];
+
+      startAt = [ "minutely" ];
+
+      serviceConfig = {
+        Type = "oneshot";
+        ExecStart = "${pkgs.sogo}/bin/sogo-ealarms-notify${optionalString (cfg.ealarmsCredFile != null) " -p ${cfg.ealarmsCredFile}"}";
+
+        ProtectSystem = "strict";
+        ProtectHome = true;
+        PrivateTmp = true;
+        PrivateDevices = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectControlGroups = true;
+        StateDirectory = "sogo/spool";
+
+        User = "sogo";
+        Group = "sogo";
+
+        CapabilityBoundingSet = "";
+        NoNewPrivileges = true;
+
+        LockPersonality = true;
+        RestrictRealtime = true;
+        PrivateMounts = true;
+        PrivateUsers = true;
+        MemoryDenyWriteExecute = true;
+        SystemCallFilter = "@basic-io @file-system @network-io @system-service";
+        SystemCallArchitectures = "native";
+        RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6";
+      };
+    };
+
+    # nginx vhost
+    services.nginx.virtualHosts."${cfg.vhostName}" = {
+      locations."/".extraConfig = ''
+        rewrite ^ https://$server_name/SOGo;
+        allow all;
+      '';
+
+      # For iOS 7
+      locations."/principals/".extraConfig = ''
+        rewrite ^ https://$server_name/SOGo/dav;
+        allow all;
+      '';
+
+      locations."^~/SOGo".extraConfig = ''
+        proxy_pass http://127.0.0.1:20000;
+        proxy_redirect http://127.0.0.1:20000 default;
+
+        proxy_set_header X-Real-IP $remote_addr;
+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header Host $host;
+        proxy_set_header x-webobjects-server-protocol HTTP/1.0;
+        proxy_set_header x-webobjects-remote-host 127.0.0.1;
+        proxy_set_header x-webobjects-server-port $server_port;
+        proxy_set_header x-webobjects-server-name $server_name;
+        proxy_set_header x-webobjects-server-url $scheme://$host;
+        proxy_connect_timeout 90;
+        proxy_send_timeout 90;
+        proxy_read_timeout 90;
+        proxy_buffer_size 4k;
+        proxy_buffers 4 32k;
+        proxy_busy_buffers_size 64k;
+        proxy_temp_file_write_size 64k;
+        client_max_body_size 50m;
+        client_body_buffer_size 128k;
+        break;
+      '';
+
+      locations."/SOGo.woa/WebServerResources/".extraConfig = ''
+        alias ${pkgs.sogo}/lib/GNUstep/SOGo/WebServerResources/;
+        allow all;
+      '';
+
+      locations."/SOGo/WebServerResources/".extraConfig = ''
+        alias ${pkgs.sogo}/lib/GNUstep/SOGo/WebServerResources/;
+        allow all;
+      '';
+
+      locations."~ ^/SOGo/so/ControlPanel/Products/([^/]*)/Resources/(.*)$".extraConfig = ''
+        alias ${pkgs.sogo}/lib/GNUstep/SOGo/$1.SOGo/Resources/$2;
+      '';
+
+      locations."~ ^/SOGo/so/ControlPanel/Products/[^/]*UI/Resources/.*\\.(jpg|png|gif|css|js)$".extraConfig = ''
+        alias ${pkgs.sogo}/lib/GNUstep/SOGo/$1.SOGo/Resources/$2;
+      '';
+    };
+
+    # User and group
+    users.groups.sogo = {};
+    users.users.sogo = {
+      group = "sogo";
+      isSystemUser = true;
+      description = "SOGo service user";
+    };
+  };
+}
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 b92e3449894..6a29f10d119 100644
--- a/nixos/modules/services/web-apps/tt-rss.nix
+++ b/nixos/modules/services/web-apps/tt-rss.nix
@@ -631,9 +631,10 @@ let
         serviceConfig = {
           User = "${cfg.user}";
           Group = "tt_rss";
-          ExecStart = "${pkgs.php}/bin/php ${cfg.root}/update.php --daemon";
-          StandardOutput = "syslog";
-          StandardError = "syslog";
+          ExecStart = "${pkgs.php}/bin/php ${cfg.root}/update.php --daemon --quiet";
+          Restart = "on-failure";
+          RestartSec = "60";
+          SyslogIdentifier = "tt-rss";
         };
 
         wantedBy = [ "multi-user.target" ];
diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix
index 8abee7130d7..fc4c2945394 100644
--- a/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/default.nix
@@ -10,6 +10,12 @@ let
 
   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; };
@@ -650,10 +656,29 @@ in
       postRun = "systemctl reload httpd.service";
     }) (filterAttrs (name: hostOpts: hostOpts.enableACME) cfg.virtualHosts);
 
-    environment.systemPackages = [ pkg ];
+    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 =
       ''
@@ -708,6 +733,7 @@ in
         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;
 
         path = [ pkg pkgs.coreutils pkgs.gnugrep ];
 
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 1e9cda7e478..461888c4cc4 100644
--- a/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixos/modules/services/web-servers/nginx/default.nix
@@ -463,6 +463,14 @@ in
         '';
       };
 
+      enableSandbox = mkOption {
+        default = false;
+        type = types.bool;
+        description = ''
+          Starting Nginx web server with additional sandbox/hardening options.
+        '';
+      };
+
       user = mkOption {
         type = types.str;
         default = "nginx";
@@ -685,6 +693,10 @@ in
       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;
+      # 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;
       stopIfChanged = false;
       preStart = ''
         ${cfg.preStart}
@@ -692,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";
@@ -710,6 +725,27 @@ in
         LogsDirectoryMode = "0750";
         # Capabilities
         AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" "CAP_SYS_RESOURCE" ];
+        CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" "CAP_SYS_RESOURCE" ];
+        # Security
+        NoNewPrivileges = true;
+      } // optionalAttrs cfg.enableSandbox {
+        # Sandboxing
+        ProtectSystem = "strict";
+        ProtectHome = mkDefault true;
+        PrivateTmp = true;
+        PrivateDevices = true;
+        ProtectHostname = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectControlGroups = true;
+        RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+        LockPersonality = true;
+        MemoryDenyWriteExecute = !(builtins.any (mod: (mod.allowMemoryWriteExecute or false)) pkgs.nginx.modules);
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        PrivateMounts = true;
+        # System Call Filtering
+        SystemCallArchitectures = "native";
       };
     };
 
@@ -727,9 +763,8 @@ in
       serviceConfig.Type = "oneshot";
       serviceConfig.TimeoutSec = 60;
       script = ''
-        if ${pkgs.systemd}/bin/systemctl -q is-active nginx.service ; then
-          ${execCommand} -t && \
-            ${pkgs.systemd}/bin/systemctl reload nginx.service
+        if /run/current-system/systemd/bin/systemctl -q is-active nginx.service ; then
+          /run/current-system/systemd/bin/systemctl reload nginx.service
         fi
       '';
       serviceConfig.RemainAfterExit = true;
@@ -743,7 +778,7 @@ in
             webroot = vhostConfig.acmeRoot;
             extraDomains = genAttrs vhostConfig.serverAliases (alias: null);
             postRun = ''
-              systemctl reload nginx
+              /run/current-system/systemd/bin/systemctl reload nginx
             '';
           }; }) acmeEnabledVhosts;
       in
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/web-servers/uwsgi.nix b/nixos/modules/services/web-servers/uwsgi.nix
index 4b74c329e3d..936e211ec71 100644
--- a/nixos/modules/services/web-servers/uwsgi.nix
+++ b/nixos/modules/services/web-servers/uwsgi.nix
@@ -79,7 +79,25 @@ in {
       };
 
       instance = mkOption {
-        type = types.attrs;
+        type =  with lib.types; let
+          valueType = nullOr (oneOf [
+            bool
+            int
+            float
+            str
+            (lazyAttrsOf valueType)
+            (listOf valueType)
+            (mkOptionType {
+              name = "function";
+              description = "function";
+              check = x: isFunction x;
+              merge = mergeOneOption;
+            })
+          ]) // {
+            description = "Json value or lambda";
+            emptyValue.value = {};
+          };
+        in valueType;
         default = {
           type = "normal";
         };
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/cde.nix b/nixos/modules/services/x11/desktop-managers/cde.nix
index c1b6d3bf064..2d9504fb5f1 100644
--- a/nixos/modules/services/x11/desktop-managers/cde.nix
+++ b/nixos/modules/services/x11/desktop-managers/cde.nix
@@ -8,9 +8,26 @@ let
 in {
   options.services.xserver.desktopManager.cde = {
     enable = mkEnableOption "Common Desktop Environment";
+
+    extraPackages = mkOption {
+      type = with types; listOf package;
+      default = with pkgs.xorg; [
+        xclock bitmap xlsfonts xfd xrefresh xload xwininfo xdpyinfo xwd xwud
+      ];
+      example = literalExample ''
+        with pkgs.xorg; [
+          xclock bitmap xlsfonts xfd xrefresh xload xwininfo xdpyinfo xwd xwud
+        ]
+      '';
+      description = ''
+        Extra packages to be installed system wide.
+      '';
+    };
   };
 
   config = mkIf (xcfg.enable && cfg.enable) {
+    environment.systemPackages = cfg.extraPackages;
+
     services.rpcbind.enable = true;
 
     services.xinetd.enable = true;
diff --git a/nixos/modules/services/x11/desktop-managers/default.nix b/nixos/modules/services/x11/desktop-managers/default.nix
index ea6aac9f6c9..5d3a84d7139 100644
--- a/nixos/modules/services/x11/desktop-managers/default.nix
+++ b/nixos/modules/services/x11/desktop-managers/default.nix
@@ -19,7 +19,7 @@ in
   # E.g., if Plasma 5 is enabled, it supersedes xterm.
   imports = [
     ./none.nix ./xterm.nix ./xfce.nix ./plasma5.nix ./lumina.nix
-    ./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix ./maxx.nix
+    ./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix
     ./mate.nix ./pantheon.nix ./surf-display.nix ./cde.nix
   ];
 
diff --git a/nixos/modules/services/x11/desktop-managers/enlightenment.nix b/nixos/modules/services/x11/desktop-managers/enlightenment.nix
index 1690a7d51a8..3a7ab64510b 100644
--- a/nixos/modules/services/x11/desktop-managers/enlightenment.nix
+++ b/nixos/modules/services/x11/desktop-managers/enlightenment.nix
@@ -32,15 +32,14 @@ in
 
   config = mkIf cfg.enable {
 
-    environment.systemPackages = [
-      e.efl e.enlightenment
-      e.terminology e.econnman
-      pkgs.xorg.xauth # used by kdesu
-      pkgs.gtk2 # To get GTK's themes.
-      pkgs.tango-icon-theme
-
-      pkgs.gnome-icon-theme
-      pkgs.xorg.xcursorthemes
+    environment.systemPackages = with pkgs; [
+      enlightenment.econnman
+      enlightenment.efl
+      enlightenment.enlightenment
+      enlightenment.ephoto
+      enlightenment.rage
+      enlightenment.terminology
+      xorg.xcursorthemes
     ];
 
     environment.pathsToLink = [
@@ -50,11 +49,10 @@ in
       "/share/locale"
     ];
 
-    services.xserver.desktopManager.session = [
-    { name = "Enlightenment";
-      start = ''
-        export XDG_MENU_PREFIX=e-
+    services.xserver.displayManager.sessionPackages = [ pkgs.enlightenment.enlightenment ];
 
+    services.xserver.displayManager.sessionCommands = ''
+      if test "$XDG_CURRENT_DESKTOP" = "Enlightenment"; then
         export GST_PLUGIN_PATH="${GST_PLUGIN_PATH}"
 
         # make available for D-BUS user services
@@ -62,12 +60,15 @@ in
 
         # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/
         ${pkgs.xdg-user-dirs}/bin/xdg-user-dirs-update
-
-        exec ${e.enlightenment}/bin/enlightenment_start
-      '';
-    }];
-
-    security.wrappers = (import "${e.enlightenment}/e-wrappers.nix").security.wrappers;
+      fi
+    '';
+
+    # Wrappers for programs installed by enlightenment that should be setuid
+    security.wrappers = {
+      enlightenment_ckpasswd.source = "${pkgs.enlightenment.enlightenment}/lib/enlightenment/utils/enlightenment_ckpasswd";
+      enlightenment_sys.source = "${pkgs.enlightenment.enlightenment}/lib/enlightenment/utils/enlightenment_sys";
+      enlightenment_system.source = "${pkgs.enlightenment.enlightenment}/lib/enlightenment/utils/enlightenment_system";
+    };
 
     environment.etc."X11/xkb".source = xcfg.xkbDir;
 
diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix
index bbc7feb2d04..69cf9832172 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome3.nix
+++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix
@@ -37,10 +37,10 @@ let
      chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
      cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF
        [org.gnome.desktop.background]
-       picture-uri='file://${pkgs.nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png'
+       picture-uri='file://${pkgs.nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}'
 
        [org.gnome.desktop.screensaver]
-       picture-uri='file://${pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom}/share/artwork/gnome/nix-wallpaper-simple-dark-gray_bottom.png'
+       picture-uri='file://${pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom.gnomeFilePath}'
 
        [org.gnome.shell]
        favorite-apps=[ 'org.gnome.Epiphany.desktop', 'org.gnome.Geary.desktop', 'org.gnome.Music.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ]
@@ -320,6 +320,8 @@ in
         gnome-shell
         gnome-shell-extensions
         gnome-themes-extra
+        pkgs.nixos-artwork.wallpapers.simple-dark-gray
+        pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom
         pkgs.gnome-user-docs
         pkgs.orca
         pkgs.glib # for gsettings
diff --git a/nixos/modules/services/x11/desktop-managers/lumina.nix b/nixos/modules/services/x11/desktop-managers/lumina.nix
index 2224bcd5a2a..419f5055d8b 100644
--- a/nixos/modules/services/x11/desktop-managers/lumina.nix
+++ b/nixos/modules/services/x11/desktop-managers/lumina.nix
@@ -23,12 +23,9 @@ in
 
   config = mkIf cfg.enable {
 
-    services.xserver.desktopManager.session = singleton {
-      name = "lumina";
-      start = ''
-        exec ${pkgs.lumina.lumina}/bin/start-lumina-desktop
-      '';
-    };
+    services.xserver.displayManager.sessionPackages = [
+      pkgs.lumina.lumina
+    ];
 
     environment.systemPackages =
       pkgs.lumina.preRequisitePackages ++
diff --git a/nixos/modules/services/x11/desktop-managers/maxx.nix b/nixos/modules/services/x11/desktop-managers/maxx.nix
deleted file mode 100644
index 1c04104df41..00000000000
--- a/nixos/modules/services/x11/desktop-managers/maxx.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  xcfg = config.services.xserver;
-  cfg = xcfg.desktopManager.maxx;
-in {
-  options.services.xserver.desktopManager.maxx = {
-    enable = mkEnableOption "MaXX desktop environment";
-  };
-
-  config = mkIf cfg.enable {
-    environment.systemPackages = [ pkgs.maxx ];
-
-    # there is hardcoded path in binaries
-    system.activationScripts.setup-maxx = ''
-      mkdir -p /opt
-      ln -sfn ${pkgs.maxx}/opt/MaXX /opt
-    '';
-
-    services.xserver.desktopManager.session = [
-    { name = "MaXX";
-      start = ''
-        exec ${pkgs.maxx}/opt/MaXX/etc/skel/Xsession.dt
-      '';
-    }];
-  };
-
-  meta.maintainers = [ maintainers.gnidorah ];
-}
diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix
index 5fcc8590232..6dabca6bf09 100644
--- a/nixos/modules/services/x11/desktop-managers/pantheon.nix
+++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix
@@ -180,6 +180,7 @@ in
         gtk3.out
         hicolor-icon-theme
         lightlocker
+        nixos-artwork.wallpapers.simple-dark-gray
         onboard
         qgnomeplatform
         shared-mime-info
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index 60ef0159ff1..75bf55a2639 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -158,6 +158,19 @@ in
         example = "vlc";
         description = "Phonon audio backend to install.";
       };
+
+      supportDDC = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Support setting monitor brightness via DDC.
+          </para>
+          <para>
+          This is not needed for controlling brightness of the internal monitor
+          of a laptop and as it is considered experimental by upstream, it is
+          disabled by default.
+        '';
+      };
     };
 
   };
@@ -184,6 +197,12 @@ in
         };
       };
 
+      # DDC support
+      boot.kernelModules = lib.optional cfg.supportDDC "i2c_dev";
+      services.udev.extraRules = lib.optionalString cfg.supportDDC ''
+        KERNEL=="i2c-[0-9]*", TAG+="uaccess"
+      '';
+
       environment.systemPackages = with pkgs; with qt5; with libsForQt5; with plasma5; with kdeApplications;
         [
           frameworkintegration
@@ -302,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 2a7a19e7695..b8b36aa0532 100644
--- a/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixos/modules/services/x11/display-managers/default.nix
@@ -39,7 +39,8 @@ let
 
       ${optionalString cfg.startDbusSession ''
         if test -z "$DBUS_SESSION_BUS_ADDRESS"; then
-          exec ${pkgs.dbus.dbus-launch} --exit-with-session "$0" "$@"
+          /run/current-system/systemd/bin/systemctl --user start dbus.socket
+          export `/run/current-system/systemd/bin/systemctl --user show-environment | grep '^DBUS_SESSION_BUS_ADDRESS'`
         fi
       ''}
 
@@ -59,7 +60,7 @@ let
       #
       # Also tell systemd about the dbus session bus address.
       # This is required by user units using the session bus.
-      ${config.systemd.package}/bin/systemctl --user import-environment DISPLAY XAUTHORITY DBUS_SESSION_BUS_ADDRESS
+      /run/current-system/systemd/bin/systemctl --user import-environment DISPLAY XAUTHORITY DBUS_SESSION_BUS_ADDRESS
 
       # Load X defaults. This should probably be safe on wayland too.
       ${xorg.xrdb}/bin/xrdb -merge ${xresourcesXft}
@@ -88,7 +89,7 @@ let
       fi
 
       # Start systemd user services for graphical sessions
-      ${config.systemd.package}/bin/systemctl --user start graphical-session.target
+      /run/current-system/systemd/bin/systemctl --user start graphical-session.target
 
       # Allow the user to setup a custom session type.
       if test -x ~/.xsession; then
@@ -331,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).";
@@ -393,7 +427,7 @@ in
 
           test -n "$waitPID" && wait "$waitPID"
 
-          ${config.systemd.package}/bin/systemctl --user stop graphical-session.target
+          /run/current-system/systemd/bin/systemctl --user stop graphical-session.target
 
           exit 0
         '';
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 479548863b4..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 = {
@@ -132,8 +146,9 @@ in
       };
 
       background = mkOption {
-        type = types.str;
-        default = "${pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom}/share/artwork/gnome/nix-wallpaper-simple-dark-gray_bottom.png";
+        type = types.path;
+        # Manual cannot depend on packages, we are actually setting the default in config below.
+        defaultText = "pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom.gnomeFilePath";
         description = ''
           The background image or color to use.
         '';
@@ -148,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.
-              '';
-            };
-          };
-        };
       };
 
     };
@@ -194,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.
@@ -212,9 +196,12 @@ in
       }
     ];
 
+    # Keep in sync with the defaultText value from the option definition.
+    services.xserver.displayManager.lightdm.background = mkDefault pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom.gnomeFilePath;
+
     # 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}
     '';
 
@@ -266,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 4224c557ed6..e63bb2e4453 100644
--- a/nixos/modules/services/x11/display-managers/sddm.nix
+++ b/nixos/modules/services/x11/display-managers/sddm.nix
@@ -30,8 +30,8 @@ let
 
   cfgFile = pkgs.writeText "sddm.conf" ''
     [General]
-    HaltCommand=${pkgs.systemd}/bin/systemctl poweroff
-    RebootCommand=${pkgs.systemd}/bin/systemctl reboot
+    HaltCommand=/run/current-system/systemd/bin/systemctl poweroff
+    RebootCommand=/run/current-system/systemd/bin/systemctl reboot
     ${optionalString cfg.autoNumlock ''
     Numlock=on
     ''}
@@ -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/berry.nix b/nixos/modules/services/x11/window-managers/berry.nix
new file mode 100644
index 00000000000..0d2285e7a60
--- /dev/null
+++ b/nixos/modules/services/x11/window-managers/berry.nix
@@ -0,0 +1,25 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.xserver.windowManager.berry;
+in
+{
+  ###### interface
+  options = {
+    services.xserver.windowManager.berry.enable = mkEnableOption "berry";
+  };
+
+  ###### implementation
+  config = mkIf cfg.enable {
+    services.xserver.windowManager.session = singleton {
+      name = "berry";
+      start = ''
+        ${pkgs.berry}/bin/berry &
+        waitPID=$!
+      '';
+    };
+    environment.systemPackages = [ pkgs.berry ];
+  };
+}
diff --git a/nixos/modules/services/x11/window-managers/default.nix b/nixos/modules/services/x11/window-managers/default.nix
index b815c5f16a1..87702c58727 100644
--- a/nixos/modules/services/x11/window-managers/default.nix
+++ b/nixos/modules/services/x11/window-managers/default.nix
@@ -10,6 +10,7 @@ in
   imports = [
     ./2bwm.nix
     ./afterstep.nix
+    ./berry.nix
     ./bspwm.nix
     ./cwm.nix
     ./dwm.nix
@@ -21,6 +22,7 @@ in
     ./i3.nix
     ./jwm.nix
     ./leftwm.nix
+    ./lwm.nix
     ./metacity.nix
     ./mwm.nix
     ./openbox.nix
@@ -28,6 +30,7 @@ in
     ./notion.nix
     ./ratpoison.nix
     ./sawfish.nix
+    ./smallwm.nix
     ./stumpwm.nix
     ./spectrwm.nix
     ./tinywm.nix
@@ -35,6 +38,7 @@ in
     ./windowmaker.nix
     ./wmii.nix
     ./xmonad.nix
+    ./yeahwm.nix
     ./qtile.nix
     ./none.nix ];
 
diff --git a/nixos/modules/services/x11/window-managers/lwm.nix b/nixos/modules/services/x11/window-managers/lwm.nix
new file mode 100644
index 00000000000..e2aa062fd13
--- /dev/null
+++ b/nixos/modules/services/x11/window-managers/lwm.nix
@@ -0,0 +1,25 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.xserver.windowManager.lwm;
+in
+{
+  ###### interface
+  options = {
+    services.xserver.windowManager.lwm.enable = mkEnableOption "lwm";
+  };
+
+  ###### implementation
+  config = mkIf cfg.enable {
+    services.xserver.windowManager.session = singleton {
+      name = "lwm";
+      start = ''
+        ${pkgs.lwm}/bin/lwm &
+        waitPID=$!
+      '';
+    };
+    environment.systemPackages = [ pkgs.lwm ];
+  };
+}
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/smallwm.nix b/nixos/modules/services/x11/window-managers/smallwm.nix
new file mode 100644
index 00000000000..091ba4f92b9
--- /dev/null
+++ b/nixos/modules/services/x11/window-managers/smallwm.nix
@@ -0,0 +1,25 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.xserver.windowManager.smallwm;
+in
+{
+  ###### interface
+  options = {
+    services.xserver.windowManager.smallwm.enable = mkEnableOption "smallwm";
+  };
+
+  ###### implementation
+  config = mkIf cfg.enable {
+    services.xserver.windowManager.session = singleton {
+      name = "smallwm";
+      start = ''
+        ${pkgs.smallwm}/bin/smallwm &
+        waitPID=$!
+      '';
+    };
+    environment.systemPackages = [ pkgs.smallwm ];
+  };
+}
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/services/x11/window-managers/yeahwm.nix b/nixos/modules/services/x11/window-managers/yeahwm.nix
new file mode 100644
index 00000000000..351bd7dfe48
--- /dev/null
+++ b/nixos/modules/services/x11/window-managers/yeahwm.nix
@@ -0,0 +1,25 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.xserver.windowManager.yeahwm;
+in
+{
+  ###### interface
+  options = {
+    services.xserver.windowManager.yeahwm.enable = mkEnableOption "yeahwm";
+  };
+
+  ###### implementation
+  config = mkIf cfg.enable {
+    services.xserver.windowManager.session = singleton {
+      name = "yeahwm";
+      start = ''
+        ${pkgs.yeahwm}/bin/yeahwm &
+        waitPID=$!
+      '';
+    };
+    environment.systemPackages = [ pkgs.yeahwm ];
+  };
+}
diff --git a/nixos/modules/services/x11/xautolock.nix b/nixos/modules/services/x11/xautolock.nix
index 3e03131ca11..5ce08fce7c4 100644
--- a/nixos/modules/services/x11/xautolock.nix
+++ b/nixos/modules/services/x11/xautolock.nix
@@ -66,7 +66,7 @@ in
 
         killer = mkOption {
           default = null; # default according to `man xautolock` is none
-          example = "${pkgs.systemd}/bin/systemctl suspend";
+          example = "/run/current-system/systemd/bin/systemctl suspend";
           type = types.nullOr types.str;
 
           description = ''
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 6aec1c0753a..400173745d3 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -246,7 +246,7 @@ in
       videoDrivers = mkOption {
         type = types.listOf types.str;
         # !!! We'd like "nv" here, but it segfaults the X server.
-        default = [ "radeon" "cirrus" "vesa" "vmware" "modesetting" ];
+        default = [ "radeon" "cirrus" "vesa" "modesetting" ];
         example = [
           "ati_unfree" "amdgpu" "amdgpu-pro"
           "nv" "nvidia" "nvidiaLegacy390" "nvidiaLegacy340" "nvidiaLegacy304"
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/binfmt.nix b/nixos/modules/system/boot/binfmt.nix
index a677ab4cb71..9eeae0c3ef4 100644
--- a/nixos/modules/system/boot/binfmt.nix
+++ b/nixos/modules/system/boot/binfmt.nix
@@ -268,9 +268,10 @@ in {
       mkdir -p -m 0755 /run/binfmt
       ${lib.concatStringsSep "\n" (lib.mapAttrsToList activationSnippet config.boot.binfmt.registrations)}
     '';
-    systemd.additionalUpstreamSystemUnits = lib.mkIf (config.boot.binfmt.registrations != {})
-      [ "proc-sys-fs-binfmt_misc.automount"
-        "proc-sys-fs-binfmt_misc.mount"
-      ];
+    systemd.additionalUpstreamSystemUnits = lib.mkIf (config.boot.binfmt.registrations != {}) [
+      "proc-sys-fs-binfmt_misc.automount"
+      "proc-sys-fs-binfmt_misc.mount"
+      "systemd-binfmt.service"
+    ];
   };
 }
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 a316782dfc5..783685c9dfe 100644
--- a/nixos/modules/system/boot/kernel_config.nix
+++ b/nixos/modules/system/boot/kernel_config.nix
@@ -22,7 +22,7 @@ let
 
   mergeFalseByDefault = locs: defs:
     if defs == [] then abort "This case should never happen."
-    else if any (x: x == false) defs then false
+    else if any (x: x == false) (getValues defs) then false
     else true;
 
   kernelItem = types.submodule {
@@ -54,7 +54,8 @@ 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.
         '';
       };
     };
@@ -121,7 +122,7 @@ in
       type = types.attrsOf kernelItem;
       example = literalExample '' with lib.kernel; {
         "9P_NET" = yes;
-        USB = optional yes;
+        USB = option yes;
         MMC_BLOCK_MINORS = freeform "32";
       }'';
       description = ''
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/generic-extlinux-compatible/default.nix b/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix
index af39c7bb684..bd508bbe8ea 100644
--- a/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix
+++ b/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix
@@ -4,11 +4,15 @@ with lib;
 
 let
   blCfg = config.boot.loader;
+  dtCfg = config.hardware.deviceTree;
   cfg = blCfg.generic-extlinux-compatible;
 
   timeoutStr = if blCfg.timeout == null then "-1" else toString blCfg.timeout;
 
+  # The builder used to write during system activation
   builder = import ./extlinux-conf-builder.nix { inherit pkgs; };
+  # The builder exposed in populateCmd, which runs on the build architecture
+  populateBuilder = import ./extlinux-conf-builder.nix { pkgs = pkgs.buildPackages; };
 in
 {
   options = {
@@ -34,11 +38,28 @@ in
           Maximum number of configurations in the boot menu.
         '';
       };
+
+      populateCmd = mkOption {
+        type = types.str;
+        readOnly = true;
+        description = ''
+          Contains the builder command used to populate an image,
+          honoring all options except the <literal>-c &lt;path-to-default-configuration&gt;</literal>
+          argument.
+          Useful to have for sdImage.populateRootCommands
+        '';
+      };
+
     };
   };
 
-  config = mkIf cfg.enable {
-    system.build.installBootLoader = "${builder} -g ${toString cfg.configurationLimit} -t ${timeoutStr} -c";
-    system.boot.loader.id = "generic-extlinux-compatible";
-  };
+  config = let
+    builderArgs = "-g ${toString cfg.configurationLimit} -t ${timeoutStr}" + lib.optionalString (dtCfg.name != null) " -n ${dtCfg.name}";
+  in
+    mkIf cfg.enable {
+      system.build.installBootLoader = "${builder} ${builderArgs} -c";
+      system.boot.loader.id = "generic-extlinux-compatible";
+
+      boot.loader.generic-extlinux-compatible.populateCmd = "${populateBuilder} ${builderArgs}";
+    };
 }
diff --git a/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh b/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh
index 0092ee92b62..854684b87fa 100644
--- a/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh
+++ b/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh
@@ -6,7 +6,7 @@ export PATH=/empty
 for i in @path@; do PATH=$PATH:$i/bin; done
 
 usage() {
-    echo "usage: $0 -t <timeout> -c <path-to-default-configuration> [-d <boot-dir>] [-g <num-generations>]" >&2
+    echo "usage: $0 -t <timeout> -c <path-to-default-configuration> [-d <boot-dir>] [-g <num-generations>] [-n <dtbName>]" >&2
     exit 1
 }
 
@@ -15,7 +15,7 @@ default=                # Default configuration
 target=/boot            # Target directory
 numGenerations=0        # Number of other generations to include in the menu
 
-while getopts "t:c:d:g:" opt; do
+while getopts "t:c:d:g:n:" opt; do
     case "$opt" in
         t) # U-Boot interprets '0' as infinite and negative as instant boot
             if [ "$OPTARG" -lt 0 ]; then
@@ -29,6 +29,7 @@ while getopts "t:c:d:g:" opt; do
         c) default="$OPTARG" ;;
         d) target="$OPTARG" ;;
         g) numGenerations="$OPTARG" ;;
+        n) dtbName="$OPTARG" ;;
         \?) usage ;;
     esac
 done
@@ -96,7 +97,17 @@ addEntry() {
     echo "  LINUX ../nixos/$(basename $kernel)"
     echo "  INITRD ../nixos/$(basename $initrd)"
     if [ -d "$dtbDir" ]; then
-        echo "  FDTDIR ../nixos/$(basename $dtbs)"
+        # if a dtbName was specified explicitly, use that, else use FDTDIR
+        if [ -n "$dtbName" ]; then
+            echo "  FDT ../nixos/$(basename $dtbs)/${dtbName}"
+        else
+            echo "  FDTDIR ../nixos/$(basename $dtbs)"
+        fi
+    else
+        if [ -n "$dtbName" ]; then
+            echo "Explicitly requested dtbName $dtbName, but there's no FDTDIR - bailing out." >&2
+            exit 1
+        fi
     fi
     echo "  APPEND systemConfig=$path init=$path/init $extraParams"
 }
diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix
index c775632a4aa..20e39628eab 100644
--- a/nixos/modules/system/boot/loader/grub/grub.nix
+++ b/nixos/modules/system/boot/loader/grub/grub.nix
@@ -55,12 +55,15 @@ let
       storePath = config.boot.loader.grub.storePath;
       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
-        extraEntriesBeforeNixOS extraPrepareConfig extraInitrd configurationLimit copyKernels
+        extraGrubInstallArgs
+        extraEntriesBeforeNixOS extraPrepareConfig configurationLimit copyKernels
         default fsIdentifier efiSupport efiInstallAsRemovable gfxmodeEfi gfxmodeBios gfxpayloadEfi gfxpayloadBios;
       path = with pkgs; makeBinPath (
         [ coreutils gnused gnugrep findutils diffutils btrfs-progs utillinux mdadm ]
@@ -83,7 +86,7 @@ let
              ] ++ (optional (cfg.fontSize!=null) "--size ${toString cfg.fontSize}")))
          );
 
-  defaultSplash = "${pkgs.nixos-artwork.wallpapers.simple-dark-gray-bootloader}/share/artwork/gnome/nix-wallpaper-simple-dark-gray_bootloader.png";
+  defaultSplash = pkgs.nixos-artwork.wallpapers.simple-dark-gray-bootloader.gnomeFilePath;
 in
 
 {
@@ -137,6 +140,67 @@ in
         '';
       };
 
+      users = mkOption {
+        default = {};
+        example = {
+          root = { hashedPasswordFile = "/path/to/file"; };
+        };
+        description = ''
+          User accounts for GRUB. When specified, the GRUB command line and
+          all boot options except the default are password-protected.
+          All passwords and hashes provided will be stored in /boot/grub/grub.cfg,
+          and will be visible to any local user who can read this file. Additionally,
+          any passwords and hashes provided directly in a Nix configuration
+          (as opposed to external files) will be copied into the Nix store, and
+          will be visible to all local users.
+        '';
+        type = with types; attrsOf (submodule {
+          options = {
+            hashedPasswordFile = mkOption {
+              example = "/path/to/file";
+              default = null;
+              type = with types; uniq (nullOr str);
+              description = ''
+                Specifies the path to a file containing the password hash
+                for the account, generated with grub-mkpasswd-pbkdf2.
+                This hash will be stored in /boot/grub/grub.cfg, and will
+                be visible to any local user who can read this file.
+              '';
+            };
+            hashedPassword = mkOption {
+              example = "grub.pbkdf2.sha512.10000.674DFFDEF76E13EA...2CC972B102CF4355";
+              default = null;
+              type = with types; uniq (nullOr str);
+              description = ''
+                Specifies the password hash for the account,
+                generated with grub-mkpasswd-pbkdf2.
+                This hash will be copied to the Nix store, and will be visible to all local users.
+              '';
+            };
+            passwordFile = mkOption {
+              example = "/path/to/file";
+              default = null;
+              type = with types; uniq (nullOr str);
+              description = ''
+                Specifies the path to a file containing the
+                clear text password for the account.
+                This password will be stored in /boot/grub/grub.cfg, and will
+                be visible to any local user who can read this file.
+              '';
+            };
+            password = mkOption {
+              example = "Pa$$w0rd!";
+              default = null;
+              type = with types; uniq (nullOr str);
+              description = ''
+                Specifies the clear text password for the account.
+                This password will be copied to the Nix store, and will be visible to all local users.
+              '';
+            };
+          };
+        });
+      };
+
       mirroredBoots = mkOption {
         default = [ ];
         example = [
@@ -236,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)";
@@ -292,19 +383,6 @@ in
         '';
       };
 
-      extraInitrd = mkOption {
-        type = types.nullOr types.path;
-        default = null;
-        example = "/boot/extra_initramfs.gz";
-        description = ''
-          The path to a second initramfs to be supplied to the kernel.
-          This ramfs will not be copied to the store, so that it can
-          contain secrets such as LUKS keyfiles or ssh keys.
-          This implies that rolling back to a previous configuration
-          won't rollback the state of this file.
-        '';
-      };
-
       useOSProber = mkOption {
         default = false;
         type = types.bool;
@@ -349,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";
@@ -608,6 +699,8 @@ in
         { path = "/boot"; inherit (cfg) devices; inherit (efi) efiSysMountPoint; }
       ];
 
+      boot.loader.supportsInitrdSecrets = true;
+
       system.build.installBootLoader =
         let
           install-grub-pl = pkgs.substituteAll {
@@ -618,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} $@
@@ -705,6 +798,24 @@ in
       (mkRenamedOptionModule [ "boot" "grubDevice" ] [ "boot" "loader" "grub" "device" ])
       (mkRenamedOptionModule [ "boot" "bootMount" ] [ "boot" "loader" "grub" "bootDevice" ])
       (mkRenamedOptionModule [ "boot" "grubSplashImage" ] [ "boot" "loader" "grub" "splashImage" ])
+      (mkRemovedOptionModule [ "boot" "loader" "grub" "extraInitrd" ] ''
+        This option has been replaced with the bootloader agnostic
+        boot.initrd.secrets option. To migrate to the initrd secrets system,
+        extract the extraInitrd archive into your main filesystem:
+
+          # zcat /boot/extra_initramfs.gz | cpio -idvmD /etc/secrets/initrd
+          /path/to/secret1
+          /path/to/secret2
+
+        then replace boot.loader.grub.extraInitrd with boot.initrd.secrets:
+
+          boot.initrd.secrets = {
+            "/path/to/secret1" = "/etc/secrets/initrd/path/to/secret1";
+            "/path/to/secret2" = "/etc/secrets/initrd/path/to/secret2";
+          };
+
+        See the boot.initrd.secrets option documentation for more information.
+      '')
     ];
 
 }
diff --git a/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixos/modules/system/boot/loader/grub/install-grub.pl
index 8df18cbd901..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;
@@ -49,7 +62,6 @@ my $extraPrepareConfig = get("extraPrepareConfig");
 my $extraPerEntryConfig = get("extraPerEntryConfig");
 my $extraEntries = get("extraEntries");
 my $extraEntriesBeforeNixOS = get("extraEntriesBeforeNixOS") eq "true";
-my $extraInitrd = get("extraInitrd");
 my $splashImage = get("splashImage");
 my $splashMode = get("splashMode");
 my $backgroundColor = get("backgroundColor");
@@ -72,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;
@@ -232,13 +245,6 @@ my $grubStore;
 if ($copyKernels == 0) {
     $grubStore = GrubFs($storePath);
 }
-my $extraInitrdPath;
-if ($extraInitrd) {
-    if (! -f $extraInitrd) {
-        print STDERR "Warning: the specified extraInitrd " . $extraInitrd . " doesn't exist. Your system won't boot without it.\n";
-    }
-    $extraInitrdPath = GrubFs($extraInitrd);
-}
 
 # Generate the header.
 my $conf .= "# Automatically generated.  DO NOT EDIT THIS FILE!\n";
@@ -249,12 +255,51 @@ 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";
     }
 }
 
 else {
+    my @users = ();
+    foreach my $user ($dom->findnodes('/expr/attrs/attr[@name = "users"]/attrs/attr')) {
+        my $name = $user->findvalue('@name') or die;
+        my $hashedPassword = $user->findvalue('./attrs/attr[@name = "hashedPassword"]/string/@value');
+        my $hashedPasswordFile = $user->findvalue('./attrs/attr[@name = "hashedPasswordFile"]/string/@value');
+        my $password = $user->findvalue('./attrs/attr[@name = "password"]/string/@value');
+        my $passwordFile = $user->findvalue('./attrs/attr[@name = "passwordFile"]/string/@value');
+
+        if ($hashedPasswordFile) {
+            open(my $f, '<', $hashedPasswordFile) or die "Can't read file '$hashedPasswordFile'!";
+            $hashedPassword = <$f>;
+            chomp $hashedPassword;
+        }
+        if ($passwordFile) {
+            open(my $f, '<', $passwordFile) or die "Can't read file '$passwordFile'!";
+            $password = <$f>;
+            chomp $password;
+        }
+
+        if ($hashedPassword) {
+            if (index($hashedPassword, "grub.pbkdf2.") == 0) {
+                $conf .= "\npassword_pbkdf2 $name $hashedPassword";
+            }
+            else {
+                die "Password hash for GRUB user '$name' is not valid!";
+            }
+        }
+        elsif ($password) {
+            $conf .= "\npassword $name $password";
+        }
+        else {
+            die "GRUB user '$name' has no password!";
+        }
+        push(@users, $name);
+    }
+    if (@users) {
+        $conf .= "\nset superusers=\"" . join(' ',@users) . "\"\n";
+    }
+
     if ($copyKernels == 0) {
         $conf .= "
             " . $grubStore->search;
@@ -288,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
@@ -316,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
@@ -328,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";
@@ -350,22 +417,43 @@ 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";
 }
 
 sub addEntry {
-    my ($name, $path) = @_;
+    my ($name, $path, $options) = @_;
     return unless -e "$path/kernel" && -e "$path/initrd";
 
     my $kernel = copyToKernelsDir(Cwd::abs_path("$path/kernel"));
     my $initrd = copyToKernelsDir(Cwd::abs_path("$path/initrd"));
-    if ($extraInitrd) {
-        $initrd .= " " .$extraInitrdPath->path;
+
+    # Include second initrd with secrets
+    if (-e -x "$path/append-initrd-secrets") {
+      my $initrdName = basename($initrd);
+      my $initrdSecretsPath = "$bootPath/kernels/$initrdName-secrets";
+
+      mkpath(dirname($initrdSecretsPath), 0, 0755);
+      my $oldUmask = umask;
+      # Make sure initrd is not world readable (won't work if /boot is FAT)
+      umask 0137;
+      my $initrdSecretsPathTemp = File::Temp::mktemp("$initrdSecretsPath.XXXXXXXX");
+      system("$path/append-initrd-secrets", $initrdSecretsPathTemp) == 0 or die "failed to create initrd secrets: $!\n";
+      # Check whether any secrets were actually added
+      if (-e $initrdSecretsPathTemp && ! -z _) {
+        rename $initrdSecretsPathTemp, $initrdSecretsPath or die "failed to move initrd secrets into place: $!\n";
+        $copied{$initrdSecretsPath} = 1;
+        $initrd .= " " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/kernels/$initrdName-secrets";
+      } else {
+        unlink $initrdSecretsPathTemp;
+        rmdir dirname($initrdSecretsPathTemp);
+      }
+      umask $oldUmask;
     }
+
     my $xen = -e "$path/xen.gz" ? copyToKernelsDir(Cwd::abs_path("$path/xen.gz")) : undef;
 
     # FIXME: $confName
@@ -383,14 +471,11 @@ sub addEntry {
         $conf .= "  " . ($xen ? "module" : "kernel") . " $kernel $kernelParams\n";
         $conf .= "  " . ($xen ? "module" : "initrd") . " $initrd\n\n";
     } else {
-        $conf .= "menuentry \"$name\" {\n";
+        $conf .= "menuentry \"$name\" " . ($options||"") . " {\n";
         $conf .= $grubBoot->search . "\n";
         if ($copyKernels == 0) {
             $conf .= $grubStore->search . "\n";
         }
-        if ($extraInitrd) {
-            $conf .= $extraInitrdPath->search . "\n";
-        }
         $conf .= "  $extraPerEntryConfig\n" if $extraPerEntryConfig;
         $conf .= "  multiboot $xen $xenParams\n" if $xen;
         $conf .= "  " . ($xen ? "module" : "linux") . " $kernel $kernelParams\n";
@@ -403,7 +488,7 @@ sub addEntry {
 # Add default entries.
 $conf .= "$extraEntries\n" if $extraEntriesBeforeNixOS;
 
-addEntry("NixOS - Default", $defaultConfig);
+addEntry("NixOS - Default", $defaultConfig, "--unrestricted");
 
 $conf .= "$extraEntries\n" unless $extraEntriesBeforeNixOS;
 
@@ -526,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.
@@ -547,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>;
@@ -562,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;
@@ -588,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";
     }
 }
 
@@ -614,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";
     }
@@ -625,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/raspberrypi/raspberrypi-builder.sh b/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.sh
index c8b5bf2e61a..0541ca1ba62 100644
--- a/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.sh
+++ b/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.sh
@@ -1,4 +1,7 @@
-#! @bash@/bin/sh -e
+#! @bash@/bin/sh
+
+# This can end up being called disregarding the shebang.
+set -e
 
 shopt -s nullglob
 
diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
index f48a085ce57..97e824fe629 100644
--- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
+++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
@@ -47,9 +47,9 @@ def write_loader_conf(profile, generation):
         if "@timeout@" != "":
             f.write("timeout @timeout@\n")
         if profile:
-            f.write("default nixos-%s-generation-%d\n" % (profile, generation))
+            f.write("default nixos-%s-generation-%d.conf\n" % (profile, generation))
         else:
-            f.write("default nixos-generation-%d\n" % (generation))
+            f.write("default nixos-generation-%d.conf\n" % (generation))
         if not @editor@:
             f.write("editor 0\n");
         f.write("console-mode @consoleMode@\n");
@@ -197,6 +197,22 @@ def main():
             subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "install"])
         else:
             subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "--no-variables", "install"])
+    else:
+        # Update bootloader to latest if needed
+        systemd_version = subprocess.check_output(["@systemd@/bin/bootctl", "--version"], universal_newlines=True).split()[1]
+        sdboot_status = subprocess.check_output(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "status"], universal_newlines=True)
+
+        # See status_binaries() in systemd bootctl.c for code which generates this
+        m = re.search("^\W+File:.*/EFI/(BOOT|systemd)/.*\.efi \(systemd-boot (\d+)\)$",
+                      sdboot_status, re.IGNORECASE | re.MULTILINE)
+        if m is None:
+            print("could not find any previously installed systemd-boot")
+        else:
+            sdboot_version = m.group(2)
+            if systemd_version > sdboot_version:
+                print("updating systemd-boot from %s to %s" % (sdboot_version, systemd_version))
+                subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "update"])
+
 
     mkdir_p("@efiSysMountPoint@/efi/nixos")
     mkdir_p("@efiSysMountPoint@/loader/entries")
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..166f89c7066 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).
@@ -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 9b34b12e73a..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: {
@@ -1178,14 +1534,22 @@ in
       users.users.systemd-network.group = "systemd-network";
 
       systemd.additionalUpstreamSystemUnits = [
-        "systemd-networkd.service" "systemd-networkd-wait-online.service"
+        "systemd-networkd-wait-online.service"
+        "systemd-networkd.service"
+        "systemd-networkd.socket"
       ];
 
       systemd.network.units = mapAttrs' (n: v: nameValuePair "${n}.netdev" (netdevToUnit n v)) cfg.netdevs
         // mapAttrs' (n: v: nameValuePair "${n}.network" (networkToUnit n v)) cfg.networks;
 
+      # systemd-networkd is socket-activated by kernel netlink route change
+      # messages. It is important to have systemd buffer those on behalf of
+      # networkd.
+      systemd.sockets.systemd-networkd.wantedBy = [ "sockets.target" ];
+
       systemd.services.systemd-networkd = {
         wantedBy = [ "multi-user.target" ];
+        aliases = [ "dbus-org.freedesktop.network1.service" ];
         restartTriggers = map (x: x.source) (attrValues unitFiles);
         # prevent race condition with interface renaming (#39069)
         requires = [ "systemd-udev-settle.service" ];
diff --git a/nixos/modules/system/boot/plymouth.nix b/nixos/modules/system/boot/plymouth.nix
index 23fce22366d..55e5b07ed61 100644
--- a/nixos/modules/system/boot/plymouth.nix
+++ b/nixos/modules/system/boot/plymouth.nix
@@ -102,6 +102,8 @@ in
     systemd.services.plymouth-poweroff.wantedBy = [ "poweroff.target" ];
     systemd.services.plymouth-reboot.wantedBy = [ "reboot.target" ];
     systemd.services.plymouth-read-write.wantedBy = [ "sysinit.target" ];
+    systemd.services.systemd-ask-password-plymouth.wantedBy = ["multi-user.target"];
+    systemd.paths.systemd-ask-password-plymouth.wantedBy = ["multi-user.target"];
 
     boot.initrd.extraUtilsCommands = ''
       copy_bin_and_libs ${pkgs.plymouth}/bin/plymouthd
@@ -146,6 +148,7 @@ in
     # We use `mkAfter` to ensure that LUKS password prompt would be shown earlier than the splash screen.
     boot.initrd.preLVMCommands = mkAfter ''
       mkdir -p /etc/plymouth
+      mkdir -p /run/plymouth
       ln -s ${configFile} /etc/plymouth/plymouthd.conf
       ln -s $extraUtils/share/plymouth/plymouthd.defaults /etc/plymouth/plymouthd.defaults
       ln -s $extraUtils/share/plymouth/logo.png /etc/plymouth/logo.png
diff --git a/nixos/modules/system/boot/resolved.nix b/nixos/modules/system/boot/resolved.nix
index b7aaef575ac..b024f9cf5ee 100644
--- a/nixos/modules/system/boot/resolved.nix
+++ b/nixos/modules/system/boot/resolved.nix
@@ -148,6 +148,7 @@ in
 
     systemd.services.systemd-resolved = {
       wantedBy = [ "multi-user.target" ];
+      aliases = [ "dbus-org.freedesktop.resolve1.service" ];
       restartTriggers = [ config.environment.etc."systemd/resolved.conf".source ];
     };
 
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 dfd158e2d75..eee510d2c95 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,8 +111,8 @@ 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
@@ -235,7 +235,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 +374,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
@@ -517,8 +518,7 @@ in
     };
 
     boot.initrd.secrets = mkOption
-      { internal = true;
-        default = {};
+      { default = {};
         type = types.attrsOf (types.nullOr types.path);
         description =
           ''
@@ -560,10 +560,12 @@ in
           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>")
+            )}.
           '';
         };
       });
@@ -585,7 +587,7 @@ in
       { assertion = !config.boot.loader.supportsInitrdSecrets ->
           all (source:
             builtins.isPath source ||
-            (builtins.isString source && hasPrefix source builtins.storeDir))
+            (builtins.isString source && hasPrefix builtins.storeDir source))
           (attrValues config.boot.initrd.secrets);
         message = ''
           boot.loader.initrd.secrets values must be unquoted paths when
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 bee21f1a8f3..ac6fed440a2 100644
--- a/nixos/modules/system/boot/systemd-unit-options.nix
+++ b/nixos/modules/system/boot/systemd-unit-options.nix
@@ -233,6 +233,7 @@ 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>
@@ -378,6 +379,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 36a25c4e6c3..b215392f250 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.
@@ -164,7 +160,6 @@ let
       "systemd-timedated.service"
       "systemd-localed.service"
       "systemd-hostnamed.service"
-      "systemd-binfmt.service"
       "systemd-exit.service"
       "systemd-update-done.service"
     ] ++ optionals config.services.journald.enableHttpGateway [
@@ -355,6 +350,7 @@ let
           [Socket]
           ${attrsToSection def.socketConfig}
           ${concatStringsSep "\n" (map (s: "ListenStream=${s}") def.listenStreams)}
+          ${concatStringsSep "\n" (map (s: "ListenDatagram=${s}") def.listenDatagrams)}
         '';
     };
 
@@ -750,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 = {};
@@ -819,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".
+      '';
+    };
   };
 
 
@@ -827,21 +885,18 @@ in
   config = {
 
     warnings = concatLists (mapAttrsToList (name: service:
-      optional (service.serviceConfig.Type or "" == "oneshot" && service.serviceConfig.Restart or "no" != "no")
-        "Service ‘${name}.service’ with ‘Type=oneshot’ must have ‘Restart=no’") cfg.services);
+      let
+        type = service.serviceConfig.Type or "";
+        restart = service.serviceConfig.Restart or "no";
+      in optional
+      (type == "oneshot" && (restart == "always" || restart == "on-success"))
+      "Service '${name}.service' with 'Type=oneshot' cannot have 'Restart=always' or 'Restart=on-success'")
+      cfg.services);
 
     system.build.units = cfg.units;
 
-    # Systemd provides various NSS modules to look up dynamic users, locally
-    # configured IP adresses and local container hostnames.
-    # On NixOS, these can only be passed to the NSS system via nscd (and its
-    # LD_LIBRARY_PATH), which is why it's usually a very good idea to have nscd
-    # enabled (also see the config.nscd.enable description).
-    # While there is already an assertion in place complaining loudly about
-    # having nssModules configured and nscd disabled, for some reason we still
-    # check for nscd being enabled before adding to nssModules.
-    system.nssModules = optional config.services.nscd.enable systemd.out;
-    system.nssDatabases = mkIf config.services.nscd.enable {
+    system.nssModules = [ systemd.out ];
+    system.nssDatabases = {
       hosts = (mkMerge [
         [ "mymachines" ]
         (mkOrder 1600 [ "myhostname" ] # 1600 to ensure it's always the last
@@ -851,6 +906,10 @@ in
         [ "mymachines" ]
         (mkAfter [ "systemd" ])
       ]);
+      group = (mkMerge [
+        [ "mymachines" ]
+        (mkAfter [ "systemd" ])
+      ]);
     };
 
     environment.systemPackages = [ systemd ];
@@ -889,6 +948,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 +1008,18 @@ 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
+        '';
+      };
 
       "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
@@ -1060,7 +1156,6 @@ in
     systemd.targets.local-fs.unitConfig.X-StopOnReconfiguration = true;
     systemd.targets.remote-fs.unitConfig.X-StopOnReconfiguration = true;
     systemd.targets.network-online.wantedBy = [ "multi-user.target" ];
-    systemd.services.systemd-binfmt.wants = [ "proc-sys-fs-binfmt_misc.mount" ];
     systemd.services.systemd-importd.environment = proxy_env;
 
     # Don't bother with certain units in containers.
diff --git a/nixos/modules/system/boot/timesyncd.nix b/nixos/modules/system/boot/timesyncd.nix
index 9e2f36ca01f..35fb5578b07 100644
--- a/nixos/modules/system/boot/timesyncd.nix
+++ b/nixos/modules/system/boot/timesyncd.nix
@@ -41,6 +41,7 @@ with lib;
 
     systemd.services.systemd-timesyncd = {
       wantedBy = [ "sysinit.target" ];
+      aliases = [ "dbus-org.freedesktop.timesync1.service" ];
       restartTriggers = [ config.environment.etc."systemd/timesyncd.conf".source ];
     };
 
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/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..9c3f2d8fccb 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/".
+        '';
       };
     };
   };
@@ -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/btrfs.nix b/nixos/modules/tasks/filesystems/btrfs.nix
index f64493e1a3c..c0ff28039b1 100644
--- a/nixos/modules/tasks/filesystems/btrfs.nix
+++ b/nixos/modules/tasks/filesystems/btrfs.nix
@@ -128,7 +128,10 @@ in
             Nice = 19;
             IOSchedulingClass = "idle";
             ExecStart = "${pkgs.btrfs-progs}/bin/btrfs scrub start -B ${fs}";
-            ExecStop  = "${pkgs.btrfs-progs}/bin/btrfs scrub cancel ${fs}";
+            # if the service is stopped before scrub end, cancel it
+            ExecStop  = pkgs.writeShellScript "btrfs-scrub-maybe-cancel" ''
+              (${pkgs.btrfs-progs}/bin/btrfs scrub status ${fs} | ${pkgs.gnugrep}/bin/grep finished) || ${pkgs.btrfs-progs}/bin/btrfs scrub cancel ${fs}
+            '';
           };
         };
       in listToAttrs (map scrubService cfgScrub.fileSystems);
diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix
index 43347161a84..9ca7c6fb343 100644
--- a/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixos/modules/tasks/filesystems/zfs.nix
@@ -191,15 +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://). Note that for data pools the encryption key can
-          be only loaded from a file and not via interactive prompt since the
-          import is processed in a background systemd service.
+          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://).
         '';
       };
 
@@ -421,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));
       };
 
@@ -433,7 +436,16 @@ in
 
       services.zfs.zed.settings = {
         ZED_EMAIL_PROG = mkDefault "${pkgs.mailutils}/bin/mail";
-        PATH = lib.makeBinPath [ packages.zfsUser pkgs.utillinux pkgs.gawk pkgs.gnused pkgs.gnugrep pkgs.coreutils pkgs.curl ];
+        PATH = lib.makeBinPath [
+          packages.zfsUser
+          pkgs.coreutils
+          pkgs.curl
+          pkgs.gawk
+          pkgs.gnugrep
+          pkgs.gnused
+          pkgs.nettools
+          pkgs.utillinux
+        ];
       };
 
       environment.etc = genAttrs
@@ -481,7 +493,11 @@ in
             description = "Import ZFS pool \"${pool}\"";
             # we need systemd-udev-settle until https://github.com/zfsonlinux/zfs/pull/4943 is merged
             requires = [ "systemd-udev-settle.service" ];
-            after = [ "systemd-udev-settle.service" "systemd-modules-load.service" ];
+            after = [
+              "systemd-udev-settle.service"
+              "systemd-modules-load.service"
+              "systemd-ask-password-console.service"
+            ];
             wantedBy = (getPoolMounts pool) ++ [ "local-fs.target" ];
             before = (getPoolMounts pool) ++ [ "local-fs.target" ];
             unitConfig = {
@@ -506,7 +522,27 @@ in
               done
               poolImported "${pool}" || poolImport "${pool}"  # Try one last time, e.g. to import a degraded pool.
               if poolImported "${pool}"; then
-                ${optionalString cfgZfs.requestEncryptionCredentials "\"${packages.zfsUser}/sbin/zfs\" load-key -r \"${pool}\""}
+                ${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
+                    (${optionalString (!isBool cfgZfs.requestEncryptionCredentials) ''
+                         if ! echo '${concatStringsSep "\n" cfgZfs.requestEncryptionCredentials}' | grep -qFx "$ds"; then
+                           continue
+                         fi
+                       ''}
+                    case "$kl" in
+                      none )
+                        ;;
+                      prompt )
+                        ${config.systemd.package}/bin/systemd-ask-password "Enter key for $ds:" | ${packages.zfsUser}/sbin/zfs load-key "$ds"
+                        ;;
+                      * )
+                        ${packages.zfsUser}/sbin/zfs load-key "$ds"
+                        ;;
+                    esac) < /dev/null # To protect while read ds kl in case anything reads stdin
+                  done
+                ''}
                 echo "Successfully imported ${pool}"
               else
                 exit 1
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 9720d90217c..9ba6ccfbe71 100644
--- a/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -54,7 +54,16 @@ let
     };
 
   normalConfig = {
-
+    systemd.network.links = let
+      createNetworkLink = i: nameValuePair "40-${i.name}" {
+        matchConfig.OriginalName = i.name;
+        linkConfig = optionalAttrs (i.macAddress != null) {
+          MACAddress = i.macAddress;
+        } // optionalAttrs (i.mtu != null) {
+          MTUBytes = toString i.mtu;
+        };
+      };
+    in listToAttrs (map createNetworkLink interfaces);
     systemd.services =
       let
 
@@ -164,7 +173,6 @@ let
           { description = "Address configuration of ${i.name}";
             wantedBy = [
               "network-setup.service"
-              "network-link-${i.name}.service"
               "network.target"
             ];
             # order before network-setup because the routes that are configured
@@ -183,6 +191,8 @@ let
                 state="/run/nixos/network/addresses/${i.name}"
                 mkdir -p $(dirname "$state")
 
+                ip link set "${i.name}" up
+
                 ${flip concatMapStrings ips (ip:
                   let
                     cidr = "${ip.address}/${toString ip.prefixLength}";
@@ -222,57 +232,29 @@ let
               '';
             preStop = ''
               state="/run/nixos/network/routes/${i.name}"
-              while read cidr; do
-                echo -n "deleting route $cidr... "
-                ip route del "$cidr" dev "${i.name}" >/dev/null 2>&1 && echo "done" || echo "failed"
-              done < "$state"
-              rm -f "$state"
+              if [ -e "$state" ]; then
+                while read cidr; do
+                  echo -n "deleting route $cidr... "
+                  ip route del "$cidr" dev "${i.name}" >/dev/null 2>&1 && echo "done" || echo "failed"
+                done < "$state"
+                rm -f "$state"
+              fi
 
               state="/run/nixos/network/addresses/${i.name}"
-              while read cidr; do
-                echo -n "deleting address $cidr... "
-                ip addr del "$cidr" dev "${i.name}" >/dev/null 2>&1 && echo "done" || echo "failed"
-              done < "$state"
-              rm -f "$state"
+              if [ -e "$state" ]; then
+                while read cidr; do
+                  echo -n "deleting address $cidr... "
+                  ip addr del "$cidr" dev "${i.name}" >/dev/null 2>&1 && echo "done" || echo "failed"
+                done < "$state"
+                rm -f "$state"
+              fi
             '';
           };
 
-        createNetworkLink = i:
-        let
-          deviceDependency = if (config.boot.isContainer || i.name == "lo")
-            then []
-            else [ (subsystemDevice i.name) ];
-        in
-        nameValuePair "network-link-${i.name}"
-        { description = "Link configuration of ${i.name}";
-          wantedBy = [ "network-interfaces.target" ];
-          before = [ "network-interfaces.target" ];
-          bindsTo = deviceDependency;
-          after = [ "network-pre.target" ] ++ deviceDependency;
-          path = [ pkgs.iproute ];
-          serviceConfig = {
-            Type = "oneshot";
-            RemainAfterExit = true;
-          };
-          script =
-            ''
-              echo "Configuring link..."
-            '' + optionalString (i.macAddress != null) ''
-              echo "setting MAC address to ${i.macAddress}..."
-              ip link set "${i.name}" address "${i.macAddress}"
-            '' + optionalString (i.mtu != null) ''
-              echo "setting MTU to ${toString i.mtu}..."
-              ip link set "${i.name}" mtu "${toString i.mtu}"
-            '' + ''
-              echo -n "bringing up interface... "
-              ip link set "${i.name}" up && echo "done" || (echo "failed"; exit 1)
-            '';
-        };
-
         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" ];
@@ -298,7 +280,7 @@ let
             bindsTo = deps ++ optional v.rstp "mstpd.service";
             partOf = [ "network-setup.service" ] ++ optional v.rstp "mstpd.service";
             after = [ "network-pre.target" ] ++ deps ++ optional v.rstp "mstpd.service"
-              ++ concatMap (i: [ "network-addresses-${i}.service" "network-link-${i}.service" ]) v.interfaces;
+              ++ map (i: "network-addresses-${i}.service") v.interfaces;
             before = [ "network-setup.service" ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
@@ -327,7 +309,7 @@ let
                   # if `libvirtd.service` is not running, do not use `virsh` which would try activate it via 'libvirtd.socket' and thus start it out-of-order.
                   # `libvirtd.service` will set up bridge interfaces when it will start normally.
                   #
-                  if ${pkgs.systemd}/bin/systemctl --quiet is-active 'libvirtd.service'; then
+                  if /run/current-system/systemd/bin/systemctl --quiet is-active 'libvirtd.service'; then
                     for uri in qemu:///system lxc:///; do
                       for dom in $(${pkgs.libvirt}/bin/virsh -c $uri list --name); do
                         ${pkgs.libvirt}/bin/virsh -c $uri dumpxml "$dom" | \
@@ -375,7 +357,7 @@ let
         createVswitchDevice = n: v: nameValuePair "${n}-netdev"
           (let
             deps = concatLists (map deviceDependency (attrNames (filterAttrs (_: config: config.type != "internal") v.interfaces)));
-            internalConfigs = concatMap (i: ["network-link-${i}.service" "network-addresses-${i}.service"]) (attrNames (filterAttrs (_: config: config.type == "internal") v.interfaces));
+            internalConfigs = map (i: "network-addresses-${i}.service") (attrNames (filterAttrs (_: config: config.type == "internal") v.interfaces));
             ofRules = pkgs.writeText "vswitch-${n}-openFlowRules" v.openFlowRules;
           in
           { description = "Open vSwitch Interface ${n}";
@@ -427,7 +409,7 @@ let
             bindsTo = deps;
             partOf = [ "network-setup.service" ];
             after = [ "network-pre.target" ] ++ deps
-              ++ concatMap (i: [ "network-addresses-${i}.service" "network-link-${i}.service" ]) v.interfaces;
+              ++ map (i: "network-addresses-${i}.service") v.interfaces;
             before = [ "network-setup.service" ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
@@ -540,7 +522,6 @@ let
           });
 
       in listToAttrs (
-           map createNetworkLink interfaces ++
            map configureAddrs interfaces ++
            map createTunDevice (filter (i: i.virtual) interfaces))
          // mapAttrs' createBridgeDevice cfg.bridges
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index 44677d417ea..af98123d477 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -283,7 +283,7 @@ let
         default = false;
         type = types.bool;
         description = ''
-          Turn on proxy_arp for this device (and proxy_ndp for ipv6).
+          Turn on proxy_arp for this device.
           This is mainly useful for creating pseudo-bridges between a real
           interface and a virtual network such as VPN or a virtual machine for
           interfaces that don't support real bridging (most wlan interfaces).
@@ -376,10 +376,20 @@ in
 
     networking.hostName = mkOption {
       default = "nixos";
-      type = types.str;
+      # Only allow hostnames without the domain name part (i.e. no FQDNs, see
+      # e.g. "man 5 hostname") and require valid DNS labels (recommended
+      # syntax). Note: We also allow underscores for compatibility/legacy
+      # reasons (as undocumented feature):
+      type = types.strMatching
+        "^$|^[[:alpha:]]([[:alnum:]_-]{0,61}[[:alnum:]])?$";
       description = ''
-        The name of the machine.  Leave it empty if you want to obtain
-        it from a DHCP server (if using DHCP).
+        The name of the machine. Leave it empty if you want to obtain it from a
+        DHCP server (if using DHCP). The hostname must be a valid DNS label (see
+        RFC 1035 section 2.3.1: "Preferred name syntax") and as such must not
+        contain the domain part. This means that the hostname must start with a
+        letter, end with a letter or digit, and have as interior characters only
+        letters, digits, and hyphen. The maximum length is 63 characters.
+        Additionally it is recommended to only use lower-case characters.
       '';
     };
 
@@ -398,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.
       '';
     };
 
@@ -1055,11 +1068,11 @@ in
       optionalString hasBonds "options bonding max_bonds=0";
 
     boot.kernel.sysctl = {
+      "net.ipv4.conf.all.forwarding" = mkDefault (any (i: i.proxyARP) interfaces);
       "net.ipv6.conf.all.disable_ipv6" = mkDefault (!cfg.enableIPv6);
       "net.ipv6.conf.default.disable_ipv6" = mkDefault (!cfg.enableIPv6);
-      "net.ipv6.conf.all.forwarding" = mkDefault (any (i: i.proxyARP) interfaces);
     } // listToAttrs (flip concatMap (filter (i: i.proxyARP) interfaces)
-        (i: forEach [ "4" "6" ] (v: nameValuePair "net.ipv${v}.conf.${replaceChars ["."] ["/"] i.name}.proxy_arp" true)))
+        (i: [(nameValuePair "net.ipv4.conf.${replaceChars ["."] ["/"] i.name}.proxy_arp" true)]))
       // listToAttrs (forEach interfaces
         (i: let
           opt = i.tempAddress;
@@ -1116,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..30ffb12cbad 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 =
       ''
diff --git a/nixos/modules/virtualisation/azure-agent.nix b/nixos/modules/virtualisation/azure-agent.nix
index 036b1036f92..e85482af839 100644
--- a/nixos/modules/virtualisation/azure-agent.nix
+++ b/nixos/modules/virtualisation/azure-agent.nix
@@ -48,7 +48,7 @@ let
 
   provisionedHook = pkgs.writeScript "provisioned-hook" ''
     #!${pkgs.runtimeShell}
-    ${config.systemd.package}/bin/systemctl start provisioned.target
+    /run/current-system/systemd/bin/systemctl start provisioned.target
   '';
 
 in
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 7d184575640..3a6767d84a9 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,25 @@ in
         '';
       };
 
+    containersConf = mkOption {
+      default = {};
+      description = "containers.conf configuration";
+      type = types.submodule {
+        options = {
+
+          extraConfig = mkOption {
+            type = types.lines;
+            default = "";
+            description = ''
+              Extra configuration that should be put in the containers.conf
+              configuration file
+            '';
+
+          };
+        };
+      };
+    };
+
     registries = {
       search = mkOption {
         type = types.listOf types.str;
@@ -80,43 +108,20 @@ 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 {
 
+    environment.etc."containers/containers.conf".text = ''
+      [network]
+      cni_plugin_dirs = ["${pkgs.cni-plugins}/bin/"]
+
+    '' + 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 2af4214302d..9c818eee73b 100644
--- a/nixos/modules/virtualisation/cri-o.nix
+++ b/nixos/modules/virtualisation/cri-o.nix
@@ -5,6 +5,8 @@ with lib;
 let
   cfg = config.virtualisation.cri-o;
 
+  crioPackage = (pkgs.cri-o.override { inherit (cfg) extraPackages; });
+
   # Copy configuration files to avoid having the entire sources in the system closure
   copyFile = filePath: pkgs.runCommandNoCC (builtins.unsafeDiscardStringContext (builtins.baseNameOf filePath)) {} ''
     cp ${filePath} $out
@@ -23,55 +25,92 @@ in
     enable = mkEnableOption "Container Runtime Interface for OCI (CRI-O)";
 
     storageDriver = mkOption {
-      type = types.enum ["btrfs" "overlay" "vfs"];
+      type = types.enum [ "btrfs" "overlay" "vfs" ];
       default = "overlay";
       description = "Storage driver to be used";
     };
 
     logLevel = mkOption {
-      type = types.enum ["trace" "debug" "info" "warn" "error" "fatal"];
+      type = types.enum [ "trace" "debug" "info" "warn" "error" "fatal" ];
       default = "info";
       description = "Log level to be used";
     };
 
     pauseImage = mkOption {
-      type = types.str;
-      default = "k8s.gcr.io/pause:3.1";
-      description = "Pause image for pod sandboxes to be used";
+      type = types.nullOr types.str;
+      default = null;
+      description = "Override the default pause image for pod sandboxes";
+      example = [ "k8s.gcr.io/pause:3.2" ];
     };
 
     pauseCommand = mkOption {
-      type = types.str;
-      default = "/pause";
-      description = "Pause command to be executed";
+      type = types.nullOr types.str;
+      default = null;
+      description = "Override the default pause command";
+      example = [ "/pause" ];
+    };
+
+    runtime = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      description = "Override the default runtime";
+      example = [ "crun" ];
+    };
+
+    extraPackages = mkOption {
+      type = with types; listOf package;
+      default = [ ];
+      example = lib.literalExample ''
+        [
+          pkgs.gvisor
+        ]
+      '';
+      description = ''
+        Extra packages to be installed in the CRI-O wrapper.
+      '';
+    };
+
+    package = lib.mkOption {
+      type = types.package;
+      default = crioPackage;
+      internal = true;
+      description = ''
+        The final CRI-O package (including extra packages).
+      '';
     };
   };
 
   config = mkIf cfg.enable {
-    environment.systemPackages = with pkgs;
-      [ cri-o cri-tools conmon iptables runc utillinux ];
+    environment.systemPackages = [ cfg.package pkgs.cri-tools ];
 
-    environment.etc."crictl.yaml".source = copyFile "${pkgs.cri-o.src}/crictl.yaml";
+    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}"
 
       [crio.image]
-      pause_image = "${cfg.pauseImage}"
-      pause_command = "${cfg.pauseCommand}"
+      ${optionalString (cfg.pauseImage != null) ''pause_image = "${cfg.pauseImage}"''}
+      ${optionalString (cfg.pauseCommand != null) ''pause_command = "${cfg.pauseCommand}"''}
 
       [crio.network]
       plugin_dirs = ["${pkgs.cni-plugins}/bin/"]
-      network_dir = "/etc/cni/net.d/"
 
       [crio.runtime]
-      conmon = "${pkgs.conmon}/bin/conmon"
+      cgroup_manager = "systemd"
       log_level = "${cfg.logLevel}"
-      manage_network_ns_lifecycle = true
+      manage_ns_lifecycle = true
+      pinns_path = "${cfg.package}/bin/pinns"
+
+      ${optionalString (cfg.runtime != null) ''
+      default_runtime = "${cfg.runtime}"
+      [crio.runtime.runtimes]
+      [crio.runtime.runtimes.${cfg.runtime}]
+      ''}
     '';
 
-    environment.etc."cni/net.d/10-crio-bridge.conf".source = copyFile "${pkgs.cri-o.src}/contrib/cni/10-crio-bridge.conf";
+    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;
@@ -81,10 +120,10 @@ in
       documentation = [ "https://github.com/cri-o/cri-o" ];
       wantedBy = [ "multi-user.target" ];
       after = [ "network.target" ];
-      path = [ pkgs.utillinux pkgs.runc pkgs.iptables ];
+      path = [ cfg.package ];
       serviceConfig = {
         Type = "notify";
-        ExecStart = "${pkgs.cri-o}/bin/crio";
+        ExecStart = "${cfg.package}/bin/crio";
         ExecReload = "/bin/kill -s HUP $MAINPID";
         TasksMax = "infinity";
         LimitNOFILE = "1048576";
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/hyperv-image.nix b/nixos/modules/virtualisation/hyperv-image.nix
index be2f12b7d01..fabc9113dfc 100644
--- a/nixos/modules/virtualisation/hyperv-image.nix
+++ b/nixos/modules/virtualisation/hyperv-image.nix
@@ -37,6 +37,7 @@ in {
       name = cfg.vmDerivationName;
       postVM = ''
         ${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -o subformat=dynamic -O vhdx $diskImage $out/${cfg.vmFileName}
+        rm $diskImage
       '';
       format = "raw";
       diskSize = cfg.baseImageSize;
diff --git a/nixos/modules/virtualisation/kvmgt.nix b/nixos/modules/virtualisation/kvmgt.nix
index 0902d2dc2cb..e08ad344628 100644
--- a/nixos/modules/virtualisation/kvmgt.nix
+++ b/nixos/modules/virtualisation/kvmgt.nix
@@ -9,8 +9,8 @@ let
 
   vgpuOptions = {
     uuid = mkOption {
-      type = types.str;
-      description = "UUID of VGPU device. You can generate one with <package>libossp_uuid</package>.";
+      type = with types; listOf str;
+      description = "UUID(s) of VGPU device. You can generate one with <package>libossp_uuid</package>.";
     };
   };
 
@@ -36,7 +36,7 @@ in {
           and find info about device via <command>cat /sys/bus/pci/devices/*/mdev_supported_types/i915-GVTg_V5_4/description</command>
         '';
         example = {
-          i915-GVTg_V5_8.uuid = "a297db4a-f4c2-11e6-90f6-d3b88d6c9525";
+          i915-GVTg_V5_8.uuid = [ "a297db4a-f4c2-11e6-90f6-d3b88d6c9525" ];
         };
       };
     };
@@ -51,31 +51,35 @@ in {
     boot.kernelModules = [ "kvmgt" ];
     boot.kernelParams = [ "i915.enable_gvt=1" ];
 
-    systemd.paths = mapAttrs' (name: value:
-      nameValuePair "kvmgt-${name}" {
-        description = "KVMGT VGPU ${name} path";
-        wantedBy = [ "multi-user.target" ];
-        pathConfig = {
-          PathExists = "/sys/bus/pci/devices/${cfg.device}/mdev_supported_types/${name}/create";
-        };
-      }
-    ) cfg.vgpus;
-
     services.udev.extraRules = ''
       SUBSYSTEM=="vfio", OWNER="root", GROUP="kvm"
     '';
 
-    systemd.services = mapAttrs' (name: value:
-      nameValuePair "kvmgt-${name}" {
-        description = "KVMGT VGPU ${name}";
-        serviceConfig = {
-          Type = "oneshot";
-          RemainAfterExit = true;
-          ExecStart = "${pkgs.runtimeShell} -c 'echo ${value.uuid} > /sys/bus/pci/devices/${cfg.device}/mdev_supported_types/${name}/create'";
-          ExecStop = "${pkgs.runtimeShell} -c 'echo 1 > /sys/bus/pci/devices/${cfg.device}/${value.uuid}/remove'";
-        };
-      }
-    ) cfg.vgpus;
+    systemd = let
+      vgpus = listToAttrs (flatten (mapAttrsToList
+        (mdev: opt: map (id: nameValuePair "kvmgt-${id}" { inherit mdev; uuid = id; }) opt.uuid)
+        cfg.vgpus));
+    in {
+      paths = mapAttrs (_: opt:
+        {
+          description = "KVMGT VGPU ${opt.uuid} path";
+          wantedBy = [ "multi-user.target" ];
+          pathConfig = {
+            PathExists = "/sys/bus/pci/devices/${cfg.device}/mdev_supported_types/${opt.mdev}/create";
+          };
+        }) vgpus;
+
+      services = mapAttrs (_: opt:
+        {
+          description = "KVMGT VGPU ${opt.uuid}";
+          serviceConfig = {
+            Type = "oneshot";
+            RemainAfterExit = true;
+            ExecStart = "${pkgs.runtimeShell} -c 'echo ${opt.uuid} > /sys/bus/pci/devices/${cfg.device}/mdev_supported_types/${opt.mdev}/create'";
+            ExecStop = "${pkgs.runtimeShell} -c 'echo 1 > /sys/bus/pci/devices/${cfg.device}/${opt.uuid}/remove'";
+          };
+        }) vgpus;
+    };
   };
 
   meta.maintainers = with maintainers; [ gnidorah ];
diff --git a/nixos/modules/virtualisation/libvirtd.nix b/nixos/modules/virtualisation/libvirtd.nix
index 4f22099443f..1d6a9457dde 100644
--- a/nixos/modules/virtualisation/libvirtd.nix
+++ b/nixos/modules/virtualisation/libvirtd.nix
@@ -7,10 +7,8 @@ let
   cfg = config.virtualisation.libvirtd;
   vswitch = config.virtualisation.vswitch;
   configFile = pkgs.writeText "libvirtd.conf" ''
-    unix_sock_group = "libvirtd"
-    unix_sock_rw_perms = "0770"
-    auth_unix_ro = "none"
-    auth_unix_rw = "none"
+    auth_unix_ro = "polkit"
+    auth_unix_rw = "polkit"
     ${cfg.extraConfig}
   '';
   qemuConfigFile = pkgs.writeText "qemu.conf" ''
@@ -116,7 +114,7 @@ in {
         Specifies the action to be done to / on the guests when the host boots.
         The "start" option starts all guests that were running prior to shutdown
         regardless of their autostart settings. The "ignore" option will not
-        start the formally running guest on boot. However, any guest marked as
+        start the formerly running guest on boot. However, any guest marked as
         autostart will still be automatically started by libvirtd.
       '';
     };
@@ -267,7 +265,16 @@ 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) {
+        if (action.id == "org.libvirt.unix.manage" &&
+          subject.isInGroup("libvirtd")) {
+          return polkit.Result.YES;
+        }
+      });
+    '';
   };
 }
diff --git a/nixos/modules/virtualisation/lxd.nix b/nixos/modules/virtualisation/lxd.nix
index 53b89a9f55b..3958fc2c1d7 100644
--- a/nixos/modules/virtualisation/lxd.nix
+++ b/nixos/modules/virtualisation/lxd.nix
@@ -15,7 +15,6 @@ in
   ###### interface
 
   options = {
-
     virtualisation.lxd = {
       enable = mkOption {
         type = types.bool;
@@ -25,12 +24,18 @@ in
           containers. Users in the "lxd" group can interact with
           the daemon (e.g. to start or stop containers) using the
           <command>lxc</command> command line tool, among others.
+
+          Most of the time, you'll also want to start lxcfs, so
+          that containers can "see" the limits:
+          <code>
+            virtualisation.lxc.lxcfs.enable = true;
+          </code>
         '';
       };
 
       package = mkOption {
         type = types.package;
-        default = pkgs.lxd;
+        default = pkgs.lxd.override { nftablesSupport = config.networking.nftables.enable; };
         defaultText = "pkgs.lxd";
         description = ''
           The LXD package to use.
@@ -65,6 +70,7 @@ in
           with nixos.
         '';
       };
+
       recommendedSysctlSettings = mkOption {
         type = types.bool;
         default = false;
@@ -83,7 +89,6 @@ in
   ###### implementation
 
   config = mkIf cfg.enable {
-
     environment.systemPackages = [ cfg.package ];
 
     security.apparmor = {
@@ -115,6 +120,12 @@ in
         LimitNOFILE = "1048576";
         LimitNPROC = "infinity";
         TasksMax = "infinity";
+
+        # By default, `lxd` loads configuration files from hard-coded
+        # `/usr/share/lxc/config` - since this is a no-go for us, we have to
+        # explicitly tell it where the actual configuration files are
+        Environment = mkIf (config.virtualisation.lxc.lxcfs.enable)
+          "LXD_LXC_TEMPLATE_CONFIG=${pkgs.lxcfs}/share/lxc/config";
       };
     };
 
diff --git a/nixos/modules/virtualisation/podman.nix b/nixos/modules/virtualisation/podman.nix
index 652850bf500..e0e2f04e24c 100644
--- a/nixos/modules/virtualisation/podman.nix
+++ b/nixos/modules/virtualisation/podman.nix
@@ -28,6 +28,10 @@ let
 
 in
 {
+  imports = [
+    (lib.mkRenamedOptionModule [ "virtualisation" "podman" "libpod" ] [ "virtualisation" "containers" "containersConf" ])
+  ];
+
   meta = {
     maintainers = lib.teams.podman.members;
   };
@@ -67,25 +71,6 @@ in
       '';
     };
 
-    libpod = mkOption {
-      default = {};
-      description = "Libpod configuration";
-      type = types.submodule {
-        options = {
-
-          extraConfig = mkOption {
-            type = types.lines;
-            default = "";
-            description = ''
-              Extra configuration that should be put in the libpod.conf
-              configuration file
-            '';
-
-          };
-        };
-      };
-    };
-
     package = lib.mkOption {
       type = types.package;
       default = podmanPackage;
@@ -103,11 +88,6 @@ in
     environment.systemPackages = [ cfg.package ]
       ++ lib.optional cfg.dockerCompat dockerCompat;
 
-    environment.etc."containers/libpod.conf".text = ''
-      cni_plugin_dir = ["${pkgs.cni-plugins}/bin/"]
-
-    '' + cfg.libpod.extraConfig;
-
     environment.etc."cni/net.d/87-podman-bridge.conflist".source = copyFile "${pkgs.podman-unwrapped.src}/cni/87-podman-bridge.conflist";
 
     # Enable common /etc/containers configuration
diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index ac86330c098..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,11 +493,53 @@ 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;
+        type = types.nullOr types.package;
+        description =
+          ''
+            An alternate BIOS (such as <package>qboot</package>) with which to start the VM.
+            Should contain a file named <literal>bios.bin</literal>.
+            If <literal>null</literal>, QEMU's builtin SeaBIOS will be used.
+          '';
+      };
+
   };
 
   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 =
       ''
@@ -500,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 ];
 
@@ -519,7 +612,11 @@ 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"
       ])
       (mkIf (!cfg.graphics) [
         "-nographic"
@@ -527,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";
@@ -576,7 +670,7 @@ in
         "/tmp/xchg" =
           { device = "xchg";
             fsType = "9p";
-            options = [ "trans=virtio" "version=9p2000.L" "cache=loose" ];
+            options = [ "trans=virtio" "version=9p2000.L" ];
             neededForBoot = true;
           };
         "/tmp/shared" =
@@ -593,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
           };
       });
@@ -612,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..3f188fc68e5 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).
         '';
@@ -45,9 +45,9 @@ let
         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.
         '';
       };
diff --git a/nixos/modules/virtualisation/rkt.nix b/nixos/modules/virtualisation/rkt.nix
deleted file mode 100644
index fd662b52df5..00000000000
--- a/nixos/modules/virtualisation/rkt.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  cfg = config.virtualisation.rkt;
-in
-{
-  options.virtualisation.rkt = {
-    enable = mkEnableOption "rkt metadata service";
-
-    gc = {
-      automatic = mkOption {
-        default = true;
-        type = types.bool;
-        description = "Automatically run the garbage collector at a specific time.";
-      };
-
-      dates = mkOption {
-        default = "03:15";
-        type = types.str;
-        description = ''
-          Specification (in the format described by
-          <citerefentry><refentrytitle>systemd.time</refentrytitle>
-          <manvolnum>7</manvolnum></citerefentry>) of the time at
-          which the garbage collector will run.
-        '';
-      };
-
-      options = mkOption {
-        default = "--grace-period=24h";
-        type = types.str;
-        description = ''
-          Options given to <filename>rkt gc</filename> when the
-          garbage collector is run automatically.
-        '';
-      };
-    };
-  };
-
-  config = mkIf cfg.enable {
-    environment.systemPackages = [ pkgs.rkt ];
-
-    systemd.services.rkt = {
-      description = "rkt metadata service";
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" ];
-      serviceConfig = {
-        ExecStart = "${pkgs.rkt}/bin/rkt metadata-service";
-      };
-    };
-
-    systemd.services.rkt-gc = {
-      description = "rkt garbage collection";
-      startAt = optionalString cfg.gc.automatic cfg.gc.dates;
-      serviceConfig = {
-        Type = "oneshot";
-        ExecStart = "${pkgs.rkt}/bin/rkt gc ${cfg.gc.options}";
-      };
-    };
-
-    users.groups.rkt = {};
-  };
-}
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/modules/virtualisation/vmware-image.nix b/nixos/modules/virtualisation/vmware-image.nix
new file mode 100644
index 00000000000..9da9e145f7a
--- /dev/null
+++ b/nixos/modules/virtualisation/vmware-image.nix
@@ -0,0 +1,90 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+  boolToStr = value: if value then "on" else "off";
+  cfg = config.vmware;
+
+  subformats = [
+    "monolithicSparse"
+    "monolithicFlat"
+    "twoGbMaxExtentSparse"
+    "twoGbMaxExtentFlat"
+    "streamOptimized"
+  ];
+
+in {
+  options = {
+    vmware = {
+      baseImageSize = mkOption {
+        type = types.int;
+        default = 2048;
+        description = ''
+          The size of the VMWare base image in MiB.
+        '';
+      };
+      vmDerivationName = mkOption {
+        type = types.str;
+        default = "nixos-vmware-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
+        description = ''
+          The name of the derivation for the VMWare appliance.
+        '';
+      };
+      vmFileName = mkOption {
+        type = types.str;
+        default = "nixos-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.vmdk";
+        description = ''
+          The file name of the VMWare appliance.
+        '';
+      };
+      vmSubformat = mkOption {
+        type = types.enum subformats;
+        default = "monolithicSparse";
+        description = "Specifies which VMDK subformat to use.";
+      };
+      vmCompat6 = mkOption {
+        type = types.bool;
+        default = false;
+        example = true;
+        description = "Create a VMDK version 6 image (instead of version 4).";
+      };
+    };
+  };
+
+  config = {
+    system.build.vmwareImage = import ../../lib/make-disk-image.nix {
+      name = cfg.vmDerivationName;
+      postVM = ''
+        ${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -o compat6=${boolToStr cfg.vmCompat6},subformat=${cfg.vmSubformat} -O vmdk $diskImage $out/${cfg.vmFileName}
+        rm $diskImage
+      '';
+      format = "raw";
+      diskSize = cfg.baseImageSize;
+      partitionTableType = "efi";
+      inherit config lib pkgs;
+    };
+
+    fileSystems."/" = {
+      device = "/dev/disk/by-label/nixos";
+      autoResize = true;
+      fsType = "ext4";
+    };
+
+    fileSystems."/boot" = {
+      device = "/dev/disk/by-label/ESP";
+      fsType = "vfat";
+    };
+
+    boot.growPartition = true;
+
+    boot.loader.grub = {
+      version = 2;
+      device = "nodev";
+      efiSupport = true;
+      efiInstallAsRemovable = true;
+    };
+
+    virtualisation.vmware.guest.enable = true;
+  };
+}
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 fc41dc1eb5f..a8188473721 100644
--- a/nixos/tests/acme.nix
+++ b/nixos/tests/acme.nix
@@ -48,10 +48,9 @@ in import ./make-test-python.nix ({ lib, ... }: {
       security.acme.certs."standalone.test" = {
         webroot = "/var/lib/acme/acme-challenges";
       };
-      systemd.targets."acme-finished-standalone.test" = {};
-      systemd.services."acme-standalone.test" = {
-        wants = [ "acme-finished-standalone.test.target" ];
-        before = [ "acme-finished-standalone.test.target" ];
+      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" = {
@@ -68,11 +67,9 @@ in import ./make-test-python.nix ({ lib, ... }: {
 
       # 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" = {};
-      systemd.services."acme-a.example.test" = {
-        wants = [ "acme-finished-a.example.test.target" ];
-        before = [ "acme-finished-a.example.test.target" ];
-        after = [ "nginx.service" ];
+      systemd.targets."acme-finished-a.example.test" = {
+        after = [ "acme-a.example.test.service" ];
+        wantedBy = [ "acme-a.example.test.service" ];
       };
 
       services.nginx.enable = true;
@@ -89,11 +86,9 @@ in import ./make-test-python.nix ({ lib, ... }: {
       security.acme.server = "https://acme.test/dir";
 
       specialisation.second-cert.configuration = {pkgs, ...}: {
-        systemd.targets."acme-finished-b.example.test" = {};
-        systemd.services."acme-b.example.test" = {
-          wants = [ "acme-finished-b.example.test.target" ];
-          before = [ "acme-finished-b.example.test.target" ];
-          after = [ "nginx.service" ];
+        systemd.targets."acme-finished-b.example.test" = {
+          after = [ "acme-b.example.test.service" ];
+          wantedBy = [ "acme-b.example.test.service" ];
         };
         services.nginx.virtualHosts."b.example.test" = {
           enableACME = true;
@@ -104,6 +99,7 @@ in import ./make-test-python.nix ({ lib, ... }: {
           '';
         };
       };
+
       specialisation.dns-01.configuration = {pkgs, config, nodes, lib, ...}: {
         security.acme.certs."example.test" = {
           domain = "*.example.test";
@@ -115,10 +111,12 @@ in import ./make-test-python.nix ({ lib, ... }: {
           user = config.services.nginx.user;
           group = config.services.nginx.group;
         };
-        systemd.targets."acme-finished-example.test" = {};
+        systemd.targets."acme-finished-example.test" = {
+          after = [ "acme-example.test.service" ];
+          wantedBy = [ "acme-example.test.service" ];
+        };
         systemd.services."acme-example.test" = {
-          wants = [ "acme-finished-example.test.target" ];
-          before = [ "acme-finished-example.test.target" "nginx.service" ];
+          before = [ "nginx.service" ];
           wantedBy = [ "nginx.service" ];
         };
         services.nginx.virtualHosts."c.example.test" = {
@@ -132,6 +130,26 @@ in import ./make-test-python.nix ({ lib, ... }: {
           '';
         };
       };
+
+      # 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, ...}: {
+        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" = {
+          forceSSL = true;
+          enableACME = true;
+          locations."/".proxyPass = "http://localhost:8000";
+        };
+      };
     };
 
     client = {nodes, lib, ...}: {
@@ -207,5 +225,15 @@ in import ./make-test-python.nix ({ lib, ... }: {
           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/")
     '';
 })
diff --git a/nixos/tests/agda.nix b/nixos/tests/agda.nix
new file mode 100644
index 00000000000..e158999e57d
--- /dev/null
+++ b/nixos/tests/agda.nix
@@ -0,0 +1,41 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+let
+  hello-world = pkgs.writeText "hello-world" ''
+    open import IO
+
+    main = run(putStrLn "Hello World!")
+  '';
+in
+{
+  name = "agda";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ alexarice turion ];
+  };
+
+  machine = { pkgs, ... }: {
+    environment.systemPackages = [
+      (pkgs.agda.withPackages {
+        pkgs = p: [ p.standard-library ];
+      })
+    ];
+    virtualisation.memorySize = 2000; # Agda uses a lot of memory
+  };
+
+  testScript = ''
+    # Minimal script that typechecks
+    machine.succeed("touch TestEmpty.agda")
+    machine.succeed("agda TestEmpty.agda")
+
+    # Minimal script that actually uses the standard library
+    machine.succeed('echo "import IO" > TestIO.agda')
+    machine.succeed("agda -l standard-library -i . TestIO.agda")
+
+    # # Hello world
+    machine.succeed(
+        "cp ${hello-world} HelloWorld.agda"
+    )
+    machine.succeed("agda -l standard-library -i . -c HelloWorld.agda")
+  '';
+}
+)
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 5a0c9d1afae..7b8e1b2b56d 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -23,14 +23,19 @@ in
 {
   _3proxy = handleTest ./3proxy.nix {};
   acme = handleTest ./acme.nix {};
+  agda = handleTest ./agda.nix {};
   atd = handleTest ./atd.nix {};
   avahi = handleTest ./avahi.nix {};
   babeld = handleTest ./babeld.nix {};
+  bazarr = handleTest ./bazarr.nix {};
   bcachefs = handleTestOn ["x86_64-linux"] ./bcachefs.nix {}; # linux-4.18.2018.10.12 is unsupported on aarch64
   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
   boot-stage1 = handleTest ./boot-stage1.nix {};
@@ -61,38 +66,43 @@ 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 {};
+  dnscrypt-wrapper = handleTestOn ["x86_64-linux"] ./dnscrypt-wrapper {};
   doas = handleTest ./doas.nix {};
   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 {};
   elk = handleTestOn ["x86_64-linux"] ./elk.nix {};
+  engelsystem = handleTest ./engelsystem.nix {};
   enlightenment = handleTest ./enlightenment.nix {};
   env = handleTest ./env.nix {};
+  ergo = handleTest ./ergo.nix {};
   etcd = handleTestOn ["x86_64-linux"] ./etcd.nix {};
   etcd-cluster = handleTestOn ["x86_64-linux"] ./etcd-cluster.nix {};
   fancontrol = handleTest ./fancontrol.nix {};
   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 {};
@@ -114,10 +124,12 @@ in
   installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {});
   gocd-agent = handleTest ./gocd-agent.nix {};
   gocd-server = handleTest ./gocd-server.nix {};
+  go-neb = handleTest ./go-neb.nix {};
   google-oslogin = handleTest ./google-oslogin {};
   grafana = handleTest ./grafana.nix {};
   graphite = handleTest ./graphite.nix {};
   graylog = handleTest ./graylog.nix {};
+  grub = handleTest ./grub.nix {};
   gvisor = handleTest ./gvisor.nix {};
   hadoop.hdfs = handleTestOn [ "x86_64-linux" ] ./hadoop/hdfs.nix {};
   hadoop.yarn = handleTestOn [ "x86_64-linux" ] ./hadoop/yarn.nix {};
@@ -131,6 +143,7 @@ in
   hitch = handleTest ./hitch {};
   hocker-fetchdocker = handleTest ./hocker-fetchdocker {};
   home-assistant = handleTest ./home-assistant.nix {};
+  hostname = handleTest ./hostname.nix {};
   hound = handleTest ./hound.nix {};
   hydra = handleTest ./hydra {};
   hydra-db-migration = handleTest ./hydra/db-migration.nix {};
@@ -141,6 +154,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 {};
@@ -150,6 +164,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 {};
@@ -172,6 +187,8 @@ in
   limesurvey = handleTest ./limesurvey.nix {};
   login = handleTest ./login.nix {};
   loki = handleTest ./loki.nix {};
+  lxd = handleTest ./lxd.nix {};
+  lxd-nftables = handleTest ./lxd-nftables.nix {};
   #logstash = handleTest ./logstash.nix {};
   lorri = handleTest ./lorri/default.nix {};
   magnetico = handleTest ./magnetico.nix {};
@@ -179,12 +196,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 {};
@@ -208,6 +223,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 {};
@@ -225,7 +241,9 @@ in
   nginx = handleTest ./nginx.nix {};
   nginx-etag = handleTest ./nginx-etag.nix {};
   nginx-pubhtml = handleTest ./nginx-pubhtml.nix {};
+  nginx-sandbox = handleTestOn ["x86_64-linux"] ./nginx-sandbox.nix {};
   nginx-sso = handleTest ./nginx-sso.nix {};
+  nginx-variants = handleTest ./nginx-variants.nix {};
   nix-ssh-serve = handleTest ./nix-ssh-serve.nix {};
   nixos-generate-config = handleTest ./nixos-generate-config.nix {};
   novacomd = handleTestOn ["x86_64-linux"] ./novacomd.nix {};
@@ -250,9 +268,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 {};
@@ -260,11 +281,14 @@ in
   pppd = handleTest ./pppd.nix {};
   predictable-interface-names = handleTest ./predictable-interface-names.nix {};
   printing = handleTest ./printing.nix {};
+  privacyidea = handleTest ./privacyidea.nix {};
   prometheus = handleTest ./prometheus.nix {};
   prometheus-exporters = handleTest ./prometheus-exporters.nix {};
   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 {};
   rabbitmq = handleTest ./rabbitmq.nix {};
@@ -283,25 +307,31 @@ in
   sanoid = handleTest ./sanoid.nix {};
   sddm = handleTest ./sddm.nix {};
   service-runner = handleTest ./service-runner.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 {};
   spacecookie = handleTest ./spacecookie.nix {};
   spike = handleTest ./spike.nix {};
   sonarr = handleTest ./sonarr.nix {};
+  sslh = handleTest ./sslh.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-boot = handleTestOn ["x86_64-linux"] ./systemd-boot.nix {};
+  systemd-binfmt = handleTestOn ["x86_64-linux"] ./systemd-binfmt.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 {};
@@ -331,10 +361,8 @@ in
   vault = handleTest ./vault.nix {};
   victoriametrics = handleTest ./victoriametrics.nix {};
   virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
-  wg-quick = handleTest ./wireguard/wg-quick.nix {};
+  wasabibackend = handleTest ./wasabibackend.nix {};
   wireguard = handleTest ./wireguard {};
-  wireguard-generated = handleTest ./wireguard/generated.nix {};
-  wireguard-namespaces = handleTest ./wireguard/namespaces.nix {};
   wordpress = handleTest ./wordpress.nix {};
   xandikos = handleTest ./xandikos.nix {};
   xautolock = handleTest ./xautolock.nix {};
@@ -345,6 +373,8 @@ in
   yabar = handleTest ./yabar.nix {};
   yggdrasil = handleTest ./yggdrasil.nix {};
   zfs = handleTest ./zfs.nix {};
-  zsh-history = handleTest ./zsh-history.nix {};
+  zigbee2mqtt = handleTest ./zigbee2mqtt.nix {};
+  zoneminder = handleTest ./zoneminder.nix {};
   zookeeper = handleTest ./zookeeper.nix {};
+  zsh-history = handleTest ./zsh-history.nix {};
 }
diff --git a/nixos/tests/bazarr.nix b/nixos/tests/bazarr.nix
new file mode 100644
index 00000000000..b8cd8ef38b4
--- /dev/null
+++ b/nixos/tests/bazarr.nix
@@ -0,0 +1,26 @@
+import ./make-test-python.nix ({ lib, ... }:
+
+with lib;
+
+let
+  port = 42069;
+in
+{
+  name = "bazarr";
+  meta.maintainers = with maintainers; [ xwvvvvwx ];
+
+  nodes.machine =
+    { pkgs, ... }:
+    {
+      services.bazarr = {
+        enable = true;
+        listenPort = port;
+      };
+    };
+
+  testScript = ''
+    machine.wait_for_unit("bazarr.service")
+    machine.wait_for_open_port("${toString port}")
+    machine.succeed("curl --fail http://localhost:${toString port}/")
+  '';
+})
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
new file mode 100644
index 00000000000..742a02999e7
--- /dev/null
+++ b/nixos/tests/blockbook-frontend.nix
@@ -0,0 +1,28 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "blockbook-frontend";
+  meta = with pkgs.stdenv.lib; {
+    maintainers = with maintainers; [ _1000101 ];
+  };
+
+  machine = { ... }: {
+    services.blockbook-frontend."test" = {
+      enable = true;
+    };
+    services.bitcoind.mainnet = {
+      enable = true;
+      rpc = {
+        port = 8030;
+        users.rpc.passwordHMAC = "acc2374e5f9ba9e62a5204d3686616cf$53abdba5e67a9005be6a27ca03a93ce09e58854bc2b871523a0d239a72968033";
+      };
+    };
+  };
+
+  testScript = ''
+    start_all()
+    machine.wait_for_unit("blockbook-frontend-test.service")
+
+    machine.wait_for_open_port(9030)
+
+    machine.succeed("curl -sSfL http://localhost:9030 | grep 'Blockbook'")
+  '';
+})
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/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/consul.nix b/nixos/tests/consul.nix
index 6600dae4770..ee85f1d0b91 100644
--- a/nixos/tests/consul.nix
+++ b/nixos/tests/consul.nix
@@ -55,30 +55,33 @@ let
 
   server = index: { pkgs, ... }:
     let
-      ip = builtins.elemAt allConsensusServerHosts index;
+      numConsensusServers = builtins.length allConsensusServerHosts;
+      thisConsensusServerHost = builtins.elemAt allConsensusServerHosts index;
+      ip = thisConsensusServerHost; # since we already use IPs to identify servers
     in
       {
         networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
-          { address = builtins.elemAt allConsensusServerHosts index; prefixLength = 16; }
+          { address = ip; prefixLength = 16; }
         ];
         networking.firewall = firewallSettings;
 
         services.consul =
-          let
-            thisConsensusServerHost = builtins.elemAt allConsensusServerHosts index;
-          in
           assert builtins.elem thisConsensusServerHost allConsensusServerHosts;
           {
             enable = true;
             inherit webUi;
             extraConfig = defaultExtraConfig // {
               server = true;
-              bootstrap_expect = builtins.length allConsensusServerHosts;
+              bootstrap_expect = numConsensusServers;
+              # Tell Consul that we never intend to drop below this many servers.
+              # Ensures to not permanently lose consensus after temporary loss.
+              # See https://github.com/hashicorp/consul/issues/8118#issuecomment-645330040
+              autopilot.min_quorum = numConsensusServers;
               retry_join =
                 # If there's only 1 node in the network, we allow self-join;
                 # otherwise, the node must not try to join itself, and join only the other servers.
                 # See https://github.com/hashicorp/consul/issues/2868
-                if builtins.length allConsensusServerHosts == 1
+                if numConsensusServers == 1
                   then allConsensusServerHosts
                   else builtins.filter (h: h != thisConsensusServerHost) allConsensusServerHosts;
               bind_addr = ip;
@@ -104,40 +107,123 @@ in {
     for m in machines:
         m.wait_for_unit("consul.service")
 
-    for m in machines:
-        m.wait_until_succeeds("[ $(consul members | grep -o alive | wc -l) == 5 ]")
+
+    def wait_for_healthy_servers():
+        # See https://github.com/hashicorp/consul/issues/8118#issuecomment-645330040
+        # for why the `Voter` column of `list-peers` has that info.
+        # TODO: The `grep true` relies on the fact that currently in
+        #       the output like
+        #           # consul operator raft list-peers
+        #           Node     ID   Address           State     Voter  RaftProtocol
+        #           server3  ...  192.168.1.3:8300  leader    true   3
+        #           server2  ...  192.168.1.2:8300  follower  true   3
+        #           server1  ...  192.168.1.1:8300  follower  false  3
+        #       `Voter`is the only boolean column.
+        #       Change this to the more reliable way to be defined by
+        #       https://github.com/hashicorp/consul/issues/8118
+        #       once that ticket is closed.
+        for m in machines:
+            m.wait_until_succeeds(
+                "[ $(consul operator raft list-peers | grep true | wc -l) == 3 ]"
+            )
+
+
+    def wait_for_all_machines_alive():
+        """
+        Note that Serf-"alive" does not mean "Raft"-healthy;
+        see `wait_for_healthy_servers()` for that instead.
+        """
+        for m in machines:
+            m.wait_until_succeeds("[ $(consul members | grep -o alive | wc -l) == 5 ]")
+
+
+    wait_for_healthy_servers()
+    # Also wait for clients to be alive.
+    wait_for_all_machines_alive()
 
     client1.succeed("consul kv put testkey 42")
     client2.succeed("[ $(consul kv get testkey) == 42 ]")
 
-    # Test that the cluster can tolearate failures of any single server:
-    for server in servers:
-        server.crash()
 
-        # For each client, wait until they have connection again
-        # using `kv get -recurse` before issuing commands.
-        client1.wait_until_succeeds("consul kv get -recurse")
-        client2.wait_until_succeeds("consul kv get -recurse")
+    def rolling_reboot_test(proper_rolling_procedure=True):
+        """
+        Tests that the cluster can tolearate failures of any single server,
+        following the recommended rolling upgrade procedure from
+        https://www.consul.io/docs/upgrading#standard-upgrades.
 
-        # Do some consul actions while one server is down.
-        client1.succeed("consul kv put testkey 43")
-        client2.succeed("[ $(consul kv get testkey) == 43 ]")
-        client2.succeed("consul kv delete testkey")
+        Optionally, `proper_rolling_procedure=False` can be given
+        to wait only for each server to be back `Healthy`, not `Stable`
+        in the Raft consensus, see Consul setting `ServerStabilizationTime` and
+        https://github.com/hashicorp/consul/issues/8118#issuecomment-645330040.
+        """
+
+        for server in servers:
+            server.crash()
+
+            # For each client, wait until they have connection again
+            # using `kv get -recurse` before issuing commands.
+            client1.wait_until_succeeds("consul kv get -recurse")
+            client2.wait_until_succeeds("consul kv get -recurse")
 
-        # Restart crashed machine.
-        server.start()
+            # Do some consul actions while one server is down.
+            client1.succeed("consul kv put testkey 43")
+            client2.succeed("[ $(consul kv get testkey) == 43 ]")
+            client2.succeed("consul kv delete testkey")
+
+            # Restart crashed machine.
+            server.start()
+
+            if proper_rolling_procedure:
+                # Wait for recovery.
+                wait_for_healthy_servers()
+            else:
+                # NOT proper rolling upgrade procedure, see above.
+                wait_for_all_machines_alive()
+
+            # Wait for client connections.
+            client1.wait_until_succeeds("consul kv get -recurse")
+            client2.wait_until_succeeds("consul kv get -recurse")
+
+            # Do some consul actions with server back up.
+            client1.succeed("consul kv put testkey 44")
+            client2.succeed("[ $(consul kv get testkey) == 44 ]")
+            client2.succeed("consul kv delete testkey")
+
+
+    def all_servers_crash_simultaneously_test():
+        """
+        Tests that the cluster will eventually come back after all
+        servers crash simultaneously.
+        """
+
+        for server in servers:
+            server.crash()
+
+        for server in servers:
+            server.start()
 
         # Wait for recovery.
-        for m in machines:
-            m.wait_until_succeeds("[ $(consul members | grep -o alive | wc -l) == 5 ]")
+        wait_for_healthy_servers()
 
         # Wait for client connections.
         client1.wait_until_succeeds("consul kv get -recurse")
         client2.wait_until_succeeds("consul kv get -recurse")
 
-        # Do some consul actions with server back up.
+        # Do some consul actions with servers back up.
         client1.succeed("consul kv put testkey 44")
         client2.succeed("[ $(consul kv get testkey) == 44 ]")
         client2.succeed("consul kv delete testkey")
+
+
+    # Run the tests.
+
+    print("rolling_reboot_test()")
+    rolling_reboot_test()
+
+    print("all_servers_crash_simultaneously_test()")
+    all_servers_crash_simultaneously_test()
+
+    print("rolling_reboot_test(proper_rolling_procedure=False)")
+    rolling_reboot_test(proper_rolling_procedure=False)
   '';
 })
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/convos.nix b/nixos/tests/convos.nix
new file mode 100644
index 00000000000..b4ff1188fd8
--- /dev/null
+++ b/nixos/tests/convos.nix
@@ -0,0 +1,30 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }:
+
+with lib;
+let
+  port = 3333;
+in
+{
+  name = "convos";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ sgo ];
+  };
+
+  nodes = {
+    machine =
+      { pkgs, ... }:
+      {
+        services.convos = {
+          enable = true;
+          listenPort = port;
+        };
+      };
+  };
+
+  testScript = ''
+    machine.wait_for_unit("convos")
+    machine.wait_for_open_port("${toString port}")
+    machine.succeed("journalctl -u convos | grep -q 'Listening at.*${toString port}'")
+    machine.succeed("curl http://localhost:${toString port}/")
+  '';
+})
diff --git a/nixos/tests/corerad.nix b/nixos/tests/corerad.nix
index 741fa448f68..37a1e90477a 100644
--- a/nixos/tests/corerad.nix
+++ b/nixos/tests/corerad.nix
@@ -1,9 +1,9 @@
 import ./make-test-python.nix (
   {
     nodes = {
-      router = {config, pkgs, ...}: { 
+      router = {config, pkgs, ...}: {
         config = {
-          # This machines simulates a router with IPv6 forwarding and a static IPv6 address.
+          # This machine simulates a router with IPv6 forwarding and a static IPv6 address.
           boot.kernel.sysctl = {
             "net.ipv6.conf.all.forwarding" = true;
           };
@@ -14,13 +14,25 @@ import ./make-test-python.nix (
             enable = true;
             # Serve router advertisements to the client machine with prefix information matching
             # any IPv6 /64 prefixes configured on this interface.
-            configFile = pkgs.writeText "corerad.toml" ''
-              [[interfaces]]
-              name = "eth1"
-              advertise = true
-                [[interfaces.prefix]]
-                prefix = "::/64"
-            '';
+            #
+            # This configuration is identical to the example in the CoreRAD NixOS module.
+            settings = {
+              interfaces = [
+                {
+                  name = "eth0";
+                  monitor = true;
+                }
+                {
+                  name = "eth1";
+                  advertise = true;
+                  prefix = [{ prefix = "::/64"; }];
+                }
+              ];
+              debug = {
+                address = "localhost:9430";
+                prometheus = true;
+              };
+            };
           };
         };
       };
@@ -66,5 +78,12 @@ import ./make-test-python.nix (
           assert (
               "/64 scope global temporary" in addrs
           ), "SLAAC temporary address was not configured on client after router advertisement"
+
+      with subtest("Verify HTTP debug server is configured"):
+          out = router.succeed("curl localhost:9430/metrics")
+
+          assert (
+              "corerad_build_info" in out
+          ), "Build info metric was not found in Prometheus output"
     '';
   })
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/dnscrypt-wrapper/default.nix b/nixos/tests/dnscrypt-wrapper/default.nix
new file mode 100644
index 00000000000..1dc925f4de7
--- /dev/null
+++ b/nixos/tests/dnscrypt-wrapper/default.nix
@@ -0,0 +1,71 @@
+import ../make-test-python.nix ({ pkgs, ... }: {
+  name = "dnscrypt-wrapper";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ rnhmjoj ];
+  };
+
+  nodes = {
+    server = { lib, ... }:
+      { services.dnscrypt-wrapper = with builtins;
+          { enable = true;
+            address = "192.168.1.1";
+            keys.expiration = 5; # days
+            keys.checkInterval = 2;  # min
+            # The keypair was generated by the command:
+            # dnscrypt-wrapper --gen-provider-keypair \
+            #  --provider-name=2.dnscrypt-cert.server \
+            #  --ext-address=192.168.1.1:5353
+            providerKey.public = toFile "public.key" (readFile ./public.key);
+            providerKey.secret = toFile "secret.key" (readFile ./secret.key);
+          };
+        services.tinydns.enable = true;
+        services.tinydns.data = ''
+          ..:192.168.1.1:a
+          +it.works:1.2.3.4
+        '';
+        networking.firewall.allowedUDPPorts = [ 5353 ];
+        networking.firewall.allowedTCPPorts = [ 5353 ];
+        networking.interfaces.eth1.ipv4.addresses = lib.mkForce
+          [ { address = "192.168.1.1"; prefixLength = 24; } ];
+      };
+
+    client = { lib, ... }:
+      { services.dnscrypt-proxy2.enable = true;
+        services.dnscrypt-proxy2.settings = {
+          server_names = [ "server" ];
+          static.server.stamp = "sdns://AQAAAAAAAAAAEDE5Mi4xNjguMS4xOjUzNTMgFEHYOv0SCKSuqR5CDYa7-58cCBuXO2_5uTSVU9wNQF0WMi5kbnNjcnlwdC1jZXJ0LnNlcnZlcg";
+        };
+        networking.nameservers = [ "127.0.0.1" ];
+        networking.interfaces.eth1.ipv4.addresses = lib.mkForce
+          [ { address = "192.168.1.2"; prefixLength = 24; } ];
+      };
+
+  };
+
+  testScript = ''
+    start_all()
+
+    with subtest("The server can generate the ephemeral keypair"):
+        server.wait_for_unit("dnscrypt-wrapper")
+        server.wait_for_file("/var/lib/dnscrypt-wrapper/2.dnscrypt-cert.server.key")
+        server.wait_for_file("/var/lib/dnscrypt-wrapper/2.dnscrypt-cert.server.crt")
+
+    with subtest("The client can connect to the server"):
+        server.wait_for_unit("tinydns")
+        client.wait_for_unit("dnscrypt-proxy2")
+        assert "1.2.3.4" in client.succeed(
+            "host it.works"
+        ), "The IP address of 'it.works' does not match 1.2.3.4"
+
+    with subtest("The server rotates the ephemeral keys"):
+        # advance time by a little less than 5 days
+        server.succeed("date -s \"$(date --date '4 days 6 hours')\"")
+        client.succeed("date -s \"$(date --date '4 days 6 hours')\"")
+        server.wait_for_file("/var/lib/dnscrypt-wrapper/oldkeys")
+
+    with subtest("The client can still connect to the server"):
+        server.wait_for_unit("dnscrypt-wrapper")
+        client.succeed("host it.works")
+  '';
+})
+
diff --git a/nixos/tests/dnscrypt-wrapper/public.key b/nixos/tests/dnscrypt-wrapper/public.key
new file mode 100644
index 00000000000..80232b97f52
--- /dev/null
+++ b/nixos/tests/dnscrypt-wrapper/public.key
@@ -0,0 +1 @@
+AØ:ý¤®©B
†»ûŸ—;où¹4•SÜ
@]
\ No newline at end of file
diff --git a/nixos/tests/dnscrypt-wrapper/secret.key b/nixos/tests/dnscrypt-wrapper/secret.key
new file mode 100644
index 00000000000..01fbf8e08b7
--- /dev/null
+++ b/nixos/tests/dnscrypt-wrapper/secret.key
@@ -0,0 +1 @@
+G½>Æ©» ì>Ðà¥(Ò²‡¼J•«º=Ÿ„ÝÁlìAØ:ý¤®©B
†»ûŸ—;où¹4•SÜ
@]
\ No newline at end of file
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 51b472fcf9c..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,30 @@ 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}'",
+            "docker run --rm ${examples.nix.imageName} ${pkgs.bash}/bin/bash -c 'test nix == $(readlink ${pkgs.nix}/bin/nix-daemon)'",
+            "docker rmi ${examples.nix.imageName}",
+        )
+
+    with subtest("The nix binary symlinks are intact when the image is layered"):
+        docker.succeed(
+            "docker load --input='${examples.nixLayered}'",
+            "docker run --rm ${examples.nixLayered.imageName} ${pkgs.bash}/bin/bash -c 'test nix == $(readlink ${pkgs.nix}/bin/nix-daemon)'",
+            "docker rmi ${examples.nixLayered.imageName}",
+        )
+
     with subtest("The pullImage tool works"):
         docker.succeed(
             "docker load --input='${examples.nixFromDockerHub}'",
@@ -76,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}'",
@@ -124,6 +194,16 @@ import ./make-test-python.nix ({ pkgs, ... }: {
                 f"docker run --rm  ${examples.layersOrder.imageName} cat /tmp/layer{index}"
             )
 
+    with subtest("Ensure environment variables are correctly inherited"):
+        docker.succeed(
+            "docker load --input='${examples.environmentVariables}'"
+        )
+        out = docker.succeed("docker run --rm ${examples.environmentVariables.imageName} env")
+        env = out.splitlines()
+        assert "FROM_PARENT=true" in env, "envvars from the parent should be preserved"
+        assert "FROM_CHILD=true" in env, "envvars from the child should be preserved"
+        assert "LAST_LAYER=child" in env, "envvars from the child should take priority"
+
     with subtest("Ensure image with only 2 layers can be loaded"):
         docker.succeed(
             "docker load --input='${examples.two-layered-image}'"
@@ -154,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/docker.nix b/nixos/tests/docker.nix
index 8fda7c1395e..a4a61468f33 100644
--- a/nixos/tests/docker.nix
+++ b/nixos/tests/docker.nix
@@ -43,7 +43,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
     docker.fail("sudo -u noprivs docker ps")
     docker.succeed("docker stop sleeping")
 
-    # Must match version twice to ensure client and server versions are correct
-    docker.succeed('[ $(docker version | grep ${pkgs.docker.version} | wc -l) = "2" ]')
+    # Must match version 4 times to ensure client and server git commits and versions are correct
+    docker.succeed('[ $(docker version | grep ${pkgs.docker.version} | wc -l) = "4" ]')
   '';
 })
diff --git a/nixos/tests/dokuwiki.nix b/nixos/tests/dokuwiki.nix
index 05271919eff..58069366ca3 100644
--- a/nixos/tests/dokuwiki.nix
+++ b/nixos/tests/dokuwiki.nix
@@ -32,24 +32,17 @@ let
 
 in {
   name = "dokuwiki";
-  meta.maintainers = with pkgs.lib.maintainers; [ "1000101" ];
-
+  meta = with pkgs.stdenv.lib; {
+    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 ];
     };
@@ -69,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/engelsystem.nix b/nixos/tests/engelsystem.nix
new file mode 100644
index 00000000000..39c10718093
--- /dev/null
+++ b/nixos/tests/engelsystem.nix
@@ -0,0 +1,41 @@
+import ./make-test-python.nix (
+  { pkgs, lib, ... }:
+  {
+    name = "engelsystem";
+    meta = with pkgs.stdenv.lib.maintainers; {
+      maintainers = [ talyz ];
+    };
+
+    nodes.engelsystem =
+      { ... }:
+      {
+        services.engelsystem = {
+          enable = true;
+          domain = "engelsystem";
+          createDatabase = true;
+        };
+        networking.firewall.allowedTCPPorts = [ 80 443 ];
+        environment.systemPackages = with pkgs; [
+          xmlstarlet
+          libxml2
+        ];
+      };
+
+    testScript = ''
+      engelsystem.start()
+      engelsystem.wait_for_unit("phpfpm-engelsystem.service")
+      engelsystem.wait_until_succeeds("curl engelsystem/login -sS -f")
+      engelsystem.succeed(
+          "curl engelsystem/login -sS -f -c cookie | xmllint -html -xmlout - >login"
+      )
+      engelsystem.succeed(
+          "xml sel -T -t -m \"html/head/meta[@name='csrf-token']\" -v @content login >token"
+      )
+      engelsystem.succeed(
+          "curl engelsystem/login -sS -f -b cookie -F 'login=admin' -F 'password=asdfasdf' -F '_token=<token' -L | xmllint -html -xmlout - >news"
+      )
+      engelsystem.succeed(
+          "test 'News - Engelsystem' = \"$(xml sel -T -t -c html/head/title news)\""
+      )
+    '';
+  })
diff --git a/nixos/tests/enlightenment.nix b/nixos/tests/enlightenment.nix
index 5fa8d765dd1..0132b98b1cb 100644
--- a/nixos/tests/enlightenment.nix
+++ b/nixos/tests/enlightenment.nix
@@ -41,28 +41,24 @@ import ./make-test-python.nix ({ pkgs, ...} :
 
     with subtest("First time wizard"):
         machine.wait_for_text("Default")  # Language
-        machine.succeed("xdotool mousemove 512 185 click 1")  # Default Language
         machine.screenshot("wizard1")
         machine.succeed("xdotool mousemove 512 740 click 1")  # Next
-
-        machine.wait_for_text("English")  # Keyboard (default)
         machine.screenshot("wizard2")
-        machine.succeed("xdotool mousemove 512 740 click 1")  # Next
 
-        machine.wait_for_text("Standard")  # Profile (default)
+        machine.wait_for_text("English")  # Keyboard (default)
         machine.screenshot("wizard3")
         machine.succeed("xdotool mousemove 512 740 click 1")  # Next
 
-        machine.wait_for_text("Title")  # Sizing (default)
+        machine.wait_for_text("Standard")  # Profile (default)
         machine.screenshot("wizard4")
         machine.succeed("xdotool mousemove 512 740 click 1")  # Next
 
-        machine.wait_for_text("clicked")  # Windows Phocus
-        machine.succeed("xdotool mousemove 512 370 click 1")  # Click
+        machine.wait_for_text("Title")  # Sizing (default)
         machine.screenshot("wizard5")
         machine.succeed("xdotool mousemove 512 740 click 1")  # Next
 
-        machine.wait_for_text("bindings")  # Mouse Modifiers (default)
+        machine.wait_for_text("clicked")  # Windows Focus
+        machine.succeed("xdotool mousemove 512 370 click 1")  # Click
         machine.screenshot("wizard6")
         machine.succeed("xdotool mousemove 512 740 click 1")  # Next
 
@@ -74,7 +70,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
         machine.screenshot("wizard8")
         machine.succeed("xdotool mousemove 512 740 click 1")  # Next
 
-        machine.wait_for_text("Compositing")  # Compositing (default)
+        machine.wait_for_text("OpenGL")  # Compositing (default)
         machine.screenshot("wizard9")
         machine.succeed("xdotool mousemove 512 740 click 1")  # Next
 
diff --git a/nixos/tests/ergo.nix b/nixos/tests/ergo.nix
new file mode 100644
index 00000000000..8cdbbf62a95
--- /dev/null
+++ b/nixos/tests/ergo.nix
@@ -0,0 +1,18 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "ergo";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ mmahut ];
+  };
+
+  nodes = {
+    machine = { ... }: {
+      services.ergo.enable = true;
+      services.ergo.api.keyHash = "324dcf027dd4a30a932c441f365a25e86b173defa4b8e58948253471b81b72cf";
+    };
+  };
+
+  testScript = ''
+    start_all()
+    machine.wait_for_unit("ergo.service")
+  '';
+})
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/go-neb.nix b/nixos/tests/go-neb.nix
new file mode 100644
index 00000000000..d9e5db0b4a5
--- /dev/null
+++ b/nixos/tests/go-neb.nix
@@ -0,0 +1,44 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+{
+  name = "go-neb";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ hexa maralorn ];
+  };
+
+  nodes = {
+    server = {
+      services.go-neb = {
+        enable = true;
+        baseUrl = "http://localhost";
+        config = {
+          clients = [ {
+            UserId = "@test:localhost";
+            AccessToken = "changeme";
+            HomeServerUrl = "http://localhost";
+            Sync = false;
+            AutoJoinRooms = false;
+            DisplayName = "neverbeseen";
+          } ];
+          services = [ {
+            ID = "wikipedia_service";
+            Type = "wikipedia";
+            UserID = "@test:localhost";
+            Config = { };
+          } ];
+        };
+      };
+    };
+  };
+
+  testScript = ''
+    start_all()
+    server.wait_for_unit("go-neb.service")
+    server.wait_until_succeeds(
+        "curl -L http://localhost:4050/services/hooks/d2lraXBlZGlhX3NlcnZpY2U"
+    )
+    server.wait_until_succeeds(
+        "journalctl -eu go-neb -o cat | grep -q service_id=wikipedia_service"
+    )
+  '';
+
+})
diff --git a/nixos/tests/graphite.nix b/nixos/tests/graphite.nix
index 71776a94cbd..137be2d89c8 100644
--- a/nixos/tests/graphite.nix
+++ b/nixos/tests/graphite.nix
@@ -1,11 +1,6 @@
 import ./make-test-python.nix ({ pkgs, ... } :
 {
   name = "graphite";
-  meta = {
-    # Fails on dependency `python-2.7-Twisted`'s test suite
-    # complaining `ImportError: No module named zope.interface`.
-    broken = true;
-  };
   nodes = {
     one =
       { ... }: {
@@ -21,7 +16,7 @@ import ./make-test-python.nix ({ pkgs, ... } :
           api = {
             enable = true;
             port = 8082;
-            finders = [ pkgs.python3Packages.influxgraph ];
+            finders = [ ];
           };
           carbon.enableCache = true;
           seyren.enable = false;  # Implicitely requires openssl-1.0.2u which is marked insecure
@@ -41,10 +36,14 @@ import ./make-test-python.nix ({ pkgs, ... } :
     # even if they're still in preStart (which takes quite long for graphiteWeb).
     # Wait for ports to open so we're sure the services are up and listening.
     one.wait_for_open_port(8080)
+    one.wait_for_open_port(8082)
     one.wait_for_open_port(2003)
     one.succeed('echo "foo 1 `date +%s`" | nc -N localhost 2003')
     one.wait_until_succeeds(
         "curl 'http://localhost:8080/metrics/find/?query=foo&format=treejson' --silent | grep foo >&2"
     )
+    one.wait_until_succeeds(
+        "curl 'http://localhost:8082/metrics/find/?query=foo&format=treejson' --silent | grep foo >&2"
+    )
   '';
 })
diff --git a/nixos/tests/grub.nix b/nixos/tests/grub.nix
new file mode 100644
index 00000000000..84bfc90955b
--- /dev/null
+++ b/nixos/tests/grub.nix
@@ -0,0 +1,60 @@
+import ./make-test-python.nix ({ lib, ... }: {
+  name = "grub";
+
+  meta = with lib.maintainers; {
+    maintainers = [ rnhmjoj ];
+  };
+
+  machine = { ... }: {
+    virtualisation.useBootLoader = true;
+
+    boot.loader.timeout = null;
+    boot.loader.grub = {
+      enable = true;
+      users.alice.password = "supersecret";
+
+      # OCR is not accurate enough
+      extraConfig = "serial; terminal_output serial";
+    };
+  };
+
+  testScript = ''
+    def grub_login_as(user, password):
+        """
+        Enters user and password to log into GRUB
+        """
+        machine.wait_for_console_text("Enter username:")
+        machine.send_chars(user + "\n")
+        machine.wait_for_console_text("Enter password:")
+        machine.send_chars(password + "\n")
+
+
+    def grub_select_all_configurations():
+        """
+        Selects "All configurations" from the GRUB menu
+        to trigger a login request.
+        """
+        machine.send_monitor_command("sendkey down")
+        machine.send_monitor_command("sendkey ret")
+
+
+    machine.start()
+
+    # wait for grub screen
+    machine.wait_for_console_text("GNU GRUB")
+
+    grub_select_all_configurations()
+    with subtest("Invalid credentials are rejected"):
+        grub_login_as("wronguser", "wrongsecret")
+        machine.wait_for_console_text("error: access denied.")
+
+    grub_select_all_configurations()
+    with subtest("Valid credentials are accepted"):
+        grub_login_as("alice", "supersecret")
+        machine.send_chars("\n")  # press enter to boot
+        machine.wait_for_console_text("Linux version")
+
+    with subtest("Machine boots correctly"):
+        machine.wait_for_unit("multi-user.target")
+  '';
+})
diff --git a/nixos/tests/haproxy.nix b/nixos/tests/haproxy.nix
index 79f34b07faf..ffb77c052a2 100644
--- a/nixos/tests/haproxy.nix
+++ b/nixos/tests/haproxy.nix
@@ -43,5 +43,13 @@ import ./make-test-python.nix ({ pkgs, ...}: {
     assert "haproxy_process_pool_allocated_bytes" in machine.succeed(
         "curl -k http://localhost:80/metrics"
     )
+
+    with subtest("reload"):
+        machine.succeed("systemctl reload haproxy")
+        # wait some time to ensure the following request hits the reloaded haproxy
+        machine.sleep(5)
+        assert "We are all good!" in machine.succeed(
+            "curl -k http://localhost:80/index.txt"
+        )
   '';
 })
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 80dca43f1f3..a93a28d877a 100644
--- a/nixos/tests/home-assistant.nix
+++ b/nixos/tests/home-assistant.nix
@@ -2,69 +2,66 @@ import ./make-test-python.nix ({ pkgs, ... }:
 
 let
   configDir = "/var/lib/foobar";
-  apiPassword = "some_secret";
-  mqttPassword = "another_secret";
-  hassCli = "hass-cli --server http://hass:8123 --password '${apiPassword}'";
+  mqttUsername = "homeassistant";
+  mqttPassword = "secret";
 in {
   name = "home-assistant";
   meta = with pkgs.stdenv.lib; {
     maintainers = with maintainers; [ dotlambda ];
   };
 
-  nodes = {
-    hass =
-      { pkgs, ... }:
-      {
-        environment.systemPackages = with pkgs; [
-          mosquitto home-assistant-cli
-        ];
-        services.home-assistant = {
-          inherit configDir;
-          enable = true;
-          package = pkgs.home-assistant.override {
-            extraPackages = ps: with ps; [ hbmqtt ];
-          };
-          config = {
-            homeassistant = {
-              name = "Home";
-              time_zone = "UTC";
-              latitude = "0.0";
-              longitude = "0.0";
-              elevation = 0;
-              auth_providers = [
-                {
-                  type = "legacy_api_password";
-                  api_password = apiPassword;
-                }
-              ];
-            };
-            frontend = { };
-            mqtt = { # Use hbmqtt as broker
-              password = mqttPassword;
-            };
-            binary_sensor = [
-              {
-                platform = "mqtt";
-                state_topic = "home-assistant/test";
-                payload_on = "let_there_be_light";
-                payload_off = "off";
-              }
-            ];
-          };
-          lovelaceConfig = {
-            title = "My Awesome Home";
-            views = [ {
-              title = "Example";
-              cards = [ {
-                type = "markdown";
-                title = "Lovelace";
-                content = "Welcome to your **Lovelace UI**.";
-              } ];
-            } ];
-          };
-          lovelaceConfigWritable = true;
+  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;
+      config = {
+        homeassistant = {
+          name = "Home";
+          time_zone = "UTC";
+          latitude = "0.0";
+          longitude = "0.0";
+          elevation = 0;
+        };
+        frontend = {};
+        mqtt = {
+          broker = "127.0.0.1";
+          username = mqttUsername;
+          password = mqttPassword;
+        };
+        binary_sensor = [{
+          platform = "mqtt";
+          state_topic = "home-assistant/test";
+          payload_on = "let_there_be_light";
+          payload_off = "off";
+        }];
+        logger = {
+          default = "info";
+          logs."homeassistant.components.mqtt" = "debug";
+        };
+      };
+      lovelaceConfig = {
+        title = "My Awesome Home";
+        views = [{
+          title = "Example";
+          cards = [{
+            type = "markdown";
+            title = "Lovelace";
+            content = "Welcome to your **Lovelace UI**.";
+          }];
+        }];
+      };
+      lovelaceConfigWritable = true;
+    };
   };
 
   testScript = ''
@@ -76,29 +73,14 @@ in {
         hass.succeed("test -f ${configDir}/ui-lovelace.yaml")
     with subtest("Check that Home Assistant's web interface and API can be reached"):
         hass.wait_for_open_port(8123)
-        hass.succeed("curl --fail http://localhost:8123/states")
-        assert "API running" in hass.succeed(
-            "curl --fail -H 'x-ha-access: ${apiPassword}' http://localhost:8123/api/"
-        )
+        hass.succeed("curl --fail http://localhost:8123/lovelace")
     with subtest("Toggle a binary sensor using MQTT"):
-        assert '"state": "off"' in hass.succeed(
-            "curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}'"
-        )
+        # wait for broker to become available
         hass.wait_until_succeeds(
-            "mosquitto_pub -V mqttv311 -t home-assistant/test -u homeassistant -P '${mqttPassword}' -m let_there_be_light"
-        )
-        assert '"state": "on"' in hass.succeed(
-            "curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}'"
-        )
-    with subtest("Toggle a binary sensor using hass-cli"):
-        assert '"state": "on"' in hass.succeed(
-            "${hassCli} --output json state get binary_sensor.mqtt_binary_sensor"
+            "mosquitto_sub -V mqttv311 -t home-assistant/test -u ${mqttUsername} -P '${mqttPassword}' -W 1 -t '*'"
         )
         hass.succeed(
-            "${hassCli} state edit binary_sensor.mqtt_binary_sensor --json='{\"state\": \"off\"}'"
-        )
-        assert '"state": "off"' in hass.succeed(
-            "curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}'"
+            "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")
@@ -107,5 +89,9 @@ in {
 
     with subtest("Check that no errors were logged"):
         assert "ERROR" not in output_log
+
+    # example line: 2020-06-20 10:01:32 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home-assistant/test: b'let_there_be_light'
+    with subtest("Check we received the mosquitto message"):
+        assert "let_there_be_light" in output_log
   '';
 })
diff --git a/nixos/tests/hostname.nix b/nixos/tests/hostname.nix
new file mode 100644
index 00000000000..3b87303d73e
--- /dev/null
+++ b/nixos/tests/hostname.nix
@@ -0,0 +1,66 @@
+{ system ? builtins.currentSystem,
+  config ? {},
+  pkgs ? import ../.. { inherit system config; }
+}:
+
+with import ../lib/testing-python.nix { inherit system pkgs; };
+with pkgs.lib;
+
+let
+  makeHostNameTest = hostName: domain:
+    let
+      fqdn = hostName + (optionalString (domain != null) ".${domain}");
+    in
+      makeTest {
+        name = "hostname-${fqdn}";
+        meta = with pkgs.stdenv.lib.maintainers; {
+          maintainers = [ primeos blitz ];
+        };
+
+        machine = { lib, ... }: {
+          networking.hostName = hostName;
+          networking.domain = domain;
+
+          environment.systemPackages = with pkgs; [
+            inetutils
+          ];
+        };
+
+        testScript = ''
+          start_all()
+
+          machine = ${hostName}
+
+          machine.wait_for_unit("network-online.target")
+
+          # The FQDN, domain name, and hostname detection should work as expected:
+          assert "${fqdn}" == machine.succeed("hostname --fqdn").strip()
+          assert "${optionalString (domain != null) domain}" == machine.succeed("dnsdomainname").strip()
+          assert (
+              "${hostName}"
+              == machine.succeed(
+                  'hostnamectl status | grep "Static hostname" | cut -d: -f2'
+              ).strip()
+          )
+
+          # 127.0.0.1 and ::1 should resolve back to "localhost":
+          assert (
+              "localhost" == machine.succeed("getent hosts 127.0.0.1 | awk '{print $2}'").strip()
+          )
+          assert "localhost" == machine.succeed("getent hosts ::1 | awk '{print $2}'").strip()
+
+          # 127.0.0.2 should resolve back to the FQDN and hostname:
+          fqdn_and_host_name = "${optionalString (domain != null) "${hostName}.${domain} "}${hostName}"
+          assert (
+              fqdn_and_host_name
+              == machine.succeed("getent hosts 127.0.0.2 | awk '{print $2,$3}'").strip()
+          )
+        '';
+      };
+
+in
+{
+  noExplicitDomain = makeHostNameTest "ahost" null;
+
+  explicitDomain = makeHostNameTest "ahost" "adomain";
+}
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/hydra/db-migration.nix b/nixos/tests/hydra/db-migration.nix
index cf74acfd67a..ca65e2e66aa 100644
--- a/nixos/tests/hydra/db-migration.nix
+++ b/nixos/tests/hydra/db-migration.nix
@@ -61,7 +61,7 @@ with pkgs.lib;
           'curl -L -s http://localhost:3000/build/1 -H "Accept: application/json" |  jq .buildstatus | xargs test 0 -eq'
       )
 
-      out = original.succeed("su -l postgres -c 'psql -d hydra <<< \"\\d+ jobs\" -A'")
+      out = original.succeed("su -l postgres -c 'psql -d hydra <<< \"\\d+ builds\" -A'")
       assert "jobset_id" not in out
 
       original.succeed(
@@ -69,7 +69,7 @@ with pkgs.lib;
       )
       original.wait_for_unit("hydra-init.service")
 
-      out = original.succeed("su -l postgres -c 'psql -d hydra <<< \"\\d+ jobs\" -A'")
+      out = original.succeed("su -l postgres -c 'psql -d hydra <<< \"\\d+ builds\" -A'")
       assert "jobset_id|integer|||" in out
 
       original.succeed("hydra-backfill-ids")
@@ -79,7 +79,7 @@ with pkgs.lib;
       )
       original.wait_for_unit("hydra-init.service")
 
-      out = original.succeed("su -l postgres -c 'psql -d hydra <<< \"\\d+ jobs\" -A'")
+      out = original.succeed("su -l postgres -c 'psql -d hydra <<< \"\\d+ builds\" -A'")
       assert "jobset_id|integer||not null|" in out
 
       original.wait_until_succeeds(
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..50c6af485da 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";
@@ -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
@@ -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
@@ -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/ipfs.nix b/nixos/tests/ipfs.nix
index 4d721aec0c7..9c0ff5306e0 100644
--- a/nixos/tests/ipfs.nix
+++ b/nixos/tests/ipfs.nix
@@ -7,19 +7,33 @@ import ./make-test-python.nix ({ pkgs, ...} : {
   nodes.machine = { ... }: {
     services.ipfs = {
       enable = true;
+      # Also will add a unix domain socket socket API address, see module.
+      startWhenNeeded = true;
       apiAddress = "/ip4/127.0.0.1/tcp/2324";
     };
   };
 
   testScript = ''
     start_all()
-    machine.wait_for_unit("ipfs")
 
-    machine.wait_until_succeeds("ipfs --api /ip4/127.0.0.1/tcp/2324 id")
+    # IPv4 activation
+
+    machine.succeed("ipfs --api /ip4/127.0.0.1/tcp/2324 id")
     ipfs_hash = machine.succeed(
         "echo fnord | ipfs --api /ip4/127.0.0.1/tcp/2324 add | awk '{ print $2 }'"
     )
 
     machine.succeed(f"ipfs cat /ipfs/{ipfs_hash.strip()} | grep fnord")
+
+    # Unix domain socket activation
+
+    machine.stop_job("ipfs")
+
+    ipfs_hash = machine.succeed(
+        "echo fnord2 | ipfs --api /unix/run/ipfs.sock add | awk '{ print $2 }'"
+    )
+    machine.succeed(
+        f"ipfs --api /unix/run/ipfs.sock cat /ipfs/{ipfs_hash.strip()} | grep fnord2"
+    )
   '';
 })
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/kubernetes/base.nix b/nixos/tests/kubernetes/base.nix
index adb73650689..8cfac10b6dc 100644
--- a/nixos/tests/kubernetes/base.nix
+++ b/nixos/tests/kubernetes/base.nix
@@ -3,13 +3,12 @@
   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;
 
 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));
@@ -75,10 +74,8 @@ let
       ) machines;
 
       testScript = ''
-        startAll;
-
-        ${test}
-      '';
+        start_all()
+      '' + test;
     };
 
   mkKubernetesMultiNodeTest = attrs: mkKubernetesBaseTest ({
diff --git a/nixos/tests/kubernetes/dns.nix b/nixos/tests/kubernetes/dns.nix
index 638942e1540..890499a0fb8 100644
--- a/nixos/tests/kubernetes/dns.nix
+++ b/nixos/tests/kubernetes/dns.nix
@@ -75,51 +75,75 @@ let
   singleNodeTest = {
     test = ''
       # prepare machine1 for test
-      $machine1->waitUntilSucceeds("kubectl get node machine1.${domain} | grep -w Ready");
-      $machine1->waitUntilSucceeds("docker load < ${redisImage}");
-      $machine1->waitUntilSucceeds("kubectl create -f ${redisPod}");
-      $machine1->waitUntilSucceeds("kubectl create -f ${redisService}");
-      $machine1->waitUntilSucceeds("docker load < ${probeImage}");
-      $machine1->waitUntilSucceeds("kubectl create -f ${probePod}");
+      machine1.wait_until_succeeds("kubectl get node machine1.${domain} | grep -w Ready")
+      machine1.wait_until_succeeds(
+          "docker load < ${redisImage}"
+      )
+      machine1.wait_until_succeeds(
+          "kubectl create -f ${redisPod}"
+      )
+      machine1.wait_until_succeeds(
+          "kubectl create -f ${redisService}"
+      )
+      machine1.wait_until_succeeds(
+          "docker load < ${probeImage}"
+      )
+      machine1.wait_until_succeeds(
+          "kubectl create -f ${probePod}"
+      )
 
       # check if pods are running
-      $machine1->waitUntilSucceeds("kubectl get pod redis | grep Running");
-      $machine1->waitUntilSucceeds("kubectl get pod probe | grep Running");
-      $machine1->waitUntilSucceeds("kubectl get pods -n kube-system | grep 'coredns.*1/1'");
+      machine1.wait_until_succeeds("kubectl get pod redis | grep Running")
+      machine1.wait_until_succeeds("kubectl get pod probe | grep Running")
+      machine1.wait_until_succeeds("kubectl get pods -n kube-system | grep 'coredns.*1/1'")
 
       # check dns on host (dnsmasq)
-      $machine1->succeed("host redis.default.svc.cluster.local");
+      machine1.succeed("host redis.default.svc.cluster.local")
 
       # check dns inside the container
-      $machine1->succeed("kubectl exec -ti probe -- /bin/host redis.default.svc.cluster.local");
+      machine1.succeed("kubectl exec -ti probe -- /bin/host redis.default.svc.cluster.local")
     '';
   };
 
   multiNodeTest = {
     test = ''
       # Node token exchange
-      $machine1->waitUntilSucceeds("cp -f /var/lib/cfssl/apitoken.secret /tmp/shared/apitoken.secret");
-      $machine2->waitUntilSucceeds("cat /tmp/shared/apitoken.secret | nixos-kubernetes-node-join");
+      machine1.wait_until_succeeds(
+          "cp -f /var/lib/cfssl/apitoken.secret /tmp/shared/apitoken.secret"
+      )
+      machine2.wait_until_succeeds(
+          "cat /tmp/shared/apitoken.secret | nixos-kubernetes-node-join"
+      )
 
       # prepare machines for test
-      $machine1->waitUntilSucceeds("kubectl get node machine2.${domain} | grep -w Ready");
-      $machine2->waitUntilSucceeds("docker load < ${redisImage}");
-      $machine1->waitUntilSucceeds("kubectl create -f ${redisPod}");
-      $machine1->waitUntilSucceeds("kubectl create -f ${redisService}");
-      $machine2->waitUntilSucceeds("docker load < ${probeImage}");
-      $machine1->waitUntilSucceeds("kubectl create -f ${probePod}");
+      machine1.wait_until_succeeds("kubectl get node machine2.${domain} | grep -w Ready")
+      machine2.wait_until_succeeds(
+          "docker load < ${redisImage}"
+      )
+      machine1.wait_until_succeeds(
+          "kubectl create -f ${redisPod}"
+      )
+      machine1.wait_until_succeeds(
+          "kubectl create -f ${redisService}"
+      )
+      machine2.wait_until_succeeds(
+          "docker load < ${probeImage}"
+      )
+      machine1.wait_until_succeeds(
+          "kubectl create -f ${probePod}"
+      )
 
       # check if pods are running
-      $machine1->waitUntilSucceeds("kubectl get pod redis | grep Running");
-      $machine1->waitUntilSucceeds("kubectl get pod probe | grep Running");
-      $machine1->waitUntilSucceeds("kubectl get pods -n kube-system | grep 'coredns.*1/1'");
+      machine1.wait_until_succeeds("kubectl get pod redis | grep Running")
+      machine1.wait_until_succeeds("kubectl get pod probe | grep Running")
+      machine1.wait_until_succeeds("kubectl get pods -n kube-system | grep 'coredns.*1/1'")
 
       # check dns on hosts (dnsmasq)
-      $machine1->succeed("host redis.default.svc.cluster.local");
-      $machine2->succeed("host redis.default.svc.cluster.local");
+      machine1.succeed("host redis.default.svc.cluster.local")
+      machine2.succeed("host redis.default.svc.cluster.local")
 
       # check dns inside the container
-      $machine1->succeed("kubectl exec -ti probe -- /bin/host redis.default.svc.cluster.local");
+      machine1.succeed("kubectl exec -ti probe -- /bin/host redis.default.svc.cluster.local")
     '';
   };
 in {
diff --git a/nixos/tests/kubernetes/rbac.nix b/nixos/tests/kubernetes/rbac.nix
index 3ce7adcd0d7..c922da515d9 100644
--- a/nixos/tests/kubernetes/rbac.nix
+++ b/nixos/tests/kubernetes/rbac.nix
@@ -94,43 +94,67 @@ let
 
   singlenode = base // {
     test = ''
-      $machine1->waitUntilSucceeds("kubectl get node machine1.my.zyx | grep -w Ready");
-
-      $machine1->waitUntilSucceeds("docker load < ${kubectlImage}");
-
-      $machine1->waitUntilSucceeds("kubectl apply -f ${roServiceAccount}");
-      $machine1->waitUntilSucceeds("kubectl apply -f ${roRole}");
-      $machine1->waitUntilSucceeds("kubectl apply -f ${roRoleBinding}");
-      $machine1->waitUntilSucceeds("kubectl create -f ${kubectlPod}");
-
-      $machine1->waitUntilSucceeds("kubectl get pod kubectl | grep Running");
-
-      $machine1->waitUntilSucceeds("kubectl exec -ti kubectl -- kubectl get pods");
-      $machine1->fail("kubectl exec -ti kubectl -- kubectl create -f /kubectl-pod-2.json");
-      $machine1->fail("kubectl exec -ti kubectl -- kubectl delete pods -l name=kubectl");
+      machine1.wait_until_succeeds("kubectl get node machine1.my.zyx | grep -w Ready")
+
+      machine1.wait_until_succeeds(
+          "docker load < ${kubectlImage}"
+      )
+
+      machine1.wait_until_succeeds(
+          "kubectl apply -f ${roServiceAccount}"
+      )
+      machine1.wait_until_succeeds(
+          "kubectl apply -f ${roRole}"
+      )
+      machine1.wait_until_succeeds(
+          "kubectl apply -f ${roRoleBinding}"
+      )
+      machine1.wait_until_succeeds(
+          "kubectl create -f ${kubectlPod}"
+      )
+
+      machine1.wait_until_succeeds("kubectl get pod kubectl | grep Running")
+
+      machine1.wait_until_succeeds("kubectl exec -ti kubectl -- kubectl get pods")
+      machine1.fail("kubectl exec -ti kubectl -- kubectl create -f /kubectl-pod-2.json")
+      machine1.fail("kubectl exec -ti kubectl -- kubectl delete pods -l name=kubectl")
     '';
   };
 
   multinode = base // {
     test = ''
       # Node token exchange
-      $machine1->waitUntilSucceeds("cp -f /var/lib/cfssl/apitoken.secret /tmp/shared/apitoken.secret");
-      $machine2->waitUntilSucceeds("cat /tmp/shared/apitoken.secret | nixos-kubernetes-node-join");
-
-      $machine1->waitUntilSucceeds("kubectl get node machine2.my.zyx | grep -w Ready");
-
-      $machine2->waitUntilSucceeds("docker load < ${kubectlImage}");
-
-      $machine1->waitUntilSucceeds("kubectl apply -f ${roServiceAccount}");
-      $machine1->waitUntilSucceeds("kubectl apply -f ${roRole}");
-      $machine1->waitUntilSucceeds("kubectl apply -f ${roRoleBinding}");
-      $machine1->waitUntilSucceeds("kubectl create -f ${kubectlPod}");
-
-      $machine1->waitUntilSucceeds("kubectl get pod kubectl | grep Running");
-
-      $machine1->waitUntilSucceeds("kubectl exec -ti kubectl -- kubectl get pods");
-      $machine1->fail("kubectl exec -ti kubectl -- kubectl create -f /kubectl-pod-2.json");
-      $machine1->fail("kubectl exec -ti kubectl -- kubectl delete pods -l name=kubectl");
+      machine1.wait_until_succeeds(
+          "cp -f /var/lib/cfssl/apitoken.secret /tmp/shared/apitoken.secret"
+      )
+      machine2.wait_until_succeeds(
+          "cat /tmp/shared/apitoken.secret | nixos-kubernetes-node-join"
+      )
+
+      machine1.wait_until_succeeds("kubectl get node machine2.my.zyx | grep -w Ready")
+
+      machine2.wait_until_succeeds(
+          "docker load < ${kubectlImage}"
+      )
+
+      machine1.wait_until_succeeds(
+          "kubectl apply -f ${roServiceAccount}"
+      )
+      machine1.wait_until_succeeds(
+          "kubectl apply -f ${roRole}"
+      )
+      machine1.wait_until_succeeds(
+          "kubectl apply -f ${roRoleBinding}"
+      )
+      machine1.wait_until_succeeds(
+          "kubectl create -f ${kubectlPod}"
+      )
+
+      machine1.wait_until_succeeds("kubectl get pod kubectl | grep Running")
+
+      machine1.wait_until_succeeds("kubectl exec -ti kubectl -- kubectl get pods")
+      machine1.fail("kubectl exec -ti kubectl -- kubectl create -f /kubectl-pod-2.json")
+      machine1.fail("kubectl exec -ti kubectl -- kubectl delete pods -l name=kubectl")
     '';
   };
 
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/lorri/default.nix b/nixos/tests/lorri/default.nix
index 198171082d8..c33c7503993 100644
--- a/nixos/tests/lorri/default.nix
+++ b/nixos/tests/lorri/default.nix
@@ -18,7 +18,7 @@ import ../make-test-python.nix {
     machine.wait_until_succeeds("grep --fixed-strings 'ready' lorri.stdout")
 
     # Ping the daemon
-    machine.succeed("lorri internal__ping shell.nix")
+    machine.succeed("lorri internal ping shell.nix")
 
     # Wait for the daemon to finish the build
     machine.wait_until_succeeds("grep --fixed-strings 'Completed' lorri.stdout")
diff --git a/nixos/tests/lxd-nftables.nix b/nixos/tests/lxd-nftables.nix
new file mode 100644
index 00000000000..25517914db8
--- /dev/null
+++ b/nixos/tests/lxd-nftables.nix
@@ -0,0 +1,50 @@
+# This test makes sure that lxd stops implicitly depending on iptables when
+# user enabled nftables.
+#
+# It has been extracted from `lxd.nix` for clarity, and because switching from
+# iptables to nftables requires a full reboot, which is a bit hard inside NixOS
+# tests.
+
+import ./make-test-python.nix ({ pkgs, ...} : {
+  name = "lxd-nftables";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ patryk27 ];
+  };
+
+  machine = { lib, ... }: {
+    virtualisation = {
+      lxd.enable = true;
+    };
+
+    networking = {
+      firewall.enable = false;
+      nftables.enable = true;
+      nftables.ruleset = ''
+        table inet filter {
+          chain incoming {
+            type filter hook input priority 0;
+            policy accept;
+          }
+
+          chain forward {
+            type filter hook forward priority 0;
+            policy accept;
+          }
+
+          chain output {
+            type filter hook output priority 0;
+            policy accept;
+          }
+        }
+      '';
+    };
+  };
+
+  testScript = ''
+    machine.wait_for_unit("network.target")
+
+    with subtest("When nftables are enabled, lxd doesn't depend on iptables anymore"):
+        machine.succeed("lsmod | grep nf_tables")
+        machine.fail("lsmod | grep ip_tables")
+  '';
+})
diff --git a/nixos/tests/lxd.nix b/nixos/tests/lxd.nix
new file mode 100644
index 00000000000..db2d44dff55
--- /dev/null
+++ b/nixos/tests/lxd.nix
@@ -0,0 +1,135 @@
+import ./make-test-python.nix ({ pkgs, ...} :
+
+let
+  # Since we don't have access to the internet during the tests, we have to
+  # pre-fetch lxd containers beforehand.
+  #
+  # I've chosen to import Alpine Linux, because its image is turbo-tiny and,
+  # generally, sufficient for our tests.
+
+  alpine-meta = pkgs.fetchurl {
+    url = "https://uk.images.linuxcontainers.org/images/alpine/3.11/i386/default/20200608_13:00/lxd.tar.xz";
+    sha256 = "1hkvaj3rr333zmx1759njy435lps33gl4ks8zfm7m4nqvipm26a0";
+  };
+
+  alpine-rootfs = pkgs.fetchurl {
+    url = "https://uk.images.linuxcontainers.org/images/alpine/3.11/i386/default/20200608_13:00/rootfs.tar.xz";
+    sha256 = "1v82zdra4j5xwsff09qlp7h5vbsg54s0j7rdg4rynichfid3r347";
+  };
+
+  lxd-config = pkgs.writeText "config.yaml" ''
+    storage_pools:
+      - name: default
+        driver: dir
+        config:
+          source: /var/lxd-pool
+
+    networks:
+      - name: lxdbr0
+        type: bridge
+        config:
+          ipv4.address: auto
+          ipv6.address: none
+
+    profiles:
+      - name: default
+        devices:
+          eth0:
+            name: eth0
+            network: lxdbr0
+            type: nic
+          root:
+            path: /
+            pool: default
+            type: disk
+  '';
+
+in {
+  name = "lxd";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ patryk27 ];
+  };
+
+  machine = { lib, ... }: {
+    virtualisation = {
+      # Since we're testing `limits.cpu`, we've gotta have a known number of
+      # cores to lay on
+      cores = 2;
+
+      # Ditto, for `limits.memory`
+      memorySize = 512;
+
+      lxc.lxcfs.enable = true;
+      lxd.enable = true;
+    };
+  };
+
+  testScript = ''
+    machine.wait_for_unit("sockets.target")
+    machine.wait_for_unit("lxd.service")
+
+    # It takes additional second for lxd to settle
+    machine.sleep(1)
+
+    # lxd expects the pool's directory to already exist
+    machine.succeed("mkdir /var/lxd-pool")
+
+    machine.succeed(
+        "cat ${lxd-config} | lxd init --preseed"
+    )
+
+    machine.succeed(
+        "lxc image import ${alpine-meta} ${alpine-rootfs} --alias alpine"
+    )
+
+    with subtest("Containers can be launched and destroyed"):
+        machine.succeed("lxc launch alpine test")
+        machine.succeed("lxc exec test true")
+        machine.succeed("lxc delete -f test")
+
+    with subtest("Containers are being mounted with lxcfs inside"):
+        machine.succeed("lxc launch alpine test")
+
+        ## ---------- ##
+        ## limits.cpu ##
+
+        machine.succeed("lxc config set test limits.cpu 1")
+
+        # Since Alpine doesn't have `nproc` pre-installed, we've gotta resort
+        # to the primal methods
+        assert (
+            "1"
+            == machine.succeed("lxc exec test grep -- -c ^processor /proc/cpuinfo").strip()
+        )
+
+        machine.succeed("lxc config set test limits.cpu 2")
+
+        assert (
+            "2"
+            == machine.succeed("lxc exec test grep -- -c ^processor /proc/cpuinfo").strip()
+        )
+
+        ## ------------- ##
+        ## limits.memory ##
+
+        machine.succeed("lxc config set test limits.memory 64MB")
+
+        assert (
+            "MemTotal:          62500 kB"
+            == machine.succeed("lxc exec test grep -- MemTotal /proc/meminfo").strip()
+        )
+
+        machine.succeed("lxc config set test limits.memory 128MB")
+
+        assert (
+            "MemTotal:         125000 kB"
+            == machine.succeed("lxc exec test grep -- MemTotal /proc/meminfo").strip()
+        )
+
+        machine.succeed("lxc delete -f test")
+
+    with subtest("Unless explicitly changed, lxd leans on iptables"):
+        machine.succeed("lsmod | grep ip_tables")
+        machine.fail("lsmod | grep nf_tables")
+  '';
+})
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/matrix-synapse.nix b/nixos/tests/matrix-synapse.nix
index f3623aa3c09..9ca80872176 100644
--- a/nixos/tests/matrix-synapse.nix
+++ b/nixos/tests/matrix-synapse.nix
@@ -29,8 +29,8 @@ import ./make-test-python.nix ({ pkgs, ... } : let
 in {
 
   name = "matrix-synapse";
-  meta = with pkgs.stdenv.lib.maintainers; {
-    maintainers = [ corngood ];
+  meta = with pkgs.stdenv.lib; {
+    maintainers = teams.matrix.members;
   };
 
   nodes = {
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/mariadb-galera-mariabackup.nix b/nixos/tests/mysql/mariadb-galera-mariabackup.nix
index 73abf6c555f..cae55878060 100644
--- a/nixos/tests/mysql/mariadb-galera-mariabackup.nix
+++ b/nixos/tests/mysql/mariadb-galera-mariabackup.nix
@@ -55,9 +55,9 @@ in {
           };
           galera = {
             wsrep_on = "ON";
-            wsrep_debug = "OFF";
+            wsrep_debug = "NONE";
             wsrep_retry_autocommit = "3";
-            wsrep_provider = "${pkgs.mariadb-galera_25}/lib/galera/libgalera_smm.so";
+            wsrep_provider = "${pkgs.mariadb-galera}/lib/galera/libgalera_smm.so";
             wsrep_cluster_address = "gcomm://";
             wsrep_cluster_name = "galera";
             wsrep_node_address = "192.168.1.1";
@@ -102,9 +102,9 @@ in {
           };
           galera = {
             wsrep_on = "ON";
-            wsrep_debug = "OFF";
+            wsrep_debug = "NONE";
             wsrep_retry_autocommit = "3";
-            wsrep_provider = "${pkgs.mariadb-galera_25}/lib/galera/libgalera_smm.so";
+            wsrep_provider = "${pkgs.mariadb-galera}/lib/galera/libgalera_smm.so";
             wsrep_cluster_address = "gcomm://galera_01,galera_02,galera_03";
             wsrep_cluster_name = "galera";
             wsrep_node_address = "192.168.1.2";
@@ -149,9 +149,9 @@ in {
           };
           galera = {
             wsrep_on = "ON";
-            wsrep_debug = "OFF";
+            wsrep_debug = "NONE";
             wsrep_retry_autocommit = "3";
-            wsrep_provider = "${pkgs.mariadb-galera_25}/lib/galera/libgalera_smm.so";
+            wsrep_provider = "${pkgs.mariadb-galera}/lib/galera/libgalera_smm.so";
             wsrep_cluster_address = "gcomm://galera_01,galera_02,galera_03";
             wsrep_cluster_name = "galera";
             wsrep_node_address = "192.168.1.3";
@@ -184,17 +184,17 @@ in {
     galera_03.wait_for_unit("mysql")
     galera_03.wait_for_open_port(3306)
     galera_02.succeed(
-        "sudo -u testuser mysql -u root -e 'use testdb; select test_id from db1;' -N | grep 37"
+        "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 37"
     )
     galera_02.succeed(
-        "sudo -u testuser mysql -u root -e 'use testdb; create table db2 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
+        "sudo -u testuser mysql -u testuser -e 'use testdb; create table db2 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
     )
     galera_02.succeed("systemctl stop mysql")
     galera_01.succeed(
         "sudo -u testuser mysql -u testuser -e 'use testdb; insert into db2 values (38);'"
     )
     galera_03.succeed(
-        "sudo -u testuser mysql -u root -e 'use testdb; create table db3 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
+        "sudo -u testuser mysql -u testuser -e 'use testdb; create table db3 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
     )
     galera_01.succeed(
         "sudo -u testuser mysql -u testuser -e 'use testdb; insert into db3 values (39);'"
@@ -202,22 +202,22 @@ in {
     galera_02.succeed("systemctl start mysql")
     galera_02.wait_for_open_port(3306)
     galera_02.succeed(
-        "sudo -u testuser mysql -u root -e 'show status' -N | grep 'wsrep_cluster_size.*3'"
+        "sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_cluster_size.*3'"
     )
     galera_03.succeed(
-        "sudo -u testuser mysql -u root -e 'show status' -N | grep 'wsrep_local_state_comment.*Synced'"
+        "sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_local_state_comment.*Synced'"
     )
     galera_01.succeed(
-        "sudo -u testuser mysql -u root -e 'use testdb; select test_id from db3;' -N | grep 39"
+        "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db3;' -N | grep 39"
     )
     galera_02.succeed(
-        "sudo -u testuser mysql -u root -e 'use testdb; select test_id from db2;' -N | grep 38"
+        "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db2;' -N | grep 38"
     )
     galera_03.succeed(
-        "sudo -u testuser mysql -u root -e 'use testdb; select test_id from db1;' -N | grep 37"
+        "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 37"
     )
     galera_01.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db3;'")
-    galera_02.succeed("sudo -u testuser mysql -u root -e 'use testdb; drop table db2;'")
-    galera_03.succeed("sudo -u testuser mysql -u root -e 'use testdb; drop table db1;'")
+    galera_02.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db2;'")
+    galera_03.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db1;'")
   '';
 })
diff --git a/nixos/tests/mysql/mariadb-galera-rsync.nix b/nixos/tests/mysql/mariadb-galera-rsync.nix
index cacae4569b5..4318efae8a9 100644
--- a/nixos/tests/mysql/mariadb-galera-rsync.nix
+++ b/nixos/tests/mysql/mariadb-galera-rsync.nix
@@ -51,9 +51,9 @@ in {
           };
           galera = {
             wsrep_on = "ON";
-            wsrep_debug = "OFF";
+            wsrep_debug = "NONE";
             wsrep_retry_autocommit = "3";
-            wsrep_provider = "${pkgs.mariadb-galera_25}/lib/galera/libgalera_smm.so";
+            wsrep_provider = "${pkgs.mariadb-galera}/lib/galera/libgalera_smm.so";
             wsrep_cluster_address = "gcomm://";
             wsrep_cluster_name = "galera-rsync";
             wsrep_node_address = "192.168.2.1";
@@ -97,9 +97,9 @@ in {
           };
           galera = {
             wsrep_on = "ON";
-            wsrep_debug = "OFF";
+            wsrep_debug = "NONE";
             wsrep_retry_autocommit = "3";
-            wsrep_provider = "${pkgs.mariadb-galera_25}/lib/galera/libgalera_smm.so";
+            wsrep_provider = "${pkgs.mariadb-galera}/lib/galera/libgalera_smm.so";
             wsrep_cluster_address = "gcomm://galera_04,galera_05,galera_06";
             wsrep_cluster_name = "galera-rsync";
             wsrep_node_address = "192.168.2.2";
@@ -143,9 +143,9 @@ in {
           };
           galera = {
             wsrep_on = "ON";
-            wsrep_debug = "OFF";
+            wsrep_debug = "NONE";
             wsrep_retry_autocommit = "3";
-            wsrep_provider = "${pkgs.mariadb-galera_25}/lib/galera/libgalera_smm.so";
+            wsrep_provider = "${pkgs.mariadb-galera}/lib/galera/libgalera_smm.so";
             wsrep_cluster_address = "gcomm://galera_04,galera_05,galera_06";
             wsrep_cluster_name = "galera-rsync";
             wsrep_node_address = "192.168.2.3";
@@ -177,17 +177,17 @@ in {
     galera_06.wait_for_unit("mysql")
     galera_06.wait_for_open_port(3306)
     galera_05.succeed(
-        "sudo -u testuser mysql -u root -e 'use testdb; select test_id from db1;' -N | grep 41"
+        "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 41"
     )
     galera_05.succeed(
-        "sudo -u testuser mysql -u root -e 'use testdb; create table db2 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
+        "sudo -u testuser mysql -u testuser -e 'use testdb; create table db2 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
     )
     galera_05.succeed("systemctl stop mysql")
     galera_04.succeed(
         "sudo -u testuser mysql -u testuser -e 'use testdb; insert into db2 values (42);'"
     )
     galera_06.succeed(
-        "sudo -u testuser mysql -u root -e 'use testdb; create table db3 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
+        "sudo -u testuser mysql -u testuser -e 'use testdb; create table db3 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
     )
     galera_04.succeed(
         "sudo -u testuser mysql -u testuser -e 'use testdb; insert into db3 values (43);'"
@@ -195,22 +195,22 @@ in {
     galera_05.succeed("systemctl start mysql")
     galera_05.wait_for_open_port(3306)
     galera_05.succeed(
-        "sudo -u testuser mysql -u root -e 'show status' -N | grep 'wsrep_cluster_size.*3'"
+        "sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_cluster_size.*3'"
     )
     galera_06.succeed(
-        "sudo -u testuser mysql -u root -e 'show status' -N | grep 'wsrep_local_state_comment.*Synced'"
+        "sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_local_state_comment.*Synced'"
     )
     galera_04.succeed(
-        "sudo -u testuser mysql -u root -e 'use testdb; select test_id from db3;' -N | grep 43"
+        "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db3;' -N | grep 43"
     )
     galera_05.succeed(
-        "sudo -u testuser mysql -u root -e 'use testdb; select test_id from db2;' -N | grep 42"
+        "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db2;' -N | grep 42"
     )
     galera_06.succeed(
-        "sudo -u testuser mysql -u root -e 'use testdb; select test_id from db1;' -N | grep 41"
+        "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 41"
     )
     galera_04.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db3;'")
-    galera_05.succeed("sudo -u testuser mysql -u root -e 'use testdb; drop table db2;'")
-    galera_06.succeed("sudo -u testuser mysql -u root -e 'use testdb; drop table db1;'")
+    galera_05.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db2;'")
+    galera_06.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db1;'")
   '';
 })
diff --git a/nixos/tests/mysql/mysql-replication.nix b/nixos/tests/mysql/mysql-replication.nix
index 81038dccd94..b5e00325019 100644
--- a/nixos/tests/mysql/mysql-replication.nix
+++ b/nixos/tests/mysql/mysql-replication.nix
@@ -59,7 +59,7 @@ in
     master.wait_for_open_port(3306)
     # Wait for testdb to be fully populated (5 rows).
     master.wait_until_succeeds(
-        "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
+        "sudo -u mysql mysql -u mysql -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
     )
 
     slave1.start()
@@ -71,19 +71,21 @@ in
 
     # wait for replications to finish
     slave1.wait_until_succeeds(
-        "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
+        "sudo -u mysql mysql -u mysql -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
     )
     slave2.wait_until_succeeds(
-        "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
+        "sudo -u mysql mysql -u mysql -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
     )
 
     slave2.succeed("systemctl stop mysql")
-    master.succeed("echo 'insert into testdb.tests values (123, 456);' | mysql -u root -N")
+    master.succeed(
+        "echo 'insert into testdb.tests values (123, 456);' | sudo -u mysql mysql -u mysql -N"
+    )
     slave2.succeed("systemctl start mysql")
     slave2.wait_for_unit("mysql")
     slave2.wait_for_open_port(3306)
     slave2.wait_until_succeeds(
-        "echo 'select * from testdb.tests where Id = 123;' | mysql -u root -N | grep 456"
+        "echo 'select * from testdb.tests where Id = 123;' | sudo -u mysql mysql -u mysql -N | grep 456"
     )
   '';
 })
diff --git a/nixos/tests/mysql/mysql.nix b/nixos/tests/mysql/mysql.nix
index d236ce94632..5437a286043 100644
--- a/nixos/tests/mysql/mysql.nix
+++ b/nixos/tests/mysql/mysql.nix
@@ -5,20 +5,34 @@ import ./../make-test-python.nix ({ pkgs, ...} : {
   };
 
   nodes = {
-    mysql =
+    mysql57 =
       { pkgs, ... }:
 
       {
+        users.users.testuser = { };
+        users.users.testuser2 = { };
         services.mysql.enable = true;
         services.mysql.initialDatabases = [
-          { name = "testdb"; schema = ./testdb.sql; }
-          { name = "empty_testdb"; }
+          { name = "testdb3"; schema = ./testdb.sql; }
         ];
         # note that using pkgs.writeText here is generally not a good idea,
         # as it will store the password in world-readable /nix/store ;)
         services.mysql.initialScript = pkgs.writeText "mysql-init.sql" ''
-          CREATE USER 'passworduser'@'localhost' IDENTIFIED BY 'password123';
+          CREATE USER 'testuser3'@'localhost' IDENTIFIED BY 'secure';
+          GRANT ALL PRIVILEGES ON testdb3.* TO 'testuser3'@'localhost';
         '';
+        services.mysql.ensureDatabases = [ "testdb" "testdb2" ];
+        services.mysql.ensureUsers = [{
+          name = "testuser";
+          ensurePermissions = {
+            "testdb.*" = "ALL PRIVILEGES";
+          };
+        } {
+          name = "testuser2";
+          ensurePermissions = {
+            "testdb2.*" = "ALL PRIVILEGES";
+          };
+        }];
         services.mysql.package = pkgs.mysql57;
       };
 
@@ -30,16 +44,30 @@ import ./../make-test-python.nix ({ pkgs, ...} : {
         # Kernel panic - not syncing: Out of memory: compulsory panic_on_oom is enabled
         virtualisation.memorySize = 1024;
 
+        users.users.testuser = { };
+        users.users.testuser2 = { };
         services.mysql.enable = true;
         services.mysql.initialDatabases = [
-          { name = "testdb"; schema = ./testdb.sql; }
-          { name = "empty_testdb"; }
+          { name = "testdb3"; schema = ./testdb.sql; }
         ];
         # note that using pkgs.writeText here is generally not a good idea,
         # as it will store the password in world-readable /nix/store ;)
         services.mysql.initialScript = pkgs.writeText "mysql-init.sql" ''
-          CREATE USER 'passworduser'@'localhost' IDENTIFIED BY 'password123';
+          CREATE USER 'testuser3'@'localhost' IDENTIFIED BY 'secure';
+          GRANT ALL PRIVILEGES ON testdb3.* TO 'testuser3'@'localhost';
         '';
+        services.mysql.ensureDatabases = [ "testdb" "testdb2" ];
+        services.mysql.ensureUsers = [{
+          name = "testuser";
+          ensurePermissions = {
+            "testdb.*" = "ALL PRIVILEGES";
+          };
+        } {
+          name = "testuser2";
+          ensurePermissions = {
+            "testdb2.*" = "ALL PRIVILEGES";
+          };
+        }];
         services.mysql.package = pkgs.mysql80;
       };
 
@@ -81,17 +109,49 @@ import ./../make-test-python.nix ({ pkgs, ...} : {
   testScript = ''
     start_all()
 
-    mysql.wait_for_unit("mysql")
-    mysql.succeed("echo 'use empty_testdb;' | mysql -u root")
-    mysql.succeed("echo 'use testdb; select * from tests;' | mysql -u root -N | grep 4")
-    # ';' acts as no-op, just check whether login succeeds with the user created from the initialScript
-    mysql.succeed("echo ';' | mysql -u passworduser --password=password123")
+    mysql57.wait_for_unit("mysql")
+    mysql57.succeed(
+        "echo 'use testdb; create table tests (test_id INT, PRIMARY KEY (test_id));' | sudo -u testuser mysql -u testuser"
+    )
+    mysql57.succeed(
+        "echo 'use testdb; insert into tests values (41);' | sudo -u testuser mysql -u testuser"
+    )
+    # Ensure testuser2 is not able to insert into testdb as mysql testuser2
+    mysql57.fail(
+        "echo 'use testdb; insert into tests values (22);' | sudo -u testuser2 mysql -u testuser2"
+    )
+    # Ensure testuser2 is not able to authenticate as mysql testuser
+    mysql57.fail(
+        "echo 'use testdb; insert into tests values (22);' | sudo -u testuser2 mysql -u testuser"
+    )
+    mysql57.succeed(
+        "echo 'use testdb; select test_id from tests;' | sudo -u testuser mysql -u testuser -N | grep 41"
+    )
+    mysql57.succeed(
+        "echo 'use testdb3; select * from tests;' | mysql -u testuser3 --password=secure -N | grep 4"
+    )
 
     mysql80.wait_for_unit("mysql")
-    mysql80.succeed("echo 'use empty_testdb;' | mysql -u root")
-    mysql80.succeed("echo 'use testdb; select * from tests;' | mysql -u root -N | grep 4")
-    # ';' acts as no-op, just check whether login succeeds with the user created from the initialScript
-    mysql80.succeed("echo ';' | mysql -u passworduser --password=password123")
+    mysql80.succeed(
+        "echo 'use testdb; create table tests (test_id INT, PRIMARY KEY (test_id));' | sudo -u testuser mysql -u testuser"
+    )
+    mysql80.succeed(
+        "echo 'use testdb; insert into tests values (41);' | sudo -u testuser mysql -u testuser"
+    )
+    # Ensure testuser2 is not able to insert into testdb as mysql testuser2
+    mysql80.fail(
+        "echo 'use testdb; insert into tests values (22);' | sudo -u testuser2 mysql -u testuser2"
+    )
+    # Ensure testuser2 is not able to authenticate as mysql testuser
+    mysql80.fail(
+        "echo 'use testdb; insert into tests values (22);' | sudo -u testuser2 mysql -u testuser"
+    )
+    mysql80.succeed(
+        "echo 'use testdb; select test_id from tests;' | sudo -u testuser mysql -u testuser -N | grep 41"
+    )
+    mysql80.succeed(
+        "echo 'use testdb3; select * from tests;' | mysql -u testuser3 --password=secure -N | grep 4"
+    )
 
     mariadb.wait_for_unit("mysql")
     mariadb.succeed(
@@ -112,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 92ac5c46e8f..72fb020dca7 100644
--- a/nixos/tests/nextcloud/basic.nix
+++ b/nixos/tests/nextcloud/basic.nix
@@ -9,14 +9,30 @@ in {
 
   nodes = {
     # The only thing the client needs to do is download a file.
-    client = { ... }: {};
+    client = { ... }: {
+      services.davfs2.enable = true;
+      system.activationScripts.davfs2-secrets = ''
+        echo "http://nextcloud/remote.php/webdav/ ${adminuser} ${adminpass}" > /tmp/davfs2-secrets
+        chmod 600 /tmp/davfs2-secrets
+      '';
+      fileSystems = pkgs.lib.mkVMOverride {
+        "/mnt/dav" = {
+          device = "http://nextcloud/remote.php/webdav/";
+          fsType = "davfs";
+          options = let
+            davfs2Conf = (pkgs.writeText "davfs2.conf" "secrets /tmp/davfs2-secrets");
+          in [ "conf=${davfs2Conf}" "x-systemd.automount" "noauto"];
+        };
+      };
+    };
 
-    nextcloud = { config, pkgs, ... }: {
+    nextcloud = { config, pkgs, ... }: let
+      cfg = config;
+    in {
       networking.firewall.allowedTCPPorts = [ 80 ];
 
       services.nextcloud = {
         enable = true;
-        nginx.enable = true;
         hostName = "nextcloud";
         config = {
           # Don't inherit adminuser since "root" is supposed to be the default
@@ -27,6 +43,8 @@ in {
           startAt = "20:00";
         };
       };
+
+      environment.systemPackages = [ cfg.services.nextcloud.occ ];
     };
   };
 
@@ -52,6 +70,8 @@ in {
   in ''
     start_all()
     nextcloud.wait_for_unit("multi-user.target")
+    # This is just to ensure the nextcloud-occ program is working
+    nextcloud.succeed("nextcloud-occ status")
     nextcloud.succeed("curl -sSf http://nextcloud/login")
     nextcloud.succeed(
         "${withRcloneEnv} ${copySharedFile}"
@@ -60,5 +80,6 @@ in {
     client.succeed(
         "${withRcloneEnv} ${diffSharedFile}"
     )
+    assert "hi" in client.succeed("cat /mnt/dav/test-shared-file")
   '';
 })
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/nginx-pubhtml.nix b/nixos/tests/nginx-pubhtml.nix
index 432913cb42d..6e1e605628e 100644
--- a/nixos/tests/nginx-pubhtml.nix
+++ b/nixos/tests/nginx-pubhtml.nix
@@ -2,6 +2,7 @@ import ./make-test-python.nix {
   name = "nginx-pubhtml";
 
   machine = { pkgs, ... }: {
+    systemd.services.nginx.serviceConfig.ProtectHome = "read-only";
     services.nginx.enable = true;
     services.nginx.virtualHosts.localhost = {
       locations."~ ^/\\~([a-z0-9_]+)(/.*)?$".alias = "/home/$1/public_html$2";
diff --git a/nixos/tests/nginx-sandbox.nix b/nixos/tests/nginx-sandbox.nix
new file mode 100644
index 00000000000..bc9d3ba8add
--- /dev/null
+++ b/nixos/tests/nginx-sandbox.nix
@@ -0,0 +1,66 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "nginx-sandbox";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ izorkin ];
+  };
+
+  # This test checks the creation and reading of a file in sandbox mode. Used simple lua script.
+
+  machine = { pkgs, ... }: {
+    nixpkgs.overlays = [
+      (self: super: {
+        nginx-lua = super.nginx.override {
+          modules = [
+            pkgs.nginxModules.lua
+          ];
+        };
+      })
+    ];
+    services.nginx.enable = true;
+    services.nginx.package = pkgs.nginx-lua;
+    services.nginx.enableSandbox = true;
+    services.nginx.virtualHosts.localhost = {
+      extraConfig = ''
+        location /test1-write {
+          content_by_lua_block {
+            local create = os.execute('${pkgs.coreutils}/bin/mkdir /tmp/test1-read')
+            local create = os.execute('${pkgs.coreutils}/bin/touch /tmp/test1-read/foo.txt')
+            local echo = os.execute('${pkgs.coreutils}/bin/echo worked > /tmp/test1-read/foo.txt')
+          }
+        }
+        location /test1-read {
+          root /tmp;
+        }
+        location /test2-write {
+          content_by_lua_block {
+            local create = os.execute('${pkgs.coreutils}/bin/mkdir /var/web/test2-read')
+            local create = os.execute('${pkgs.coreutils}/bin/touch /var/web/test2-read/bar.txt')
+            local echo = os.execute('${pkgs.coreutils}/bin/echo error-worked > /var/web/test2-read/bar.txt')
+          }
+        }
+        location /test2-read {
+          root /var/web;
+        }
+      '';
+    };
+    users.users.foo.isNormalUser = true;
+  };
+
+  testScript = ''
+    machine.wait_for_unit("nginx")
+    machine.wait_for_open_port(80)
+
+    # Checking write in temporary folder
+    machine.succeed("$(curl -vvv http://localhost/test1-write)")
+    machine.succeed('test "$(curl -fvvv http://localhost/test1-read/foo.txt)" = worked')
+
+    # Checking write in protected folder. In sandbox mode for the nginx service, the folder /var/web is mounted
+    # in read-only mode.
+    machine.succeed("mkdir -p /var/web")
+    machine.succeed("chown nginx:nginx /var/web")
+    machine.succeed("$(curl -vvv http://localhost/test2-write)")
+    assert "404 Not Found" in machine.succeed(
+        "curl -vvv -s http://localhost/test2-read/bar.txt"
+    )
+  '';
+})
diff --git a/nixos/tests/nginx-variants.nix b/nixos/tests/nginx-variants.nix
new file mode 100644
index 00000000000..ca4655391bc
--- /dev/null
+++ b/nixos/tests/nginx-variants.nix
@@ -0,0 +1,33 @@
+{ system ? builtins.currentSystem,
+  config ? {},
+  pkgs ? import ../.. { inherit system config; }
+}:
+
+with import ../lib/testing-python.nix { inherit system pkgs; };
+
+builtins.listToAttrs (
+  builtins.map
+    (nginxName:
+      {
+        name = nginxName;
+        value = makeTest {
+          name = "nginx-variant-${nginxName}";
+
+          machine = { pkgs, ... }: {
+            services.nginx = {
+              enable = true;
+              virtualHosts.localhost.locations."/".return = "200 'foo'";
+              package = pkgs."${nginxName}";
+            };
+          };
+
+          testScript = ''
+            machine.wait_for_unit("nginx")
+            machine.wait_for_open_port(80)
+            machine.succeed('test "$(curl -fvvv http://localhost/)" = foo')
+          '';
+        };
+      }
+    )
+    [ "nginxStable" "nginxUnstable" "nginxShibboleth" "openresty" "tengine" ]
+)
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 283db71d9a4..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;
@@ -38,23 +35,45 @@ import ./make-test-python.nix (
       start_all()
 
 
-      with subtest("Run container as root"):
+      with subtest("Run container as root with runc"):
           podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg")
           podman.succeed(
-              "podman run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
+              "podman run --runtime=runc -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
           )
           podman.succeed("podman ps | grep sleeping")
           podman.succeed("podman stop sleeping")
+          podman.succeed("podman rm sleeping")
 
-      with subtest("Run container rootless"):
+      with subtest("Run container as root with crun"):
+          podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg")
+          podman.succeed(
+              "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("podman ps | grep sleeping")
+          podman.succeed("podman stop sleeping")
+          podman.succeed("podman rm sleeping")
+
+      with subtest("Run container rootless with runc"):
+          podman.succeed(su_cmd("tar cv --files-from /dev/null | podman import - scratchimg"))
+          podman.succeed(
+              su_cmd(
+                  "podman run --runtime=runc -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"))
+          podman.succeed(su_cmd("podman stop sleeping"))
+          podman.succeed(su_cmd("podman rm sleeping"))
+
+      with subtest("Run container rootless with crun"):
           podman.succeed(su_cmd("tar cv --files-from /dev/null | podman import - scratchimg"))
           podman.succeed(
               su_cmd(
-                  "podman run -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"))
           podman.succeed(su_cmd("podman stop sleeping"))
+          podman.succeed(su_cmd("podman rm 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..b3c2156122d
--- /dev/null
+++ b/nixos/tests/postfix-raise-smtpd-tls-security-level.nix
@@ -0,0 +1,44 @@
+let
+  certs = import ./common/acme/server/snakeoil-certs.nix;
+in
+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..b0674ca3a0d
--- /dev/null
+++ b/nixos/tests/postfix.nix
@@ -0,0 +1,76 @@
+let
+  certs = import ./common/acme/server/snakeoil-certs.nix;
+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."acme.test".cert;
+      sslKey = certs."acme.test".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 acme.test
+    '';
+
+    environment.systemPackages = let
+      sendTestMail = pkgs.writeScriptBin "send-testmail" ''
+        #!${pkgs.python3.interpreter}
+        import smtplib
+
+        with smtplib.SMTP('acme.test') 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('acme.test') 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='acme.test', 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..c50746aa838 100644
--- a/nixos/tests/postgresql-wal-receiver.nix
+++ b/nixos/tests/postgresql-wal-receiver.nix
@@ -28,6 +28,10 @@ let
     meta.maintainers = with maintainers; [ pacien ];
 
     machine = { ... }: {
+      # Needed because this test uses a non-default 'services.postgresql.dataDir'.
+      systemd.tmpfiles.rules = [
+        "d /var/db/postgresql 0700 postgres postgres"
+      ];
       services.postgresql = {
         package = postgresqlPackage;
         enable = true;
diff --git a/nixos/tests/privacyidea.nix b/nixos/tests/privacyidea.nix
new file mode 100644
index 00000000000..45c7cd37c24
--- /dev/null
+++ b/nixos/tests/privacyidea.nix
@@ -0,0 +1,36 @@
+# Miscellaneous small tests that don't warrant their own VM run.
+
+import ./make-test-python.nix ({ pkgs, ...} : rec {
+  name = "privacyidea";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ fpletz ];
+  };
+
+  machine = { ... }: {
+    virtualisation.cores = 2;
+    virtualisation.memorySize = 512;
+
+    services.privacyidea = {
+      enable = true;
+      secretKey = "testing";
+      pepper = "testing";
+      adminPasswordFile = pkgs.writeText "admin-password" "testing";
+      adminEmail = "root@localhost";
+    };
+    services.nginx = {
+      enable = true;
+      virtualHosts."_".locations."/".extraConfig = ''
+        uwsgi_pass unix:/run/privacyidea/socket;
+      '';
+    };
+  };
+
+  testScript = ''
+    machine.start()
+    machine.wait_for_unit("multi-user.target")
+    machine.succeed("curl --fail http://localhost | grep privacyIDEA")
+    machine.succeed(
+        "curl --fail http://localhost/auth -F username=admin -F password=testing | grep token"
+    )
+  '';
+})
diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix
index 4fc3668cfaf..b912e3425e0 100644
--- a/nixos/tests/prometheus-exporters.nix
+++ b/nixos/tests/prometheus-exporters.nix
@@ -56,6 +56,21 @@ let
  */
 
   exporterTests = {
+     apcupsd = {
+      exporterConfig = {
+        enable = true;
+      };
+      metricProvider = {
+        services.apcupsd.enable = true;
+      };
+      exporterTest = ''
+        wait_for_unit("apcupsd.service")
+        wait_for_open_port(3551)
+        wait_for_unit("prometheus-apcupsd-exporter.service")
+        wait_for_open_port(9162)
+        succeed("curl -sSf http://localhost:9162/metrics | grep -q 'apcupsd_info'")
+      '';
+    };
 
     bind = {
       exporterConfig = {
@@ -202,6 +217,69 @@ let
       '';
     };
 
+    keylight = {
+      # A hardware device is required to properly test this exporter, so just
+      # perform a couple of basic sanity checks that the exporter is running
+      # and requires a target, but cannot reach a specified target.
+      exporterConfig = {
+        enable = true;
+      };
+      exporterTest = ''
+        wait_for_unit("prometheus-keylight-exporter.service")
+        wait_for_open_port(9288)
+        succeed(
+            "curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics | grep -q '400'"
+        )
+        succeed(
+            "curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics?target=nosuchdevice | grep -q '500'"
+        )
+      '';
+    };
+
+    lnd = {
+      exporterConfig = {
+        enable = true;
+        lndTlsPath = "/var/lib/lnd/tls.cert";
+        lndMacaroonDir = "/var/lib/lnd";
+      };
+      metricProvider = {
+        systemd.services.prometheus-lnd-exporter.serviceConfig.DynamicUser = false;
+        services.bitcoind.enable = true;
+        services.bitcoind.extraConfig = ''
+          rpcauth=bitcoinrpc:e8fe33f797e698ac258c16c8d7aadfbe$872bdb8f4d787367c26bcfd75e6c23c4f19d44a69f5d1ad329e5adf3f82710f7
+          bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332
+          bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333
+        '';
+        systemd.services.lnd = {
+          serviceConfig.ExecStart = ''
+          ${pkgs.lnd}/bin/lnd \
+            --datadir=/var/lib/lnd \
+            --tlscertpath=/var/lib/lnd/tls.cert \
+            --tlskeypath=/var/lib/lnd/tls.key \
+            --logdir=/var/log/lnd \
+            --bitcoin.active \
+            --bitcoin.mainnet \
+            --bitcoin.node=bitcoind \
+            --bitcoind.rpcuser=bitcoinrpc \
+            --bitcoind.rpcpass=hunter2 \
+            --bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332 \
+            --bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333 \
+            --readonlymacaroonpath=/var/lib/lnd/readonly.macaroon
+          '';
+          serviceConfig.StateDirectory = "lnd";
+          wantedBy = [ "multi-user.target" ];
+          after = [ "network.target" ];
+        };
+      };
+      exporterTest = ''
+        wait_for_unit("lnd.service")
+        wait_for_open_port(10009)
+        wait_for_unit("prometheus-lnd-exporter.service")
+        wait_for_open_port(9092)
+        succeed("curl -sSf localhost:9092/metrics | grep -q '^promhttp_metric_handler'")
+      '';
+    };
+
     mail = {
       exporterConfig = {
         enable = true;
@@ -285,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;
@@ -397,6 +500,20 @@ let
       '';
     };
 
+    redis = {
+      exporterConfig = {
+        enable = true;
+      };
+      metricProvider.services.redis.enable = true;
+      exporterTest = ''
+        wait_for_unit("redis.service")
+        wait_for_unit("prometheus-redis-exporter.service")
+        wait_for_open_port(6379)
+        wait_for_open_port(9121)
+        wait_until_succeeds("curl -sSf localhost:9121/metrics | grep -q 'redis_up 1'")
+      '';
+    };
+
     rspamd = {
       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/qboot.nix b/nixos/tests/qboot.nix
new file mode 100644
index 00000000000..12aef6decfa
--- /dev/null
+++ b/nixos/tests/qboot.nix
@@ -0,0 +1,13 @@
+import ./make-test-python.nix ({ pkgs, ...} : {
+  name = "qboot";
+
+  machine = { ... }: {
+    virtualisation.bios = pkgs.qboot;
+  };
+
+  testScript =
+    ''
+      start_all()
+      machine.wait_for_unit("multi-user.target")
+    '';
+})
diff --git a/nixos/tests/radicale.nix b/nixos/tests/radicale.nix
index c81e78a8f99..1d3679c82a2 100644
--- a/nixos/tests/radicale.nix
+++ b/nixos/tests/radicale.nix
@@ -14,9 +14,6 @@ let
 
         [storage]
         filesystem_folder = /tmp/collections
-
-        [logging]
-        debug = True
       '';
     };
     # WARNING: DON'T DO THIS IN PRODUCTION!
@@ -49,13 +46,18 @@ in
         services.radicale.extraArgs = [
           "--export-storage" "/tmp/collections-new"
         ];
+        system.stateVersion = "17.03";
       };
       radicale2_verify = lib.recursiveUpdate radicale2 {
-        services.radicale.extraArgs = [ "--verify-storage" ];
+        services.radicale.extraArgs = [ "--debug" "--verify-storage" ];
+        system.stateVersion = "17.09";
       };
       radicale2 = lib.recursiveUpdate (common args) {
         system.stateVersion = "17.09";
       };
+      radicale3 = lib.recursiveUpdate (common args) {
+        system.stateVersion = "20.09";
+      };
     };
 
     # This tests whether the web interface is accessible to an authenticated user
@@ -117,6 +119,22 @@ in
               retcode == 0 and "VCALENDAR" in output
           ), "Could not read calendar from Radicale 2"
 
-      radicale.succeed("curl --fail http://${user}:${password}@localhost:${port}/.web/")
+          radicale.succeed("curl --fail http://${user}:${password}@localhost:${port}/.web/")
+
+      with subtest("Check Radicale 3 functionality"):
+          radicale.succeed(
+              "${switchToConfig "radicale3"} >&2"
+          )
+          radicale.wait_for_unit("radicale.service")
+          radicale.wait_for_open_port(${port})
+
+          (retcode, output) = radicale.execute(
+              "curl --fail http://${user}:${password}@localhost:${port}/someuser/calendar.ics/"
+          )
+          assert (
+              retcode == 0 and "VCALENDAR" in output
+          ), "Could not read calendar from Radicale 3"
+
+          radicale.succeed("curl --fail http://${user}:${password}@localhost:${port}/.web/")
     '';
 })
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/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/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/sogo.nix b/nixos/tests/sogo.nix
new file mode 100644
index 00000000000..016331a9eed
--- /dev/null
+++ b/nixos/tests/sogo.nix
@@ -0,0 +1,58 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "sogo";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ ajs124 das_j ];
+  };
+
+  nodes = {
+    sogo = { config, pkgs, ... }: {
+      services.nginx.enable = true;
+
+      services.mysql = {
+        enable = true;
+        package = pkgs.mysql;
+        ensureDatabases = [ "sogo" ];
+        ensureUsers = [{
+          name = "sogo";
+          ensurePermissions = {
+            "sogo.*" = "ALL PRIVILEGES";
+          };
+        }];
+      };
+
+      services.sogo = {
+        enable = true;
+        timezone = "Europe/Berlin";
+        extraConfig = ''
+          WOWorkersCount = 1;
+
+          SOGoUserSources = (
+            {
+              type = sql;
+              userPasswordAlgorithm = md5;
+              viewURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_users";
+              canAuthenticate = YES;
+              id = users;
+            }
+          );
+
+          SOGoProfileURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_user_profile";
+          OCSFolderInfoURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_folder_info";
+          OCSSessionsFolderURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_sessions_folder";
+          OCSEMailAlarmsFolderURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_alarms_folder";
+          OCSStoreURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_store";
+          OCSAclURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_acl";
+          OCSCacheFolderURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_cache_folder";
+        '';
+      };
+    };
+  };
+
+  testScript = ''
+    start_all()
+    sogo.wait_for_unit("multi-user.target")
+    sogo.wait_for_open_port(20000)
+    sogo.wait_for_open_port(80)
+    sogo.succeed("curl -sSfL http://sogo/SOGo")
+  '';
+})
diff --git a/nixos/tests/sslh.nix b/nixos/tests/sslh.nix
new file mode 100644
index 00000000000..2a800aa52d0
--- /dev/null
+++ b/nixos/tests/sslh.nix
@@ -0,0 +1,83 @@
+import ./make-test-python.nix {
+  name = "sslh";
+
+  nodes = {
+    server = { pkgs, lib, ... }: {
+      networking.firewall.allowedTCPPorts = [ 443 ];
+      networking.interfaces.eth1.ipv6.addresses = [
+        {
+          address = "fe00:aa:bb:cc::2";
+          prefixLength = 64;
+        }
+      ];
+      # sslh is really slow when reverse dns does not work
+      networking.hosts = {
+        "fe00:aa:bb:cc::2" = [ "server" ];
+        "fe00:aa:bb:cc::1" = [ "client" ];
+      };
+      services.sslh = {
+        enable = true;
+        transparent = true;
+        appendConfig = ''
+          protocols:
+          (
+            { name: "ssh"; service: "ssh"; host: "localhost"; port: "22"; probe: "builtin"; },
+            { name: "http"; host: "localhost"; port: "80"; probe: "builtin"; },
+          );
+        '';
+      };
+      services.openssh.enable = true;
+      users.users.root.openssh.authorizedKeys.keyFiles = [ ./initrd-network-ssh/id_ed25519.pub ];
+      services.nginx = {
+        enable = true;
+        virtualHosts."localhost" = {
+          addSSL = false;
+          default = true;
+          root = pkgs.runCommand "testdir" {} ''
+            mkdir "$out"
+            echo hello world > "$out/index.html"
+          '';
+        };
+      };
+    };
+    client = { ... }: {
+      networking.interfaces.eth1.ipv6.addresses = [
+        {
+          address = "fe00:aa:bb:cc::1";
+          prefixLength = 64;
+        }
+      ];
+      networking.hosts."fe00:aa:bb:cc::2" = [ "server" ];
+      environment.etc.sshKey = {
+        source = ./initrd-network-ssh/id_ed25519; # dont use this anywhere else
+        mode = "0600";
+      };
+    };
+  };
+
+  testScript = ''
+    start_all()
+
+    server.wait_for_unit("sslh.service")
+    server.wait_for_unit("nginx.service")
+    server.wait_for_unit("sshd.service")
+    server.wait_for_open_port(80)
+    server.wait_for_open_port(443)
+    server.wait_for_open_port(22)
+
+    for arg in ["-6", "-4"]:
+        client.wait_until_succeeds(f"ping {arg} -c1 server")
+
+        # check that ssh through sslh works
+        client.succeed(
+            f"ssh {arg} -p 443 -i /etc/sshKey -o StrictHostKeyChecking=accept-new server 'echo $SSH_CONNECTION > /tmp/foo{arg}'"
+        )
+
+        # check that 1/ the above ssh command had an effect 2/ transparent proxying really works
+        ip = "fe00:aa:bb:cc::1" if arg == "-6" else "192.168.1."
+        server.succeed(f"grep '{ip}' /tmp/foo{arg}")
+
+        # check that http through sslh works
+        assert client.succeed(f"curl {arg} http://server:443").strip() == "hello world"
+  '';
+}
diff --git a/nixos/tests/sudo.nix b/nixos/tests/sudo.nix
index 5bbec3d5726..8c38f1b47ef 100644
--- a/nixos/tests/sudo.nix
+++ b/nixos/tests/sudo.nix
@@ -74,7 +74,7 @@ in
         with subtest("test5 user should not be able to run commands under root"):
             machine.fail("sudo -u test5 sudo -n -u root true")
 
-        with subtest("test5 user should be able to keep his environment"):
+        with subtest("test5 user should be able to keep their environment"):
             machine.succeed("sudo -u test5 sudo -n -E -u test1 true")
 
         with subtest("users in group 'barfoo' should not be able to keep their environment"):
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-binfmt.nix b/nixos/tests/systemd-binfmt.nix
new file mode 100644
index 00000000000..2a676f3da98
--- /dev/null
+++ b/nixos/tests/systemd-binfmt.nix
@@ -0,0 +1,24 @@
+# Teach the kernel how to run armv7l and aarch64-linux binaries,
+# and run GNU Hello for these architectures.
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "systemd-binfmt";
+  machine = {
+    boot.binfmt.emulatedSystems = [
+      "armv7l-linux"
+      "aarch64-linux"
+    ];
+  };
+
+  testScript = let
+    helloArmv7l = pkgs.pkgsCross.armv7l-hf-multiplatform.hello;
+    helloAarch64 = pkgs.pkgsCross.aarch64-multiplatform.hello;
+  in ''
+    machine.start()
+    assert "world" in machine.succeed(
+        "${helloArmv7l}/bin/hello"
+    )
+    assert "world" in machine.succeed(
+        "${helloAarch64}/bin/hello"
+    )
+  '';
+})
diff --git a/nixos/tests/systemd-boot.nix b/nixos/tests/systemd-boot.nix
index e911c393361..7a663dd9b42 100644
--- a/nixos/tests/systemd-boot.nix
+++ b/nixos/tests/systemd-boot.nix
@@ -6,26 +6,85 @@
 with import ../lib/testing-python.nix { inherit system pkgs; };
 with pkgs.lib;
 
-makeTest {
-  name = "systemd-boot";
-  meta.maintainers = with pkgs.stdenv.lib.maintainers; [ danielfullmer ];
-
-  machine = { pkgs, lib, ... }: {
+let
+  common = {
     virtualisation.useBootLoader = true;
     virtualisation.useEFIBoot = true;
     boot.loader.systemd-boot.enable = true;
+    boot.loader.efi.canTouchEfiVariables = true;
+    environment.systemPackages = [ pkgs.efibootmgr ];
   };
+in
+{
+  basic = makeTest {
+    name = "systemd-boot";
+    meta.maintainers = with pkgs.stdenv.lib.maintainers; [ danielfullmer ];
+
+    machine = common;
+
+    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 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")
+    testScript = ''
+      machine.start()
+      machine.wait_for_unit("multi-user.target")
 
-    machine.succeed("test -e /boot/loader/entries/nixos-generation-1.conf")
+      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"
-    )
-  '';
+      # 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"')
+    '';
+  };
+
+  update = makeTest {
+    name = "systemd-boot-update";
+    meta.maintainers = with pkgs.stdenv.lib.maintainers; [ danielfullmer ];
+
+    machine = common;
+
+    testScript = ''
+      machine.succeed("mount -o remount,rw /boot")
+
+      # Replace version inside sd-boot with something older. See magic[] string in systemd src/boot/efi/boot.c
+      machine.succeed(
+          """
+        find /boot -iname '*.efi' -print0 | \
+        xargs -0 -I '{}' sed -i 's/#### LoaderInfo: systemd-boot .* ####/#### LoaderInfo: systemd-boot 001 ####/' '{}'
+      """
+      )
+
+      output = machine.succeed("/run/current-system/bin/switch-to-configuration boot")
+      assert "updating systemd-boot from 001 to " in output
+    '';
+  };
 }
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.nix b/nixos/tests/systemd.nix
index ca2e36a443e..9d21f9158f3 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,40 @@ 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
+        assert "RebootWatchdogUSec=10m" in output
+        assert "KExecWatchdogUSec=5m" 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 ab9b589f859..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,186 +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];
-      my $cmd = "gnutls-cli".
-        " --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/teeworlds.nix b/nixos/tests/teeworlds.nix
new file mode 100644
index 00000000000..edf58896878
--- /dev/null
+++ b/nixos/tests/teeworlds.nix
@@ -0,0 +1,55 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+let
+  client =
+    { pkgs, ... }:
+
+    { imports = [ ./common/x11.nix ];
+      environment.systemPackages = [ pkgs.teeworlds ];
+    };
+
+in {
+  name = "teeworlds";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ hax404 ];
+  };
+
+  nodes =
+    { server =
+      { services.teeworlds = {
+          enable = true;
+          openPorts = true;
+        };
+      };
+
+      client1 = client;
+      client2 = client;
+    };
+
+    testScript =
+    ''
+      start_all()
+
+      server.wait_for_unit("teeworlds.service")
+      server.wait_until_succeeds("ss --numeric --udp --listening | grep -q 8303")
+
+      client1.wait_for_x()
+      client2.wait_for_x()
+
+      client1.execute("teeworlds 'player_name Alice;connect server'&")
+      server.wait_until_succeeds(
+          'journalctl -u teeworlds -e | grep --extended-regexp -q "team_join player=\'[0-9]:Alice"'
+      )
+
+      client2.execute("teeworlds 'player_name Bob;connect server'&")
+      server.wait_until_succeeds(
+          'journalctl -u teeworlds -e | grep --extended-regexp -q "team_join player=\'[0-9]:Bob"'
+      )
+
+      server.sleep(10)  # wait for a while to get a nice screenshot
+
+      client1.screenshot("screen_client1")
+      client2.screenshot("screen_client2")
+    '';
+
+})
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 8d908a52249..b7b3dd31942 100644
--- a/nixos/tests/trezord.nix
+++ b/nixos/tests/trezord.nix
@@ -1,9 +1,8 @@
 import ./make-test-python.nix ({ pkgs, ... }: {
   name = "trezord";
-  meta = with pkgs.stdenv.lib.maintainers; {
-    maintainers = [ mmahut "1000101" ];
+  meta = with pkgs.stdenv.lib; {
+    maintainers = with maintainers; [ mmahut _1000101 ];
   };
-
   nodes = {
     machine = { ... }: {
       services.trezord.enable = true;
diff --git a/nixos/tests/trickster.nix b/nixos/tests/trickster.nix
index e2ca00980d5..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; {
-    maintainers = [ "1000101" ];
+  meta = with pkgs.stdenv.lib; {
+    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..af76e6f9844 100644
--- a/nixos/tests/virtualbox.nix
+++ b/nixos/tests/virtualbox.nix
@@ -198,7 +198,6 @@ 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";
       };
diff --git a/nixos/tests/wasabibackend.nix b/nixos/tests/wasabibackend.nix
new file mode 100644
index 00000000000..d169ad15272
--- /dev/null
+++ b/nixos/tests/wasabibackend.nix
@@ -0,0 +1,38 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "wasabibackend";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ mmahut ];
+  };
+
+  nodes = {
+    machine = { ... }: {
+      services.wasabibackend = {
+        enable = true;
+        network = "testnet";
+        rpc = {
+          user = "alice";
+          port = 18332;
+        };
+      };
+      services.bitcoind = {
+        enable = true;
+        testnet = true;
+        rpc.users = {
+          alice.passwordHMAC = "e7096bc21da60b29ecdbfcdb2c3acc62$f948e61cb587c399358ed99c6ed245a41460b4bf75125d8330c9f6fcc13d7ae7";
+        };
+      };
+    };
+  };
+
+  testScript = ''
+    start_all()
+    machine.wait_for_unit("wasabibackend.service")
+    machine.wait_until_succeeds(
+        "grep 'Wasabi Backend started' /var/lib/wasabibackend/.walletwasabi/backend/Logs.txt"
+    )
+    machine.sleep(5)
+    machine.succeed(
+        "grep 'Config is successfully initialized' /var/lib/wasabibackend/.walletwasabi/backend/Logs.txt"
+    )
+  '';
+})
diff --git a/nixos/tests/web-servers/unit-php.nix b/nixos/tests/web-servers/unit-php.nix
index c6327a1f825..2a0a5bdaa5d 100644
--- a/nixos/tests/web-servers/unit-php.nix
+++ b/nixos/tests/web-servers/unit-php.nix
@@ -23,7 +23,10 @@ in {
               "user": "testuser",
               "group": "testgroup",
               "root": "${testdir}/www",
-              "index": "info.php"
+              "index": "info.php",
+              "options": {
+                "file": "${pkgs.unit.usedPhp74}/lib/php.ini"
+              }
             }
           }
         }
@@ -42,6 +45,13 @@ in {
   };
   testScript = ''
     machine.wait_for_unit("unit.service")
-    assert "PHP Version ${pkgs.php74.version}" in machine.succeed("curl -vvv -s http://127.0.0.1:9074/")
+
+    # Check so we get an evaluated PHP back
+    response = machine.succeed("curl -vvv -s http://127.0.0.1:9074/")
+    assert "PHP Version ${pkgs.unit.usedPhp74.version}" in response, "PHP version not detected"
+
+    # Check so we have database and some other extensions loaded
+    for ext in ["json", "opcache", "pdo_mysql", "pdo_pgsql", "pdo_sqlite"]:
+        assert ext in response, f"Missing {ext} extension"
   '';
 })
diff --git a/nixos/tests/wireguard/basic.nix b/nixos/tests/wireguard/basic.nix
new file mode 100644
index 00000000000..25d706ae2e5
--- /dev/null
+++ b/nixos/tests/wireguard/basic.nix
@@ -0,0 +1,74 @@
+{ kernelPackages ? null }:
+import ../make-test-python.nix ({ pkgs, lib, ...} :
+  let
+    wg-snakeoil-keys = import ./snakeoil-keys.nix;
+    peer = (import ./make-peer.nix) { inherit lib; };
+  in
+  {
+    name = "wireguard";
+    meta = with pkgs.stdenv.lib.maintainers; {
+      maintainers = [ ma27 ];
+    };
+
+    nodes = {
+      peer0 = peer {
+        ip4 = "192.168.0.1";
+        ip6 = "fd00::1";
+        extraConfig = {
+          boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
+          networking.firewall.allowedUDPPorts = [ 23542 ];
+          networking.wireguard.interfaces.wg0 = {
+            ips = [ "10.23.42.1/32" "fc00::1/128" ];
+            listenPort = 23542;
+
+            inherit (wg-snakeoil-keys.peer0) privateKey;
+
+            peers = lib.singleton {
+              allowedIPs = [ "10.23.42.2/32" "fc00::2/128" ];
+
+              inherit (wg-snakeoil-keys.peer1) publicKey;
+            };
+          };
+        };
+      };
+
+      peer1 = peer {
+        ip4 = "192.168.0.2";
+        ip6 = "fd00::2";
+        extraConfig = {
+          boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
+          networking.wireguard.interfaces.wg0 = {
+            ips = [ "10.23.42.2/32" "fc00::2/128" ];
+            listenPort = 23542;
+            allowedIPsAsRoutes = false;
+
+            inherit (wg-snakeoil-keys.peer1) privateKey;
+
+            peers = lib.singleton {
+              allowedIPs = [ "0.0.0.0/0" "::/0" ];
+              endpoint = "192.168.0.1:23542";
+              persistentKeepalive = 25;
+
+              inherit (wg-snakeoil-keys.peer0) publicKey;
+            };
+
+            postSetup = let inherit (pkgs) iproute; in ''
+              ${iproute}/bin/ip route replace 10.23.42.1/32 dev wg0
+              ${iproute}/bin/ip route replace fc00::1/128 dev wg0
+            '';
+          };
+        };
+      };
+    };
+
+    testScript = ''
+      start_all()
+
+      peer0.wait_for_unit("wireguard-wg0.service")
+      peer1.wait_for_unit("wireguard-wg0.service")
+
+      peer1.succeed("ping -c5 fc00::1")
+      peer1.succeed("ping -c5 10.23.42.1")
+    '';
+  }
+)
diff --git a/nixos/tests/wireguard/default.nix b/nixos/tests/wireguard/default.nix
index e3bc31c600f..dedb321ff2e 100644
--- a/nixos/tests/wireguard/default.nix
+++ b/nixos/tests/wireguard/default.nix
@@ -1,71 +1,27 @@
-import ../make-test-python.nix ({ pkgs, lib, ...} :
-  let
-    wg-snakeoil-keys = import ./snakeoil-keys.nix;
-    peer = (import ./make-peer.nix) { inherit lib; };
-  in
-  {
-    name = "wireguard";
-    meta = with pkgs.stdenv.lib.maintainers; {
-      maintainers = [ ma27 ];
-    };
-
-    nodes = {
-      peer0 = peer {
-        ip4 = "192.168.0.1";
-        ip6 = "fd00::1";
-        extraConfig = {
-          networking.firewall.allowedUDPPorts = [ 23542 ];
-          networking.wireguard.interfaces.wg0 = {
-            ips = [ "10.23.42.1/32" "fc00::1/128" ];
-            listenPort = 23542;
-
-            inherit (wg-snakeoil-keys.peer0) privateKey;
-
-            peers = lib.singleton {
-              allowedIPs = [ "10.23.42.2/32" "fc00::2/128" ];
-
-              inherit (wg-snakeoil-keys.peer1) publicKey;
-            };
-          };
-        };
-      };
-
-      peer1 = peer {
-        ip4 = "192.168.0.2";
-        ip6 = "fd00::2";
-        extraConfig = {
-          networking.wireguard.interfaces.wg0 = {
-            ips = [ "10.23.42.2/32" "fc00::2/128" ];
-            listenPort = 23542;
-            allowedIPsAsRoutes = false;
-
-            inherit (wg-snakeoil-keys.peer1) privateKey;
-
-            peers = lib.singleton {
-              allowedIPs = [ "0.0.0.0/0" "::/0" ];
-              endpoint = "192.168.0.1:23542";
-              persistentKeepalive = 25;
-
-              inherit (wg-snakeoil-keys.peer0) publicKey;
-            };
-
-            postSetup = let inherit (pkgs) iproute; in ''
-              ${iproute}/bin/ip route replace 10.23.42.1/32 dev wg0
-              ${iproute}/bin/ip route replace fc00::1/128 dev wg0
-            '';
-          };
-        };
-      };
-    };
-
-    testScript = ''
-      start_all()
-
-      peer0.wait_for_unit("wireguard-wg0.service")
-      peer1.wait_for_unit("wireguard-wg0.service")
-
-      peer1.succeed("ping -c5 fc00::1")
-      peer1.succeed("ping -c5 10.23.42.1")
-    '';
-  }
+{ system ? builtins.currentSystem
+, config ? { }
+, pkgs ? import ../../.. { inherit system config; }
+, kernelVersionsToTest ? [ "5.4" "latest" ]
+}:
+
+with pkgs.lib;
+
+let
+  tests = let callTest = p: flip (import p) { inherit system pkgs; }; in {
+    basic = callTest ./basic.nix;
+    namespaces = callTest ./namespaces.nix;
+    wg-quick = callTest ./wg-quick.nix;
+    generated = callTest ./generated.nix;
+  };
+in
+
+listToAttrs (
+  flip concatMap kernelVersionsToTest (version:
+    let
+      v' = replaceStrings [ "." ] [ "_" ] version;
+    in
+    flip mapAttrsToList tests (name: test:
+      nameValuePair "wireguard-${name}-linux-${v'}" (test { kernelPackages = pkgs."linuxPackages_${v'}"; })
+    )
+  )
 )
diff --git a/nixos/tests/wireguard/generated.nix b/nixos/tests/wireguard/generated.nix
index a29afd2d466..cdf15483265 100644
--- a/nixos/tests/wireguard/generated.nix
+++ b/nixos/tests/wireguard/generated.nix
@@ -1,4 +1,5 @@
-import ../make-test-python.nix ({ pkgs, ...} : {
+{ kernelPackages ? null }:
+import ../make-test-python.nix ({ pkgs, lib, ... } : {
   name = "wireguard-generated";
   meta = with pkgs.stdenv.lib.maintainers; {
     maintainers = [ ma27 grahamc ];
@@ -6,6 +7,7 @@ import ../make-test-python.nix ({ pkgs, ...} : {
 
   nodes = {
     peer1 = {
+      boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
       networking.firewall.allowedUDPPorts = [ 12345 ];
       networking.wireguard.interfaces.wg0 = {
         ips = [ "10.10.10.1/24" ];
@@ -17,6 +19,7 @@ import ../make-test-python.nix ({ pkgs, ...} : {
     };
 
     peer2 = {
+      boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
       networking.firewall.allowedUDPPorts = [ 12345 ];
       networking.wireguard.interfaces.wg0 = {
         ips = [ "10.10.10.2/24" ];
diff --git a/nixos/tests/wireguard/namespaces.nix b/nixos/tests/wireguard/namespaces.nix
index c8a4e3bb52a..c47175ceafc 100644
--- a/nixos/tests/wireguard/namespaces.nix
+++ b/nixos/tests/wireguard/namespaces.nix
@@ -1,3 +1,5 @@
+{ kernelPackages ? null }:
+
 let
   listenPort = 12345;
   socketNamespace = "foo";
@@ -13,7 +15,7 @@ let
 
 in
 
-import ../make-test-python.nix ({ pkgs, ...} : {
+import ../make-test-python.nix ({ pkgs, lib, ... } : {
   name = "wireguard-with-namespaces";
   meta = with pkgs.stdenv.lib.maintainers; {
     maintainers = [ asymmetric ];
@@ -23,6 +25,7 @@ import ../make-test-python.nix ({ pkgs, ...} : {
     # interface should be created in the socketNamespace
     # and not moved from there
     peer0 = pkgs.lib.attrsets.recursiveUpdate node {
+      boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
       networking.wireguard.interfaces.wg0 = {
         preSetup = ''
           ip netns add ${socketNamespace}
@@ -33,6 +36,7 @@ import ../make-test-python.nix ({ pkgs, ...} : {
     # interface should be created in the init namespace
     # and moved to the interfaceNamespace
     peer1 = pkgs.lib.attrsets.recursiveUpdate node {
+      boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
       networking.wireguard.interfaces.wg0 = {
         preSetup = ''
           ip netns add ${interfaceNamespace}
@@ -43,6 +47,7 @@ import ../make-test-python.nix ({ pkgs, ...} : {
     # interface should be created in the socketNamespace
     # and moved to the interfaceNamespace
     peer2 = pkgs.lib.attrsets.recursiveUpdate node {
+      boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
       networking.wireguard.interfaces.wg0 = {
         preSetup = ''
           ip netns add ${socketNamespace}
@@ -54,6 +59,7 @@ import ../make-test-python.nix ({ pkgs, ...} : {
     # interface should be created in the socketNamespace
     # and moved to the init namespace
     peer3 = pkgs.lib.attrsets.recursiveUpdate node {
+      boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
       networking.wireguard.interfaces.wg0 = {
         preSetup = ''
           ip netns add ${socketNamespace}
diff --git a/nixos/tests/wireguard/wg-quick.nix b/nixos/tests/wireguard/wg-quick.nix
index 7354dd01a34..5472d21cd1e 100644
--- a/nixos/tests/wireguard/wg-quick.nix
+++ b/nixos/tests/wireguard/wg-quick.nix
@@ -1,3 +1,5 @@
+{ kernelPackages ? null }:
+
 import ../make-test-python.nix ({ pkgs, lib, ... }:
   let
     wg-snakeoil-keys = import ./snakeoil-keys.nix;
@@ -14,6 +16,7 @@ import ../make-test-python.nix ({ pkgs, lib, ... }:
         ip4 = "192.168.0.1";
         ip6 = "fd00::1";
         extraConfig = {
+          boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
           networking.firewall.allowedUDPPorts = [ 23542 ];
           networking.wg-quick.interfaces.wg0 = {
             address = [ "10.23.42.1/32" "fc00::1/128" ];
@@ -34,6 +37,7 @@ import ../make-test-python.nix ({ pkgs, lib, ... }:
         ip4 = "192.168.0.2";
         ip6 = "fd00::2";
         extraConfig = {
+          boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
           networking.wg-quick.interfaces.wg0 = {
             address = [ "10.23.42.2/32" "fc00::2/128" ];
             inherit (wg-snakeoil-keys.peer1) privateKey;
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 468fcf67127..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.
@@ -85,6 +122,7 @@ in import ./make-test-python.nix ({ pkgs, ...} : {
             MulticastInterfaces = [ "eth1" ];
             LinkLocalTCPPort = 43210;
           };
+          persistentKeys = true;
         };
       };
     };
@@ -99,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"
@@ -116,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/nixos/tests/zoneminder.nix b/nixos/tests/zoneminder.nix
new file mode 100644
index 00000000000..a4e1a05ec0e
--- /dev/null
+++ b/nixos/tests/zoneminder.nix
@@ -0,0 +1,23 @@
+import ./make-test-python.nix ({ lib, ...}:
+
+{
+  name = "zoneminder";
+  meta.maintainers = with lib.maintainers; [ danielfullmer ];
+
+  machine = { ... }:
+  {
+    services.zoneminder = {
+      enable = true;
+      database.createLocally = true;
+      database.username = "zoneminder";
+    };
+    time.timeZone = "America/New_York";
+  };
+
+  testScript = ''
+    machine.wait_for_unit("zoneminder.service")
+    machine.wait_for_unit("nginx.service")
+    machine.wait_for_open_port(8095)
+    machine.succeed("curl --fail http://localhost:8095/")
+  '';
+})
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/aeolus/default.nix b/pkgs/applications/audio/aeolus/default.nix
index bfd75b4e75c..c4982025999 100644
--- a/pkgs/applications/audio/aeolus/default.nix
+++ b/pkgs/applications/audio/aeolus/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "aeolus";
-  version = "0.9.8";
+  version = "0.9.9";
 
   src = fetchurl {
     url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "1zfr3567mwbqsfybkhg03n5dvmhllk88c9ayb10qzz2nh6d7g2qn";
+    sha256 = "04y1j36y7vc93bv299vfiawbww4ym6q7avfx8vw6rmxr817zrch3";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/audio/amarok/default.nix b/pkgs/applications/audio/amarok/default.nix
index 25fceb357cc..063cfcaa9fa 100644
--- a/pkgs/applications/audio/amarok/default.nix
+++ b/pkgs/applications/audio/amarok/default.nix
@@ -3,21 +3,21 @@
 , qca-qt5, qjson, qtquickcontrols2, qtscript, qtwebengine
 , karchive, kcmutils, kconfig, kdnssd, kguiaddons, kinit, kirigami2, knewstuff, knotifyconfig, ktexteditor, kwindowsystem
 , fftw, phonon, plasma-framework, threadweaver
-, curl, ffmpeg, gdk-pixbuf, libaio, libmtp, loudmouth, lzo, lz4, mysql57, pcre, snappy, taglib, taglib_extras
+, curl, ffmpeg_3, gdk-pixbuf, libaio, liblastfm, libmtp, loudmouth, lzo, lz4, mysql57, pcre, snappy, taglib, taglib_extras
 }:
 
 mkDerivation rec {
-  pname = "amarok";
-  version = "2.9.0-20190824";
+  pname = "amarok-unstable";
+  version = "2020-06-12";
 
   src = fetchgit {
     # master has the Qt5 version as of April 2018 but a formal release has not
     # yet been made so change this back to the proper upstream when such a
     # release is out
-    url    = "git://anongit.kde.org/amarok.git";
+    url    = "https://invent.kde.org/multimedia/amarok.git";
     # url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
-    rev    = "457fbda25a85a102bfda92aa7137e7ef5e4c8b00";
-    sha256 = "1ig2mg8pqany6m2zplkrvldcv4ibxwsypnyv5igm7nz7ax82cd5j";
+    rev    = "fece39b0e81db310b6a6e08f93d83b0d498cd02b";
+    sha256 = "12casnq6w5yp2jlvnr466pjpkn0vriry8jzfq2qkjl564y0vhy9x";
   };
 
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
@@ -26,7 +26,7 @@ mkDerivation rec {
     qca-qt5 qjson qtquickcontrols2 qtscript qtwebengine
     karchive kcmutils kconfig kdnssd kguiaddons kinit kirigami2 knewstuff knotifyconfig ktexteditor kwindowsystem
     phonon plasma-framework threadweaver
-    curl fftw ffmpeg gdk-pixbuf libaio libmtp loudmouth lz4 lzo mysql57.server mysql57.server.static
+    curl fftw ffmpeg_3 gdk-pixbuf libaio liblastfm libmtp loudmouth lz4 lzo mysql57.server mysql57.server.static
     pcre snappy taglib taglib_extras
   ];
 
diff --git a/pkgs/applications/audio/ardour/5.nix b/pkgs/applications/audio/ardour/5.nix
new file mode 100644
index 00000000000..86879e4e5bd
--- /dev/null
+++ b/pkgs/applications/audio/ardour/5.nix
@@ -0,0 +1,162 @@
+{ stdenv
+, fetchgit
+, alsaLib
+, aubio
+, boost
+, cairomm
+, curl
+, doxygen
+, fftwSinglePrec
+, flac
+, glibc
+, glibmm
+, graphviz
+, gtkmm2
+, libjack2
+, liblo
+, libogg
+, libsamplerate
+, libsigcxx
+, libsndfile
+, libusb1
+, fluidsynth_1
+, hidapi
+, libltc
+, qm-dsp
+, libxml2
+, lilv
+, lrdf
+, lv2
+, perl
+, pkg-config
+, itstool
+, python2
+, rubberband
+, serd
+, sord
+, sratom
+, taglib
+, vamp-plugin-sdk
+, dbus
+, fftw
+, pango
+, suil
+, libarchive
+, wafHook
+}:
+let
+  # Ardour git repo uses a mix of annotated and lightweight tags. Annotated
+  # tags are used for MAJOR.MINOR versioning, and lightweight tags are used
+  # in-between; MAJOR.MINOR.REV where REV is the number of commits since the
+  # last annotated tag. A slightly different version string format is needed
+  # for the 'revision' info that is built into the binary; it is the format of
+  # "git describe" when _not_ on an annotated tag(!): MAJOR.MINOR-REV-HASH.
+
+  # Version to build.
+  tag = "5.12";
+in stdenv.mkDerivation rec {
+  pname = "ardour_5";
+  version = "5.12";
+
+  src = fetchgit {
+    url = "git://git.ardour.org/ardour/ardour.git";
+    rev = "ae0dcdc0c5d13483271065c360e378202d20170a";
+    sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr";
+  };
+
+  nativeBuildInputs = [
+    wafHook
+    pkg-config
+    itstool
+    doxygen
+    graphviz # for dot
+    perl
+    python2
+  ];
+
+  buildInputs = [
+    alsaLib
+    aubio
+    boost
+    cairomm
+    curl
+    dbus
+    fftw
+    fftwSinglePrec
+    flac
+    glibmm
+    gtkmm2
+    libjack2
+    liblo
+    libogg
+    libsamplerate
+    libsigcxx
+    libsndfile
+    libusb1
+    fluidsynth_1
+    hidapi
+    libltc
+    qm-dsp
+    libxml2
+    lilv
+    lrdf
+    lv2
+    pango
+    rubberband
+    serd
+    sord
+    sratom
+    suil
+    taglib
+    vamp-plugin-sdk
+    libarchive
+  ];
+
+  wafConfigureFlags = [
+    "--optimize"
+    "--docs"
+    "--use-external-libs"
+    "--freedesktop"
+    "--with-backends=jack,alsa,dummy"
+  ];
+
+  NIX_CFLAGS_COMPILE = "-I${qm-dsp}/include/qm-dsp";
+
+  # ardour's wscript has a "tarball" target but that required the git revision
+  # be available. Since this is an unzipped tarball fetched from github we
+  # have to do that ourself.
+  postPatch = ''
+    printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc
+    patchShebangs ./tools/
+  '';
+
+  postInstall = ''
+    # wscript does not install these for some reason
+    install -vDm 644 "build/gtk2_ardour/ardour.xml" \
+      -t "$out/share/mime/packages"
+    install -vDm 644 "build/gtk2_ardour/ardour5.desktop" \
+      -t "$out/share/applications"
+    for size in 16 22 32 48 256 512; do
+      install -vDm 644 "gtk2_ardour/resources/Ardour-icon_''${size}px.png" \
+        "$out/share/icons/hicolor/''${size}x''${size}/apps/ardour5.png"
+    done
+    install -vDm 644 "ardour.1"* -t "$out/share/man/man1"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Multi-track hard disk recording software";
+    longDescription = ''
+      Ardour is a digital audio workstation (DAW), You can use it to
+      record, edit and mix multi-track audio and midi. Produce your
+      own CDs. Mix video soundtracks. Experiment with new ideas about
+      music and sound.
+
+      Please consider supporting the ardour project financially:
+      https://community.ardour.org/donate
+    '';
+    homepage = "https://ardour.org/";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ goibhniu fps ];
+  };
+}
diff --git a/pkgs/applications/audio/ardour/as-flags.patch b/pkgs/applications/audio/ardour/as-flags.patch
new file mode 100644
index 00000000000..b8aab70ddca
--- /dev/null
+++ b/pkgs/applications/audio/ardour/as-flags.patch
@@ -0,0 +1,12 @@
+--- a/libs/ardour/wscript
++++ b/libs/ardour/wscript
+@@ -379,8 +379,7 @@ def build(bld):
+
+     # remove '${DEFINES_ST:DEFINES}' from run_str.
+     # x86_64-w64-mingw32-as (mingw) -D flag is for debug messages
+-    if bld.env['build_target'] == 'mingw':
+-        class asm(Task.classes['asm']): run_str = '${AS} ${ASFLAGS} ${ASMPATH_ST:INCPATHS} ${AS_SRC_F}${SRC} ${AS_TGT_F}${TGT}'
++    class asm(Task.classes['asm']): run_str = '${AS} ${ASFLAGS} ${ASMPATH_ST:INCPATHS} ${AS_SRC_F}${SRC} ${AS_TGT_F}${TGT}'
+
+     # operate on copy to avoid adding sources twice
+     sources = list(libardour_sources)
diff --git a/pkgs/applications/audio/ardour/default.nix b/pkgs/applications/audio/ardour/default.nix
index fadfedf5384..0c38057d56f 100644
--- a/pkgs/applications/audio/ardour/default.nix
+++ b/pkgs/applications/audio/ardour/default.nix
@@ -4,75 +4,79 @@
 , aubio
 , boost
 , cairomm
+, cppunit
 , curl
+, dbus
 , doxygen
+, ffmpeg_3
+, fftw
 , fftwSinglePrec
 , flac
+, fluidsynth
 , glibc
 , glibmm
 , graphviz
 , gtkmm2
+, hidapi
+, itstool
+, libarchive
 , libjack2
 , liblo
+, libltc
 , libogg
+, libpulseaudio
+, librdf_raptor
+, librdf_rasqal
 , libsamplerate
 , libsigcxx
 , libsndfile
 , libusb1
-, fluidsynth_1
-, hidapi
-, libltc
-, qm-dsp
+, libuv
+, libwebsockets
 , libxml2
+, libxslt
 , lilv
 , lrdf
 , lv2
-, makeWrapper
+, pango
 , perl
 , pkg-config
-, itstool
-, python2
+, python3
+, qm-dsp
+, readline
 , rubberband
 , serd
 , sord
 , sratom
+, suil
 , taglib
 , vamp-plugin-sdk
-, dbus
-, fftw
-, pango
-, suil
-, libarchive
 , wafHook
 }:
-let
-  # Ardour git repo uses a mix of annotated and lightweight tags. Annotated
-  # tags are used for MAJOR.MINOR versioning, and lightweight tags are used
-  # in-between; MAJOR.MINOR.REV where REV is the number of commits since the
-  # last annotated tag. A slightly different version string format is needed
-  # for the 'revision' info that is built into the binary; it is the format of
-  # "git describe" when _not_ on an annotated tag(!): MAJOR.MINOR-REV-HASH.
-
-  # Version to build.
-  tag = "5.12";
-in stdenv.mkDerivation rec {
-  name = "ardour-${tag}";
+stdenv.mkDerivation rec {
+  pname = "ardour";
+  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 = "ae0dcdc0c5d13483271065c360e378202d20170a";
-    sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr";
+    rev = version;
+    sha256 = "17jxbqavricy01x4ymq6d302djsqfnv84m7dm4fd8cpka0dqjp1y";
   };
 
+  patches = [
+    # AS=as in the environment causes build failure https://tracker.ardour.org/view.php?id=8096
+    ./as-flags.patch
+  ];
+
   nativeBuildInputs = [
-    wafHook
-    makeWrapper
-    pkg-config
-    itstool
     doxygen
     graphviz # for dot
+    itstool
     perl
-    python2
+    pkg-config
+    python3
+    wafHook
   ];
 
   buildInputs = [
@@ -80,29 +84,42 @@ in stdenv.mkDerivation rec {
     aubio
     boost
     cairomm
+    cppunit
     curl
     dbus
+    ffmpeg_3
     fftw
     fftwSinglePrec
     flac
+    fluidsynth
     glibmm
     gtkmm2
+    hidapi
+    itstool
+    libarchive
     libjack2
     liblo
+    libltc
     libogg
+    libpulseaudio
+    librdf_raptor
+    librdf_rasqal
     libsamplerate
     libsigcxx
     libsndfile
     libusb1
-    fluidsynth_1
-    hidapi
-    libltc
-    qm-dsp
+    libuv
+    libwebsockets
     libxml2
+    libxslt
     lilv
     lrdf
     lv2
     pango
+    perl
+    python3
+    qm-dsp
+    readline
     rubberband
     serd
     sord
@@ -110,40 +127,47 @@ in stdenv.mkDerivation rec {
     suil
     taglib
     vamp-plugin-sdk
-    libarchive
   ];
 
   wafConfigureFlags = [
-    "--optimize"
+    "--cxx11"
     "--docs"
-    "--use-external-libs"
     "--freedesktop"
-    "--with-backends=jack,alsa,dummy"
+    "--no-phone-home"
+    "--optimize"
+    "--ptformat"
+    "--qm-dsp-include=${qm-dsp}/include/qm-dsp"
+    "--run-tests"
+    "--test"
+    "--use-external-libs"
   ];
 
-  NIX_CFLAGS_COMPILE = "-I${qm-dsp}/include/qm-dsp";
-
-  # ardour's wscript has a "tarball" target but that required the git revision
-  # be available. Since this is an unzipped tarball fetched from github we
-  # have to do that ourself.
+  # Ardour's wscript requires git revision and date to be available.
+  # Since they are not, let's generate the file manually.
   postPatch = ''
-    printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc
+    printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = "${version}"; const char* date = ""; }\n' > libs/ardour/revision.cc
+    sed 's|/usr/include/libintl.h|${glibc.dev}/include/libintl.h|' -i wscript
     patchShebangs ./tools/
+    substituteInPlace libs/ardour/video_tools_paths.cc \
+      --replace 'ffmpeg_exe = X_("");' 'ffmpeg_exe = X_("${ffmpeg_3}/bin/ffmpeg");' \
+      --replace 'ffprobe_exe = X_("");' 'ffprobe_exe = X_("${ffmpeg_3}/bin/ffprobe");'
   '';
 
   postInstall = ''
     # wscript does not install these for some reason
     install -vDm 644 "build/gtk2_ardour/ardour.xml" \
       -t "$out/share/mime/packages"
-    install -vDm 644 "build/gtk2_ardour/ardour5.desktop" \
+    install -vDm 644 "build/gtk2_ardour/ardour6.desktop" \
       -t "$out/share/applications"
     for size in 16 22 32 48 256 512; do
       install -vDm 644 "gtk2_ardour/resources/Ardour-icon_''${size}px.png" \
-        "$out/share/icons/hicolor/''${size}x''${size}/apps/ardour5.png"
+        "$out/share/icons/hicolor/''${size}x''${size}/apps/ardour6.png"
     done
     install -vDm 644 "ardour.1"* -t "$out/share/man/man1"
   '';
 
+  LINKFLAGS = "-lpthread";
+
   meta = with stdenv.lib; {
     description = "Multi-track hard disk recording software";
     longDescription = ''
@@ -153,11 +177,11 @@ in stdenv.mkDerivation rec {
       music and sound.
 
       Please consider supporting the ardour project financially:
-      https://community.ardour.org/node/8288
+      https://community.ardour.org/donate
     '';
-    homepage = "http://ardour.org/";
+    homepage = "https://ardour.org/";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = [ maintainers.goibhniu maintainers.fps ];
+    maintainers = with maintainers; [ goibhniu magnetophon ];
   };
 }
diff --git a/pkgs/applications/audio/artyFX/default.nix b/pkgs/applications/audio/artyFX/default.nix
index 0265e0f75ec..8cf9bec2e3d 100644
--- a/pkgs/applications/audio/artyFX/default.nix
+++ b/pkgs/applications/audio/artyFX/default.nix
@@ -2,13 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "artyFX";
-  version = "1.3";
+  # Fix build with lv2 1.18: https://github.com/openAVproductions/openAV-ArtyFX/pull/41/commits/492587461b50d140455aa3c98d915eb8673bebf0
+  version = "unstable-2020-04-28";
 
   src = fetchFromGitHub {
     owner = "openAVproductions";
     repo = "openAV-ArtyFX";
-    rev = "release-${version}";
-    sha256 = "012hcy1mxl7gs2lipfcqp5x0xv1azb9hjrwf0h59yyxnzx96h7c9";
+    rev = "492587461b50d140455aa3c98d915eb8673bebf0";
+    sha256 = "0wwg8ivnpyy0235bapjy4g0ij85zq355jwi6c1nkrac79p4z9ail";
   };
 
   nativeBuildInputs = [ pkgconfig ];
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/asunder/default.nix b/pkgs/applications/audio/asunder/default.nix
index 7d90ac36f36..998535a8eb0 100644
--- a/pkgs/applications/audio/asunder/default.nix
+++ b/pkgs/applications/audio/asunder/default.nix
@@ -12,11 +12,11 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "2.9.5";
+  version = "2.9.6";
   pname = "asunder";
   src = fetchurl {
     url = "http://littlesvr.ca/asunder/releases/${pname}-${version}.tar.bz2";
-    sha256 = "069x6az2r3wlb2hd07iz0hxpxwknw7s9h7pyhnkmzv1pw9ci3kk4";
+    sha256 = "1ycnd82lh7qy1pcbngd4b41s16j9hnm2kyfrncg4cwr3bfk7yg7a";
   };
 
   nativeBuildInputs = [ intltool makeWrapper pkgconfig ];
diff --git a/pkgs/applications/audio/audacious/default.nix b/pkgs/applications/audio/audacious/default.nix
index b06175f37f3..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, 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 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 45525571a64..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, 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 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 f1e652cbcad..18f2b4f67cd 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchzip, wxGTK30, pkgconfig, file, gettext,
   libvorbis, libmad, libjack2, lv2, lilv, serd, sord, sratom, suil, alsaLib, libsndfile, soxr, flac, lame,
-  expat, libid3tag, ffmpeg, soundtouch, /*, portaudio - given up fighting their portaudio.patch */
+  expat, libid3tag, ffmpeg_3, soundtouch, /*, portaudio - given up fighting their portaudio.patch */
   autoconf, automake, libtool
   }:
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "2.3.3";
+  version = "2.4.1";
   pname = "audacity";
 
   src = fetchzip {
     url = "https://github.com/audacity/audacity/archive/Audacity-${version}.tar.gz";
-    sha256 = "0ddc03dbm4ixy877czmwd03fpjgr3y68bxfgb6n2q6cv4prp30ig";
+    sha256 = "1xk0piv72d2xd3p7igr916fhcbrm76fhjr418k1rlqdzzg1hfljn";
   };
 
   preConfigure = /* we prefer system-wide libs */ ''
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     file gettext wxGTK30 expat alsaLib
     libsndfile soxr libid3tag libjack2 lv2 lilv serd sord sratom suil wxGTK30.gtk
-    ffmpeg libmad lame libvorbis flac soundtouch
+    ffmpeg_3 libmad lame libvorbis flac soundtouch
   ]; #ToDo: detach sbsms
 
   enableParallelBuilding = true;
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
     description = "Sound editor with graphical UI";
     homepage = "http://audacityteam.org/";
     license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ lheckemann ];
     platforms = intersectLists platforms.linux platforms.x86; # fails on ARM
   };
 }
diff --git a/pkgs/applications/audio/autotalent/default.nix b/pkgs/applications/audio/autotalent/default.nix
new file mode 100644
index 00000000000..8efa2677786
--- /dev/null
+++ b/pkgs/applications/audio/autotalent/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  pname = "autotalent";
+  version = "0.2";
+
+  src = fetchzip {
+    url = "http://tombaran.info/${pname}-${version}.tar.gz";
+    sha256 = "19srnkghsdrxxlv2c7qimvyslxz63r97mkxfq78vbg654l3qz1a6";
+  };
+
+  makeFlags = [
+    "INSTALL_PLUGINS_DIR=$(out)/lib/ladspa"
+  ];
+
+  # To avoid name clashes, plugins should be compiled with symbols hidden, except for `ladspa_descriptor`:
+  preConfigure = ''
+    sed -r 's/^CFLAGS.*$/\0 -fvisibility=hidden/' -i Makefile
+
+    sed -r 's/^const LADSPA_Descriptor \*/__attribute__ ((visibility ("default"))) \0/' -i autotalent.c
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://tombaran.info/autotalent.html";
+    description = "A real-time pitch correction LADSPA plugin (no MIDI control)";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.michalrus ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/bambootracker/default.nix b/pkgs/applications/audio/bambootracker/default.nix
new file mode 100644
index 00000000000..c74c0ca4eff
--- /dev/null
+++ b/pkgs/applications/audio/bambootracker/default.nix
@@ -0,0 +1,72 @@
+{ mkDerivation
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, installShellFiles
+, 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.3";
+
+  src = fetchFromGitHub {
+    owner = "rerrahkr";
+    repo = "BambooTracker";
+    rev = "v${version}";
+    sha256 = "0gq40qmsdavsyl2d6a71rwp4mjlwvp1c8bry32srn4hliwfnvqa6";
+  };
+
+  # Fix macOS build until new release
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/rerrahkr/BambooTracker/commit/45346ed99559d44c2e32a5c6138a0835b212e875.patch";
+      sha256 = "1xkiqira1kpcqkacycy0y7qm1brhf89amliv42byijl4palmykh2";
+    })
+  ];
+
+  preConfigure = "cd BambooTracker";
+
+  nativeBuildInputs = [ qmake qttools installShellFiles ];
+
+  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" ];
+
+  postInstall = ''
+    install -Dm644 ../BambooTracker.desktop $out/share/applications/BambooTracker.desktop
+    installManPage ../BambooTracker*.1
+
+    cp -r ../{demos,licenses,skins,LICENSE} $out/share/BambooTracker/
+
+    for size in 16x16 256x256; do
+      install -Dm644 res/icon/icon_$size.png $out/share/icons/hicolor/$size/apps/BambooTracker.png
+    done
+  '';
+
+  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..1b642e1ed69
--- /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.6.4";
+
+  src = fetchFromGitHub {
+    owner = "sjaehn";
+    repo = pname;
+    rev = "${version}";
+    sha256 = "16b0sg7q2b8l4y4bp5s3yzsj9j6jayjy2mlvqkby6l7hcgjcj493";
+  };
+
+  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-studio1.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix
index 910c1cfe51b..61d522f677f 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, alsaLib, bzip2, cairo, dpkg, freetype, gdk-pixbuf
 , wrapGAppsHook, gtk2, gtk3, harfbuzz, jdk, lib, xorg
-, libbsd, libjack2, libpng, ffmpeg
+, libbsd, libjack2, libpng, ffmpeg_3
 , libxkbcommon
 , makeWrapper, pixman, autoPatchelfHook
 , xdg_utils, zenity, zlib }:
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   ];
 
   binPath = lib.makeBinPath [
-    xdg_utils zenity ffmpeg
+    xdg_utils zenity ffmpeg_3
   ];
 
   installPhase = ''
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
index 64ee40e038c..ee060602c82 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.1.2";
+  version = "3.2.6";
 
   src = fetchurl {
     url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
-    sha256 = "07djn52lz43ls6fa4k1ncz3m1nc5zv2j93hwyavnr66r0hlqy7l9";
+    sha256 = "00hrbgnjns3s8lbjbabwwqvbwz4dlrg33cs3d1qlpzgi3y72h3nn";
   };
 
   buildInputs = oldAttrs.buildInputs ++ [ xorg.libXtst ];
diff --git a/pkgs/applications/audio/bjumblr/default.nix b/pkgs/applications/audio/bjumblr/default.nix
new file mode 100644
index 00000000000..458fe20937a
--- /dev/null
+++ b/pkgs/applications/audio/bjumblr/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, libX11, cairo, lv2, pkgconfig, libsndfile }:
+
+stdenv.mkDerivation rec {
+  pname = "BJumblr";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "sjaehn";
+    repo = pname;
+    rev = version;
+    sha256 = "03x1gvri9yk000fvvc8zvvywf38cc41vkyhhp9xby71b23n5wbn0";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    libX11 cairo lv2 libsndfile
+  ];
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/sjaehn/BJumblr";
+    description = "Pattern-controlled audio stream / sample re-sequencer LV2 plugin";
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
+    license = licenses.gpl3;
+  };
+}
diff --git a/pkgs/applications/audio/bschaffl/default.nix b/pkgs/applications/audio/bschaffl/default.nix
new file mode 100644
index 00000000000..de8e55a9545
--- /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 = "0.3";
+
+  src = fetchFromGitHub {
+    owner = "sjaehn";
+    repo = pname;
+    rev = version;
+    sha256 = "1pcch7j1wgsb77mjy58hl3z43p83dv0vcmyh129m9k216b09gy29";
+  };
+
+  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 674795dca20..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.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = "${version}";
-    sha256 = "1zz1cirmx4wm4im4gjdp691f2042c8d1i8np1ns71f6kqdj9ps3k";
+    sha256 = "0w21kzq695xy4i1r6xvvh7sad5m0rlmdgc7ykmrlzfsm1252dz80";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/audio/bshapr/default.nix b/pkgs/applications/audio/bshapr/default.nix
index a2f96bc288c..aa4374c79bc 100644
--- a/pkgs/applications/audio/bshapr/default.nix
+++ b/pkgs/applications/audio/bshapr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "BShapr";
-  version = "0.8";
+  version = "0.9";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0jlq5rjicc4fxlpk869dg0l5bwwz8k9aj2wfk9v89b0qw8l8kaxl";
+    sha256 = "04zd3a178i2nivg5rjailzqvc5mlnilmhj1ziygmbhshbrywplri";
   };
 
   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/cantata/default.nix b/pkgs/applications/audio/cantata/default.nix
index 799cefc7819..e5d62b15f45 100644
--- a/pkgs/applications/audio/cantata/default.nix
+++ b/pkgs/applications/audio/cantata/default.nix
@@ -10,7 +10,7 @@
 
 , withTaglib ? true, taglib, taglib_extras
 , withHttpStream ? true, qtmultimedia
-, withReplaygain ? true, ffmpeg, speex, mpg123
+, withReplaygain ? true, ffmpeg_3, speex, mpg123
 , withMtp ? true, libmtp
 , withOnlineServices ? true
 , withDevices ? true, udisks2
@@ -50,7 +50,7 @@ in mkDerivation {
 
   buildInputs = [ qtbase qtsvg ]
     ++ lib.optionals withTaglib [ taglib taglib_extras ]
-    ++ lib.optionals withReplaygain [ ffmpeg speex mpg123 ]
+    ++ lib.optionals withReplaygain [ ffmpeg_3 speex mpg123 ]
     ++ lib.optional  withHttpStream qtmultimedia
     ++ lib.optional  withCdda cdparanoia
     ++ lib.optional  withCddb libcddb
diff --git a/pkgs/applications/audio/carla/default.nix b/pkgs/applications/audio/carla/default.nix
index bf297d8a83c..11050761661 100644
--- a/pkgs/applications/audio/carla/default.nix
+++ b/pkgs/applications/audio/carla/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, alsaLib, file, fluidsynth, ffmpeg, jack2,
+{ stdenv, fetchFromGitHub, alsaLib, file, fluidsynth, ffmpeg_3, jack2,
   liblo, libpulseaudio, libsndfile, pkgconfig, python3Packages,
   which, withFrontend ? true,
   withQt ? true, qtbase ? null, wrapQtAppsHook ? null,
@@ -15,13 +15,13 @@ assert withGtk3 -> gtk3 != null;
 
 stdenv.mkDerivation rec {
   pname = "carla";
-  version = "2.1";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "falkTX";
     repo = pname;
     rev = "v${version}";
-    sha256 = "074y40yrgl3qrdr3a5vn0scsw0qv77r5p5m6gc89zhf20ic8ajzc";
+    sha256 = "0c3y4a6cgi4bv1mg57i3qn5ia6pqjqlaylvkapj6bmpsw71ig22g";
   };
 
   nativeBuildInputs = [
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ] ++ optional withFrontend pyqt5;
 
   buildInputs = [
-    file liblo alsaLib fluidsynth ffmpeg jack2 libpulseaudio libsndfile
+    file liblo alsaLib fluidsynth ffmpeg_3 jack2 libpulseaudio libsndfile
   ] ++ pythonPath
     ++ optional withQt qtbase
     ++ optional withGtk2 gtk2
diff --git a/pkgs/applications/audio/cava/default.nix b/pkgs/applications/audio/cava/default.nix
index 2bdca386bf4..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.6.1";
+  version = "0.7.2";
 
   buildInputs = [
     alsaLib
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     owner = "karlstav";
     repo = "cava";
     rev = version;
-    sha256 = "1kvhqgijs29909w3sq9m0bslx2zxxn4b3i07kdz4hb0dqkppxpjy";
+    sha256 = "1chc08spjf5i17n8y48aqzdxsj8vvf0r2l62ldw2pqgw60dacvs1";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/applications/audio/clementine/clementine-spotify-blob-remove-from-build.patch b/pkgs/applications/audio/clementine/clementine-spotify-blob-remove-from-build.patch
deleted file mode 100644
index 226536a13ba..00000000000
--- a/pkgs/applications/audio/clementine/clementine-spotify-blob-remove-from-build.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 23070d9..83b6772 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -275,8 +275,6 @@ optional_component(LIBPULSE ON "Pulse audio integration"
- optional_component(VISUALISATIONS ON "Visualisations")
- 
- if(NOT HAVE_SPOTIFY_BLOB AND NOT CRYPTOPP_FOUND)
--  message(FATAL_ERROR "Either crypto++ must be available or the non-GPL Spotify "
--          "code must be compiled in")
- elseif(CRYPTOPP_FOUND)
-   set(HAVE_CRYPTOPP ON)
-   set(HAVE_SPOTIFY_DOWNLOADER ON)
-@@ -434,7 +432,6 @@ if(HAVE_BREAKPAD)
- endif(HAVE_BREAKPAD)
- 
- if(HAVE_SPOTIFY_BLOB)
--  add_subdirectory(ext/clementine-spotifyblob)
- endif(HAVE_SPOTIFY_BLOB)
- 
- if(HAVE_MOODBAR)
diff --git a/pkgs/applications/audio/clementine/default.nix b/pkgs/applications/audio/clementine/default.nix
index 15d0f92b76a..0c1690f1462 100644
--- a/pkgs/applications/audio/clementine/default.nix
+++ b/pkgs/applications/audio/clementine/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchFromGitHub, fetchpatch, boost, cmake, chromaprint, gettext, gst_all_1, liblastfm
+{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, boost, cmake, chromaprint, gettext, gst_all_1, liblastfm
+, qtbase, qtx11extras
 , taglib, fftw, glew, qjson, sqlite, libgpod, libplist, usbmuxd, libmtp
 , libpulseaudio, gvfs, libcdio, libechonest, libspotify, pcre, projectm, protobuf
 , qca2, pkgconfig, sparsehash, config, makeWrapper, gst_plugins }:
@@ -9,30 +10,17 @@ let
   withCD = config.clementine.cd or true;
   withCloud = config.clementine.cloud or true;
 
-  version = "1.3.1";
+  version = "1.4.0rc1";
 
   src = fetchFromGitHub {
     owner = "clementine-player";
     repo = "Clementine";
     rev = version;
-    sha256 = "0i3jkfs8dbfkh47jq3cnx7pip47naqg7w66vmfszk4d8vj37j62j";
+    sha256 = "1rqk0hrsn8f8bjk0j0vq1af0ygy6xx7qi9fw0jjw2cmj6kzckyi2";
   };
 
   patches = [
     ./clementine-spotify-blob.patch
-    # Required so as to avoid adding libspotify as a build dependency (as it is
-    # unfree and thus would prevent us from having a free package).
-    ./clementine-spotify-blob-remove-from-build.patch
-    (fetchpatch {
-      # Fix w/gcc7
-      url = "https://github.com/clementine-player/Clementine/pull/5630.patch";
-      sha256 = "0px7xp1m4nvrncx8sga1qlxppk562wrk2qqk19iiry84nxg20mk4";
-    })
-    (fetchpatch {
-      # Fixes compilation with chromaprint >= 1.4
-      url = "https://github.com/clementine-player/Clementine/commit/d3ea0c8482dfd3f6264a30cfceb456076d76e6cd.patch";
-      sha256 = "1ifrs5aqdzw16jbnf0z1ilir20chdnr9k5n21r99miq9hzjpbh12";
-    })
   ];
 
   nativeBuildInputs = [ cmake pkgconfig ];
@@ -54,6 +42,8 @@ let
     protobuf
     qca2
     qjson
+    qtbase
+    qtx11extras
     sqlite
     taglib
   ]
@@ -71,7 +61,7 @@ let
       -e 's,libprotobuf.a,protobuf,g'
   '';
 
-  free = stdenv.mkDerivation {
+  free = mkDerivation {
     pname = "clementine-free";
     inherit version;
     inherit src patches nativeBuildInputs postPatch;
@@ -79,7 +69,14 @@ let
     # gst_plugins needed for setup-hooks
     buildInputs = buildInputs ++ [ makeWrapper ] ++ gst_plugins;
 
-    cmakeFlags = [ "-DUSE_SYSTEM_PROJECTM=ON" ];
+    preConfigure = ''
+      rm -rf ext/{,lib}clementine-spotifyblob
+    '';
+
+    cmakeFlags = [
+      "-DUSE_SYSTEM_PROJECTM=ON"
+      "-DSPOTIFY_BLOB=OFF"
+    ];
 
     enableParallelBuilding = true;
 
@@ -100,15 +97,11 @@ let
   };
 
   # Unfree Spotify blob for Clementine
-  unfree = stdenv.mkDerivation {
+  unfree = mkDerivation {
     pname = "clementine-blob";
     inherit version;
     # Use the same patches and sources as Clementine
-    inherit src nativeBuildInputs postPatch;
-
-    patches = [
-      ./clementine-spotify-blob.patch
-    ];
+    inherit src nativeBuildInputs patches postPatch;
 
     buildInputs = buildInputs ++ [ libspotify makeWrapper ];
     # Only build and install the Spotify blob
diff --git a/pkgs/applications/audio/csound/default.nix b/pkgs/applications/audio/csound/default.nix
index 4b426609fea..944a2d189d7 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.14.0";
 
   enableParallelBuilding = true;
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "csound";
     repo = "csound";
     rev = version;
-    sha256 = "14822ybqyp31z18gky2y9zadr9dkbhabg97y139py73w7v3af1bh";
+    sha256 = "1sr9knfhbm2m0wpkjq2l5n471vnl51wy4p6j4m95zqybimzb4s2j";
   };
 
   cmakeFlags = [ "-DBUILD_CSOUND_AC=0" ] # fails to find Score.hpp
diff --git a/pkgs/applications/audio/deadbeef/default.nix b/pkgs/applications/audio/deadbeef/default.nix
index 4c2323fbe8a..6b92d1263e3 100644
--- a/pkgs/applications/audio/deadbeef/default.nix
+++ b/pkgs/applications/audio/deadbeef/default.nix
@@ -17,7 +17,7 @@
 , aacSupport ? true, faad2 ? null
 , opusSupport ? true, opusfile ? null
 , wavpackSupport ? false, wavpack ? null
-, ffmpegSupport ? false, ffmpeg ? null
+, ffmpegSupport ? false, ffmpeg_3 ? null
 , apeSupport ? true, yasm ? null
 # misc plugins
 , zipSupport ? true, libzip ? null
@@ -45,7 +45,7 @@ assert cdaSupport -> (libcdio != null && libcddb != null);
 assert aacSupport -> faad2 != null;
 assert opusSupport -> opusfile != null;
 assert zipSupport -> libzip != null;
-assert ffmpegSupport -> ffmpeg != null;
+assert ffmpegSupport -> ffmpeg_3 != null;
 assert apeSupport -> yasm != null;
 assert artworkSupport -> imlib2 != null;
 assert hotkeysSupport -> libX11 != null;
@@ -59,13 +59,13 @@ assert remoteSupport -> curl != null;
 
 stdenv.mkDerivation rec {
   pname = "deadbeef";
-  version = "1.8.3";
+  version = "1.8.4";
 
   src = fetchFromGitHub {
     owner = "DeaDBeeF-Player";
     repo = "deadbeef";
     rev = version;
-    sha256 = "0n0q7zfl56gnadcqqp5rg7sbh1xvfcmp7cvmh2ax07037b346qig";
+    sha256 = "161b0ll8v4cjgwwmk137hzvh0jidlkx56vjkpnr70f0x4jzv2nll";
   };
 
   buildInputs = with stdenv.lib; [ jansson ]
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
     ++ optional aacSupport faad2
     ++ optional opusSupport opusfile
     ++ optional zipSupport libzip
-    ++ optional ffmpegSupport ffmpeg
+    ++ optional ffmpegSupport ffmpeg_3
     ++ optional apeSupport yasm
     ++ optional artworkSupport imlib2
     ++ optional hotkeysSupport libX11
diff --git a/pkgs/applications/audio/denemo/default.nix b/pkgs/applications/audio/denemo/default.nix
index 1438b066061..313c7cbfd42 100644
--- a/pkgs/applications/audio/denemo/default.nix
+++ b/pkgs/applications/audio/denemo/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "denemo";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchurl {
     url = "https://ftp.gnu.org/gnu/denemo/denemo-${version}.tar.gz";
-    sha256 = "1blkcl3slbsq9jlhwcf2m9v9g38a0sjfhh9advgi2qr1gxri08by";
+    sha256 = "145kq0zfgdadykl3i6na221i4s5wzdrcqq48amzyfarnrqk2rmpd";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/audio/dr14_tmeter/default.nix b/pkgs/applications/audio/dr14_tmeter/default.nix
index fbf25384eef..272701b3680 100644
--- a/pkgs/applications/audio/dr14_tmeter/default.nix
+++ b/pkgs/applications/audio/dr14_tmeter/default.nix
@@ -14,7 +14,7 @@ python3Packages.buildPythonApplication rec {
   };
 
   propagatedBuildInputs = with pkgs; [
-    python3Packages.numpy flac vorbis-tools ffmpeg faad2 lame
+    python3Packages.numpy flac vorbis-tools ffmpeg_3 faad2 lame
   ];
 
   # There are no tests
diff --git a/pkgs/applications/audio/dragonfly-reverb/default.nix b/pkgs/applications/audio/dragonfly-reverb/default.nix
index 99c07ba8f5f..b42929ff204 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.0.0";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "michaelwillis";
     repo = "dragonfly-reverb";
     rev = version;
-    sha256 = "1z2x33lzpd26dv1p29ca7vy8mjfzkfpin35iq46spwd9k3sqn1ja";
+    sha256 = "188cm45hr0i33m4h2irql1wrsmsfis65s706wjiid0z59q47rf9p";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/drumgizmo/default.nix b/pkgs/applications/audio/drumgizmo/default.nix
index 454befd55f9..9e24c4a1c29 100644
--- a/pkgs/applications/audio/drumgizmo/default.nix
+++ b/pkgs/applications/audio/drumgizmo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, alsaLib, expat, glib, libjack2, libXext, libX11, libpng
+{ stdenv, fetchurl, fetchpatch, alsaLib, expat, glib, libjack2, libXext, libX11, libpng
 , libpthreadstubs, libsmf, libsndfile, lv2, pkgconfig, zita-resampler
 }:
 
@@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
     sha256 = "0bpbkzcr3znbwfdk79c14n5k5hh80iqlk2nc03q95vhimbadk8k7";
   };
 
+  patches = [
+    # Fix build for lv2 1.18.0
+    (fetchpatch {
+      url = "http://cgit.drumgizmo.org/plugingizmo.git/patch/?id=be64ddf9da525cd5c6757464efc966052731ba71";
+      sha256 = "17w8g78i5avssc7m8rpw64ka3rai8dff81wfzir9cpxp8s2h44qf";
+      extraPrefix = "plugin/plugingizmo/";
+      stripLen = 1;
+    })
+  ];
+
   configureFlags = [ "--enable-lv2" ];
 
   buildInputs = [
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/eq10q/default.nix b/pkgs/applications/audio/eq10q/default.nix
index cc3a3c9ac1f..c614b96f638 100644
--- a/pkgs/applications/audio/eq10q/default.nix
+++ b/pkgs/applications/audio/eq10q/default.nix
@@ -19,6 +19,12 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  postPatch = ''
+     # Fix build with lv2 1.18: https://sourceforge.net/p/eq10q/bugs/23/
+     find . -type f -exec fgrep -q LV2UI_Descriptor {} \; \
+       -exec sed -i {} -e 's/const _\?LV2UI_Descriptor/const LV2UI_Descriptor/' \;
+   '';
+
   installFlags = [ "DESTDIR=$(out)" ];
 
   fixupPhase = ''
diff --git a/pkgs/applications/audio/faust/faust2.nix b/pkgs/applications/audio/faust/faust2.nix
index 33df1ce5d4e..de90bd038be 100644
--- a/pkgs/applications/audio/faust/faust2.nix
+++ b/pkgs/applications/audio/faust/faust2.nix
@@ -5,7 +5,8 @@
 , pkgconfig
 , cmake
 , llvm
-, emscripten
+# TODO: put back when it builds again
+# , emscripten
 , openssl
 , libsndfile
 , libmicrohttpd
@@ -20,19 +21,19 @@ with stdenv.lib.strings;
 
 let
 
-  version = "unstable-2020-03-20";
+  version = "unstable-2020-08-03";
 
   src = fetchFromGitHub {
     owner = "grame-cncm";
     repo = "faust";
-    rev = "2782088d4485f1c572755f41e7a072b41cb7148a";
-    sha256 = "1l7bi2mq10s5wm8g4cdipg8gndd478x897qv0h7nqi1s2q9nq99p";
+    rev = "b6045f4592384076d3b383d116e602a95a000eb3";
+    sha256 = "1wcpilwnkc7rrbv9gbkj5hb7kamkh8nrc3r4hbcvbz5ar2pfc6d5";
     fetchSubmodules = true;
   };
 
   meta = with stdenv.lib; {
     homepage = "http://faust.grame.fr/";
-    downloadPage = "https://sourceforge.net/projects/faudiostream/files/";
+    downloadPage = "https://github.com/grame-cncm/faust/";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ magnetophon pmahoney ];
@@ -46,7 +47,7 @@ let
     inherit src;
 
     nativeBuildInputs = [ makeWrapper pkgconfig cmake vim which ];
-    buildInputs = [ llvm emscripten openssl libsndfile libmicrohttpd gnutls libtasn1 p11-kit ];
+    buildInputs = [ llvm /*emscripten*/ openssl libsndfile libmicrohttpd gnutls libtasn1 p11-kit ];
 
 
     passthru = {
diff --git a/pkgs/applications/audio/faust/faust2jack.nix b/pkgs/applications/audio/faust/faust2jack.nix
index 26478b2bb2e..370c25ecd74 100644
--- a/pkgs/applications/audio/faust/faust2jack.nix
+++ b/pkgs/applications/audio/faust/faust2jack.nix
@@ -12,7 +12,6 @@ faust.wrapWithBuildEnv {
 
   scripts = [
     "faust2jack"
-    "faust2jackinternal"
     "faust2jackconsole"
   ];
 
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/fdkaac/default.nix b/pkgs/applications/audio/fdkaac/default.nix
new file mode 100644
index 00000000000..55c0d7c597c
--- /dev/null
+++ b/pkgs/applications/audio/fdkaac/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, autoreconfHook, fetchFromGitHub, fdk_aac }:
+
+stdenv.mkDerivation rec {
+  pname = "fdkaac";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "nu774";
+    repo = pname;
+    rev = version;
+    sha256 = "16iwqmwagnb929byz8kj79pmmr0anbyv26drbavhppmxhk7rrpgh";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  buildInputs = [ fdk_aac ];
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    description = "Command line encoder frontend for libfdk-aac encder";
+    longDescription = ''
+      fdkaac reads linear PCM audio in either WAV, raw PCM, or CAF format,
+      and encodes it into either M4A / AAC file.
+    '';
+    homepage = "https://github.com/nu774/fdkaac";
+    license = licenses.zlib;
+    platforms = platforms.all;
+    maintainers = [ maintainers.lunik1 ];
+  };
+}
diff --git a/pkgs/applications/audio/flacon/default.nix b/pkgs/applications/audio/flacon/default.nix
index 1da40e75415..aaa0712c42f 100644
--- a/pkgs/applications/audio/flacon/default.nix
+++ b/pkgs/applications/audio/flacon/default.nix
@@ -1,32 +1,41 @@
-{ stdenv, lib, fetchFromGitHub, cmake, libuchardet, pkgconfig
-, shntool, flac, opusTools, vorbis-tools, mp3gain, lame, wavpack, vorbisgain
-, gtk3
-, qtbase, qttools, wrapQtAppsHook
-}:
+{ stdenv, lib, fetchFromGitHub, cmake, libuchardet, pkgconfig, shntool, flac
+, opusTools, vorbis-tools, mp3gain, lame, wavpack, vorbisgain, gtk3, qtbase
+, qttools, wrapQtAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "flacon";
-  version = "5.5.1";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "flacon";
     repo = "flacon";
     rev = "v${version}";
-    sha256 = "05pvg5xhc2azwzld08m81r4b2krqdbcbm5lmdvg2zkk67xq9pqyd";
+    sha256 = "04yp3aym7h70xjni9ancqv5lc4zds5a8dgw3fzgqs8k5nmh074gv";
   };
 
   nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
   buildInputs = [ qtbase qttools libuchardet ];
 
+  bin_path = lib.makeBinPath [
+    shntool
+    flac
+    opusTools
+    vorbis-tools
+    mp3gain
+    lame
+    wavpack
+    vorbisgain
+  ];
+
   postInstall = ''
     wrapProgram $out/bin/flacon \
       --suffix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}" \
-      --prefix PATH : "${lib.makeBinPath [ shntool flac opusTools vorbis-tools
-     mp3gain lame wavpack vorbisgain ]}"
+      --prefix PATH : "$bin_path";
   '';
 
   meta = with stdenv.lib; {
-    description = "Extracts audio tracks from an audio CD image to separate tracks.";
+    description =
+      "Extracts audio tracks from an audio CD image to separate tracks";
     homepage = "https://flacon.github.io/";
     license = licenses.lgpl21;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/foo-yc20/default.nix b/pkgs/applications/audio/foo-yc20/default.nix
index 643b648fa88..4ec69c62b1a 100644
--- a/pkgs/applications/audio/foo-yc20/default.nix
+++ b/pkgs/applications/audio/foo-yc20/default.nix
@@ -18,12 +18,12 @@ stdenv.mkDerivation {
   # remove lv2 until https://github.com/sampov2/foo-yc20/issues/6 is resolved
   postInstallFixup = "rm -rf $out/lib/lv2";
 
-  meta = {
+  meta = with stdenv.lib; {
     broken = true; # see: https://github.com/sampov2/foo-yc20/issues/7
     description = "A Faust implementation of a 1969 designed Yamaha combo organ, the YC-20";
     homepage = "https://github.com/sampov2/foo-yc20";
-    license     = "BSD";
-    maintainers = [ stdenv.lib.maintainers.magnetophon ];
-    platforms = stdenv.lib.platforms.linux;
+    license     = with licenses; [ bsd3 lgpl21 mpl11 ] ;
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
   };
 }
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 3acf8ea1c0c..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.23";
+  version = "1.28";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "ft2-clone";
     rev = "v${version}";
-    sha256 = "03prdifc2nz7smmzdy19flp33m927vb7j5bhdc46gak753pikw7d";
+    sha256 = "1hbcl89cpx9bsafxrjyfx6vrbs4h3lnzmqm12smcvdg8ksfgzj0d";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/audio/fverb/default.nix b/pkgs/applications/audio/fverb/default.nix
new file mode 100644
index 00000000000..28955379574
--- /dev/null
+++ b/pkgs/applications/audio/fverb/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "fverb";
+  # no release yet: https://github.com/jpcima/fverb/issues/2
+  version = "unstable-2020-06-09";
+
+  src = fetchFromGitHub {
+    owner = "jpcima";
+    repo = pname;
+    rev = "462020e33e24c0204a375dc95e2c28654cc917b8";
+    sha256 = "12nl7qn7mnykk7v8q0j2n8kfq0xc46n0i45z6qcywspadwnncmd4";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  postPatch = ''
+    patchShebangs ./dpf/utils/generate-ttl.sh
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A stereo variant of the reverberator by Jon Dattorro, for lv2";
+    homepage = "https://github.com/jpcima/fverb";
+    license = licenses.bsd2;
+    maintainers = [ maintainers.magnetophon ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/audio/geonkick/default.nix b/pkgs/applications/audio/geonkick/default.nix
new file mode 100644
index 00000000000..c2dc39fe610
--- /dev/null
+++ b/pkgs/applications/audio/geonkick/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitLab, cmake, pkg-config, redkite, libsndfile, rapidjson, libjack2, lv2, libX11, cairo }:
+
+stdenv.mkDerivation rec {
+  pname = "geonkick";
+  version = "2.3.3";
+
+  src = fetchFromGitLab {
+    owner = "iurie-sw";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0h1abb6q2bmi01a3v37adkc4zc03j47jpvffz8p2lpp33xhljghs";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ redkite libsndfile rapidjson libjack2 lv2 libX11 cairo ];
+
+  cmakeFlags = [ "-DGKICK_REDKITE_SDK_PATH=${redkite}" ];
+
+  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 fcf4d0b8652..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.2.2";
+  version = "0.16.3.1";
 
   src = fetchFromGitHub {
     owner = "monocasual";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0rpg5qmw3b76xcra869shb8fwk5wfzpzw216n96hxa5s6k69cm0p";
+    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/goattracker/default.nix b/pkgs/applications/audio/goattracker/default.nix
new file mode 100644
index 00000000000..77a04221b84
--- /dev/null
+++ b/pkgs/applications/audio/goattracker/default.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, fetchurl
+, unzip
+, makeDesktopItem
+, imagemagick
+, SDL
+, isStereo ? false
+}:
+
+with stdenv.lib;
+let
+  pname = "goattracker" + optionalString isStereo "-stereo";
+  desktopItem = makeDesktopItem {
+    type = "Application";
+    name = pname;
+    desktopName = "GoatTracker 2" + optionalString isStereo " Stereo";
+    genericName = "Music Tracker";
+    exec = if isStereo
+      then "gt2stereo"
+      else "goattrk2";
+    icon = "goattracker";
+    categories = "AudioVideo;AudioVideoEditing;";
+    extraEntries = "Keywords=tracker;music;";
+  };
+
+in stdenv.mkDerivation rec {
+  inherit pname;
+  version = if isStereo
+    then "2.76"  # stereo
+    else "2.75"; # normal
+
+  src = fetchurl {
+    url = "mirror://sourceforge/goattracker2/GoatTracker_${version}${optionalString isStereo "_Stereo"}.zip";
+    sha256 = if isStereo
+      then "12cz3780x5k047jqdv69n6rjgbfiwv67z850kfl4i37lxja432l7"  # stereo
+      else "1km97nl7qvk6qc5l5j69wncbm76hf86j47sgzgr968423g0bxxlk"; # normal
+  };
+  sourceRoot = (if isStereo then "gt2stereo/trunk" else "goattrk2") + "/src";
+
+  nativeBuildInputs = [ unzip imagemagick ];
+  buildInputs = [ SDL ];
+
+  # PREFIX gets treated as BINDIR.
+  makeFlags = [ "PREFIX=$(out)/bin/" ];
+
+  # The zip contains some build artifacts.
+  prePatch = "make clean";
+
+  # The destination does not get created automatically.
+  preBuild = "mkdir -p $out/bin";
+
+  # Other files get installed during the build phase.
+  installPhase = ''
+    convert goattrk2.bmp goattracker.png
+    install -Dm644 goattracker.png $out/share/icons/hicolor/32x32/apps/goattracker.png
+    ${desktopItem.buildCommand}
+  '';
+
+  meta = {
+    description = "A crossplatform music editor for creating Commodore 64 music. Uses reSID library by Dag Lem and supports alternatively HardSID & CatWeasel devices"
+      + optionalString isStereo " - Stereo version";
+    homepage = "https://cadaver.github.io/tools.html";
+    downloadPage = "https://sourceforge.net/projects/goattracker2/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/pkgs/applications/audio/gpodder/default.nix b/pkgs/applications/audio/gpodder/default.nix
index 933c9ac0203..4a21868f097 100644
--- a/pkgs/applications/audio/gpodder/default.nix
+++ b/pkgs/applications/audio/gpodder/default.nix
@@ -5,14 +5,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "gpodder";
-  version = "3.10.15";
+  version = "3.10.16";
   format = "other";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0ghbanj142n0hgydzfjmnkdgri2kswsjal3mn10c723kih4ir4yr";
+    sha256 = "0pbpaasd7kj6y25nm45y1qyb9sxd4570f7g6zkfcpf6pa3nx7qkq";
   };
 
   patches = [
diff --git a/pkgs/applications/audio/gspeech/default.nix b/pkgs/applications/audio/gspeech/default.nix
new file mode 100644
index 00000000000..920c06038fe
--- /dev/null
+++ b/pkgs/applications/audio/gspeech/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, fetchFromGitHub
+, python3
+, gtk3
+, wrapGAppsHook
+, glibcLocales
+, gobject-introspection
+, gettext
+, pango
+, gdk-pixbuf
+, librsvg
+, atk
+, libnotify
+, libappindicator-gtk3
+, gst_all_1
+, makeWrapper
+, picotts
+, sox
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "gSpeech";
+  version = "0.10.1";
+
+  src = fetchFromGitHub {
+    owner = "mothsart";
+    repo = pname;
+    rev = version;
+    sha256 = "1i0jwgxcn94nsi7c0ad0w77y04g04ka2szijzfqzqfnacdmdyrfc";
+  };
+
+  nativeBuildInputs = [
+    wrapGAppsHook
+    gobject-introspection
+    pango
+    gdk-pixbuf
+    atk
+    gettext
+    libnotify
+    libappindicator-gtk3
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    makeWrapper
+  ];
+
+  buildInputs = [
+    glibcLocales
+    gtk3
+    python3
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pygobject3
+    librsvg
+  ];
+
+  postFixup = ''
+    wrapProgram $out/bin/gspeech --prefix PATH : ${lib.makeBinPath [ picotts sox ]}
+    wrapProgram $out/bin/gspeech-cli --prefix PATH : ${lib.makeBinPath [ picotts sox ]}
+  '';
+
+  strictDeps = false;
+
+  meta = with lib; {
+    description = "A minimal GUI for the Text To Speech 'Svox Pico'. Read clipboard or selected text in different languages and manage it : pause, stop, replay.";
+    homepage = "https://github.com/mothsART/gSpeech";
+    maintainers = with maintainers; [ mothsart ];
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+  };
+}
+
diff --git a/pkgs/applications/audio/guitarix/default.nix b/pkgs/applications/audio/guitarix/default.nix
index 095cd79b56e..d74f1c8728f 100644
--- a/pkgs/applications/audio/guitarix/default.nix
+++ b/pkgs/applications/audio/guitarix/default.nix
@@ -1,8 +1,38 @@
-{ stdenv, fetchurl, gettext, intltool, pkgconfig, python2
-, avahi, bluez, boost, eigen, fftw, glib, glib-networking
-, glibmm, gsettings-desktop-schemas, gtkmm2, libjack2
-, ladspaH, libav, libsndfile, lilv, lrdf, lv2, serd, sord, sratom
-, wrapGAppsHook, zita-convolver, zita-resampler, curl, wafHook
+{ stdenv
+, fetchurl
+, avahi
+, bluez
+, boost
+, curl
+, eigen
+, fftw
+, gettext
+, glib
+, glib-networking
+, glibmm
+, gnome3
+, gsettings-desktop-schemas
+, gtk3
+, gtkmm3
+, hicolor-icon-theme
+, intltool
+, ladspaH
+, libav
+, libjack2
+, libsndfile
+, lilv
+, lrdf
+, lv2
+, pkgconfig
+, python2
+, sassc
+, serd
+, sord
+, sratom
+, wafHook
+, wrapGAppsHook
+, zita-convolver
+, zita-resampler
 , optimizationSupport ? false # Enable support for native CPU extensions
 }:
 
@@ -12,30 +42,62 @@ in
 
 stdenv.mkDerivation rec {
   pname = "guitarix";
-  version = "0.39.0";
+  version = "0.41.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz";
-    sha256 = "1nn80m1qagfhvv69za60f0w6ck87vmk77qmqarj7fbr8avwg63s9";
+    sha256 = "0qsfbyrrpb3bbdyq68k28mjql7kglxh8nqcw9jvja28x6x9ik5a0";
   };
 
-  nativeBuildInputs = [ gettext intltool wrapGAppsHook pkgconfig python2 wafHook ];
+  nativeBuildInputs = [
+    gettext
+    hicolor-icon-theme
+    intltool
+    pkgconfig
+    python2
+    wafHook
+    wrapGAppsHook
+  ];
 
   buildInputs = [
-    avahi bluez boost eigen fftw glib glibmm glib-networking.out
-    gsettings-desktop-schemas gtkmm2 libjack2 ladspaH libav
-    libsndfile lilv lrdf lv2 serd sord sratom zita-convolver
-    zita-resampler curl
+    avahi
+    bluez
+    boost
+    curl
+    eigen
+    fftw
+    glib
+    glib-networking.out
+    glibmm
+    gnome3.adwaita-icon-theme
+    gsettings-desktop-schemas
+    gtk3
+    gtkmm3
+    ladspaH
+    libav
+    libjack2
+    libsndfile
+    lilv
+    lrdf
+    lv2
+    sassc
+    serd
+    sord
+    sratom
+    zita-convolver
+    zita-resampler
   ];
 
+  # this doesnt build, probably because we have the wrong faust version:
+  #       "--faust"
+  # aproved versions are 2.20.2 and 2.15.11
   wafConfigureFlags = [
+    "--no-faust"
+    "--no-font-cache-update"
     "--shared-lib"
     "--no-desktop-update"
     "--enable-nls"
-    "--no-faust" # todo: find out why --faust doesn't work
     "--install-roboto-font"
-    "--includeresampler"
-    "--convolver-ffmpeg"
   ] ++ optional optimizationSupport "--optimization";
 
   meta = with stdenv.lib; {
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/industrializer/default.nix b/pkgs/applications/audio/industrializer/default.nix
new file mode 100644
index 00000000000..593458506d8
--- /dev/null
+++ b/pkgs/applications/audio/industrializer/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, fetchurl
+, alsaLib
+, audiofile
+, autoconf
+, automake
+, gnome2
+, gtk2
+, libjack2
+, libtool
+, libxml2
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "industrializer";
+  version = "0.2.6";
+  src = fetchurl {
+    url = "mirror://sourceforge/project/${pname}/ps${pname}-${version}.tar.bz2";
+    sha256 = "0vls94hqpkk8h17da6fddgqbl5dgm6250av3raimhhzwvm5r1gfi";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [
+    alsaLib
+    audiofile
+    autoconf
+    automake
+    gnome2.gtkglext
+    gtk2
+    libjack2
+    libtool
+    libxml2
+  ];
+
+  preConfigure = "./autogen.sh";
+
+  meta = {
+    description = "This program generates synthesized percussion sounds using physical modelling";
+    longDescription = ''
+      The range of sounds possible include but is not limited to cymbal sounds, metallic noises, bubbly sounds, and chimes.
+      After a sound is rendered, it can be played and then saved to a .WAV file.
+    '';
+    homepage = "https://sourceforge.net/projects/industrializer/";
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/infamousPlugins/default.nix b/pkgs/applications/audio/infamousPlugins/default.nix
index 2cfe77ec291..9ba835eb7ea 100644
--- a/pkgs/applications/audio/infamousPlugins/default.nix
+++ b/pkgs/applications/audio/infamousPlugins/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pkgconfig, cairomm, cmake, lv2, libpthreadstubs, libXdmcp, libXft, ntk, pcre, fftwFloat, zita-resampler }:
+{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, cairomm, cmake, lv2, libpthreadstubs, libXdmcp, libXft, ntk, pcre, fftwFloat, zita-resampler }:
 
 stdenv.mkDerivation rec {
   pname = "infamousPlugins";
@@ -11,6 +11,12 @@ stdenv.mkDerivation rec {
     sha256 = "1r72agk5nxf5k0mghcc2j90z43j5d9i7rqjmf49jfyqnd443isip";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/ssj71/infamousPlugins/commit/06dd967b4736ea886dc1dc07f882cb1563961582.patch";
+      sha256 = "08xwh6px13y1gykaw103nhvjms7vgbgkcm0avh9f5d2d7aadq0l2";
+    })
+  ];
   nativeBuildInputs = [ pkgconfig cmake ];
   buildInputs = [ cairomm lv2 libpthreadstubs libXdmcp libXft ntk pcre fftwFloat zita-resampler ];
 
diff --git a/pkgs/applications/audio/ir.lv2/default.nix b/pkgs/applications/audio/ir.lv2/default.nix
index f9f58ab5ec1..aa5eeae0a46 100644
--- a/pkgs/applications/audio/ir.lv2/default.nix
+++ b/pkgs/applications/audio/ir.lv2/default.nix
@@ -15,6 +15,13 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [  pkgconfig ];
 
+  postPatch = ''
+     # Fix build with lv2 1.18: https://github.com/tomszilagyi/ir.lv2/pull/20
+     find . -type f -exec fgrep -q LV2UI_Descriptor {} \; \
+       -exec sed -i {} -e 's/const struct _\?LV2UI_Descriptor/const LV2UI_Descriptor/' \;
+   '';
+
+
   postBuild = "make convert4chan";
 
   installPhase = ''
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
new file mode 100644
index 00000000000..b8763f07b45
--- /dev/null
+++ b/pkgs/applications/audio/jamulus/default.nix
@@ -0,0 +1,27 @@
+{ mkDerivation, stdenv, fetchFromGitHub, fetchpatch, pkg-config, qtscript, qmake, libjack2
+}:
+
+mkDerivation rec {
+  pname = "jamulus";
+  version = "3.5.9";
+  src = fetchFromGitHub {
+    owner = "corrados";
+    repo = "jamulus";
+    rev = "r${stdenv.lib.replaceStrings [ "." ] [ "_" ] version}";
+    sha256 = "0h2m1sahi8cg15k6wa9m2d38va2cs3nvi0q8rpr9vak8g8d3p460";
+  };
+
+  nativeBuildInputs = [ pkg-config qmake ];
+  buildInputs = [ qtscript libjack2 ];
+
+  qmakeFlags = [ "CONFIG+=noupcasename" ];
+
+  meta = {
+    description = "Enables musicians to perform real-time jam sessions over the internet";
+    longDescription = "You also need to enable JACK and should enable several real-time optimizations. See project website for details";
+    homepage = "https://github.com/corrados/jamulus/wiki";
+    license = stdenv.lib.licenses.gpl2; # linked in git repo, at least
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.seb314 ];
+  };
+}
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/kid3/default.nix b/pkgs/applications/audio/kid3/default.nix
index cfcad390f4c..589354cf234 100644
--- a/pkgs/applications/audio/kid3/default.nix
+++ b/pkgs/applications/audio/kid3/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl
-, pkgconfig, cmake, python, ffmpeg, phonon, automoc4
+, pkgconfig, cmake, python, ffmpeg_3, phonon, automoc4
 , chromaprint, docbook_xml_dtd_45, docbook_xsl, libxslt
 , id3lib, taglib, mp4v2, flac, libogg, libvorbis
 , zlib, readline , qtbase, qttools, qtmultimedia, qtquickcontrols
@@ -9,16 +9,16 @@
 stdenv.mkDerivation rec {
 
   pname = "kid3";
-  version = "3.8.2";
+  version = "3.8.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/kid3/kid3/${version}/${pname}-${version}.tar.gz";
-    sha256 = "051y77swpi9isx275gwzl4fn3igd2dmixbszv9m3h0h9lqhcjrvr";
+    sha256 = "0i0c4bmsm36jj1v535kil47ig0ig70ykrzcw2f56spr25xns06ka";
   };
 
   nativeBuildInputs = [ wrapQtAppsHook ];
   buildInputs = with stdenv.lib;
-  [ pkgconfig cmake python ffmpeg phonon automoc4
+  [ pkgconfig cmake python ffmpeg_3 phonon automoc4
     chromaprint docbook_xml_dtd_45 docbook_xsl libxslt
     id3lib taglib mp4v2 flac libogg libvorbis zlib readline
     qtbase qttools qtmultimedia qtquickcontrols ];
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
new file mode 100644
index 00000000000..6061edac025
--- /dev/null
+++ b/pkgs/applications/audio/librespot/default.nix
@@ -0,0 +1,47 @@
+{ 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.3";
+
+  src = fetchFromGitHub {
+    owner = "librespot-org";
+    repo = "librespot";
+    rev = "v${version}";
+    sha256 = "1ixh47yvaamrpzagqsiimc3y6bi4nbym95843d23am55zkrgnmy5";
+  };
+
+  cargoSha256 = "1csls8kzzx28ng6w9vdwhnnav5sqp2m5fj430db5z306xh5acg3d";
+
+  cargoPatches = [ ./cargo-lock.patch ];
+
+  cargoBuildFlags = with stdenv.lib; [
+    "--no-default-features"
+    "--features"
+    (concatStringsSep "," (filter (x: x != "") [
+      (optionalString withRodio "rodio-backend")
+      (optionalString withALSA "alsa-backend")
+      (optionalString withPulseAudio "pulseaudio-backend")
+      (optionalString withPortAudio "portaudio-backend")
+
+    ]))
+  ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ openssl ] ++ stdenv.lib.optional withALSA alsaLib
+    ++ stdenv.lib.optional withPulseAudio libpulseaudio
+    ++ stdenv.lib.optional withPortAudio portaudio;
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Open Source Spotify client library and playback daemon";
+    homepage = "https://github.com/librespot-org/librespot";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ bennofs ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/audio/lingot/default.nix b/pkgs/applications/audio/lingot/default.nix
index bf45a466d30..256f5766c41 100644
--- a/pkgs/applications/audio/lingot/default.nix
+++ b/pkgs/applications/audio/lingot/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://savannah/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "cbjHe7mI6DhKDsv0yGHYOPe5hShKjhj3VTKrmBbGoA8=";
+    sha256 = "03x0qqb9iarjapvii3ja522vkxrqv1hwix6b1r53is48p5xwgf3i";
   };
 
   nativeBuildInputs = [
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 d530aff9faa..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.19";
+  version = "1.1.24";
 
   src = fetchFromGitHub {
     owner = "sadko4u";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "1wiph3vxhydc6mr9hn2c6crd4cx592l2zv0wrzgmpnlm1lflzpbg";
+    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/moc/default.nix b/pkgs/applications/audio/moc/default.nix
index 18b5a980633..9f68f8bb8e8 100644
--- a/pkgs/applications/audio/moc/default.nix
+++ b/pkgs/applications/audio/moc/default.nix
@@ -14,7 +14,7 @@
 , musepackSupport ? true, libmpc, libmpcdec, taglib
 , vorbisSupport ? true, libvorbis
 , speexSupport ? true, speex
-, ffmpegSupport ? true, ffmpeg
+, ffmpegSupport ? true, ffmpeg_3
 , sndfileSupport ? true, libsndfile
 , wavpackSupport ? true, wavpack
 # Misc
@@ -60,7 +60,7 @@ in stdenv.mkDerivation rec {
     ++ stdenv.lib.optionals musepackSupport [ libmpc libmpcdec taglib ]
     ++ opt vorbisSupport libvorbis
     ++ opt speexSupport speex
-    ++ opt (ffmpegSupport && !withffmpeg4) ffmpeg
+    ++ opt (ffmpegSupport && !withffmpeg4) ffmpeg_3
     ++ opt (ffmpegSupport && withffmpeg4) ffmpeg_4
     ++ opt sndfileSupport libsndfile
     ++ opt wavpackSupport wavpack
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/monkeys-audio/default.nix b/pkgs/applications/audio/monkeys-audio/default.nix
index 58bb4d3e327..adc8eb2087e 100644
--- a/pkgs/applications/audio/monkeys-audio/default.nix
+++ b/pkgs/applications/audio/monkeys-audio/default.nix
@@ -12,7 +12,9 @@ stdenv.mkDerivation rec {
   };
 
   meta = with stdenv.lib; {
+    description = "Lossless audio codec";
     platforms = platforms.linux;
+    license = licenses.lgpl2;
     maintainers = [ ];
   };
 }
diff --git a/pkgs/applications/audio/mopidy/default.nix b/pkgs/applications/audio/mopidy/default.nix
index 0b9f8153302..23322ca5663 100644
--- a/pkgs/applications/audio/mopidy/default.nix
+++ b/pkgs/applications/audio/mopidy/default.nix
@@ -26,6 +26,10 @@ let
 
     mopidy-mpd = callPackage ./mpd.nix { };
 
+    mopidy-mpris = callPackage ./mpris.nix { };
+
+    mopidy-somafm = callPackage ./somafm.nix { };
+
     mopidy-spotify-tunigo = callPackage ./spotify-tunigo.nix { };
 
     mopidy-youtube = callPackage ./youtube.nix { };
@@ -36,6 +40,8 @@ let
 
     mopidy-iris = callPackage ./iris.nix { };
 
+    mopidy-tunein = callPackage ./tunein.nix { };
+
   };
 
 in self
diff --git a/pkgs/applications/audio/mopidy/gmusic.nix b/pkgs/applications/audio/mopidy/gmusic.nix
index 3dea9156f8f..1e5e42ac2f3 100644
--- a/pkgs/applications/audio/mopidy/gmusic.nix
+++ b/pkgs/applications/audio/mopidy/gmusic.nix
@@ -1,19 +1,20 @@
-{ stdenv, fetchurl, pythonPackages, mopidy }:
+{ stdenv, python3Packages, mopidy }:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "mopidy-gmusic";
-  version = "3.0.0";
+  version = "4.0.0";
 
-  src = fetchurl {
-    url = "https://github.com/mopidy/mopidy-gmusic/archive/v${version}.tar.gz";
-    sha256 = "0a2s4xrrhnkv85rx4w5bj6ih9xm34jy0q71fdvbzmi827g9dw5sz";
+  src = python3Packages.fetchPypi {
+    inherit version;
+    pname = "Mopidy-GMusic";
+    sha256 = "14yswmlfs659rs3k595606m77lw9c6pjykb5pikqw21sb97haxl3";
   };
 
   propagatedBuildInputs = [
     mopidy
-    pythonPackages.requests
-    pythonPackages.gmusicapi
-    pythonPackages.cachetools
+    python3Packages.requests
+    python3Packages.gmusicapi
+    python3Packages.cachetools
   ];
 
   doCheck = false;
diff --git a/pkgs/applications/audio/mopidy/iris.nix b/pkgs/applications/audio/mopidy/iris.nix
index 742c63b3d83..796812a9bd0 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.47.0";
+  version = "3.50.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "1lvq5qsnn2djwkgbadzr7rr6ik2xh8yyj0p3y3hck9pl96ms7lfv";
+    sha256 = "04miwf0dqb8jir9g7xkfnn3l62bdn74ap03kqzz2v3byg64f1p0g";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/audio/mopidy/mpris.nix b/pkgs/applications/audio/mopidy/mpris.nix
new file mode 100644
index 00000000000..16fbfab380b
--- /dev/null
+++ b/pkgs/applications/audio/mopidy/mpris.nix
@@ -0,0 +1,27 @@
+{ stdenv, python3Packages, mopidy }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "mopidy-mpris";
+  version = "3.0.1";
+
+  src = python3Packages.fetchPypi {
+    inherit version;
+    pname = "Mopidy-MPRIS";
+    sha256 = "0qk46aq5r92qgkldzl41x09naww1gv92l4c4hknyl7yymyvm9lr2";
+  };
+
+  propagatedBuildInputs = [
+    mopidy
+    python3Packages.pydbus
+  ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://www.mopidy.com/;
+    description = "Mopidy extension for controlling Mopidy through D-Bus using the MPRIS specification";
+    license = licenses.asl20;
+    maintainers = [ maintainers.nickhu ];
+  };
+}
+
diff --git a/pkgs/applications/audio/mopidy/somafm.nix b/pkgs/applications/audio/mopidy/somafm.nix
new file mode 100644
index 00000000000..2e3380fa20f
--- /dev/null
+++ b/pkgs/applications/audio/mopidy/somafm.nix
@@ -0,0 +1,26 @@
+{ stdenv, python3Packages, mopidy }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "mopidy-somafm";
+  version = "2.0.0";
+
+  src = python3Packages.fetchPypi {
+    inherit version;
+    pname = "Mopidy-SomaFM";
+    sha256 = "1j88rrliys8hqvnb35k1xqw88bvrllcb4rb53lgh82byhscsxlf3";
+  };
+
+  propagatedBuildInputs = [
+    mopidy
+  ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://www.mopidy.com/;
+    description = "Mopidy extension for playing music from SomaFM";
+    license = licenses.mit;
+    maintainers = [ maintainers.nickhu ];
+  };
+}
+
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 b8e22a41cab..a115812b86a 100644
--- a/pkgs/applications/audio/mopidy/youtube.nix
+++ b/pkgs/applications/audio/mopidy/youtube.nix
@@ -1,17 +1,23 @@
-{ stdenv, fetchFromGitHub, pythonPackages, mopidy }:
+{ stdenv, python3Packages, mopidy }:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "mopidy-youtube";
-  version = "2.0.2";
+  version = "3.1";
 
-  src = fetchFromGitHub {
-    owner = "mopidy";
-    repo = "mopidy-youtube";
-    rev = "v${version}";
-    sha256 = "06r3ikyg2ch5n7fbn3sgj04hk6icpfpk1r856qch41995k3bbfg7";
+  src = python3Packages.fetchPypi {
+    inherit version;
+    pname = "Mopidy-YouTube";
+    sha256 = "1bn3nxianbal9f81z9wf2cxi893hndvrz2zdqvh1zpxrhs0cr038";
   };
 
-  propagatedBuildInputs = with pythonPackages; [ mopidy pafy ];
+  patchPhase = "sed s/bs4/beautifulsoup4/ -i setup.cfg";
+
+  propagatedBuildInputs = [
+    mopidy
+    python3Packages.beautifulsoup4
+    python3Packages.cachetools
+    python3Packages.youtube-dl
+  ];
 
   doCheck = false;
 
diff --git a/pkgs/applications/audio/mp3blaster/default.nix b/pkgs/applications/audio/mp3blaster/default.nix
index 2943a31454a..74814a1b7ce 100644
--- a/pkgs/applications/audio/mp3blaster/default.nix
+++ b/pkgs/applications/audio/mp3blaster/default.nix
@@ -1,13 +1,12 @@
 { stdenv, fetchFromGitHub, ncurses, libvorbis, SDL }:
-stdenv.mkDerivation rec {
-
-  version = "3.2.6";
 
+stdenv.mkDerivation rec {
   pname = "mp3blaster";
+  version = "3.2.6";
 
   src = fetchFromGitHub {
     owner = "stragulus";
-    repo = "mp3blaster";
+    repo = pname;
     rev = "v${version}";
     sha256 = "0pzwml3yhysn8vyffw9q9p9rs8gixqkmg4n715vm23ib6wxbliqs";
   };
@@ -17,14 +16,17 @@ stdenv.mkDerivation rec {
     libvorbis
   ] ++ stdenv.lib.optional stdenv.isDarwin SDL;
 
-  buildFlags = [ "CXXFLAGS=-Wno-narrowing" ];
+  NIX_CFLAGS_COMPILE = toString ([
+    "-Wno-narrowing"
+  ] ++ stdenv.lib.optionals stdenv.cc.isClang [
+    "-Wno-reserved-user-defined-literal"
+  ]);
 
   meta = with stdenv.lib; {
     description = "An audio player for the text console";
     homepage = "http://www.mp3blaster.org/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ earldouglas ];
-    platforms = platforms.all;
+    platforms = with platforms; linux ++ darwin;
   };
-
 }
diff --git a/pkgs/applications/audio/mpg123/default.nix b/pkgs/applications/audio/mpg123/default.nix
index 53e66e580da..5260cb85a27 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.25.13";
+  name = "mpg123-1.26.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/mpg123/${name}.tar.bz2";
-    sha256 = "02l915jq0ymndb082g6w89bpf66z04ifa1lr7ga3yycw6m46hc4h";
+    sha256 = "1wrgds46wj6xsnqa6bi8kkh3wd29i2nxclbps34w5kjglrzbzxq0";
   };
 
   buildInputs = stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
diff --git a/pkgs/applications/audio/munt/default.nix b/pkgs/applications/audio/munt/default.nix
index c9a1e9bea80..bf9710fb17e 100644
--- a/pkgs/applications/audio/munt/default.nix
+++ b/pkgs/applications/audio/munt/default.nix
@@ -9,14 +9,14 @@ let
     categories = "Audio;AudioVideo;";
   };
 in mkDerivation rec {
-  version = "2.3.0";
+  version = "2.4.0";
   pname = "munt";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = with stdenv.lib.versions; "${pname}_${major version}_${minor version}_${patch version}";
-    sha256 = "0fjhshs4w942rlfksalalqshflbq83pyz1z0hcq53falh9v54cyw";
+    rev = with stdenv.lib.versions; "libmt32emu_${major version}_${minor version}_${patch version}";
+    sha256 = "0521i7js5imlsxj6n7181w5szfjikam0k4vq1d2ilkqgcwrkg6ln";
   };
 
   postInstall = ''
@@ -31,7 +31,7 @@ in mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Multi-platform software synthesiser emulating Roland MT-32, CM-32L, CM-64 and LAPC-I devices";
     homepage = "http://munt.sourceforge.net/";
-    license = licenses.gpl2;
+    license = with licenses; [ lgpl21 gpl3 ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ gnidorah ];
   };
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 063a05a72f3..71c639ca406 100644
--- a/pkgs/applications/audio/musescore/default.nix
+++ b/pkgs/applications/audio/musescore/default.nix
@@ -1,16 +1,17 @@
 { stdenv, mkDerivation, lib, fetchzip, cmake, pkgconfig
 , alsaLib, freetype, libjack2, lame, libogg, libpulseaudio, libsndfile, libvorbis
-, portaudio, portmidi, qtbase, qtdeclarative, qtscript, qtsvg, qttools
+, portaudio, portmidi, qtbase, qtdeclarative, qtgraphicaleffects
+, qtquickcontrols2, qtscript, qtsvg, qttools
 , qtwebengine, qtxmlpatterns
 }:
 
 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;
   };
 
@@ -19,14 +20,22 @@ 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 ];
 
   buildInputs = [
     alsaLib libjack2 freetype lame libogg libpulseaudio libsndfile libvorbis
     portaudio portmidi # tesseract
-    qtbase qtdeclarative qtscript qtsvg qttools qtwebengine qtxmlpatterns
+    qtbase qtdeclarative qtgraphicaleffects qtquickcontrols2
+    qtscript qtsvg qttools qtwebengine qtxmlpatterns
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/audio/musikcube/default.nix b/pkgs/applications/audio/musikcube/default.nix
index 0c076946b92..8fc0616ff73 100644
--- a/pkgs/applications/audio/musikcube/default.nix
+++ b/pkgs/applications/audio/musikcube/default.nix
@@ -4,7 +4,7 @@
 , boost
 , curl
 , fetchFromGitHub
-, ffmpeg
+, ffmpeg_3
 , lame
 , libev
 , libmicrohttpd
@@ -17,18 +17,15 @@
 
 stdenv.mkDerivation rec {
   pname = "musikcube";
-  version = "0.90.1";
+  version = "0.93.1";
 
   src = fetchFromGitHub {
     owner = "clangen";
     repo = pname;
     rev = version;
-    sha256 = "1ff2cgbllrl2pl5zfbf0cd9qbf6hqpwr395sa1k245ar4f1rfwpg";
+    sha256 = "05qsxyr7x8l0vlmn4yjg4gglxvcw9raf6vfzvblsl2ngsdsrnizy";
   };
 
-  # https://github.com/clangen/musikcube/issues/339
-  patches = [ ./dont-strip.patch ];
-
   nativeBuildInputs = [
     cmake
     pkg-config
@@ -37,7 +34,7 @@ stdenv.mkDerivation rec {
     alsaLib
     boost
     curl
-    ffmpeg
+    ffmpeg_3
     lame
     libev
     libmicrohttpd
@@ -46,6 +43,10 @@ stdenv.mkDerivation rec {
     taglib
   ] ++ stdenv.lib.optional systemdSupport systemd;
 
+  cmakeFlags = [
+    "-DDISABLE_STRIP=true"
+  ];
+
   meta = with stdenv.lib; {
     description = "A fully functional terminal-based music player, library, and streaming audio server";
     homepage = "https://musikcube.com/";
diff --git a/pkgs/applications/audio/musikcube/dont-strip.patch b/pkgs/applications/audio/musikcube/dont-strip.patch
deleted file mode 100644
index b7385dcddba..00000000000
--- a/pkgs/applications/audio/musikcube/dont-strip.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index a3e02666..7c43c7e6 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -370,9 +370,3 @@ endif()
- # they don't yet exist!
- add_custom_target(postbuild ALL DEPENDS musikcube musikcubed)
- add_custom_command(TARGET postbuild POST_BUILD COMMAND cmake .)
--
--# strip binaries in release mode
--if (CMAKE_BUILD_TYPE MATCHES Release)
--  message(STATUS "stripping binaries...")
--  add_custom_command(TARGET postbuild POST_BUILD COMMAND "${CMAKE_SOURCE_DIR}/strip-nix.sh")
--endif()
diff --git a/pkgs/applications/audio/ncspot/default.nix b/pkgs/applications/audio/ncspot/default.nix
index bee1065328a..90dc4e6db33 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.3";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "hrkfdn";
     repo = "ncspot";
     rev = "v${version}";
-    sha256 = "144a7wn5l64fhvj8vgwl7z4bp8lbq0pb0dl38x9y4wkqmdh6wrli";
+    sha256 = "1yx0fc24bgh1x6fdwznc1hqvjq0j7i0zvws3bsyijzs7q48jm0z7";
   };
 
-  cargoSha256 = "19gn0v7j1ly3ywgflfj27pnrwjiiy17m3g1z0kzagxpjy2xi2qxy";
+  cargoSha256 = "0bh2shg80xbs2cw10dabrdxkvhf2csk5h9wmmk5z87q6w25paz1f";
 
   cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
 
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 de903bf3276..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.4.12";
+  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 = "0q2yf9g6hcwvr2nk3zggkscyf0np6i03q2g7fx10i2kcdr3n9k8c";
+    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/pamixer/default.nix b/pkgs/applications/audio/pamixer/default.nix
index 71d85248599..3e2192c0414 100644
--- a/pkgs/applications/audio/pamixer/default.nix
+++ b/pkgs/applications/audio/pamixer/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     description = "Pulseaudio command line mixer";
     longDescription = ''
       Features:
-        - Get the current volume of the default sink, the default source or a selected one by his id
+        - Get the current volume of the default sink, the default source or a selected one by its id
         - Set the volume for the default sink, the default source or any other device
         - List the sinks
         - List the sources
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/pianobar/default.nix b/pkgs/applications/audio/pianobar/default.nix
index 28173d34b78..4cdf415d26b 100644
--- a/pkgs/applications/audio/pianobar/default.nix
+++ b/pkgs/applications/audio/pianobar/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, pkgconfig, libao, json_c, libgcrypt, ffmpeg, curl }:
+{ fetchurl, stdenv, pkgconfig, libao, json_c, libgcrypt, ffmpeg_3, curl }:
 
 stdenv.mkDerivation rec {
   name = "pianobar-2020.04.05";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    libao json_c libgcrypt ffmpeg curl
+    libao json_c libgcrypt ffmpeg_3 curl
   ];
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix
index dc06134c910..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 = "sha256-rJbpoPjNMlw4diWjwNQ/DPo3rltvISU4kuRqBbvlBZ0=";
+    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 205a3ad287e..83952c271be 100644
--- a/pkgs/applications/audio/projectm/default.nix
+++ b/pkgs/applications/audio/projectm/default.nix
@@ -1,57 +1,63 @@
-{ stdenv, fetchurl, fetchpatch, pkgconfig, cmake
-, glew, ftgl, ttf_bitstream_vera
-, withQt ? true, qt4
-, withLibvisual ? false, libvisual, SDL
-, withJack ? false, libjack2
-, withPulseAudio ? true, libpulseaudio
+{ mkDerivation
+, lib
+, fetchFromGitHub
+, autoreconfHook
+, pkgconfig
+, SDL2
+, qtdeclarative
+, libpulseaudio
+, glm
+, which
 }:
 
-assert withJack       -> withQt;
-assert withPulseAudio -> withQt;
+mkDerivation rec {
+  pname = "projectm";
+  version = "3.1.7";
 
-stdenv.mkDerivation {
-  name = "projectm-2.1.0";
-
-  meta = {
-    description = "Music Visualizer";
-    homepage = "http://projectm.sourceforge.net/";
-    license = stdenv.lib.licenses.lgpl21Plus;
-    platforms = stdenv.lib.platforms.linux;
-  };
-
-  src = fetchurl {
-    url = "mirror://sourceforge/projectm/2.1.0/projectM-complete-2.1.0-Source.tar.gz";
-    sha256 = "1vh6jk68a0jdb6qwppb6f8cbgmhnv2ba3bcavzfd6sq06gq08cji";
+  src = fetchFromGitHub {
+    owner = "projectM-visualizer";
+    repo = "projectM";
+    rev = "v${version}";
+    sha256 = "1wm5fym6c1yb972pmil7j9axinqqwrj68cwd2sc7ky8c5z2fsdna";
   };
 
-  patch_gcc6 = fetchpatch {
-    url = "https://raw.githubusercontent.com/gentoo/gentoo/45abd63abc6644b6e177c057b5b42d894dbf8e29/media-libs/libprojectm/files/libprojectm-2.1.0-fix-c++14.patch";
-    sha256 = "1i50scxv1jlqvb3jm3sql89a7wqckxhlpvnhz20vvmm1kii6lrsn";
-  };
-
-  patchPhase = ''
-    patch -d src/libprojectM -p1 -i "$patch_gcc6"
-    sed -i 's:''${LIBVISUAL_PLUGINSDIR}:''${CMAKE_INSTALL_PREFIX}/lib/libvisual-0.4:' \
-      src/projectM-libvisual/CMakeLists.txt
-  '';
+  nativeBuildInputs = [
+    pkgconfig
+    autoreconfHook
+    which
+  ];
 
-  nativeBuildInputs = [ pkgconfig cmake ];
+  buildInputs = [
+    SDL2
+    qtdeclarative
+    libpulseaudio
+    glm
+  ];
 
-  cmakeFlags = [
-    "-DprojectM_FONT_MENU=${ttf_bitstream_vera}/share/fonts/truetype/VeraMono.ttf"
-    "-DprojectM_FONT_TITLE=${ttf_bitstream_vera}/share/fonts/truetype/Vera.ttf"
-    "-DINCLUDE-PROJECTM-TEST=OFF"
-    "-DINCLUDE-PROJECTM-QT=${if withQt then "ON" else "OFF"}"
-    "-DINCLUDE-PROJECTM-LIBVISUAL=${if withLibvisual then "ON" else "OFF"}"
-    "-DINCLUDE-PROJECTM-JACK=${if withJack then "ON" else "OFF"}"
-    "-DINCLUDE-PROJECTM-PULSEAUDIO=${if withPulseAudio then "ON" else "OFF"}"
+  configureFlags = [
+    "--enable-qt"
+    "--enable-sdl"
   ];
 
-  buildInputs = with stdenv.lib;
-    [ glew ftgl ]
-    ++ optional withQt qt4
-    ++ optionals withLibvisual [ libvisual SDL ]
-    ++ optional withJack libjack2
-    ++ optional withPulseAudio libpulseaudio
-    ;
+  fixupPhase = ''
+    # NOTE: 2019-10-05: Upstream inserts the src path buring build into ELF rpath, so must delete it out
+    # upstream report: https://github.com/projectM-visualizer/projectm/issues/245
+    for entry in $out/bin/* ; do
+      patchelf --set-rpath "$(patchelf --print-rpath $entry | tr ':' '\n' | grep -v 'src/libprojectM' | tr '\n' ':')" "$entry"
+    done
+    wrapQtApp $out/bin/projectM-pulseaudio
+    rm $out/bin/projectM-unittest
+  '';
+
+  meta = {
+    homepage = "https://github.com/projectM-visualizer/projectm";
+    description = "Cross-platform Milkdrop-compatible music visualizer";
+    license = lib.licenses.lgpl21;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ ajs124 ];
+    longDescription = ''
+      The open-source project that reimplements the esteemed Winamp Milkdrop by Geiss in a more modern, cross-platform reusable library.
+      Read an audio input and produces mesmerizing visuals, detecting tempo, and rendering advanced equations into a limitless array of user-contributed visualizations.
+    '';
+  };
 }
diff --git a/pkgs/applications/audio/pt2-clone/default.nix b/pkgs/applications/audio/pt2-clone/default.nix
index 5284c8af682..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.12";
+  version = "1.22";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "pt2-clone";
     rev = "v${version}";
-    sha256 = "1y7kv889rm3nvaigcda4bglvwm799f3gp0zrivkvrg1lrlygs89f";
+    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/pulseaudio-modules-bt/default.nix b/pkgs/applications/audio/pulseaudio-modules-bt/default.nix
index 2511cf0f20a..556dd5f1061 100644
--- a/pkgs/applications/audio/pulseaudio-modules-bt/default.nix
+++ b/pkgs/applications/audio/pulseaudio-modules-bt/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , pulseaudio
 , pkgconfig
-, ffmpeg_4
+, ffmpeg
 , patchelf
 , fdk_aac
 , libtool
@@ -24,18 +24,17 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "pulseaudio-modules-bt";
-  version = "1.3";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "EHfive";
     repo = "pulseaudio-modules-bt";
     rev = "v${version}";
-    sha256 = "00xmidcw4fvpbmg0nsm2gk5zw26fpyjbc0pjk6mzr570zbnyqqbn";
+    sha256 = "0bzg6x405j39axnkvc6n6vkl1hv1frk94y1i9sl170081bk23asd";
   };
 
   patches = [
     ./fix-install-path.patch
-    ./fix-aac-defaults.patch
   ];
 
   nativeBuildInputs = [
@@ -46,7 +45,7 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [
     pulseaudio
-    ffmpeg_4
+    ffmpeg
     fdk_aac
     libtool
     ldacbt
@@ -63,13 +62,17 @@ in stdenv.mkDerivation rec {
     # Pulseaudio version is detected with a -rebootstrapped suffix which build system assumptions
     substituteInPlace config.h.in --replace PulseAudio_VERSION ${pulseaudio.version}
     substituteInPlace CMakeLists.txt --replace '${"\${PulseAudio_VERSION}"}' ${pulseaudio.version}
+
+    # Fraunhofer recommends to enable afterburner but upstream has it set to false by default
+    substituteInPlace src/modules/bluetooth/a2dp/a2dp_aac.c \
+      --replace "info->aac_afterburner = false;" "info->aac_afterburner = true;"
   '';
 
   postFixup = ''
     for so in $out/lib/pulse-${pulseaudio.version}/modules/*.so; do
       orig_rpath=$(patchelf --print-rpath "$so")
       patchelf \
-        --set-rpath "${ldacbt}/lib:${lib.getLib ffmpeg_4}/lib:$out/lib/pulse-${pulseaudio.version}/modules:$orig_rpath" \
+        --set-rpath "${ldacbt}/lib:${lib.getLib ffmpeg}/lib:$out/lib/pulse-${pulseaudio.version}/modules:$orig_rpath" \
         "$so"
     done
   '';
diff --git a/pkgs/applications/audio/pulseaudio-modules-bt/fix-aac-defaults.patch b/pkgs/applications/audio/pulseaudio-modules-bt/fix-aac-defaults.patch
deleted file mode 100644
index c94c5dd61f2..00000000000
--- a/pkgs/applications/audio/pulseaudio-modules-bt/fix-aac-defaults.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/src/modules/bluetooth/a2dp/a2dp_aac.c b/src/modules/bluetooth/a2dp/a2dp_aac.c
-index 394a7a0..cf5abaf 100644
---- a/src/modules/bluetooth/a2dp/a2dp_aac.c
-+++ b/src/modules/bluetooth/a2dp/a2dp_aac.c
-@@ -90,8 +90,8 @@ pa_aac_encoder_init(pa_a2dp_source_read_cb_t read_cb, pa_a2dp_source_read_buf_fr
-     info->read_pcm = read_cb;
-     info->read_buf_free = free_cb;
-     info->aacenc_handle_opened = false;
--    info->aac_enc_bitrate_mode = 5;
--    info->aac_afterburner = false;
-+    info->aac_enc_bitrate_mode = 0;
-+    info->aac_afterburner = true;
-     info->force_pa_fmt = PA_SAMPLE_INVALID;
-     return true;
- }
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/qmmp/default.nix b/pkgs/applications/audio/qmmp/default.nix
index 509c95ad545..84ff9f787d5 100644
--- a/pkgs/applications/audio/qmmp/default.nix
+++ b/pkgs/applications/audio/qmmp/default.nix
@@ -4,7 +4,7 @@
 , curl, libmms
 # input plugins
 , libmad, taglib, libvorbis, libogg, flac, libmpcdec, libmodplug, libsndfile
-, libcdio, cdparanoia, libcddb, faad2, ffmpeg, wildmidi
+, libcdio, cdparanoia, libcddb, faad2, ffmpeg_3, wildmidi
 # output plugins
 , alsaLib, libpulseaudio
 # effect plugins
@@ -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 ];
@@ -44,7 +44,7 @@ mkDerivation rec {
       curl libmms
       # input plugins
       libmad taglib libvorbis libogg flac libmpcdec libmodplug libsndfile
-      libcdio cdparanoia libcddb faad2 ffmpeg wildmidi
+      libcdio cdparanoia libcddb faad2 ffmpeg_3 wildmidi
       # output plugins
       alsaLib libpulseaudio
       # effect plugins
diff --git a/pkgs/applications/audio/qtractor/default.nix b/pkgs/applications/audio/qtractor/default.nix
index 344927bce77..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.13";
+  version = "0.9.15";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "1hwxdjlzsf1z6xl82s4bdfxa2bfisklrfx361zbzskmg9iymw1gy";
+    sha256 = "0k7a6llwrzs07flr9mvzvay9ygc2x64syg8npyabsw5a4d85fwsx";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/r128gain/default.nix b/pkgs/applications/audio/r128gain/default.nix
index fb2b3063276..17f6840d4e2 100644
--- a/pkgs/applications/audio/r128gain/default.nix
+++ b/pkgs/applications/audio/r128gain/default.nix
@@ -1,7 +1,7 @@
 { lib
 , fetchFromGitHub
 , substituteAll
-, ffmpeg
+, ffmpeg_3
 , python3Packages
 , sox
 }:
@@ -21,7 +21,7 @@ python3Packages.buildPythonApplication rec {
     (
       substituteAll {
         src = ./ffmpeg-location.patch;
-        inherit ffmpeg;
+        ffmpeg = ffmpeg_3;
       }
     )
   ];
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 2e63a3e8c7c..e15addd78b1 100644
--- a/pkgs/applications/audio/reaper/default.nix
+++ b/pkgs/applications/audio/reaper/default.nix
@@ -1,16 +1,16 @@
 { stdenv, fetchurl, autoPatchelfHook, makeWrapper
-, alsaLib, xorg
+, alsaLib, xorg, libjack2
 , gtk3, pango, gdk-pixbuf, cairo, glib, freetype
 , libpulseaudio, xdg_utils
 }:
 
 stdenv.mkDerivation rec {
   pname = "reaper";
-  version = "5.987";
+  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 = "040k5inzj7mmi75fc6hr0ym18y5xss1675bl5rmhn4sq535m289k";
+    sha256 = "1xnd4qvgwsz1dmgb656i611776dqcb84m1gh30i8jhpwcr9ym46w";
   };
 
   nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
     rm $out/opt/REAPER/uninstall-reaper.sh
 
     wrapProgram $out/opt/REAPER/reaper \
-      --prefix LD_LIBRARY_PATH : ${libpulseaudio}/lib
+      --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ libpulseaudio libjack2 ]}"
 
     mkdir $out/bin
     ln -s $out/opt/REAPER/reaper $out/bin/
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/rubyripper/default.nix b/pkgs/applications/audio/rubyripper/default.nix
index 82aa86f795b..eb6de843180 100644
--- a/pkgs/applications/audio/rubyripper/default.nix
+++ b/pkgs/applications/audio/rubyripper/default.nix
@@ -17,7 +17,9 @@ stdenv.mkDerivation rec {
       --prefix PATH : "${cdparanoia}/bin"
   '';
 
-  meta = {
-    platforms = stdenv.lib.platforms.linux;
+  meta = with stdenv.lib; {
+    description = "High quality CD audio ripper";
+    platforms = platforms.linux;
+    license = licenses.gpl3;
   };
 }
diff --git a/pkgs/applications/audio/schismtracker/default.nix b/pkgs/applications/audio/schismtracker/default.nix
index 36125489e3a..7f6762958a3 100644
--- a/pkgs/applications/audio/schismtracker/default.nix
+++ b/pkgs/applications/audio/schismtracker/default.nix
@@ -4,26 +4,26 @@
 
 stdenv.mkDerivation rec {
   pname = "schismtracker";
-  version = "20190805";
+  version = "20200412";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0qqps20vvn3rgpg8174bjrrm38gqcci2z5z4c1r1vhbccclahgsd";
+    sha256 = "1n6cgjiw3vkv7a1h1nki5syyjxjb6icknr9s049w2jrag10bxssn";
   };
 
   configureFlags = [ "--enable-dependency-tracking" ];
 
   nativeBuildInputs = [ autoreconfHook python ];
 
-  buildInputs = [ alsaLib SDL ];
+  buildInputs = [ SDL ] ++ stdenv.lib.optional stdenv.isLinux alsaLib;
 
   meta = with stdenv.lib; {
     description = "Music tracker application, free reimplementation of Impulse Tracker";
     homepage = "http://schismtracker.org/";
     license = licenses.gpl2;
-    platforms = [ "x86_64-linux" "i686-linux" ];
+    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ ftrvxmtrx ];
   };
 }
diff --git a/pkgs/applications/audio/sfizz/default.nix b/pkgs/applications/audio/sfizz/default.nix
index d785d378065..b4ff5fc56d5 100644
--- a/pkgs/applications/audio/sfizz/default.nix
+++ b/pkgs/applications/audio/sfizz/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchFromGitHub , cmake, libjack2, libsndfile }:
+{ stdenv, fetchFromGitHub , cmake, libjack2, libsndfile, pkgconfig }:
 
 stdenv.mkDerivation rec {
   pname = "sfizz";
-  version = "unstable-2020-01-24";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "sfztools";
     repo = pname;
-    rev = "b9c332777853cb35faeeda2ff4bf34ea7121ffb9";
-    sha256 = "0wzgwpcwal5a7ifrm1hx8y6vx832qixk9ilp8wkjnsdxj6i88p2c";
+    rev = version;
+    sha256 = "0zpmvmh7n0064rxfqxb7z9rnz493k7yq7nl0vxppqnasg97jn5f3";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
   buildInputs = [ libjack2 libsndfile ];
 
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 531a633f05d..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, flac, libogg, libvorbis }:
+, alsaLib, asio, avahi, boost170, flac, libogg, libvorbis, soxr
+, nixosTests }:
 
 let
 
@@ -33,21 +34,21 @@ in
 
 stdenv.mkDerivation rec {
   pname = "snapcast";
-  version = "0.15.0";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner  = "badaix";
     repo   = "snapcast";
     rev    = "v${version}";
-    sha256 = "11rnpy6w3wm240qgmkp74k5w8wh5b7hzfx05qrnh6l7ng7m25ky2";
+    sha256 = "152ic8hlyawcmj9pykb33xc6yx7il6yb9ilmsy6m9nlh40m8yxls";
   };
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig boost170.dev ];
   # snapcast also supports building against tremor but as we have libogg, that's
   # not needed
   buildInputs = [
     alsaLib asio avahi flac libogg libvorbis
-    aixlog popl
+    aixlog popl soxr
   ];
 
   # Upstream systemd unit files are pretty awful, so we provide our own in a
@@ -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/sonic-pi/default.nix b/pkgs/applications/audio/sonic-pi/default.nix
index 534ea135880..d80632a08f5 100644
--- a/pkgs/applications/audio/sonic-pi/default.nix
+++ b/pkgs/applications/audio/sonic-pi/default.nix
@@ -4,7 +4,6 @@
 , fetchFromGitHub
 , fftwSinglePrec
 , ruby
-, libffi
 , aubio
 , cmake
 , pkgconfig
@@ -12,7 +11,6 @@
 , bash
 , jack2Full
 , supercollider
-, qscintilla
 , qwt
 , osmid
 }:
@@ -24,14 +22,14 @@ let
 in
 
 mkDerivation rec {
-  version = "3.1.0";
+  version = "3.2.2";
   pname = "sonic-pi";
 
   src = fetchFromGitHub {
     owner = "samaaron";
     repo = "sonic-pi";
     rev = "v${version}";
-    sha256 = "0gi4a73szaa8iz5q1gxgpsnyvhhghcfqm6bfwwxbix4m5csbfgh9";
+    sha256 = "1nlkpkpg9iz2hvf5pymvk6lqhpdpjbdrvr0hrnkc3ymj7llvf1cm";
   };
 
   buildInputs = [
@@ -39,10 +37,8 @@ mkDerivation rec {
     cmake
     pkgconfig
     qtbase
-    qscintilla
     qwt
     ruby
-    libffi
     aubio
     supercollider_single_prec
     boost
@@ -71,23 +67,34 @@ mkDerivation rec {
     popd
 
     pushd app/gui/qt
-      cp -f ruby_help.tmpl ruby_help.h
-      ../../server/ruby/bin/qt-doc.rb -o ruby_help.h
+      cp -f utils/ruby_help.tmpl utils/ruby_help.h
+      ../../server/ruby/bin/qt-doc.rb -o utils/ruby_help.h
 
-      substituteInPlace SonicPi.pro \
-        --replace "LIBS += -lrt -lqt5scintilla2" \
-                  "LIBS += -lrt -lqscintilla2 -lqwt"
+      lrelease lang/*.ts
 
-      lrelease SonicPi.pro
-      qmake SonicPi.pro
-
-      make
+      mkdir build
+      pushd build
+        cmake -G "Unix Makefiles" ..
+        make
+      popd
     popd
   '';
 
   installPhase = ''
     runHook preInstall
-    cp -r . $out
+
+    mkdir $out
+    cp -r {bin,etc} $out/
+
+    # Copy server whole.
+    mkdir -p $out/app
+    cp -r app/server $out/app/
+
+    # Copy only necessary files for the gui app.
+    mkdir -p $out/app/gui/qt/build
+    cp -r app/gui/qt/{book,fonts,help,html,images,image_source,info,lang,theme} $out/app/gui/qt/
+    cp app/gui/qt/build/sonic-pi $out/app/gui/qt/build/sonic-pi
+
     runHook postInstall
   '';
 
@@ -103,9 +110,7 @@ mkDerivation rec {
     homepage = "https://sonic-pi.net/";
     description = "Free live coding synth for everyone originally designed to support computing and music lessons within schools";
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ Phlogistique kamilchm ];
+    maintainers = with lib.maintainers; [ Phlogistique kamilchm c0deaddict ];
     platforms = lib.platforms.linux;
-    # sonic-pi depends on ruby 2.4 which we don't support anymore
-    broken = true;
   };
 }
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/sorcer/default.nix b/pkgs/applications/audio/sorcer/default.nix
index 7601f942868..ad5f8fda1a9 100644
--- a/pkgs/applications/audio/sorcer/default.nix
+++ b/pkgs/applications/audio/sorcer/default.nix
@@ -14,6 +14,12 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ boost cairomm cmake libsndfile lv2 ntk python ];
 
+  postPatch = ''
+     # Fix build with lv2 1.18: https://github.com/brummer10/guitarix/commit/c0334c72
+     find . -type f -exec fgrep -q LV2UI_Descriptor {} \; \
+       -exec sed -i {} -e 's/const struct _\?LV2UI_Descriptor/const LV2UI_Descriptor/' \;
+   '';
+
   installPhase = ''
     make install
     cp -a ../presets/* "$out/lib/lv2"
diff --git a/pkgs/applications/audio/sound-juicer/default.nix b/pkgs/applications/audio/sound-juicer/default.nix
index dcad0cec1e8..89653a59f43 100644
--- a/pkgs/applications/audio/sound-juicer/default.nix
+++ b/pkgs/applications/audio/sound-juicer/default.nix
@@ -5,7 +5,7 @@
 let
   pname = "sound-juicer";
   version = "3.24.0";
-in stdenv.mkDerivation rec{
+in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
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/speech-denoiser/default.nix b/pkgs/applications/audio/speech-denoiser/default.nix
index 706a6956c5d..9c18665d399 100644
--- a/pkgs/applications/audio/speech-denoiser/default.nix
+++ b/pkgs/applications/audio/speech-denoiser/default.nix
@@ -27,6 +27,8 @@ stdenv.mkDerivation  {
   nativeBuildInputs = [ pkgconfig meson ninja ];
   buildInputs = [ lv2 rnnoise-nu ];
 
+  mesonFlags = ("--prefix=${placeholder "out"}/lib/lv2");
+
   postPatch = ''
     substituteInPlace meson.build \
       --replace "cc.find_library('rnnoise-nu',dirs: meson.current_source_dir() + '/rnnoise/.libs/',required : true)" "cc.find_library('rnnoise-nu', required : true)"
diff --git a/pkgs/applications/audio/spek/default.nix b/pkgs/applications/audio/spek/default.nix
index 88b22c59ae5..d6918b19231 100644
--- a/pkgs/applications/audio/spek/default.nix
+++ b/pkgs/applications/audio/spek/default.nix
@@ -1,27 +1,28 @@
-{ stdenv, fetchzip, autoconf, automake, intltool, pkgconfig, ffmpeg, wxGTK }:
+{ stdenv, fetchFromGitHub, autoreconfHook, intltool, pkgconfig, ffmpeg, wxGTK30-gtk3, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "spek";
-  version = "0.8.3";
+  version = "unstable-2018-12-29";
 
-  src = fetchzip {
-    name = "${pname}-${version}-src";
-    url = "https://github.com/alexkay/spek/archive/v${version}.tar.gz";
-    sha256 = "0y4hlhswpqkqpsglrhg5xbfy1a6f9fvasgdf336vhwcjqsc3k2xv";
+  src = fetchFromGitHub {
+    owner = "alexkay";
+    repo = "spek";
+    rev = "f071c2956176ad53c7c8059e5c00e694ded31ded";
+    sha256 = "1l9gj9c1n92zlcjnyjyk211h83dk0idk644xnm5rs7q40p2zliy5";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ autoconf automake intltool ffmpeg wxGTK ];
+  # needed for autoreconfHook
+  AUTOPOINT="intltoolize --automake --copy";
 
-  preConfigure = ''
-    ./autogen.sh
-  '';
+  nativeBuildInputs = [ autoreconfHook intltool pkgconfig wrapGAppsHook ];
+
+  buildInputs = [ ffmpeg wxGTK30-gtk3 wxGTK30-gtk3.gtk ];
 
   meta = with stdenv.lib; {
     description = "Analyse your audio files by showing their spectrogram";
     homepage = "http://spek.cc/";
     license = licenses.gpl3;
+    maintainers = with maintainers; [ bjornfor ];
     platforms = platforms.all;
-    maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/applications/audio/spotify-tui/default.nix b/pkgs/applications/audio/spotify-tui/default.nix
index 91acab35389..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.19.0";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "Rigellute";
     repo = "spotify-tui";
     rev = "v${version}";
-    sha256 = "1bdcfkfbvvn262p4j0nb4kvjzzgrvn3kxlif48yipqkkykzsgz6g";
+    sha256 = "0pvgq8r1bb7bdxm50hxl0n7ajplpzp1gnf6j55dn6xwck0syml9y";
   };
 
-  cargoSha256 = "13v2ilmfs9468kavlx6wrsp0dscppxbxgygwpdd35p5hq3vnhl7k";
+  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/squeezelite/default.nix b/pkgs/applications/audio/squeezelite/default.nix
index de135706ad3..c6a78f09005 100644
--- a/pkgs/applications/audio/squeezelite/default.nix
+++ b/pkgs/applications/audio/squeezelite/default.nix
@@ -2,7 +2,7 @@
 , alsaLib, flac, libmad, libvorbis, mpg123
 , dsdSupport ? true
 , faad2Support ? true, faad2
-, ffmpegSupport ? true, ffmpeg
+, ffmpegSupport ? true, ffmpeg_3
 , opusSupport ? true, opusfile
 , resampleSupport ? true, soxr
 , sslSupport ? true, openssl
@@ -35,7 +35,7 @@ in stdenv.mkDerivation {
 
   buildInputs = [ alsaLib flac libmad libvorbis mpg123 ]
     ++ optional faad2Support faad2
-    ++ optional ffmpegSupport ffmpeg
+    ++ optional ffmpegSupport ffmpeg_3
     ++ optional opusSupport opusfile
     ++ optional resampleSupport soxr
     ++ optional sslSupport openssl;
diff --git a/pkgs/applications/audio/strawberry/default.nix b/pkgs/applications/audio/strawberry/default.nix
index dce73c38670..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.10";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "jonaski";
     repo = pname;
     rev = version;
-    sha256 = "0qf510hlxbndqzwq62mdzfclqxr3caf1a34kd770k84x8vrb4pld";
+    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/synthv1/default.nix b/pkgs/applications/audio/synthv1/default.nix
index 6339dad7f37..c7e936d28e5 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.13";
+  version = "0.9.14";
 
   src = fetchurl {
     url = "mirror://sourceforge/synthv1/${pname}-${version}.tar.gz";
-    sha256 = "0bb48myvgvqcibwm68qhd4852pjr2g19rasf059a799d1hzgfq3l";
+    sha256 = "08n83krkak20924flb9azhm9hn40lyfvn29m63zs3lw3wajf0b40";
   };
 
   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/tuijam/default.nix b/pkgs/applications/audio/tuijam/default.nix
new file mode 100644
index 00000000000..8a08b64508d
--- /dev/null
+++ b/pkgs/applications/audio/tuijam/default.nix
@@ -0,0 +1,46 @@
+{ buildPythonApplication
+, fetchFromGitHub
+, lib
+, python3Packages
+, youtube-dl
+}:
+
+buildPythonApplication rec {
+  pname = "tuijam";
+  version = "unstable-2020-06-05";
+
+  src = fetchFromGitHub {
+    owner = "cfangmeier";
+    repo = pname;
+    rev = "7baec6f6e80ee90da0d0363b430dd7d5695ff03b";
+    sha256 = "1l0s88jvj99jkxnczw5nfj78m8vihh29g815n4mg9jblad23mgx5";
+  };
+
+  buildInputs = [ python3Packages.Babel ];
+
+  # the package has no tests
+  doCheck = false;
+
+  propagatedBuildInputs = with python3Packages; [
+    gmusicapi
+    google_api_python_client
+    mpv
+    pydbus
+    pygobject3
+    pyyaml
+    requests
+    rsa
+    urwid
+  ];
+
+  meta = with lib; {
+    description = "A fancy TUI client for Google Play Music";
+    longDescription = ''
+      TUIJam seeks to make a simple, attractive, terminal-based interface to
+      listening to music for Google Play Music All-Access subscribers.
+    '';
+    homepage    = "https://github.com/cfangmeier/tuijam";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/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/audio/yoshimi/default.nix b/pkgs/applications/audio/yoshimi/default.nix
index f8ea58fef3c..2b0a89bbaf5 100644
--- a/pkgs/applications/audio/yoshimi/default.nix
+++ b/pkgs/applications/audio/yoshimi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, alsaLib, boost, cairo, cmake, fftwSinglePrec, fltk, pcre
+{ stdenv, fetchFromGitHub , alsaLib, boost, cairo, cmake, fftwSinglePrec, fltk, pcre
 , libjack2, libsndfile, libXdmcp, readline, lv2, libGLU, libGL, minixml, pkgconfig, zlib, xorg
 }:
 
@@ -6,13 +6,15 @@ assert stdenv ? glibc;
 
 stdenv.mkDerivation  rec {
   pname = "yoshimi";
-  version = "1.7.0.1";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/yoshimi/${pname}-${version}.tar.bz2";
-    sha256 = "1pkqrrr51vlxh96vy0c0rf5ijjvymys4brsw9rv1bdp1bb8izw6c";
+  # Fix build with lv2 1.18: https://github.com/Yoshimi/yoshimi/pull/102/commits/86996cbb235f0fe138ae814a6758c2c8ba1c2a38
+  version = "unstable-2020-05-10";
+
+  src = fetchFromGitHub {
+    owner = "Yoshimi";
+    repo = pname;
+    rev = "86996cbb235f0fe138ae814a6758c2c8ba1c2a38";
+    sha256 = "0bgcc5fbgwpdjircq00wlii30pakf45yzligpbnf02a554hh4j01";
   };
-
   buildInputs = [
     alsaLib boost cairo fftwSinglePrec fltk libjack2 libsndfile libXdmcp readline lv2 libGLU libGL
     minixml zlib xorg.libpthreadstubs pcre
diff --git a/pkgs/applications/backup/vorta/default.nix b/pkgs/applications/backup/vorta/default.nix
index 1a4d1832c7e..f1c0b056c82 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.24";
+  version = "0.6.26";
 
   src = fetchFromGitHub {
     owner = "borgbase";
     repo = "vorta";
     rev = "v${version}";
-    sha256 = "1xc4cng4npc7g739qd909a8wim6s6sn8h8bb1wpxzg4gcnfyin8z";
+    sha256 = "189kzwdmissg9142cd7wvxa1rvc2y7lysgr7if99zc7ks59mv6dq";
   };
 
   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-knots.nix b/pkgs/applications/blockchains/bitcoin-knots.nix
new file mode 100644
index 00000000000..384ac880fe1
--- /dev/null
+++ b/pkgs/applications/blockchains/bitcoin-knots.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, autoreconfHook
+, db5
+, openssl
+, boost
+, zlib
+, miniupnpc
+, libevent
+, protobuf
+, utillinux
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bitcoind-knots";
+  version = "0.20.0";
+  versionDate = "20200614";
+
+  src = fetchFromGitHub {
+    owner = "bitcoinknots";
+    repo = "bitcoin";
+    rev = "v${version}.knots${versionDate}";
+    sha256 = "0c8k1154kcwz6q2803wx0zigvqaij1fi5akgfqlj3yl57jjw48jj";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db5 openssl utillinux
+                  protobuf boost zlib miniupnpc libevent ];
+
+  configureFlags = [ "--with-incompatible-bdb"
+                     "--with-boost-libdir=${boost.out}/lib" ];
+
+  meta = with stdenv.lib; {
+    description = "An enhanced Bitcoin node software";
+    homepage = "https://bitcoinknots.org/";
+    license = licenses.mit;
+    maintainers = [ maintainers.mmahut ];
+    platforms = platforms.linux;
+  };
+}
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 450102da66f..65feac9565b 100644
--- a/pkgs/applications/blockchains/bitcoin.nix
+++ b/pkgs/applications/blockchains/bitcoin.nix
@@ -1,59 +1,70 @@
-{ stdenv, fetchurl, pkgconfig, autoreconfHook, openssl, db48, boost, zeromq, rapidcheck, hexdump
-, zlib, miniupnpc, qtbase ? null, qttools ? null, wrapQtAppsHook ? null, utillinux, python3, qrencode, libevent
-, withGui }:
+{ stdenv
+, fetchurl
+, pkgconfig
+, autoreconfHook
+, db48
+, boost
+, zeromq
+, hexdump
+, zlib
+, miniupnpc
+, qtbase ? null
+, qttools ? null
+, wrapQtAppsHook ? null
+, utillinux
+, python3
+, qrencode
+, libevent
+, withGui
+}:
 
 with stdenv.lib;
-
 let
-  version = "0.19.1";
+  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 {
+in
+stdenv.mkDerivation rec {
   pname = if withGui then "bitcoin" else "bitcoind";
   inherit version;
 
   src = fetchurl {
-    urls = [ "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
-             "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
-           ];
-    sha256 = "f2591d555b8e8c2e1bd780e40d53a91e165d8b3c7e0391ae2d24a0c0f23a7cc0";
+    urls = [
+      "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
+      "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
+    ];
+    sha256 = "4bbd62fd6acfa5e9864ebf37a24a04bc2dcfe3e3222f056056288d854c53b978";
   };
 
   nativeBuildInputs =
     [ pkgconfig autoreconfHook ]
     ++ optional stdenv.isDarwin hexdump
     ++ optional withGui wrapQtAppsHook;
-  buildInputs = [ openssl db48 boost zlib zeromq
-                  miniupnpc libevent]
-                  ++ optionals stdenv.isLinux [ utillinux ]
-                  ++ optionals withGui [ qtbase qttools qrencode ];
+  buildInputs = [ db48 boost zlib zeromq miniupnpc libevent ]
+    ++ optionals stdenv.isLinux [ utillinux ]
+    ++ optionals withGui [ qtbase qttools qrencode ];
 
   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 = [ "--with-boost-libdir=${boost.out}/lib"
-                     "--disable-bench"
-                   ] ++ optionals (!doCheck) [
-                     "--disable-tests"
-                     "--disable-gui-tests"
-                   ]
-                     ++ optionals withGui [ "--with-gui=qt5"
-                                            "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
-                                          ];
+  configureFlags = [
+    "--with-boost-libdir=${boost.out}/lib"
+    "--disable-bench"
+  ] ++ optionals (!doCheck) [
+    "--disable-tests"
+    "--disable-gui-tests"
+  ]
+  ++ optionals withGui [
+    "--with-gui=qt5"
+    "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
+  ];
 
-  checkInputs = [ rapidcheck python3 ];
+  checkInputs = [ python3 ];
 
   doCheck = true;
 
@@ -67,13 +78,15 @@ in stdenv.mkDerivation rec {
 
   meta = {
     description = "Peer-to-peer electronic cash system";
-    longDescription= ''
+    longDescription = ''
       Bitcoin is a free open source peer-to-peer electronic cash system that is
       completely decentralized, without the need for a central server or trusted
       parties. Users hold the crypto keys to their own money and transact directly
       with each other, with the help of a P2P network to check for double-spending.
     '';
     homepage = "https://bitcoin.org/";
+    downloadPage = "https://bitcoincore.org/bin/bitcoin-core-${version}/";
+    changelog = "https://bitcoincore.org/en/releases/${version}/";
     maintainers = with maintainers; [ roconnor AndersonTorres ];
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/applications/blockchains/btc1.nix b/pkgs/applications/blockchains/btc1.nix
index 3241148aee1..3442c9ba807 100644
--- a/pkgs/applications/blockchains/btc1.nix
+++ b/pkgs/applications/blockchains/btc1.nix
@@ -5,7 +5,7 @@
 }:
 
 with stdenv.lib;
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   name = "bit1" + (toString (optional (!withGui) "d")) + "-" + version;
   version = "1.15.1";
 
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/cgminer/default.nix b/pkgs/applications/blockchains/cgminer/default.nix
new file mode 100644
index 00000000000..966303ec5a6
--- /dev/null
+++ b/pkgs/applications/blockchains/cgminer/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, libtool
+, autoconf
+, automake
+, curl
+, ncurses
+, ocl-icd
+, opencl-headers
+, libusb1
+, xorg
+, jansson }:
+
+stdenv.mkDerivation rec {
+  pname = "cgminer";
+  version = "4.11.1";
+
+  src = fetchFromGitHub {
+    owner = "ckolivas";
+    repo = "cgminer";
+    rev = "v${version}";
+    sha256 = "0l1ms3nxnjzh4mpiadikvngcr9k3jnjqy3yna207za0va0c28dj5";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ autoconf automake libtool curl ncurses ocl-icd opencl-headers
+    xorg.libX11 xorg.libXext xorg.libXinerama jansson libusb1 ];
+
+  configureScript = "./autogen.sh";
+  configureFlags = [ "--enable-scrypt"
+                     "--enable-opencl"
+                     "--enable-bitforce"
+                     "--enable-icarus"
+                     "--enable-modminer"
+                     "--enable-ztex"
+                     "--enable-avalon"
+                     "--enable-klondike"
+                     "--enable-keccak"
+                     "--enable-bflsc"];
+
+  meta = with stdenv.lib; {
+    description = "CPU/GPU miner in c for bitcoin";
+    homepage = "https://github.com/ckolivas/cgminer";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ offline mmahut ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/blockchains/clightning.nix b/pkgs/applications/blockchains/clightning.nix
index 371bf11064d..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";
+  version = "0.9.0-1";
 
   src = fetchurl {
     url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
-    sha256 = "1w5l3r3pnhnwz3x7mjgd69cw9a18fpyjwj7kmfka7cf9hdgcwp9x";
+    sha256 = "01cwcrqysqsrf96bbbj0grm8j5m46a3acgwy0kzxdx05jdzld9sc";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/blockchains/dashpay.nix b/pkgs/applications/blockchains/dashpay.nix
index d0c3fed4350..b88aa3af19e 100644
--- a/pkgs/applications/blockchains/dashpay.nix
+++ b/pkgs/applications/blockchains/dashpay.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.dash.org";
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
+    license = licenses.mit;
   };
 }
diff --git a/pkgs/applications/blockchains/dcrd.nix b/pkgs/applications/blockchains/dcrd.nix
index 16d39e85da1..5943642ad61 100644
--- a/pkgs/applications/blockchains/dcrd.nix
+++ b/pkgs/applications/blockchains/dcrd.nix
@@ -1,34 +1,26 @@
-{ stdenv, lib, go, buildGoPackage, dep, fetchgit, git, cacert }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "dcrd";
-  version = "1.1.2";
-  rev = "refs/tags/v${version}";
-  goPackagePath = "github.com/decred/dcrd";
+  version = "1.5.1";
 
-  buildInputs = [ go git dep cacert ];
+  src = fetchFromGitHub {
+    owner = "decred";
+    repo = "dcrd";
+    rev = "refs/tags/release-v${version}";
+    sha256 = "1ggw289y1f4dqvj3w60q9bahq8bblbfjymn5xy04ldylr3qlxm9x";
+  };
 
-  GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
-  NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+  vendorSha256 = "03aw6mcvp1vr01ppxy673jf5hdryd5032cxndlkaiwg005mxp1dy";
 
-  src = fetchgit {
-    inherit rev;
-    url = "https://${goPackagePath}";
-    sha256 = "0xcynipdn9zmmralxj0hjrwyanvhkwfj2b1vvjk5zfc95s2xc1q9";
-  };
+  doCheck = false;
 
-  preBuild = ''
-    export CWD=$(pwd)
-    cd go/src/github.com/decred/dcrd
-    dep ensure
-    go install . ./cmd/...
-    cd $CWD
-  '';
+  subPackages = [ "." "cmd/dcrctl" "cmd/promptsecret" ];
 
   meta = {
     homepage = "https://decred.org";
     description = "Decred daemon in Go (golang)";
     license = with lib.licenses; [ isc ];
-    broken = stdenv.isLinux; # 2018-04-10
+    maintainers = with lib.maintainers; [ juaningan ];
   };
 }
diff --git a/pkgs/applications/blockchains/dcrwallet.nix b/pkgs/applications/blockchains/dcrwallet.nix
index 258aad8e1bd..779e7135618 100644
--- a/pkgs/applications/blockchains/dcrwallet.nix
+++ b/pkgs/applications/blockchains/dcrwallet.nix
@@ -1,43 +1,26 @@
-{ stdenv, lib, go, buildGoPackage, dep, fetchgit, git, cacert }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "dcrwallet";
-  version = "1.1.2";
-  rev = "refs/tags/v${version}";
-  goPackagePath = "github.com/decred/dcrwallet";
+  version = "1.5.1";
 
-  buildInputs = [ go git dep cacert ];
-
-  GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
-  NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
-
-  src = fetchgit {
-    inherit rev;
-    url = "https://${goPackagePath}";
-    sha256 = "058im4vmcmxcl5ir14h17wik5lagp2ay0p8qc3r99qmpfwvvz39x";
+  src = fetchFromGitHub {
+    owner = "decred";
+    repo = "dcrwallet";
+    rev = "refs/tags/v${version}";
+    sha256 = "0ij2mwvdxg78p9qbdf9wm7aaphfg4j8lqgrjyjsj3kyi1l458ds9";
   };
 
-  preBuild = ''
-    export CWD=$(pwd)
-    cd go/src/github.com/decred/dcrwallet
-    dep ensure
-  '';
-
-  buildPhase = ''
-    runHook preBuild
-    go build
-  '';
+  vendorSha256 = "0qrrr92cad399xwr64qa9h41wqqaj0dy5mw248g5v53zars541w7";
 
-  installPhase = ''
-    mkdir -pv $out/bin
-    cp -v dcrwallet $out/bin
-  '';
+  doCheck = false;
 
+  subPackages = [ "." ];
 
   meta = {
     homepage = "https://decred.org";
-    description = "Decred daemon in Go (golang)";
+    description = "A secure Decred wallet daemon written in Go (golang)";
     license = with lib.licenses; [ isc ];
-    broken = stdenv.isLinux; # 2018-04-10
+    maintainers = with lib.maintainers; [ juaningan ];
   };
 }
diff --git a/pkgs/applications/blockchains/ergo/default.nix b/pkgs/applications/blockchains/ergo/default.nix
new file mode 100644
index 00000000000..83a6cfaf05b
--- /dev/null
+++ b/pkgs/applications/blockchains/ergo/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, makeWrapper, jre }:
+
+stdenv.mkDerivation rec {
+  pname = "ergo";
+  version = "3.3.1";
+
+  src = fetchurl {
+    url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
+    sha256 = "1qr1vfb6mhm2hxl2ksydkhadm7phadn93lwm3f9zni01plk56bb5";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  dontUnpack = true;
+
+  installPhase = ''
+    makeWrapper ${jre}/bin/java $out/bin/ergo --add-flags "-jar $src"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Open protocol that implements modern scientific ideas in the blockchain area";
+    homepage = "https://ergoplatform.org/en/";
+    license = licenses.cc0;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ mmahut ];
+  };
+}
diff --git a/pkgs/applications/blockchains/go-ethereum.nix b/pkgs/applications/blockchains/go-ethereum.nix
index 6a443571d0f..f69489c7ffe 100644
--- a/pkgs/applications/blockchains/go-ethereum.nix
+++ b/pkgs/applications/blockchains/go-ethereum.nix
@@ -2,16 +2,19 @@
 
 buildGoModule rec {
   pname = "go-ethereum";
-  version = "1.9.13";
+  version = "1.9.19";
 
   src = fetchFromGitHub {
     owner = "ethereum";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1yqqflp73yvjy6bp05xd1nv5fc6p1nx7g4spbssxf3ws96pdh425";
+    sha256 = "08wf7qklk31dky2z0l2j9vbyr8721gkvy4dsc60afwrwihwd8lrp";
   };
 
-  modSha256 = "07xrw3fivfpbkg4mp8ghrj1bishfas82dbd780fymgs2h74iigf3";
+  runVend = true;
+  vendorSha256 = "1744df059bjksvih4653nnvb4kb1xvzdhypd0nnz36m1wrihqssv";
+
+  doCheck = false;
 
   subPackages = [
     "cmd/abidump"
@@ -39,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 asymmetric lionello xrelkd ];
+    maintainers = with maintainers; [ adisbladis lionello xrelkd ];
   };
 }
diff --git a/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 1c76ef8df28..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.3.2";
+  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 = "0xd3w564zij614ajg57n1qlvz0hd9l7219qxx81ai6b02b9a5g9h";
+    sha256 = "1ajpmsq4h37w3jzcxijg3myp3mvgbrjis6jrz1cl79m78ripb6cy";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/blockchains/litecoin.nix b/pkgs/applications/blockchains/litecoin.nix
index ec1658b595d..22cfa3dbb91 100644
--- a/pkgs/applications/blockchains/litecoin.nix
+++ b/pkgs/applications/blockchains/litecoin.nix
@@ -13,13 +13,13 @@ with stdenv.lib;
 mkDerivation rec {
 
   name = "litecoin" + (toString (optional (!withGui) "d")) + "-" + version;
-  version = "0.17.1";
+  version = "0.18.1";
 
   src = fetchFromGitHub {
     owner = "litecoin-project";
     repo = "litecoin";
     rev = "v${version}";
-    sha256 = "08a0ghs4aa9m3qv3ppydyshfibykdwxk07i1vcqvg0ycqisdpb7y";
+    sha256 = "11753zhyx1kmrlljc6kbjwrcb06dfcrsqvmw3iaki9a132qk6l5c";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
diff --git a/pkgs/applications/blockchains/lnd.nix b/pkgs/applications/blockchains/lnd.nix
index aff38e242f8..b6c7879c3b8 100644
--- a/pkgs/applications/blockchains/lnd.nix
+++ b/pkgs/applications/blockchains/lnd.nix
@@ -1,20 +1,36 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule, fetchFromGitHub, lib
+, tags ? [ "autopilotrpc" "signrpc" "walletrpc" "chainrpc" "invoicesrpc" "watchtowerrpc" ]
+}:
 
 buildGoModule rec {
   pname = "lnd";
-  version = "0.10.0-beta";
+  version = "0.10.3-beta";
 
   src = fetchFromGitHub {
     owner = "lightningnetwork";
     repo = "lnd";
     rev = "v${version}";
-    sha256 = "1amciz924s2h6qhy7w34jpv1jc25p5ayfxzvjph6hhx0bccrm88w";
+    sha256 = "129vi8z2sk4hagk7axa675nba6sbj9km88zlq8a1g8di7v2k9z6a";
   };
 
-  modSha256 = "15i4h3pkvyav9qsbfinzifram0knkylg24j6j0mxs4bnj80j4ycm";
+  vendorSha256 = "0a4bk2qry0isnrvl0adwikqn6imxwzlaq5j3nglb5rmwwq2cdz0r";
+
+  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";
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 cfd3998ee36..6ea075e2a36 100644
--- a/pkgs/applications/blockchains/monero-gui/default.nix
+++ b/pkgs/applications/blockchains/monero-gui/default.nix
@@ -4,7 +4,7 @@
 , qtmultimedia, qtxmlpatterns
 , qtquickcontrols, qtquickcontrols2
 , monero, unbound, readline, boost, libunwind
-, libsodium, pcsclite, zeromq, cppzmq
+, libsodium, pcsclite, zeromq, libgcrypt, libgpgerror
 , hidapi, libusb-compat-0_1, protobuf, randomx
 }:
 
@@ -12,13 +12,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "monero-gui";
-  version = "0.15.0.4";
+  version = "0.16.0.3";
 
   src = fetchFromGitHub {
     owner  = "monero-project";
     repo   = "monero-gui";
     rev    = "v${version}";
-    sha256 = "12m5fgnxkr11q2arx1m5ccpxqm5ljcvm6l547dwqn297zs5jim4z";
+    sha256 = "0iwjp8x5swy8i8pzrlm5v55awhm54cf48pm1vz98lcq361lhfzk6";
   };
 
   nativeBuildInputs = [ qmake pkgconfig wrapQtAppsHook ];
@@ -27,9 +27,9 @@ stdenv.mkDerivation rec {
     qtbase qtdeclarative qtgraphicaleffects
     qtmultimedia qtquickcontrols qtquickcontrols2
     qtxmlpatterns
-    monero unbound readline
+    monero unbound readline libgcrypt libgpgerror
     boost libunwind libsodium pcsclite zeromq
-    cppzmq hidapi libusb-compat-0_1 protobuf randomx
+    hidapi libusb-compat-0_1 protobuf randomx
   ];
 
   NIX_CFLAGS_COMPILE = [ "-Wno-error=format-security" ];
@@ -52,6 +52,10 @@ stdenv.mkDerivation rec {
   preBuild = ''
     sed -i s#/opt/monero-wallet-gui##g Makefile
     make -C src/zxcvbn-c
+
+    # use nixpkgs monero sources
+    rmdir monero
+    ln -s "${monero.src}" monero
   '';
 
   desktopItem = makeDesktopItem {
@@ -60,7 +64,7 @@ stdenv.mkDerivation rec {
     icon = "monero";
     desktopName = "Monero";
     genericName = "Wallet";
-    categories  = "Application;Network;Utility;";
+    categories  = "Network;Utility;";
   };
 
   postInstall = ''
diff --git a/pkgs/applications/blockchains/monero/default.nix b/pkgs/applications/blockchains/monero/default.nix
index d1abd395657..f1186564119 100644
--- a/pkgs/applications/blockchains/monero/default.nix
+++ b/pkgs/applications/blockchains/monero/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub
 , cmake, pkgconfig
-, boost, miniupnpc, openssl, unbound, cppzmq
+, 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.15.0.1";
+  version = "0.16.0.3";
 
   src = fetchFromGitHub {
     owner = "monero-project";
     repo = "monero";
     rev = "v${version}";
-    sha256 = "0sypa235lf2bbib4b71xpaw39h9304slgsvnsz8wmy9fq1zx009m";
+    sha256 = "1r9x3712vhb24dxxirfiwj5f9x0h4m7x0ngiiavf5983dfdlgz33";
     fetchSubmodules = true;
   };
 
@@ -24,13 +24,14 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     boost miniupnpc openssl unbound
-    cppzmq zeromq pcsclite readline
+    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 = [
     "-DCMAKE_BUILD_TYPE=Release"
+    "-DUSE_DEVICE_TREZOR=ON"
     "-DBUILD_GUI_DEPS=ON"
     "-DReadline_ROOT_DIR=${readline.dev}"
   ] ++ stdenv.lib.optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
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 02f2249862d..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.19.1";
+  version = "nc0.20.1";
   name = "namecoin" + toString (optional (!withGui) "d") + "-" + version;
 
   src = fetchFromGitHub {
     owner = "namecoin";
     repo = "namecoin-core";
     rev = version;
-    sha256 = "13rdvngrl2w0gk7km3sd9fy8yxzgxlkcwn50ajsbrhgzl8kx4q7m";
+    sha256 = "1wpfp9y95lmfg2nk1xqzchwck1wk6gwkya1rj07mf5in9jngxk9z";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/blockchains/parity/default.nix b/pkgs/applications/blockchains/openethereum/default.nix
index e390b78b86d..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 = "2.7.2";
+  pname = "openethereum";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
-    owner = "paritytech";
-    repo = "parity-ethereum";
+    owner = "openethereum";
+    repo = "openethereum";
     rev = "v${version}";
-    sha256 = "09cvqk0h9c26famh3f1nc3g74cd0zk6klys977yr1f13bgqmzx0x";
+    sha256 = "08dkcrga1x18csh6pw6f54x5xwijppyjhg46cf4p452xc1l3a6ir";
   };
 
-  cargoSha256 = "1fdymy8hvn137i5y4flyhlxwjxkd2cd6gq81i1429gk7j3h085ig";
+  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/create_deps.sh b/pkgs/applications/blockchains/wasabibackend/create_deps.sh
new file mode 100644
index 00000000000..814f92a341a
--- /dev/null
+++ b/pkgs/applications/blockchains/wasabibackend/create_deps.sh
@@ -0,0 +1,98 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p dotnet-sdk_3 nixfmt
+
+# Run this script to generate deps.nix
+# ./create_deps.sh /path/to/package/source/checkout > deps.nix
+
+# TODO: consolidate with other dotnet deps generation scripts by which
+#       this script is inspired:
+#       - pkgs/servers/nosql/eventstore/create-deps.sh
+#       - pkgs/development/dotnet-modules/python-language-server/create_deps.sh
+
+URLBASE="https://www.nuget.org/api/v2/package"
+
+DEPS_HEADER="
+{ fetchurl }:
+let
+  nugetUrlBase = \"$URLBASE\";
+  fetchNuGet = { name, version, sha256 }: fetchurl {
+    inherit sha256;
+    url = \"\${nugetUrlBase}/\${name}/\${version}\";
+  };
+in ["
+
+DEPS_FOOTER="]"
+
+DEPS_TEMPLATE="
+(fetchNuGet {
+  name = \"%s\";
+  version = \"%s\";
+  sha256 = \"%s\";
+})"
+
+
+function generate_restore_log() {
+  checkout_path=$1
+  >&2 echo "generating restore log for $checkout_path..."
+  cd $checkout_path
+  dotnet nuget locals all --clear
+  dotnet restore -v normal --no-cache WalletWasabi.Backend -r linux-x64
+  cd -
+}
+
+function process_restore_log() {
+  restore_log=$1
+  >&2 echo "processing restore log..."
+  while read line; do
+    if echo $line | grep -q "^[[:space:]]*Installing"; then
+      l=$(echo $line | xargs)
+      l=${l#Installing }
+      l=${l%.}
+      echo $l
+    fi
+  done < $restore_log
+}
+
+function prefetch_deps() {
+  processed_log=$1
+  >&2 echo "prefetching deps..."
+  while read line; do
+    name=$(echo $line | cut -d' ' -f1)
+    >&2 echo "prefetching '$name' version: $version"
+    version=$(echo $line | cut -d' ' -f2)
+    hash=$(nix-prefetch-url "$URLBASE/$name/$version" 2>/dev/null)
+    echo "$name $version $hash"
+  done < $processed_log
+}
+
+function generate_deps_expression() {
+  packages=$1
+  >&2 echo "generating deps nix-expression..."
+  echo $DEPS_HEADER
+  while read line; do
+    name=$(echo $line | cut -d' ' -f1)
+    version=$(echo $line | cut -d' ' -f2)
+    hash=$(echo $line | cut -d' ' -f3)
+    printf "$DEPS_TEMPLATE" $name $version $hash
+  done < $packages
+  echo $DEPS_FOOTER
+}
+
+function main() {
+  checkout_path=$1
+  tmpdir=$(mktemp -d)
+  generate_restore_log $checkout_path > $tmpdir/restore.log
+  process_restore_log $tmpdir/restore.log > $tmpdir/processed.log
+  prefetch_deps $tmpdir/processed.log > $tmpdir/prefetched.log
+  generate_deps_expression $tmpdir/prefetched.log > $tmpdir/deps.nix
+  nixfmt $tmpdir/deps.nix
+  cat $tmpdir/deps.nix
+  rm -rf $tmpdir
+}
+
+if [ ! -d "$1" ]; then
+    >&2 echo "First argument must be a directory, the path to the package source checkout"
+    exit 1
+fi
+
+main $@
diff --git a/pkgs/applications/blockchains/wasabibackend/default.nix b/pkgs/applications/blockchains/wasabibackend/default.nix
new file mode 100644
index 00000000000..0324f024423
--- /dev/null
+++ b/pkgs/applications/blockchains/wasabibackend/default.nix
@@ -0,0 +1,100 @@
+{ stdenv
+, fetchFromGitHub
+, fetchurl
+, makeWrapper
+, Nuget
+, dotnetCorePackages
+, openssl
+, zlib
+}:
+
+let
+  deps = import ./deps.nix { inherit fetchurl; };
+
+  dotnet-sdk = dotnetCorePackages.sdk_3_1;
+  dotnet-aspnetcore = dotnetCorePackages.aspnetcore_3_1;
+
+  nugetSource = stdenv.mkDerivation {
+    pname = "${pname}-nuget-deps";
+    inherit version;
+
+    dontUnpack = true;
+    dontInstall = true;
+
+    nativeBuildInputs = [ Nuget ];
+
+    buildPhase = ''
+      export HOME=$(mktemp -d)
+      mkdir -p $out/lib
+
+      nuget sources Disable -Name "nuget.org"
+      for package in ${toString deps}; do
+        nuget add $package -Source $out/lib
+      done
+    '';
+  };
+
+  pname = "WasabiBackend";
+  version = "1.1.11.1";
+
+  projectName = "WalletWasabi.Backend";
+  projectConfiguration = "Release";
+  projectRuntime = "linux-x64";
+in
+
+stdenv.mkDerivation rec {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "zkSNACKs";
+    repo = "WalletWasabi";
+    rev = "v${version}";
+    sha256 = "0kxww8ywhld00b0qsv5jh5s19jqpahnb9mvshmjnp3cb840j12a7";
+  };
+
+  buildInputs = [
+    Nuget
+    dotnet-sdk
+    makeWrapper
+  ];
+
+  buildPhase = ''
+    export HOME=$(mktemp -d)
+    export DOTNET_CLI_TELEMETRY_OPTOUT=1
+    export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+    export DOTNET_ROOT="${dotnet-sdk}/bin"
+
+    nuget sources Disable -Name "nuget.org"
+
+    dotnet restore \
+      --source ${nugetSource}/lib \
+      --runtime ${projectRuntime} \
+      ${projectName}
+
+    dotnet publish \
+      --no-restore \
+      --runtime ${projectRuntime} \
+      --configuration ${projectConfiguration} \
+      ${projectName}
+  '';
+
+  installPhase = ''
+    mkdir -p $out
+    cp -r ${projectName}/bin/${projectConfiguration}/netcoreapp3.1/${projectRuntime}/publish $out/lib
+    mkdir -p $out/bin
+    makeWrapper $out/lib/WalletWasabi.Backend $out/bin/${pname} \
+      --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ openssl zlib ]} \
+      --run "cd $out/lib"
+  '';
+
+  # If we don't disable stripping the executable fails to start with segfault
+  dontStrip = true;
+
+  meta = with stdenv.lib; {
+    description = "Backend for the Wasabi Wallet";
+    homepage = "https://wasabiwallet.io/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mmahut ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/blockchains/wasabibackend/deps.nix b/pkgs/applications/blockchains/wasabibackend/deps.nix
new file mode 100644
index 00000000000..ff5184ba860
--- /dev/null
+++ b/pkgs/applications/blockchains/wasabibackend/deps.nix
@@ -0,0 +1,951 @@
+{ fetchurl }:
+let
+  nugetUrlBase = "https://www.nuget.org/api/v2/package";
+  fetchNuGet = { name, version, sha256 }:
+    fetchurl {
+      inherit sha256;
+      url = "${nugetUrlBase}/${name}/${version}";
+    };
+in [
+
+  (fetchNuGet {
+    name = "System.Xml.XmlSerializer";
+    version = "4.0.11";
+    sha256 = "01nzc3gdslw90qfykq4qzr2mdnqxjl4sj0wp3fixiwdmlmvpib5z";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Overlapped";
+    version = "4.0.1";
+    sha256 = "0fi79az3vmqdp9mv3wh2phblfjls89zlj6p9nc3i9f6wmfarj188";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal";
+    version = "4.0.1";
+    sha256 = "1nbzdfqvzzbgsfdd5qsh94d7dbg2v4sw0yx6himyn52zf8z6007p";
+  })
+  (fetchNuGet {
+    name = "System.Dynamic.Runtime";
+    version = "4.0.11";
+    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
+  })
+  (fetchNuGet {
+    name = "System.Private.DataContractSerialization";
+    version = "4.1.1";
+    sha256 = "1xk9wvgzipssp1393nsg4n16zbr5481k03nkdlj954hzq5jkx89r";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Registry";
+    version = "4.0.0";
+    sha256 = "1spf4m9pikkc19544p29a47qnhcd885klncahz133hbnyqbkmz9k";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.0.1";
+    sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.0.1";
+    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.ILGeneration";
+    version = "4.0.1";
+    sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.0.0";
+    sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.0.1";
+    sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Cng";
+    version = "4.2.0";
+    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";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.0.0";
+    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.IO.Compression";
+    version = "4.1.0";
+    sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileProviders.Physical";
+    version = "2.0.0";
+    sha256 = "0l0l92g7sq4122n139av1pn1jl6wlw92hjmdnr47xdss0ndmwrs3";
+  })
+  (fetchNuGet {
+    name = "Microsoft.VisualStudio.Web.CodeGeneration.Contracts";
+    version = "2.0.2";
+    sha256 = "1fs6sbjn0chx6rv38d61zgk8mhyyxz44xp4wsfya0lvkckyszyn1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App";
+    version = "2.0.5";
+    sha256 = "0qb7k624w7l0zhapdp519ymqg84a67r8zyd8cpj42hywsgb0dqv6";
+  })
+  (fetchNuGet {
+    name = "Microsoft.VisualStudio.Web.CodeGeneration.Tools";
+    version = "2.0.2";
+    sha256 = "0fkjm06irs53d77z29i6dwj5pjhgj9ivhad8v39ghnrwasc0ivq6";
+  })
+  (fetchNuGet {
+    name = "NuGet.Frameworks";
+    version = "4.0.0";
+    sha256 = "0nar684cm53cvzx28gzl6kmpg9mrfr1yv29323din7xqal4pscgq";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.0.0";
+    sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.0.0";
+    sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build.Runtime";
+    version = "15.3.409";
+    sha256 = "135ycnqz5jfg61y5zaapgc7xdpjx2aq4icmxb9ph7h5inl445q7q";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "10.0.1";
+    sha256 = "15ncqic3p2rzs8q8ppi0irl2miq75kilw4lh8yfgjq96id0ds3hv";
+  })
+  (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";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.DotNetHostPolicy";
+    version = "2.0.5";
+    sha256 = "0v5csskiwpk8kz8wclqad8kcjmxr7ik4w99wl05740qvaag3qysk";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "2.0.1";
+    sha256 = "0d44wjxphs1ck838v7dapm0ag0b91zpiy33cr5vflsrwrqgj51dk";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.3.0";
+    sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Primitives";
+    version = "4.3.0";
+    sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.3.0";
+    sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Formatters";
+    version = "4.3.0";
+    sha256 = "114j35n8gcvn3sqv9ar36r1jjq0y1yws9r0yk8i6wm4aq7n9rs0m";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XmlDocument";
+    version = "4.3.0";
+    sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.3.0";
+    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.3.0";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.3.0";
+    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+  })
+  (fetchNuGet {
+    name = "System.ObjectModel";
+    version = "4.3.0";
+    sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
+  })
+  (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.Threading";
+    version = "4.3.0";
+    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.3.0";
+    sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb";
+  })
+  (fetchNuGet {
+    name = "System.IO.Pipes";
+    version = "4.0.0";
+    sha256 = "0fxfvcf55s9q8zsykwh8dkq2xb5jcqnml2ycq8srfry2l07h18za";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.3.0";
+    sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.3.0";
+    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.3.0";
+    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XDocument";
+    version = "4.3.0";
+    sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.3.0";
+    sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.TypeConverter";
+    version = "4.3.0";
+    sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+  })
+  (fetchNuGet {
+    name = "System.Dynamic.Runtime";
+    version = "4.3.0";
+    sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.3.0";
+    sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.3.0";
+    sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.3.0";
+    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+  })
+  (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 = "Microsoft.Build.Utilities.Core";
+    version = "15.3.409";
+    sha256 = "1p8a0l9sxmjj86qha748qjw2s2n07q8mn41mj5r6apjnwl27ywnf";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.CodePages";
+    version = "4.0.1";
+    sha256 = "00wpm3b9y0k996rm9whxprngm8l500ajmzgy2ip9pgwk0icp06y3";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build";
+    version = "15.3.409";
+    sha256 = "0vzq6csp2yys9s96c7i37bjml439rdi47g8f5rzqdr7xf5a1jk81";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Dataflow";
+    version = "4.6.0";
+    sha256 = "0a1davr71wssyn4z1hr75lk82wqa0daz0vfwkmg1fm3kckfd72k1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "2.0.0";
+    sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.DotNetHostResolver";
+    version = "2.0.5";
+    sha256 = "1sz2fdp8fdwz21x3lr2m1zhhrbix6iz699fjkwiryqdjl4ygd3hw";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.1.0";
+    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.1.0";
+    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.3.0";
+    sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tools";
+    version = "4.3.0";
+    sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Primitives";
+    version = "4.3.0";
+    sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel";
+    version = "4.3.0";
+    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+  })
+  (fetchNuGet {
+    name = "System.Collections.NonGeneric";
+    version = "4.3.0";
+    sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Specialized";
+    version = "4.3.0";
+    sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.ILGeneration";
+    version = "4.3.0";
+    sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.3.0";
+    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.3.0";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.3.0";
+    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.3.0";
+    sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+  })
+  (fetchNuGet {
+    name = "System.AppContext";
+    version = "4.1.0";
+    sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
+  })
+  (fetchNuGet {
+    name = "System.ObjectModel";
+    version = "4.0.12";
+    sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Concurrent";
+    version = "4.0.12";
+    sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.0.1";
+    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.0.1";
+    sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.1.0";
+    sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
+  })
+  (fetchNuGet {
+    name = "System.Net.Sockets";
+    version = "4.1.0";
+    sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Timer";
+    version = "4.0.1";
+    sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.0.1";
+    sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Calendars";
+    version = "4.0.1";
+    sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.0.0";
+    sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.0.1";
+    sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tools";
+    version = "4.0.1";
+    sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
+  })
+  (fetchNuGet {
+    name = "System.Console";
+    version = "4.0.0";
+    sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.0.1";
+    sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.0.0";
+    sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.0.11";
+    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.0.1";
+    sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.0.1";
+    sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.0.1";
+    sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression.ZipFile";
+    version = "4.0.1";
+    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.2.0";
+    sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.1.0";
+    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.0.11";
+    sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.0.0";
+    sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression";
+    version = "4.1.0";
+    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";
+    version = "4.1.0";
+    sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.1.0";
+    sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XDocument";
+    version = "4.0.11";
+    sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.0.11";
+    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.0.11";
+    sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
+  })
+  (fetchNuGet {
+    name = "System.Net.Primitives";
+    version = "4.0.11";
+    sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.1.0";
+    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.1.0";
+    sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.X509Certificates";
+    version = "4.1.0";
+    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";
+    version = "4.1.0";
+    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.1.0";
+    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Thread";
+    version = "4.0.0";
+    sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.TraceSource";
+    version = "4.0.0";
+    sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.1.0";
+    sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Primitives";
+    version = "4.1.1";
+    sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XmlDocument";
+    version = "4.0.1";
+    sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
+    version = "3.1.2";
+    sha256 = "19wfh9yg4n2khbl7pvf6ngx95m5p8lw4l9y935pv7nh4xgwk02p9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App.Runtime.linux-x64";
+    version = "3.1.2";
+    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";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "3.1.0";
+    sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.7.0";
+    sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XPath";
+    version = "4.0.1";
+    sha256 = "0fjqgb6y66d72d5n8qq1h213d9nv2vi8mpv8p28j3m9rccmsh04m";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "1.0.0";
+    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";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.JsonPatch";
+    version = "3.1.1";
+    sha256 = "0c0aaz9rlh9chc53dnv5jryp0x0415hipaizrmih3kzwd3fmqpml";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "12.0.2";
+    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";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.FileVersionInfo";
+    version = "4.0.0";
+    sha256 = "1s5vxhy7i09bmw51kxqaiz9zaj9am8wsjyz13j85sp23z267hbv3";
+  })
+  (fetchNuGet {
+    name = "NBitcoin.Secp256k1";
+    version = "1.0.1";
+    sha256 = "0j3a8iamqh06b7am6k8gh6d41zvrnmsif3525bw742jw5byjypdl";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
+    version = "3.1.1";
+    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 = "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";
+  })
+  (fetchNuGet {
+    name = "Swashbuckle.AspNetCore";
+    version = "5.0.0";
+    sha256 = "0rn2awmzrsrppk97xbbwk4kq1mys9bygb5xhl6mphbk0hchrvh09";
+  })
+  (fetchNuGet {
+    name = "Swashbuckle.AspNetCore.SwaggerGen";
+    version = "5.0.0";
+    sha256 = "00swg2avqnb38q2bsxljd34n8rpknp74h9vbn0fdnfds3a32cqr4";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.ApiDescription.Server";
+    version = "3.0.0";
+    sha256 = "13a47xcqyi5gz85swxd4mgp7ndgl4kknrvv3xwmbn71hsh953hsh";
+  })
+  (fetchNuGet {
+    name = "Swashbuckle.AspNetCore.Swagger";
+    version = "5.0.0";
+    sha256 = "1341nv8nmh6avs3y7w2szzir5qd0bndxwrkdmvvj3hcxj1126w2f";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Private.Uri";
+    version = "4.0.1";
+    sha256 = "0ic5dgc45jkhcr1g9xmmzjm7ffiw4cymm0fprczlx4fnww4783nm";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding";
+    version = "4.0.11";
+    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";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Primitives";
+    version = "4.0.1";
+    sha256 = "1zxrpvixr5fqzkxpnin6g6gjq6xajy1snghz99ds2dwbhm276rhz";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime";
+    version = "4.1.0";
+    sha256 = "0mjr2bi7wvnkphfjqgkyf8vfyvy15a829jz6mivl6jmksh2bx40m";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "1jmgs7hynb2rff48623wnyb37558bbh1q28k9c249j5r5sgsr5kr";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Globalization";
+    version = "4.0.11";
+    sha256 = "0240rp66pi5bw1xklmh421hj7arwcdmjmgfkiq1cbc6nrm8ah286";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Collections";
+    version = "4.0.11";
+    sha256 = "1x44bm1cgv28zmrp095wf9mn8a6a0ivnzp9v14dcbhx06igxzgg0";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "05ndbai4vpqrry0ghbfgqc8xblmplwjgndxmdn1zklqimczwjg2d";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Runtime.Extensions";
+    version = "4.1.0";
+    sha256 = "0x1cwd7cvifzmn5x1wafvj75zdxlk3mxy860igh3x1wx0s8167y4";
+  })
+  (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";
+  })
+]
\ No newline at end of file
diff --git a/pkgs/applications/blockchains/wasabiwallet/default.nix b/pkgs/applications/blockchains/wasabiwallet/default.nix
index 6b9630fa6b7..a098f14668e 100644
--- a/pkgs/applications/blockchains/wasabiwallet/default.nix
+++ b/pkgs/applications/blockchains/wasabiwallet/default.nix
@@ -1,12 +1,34 @@
-{ stdenv, fetchurl, makeDesktopItem, openssl, xorg, curl, fontconfig, krb5, zlib, dotnet-netcore }:
+{ stdenv
+, fetchurl
+, makeDesktopItem
+, curl
+, dotnet-netcore
+, fontconfig
+, krb5
+, openssl
+, xorg
+, zlib
+}:
 
+let
+  libPath = stdenv.lib.makeLibraryPath [
+    curl
+    dotnet-netcore
+    fontconfig.lib
+    krb5
+    openssl
+    stdenv.cc.cc.lib
+    xorg.libX11
+    zlib
+  ];
+in
 stdenv.mkDerivation rec {
   pname = "wasabiwallet";
-  version = "1.1.9.2";
+  version = "1.1.11.1";
 
   src = fetchurl {
     url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/WasabiLinux-${version}.tar.gz";
-    sha256 = "0qcgrw106rqcls6p5iq02sq3w6xrzhc5z7w8v5almbw7ikv6f0s2";
+    sha256 = "04v8f2h67aqvcb5a8vmzbp2sqnq7g4m0v1ng52ccb4ii668ya8hy";
   };
 
   dontBuild = true;
@@ -18,7 +40,7 @@ stdenv.mkDerivation rec {
     desktopName = "Wasabi";
     genericName = "Bitcoin wallet";
     comment = meta.description;
-    categories = "Application;Network;Utility;";
+    categories = "Network;Utility;";
   };
 
   installPhase = ''
@@ -27,7 +49,7 @@ stdenv.mkDerivation rec {
     cd $out/opt/${pname}
     for i in $(find . -type f -name '*.so') wassabee
       do
-        patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ openssl stdenv.cc.cc.lib xorg.libX11 curl fontconfig.lib krb5 zlib dotnet-netcore ]} $i
+        patchelf --set-rpath ${libPath} $i
       done
     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" wassabee
     ln -s $out/opt/${pname}/wassabee $out/bin/${pname}
diff --git a/pkgs/applications/blockchains/whirlpool-gui/default.nix b/pkgs/applications/blockchains/whirlpool-gui/default.nix
new file mode 100644
index 00000000000..9a660bb8bff
--- /dev/null
+++ b/pkgs/applications/blockchains/whirlpool-gui/default.nix
@@ -0,0 +1,104 @@
+{ stdenv, fetchFromGitHub, callPackage, makeWrapper, makeDesktopItem
+, nodejs, yarn, electron_7, jre8, tor }:
+
+let
+  system = stdenv.hostPlatform.system;
+  electron = electron_7;
+
+in stdenv.mkDerivation rec {
+  pname = "whirlpool-gui";
+  version = "0.10.1";
+
+  src = fetchFromGitHub {
+    owner = "Samourai-Wallet";
+    repo = pname;
+    rev = version;
+    sha256 = "ru6WJQRulhnQCPY2E0x9M6xXtFdj/pg2fu4HpQxhImU=";
+  };
+
+  yarnCache = stdenv.mkDerivation {
+    name = "${pname}-${version}-${system}-yarn-cache";
+    inherit src;
+    phases = [ "unpackPhase" "buildPhase" ];
+    nativeBuildInputs = [ yarn ];
+    buildPhase = ''
+      export HOME=$NIX_BUILD_ROOT
+
+      yarn config set yarn-offline-mirror $out
+      yarn --frozen-lockfile --ignore-scripts --ignore-platform \
+        --ignore-engines --no-progress --non-interactive
+    '';
+
+    outputHashMode = "recursive";
+    outputHashAlgo = "sha256";
+    outputHash = {
+      x86_64-linux = "6fl4cSwHXWgQcYlqxCae0p1Ppcb9fI5fFrxm7y6wxTo=";
+    }.${system} or (throw "Unsupported platform ${system}");
+  };
+
+  nativeBuildInputs = [ makeWrapper nodejs yarn ];
+
+  configurePhase = ''
+    # Yarn and bundler wants a real home directory to write cache, config, etc to
+    export HOME=$NIX_BUILD_ROOT
+
+    # Make yarn install packages from our offline cache, not the registry
+    yarn config --offline set yarn-offline-mirror ${yarnCache}
+  '';
+
+  buildPhase = ''
+    yarn install --offline --ignore-scripts --frozen-lockfile --no-progress --non-interactive
+
+    patchShebangs node_modules/
+
+    yarn build
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,share,libexec/whirlpool-gui/app}
+
+    # install production dependencies
+    yarn install \
+      --offline --frozen-lockfile --ignore-scripts \
+      --no-progress --non-interactive \
+      --production --no-bin-links \
+      --modules-folder $out/libexec/whirlpool-gui/node_modules
+
+    # copy application
+    cp -r app/{dist,app.html,main.prod.js,main.prod.js.map,img} $out/libexec/whirlpool-gui/app
+    cp -r package.json resources $out/libexec/whirlpool-gui
+
+    # make desktop item
+    ln -s "${desktopItem}/share/applications" "$out/share/applications"
+
+    # wrap electron
+    makeWrapper '${electron}/bin/electron' "$out/bin/whirlpool-gui" \
+      --add-flags "$out/libexec/whirlpool-gui" \
+      --prefix PATH : "${jre8}/bin:${tor}/bin"
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = "whirlpool-gui";
+    exec = "whirlpool-gui";
+    icon = "whirlpool-gui";
+    desktopName = "Whirlpool";
+    genericName = "Whirlpool";
+    comment = meta.description;
+    categories = "Network;";
+    extraEntries = ''
+      StartupWMClass=whrilpool-gui
+    '';
+  };
+
+  passthru.prefetchYarnCache = stdenv.lib.overrideDerivation yarnCache (d: {
+    outputHash = stdenv.lib.fakeSha256;
+  });
+
+  meta = with stdenv.lib; {
+    description = "Desktop GUI for Whirlpool by Samourai-Wallet";
+    homepage = https://www.samouraiwallet.com/whirlpool;
+    license = licenses.unlicense;
+    maintainers = [ maintainers.offline ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/blockchains/wownero.nix b/pkgs/applications/blockchains/wownero.nix
index 1094d7f0f7b..8d45e1a96b5 100644
--- a/pkgs/applications/blockchains/wownero.nix
+++ b/pkgs/applications/blockchains/wownero.nix
@@ -1,19 +1,26 @@
-{ stdenv, fetchFromGitHub, cmake, boost, miniupnpc_2, openssl, unbound
-, readline, libsodium, rapidjson
+{ stdenv, fetchgit, cmake, boost, miniupnpc_2, openssl, unbound
+, readline, libsodium, rapidjson, fetchurl
 }:
 
 with stdenv.lib;
 
+let
+  randomwowVersion = "1.1.7";
+  randomwow = fetchurl {
+    url = "https://github.com/wownero/RandomWOW/archive/${randomwowVersion}.tar.gz";
+    sha256 = "1xp76zf01hnhnk6rjvqjav9n9pnvxzxlzqa5rc574d1c2qczfy3q";
+  };
+in
+
 stdenv.mkDerivation rec {
   pname = "wownero";
-  version = "0.7.0";
-
-  src = fetchFromGitHub {
-    owner = "wownero";
-    repo = "wownero";
-    rev    = "v${version}";
-    sha256 = "0lji24s6346qxcj4pmylv8byb8fnqzpmz81rx4i3zhc1bcsvdwas";
-    fetchSubmodules = true;
+  version = "0.8.0.1";
+
+  src = fetchgit {
+    url = "https://git.wownero.com/wownero/wownero.git";
+    rev = "v${version}";
+    sha256 = "15443xv6q1nw4627ajk6k4ghhahvh82lb4gyb8nvq753p2v838g3";
+    fetchSubmodules = false;
   };
 
   nativeBuildInputs = [ cmake ];
@@ -22,6 +29,12 @@ stdenv.mkDerivation rec {
     boost miniupnpc_2 openssl unbound rapidjson readline libsodium
   ];
 
+  postUnpack = ''
+    rm -r $sourceRoot/external/RandomWOW
+    unpackFile ${randomwow}
+    mv RandomWOW-${randomwowVersion} $sourceRoot/external/RandomWOW
+  '';
+
   cmakeFlags = [
     "-DReadline_ROOT_DIR=${readline.dev}"
     "-DMANUAL_SUBMODULES=ON"
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..f1e680f60e6 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 = [ galagora ];
+        canary = [ meutraa ];
+        dev = canary;
+      }."${channel}";
     };
   }
   ''
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index cd6b46880b4..3a0bef24ab7 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 = "3.6.3.0"; # "Android Studio 3.6.3"
-    build = "192.6392135";
-    sha256Hash = "0apxmp341m7mbpm2df3qvsbaifwy6yqq746kbhbwlw8bn9hrzv1k";
+    version = "4.0.1.0"; # "Android Studio 4.0.1"
+    build = "193.6626763";
+    sha256Hash = "15vm7fvi8c286wx9f28z6ysvm8wqqda759qql0zy9simwx22gy7j";
   };
   betaVersion = {
-    version = "4.0.0.14"; # "Android Studio 4.0 Beta 5"
-    build = "193.6401094";
-    sha256Hash = "11fmpf58z44i78ldkapzivz6md65744vqczzbwv8mkjkv9nz95rs";
+    version = "4.1.0.14"; # "Android Studio 4.1 Beta 4"
+    build = "201.6667167";
+    sha256Hash = "11lkwcbzdl86cyz4lci65cx9z5jjhrc4z40maqx2r5hw1xka9290";
   };
   latestVersion = { # canary & dev
-    version = "4.1.0.8"; # "Android Studio 4.1 Canary 8"
-    build = "193.6423924";
-    sha256Hash = "0ksgmhz9vhkw2mxzjapli0w6203ssd8ddgb0dq06rck8v7ysy8bp";
+    version = "4.2.0.7"; # "Android Studio 4.2 Canary 7"
+    build = "201.6720134";
+    sha256Hash = "1c9s6rd0z596qr7hbil5rl3fqby7c8h7ma52d1qj5rxra73k77nz";
   };
 in {
   # Attributes are named by their corresponding release channels
diff --git a/pkgs/applications/editors/apostrophe/default.nix b/pkgs/applications/editors/apostrophe/default.nix
index 391a8734563..b3902293718 100644
--- a/pkgs/applications/editors/apostrophe/default.nix
+++ b/pkgs/applications/editors/apostrophe/default.nix
@@ -11,14 +11,14 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "apostrophe";
-  version = "2.2.0.2";
+  version = "2.2.0.3";
 
   src = fetchFromGitLab {
     owner  = "somas";
     repo   = pname;
     domain = "gitlab.gnome.org";
     rev    = "v${version}";
-    sha256 = "13wvfkg0jw9mayd9ifzkqnhf8fmfjgr1lsj4niqbyrw130y9r9f6";
+    sha256 = "06bl1hc69ixk2vcb2ig74mwid14sl5zq6rfna7lx9na6j3l04879";
   };
 
   nativeBuildInputs = [ meson ninja cmake pkgconfig desktop-file-utils
diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix
index fbe08dbfe7b..5f26fa23bc2 100644
--- a/pkgs/applications/editors/atom/default.nix
+++ b/pkgs/applications/editors/atom/default.nix
@@ -3,14 +3,14 @@
 let
   versions = {
     atom = {
-      version = "1.42.0";
-      sha256 = "1ira528nwxi30jfwyivlac3wkkqb9d2z4jhxwq5m7mnpm5yli6jy";
+      version = "1.48.0";
+      sha256 = "1693bxbylf6jhld9bdcr5pigk36wqlbj89praldpz9s96yxig9s1";
     };
 
     atom-beta = {
-      version = "1.43.0";
+      version = "1.49.0";
       beta = 0;
-      sha256 = "06if3w5hx7njmyal0012zawn8f5af1z4bjcbzj2c0gd15nlsgm95";
+      sha256 = "1fr6m4a7shdj3wpn6g4n95cqpkkg2x9srwjf7bqxv9f3d5jb1y33";
     };
   };
 
@@ -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/atom/env.nix b/pkgs/applications/editors/atom/env.nix
index cf783053679..5e3c1070ad2 100644
--- a/pkgs/applications/editors/atom/env.nix
+++ b/pkgs/applications/editors/atom/env.nix
@@ -1,6 +1,7 @@
 { stdenv, lib, zlib, glib, alsaLib, dbus, gtk3, atk, pango, freetype, fontconfig
 , libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpgerror, nspr
 , gconf, nss, xorg, libcap, systemd, libnotify, libsecret, libuuid, at-spi2-atk
+, at-spi2-core
 }:
 
 let
@@ -10,7 +11,7 @@ let
     xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
     xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
     xorg.libXcursor xorg.libxkbfile xorg.libXScrnSaver libcap systemd libnotify
-    xorg.libxcb libsecret libuuid at-spi2-atk
+    xorg.libxcb libsecret libuuid at-spi2-atk at-spi2-core
   ];
 
   libPathNative = lib.makeLibraryPath packages;
diff --git a/pkgs/applications/editors/dit/default.nix b/pkgs/applications/editors/dit/default.nix
index f973e67599c..e89267d04c5 100644
--- a/pkgs/applications/editors/dit/default.nix
+++ b/pkgs/applications/editors/dit/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dit";
-  version = "0.6";
+  version = "0.7";
 
   src = fetchurl {
     url = "https://hisham.hm/dit/releases/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0ryvm54xxkg2gcgz4r8zdxrl6j2h8mgg9nfqmdmdr31qkcj8wjsq";
+    sha256 = "0cmbyzqfz2qa83cg8lpjifn34wmx34c5innw485zh4vk3c0k8wlj";
   };
 
   buildInputs = [ ncurses lua ]
diff --git a/pkgs/applications/editors/eclipse/build-eclipse.nix b/pkgs/applications/editors/eclipse/build-eclipse.nix
index 8b6a0c164e9..218fbe8fc1f 100644
--- a/pkgs/applications/editors/eclipse/build-eclipse.nix
+++ b/pkgs/applications/editors/eclipse/build-eclipse.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     comment = "Integrated Development Environment";
     desktopName = "Eclipse IDE";
     genericName = "Integrated Development Environment";
-    categories = "Application;Development;";
+    categories = "Development;";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix
index 66bdfb15c69..87ac29b58e9 100644
--- a/pkgs/applications/editors/eclipse/default.nix
+++ b/pkgs/applications/editors/eclipse/default.nix
@@ -8,15 +8,15 @@
 
 assert stdenv ? glibc;
 
-# http://download.eclipse.org/eclipse/downloads/ is the main place to
+# https://download.eclipse.org/eclipse/downloads/ is the main place to
 # find the downloads needed for new versions
 
 let
   platform_major = "4";
-  platform_minor = "15";
+  platform_minor = "16";
   year = "2020";
-  month = "03";
-  timestamp = "${year}${month}050155";
+  month = "06";
+  timestamp = "${year}${month}040540";
   gtk = gtk3;
 in rec {
 
@@ -33,8 +33,8 @@ in rec {
     description = "Eclipse IDE for C/C++ Developers";
     src =
       fetchurl {
-        url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-incubation-linux-gtk-x86_64.tar.gz";
-        sha512 = "2wy4a3p347fajr9zsfz1zlvz6jpy3vficdry27m5fs0azfmxmy2cfns5hh18sin4xqq3jvqppfqxh41rzcpcmiq12zhc6cz42brqgxw";
+        url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
+        sha512 = "0vfxzsvfv9zmd0ckrdpziijzskh13g8kgk8ibkwmhmqmj14a3visk6yvn5q2s0knkswl1zy9arinw0mxvqh72dfj63vwc01vhp06lyr";
       };
   };
 
@@ -46,7 +46,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-modeling-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "0qccsclay9000sqrymm8hkg70a4jcvd70vymw1kkxsklcs7dnrhch55an98gbzf9r0jgd1ap62a4hyxlnm6hdqqniwcgdza0i4nwwgj";
+        sha512 = "29nr1x3fgdw5ygrppfma6yi1iaqvad24jyb58sag735z1nz4ymajcwakg52mlv3s19d4w8cxpskh1r459mwz7j769qplymspqifvlkd";
       };
   };
 
@@ -58,7 +58,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-platform-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
-        sha512 = "01rv5x7qqm0a2p30828z2snms3nb2kjx9si63sr5rdkdgr3vbh6xq8n8fn757dqazmpz9zskmwxxmbxnwycfllhgb8msb77pcy3fpg7";
+        sha512 = "2pm4xam0jn9x34k1hr5rn67fpvc6snlkpcfn4bzdcf2xjv9f3dr2039mkcrhri5nv2bj6fkbai6aga6fmmrb3na33b7ir7sqlqqn61b";
       };
   };
 
@@ -83,7 +83,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-SDK-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
-        sha512 = "33ra8qslwz73240xzjvr751lpl94drlcf425a7kxngq1qla2cda7gxr71bxlr9fm2hrqq0h097ihmg0ix9hv2dmwnc76gp4hwwrlk41";
+        sha512 = "195c07yabmi2a42qxfmpbv6ychpj15bbpgyp40s1pcdb3p875vcqjinq9dqy2sixzwjhfdrggpvwihav87rkih9arzmk2s4cm31mjqd";
       };
   };
 
@@ -95,7 +95,19 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-java-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "0ffa1q19z31j8i552mp9zg4v0p4iv002cvlzh49ia8hi0hgk75pbkp6vxlr75jz0as03n71f0ww8xbflji31qgwfmy6rs1rzqihfff9";
+        sha512 = "3n8jllgxarrxgz16n7zb4bgaqxk0m9frcxrgdxvy25ar2iw8js4q4ir3cc20y4ri3ii74rf3jy6n4ndhm57miwqh4p2wqzhfjlinirb";
+      };
+  };
+
+  ### Eclipse Committers
+
+  eclipse-committers = buildEclipse {
+    name = "eclipse-committers-${platform_major}.${platform_minor}";
+    description = "Eclipse IDE for Eclipse Committers and Eclipse Platform Plugin Developers";
+    src =
+      fetchurl {
+        url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-committers-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
+        sha512 = "1l0gc7srpvn3r0yrbrp1pjv1a3n1y7q5fqww5fmzyw1d6j3hjkqj74c9bff16579cpf7z6d4wmj6kr7z89p0ignrx319gc8p0hivi1y";
       };
   };
 
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index fab7317868a..4edb7a7ebc4 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -254,12 +254,13 @@ rec {
 
   cdt = buildEclipseUpdateSite rec {
     name = "cdt-${version}";
-    version = "9.11.0";
+    # find current version at https://www.eclipse.org/cdt/downloads.php
+    version = "9.11.1";
 
     src = fetchzip {
       stripRoot = false;
       url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/9.11/${name}/${name}.zip";
-      sha256 = "1730w6rbv649nzfalfd10p2ph0z9rbrrcflga0n1dpmg181xh9lk";
+      sha256 = "00cpaal6jm9xb4nbkljrf381r3lf1rb1p06vrbn4l0lxnbckb9df";
     };
 
     meta = with stdenv.lib; {
@@ -474,12 +475,12 @@ rec {
 
   jdt = buildEclipseUpdateSite rec {
     name = "jdt-${version}";
-    version = "4.15";
+    version = "4.16";
 
     src = fetchzip {
       stripRoot = false;
-      url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-${version}-202003050155/org.eclipse.jdt-${version}.zip";
-      sha256 = "1dm4qgfb6rm7w0dk8br071c7wy0ybp7zrwvr3i02c2bxzy2psz7q";
+      url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-${version}-202006040540/org.eclipse.jdt-${version}.zip";
+      sha256 = "0g349hg2nv1y628daxf84396wpf33z52wxv0gawlgrirbbizaznd";
     };
 
     meta = with stdenv.lib; {
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 e0e28f53b81..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.0.1";
+        version = "7.1.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ada-mode-7.0.1.tar";
-          sha256 = "0iqninv4wf4ap8axk9m0gi39j3kq4jpbpdc8hczd34xrp83ml46a";
+          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.0";
+        version = "12.2.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/auctex-12.2.0.tar";
-          sha256 = "0j919l3q5sq6h1k1kmk4kyv0vkzl4f98fxcd64v34x5q1ahjhg48";
+          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";
@@ -685,10 +715,10 @@
       elpaBuild {
         pname = "darkroom";
         ename = "darkroom";
-        version = "0.2";
+        version = "0.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/darkroom-0.2.el";
-          sha256 = "1a528brhz4vckhp77n2c1phkyqdliykpj9kzk3f834f4rwnb5mp0";
+          url = "https://elpa.gnu.org/packages/darkroom-0.3.el";
+          sha256 = "0l1xg5kqmjw22k78qnsln0ifx2dx74xxqj0qp8xxcpqvzzx0xh86";
         };
         packageRequires = [ cl-lib ];
         meta = {
@@ -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.16";
+        version = "0.6.18";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ebdb-0.6.16.tar";
-          sha256 = "0yn0nqjp68kwlrd4qs9fg3xizm9jnddkkyw25l0llq04b53zgjdl";
+          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 = {
@@ -1036,6 +1066,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    eldoc = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "eldoc";
+        ename = "eldoc";
+        version = "1.8.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/eldoc-1.8.0.el";
+          sha256 = "1zxy9x9a0yqwdi572jj04x9lyj3d87mpyfbn3092a5nqwc864k9w";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/eldoc.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     eldoc-eval = callPackage ({ elpaBuild, fetchurl, lib }:
       elpaBuild {
         pname = "eldoc-eval";
@@ -1070,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 = {
@@ -1081,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";
@@ -1172,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 = {
@@ -1228,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;
@@ -1277,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 = {
@@ -1367,10 +1427,10 @@
       elpaBuild {
         pname = "gnorb";
         ename = "gnorb";
-        version = "1.6.6";
+        version = "1.6.7";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/gnorb-1.6.6.tar";
-          sha256 = "1vlb9q7a622qylrgip5ld2yrzp4l58gl543i2jdxr7jxvamy22bp";
+          url = "https://elpa.gnu.org/packages/gnorb-1.6.7.tar";
+          sha256 = "17pz6i51z298rk7j3rraw1gxlssn88yi4bbpzyxv9cs7y1lfy8ld";
         };
         packageRequires = [ cl-lib ];
         meta = {
@@ -1378,6 +1438,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    gnu-elpa = callPackage ({ elpaBuild, fetchurl, lib }:
+      elpaBuild {
+        pname = "gnu-elpa";
+        ename = "gnu-elpa";
+        version = "1.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/gnu-elpa-1.1.tar";
+          sha256 = "0b0law1xwwqa42wb09b3w73psq2kx16lkiwxjxl0sshjcmarhv8r";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/gnu-elpa.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     gnu-elpa-keyring-update = callPackage ({ elpaBuild
                                            , fetchurl
                                            , lib }:
@@ -1419,10 +1494,10 @@
       elpaBuild {
         pname = "gnus-mock";
         ename = "gnus-mock";
-        version = "0.4.4";
+        version = "0.4.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/gnus-mock-0.4.4.tar";
-          sha256 = "0v94z800f1y3ylbgbrw4nslqm7j2jr592g402nxgj9rlldazzxg0";
+          url = "https://elpa.gnu.org/packages/gnus-mock-0.4.5.tar";
+          sha256 = "1hfh315vrxd54r2f1wpdfk06b7lhpab7knygav58vdwwdbndlqiz";
         };
         packageRequires = [];
         meta = {
@@ -1561,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 = {
@@ -1606,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 = {
@@ -1696,10 +1771,10 @@
       elpaBuild {
         pname = "jsonrpc";
         ename = "jsonrpc";
-        version = "1.0.9";
+        version = "1.0.12";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/jsonrpc-1.0.9.el";
-          sha256 = "1ncsdv9pr2zsfa9mxm4n68fppnkpm410mh72r7h5f8yj17lz00ss";
+          url = "https://elpa.gnu.org/packages/jsonrpc-1.0.12.el";
+          sha256 = "0cqp05awikbrn88ifld3vwnv6cxgmr83wlnsvxw8bqb96djz70ad";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1752,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";
@@ -1981,10 +2071,10 @@
       elpaBuild {
         pname = "minimap";
         ename = "minimap";
-        version = "1.2";
+        version = "1.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/minimap-1.2.el";
-          sha256 = "1vcxdxy7mv8mi4lrri3kmyf9kly3rb02z4kpfx5d1xv493havvb8";
+          url = "https://elpa.gnu.org/packages/minimap-1.3.el";
+          sha256 = "15azlmi6kk9pg1c4zrw952qsh9wq6ggqb4qqc84a7l67nhqb9bqp";
         };
         packageRequires = [];
         meta = {
@@ -1996,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 = {
@@ -2011,10 +2101,10 @@
       elpaBuild {
         pname = "modus-operandi-theme";
         ename = "modus-operandi-theme";
-        version = "0.7.0";
+        version = "0.11.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/modus-operandi-theme-0.7.0.el";
-          sha256 = "17zvcqplbl3rk39k61v43ganzv06j49rlyickanwll5m1a3iibw2";
+          url = "https://elpa.gnu.org/packages/modus-operandi-theme-0.11.0.el";
+          sha256 = "11sq105vpp8rmyayfb7h8gz099kfdr7nb8n4pg81iby4fllj1kgd";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2026,10 +2116,10 @@
       elpaBuild {
         pname = "modus-vivendi-theme";
         ename = "modus-vivendi-theme";
-        version = "0.7.0";
+        version = "0.11.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/modus-vivendi-theme-0.7.0.el";
-          sha256 = "1w4vrg39dghghkvll3h4kmzykc3zpp6pbychb39gcc13z2b06v8g";
+          url = "https://elpa.gnu.org/packages/modus-vivendi-theme-0.11.0.el";
+          sha256 = "14ky9cxg9cpvhgg24ra0xla2dapqjlf948470q7v0m402x1r2iif";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2455,10 +2545,10 @@
       elpaBuild {
         pname = "phps-mode";
         ename = "phps-mode";
-        version = "0.3.43";
+        version = "0.3.52";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/phps-mode-0.3.43.tar";
-          sha256 = "099s7c0ll8bbfgynijjaciv2qnyg4r2akajkhlmchh7y10kp5ii4";
+          url = "https://elpa.gnu.org/packages/phps-mode-0.3.52.tar";
+          sha256 = "11783i4raw6z326bqin9g37ig2szbqsma1r0fsdckyn2q6w7nn92";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2500,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 = {
@@ -2511,6 +2601,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    project = callPackage ({ elpaBuild, emacs, fetchurl, lib, xref }:
+      elpaBuild {
+        pname = "project";
+        ename = "project";
+        version = "0.5.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/project-0.5.1.el";
+          sha256 = "1i15hlrfipsfrdmgh6xzkr6aszgvik3y8j9363qkj654dl04pmz4";
+        };
+        packageRequires = [ emacs xref ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/project.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     psgml = callPackage ({ elpaBuild, fetchurl, lib }:
       elpaBuild {
         pname = "psgml";
@@ -2526,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";
@@ -2575,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 = {
@@ -2795,10 +2915,10 @@
       elpaBuild {
         pname = "relint";
         ename = "relint";
-        version = "1.15";
+        version = "1.18";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/relint-1.15.tar";
-          sha256 = "0sxmdsacj8my942k8j76m2y68nzab7190acv7cwgflc5n4f07yxa";
+          url = "https://elpa.gnu.org/packages/relint-1.18.tar";
+          sha256 = "0zfislsksrkn6qs0w26yaff5xr7xqy2x235dcdpz8s2v35b6dhci";
         };
         packageRequires = [ emacs xr ];
         meta = {
@@ -2836,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
@@ -3022,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";
@@ -3146,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 = {
@@ -3157,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";
@@ -3255,10 +3420,10 @@
       elpaBuild {
         pname = "tramp";
         ename = "tramp";
-        version = "2.4.3.3";
+        version = "2.4.4.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/tramp-2.4.3.3.tar";
-          sha256 = "1di9ia59k6x7j9r8flwf05r160j30nrg0jvq5fjc9iazag9lniyw";
+          url = "https://elpa.gnu.org/packages/tramp-2.4.4.1.tar";
+          sha256 = "0jayd75yscaqvg6y0m6g2mgbjswyj5gqdij2az9g0j18vm5vbqy3";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3345,10 +3510,10 @@
       elpaBuild {
         pname = "uniquify-files";
         ename = "uniquify-files";
-        version = "1.0.2";
+        version = "1.0.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/uniquify-files-1.0.2.tar";
-          sha256 = "1vib79wsz5k94b9z0wiwhbzsdm70y9dla6szw2bb75245cx3kr0h";
+          url = "https://elpa.gnu.org/packages/uniquify-files-1.0.3.tar";
+          sha256 = "04yfys615ncz3jyh3hx5sg6x6szx028223184zv52skb4j99vkwq";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3446,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 = {
@@ -3659,10 +3824,10 @@
       elpaBuild {
         pname = "wisi";
         ename = "wisi";
-        version = "3.0.1";
+        version = "3.1.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/wisi-3.0.1.tar";
-          sha256 = "01961apbirdi4y8qx2wb01f04knkw3hyin3ndrkjlkfslqbsnzzv";
+          url = "https://elpa.gnu.org/packages/wisi-3.1.3.tar";
+          sha256 = "0cbjcm35lp164wd06mn3clikga07qxfsfnkvadswsapsd0cn2b4k";
         };
         packageRequires = [ emacs seq ];
         meta = {
@@ -3679,10 +3844,10 @@
       elpaBuild {
         pname = "wisitoken-grammar-mode";
         ename = "wisitoken-grammar-mode";
-        version = "1.0.3";
+        version = "1.2.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/wisitoken-grammar-mode-1.0.3.tar";
-          sha256 = "1vljnhi35vix30xch9mziczg56ss1r615yn2pgdcw8wa8sm14crw";
+          url = "https://elpa.gnu.org/packages/wisitoken-grammar-mode-1.2.0.tar";
+          sha256 = "0isxmpwys148djjymszdm5nisqjp9xff8kad45l4cpb3c717vsjw";
         };
         packageRequires = [ emacs mmm-mode wisi ];
         meta = {
@@ -3754,10 +3919,10 @@
       elpaBuild {
         pname = "xr";
         ename = "xr";
-        version = "1.18";
+        version = "1.19";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/xr-1.18.tar";
-          sha256 = "1nq9pj47sxgpkw97c2xrkhgcwh3zsfd2a22qiqbl4i9zf2l9yy91";
+          url = "https://elpa.gnu.org/packages/xr-1.19.tar";
+          sha256 = "1aa3iqh0r635jw8k89zh8y4am9d4hfrqpk9mrdh2b51invjn8llq";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3765,6 +3930,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    xref = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "xref";
+        ename = "xref";
+        version = "1.0.2";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/xref-1.0.2.el";
+          sha256 = "156rfwdihb3vz31iszbmby16spqswyf69nhl3r2cp6jzkgwzc1d8";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/xref.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     yasnippet = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
       elpaBuild {
         pname = "yasnippet";
diff --git a/pkgs/applications/editors/emacs-modes/elpa-packages.nix b/pkgs/applications/editors/emacs-modes/elpa-packages.nix
index a6d657199b9..57f5d7b8594 100644
--- a/pkgs/applications/editors/emacs-modes/elpa-packages.nix
+++ b/pkgs/applications/editors/emacs-modes/elpa-packages.nix
@@ -8,6 +8,16 @@ To update the list of packages from MELPA,
 2. Check for evaluation errors: `nix-instantiate ../../../.. -A emacsPackagesNg.elpaPackages`.
 3. `git commit -m "elpa-packages $(date -Idate)" -- elpa-generated.nix`
 
+## Update from overlay
+
+Alternatively, run the following command:
+
+./update-from-overlay
+
+It will update both melpa and elpa packages using
+https://github.com/nix-community/emacs-overlay. It's almost
+instantenous and formats commits for you.
+
 */
 
 { lib, stdenv, texinfo }:
diff --git a/pkgs/applications/editors/emacs-modes/hol_light/default.nix b/pkgs/applications/editors/emacs-modes/hol_light/default.nix
deleted file mode 100644
index 34b74374b23..00000000000
--- a/pkgs/applications/editors/emacs-modes/hol_light/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, fetchsvn }:
-
-stdenv.mkDerivation rec {
-  pname = "hol_light-mode";
-  version = "73";
-
-  src = fetchsvn {
-    url = "http://seanmcl-ocaml-lib.googlecode.com/svn/trunk/workshop/software/emacs";
-    rev = version;
-    sha256 = "3ca83098960439da149a47e1caff32536601559a77f04822be742a390c67feb7";
-  };
-
-  installPhase = ''
-    DEST=$out/share/emacs/site-lisp
-    mkdir -p $DEST
-    cp -a * $DEST
-  '';
-
-  meta = {
-    description = "A HOL Light mode for Emacs";
-    homepage    = "http://www.cl.cam.ac.uk/~jrh13/hol-light/";
-    license     = stdenv.lib.licenses.gpl2Plus;
-    platforms   = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
-
-    # Fails trying to fetch dependencies in build
-    # broken = true;
-  };
-}
diff --git a/pkgs/applications/editors/emacs-modes/libgenerated.nix b/pkgs/applications/editors/emacs-modes/libgenerated.nix
index d0c8b4565f5..2ddafc4796c 100644
--- a/pkgs/applications/editors/emacs-modes/libgenerated.nix
+++ b/pkgs/applications/editors/emacs-modes/libgenerated.nix
@@ -25,10 +25,12 @@ let
         }
       ) {};
       git = self.callPackage ({ fetchgit }:
-        fetchgit {
+        (fetchgit {
           rev = commit;
           inherit sha256 url;
-        }
+        }).overrideAttrs(_: {
+          GIT_SSL_NO_VERIFY = true;
+        })
       ) {};
       bitbucket = self.callPackage ({ fetchhg }:
         fetchhg {
diff --git a/pkgs/applications/editors/emacs-modes/manual-packages.nix b/pkgs/applications/editors/emacs-modes/manual-packages.nix
index 313a21995e0..dfe287a7f40 100644
--- a/pkgs/applications/editors/emacs-modes/manual-packages.nix
+++ b/pkgs/applications/editors/emacs-modes/manual-packages.nix
@@ -98,7 +98,7 @@
       sha256 = "09b7bg2s9aa4s8f2kdqs4xps3jxkq5wsvbi87ih8b6id38blhf78";
     };
     recipe = pkgs.writeText "recipe" ''
-      (haskell-unicode-input-method
+      (emacs-haskell-unicode-input-method
        :repo "roelvandijk/emacs-haskell-unicode-input-method"
        :fetcher github)
     '';
@@ -135,9 +135,7 @@
   colorThemeSolarized = callPackage ./color-theme-solarized { };
   emacsSessionManagement = callPackage ./session-management-for-emacs { };
   hsc3-mode = callPackage ./hsc3 { };
-  hol_light_mode = callPackage ./hol_light { };
   ido-ubiquitous = callPackage ./ido-ubiquitous { };
-  ocaml-mode = callPackage ./ocaml { };
   prolog-mode = callPackage ./prolog { };
   rectMark = callPackage ./rect-mark { };
   sunriseCommander = callPackage ./sunrise-commander { };
@@ -147,7 +145,6 @@
   #
   # Ideally this should be dropped some time during/after 20.03
   bbdb3 = self.melpaStablePackages.bbdb;
-  ocamlMode = self.ocaml-mode;
   jade = self.jade-mode;
   # scalaMode2 = null;  # No clear mapping as of now
   flymakeCursor = self.melpaStablePackages.flymake-cursor;
diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
index 87da2079605..f228d34a654 100644
--- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix
+++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
@@ -10,44 +10,62 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
 env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPackages.melpaPackages
 3. `git commit -m "melpa-packages: $(date -Idate)" recipes-archive-melpa.json`
 
-*/
-
-{ lib, external, pkgs }: variant: self: let
-
-  dontConfigure = pkg: if pkg != null then pkg.override (args: {
-    melpaBuild = drv: args.melpaBuild (drv // {
-      dontConfigure = true;
-    });
-  }) else null;
-
-  markBroken = pkg: if pkg != null then pkg.override (args: {
-    melpaBuild = drv: args.melpaBuild (drv // {
-      meta = (drv.meta or {}) // { broken = true; };
-    });
-  }) else null;
-
-  externalSrc = pkg : epkg : if pkg != null then pkg.override (args : {
-    melpaBuild = drv : args.melpaBuild (drv // {
-      inherit (epkg) src version;
+## Update from overlay
 
-      propagatedUserEnvPkgs = [ epkg ];
-    });
-  }) else null;
+Alternatively, run the following command:
 
-  fix-rtags = pkg : if pkg != null then dontConfigure (externalSrc pkg external.rtags)
-                    else null;
+./update-from-overlay
 
-  generateMelpa = lib.makeOverridable ({
-    archiveJson ? ./recipes-archive-melpa.json
-  }: let
+It will update both melpa and elpa packages using
+https://github.com/nix-community/emacs-overlay. It's almost
+instantenous and formats commits for you.
 
-    inherit (import ./libgenerated.nix lib self) melpaDerivation;
-    super = lib.listToAttrs (builtins.filter (s: s != null)
-                                             (map (melpaDerivation variant)
-                                                  (lib.importJSON archiveJson)));
+*/
 
-    overrides = rec {
-      shared = rec {
+{ lib, external, pkgs }: variant: self:
+let
+  dontConfigure = pkg:
+    if pkg != null then pkg.override (args: {
+      melpaBuild = drv: args.melpaBuild (drv // {
+        dontConfigure = true;
+      });
+    }) else null;
+
+  markBroken = pkg:
+    if pkg != null then pkg.override (args: {
+      melpaBuild = drv: args.melpaBuild (drv // {
+        meta = (drv.meta or { }) // { broken = true; };
+      });
+    }) else null;
+
+  externalSrc = pkg: epkg:
+    if pkg != null then pkg.override (args: {
+      melpaBuild = drv: args.melpaBuild (drv // {
+        inherit (epkg) src version;
+
+        propagatedUserEnvPkgs = [ epkg ];
+      });
+    }) else null;
+
+  fix-rtags = pkg:
+    if pkg != null then dontConfigure (externalSrc pkg external.rtags)
+    else null;
+
+  generateMelpa = lib.makeOverridable ({ archiveJson ? ./recipes-archive-melpa.json
+                                       }:
+    let
+      inherit (import ./libgenerated.nix lib self) melpaDerivation;
+      super = (
+        lib.listToAttrs (builtins.filter
+          (s: s != null)
+          (map
+            (melpaDerivation variant)
+            (lib.importJSON archiveJson)
+          )
+        )
+      );
+
+      overrides = {
         # Expects bash to be at /bin/bash
         ac-rtags = fix-rtags super.ac-rtags;
 
@@ -55,12 +73,11 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
           inherit (self.melpaPackages) powerline;
         };
 
-        auto-complete-clang-async = super.auto-complete-clang-async.overrideAttrs(old: {
+        auto-complete-clang-async = super.auto-complete-clang-async.overrideAttrs (old: {
           buildInputs = old.buildInputs ++ [ external.llvmPackages.llvm ];
           CFLAGS = "-I${external.llvmPackages.clang}/include";
           LDFLAGS = "-L${external.llvmPackages.clang}/lib";
         });
-        emacsClangCompleteAsync = auto-complete-clang-async;
 
         # part of a larger package
         caml = dontConfigure super.caml;
@@ -75,7 +92,9 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
           inherit (self.melpaPackages) easy-kill;
         };
 
-        emacsql-sqlite = super.emacsql-sqlite.overrideAttrs(old: {
+        dune = dontConfigure super.dune;
+
+        emacsql-sqlite = super.emacsql-sqlite.overrideAttrs (old: {
           buildInputs = old.buildInputs ++ [ pkgs.sqlite ];
 
           postBuild = ''
@@ -104,26 +123,32 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
         evil-magit = super.evil-magit.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         eopengrok = super.eopengrok.overrideAttrs (attrs: {
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         ess-R-data-view = super.ess-R-data-view.override {
           inherit (self.melpaPackages) ess ctable popup;
         };
 
+        forge = super.forge.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+        });
+
         flycheck-rtags = fix-rtags super.flycheck-rtags;
 
         gnuplot = super.gnuplot.overrideAttrs (old: {
           nativeBuildInputs =
-            (old.nativeBuildInputs or []) ++ [ pkgs.autoreconfHook ];
+            (old.nativeBuildInputs or [ ]) ++ [ pkgs.autoreconfHook ];
         });
 
-        pdf-tools = super.pdf-tools.overrideAttrs(old: {
+        pdf-tools = super.pdf-tools.overrideAttrs (old: {
           nativeBuildInputs = [ external.pkgconfig ];
           buildInputs = with external; old.buildInputs ++ [ autoconf automake libpng zlib poppler ];
           preBuild = "make server/epdfinfo";
@@ -140,7 +165,7 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
         });
 
         irony = super.irony.overrideAttrs (old: {
-          cmakeFlags = old.cmakeFlags or [] ++ [ "-DCMAKE_INSTALL_BINDIR=bin" ];
+          cmakeFlags = old.cmakeFlags or [ ] ++ [ "-DCMAKE_INSTALL_BINDIR=bin" ];
           NIX_CFLAGS_COMPILE = "-UCLANG_RESOURCE_DIR";
           preConfigure = ''
             cd server
@@ -174,115 +199,115 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
         magit = super.magit.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-find-file = super.magit-find-file.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-gh-pulls = super.magit-gh-pulls.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-imerge = super.magit-imerge.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-lfs = super.magit-lfs.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-org-todos = super.magit-org-todos.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-stgit = super.magit-stgit.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-tbdiff = super.magit-tbdiff.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-topgit = super.magit-topgit.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-vcsh = super.magit-vcsh.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-gerrit = super.magit-gerrit.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-annex = super.magit-annex.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-todos = super.magit-todos.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-filenotify = super.magit-filenotify.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-gitflow = super.magit-gitflow.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magithub = super.magithub.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-svn = super.magit-svn.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         kubernetes = super.kubernetes.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         kubernetes-evil = super.kubernetes-evil.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         # upstream issue: missing file header
@@ -298,12 +323,14 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
 
         rtags = dontConfigure (externalSrc super.rtags external.rtags);
 
+        rtags-xref = dontConfigure super.rtags;
+
         shm = super.shm.overrideAttrs (attrs: {
           propagatedUserEnvPkgs = [ external.structured-haskell-mode ];
         });
 
         # Telega has a server portion for it's network protocol
-        telega = super.telega.overrideAttrs(old: {
+        telega = super.telega.overrideAttrs (old: {
           buildInputs = old.buildInputs ++ [ pkgs.tdlib ];
 
           postBuild = ''
@@ -318,18 +345,27 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
           '';
         });
 
+        treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+        });
+
         vdiff-magit = super.vdiff-magit.overrideAttrs (attrs: {
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
-        zmq = super.zmq.overrideAttrs(old: {
+        zmq = super.zmq.overrideAttrs (old: {
           stripDebugList = [ "share" ];
           preBuild = ''
             make
           '';
           nativeBuildInputs = [
-            external.autoconf external.automake external.pkgconfig external.libtool
+            external.autoconf
+            external.automake
+            external.pkgconfig
+            external.libtool
             (external.zeromq.override { enableDrafts = true; })
           ];
           postInstall = ''
@@ -351,9 +387,6 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
         markdown-mode-plus = super."markdown-mode+";
         package-plus = super."package+";
         rect-plus = super."rect+";
-      };
-
-      stable = shared // {
 
         # upstream issue: missing file header
         bufshow = markBroken super.bufshow;
@@ -364,9 +397,6 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
         # upstream issue: missing file header
         dictionary = markBroken super.dictionary;
 
-        # missing git
-        egg = markBroken super.egg;
-
         # upstream issue: missing file header
         elmine = markBroken super.elmine;
 
@@ -385,8 +415,6 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
         # upstream issue: doesn't build
         eterm-256color = markBroken super.eterm-256color;
 
-        helm-rtags = fix-rtags super.helm-rtags;
-
         # upstream issue: missing file header
         qiita = markBroken super.qiita;
 
@@ -405,9 +433,6 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
         # upstream issue: missing file header
         window-numbering = markBroken super.window-numbering;
 
-      };
-
-      unstable = shared // {
         editorconfig = super.editorconfig.overrideAttrs (attrs: {
           propagatedUserEnvPkgs = [ external.editorconfig-core-c ];
         });
@@ -415,7 +440,7 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
         egg = super.egg.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         # missing dependencies
@@ -426,91 +451,85 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
         kapacitor = super.kapacitor.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
-        });
-
-        forge = super.forge.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         gerrit = super.gerrit.overrideAttrs (attrs: {
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         gerrit-download = super.gerrit-download.overrideAttrs (attrs: {
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         github-pullrequest = super.github-pullrequest.overrideAttrs (attrs: {
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         helm-rtags = fix-rtags super.helm-rtags;
 
         jist = super.jist.overrideAttrs (attrs: {
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         mandoku = super.mandoku.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         mandoku-tls = super.mandoku-tls.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-p4 = super.magit-p4.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-rbr = super.magit-rbr.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-diff-flycheck = super.magit-diff-flycheck.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-reviewboard = super.magit-reviewboard.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-patch-changelog = super.magit-patch-changelog.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         magit-circleci = super.magit-circleci.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
         });
 
         orgit =
           (super.orgit.overrideAttrs (attrs: {
             # searches for Git at build time
             nativeBuildInputs =
-              (attrs.nativeBuildInputs or []) ++ [ external.git ];
-           }));
+              (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+          }));
 
         # tries to write to $HOME
         php-auto-yasnippets = super.php-auto-yasnippets.overrideAttrs (attrs: {
@@ -528,13 +547,7 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
           inherit (self.melpaPackages) powerline;
         };
 
-        treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or []) ++ [ external.git ];
-        });
-
-        vterm = super.vterm.overrideAttrs(old: {
+        vterm = super.vterm.overrideAttrs (old: {
           buildInputs = old.buildInputs ++ [ self.emacs pkgs.cmake pkgs.libvterm-neovim ];
           cmakeFlags = [
             "-DEMACS_SOURCE=${self.emacs.src}"
@@ -550,32 +563,38 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
             rm -rf $out/share/emacs/site-lisp/elpa/vterm-**/{CMake*,build,*.c,*.h}
           '';
         });
-        # Legacy alias
-        emacs-libvterm = unstable.vterm;
-
-        # Map legacy renames from emacs2nix since code generation was ported to emacs lisp
-        _0xc = super."0xc";
-        _2048-game = super."2048-game";
-        _4clojure = super."4clojure";
-        at = super."@";
-        term-plus = super."term+";
-        term-plus-key-intercept = super."term+key-intercept";
-        term-plus-mux = super."term+mux";
-        xml-plus = super."xml+";
 
         w3m = super.w3m.override (args: {
           melpaBuild = drv: args.melpaBuild (drv // {
             prePatch =
-              let w3m = "${lib.getBin external.w3m}/bin/w3m"; in ''
+              let w3m = "${lib.getBin external.w3m}/bin/w3m"; in
+              ''
                 substituteInPlace w3m.el \
-                  --replace 'defcustom w3m-command nil' \
-                            'defcustom w3m-command "${w3m}"'
+                --replace 'defcustom w3m-command nil' \
+                'defcustom w3m-command "${w3m}"'
               '';
           });
         });
       };
-    };
-
-  in super // overrides.${variant});
 
-in generateMelpa { }
+      # Deprecated legacy aliases for backwards compat
+      aliases = lib.listToAttrs (lib.attrValues (lib.mapAttrs (n: v: { name = v; value = builtins.trace "Melpa attribute '${v}' is a legacy alias that will be removed in 21.03, use '${n}' instead" melpaPackages.${n}; }) (lib.filterAttrs (n: v: lib.hasAttr n melpaPackages) {
+        "auto-complete-clang-async" = "emacsClangCompleteAsync";
+        "vterm" = "emacs-libvterm";
+        "0xc" = "_0xc";
+        "2048-game" = "_2048-game";
+        "4clojure" = "_4clojure";
+        "@" = "at";
+        "term+" = "term-plus";
+        "term+key-intercept" = "term-plus-key-intercept";
+        "term+mux" = "term-plus-mux";
+        "xml+" = "xml-plus";
+      })));
+
+      melpaPackages = lib.mapAttrs (n: v: if lib.hasAttr n overrides then overrides.${n} else v) super;
+
+    in
+    melpaPackages // aliases);
+
+in
+generateMelpa { }
diff --git a/pkgs/applications/editors/emacs-modes/ocaml/default.nix b/pkgs/applications/editors/emacs-modes/ocaml/default.nix
deleted file mode 100644
index 4240263dd0b..00000000000
--- a/pkgs/applications/editors/emacs-modes/ocaml/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv, emacs, ocaml }:
-
-# this package installs the emacs-mode which
-# resides in the ocaml compiler sources.
-
-let version = stdenv.lib.removePrefix "ocaml-" ocaml.name;
-in stdenv.mkDerivation {
-  pname = "ocaml-mode";
-  inherit version;
-  inherit (ocaml) prefixKey src;
-
-  # a quick configure to get the Makefile generated. Since
-  # we do not build the ocaml itself, we don't really
-  # need it to support any features.
-  configureFlags = (with stdenv.lib; optional (!(versionAtLeast version "4.02")) "-no-tk") ++
-    [ "-no-curses" "-no-pthread" ];
-
-  buildInputs = [ emacs ];
-  dontBuild = true;
-
-  installPhase = ''
-    cd emacs;
-    mkdir -p "$out/share/emacs/site-lisp" "$out/bin"
-    EMACSDIR=$out/share/emacs/site-lisp make simple-install install-ocamltags
-  '';
-
-  meta = {
-    homepage = "http://caml.inria.fr";
-    description = "OCaml mode package for Emacs";
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/pkgs/applications/editors/emacs-modes/org-generated.nix b/pkgs/applications/editors/emacs-modes/org-generated.nix
index 4ff1db1c743..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 = "20200504";
+        version = "20200817";
         src = fetchurl {
-          url = "https://orgmode.org/elpa/org-20200504.tar";
-          sha256 = "1nalr2jafhzfkaf4bn8kscxd7nm1wz7dbw2629j2msxknw76dwk1";
+          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 = "20200504";
+        version = "20200817";
         src = fetchurl {
-          url = "https://orgmode.org/elpa/org-plus-contrib-20200504.tar";
-          sha256 = "1ykw3qspz18jgf3ngsvk2ys282489fcjrbk7pbv3ppxzjha4rmhb";
+          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 2224c44f9c4..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"
   }
  },
  {
@@ -479,8 +479,8 @@
     "auto-complete",
     "eclim"
    ],
-   "commit": "23f5b294f833ce58516d7b9ae08a7792d70022a1",
-   "sha256": "17q972354nkkynfjmwih4vp7s5dzdvr3nf7ni3ci095lzb0zzf4g"
+   "commit": "222ddd48fcf0ee01592dec77c58e0cf3f2ea1100",
+   "sha256": "0jdddf8krvg379wlay1xs27qlxpi87nz6v2i526pk59mmg8jrnvc"
   },
   "stable": {
    "version": [
@@ -960,22 +960,22 @@
     "auto-complete",
     "yasnippet"
    ],
-   "commit": "6ca9baaafd3a3e429429986cc59097dcbfa7cda2",
-   "sha256": "0gj1w0ynd3nk84ac2l3anmcvm44p662scdy80zwp2xisfc0c301x"
+   "commit": "8db6d911f2e19bbef5fe915e42c4e12f283bfd41",
+   "sha256": "0yzad3bc48xdmkgcsffdj9zx9j853w1k2p2v586bcfl2vmvvq3zj"
   },
   "stable": {
    "version": [
     2,
-    2,
-    2
+    3,
+    0
    ],
    "deps": [
     "ac-php-core",
     "auto-complete",
     "yasnippet"
    ],
-   "commit": "4490d168778a61a4ee8623defe760164cd9745b8",
-   "sha256": "1mkxayqrvz246gxr9wjabsn015hnjq96ys71syb6r4ykjn892a6m"
+   "commit": "8db6d911f2e19bbef5fe915e42c4e12f283bfd41",
+   "sha256": "0yzad3bc48xdmkgcsffdj9zx9j853w1k2p2v586bcfl2vmvvq3zj"
   }
  },
  {
@@ -986,8 +986,8 @@
   "repo": "xcwen/ac-php",
   "unstable": {
    "version": [
-    20200425,
-    835
+    20200516,
+    52
    ],
    "deps": [
     "dash",
@@ -997,14 +997,14 @@
     "s",
     "xcscope"
    ],
-   "commit": "6ca9baaafd3a3e429429986cc59097dcbfa7cda2",
-   "sha256": "0gj1w0ynd3nk84ac2l3anmcvm44p662scdy80zwp2xisfc0c301x"
+   "commit": "8db6d911f2e19bbef5fe915e42c4e12f283bfd41",
+   "sha256": "0yzad3bc48xdmkgcsffdj9zx9j853w1k2p2v586bcfl2vmvvq3zj"
   },
   "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": "a42298e80dffae9a6b2e9816506174542f3cbbb7",
-   "sha256": "1674752bbyb7890na5p846dxcvh83zn0a6z19wras1x5c59s24i3"
+   "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+   "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
   },
   "stable": {
    "version": [
@@ -1360,14 +1360,14 @@
   "repo": "abo-abo/ace-link",
   "unstable": {
    "version": [
-    20200210,
-    2031
+    20200518,
+    957
    ],
    "deps": [
     "avy"
    ],
-   "commit": "9b22793789263b2e2fc06ca8b6073bb01211df9b",
-   "sha256": "0ik2v881rnik58zvxczjg847fvc9vf493h85rv8q72hb7zi9p0gy"
+   "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",
@@ -1817,14 +1841,14 @@
   "repo": "Malabarba/aggressive-indent-mode",
   "unstable": {
    "version": [
-    20200421,
-    1149
+    20200512,
+    1207
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "58348d29adf8d2f23da2798badd7f89ff59cd7cc",
-   "sha256": "1d9hi36ml449x7qqpvcgxqx0r88jpqf1pq9k38af66ny3vd6zwl6"
+   "commit": "12a64b4e5c1a1e124baa74336738b6ae1972607f",
+   "sha256": "1pkqjg30l9sjh5m8w4p8qrlw92sxr28c3d7mq6h8sfc8dkgivd33"
   },
   "stable": {
    "version": [
@@ -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": [
@@ -1963,25 +1987,25 @@
   "repo": "AnthonyDiGirolamo/airline-themes",
   "unstable": {
    "version": [
-    20200408,
-    2114
+    20200511,
+    1543
    ],
    "deps": [
     "powerline"
    ],
-   "commit": "d81ec80d6fc36157c20015e9fd6b192cfc679035",
-   "sha256": "0h9iximw1n5pwfd8zfn1xx4dcrsvxcy8rmr2ng20kl8bflir3i6s"
+   "commit": "a6a3bd55baee29bd372869c835aded0f7d5e5f76",
+   "sha256": "1yg9wdagysfa5xswdrnwngbzf7gmdhjsl40ivqnxxvb74adxcwp6"
   },
   "stable": {
    "version": [
     1,
-    7
+    8
    ],
    "deps": [
     "powerline"
    ],
-   "commit": "bd9624a94618f4144762032a93549f53ffc1e7b3",
-   "sha256": "1rlszg7z5k8c6fmjk4sjgrc9xgcjc1jah6c7kdl9kypha7y8s4bq"
+   "commit": "5ea031bcbdf665afea7e47e519a49e2c33978833",
+   "sha256": "1jx17g8a6pxkw4zlx3fwhqgxfzcf3019k8fklykamfrkharzsc2l"
   }
  },
  {
@@ -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": [
-    20200411,
-    520
+    20200730,
+    1545
    ],
    "deps": [
     "memoize"
    ],
-   "commit": "0b74fc361817e885580c3f3408079f949f5830e1",
-   "sha256": "0y7wgwkspa800pck4ijyzgp3nrg8xkky079k1ywz7p04jqvgxrpp"
+   "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"
   }
  },
  {
@@ -2548,11 +2572,11 @@
   "repo": "immerrr/ample-regexps.el",
   "unstable": {
    "version": [
-    20151023,
-    1000
+    20200508,
+    1021
    ],
-   "commit": "cbe91e148cac1ee8e223874dc956ed4cf607f046",
-   "sha256": "1mm4icrwx4mscp7kbbmlc34995r164dhrfczn5ybkyxjzzf76jn1"
+   "commit": "153969ce547afe410b8986f01c9ed4087c9cd20b",
+   "sha256": "0dkp7bcd7h2ds40wyszy11nmh7c2jxrwy04ayz7pbxh53ir7s2k0"
   }
  },
  {
@@ -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": [
@@ -2676,27 +2700,26 @@
   "repo": "didibus/anakondo",
   "unstable": {
    "version": [
-    20200426,
-    28
+    20200503,
+    123
    ],
    "deps": [
+    "clojure-mode",
     "projectile"
    ],
-   "commit": "50ca8b69e0e53e4163215f3fcc325620b4d5d5af",
-   "sha256": "1sy0hxrj1vffqcwl5l48hl9yq4qswwjfgcc4445lairfycd4l9m7"
+   "commit": "ba6b56c18f2b0ae035b448813b27114d19fb821c",
+   "sha256": "0dbhkinfn6ahvi9pi7kghlc0fccil15lx0pd1rpgv4d7n3bnsdna"
   },
   "stable": {
    "version": [
     0,
-    1,
-    1
+    2
    ],
    "deps": [
-    "json",
     "projectile"
    ],
-   "commit": "6ba040e6af4466949dcad2b4a47069705f200322",
-   "sha256": "05j9x11hy8wzq1fbbal1y1wzkw6h98l9pp8q0qmarg0lb6hjk52x"
+   "commit": "87760e8326a0e303ca66dda298a79742888b7254",
+   "sha256": "1l58l0gj3my61yi55hak0c8y26dc2sn8kzbs80v3vsfr6pq916vx"
   }
  },
  {
@@ -2731,11 +2754,11 @@
   "repo": "fernando-jascovich/android-env.el",
   "unstable": {
    "version": [
-    20190720,
-    1927
+    20200722,
+    1403
    ],
-   "commit": "dcb0bff0e77257266201cf1ccf17e7ca94e67fb1",
-   "sha256": "132fshzb4f0miqn3ijvwfdigldrvx7dsx06dczr9z9v9xw61ar8j"
+   "commit": "5c6a6d9449f300eec4f374a5410edc1cbab02e40",
+   "sha256": "182b3fd85q3x5ynnfnjb01phhq1glf1wxj5rz8zx43ddnzz9ahmn"
   }
  },
  {
@@ -2779,16 +2802,16 @@
  },
  {
   "ename": "angular-mode",
-  "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
-  "sha256": "0pq4lyhppzi806n1k07n0gdhr8z8z71ri12my0pl81rl5j2z69l2",
+  "commit": "54d86ad963ca7357ccb62a2e4aa124ed44bc0ebf",
+  "sha256": "04c07flrfnfr6jsqm76xdl5gw79rh18ys4cmqjmgv55rrs0w4rws",
   "fetcher": "github",
-  "repo": "rudolfolah/angularjs-mode",
+  "repo": "emacsattic/angular-mode",
   "unstable": {
    "version": [
-    20151201,
-    2127
+    20200510,
+    1729
    ],
-   "commit": "8720cde86af0f1859ccc8580571e8d0ad1c52cff",
+   "commit": "b24020768217f16b1b86aa236e9729b3d40e17b3",
    "sha256": "04kg2x0lif91knmkkh05mj42xw3dkzsnysjda6ian95v57wfg377"
   },
   "stable": {
@@ -2874,8 +2897,8 @@
   "repo": "davidshepherd7/anki-mode",
   "unstable": {
    "version": [
-    20200413,
-    1019
+    20200703,
+    736
    ],
    "deps": [
     "dash",
@@ -2883,8 +2906,8 @@
     "request",
     "s"
    ],
-   "commit": "fcbcfa7cd7fb5c282e1138322e61242942729e3d",
-   "sha256": "06ab3zdaz5wf30zbci7cav3dvvnknnbzq18zfzzfi4xjcsi0zkvr"
+   "commit": "3918e4f7b2f14e485cc3acc927abe6563695963f",
+   "sha256": "16fx2w1nz6jxsrc9naykah3valab46xnwsmjz5lm9zl38g4ypyna"
   },
   "stable": {
    "version": [
@@ -2959,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"
   }
  },
  {
@@ -3025,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": [
@@ -3057,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"
   }
  },
  {
@@ -3235,22 +3259,19 @@
   "repo": "emacsorphanage/anzu",
   "unstable": {
    "version": [
-    20200331,
-    1717
+    20200514,
+    1801
    ],
-   "commit": "3e34fb3df53c0c68e842fa179c327a7395d1901d",
-   "sha256": "10jgh1mg8bxmpgaspsmqksgf3cqw9glap84cb9sdirvicsmisbsd"
+   "commit": "7b8688c84d6032300d0c415182c7c1ad6cb7f819",
+   "sha256": "09x4hhycnv4sc472fqv7z8jpjx8viap5hb143yri3wkwa15bqd3b"
   },
   "stable": {
    "version": [
     0,
-    62
+    63
    ],
-   "deps": [
-    "cl-lib"
-   ],
-   "commit": "3328619fec138862302bbe1b9acf2eea624a4c5e",
-   "sha256": "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan"
+   "commit": "a5a22fd537cb3bd2194d1eecc91dca418bedf442",
+   "sha256": "11k30174a0z738gcmvpvk8wxsnsdnaf4qphrz0aq8yy0k1pidav2"
   }
  },
  {
@@ -3300,20 +3321,20 @@
   "repo": "dieter-wilhelm/apdl-mode",
   "unstable": {
    "version": [
-    20200417,
-    857
+    20200501,
+    1904
    ],
-   "commit": "2fcf73e0d522e88e99813c84ac1c07f8a83b1e77",
-   "sha256": "1kfzvgxf34a1wdiiwv4q6bix24avdiwkldxbypkpw57sbrarwiva"
+   "commit": "ee5f546f6659b9ca3c6895a1959087531b4a016a",
+   "sha256": "1qpqji2qx4srxk22684gh3sjj8sa87kd5fbr1xh8dscn19h5yvx9"
   },
   "stable": {
    "version": [
     20,
-    4,
+    5,
     0
    ],
-   "commit": "03d4d55f5d44584d6de50033cdc1b1bc87db83a3",
-   "sha256": "0yv3l3j3syn2i4ff9rvsx7a2vp7mv7p9y08dzcvl6km1909adzc6"
+   "commit": "ee5f546f6659b9ca3c6895a1959087531b4a016a",
+   "sha256": "1qpqji2qx4srxk22684gh3sjj8sa87kd5fbr1xh8dscn19h5yvx9"
   }
  },
  {
@@ -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": [
@@ -4185,6 +4245,29 @@
   }
  },
  {
+  "ename": "auth-source-xoauth2",
+  "commit": "8ba0273c8aa2a50b9dc9b8312b860d94dfd808d5",
+  "sha256": "0g06240ix4gzw3fb74jcadiq7nissi20i1vsbzhkx35j10mv7wn3",
+  "fetcher": "github",
+  "repo": "ccrusius/auth-source-xoauth2",
+  "unstable": {
+   "version": [
+    20200817,
+    1604
+   ],
+   "commit": "b0386d4a12a88c5635b26eaa4c9e355fc84fb3f6",
+   "sha256": "11i184s36ddxs06d8gq15nd0q59im8vfqnww3mvy35q12y6r8gpq"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "commit": "5e646a32c9ba31a015a09fce1ad711b85717119a",
+   "sha256": "0nl859csl8xcd6ybpjj15ph8l8fxwkwf45kbylss68alkyf1rl3v"
+  }
+ },
+ {
   "ename": "auto-async-byte-compile",
   "commit": "f8e4328cae9b4759a75da0b26ea8b68821bc71af",
   "sha256": "0ks6xsxzayiyd0jl8m36xlc5p57p21qbhgq2mmz50a2lhpxxfiyg",
@@ -4263,8 +4346,8 @@
     "cl-lib",
     "popup"
    ],
-   "commit": "2e83566ddfa758c69afe50b8a1c62a66f47471e3",
-   "sha256": "1rkqjq7wr4aavg08i8mq13w85z14xdhfmpbipj5mhwlpyrrci4bk"
+   "commit": "c0836fa0662095071e3c40237db611063e3c3ceb",
+   "sha256": "1269k2q1hv1yixn7w32ani7g0zspiiwfmbywxi8lvh9hj0asbrsc"
   },
   "stable": {
    "version": [
@@ -4509,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,
@@ -4570,11 +4653,11 @@
   "repo": "mina86/auto-dim-other-buffers.el",
   "unstable": {
    "version": [
-    20180612,
-    2341
+    20200801,
+    2029
    ],
-   "commit": "ec74b4803adeadf06296c84595fb6ccf4e1b4a3f",
-   "sha256": "0l08kx12k97nag8khb63rz5fl1r9gahgmjg5073h25lypl74895n"
+   "commit": "cad370fb6c9fc7186c2af221932e097af5900a2d",
+   "sha256": "0hjxadi8245zwwsp0kdz0c6i1j25drbky5cvksdnc8xw2l91kpbs"
   }
  },
  {
@@ -4706,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"
   }
  },
  {
@@ -4724,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"
   }
  },
  {
@@ -4756,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",
@@ -4813,14 +4878,26 @@
   "repo": "ncaq/auto-sudoedit",
   "unstable": {
    "version": [
-    20200122,
-    857
+    20200427,
+    635
    ],
    "deps": [
     "f"
    ],
-   "commit": "22cd3dd6d3206cdab5c72792479a8f7f04a2b3e9",
-   "sha256": "0nwnmqhfy4378p43a12bc32y4qqw349xjkrdh6x7fkdsd4wpf7f4"
+   "commit": "0ad8247fdd0f1d747cd1ff73adb6b5efcecc7f3b",
+   "sha256": "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "deps": [
+    "f"
+   ],
+   "commit": "0ad8247fdd0f1d747cd1ff73adb6b5efcecc7f3b",
+   "sha256": "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"
   }
  },
  {
@@ -4831,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"
   }
  },
  {
@@ -4851,16 +4928,16 @@
   "repo": "robert-zaremba/auto-virtualenvwrapper.el",
   "unstable": {
    "version": [
-    20200416,
-    1128
+    20200510,
+    1006
    ],
    "deps": [
     "cl-lib",
     "s",
     "virtualenvwrapper"
    ],
-   "commit": "f33e8c40e53c247ee6a4fd90af8805a9806735a1",
-   "sha256": "0hxwlm364xq66rp8izv0x09r37pg9kiddik0xbss736fdlw0sx4z"
+   "commit": "30fb54aa3c99f3c614ea9a92669d634df30c9439",
+   "sha256": "19qycxf6ln60s604j5rn3qfsy2rbzdbw4gwkiprdiq1bkmphbwzj"
   }
  },
  {
@@ -4920,14 +4997,14 @@
   "repo": "erjoalgo/autobuild",
   "unstable": {
    "version": [
-    20200209,
-    2005
+    20200713,
+    227
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "b5ac7436be372dffc97280f4b835f61ab6b716d5",
-   "sha256": "138kzn20gfy6dj15nkfwsz7lz91n6ffsjzz2kkmclnfkazxixjhq"
+   "commit": "6c10b13c285cc4180dc64c1f89ead264e6786f53",
+   "sha256": "02zjfv5365misiivjgjwwrp6bly7z81vnndkyrn6xzv88d2l2byv"
   }
  },
  {
@@ -4938,11 +5015,11 @@
   "url": "https://git.sr.ht/~zge/autocrypt",
   "unstable": {
    "version": [
-    20200330,
-    2301
+    20200505,
+    1717
    ],
-   "commit": "a16bf93ba833264b10d19abfa8fa684d9be32081",
-   "sha256": "119nii5qdds53cmwz3f8rl7f4k5l783h6k6ahizdawy4rf54xfz4"
+   "commit": "d77140654405cabd007621606aca9beb512dff7a",
+   "sha256": "0cr2q5dfvh85m6zlc2glssxj81py0hrvg9kh7bk6r33j0zygbr7r"
   }
  },
  {
@@ -4992,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",
@@ -5047,8 +5109,8 @@
     20190331,
     2230
    ],
-   "commit": "052881b101d8c2d11c89ae4f1befe7a999de987e",
-   "sha256": "0k9sjjsqxnrh0cq6m3cd9rk44n0rjbjgqcbfv6fg33a0gpybvryf"
+   "commit": "fc9ec563430e3beaefc00b26da179f4b4ca9855b",
+   "sha256": "1m4v56yy73gvycsvpc36h7yh6yhn3fgp90rk5m248hz89gjf9kxv"
   }
  },
  {
@@ -5154,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": [
@@ -5210,8 +5272,8 @@
    "deps": [
     "avy"
    ],
-   "commit": "aee6878a8c2f18c3ac3bd34d608783b52cd708e0",
-   "sha256": "1526a6cqaa16x5gi2fsdi9brqa54n3m0dvrnkd85w6sgaz33cpiz"
+   "commit": "970204989bcd4a4f8223c2fe980a08dc58441045",
+   "sha256": "196pwh83p0yrnagpiig8h2mq9xxm7wk9q8x832ffwizip4yni80b"
   },
   "stable": {
    "version": [
@@ -5356,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",
@@ -5440,11 +5517,11 @@
   "repo": "mschuldt/backlight.el",
   "unstable": {
    "version": [
-    20190905,
-    519
+    20200813,
+    1839
    ],
-   "commit": "3e5b971b4ee89299240a89614db92d2c4034e954",
-   "sha256": "0hsb1vd1mk4mcgr4l93b81hz2bq7cpd7b3kdhabv9z489mxiy3fa"
+   "commit": "38fcb9256c3bf7300a41332fa7f9feffc4e2db9a",
+   "sha256": "0982il82v10yclm87b06ghwv4cglw03ia0zs4m838ag6zg8a08jg"
   }
  },
  {
@@ -5598,20 +5675,20 @@
   "url": "https://git.sr.ht/~zge/bang",
   "unstable": {
    "version": [
-    20200414,
-    1123
+    20200811,
+    1008
    ],
-   "commit": "1fb0162ffd2115080d4e1ddf65935277cf3c75db",
-   "sha256": "12nr5la6y5dnh46rfij3p1srgpwdc3fiaf4ckfx6f9kl0n1zyrls"
+   "commit": "e02338331463461a85144c0ce6b9b877bd3a7567",
+   "sha256": "1rvgmkl950zrakczk9libws29c9l2hklw49m3xb4swa14kz1r639"
   },
   "stable": {
    "version": [
     1,
     0,
-    2
+    3
    ],
-   "commit": "1fb0162ffd2115080d4e1ddf65935277cf3c75db",
-   "sha256": "12nr5la6y5dnh46rfij3p1srgpwdc3fiaf4ckfx6f9kl0n1zyrls"
+   "commit": "e02338331463461a85144c0ce6b9b877bd3a7567",
+   "sha256": "1rvgmkl950zrakczk9libws29c9l2hklw49m3xb4swa14kz1r639"
   }
  },
  {
@@ -5639,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,
@@ -5713,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"
   }
  },
  {
@@ -5756,8 +5833,8 @@
   "repo": "sasanidas/emacs-c64-basic-ide",
   "unstable": {
    "version": [
-    20200416,
-    1953
+    20200429,
+    1104
    ],
    "deps": [
     "basic-mode",
@@ -5766,8 +5843,8 @@
     "f",
     "flycheck"
    ],
-   "commit": "5d186623fb6805db71fe5b226df497e6b2904b96",
-   "sha256": "1v9mhvi1fqh4pni03y3qrlrzj2jrz2s9jc5g3jjpxll4zhsfr6w4"
+   "commit": "0f75c944239960445f1e9c8a0b5f7a5b4d37ff89",
+   "sha256": "0xmi27b3zs8bsvcf9405rg88cjz1x2nivj5pvy6gjy07r9dl7ngf"
   },
   "stable": {
    "version": [
@@ -5867,11 +5944,11 @@
   "repo": "bazelbuild/emacs-bazel-mode",
   "unstable": {
    "version": [
-    20200424,
-    1953
+    20200627,
+    1625
    ],
-   "commit": "668a44907f7b3ad0e6fd300e319fba5862780140",
-   "sha256": "13llvkl40pybi4f1chak3v4f58fwwqw1kn9ygmv6dmn2wg4ag2mp"
+   "commit": "2cf143b616df3de4b199538341d674c58386719e",
+   "sha256": "1p9pxxdx39jmf8sav660ps6mqwbsgcl4v1i9xb8xsd5qdxmwjqli"
   },
   "stable": {
    "version": [
@@ -6084,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",
@@ -6136,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": [
@@ -6166,11 +6228,11 @@
   "repo": "DamienCassou/beginend",
   "unstable": {
    "version": [
-    20200415,
-    1752
+    20200526,
+    2005
    ],
-   "commit": "bb51f7ee9229ff0b6ec5ba4a730f7360246fb9ea",
-   "sha256": "0l7lbmn6ljh8yv7ch2fax47mr7kxly5b5ps5vg61ra15nv8v5vfr"
+   "commit": "9c7a92779d75f6fd985cf707ff5241bc98ccea6c",
+   "sha256": "1r9033zlx2q2dk3bjz004flxdiw79qiswq0zqdjnlzwassvk0f35"
   },
   "stable": {
    "version": [
@@ -6222,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,
@@ -6329,11 +6391,11 @@
   "repo": "technomancy/better-defaults",
   "unstable": {
    "version": [
-    20200209,
-    1717
+    20200717,
+    2012
    ],
-   "commit": "fc9a03138c959f0d24301c6401f800eb6e7d3af9",
-   "sha256": "1hi1xxc99z0pkbj8w63fx3qsy4sq5b3gdc2ccyk0gnbzw2sfc93j"
+   "commit": "293237a22a4f24171dd9910d6517a0eccf526fdf",
+   "sha256": "0f3alik361d81kdwpigcgkj9rxww23prqfhjfdh97fnycp3r1nyb"
   },
   "stable": {
    "version": [
@@ -6407,14 +6469,14 @@
   "repo": "zk-phi/bfbuilder",
   "unstable": {
    "version": [
-    20150924,
-    1650
+    20200816,
+    519
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "49560bdef131fa5672dab660e0c62376dbdcd906",
-   "sha256": "1y9fxs1nbf0xsn8mw45m9ghmji3h64wdbfnyr1npmf5fb27rmd17"
+   "commit": "00cbf1010dc3fee5a0b8e7c0e0b6041bb6251bdf",
+   "sha256": "1n1aq3kwsjc3hlgas73bs22pvrn69hfba1wcbqs2j28j2j9j00b2"
   }
  },
  {
@@ -6542,8 +6604,8 @@
     "a",
     "pdf-tools"
    ],
-   "commit": "eab07dae119129066624e692c1c75a53b2ab10a5",
-   "sha256": "1q9g8kza6hv6pv1sjzkl6b4gxcx6fsvv8lk5w7kk9gpws5vjz5bz"
+   "commit": "61a14d1a8c17930caca5c5daf893cedc9c23c5f3",
+   "sha256": "0acq8d8vlx3hd405wmi5w36gg88bz1c1crmlxbd2whgi8kyf506z"
   }
  },
  {
@@ -6591,8 +6653,8 @@
   "repo": "tmalsburg/helm-bibtex",
   "unstable": {
    "version": [
-    20200417,
-    1725
+    20200513,
+    852
    ],
    "deps": [
     "biblio",
@@ -6602,8 +6664,8 @@
     "parsebib",
     "s"
    ],
-   "commit": "631dc607e8f29f1a585adde01d6785af1fb35d12",
-   "sha256": "09l1h1z493dc7hp109sqs1lkkcaw0mh762p5cpda9xymr9hf6w31"
+   "commit": "8a0dd9841316793aacddea744d6b8ca4a7857a35",
+   "sha256": "1av058d7888kr3q15y1122r8jkarfw1s83gvkillj7kyzj3i53m5"
   },
   "stable": {
    "version": [
@@ -6645,20 +6707,20 @@
   "repo": "tarsius/bicycle",
   "unstable": {
    "version": [
-    20200103,
-    1237
+    20200723,
+    2222
    ],
-   "commit": "91d9f946690df0a1ed866f2cd1eab1b2e7c7480a",
-   "sha256": "0pkn99srwyvyibz5zxkh58csbf598x26f31mpizacx3bs4nys0qb"
+   "commit": "799969a66192b27c6464fc2e0025f4089d70493b",
+   "sha256": "13179nlhjkdsgpjp2lbx8fqx76ka79hjkhip6im6afv9icr3j3ba"
   },
   "stable": {
    "version": [
     0,
-    3,
-    1
+    4,
+    2
    ],
-   "commit": "91d9f946690df0a1ed866f2cd1eab1b2e7c7480a",
-   "sha256": "0pkn99srwyvyibz5zxkh58csbf598x26f31mpizacx3bs4nys0qb"
+   "commit": "799969a66192b27c6464fc2e0025f4089d70493b",
+   "sha256": "13179nlhjkdsgpjp2lbx8fqx76ka79hjkhip6im6afv9icr3j3ba"
   }
  },
  {
@@ -6672,8 +6734,8 @@
     20200325,
     539
    ],
-   "commit": "773a6dde790c4a240e643a9071e4c7bce09d40de",
-   "sha256": "11dirb13hblfa95hqqshrsjri4d4qzcq5qhhnd4xqajdchr62758"
+   "commit": "de8d09b08b0b30714c4f9b98c97e9577d47b9be6",
+   "sha256": "1z3jk232i0h2zakvbkfpb5a5qdbzfqn4zvbja1hms9349x54a07i"
   },
   "stable": {
    "version": [
@@ -6729,8 +6791,8 @@
     "bind-key",
     "key-chord"
    ],
-   "commit": "c873d5529c9c80cb58222f22873a4f081c307cb2",
-   "sha256": "0jbq3w9ijsbl5gblhr24b0rh4gyp1xx696g20l438a7sbsk4b531"
+   "commit": "4fb1f9a68f1e7e7d614652afc017a6652fd029f1",
+   "sha256": "073sm0mbxcjysap2bjzf1cl0134jy8a0xig7ywmmd0bm2y8qzfip"
   },
   "stable": {
    "version": [
@@ -6753,11 +6815,11 @@
   "repo": "jwiegley/use-package",
   "unstable": {
    "version": [
-    20191110,
-    416
+    20200805,
+    1727
    ],
-   "commit": "c873d5529c9c80cb58222f22873a4f081c307cb2",
-   "sha256": "0jbq3w9ijsbl5gblhr24b0rh4gyp1xx696g20l438a7sbsk4b531"
+   "commit": "4fb1f9a68f1e7e7d614652afc017a6652fd029f1",
+   "sha256": "073sm0mbxcjysap2bjzf1cl0134jy8a0xig7ywmmd0bm2y8qzfip"
   },
   "stable": {
    "version": [
@@ -6958,11 +7020,11 @@
   "repo": "pythonic-emacs/blacken",
   "unstable": {
    "version": [
-    20191123,
-    1547
+    20200626,
+    2018
    ],
-   "commit": "a09f8e2564739792a1b86bc8a6ce41039db3bbf8",
-   "sha256": "0cs9nmi30dknrw6p2xvx9np1zmzpsn3bs93lhfiqy2a4ylf96brl"
+   "commit": "784da60033fe3743336d1da0f33239f1bf514266",
+   "sha256": "1s7isvih1xl4l6say8xa69r9lf3prq9sd6d9fmn1n8g8p3w09cnq"
   }
  },
  {
@@ -6976,8 +7038,8 @@
     20200404,
     1550
    ],
-   "commit": "af37650d99bb5ae3ab05577a5bf99d5ff26b1e66",
-   "sha256": "18n1l6rwwfjrgaygm7nhrxg92fdd21aqkb38lc55lx3qhlrw1qwv"
+   "commit": "d99ab1aad84e4bd2bd4a499877764c213cce50ff",
+   "sha256": "0ay49ars61vr43n4bd3k4n1w89ilmw7d8s53ifixgw0vvjkz74z1"
   },
   "stable": {
    "version": [
@@ -7241,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"
   }
  },
  {
@@ -7376,16 +7438,16 @@
   "repo": "jyp/boon",
   "unstable": {
    "version": [
-    20200212,
-    1535
+    20200514,
+    1227
    ],
    "deps": [
     "dash",
     "expand-region",
     "multiple-cursors"
    ],
-   "commit": "19bc70fa6f9e5c001f8ac714ce90af14788f35dd",
-   "sha256": "0ippdjd4j8y1xx438pvxiw0h0my6zdmvnbpay3fckrssirhi1m6l"
+   "commit": "57271ed2ddca96c77b83b282019852d1cffffd26",
+   "sha256": "0mmyxi75hlg1lkvpk4lq5nagmcsmjijmkcmmkkq25llf7nmik8as"
   },
   "stable": {
    "version": [
@@ -7409,16 +7471,15 @@
   "repo": "emacscollective/borg",
   "unstable": {
    "version": [
-    20200223,
-    1448
+    20200805,
+    1131
    ],
    "deps": [
-    "dash",
     "epkg",
     "magit"
    ],
-   "commit": "3cfb35f5c54a76f200272ed11b4a39f11a57552c",
-   "sha256": "1y4c7bdy4vzv630d3yxhgq3v29q5f071d30kig4wwv460nai7c4c"
+   "commit": "1fe1d2b7a574dd560740a55d87d9a5fb3a989dbc",
+   "sha256": "19rxqh6qagznsm5hqal65cv03k9gg1cfvb0j5saaqfc4nxkhkv7v"
   },
   "stable": {
    "version": [
@@ -7473,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"
   }
  },
  {
@@ -7604,14 +7665,25 @@
   "url": "https://bitbucket.org/MikeWoolley/brf-mode",
   "unstable": {
    "version": [
-    20200329,
-    1531
+    20200811,
+    1622
+   ],
+   "deps": [
+    "fringe-helper"
+   ],
+   "commit": "4e12ec16d6b896402f8bcdc1cd468d4064a2df6f",
+   "sha256": "1pdrpvff6hvhjv512z1vkivd848ar5li4p63jnbvl90hp7kpy7c3"
+  },
+  "stable": {
+   "version": [
+    1,
+    19
    ],
    "deps": [
     "fringe-helper"
    ],
-   "commit": "f1ae0c5eb74f62af109ebaf18e8663d6f51270cb",
-   "sha256": "1pzxz5irx6ysa8nhl9x50v8l5r2cvd6pafj71q4i5lrxv9a1dkl1"
+   "commit": "0024b1a276c43fde0d85011b51b5aaf1f201da64",
+   "sha256": "1nnhb0vyx5f3f7h2fsg2p7656kcsk7ahrndxrhs7a77svnr426lb"
   }
  },
  {
@@ -8064,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"
   }
  },
  {
@@ -8173,14 +8245,14 @@
   "repo": "alezost/bui.el",
   "unstable": {
    "version": [
-    20181218,
-    1830
+    20200426,
+    2219
    ],
    "deps": [
     "dash"
    ],
-   "commit": "508577a7225b3d07eaefa9444064410af2518675",
-   "sha256": "0d9s0gdy5wda86jn8hjs1rq9rbwz5syvr8jxdks3iy27k4hp4wil"
+   "commit": "28a9b0a36cb69b931cf32db7546ad5c6589752cf",
+   "sha256": "1gwb95pjwv9k0iq290mcyyl0xasr3jldr086rrhabxpcc9ih3yv8"
   },
   "stable": {
    "version": [
@@ -8418,19 +8490,19 @@
   "repo": "jorgenschaefer/emacs-buttercup",
   "unstable": {
    "version": [
-    20200412,
-    1148
+    20200817,
+    2001
    ],
-   "commit": "a91f2820256a4e0c8636cc33a2ef8515a26d3f81",
-   "sha256": "0nhsxj48a9aqfmwqs4m65zh2g0cmvijz4m69cvx1bcia31jaabpx"
+   "commit": "0e5eae0766a33b5c8997e1477e3914d5c8ba3d29",
+   "sha256": "0qn3i26g119h14jv9q0vha55s4g154djp3f68d2g7i0f46wm54hz"
   },
   "stable": {
    "version": [
     1,
-    21
+    23
    ],
-   "commit": "0dbd474460e4c314bf8bc6e4d3dec647081538c9",
-   "sha256": "1ra5r56k539q6l98msxdn4vfd7k6jm00g8cdhs6hpwvb1blj8di2"
+   "commit": "a9647cbb566eb488b7bbde44c4cdaf51b7915851",
+   "sha256": "0ym1hajy47n5f1rxic8qfxrwd8zc1r7csz1v4hrwhwm4qld4krfr"
   }
  },
  {
@@ -8876,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",
@@ -8979,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"
   }
  },
  {
@@ -8994,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": [
@@ -9115,8 +9219,8 @@
     "dash",
     "s"
    ],
-   "commit": "92a31f6a7cae0b4e2af106cd6f2b0abe6c2d8921",
-   "sha256": "1cp9i69npvyn72fqv0w8q1hlkcawkhbah4jblc341ycxwxb48mkl"
+   "commit": "75ddb9c64eeb78b46d9e1db99bef8d0fb1e46b99",
+   "sha256": "06briiapv2pfll8zc0wl55sad8cjgxkb8j8d4bvc8w5li3d52xa9"
   },
   "stable": {
    "version": [
@@ -9141,8 +9245,8 @@
   "repo": "cask/cask",
   "unstable": {
    "version": [
-    20191004,
-    1155
+    20200814,
+    913
    ],
    "deps": [
     "ansi",
@@ -9154,8 +9258,8 @@
     "s",
     "shut-up"
    ],
-   "commit": "a4715f7c6c9797639c3636399cb21c2b0332b354",
-   "sha256": "1zjz3mp8hgnsfyapq7qdfysj31g9f6syvrik2w057r3w3bxp8vkf"
+   "commit": "c69822a1a3168d43caebb7afaa13249429419ae0",
+   "sha256": "0w7q16y2r54rann07lk4gwi7jkqnb5xc8cbjnx2avgpsk7kawi8w"
   },
   "stable": {
    "version": [
@@ -9334,11 +9438,11 @@
   "repo": "xuchunyang/cc-cedict.el",
   "unstable": {
    "version": [
-    20181217,
-    1112
+    20200705,
+    443
    ],
-   "commit": "0dd9bcd5337c8f16fc9c8d27daba4a9362695c99",
-   "sha256": "16qp0r413lqrym2xh2vpx0hg295g8mr428fg6q07w1hnzz10dpc2"
+   "commit": "6bb9481e48b889503626b4e3cb7cfec8d14cbf4b",
+   "sha256": "0nxq8p7hafpl1xq9daf5lcyk8ragdgnwsfxxd2d0rnzmyflgw5wi"
   }
  },
  {
@@ -9352,8 +9456,8 @@
     20200314,
     1557
    ],
-   "commit": "11d91b4cce988e15d7c5fc4345535c9d7a92d53b",
-   "sha256": "19fgk6m951q9swr958337a3jk9b4xgvswkc73al6wsdkigygmhji"
+   "commit": "275a831be77573470309a78967734d2b6d10f218",
+   "sha256": "1a25aybavi6p7ijc4rbd8zyzgiim1m2xwm7yqfmsvrfzwgb29xal"
   }
  },
  {
@@ -9364,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"
   }
  },
  {
@@ -9399,11 +9502,11 @@
   "repo": "skk-dev/ddskk",
   "unstable": {
    "version": [
-    20200314,
-    1557
+    20200803,
+    2138
    ],
-   "commit": "11d91b4cce988e15d7c5fc4345535c9d7a92d53b",
-   "sha256": "19fgk6m951q9swr958337a3jk9b4xgvswkc73al6wsdkigygmhji"
+   "commit": "275a831be77573470309a78967734d2b6d10f218",
+   "sha256": "1a25aybavi6p7ijc4rbd8zyzgiim1m2xwm7yqfmsvrfzwgb29xal"
   }
  },
  {
@@ -9414,11 +9517,11 @@
   "repo": "cdominik/cdlatex",
   "unstable": {
    "version": [
-    20200305,
-    809
+    20200506,
+    739
    ],
-   "commit": "a5cb624ef5f9e3d51fce6faa8dc153277f61043a",
-   "sha256": "0gicai05d21909mjjvfc6194ygrqg2pbff60pjh3w593c4l4jmcj"
+   "commit": "480387b39f6ddd9cd2a9511ecee064ad8e1dd324",
+   "sha256": "1y5c2ycvmij7klvc9rhg265ha23xlh2hi4q5w50xljzh2mmlp3fb"
   },
   "stable": {
    "version": [
@@ -9473,11 +9576,11 @@
   "repo": "zk-phi/cedit",
   "unstable": {
    "version": [
-    20141231,
-    1614
+    20200816,
+    526
    ],
-   "commit": "0878d851b6307c162bfbddd2bb02789e5e27bc2c",
-   "sha256": "1f8gdj3p54q3410c66716y3l7i7nnkmq6hqz0dg1a1sc6jwdij3v"
+   "commit": "cb38316903e6cfa8b8c978defa7e1dafcd4e0c12",
+   "sha256": "1m5n0rwh97g3vl4x0akclgc8flh9vpdavp82q3i1yraigvzqzfc9"
   }
  },
  {
@@ -9537,15 +9640,15 @@
   "repo": "ema2159/centaur-tabs",
   "unstable": {
    "version": [
-    20200325,
-    1236
+    20200722,
+    27
    ],
    "deps": [
     "cl-lib",
     "powerline"
    ],
-   "commit": "e6bf9f5257fa5401695e0e33d0376a0821ac2f2f",
-   "sha256": "1gm06par7pglwj25ydvlp1n2vniq6283mm0g4s53ra77ywsz73jv"
+   "commit": "7e0332b138f836b9d0b6d2134310f53369598cfd",
+   "sha256": "1fjs1l79wsyiyi4nrdkxg2hhfkngm7g0zpdq5ca3c1zi4fsv084i"
   },
   "stable": {
    "version": [
@@ -9568,11 +9671,11 @@
   "repo": "andre-r/centered-cursor-mode.el",
   "unstable": {
    "version": [
-    20190306,
-    1006
+    20200507,
+    1529
    ],
-   "commit": "90e6d68a74d134f67c32d0621d64db90703c46eb",
-   "sha256": "05x1hppnmhinb92zblkwdpwkf0bhk7jsj2mms8mi1gl27pn7zg14"
+   "commit": "f376bdb882047347345d5f0e3ec3fcef63ee93ba",
+   "sha256": "1dnc0vjy6z6kdh8h8bmwi5vgyvy2z4405qpxb20d0dbly8qz9fns"
   }
  },
  {
@@ -9672,17 +9775,17 @@
     20171115,
     2108
    ],
-   "commit": "5d5692e7526eb228308f91c10761f22c69c8ea35",
-   "sha256": "1shwvgakkv9q9mlvzcsxnrj4zd1ld8nf7k8pw6zl6j3wg0sj5fd3"
+   "commit": "ec47889f4bef53c6c5a15add60d34c44c6ef1634",
+   "sha256": "16lndmhm0ad23g0pa4rl7dyrwmdv22xmscnpqnd49sg88356fyd2"
   },
   "stable": {
    "version": [
     3,
-    15,
-    1
+    16,
+    0
    ],
-   "commit": "e766ee2484f9a7609688ac1832ff2ca7528624c5",
-   "sha256": "18iv6s2g7gz2dmqhipn6ln6g4qngywcj7fm4gqwrph04bx5dfqac"
+   "commit": "ee2c1fd898a8219e81fea4f753648070e50ebc2e",
+   "sha256": "1jcvh67kxx5isqb78zjbca51px21cyjcwy1cbfkx47y1rmgsqzaw"
   }
  },
  {
@@ -9757,16 +9860,16 @@
   "repo": "Alexander-Miller/cfrs",
   "unstable": {
    "version": [
-    20190618,
-    1458
+    20191125,
+    2007
    ],
    "deps": [
     "dash",
     "posframe",
     "s"
    ],
-   "commit": "de83b587affe374d1cf6e6c2d747696e6c33a817",
-   "sha256": "130g09i38k77y2kyirg54dglksl6vrypdhh4h2j8hzy1mipc5a43"
+   "commit": "fc5effdc25a926eada4936e5506dcccdf3902137",
+   "sha256": "1d18wvx2szmpvj5v26qqp2qkdmb764sfkp2f864by2hpad0rx034"
   },
   "stable": {
    "version": [
@@ -9832,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
+   ],
+   "deps": [
+    "hydra"
    ],
-   "commit": "6e095edd7639f5f0a81e14d6412410b49466697e",
-   "sha256": "0r3yja2ak3z62lav2s8vimmjyi4rd5s82fbs8r6p2k0shm6lj7hz"
+   "commit": "0855d6ea5e74da7b02e7307066da912c242084c8",
+   "sha256": "08bgjwkm6bhm5s73pdx62bjm58z18q21fhj02zdp0q8dds5babf9"
   },
   "stable": {
    "version": [
@@ -9868,8 +9974,8 @@
    "deps": [
     "avy-menu"
    ],
-   "commit": "22d0e061f170d59d7cf6bcd948c11fa0266b7771",
-   "sha256": "1m29vg4cispsd8nl8lpmv5fify1208nrf8h7nkl17pplrk7hqhwb"
+   "commit": "a1ccf5ed786af6e2441037964668d817b9c7362f",
+   "sha256": "19yl7gmzalhrhr3spi8vs6wpxpv6m3m1d9564naznswxx19sjcjy"
   },
   "stable": {
    "version": [
@@ -9892,11 +9998,11 @@
   "repo": "lateau/charmap",
   "unstable": {
    "version": [
-    20160309,
-    946
+    20200616,
+    1418
    ],
-   "commit": "bd4b3e466d7a9433cf35167e3a68ec74fe631bb2",
-   "sha256": "0vqsfk83lg3gvcv62jsgxxwz7icpkpswgg30hmcq0qfg0dfwwcl9"
+   "commit": "feac50b87d2a596c5e5b7b82b79ddd65b6dedd8c",
+   "sha256": "1pms4s1qnf60d3amhx1lfa255ln5wypq0q6w918whhzi4l7mdyz4"
   },
   "stable": {
    "version": [
@@ -10257,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": [
-    20200324,
-    653
+    20200816,
+    1947
    ],
    "deps": [
+    "anaphora",
     "dash",
     "s",
-    "seq"
+    "seq",
+    "ts"
    ],
-   "commit": "dc0fb3bed6b893ecb924f5b1228ab718325cc808",
-   "sha256": "08mzv8rijsagkj4ykxlgr99axp0kxnz36d3iaffkqzyv50cm4r6f"
+   "commit": "c886dbb1ec8d1e22f7e9891ce9794d373b3b4e9b",
+   "sha256": "0f94w039ibqyysldgs0rdzjczhpgd1dq6ll85gdb4av7vw6mp3hy"
   },
   "stable": {
    "version": [
     0,
-    4,
-    2
+    5,
+    3
    ],
    "deps": [
     "dash",
     "s",
-    "seq"
+    "seq",
+    "ts"
    ],
-   "commit": "cc791cd61ee4580c9786f8c58d9e1964e0ff0c64",
-   "sha256": "1ccy7qz1wcmggqlf3hwigbqq4wrx1amds4x9bxz9py6bypglyjc5"
+   "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"
   }
  },
  {
@@ -10345,8 +10486,8 @@
   "repo": "clojure-emacs/cider",
   "unstable": {
    "version": [
-    20200420,
-    735
+    20200814,
+    1540
    ],
    "deps": [
     "clojure-mode",
@@ -10357,14 +10498,14 @@
     "sesman",
     "spinner"
    ],
-   "commit": "7f4d4e81816e64238370e028824e6389f02a38c8",
-   "sha256": "03rbanapb2rg9is91r6c549gx96va5gkpdqhlm0gqgph4jg4jvfi"
+   "commit": "a89b694cc3cec0294d84bf9dbe1163ad2373e8db",
+   "sha256": "0m77jbxl380dp1wyj12m82bb06r80js8yxl530ryp1mwvy74f00d"
   },
   "stable": {
    "version": [
     0,
-    24,
-    0
+    26,
+    1
    ],
    "deps": [
     "clojure-mode",
@@ -10375,8 +10516,8 @@
     "sesman",
     "spinner"
    ],
-   "commit": "bfcf9157a970c9423fe27c5021f445b509e71280",
-   "sha256": "1y7fngd47c5dz6sdf4b5w5lxdw5jmm4wa98l4h48badl8cn6m1vl"
+   "commit": "a89b694cc3cec0294d84bf9dbe1163ad2373e8db",
+   "sha256": "0m77jbxl380dp1wyj12m82bb06r80js8yxl530ryp1mwvy74f00d"
   }
  },
  {
@@ -10549,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": [
@@ -10609,8 +10750,8 @@
   "repo": "andras-simonyi/citeproc-el",
   "unstable": {
    "version": [
-    20200305,
-    2126
+    20200705,
+    1155
    ],
    "deps": [
     "dash",
@@ -10620,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"
   }
  },
  {
@@ -10717,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",
@@ -10970,8 +11174,8 @@
     "seq",
     "yasnippet"
    ],
-   "commit": "8259791e054382457b87d1f78061b5e3ce948907",
-   "sha256": "0vn32b8vhlp75vj4schy8blmiddc6dn92jl4f935yd4sg7pm04cj"
+   "commit": "97095682580bbc5bfebcbc5349f03f5bd7121c96",
+   "sha256": "1dgksqzdln8cv0hyq273ikfk2bmk16rwvkiyscqsxzi8jdv8cdck"
   },
   "stable": {
    "version": [
@@ -11028,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",
@@ -11127,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",
@@ -11134,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"
   }
  },
  {
@@ -11164,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"
   }
  },
  {
@@ -11250,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"
   }
  },
  {
@@ -11284,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"
   }
  },
  {
@@ -11430,8 +11718,8 @@
   "repo": "atilaneves/cmake-ide",
   "unstable": {
    "version": [
-    20190731,
-    1009
+    20200515,
+    951
    ],
    "deps": [
     "cl-lib",
@@ -11439,8 +11727,8 @@
     "s",
     "seq"
    ],
-   "commit": "e3aa1ded10c079337826b40586111df7114f6379",
-   "sha256": "1s1z3m3qaf6ayp69w7h95ad3k4bs2iqqzsvjf94h5wd233mqlp2v"
+   "commit": "a8f9e83848b513f810170988679a9ef455025975",
+   "sha256": "1dzqqcj9l7hr73cj65rx5iy58bsiif5521d18jym4pajhzj3mkx0"
   },
   "stable": {
    "version": [
@@ -11467,17 +11755,17 @@
     20190710,
     1319
    ],
-   "commit": "eadafe2ebc419414fba42a3fe28b534bb2fc7a93",
-   "sha256": "11yhjsg2y6mxpd674wkqfwzfm4qzrmbh0mywq7617brg6hk71kb9"
+   "commit": "92d724903192b98e42cc1048ca587207aa20043f",
+   "sha256": "1ig5wjiq31rgf57gkf37d2rzx4qkkif997w1dfllwc4w3svwykp0"
   },
   "stable": {
    "version": [
     3,
-    17,
+    18,
     1
    ],
-   "commit": "bd580b7d568493a795a855c0710ba4ad88532485",
-   "sha256": "1ng8svdxwgjj4aq9f89lx18znrlhcjgl0brsfxwissf1z0539l9d"
+   "commit": "63a65baf4c343c73b2142078ef0045d3711dea1d",
+   "sha256": "1a3r119qca4sg83zchnsnmmq9k7ad8pljl5s24k00xbyyfs1wm7k"
   }
  },
  {
@@ -11491,8 +11779,8 @@
     20171121,
     1115
    ],
-   "commit": "d3f408f226eff3f77f7e00dd519f4efc78fd292d",
-   "sha256": "1r8a3arpkkn91k619z4b6ywnq15glc4n1ji33l0q2m59f5sfk8mp"
+   "commit": "a7cf9e4c01c4683e14b6942cc5cc5e8cddc98721",
+   "sha256": "0zff8705vllkmm112qm58q1af0x1rcra5yw4fi8m5q97kh0n77vn"
   },
   "stable": {
    "version": [
@@ -11545,11 +11833,11 @@
   "repo": "tumashu/cnfonts",
   "unstable": {
    "version": [
-    20200327,
-    101
+    20200819,
+    543
    ],
-   "commit": "d741332ad4bcd9a136d5dc4974a050da8ca28888",
-   "sha256": "1f2nrklzvm0b09d1s5rxvzahc32rs5qdqx910a45fj95hlw2w2wc"
+   "commit": "d4d303b0045b682b9e699e63fa3af4dd00daf878",
+   "sha256": "06gcm7wc1ayz0z2fqz3bqyfxqlgbx31z95gwbwjd9x2mqgkp02mh"
   },
   "stable": {
    "version": [
@@ -11653,8 +11941,8 @@
    "deps": [
     "request"
    ],
-   "commit": "055c9ce9c1b630d062305919cbffb9cf88fd24a8",
-   "sha256": "12rydfm05i1qvav1c73wwlk63i8mvqi148hdx1fks7al4lkhg2nl"
+   "commit": "0d5be395d4233ea533e6eddf50af725c51304205",
+   "sha256": "12b2skhp9x17ffh1jxpl0nw7cybq9a2iyqmp3fwmvrr51mdg6va1"
   },
   "stable": {
    "version": [
@@ -11834,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": [
@@ -11927,11 +12215,11 @@
   "repo": "emacs-jp/replace-colorthemes",
   "unstable": {
    "version": [
-    20200315,
-    929
+    20200729,
+    921
    ],
-   "commit": "40464198e7bf2121694a7e6d87588342140a84ff",
-   "sha256": "0fhr0rvfrb9fmbh9zgzxx2c2zl28v16hxmn9jx6k73nsfwpy498j"
+   "commit": "a996eca37f4df726eec95406deb76b538320771a",
+   "sha256": "1fgcd6vdqknqb1s1hwqqspk84a8xnxmrcnlic1j0x558i2yj4l2x"
   },
   "stable": {
    "version": [
@@ -11951,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": [
@@ -11977,11 +12265,11 @@
   "repo": "purcell/color-theme-sanityinc-tomorrow",
   "unstable": {
    "version": [
-    20200419,
-    156
+    20200813,
+    333
    ],
-   "commit": "344b06ed3c139af717ebff59505fc66635678f6c",
-   "sha256": "00as07y5q71bscchbz3yzck4ljzbcd5x5ghzzajgz3pj484smz6z"
+   "commit": "b7e33d1ccb10a93d6a0393c43400435b70a48689",
+   "sha256": "1qg5wz04d7kq63zsjbhdcxn96j6x84hsbj7vbx6d051yql6l3m8s"
   },
   "stable": {
    "version": [
@@ -12018,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": [
@@ -12065,11 +12353,11 @@
   "repo": "jordonbiondo/column-enforce-mode",
   "unstable": {
    "version": [
-    20171030,
-    1900
+    20200605,
+    1933
    ],
-   "commit": "2341a2b6a33d4b8b74c35062ec9cfe1bffd61944",
-   "sha256": "0rcxb7daxxrp5f1i5cbv25viwawbbsn4ij1mnlclp5wz7ilcy2rs"
+   "commit": "14a7622f2268890e33536ccd29510024d51ee96f",
+   "sha256": "1vxra5vk78yns2sw89m41bggczqg1akq6xvzfs9kylhkg5yz3g7g"
   }
  },
  {
@@ -12080,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"
   }
  },
  {
@@ -12129,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",
@@ -12214,8 +12515,8 @@
     "f",
     "s"
    ],
-   "commit": "c93985dc318fe89e5a29abc21d19fb41e2fd14d2",
-   "sha256": "0mlabiraagqwl17payils5589fr2mivvkzrfic6ndsipryab6rfc"
+   "commit": "9ba1456b0a389a2f7b42b6f42a4208ddd87ce609",
+   "sha256": "1kj7w8akrybr1y30lbhax8dnk5m4fg365ifxlyw766v69g5x7zd2"
   },
   "stable": {
    "version": [
@@ -12360,14 +12661,14 @@
   "repo": "ddoherty03/commify",
   "unstable": {
    "version": [
-    20161106,
-    2334
+    20200812,
+    1241
    ],
    "deps": [
     "s"
    ],
-   "commit": "78732c2fa6c1a10288b7436d7c561ec9ebdd41be",
-   "sha256": "1kb3cbjp69niq8ravh273dma0mnkf1v2ja372ahxfsq1janrkkm6"
+   "commit": "92514f071c667653f146629c0aec0ab4d3b78226",
+   "sha256": "1n6jpkhq0kncsszkkpfi923zq75h3d032vwmlz7pp8szs93w2308"
   }
  },
  {
@@ -12408,20 +12709,20 @@
   "repo": "company-mode/company-mode",
   "unstable": {
    "version": [
-    20200425,
-    118
+    20200818,
+    1753
    ],
-   "commit": "fdde3d112ba85d034f83f95deafa24fd13be36e4",
-   "sha256": "1krc5gxlkhr87hw5wlch1wfrjxdin8isg51f8m6kjy20jx57jalc"
+   "commit": "54f60ef523878c4d332f29df380f36cf2f165935",
+   "sha256": "08lbjvm97fh1bm5201ncbnr5b1456y9mwf6yhrrhg1rjqvcca74q"
   },
   "stable": {
    "version": [
     0,
     9,
-    12
+    13
    ],
-   "commit": "490d3e4e7ef3fbc90fb3e8747f902bf839a924cc",
-   "sha256": "0c31amc6gyfkmb1ii6mm56c75za1yxkj2iyhrjc45nn2mrh7yj7a"
+   "commit": "656ad10670512e135a0a5881f127bb7a789ef8ca",
+   "sha256": "1j5f8kqv36r18pg09a6139q7a0a39xdnc5nf6sv3c0pw3yfw1szn"
   }
  },
  {
@@ -12523,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"
   }
  },
  {
@@ -12582,16 +12883,16 @@
   "repo": "sebastiencs/company-box",
   "unstable": {
    "version": [
-    20190311,
-    1745
+    20200818,
+    738
    ],
    "deps": [
     "company",
     "dash",
     "dash-functional"
    ],
-   "commit": "8fc6168f2d3a0275156dd3fdf46ba496adbab226",
-   "sha256": "0mmn7lzl69hmy8rlzhwqb2ffgk29mb2ybb149cdpk7ydv1h63hqn"
+   "commit": "20384f0e382c063173b9d863344b1b23bc1e4954",
+   "sha256": "0l66ajzh1x0gazmv9nzgcsy72kyja3yq4gmzgzpkgin5dxms33k0"
   }
  },
  {
@@ -12652,8 +12953,8 @@
   "repo": "cpitclaudel/company-coq",
   "unstable": {
    "version": [
-    20200130,
-    2058
+    20200729,
+    401
    ],
    "deps": [
     "cl-lib",
@@ -12662,8 +12963,8 @@
     "dash",
     "yasnippet"
    ],
-   "commit": "f9dba9ddff7da99a93d8a6e26d9b1d813bc96b2f",
-   "sha256": "1hl8gr8afx2i5bia7vq3vn4shbaz8fps3h30ldvq141kfvmcp8jm"
+   "commit": "b096cb528de1e0bb31cc1059d0bd698b98a6cc6a",
+   "sha256": "0m70w4f0kpvk97nnnp1bfk191dhipv418fmcfqjw90sajknyhq6m"
   },
   "stable": {
    "version": [
@@ -12690,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"
   }
  },
  {
@@ -12801,8 +13102,8 @@
     "company",
     "eclim"
    ],
-   "commit": "23f5b294f833ce58516d7b9ae08a7792d70022a1",
-   "sha256": "17q972354nkkynfjmwih4vp7s5dzdvr3nf7ni3ci095lzb0zzf4g"
+   "commit": "222ddd48fcf0ee01592dec77c58e0cf3f2ea1100",
+   "sha256": "0jdddf8krvg379wlay1xs27qlxpi87nz6v2i526pk59mmg8jrnvc"
   },
   "stable": {
    "version": [
@@ -12826,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": [
@@ -12928,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"
   }
  },
  {
@@ -13192,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"
   }
  },
  {
@@ -13254,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",
@@ -13319,8 +13657,8 @@
     "company",
     "native-complete"
    ],
-   "commit": "ccb5b52940a9374fbfe92947f0101e7254ba445d",
-   "sha256": "0p3qrl59qhczwysydsak66j7ixpykr3397xdvjj3hkmmcrsachic"
+   "commit": "be7ced29c5a86e29c364f19d248634b8b54d0e52",
+   "sha256": "1lyad89byq54fva58njf7wiq2rw3767fxif1ykijirzx7q14ahxd"
   }
  },
  {
@@ -13406,22 +13744,22 @@
  },
  {
   "ename": "company-org-roam",
-  "commit": "546d4c869c4d2a0981a572b5653f5e9ab8bcec47",
-  "sha256": "0kxf4fhs8ikw06ljdkk4ky1fb83xpmknasp7kyd3lpdk63cfvijh",
+  "commit": "aeb95e34be27dd78a237c0bfe1da94802fa68eae",
+  "sha256": "0k4w9g1rl94rpcvbcdmvsy47vzs53wz4b4hy9khj4yjn023nbsj7",
   "fetcher": "github",
-  "repo": "jethrokuan/company-org-roam",
+  "repo": "org-roam/company-org-roam",
   "unstable": {
    "version": [
-    20200403,
-    614
+    20200711,
+    355
    ],
    "deps": [
     "company",
     "dash",
     "org-roam"
    ],
-   "commit": "be645587aa51e764127dcbe49e70a13e618d4537",
-   "sha256": "0gk865wwkb9c6slfvm6sfq88c61s523bf52vi9rdq3gxghvqaaby"
+   "commit": "1132663bd68022aa7ea005ff53c7c7571890769d",
+   "sha256": "1xk53lyf5sn16cs2gv874sajs5jlsxbxpksbjx9nk8glzrq7r6r3"
   },
   "stable": {
    "version": [
@@ -13452,22 +13790,22 @@
     "cl-lib",
     "company"
    ],
-   "commit": "6ca9baaafd3a3e429429986cc59097dcbfa7cda2",
-   "sha256": "0gj1w0ynd3nk84ac2l3anmcvm44p662scdy80zwp2xisfc0c301x"
+   "commit": "8db6d911f2e19bbef5fe915e42c4e12f283bfd41",
+   "sha256": "0yzad3bc48xdmkgcsffdj9zx9j853w1k2p2v586bcfl2vmvvq3zj"
   },
   "stable": {
    "version": [
     2,
-    2,
-    2
+    3,
+    0
    ],
    "deps": [
     "ac-php-core",
     "cl-lib",
     "company"
    ],
-   "commit": "4490d168778a61a4ee8623defe760164cd9745b8",
-   "sha256": "1mkxayqrvz246gxr9wjabsn015hnjq96ys71syb6r4ykjn892a6m"
+   "commit": "8db6d911f2e19bbef5fe915e42c4e12f283bfd41",
+   "sha256": "0yzad3bc48xdmkgcsffdj9zx9j853w1k2p2v586bcfl2vmvvq3zj"
   }
  },
  {
@@ -13485,8 +13823,8 @@
     "company",
     "phpactor"
    ],
-   "commit": "860d7e8784b261ee71deba354d01c3038cd777ab",
-   "sha256": "1d3fijh11g70xhx3a47l75mrp64bvkk7hh9lg83nl30qhn2vrbn3"
+   "commit": "62d2372ea55c0c5fb4e77076988472ebb5d85f24",
+   "sha256": "1sfrdap157zc7lk9vwsy91p813ip8dmazgfjwh7jwzyvcj7dsimc"
   },
   "stable": {
    "version": [
@@ -13503,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",
@@ -13550,15 +13924,15 @@
   "repo": "tumashu/company-posframe",
   "unstable": {
    "version": [
-    20200408,
-    400
+    20200812,
+    410
    ],
    "deps": [
     "company",
     "posframe"
    ],
-   "commit": "9b59cd679c4396cbfe8118a9dfa8a5acfe038ac6",
-   "sha256": "1z18libg2nplx8a8dcycdzm354gczqzg8r37agzz0jk1a7frxa7m"
+   "commit": "4bfb8bccef4b64479f4147de6bf6fbd05df2a67e",
+   "sha256": "0k19gkh8xbap4j1jjqw6lnkp1v2q76fz3ryrns7kvbzmca3y5599"
   },
   "stable": {
    "version": [
@@ -13582,27 +13956,27 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20200404,
-    1550
+    20200716,
+    1414
    ],
    "deps": [
     "company",
     "prescient"
    ],
-   "commit": "0f4a89bdec61395138d968a38d375e63ccfbed63",
-   "sha256": "0nnf4y49pl9lcs90y5z6f02g1xwk1jjrl0qs7gcv6kpn0vn8kn0h"
+   "commit": "cc289ba3b0d89f251267ca2b669d01b3afecc530",
+   "sha256": "0xwy2xh55dm4y7wlz2g6fkwf1xyqqjyp0sjb522qgasivknzwa5p"
   },
   "stable": {
    "version": [
-    4,
-    1
+    5,
+    0
    ],
    "deps": [
     "company",
     "prescient"
    ],
-   "commit": "aa3110281a0622fa7b5da115cefb71a319b5b1a0",
-   "sha256": "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3"
+   "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
+   "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
   }
  },
  {
@@ -13632,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": [
@@ -13664,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,
@@ -13778,8 +14152,8 @@
     "company",
     "rtags"
    ],
-   "commit": "a42298e80dffae9a6b2e9816506174542f3cbbb7",
-   "sha256": "1674752bbyb7890na5p846dxcvh83zn0a6z19wras1x5c59s24i3"
+   "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+   "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
   },
   "stable": {
    "version": [
@@ -13844,8 +14218,8 @@
     "company",
     "solidity-mode"
    ],
-   "commit": "022b3159832384a7dcdc2168809e698600826047",
-   "sha256": "144w84abffbrbb4wflgipndaasx82axf36xm373ybdih4131mi69"
+   "commit": "d166a86b83907e0cfd64c191e9dfce4b44a9843e",
+   "sha256": "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"
   },
   "stable": {
    "version": [
@@ -13913,8 +14287,8 @@
     "company",
     "stan-mode"
    ],
-   "commit": "599a0440086c660e6823622b35058f6d2d6d9637",
-   "sha256": "0mm0kpyihpd55hx14smlm0ayz05zw750fihhqhxqc258y8y73m5y"
+   "commit": "e891a0fcb3a7ab7d9cedbe3deda560134636897e",
+   "sha256": "158afanfaww2jkrz9szap6ys8xhbpz35kd5apkxr1j9j7s8h0iw0"
   },
   "stable": {
    "version": [
@@ -13968,14 +14342,14 @@
   "repo": "juergenhoetzel/company-suggest",
   "unstable": {
    "version": [
-    20180527,
-    1631
+    20200804,
+    1127
    ],
    "deps": [
     "company"
    ],
-   "commit": "e1fa663b48639c76d91d1f5ac3b23215aa3dabc3",
-   "sha256": "0jn7rx4m3121lx6hhabvnfq73vd0rj2364hbvza2myylw4f4qav9"
+   "commit": "7f4efb0e2577b7b34928db3dc71758ab6852f66b",
+   "sha256": "0hlvg11p4xkafqys322ablbld2v7fks924cpc3bs3wcipjjxl3cf"
   }
  },
  {
@@ -14167,14 +14541,14 @@
   "repo": "sei40kr/competitive-programming-snippets",
   "unstable": {
    "version": [
-    20200213,
-    1521
+    20200501,
+    1205
    ],
    "deps": [
     "yasnippet"
    ],
-   "commit": "b0245fcbabf035d89b80150add5d6a47859ab555",
-   "sha256": "07l495vv3by6r62i48jbfyr5pp1p6896cz25gkc7p3xqwrhi2min"
+   "commit": "22bbf4c5edcc895b67b9f22599f284655ca48858",
+   "sha256": "14vbpy1y9dq9ip0bkmap7l2y2qx9jxzvisarbwlqqxj0xl7gbwc6"
   },
   "stable": {
    "version": [
@@ -14197,11 +14571,11 @@
   "repo": "muffinmad/emacs-completions-frame",
   "unstable": {
    "version": [
-    20200419,
-    2027
+    20200507,
+    1703
    ],
-   "commit": "2e726a497605752d7d57aaf0adf53178c1e9f7e4",
-   "sha256": "0f4vaq84si57p7y0zl0l93vixv0ld1srrxvav40ipil3p9fm1yig"
+   "commit": "192a70060d2a8710ca75aa2336a10c21a4d30eed",
+   "sha256": "0bi7q2napzfqbsdi4si1kfzdjq39hxg3czwbpmybrljg6rwgr9xf"
   }
  },
  {
@@ -14212,11 +14586,11 @@
   "repo": "paldepind/composable.el",
   "unstable": {
    "version": [
-    20190904,
-    701
+    20200604,
+    1156
    ],
-   "commit": "46f82d86c285ceba3e0e46adf993a98cd8816390",
-   "sha256": "14n5sckdaxx291wmj7mnsn06sprpdxf6s44hgxdksv0pvln2m0wx"
+   "commit": "f6262e6d7380ce9d4eacd7127fe0d968325f347d",
+   "sha256": "0a2xfnd54pclh3qm1hwv867dpkhk6wck94092yyzapj7zxnfnr15"
   },
   "stable": {
    "version": [
@@ -14236,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"
   }
  },
  {
@@ -14323,8 +14694,8 @@
   "repo": "necaris/conda.el",
   "unstable": {
    "version": [
-    20200420,
-    1418
+    20200818,
+    1614
    ],
    "deps": [
     "dash",
@@ -14332,14 +14703,14 @@
     "pythonic",
     "s"
    ],
-   "commit": "f187948f7bda856befb54a08473c9aae3e595c8a",
-   "sha256": "02i3nq35cq0vlrg3xppyldi7s0zimvlf8j07xdn6pxm5ilrlmsl6"
+   "commit": "9f7eea16e9ad3eb34fe3d1cbd9d6162b8046c2f8",
+   "sha256": "1151bk1fx8y8yql1sg9qqagxcbq57rz85gwnx0z2acfpljb2i7r7"
   },
   "stable": {
    "version": [
     0,
     0,
-    9
+    11
    ],
    "deps": [
     "dash",
@@ -14347,8 +14718,8 @@
     "pythonic",
     "s"
    ],
-   "commit": "64b804c33f2667e8232689770a9f2e332c2dd0ab",
-   "sha256": "1w1p1m2d0mwi3frkah5cnphyqsix7fp1li8glhlwf923cg48cxfq"
+   "commit": "78e1aad076f6cefc6aa7cc77d08e174b13050994",
+   "sha256": "02l9m5wx0z865w3cdwbw7c22fmdjbsw4svivqg72nbl7yrq7rv5v"
   }
  },
  {
@@ -14431,8 +14802,8 @@
   "repo": "odanoburu/conllu-mode",
   "unstable": {
    "version": [
-    20190215,
-    2043
+    20200501,
+    2328
    ],
    "deps": [
     "cl-lib",
@@ -14440,8 +14811,8 @@
     "hydra",
     "s"
    ],
-   "commit": "1eb5ab3bad5cf36d30a557e64dc218b5fee735bf",
-   "sha256": "092wvxkscmpfrkpaw33r9qxrp4b2vcah3x61r7wry4f6v7jhd9hw"
+   "commit": "0db3063572b0de08874822e20570bb153747e6ed",
+   "sha256": "0l7d88p010z47qhk33k8s13h9596g3dxz3mx9winsm82px8fvcpp"
   },
   "stable": {
    "version": [
@@ -14624,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": [
@@ -14764,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"
   }
  },
  {
@@ -14803,14 +15181,14 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20200422,
-    1208
+    20200818,
+    1428
    ],
    "deps": [
     "swiper"
    ],
-   "commit": "47ec37b395cc1b304bbf91e804f138634544a9df",
-   "sha256": "05k2qjj4z8vljfppkphfhw67wvb5ij4nz4m158v89lx87y0phh74"
+   "commit": "dd43ab1217f72948dc5cd669467e33b8b568db44",
+   "sha256": "0h4273gr4h9xkdf5g08ci95jq0n9l1w3vgd1y9452cry1r07ya9l"
   },
   "stable": {
    "version": [
@@ -14909,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,
@@ -14950,26 +15328,44 @@
   "repo": "redguardtoo/counsel-etags",
   "unstable": {
    "version": [
-    20200413,
-    213
+    20200814,
+    716
    ],
    "deps": [
     "counsel"
    ],
-   "commit": "65298d82468a2221f154de3606ead9a7a7806fa0",
-   "sha256": "0zk4axx64s9bmwfnhi2yhcfd9bkxxv3l5q33ak6l6q5dmyprp8ay"
+   "commit": "5ec1e422b47163e17d0d5c1cf732068f93ffc39c",
+   "sha256": "0zwyff7lamlpqd52ifspf6bb78cpanlsy5gccp7ms7mnj82zhfxm"
   },
   "stable": {
    "version": [
     1,
     9,
-    6
+    12
    ],
    "deps": [
     "counsel"
    ],
-   "commit": "9fae8adc833919ffe33ca51d8e3db67e5be13666",
-   "sha256": "0831ylsl6d1ldrvvg5cs0yl33mh8s5hgxjp38kcy912mc7b1x0q1"
+   "commit": "9436bdbddc0deba88d97b5f31d62a2c95a52c400",
+   "sha256": "08glszh5y8y078vjrnmasxdfmxiics88hkva4nqq6spl0a0hrn9f"
+  }
+ },
+ {
+  "ename": "counsel-fd",
+  "commit": "b2e58e2a0bf3825d6ef43455fd3e60b33c88aaa2",
+  "sha256": "1ywyg2l1dx2rziw23b0i5m4xg4n8laarkq9wbbq80ma5pjb18ims",
+  "fetcher": "github",
+  "repo": "CsBigDataHub/counsel-fd",
+  "unstable": {
+   "version": [
+    20200505,
+    1344
+   ],
+   "deps": [
+    "counsel"
+   ],
+   "commit": "afba62f73d348cd7dfd10db039769788f5ae7ad4",
+   "sha256": "1v5iy8axlrapaav0vwhns32xbsnsay62dc9g50bv7n84cn1pvmmy"
   }
  },
  {
@@ -15080,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"
   }
  },
  {
@@ -15098,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"
   }
  },
  {
@@ -15135,15 +15531,15 @@
   "repo": "ericdanan/counsel-projectile",
   "unstable": {
    "version": [
-    20200214,
-    1450
+    20200522,
+    1131
    ],
    "deps": [
     "counsel",
     "projectile"
    ],
-   "commit": "b556ed8995f375e57496f3482aef4b0def565de8",
-   "sha256": "105lvn2bmz6lgxx5y6k9gnhkl4p8igxwgnfz5anxlcv32w7q21pw"
+   "commit": "77392cbbc42e98fc137b43f1db1b111ba6e2dd75",
+   "sha256": "131pww7lf88az5bsnaza8i60p7xcic271wpdr870zan8z1jh69k3"
   },
   "stable": {
    "version": [
@@ -15185,14 +15581,14 @@
   "repo": "Lautaro-Garcia/counsel-spotify",
   "unstable": {
    "version": [
-    20200326,
-    156
+    20200818,
+    2055
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "5d23a898483de19cb60773492c9846facb8ae281",
-   "sha256": "0k9m8xi9p5w2qnpz0zmdf52ip6viws06qq5rssgvb0cr888iqib2"
+   "commit": "2743ad52a9def53534fd505397fbe1ac49e53015",
+   "sha256": "1xrh06w3pszp4gygwsyjz7b5w2ffqmnh6rh891ydbhysp586hk0v"
   }
  },
  {
@@ -15228,8 +15624,8 @@
    "deps": [
     "counsel"
    ],
-   "commit": "da451df4c5f0ba32056ec600e8eb6a2c7ca4df08",
-   "sha256": "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr"
+   "commit": "719b38ba2242cc1c6d1d79cab106c8c8b1afa775",
+   "sha256": "1jjgyps59xiyqdi392cfbx19n0znw3kj3fxbc5v3l56i3qm24bd4"
   },
   "stable": {
    "version": [
@@ -15308,16 +15704,16 @@
   "repo": "AdamNiederer/cov",
   "unstable": {
    "version": [
-    20191004,
-    36
+    20200630,
+    1942
    ],
    "deps": [
     "elquery",
     "f",
     "s"
    ],
-   "commit": "9e6f4af7a07e281913f9f50f20dbbf6f26807563",
-   "sha256": "1w27hi64wcd86pw4ds2w4yldfm0wsk15f9mpcinyb68sj1p7sn9y"
+   "commit": "8b9c7d7f4e53ab3a66cc4d9c88ac07fa57c7a5fe",
+   "sha256": "17msfsl7q78cs065a28z95hgcqvhbddlg9qwgldc1v62lgpqfd7a"
   }
  },
  {
@@ -15341,14 +15737,14 @@
   "stable": {
    "version": [
     0,
-    3
+    5
    ],
    "deps": [
     "cl-lib",
     "ov"
    ],
-   "commit": "c73d984168955ca0f47f44b0464aa45282df42b6",
-   "sha256": "1kn61j91x4r4kc498y2jas5il4pc4qzhkj8392g2qiq5m3lbv4vl"
+   "commit": "6e3c6f2dcb759a76086adeeb1fdfe83e4f082482",
+   "sha256": "1l2vpyv22f77r2nd1bxf4mggmarb621dl7fnskp5hizhc5sfxi4f"
   }
  },
  {
@@ -15442,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",
@@ -15737,14 +16109,14 @@
   "repo": "bbatsov/crux",
   "unstable": {
    "version": [
-    20181108,
-    827
+    20200817,
+    1534
    ],
    "deps": [
     "seq"
    ],
-   "commit": "903db7b1a2052f4959d934cae26ec40a3f323ed4",
-   "sha256": "15wq0z9mnx60mi9xfkvgfgsfxdbiigwxr0wqabv3n2091dbzfas4"
+   "commit": "139eb6f1504b6885c86c658fd33c6d59bfac0a8c",
+   "sha256": "1889cn6pb8j55mi606nm1r6yywg64xa89s0hfbiksl4gx03yk2ip"
   },
   "stable": {
    "version": [
@@ -15794,8 +16166,8 @@
     20191121,
     1447
    ],
-   "commit": "2428b016243e78a0312cf6b3ba6939e7169a1405",
-   "sha256": "0al65ldsbmm15h4y79i8avk63qq1y7fqzzad8p327z6d42zfm1qj"
+   "commit": "f9e4db16ff9fdc6a296363aa35d19cfb4926e472",
+   "sha256": "1x0lmb48bza2w52s15288hpbipafs87lj5lv0ldd1q4r9yv0i102"
   },
   "stable": {
    "version": [
@@ -15848,11 +16220,11 @@
   "repo": "josteink/csharp-mode",
   "unstable": {
    "version": [
-    20200402,
-    919
+    20200728,
+    1113
    ],
-   "commit": "31124dba6833a4de144ca508edb90d5adfeec209",
-   "sha256": "0jrj2ayna8bzhi441hhszhch3na08iciqnd7fsqrm8xbwlrq7l2x"
+   "commit": "48851778e0f01a2b0395e054e418a1d8a1687a06",
+   "sha256": "0nikm2sn59ichbd3ikyhdn696fqj5ikzh79iniylza8gzmhxgddi"
   },
   "stable": {
    "version": [
@@ -15872,8 +16244,8 @@
   "repo": "hlolli/csound-mode",
   "unstable": {
    "version": [
-    20200402,
-    1509
+    20200518,
+    1546
    ],
    "deps": [
     "dash",
@@ -15881,8 +16253,8 @@
     "multi",
     "shut-up"
    ],
-   "commit": "81bec1a71934a56f677f442e2c22fb6336b366c4",
-   "sha256": "1cxg2c8sz76b3ml8blb4f268xl6ql959p2hi5i4llil4fggw6df2"
+   "commit": "b6e8167c927c400c291daaa46a8aea132834b07c",
+   "sha256": "12k3z7azwbg11gs8sc8j6h0rb3zy3kw19z6l9ynxys4vzm9ln7dm"
   },
   "stable": {
    "version": [
@@ -15907,11 +16279,11 @@
   "repo": "omajid/csproj-mode",
   "unstable": {
    "version": [
-    20191012,
-    49
+    20200801,
+    1732
    ],
-   "commit": "95e797af7cc30d4675247b64496c39b77b82e18e",
-   "sha256": "08cxkvq7k14lixavv7nwi5kmmxqvkgmqr4i46ihsgv7jcmxyy8gx"
+   "commit": "a7f0f4610c976a28c41b9b8299892f88b5d0336c",
+   "sha256": "0j8m7rhkf98zqkg6zydcks6qs4msw6vz51nbqya23hka2wpz7f81"
   }
  },
  {
@@ -16067,19 +16439,19 @@
   "repo": "raxod502/ctrlf",
   "unstable": {
    "version": [
-    20200417,
-    1549
+    20200802,
+    1422
    ],
-   "commit": "97b59f1974ddcfcd9eedcf4c2d286a38f5200273",
-   "sha256": "1axi9wdpr82ghsbjxz1k73v82kkp9g63ahgqy38w6560f40m32dr"
+   "commit": "5a13161bb2ef2908dd5a00b3b6aa7b8dacfecd8a",
+   "sha256": "09gd2zi3wvg9vhaxz6y1zii0n8nxhffp9qyjsgswyzaa1j7dzv2i"
   },
   "stable": {
    "version": [
     1,
-    0
+    1
    ],
-   "commit": "41eecedf44f2235ce13e021906c4ce92deddefdc",
-   "sha256": "10gnhafas54zj3z9173h1g7b519ac4i26afclmw3w1pk6qyyb03z"
+   "commit": "b91f88a24c05408757ae9c9b5ce74d46d6ce20d8",
+   "sha256": "1ffcjf0ff0748gqipkklz6jmcj4f3blgzdcax93ql9ws8bmvlsdc"
   }
  },
  {
@@ -16242,11 +16614,26 @@
   "repo": "xuchunyang/curl-to-elisp",
   "unstable": {
    "version": [
-    20200321,
-    953
+    20200427,
+    219
    ],
-   "commit": "79da15f739984e3ce3e0b137df3634582abb4546",
-   "sha256": "04qjap6wsjd8kdz47bz1a11h1bdn7bmlvfg6y0bqy5yq55f4ampa"
+   "commit": "25449962e758607762b3df76fc5501cfeedbbd38",
+   "sha256": "1yk5j8sb1li2zh1w5awwn83rhcwr1g492an4ajxkyikj3b7ljyfv"
+  }
+ },
+ {
+  "ename": "currency-convert",
+  "commit": "cc9d610a29376bb1c24f77669ee6a05bcf60023d",
+  "sha256": "1i7hs3c7lwfnp7d9ql6bl5l0s9byfnc3n68gkk57zl5imsfhbgg1",
+  "fetcher": "github",
+  "repo": "lassik/emacs-currency-convert",
+  "unstable": {
+   "version": [
+    20200611,
+    815
+   ],
+   "commit": "a8bd12654c34380b87ac6ffece32f43b723b6f0f",
+   "sha256": "1np43lwrwfwnnff98230ahaqdifiq2nzd361ypsg8cp8qja4zwwi"
   }
  },
  {
@@ -16317,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"
   }
  },
  {
@@ -16391,8 +16778,8 @@
     20190713,
     1339
    ],
-   "commit": "78e3705cca65e1456ce26221690dca74c71735c1",
-   "sha256": "1mr0q76p7yw9wv48qwp66nw95c1k3x2yly1vfvdq3phbb8xr6g4q"
+   "commit": "763531d077d02a4a45c58332b8a8b8300c090678",
+   "sha256": "0q0wjybmasrv04r09linnb3n1m7g7qylaynzmmsdrk59fwzda3c2"
   },
   "stable": {
    "version": [
@@ -16430,25 +16817,25 @@
     20190111,
     2150
    ],
-   "commit": "f09e61ab721ad51526ec7a6798fc01d8346f539d",
-   "sha256": "0l6yzbshqkkbb4fhvnakrilbyc441va6r3yhczksaz0rxlyminlw"
+   "commit": "fcfd16c7467c31f255287a73f36cf66b32bc096c",
+   "sha256": "1yscd5q1qqw8xx4ds2pifpiyzhdnx0la5n50mxqjb3hlky7p48wh"
   },
   "stable": {
    "version": [
     0,
     29,
-    16
+    21
    ],
-   "commit": "c8425604fc3e4ea846016689942fa98e886b5f4f",
-   "sha256": "1794w6d9ams691ah8sah93vzb97wpss0j36z0fcn3sfvnf8kvpby"
+   "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,
@@ -16582,11 +16969,11 @@
   "repo": "rails-to-cosmos/danneskjold-theme",
   "unstable": {
    "version": [
-    20200223,
-    1128
+    20200724,
+    1525
    ],
-   "commit": "c6776c5f40587429a4fd6e9c52008bb9242ef692",
-   "sha256": "0qh21ry2vjsvr7yz110c6ggn8bhxdq2x37mwqalpibyx81clh3nw"
+   "commit": "5b458ce976acf948aa101a05994b68baf9b01846",
+   "sha256": "16496dr846whv056xq2y994csr55zjd8906brkav2zjhj7qy0w1r"
   }
  },
  {
@@ -16609,8 +16996,8 @@
     "lcr",
     "s"
    ],
-   "commit": "7411904bfbde25cdb986e001ec682593dcb7c5e3",
-   "sha256": "0dhkp9g1cc1vlfk1fjncl3x3s7zd9a633ya85pjyxl70kky2qhnz"
+   "commit": "c516bc9e8f09e0f928de9a93e82acfb382636f5c",
+   "sha256": "16msp36vflq10w0h1hh6fy7z9gmqzhr61w0xali2jkb203v1pi6d"
   },
   "stable": {
    "version": [
@@ -16638,8 +17025,8 @@
   "repo": "emacs-lsp/dap-mode",
   "unstable": {
    "version": [
-    20200425,
-    606
+    20200814,
+    1819
    ],
    "deps": [
     "bui",
@@ -16648,15 +17035,16 @@
     "f",
     "lsp-mode",
     "lsp-treemacs",
+    "posframe",
     "s"
    ],
-   "commit": "43c672747e537620f5385ec4bd86c393b16d84dd",
-   "sha256": "0mqhzwk0l32k94msxq69wlcwxn8gc34cqbgxs7z1x9nddjirqmb1"
+   "commit": "0c11dd205152f3b8712362e4bc8919def7f312a4",
+   "sha256": "1j7vxf42icl4nsnza91lp8l3lgrhn6y11xi9ql5lji5vfgj94mk6"
   },
   "stable": {
    "version": [
     0,
-    3
+    6
    ],
    "deps": [
     "bui",
@@ -16664,12 +17052,12 @@
     "dash-functional",
     "f",
     "lsp-mode",
-    "s",
-    "tree-mode",
-    "treemacs"
+    "lsp-treemacs",
+    "posframe",
+    "s"
    ],
-   "commit": "4e25c8334f2ace87275f86b11f0ed969c2f20def",
-   "sha256": "0zajvq6p1d0lzha58yzaacbc060krhlj6m4v4lg9w1c9vdyshin3"
+   "commit": "35db94e81c592246675f300aaca4a70966b8a5fc",
+   "sha256": "1d4hdydfk86d4slibigyhwng8wx3vzyap8hp5iv0h7wr6868m4iv"
   }
  },
  {
@@ -16793,11 +17181,11 @@
   "repo": "sjrmanning/darkokai",
   "unstable": {
    "version": [
-    20190603,
-    1919
+    20200614,
+    1452
    ],
-   "commit": "a53815fbfb06604d7f51519c62cc11e507204a70",
-   "sha256": "01jd3y3kr4fplvdv32smbaxqa2dafs8vvp967jma7xm7r1frnbdw"
+   "commit": "5820aeddfc8c869ba840cc534eba776936656a66",
+   "sha256": "1bj7l5sh6nzxcw575kjcscjpjqmwlxhvi30qviqg4d6aymzkgr53"
   }
  },
  {
@@ -16904,11 +17292,11 @@
   "repo": "magnars/dash.el",
   "unstable": {
    "version": [
-    20200119,
-    2310
+    20200803,
+    1520
    ],
-   "commit": "721436b04da4e2795387cb48a98ac6de37ece0fd",
-   "sha256": "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"
+   "commit": "b92ab5a39b987e4fe69317b9d9fda452300baf20",
+   "sha256": "0qxjl10883l5xq56d474visrp0m3hapj4qqvrpqnanppx22499mh"
   },
   "stable": {
    "version": [
@@ -16952,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"
   }
  },
  {
@@ -16977,14 +17365,14 @@
   "repo": "magnars/dash.el",
   "unstable": {
    "version": [
-    20191109,
-    1327
+    20200617,
+    702
    ],
    "deps": [
     "dash"
    ],
-   "commit": "721436b04da4e2795387cb48a98ac6de37ece0fd",
-   "sha256": "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"
+   "commit": "b92ab5a39b987e4fe69317b9d9fda452300baf20",
+   "sha256": "0qxjl10883l5xq56d474visrp0m3hapj4qqvrpqnanppx22499mh"
   },
   "stable": {
    "version": [
@@ -17056,30 +17444,30 @@
   "repo": "jcs-elpa/dashboard-ls",
   "unstable": {
    "version": [
-    20200329,
-    1443
+    20200515,
+    1430
    ],
    "deps": [
     "dashboard",
     "f",
     "s"
    ],
-   "commit": "9026fd157f94b023a7b660a418b66ad638b14272",
-   "sha256": "1r78w47897qd9ki24mqxl3kgr2anzybfqv5x91y4xsvrk0siir64"
+   "commit": "8b2922abb75847787626fe241d609cff7eabf840",
+   "sha256": "19i6rd0yk90yw9cib2xg72mc667jarfwgh30xh4jfkpdl1j2481h"
   },
   "stable": {
    "version": [
     0,
     1,
-    2
+    3
    ],
    "deps": [
     "dashboard",
     "f",
     "s"
    ],
-   "commit": "9026fd157f94b023a7b660a418b66ad638b14272",
-   "sha256": "1r78w47897qd9ki24mqxl3kgr2anzybfqv5x91y4xsvrk0siir64"
+   "commit": "8b2922abb75847787626fe241d609cff7eabf840",
+   "sha256": "19i6rd0yk90yw9cib2xg72mc667jarfwgh30xh4jfkpdl1j2481h"
   }
  },
  {
@@ -17194,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"
   }
  },
  {
@@ -17316,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": [
@@ -17347,15 +17735,15 @@
   "repo": "skk-dev/ddskk",
   "unstable": {
    "version": [
-    20200403,
-    1308
+    20200816,
+    1809
    ],
    "deps": [
     "ccc",
     "cdb"
    ],
-   "commit": "11d91b4cce988e15d7c5fc4345535c9d7a92d53b",
-   "sha256": "19fgk6m951q9swr958337a3jk9b4xgvswkc73al6wsdkigygmhji"
+   "commit": "275a831be77573470309a78967734d2b6d10f218",
+   "sha256": "1a25aybavi6p7ijc4rbd8zyzgiim1m2xwm7yqfmsvrfzwgb29xal"
   }
  },
  {
@@ -17366,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": [
@@ -17397,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"
   }
  },
  {
@@ -17723,11 +18111,11 @@
   "repo": "jrblevin/deft",
   "unstable": {
    "version": [
-    20181226,
-    1534
+    20200515,
+    1513
    ],
-   "commit": "f54e8a65a7e75a029657364055420374df45656d",
-   "sha256": "1vas6jgwli0jcxmxmcwvzwv4414q8kkmhqfz5m96r7l4lpgcrhdr"
+   "commit": "fca9ea05ef4fdac825e2ad3921baa7042f6b82c8",
+   "sha256": "0h5znwc4sa92l2472204yn60z30ysvkr9hphjga7kn4j4jgvqak1"
   },
   "stable": {
    "version": [
@@ -17761,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"
   }
  },
  {
@@ -17798,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",
@@ -17959,14 +18396,14 @@
   "repo": "psibi/dhall-mode",
   "unstable": {
    "version": [
-    20191006,
-    2324
+    20200716,
+    2147
    ],
    "deps": [
     "reformatter"
    ],
-   "commit": "ef4d33debe224c6ba37e51a29b9dc8b74f20f1c2",
-   "sha256": "1232y2k4l3bsz90pgis78zxmrw7jv09dfaip21yc1w4vpxfyr384"
+   "commit": "484bcf8f78f1183ef45c3b04a362bb73690c6b9b",
+   "sha256": "1wggg8jlzg9rph4jhxp6yiri178rnasbv38838i973kjgqjxrl76"
   }
  },
  {
@@ -18004,8 +18441,8 @@
     20200404,
     1549
    ],
-   "commit": "6d9b86faecb2ab7c2e1eb90dcf7bffdf70804470",
-   "sha256": "05v449px4nq565w9kcg2bbz1j27qlgiw17z4drgriz2qf2m50v18"
+   "commit": "2850e8f27662eb1e8a34425b3032a361a5c989cc",
+   "sha256": "0p4l6gsfazq6aigvyy8mjkr9jpqs8cbmpzsfwdr7yvr5llxg77ds"
   },
   "stable": {
    "version": [
@@ -18146,14 +18583,14 @@
   "repo": "dgutov/diff-hl",
   "unstable": {
    "version": [
-    20200406,
-    37
+    20200701,
+    2141
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "a625033fb1dde83f6e4c2fc21f632b22ec34b609",
-   "sha256": "01m0aknqn0pgb46877kbz9n1nqmlamrlm58g2q894imbhybgfpan"
+   "commit": "2281a89a3ddc6616073da6f190dda08d23b18ba6",
+   "sha256": "0lyx0hnc45k2f154p81dyjxrv5r53bwb6nfyhmy5avmp9cqdjd4d"
   },
   "stable": {
    "version": [
@@ -18248,38 +18685,38 @@
   "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"
   }
  },
  {
   "ename": "digit-groups",
-  "commit": "eea9d435c7c1889b16549a0ef3f66483b2de3605",
-  "sha256": "1wy1hf15qi9v0wz2rykpf40v3g2n4mha6h207m0zn8l8rb79hwjq",
-  "fetcher": "bitbucket",
+  "commit": "e5768c2d9f77e7fc58b7b293763cab64634e00da",
+  "sha256": "032dcnbwrm0fbg6dlghrcvslpwxlhw5bp4ank1mnkp5m39iwdn60",
+  "fetcher": "github",
   "repo": "adamsmd/digit-groups",
   "unstable": {
    "version": [
-    20160817,
-    226
+    20200506,
+    37
    ],
    "deps": [
     "dash"
    ],
-   "commit": "ee1d6de372600cb9e1aa481b7ed0eb7ca37c5246",
-   "sha256": "0rkajjlw820gfx1kclkcvdq7milhiid2yzvn9hd275ydskrhhwlp"
+   "commit": "7b81930cad19b8b7913b7eedbcb498964bfdcbdb",
+   "sha256": "1ss8ym7zayhvyrl4lzxjqiy8azx2zciwcp1x6s8vw649gmyi98jc"
   }
  },
  {
@@ -18397,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"
   }
  },
  {
@@ -18421,11 +18858,11 @@
   "repo": "gonewest818/dimmer.el",
   "unstable": {
    "version": [
-    20200329,
-    35
+    20200509,
+    1718
    ],
-   "commit": "5298af739ce30bacadda892b620858b95709c84b",
-   "sha256": "0dlgk66mcbzdbpw0xn6l7fxjayvgczccsx0igda9745pwm8yvy9z"
+   "commit": "4abe51533a972910f9012029a47b533878ec682e",
+   "sha256": "023lrm9s8rdq41d19nlizq2s1d2317s4qlc83m4g6ymw54m61z2m"
   },
   "stable": {
    "version": [
@@ -18503,8 +18940,8 @@
     20181228,
     1422
    ],
-   "commit": "09dbb769fe02f546da470369a12468ab4a0cceb2",
-   "sha256": "0j2dz4vy4i22185hhlwg2kprpis97xb12qvfdhvdcnz2vwy61sxa"
+   "commit": "52ce4ac88fa39a0ebdf732435fd831ea9a8d0764",
+   "sha256": "00br8f8rw0rrzmi3nvacwn14d122jw243z1izlsm8h8q95hh8f6l"
   },
   "stable": {
    "version": [
@@ -18690,8 +19127,8 @@
   "repo": "conao3/dired-git.el",
   "unstable": {
    "version": [
-    20200130,
-    743
+    20200527,
+    732
    ],
    "deps": [
     "all-the-icons",
@@ -18699,8 +19136,8 @@
     "async-await",
     "ppp"
    ],
-   "commit": "11938721f7202aa784cc493027e3a0ec2c0d39b5",
-   "sha256": "1b5vc9hc26cs1dq7lmvm5gly4h6ahpp0dnlbxi8p4mza12yhnrwi"
+   "commit": "82c93bdb2fe392b122f79d2e425c632f1c69ede3",
+   "sha256": "134f97zk7q2fvqphfgbjdbwlgrrnq51v0zrv6aw8c8n7fln5ap93"
   }
  },
  {
@@ -18822,11 +19259,35 @@
   "repo": "thomp/dired-launch",
   "unstable": {
    "version": [
-    20200403,
-    308
+    20200430,
+    1625
+   ],
+   "commit": "95a411f6d4bb5eec4ef8fdbba9f038ddf60da81f",
+   "sha256": "0rz8d9lj2zbipz6cwrlw2a3z9y4rybbmz73h73l1i7fjg9q1kqm4"
+  }
+ },
+ {
+  "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": "6e5d26ca859f7af624351ba2af6b1be83982053b",
-   "sha256": "0xy8c90d6lv21cp5p2xzqqv5da2m3mry8bdkz54rknv2v9in8g0l"
+   "commit": "8170d7711254af18cbf1397d681fd331363a17d8",
+   "sha256": "1wgvd229cirfgn2vkjqwam4gnhs7jnp05c73vh8sckrzs3z51zc9"
   }
  },
  {
@@ -18868,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",
@@ -18942,11 +19433,11 @@
   "repo": "Vifon/dired-recent.el",
   "unstable": {
    "version": [
-    20191004,
-    1500
+    20200712,
+    716
    ],
-   "commit": "5c799f96da08a0a3200cb5f609baf6c184f558ea",
-   "sha256": "0kc97v80rh10ksfw49pp551ay0b1apwi6ba66rwbyix50d7drimw"
+   "commit": "860e70b15983ac7164648de8148a529bdcdb8833",
+   "sha256": "1558cdinig8kx2hx2hkl3zxk001ijx53n5rjdm3367wllp0icyzf"
   }
  },
  {
@@ -19026,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": [
@@ -19149,8 +19640,8 @@
     20191227,
     2028
    ],
-   "commit": "83567d00affce66a4e501563eddd0bd436ac48d0",
-   "sha256": "11xkvywcfv27gr0dpgprmmnjqfxmxdmcpa2kq0vqnxrblg6ijwbr"
+   "commit": "cd052dfef602fe79d8dfbcf9f06e6da74412218b",
+   "sha256": "1zhnr4wkb0gifhf1gfssipanifaiixvz6wqlmscxyp7hdm8xjvad"
   },
   "stable": {
    "version": [
@@ -19192,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": [
@@ -19583,17 +20074,17 @@
  },
  {
   "ename": "ditz-mode",
-  "commit": "02e2a2a25f42929626d7237511136ba6826dad33",
-  "sha256": "0shzm9l31n4ffjs1d26ykxsycd478lhlpl8xcwzbjryywg4gf5nd",
-  "fetcher": "bitbucket",
-  "repo": "zondo/ditz-mode",
+  "commit": "ac0d321e7486f297f783c07268563586aa0e3d92",
+  "sha256": "1k6rw2xmhlpcixwgfy6207h0jcqv09jfhi3dzj5n56s108z6hqr4",
+  "fetcher": "hg",
+  "url": "https://hg.sr.ht/~zondo/ditz-mode",
   "unstable": {
    "version": [
     20150729,
     940
    ],
-   "commit": "beac4c1f3b7ef82014bb77ad8752dace482897da",
-   "sha256": "1cbsy4lchl41zmyxfq828cjpl3h2dwvn8xf1qgf2lbscdb6cwbwb"
+   "commit": "74b6b93b097d595a001c019e3b762abfc60f821a",
+   "sha256": "194i43s99by2rrb112nh6rkwcd5rmmdj6kfc2bc1k6ygnvynnk67"
   }
  },
  {
@@ -19776,8 +20267,8 @@
   "repo": "pythonic-emacs/djangonaut",
   "unstable": {
    "version": [
-    20180727,
-    1544
+    20200503,
+    921
    ],
    "deps": [
     "f",
@@ -19785,8 +20276,8 @@
     "pythonic",
     "s"
    ],
-   "commit": "3e154709def09020a9b9eb29d330fb1f833a8250",
-   "sha256": "0lfh55disvc1ngysljvcccv5hl3k2xj3czy6h3chwqp7py33i1kc"
+   "commit": "75f642114e3997308a1e7e67c3025738cecee0fe",
+   "sha256": "1bka2nj2hqhpjiwdghp56y7z3jdxrpqw10s9divpa910mk33vay8"
   }
  },
  {
@@ -19872,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",
@@ -19924,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,
@@ -19949,8 +20458,8 @@
   "repo": "Silex/docker.el",
   "unstable": {
    "version": [
-    20200421,
-    822
+    20200610,
+    715
    ],
    "deps": [
     "dash",
@@ -19960,8 +20469,8 @@
     "tablist",
     "transient"
    ],
-   "commit": "08745207332d940130a2357eb5c5e00fd88bd6af",
-   "sha256": "15fgcmld7z83b89jkwi0a5i9lls43kpbqav0lhfdyq3m941whzs4"
+   "commit": "3773112eea3fc99704b5ca50c1e9a3db2cb8e4f3",
+   "sha256": "0gi86ggjyfmfas7pswj7wirn5n7zs6rvb5b95nchnf4xf0nzwia1"
   },
   "stable": {
    "version": [
@@ -20033,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": [
@@ -20120,11 +20629,11 @@
   "repo": "progfolio/doct",
   "unstable": {
    "version": [
-    20200413,
-    157
+    20200815,
+    2139
    ],
-   "commit": "c237e72e0bc53a67a83c05d9c1bb28e80fd15c1e",
-   "sha256": "0bh7yckr1cfampc1kmigbg98b6kwvnjgq8143lqlj1hmg0hw5cb6"
+   "commit": "89eb2e6f1c2630c980bdf4c0430ba54722c9ee00",
+   "sha256": "0210jwk19b59hx7gi2ddy5ja9jndvmwmip8bh16g35qiscn2jwml"
   }
  },
  {
@@ -20239,16 +20748,16 @@
   "repo": "seagle0128/doom-modeline",
   "unstable": {
    "version": [
-    20200425,
-    553
+    20200819,
+    117
    ],
    "deps": [
     "all-the-icons",
     "dash",
     "shrink-path"
    ],
-   "commit": "c177959bbfa7fa6f199b1145c6986e55f462f1c1",
-   "sha256": "0iclkfryfj72c5377rydsxh090maq6i0sxj90cm6dalyazd7rl4k"
+   "commit": "ffbaaee832f1c97ff608bc4959b408997d959b7d",
+   "sha256": "0gvdlwa4w7s1igy8hqapng2s1k9ca6f76g68m5wzrfnx1z0zf7xl"
   },
   "stable": {
    "version": [
@@ -20273,14 +20782,14 @@
   "repo": "hlissner/emacs-doom-themes",
   "unstable": {
    "version": [
-    20200331,
-    1901
+    20200816,
+    2044
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "8d5ddbbb72752fdd981407bdc2e33d917675e919",
-   "sha256": "16d1mlz5ll89p2f4avz8cbyg2wkxkjydb19aff9y6c75pw948cks"
+   "commit": "24023de3c80c9f3afc3d012762d1ef0f8dbd326e",
+   "sha256": "0dwwpdwi0722xyap3xnm7034syb2fssfm4c6k5868k0344rvdkr8"
   },
   "stable": {
    "version": [
@@ -20343,11 +20852,11 @@
   "repo": "julienXX/dotnet.el",
   "unstable": {
    "version": [
-    20190415,
-    1237
+    20200803,
+    1032
    ],
-   "commit": "932d776ed739d20d57dbd6ba49f61d1b450571fc",
-   "sha256": "1h7y9vz64bv4slz9mpd7cjyyaxgqk92jn11y5ycfyncq70wyd3j4"
+   "commit": "83ba1305d7895b03f3dffb2d3458b7ec75e6909f",
+   "sha256": "0x3kaq06wbrhqanfzj0m6yb5x1mvcjz3xg52kk7a7d4mr1h9xlip"
   }
  },
  {
@@ -20382,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"
   }
  },
  {
@@ -20416,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",
@@ -20485,11 +21009,11 @@
   "repo": "david-christiansen/dr-racket-like-unicode",
   "unstable": {
    "version": [
-    20161021,
-    1211
+    20200513,
+    1642
    ],
-   "commit": "a69e364532fffa451d1f12ade8fadb9cdbd8318c",
-   "sha256": "12pwfv0j54idvn061l3qxf0vrrl56085n517izh8x6jkgxjcx7k0"
+   "commit": "70bc1caea6b277e49e1cb29e1926a7b0c83c5ebc",
+   "sha256": "1an4hk9cjg1lhis0japdr371mnf1p4pl5mzl0l1cfkvprbxhzy65"
   },
   "stable": {
    "version": [
@@ -20509,11 +21033,11 @@
   "repo": "dracula/emacs",
   "unstable": {
    "version": [
-    20200412,
-    1112
+    20200814,
+    1717
    ],
-   "commit": "81d06717d1b75d2b51c1b7d3da93b6a01d7e253d",
-   "sha256": "1ywzxhygf8qyif4d6kg0rhbpdxxb74wnip8n4n9m9mabmff5xkzk"
+   "commit": "3b7c2905d249f47bc9c09d304c16f72f217df2e0",
+   "sha256": "031c2md9zxk8bhb8v6s6i5s3qmlfxf5ks0nl7n6kyw1w31h6pww9"
   },
   "stable": {
    "version": [
@@ -20721,8 +21245,8 @@
   "repo": "dtk01/dtk",
   "unstable": {
    "version": [
-    20200315,
-    1931
+    20200816,
+    2055
    ],
    "deps": [
     "cl-lib",
@@ -20730,8 +21254,8 @@
     "s",
     "seq"
    ],
-   "commit": "d21a5b7958da058bb53d36fe9234089409f62c5e",
-   "sha256": "0w46yr5d108z2pipvh449p15qnm6mnix21pbnq3alczilzxzf9lw"
+   "commit": "a0e789919f71ff4ab752432fe9e295f9f44c7b12",
+   "sha256": "029xsdasbrvkg8w2ykgy6iq618cdjkr4gkp4l094na35jpv96yca"
   }
  },
  {
@@ -20757,19 +21281,19 @@
   "repo": "jscheid/dtrt-indent",
   "unstable": {
    "version": [
-    20200410,
-    920
+    20200430,
+    1023
    ],
-   "commit": "9163cd990fb1f43dafed3948c6e406c13a45a6be",
-   "sha256": "1x73akd8l7bsn59wnz2cg0mxms98r1li40w3by121p9md49fd0r8"
+   "commit": "50c440c80e0d15303d8ab543bce4c56e9c2bf407",
+   "sha256": "0p5v5xwr0s59hv3s0f85byafphc85qv76g41crad9fhnxzab9rly"
   },
   "stable": {
    "version": [
     1,
-    1
+    2
    ],
-   "commit": "9163cd990fb1f43dafed3948c6e406c13a45a6be",
-   "sha256": "1x73akd8l7bsn59wnz2cg0mxms98r1li40w3by121p9md49fd0r8"
+   "commit": "50c440c80e0d15303d8ab543bce4c56e9c2bf407",
+   "sha256": "0p5v5xwr0s59hv3s0f85byafphc85qv76g41crad9fhnxzab9rly"
   }
  },
  {
@@ -20839,17 +21363,16 @@
   "repo": "jacktasia/dumb-jump",
   "unstable": {
    "version": [
-    20200423,
-    1658
+    20200815,
+    1537
    ],
    "deps": [
     "dash",
-    "f",
     "popup",
     "s"
    ],
-   "commit": "d760aa880fc1052570ab0fd7e586eeffb7636af6",
-   "sha256": "0a27fv2yi4c19g78hgflrp8vx135v74q6n8ak3g3b2gh66vkvq7p"
+   "commit": "0d74b2f2aa834b602e91d99e9cb23197a389f042",
+   "sha256": "01jwyridywbihspan8zrrfpxl4gl275z8l23swhczg0bcjq1x8g8"
   },
   "stable": {
    "version": [
@@ -20893,17 +21416,17 @@
     20191016,
     1241
    ],
-   "commit": "17895c30724c2a5ea18c0140d4022e2ef83d7208",
-   "sha256": "0sgn56g1225ar45kgp5qcdd6fc95skr36zci1lz1fszy94v162z7"
+   "commit": "26078df94ea16e2fc9221a84c5d42f2fe024074b",
+   "sha256": "1pvqrijx5bmnbvwk4pz6j1ldir5zi95ixbfrqki284qcgq28krd1"
   },
   "stable": {
    "version": [
     2,
-    5,
-    1
+    7,
+    0
    ],
-   "commit": "4d1ef91df8c732d516ddea4a953f5956e99692b2",
-   "sha256": "1ljhwsyl277lvmii4v439dafyc0y2l2jf2ds5zivpbrh168851di"
+   "commit": "85b4e16bd6c310811fcc206d3d0cbb391eb8b81c",
+   "sha256": "19fn7ywx13j1hc600pccyghz2izjy26bzwaqjynn7swlbkc96ymz"
   }
  },
  {
@@ -20944,14 +21467,14 @@
   "repo": "harsman/dyalog-mode",
   "unstable": {
    "version": [
-    20200301,
-    1149
+    20200817,
+    737
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "5dceeefaed6fbedb680bb6cc9aba14fb5f890310",
-   "sha256": "137kgixsdkw2rqj1402gc31gd6hdbna7bx5j1xxhyiig2x2b3aqx"
+   "commit": "5d703d91f90ddebdfb4cae1b45c476aec5976313",
+   "sha256": "1vf88vywb4cjfndc4jd185fdqjydd7ckbf1n2qsi9w3k8940q2pq"
   }
  },
  {
@@ -20962,11 +21485,11 @@
   "repo": "dylan-lang/dylan-mode",
   "unstable": {
    "version": [
-    20200425,
-    1347
+    20200607,
+    1911
    ],
-   "commit": "64f3aed546315c766331c69be3c7e78c7da6c333",
-   "sha256": "1r63gxy1hlij1ck570agvj39rynby6kna5kcfhrr0imi7hl98mzz"
+   "commit": "bdccb252dffa99a3a55dce446cc4a7ff4a8dc089",
+   "sha256": "09dgjwdsni936chj2b8r607bqa2vcav66mb49j5vi2lxiw60sg8m"
   }
  },
  {
@@ -21004,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",
@@ -21146,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"
   }
  },
  {
@@ -21229,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"
   }
  },
  {
@@ -21293,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"
   }
  },
  {
@@ -21353,28 +21891,28 @@
   "repo": "masasam/emacs-easy-hugo",
   "unstable": {
    "version": [
-    20200209,
-    743
+    20200811,
+    842
    ],
    "deps": [
     "popup",
     "request"
    ],
-   "commit": "30145bb0bd5b04d9c413f5ace2fd0e52b2519663",
-   "sha256": "1i3wjkxksmq4d364sc56243p847rkyzzh10xj1j5a3zm69g3v53z"
+   "commit": "cc4ba71c07dd8b3a66c996e7b31fa7e3e9870ce2",
+   "sha256": "1haias0k1gia0jfjiviy222jmbv4zf1ddsv00z9h476g8h303w7b"
   },
   "stable": {
    "version": [
     3,
     9,
-    45
+    47
    ],
    "deps": [
     "popup",
     "request"
    ],
-   "commit": "30145bb0bd5b04d9c413f5ace2fd0e52b2519663",
-   "sha256": "1i3wjkxksmq4d364sc56243p847rkyzzh10xj1j5a3zm69g3v53z"
+   "commit": "cc4ba71c07dd8b3a66c996e7b31fa7e3e9870ce2",
+   "sha256": "1haias0k1gia0jfjiviy222jmbv4zf1ddsv00z9h476g8h303w7b"
   }
  },
  {
@@ -21385,26 +21923,26 @@
   "repo": "masasam/emacs-easy-jekyll",
   "unstable": {
    "version": [
-    20200209,
-    651
+    20200811,
+    859
    ],
    "deps": [
     "request"
    ],
-   "commit": "3582ed543b3e9f5c32834f530abeba92ef0b4244",
-   "sha256": "0bqp6z1c1bf5gbj4rz717q47cj54ral2gagz8b6d7ihyn7398qq6"
+   "commit": "8ecdb70a4f957fbd0b81dc0c5726edc136513b34",
+   "sha256": "15ps0b8ik3bsxv96jb0cbbgiwx0z601m56cj83yp7r5zyphbm2n5"
   },
   "stable": {
    "version": [
     2,
     4,
-    24
+    27
    ],
    "deps": [
     "request"
    ],
-   "commit": "75f057caf54714b4e8a0934107f1ff8a05fc5349",
-   "sha256": "1753wf817z65sd23bkispsxyk67sd4r2yx9k6f1ncaywcl0z974k"
+   "commit": "8ecdb70a4f957fbd0b81dc0c5726edc136513b34",
+   "sha256": "15ps0b8ik3bsxv96jb0cbbgiwx0z601m56cj83yp7r5zyphbm2n5"
   }
  },
  {
@@ -21491,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",
@@ -21562,26 +22070,26 @@
   "repo": "joostkremers/ebib",
   "unstable": {
    "version": [
-    20200419,
-    2017
+    20200628,
+    2157
    ],
    "deps": [
     "parsebib"
    ],
-   "commit": "87920ab793e6e854903eb101b80a0746f588dab6",
-   "sha256": "0mw5spmjn8yyjbdpas06rf9cmfsfa3k2z0yfrs7xvmaalpxz55xm"
+   "commit": "805c2e30e30f9f211f4aa443263d1c3971935295",
+   "sha256": "0kgw049wph40kk0kin7zxj44ghd1s1pr8zpl1gli4zic02vzcaga"
   },
   "stable": {
    "version": [
     2,
-    22,
+    25,
     1
    ],
    "deps": [
     "parsebib"
    ],
-   "commit": "cd37aaa9a11e3b2232b8aa12cfe9a8ae9b830b10",
-   "sha256": "0spiz5r2y4pdpyc4d3f9w228giq0j9rm8f5h5akzn5rwiq9pfkwz"
+   "commit": "bd258c1f364a8c96b0026fdc3de75117ca4e324a",
+   "sha256": "1mvsa2a761va74ybxprdvmhkzhjl6axn1ngjfhrrljqgsvqgyjwk"
   }
  },
  {
@@ -21592,11 +22100,11 @@
   "repo": "flexibeast/ebuku",
   "unstable": {
    "version": [
-    20200422,
-    723
+    20200427,
+    1143
    ],
-   "commit": "ec8a5057dd2bf6275c8cdfca53c51e0b7f21b8f3",
-   "sha256": "0j6g56vqi12m5533dm6f716vsqcw59awfbiiv0jafb5kw9wj698v"
+   "commit": "9e1878810eaaaa55885d4cbcd6968566e4e3f7a8",
+   "sha256": "0czrchzz7ljynbkkgpp1ifjybp33wx4lhyzyqkxs4q84rs4m7p2p"
   }
  },
  {
@@ -21633,8 +22141,8 @@
     "s",
     "yasnippet"
    ],
-   "commit": "23f5b294f833ce58516d7b9ae08a7792d70022a1",
-   "sha256": "17q972354nkkynfjmwih4vp7s5dzdvr3nf7ni3ci095lzb0zzf4g"
+   "commit": "222ddd48fcf0ee01592dec77c58e0cf3f2ea1100",
+   "sha256": "0jdddf8krvg379wlay1xs27qlxpi87nz6v2i526pk59mmg8jrnvc"
   },
   "stable": {
    "version": [
@@ -21929,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"
   }
  },
  {
@@ -21998,8 +22506,8 @@
     20181016,
     1125
    ],
-   "commit": "43f180809fcbc7e104f96f95608a97c4c2a2c8b3",
-   "sha256": "0v9nn85pw7lll516p8bb9y6dk44rj2h88ky4zz9wgkrppjs7qdb0"
+   "commit": "5f6352f98f9795ea0423cb46e9b01dc54e523ab1",
+   "sha256": "0khf51sbjkqij36l00lby004ca9nb67xvksjnbafzp2bvwcs356j"
   },
   "stable": {
    "version": [
@@ -22036,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": [
@@ -22182,8 +22690,8 @@
   "repo": "sebastiw/edts",
   "unstable": {
    "version": [
-    20200413,
-    1929
+    20200710,
+    1424
    ],
    "deps": [
     "auto-complete",
@@ -22194,8 +22702,8 @@
     "popup",
     "s"
    ],
-   "commit": "e797eb57ede8332205b3abd7d7adeccbb319ad29",
-   "sha256": "1101yx1dg82msw0bbji9hpnzq029ghh9ca4a6588fik8sn3v786j"
+   "commit": "eda93f89c198db6aa3590d8e812ed797c9b3e305",
+   "sha256": "0vpvil86j6ahfq9f123ampba93h7pgnlvg14y9a9fpwig1hvqm60"
   },
   "stable": {
    "version": [
@@ -22292,8 +22800,8 @@
    "deps": [
     "dash"
    ],
-   "commit": "64511754e123687930afdb5b05cfcc24a30fbbcb",
-   "sha256": "1bxf5wssmpgnidf228frzw347fx8fvcqsj8rpg83fz315i16nydb"
+   "commit": "e683b16ed4265ddb46efcc8cbf9503301cc39e22",
+   "sha256": "12nsbqrk7clr642kmbaa9xqgx7j2r6as6grx5qmghnp7kjfy1d7l"
   },
   "stable": {
    "version": [
@@ -22358,17 +22866,17 @@
     20200107,
     2333
    ],
-   "commit": "8e0706fdb5ae139a1db93bdd24203a261b13c875",
-   "sha256": "09jqjdgjrg740a326vn086wj3gv548w19dk8pz9k7k3dvlncw24y"
+   "commit": "54b0f51a103e4c12515cd814e3bc6be67c3da966",
+   "sha256": "1yvf4qns69smcg6vbb6l25g8dnai5da827qpd8f6pg3qp8w1q5wc"
   },
   "stable": {
    "version": [
     4,
     0,
-    0
+    3
    ],
-   "commit": "400465de0ece5b03607895bd1c83b1cfae34079a",
-   "sha256": "196jn2cmyjvjai3nbij5kk64djz908ch4kddi4qdpkighwslkh2i"
+   "commit": "64665dba315f5b70b3ce2045a42f6059d7b858de",
+   "sha256": "0z41p0aqz4bqvx885vy7hqny8ni8q2nrk7bhwazwymnhnzq52bjp"
   }
  },
  {
@@ -22379,15 +22887,18 @@
   "repo": "joaotavora/eglot",
   "unstable": {
    "version": [
-    20200424,
-    1852
+    20200816,
+    1810
    ],
    "deps": [
+    "eldoc",
     "flymake",
-    "jsonrpc"
+    "jsonrpc",
+    "project",
+    "xref"
    ],
-   "commit": "e5cf30e26bd3107583418f2b4539c7385d37d6c8",
-   "sha256": "0fx2zx46j4mivb2h1bdz7n17bmmd6811az1wzi8g4q430kiv9hpi"
+   "commit": "5f873d288e1c5434c1640bef03555ed056cb0d35",
+   "sha256": "1rdfrw6qcbkl7bnjsfrzz6ndbr6lk0s4ldyqwv48k1nvlk9jc796"
   },
   "stable": {
    "version": [
@@ -22410,28 +22921,28 @@
   "repo": "non-Jedi/eglot-jl",
   "unstable": {
    "version": [
-    20200413,
-    1930
+    20200726,
+    741
    ],
    "deps": [
     "eglot",
     "julia-mode"
    ],
-   "commit": "a37aaa7c2a3e0282e02f97c0b8946dbd6d6cbf06",
-   "sha256": "09mzxg0j5a9dqx8sf5m91sapzdlr3vj5ds2ll7nxmgd57m185pfs"
+   "commit": "84cff9d6ef1643f3eac6c9d620cc1e380a9847d9",
+   "sha256": "1g3k3ym0hx97dk3sv1kz3vq0p1s1zw6r34ynhwm31y954miwyvm4"
   },
   "stable": {
    "version": [
-    1,
     2,
+    1,
     0
    ],
    "deps": [
     "eglot",
     "julia-mode"
    ],
-   "commit": "a37aaa7c2a3e0282e02f97c0b8946dbd6d6cbf06",
-   "sha256": "09mzxg0j5a9dqx8sf5m91sapzdlr3vj5ds2ll7nxmgd57m185pfs"
+   "commit": "84cff9d6ef1643f3eac6c9d620cc1e380a9847d9",
+   "sha256": "1g3k3ym0hx97dk3sv1kz3vq0p1s1zw6r34ynhwm31y954miwyvm4"
   }
  },
  {
@@ -22442,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"
   }
  },
  {
@@ -22465,20 +22975,20 @@
   "url": "https://forge.tedomum.net/eide/eide.git",
   "unstable": {
    "version": [
-    20200419,
-    2126
+    20200702,
+    2009
    ],
-   "commit": "827f29b9fd8e20e2e460cffc67a8f9ac9623c450",
-   "sha256": "1bqsvk70l9n929b41xz6j3sg3irwrcrlbvqxpvq0d8jqjl4nw51g"
+   "commit": "b1dfdaf06b00409250135cb1000beac60c7f659b",
+   "sha256": "17wzffhqnd65c94qcxlwmb4qyw44kq39hvkqlwpxx8g4wj0lql3j"
   },
   "stable": {
    "version": [
     2,
-    1,
-    3
+    2,
+    0
    ],
-   "commit": "7e4f101923d1aaa4ad4626ff60375ece8dd13e1d",
-   "sha256": "0j343hdarrlgznc4f59gbix20zlpr4wv5b8db6m0262ajc5q5zfb"
+   "commit": "93b7f4e6013f378f387586011b6389f7ae366bbc",
+   "sha256": "04hsk0dbnv4viypq6x5wrg1dd0q35ihb5lvk74r1h508s6ngbvyd"
   }
  },
  {
@@ -22504,19 +23014,21 @@
   "repo": "millejoh/emacs-ipython-notebook",
   "unstable": {
    "version": [
-    20200425,
-    1940
+    20200812,
+    230
    ],
    "deps": [
     "anaphora",
     "dash",
     "deferred",
+    "exec-path-from-shell",
     "polymode",
     "request",
-    "websocket"
+    "websocket",
+    "with-editor"
    ],
-   "commit": "42134adf3c95b7768e2d725bab39ddb98feafa09",
-   "sha256": "07lwxl5kbsc0xlmnvp524p3r4m9f4ldxnkwm0gmbk8aq1lg1gyw6"
+   "commit": "99a4718f50538a439a2a3f2011d1aa97246e259b",
+   "sha256": "0qi012pbyj1zdj7h0y3r26ijf80046827ln079v1q9hgkz9ipaam"
   },
   "stable": {
    "version": [
@@ -22590,34 +23102,32 @@
   "repo": "kostafey/ejc-sql",
   "unstable": {
    "version": [
-    20200424,
-    1623
+    20200809,
+    1221
    ],
    "deps": [
-    "auto-complete",
     "clomacs",
     "dash",
     "direx",
     "spinner"
    ],
-   "commit": "0914ff731630ebdaa4e07dba97644e0e57bbf18e",
-   "sha256": "0qm4sdzxmkm35kg3ldijj6vwbdn8yflivyv09m4w05vz0liks0qa"
+   "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"
   }
  },
  {
@@ -22684,8 +23194,8 @@
     20181006,
     225
    ],
-   "commit": "64abd393d5cefb1d59380dcc1344befdf618735b",
-   "sha256": "006c2kgkky81mv7an24m55521ay0d6ang5cwi16ac88j8x3n1q4i"
+   "commit": "3b5e48ba4a4dca5c91610e2eb607a8bbb725a6ab",
+   "sha256": "1kx0c3wgij66hhryb9ggf8c975406vb9a9m6z4yrsrrisyc2ljgk"
   },
   "stable": {
    "version": [
@@ -22711,8 +23221,8 @@
     "anaphora",
     "cl-lib"
    ],
-   "commit": "65c48ec47fea84d16ff2d1ef7015b4d220fcf5ff",
-   "sha256": "0awx7ry9xnzw7n9aqiy7i2lfj453jkj15wfy38nlgw9qxv9bri9j"
+   "commit": "747acd434aa6f50a599efe5f6e96dea2dfed79d6",
+   "sha256": "0nyllimsrghwd1vkmal1c58g1nx4djyvjfmylhqidx4h79gkryxm"
   },
   "stable": {
    "version": [
@@ -22746,8 +23256,8 @@
     "dash",
     "el-init"
    ],
-   "commit": "8a2ab457586962bde0da2a1c56a37ce6363ae690",
-   "sha256": "08ni8hmszryf75h1c13q3yrrxgh41as6r8r4vq4gih0jbiz0wx8w"
+   "commit": "7c0169d356d6c007317e253e5776e1e48a60d6ad",
+   "sha256": "0w2mxppkx6306kyxaw00fzv8q745iklcm41iswmflr2585h2adnq"
   },
   "stable": {
    "version": [
@@ -22798,37 +23308,20 @@
   "repo": "raxod502/el-patch",
   "unstable": {
    "version": [
-    20200404,
-    1548
+    20200716,
+    1428
    ],
-   "commit": "f5c785a6f951a4aa6d6ab5cda84460dad2a072cc",
-   "sha256": "12fw4zk3w8kh8g94k4hcqjixxb1vvnv4qivc672lwdj4d8a218jw"
+   "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"
   }
  },
  {
@@ -23026,11 +23519,11 @@
   "repo": "Mstrodl/elcord",
   "unstable": {
    "version": [
-    20200322,
-    2027
+    20200611,
+    2314
    ],
-   "commit": "94b0afb9bac32fa72354517347646166d6bec986",
-   "sha256": "11gj67d83hx9wfjf4j277jy8jxf97i6bd9r8r057v4i8301qh91p"
+   "commit": "01b26d1af2f33a7c7c5a1c24d8bfb6d40115a7b0",
+   "sha256": "1lj87zfcvmzm34rlq5s4y4x2nwckwg5qxlhlgl4qry3bf16bmkcf"
   }
  },
  {
@@ -23074,20 +23567,20 @@
   "repo": "doublep/eldev",
   "unstable": {
    "version": [
-    20200315,
-    1527
+    20200815,
+    2332
    ],
-   "commit": "98fc3206c36bf6384bf333f93b4ae3d9382f5c57",
-   "sha256": "0a6a20n4nwfnzh0fbndpf3f77mchax4sdc2bwhn66yncm9kikjyh"
+   "commit": "ae353301c15b15930b0a83807275ed58a3be82e6",
+   "sha256": "0l1ac2ll2127wn6nlrpvxzk38xb74rb8bmp6c5sjh79hnjr04zh5"
   },
   "stable": {
    "version": [
     0,
-    2,
+    6,
     1
    ],
-   "commit": "77e1e90efa6622c6784ef10f26e6f845aca5ee3e",
-   "sha256": "0ip9dnyh53m2yd92bp0jddm3db4fbcpm9zniqij9anvzhjdfqx1b"
+   "commit": "8440e797f0dcaf7bf6da2a7573a7b07c4ea9da82",
+   "sha256": "16g68lgd5lp3rdskym4xnkvsm6953xgx48yah8zs5fpk4qny212r"
   }
  },
  {
@@ -23160,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"
   }
  },
  {
@@ -23185,8 +23678,8 @@
    "deps": [
     "stan-mode"
    ],
-   "commit": "599a0440086c660e6823622b35058f6d2d6d9637",
-   "sha256": "0mm0kpyihpd55hx14smlm0ayz05zw750fihhqhxqc258y8y73m5y"
+   "commit": "e891a0fcb3a7ab7d9cedbe3deda560134636897e",
+   "sha256": "158afanfaww2jkrz9szap6ys8xhbpz35kd5apkxr1j9j7s8h0iw0"
   },
   "stable": {
    "version": [
@@ -23255,11 +23748,11 @@
   "repo": "xwl/electric-spacing",
   "unstable": {
    "version": [
-    20200223,
-    838
+    20200607,
+    1405
    ],
-   "commit": "83568a7f2f0e2f0983e348b6e4adc0fc75b98adf",
-   "sha256": "03710cr8jvr22c9j3c266460aln26j7y9vqj6qm3mmzhsr3v7q2c"
+   "commit": "f039011edb922cdc56c1d2bd0e49bb4575c35ab3",
+   "sha256": "1qfjk928y8bnx2ksciv0f0ackahj78x3qsr84m9qcvsvlg9cql5p"
   }
  },
  {
@@ -23309,11 +23802,11 @@
   "repo": "skeeto/elfeed",
   "unstable": {
    "version": [
-    20200209,
-    1942
+    20200716,
+    1921
    ],
-   "commit": "d0405e63863e54a01200740a6717ac875eceabc1",
-   "sha256": "1pbcs4i9d1v8pmgrsxnacnbdrcswifpbnrb613z18caj1a17nl02"
+   "commit": "8fb09ad75f2ff7d6f7d8b8d1ac65b9be873cc31d",
+   "sha256": "0rs32xvpwky37y18wr6maqbkncijia7yvmbrsngbhgdpzdvijp7v"
   },
   "stable": {
    "version": [
@@ -23378,28 +23871,28 @@
   "repo": "fasheng/elfeed-protocol",
   "unstable": {
    "version": [
-    20200426,
-    1143
+    20200526,
+    341
    ],
    "deps": [
     "cl-lib",
     "elfeed"
    ],
-   "commit": "294b0d70f2cb85d5563019343f14c64938ae4b07",
-   "sha256": "0bm6vn61awwa4yd97idjqbbwp3ypz11n5w9mswg5yivhg4kc82sm"
+   "commit": "c5a928d4217060a49444d80d2fd54282d32a12a5",
+   "sha256": "0zky2iqkpckaq8c1fyhw9drdnmnyapix8jw46p6jvspljb9vwzkb"
   },
   "stable": {
    "version": [
     0,
     7,
-    5
+    8
    ],
    "deps": [
     "cl-lib",
     "elfeed"
    ],
-   "commit": "bffe74f0f7d7126691f6a9dd9eadf8714545dfe0",
-   "sha256": "16cmm59lwkgq0yj0pg9sn46afvqqjjx06xv5sc96vgwvn1n0lfi7"
+   "commit": "c5a928d4217060a49444d80d2fd54282d32a12a5",
+   "sha256": "0zky2iqkpckaq8c1fyhw9drdnmnyapix8jw46p6jvspljb9vwzkb"
   }
  },
  {
@@ -23410,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": [
@@ -23449,8 +23942,8 @@
     "elfeed",
     "simple-httpd"
    ],
-   "commit": "d0405e63863e54a01200740a6717ac875eceabc1",
-   "sha256": "1pbcs4i9d1v8pmgrsxnacnbdrcswifpbnrb613z18caj1a17nl02"
+   "commit": "8fb09ad75f2ff7d6f7d8b8d1ac65b9be873cc31d",
+   "sha256": "0rs32xvpwky37y18wr6maqbkncijia7yvmbrsngbhgdpzdvijp7v"
   },
   "stable": {
    "version": [
@@ -23519,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": [
@@ -23552,11 +24045,11 @@
   "repo": "xuchunyang/elisp-demos",
   "unstable": {
    "version": [
-    20200329,
-    2310
+    20200606,
+    949
    ],
-   "commit": "57dd4ae3e47ecca6cb9eee87328f159b3eb53702",
-   "sha256": "15cjv97240nnmjjbdx9iqz4qwxvbxxsyjllcjwbmkkbpv6x91b89"
+   "commit": "8c9748134f7c017ae1536dbd0b76434afb52e64d",
+   "sha256": "15gyhqnlppsswmmcknc3yfm6p7s2y06r2py656vh5vwhah7pcqxj"
   },
   "stable": {
    "version": [
@@ -23591,14 +24084,14 @@
   "repo": "mtekman/elisp-depmap.el",
   "unstable": {
    "version": [
-    20200413,
-    1215
+    20200714,
+    1630
    ],
    "deps": [
     "dash"
    ],
-   "commit": "e47616c968dd82e30cb10961452e2b46c7900163",
-   "sha256": "1jpqdi15lvyd48jsbndlallnjc8bkmv0mxwyf51m483vz9v8nn2i"
+   "commit": "98676e6ffcc4efb70cc991e659c79cb599b01bc7",
+   "sha256": "0ybqbyv1jnjk25z6ys90d5lddd4qxqspn2xppkzvby21x634s2ry"
   }
  },
  {
@@ -23671,16 +24164,15 @@
   "repo": "Wilfred/elisp-refs",
   "unstable": {
    "version": [
-    20190323,
-    1331
+    20200815,
+    2357
    ],
    "deps": [
     "dash",
-    "loop",
     "s"
    ],
-   "commit": "0a254e6a4dc7fa12857f8334fe6eefa72e49d1c9",
-   "sha256": "05lw10c11svqp5bi5pfga9iian7c3ikrsxzcr1qwcnhs3c5qjq9c"
+   "commit": "b3634a4567c655a1cda51b217629849cba0ac6a7",
+   "sha256": "1zy629gavyrwx5gmpz7l1a86hbrxjrfqik398v3ja8vg8bj9d6nq"
   },
   "stable": {
    "version": [
@@ -23748,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": [
@@ -23827,8 +24319,8 @@
   "repo": "jcollard/elm-mode",
   "unstable": {
    "version": [
-    20200406,
-    214
+    20200602,
+    500
    ],
    "deps": [
     "dash",
@@ -23836,8 +24328,8 @@
     "reformatter",
     "s"
    ],
-   "commit": "7782be0814b52f7c35a09b21a4839c1502a4707f",
-   "sha256": "0g3mxp80hfjwf3adaslwykk01w5fh5y6nwj4687wbm5dldvhr42i"
+   "commit": "363da4b47c9de1ff091a8caf95fccc34188d59a3",
+   "sha256": "0nmhf4vql0nkc4igd9mp9v77cb0rsxfawb160f9mcgkdd6ahn3xj"
   },
   "stable": {
    "version": [
@@ -23928,14 +24420,14 @@
   "repo": "leoc/elmine",
   "unstable": {
    "version": [
-    20190212,
-    1740
+    20200520,
+    1237
    ],
    "deps": [
     "s"
    ],
-   "commit": "2f020e41940b182deeca39786a3092a2d68b5eb7",
-   "sha256": "0x2av6zjd4kkyzxm2hcwjx9x8j2fzqg85pka57hqpk2fhfhsmy3s"
+   "commit": "c78cc8705c2dffbf649b858f02b5028225943482",
+   "sha256": "05z9v3lcc0mm40k0y08v8mhnlxb4krlgj6zghfavwwz6nhxn61g3"
   },
   "stable": {
    "version": [
@@ -24102,11 +24594,11 @@
   "repo": "redguardtoo/elpa-mirror",
   "unstable": {
    "version": [
-    20190622,
-    730
+    20200502,
+    115
    ],
-   "commit": "468adfff8dedb024b90af0e66434dc50de259714",
-   "sha256": "0cr8pqbbjaxx48zal8cmmjddhapzjg4mvaspn8d3pygz4q7z5lba"
+   "commit": "9b25a8a2619e1f723528e8a093d31181223d5c85",
+   "sha256": "0frafk7a86l2g02c1c6vrinp609v480klhkh3y823b5k4bx3m3b7"
   },
   "stable": {
    "version": [
@@ -24126,20 +24618,20 @@
   "url": "git://thelambdalab.xyz/elpher.git",
   "unstable": {
    "version": [
-    20191212,
-    1858
+    20200628,
+    2255
    ],
-   "commit": "3f56dde4342dcfecc2b8b4d1c6e07436d2ab9991",
-   "sha256": "0872dis1zin58fljbyzvvyd5z6c27cw8ikxgd8s57addbi4s6ffh"
+   "commit": "b4450244a5e23605f80b2179ce7d4dbaff56d927",
+   "sha256": "0fjqdp4xh9q50rdxg20il1y6wwn5l1af7139f4613z4j5ha3zxxg"
   },
   "stable": {
    "version": [
     2,
-    5,
-    2
+    10,
+    0
    ],
-   "commit": "12629c283e0e3e62561d1456a2f8842b3524df57",
-   "sha256": "023ih6bgqf98jgzqy03nplwxhabaj9x9dqk3c8bmd50ndgrspc7q"
+   "commit": "b4450244a5e23605f80b2179ce7d4dbaff56d927",
+   "sha256": "0fjqdp4xh9q50rdxg20il1y6wwn5l1af7139f4613z4j5ha3zxxg"
   }
  },
  {
@@ -24165,8 +24657,8 @@
   "repo": "jorgenschaefer/elpy",
   "unstable": {
    "version": [
-    20200329,
-    1830
+    20200805,
+    1736
    ],
    "deps": [
     "company",
@@ -24175,13 +24667,13 @@
     "s",
     "yasnippet"
    ],
-   "commit": "816061cf16d53448d95612380855e7ccaf59a417",
-   "sha256": "0fjz3y0yh2hfmx0470jcyni1glc6m3bm5gh20iakvlwxf4wa8801"
+   "commit": "c766feb5c34dd17b7afba480ae9e90a08d75012c",
+   "sha256": "13z21jfvinjxyyi37xvx12gbr28fbr0g43x0nsip270dz797ls0v"
   },
   "stable": {
    "version": [
     1,
-    33,
+    34,
     0
    ],
    "deps": [
@@ -24191,8 +24683,8 @@
     "s",
     "yasnippet"
    ],
-   "commit": "b69ae7652e5efdda2e3dc650cd425b987ddd65ad",
-   "sha256": "1g9x67dvg5al6i9hnjcyi0zjsz71iv2jbinpzj7gcx77d0dn3cpk"
+   "commit": "980705c0b23aead72d7d6711008b1fb1706a45c2",
+   "sha256": "1x1z298axbh4xalssnq9nkf2z1sdgmx839vb01xz18kr9lfavx1x"
   }
  },
  {
@@ -24221,15 +24713,15 @@
   "repo": "AdamNiederer/elquery",
   "unstable": {
    "version": [
-    20180917,
-    2217
+    20200628,
+    1756
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "eac429d8550fbf1582c57d5e16fed9f320d6eb30",
-   "sha256": "1jkbrv5r5vzqjhadb4dcgks47gaj7aavzdkzc5gjn5zv5fmm1in2"
+   "commit": "cba7629ad886c4e51d66f8b509aad48bdfe100cc",
+   "sha256": "119g9ca40rg0aam7i2n4jhjzjzm8r7bg6q0yjaw5x1j7ywks5af6"
   }
  },
  {
@@ -24383,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"
   }
  },
  {
@@ -24478,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"
   }
  },
  {
@@ -24541,11 +25033,11 @@
   "repo": "skeeto/emacsql",
   "unstable": {
    "version": [
-    20190625,
-    1859
+    20200714,
+    28
    ],
-   "commit": "a118b6c95af1306f0288a383d274b5dd93efbbda",
-   "sha256": "1qz74rk2pskpc1k6kdpqv823i5zc39i885rww05n8lrqw456cpn0"
+   "commit": "6d8cd9366284b5a27268ff4b783e2c34573d5b60",
+   "sha256": "04l1rzsmy9131h42y1v6vsfbby7v1gldwd5g600mqfjbbwcnbgsk"
   },
   "stable": {
    "version": [
@@ -24571,8 +25063,8 @@
    "deps": [
     "emacsql"
    ],
-   "commit": "a118b6c95af1306f0288a383d274b5dd93efbbda",
-   "sha256": "1qz74rk2pskpc1k6kdpqv823i5zc39i885rww05n8lrqw456cpn0"
+   "commit": "6d8cd9366284b5a27268ff4b783e2c34573d5b60",
+   "sha256": "04l1rzsmy9131h42y1v6vsfbby7v1gldwd5g600mqfjbbwcnbgsk"
   },
   "stable": {
    "version": [
@@ -24601,8 +25093,8 @@
    "deps": [
     "emacsql"
    ],
-   "commit": "a118b6c95af1306f0288a383d274b5dd93efbbda",
-   "sha256": "1qz74rk2pskpc1k6kdpqv823i5zc39i885rww05n8lrqw456cpn0"
+   "commit": "6d8cd9366284b5a27268ff4b783e2c34573d5b60",
+   "sha256": "04l1rzsmy9131h42y1v6vsfbby7v1gldwd5g600mqfjbbwcnbgsk"
   },
   "stable": {
    "version": [
@@ -24631,8 +25123,8 @@
    "deps": [
     "emacsql"
    ],
-   "commit": "a118b6c95af1306f0288a383d274b5dd93efbbda",
-   "sha256": "1qz74rk2pskpc1k6kdpqv823i5zc39i885rww05n8lrqw456cpn0"
+   "commit": "6d8cd9366284b5a27268ff4b783e2c34573d5b60",
+   "sha256": "04l1rzsmy9131h42y1v6vsfbby7v1gldwd5g600mqfjbbwcnbgsk"
   },
   "stable": {
    "version": [
@@ -24655,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"
   }
  },
  {
@@ -24739,20 +25243,26 @@
   "repo": "GuiltyDolphin/emaps",
   "unstable": {
    "version": [
-    20180712,
-    1916
+    20200508,
+    1759
    ],
-   "commit": "823b8f72e6459c9f1a5dd62451ee4005ef71d955",
-   "sha256": "1g9637j8f65q3l6k4aw5p847m891irh74kg3pa2p9w0ppsa6n3jm"
+   "deps": [
+    "dash"
+   ],
+   "commit": "7c561f3ded2015ed3774e5784059d6601082743e",
+   "sha256": "0x4i2c493zb7cf0cnixsxiwl409faljd5sk05flkq88wjm176dcm"
   },
   "stable": {
    "version": [
     0,
-    1,
+    2,
     0
    ],
-   "commit": "823b8f72e6459c9f1a5dd62451ee4005ef71d955",
-   "sha256": "1g9637j8f65q3l6k4aw5p847m891irh74kg3pa2p9w0ppsa6n3jm"
+   "deps": [
+    "dash"
+   ],
+   "commit": "7c561f3ded2015ed3774e5784059d6601082743e",
+   "sha256": "0x4i2c493zb7cf0cnixsxiwl409faljd5sk05flkq88wjm176dcm"
   }
  },
  {
@@ -24901,31 +25411,31 @@
  },
  {
   "ename": "emms",
-  "commit": "caaa21f235c4864f6008fb454d0a970a2fd22a86",
-  "sha256": "1xpry8h96gvjnc0v8x0vk5dnmlq1r7m3ljpampdwv9pfwl95fh94",
+  "commit": "4caa7403144670c07e326ed3a7d982c427d4a254",
+  "sha256": "0ml66fgzxl4wsk5g7d78mqhr9gqmbld6qh31nfc6z19c8107jrd5",
   "fetcher": "git",
   "url": "https://git.savannah.gnu.org/git/emms.git",
   "unstable": {
    "version": [
-    20200212,
-    1825
+    20200716,
+    1815
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "2767c660562d35f02f9b272252a697804d70dd14",
-   "sha256": "1jg5m9684kdxvgfqvf56x5c7fqnlqf0mmqqlrrvl5di3n79cfmsb"
+   "commit": "36d760e2bd7e5376aff3f03456fa6445833242ad",
+   "sha256": "0xgshxdd5zmy1c7sxvrmw0wkqwhwaccqf93zwz98gb9gsfabyxd8"
   },
   "stable": {
    "version": [
     5,
-    3
+    4
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "a8075b52fa75c5b53892214e6ca89fe0b42a04bf",
-   "sha256": "0jp96s0pglmrcgcyn9cp4rn2qlk9rf0dq6avrr5wiigjjkl33fip"
+   "commit": "f4924c2e77bdc5806495a74832fba60b2c30aca1",
+   "sha256": "01d8akv046igc13d5ki9wz36v51dlijab892ki5s5c4ysgj42wkr"
   }
  },
  {
@@ -25236,15 +25746,15 @@
   "repo": "iqbalansari/emacs-emojify",
   "unstable": {
    "version": [
-    20200309,
-    553
+    20200812,
+    628
    ],
    "deps": [
     "ht",
     "seq"
    ],
-   "commit": "e05217ee668db3ffb537528408ce8004fadb75c0",
-   "sha256": "1blhvzrvjabh81si1h9iznldfp6mkchd31ig68byqfjvi6d34nxq"
+   "commit": "d886069974d05c8c15654204f9afeaee962f3e7d",
+   "sha256": "00s6vzziiym4bqh91c1k55qjihpmqs7w6kcxnwms8mx92w40hlw2"
   },
   "stable": {
    "version": [
@@ -25375,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": [
@@ -25405,11 +25915,11 @@
   "repo": "zenspider/enhanced-ruby-mode",
   "unstable": {
    "version": [
-    20191111,
-    2243
+    20200729,
+    634
    ],
-   "commit": "732331b99a0884dd7fc0149658d4090886857656",
-   "sha256": "12wip0l6xyqgvxvjvid1rh61yizk1r9y7xl1jz2sjds7kv6aw0kf"
+   "commit": "f0bffbe4b32bb59680f897731169442cce5a1eec",
+   "sha256": "0zjx6mz8kql9d09rzqircbqd9rcpfsn1k7nz9vwijp59m6mnjw1h"
   },
   "stable": {
    "version": [
@@ -25487,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",
@@ -25580,15 +26119,14 @@
   "repo": "emacscollective/epkg",
   "unstable": {
    "version": [
-    20200309,
-    546
+    20200817,
+    1145
    ],
    "deps": [
-    "closql",
-    "dash"
+    "closql"
    ],
-   "commit": "37f06fd2daca6a7afa163ceb0ccccd450af85e68",
-   "sha256": "18prjspaz4wlfrk2zzzzpxs4z8dkxxx68sbq2b4bdgg34fgnj02z"
+   "commit": "ac6e85e11f0e071911279f3f0a4ea7bff35b68cf",
+   "sha256": "1g5g8rs4zpwlxmkmnml34hy0arbhq8fsmyxqjq0h1l1xxbwscdl4"
   },
   "stable": {
    "version": [
@@ -25722,15 +26260,45 @@
   "repo": "emacsomancer/equake",
   "unstable": {
    "version": [
-    20200214,
-    1651
+    20200805,
+    2110
    ],
    "deps": [
     "dash",
     "tco"
    ],
-   "commit": "2039faac5f649f586d86d5ace10204d5a510fe0e",
-   "sha256": "1zg1bxwpqgzak5nvcwlcv9k8lkpa071kpnh11yv7s74ykvxa49l0"
+   "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"
   }
  },
  {
@@ -25756,25 +26324,25 @@
   "repo": "atomontage/erc-crypt",
   "unstable": {
    "version": [
-    20200424,
-    2024
+    20200516,
+    2054
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "ba36632666ea0a631d23b6fc54c16ada55673b02",
-   "sha256": "1q7bia9l672dfa0q4mrhv2cnxk2c8vhpl7n649zw7zwfpkqnzh70"
+   "commit": "be87248435509f83c56a7f08ac9bcbbd3b20d780",
+   "sha256": "1d8wfa4rgwv41kmw1kpp90r8371n1l7lfx3k79k2psppvrf72xbf"
   },
   "stable": {
    "version": [
-    1,
-    9
+    2,
+    1
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "2a597b39a929f6dff2b7da6439fcee6d2b25d3e6",
-   "sha256": "0jgkhwfgvy8lw6mws1m44vzh16514xxv34fivghc8kzn5w5ghwv7"
+   "commit": "6d158b39ea2833b753858153eb110da9b8a40fc4",
+   "sha256": "0pj330x5j9rnwcv2la2yc6w3vsg53c9ij0f3q9zi2psxbr268xi0"
   }
  },
  {
@@ -25869,14 +26437,14 @@
   "repo": "drewbarbs/erc-status-sidebar",
   "unstable": {
    "version": [
-    20171223,
-    2124
+    20200811,
+    136
    ],
    "deps": [
     "seq"
    ],
-   "commit": "ea4189a1dbfe60117359c36e681ad7c389e2968c",
-   "sha256": "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"
+   "commit": "b589b74245591257c9e666bd5cd25812e04b7a34",
+   "sha256": "08fvr5ba6gb3y52sypbdj236nxr5rl95zgz1b120scz6xal7mysy"
   }
  },
  {
@@ -26093,14 +26661,14 @@
   "repo": "mhayashi1120/Emacs-erefactor",
   "unstable": {
    "version": [
-    20160121,
-    959
+    20200513,
+    1252
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "bf68085e5635eb94fd85709f8e1355c1f5534745",
-   "sha256": "1v8x6qmhywfxs7crzv7hfl5n4zq5y3ar40l873946l4wyk0wclng"
+   "commit": "bfe27a1b8c7cac0fe054e76113e941efa3775fe8",
+   "sha256": "1071gqli1qd498syhysyj2wzyw1nya5070m82xd9qalqdh11b8is"
   },
   "stable": {
    "version": [
@@ -26123,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": [
@@ -26175,21 +26743,20 @@
   "repo": "erlang/otp",
   "unstable": {
    "version": [
-    20200313,
-    1030
+    20200519,
+    530
    ],
-   "commit": "7ec0ad6ed076b76de8cd52e28445f324a5f2853a",
-   "sha256": "0r0sn8vfmgamf3mnjjkkv9y0r8a6xkn5f5axw1av0liiv95kgrm8"
+   "commit": "d9bc7858e985143a433953ba286422511b466a0c",
+   "sha256": "0ik1hhmw4xsmny9j5gbz7lr73jsvdd79xb3ygcsi8jkwz7lxi3v1"
   },
   "stable": {
    "version": [
     23,
     0,
-    -1,
     3
    ],
-   "commit": "9f17d424ada5353db1e5b31296484d95679f8ca8",
-   "sha256": "0012fbf9a1whq2bzii73m645bvf4vww403fcd54j9k27916vcfx5"
+   "commit": "44b6531bc575bac4eccab7eea2b27167f0d324aa",
+   "sha256": "133aw1ffkxdf38na3smmvn5qwwlalh4r4a51793h1wkhdzkyl6mv"
   }
  },
  {
@@ -26331,8 +26898,8 @@
   "repo": "rejeep/ert-runner.el",
   "unstable": {
    "version": [
-    20200321,
-    2158
+    20200704,
+    1048
    ],
    "deps": [
     "ansi",
@@ -26342,8 +26909,8 @@
     "s",
     "shut-up"
    ],
-   "commit": "1829f05c46b0baaae160d900f89c8881f4fcdbcc",
-   "sha256": "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"
+   "commit": "59a0f07f4f6b7c4757768309e8a47cec983e862a",
+   "sha256": "198bc526s6sw8qqsbmw4wgz5m97n6kf9002f2bgg9phms7a8if4s"
   },
   "stable": {
    "version": [
@@ -26410,8 +26977,8 @@
     "s",
     "spark"
    ],
-   "commit": "9e5bcb290b38d5bd143e0ee480ed49147cfd3504",
-   "sha256": "13f7s8hk5d3psxp4qzzsqnwawsjj59cmjhmg1zi2c90qhvna78vn"
+   "commit": "3aacf72daf6a2b4104914dd40e5f33e78fb084ac",
+   "sha256": "1ki839cfsn2xr2d8a2j89llbl452d45x3y5jiaiwkcmfhf7xadcb"
   },
   "stable": {
    "version": [
@@ -26734,14 +27301,14 @@
   "repo": "4DA/eshell-toggle",
   "unstable": {
    "version": [
-    20200107,
-    2230
+    20200528,
+    1124
    ],
    "deps": [
     "dash"
    ],
-   "commit": "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033",
-   "sha256": "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"
+   "commit": "aeb7c121e4518c0edd1d2972851502303a299984",
+   "sha256": "12w38h438bg2vm8najsqizcdfyr1px5h1gba68x4mzyv2bcll2qx"
   }
  },
  {
@@ -26979,14 +27546,11 @@
   "repo": "emacs-ess/ESS",
   "unstable": {
    "version": [
-    20200419,
-    1920
-   ],
-   "deps": [
-    "julia-mode"
+    20200819,
+    1030
    ],
-   "commit": "007fa4b5192154db3d90e6e861f96193c1b145f5",
-   "sha256": "12kj006yxl84fav2ryxx6ajk284rskgy6imi9wjpfl8qqfcykcm0"
+   "commit": "1baf8bf1403fe5956a25475b03be0d8f02b3f3ca",
+   "sha256": "0asyd67krsq3xx7kk770x1f70j33bga8w0i7l4089a1jqzmpn3kx"
   },
   "stable": {
    "version": [
@@ -27121,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": [
@@ -27187,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",
@@ -27311,22 +27900,22 @@
     "dash",
     "paredit"
    ],
-   "commit": "0fe2d3fa0fd1739ec096f149dc067b586e05c75c",
-   "sha256": "0gswgn99pqikw44mp4v6b4bxvh6bj132gq5x3swvkmi3f56l0bry"
+   "commit": "c8e5f31a2476c922857d921e367b6a2320ce5a6f",
+   "sha256": "1mrssbl0wyc6iij8zk1y3h9bd3rv53nnrxsij7fn67l1m4z0clyn"
   },
   "stable": {
    "version": [
     0,
     9,
-    6
+    7
    ],
    "deps": [
     "ace-window",
     "dash",
     "paredit"
    ],
-   "commit": "7e2b42570b449b2a3c2922f3036a027d1e393a60",
-   "sha256": "0x97flv356kd7j6wbhacz0lmsrdd9as87b0n6nliq5n0y30my8dy"
+   "commit": "c8e5f31a2476c922857d921e367b6a2320ce5a6f",
+   "sha256": "1mrssbl0wyc6iij8zk1y3h9bd3rv53nnrxsij7fn67l1m4z0clyn"
   }
  },
  {
@@ -27435,16 +28024,16 @@
   "repo": "emacs-evil/evil",
   "unstable": {
    "version": [
-    20200417,
-    1238
+    20200816,
+    737
    ],
    "deps": [
     "cl-lib",
     "goto-chg",
     "undo-tree"
    ],
-   "commit": "d243eae8649272799ec3864fde14c1164f036940",
-   "sha256": "0fpjcxyzql7fl904asxbff3gqdc1byhwn32i38r4zd4bqrqsqfw4"
+   "commit": "1e7aa5bfbd86feff0ed5982e487070352d326b90",
+   "sha256": "1vb7np6yzv8iqblxg0yi1ac080k2bn7n8wz6wj8vkm080zmfwfb0"
   },
   "stable": {
    "version": [
@@ -27469,15 +28058,15 @@
   "repo": "emacsorphanage/evil-anzu",
   "unstable": {
    "version": [
-    20170124,
-    718
+    20200514,
+    1902
    ],
    "deps": [
     "anzu",
     "evil"
    ],
-   "commit": "9bca6ca14d865e7e005bc02a28a09b4ae74facc9",
-   "sha256": "1y0jiglcazxnvggs5ljys2iizljsihlgr46svbbwgf45ibdrw392"
+   "commit": "d3f6ed4773b48767bd5f4708c7f083336a8a8a86",
+   "sha256": "0ribvnw2slaad4xlcyxhg3linvd810qqn52qpyrjsq0dnqrpmwyl"
   },
   "stable": {
    "version": [
@@ -27588,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": [
@@ -27638,16 +28227,15 @@
   "repo": "emacs-evil/evil-collection",
   "unstable": {
    "version": [
-    20200426,
-    848
+    20200808,
+    850
    ],
    "deps": [
     "annalist",
-    "cl-lib",
     "evil"
    ],
-   "commit": "695e941d8ac59dc7534524e5cd27ced9490259a1",
-   "sha256": "0fdqxgkp0fl5862b15qxnl2njs97vznsydw5jm6hw8fq94a1crhn"
+   "commit": "c136589d9584e5d01a4b3f2e4cf8ac5f5a23be63",
+   "sha256": "0kbv4p4v5mgjk2hbrg0c5p29yd74s4xaa8z6c8f2h6l5p28dsk4j"
   },
   "stable": {
    "version": [
@@ -28172,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": [
@@ -28204,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"
   }
  },
  {
@@ -28234,26 +28822,26 @@
   "repo": "redguardtoo/evil-matchit",
   "unstable": {
    "version": [
-    20191023,
-    2322
+    20200812,
+    1050
    ],
    "deps": [
     "evil"
    ],
-   "commit": "076ace3ee22a61890f375ae492c634f71ce84301",
-   "sha256": "0d4xdrqa8ylh67wgyywxsh0crm06y31babc8sksrpwxlr12xyaww"
+   "commit": "574d3c4e4517d3bb10bf652cacf459376ae401fe",
+   "sha256": "12c7y8dmkpqlak733cak6274fxzrk1hpywj7ky6nkfspqdvc2xz8"
   },
   "stable": {
    "version": [
     2,
     3,
-    4
+    8
    ],
    "deps": [
     "evil"
    ],
-   "commit": "5e92e374e6b46176d46323b884c25c44063331da",
-   "sha256": "1nflkmx08n3ya5vaipy1xg19hnqcp6f7ddsx9xjh5gl6ix2iz0az"
+   "commit": "8fba4f12e1bbfdbf25a8ed2a5308840f104bc7c0",
+   "sha256": "04s650hz6aa4ld3xqa272a2jsw9j1scnn5qkhpgis0w2d3gpwvpa"
   }
  },
  {
@@ -28369,11 +28957,11 @@
   "repo": "redguardtoo/evil-nerd-commenter",
   "unstable": {
    "version": [
-    20200417,
-    59
+    20200630,
+    911
    ],
-   "commit": "1bd2de52011c39777a3e8779b14cee2790dc873b",
-   "sha256": "0h8hzqjh6qq4fj0imrb5ic5m4zn3ig6s3b7b2x9r6ig9m15jpg6n"
+   "commit": "87734b9c7fcd047f73a072b9d03ec05f786eeb03",
+   "sha256": "15dahrvary0ahyzg83jxdhf00pd2231rr628nq9fl0dl54laixsd"
   },
   "stable": {
    "version": [
@@ -28463,14 +29051,14 @@
   "repo": "Somelauw/evil-org-mode",
   "unstable": {
    "version": [
-    20200101,
-    2017
+    20200601,
+    1855
    ],
    "deps": [
     "evil"
    ],
-   "commit": "9d4be14118bf27094a30dbff349b815f098aacbf",
-   "sha256": "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"
+   "commit": "4b23116a6ecfa687819050e5a9a419cf08d5ba90",
+   "sha256": "0r3b6j0ywkz8wggzyfnvqwwrd7ir317njdwldcdncirfwy603337"
   },
   "stable": {
    "version": [
@@ -28535,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",
@@ -28781,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": [
@@ -28850,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"
   }
  },
  {
@@ -28875,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"
   }
  },
  {
@@ -28966,14 +29573,14 @@
   "repo": "emacs-evil/evil",
   "unstable": {
    "version": [
-    20200304,
-    911
+    20200816,
+    737
    ],
    "deps": [
     "evil"
    ],
-   "commit": "d243eae8649272799ec3864fde14c1164f036940",
-   "sha256": "0fpjcxyzql7fl904asxbff3gqdc1byhwn32i38r4zd4bqrqsqfw4"
+   "commit": "1e7aa5bfbd86feff0ed5982e487070352d326b90",
+   "sha256": "1vb7np6yzv8iqblxg0yi1ac080k2bn7n8wz6wj8vkm080zmfwfb0"
   },
   "stable": {
    "version": [
@@ -28989,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",
@@ -29512,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"
   }
  },
  {
@@ -29536,11 +30175,11 @@
   "repo": "purcell/exec-path-from-shell",
   "unstable": {
    "version": [
-    20191229,
-    112
+    20200526,
+    324
    ],
-   "commit": "d17c4e0b73fc5ffeb2bc28156785c6bdda058654",
-   "sha256": "0nxrdfr9y37ws647qbb0c25l2vwapkqp3qhxwds20jwkskpqa7vm"
+   "commit": "e5647b910900972bc59acea7b74e932ba0a94ce2",
+   "sha256": "18awpmyrvcw6yckms8wfgyh5kfyva1w7vpvclqa655l22brbvpph"
   },
   "stable": {
    "version": [
@@ -29726,11 +30365,11 @@
   "repo": "extemporelang/extempore-emacs-mode",
   "unstable": {
    "version": [
-    20200408,
-    2253
+    20200518,
+    1043
    ],
-   "commit": "09518ae6650d7be33a4633a4c0f31b7130d04c6e",
-   "sha256": "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"
+   "commit": "7d0ca861e6b483be1f4a08e63c5ade9cd07b4799",
+   "sha256": "0mw041jccyn8s1n3wpas397k2vrp9ryq9lfj16ipk9iqs4la6hlx"
   }
  },
  {
@@ -29764,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"
   }
  },
  {
@@ -29806,11 +30446,11 @@
   "repo": "agzam/exwm-edit",
   "unstable": {
    "version": [
-    20200126,
-    27
+    20200728,
+    8
    ],
-   "commit": "bc25ba094b383be3c650ca0b7e1534efe2bb154f",
-   "sha256": "1z1ya9xgknka3dy3b3x8zzfkxdx5jqsi8q5aqkvxjxa6n7mmqdwv"
+   "commit": "2fd9426922c8394ec8d21c50dcc20b7d03af21e4",
+   "sha256": "1gwqwj50ch8iib5yqbyvski7vxiwid6s49lj2xcy5kksnx1a2410"
   }
  },
  {
@@ -29859,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": [
@@ -29943,20 +30583,20 @@
  },
  {
   "ename": "eyebrowse",
-  "commit": "90d052bfc0b94cf177e33b2ffc01a45d254fc1b1",
-  "sha256": "09fkzm8z8nkr4s9fbmfcjc80h50051f48v6n14l76xicglr5p861",
-  "fetcher": "github",
-  "repo": "wasamasa/eyebrowse",
+  "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+  "sha256": "18wkfih7i6swg0wadkrs3bq7bmy54v0lph2p14dqpgmxcyh2zzgg",
+  "fetcher": "git",
+  "url": "https://depp.brause.cc/eyebrowse.git",
   "unstable": {
    "version": [
-    20190928,
-    1458
+    20200506,
+    1303
    ],
    "deps": [
     "dash"
    ],
-   "commit": "e483d35e905c2e26fac63f33c77b9e764729a364",
-   "sha256": "1y3v2cplvnnhw4ga2pw2agwdbffdjrfhjz73cfv6vaa5q8hp32vy"
+   "commit": "bde0eb8f56ec7e2501dc33154c273e43cafb1e5d",
+   "sha256": "19x3wfnbcmrrywxbigr3lv0yp6dxmr0iy10ykqg3pajpxbvarcn2"
   },
   "stable": {
    "version": [
@@ -30566,11 +31206,11 @@
   "repo": "yqrashawn/fd-dired",
   "unstable": {
    "version": [
-    20180731,
-    1049
+    20200713,
+    243
    ],
-   "commit": "fd4c3f490b0b6727592b85f1635e57638dec8f91",
-   "sha256": "0vgwbdrs2f4lwpciwv4j544nqfqwdgli9fsr3ldr01wd4ghjib9m"
+   "commit": "5622041068d5fa2f299dbc8aa91fece0ba260086",
+   "sha256": "028qm0snna2w8wrgx988nhw3sdid5n3nr01hvavnzyhadha1j6fc"
   },
   "stable": {
    "version": [
@@ -30599,8 +31239,8 @@
     "page-break-lines",
     "ppp"
    ],
-   "commit": "529b7ec69f1694d7dc8aacb5066cf4ddcf24cc58",
-   "sha256": "0flph6yv5fj5ladksjqfpj9j8p2jcc102kbc833bvx1cnmjx7qk4"
+   "commit": "3f19293dada8bf368e9f86f783610e7ca0a51ecb",
+   "sha256": "11ml9n4bkm0150ifyx3igx55hnnrhbg04q8sb15v734xi29swp6z"
   },
   "stable": {
    "version": [
@@ -30620,11 +31260,11 @@
   "repo": "michaelklishin/cucumber.el",
   "unstable": {
    "version": [
-    20190801,
-    1137
+    20200815,
+    1617
    ],
-   "commit": "11ae1671629bfedaa553c7b819676d64eb320992",
-   "sha256": "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"
+   "commit": "8e1464113b489b54067294cd988ff6a11a423fdb",
+   "sha256": "1lmfksx49ig4b7nqg0mmaalz08b280iaqgsc0x9i471m9kvbisp7"
   },
   "stable": {
    "version": [
@@ -30651,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",
@@ -30658,11 +31328,20 @@
   "repo": "technomancy/fennel-mode",
   "unstable": {
    "version": [
-    20200405,
-    1935
+    20200714,
+    237
+   ],
+   "commit": "a39543750ba337b9327108ba17ffb0cdb18c7f9b",
+   "sha256": "0p9n0plb1ry6r8i09if6mzhhk4gs1saxm05msq8sgwdjs6r1ra61"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    0
    ],
-   "commit": "7fadf2580c3afcae3f6ebc54dad0e519b7600f1d",
-   "sha256": "1qpfpfdm2d8bdqm7h62y3hgbip67yqmblhg66zlmfxfdnsad5ls6"
+   "commit": "ae4634bef12f66a1d4721ab74c5bf8dd29d710d2",
+   "sha256": "15b5zb66dzszpdiqkwgxqv434kqgpk1l065ic4lbj3y3krm2snbg"
   }
  },
  {
@@ -30688,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"
   }
  },
  {
@@ -30793,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": [
@@ -30845,11 +31524,11 @@
   "repo": "snarfed/fillcode",
   "unstable": {
    "version": [
-    20171029,
-    1625
+    20200524,
+    2226
    ],
-   "commit": "d0a9e20f5fcc24a786d09ea19bfb9237681ba823",
-   "sha256": "1mf2gfcjaqbw523vkfbzs2nl1y9bn9gbgmbvn2phbyj78gzq18za"
+   "commit": "501468082e46bd0975ef4d8765363fd564338099",
+   "sha256": "0z18x3gxh004nd648hwqdlb60a6ss61pkkqg30xpdmsrj8darf5q"
   }
  },
  {
@@ -30930,8 +31609,8 @@
    "deps": [
     "ivy"
    ],
-   "commit": "acedab403f69f242fa41012c20078500d46aa9e8",
-   "sha256": "0p21vm6xz6093nic2wwgly18a85xki3wp0a2vy4hgy0dl7qici86"
+   "commit": "506f35e91e06463cca7390da6ebffc411b8c220f",
+   "sha256": "1iwfhymbmlmakbga1jlp7w6jlnj0jbb0zs1yxxg8mmj7k9ss2xjr"
   },
   "stable": {
    "version": [
@@ -31071,8 +31750,8 @@
     20200415,
     2356
    ],
-   "commit": "a61d7fce35eadba39236a6a3e9aa301e161d147b",
-   "sha256": "1bn81qwkvhznc5pi6bq08kp83208pj09vknfszx152r72sv5fpmz"
+   "commit": "c6945a005b9a581c81e2f3560eab4bd629967364",
+   "sha256": "1ylndx5n433zy9y7n79xhl7p0g1f4c0y97ha50d8fqm451jm0569"
   }
  },
  {
@@ -31149,17 +31828,17 @@
  },
  {
   "ename": "firestarter",
-  "commit": "5b046eb3b63220b937e1b70f633cb5424dc782a1",
-  "sha256": "1cpx664hyrdnpb1jps1x6lm7idwlfjblkfygj48cjz9pzd6ld5mp",
-  "fetcher": "github",
-  "repo": "wasamasa/firestarter",
+  "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+  "sha256": "1kaw710za76178ak35nlgr2pj1303z7fcas6474rr3nd82l8sypf",
+  "fetcher": "git",
+  "url": "https://depp.brause.cc/firestarter.git",
   "unstable": {
    "version": [
-    20200116,
-    2023
+    20200506,
+    1311
    ],
-   "commit": "eecd8f97a09bbfbc03113b71fa3c8b92766e3956",
-   "sha256": "1a7cp4rfa9r707pg7g9xhhs7nj79gva8fnmbq6ck0hxyllcabwa7"
+   "commit": "5b117bf8d290af5c104d88c413f40e84da0c4ce8",
+   "sha256": "13axz8c4v4x43x2ami78kwaj6cpmyqykapj94mqrr3b5qzms502b"
   },
   "stable": {
    "version": [
@@ -31241,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"
   }
  },
  {
@@ -31268,8 +31947,8 @@
     20190713,
     1349
    ],
-   "commit": "d3e17161d137fb75baf1449741ccaadb949e127a",
-   "sha256": "18yk3vs4v7n8zmxv80ss7bd94zmr14nring0d5bavax65b4wqk59"
+   "commit": "7aef6fb29840a2f3c7e3c01eeeb7838a0e702050",
+   "sha256": "0hf4x16fr5z5l2ypp41sw78dz5qpi14pphpbh8zdg4ky5sa8d4fd"
   },
   "stable": {
    "version": [
@@ -31318,8 +31997,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "8d023f13710a90ae4da644d5485bf2be2646b6a1",
-   "sha256": "0pb5sd5cpz4173xi9kzgl9jx69169aymk94kdr6xgzhqda7iwy7p"
+   "commit": "46487e5279a3079730e2d7146ace7c8ad42371ac",
+   "sha256": "0ij0bjrb446h07lyhflfk06sk802jylgdl11ib00r89zai8sq8r7"
   },
   "stable": {
    "version": [
@@ -31353,8 +32032,8 @@
     "string-utils",
     "tabulated-list"
    ],
-   "commit": "1b8b3460f1e3c3c1784b2a63fb9f4fb3bb4dc084",
-   "sha256": "1x4k8890pzdcizzl0p6v96ylrx5xid9ykgrmggx0b3y0gx0vhwic"
+   "commit": "5cddb64e0d52635e9a1529d80cb5cefa6f829341",
+   "sha256": "0kl2b4j93kk9lzw0qclib55ghcwznag3p022jkr0bq5z30m2gdj4"
   },
   "stable": {
    "version": [
@@ -31442,11 +32121,11 @@
   "repo": "seblemaguer/flatfluc-theme",
   "unstable": {
    "version": [
-    20200419,
-    1033
+    20200707,
+    630
    ],
-   "commit": "42f93b2ffb651901d6bad7eb5587790298dda371",
-   "sha256": "035zm6dh416jk1ipg35qnkr8cbfsjkb92dhc4ryay4p30rp1yljz"
+   "commit": "5a30b1cd344ac0d3c3bf9dab017805ab96897b54",
+   "sha256": "0vcinly3lrrkbihafgxcv084zn8fhw94wc8qjjq2lwcc1db7lfjc"
   }
  },
  {
@@ -31541,15 +32220,15 @@
   "repo": "plandes/flex-compile",
   "unstable": {
    "version": [
-    20191019,
-    18
+    20200506,
+    1309
    ],
    "deps": [
     "buffer-manage",
     "dash"
    ],
-   "commit": "df113f0b25ef73c5a246330ef9fa69ab936df174",
-   "sha256": "11hdabn2ayg2nrp7mg8vp9ywb1yl6nw4z7y7rxv70n0h4blnwn9n"
+   "commit": "dc6d920b477fe96a71bc37d593beef5ae8b2ae7e",
+   "sha256": "1vcpb0bnklq89vgynnpfs4dmjacaajrzkasgwzix7q4qfzcbid9n"
   },
   "stable": {
    "version": [
@@ -31605,11 +32284,11 @@
   "repo": "IvanMalison/flimenu",
   "unstable": {
    "version": [
-    20200415,
-    2353
+    20200810,
+    1510
    ],
-   "commit": "f110bc77415a7594742f3b12551571c4069c9157",
-   "sha256": "1y832w4n10k9lfi90lhq8l9s56zcg24j9j8jklkzby1vf34vq0ql"
+   "commit": "4c0ff37cf3bd6c836bd136b5f6c450560a6c92b9",
+   "sha256": "1z57vm8pgxfhklzz4gpyqy8wwv3dzl76dzgilx5pfkd69m2jrijg"
   }
  },
  {
@@ -31739,11 +32418,11 @@
   "repo": "MetroWind/flucui-theme",
   "unstable": {
    "version": [
-    20200204,
-    1930
+    20200815,
+    2103
    ],
-   "commit": "01a3df3530474da7b4303e4eea2ed1fae00d1776",
-   "sha256": "1bfnpligs32mpizrz9fb1pyp1zxq2rmympcg9pqrgpkdlxvs6xrf"
+   "commit": "6591b5093e6e8f0e720e3995a16a91835b2e7a48",
+   "sha256": "1lrpx1y103655xwaqkvn7i2zvkzbsf5bm7zndaj31rpm917xcm3i"
   }
  },
  {
@@ -31754,11 +32433,11 @@
   "repo": "amake/flutter.el",
   "unstable": {
    "version": [
-    20200416,
-    1225
+    20200718,
+    1434
    ],
-   "commit": "293b7225b9bacbad4bf14d43d20a765f4862c563",
-   "sha256": "0acn2bdqcvj1m6plm304adgw6ndycv04qh6asgbgdwlz1admzjga"
+   "commit": "78b3c572584c95220a40934bd67fd5e3fb096f96",
+   "sha256": "1vmm1d5sviwwvhm6cbr3sirfhqxa04d0s62a8vsiydb1q7868g2s"
   }
  },
  {
@@ -31776,8 +32455,8 @@
     "flutter",
     "flycheck"
    ],
-   "commit": "293b7225b9bacbad4bf14d43d20a765f4862c563",
-   "sha256": "0acn2bdqcvj1m6plm304adgw6ndycv04qh6asgbgdwlz1admzjga"
+   "commit": "78b3c572584c95220a40934bd67fd5e3fb096f96",
+   "sha256": "1vmm1d5sviwwvhm6cbr3sirfhqxa04d0s62a8vsiydb1q7868g2s"
   }
  },
  {
@@ -31887,8 +32566,8 @@
   "repo": "flycheck/flycheck",
   "unstable": {
    "version": [
-    20200425,
-    1426
+    20200610,
+    1809
    ],
    "deps": [
     "dash",
@@ -31896,8 +32575,8 @@
     "pkg-info",
     "seq"
    ],
-   "commit": "c8218044c849f21cc628b6c077e41c690f046bc0",
-   "sha256": "11n3h7x9nszqljd0awi6jzrhrkac7sdyrwvb94bikrj1d7yin25g"
+   "commit": "c02cd773dded0215f9417ec04dfe8dabda63ef43",
+   "sha256": "15w2b98zylppbfvy653i3a5jrxqvbrz8lqs4pzb39w2mbf8nxibx"
   },
   "stable": {
    "version": [
@@ -31999,14 +32678,14 @@
   "repo": "alexmurray/flycheck-bashate",
   "unstable": {
    "version": [
-    20160630,
-    440
+    20200625,
+    642
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "77fa03dbc578c34fe71ca44926bac2aff8f2b021",
-   "sha256": "1jcay4gncpr0fap6qlm6k4r5b94s18zj8j56w462hvxydaxxiql6"
+   "commit": "5e673c591d017329d0a07a61dc1223fa98639ee2",
+   "sha256": "1gaih50mkyby0r4qnmc03dy111ik4and5p6r3lvsflpvd3hcxjn3"
   }
  },
  {
@@ -32106,14 +32785,14 @@
   "repo": "alexmurray/flycheck-clang-analyzer",
   "unstable": {
    "version": [
-    20200320,
-    428
+    20200429,
+    238
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "7e1bf9853a34828c7f81d824dc4785f1620f2006",
-   "sha256": "1iw3vjdnskbk8zlbyvxiwlisj72d7q8nz8n55ffwz3v44ymzhya6"
+   "commit": "0c9b6e4626cd5376037464f8d6b8c64aa32768ee",
+   "sha256": "0nr3wipmcalxfp48hi23vmrj2rwbwk6gipdqmic8ay4z9x2csi8v"
   }
  },
  {
@@ -32256,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": [
@@ -32324,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": [
@@ -32439,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",
@@ -32579,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",
@@ -32764,25 +33456,25 @@
   "url": "https://git.deparis.io/flycheck-grammalecte/",
   "unstable": {
    "version": [
-    20200416,
-    1620
+    20200515,
+    1120
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "d99833992eb874cbbd25e991e3037642e125bb59",
-   "sha256": "07ph5kk9zb375nkdqryzpfzqn9rr89minf2jgyzlnv58fzqiwpjp"
+   "commit": "8608df3144714d79b93afcfe13400693ed763ed8",
+   "sha256": "1ibcalim4mp9676szbvrf69nhfbc8vy47anmpqi9idjvdf6bpm75"
   },
   "stable": {
    "version": [
     1,
-    0
+    2
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "ca4b87d22474d3337db72e19f88105f557f44867",
-   "sha256": "0wj81xfy3wlgdlnhhyhz5lfkl6sfb2ajwb6s8f2y4bcvqa8gz3qj"
+   "commit": "8608df3144714d79b93afcfe13400693ed763ed8",
+   "sha256": "1ibcalim4mp9676szbvrf69nhfbc8vy47anmpqi9idjvdf6bpm75"
   }
  },
  {
@@ -32793,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"
   }
  },
  {
@@ -32901,8 +33622,8 @@
     "flycheck",
     "indent-lint"
    ],
-   "commit": "23ef4bab5509e2e7fb1f4a194895a9510fa7c797",
-   "sha256": "00ipp87hjiymraiv6xy0lqzhn9h3wcrw7z4dkzb2934d7bd08j29"
+   "commit": "c55f4ded11e8e50a96f43675a071354a8fb501c3",
+   "sha256": "0d7vkgzsx6ka4zliscsg6drqhg2bj16i911ryzmsp4v6hj294jrc"
   },
   "stable": {
    "version": [
@@ -32985,14 +33706,14 @@
   "repo": "flycheck/flycheck-inline",
   "unstable": {
    "version": [
-    20190320,
-    1611
+    20200808,
+    1019
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "cf9eceabff8370f3b834b943a5777b9f914583f9",
-   "sha256": "1sk8r90iqxpzrg0lpq4vd8ywdi08i0bbmgdivmr510jw2bpi3wp4"
+   "commit": "0662c314bd819f9b46f8b2b13f0c650445b3a8c5",
+   "sha256": "1wlvwi8y5pb3gy3j061v7krxfb1766yw5iika5ymk4zjg9g057vn"
   }
  },
  {
@@ -33106,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",
@@ -33171,14 +33911,14 @@
   "repo": "hinrik/flycheck-lilypond",
   "unstable": {
    "version": [
-    20171203,
-    1332
+    20200614,
+    2104
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "cc1b7677a932c42e5dab1661ad7b923d4aae744c",
-   "sha256": "1yfsg52z4nhbh33fbsig24c9s0mc4xm72ll36h6ibld9fvqsgv6k"
+   "commit": "17133911b519be76365103dec8c10cb2f3729f1a",
+   "sha256": "01486ch8vsq7kcfdpggvykbdangv2pvq2v4g9npr9izlja2kwpar"
   }
  },
  {
@@ -33220,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",
@@ -33265,8 +33973,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "f8fdd59ccb9ddc7d81efbf3dde096dc66e3f9fa1",
-   "sha256": "08rwmvddla2h0wjiljl8qab87chsyc42hzap2mqih2n7finvzj4f"
+   "commit": "a285d849e6e227b79bef98f575ecfa43a70661da",
+   "sha256": "1wdv7iv3lmrpxxdas1p3grkpi08c4ipjfg170nfd2fy9nhr8iy38"
   },
   "stable": {
    "version": [
@@ -33427,8 +34135,8 @@
     "flycheck",
     "package-lint"
    ],
-   "commit": "caea75f77dc7668c7aa0ebcd48f677e3522b5d77",
-   "sha256": "1x63rwpyzcn99jzhyxh91l3hp2j55wspxdv5rhvnpbar5nlqlbz1"
+   "commit": "64cf27d69051e02a32e3c517cbfea23f9d2d7557",
+   "sha256": "0m2bmdwrj7ccf6ndv089qbbrz1msbcgls0ckbbhzpxxq39as2rpv"
   },
   "stable": {
    "version": [
@@ -33495,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"
   }
  },
  {
@@ -33514,8 +34235,8 @@
     "flycheck",
     "phpstan"
    ],
-   "commit": "2f715a186c5fe6576de83d4c0b64a37e2bfce101",
-   "sha256": "03ix2s068pzmybj0fcb08dlfgdqw0pmqhbdf4id2077f67bfad0w"
+   "commit": "e675cf0881408e10b76f2e70c6158237cb94671e",
+   "sha256": "11qd0mpcvc56hghwv60a57d5pap19s7yvlvi6827wnrq35cyzh7f"
   },
   "stable": {
    "version": [
@@ -33640,15 +34361,15 @@
   "repo": "flycheck/flycheck-pos-tip",
   "unstable": {
    "version": [
-    20180610,
-    1615
+    20200516,
+    1600
    ],
    "deps": [
     "flycheck",
     "pos-tip"
    ],
-   "commit": "909113977d37739387c7f099d74a724cfe6efcec",
-   "sha256": "0rfbhvl8n656a9d58bjyzki9r3si3ypylbyjn67rnla4jzzi22v8"
+   "commit": "dc57beac0e59669926ad720c7af38b27c3a30467",
+   "sha256": "15h4m5cfk0vh1g630vlwfxmcpa1jdalrrldnvijsqla99mb2jm1w"
   },
   "stable": {
    "version": [
@@ -33671,15 +34392,15 @@
   "repo": "alexmurray/flycheck-posframe",
   "unstable": {
    "version": [
-    20191214,
-    1109
+    20200817,
+    412
    ],
    "deps": [
     "flycheck",
     "posframe"
    ],
-   "commit": "2b3e94c2e427ec9831c513007460c5ea9e2225a3",
-   "sha256": "1hmplb61xvz6p2b2pv6pg5bv7q7mirmgr0n1by1hj1w479g8rps3"
+   "commit": "c928b5b5424fe84a0b346e28bd7d461c80b27482",
+   "sha256": "1prjqqhzzaznbsysdipgvcinl3zkbgf19rb061h5mrqbgjw1l8f4"
   }
  },
  {
@@ -33701,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",
@@ -33708,25 +34461,25 @@
   "repo": "msherry/flycheck-pycheckers",
   "unstable": {
    "version": [
-    20200414,
-    1901
+    20200807,
+    610
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "467f9b94d9eecc8a8027cf204d304e258f72edaa",
-   "sha256": "03yiva5lmbfawdjjfsmqlqgvrdgfni1gh1qbdpma5gqhckz5j0d7"
+   "commit": "055830b67cd0f0d7196a5b71bd5cce3197a557a7",
+   "sha256": "1zw6993a8l7yf3j8dbagmj051m1z8cdax2pzm0l2p2dxvkm0h4s2"
   },
   "stable": {
    "version": [
     0,
-    14
+    15
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "c5349c0fb3b719469b7e66dbdfbe58d0813f6a74",
-   "sha256": "02886xggdb09880jp57cah3fmf1nm77gvb0aaws8j4abl278g7x5"
+   "commit": "44b11b51c97fd334ecdce74169c0e65123ef5991",
+   "sha256": "08wsr0hrmbh24bzsd2ghc82mp4m31ms3aykv0x68vpspzm06yyi3"
   }
  },
  {
@@ -33774,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"
   }
  },
  {
@@ -33812,8 +34565,8 @@
     "flycheck",
     "rtags"
    ],
-   "commit": "a42298e80dffae9a6b2e9816506174542f3cbbb7",
-   "sha256": "1674752bbyb7890na5p846dxcvh83zn0a6z19wras1x5c59s24i3"
+   "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+   "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
   },
   "stable": {
    "version": [
@@ -33864,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",
@@ -33897,8 +34631,8 @@
     "flycheck",
     "stan-mode"
    ],
-   "commit": "599a0440086c660e6823622b35058f6d2d6d9637",
-   "sha256": "0mm0kpyihpd55hx14smlm0ayz05zw750fihhqhxqc258y8y73m5y"
+   "commit": "e891a0fcb3a7ab7d9cedbe3deda560134636897e",
+   "sha256": "158afanfaww2jkrz9szap6ys8xhbpz35kd5apkxr1j9j7s8h0iw0"
   },
   "stable": {
    "version": [
@@ -34032,15 +34766,15 @@
   "repo": "nhojb/flycheck-swiftx",
   "unstable": {
    "version": [
-    20191129,
-    2207
+    20200814,
+    845
    ],
    "deps": [
     "flycheck",
     "xcode-project"
    ],
-   "commit": "94ead32e879c055902e3edb78af1193f21339e5f",
-   "sha256": "1r49cyhpqw469j832nqdywjh1zc37q9innxwj2hnvvw9hz69g2wm"
+   "commit": "84f42393dea362d3bdfc9253a205a17ec7a12a76",
+   "sha256": "0v5km3hf58xysal526l4l2jpyibh0l6f367vwmn4zi64cl5hvf3p"
   }
  },
  {
@@ -34757,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",
@@ -34860,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"
   }
  },
  {
@@ -34925,8 +35689,8 @@
    "deps": [
     "phpstan"
    ],
-   "commit": "2f715a186c5fe6576de83d4c0b64a37e2bfce101",
-   "sha256": "03ix2s068pzmybj0fcb08dlfgdqw0pmqhbdf4id2077f67bfad0w"
+   "commit": "e675cf0881408e10b76f2e70c6158237cb94671e",
+   "sha256": "11qd0mpcvc56hghwv60a57d5pap19s7yvlvi6827wnrq35cyzh7f"
   },
   "stable": {
    "version": [
@@ -35257,11 +36021,11 @@
   "repo": "d12frosted/flyspell-correct",
   "unstable": {
    "version": [
-    20200215,
-    1408
+    20200601,
+    944
    ],
-   "commit": "fd8ac7a4f922ce5ea1cc5d4583a7d584847cb6b5",
-   "sha256": "1z7gcppp8nv4zm6giqwahc1svw1fa2ynjy5y3230dwcfn98m73c3"
+   "commit": "dea1290a371c540dde7b8d0eef7a12d92f7a0b83",
+   "sha256": "0b15w96hihdblw71xvaysf8p1bmwvjp0qzrqwcij9qz72kd1w72x"
   },
   "stable": {
    "version": [
@@ -35288,8 +36052,8 @@
     "avy-menu",
     "flyspell-correct"
    ],
-   "commit": "fd8ac7a4f922ce5ea1cc5d4583a7d584847cb6b5",
-   "sha256": "1z7gcppp8nv4zm6giqwahc1svw1fa2ynjy5y3230dwcfn98m73c3"
+   "commit": "dea1290a371c540dde7b8d0eef7a12d92f7a0b83",
+   "sha256": "0b15w96hihdblw71xvaysf8p1bmwvjp0qzrqwcij9qz72kd1w72x"
   },
   "stable": {
    "version": [
@@ -35320,8 +36084,8 @@
     "flyspell-correct",
     "helm"
    ],
-   "commit": "fd8ac7a4f922ce5ea1cc5d4583a7d584847cb6b5",
-   "sha256": "1z7gcppp8nv4zm6giqwahc1svw1fa2ynjy5y3230dwcfn98m73c3"
+   "commit": "dea1290a371c540dde7b8d0eef7a12d92f7a0b83",
+   "sha256": "0b15w96hihdblw71xvaysf8p1bmwvjp0qzrqwcij9qz72kd1w72x"
   },
   "stable": {
    "version": [
@@ -35345,15 +36109,15 @@
   "repo": "d12frosted/flyspell-correct",
   "unstable": {
    "version": [
-    20200215,
-    1503
+    20200513,
+    708
    ],
    "deps": [
     "flyspell-correct",
     "ivy"
    ],
-   "commit": "fd8ac7a4f922ce5ea1cc5d4583a7d584847cb6b5",
-   "sha256": "1z7gcppp8nv4zm6giqwahc1svw1fa2ynjy5y3230dwcfn98m73c3"
+   "commit": "dea1290a371c540dde7b8d0eef7a12d92f7a0b83",
+   "sha256": "0b15w96hihdblw71xvaysf8p1bmwvjp0qzrqwcij9qz72kd1w72x"
   },
   "stable": {
    "version": [
@@ -35384,8 +36148,8 @@
     "flyspell-correct",
     "popup"
    ],
-   "commit": "fd8ac7a4f922ce5ea1cc5d4583a7d584847cb6b5",
-   "sha256": "1z7gcppp8nv4zm6giqwahc1svw1fa2ynjy5y3230dwcfn98m73c3"
+   "commit": "dea1290a371c540dde7b8d0eef7a12d92f7a0b83",
+   "sha256": "0b15w96hihdblw71xvaysf8p1bmwvjp0qzrqwcij9qz72kd1w72x"
   },
   "stable": {
    "version": [
@@ -35658,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",
@@ -35795,8 +36544,8 @@
     20191004,
     1850
    ],
-   "commit": "eab07dae119129066624e692c1c75a53b2ab10a5",
-   "sha256": "1q9g8kza6hv6pv1sjzkl6b4gxcx6fsvv8lk5w7kk9gpws5vjz5bz"
+   "commit": "61a14d1a8c17930caca5c5daf893cedc9c23c5f3",
+   "sha256": "0acq8d8vlx3hd405wmi5w36gg88bz1c1crmlxbd2whgi8kyf506z"
   }
  },
  {
@@ -35873,8 +36622,8 @@
   "repo": "magit/forge",
   "unstable": {
    "version": [
-    20200425,
-    2225
+    20200725,
+    1419
    ],
    "deps": [
     "closql",
@@ -35886,8 +36635,8 @@
     "markdown-mode",
     "transient"
    ],
-   "commit": "e2da80660a0550f613400ce3b238025589800417",
-   "sha256": "0m80w0qh6icj365pcg9d0kb2nvmv48c3874wy15mjcilzb6i97av"
+   "commit": "feee7e2fce3f87f7aa113c5edcb1896127ee9d12",
+   "sha256": "1nn73hxhp7rziwdnnvz6avn1gkax531f4l72sk0v4ywdwjhnnlgs"
   },
   "stable": {
    "version": [
@@ -35912,17 +36661,17 @@
  },
  {
   "ename": "form-feed",
-  "commit": "468503d8103766e8196e977325e3bcb696219f6b",
-  "sha256": "1abwjkzi3irw0jwpv3f584zc72my9n8iq8zp5s0354xk6iwrl1rh",
-  "fetcher": "github",
-  "repo": "wasamasa/form-feed",
+  "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+  "sha256": "0nh50lwr9jyi45sd4722nm2rmmc9zm9l8l55w4pjq61cfwldqq7p",
+  "fetcher": "git",
+  "url": "https://depp.brause.cc/form-feed.git",
   "unstable": {
    "version": [
-    20160102,
-    2253
+    20200527,
+    2152
    ],
-   "commit": "15bbcb2d2df21910af3b9686b671e0c7d1c93b26",
-   "sha256": "1vfnpm6kp4xf3qc73i41rg73bhbym1sd4z6jam4k1f44iny0zqxz"
+   "commit": "fc06255e185d32b1616bd86b69b55c1daabbe378",
+   "sha256": "05yqyp20bvfk5n1nqyffv1k8l1zl1bpz8q32kzqarm9fim2wv23n"
   },
   "stable": {
    "version": [
@@ -35942,15 +36691,15 @@
   "repo": "lassik/emacs-format-all-the-code",
   "unstable": {
    "version": [
-    20200422,
-    1731
+    20200804,
+    1822
    ],
    "deps": [
     "cl-lib",
     "language-id"
    ],
-   "commit": "c157b57e963da0b44a079b0477d6c742e9c5a10b",
-   "sha256": "15pqff80ydcvkvbiyi50aix5mnwgrhvvajk60i6cwgkb2xghs20r"
+   "commit": "ccfff41a200e16e3644c2531e984959392e3341a",
+   "sha256": "0wqq86gfilrg9jf9yls9wcxy926j44lvzafj92kdmmyzbas1nm9k"
   },
   "stable": {
    "version": [
@@ -36087,26 +36836,26 @@
   "repo": "rnkn/fountain-mode",
   "unstable": {
    "version": [
-    20200416,
-    841
+    20200811,
+    652
    ],
    "deps": [
     "seq"
    ],
-   "commit": "5998d977ca84930e124558007dc65370164ed960",
-   "sha256": "1hmc3pacscr0f02cw6hbbv444k07k5gf1909lyz8jpfr5r5wi2in"
+   "commit": "55be196ef20cdc276b3bde1a39444df1cc599f9b",
+   "sha256": "14baj9ldssdb5vrc3fl7c7nhc2iff6gxa7v2flcjjnazfg87r3b2"
   },
   "stable": {
    "version": [
     3,
-    1,
-    0
+    2,
+    2
    ],
    "deps": [
     "seq"
    ],
-   "commit": "9027c6f2b2a2d7d64501e55ff3531cdef26c463d",
-   "sha256": "08giwg0jwk8zzj2i4cm08322qr6znrnv9a49za7c6j47bykpwj6s"
+   "commit": "1405217e69d055b869e804d33feca23cb602f759",
+   "sha256": "0rwdwbw9cq8ljvbmgmz9izank8dqjki79l1bw127lli69fs72gyi"
   }
  },
  {
@@ -36217,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": [
@@ -36309,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"
   }
  },
  {
@@ -36390,6 +37139,108 @@
   }
  },
  {
+  "ename": "friendly-remote-shell",
+  "commit": "de68633dae1e07006ae7b043c9264d9b8d08d377",
+  "sha256": "0ja0xgxs26sk2mx57wqb3schmw8ms01sdla260c96ilmy1qj6fvq",
+  "fetcher": "github",
+  "repo": "p3r7/friendly-shell",
+  "unstable": {
+   "version": [
+    20200527,
+    830
+   ],
+   "deps": [
+    "cl-lib",
+    "friendly-shell",
+    "friendly-tramp-path",
+    "with-shell-interpreter"
+   ],
+   "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+   "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    3
+   ],
+   "deps": [
+    "cl-lib",
+    "friendly-shell",
+    "friendly-tramp-path",
+    "with-shell-interpreter"
+   ],
+   "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+   "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
+  }
+ },
+ {
+  "ename": "friendly-shell",
+  "commit": "de68633dae1e07006ae7b043c9264d9b8d08d377",
+  "sha256": "1xpfykkfrm6gg6p0rjp1hfnjf4k4n6k3v5kxifgbxld4hjl9223d",
+  "fetcher": "github",
+  "repo": "p3r7/friendly-shell",
+  "unstable": {
+   "version": [
+    20200527,
+    830
+   ],
+   "deps": [
+    "cl-lib",
+    "with-shell-interpreter"
+   ],
+   "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+   "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    3
+   ],
+   "deps": [
+    "cl-lib",
+    "with-shell-interpreter"
+   ],
+   "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+   "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
+  }
+ },
+ {
+  "ename": "friendly-shell-command",
+  "commit": "de68633dae1e07006ae7b043c9264d9b8d08d377",
+  "sha256": "0hsnn18zxwqvk5zpp5kf8mlfya6if0npnfm0crvwqqsipx9nj8v4",
+  "fetcher": "github",
+  "repo": "p3r7/friendly-shell",
+  "unstable": {
+   "version": [
+    20200527,
+    830
+   ],
+   "deps": [
+    "cl-lib",
+    "dash",
+    "with-shell-interpreter"
+   ],
+   "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+   "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    3
+   ],
+   "deps": [
+    "cl-lib",
+    "dash",
+    "with-shell-interpreter"
+   ],
+   "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+   "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
+  }
+ },
+ {
   "ename": "friendly-tramp-path",
   "commit": "cb18ad238792570e5ef825a101059bfdc293949f",
   "sha256": "120g9w1l4i544km5d1jx5g4vsfb92lizn7ibxl767zffgahqhbdf",
@@ -36397,14 +37248,14 @@
   "repo": "p3r7/friendly-tramp-path",
   "unstable": {
    "version": [
-    20200419,
-    851
+    20200502,
+    1032
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "ce7d15dd96300d376d483d685aa4a34357da8d6a",
-   "sha256": "01v311c8w86s954adl1ncmbhmk07acm8pnak70gn93dpz77vl9g4"
+   "commit": "be572b8953b9e5a3a35c30bb64c2936d3e9802ba",
+   "sha256": "0w99py469ylkg9jg9fdxalv3axd57ld9rgwhgfy1r8rpp7xch7pn"
   },
   "stable": {
    "version": [
@@ -36509,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": [
@@ -36542,8 +37393,8 @@
   "repo": "FStarLang/fstar-mode.el",
   "unstable": {
    "version": [
-    20200424,
-    2235
+    20200624,
+    2201
    ],
    "deps": [
     "company",
@@ -36553,8 +37404,8 @@
     "quick-peek",
     "yasnippet"
    ],
-   "commit": "d8b586518f32d4acde049852d81902670d1ee277",
-   "sha256": "0av315lf58nwgvix100bj279mq2pm175vwc5dip19gn73bq4d9vi"
+   "commit": "bd28cb8f25538e26287c76efbbc5ef7378d1fbc6",
+   "sha256": "1jvvasin29bwxq7cmviv0431jb7p2gq3yh12pyf6f5zinsax97cp"
   },
   "stable": {
    "version": [
@@ -36578,14 +37429,14 @@
   "repo": "factor/factor",
   "unstable": {
    "version": [
-    20190611,
-    1350
+    20200514,
+    1516
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "298bbddeb1dcc135c075d484f283f409f0d0d055",
-   "sha256": "199a1gs7ja9l3bc2sw9cwv9jv0zvqqaa2pp6hibbyl00rsk2xs58"
+   "commit": "3fdb0325ca2a6d80e4111af43b1b166808022020",
+   "sha256": "0kid3a0qq2qvzndbs1c69z30f2in7q7fzpv6yas84f8y5kkmk220"
   },
   "stable": {
    "version": [
@@ -36702,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,
@@ -36738,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"
   }
  },
  {
@@ -36759,8 +37610,8 @@
     20200104,
     524
    ],
-   "commit": "0b6b64cebde5675be3a28520ee16234db48d3b8b",
-   "sha256": "1bddjr3rpmvkrljq5ipjm42d59m2897cpfhmiah3rcb4c6ra40m1"
+   "commit": "fee874aa35d2ee6b12b836290b5c8eaa44175a28",
+   "sha256": "1xswm8my29i4fddy64k21b1vclbr5fjb0pisb4hs8ynkk5w1kw2a"
   },
   "stable": {
    "version": [
@@ -36783,8 +37634,8 @@
     20150730,
     337
    ],
-   "commit": "534d723ad2e06322ff8d9bd0ba4863d243f698e7",
-   "sha256": "0rzp8c2164w775ggm2fs4j5dz33vqcah84ysp81majirwfql1niv"
+   "commit": "a36bde2f6e94d6b2bfaae68d73bbd39734e5b907",
+   "sha256": "1aj7r16bnx2jr2gpzwsmr3yqmfza5qbdcn78chcsfqxv5c8bgswa"
   },
   "stable": {
    "version": [
@@ -36911,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",
@@ -37029,20 +37895,20 @@
   "repo": "GDQuest/emacs-gdscript-mode",
   "unstable": {
    "version": [
-    20200404,
-    112
+    20200726,
+    1721
    ],
-   "commit": "9a74dd3b6cfe73dd7510faf26ee7bc14e3c7dbc6",
-   "sha256": "1rrwhb6ak0gajcci4kk7fdyfm0c5wfhj6zys9f4m5xjya9pb3wb4"
+   "commit": "7aea87bd7b3cd14b1a767e7d835cee896722cd29",
+   "sha256": "1cq2k054ngqwanayy7fgkqdb5fq6xcqdglpyxngqmh765lyb7nrb"
   },
   "stable": {
    "version": [
     1,
-    1,
+    2,
     0
    ],
-   "commit": "86577f81dc2640d5388565d0430b4df241bdd38e",
-   "sha256": "0cpfdbza3gh1s6y5igs51b1m7g7dfa7jszjfawz3v2g49p4a5m2d"
+   "commit": "36c92dff1587d7c3c7ff2cd02d8e158cbed55215",
+   "sha256": "02by4bvdayldbjlz6jkp36m5rgcy2h5bwhqx2cj7wma6xf6cw3lf"
   }
  },
  {
@@ -37130,20 +37996,82 @@
   "repo": "jaor/geiser",
   "unstable": {
    "version": [
-    20200419,
-    2111
+    20200714,
+    1210
    ],
-   "commit": "07912e512a7bf1507d0dd5ba3774b684c5ac3287",
-   "sha256": "0w2rhk04x4wqcx6brfacqx3r7whyzdnbgwzfgmba0xsrpb2x7rpz"
+   "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"
+  }
+ },
+ {
+  "ename": "geiser-kawa",
+  "commit": "68690d6b011c95197af6b5a87cc21c4dbe97ff00",
+  "sha256": "0gzzab0v93vd9n14s1bya0frf3dagh0gbwg1an4mapg7gjz9ffdg",
+  "fetcher": "gitlab",
+  "repo": "spellcard199/geiser-kawa",
+  "unstable": {
+   "version": [
+    20200507,
+    1305
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "b96c008e9c3b8dc210d8b536ee7b76b8690c8af6",
+   "sha256": "0j2djjgfd4hd2k60ymgxzpsy52ks6hxpd4rr81z5nh9fdg9axhrs"
+  }
+ },
+ {
+  "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"
   }
  },
  {
@@ -37154,14 +38082,14 @@
   "repo": "noctuid/general.el",
   "unstable": {
    "version": [
-    20200425,
-    1425
+    20200516,
+    50
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "42e38034cd2305fa7432866323c923979d8f9b06",
-   "sha256": "0aalp4x5gp0yhv037ymspsj4n3vqzxld0c1nk8ihl50k6krl4kxy"
+   "commit": "a0b17d207badf462311b2eef7c065b884462cb7c",
+   "sha256": "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"
   }
  },
  {
@@ -37279,8 +38207,8 @@
   "repo": "thisch/gerrit.el",
   "unstable": {
    "version": [
-    20200226,
-    2137
+    20200727,
+    2006
    ],
    "deps": [
     "dash",
@@ -37288,8 +38216,8 @@
     "magit",
     "s"
    ],
-   "commit": "36870fd34ad681f907a57a2d82b2002735878614",
-   "sha256": "0h9v4ajp50wpg3zz0p7klyi705ynfy2mka0hpzz81kgpq8q8f46z"
+   "commit": "eb4b182e493a6d5d3e94c9ff5abe0a0206b03c7c",
+   "sha256": "16v043avd9sm0rq7951x7045zfxhiadq2q056grkjgcpy2id45lw"
   }
  },
  {
@@ -37426,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,
@@ -37577,28 +38505,28 @@
   "repo": "magit/ghub",
   "unstable": {
    "version": [
-    20200425,
-    2233
+    20200801,
+    815
    ],
    "deps": [
     "let-alist",
     "treepy"
    ],
-   "commit": "03d2546614619f42ac2983e79d0069ca4cbcfbfc",
-   "sha256": "0j0j86cbv87i2wfcvcyjb53wdzd003770krlnpx0gjkq036vvkwk"
+   "commit": "942e7bdabc4b938a0535530c26eb6548504fca24",
+   "sha256": "07iy4203ppvzkh67sb0v968hnypnvy4dpfy0qpqrp8zmc455dxq5"
   },
   "stable": {
    "version": [
     3,
-    3,
-    0
+    4,
+    1
    ],
    "deps": [
     "let-alist",
     "treepy"
    ],
-   "commit": "eec071aa9e2810c8ce2f2522e6be8d78f579069d",
-   "sha256": "1229g0d9f4ywwjndx32x4z5jdr0kzyi44hjxmy0sifwfmg9nn251"
+   "commit": "942e7bdabc4b938a0535530c26eb6548504fca24",
+   "sha256": "07iy4203ppvzkh67sb0v968hnypnvy4dpfy0qpqrp8zmc455dxq5"
   }
  },
  {
@@ -37807,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": [
@@ -37861,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"
   }
  },
  {
@@ -37928,16 +38856,16 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20200207,
-    1819
+    20200701,
+    2112
    ],
    "deps": [
     "dash",
     "transient",
     "with-editor"
    ],
-   "commit": "8de6ecf5c5c840f8a964c3e5bd4d7a1aedf04e10",
-   "sha256": "0fwaasr7g4qj9l8dxcy1228p2rpb2xy16w2g27gqdzyd6a5sc2jw"
+   "commit": "321214c3a2dd10fdf672ba96bd00703a51094bbe",
+   "sha256": "152i5kvkx8hsy9qlhalhjc4sf6ly3rlfymb8daygj428363xx25n"
   },
   "stable": {
    "version": [
@@ -38135,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": [
@@ -38208,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"
   }
  },
  {
@@ -38319,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": [
@@ -38576,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"
   }
  },
  {
@@ -38673,8 +39610,8 @@
     "ghub",
     "s"
    ],
-   "commit": "50c6bcc7cf4d7193577b3f74eea4dd72f2b7795b",
-   "sha256": "0khsxsqzx81y5krj06i8v84qsb3z86b1z17knyr1xizrd2lmraqp"
+   "commit": "fab440aeae4fbf6a8192fd11795052e9eb5d27d1",
+   "sha256": "19kk55r0qixmvw1q80x3rnvcssrq64k5b5ixp8wjzpg6h65s9vk9"
   }
  },
  {
@@ -38887,6 +39824,38 @@
   }
  },
  {
+  "ename": "gitlab-snip-helm",
+  "commit": "d73cc8f3490f5e56bc0fda1b7e680d21839f4c98",
+  "sha256": "0hv0m9lh105f18d4jhc5i68nhv5hxlv4264mkza4cwq07amxlhw2",
+  "fetcher": "gitlab",
+  "repo": "sasanidas/gitlab-snip-helm",
+  "unstable": {
+   "version": [
+    20200427,
+    2014
+   ],
+   "deps": [
+    "dash",
+    "helm"
+   ],
+   "commit": "782df679e33646db29e07508311bc8e8624b484e",
+   "sha256": "1mxkcnjgazc1pyjbqqfnhc9phpyrgah960avm2fmi7m9n5v8cf0w"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    2
+   ],
+   "deps": [
+    "dash",
+    "helm"
+   ],
+   "commit": "5fe0a66642da6f4e7ba9e1e3a96572c7f1876e37",
+   "sha256": "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"
+  }
+ },
+ {
   "ename": "gitolite-clone",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "0mv2bdfqqq47wgikkm5kwpr8gajylf1yzk2j6cxljz09amgq6c8q",
@@ -38989,11 +39958,11 @@
   "url": "https://git.launchpad.net/global-tags.el",
   "unstable": {
    "version": [
-    20191104,
-    1328
+    20200520,
+    1816
    ],
-   "commit": "8ac8790790d833e2979103f7f5a14b37382ff323",
-   "sha256": "05swwpslvy3c7yv7v5g6q4s82ff623lpbdkasmq3q8jhmbjsx92k"
+   "commit": "f3c93828ab08895bf7eac8a2d3bfd949303a6d1f",
+   "sha256": "1ar9pgc31mfv2x26qpvsmiv2lnczfjliplnzjxnrmiccqiabp1y8"
   }
  },
  {
@@ -39004,11 +39973,11 @@
   "repo": "jimhourihan/glsl-mode",
   "unstable": {
    "version": [
-    20200420,
-    1839
+    20200501,
+    2304
    ],
-   "commit": "9bf168017eb3af7a396165a79a7b870572d59666",
-   "sha256": "13k4am1bk20b6pncg145g4p9abw42ksgaj0zq2bz7b4b8pnfdzp0"
+   "commit": "b07112016436d9634cd4ef747f9af6b01366d136",
+   "sha256": "0bav9ipfm0vy26n74ngsmjzc7fsyqz6xmriadzx55s44h8p5dn1s"
   }
  },
  {
@@ -39298,6 +40267,48 @@
   }
  },
  {
+  "ename": "gnus-notes",
+  "commit": "971db65c22e975ef52ca964e7d468d2f65ad81ea",
+  "sha256": "0xvkkmgqhib1fx8dbzv1iz03y67z504b312n2k1rfwl7rgggjc8k",
+  "fetcher": "github",
+  "repo": "deusmax/gnus-notes",
+  "unstable": {
+   "version": [
+    20200605,
+    1421
+   ],
+   "deps": [
+    "async",
+    "bbdb",
+    "helm",
+    "hydra",
+    "lv",
+    "org",
+    "s"
+   ],
+   "commit": "2b587ac2e428fe3805443df5306e67d78bdf8ec2",
+   "sha256": "0r08dhc6w2zk8is738qd6rkpq03n1fnfr398lsqgn2jaizgsik0l"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    2
+   ],
+   "deps": [
+    "async",
+    "bbdb",
+    "helm",
+    "hydra",
+    "lv",
+    "org",
+    "s"
+   ],
+   "commit": "56403ee22242fd479c2aff85f4cf4133e32ca90a",
+   "sha256": "0g26ygcmbcmxbafvyw04xcqzg2dlava2rqa5m2lv0cxyi6rnvdhj"
+  }
+ },
+ {
   "ename": "gnus-recent",
   "commit": "0b80d94cf1a8b8e2d4da5d45f65231aa4884a3a0",
   "sha256": "14xac6bmn61bk0h6dby14111iijz0j254v4mh77lf0ydbz6wxjf1",
@@ -39305,20 +40316,20 @@
   "repo": "unhammer/gnus-recent",
   "unstable": {
    "version": [
-    20190423,
-    1146
+    20200513,
+    1038
    ],
-   "commit": "d9375cfad0054a05c910c1210f0f37aa601aebba",
-   "sha256": "19ggfisfxq2bk62axdi0nipwxymrvnnvmijcrwc9yglbnhiigdb5"
+   "commit": "a7b131c5acd10df2949ef4f799af08ded013bc35",
+   "sha256": "0cx0764ksxmjnryjwya3h49r1c5npyipxv16amad1lyysm4a8q0a"
   },
   "stable": {
    "version": [
     0,
-    2,
+    3,
     0
    ],
-   "commit": "df85e5810c02f613bfa6e236674de969d6e00ae1",
-   "sha256": "0hvsp9y0vzcr9c2wglh0wdavjmp2n2hbhlsr1bfvnfxk97ka0y5r"
+   "commit": "a7b131c5acd10df2949ef4f799af08ded013bc35",
+   "sha256": "0cx0764ksxmjnryjwya3h49r1c5npyipxv16amad1lyysm4a8q0a"
   }
  },
  {
@@ -39487,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": [
@@ -39561,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"
   }
  },
  {
@@ -39637,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",
@@ -39820,6 +40846,21 @@
   }
  },
  {
+  "ename": "go-noisegate",
+  "commit": "1a033cf87c7d53ed8e3af1ac3a5b9b1bac035559",
+  "sha256": "0hpslf7q4jqbfkr17kb6phc0dbdvqcm9wynzj4fsji7c1cq0z5xh",
+  "fetcher": "github",
+  "repo": "go-noisegate/go-noisegate.el",
+  "unstable": {
+   "version": [
+    20200502,
+    703
+   ],
+   "commit": "e3fc198c234131c94f7d307b7f7c6ef623fb93b7",
+   "sha256": "12b4l3sl1pykz7v73vsjsicbqpmylsmwhlyprpiimc0r1is5km3m"
+  }
+ },
+ {
   "ename": "go-playground",
   "commit": "900aabb7bc2350698f8740d72a5fad69c9219c33",
   "sha256": "1rabwc80qwkafq833m6a199zfiwwmf0hha89721gc7i0myk9pac6",
@@ -39827,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"
   }
  },
  {
@@ -39883,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"
   }
  },
  {
@@ -40043,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"
   }
  },
  {
@@ -40147,14 +41188,14 @@
   "repo": "stardiviner/goldendict.el",
   "unstable": {
    "version": [
-    20180121,
-    920
+    20200731,
+    1119
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "1aac19daaec811deb9afe45eea4929309c09ac8b",
-   "sha256": "1il432f6ayj2whl4s804n5wykgs51jhbx4xkcbfgqra58cbjrjhi"
+   "commit": "ad5212f6ade58c193287851a46c3f9378fe2f059",
+   "sha256": "0lgdrrch9rn23jd90rpcs5zxrv279ds3g9rzq5whl19410dbjamm"
   }
  },
  {
@@ -40231,8 +41272,8 @@
     20180130,
     1736
    ],
-   "commit": "43f20c361143beba2e0f3f737597f2f1f8725160",
-   "sha256": "0md3y2vr113sdgyf5q692fzif10bl0is96ly2hfgh6z27awb76l6"
+   "commit": "25e977d641fc204a38263a2272f92307c545121b",
+   "sha256": "1dgna85s3gwb0a2504min4ch0xih4ygnv8ia2jvx3wyxgn436z1x"
   }
  },
  {
@@ -40309,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"
   }
  },
  {
@@ -40441,17 +41482,17 @@
  },
  {
   "ename": "gotham-theme",
-  "commit": "4b388de872be397864a1217a330ba80437c287c0",
-  "sha256": "0jars6rvf7hkyf71vq06mqki1r840i1dvv43dissqjg5i4lr79cl",
-  "fetcher": "github",
-  "repo": "wasamasa/gotham-theme",
+  "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+  "sha256": "17nkg3ac8ckk5sa722nqinzhln8nb96yppjyp0567cc8p9a3bp59",
+  "fetcher": "git",
+  "url": "https://depp.brause.cc/gotham-theme.git",
   "unstable": {
    "version": [
-    20191022,
-    1809
+    20200506,
+    1250
    ],
-   "commit": "02a7c7cd280747737792f4620b0df2e0b826e2c7",
-   "sha256": "017ibhznkyla2c3qymv3mlcd25svx8c55vavsb4apwzw061n8m79"
+   "commit": "0e5965f897c8c976d6b2ca2471dec0dec9b29bbb",
+   "sha256": "0cvrb23p1m83kd6p5ah04pgzc5gic7q88gnnad9p8d0a7ajh2vbi"
   },
   "stable": {
    "version": [
@@ -40471,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"
   }
  },
  {
@@ -40495,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": [
@@ -40561,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"
   }
  },
  {
@@ -40594,14 +41635,14 @@
     "magit-popup",
     "s"
    ],
-   "commit": "3decde69e9aa0bcc8a831e3f87acae26c2151c4a",
-   "sha256": "1zvnhcbqqiv8671x3zizrpm789ci8z74xb6qr2ik6h4z79agmri8"
+   "commit": "609218c5232673cec215d088eb01d043120de385",
+   "sha256": "0wg2sn5zfcsdnv6ymy0a13px7j6pkgmdd9dpss98l70xf3b6g590"
   },
   "stable": {
    "version": [
     0,
-    22,
-    2
+    23,
+    1
    ],
    "deps": [
     "dash",
@@ -40609,8 +41650,8 @@
     "magit-popup",
     "s"
    ],
-   "commit": "e7df0c1118c15c0b35fe08f183ca084269ea6542",
-   "sha256": "0lm1jaw5bpz7z4gibbbhswjr7qdhxkgbawr5bnykprsmp663i3nm"
+   "commit": "cfbe1d59b449be9b5378251bc6e52c65bc5e1cbd",
+   "sha256": "05f6i7v8v9g3w3cmz8c952djl652mj6qcwjx9iyl23h6knd1d9b1"
   }
  },
  {
@@ -40660,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"
   }
  },
  {
@@ -40742,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"
   }
  },
  {
@@ -40769,8 +41810,8 @@
     20160504,
     911
    ],
-   "commit": "cafdd98e06a3bbff213f3ccb163de2c42d412b66",
-   "sha256": "07809alyxind4n0rb1h3x19hgq7ihpn128xljlz38d9xvp0r48z3"
+   "commit": "26da902d1158c0312628d57578109be54eca2415",
+   "sha256": "113s9znqrdi9zm045hi3ws5ixrd0bzxfy3wr8lzxq9r3jbv67iz2"
   },
   "stable": {
    "version": [
@@ -40821,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"
   }
  },
  {
@@ -41101,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"
   }
  },
  {
@@ -41187,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",
@@ -41241,11 +42248,11 @@
   "repo": "seagle0128/grip-mode",
   "unstable": {
    "version": [
-    20200312,
-    1136
+    20200725,
+    725
    ],
-   "commit": "9615c4774727a719d38313a679d70f2a2c6aca68",
-   "sha256": "01imyi1l33ng78m6c5g4pma5gy4j7jy7dwmqwsqgwbws08qdbwgr"
+   "commit": "281ada2c93bac7043c6f665fac065a17d4247bdc",
+   "sha256": "14gsmxpp8znk2w2yszdpwb8dx0hxbpy2rjr7rshs3bvqjib8rzyp"
   },
   "stable": {
    "version": [
@@ -41330,8 +42337,8 @@
     "dash",
     "s"
    ],
-   "commit": "cafdd98e06a3bbff213f3ccb163de2c42d412b66",
-   "sha256": "07809alyxind4n0rb1h3x19hgq7ihpn128xljlz38d9xvp0r48z3"
+   "commit": "26da902d1158c0312628d57578109be54eca2415",
+   "sha256": "113s9znqrdi9zm045hi3ws5ixrd0bzxfy3wr8lzxq9r3jbv67iz2"
   },
   "stable": {
    "version": [
@@ -41369,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",
@@ -41408,14 +42439,14 @@
   "repo": "greduan/emacs-theme-gruvbox",
   "unstable": {
    "version": [
-    20200307,
-    1522
+    20200807,
+    855
    ],
    "deps": [
     "autothemer"
    ],
-   "commit": "647796a42951a807ee1694a648442b3d83057e43",
-   "sha256": "0j0w6g0pr1p90wjyrwl21y0hlvjms8ba4yw90sd89lnzn7ncscm8"
+   "commit": "746a5f36cf4ff3959f2d007598d5cb248cfc1879",
+   "sha256": "1j66ffg1xl37nggckm38fmapxm0v7bycvpggxdx0s8q7hqlikk9f"
   },
   "stable": {
    "version": [
@@ -41550,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"
   }
  },
  {
@@ -41632,8 +42663,8 @@
   "repo": "alezost/guix.el",
   "unstable": {
    "version": [
-    20200219,
-    1821
+    20200730,
+    930
    ],
    "deps": [
     "bui",
@@ -41642,8 +42673,8 @@
     "geiser",
     "magit-popup"
    ],
-   "commit": "3b5990618e70494aa89ff18c58ff24f369005323",
-   "sha256": "1w5dhacl451cbi8s6y49dcgzkxyai9ggrkpkf16kpmgwf7j0rapk"
+   "commit": "58a840d0671091e3064e36244790ef8839da87d6",
+   "sha256": "1qnr5sixmvrhr9rinrhfy7sy20mikjvvwbdixwkbx30qpcdwgwj1"
   },
   "stable": {
    "version": [
@@ -41685,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"
   }
  },
  {
@@ -41809,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": [
@@ -41862,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"
   }
  },
  {
@@ -42260,11 +43288,11 @@
   "repo": "haskell/haskell-mode",
   "unstable": {
    "version": [
-    20200408,
-    247
+    20200531,
+    2255
    ],
-   "commit": "bbdbc0e9231f49a45ce787ebfb3f2b019615bf61",
-   "sha256": "0qln2zc4zx8w4ffplp6b17sksg578x61hyvwv1l79pc8bmpgn0ww"
+   "commit": "41683c0e634bb3f54eac8747919a82132e1714fe",
+   "sha256": "1fxj11in90xvpbqhxx5c3qynkd8yfainpbf8cvdh3gdgpifrc0gg"
   },
   "stable": {
    "version": [
@@ -42314,19 +43342,19 @@
   "url": "https://git.spwhitton.name/haskell-tab-indent",
   "unstable": {
    "version": [
-    20170701,
-    958
+    20200513,
+    1950
    ],
-   "commit": "b921c076c10ba996bcfb3b38654363d30567bfa5",
-   "sha256": "046wiccc4kg81jcqmxzxh5karfbdg2z1d8i4nzcbz7q3n27x0l5f"
+   "commit": "3239e814d6999f31ad845cc58df53395ad299059",
+   "sha256": "0319nr4l56p0d2gpybkc2lkkhwi6qmf2gjpgpajpcz11ms9m8x5z"
   },
   "stable": {
    "version": [
     0,
-    2
+    3
    ],
-   "commit": "6d3b878765b9ef7a4b2c1f5dfd47309d4ab7c419",
-   "sha256": "07pcn244alqaiqwj9a5jcyh4hp5n71bsnhpilqy3xv0sn6ci1v2q"
+   "commit": "1127f46eca40a48be9cd2380df2cfc5f0b694e63",
+   "sha256": "13c2z1i7icpwv60njn83qbla9i0qlq3m0yz88ach1mlvmsdfj9jz"
   }
  },
  {
@@ -42535,8 +43563,8 @@
     20200315,
     2129
    ],
-   "commit": "c3d1158ad1a64f06aa8986ab1cdea6b7fbdd4bf7",
-   "sha256": "0qza5pgpzcabik3592dk25glsv9zcg84pn1jzm43f9b1j9w5iv4i"
+   "commit": "e12b1df2ca28d2b06c471cd709c038a2dc0bcdbd",
+   "sha256": "05j97g2l4rdx35a435xpdpq1ixgf9j94828fx4yhh4g60fjwwb82"
   },
   "stable": {
    "version": [
@@ -42594,30 +43622,30 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20200426,
-    534
+    20200818,
+    742
    ],
    "deps": [
     "async",
     "helm-core",
     "popup"
    ],
-   "commit": "3fddd8c425c918074a4bda9982ce90c29e45adbd",
-   "sha256": "1vhdiwvv2s9gw6mh4dr1blqlyy1k0cvm4wx833cwzgdg5iakan1f"
+   "commit": "e9a1e53c57478389343ee23ebb962c8b9b4b4bba",
+   "sha256": "1vw6qcpz71sb6xhjzlikr4l1q23sfbphlza4x4ma0gc7mfzyqfh0"
   },
   "stable": {
    "version": [
     3,
     6,
-    1
+    4
    ],
    "deps": [
     "async",
     "helm-core",
     "popup"
    ],
-   "commit": "55281e1390bae54310dc880ae3805e0595d5c1bd",
-   "sha256": "1sghq7xjd4a9ysh3cywd5rss9y47rwk82y86cwh1g7p0jv89gqaf"
+   "commit": "a3343a370975d9c01df4f1ff42875cc32ae89592",
+   "sha256": "0cl5awhq5py872qx9s30sfgfpfwjivwbsi18mgar8lj6lvs4s8zz"
   }
  },
  {
@@ -42717,25 +43745,25 @@
   "repo": "emacsorphanage/helm-ag",
   "unstable": {
    "version": [
-    20200426,
-    1427
+    20200811,
+    1304
    ],
    "deps": [
     "helm"
    ],
-   "commit": "6387437acf687a64af66138649f8604d65eb6789",
-   "sha256": "177grx9flqg6d9vcl2ln7gflvh3r2in8va39sgd7a4vl6qn2w1lh"
+   "commit": "4ee2174c4e27e02c75a487a235de4d80c663aa08",
+   "sha256": "1sc9ksfb3s5p5kqriz5402r785fklw3ykz8fb107xykl9kdjnzy3"
   },
   "stable": {
    "version": [
     0,
-    59
+    62
    ],
    "deps": [
     "helm"
    ],
-   "commit": "79373d7f1616d175a5e0730e1e0c3855f04bd945",
-   "sha256": "0vsz2b5qw4qahlf74059z4p1grinhfz28f0psw4c3qf4jasv3b9j"
+   "commit": "08aaab53b8876caba619f956945a8152ece47182",
+   "sha256": "0xgbpp8xqdiyvfs64x0q909g77ml28z3irw2lnasvpsg0dfdm2zy"
   }
  },
  {
@@ -42757,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",
@@ -42861,16 +43907,16 @@
   "repo": "tmalsburg/helm-bibtex",
   "unstable": {
    "version": [
-    20200415,
-    1311
+    20200429,
+    1606
    ],
    "deps": [
     "bibtex-completion",
     "cl-lib",
     "helm"
    ],
-   "commit": "1e5b50652d1f5189cfeb6b5ce3c4437e0239d4f5",
-   "sha256": "05xl3x98w4cr81zp04dcqy5xnims8x3k77qxzddcqcrvi9zjlfc7"
+   "commit": "8a0dd9841316793aacddea744d6b8ca4a7857a35",
+   "sha256": "1av058d7888kr3q15y1122r8jkarfw1s83gvkillj7kyzj3i53m5"
   },
   "stable": {
    "version": [
@@ -43111,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": [
@@ -43476,26 +44521,26 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20200424,
-    607
+    20200803,
+    1032
    ],
    "deps": [
     "async"
    ],
-   "commit": "3fddd8c425c918074a4bda9982ce90c29e45adbd",
-   "sha256": "1vhdiwvv2s9gw6mh4dr1blqlyy1k0cvm4wx833cwzgdg5iakan1f"
+   "commit": "e9a1e53c57478389343ee23ebb962c8b9b4b4bba",
+   "sha256": "1vw6qcpz71sb6xhjzlikr4l1q23sfbphlza4x4ma0gc7mfzyqfh0"
   },
   "stable": {
    "version": [
     3,
     6,
-    1
+    4
    ],
    "deps": [
     "async"
    ],
-   "commit": "55281e1390bae54310dc880ae3805e0595d5c1bd",
-   "sha256": "1sghq7xjd4a9ysh3cywd5rss9y47rwk82y86cwh1g7p0jv89gqaf"
+   "commit": "a3343a370975d9c01df4f1ff42875cc32ae89592",
+   "sha256": "0cl5awhq5py872qx9s30sfgfpfwjivwbsi18mgar8lj6lvs4s8zz"
   }
  },
  {
@@ -43572,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,
@@ -43732,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,
@@ -43910,15 +44955,15 @@
   "repo": "xueeinstein/helm-evil-markers",
   "unstable": {
    "version": [
-    20190719,
-    539
+    20200506,
+    715
    ],
    "deps": [
     "evil",
     "helm"
    ],
-   "commit": "bb04e3a25920c2fd676132703970c6879dade802",
-   "sha256": "1g944dv3ak064kxkbl30q1kaap0nzyh2v3klhyxmj8f6jc9x2wh8"
+   "commit": "0245f0c268e0eaec85df51ab2deba7ac961f6770",
+   "sha256": "0b1db6x2hz9rixchn9qfp2ak27a2vbz2l4g0fd7mys5c0llbwj1r"
   },
   "stable": {
    "version": [
@@ -43973,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": [
@@ -44071,8 +45116,20 @@
    "deps": [
     "helm"
    ],
-   "commit": "6ab26c5fb414a0c1232974fd3f888839b6844203",
-   "sha256": "0lsrcn03f4981762l2rq25ps1f2ka86q125jkh6nq7wzfb7pj71f"
+   "commit": "d7e0c1814299fc0e345e159f02733cee5277716e",
+   "sha256": "07767jm0wqnn4qavnvnsf6wzfsvsk5bfba2sm16l5036sj4dyjxn"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    4
+   ],
+   "deps": [
+    "helm"
+   ],
+   "commit": "52dbc68cf7484d66c40593733770c0c61b383ef0",
+   "sha256": "1xrq5481mri9nfdwkn14zjq1zgl31w6aywca6sr1by5cqggqrqr1"
   }
  },
  {
@@ -44102,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": [
@@ -44133,27 +45190,27 @@
   "repo": "emacs-helm/helm-fish-completion",
   "unstable": {
    "version": [
-    20191230,
-    1717
+    20200622,
+    1255
    ],
    "deps": [
     "fish-completion",
     "helm"
    ],
-   "commit": "b579193c9eca37e45ac54b66114032e9fb78aa69",
-   "sha256": "1aydd2f0xmyrkl9hhxcrgzgrpl2qna1krzgaprw0y7gcvg0p09b4"
+   "commit": "f055dab2f14462ff130841d4ab421f34baab39d5",
+   "sha256": "0hpsm39kx8vpz2zmarjrkvy1capkk5lwpsmdg2xnklsck6xsn922"
   },
   "stable": {
    "version": [
     0,
-    2
+    5
    ],
    "deps": [
     "fish-completion",
     "helm"
    ],
-   "commit": "dff0fdfdbf70ad41fa2da031197836a84384e635",
-   "sha256": "089gp2k22xwn33z8brpyb7r18vpyralq2cwxj1xsc8b2sj9s4896"
+   "commit": "f055dab2f14462ff130841d4ab421f34baab39d5",
+   "sha256": "0hpsm39kx8vpz2zmarjrkvy1capkk5lwpsmdg2xnklsck6xsn922"
   }
  },
  {
@@ -44267,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": [
@@ -44324,6 +45381,19 @@
     "flx",
     "helm"
    ],
+   "commit": "152d54bcd7137e4f5df54cf213e578c9d71864bd",
+   "sha256": "1msnagb1mxxi9c64j54j9r95l98jha2n6qdgs236b953lz8d9wwf"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    5
+   ],
+   "deps": [
+    "flx",
+    "helm"
+   ],
    "commit": "fc080a0b4be8a68944a64bc4fb5b38cd11a70bc7",
    "sha256": "01632zrpl69b034srgsfidf62r1kwc8f4z8i48kz95g5n2ax1xk9"
   }
@@ -44638,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"
   }
  },
  {
@@ -44674,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"
   }
  },
  {
@@ -44815,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",
@@ -45038,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"
   }
  },
  {
@@ -45114,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": [
@@ -45193,16 +46295,29 @@
   "repo": "emacs-lsp/helm-lsp",
   "unstable": {
    "version": [
-    20200420,
-    1546
+    20200808,
+    713
    ],
    "deps": [
     "dash",
     "helm",
     "lsp-mode"
    ],
-   "commit": "db243993ea70be6343949759b4f2c556d9130751",
-   "sha256": "0yaik74g61iyrg9inarl7s9r6vnj75q5vxzxc5bkl224w49hf5bh"
+   "commit": "4263c967267b0579956b3b12ef32878a9ea80d97",
+   "sha256": "1j0w6391ivw7gyx03vmmhccj25d5p94dnbblhd6vxl8d22azdfq3"
+  },
+  "stable": {
+   "version": [
+    0,
+    2
+   ],
+   "deps": [
+    "dash",
+    "helm",
+    "lsp-mode"
+   ],
+   "commit": "5c960e7800dc8f4432f3a1466a637d484b87dc35",
+   "sha256": "1vq3qpqm3ndqyvf5bk8qhqcr60x9ykc0ipk2a43rr3yjm4z1b6s9"
   }
  },
  {
@@ -45247,11 +46362,11 @@
   "repo": "abo-abo/helm-make",
   "unstable": {
    "version": [
-    20200228,
-    1742
+    20200620,
+    27
    ],
-   "commit": "a52b3a34ade00e695a412bc0c5873d4f4d22c323",
-   "sha256": "1jqihwh24f190zsc3a2xc7ja6j6q3nl742a0m9d6fiw28aijg34f"
+   "commit": "ebd71e85046d59b37f6a96535e01993b6962c559",
+   "sha256": "14jvhhw4chl94dgfwbyy7yirwchvcz5zrsgr9w6qy4z0fhqba41a"
   },
   "stable": {
    "version": [
@@ -45436,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,
@@ -45533,8 +46648,8 @@
   "repo": "akirak/org-multi-wiki",
   "unstable": {
    "version": [
-    20200419,
-    1833
+    20200505,
+    1053
    ],
    "deps": [
     "dash",
@@ -45543,8 +46658,8 @@
     "org-multi-wiki",
     "org-ql"
    ],
-   "commit": "aef5975ac18d7cb101c0fb688333cc241782a8a0",
-   "sha256": "1m3p839wkrvf7n2467czj03rljv43bk32p7vlzdp5zby22bn7nag"
+   "commit": "2541e1b0798a1c9d4b4b8778e6c97a579ac3fa14",
+   "sha256": "1mcpbq1qylkxpd6nzq04jrji6p1xll5a30dc7dpxpcjrkgvbzf39"
   },
   "stable": {
    "version": [
@@ -45563,14 +46678,14 @@
  },
  {
   "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": [
-    20190809,
-    1831
+    20200512,
+    1943
    ],
    "deps": [
     "dash",
@@ -45578,14 +46693,14 @@
     "helm",
     "s"
    ],
-   "commit": "abc14bb85427a6585aa354894eaef6926881d585",
-   "sha256": "1ggj84b8wgd8xj6a442wfccvyaqg605zpikx19vqzwymaqbay85f"
+   "commit": "263f56d70112f5d0496684c89a2aa07959e0a95f",
+   "sha256": "0pm6va26kadjvbai4qsnjc2bk379w2nk6h3b5f0c2yv3q5na0p49"
   },
   "stable": {
    "version": [
     1,
     7,
-    0
+    1
    ],
    "deps": [
     "dash",
@@ -45593,8 +46708,8 @@
     "helm",
     "s"
    ],
-   "commit": "dbda48031bad6fec1e130ee6e0d1a3bfea8ad8b8",
-   "sha256": "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"
+   "commit": "263f56d70112f5d0496684c89a2aa07959e0a95f",
+   "sha256": "0pm6va26kadjvbai4qsnjc2bk379w2nk6h3b5f0c2yv3q5na0p49"
   }
  },
  {
@@ -45800,15 +46915,15 @@
   "repo": "tumashu/helm-posframe",
   "unstable": {
    "version": [
-    20200118,
-    2302
+    20200512,
+    1146
    ],
    "deps": [
     "helm",
     "posframe"
    ],
-   "commit": "7970f9397ba7d148e590e4ffb340bf6c7c0602fc",
-   "sha256": "0106fsdzp3911spylrixqkgpnjnfg491f0rmbqmn4hc1shnc2sbk"
+   "commit": "b107e64eedef6292c49d590f30d320c29b64190b",
+   "sha256": "09y98ij4wkqh771ahwi3b7nsg6yb2b69n94v3ad41kp4q0c2rscd"
   }
  },
  {
@@ -45881,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"
   }
  },
  {
@@ -46143,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": [
@@ -46172,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": [
@@ -46280,8 +47394,8 @@
     "helm",
     "rtags"
    ],
-   "commit": "a42298e80dffae9a6b2e9816506174542f3cbbb7",
-   "sha256": "1674752bbyb7890na5p846dxcvh83zn0a6z19wras1x5c59s24i3"
+   "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+   "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
   },
   "stable": {
    "version": [
@@ -46366,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,
@@ -46418,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",
@@ -46629,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"
   }
  },
  {
@@ -46649,26 +47791,26 @@
   "repo": "emacsorphanage/helm-swoop",
   "unstable": {
    "version": [
-    20200321,
-    231
+    20200814,
+    448
    ],
    "deps": [
     "helm"
    ],
-   "commit": "069dc0b3970f1e796e34b7789ae51b1b7979ee30",
-   "sha256": "1jf1573r8v4mda1xiszrz51qarb1ii31cyk0v3ci16bi9dpp8swb"
+   "commit": "1f7d3cf0d742b199e4ce13fcb8b19c977a44611e",
+   "sha256": "1r03d3ivmi0r5knsrlfx2cq5jljjl36h2l5n0mbs3sc6iad9wz20"
   },
   "stable": {
    "version": [
-    2,
+    3,
     0,
     0
    ],
    "deps": [
     "helm"
    ],
-   "commit": "c5ec1f3acfb07155273c2de021f3521e198e4a9d",
-   "sha256": "0k0ns92g45x8dbymqpl6ylk5mj3wiw2h03f48q5cy1z8in0c4rjd"
+   "commit": "533dcd14198b61fd2fbf8c6f286f65feae5b6bd2",
+   "sha256": "1qjay0fvryxa8n1ws6r1by512p2fylb2nj7ycm1497fcalb0d706"
   }
  },
  {
@@ -46679,15 +47821,15 @@
   "repo": "emacs-helm/helm-system-packages",
   "unstable": {
    "version": [
-    20190809,
-    1508
+    20200502,
+    751
    ],
    "deps": [
     "helm",
     "seq"
    ],
-   "commit": "427c40d18ae1b5593df6bef72aa1d62ce89fc652",
-   "sha256": "0msil7niva1fy1lw5h7jwzfn398c5msml4vshplz13ry1ip33vih"
+   "commit": "d6ad2f682d744048ea0ac47c470be5a159a6541b",
+   "sha256": "01zsl1g8r3rkgwpdphgmbljjnrhk6mmk2rjqhykjk5f3bdk02rwk"
   },
   "stable": {
    "version": [
@@ -46813,8 +47955,8 @@
    "deps": [
     "helm"
    ],
-   "commit": "924b5516270b3933e847562e8e14e3888dd24184",
-   "sha256": "19y97ia4zl50wd22gkb7kkhj713imd5jc92l2xnpw04b59b60di1"
+   "commit": "55e56975fe1456591a293bf60c183c3dda9f788f",
+   "sha256": "0py1k0r15frj67mazfjkdwi8sx5a51ykrrbzvfb73kakq2f55jap"
   },
   "stable": {
    "version": [
@@ -46925,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",
@@ -47001,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,
@@ -47080,8 +48240,8 @@
   "repo": "Wilfred/helpful",
   "unstable": {
    "version": [
-    20200111,
-    2324
+    20200506,
+    816
    ],
    "deps": [
     "dash",
@@ -47090,8 +48250,8 @@
     "f",
     "s"
    ],
-   "commit": "c54e9ddbd6a77858048c1a4c4b549de98af8f88e",
-   "sha256": "0x339wxhwma1i27j52wnbhc541633dxqmx1wyxg3yp78aciyrfhv"
+   "commit": "c0662aa07266fe204f4e6d72ccaa6af089400556",
+   "sha256": "1k61k7hhrfi8rzsniy15almvnvdsv85l7bmlaqs695pvanr5zlgh"
   },
   "stable": {
    "version": [
@@ -47170,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",
@@ -47504,11 +48649,11 @@
   "repo": "Lindydancer/highlight-doxygen",
   "unstable": {
    "version": [
-    20180829,
-    1818
+    20200520,
+    1713
    ],
-   "commit": "53f2250018725fa19548e1771ee79fcc23641694",
-   "sha256": "0l6zh5cmp771h30i16bv3qvcq40pz9fxn3j7a8yx708vanb4d7kc"
+   "commit": "eec4874e2e89d4eb39091aad89a67dff8f8ec84c",
+   "sha256": "0r3rv1px43r265716l3g20c1ss4381h1mc1kjxin22vdmrj6cmxy"
   }
  },
  {
@@ -47549,11 +48694,11 @@
   "repo": "DarthFennec/highlight-indent-guides",
   "unstable": {
    "version": [
-    20200412,
-    2328
+    20200528,
+    2128
    ],
-   "commit": "1b12c7b440ff988c7237936187c1375ac4ddc7f4",
-   "sha256": "03dpwklrwbkminfds8v129w0i47p5mkwdyhlhv05a22xnmlanyrs"
+   "commit": "a4f771418e4eed1f3f7879a43af28cf97747d41c",
+   "sha256": "0zwp7kh10b0gxwp6128am94fwc5lmn73qar13qzyh3r1jsc8f95y"
   }
  },
  {
@@ -47793,10 +48938,10 @@
  },
  {
   "ename": "hindent",
-  "commit": "9a15a17a5aa78aed72958b2a1bde53f0c0ab5be7",
-  "sha256": "0az2zhdi73sa3h1q1c0bayqdk22a7ngrvsg9fr8b0i39sn3w8y07",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "1f3vzgnqigwbwvglxv0ziz3kyp5dxjraw3vlghkpw39f57mky4xz",
   "fetcher": "github",
-  "repo": "commercialhaskell/hindent",
+  "repo": "chrisdone/hindent",
   "unstable": {
    "version": [
     20180518,
@@ -47805,8 +48950,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "1583be4a8a01b765841f7306284528ae713abb7b",
-   "sha256": "1l8v3vq3yw7zr1yxyscfw8lggcf0klnyszhv18505c6myybp2dkp"
+   "commit": "50242bb64e946555defc9fff11ab32bcb05300b6",
+   "sha256": "0k062mswihnpl1h7r0w37siv57fi5k90956ji2vix9r9qc33zsxc"
   },
   "stable": {
    "version": [
@@ -48026,14 +49171,14 @@
   "repo": "laishulu/hl-fill-column",
   "unstable": {
    "version": [
-    20200404,
-    306
+    20200607,
+    757
    ],
    "deps": [
     "names"
    ],
-   "commit": "43cb3c35a92c912b7205b8a36f1ad0ec0a5b4a22",
-   "sha256": "0pf1hk21xbahccw1cdz95haqvhrf50cwg32qa36v9nammd37752z"
+   "commit": "5782a91ba0182c4e562fa0db6379ff9dd472856b",
+   "sha256": "0sfki2844yjlvnjlaia0n46af3c5y1bi74x91icwxccqwlkyg8jg"
   }
  },
  {
@@ -48084,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"
   }
  },
  {
@@ -48149,8 +49294,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "f17360fe93de6df99a05b4b64b0a1ca4ee45abb6",
-   "sha256": "01sfba4sd3mjc7bs1y4qdzryfawg1xzg3hbwy9afwfaz0w5czni8"
+   "commit": "5646d9c0b9e7598b20b2004eab5439fdc6dbeda5",
+   "sha256": "1w442h5wzxylrbmqn1blpv2pmvyvq7avsk5h8xxsjfqw5580riri"
   }
  },
  {
@@ -48179,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"
   }
  },
  {
@@ -48199,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"
   }
  },
  {
@@ -48359,11 +49504,11 @@
   "repo": "aodhneine/horizon-theme.el",
   "unstable": {
    "version": [
-    20200129,
-    1957
+    20200720,
+    1832
    ],
-   "commit": "5bed6dd5bb9faf7d113b19f61cbca98da6262a3e",
-   "sha256": "0nhx0j3ffd24v9hvwfwwrp3bhx1105g9vwz543hn6yagx63y4vxz"
+   "commit": "9595549c514a9376c61d5d303405f6a6982e9e46",
+   "sha256": "1m7wwf17p7qa6dmm0qykz0qnqz7rxvxhsmn9287y8f6wahzd8yfb"
   }
  },
  {
@@ -48460,16 +49605,16 @@
   "repo": "thanhvg/emacs-howdoyou",
   "unstable": {
    "version": [
-    20191118,
-    2222
+    20200805,
+    1739
    ],
    "deps": [
     "org",
     "promise",
     "request"
    ],
-   "commit": "ef7f42c14f0f4aec475b74d56931daa36aded6c8",
-   "sha256": "1a1wr86z5368zwvlgyp979x1ypz38m2w2qnp5607vjjplcrcmay2"
+   "commit": "6bf4d5964299c5b51a2299869c0402079869343b",
+   "sha256": "0rzyh71w5ccimzy1wm489sj96119bnn86mdfshhyk753h9ldjjgp"
   }
  },
  {
@@ -48636,11 +49781,11 @@
   "repo": "hniksic/emacs-htmlize",
   "unstable": {
    "version": [
-    20191111,
-    2130
+    20200816,
+    746
    ],
-   "commit": "86f22f211e9230857197c42a9823d3f05381deed",
-   "sha256": "0n117rb4d9dydl01b65d09rp8bmkir3m09zs02dhlmqmljpy25w8"
+   "commit": "49205105898ba8993b5253beec55d8bddd820a70",
+   "sha256": "0caw0wwbscfr4a9ynfabrpkvgibf0hlrkwisib82nhcqcaanf962"
   },
   "stable": {
    "version": [
@@ -48850,11 +49995,11 @@
   "repo": "nflath/hungry-delete",
   "unstable": {
    "version": [
-    20200309,
-    209
+    20200807,
+    2257
    ],
-   "commit": "4a341cfa3a19185c5ecb687970e299082e1144e3",
-   "sha256": "1gwksvvizz3kdpfzgwp45l1idjbrn8kz4jf0zx4fva20mh6mjz01"
+   "commit": "671d941de0176255b79820a662d5a694607cf28a",
+   "sha256": "1cnbyixm1dihcvvfqx591qcjcrs963d2swn9rbrwkplm4a5fyxhf"
   },
   "stable": {
    "version": [
@@ -48874,16 +50019,16 @@
   "repo": "hylang/hy-mode",
   "unstable": {
    "version": [
-    20191003,
-    1902
+    20200730,
+    2340
    ],
    "deps": [
     "dash",
     "dash-functional",
     "s"
    ],
-   "commit": "e2d5fecdaec602788aa7123ed13651c888b8d94b",
-   "sha256": "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"
+   "commit": "55e84cadbdb63427a8d531992df3990414a26688",
+   "sha256": "0mrml5cy3isgy5mybxm8mrzqcrxrw4nn9yxchyjakkqzvfjk8gm1"
   },
   "stable": {
    "version": [
@@ -48931,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",
@@ -48985,15 +50145,15 @@
   "repo": "abo-abo/hydra",
   "unstable": {
    "version": [
-    20200306,
-    913
+    20200711,
+    1210
    ],
    "deps": [
     "cl-lib",
     "lv"
    ],
-   "commit": "16fa8d109ec5799931a793b2e866ea9d593bee84",
-   "sha256": "1l6pi5ldmdcgv5qyg3kk1x8sxb639brzbfj0iddy5752hmg08g3h"
+   "commit": "112e689f75b59398d8eca79ac6562dca12b8a959",
+   "sha256": "0famsjgsgd61fm3l5m9mqg4szf8lcgcb57paxlg8rxnsmxmwga7d"
   },
   "stable": {
    "version": [
@@ -49010,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",
@@ -49077,11 +50252,11 @@
   "repo": "mkcms/interactive-align",
   "unstable": {
    "version": [
-    20181202,
-    1146
+    20200711,
+    1117
    ],
-   "commit": "e1308c8f6aea05ad6dbcaa33b9bee4eb7e05ee39",
-   "sha256": "0b7a2z4v1nyyaw0lvql9xrakpsi1a6kflqr74k56ndm3ivmqwx09"
+   "commit": "eca40b8b59ea713dba21b18f5b047a6c086b91dc",
+   "sha256": "1nvj47d62dffgry0dy08m8rz5fqsrn1yhmkmp5jn57fyhbk6nfal"
   },
   "stable": {
    "version": [
@@ -49154,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": [
@@ -49240,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": [
@@ -49262,6 +50437,36 @@
   }
  },
  {
+  "ename": "iceberg-theme",
+  "commit": "dec6f24b215de80a4c12856bd1ad4dc26c33f47e",
+  "sha256": "021v5rpmmk2bym46w9hs5ckyajqv41qf2l2183ybqfc679mkbym8",
+  "fetcher": "github",
+  "repo": "conao3/iceberg-theme.el",
+  "unstable": {
+   "version": [
+    20200812,
+    943
+   ],
+   "deps": [
+    "solarized-theme"
+   ],
+   "commit": "183b41eae07d94d4a8f299306078410bddc41d34",
+   "sha256": "1sxadaip63mhfjvgkax45jlv3c8cnbjnq653qbvw98vb8xsrmjc4"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "deps": [
+    "solarized-theme"
+   ],
+   "commit": "04b8d04c30276a471b37ff93d73409508e88d295",
+   "sha256": "13m6sq3ld8cm28jq7kxmv4ygrvyi7pjh1lsxwzvgaj6ncjqdi87v"
+  }
+ },
+ {
   "ename": "icomplete-vertical",
   "commit": "1a952162da476b4a0f496d9dc15d2d7a8d0964f6",
   "sha256": "10rbsxp3jp8xyzcklpcc2zs0sv4pvvkqb7i96js9cp13nc9a7rgz",
@@ -49269,11 +50474,19 @@
   "repo": "oantolin/icomplete-vertical",
   "unstable": {
    "version": [
-    20200417,
-    1755
+    20200616,
+    2322
    ],
-   "commit": "a2ee9254085431ec9e5c88d522e2c700355003ef",
-   "sha256": "1bqnlvv1gvrjriazvzd3bq98r8ii6fqax0zznhvkl1ij5pf55a90"
+   "commit": "a5871d39c5850ac4d9aac48350eaa1d31f3aaef7",
+   "sha256": "00sp2n8kb38nrkgs11m3jpijj9qnsdmy3sp37c1v6p7lgnzly80i"
+  },
+  "stable": {
+   "version": [
+    0,
+    2
+   ],
+   "commit": "2c328a19f617b538986977a897d3af051ae7f355",
+   "sha256": "1bm02qd71r3j35b861rgbxkv3kcmg2458c70vwfaw9sjjba0ssng"
   }
  },
  {
@@ -49465,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",
@@ -49513,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": [
@@ -49539,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",
@@ -49725,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",
@@ -49901,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"
   }
  },
  {
@@ -49948,11 +51082,11 @@
   "repo": "victorhge/iedit",
   "unstable": {
    "version": [
-    20200412,
-    756
+    20200807,
+    853
    ],
-   "commit": "0fb3d380866664c3ab543acede606d343c257406",
-   "sha256": "0fz3p41j6d6bwk95v626j7w1z4rvbdxms6a4azy9dfncplnbnih0"
+   "commit": "59430e8c11c1fa9a294a070a3b1d571bd3887806",
+   "sha256": "1phm9n25hdg7v7gjjb5l173hrsgb64rc5frmdpchkd7li4ka4g91"
   },
   "stable": {
    "version": [
@@ -49988,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"
   }
  },
  {
@@ -50262,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": [
@@ -50309,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"
   }
  },
  {
@@ -50372,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": [
@@ -50470,8 +51604,8 @@
     "epc",
     "f"
    ],
-   "commit": "86f17856db194c5f18b30f35df40fb029d5544b5",
-   "sha256": "0cak79lnlbfigl6lh3c5wzphxssq78vyd9xxj3zi7ln5q9ijl6pp"
+   "commit": "701dfcca5f3ab42be0f26a8d381d7116c79be850",
+   "sha256": "035830aizamh4c8hpnmfrbz9v9gy23d3nx0dv366l3q8mrh36l44"
   },
   "stable": {
    "version": [
@@ -50540,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": [
@@ -50679,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"
   }
  },
  {
@@ -50754,11 +51888,11 @@
   "repo": "nonsequitur/inf-ruby",
   "unstable": {
    "version": [
-    20200327,
-    1418
+    20200730,
+    1456
    ],
-   "commit": "41e5ed3a886fca56990486f1987bb3bae0dbd54b",
-   "sha256": "12qgd2p664rh0ks5kq6sxaqi5nlmxrzj5p0kpqrx40caicj6jfpl"
+   "commit": "9f0f79ff459c7c417e8931ca020db121e24b45b5",
+   "sha256": "0h0kxgihjrabklnwfphaf86b67q0wmfjywffrydhdmlidi56rbis"
   },
   "stable": {
    "version": [
@@ -50887,6 +52021,59 @@
   }
  },
  {
+  "ename": "inform",
+  "commit": "fb678165f97deeebfab624a3bd74ce28836607fd",
+  "sha256": "1smgmzg8nf4lh2ywlzrzzqpmh66rxwbn7vrsvby8v6rx6bmyhfa1",
+  "fetcher": "github",
+  "repo": "dieter-wilhelm/inform",
+  "unstable": {
+   "version": [
+    20200723,
+    500
+   ],
+   "commit": "8ff0a19a9f40cfa8283da8ed73de94c35a327423",
+   "sha256": "1rg3v554zjx1mrw1wz2agfrr9317fzj1bqkn82m9r4ys91gx1qh4"
+  },
+  "stable": {
+   "version": [
+    1,
+    3
+   ],
+   "commit": "5e096549632b2691fe1f975394d07a31cf603fc6",
+   "sha256": "0bs0z957cs240cacl3bl72dp1sqcpd0j60yrv972w6p1j9v0f3rn"
+  }
+ },
+ {
+  "ename": "inform7",
+  "commit": "5d62f9e9e513103dbebc84bfcb0d18dcf7563211",
+  "sha256": "1h8bba0npnsjcyvmd40lbm54ib1rsa5c5df6lc7m53zg2h9fzcbd",
+  "fetcher": "github",
+  "repo": "GuiltyDolphin/inform7-mode",
+  "unstable": {
+   "version": [
+    20200430,
+    1539
+   ],
+   "deps": [
+    "s"
+   ],
+   "commit": "a409bbc6f04264f7f00616a995fa6ecf59d33d0d",
+   "sha256": "1sai118i5ry58jjc3777kn2ca2nhaxszhl0va6gyy7j2cdpg8gpy"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    1
+   ],
+   "deps": [
+    "s"
+   ],
+   "commit": "a409bbc6f04264f7f00616a995fa6ecf59d33d0d",
+   "sha256": "1sai118i5ry58jjc3777kn2ca2nhaxszhl0va6gyy7j2cdpg8gpy"
+  }
+ },
+ {
   "ename": "inherit-local",
   "commit": "08b978724ff26b3ea7a134d307d888c80e2a92a9",
   "sha256": "1v3q3s6qq64k1f4ck6rfgsy1arnf9cxg2kw6d1ahfrwr4ixsqm87",
@@ -50933,11 +52120,11 @@
   "repo": "emacs-jp/init-loader",
   "unstable": {
    "version": [
-    20160528,
-    1315
+    20200520,
+    2345
    ],
-   "commit": "5d3cea1004c11ff96b33020e337b03b925c67c42",
-   "sha256": "17bg4s8yz7yz28m04fp2ff6ld0y01yl99wkn2k5rkg4j441xg3n2"
+   "commit": "44829fa70f5c4cba03d36db5fa2c969001325b91",
+   "sha256": "1863s0qvnh7hcy2f86d86zajkqldvnz71q16dd9b4wvgnnicwk8s"
   },
   "stable": {
    "version": [
@@ -50997,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"
   }
  },
  {
@@ -51018,11 +52214,11 @@
   "repo": "ideasman42/emacs-inkpot-theme",
   "unstable": {
    "version": [
-    20191218,
-    2038
+    20200616,
+    434
    ],
-   "commit": "8b648afaaab5eaddb7afcd602b8a76cbfb12412b",
-   "sha256": "0zfv4cnj11i7lagfyqmy4ch01szj450458yqffjn84hfikbf4q78"
+   "commit": "0a5f50c3aa590404ae81cdb08eb869ffc04da625",
+   "sha256": "0hnhq51r0rrl2i3hiwzqzax6cwm3j480w1w2nn8hy61x5p37wn06"
   }
  },
  {
@@ -51088,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",
@@ -51098,8 +52321,8 @@
     20200325,
     2248
    ],
-   "commit": "b943fe73327acc08dcd431eb8168a01609b9ab76",
-   "sha256": "13fk3b80gmgmr0d5296csvjfyjdq1jdxy3iahaj5mbhb9m3ganpc"
+   "commit": "d18423f78cc02ba866b1a1dfb0617476cd941c54",
+   "sha256": "0n6fjndwcp2qg8164420dlc3xsdzm6m0zwbvvwn5w03khbk788hr"
   },
   "stable": {
    "version": [
@@ -51265,10 +52488,10 @@
  },
  {
   "ename": "intero",
-  "commit": "1b56ca344ad944e03b669a9974e9b734b5b445bb",
-  "sha256": "15n7ipsq8ylmq4blsycpszkx034j9sb92vqvaz30j5v307fmvs99",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "1a25lsm1psjvn9az3vd0an46p9qwrrmn09r16dqnhsjcaiabinxi",
   "fetcher": "github",
-  "repo": "commercialhaskell/intero",
+  "repo": "chrisdone/intero",
   "unstable": {
    "version": [
     20200125,
@@ -51424,14 +52647,14 @@
   "repo": "dotemacs/ipcalc.el",
   "unstable": {
    "version": [
-    20170926,
-    805
+    20200809,
+    1444
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "2720f7e3e662e04e195f8338b81a499cf321296a",
-   "sha256": "1kmqbb9ca3sca59462ha21grbgxkl4wynz2lr4yqb4qk7cijgd6g"
+   "commit": "58b2b6c90af93ae46c5445b33ee4d1ef4bac1efb",
+   "sha256": "0v6ahhixp57p94m0sagidvq95m45bf4lfwszjzsn7a2wcrvap7r9"
   }
  },
  {
@@ -51504,11 +52727,11 @@
   "repo": "a13/iqa.el",
   "unstable": {
    "version": [
-    20181024,
-    2253
+    20200520,
+    1137
    ],
-   "commit": "b45614f5204ed851de0abe93907aa94de5e37379",
-   "sha256": "11wrmiwlp91x59cn9k2j2pqgvzbrnzvf81dqgm9l5ph5fym0jqsd"
+   "commit": "c1077aca6553cb2011f21b178e10271a17fe4f58",
+   "sha256": "0rr8m477hma3aaqxzmsayms6qgpf3ff1vx5bgcvbz27ddri375hh"
   }
  },
  {
@@ -51565,8 +52788,8 @@
     "cl-lib",
     "json"
    ],
-   "commit": "5f75fc0c9274f4622470e2324e2f4457087aa643",
-   "sha256": "107ry1jxl7qiqa0ackn03whygndkabg20s7szl5xm1l87vx5xghc"
+   "commit": "1e1aabaa686a08767ab33e5cd43ce8f0ebf8d020",
+   "sha256": "1v3q0k93sviv2nn6qsi8f0537w2g0g6c3wamaidlcb019a5rj4vn"
   },
   "stable": {
    "version": [
@@ -51590,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"
   }
  },
  {
@@ -51627,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"
   }
  },
  {
@@ -51796,20 +53019,19 @@
   "repo": "doublep/iter2",
   "unstable": {
    "version": [
-    20190113,
-    1424
+    20200517,
+    1623
    ],
-   "commit": "698ffb93954817be0064ca6739f295d846707439",
-   "sha256": "10v6il7811w2907d8w2c28lnn29nlhdinlwwb7wy7rzl2vfinbm9"
+   "commit": "987045585d60700b4b9e617313c1a73618a144c9",
+   "sha256": "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"
   },
   "stable": {
    "version": [
-    0,
-    9,
-    10
+    1,
+    0
    ],
-   "commit": "fc1fcea5379bc7728a25dd81546886213e3db6fa",
-   "sha256": "1gvm5gfgmcw4mibi8899x9ry1zqm3ij6yl0dnmdqmv9dbv1zlqp2"
+   "commit": "987045585d60700b4b9e617313c1a73618a144c9",
+   "sha256": "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"
   }
  },
  {
@@ -51869,17 +53091,17 @@
  },
  {
   "ename": "ivy",
-  "commit": "06c24112a5e17c423a4d92607356b25eb90a9a7b",
-  "sha256": "0xf5p91r2ljl93wbr5wbgnb4hzhs00wkaf4fmdlf31la8xwwp5ci",
+  "commit": "de5b4f40470cdfb4d2b4b3078436a7457f5703af",
+  "sha256": "0lrf3xxxi3b78z80sg6jkaz07gzqrv242ajiiy0rvly6da17i06z",
   "fetcher": "github",
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20200425,
-    1938
+    20200818,
+    1250
    ],
-   "commit": "47ec37b395cc1b304bbf91e804f138634544a9df",
-   "sha256": "05k2qjj4z8vljfppkphfhw67wvb5ij4nz4m158v89lx87y0phh74"
+   "commit": "dd43ab1217f72948dc5cd669467e33b8b568db44",
+   "sha256": "0h4273gr4h9xkdf5g08ci95jq0n9l1w3vgd1y9452cry1r07ya9l"
   },
   "stable": {
    "version": [
@@ -51892,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",
@@ -51899,16 +53140,16 @@
   "repo": "tmalsburg/helm-bibtex",
   "unstable": {
    "version": [
-    20200415,
-    1311
+    20200429,
+    1606
    ],
    "deps": [
     "bibtex-completion",
     "cl-lib",
     "swiper"
    ],
-   "commit": "1e5b50652d1f5189cfeb6b5ce3c4437e0239d4f5",
-   "sha256": "05xl3x98w4cr81zp04dcqy5xnims8x3k77qxzddcqcrvi9zjlfc7"
+   "commit": "8a0dd9841316793aacddea744d6b8ca4a7857a35",
+   "sha256": "1av058d7888kr3q15y1122r8jkarfw1s83gvkillj7kyzj3i53m5"
   },
   "stable": {
    "version": [
@@ -51958,15 +53199,15 @@
   "repo": "wandersoncferreira/ivy-clojuredocs",
   "unstable": {
    "version": [
-    20190907,
-    2053
+    20200714,
+    1111
    ],
    "deps": [
     "edn",
     "ivy"
    ],
-   "commit": "dd33a25f1de4339f75f05689ed60fe1b1c97f554",
-   "sha256": "0km1par5jhhbdbn1sccpsz0drqvmmjg1905xyc2bbfc2xx38cg1i"
+   "commit": "0ea57b70a144ecfa80fbd2ec383ebabedb524c37",
+   "sha256": "1hqs45573651jw248zcyczby4fwp4pdgil2n9rk4lvgb89531qlz"
   }
  },
  {
@@ -52003,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,
@@ -52182,15 +53442,15 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20200421,
-    1120
+    20200608,
+    1010
    ],
    "deps": [
     "hydra",
     "ivy"
    ],
-   "commit": "47ec37b395cc1b304bbf91e804f138634544a9df",
-   "sha256": "05k2qjj4z8vljfppkphfhw67wvb5ij4nz4m158v89lx87y0phh74"
+   "commit": "dd43ab1217f72948dc5cd669467e33b8b568db44",
+   "sha256": "0h4273gr4h9xkdf5g08ci95jq0n9l1w3vgd1y9452cry1r07ya9l"
   },
   "stable": {
    "version": [
@@ -52214,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"
   }
  },
  {
@@ -52267,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"
   }
  },
  {
@@ -52354,15 +53584,15 @@
   "repo": "tumashu/ivy-posframe",
   "unstable": {
    "version": [
-    20200331,
-    536
+    20200528,
+    553
    ],
    "deps": [
     "ivy",
     "posframe"
    ],
-   "commit": "ae9bafe94fe6b77b6fe45766ae6172646f6a5d50",
-   "sha256": "1j6yns5d7lh2v1nfcznrirl7qicdli9csciqvfgj4gkh72a97pw1"
+   "commit": "44749562a9e68bd43ccaa225b31311476fab1251",
+   "sha256": "12wj8v483jjnpjvcgkhlm0p971s06c58c3fd73pgnzzppf0fn7xd"
   }
  },
  {
@@ -52373,27 +53603,27 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20200415,
-    1457
+    20200716,
+    1414
    ],
    "deps": [
     "ivy",
     "prescient"
    ],
-   "commit": "0f4a89bdec61395138d968a38d375e63ccfbed63",
-   "sha256": "0nnf4y49pl9lcs90y5z6f02g1xwk1jjrl0qs7gcv6kpn0vn8kn0h"
+   "commit": "cc289ba3b0d89f251267ca2b669d01b3afecc530",
+   "sha256": "0xwy2xh55dm4y7wlz2g6fkwf1xyqqjyp0sjb522qgasivknzwa5p"
   },
   "stable": {
    "version": [
-    4,
-    1
+    5,
+    0
    ],
    "deps": [
     "ivy",
     "prescient"
    ],
-   "commit": "aa3110281a0622fa7b5da115cefb71a319b5b1a0",
-   "sha256": "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3"
+   "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
+   "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
   }
  },
  {
@@ -52435,14 +53665,14 @@
   "repo": "Yevgnen/ivy-rich",
   "unstable": {
    "version": [
-    20200322,
-    1326
+    20200601,
+    104
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "596874d1469667f896b83731914d7d4456025553",
-   "sha256": "0yym3l24zzn1yjg3fjkq7lpvpp9w7wi2vl161v53pmg1v94xig6s"
+   "commit": "10970130b41c6ef9570893cdab8dfbe720e2b1a9",
+   "sha256": "0zpkgj2q16hncafpbap32ypm3666j2vvcrwsn78mca9i82j7xg7l"
   },
   "stable": {
    "version": [
@@ -52472,8 +53702,8 @@
     "ivy",
     "rtags"
    ],
-   "commit": "a42298e80dffae9a6b2e9816506174542f3cbbb7",
-   "sha256": "1674752bbyb7890na5p846dxcvh83zn0a6z19wras1x5c59s24i3"
+   "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+   "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
   },
   "stable": {
    "version": [
@@ -52550,8 +53780,8 @@
   "repo": "mkcms/ivy-yasnippet",
   "unstable": {
    "version": [
-    20181002,
-    1655
+    20200704,
+    700
    ],
    "deps": [
     "cl-lib",
@@ -52559,8 +53789,8 @@
     "ivy",
     "yasnippet"
    ],
-   "commit": "ebf05761cd890bccd8072051f988dae7ab11c9ce",
-   "sha256": "01dc8hv464r3q3d6whix76sqwfkjcvhdg55jmw0ck9jwmhwsvc7x"
+   "commit": "83402d91b4eba5307f71884a72df8e11cc6a994e",
+   "sha256": "07a4bk3hva41qzz8x4qyswa2f89psxhih89k0slhngw5d8iidx3i"
   }
  },
  {
@@ -52739,11 +53969,11 @@
   "url": "https://bitbucket.org/sbarbit/jack-connect",
   "unstable": {
    "version": [
-    20200325,
-    1639
+    20200519,
+    1027
    ],
-   "commit": "c227d1ed3016960c8666a60e4215bbb029436bc7",
-   "sha256": "1w66dpn0cmdqwgjd1528cd2739ijxhsr62zyx2arlr9ldrnqy5f6"
+   "commit": "fae8c5f9b383f7606f3883badfd1294e8affb0db",
+   "sha256": "0r6dihw5dar7w6h5xvif25fv9alwarb74mmaxq2ld8rbhv4il66c"
   }
  },
  {
@@ -52772,17 +54002,17 @@
  },
  {
   "ename": "jammer",
-  "commit": "cb82a6e936e2d5d1dd5930b600ede52dac3ceb33",
-  "sha256": "01c4bii7gswhp6z9dgx4bhvsywiwbbdv7mg1zj6vp1530l74zx6z",
-  "fetcher": "github",
-  "repo": "wasamasa/jammer",
+  "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+  "sha256": "19qvl428daa1xzkj3dldj5yvylq3w313bg42m4lqrmzhx3dgj8dd",
+  "fetcher": "git",
+  "url": "https://depp.brause.cc/jammer.git",
   "unstable": {
    "version": [
-    20160310,
-    859
+    20200506,
+    1247
    ],
-   "commit": "48aa795df6df7ae6484518bcd0398293ca49d7c6",
-   "sha256": "1gnj8vmpxds2wdkz49swiby5vq2hvbf64q5hhvwymfdvwlk54v55"
+   "commit": "76e006dddd491aecccfcb06939db56f9f7daa56d",
+   "sha256": "18mz9yiz94xbvjlrpfxgfvv87s3rv3pv4b8y9c5yywr12zp6jbag"
   },
   "stable": {
    "version": [
@@ -52802,11 +54032,11 @@
   "repo": "ALSchwalm/janet-mode",
   "unstable": {
    "version": [
-    20191201,
-    2353
+    20200509,
+    1651
    ],
-   "commit": "62a1ca33ac443e23869bc83dd2149cc014bb5132",
-   "sha256": "02chr2dcyf3946pg2wysybca559n2vm9lyb65zx6h6pvqhmg4kwp"
+   "commit": "2f5bcabcb6953e1ed1926ba6a2328c453e8b4ac7",
+   "sha256": "0qj0gpycv2f3z1dgz1a27bjn983hrr3ppvrp7csl34lagnmp89rz"
   }
  },
  {
@@ -52828,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",
@@ -53017,14 +54220,14 @@
   "repo": "zk-phi/jaword",
   "unstable": {
    "version": [
-    20170426,
-    627
+    20200816,
+    647
    ],
    "deps": [
     "tinysegmenter"
    ],
-   "commit": "ac062b0e5ab4bd3270497e80aa0f3ac033a0493f",
-   "sha256": "05kbscympb59njfrs94w4b2lwkc3057wzib65kq0l93bx4pcw2iy"
+   "commit": "45e350895fc55f087a2102fded5b306811089a7d",
+   "sha256": "02ncm22wldx8g3iibdw92gk4hdig0209f7bmhxrhgdv8xp544c2h"
   }
  },
  {
@@ -53258,15 +54461,15 @@
   "repo": "rmuslimov/jenkins.el",
   "unstable": {
    "version": [
-    20200115,
-    2133
+    20200524,
+    2016
    ],
    "deps": [
     "dash",
     "json"
    ],
-   "commit": "29e27a685ec971b518251ce0e66a0b67d78ea395",
-   "sha256": "0ms9i4dww801q09n4wzjpaqd6k89xdkn5vx3i565p748kp9lqhz6"
+   "commit": "bd06cdc57c0cb9217d773eeba06ecc998f10033b",
+   "sha256": "0g99bi3i27ay8xhz409k9ska9yy77j3k687l817k1fyhlyy5lpjk"
   }
  },
  {
@@ -53285,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",
@@ -53304,8 +54525,8 @@
     "projectile",
     "s"
    ],
-   "commit": "b51be19c1de9e82ee1dc62921be2222fc5685eed",
-   "sha256": "1jdphlhp9vxvkj51cswqfgka910216snyjhql700x4dgpmvkcv56"
+   "commit": "4c6ddd3304e199211f0fbdc8a5b83ccbfe1f7fcc",
+   "sha256": "1v940c6p77dhs3rf016qqzhaniifkfsspbkpknf7vdssxgk9g1a5"
   }
  },
  {
@@ -53382,11 +54603,11 @@
   "repo": "paradoxxxzero/jinja2-mode",
   "unstable": {
    "version": [
-    20141128,
-    1007
+    20200718,
+    730
    ],
-   "commit": "cfaa7bbe7bb290cc500440124ce89686f3e26f86",
-   "sha256": "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"
+   "commit": "ecd19a40b7832bb00f0a2244e3b0713d0bf3850d",
+   "sha256": "05z380d8ln53mx1gqa7awnv4wpqdhv7ggc91dds57681wzsqgz15"
   },
   "stable": {
    "version": [
@@ -53420,15 +54641,15 @@
   "repo": "nyyManni/jiralib2",
   "unstable": {
    "version": [
-    20200331,
-    1940
+    20200520,
+    2031
    ],
    "deps": [
     "dash",
     "request"
    ],
-   "commit": "ccf69e417911e091ec4c28d47d178ee63196c626",
-   "sha256": "170fjz7k9bk17qk7wrd56xw484xp8zckx635360pm0lfg4dvycpc"
+   "commit": "c21c4e759eff549dbda11099f2f680b78d7f5a01",
+   "sha256": "0yrcc9yfz9gxkhizy03bpysl1wcdbk0m6fj9hkqw3kbgnsk25h4p"
   }
  },
  {
@@ -53488,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",
@@ -53556,20 +54800,20 @@
   "repo": "ljos/jq-mode",
   "unstable": {
    "version": [
-    20200317,
-    852
+    20200604,
+    833
    ],
-   "commit": "bc904840f27fe7b0e6dbdaeb912a7175a3837110",
-   "sha256": "0w5cgys1yfhirhsvj4n5k6km2xwyqvlnbv0m0sim1vavizzfmda4"
+   "commit": "42ad0a99f0114233e2cb317585cb9af494d18a2f",
+   "sha256": "1n4w45yv1k7979j42dahhp9356p9bmk6ldybqa0z65k9gz4abkxl"
   },
   "stable": {
    "version": [
     0,
-    4,
-    1
+    5,
+    0
    ],
-   "commit": "d6bbd83baf0746f22564f7ae92db44e06da6e08c",
-   "sha256": "1sk603258gvnfrvl641xfmgapg67z44wnlx6qba73wn3f2055765"
+   "commit": "3bda2d1085d5ac28fc6e7e8093ca7e74d3719f56",
+   "sha256": "0xk0if5i9cz4w06lx8v1vdm112pn1ybqgfw048sx15yyvfzgril1"
   }
  },
  {
@@ -53617,8 +54861,8 @@
     20180807,
     1352
    ],
-   "commit": "306abcfb9f6e46962061a34b68d4f6baa8c7aba4",
-   "sha256": "1pifplr4qr9667bbbqgqg39v8dyglvg6ljglkjga0d2n39am7r2q"
+   "commit": "9d9460b17f59e4e7a4e5cc34576ba72b2ca56524",
+   "sha256": "0hil53mzvxz71l908wm6804migvm7hm0nwm8qpyy2dgnfzl996hg"
   },
   "stable": {
    "version": [
@@ -53808,14 +55052,14 @@
   "repo": "mooz/js2-mode",
   "unstable": {
    "version": [
-    20200211,
-    2057
+    20200725,
+    112
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "fe53814dc2a0db2e95ac06083362e43923bf83fc",
-   "sha256": "0b30c5valf58md5h5zm45nkx9xdszwi4kz12qfzh27fyn46gdwjq"
+   "commit": "40aab27581279d0fdbfeb9afeb85f39d401a927f",
+   "sha256": "0ysd0ji3vvk2zpjcg1wl7b2hva8471vq0ypib4h6spnpjdr43vzk"
   },
   "stable": {
    "version": [
@@ -53867,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",
@@ -54058,6 +55320,18 @@
    ],
    "commit": "81a5a520072e20d18aeab2aac4d66c046b031e56",
    "sha256": "13s18mjh6dpdxvva9yx4841rxvayxsvaj3vblxril6zm2wcqw2lm"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    1
+   ],
+   "deps": [
+    "cl-lib"
+   ],
+   "commit": "81a5a520072e20d18aeab2aac4d66c046b031e56",
+   "sha256": "13s18mjh6dpdxvva9yx4841rxvayxsvaj3vblxril6zm2wcqw2lm"
   }
  },
  {
@@ -54131,11 +55405,11 @@
   "repo": "mgyucht/jsonnet-mode",
   "unstable": {
    "version": [
-    20200218,
-    2217
+    20200812,
+    1558
    ],
-   "commit": "d8b486c8376a4785a7f2dc8a16fe1f2d82c6bfae",
-   "sha256": "0xpy699jh6ia46brd7i2qrfi0zrcdrhj3dc8d275va9w8a78paks"
+   "commit": "c8422a617438c79ade98f8d9eeb2086dacb0378c",
+   "sha256": "1r2ic7gbngbwmjjcigphj8jamaff42s7bsn6xz7yfzrci0gm8jrd"
   },
   "stable": {
    "version": [
@@ -54210,11 +55484,11 @@
   "repo": "JuliaEditorSupport/julia-emacs",
   "unstable": {
    "version": [
-    20200331,
-    1658
+    20200717,
+    1915
    ],
-   "commit": "88d7d875ef32eb9fb76917c97150654bb91ac96a",
-   "sha256": "1zsqj31avcil6ml2clfxk7hnmg5fx014xqbbvhm17ii7ggky4qdn"
+   "commit": "b5f5983d2b232c8bba4c5eff75cccdb787c19d98",
+   "sha256": "0pxaga920bab6n5byag6h0wql2akiybhsh9nlinfx708i9dzmvv6"
   },
   "stable": {
    "version": [
@@ -54233,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": [
@@ -54272,14 +55546,14 @@
  },
  {
   "ename": "julia-snail",
-  "commit": "4b80da8bdccaa0992deb07cef7ea4a582d9707ae",
-  "sha256": "0yljiqgamm5gjr1dbzjfqvnrijhgrpjd7gj8and1w33s1d2qh8gd",
+  "commit": "5510bd5788fc1dab3049100f9a993d89fcd10601",
+  "sha256": "0bbz4r0xygx9hcddk5r64w9hycvxqvl7y6z53smlwns1pj7n9wvp",
   "fetcher": "github",
   "repo": "gcv/julia-snail",
   "unstable": {
    "version": [
-    20200423,
-    2236
+    20200810,
+    1941
    ],
    "deps": [
     "cl-lib",
@@ -54290,8 +55564,8 @@
     "spinner",
     "vterm"
    ],
-   "commit": "e14c5590a79ee5529f574f6d4b0701d608e3e47b",
-   "sha256": "1xckmrdg41ai9qbpy9lxva4b1yq5jji9xff4fz9d4v72nqz7qn0w"
+   "commit": "44d06e18cf9ded6c05936ce10aca0a73f768f457",
+   "sha256": "0hpypirqc2hd1zga5qjcx2i7vp3h2vif76npd0j10hiimxal1kxz"
   },
   "stable": {
    "version": [
@@ -54299,7 +55573,7 @@
     0,
     0,
     -1,
-    3
+    4
    ],
    "deps": [
     "cl-lib",
@@ -54310,8 +55584,8 @@
     "spinner",
     "vterm"
    ],
-   "commit": "483d088853584a9f1603a062bce5705f0a7d99fe",
-   "sha256": "0k3lwq6r1y23gmlqx7a70psgzncf4k1zcykc7plzl79xas28rbrz"
+   "commit": "c9aff5ffe6df951dd5343f05d6e4170203a7032a",
+   "sha256": "065ix3jycsx3wvkq7a6060i93caxisdvgxgqb1l6rq15n4qln78y"
   }
  },
  {
@@ -54455,8 +55729,8 @@
     "websocket",
     "zmq"
    ],
-   "commit": "785edbbff65abb0c929dc2fbd8b8305c77fd529e",
-   "sha256": "1l1fd062dmig3mgkwixr4ly8x12z9skh5wj18hkyc84n7rwdar47"
+   "commit": "360cae2c70ab28c7a7848c0c56473d984f0243e5",
+   "sha256": "1bn0jwpigpl5n45vpz73vv12g078151vyhkkhkwy5xqx627swxf9"
   },
   "stable": {
    "version": [
@@ -54512,14 +55786,26 @@
   "repo": "TxGVNN/emacs-k8s-mode",
   "unstable": {
    "version": [
-    20191006,
-    849
+    20200803,
+    1549
    ],
    "deps": [
     "yaml-mode"
    ],
-   "commit": "5984acee6f3891afa78acfd1d08c44a24953a233",
-   "sha256": "11x602pmqa3833azkzph1ghm354nypv6rr1y53k6kdrkwviwkcpm"
+   "commit": "9364cdbbae00055c4efa1eeb80503e0b0a215743",
+   "sha256": "1ap8nwlv9ha5a03gc10sva12sc6qzq1vig8hibg1igbsc1qmfkad"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "deps": [
+    "yaml-mode"
+   ],
+   "commit": "9364cdbbae00055c4efa1eeb80503e0b0a215743",
+   "sha256": "1ap8nwlv9ha5a03gc10sva12sc6qzq1vig8hibg1igbsc1qmfkad"
   }
  },
  {
@@ -54651,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"
   }
  },
  {
@@ -54773,28 +56059,28 @@
   "repo": "ogdenwebb/emacs-kaolin-themes",
   "unstable": {
    "version": [
-    20200324,
-    1349
+    20200817,
+    1844
    ],
    "deps": [
     "autothemer",
     "cl-lib"
    ],
-   "commit": "9877c12ad412e79b3d88423f911be1ff59a72e0e",
-   "sha256": "079si7dhl45rx2vf8kf8srflk6nd6yxqz44xbsrh0s39gpp9v5dh"
+   "commit": "380bcb745c9bbf7328b7f190680a0e51231e3c3e",
+   "sha256": "1yw1c97ynjjr3md2shrhviiqycaggcmzhkb0i5y49b2w2mdvp1fa"
   },
   "stable": {
    "version": [
     1,
-    5,
-    4
+    6,
+    0
    ],
    "deps": [
     "autothemer",
     "cl-lib"
    ],
-   "commit": "db1c43915fe68f31fffa00159b4198c32e87c8ed",
-   "sha256": "038bqg66m5cpg1w70la3jr57rq9fngmb1g67z27lpqcf3xf416xc"
+   "commit": "3e2c700aa1cf9f0ee17486ef9a7a68f77fb9946a",
+   "sha256": "07lydl1b8fz4g4q22ffrl6li9kc3zp9zq5rpqghzr9b8f56ddfqj"
   }
  },
  {
@@ -54869,11 +56155,11 @@
   "repo": "delaanthonio/kconfig-mode",
   "unstable": {
    "version": [
-    20190818,
-    2030
+    20200628,
+    1721
    ],
-   "commit": "02bb919596cf673828e95872dc329f2424a99864",
-   "sha256": "1h0v9528d2ssjgqa8813l3anhz15aggsmf8yln0qpphhrlrkfmpz"
+   "commit": "d9fdf751646abe2b75b7bbeb46e7552e0f36f290",
+   "sha256": "0dhkggvni5k4rnj2m6lva99hj1925b4w24dh9nv3m9w0x7b49263"
   }
  },
  {
@@ -54916,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",
@@ -55059,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"
   }
  },
  {
@@ -55169,13 +56488,13 @@
    "version": [
     3,
     0,
-    2
+    3
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "0b9bb7f4959ca54f0827b202f513ec7508c11e0e",
-   "sha256": "11y1vdrj2isn00mh428ynzqnfxjsg0138wx0bs619j0pv6d3j09g"
+   "commit": "195e0ca5b1b9967faf94a3e5a634d8975b796705",
+   "sha256": "0ckv9mbqb1f2lp17sv3nxjwww4ph9v3bhlxwvchvkkdlbcg87i5n"
   }
  },
  {
@@ -55194,6 +56513,21 @@
   }
  },
  {
+  "ename": "keypression",
+  "commit": "056a8881cd868634a1833172436528ea2503af12",
+  "sha256": "1ysfpxfhgy14v0jy02c4qyz28cx682cf2haxlnrpw2gxjh0a0702",
+  "fetcher": "github",
+  "repo": "chuntaro/emacs-keypression",
+  "unstable": {
+   "version": [
+    20200819,
+    534
+   ],
+   "commit": "9427241f3fa539e4b5ad7581a05eb7e49f2cf518",
+   "sha256": "0p2pag2hzxswsf5hzjfm0nf4wpp40lsmxf1x6n9vfwfrpfk5b9ar"
+  }
+ },
+ {
   "ename": "keyset",
   "commit": "7bad8a1f1b94fbfbde5d8035f7e22431e64a9eec",
   "sha256": "1kfw0pfb6qm2ji1v0kb8xgz8q2yd2k9kxmaz5vxcdixdlax3xiqg",
@@ -55208,8 +56542,8 @@
     "cl-lib",
     "dash"
    ],
-   "commit": "41bbfc4dbed5de6ecf3ec1dba634c7c26241ca84",
-   "sha256": "0cm6naqlwk65xy9lwnn5r7m6nc1l7ims2ckydmyzny5ak8y5jbws"
+   "commit": "45ce83c4b56f064874256db37e697a63b2c69e65",
+   "sha256": "0fcz1qw3mw4m8albs1ybixrcz8yqgwip69fr99cd5bxfyr6zqj6d"
   },
   "stable": {
    "version": [
@@ -55367,8 +56701,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "e77fcf46284afa1fd13499db695745112f41c8cd",
-   "sha256": "0c65qnsibcppyrf3bqp4blv2bfamisfwgxqy90z0gkbxzw9q4lxw"
+   "commit": "7db85a3f3004ff400e24105d1875f4e3a6eec7a6",
+   "sha256": "02nv6hzzr60gn24ra88smrwmkfjcb33c987dcgxqv7rzjpdjagnx"
   },
   "stable": {
    "version": [
@@ -55479,8 +56813,8 @@
     20180702,
     2029
    ],
-   "commit": "108a9151eb55b00f246613c511d88b7d58334595",
-   "sha256": "16wsaz29avmv9p3lfy0wjgxfwpszq8g3v9vl05azqkvjahf0lxib"
+   "commit": "f34c43f235f35767ed04765a90d68b23807436ba",
+   "sha256": "06pgjd79kvkpznniw90hrsb7fvc0y3hhnxs6pyay869d50vbyw53"
   },
   "stable": {
    "version": [
@@ -55488,10 +56822,10 @@
     0,
     0,
     -1,
-    1
+    3
    ],
-   "commit": "ae0fa0cab3025e517452f44b91dd7d95182f39b2",
-   "sha256": "1ca9ggkbhfbr9d938nmg5klgmf5ayji0i201hcragjqj7hak18ia"
+   "commit": "20c14b2a2bac73288a4c2808843910364565f66a",
+   "sha256": "1mf3if96cvxc8sqy22h4j2aq320ngw6q2286psvpq9v1mhv0wna4"
   }
  },
  {
@@ -55502,15 +56836,15 @@
   "repo": "stardiviner/kiwix.el",
   "unstable": {
    "version": [
-    20200426,
-    637
+    20200714,
+    1357
    ],
    "deps": [
     "cl-lib",
     "request"
    ],
-   "commit": "6c6c44386e00d352d96064cb25b50e960cd1ba22",
-   "sha256": "16k93w5xylx3v5q1hlzmlmg1ydg88bklgi2idd3h6k3sbi4linvs"
+   "commit": "cb3e2531a55b896b9b41f38f97a597c26433da8e",
+   "sha256": "077bng1mwnd1m8ji4a44aqly94d07k09grwk0j52kgxlhvv3p3di"
   },
   "stable": {
    "version": [
@@ -55672,8 +57006,8 @@
     20191102,
     1510
    ],
-   "commit": "ab610996820b5cbdb032edbf8747661131603ab8",
-   "sha256": "1dcaiwxymrch1vfzssjizv6l9isc68xcf8987c0l71zmzmrq1s7s"
+   "commit": "8e6dd578f2b3d77ac33b6384d2bfe1b1f6799a1a",
+   "sha256": "12gwy76kz4qjw1qxma4q9pk9s2arzr5p95ni5vzizm2p4x4c5a8x"
   }
  },
  {
@@ -55767,16 +57101,16 @@
   "repo": "abrochard/kubel",
   "unstable": {
    "version": [
-    20200406,
-    2112
+    20200812,
+    2143
    ],
    "deps": [
     "dash",
     "s",
     "transient"
    ],
-   "commit": "74db5b2e8418d0baeb8d3d0c274dfba3b9f32018",
-   "sha256": "1v8d8cvbqr12pglnd0lwijklfry5nz2j7nbv447bdkp5cp7y5f01"
+   "commit": "55099f130803b56eb1f7595ba34a313df4ec138a",
+   "sha256": "1sly3fgdrynazaab0nb7hbxs0vb42g0r00m7zr162kqw7n57gxaw"
   },
   "stable": {
    "version": [
@@ -55802,8 +57136,8 @@
     "evil",
     "kubel"
    ],
-   "commit": "74db5b2e8418d0baeb8d3d0c274dfba3b9f32018",
-   "sha256": "1v8d8cvbqr12pglnd0lwijklfry5nz2j7nbv447bdkp5cp7y5f01"
+   "commit": "55099f130803b56eb1f7595ba34a313df4ec138a",
+   "sha256": "1sly3fgdrynazaab0nb7hbxs0vb42g0r00m7zr162kqw7n57gxaw"
   },
   "stable": {
    "version": [
@@ -55988,11 +57322,11 @@
   "repo": "MetroWind/lab-theme",
   "unstable": {
    "version": [
-    20200204,
-    1931
+    20200815,
+    2104
    ],
-   "commit": "2cd61072d2b4c563d961f80918fc6b1dc45f7ba4",
-   "sha256": "0jwslzxjyclr4iw8ir0glcj5iasgx2z9i16qn7705sdmdmbzkdwz"
+   "commit": "9d7deb9635959d3a50ccb1082eb1207275f4b3e8",
+   "sha256": "0ifpg3vz84x87a1xsx0db79v14bfdnbaha6p4hcvaj67hi58qa81"
   }
  },
  {
@@ -56042,15 +57376,15 @@
   "repo": "Deducteam/lambdapi",
   "unstable": {
    "version": [
-    20200423,
-    1441
+    20200706,
+    1546
    ],
    "deps": [
     "eglot",
     "math-symbol-lists"
    ],
-   "commit": "e205bd95602e120186a1e18ca825e6bbc3b6c4d1",
-   "sha256": "12y297h0hln7smy26nixqbjzy9nk1pwc2a7sab8dlzjkyz37zbfg"
+   "commit": "665cb18e484b8e41b0314fc442422b671cda2962",
+   "sha256": "0qsd30xnhzcvfdk0p2adzrbzl6hw4z5is0wwirzr79qx025zm4gf"
   }
  },
  {
@@ -56109,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"
   }
  },
  {
@@ -56157,26 +57491,50 @@
   "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"
+  }
+ },
+ {
+  "ename": "languagetool",
+  "commit": "ce91d4013963eacf1525809684e64ca52239fb73",
+  "sha256": "1cbhamz8yhfnyhzbn4j0kp9sbsycq1hi0j2kr3yhbf66fgi6x9f6",
+  "fetcher": "github",
+  "repo": "PillFall/Emacs-LanguageTool.el",
+  "unstable": {
+   "version": [
+    20200507,
+    610
+   ],
+   "commit": "e7faecf8a7eec8086aafc48a5c4f1908bb5c4300",
+   "sha256": "1nb5l1xpgz9z6xplb64a3nx8vis70r9dl0xxly5hddy67i49si54"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    0
+   ],
+   "commit": "e7faecf8a7eec8086aafc48a5c4f1908bb5c4300",
+   "sha256": "1nb5l1xpgz9z6xplb64a3nx8vis70r9dl0xxly5hddy67i49si54"
   }
  },
  {
@@ -56187,8 +57545,8 @@
   "repo": "mihaiolteanu/lastfm.el",
   "unstable": {
    "version": [
-    20200320,
-    1839
+    20200701,
+    715
    ],
    "deps": [
     "anaphora",
@@ -56197,8 +57555,8 @@
     "request",
     "s"
    ],
-   "commit": "54636059512adec0176950e8fce3b9bf7423619d",
-   "sha256": "1ffvh71vgsdv118hhz0x2xfmqb2bayk7i3mdxc1ybs2vrdggnim4"
+   "commit": "cfa5e9b0b1f54884dc36ae5d8f35e3c6b841ef74",
+   "sha256": "1m1qf5f7kq7d720inkks6wwwn4hf40lrz4755gwnnn6d5zf0b1ix"
   },
   "stable": {
    "version": [
@@ -56397,11 +57755,11 @@
   "repo": "pekingduck/launchctl-el",
   "unstable": {
    "version": [
-    20150518,
-    1309
+    20200531,
+    1043
    ],
-   "commit": "73f8f52a5aa9a0be9bdcf68c29ad0fa2b4a115a4",
-   "sha256": "154z7bhb7qagvl3dlgrlsxdg4chz2863ijglg47xs3yhjp5ypanj"
+   "commit": "96886b7e64d15ffd3319c8b4b04310ccdc648576",
+   "sha256": "0mw1c14ysh186lbgmmyp01hszdgjm605diqfq6a17a7dd7fn549a"
   }
  },
  {
@@ -56433,8 +57791,8 @@
    "deps": [
     "colorless-themes"
    ],
-   "commit": "2b4c341640c8191a39e4bc28d6cd04c7d6dcbb37",
-   "sha256": "0ni9cnrv464fk840i1ll241kzkiy1zc6nfrbdv3ciixxdxbshxbn"
+   "commit": "736f7a105535901b4783d19534e7855920e25115",
+   "sha256": "1wi7wxiyk0g3k0l60hdmcyvvxr1kaapbkxvkknwd9qvdsji0ng73"
   },
   "stable": {
    "version": [
@@ -56509,11 +57867,11 @@
   "repo": "conao3/leaf.el",
   "unstable": {
    "version": [
-    20200422,
-    644
+    20200817,
+    1226
    ],
-   "commit": "27f21ed46a907a911222a72a31b41e414c956cfb",
-   "sha256": "041qgyskq39f91wjwr3d4ic5f1q7rvigannyyr9q4a2nbrn2dzhy"
+   "commit": "7d2f13a103ff275f64086f4ad12308266d1fb48a",
+   "sha256": "1ggcbnpahxxjm4h21z9pl9164jwv7mhq4n6k5zagna863a9hlrbw"
   },
   "stable": {
    "version": [
@@ -56533,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"
   }
  },
  {
@@ -56553,14 +57911,14 @@
   "repo": "conao3/leaf-keywords.el",
   "unstable": {
    "version": [
-    20200415,
-    419
+    20200812,
+    1025
    ],
    "deps": [
     "leaf"
    ],
-   "commit": "8c956f9e39cb589544a90861ac05b9b2ee4d320b",
-   "sha256": "0qy1hmg7ycbx898cx5cckmk5l8bysyvvdc5y2gl3bsxjwlv1wlrg"
+   "commit": "c38d9d0d8cdb5a95df788af784e4eb989b674622",
+   "sha256": "19a1wrzikbzn2lswf5xwy8145a60mrj9ndj7cx29qrbr8fjcz431"
   },
   "stable": {
    "version": [
@@ -56580,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",
@@ -56630,8 +58002,8 @@
   "repo": "leanprover/lean-mode",
   "unstable": {
    "version": [
-    20200319,
-    838
+    20200620,
+    919
    ],
    "deps": [
     "dash",
@@ -56640,8 +58012,8 @@
     "flycheck",
     "s"
    ],
-   "commit": "65b55b1711fb61129312044d5ac7e6a2c2ee245c",
-   "sha256": "1zmw8950qhry2ixk2ng0pg4j0vwx11nvjlrpab9jg6x47ys9j65n"
+   "commit": "6b4377686128d5c2fb55d8fe61b92a9991d40fbd",
+   "sha256": "1zb3igic1i30mfbsx4k2sabhdpl58fsrl5c3fjvqrpn92ixi9vws"
   }
  },
  {
@@ -56695,8 +58067,8 @@
     20200224,
     2229
    ],
-   "commit": "e3424b3ae3f7d85ef020d030c2fa58df86ed8955",
-   "sha256": "0a8x2c0lxa0xihpbc9i1dvn1l00nsmawl1nv3i06r6iq5486pqdn"
+   "commit": "86505672be0aabc9fa1048bc453ab2fc855b27e1",
+   "sha256": "00j6j2n0z616r9p78wp8hk62d9s2dpzlmflfm7ilrx40dnd4nlgj"
   }
  },
  {
@@ -56707,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": [
@@ -56737,11 +58109,11 @@
   "repo": "ledger/ledger-mode",
   "unstable": {
    "version": [
-    20200425,
-    1517
+    20200530,
+    1710
    ],
-   "commit": "021eff5f88bf6392d7b3e511593e07471eb7833d",
-   "sha256": "0g4fgy39jp072b4ib0yxaxd3ndzxd1gx8inqqn9z9d7lxgc12l1g"
+   "commit": "805507fd6c14839be4efc7aee2017f9c03e36834",
+   "sha256": "1sil9kdkcb0r165qm8vpxll0ikfnm0cqjd3gmj8vi6k8n6awv9zv"
   },
   "stable": {
    "version": [
@@ -56776,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"
   }
  },
  {
@@ -56975,11 +58349,11 @@
   "repo": "fniessen/emacs-leuven-theme",
   "unstable": {
    "version": [
-    20200425,
-    756
+    20200707,
+    1143
    ],
-   "commit": "444d36526382466e6bcf11c58066bcef759e4c1f",
-   "sha256": "1768r5gb8cpz8a03rgswf5mny539w96hjw1rpvfqvj4zbv7bvd7n"
+   "commit": "a116202c82613c087440d2e8a6a504b08f1862ce",
+   "sha256": "1pqv4idkbqbxxvdfqxwf5rq2isl1jikba5nd0z8d7fr09wv48pv7"
   }
  },
  {
@@ -57023,8 +58397,8 @@
     20170121,
     1254
    ],
-   "commit": "a6c9922f31f59686bb48db1b8d5b75e74e79757a",
-   "sha256": "0wvk341hx0fsv4hihlr508grqzgzza0w3gfqh4c1f88mdpmm62if"
+   "commit": "9d15bc75a34052f7f2749bd38b3d0297ed60b29a",
+   "sha256": "07ysaihl24fiqz8n6hvdvaj53nyalk68dsn073zb8q88sdmzf33w"
   },
   "stable": {
    "version": [
@@ -57096,6 +58470,30 @@
   }
  },
  {
+  "ename": "liberime",
+  "commit": "0ccac33c02762314d997156df4627c0c4a0279c6",
+  "sha256": "0i95vjn4rw7n4f83nrxjkmilzalgmjlmyhsvwfm4n1rqfqdwkl5h",
+  "fetcher": "github",
+  "repo": "merrickluo/liberime",
+  "unstable": {
+   "version": [
+    20200804,
+    147
+   ],
+   "commit": "2a6f1bca1aff64a9136368c4afa15c0ea1042893",
+   "sha256": "1nvpy2mclcyi75clcnic7ap5rihccvgf7yn10an4y50sas8g2jiv"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    6
+   ],
+   "commit": "f13a98ddd7be658e742b0f42988b02db9d779e85",
+   "sha256": "09d9dx4jk8bgbdcn6dh9ar5rs33s2cwz08w211b3kgj41i115gl7"
+  }
+ },
+ {
   "ename": "libgit",
   "commit": "993a5abe3a9e8b160f0d68283eeca6af033abc79",
   "sha256": "05yys8cjli2zhmhdh9w5qz287ibzplqabx5vyyjv9rpk6wgzkzik",
@@ -57103,11 +58501,11 @@
   "repo": "magit/libegit2",
   "unstable": {
    "version": [
-    20200223,
-    1431
+    20200515,
+    1759
    ],
-   "commit": "6c3b89276a149b2d009882f756a9edf866671f05",
-   "sha256": "1r59bw0dggjf6ry2vbl0vddd5hxxh1mshr5h2bk9z74gy04cfi4y"
+   "commit": "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a",
+   "sha256": "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f"
   }
  },
  {
@@ -57157,11 +58555,11 @@
   "repo": "buzztaiki/lice-el",
   "unstable": {
    "version": [
-    20191011,
-    631
+    20200607,
+    103
    ],
-   "commit": "3ff90745cd43d1cc41216a01f55f871a00692ffe",
-   "sha256": "08aiwyd0cxwd37jdy1m78l1r35h7fiq7wygpys2yrms6mdl8063b"
+   "commit": "482e58ab83fff86ed754b00be27b62a219597e7c",
+   "sha256": "0yxkjyhfk8kpr8yqz54gdx6xwkj4s8bnbz60162jh12crj0bs5n7"
   },
   "stable": {
    "version": [
@@ -57195,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"
   }
  },
  {
@@ -57228,8 +58626,8 @@
     20180219,
     1024
    ],
-   "commit": "d083a9f0c74830bd77b794babb09fe0f0fdb3854",
-   "sha256": "1fgd2kfwh7gl4yxrmvv8yrv6wvvwy6y0nwibqqsy55698a1qb2fm"
+   "commit": "ffa07b82102945f18efb4430a6554835c450f6bf",
+   "sha256": "1zpqydk8s01f1qmk8aycn67pw48mll0rvrnrjd9q41p2aklhncms"
   },
   "stable": {
    "version": [
@@ -57333,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"
   }
  },
  {
@@ -57443,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"
   }
  },
  {
@@ -57526,8 +58939,8 @@
   "repo": "abo-abo/lispy",
   "unstable": {
    "version": [
-    20200425,
-    1041
+    20200818,
+    1151
    ],
    "deps": [
     "ace-window",
@@ -57536,8 +58949,8 @@
     "iedit",
     "zoutline"
    ],
-   "commit": "3c3f092824113278c57e93be1a2565f987ca0a4a",
-   "sha256": "1g0gmdq1n8l33ls4x06594hl8ayw8365ixgxp096d7qv7n5mxzn6"
+   "commit": "0a9dcfdfbc20cadbb9cb29b224dc64b8efdd7b70",
+   "sha256": "13hzkh0rij40d58v6h232s784p40q1qv24n6bycd89lacn8xrcsr"
   },
   "stable": {
    "version": [
@@ -57588,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"
   }
  },
  {
@@ -57683,20 +59096,20 @@
   "repo": "rolandwalker/list-utils",
   "unstable": {
    "version": [
-    20160414,
-    1402
+    20200502,
+    1309
    ],
-   "commit": "acf18aca1131a90f8d673974673e3c5d8fdc6a86",
-   "sha256": "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz"
+   "commit": "9bb2487c83ec46a0b6e6c4158af69334ac797b82",
+   "sha256": "07hbz2md52ccy95gv4d5n6szrfmpfqf3w4kwqdg2cf54c7kgf7hw"
   },
   "stable": {
    "version": [
     0,
     4,
-    4
+    6
    ],
-   "commit": "acf18aca1131a90f8d673974673e3c5d8fdc6a86",
-   "sha256": "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz"
+   "commit": "9bb2487c83ec46a0b6e6c4158af69334ac797b82",
+   "sha256": "07hbz2md52ccy95gv4d5n6szrfmpfqf3w4kwqdg2cf54c7kgf7hw"
   }
  },
  {
@@ -57820,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",
@@ -57856,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": [
@@ -57932,11 +59363,11 @@
   "repo": "lassik/emacs-live-preview",
   "unstable": {
    "version": [
-    20200419,
-    2143
+    20200730,
+    1517
    ],
-   "commit": "7af1c74e0479c5b91d6368a4a3ff1342b83ef477",
-   "sha256": "0ifk0k6lfjzb0x0mgzh69jx0m166ljdg3ad69p51jw3m85c0wc6b"
+   "commit": "b099cd4d9d4b30d432ffd2ca76f8db1b4c13cd08",
+   "sha256": "1sgl9152f16wlafpd1d2sik044h3dplx0ins3b9kwkm0hxgncdfj"
   },
   "stable": {
    "version": [
@@ -57956,20 +59387,20 @@
   "repo": "donkirkby/live-py-plugin",
   "unstable": {
    "version": [
-    20200401,
-    420
+    20200709,
+    422
    ],
-   "commit": "ab15012313217114d3f3940a6578df31ad223010",
-   "sha256": "1layngy8whcxgrpwhjdy41g194lkzq9z1wgv5rc4cg9smsbd6abi"
+   "commit": "fdc85e5f2ddc72934be704ac90d5436d379c3381",
+   "sha256": "1g74m9v5818v8wg2zsm4zb74lzw28zfvlpv98b2dkqzikpxgz362"
   },
   "stable": {
    "version": [
     4,
-    1,
+    2,
     0
    ],
-   "commit": "0a0d881d8ff30a6007b998e9bb9dddb999cca16e",
-   "sha256": "1mdnbbd0kr5y4vr2xbay80v4n07gg5jkkn0k3ywypsin7fz5ihhl"
+   "commit": "de3ce16dbb054b6d1b14f3274935bbdccadd9790",
+   "sha256": "1vl6v8lsid4p82clvp62079jnxhmibza3p5hb1frdlsycyc9d1bv"
   }
  },
  {
@@ -58055,11 +59486,11 @@
   "url": "https://hg.serna.eu/emacs/lms",
   "unstable": {
    "version": [
-    20191102,
-    3
+    20200616,
+    1814
    ],
-   "commit": "0967d3bada2ab70784a944d56c81691b8e87dbd8",
-   "sha256": "15ksvdf2cfa8hwvazdza56iln244xlv1l65gydhjw8388hr7gbr0"
+   "commit": "8090ba32866033c3ab580190cc79cac61463a180",
+   "sha256": "0l97i08k9qqr76xniac912id0hx5f56psf3v3l4mprs5k8myihj6"
   }
  },
  {
@@ -58103,11 +59534,11 @@
   "repo": "rocky/emacs-load-relative",
   "unstable": {
    "version": [
-    20190601,
-    1221
+    20200722,
+    1109
    ],
-   "commit": "dbcd7cbcca6503ef93f4b8d19bf7a9efd7f6bf9b",
-   "sha256": "010f2mhvlzkxarw298850khqc6srzb01l2vay0jsp46dh3jfmdhf"
+   "commit": "85b88d6fbf472381dfdaf0a762215b7e35ceee9b",
+   "sha256": "0jajdk2685d1jdw72hp4g0pq9xwbwbnls79nizkydamwhnj8sfcp"
   },
   "stable": {
    "version": [
@@ -58142,11 +59573,11 @@
   "repo": "rocky/emacs-loc-changes",
   "unstable": {
    "version": [
-    20160801,
-    1708
+    20200722,
+    1111
    ],
-   "commit": "4d1dcdf7631c23b1259ad4f72bf9686cf95fb46c",
-   "sha256": "0a81933l3rrsbi9vkvfb1g94vkhl5n3fkffpy4icis97q7qh08mc"
+   "commit": "0a55bcba684f78417e831eef2cc32da24a207f29",
+   "sha256": "1fywhx8jk25mxrv0i446r519x4vjdsgvm1rzwdd0mcnjbwpv90b4"
   },
   "stable": {
    "version": [
@@ -58337,11 +59768,19 @@
   "repo": "Wilfred/logstash-conf.el",
   "unstable": {
    "version": [
-    20170524,
-    1929
+    20200725,
+    1843
+   ],
+   "commit": "131565042f8f12b9b88bd477959246dd034fa7d6",
+   "sha256": "1cyrmhnc38piw8q6d8j8xwyk0vl0a00mzjhmswkwd76w06adr9md"
+  },
+  "stable": {
+   "version": [
+    0,
+    4
    ],
-   "commit": "4e127f9aec190786613445aa88efa307ff7c6748",
-   "sha256": "119yb1wk1n5ycfzgpffcwy7yx8ar8k1gza0gvbq3r61ha5a9qijs"
+   "commit": "652dddecf19f3e39a36055823e44fcffc5b44aeb",
+   "sha256": "0xdqfkcpv1677xfp54j2rwc9wjl3mfs9542jjcs0ym2063r6fzla"
   }
  },
  {
@@ -58384,11 +59823,11 @@
   "repo": "xuchunyang/lol-data-dragon.el",
   "unstable": {
    "version": [
-    20200321,
-    2142
+    20200705,
+    1822
    ],
-   "commit": "6f53bb3971daad60bd0529d1e3889d5f9fedf235",
-   "sha256": "0xblv8l6krp3581m0xava95pm6wcsjm3rsl47dsvzpgns1kyz8lx"
+   "commit": "0deec9867bd7ba96220ee2968a9b2a94fd474431",
+   "sha256": "136x1yqdzjh6a2vhyd73yhgg6kmwl00c5c14ny5davlghwd5g7aw"
   }
  },
  {
@@ -58522,6 +59961,47 @@
   }
  },
  {
+  "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",
+  "fetcher": "github",
+  "repo": "abo-abo/lpy",
+  "unstable": {
+   "version": [
+    20200722,
+    1159
+   ],
+   "deps": [
+    "lispy"
+   ],
+   "commit": "c6744639ee313ee6dd4bc1e14b651d944b2ee1fd",
+   "sha256": "1vypwkx3020wx95cg34zi03pgarbjdhxpchbfvsj6bkd5v4bq6mc"
+  }
+ },
+ {
   "ename": "lsp-dart",
   "commit": "acbba6bc6f1bb6e1153f1f75ca1dc025bb5a8993",
   "sha256": "0q2x3i5yydnrplfgk8fcngdsxf1g1vz1jzkbwhiqf46wrv5vxwl3",
@@ -58529,40 +60009,38 @@
   "repo": "emacs-lsp/lsp-dart",
   "unstable": {
    "version": [
-    20200423,
-    2120
+    20200814,
+    1405
    ],
    "deps": [
     "dap-mode",
     "dart-mode",
     "dash",
     "f",
-    "ht",
     "lsp-mode",
     "lsp-treemacs",
     "pkg-info"
    ],
-   "commit": "a27d12209570fe10c60e55e0718123fc2e7f7e8f",
-   "sha256": "192nmx00s4hxylp4lqfycbi2g8aq7bbzmy70c1qxh7k5m24yigxj"
+   "commit": "437c548d411c9e166b7c658fd45294775235fd5f",
+   "sha256": "1pl7payda8i9cyca2j808inb8pmnyhh1sjc9f4qvxpbwd7b94vlr"
   },
   "stable": {
    "version": [
     1,
-    6,
-    10
+    14,
+    6
    ],
    "deps": [
     "dap-mode",
     "dart-mode",
     "dash",
     "f",
-    "ht",
     "lsp-mode",
     "lsp-treemacs",
     "pkg-info"
    ],
-   "commit": "a27d12209570fe10c60e55e0718123fc2e7f7e8f",
-   "sha256": "192nmx00s4hxylp4lqfycbi2g8aq7bbzmy70c1qxh7k5m24yigxj"
+   "commit": "437c548d411c9e166b7c658fd45294775235fd5f",
+   "sha256": "1pl7payda8i9cyca2j808inb8pmnyhh1sjc9f4qvxpbwd7b94vlr"
   }
  },
  {
@@ -58580,8 +60058,8 @@
     "dash",
     "lsp-mode"
    ],
-   "commit": "f46e56e554c9207d5ab5b9aebf994df8b41955f3",
-   "sha256": "1281qrskwwjz3x3mi99a6sp9694wbd08myhy0nlba6493ip8wbhz"
+   "commit": "5053b697d1541afd436bc4a93f51b6afd8f2b79f",
+   "sha256": "0kxvzhrm8l99bmf3zjig7axkfm5mn0yl4l4yfxpvvfsb04iqj10k"
   }
  },
  {
@@ -58603,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",
@@ -58610,15 +60120,15 @@
   "repo": "emacs-lsp/lsp-haskell",
   "unstable": {
    "version": [
-    20200407,
-    2216
+    20200527,
+    2014
    ],
    "deps": [
     "haskell-mode",
     "lsp-mode"
    ],
-   "commit": "f7d1f190ebacc96ddbc722e76730ca2db3c4ce38",
-   "sha256": "0wadna7y1ydx7d88rj15ylvy7gy2y30pr8wds6z10ds321qihs47"
+   "commit": "17d7d4c6615b5e6c7442828720730bfeda644af8",
+   "sha256": "1kkp63ppmi3p0p6qkfpkr8p5cx8qggmsj73dwphv90mdq0nrfsx8"
   }
  },
  {
@@ -58647,16 +60157,29 @@
   "repo": "emacs-lsp/lsp-ivy",
   "unstable": {
    "version": [
-    20200418,
-    1500
+    20200701,
+    2043
+   ],
+   "deps": [
+    "dash",
+    "ivy",
+    "lsp-mode"
+   ],
+   "commit": "4cdb739fc2bc47f7d4dcad824f9240c70c4cb37d",
+   "sha256": "08dpn0vcfdwwysijwdpnnj91m69yw0q464i0wmp51zpj3dyd4kb1"
+  },
+  "stable": {
+   "version": [
+    0,
+    4
    ],
    "deps": [
     "dash",
     "ivy",
     "lsp-mode"
    ],
-   "commit": "81e81ced99829358674c5a6bbe2c3e15cecd4ed8",
-   "sha256": "011126hz98qzb8zn1628z77j2s5w1hgvmb5saj2fr9wncgv1nax9"
+   "commit": "4cdb739fc2bc47f7d4dcad824f9240c70c4cb37d",
+   "sha256": "08dpn0vcfdwwysijwdpnnj91m69yw0q464i0wmp51zpj3dyd4kb1"
   }
  },
  {
@@ -58667,10 +60190,11 @@
   "repo": "emacs-lsp/lsp-java",
   "unstable": {
    "version": [
-    20200425,
-    1842
+    20200804,
+    1609
    ],
    "deps": [
+    "dap-mode",
     "dash",
     "dash-functional",
     "f",
@@ -58680,13 +60204,13 @@
     "request",
     "treemacs"
    ],
-   "commit": "4f66649c2f02978145bd2e51ff8e6444b8631964",
-   "sha256": "08y81krxrfy9jm0qwmrszp1cainj37339503fqcnddaxgihvgnx1"
+   "commit": "260016236fa0520b5b6ec7f51ca2086288524cba",
+   "sha256": "1h0hqgjpk5mbylma1fkva0vx45achf0k7ab2c5y8a2449niww90h"
   },
   "stable": {
    "version": [
-    2,
-    2
+    3,
+    0
    ],
    "deps": [
     "dash",
@@ -58695,10 +60219,11 @@
     "ht",
     "lsp-mode",
     "markdown-mode",
-    "request"
+    "request",
+    "treemacs"
    ],
-   "commit": "527e7b7abc11b51516b9bb52051201c2cdcd4a39",
-   "sha256": "0hcnvbyaqyypgby1bfj4zbrbq97amk8hfx0sj4w73rl46yf4jk3j"
+   "commit": "811760ad89a29939c28f47d0925f58d9eeea9fa3",
+   "sha256": "1grcapmd9k0a128vhgpy2a5dh6iqmf8bdvz0hykl4v7d55vcm423"
   }
  },
  {
@@ -58721,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",
@@ -58728,15 +60283,15 @@
   "repo": "non-Jedi/lsp-julia",
   "unstable": {
    "version": [
-    20200408,
-    1412
+    20200511,
+    1444
    ],
    "deps": [
     "julia-mode",
     "lsp-mode"
    ],
-   "commit": "9f158a290168149fd301a1c1c2016600106ad5be",
-   "sha256": "077mrvxf8df4dppl3xqa7p3ksm3wcms64l306y7i5x878vyjgibv"
+   "commit": "b342e5f74f9b815d2a7db9fffee7b9c46850d293",
+   "sha256": "13haa9jvcq6wvj8g1bnqrrczg1j50lwk41pr4n7q0i7313r8f89v"
   },
   "stable": {
    "version": [
@@ -58760,26 +60315,69 @@
   "repo": "ROCKTAKEY/lsp-latex",
   "unstable": {
    "version": [
-    20200425,
-    920
+    20200718,
+    928
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "6c5b0d926857b16c7cf6eae3111709393845f523",
-   "sha256": "1qgryycjbvdk2i11qsdzrrlmhsvrpwfn3kw4g73zri4vfwz9cr44"
+   "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"
   }
  },
  {
@@ -58790,8 +60388,8 @@
   "repo": "emacs-lsp/lsp-mode",
   "unstable": {
    "version": [
-    20200426,
-    440
+    20200819,
+    1349
    ],
    "deps": [
     "dash",
@@ -58802,13 +60400,13 @@
     "markdown-mode",
     "spinner"
    ],
-   "commit": "9c1ab8adf1a7674e15b643a4dd3781c4bed6537f",
-   "sha256": "127b2j0gfrkzb4g5p7hfv505afllhspni4w91kwgccf4b1a9di99"
+   "commit": "4145a70ce1d4bfb2463606ba34c5965080b080d9",
+   "sha256": "01nji47mh79ip67vagi8yb5dd9kscnvg4070zklnfyp9v0rfl73r"
   },
   "stable": {
    "version": [
-    6,
-    2,
+    7,
+    0,
     1
    ],
    "deps": [
@@ -58820,8 +60418,8 @@
     "markdown-mode",
     "spinner"
    ],
-   "commit": "5c8addac9d57dff268d2f6e825522fd5353e5e3e",
-   "sha256": "0f9d0zhblcjzrpggqclww2g7fyjky5rzpp7zj424005ahv0zd3xf"
+   "commit": "4db1151dbf1fe84769433d841e90803448b0b354",
+   "sha256": "1z8zm7qr21hvhl6rnbznv2l9drh1pp5y4zkjrx5ac4x77b8i4aaz"
   }
  },
  {
@@ -58842,8 +60440,8 @@
     "lsp-mode",
     "lsp-treemacs"
    ],
-   "commit": "e16e91d6a2a6cdb406ee9b98cfb47f7a32e41d61",
-   "sha256": "1fyghfl1acrghf8lisg760cgxw4rnz29ym4mzlznc0lb80d43cg3"
+   "commit": "b462cfa9b8071c624b905baf37a255d808ac6376",
+   "sha256": "1wig6hr5g0q0lg7zkqw1bfgagpx1ndpga75lnxaqpm0f0rgwdc33"
   }
  },
  {
@@ -58854,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"
   }
  },
  {
@@ -58931,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",
@@ -58938,28 +60556,26 @@
   "repo": "emacs-lsp/lsp-python-ms",
   "unstable": {
    "version": [
-    20200425,
-    555
+    20200811,
+    1204
    ],
    "deps": [
-    "cl-lib",
     "lsp-mode"
    ],
-   "commit": "19feb4aaaa03382e5d9841f237dd1685d8fe2994",
-   "sha256": "040qahn9h30n44ik0yrcdysx9lhvdnjxh1wj5nzylmzblxz9s2ga"
+   "commit": "a884a9a4eb1a3acd3d70c776aec5e968bbdc1731",
+   "sha256": "02fws6ph1ikpx86709dswlag180m6b34nchqcsfcvx4zp7qg2wj2"
   },
   "stable": {
    "version": [
     0,
-    6,
+    7,
     0
    ],
    "deps": [
-    "cl-lib",
     "lsp-mode"
    ],
-   "commit": "5d0c799099aa5810858174f390e28fff3894bc06",
-   "sha256": "002h0i93blsv092pnfmzsfx0pj98r9glki0ki9n7gxg1z3nb0ybp"
+   "commit": "7a502e6c09456cbe8b5f6c64883c79f5ce08e5a9",
+   "sha256": "0rkxhm9lmvsalyzq96452cgpn5cqljw7b9d9xcxkkl2cwz1745f3"
   }
  },
  {
@@ -58982,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",
@@ -58995,8 +60645,8 @@
    "deps": [
     "lsp-mode"
    ],
-   "commit": "04d75b6a0be5894fea4a55fec0b2ccedf5b3be58",
-   "sha256": "09vvjb215qz4l31bs2pvwdnnahmyhh34zhf1ghymcr2d34zqiqn0"
+   "commit": "130f7a8f7a37869515953aa7715b3b969c3d7a0b",
+   "sha256": "0mz1wdxn31qngk98k924mwf4f5pb8v1y9jjl2sf4mrjw1wz2xsnb"
   }
  },
  {
@@ -59007,8 +60657,8 @@
   "repo": "emacs-lsp/lsp-treemacs",
   "unstable": {
    "version": [
-    20200414,
-    407
+    20200815,
+    1841
    ],
    "deps": [
     "dash",
@@ -59018,8 +60668,24 @@
     "lsp-mode",
     "treemacs"
    ],
-   "commit": "9d1a42b7d7abb112035f05f50ffde9834da034ae",
-   "sha256": "1kbr2ndbg0lqjcnsyvmpv513kzj3gy0kd0wa18ixh96i92a2znar"
+   "commit": "3f8ca910c8e8724f93d8268a91771a51427684ff",
+   "sha256": "0xnbw3j7n10wp6jbzrgrr0xfzilrlhrmmzs4d00y56g1fmqn3jja"
+  },
+  "stable": {
+   "version": [
+    0,
+    3
+   ],
+   "deps": [
+    "dash",
+    "dash-functional",
+    "f",
+    "ht",
+    "lsp-mode",
+    "treemacs"
+   ],
+   "commit": "08e256c45d2e95b510a98a8b88b0531e8785e519",
+   "sha256": "1z9cb7i546pbzvxii6lsj31jq8m70xrzscphl5z71vh93sydyhkb"
   }
  },
  {
@@ -59030,8 +60696,8 @@
   "repo": "emacs-lsp/lsp-ui",
   "unstable": {
    "version": [
-    20200402,
-    839
+    20200816,
+    841
    ],
    "deps": [
     "dash",
@@ -59039,13 +60705,14 @@
     "lsp-mode",
     "markdown-mode"
    ],
-   "commit": "242dfe859c3497c456eaacfd84942e12419529fe",
-   "sha256": "1sx4nn6mkqhxp67jvh8pp0i4g26rzyvlq2b59r7ipmxh91c2a4fh"
+   "commit": "c39ae3713f95a2d86e11fd1f77e89a671d08d18a",
+   "sha256": "033ah4mz3pa6da3xdn6yk3lmkv6lanpj07b0icf30c6bp7rmk3il"
   },
   "stable": {
    "version": [
-    6,
-    2
+    7,
+    0,
+    1
    ],
    "deps": [
     "dash",
@@ -59053,8 +60720,8 @@
     "lsp-mode",
     "markdown-mode"
    ],
-   "commit": "207bc8d61abff7c3024f8a484f63bc60bc4ad58b",
-   "sha256": "024753bi0p1jyjhw7wk8k6s16kbwab5ar4cfasvbn8g08acf293b"
+   "commit": "449f3a6b80a60d88c4ed300e69d64eb8e875f1c7",
+   "sha256": "09dmhhxmfjnzdc5kygwsjf8nwqlnq9rbgrca679s2wy93miqj7vc"
   }
  },
  {
@@ -59065,11 +60732,11 @@
   "repo": "immerrr/lua-mode",
   "unstable": {
    "version": [
-    20200405,
-    1305
+    20200508,
+    1316
    ],
-   "commit": "658bf8f6c2bdcfe41cd14f5fb651563b41d0fbaa",
-   "sha256": "1qaqp2s5fnb2zz3bzc1yx79ilqxrf04lmd5gkk56nka4flyslp80"
+   "commit": "35b6e4c20b8b4eaf783ccc8e613d0dd06dbd165c",
+   "sha256": "1bwyyp9fbvy0p4f3mmbqc0plxrcm0ag2r3zb74gb5k2vcxi2vdw4"
   },
   "stable": {
    "version": [
@@ -59120,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": [
@@ -59147,11 +60811,11 @@
   "repo": "abo-abo/hydra",
   "unstable": {
    "version": [
-    20200227,
-    1301
+    20200507,
+    1518
    ],
-   "commit": "16fa8d109ec5799931a793b2e866ea9d593bee84",
-   "sha256": "1l6pi5ldmdcgv5qyg3kk1x8sxb639brzbfj0iddy5752hmg08g3h"
+   "commit": "112e689f75b59398d8eca79ac6562dca12b8a959",
+   "sha256": "0famsjgsgd61fm3l5m9mqg4szf8lcgcb57paxlg8rxnsmxmwga7d"
   },
   "stable": {
    "version": [
@@ -59444,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"
   }
  },
  {
@@ -59486,8 +61150,8 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20200425,
-    2117
+    20200816,
+    955
    ],
    "deps": [
     "async",
@@ -59496,8 +61160,8 @@
     "transient",
     "with-editor"
    ],
-   "commit": "8de6ecf5c5c840f8a964c3e5bd4d7a1aedf04e10",
-   "sha256": "0fwaasr7g4qj9l8dxcy1228p2rpb2xy16w2g27gqdzyd6a5sc2jw"
+   "commit": "321214c3a2dd10fdf672ba96bd00703a51094bbe",
+   "sha256": "152i5kvkx8hsy9qlhalhjc4sf6ly3rlfymb8daygj428363xx25n"
   },
   "stable": {
    "version": [
@@ -59525,15 +61189,15 @@
   "repo": "magit/magit-annex",
   "unstable": {
    "version": [
-    20200224,
-    1
+    20200516,
+    2028
    ],
    "deps": [
     "cl-lib",
     "magit"
    ],
-   "commit": "0bc96737634e78ac7c7f8a3f73190531c0890914",
-   "sha256": "1lm8412n2046fz8n7rfbadyww2074lsxq0w4gm1x1alraz5im5h4"
+   "commit": "c5ecb4b53ea2461e737ea00242ef1e69e35da398",
+   "sha256": "0f1psh03hsb57h3r66zfa0jmwkky12121lhvpynlgj330ryxl5bj"
   },
   "stable": {
    "version": [
@@ -59570,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",
@@ -59755,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": [
@@ -59824,8 +61507,8 @@
     "libgit",
     "magit"
    ],
-   "commit": "8de6ecf5c5c840f8a964c3e5bd4d7a1aedf04e10",
-   "sha256": "0fwaasr7g4qj9l8dxcy1228p2rpb2xy16w2g27gqdzyd6a5sc2jw"
+   "commit": "321214c3a2dd10fdf672ba96bd00703a51094bbe",
+   "sha256": "152i5kvkx8hsy9qlhalhjc4sf6ly3rlfymb8daygj428363xx25n"
   }
  },
  {
@@ -59905,26 +61588,26 @@
   "repo": "magit/magit-popup",
   "unstable": {
    "version": [
-    20200306,
-    223
+    20200719,
+    1015
    ],
    "deps": [
     "dash"
    ],
-   "commit": "f316a085b9f66804692554df46c0f4f536a45b78",
-   "sha256": "1d650wny0201vh4hmkmx290rq0b2fnlwlb8ivys7mai9d380vlwi"
+   "commit": "d8585fa39f88956963d877b921322530257ba9f5",
+   "sha256": "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"
   },
   "stable": {
    "version": [
     2,
     13,
-    2
+    3
    ],
    "deps": [
     "dash"
    ],
-   "commit": "df9abf1a1bce3fadb5e0657eb8f4c7026efa3c69",
-   "sha256": "1ifhph1mj7wjar62d65fjx45qsjwsyslbj7liih3v0r4by5gyxmw"
+   "commit": "d8585fa39f88956963d877b921322530257ba9f5",
+   "sha256": "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"
   }
  },
  {
@@ -59953,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"
   }
  },
  {
@@ -59973,14 +61656,14 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20200425,
-    2044
+    20200816,
+    955
    ],
    "deps": [
     "dash"
    ],
-   "commit": "8de6ecf5c5c840f8a964c3e5bd4d7a1aedf04e10",
-   "sha256": "0fwaasr7g4qj9l8dxcy1228p2rpb2xy16w2g27gqdzyd6a5sc2jw"
+   "commit": "321214c3a2dd10fdf672ba96bd00703a51094bbe",
+   "sha256": "152i5kvkx8hsy9qlhalhjc4sf6ly3rlfymb8daygj428363xx25n"
   },
   "stable": {
    "version": [
@@ -60054,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": [
@@ -60564,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"
   }
  },
  {
@@ -60764,14 +62447,26 @@
   "repo": "plandes/mark-thing-at",
   "unstable": {
    "version": [
-    20190817,
-    1623
+    20200427,
+    1453
    ],
    "deps": [
     "choice-program"
    ],
-   "commit": "0d2220fdc81c33a36ab5f136856f9f2f79cd01a7",
-   "sha256": "0xxip63gkq76lhlafpgklpnj3n345fw95pdwhn5blzsjrx77ig6h"
+   "commit": "a69696635616c10184a3289d459d8eb532f04f47",
+   "sha256": "0iiwa5cv43177irm4kj9jzfr1jzkw0gw0rmy9vnnbggfgmklzxrq"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    2
+   ],
+   "deps": [
+    "choice-program"
+   ],
+   "commit": "a69696635616c10184a3289d459d8eb532f04f47",
+   "sha256": "0iiwa5cv43177irm4kj9jzfr1jzkw0gw0rmy9vnnbggfgmklzxrq"
   }
  },
  {
@@ -60835,22 +62530,19 @@
   "repo": "jrblevin/markdown-mode",
   "unstable": {
    "version": [
-    20200421,
-    2222
+    20200815,
+    203
    ],
-   "commit": "365697302345f8b9dc10bc975477452a282f7ae0",
-   "sha256": "1afjp0j5498zzbl8ycrz37cqdssfjlxcx5g4addzv0xaicfghgk6"
+   "commit": "ef2cb4d94af68908a4963afa492afba876725128",
+   "sha256": "0pi971jgil2wpfnrg7j7i9hh3a418nxf82jkammzry2ijv2q5kj5"
   },
   "stable": {
    "version": [
     2,
-    3
-   ],
-   "deps": [
-    "cl-lib"
+    4
    ],
-   "commit": "cde5c5d2bcce470c494b76e23cfe1364b6291c20",
-   "sha256": "1zm1j4w0f3h01bmmpsv4j4mh6i13nnl8fcqlj2hsa1ncy1lgi8q7"
+   "commit": "7b854c8e70b6d6edee12aec4194f4eb239586804",
+   "sha256": "0g0ja4h651yfabm3k6gbw4y8w7wibc9283fyfzb33kjj38ivl5d7"
   }
  },
  {
@@ -60941,30 +62633,30 @@
   "repo": "ardumont/markdown-toc",
   "unstable": {
    "version": [
-    20170711,
-    1949
+    20200517,
+    1233
    ],
    "deps": [
     "dash",
     "markdown-mode",
     "s"
    ],
-   "commit": "7038f4f6d5c2bc7e4aea89699a607ac2b7dd16a8",
-   "sha256": "1kvf30ib1kxp29k1xwixkq6l4jjr3q3g1wpvh9yfzk5ld97zmry1"
+   "commit": "9565eeaa1d26bc0ab83eb65bd30470888f724044",
+   "sha256": "1l49hi4nwralx5kg4aqjj2b592y71ba4i91vmlzk5rrcjmdnc6b0"
   },
   "stable": {
    "version": [
     0,
     1,
-    2
+    5
    ],
    "deps": [
     "dash",
     "markdown-mode",
     "s"
    ],
-   "commit": "15587c76bec43dd778a2034035f98a79ad29e96a",
-   "sha256": "00rvpbfcdy1npddxa7yynqpzwrx1h2bm69x9yh42dv6ss3vk1sjs"
+   "commit": "9565eeaa1d26bc0ab83eb65bd30470888f724044",
+   "sha256": "1l49hi4nwralx5kg4aqjj2b592y71ba4i91vmlzk5rrcjmdnc6b0"
   }
  },
  {
@@ -60984,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,
@@ -61079,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"
   }
  },
  {
@@ -61191,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"
   }
  },
  {
@@ -61270,11 +62962,11 @@
   "repo": "rudi/maude-mode",
   "unstable": {
    "version": [
-    20160222,
-    1607
+    20200725,
+    2035
    ],
-   "commit": "c9543bb8a172fa77af592388e7f520a4a6d38987",
-   "sha256": "1sn9bdaq3mf2vss5gzmxhnp9fz43cakxh36qjdgqrvx302nlnv52"
+   "commit": "008f372631a1efe15be033792cfb1686b1736aeb",
+   "sha256": "07a51iwlzj88b6jaxzz8p8r7l9kcbflw8l11h67sx5y0gv23a6vv"
   }
  },
  {
@@ -61318,8 +63010,8 @@
     20170120,
     1705
    ],
-   "commit": "daeb5c35bb677a23df69336b4843ea59517e57ed",
-   "sha256": "1qpzha7j7g5fw1lazw5l6mspgrnsnqybqgpq48icbx2vvil9y3q7"
+   "commit": "f7048ce95443f2c06cb6b140814451e3a037103a",
+   "sha256": "0kjhfc2jlhq9qdwigx1iq8wpvzfr7jlv8jfqa2j2va8h0jp2jnp6"
   },
   "stable": {
    "version": [
@@ -61530,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"
   }
  },
  {
@@ -61554,21 +63246,21 @@
   "repo": "mopemope/meghanada-emacs",
   "unstable": {
    "version": [
-    20191215,
-    1353
+    20200628,
+    247
    ],
    "deps": [
     "company",
     "flycheck",
     "yasnippet"
    ],
-   "commit": "70bfbf553c7b7fb1928672e9a95b7137e02c2d4b",
-   "sha256": "07rl9lr4dyb9ld2cgvkxkfirls03jznggaa1j776nppk00fhz3bg"
+   "commit": "1e41f7f2c7a172e9699f3557c97c3f39a149bfc2",
+   "sha256": "1cplw3x94xc2yqvvimkjgppbb36mnj8n3gcx0k2gy7zwzdvzg4c6"
   },
   "stable": {
    "version": [
     1,
-    2,
+    3,
     1
    ],
    "deps": [
@@ -61576,8 +63268,8 @@
     "flycheck",
     "yasnippet"
    ],
-   "commit": "70bfbf553c7b7fb1928672e9a95b7137e02c2d4b",
-   "sha256": "07rl9lr4dyb9ld2cgvkxkfirls03jznggaa1j776nppk00fhz3bg"
+   "commit": "1e41f7f2c7a172e9699f3557c97c3f39a149bfc2",
+   "sha256": "1cplw3x94xc2yqvvimkjgppbb36mnj8n3gcx0k2gy7zwzdvzg4c6"
   }
  },
  {
@@ -61744,15 +63436,15 @@
   "repo": "DogLooksGood/meow",
   "unstable": {
    "version": [
-    20200425,
-    1327
+    20200727,
+    851
    ],
    "deps": [
     "cl-lib",
     "dash"
    ],
-   "commit": "f9e4296ed96ca31c8197ba8a5576fc94ee433755",
-   "sha256": "0dgdf6xlylnnsm7954xa8vf50x4mfcr8gvajrcii2shbcb23b8c8"
+   "commit": "c9296491e923a678ac9a42a2743f21ce1e0552c4",
+   "sha256": "00636in9cgcnij1sz6vj5y5vijdd13g5akwj1facf0v4lrlvacpn"
   }
  },
  {
@@ -61766,17 +63458,17 @@
     20191025,
     851
    ],
-   "commit": "21f4ba18acd9ca3dc5c8263acfc46042a6aa557e",
-   "sha256": "1sp1g70wy8qp34641hlpk5xaf7vv359xgwc7z8cw7yvj39mn98va"
+   "commit": "3751cbfff75022c396c4ff4dc1729048f80daa4f",
+   "sha256": "0vbzbjajm0ww864cl7aaj70s3fkgg79cq8srdf5dmw1vwdrqq6ld"
   },
   "stable": {
    "version": [
     3,
     3,
-    4
+    6
    ],
-   "commit": "21f4ba18acd9ca3dc5c8263acfc46042a6aa557e",
-   "sha256": "1sp1g70wy8qp34641hlpk5xaf7vv359xgwc7z8cw7yvj39mn98va"
+   "commit": "464df1a60775fd2bb70f4efff4f8603eaf834b74",
+   "sha256": "0yw3a8mhjsjh9359cvk7kr5ch6dhwvhv9zilk12fgyii9iw08mlz"
   }
  },
  {
@@ -61816,14 +63508,14 @@
   "repo": "abrochard/mermaid-mode",
   "unstable": {
    "version": [
-    20200420,
-    2258
+    20200804,
+    2107
    ],
    "deps": [
     "f"
    ],
-   "commit": "b8673381ff8bbfbdf3f165ae928e7c775a3117e9",
-   "sha256": "14w2mwqiksmng8pzm4l0c458q0i2m3p4wcfvvmagyqk6mfl05m4l"
+   "commit": "795bcf830d9345474fad864602180408891b292d",
+   "sha256": "0qdpbayxar0vkan0m83k4jir8saqy47nq2240608l8h9bjv48hz2"
   }
  },
  {
@@ -61834,11 +63526,11 @@
   "repo": "wentasah/meson-mode",
   "unstable": {
    "version": [
-    20200216,
-    2254
+    20200806,
+    1325
    ],
-   "commit": "bc6c09136c7f7de6f4b6ce9294e9b998e24b93c7",
-   "sha256": "113vj7z8zk80653ldq4sfxkk3pja8yjscywb0cwpkaq0088n5jf7"
+   "commit": "b471b9282724d6f324dbd6fa25d083635fc4293a",
+   "sha256": "0y5a1sfk4h4szv4v6693i3ylrf3xiwf8khrahdaz0bx210h2qmpg"
   },
   "stable": {
    "version": [
@@ -61850,6 +63542,21 @@
   }
  },
  {
+  "ename": "message-attachment-reminder",
+  "commit": "7412f7428d16955968cd78de3bb3abcbbcd5c508",
+  "sha256": "0hwah27sw3myka86gywjjncp0i8lnqiagklxdh6z6z4hl9jk105r",
+  "fetcher": "github",
+  "repo": "alexmurray/message-attachment-reminder",
+  "unstable": {
+   "version": [
+    20200428,
+    124
+   ],
+   "commit": "ce506b27b15cc39a47c58ff795026eaea8632e2f",
+   "sha256": "0wpj3ich8wisq0jy304fngj0nkkvdqzfkfcx0s8ib6l04v29ypa5"
+  }
+ },
+ {
   "ename": "messages-are-flowing",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "0v74b7cjj87kncndxfpfs6dcc4jcl18wpbirffl7dw6mac2anw6m",
@@ -61944,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"
   }
  },
  {
@@ -61965,29 +63672,29 @@
   "repo": "ianxm/emacs-tracker",
   "unstable": {
    "version": [
-    20200419,
-    1758
+    20200602,
+    1032
    ],
    "deps": [
     "seq"
    ],
-   "commit": "287ced1bd51080897b2d6084f72f4a697e9b7e94",
-   "sha256": "190jpvd1li2185d1m9k2md5x0fz156a7lwwl57n4ir54j4h0s8ri"
+   "commit": "6283e1fc5ddb65323513eb77638181551bda967b",
+   "sha256": "12sw627rhvqldbg8cvgg4fim91h3r9qlki5ni1fi0y5sa9iqh20j"
   }
  },
  {
   "ename": "metronome",
-  "commit": "2f77239fecb41487a6aa03e6fc219cba96dee18d",
-  "sha256": "1kkm7s6hiyk3h1bnf9pfnsikmfpp998041wg0bwqnpzhzzlq6fy4",
+  "commit": "123d2788dc05d53862ebbf31476cfd3a43f2f348",
+  "sha256": "0arsx39lrbwp3a4krjn8pggqrqm250c8sk3c6z37q8d2g3sazp11",
   "fetcher": "gitlab",
   "repo": "jagrg/metronome",
   "unstable": {
    "version": [
-    20200309,
-    1918
+    20200502,
+    1748
    ],
-   "commit": "ab9478da0da3aadba26c65beba938c3928c823c3",
-   "sha256": "0qrjyn2qc5k5a6gz1m1izx315sy7dd0cdzgiyrwp8za39gkhgbl7"
+   "commit": "18257ecdd7b3d816104e83a5f0f96e676cc9fbfc",
+   "sha256": "14qzb1i9l149nw4zhx8jlrrz7nvflc974zr5lbv7vv2zky0pya6w"
   }
  },
  {
@@ -62021,11 +63728,11 @@
   "repo": "sggutier/mexican-holidays",
   "unstable": {
    "version": [
-    20190506,
-    245
+    20200622,
+    132
    ],
-   "commit": "663633be1d693f6081d7d000e05d15ddbf71aa10",
-   "sha256": "09b0292d87xm5mrhfhv7j11ljl4j9hv8h5dibzrrlh1b3vsg2xkj"
+   "commit": "5b5dd6e71505e8938bac9e9733b30bd394631923",
+   "sha256": "04d4148nq3lmrpkxvzzkn88j30iv2l2466ps035x7v8hc83wxnjw"
   }
  },
  {
@@ -62258,11 +63965,11 @@
   "repo": "muffinmad/emacs-mini-frame",
   "unstable": {
    "version": [
-    20200424,
-    852
+    20200430,
+    721
    ],
-   "commit": "3aa8de59d170d7bdc16e5f829d952d82abd7739c",
-   "sha256": "02j2w4c4wvqr1csmr94rzhbrwhqfb5wmjngxa9wl58z1plwy4d8m"
+   "commit": "78d9bbb272acc5f2927648cc706321f95e2955c9",
+   "sha256": "1d4zgrpy21j35dzcspbv4szbprxxv9mygwqfx0x2bs53z4abk1kg"
   }
  },
  {
@@ -62288,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": [
@@ -62430,8 +64137,8 @@
     20190113,
     2132
    ],
-   "commit": "063b4d8ca33d55d04c341f0b2b777ec241a3e201",
-   "sha256": "0lvg7iym6sxhgl4ab9a6x8c2mh2d32vkf0033bs3vphx657gra6l"
+   "commit": "221b43aad320d226863892dfe4d85465e8eb81ce",
+   "sha256": "1zsabgn5mi63ry8jg1li866jcix9mf588ypdfajk8747a6127qd0"
   }
  },
  {
@@ -62442,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"
   }
  },
  {
@@ -62472,26 +64179,26 @@
   "repo": "arthurnn/minitest-emacs",
   "unstable": {
    "version": [
-    20200224,
-    1823
+    20200506,
+    308
    ],
    "deps": [
     "dash"
    ],
-   "commit": "97d7d1760b24e117ffd163531b0f57fd4321677b",
-   "sha256": "0d8kg68yy5x1y3ivj43vzcakb3gii6bh8jm40g4sah5f53bbrs16"
+   "commit": "ddd152c990a528ad09a696bfad23afa4330ea4d7",
+   "sha256": "0mdbn8v6m4902krnagsp74r4501d4yfxc33i55l4l14gvjgx1239"
   },
   "stable": {
    "version": [
     0,
-    8,
-    0
+    9,
+    2
    ],
    "deps": [
     "dash"
    ],
-   "commit": "2bed01262b0d888473468b5c7bd7d73694d31320",
-   "sha256": "0nd0jl5r5drnh98wdpqj2i7pgs7zvcizsh4qbvh8n0iw0c3f0pwh"
+   "commit": "97d7d1760b24e117ffd163531b0f57fd4321677b",
+   "sha256": "0d8kg68yy5x1y3ivj43vzcakb3gii6bh8jm40g4sah5f53bbrs16"
   }
  },
  {
@@ -62535,8 +64242,8 @@
     20200306,
     1220
    ],
-   "commit": "d1e04ca03aadb942dc4bee82f44848c3ce52b25c",
-   "sha256": "1yrjmyh8a0xqijyg16v20iqh13s7j4pf410f0214a4m9lp07pxpx"
+   "commit": "e4dcdec3a4472a507d6b249ae2194dacaa885ecb",
+   "sha256": "03m4rnfdfsbs44cfqjy8j2z6nbxs2yzhzgizlpsvg64441hdkfa0"
   }
  },
  {
@@ -62601,11 +64308,11 @@
   "repo": "jabranham/mixed-pitch",
   "unstable": {
    "version": [
-    20200321,
-    1331
+    20200511,
+    2052
    ],
-   "commit": "734fbdf2d2c17beee151faf39bd10174a87eea5d",
-   "sha256": "1i0yd7akkyqhkd8g2g793n6syiy0mbnlq9apg7p1s4xycmwxx684"
+   "commit": "1cad46fddf741ed7ec5fc477d70e079e908e9ce6",
+   "sha256": "062np4d7blbwjc1kciqcp6hngmwr8i540zsv5f8p2qki4804b8ng"
   },
   "stable": {
    "version": [
@@ -62643,11 +64350,11 @@
   "repo": "Mulling/mlso-theme",
   "unstable": {
    "version": [
-    20200329,
-    1516
+    20200513,
+    1751
    ],
-   "commit": "a4bb7b55ce81d8dcc0ad8d92acbde309c7cc1ea0",
-   "sha256": "15fmzsf5rpgx5f1fr45j24hgzmz95zxkj1jihdb64p049ak2h5a9"
+   "commit": "059c5773403b73a14a1b04d62d1d5b077a3f6e06",
+   "sha256": "1a00mybf269hlfzfhpcvlkkqgwck73hz5w1qsspg5w9w78qlymkn"
   }
  },
  {
@@ -62680,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": "9ffe364f3a31c7a771fe3401b8924642609953e8",
+   "sha256": "1yr7nd6kmvy3mc5k6vvwaikzy9cvly4617l4s9zrfrbnldpsyjk7"
+  },
+  "stable": {
+   "version": [
+    0,
+    5,
+    7
+   ],
+   "deps": [
+    "cl-lib"
    ],
-   "commit": "5c9ff92137b547569264eeca1ab2a86e4ba12f55",
-   "sha256": "0rpp748ym79sxccp9pyrwri14m7624zzb80srfgjfdpysrrs0jrr"
+   "commit": "ff0b214f27d5dddeb856acb4216e77a864dcc0b2",
+   "sha256": "0lxd55yhz0ag7v1ydff55bg4h8snq5lbk8cjwxqpyq6gh4v7md1h"
   }
  },
  {
@@ -62711,8 +64430,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "6d3eedf4fae3c88dee33691aa2856514122adc8c",
-   "sha256": "0fykf7svgsbcjfcsbp1r571mgjhxwkdvmmhhl2clyi5z3mwg0s1g"
+   "commit": "d7729563e656a3e8adef6bce60348861ba183c09",
+   "sha256": "05f218f0lncgx2bbipjz7db09rrka8fq0qf5qkvbgssagxyl7rav"
   },
   "stable": {
    "version": [
@@ -62783,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": [
@@ -62878,8 +64597,8 @@
     20190713,
     1335
    ],
-   "commit": "8f71e0a85c2f6039111663e65d9a13f3310f12ed",
-   "sha256": "0vz58nk044jm97wh77v02h24571nwg57j1vx2v4rx9wmwrnifwid"
+   "commit": "4b2b92b14ed0b64fb0a0fa80a374ec9f87fbfeb6",
+   "sha256": "18dbnicaqryq4xhv4d7hds61k85kj3bnpcqv7rippvlyrqm2r6wx"
   },
   "stable": {
    "version": [
@@ -62976,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": [
@@ -62994,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,
@@ -63038,20 +64757,20 @@
   "repo": "protesilaos/modus-themes",
   "unstable": {
    "version": [
-    20200425,
-    1503
+    20200819,
+    628
    ],
-   "commit": "0344a1b534468bdf072040d467ac853215d4fa63",
-   "sha256": "1bpryv6i8vm3g7avhns7nr65d82zq5kahh9kap7zg4w2a4gx1hl7"
+   "commit": "26a211835b6e62e4ad29b2feee75472e02046fa8",
+   "sha256": "12rqgyrnk6x2a7b635wg4c5ihyh9s8ig7s1431xqj91pdx7756kx"
   },
   "stable": {
    "version": [
     0,
-    7,
+    11,
     0
    ],
-   "commit": "cedb331001d0623eb003591b2f650b8e5e4069ed",
-   "sha256": "0nw3jlx2h9127y9b8mmyrps9jyvr33yz2dr9q33j9fll1b8wapn0"
+   "commit": "c376b08059028737390f41fb82f64d748c42970c",
+   "sha256": "08alhr6d7shmm1fcvca0a0ipi9mvnaqp5klvqdb1d171h457fcv3"
   }
  },
  {
@@ -63062,20 +64781,20 @@
   "repo": "protesilaos/modus-themes",
   "unstable": {
    "version": [
-    20200425,
-    1503
+    20200819,
+    628
    ],
-   "commit": "0344a1b534468bdf072040d467ac853215d4fa63",
-   "sha256": "1bpryv6i8vm3g7avhns7nr65d82zq5kahh9kap7zg4w2a4gx1hl7"
+   "commit": "26a211835b6e62e4ad29b2feee75472e02046fa8",
+   "sha256": "12rqgyrnk6x2a7b635wg4c5ihyh9s8ig7s1431xqj91pdx7756kx"
   },
   "stable": {
    "version": [
     0,
-    7,
+    11,
     0
    ],
-   "commit": "cedb331001d0623eb003591b2f650b8e5e4069ed",
-   "sha256": "0nw3jlx2h9127y9b8mmyrps9jyvr33yz2dr9q33j9fll1b8wapn0"
+   "commit": "c376b08059028737390f41fb82f64d748c42970c",
+   "sha256": "08alhr6d7shmm1fcvca0a0ipi9mvnaqp5klvqdb1d171h457fcv3"
   }
  },
  {
@@ -63238,11 +64957,11 @@
   "repo": "belak/emacs-monokai-pro-theme",
   "unstable": {
    "version": [
-    20200318,
-    830
+    20200525,
+    1430
    ],
-   "commit": "90f34d48baad78a86f60eb3fae902c545bb82505",
-   "sha256": "0sjxyvv16jm2xss6kxiankn9n92z52l20p2mkv95p2bd47mxn5iw"
+   "commit": "d1bc669200bf5753cf1963e5e65269e0d60648d5",
+   "sha256": "0zqrn1pvlrgbf0yc34bycahvrl8sl67jmc0436yx3lgjwpkvhf0f"
   }
  },
  {
@@ -63292,11 +65011,11 @@
   "repo": "sanel/monroe",
   "unstable": {
    "version": [
-    20190912,
-    1624
+    20200703,
+    1254
    ],
-   "commit": "508f5ed0f88b0b5e01a37d456186ea437f44d93c",
-   "sha256": "01dwnb7f6c49q8vr3qb9m5h1wh9h119axxalqa71wahi1ygrcydc"
+   "commit": "b540e13cf767055086c37b2878e551fd3eddf5c5",
+   "sha256": "0sfj0b7j3385la01d8vq1s8ynpl5vzwdx7vdpyhbi3hrh02xkcqh"
   },
   "stable": {
    "version": [
@@ -63316,20 +65035,20 @@
   "repo": "jessieh/mood-line",
   "unstable": {
    "version": [
-    20191101,
-    1955
+    20200722,
+    2327
    ],
-   "commit": "0b07bdc7e77e19d7c722c2db803be0d3b47aa692",
-   "sha256": "0i40rbc0m4sya4f2lcfc6v6kn4kc6rny3j14b5rma66jyx08fcwg"
+   "commit": "64cbd61c3d9ebf8eb7e1b6366279e32382405f90",
+   "sha256": "0fh9j9fkgl433nykfzjnzap5labi4sdndfk1nv4f904ij69pmvxb"
   },
   "stable": {
    "version": [
     1,
     2,
-    1
+    4
    ],
-   "commit": "43682f713eb1b95b98c1ec18e4f51daebd9ad43f",
-   "sha256": "03ms3yfp05b7c65pgjncm00r45fqgzal9xsp5gj58cm0yhclkcsd"
+   "commit": "64cbd61c3d9ebf8eb7e1b6366279e32382405f90",
+   "sha256": "0fh9j9fkgl433nykfzjnzap5labi4sdndfk1nv4f904ij69pmvxb"
   }
  },
  {
@@ -63340,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"
   }
  },
  {
@@ -63364,20 +65083,20 @@
   "repo": "tarsius/moody",
   "unstable": {
    "version": [
-    20200113,
-    2321
+    20200514,
+    1946
    ],
-   "commit": "2751d36152abcc2ac1479225392182b53f1e02dd",
-   "sha256": "1xyw4l42053595r76lj8safsx6pj25as0107wd96by3h7dg9m586"
+   "commit": "f6bebfe6fe51b728ebd013b7084becad23cabad3",
+   "sha256": "0n8p864yj5m3n7f9qiq9hy24dwfvv0a0wchx2818rppff6vfq3hf"
   },
   "stable": {
    "version": [
     0,
     5,
-    3
+    4
    ],
-   "commit": "2751d36152abcc2ac1479225392182b53f1e02dd",
-   "sha256": "1xyw4l42053595r76lj8safsx6pj25as0107wd96by3h7dg9m586"
+   "commit": "f6bebfe6fe51b728ebd013b7084becad23cabad3",
+   "sha256": "0n8p864yj5m3n7f9qiq9hy24dwfvv0a0wchx2818rppff6vfq3hf"
   }
  },
  {
@@ -63388,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"
   }
  },
  {
@@ -63510,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",
@@ -63572,20 +65314,20 @@
   "repo": "wyuenho/move-dup",
   "unstable": {
    "version": [
-    20200311,
-    1424
+    20200819,
+    940
    ],
-   "commit": "7a384e0e0889e07a9a81d007d8ccc654c7c89bd2",
-   "sha256": "040xg9bbficz300zqrnvk68b76ljnif9sdiag03hp61xqpzxmacm"
+   "commit": "c5a346d3058011b8152cceeb45858f9b4cef1b69",
+   "sha256": "1dfsfxy7v85qc2gl14gxhngnvkcdbq9gadnsabs1fq56qdgmq814"
   },
   "stable": {
    "version": [
     1,
-    0,
-    0
+    1,
+    2
    ],
-   "commit": "dae61de7aa5e2bf56a7bab1fa36fa3a39520a3c0",
-   "sha256": "1mrrxx2slxi1qgf483nnxv3y8scfsc844sfnzn4b7hjpfpali0r8"
+   "commit": "c5a346d3058011b8152cceeb45858f9b4cef1b69",
+   "sha256": "1dfsfxy7v85qc2gl14gxhngnvkcdbq9gadnsabs1fq56qdgmq814"
   }
  },
  {
@@ -63776,8 +65518,8 @@
     "dash",
     "mozc"
    ],
-   "commit": "01f09b6c0b308e9f7057fb2aa80171e2ce328bb8",
-   "sha256": "0vgyx7v79224mg3ci8i5kjasnh1w0c48jzwgxbjj270lrra3gfsr"
+   "commit": "90a6eb1db8fa1283b944432cfb83739286b37f92",
+   "sha256": "03pqqzzca9z3a1nbrfdkvfczzi7nr3bn75x7m4mdww9z3wxxda2c"
   },
   "stable": {
    "version": [
@@ -64047,11 +65789,11 @@
   "repo": "cdominik/mu2tex",
   "unstable": {
    "version": [
-    20200329,
-    758
+    20200512,
+    704
    ],
-   "commit": "536a7a0db4ddbdb30a16fdd56c79b78c9b50d865",
-   "sha256": "18s4mks7yxbxlhdkn9s2bgxyl14rv7ds7n6c7g3pzjd94j404b64"
+   "commit": "4b84cdac955cb36a8c44a2be48f3310252e3d3ad",
+   "sha256": "05rgx0nb028k1kmb9gbv4b0s20ksbjl0nksyrva2zpvd7xc1nyz9"
   }
  },
  {
@@ -64128,14 +65870,14 @@
   "repo": "agpchil/mu4e-maildirs-extension",
   "unstable": {
    "version": [
-    20200410,
-    820
+    20200508,
+    712
    ],
    "deps": [
     "dash"
    ],
-   "commit": "36b1f3a561af173eccc7bebf10ee060af44ed6e7",
-   "sha256": "1k8xar4yal5nc4ixx78gvs4fvlxpa2c4fzkq3xzh6jwfbrc7g013"
+   "commit": "4d2ece2226fa69a0e0bb23517a418145b92bd573",
+   "sha256": "1gyyj1fzc34qrlfbk86lrrrib46r7lrw7pdxwzrx8jz42rd38jma"
   },
   "stable": {
    "version": [
@@ -64154,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"
   }
  },
  {
@@ -64201,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",
@@ -64232,14 +65993,14 @@
   "repo": "ReanGD/emacs-multi-compile",
   "unstable": {
    "version": [
-    20160306,
-    2223
+    20200517,
+    1747
    ],
    "deps": [
     "dash"
    ],
-   "commit": "bd0331854774e7a269ce8a7dd49580cd397c0ec2",
-   "sha256": "1aswpv1m02n26620hgkcfd38f06bzmmijlr9rs5krv6snq5gdb8g"
+   "commit": "e3772f7e68968f7fa2c97615115cd3fc0f701229",
+   "sha256": "0r1ahchfhyqjyc0q0xp5x0p34d6hg4ga3cga1l6dlaw1xjflrsq2"
   }
  },
  {
@@ -64329,11 +66090,11 @@
   "repo": "manateelazycat/multi-term",
   "unstable": {
    "version": [
-    20200112,
-    533
+    20200514,
+    428
    ],
-   "commit": "7307ddd456db44045206253e5a905d3d8c143d5c",
-   "sha256": "0cqq6y7whx4zwwd8360vdmbvsmkrvmxnn7cvz6hafrh5mrcfqmvn"
+   "commit": "017c77c550115936860e2ea71b88e585371475d5",
+   "sha256": "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"
   },
   "stable": {
    "version": [
@@ -64352,15 +66113,15 @@
   "repo": "suonlight/multi-vterm",
   "unstable": {
    "version": [
-    20200329,
-    940
+    20200614,
+    548
    ],
    "deps": [
     "projectile",
     "vterm"
    ],
-   "commit": "11f1b0cc97a24aba66fb561a0a94e9a66375b30f",
-   "sha256": "0pzcwn13yj21qcga2agcv8as0jyrmw055fr8nbzvkp1jml4l3vwj"
+   "commit": "723658c162d483acc07fccf2dd8ae5b8582616f7",
+   "sha256": "1wgsqrr6jxv8dwf89406m53w1xzsvq45hrcc72x12hxkc1hay2vk"
   }
  },
  {
@@ -64448,6 +66209,25 @@
   }
  },
  {
+  "ename": "multistate",
+  "commit": "c844d8250242ce3f6d9955bb236042bd31c9b360",
+  "sha256": "0gidbdr0hlyxvkq1r15w5xp5ssqv061cyk9sdqdry4942dy0zgvg",
+  "fetcher": "gitlab",
+  "repo": "matsievskiysv/multistate",
+  "unstable": {
+   "version": [
+    20200514,
+    2206
+   ],
+   "deps": [
+    "cl-lib",
+    "ht"
+   ],
+   "commit": "eadd0df2745bf10500a9ad4ee8f66f3cb470bef0",
+   "sha256": "081rangw4iqk1lcahk01skh518ljdp6g4ww7zydjr813x7jzv2kv"
+  }
+ },
+ {
   "ename": "multitran",
   "commit": "d665759fa6491b77103920a75c18a561f6800c1c",
   "sha256": "0nxrzzlinl5310zfrb4z5j0553cmg11m9y2gaf990j61afaw8f32",
@@ -64485,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": [
@@ -64684,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",
@@ -64762,14 +66566,14 @@
   "repo": "mallt/mysql-to-org-mode",
   "unstable": {
    "version": [
-    20181012,
-    2034
+    20200602,
+    2019
    ],
    "deps": [
     "s"
    ],
-   "commit": "7c986065adcbe13a525e1da5db8aa4c80b0ef7a3",
-   "sha256": "15zalc1rciawf5v2nkhf0qnn16c6fdaxs3m8aard3yhyag05ic3d"
+   "commit": "f3afc506f8b0d037238e49290de4b028c6ad9dd1",
+   "sha256": "19g21zvvamlhy1yrqhqbd1x3km6q2m650xsvl613rpcdqsk8l2ic"
   },
   "stable": {
    "version": [
@@ -65116,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,
@@ -65161,11 +66965,11 @@
   "repo": "CeleritasCelery/emacs-native-shell-complete",
   "unstable": {
    "version": [
-    20200424,
-    1635
+    20200814,
+    2301
    ],
-   "commit": "ccb5b52940a9374fbfe92947f0101e7254ba445d",
-   "sha256": "0p3qrl59qhczwysydsak66j7ixpykr3397xdvjj3hkmmcrsachic"
+   "commit": "be7ced29c5a86e29c364f19d248634b8b54d0e52",
+   "sha256": "1lyad89byq54fva58njf7wiq2rw3767fxif1ykijirzx7q14ahxd"
   }
  },
  {
@@ -65393,8 +67197,8 @@
     20161029,
     2023
    ],
-   "commit": "ae60dc55822ea1715b203775179080c5d62700d8",
-   "sha256": "0q46r9r2vc50vn3bh321l317lgbbmmbylhgbxllbjpyaidfqzvb9"
+   "commit": "db4bc9078f1b6238da32df1519c1957e74b6834a",
+   "sha256": "07axi57f4q7rvsk3w15jrbql20fwmxn2rk07cc9ahqkzys66jfv1"
   },
   "stable": {
    "version": [
@@ -65558,16 +67362,17 @@
   "repo": "felko/neuron-mode",
   "unstable": {
    "version": [
-    20200426,
-    1310
+    20200806,
+    833
    ],
    "deps": [
-    "counsel",
+    "company",
     "f",
-    "markdown-mode"
+    "markdown-mode",
+    "s"
    ],
-   "commit": "aa97a6fbb5c3b33ad73a1ba31c7e50c8842091a1",
-   "sha256": "18nr1ayw9j3zfwj79qsqvf5nw36fqpyr2bq3cl93kck1adv949d8"
+   "commit": "18d230ce6b126fe7193db9c20ac93811ccfe779d",
+   "sha256": "18s7phs285jc4whd54x3dvbajqil7yff18xirbvf9pjlzivqwfk5"
   }
  },
  {
@@ -65623,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": [
@@ -65720,11 +67525,11 @@
   "repo": "aaronjensen/night-owl-emacs",
   "unstable": {
    "version": [
-    20200118,
-    1513
+    20200622,
+    1943
    ],
-   "commit": "b52fbf83ffef1ca265c9ea273bf51827532cef67",
-   "sha256": "0blgf7wx8i7am943m1jc7q4ndkb7pdczfgigrdnqsaf861m0nhng"
+   "commit": "4b9b5cb4fead9c5f145ba399d172c7e6bf577121",
+   "sha256": "0hkjy8qnpjwqc6c8zczb68s7kg5cx8wq9067rvwx4hraxv1bjqmm"
   },
   "stable": {
    "version": [
@@ -65798,11 +67603,11 @@
   "repo": "m-cat/nimbus-theme",
   "unstable": {
    "version": [
-    20200203,
-    1941
+    20200812,
+    915
    ],
-   "commit": "32c5c88502aec1afb6700a798c215b7fc6ce6101",
-   "sha256": "1s0f7wgik5383ffkys27376s0gzhhz6m0rap7l8iqq67yz0k6hxw"
+   "commit": "1a828c1fa0574503014afe8dda3229fb76a4bf64",
+   "sha256": "1qapsq7mxayjjr7y376p9vb7k871rwjgmyvmv756xg98lf7vm3fb"
   }
  },
  {
@@ -65816,17 +67621,17 @@
     20181024,
     1439
    ],
-   "commit": "112217185e0351f9ad7fa17542862ac3c0922653",
-   "sha256": "0shby25dqy9hkb3chgshr2c3hqq6k35261sv3lw7zj5lxv9jrrkp"
+   "commit": "9ddd3c917793bb97eb19d571429cdedf07501c03",
+   "sha256": "0lrj3k5ng748faarz63rspnd4sh38qvkxxcgbmk81h4cqvv529fy"
   },
   "stable": {
    "version": [
     1,
     10,
-    0
+    1
    ],
-   "commit": "ed7f67040b370189d989adbd60ff8ea29957231f",
-   "sha256": "1fbzl7mrcrwp527sgkc1npfl3k6bbpydpiq98xcf1a1hkrx0z5x4"
+   "commit": "a1f879b29c9aafe6a2bc0ba885701f8f4f19f772",
+   "sha256": "1bmv7zfqwp48ga6vnqvy0gzkclv40xgq19q4ihl58r6cn4swccn3"
   }
  },
  {
@@ -65867,11 +67672,11 @@
   "repo": "akirak/nix-env-install",
   "unstable": {
    "version": [
-    20200113,
-    751
+    20200812,
+    1305
    ],
-   "commit": "b343a7e885206e78544da7313b860442abbd7440",
-   "sha256": "06sq5biv15pgz8azp1kkbkj6ifi2xpa688gx8hj3xvkms9hy6b29"
+   "commit": "79c34bc117ba1cebeb67fab32c364951d2ec37a0",
+   "sha256": "12f16pfki1jwnw1ghdsqcrb11039njffl9hz3aa7sflwr95g2pbb"
   }
  },
  {
@@ -65915,20 +67720,20 @@
   "repo": "NixOS/nix-mode",
   "unstable": {
    "version": [
-    20190904,
-    1440
+    20200811,
+    1947
    ],
-   "commit": "5b5961780f3b1c1b62453d2087f775298980f10d",
-   "sha256": "0lyf9vp6sivy321z8l8a2yf99kj5g15p6ly3f8gkyaf6dcq3jgnc"
+   "commit": "0cf1ea1e0ed330b59f47056d927797e625ba8f53",
+   "sha256": "0wsiyvv23jcazh7jrbkg3d0qs1y5i88ahsdi3pp2s8q9h3lyhwnb"
   },
   "stable": {
    "version": [
     1,
     4,
-    1
+    4
    ],
-   "commit": "2f4bd0f09c829c2c5f49be2c5455352eaa4c2e3d",
-   "sha256": "04xpgg9nba5m1bl7ci5l456whcb8nfhsbvgxyx89bp0zqgr005q7"
+   "commit": "e4e604ae3ac91748c4e7d51a591cb9ee60961b7c",
+   "sha256": "19f36kl00pxm2a18hn4cdsdvxlfsdx1pnnm6s6zxd8nw6y8ynvn0"
   }
  },
  {
@@ -66006,8 +67811,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "cc8ee143d4ef45a8c540901852326ccdf6ff8482",
-   "sha256": "0a1ih8w8xk8rdd96k7236v6xh2xr1r6gaiv2b6js95k04igdqxnh"
+   "commit": "213251f82a69edc033766ec96948e83aeb428cd2",
+   "sha256": "1hx13p9rs33j2ajbg0dp6a371hr0dcxbcyzr5xlvkg6gf746lmg8"
   },
   "stable": {
    "version": [
@@ -66099,8 +67904,8 @@
   "repo": "dickmao/nndiscourse",
   "unstable": {
    "version": [
-    20200418,
-    2355
+    20200524,
+    1649
    ],
    "deps": [
     "anaphora",
@@ -66109,8 +67914,8 @@
     "json-rpc",
     "rbenv"
    ],
-   "commit": "103eb5c13ad2d154c9386b2aa9dbea532435ee7a",
-   "sha256": "04nympxjg1dhahk7m71769c5lzsxxsnd9c62lqrkn22gvfzm0wm5"
+   "commit": "e8d99d132d649e179f7cc81b80d873436b4e8ce1",
+   "sha256": "03iqbb3svidczzci0l8b19zk8yx9xdslf9y0hpn2y8fzhf4gszrp"
   }
  },
  {
@@ -66121,8 +67926,8 @@
   "repo": "dickmao/nnhackernews",
   "unstable": {
    "version": [
-    20200407,
-    1525
+    20200730,
+    1052
    ],
    "deps": [
     "anaphora",
@@ -66130,8 +67935,8 @@
     "dash-functional",
     "request"
    ],
-   "commit": "d5e58b373ab6c5f13174e76f5ae62539dc5cfc95",
-   "sha256": "0gqqdjmasjs1p6nal9s2yhas1xr2nm99rd3rns2b8cd5j04ccvaz"
+   "commit": "ad20d17f196a1b99c683ad2ffc39a9b4b2fada58",
+   "sha256": "1b5jnprpvlsn7cnxj6pab8kr0kdzm8xqrzhsga6dlaww6max26xp"
   }
  },
  {
@@ -66157,8 +67962,8 @@
   "repo": "dickmao/nnreddit",
   "unstable": {
    "version": [
-    20200417,
-    1757
+    20200524,
+    1647
    ],
    "deps": [
     "anaphora",
@@ -66167,8 +67972,8 @@
     "request",
     "virtualenvwrapper"
    ],
-   "commit": "7f6e3bdbfa872af8e92ed339671772b46bc7f7f0",
-   "sha256": "1dbb4pm2dvyvgw6lxjhhdqplb1b1jbvnywy8d3abr5dpzfqzij8s"
+   "commit": "4f41473221ea3312085c9f562db59d8f22bf8910",
+   "sha256": "0b42z866igmh8lvykcmac19zb6irdyvaag5dnaa54w2xc9ms52hj"
   }
  },
  {
@@ -66194,26 +67999,26 @@
   "repo": "emacscollective/no-littering",
   "unstable": {
    "version": [
-    20200413,
-    2118
+    20200817,
+    1831
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "ea8d8654365eeeea366a3ee0f51689987f2803a8",
-   "sha256": "02mgcz04xz9wkid3gkykbpjw3vriai7anyq3b61iv3pk9kcdp6x3"
+   "commit": "85629e5979f2159ab8cc77814dd4cb219e6ba69c",
+   "sha256": "0ii19sbmsl35y1glj2mz309aila8954rmpah7y7mr2b34ami6hdw"
   },
   "stable": {
    "version": [
     1,
-    0,
-    3
+    1,
+    2
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "d1d6965c70fc6ce0cfb38a5115d0e112aefac1d7",
-   "sha256": "17is06l0w6glppabv2kaclrnqi3dqb6p6alpslpg7lrjd8vd45ir"
+   "commit": "aaa3c36b25e07017595b54e91e190f69f0de0487",
+   "sha256": "0v642qbd65w5jq44zsl4vy525vjmhr948p1jmpq4mpvhfgmxx88c"
   }
  },
  {
@@ -66330,11 +68135,11 @@
   "repo": "abicky/nodejs-repl.el",
   "unstable": {
    "version": [
-    20200320,
-    1645
+    20200802,
+    1310
    ],
-   "commit": "6fad7d764fa0d818ba497450bd722ae10cb8efed",
-   "sha256": "0saky39n0p8w7lmalg3j4da0crrx40yz0rz1zdjzwpd2bd9v2izg"
+   "commit": "3b841055cad00f442e4a9159b1056f59411b6646",
+   "sha256": "0371lz9378x3vjj2kqir89sjy0l5d5j6ha5yz1381nkh15dcww15"
   },
   "stable": {
    "version": [
@@ -66371,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",
@@ -66432,11 +68222,11 @@
   "repo": "arcticicestudio/nord-emacs",
   "unstable": {
    "version": [
-    20200108,
-    833
+    20200620,
+    1122
    ],
-   "commit": "d828752e270978a56bde19986c98b1bbe8f51386",
-   "sha256": "096f8cik4jz89bvkifwp3gm9iraqrd75ljy2q9js724v7yj88711"
+   "commit": "4f5b64605709d5803285953026137e905756c35f",
+   "sha256": "032lgin0pn07ysshsdfdfqd5ck1fhrwdfz64sxwwc4gxlg5p4p98"
   },
   "stable": {
    "version": [
@@ -66462,8 +68252,8 @@
    "deps": [
     "colorless-themes"
    ],
-   "commit": "2b4c341640c8191a39e4bc28d6cd04c7d6dcbb37",
-   "sha256": "0ni9cnrv464fk840i1ll241kzkiy1zc6nfrbdv3ciixxdxbshxbn"
+   "commit": "736f7a105535901b4783d19534e7855920e25115",
+   "sha256": "1wi7wxiyk0g3k0l60hdmcyvvxr1kaapbkxvkknwd9qvdsji0ng73"
   },
   "stable": {
    "version": [
@@ -66493,18 +68283,18 @@
   }
  },
  {
-  "ename": "nose",
-  "commit": "855ea20024b606314f8590129259747cac0bcc97",
-  "sha256": "1xdqsxq06x2m9rcfn1qh89g0mz1rvzl246d3sfmciwcyl932x682",
-  "fetcher": "bitbucket",
-  "repo": "durin42/nosemacs",
+  "ename": "nothing-theme",
+  "commit": "8f69a676e9adfb45f8fbd4467e86a4cb0fbf6ae8",
+  "sha256": "0w93f50sb9swgn1lwnk8pdwwa5kpizmaaz13lvbk1qhq2xipr7yp",
+  "fetcher": "github",
+  "repo": "jaredgorski/nothing.el",
   "unstable": {
    "version": [
-    20140520,
-    1648
+    20200504,
+    402
    ],
-   "commit": "194d7789bf797f31ea0adc45f08beb66ae9ea98e",
-   "sha256": "07bhzddaxdjd591xmg59yd657a1is0q515291jd83mjsmgq258bm"
+   "commit": "d2514bb9707f66dda0d60f40f465e79914c50946",
+   "sha256": "1gy3zis9swkriynaq4xc8mc3xiihak0hi718pckbkxwjmnrfyvc0"
   }
  },
  {
@@ -66515,20 +68305,21 @@
   "url": "https://git.notmuchmail.org/git/notmuch",
   "unstable": {
    "version": [
-    20200416,
-    1058
+    20200816,
+    1342
    ],
-   "commit": "7b756d1e3885b70e81647a85432e0f2d043167c9",
-   "sha256": "0n0f6wsm6j980vxli6j6slixws45vgdbmw2xvwrs1j1h91vd0pc6"
+   "commit": "8776faf6d5118e8152ecfacf94accf35ccebf1d2",
+   "sha256": "0r4f12m2xbwzl0fhqcz2vv7dcr0psnhy8ahhv6b5gsdfdfd2w4w3"
   },
   "stable": {
    "version": [
     0,
-    29,
-    3
+    31,
+    -1,
+    1
    ],
-   "commit": "a59ef7d02cb229c2ec3569024918024003568aea",
-   "sha256": "0w9k7jfhcp34inkqciisrjfgflrx8h5q4svfa6bij9p93g1hig0b"
+   "commit": "75ec89dfb4c254ba0b88ddb479e6ede6bfb7d0c7",
+   "sha256": "1pc4nkbhxmx1qlamnjzd1arzr3sgp0m95vn1jmmfivgddy3xh8b0"
   }
  },
  {
@@ -66592,34 +68383,34 @@
  },
  {
   "ename": "nov",
-  "commit": "cf543955ba2d5d0074fa2a5ba176f9415f6e006d",
-  "sha256": "0hlcncpdazi4rn5yxd0zq85v7gpjhw7a6dl2i99zf4ymsan97lhq",
-  "fetcher": "github",
-  "repo": "wasamasa/nov.el",
+  "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+  "sha256": "1w4il2jbn0x6v11y3rnz5w5vs0d0hhlqqzzxdpkpmrq9ycbq58hw",
+  "fetcher": "git",
+  "url": "https://depp.brause.cc/nov.el.git",
   "unstable": {
    "version": [
-    20200220,
-    939
+    20200813,
+    821
    ],
    "deps": [
     "dash",
     "esxml"
    ],
-   "commit": "cd1b264b3f978a9285fa9297e40ad29d1434adf5",
-   "sha256": "02apbr5x9vdrx05mfs8qyp4ami1y30n8mmy4kpd4xw04nza9wxki"
+   "commit": "6cfd80124038504038bcb5d4cf2e8b037c36841a",
+   "sha256": "1zr8q9kl3i1900vp08c52ywx2lpwp4iyqs8vm3kb8a7dsc4hpggf"
   },
   "stable": {
    "version": [
     0,
-    2,
-    9
+    3,
+    1
    ],
    "deps": [
     "dash",
     "esxml"
    ],
-   "commit": "5184fbb1f3b3540be58a28f6dd469ff212ccc9bd",
-   "sha256": "0v01l1p35mcigixs6j4c5bpc7n7bd51kxa0p3l1xl0gr92774yq3"
+   "commit": "3d32aac0f895c8605e254c8b7f246537816744f5",
+   "sha256": "13r7lvyyyv62m57m4s4xjs4qz2ckhqk6ib514px7qzc7mdzcz9i9"
   }
  },
  {
@@ -66669,14 +68460,26 @@
   "repo": "shaneikennedy/npm.el",
   "unstable": {
    "version": [
-    20200406,
-    1429
+    20200812,
+    1850
    ],
    "deps": [
+    "jest",
     "transient"
    ],
-   "commit": "187ddd2732deb49df1e87fbaace153afb8a3e7e1",
-   "sha256": "0kh8y0izab3rra5vb1229h77ykz704wh28m7vv0bsfn5lg02ridx"
+   "commit": "26d5cf79dfd1a2a74a66c44de129483d26354345",
+   "sha256": "0akjjb5xqpzg784qi6hbjfjm335mixqszzrxwz69ggl50iy9s6rk"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
+   ],
+   "deps": [
+    "transient"
+   ],
+   "commit": "a699cba6a8798af709b2576f2df54abd7eb1701b",
+   "sha256": "1w9a9pjpp3lchl4k8y1zhdpdnmd090s8vp7vbfb89xawp1gavhxg"
   }
  },
  {
@@ -66764,8 +68567,8 @@
     20181022,
     2154
    ],
-   "commit": "1efc30d38509647b417f05587fd7003457719256",
-   "sha256": "0px64jsdps477s9xiw96mhcf1fmgxf0gsp30gzhqfb1b1k4f306j"
+   "commit": "60273e764bf8d95abc40dd2fdc23af87ea9ee33b",
+   "sha256": "0cr0y0mflqr434223rfwlzzp2zdaddqymsrysbsrbv3qhh157sk3"
   },
   "stable": {
    "version": [
@@ -66960,8 +68763,8 @@
   "repo": "rejeep/nvm.el",
   "unstable": {
    "version": [
-    20190912,
-    626
+    20200501,
+    1414
    ],
    "deps": [
     "dash",
@@ -66969,8 +68772,8 @@
     "f",
     "s"
    ],
-   "commit": "e93e5216e311c665c593ac68c5456d624120ea42",
-   "sha256": "11fa9g05gsh2yjvhy1xjc6hkby5z98mb2bmbshdp89fvlsdksv3i"
+   "commit": "fc925b9afe738264cb15d5135c7426f999aeda47",
+   "sha256": "1mb3i7d470ggky6g9ib1jf04yfkfn9m8jd70mb18rac2ik3sy03q"
   },
   "stable": {
    "version": [
@@ -66996,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"
   }
  },
  {
@@ -67306,8 +69109,8 @@
   "repo": "zweifisch/ob-cypher",
   "unstable": {
    "version": [
-    20170725,
-    1420
+    20200521,
+    936
    ],
    "deps": [
     "cypher-mode",
@@ -67315,8 +69118,8 @@
     "dash-functional",
     "s"
    ],
-   "commit": "114bdf6db20ee0ade060bb5df379ddee48ff4f26",
-   "sha256": "142d91jvf7nr7q2sj61njy5hv6ljhsq2qkvkdbkfqj07rgpwfgn3"
+   "commit": "da9f97339474a48d759fc128cee610c0bc9ae6c0",
+   "sha256": "0r4dsbrdxhyyh708pm8fqn423v21xk7a940nbajw9y07n28y5hgk"
   }
  },
  {
@@ -67393,14 +69196,14 @@
   "repo": "BonfaceKilz/ob-elm",
   "unstable": {
    "version": [
-    20200102,
-    2000
+    20200528,
+    1857
    ],
    "deps": [
     "org"
    ],
-   "commit": "8b49ca0ecdff9df7c3f428bac22a96ed675ee5dd",
-   "sha256": "0prc0bddyppdzckfkjd6h2j5qg9plfzccg2gyn4jkmjhkx0gi09g"
+   "commit": "d3a9fbc2f56416894c9aed65ea9a20cc1d98f15d",
+   "sha256": "1wdlr0cbsb2drdmcn2bnivjkj1f2v52l6yizwsnjgi4xq3w6k56h"
   }
  },
  {
@@ -67585,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",
@@ -67660,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",
@@ -67736,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,
@@ -68024,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": [
@@ -68169,10 +70014,10 @@
    "version": [
     1,
     8,
-    1
+    2
    ],
-   "commit": "05bf3e4b39b765658a5be95d1db2a30084d1f564",
-   "sha256": "0h4ysh36q1fxc40inhsdq2swqpfm15lpilqqcafs5ska42pn7s68"
+   "commit": "9e26c0a2699b7076cebc04ece59fb354eb84c11c",
+   "sha256": "1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3"
   }
  },
  {
@@ -68242,26 +70087,26 @@
   "repo": "oer/oer-reveal",
   "unstable": {
    "version": [
-    20200413,
-    1503
+    20200813,
+    1540
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "6db38600d651f4aea77e0d411466be7fb6314f39",
-   "sha256": "11akmygscph5pq1zc889pmlp8ab91qk29lwrrp3gxmgy2s5x9mgf"
+   "commit": "165eaf9d151c589226f7a4e0edc3a3100c0a9efb",
+   "sha256": "06740c4qdpdrim5wj88gw973lbh59h6sx4kzrpl37cqjvdsawbzv"
   },
   "stable": {
    "version": [
+    3,
     2,
-    9,
-    0
+    1
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "eec26a088d19cd202417f662bb487b550230d11f",
-   "sha256": "1vj99sj71qf622gc9fy6kafp4ki7arqljj1dwkl4k2fnf4hv3af7"
+   "commit": "7a99fa342eae234069344893b5bc851280ff2dc9",
+   "sha256": "1fsp6li73dk2272lgj4kxapd1sqw2pqj42rlcbl5hhh35hva714h"
   }
  },
  {
@@ -68287,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",
@@ -68324,20 +70211,20 @@
   "repo": "rnkn/olivetti",
   "unstable": {
    "version": [
-    20200417,
-    607
+    20200702,
+    601
    ],
-   "commit": "fa9757fbaa392be622ddf66c2535dfe4b5cca898",
-   "sha256": "196g4n2cr1w77k2a6582rc3c8fnnfps83f1kh76k8k3lvkjg8pjb"
+   "commit": "0bc5e98b8456493084d1bd3df35e92a12c5da3b2",
+   "sha256": "121dzm051jivskssfvxs5kxkviqivf1j0fr3q8rkfqii7rxdw84r"
   },
   "stable": {
    "version": [
     1,
-    9,
-    4
+    11,
+    1
    ],
-   "commit": "9005661e18d9eaaf1105018d084916e4927cc66b",
-   "sha256": "0ca80z6drsw9jkwijn6f05y1n7rmcypvh0yvsb77wnqrzd7y4p68"
+   "commit": "57ca8e70bc9ee975f0e2a60bfc4121064dadd2e0",
+   "sha256": "0rghxjdzyfykd4qc2zkavvbyf9xc899k1b8hbk890f1y3vakqvqz"
   }
  },
  {
@@ -68631,11 +70518,11 @@
   "repo": "balajisivaraman/emacs-one-themes",
   "unstable": {
    "version": [
-    20190424,
-    740
+    20200720,
+    1444
    ],
-   "commit": "e62e4ebef7ef8ccb1e90781d613638d30cf24d7a",
-   "sha256": "13vjlgac3ikd5xr6cjqb3aaj8qr201lc3ndvwhj3k617474312jh"
+   "commit": "0e77d31f9fc0cd55f3d92ec0db79513d616b2efd",
+   "sha256": "0dc2xkgnl5x542332cnlilbzy9ps060gjx0hkg8pfhismvavr4mi"
   }
  },
  {
@@ -68889,11 +70776,19 @@
   "repo": "oantolin/orderless",
   "unstable": {
    "version": [
-    20200425,
-    855
+    20200614,
+    1920
    ],
-   "commit": "b69b52289fdb0023a3123b1ddec5b490125345a3",
-   "sha256": "0vxpaqsad3x1lqga1ky7sipm8lk8ps66wpcvz52jdqasxmxzvrjm"
+   "commit": "1f1e0380e2a8cd4fc29b8cc2e00cb01b56d86fbc",
+   "sha256": "15an4y0xdaih86p33zmb6r7qx5n0cs54flcnnq50jakkxlg9s8xh"
+  },
+  "stable": {
+   "version": [
+    0,
+    5
+   ],
+   "commit": "c6432b086f9c8ccb50b3656ba5895750f2a15541",
+   "sha256": "032lfwflkpaxbcxl4jf438vapswsdagipjczcn30sc4dfdh3p42c"
   }
  },
  {
@@ -69088,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": [
@@ -69145,11 +71040,11 @@
   "repo": "scallywag/org-board",
   "unstable": {
    "version": [
-    20190203,
-    1424
+    20200619,
+    1016
    ],
-   "commit": "2e01e801abc04b8fb718ca4bc19636242ac0cb52",
-   "sha256": "044nqxrg11qk0lnipzvhvdyd37vjkklaksyasrn6k1ifcfdx2qp8"
+   "commit": "1393bd46d11a81328ed4fb8471831415a3efe224",
+   "sha256": "1kryrg988c3sbxyp1sdgc6xdv2iz6kiflpzn2rw4z3l4grzab53b"
   },
   "stable": {
    "version": [
@@ -69187,6 +71082,44 @@
   }
  },
  {
+  "ename": "org-books",
+  "commit": "2362892068bffb99a37e77201924ec12676a5017",
+  "sha256": "1mp0n1x5ka2x2rc6pd4nn54cr8b3qxl7fq8dsyng7bm300gizpf2",
+  "fetcher": "github",
+  "repo": "lepisma/org-books",
+  "unstable": {
+   "version": [
+    20200522,
+    1800
+   ],
+   "deps": [
+    "dash",
+    "enlive",
+    "helm",
+    "helm-org",
+    "s"
+   ],
+   "commit": "49617901d087f532d7cae1aa23637671fd153d20",
+   "sha256": "09nq7na9r39pl6aljrf5vpkfih92ms7s081nxdrhxcscaysk08kb"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    19
+   ],
+   "deps": [
+    "dash",
+    "enlive",
+    "helm",
+    "helm-org",
+    "s"
+   ],
+   "commit": "4b93bb1e20e2e66b9e64819b21ca75f36c389370",
+   "sha256": "1ksvdl8liqv74am1r7brn8slkwgbc83jv7l92qk9md7s1krcb6y0"
+  }
+ },
+ {
   "ename": "org-brain",
   "commit": "47480fbae06e4110d50bc89db7df05fa80afc7d3",
   "sha256": "0c05c6lbr740nnjp9p34padrbrc3q1x2pgylkyhsxadm4mfsvj0c",
@@ -69194,14 +71127,14 @@
   "repo": "Kungsgeten/org-brain",
   "unstable": {
    "version": [
-    20200426,
-    1410
+    20200625,
+    2050
    ],
    "deps": [
     "org"
    ],
-   "commit": "ae7fe0f628bd093526786ece6917f7a4310e5e4d",
-   "sha256": "0szav8idqq2gmckaxqnjgcah978as2nhv43nl9vvvfkc9dc2l5x4"
+   "commit": "671db0e08b91c7d2637d765a7afca8b2561275c8",
+   "sha256": "17i0lnp9xyzbky0xh1qi6q7jpnpz950j2zxwv2hg007zziqd21ks"
   }
  },
  {
@@ -69236,14 +71169,14 @@
   "repo": "dengste/org-caldav",
   "unstable": {
    "version": [
-    20191024,
-    724
+    20200510,
+    2030
    ],
    "deps": [
     "org"
    ],
-   "commit": "f530b94b6f8d8d1f8a207e48986da75227bd78a0",
-   "sha256": "0b5gw1m646fq7xlq8966rlmqs63p5dgrq71cjc943s45mli0vvcs"
+   "commit": "8569941a0a5a9393ba51afc8923fd7b77b73fa7a",
+   "sha256": "05lgxqaffnqaqnzl24frafdkskran88hl2ml05qvyjhs4jjbgw9g"
   }
  },
  {
@@ -69299,14 +71232,14 @@
   "repo": "Chobbes/org-chef",
   "unstable": {
    "version": [
-    20200408,
-    1328
+    20200729,
+    2021
    ],
    "deps": [
     "org"
    ],
-   "commit": "67f50aa2a2839ffdb1c1a5e2f135e69f868e4b26",
-   "sha256": "041z6f5fyzc46grwqllz81hixkdqdic3a6zird7i0yy7cr2hqhcf"
+   "commit": "5b461ed7d458cdcbff0af5013fbdbe88cbfb13a4",
+   "sha256": "171ybf5n6a6ab3ycghc2z016qxbgqyj13kkcdsfqy0691wx7dcqb"
   }
  },
  {
@@ -69332,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"
   }
  },
  {
@@ -69351,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": [
@@ -69444,11 +71377,11 @@
   "repo": "thisirs/org-context",
   "unstable": {
    "version": [
-    20200418,
-    1540
+    20200615,
+    1554
    ],
-   "commit": "bbef096dc20b206b792b0ef310f2eed7c70ca3a0",
-   "sha256": "05s73wn2q3a0mfc14qlgcb1bas9addby0m43id2v8ljvxyigicr8"
+   "commit": "8ef429124c13b1a68f7672cb6e6cb9c8b9d9db93",
+   "sha256": "178hpp3ylafmr2n3ydcqwqjxa8avlb8g1n3swzndc3jjk0gy6vck"
   }
  },
  {
@@ -69519,17 +71452,17 @@
  },
  {
   "ename": "org-doing",
-  "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
-  "sha256": "10vg0wl8dsy12r51178qi4rzi94img692z5x3zv8dxa29lmn26xs",
+  "commit": "8377b69021bda729b9e96e59a5d7ce2c120838c5",
+  "sha256": "1hbdyvfqybbgzmcllys6bqip799j79j6h4b28pp6mnlyfqi64msp",
   "fetcher": "github",
-  "repo": "rudolfolah/org-doing",
+  "repo": "emacsattic/org-doing",
   "unstable": {
    "version": [
-    20161017,
-    1620
+    20200510,
+    1732
    ],
-   "commit": "07ddbfc238cba31e4990c9b52e9a2757b39111da",
-   "sha256": "1d9gf6wf3jp07bn2h6bbc75iy0wwdvzdlj9n4nwbc46nf3k154pa"
+   "commit": "df916bb13577f4de9d58332453cb8bf51eac37ba",
+   "sha256": "014xz7yjw97i1dzyg487r2v9rf3jk9jwc5acgg1fj5kc2n1m299m"
   },
   "stable": {
    "version": [
@@ -69567,14 +71500,14 @@
   "repo": "abo-abo/org-download",
   "unstable": {
    "version": [
-    20200410,
-    1444
+    20200818,
+    1117
    ],
    "deps": [
     "async"
    ],
-   "commit": "46417e2bd30c9bcd1e8a1f4c554ad44543e869e6",
-   "sha256": "1jzmyr6v33x7012ljbc45w2ww3lb96i4nh1ydxzdjwnbvpj2j17s"
+   "commit": "67b3c744f94cf0bf50f7052ce428e95af5a6ff3f",
+   "sha256": "0f94drnfkyd1vpdhkr463zv952lk1v895dwrzk1251j8fb9vdf9m"
   },
   "stable": {
    "version": [
@@ -69860,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"
   }
  },
  {
@@ -69878,8 +71823,8 @@
   "repo": "kidd/org-gcal.el",
   "unstable": {
    "version": [
-    20200424,
-    1929
+    20200809,
+    2137
    ],
    "deps": [
     "alert",
@@ -69887,8 +71832,8 @@
     "request",
     "request-deferred"
    ],
-   "commit": "1667aba7c0a33e3c23c3a47fc04e89670684eddc",
-   "sha256": "1zzibnvsdq3iv874x6g6zrjb17mb036dln68mn4a1xlcwvv1king"
+   "commit": "2cad2d8c175975dea42903cd4e3fd8bec423c01a",
+   "sha256": "013h09gdd7zlcrrvwf2i2ipyazvsjg2hwcfracb9bbv4r5bc0syf"
   },
   "stable": {
    "version": [
@@ -69906,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",
@@ -69957,6 +71934,74 @@
   }
  },
  {
+  "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",
+  "fetcher": "github",
+  "repo": "marcIhm/org-id-cleanup",
+  "unstable": {
+   "version": [
+    20200523,
+    735
+   ],
+   "deps": [
+    "dash",
+    "org"
+   ],
+   "commit": "e79540b64e0ee5ef11adfeb932a9b04beb905680",
+   "sha256": "0qn85515lzhqhn49byf0vpyhbgfwyibf21f7xl2j7cj306x1f79c"
+  },
+  "stable": {
+   "version": [
+    1,
+    3,
+    8
+   ],
+   "deps": [
+    "dash",
+    "org"
+   ],
+   "commit": "05d57840893d9ae8146ed41d29d1f0571c05ded8",
+   "sha256": "1rsw4zgvxp77ncq4z98hcy6qsg6j72glx1y69rwfblg87lz3mj6d"
+  }
+ },
+ {
   "ename": "org-if",
   "commit": "09df84b60c46678ad40d8dabc08fcfe518f5ad79",
   "sha256": "0h0jdyawz2j4mp33w85z8q77l37qid8palvw5n4z379qa0wr5h96",
@@ -69988,20 +72033,28 @@
   "repo": "marcIhm/org-index",
   "unstable": {
    "version": [
-    20200413,
-    1609
+    20200516,
+    1343
+   ],
+   "deps": [
+    "dash",
+    "org"
    ],
-   "commit": "f95dbec874f39aac3c8391a6e0b9796b981386f3",
-   "sha256": "1dylivz459a4d66rak9sipynyby01plhgjj2vvp9fqvia65yb2a4"
+   "commit": "f868df4aa4f49484cf818627251b7c7282d8d20e",
+   "sha256": "14mr03sjjkxix0sphnp7flr6f9z20g5x7ifv3hl2nvmh4794cf6n"
   },
   "stable": {
    "version": [
     6,
-    1,
-    3
+    2,
+    1
    ],
-   "commit": "f95dbec874f39aac3c8391a6e0b9796b981386f3",
-   "sha256": "1dylivz459a4d66rak9sipynyby01plhgjj2vvp9fqvia65yb2a4"
+   "deps": [
+    "dash",
+    "org"
+   ],
+   "commit": "f868df4aa4f49484cf818627251b7c7282d8d20e",
+   "sha256": "14mr03sjjkxix0sphnp7flr6f9z20g5x7ifv3hl2nvmh4794cf6n"
   }
  },
  {
@@ -70032,16 +72085,16 @@
   "repo": "ahungry/org-jira",
   "unstable": {
    "version": [
-    20190930,
-    1406
+    20200714,
+    41
    ],
    "deps": [
     "cl-lib",
     "dash",
     "request"
    ],
-   "commit": "5123c29867e5da54d80e92f9a5a4259144451404",
-   "sha256": "1j45whlsclwq9v0c98ni4y5p04slmlwgwsbbr7saaxgv9xmv4yfc"
+   "commit": "5c90dce918fcb873754bff375e988b17dcc69701",
+   "sha256": "1d38szx1vq4k1pfdisr3czwaasfw7jkwa2vswfcrnk3d65akkgzk"
   },
   "stable": {
    "version": [
@@ -70067,23 +72120,26 @@
   "repo": "bastibe/org-journal",
   "unstable": {
    "version": [
-    20200424,
-    1917
+    20200815,
+    1335
    ],
    "deps": [
     "org"
    ],
-   "commit": "8bf06b28d6f14f52d4968123e2b4b91930c8f947",
-   "sha256": "0k70k07c4lq20rqljmfkx1pfp8gq4qr0y46n8mh1smzxdznk9nlb"
+   "commit": "a2728e25b854af21cea8e8d313714c993eb1c848",
+   "sha256": "1rvlrn0jlw6a3p48zg50vw4nll2cffk9nkng0qvh8ws0a161w2j1"
   },
   "stable": {
    "version": [
     2,
-    0,
+    1,
     0
    ],
-   "commit": "8eda1119f561561b993eea72a550a6b1f0ef35e1",
-   "sha256": "18dqd0jy2x530lk0h4fcn9cld9qh4w7b3vxa60fpiia628vsv1dg"
+   "deps": [
+    "org"
+   ],
+   "commit": "f7bfc592ec11e9e5d0b0bfa377961167b68bba72",
+   "sha256": "1imrfvzc52l976598df2243s4jdwicznnxs3q91m5vrjsk23zfp2"
   }
  },
  {
@@ -70109,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"
   }
  },
  {
@@ -70185,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",
@@ -70262,34 +72348,34 @@
   "repo": "org-mime/org-mime",
   "unstable": {
    "version": [
-    20200416,
-    1048
+    20200520,
+    1100
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "9f8444603806e6baa94b2b67a23aab0ea52fef97",
-   "sha256": "143qj0llargjm375q39lchxz1ws4vsh50f3ar66cclrjvxrfaqdg"
+   "commit": "9bb6351b25c62835c7881fc64096028eb8ef83ef",
+   "sha256": "1h9dv1rw42c4yhdxp2cnxpyv49aklxgljhbw1adl4p7sp4zgrqbd"
   },
   "stable": {
    "version": [
     0,
-    1,
-    7
+    2,
+    0
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "9f8444603806e6baa94b2b67a23aab0ea52fef97",
-   "sha256": "143qj0llargjm375q39lchxz1ws4vsh50f3ar66cclrjvxrfaqdg"
+   "commit": "484bf3b0b8af461805b9e30d175510c031bcfbc3",
+   "sha256": "1shp3xfjifvwcj67mvfiv0dwpwyz846s6xa5zs269fwbvdvmx65q"
   }
  },
  {
   "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,
@@ -70304,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",
@@ -70332,8 +72450,8 @@
     20200128,
     1208
    ],
-   "commit": "8f9f4f978a3c40adf2ff00eebb56bccfe4caf4e1",
-   "sha256": "0v0q3qzz6fwh0y9c9ci46284msr0x69jfki2ng89hpz8aab90bli"
+   "commit": "4fb77d9bb876e368e596d18324115cef6c1c71f3",
+   "sha256": "02js518d8h2qp8dxmw479gw61bdj3019j183hz6x1nn49ljx000k"
   },
   "stable": {
    "version": [
@@ -70353,14 +72471,14 @@
   "repo": "jeremy-compostella/org-msg",
   "unstable": {
    "version": [
-    20200422,
-    1615
+    20200722,
+    2238
    ],
    "deps": [
     "htmlize"
    ],
-   "commit": "d41426854e6804d752b25346cf6ae79b0612784c",
-   "sha256": "0f3lvcgx60j2m97mxgzbxaw9ki37g3yxr6arv54b87572a7wdj8m"
+   "commit": "2db6725c4a4f4342a9c61895b7c3c82795b01fee",
+   "sha256": "0ijll4fbm0231zig9ia3bpm2padjyj9w0c89nv5aqpilx2fk84v8"
   }
  },
  {
@@ -70371,8 +72489,8 @@
   "repo": "akirak/org-multi-wiki",
   "unstable": {
    "version": [
-    20200419,
-    1833
+    20200810,
+    1055
    ],
    "deps": [
     "dash",
@@ -70380,8 +72498,8 @@
     "org-ql",
     "s"
    ],
-   "commit": "aef5975ac18d7cb101c0fb688333cc241782a8a0",
-   "sha256": "1m3p839wkrvf7n2467czj03rljv43bk32p7vlzdp5zby22bn7nag"
+   "commit": "2541e1b0798a1c9d4b4b8778e6c97a579ac3fa14",
+   "sha256": "1mcpbq1qylkxpd6nzq04jrji6p1xll5a30dc7dpxpcjrkgvbzf39"
   },
   "stable": {
    "version": [
@@ -70678,8 +72796,8 @@
  },
  {
   "ename": "org-pdftools",
-  "commit": "62cf59d93b7b6700c4f7711e5fd22ece04896e6a",
-  "sha256": "0fqkq8hpcxzpj3irczkad78m3chadqk2895bdbj7xpdlr0803n32",
+  "commit": "d52346a042a72b76729d259c7f12f45d38ac27cd",
+  "sha256": "1pgfx0zgdp9kg8mxqxm5qac7vnd0j1ghfwq04rvqi9r1d51zpynl",
   "fetcher": "github",
   "repo": "fuxialexander/org-pdftools",
   "unstable": {
@@ -70697,37 +72815,6 @@
   }
  },
  {
-  "ename": "org-pdfview",
-  "commit": "855ea20024b606314f8590129259747cac0bcc97",
-  "sha256": "1qhlmzf2ffcrjnx4yghv7n6rsry8bcwnkw489spgraq9vxvqklah",
-  "fetcher": "github",
-  "repo": "markus1189/org-pdfview",
-  "unstable": {
-   "version": [
-    20180225,
-    1006
-   ],
-   "deps": [
-    "org",
-    "pdf-tools"
-   ],
-   "commit": "8b71f313634b95a1fac42fc701934fd796565f3b",
-   "sha256": "1gd4ari970vb4631f9a4czvql8gafaqh7iir75n4wxqdcnglnymw"
-  },
-  "stable": {
-   "version": [
-    0,
-    4
-   ],
-   "deps": [
-    "org",
-    "pdf-tools"
-   ],
-   "commit": "3a96bfb57cb158ac02cfb4225512699c66f5221d",
-   "sha256": "0lrcj3mcdfcdrndivhj5ds386zrsy78sfg0i8126wwwc5lfh48vq"
-  }
- },
- {
   "ename": "org-picklink",
   "commit": "c6c44a3e5a1c5e4acdf76c4d6f2f4b695aa6938e",
   "sha256": "0gr4psgps9775hh0pvcyq3x2irrzkzpm5ghcnc9ddp5hn41yv57m",
@@ -70750,8 +72837,8 @@
   "repo": "org-pivotal/org-pivotal",
   "unstable": {
    "version": [
-    20191116,
-    530
+    20200607,
+    1505
    ],
    "deps": [
     "a",
@@ -70759,8 +72846,8 @@
     "dash-functional",
     "request"
    ],
-   "commit": "f073f3ed8c2e78f5080c617d01b1f6bb3df63d1c",
-   "sha256": "13bqcwlappxz0gsiyvklrf0xv4an6s4id48s3ydi0hki1na9fzzk"
+   "commit": "125e70f9a682751e4ed7c3a350b2794af9600f47",
+   "sha256": "1w91wb6l3vsri015awig1kfs986zf49466x4ni0m24hcg00n2m7n"
   }
  },
  {
@@ -70828,8 +72915,8 @@
     "elnode",
     "org-present"
    ],
-   "commit": "d66aa2022eea65c83b6e5e5b99a1331284a7ec30",
-   "sha256": "1ji1qqhp6hpsmri0lgwzvvn1477njlcv60958xf6akvryk6azqh3"
+   "commit": "ba7e07af3bd1142e310e868893b919286758a007",
+   "sha256": "1vzipij1wy3g1lh13igbmf16p16llgnm90ydjrr6mlb35d141i20"
   }
  },
  {
@@ -70976,8 +73063,8 @@
   "repo": "alphapapa/org-ql",
   "unstable": {
    "version": [
-    20200407,
-    1706
+    20200713,
+    309
    ],
    "deps": [
     "dash",
@@ -70992,14 +73079,14 @@
     "transient",
     "ts"
    ],
-   "commit": "f4d7399e677904cdc7e220440610704e4bd668bc",
-   "sha256": "0vfnxmk6k9f4zqbcg4gsg2ga4xr2gqx81sq2hcimx49wvyxh2bwn"
+   "commit": "6633dbb276d51767c3f401d0f68ef99e7b9364b6",
+   "sha256": "0rqhdf9g6n14v1ixwnb3d6jl85zxlarg28fz0jpzzikj4spiy772"
   },
   "stable": {
    "version": [
     0,
     4,
-    4
+    6
    ],
    "deps": [
     "dash",
@@ -71012,8 +73099,8 @@
     "s",
     "ts"
    ],
-   "commit": "4fef5b089f8f77b0dc25dac5f096406156e90858",
-   "sha256": "065wkxd269v19r5s8g2haapwhwr3s6c5amwzshfl2hq5z0bldvqi"
+   "commit": "00800556907408ee11a23de3a4982061d08d3b85",
+   "sha256": "08xax4fp9rzi8iimkyw2gvp2rd0lgb2f83qrhhnhnc1kgpkdl6y1"
   }
  },
  {
@@ -71048,8 +73135,8 @@
    "deps": [
     "alert"
    ],
-   "commit": "4f7677af740e8f3f7cfaf630ae2e594a125af760",
-   "sha256": "1xk4vp2138p58jdxn51vnmpnij5bzc2jbpq7y8avdcv0p7618fdc"
+   "commit": "a019c7186ec60c8c7c3657914cdce029811cf4e0",
+   "sha256": "0jyd7cbri0bmi0qzwm7d4fxdfa1224bg6izd63pqqg1x7s67x99z"
   },
   "stable": {
    "version": [
@@ -71092,28 +73179,28 @@
   "repo": "oer/org-re-reveal",
   "unstable": {
    "version": [
-    20200413,
-    856
+    20200813,
+    1104
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "61549f4c00284a30e34caa3d76001b233ea5d2ad",
-   "sha256": "00r324nnci2l0jwx4jhzcrbyai5wmj5cjrav4253c23aqdn5ny96"
+   "commit": "7fe39d5d03ccc75d2811445d25cbbb473b53de76",
+   "sha256": "1cmvqr97vx22lw510z0k2nsy5xfgnz2lvchmx5sdxrqz54pz1wfq"
   },
   "stable": {
    "version": [
-    2,
-    12,
-    1
+    3,
+    1,
+    0
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "14df7542f2a675f65501962e344e03d798cf0d39",
-   "sha256": "1mc01v257884pdsw37dghgddyyy6v6rd9cmnnpq45xvd5ibz1vaf"
+   "commit": "7fe39d5d03ccc75d2811445d25cbbb473b53de76",
+   "sha256": "1cmvqr97vx22lw510z0k2nsy5xfgnz2lvchmx5sdxrqz54pz1wfq"
   }
  },
  {
@@ -71124,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": [
@@ -71224,8 +73311,8 @@
   "repo": "jkitchin/org-ref",
   "unstable": {
    "version": [
-    20200421,
-    1354
+    20200814,
+    1307
    ],
    "deps": [
     "dash",
@@ -71239,8 +73326,8 @@
     "pdf-tools",
     "s"
    ],
-   "commit": "1eb4ddda003b04b49a9a00828347a46f2863ac9e",
-   "sha256": "19vvcipfhir39qd3qwirrrr6221k8kjviifva0qm6aqxv7hlfaqm"
+   "commit": "831fe96c242bf178f0c55b93fd076dfb549f7791",
+   "sha256": "18r9n6vln65czjvk46r5lbr7d2rd2dpcqrzhs37jffz9qj93cpcc"
   },
   "stable": {
    "version": [
@@ -71295,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": [
@@ -71358,80 +73445,112 @@
  },
  {
   "ename": "org-roam",
-  "commit": "278f993cf094b39b5d049f05e0cbba61e52a6f0c",
-  "sha256": "1m4nw1r8kdxigdvws5arqglamrx4g62v4p482flikk7w52gcs7is",
+  "commit": "6358b4fe160432cee80e6c15eac26764a92aac8a",
+  "sha256": "16xab5rz98bavk3vjmb5bxl4r5kpynnw40m0ahy1kl6cax51kx0y",
   "fetcher": "github",
-  "repo": "jethrokuan/org-roam",
+  "repo": "org-roam/org-roam",
   "unstable": {
    "version": [
-    20200426,
-    1107
+    20200818,
+    816
    ],
    "deps": [
     "dash",
     "emacsql",
-    "emacsql-sqlite",
+    "emacsql-sqlite3",
     "f",
     "org",
     "s"
    ],
-   "commit": "41423005010f2f78c3e9301b97f1b0db83fd29b5",
-   "sha256": "1w8xv4wiskibwla7ga5bcjqpvzgmcxm52zazqpjp210vp22v545z"
+   "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"
   }
  },
  {
   "ename": "org-roam-bibtex",
-  "commit": "cc4e4ea60d2363eb691cb87ca3105bd25fc405ed",
-  "sha256": "1q9l49q478zlmcz0wi239qsz2pvmqxyb9qac2k42p19zqnfgkmsg",
+  "commit": "2931aad53fbe448c20ec1aec49ab64e4b50a8f43",
+  "sha256": "1s3v0r86x2azmhmvmkk3hc726lcx81igchqyjqry8aibmy79pfnn",
   "fetcher": "github",
-  "repo": "zaeph/org-roam-bibtex",
+  "repo": "org-roam/org-roam-bibtex",
   "unstable": {
    "version": [
-    20200425,
-    1114
+    20200803,
+    1209
    ],
    "deps": [
     "bibtex-completion",
-    "f",
-    "org",
-    "org-roam",
-    "s"
+    "org-roam"
    ],
-   "commit": "6bbdebb39d7edf9b369c16311afa18cf00cecffc",
-   "sha256": "0fp9cmgn9g4hnqsj9bn5885him0wxbs3qwvnw9anrwyybg6sv2i6"
+   "commit": "a92d9e6f523f449314e72911ba300192a42fc4dc",
+   "sha256": "1np029bspw14lcv8qzzgfyqimjz697wx2isasad06qbnhqbyc84m"
   },
   "stable": {
    "version": [
     0,
-    1,
+    3,
     0
    ],
    "deps": [
     "bibtex-completion",
-    "f",
+    "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": "5ea3d1403bd68af49ac0593a8cdff7514595d025",
+   "sha256": "0ajsid9p5znxqz7bq39jbf779s46ymmxwpfki4yxpa9308pwjwgc"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    4
+   ],
+   "deps": [
+    "dash",
+    "org",
+    "org-roam",
+    "s",
+    "simple-httpd"
    ],
-   "commit": "9c224890ef9b8fb38b48d48d6f029be00f1c2166",
-   "sha256": "14f3d1yiidglwbygb5swk44fvky7cla3r11i4zx56hrf8lxjzhp6"
+   "commit": "fe0364ef63928337f442c1d987d17cfe9619df2d",
+   "sha256": "0a5b625i7gv467xm8p92nvrh2wzgmldm8gzcbrc15al1gvnwpbqm"
   }
  },
  {
@@ -71460,8 +73579,8 @@
   "repo": "tyler-dodge/org-runbook",
   "unstable": {
    "version": [
-    20200412,
-    403
+    20200523,
+    2004
    ],
    "deps": [
     "dash",
@@ -71471,14 +73590,14 @@
     "s",
     "seq"
    ],
-   "commit": "8bec754c3007238d4e1c7296454815bf7000b31d",
-   "sha256": "10bfc8pr576ia16w5mwkksg9yn0jhcsbrkzw9yrjkvq2yzqsgpc0"
+   "commit": "27dafe2a470d54a2c664164b5f9cbd2a1e5d921e",
+   "sha256": "1bl8f7azkr2657izhcwxy8w8jz7qs2wkk843q2bzzdzixqadlabs"
   },
   "stable": {
    "version": [
     1,
-    0,
-    6
+    1,
+    2
    ],
    "deps": [
     "dash",
@@ -71488,8 +73607,8 @@
     "s",
     "seq"
    ],
-   "commit": "53e8876a1587190ec4d103f9e94380f34797ce49",
-   "sha256": "1cyb956s3vshh2i4gd37m1cjxwq5s0xj55pwysgganwgxxw22c8n"
+   "commit": "27dafe2a470d54a2c664164b5f9cbd2a1e5d921e",
+   "sha256": "1bl8f7azkr2657izhcwxy8w8jz7qs2wkk843q2bzzdzixqadlabs"
   }
  },
  {
@@ -71538,11 +73657,11 @@
   "repo": "lordnik22/org-shoplist",
   "unstable": {
    "version": [
-    20190809,
-    2156
+    20200603,
+    1515
    ],
-   "commit": "9591a4747eb2e5cab53203a120f9b854c75e629b",
-   "sha256": "1b721xp6dn54x2j73ysnzw9qxd9fxpvnqiy2y0issmz6xmccgzac"
+   "commit": "e1e465ef815500140940c3a247d508b8f7dd09c5",
+   "sha256": "03a39q495ivxn0bc9wsdl61d2qlxs2w618d5f3lkny9567wcrxgx"
   }
  },
  {
@@ -71553,8 +73672,8 @@
   "repo": "alphapapa/org-sidebar",
   "unstable": {
    "version": [
-    20200313,
-    1551
+    20200501,
+    1215
    ],
    "deps": [
     "dash",
@@ -71564,13 +73683,14 @@
     "org-super-agenda",
     "s"
    ],
-   "commit": "d6ddec21fd6f356dc7b77c0a61a633606965a0bf",
-   "sha256": "137a462cl66jldsw877jgn0jph4zsv036mhvd9rpp6pw6jsw50sy"
+   "commit": "6dfa3a2312e8dacc942980e4ab10f1faea922a49",
+   "sha256": "0byr4h9dcgv667sn110011lkcnrr327qg7wv7f87hm1gyl613cgp"
   },
   "stable": {
    "version": [
     0,
-    3
+    3,
+    1
    ],
    "deps": [
     "dash",
@@ -71580,8 +73700,8 @@
     "org-super-agenda",
     "s"
    ],
-   "commit": "41b914c7bdc5a12c9289b134822bdfea0889ac9e",
-   "sha256": "1mggpxbzprmmbkiv3xklw1saafsi153n4spr4l0m59lgm4gpymgj"
+   "commit": "4d8f6fce5ffce8c9b495742998d0ae64bdc5959d",
+   "sha256": "0i7dib49yfx48df371rqq16y0yxnc6n331wka532w10ava11g5s3"
   }
  },
  {
@@ -71609,6 +73729,40 @@
   }
  },
  {
+  "ename": "org-special-block-extras",
+  "commit": "c6cb3b3bf575f125f892b10fc3518f3ad1663d03",
+  "sha256": "041l129iabm078p9bfdcwx5aax9fa3kbn852h1qbq8jgsks36jv8",
+  "fetcher": "github",
+  "repo": "alhassy/org-special-block-extras",
+  "unstable": {
+   "version": [
+    20200502,
+    2057
+   ],
+   "deps": [
+    "dash",
+    "dash-functional",
+    "org",
+    "s"
+   ],
+   "commit": "38c3a0a2c2f9b99e0426334c7c6a9320cc6e39a5",
+   "sha256": "1rp9hyn9bshp4wjqgr8rpgjabyp86f3905ghpf5nnc4w4dfgq9vk"
+  },
+  "stable": {
+   "version": [
+    1
+   ],
+   "deps": [
+    "dash",
+    "dash-functional",
+    "org",
+    "s"
+   ],
+   "commit": "d1054754d0701296bc0cde1fb022619b1f38dfde",
+   "sha256": "1fy1sgj3jg7l6fjl00dxb7npf7x8ldcbs81cs8w4b4ciklp30mzr"
+  }
+ },
+ {
   "ename": "org-sql",
   "commit": "012573a35a302e9bb6f127cf28ac04f93796400e",
   "sha256": "15alnx74pmr6jc2yx2c1dbpk0fbdzil8bffj7cfj7ywj2xadmzpg",
@@ -71634,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"
   }
  },
  {
@@ -71673,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"
   }
  },
  {
@@ -71698,20 +73852,20 @@
   "repo": "bastibe/org-static-blog",
   "unstable": {
    "version": [
-    20200415,
-    623
+    20200720,
+    715
    ],
-   "commit": "ce92384b364de6421ab67e6399ae56b8ea51df49",
-   "sha256": "09i23m9knhr8px1f71wx4csddmrzgy9k4s9a2mq4la1wmj1jy627"
+   "commit": "58019b6dd1ae1323b72d491e65bf9636a9278dd6",
+   "sha256": "00yhgxg87mfaflrkh0i905hr873yd03a7znw5hkrps43zxha9kb9"
   },
   "stable": {
    "version": [
     1,
-    3,
+    4,
     0
    ],
-   "commit": "afe250fc43cd1beffd7946b54692d712d9263ff2",
-   "sha256": "15iy3z8rglaqbx1fz14inh18ksgjsmq30b8hyv3lgjvcc9ssaiw0"
+   "commit": "58019b6dd1ae1323b72d491e65bf9636a9278dd6",
+   "sha256": "00yhgxg87mfaflrkh0i905hr873yd03a7znw5hkrps43zxha9kb9"
   }
  },
  {
@@ -71789,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"
   }
  },
  {
@@ -71932,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",
@@ -72001,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": [
@@ -72153,11 +74344,11 @@
   "repo": "takaxp/org-tree-slide",
   "unstable": {
    "version": [
-    20200114,
-    2334
+    20200611,
+    1143
    ],
-   "commit": "7bf09a02bd2d8f1ccfcb5209bfb18fbe02d1f44e",
-   "sha256": "1pzgb1z5k8zsbdqiaa7l94xlrncji1l09zqxvq62fyc0slxcf4ix"
+   "commit": "7126a4365072a32898f169ead8fb59265dabc605",
+   "sha256": "0lbqq3kzh8pd991c3s76parsl49ci5sclfq3sx0aqbcla0qzvh3y"
   },
   "stable": {
    "version": [
@@ -72177,16 +74368,16 @@
   "repo": "mtekman/org-treescope.el",
   "unstable": {
    "version": [
-    20200324,
-    1959
+    20200503,
+    1609
    ],
    "deps": [
     "dash",
     "org",
     "org-ql"
    ],
-   "commit": "cad2aa82e5ca73bd7afc31b7a5e764da5ab716c3",
-   "sha256": "1jsc39xmli54mcqcdddzyaphmhlamwq167vfr2g133c3p0wx8swh"
+   "commit": "905029a9e2ce6ed325bb8e10f59dc589c181d148",
+   "sha256": "11xbm6161rd5kv2bffqw678a7bymclvhpmm1qjxsvmi8bhfk1ls0"
   }
  },
  {
@@ -72216,8 +74407,8 @@
   "repo": "org-trello/org-trello",
   "unstable": {
    "version": [
-    20200130,
-    1748
+    20200508,
+    1705
    ],
    "deps": [
     "dash",
@@ -72226,14 +74417,14 @@
     "request-deferred",
     "s"
    ],
-   "commit": "cd7bf366d40bb4af4a1a9801446dc98f713eac8a",
-   "sha256": "08pgn3llbk0sz5v50jqa7mvdv6dw507kgkrkk0ciii1jalg4786a"
+   "commit": "56c519a00c6e3c8f6923cd0460342089d58c41c9",
+   "sha256": "09028167pi9pzgcb8fpvqgvzviq1fxvgby5lb99wvyy94vjxwnk2"
   },
   "stable": {
    "version": [
     0,
     8,
-    1
+    2
    ],
    "deps": [
     "dash",
@@ -72242,8 +74433,8 @@
     "request-deferred",
     "s"
    ],
-   "commit": "c38c36159cdeb2348c4e9ca75246aa9cc1dfd76c",
-   "sha256": "02gx3kv4mkij69ln8x8wf9n28x17pbb4kv85v78d3lxph7ykqimc"
+   "commit": "4ddc257fe24e97c01e12b247568581ff255f0e8d",
+   "sha256": "18y5zdjc7zh4jlwz6k1nl13i721rknqm0vp4mxfnmq0sc5a0qva0"
   }
  },
  {
@@ -72257,8 +74448,8 @@
     20191207,
     2022
    ],
-   "commit": "eab07dae119129066624e692c1c75a53b2ab10a5",
-   "sha256": "1q9g8kza6hv6pv1sjzkl6b4gxcx6fsvv8lk5w7kk9gpws5vjz5bz"
+   "commit": "61a14d1a8c17930caca5c5daf893cedc9c23c5f3",
+   "sha256": "0acq8d8vlx3hd405wmi5w36gg88bz1c1crmlxbd2whgi8kyf506z"
   }
  },
  {
@@ -72269,11 +74460,11 @@
   "repo": "flexibeast/org-vcard",
   "unstable": {
    "version": [
-    20191130,
-    703
+    20200720,
+    638
    ],
-   "commit": "4f5d71225e946999f45ac9f96996705fee83df5a",
-   "sha256": "1w8miq52d2rlyslbss5173gnbv7rmkn2cicd9h272v6ybb585hcd"
+   "commit": "1ae97371b207dabfecaf6b4f7118abafe6cc5e2b",
+   "sha256": "0k9slz20gxcdpvpz8kgvvwff6cif74wybpqgg9x03wqqqda3f37v"
   },
   "stable": {
    "version": [
@@ -72293,11 +74484,11 @@
   "repo": "tesujimath/org-wc",
   "unstable": {
    "version": [
-    20180610,
-    253
+    20200731,
+    2244
    ],
-   "commit": "0716c1e8276f6953e139e357e97566e792c8be19",
-   "sha256": "0wx4z6y3wn6948bz2pgrpffd4jzwgplvjkh0rnra4gihrapg1bv8"
+   "commit": "dbbf794e4ec6c4080d945f43338185e34a4a582d",
+   "sha256": "0j58591jnj182hps1zc9an692hhnxinlpbw762l7xdc0sa5pjrgb"
   }
  },
  {
@@ -72382,20 +74573,30 @@
   "repo": "marcIhm/org-working-set",
   "unstable": {
    "version": [
-    20200416,
-    813
+    20200819,
+    708
    ],
-   "commit": "344d92ee5c117077317616e33d5945703059ac00",
-   "sha256": "1hzvv23bx4mscl3sw6nr8gggch8rdlyg33fhdv89xpgr700dx1nx"
+   "deps": [
+    "dash",
+    "org",
+    "s"
+   ],
+   "commit": "d6f2d1ebcfe0b6ccb3a799f04ba6842ca86c9115",
+   "sha256": "1lkf497qpydvw5f7vi0v7yr43j9v03hys16qz6nsqkbizr54b5jh"
   },
   "stable": {
    "version": [
     2,
-    1,
-    6
+    3,
+    4
    ],
-   "commit": "d6fff111930befa52a5cce128c986b0162ddf8c4",
-   "sha256": "1s9rqjn6c52kvz4v1ma6icdykvkvrvbyllpy5i1mg0pb4acbbwym"
+   "deps": [
+    "dash",
+    "org",
+    "s"
+   ],
+   "commit": "d6f2d1ebcfe0b6ccb3a799f04ba6842ca86c9115",
+   "sha256": "1lkf497qpydvw5f7vi0v7yr43j9v03hys16qz6nsqkbizr54b5jh"
   }
  },
  {
@@ -72428,8 +74629,8 @@
   "repo": "org2blog/org2blog",
   "unstable": {
    "version": [
-    20200317,
-    2136
+    20200814,
+    543
    ],
    "deps": [
     "htmlize",
@@ -72437,14 +74638,14 @@
     "metaweblog",
     "xml-rpc"
    ],
-   "commit": "60eae1c8a7f82fbcc2660d785b33601daaa29f4b",
-   "sha256": "06ia4ba6c1yph259wr4y5sdkl1ry6pzbwhx807ia675rp0clp9hz"
+   "commit": "a56346bf1517118b2a960eaadbf138ae1695ddd1",
+   "sha256": "09iycpdj6dkvz5axfx85bkrrf5128ws7clg1jn9yli06rjsw36ba"
   },
   "stable": {
    "version": [
     1,
     1,
-    8
+    10
    ],
    "deps": [
     "htmlize",
@@ -72452,8 +74653,8 @@
     "metaweblog",
     "xml-rpc"
    ],
-   "commit": "0177fc4e7edd705db59b82c83a24db51dc405890",
-   "sha256": "1whl7kz4im2jmdz99336wfn152q0l3qwii4w7sn45rlsm2sijiw1"
+   "commit": "19aa8a17428d6ee42f54e464c26eeab17a6478ab",
+   "sha256": "198ahgxji0kh6ynygrrdvllj9fwcqrnma4sd8msj2aq18xij9glr"
   }
  },
  {
@@ -72518,31 +74719,28 @@
   "repo": "ardumont/org2jekyll",
   "unstable": {
    "version": [
-    20170225,
-    915
+    20200622,
+    1519
    ],
    "deps": [
     "dash-functional",
-    "deferred",
-    "kv",
     "s"
    ],
-   "commit": "52a19a5d372116262b9d613f4ec8490a3b49e329",
-   "sha256": "14ld8ip487282if2sil96lfg5wx7632kg71sxhafygphbdl9vxd4"
+   "commit": "571249c977e0340edb3ef3af45b7841b62ec8065",
+   "sha256": "1hjqawygbmvdlvzi908b2l4k7ca3g0dg32mpk7vld8xwi49hb1kp"
   },
   "stable": {
    "version": [
     0,
-    1,
-    9
+    2,
+    7
    ],
    "deps": [
     "dash-functional",
-    "deferred",
     "s"
    ],
-   "commit": "35e11ffa24b140d2e247df195489fca344bd0c08",
-   "sha256": "089nqbda5mg1ippqnsl5wcx9n1gpnaqhl6kz54n47kivb400bidh"
+   "commit": "c05ba707190cfab20938afd1b5d4966511ca63b7",
+   "sha256": "03ddrc40qab285i7sj438kicaxxmixkk0b6d8512cn44f42zczyq"
   }
  },
  {
@@ -72597,11 +74795,11 @@
   "repo": "kostafey/organic-green-theme",
   "unstable": {
    "version": [
-    20200418,
-    2058
+    20200717,
+    1937
    ],
-   "commit": "5218473fb500e58ccad3f73cfc4245f161869f89",
-   "sha256": "07l10mjgz0il5z7qpn2bw7621m5frgcmsb2pl9pyhfrjykvf8mih"
+   "commit": "01fe614086e31e166d2a2f1d6b34e301f060458e",
+   "sha256": "1hsidgcyqsbm96gh0nfrdpnm4vq1sw8777d0zslsczr1fp51il6d"
   }
  },
  {
@@ -72612,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"
   }
  },
  {
@@ -72678,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"
   }
  },
  {
@@ -72711,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"
   }
  },
  {
@@ -72782,11 +75013,11 @@
   "repo": "tbanel/orgaggregate",
   "unstable": {
    "version": [
-    20200423,
-    2123
+    20200708,
+    2131
    ],
-   "commit": "b4d8ee2b8e0062eaa15eac6805374c02b776bb88",
-   "sha256": "1p187hfll4jz44g7xxdhnnm0qjcf4gdxbrywdqxpdqvqs74pa18l"
+   "commit": "99c6bc8c9b72dc9ce886a09540ed24ec83bcc056",
+   "sha256": "03q02cxz76wnx20rhwqiysxnskzs7caw428ij3jj4nsmjkhxdfv0"
   }
  },
  {
@@ -72812,14 +75043,14 @@
   "repo": "tbanel/orgtbljoin",
   "unstable": {
    "version": [
-    20200423,
-    2129
+    20200708,
+    2127
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "9a197de6c3036fbdb6309cbfd35ec31a69b3ebe7",
-   "sha256": "0fhq36g5k4nib5ykb92j12l3fnqj09xh2jai92l8c5nslgm00slr"
+   "commit": "1aa352a09a2c543352fceb32a505c44e080efcb3",
+   "sha256": "0aczwlssnhn1xpgk3s7l2smrxmhb8af6gg9xjdsfysss4ybbcgy6"
   }
  },
  {
@@ -72867,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",
@@ -72880,8 +75140,41 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "5d991188b511e9d650c84fc578f2f49c9f995693",
-   "sha256": "1x5nx064cgcjj99xwp7drcvhfmmav1f72jnwwlxllhas2is458m0"
+   "commit": "3141f9b65f8a68b4cbd6df4e08c64d98ce3aa3c9",
+   "sha256": "1j7q9rmcn6fkhbcvfh8w4y9dir2y0hhhqmjpsafs8m4zm1rvffbn"
+  }
+ },
+ {
+  "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"
   }
  },
  {
@@ -73147,20 +75440,20 @@
   "repo": "tarsius/outline-minor-faces",
   "unstable": {
    "version": [
-    20200416,
-    2211
+    20200720,
+    1954
    ],
-   "commit": "d431b13e3d47cf2564a04a096d2162ca38593050",
-   "sha256": "05szncxfm7595ah63k1z3zmivk2z1lv28jcwb1fylx0s93f51z0c"
+   "commit": "cb9c529bb992c6f60b054caf4e993b03c7b3ba9e",
+   "sha256": "1s76zfzpwhcql2c4kr5maxc53vznqw6p7hx9n8nihxjgz2rywcas"
   },
   "stable": {
    "version": [
     0,
-    1,
-    3
+    2,
+    1
    ],
-   "commit": "d6247aaec44f60a9bd161c1d56960f80ab314a49",
-   "sha256": "0mscnbbv6cap818zhzz3ig6ychrw0zw84zyl2g1rksir0qj4hznf"
+   "commit": "cb9c529bb992c6f60b054caf4e993b03c7b3ba9e",
+   "sha256": "1s76zfzpwhcql2c4kr5maxc53vznqw6p7hx9n8nihxjgz2rywcas"
   }
  },
  {
@@ -73375,14 +75668,14 @@
   "repo": "anticomputer/ovpn-mode",
   "unstable": {
    "version": [
-    20191214,
-    310
+    20200509,
+    236
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "8457f72de59929d6c176883e92d1a706163d3170",
-   "sha256": "0qcinx4gpfzngirwfis7byrdbgbwk3pak7f8mx5fsbcdnybkk8sj"
+   "commit": "3fb9b09506f06cfc7678a93b5401f49d2bf538bc",
+   "sha256": "099pa85v3jqrfk3frkj03xbxcli8gfimaz17dn3a8p6wjcrn3w6v"
   }
  },
  {
@@ -73393,11 +75686,11 @@
   "repo": "fishyfriend/owcmd",
   "unstable": {
    "version": [
-    20200424,
-    2314
+    20200517,
+    2039
    ],
-   "commit": "af0f79c16f573f4dbaafe77a430d7621857e706b",
-   "sha256": "0mjg5563bka3cc6rysw7fhhh51w4fpysa9ni9v5iv89d8i7mz0yd"
+   "commit": "05fb8f8f81838b5888fdec8b3947096dd2222e61",
+   "sha256": "0y9ldprxhp6nq8m5bxmhw4iq4n78wvdx2jmr5w9wbd0znvi4cbfz"
   }
  },
  {
@@ -73482,8 +75775,8 @@
     "htmlize",
     "org"
    ],
-   "commit": "bd36f9fb4e3b1b9e8686b993b02ccd780ff75a96",
-   "sha256": "03wj3gx09lbfmsanfhqfbzz61zaszia1mhfvlywhygknpagxr3lp"
+   "commit": "f5eac28734ea33d0b7a3dbe10b777907a91cf9f9",
+   "sha256": "05ndpkqr4kh2942ygjsa1w53056d60qvl0gmp30dxmzc57v0wb2x"
   }
  },
  {
@@ -73593,14 +75886,14 @@
   "repo": "kaushalmodi/ox-hugo",
   "unstable": {
    "version": [
-    20200420,
-    324
+    20200722,
+    1939
    ],
    "deps": [
     "org"
    ],
-   "commit": "5106b430a139bb9e37beda177a082dfe36b407f5",
-   "sha256": "1x5hmvxy9dl88ix4ir1jshjavc99l8884if8c0v9gkjqb31ka9n7"
+   "commit": "75b849e9561c4a6022babf6eaf0e037310ded7c1",
+   "sha256": "1xsxljf99h2pyvpp9gvma6g42q1n2xmhnwvpmciwj5rajw5xqc5v"
   },
   "stable": {
    "version": [
@@ -73616,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,
@@ -73689,14 +75982,14 @@
   "repo": "stig/ox-jira.el",
   "unstable": {
    "version": [
-    20200218,
-    2301
+    20200616,
+    2310
    ],
    "deps": [
     "org"
    ],
-   "commit": "00767df8ba024eb1ef09fe16c3aed30d729d6add",
-   "sha256": "0fbic43vzp0dp8wbx12cq22ca192v2jl2w131xcqmbhbww6j5xv2"
+   "commit": "e9a47ef51862f11a5c006cf9e8c5f4ec5517aced",
+   "sha256": "1ws3myl2z6vv3idq28m8q97zlrmsfg5z3i8y3adsbm56ga9jqvdj"
   }
  },
  {
@@ -73759,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",
@@ -73889,14 +76201,14 @@
   "repo": "0x60df/ox-qmd",
   "unstable": {
    "version": [
-    20170402,
-    1657
+    20200813,
+    408
    ],
    "deps": [
     "org"
    ],
-   "commit": "3a24c7a0b3ec80e494b977e14a3dfb94c9f1d8ec",
-   "sha256": "030nay81c49ings96akzzy108a6agg91rvpmg0pf05qmjysfysmf"
+   "commit": "8c3d8ce2a21044fc85e5e4e06be0220900d7ba4f",
+   "sha256": "1j6zmjy3s2l2wj500q9i75xd3hf8wlh04ycmmad45swrkgp70f2s"
   }
  },
  {
@@ -73907,14 +76219,14 @@
   "repo": "yjwen/org-reveal",
   "unstable": {
    "version": [
-    20200327,
-    1636
+    20200802,
+    710
    ],
    "deps": [
     "org"
    ],
-   "commit": "ea8b5021702d8f12aa5285fb2a8561ceaeb1332e",
-   "sha256": "1fppdz2r8zig6r1v1n82bxmxyn2f6i1rjv9qll4n866gahkknlkr"
+   "commit": "553e1a9d678e74c2646e4c19bd9f6c08d8a00486",
+   "sha256": "18khlffdmg88pd50vwg00vz143ysqhkdkvva9h4bkw618inz70wq"
   }
  },
  {
@@ -73943,14 +76255,14 @@
   "repo": "msnoigrs/ox-rst",
   "unstable": {
    "version": [
-    20191013,
-    551
+    20200815,
+    1511
    ],
    "deps": [
     "org"
    ],
-   "commit": "9158bfd18096c559e0a225ae62ab683f1c98a547",
-   "sha256": "11v1h45ipjh95ksk6cdgp0azfmb7y3i8hdd46m7psmda08x8kqm5"
+   "commit": "99fa790da55b57a3f2e9aa187493ba434a64250e",
+   "sha256": "0dxadzbha2fvg42jh4ng8hjb582mv7avlzmpxlzf32qxf6x8r638"
   }
  },
  {
@@ -74101,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"
   }
  },
  {
@@ -74295,14 +76607,14 @@
   "repo": "melpa/package-build",
   "unstable": {
    "version": [
-    20200313,
-    2359
+    20200601,
+    1939
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "90e514432661f750f2a0c9fe17f09cdcc8e4e82b",
-   "sha256": "0p2vzsad8biczhj80y5bif5p0agcg8id4qngvi0lmxvx8i8wvky0"
+   "commit": "4cb0f98a21729f9ef0189f095384555c9d2b6fe4",
+   "sha256": "0ij6p7i5x0fs0yn8zxcx7gf9ldanflh7mj7mblr8snpgbzx3jwnz"
   },
   "stable": {
    "version": [
@@ -74339,27 +76651,27 @@
   "repo": "purcell/package-lint",
   "unstable": {
    "version": [
-    20200419,
-    406
+    20200816,
+    24
    ],
    "deps": [
     "cl-lib",
     "let-alist"
    ],
-   "commit": "fb4662a755572c5add43869cdb6dcc577ca83a7f",
-   "sha256": "1flapr3aq38212m7w9ib56vqmaixz7ggmqd6hjhzphf6q1r5cv3l"
+   "commit": "c4b16a90196d6d83d6ba668923c1ce725e13a5d6",
+   "sha256": "0kz8snjl0802ypxzag2n7552f6ssmj0hxx4lkal4v421pr2cqka6"
   },
   "stable": {
    "version": [
     0,
-    12
+    13
    ],
    "deps": [
     "cl-lib",
     "let-alist"
    ],
-   "commit": "f86705d0d4ed81ea8ea14e00fe59714f11f7c2ba",
-   "sha256": "00inrfla7f824yh10rxlr0xq1cmyqigppsrfspd637d58239l6sw"
+   "commit": "9e28a5cd08e94db0ba4fb8847fa970c98316facc",
+   "sha256": "03pim9ijqmjqyv0qlkap5jw47iv9qsw1d7s2p9vrqjnpf4jxcq70"
   }
  },
  {
@@ -74376,19 +76688,19 @@
    "deps": [
     "package-lint"
    ],
-   "commit": "fb4662a755572c5add43869cdb6dcc577ca83a7f",
-   "sha256": "1flapr3aq38212m7w9ib56vqmaixz7ggmqd6hjhzphf6q1r5cv3l"
+   "commit": "c4b16a90196d6d83d6ba668923c1ce725e13a5d6",
+   "sha256": "0kz8snjl0802ypxzag2n7552f6ssmj0hxx4lkal4v421pr2cqka6"
   },
   "stable": {
    "version": [
     0,
-    12
+    13
    ],
    "deps": [
     "package-lint"
    ],
-   "commit": "f86705d0d4ed81ea8ea14e00fe59714f11f7c2ba",
-   "sha256": "00inrfla7f824yh10rxlr0xq1cmyqigppsrfspd637d58239l6sw"
+   "commit": "9e28a5cd08e94db0ba4fb8847fa970c98316facc",
+   "sha256": "03pim9ijqmjqyv0qlkap5jw47iv9qsw1d7s2p9vrqjnpf4jxcq70"
   }
  },
  {
@@ -74546,8 +76858,8 @@
     20200305,
     244
    ],
-   "commit": "314b397910b3d16bb7cbcc25098696348e678080",
-   "sha256": "106w2n01i9d6z2r43lwwrm7hlppi9bkf8g8nsqd91f0f06921plw"
+   "commit": "f8c4cd7fc67638ae4113551dcffdf87fcd252d9b",
+   "sha256": "1jh7mdry3ysgl9dvrrbx7b9f5dh4bm6gccibpcdnm9pgpfj2bm29"
   },
   "stable": {
    "version": [
@@ -74599,11 +76911,11 @@
   "repo": "danielsz/Palimpsest",
   "unstable": {
    "version": [
-    20200211,
-    641
+    20200804,
+    2308
    ],
-   "commit": "389ec5b4c5067fa903c543b7fe1d804f30b6ced5",
-   "sha256": "1yki1sl2m7fj4m52gmb768h2qkv0j93lmd72jv21n20bnzvjp73v"
+   "commit": "f474b3ad706373d9953abdc401d683a2a023d28e",
+   "sha256": "0wzxl1zcbm3svspjpjzvx92is1k9sz7g0a99r8q066j2364la0zh"
   }
  },
  {
@@ -74670,11 +76982,11 @@
   "repo": "sebasmonia/panda",
   "unstable": {
    "version": [
-    20200424,
-    2206
+    20200715,
+    338
    ],
-   "commit": "bdd9f80283d8ae4a69f8789e5f18b1560b94fe43",
-   "sha256": "1ld4igmmjk7p7dxm0mnfks3k0cqpqjxrvlmjdi0m7w11ba8dsah9"
+   "commit": "6508ac3228975c39d10a1caa70b9ce34ff3ed21d",
+   "sha256": "019nigy5yh1qrzw0agp2kgjfpfm503fgkj07c9m2xqs9hww781x1"
   }
  },
  {
@@ -74787,11 +77099,11 @@
   "repo": "cadadr/elisp",
   "unstable": {
    "version": [
-    20190124,
-    1828
+    20200510,
+    5
    ],
-   "commit": "eab07dae119129066624e692c1c75a53b2ab10a5",
-   "sha256": "1q9g8kza6hv6pv1sjzkl6b4gxcx6fsvv8lk5w7kk9gpws5vjz5bz"
+   "commit": "61a14d1a8c17930caca5c5daf893cedc9c23c5f3",
+   "sha256": "0acq8d8vlx3hd405wmi5w36gg88bz1c1crmlxbd2whgi8kyf506z"
   }
  },
  {
@@ -74858,14 +77170,14 @@
   "repo": "ajgrf/parchment",
   "unstable": {
    "version": [
-    20200424,
-    1524
+    20200812,
+    1259
    ],
    "deps": [
     "autothemer"
    ],
-   "commit": "766efdbd444cbefd9d01e7c6f55956d4c9a8db6c",
-   "sha256": "1jz9vf8wfjnnbbsnxzcpfvj19556w1z9887xvvwn6rsiqqlxgray"
+   "commit": "271ab4b7d023d730e3d684a1505cc77e2d0cc14a",
+   "sha256": "138n4fs33cv2ly89cvs7lkh372kghldhw8pw18zsi39qfvggw6wm"
   },
   "stable": {
    "version": [
@@ -74888,8 +77200,8 @@
     20191121,
     2328
    ],
-   "commit": "814999bb320e6d5aaa9c8ff663b1933157129571",
-   "sha256": "0jb3qwx8bxr7x17cgqbd6v53634i9lmrcnqn847bnnlsvy0j094x"
+   "commit": "8330a41e8188fe18d3fa805bb9aa529f015318e8",
+   "sha256": "10zm5nfs8sx1cmjifjcy6xj3285hx1936xc3kbf6ndzpcqgb9yd5"
   },
   "stable": {
    "version": [
@@ -75041,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",
@@ -75087,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"
   }
  },
  {
@@ -75119,11 +77453,11 @@
   "repo": "joostkremers/parsebib",
   "unstable": {
    "version": [
-    20200303,
-    2324
+    20200513,
+    2352
    ],
-   "commit": "6537b4d2a8cf34455b769b95dfd65de6a4a0e1d3",
-   "sha256": "1gy5rqnfnyhfa44vxy7qqqh7xada1d1gg34msczcalhhy6lm59if"
+   "commit": "3497b6068d78ae15ba1eaf94e4315d18e9ae6b00",
+   "sha256": "0vf9qrkc4dna2f9l0ry1qhfxy7yw1dlilgh38dlp42kqdyp5qny8"
   },
   "stable": {
    "version": [
@@ -75351,8 +77685,8 @@
     "s",
     "with-editor"
    ],
-   "commit": "07b169ec32ad6961ed8625a0b932a663abcb01d2",
-   "sha256": "1dl3bck16zwhpspjrms11dknqgadnmpjqhcplkvv3v4f7vbnij6v"
+   "commit": "06f499994071bb6131244218b25d637103afe1d5",
+   "sha256": "05w0jkl7m55h30szvgknbwg7xayilk4bh3nf70hrsy3czisxmccx"
   },
   "stable": {
    "version": [
@@ -75882,15 +78216,15 @@
   "repo": "politza/pdf-tools",
   "unstable": {
    "version": [
-    20200214,
-    536
+    20200512,
+    1524
    ],
    "deps": [
     "let-alist",
     "tablist"
    ],
-   "commit": "0159cb1ab36f75879151e5ea24a6918ef58e50a3",
-   "sha256": "1ai8g6n3d40mcr2zx4h8ih3b1fxx6xzwbr0h3m8yh32vjj5qlwrp"
+   "commit": "c510442ab89c8a9e9881230eeb364f4663f59e76",
+   "sha256": "17z3cpn76g9dp62drjrgrqpp1bgf4gl5k5gspylskpvd4kj4bq4d"
   },
   "stable": {
    "version": [
@@ -75987,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",
@@ -76057,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"
   }
  },
  {
@@ -76211,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": [
@@ -76289,25 +78597,25 @@
   "repo": "nex3/perspective-el",
   "unstable": {
    "version": [
-    20200418,
-    1815
+    20200814,
+    554
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "c3075b52db1f973202303fa306c56a24d9d47fc9",
-   "sha256": "0mcsrkga5y8sl05mv3n4lmjpgn9mcpy01w0qz55a6jv301rda3p0"
+   "commit": "74e811ccbada09dd9a3d90b983e78d146542121b",
+   "sha256": "1xfcm69nd6f9chwlqfz5vd8nnyl5mwharxjrn1m515568dqrk62x"
   },
   "stable": {
    "version": [
     2,
-    7
+    10
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "c3075b52db1f973202303fa306c56a24d9d47fc9",
-   "sha256": "0mcsrkga5y8sl05mv3n4lmjpgn9mcpy01w0qz55a6jv301rda3p0"
+   "commit": "74e811ccbada09dd9a3d90b983e78d146542121b",
+   "sha256": "1xfcm69nd6f9chwlqfz5vd8nnyl5mwharxjrn1m515568dqrk62x"
   }
  },
  {
@@ -76347,8 +78655,17 @@
     20200321,
     504
    ],
-   "commit": "4ae88a9c81d499bbe99978ff0216b645fed70023",
-   "sha256": "1zc7dmgp3s9q33wkvw6i7zzlcaa65ixx3hxb78m62lk2a7fzb3ih"
+   "commit": "43447a2c70f98edd1139005e32f437d3f142442b",
+   "sha256": "1ccpb1jbynlqqzhsm3h7xk2s7n9nbpnnxmixz77kxskdxj5as79a"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "commit": "43447a2c70f98edd1139005e32f437d3f142442b",
+   "sha256": "1ccpb1jbynlqqzhsm3h7xk2s7n9nbpnnxmixz77kxskdxj5as79a"
   }
  },
  {
@@ -76457,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": [
@@ -76489,14 +78806,14 @@
   "repo": "zk-phi/phi-autopair",
   "unstable": {
    "version": [
-    20191220,
-    311
+    20200816,
+    535
    ],
    "deps": [
     "paredit"
    ],
-   "commit": "5685b9541c4c9d4cc8a892743fdf245aceea1682",
-   "sha256": "16kib35s7pffcs8kiljydbf5z1qq5l2d04dqqcnbbi0539y979n5"
+   "commit": "3e78793f9c480adf79b12d441fae5571e97b9e5f",
+   "sha256": "003dnixrnn7qcm25dbibc4rc8yrqsj9jci9rxp9l7ci6ya1bi0i2"
   }
  },
  {
@@ -76507,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"
   }
  },
  {
@@ -76525,11 +78842,11 @@
   "repo": "zk-phi/phi-rectangle",
   "unstable": {
    "version": [
-    20151208,
-    654
+    20200816,
+    650
    ],
-   "commit": "0c12716afc71d803d1f39417469521dc465762d9",
-   "sha256": "0d2c579rg8wdfmn94nzaix9332jch4wlr939jszls330s38d0iv4"
+   "commit": "4ea8b40a614c1cc9087b9c0bd924a2d9d6cc0a83",
+   "sha256": "1ajjdpx4xbgig11380lyy10gqfmp23k5zwb77pwdl1rhapsdpjp8"
   }
  },
  {
@@ -76540,10 +78857,10 @@
   "repo": "zk-phi/phi-search",
   "unstable": {
    "version": [
-    20191106,
-    233
+    20200510,
+    905
    ],
-   "commit": "2a8fe73aa9ef014e27e202964c5a4f4e94ef24b2",
+   "commit": "f567f048b3892062c5528b42d4f6af4b313721a3",
    "sha256": "15yc5nlfx2z48n8p7pb6qzgbzfpnapb83w5xx6z8lq0mywf3k5jj"
   },
   "stable": {
@@ -76562,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"
   }
  },
  {
@@ -76765,26 +79082,50 @@
  },
  {
   "ename": "php-mode",
-  "commit": "2e41dc09413eaa93704e7d9f55bd2bd01f658806",
-  "sha256": "1gqmcynz2wx09xjnk70db1a2pbnrh1vfm5vd6mks1s10y59bh0zq",
+  "commit": "5593a586ce7579fd3a136e2416b89721157f98e1",
+  "sha256": "1xa9dmjinm6qm4cbzqanw5njmif71sg3jxnvgvi17jj9j3125d9f",
   "fetcher": "github",
   "repo": "emacs-php/php-mode",
   "unstable": {
    "version": [
-    20200415,
-    1405
+    20200812,
+    1129
    ],
-   "commit": "4d0b4a04401a2b9f9ff834f6ed58bc7cc5b878c0",
-   "sha256": "0lgw1lghib0vv4byrhjimldxyqyav4qypprk9ppvwjbad1j0hfkn"
+   "commit": "f4c7c6995dadcdc6da5fefadfd362f8418b2eec1",
+   "sha256": "0vg8xzpm4lbahlldgfsc63wfans3wx0nfkm2x2k3qkgp9r7wbh38"
   },
   "stable": {
    "version": [
     1,
-    22,
-    2
+    23,
+    0
+   ],
+   "commit": "08c6e0f6719fafa60cf76f741d83524fd84163d6",
+   "sha256": "0wnkcxg6djy4jvxhshiy1iw6b5cf79pjwjhfd1a060cavhfm4v5c"
+  }
+ },
+ {
+  "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": "433864b0755d99ec6b496ed45476c1e2eca0228c",
-   "sha256": "1r4bpyavlndd4c78cv5cc97bc0gkd4cggiyz4kd2vg6zlyc1nld3"
+   "commit": "325668a47127bee77f094ed2b09171b8656c7429",
+   "sha256": "16cm754r1cg1rb6blfqcja41klr4hy90gkhg6p9p79qgxjrnbbbd"
   }
  },
  {
@@ -76863,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": [
@@ -76928,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": [
@@ -77149,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": [
@@ -77471,11 +79811,11 @@
   "repo": "juergenhoetzel/pkgbuild-mode",
   "unstable": {
    "version": [
-    20200425,
-    616
+    20200818,
+    1742
    ],
-   "commit": "bc22301198b3f581d89352510e847454fb1cb9ff",
-   "sha256": "11il65myybgfj30psicfgqpjwwpa6hwapf55d497x8kbixx2kpg1"
+   "commit": "887c01cb06420501c7780fb01a8a76bdb0864cca",
+   "sha256": "17v71sd1i7wyvjzz0nir7p28cskzgws4dcpm83ch1khhljh3r7kl"
   },
   "stable": {
    "version": [
@@ -77494,14 +79834,14 @@
   "repo": "abo-abo/plain-org-wiki",
   "unstable": {
    "version": [
-    20191013,
-    1833
+    20200617,
+    828
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "887717c184fb22dd219c78851303a8e5b917f877",
-   "sha256": "0wqxp46zvwswda644mnr92qxyyvakvl2l8w61sg6hy37pwfznx73"
+   "commit": "5e32e7e6216e24d515624008fa0898077403aa7f",
+   "sha256": "0d3nhvkzzharjv54w3rinqcpwhqb61flgvvcngfdxkrgs1yazaqk"
   }
  },
  {
@@ -77709,11 +80049,11 @@
   "repo": "akirak/emacs-playground",
   "unstable": {
    "version": [
-    20180624,
-    326
+    20200812,
+    1336
    ],
-   "commit": "9212790026bea9ab5fb4ecf0da1163be8ab00776",
-   "sha256": "0g6d7z9sv7fdc918gay7rd71frzqn75mcwnljgmqksfh5890apa6"
+   "commit": "77d2faab0bc3f6e1f2c65c66644c52167304610d",
+   "sha256": "1xl6fp246wk764jkyr7km7lgqfdyvbjxr9ri20dzaadfvwqyfzg5"
   }
  },
  {
@@ -77781,11 +80121,11 @@
   "repo": "flexibeast/plisp-mode",
   "unstable": {
    "version": [
-    20200403,
-    613
+    20200427,
+    405
    ],
-   "commit": "03dcd523295a0dec76356d23043428d850b03b70",
-   "sha256": "0g9bwd137z543pbdq4j74j0ql8j2657yxh4kb809jps9kxq8dc0k"
+   "commit": "59e682d77569b04e9fc80af9c4b05e4a997dbcec",
+   "sha256": "10v9j7sv5q9ywq8bdj2g1j262ggsy3hwqybn6rnrcim5v1f7a51r"
   }
  },
  {
@@ -77897,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",
@@ -77904,11 +80259,19 @@
   "repo": "emacsmirror/po-mode",
   "unstable": {
    "version": [
-    20190511,
-    1542
+    20200610,
+    1743
    ],
-   "commit": "1916142f6a817c733d5ec37e3b4fbae3da67e499",
-   "sha256": "0nvpr5ry86by1dm7mp2w5p534qg4c9dpdich3x13gbbp9vazc7h6"
+   "commit": "3114e245c2ee6208e9b506f3e65e631e1b236019",
+   "sha256": "1f84fziibcc1bjhcmmzvbsvsw2lwabsb70vl4x2jpqsraygzhw0b"
+  },
+  "stable": {
+   "version": [
+    0,
+    21
+   ],
+   "commit": "25eb1bdca30ed25d2e5d51b9feeb28a3faff51ec",
+   "sha256": "00ff5njs4aghkhipw5pmha4mj1a5s35g1cxihhbqpn9gr7kmbg02"
   }
  },
  {
@@ -78033,14 +80396,14 @@
   "repo": "lujun9972/podcaster",
   "unstable": {
    "version": [
-    20161020,
-    1535
+    20200607,
+    1054
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "9854517025deb5d556168a68955fb7b662239f5c",
-   "sha256": "06ag0idz7cf6i9kg7kqr03js9b6cw6my1jzd1x3wkgazx5slqk4q"
+   "commit": "7a21173da0c57e6aa41dbdc33383047386b35eb5",
+   "sha256": "1b2bhwipsyyydrqdxjsipzy170xdkfamd4mw5pwzjcgdjqz9wvxa"
   }
  },
  {
@@ -78093,11 +80456,11 @@
   "repo": "kunalb/poet",
   "unstable": {
    "version": [
-    20191215,
-    201
+    20200606,
+    2343
    ],
-   "commit": "ad998dce8a953eb6101e61bd6bb5ff871535d383",
-   "sha256": "030qm41sf4z29f0gghrk6a4lpf775lgg9vvlmcnl678vgy7p9fa5"
+   "commit": "16eb694f0755c04c4db98614d0eca1199fddad70",
+   "sha256": "0zm8jbviddyj7jnyssh77jx43jghbpjwr77n9s3cjp3bmadwkrv5"
   }
  },
  {
@@ -78108,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": [
@@ -78164,11 +80527,11 @@
   "repo": "dgutov/point-stack",
   "unstable": {
    "version": [
-    20170808,
-    1658
+    20200427,
+    107
    ],
-   "commit": "76e17311e3a810314c7d31ac46dc55450ff30fa2",
-   "sha256": "1sp3djnyg3f5ci43m4pi0f6clblrz5lrnzc415r87csbavqqgv2z"
+   "commit": "cddcea2c91038710c245819b3cda2dd739726134",
+   "sha256": "1qjf13zmh0gf90knd73b6fyn3bhwjzn4k1w1xpa1ngnh6v233da9"
   }
  },
  {
@@ -78187,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",
@@ -78375,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": [
@@ -78516,11 +80894,11 @@
   "repo": "polymode/polymode",
   "unstable": {
    "version": [
-    20200411,
-    915
+    20200606,
+    1106
    ],
-   "commit": "2a61fb6d3e805bc0e4ca7b6510510a955c6bfb6a",
-   "sha256": "0cphikjz9hwij1k41radyar6nh7md8v98qwn2j9lzcbyz69hrvaq"
+   "commit": "3284ff10017d280ba82f27dc20fe5223b0df709c",
+   "sha256": "0756c0fi5msqdsks95bcs0ghhk90b340y4zrkijhaz4b2cnm07h4"
   },
   "stable": {
    "version": [
@@ -78540,25 +80918,20 @@
   "repo": "TatriX/pomidor",
   "unstable": {
    "version": [
-    20190523,
-    1414
-   ],
-   "deps": [
-    "alert"
+    20200722,
+    1402
    ],
-   "commit": "590e64d316d9210bd00cb4eb39d2f07ddc16809a",
-   "sha256": "0001k4p09il5f20s0jgyi96wzslfcgv3y35wfxj771gixlacnrhi"
+   "commit": "60da23c97c30e08254a914dca411b2e3fd639c99",
+   "sha256": "19a5155gxz97yqhfxp48d6lnhh0qqai4pd5rg1xy79mq0hxy31p7"
   },
   "stable": {
    "version": [
     0,
-    3
-   ],
-   "deps": [
-    "alert"
+    6,
+    1
    ],
-   "commit": "590e64d316d9210bd00cb4eb39d2f07ddc16809a",
-   "sha256": "0001k4p09il5f20s0jgyi96wzslfcgv3y35wfxj771gixlacnrhi"
+   "commit": "bf3ca99c24a84befe9ed76b9636ec9adb37ab844",
+   "sha256": "1qsgx1vh0xsk1wwpyx8lpnpa4879bzf0gil28v94sncbri2c6f7w"
   }
  },
  {
@@ -78629,26 +81002,40 @@
   "repo": "ponylang/ponylang-mode",
   "unstable": {
    "version": [
-    20180804,
-    1521
+    20200724,
+    137
    ],
    "deps": [
-    "dash"
+    "company-ctags",
+    "dash",
+    "fill-column-indicator",
+    "hl-todo",
+    "hydra",
+    "rainbow-delimiters",
+    "yafolding",
+    "yasnippet"
    ],
-   "commit": "ea98ba541b4a439accc126f17120c5425f741b67",
-   "sha256": "0pl7hpsc3az2zd80r77qgxajbvwcmq7b5dcyphv7bfvlimgby7i3"
+   "commit": "136cc4f7ab4f2ab549633392a72d55051c8b31ac",
+   "sha256": "0pjjccd145bla2gshs648kwhlw9r4n449g318nw81v2nn10z6qwl"
   },
   "stable": {
    "version": [
     0,
-    0,
-    11
+    5,
+    3
    ],
    "deps": [
-    "dash"
+    "company-ctags",
+    "dash",
+    "fill-column-indicator",
+    "hl-todo",
+    "hydra",
+    "rainbow-delimiters",
+    "yafolding",
+    "yasnippet"
    ],
-   "commit": "963abdcdb398b71fb13a4f7d2ffde23eb20e2a23",
-   "sha256": "1h0y6x4h7higwdq569h2lk0iddd23c3csqjk7y5phvc0lq812xs0"
+   "commit": "0b876e6a2d602f94cc118e6b76f5f79d18244325",
+   "sha256": "00xn2mhnf5qvn4v6yncmfa9ijrb33zl49mlc7pqn8pzr8nhbxzvc"
   }
  },
  {
@@ -78706,26 +81093,26 @@
   "repo": "auto-complete/popup-el",
   "unstable": {
    "version": [
-    20160709,
-    1429
+    20200610,
+    317
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "80829dd46381754639fb764da11c67235fe63282",
-   "sha256": "05j7m6mqp6hr6225blsipnp2qcncwl09f52niya5334ibqzbvvlk"
+   "commit": "9d104d4bbbcb37bbc9d9ce762e74d41174683f86",
+   "sha256": "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"
   },
   "stable": {
    "version": [
     0,
     5,
-    3
+    8
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "46632ab9652dacad56fd961cd6def25a015170ae",
-   "sha256": "1y538siabcf1n00wr4iz5gbxfndw661kx2mn9w1g4lg7yi4n0h0h"
+   "commit": "9d104d4bbbcb37bbc9d9ce762e74d41174683f86",
+   "sha256": "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"
   }
  },
  {
@@ -78832,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"
   }
  },
  {
@@ -78952,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"
   }
  },
  {
@@ -79047,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": [
@@ -79118,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"
   }
  },
  {
@@ -79170,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": [
@@ -79235,19 +81622,19 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20200412,
-    1607
+    20200818,
+    1400
    ],
-   "commit": "0f4a89bdec61395138d968a38d375e63ccfbed63",
-   "sha256": "0nnf4y49pl9lcs90y5z6f02g1xwk1jjrl0qs7gcv6kpn0vn8kn0h"
+   "commit": "cc289ba3b0d89f251267ca2b669d01b3afecc530",
+   "sha256": "0xwy2xh55dm4y7wlz2g6fkwf1xyqqjyp0sjb522qgasivknzwa5p"
   },
   "stable": {
    "version": [
-    4,
-    1
+    5,
+    0
    ],
-   "commit": "aa3110281a0622fa7b5da115cefb71a319b5b1a0",
-   "sha256": "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3"
+   "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
+   "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
   }
  },
  {
@@ -79296,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",
@@ -79684,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"
   }
  },
  {
@@ -79837,26 +82256,26 @@
   "repo": "bbatsov/projectile",
   "unstable": {
    "version": [
-    20200329,
-    1908
+    20200819,
+    531
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "2aa3a663fc9a9a75c3bf73699e40ecc0c3567268",
-   "sha256": "1cw4bgj9iglcs71zrbx8rjk19dfvnws795qbm52hm7zs95lfprxn"
+   "commit": "46d2010c6a6cccfc4be72317f10ea99fd041ab54",
+   "sha256": "1xd4ag6sypqhfn85vnr8609cl9nip0l5j77226p6apv6yhdippqx"
   },
   "stable": {
    "version": [
     2,
-    1,
+    2,
     0
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "34b2665023f9a29ebd2a415bfb8091db3c804d46",
-   "sha256": "16p79m8mkrlczx4b5v28nnlcd1ny49861lax28r7cb9ps9jhdz7d"
+   "commit": "dc0e7a5ba46f92bd224a5e89f0af2ace0ed05ade",
+   "sha256": "1kf34p2jwcjcqniia8bx3kn14ybwcq81x7gcm1vkd9cj7x0mx96n"
   }
  },
  {
@@ -79931,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",
@@ -80209,11 +82608,11 @@
   "repo": "chuntaro/emacs-promise",
   "unstable": {
    "version": [
-    20200425,
-    617
+    20200727,
+    900
    ],
-   "commit": "2a8e71420e8c9d2d4ce951d4342762aeedaae654",
-   "sha256": "1drz8qbcw5qjh5v0vkvflni14g58nmkmyn11ksjd49ck296mfsp7"
+   "commit": "d7b59805e7a8da1f5edea9313b6e2d0f1115fec0",
+   "sha256": "08f30fwwh86mnymbjxr9gswkgvsfdxa1mqajsmsbkk5nvmz1jx0n"
   },
   "stable": {
    "version": [
@@ -80289,11 +82688,11 @@
   "repo": "ProofGeneral/PG",
   "unstable": {
    "version": [
-    20200416,
-    1351
+    20200623,
+    1748
    ],
-   "commit": "e901c0bb73e0e66c95879bbb3738ac79e91ffeaa",
-   "sha256": "1j6dwcpplh98wf3mncidc8gn96pv58g71igim28gkqx21g8p2i40"
+   "commit": "03e427a8f19485e12b2f95387ed3e0bff7cc944c",
+   "sha256": "0ykxb4xdsxv2mja620kf61k2l18scs0jdsfsg1kzs2qf4ddjscyn"
   },
   "stable": {
    "version": [
@@ -80393,20 +82792,22 @@
   "repo": "google/protobuf",
   "unstable": {
    "version": [
-    20170526,
-    1650
+    20200619,
+    1742
    ],
-   "commit": "dddeed298bf84505f4d123a068f911025b351661",
-   "sha256": "10a70drfyanrjpx157aip402vd56ynm85ryzripd3w0symn9k1c3"
+   "commit": "214c77e1b76e63e512bd675d1c300c80438642b6",
+   "sha256": "1fxf5gydjcfc9gdwv6yfcwv85ww5glqbzlfv9hcnkddwlz6schxa"
   },
   "stable": {
    "version": [
-    3,
-    11,
-    4
+    4,
+    0,
+    0,
+    -1,
+    2
    ],
-   "commit": "d0bfd5221182da1a7cc280f3337b5e41a89539cf",
-   "sha256": "00g61f1yd8z5l0z0svmr3hms38ph35lcx2y7hivw6fahslw0l8yw"
+   "commit": "6c61c1e63b9be3c36db6bed19032dfc0d63aadda",
+   "sha256": "1910pnpy0mfzqga4mv52ybjfbxrbdflgb6nsh2vbpbpsv4jl58dq"
   }
  },
  {
@@ -80454,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",
@@ -80461,8 +82892,8 @@
   "repo": "purescript-emacs/psc-ide-emacs",
   "unstable": {
    "version": [
-    20200317,
-    1013
+    20200702,
+    1540
    ],
    "deps": [
     "company",
@@ -80473,8 +82904,8 @@
     "s",
     "seq"
    ],
-   "commit": "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe",
-   "sha256": "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"
+   "commit": "663f4e2cf9cbafdd4b9a60c34346596e2a40c87c",
+   "sha256": "06zgi5inlg244qhabsp4a24kda83i6rdpxf78qb7ygpxwdj4hf44"
   }
  },
  {
@@ -80520,15 +82951,15 @@
   "repo": "thierryvolpiatto/psession",
   "unstable": {
    "version": [
-    20190808,
-    1626
+    20200714,
+    555
    ],
    "deps": [
     "async",
     "cl-lib"
    ],
-   "commit": "3e97267c92b164584e06a6c70ee7491714c7c12c",
-   "sha256": "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"
+   "commit": "d2b8f8d8c6acd2f86f3a7774a7079f40b1b75f8e",
+   "sha256": "1pks2xvnampp74d1m7rrq6801bdhcmdsx9gbrcvr8ljxxlzbka1w"
   },
   "stable": {
    "version": [
@@ -80608,8 +83039,8 @@
   "repo": "fvdbeek/emacs-pubmed",
   "unstable": {
    "version": [
-    20200426,
-    1239
+    20200618,
+    2203
    ],
    "deps": [
     "deferred",
@@ -80617,14 +83048,13 @@
     "s",
     "unidecode"
    ],
-   "commit": "e619042f3c0383c7d4e1762fb46ff680e90906d6",
-   "sha256": "1igvmwxfpa19aws7h066hk9axwgl3swp8lmn218c1hmq2j2jkwgz"
+   "commit": "88aeb71ed4354af0b58354636ee6a9485887213d",
+   "sha256": "154lkpipi5wgcwx4j9w6h3zysciw7hblf03an2irr9xgdhs7xs7q"
   },
   "stable": {
    "version": [
     0,
-    4,
-    3
+    5
    ],
    "deps": [
     "deferred",
@@ -80632,8 +83062,8 @@
     "s",
     "unidecode"
    ],
-   "commit": "e619042f3c0383c7d4e1762fb46ff680e90906d6",
-   "sha256": "1igvmwxfpa19aws7h066hk9axwgl3swp8lmn218c1hmq2j2jkwgz"
+   "commit": "d781870e2f57e40110e07768289ab81d8554f122",
+   "sha256": "17d2v7q6sfafk8j1ish053xsmihi4f1hbk53fkkmhwan6sw9c4sc"
   }
  },
  {
@@ -80737,17 +83167,17 @@
  },
  {
   "ename": "punpun-theme",
-  "commit": "77a9edbb36dc9474adb23d356e6c596789aab2a2",
-  "sha256": "1l7nphh8v7w5w790cwmnp6nw5rciwhgzkvynkrvpiv9chhacx0xg",
-  "fetcher": "github",
-  "repo": "wasamasa/punpun-theme",
+  "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+  "sha256": "10mgyrxz2habhaqyg1g4c5kn13q425j0xpkkdlg10cdfvxfl9d1s",
+  "fetcher": "git",
+  "url": "https://depp.brause.cc/punpun-theme.git",
   "unstable": {
    "version": [
-    20190928,
-    1413
+    20200506,
+    1241
    ],
-   "commit": "2f78125609277b2478abdebd8f9d5ee10a823b65",
-   "sha256": "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"
+   "commit": "c1fa9f403b100aceac4c2dcb053111b2de701f16",
+   "sha256": "0y52kgqrnzrsybm2cwdrarjm1y92hambcr4a8nky28bkp5v73a86"
   }
  },
  {
@@ -80758,14 +83188,14 @@
   "repo": "voxpupuli/puppet-mode",
   "unstable": {
    "version": [
-    20200419,
-    1236
+    20200505,
+    344
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "0197b405c79a5d0718979f31df760bb3bfca38de",
-   "sha256": "0k1r0r1cvk6z3lj5shgd8ly78sfl8bbkmld6x5cvw481ynyb7rgy"
+   "commit": "0e2e32a3b1644edd8010bd3d44e83def683348b3",
+   "sha256": "082r71wn5klihv8npc8qsvsyw4jyib5mqpnqr029kv7cvlcyfghk"
   },
   "stable": {
    "version": [
@@ -80787,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"
   }
  },
  {
@@ -81081,11 +83511,11 @@
   "repo": "mattharrison/pycoverage.el",
   "unstable": {
    "version": [
-    20190607,
-    2004
+    20200513,
+    2047
    ],
-   "commit": "01bd47171eefcab2e19d7cffd9a2dd3bd9bd6812",
-   "sha256": "1c7rdx5a7za0yg9c58255p4spq3zlc5pdgayrgv1mm80f3nc0sdk"
+   "commit": "3c69ed312121368f1b24cc04d54a29ce4ed4f743",
+   "sha256": "0vcg8sq8pbzary19xxdariz3kws93qd2agzssl9znw38sayj71wz"
   }
  },
  {
@@ -81112,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",
@@ -81134,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": [
@@ -81177,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",
@@ -81219,8 +83619,8 @@
   "repo": "tumashu/pyim",
   "unstable": {
    "version": [
-    20200426,
-    505
+    20200510,
+    704
    ],
    "deps": [
     "async",
@@ -81228,8 +83628,8 @@
     "pyim-basedict",
     "xr"
    ],
-   "commit": "b934273bb33d6be6aea6e20e68930bc5aaf4a48a",
-   "sha256": "01ykgpzkv06gxiaqj4z1qwf00pwdfm0zxzbsy4xr8ciyhhxbc9pj"
+   "commit": "e54153f462dd8cd8e9bb379e0483a2849ec94f42",
+   "sha256": "0zsw25q1nqkqc3vgi95064v9wph1ynhiqi8gvc3fqq3k8i2jgy4v"
   },
   "stable": {
    "version": [
@@ -81351,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,
@@ -81372,11 +83772,11 @@
   "repo": "PyCQA/pylint",
   "unstable": {
    "version": [
-    20170402,
-    1255
+    20200503,
+    1624
    ],
-   "commit": "be5a61b13e48a129613e0c659bfd28bf9824f53c",
-   "sha256": "124pf14z2yc56bvn0vvg0irzl39q3bbng4zp75qjzgb7d387n4hb"
+   "commit": "52fd8e17c6aedbc68f58f1169363d6cc216f405b",
+   "sha256": "0nvgv67gq80hriaasck4zrr3v7qqrw6apxhnyixyavabdvvrawqz"
   }
  },
  {
@@ -81471,20 +83871,20 @@
   "repo": "poppyschmo/pytest-pdb-break",
   "unstable": {
    "version": [
-    20200316,
-    301
+    20200804,
+    848
    ],
-   "commit": "007427af712df9fa2c54869388d74e97f91b2bd7",
-   "sha256": "14l14605lgq498j37916p4gjwkqjb8z4ky85wlk3pgyx6bp20ckz"
+   "commit": "05d227493b7b96f3556cba22f215cb85f9282020",
+   "sha256": "0dsvi5scrhk6mypz8wggvy9zlnkbm2fmb5a24jprqh3bihg077xl"
   },
   "stable": {
    "version": [
     0,
     0,
-    8
+    10
    ],
-   "commit": "007427af712df9fa2c54869388d74e97f91b2bd7",
-   "sha256": "14l14605lgq498j37916p4gjwkqjb8z4ky85wlk3pgyx6bp20ckz"
+   "commit": "05d227493b7b96f3556cba22f215cb85f9282020",
+   "sha256": "0dsvi5scrhk6mypz8wggvy9zlnkbm2fmb5a24jprqh3bihg077xl"
   }
  },
  {
@@ -81617,11 +84017,11 @@
   "repo": "python-mode-devs/python-mode",
   "unstable": {
    "version": [
-    20200417,
-    648
+    20200608,
+    737
    ],
-   "commit": "9c336295c830f684dbf043fbbde432c54a2b4678",
-   "sha256": "0h02d02wv5hkz3lnjr9zxr8dwd4b1v2r6wf808g0x6xqnm01wspm"
+   "commit": "6658e5d768db0c0d8dbc6fdedff3a85b65327061",
+   "sha256": "1mf6bbx4brwzafxwrv37x14b286vlza9knswhcccvcb3aplvll6h"
   },
   "stable": {
    "version": [
@@ -81641,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"
   }
  },
  {
@@ -81741,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": [
@@ -81806,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",
@@ -81905,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,
@@ -81964,11 +84336,11 @@
   "repo": "quelpa/quelpa",
   "unstable": {
    "version": [
-    20200329,
-    719
+    20200617,
+    2205
    ],
-   "commit": "a3c4490a3bb08ee7819b330a93a284b2fd4cd70c",
-   "sha256": "1rm27y9zni9nscrvsmvi653nwkrlr4gd4cy5pyrynh3q32yhkqik"
+   "commit": "f1fc228f217be692eaae2d53f51966ce922d6a32",
+   "sha256": "03h30qcixq54q212381cf7mahi2k9q4590vm44pqy9widpigmxz7"
   }
  },
  {
@@ -81998,11 +84370,11 @@
   "repo": "renard/quick-buffer-switch",
   "unstable": {
    "version": [
-    20151007,
-    2208
+    20200727,
+    720
    ],
-   "commit": "d5fdd67b4c9f04b7a7122da2215e4ae076a03b1b",
-   "sha256": "0kh63nzdzwxksn2ar2i1ds7n96jga2dhhc9gg27p1g2ca66fs6h5"
+   "commit": "ceb5222599b861f9d1133b1509516fcf07a3cd67",
+   "sha256": "09dfw42d5834z8x1c1mri7g61r91i1crr3h6r118nmszhbx9b7iy"
   }
  },
  {
@@ -82077,20 +84449,20 @@
   "repo": "emacsorphanage/quickrun",
   "unstable": {
    "version": [
-    20200315,
-    1029
+    20200603,
+    1902
    ],
-   "commit": "50e07e769848b1e1780054fab2e221adc474777b",
-   "sha256": "15jj9w0z3yfxaikxi8qaxhr8ipi1jc85zckbri2gdbbdy928ypiq"
+   "commit": "ce7383c53215077f7e1d258d389cf8731309fbe9",
+   "sha256": "0dscg35hrywn8qr02q46y0cdclyscz6qxa0dqphkx3bv9xvzmqjl"
   },
   "stable": {
    "version": [
     2,
-    2,
-    8
+    3,
+    0
    ],
-   "commit": "70e93e06778f44113f405aedec6187b925311d57",
-   "sha256": "0swbgsidq11w7vyjhf06dn8vsj06j9scj8n2dm9m7fasj0yh3ghw"
+   "commit": "072ec7be93f31e9dd265fb834cd709d0c0d4a8bb",
+   "sha256": "1zx8hpm5wa9ad675py8676071pip6831d4jy2dqyrlxpfvi6q47l"
   }
  },
  {
@@ -82239,15 +84611,15 @@
   "repo": "greghendershott/racket-mode",
   "unstable": {
    "version": [
-    20200420,
-    1412
+    20200810,
+    1513
    ],
    "deps": [
     "faceup",
     "pos-tip"
    ],
-   "commit": "2827e95c5a2605cc25a549b260763922ecd68983",
-   "sha256": "0f6k9nlg8kz739pla0hkyp010cgdw9jd0qcii1d6dd1w3a84xk3v"
+   "commit": "c55fd70c5e9a371f262486f7d5d8837481388b95",
+   "sha256": "13ngnm22h5rzmm9pvgbw9nidv8jkkcsckbypi2mn1k8j8wfjypx0"
   }
  },
  {
@@ -82353,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",
@@ -82418,14 +84808,26 @@
   "repo": "Raku/raku-mode",
   "unstable": {
    "version": [
-    20200426,
-    1156
+    20200524,
+    1625
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "e4d8b0230a503f315087443e24708a78ad8665d9",
-   "sha256": "1864kwd5ixghsr219jlqmgg5gpv802q8xfsk8i8yi5dcy1jn1ckr"
+   "commit": "e0639c89a3a29e9196e298951da6c3a79fb944e8",
+   "sha256": "02zn1sm86srwdzdkhw53ll0h41a9hwh6c8lan72530zysjrm4x1i"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "deps": [
+    "pkg-info"
+   ],
+   "commit": "e0639c89a3a29e9196e298951da6c3a79fb944e8",
+   "sha256": "02zn1sm86srwdzdkhw53ll0h41a9hwh6c8lan72530zysjrm4x1i"
   }
  },
  {
@@ -82487,11 +84889,11 @@
   "repo": "ralesi/ranger.el",
   "unstable": {
    "version": [
-    20200218,
-    203
+    20200607,
+    2002
    ],
-   "commit": "ae9b3816a6da927cca5beb62c45400103797a2da",
-   "sha256": "07fiyw0gw51dxc7r92pj75lbxppg0gixjv9317qx9c3v1lcxaqiv"
+   "commit": "d7c18370981c9e585bc0fb78f7e55033457ca643",
+   "sha256": "0xfg38ginrd0sdn194gpapi67q6i81csddgsf0rqmwihazpgs060"
   },
   "stable": {
    "version": [
@@ -82612,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"
   }
  },
  {
@@ -82865,11 +85267,11 @@
   "repo": "ChillarAnand/real-auto-save",
   "unstable": {
    "version": [
-    20200418,
-    405
+    20200505,
+    1537
    ],
-   "commit": "d55c63106f6000c065f9c256fc4491ea07b2745e",
-   "sha256": "0b4drlzc384rp43m5454g86d866hx1lj4qdi3mlaz835nl8m86ki"
+   "commit": "481a2d1460ab5a9b6df3721dda76ad515923bfd1",
+   "sha256": "1f1sqbqc0ckp7850ahvy0syky7lplwhb05r3cw4fdmz2xbywwg52"
   },
   "stable": {
    "version": [
@@ -82882,22 +85284,22 @@
  },
  {
   "ename": "realgud",
-  "commit": "7a21be3673962d5706f12efa5179a5426bdce82b",
-  "sha256": "14n6d3jfhpa29nf4ywdg3aw4i51lfkr99b4z8q4833pmpz1jbq2c",
+  "commit": "fd34d2accd92d1473b743e2eee1309d329209cd0",
+  "sha256": "063bqpq05l29cvapp4xnvgbdx6l4p0ax83hhz4dv4cqbh1mi68b0",
   "fetcher": "github",
   "repo": "realgud/realgud",
   "unstable": {
    "version": [
-    20200418,
-    1721
+    20200809,
+    2221
    ],
    "deps": [
     "load-relative",
     "loc-changes",
     "test-simple"
    ],
-   "commit": "e03446f54c7ee0b4ed3ec7300597046cf1de2bb8",
-   "sha256": "160pv9jx66ygl3z1g8yrw7f786403lbb182nz972yl4nyjchbdw7"
+   "commit": "332d13673074bee252ae7819b0898ee7c7895d2e",
+   "sha256": "0cnnhxgyrjvr75pin7kis5qzd54hh0qscbnvvm8jflmljzca77lz"
   },
   "stable": {
    "version": [
@@ -82942,15 +85344,15 @@
   "repo": "realgud/realgud-ipdb",
   "unstable": {
    "version": [
-    20191115,
+    20200722,
     1116
    ],
    "deps": [
     "load-relative",
     "realgud"
    ],
-   "commit": "347090928d7866a9909208c5bbe2cb8fa7b55cd7",
-   "sha256": "1m7v8qsqm8b8liyfdfqpcsjnlcbs0lpl6m91ff3449a94l1g99k7"
+   "commit": "f18f907aa4ddd3e59dc19ca296d4ee2dc5e436b0",
+   "sha256": "196zy8xmqkm6nc7074gsy4ymm6h4ikbd01f41karys7dwib3gg5i"
   }
  },
  {
@@ -82961,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"
   }
  },
  {
@@ -83072,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"
   }
  },
  {
@@ -83112,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": [
@@ -83449,8 +85851,8 @@
     "cl-lib",
     "json"
    ],
-   "commit": "770ffb34b04bfa0ea8484fa1506e96c530168e13",
-   "sha256": "0cqln3d8yp9fdam984bwnngjl0hjnwi7yhcggdkjwribhr79cxhl"
+   "commit": "0062f326106ce8be3c9b7d3fa0e88ed2c7bbfa5e",
+   "sha256": "1y35p2q3xrvn37kligfmkjagkz4b7pl61y2c2g504kjs45v4mqd2"
   },
   "stable": {
    "version": [
@@ -83554,8 +85956,8 @@
   "repo": "Wilfred/refine",
   "unstable": {
    "version": [
-    20180315,
-    2228
+    20200507,
+    731
    ],
    "deps": [
     "dash",
@@ -83563,8 +85965,8 @@
     "loop",
     "s"
    ],
-   "commit": "0a99439a0b4ed6f79b9a240ea1270140a9e328bc",
-   "sha256": "1scw449mbmr70kb0r2ymhph9j0s5ym77ijp5fpwph9bri46cad3g"
+   "commit": "d72fa50910b86217a35bb1b7e56adea206052021",
+   "sha256": "02cb30ycwyqhdw54s3abb4xsdyqlpi6i8xi7rkl85avvgy2gif8y"
   },
   "stable": {
    "version": [
@@ -83589,11 +85991,11 @@
   "repo": "purcell/reformatter.el",
   "unstable": {
    "version": [
-    20200426,
-    818
+    20200814,
+    435
    ],
-   "commit": "dc6278a6b1e3565604346ac41a6ffc3cbab04031",
-   "sha256": "147qrqs3ndc4xfbb9wiymjsskccp54qpj8bn3i19n9zwm4kmgdzr"
+   "commit": "45c0add95025f53ca644a6c8b9afa05b2da3c474",
+   "sha256": "1dfn7c3gpavpiwd73v2pasd8wd8b62dczhg9iv1cgh8vaqlsf92x"
   },
   "stable": {
    "version": [
@@ -83681,11 +86083,11 @@
   "repo": "alvarogonzalezsotillo/region-occurrences-highlighter",
   "unstable": {
    "version": [
-    20190905,
-    730
+    20200815,
+    1555
    ],
-   "commit": "ee86d6a79342c6e4b3cfad5ec73cb0a40e18ae3d",
-   "sha256": "06y1hbqgdw2y0isn26wmwrqjxb1ypwrqhcjg4n69mdn74cwlk4jz"
+   "commit": "07e2201db7a88b246a63e868e711749e1465d3d6",
+   "sha256": "0y9746pqinp0nir2afm181drs2qa63jpb834s3s7pzd2mvjrw0rc"
   }
  },
  {
@@ -83734,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": [
@@ -83764,8 +86166,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "41c99057d0406c7fb3895a03da777af3961a648d",
-   "sha256": "1dw6f60ysyvxgm5gpir37ay8z9csykxj0r7v9h6z38cswicg27sj"
+   "commit": "439a4d5e130e67e9e8c34e813fa1dc6631e7a8d5",
+   "sha256": "0lzlhmz0c4jv65phksh6aya93rlh8rqcffbvz1llcyj8i2gr7hqj"
   }
  },
  {
@@ -83787,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",
@@ -83891,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"
   }
  },
  {
@@ -83956,8 +86308,8 @@
    "deps": [
     "fullframe"
    ],
-   "commit": "a36caac7649fbffbe30f7b06541c9efd723563fc",
-   "sha256": "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"
+   "commit": "f066782c10226d31ea8c1cc386cfa7fa3a4e3aa7",
+   "sha256": "14kap395xd3d5n7ini5cyif2ygz0db8bv0py5ipwlac2zcwgmfwl"
   },
   "stable": {
    "version": [
@@ -84126,11 +86478,11 @@
   "repo": "tkf/emacs-request",
   "unstable": {
    "version": [
-    20200219,
-    2257
+    20200517,
+    1305
    ],
-   "commit": "216d570a58d05ef1307edb63d2539bafa5f688c6",
-   "sha256": "11malas5n5g4yxydx8pz8aahr5rkjq256cg5avhd64fvfryz9wj2"
+   "commit": "d02d1347ffdf138cffd380cbeac62ac8732036ef",
+   "sha256": "1rkpakzish2d470ca15yq3k0m1j7a2lrkvvddcyvc2rx0sncsdjs"
   },
   "stable": {
    "version": [
@@ -84157,8 +86509,8 @@
     "deferred",
     "request"
    ],
-   "commit": "216d570a58d05ef1307edb63d2539bafa5f688c6",
-   "sha256": "11malas5n5g4yxydx8pz8aahr5rkjq256cg5avhd64fvfryz9wj2"
+   "commit": "d02d1347ffdf138cffd380cbeac62ac8732036ef",
+   "sha256": "1rkpakzish2d470ca15yq3k0m1j7a2lrkvvddcyvc2rx0sncsdjs"
   },
   "stable": {
    "version": [
@@ -84286,11 +86638,11 @@
   "repo": "pashky/restclient.el",
   "unstable": {
    "version": [
-    20191009,
-    1208
+    20200502,
+    831
    ],
-   "commit": "e8ca809ace13549a1ddffb4e4aaa5d5fce750f3d",
-   "sha256": "1wdi3c9wczn6vhr5l9mrbhsnw0hj1zfxh3sz53q8v1k684q5jyjk"
+   "commit": "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3",
+   "sha256": "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"
   }
  },
  {
@@ -84308,8 +86660,8 @@
     "helm",
     "restclient"
    ],
-   "commit": "e8ca809ace13549a1ddffb4e4aaa5d5fce750f3d",
-   "sha256": "1wdi3c9wczn6vhr5l9mrbhsnw0hj1zfxh3sz53q8v1k684q5jyjk"
+   "commit": "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3",
+   "sha256": "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"
   }
  },
  {
@@ -84342,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",
@@ -84349,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"
   }
  },
  {
@@ -84403,11 +86772,11 @@
   "repo": "a13/reverse-im.el",
   "unstable": {
    "version": [
-    20200324,
-    1113
+    20200520,
+    853
    ],
-   "commit": "a2a75a929fc022e752759ed2a38accc639128dbe",
-   "sha256": "0s6jmxq9sqi6pm2kdrdik30nyz136kk2gqzdibb0wcvpfylhwawn"
+   "commit": "90add9a1f8c4a3c78029d38087ff4d22fe5372d3",
+   "sha256": "05k2zp2hldzq5h6nl8gx79dd8lvfn507ad4x3naichdqgn2013nn"
   }
  },
  {
@@ -84441,11 +86810,11 @@
   "repo": "kmuto/review-el",
   "unstable": {
    "version": [
-    20200131,
-    122
+    20200710,
+    155
    ],
-   "commit": "09e2df58398b392f19642a12c8cb78eae726dbd2",
-   "sha256": "13cy7wy2jv1cjncfnayp28w1ka4s0jim2sarcw0dn2iiniqlkbwf"
+   "commit": "343e7155f8238a7a53ef1f753319b8e2f9e8e8b9",
+   "sha256": "13wgrj5qbg2pv6d9yxkbsrrllvd40m4p7911g23wcwnnx211p943"
   }
  },
  {
@@ -84471,26 +86840,26 @@
   "repo": "galdor/rfc-mode",
   "unstable": {
    "version": [
-    20200215,
-    1357
+    20200719,
+    1241
    ],
    "deps": [
     "helm"
    ],
-   "commit": "55d28321b480a095d29e5c6cd03c8dea9ad55553",
-   "sha256": "0f9h8vmfn8xi0c3qwigzbbvsck4wwxbflxl06m7ky2h5jnj6n0g3"
+   "commit": "02546beecf4c495940885e7b7b911d84b12646ef",
+   "sha256": "1v52vbs2zbqv62wcgcrqgjcwcdq0w6hdb14nma4yhqldnqi57875"
   },
   "stable": {
    "version": [
     1,
-    2,
+    3,
     0
    ],
    "deps": [
     "helm"
    ],
-   "commit": "55d28321b480a095d29e5c6cd03c8dea9ad55553",
-   "sha256": "0f9h8vmfn8xi0c3qwigzbbvsck4wwxbflxl06m7ky2h5jnj6n0g3"
+   "commit": "02546beecf4c495940885e7b7b911d84b12646ef",
+   "sha256": "1v52vbs2zbqv62wcgcrqgjcwcdq0w6hdb14nma4yhqldnqi57875"
   }
  },
  {
@@ -84501,16 +86870,16 @@
   "repo": "dajva/rg.el",
   "unstable": {
    "version": [
-    20200307,
-    1623
+    20200703,
+    1250
    ],
    "deps": [
     "s",
     "transient",
     "wgrep"
    ],
-   "commit": "e19c06f4c556bda6457da3d50c14b12cb97679d9",
-   "sha256": "0k9rz6as3867b23979lrmb0sn26rbl08n6n71pxqxr8s85nljlml"
+   "commit": "853c1acaf999500d867180b9e71938366c8e1a7c",
+   "sha256": "0lp32mjmbzjbsvzia2zd29yv0i75mqvp1w7c0jcwvyyl6gqbg3k1"
   },
   "stable": {
    "version": [
@@ -84660,8 +87029,8 @@
   "repo": "DogLooksGood/emacs-rime",
   "unstable": {
    "version": [
-    20200415,
-    1454
+    20200816,
+    827
    ],
    "deps": [
     "cl-lib",
@@ -84669,8 +87038,23 @@
     "popup",
     "posframe"
    ],
-   "commit": "9afeb4aa45771ef20c83d1208744d954273cbaf3",
-   "sha256": "00lnsxi2j1kvd28vq10ixj16qfkn22bw2m02zrs022d9jwcsza5r"
+   "commit": "aab21695f1dee0db3ddf0f0c834b94aecec7057c",
+   "sha256": "0rzghfnrdyrqijw76f4vvsn3hsninwp3qyvr1p7r0ddz21xz04np"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    3
+   ],
+   "deps": [
+    "cl-lib",
+    "dash",
+    "popup",
+    "posframe"
+   ],
+   "commit": "2a0b116d56bf54456eb5d6e8e80a7a6cf6944863",
+   "sha256": "08rzkiqwcl8j3i2yyibll5lcsj8720plzm9zfdgmxgkw7vhcyix5"
   }
  },
  {
@@ -84785,14 +87169,14 @@
   "repo": "thornjad/rivet-mode",
   "unstable": {
    "version": [
-    20191230,
-    1842
+    20200514,
+    1617
    ],
    "deps": [
     "web-mode"
    ],
-   "commit": "ac15de8c76978638e129c26869123c75d5b1f8c7",
-   "sha256": "19pv8qpcm0cllbbckzpjxrbkdavirq6b8p8jm274klkf4b7k32f8"
+   "commit": "9f2e6c4f777dbe306b715ab42663a6fc82a7e431",
+   "sha256": "09rsyq28caz4mrwm32i1f8wdzz35grigp7dilzxxqg0y4fpsf81f"
   },
   "stable": {
    "version": [
@@ -84827,14 +87211,14 @@
   "stable": {
    "version": [
     0,
-    4,
+    5,
     0
    ],
    "deps": [
     "js2-mode"
    ],
-   "commit": "f7d31589acd8a2dfcf4ca8851d2384e4f90364d0",
-   "sha256": "057pgylflzd69ydqz41g8wisvixypdrfn8yv81mfixh3iyq740y8"
+   "commit": "0061587a06cdc2579a8d0e90863498d96bf982d8",
+   "sha256": "08b4hdgq4hc1yfd9pvyir2j3cqqdqa3j5svgaba97x5fzhsz7y8i"
   }
  },
  {
@@ -84860,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"
   }
  },
  {
@@ -85028,14 +87412,14 @@
   "repo": "zk-phi/rpn-calc",
   "unstable": {
    "version": [
-    20181121,
-    1154
+    20200816,
+    545
    ],
    "deps": [
     "popup"
    ],
-   "commit": "27279f89c80eb3f28ff9f981eff06502056943e2",
-   "sha256": "0klzhscdvzwpcrfkq2v28in5fv01zqabgxdrziyhj666sly1scjq"
+   "commit": "1554be19acc2644898a2175fa277d1159327c8dc",
+   "sha256": "1b4v9x8f9ykz2dqiv7p7c2f6kbl374i2723idmnvm2c9bc0hbpyv"
   }
  },
  {
@@ -85069,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": [
@@ -85100,11 +87484,11 @@
   "repo": "Andersbakken/rtags",
   "unstable": {
    "version": [
-    20200221,
-    36
+    20200810,
+    2326
    ],
-   "commit": "a42298e80dffae9a6b2e9816506174542f3cbbb7",
-   "sha256": "1674752bbyb7890na5p846dxcvh83zn0a6z19wras1x5c59s24i3"
+   "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+   "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
   },
   "stable": {
    "version": [
@@ -85129,8 +87513,8 @@
    "deps": [
     "rtags"
    ],
-   "commit": "a42298e80dffae9a6b2e9816506174542f3cbbb7",
-   "sha256": "1674752bbyb7890na5p846dxcvh83zn0a6z19wras1x5c59s24i3"
+   "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+   "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
   },
   "stable": {
    "version": [
@@ -85224,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"
   }
  },
  {
@@ -85420,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": [
@@ -85586,11 +87970,11 @@
   "repo": "vmalloc/rust-auto-use.el",
   "unstable": {
    "version": [
-    20181125,
-    637
+    20200608,
+    1359
    ],
-   "commit": "d924505ecd954625dcb2d56dfba97111dc6a17fa",
-   "sha256": "1yw9l13dgkfsdv4kgpbvzx12g8bqycclgq2gk4b1r29mxy72wnpq"
+   "commit": "d5205f7b9b9eae0f7d0893f87d3391464719f9c0",
+   "sha256": "01jhb4bjb4dc4m4nw6n16dc4cc7x9z7j2vri0s1y16v1bm4cv26g"
   }
  },
  {
@@ -85601,20 +87985,20 @@
   "repo": "rust-lang/rust-mode",
   "unstable": {
    "version": [
-    20200414,
-    2105
+    20200709,
+    723
    ],
-   "commit": "a364b24af412659cc1074f533752356d1858b893",
-   "sha256": "1yj3b5li2flgxc3frmb7zjc92nhdq526jj6105zrsnj7ndxqycp4"
+   "commit": "ca7d99c6fd90fc1e636aa9d4020a2f077786a0c3",
+   "sha256": "1m24g08q7w76aq0gnb2pdp0jbadi19fw4jmbgmx47180glz082qh"
   },
   "stable": {
    "version": [
     0,
-    4,
+    5,
     0
    ],
-   "commit": "106aeab800fb3404baf231845d3e3549ec235afa",
-   "sha256": "0bcrklyicxh032rrp585rl5mxd26nb61dp6r5bl935rlcmxzsczh"
+   "commit": "00177f542976601d7f114fed82caaa3daad7b177",
+   "sha256": "1f3nnl0d7p9b5cv1bpm0hj898qmr2psxfvmqr61bh684z7fgc045"
   }
  },
  {
@@ -85648,8 +88032,8 @@
   "repo": "brotzeit/rustic",
   "unstable": {
    "version": [
-    20200304,
-    2028
+    20200724,
+    1517
    ],
    "deps": [
     "dash",
@@ -85663,8 +88047,8 @@
     "spinner",
     "xterm-color"
    ],
-   "commit": "61032eacf0b3b7579f627ce78bca2eddbfa31a10",
-   "sha256": "0mxrmgdhgjlixff1fm7fyn87yn3cakhyjk8vdhdr37k0qh339k0c"
+   "commit": "75b99201bb4e7a0bd990c006896ad7897f284ca2",
+   "sha256": "1ddma5fi2yaxg2c2hvigfz4hbp218l71ixcnnkzp8ilqr8m2jvjj"
   }
  },
  {
@@ -85678,8 +88062,8 @@
     20150402,
     1442
    ],
-   "commit": "134497bc460990c71ab8fa75431156e62c17da2d",
-   "sha256": "1z5psj8mfp0fw8fx6v1sibf8cxhz30yyiwjw17w80f9c24g0j4ii"
+   "commit": "081d5173158054c6d0780b9462c74c5697eac1fc",
+   "sha256": "1s950jmhrwjmzrr3qv3636sn2rhxfvaqlrl36h8700pq3791l1fs"
   },
   "stable": {
    "version": [
@@ -85699,11 +88083,11 @@
   "repo": "Kungsgeten/ryo-modal",
   "unstable": {
    "version": [
-    20191017,
-    1323
+    20200515,
+    1703
    ],
-   "commit": "3a54312eea7023a86ca3f8eb3c03c872554bff2f",
-   "sha256": "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"
+   "commit": "5d988e8b3a5d3d6f2f58d97031d2f500ef55473b",
+   "sha256": "0p7f02h5vsf4500gf4nl95myvh7pha47rdllscgs3b9jcx1kgyz2"
   }
  },
  {
@@ -85772,15 +88156,15 @@
   "repo": "mattusifer/s3ed",
   "unstable": {
    "version": [
-    20180204,
-    1349
+    20200720,
+    1313
    ],
    "deps": [
     "dash",
-    "seq"
+    "s"
    ],
-   "commit": "13503cb057bed29cb00a14dffe4472b5cb7748ad",
-   "sha256": "1ak5nmay12s4ipmvm1a36kyny05xhzmj7wp6dry391db9n7g2wy0"
+   "commit": "3e3b962d3848e6cc8ce9dc491b2e29e915a5c351",
+   "sha256": "0v8c3zwnfy40clbq6lb03z33n5pj36sz5jpprmgppms3w2ba6fw8"
   }
  },
  {
@@ -85815,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": [
@@ -85960,11 +88344,11 @@
   "repo": "djcb/sauron",
   "unstable": {
    "version": [
-    20181216,
-    1200
+    20200516,
+    1406
    ],
-   "commit": "e20eb21c93492a7c9e89579409ae5a07f77aa9fd",
-   "sha256": "0sm69gr05y44zxmdzyydbyf5yw4lhxszq3zgz4mflcnb544kkrj3"
+   "commit": "d2e06866d1045fa16015d135b8964d9caacc2985",
+   "sha256": "04z3hn46m6xy3jpfd00c7x24h27dgv5zcysci3lxzmmq9k4iqsg3"
   },
   "stable": {
    "version": [
@@ -86021,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",
@@ -86057,8 +88459,8 @@
    "deps": [
     "cider"
    ],
-   "commit": "277404a6bb0a979e195df5886fc143bb1d1f1e8c",
-   "sha256": "0whsfl6z39zhjm6b3wcliwfs70xz3pg9b1r6s2bcwnp5ld1v65m9"
+   "commit": "cbc3546fb6b1374080f1646ac3a6532a5723b7eb",
+   "sha256": "06aysbwr4lr9cd8mbfdpkiz8458hwl5qg41nq1wnl5dx0gvw3fgn"
   },
   "stable": {
    "version": [
@@ -86081,11 +88483,11 @@
   "repo": "hvesalai/emacs-sbt-mode",
   "unstable": {
    "version": [
-    20200106,
-    753
+    20200521,
+    632
    ],
-   "commit": "633a315ad453cd963588c9b8fba02d9cf75296b4",
-   "sha256": "0ha2lyw42ir16b2d09y27q0rsdx6azcfv258frp1ja63mx0jiqic"
+   "commit": "4358ed862a1b1ec18ac9699afb4862146669eb79",
+   "sha256": "1qm5ziilapfpafqch3pl5iijfj1kwccl2r7g4xl5a2pqnc480sjl"
   },
   "stable": {
    "version": [
@@ -86105,11 +88507,11 @@
   "repo": "openscad/openscad",
   "unstable": {
    "version": [
-    20190413,
-    1246
+    20200628,
+    2256
    ],
-   "commit": "f13d03efece7c1f31e9c3fe2e99b71a33cc43e1c",
-   "sha256": "04b63yww5yz4jn18mzpv53yzs6g6kmxs61m2ycnf59cb6ax2ajbd"
+   "commit": "0c9a36b82c7129a0fdce20ce99e15ecdffd3b437",
+   "sha256": "0qsvi7d3bcsai99dvbdfm8n6qafvwj51r4g4ph5jch2f1yb8m995"
   }
  },
  {
@@ -86120,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"
   }
  },
  {
@@ -86138,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"
   }
  },
  {
@@ -86235,11 +88637,11 @@
   "repo": "emacs-pe/scihub.el",
   "unstable": {
    "version": [
-    20190801,
+    20200604,
     920
    ],
-   "commit": "a32e8f47961d606c1315a972f2dab4d3a61945af",
-   "sha256": "06qcs7jq68ylmvw0kf1myhpgzci7i9qbb2h0hxh0g21mz8ssna3f"
+   "commit": "5a4666ca99de6a90108b4606b4c57270c03002ce",
+   "sha256": "1njvf7712ryfd83xk27b6d2nx653j57x3ckn7xba7an4i0g7gk4a"
   }
  },
  {
@@ -86303,14 +88705,14 @@
   "repo": "technomancy/scpaste",
   "unstable": {
    "version": [
-    20200415,
-    40
+    20200717,
+    2007
    ],
    "deps": [
     "htmlize"
    ],
-   "commit": "ca95a8dd088e848bd1cab6be207c6a98343ee176",
-   "sha256": "01v199xkadcbdr627skhisixdqj0hbbyv912xgyypm1rxdjfhhx9"
+   "commit": "2aa1513fa0a402f03b993c0a6929daf39820b02b",
+   "sha256": "1cvkqb5v0v790nmhg4wi6kv6mbzfkfcgvn2xh9bmny37dcv0i2gk"
   },
   "stable": {
    "version": [
@@ -86349,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",
@@ -86401,14 +88827,14 @@
   "repo": "zk-phi/scratch-palette",
   "unstable": {
    "version": [
-    20150225,
-    842
+    20200816,
+    551
    ],
    "deps": [
     "popwin"
    ],
-   "commit": "f6803b448079f4a81cc699cec7442ef543cd5818",
-   "sha256": "00b4r8bqlxc29k18vig0164d5c9fp5bp5q26d28lwr4f0s4a71d2"
+   "commit": "c39cacb11992383887fa096ace85510baed94aef",
+   "sha256": "1va9c97cvdqf6404kixvgk0qwrlnc1lrz6khpkdp2w7w1brhf2f7"
   }
  },
  {
@@ -86419,14 +88845,14 @@
   "repo": "zk-phi/scratch-pop",
   "unstable": {
    "version": [
-    20170510,
-    1458
+    20200818,
+    1820
    ],
    "deps": [
     "popwin"
    ],
-   "commit": "7f4172c792b10bd38898dd8963cf0ade91921869",
-   "sha256": "0mwjq7z0cpaqhqygzhfcpfqyx8376jsc1g2874np6ff49389bj4d"
+   "commit": "b1bdd0f8a345737069194ab8727f164f5d8560b4",
+   "sha256": "03x0kb0cf4yzjxl9nqwl3sg9nl75l9n8k4ain0yw0h2vpi2g0wf3"
   }
  },
  {
@@ -86621,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",
@@ -86787,11 +89198,11 @@
   "repo": "Kungsgeten/selected.el",
   "unstable": {
    "version": [
-    20170222,
-    834
+    20200528,
+    606
    ],
-   "commit": "03edaeac90bc6000d263f03be3d889b4685e1bf7",
-   "sha256": "1d72vw1dcxnyir7vymr3cfxal5dndm1pmm192aa9bcyrcg7aq39g"
+   "commit": "3043fd2609f7e71d809763ae6e8dd4b6c904e63d",
+   "sha256": "11cr55g7rrr4gqb9r2znmff0bp112l7a96d26mznfdprzj7pdzvd"
   }
  },
  {
@@ -86826,19 +89237,19 @@
   "repo": "raxod502/selectrum",
   "unstable": {
    "version": [
-    20200425,
-    1449
+    20200817,
+    1459
    ],
-   "commit": "dc1c8e8704f5eb73c540f2b4ca3eed213d2c3246",
-   "sha256": "0acifs68m6y5zfwadvvvlg7s4zhgazmrg6al7piy1nycq7dmng6b"
+   "commit": "5448e7cbaeb8d58c5dfd474cd0e03d6db60ac532",
+   "sha256": "09xfi0gfk9jmjmz941cfzwrv15jlzqxzwlq4m0qb29g1r4kv62ng"
   },
   "stable": {
    "version": [
-    1,
+    2,
     0
    ],
-   "commit": "5995a4ba07a7b1b5f661ff050d93ad702f9014a4",
-   "sha256": "105zl102dwbzvk50xh6b824nq6p24kxhky18ghdnk5yi5sv620lm"
+   "commit": "51b75f4b287b13beff86810eb3a060747ac191e9",
+   "sha256": "08wm4ybidn8g7sy5a009lnsm0f1p7a3jfzpzxnzylvnyrmyhi3y4"
   }
  },
  {
@@ -86849,27 +89260,27 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20200404,
-    1550
+    20200716,
+    1414
    ],
    "deps": [
     "prescient",
     "selectrum"
    ],
-   "commit": "0f4a89bdec61395138d968a38d375e63ccfbed63",
-   "sha256": "0nnf4y49pl9lcs90y5z6f02g1xwk1jjrl0qs7gcv6kpn0vn8kn0h"
+   "commit": "cc289ba3b0d89f251267ca2b669d01b3afecc530",
+   "sha256": "0xwy2xh55dm4y7wlz2g6fkwf1xyqqjyp0sjb522qgasivknzwa5p"
   },
   "stable": {
    "version": [
-    4,
-    1
+    5,
+    0
    ],
    "deps": [
     "prescient",
     "selectrum"
    ],
-   "commit": "aa3110281a0622fa7b5da115cefb71a319b5b1a0",
-   "sha256": "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3"
+   "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
+   "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
   }
  },
  {
@@ -86914,14 +89325,14 @@
   "repo": "wanderlust/semi",
   "unstable": {
    "version": [
-    20200413,
-    839
+    20200818,
+    1252
    ],
    "deps": [
     "flim"
    ],
-   "commit": "1d6e21e9ee42c2c5bf1a4422d2fe7af20aa7ff1e",
-   "sha256": "0pkqh95i6pj7iwghapa8hld78h1q5n50f1lah2l1k2hz4lm6r8zz"
+   "commit": "10897f024fd9282c73385d24514cc4b57fe193db",
+   "sha256": "14d4j17l0ngg6fp00mf2zgyz6989cx9n5n3za7ifcfr8gjbbn7gp"
   }
  },
  {
@@ -86932,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"
   }
  },
  {
@@ -87032,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"
   }
  },
  {
@@ -87315,41 +89727,41 @@
   "repo": "sfztools/emacs-sfz-mode",
   "unstable": {
    "version": [
-    20200312,
-    1153
+    20200716,
+    1023
    ],
-   "commit": "4d8ccde889b112896c7299cad9f1e9305bde8cb3",
-   "sha256": "1ccqb05xmnxpwxl9vdvkb3f8211kbj5rsb73xv1ghyx3i40qjmzm"
+   "commit": "aaf31d1b68817251affed7da719dfcb2acd4b51a",
+   "sha256": "1b9qi5vhqp2c2bmkyvmjj4nrb3n42g4w71p2phxssiwmyq80m28f"
   }
  },
  {
   "ename": "shackle",
-  "commit": "806e7d00f763f3fc4e3b8ebd483070ac6c5d0f21",
-  "sha256": "159z0cwg7afrmym0xk902d8z093sqv39jig25ds7z4a224yrv5w6",
-  "fetcher": "github",
-  "repo": "wasamasa/shackle",
+  "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+  "sha256": "0fjkp5vawxc1q1pmvzchiqwxq8rdaq463sa5ks0r7x7cxwnp8zx6",
+  "fetcher": "git",
+  "url": "https://depp.brause.cc/shackle.git",
   "unstable": {
    "version": [
-    20191020,
-    1249
+    20200529,
+    1839
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "7ccbe513852a1d1700b698547efca14b8940319d",
-   "sha256": "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"
+   "commit": "171c3f437d853f34782b201d86ef765665b755e2",
+   "sha256": "0s4br59zpd5qq7z9074ddq9lmwnddq2ixijwi666wp5gxw45fpgg"
   },
   "stable": {
    "version": [
     1,
     0,
-    3
+    4
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "242bacc940c18b6f9c156e1912155d45537fd827",
-   "sha256": "0qqx8py21jaq1bdafkfqx18ns4zn305qg84zbmy65spiqnfq8hwk"
+   "commit": "171c3f437d853f34782b201d86ef765665b755e2",
+   "sha256": "0s4br59zpd5qq7z9074ddq9lmwnddq2ixijwi666wp5gxw45fpgg"
   }
  },
  {
@@ -87393,8 +89805,8 @@
     20190903,
     1907
    ],
-   "commit": "f3cbe25c82f99367ac009d67a2400eb6d56547ff",
-   "sha256": "10y7qcb61f0x17fy5h2flhvyyql99cshqmfy1varn1mgg2h36mn9"
+   "commit": "5f24c90bb8e7333ee4315619672dc2ec69d198be",
+   "sha256": "0msrhh41nyvyy17skd5y5lzdz7a6lxnlqnflgz4xf2qpnc390kd6"
   }
  },
  {
@@ -87628,15 +90040,15 @@
   "repo": "mhayashi1120/Emacs-shelldoc",
   "unstable": {
    "version": [
-    20151115,
-    325
+    20200513,
+    1206
    ],
    "deps": [
     "cl-lib",
     "s"
    ],
-   "commit": "5df2264eb60e45066f3633df4f34834751667346",
-   "sha256": "1mc7y79h5p9cxqwsl40b1j5la5bm8b70n6fn4rx9wr4bi7rwph5i"
+   "commit": "fa69f67b6229fad3f31d936955ca8d1982009b77",
+   "sha256": "0ma5j74vkwax9ha945dcgbmf3r4gajj4nvl63pbfyvxvy6svn84r"
   },
   "stable": {
    "version": [
@@ -87712,8 +90124,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "342c55fab27f1e62472eebbb53cfc73b0d422a34",
-   "sha256": "0hmxa856hlai9ydarfsn5s9i8cnfrydgpa7mkh4a36klhdj21gfh"
+   "commit": "465dc1fcaeed778b504d3d349a30e611368dcc00",
+   "sha256": "1gzky5xs63y7xl7j2hs81aja8qq6c5l3vk07hh050flw4yfxyi23"
   },
   "stable": {
    "version": [
@@ -87777,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,
@@ -87853,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"
   }
  },
  {
@@ -87924,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": [
@@ -87945,6 +90357,35 @@
   }
  },
  {
+  "ename": "shrface",
+  "commit": "6a8dfd3ebe0cf52e1c02d2487891876963a4fda2",
+  "sha256": "00v6ll2jiadmmfq59w6nk7lkq9ka3kcqf6mw1r8wiw84qb2sz56c",
+  "fetcher": "github",
+  "repo": "chenyanming/shrface",
+  "unstable": {
+   "version": [
+    20200816,
+    1032
+   ],
+   "deps": [
+    "org"
+   ],
+   "commit": "9470de04daf0d917d0501432cea78cd6f5cefec4",
+   "sha256": "00qi4dg0684all2aw9dljzd3hp01vk3hsfqpf2pvri8l31a9dls5"
+  },
+  "stable": {
+   "version": [
+    2,
+    6
+   ],
+   "deps": [
+    "org"
+   ],
+   "commit": "c82447df5b7fb87fa17e53919dc2da81c7dddec6",
+   "sha256": "1nncamyrn5c88lq973w1a28qg15gsdad51ifl1mhqprzkpw7jsjq"
+  }
+ },
+ {
   "ename": "shrink-path",
   "commit": "86b0d105e8a57d5f0bcde779441dc80b85e170ea",
   "sha256": "0fq13c6g7qbq6f2ry9dzdyg1f6p41wimkjcdaj177rnilz77alzb",
@@ -88080,8 +90521,8 @@
     20200410,
     639
    ],
-   "commit": "e5b4bae0a1a9bb8a762da40397a04efdd0b2b397",
-   "sha256": "0p9b621rgy34r1hl9xfzxh4xpx9gpsr3n330ypfxhlr0s5754j73"
+   "commit": "5308d6891276b0aa2b0fd865f6c6f8c1a80ecb54",
+   "sha256": "01sz7iqny2r1zfipkria6r5w48rlbrp3ranqqyywvsxhwwr3apmp"
   },
   "stable": {
    "version": [
@@ -88116,11 +90557,11 @@
   "repo": "webframp/sicp-info",
   "unstable": {
    "version": [
-    20200421,
-    242
+    20200512,
+    1137
    ],
-   "commit": "3efcd37eb7888845c5f3292beeb18219f9993e92",
-   "sha256": "1qlgg7r9v62mcw07svdkzrf5ccm6n9vg64h4p704rfzkxys1cwfs"
+   "commit": "4002d83083d520c6b5ede2df36cc2cee885d450a",
+   "sha256": "0c9lknrhwhi4v3qnnzmy0k24d8pr3d3mpxi9xzcxq97f5w1x4fsk"
   }
  },
  {
@@ -88131,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"
   }
  },
  {
@@ -88312,11 +90753,11 @@
   "repo": "gexplorer/simple-modeline",
   "unstable": {
    "version": [
-    20200419,
-    900
+    20200427,
+    717
    ],
-   "commit": "e7e39660dadcef88e7e877ad1f24625873e90e51",
-   "sha256": "0s8979jd3x6yarq4ifn5wgn08s8z2kblzaagh4zywkhaj1i7mb4m"
+   "commit": "08197f4c37aa28c8305f0b0316619421e42a8b75",
+   "sha256": "1wqqaknii7nkvm8nfjr2wzwjwr4w60a2x044y1kgk6zfkfb106lh"
   },
   "stable": {
    "version": [
@@ -88335,14 +90776,14 @@
   "repo": "jorenvo/simple-mpc",
   "unstable": {
    "version": [
-    20180716,
-    129
+    20200523,
+    1804
    ],
    "deps": [
     "s"
    ],
-   "commit": "bee8520e81292b4c7353e45b193f9a13b482f5b2",
-   "sha256": "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"
+   "commit": "ce731fa390b7e4edfc461a9cfb4443c1aab4b011",
+   "sha256": "14fb52r5fzdcqqbh5kkajaz43iqq8g64g0rsswwwv6g1j23y93k3"
   }
  },
  {
@@ -88497,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",
@@ -88665,8 +91124,8 @@
   "repo": "yuya373/emacs-slack",
   "unstable": {
    "version": [
-    20200402,
-    1656
+    20200725,
+    1052
    ],
    "deps": [
     "alert",
@@ -88676,8 +91135,8 @@
     "request",
     "websocket"
    ],
-   "commit": "d53a57a18fb7034182c3d02503f937761e6a2a64",
-   "sha256": "1xcfgyw9cky6msai2ap9fgcdasvmvn3k73rjmvnwcj4axh6vjvyx"
+   "commit": "7570e82604b59b65e9ef31c5325bef45769ae027",
+   "sha256": "1i7fb4icj9h4lkcsfqqqhsi59msmslckcgxaa5aag4v3cdy93prg"
   }
  },
  {
@@ -88738,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"
   }
  },
  {
@@ -88833,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"
   }
  },
  {
@@ -88957,17 +91416,17 @@
  },
  {
   "ename": "sly",
-  "commit": "974d8812a4c5e45221ce3c32ae72c15ed29665c3",
-  "sha256": "000g5qpy45zqrh3g4mk70mh2lakadfq18djrq7cabagw1qmhqy41",
+  "commit": "4a916e44049cf8c5616c7394389ef91e2a2b3e21",
+  "sha256": "1pylaiy016yiyvd27m38wymw1k3bq7sfsd2d23idrgybc8miqqp6",
   "fetcher": "github",
   "repo": "joaotavora/sly",
   "unstable": {
    "version": [
-    20200314,
-    55
+    20200816,
+    928
    ],
-   "commit": "1382bda945ecfb4b177c7d05a36da8fd41e0384c",
-   "sha256": "1hmdx3nakhpsmg6zr52090pimmy0kpjz2adyi0m1wzh9zdg5cx4x"
+   "commit": "155cb0655e037477b592f8bde9c80022427293e5",
+   "sha256": "0g0ncqb7x3g3gafxm5j0v893cvnskq4idb5442f0v8d3y9pr0lyi"
   },
   "stable": {
    "version": [
@@ -89072,14 +91531,14 @@
   "repo": "joaotavora/sly-quicklisp",
   "unstable": {
    "version": [
-    20191012,
-    2124
+    20200707,
+    1635
    ],
    "deps": [
     "sly"
    ],
-   "commit": "01ebe3976a244309f2e277c09206831135a0b66c",
-   "sha256": "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"
+   "commit": "4707b62803d7a29f172e9c5ff993b91187a9aaf3",
+   "sha256": "1i4fqgd42khl85d4fifgfz2z6njpb8bxdry4chmgl8wfhh0mydza"
   }
  },
  {
@@ -89139,11 +91598,11 @@
   "repo": "zenitani/elisp",
   "unstable": {
    "version": [
-    20200322,
-    24
+    20200727,
+    1249
    ],
-   "commit": "e2a390b9b8518ad62283046400a0fb3e81eb5b79",
-   "sha256": "1s23r0dr10wjnk0j5gicy1dxvbhvnz3zmbssk431vccbba1jm8yg"
+   "commit": "1f14c86af7ca5813ddc0b6dfcf2edd4a81371644",
+   "sha256": "0z1mmbgsx2lxrlyg59kz39khbir5k3cwb83mpz49ixfmy54byx5n"
   }
  },
  {
@@ -89163,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"
   }
  },
@@ -89225,24 +91684,6 @@
   }
  },
  {
-  "ename": "smart-input-source",
-  "commit": "82ef5414e63fe94905f042534d8bde88fb5461c6",
-  "sha256": "1dx3cvbm9hrdfrj4ggf0hbmfag2hybdlrqgpzy48fc07dscv0acd",
-  "fetcher": "github",
-  "repo": "laishulu/emacs-smart-input-source",
-  "unstable": {
-   "version": [
-    20200423,
-    1529
-   ],
-   "deps": [
-    "names"
-   ],
-   "commit": "048a6c729f5336fe800e97f995a387e11d386980",
-   "sha256": "19s8q8fb2kmmfllg50622hzp3jb19h9z9ik45k4v7aapdc7iw5yg"
-  }
- },
- {
   "ename": "smart-jump",
   "commit": "52f29e14e61b28cd1637ca5d6bd878d91a71251f",
   "sha256": "14c7p6xqasd0fgn70zj1jlpwjxldzqx44bcdqdk6nmjihw0rk632",
@@ -89730,8 +92171,8 @@
    "deps": [
     "org"
    ],
-   "commit": "0a6374493363d10826a8151d37fc461b08cc9b9a",
-   "sha256": "0vfhcnlz0p4dsnn7ac0fjqbk6xklanaa6jk0zbqcrlf2ww926v29"
+   "commit": "531957d7356f623b026aa45923e536421f682c1a",
+   "sha256": "0rb8vjnkn9pp0lrmmvsfslmw7xya4n18s82vs98545phwc4bjga5"
   }
  },
  {
@@ -89834,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": [
@@ -90082,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": [
@@ -90112,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": [
@@ -90150,8 +92591,8 @@
     "flycheck",
     "solidity-mode"
    ],
-   "commit": "022b3159832384a7dcdc2168809e698600826047",
-   "sha256": "144w84abffbrbb4wflgipndaasx82axf36xm373ybdih4131mi69"
+   "commit": "d166a86b83907e0cfd64c191e9dfce4b44a9843e",
+   "sha256": "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"
   },
   "stable": {
    "version": [
@@ -90175,11 +92616,11 @@
   "repo": "ethereum/emacs-solidity",
   "unstable": {
    "version": [
-    20200418,
-    921
+    20200529,
+    1924
    ],
-   "commit": "022b3159832384a7dcdc2168809e698600826047",
-   "sha256": "144w84abffbrbb4wflgipndaasx82axf36xm373ybdih4131mi69"
+   "commit": "d166a86b83907e0cfd64c191e9dfce4b44a9843e",
+   "sha256": "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"
   },
   "stable": {
    "version": [
@@ -90249,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,
@@ -90273,20 +92714,20 @@
   "repo": "mssola/soria",
   "unstable": {
    "version": [
-    20200424,
-    1530
+    20200803,
+    1402
    ],
-   "commit": "fcc14cc99f0d26abf91af682b5fdedf5a8a37003",
-   "sha256": "0mrh147q9zzs9nkc714iyly5aydx3svma0ix8sgrk7rqacfd56hv"
+   "commit": "d5274cc4a8e19ed0f1393a09192def951d025a11",
+   "sha256": "1zdcwccndgmn83xmlxqlx6azd03g7dxd2ldc3dj6yxbjasfx00x5"
   },
   "stable": {
    "version": [
     0,
     3,
-    2
+    3
    ],
-   "commit": "5edb9379cd21411fb182239ed9ac19be4a278f32",
-   "sha256": "103837zizm5iqv3sskxgkhjij2icjx9sjvjhq2l9zi66rlh9gca7"
+   "commit": "d5274cc4a8e19ed0f1393a09192def951d025a11",
+   "sha256": "1zdcwccndgmn83xmlxqlx6azd03g7dxd2ldc3dj6yxbjasfx00x5"
   }
  },
  {
@@ -90306,20 +92747,20 @@
  },
  {
   "ename": "sos",
-  "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
-  "sha256": "0d0n2h7lbif32qgz0z2c36536mrx36d22gq86xm7kmxday6iy19k",
+  "commit": "e8acf595ef51c928b4b41a9fea171fbfd40c080d",
+  "sha256": "1sny4wa2746fi9p18js0y9fm2f9ix7yblqyqa36ibkfj4b50hvxi",
   "fetcher": "github",
-  "repo": "rudolfolah/emacs-sos",
+  "repo": "emacsattic/sos",
   "unstable": {
    "version": [
-    20141215,
-    403
+    20200510,
+    1734
    ],
    "deps": [
     "org"
    ],
-   "commit": "1573adca912b88b5010d99a25c83a5b2313bd39c",
-   "sha256": "19jwnny0v6ppakpaaxv9qhr6353mksh9kxiz61kp4h12n6sfrb7p"
+   "commit": "6c25beae9f6db8fc7a037112ad5d4be9f5f36986",
+   "sha256": "1ia90sanqbigpag63w953kvfd1gyaakcvh65fsd79pcx4k38p4ly"
   },
   "stable": {
    "version": [
@@ -90563,11 +93004,11 @@
   "repo": "p3r7/space-theming",
   "unstable": {
    "version": [
-    20200415,
-    810
+    20200502,
+    1032
    ],
-   "commit": "0a41a892180451d51095516e8ee2c9042be009c1",
-   "sha256": "02d07fs72fqg12lm7wxlmds1xyqf92ay0h9ghpkavwn6mphslpvc"
+   "commit": "31dca6954df643255175f7df68a86892aa3c71a7",
+   "sha256": "1bc6bsilsv1p3i39n14vnsrk9bz738n7fw16jv72qv74xkvqkyr0"
   }
  },
  {
@@ -90681,11 +93122,11 @@
   "repo": "nashamri/spacemacs-theme",
   "unstable": {
    "version": [
-    20200324,
-    1107
+    20200808,
+    1859
    ],
-   "commit": "f79c40fb241e204539fde97200abae91e828e585",
-   "sha256": "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"
+   "commit": "462ef2ac16ab8c51de21d5f3d2b1b6122b314391",
+   "sha256": "1qhvf0xf58cm4x8wij1l6301q1y6jp8j7i61g8lizlb24f7fla9l"
   }
  },
  {
@@ -90756,14 +93197,14 @@
   "repo": "ljos/sparql-mode",
   "unstable": {
    "version": [
-    20180320,
-    1802
+    20200429,
+    1719
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "a00bb622c54086ac1ee96c265bf7fbef12c68089",
-   "sha256": "0f919alnqbp5dnc4krgmnc9acqg84xs64fmzjc78gpbmfn0kyi0m"
+   "commit": "62f198256453265af48bef3a0207e80143fbff1e",
+   "sha256": "0a49678yaq2vc04w4xp0i9lpb7bdf1fwhjkg0xnzssvnjcnk368k"
   },
   "stable": {
    "version": [
@@ -90813,11 +93254,11 @@
   "repo": "brailcom/speechd-el",
   "unstable": {
    "version": [
-    20200122,
-    2036
+    20200706,
+    1236
    ],
-   "commit": "590278f2b37919d082f576e522cbb790167a7f8d",
-   "sha256": "0s2znn91jy342xrcsda6mbf78f19ixxf5lf401jls8l5gj9bnx7f"
+   "commit": "058f91b4d1b0350221218656202ea80cd6827d65",
+   "sha256": "0c9k68mnwm7hhd9mj6f3p8k83kmd67rgzcr27791mnjfkhipynvb"
   }
  },
  {
@@ -90890,11 +93331,11 @@
   "repo": "ideasman42/emacs-spell-fu",
   "unstable": {
    "version": [
-    20200426,
-    600
+    20200623,
+    307
    ],
-   "commit": "e62cfc4f08fc4743d6961fe3402adbf2260d7e70",
-   "sha256": "1w6jsn3p6956vk5pzwlbc211sswqai8ary8ad3fbhbjwxl5z3gsc"
+   "commit": "e94d01cdc822e02968971cde09276047a5d55772",
+   "sha256": "0fph3l2cpis9k09d6yhl8rv9yb727ayqq6qw6pbmxmn687xmxx9q"
   }
  },
  {
@@ -91062,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": [
@@ -91323,8 +93764,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "2f10382034cd5cd2356cc69b4a1e9116d77a0d86",
-   "sha256": "18z9hljifw63zy4jrsyg4x2lqzgx29sfibx3maj0dm90yzj6zmcg"
+   "commit": "9e6351dc97a6f58f221d6e1baa7bab292309c437",
+   "sha256": "1r49c8ick1vk7zl4h0472z0p6j3d5b839al3s687acgqdymb24kk"
   },
   "stable": {
    "version": [
@@ -91351,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",
@@ -91405,11 +93861,11 @@
   "repo": "srcery-colors/srcery-emacs",
   "unstable": {
    "version": [
-    20200422,
-    1941
+    20200813,
+    1430
    ],
-   "commit": "9630e465cc5166f723b7c5378e326561cf2a1738",
-   "sha256": "0ppaicggrrd3wrbjddw75mnsfli9a8db6bg21m1k7bafjkgraxfn"
+   "commit": "a3a4df9875ea6ae21cfb483dfd7b5c92278fb1c3",
+   "sha256": "1lc8796r5vy4n9nz9q10qy4brzd7c7i7dsjmvci6c9f7blqnz1la"
   },
   "stable": {
    "version": [
@@ -91452,25 +93908,22 @@
   "repo": "srfi-explorations/emacs-srfi",
   "unstable": {
    "version": [
-    20200422,
-    1730
-   ],
-   "deps": [
-    "cl-lib"
+    20200817,
+    549
    ],
-   "commit": "d55b4047fcfd3528fa9487d206773f45c7c2d038",
-   "sha256": "0c83wachsrrz0mnsb2lci6mr62ma40w05lxz7y8vrfyqppkcfa6a"
+   "commit": "1588f720ecd7f69a7972d5c9e113975af045c813",
+   "sha256": "136zx2sr0n4lb396vpz5nq60zjc3cav4kpx8r5h3nzgnmamqz61b"
   },
   "stable": {
    "version": [
     0,
-    1
+    3
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "c0a1ae75bfb3fdc81bb722dff5f5e2fae3f07024",
-   "sha256": "1zymgidk09yyjdd23cz7rx2hql8vpmpqn21i07hwcr7032v0kl7k"
+   "commit": "98b8b1f9edd4ce6a05eeef49bed0d1966bd7c528",
+   "sha256": "1il0z6lb2jz495gdp6g7wc0n9a4z8z8ndhrrl71rnws53fah0lm3"
   }
  },
  {
@@ -91572,11 +94025,11 @@
   "repo": "jhgorrell/ssh-config-mode-el",
   "unstable": {
    "version": [
-    20191221,
-    1051
+    20200503,
+    2042
    ],
-   "commit": "e9f009c064f63ca488c89c30ab0d3857a0155f86",
-   "sha256": "1f6bj718jkdsbj38f75kwvg54kk4fisv7s9dcgh3gjf0n7xalkgc"
+   "commit": "8fda737131fef2e55c4965a938cf907acbf03372",
+   "sha256": "1cjcav28a6bw8h8axx5ms2cacdqcjv6imb4pj4r4zx08jd4nljdk"
   }
  },
  {
@@ -91651,8 +94104,8 @@
     20200221,
     2025
    ],
-   "commit": "599a0440086c660e6823622b35058f6d2d6d9637",
-   "sha256": "0mm0kpyihpd55hx14smlm0ayz05zw750fihhqhxqc258y8y73m5y"
+   "commit": "e891a0fcb3a7ab7d9cedbe3deda560134636897e",
+   "sha256": "158afanfaww2jkrz9szap6ys8xhbpz35kd5apkxr1j9j7s8h0iw0"
   },
   "stable": {
    "version": [
@@ -91679,8 +94132,8 @@
     "stan-mode",
     "yasnippet"
    ],
-   "commit": "599a0440086c660e6823622b35058f6d2d6d9637",
-   "sha256": "0mm0kpyihpd55hx14smlm0ayz05zw750fihhqhxqc258y8y73m5y"
+   "commit": "e891a0fcb3a7ab7d9cedbe3deda560134636897e",
+   "sha256": "158afanfaww2jkrz9szap6ys8xhbpz35kd5apkxr1j9j7s8h0iw0"
   },
   "stable": {
    "version": [
@@ -91697,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",
@@ -91762,11 +94247,11 @@
   "repo": "thisirs/state",
   "unstable": {
    "version": [
-    20180627,
-    1956
+    20200727,
+    1227
    ],
-   "commit": "258fe1cba00bdc2c600f866bb0406c719661d0a6",
-   "sha256": "1miwmb4012a4pjxc0qi0qrs0aw7yf8fhiy72ndf80sj050wmpaqn"
+   "commit": "8cd9210f17c1b134274a7352b996839aed9a7d8c",
+   "sha256": "04h8n2wy9qr4bskq9znhadcf02wk4ydhyaaq44yvh55hzmn6gm25"
   }
  },
  {
@@ -91842,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": "209d2233843778ebee12d103c41b226fa27ff266",
-   "sha256": "19rm3zznj0j8q5gsqpk6hy5l3gii4pmp5s2npl1zsiy6bb7p59c4"
+   "commit": "333e9e434cec9aa2f887083cdf2cefcaa316f438",
+   "sha256": "1q058qav0al8mb6f3f3jc4mnzlvhlis9dllchw3flw3gx57qcrx5"
   },
   "stable": {
    "version": [
     0,
-    22
+    23
    ],
-   "commit": "9acc95666619699d4cdf0526305155407081d8de",
-   "sha256": "0rhdgakd4vc0549m6zjwcmsnvh2i3mbv5laks25wnfmsxr8dwqns"
+   "commit": "e6dd7eff206a6515aefced2ad701beaf625d7b7d",
+   "sha256": "157vdhdjzxsf7077916ibn0jbsxw9d71m8mwm4kn0i0ip7sj9xdg"
   }
  },
  {
@@ -92001,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"
   }
  },
  {
@@ -92188,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,
@@ -92271,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": [
@@ -92320,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": [
@@ -92576,11 +95061,11 @@
   "repo": "leafOfTree/svelte-mode",
   "unstable": {
    "version": [
-    20200327,
-    406
+    20200816,
+    354
    ],
-   "commit": "48a26af6a3395a8bf3f09747d0a205c6dbc79313",
-   "sha256": "12gg55jdb6b5jk0xizx2cqc795bgll2kap3jp08s1vr16zkdaryn"
+   "commit": "5db0451429d4bf68f5dd131837faa6eb601a631d",
+   "sha256": "1ffr9yzxr1z8xmvl0lf7nfp9gjp79zps556d3kni45dbnkdi0z1h"
   }
  },
  {
@@ -92694,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",
@@ -92736,16 +95236,16 @@
   "repo": "danielmartin/swift-helpful",
   "unstable": {
    "version": [
-    20200321,
-    10
+    20200701,
+    2005
    ],
    "deps": [
     "dash",
     "lsp-mode",
     "swift-mode"
    ],
-   "commit": "e58f26b8ab9cf0522d52fe9890d39dc9e645577e",
-   "sha256": "1yx73wgvaf01wi26ahc9cblsk3sj98rgljb19dxc9ab7hjyncd46"
+   "commit": "2c8c9cda5ed9d9e96bb3a39c6d0905a15dd9e2e6",
+   "sha256": "1kq4jxhig6bg4cifggy06a6ydksg68nr2gbnxn589znacxbs0iy9"
   },
   "stable": {
    "version": [
@@ -92769,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": [
@@ -92853,14 +95353,14 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20200319,
-    1334
+    20200503,
+    1102
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "47ec37b395cc1b304bbf91e804f138634544a9df",
-   "sha256": "05k2qjj4z8vljfppkphfhw67wvb5ij4nz4m158v89lx87y0phh74"
+   "commit": "dd43ab1217f72948dc5cd669467e33b8b568db44",
+   "sha256": "0h4273gr4h9xkdf5g08ci95jq0n9l1w3vgd1y9452cry1r07ya9l"
   },
   "stable": {
    "version": [
@@ -92908,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",
@@ -92939,11 +95454,11 @@
   "repo": "dimitri/switch-window",
   "unstable": {
    "version": [
-    20181104,
-    340
+    20200502,
+    511
    ],
-   "commit": "204f9fc1a39868a2d16ab9370a142c8c9c7a0943",
-   "sha256": "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"
+   "commit": "8710f6304d843365fb59b6efe7e1f729d14e557c",
+   "sha256": "1v8qx519dwhpwg9ba08nl3kp329n3p1dbjj7iiiwmn22580nrkqh"
   },
   "stable": {
    "version": [
@@ -92963,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": [
@@ -93055,26 +95570,46 @@
   "repo": "contrapunctus/sxiv.el",
   "unstable": {
    "version": [
-    20200326,
-    1433
+    20200803,
+    1431
    ],
    "deps": [
     "dash"
    ],
-   "commit": "dae46e6f5890f3d97d45eaadf0194b7ff01f6baf",
-   "sha256": "094kvg0cznddzn5q1clgj9r26h3ygab96rpbr00qn2wnmdb79bhq"
+   "commit": "9eb6a121bfdf64433cd8ac7985d2c82b590b5abb",
+   "sha256": "0fjzzynlmqxxrr4520rh7ds0gip6l8cbmrgp7ghrgm07830arpcj"
   },
   "stable": {
    "version": [
     0,
     3,
-    1
+    3
    ],
    "deps": [
     "dash"
    ],
-   "commit": "dae46e6f5890f3d97d45eaadf0194b7ff01f6baf",
-   "sha256": "094kvg0cznddzn5q1clgj9r26h3ygab96rpbr00qn2wnmdb79bhq"
+   "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"
   }
  },
  {
@@ -93085,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": [
@@ -93137,8 +95672,8 @@
   "repo": "countvajhula/symex.el",
   "unstable": {
    "version": [
-    20200425,
-    1911
+    20200526,
+    211
    ],
    "deps": [
     "cider",
@@ -93155,13 +95690,13 @@
     "slime",
     "smartparens"
    ],
-   "commit": "3dba2ae3f65bd1c40e3756e05a57ced039a15a7f",
-   "sha256": "1j2ycsi2ipbyaknscy0vgr1ybyvzl7j1q0gvazkl5rpihshz2shl"
+   "commit": "b35e3622601ca5b27bb8e1b7ab301cc6dd674a62",
+   "sha256": "118s8xxas5nmj181p7mf9lsal7jl0pkph3gs1gyr0x6c5y93b1ci"
   },
   "stable": {
    "version": [
     0,
-    6,
+    7,
     0
    ],
    "deps": [
@@ -93179,8 +95714,8 @@
     "slime",
     "smartparens"
    ],
-   "commit": "62bd31d8647b88ec179fb8ff89f583b55a0421cc",
-   "sha256": "1c2y65hcd0nydhkh7a903flq061x8hld272n00xn4dd0b8kvjp29"
+   "commit": "8209d63d88b596e5e4ed66c56085c978f33acda5",
+   "sha256": "0l0pb9d5q84wv4jiappm3wi800dslv9ciq9rla0mrv4xb2lhf3pp"
   }
  },
  {
@@ -93379,11 +95914,11 @@
   "repo": "dantecatalfamo/sysctl.el",
   "unstable": {
    "version": [
-    20190720,
-    2028
+    20200615,
+    1824
    ],
-   "commit": "0fc50305a96de059ad1ff4e6081c9b4089f5247f",
-   "sha256": "0v2andw08qawgbdzn0vplxd3drs41gqf2qbidhakmsssdd4nqiib"
+   "commit": "d8c2e18de1d7a3b2999a4d5054c0bbf30cb10fed",
+   "sha256": "0jvw5r4z9lq36yv58slpc8fw9ljzrppdsg9j7cs34m0wnhyid4a4"
   }
  },
  {
@@ -93425,11 +95960,11 @@
   "repo": "jabranham/system-packages",
   "unstable": {
    "version": [
-    20200310,
-    1510
+    20200426,
+    1714
    ],
-   "commit": "449dcdf4fe22874c9d91ee8d929ebb8a41b1bac6",
-   "sha256": "105s1kr8xapp93za9z9kq7s0rqccqissavacjfg6cvfx6gqrr8gy"
+   "commit": "92c58d98bc7282df9fd6f24436a105f5f518cde9",
+   "sha256": "01hj46zgs7a1as0r0x451ag2fb40pp3gyzycvj0gm328grn6vpmk"
   },
   "stable": {
    "version": [
@@ -93627,11 +96162,11 @@
   "repo": "politza/tablist",
   "unstable": {
    "version": [
-    20200227,
-    1918
+    20200427,
+    2205
    ],
-   "commit": "10a573dc0e66981110507ee8b8b6408be48ce891",
-   "sha256": "0yzzkn6k8jjjkq5awiyi0li6j4bhynv8ayqa7sp1cqbgg4hd8rd4"
+   "commit": "faab7a035ef2258cc4ea2182f67e3aedab7e2af9",
+   "sha256": "1nqp7v5jd6zibpnx0w720xj2if71z1sgly9mmlnbcryg15p7c4gz"
   },
   "stable": {
    "version": [
@@ -93644,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,
@@ -93784,11 +96319,11 @@
   "repo": "saf-dmitry/taskpaper-mode",
   "unstable": {
    "version": [
-    20200416,
-    2114
+    20200701,
+    1436
    ],
-   "commit": "eedf6a465b8ccc865c108a6f2715769300f5a499",
-   "sha256": "1p7wlv5i46f3d9kn3yiw6rga8mkln9m5xknzimzym2pyaclva41m"
+   "commit": "5ded73ae13d58ab0bbd52ac7556ff29e114a96d6",
+   "sha256": "00bvjrbcqalwlw1lc883p8l7szb9qniqp120pwd6hgyvgpr7h3s1"
   },
   "stable": {
    "version": [
@@ -93923,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",
@@ -93977,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",
@@ -93984,26 +96510,28 @@
   "repo": "zevlg/telega.el",
   "unstable": {
    "version": [
-    20200423,
-    1038
+    20200814,
+    1652
    ],
    "deps": [
+    "rainbow-identifiers",
     "visual-fill-column"
    ],
-   "commit": "50ef9bf06cc162b39cf3553b89b02faf5bc87835",
-   "sha256": "1h5100vmgwy52zp7ryarj4xw3gb9paj1qpm39mc9h62s6n1zysw7"
+   "commit": "9594ebcb0f605e5b01bc4ec6d1bd1b6470002bc0",
+   "sha256": "0hm6yvr4ygkcycw850sd4lcwmrr49s88nhan08hal0xylzazlq24"
   },
   "stable": {
    "version": [
     0,
     6,
-    0
+    28
    ],
    "deps": [
+    "rainbow-identifiers",
     "visual-fill-column"
    ],
-   "commit": "ae09592498ce380e57fbb76725fd4c89ae248864",
-   "sha256": "0mv6i80958d9crzspzik5xh5g8326115bvg2frgv0dp9p6rm86m3"
+   "commit": "e53996777570a5bed84d21f6c8defd4f51c8e255",
+   "sha256": "058x6svgy33lyqjqq0l3byv8bysqig9jmh3kx8shaqr0ypfrjhi3"
   }
  },
  {
@@ -94037,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": [
@@ -94081,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",
@@ -94382,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": [
@@ -94436,8 +96988,8 @@
     "cl-lib",
     "json"
    ],
-   "commit": "a295a80a502771cc07dc061961e0eb85343c2925",
-   "sha256": "02szncbbvb52kv9mn2clqhzg49knpny1bxsa7wd5l0gwbsqly3dw"
+   "commit": "ef50c6f0269a6fd9ce742d0a87647d60a0ef850f",
+   "sha256": "1c3zamvcambi9l91vilc0sbyzn21jj89n9j02simza4ffyn9xix9"
   },
   "stable": {
    "version": [
@@ -94469,8 +97021,8 @@
     "cl-lib",
     "tern"
    ],
-   "commit": "a295a80a502771cc07dc061961e0eb85343c2925",
-   "sha256": "02szncbbvb52kv9mn2clqhzg49knpny1bxsa7wd5l0gwbsqly3dw"
+   "commit": "ef50c6f0269a6fd9ce742d0a87647d60a0ef850f",
+   "sha256": "1c3zamvcambi9l91vilc0sbyzn21jj89n9j02simza4ffyn9xix9"
   },
   "stable": {
    "version": [
@@ -94527,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"
   }
  },
  {
@@ -94639,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": [
@@ -94680,14 +97241,14 @@
   "repo": "TobiasZawada/texfrag",
   "unstable": {
    "version": [
-    20200424,
-    205
+    20200716,
+    1331
    ],
    "deps": [
     "auctex"
    ],
-   "commit": "48118c4e38836117efb4eede927ab85d9a0d2013",
-   "sha256": "1dpvf9limh9b0sg0x41gyw9w5nf5nvkd7zzlyysswhinm6jba4iz"
+   "commit": "a5f59e0c5f43578f139a2943bd08e5b3140f4c2b",
+   "sha256": "11xissn0xpfx2xxcm5qj2smkxa5frcswvhpfv6m34j12z0nww7pw"
   },
   "stable": {
    "version": [
@@ -94764,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,
@@ -94857,8 +97418,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "0e314ad21193441a26ce1839737e7a054e6a1a1b",
-   "sha256": "1v4rv2w8jdjzikwfjxsxqrbfwh6nm88v9x74pdhc3mq36qwl487g"
+   "commit": "eece1cef4483c02402f845d6158b35f6578447c3",
+   "sha256": "17slczwsd0av87fq44q9y1w6nvzvjfr2qn1majz5nqxfn55i6x9x"
   },
   "stable": {
    "version": [
@@ -94994,18 +97555,18 @@
     20200212,
     1903
    ],
-   "commit": "598704d0259d992af190a4388140b8aec07f40ef",
-   "sha256": "168sl4jbcyqms1cvg8x91kclim27v9zbfrw3cn2fmwmd2g29c31j"
+   "commit": "32b109977cbde37bf719c2955ff7dd1e657a6c70",
+   "sha256": "0ww3k4yd5bk40r3v1a96mgzhaayqgb0v2kjvxzn10wcybqxf1zqb"
   },
   "stable": {
    "version": [
     2020,
-    4,
-    20,
+    8,
+    17,
     0
    ],
-   "commit": "23496d2d53ecc70a2353c1a84699ac579e21e0a1",
-   "sha256": "0yvpnyzklsjppfhd9spgrf9gh3f36zvs3rz7fyc7bl3n68s3z7wq"
+   "commit": "b733bf19c3c68c0aa6d5e0bb7db4321fe13b47a2",
+   "sha256": "11kpja52drs4xsja6gyg37rq1681pfgv71cc3lksh2dn6jrn8nbq"
   }
  },
  {
@@ -95055,26 +97616,26 @@
   "repo": "tidalcycles/Tidal",
   "unstable": {
    "version": [
-    20191210,
-    1647
+    20200523,
+    833
    ],
    "deps": [
     "haskell-mode"
    ],
-   "commit": "3735a13c9bbe4fbb788d9dbc363701081253bafa",
-   "sha256": "0nm02pzhvg6lb3j4m8g4jfgkirv8pb6881bk2r74hijxvjamma0b"
+   "commit": "137192a2ef6c4f457ddba38a0397570266333854",
+   "sha256": "1wwmgzlqih3j8slggmi79xiy811qzlrwjqpd7y37lj508w96qppi"
   },
   "stable": {
    "version": [
     1,
-    4,
-    9
+    6,
+    1
    ],
    "deps": [
     "haskell-mode"
    ],
-   "commit": "252e3be53eb1bf6bfcd1b3c52af982506c84a89e",
-   "sha256": "19chvk24csg5w38q6yh1wky4nk4z8361p1q5q118427njqkl5ql3"
+   "commit": "7377b6c8ddc23d197018af203456063864df1457",
+   "sha256": "0vj55135h0mw093b9rlnq8hka9sj4kmhnv8xj46z2kcqj0qcq7q8"
   }
  },
  {
@@ -95085,8 +97646,8 @@
   "repo": "ananthakumaran/tide",
   "unstable": {
    "version": [
-    20200327,
-    1218
+    20200811,
+    2114
    ],
    "deps": [
     "cl-lib",
@@ -95095,8 +97656,8 @@
     "s",
     "typescript-mode"
    ],
-   "commit": "3b45610faaab33bc53ae2d44e1e573f19f35a74a",
-   "sha256": "1507xp8ndhyqvzd5j2qx3y4lpxq52j40srh5mp9784bf1hm9gg2s"
+   "commit": "f0b6dac4829c3daecf02bf445a5b41b4c68f2911",
+   "sha256": "0533kxxl68vsx99b5nwdhy885nl2ad8wc6my38kardmklshjpvj1"
   },
   "stable": {
    "version": [
@@ -95116,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",
@@ -95424,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"
   }
  },
  {
@@ -95467,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"
   }
  },
  {
@@ -95487,11 +98063,11 @@
   "repo": "rpdillon/todotxt.el",
   "unstable": {
    "version": [
-    20180626,
-    2230
+    20200530,
+    2337
    ],
-   "commit": "f13e404304c9d26c105de872f96b4601441b3875",
-   "sha256": "1yvy2pl2ncgkz1xz598qjvp2v3g66m57wz7nra2vira7m4kq4671"
+   "commit": "b51f7fa1357d2cbc1b72b10d15f8c6f009ce5a46",
+   "sha256": "1asf33na834mc4ppvfyjxa70v4r80dnq641si5kd86gjfzjjjfmi"
   }
  },
  {
@@ -95541,8 +98117,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "052881b101d8c2d11c89ae4f1befe7a999de987e",
-   "sha256": "0k9sjjsqxnrh0cq6m3cd9rk44n0rjbjgqcbfv6fg33a0gpybvryf"
+   "commit": "fc9ec563430e3beaefc00b26da179f4b4ca9855b",
+   "sha256": "1m4v56yy73gvycsvpc36h7yh6yhn3fgp90rk5m248hz89gjf9kxv"
   }
  },
  {
@@ -95871,8 +98447,8 @@
     20171210,
     2102
    ],
-   "commit": "e5bf5f89741a9c43aa406491e94dd8d58c302fb4",
-   "sha256": "104l0b9n9ia7zrha20yaxp6c09wg1h5l5a8b988k6mhyj9a1w1aw"
+   "commit": "89aac22259e5d09ae1183e0df163338fe491e9e7",
+   "sha256": "16hfahyhl1vv3r0amyvc514sw6x9x56b319lkp7bwcy8mxicc3cy"
   },
   "stable": {
    "version": [
@@ -95951,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"
   }
  },
  {
@@ -95975,11 +98551,11 @@
   "repo": "magit/transient",
   "unstable": {
    "version": [
-    20200226,
-    1612
+    20200819,
+    1133
    ],
-   "commit": "afa0c2f98453b9ffd9d8160831debc7e36cdb87b",
-   "sha256": "0jkyrwxmfarbjqidvgxh0x4al9xh1wyd6r1rwvkbwxscz5111h3z"
+   "commit": "f5d81ef0ed24be935f3c0192b746a1738d903d37",
+   "sha256": "0kyrf0nh9l9x1jwfca1921qc0w2ii1xp4ya4mv2jmanm3apbihb9"
   },
   "stable": {
    "version": [
@@ -95999,14 +98575,14 @@
   "repo": "conao3/transient-dwim.el",
   "unstable": {
    "version": [
-    20200411,
-    2015
+    20200812,
+    1033
    ],
    "deps": [
     "transient"
    ],
-   "commit": "00d111e41e433736422e388e593b5c0df7d21bf9",
-   "sha256": "1gx3v5axvwah1yb0wba2l60dy72lcw7jw86cfjlg3m9a8xd090v7"
+   "commit": "de03d875dd89b1d838be67b0c44d9786adf96717",
+   "sha256": "0gb4k3758bv25vdw30rq0vbs94vdyss0xsiyaxnmvpfnj0v9k2cq"
   }
  },
  {
@@ -96017,14 +98593,14 @@
   "repo": "holomorph/transmission",
   "unstable": {
    "version": [
-    20200321,
-    216
+    20200620,
+    402
    ],
    "deps": [
     "let-alist"
    ],
-   "commit": "05a80e7a90303cd80f67681df2ec8e1bac88c394",
-   "sha256": "02chl6k9r0mki7iy5rs9xwgd74ypf0c79q9d3p7fw1rc1wqxk9ji"
+   "commit": "7ed254437c1f95ce7f59e87e90d6ec5e4d91c01d",
+   "sha256": "15qim9dfir08hkqf0ynwf1953cq60726rkjyc32l8hkpjlgw23ar"
   },
   "stable": {
    "version": [
@@ -96079,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",
@@ -96086,20 +98686,20 @@
   "repo": "shingo256/trashed",
   "unstable": {
    "version": [
-    20191124,
-    1351
+    20200523,
+    231
    ],
-   "commit": "cc0243c9a4f01dc889f5c5ced3e311f918fe0750",
-   "sha256": "0nyipnrjwbmh4mvfv1nwz6ypg8c1j0g9y9kc4cym49q9vy3wy56c"
+   "commit": "23e782f78d9adf6b5479a01bfac90b2cfbf729fe",
+   "sha256": "0lfza55nbb62nmr27cwpcz2ad1vm95piq4nfd8zvkwqbn6klwmm6"
   },
   "stable": {
    "version": [
+    2,
     1,
-    9,
-    0
+    2
    ],
-   "commit": "f3e970c139e44fc7d36ad781566fd6b288d691a9",
-   "sha256": "13grdi12iwlw4fiphdfmvclfpbr6ajlgfbfyi7v41z8k3rxz4ypz"
+   "commit": "23e782f78d9adf6b5479a01bfac90b2cfbf729fe",
+   "sha256": "0lfza55nbb62nmr27cwpcz2ad1vm95piq4nfd8zvkwqbn6klwmm6"
   }
  },
  {
@@ -96161,8 +98761,8 @@
   "repo": "cyberthal/treefactor",
   "unstable": {
    "version": [
-    20200131,
-    621
+    20200516,
+    1631
    ],
    "deps": [
     "avy",
@@ -96170,14 +98770,14 @@
     "f",
     "org"
    ],
-   "commit": "273fe37aa4ba0fde084976f1b303ceec789a9f7b",
-   "sha256": "0bgbjkr81xrf4p9jcvdrb3d1nh6hyvdg6dgzbxsh7s73smal9kwk"
+   "commit": "75357757022a4399ab772ff0d92065bd114dabe9",
+   "sha256": "0ks7ilc01j1jli1p1lqmqwcr3bfzn5p6vhxybc9wn2sk2sqn2kv8"
   },
   "stable": {
    "version": [
     3,
     2,
-    1
+    2
    ],
    "deps": [
     "avy",
@@ -96185,8 +98785,8 @@
     "f",
     "org"
    ],
-   "commit": "273fe37aa4ba0fde084976f1b303ceec789a9f7b",
-   "sha256": "0bgbjkr81xrf4p9jcvdrb3d1nh6hyvdg6dgzbxsh7s73smal9kwk"
+   "commit": "75357757022a4399ab772ff0d92065bd114dabe9",
+   "sha256": "0ks7ilc01j1jli1p1lqmqwcr3bfzn5p6vhxybc9wn2sk2sqn2kv8"
   }
  },
  {
@@ -96197,8 +98797,8 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20200426,
-    1031
+    20200816,
+    939
    ],
    "deps": [
     "ace-window",
@@ -96210,8 +98810,8 @@
     "pfuture",
     "s"
    ],
-   "commit": "93b4357f7d9ff559c195be1fc4a7ec3554053d48",
-   "sha256": "1rh0bbm2mqy4zwkxrcsc88qpg2j6cbjsqcf8l682ibmmnslrfqh9"
+   "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+   "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
   },
   "stable": {
    "version": [
@@ -96233,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",
@@ -96240,15 +98859,15 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20200302,
-    558
+    20200716,
+    2041
    ],
    "deps": [
     "evil",
     "treemacs"
    ],
-   "commit": "93b4357f7d9ff559c195be1fc4a7ec3554053d48",
-   "sha256": "1rh0bbm2mqy4zwkxrcsc88qpg2j6cbjsqcf8l682ibmmnslrfqh9"
+   "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+   "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
   },
   "stable": {
    "version": [
@@ -96271,15 +98890,14 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20200421,
-    1426
+    20200530,
+    2129
    ],
    "deps": [
-    "cl-lib",
     "treemacs"
    ],
-   "commit": "93b4357f7d9ff559c195be1fc4a7ec3554053d48",
-   "sha256": "1rh0bbm2mqy4zwkxrcsc88qpg2j6cbjsqcf8l682ibmmnslrfqh9"
+   "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+   "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
   },
   "stable": {
    "version": [
@@ -96310,8 +98928,8 @@
     "pfuture",
     "treemacs"
    ],
-   "commit": "93b4357f7d9ff559c195be1fc4a7ec3554053d48",
-   "sha256": "1rh0bbm2mqy4zwkxrcsc88qpg2j6cbjsqcf8l682ibmmnslrfqh9"
+   "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+   "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
   },
   "stable": {
    "version": [
@@ -96335,16 +98953,16 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20200421,
-    1426
+    20200530,
+    2129
    ],
    "deps": [
     "dash",
     "persp-mode",
     "treemacs"
    ],
-   "commit": "93b4357f7d9ff559c195be1fc4a7ec3554053d48",
-   "sha256": "1rh0bbm2mqy4zwkxrcsc88qpg2j6cbjsqcf8l682ibmmnslrfqh9"
+   "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+   "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
   },
   "stable": {
    "version": [
@@ -96368,15 +98986,15 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20200114,
-    1715
+    20200530,
+    2129
    ],
    "deps": [
     "projectile",
     "treemacs"
    ],
-   "commit": "93b4357f7d9ff559c195be1fc4a7ec3554053d48",
-   "sha256": "1rh0bbm2mqy4zwkxrcsc88qpg2j6cbjsqcf8l682ibmmnslrfqh9"
+   "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+   "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
   },
   "stable": {
    "version": [
@@ -96402,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"
   }
  },
  {
@@ -96460,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",
@@ -96650,14 +99292,14 @@
   "repo": "ocaml/tuareg",
   "unstable": {
    "version": [
-    20191220,
-    2314
+    20200518,
+    1820
    ],
    "deps": [
     "caml"
    ],
-   "commit": "c12061eb80c1487a1963af7cdae268d709a70ca9",
-   "sha256": "0x85yy20caqb24n7qx3h8nw259p6593y5dx43jl5iapy2n9za1gy"
+   "commit": "ccde45bbc292123ec20617f1af7f7e19f7481545",
+   "sha256": "1yxv4bnqarilnpg5j7wywall8170hwvm0q4xx06yqjgcn8pq1lac"
   },
   "stable": {
    "version": [
@@ -96720,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",
@@ -96902,11 +99520,11 @@
   "repo": "emacs-typescript/typescript.el",
   "unstable": {
    "version": [
-    20200312,
-    2235
+    20200817,
+    817
    ],
-   "commit": "102587e458d48ece6335cd708300647f22ec8b8d",
-   "sha256": "0i3zpg21l5id0sfpxyn496wy83mpr66afx71lrnipsy1fqwd2j5x"
+   "commit": "42a60e5c881082db2ec2c541a5c154308c4863e6",
+   "sha256": "14hn0v5gcbzj6y2xs30qyh8wba4l073x5281xd7xs05f9yv7dv5j"
   },
   "stable": {
    "version": [
@@ -96962,8 +99580,8 @@
     "f",
     "mmt"
    ],
-   "commit": "231cb7df43253b84323520b8ed70f128d37003af",
-   "sha256": "1savrxs7xl92ifyxpxkkzv2didr7lb405h0dwz1bs1wldr5fb53f"
+   "commit": "f567867a0a519e17ad3552837b48d3d45fb73aa5",
+   "sha256": "0a5xds0mhfnq6kyc13s385vf4x4cqqpk2jiw1in7qg382fl8w2p0"
   },
   "stable": {
    "version": [
@@ -96987,11 +99605,11 @@
   "repo": "jorgenschaefer/typoel",
   "unstable": {
    "version": [
-    20200212,
-    919
+    20200706,
+    1714
    ],
-   "commit": "505b4b1ead337b773863ea54066f867d07735f9e",
-   "sha256": "0n8xh6bp757fjqa68slphw04kb4g0489g66r6f4n4v8bpbbi3bbl"
+   "commit": "173ebe4fc7ac38f344b16e6eaf41f79e38f20d57",
+   "sha256": "09835zlfzxby5lpz9njl705nqc2n2h2f7a4vpcyx89f5rb9qhy68"
   },
   "stable": {
    "version": [
@@ -97003,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",
@@ -97078,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",
@@ -97157,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,
@@ -97212,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",
@@ -97243,11 +99931,11 @@
   "repo": "ideasman42/emacs-undo-fu",
   "unstable": {
    "version": [
-    20200413,
-    159
+    20200701,
+    1435
    ],
-   "commit": "0ce9ac36144e80316fff50bfe1bc5dd7e5e7ded6",
-   "sha256": "1mqm2z8bp5dx9f9xq6bpgvk8xmzmh71bgxbff6kcliv0jy3jlakb"
+   "commit": "c0806c1903c5a0e4c69b6615cdc3366470a9b8ca",
+   "sha256": "1n594aakmcgyl7qbda86v4wsx8clm62ypiv3h559xz3x72h7mr3j"
   }
  },
  {
@@ -97258,11 +99946,11 @@
   "repo": "ideasman42/emacs-undo-fu-session",
   "unstable": {
    "version": [
-    20200408,
-    11
+    20200517,
+    949
    ],
-   "commit": "b808ef0cdcdd2eef221c67eda567eed7fcb3d4af",
-   "sha256": "107dgdw1jh8mipgwal1g86nfckrpz2l53a1sqcg90nb0n8fkvy2q"
+   "commit": "e2043f8350970e1a9ef06a94956a733826cdf32b",
+   "sha256": "14qlrdal1z64cqqssa34cw1yzsppslgwwy23060sxgjz2vvwwwfb"
   }
  },
  {
@@ -97321,8 +100009,8 @@
     20200304,
     2218
    ],
-   "commit": "02c36a04364bcb586477ab79d2b5e0d4e6ae6d47",
-   "sha256": "0pp9ywxkvvfay2pblbqcknf2c3q5izig552r5zksmxbac1rlsvcm"
+   "commit": "6a3f9e929489ebac5aa26862363410144d84409e",
+   "sha256": "0jdk2r6jlynswjz047zz2v3dyfq94inf1zbsriq1b8fmia018gah"
   },
   "stable": {
    "version": [
@@ -97424,8 +100112,8 @@
   "repo": "rolandwalker/unicode-fonts",
   "unstable": {
    "version": [
-    20181001,
-    1509
+    20200803,
+    1335
    ],
    "deps": [
     "font-utils",
@@ -97434,8 +100122,8 @@
     "persistent-soft",
     "ucs-utils"
    ],
-   "commit": "7b88ae84e589f6c8b9386b2fb5a02ff4ccb91169",
-   "sha256": "07wzcfj92jiadgd6nj5rmxky2aiaxs89j7zywp877xdp4vv0v512"
+   "commit": "e3942fe40b418bfb2dc4e73633e09195437fef01",
+   "sha256": "1vyldpmbi92yqzj0v7wbxma86f3cla0jhxbmq8jzl94pqy6q98jc"
   },
   "stable": {
    "version": [
@@ -97455,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",
@@ -97585,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",
@@ -97654,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",
@@ -97717,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,
@@ -97857,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": [
@@ -97895,8 +100607,8 @@
     "key-chord",
     "use-package"
    ],
-   "commit": "c873d5529c9c80cb58222f22873a4f081c307cb2",
-   "sha256": "0jbq3w9ijsbl5gblhr24b0rh4gyp1xx696g20l438a7sbsk4b531"
+   "commit": "4fb1f9a68f1e7e7d614652afc017a6652fd029f1",
+   "sha256": "073sm0mbxcjysap2bjzf1cl0134jy8a0xig7ywmmd0bm2y8qzfip"
   },
   "stable": {
    "version": [
@@ -97957,8 +100669,8 @@
     "system-packages",
     "use-package"
    ],
-   "commit": "c873d5529c9c80cb58222f22873a4f081c307cb2",
-   "sha256": "0jbq3w9ijsbl5gblhr24b0rh4gyp1xx696g20l438a7sbsk4b531"
+   "commit": "4fb1f9a68f1e7e7d614652afc017a6652fd029f1",
+   "sha256": "073sm0mbxcjysap2bjzf1cl0134jy8a0xig7ywmmd0bm2y8qzfip"
   },
   "stable": {
    "version": [
@@ -98010,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"
   }
  },
  {
@@ -98043,17 +100755,17 @@
     20190715,
     1836
    ],
-   "commit": "471cb311159773bbb280d0f1a4b47c54456c67a9",
-   "sha256": "09hxi1v5wvb952rwfmj48n6ndxkqn8ciaqj1cd9xgkw62h54agq9"
+   "commit": "7bc5117d3449fc19f5c706a6decfdb2a30984507",
+   "sha256": "0fg1amarrwyfq76mv0w5z78qxs1x9vsvmzf7qzvnwh92n7lv6snb"
   },
   "stable": {
    "version": [
     2,
-    5,
+    6,
     0
    ],
-   "commit": "471cb311159773bbb280d0f1a4b47c54456c67a9",
-   "sha256": "09hxi1v5wvb952rwfmj48n6ndxkqn8ciaqj1cd9xgkw62h54agq9"
+   "commit": "df2447a63de2fea0f56d8c63d35b0bf39e11c0f2",
+   "sha256": "1g0s46p8c5kbv1kxvvj838g8hghqbkykv94q6zwy0d7q8ai1kqrq"
   }
  },
  {
@@ -98079,11 +100791,11 @@
   "repo": "kanru/uuidgen-el",
   "unstable": {
    "version": [
-    20200223,
-    509
+    20200816,
+    1308
    ],
-   "commit": "f096f35a6e1f27d2bc9e9093cd61dd97bc33f502",
-   "sha256": "1nzf7cllyvx7kwdzpf0nl3g5a8mn6qgifa60aw68h0sx9a80xp01"
+   "commit": "b50e6fef2de4199a8f207b46588c2cb3890ddd85",
+   "sha256": "08m74kj7h70kna3pifk3sgsy7mck11p32vi48h9wzqnafyq3n55d"
   },
   "stable": {
    "version": [
@@ -98095,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",
@@ -98319,20 +101050,19 @@
   "repo": "muffinmad/emacs-vc-hgcmd",
   "unstable": {
    "version": [
-    20191223,
-    1331
+    20200615,
+    1823
    ],
-   "commit": "8fc2e2c33334c9ff6d4c4d20a99d258e6cfdc567",
-   "sha256": "1bf9swaj49yx59c1yj96q5rj839535wz2d1ihj98an2chd5czjh4"
+   "commit": "5c735b3e3897b7ba52b5ac4e6a2f43ca283fd52d",
+   "sha256": "050xk0rs7k79ymchqdkdmgpg3s22wpbdnzl3pz2wsghihkskz6q1"
   },
   "stable": {
    "version": [
     1,
-    9,
-    4
+    12
    ],
-   "commit": "8fc2e2c33334c9ff6d4c4d20a99d258e6cfdc567",
-   "sha256": "1bf9swaj49yx59c1yj96q5rj839535wz2d1ihj98an2chd5czjh4"
+   "commit": "5c735b3e3897b7ba52b5ac4e6a2f43ca283fd52d",
+   "sha256": "050xk0rs7k79ymchqdkdmgpg3s22wpbdnzl3pz2wsghihkskz6q1"
   }
  },
  {
@@ -98436,11 +101166,11 @@
   "repo": "plapadoo/vdf-mode",
   "unstable": {
    "version": [
-    20191122,
-    823
+    20200713,
+    1838
    ],
-   "commit": "35f5c3531b256b6578b9878ac2ce1ed79b3c8511",
-   "sha256": "16650xwq85rp98z4nljd5s7f14fg4rr90nr7ipfshj1i6zvbk229"
+   "commit": "8fbf6157440345879a0543bcab233e790a7b60ee",
+   "sha256": "1m237py9jcxkm6z3wgsxzhikc3lidd28gfflcmr0wm588sdx48sl"
   },
   "stable": {
    "version": [
@@ -98657,6 +101387,25 @@
   }
  },
  {
+  "ename": "vega-view",
+  "commit": "3b97f1a40c63c1d819eb235e9c36e5dfe20015c1",
+  "sha256": "1j4hwd2amhmbqhx3kmc8y8c7hmrzvvnjklyxp9c6mgxg08qsy2qk",
+  "fetcher": "github",
+  "repo": "applied-science/emacs-vega-view",
+  "unstable": {
+   "version": [
+    20200520,
+    1202
+   ],
+   "deps": [
+    "cider",
+    "parseedn"
+   ],
+   "commit": "b0160c883f53ce069c0b4498880474c158ac7245",
+   "sha256": "1msc6s90a048lk4i8gqkhgnm1k52k40m62q9n1s0dwgmq1yj3zyl"
+  }
+ },
+ {
   "ename": "verb",
   "commit": "3802b91f39ef7800afd49589d398182cb191b756",
   "sha256": "12hskj4d7w43a8mjqqa535p02w778hi7lsxm47mh1xjiimibad3p",
@@ -98664,20 +101413,20 @@
   "repo": "federicotdn/verb",
   "unstable": {
    "version": [
-    20200404,
-    951
+    20200801,
+    2217
    ],
-   "commit": "82cf1bde07b0c96b25d1dd16268663d8931fbb60",
-   "sha256": "18pjsjxrf844y3aw0fvj451cz08kw2j3idmhh3l15aj3jdwzjfbq"
+   "commit": "f8755213c8fadea92b7a2313fb38c0ee37b8a2cc",
+   "sha256": "0f59rw78hfc7hkgd9ja2hzyb6gaf400aa6375zcl3zxh2ljnvbvb"
   },
   "stable": {
    "version": [
     2,
-    9,
+    12,
     0
    ],
-   "commit": "2c4252b2b57f65ebd9fd2c7a7771b4d0354f1d4c",
-   "sha256": "0g0hi1bhrx8bj0wbxwaimfpvl491sd079551199hcyhq607pcpp2"
+   "commit": "08ddce1306ad1b8707300fee33848b7a48897fd3",
+   "sha256": "1azwmqhlasir5fhy2r3yd861xvk6lxrzq60svvyjss3kdlqp1irj"
   }
  },
  {
@@ -98718,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",
@@ -98837,8 +101605,8 @@
     "helm-rg",
     "outshine"
    ],
-   "commit": "11645a398a11cdc4b84838294521ecfb229d7856",
-   "sha256": "00wqvszxsfyxx7pn9w5jn5brw2lx7d577zbc7sc4jz5nlk0csxd4"
+   "commit": "b5d1eec90bb43ba10178219245afbddb6601e85b",
+   "sha256": "1qfjwsxi3w2gdl258jbk5d3z645gs6zccxx2iah54zbgql17pgj9"
   },
   "stable": {
    "version": [
@@ -98970,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": [
@@ -99127,11 +101895,11 @@
   "repo": "joostkremers/visual-fill-column",
   "unstable": {
    "version": [
-    20200303,
-    2318
+    20200428,
+    816
    ],
-   "commit": "a19fbe8bcfab678516ffcaa84b516527a0ce45cf",
-   "sha256": "157f8d302vv7ds03y21j4rz5jvqbkm4639ak25zfhshd5lyacxyj"
+   "commit": "64d38bc1c00953be05c193c01332a633be67aac2",
+   "sha256": "1gkl2bg0ax16d3b17n7s3j5ng261jxfl6q3bi5bff03jph900x1p"
   },
   "stable": {
    "version": [
@@ -99249,11 +102017,11 @@
   "repo": "blak3mill3r/vmd-mode",
   "unstable": {
    "version": [
-    20190929,
-    735
+    20200727,
+    701
    ],
-   "commit": "aa9b753601ee1ed31b4f717629179ce7a2cacba5",
-   "sha256": "0gc1c5q1krqlbaq0lb7p29biwpl32lgv4c6527c322a21in6a5pb"
+   "commit": "31655a41caf006c3dd64d6e57f6c4488098f8bce",
+   "sha256": "1pnx977pm305kr0zakwy1wkdfpk09rilwx8rmai4459lyz0sa8j9"
   }
  },
  {
@@ -99314,11 +102082,11 @@
   "repo": "dbrock/volume.el",
   "unstable": {
    "version": [
-    20150718,
-    2009
+    20200523,
+    1246
    ],
-   "commit": "ecc1550b3c8b501d37e0f0116b54b535d15f90f6",
-   "sha256": "0ymibjq6iwab5ia1fglhz4gm5cnbi792018fmrabcqkisj2zsjb7"
+   "commit": "bd0ca8430098164740f111ac2bd2582d7f628b79",
+   "sha256": "0v8x9d0qq8gjlf6ydri580wix6hisf6x9pywg5px6cqj53r8g6rc"
   }
  },
  {
@@ -99332,8 +102100,8 @@
     20191209,
     1600
    ],
-   "commit": "d1f954a3879ec3f93c8dea9177772bf4d5bd0ecb",
-   "sha256": "13kfwp129wrlbbpvl9n4h7ybnycph68x214dx5v6v7ap6gnv0lr6"
+   "commit": "aea1ca9932df2c19a19e47f7971b7bc6b821181f",
+   "sha256": "0nk0vsxww46rrm1ijfpq58bn3zai7qmj2iqg1k8g14w7fc2si8mi"
   },
   "stable": {
    "version": [
@@ -99355,8 +102123,8 @@
     20191209,
     1600
    ],
-   "commit": "764f478f5866140b121b1e43857487b7a66afa72",
-   "sha256": "0s8fh7n8qhsfdk8l7r81ifscaazgmpls4n3pginaqb5cszdy4063"
+   "commit": "5c11a73bfc5f3873490ed0ba88eed44e4707e455",
+   "sha256": "1ifwm4dwmv4f97p1byv3l5k26gyb97zp60wjhrzrdj2g49fg716g"
   },
   "stable": {
    "version": [
@@ -99383,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",
@@ -99405,11 +102197,11 @@
   "repo": "akermu/emacs-libvterm",
   "unstable": {
    "version": [
-    20200418,
-    1610
+    20200813,
+    1748
    ],
-   "commit": "0b04d31e2f0daf45452da2c5e214d2b42cd46a46",
-   "sha256": "1bdbr1hpzipxk41wx4qyvr2rkk4q4j8qnc09gd51wak7n4w3xz48"
+   "commit": "797357bf65952337627f2d0c594c2fef600aafae",
+   "sha256": "0lqlx97kb1mpw17lmrx2xa407ixn3wl2cv9rdwrvlrlvg8kcpjmn"
   }
  },
  {
@@ -99420,14 +102212,15 @@
   "repo": "jixiuf/vterm-toggle",
   "unstable": {
    "version": [
-    20200402,
-    1516
+    20200614,
+    1452
    ],
    "deps": [
+    "projectile",
     "vterm"
    ],
-   "commit": "15901e1e1eebd957ef18d38c920f944558ebd4fb",
-   "sha256": "1dcr242i9r7r4mr43qfv5ij254dnhf04gfi71y507zfpdr17zdix"
+   "commit": "7f762d216fc7311bac4182f650e0207574c29357",
+   "sha256": "0nz3qcd2jmjfky0xn62fkhnxchf9nap3li5blis0jgi6igj47ykq"
   }
  },
  {
@@ -99496,8 +102289,8 @@
   "repo": "mihaiolteanu/vuiet",
   "unstable": {
    "version": [
-    20200424,
-    1400
+    20200616,
+    1136
    ],
    "deps": [
     "bind-key",
@@ -99506,8 +102299,8 @@
     "s",
     "versuri"
    ],
-   "commit": "5da06a8acebcaf84a3581610ff24aae1b46f786b",
-   "sha256": "16yfnqpdzi3bih16d7dzbqmd30m7w8rkjylnsg9m951vc0lysk3p"
+   "commit": "3dab1ea2253d5bc2974a1a064d2b1af3bd6b24f6",
+   "sha256": "1q1rcnsda1392kqh944hdj30d79300ycl46ck1bzx4szx3m3p801"
   },
   "stable": {
    "version": [
@@ -99570,11 +102363,11 @@
   "repo": "emacs-w3m/emacs-w3m",
   "unstable": {
    "version": [
-    20200325,
-    2226
+    20200818,
+    141
    ],
-   "commit": "e522a44b151d69d4a176e8809225598ab540fc4d",
-   "sha256": "1alishzz4j1hbfyfi09rkhffx6gv16yxln7q8jx25shb9rssivyz"
+   "commit": "7dcbab77334c5adf8309c7a93512c9f95a2c64e4",
+   "sha256": "0in8ir99b33d83nfxsnpj2dgyv4f558yrid77bp7f9k0qpgpj4zk"
   }
  },
  {
@@ -99647,11 +102440,11 @@
   "repo": "wakatime/wakatime-mode",
   "unstable": {
    "version": [
-    20180920,
-    702
+    20200730,
+    240
    ],
-   "commit": "2531cb58287770883ba534d20b3288955c4d6ef3",
-   "sha256": "12wa845lwvwg38801mk880izfhjs50ssy5alj1743c2bz7ig5grk"
+   "commit": "7626678315918bdbb81ede68149f20a7d97a928f",
+   "sha256": "0dlhj32mkylji1d55pc593d3gn8babcs6s4c0c5sfm6jfz14m9j0"
   }
  },
  {
@@ -99662,11 +102455,11 @@
   "repo": "darkstego/wakib-keys",
   "unstable": {
    "version": [
-    20200326,
-    2329
+    20200430,
+    2155
    ],
-   "commit": "7564b39aaa2b38ccca0a21bc72a797f065a0b171",
-   "sha256": "132jwf1d54ykbvw4f9f7i27ig5hpc6wsmm1ib44m5hx1kv1kxvh6"
+   "commit": "d958150c053dae57445be37cda1c2b50efcbaac3",
+   "sha256": "0fbh10yjva3bfpl76ddsnspzlpmbxj1azr3p4n2z0az75xx24wsa"
   }
  },
  {
@@ -100048,18 +102841,18 @@
   "repo": "fxbois/web-mode",
   "unstable": {
    "version": [
-    20200424,
-    1153
+    20200612,
+    1038
    ],
-   "commit": "6774c596a9b3988989d3bc96b6194e6f0df1d1b6",
-   "sha256": "1kv06qjcjxy5jw68za5bkmj4kwzc1snlxd7nahcy29rjkiczlh9c"
+   "commit": "60ffd878c4371644bd964f00fea38054645e3e47",
+   "sha256": "0la14k422jqcny1bxgvv8yidanl3pv5kkdfbiwq8skxsd6m2xfq5"
   },
   "stable": {
    "version": [
-    16
+    17
    ],
-   "commit": "3ff506aae50a47b277f2b95ff7b7a7c596664e6a",
-   "sha256": "17dw6a8d0p304f2sa4f9zwd8r48w2wbkc3fvbmxwlg4w12h7cwf0"
+   "commit": "d115f8dc3052e5779938d782d9cdaa4533ef20ff",
+   "sha256": "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"
   }
  },
  {
@@ -100192,28 +102985,28 @@
   "repo": "etu/webpaste.el",
   "unstable": {
    "version": [
-    20200416,
-    1007
+    20200503,
+    1919
    ],
    "deps": [
     "cl-lib",
     "request"
    ],
-   "commit": "7a3060266459566e450c5cafc00bc90c6508eae5",
-   "sha256": "064lihjd6bddvlick8md1anhinkc88asvliw0z34c8bckxc3hqpr"
+   "commit": "5e963e8ef17e937745b8f3b64f29690290c7a5c0",
+   "sha256": "1i9scalpinp87wnapgpdw51p1q0y9wjf6nv4jbskzn7irvlkhhzx"
   },
   "stable": {
    "version": [
     3,
     1,
-    0
+    1
    ],
    "deps": [
     "cl-lib",
     "request"
    ],
-   "commit": "7a3060266459566e450c5cafc00bc90c6508eae5",
-   "sha256": "064lihjd6bddvlick8md1anhinkc88asvliw0z34c8bckxc3hqpr"
+   "commit": "5e963e8ef17e937745b8f3b64f29690290c7a5c0",
+   "sha256": "1i9scalpinp87wnapgpdw51p1q0y9wjf6nv4jbskzn7irvlkhhzx"
   }
  },
  {
@@ -100230,8 +103023,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "078f83902c0846c00ed8e3b6c5add7ff9b98d8f9",
-   "sha256": "11nacz0vvhaa8582r0ylx5w886y2qysbvrh9s064g979vjyfh9rg"
+   "commit": "5aaf9d12068f98fb4efa772a3e5f4bb350b79a99",
+   "sha256": "13qwvjid9d67kk4ggvc2hvm6j4wy1jassd02krp8as91h5hr0y36"
   },
   "stable": {
    "version": [
@@ -100341,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",
@@ -100351,8 +103159,8 @@
     20200217,
     1030
    ],
-   "commit": "5977b8e00051c9003ca96e9d35133e0dea68db2c",
-   "sha256": "0b6g8x9lzx4kr39h17g5impyvq1240iylk68jl55wamnb506gm4j"
+   "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
+   "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
   },
   "stable": {
    "version": [
@@ -100378,8 +103186,8 @@
    "deps": [
     "wgrep"
    ],
-   "commit": "5977b8e00051c9003ca96e9d35133e0dea68db2c",
-   "sha256": "0b6g8x9lzx4kr39h17g5impyvq1240iylk68jl55wamnb506gm4j"
+   "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
+   "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
   },
   "stable": {
    "version": [
@@ -100408,8 +103216,8 @@
    "deps": [
     "wgrep"
    ],
-   "commit": "5977b8e00051c9003ca96e9d35133e0dea68db2c",
-   "sha256": "0b6g8x9lzx4kr39h17g5impyvq1240iylk68jl55wamnb506gm4j"
+   "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
+   "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
   },
   "stable": {
    "version": [
@@ -100438,8 +103246,8 @@
    "deps": [
     "wgrep"
    ],
-   "commit": "5977b8e00051c9003ca96e9d35133e0dea68db2c",
-   "sha256": "0b6g8x9lzx4kr39h17g5impyvq1240iylk68jl55wamnb506gm4j"
+   "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
+   "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
   },
   "stable": {
    "version": [
@@ -100468,8 +103276,8 @@
    "deps": [
     "wgrep"
    ],
-   "commit": "5977b8e00051c9003ca96e9d35133e0dea68db2c",
-   "sha256": "0b6g8x9lzx4kr39h17g5impyvq1240iylk68jl55wamnb506gm4j"
+   "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
+   "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
   },
   "stable": {
    "version": [
@@ -100507,11 +103315,11 @@
   "repo": "justbur/emacs-which-key",
   "unstable": {
    "version": [
-    20200216,
-    1350
+    20200817,
+    2358
    ],
-   "commit": "8b49ae978cceca65967f3544c236f32964ddbed0",
-   "sha256": "15ydzqv23m1w6g27il57fmzs6pjcasdb7drml3msjpq2l8kr4ard"
+   "commit": "e48e190a75a0c176e1deac218b891e77792d6921",
+   "sha256": "1wr5lqjc5si0s0rn266jxfwln93l7aw79885w66gbjcynfy8rji3"
   },
   "stable": {
    "version": [
@@ -100625,8 +103433,8 @@
     20200304,
     2227
    ],
-   "commit": "5fac49636cd72a0043e2473c9a09a788cfd68d5f",
-   "sha256": "0myx8vayakmhb5hbrskk58rkb1f0jdw7kinvk8fvv73g050yk28d"
+   "commit": "c344cfd78df23980ee48fb85fbc16989b7d4cffe",
+   "sha256": "1jwz89j6v8mmdim8knnwjz2ip0cwn5lq6x8nz78xns1ba5fg293b"
   },
   "stable": {
    "version": [
@@ -100669,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"
   }
  },
  {
@@ -100695,8 +103503,8 @@
     20200305,
     221
    ],
-   "commit": "71f84725e2643b2ee74f27c60c4fd8b79c9c3c97",
-   "sha256": "1rs446cwbp6i79wi7srzaxg9hdahagcjkjill34j70hdy1r4xjas"
+   "commit": "9791ae59f8bd8b9375d2dede92de8eba5f0d89fb",
+   "sha256": "0fk2nhcjkwrni8np8788z9aanrj1hxchg37a1j1z9ds42f0ghj6h"
   },
   "stable": {
    "version": [
@@ -100763,8 +103571,8 @@
     "makey",
     "s"
    ],
-   "commit": "79098cd4cdfa144807cb710af4589c13a7033842",
-   "sha256": "04gfhjpn4q8d4y6177gdffwjbqq627083pff2ckw79pbvlj9f2mm"
+   "commit": "a0d8456b9f71fcb40a28ec9235132df506aa6ecc",
+   "sha256": "1bndpdzscb917sp32khmifk7vdkj4psh7c8rf4j5s5zs7033qwka"
   }
  },
  {
@@ -101012,11 +103820,11 @@
   "repo": "Javyre/winds.el",
   "unstable": {
    "version": [
-    20200425,
-    1643
+    20200501,
+    419
    ],
-   "commit": "a998e9397836f441d51f3c8d001dd407258a0ff5",
-   "sha256": "1qgkm1fl21r56gbsvwmld8mdf970zwjsj68qdpsa9m0j4kbw9m9c"
+   "commit": "720a0cedfdc20940f4c740e74fa0e16983cb0367",
+   "sha256": "00s0c2ilmypygqlrfa0ajig25h5jijxwwzpcfxgwbjf71wn5g9mg"
   }
  },
  {
@@ -101043,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",
@@ -101147,21 +103978,6 @@
   }
  },
  {
-  "ename": "wisp-mode",
-  "commit": "5b7972602399f9df9139cff177e38653bb0f43ed",
-  "sha256": "10zkp1qbvl8dmxij7zz4p1fixs3891xr1nr57vyb3llar9fgzglc",
-  "fetcher": "bitbucket",
-  "repo": "ArneBab/wisp",
-  "unstable": {
-   "version": [
-    20191114,
-    2340
-   ],
-   "commit": "33b4fcdd8a17aa19d57971e4f6db5fcb7758843c",
-   "sha256": "09rrv89b17s4sklkqgci1pmzlnkjlrira22884dh10sbfij42vbp"
-  }
- },
- {
   "ename": "wispjs-mode",
   "commit": "a628330ee8deeab2bd5c2d4b61b33f119c4549d8",
   "sha256": "0qzm0dcvjndasnbqpkdc56f1qv66gxv8dfgfcwq5l1bp5wyx813p",
@@ -101199,26 +104015,26 @@
   "repo": "magit/with-editor",
   "unstable": {
    "version": [
-    20200217,
-    1015
+    20200720,
+    2014
    ],
    "deps": [
     "async"
    ],
-   "commit": "4fe66d4d55c8eacebda53a13cc38e01d32bdaaa2",
-   "sha256": "1lyjrh1vddnf8v4i6g05bfx1kq8angbdhyh5v3j0d27gb66cshxp"
+   "commit": "efafd482c21b90decbb0b682ed3159c86014d4f3",
+   "sha256": "1z3214zjf3dassb31k14gq4nbr3q8g5x87ydfah28hm4j08v0wb3"
   },
   "stable": {
    "version": [
     2,
     9,
-    1
+    4
    ],
    "deps": [
     "async"
    ],
-   "commit": "7e0bf753709f1775d2bbbb6edf4482fca7fd286a",
-   "sha256": "1y4zrgsfs0504ks30qb7hl32ygd3hb6yx5x8032b30j7rh5ks29d"
+   "commit": "efafd482c21b90decbb0b682ed3159c86014d4f3",
+   "sha256": "1z3214zjf3dassb31k14gq4nbr3q8g5x87ydfah28hm4j08v0wb3"
   }
  },
  {
@@ -101263,11 +104079,11 @@
   "repo": "twlz0ne/with-proxy.el",
   "unstable": {
    "version": [
-    20190920,
-    24
+    20200510,
+    414
    ],
-   "commit": "a7506af86ffc943f5d4cba712ec661125799c30b",
-   "sha256": "1nxssc8xn8i2zf9bs9rv61im3jxi38lq1ph9qr0hazwncndcsb39"
+   "commit": "93b1ed2f3060f305009fa71f4fb5bb10173a10e3",
+   "sha256": "15cwpg1s563pw44f8vr96w31hbpix9jd3736hd5546a79ymq5vz3"
   }
  },
  {
@@ -101278,26 +104094,26 @@
   "repo": "p3r7/with-shell-interpreter",
   "unstable": {
    "version": [
-    20200419,
-    850
+    20200527,
+    828
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "ffd9c6a3a058fe072458f90e117590988042c662",
-   "sha256": "194k0j6mg8dh5z5ia204glicbmy2laxyny7snbvf7b6xd9ajmj3w"
+   "commit": "f8a01beda6260bd2eff3f9fe154ddc16da7b6504",
+   "sha256": "1xwmg85211s6fvc9agb8ib06klbk6cn890gpjq33bns6ldjsq41s"
   },
   "stable": {
    "version": [
     0,
-    1,
-    0
+    2,
+    3
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "92549f9f80067ce32248ad2c05649673d2084fcf",
-   "sha256": "1dip0d5llr6sjisww283051s21ir8d5nzjdh22k3fjnz68mqq63s"
+   "commit": "eb2b629c885ca002b7225e20d03231835910d6be",
+   "sha256": "0b6z516lwcl08gnhlw99z9sdw15qxk3kanicpp0l0hcbmzann46k"
   }
  },
  {
@@ -101308,11 +104124,11 @@
   "repo": "DarwinAwardWinner/with-simulated-input",
   "unstable": {
    "version": [
-    20200215,
-    1807
+    20200509,
+    2010
    ],
-   "commit": "29173588751eeb33d2392d380b26648b2e213438",
-   "sha256": "0qmcv1ks3cnvl7l6cmbl5a03irwp38zfc98rzp9hbd3xw7rh970b"
+   "commit": "0d5e910f19657ab376f72e5848be50d13d3b8e50",
+   "sha256": "1ksm11k8gxkjn9byacy08xrz91gvzyf7fjnxv7j5ffpsccbh0wg3"
   },
   "stable": {
    "version": [
@@ -101579,32 +104395,26 @@
   "repo": "pashinin/workgroups2",
   "unstable": {
    "version": [
-    20141102,
-    1922
+    20200729,
+    852
    ],
    "deps": [
-    "anaphora",
-    "cl-lib",
-    "dash",
-    "f"
+    "dash"
    ],
-   "commit": "bbefbb2579d463b243dcd4ecbfce82e1bdac3882",
-   "sha256": "0md6i2sawrzqza2br1g11zhhrda286abhlx0v9pgf65mafc4ilwi"
+   "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"
   }
  },
  {
@@ -101722,14 +104532,14 @@
   "repo": "joostkremers/writeroom-mode",
   "unstable": {
    "version": [
-    20200409,
-    1927
+    20200519,
+    37
    ],
    "deps": [
     "visual-fill-column"
    ],
-   "commit": "9b6e55fe49ab7760a826179df4f1c3b6c9a759df",
-   "sha256": "0kf88big78lnc2gxn00sykwi1ky4hacr7al2ihgwpznq9vbrj3p1"
+   "commit": "8a226a31a12a9203067094774ba6fd6175793e70",
+   "sha256": "1wb8lkza1a6yfgpwqlc78iq7b5hamss9lak2alwmp9j9aiwys1n0"
   },
   "stable": {
    "version": [
@@ -101828,20 +104638,20 @@
   "repo": "redguardtoo/wucuo",
   "unstable": {
    "version": [
-    20200421,
-    441
+    20200710,
+    932
    ],
-   "commit": "2b7632813fdbbfe5abddf7ce425dea607c9946cc",
-   "sha256": "1h3d7qqajwl9zm5j77y5s3s9sq0hpdakbapsd34xg2x87v0p1320"
+   "commit": "54143769dbea06d34792687eadbc6c7a1cd89ea2",
+   "sha256": "1a6jy8vixc6ls6cjwxjy3ifmiw8xw3c0kfichgd1b6v20xqdvhh3"
   },
   "stable": {
    "version": [
     0,
-    1,
-    0
+    2,
+    6
    ],
-   "commit": "2b7632813fdbbfe5abddf7ce425dea607c9946cc",
-   "sha256": "1h3d7qqajwl9zm5j77y5s3s9sq0hpdakbapsd34xg2x87v0p1320"
+   "commit": "54143769dbea06d34792687eadbc6c7a1cd89ea2",
+   "sha256": "1a6jy8vixc6ls6cjwxjy3ifmiw8xw3c0kfichgd1b6v20xqdvhh3"
   }
  },
  {
@@ -101952,11 +104762,11 @@
   "repo": "xahlee/xah-css-mode",
   "unstable": {
    "version": [
-    20200309,
-    1750
+    20200627,
+    1652
    ],
-   "commit": "43dbab2b8c35bd6892fe80bf064b41bd731545ff",
-   "sha256": "0m6l2k22pfcp6s3dadm3w1mr7ar590xl64zjsr0dl9d8spc6gbz1"
+   "commit": "98e550db52865d6de141d5bbb85f8b4e68b56b39",
+   "sha256": "0km4b9praqpkv4n6sixmxjfvisp5640zyd1x85q43vkxrm39p7ah"
   }
  },
  {
@@ -101967,11 +104777,11 @@
   "repo": "xahlee/xah-elisp-mode",
   "unstable": {
    "version": [
-    20190125,
-    646
+    20200719,
+    1648
    ],
-   "commit": "a09c51e450bf4b39bdc3f4063c2946baec7ae3b1",
-   "sha256": "0hpdm6qns2i5zpavqq6zd7dyl9lxsxyic52jzjfisqv3gjrz8zpp"
+   "commit": "a051862622c56b7cad2057a95d8201ab38b50752",
+   "sha256": "00kan9rb133mf11qq0grdkph6ghv0hgwvdx3b21890mad20zmk1w"
   }
  },
  {
@@ -101997,11 +104807,11 @@
   "repo": "xahlee/xah-fly-keys",
   "unstable": {
    "version": [
-    20200424,
-    2358
+    20200707,
+    1310
    ],
-   "commit": "b0d87ab312a51ab8484deb8994e4effb3112d516",
-   "sha256": "1ivlcxm423syd35njrpnswdra3f30fqsfr6qdffiy6vajy0ykda7"
+   "commit": "8c9c4df25e1406b093a32c87da19803337e4e09c",
+   "sha256": "10d1xvyd2mbvhmlf1x5snqn4d22xg0p53nq601s8b4f1gws6zs59"
   }
  },
  {
@@ -102096,17 +104906,17 @@
  },
  {
   "ename": "xbm-life",
-  "commit": "6cb4c55583338dafee61fd9c266d2ee7cae2b1ed",
-  "sha256": "1pglxjd4cs630sayx17ai1xflpbyj3hry3156682bgwhqs1vw68q",
-  "fetcher": "github",
-  "repo": "wasamasa/xbm-life",
+  "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+  "sha256": "02jhcz71ldb6gar3jw13w6m6prz6hv6gccacgmp40bg6cglf3czf",
+  "fetcher": "git",
+  "url": "https://depp.brause.cc/xbm-life.git",
   "unstable": {
    "version": [
-    20160103,
-    1017
+    20200506,
+    1217
    ],
-   "commit": "dd6a98ac9ea81b681e68f6318fed47158e5d469e",
-   "sha256": "08hzsqf4gawcr9q2h3rxrf1igvdja84aaa821657k04kdq4dpcbj"
+   "commit": "311ef62438c4ab057c054fcdda4dbfa5980759b5",
+   "sha256": "1h8s5wiib9hb9bgqr3r5abpib9m61aa2pwiy3isjs5fkacvvxi9l"
   },
   "stable": {
    "version": [
@@ -102146,11 +104956,11 @@
   "repo": "nhojb/xcode-project",
   "unstable": {
    "version": [
-    20181025,
-    1244
+    20200810,
+    2010
    ],
-   "commit": "0bf9a4230fab7830350c750c39beda99ef74d72f",
-   "sha256": "0746f2niclmlx90skvdb1xdac0nqj8a9pd9ap8n89ckb5r6f9hbg"
+   "commit": "11743f0a2212c840a108e1b905b1f20afcff8156",
+   "sha256": "1vj1xshdsff5xrgmp6c46q2ipglq4wy25mq51rnhv57f0r1wq62n"
   },
   "stable": {
    "version": [
@@ -102186,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",
@@ -102279,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,
@@ -102295,10 +105129,10 @@
    "version": [
     1,
     6,
-    12
+    13
    ],
-   "commit": "0ab093d60140d19e31d217c8abdc7dbdac944486",
-   "sha256": "0g52bmamcd54acyk6i47ar5jawad6ycvm9g656inb994wprnjin9"
+   "commit": "8f624f8b964e9145acb504e4457c9510e87dd93c",
+   "sha256": "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"
   }
  },
  {
@@ -102332,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"
   }
  },
  {
@@ -102480,22 +105314,19 @@
   "repo": "atomontage/xterm-color",
   "unstable": {
    "version": [
-    20200424,
-    2025
+    20200605,
+    2017
    ],
-   "commit": "c389016e029c279c81fe4c0e1d757949b5ef36c0",
-   "sha256": "16lpjbb49f465h36x22ch84133d0ihbqpfhjh46sncpj22ddj8pl"
+   "commit": "b9b1f84fb10fff5261702e38bf15b3ae75a4b6bb",
+   "sha256": "0mb5a1g7sby3v4gaqgg9w3lr5albd99mj3kd2bgga7h7kbcjfp5a"
   },
   "stable": {
    "version": [
-    1,
-    9
-   ],
-   "deps": [
-    "cl-lib"
+    2,
+    0
    ],
-   "commit": "44e6df835bd4173ee4ccc7e29842e9dae76f2668",
-   "sha256": "0i9ivc5xhl5y5v0l18kbhfg8s2abb9zaimyx951b8bc0f5as68xm"
+   "commit": "137dfecedfdf6aff69b0f9b1c299aa0ae868fca0",
+   "sha256": "127lq50q62x06kd1xrf8lyc4rkqbfhfy86gsx1x4x169am2xk397"
   }
  },
  {
@@ -102563,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",
@@ -102690,11 +105544,11 @@
   "repo": "drdv/yahtzee",
   "unstable": {
    "version": [
-    20171022,
-    1412
+    20200511,
+    2005
    ],
-   "commit": "e844b662819344eb726f67e525f377b9ee808b24",
-   "sha256": "0d8c70bip8wxpnjqhqf33kq4q2lb2qdk9w2a4bp2v707fpr4pv73"
+   "commit": "63b9b698fbb547603c3f66932c6d3e3bb217c443",
+   "sha256": "0v0lp2n0xdxfiasr3lcydj9q4krfvzqi568iyngq6zxlryc75wi0"
   }
  },
  {
@@ -102750,11 +105604,11 @@
   "repo": "yoshiki/yaml-mode",
   "unstable": {
    "version": [
-    20191127,
-    2314
+    20200725,
+    1836
    ],
-   "commit": "cecf4b106b0c4236931b14919fdf87ff3546e2c9",
-   "sha256": "10dz6zz5mhf09wnhqag93zvdcnh6zyizpsdj189jgza58dq2vp1v"
+   "commit": "68fecb5f0dec712a10c8655df6881392a4613617",
+   "sha256": "11lasdsray1cy01m4yiklin2apgfk2bac93m2ii88vjlv6b6vv04"
   },
   "stable": {
    "version": [
@@ -102954,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"
   }
  },
  {
@@ -102984,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": [
@@ -103014,14 +105868,14 @@
   "repo": "leanprover-community/yasnippet-lean",
   "unstable": {
    "version": [
-    20190922,
-    2037
+    20200526,
+    326
    ],
    "deps": [
     "yasnippet"
    ],
-   "commit": "9119be08a32286d3e8559138e8ae003856ae1c0a",
-   "sha256": "1q06c574zn0ibbb3zbgi59zxj17i7kyjkcz45sj5h7hbn9l81594"
+   "commit": "e0933f55d59da5425d0604bdcdbbf3cb85967563",
+   "sha256": "0h64h47qdv3c20g9hlys2xb4w2jby7pdfhaza52y48wayz6vhpnx"
   }
  },
  {
@@ -103032,25 +105886,27 @@
   "repo": "AndreaCrotti/yasnippet-snippets",
   "unstable": {
    "version": [
-    20200425,
-    1210
+    20200802,
+    1658
    ],
    "deps": [
+    "s",
     "yasnippet"
    ],
-   "commit": "937cb7bb1921db38ab2c0c62062e8e32a29eabed",
-   "sha256": "03v855gbr6ii21qw4h8whbzj88xi28sqpnz1yqd1a7ngrc149fgz"
+   "commit": "b83c0f2f3bd068aa93c8f4c0c07f0b0a137d9cda",
+   "sha256": "0j1955y6gc3ddv783pd9kx834vvicpdsj49smkkpk4rj4s7pfxkz"
   },
   "stable": {
    "version": [
     0,
-    22
+    23
    ],
    "deps": [
+    "s",
     "yasnippet"
    ],
-   "commit": "e51a259527d685fe767b6ec951ad1940b1131a69",
-   "sha256": "1xcmx0frialb86z5adi07b6skqks326w3v1xn49c54gxim027i5d"
+   "commit": "e5ebfcdb38eb79a6d6705107d07f7bab2e2b5c38",
+   "sha256": "18pcnjnqvcky6i49p38vy3ms5xiisn27vy47pc3vsgr3r2n87mqb"
   }
  },
  {
@@ -103061,14 +105917,14 @@
   "repo": "mineo/yatemplate",
   "unstable": {
    "version": [
-    20200108,
-    2102
+    20200625,
+    1336
    ],
    "deps": [
     "yasnippet"
    ],
-   "commit": "bfee45cfc179d6b7fbc3ff06c9f79b76dc7fbf58",
-   "sha256": "0h2fc9vjwb94n3nklq35s3dy9i4ihrqffp2556cmsaq7gzlipb81"
+   "commit": "23865adaee824db44acec8a4366ce2f29dd2e978",
+   "sha256": "0ri0kw70yy6mm17drpw5sifscaan3f32fj3xapa0hbz5jxrs9cr9"
   },
   "stable": {
    "version": [
@@ -103282,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,
@@ -103328,8 +106203,8 @@
   "repo": "xuchunyang/youdao-dictionary.el",
   "unstable": {
    "version": [
-    20191227,
-    242
+    20200722,
+    1705
    ],
    "deps": [
     "chinese-word-at-point",
@@ -103337,8 +106212,8 @@
     "popup",
     "pos-tip"
    ],
-   "commit": "a745e3197cf3498244265efab8e1cc1f4fedcddc",
-   "sha256": "0b74crwlslvl4hvjai6a5cphxy9rjnlkhjdlfprqf7s1ygycy1m0"
+   "commit": "8a4815a43565b9bfd257246e4895b8bfafb9d573",
+   "sha256": "0h8hgq76ja3fjrn8vsndkzvns4ar13qsydcrqjsj77jqw9kx9a43"
   },
   "stable": {
    "version": [
@@ -103355,6 +106230,55 @@
   }
  },
  {
+  "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": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "0xafyxqps4dp44b4jmm69fa5d24df3fkyim7wa9ddgxkcqfl3mpx",
+  "fetcher": "github",
+  "repo": "gRastello/ytel",
+  "unstable": {
+   "version": [
+    20200725,
+    1056
+   ],
+   "commit": "d80c7964ec66589d5580fc13773e94f1834ab76f",
+   "sha256": "124pvj39lcv3dfz2m42qyydyab0xk6c5da54ffhrqbg8vri34w9w"
+  }
+ },
+ {
   "ename": "z3-mode",
   "commit": "e056fb14b46b97ff31b1db3b8bd31e395a54cd87",
   "sha256": "183lzhgjj480ca2939za3rlnsbfn24mgi501n66h5wim950v7vgd",
@@ -103440,11 +106364,20 @@
   "repo": "zenlang/zen-mode",
   "unstable": {
    "version": [
-    20191224,
-    706
+    20200609,
+    822
    ],
-   "commit": "3d34bce20c1d7d35b99916672ea0dd67a96c7716",
-   "sha256": "1ykc58imkrhk4ib8mdgs7q7qrjbj84bm0rgfpgqk0dkfy16daj2q"
+   "commit": "c1b1806358f3cce6c04b30699987d82dc7d42559",
+   "sha256": "1ikny9lxvg8whcl2x0gmr31fdv93vwf53niqr11cx93bfsvs4a9z"
+  },
+  "stable": {
+   "version": [
+    0,
+    8,
+    20200609
+   ],
+   "commit": "c1b1806358f3cce6c04b30699987d82dc7d42559",
+   "sha256": "1ikny9lxvg8whcl2x0gmr31fdv93vwf53niqr11cx93bfsvs4a9z"
   }
  },
  {
@@ -103455,11 +106388,11 @@
   "repo": "bbatsov/zenburn-emacs",
   "unstable": {
    "version": [
-    20200305,
-    737
+    20200701,
+    1333
    ],
-   "commit": "7dd796840376342426f60018a6cf209228452f3e",
-   "sha256": "0zzg95sifg6ybh3ava67z688fycklqragkr3baxlhl2jfnwsps2l"
+   "commit": "c09dbd9a36bbc0062b90be182f2b4cac64128cee",
+   "sha256": "0lr73kghsi1f5awhgsbvh4snkbdkkpjn5bwf6s6ypbybmjf6kjxd"
   },
   "stable": {
    "version": [
@@ -103608,20 +106541,21 @@
  },
  {
   "ename": "zetteldeft",
-  "commit": "c643adaf73e8324092874887636cdf0365c481ee",
-  "sha256": "1vd70mrwn9cfalmiv97ja79hbdmyl5bm9cqsz5c276gk6v6pzvpc",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "05l2ljip5n9pcpcc1qm4m6ii86xs3dk94an1cigiw5is4qi8rhpl",
   "fetcher": "github",
-  "repo": "efls/zetteldeft",
+  "repo": "EFLS/zetteldeft",
   "unstable": {
    "version": [
-    20200415,
-    1614
+    20200812,
+    2159
    ],
    "deps": [
+    "ace-window",
     "deft"
    ],
-   "commit": "cba7554afe740f64adcdc615b5f4ab0e1e47c6a1",
-   "sha256": "1b1bqz02xh19syyv9w64q9msay84kpq3kkmpdqy8i7mvhsd4cdry"
+   "commit": "2c4ddbf3e30e2f3ae6e877e08fd824b325fa7a62",
+   "sha256": "029fh32d2vilxlqs5jl3wc907ykxdkv36jjfzappyghd1qkp0iyi"
   },
   "stable": {
    "version": [
@@ -103636,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",
@@ -103643,11 +106609,11 @@
   "repo": "ziglang/zig-mode",
   "unstable": {
    "version": [
-    20200322,
-    131
+    20200713,
+    407
    ],
-   "commit": "fc7fde327f45533bb73be643e7bda1eda10394b6",
-   "sha256": "1ld34xs25bysxw9ialrlm6pnp5qbzx94zbb3594ghc2ggz5ph5d5"
+   "commit": "d88580913586b8749ed0ac3ae228e825a68f9412",
+   "sha256": "0r3cn6yxs013080il91x9b6fyx84bx3vzv7vkyr8npc2cz46klxs"
   }
  },
  {
@@ -103673,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",
@@ -103784,20 +106768,20 @@
  },
  {
   "ename": "zone-nyan",
-  "commit": "855ea20024b606314f8590129259747cac0bcc97",
-  "sha256": "1g7i5p26gb9gny64b84x6zqml7fly5q9aykmc6l6c1kfl6pqxs94",
-  "fetcher": "github",
-  "repo": "wasamasa/zone-nyan",
+  "commit": "20b2cc78b41a26e434b984943681fea774fd3c50",
+  "sha256": "12k55m9fxkvx57n99dynpdsx391z8pzd6cjm4bqarf88bhv7f72p",
+  "fetcher": "git",
+  "url": "https://depp.brause.cc/zone-nyan.git",
   "unstable": {
    "version": [
-    20170818,
-    1644
+    20200506,
+    1207
    ],
    "deps": [
     "esxml"
    ],
-   "commit": "4b1f8d95f130946718d52806489ffe2762aebfdc",
-   "sha256": "1axq4ch7garlfrybq9kgv6x7d8y4dw5y9pqbqlqvlwf4xmdrvzmm"
+   "commit": "48625814f42c39521405d08009e1d44108d880ac",
+   "sha256": "1ii7w9y357l2467733wy7nnpikpdacjfj9bp2a54nq8h60gfr661"
   },
   "stable": {
    "version": [
@@ -103868,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"
   }
  },
  {
@@ -103937,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",
@@ -104079,11 +107045,11 @@
   "repo": "pesterhazy/zprint-mode.el",
   "unstable": {
    "version": [
-    20191130,
-    1829
+    20200731,
+    1238
    ],
-   "commit": "4d0dd23b40155618181d9d1e4c82849e0d73b659",
-   "sha256": "0im63h7ang7zypzbf45k5pxz11svyyk8pab9d4qg9jsb7bz9v7k0"
+   "commit": "b9b72b4918156f2f44aa544be9e19ea391937c2a",
+   "sha256": "1jvk8g8qc83y6pmklk403mikl6q3s6gls60fyw07p8f3kvhgfxzi"
   }
  },
  {
@@ -104158,8 +107124,8 @@
     "avy",
     "cl-lib"
    ],
-   "commit": "09613d53e1e6e7c58102fb8812bbef2121d57026",
-   "sha256": "1rfi7gp5z2lm71qrf9akkn8iiiv297i1mqkvwyv7vlhx5vk21r4s"
+   "commit": "b0a50b8cb6925c3184405f81be9ef9be9da69f09",
+   "sha256": "003rg7x1vfv946j1m6yalzsgr88wvm3443pqf9yqwnzl2a3djq0g"
   },
   "stable": {
    "version": [
diff --git a/pkgs/applications/editors/emacs-modes/update-from-overlay b/pkgs/applications/editors/emacs-modes/update-from-overlay
index 26d2482e7ae..fc5657e4419 100755
--- a/pkgs/applications/editors/emacs-modes/update-from-overlay
+++ b/pkgs/applications/editors/emacs-modes/update-from-overlay
@@ -7,9 +7,13 @@ set -euxo pipefail
 
 curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/elpa/elpa-generated.nix
 nix-instantiate ../../../.. -A emacsPackagesNg.elpaPackages --show-trace
-git diff --exit-code elpa-generated.nix > /dev/null || git commit -m "elpa-packages: $(date --iso)" -- elpa-generated.nix
+git diff --exit-code elpa-generated.nix > /dev/null || git commit -m "emacsPackages.elpa-packages: $(date --iso)" -- elpa-generated.nix
+
+curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/org/org-generated.nix
+nix-instantiate ../../../.. -A emacsPackagesNg.orgPackages --show-trace
+git diff --exit-code org-generated.nix > /dev/null || git commit -m "emacsPackages.org-packages: $(date --iso)" -- org-generated.nix
 
 curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/melpa/recipes-archive-melpa.json
 env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPackages.melpaStablePackages
 env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPackages.melpaPackages
-git diff --exit-code recipes-archive-melpa.json > /dev/null || git commit -m "melpa-packages: $(date --iso)" -- recipes-archive-melpa.json
+git diff --exit-code recipes-archive-melpa.json > /dev/null || git commit -m "emacsPackages.melpa-packages: $(date --iso)" -- recipes-archive-melpa.json
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 2d48da0eb28..69bb51e10f2 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, binutils, binutils-unwrapped, makeWrapper # native-comp params
 , systemd ? null
 , withX ? !stdenv.isDarwin
 , withNS ? stdenv.isDarwin
@@ -9,8 +19,13 @@
 , 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"
+  else "lucid")
 }:
 
 assert (libXft != null) -> libpng != null;      # probably a bug
@@ -23,57 +38,72 @@ assert withGTK2 -> !withGTK3 && gtk2-x11 != null;
 assert withGTK3 -> !withGTK2 && gtk3-x11 != 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 = "26.3";
-  versionModifier = "";
+
+in stdenv.mkDerivation {
+  inherit pname version;
 
   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
+      libPath = lib.concatStringsSep ":" [
+        "${lib.getLib libgccjit}/lib/gcc/${targetPlatform.config}/${libgccjit.version}"
+        "${lib.getLib stdenv.cc.cc}/lib"
+        "${lib.getLib stdenv.glibc}/lib"
+      ];
+    in ''
+      substituteInPlace lisp/emacs-lisp/comp.el --replace \
+        "(defcustom comp-async-env-modifier-form nil" \
+        "(defcustom comp-async-env-modifier-form '((setenv \"LIBRARY_PATH\" (string-join (seq-filter (lambda (v) (null (eq v nil))) (list (getenv \"LIBRARY_PATH\") \"${libPath}\")) \":\")))"
+
+    ''))
+
+    ""
+  ];
 
   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" ];
 
@@ -86,34 +116,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
@@ -124,16 +148,24 @@ 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"
-    '';
+    '')
+
+    (lib.optionalString nativeComp ''
+      wrapProgram $out/bin/emacs-* --prefix PATH : "${lib.makeBinPath [ binutils binutils-unwrapped ]}"
+    '')
+
+  ];
+
+  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/glow/default.nix b/pkgs/applications/editors/glow/default.nix
index 928291940cf..347c5970cae 100644
--- a/pkgs/applications/editors/glow/default.nix
+++ b/pkgs/applications/editors/glow/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "0vhl8d7xxqqyl916nh8sgm1xdaf7xlc3r18464bd2av22q9yz68n";
   };
 
-  modSha256 = "0r0yq7kgz7i1wf4gxxihdrn1c8mi4wcyhadncxbln24s9c5apxsf";
+  vendorSha256 = "1c16s5xiqr36azh2w90wg14jlw67ca2flbgjijpz7qd0ypxyfqlk";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=" "-X=main.Version=${version}" ];
 
diff --git a/pkgs/applications/editors/gnome-builder/default.nix b/pkgs/applications/editors/gnome-builder/default.nix
index c58d12a58f8..a94ab58a78f 100644
--- a/pkgs/applications/editors/gnome-builder/default.nix
+++ b/pkgs/applications/editors/gnome-builder/default.nix
@@ -9,6 +9,7 @@
 , gnome3
 , libgit2-glib
 , gobject-introspection
+, glade
 , gspell
 , gtk-doc
 , gtk3
@@ -39,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 = "G0nl6DVzb3k6cN2guFIe/XNhFNhKbaq5e8wz62VA0Qo=";
+    sha256 = "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2";
   };
 
   nativeBuildInputs = [
@@ -65,7 +66,7 @@ stdenv.mkDerivation rec {
     ctags
     flatpak
     gnome3.devhelp
-    gnome3.glade
+    glade
     libgit2-glib
     libpeas
     libportal
diff --git a/pkgs/applications/editors/gnome-latex/default.nix b/pkgs/applications/editors/gnome-latex/default.nix
index 33a32132934..695a13eecab 100644
--- a/pkgs/applications/editors/gnome-latex/default.nix
+++ b/pkgs/applications/editors/gnome-latex/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, wrapGAppsHook, gsettings-desktop-schemas, gspell, gtksourceview4, libgee
 , tepl, amtk, gnome3, glib, pkgconfig, intltool, itstool, libxml2 }:
 let
-  version = "3.32.0";
+  version = "3.36.0";
   pname = "gnome-latex";
 in stdenv.mkDerivation {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1jdca9yhm7mm1aijd1a5amphgn15142kngky3id2am379ixrq1hg";
+    sha256 = "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn";
   };
 
   NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
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/jedit/default.nix b/pkgs/applications/editors/jedit/default.nix
index fd8b5337251..178494b0498 100644
--- a/pkgs/applications/editors/jedit/default.nix
+++ b/pkgs/applications/editors/jedit/default.nix
@@ -3,11 +3,11 @@
 let
   version = "5.2.0";
   bcpg = fetchurl {
-    url = "http://central.maven.org/maven2/org/bouncycastle/bcpg-jdk16/1.46/bcpg-jdk16-1.46.jar";
+    url = "mirror://maven/org/bouncycastle/bcpg-jdk16/1.46/bcpg-jdk16-1.46.jar";
     sha256 = "16xhmwks4l65m5x150nd23y5lyppha9sa5fj65rzhxw66gbli82d";
   };
   jsr305 = fetchurl {
-    url = "http://central.maven.org/maven2/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar";
+    url = "mirror://maven/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar";
     sha256 = "0s74pv8qjc42c7q8nbc0c3b1hgx0bmk3b8vbk1z80p4bbgx56zqy";
   };
 in
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 2319e0560de..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, ... }:
@@ -66,7 +66,7 @@ let
             bin/gdb/linux/bin/gdbserver
 
           patchelf --set-interpreter $interp \
-            --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}" \
+            --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib zlib ]}" \
             bin/clang/linux/clangd
           patchelf --set-interpreter $interp \
             --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib zlib ]}" \
@@ -138,6 +138,24 @@ let
       };
     });
 
+  buildMps = { name, version, src, license, description, wmClass, ... }:
+    (mkJetBrainsProduct rec {
+      inherit name version src wmClass jdk;
+      product = "MPS";
+      meta = with stdenv.lib; {
+        homepage = https://www.jetbrains.com/mps/;
+        inherit license description;
+        longDescription = ''
+          A metaprogramming system which uses projectional editing
+          which allows users to overcome the limits of language
+          parsers, and build DSL editors, such as ones with tables and
+          diagrams.
+        '';
+        maintainers = with maintainers; [ rasendubi ];
+        platforms = platforms.linux;
+      };
+    });
+
   buildPhpStorm = { name, version, src, license, description, wmClass, ... }:
     (mkJetBrainsProduct {
       inherit name version src wmClass jdk;
@@ -202,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
       '');
     });
 
@@ -250,12 +268,12 @@ in
 
   clion = buildClion rec {
     name = "clion-${version}";
-    version = "2020.1.1"; /* 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 = "0136hmknkxrsgbygxqzrq1836kg02p14hmv5mzbpp79yglhv2xml"; /* 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
@@ -263,12 +281,12 @@ in
 
   datagrip = buildDataGrip rec {
     name = "datagrip-${version}";
-    version = "2020.1.3"; /* 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 = "0ivnicpn67mfyhmiwbx80pq5l2xa4g1cpp79mh7rgm2c5klmf201"; /* updated by script */
+      sha256 = "0d0m6v4lr6qhi79csdpcyiyd2hnhlsan9lpnjmhkdxd84i1dl15a"; /* updated by script */
     };
     wmClass = "jetbrains-datagrip";
     update-channel = "DataGrip RELEASE";
@@ -276,12 +294,12 @@ in
 
   goland = buildGoland rec {
     name = "goland-${version}";
-    version = "2020.1.2"; /* 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 = "0v6vi6m94fwzsg5s357ymh8604zkv6q0zhyqfh9sj4ynzi7l4fyv"; /* updated by script */
+      sha256 = "15jd2yn4g3lya54ppcp8b0bvf2pp2khdvqba2g1aml16d5z8mkq6"; /* updated by script */
     };
     wmClass = "jetbrains-goland";
     update-channel = "GoLand RELEASE";
@@ -289,12 +307,12 @@ in
 
   idea-community = buildIdea rec {
     name = "idea-community-${version}";
-    version = "2020.1.1"; /* 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 = "0q848swfg9mjiini5bbjdj1f0qpd1n4glxdpncjj7mbpvp7s2h5k"; /* updated by script */
+      sha256 = "0rymyyhgm42i487dhlxh78shyvq4hd56frgz7wrqf85hg2j5ha0y"; /* updated by script */
     };
     wmClass = "jetbrains-idea-ce";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -302,25 +320,38 @@ in
 
   idea-ultimate = buildIdea rec {
     name = "idea-ultimate-${version}";
-    version = "2020.1.1"; /* 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 = "13khjc7fp28mpcdn74msdw57nzhicg32xrrvj7s7na2qd9gqz0hf"; /* updated by script */
+      sha256 = "00mbf8asxjdnfciz6bl8b83kqknqdnars5w5w5w38rmza53pzxsi"; /* updated by script */
     };
     wmClass = "jetbrains-idea";
     update-channel = "IntelliJ IDEA RELEASE";
   };
 
+  mps = buildMps rec {
+    name = "mps-${version}";
+    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/2020.1/MPS-${version}.tar.gz";
+      sha256 = "1ncvq834vn47pmh3q875hgqi4m7h3inljp89w3jwwhjn3g985ysz"; /* updated by script */
+    };
+    wmClass = "jetbrains-mps";
+    update-channel = "MPS RELEASE";
+  };
+
   phpstorm = buildPhpStorm rec {
     name = "phpstorm-${version}";
-    version = "2020.1.1"; /* 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 = "16gclbczd9czqhply0xb2ykv0bw4bgv85fihy1n2szc4rp643qdw"; /* updated by script */
+      sha256 = "1zxhb2w7nivnx8habcf5vii6bwzaihs5x8smy0zf8ngv3xwr6vjc"; /* updated by script */
     };
     wmClass = "jetbrains-phpstorm";
     update-channel = "PhpStorm RELEASE";
@@ -328,12 +359,12 @@ in
 
   pycharm-community = buildPycharm rec {
     name = "pycharm-community-${version}";
-    version = "2020.1.1"; /* 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 = "0p2q01yragab7c15aicpmaby075y7mpf6iavdfipi033q4gnlnki"; /* updated by script */
+      sha256 = "12pp3xp74dzgjrv2nz83dnqycb250kkgqlb3skjkdx9pabmfxck0"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm-ce";
     update-channel = "PyCharm RELEASE";
@@ -341,12 +372,12 @@ in
 
   pycharm-professional = buildPycharm rec {
     name = "pycharm-professional-${version}";
-    version = "2020.1.1"; /* 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 = "1lq97aqnibvg483ww7wi8slh302gydd2kdkw6p2516rjcmm6n324"; /* updated by script */
+      sha256 = "0xq0nba31yc7cm1lbgkmgfbr5kp5fq5k7j2n6kampm2hyx5fa0ak"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm";
     update-channel = "PyCharm RELEASE";
@@ -354,12 +385,12 @@ in
 
   rider = buildRider rec {
     name = "rider-${version}";
-    version = "2020.1.2"; /* 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 = "0flwq61p7827f8nmldqgfpxbfl422imclksw6w97mgzqqhcbgksd"; /* updated by script */
+      sha256 = "0fxgdxsrrl659lh45slikgck6jld90rd6nnj8gj3aixq0yp5pkix"; /* updated by script */
     };
     wmClass = "jetbrains-rider";
     update-channel = "Rider RELEASE";
@@ -367,12 +398,12 @@ in
 
   ruby-mine = buildRubyMine rec {
     name = "ruby-mine-${version}";
-    version = "2020.1.1"; /* 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 = "0xhx3n2xdk0k0qx7hdiyfga16hjf2j95k219wh7mh0cys20hkrg8"; /* updated by script */
+      sha256 = "1caxd5qcxwwrdy3ma87gnywr5czg3lam1n2gwbnc7hdxgfnvn3qz"; /* updated by script */
     };
     wmClass = "jetbrains-rubymine";
     update-channel = "RubyMine RELEASE";
@@ -380,12 +411,12 @@ in
 
   webstorm = buildWebStorm rec {
     name = "webstorm-${version}";
-    version = "2020.1.1"; /* 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 = "0d543g06bxpw4q2p19vmvrxpbhqsvspjbs3sqnw6hxni7wcflhkg"; /* 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..16bc3c22cb4 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.08.04";
   src = fetchFromGitHub {
     repo = "kakoune";
     owner = "mawww";
     rev = "v${version}";
-    sha256 = "16v6z1nzj54j19fraxhb18jdby4zfs1br91gxpg9s2s4nsk0km0b";
+    sha256 = "1cgkis8bywy5k8k6j4i3prikpmhh1p6zyklliyxbc89mj64kvx4s";
   };
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ ncurses asciidoc docbook_xsl libxslt ];
diff --git a/pkgs/applications/editors/kakoune/plugins/default.nix b/pkgs/applications/editors/kakoune/plugins/default.nix
index 4e92887bccb..915a5a9ec93 100644
--- a/pkgs/applications/editors/kakoune/plugins/default.nix
+++ b/pkgs/applications/editors/kakoune/plugins/default.nix
@@ -9,5 +9,6 @@
   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/kdevelop5/kdev-php.nix b/pkgs/applications/editors/kdevelop5/kdev-php.nix
index 4bd6e34b4fc..b4e4044bea6 100644
--- a/pkgs/applications/editors/kdevelop5/kdev-php.nix
+++ b/pkgs/applications/editors/kdevelop5/kdev-php.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kdev-php";
-  version = "5.5.1";
+  version = "5.5.2";
 
   src = fetchurl {
     url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz";
-    sha256 = "1z3mmlg5srzff0y1pjd4wfdf9k4rzk7gfdvbvzizkiy395qw1phv";
+    sha256 = "0z32x0297g078jk3jhzb4vrf8jhw0qprvqzm9p097h8x0026w42l";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/pkgs/applications/editors/kdevelop5/kdev-python.nix b/pkgs/applications/editors/kdevelop5/kdev-python.nix
index 80a5436c955..9fb251d5295 100644
--- a/pkgs/applications/editors/kdevelop5/kdev-python.nix
+++ b/pkgs/applications/editors/kdevelop5/kdev-python.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kdev-python";
-  version = "5.5.1";
+  version = "5.5.2";
 
   src = fetchurl {
     url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz";
-    sha256 = "0k4j2kp77sz2p8s77wmcawia81bx7vfb2nnh9lqxzdk2mmlg387c";
+    sha256 = "1qxvsz19iv5fr0nvz75b13knmsbkhkgvlvrhip8y4j66ypscs652";
   };
 
   cmakeFlags = [
diff --git a/pkgs/applications/editors/kdevelop5/kdevelop.nix b/pkgs/applications/editors/kdevelop5/kdevelop.nix
index 476819369cf..e07e7300048 100644
--- a/pkgs/applications/editors/kdevelop5/kdevelop.nix
+++ b/pkgs/applications/editors/kdevelop5/kdevelop.nix
@@ -10,11 +10,11 @@
 
 mkDerivation rec {
   pname = "kdevelop";
-  version = "5.5.1";
+  version = "5.5.2";
 
   src = fetchurl {
     url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz";
-    sha256 = "18hxwkdbfw0qs3p19jv6d8wwwdzb9m087891i8w2bzkn21fd5pmy";
+    sha256 = "1nkl3z1n1l7ly2zvmbx2sdhx5q72wcvpwhzsz3qgw1474qd9i3i2";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/editors/lite/default.nix b/pkgs/applications/editors/lite/default.nix
new file mode 100644
index 00000000000..908ecf2bdd7
--- /dev/null
+++ b/pkgs/applications/editors/lite/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, fetchFromGitHub
+, SDL2
+, lua52Packages
+, pkg-config
+, makeWrapper
+} :
+
+stdenv.mkDerivation rec {
+  pname = "lite";
+  version = "1.11";
+
+  src = fetchFromGitHub {
+    owner = "rxi";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0wxqfb4ly8g7w5qph76xys95b55ackkags8jgd1nasmiyi8gcd5a";
+  };
+
+  nativeBuildInputs = [ makeWrapper pkg-config ];
+
+  buildInputs = [ SDL2 lua52Packages.lua ];
+
+  postPatch = ''
+    # use system Lua 5.2
+    rm -rf src/lib/lua52
+    substituteInPlace src/api/api.h \
+      --replace '"lib/lua52/lua.h"' '<lua.h>' \
+      --replace '"lib/lua52/lauxlib.h"' '<lauxlib.h>' \
+      --replace '"lib/lua52/lualib.h"' '<lualib.h>'
+  '';
+
+  buildPhase = ''
+    # extracted and adapted from build.sh
+    CC=$NIX_CC/bin/cc
+    CFLAGS="-Wall -O3 -g -std=gnu11 -Isrc -DLUA_USE_POPEN $(pkg-config --cflags lua sdl2)"
+    LDFLAGS="$(pkg-config --libs lua sdl2)"
+    for f in $(find src -name "*.c"); do
+      $CC -c $CFLAGS $f -o "''${f//\//_}.o"
+    done
+    $CC *.o $LDFLAGS -o lite
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/lib/${pname}
+    cp -a lite $out/lib/${pname}
+    cp -a data $out/lib/${pname}
+    makeWrapper $out/lib/${pname}/lite $out/bin/lite
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A lightweight text editor written in Lua";
+    homepage = "https://github.com/rxi/lite";
+    license = licenses.mit;
+    maintainers = with maintainers; [ filalex77 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/editors/mg/default.nix b/pkgs/applications/editors/mg/default.nix
index 612cdcc7f88..ef6943001b9 100644
--- a/pkgs/applications/editors/mg/default.nix
+++ b/pkgs/applications/editors/mg/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  makeFlags = [ "PKG_CONFIG=${buildPackages.pkgconfig}/bin/pkg-config" ];
+  makeFlags = [ "PKG_CONFIG=${buildPackages.pkgconfig}/bin/${buildPackages.pkgconfig.targetPrefix}pkg-config" ];
 
   installPhase = ''
     install -m 555 -Dt $out/bin mg
diff --git a/pkgs/applications/editors/micro/default.nix b/pkgs/applications/editors/micro/default.nix
index 6a1ee5d196e..4a8c176f575 100644
--- a/pkgs/applications/editors/micro/default.nix
+++ b/pkgs/applications/editors/micro/default.nix
@@ -1,25 +1,35 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
 
-buildGoPackage  rec {
+buildGoPackage rec {
   pname = "micro";
-  version = "2.0.3";
+  version = "2.0.5";
 
   goPackagePath = "github.com/zyedidia/micro";
 
   src = fetchFromGitHub {
     owner = "zyedidia";
-    repo = "micro";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "017m9kb3gfrgzd06f1nma1i3m5rb0hzpgdikb86lsyv8ik18y12z";
+    sha256 = "12fyyax1mr0n82s5yhmk90iyyzbh32rppkkpj37c25pal73czdhc";
     fetchSubmodules = true;
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+
   subPackages = [ "cmd/micro" ];
 
-  buildFlagsArray = [ "-ldflags=" "-X ${goPackagePath}/internal/util.Version=${version}" ];
+  buildFlagsArray = let t = "${goPackagePath}/internal/util"; in ''
+    -ldflags=
+      -X ${t}.Version=${version}
+      -X ${t}.CommitHash=${src.rev}
+  '';
 
   goDeps = ./deps.nix;
 
+  postInstall = ''
+    installManPage $src/assets/packaging/micro.1
+  '';
+
   meta = with stdenv.lib; {
     homepage = "https://micro-editor.github.io";
     description = "Modern and intuitive terminal-based text editor";
diff --git a/pkgs/applications/editors/micro/deps.nix b/pkgs/applications/editors/micro/deps.nix
index e8ed69a9088..c274ce80ada 100644
--- a/pkgs/applications/editors/micro/deps.nix
+++ b/pkgs/applications/editors/micro/deps.nix
@@ -203,8 +203,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/zyedidia/clipboard";
-      rev = "241f98e9b197";
-      sha256 = "1glc8w30sijpbppcvaf3503rmx5nxqkcgw87dr2pr3q3vv1bg3zi";
+      rev = "7c45b8673834";
+      sha256 = "0ag36wd3830d4s6fvpj05v6f662c5rymgdydsj2gq8aaqplfb0v4";
     };
   }
   {
@@ -257,8 +257,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/zyedidia/tcell";
-      rev = "v1.4.4";
-      sha256 = "0d62a9csab15b64y09jcbvq71065wliw4bd5m7lfpl5k8rmrrdyi";
+      rev = "v1.4.7";
+      sha256 = "1ddaznp0haz35mxfjjh2fmamdrlk1igqg65fz22l5r6vvhcdsfxa";
     };
   }
   {
diff --git a/pkgs/applications/editors/nano/default.nix b/pkgs/applications/editors/nano/default.nix
index b4ce588050f..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.1";
+  version = "5.2";
 
   src = fetchurl {
     url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
-    sha256 = "0v5s58j3lbg5s6gapl9kjmzph7zgwaam53qspycy2sxaxw65mkaj";
+    sha256 = "1qd7pn9g5dgzbfg4fb3nqxqgi2iqq0g6x33x8d1mx6mfw51xmhij";
   };
 
   nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix
index 475330a5fe5..b546aae790a 100644
--- a/pkgs/applications/editors/neovim/default.nix
+++ b/pkgs/applications/editors/neovim/default.nix
@@ -6,6 +6,7 @@
 
 # now defaults to false because some tests can be flaky (clipboard etc)
 , doCheck ? false
+, nodejs ? null, fish ? null, python ? null
 }:
 
 with stdenv.lib;
@@ -17,16 +18,26 @@ let
         nvim-client luv coxpcall busted luafilesystem penlight inspect
       ]
     ));
+
+  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 = [
@@ -44,7 +55,7 @@ in
       libtermkey
       libuv
       libvterm-neovim
-      lua.pkgs.luv.libluv
+      luv.libluv
       msgpack
       ncurses
       neovimLuaEnv
@@ -67,6 +78,13 @@ in
       pkgconfig
     ];
 
+    # extra programs test via `make functionaltest`
+    checkInputs = [
+      fish
+      nodejs
+      pyEnv      # for src/clint.py
+    ];
+
 
     # nvim --version output retains compilation flags and references to build tools
     postPatch = ''
@@ -78,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 e9f42d2b9b5..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 ];
 
@@ -33,6 +33,10 @@ rustPlatform.buildRustPackage rec {
     EOF
   '';
 
+  buildPhase = ''
+    make build
+  '';
+
   installPhase = ''
     make install PREFIX="${placeholder "out"}"
   '';
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/netbeans/default.nix b/pkgs/applications/editors/netbeans/default.nix
index b2a13e3db7c..7a5630bb9ba 100644
--- a/pkgs/applications/editors/netbeans/default.nix
+++ b/pkgs/applications/editors/netbeans/default.nix
@@ -3,14 +3,14 @@
 }:
 
 let
-  version = "11.3";
+  version = "12.0";
   desktopItem = makeDesktopItem {
     name = "netbeans";
     exec = "netbeans";
     comment = "Integrated Development Environment";
     desktopName = "Apache NetBeans IDE";
     genericName = "Integrated Development Environment";
-    categories = "Application;Development;";
+    categories = "Development;";
     icon = "netbeans";
   };
 in
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   inherit version;
   src = fetchurl {
     url = "mirror://apache/netbeans/netbeans/${version}/netbeans-${version}-bin.zip";
-    sha512 = "ae828836138b5a4156d58df24dd4053be58018cb6b5beb179cb0f4cd8b5db72d2a7356a434d01157aacb78d228732950cf4e3a0b6c725da8e053b6ccd91075d6";
+    sha512 = "91030c9628a08acd85f1a58a7f71eec2e57dc85841c1c475cc6311335b5d8cdc10c1198274b9668b7f61a28d04b07661247dc1c3e36b8e29214aec3748e499e4";
   };
 
   buildCommand = ''
diff --git a/pkgs/applications/editors/notepadqq/default.nix b/pkgs/applications/editors/notepadqq/default.nix
index a51f5106930..cd4fe34ef33 100644
--- a/pkgs/applications/editors/notepadqq/default.nix
+++ b/pkgs/applications/editors/notepadqq/default.nix
@@ -3,12 +3,12 @@
 mkDerivation rec {
   pname = "notepadqq";
   version = "1.4.8";
+
   src = fetchFromGitHub {
     owner = "notepadqq";
     repo = "notepadqq";
     rev = "v${version}";
     sha256 = "0lbv4s7ng31dkznzbkmp2cvkqglmfj6lv4mbg3r410fif2nrva7k";
-    fetchSubmodules = true;
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/editors/nvi/default.nix b/pkgs/applications/editors/nvi/default.nix
index e28b2b43061..ed08954f8ba 100644
--- a/pkgs/applications/editors/nvi/default.nix
+++ b/pkgs/applications/editors/nvi/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation {
     homepage = "http://www.bostic.com/vi/";
     description = "The Berkeley Vi Editor";
     license = stdenv.lib.licenses.free;
+    broken = true; # since 2020-02-08
   };
 }
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/quartus-prime/default.nix b/pkgs/applications/editors/quartus-prime/default.nix
index 093635b10e4..7ad2a3247df 100644
--- a/pkgs/applications/editors/quartus-prime/default.nix
+++ b/pkgs/applications/editors/quartus-prime/default.nix
@@ -24,7 +24,7 @@ let
   ) deviceIds;
 
   quartus = stdenv.mkDerivation rec {
-    version = "19.1.0.670";
+    version = "20.1.0.711";
     pname = "quartus-prime-lite-unwrapped";
 
     src = let
@@ -34,12 +34,12 @@ let
       };
 
       hashes = {
-        "arria_lite" = "1flj9w0vb2p9f9zll136izr6qvmxn0lg72bvaqxs3sxc9vj06wm1";
-        "cyclonev" = "0bqxpvjgph0y6slk0jq75mcqzglmqkm0jsx10y9xz5llm6zxzqab";
-        "cyclone" = "0pzs8y4s3snxg4g6lrb21qi88abm48g279xzd98qv17qxb2z82rr";
-        "cyclone10lp" = "1ccxq8n20y40y47zddkijcv41w3cddvydddr3m4844q31in3nxha";
-        "max" = "1cxzbqscxvlcy74dpqmvlnxjyyxfwcx3spygpvpwi6dfj3ipgm2z";
-        "max10" = "14k83javivbk65mpb17wdwsyb8xk7x9gzj9x0wnd24mmijrvdy9s";
+        "arria_lite" = "09g2knq23h3vj0s5y7hsdnqbbkr3pnv53dzpqcw2lq9mb5zfs9r0";
+        "cyclonev" = "05hrpysasyfb7xhxg68spdffxyvxcx0iagibd5jz643b7n6aalpa";
+        "cyclone" = "1x3rnwsvzrb5kwdz35sbcabxmcvj8xxpnjlpcjwfc69ybiyr6sgz";
+        "cyclone10lp" = "1x6d4hm697mjgzaxixrw5va8anr6ihhx96x2524r6axpwqf6wcja";
+        "max" = "060b7v0xh86kkjyiix7akfkzhx2kl1b3q117kp7xibnz6yrzwmy3";
+        "max10" = "05840l9pmqa4i1b3ajfaxkqz1hppls556vbq16a42acz2qs2g578";
       };
 
       devicePackages = map (id: {
@@ -48,10 +48,10 @@ let
       }) (lib.attrValues supportedDeviceIds);
     in map require ([{
       name = "QuartusLiteSetup-${version}-linux.run";
-      sha256 = "15vxvqxqdk29ahlw3lkm1nzxyhzy4626wb9s5f2h6sjgq64r8m7f";
+      sha256 = "07ssrv8p8kacal6xd80n4h7l5xz13aw1m1gfqqaxig0ivsj971z5";
     } {
       name = "ModelSimSetup-${version}-linux.run";
-      sha256 = "0j1vfr91jclv88nam2plx68arxmz4g50sqb840i60wqd5b0l3y6r";
+      sha256 = "0smxasrmr1c8k6hy378knskpjmz4cgpgb35v5jclns0kx68y3c42";
     }] ++ devicePackages);
 
     nativeBuildInputs = [ unstick ];
@@ -81,9 +81,6 @@ let
         --disable-components ${lib.concatStringsSep "," disabledComponents} \
         --mode unattended --installdir $out --accept_eula 1
 
-      # This patch is from https://wiki.archlinux.org/index.php/Altera_Design_Software
-      patch --force --strip 0 --directory $out < ${./vsim.patch}
-
       rm -r $out/uninstall $out/logs
     '';
 
diff --git a/pkgs/applications/editors/quartus-prime/vsim.patch b/pkgs/applications/editors/quartus-prime/vsim.patch
deleted file mode 100644
index 36dc41b7ef1..00000000000
--- a/pkgs/applications/editors/quartus-prime/vsim.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- modelsim_ase/vco     	1970-01-01 01:00:01.000000000 +0100
-+++ modelsim_ase/vco      	1970-01-01 01:00:01.000000000 +0100
-@@ -207,7 +207,7 @@
-           2.[5-9]*)         vco="linux" ;;
-           2.[1-9][0-9]*)    vco="linux" ;;
-           3.[0-9]*)    		vco="linux" ;;
--          *)                vco="linux_rh60" ;;
-+          *)                vco="linux" ;;
-         esac
-         if [ ! -x "$dir/$vco/vsim" ]; then
-           if [ -x "$dir/linuxle/vsim" ]; then
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
new file mode 100644
index 00000000000..0b1dd8fcb9f
--- /dev/null
+++ b/pkgs/applications/editors/setzer/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, python3
+, fetchFromGitHub
+, meson
+, ninja
+, gettext
+, appstream
+, appstream-glib
+, wrapGAppsHook
+, gobject-introspection
+, gtksourceview4
+, gspell
+, poppler_gi
+, webkitgtk
+, librsvg
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "setzer";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "cvfosammmm";
+    repo = "Setzer";
+    rev = "v${version}";
+    sha256 = "0gx5fnyi932lswkhdvxfqs0wxx7hz690cbnpv4m3ysydi96mxwiv";
+  };
+
+  format = "other";
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    gettext
+    appstream # for appstreamcli
+    appstream-glib
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gobject-introspection
+    gtksourceview4
+    gspell
+    poppler_gi
+    webkitgtk
+    librsvg
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pygobject3
+    pyxdg
+  ];
+
+  meta = with lib; {
+    description = "LaTeX editor written in Python with Gtk";
+    homepage = src.meta.homepage;
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
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/sublime/3/common.nix b/pkgs/applications/editors/sublime/3/common.nix
index a75233fcf35..22c23280d17 100644
--- a/pkgs/applications/editors/sublime/3/common.nix
+++ b/pkgs/applications/editors/sublime/3/common.nix
@@ -13,7 +13,7 @@ let
   primaryBinary = "sublime_text";
   primaryBinaryAliases = [ "subl" "sublime" "sublime3" ];
   downloadUrl = "https://download.sublimetext.com/sublime_text_3_build_${buildVersion}_${arch}.tar.bz2";
-  versionUrl = "https://www.sublimetext.com/${if dev then "3dev" else "3"}";
+  versionUrl = "https://download.sublimetext.com/latest/${if dev then "dev" else "stable"}";
   versionFile = builtins.toString ./packages.nix;
   archSha256 =
     if stdenv.hostPlatform.system == "i686-linux" then
@@ -133,7 +133,12 @@ in stdenv.mkDerivation (rec {
     set -o errexit
     PATH=${stdenv.lib.makeBinPath [ common-updater-scripts curl gnugrep ]}
 
-    latestVersion=$(curl -s ${versionUrl} | grep -Po '(?<=<p class="latest"><i>Version:</i> Build )([0-9]+)')
+    latestVersion=$(curl -s ${versionUrl})
+
+    if [[ "${buildVersion}" = "$latestVersion" ]]; then
+        echo "The new version same as the old version."
+        exit 0
+    fi
 
     for platform in ${stdenv.lib.concatStringsSep " " meta.platforms}; do
         # The script will not perform an update when the version attribute is up to date from previous platform run
diff --git a/pkgs/applications/editors/tiled/default.nix b/pkgs/applications/editors/tiled/default.nix
index bee9934a9ca..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.3.4";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "bjorn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0q3x1v88szxm8177qcnynfiyc7w8sn07ig6c7fjd164q7w30y24m";
+    sha256 = "0b3xjcc86vs9lfxr7xann9d43dz3v3x1g7j1mcn31sy2n68a1wx3";
   };
 
   nativeBuildInputs = [ pkgconfig qmake ];
diff --git a/pkgs/applications/editors/typora/default.nix b/pkgs/applications/editors/typora/default.nix
index 583229eb868..049ba45f7af 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_8
 , dpkg
 , gtk3
 , glib
@@ -12,13 +12,16 @@
 , pandoc
 }:
 
+let
+  electron = electron_8;
+in
 stdenv.mkDerivation rec {
   pname = "typora";
-  version = "0.9.73";
+  version = "0.9.89";
 
   src = fetchurl {
     url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
-    sha256 = "1fgcb4bx5pw8ah5j30d38gw7qi1cmqarfhvgdns9f2n0d57bvvw3";
+    sha256 = "0gk8j13z1ymad34zzcy4vqwyjgd5khgyw5xjj9rbzm5v537kqmx6";
   };
 
   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 8bdc0c0753c..5be7078173e 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.0510";
+  version = "8.2.1123";
 
   src = fetchFromGitHub {
     owner = "vim";
     repo = "vim";
     rev = "v${version}";
-    sha256 = "16ggwf238pzzkn3ng6n09qz9cgdzha9vc0ghlcxhwilnjh12l7p9";
+    sha256 = "01fgfm5pnmbq12z84d7g3x0iq5gj1irdyihx41c4r2bww55v5q0c";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index 3b37c805cdd..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
@@ -104,6 +102,8 @@ in stdenv.mkDerivation rec {
   ++ stdenv.lib.optionals luaSupport [
     "--with-lua-prefix=${lua}"
     "--enable-luainterp"
+  ] ++ stdenv.lib.optional lua.pkgs.isLuaJIT [
+    "--with-luajit"
   ]
   ++ stdenv.lib.optionals pythonSupport [
     "--enable-python${if isPython3 then "3" else ""}interp=yes"
@@ -154,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/vis/default.nix b/pkgs/applications/editors/vis/default.nix
index 85f78035a0f..5191b916b6c 100644
--- a/pkgs/applications/editors/vis/default.nix
+++ b/pkgs/applications/editors/vis/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "vis";
-  version  = "0.5";
+  version  = "0.6";
 
   src = fetchFromGitHub {
     rev = "v${version}";
-    sha256 = "1vhq6hprkgj90iwl5vl3pxs3xwc01mx8yhi6c1phzry5agqqp8jb";
+    sha256 = "1zjm89cn3rfq8fxpwp66khy53s6vqlmw6q103qyyvix8ydzxdmsh";
     repo = "vis";
     owner = "martanne";
   };
diff --git a/pkgs/applications/editors/vscode/generic.nix b/pkgs/applications/editors/vscode/generic.nix
index abd4a55c92b..38d695bd74a 100644
--- a/pkgs/applications/editors/vscode/generic.nix
+++ b/pkgs/applications/editors/vscode/generic.nix
@@ -24,7 +24,7 @@ in
       desktopName = longName;
       comment = "Code Editing. Redefined.";
       genericName = "Text Editor";
-      exec = executableName;
+      exec = "${executableName} %U";
       icon = "code";
       startupNotify = "true";
       categories = "Utility;TextEditor;Development;IDE;";
@@ -78,8 +78,6 @@ in
         mkdir -p $out/lib/vscode $out/bin
         cp -r ./* $out/lib/vscode
 
-        substituteInPlace $out/lib/vscode/bin/${executableName} --replace '"$CLI" "$@"' '"$CLI" "--skip-getting-started" "$@"'
-
         ln -s $out/lib/vscode/bin/${executableName} $out/bin
 
         mkdir -p $out/share/applications
diff --git a/pkgs/applications/editors/vscode/update.sh b/pkgs/applications/editors/vscode/update.sh
new file mode 100755
index 00000000000..d573fdf04aa
--- /dev/null
+++ b/pkgs/applications/editors/vscode/update.sh
@@ -0,0 +1,39 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnugrep gnused gawk
+
+ROOT="$(dirname "$(readlink -f "$0")")"
+if [ ! -f "$ROOT/vscode.nix" ]; then
+  echo "ERROR: cannot find vscode.nix in $ROOT"
+  exit 1
+fi
+if [ ! -f "$ROOT/vscodium.nix" ]; then
+  echo "ERROR: cannot find vscodium.nix in $ROOT"
+  exit 1
+fi
+
+# VSCode
+
+VSCODE_VER=$(curl -s -L "https://code.visualstudio.com/Download" | grep "is now available" | awk -F'</span>' '{print $1}' | awk -F'>' '{print $NF}')
+VSCODE_VER=$(curl -s -L "https://code.visualstudio.com/updates/v${VSCODE_VER/./_}" | grep "Downloads:" | awk -F'code.visualstudio.com/' '{print $2}' | awk -F'/' '{print $1}')
+sed -i "s/version = \".*\"/version = \"${VSCODE_VER}\"/" "$ROOT/vscode.nix"
+
+VSCODE_LINUX_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/linux-x64/stable"
+VSCODE_LINUX_SHA256=$(nix-prefetch-url ${VSCODE_LINUX_URL})
+sed -i "s/x86_64-linux = \".\{52\}\"/x86_64-linux = \"${VSCODE_LINUX_SHA256}\"/" "$ROOT/vscode.nix"
+
+VSCODE_DARWIN_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/darwin/stable"
+VSCODE_DARWIN_SHA256=$(nix-prefetch-url ${VSCODE_DARWIN_URL})
+sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODE_DARWIN_SHA256}\"/" "$ROOT/vscode.nix"
+
+# VSCodium
+
+VSCODIUM_VER=$(curl -Ls -w %{url_effective} -o /dev/null https://github.com/VSCodium/vscodium/releases/latest | awk -F'/' '{print $NF}')
+sed -i "s/version = \".*\"/version = \"${VSCODIUM_VER}\"/" "$ROOT/vscodium.nix"
+
+VSCODIUM_LINUX_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-linux-x64-${VSCODIUM_VER}.tar.gz"
+VSCODIUM_LINUX_SHA256=$(nix-prefetch-url ${VSCODIUM_LINUX_URL})
+sed -i "s/x86_64-linux = \".\{52\}\"/x86_64-linux = \"${VSCODIUM_LINUX_SHA256}\"/" "$ROOT/vscodium.nix"
+
+VSCODIUM_DARWIN_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-darwin-${VSCODIUM_VER}.zip"
+VSCODIUM_DARWIN_SHA256=$(nix-prefetch-url ${VSCODIUM_DARWIN_URL})
+sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODIUM_DARWIN_SHA256}\"/" "$ROOT/vscodium.nix"
\ No newline at end of file
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index 5aa5881ec5a..0bf0435d2fc 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 = "16zchjp72m6n6za4ak5kn2ax1s5pjfn7l082d6gfbb2y62isvs7q";
-    x86_64-darwin = "0w35s6nxagcnd6xcm6bp0m63agkqxffig61cr3nnmpbcgj9zc969";
+    x86_64-linux = "1yar8j6h39gpnq4givxh5cvi336p56sgc8pg32j6sasqk6mxv02c";
+    x86_64-darwin = "1d68xkqkd49z7v4y3230l2v77aw34d7jkdbgj0wnc04kv6n8wx88";
   }.${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.45.0";
+    version = "1.48.1";
     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 531abb06daa..edb55264354 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 = "1wb4s2jw90irlawgl6539gwl0xwaxglaksmbcddbvnr6rq3ypn8n";
-    x86_64-darwin = "16c1r7knfd5pfqhnk77nanh82azkc28pwkqfcyasbdgm70k17d3p";
+    x86_64-linux = "0f8p25963i7bbm2zxb4ra935maxk3sxims6j873wqwqnzn701diq";
+    x86_64-darwin = "0k8ylcbiqvb0cnvbz3059rbyjqxmvig8zf7bfqgln1w591i411c4";
   }.${system};
 
   sourceRoot = {
@@ -27,12 +27,12 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.45.0";
+    version = "1.48.1";
     pname = "vscodium";
 
     executableName = "codium";
     longName = "VSCodium";
-    shortName = "Codium";
+    shortName = "vscodium";
 
     src = fetchurl {
       url = "https://github.com/VSCodium/vscodium/releases/download/${version}/VSCodium-${plat}-${version}.${archive_fmt}";
diff --git a/pkgs/applications/editors/vscode/with-extensions.nix b/pkgs/applications/editors/vscode/with-extensions.nix
index 5dcd1f6fb78..c30b52782ef 100644
--- a/pkgs/applications/editors/vscode/with-extensions.nix
+++ b/pkgs/applications/editors/vscode/with-extensions.nix
@@ -70,6 +70,6 @@ runCommand "${wrappedPkgName}-with-extensions-${wrappedPkgVersion}" {
   ln -sT "${vscode}/share/applications/${executableName}.desktop" "$out/share/applications/${executableName}.desktop"
   ln -sT "${vscode}/share/applications/${executableName}-url-handler.desktop" "$out/share/applications/${executableName}-url-handler.desktop"
   makeWrapper "${vscode}/bin/${executableName}" "$out/bin/${executableName}" ${lib.optionalString (vscodeExtensions != []) ''
-    --add-flags "--extensions-dir ${combinedExtensionsDrv}"
+    --add-flags "--extensions-dir ${combinedExtensionsDrv}/share/vscode/extensions"
   ''}
 ''
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..8c7c7687f3d
--- /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.0";
+  src = fetchurl {
+    url = "https://github.com/GenericMappingTools/gmt/releases/download/${version}/gmt-${version}-src.tar.gz";
+    sha256 = "0vzxzpvbf1sqma2airsibxvqb9m4sajm7jsfr7rrv6q7924c7ijw";
+  };
+
+  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/grass/default.nix b/pkgs/applications/gis/grass/default.nix
index cb574ffc8f1..420f57bb93f 100644
--- a/pkgs/applications/gis/grass/default.nix
+++ b/pkgs/applications/gis/grass/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, flex, bison, pkgconfig, zlib, libtiff, libpng, fftw
-, cairo, readline, ffmpeg, makeWrapper, wxGTK30, netcdf, blas
+, cairo, readline, ffmpeg_3, makeWrapper, wxGTK30, netcdf, blas
 , proj, gdal, geos, sqlite, postgresql, libmysqlclient, python2Packages, libLAS, proj-datumgrid
 }:
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite cairo proj
-  readline ffmpeg makeWrapper wxGTK30 netcdf geos postgresql libmysqlclient blas
+  readline ffmpeg_3 makeWrapper wxGTK30 netcdf geos postgresql libmysqlclient blas
   libLAS proj-datumgrid ]
     ++ (with python2Packages; [ python dateutil wxPython30 numpy ]);
 
diff --git a/pkgs/applications/gis/openorienteering-mapper/default.nix b/pkgs/applications/gis/openorienteering-mapper/default.nix
index 2fc118597f9..39f8694dd17 100644
--- a/pkgs/applications/gis/openorienteering-mapper/default.nix
+++ b/pkgs/applications/gis/openorienteering-mapper/default.nix
@@ -1,31 +1,61 @@
-{ stdenv, fetchFromGitHub, gdal, cmake, ninja, proj, clipper, zlib, qtbase, qttools
-, qtlocation, qtsensors, doxygen, cups, wrapQtAppsHook, qtimageformats
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, gdal
+, cmake
+, ninja
+, proj
+, clipper
+, zlib
+, qttools
+, qtlocation
+, qtsensors
+, qttranslations
+, doxygen
+, cups
+, qtimageformats
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "OpenOrienteering-Mapper";
-  version = "0.9.2";
+  version = "0.9.3";
 
-  buildInputs = [ gdal qtbase qttools qtlocation qtimageformats
-                  qtsensors clipper zlib proj doxygen cups];
+  buildInputs = [
+    gdal
+    qtlocation
+    qtimageformats
+    qtsensors
+    clipper
+    zlib
+    proj
+    cups
+  ];
 
-  nativeBuildInputs = [ cmake wrapQtAppsHook ninja ];
+  nativeBuildInputs = [ cmake doxygen ninja qttools ];
 
   src = fetchFromGitHub {
     owner = "OpenOrienteering";
     repo = "mapper";
     rev = "v${version}";
-    sha256 = "1787f2agjzcyizk2m60icb44yv9dlwv6irw3k53fqfmwkhkd2h5p";
+    sha256 = "05bliglpc8170px6k9lfrp9ylpnb2zf47gnjns9b2bif8dv8zq0l";
   };
 
-  cmakeFlags =
-    [
+  patches = [
+    # See https://github.com/NixOS/nixpkgs/issues/86054
+    ./fix-qttranslations-path.diff
+  ];
+
+  postPatch = ''
+    substituteInPlace src/util/translation_util.cpp \
+      --subst-var-by qttranslations ${qttranslations}
+  '';
+
+  cmakeFlags = [
     # Building the manual and bundling licenses fails
+    # See https://github.com/NixOS/nixpkgs/issues/85306
     "-DLICENSING_PROVIDER:BOOL=OFF"
     "-DMapper_MANUAL_QTHELP:BOOL=OFF"
-    ] ++
-    (stdenv.lib.optionals stdenv.isDarwin
-    [
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [
     # Usually enabled on Darwin
     "-DCMAKE_FIND_FRAMEWORK=never"
     # FindGDAL is broken and always finds /Library/Framework unless this is
@@ -38,16 +68,17 @@ stdenv.mkDerivation rec {
     "-DMapper_PACKAGE_QT=0"
     "-DMapper_PACKAGE_ASSISTANT=0"
     "-DMapper_PACKAGE_GDAL=0"
-    ]);
+  ];
 
-  postInstall =
-    stdenv.lib.optionalString stdenv.isDarwin ''
+  postInstall = with stdenv; lib.optionalString isDarwin ''
+    mkdir -p $out/Applications
+    mv $out/Mapper.app $out/Applications
     # Fixes "This application failed to start because it could not find or load the Qt
     # platform plugin "cocoa"."
-    wrapQtApp $out/Mapper.app/Contents/MacOS/Mapper
+    wrapQtApp $out/Applications/Mapper.app/Contents/MacOS/Mapper
     mkdir -p $out/bin
-    ln -s $out/Mapper.app/Contents/MacOS/Mapper $out/bin/mapper
-    '';
+    ln -s $out/Applications/Mapper.app/Contents/MacOS/Mapper $out/bin/mapper
+  '';
 
   meta = with stdenv.lib; {
     description = ''
diff --git a/pkgs/applications/gis/openorienteering-mapper/fix-qttranslations-path.diff b/pkgs/applications/gis/openorienteering-mapper/fix-qttranslations-path.diff
new file mode 100644
index 00000000000..06c465a8fb3
--- /dev/null
+++ b/pkgs/applications/gis/openorienteering-mapper/fix-qttranslations-path.diff
@@ -0,0 +1,13 @@
+diff --git i/src/util/translation_util.cpp w/src/util/translation_util.cpp
+index da03d216..c1f12751 100644
+--- i/src/util/translation_util.cpp
++++ w/src/util/translation_util.cpp
+@@ -103,7 +103,7 @@ TranslationUtil::TranslationUtil(const QString& code, QString translation_file)
+ 	}
+ 	
+ 	QString translation_name = QLatin1String("qt_") + language.code;
+-	if (!qt_translator.load(translation_name, QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
++	if (!qt_translator.load(translation_name, QLatin1String("@qttranslations@/translations")))
+ 		load(qt_translator, translation_name);
+ 	
+ 	load(app_translator, translation_file);
diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix
index 2e11f22f517..72e84620252 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.4";
+  version = "3.10.7";
   pname = "qgis";
   name = "${pname}-unwrapped-${version}";
 
@@ -18,7 +18,7 @@ in mkDerivation rec {
     owner = "qgis";
     repo = "QGIS";
     rev = "final-${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "0d1rsgjgnnq6jgms5bgppz8lkh4518nf90fk0qvxajdfi9j4jn12";
+    sha256 = "0z593n5g3zwhlzhs0z7nlpblz6z2rl3y7y3j1wf1rdx76i8p3qgf";
   };
 
   passthru = {
diff --git a/pkgs/applications/gis/saga/default.nix b/pkgs/applications/gis/saga/default.nix
index 388ac1ee7a7..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.2";
+  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.2/saga-7.6.2.tar.gz";
-    sha256 = "09j5magmayq2y620kqa490mfd1kpdp3lng2ifcgbrmssc079ybm0";
-  };
-
   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 d81a08e2900..0ac19c0d133 100644
--- a/pkgs/applications/gis/whitebox-tools/default.nix
+++ b/pkgs/applications/gis/whitebox-tools/default.nix
@@ -1,27 +1,23 @@
 { stdenv, rustPlatform , fetchFromGitHub, Security }:
 rustPlatform.buildRustPackage rec {
   pname = "whitebox_tools";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "jblindsay";
     repo = "whitebox-tools";
     rev = "v${version}";
-    sha256 = "0zi32d0wrbl2763dcllv2g0liwacsfiza5lkx52620prjjbhby8i";
+    sha256 = "0c9jmfjz6ys65y65zlllv9xvaaavr9jpqc1dc217iywhj07j8k2v";
   };
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
-  cargoSha256 = "13k21akyfqgamywj39bw73sldby1s02vyvxfglxbaqq1x96xcy4i";
-
-  # failures: structures::polyline::test::test_polyline_split
-  doCheck = false;
+  cargoSha256 = "05w2jimmygg7dc93i8bpjpjc5yj5xfpfkjnbbgw2sq4kh06r5ii4";
 
   meta = with stdenv.lib; {
     description = "An advanced geospatial data analysis platform";
-    homepage = "http://www.uoguelph.ca/~hydrogeo/WhiteboxTools/index.html";
+    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 f2542301119..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.9-0";
-    sha256 = "1w7ci7v5qlayd7a5z69px94fz3fshvn1diqw7k1ymsyvz5888d39";
+    version = "7.0.10-27";
+    sha256 = "1fqwbg2ws6ix3bymx7ncb4k4f6bg8q44n9xnlvngjapflnrmhcph";
     patches = [];
   };
 in
@@ -71,7 +71,7 @@ stdenv.mkDerivation {
     moveToOutput "lib/ImageMagick-*/config-Q16HDRI" "$dev" # includes configure params
     for file in "$dev"/bin/*-config; do
       substituteInPlace "$file" --replace pkg-config \
-        "PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkgconfig}/bin/pkg-config'"
+        "PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config'"
     done
   '' + lib.optionalString (ghostscript != null) ''
     for la in $out/lib/*.la; do
diff --git a/pkgs/applications/graphics/ImageMagick/default.nix b/pkgs/applications/graphics/ImageMagick/default.nix
index 0ded57b1a72..7a2ae8e4d66 100644
--- a/pkgs/applications/graphics/ImageMagick/default.nix
+++ b/pkgs/applications/graphics/ImageMagick/default.nix
@@ -13,8 +13,8 @@ let
     else throw "ImageMagick is not supported on this platform.";
 
   cfg = {
-    version = "6.9.10-71";
-    sha256 = "0c69xmr8k8c4dplgzxydm30s2dr8biq71x07hc15bw196nsx3srr";
+    version = "6.9.11-14";
+    sha256 = "0x51vf48g75cfp0mbwf3ckmlwa6v00592xx3gvrqzjzx7vlayjyg";
     patches = [];
   }
     # Freeze version on mingw so we don't need to port the patch too often.
@@ -85,9 +85,9 @@ stdenv.mkDerivation {
     moveToOutput "lib/ImageMagick-*/config-Q16" "$dev" # includes configure params
     for file in "$dev"/bin/*-config; do
       substituteInPlace "$file" --replace "${pkgconfig}/bin/pkg-config -config" \
-        ${pkgconfig}/bin/pkg-config
+        ${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config
       substituteInPlace "$file" --replace ${pkgconfig}/bin/pkg-config \
-        "PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkgconfig}/bin/pkg-config'"
+        "PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config'"
     done
   '' + lib.optionalString (ghostscript != null) ''
     for la in $out/lib/*.la; do
diff --git a/pkgs/applications/graphics/akira/default.nix b/pkgs/applications/graphics/akira/default.nix
index adbc1eac379..262c7b11f98 100644
--- a/pkgs/applications/graphics/akira/default.nix
+++ b/pkgs/applications/graphics/akira/default.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "akira";
-  version = "2019-10-12";
+  version = "2020-05-01";
 
   src = fetchFromGitHub {
     owner = "akiraux";
     repo = "Akira";
-    rev = "cab952dee4591b6bde34d670c1f853f5a3ff6b19";
-    sha256 = "1fp3a79hkh6xwwqqdrx4zqq2zhsm236c6fhhl5f2nmi108yxz04q";
+    rev = "87c495fa0a686b1e9b84aff7d9c0a9553da2c466";
+    sha256 = "0ikz6dyx0z2wqskas628hbrbhx3z5gy7i4acrvspfhhg6rk88aqd";
   };
 
   nativeBuildInputs = [
@@ -59,8 +59,6 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [ "-Dprofile=default" ];
 
-  patches = [ ./fix-build-with-vala-0-44-or-later.patch ];
-
   postPatch = ''
     chmod +x build-aux/meson/post_install.py
     patchShebangs build-aux/meson/post_install.py
diff --git a/pkgs/applications/graphics/akira/fix-build-with-vala-0-44-or-later.patch b/pkgs/applications/graphics/akira/fix-build-with-vala-0-44-or-later.patch
deleted file mode 100644
index 3c35900c04f..00000000000
--- a/pkgs/applications/graphics/akira/fix-build-with-vala-0-44-or-later.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From bcda8fd53f6f232db0b6411269ba108af551629f Mon Sep 17 00:00:00 2001
-From: Alberto Fanjul <albertofanjul@gmail.com>
-Date: Tue, 9 Apr 2019 09:45:36 +0200
-Subject: [PATCH] Build on vala >= 0.44.2
-
----
- src/FileFormat/JsonObject.vala        |  2 +-
- src/FileFormat/JsonObjectArray.vala   |  2 +-
- src/FileFormat/ZipArchiveHandler.vala | 18 +++++++++++++++++-
- 3 files changed, 19 insertions(+), 3 deletions(-)
-
-diff --git a/src/FileFormat/JsonObject.vala b/src/FileFormat/JsonObject.vala
-index 7bfe46f..805fbad 100644
---- a/src/FileFormat/JsonObject.vala
-+++ b/src/FileFormat/JsonObject.vala
-@@ -31,7 +31,7 @@ public abstract class Akira.FileFormat.JsonObject : GLib.Object {
- 
-     private ObjectClass obj_class;
- 
--    public JsonObject.from_object (Json.Object object) {
-+    protected JsonObject.from_object (Json.Object object) {
-         Object (object: object);
-     }
- 
-diff --git a/src/FileFormat/JsonObjectArray.vala b/src/FileFormat/JsonObjectArray.vala
-index 4f6e573..d0a7dad 100644
---- a/src/FileFormat/JsonObjectArray.vala
-+++ b/src/FileFormat/JsonObjectArray.vala
-@@ -31,7 +31,7 @@ public abstract class Akira.FileFormat.JsonObjectArray : Object {
-      *
-      * Your JsonObject implementation should have it's own list of items
-      */
--    public JsonObjectArray (Json.Object object, string property_name) {
-+    protected JsonObjectArray (Json.Object object, string property_name) {
-         Object (object: object, property_name: property_name);
-     }
- 
-diff --git a/src/FileFormat/ZipArchiveHandler.vala b/src/FileFormat/ZipArchiveHandler.vala
-index ca60dd0..5d65aa2 100644
---- a/src/FileFormat/ZipArchiveHandler.vala
-+++ b/src/FileFormat/ZipArchiveHandler.vala
-@@ -262,11 +262,17 @@ public class Akira.FileFormat.ZipArchiveHandler : GLib.Object {
-                 continue;
-             }
- 
-+            Posix.off_t offset;
-+#if VALA_0_42
-+            uint8[] buffer;
-+            while (archive.read_data_block (out buffer, out offset) == Archive.Result.OK) {
-+                if (extractor.write_data_block (buffer, offset) != Archive.Result.OK) {
-+#else
-             void* buffer = null;
-             size_t buffer_length;
--            Posix.off_t offset;
-             while (archive.read_data_block (out buffer, out buffer_length, out offset) == Archive.Result.OK) {
-                 if (extractor.write_data_block (buffer, buffer_length, offset) != Archive.Result.OK) {
-+#endif
-                     break;
-                 }
-             }
-@@ -316,9 +322,15 @@ public class Akira.FileFormat.ZipArchiveHandler : GLib.Object {
-                     // Add an entry to the archive
-                     Archive.Entry entry = new Archive.Entry ();
-                     entry.set_pathname (initial_folder.get_relative_path (current_file));
-+#if VALA_0_42
-+                    entry.set_size ((Archive.int64_t) file_info.get_size ());
-+                    entry.set_filetype (Archive.FileType.IFREG);
-+                    entry.set_perm (Archive.FileType.IFREG);
-+#else
-                     entry.set_size (file_info.get_size ());
-                     entry.set_filetype ((uint) Posix.S_IFREG);
-                     entry.set_perm (0644);
-+#endif
- 
-                     if (archive.write_header (entry) != Archive.Result.OK) {
-                         critical ("Error writing '%s': %s (%d)", current_file.get_path (), archive.error_string (), archive.errno ());
-@@ -333,7 +345,11 @@ public class Akira.FileFormat.ZipArchiveHandler : GLib.Object {
-                             break;
-                         }
- 
-+#if VALA_0_42
-+                        archive.write_data (buffer[0:bytes_read]);
-+#else
-                         archive.write_data (buffer, bytes_read);
-+#endif
-                     }
-                 }
-             }
diff --git a/pkgs/applications/graphics/avocode/default.nix b/pkgs/applications/graphics/avocode/default.nix
index 9981e8a439e..53779041fc9 100644
--- a/pkgs/applications/graphics/avocode/default.nix
+++ b/pkgs/applications/graphics/avocode/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "avocode";
-  version = "4.6.2";
+  version = "4.7.0";
 
   src = fetchurl {
     url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
-    sha256 = "1ldvscxfvwpsir8vr1ca9ra0841m6xy331ys31dngcp77nwncjqc";
+    sha256 = "0kn0422k4vi2qifasnkd0cjf5l6z0rmkqv6l46ygxk3qyykjnqcm";
   };
 
   libPath = stdenv.lib.makeLibraryPath (with xorg; [
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
     icon = "avocode";
     desktopName = "Avocode";
     genericName = "Design Inspector";
-    categories = "Application;Development;";
+    categories = "Development;";
     comment = "The bridge between designers and developers";
   };
 
diff --git a/pkgs/applications/graphics/azpainter/default.nix b/pkgs/applications/graphics/azpainter/default.nix
index 67f1f47dccd..c2e7ce6f35d 100644
--- a/pkgs/applications/graphics/azpainter/default.nix
+++ b/pkgs/applications/graphics/azpainter/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     owner = "Symbian9";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-al87Rnf4HkKdmtN3EqxC0zEHgVWwnVi7WttqT/Qxr0Q=";
+    sha256 = "0i5g67s4ysnvbaxmi7dhan0hfcfk8an14xykkafl47pqfx33npva";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/graphics/cloudcompare/default.nix b/pkgs/applications/graphics/cloudcompare/default.nix
new file mode 100644
index 00000000000..209a6a4753b
--- /dev/null
+++ b/pkgs/applications/graphics/cloudcompare/default.nix
@@ -0,0 +1,82 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, dxflib
+, eigen
+, flann
+, gdal
+, LASzip
+, libLAS
+, pdal
+, qtbase
+, qtsvg
+, qttools
+, tbb
+, xercesc
+}:
+
+mkDerivation rec {
+  pname = "cloudcompare";
+  version = "2.11.0";
+
+  src = fetchFromGitHub {
+    owner = "CloudCompare";
+    repo = "CloudCompare";
+    rev = "v${version}";
+    sha256 = "02ahhhivgb9k1aygw1m35wdvhaizag1r98mb0r6zzrs5p4y64wlb";
+    # As of writing includes (https://github.com/CloudCompare/CloudCompare/blob/a1c589c006fc325e8b560c77340809b9c7e7247a/.gitmodules):
+    # * libE57Format
+    # * PoissonRecon
+    # In > 2.11 it will also contain
+    # * CCCoreLib
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    cmake
+    eigen # header-only
+  ];
+
+  buildInputs = [
+    dxflib
+    flann
+    gdal
+    LASzip
+    libLAS
+    pdal
+    qtbase
+    qtsvg
+    qttools
+    tbb
+    xercesc
+  ];
+
+  cmakeFlags = [
+    # TODO: This will become -DCCCORELIB_USE_TBB=ON in > 2.11.0, see
+    #       https://github.com/CloudCompare/CloudCompare/commit/f5a0c9fd788da26450f3fa488b2cf0e4a08d255f
+    "-DCOMPILE_CC_CORE_LIB_WITH_TBB=ON"
+    "-DOPTION_USE_DXF_LIB=ON"
+    "-DOPTION_USE_GDAL=ON"
+    "-DOPTION_USE_SHAPE_LIB=ON"
+
+    "-DPLUGIN_GL_QEDL=ON"
+    "-DPLUGIN_GL_QSSAO=ON"
+    "-DPLUGIN_IO_QADDITIONAL=ON"
+    "-DPLUGIN_IO_QCORE=ON"
+    "-DPLUGIN_IO_QCSV_MATRIX=ON"
+    "-DPLUGIN_IO_QE57=ON"
+    "-DPLUGIN_IO_QFBX=OFF" # Autodesk FBX SDK is gratis+proprietary; not packaged in nixpkgs
+    "-DPLUGIN_IO_QPDAL=ON" # required for .las/.laz support
+    "-DPLUGIN_IO_QPHOTOSCAN=ON"
+    "-DPLUGIN_IO_QRDB=OFF" # Riegl rdblib is proprietary; not packaged in nixpkgs
+  ];
+
+  meta = with lib; {
+    description = "3D point cloud and mesh processing software";
+    homepage = "https://cloudcompare.org";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ nh2 ];
+    platforms = with platforms; linux; # only tested here; might work on others
+  };
+}
diff --git a/pkgs/applications/graphics/cq-editor/default.nix b/pkgs/applications/graphics/cq-editor/default.nix
index a6b35b1d8ea..036edf80ab9 100644
--- a/pkgs/applications/graphics/cq-editor/default.nix
+++ b/pkgs/applications/graphics/cq-editor/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivationWith python3Packages.buildPythonApplication rec {
   pname = "cq-editor";
-  version = "0.1RC1";
+  version = "0.1.1";
 
   src = fetchFromGitHub {
     owner = "CadQuery";
     repo = "CQ-editor";
     rev = version;
-    sha256 = "0iwcpnj15s64k16948sakvkn1lb4mqwrhmbxk3r03bczs0z33zax";
+    sha256 = "1970izjaa60r5cg9i35rzz9lk5c5d8q1vw1rh2skvfbf63z1hnzv";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix
index 948b4ddd54d..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 ];
@@ -43,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/displaycal/default.nix b/pkgs/applications/graphics/displaycal/default.nix
index 7a99361a03d..5b324a5974d 100644
--- a/pkgs/applications/graphics/displaycal/default.nix
+++ b/pkgs/applications/graphics/displaycal/default.nix
@@ -12,16 +12,16 @@
  }:
 
 let
-  inherit (python2.pkgs) buildPythonApplication wxPython numpy;
-in buildPythonApplication {
+  inherit (python2.pkgs) buildPythonApplication wxPython numpy dbus-python;
+in buildPythonApplication rec {
   pname = "displaycal";
-  version = "3.5.0.0";
+  version = "3.8.9.3";
 
   enableParallelBuilding = true;
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/dispcalgui/release/3.5.0.0/DisplayCAL-3.5.0.0.tar.gz";
-    sha256 = "1j496sv8pbhby5hkkbp07k6bs3f7mb1l3dijmn2iga3kmix0fn5q";
+    url = "mirror://sourceforge/project/dispcalgui/release/${version}/DisplayCAL-${version}.tar.gz";
+    sha256 = "1sivi4q7sqsrc95qg5gh37bsm2761md4mpl89hflzwk6kyyxyd3w";
   };
 
   propagatedBuildInputs = [
@@ -34,6 +34,7 @@ in buildPythonApplication {
     argyllcms
     wxPython
     numpy
+    dbus-python
   ];
 
   nativeBuildInputs = [
@@ -42,7 +43,8 @@ in buildPythonApplication {
 
   preConfigure = ''
     mkdir dist
-    cp {misc,dist}/DisplayCAL.appdata.xml
+    cp {misc,dist}/net.displaycal.DisplayCAL.appdata.xml
+    touch dist/copyright
     mkdir -p $out
     ln -s $out/share/DisplayCAL $out/Resources
   '';
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 8281596374c..a8dbff6ca8b 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.0.3";
+  version = "13.6.2";
 
   src = fetchurl {
     url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
-    sha256 = "104pfwipm8ch9xqlsz1gh18icr1p6i3n4c77bbdjakxcy4s5n7sg";
+    sha256 = "17nahdv06d41vyqkcqflf652wjp410i3hn4rhlv5cnd3jcr5vgih";
   };
 
   nativeBuildInputs = [
@@ -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/evilpixie/default.nix b/pkgs/applications/graphics/evilpixie/default.nix
new file mode 100644
index 00000000000..1f6a52aa0b0
--- /dev/null
+++ b/pkgs/applications/graphics/evilpixie/default.nix
@@ -0,0 +1,59 @@
+{ mkDerivation
+, lib
+, fetchFromGitHub
+, makeDesktopItem
+, qmake
+, qtbase
+, libpng
+, giflib
+, impy
+}:
+
+let
+  desktopItem = makeDesktopItem {
+    name = "EvilPixie";
+    desktopName = "EvilPixie";
+    exec = "evilpixie %F";
+    icon = "evilpixie";
+    genericName = "Image Editor";
+    categories = "Graphics;2DGraphics;RasterGraphics;";
+    mimeType = "image/bmp;image/gif;image/jpeg;image/jpg;image/png;image/x-pcx;image/x-targa;image/x-tga;";
+  };
+
+in mkDerivation rec {
+  pname = "evilpixie";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner = "bcampbell";
+    repo = "evilpixie";
+    rev = "v${version}";
+    sha256 = "1yg4ic3kcxqmr7k5bbvrv5iavlnhpdx6510z5wha9k9k5q9c4dvh";
+  };
+
+  nativeBuildInputs = [
+    qmake
+  ];
+
+  buildInputs = [
+    qtbase
+    libpng
+    giflib
+    impy
+  ];
+
+  postInstall = ''
+    ln -s ${desktopItem}/share/applications $out/share
+    install -Dm 444 icon_128x128.png $out/share/icons/hicolor/128x128/apps/evilpixie.png
+  '';
+
+  meta = with lib; {
+    description = "Pixel-oriented paint program, modelled on Deluxe Paint";
+    homepage = "http://evilpixie.scumways.com/";
+    downloadPage = "https://github.com/bcampbell/evilpixie/releases";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/pkgs/applications/graphics/feh/default.nix b/pkgs/applications/graphics/feh/default.nix
index a0e04bf4ad3..4782d920148 100644
--- a/pkgs/applications/graphics/feh/default.nix
+++ b/pkgs/applications/graphics/feh/default.nix
@@ -1,16 +1,17 @@
 { stdenv, fetchurl, makeWrapper
 , xorg, imlib2, libjpeg, libpng
-, curl, libexif, jpegexiforient, perlPackages }:
+, curl, libexif, jpegexiforient, perlPackages
+, enableAutoreload ? true }:
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "feh";
-  version = "3.4";
+  version = "3.4.1";
 
   src = fetchurl {
     url = "https://feh.finalrewind.org/${pname}-${version}.tar.bz2";
-    sha256 = "0r83zincbfnk8g13xwm2qaccml9srnwlsmpc1f0nhwjkqyjmqm0q";
+    sha256 = "0yvvj1s7ayn0lwils582smwkmckdk0gij5c58g45n4xh981n693q";
   };
 
   outputs = [ "out" "man" "doc" ];
@@ -21,7 +22,8 @@ stdenv.mkDerivation rec {
 
   makeFlags = [
     "PREFIX=${placeholder "out"}" "exif=1"
-  ] ++ optional stdenv.isDarwin "verscmp=0";
+  ] ++ optional stdenv.isDarwin "verscmp=0"
+    ++ optional enableAutoreload "inotify=1";
 
   installTargets = [ "install" ];
   postInstall = ''
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 877328e8823..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
@@ -20,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fondo";
-  version = "1.3.8";
+  version = "1.3.9";
 
   src = fetchFromGitHub {
     owner = "calo001";
     repo = pname;
     rev = version;
-    sha256 = "126diirhmm2igxdpgfv1l20wnz5q8hadgq53d0j83ka72mfd3qg6";
+    sha256 = "1gyi80j2c38j62miv8a8nsx1pad169sa4fx0b85m2yv0x7fz492w";
   };
 
   nativeBuildInputs = [
@@ -57,7 +58,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/graphics/freecad/default.nix b/pkgs/applications/graphics/freecad/default.nix
index eb087c42ce0..657caeca8b3 100644
--- a/pkgs/applications/graphics/freecad/default.nix
+++ b/pkgs/applications/graphics/freecad/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d, xercesc, ode
-, eigen, qtbase, qttools, qtwebkit, opencascade-occt, gts, hdf5, vtk, medfile
-, zlib, python3Packages, swig, gfortran, libXmu, soqt, libf2c, libGLU
-, makeWrapper, pkgconfig, mpi ? null }:
+{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d,
+xercesc, ode, eigen, qtbase, qttools, qtwebkit, wrapQtAppsHook,
+opencascade-occt, gts, hdf5, vtk, medfile, zlib, python3Packages, swig,
+gfortran, libXmu, soqt, libf2c, libGLU, makeWrapper, pkgconfig, mpi ? null }:
 
 assert mpi != null;
 
@@ -18,8 +18,16 @@ in mkDerivation rec {
     sha256 = "1phs9a0px5fnzpyx930cz39p5dis0f0yajxzii3c3sazgkzrd55s";
   };
 
-  nativeBuildInputs = [ cmake ninja pkgconfig pythonPackages.pyside2-tools ];
-  buildInputs = [ cmake coin3d xercesc ode eigen opencascade-occt gts
+  nativeBuildInputs = [
+    cmake
+    ninja
+    pkgconfig
+    pythonPackages.pyside2-tools
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    cmake coin3d xercesc ode eigen opencascade-occt gts
     zlib swig gfortran soqt libf2c makeWrapper mpi vtk hdf5 medfile
     libGLU libXmu qtbase qttools qtwebkit
   ] ++ (with pythonPackages; [
diff --git a/pkgs/applications/graphics/gimp/default.nix b/pkgs/applications/graphics/gimp/default.nix
index b5df3d768d2..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,23 +49,37 @@
 }:
 
 let
-  inherit (python2Packages) pygtk wrapPython python;
+  python = python2.withPackages (pp: [ pp.pygtk ]);
 in stdenv.mkDerivation rec {
   pname = "gimp";
-  version = "2.10.18";
+  version = "2.10.20";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "http://download.gimp.org/pub/gimp/v${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "Zb/hEejuv/093jAWzLUH+ZSNJmPZSXy0ONm7YJ4R1xY=";
+    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 46be8d14532..337b8f4cba6 100644
--- a/pkgs/applications/graphics/gnome-photos/default.nix
+++ b/pkgs/applications/graphics/gnome-photos/default.nix
@@ -35,13 +35,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-photos";
-  version = "3.34.1";
+  version = "3.34.2";
 
   outputs = [ "out" "installedTests" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1ifm8hmxpf9nnxddfcpkbc5wc5f5hz43yj83nnakzqr6x1mq7gdp";
+    sha256 = "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w";
   };
 
   patches = [
@@ -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/goxel/default.nix b/pkgs/applications/graphics/goxel/default.nix
index 6fb5b91c2a9..40d0f4a3db8 100644
--- a/pkgs/applications/graphics/goxel/default.nix
+++ b/pkgs/applications/graphics/goxel/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "goxel";
-  version = "0.10.5";
+  version = "0.10.6";
 
   src = fetchFromGitHub {
     owner = "guillaumechereau";
     repo = "goxel";
     rev = "v${version}";
-    sha256 = "1b63jqryq19qa81g1ml6d85f27wj1ci3h56r02cl9xn8di5p674f";
+    sha256 = "1wmxy5wfk1xrqgz0y0zcr4vkddylqc70cv4vzk117x6whjnldsm3";
   };
 
   patches = [ ./disable-imgui_ini.patch ];
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/imv/default.nix b/pkgs/applications/graphics/imv/default.nix
index 88b4a847665..276c2cd3d7e 100644
--- a/pkgs/applications/graphics/imv/default.nix
+++ b/pkgs/applications/graphics/imv/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     owner  = "eXeC64";
     repo   = "imv";
     rev    = "v${version}";
-    sha256 = "sha256:0gk8g178i961nn3bls75a8qpv6wvfvav6hd9lxca1skaikd33zdx";
+    sha256 = "0gk8g178i961nn3bls75a8qpv6wvfvav6hd9lxca1skaikd33zdx";
   };
 
   preBuild = ''
@@ -56,6 +56,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://github.com/eXeC64/imv";
     license     = licenses.gpl2;
     maintainers = with maintainers; [ rnhmjoj markus1189 ];
-    platforms   = [ "i686-linux" "x86_64-linux" ];
+    platforms   = platforms.all;
   };
 }
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 86fb6e03491..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 = "ge5/aeK9ZKlzQ9g5Wkp6eQWyG4YVZu1eXZF5F41Rmgs=";
+    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/jpeg-archive/default.nix b/pkgs/applications/graphics/jpeg-archive/default.nix
index 97c15d2eec0..8beaf43c089 100644
--- a/pkgs/applications/graphics/jpeg-archive/default.nix
+++ b/pkgs/applications/graphics/jpeg-archive/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
   meta = with stdenv.lib; {
     description = "Utilities for archiving photos for saving to long term storage or serving over the web";
     homepage    = "https://github.com/danielgtaylor/jpeg-archive";
-    # license = ...; # mixed?
+    license = licenses.mit;
     maintainers = [ maintainers.srghma ];
     platforms   = platforms.all;
   };
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/krop/default.nix b/pkgs/applications/graphics/krop/default.nix
index 2337dfb370e..ee490676977 100644
--- a/pkgs/applications/graphics/krop/default.nix
+++ b/pkgs/applications/graphics/krop/default.nix
@@ -2,22 +2,24 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "krop";
-  version = "0.5.1";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "arminstraub";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0b1zqpks4vzq7sfhf7r9qrshr77f1ncj18x7d0fa3g29rxa42dcr";
+    sha256 = "1ygzc7vlwszqmsd3v1dsqp1dpsn6inx7g8gck63alvf88dbn8m3s";
   };
 
   propagatedBuildInputs = with python3Packages; [
     pyqt5
     pypdf2
     poppler-qt5
-    libsForQt5.poppler
     ghostscript
   ];
+  buildInputs = [
+    libsForQt5.poppler
+  ];
 
   nativeBuildInputs = [ qt5.wrapQtAppsHook ];
   makeWrapperArgs = [
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..1ed5f07c5f0
--- /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.15";
+
+  nativeBuildInputs = [
+    p7zip
+    autoPatchelfHook
+    wrapQtAppsHook
+  ];
+
+  src = fetchurl {
+    url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z";
+    sha256 = "1dwmrili4jfw55gnlnda3imgli7f4jqz9smwlynf7k87lxrhppmh";
+  };
+
+  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..8e8032a1f31 100644
--- a/pkgs/applications/graphics/meshlab/default.nix
+++ b/pkgs/applications/graphics/meshlab/default.nix
@@ -7,112 +7,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.03";
 
-  # 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 = "f3568e75c9aed6da8bb105a1c8ac7ebbe00e4536";
+    sha256 = "17g9icgy1w67afxiljzxk94dyhj4f336gjxn0bhppd58xfqh8w4g";
+    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,9 +35,49 @@ in mkDerivation {
     lib3ds
     bzip2
     muparser
+    eigen
+    glew
+    gmp
     levmar
+    qhull
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  patches = [ ./no-build-date.patch ];
+
+  # MeshLab computes the version based on the build date, remove when https://github.com/cnr-isti-vclab/meshlab/issues/622 is fixed.
+  postPatch = ''
+    substituteAll ${./fix-version.patch} /dev/stdout | patch -p1 --binary
+  '';
+
+  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"
   ];
 
+  # 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/";
diff --git a/pkgs/applications/graphics/meshlab/fix-version.patch b/pkgs/applications/graphics/meshlab/fix-version.patch
new file mode 100644
index 00000000000..5184dfcba25
--- /dev/null
+++ b/pkgs/applications/graphics/meshlab/fix-version.patch
@@ -0,0 +1,5 @@
+--- a/src/common/mlapplication.h

++++ b/src/common/mlapplication.h

+@@ -23 +23 @@ public:

+-        return QString::number(compileTimeYear()) + "." + (compileTimeMonth() < 10 ? "0" + QString::number(compileTimeMonth()) : QString::number(compileTimeMonth()));

++        return "@version@";

diff --git a/pkgs/applications/graphics/meshlab/meshlab.desktop b/pkgs/applications/graphics/meshlab/meshlab.desktop
new file mode 100644
index 00000000000..a9c7ef79784
--- /dev/null
+++ b/pkgs/applications/graphics/meshlab/meshlab.desktop
@@ -0,0 +1,15 @@
+[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;application/sla;
+Categories=Graphics;3DGraphics;Viewer;Qt;
+END_DESKTOP
\ No newline at end of file
diff --git a/pkgs/applications/graphics/meshlab/no-build-date.patch b/pkgs/applications/graphics/meshlab/no-build-date.patch
new file mode 100644
index 00000000000..9588596e5b2
--- /dev/null
+++ b/pkgs/applications/graphics/meshlab/no-build-date.patch
@@ -0,0 +1,10 @@
+--- a/src/meshlab/mainwindow_RunTime.cpp
++++ b/src/meshlab/mainwindow_RunTime.cpp
+@@ -3312 +3312 @@ void MainWindow::about()
+-    temp.labelMLName->setText(MeshLabApplication::completeName(MeshLabApplication::HW_ARCHITECTURE(QSysInfo::WordSize))+"   (built on "+__DATE__+")");
++    temp.labelMLName->setText(MeshLabApplication::completeName(MeshLabApplication::HW_ARCHITECTURE(QSysInfo::WordSize)));
+--- a/src/meshlabplugins/filter_plymc/plymc_main.cpp
++++ b/src/meshlabplugins/filter_plymc/plymc_main.cpp
+@@ -121 +121 @@ int main(int argc, char *argv[])
+-  printf(   "\n                  PlyMC "_PLYMC_VER" ("__DATE__")\n"
++  printf(   "\n                  PlyMC "_PLYMC_VER"\n"
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 f0d9329bc5a..f1bd85bae0c 100644
--- a/pkgs/applications/graphics/nomacs/default.nix
+++ b/pkgs/applications/graphics/nomacs/default.nix
@@ -18,25 +18,15 @@
 
 mkDerivation rec {
   pname = "nomacs";
-  version = "3.12";
+  version = "3.17.2045";
 
   src = fetchFromGitHub {
     owner = "nomacs";
     repo = "nomacs";
     rev = version;
-    sha256 = "12582i5v85da7vwjxj8grj99hxg34ij5cn3b1578wspdfw1xfy1i";
+    sha256 = "1lchdmmw2sg0xbpcnsk3sxh120xpcv1lh2khf4h5zzdlccbklq7l";
   };
 
-  patches = [
-    ./nomacs-iostream.patch
-    (fetchpatch {
-      name = "darwin-less-restrictive-opencv.patch";
-      url = "https://github.com/nomacs/nomacs/commit/d182fce4bcd9a25bd15e3de065ca67849a32458c.patch";
-      sha256 = "0j6sviwrjn69nqf59hjn30c4j838h8az7rnlwcx8ymlb21vd9x2h";
-      stripLen = 1;
-    })
-  ];
-
   enableParallelBuilding = true;
 
   setSourceRoot = ''
@@ -65,7 +55,7 @@ mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = "https://nomacs.org";
     description = "Qt-based image viewer";
-    maintainers = [maintainers.ahmedtd];
+    maintainers = with stdenv.lib.maintainers; [ mindavi ];
     license = licenses.gpl3Plus;
     repositories.git = "https://github.com/nomacs/nomacs.git";
     inherit (qtbase.meta) platforms;
diff --git a/pkgs/applications/graphics/nomacs/nomacs-iostream.patch b/pkgs/applications/graphics/nomacs/nomacs-iostream.patch
deleted file mode 100644
index 53224e0260e..00000000000
--- a/pkgs/applications/graphics/nomacs/nomacs-iostream.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/src/DkCore/DkMetaData.cpp b/src/DkCore/DkMetaData.cpp
-index d195757e..affec7be 100644
---- a/src/DkCore/DkMetaData.cpp
-+++ b/src/DkCore/DkMetaData.cpp
-@@ -42,6 +42,8 @@
- #include <QApplication>
- #pragma warning(pop)		// no warnings from includes - end
-
-+#include <iostream>
-+
- namespace nmc {
-
- // DkMetaDataT --------------------------------------------------------------------
-diff --git a/src/DkGui/DkNoMacs.cpp b/src/DkGui/DkNoMacs.cpp
-index 6a412f70..bbfba233 100644
---- a/src/DkGui/DkNoMacs.cpp
-+++ b/src/DkGui/DkNoMacs.cpp
-@@ -96,6 +96,8 @@
- #include <QWinTaskbarButton>
- #endif
-
-+#include <iostream>
-+
- namespace nmc {
-
- DkNomacsOSXEventFilter::DkNomacsOSXEventFilter(QObject *parent) : QObject(parent) {
diff --git a/pkgs/applications/graphics/openscad/default.nix b/pkgs/applications/graphics/openscad/default.nix
index 62e9fa06abc..8ff4d6f27e0 100644
--- a/pkgs/applications/graphics/openscad/default.nix
+++ b/pkgs/applications/graphics/openscad/default.nix
@@ -58,6 +58,8 @@ mkDerivation rec {
     mv $out/bin/*.app $out/Applications
     rmdir $out/bin || true
 
+    wrapQtApp "$out"/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD
+
     mv --target-directory=$out/Applications/OpenSCAD.app/Contents/Resources \
       $out/share/openscad/{examples,color-schemes,locale,libraries,fonts}
 
diff --git a/pkgs/applications/graphics/paraview/default.nix b/pkgs/applications/graphics/paraview/default.nix
index 15d70d14308..b201f9dbf0d 100644
--- a/pkgs/applications/graphics/paraview/default.nix
+++ b/pkgs/applications/graphics/paraview/default.nix
@@ -1,26 +1,33 @@
-{ stdenv, fetchFromGitHub, cmake, makeWrapper, qtbase , qttools, python
-, libGLU, libGL , libXt, qtx11extras, qtxmlpatterns , mkDerivation }:
+{ boost, cmake, fetchFromGitHub, ffmpeg, qtbase, qtx11extras,
+  qttools, qtxmlpatterns, qtsvg, gdal, gfortran, libXt, makeWrapper,
+  mkDerivation, ninja, openmpi, python3, stdenv, tbb, libGLU, libGL }:
 
 mkDerivation rec {
   pname = "paraview";
-  version = "5.6.3";
+  version = "5.8.0";
 
-  # fetching from GitHub instead of taking an "official" source
-  # tarball because of missing submodules there
   src = fetchFromGitHub {
     owner = "Kitware";
     repo = "ParaView";
     rev = "v${version}";
-    sha256 = "0zcij59pg47c45gfddnpbin13w16smzhcbivzm1k4pg4366wxq1q";
+    sha256 = "1mka6wwg9mbkqi3phs29mvxq6qbc44sspbm4awwamqhilh4grhrj";
     fetchSubmodules = true;
   };
 
-  cmakeFlags = [
-    "-DPARAVIEW_ENABLE_PYTHON=ON"
-    "-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON"
-    "-DPARAVIEW_ENABLE_EMBEDDED_DOCUMENTATION=OFF"
-    "-DOpenGL_GL_PREFERENCE=GLVND"
-  ];
+  # Avoid error: format not a string literal and
+  # no format arguments [-Werror=format-security]
+  preConfigure = ''
+    substituteInPlace VTK/Common/Core/vtkLogger.h \
+      --replace 'vtkLogScopeF(verbosity_name, __func__)' 'vtkLogScopeF(verbosity_name, "%s", __func__)'
+
+    substituteInPlace VTK/Common/Core/vtkLogger.h \
+      --replace 'vtkVLogScopeF(level, __func__)' 'vtkVLogScopeF(level, "%s", __func__)'
+  '';
+
+  # Find the Qt platform plugin "minimal"
+  patchPhase = ''
+    export QT_PLUGIN_PATH=${qtbase.bin}/${qtbase.qtPluginPrefix}
+  '';
 
   # During build, binaries are called that rely on freshly built
   # libraries.  These reside in build/lib, and are not found by
@@ -29,37 +36,50 @@ mkDerivation rec {
     export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib:$PWD/VTK/ThirdParty/vtkm/vtk-m/lib
   '';
 
-  enableParallelBuilding = true;
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DPARAVIEW_ENABLE_FFMPEG=ON"
+    "-DPARAVIEW_ENABLE_GDAL=ON"
+    "-DPARAVIEW_ENABLE_MOTIONFX=ON"
+    "-DPARAVIEW_ENABLE_VISITBRIDGE=ON"
+    "-DPARAVIEW_ENABLE_XDMF3=ON"
+    "-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON"
+    "-DPARAVIEW_USE_MPI=ON"
+    "-DPARAVIEW_USE_PYTHON=ON"
+    "-DVTK_SMP_IMPLEMENTATION_TYPE=TBB"
+    "-DVTKm_ENABLE_MPI=ON"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DOpenGL_GL_PREFERENCE=GLVND"
+    "-GNinja"
+  ];
 
   nativeBuildInputs = [
     cmake
     makeWrapper
+    ninja
+    gfortran
   ];
 
   buildInputs = [
-    python
-    python.pkgs.numpy
     libGLU libGL
     libXt
+    openmpi
+    (python3.withPackages (ps: with ps; [ numpy matplotlib mpi4py ]))
+    tbb
+    boost
+    ffmpeg
+    gdal
     qtbase
     qtx11extras
     qttools
     qtxmlpatterns
+    qtsvg
   ];
 
-  # Paraview links into the Python library, resolving symbolic links on the way,
-  # so we need to put the correct sitePackages (with numpy) back on the path
-  preFixup = ''
-    wrapQtApp $out/bin/paraview \
-      --prefix PYTHONPATH "${python.pkgs.numpy}/${python.sitePackages}"
-    wrapQtApp $out/bin/pvbatch \
-      --prefix PYTHONPATH "${python.pkgs.numpy}/${python.sitePackages}"
-    wrapQtApp $out/bin/pvpython \
-      --prefix PYTHONPATH "${python.pkgs.numpy}/${python.sitePackages}"
-  '';
-
   meta = with stdenv.lib; {
-    homepage = "http://www.paraview.org/";
+    homepage = "https://www.paraview.org/";
     description = "3D Data analysis and visualization application";
     license = licenses.free;
     maintainers = with maintainers; [ guibert ];
diff --git a/pkgs/applications/graphics/pdfcpu/default.nix b/pkgs/applications/graphics/pdfcpu/default.nix
index b127be821c1..a1c354b2ac5 100644
--- a/pkgs/applications/graphics/pdfcpu/default.nix
+++ b/pkgs/applications/graphics/pdfcpu/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "pdfcpu";
-  version = "0.3.2";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "pdfcpu";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0a7d36hzcvj68apzc726r2vqsjyrkcynxif5laarxapm6p67g3z4";
+    sha256 = "00c4psgfh4hia144zsdhrq83bw3fqda1ancv2gkn5ymxkbpnpyrn";
   };
 
-  modSha256 = "0ak34wr5cbcvblndslsxdd24vfj3h02xqjqnj5amkll5iqn5mzi1";
+  vendorSha256 = "09alkpfyxapycv6zsaz7prgbr0a1jzd78n7w2mh01mg4hhb2j3k7";
+
+  doCheck = false;
 
   subPackages = [ "cmd/pdfcpu" ];
 
@@ -20,7 +22,5 @@ buildGoModule rec {
     homepage = "https://pdfcpu.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ doronbehar ];
-    platforms = platforms.all;
   };
 }
-
diff --git a/pkgs/applications/graphics/pqiv/default.nix b/pkgs/applications/graphics/pqiv/default.nix
index 505f28a2451..bb29101b4c7 100644
--- a/pkgs/applications/graphics/pqiv/default.nix
+++ b/pkgs/applications/graphics/pqiv/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pkgconfig
-, ffmpeg, gtk3, imagemagick, libarchive, libspectre, libwebp, poppler
+, ffmpeg_3, gtk3, imagemagick, libarchive, libspectre, libwebp, poppler
 }:
 
 stdenv.mkDerivation (rec {
@@ -14,7 +14,7 @@ stdenv.mkDerivation (rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ ffmpeg gtk3 imagemagick libarchive libspectre libwebp poppler ];
+  buildInputs = [ ffmpeg_3 gtk3 imagemagick libarchive libspectre libwebp poppler ];
 
   prePatch = "patchShebangs .";
 
diff --git a/pkgs/applications/graphics/processing/default.nix b/pkgs/applications/graphics/processing/default.nix
index cad6a35ce3f..de5ae4fcbfd 100644
--- a/pkgs/applications/graphics/processing/default.nix
+++ b/pkgs/applications/graphics/processing/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "processing";
-  version = "3.5.3";
+  version = "3.5.4";
 
   src = fetchFromGitHub {
     owner = "processing";
     repo = "processing";
-    rev = "processing-0269-${version}";
-    sha256 = "0ajniy3a0i0rx7is46r85yh3ah4zm4ra1gbllmihw9pmnfjgfajn";
+    rev = "processing-0270-${version}";
+    sha256 = "0cvv8jda9y8qnfcsziasyv3w7h3w22q78ihr23cm4an63ghxci58";
   };
 
   nativeBuildInputs = [ ant rsync makeWrapper ];
@@ -22,8 +22,10 @@ stdenv.mkDerivation rec {
     # do not download a file during build
     ${xmlstarlet}/bin/xmlstarlet ed --inplace -P -d '//get[@src="http://download.processing.org/reference.zip"]' build/build.xml
     install -D -m0444 ${fetchurl {
-                          url    = "http://download.processing.org/reference.zip";
-                          sha256 = "198bpk8mzns6w5h0zdf50wr6iv7sgdi6v7jznj5rbsnpgyilxz35";
+                          # Use archive.org link for reproducibility until the following issue is fixed:
+                          # https://github.com/processing/processing/issues/5711
+                          url = "https://web.archive.org/web/20200406132357/https://download.processing.org/reference.zip";
+                          sha256 = "093hc7kc9wfxqgf5dzfmfp68pbsy8x647cj0a25vgjm1swi61zbi";
                         }
                        } ./java/reference.zip
 
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 bf0b92b6f6d..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.7";
+  version = "1.9";
   pname = "renderdoc";
 
   src = fetchFromGitHub {
     owner = "baldurk";
     repo = "renderdoc";
     rev = "v${version}";
-    sha256 = "0r0y0lx48hkyf39pgippsc9q8hdcf57bdva6gx7f35vlhicx5hlz";
+    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 11529eee210..bd4a5ac9ad9 100644
--- a/pkgs/applications/graphics/sane/backends/airscan/default.nix
+++ b/pkgs/applications/graphics/sane/backends/airscan/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, avahi, libsoup, libjpeg
+{ lib, stdenv, fetchFromGitHub, pkg-config, avahi, libsoup, libjpeg, libpng
 , sane-backends, meson, ninja }:
 stdenv.mkDerivation rec {
   pname = "sane-airscan";
-  version = "0.9.17";
+  version = "0.99.8";
 
   nativeBuildInputs = [ meson ninja pkg-config ];
-  buildInputs = [ avahi libsoup libjpeg sane-backends ];
+  buildInputs = [ avahi libsoup libjpeg libpng sane-backends ];
 
   src = fetchFromGitHub {
     owner = "alexpevzner";
     repo = pname;
     rev = version;
-    sha256 = "03y0c1z5s3wbvxa9nvji62w42cmvcgm2sw72j7wm831995q3abmx";
+    sha256 = "0sdlnbzhnfn4i5mkqhc8zmjywbbjqkbnsiz2gpqhy6fypshryahz";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/graphics/sane/backends/default.nix b/pkgs/applications/graphics/sane/backends/default.nix
index 6aba42d33e6..ad2681d25fe 100644
--- a/pkgs/applications/graphics/sane/backends/default.nix
+++ b/pkgs/applications/graphics/sane/backends/default.nix
@@ -1,10 +1,10 @@
 { callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
-  version = "1.0.28";
+  version = "1.0.30";
 
   src = fetchurl {
-    url = "https://gitlab.com/sane-project/backends/uploads/9e718daff347826f4cfe21126c8d5091/sane-backends-${version}.tar.gz";
-    sha256 = "00yy8q9hqdf0zjxxl4d8njr9zf0hhi3a9ib23ikc2anqf8zhy9ii";
+    url = "https://gitlab.com/sane-project/backends/uploads/c3dd60c9e054b5dee1e7b01a7edc98b0/sane-backends-${version}.tar.gz";
+    sha256 = "18vryaycps3zpjzxh0wjgg8nv2f4pdvcfxxmdfj28qbzqjlrcp9z";
   };
 })
diff --git a/pkgs/applications/graphics/shotwell/default.nix b/pkgs/applications/graphics/shotwell/default.nix
index b03d0a01dd6..3549a16e270 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
@@ -77,6 +78,7 @@ stdenv.mkDerivation rec {
     libraw
     json-glib
     glib
+    glib-networking
     gdk-pixbuf
     librsvg
     librest
diff --git a/pkgs/applications/graphics/swingsane/default.nix b/pkgs/applications/graphics/swingsane/default.nix
index fc9132ec0b4..ffc19653dad 100644
--- a/pkgs/applications/graphics/swingsane/default.nix
+++ b/pkgs/applications/graphics/swingsane/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
       desktopName = "SwingSane";
       genericName = "Scan from local or remote SANE servers";
       comment = meta.description;
-      categories = "Office;Application;";
+      categories = "Office;";
     };
 
   in ''
diff --git a/pkgs/applications/graphics/tev/default.nix b/pkgs/applications/graphics/tev/default.nix
index f6ad16d7f90..2f47ebab66e 100644
--- a/pkgs/applications/graphics/tev/default.nix
+++ b/pkgs/applications/graphics/tev/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "tev";
-  version = "1.15";
+  version = "1.16";
 
   src = fetchFromGitHub {
     owner = "Tom94";
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "173nxvj30xmbdj8fc3rbw0mlicxy6zbhxv01i7z5nmcdvpamkdx6";
+    sha256 = "0fn5j9klzrjvz3bq8p9yp9nqikn2fr7bp98c1sxwpwwaadkqy9xf";
   };
 
   nativeBuildInputs = [ cmake wrapGAppsHook ];
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/xara/debian-patches.nix b/pkgs/applications/graphics/xara/debian-patches.nix
deleted file mode 100644
index dd306146186..00000000000
--- a/pkgs/applications/graphics/xara/debian-patches.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-# Generated by debian-patches.sh from debian-patches.txt
-let
-  prefix = "http://patch-tracker.debian.org/patch/series/dl/xaralx/0.7r1785-5";
-in
-[
-  {
-    url = "${prefix}/30_gtk_wxwidgets_symbol_clash";
-    sha256 = "1rc9dh9mnp93mad96dkp7idyhhcw7h6w0g5s92mqgzj79hqgaziz";
-  }
-  {
-    url = "${prefix}/40_algorithm_include";
-    sha256 = "03jhl1qnxj7nl8malf6v1y24aldfz87x1p2jxp04mrr35nzvyyc0";
-  }
-  {
-    url = "${prefix}/50_update_imagemagick_version_parser";
-    sha256 = "1nilsqghlr649sc14n1aqkhdx7f66rq91gqccdpi17jwijs27497";
-  }
-  {
-    url = "${prefix}/remove-icon-suffix";
-    sha256 = "160zmkgwlsanqivnip89558yvd9zvqp8ks2wbyr2aigl2rafin22";
-  }
-  {
-    url = "${prefix}/45_fix_gcc4";
-    sha256 = "06zsj0z9v5n557gj8337v6xd26clbvm4dc0qhvpvzbisq81l9jyi";
-  }
-  {
-    url = "${prefix}/55_fix_contstuctor_call";
-    sha256 = "0b14glrcwhv0ja960h56n5jm4f9563ladap2pgaywihq485ql1c1";
-  }
-]
diff --git a/pkgs/applications/graphics/xara/debian-patches.txt b/pkgs/applications/graphics/xara/debian-patches.txt
deleted file mode 100644
index 5c95d401a32..00000000000
--- a/pkgs/applications/graphics/xara/debian-patches.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-xaralx/0.7r1785-5
-30_gtk_wxwidgets_symbol_clash
-40_algorithm_include
-50_update_imagemagick_version_parser
-remove-icon-suffix
-45_fix_gcc4
-55_fix_contstuctor_call
diff --git a/pkgs/applications/graphics/xara/default.nix b/pkgs/applications/graphics/xara/default.nix
deleted file mode 100644
index 5e3c252435c..00000000000
--- a/pkgs/applications/graphics/xara/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{stdenv, fetchurl, automake, gettext, freetype, libxml2, pango, pkgconfig
-, wxGTK, gtk2, perl, zip}:
-
-stdenv.mkDerivation {
-  name = "xaralx-0.7r1785";
-
-  src = fetchurl {
-    url = "http://downloads2.xara.com/opensource/XaraLX-0.7r1785.tar.bz2";
-    sha256 = "05xbzq1i1vw2mdsv7zjqfpxfv3g1j0g5kks0gq6sh373xd6y8lyh";
-  };
-
-  nativeBuildInputs = [ automake pkgconfig gettext perl zip ];
-  buildInputs = [ wxGTK gtk2 libxml2 freetype pango ];
-
-  configureFlags = [ "--disable-svnversion" ];
-
-  patches = map fetchurl (import ./debian-patches.nix);
-
-  prePatch = "patchShebangs Scripts";
-
-  meta.broken = true;
-}
diff --git a/pkgs/applications/graphics/xfractint/default.nix b/pkgs/applications/graphics/xfractint/default.nix
index 8d36e4630dc..5c7b4c22a38 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.04p15";
   # 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 = "1wv2hgyjvrjxzqxb55vz65ra80p24j8sd34llykk2qlx73x8f3nk";
   };
 
   buildInputs = [libX11 libXft];
diff --git a/pkgs/applications/graphics/yeetgif/default.nix b/pkgs/applications/graphics/yeetgif/default.nix
index 157ef3753e0..84bcdee5b76 100644
--- a/pkgs/applications/graphics/yeetgif/default.nix
+++ b/pkgs/applications/graphics/yeetgif/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "yeetgif";
-  version = "1.23.5";
+  version = "1.23.6";
 
   goPackagePath = "github.com/sgreben/yeetgif";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "sgreben";
     repo = pname;
     rev = version;
-    sha256 = "1yz4pps8g378lvmi92cnci6msjj7fprp9bxqmnsyn6lqw7s2wb47";
+    sha256 = "05z1ylsra60bb4cvr383g9im94zsph1dgicqbv5p73qgs634ckk7";
   };
 
   meta = with lib; {
@@ -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..2c163445d5b 100644
--- a/pkgs/applications/kde/akonadi/default.nix
+++ b/pkgs/applications/kde/akonadi/default.nix
@@ -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/ark/default.nix b/pkgs/applications/kde/ark/default.nix
index dbbfcf80c6b..76cc423f546 100644
--- a/pkgs/applications/kde/ark/default.nix
+++ b/pkgs/applications/kde/ark/default.nix
@@ -9,14 +9,14 @@
   libarchive, libzip,
 
   # Archive tools
-  lrzip,
+  p7zip, lrzip,
 
   # Unfree tools
   unfreeEnableUnrar ? false, unrar,
 }:
 
 let
-  extraTools = [ lrzip ] ++ lib.optional unfreeEnableUnrar unrar;
+  extraTools = [ p7zip lrzip ] ++ lib.optional unfreeEnableUnrar unrar;
 in
 
 mkDerivation {
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/default.nix b/pkgs/applications/kde/default.nix
index 60df1f899de..ea2e3722419 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,6 +92,7 @@ let
       kaddressbook = callPackage ./kaddressbook.nix {};
       kalarm = callPackage ./kalarm.nix {};
       kalarmcal = callPackage ./kalarmcal.nix {};
+      kapptemplate = callPackage ./kapptemplate.nix { };
       kate = callPackage ./kate.nix {};
       kbreakout = callPackage ./kbreakout.nix {};
       kcachegrind = callPackage ./kcachegrind.nix {};
@@ -109,6 +113,7 @@ let
       kdialog = callPackage ./kdialog.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 {};
@@ -142,6 +147,7 @@ let
       kpat = callPackage ./kpat.nix {};
       kpimtextedit = callPackage ./kpimtextedit.nix {};
       ksmtp = callPackage ./ksmtp {};
+      ksquares = callPackage ./ksquares.nix {};
       kqtquickcharts = callPackage ./kqtquickcharts.nix {};
       kpkpass = callPackage ./kpkpass.nix {};
       krdc = callPackage ./krdc.nix {};
@@ -173,6 +179,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..3d632271869 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.04.3/src)
diff --git a/pkgs/applications/kde/ffmpegthumbs.nix b/pkgs/applications/kde/ffmpegthumbs.nix
index aa03425f36a..225efba3768 100644
--- a/pkgs/applications/kde/ffmpegthumbs.nix
+++ b/pkgs/applications/kde/ffmpegthumbs.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules,
-  ffmpeg, kio
+  ffmpeg_3, kio
 }:
 
 mkDerivation {
@@ -11,5 +11,5 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ ffmpeg kio ];
+  buildInputs = [ ffmpeg_3 kio ];
 }
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/k3b.nix b/pkgs/applications/kde/k3b.nix
index 9b16485cfa7..4bf707cd043 100644
--- a/pkgs/applications/kde/k3b.nix
+++ b/pkgs/applications/kde/k3b.nix
@@ -5,7 +5,7 @@
 , flac, lame, libmad, libmpcdec, libvorbis
 , libsamplerate, libsndfile, taglib
 , cdparanoia, cdrdao, cdrtools, dvdplusrwtools, libburn, libdvdcss, libdvdread, vcdimager
-, ffmpeg, libmusicbrainz3, normalize, sox, transcode, kinit
+, ffmpeg_3, libmusicbrainz3, normalize, sox, transcode, kinit
 }:
 
 mkDerivation {
@@ -28,7 +28,7 @@ mkDerivation {
     # cd/dvd
     cdparanoia libdvdcss libdvdread
     # others
-    ffmpeg libmusicbrainz3 shared-mime-info
+    ffmpeg_3 libmusicbrainz3 shared-mime-info
   ];
   propagatedUserEnvPkgs = [ (lib.getBin kinit) ];
   postFixup =
diff --git a/pkgs/applications/kde/kapptemplate.nix b/pkgs/applications/kde/kapptemplate.nix
new file mode 100644
index 00000000000..a5e211318a2
--- /dev/null
+++ b/pkgs/applications/kde/kapptemplate.nix
@@ -0,0 +1,24 @@
+{ lib
+, mkDerivation
+, fetchurl
+, cmake
+, extra-cmake-modules
+, qtbase
+, kactivities
+}:
+mkDerivation {
+
+  name = "kapptemplate";
+
+  nativeBuildInputs = [ extra-cmake-modules cmake  ];
+
+  buildInputs = [ kactivities qtbase ];
+
+  meta = with lib; {
+    description = "KDE App Code Template Generator";
+    license = licenses.gpl2;
+    homepage = "https://kde.org/applications/en/development/org.kde.kapptemplate";
+    maintainers = [ maintainers.shamilton ];
+    platforms = platforms.linux;
+  };
+}
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 95496f90e04..795ba87ad5b 100644
--- a/pkgs/applications/kde/kdenlive.nix
+++ b/pkgs/applications/kde/kdenlive.nix
@@ -25,12 +25,13 @@
 , frei0r
 , phonon-backend-gstreamer
 , qtdeclarative
-, qtquickcontrols
+, qtquickcontrols2
 , qtscript
 , qtwebkit
 , rttr
 , kpurpose
 , kdeclarative
+, wrapGAppsHook
 }:
 
 mkDerivation {
@@ -59,7 +60,7 @@ mkDerivation {
     mlt
     phonon-backend-gstreamer
     qtdeclarative
-    qtquickcontrols
+    qtquickcontrols2
     qtscript
     qtwebkit
     shared-mime-info
@@ -69,6 +70,7 @@ mkDerivation {
     rttr
     kpurpose
     kdeclarative
+    wrapGAppsHook
   ];
   # Both MLT and FFMpeg paths must be set or Kdenlive will complain that it
   # doesn't find them. See:
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/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/kmail.nix b/pkgs/applications/kde/kmail.nix
index ab24f15a14b..6b8941e5787 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,6 +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/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/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/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..12a84991adb 100644
--- a/pkgs/applications/kde/srcs.nix
+++ b/pkgs/applications/kde/srcs.nix
@@ -1,1734 +1,1742 @@
 # 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.04.3";
     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.04.3/src/akonadi-20.04.3.tar.xz";
+      sha256 = "c91cc53afd2f81fbeed55700cd86010ee865de2594948769410167e6992bdb32";
+      name = "akonadi-20.04.3.tar.xz";
     };
   };
   akonadi-calendar = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/akonadi-calendar-20.04.3.tar.xz";
+      sha256 = "ff8732b0d09b87ce0760b7df02ee390d3c0c064780076ed4c6ed05c52ca634bb";
+      name = "akonadi-calendar-20.04.3.tar.xz";
     };
   };
   akonadi-calendar-tools = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/akonadi-calendar-tools-20.04.3.tar.xz";
+      sha256 = "654fec93158e6623a8a81a371fa85d0a18b9f486f6c29926d97a8105a2d65ed2";
+      name = "akonadi-calendar-tools-20.04.3.tar.xz";
     };
   };
   akonadiconsole = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/akonadiconsole-20.04.3.tar.xz";
+      sha256 = "acd6d63a30af49ec66ff30c3ecdd4e53c4f4a15c4d1e41ffd988366b5106447c";
+      name = "akonadiconsole-20.04.3.tar.xz";
     };
   };
   akonadi-contacts = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/akonadi-contacts-20.04.3.tar.xz";
+      sha256 = "5bcd7acc70631e844ed77e127ff895efb573b62ef79062a6065e24b8826af39d";
+      name = "akonadi-contacts-20.04.3.tar.xz";
     };
   };
   akonadi-import-wizard = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/akonadi-import-wizard-20.04.3.tar.xz";
+      sha256 = "225615f9d64166ce33718817dfda7aadada5876204c939edc1455ae01b7bf1b2";
+      name = "akonadi-import-wizard-20.04.3.tar.xz";
     };
   };
   akonadi-mime = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/akonadi-mime-20.04.3.tar.xz";
+      sha256 = "92e9bab71f87c0de8e3437dd4779054332826fe2522c36a7c038c789b207f7ac";
+      name = "akonadi-mime-20.04.3.tar.xz";
     };
   };
   akonadi-notes = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/akonadi-notes-20.04.3.tar.xz";
+      sha256 = "e1b4b6d2347038774589a9a8a935e4697d248008dfd2b5b496e6555974c96a55";
+      name = "akonadi-notes-20.04.3.tar.xz";
     };
   };
   akonadi-search = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/akonadi-search-20.04.3.tar.xz";
+      sha256 = "21ca09d39d6e550ca01e80f1a112557f00387e014763b1f47824d53d41cb5bdf";
+      name = "akonadi-search-20.04.3.tar.xz";
     };
   };
   akregator = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/akregator-20.04.3.tar.xz";
+      sha256 = "e175a1b60270ad76afaf16e8e5630d237cdc068c06d0ae93591494b18ad4584c";
+      name = "akregator-20.04.3.tar.xz";
     };
   };
   analitza = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/analitza-20.04.3.tar.xz";
+      sha256 = "f9d1873c6190dc1eaeb6fad97d4197256342e0b729f7e8199e15bfb495f854b7";
+      name = "analitza-20.04.3.tar.xz";
     };
   };
   ark = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ark-20.04.3.tar.xz";
+      sha256 = "e7251b0b6f12291ffbaa328bf7f8e101ebeef6fd110dabbcf76d8ad7cfd305bc";
+      name = "ark-20.04.3.tar.xz";
     };
   };
   artikulate = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/artikulate-20.04.3.tar.xz";
+      sha256 = "394e93df2b370ba1e6621b2bcf871be42efde6fa2189de29d4c8198e387767ea";
+      name = "artikulate-20.04.3.tar.xz";
     };
   };
   audiocd-kio = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/audiocd-kio-20.04.3.tar.xz";
+      sha256 = "af8782771a5d48fb2e3ba9703f8b8e542f5fddd418ca293d23a6eb83ebe86929";
+      name = "audiocd-kio-20.04.3.tar.xz";
     };
   };
   baloo-widgets = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/baloo-widgets-20.04.3.tar.xz";
+      sha256 = "29394f9d47407074a5ec0f85ceade5dcc8c03f0d9a83c1e339310f19f7711ae3";
+      name = "baloo-widgets-20.04.3.tar.xz";
     };
   };
   blinken = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/blinken-20.04.3.tar.xz";
+      sha256 = "d6901fe40768ba8319609bfd143b2d1c585b04a148aedcb4b358b041db7f1afb";
+      name = "blinken-20.04.3.tar.xz";
     };
   };
   bomber = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/bomber-20.04.3.tar.xz";
+      sha256 = "b292c11ebfb4311420ce6b9a4b132a437d061946e8eb08556fec89bb84c23428";
+      name = "bomber-20.04.3.tar.xz";
     };
   };
   bovo = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/bovo-20.04.3.tar.xz";
+      sha256 = "5365c0fd5a57814f224585e4331be129414d1f5d51d2b90bac8421df4ae5f300";
+      name = "bovo-20.04.3.tar.xz";
     };
   };
   calendarsupport = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/calendarsupport-20.04.3.tar.xz";
+      sha256 = "40b069e1561fac49f46dd0504af0ac459010ac98f30748b8f15a50ca1fd35b5b";
+      name = "calendarsupport-20.04.3.tar.xz";
     };
   };
   cantor = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/cantor-20.04.3.tar.xz";
+      sha256 = "ff589ccb48016fd784de9883fe19ee0c2c450e3993e9cc5f7dc499448db0c6a4";
+      name = "cantor-20.04.3.tar.xz";
     };
   };
   cervisia = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/cervisia-20.04.3.tar.xz";
+      sha256 = "3e2aac0a08c01d9ea5c5814e739f082ec5a510cd8f0f6bce37cfff9130b0f078";
+      name = "cervisia-20.04.3.tar.xz";
     };
   };
   dolphin = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/dolphin-20.04.3.tar.xz";
+      sha256 = "5e493e898e02005780b59474f506904742625b50e4669c113906d4f30daa863e";
+      name = "dolphin-20.04.3.tar.xz";
     };
   };
   dolphin-plugins = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/dolphin-plugins-20.04.3.tar.xz";
+      sha256 = "f0dad66e7302711e136b0253fb73dbf16bc9facdbb4ad617207fb818fc84130a";
+      name = "dolphin-plugins-20.04.3.tar.xz";
     };
   };
   dragon = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/dragon-20.04.3.tar.xz";
+      sha256 = "2b0d6414f2cea9f2a0b2ebddeffa7e5342db96fac34b2a00439fca5784f6131f";
+      name = "dragon-20.04.3.tar.xz";
     };
   };
   elisa = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/elisa-20.04.3.tar.xz";
+      sha256 = "d99dc2eb80d4219d08c72e612ac07cbb6c91c2eff365b49da69cbc3c1e70885b";
+      name = "elisa-20.04.3.tar.xz";
     };
   };
   eventviews = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/eventviews-20.04.3.tar.xz";
+      sha256 = "f10d43f57e62d68b6d0b41e9e3442baee8b68664e085f6e4347ac6adc1af32ff";
+      name = "eventviews-20.04.3.tar.xz";
     };
   };
   ffmpegthumbs = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ffmpegthumbs-20.04.3.tar.xz";
+      sha256 = "089305a75d32cf8bf1b9279623b524912af78aa538379dcccf998ca1ab165164";
+      name = "ffmpegthumbs-20.04.3.tar.xz";
     };
   };
   filelight = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/filelight-20.04.3.tar.xz";
+      sha256 = "d0939d0a04424978c06b675ac784c6a1ecbccbb67a31f5af661c6716bf38f0a4";
+      name = "filelight-20.04.3.tar.xz";
     };
   };
   granatier = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/granatier-20.04.3.tar.xz";
+      sha256 = "9d06047f613a03b32d603e90bd14ca2873be9da9b4b17b98a65242e9855a7aaf";
+      name = "granatier-20.04.3.tar.xz";
     };
   };
   grantlee-editor = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/grantlee-editor-20.04.3.tar.xz";
+      sha256 = "1a3e4ece1a37e11735291bbec99314bc0ede0714377db916ed1266ec19325ef5";
+      name = "grantlee-editor-20.04.3.tar.xz";
     };
   };
   grantleetheme = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/grantleetheme-20.04.3.tar.xz";
+      sha256 = "c5b2e4b1d5e14b39d2e66d160ba0b86c16f86e921abf578640bf1576a5f25eb3";
+      name = "grantleetheme-20.04.3.tar.xz";
     };
   };
   gwenview = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/gwenview-20.04.3.tar.xz";
+      sha256 = "d176021d6784e33cb0aaa6fa2517e81f9eac237079d2a06d6b55b8f4b04e8bd9";
+      name = "gwenview-20.04.3.tar.xz";
     };
   };
   incidenceeditor = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/incidenceeditor-20.04.3.tar.xz";
+      sha256 = "b3c70c926acab7a0585bf2bf7575ebe4d04c439fc49af073d0cb599f3b9e57c2";
+      name = "incidenceeditor-20.04.3.tar.xz";
     };
   };
   juk = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/juk-20.04.3.tar.xz";
+      sha256 = "2566257f83db74d69b95e109146a82e1e03966b3592c891b48e81cf2a13d812b";
+      name = "juk-20.04.3.tar.xz";
     };
   };
   k3b = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/k3b-20.04.3.tar.xz";
+      sha256 = "562dc91be0a992ef0f139310bfd941202e4ae273e11b754d02a8cf6f85f20420";
+      name = "k3b-20.04.3.tar.xz";
     };
   };
   kaccounts-integration = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kaccounts-integration-20.04.3.tar.xz";
+      sha256 = "57661418d6fe58f9c3d308ba8804e5bc83312bba0967e13bf144b1a7dba9b36d";
+      name = "kaccounts-integration-20.04.3.tar.xz";
     };
   };
   kaccounts-providers = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kaccounts-providers-20.04.3.tar.xz";
+      sha256 = "ffeeac1283c453a4bbd4249cbe314eb7f9800a9cbedce192fdb1f12f30670e3e";
+      name = "kaccounts-providers-20.04.3.tar.xz";
     };
   };
   kaddressbook = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kaddressbook-20.04.3.tar.xz";
+      sha256 = "d1c8f6af88572548a90756963921a8555df239467858432079a37788f4980b58";
+      name = "kaddressbook-20.04.3.tar.xz";
     };
   };
   kajongg = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kajongg-20.04.3.tar.xz";
+      sha256 = "0175fb44b4f092fa318113a576f41e0a29dc1f5d7dfbf0ca7877a5c46a095d00";
+      name = "kajongg-20.04.3.tar.xz";
     };
   };
   kalarm = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kalarm-20.04.3.tar.xz";
+      sha256 = "71f94af998495c759b9c2e7bf2092887748301c993f76dbf36f6ac9e4bb2a1f5";
+      name = "kalarm-20.04.3.tar.xz";
     };
   };
   kalarmcal = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kalarmcal-20.04.3.tar.xz";
+      sha256 = "19c9aab451f95f7689d8b18059e84f189b11cf15bb7f60fe55402b944512692e";
+      name = "kalarmcal-20.04.3.tar.xz";
     };
   };
   kalgebra = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kalgebra-20.04.3.tar.xz";
+      sha256 = "988ae02433e961a84da35498aa6ff88fbcc36f8f12d55457116935740d3f1475";
+      name = "kalgebra-20.04.3.tar.xz";
     };
   };
   kalzium = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kalzium-20.04.3.tar.xz";
+      sha256 = "b884fc8c13c3618a73e3ecfd265660e7045245059a951aff32c12ee5981902ca";
+      name = "kalzium-20.04.3.tar.xz";
     };
   };
   kamera = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kamera-20.04.3.tar.xz";
+      sha256 = "dcac50db634fccb3e602abb575322342d50c56832a61731546cf1fec552d5b3e";
+      name = "kamera-20.04.3.tar.xz";
     };
   };
   kamoso = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kamoso-20.04.3.tar.xz";
+      sha256 = "9b6410f75bd47901cdd787ea5a7a7bc93da16837f955f27de9e609d9e7b4b896";
+      name = "kamoso-20.04.3.tar.xz";
     };
   };
   kanagram = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kanagram-20.04.3.tar.xz";
+      sha256 = "7fe8fde45d54b09118238f4a7a63aa2f6fc24ae14c49739ffe71cffc44bc5a95";
+      name = "kanagram-20.04.3.tar.xz";
     };
   };
   kapman = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kapman-20.04.3.tar.xz";
+      sha256 = "e3c34e94a204e6d9a4ebb35c415b8c5707313fba746867f2984fd0e95926d529";
+      name = "kapman-20.04.3.tar.xz";
     };
   };
   kapptemplate = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kapptemplate-20.04.3.tar.xz";
+      sha256 = "72ce76b66ae503591a60081f334c2d2a0e9338a125b64de413e1e4ab81c29013";
+      name = "kapptemplate-20.04.3.tar.xz";
     };
   };
   kate = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kate-20.04.3.tar.xz";
+      sha256 = "38d92f2b95032cd20bd5b78ada2ee25fc9c06593047d063c28419df0839bc334";
+      name = "kate-20.04.3.tar.xz";
     };
   };
   katomic = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/katomic-20.04.3.tar.xz";
+      sha256 = "9ced288f46af528aa31931a0ab1a1b2d346d63ce6729e508163bf3370dbd261f";
+      name = "katomic-20.04.3.tar.xz";
     };
   };
   kbackup = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kbackup-20.04.3.tar.xz";
+      sha256 = "0360f5b5d512a48975e09e5c1d2f035b7c2e1ead00b9b9f76059b76eb4499f92";
+      name = "kbackup-20.04.3.tar.xz";
     };
   };
   kblackbox = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kblackbox-20.04.3.tar.xz";
+      sha256 = "8bf24ceaf33fabd3ec3030b42565dcbb2d8b282553a3222d741b0b43d70d3a38";
+      name = "kblackbox-20.04.3.tar.xz";
     };
   };
   kblocks = {
-    version = "19.12.3";
+    version = "20.04.3";
     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";
+      url = "${mirror}/stable/release-service/20.04.3/src/kblocks-20.04.3.tar.xz";
+      sha256 = "128cbd7751883cc46d3bc0fcf3c2fc40d8d87631ad54c90459727da209237609";
+      name = "kblocks-20.04.3.tar.xz";
     };
   };
   kblog = {
-    version = "19.12.3";
+    version = "20.04.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.04.3/src/kblog-20.04.3.tar.xz";
+      sha256 = "5932a8ba3ec33f13aec201252abb6d0712740f52af03747e9eb0f6c0764cb9b4";
+      name = "kblog-20.04.3.tar.xz";
     };
   };
   kbounce = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kbounce-20.04.3.tar.xz";
+      sha256 = "21977895752b7a33484463cf3fe47ff6f4d5ad4bb8ee824b92b309c5c0ee3837";
+      name = "kbounce-20.04.3.tar.xz";
     };
   };
   kbreakout = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kbreakout-20.04.3.tar.xz";
+      sha256 = "4e9bd79060d826d99573e3db364005b32d70643b0fe0d7c5e427fb1c8a34896b";
+      name = "kbreakout-20.04.3.tar.xz";
     };
   };
   kbruch = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kbruch-20.04.3.tar.xz";
+      sha256 = "7381df5deb97580a0d60881d591b3d18715c8ad5692a580aebe82a836f1bb8df";
+      name = "kbruch-20.04.3.tar.xz";
     };
   };
   kcachegrind = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kcachegrind-20.04.3.tar.xz";
+      sha256 = "ef6e782540c254eada9e75049eb02919afd7adc9940ace79aa20dcad26240770";
+      name = "kcachegrind-20.04.3.tar.xz";
     };
   };
   kcalc = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kcalc-20.04.3.tar.xz";
+      sha256 = "1ec38e3bf0c17df25a3367d4f3d5f7ef32b9a6fb5f081c20ad0091a968a2cf4a";
+      name = "kcalc-20.04.3.tar.xz";
     };
   };
   kcalutils = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kcalutils-20.04.3.tar.xz";
+      sha256 = "6604e0377c8955be7963853691aeaf689c00e2f78caab6b3472ffb4c822e07a3";
+      name = "kcalutils-20.04.3.tar.xz";
     };
   };
   kcharselect = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kcharselect-20.04.3.tar.xz";
+      sha256 = "0da77b66efeab1ba7c17335853f3c3feab9b53b4c37cfa6a9f983327d13080f4";
+      name = "kcharselect-20.04.3.tar.xz";
     };
   };
   kcolorchooser = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kcolorchooser-20.04.3.tar.xz";
+      sha256 = "276cee46f92eeb5b47ec09366498b117c657fb2e618fc9fe34c797d4384549fd";
+      name = "kcolorchooser-20.04.3.tar.xz";
     };
   };
   kcron = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kcron-20.04.3.tar.xz";
+      sha256 = "b1d7d36e5b9efe4fd5c5fedf0b9e267fd2aaf6423e6a18bb64112a0c8257e4fa";
+      name = "kcron-20.04.3.tar.xz";
     };
   };
   kdav = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kdav-20.04.3.tar.xz";
+      sha256 = "b645d5d17c967fd09c3d7abdfc262740a95870dd66bd3e5f4c0382da097d8510";
+      name = "kdav-20.04.3.tar.xz";
     };
   };
   kdebugsettings = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kdebugsettings-20.04.3.tar.xz";
+      sha256 = "5f42891c0990216780fbe005521e423d922007c7ddeac97a05c3c99b6fe30344";
+      name = "kdebugsettings-20.04.3.tar.xz";
+    };
+  };
+  kdeconnect-kde = {
+    version = "20.04.3";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.04.3/src/kdeconnect-kde-20.04.3.tar.xz";
+      sha256 = "412940a35dcd9f1491a54e4f9fd5ffdadc890bb9a45cfe2a0f8cb1ee7dc1ccbb";
+      name = "kdeconnect-kde-20.04.3.tar.xz";
     };
   };
   kde-dev-scripts = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kde-dev-scripts-20.04.3.tar.xz";
+      sha256 = "0b321954ea79e829d81c9be0170babae87e5eab22c8d42b296746d5a0160fbae";
+      name = "kde-dev-scripts-20.04.3.tar.xz";
     };
   };
   kde-dev-utils = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kde-dev-utils-20.04.3.tar.xz";
+      sha256 = "8f004e47bbd5ee032d711673b3320e59663087c636c9c51d031dc563b5391c83";
+      name = "kde-dev-utils-20.04.3.tar.xz";
     };
   };
   kdeedu-data = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kdeedu-data-20.04.3.tar.xz";
+      sha256 = "e717f82a1b4729f0a6df65221e9c2b01df17acf3d4eb8c2340cea23b6b65d969";
+      name = "kdeedu-data-20.04.3.tar.xz";
     };
   };
   kdegraphics-mobipocket = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kdegraphics-mobipocket-20.04.3.tar.xz";
+      sha256 = "24ce0c1565b8bc922ea08c3d6bb625ff4bba2e656545e09e410a0ff3bc84c80f";
+      name = "kdegraphics-mobipocket-20.04.3.tar.xz";
     };
   };
   kdegraphics-thumbnailers = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kdegraphics-thumbnailers-20.04.3.tar.xz";
+      sha256 = "b72bdd67738391a10672cd20667555168382285a764bd9e712e1485e7860441f";
+      name = "kdegraphics-thumbnailers-20.04.3.tar.xz";
     };
   };
   kdenetwork-filesharing = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kdenetwork-filesharing-20.04.3.tar.xz";
+      sha256 = "8cdbe70cd4263e8be6fdc0de987cb9255efae9b747018bc5098c0882a3d69c4d";
+      name = "kdenetwork-filesharing-20.04.3.tar.xz";
     };
   };
   kdenlive = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kdenlive-20.04.3.tar.xz";
+      sha256 = "29e5fa37f4680683cc6e244cee4d0b3a0e3e3290f15c0e0b6015ae4784d7315e";
+      name = "kdenlive-20.04.3.tar.xz";
     };
   };
   kdepim-addons = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kdepim-addons-20.04.3.tar.xz";
+      sha256 = "db0c70df94891bd6f90db533287269909e3442bfd0f546fa3f951d71f6268e9d";
+      name = "kdepim-addons-20.04.3.tar.xz";
     };
   };
   kdepim-apps-libs = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kdepim-apps-libs-20.04.3.tar.xz";
+      sha256 = "7d69ac9cecfe0035e4806f0ff43fd41ac3755d788fffea9fd51427e1bc7027e3";
+      name = "kdepim-apps-libs-20.04.3.tar.xz";
     };
   };
   kdepim-runtime = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kdepim-runtime-20.04.3.tar.xz";
+      sha256 = "1e4cffed12098baf29d8acfc4e4e12848d36ad8f55bf75d8c089a57e6f906494";
+      name = "kdepim-runtime-20.04.3.tar.xz";
     };
   };
   kdesdk-kioslaves = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kdesdk-kioslaves-20.04.3.tar.xz";
+      sha256 = "7d55121100d048bdab5f045126261eaad55ed58a2de97b211ad6acf03e22344b";
+      name = "kdesdk-kioslaves-20.04.3.tar.xz";
     };
   };
   kdesdk-thumbnailers = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kdesdk-thumbnailers-20.04.3.tar.xz";
+      sha256 = "e526cbad484807e11e03d85e5fc706df118e8f3327846f396e8df024b770c566";
+      name = "kdesdk-thumbnailers-20.04.3.tar.xz";
     };
   };
   kdf = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kdf-20.04.3.tar.xz";
+      sha256 = "f52e34c36cd924ae6f8fa1291d548abbf5e0bcf0c82d69a583f01dfe128332a8";
+      name = "kdf-20.04.3.tar.xz";
     };
   };
   kdialog = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kdialog-20.04.3.tar.xz";
+      sha256 = "75b8214980f5043d23b0226827f049815147e1206ffd64c1fe9e091e63c27a62";
+      name = "kdialog-20.04.3.tar.xz";
     };
   };
   kdiamond = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kdiamond-20.04.3.tar.xz";
+      sha256 = "f1bd1c5471224d4ab2269637bd89e11e5903bf4f15f1b2a3ae01c252adad7096";
+      name = "kdiamond-20.04.3.tar.xz";
     };
   };
   keditbookmarks = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/keditbookmarks-20.04.3.tar.xz";
+      sha256 = "ec25b40d0ab85e3f72eb334ea7d658d6fe19ae08d626d9fbf0ad71d57594ad88";
+      name = "keditbookmarks-20.04.3.tar.xz";
     };
   };
   kfind = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kfind-20.04.3.tar.xz";
+      sha256 = "ff0d412dcd4b5812eb781618c4bf52d33f4691af2b9def4ba56644b5a668ef6e";
+      name = "kfind-20.04.3.tar.xz";
     };
   };
   kfloppy = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kfloppy-20.04.3.tar.xz";
+      sha256 = "4e0d392471eddd23847129b5538846edd1a834f02119d312aed3698e6bfd9e1c";
+      name = "kfloppy-20.04.3.tar.xz";
     };
   };
   kfourinline = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kfourinline-20.04.3.tar.xz";
+      sha256 = "c339009355dea086c28baa454aac1c15d601e15685ba8006100f50475518875f";
+      name = "kfourinline-20.04.3.tar.xz";
     };
   };
   kgeography = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kgeography-20.04.3.tar.xz";
+      sha256 = "69b4b06cfb1f6abb5c12bb0bf9334f178af2018288ee507678efe594e0392887";
+      name = "kgeography-20.04.3.tar.xz";
     };
   };
   kget = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kget-20.04.3.tar.xz";
+      sha256 = "930b7ed50d19e41bfead8e6d71d8ec4024d688907489c17fb9274a73e4c7c0c2";
+      name = "kget-20.04.3.tar.xz";
     };
   };
   kgoldrunner = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kgoldrunner-20.04.3.tar.xz";
+      sha256 = "ab535067a8991a94bd7cd5a990a6120538206d241c8e8149c7b774cbdd1d0941";
+      name = "kgoldrunner-20.04.3.tar.xz";
     };
   };
   kgpg = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kgpg-20.04.3.tar.xz";
+      sha256 = "bcd3211ab8112f070215e8e6451021859fefc57b813bdad1b421a1f129e17cbb";
+      name = "kgpg-20.04.3.tar.xz";
     };
   };
   khangman = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/khangman-20.04.3.tar.xz";
+      sha256 = "db827d20ce5f0522675d75c18fd4c804047cc2e5a2ca2f7a7421b5fc91952831";
+      name = "khangman-20.04.3.tar.xz";
     };
   };
   khelpcenter = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/khelpcenter-20.04.3.tar.xz";
+      sha256 = "3930c321388f27925a63add5f11fe65eb34b7301fb22d78f16f5f3de8467a9ed";
+      name = "khelpcenter-20.04.3.tar.xz";
     };
   };
   kidentitymanagement = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kidentitymanagement-20.04.3.tar.xz";
+      sha256 = "09e63cdb07bb38ba8c82d796212b1bd9d218dbe8adde215bff9c689c93b90917";
+      name = "kidentitymanagement-20.04.3.tar.xz";
     };
   };
   kig = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kig-20.04.3.tar.xz";
+      sha256 = "ccbc8f10e79f420d8a97aa00616fc29ed771721bfe22eb74b160464ac6cc3023";
+      name = "kig-20.04.3.tar.xz";
     };
   };
   kigo = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kigo-20.04.3.tar.xz";
+      sha256 = "ccc4f9638bfd3e1bf7f25621e10907f08cd0354858f9a174ab8f5c51c77e8a77";
+      name = "kigo-20.04.3.tar.xz";
     };
   };
   killbots = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/killbots-20.04.3.tar.xz";
+      sha256 = "66c48ddeb49118ea8139422c0370256f88a4e3104dbe664bc25d2c63edfdf326";
+      name = "killbots-20.04.3.tar.xz";
     };
   };
   kimagemapeditor = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kimagemapeditor-20.04.3.tar.xz";
+      sha256 = "d86f8a9e0a1aba71236f7af844076758774ab1c10b4b2fa1d244c9b5d24adf33";
+      name = "kimagemapeditor-20.04.3.tar.xz";
     };
   };
   kimap = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kimap-20.04.3.tar.xz";
+      sha256 = "870d22a4f07080453ade2e1224acb563232211fe48e1beabe8c58d27730b4bfa";
+      name = "kimap-20.04.3.tar.xz";
     };
   };
   kio-extras = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kio-extras-20.04.3.tar.xz";
+      sha256 = "ff0edabe83ee4958ce7559e935f6b7ae3f76aee43ee5774543368ca334b21090";
+      name = "kio-extras-20.04.3.tar.xz";
     };
   };
   kipi-plugins = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kipi-plugins-20.04.3.tar.xz";
+      sha256 = "e128ba8a2194bb0ce6a5eac97d56479003f08c1d740a56a6c8d976df1a71632a";
+      name = "kipi-plugins-20.04.3.tar.xz";
     };
   };
   kirigami-gallery = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kirigami-gallery-20.04.3.tar.xz";
+      sha256 = "1868c4782c8a9c7a80eb6b465a27cb7fc46dc9a8e47d2530559ba3b2f1131461";
+      name = "kirigami-gallery-20.04.3.tar.xz";
     };
   };
   kiriki = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kiriki-20.04.3.tar.xz";
+      sha256 = "1df78a7b9e91f20841411fc2561d077dcd897211e5c20f1f526670c9f3b7a97d";
+      name = "kiriki-20.04.3.tar.xz";
     };
   };
   kiten = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kiten-20.04.3.tar.xz";
+      sha256 = "3b0bdd2b711ee67bbc194b301da3ed99d4ee75bb6ff18ab50c0a1b4c1c4ef162";
+      name = "kiten-20.04.3.tar.xz";
     };
   };
   kitinerary = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kitinerary-20.04.3.tar.xz";
+      sha256 = "8c7dab2e28891af268d22884ecbb9cd7031c4b34352ed3b576dbb6dcb5977c7e";
+      name = "kitinerary-20.04.3.tar.xz";
     };
   };
   kjumpingcube = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kjumpingcube-20.04.3.tar.xz";
+      sha256 = "1716e1de95e8610dc80d991c4518beedbdf6d4c40a07f71a1dba0971e0a6cb9b";
+      name = "kjumpingcube-20.04.3.tar.xz";
     };
   };
   kldap = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kldap-20.04.3.tar.xz";
+      sha256 = "ab32ef61da11f1401f9d648f6831a946dd6964ffd4f35f6c84ad9ca19dd422f1";
+      name = "kldap-20.04.3.tar.xz";
     };
   };
   kleopatra = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kleopatra-20.04.3.tar.xz";
+      sha256 = "59c6eb6b626b502f6b194ac4bbde8ed95e613d6b6fd54818c0206dd84575a34d";
+      name = "kleopatra-20.04.3.tar.xz";
     };
   };
   klettres = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/klettres-20.04.3.tar.xz";
+      sha256 = "ed943bce624a599f7759487d0ff3b16c340f2beadbad25dab30b6607dbd2695e";
+      name = "klettres-20.04.3.tar.xz";
     };
   };
   klickety = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/klickety-20.04.3.tar.xz";
+      sha256 = "703158b1c1cafc16368fa09c4c58ea6d10942b90af693a851f9b5ec84add691d";
+      name = "klickety-20.04.3.tar.xz";
     };
   };
   klines = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/klines-20.04.3.tar.xz";
+      sha256 = "83bebb2dbb7da8e325a378da3903246ff562c56dcf9ea4991dedb5b253c81f7d";
+      name = "klines-20.04.3.tar.xz";
     };
   };
   kmag = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kmag-20.04.3.tar.xz";
+      sha256 = "f006b2e3b685accc343cdfc8b90d915e7c2647d983b66c2d38565d669ed6d464";
+      name = "kmag-20.04.3.tar.xz";
     };
   };
   kmahjongg = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kmahjongg-20.04.3.tar.xz";
+      sha256 = "1f4fce58163323c23aa37f849e556ee4ed7fe33fb36e21754116e1d0e2c33673";
+      name = "kmahjongg-20.04.3.tar.xz";
     };
   };
   kmail = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kmail-20.04.3.tar.xz";
+      sha256 = "5b653c680097a7be4ff53bc902bc3fcda9edac99f699a63a1375a1df81240d03";
+      name = "kmail-20.04.3.tar.xz";
     };
   };
   kmail-account-wizard = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kmail-account-wizard-20.04.3.tar.xz";
+      sha256 = "ba789c679664a390480808431510d7d6ee1591a5f7be3dfceb5951347e3cc9b1";
+      name = "kmail-account-wizard-20.04.3.tar.xz";
     };
   };
   kmailtransport = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kmailtransport-20.04.3.tar.xz";
+      sha256 = "45685bf61f24c9c7070a9f5b982d48005a7bf0ef04f391df2959772b17857cc2";
+      name = "kmailtransport-20.04.3.tar.xz";
     };
   };
   kmbox = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kmbox-20.04.3.tar.xz";
+      sha256 = "50b2a8ba98cf24117ba66ddb9b51d1db575998b36ad1aa15fec0135446cc7561";
+      name = "kmbox-20.04.3.tar.xz";
     };
   };
   kmime = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kmime-20.04.3.tar.xz";
+      sha256 = "a416e16f61a2dd4274b1abc54af71ffe73b01c93137bc1fa462642bb947d150c";
+      name = "kmime-20.04.3.tar.xz";
     };
   };
   kmines = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kmines-20.04.3.tar.xz";
+      sha256 = "8a729ffd6406d7d6173fbd050e40a566b5ce4e7b960f3971fff82fef9c18c4d3";
+      name = "kmines-20.04.3.tar.xz";
     };
   };
   kmix = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kmix-20.04.3.tar.xz";
+      sha256 = "1830bc59d836d2155fd7a24c5afe3c7f5682a96217c159a062fd28b851414dc6";
+      name = "kmix-20.04.3.tar.xz";
     };
   };
   kmousetool = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kmousetool-20.04.3.tar.xz";
+      sha256 = "acf710dcdc53e58d3a833345f88214b22dfbd5ab9fd26d9e26c883c18441c715";
+      name = "kmousetool-20.04.3.tar.xz";
     };
   };
   kmouth = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kmouth-20.04.3.tar.xz";
+      sha256 = "edc1aab8edd13f3f10f99b79a27dabaffe22ac7048868dd7b66b33a662cc46b2";
+      name = "kmouth-20.04.3.tar.xz";
     };
   };
   kmplot = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kmplot-20.04.3.tar.xz";
+      sha256 = "57389abae04c204d0c2462709b70a919e0050b20867bcb23f3ab72788051e501";
+      name = "kmplot-20.04.3.tar.xz";
     };
   };
   knavalbattle = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/knavalbattle-20.04.3.tar.xz";
+      sha256 = "78feb74eb2e52d4738e5aa8969dc4db00307bb758623cbf34d7f245242f07279";
+      name = "knavalbattle-20.04.3.tar.xz";
     };
   };
   knetwalk = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/knetwalk-20.04.3.tar.xz";
+      sha256 = "6bc61fb70eb0cde3f312aa672f848447ed5eb5bbc2d48d65c6a010c12e154054";
+      name = "knetwalk-20.04.3.tar.xz";
     };
   };
   knights = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/knights-20.04.3.tar.xz";
+      sha256 = "b695e1f141dc3fd1a5deca6179bddb0f3d4aa9103c5cc539c01a2a789adade4f";
+      name = "knights-20.04.3.tar.xz";
     };
   };
   knotes = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/knotes-20.04.3.tar.xz";
+      sha256 = "90c47b902f738492286d9b3e0acb26e6a10504e1c933f921213cd1784309b796";
+      name = "knotes-20.04.3.tar.xz";
     };
   };
   kolf = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kolf-20.04.3.tar.xz";
+      sha256 = "dc2fd28fbfaa21d75ad6482513adddb9bd04ac0432d2d72419f85d65140ee186";
+      name = "kolf-20.04.3.tar.xz";
     };
   };
   kollision = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kollision-20.04.3.tar.xz";
+      sha256 = "49365efc2cfc4c9406cbedf84ad8a135df79536cba166cd77402955803a56207";
+      name = "kollision-20.04.3.tar.xz";
     };
   };
   kolourpaint = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kolourpaint-20.04.3.tar.xz";
+      sha256 = "55ec6d42fcf10b15b80b6fdabacdf189d1cda283a19a1c04b6a4a58abb56bee8";
+      name = "kolourpaint-20.04.3.tar.xz";
     };
   };
   kompare = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kompare-20.04.3.tar.xz";
+      sha256 = "6c49547c3adbe96c184bae6eda47963ce42ede2808e5588ec3f8ea924853a941";
+      name = "kompare-20.04.3.tar.xz";
     };
   };
   konqueror = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/konqueror-20.04.3.tar.xz";
+      sha256 = "d2f81f697e88eb4fe962aaa43942ef35e7a03df10f811a46ae6805a27e637e35";
+      name = "konqueror-20.04.3.tar.xz";
     };
   };
   konquest = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/konquest-20.04.3.tar.xz";
+      sha256 = "004b3d8d38acecb0d5e78d037a47d137f0517d74768da461ce51fbd2a549578d";
+      name = "konquest-20.04.3.tar.xz";
     };
   };
   konsole = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/konsole-20.04.3.tar.xz";
+      sha256 = "7874b6117d31eecd9fc475536c9bfc73c78d66d57b128cffb0bb931881564f15";
+      name = "konsole-20.04.3.tar.xz";
     };
   };
   kontact = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kontact-20.04.3.tar.xz";
+      sha256 = "c35a68a0a99195d1d9b63f7c8edaadb9e4f1dd6957e3823e2e44c8225ccafde7";
+      name = "kontact-20.04.3.tar.xz";
     };
   };
   kontactinterface = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kontactinterface-20.04.3.tar.xz";
+      sha256 = "9c0587df91b9de55218d7313c445c68d13b22aeb09dc142caf8d8036574e3b09";
+      name = "kontactinterface-20.04.3.tar.xz";
     };
   };
   kopete = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kopete-20.04.3.tar.xz";
+      sha256 = "b37a120e3239ee4e53aedf5756c63f62a737c0774021ec27b120b054e57f886b";
+      name = "kopete-20.04.3.tar.xz";
     };
   };
   korganizer = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/korganizer-20.04.3.tar.xz";
+      sha256 = "bf2ee5a3e50dca9ab0cde0b5b0d67dc561788527a216d4ef159144da5bf192a3";
+      name = "korganizer-20.04.3.tar.xz";
     };
   };
   kpat = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kpat-20.04.3.tar.xz";
+      sha256 = "2a207c9efa1a62c99f8b33cf44782c563ee032b706ef63548239a4c303ec9a66";
+      name = "kpat-20.04.3.tar.xz";
     };
   };
   kpimtextedit = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kpimtextedit-20.04.3.tar.xz";
+      sha256 = "f6cc5cf0ca2e598ba0c98590f16a8fabf87e1592ad62e6832c787cf2c3616cb8";
+      name = "kpimtextedit-20.04.3.tar.xz";
     };
   };
   kpkpass = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kpkpass-20.04.3.tar.xz";
+      sha256 = "1f8b9bd587c278773fb016bc9fb774b03f82bcdf3c95fdca8bfc070f9a3ff322";
+      name = "kpkpass-20.04.3.tar.xz";
     };
   };
   kqtquickcharts = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kqtquickcharts-20.04.3.tar.xz";
+      sha256 = "69ff44ceb85779f7d4f52e092a8a5d18231ea0704d67d34d15ef94acf0d668c7";
+      name = "kqtquickcharts-20.04.3.tar.xz";
     };
   };
   krdc = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/krdc-20.04.3.tar.xz";
+      sha256 = "4e8f60b4abd05d45e59a773a63cc185529e9fbabb295524a59c835af547d4bc8";
+      name = "krdc-20.04.3.tar.xz";
     };
   };
   kreversi = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kreversi-20.04.3.tar.xz";
+      sha256 = "b2d9220f5919361ff81473c8b597585cc4c004b16ee459691e26feeb2e0c3114";
+      name = "kreversi-20.04.3.tar.xz";
     };
   };
   krfb = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/krfb-20.04.3.tar.xz";
+      sha256 = "44532435ef824ff09d877d6984dbdfdcc5fd941f9e2abed65829dba89afeee0d";
+      name = "krfb-20.04.3.tar.xz";
     };
   };
   kross-interpreters = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kross-interpreters-20.04.3.tar.xz";
+      sha256 = "7e5d1f771477831f42dc209c0333977af17a143ec8c7f60acbab9f5390818457";
+      name = "kross-interpreters-20.04.3.tar.xz";
     };
   };
   kruler = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kruler-20.04.3.tar.xz";
+      sha256 = "66a02829d860777184e281747dd696c6bd326d874a96173d9c47759b9e7243fe";
+      name = "kruler-20.04.3.tar.xz";
     };
   };
   kshisen = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kshisen-20.04.3.tar.xz";
+      sha256 = "ee91821b13dc13d54a0cdf64582eff820faf934df3654135c55bd3210b98bd52";
+      name = "kshisen-20.04.3.tar.xz";
     };
   };
   ksirk = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ksirk-20.04.3.tar.xz";
+      sha256 = "c3c86db84b2603a0cd11e7b0da5e3c66b81c26983ace113b836ec3579dce736a";
+      name = "ksirk-20.04.3.tar.xz";
     };
   };
   ksmtp = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ksmtp-20.04.3.tar.xz";
+      sha256 = "107d135e9337dfec6f16095c75dd0cf81bdc86cee6eeb6d212954a08a9c2e3ce";
+      name = "ksmtp-20.04.3.tar.xz";
     };
   };
   ksnakeduel = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ksnakeduel-20.04.3.tar.xz";
+      sha256 = "99a033313a3093489d39e7d537d064287aeebbfea05accfe8a189f0296664bf2";
+      name = "ksnakeduel-20.04.3.tar.xz";
     };
   };
   kspaceduel = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kspaceduel-20.04.3.tar.xz";
+      sha256 = "dda32d2a89645129c7ee83aca7b21bc01d5120e0d58e8f39516c0837be531e38";
+      name = "kspaceduel-20.04.3.tar.xz";
     };
   };
   ksquares = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ksquares-20.04.3.tar.xz";
+      sha256 = "eb72d929cd59b076d20483ee03548d72df3dc894b631947ce3440aff0ecad730";
+      name = "ksquares-20.04.3.tar.xz";
     };
   };
   ksudoku = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ksudoku-20.04.3.tar.xz";
+      sha256 = "2df6e5cf78eee919624aa71716ef35baa9215e44662cdd7b315cfbc328c6ac19";
+      name = "ksudoku-20.04.3.tar.xz";
     };
   };
   ksystemlog = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ksystemlog-20.04.3.tar.xz";
+      sha256 = "03a6f81d1b4aa8557f7da6777ef909a02fbd811b3a39df81312dc0a70bbb8f77";
+      name = "ksystemlog-20.04.3.tar.xz";
     };
   };
   kteatime = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kteatime-20.04.3.tar.xz";
+      sha256 = "2ddc0df953a66376e5b0c11544a6a2ec9f173e4481a44a290aada20402c7d686";
+      name = "kteatime-20.04.3.tar.xz";
     };
   };
   ktimer = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ktimer-20.04.3.tar.xz";
+      sha256 = "e9881d68ed4fbbff5900d615f81145cd73e70a08092a83b87d71705ee5904395";
+      name = "ktimer-20.04.3.tar.xz";
     };
   };
   ktnef = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ktnef-20.04.3.tar.xz";
+      sha256 = "31f5f15ab27112f99ab7b2575a4f90bf612b99a3816544e6919ad4c5a2dc7145";
+      name = "ktnef-20.04.3.tar.xz";
     };
   };
   ktouch = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ktouch-20.04.3.tar.xz";
+      sha256 = "7f1c456ae758a6e7eb58e83120289fa8eb5c56c3c98cd9c9f974cea5dd156ea8";
+      name = "ktouch-20.04.3.tar.xz";
     };
   };
   ktp-accounts-kcm = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ktp-accounts-kcm-20.04.3.tar.xz";
+      sha256 = "d45588dbd1441ccb0576e7f76489217351bad5fd25d4636ae9da6f81654f5f4b";
+      name = "ktp-accounts-kcm-20.04.3.tar.xz";
     };
   };
   ktp-approver = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ktp-approver-20.04.3.tar.xz";
+      sha256 = "9c91d44476151f39ef02e2eeede7dee7f24689643a07d51d44ca8d98577d24a2";
+      name = "ktp-approver-20.04.3.tar.xz";
     };
   };
   ktp-auth-handler = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ktp-auth-handler-20.04.3.tar.xz";
+      sha256 = "6c73960c44ff42e8c0b6be54b308fc992ab8177f90954ebd960ea6d610e14568";
+      name = "ktp-auth-handler-20.04.3.tar.xz";
     };
   };
   ktp-call-ui = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ktp-call-ui-20.04.3.tar.xz";
+      sha256 = "b997c6252c35f7e295f2389ac76c5dc12227e8a6bbfd1b42d72b622d488bcf98";
+      name = "ktp-call-ui-20.04.3.tar.xz";
     };
   };
   ktp-common-internals = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ktp-common-internals-20.04.3.tar.xz";
+      sha256 = "0e7a1c61869d297831615c719e5c79f2b00a6572479d2c2eaca642de6d376efd";
+      name = "ktp-common-internals-20.04.3.tar.xz";
     };
   };
   ktp-contact-list = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ktp-contact-list-20.04.3.tar.xz";
+      sha256 = "c909e21fb168c14c61d1d617b6854ff505eaf4693479d8d0bba746fde0ee11af";
+      name = "ktp-contact-list-20.04.3.tar.xz";
     };
   };
   ktp-contact-runner = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ktp-contact-runner-20.04.3.tar.xz";
+      sha256 = "cb3313ca916a7e3fff78529ccc4a499763766957d22f65dee9663cd950c2b4a6";
+      name = "ktp-contact-runner-20.04.3.tar.xz";
     };
   };
   ktp-desktop-applets = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ktp-desktop-applets-20.04.3.tar.xz";
+      sha256 = "40f1125d4d91e2586d06d45b59d12ac19ee93aaae8c3d4df75db196f7e91e875";
+      name = "ktp-desktop-applets-20.04.3.tar.xz";
     };
   };
   ktp-filetransfer-handler = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ktp-filetransfer-handler-20.04.3.tar.xz";
+      sha256 = "74df7140bac0b87e3ff39e8ab692bb4c65a10612f328c8d60a84433ae865de52";
+      name = "ktp-filetransfer-handler-20.04.3.tar.xz";
     };
   };
   ktp-kded-module = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ktp-kded-module-20.04.3.tar.xz";
+      sha256 = "972a4a5d7108351a07be670654b4e78dfe9fb7657336c563040e1e831134aad2";
+      name = "ktp-kded-module-20.04.3.tar.xz";
     };
   };
   ktp-send-file = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ktp-send-file-20.04.3.tar.xz";
+      sha256 = "fa67edd7ec516ed727d5df0d30ccf6b990cee40f8062a9966a8643d6f26c8344";
+      name = "ktp-send-file-20.04.3.tar.xz";
     };
   };
   ktp-text-ui = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ktp-text-ui-20.04.3.tar.xz";
+      sha256 = "be6253246134aa6513b0ff36d25a833d469e6850da1f5c8c05666a555bbfd9b2";
+      name = "ktp-text-ui-20.04.3.tar.xz";
     };
   };
   ktuberling = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/ktuberling-20.04.3.tar.xz";
+      sha256 = "0fb7ef29c5bf02de56243e608a050fce992df56586d305a157ed3ac70f002a44";
+      name = "ktuberling-20.04.3.tar.xz";
     };
   };
   kturtle = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kturtle-20.04.3.tar.xz";
+      sha256 = "e04034812c62e22be0ee7eb91d89a9e0e0c73bb5cba8e914373f407c99e8c0cb";
+      name = "kturtle-20.04.3.tar.xz";
     };
   };
   kubrick = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kubrick-20.04.3.tar.xz";
+      sha256 = "983310938ad0437902d886f433b0693a3a08faaca0f5553a3aa24e89e3215fb9";
+      name = "kubrick-20.04.3.tar.xz";
     };
   };
   kwalletmanager = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kwalletmanager-20.04.3.tar.xz";
+      sha256 = "3821d17f5238bd51b9d19ef5974e063aa6426f35afcd0cffa89af109c770151e";
+      name = "kwalletmanager-20.04.3.tar.xz";
     };
   };
   kwave = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kwave-20.04.3.tar.xz";
+      sha256 = "111ea78c90371f566500e88d746812b17875e154e431b3694e3d226f3f19e988";
+      name = "kwave-20.04.3.tar.xz";
     };
   };
   kwordquiz = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/kwordquiz-20.04.3.tar.xz";
+      sha256 = "464684309e098c4e8663d39cd98f53a640a93e1d8ac169a2a0ac3cc98d7f8e12";
+      name = "kwordquiz-20.04.3.tar.xz";
     };
   };
   libgravatar = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/libgravatar-20.04.3.tar.xz";
+      sha256 = "0a5eadd5c8492eb17225e0ff2d221f69231e72ca9b8a78080301639662a18acf";
+      name = "libgravatar-20.04.3.tar.xz";
     };
   };
   libkcddb = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/libkcddb-20.04.3.tar.xz";
+      sha256 = "d205d3a458c0d54d7118e36006710fe2d2993de5b417c9d8936762fa710634b4";
+      name = "libkcddb-20.04.3.tar.xz";
     };
   };
   libkcompactdisc = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/libkcompactdisc-20.04.3.tar.xz";
+      sha256 = "5bc98eba521f66cb52645786cf875037397e4dbd3ec4c9a23687d936d1505d24";
+      name = "libkcompactdisc-20.04.3.tar.xz";
     };
   };
   libkdcraw = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/libkdcraw-20.04.3.tar.xz";
+      sha256 = "e37e9210a250955d1fe63d2d96571d0630572633e567eb047af9f24db2b86cb5";
+      name = "libkdcraw-20.04.3.tar.xz";
     };
   };
   libkdegames = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/libkdegames-20.04.3.tar.xz";
+      sha256 = "fda965e2ff166abe89cf008a5160262f061a6c3aeda4a71a834b5ed66ea6d0be";
+      name = "libkdegames-20.04.3.tar.xz";
     };
   };
   libkdepim = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/libkdepim-20.04.3.tar.xz";
+      sha256 = "f4ecc6d33aace0a0025afe390a113f79bb052b816c567ea31996aaf08fe873ea";
+      name = "libkdepim-20.04.3.tar.xz";
     };
   };
   libkeduvocdocument = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/libkeduvocdocument-20.04.3.tar.xz";
+      sha256 = "a53e17a84420fca8f9572d8439da2c63d1241a607952454003a4020104a25558";
+      name = "libkeduvocdocument-20.04.3.tar.xz";
     };
   };
   libkexiv2 = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/libkexiv2-20.04.3.tar.xz";
+      sha256 = "12fa569aca07269e880bd976a6cc37b4f585fe2aac8837d437bc29999d95f6be";
+      name = "libkexiv2-20.04.3.tar.xz";
     };
   };
   libkgapi = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/libkgapi-20.04.3.tar.xz";
+      sha256 = "9b689d8c4a1df0b792604cf5951b30d8343e984d890f4a3fb946a449723e520d";
+      name = "libkgapi-20.04.3.tar.xz";
     };
   };
   libkgeomap = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/libkgeomap-20.04.3.tar.xz";
+      sha256 = "34e41b2505a34355a31a548bb8f94955b3dc4391c71201164574ff45b532818d";
+      name = "libkgeomap-20.04.3.tar.xz";
     };
   };
   libkipi = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/libkipi-20.04.3.tar.xz";
+      sha256 = "4a72f0d1423a6a6f7017bf0598c99261575feb4d9af73520074f6f0b7f9e4c25";
+      name = "libkipi-20.04.3.tar.xz";
     };
   };
   libkleo = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/libkleo-20.04.3.tar.xz";
+      sha256 = "ef2a37a1c8793e4c89dcf49bc330044a617b4b04472679b179992b188e412c50";
+      name = "libkleo-20.04.3.tar.xz";
     };
   };
   libkmahjongg = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/libkmahjongg-20.04.3.tar.xz";
+      sha256 = "24fcff9d91c5143c7275c5c97c2be32e85f5c788749df3acc841fd28bee450a0";
+      name = "libkmahjongg-20.04.3.tar.xz";
     };
   };
   libkomparediff2 = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/libkomparediff2-20.04.3.tar.xz";
+      sha256 = "e27a5fd3dd80a9c7c052ec3c824acc529073464788d1c6950d4d2c407b74c0b0";
+      name = "libkomparediff2-20.04.3.tar.xz";
     };
   };
   libksane = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/libksane-20.04.3.tar.xz";
+      sha256 = "34827bcc5b9277292dd4434f2bf7610a28d54c86565f0410d4470c61f374c46e";
+      name = "libksane-20.04.3.tar.xz";
     };
   };
   libksieve = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/libksieve-20.04.3.tar.xz";
+      sha256 = "8aacc0c41ac2b7bf48c8479c8fba581a325828b907053eba6b9b5ff4c63d0529";
+      name = "libksieve-20.04.3.tar.xz";
     };
   };
   lokalize = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/lokalize-20.04.3.tar.xz";
+      sha256 = "fccba64af9faa5cbb5dfdb303009504993fe71282f0dbc9c748c5a28a327c379";
+      name = "lokalize-20.04.3.tar.xz";
     };
   };
   lskat = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/lskat-20.04.3.tar.xz";
+      sha256 = "b7e33cc8097ee4bf4e5182a2a5db1e142c65b119424079f5e7f179720092815b";
+      name = "lskat-20.04.3.tar.xz";
     };
   };
   mailcommon = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/mailcommon-20.04.3.tar.xz";
+      sha256 = "80b6285c8152a64362f5f406b4a766b0937ff29acf87133b0326b6e7ce66809f";
+      name = "mailcommon-20.04.3.tar.xz";
     };
   };
   mailimporter = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/mailimporter-20.04.3.tar.xz";
+      sha256 = "13a95ee3d89d658222dcdc905311c72b1ba04e6b8aac863dee767a4d72d3d54e";
+      name = "mailimporter-20.04.3.tar.xz";
     };
   };
   marble = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/marble-20.04.3.tar.xz";
+      sha256 = "9c0b6fb13d53e1748de081c43e06cc132d5b07d46e594443b207fbaf74e1f95b";
+      name = "marble-20.04.3.tar.xz";
     };
   };
   mbox-importer = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/mbox-importer-20.04.3.tar.xz";
+      sha256 = "ce208091272052a909521cda31a74b2f4c8e8fabcb2937c24639673d1f43981d";
+      name = "mbox-importer-20.04.3.tar.xz";
     };
   };
   messagelib = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/messagelib-20.04.3.tar.xz";
+      sha256 = "aa2c254f50ed4664b67df5857bba063d1400fe280f3a58658cfa59d3155b2adf";
+      name = "messagelib-20.04.3.tar.xz";
     };
   };
   minuet = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/minuet-20.04.3.tar.xz";
+      sha256 = "9afb598280a9b90013833005299fb0c33c3c7cc02b687f65616e04dc12e21d41";
+      name = "minuet-20.04.3.tar.xz";
     };
   };
   okular = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/okular-20.04.3.tar.xz";
+      sha256 = "60865a5d09f41d30572b72224fb61baf9dde18cf6e246565d852e672e7bc4cfe";
+      name = "okular-20.04.3.tar.xz";
     };
   };
   palapeli = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/palapeli-20.04.3.tar.xz";
+      sha256 = "8ae05cce4a1ccb5226c9895195c47825054363a127905dacd5b25fc2a4df3828";
+      name = "palapeli-20.04.3.tar.xz";
     };
   };
   parley = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/parley-20.04.3.tar.xz";
+      sha256 = "b5e74fbd458824d26c0ea7cb8ed5510e3f6e849c9dbda4bc7804b9b95a64da03";
+      name = "parley-20.04.3.tar.xz";
     };
   };
   picmi = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/picmi-20.04.3.tar.xz";
+      sha256 = "57406f820d58132602b3e6524bad2d7aba3466f7c1a78a623077e7df5faf6838";
+      name = "picmi-20.04.3.tar.xz";
     };
   };
   pimcommon = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/pimcommon-20.04.3.tar.xz";
+      sha256 = "a5d295f7174cafeb27bc1aed03a715525b132f9dca734a183dd705a2c7ffa40b";
+      name = "pimcommon-20.04.3.tar.xz";
     };
   };
   pim-data-exporter = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/pim-data-exporter-20.04.3.tar.xz";
+      sha256 = "742727f09c984ff86f0406fa756b8ab50e695d6bd8a10abd7d55950c1c2c10de";
+      name = "pim-data-exporter-20.04.3.tar.xz";
     };
   };
   pim-sieve-editor = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/pim-sieve-editor-20.04.3.tar.xz";
+      sha256 = "e59c4eee3f7548fc724f7b79cbff2f90c10be92eb0cab7259dd57fd221f2b7dc";
+      name = "pim-sieve-editor-20.04.3.tar.xz";
     };
   };
   poxml = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/poxml-20.04.3.tar.xz";
+      sha256 = "a070eb5c12e14df691648a9a3e482c021c484f59dfaac413eeacc002cdc1833a";
+      name = "poxml-20.04.3.tar.xz";
     };
   };
   print-manager = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/print-manager-20.04.3.tar.xz";
+      sha256 = "9d877925cafdf7dfa0dcce5694f849b13ca8bb7c4552a800eebd26a3fc42d376";
+      name = "print-manager-20.04.3.tar.xz";
     };
   };
   rocs = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/rocs-20.04.3.tar.xz";
+      sha256 = "1620ff8360568ab4201d526ea4489bd672f6715b6d200251d63ed139dcc58a94";
+      name = "rocs-20.04.3.tar.xz";
     };
   };
   signon-kwallet-extension = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/signon-kwallet-extension-20.04.3.tar.xz";
+      sha256 = "a391ceff9c86f2e3d8a74a26ffb4143d0adffc8669a51a019d39f16a8e207c1c";
+      name = "signon-kwallet-extension-20.04.3.tar.xz";
     };
   };
   spectacle = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/spectacle-20.04.3.tar.xz";
+      sha256 = "71e852aceaac1dc76cd9aa4aa8284ced1c149d7374d9e06f996f4259a72ccbd6";
+      name = "spectacle-20.04.3.tar.xz";
     };
   };
   step = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/step-20.04.3.tar.xz";
+      sha256 = "89d7e29b6e5f888886022701cbfd628c322daa3da43dda4c3fd90d1a137aa29d";
+      name = "step-20.04.3.tar.xz";
     };
   };
   svgpart = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/svgpart-20.04.3.tar.xz";
+      sha256 = "2ffb67858ac5c01f5bb5d4728526786c5b6b6a8b70d688123c52efa084fae1b4";
+      name = "svgpart-20.04.3.tar.xz";
     };
   };
   sweeper = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/sweeper-20.04.3.tar.xz";
+      sha256 = "16b247b9e3f3d3497f31f9dcb91ff06725a07f0f56a934fdf1ecf1af1ab1b426";
+      name = "sweeper-20.04.3.tar.xz";
     };
   };
   umbrello = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/umbrello-20.04.3.tar.xz";
+      sha256 = "c34a5f6ca945dd409921903abd2e0078b6a056a0d221d59674980ce424cf1e62";
+      name = "umbrello-20.04.3.tar.xz";
     };
   };
   yakuake = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/yakuake-20.04.3.tar.xz";
+      sha256 = "62466165becc848d05461f7b12b67615a517d2919b6fccd8441dfeed9a0a04fa";
+      name = "yakuake-20.04.3.tar.xz";
     };
   };
   zeroconf-ioslave = {
-    version = "19.12.3";
+    version = "20.04.3";
     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.04.3/src/zeroconf-ioslave-20.04.3.tar.xz";
+      sha256 = "3b2ac8833499a53a78547ae34be4a29a6cb79d54601a8c638b225f1c2059d9f0";
+      name = "zeroconf-ioslave-20.04.3.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 010e9ae7a50..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 = "0.10.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 = "07j11ikd0rzsj4d8rv74rfy497svq6l2q94ndf3b0a0mr8riyazj";
-        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 = "177cl4x7rj3d74kzrpmiwps5n31axmlhqdwrdpkmay2gk9inswbs";
-        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 = "13yxmnh77g6zvl2gqf77m5i3v5706p2plgbgsn5hqrrf3g8ql63b";
-      }
-    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 ];
 
@@ -34,8 +30,16 @@ stdenv.mkDerivation rec {
     install -D op $out/bin/op
   '';
 
+  dontStrip = stdenv.isDarwin;
+
   nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ autoPatchelfHook ];
 
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    $out/bin/op --version
+  '';
+
   meta = with stdenv.lib; {
     description  = "1Password command-line tool";
     homepage     = "https://support.1password.com/command-line/";
diff --git a/pkgs/applications/misc/ArchiSteamFarm/default.nix b/pkgs/applications/misc/ArchiSteamFarm/default.nix
new file mode 100644
index 00000000000..e5121ce6e7d
--- /dev/null
+++ b/pkgs/applications/misc/ArchiSteamFarm/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, unzip, makeWrapper, dotnetCorePackages, jq }:
+
+stdenv.mkDerivation rec {
+  pname = "ArchiSteamFarm";
+  version = "4.2.3.6";
+
+  src = fetchurl {
+    url = "https://github.com/JustArchiNET/ArchiSteamFarm/releases/download/${version}/ASF-generic.zip";
+    sha256 = "1a8baxrb8czndxxi16md1nyl2snfx215yvrygdpcblgngkp2z2y9";
+  };
+
+  nativeBuildInputs = [ unzip makeWrapper jq ];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    dist=$out/opt/asf
+    mkdir -p $dist
+    cp -r * $dist
+
+    jq "del(.runtimeOptions.framework.version)" ArchiSteamFarm.runtimeconfig.json > $dist/ArchiSteamFarm.runtimeconfig.json
+
+    makeWrapper ${dotnetCorePackages.aspnetcore_3_1}/bin/dotnet $out/bin/ArchiSteamFarm \
+      --add-flags $dist/ArchiSteamFarm.dll \
+      --add-flags "--path ~/.config/asf" \
+      --run "mkdir -p ~/.config/asf" \
+      --run "cd ~/.config/asf" \
+      --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 "ln -sf $dist/www ."
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Application with primary purpose of idling Steam cards from multiple accounts simultaneously";
+    homepage = "https://github.com/JustArchiNET/ArchiSteamFarm";
+    license = licenses.asl20;
+    platforms = dotnetCorePackages.aspnetcore_3_1.meta.platforms;
+    maintainers = with maintainers; [ gnidorah ];
+    hydraPlatforms = [];
+  };
+}
diff --git a/pkgs/applications/misc/airtame/default.nix b/pkgs/applications/misc/airtame/default.nix
index 043f1c86bd1..a5c08ad3642 100644
--- a/pkgs/applications/misc/airtame/default.nix
+++ b/pkgs/applications/misc/airtame/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, fetchurl, makeDesktopItem, makeWrapper
-, alsaLib, atk, cairo, cups, curl, dbus, expat, ffmpeg, fontconfig, freetype
+, alsaLib, atk, cairo, cups, curl, dbus, expat, ffmpeg_3, fontconfig, freetype
 , gdk-pixbuf, glib, glibc, gnome2, gtk2, libX11, libXScrnSaver, libXcomposite
 , libXcursor, libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender
 , libXtst, libopus, libpulseaudio, libxcb, nspr, nss, pango, udev, x264
 }:
 
 let libPath = lib.makeLibraryPath [
-  alsaLib atk cairo cups curl dbus expat ffmpeg fontconfig freetype gdk-pixbuf
+  alsaLib atk cairo cups curl dbus expat ffmpeg_3 fontconfig freetype gdk-pixbuf
   glib glibc gnome2.GConf gtk2 libopus nspr nss pango stdenv.cc.cc udev x264
   libX11 libXScrnSaver libXcomposite libXcursor libXdamage libXext libXfixes
   libXi libXrandr libXrender libXtst libpulseaudio libxcb
@@ -30,7 +30,7 @@ in stdenv.mkDerivation rec {
     desktopName = "Airtame";
     icon = name;
     genericName = comment;
-    categories = "Application;Network;";
+    categories = "Network;";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/misc/alacritty/default.nix b/pkgs/applications/misc/alacritty/default.nix
index 518ec310ffb..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.2";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "alacritty";
     repo = pname;
     rev = "v${version}";
-    sha256 = "133d8vm7ihlvgw8n1jghhh35h664h0f52h6gci54f11vl6c1spws";
+    sha256 = "1948j57xhqvc5y876s929x9rhd6j0xnw5c91g1zqw2rfncn602g2";
   };
 
-  cargoSha256 = "07gq63qd11zz229b8jp9wqggz39qfpzd223z1zk1xch7rhqq0pn4";
+  cargoSha256 = "17lyzcj07f0vyki3091vgjd0w8ki11sw5m8gb3bxdph1dl04rria";
 
   nativeBuildInputs = [
     cmake
@@ -90,8 +90,6 @@ rustPlatform.buildRustPackage rec {
       --replace xdg-open ${xdg_utils}/bin/xdg-open
   '';
 
-  postBuild = lib.optionalString stdenv.isDarwin "make app";
-
   installPhase = ''
     runHook preInstall
 
@@ -100,7 +98,8 @@ rustPlatform.buildRustPackage rec {
   '' + (
     if stdenv.isDarwin then ''
       mkdir $out/Applications
-      cp -r $releaseDir/osx/Alacritty.app $out/Applications/Alacritty.app
+      cp -r extra/osx/Alacritty.app $out/Applications
+      ln -s $out/bin $out/Applications/Alacritty.app/Contents/MacOS
     '' else ''
       install -D extra/linux/Alacritty.desktop -t $out/share/applications/
       install -D extra/logo/compat/alacritty-term.svg $out/share/icons/hicolor/scalable/apps/Alacritty.svg
@@ -121,6 +120,8 @@ rustPlatform.buildRustPackage rec {
     install -dm 755 "$out/share/man/man1"
     gzip -c extra/alacritty.man > "$out/share/man/man1/alacritty.1.gz"
 
+    install -Dm 644 alacritty.yml $out/share/doc/alacritty.yml
+
     install -dm 755 "$terminfo/share/terminfo/a/"
     tic -xe alacritty,alacritty-direct -o "$terminfo/share/terminfo" extra/alacritty.info
     mkdir -p $out/nix-support
@@ -135,7 +136,7 @@ rustPlatform.buildRustPackage rec {
     description = "A cross-platform, GPU-accelerated terminal emulator";
     homepage = "https://github.com/alacritty/alacritty";
     license = licenses.asl20;
-    maintainers = with maintainers; [ filalex77 mic92 cole-h ];
+    maintainers = with maintainers; [ filalex77 mic92 cole-h ma27 ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/almanah/default.nix b/pkgs/applications/misc/almanah/default.nix
index f554d36a0c6..ff878578526 100644
--- a/pkgs/applications/misc/almanah/default.nix
+++ b/pkgs/applications/misc/almanah/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchurl
+, fetchpatch
 , atk
 , cairo
 , desktop-file-utils
@@ -30,6 +31,15 @@ stdenv.mkDerivation rec {
     sha256 = "09rxx4s4c34d1axza6ayss33v78p44r9bpx058shllh1sf5avpcb";
   };
 
+  patches = [
+    # Fix gpgme detection
+    # https://gitlab.gnome.org/GNOME/almanah/merge_requests/7
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/almanah/commit/4b979c4145ef2fbceebb3849a70df1d0ceb1bb93.patch";
+      sha256 = "0wwkgqr5vi597j734xq0fwgk1zpcabp8wi8b1lnb1ksnqfi3wwxb";
+    })
+  ];
+
   nativeBuildInputs = [
     desktop-file-utils
     gettext
diff --git a/pkgs/applications/misc/aminal/default.nix b/pkgs/applications/misc/aminal/default.nix
index dff6b15494b..7f04a93d6a3 100644
--- a/pkgs/applications/misc/aminal/default.nix
+++ b/pkgs/applications/misc/aminal/default.nix
@@ -11,7 +11,7 @@
 
 buildGoPackage rec {
   pname = "aminal";
-  version = "0.8.6";
+  version = "0.9.0";
 
   goPackagePath = "github.com/liamg/aminal";
 
@@ -30,7 +30,7 @@ buildGoPackage rec {
     owner = "liamg";
     repo = "aminal";
     rev = "v${version}";
-    sha256 = "0qhjdckj2kr0vza6qssd9z8dfrsif1qxb1mal1d4wgdsy12lrmwl";
+    sha256 = "0syv9md7blnl6i19zf8s1xjx5vfz6s755fxyg2ply0qc1pwhsj8n";
   };
 
   preBuild = ''
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 64b592b7871..114021eb78f 100644
--- a/pkgs/applications/misc/archiver/default.nix
+++ b/pkgs/applications/misc/archiver/default.nix
@@ -14,13 +14,14 @@ buildGoModule rec {
     sha256 = "1yr2jhidqvbwh1y08lpqaidwpr5yx3bhvznm5fc9pk64s7z5kq3h";
   };
 
-  modSha256 = "1mrfqhd0zb78rlqlj2ncb0srwjfl7rzhy2p9mwa82pgysvlp08gv";
+  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;
   };
 }
diff --git a/pkgs/applications/misc/audio/wavesurfer/default.nix b/pkgs/applications/misc/audio/wavesurfer/default.nix
index 0ca01c8d2ae..45746a963b2 100644
--- a/pkgs/applications/misc/audio/wavesurfer/default.nix
+++ b/pkgs/applications/misc/audio/wavesurfer/default.nix
@@ -20,9 +20,9 @@ stdenv.mkDerivation {
                  --prefix PATH : "${stdenv.lib.makeBinPath [ tcl tk ]}"
   '';
 
-  meta = { 
+  meta = {
     description = "Tool for recording, playing, editing, viewing and labeling of audio";
     homepage = "http://www.speech.kth.se/wavesurfer/";
-    license = "BSD";
+    license = stdenv.lib.licenses.bsd0;
   };
 }
diff --git a/pkgs/applications/misc/ausweisapp2/default.nix b/pkgs/applications/misc/ausweisapp2/default.nix
index 953e12a033d..1dbcdf31ed1 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.0";
+  version = "1.20.1";
 
   src = fetchFromGitHub {
     owner = "Governikus";
     repo = "AusweisApp2";
     rev = "${version}";
-    sha256 = "0qkwdaxhig4qjim7h20j6ln6w76ycppfc786nd8l69bd1qv46m40";
+    sha256 = "17ify6v4z8i8ps3s8qabnrqfkj0my4yzyqwk3q3nhrqilbnhr40x";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/applications/misc/azuredatastudio/default.nix b/pkgs/applications/misc/azuredatastudio/default.nix
new file mode 100644
index 00000000000..902bef5f12e
--- /dev/null
+++ b/pkgs/applications/misc/azuredatastudio/default.nix
@@ -0,0 +1,115 @@
+{ stdenv
+, lib
+, fetchurl
+, makeWrapper
+, libuuid
+, libunwind
+, icu
+, openssl
+, zlib
+, curl
+, at-spi2-core
+, at-spi2-atk
+, gnutar
+, atomEnv
+, kerberos
+}:
+
+# from justinwoo/azuredatastudio-nix
+# https://github.com/justinwoo/azuredatastudio-nix/blob/537c48aa3981cd1a82d5d6e508ab7e7393b3d7c8/default.nix
+
+stdenv.mkDerivation rec {
+
+  pname = "azuredatastudio";
+  version = "1.17.1";
+
+  src = fetchurl {
+    url = "https://azuredatastudiobuilds.blob.core.windows.net/releases/${version}/azuredatastudio-linux-${version}.tar.gz";
+    sha256 = "0px9n9vyjvyddca4x7d0zindd0dim7350vkjg5dd0506fm8dc38k";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  buildInputs = [
+    libuuid
+    at-spi2-core
+    at-spi2-atk
+  ];
+
+  phases = "unpackPhase fixupPhase";
+
+  # change this to azuredatastudio-insiders for insiders releases
+  edition = "azuredatastudio";
+  targetPath = "$out/${edition}";
+
+  unpackPhase = ''
+    mkdir -p ${targetPath}
+    ${gnutar}/bin/tar xf $src --strip 1 -C ${targetPath}
+  '';
+
+  sqltoolsserviceRpath = stdenv.lib.makeLibraryPath [
+    stdenv.cc.cc
+    libunwind
+    libuuid
+    icu
+    openssl
+    zlib
+    curl
+  ];
+
+  # this will most likely need to be updated when azuredatastudio's version changes
+  sqltoolsservicePath = "${targetPath}/resources/app/extensions/mssql/sqltoolsservice/Linux/2.0.0-release.56";
+
+  rpath = stdenv.lib.concatStringsSep ":" [
+    atomEnv.libPath
+    (
+      stdenv.lib.makeLibraryPath [
+        libuuid
+        at-spi2-core
+        at-spi2-atk
+        stdenv.cc.cc.lib
+        kerberos
+      ]
+    )
+    targetPath
+    sqltoolsserviceRpath
+  ];
+
+  fixupPhase = ''
+    fix_sqltoolsservice()
+    {
+      mv ${sqltoolsservicePath}/$1 ${sqltoolsservicePath}/$1_old
+      patchelf \
+        --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" \
+        ${sqltoolsservicePath}/$1_old
+
+      makeWrapper \
+        ${sqltoolsservicePath}/$1_old \
+        ${sqltoolsservicePath}/$1 \
+        --set LD_LIBRARY_PATH ${sqltoolsserviceRpath}
+    }
+
+    fix_sqltoolsservice MicrosoftSqlToolsServiceLayer
+    fix_sqltoolsservice MicrosoftSqlToolsCredentials
+    fix_sqltoolsservice SqlToolsResourceProviderService
+
+    patchelf \
+      --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" \
+      ${targetPath}/${edition}
+
+    mkdir -p $out/bin
+    makeWrapper \
+      ${targetPath}/bin/${edition} \
+      $out/bin/azuredatastudio \
+      --set LD_LIBRARY_PATH ${rpath}
+  '';
+
+  meta = {
+    maintainers = with stdenv.lib.maintainers; [ xavierzwirtz ];
+    description = "A data management tool that enables working with SQL Server, Azure SQL DB and SQL DW";
+    homepage = "https://docs.microsoft.com/en-us/sql/azure-data-studio/download-azure-data-studio";
+    license = lib.licenses.unfreeRedistributable;
+  };
+}
diff --git a/pkgs/applications/misc/batsignal/default.nix b/pkgs/applications/misc/batsignal/default.nix
new file mode 100644
index 00000000000..56c508eaca9
--- /dev/null
+++ b/pkgs/applications/misc/batsignal/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, libnotify, pkg-config, glib }:
+
+stdenv.mkDerivation rec {
+  pname = "batsignal";
+  version = "1.1.2";
+
+  src = fetchFromGitHub {
+    owner = "electrickite";
+    repo = "batsignal";
+    rev = "${version}";
+    sha256 = "0ss5dw7wpqsf96dig6r7x4fhf6brmjdy54jyyf5nk1h9kzw4d69r";
+  };
+
+  buildInputs = [ libnotify glib ];
+  nativeBuildInputs = [ pkg-config ];
+  installFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/electrickite/batsignal";
+    description = "Lightweight battery daemon written in C";
+    license = licenses.isc;
+    maintainers = with maintainers; [ SlothOfAnarchy ];
+    platforms = platforms.linux;
+  };
+}
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/darwin.patch b/pkgs/applications/misc/blender/darwin.patch
index 43b96466df2..c426c0b6607 100644
--- a/pkgs/applications/misc/blender/darwin.patch
+++ b/pkgs/applications/misc/blender/darwin.patch
@@ -9,7 +9,7 @@ diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platf
  endif()
  
  if(WITH_OPENAL)
-@@ -79,7 +78,7 @@ endif()
+@@ -86,7 +85,7 @@ endif()
  if(WITH_CODEC_SNDFILE)
    set(LIBSNDFILE ${LIBDIR}/sndfile)
    set(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE}/include)
@@ -18,7 +18,7 @@ diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platf
    set(LIBSNDFILE_LIBPATH ${LIBSNDFILE}/lib ${LIBDIR}/ffmpeg/lib)  # TODO, deprecate
  endif()
  
-@@ -90,7 +89,7 @@ if(WITH_PYTHON)
+@@ -97,7 +96,7 @@ if(WITH_PYTHON)
      # normally cached but not since we include them with blender
      set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m")
      set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}m")
@@ -27,7 +27,7 @@ diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platf
      set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}")
      # set(PYTHON_LINKFLAGS "-u _PyMac_Error")  # won't  build with this enabled
    else()
-@@ -155,10 +154,7 @@ if(WITH_CODEC_FFMPEG)
+@@ -162,10 +161,7 @@ if(WITH_CODEC_FFMPEG)
    set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include)
    set(FFMPEG_LIBRARIES
      avcodec avdevice avformat avutil
@@ -39,7 +39,7 @@ diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platf
    set(FFMPEG_LIBPATH ${FFMPEG}/lib)
  endif()
  
-@@ -199,14 +195,14 @@ if(WITH_OPENCOLLADA)
+@@ -206,14 +202,14 @@ if(WITH_OPENCOLLADA)
    set(OPENCOLLADA ${LIBDIR}/opencollada)
  
    set(OPENCOLLADA_INCLUDE_DIRS
@@ -60,16 +60,7 @@ diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platf
    set(OPENCOLLADA_LIBRARIES
      OpenCOLLADASaxFrameworkLoader
      -lOpenCOLLADAFramework
-@@ -215,7 +211,7 @@ if(WITH_OPENCOLLADA)
-     -lMathMLSolver
-     -lGeneratedSaxParser
-     -lbuffer -lftoa -lUTF
--    ${OPENCOLLADA_LIBPATH}/libxml2.a
-+    xml2
-   )
-   # PCRE is bundled with openCollada
-   # set(PCRE ${LIBDIR}/pcre)
-@@ -276,14 +272,13 @@ if(WITH_BOOST)
+@@ -277,14 +273,13 @@ if(WITH_BOOST)
  endif()
  
  if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG)
@@ -85,7 +76,7 @@ diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platf
      ${PNG_LIBRARIES}
      ${JPEG_LIBRARIES}
      ${TIFF_LIBRARY}
-@@ -306,7 +301,7 @@ endif()
+@@ -307,7 +302,7 @@ endif()
  if(WITH_OPENCOLORIO)
    set(OPENCOLORIO ${LIBDIR}/opencolorio)
    set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include)
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index e27aca4fc3d..2190307fbb5 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -1,4 +1,4 @@
-{ config, stdenv, lib, fetchurl, boost, cmake, ffmpeg, gettext, glew
+{ config, stdenv, lib, fetchurl, boost, cmake, ffmpeg_3, gettext, glew
 , ilmbase, libXi, libX11, libXext, libXrender
 , libjpeg, libpng, libsamplerate, libsndfile
 , libtiff, libGLU, libGL, openal, opencolorio, openexr, openimagedenoise, openimageio2, openjpeg, python3Packages
@@ -17,18 +17,18 @@ let python = python3Packages.python; in
 
 stdenv.mkDerivation rec {
   pname = "blender";
-  version = "2.82a";
+  version = "2.83.5";
 
   src = fetchurl {
     url = "https://download.blender.org/source/${pname}-${version}.tar.xz";
-    sha256 = "18zbdgas6qf2kmvvlimxgnq7y9kj7hdxcgixrs6fj50x40q01q2d";
+    sha256 = "0xyawly00a59hfdb6b7va84k5fhcv2mxnzd77vs22bzi9y7sap43";
   };
 
   patches = lib.optional stdenv.isDarwin ./darwin.patch;
 
   nativeBuildInputs = [ cmake ] ++ optional cudaSupport addOpenGLRunpath;
   buildInputs =
-    [ boost ffmpeg gettext glew ilmbase
+    [ boost ffmpeg_3 gettext glew ilmbase
       freetype libjpeg libpng libsamplerate libsndfile libtiff
       opencolorio openexr openimagedenoise openimageio2 openjpeg python zlib fftw jemalloc
       alembic
@@ -57,6 +57,10 @@ stdenv.mkDerivation rec {
         --replace '${"$"}{LIBDIR}/python' \
                   '${python}'
       substituteInPlace build_files/cmake/platform/platform_apple.cmake \
+        --replace 'set(PYTHON_VERSION 3.7)' \
+                  'set(PYTHON_VERSION ${python.pythonVersion})' \
+        --replace '${"$"}{PYTHON_VERSION}m' \
+                  '${"$"}{PYTHON_VERSION}' \
         --replace '${"$"}{LIBDIR}/python' \
                   '${python}' \
         --replace '${"$"}{LIBDIR}/opencollada' \
@@ -86,9 +90,9 @@ stdenv.mkDerivation rec {
       "-DWITH_SDL=OFF"
       "-DWITH_OPENCOLORIO=ON"
       "-DWITH_OPENSUBDIV=ON"
-      "-DPYTHON_LIBRARY=${python.libPrefix}m"
+      "-DPYTHON_LIBRARY=${python.libPrefix}"
       "-DPYTHON_LIBPATH=${python}/lib"
-      "-DPYTHON_INCLUDE_DIR=${python}/include/${python.libPrefix}m"
+      "-DPYTHON_INCLUDE_DIR=${python}/include/${python.libPrefix}"
       "-DPYTHON_VERSION=${python.pythonVersion}"
       "-DWITH_PYTHON_INSTALL=OFF"
       "-DWITH_PYTHON_INSTALL_NUMPY=OFF"
@@ -142,6 +146,6 @@ stdenv.mkDerivation rec {
     # say: "We've decided to cancel the BL offering for an indefinite period."
     license = licenses.gpl2Plus;
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
-    maintainers = [ maintainers.goibhniu ];
+    maintainers = with maintainers; [ goibhniu veprbl ];
   };
 }
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/buku/default.nix b/pkgs/applications/misc/buku/default.nix
index f4018cff5f4..9b8f531e800 100644
--- a/pkgs/applications/misc/buku/default.nix
+++ b/pkgs/applications/misc/buku/default.nix
@@ -1,14 +1,14 @@
 { stdenv, python3, fetchFromGitHub }:
 
 with python3.pkgs; buildPythonApplication rec {
-  version = "4.3";
+  version = "4.4";
   pname = "buku";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = "buku";
     rev = "v${version}";
-    sha256 = "1cq508ymak3g5fhi1n4bdiiqkc86s2l3k4dvzw842vv2x0441cac";
+    sha256 = "10r5f1n0vcxxmqqqsgmlvibwg1xffijrr2id6r140rgiyhprz556";
   };
 
   checkInputs = [
@@ -38,6 +38,7 @@ with python3.pkgs; buildPythonApplication rec {
     click
     html5lib
     vcrpy
+    toml
   ];
 
   postPatch = ''
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 869785ef82a..a548177567c 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -30,11 +30,11 @@ let
 in
 mkDerivation rec {
   pname = "calibre";
-  version = "4.15.0";
+  version = "4.22.0";
 
   src = fetchurl {
     url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0m8mvyw5c1khd54jx896w6nfwaydmpi3cb6wi5p2a0hxdksqgrkm";
+    sha256 = "0d0wmd3ijk8px1d662igal4lfmpyzynfzs6ms1bb9nf42mq2pxai";
   };
 
   patches = [
@@ -47,7 +47,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:=.*:= '${pypkgs.pyqt5}/share/sip/PyQt5':"  \
       setup/build_environment.py
 
     # Remove unneeded files and libs
diff --git a/pkgs/applications/misc/cgminer/default.nix b/pkgs/applications/misc/cgminer/default.nix
deleted file mode 100644
index 09236565d59..00000000000
--- a/pkgs/applications/misc/cgminer/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ fetchgit, stdenv, pkgconfig, libtool, autoconf, automake
-, curl, ncurses, ocl-icd, opencl-headers, xorg, jansson }:
-
-stdenv.mkDerivation {
-  version = "3.7.2";
-  pname = "cgminer";
-
-  src = fetchgit {
-    url = "https://github.com/ckolivas/cgminer.git";
-    rev = "refs/tags/v3.7.2";
-    sha256  = "1xfzx91dpwjj1vmhas3v9ybs0p2i74lrhinijmpav15acfggm9fq";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [
-    autoconf automake libtool curl ncurses ocl-icd opencl-headers
-    xorg.libX11 xorg.libXext xorg.libXinerama jansson
-  ];
-  configureScript = "./autogen.sh";
-  configureFlags = [ "--enable-scrypt" "--enable-opencl" ];
-  NIX_LDFLAGS = "-lgcc_s -lX11 -lXext -lXinerama";
-
-  postBuild = ''
-    gcc api-example.c -o cgminer-api
-  '';
-
-  postInstall = ''
-    cp cgminer-api $out/bin/
-    chmod 444 $out/bin/*.cl
-  '';
-
-  meta = with stdenv.lib; {
-    description = "CPU/GPU miner in c for bitcoin";
-    longDescription= ''
-      This is a multi-threaded multi-pool GPU, FPGA and ASIC miner with ATI GPU
-      monitoring, (over)clocking and fanspeed support for bitcoin and derivative
-      coins. Do not use on multiple block chains at the same time!
-    '';
-    homepage = "https://github.com/ckolivas/cgminer";
-    license = licenses.gpl3;
-    maintainers = [ maintainers.offline ];
-    platforms = stdenv.lib.platforms.linux;
-    hydraPlatforms = [];
-  };
-}
diff --git a/pkgs/applications/misc/cheat/default.nix b/pkgs/applications/misc/cheat/default.nix
index b4765c0aae3..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 = "3.9.0";
+  version = "4.0.4";
 
   src = fetchFromGitHub {
     owner = "cheat";
     repo = "cheat";
     rev = version;
-    sha256 = "0jbqflkcfdrinx1lk45klm8ml0n4cgp43nzls1376cd3hfayby1y";
+    sha256 = "0cracw6pja3d7z6ip6lbmpvfxlxcnh3fbgh5ba8c87bhfz99idqn";
   };
 
   subPackages = [ "cmd/cheat" ];
@@ -17,10 +17,13 @@ buildGoModule rec {
   nativeBuildInputs = [ installShellFiles ];
 
   postInstall = ''
+    installManPage doc/cheat.1
     installShellCompletion scripts/cheat.{bash,fish,zsh}
   '';
 
-  modSha256 = "1is19qca5wgzya332rmpk862nnivxzgxchkllv629f5fwwdvdgmg";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Create and view interactive cheatsheets on the command-line";
diff --git a/pkgs/applications/misc/cherrytree/default.nix b/pkgs/applications/misc/cherrytree/default.nix
index d2ade055d6f..c74ac5ffb30 100644
--- a/pkgs/applications/misc/cherrytree/default.nix
+++ b/pkgs/applications/misc/cherrytree/default.nix
@@ -2,13 +2,13 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "cherrytree";
-  version = "0.39.3";
+  version = "0.39.4";
 
   src = fetchFromGitHub {
     owner = "giuspen";
     repo = "cherrytree";
     rev = version;
-    sha256 = "1k9i7acpphx0if6ij2p9fkmj638ry6hcyr1rdr039a8zi8hq98gz";
+    sha256 = "1wycgn1f3b858qb6kn2bsaabak8n52qkpd24w54xz6fjizlnw7x0";
 
   };
 
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/clightd.nix b/pkgs/applications/misc/clight/clightd.nix
index bfa6f2ea855..c06d00ebb52 100644
--- a/pkgs/applications/misc/clight/clightd.nix
+++ b/pkgs/applications/misc/clight/clightd.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clightd";
-  version = "4.0";
+  version = "4.2";
 
   src = fetchFromGitHub {
     owner = "FedeDP";
     repo = "Clightd";
     rev = version;
-    sha256 = "0cskxy3xsy187in5vg8xcs3kwcx2s160qv009v0ahkcalp29ghz4";
+    sha256 = "07z1m1x7nnczd51sg7m2lb6rb2c37c8glsnbrlq44hx176sj9cmj";
   };
 
   # dbus-1.pc has datadir=/etc
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/cointop/default.nix b/pkgs/applications/misc/cointop/default.nix
index ef897d2ea59..8d91531dd1f 100644
--- a/pkgs/applications/misc/cointop/default.nix
+++ b/pkgs/applications/misc/cointop/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "cointop";
-  version = "1.4.4";
+  version = "1.4.6";
 
   src = fetchFromGitHub {
     owner = "miguelmota";
     repo = pname;
     rev = version;
-    sha256 = "12yi1lmyd5y4cgcjclkczf93jj7wd6k8aqnhq21dd1mx65l77swv";
+    sha256 = "1mkb97x73vzxnbvhnxx3msicr1z0b3sjmydx257ax3nscrmf1l5z";
   };
 
   goPackagePath = "github.com/miguelmota/cointop";
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 ec2bd6b32c0..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.0";
+  version = "3.12.0";
 
   src  = fetchFromGitHub {
     owner = "hluk";
     repo = "CopyQ";
     rev = "v${version}";
-    sha256 = "1wx6nqcyzknbw71sliwq4cb5qq1gy6pr9867s6x3vpg3n8g2czkf";
+    sha256 = "04jidibf0b80c5vd659pz2wibmggjyyj9yz2bw7j4g84hwraksxb";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/cpu-x/default.nix b/pkgs/applications/misc/cpu-x/default.nix
index c058e6d5a98..a92ca30c5d8 100644
--- a/pkgs/applications/misc/cpu-x/default.nix
+++ b/pkgs/applications/misc/cpu-x/default.nix
@@ -1,22 +1,27 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, gtk3, ncurses, curl
-, json_c, libcpuid, pciutils, procps, wrapGAppsHook, nasm }:
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, gtk3, ncurses
+, libcpuid, pciutils, procps, wrapGAppsHook, nasm, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "cpu-x";
-  version = "3.2.4";
+  version = "4.0.1";
 
   src = fetchFromGitHub {
     owner = "X0rg";
     repo = "CPU-X";
     rev = "v${version}";
-    sha256 = "03y49wh9v7x6brmavj5a2clihn0z4f01pypl7m8ymarv4y3a6xkl";
+    sha256 = "191zkkswlbbsw492yygc3idf7wh3bxs97drrqvqqw0mqvrzykxm3";
   };
 
-  nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook nasm ];
+  nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook nasm makeWrapper ];
   buildInputs = [
-    gtk3 ncurses curl json_c libcpuid pciutils procps
+    gtk3 ncurses libcpuid pciutils procps
   ];
 
+  postInstall = ''
+    wrapProgram $out/bin/cpu-x \
+      --prefix PATH : ${stdenv.lib.makeBinPath [ stdenv.cc ]}
+  '';
+
   meta = with stdenv.lib; {
     description = "Free software that gathers information on CPU, motherboard and more";
     homepage = src.meta.homepage;
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index 8aaa7faa54d..70ac55ed5ad 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.0.4";
+  version = "7.1.5";
 
   desktopItem = makeDesktopItem {
     name = "dbeaver";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     desktopName = "dbeaver";
     comment = "SQL Integrated Development Environment";
     genericName = "SQL Integrated Development Environment";
-    categories = "Application;Development;";
+    categories = "Development;";
   };
 
   buildInputs = [
@@ -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 = "1d36d2rzsr8c048w0jyacvmgh46jamr9nzs22rmpm7xbzlnvdg4k";
+    sha256 = "14pdkg9xxnldr7qwpb61hp2dgsd5h9scjn59ajqsqn4f4sgcpba0";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/misc/ddcui/default.nix b/pkgs/applications/misc/ddcui/default.nix
new file mode 100644
index 00000000000..1ec288c678a
--- /dev/null
+++ b/pkgs/applications/misc/ddcui/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, pkg-config
+, qtbase
+, qttools
+, ddcutil
+}:
+
+mkDerivation rec {
+  pname = "ddcui";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "rockowitz";
+    repo = "ddcui";
+    rev = "v${version}";
+    sha256 = "0myma1zw6dlygv3xbin662d91zcnwss10syf12q2fppkrd8qdgqf";
+  };
+
+  nativeBuildInputs = [
+    # Using cmake instead of the also-supported qmake because ddcui's qmake
+    # file is not currently written to support PREFIX installations.
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    qtbase
+    qttools
+    ddcutil
+  ];
+
+  meta = with lib; {
+    description = "Graphical user interface for ddcutil - control monitor settings";
+    homepage = "https://www.ddcutil.com/ddcui_main/";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ nh2 ];
+    platforms = with platforms; linux;
+  };
+}
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/devdocs-desktop/default.nix b/pkgs/applications/misc/devdocs-desktop/default.nix
new file mode 100644
index 00000000000..7c172696133
--- /dev/null
+++ b/pkgs/applications/misc/devdocs-desktop/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, appimageTools, fetchurl, gsettings-desktop-schemas, gtk3 }:
+
+let
+  version = "0.7.1";
+  pname = "devdocs-desktop";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/egoist/devdocs-desktop/releases/download/v${version}/DevDocs-${version}.AppImage";
+    sha256 = "5bba99a34c90a65eff67aface0b7446cbf43d620a1c195f27e7bb33ab6d3d0c2";
+  };
+
+  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
+  '';
+
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/${pname}
+    install -m 444 -D ${appimageContents}/devdocs.desktop $out/share/applications/devdocs.desktop
+    install -m 444 -D ${appimageContents}/devdocs.png $out/share/icons/hicolor/0x0/apps/devdocs.png
+    substituteInPlace $out/share/applications/devdocs.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A full-featured desktop app for DevDocs.io";
+    longDescription = ''
+      DevDocs.io combines multiple API documentations in a fast, organized, and searchable interface. This is an unofficial desktop app for it.
+    '';
+    homepage = "https://github.com/egoist/devdocs-desktop";
+    downloadPage = "https://github.com/egoist/devdocs-desktop/releases";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ymarkus ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
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
new file mode 100644
index 00000000000..d0f84df7841
--- /dev/null
+++ b/pkgs/applications/misc/dstask/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "dstask";
+  version = "0.20";
+
+  src = fetchFromGitHub {
+    owner = "naggie";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0hrhvfkqflr4wx1r2xbfbi566pglrp4rp5yq0cr2ml0x6kw3yz0j";
+  };
+
+  # Set vendorSha256 to null because dstask vendors its dependencies (meaning
+  # that third party dependencies are stored in the repository).
+  #
+  # Ref <https://github.com/NixOS/nixpkgs/pull/87383#issuecomment-633204382>
+  # 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.
+  # Ref <https://github.com/NixOS/nixpkgs/pull/87383#discussion_r432097657>
+  buildFlagsArray = [ ''
+    -ldflags=-w -s
+    -X "github.com/naggie/dstask.VERSION=${version}"
+    -X "github.com/naggie/dstask.GIT_COMMIT=v${version}"
+  '' ];
+
+  subPackages = [ "cmd/dstask.go" ];
+
+  meta = with stdenv.lib; {
+    description = "Command line todo list with super-reliable git sync";
+    homepage = src.meta.homepage;
+    license = licenses.mit;
+    maintainers = with maintainers; [ stianlagstad foxit64 ];
+    platforms = platforms.linux;
+  };
+}
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..4d078f39224 100644
--- a/pkgs/applications/misc/electrum/default.nix
+++ b/pkgs/applications/misc/electrum/default.nix
@@ -1,7 +1,12 @@
-{ stdenv, fetchurl, fetchFromGitHub, wrapQtAppsHook, python3, python3Packages, zbar, secp256k1
-, enableQt ? !stdenv.isDarwin
-
-
+{ stdenv
+, fetchurl
+, fetchFromGitHub
+, wrapQtAppsHook
+, python3
+, python3Packages
+, zbar
+, secp256k1
+, enableQt ? true
 # for updater.nix
 , writeScript
 , common-updater-scripts
@@ -15,7 +20,7 @@
 }:
 
 let
-  version = "3.3.8";
+  version = "4.0.2";
 
   libsecp256k1_name =
     if stdenv.isLinux then "libsecp256k1.so.0"
@@ -31,7 +36,7 @@ let
     owner = "spesmilo";
     repo = "electrum";
     rev = version;
-    sha256 = "1di8ba77kgapcys0d7h5nx1qqakv3s60c6sp8skw8p69ramsl73c";
+    sha256 = "1xpkbard994n1gwl95b558x69k1m1m258bc220nxrajg1pywh90f";
 
     extraPostFetch = ''
       mv $out ./all
@@ -46,7 +51,7 @@ python3Packages.buildPythonApplication {
 
   src = fetchurl {
     url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
-    sha256 = "1g00cj1pmckd4xis8r032wmraiv3vd3zc803hnyxa2bnhj8z3bg2";
+    sha256 = "05ibrr6ysf6fncs1pimhxvyr7d659jwj2r2a9pdd3cmn1dxzy2w1";
   };
 
   postUnpack = ''
@@ -57,9 +62,11 @@ python3Packages.buildPythonApplication {
   nativeBuildInputs = stdenv.lib.optionals enableQt [ wrapQtAppsHook ];
 
   propagatedBuildInputs = with python3Packages; [
-    aiorpcx
     aiohttp
     aiohttp-socks
+    aiorpcx
+    attrs
+    bitstring
     dnspython
     ecdsa
     jsonrpclib-pelix
@@ -78,9 +85,6 @@ python3Packages.buildPythonApplication {
     keepkey
     trezor
     btchip
-
-    # TODO plugins
-    # amodem
   ] ++ stdenv.lib.optionals enableQt [ pyqt5 qdarkstyle ];
 
   preBuild = ''
@@ -90,7 +94,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
   '');
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 69e2d3d5598..a27e6e48516 100644
--- a/pkgs/applications/misc/etesync-dav/default.nix
+++ b/pkgs/applications/misc/etesync-dav/default.nix
@@ -1,19 +1,19 @@
-{ lib, python3Packages, radicale2 }:
+{ lib, python3Packages, radicale3 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "etesync-dav";
-  version = "0.16.0";
+  version = "0.20.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "1r0d52rlhg7dz6hziplzy7ypsfx9lgbs76j3ylinh2csplwkzv69";
+    sha256 = "1q8h89hqi4kxphn1g5nbcia0haz5k57is9rycwaabm55mj9s9fah";
   };
 
   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 a071761599a..b1e9f3ac35a 100644
--- a/pkgs/applications/misc/exercism/default.nix
+++ b/pkgs/applications/misc/exercism/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "17gvz9a0sn4p36hf4l77bxhhfipf4x998iay31layqwbnzmb4xy7";
   };
 
-  modSha256 = "0pg0hxrr6jjd03wbjn5y65x02md3h352mnm1gr6vyiv7hn4ws14m";
+  vendorSha256 = "0b2m9xkac60k5rbxmb03cxf530m23av14pnsjk8067l998sm4vqi";
+
+  doCheck = false;
 
   subPackages = [ "./exercism" ];
 
diff --git a/pkgs/applications/misc/fbmenugen/0001-Fix-paths.patch b/pkgs/applications/misc/fbmenugen/0001-Fix-paths.patch
new file mode 100644
index 00000000000..b52aeafb5f3
--- /dev/null
+++ b/pkgs/applications/misc/fbmenugen/0001-Fix-paths.patch
@@ -0,0 +1,69 @@
+From 76c25147328d71960c70bbdd5a9396aac4a362a2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
+Date: Wed, 20 May 2020 14:19:07 -0300
+Subject: [PATCH] Fix paths
+
+---
+ fbmenugen | 14 ++++++--------
+ 1 file changed, 6 insertions(+), 8 deletions(-)
+
+diff --git a/fbmenugen b/fbmenugen
+index 46a18dc..0c8eb08 100755
+--- a/fbmenugen
++++ b/fbmenugen
+@@ -214,9 +214,7 @@ my %CONFIG = (
+ 
+ #<<<
+         desktop_files_paths => [
+-            '/usr/share/applications',
+-            '/usr/local/share/applications',
+-            '/usr/share/applications/kde4',
++            '/run/current-system/sw/share/applications',
+             "$home_dir/.local/share/applications",
+         ],
+ #>>>
+@@ -232,7 +230,7 @@ my %CONFIG = (
+     force_icon_size  => 0,
+     generic_fallback => 0,
+     locale_support   => 1,
+-    use_gtk3         => 0,
++    use_gtk3         => 1,
+ 
+     VERSION => $version,
+              );
+@@ -252,7 +250,7 @@ if (not -e $config_file) {
+ }
+ 
+ if (not -e $schema_file) {
+-    if (-e (my $etc_schema_file = "/etc/xdg/$pkgname/schema.pl")) {
++    if (-e (my $etc_schema_file = "@fbmenugen@/etc/xdg/$pkgname/schema.pl")) {
+         require File::Copy;
+         File::Copy::copy($etc_schema_file, $schema_file)
+           or warn "$0: can't copy file `$etc_schema_file' to `$schema_file': $!\n";
+@@ -570,7 +568,7 @@ EXIT
+         $generated_menu .= begin_category(@{$schema->{fluxbox}}) . <<"FOOTER";
+ [config] (Configure)
+ [submenu] (System Styles) {Choose a style...}
+-  [stylesdir] (/usr/share/fluxbox/styles)
++  [stylesdir] (@fluxbox@/share/fluxbox/styles)
+ [end]
+ [submenu] (User Styles) {Choose a style...}
+   [stylesdir] (~/.fluxbox/styles)
+@@ -580,12 +578,12 @@ EXIT
+   [exec] (Screenshot - JPG) {import screenshot.jpg && display -resize 50% screenshot.jpg}
+   [exec] (Screenshot - PNG) {import screenshot.png && display -resize 50% screenshot.png}
+   [exec] (Run) {fbrun}
+-  [exec] (Regen Menu) {fluxbox-generate_menu}
++  [exec] (Regen Menu) {@fluxbox@/bin/fluxbox-generate_menu}
+ [end]
+ [commanddialog] (Fluxbox Command)
+   [reconfig] (Reload config)
+   [restart] (Restart)
+-  [exec] (About) {(fluxbox -v; fluxbox -info | sed 1d) | xmessage -file - -center}
++  [exec] (About) {(@fluxbox@/bin/fluxbox -v; @fluxbox@/bin/fluxbox -info | @gnused@/bin/sed 1d) | @xmessage@/bin/xmessage -file - -center}
+   [separator]
+   [exit] (Exit)
+ [end]
+-- 
+2.26.2
+
diff --git a/pkgs/applications/misc/fbmenugen/default.nix b/pkgs/applications/misc/fbmenugen/default.nix
new file mode 100644
index 00000000000..bc40f2dad83
--- /dev/null
+++ b/pkgs/applications/misc/fbmenugen/default.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, fetchFromGitHub
+, fluxbox
+, gnused
+, makeWrapper
+, perlPackages
+, substituteAll
+, xorg
+, wrapGAppsHook
+}:
+
+perlPackages.buildPerlPackage rec {
+  pname = "fbmenugen";
+  version = "0.85";
+
+  src = fetchFromGitHub {
+    owner = "trizen";
+    repo = pname;
+    rev = version;
+    sha256 = "1pmms3wzkm8h41a8zrkpn6gq9m9yy5wr5rrzmb84lbacprqq6q7q";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./0001-Fix-paths.patch;
+      xmessage = xorg.xmessage;
+      inherit fluxbox gnused;
+    })
+  ];
+
+  outputs = [ "out" ];
+
+  nativeBuildInputs = [
+    makeWrapper
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    fluxbox
+    gnused
+    perlPackages.DataDump
+    perlPackages.FileDesktopEntry
+    perlPackages.Gtk3
+    perlPackages.LinuxDesktopFiles
+    perlPackages.perl
+    xorg.xmessage
+  ];
+
+  dontConfigure = true;
+
+  dontBuild = true;
+
+  postPatch = ''
+    substituteInPlace fbmenugen --subst-var-by fbmenugen $out
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -D -t $out/bin ${pname}
+    install -D -t $out/etc/xdg/${pname} schema.pl
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    wrapProgram "$out/bin/${pname}" --prefix PERL5LIB : "$PERL5LIB"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/trizen/fbmenugen";
+    description = "Simple menu generator for the Fluxbox Window Manager";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/applications/misc/fetchmail/default.nix b/pkgs/applications/misc/fetchmail/default.nix
index 1b892c7f536..bed673ef8d4 100644
--- a/pkgs/applications/misc/fetchmail/default.nix
+++ b/pkgs/applications/misc/fetchmail/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, openssl }:
 
 let
-  version = "6.4.4";
+  version = "6.4.8";
 in
 stdenv.mkDerivation {
   pname = "fetchmail";
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/fetchmail/fetchmail-${version}.tar.xz";
-    sha256 = "1smbydwfjq29a2l44g6mgj0cd412fz40gbq6vq0klm7pmgd606si";
+    sha256 = "1g893dr3982vrqzxybmflnqfmd1q6yipd9krvxn0avhlrrp97k96";
   };
 
   buildInputs = [ openssl ];
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/fitnesstrax/default.nix b/pkgs/applications/misc/fitnesstrax/default.nix
index f0081c39102..e90e364aaee 100644
--- a/pkgs/applications/misc/fitnesstrax/default.nix
+++ b/pkgs/applications/misc/fitnesstrax/default.nix
@@ -19,6 +19,8 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [
     wrapGAppsHook
+    glib
+    gtk3
   ];
 
   buildInputs = [
diff --git a/pkgs/applications/misc/fme/default.nix b/pkgs/applications/misc/fme/default.nix
index cf93729eddd..34d5a45b8ea 100644
--- a/pkgs/applications/misc/fme/default.nix
+++ b/pkgs/applications/misc/fme/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, pkgconfig, autoconf, automake, gettext
 , fluxbox, bc, gtkmm2, glibmm, libglademm, libsigcxx }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
 
   pname = "fme";
   version = "1.1.3";
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 6845cbcb59d..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.13.6";
+  version = "1.14.3";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "17hgryj8qsxcx3c96ir25q0wsh5q0s6c6fb33lqfdbrfxrjcixbk";
+    sha256 = "0lyy48za81vfw4a5l7fsczsv889dk829nby941xvswp3scclpvfy";
   };
 
   doCheck = false;
diff --git a/pkgs/applications/misc/ganttproject-bin/default.nix b/pkgs/applications/misc/ganttproject-bin/default.nix
index 2e8478f41d3..b36bd83e70f 100644
--- a/pkgs/applications/misc/ganttproject-bin/default.nix
+++ b/pkgs/applications/misc/ganttproject-bin/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
       desktopName = "GanttProject";
       genericName = "Shedule and manage projects";
       comment = meta.description;
-      categories = "Office;Application;";
+      categories = "Office;";
     };
 
     javaOptions = [
diff --git a/pkgs/applications/misc/gcalcli/default.nix b/pkgs/applications/misc/gcalcli/default.nix
index d7d6ad5302d..20aefe2ab1d 100644
--- a/pkgs/applications/misc/gcalcli/default.nix
+++ b/pkgs/applications/misc/gcalcli/default.nix
@@ -5,13 +5,13 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "gcalcli";
-  version = "4.2.1";
+  version = "4.3.0";
 
   src = fetchFromGitHub {
     owner  = "insanum";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "1xwrgmy2azvr99b7df92m2imj0wy4fh53bn7lvcrnghjbnh7n0l0";
+    sha256 = "0s5fhcmz3n0dwh3vkqr4aigi59q43v03ch5jhh6v75149icwr0df";
   };
 
   postPatch = lib.optionalString stdenv.isLinux ''
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 b7b90448e4b..ee6ed27ddda 100644
--- a/pkgs/applications/misc/geoipupdate/default.nix
+++ b/pkgs/applications/misc/geoipupdate/default.nix
@@ -2,22 +2,23 @@
 
 buildGoModule rec {
   pname = "geoipupdate";
-  version = "4.2.2";
+  version = "4.3.0";
 
   src = fetchFromGitHub {
     owner = "maxmind";
     repo = "geoipupdate";
     rev = "v${version}";
-    sha256 = "057f9kp8g3wixjh9dm58g0qvzfcmhwbk1d573ldly4g5404r9bvf";
+    sha256 = "08h14bf4z2gx9sy34jpi2pvxv3i8g9ypl222hzdjsp2ixhl0jia9";
   };
 
-  modSha256 = "1bypanvrkcqp8rk84cv2569671irgaf3cy27lcrknyina4pdvir5";
+  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 ];
   };
 }
diff --git a/pkgs/applications/misc/get_iplayer/default.nix b/pkgs/applications/misc/get_iplayer/default.nix
index 9c05e984720..5c31ce55add 100644
--- a/pkgs/applications/misc/get_iplayer/default.nix
+++ b/pkgs/applications/misc/get_iplayer/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchFromGitHub, atomicparsley, flvstreamer, ffmpeg, makeWrapper, perl, perlPackages, rtmpdump}:
+{stdenv, fetchFromGitHub, atomicparsley, flvstreamer, ffmpeg_3, makeWrapper, perl, perlPackages, rtmpdump}:
 
 with stdenv.lib;
 
@@ -26,7 +26,7 @@ perlPackages.buildPerlPackage rec {
   installPhase = ''
     mkdir -p $out/bin $out/share/man/man1
     cp get_iplayer $out/bin
-    wrapProgram $out/bin/get_iplayer --suffix PATH : ${makeBinPath [ atomicparsley ffmpeg flvstreamer rtmpdump ]} --prefix PERL5LIB : $PERL5LIB
+    wrapProgram $out/bin/get_iplayer --suffix PATH : ${makeBinPath [ atomicparsley ffmpeg_3 flvstreamer rtmpdump ]} --prefix PERL5LIB : $PERL5LIB
     cp get_iplayer.1 $out/share/man/man1
   '';
 
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/gitit/default.nix b/pkgs/applications/misc/gitit/default.nix
new file mode 100644
index 00000000000..a4ffd3bf88d
--- /dev/null
+++ b/pkgs/applications/misc/gitit/default.nix
@@ -0,0 +1,61 @@
+{ lib, haskellPackages, haskell, removeReferencesTo
+# “Plugins†are a fancy way of saying gitit will invoke
+# GHC at *runtime*, which in turn makes it pull GHC
+# into its runtime closure. Only enable if you really need
+# that feature. But if you do you’ll want to use gitit
+# as a library anyway.
+, pluginSupport ? false
+}:
+
+# this is similar to what we do with the pandoc executable
+
+let
+  plain = haskellPackages.gitit;
+  plugins =
+    if pluginSupport
+    then plain
+    else haskell.lib.disableCabalFlag plain "plugins";
+  static = haskell.lib.justStaticExecutables plugins;
+
+in
+  (haskell.lib.overrideCabal static (drv: {
+    buildTools = (drv.buildTools or []) ++ [ removeReferencesTo ];
+  })).overrideAttrs (drv: {
+
+    # These libraries are still referenced, because they generate
+    # a `Paths_*` module for figuring out their version.
+    # The `Paths_*` module is generated by Cabal, and contains the
+    # version, but also paths to e.g. the data directories, which
+    # lead to a transitive runtime dependency on the whole GHC distribution.
+    # This should ideally be fixed in haskellPackages (or even Cabal),
+    # but a minimal gitit is important enough to patch it manually.
+    disallowedReferences = [
+      haskellPackages.pandoc-types
+      haskellPackages.HTTP
+      haskellPackages.pandoc
+      haskellPackages.happstack-server
+      haskellPackages.filestore
+    ];
+    postInstall = ''
+      remove-references-to \
+        -t ${haskellPackages.pandoc-types} \
+        $out/bin/gitit
+      remove-references-to \
+        -t ${haskellPackages.HTTP} \
+        $out/bin/gitit
+      remove-references-to \
+        -t ${haskellPackages.pandoc} \
+        $out/bin/gitit
+      remove-references-to \
+        -t ${haskellPackages.happstack-server} \
+        $out/bin/gitit
+      remove-references-to \
+        -t ${haskellPackages.filestore} \
+        $out/bin/gitit
+    '';
+
+    meta = drv.meta // {
+      maintainers = drv.meta.maintainers or []
+        ++ [ lib.maintainers.Profpatsch ];
+    };
+  })
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/gmrun/default.nix b/pkgs/applications/misc/gmrun/default.nix
index eaee8fb5fb3..8ca4c606162 100644
--- a/pkgs/applications/misc/gmrun/default.nix
+++ b/pkgs/applications/misc/gmrun/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
       ./gmrun-0.9.2-xdg.patch
     ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Gnome Completion-Run Utility";
     longDescription = ''
       A simple program which provides a "run program" window, featuring a bash-like TAB completion.
@@ -35,8 +35,8 @@ stdenv.mkDerivation rec {
       Running commands in a terminal with CTRL-Enter. URL handlers.
     '';
     homepage = "https://sourceforge.net/projects/gmrun/";
-    license = "GPL";
+    license = licenses.gpl2;
     maintainers = [];
-    platforms = stdenv.lib.platforms.all;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/misc/go-jira/default.nix b/pkgs/applications/misc/go-jira/default.nix
index f8da250dbc7..7844a6a593c 100644
--- a/pkgs/applications/misc/go-jira/default.nix
+++ b/pkgs/applications/misc/go-jira/default.nix
@@ -1,22 +1,24 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-{ stdenv, buildGoPackage, fetchgit }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "go-jira";
-  version = "1.0.17";
+  version = "1.0.23";
 
-  goPackagePath = "gopkg.in/Netflix-Skunkworks/go-jira.v1";
-
-  src = fetchgit {
+  src = fetchFromGitHub {
     rev = "v${version}";
-    url = "https://gopkg.in/Netflix-Skunkworks/go-jira.v1";
-    sha256 = "0ap5dzikp934mawigmv7ighajr5yxpck2gpnb2cmkc1p6qa6gn4v";
+    owner = "go-jira";
+    repo = "jira";
+    sha256 = "0qk5ifjxkqisvgv066rw8xj2zszc9mhc0by4338xjd7ng10jkk7b";
   };
 
+  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/Netflix-Skunkworks/go-jira";
+    homepage = "https://github.com/go-jira/jira";
     license = licenses.asl20;
-    maintainers = [ maintainers.carlosdagos ];
+    maintainers = with maintainers; [ carlosdagos timstott ];
   };
 }
diff --git a/pkgs/applications/misc/golden-cheetah/default.nix b/pkgs/applications/misc/golden-cheetah/default.nix
index 761d05e5f9f..3eaefd66395 100644
--- a/pkgs/applications/misc/golden-cheetah/default.nix
+++ b/pkgs/applications/misc/golden-cheetah/default.nix
@@ -12,7 +12,7 @@ let
     desktopName = "GoldenCheetah";
     genericName = "GoldenCheetah";
     comment = "Performance software for cyclists, runners and triathletes";
-    categories = "Application;Utility;";
+    categories = "Utility;";
   };
 in mkDerivation rec {
   pname = "golden-cheetah";
diff --git a/pkgs/applications/misc/goldendict/default.nix b/pkgs/applications/misc/goldendict/default.nix
index cd8ecc18223..57a40f8d187 100644
--- a/pkgs/applications/misc/goldendict/default.nix
+++ b/pkgs/applications/misc/goldendict/default.nix
@@ -4,19 +4,19 @@
 , withCC ? true, opencc
 , withEpwing ? true, libeb
 , withExtraTiff ? true, libtiff
-, withFFmpeg ? true, libao, ffmpeg
+, withFFmpeg ? true, libao, ffmpeg_3
 , withMultimedia ? true
-, withZim ? true }:
+, withZim ? true, zstd }:
 
 mkDerivation rec {
   pname = "goldendict";
-  version = "2020-01-09";
+  version = "2020-05-27";
 
   src = fetchFromGitHub {
     owner = "goldendict";
     repo = pname;
-    rev = "da197ff5cd0e7326124c9240a1853a0e8b1de439";
-    sha256 = "0dlzwjh9wg4bzhhib71jycpp21qw762ww63a37dd50z1ymi61lxc";
+    rev = "ec40c1dcfde6df1dc7950443b46ae22c283b1e52";
+    sha256 = "1zmnwwnpnrqfyf7vmmh38r95q2fl4cqzbkp69bcwkr0xc80wgyz7";
   };
 
   patches = [
@@ -39,7 +39,8 @@ mkDerivation rec {
     ++ stdenv.lib.optional withCC opencc
     ++ stdenv.lib.optional withEpwing libeb
     ++ stdenv.lib.optional withExtraTiff libtiff
-    ++ stdenv.lib.optionals withFFmpeg [ libao ffmpeg ];
+    ++ stdenv.lib.optionals withFFmpeg [ libao ffmpeg_3 ]
+    ++ stdenv.lib.optional withZim zstd;
 
   qmakeFlags = with stdenv.lib; [
     "goldendict.pro"
diff --git a/pkgs/applications/misc/gollum/Gemfile.lock b/pkgs/applications/misc/gollum/Gemfile.lock
index 4759cdcf573..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.0)
-    concurrent-ruby (1.1.6)
+    backports (3.18.1)
+    concurrent-ruby (1.1.7)
     crass (1.0.6)
     execjs (2.7.0)
-    ffi (1.12.2)
-    gemojione (4.3.2)
+    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,45 +25,46 @@ GEM
       therubyrhino (~> 2.1.0)
       uglifier (~> 3.2)
       useragent (~> 0.16.2)
-    gollum-lib (5.0.3)
+    gollum-lib (5.0.5)
       gemojione (~> 4.1)
       github-markup (~> 3.0)
-      gollum-rugged_adapter (~> 0.99.4, >= 0.99.4)
+      gollum-rugged_adapter (~> 1.0)
       loofah (~> 2.3)
       nokogiri (~> 1.8)
       octicons (~> 8.5)
       rouge (~> 3.1)
       twitter-text (= 1.14.7)
-    gollum-rugged_adapter (0.99.4)
+    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.5.0)
+    loofah (2.6.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
-    mime-types-data (3.2019.1009)
+    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)
-    rack (2.2.2)
+    rack (2.2.3)
     rack-protection (2.0.8.1)
       rack
-    rb-fsevent (0.10.3)
+    rb-fsevent (0.10.4)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
     rexml (3.2.4)
-    rouge (3.17.0)
+    rouge (3.22.0)
     rss (0.2.9)
       rexml
     ruby2_keywords (0.0.2)
@@ -88,7 +89,7 @@ GEM
     sprockets (3.7.2)
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
-    sprockets-helpers (1.2.3)
+    sprockets-helpers (1.3.0)
       sprockets (>= 2.2)
     therubyrhino (2.1.2)
       therubyrhino_jar (>= 1.7.4, < 1.7.9)
diff --git a/pkgs/applications/misc/gollum/gemset.nix b/pkgs/applications/misc/gollum/gemset.nix
index 3febcea2f9a..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 = "13ywgyyxzlgks7nb17gwqjmdqjjmhc8si3iliv8jhf51lb3s865v";
+      sha256 = "0qagwshq7zyjgm6k53hbrf4gfrwn6qz5d6rrc83cl59q37v68zsc";
       type = "gem";
     };
-    version = "3.17.0";
+    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"];
@@ -44,10 +44,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.13.1";
   };
   gemojione = {
     dependencies = ["json"];
@@ -55,10 +55,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "097mrsahv1h67kjrk1cpiqc1cbrfgvlp2rqwmzdzxrq0kx50461w";
+      sha256 = "0fwd523pgr72w3w6jwpz9i6sggvz52d7831a1s4y3lv8m50j6ima";
       type = "gem";
     };
-    version = "4.3.2";
+    version = "4.3.3";
   };
   github-markup = {
     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 = "0r59fyf7i4rlp6wj9ilnqd9pmgpkafv0yl4jmrxa6hr2p4cmnf1g";
+      sha256 = "18f3g5px9zznyh6ppqlnjdp1ia8awgrix9lhbfh64rpgxg0b9xlr";
       type = "gem";
     };
-    version = "5.0.3";
+    version = "5.0.5";
   };
   gollum-rugged_adapter = {
     dependencies = ["mime-types" "rugged"];
@@ -98,30 +98,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0016yfac3b3sy34k9wrqg422mjm8cpd1jd1m4gdn4x2d4jxhxkzq";
+      sha256 = "0ln12976vm1ks74yyrssdx576b1z0hs8r82fivr366knv5hlcrdm";
       type = "gem";
     };
-    version = "0.99.4";
+    version = "1.0";
   };
   json = {
     groups = ["default"];
     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"];
@@ -140,10 +141,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jk9fgn5ayzbqvzqm11gbkqvas77zdbpkvynlylyiwynclgrn040";
+      sha256 = "1s9hq8bpn6g5vqr3nzyirn3agn7x8agan6151zvq5vmkf6rvmyb2";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.6.0";
   };
   mime-types = {
     dependencies = ["mime-types-data"];
@@ -161,10 +162,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18x61fc36951vw7f74gq8cyybdpxvyg5d0azvqhrs82ddw3v16xh";
+      sha256 = "1z75svngyhsglx0y2f9rnil2j08f9ab54b3l95bpgz67zq2if753";
       type = "gem";
     };
-    version = "3.2019.1009";
+    version = "3.2020.0512";
   };
   mini_portile2 = {
     groups = ["default"];
@@ -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"];
@@ -234,10 +235,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10mp9s48ssnw004aksq90gvhdvwczh8j6q82q2kqiqq92jd1zxbp";
+      sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "2.2.3";
   };
   rack-protection = {
     dependencies = ["rack"];
@@ -255,10 +256,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
+      sha256 = "1k9bsj7ni0g2fd7scyyy1sk9dy2pg9akniahab0iznvjmhn54h87";
       type = "gem";
     };
-    version = "0.10.3";
+    version = "0.10.4";
   };
   rb-inotify = {
     dependencies = ["ffi"];
@@ -286,10 +287,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xl7k5paf66p57sphm4nfa4k86yf93lhdzzr0cv0l4divq12g2pr";
+      sha256 = "1wcz7i009wdbymlfsamagqi18m6ih8j60bii0k18f21g70r72i0m";
       type = "gem";
     };
-    version = "3.17.0";
+    version = "3.22.0";
   };
   rss = {
     dependencies = ["rexml"];
@@ -383,10 +384,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hy67dwz76n5db00d9n3qy59ici96c2g25c9xpmp2nh8ilvha338";
+      sha256 = "14iq8v16l31bfq7pikfmgcv5x6pkc5lbdmwwg6zlzcy1bibcliar";
       type = "gem";
     };
-    version = "1.2.3";
+    version = "1.3.0";
   };
   therubyrhino = {
     dependencies = ["therubyrhino_jar"];
diff --git a/pkgs/applications/misc/gomatrix/default.nix b/pkgs/applications/misc/gomatrix/default.nix
index 5d412469617..c903f1ba1bb 100644
--- a/pkgs/applications/misc/gomatrix/default.nix
+++ b/pkgs/applications/misc/gomatrix/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "1wq55rvpyz0gjn8kiwwj49awsmi86zy1fdjcphzgb7883xalgr2m";
   };
 
-  modSha256 = "13higizadnf4ypk8qn1b5s6mdg7n6l3indb43mjp1b4cfzjsyl91";
+  vendorSha256 = "1yw0gph4zfg8w4343882l6b9lggwyak2zz8ic1l1m2m44p3aq169";
+
+  doCheck = false;
 
   meta = with lib; {
     description = ''Displays "The Matrix" in a terminal'';
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
new file mode 100644
index 00000000000..57f6be40ab0
--- /dev/null
+++ b/pkgs/applications/misc/gopacked/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "gopacked";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "tulir";
+    repo = "gopacked";
+    rev = "v${version}";
+    sha256 = "03qr8rlnipziy16nbcpf631jh42gsyv2frdnh8yzsh8lm0p8p4ry";
+  };
+
+  vendorSha256 = "0fklr3lxh8g7gda65wf2wdkqv15869h7m1bwbzbiv8pasrf5b352";
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A simple text-based Minecraft modpack manager";
+    license = licenses.agpl3;
+    homepage = src.meta.homepage;
+    maintainers = with maintainers; [ foxit64 ];
+  };
+
+}
diff --git a/pkgs/applications/misc/gosmore/default.nix b/pkgs/applications/misc/gosmore/default.nix
index 350cb56695f..4da6c6d07cc 100644
--- a/pkgs/applications/misc/gosmore/default.nix
+++ b/pkgs/applications/misc/gosmore/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
 
   patches = [ ./pointer_int_comparison.patch ];
   patchFlags = [ "-p1" "--binary" ]; # patch has dos style eol
-      
+
   meta = with stdenv.lib; {
     description = "Open Street Map viewer";
     homepage = "https://sourceforge.net/projects/gosmore/";
@@ -33,5 +33,6 @@ stdenv.mkDerivation {
       raskin
     ];
     platforms = platforms.linux;
+    license = licenses.bsd2;
   };
 }
diff --git a/pkgs/applications/misc/gpsbabel/default.nix b/pkgs/applications/misc/gpsbabel/default.nix
index ef4c732ef52..1915b2dae17 100644
--- a/pkgs/applications/misc/gpsbabel/default.nix
+++ b/pkgs/applications/misc/gpsbabel/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, zlib, which, IOKit, qtbase }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, zlib, which, IOKit, qtbase, libusb-compat-0_1 }:
 
 stdenv.mkDerivation rec {
   pname = "gpsbabel";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  buildInputs = [ zlib qtbase which ]
+  buildInputs = [ zlib qtbase which libusb-compat-0_1 ]
     ++ lib.optionals stdenv.isDarwin [ IOKit ];
 
   /* FIXME: Building the documentation, with "make doc", requires this:
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index c519bf63e09..9ee3b96a5bb 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -1,18 +1,28 @@
-{ stdenv, mkDerivation, fetchFromGitHub, qmake, qttools }:
+{ stdenv, mkDerivation, fetchFromGitHub, qmake, qttools, qttranslations }:
 
 mkDerivation rec {
   pname = "gpxsee";
-  version = "7.29";
+  version = "7.31";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = version;
-    sha256 = "sha256-OTKyxEu7RZZy3JBHTM7YoH+G4lhoRfb1INLtQEKC5p4=";
+    sha256 = "0y60h66p8ydkinxk9x4sp4cm6gq66nc9jcavy135vmycsiq9gphn";
   };
 
+  patches = [
+    # See https://github.com/NixOS/nixpkgs/issues/86054
+    ./fix-qttranslations-path.diff
+  ];
+
   nativeBuildInputs = [ qmake qttools ];
 
+  postPatch = ''
+    substituteInPlace src/GUI/app.cpp \
+      --subst-var-by qttranslations ${qttranslations}
+  '';
+
   preConfigure = ''
     lrelease gpxsee.pro
   '';
diff --git a/pkgs/applications/misc/gpxsee/fix-qttranslations-path.diff b/pkgs/applications/misc/gpxsee/fix-qttranslations-path.diff
new file mode 100644
index 00000000000..3b546338d20
--- /dev/null
+++ b/pkgs/applications/misc/gpxsee/fix-qttranslations-path.diff
@@ -0,0 +1,18 @@
+diff --git i/src/GUI/app.cpp w/src/GUI/app.cpp
+index 10e84d5..1e0abbe 100644
+--- i/src/GUI/app.cpp
++++ w/src/GUI/app.cpp
+@@ -34,11 +34,10 @@ App::App(int &argc, char **argv) : QApplication(argc, argv)
+ 	installTranslator(gpxsee);
+ 
+ 	QTranslator *qt = new QTranslator(this);
+-#if defined(Q_OS_WIN32) || defined(Q_OS_MAC)
++#if defined(Q_OS_WIN32)
+ 	qt->load(QLocale::system(), "qt", "_", ProgramPaths::translationsDir());
+ #else // Q_OS_WIN32 || Q_OS_MAC
+-	qt->load(QLocale::system(), "qt", "_", QLibraryInfo::location(
+-	  QLibraryInfo::TranslationsPath));
++	qt->load(QLocale::system(), "qt", "_", QLatin1String("@qttranslations@/translations"));
+ #endif // Q_OS_WIN32 || Q_OS_MAC
+ 	installTranslator(qt);
+ 
diff --git a/pkgs/applications/misc/hamster/default.nix b/pkgs/applications/misc/hamster/default.nix
new file mode 100644
index 00000000000..57b36e00436
--- /dev/null
+++ b/pkgs/applications/misc/hamster/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchFromGitHub, python3Packages, intltool, glib, itstool
+, wrapGAppsHook, gobject-introspection, pango, gdk-pixbuf, atk, wafHook }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "hamster";
+  version = "3.0.2";
+
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "projecthamster";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "09ikiwc2izjvwqbbyp8knn190x5y4anwslkmb9k2h3r3jwrg2vd2";
+  };
+
+  nativeBuildInputs = [
+    python3Packages.setuptools
+    wrapGAppsHook
+    intltool
+    itstool
+    wafHook
+    glib
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    pango
+    gdk-pixbuf
+    atk
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    pygobject3
+    pycairo
+    pyxdg
+    dbus-python
+  ];
+
+  # Setup hooks have trouble with strict deps.
+  # https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
+
+  dontWrapGApps = true;
+
+  # Arguments to be passed to `makeWrapper`, only used by buildPython*
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  postFixup = ''
+    wrapPythonProgramsIn $out/libexec "$out $pythonPath"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Time tracking application";
+    homepage = "http://projecthamster.org/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = [ maintainers.fabianhauser ];
+  };
+}
diff --git a/pkgs/applications/misc/heimer/default.nix b/pkgs/applications/misc/heimer/default.nix
index f301122a92d..1626fc440e9 100644
--- a/pkgs/applications/misc/heimer/default.nix
+++ b/pkgs/applications/misc/heimer/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "heimer";
-  version = "1.15.1";
+  version = "1.18.0";
 
   src = fetchFromGitHub {
     owner = "juzzlin";
     repo = pname;
     rev = version;
-    sha256 = "13a9yfq7m8jhirb31i0mmigqb135r585zwqddknl090d88164fic";
+    sha256 = "16p18svfcp201gd624wzmf0gpdvywybxp8539igin6s70k6rpc97";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -19,5 +19,6 @@ mkDerivation rec {
     homepage = "https://github.com/juzzlin/Heimer";
     license = licenses.gpl3;
     maintainers  = with maintainers; [ dtzWill ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/hstr/default.nix b/pkgs/applications/misc/hstr/default.nix
index b1e740fb760..81f931b11f8 100644
--- a/pkgs/applications/misc/hstr/default.nix
+++ b/pkgs/applications/misc/hstr/default.nix
@@ -15,15 +15,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
   buildInputs = [ readline ncurses gettext ];
 
-  configurePhase = ''
-    autoreconf -fvi
-    ./configure
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin/
-    mv src/hstr $out/bin/
-  '';
+  configureFlags = [ "--prefix=$(out)" ];
 
   meta = {
     homepage = "https://github.com/dvorka/hstr";
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 f0e191097d5..a04c2bddaf9 100644
--- a/pkgs/applications/misc/hugo/default.nix
+++ b/pkgs/applications/misc/hugo/default.nix
@@ -2,18 +2,20 @@
 
 buildGoModule rec {
   pname = "hugo";
-  version = "0.70.0";
-
-  goPackagePath = "github.com/gohugoio/hugo";
+  version = "0.74.3";
 
   src = fetchFromGitHub {
     owner = "gohugoio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14g1x95jh91z9xm3xkv2psw2jn7z6bv2009miyv727df4d58nh6m";
+    sha256 = "0rikr4yrjvmrv8smvr8jdbcjqwf61y369wn875iywrj63pyr74r9";
   };
 
-  modSha256 = "015ha8pjz1fv8qg558xa6hl52fp2qd486ir9m01dvxw63xqx76ss";
+  vendorSha256 = "17xn6bdy942g6nx5xky41ixmd5kaz68chj3rb02ibpyraamx04nm";
+
+  doCheck = false;
+
+  runVend = true;
 
   buildFlags = [ "-tags" "extended" ];
 
diff --git a/pkgs/applications/misc/ikiwiki/default.nix b/pkgs/applications/misc/ikiwiki/default.nix
index 1515b4b0f99..0c2abbd9f58 100644
--- a/pkgs/applications/misc/ikiwiki/default.nix
+++ b/pkgs/applications/misc/ikiwiki/default.nix
@@ -2,7 +2,7 @@
 , gitSupport ? false, git ? null
 , docutilsSupport ? false, python ? null, docutils ? null
 , monotoneSupport ? false, monotone ? null
-, bazaarSupport ? false, bazaar ? null
+, bazaarSupport ? false, breezy ? null
 , cvsSupport ? false, cvs ? null, cvsps ? null
 , subversionSupport ? false, subversion ? null
 , mercurialSupport ? false, mercurial ? null
@@ -12,7 +12,7 @@
 assert docutilsSupport -> (python != null && docutils != null);
 assert gitSupport -> (git != null);
 assert monotoneSupport -> (monotone != null);
-assert bazaarSupport -> (bazaar != null);
+assert bazaarSupport -> (breezy != null);
 assert cvsSupport -> (cvs != null && cvsps != null && perlPackages.Filechdir != null);
 assert subversionSupport -> (subversion != null);
 assert mercurialSupport -> (mercurial != null);
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
     ++ lib.optionals docutilsSupport [python docutils]
     ++ lib.optionals gitSupport [git]
     ++ lib.optionals monotoneSupport [monotone]
-    ++ lib.optionals bazaarSupport [bazaar]
+    ++ lib.optionals bazaarSupport [breezy]
     ++ lib.optionals cvsSupport [cvs cvsps perlPackages.Filechdir]
     ++ lib.optionals subversionSupport [subversion]
     ++ lib.optionals mercurialSupport [mercurial];
@@ -64,7 +64,7 @@ stdenv.mkDerivation {
       wrapProgram $a --suffix PERL5LIB : $PERL5LIB --prefix PATH : ${perlPackages.perl}/bin:$out/bin \
       ${lib.optionalString gitSupport ''--prefix PATH : ${git}/bin \''}
       ${lib.optionalString monotoneSupport ''--prefix PATH : ${monotone}/bin \''}
-      ${lib.optionalString bazaarSupport ''--prefix PATH : ${bazaar}/bin \''}
+      ${lib.optionalString bazaarSupport ''--prefix PATH : ${breezy}/bin \''}
       ${lib.optionalString cvsSupport ''--prefix PATH : ${cvs}/bin \''}
       ${lib.optionalString cvsSupport ''--prefix PATH : ${cvsps}/bin \''}
       ${lib.optionalString subversionSupport ''--prefix PATH : ${subversion.out}/bin \''}
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 9e244fb44b8..ffc7c0e2aeb 100644
--- a/pkgs/applications/misc/jekyll/basic/Gemfile.lock
+++ b/pkgs/applications/misc/jekyll/basic/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (6.0.3)
+    activesupport (6.0.3.2)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -10,31 +10,31 @@ 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)
     eventmachine (1.2.7)
-    ffi (1.12.2)
+    ffi (1.13.1)
     forwardable-extended (2.6.0)
     gemoji (3.0.1)
-    html-pipeline (2.12.3)
+    html-pipeline (2.14.0)
       activesupport (>= 2)
       nokogiri (>= 1.4)
     http_parser.rb (0.6.0)
-    i18n (1.8.2)
+    i18n (1.8.5)
       concurrent-ruby (~> 1.0)
-    jekyll (4.0.1)
+    jekyll (4.1.1)
       addressable (~> 2.4)
       colorator (~> 1.0)
       em-websocket (~> 0.5)
-      i18n (>= 0.9.5, < 2)
+      i18n (~> 1.0)
       jekyll-sass-converter (~> 2.0)
       jekyll-watch (~> 2.0)
       kramdown (~> 2.1)
       kramdown-parser-gfm (~> 1.0)
       liquid (~> 4.0)
-      mercenary (~> 0.3.3)
+      mercenary (~> 0.4.0)
       pathutil (~> 0.9)
       rouge (~> 3.0)
       safe_yaml (~> 1.0)
@@ -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)
@@ -64,10 +64,10 @@ GEM
     listen (3.2.1)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
-    mercenary (0.3.6)
+    mercenary (0.4.0)
     mini_portile2 (2.4.0)
-    minitest (5.14.0)
-    nokogiri (1.10.9)
+    minitest (5.14.1)
+    nokogiri (1.10.10)
       mini_portile2 (~> 2.4.0)
     pathutil (0.16.2)
       forwardable-extended (~> 2.6)
@@ -76,9 +76,9 @@ GEM
     rb-inotify (0.10.1)
       ffi (~> 1.0)
     rexml (3.2.4)
-    rouge (3.18.0)
+    rouge (3.22.0)
     safe_yaml (1.0.5)
-    sassc (2.3.0)
+    sassc (2.4.0)
       ffi (~> 1.9)
     terminal-table (1.8.0)
       unicode-display_width (~> 1.1, >= 1.1.1)
@@ -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 a02ec1f16c4..b14b27f3756 100644
--- a/pkgs/applications/misc/jekyll/basic/gemset.nix
+++ b/pkgs/applications/misc/jekyll/basic/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0shh34xx9ygxb57s8mag8l22klvjfnk1c4jbjvchk16r6z0ps326";
+      sha256 = "02sh4q8izyfdnh7z2nj5mn5sklfvqgx9rrag5j3l51y8aqkrg2yk";
       type = "gem";
     };
-    version = "6.0.3";
+    version = "6.0.3.2";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -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"];
@@ -67,10 +67,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.13.1";
   };
   forwardable-extended = {
     groups = ["default"];
@@ -98,10 +98,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x5i330yks7pb1jxcbm9n6gslkgaqhyvl13d0cqxmxzkcajvb7z4";
+      sha256 = "080sn9z1a64gv04p318jz10y6lv6qd3avip08rrcmq9k4ihai0f1";
       type = "gem";
     };
-    version = "2.12.3";
+    version = "2.14.0";
   };
   "http_parser.rb" = {
     groups = ["default"];
@@ -119,10 +119,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jwrd1l4mxz06iyx6053lr6hz2zy7ah2k3ranfzisvych5q19kwm";
+      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
       type = "gem";
     };
-    version = "1.8.2";
+    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"];
@@ -130,10 +130,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gw05bh9iidnx2lxw0h5aiknbly818cmndc4a9nhq28fiafizi82";
+      sha256 = "192k1ggw99slpqpxb4xamcvcm2pdahgnmygl746hmkrar0i3xa5r";
       type = "gem";
     };
-    version = "4.0.1";
+    version = "4.1.1";
   };
   jekyll-avatar = {
     dependencies = ["jekyll"];
@@ -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"];
@@ -260,10 +260,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a";
+      sha256 = "0f2i827w4lmsizrxixsrv2ssa3gk1b7lmqh8brk8ijmdb551wnmj";
       type = "gem";
     };
-    version = "0.3.6";
+    version = "0.4.0";
   };
   mini_portile2 = {
     groups = ["default"];
@@ -280,10 +280,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz";
+      sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
       type = "gem";
     };
-    version = "5.14.0";
+    version = "5.14.1";
   };
   nokogiri = {
     dependencies = ["mini_portile2"];
@@ -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 = "1n9h0ls2a2zq0bcsw31wxci1wdxb8s3vglfadxpcs6b04vkf6nqq";
+      sha256 = "1wcz7i009wdbymlfsamagqi18m6ih8j60bii0k18f21g70r72i0m";
       type = "gem";
     };
-    version = "3.18.0";
+    version = "3.22.0";
   };
   safe_yaml = {
     groups = ["default"];
@@ -374,10 +374,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qzfnvb8khvc6w2sn3k91mndc2w50xxx5c84jkr6xdxlmaq1a3kg";
+      sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.4.0";
   };
   terminal-table = {
     dependencies = ["unicode-display_width"];
@@ -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 d5588438ae6..d7955072065 100644
--- a/pkgs/applications/misc/jekyll/full/Gemfile.lock
+++ b/pkgs/applications/misc/jekyll/full/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (6.0.3)
+    activesupport (6.0.3.2)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -11,13 +11,13 @@ GEM
       public_suffix (>= 2.0.2, < 5.0)
     classifier-reborn (2.2.0)
       fast-stemmer (~> 1.0)
-    coderay (1.1.2)
+    coderay (1.1.3)
     coffee-script (2.4.1)
       coffee-script-source
       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)
@@ -26,26 +26,26 @@ GEM
     faraday (1.0.1)
       multipart-post (>= 1.2, < 3)
     fast-stemmer (1.0.2)
-    ffi (1.12.2)
+    ffi (1.13.1)
     forwardable-extended (2.6.0)
     gemoji (3.0.1)
-    html-pipeline (2.12.3)
+    html-pipeline (2.14.0)
       activesupport (>= 2)
       nokogiri (>= 1.4)
     http_parser.rb (0.6.0)
-    i18n (1.8.2)
+    i18n (1.8.5)
       concurrent-ruby (~> 1.0)
-    jekyll (4.0.1)
+    jekyll (4.1.1)
       addressable (~> 2.4)
       colorator (~> 1.0)
       em-websocket (~> 0.5)
-      i18n (>= 0.9.5, < 2)
+      i18n (~> 1.0)
       jekyll-sass-converter (~> 2.0)
       jekyll-watch (~> 2.0)
       kramdown (~> 2.1)
       kramdown-parser-gfm (~> 1.0)
       liquid (~> 4.0)
-      mercenary (~> 0.3.3)
+      mercenary (~> 0.4.0)
       pathutil (~> 0.9)
       rouge (~> 3.0)
       safe_yaml (~> 1.0)
@@ -55,7 +55,7 @@ GEM
     jekyll-coffeescript (2.0.0)
       coffee-script (~> 2.2)
       coffee-script-source (~> 1.12)
-    jekyll-feed (0.13.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)
@@ -90,14 +90,14 @@ GEM
     listen (3.2.1)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
-    mercenary (0.3.6)
+    mercenary (0.4.0)
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
-    mime-types-data (3.2020.0425)
+    mime-types-data (3.2020.0512)
     mini_portile2 (2.4.0)
-    minitest (5.14.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,9 +110,9 @@ GEM
       ffi (~> 1.0)
     rdoc (6.2.1)
     rexml (3.2.4)
-    rouge (3.18.0)
+    rouge (3.22.0)
     safe_yaml (1.0.5)
-    sassc (2.3.0)
+    sassc (2.4.0)
       ffi (~> 1.9)
     sawyer (0.8.2)
       addressable (>= 2.3.5)
@@ -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 8c2b1ffaf95..aa0bc9bcdcc 100644
--- a/pkgs/applications/misc/jekyll/full/gemset.nix
+++ b/pkgs/applications/misc/jekyll/full/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0shh34xx9ygxb57s8mag8l22klvjfnk1c4jbjvchk16r6z0ps326";
+      sha256 = "02sh4q8izyfdnh7z2nj5mn5sklfvqgx9rrag5j3l51y8aqkrg2yk";
       type = "gem";
     };
-    version = "6.0.3";
+    version = "6.0.3.2";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -49,10 +49,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "1.1.3";
   };
   coffee-script = {
     dependencies = ["coffee-script-source" "execjs"];
@@ -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"];
@@ -164,10 +164,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.13.1";
   };
   forwardable-extended = {
     groups = ["default"];
@@ -195,10 +195,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x5i330yks7pb1jxcbm9n6gslkgaqhyvl13d0cqxmxzkcajvb7z4";
+      sha256 = "080sn9z1a64gv04p318jz10y6lv6qd3avip08rrcmq9k4ihai0f1";
       type = "gem";
     };
-    version = "2.12.3";
+    version = "2.14.0";
   };
   "http_parser.rb" = {
     groups = ["default"];
@@ -216,10 +216,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jwrd1l4mxz06iyx6053lr6hz2zy7ah2k3ranfzisvych5q19kwm";
+      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
       type = "gem";
     };
-    version = "1.8.2";
+    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"];
@@ -227,10 +227,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gw05bh9iidnx2lxw0h5aiknbly818cmndc4a9nhq28fiafizi82";
+      sha256 = "192k1ggw99slpqpxb4xamcvcm2pdahgnmygl746hmkrar0i3xa5r";
       type = "gem";
     };
-    version = "4.0.1";
+    version = "4.1.1";
   };
   jekyll-avatar = {
     dependencies = ["jekyll"];
@@ -260,10 +260,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lx8nvkhd8l1wm3b6s506rycwbmpbzbsbjl65p21asjz6vbwf1ir";
+      sha256 = "1mgc1ik2cq2g8g7z9ql2i6ydzy771m2i4qrd1q77x8cf2sprlb0z";
       type = "gem";
     };
-    version = "0.13.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"];
@@ -457,10 +457,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a";
+      sha256 = "0f2i827w4lmsizrxixsrv2ssa3gk1b7lmqh8brk8ijmdb551wnmj";
       type = "gem";
     };
-    version = "0.3.6";
+    version = "0.4.0";
   };
   mime-types = {
     dependencies = ["mime-types-data"];
@@ -478,10 +478,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zin0q26wc5p7zb7glpwary7ms60s676vcq987yv22jgm6hnlwlh";
+      sha256 = "1z75svngyhsglx0y2f9rnil2j08f9ab54b3l95bpgz67zq2if753";
       type = "gem";
     };
-    version = "3.2020.0425";
+    version = "3.2020.0512";
   };
   mini_portile2 = {
     groups = ["default"];
@@ -498,10 +498,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz";
+      sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
       type = "gem";
     };
-    version = "5.14.0";
+    version = "5.14.1";
   };
   multipart-post = {
     groups = ["default"];
@@ -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 = "1n9h0ls2a2zq0bcsw31wxci1wdxb8s3vglfadxpcs6b04vkf6nqq";
+      sha256 = "1wcz7i009wdbymlfsamagqi18m6ih8j60bii0k18f21g70r72i0m";
       type = "gem";
     };
-    version = "3.18.0";
+    version = "3.22.0";
   };
   safe_yaml = {
     groups = ["default"];
@@ -623,10 +623,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qzfnvb8khvc6w2sn3k91mndc2w50xxx5c84jkr6xdxlmaq1a3kg";
+      sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.4.0";
   };
   sawyer = {
     dependencies = ["addressable" "faraday"];
@@ -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/jgmenu/default.nix b/pkgs/applications/misc/jgmenu/default.nix
index 46792588f4c..e6a140ec7f9 100644
--- a/pkgs/applications/misc/jgmenu/default.nix
+++ b/pkgs/applications/misc/jgmenu/default.nix
@@ -1,14 +1,27 @@
-{ stdenv, fetchFromGitHub, pkgconfig, python3Packages, pango, librsvg, libxml2, menu-cache, xorg, makeWrapper }:
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, python3Packages
+, pango
+, librsvg
+, libxml2
+, menu-cache
+, xorg
+, makeWrapper
+, enableXfcePanelApplet ? false
+, xfce
+, gtk3
+}:
 
 stdenv.mkDerivation rec {
   pname = "jgmenu";
-  version = "4.2.0";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "johanmalm";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wcmx2yhm6n54w6nymgb8pgfjv411i3zj1vk79q9vr052y1622z0";
+    sha256 = "00q4v31x4q7nm61wda4v0gznv18bm3qs8mp04pcns60qacdv9lkk";
   };
 
   nativeBuildInputs = [
@@ -25,9 +38,17 @@ stdenv.mkDerivation rec {
     xorg.libXinerama
     xorg.libXrandr
     python3Packages.python
+  ] ++ stdenv.lib.optionals enableXfcePanelApplet [
+    gtk3
+    xfce.libxfce4util
+    xfce.xfce4-panel
   ];
 
-  makeFlags = [ "prefix=${placeholder "out"}" ];
+  configureFlags = [
+  ]
+  ++ stdenv.lib.optionals enableXfcePanelApplet [
+    "--with-xfce4-panel-applet"
+  ];
 
   postFixup = ''
     wrapPythonProgramsIn "$out/lib/jgmenu"
diff --git a/pkgs/applications/misc/joplin-desktop/default.nix b/pkgs/applications/misc/joplin-desktop/default.nix
index 3c84588530c..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.201";
-  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 = "060dkgamsv59vgslqyjfh1g8wg3nldrvfb9lf0y9sxjlbsv8bc55";
+    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}'
   '';
 
 
@@ -42,7 +44,7 @@ in appimageTools.wrapType2 rec {
     '';
     homepage = "https://joplinapp.org";
     license = licenses.mit;
-    maintainers = with maintainers; [ hugoreeves rafaelgg raquelgb ];
+    maintainers = with maintainers; [ hugoreeves ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix
index f68de80b701..ab8448f503d 100644
--- a/pkgs/applications/misc/josm/default.nix
+++ b/pkgs/applications/misc/josm/default.nix
@@ -1,20 +1,20 @@
 { stdenv, fetchurl, fetchsvn, makeWrapper, unzip, jre, libXxf86vm }:
 let
   pname = "josm";
-  version = "16239";
+  version = "16812";
   srcs = {
     jar = fetchurl {
       url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
-      sha256 = "041n81mnd587043f8wwjv8ckbx0hlsqf3pc7hzbns1y89xdghms1";
+      sha256 = "1ld0c87mhifbdnlrr7a9jmgn3s5xklzbpwcl1m6j1lc18ajs1awq";
     };
     macosx = fetchurl {
       url = "https://josm.openstreetmap.de/download/macosx/josm-macosx-${version}.zip";
-      sha256 = "1nlw1rvwdfp1hhsxyjli8pylm0hb7k62sa0nqvgyiw54dz78n00c";
+      sha256 = "0vhawcgzh06k2dfqav28n3sv1ij1ziz6bgi4k7m0diix6ia7hlar";
     };
     pkg = fetchsvn {
       url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
       rev = version;
-      sha256 = "1qqk4bal84wnb66jym6qrdi10ypzvdzihd4jk5rnyfl3wm5qafbi";
+      sha256 = "0ybjca6dhnbwl3xqwrc91c444fzs1zrlnz7qr3l79s1vll9r4qd1";
     };
   };
 in
diff --git a/pkgs/applications/misc/k4dirstat/default.nix b/pkgs/applications/misc/k4dirstat/default.nix
new file mode 100644
index 00000000000..2b4ae320e4e
--- /dev/null
+++ b/pkgs/applications/misc/k4dirstat/default.nix
@@ -0,0 +1,33 @@
+{ mkDerivation
+, extra-cmake-modules
+, fetchFromGitHub
+, kdoctools
+, kiconthemes
+, kio
+, kjobwidgets
+, kxmlgui
+, stdenv
+}:
+
+mkDerivation rec {
+  pname = "k4dirstat";
+  version = "3.2.1";
+
+  src = fetchFromGitHub {
+    owner = "jeromerobert";
+    repo = pname;
+    rev = version;
+    sha256 = "15xjb80jq6vhzvzx4l341f40d8a23w1334qh6cczqm9adfnzycp7";
+  };
+
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ kiconthemes kio kjobwidgets kxmlgui ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/jeromerobert/k4dirstat";
+    description = "A small utility program that sums up disk usage for directory trees";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.raboof ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/kanboard/default.nix b/pkgs/applications/misc/kanboard/default.nix
index e6193d43563..4f84420330d 100644
--- a/pkgs/applications/misc/kanboard/default.nix
+++ b/pkgs/applications/misc/kanboard/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kanboard";
-  version = "1.2.14";
+  version = "1.2.15";
 
   src = fetchFromGitHub {
     owner = "kanboard";
     repo = "kanboard";
     rev = "v${version}";
-    sha256 = "11bwajzidnyagdyip7i8rwni1f66acv0k4lybdm0mc4195anivjh";
+    sha256 = "0lib2qlc8a59i9dak0g1j5hymwbq9vhflp5srhcjislxypfvrizs";
   };
 
   dontBuild = true;
diff --git a/pkgs/applications/misc/keepass-plugins/keeagent/default.nix b/pkgs/applications/misc/keepass-plugins/keeagent/default.nix
index c3d26077443..85749af0a56 100644
--- a/pkgs/applications/misc/keepass-plugins/keeagent/default.nix
+++ b/pkgs/applications/misc/keepass-plugins/keeagent/default.nix
@@ -1,14 +1,14 @@
 { stdenv, buildEnv, fetchzip, mono }:
 
 let
-  version = "0.10.1";
+  version = "0.12.0";
   drv = stdenv.mkDerivation {
     pname = "keeagent";
     inherit version;
 
     src = fetchzip {
-      url = "https://lechnology.com/wp-content/uploads/2018/04/KeeAgent_v0.10.1.zip";
-      sha256 = "0j7az6l9wcr8z66mfplkxwydd4bgz2p2vd69xncf0nxlfb0lshh7";
+      url = "https://lechnology.com/wp-content/uploads/2020/05/KeeAgent_v0.12.0.zip";
+      sha256 = "0fcfbj3yikiv3dmp69236h9r3c416amdq849kn131w1129gb68xd";
       stripRoot = false;
     };
 
diff --git a/pkgs/applications/misc/keepass/default.nix b/pkgs/applications/misc/keepass/default.nix
index 1d668e039bd..ea579ce4117 100644
--- a/pkgs/applications/misc/keepass/default.nix
+++ b/pkgs/applications/misc/keepass/default.nix
@@ -1,13 +1,13 @@
 { stdenv, lib, fetchurl, buildDotnetPackage, substituteAll, makeWrapper, makeDesktopItem,
-  unzip, icoutils, gtk2, xorg, xdotool, xsel, plugins ? [] }:
+  unzip, icoutils, gtk2, xorg, xdotool, xsel, coreutils, unixtools, glib, plugins ? [] }:
 
 with builtins; buildDotnetPackage rec {
   baseName = "keepass";
-  version = "2.40";
+  version = "2.45";
 
   src = fetchurl {
     url = "mirror://sourceforge/keepass/KeePass-${version}-Source.zip";
-    sha256 = "1gldl74wz2lvsci6rn71d6q1zmnhr52z6fjib9nsragsazq5byz9";
+    sha256 = "07wyp3k2kiprr47mc4vxb7vmh7g5kshcqw0gq3qr87gi78c9i66m";
   };
 
   sourceRoot = ".";
@@ -20,6 +20,9 @@ with builtins; buildDotnetPackage rec {
       xsel = "${xsel}/bin/xsel";
       xprop = "${xorg.xprop}/bin/xprop";
       xdotool = "${xdotool}/bin/xdotool";
+      uname = "${coreutils}/bin/uname";
+      whereis = "${unixtools.whereis}/bin/whereis";
+      gsettings = "${glib}/bin/gsettings";
     })
   ];
 
@@ -65,7 +68,7 @@ with builtins; buildDotnetPackage rec {
     icon = "keepass";
     desktopName = "Keepass";
     genericName = "Password manager";
-    categories = "Application;Utility;";
+    categories = "Utility;";
     mimeType = stdenv.lib.concatStringsSep ";" [
       "application/x-keepass2"
       ""
diff --git a/pkgs/applications/misc/keepass/fix-paths.patch b/pkgs/applications/misc/keepass/fix-paths.patch
index 318f8a35898..5ff36a21c00 100644
--- a/pkgs/applications/misc/keepass/fix-paths.patch
+++ b/pkgs/applications/misc/keepass/fix-paths.patch
@@ -1,8 +1,23 @@
+From 830d0db80f2fce09e12c117f8338b8e4b05866ff Mon Sep 17 00:00:00 2001
+From: Pascal Winkelmann <pascal@wnklmnn.de>
+Date: Tue, 19 May 2020 10:28:31 +0200
+Subject: [PATCH] fixpaths
+
+---
+ KeePass/Native/NativeMethods.Unix.cs  |  2 +-
+ KeePass/UI/UISystemFonts.cs           |  2 +-
+ KeePass/Util/AppLocator.cs            |  2 +-
+ KeePass/Util/ClipboardUtil.Unix.cs    | 14 +++++++-------
+ KeePassLib/Native/ClipboardU.cs       |  2 +-
+ KeePassLib/Native/NativeLib.cs        |  2 +-
+ KeePassLib/Utility/MonoWorkarounds.cs |  4 ++--
+ 7 files changed, 14 insertions(+), 14 deletions(-)
+
 diff --git a/KeePass/Native/NativeMethods.Unix.cs b/KeePass/Native/NativeMethods.Unix.cs
-index 7495a1c..4ef4727 100644
+index 4c47258..79cfdb2 100644
 --- a/KeePass/Native/NativeMethods.Unix.cs
 +++ b/KeePass/Native/NativeMethods.Unix.cs
-@@ -128,7 +128,7 @@ namespace KeePass.Native
+@@ -130,7 +130,7 @@ namespace KeePass.Native
  			try

  			{

  				Application.DoEvents(); // E.g. for clipboard updates

@@ -11,8 +26,34 @@ index 7495a1c..4ef4727 100644
  				Application.DoEvents(); // E.g. for clipboard updates

  				return (strOutput ?? string.Empty);

  			}

+diff --git a/KeePass/UI/UISystemFonts.cs b/KeePass/UI/UISystemFonts.cs
+index 08d6134..2bfa4a2 100644
+--- a/KeePass/UI/UISystemFonts.cs
++++ b/KeePass/UI/UISystemFonts.cs
+@@ -188,7 +188,7 @@ namespace KeePass.UI
+ 

+ 		private static void UbuntuLoadFonts()

+ 		{

+-			string strDef = NativeLib.RunConsoleApp("gsettings",

++			string strDef = NativeLib.RunConsoleApp("@gsettings@",

+ 				"get org.gnome.desktop.interface font-name");

+ 			if(strDef == null) return;

+ 

+diff --git a/KeePass/Util/AppLocator.cs b/KeePass/Util/AppLocator.cs
+index af02803..8a32c9d 100644
+--- a/KeePass/Util/AppLocator.cs
++++ b/KeePass/Util/AppLocator.cs
+@@ -429,7 +429,7 @@ namespace KeePass.Util
+ 			if(NativeLib.GetPlatformID() == PlatformID.MacOSX)

+ 				strArgPrefix = string.Empty; // FR 3535696

+ 

+-			string str = NativeLib.RunConsoleApp("whereis", strArgPrefix + strApp);

++			string str = NativeLib.RunConsoleApp("@whereis@", strArgPrefix + strApp);

+ 			if(str == null) return null;

+ 

+ 			str = str.Trim();

 diff --git a/KeePass/Util/ClipboardUtil.Unix.cs b/KeePass/Util/ClipboardUtil.Unix.cs
-index e93a22a..3fd9a2b 100644
+index ab49ee2..7f6c50f 100644
 --- a/KeePass/Util/ClipboardUtil.Unix.cs
 +++ b/KeePass/Util/ClipboardUtil.Unix.cs
 @@ -62,7 +62,7 @@ namespace KeePass.Util
@@ -51,20 +92,33 @@ index e93a22a..3fd9a2b 100644
  				return;

  			}

 diff --git a/KeePassLib/Native/ClipboardU.cs b/KeePassLib/Native/ClipboardU.cs
-index ddd8f57..150eb82 100644
+index 291c51d..3c76380 100644
 --- a/KeePassLib/Native/ClipboardU.cs
 +++ b/KeePassLib/Native/ClipboardU.cs
 @@ -27,7 +27,7 @@ namespace KeePassLib.Native
  {

  	internal static class ClipboardU

  	{

--		private const string XSel = "xsel";

-+		private const string XSel = "@xsel@";

+-		internal const string XSel = "xsel";

++		internal const string XSel = "@xsel@";

  		private const string XSelV = "--version";

  		private const string XSelR = "--output --clipboard";

  		private const string XSelC = "--clear --clipboard";

+diff --git a/KeePassLib/Native/NativeLib.cs b/KeePassLib/Native/NativeLib.cs
+index 2d227a3..243f4ee 100644
+--- a/KeePassLib/Native/NativeLib.cs
++++ b/KeePassLib/Native/NativeLib.cs
+@@ -145,7 +145,7 @@ namespace KeePassLib.Native
+ 			// Mono returns PlatformID.Unix on Mac OS X, workaround this

+ 			if(m_platID.Value == PlatformID.Unix)

+ 			{

+-				if((RunConsoleApp("uname", null) ?? string.Empty).Trim().Equals(

++				if((RunConsoleApp("@uname@", null) ?? string.Empty).Trim().Equals(

+ 					"Darwin", StrUtil.CaseIgnoreCmp))

+ 					m_platID = PlatformID.MacOSX;

+ 			}

 diff --git a/KeePassLib/Utility/MonoWorkarounds.cs b/KeePassLib/Utility/MonoWorkarounds.cs
-index 0da7019..f6a1022 100644
+index e20bb3a..4fd875b 100644
 --- a/KeePassLib/Utility/MonoWorkarounds.cs
 +++ b/KeePassLib/Utility/MonoWorkarounds.cs
 @@ -41,7 +41,7 @@ namespace KeePassLib.Utility
@@ -76,7 +130,7 @@ index 0da7019..f6a1022 100644
  

  		private static Dictionary<uint, bool> g_dForceReq = new Dictionary<uint, bool>();

  		private static Thread g_thFixClip = null;

-@@ -303,7 +303,7 @@ namespace KeePassLib.Utility
+@@ -335,7 +335,7 @@ namespace KeePassLib.Utility
  				// }

  				// else { Debug.Assert(false); }

  

@@ -85,3 +139,6 @@ index 0da7019..f6a1022 100644
  					"-id " + strHandle + " WM_CLASS") ?? string.Empty);

  

  				if(strWmClass.IndexOf("\"" + PwDefs.ResClass + "\"",

+-- 
+2.25.4
+
diff --git a/pkgs/applications/misc/keepass/keepass-plugins-load.patch b/pkgs/applications/misc/keepass/keepass-plugins-load.patch
index ca52e7ef191..e6a6bff8dad 100644
--- a/pkgs/applications/misc/keepass/keepass-plugins-load.patch
+++ b/pkgs/applications/misc/keepass/keepass-plugins-load.patch
@@ -1 +1 @@
-+			m_pluginManager.LoadAllPlugins("$PATH$/lib/dotnet/keepass", SearchOption.TopDirectoryOnly, new string[] {});
++			m_pluginManager.LoadAllPlugins("$PATH$/lib/dotnet/keepass", System.IO.SearchOption.TopDirectoryOnly, new string[] {});
diff --git a/pkgs/applications/misc/keepass/keepass-plugins.patch b/pkgs/applications/misc/keepass/keepass-plugins.patch
index cde6e7252bc..891be1ffa31 100644
--- a/pkgs/applications/misc/keepass/keepass-plugins.patch
+++ b/pkgs/applications/misc/keepass/keepass-plugins.patch
@@ -1,13 +1,25 @@
+From 4cb0b18f5326a07927453897180289a4b254ac4f Mon Sep 17 00:00:00 2001
+From: Pascal Winkelmann <pascal@wnklmnn.de>
+Date: Tue, 19 May 2020 10:43:49 +0200
+Subject: [PATCH] loadplugin
+
+---
+ KeePass/Forms/MainForm.cs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
 diff --git a/KeePass/Forms/MainForm.cs b/KeePass/Forms/MainForm.cs
-index 3d5fca0..4c3f3d4 100644
+index 347eaf5..b92e1e2 100644
 --- a/KeePass/Forms/MainForm.cs
 +++ b/KeePass/Forms/MainForm.cs
-@@ -406,7 +406,$OUTPUT_LC$ @@ namespace KeePass.Forms
- 			m_pluginManager.Initialize(m_pluginDefaultHost);
+@@ -440,7 +440,$OUTPUT_LC$ @@ namespace KeePass.Forms
+ 				ToolStripItemCollection tsicT = m_ctxTray.Items;
+ 				ToolStripItem tsiPrevT = m_ctxTrayOptions;
  
- 			m_pluginManager.UnloadAllPlugins();
--			if(AppPolicy.Current.Plugins) m_pluginManager.LoadAllPlugins();
+-				m_pluginManager.LoadAllPlugins();
 $DO_LOADS$+
  
- 			// Delete old files *after* loading plugins (when timestamps
- 			// of loaded plugins have been updated already)
+ 				m_pluginManager.AddMenuItems(PluginMenuType.Main, tsicM, tsiPrevM);
+ 				m_pluginManager.AddMenuItems(PluginMenuType.Group, tsicGM, tsiPrevGM);
+-- 
+2.25.4
+
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 8646b9864d9..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; [
@@ -22,6 +22,11 @@ python3.pkgs.buildPythonApplication rec {
     install -D misc/zsh/_khard $out/share/zsh/site-functions/_khard
   '';
 
+  preCheck = ''
+    # see https://github.com/scheibler/khard/issues/263
+    export COLUMNS=80
+  '';
+
   meta = {
     homepage = "https://github.com/scheibler/khard";
     description = "Console carddav client";
diff --git a/pkgs/applications/misc/kitty/default.nix b/pkgs/applications/misc/kitty/default.nix
index 80cf90ced16..65d7df72489 100644
--- a/pkgs/applications/misc/kitty/default.nix
+++ b/pkgs/applications/misc/kitty/default.nix
@@ -3,7 +3,7 @@
   libstartup_notification, libGL, libX11, libXrandr, libXinerama, libXcursor,
   libxkbcommon, libXi, libXext, wayland-protocols, wayland,
   installShellFiles,
-  which, dbus,
+  dbus,
   Cocoa,
   CoreGraphics,
   Foundation,
@@ -20,14 +20,14 @@
 with python3Packages;
 buildPythonApplication rec {
   pname = "kitty";
-  version = "0.17.4";
+  version = "0.18.3";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "kovidgoyal";
     repo = "kitty";
     rev = "v${version}";
-    sha256 = "1rbyj84y8r6h7qd6w7cw58v2abspippignj458ihv2m26i4als2x";
+    sha256 = "0y05bw6d1m79dyhm7b6lk6wy82pmy2s9jhf01kf8gr2p0rjjp9yl";
   };
 
   buildInputs = [
@@ -50,7 +50,7 @@ buildPythonApplication rec {
   ];
 
   nativeBuildInputs = [
-    pkgconfig which sphinx ncurses
+    pkgconfig sphinx ncurses
   ] ++ stdenv.lib.optionals stdenv.isDarwin [
     imagemagick
     libicns  # For the png2icns tool.
@@ -63,13 +63,6 @@ buildPythonApplication rec {
 
   patches = [
     ./fix-paths.patch
-  ] ++ stdenv.lib.optionals stdenv.isLinux [
-    (substituteAll {
-      src = ./library-paths.patch;
-      libstartup_notification = "${libstartup_notification}/lib/libstartup-notification-1.so";
-      libcanberra = "${libcanberra}/lib/libcanberra.so";
-      libEGL = "${stdenv.lib.getLib libGL}/lib/libEGL.so.1";
-    })
   ] ++ stdenv.lib.optionals stdenv.isDarwin [
     ./no-lto.patch
   ];
@@ -77,13 +70,31 @@ buildPythonApplication rec {
   # Causes build failure due to warning
   hardeningDisable = stdenv.lib.optional stdenv.isDarwin "strictoverflow";
 
+  dontConfigure = true;
+
   buildPhase = if stdenv.isDarwin then ''
     ${python.interpreter} setup.py kitty.app --update-check-interval=0
     make man
   '' else ''
-    ${python.interpreter} setup.py linux-package --update-check-interval=0
+    ${python.interpreter} setup.py linux-package \
+    --update-check-interval=0 \
+    --egl-library='${stdenv.lib.getLib libGL}/lib/libEGL.so.1' \
+    --startup-notification-library='${libstartup_notification}/lib/libstartup-notification-1.so' \
+    --canberra-library='${libcanberra}/lib/libcanberra.so'
   '';
 
+  checkInputs = [ pillow ];
+
+  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
     mkdir -p $out
@@ -100,8 +111,6 @@ buildPythonApplication rec {
     wrapProgram "$out/bin/kitty" --prefix PATH : "$out/bin:${stdenv.lib.makeBinPath [ imagemagick xsel ncurses.dev ]}"
     runHook postInstall
 
-    # ZSH completions need to be invoked with `source`:
-    # https://github.com/kovidgoyal/kitty/blob/8ceb941051b89b7c50850778634f0b6137aa5e6e/docs/index.rst#zsh
     mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
     "$out/bin/kitty" + complete setup fish > "$out/share/fish/vendor_completions.d/kitty.fish"
     "$out/bin/kitty" + complete setup bash > "$out/share/bash-completion/completions/kitty.bash"
@@ -125,7 +134,8 @@ buildPythonApplication rec {
     homepage = "https://github.com/kovidgoyal/kitty";
     description = "A modern, hackable, featureful, OpenGL based terminal emulator";
     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/kitty/library-paths.patch b/pkgs/applications/misc/kitty/library-paths.patch
deleted file mode 100644
index 608dfb80d61..00000000000
--- a/pkgs/applications/misc/kitty/library-paths.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- a/glfw/egl_context.c
-+++ b/glfw/egl_context.c
-@@ -314,7 +314,7 @@ bool _glfwInitEGL(void)
- #elif defined(__CYGWIN__)
-         "libEGL-1.so",
- #else
--        "libEGL.so.1",
-+        "@libEGL@",
- #endif
-         NULL
-     };
-
---- a/kitty/desktop.c
-+++ b/kitty/desktop.c
-@@ -34,10 +34,7 @@ init_x11_startup_notification(PyObject UNUSED *self, PyObject *args) {
-         done = true;
- 
-         const char* libnames[] = {
--            "libstartup-notification-1.so",
--            // some installs are missing the .so symlink, so try the full name
--            "libstartup-notification-1.so.0",
--            "libstartup-notification-1.so.0.0.0",
-+            "@libstartup_notification@",
-             NULL
-         };
-         for (int i = 0; libnames[i]; i++) {
-@@ -113,10 +110,7 @@ load_libcanberra(void) {
-     if (done) return;
-     done = true;
-     const char* libnames[] = {
--        "libcanberra.so",
--        // some installs are missing the .so symlink, so try the full name
--        "libcanberra.so.0",
--        "libcanberra.so.0.2.5",
-+        "@libcanberra@",
-         NULL
-     };
-     for (int i = 0; libnames[i]; i++) {
diff --git a/pkgs/applications/misc/kitty/no-lto.patch b/pkgs/applications/misc/kitty/no-lto.patch
index 8073c11fbd2..b1f38f9fd49 100644
--- a/pkgs/applications/misc/kitty/no-lto.patch
+++ b/pkgs/applications/misc/kitty/no-lto.patch
@@ -1,6 +1,6 @@
 --- a/setup.py
 +++ b/setup.py
-@@ -277,10 +277,6 @@ def init_env(
+@@ -287,10 +287,6 @@ def init_env(
      cppflags += shlex.split(os.environ.get('CPPFLAGS', ''))
      cflags += shlex.split(os.environ.get('CFLAGS', ''))
      ldflags += shlex.split(os.environ.get('LDFLAGS', ''))
diff --git a/pkgs/applications/misc/klayout/default.nix b/pkgs/applications/misc/klayout/default.nix
index 73b51e4adbc..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.4";
+  version = "0.26.6";
 
   src = fetchFromGitHub {
     owner = "KLayout";
     repo = "klayout";
     rev = "v${version}";
-    sha256 = "0hqc11vz24b6nfpfzsjwwmaq0sznwwqpzmd48q5wpdl0kz1309gj";
+    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/ksmoothdock/default.nix b/pkgs/applications/misc/ksmoothdock/default.nix
new file mode 100644
index 00000000000..9538329bf9b
--- /dev/null
+++ b/pkgs/applications/misc/ksmoothdock/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, extra-cmake-modules
+, kactivities
+, qtbase
+}:
+
+mkDerivation rec {
+  pname = "KSmoothDock";
+  version = "6.2";
+
+  src = fetchFromGitHub {
+    owner = "dangvd";
+    repo = "ksmoothdock";
+    rev = "v${version}";
+    sha256 = "182x47cymgnp5xisa0xx93hmd5wrfigy8zccrr23p4r9hp8xbnam";
+  };
+
+  patches = [
+    # Fixed hard coded installation path to use CMAKE_INSTALL_BINDIR and CMAKE_INSTALL_PREFIX instead
+    (fetchpatch {
+      url = "https://github.com/dangvd/ksmoothdock/commit/00799bef8a1c1fe61ef9274866267d9fe9194041.patch";
+      sha256 = "1nmb7gf1ggzicxz8k4fd67xhwjy404myqzjpgjym66wqxm0arni4";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake extra-cmake-modules ];
+
+  buildInputs = [ kactivities qtbase ];
+
+  cmakeDir = "../src";
+
+  meta = with lib; {
+    description = "A cool desktop panel for KDE Plasma 5";
+    license = licenses.mit;
+    homepage = "https://dangvd.github.io/ksmoothdock/";
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/llpp/default.nix b/pkgs/applications/misc/llpp/default.nix
index e2ec64932ff..d7752258df9 100644
--- a/pkgs/applications/misc/llpp/default.nix
+++ b/pkgs/applications/misc/llpp/default.nix
@@ -5,12 +5,12 @@ assert lib.versionAtLeast (lib.getVersion ocaml) "4.07";
 
 stdenv.mkDerivation rec {
   pname = "llpp";
-  version = "31";
+  version = "32";
 
   src = fetchgit {
     url = "git://repo.or.cz/llpp.git";
     rev = "v${version}";
-    sha256 = "14ibsm1zzxfidjajcj30b5m9in10q3817izahsjvkmryrvvn6qsg";
+    sha256 = "1h1zysm5cz8laq8li49djl6929cnrjlflag9hw0c1dcr4zaxk32y";
     fetchSubmodules = false;
   };
 
diff --git a/pkgs/applications/misc/llpp/fix-build-bash.patch b/pkgs/applications/misc/llpp/fix-build-bash.patch
index 13dbdb926c8..fbc341c8af7 100644
--- a/pkgs/applications/misc/llpp/fix-build-bash.patch
+++ b/pkgs/applications/misc/llpp/fix-build-bash.patch
@@ -17,48 +17,48 @@ index 7c278b6..41494c5 100755
 -keycmd="(cd $mudir && make -q build=$mbt libs && echo); digest $mulibs"
 -isfresh "$mulibs" "$(eval $keycmd)" || (
 -    make -C "$mudir" build=$mbt -j $mjobs libs
--    echo "k='$(eval $keycmd)'" >$mudir/build/$mbt/libmupdf.a.past
+-    eval $keycmd >$mudir/build/$mbt/libmupdf.a.past
 -) && vecho "fresh mupdf"
 -
  oincs() {
      local i=
      local incs1=
-@@ -90,34 +83,6 @@ mflags() {
+@@ -89,34 +82,6 @@ mflags() {
  }
  
  overs="$(ocamlc -vnum 2>/dev/null)" || overs=""
--test "$overs" = "4.08" || {
--    url=https://caml.inria.fr/pub/distrib/ocaml-4.08/ocaml-4.08.0.tar.xz
+-test "$overs" = "4.10.0" || {
+-    url=https://caml.inria.fr/pub/distrib/ocaml-4.10/ocaml-4.10.0.tar.xz
 -    txz=$outd/$(basename $url)
--    isfresh $txz $url || {
+-    keycmd="printf $url; digest $txz;"
+-    isfresh $txz "$(eval $keycmd)" || {
 -        executable_p() { command -v "$1" >/dev/null 2>&1; }
 -        if executable_p wget; then dl() { wget -q "$1" -O "$2"; }
 -        elif executable_p curl; then dl() { curl -L "$1" -o "$2"; }
 -        else die "no program to fetch remote urls found"
 -        fi
 -        dl $url $txz
--        echo "k=$url" >$txz.past
+-        eval $keycmd >$txz.past
 -    } && vecho "fresh $txz"
 -    absprefix=$(cd $outd &>/dev/null; pwd -P)
 -    export PATH=$absprefix/bin:$PATH
--    isfresh $absprefix/bin/ocamlc "$url" || (
+-    ocamlc=$absprefix/bin/ocamlc
+-    keycmd="printf $url; digest $ocamlc;"
+-    isfresh $ocamlc "$(eval $keycmd)" || (
 -        tar xf $txz -C $outd
 -        bn=$(basename $url)
 -        cd $outd/${bn%.tar.xz}
--        ./configure --disable-vmthreads --disable-graph-lib \
--                    --disable-ocamldoc --enable-debugger=no \
--                    --disable-flat-float-array              \
--                    --prefix=$absprefix
+-        ./configure --disable-ocamldoc --enable-debugger=no --prefix=$absprefix
 -        make -j $mjobs world
 -        make install
--        echo "k='$url'" >$absprefix/bin/ocamlc.past
+-        eval $keycmd >$absprefix/bin/ocamlc.past
 -    ) && vecho "fresh ocamlc"
 -    overs=$(ocamlc -vnum 2>/dev/null)
 -}
  
- bocaml1() {
-     grep -q "$3" $outd/ordered || {
-@@ -227,7 +192,7 @@ bobjc() {
+ ccomp=${LLPP_CC-$(ocamlc -config | grep "^c_compiler: " | \
+                       { read _ c; echo $c; })}
+@@ -230,7 +195,7 @@ bobjc() {
      } && vecho "fresh $o"
  }
  
@@ -67,7 +67,7 @@ index 7c278b6..41494c5 100755
  
  cmd="(. $srcd/genconfstr.sh >$outd/confstruct.ml)"
  keycmd="digest $srcd/genconfstr.sh $outd/confstruct.ml"
-@@ -281,7 +246,7 @@ for m in ml_gl ml_glarray ml_raw; do
+@@ -284,7 +249,7 @@ for m in ml_gl ml_glarray ml_raw; do
  done
  
  libs="str.cma unix.cma"
diff --git a/pkgs/applications/misc/lutris/default.nix b/pkgs/applications/misc/lutris/default.nix
index 2ff2a82dd4f..b3a68cffeff 100644
--- a/pkgs/applications/misc/lutris/default.nix
+++ b/pkgs/applications/misc/lutris/default.nix
@@ -1,9 +1,43 @@
 { buildPythonApplication, lib, fetchFromGitHub, fetchpatch
-, wrapGAppsHook, gobject-introspection, glib-networking, gnome-desktop, libnotify, libgnome-keyring, pango
-, gdk-pixbuf, atk, webkitgtk, gst_all_1
-, dbus-python, evdev, pyyaml, pygobject3, requests, pillow
-, xrandr, pciutils, psmisc, glxinfo, vulkan-tools, xboxdrv, pulseaudio, p7zip, xgamma
-, libstrangle, wine, fluidsynth, xorgserver
+
+# build inputs
+, atk
+, gdk-pixbuf
+, glib-networking
+, gnome-desktop
+, gobject-introspection
+, gst_all_1
+, gtk3
+, libnotify
+, pango
+, webkitgtk
+, wrapGAppsHook
+
+# python dependencies
+, dbus-python
+, distro
+, evdev
+, pillow
+, pygobject3
+, pyyaml
+, requests
+, keyring
+
+# commands that lutris needs
+, xrandr
+, pciutils
+, psmisc
+, glxinfo
+, vulkan-tools
+, xboxdrv
+, pulseaudio
+, p7zip
+, xgamma
+, libstrangle
+, wine
+, fluidsynth
+, xorgserver
+, xorg
 }:
 
 let
@@ -22,37 +56,56 @@ let
     wine
     fluidsynth
     xorgserver
+    xorg.setxkbmap
+    xorg.xkbcomp
   ];
 
   gstDeps = with gst_all_1; [
-    gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly
     gst-libav
+    gst-plugins-bad
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-ugly
+    gstreamer
   ];
 
 in buildPythonApplication rec {
   pname = "lutris-original";
-  version = "0.5.5";
+  version = "0.5.7.1";
 
   src = fetchFromGitHub {
     owner = "lutris";
     repo = "lutris";
     rev = "v${version}";
-    sha256 = "1g093g0difnkjmnm91p20issdsxn9ri4c56zzddj5wfrbmhwdfag";
+    sha256 = "12ispwkbbm5aq263n3bdjmjfkpwplizacnqs2c0wnag4zj4kpm29";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
   buildInputs = [
-    gobject-introspection glib-networking gnome-desktop libnotify libgnome-keyring pango
-    gdk-pixbuf atk webkitgtk
+    atk
+    gdk-pixbuf
+    glib-networking
+    gnome-desktop
+    gobject-introspection
+    gtk3
+    libnotify
+    pango
+    webkitgtk
   ] ++ gstDeps;
 
-  makeWrapperArgs = [
-    "--prefix PATH : ${binPath}"
+  propagatedBuildInputs = [
+    evdev distro pyyaml pygobject3 requests pillow dbus-python keyring
   ];
 
-  propagatedBuildInputs = [
-    evdev pyyaml pygobject3 requests pillow dbus-python
+  # avoid double wrapping
+  dontWrapGApps = true;
+  makeWrapperArgs = [
+    "--prefix PATH : ${binPath}"
+    ''''${gappsWrapperArgs[@]}''
   ];
+  # needed for glib-schemas to work correctly (will crash on dialogues otherwise)
+  # see https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
 
   preCheck = "export HOME=$PWD";
 
diff --git a/pkgs/applications/misc/lutris/chrootenv.nix b/pkgs/applications/misc/lutris/fhsenv.nix
index 4505432b236..6fad8b23d33 100644
--- a/pkgs/applications/misc/lutris/chrootenv.nix
+++ b/pkgs/applications/misc/lutris/fhsenv.nix
@@ -28,7 +28,7 @@ in buildFHSUserEnv {
     # DGen // TODO: libarchive is broken
 
     # Dolphin
-    bluez ffmpeg gettext portaudio wxGTK30 miniupnpc mbedtls lzo sfml gsm
+    bluez ffmpeg_3 gettext portaudio wxGTK30 miniupnpc mbedtls lzo sfml gsm
     wavpack orc nettle gmp pcre vulkan-loader
 
     # DOSBox
@@ -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 libbsd
+    vulkan-loader xdg_utils sqlite gnutls p11-kit libbsd
 
     # PCSX2 // TODO: "libgobject-2.0.so.0: wrong ELF class: ELFCLASS64"
 
@@ -105,6 +105,9 @@ in buildFHSUserEnv {
     cups lcms2 mpg123 cairo unixODBC samba4 sane-backends openldap
     ocl-icd utillinux libkrb5
 
+    # Proton
+    libselinux
+
     # Winetricks
     fribidi
   ] ++ xorgDeps pkgs;
diff --git a/pkgs/applications/misc/lyx/default.nix b/pkgs/applications/misc/lyx/default.nix
index b96e6b2a02d..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.4.3";
+  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 = "1rpp6wq0dc0bxwc0pipajv98vi7cpg391nq10d3c4pmpq38m08wx";
+    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/mapproxy/default.nix b/pkgs/applications/misc/mapproxy/default.nix
index 0261dfbe899..5676aef2360 100644
--- a/pkgs/applications/misc/mapproxy/default.nix
+++ b/pkgs/applications/misc/mapproxy/default.nix
@@ -11,7 +11,7 @@ let
         owner = "pyproj4";
         repo = "pyproj";
         rev = "v${version}rel";
-        sha256 = "sha256:18v4h7jx4mcc0x2xy8y7dfjq9bzsyxs8hdb6v67cabvlz2njziqy";
+        sha256 = "18v4h7jx4mcc0x2xy8y7dfjq9bzsyxs8hdb6v67cabvlz2njziqy";
       };
       nativeBuildInputs = with python.pkgs; [ cython ];
       patches = [ ];
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..d38113981aa 100644
--- a/pkgs/applications/misc/mediainfo-gui/default.nix
+++ b/pkgs/applications/misc/mediainfo-gui/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, wxGTK
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, wxGTK30-gtk3
 , desktop-file-utils, libSM, imagemagick }:
 
 stdenv.mkDerivation rec {
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   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/megacmd/default.nix b/pkgs/applications/misc/megacmd/default.nix
index 07d194dbff4..899b069f054 100644
--- a/pkgs/applications/misc/megacmd/default.nix
+++ b/pkgs/applications/misc/megacmd/default.nix
@@ -5,7 +5,7 @@
 , cryptopp
 , curl
 , fetchFromGitHub
-, ffmpeg
+, ffmpeg_3
 , freeimage
 , gcc-unwrapped
 , libmediainfo
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
     c-ares
     cryptopp
     curl
-    ffmpeg
+    ffmpeg_3
     freeimage
     gcc-unwrapped
     libmediainfo
diff --git a/pkgs/applications/misc/megasync/default.nix b/pkgs/applications/misc/megasync/default.nix
index 3a26def26c9..d5da4c7d773 100644
--- a/pkgs/applications/misc/megasync/default.nix
+++ b/pkgs/applications/misc/megasync/default.nix
@@ -1,17 +1,17 @@
 { stdenv, autoconf, automake, c-ares, cryptopp, curl, doxygen, fetchFromGitHub
-, fetchpatch, ffmpeg, libmediainfo, libraw, libsodium, libtool, libuv, libzen
+, fetchpatch, ffmpeg_3, libmediainfo, libraw, libsodium, libtool, libuv, libzen
 , lsb-release, mkDerivation, pkgconfig, qtbase, qttools, sqlite, swig, unzip
 , wget }:
 
 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;
   };
 
@@ -21,7 +21,7 @@ mkDerivation rec {
     c-ares
     cryptopp
     curl
-    ffmpeg
+    ffmpeg_3
     libmediainfo
     libraw
     libsodium
diff --git a/pkgs/applications/misc/menumaker/default.nix b/pkgs/applications/misc/menumaker/default.nix
index 22cf63e536c..f76d6cb6b8a 100644
--- a/pkgs/applications/misc/menumaker/default.nix
+++ b/pkgs/applications/misc/menumaker/default.nix
@@ -2,11 +2,11 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "menumaker";
-  version = "0.99.11";
+  version = "0.99.12";
 
   src = fetchurl {
     url = "mirror://sourceforge/menumaker/${pname}-${version}.tar.gz";
-    sha256 = "0dprndnhwm7b803zkp4pisiq06ic9iv8vr42in5is47jmvdim0wx";
+    sha256 = "034v5204bsgkzzk6zfa5ia63q95gln47f7hwf96yvad5hrhmd8z3";
   };
 
   format = "other";
diff --git a/pkgs/applications/misc/minder/default.nix b/pkgs/applications/misc/minder/default.nix
index 0b3d65e21e3..52db4d0c6cc 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.7.3";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = "phase1geo";
     repo = pname;
     rev = version;
-    sha256 = "00lkb1w536jyhka2znxmgbyss13j4h75yvl42z4hlgz31wljcin4";
+    sha256 = "1823nl9hgsa9l04ra1drj3c7r8s5ybx6c06d9ijpwqz191sz2jg2";
   };
 
   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 6a152176415..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.16";
+  version = "0.44.0";
 
   src = fetchFromGitHub {
     owner = "mooltipass";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1gx1hbxiilggwfw0jspyk2cw92r6qs9a8yqa8x1d2ndf493mjx9y";
+    sha256 = "1xlbhx6f1ysx8gka8g67271whzhkzsnkavpq3x58hdxr8v88khby";
   };
 
   outputs = [ "out" "udev" ];
diff --git a/pkgs/applications/misc/moonlight-embedded/default.nix b/pkgs/applications/misc/moonlight-embedded/default.nix
index 328e106694b..2ae3f1894d5 100644
--- a/pkgs/applications/misc/moonlight-embedded/default.nix
+++ b/pkgs/applications/misc/moonlight-embedded/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, cmake, perl
 , alsaLib, libevdev, libopus, udev, SDL2
-, ffmpeg, pkgconfig, xorg, libvdpau, libpulseaudio, libcec
+, ffmpeg_3, pkgconfig, xorg, libvdpau, libpulseaudio, libcec
 , curl, expat, avahi, enet, libuuid, libva
 }:
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake perl ];
   buildInputs = [
     alsaLib libevdev libopus udev SDL2
-    ffmpeg pkgconfig xorg.libxcb libvdpau libpulseaudio libcec
+    ffmpeg_3 pkgconfig xorg.libxcb libvdpau libpulseaudio libcec
     xorg.libpthreadstubs curl expat avahi enet libuuid libva
   ];
 
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/mrxvt/default.nix b/pkgs/applications/misc/mrxvt/default.nix
index 6717fc3c97f..4dc70133ec4 100644
--- a/pkgs/applications/misc/mrxvt/default.nix
+++ b/pkgs/applications/misc/mrxvt/default.nix
@@ -27,14 +27,14 @@ stdenv.mkDerivation {
     sha256 = "1mqhmnlz32lvld9rc6c1hyz7gjw4anwf39yhbsjkikcgj1das0zl";
   };
 
-  meta = { 
+  meta = with stdenv.lib; {
     description = "Lightweight multitabbed feature-rich X11 terminal emulator";
     longDescription = "
-    	Multitabbed lightweight terminal emulator based on rxvt. 
+    	Multitabbed lightweight terminal emulator based on rxvt.
 	Supports transparency, backgroundimages, freetype fonts, ...
     ";
     homepage = "https://sourceforge.net/projects/materm";
-    license = "GPL";
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/mupdf/default.nix b/pkgs/applications/misc/mupdf/default.nix
index 34ada062c71..61eb32bbd5c 100644
--- a/pkgs/applications/misc/mupdf/default.nix
+++ b/pkgs/applications/misc/mupdf/default.nix
@@ -13,12 +13,12 @@ let
 
 
 in stdenv.mkDerivation rec {
-  version = "1.16.1";
+  version = "1.17.0";
   pname = "mupdf";
 
   src = fetchurl {
     url = "https://mupdf.com/downloads/archive/${pname}-${version}-source.tar.gz";
-    sha256 = "0iz4ickj52fxjp8crg573kjrl4viq279g589isdpgpckslysf7g7";
+    sha256 = "13nl9nrcx2awz9l83mlv2psi1lmn3hdnfwxvwgwiwbxlkjl3zqq0";
   };
 
   patches =
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..e403ccea0da
--- /dev/null
+++ b/pkgs/applications/misc/navi/default.nix
@@ -0,0 +1,29 @@
+{ rustPlatform, fetchFromGitHub, lib, fzf, makeWrapper }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "navi";
+  version = "2.7.1";
+
+  src = fetchFromGitHub {
+    owner = "denisidoro";
+    repo = "navi";
+    rev = "v${version}";
+    sha256 = "12p9l41k7isaapr0xbsm7brkjrv7i8826y029i12psz92nsynk29";
+  };
+
+  cargoSha256 = "11dc3gc7fyikbbgacmljhysr2sl7lmq6w3bsfcf2cqny39r25yp0";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/navi --prefix PATH : ${lib.makeBinPath [ fzf ]}
+  '';
+
+  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
new file mode 100644
index 00000000000..16400d76f64
--- /dev/null
+++ b/pkgs/applications/misc/nimmm/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchFromGitHub, nim, termbox, pcre }:
+
+let
+  noise = fetchFromGitHub {
+    owner = "jangko";
+    repo = "nim-noise";
+    rev = "db1e86e312413e4348fa82c02340784316a89cc1";
+    sha256 = "0n9l2dww5smrsl1xfqxjnxz3f1srb72lc1wl3pdvs6xfyf44qzlh";
+  };
+
+  nimbox = fetchFromGitHub {
+    owner = "dom96";
+    repo = "nimbox";
+    rev = "6a56e76c01481176f16ae29b7d7c526bd83f229b";
+    sha256 = "15x1sdfxa1xcqnr68705jfnlv83lm0xnp2z9iz3pgc4bz5vwn4x1";
+  };
+
+  lscolors = fetchFromGitHub {
+    owner = "joachimschmidt557";
+    repo = "nim-lscolors";
+    rev = "v0.3.3";
+    sha256 = "0526hqh46lcfsvymb67ldsc8xbfn24vicn3b8wrqnh6mag8wynf4";
+  };
+
+in stdenv.mkDerivation rec {
+  pname = "nimmm";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "joachimschmidt557";
+    repo = "nimmm";
+    rev = "v${version}";
+    sha256 = "1zpq181iz6g7yfi298gjwv33b89l4fpnkjprimykah7py5cpw67w";
+  };
+
+  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
+  '';
+
+  installPhase = ''
+    install -Dt $out/bin src/nimmm
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Terminal file manager written in nim";
+    homepage = "https://github.com/joachimschmidt557/nimmm";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.joachimschmidt557 ];
+  };
+}
diff --git a/pkgs/applications/misc/nnn/default.nix b/pkgs/applications/misc/nnn/default.nix
index 7adc777c00d..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.1";
+  version = "3.4";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wvn3jbxjcpdg9jzxkhx5dlc0zx2idky6mb75fpha8ww1jg7qf1g";
+    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 aa11c069a7a..bb85c84f7ee 100644
--- a/pkgs/applications/misc/obinskit/default.nix
+++ b/pkgs/applications/misc/obinskit/default.nix
@@ -1,33 +1,24 @@
-{ lib
-, stdenv
+{ stdenv
 , fetchurl
-, xorg
 , libxkbcommon
 , systemd
-, gcc-unwrapped
+, xorg
 , electron_3
-, wrapGAppsHook
+, makeWrapper
 , makeDesktopItem
 }:
-
 let
-  libPath = lib.makeLibraryPath [
-    libxkbcommon
-    xorg.libXt
-    systemd.lib
-    stdenv.cc.cc.lib
-  ];
-
   desktopItem = makeDesktopItem rec {
     name = "Obinskit";
     exec = "obinskit";
-    icon = "obinskit.png";
+    icon = "obinskit";
     desktopName = "Obinskit";
     genericName = "Obinskit keyboard configurator";
     categories = "Utility";
   };
-
-in stdenv.mkDerivation rec {
+  electron = electron_3;
+in
+stdenv.mkDerivation rec {
   pname = "obinskit";
   version = "1.1.4";
 
@@ -40,44 +31,33 @@ in stdenv.mkDerivation rec {
 
   sourceRoot = "ObinsKit_${version}_x64";
 
-  nativeBuildInputs = [ wrapGAppsHook ];
+  nativeBuildInputs = [ makeWrapper ];
 
   dontConfigure = true;
   dontBuild = true;
 
   installPhase = ''
     mkdir -p $out/opt/obinskit
-    install icudtl.dat $out/opt/obinskit/
-    install natives_blob.bin $out/opt/obinskit/
-    install v8_context_snapshot.bin $out/opt/obinskit/
-    install blink_image_resources_200_percent.pak $out/opt/obinskit/
-    install content_resources_200_percent.pak $out/opt/obinskit/
-    install content_shell.pak $out/opt/obinskit/
-    install ui_resources_200_percent.pak $out/opt/obinskit/
-    install views_resources_200_percent.pak $out/opt/obinskit/
+
     cp -r resources $out/opt/obinskit/
     cp -r locales $out/opt/obinskit/
 
-    mkdir -p $out/bin
-    ln -s ${electron_3}/bin/electron $out/bin/obinskit
-
     mkdir -p $out/share/{applications,pixmaps}
     install resources/icons/tray-darwin@2x.png $out/share/pixmaps/obinskit.png
     ln -s ${desktopItem}/share/applications/* $out/share/applications
   '';
 
-  preFixup = ''
-    gappsWrapperArgs+=(
-      --add-flags $out/opt/obinskit/resources/app.asar
-      --prefix LD_LIBRARY_PATH : "${libPath}"
-    )
+  postFixup = ''
+    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 ]}"
   '';
 
-  meta = with lib; {
+  meta = with stdenv.lib; {
     description = "Graphical configurator for Anne Pro and Anne Pro II keyboards";
-    homepage = "http://en.obins.net/obinskit/";
+    homepage = "http://en.obins.net/obinskit/"; # https is broken
     license = licenses.unfree;
-    maintainers = [ maintainers.shou ];
+    maintainers = with maintainers; [ shou ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/misc/obsidian/default.nix b/pkgs/applications/misc/obsidian/default.nix
new file mode 100644
index 00000000000..98eb76d9be1
--- /dev/null
+++ b/pkgs/applications/misc/obsidian/default.nix
@@ -0,0 +1,32 @@
+{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3}:
+
+let
+  pname = "obsidian";
+  version = "0.8.2";
+in
+
+appimageTools.wrapType2 rec {
+
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/Obsidian-${version}.AppImage";
+    sha256 = "04jgsd97ivdm84diiafwqxzc9vvga1gsr7xicmqhdq05ns3xsfyz";
+  };
+
+  profile = ''
+    export LC_ALL=C.UTF-8
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+  '';
+
+  # Strip version from binary name.
+  extraInstallCommands = "mv $out/bin/{${name},${pname}}";
+
+  meta = with lib; {
+    description = "Obsidian is a powerful knowledge base that works on top of a local folder of plain text Markdown files.";
+    homepage = "https://obsidian.md";
+    license = licenses.obsidian;
+    maintainers = with maintainers; [ conradmearns ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/applications/misc/octoprint/default.nix b/pkgs/applications/misc/octoprint/default.nix
index 3c192c124cb..793ea927a01 100644
--- a/pkgs/applications/misc/octoprint/default.nix
+++ b/pkgs/applications/misc/octoprint/default.nix
@@ -16,10 +16,17 @@ let
   py = python3.override {
     self = py;
     packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) ([
-      (mkOverride "flask"       "0.12.5" "fac2b9d443e49f7e7358a444a3db5950bdd0324674d92ba67f8f1f15f876b14f")
-      (mkOverride "flaskbabel"  "0.12.2" "11jwp8vvq1gnm31qh6ihy2h393hy18yn9yjp569g60r0wj1x2sii")
-      (mkOverride "tornado"     "4.5.3"  "02jzd23l4r6fswmwxaica9ldlyc2p6q8dk6dyff7j58fmdzf853d")
-      (mkOverride "psutil"      "5.6.7"  "ffad8eb2ac614518bbe3c0b8eb9dffdb3a8d2e3a7d5da51c5b974fb723a5c5aa")
+      (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")
 
       # Octoprint holds back jinja2 to 2.8.1 due to breaking changes.
       # This old version does not have updated test config for pytest 4,
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/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
new file mode 100644
index 00000000000..89a16568281
--- /dev/null
+++ b/pkgs/applications/misc/openrgb/default.nix
@@ -0,0 +1,36 @@
+{ mkDerivation, lib, fetchFromGitHub, qmake, libusb1, hidapi, pkg-config }:
+
+mkDerivation rec {
+  pname = "openrgb";
+  version = "0.3";
+
+  src = fetchFromGitHub {
+    owner = "CalcProgrammer1";
+    repo = "OpenRGB";
+    rev = "release_${version}";
+    sha256 = "1931aisdahjr99d4qqk824ib4x19mvhqgqmkm3j6fc5zd2hnw87m";
+  };
+
+  nativeBuildInputs = [ qmake pkg-config ];
+  buildInputs = [ libusb1 hidapi ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp OpenRGB $out/bin
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/OpenRGB --help > /dev/null
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Open source RGB lighting control";
+    homepage = "https://gitlab.com/CalcProgrammer1/OpenRGB";
+    maintainers = with maintainers; [ jonringer ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/opentx/default.nix b/pkgs/applications/misc/opentx/default.nix
index f20d5ccdc4a..a117ecc06a9 100644
--- a/pkgs/applications/misc/opentx/default.nix
+++ b/pkgs/applications/misc/opentx/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "opentx";
-  version = "2.3.7";
+  version = "2.3.9";
 
   src = fetchFromGitHub {
     owner = "opentx";
     repo = "opentx";
     rev = "release/${version}";
-    sha256 = "1wl3bk7s8h20dfys1hblzxc0br9zlwhcqlghgsbn81ki0xb6jmkf";
+    sha256 = "0kh3jdy1pgvns8lrncf61ayaq0hmsv41j8xv4r4rf17zyvjl0qph";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/misc/orca/default.nix b/pkgs/applications/misc/orca/default.nix
index 0ca4f11e548..77c1f67ecf0 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.2";
+  version = "3.36.4";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0hxz8wlyjn6w3zqg1p56pwdj0p23d6vynzczklyc6n91dyvma06g";
+    sha256 = "1s6qrmbn3pywidwwfa24ly21c1cz6fnnsipi9vlp3sxswbdcwiwz";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/osmium-tool/default.nix b/pkgs/applications/misc/osmium-tool/default.nix
index c0d20c14f7c..892038c252a 100644
--- a/pkgs/applications/misc/osmium-tool/default.nix
+++ b/pkgs/applications/misc/osmium-tool/default.nix
@@ -1,18 +1,47 @@
-{ stdenv, fetchFromGitHub, cmake, libosmium, protozero, boost, bzip2, zlib, expat }:
+{ stdenv
+, fetchFromGitHub
+, cmake
+, installShellFiles
+, pandoc
+, boost
+, bzip2
+, expat
+, libosmium
+, protozero
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "osmium-tool";
-  version = "1.12.0";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
     owner = "osmcode";
     repo = "osmium-tool";
     rev = "v${version}";
-    sha256 = "18afn5qzdjpip176kk5pr04mj0p7dv70dbz1n36qmqnq3gyms10q";
+    sha256 = "13142hj8gfgj6w51a62hjzfmzic90xgrnnlnb70hpdqjy86bxv7j";
   };
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ libosmium protozero boost bzip2 zlib expat ];
+  nativeBuildInputs = [
+    cmake
+    installShellFiles
+    pandoc
+  ];
+
+  buildInputs = [
+    boost
+    bzip2
+    expat
+    libosmium
+    protozero
+    zlib
+  ];
+
+  doCheck = true;
+
+  postInstall = ''
+    installShellCompletion --zsh ../zsh_completion/_osmium
+  '';
 
   meta = with stdenv.lib; {
     description = "Multipurpose command line tool for working with OpenStreetMap data based on the Osmium library";
diff --git a/pkgs/applications/misc/overmind/default.nix b/pkgs/applications/misc/overmind/default.nix
index 29dc6f54e6c..ca05facaa48 100644
--- a/pkgs/applications/misc/overmind/default.nix
+++ b/pkgs/applications/misc/overmind/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "overmind";
-  version = "2.0.3";
+  version = "2.1.1";
   goPackagePath = "github.com/DarthSim/overmind";
 
   nativeBuildInputs = [ makeWrapper ];
@@ -15,9 +15,11 @@ buildGoPackage rec {
     owner = "DarthSim";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0c551c240lqxdjg0jj01rh2fyhwls02k5lczlxacj05prp1plz9p";
+    sha256 = "0akqn8s1mgk5q00gzh3ymq7nrnkyi6avyaxxvbxnjyq9bxsqz327";
   };
 
+  goDeps = ./deps.nix;
+
   meta = with lib; {
     homepage = "https://github.com/DarthSim/overmind";
     description = "Process manager for Procfile-based applications and tmux";
diff --git a/pkgs/applications/misc/overmind/deps.nix b/pkgs/applications/misc/overmind/deps.nix
new file mode 100644
index 00000000000..afcc8d9726f
--- /dev/null
+++ b/pkgs/applications/misc/overmind/deps.nix
@@ -0,0 +1,147 @@
+# 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/DarthSim/godotenv";
+    fetch = {
+      type = "git";
+      url = "https://github.com/DarthSim/godotenv";
+      rev = "v1.3.1";
+      sha256 = "0fb9nl5qrnv7f9w0pgg00ak34afw9kjgcql0l38z22faz2bhgl1q";
+    };
+  }
+  {
+    goPackagePath = "github.com/cpuguy83/go-md2man";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cpuguy83/go-md2man";
+      rev = "f79a8a8ca69d";
+      sha256 = "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv";
+    };
+  }
+  {
+    goPackagePath = "github.com/kardianos/osext";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kardianos/osext";
+      rev = "2bc1f35cddc0";
+      sha256 = "1pvrbrvmrf4mx0fxbfaphbzgqgwn8v6lkfk2vyrs0znxrs1xyc5r";
+    };
+  }
+  {
+    goPackagePath = "github.com/matoous/go-nanoid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/matoous/go-nanoid";
+      rev = "eab626deece6";
+      sha256 = "1a82lclk56y7c44jg7wn5vq733dmn0g20r5yqbchrxnpfl75dw89";
+    };
+  }
+  {
+    goPackagePath = "github.com/pkg/term";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/term";
+      rev = "aa71e9d9e942";
+      sha256 = "1gyxnj4jq3z2k4gjwwlz8hn56c1ys8jvafdd61nd6qs8jwp6iqp3";
+    };
+  }
+  {
+    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 = "v2.0.1";
+      sha256 = "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j";
+    };
+  }
+  {
+    goPackagePath = "github.com/sevlyar/go-daemon";
+    fetch = {
+      type = "git";
+      url = "https://github.com/sevlyar/go-daemon";
+      rev = "v0.1.5";
+      sha256 = "1y3gnxaifykcjcbzx91lz9bc93b95w3xj4rjxjbii26pm3j7gqyk";
+    };
+  }
+  {
+    goPackagePath = "github.com/shurcooL/sanitized_anchor_name";
+    fetch = {
+      type = "git";
+      url = "https://github.com/shurcooL/sanitized_anchor_name";
+      rev = "v1.0.0";
+      sha256 = "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f";
+    };
+  }
+  {
+    goPackagePath = "github.com/urfave/cli";
+    fetch = {
+      type = "git";
+      url = "https://github.com/urfave/cli";
+      rev = "v1.22.2";
+      sha256 = "10mcnvi5qmn00vpyk6si8gjka7p654wr9hac4zc9w5h3ickhvbdc";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "88737f569e3a";
+      sha256 = "02vkqfd6kc28zm6lffagw8nr78sayv6jabfgk9dcifl7826vi3k7";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "81d4e9dc473e";
+      sha256 = "0074zjpkhclz5qbgjv0zmdwy6hmf5k2ri5yagnm6i12ahxaa48dr";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/check.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/check.v1";
+      rev = "20d25e280405";
+      sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/urfave/cli.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/urfave/cli.v1";
+      rev = "v1.20.0";
+      sha256 = "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/yaml.v2";
+      rev = "v2.2.2";
+      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
+    };
+  }
+]
diff --git a/pkgs/applications/misc/pastel/default.nix b/pkgs/applications/misc/pastel/default.nix
index 90b42ba72b7..aaaf6dc778b 100644
--- a/pkgs/applications/misc/pastel/default.nix
+++ b/pkgs/applications/misc/pastel/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pastel";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1xrg25w175m2iz7q9v7c05a0p0v5rr71vd4m3v6p0lqvij3sih4s";
+    sha256 = "00xxrssa3gbr5w2jsqlf632jlzc0lc2rpybnbv618ndy5lxidnw0";
   };
 
-  cargoSha256 = "17rw9wp9mfv38h0azdjwl60bxdknb5q84ia0a2r1vi91gz6275cs";
+  cargoSha256 = "1ji64h0f8f2sq12cx33kymypzar9swhaj903gclf3jdwgna77326";
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
@@ -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 4d2576aaadc..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.1";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "jeromerobert";
     repo = pname;
     rev = version;
-    sha256 = "0n4jw0dsqw929a34ff077kz8w89vkjkqf8dy4c356zh6gf23cdxr";
+    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 d1892352785..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 = ''
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     desktopName = "PDFsam Basic";
     genericName = "PDF Split and Merge";
     mimeType = "application/pdf;";
-    categories = "Office;Application;";
+    categories = "Office;";
   };
 
   meta = with stdenv.lib; {
@@ -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 ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/misc/pgadmin/default.nix b/pkgs/applications/misc/pgadmin/default.nix
index 5fc0703e011..b0aabead245 100644
--- a/pkgs/applications/misc/pgadmin/default.nix
+++ b/pkgs/applications/misc/pgadmin/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
       exec = "pgadmin3";
       icon = "pgAdmin3";
       type = "Application";
-      categories = "Application;Development;";
+      categories = "Development;";
       mimeType = "text/html";
     };
   in ''
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/polybar/default.nix b/pkgs/applications/misc/polybar/default.nix
index 1fc0162f8d0..c324a3f8be4 100644
--- a/pkgs/applications/misc/polybar/default.nix
+++ b/pkgs/applications/misc/polybar/default.nix
@@ -1,6 +1,7 @@
 { cairo, cmake, fetchFromGitHub, libXdmcp, libpthreadstubs, libxcb, pcre, pkgconfig
 , python3, stdenv, xcbproto, xcbutil, xcbutilcursor, xcbutilimage
 , xcbutilrenderutil, xcbutilwm, xcbutilxrm, makeWrapper
+, removeReferencesTo
 
 # optional packages-- override the variables ending in 'Support' to enable or
 # disable modules
@@ -26,13 +27,13 @@ assert i3GapsSupport -> ! i3Support     && jsoncpp != null && i3-gaps != null;
 
 stdenv.mkDerivation rec {
     pname = "polybar";
-    version = "3.4.2";
+    version = "3.4.3";
 
     src = fetchFromGitHub {
       owner = pname;
       repo = pname;
       rev = version;
-      sha256 = "1ss4wzy68dpqr5a4m090nn36v8wsp4a7pj6whcxxdrrimgww5r88";
+      sha256 = "0fsfh3xv0c0hz10xqzvd01c0p0wvzcnanbyczi45zhaxfrisb39w";
       fetchSubmodules = true;
     };
 
@@ -74,6 +75,10 @@ stdenv.mkDerivation rec {
     '' else "";
 
     nativeBuildInputs = [
-      cmake pkgconfig
+      cmake pkgconfig removeReferencesTo
     ];
+
+    postFixup = ''
+        remove-references-to -t ${stdenv.cc} $out/bin/polybar
+    '';
 }
diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix
index 144addf02c6..79ad84e99be 100644
--- a/pkgs/applications/misc/prusa-slicer/default.nix
+++ b/pkgs/applications/misc/prusa-slicer/default.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
     comment = "G-code generator for 3D printers";
     desktopName = "PrusaSlicer";
     genericName = "3D printer tool";
-    categories = "Application;Development;";
+    categories = "Development;";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/pueue/default.nix b/pkgs/applications/misc/pueue/default.nix
index 52a47954776..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.4.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "Nukesor";
     repo = pname;
     rev = "v${version}";
-    sha256 = "050cx9ncs1hfb14llly0wm3h5s4377s3sinmkjc52xm2z2gc7m5f";
+    sha256 = "1ksks8c35q9aq5vnjxh480vqjyaa8c1fz1fb465vngnlyw762b22";
   };
 
-  cargoSha256 = "1hw0y6c1ypp470cca3yw6fc7xvligy3av8hsa9bhdm5can46hyzi";
+  cargoSha256 = "0v1h4jhrzfb55zmpnbq18188rdvx7a7lvnjqh0w7cy90kvxssian";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/misc/qcad/default.nix b/pkgs/applications/misc/qcad/default.nix
index 4f046e34b18..0079cd220bd 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.2.1";
+  version = "3.24.3.10";
 
   src = fetchFromGitHub {
     owner = "qcad";
     repo = "qcad";
     rev = "v${version}";
-    sha256 = "1g295gljq051x09f4d8k586bkg3vs8z22dn3rxj6xrm6803z8zw2";
+    sha256 = "0izyn4y1ffq1mgxs5dymkrqih6n6v9ifrcpyk1z2vyhbm5xx4qsa";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/qmapshack/default.nix b/pkgs/applications/misc/qmapshack/default.nix
index a3238f7cba4..1a8758955ce 100644
--- a/pkgs/applications/misc/qmapshack/default.nix
+++ b/pkgs/applications/misc/qmapshack/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "qmapshack";
-  version = "1.14.1";
+  version = "1.15.0";
 
   src = fetchFromGitHub {
     owner = "Maproom";
     repo = pname;
     rev = "V_${version}";
-    sha256 = "0hghynb4ac98fg1pwc645zriqkghxwp8mr3jhr87pa6fh0y848py";
+    sha256 = "157bssrbwcc1w58b0v60jb3wrjf2ig4z6z6crjnpvflkqj5p8vwy";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -29,6 +29,10 @@ mkDerivation rec {
     "${src}/FindQuaZip5.patch"
   ];
 
+  qtWrapperArgs = [
+    "--suffix PATH : ${lib.makeBinPath [ gdal routino ]}"
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/Maproom/qmapshack";
     description = "Consumer grade GIS software";
diff --git a/pkgs/applications/misc/qsudo/default.nix b/pkgs/applications/misc/qsudo/default.nix
new file mode 100644
index 00000000000..63d97b3001c
--- /dev/null
+++ b/pkgs/applications/misc/qsudo/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, qmake
+, qtbase
+, sudo
+}:
+
+mkDerivation rec {
+  pname = "qsudo";
+  version = "2020.03.27";
+
+  src = fetchFromGitHub {
+    owner = "project-trident";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "06kg057vwkvafnk69m9rar4wih3vq4h36wbzwbfc2kndsnn47lfl";
+  };
+
+  sourceRoot = "source/src-qt5";
+
+  nativeBuildInputs = [
+    qmake
+  ];
+
+  buildInputs = [
+    qtbase
+    sudo
+  ];
+
+  postPatch = ''
+    substituteInPlace qsudo.pro --replace /usr/bin $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Graphical sudo utility from Project Trident";
+    homepage = "https://github.com/project-trident/qsudo";
+    license = licenses.bsd2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
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/razergenie/default.nix b/pkgs/applications/misc/razergenie/default.nix
new file mode 100644
index 00000000000..9042ab38e75
--- /dev/null
+++ b/pkgs/applications/misc/razergenie/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, lib, meson, ninja, pkgconfig, qtbase, qttools
+, wrapQtAppsHook
+, enableExperimental ? false
+, includeMatrixDiscovery ? false
+}:
+
+let
+  version = "0.8.1";
+  pname = "razergenie";
+
+in stdenv.mkDerivation {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "z3ntu";
+    repo = "RazerGenie";
+    rev = "v${version}";
+    sha256 = "1ggxnaidxbbpkv1h3zwwyci6886sssgslk5adbikbhz9kc9qg239";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig meson ninja wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    qtbase qttools
+  ];
+
+  mesonFlags = [
+    "-Denable_experimental=${if enableExperimental then "true" else "false"}"
+    "-Dinclude_matrix_discovery=${if includeMatrixDiscovery then "true" else "false"}"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/z3ntu/RazerGenie";
+    description = "Qt application for configuring your Razer devices under GNU/Linux";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ f4814n ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/redshift/default.nix b/pkgs/applications/misc/redshift/default.nix
index 43393478ec4..a95e5226f9b 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
 
@@ -9,6 +10,7 @@
 , withGeolocation ? true
 , withCoreLocation ? withGeolocation && stdenv.isDarwin, CoreLocation, Foundation, Cocoa
 , withGeoclue ? withGeolocation && stdenv.isLinux, geoclue
+, withAppIndicator ? true, libappindicator
 }:
 
 let
@@ -17,11 +19,16 @@ 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
       ];
 
+      postPatch = stdenv.lib.optionalString (pname == "gammastep") ''
+        substituteInPlace configure.ac \
+          --replace "[gammastep], [2.0]" "[gammastep], [${version}]"
+      '';
+
       nativeBuildInputs = [
         autoconf
         automake
@@ -50,6 +57,7 @@ let
         ++ stdenv.lib.optional  withDrm          libdrm
         ++ stdenv.lib.optional  withQuartz       ApplicationServices
         ++ stdenv.lib.optionals withCoreLocation [ CoreLocation Foundation Cocoa ]
+        ++ stdenv.lib.optional  withAppIndicator libappindicator
         ;
 
       pythonPath = [ pygobject3 pyxdg ];
@@ -60,10 +68,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"
       '';
 
@@ -116,4 +129,24 @@ rec {
       homepage = "https://github.com/minus7/redshift";
     };
   };
+
+  gammastep = mkRedshift rec {
+    pname = "gammastep";
+    version = "2.0.1";
+
+    src = fetchFromGitLab {
+      owner = "chinstrap";
+      repo = pname;
+      rev = "v${version}";
+      sha256 = "1ky4h892sg2mfbwwq5xv0vnjflsl2x3nsy5q456r1kyk1gwkj0rg";
+    };
+
+    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/remarkable-mouse/default.nix b/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix
new file mode 100644
index 00000000000..8d668f7a38d
--- /dev/null
+++ b/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, buildPythonApplication, fetchPypi, python3Packages }:
+
+buildPythonApplication rec {
+  pname = "remarkable-mouse";
+  version = "5.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0k2wjfcgnvb8yqn4c4ddfyyhrvl6hj61kn1ddnyp6ay9vklnw160";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ screeninfo paramiko pynput libevdev ];
+
+  meta = with stdenv.lib; {
+    description = "A program to use a reMarkable as a graphics tablet";
+    homepage = "https://github.com/evidlo/remarkable_mouse";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.nickhu ];
+  };
+}
diff --git a/pkgs/applications/misc/remarkable/rmapi/default.nix b/pkgs/applications/misc/remarkable/rmapi/default.nix
new file mode 100644
index 00000000000..f159cd852e8
--- /dev/null
+++ b/pkgs/applications/misc/remarkable/rmapi/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "rmapi";
+  version = "0.0.12";
+
+  src = fetchFromGitHub {
+    owner = "juruen";
+    repo = "rmapi";
+    rev = "v${version}";
+    sha256 = "049m0p4wbsl822iym8xmc938d4k90iw7wjdzcxfyy8d27hv9mp45";
+  };
+
+  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 ];
+  };
+}
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 0c5494f146f..b68a3a98e34 100644
--- a/pkgs/applications/misc/sampler/default.nix
+++ b/pkgs/applications/misc/sampler/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "1lanighxhnn28dfzils7i55zgxbw2abd6y723mq7x9wg1aa2bd0z";
   };
 
-  modSha256 = "02ai193lpzsxdn1hpbndkfxdc88nyl4kcgbadhy122kgx13crcy8";
+  vendorSha256 = "04nywhkil5xkipcibrp6vi63rfcvqgv7yxbxmmrhqys2cdxfvazv";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/misc/sbagen/default.nix b/pkgs/applications/misc/sbagen/default.nix
index 821fbe35ca1..d7d7dd3ab70 100644
--- a/pkgs/applications/misc/sbagen/default.nix
+++ b/pkgs/applications/misc/sbagen/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Binaural sound generator";
     homepage = "http://uazu.net/sbagen";
-    license = "GPL";
+    license = stdenv.lib.licenses.gpl2;
     platforms = [ "i686-linux" ];
   };
 }
diff --git a/pkgs/applications/misc/sequeler/default.nix b/pkgs/applications/misc/sequeler/default.nix
index 070a81167ad..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 }:
 
@@ -11,13 +11,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "sequeler";
-  version = "0.7.9";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "Alecaddd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "117gcc41rd24y5hpm3drqxfcfz52smpcr8w76xnykx8wb1ac50jf";
+    sha256 = "090plqnby2wxzr1waq5kz89w3269j363mgxwfz9g7qg55lddaahz";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig vala gettext wrapGAppsHook python3 desktop-file-utils ];
@@ -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/sigal/default.nix b/pkgs/applications/misc/sigal/default.nix
index c0e255a36e3..1802eef5409 100644
--- a/pkgs/applications/misc/sigal/default.nix
+++ b/pkgs/applications/misc/sigal/default.nix
@@ -1,4 +1,4 @@
-{ lib, python3Packages, ffmpeg }:
+{ lib, python3Packages, ffmpeg_3 }:
 
 python3Packages.buildPythonApplication rec {
   version = "2.0";
@@ -20,7 +20,7 @@ python3Packages.buildPythonApplication rec {
     blinker
   ];
 
-  makeWrapperArgs = [ "--prefix PATH : ${ffmpeg}/bin" ];
+  makeWrapperArgs = [ "--prefix PATH : ${ffmpeg_3}/bin" ];
 
   # No tests included
   doCheck = false;
diff --git a/pkgs/applications/misc/simplenote/default.nix b/pkgs/applications/misc/simplenote/default.nix
index 46b80dc98f0..d763bd6d6b0 100644
--- a/pkgs/applications/misc/simplenote/default.nix
+++ b/pkgs/applications/misc/simplenote/default.nix
@@ -16,10 +16,10 @@ let
 
   pname = "simplenote";
 
-  version = "1.16.0";
+  version = "1.21.1";
 
   sha256 = {
-    x86_64-linux = "01nk3dbyhs0p7f6b4bkrng95i29g0x7vxj0rx1qb7sm3n11yi091";
+    x86_64-linux = "00qx82d17yrrg2mxwhm40av0mpf5hy14j338i5ijhwp79yc8fk8x";
   }.${system} or throwSystem;
 
   meta = with stdenv.lib; {
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/sleepyhead/default.nix b/pkgs/applications/misc/sleepyhead/default.nix
index 0753045cc4b..17c5ec9be26 100644
--- a/pkgs/applications/misc/sleepyhead/default.nix
+++ b/pkgs/applications/misc/sleepyhead/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchgit, qt5, zlib, libGLU, libX11 }:
+{ lib, stdenv, mkDerivation, fetchgit, zlib, libGLU, libX11, qtbase, qtwebkit, qtserialport, wrapQtAppsHook }:
 
 let
   name = "sleepyhead-${version}";
   version = "1.0.0-beta-git";
-in stdenv.mkDerivation {
+in mkDerivation {
   inherit name;
 
   src = fetchgit {
@@ -13,21 +13,30 @@ in stdenv.mkDerivation {
   };
 
   buildInputs = [
-    qt5.qtbase qt5.qtwebkit qt5.qtserialport
+    qtbase qtwebkit qtserialport
     zlib
     libGLU
     libX11
   ];
 
+  nativeBuildInputs = [ wrapQtAppsHook ];
+
   patchPhase = ''
     patchShebangs configure
   '';
-
-  installPhase = ''
+  
+  installPhase = if stdenv.isDarwin then ''
+    mkdir -p $out/Applications
+    cp -r sleepyhead/SleepyHead.app $out/Applications
+  '' else ''
     mkdir -p $out/bin
     cp sleepyhead/SleepyHead $out/bin
   '';
 
+  postFixup = stdenv.lib.optionalString stdenv.isDarwin ''
+    wrapQtApp "$out/Applications/SleepyHead.app/Contents/MacOS/SleepyHead"
+  '';
+
   meta = with stdenv.lib; {
     homepage = "https://sleepyhead.jedimark.net/";
     description = "Review and explore data produced by CPAP and related machines";
@@ -37,7 +46,6 @@ in stdenv.mkDerivation {
     license = licenses.gpl3;
     platforms = platforms.all;
     maintainers = [ maintainers.krav ];
-    broken = true;
   };
 
 }
diff --git a/pkgs/applications/misc/slic3r/default.nix b/pkgs/applications/misc/slic3r/default.nix
index 912deee4cb1..c8ecfbcb4a1 100644
--- a/pkgs/applications/misc/slic3r/default.nix
+++ b/pkgs/applications/misc/slic3r/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     comment = "G-code generator for 3D printers";
     desktopName = "Slic3r";
     genericName = "3D printer tool";
-    categories = "Application;Development;";
+    categories = "Development;";
   };
 
   prePatch = ''
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/solaar/default.nix b/pkgs/applications/misc/solaar/default.nix
index d2a883c295d..83a7e9d6216 100644
--- a/pkgs/applications/misc/solaar/default.nix
+++ b/pkgs/applications/misc/solaar/default.nix
@@ -3,12 +3,12 @@
 # adding this to services.udev.packages on NixOS
 python3Packages.buildPythonApplication rec {
   pname = "solaar";
-  version = "1.0.1";
+  version = "1.0.2";
   src = fetchFromGitHub {
     owner = "pwr-Solaar";
     repo = "Solaar";
     rev = "${version}";
-    sha256 = "1ni3aimpl9vyhwzi61mvm8arkii52cmb6bzjma9cnkjyx328pkid";
+    sha256 = "0k5z9dap6rawiafkg1x7zjx51ala7wra6j6lvc2nn0y8r79yp7a9";
   };
 
   propagatedBuildInputs = with python3Packages; [ gobject-introspection gtk3 pygobject3 pyudev ];
diff --git a/pkgs/applications/misc/st/default.nix b/pkgs/applications/misc/st/default.nix
index 018fd9306ae..a772629a7aa 100644
--- a/pkgs/applications/misc/st/default.nix
+++ b/pkgs/applications/misc/st/default.nix
@@ -4,11 +4,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "st-0.8.3";
+  pname = "st";
+  version = "0.8.4";
 
   src = fetchurl {
-    url = "https://dl.suckless.org/st/${name}.tar.gz";
-    sha256 = "0ll5wbw1szs70wdf8zy1y2ig5mfbqw2w4ls8d64r8z3y4gdf76lk";
+    url = "https://dl.suckless.org/st/${pname}-${version}.tar.gz";
+    sha256 = "19j66fhckihbg30ypngvqc9bcva47mp379ch5vinasjdxgn3qbfl";
   };
 
   inherit patches;
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/stupidterm/default.nix b/pkgs/applications/misc/stupidterm/default.nix
index 0a6e947f15c..2016059d81e 100644
--- a/pkgs/applications/misc/stupidterm/default.nix
+++ b/pkgs/applications/misc/stupidterm/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
     sha256 = "1f73wvqqvj5pr3fvb7jjc4bi1iwgkkknz24k8n69mdb75jnfjipp";
   };
 
-  makeFlags = [ "PKGCONFIG=${pkgconfig}/bin/pkg-config" "binary=stupidterm" ];
+  makeFlags = [ "PKGCONFIG=${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config" "binary=stupidterm" ];
 
   installPhase = ''
     install -D stupidterm $out/bin/stupidterm
diff --git a/pkgs/applications/misc/styx/default.nix b/pkgs/applications/misc/styx/default.nix
index 67f48d67f80..06bf1bd5f2f 100644
--- a/pkgs/applications/misc/styx/default.nix
+++ b/pkgs/applications/misc/styx/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "styx";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner  = "styx-static";
     repo   = "styx";
-    rev    = "v${version}";
-    sha256 = "01lklz7l9klqmmsncikwjnk3glzyz15c30118s82yd1chwpwhpfl";
+    rev    = "0f0a878156eac416620a177cc030fa9f2f69b1b8";
+    sha256 = "0ig456j1s17w4zhhcmkrskpy6n7061v5f2isa3qhipmn0gwb91af";
   };
 
   server = "${caddy}/bin/caddy";
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 926db03652d..94875de7ebc 100644
--- a/pkgs/applications/misc/sweethome3d/default.nix
+++ b/pkgs/applications/misc/sweethome3d/default.nix
@@ -24,7 +24,7 @@ let
       icon = pname;
       comment =  description;
       genericName = "Computer Aided (Interior) Design";
-      categories = "Application;Graphics;2DGraphics;3DGraphics;";
+      categories = "Graphics;2DGraphics;3DGraphics;";
     };
 
     patchPhase = ''
@@ -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/sweethome3d/editors.nix b/pkgs/applications/misc/sweethome3d/editors.nix
index ec759572443..d6b44a86e08 100644
--- a/pkgs/applications/misc/sweethome3d/editors.nix
+++ b/pkgs/applications/misc/sweethome3d/editors.nix
@@ -20,7 +20,7 @@ let
       name = pname;
       comment =  description;
       genericName = "Computer Aided (Interior) Design";
-      categories = "Application;Graphics;2DGraphics;3DGraphics;";
+      categories = "Graphics;2DGraphics;3DGraphics;";
     };
 
     buildInputs = [ ant jre jdk makeWrapper gtk3 gsettings-desktop-schemas ];
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 01d1891dd73..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.9";
+  version = "0.11.0";
   pname = "syncthingtray";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = "syncthingtray";
     rev = "v${version}";
-    sha256 = "19kni5v9g0p4751bw2xb8dawg5yjkyk39vdy0m93448lsl8cqq04";
+    sha256 = "1lpjrij6y8l738hd7bfig0piglqinnqbadidzw9k0nm53bh4pqrr";
   };
 
   buildInputs = [ qtbase cpp-utilities qtutilities ]
@@ -39,6 +39,12 @@ mkDerivation rec {
 
   nativeBuildInputs = [ cmake qttools ];
 
+  # No tests are available by upstream, but we test --help anyway
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/syncthingtray --help | grep ${version}
+  '';
+
   cmakeFlags = [
     # See https://github.com/Martchus/syncthingtray/issues/42
     "-DQT_PLUGIN_DIR:STRING=${placeholder "out"}/lib/qt-5"
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
new file mode 100644
index 00000000000..374adc6c89b
--- /dev/null
+++ b/pkgs/applications/misc/systembus-notify/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, systemd }:
+
+stdenv.mkDerivation rec {
+  pname = "systembus-notify";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "rfjakob";
+    repo = "systembus-notify";
+    rev = "v${version}";
+    sha256 = "1pdn45rfpwhrf20hs87qmk2j8sr7ab8161f81019wnypnb1q2fsv";
+  };
+
+  buildInputs = [ systemd ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 systembus-notify -t $out/bin
+    install -Dm644 systembus-notify.desktop -t $out/etc/xdg/autostart
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "System bus notification daemon";
+    homepage = "https://github.com/rfjakob/systembus-notify";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [];
+  };
+}
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/tellico/default.nix b/pkgs/applications/misc/tellico/default.nix
new file mode 100644
index 00000000000..401f1f1d718
--- /dev/null
+++ b/pkgs/applications/misc/tellico/default.nix
@@ -0,0 +1,67 @@
+{ lib
+, fetchurl
+, mkDerivation
+, kdeApplications
+, kinit
+, kdelibs4support
+, solid
+, kxmlgui
+, karchive
+, kfilemetadata
+, khtml
+, knewstuff
+, libksane
+, cmake
+, exempi
+, extra-cmake-modules
+, libcdio
+, poppler
+, makeWrapper
+, kdoctools
+}:
+
+mkDerivation rec {
+  name = "tellico";
+  version = "3.3.0";
+
+  src = fetchurl {
+    url = "https://tellico-project.org/files/tellico-${lib.versions.majorMinor version}.tar.xz";
+    sha256 = "1digkpvzrsbv5znf1cgzs6zkmysfz6lzs12n12mrrpgkcdxc426y";
+  };
+
+  patches = [
+    ./hex.patch
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    kdoctools
+    makeWrapper
+  ];
+
+  buildInputs = [
+    kdelibs4support
+    solid
+    kxmlgui
+    karchive
+    kfilemetadata
+    khtml
+    knewstuff
+    libksane
+    cmake
+    exempi
+    extra-cmake-modules
+    libcdio
+    kdeApplications.libkcddb
+    poppler
+  ];
+
+  meta = {
+    description = "Collection management software, free and simple";
+    homepage = "https://tellico-project.org/";
+    maintainers = with lib.maintainers; [ numkem ];
+    license = with lib.licenses; [ gpl2 gpl3 ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/tellico/hex.patch b/pkgs/applications/misc/tellico/hex.patch
new file mode 100644
index 00000000000..999c502287e
--- /dev/null
+++ b/pkgs/applications/misc/tellico/hex.patch
@@ -0,0 +1,15 @@
+index 7ea81c7..0c19767 100644
+--- a/src/utils/iso5426converter.cpp
++++ b/src/utils/iso5426converter.cpp
+@@ -1211,7 +1211,11 @@ QChar Iso5426Converter::getCombiningChar(uint c) {
+     return 0x1EF1; // SMALL LETTER U WITH HORN AND DOT BELOW
+ 
+   default:
++#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0))
++    myDebug() << "no match for" << hex << c;
++#else
+     myDebug() << "no match for" << Qt::hex << c;
++#endif
+     return QChar();
+   }
+ }
diff --git a/pkgs/applications/misc/terminal-parrot/default.nix b/pkgs/applications/misc/terminal-parrot/default.nix
index 68241d79850..52116a52fbb 100644
--- a/pkgs/applications/misc/terminal-parrot/default.nix
+++ b/pkgs/applications/misc/terminal-parrot/default.nix
@@ -11,13 +11,14 @@ buildGoModule rec {
     sha256 = "1b4vr4s1zpkpf5kc1r2kdlp3hf88qp1f7h05g8kd62zf4sfbj722";
   };
 
-  modSha256 = "01i8fim9z2l8rpdgfaih9ldvbap7gcx5767a15miv8q7sxpr90cp";
+  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 ];
   };
 }
diff --git a/pkgs/applications/misc/thinking-rock/default.nix b/pkgs/applications/misc/thinking-rock/default.nix
index fd6065010fb..2b5c9da4b17 100644
--- a/pkgs/applications/misc/thinking-rock/default.nix
+++ b/pkgs/applications/misc/thinking-rock/default.nix
@@ -32,10 +32,10 @@ stdenv.mkDerivation {
 
   installPhase = ":";
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Task management system";
     homepage = "http://www.thinkingrock.com.au/";
-    license = "CDDL"; # Common Development and Distribution License
-    platforms = stdenv.lib.platforms.unix;
+    license = licenses.cddl;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/tilda/default.nix b/pkgs/applications/misc/tilda/default.nix
index 84d37a4f461..0a672b039f6 100644
--- a/pkgs/applications/misc/tilda/default.nix
+++ b/pkgs/applications/misc/tilda/default.nix
@@ -7,13 +7,13 @@ with stdenv.lib;
 stdenv.mkDerivation rec {
 
   pname = "tilda";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "lanoxx";
     repo = "tilda";
     rev = "${pname}-${version}";
-    sha256 = "1kk69sg7ph906yr5jagkjx0qfkhr5w2nyx407wl2dsjimbps44rd";
+    sha256 = "0psq0f4s0s92bba6wwcf6b0j7i59b76svqxhvpavwv53yvhmmamn";
   };
 
   nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig ];
diff --git a/pkgs/applications/misc/timewarrior/default.nix b/pkgs/applications/misc/timewarrior/default.nix
index 1a21bb43868..25cd3a53670 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.2.0";
+  version = "1.3.0";
 
   enableParallelBuilding = true;
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "GothenburgBitFactory";
     repo = "timewarrior";
     rev = "v${version}";
-    sha256 = "0ci8kb7gdp1dsv6xj30nbz8lidrmn50pbriw26wv8mdhs17rfk7w";
+    sha256 = "1aijh1ad7gpa61cn7b57w24vy7fyjj0zx5k9z8d6m1ldzbw589cl";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/misc/tint2/default.nix b/pkgs/applications/misc/tint2/default.nix
index dc991402eec..326dd3c0d92 100644
--- a/pkgs/applications/misc/tint2/default.nix
+++ b/pkgs/applications/misc/tint2/default.nix
@@ -1,7 +1,25 @@
-{ stdenv, fetchFromGitLab, pkgconfig, cmake, gettext, cairo, pango, pcre
-, glib, imlib2, gtk2, libXinerama, libXrender, libXcomposite, libXdamage
-, libX11, libXrandr, librsvg, libpthreadstubs, libXdmcp
-, libstartup_notification, wrapGAppsHook
+{ stdenv
+, fetchFromGitLab
+, pkg-config
+, cmake
+, gettext
+, cairo
+, pango
+, pcre
+, glib
+, imlib2
+, gtk2
+, libXinerama
+, libXrender
+, libXcomposite
+, libXdamage
+, libX11
+, libXrandr
+, librsvg
+, libpthreadstubs
+, libXdmcp
+, libstartup_notification
+, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
@@ -15,13 +33,35 @@ stdenv.mkDerivation rec {
     sha256 = "1937z0kixb6r82izj12jy4x8z4n96dfq1hx05vcsvsg1sx3wxgb0";
   };
 
-  enableParallelBuilding = true;
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+    gettext
+    wrapGAppsHook
+  ];
 
-  nativeBuildInputs = [ pkgconfig cmake gettext wrapGAppsHook ];
+  buildInputs = [
+    cairo
+    pango
+    pcre
+    glib
+    imlib2
+    gtk2
+    libXinerama
+    libXrender
+    libXcomposite
+    libXdamage
+    libX11
+    libXrandr
+    librsvg
+    libpthreadstubs
+    libXdmcp
+    libstartup_notification
+  ];
 
-  buildInputs = [ cairo pango pcre glib imlib2 gtk2 libXinerama libXrender
-    libXcomposite libXdamage libX11 libXrandr librsvg libpthreadstubs
-    libXdmcp libstartup_notification ];
+  cmakeFlags = [
+    "-Ddocdir=share/doc/${pname}"
+  ];
 
   postPatch = ''
     for f in ./src/launcher/apps-common.c \
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/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 798f1708ae7..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.20";
+  version = "1.23.0";
 
   src = fetchurl {
-    url = "https://github.com/KryDos/todoist-linux/releases/download/${version}/Todoist_${version}.0_amd64.deb";
-    sha256 = "0w885xqy1304cp6b0jll5lvm6b1zd1ciqjl97d2hkdi8c9gv3bqx";
+    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 1e82ac2cccb..68388376f8f 100644
--- a/pkgs/applications/misc/todoist/default.nix
+++ b/pkgs/applications/misc/todoist/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "0d3c621jaqxd6i58xm6nvi0avrh5mk23r169i95bn73igzw62w33";
   };
 
-  modSha256 = "1nnp5ijz4n34gc97rar4wlvlbx21ndpjyb2mc6gxdk1wzx3mgswp";
+  vendorSha256 = "0cznb8glh36dwyyn1gx1ggkwa9zffrrxg52k78brnaczsl0rsmky";
+
+  doCheck = false;
 
   meta = {
     homepage = "https://github.com/sachaos/todoist";
diff --git a/pkgs/applications/misc/toot/default.nix b/pkgs/applications/misc/toot/default.nix
index 5ce35f3292b..f46af56ed45 100644
--- a/pkgs/applications/misc/toot/default.nix
+++ b/pkgs/applications/misc/toot/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, python3Packages }:
 
 python3Packages.buildPythonApplication rec {
-  version = "0.26.0";
+  version = "0.27.0";
   name    = "toot-${version}";
 
   src = fetchFromGitHub {
     owner  = "ihabunek";
     repo   = "toot";
     rev    = version;
-    sha256 = "146jj83jixahgxwh12bbkfvci2wrz398h5x01kgppdy59m4pa4pl";
+    sha256 = "197g9lvwg8qnsf18kifcqdj3cpfdnxz9vay766rn9bi4nfz0s6j2";
   };
 
   checkInputs = with python3Packages; [ pytest ];
@@ -23,7 +23,7 @@ python3Packages.buildPythonApplication rec {
   meta = with stdenv.lib; {
     description = "Mastodon CLI interface";
     homepage    = "https://github.com/ihabunek/toot";
-    license     = licenses.mit;
+    license     = licenses.gpl3;
     maintainers = [ maintainers.matthiasbeyer ];
   };
 
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/tut/default.nix b/pkgs/applications/misc/tut/default.nix
index 30868a9900e..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.8";
+  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 = "0wb5lf0zbhmg962p71bqlpyxn8f1n9fp1jh7y7fcg6w5mga8gqq3";
+    sha256 = "1l7lc6cjx97v9zhc0b6lfzqjmyv1i3qj83drkck36if3mc60vvwi";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/udiskie/default.nix b/pkgs/applications/misc/udiskie/default.nix
index aa2246603f3..a6efc492d8a 100644
--- a/pkgs/applications/misc/udiskie/default.nix
+++ b/pkgs/applications/misc/udiskie/default.nix
@@ -6,13 +6,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "udiskie";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "coldfix";
     repo = "udiskie";
     rev = version;
-    sha256 = "1d8fz0jrnpgldvdwpl27az2kjhpbcjd8nqn3qc2v6682q12p3jqb";
+    sha256 = "0kn5w6bm3rmbszphzbxpjfnkawb2naa230svzkpmh3n6dcdvk4qa";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/ulauncher/default.nix b/pkgs/applications/misc/ulauncher/default.nix
index 34ca82b8d04..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
@@ -19,13 +20,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "ulauncher";
-  version = "5.7.3";
+  version = "5.8.0";
 
   disabled = python3Packages.isPy27;
 
   src = fetchurl {
     url = "https://github.com/Ulauncher/Ulauncher/releases/download/${version}/ulauncher_${version}.tar.gz";
-    sha256 = "0wq2zsq3496fjfg89q01dsm7sb7kv92sycvqm6ad8z1z2kpisrbh";
+    sha256 = "1czxzcxix9iwv1sir1q64j5aavc7lzjjwqpisgdc1kidkwnk05zp";
   };
 
   nativeBuildInputs = with python3Packages; [
@@ -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/visidata/default.nix b/pkgs/applications/misc/visidata/default.nix
index cc88cb1751e..4cecf07f0fa 100644
--- a/pkgs/applications/misc/visidata/default.nix
+++ b/pkgs/applications/misc/visidata/default.nix
@@ -43,7 +43,7 @@ buildPythonApplication rec {
     description = "Interactive terminal multitool for tabular data";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.raskin ];
-    platforms = lib.platforms.linux;
+    platforms = with lib.platforms; linux ++ darwin;
     homepage = "http://visidata.org/";
   };
 }
diff --git a/pkgs/applications/misc/waybar/default.nix b/pkgs/applications/misc/waybar/default.nix
index 408ef0a3233..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
@@ -7,24 +7,32 @@
 , udevSupport  ? true,  udev
 , swaySupport  ? true,  sway
 , mpdSupport   ? true,  mpd_clientlib
+, withMediaPlayer ? false, glib, gobject-introspection, python3, python38Packages, playerctl
 }:
   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 = [
       meson ninja pkgconfig scdoc wrapGAppsHook cmake
+    ] ++ stdenv.lib.optional withMediaPlayer gobject-introspection;
+
+    propagatedBuildInputs = stdenv.lib.optionals withMediaPlayer [
+      glib
+      playerctl
+      python38Packages.pygobject3
     ];
+    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
@@ -46,6 +54,13 @@
       "-Dsystemd=disabled"
     ];
 
+    preFixup = stdenv.lib.optional withMediaPlayer ''
+      cp $src/resources/custom_modules/mediaplayer.py $out/bin/waybar-mediaplayer.py
+
+      wrapProgram $out/bin/waybar-mediaplayer.py \
+        --prefix PYTHONPATH : "$PYTHONPATH:$out/${python3.sitePackages}"
+    '';
+
     meta = with stdenv.lib; {
       description = "Highly customizable Wayland bar for Sway and Wlroots based compositors";
       license = licenses.mit;
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/wtf/default.nix b/pkgs/applications/misc/wtf/default.nix
index e557c5081c8..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.29.0";
+  version = "0.31.0";
 
   src = fetchFromGitHub {
     owner = "wtfutil";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0v6yafpz3sycq6yb7w4dyxqclszvdgwbyhqs5ii8ckynqcf6ifn7";
+    sha256 = "07ngk83p753w9qxm8bvw6n5vk0zldn14yv08d900sxny8cg2h0rb";
    };
 
-  modSha256 = "0csxc5q7i2iq8z71ysfan2kwf4mghi89i5zja5g1a4cvmcabiq1g";
+  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/xastir/default.nix b/pkgs/applications/misc/xastir/default.nix
index e5dc92c4ad6..84e4eee2bdd 100644
--- a/pkgs/applications/misc/xastir/default.nix
+++ b/pkgs/applications/misc/xastir/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     owner = pname;
     repo = pname;
     rev = "Release-${version}";
-    sha256 = "sha256-IdlRScAy7tCyVCElCceY4PvqPXWfZZ35f+MwCo3nO3s=";
+    sha256 = "0yrvwy6hlc73gzwrsrczflyymyz0k33hj991ajrd1vijq14m3n91";
   };
 
   buildInputs = [
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/xmrig/default.nix b/pkgs/applications/misc/xmrig/default.nix
index b564c5c530f..d4d93c77ed4 100644
--- a/pkgs/applications/misc/xmrig/default.nix
+++ b/pkgs/applications/misc/xmrig/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xmrig";
-  version = "5.11.1";
+  version = "5.11.3";
 
   src = fetchFromGitHub {
     owner = "xmrig";
     repo = "xmrig";
     rev = "v${version}";
-    sha256 = "04wsz7hcmzm5dv9q1wb26nvcz5gxdcgkf00cp5bpbr3y9vc6dyz6";
+    sha256 = "019g64rp6g0b0w17bm9l4q5lh7szc6ai8r3bfmy98ngi929r4rl7";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/xmrig/proxy.nix b/pkgs/applications/misc/xmrig/proxy.nix
index 82247d02c66..39cd5020409 100644
--- a/pkgs/applications/misc/xmrig/proxy.nix
+++ b/pkgs/applications/misc/xmrig/proxy.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xmrig-proxy";
-  version = "5.10.0";
+  version = "5.11.0";
 
   src = fetchFromGitHub {
     owner = "xmrig";
     repo = "xmrig-proxy";
     rev = "v${version}";
-    sha256 = "1p8bxp2nv30c3j3kb0bpby86378h6m7nv2vvzw06lqsj5fqbw4g5";
+    sha256 = "0wwvsmanvcn0kbb5zqrj8786yg9rmdbink6rsnsm7ifak1iwvls9";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/xpdf/libxpdf.nix b/pkgs/applications/misc/xpdf/libxpdf.nix
index 3b982b1766f..7b7d9051ada 100644
--- a/pkgs/applications/misc/xpdf/libxpdf.nix
+++ b/pkgs/applications/misc/xpdf/libxpdf.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     url = "ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02.tar.gz";
     sha256 = "000zq4ddbwyxiki4vdwpmxbnw5n9hsg9hvwra2p33hslyib7sfmk";
   };
-  
+
   patches = [
     (fetchurl {
       url = "ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl1.patch";
@@ -39,14 +39,15 @@ stdenv.mkDerivation {
     cp -v goo/libGoo.a $out/lib/goo
     cp -v fofi/libfofi.a $out/lib/fofi
     cp -v xpdf/libxpdf.a $out/lib/xpdf
-    
+
     cp -v *.h $out/include
     cp -v goo/*.h $out/include
     cp -v fofi/*.h $out/include
     cp -v xpdf/*.h $out/include
   '';
-    
-  meta = {
-    platforms = stdenv.lib.platforms.unix;
+
+  meta = with stdenv.lib; {
+    platforms = platforms.unix;
+    license = licenses.gpl2;
   };
 }
diff --git a/pkgs/applications/misc/xterm/default.nix b/pkgs/applications/misc/xterm/default.nix
index f6837b692b1..109444fc518 100644
--- a/pkgs/applications/misc/xterm/default.nix
+++ b/pkgs/applications/misc/xterm/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl
     (fetchpatch {
       name = "posix-ptys.patch";
-      url = "https://git.alpinelinux.org/cgit/aports/plain/community/xterm/posix-ptys.patch?id=3aa532e77875fa1db18c7fcb938b16647031bcc1";
+      url = "https://git.alpinelinux.org/aports/plain/community/xterm/posix-ptys.patch?id=3aa532e77875fa1db18c7fcb938b16647031bcc1";
       sha256 = "0czgnsxkkmkrk1idw69qxbprh0jb4sw3c24zpnqq2v76jkl7zvlr";
     });
 
diff --git a/pkgs/applications/misc/yubioath-desktop/default.nix b/pkgs/applications/misc/yubioath-desktop/default.nix
index 2fffee0f0bb..c6a1022288f 100644
--- a/pkgs/applications/misc/yubioath-desktop/default.nix
+++ b/pkgs/applications/misc/yubioath-desktop/default.nix
@@ -6,11 +6,11 @@
 
 mkDerivation rec {
   pname = "yubioath-desktop";
-  version = "5.0.3";
+  version = "5.0.4";
 
   src = fetchurl {
     url = "https://developers.yubico.com/yubioath-desktop/Releases/yubioath-desktop-${version}.tar.gz";
-    sha256 = "1g0jd7mmch6a6n8k5pp3w27qd5cijnvzk05lwraf0i96m68h7x1k";
+    sha256 = "1aw88xvg6gjsfwmmlcrdcgyycn2cp7b8vxjzj14h7igcj02xh84h";
   };
 
   doCheck = false;
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/zathura/pdf-mupdf/default.nix b/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
index 82c94d48068..32a2ec42011 100644
--- a/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
+++ b/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, meson, ninja, fetchurl
+{ stdenv, lib, meson, ninja, fetchurl, fetchpatch
 , pkgconfig, zathura_core, cairo , gtk-mac-integration, girara, mupdf }:
 
 stdenv.mkDerivation rec {
@@ -10,6 +10,14 @@ stdenv.mkDerivation rec {
     sha256 = "1pjwsb7zwclxsvz229fl7y2saf1pv3ifwv3ay8viqxgrp9x3z9hq";
   };
 
+  patches = [
+    # compatibility with MuPDF 1.17
+    (fetchpatch {
+      url = "https://git.pwmt.org/pwmt/zathura-pdf-mupdf/-/commit/c7f341addb76d5e6fd8c24c666d8fe97c451a4cb.patch";
+      sha256 = "12rikx2j7dpngfma9x4i504w58a8xx3rc0gmyz183v19hn54c075";
+    })
+  ];
+
   nativeBuildInputs = [ meson ninja pkgconfig ];
 
   buildInputs = [
diff --git a/pkgs/applications/misc/zola/default.nix b/pkgs/applications/misc/zola/default.nix
index 6616f7e4294..710d824df11 100644
--- a/pkgs/applications/misc/zola/default.nix
+++ b/pkgs/applications/misc/zola/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "zola";
-  version = "0.10.1";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "getzola";
     repo = pname;
     rev = "v${version}";
-    sha256 = "07zg4ia983rgvgvmw4xbi347lr4rxlf1xv8rw72cflc74kyia67n";
+    sha256 = "137ak9gzcn3689fmcb90wa4szw43rh2m51mf26l77a5gksn5y6cn";
   };
 
-  cargoSha256 = "13lnl01h8k8xv2ls1kjskfnyjmmk8iyk2mvbk01p2wmhp5m876md";
+  cargoSha256 = "0v40bcqh48dlhdc0kz7wm3q9r3i1m6j9s74bfiv237dqx5dymmsg";
 
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ openssl ]
@@ -31,6 +31,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 7079e3afa9a..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.0";
+  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";
-    hash = "sha256:0xjg9j69yj06ys8229x6mwsjlk3mvxi8gnr2kymx0vhhg1zvqi1k";
+    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..a06489f190b
--- /dev/null
+++ b/pkgs/applications/networking/browsers/amfora/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "amfora";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "makeworld-the-better-one";
+    repo = "amfora";
+    rev = "v${version}";
+    sha256 = "1z4r1yqy5nkfa7yqcsqpqfdcghw8idryzb3s6d6ibca47r0qlcvw";
+  };
+
+  vendorSha256 = "0xj2s14dq10fwqqxjn4d8x6zljd5d15gjbja2gb75rfv09s4fdgv";
+
+  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/default.nix b/pkgs/applications/networking/browsers/asuka/default.nix
new file mode 100644
index 00000000000..89f4fda88a1
--- /dev/null
+++ b/pkgs/applications/networking/browsers/asuka/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, rustPlatform, fetchurl, pkgconfig, ncurses, openssl, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "asuka";
+  version = "0.8.1";
+
+  src = fetchurl {
+    url = "https://git.sr.ht/~julienxx/${pname}/archive/${version}.tar.gz";
+    sha256 = "07i80qmdpwfdgwrk1gzs10wln91v23qjrsk0x134xf5mjnakxc06";
+  };
+
+  cargoSha256 = "0p0x4ch04kydg76bfal5zqzr9hvn5268wf3k2v9h7g8r4y8xqlhw";
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ ncurses openssl ]
+    ++ stdenv.lib.optional stdenv.isDarwin Security;
+
+  meta = with stdenv.lib; {
+    description = "Gemini Project client written in Rust with NCurses";
+    homepage = "https://git.sr.ht/~julienxx/asuka";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ sikmir ];
+  };
+}
diff --git a/pkgs/applications/networking/browsers/av-98/default.nix b/pkgs/applications/networking/browsers/av-98/default.nix
new file mode 100644
index 00000000000..2184c8d699a
--- /dev/null
+++ b/pkgs/applications/networking/browsers/av-98/default.nix
@@ -0,0 +1,21 @@
+{ lib, python3Packages, fetchgit }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "av-98";
+  version = "1.0.2dev";
+
+  src = fetchgit {
+    url = "https://tildegit.org/solderpunk/AV-98.git";
+    rev = "96cf8e13fe5714c8cdc754f51eef9f0293b8ca1f";
+    sha256 = "09iskh33hl5aaif763j1fmbz7yvf0yqsxycfd41scj7vbwdsbxl0";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ ansiwrap cryptography ];
+
+  meta = with lib; {
+    homepage = "https://tildegit.org/solderpunk/AV-98";
+    description = "Experimental console client for the Gemini protocol";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ ehmry ];
+  };
+}
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index 151ce5edc35..ceceffb8da0 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -18,6 +18,7 @@
 , gtk3
 , libpulseaudio
 , libuuid
+, libdrm
 , libX11
 , libXcomposite
 , libXcursor
@@ -29,6 +30,7 @@
 , libXrender
 , libXScrnSaver
 , libXtst
+, mesa
 , nspr
 , nss
 , pango
@@ -56,6 +58,7 @@ rpath = lib.makeLibraryPath [
   glib
   gnome2.GConf
   gtk3
+  libdrm
   libpulseaudio
   libX11
   libXScrnSaver
@@ -69,6 +72,7 @@ rpath = lib.makeLibraryPath [
   libXrender
   libXtst
   libuuid
+  mesa
   nspr
   nss
   pango
@@ -82,11 +86,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.7.92";
+  version = "1.12.112";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    sha256 = "1f262xh88c83m6ixqxc69z8kvkl3qbjc6jnv2g8n0flw8s70hs7z";
+    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
new file mode 100644
index 00000000000..2da44bd4ed9
--- /dev/null
+++ b/pkgs/applications/networking/browsers/castor/default.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, fetchurl
+, rustPlatform
+, pkg-config
+, wrapGAppsHook
+, openssl
+, gtk3
+, gdk-pixbuf
+, pango
+, atk
+, cairo
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "castor";
+  version = "0.8.16";
+
+  src = fetchurl {
+    url = "https://git.sr.ht/~julienxx/castor/archive/${version}.tar.gz";
+    sha256 = "1qwsprwazkzcs70h219fhh5jj5s5hm1k120fn3pk4qivii4lyhah";
+  };
+
+  cargoSha256 = "0yn2kfiaz6d8wc8rdqli2pwffp5vb1v3zi7520ysrd5b6fc2csf2";
+
+  nativeBuildInputs = [
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    openssl
+    gtk3
+    gdk-pixbuf
+    pango
+    atk
+    cairo
+  ];
+
+  postInstall = "make PREFIX=$out copy-data";
+
+  # Sometimes tests fail when run in parallel
+  checkFlags = [ "--test-threads=1" ];
+
+  meta = with stdenv.lib; {
+    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;
+    maintainers = with maintainers; [ fgaz ];
+  };
+}
+
diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix
index 7c0609730c2..51e3fb032f2 100644
--- a/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -90,5 +90,6 @@ mkChromiumDerivation (base: rec {
     platforms = platforms.linux;
     hydraPlatforms = if channel == "stable" then ["aarch64-linux" "x86_64-linux"] else [];
     timeout = 172800; # 48 hours
+    broken = channel == "dev"; # Requires LLVM 11
   };
 })
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index fdb8584f08e..e538fb66bf9 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -4,7 +4,7 @@
 , 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, libxslt, libxml2, at-spi2-core
+, ffmpeg_3, libxslt, libxml2, at-spi2-core
 , jre
+, pipewire_0_2
 
 # optional dependencies
 , libgcrypt ? null # gnomeSupport || cupsSupport
@@ -72,7 +74,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
@@ -89,9 +91,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 libxslt libxml2
+    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
   ];
@@ -121,8 +124,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
@@ -132,6 +136,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 ]
@@ -154,13 +159,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
@@ -180,6 +182,11 @@ 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
 
@@ -228,7 +235,6 @@ let
     '';
 
     gnFlags = mkGnFlags ({
-      linux_use_bundled_binutils = false;
       use_lld = false;
       use_gold = true;
       gold_path = "${stdenv.cc}/bin";
@@ -246,6 +252,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/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index 25ef76f331b..2429baba4b3 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -1,8 +1,9 @@
 { newScope, config, stdenv, llvmPackages_9, llvmPackages_10
-, makeWrapper, ed
+, makeWrapper, ed, gnugrep, coreutils
 , 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
@@ -22,9 +23,7 @@
 }:
 
 let
-  llvmPackages = if channel != "stable"
-    then llvmPackages_10
-    else llvmPackages_9;
+  llvmPackages = llvmPackages_10;
   stdenv = llvmPackages.stdenv;
 
   callPackage = newScope chromium;
@@ -36,8 +35,6 @@ let
 
     mkChromiumDerivation = callPackage ./common.nix ({
       inherit gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport useOzone;
-      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";
@@ -47,6 +44,24 @@ let
           sha256 = "00y2d35wvqmx9glaqhfb62wdgbfpwr77v0934nnvh9ks71vnsjqy";
         };
       });
+    } // lib.optionalAttrs (channel == "beta") {
+      gnChromium = gn.overrideAttrs (oldAttrs: {
+        version = "2020-05-19";
+        src = fetchgit {
+          url = "https://gn.googlesource.com/gn";
+          rev = "d0a6f072070988e7b038496c4e7d6c562b649732";
+          sha256 = "0197msabskgfbxvhzq73gc3wlr3n9cr4bzrhy5z5irbvy05lxk17";
+        };
+      });
+    } // lib.optionalAttrs (channel == "dev") {
+      gnChromium = gn.overrideAttrs (oldAttrs: {
+        version = "2020-07-20";
+        src = fetchgit {
+          url = "https://gn.googlesource.com/gn";
+          rev = "3028c6a426a4aaf6da91c4ebafe716ae370225fe";
+          sha256 = "0h3wf4152zdvrbb0jbj49q6814lfl3rcy5mj8b2pl9s0ahvkbc6q";
+        };
+      });
     });
 
     browser = callPackage ./browser.nix { inherit channel enableWideVine; };
@@ -63,8 +78,6 @@ let
     # The .deb file for Google Chrome
     src = upstream-info.binary;
 
-    nativeBuildInputs = [ patchelfUnstable ];
-
     phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
 
     unpackCmd = let
@@ -156,7 +169,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"
@@ -183,7 +196,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" | ${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
 
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 1dd9baa628a..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.363";
+    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 = "0znk8an892mykgbz56hyv3gz65vc9mhb3vn96c6bsvicwl1fn460";
+      sha256 = "0wzf5i6qf5wgjm905kd3qh97rj47fybl9g7z72vasilbx8q5wfwk";
       stripRoot = false;
     };
 
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index defb58822a0..14e9f306bf9 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/pkgs/applications/networking/browsers/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 = "0i7vd0w1swvxw46wiy1xrni02xa7yvccw4cp9v2dc2lm5r43dw5q";
+    sha256bin64 = "0by3fgmd54zj5q5znazrl3vf42ik3rhirwy5815i7isqiq7bb6lq";
+    version = "85.0.4183.69";
   };
   dev = {
-    sha256 = "178fc112bsbrgj2hss78y8rhnz8hl85fr33gawk9fz88zk5qz7xd";
-    sha256bin64 = "06qra245l2bbgxc3k04aabkgq1qnzybnrjhrjb25vriv31ji36b1";
-    version = "84.0.4128.3";
+    sha256 = "1yasmx3alal3gygyjvvjk799z0b6p6nm7q10m0qyls2mpfvxpcyw";
+    sha256bin64 = "0lp93z9qwdbjblmj0d514plk44hs0yqw1v7vr5mnrrx6l9gm0yg0";
+    version = "86.0.4229.0";
   };
   stable = {
-    sha256 = "19kpzmqmld0m0nflx13w9flxfal19msnxhzl3lip1jqih65z4y7l";
-    sha256bin64 = "0sl4wv7npc3rhi7jgn679hi7j5ykzwpx5dahy78h87yfg4fx84wx";
-    version = "81.0.4044.138";
+    sha256 = "1n4n95gllqmsrzxmcp9p4gz95gndq2v3vknfvm8p1qfhjqah0hfx";
+    sha256bin64 = "1ak903wm8zq6pri88md2wdij3izr6kz9d4avyqnpmd68ch16vfnj";
+    version = "84.0.4147.135";
   };
 }
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 985497a095c..ccdd591cdb1 100644
--- a/pkgs/applications/networking/browsers/elinks/default.nix
+++ b/pkgs/applications/networking/browsers/elinks/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, 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
@@ -10,24 +10,33 @@
 assert enableGuile -> guile != null;
 assert enablePython -> python != null;
 
-stdenv.mkDerivation {
-  name = "elinks-0.12pre6";
+stdenv.mkDerivation rec {
+  pname = "elinks-0.13.2";
+  version = "0.13.2";
 
   src = fetchurl {
-    url = "http://elinks.or.cz/download/elinks-0.12pre6.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);
 
-  buildInputs = [ ncurses xlibsWrapper bzip2 zlib openssl spidermonkey gpm ]
+  postPatch = (stdenv.lib.optional stdenv.isDarwin) ''
+    patch -p0 < ${fetchpatch {
+      url = "https://raw.githubusercontent.com/macports/macports-ports/72bed7749e76b9092ddd8d9fe2d8449c5afb1d71/www/elinks/files/patch-perl.diff";
+      sha256 = "14q9hk3kg2n2r5b062hvrladp7b4yzysvhq07903w9kpg4zdbyqh";
+    }}
+  '';
+
+  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"
@@ -36,18 +45,24 @@ stdenv.mkDerivation {
     "--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 = {
-    description = "Full-featured text-mode web browser";
-    homepage = "http://elinks.or.cz";
-    license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.linux;
+  meta = with stdenv.lib; {
+    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 954b45a2042..3c2aace79b2 100644
--- a/pkgs/applications/networking/browsers/falkon/default.nix
+++ b/pkgs/applications/networking/browsers/falkon/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, mkDerivation, lib, fetchFromGitHub
+{ stdenv, mkDerivation, lib, fetchFromGitHub, fetchpatch
 , cmake, extra-cmake-modules, pkgconfig, qmake
 , libpthreadstubs, libxcb, libXdmcp
 , qtsvg, qttools, qtwebengine, qtx11extras
-, qtwayland
+, qtwayland, wrapQtAppsHook
 , kwallet
 }:
 
@@ -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
@@ -30,7 +38,14 @@ mkDerivation rec {
     kwallet
   ] ++ lib.optionals stdenv.isLinux [ qtwayland ];
 
-  nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig qmake qttools ];
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    pkgconfig
+    qmake
+    qttools
+    wrapQtAppsHook
+  ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
index a0a0b7003be..10d9e7b2a22 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 = "76.0b8";
+  version = "80.0b8";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ach/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ach/firefox-80.0b8.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha512 = "f4b15745610d97f3919b644ed47b515eadfeb654eb81c5a890a2d225f1223f2f554612a5df14c4514f0f835b25f44649a923d09fdd199db4b052384075df89ad";
+      sha256 = "0dfa5e6840276f2bda03babdbf5273f7d5549d7610b3cf00983fae5a1e8e4ad6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/af/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/af/firefox-80.0b8.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha512 = "a39343493647a46579ea6f37e5da14ed59ab5ef91a4e47b9b7f43cd3f469110b9544ef660b214b7a5f3df6373a9f6bf9b55656586a96a7f2991b4fb9a66abe42";
+      sha256 = "ab51a6e8eb2fa5bd828da95600e7eeffa19c96fa8471299d832cc8024c5da998";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/an/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/an/firefox-80.0b8.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha512 = "ff0655c7fb043f01c8c4cbde006a7835a6f0271133a9dd07b90b3e0bf369233f9dc0ed0caf38421ea9b1870f1daaa598508865a239f5f2391eccfa6c0341c94e";
+      sha256 = "5b7f60f06964dc13d0dff9c603d00a8bdaf86b1c0871fc60b6b074cd535f5dd4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ar/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ar/firefox-80.0b8.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha512 = "b89d38b6a44ebe00806cf7b16a29264c324d6afecf4d83e20ae4b35c502b13ee04a052a879d1c68e084e99ebd9850a9b597b6d4ea19350e0005c8d006d5cfbc3";
+      sha256 = "8be8cc6f547475cccae9ff6675689334c5baa10025208035bbed4a186ff3d61e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ast/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ast/firefox-80.0b8.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha512 = "34a6db5926e8bc90e47e8ed8c413e3c47fe35d119aa3c2315c01b0ea38a04a8acb44551e689b798dc030902b9d3dba3f62971b2d927ed4cdc0f965657a189af6";
+      sha256 = "2efd5fcf0e69f155ae0aadb28534e141224d16c64706e05c1b72f6ef44fed6fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/az/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/az/firefox-80.0b8.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha512 = "3a1bd479e251ad695dd397d019b3f492915f8051984ba399fd93035455070eb9a2b05bc43d87506e671ff80c4b2e4f17808f37e959d94dcb6a3067f8761f617f";
+      sha256 = "9ab8f6b96db687367bf8f770ba2f72f19ee7f438a949373830d03eca0dca22bc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/be/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/be/firefox-80.0b8.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha512 = "0c53c0abf67079d254b5da7c3d7edee506678bc3be55d24b61865e18f8e81b9e26f8ec98d08e7e8aacfb47a231460cafa52e065a4d216cadfaae70ae0a9202f5";
+      sha256 = "b1b3e44c5733e197c53f013bfbe82eb7f6a300278f5b170338fcd56670445bd6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/bg/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/bg/firefox-80.0b8.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha512 = "b608676213c5ce9cae42d18af0f6a836586d990d58042ac8bdd0112590f3aed30abd4272d4581a0cbb633043b4f0cadca7a90ac40777e5fdb7afe807fff1c2ac";
+      sha256 = "e659b463c9a152e635dbc36ab972a64e3b6c28987ba5e5437672e68f24f6dcb7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/bn/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/bn/firefox-80.0b8.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha512 = "44fc7a158689424b3c781812e46b38efefae4f49098bce533c1abfcf9cae78a6be2369fe21f6be12c96fd85afab875b8a6f77af399348f82a1cce3ad4b0279f0";
+      sha256 = "f2e4e6e80747754fa449105cc870b87fbae387b64d044f8dd2fef743e34c749f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/br/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/br/firefox-80.0b8.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha512 = "f9f3bc634fe7c21e1cf9800f8875979e9f77764f71861926b67e9addd604e88b22f90cf31da5dc93b3ebb2dfac8c04ad423b9b21416732c9000e9747ab588a11";
+      sha256 = "90749e4392f518e5636cc687946e066545eaa26badc23c46e6b63da6ce1cdd59";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/bs/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/bs/firefox-80.0b8.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha512 = "3558b3eb7da562ba50f1273ae461f753a95d42eca3714eb1e044bbca3e63de16ce1f040f5b34709c8a0e86fc59ac6c9d65f1dccf3a0fdc30e96c0f7490867d7d";
+      sha256 = "929758b30ab1ff8c034da26be688541ea1ba9e99e7206b981f11a7209ff6d771";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ca-valencia/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ca-valencia/firefox-80.0b8.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha512 = "b79f0e814ce7df9de0f2a488a3a798ce9a33c840c7a39efc6a749a07e568ba881bd2e42b4a49fbe7ccee0ddbb3e7768382181ce16379a6b24551ad555685a792";
+      sha256 = "1e60124bf4946605bd100945748302ba61d406b44563e9c51f58d781226d4a07";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ca/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ca/firefox-80.0b8.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha512 = "69a6c978b4c896091f6118b55783988fc505c819d74cd455ec6274d54fb6994a012f41d09d9b574be90bc10e47b8d186b8021421d86d05db6945ecda1e51d127";
+      sha256 = "6c16d41ae0748931de875f756b0a3b09268bc96c6ebec54a56e6fe8672879c95";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/cak/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/cak/firefox-80.0b8.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha512 = "8253f68114e9bb035edb0d718439f0d28f04e6afa7ea33d1001a1457723c4cbcd17362c0b517a23ca78a53ad2dfc847be396e28beb3a302f2380a6dad5eedee5";
+      sha256 = "f3f6877e2d8132737b978d073b54171ad6d30c227f50e1bb2dd2e1d15e2201db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/cs/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/cs/firefox-80.0b8.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha512 = "1413cbd3345770ce7597ef139242b72fcc9b7c53bca4b7cbfa707f00bc3d2778305f617047ba24fa22f808c0168524166a6fe7cc7db6ea0c5cd30b609e80d404";
+      sha256 = "0677a8fd1ad69a8bb2869942624ae0cf37dfc5e89bc0bfccc68b79b7b4382688";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/cy/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/cy/firefox-80.0b8.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha512 = "1628a73872c268d4aa8ac78bffe6ab49341735c6abd5c8f805c86129ca0fcf5d03251e962fcd4c9ecdda6af125b8d4f9d095e42b2ff5c185267cd41f3090acd0";
+      sha256 = "c037ba4d4f757784923aedd914527e8fc079ab33384d84694b469af3e9eaf125";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/da/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/da/firefox-80.0b8.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha512 = "f51f300911731acd439068bcbbab712ce4920345b481b8db80b3f6ca1c1cf18fd201a9e639abc78db97933d4872c7241324591a9c045bc1c6d71898e2a2fca93";
+      sha256 = "5c0b86cede27223a159a0052ea146f4f79a2cc95a9515d4da6bac598b1a792e7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/de/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/de/firefox-80.0b8.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha512 = "196ce93a18112d7e0df8a8c1e444d503d3b0a2d11e70907963197760c2127c4f827ae9a0eb79fa7745190c92be10c7828a42414d33ec9ccea1f0b7194ffcc325";
+      sha256 = "e40a4752fb32a31689bcf546aa4867ead0da80207de3583bb2ed43b944a12f53";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/dsb/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/dsb/firefox-80.0b8.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha512 = "da6f0afd218345ffa1bc0b037ca20c9aa6b18597471d35d5cc8f4fcbd4f39f91e2839fe35f186577ed4445d34e76d4c8175f2df24f7bc0795f606cc6ab47db7f";
+      sha256 = "d0e22abdfecbfbe2a25dbacf35e1bdaba716bfd2e09c0a4206c7260f405df15b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/el/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/el/firefox-80.0b8.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha512 = "4ea4754aa0b337e94f3fec5b108c703ac80827d514e64e3e6c890e050107249367c4167b58f21177c3071c11301c37de08703136f03edc0aa901a22e2126b279";
+      sha256 = "6a4206278f3aa89aa0a49b41df8372c4ae10a6afdd107210a7a1d8a240d800f8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/en-CA/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/en-CA/firefox-80.0b8.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha512 = "f6f59d13148c7e5510a03e93644b38a788911ed904e088be48cd1bde071ac372b4b047f988714ed44d1f64ca6a32502564f01780be80f6c49373119ff7021454";
+      sha256 = "3b767fdf9d08e08526f72bb8bf14a7577370003f29734a39a61cd31d65491f80";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/en-GB/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/en-GB/firefox-80.0b8.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha512 = "fa42017d8111e96c4d81ce515577e1307e187493866c04f3687746647904f2f89a3f0df822ffdc2004bb0fa06aeba102e29b660e250737b2264b5015010ab869";
+      sha256 = "29108de728a833a8f6df04e2e4aaa21aadf3a572534844f4a44ee4ae0b78eb2d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/en-US/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/en-US/firefox-80.0b8.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha512 = "5f47dbf433ab20c2db027542eb0a3dcff7fb0b526ec93908f182e1dadde112da327f84edbaf44ccb26d36c120a414d64ebb9b10a77501644d9f1c9c3d34b7346";
+      sha256 = "01b005fe37487f7bc9ed39aacd09c891755fea9adff44addacb708000deebd1d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/eo/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/eo/firefox-80.0b8.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha512 = "3cd5e9e99b73694aeded24d9acc7c594bcc582eafca5867a7123c5067e34f7e96781164fd7db2b53366bd0d0d66fc495931cad42b1e3d56726c8e5f82c8aea4b";
+      sha256 = "ca8f65b6bfb491ab66640ea2b02b234d2b68d268480532aafbba6fb6a190414f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/es-AR/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/es-AR/firefox-80.0b8.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha512 = "ae43f7147a3ce843488623c4558d9088690fe6ecf7153ff30da09051e9e9fe90df28bf6529a469b8d799554c8ee3ef92006e73a2cb9e68a5b71ab392a977e849";
+      sha256 = "19bf5b10da6afe691cd50530c57256b18c4059c48561c1c776e5e35a7a0db327";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/es-CL/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/es-CL/firefox-80.0b8.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha512 = "6ccde441b5c44514da5bf7cb9aa959f818d5c499fa8d33487102cb1a1cb98a501b1575ecc28f8288cbc4b69dc70bc76f365e9b52d4329b685f25a1ba9d1ff063";
+      sha256 = "42e383a691ef11afe1ed5afc64a0e6fc7e87534826d71d169e060f10fb07cd1e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/es-ES/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/es-ES/firefox-80.0b8.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha512 = "3800ba267d51d9046999c931b5bd9a743d2a3481486a7ee713f76c003c863b8579d44ca53ea56f5b32c8022ffd9ee0184b7c734e5671b412f60d04653ca2c8fb";
+      sha256 = "7cb0aa8fbe6983bb68a583bd61d307d3b44a6a38f5b4c8cfcb1bd401bcd10421";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/es-MX/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/es-MX/firefox-80.0b8.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha512 = "600a1aa9a0b97fe66947107ee9018740e2f7c07bd3ac51b03c0c6d52728d72f93062c9dfebb97042c9a23a85631c88502feaa6a8cee395953ef23c2addf6a99f";
+      sha256 = "e9485c3a290a0a240d3cb9d18ec6929645aee333a919b4aa09776da106d943f8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/et/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/et/firefox-80.0b8.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha512 = "498f59dc3a6faf067c8c3d23eb5754dc8cf0478b50379359122b7a8e6ead6d7c6c39856cb34f3510f7fe1a11af3e0533a3805821ba49cb7cbf1d40b1caf36b3f";
+      sha256 = "eb1a74b4e901b09cf287e59d1c8fcb500cf2f948ecd5098f3d928413ff219897";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/eu/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/eu/firefox-80.0b8.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha512 = "a5d58868468f9ccf22afe78734121e1f81961efc9c7add2a065ec9b9d5d68d8fe96b5f563a85b960ea7ff94c70e1c3aa3a9f0f1bb23cd175df549375c1479072";
+      sha256 = "8daba1de73e594e3138ffc8bf58865fd4ece581a43337097691f2bec4f419fc6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/fa/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/fa/firefox-80.0b8.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha512 = "02a5d946542aff81bea82ec73fe30919fe4a1d1acbd18ef194a7c8879d9b70e319abaee2e4d8b3a2671cecd28fffaa37a182f7dfa06884f83d765b8701c60a9c";
+      sha256 = "f0cbaec0e1087ad8f55d24ba39d60fd91972189aa367d6b80a22de3f5b5ff821";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ff/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ff/firefox-80.0b8.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha512 = "4ab405c47fbdb83eace54b0db61c734941d5ae6c5735d50dc6800271dc59cd82de9df9e1e98f238c4726ff9319c31a8879b2f0330792289db5e4b01cd3caf3da";
+      sha256 = "6b98dcb2d5493dc7084f626b6e8aa807d1b71d0d8bc1ad30f2ebd3c002bfde23";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/fi/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/fi/firefox-80.0b8.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha512 = "82f95d6462097fb2975285326ef6b35a572b4c25bf07517f3ad680a978aea95f5cd4ab946275dd74cd6aa98566d1a4288761c985c39e1cb3d9e963b892a37544";
+      sha256 = "4ebc56f8a38c32026380e02271cde2f651046d0b0fe4efadc48883fc2562fa50";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/fr/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/fr/firefox-80.0b8.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha512 = "a6df8eea8918292c18b281f5118a0373bc69aabc585d3a711ff77355a1aa95f5049d31df3bdb72087931dfc347050f4ccd791a9729f7bd3d95cab20c78da8a59";
+      sha256 = "b6d4ca33e93968bc0efcb504db785f5dee55bed9834d90482ba5abf54ab97672";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/fy-NL/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/fy-NL/firefox-80.0b8.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha512 = "d5cbb68867369a82d84ade5a847d8574ff687c0cada8714c8a072291aa02eef748dc109b42f1b246980f1ca14060b799098885bff2d7e4c55e7ff644ccc01e9f";
+      sha256 = "438d72ed1e22da87cd0ec63fad41b5e355cbd8d2417627d74ded59940b6b1b26";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ga-IE/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ga-IE/firefox-80.0b8.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha512 = "8d9a299c49949609f162f9bba7db369fe7c34f2b29d3075c607afd3c3bdb5ffa0ae0d9bb9d5ff5a5f0cd28556eeea5265b8f9809a2db36ae11209b9cbcb5b8c6";
+      sha256 = "6d3b4a427fc80b4f7e69f94a90d5d2fb9ebd366d224136316de8e2b03c06ddb7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/gd/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/gd/firefox-80.0b8.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha512 = "4431eeb86c0e3920bd08db00c10185941bc7fb3f5b055b8ba114e63bdfd7b64ccb8cdffcb754453557bec011d08d87e08b6a2ce022c77fe32add49269f3ac6d6";
+      sha256 = "ee54acaee8f5b2c0033fc3bf27cb6c90a6d1849c4eebb427e2efeb3a7fe44c0b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/gl/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/gl/firefox-80.0b8.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha512 = "0963628808ab6f6ce65f70e09c12ca38c524992c82446a2654eb42917ee2d32dc1dae94b15578ac5209e12e0fc4cbd2f56265ae8c259336415d4a56b560be96e";
+      sha256 = "bce9bfb74c965ec6d2e346b86910c73dfc242be98473ba52f7d0cc34f14b42f8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/gn/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/gn/firefox-80.0b8.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha512 = "1b19d9ca238eb05709007ddf00ff40596b49ec771839f6b1ac21162796101701fb523c0b8ff18dc6d3428eca3ed2ac0fd3bf17c5ea91efac998ebe4b8ece6c9c";
+      sha256 = "a98fce4baf9e0424317231aac5ffc0b3574c2ec6feddd9e538faab59bf9ab432";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/gu-IN/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/gu-IN/firefox-80.0b8.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha512 = "c0d2fa00166926927e1985ce112a035980ad24771d4ede83143c4bb9012006c811aed2612fb1f2c4b1bfc852a7c7799309f4b579aaf86fc5b11ab216239911b5";
+      sha256 = "35161db5c7fb962ad5c60118d422250c2b6a776ef13d116bd23b31fa5c312a5b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/he/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/he/firefox-80.0b8.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha512 = "b2a5440b57ef85a3e3ee607e9e497e6b70e3652c7f258a2c7e98e18b5a95c8d34de908d64e464be9ad224aac7869efde785e38462fad3c284649bb9c524574b9";
+      sha256 = "66fc1b065881a4dea1ac8d82bbd64bb6aec223c1419663b7a50752cd1700781d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/hi-IN/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/hi-IN/firefox-80.0b8.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha512 = "2ffeeb8d559097e9d67f7603c34585d8b4d1571a23ef5a9d04c47407b03c4db2d4633637e8352ad96989facbacf6796aa48eb94ad81b70b0be3f0955b8a0e32a";
+      sha256 = "b1ce60f26dc79eb360e185805b98b2d1197a2e45c26cd24bd3c82edcfad42a5c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/hr/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/hr/firefox-80.0b8.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha512 = "91ef9459edcf44b88e9bb6c5bdf1a1d5689c99e5a44f14f4700d0821e0274e9f8c3f79388c7a97e0aa235b8ffe1099ac80a523b4d62420eba5163a608d48aae6";
+      sha256 = "712ce7b7e90c4b424a4ed46385a34905b7c4f59e6d07ced9e5e94a6108a3c206";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/hsb/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/hsb/firefox-80.0b8.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha512 = "8173f8c47566f7aa486266b8c0e83eadc11c484f597334aa48eebd3ed353f5910eef527bde508e98f082240d01804006ca4771aa7992290b254601d2eec6a206";
+      sha256 = "43fcc61024fa21216e7e05dd0fc46410b2dc32eaa87215014f9f3e0d83ebf37d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/hu/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/hu/firefox-80.0b8.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha512 = "7ceb26c11204ce6b1e6c3596d9dc3e6146422cc3eb0d1ef9c06251430e32f2353ee42b4363204852d6374cc845f8b84997958d2e66af3e770aad679d0ad3e66b";
+      sha256 = "0b73ab77e5e0f4ca34d0eed7fd734f30c1484a930751d5f2704e09e94179ed88";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/hy-AM/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/hy-AM/firefox-80.0b8.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha512 = "cbc66db54c574aca15f8e2726ff68910d19a67cbbed9e2b63518976e3f614b4f5f6928bb7cdfd5c357d7152ef04ffe1a311656125ff5cb62e471ae59213b79e9";
+      sha256 = "bb52a07de2b0c1fccdc0910c0d861345822c9708f9f66471225a9e148f159cd4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ia/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ia/firefox-80.0b8.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha512 = "19325c8a1aa3067fa8df803b93f124427519020903ace8cf12585711634f8d546662166f11b3944880dca5eb79ae87a9e2d0e4e273d95543a4641e9cf4324ebd";
+      sha256 = "50cfffd20294f00e5194093b6114cfd1529e5f383f389565be7998c02a8802ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/id/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/id/firefox-80.0b8.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha512 = "b74338470d7eb1aecfc75ead675e2408df33fd4841ab4953cadadfb9a7f6169f8a10c4896d4d48fe86113d3f1ff312c4298976ef8b997c26d6406f8598b19a5e";
+      sha256 = "ed6473750ffa1006d0ed8a502809b56573681c85656f12cbc6fdfaf50506c15e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/is/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/is/firefox-80.0b8.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha512 = "cb3cae07b27f0d485f9eb70805671ae50325491d622dacace2a39606efd7a72e46220e4981ff012f115183641b8e00271ab06c5ab2e8bcf3baeda040546c8b12";
+      sha256 = "1467ae111e51a4cddbf3611503e35da489fa6f506bedf441989fd093a1b507cf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/it/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/it/firefox-80.0b8.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha512 = "83b7175ff91bad6733db2cd095172ef943867aa2dd911c6ec857dbeaad8cf4cd906278f3b8fd488e8905cd5d5574f727066ae73e92948d22804dabe16b4a11cf";
+      sha256 = "b4c96a1e12d8c6e16b7e85c0080ff0c1e50cf78d0762907af075a9e272ea9ed1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ja/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ja/firefox-80.0b8.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha512 = "b97a3c637b1632b6a6285af946eb0a2c178d8fd901cb3a9b0fa5b62d14e3bc314acedd504153ae111557b78a2edbb056bd4a255f5971e1ebad3e335879dec40b";
+      sha256 = "f79a5b441d4f6d10c9022e5b872e5e607065a6f8932b1f1ac4a32f586848a676";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ka/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ka/firefox-80.0b8.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha512 = "2f5ae830c52bcdef8fb47880c6941d5aaf4830139b77c59c8e188e82036d315f57732633ea785c54a950d086ea02423e97ea2ac01105b5d2990821c7a15036be";
+      sha256 = "4e1e846659d18470e098dd9244278de6343bdb2d076927a46ae154f7b19b7843";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/kab/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/kab/firefox-80.0b8.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha512 = "4be9c49a6b6203f2f3b3aa3b5ee2c3246d77409da5a7b7cde2c14a3fa592eba87715199447df96688e95d9905d6f1eadaf867ffe1d01be9a12feb03255848c84";
+      sha256 = "d538a9b1b4c439bb2f1c57cb076b9f6f5be5ad673ef7f4e468031cb8f9f83d86";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/kk/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/kk/firefox-80.0b8.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha512 = "d15c5f6fbbe9b16510e94d1cf49f36fb758a97af5e75069f38b33aab8be007812d88babdb8aa365fe3e4c17a822be234111885a2d71ff335bd7ec6703e81434b";
+      sha256 = "3aad1bffa285439350fd1c3fb09450e1d27f51a011383106b5341f75450884a3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/km/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/km/firefox-80.0b8.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha512 = "351facfee64d07ffedd0e5509e8b796d0432c7b44ad29d109c50668adb8fb13f408026166a49f37a92f99bdbf7e032929a22088d4bc42c14169449234841dc90";
+      sha256 = "2d59a3a69a96e793efa5257fd9ba903fbcaefef99267f3f0921c3ef073a12f8e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/kn/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/kn/firefox-80.0b8.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha512 = "dab3f1437cea072c466c9407fdf647f368838bbb7c30177642bc1247a8002874f832d0661e8a3aa32df8c0017f8c664caf6125b6989a113cd08f9c874753dfa2";
+      sha256 = "804f85a1d5e8f5acd561aa8ae91e1100de2e62ae270d742f0b16111dab20f94f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ko/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ko/firefox-80.0b8.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha512 = "b62dde501b06b4d825d9ffa8008b45a40bbfc93123df07136128f22c7f6e1f1cc42a0ea7e97c1a962a7b1a1a23bccd5eb66785a246781769b22bb43b8ef451e3";
+      sha256 = "a09382d10e2114f02848e7deb8c770599ff8f84e18a5c0253f4884b7b7174233";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/lij/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/lij/firefox-80.0b8.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha512 = "9fe6488ed61c360ec1ba0d784409938159637c96abff94ebe18f198a8c0a72b052b5b0e6b5946339cdc5b5b3288c8e76811704366a4e9f9c498a9041955f7df8";
+      sha256 = "b088949b9d87986b2ff1fe4020a59faed22b0c205a432ab29b862d07bda0dc42";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/lt/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/lt/firefox-80.0b8.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha512 = "804c3639ec0275d844f9ea37b1ccf5f259c50301cd5ee719b6be07a5097218937b5337a25d375c0d534d59143af3fdb338809fd9490a898d226e9cbddf39b6c8";
+      sha256 = "8dd0b88ab0d16dcdf218b58e9f2fe8d8311d826461de8a4c94c9cfdabc8bf905";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/lv/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/lv/firefox-80.0b8.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha512 = "14b263e7abfdad1ce738d58bc30f054f80099a7513ae443d32aa8dcde6b12f2daac56aefe9d3cbc2db9f9cab573a5ef2b046b8e8df9d5417cffea44d109d1403";
+      sha256 = "bf289b7115d3114a59e92a3c63cbaf98bdb3f3fd1cc03a9cd5976a4834ef147e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/mk/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/mk/firefox-80.0b8.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha512 = "068eae194df8e756a668b8e372a0790ab8fdcbd5c54b823c82106230a9cba32b5b6e530de7a981273c67af25e5d329da2c543c8a5c96c91f010d19b6ecb25bb9";
+      sha256 = "cd9b7abe6c53a221d88c5f49fee164d069c21d956285ad2d0fe06e7012b72870";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/mr/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/mr/firefox-80.0b8.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha512 = "6775e61398e028c2a6dcf9171ffb3d8fd4746653beb58e8c012f3256685e545abf4a62d53d67aaed3a2f04f216dedbb14a09920f24c2b6bc288fd29caa1ce2f9";
+      sha256 = "370d8540a678b356a4f373a81e4807170b3599db6472633b34c768070c77217a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ms/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ms/firefox-80.0b8.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha512 = "b66a91988d816963731c823f16d001b89ce14928caa129ef90dfd1f01e3c54cea2ddcf0e5f7fe34ffe23b265c0a64715c3877fe0c5c8365f80b859d3e06e84ea";
+      sha256 = "f141f3a22d6b5914f8cebbef0d2e124fc50833ca86bb62dd2a01d957ced6c099";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/my/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/my/firefox-80.0b8.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha512 = "29796ba9076ab6c46f16fc06119a267861b34652322397e77872a7570e8375e3efe88c3c08731cc8909d817d3eb71e269f7d245e691b8ba4778bb653a766914b";
+      sha256 = "ac62b25be480b30ee2c71371a6a702c37b58e537a4c4781b92e4f0b74c11cace";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/nb-NO/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/nb-NO/firefox-80.0b8.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha512 = "d7fe426dcbd53043a94d143a038fd901875630627e98547997be62b3319d5f2c2172ccf9315886d97d30c4a041a099e0ad8a229e840a0f4061faa9d6d3c64361";
+      sha256 = "c3364a0364176839b97d08294ec7291fa13d212edb806738392796218b7a7080";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ne-NP/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ne-NP/firefox-80.0b8.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha512 = "093ee3c1d513adaff69bf84f5b9236c245c4580ae25f7caa642be239a591ad9242b329f15e2dde0969d12223cb6ab8decfc657ca440e344a87e42dd880450adb";
+      sha256 = "75d005443c28be517828d07be438b8c980d6885b4dacf42eba58573be4291b47";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/nl/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/nl/firefox-80.0b8.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha512 = "e912de72ee10ac764cccf1243c0c1f8fcf159d6ade88c7ff575a5f7a5175efe8086d8b4ad4c9a72cd65d59186665d0e11abc4399b0692428bb8c93d025de2f9f";
+      sha256 = "cebae8c9c06bba81194c7126f115ffca44ae020af33b0de8e201ba930f4649f2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/nn-NO/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/nn-NO/firefox-80.0b8.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha512 = "52c57e140593211af5abdf729d4dd45be242539aaad4688ab081d311804d56afe05ac6ae3e21c439a560f5213e49abd1ae0e5650f091215948ca514ad3eb7e20";
+      sha256 = "27607aad3a1d5ac50f159289cdb92e71d882b77ec9d2d320b470dfba799295d4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/oc/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/oc/firefox-80.0b8.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha512 = "d249ab86026370ce7f417ddb7d7cc0a4fc58563a1c12388a4e1628938e3af8a1428f2e43cf7ace0c9e455e4b4999942221fc3d96723bd927c50f7e45c7bc1a1d";
+      sha256 = "634372a5d704c890d464c7c3dceb365689f260feeb9ee273e97d32d8b8c9a102";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/pa-IN/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/pa-IN/firefox-80.0b8.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha512 = "7d5d1861559627f9a77160106dd5c527d09656be5586791c2bf2a61292b1cb1150c545ff1f39a6744453af58bd44777b9668993a10e654ed4c8edddddec12467";
+      sha256 = "16a165ec3517839d07d2177cd3e88a61f063ad7341095a2c70baaa5de1f7a2b5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/pl/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/pl/firefox-80.0b8.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha512 = "24a419ca7b8c82112bac80aa9d956f3198cb324991492f9f66bcf0d64fcbe5618a2e654849dcb5794399dad32de91bf48bd3bba70003e02b9bf28634b8d4b267";
+      sha256 = "cceb8d8fc319344bf031c7d86ab5d19ddd059b67a7293a2bb785621b99cd98ad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/pt-BR/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/pt-BR/firefox-80.0b8.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha512 = "cf33be7018dfffc891e4cac9950ead0274957b9a44e27bd7924abd62f93e69b575dbaab1a663ebf829a05283f957dae0a7442abe76e8e1a8a6e35e12be6e2821";
+      sha256 = "5be4bd15fdfd7b80a156740c57166eb31c77ff32f7e4c354d403606aa3049f8d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/pt-PT/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/pt-PT/firefox-80.0b8.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha512 = "c368498ffa8eb48801634fa6b50a74a563a28d4fcd23e4634eea52fb6ecf2872e4cd91aef5799afd8dcbf6020c7f694dd3eeff1197c3cfdac63bd72acfa7d7cd";
+      sha256 = "0dbb3aff49303f94539f82ad5d434351f5c2d1ffaf414b94f6b8ebf6535d656e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/rm/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/rm/firefox-80.0b8.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha512 = "d2064ab0dba1c122a599954efb01e4a68f189a1ce1d5059d60373e8c4b89c860d6b6a68c1e58afebe65107c3f8c5c5f87e771cad61efe7449e86f8ce25bacc5a";
+      sha256 = "6880c4976bb118fa934d189d6af4cde582d64b909ba0671a4ae62e41bba4d95b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ro/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ro/firefox-80.0b8.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha512 = "64d566ac3acb823cc062dddaa33e1ae321edd3a4e54b02e317a04595bbc145ee4cd06f3f84b20d1853ad6d0eb4cb7b13bb10bfc8383799264342a409e2254dd3";
+      sha256 = "4e5ee175921c2e919d2cf1eace39d52c5b89c6bf4ff9bfd9080d885d2a2f83a5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ru/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ru/firefox-80.0b8.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha512 = "2240c612c9d746774fba47019068391d6e08fc4933b082670269cab1416ce538b2bf9b948aac994e81a31a52b91a11df6968b847ce0e843615a75b8841443c23";
+      sha256 = "d4be0a9f6d4dd99409a5099624429f951768585a955022c0efc0ca00140bebfb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/si/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/si/firefox-80.0b8.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha512 = "f579d1d21cb45d91394b9a08e1b960a43ddadd7040e417c20e66e1dd4d3f7ea3a8963ab8334e49cb22ad6eb2ef81ba98eae1298acab3abfa512fffb6024da622";
+      sha256 = "77460dd1207e11ef6227756c1fabca26777a98a5ae92bd38be2e86161c0efa12";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/sk/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/sk/firefox-80.0b8.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha512 = "6d2436ef789404b6d7247ca222cda81ccf518b91bb854d7f53b6c2c1c68b96cf5785bf6b768e49a0b0a4db02fc899c72969ac0c1441ad6bfb8ddb944e2388d8d";
+      sha256 = "018602509df7c86cb001f007937dcd44694438fcfaa9002562995b8cec0d956f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/sl/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/sl/firefox-80.0b8.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha512 = "4ed452c03a08506498ec2663b6fab477b2aa52c9505085b493d799b19e5215ac72a90ab642ab2ba3520c609909b93a5b176d5f13c79066598492e7babd94ecaa";
+      sha256 = "f35c5a8d8b3eb56c9241a13d20708069073558caa02bf6ca55459150869ad114";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/son/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/son/firefox-80.0b8.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha512 = "d3c77c8a85dbb280f75068ca49891de95fc081b4074cfbd569c773fcfd4d0b017e2b734a6531dabc41dfb3e3f7accb51d47e7cfcff2bae6f230fed8d69db2073";
+      sha256 = "561d9939c3065e2a604d7b51535a5b4b8c0da7e3fc9274657ea88366c5924c74";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/sq/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/sq/firefox-80.0b8.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha512 = "94aa56c2d731533105c9e1c7d20862ca9cfd5729fd474b2ca784e2528f798915e9dc177e5966e2b5bb77d6eebc7962e6564f1494ecc284a91175565d25451cdf";
+      sha256 = "1e38655b0ca5684decc1619a51b2bec39b8fdd7ed302513a8f8d14a3ddc7533a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/sr/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/sr/firefox-80.0b8.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha512 = "3785e6ba189c2ec41f56282ca8925c8eb14d68157c5c035e90fab09f27941e67c9286298c07c31ab0792488f2cba86bce166adf76259d10cc3007f5047847392";
+      sha256 = "ab879d65f27ebe393ee86c12b2eea256639d17f2dcfd8b4981072772a277d783";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/sv-SE/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/sv-SE/firefox-80.0b8.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha512 = "a98ea8c31d5e6ecf3d3c4b0def2d2921aacd901d095ab53aed1da202937022c073834fcb1d3ced826c294c18660d2e4888473b2f8f9e91083bbfd0e040fa6ae5";
+      sha256 = "832ca5b1e0d41675066e7bcfd16563a9e03dd87bcd96d4592232ca26321af7e9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ta/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ta/firefox-80.0b8.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha512 = "5c64882b2fe34cbff29ebe7668ba96526abfe29cc599881331e048da2655ec735f8425d98f64475073e86508626b464364e3a7212b44ac297e6a50c7fdb5b4f9";
+      sha256 = "ad9c6fcb91fc87aa11ac0912f049db9cf93f5e62797335a8a699b9ea8a7ede9f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/te/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/te/firefox-80.0b8.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha512 = "1506161ae00a4fa203cce5b31779a38f0e7df94021123cbd57197cff807a4a6ab2ee9907240b70b55e6795574b4074a83bd692d2b4ae208438a12357d6a898d5";
+      sha256 = "37c7836f86fc5f4f48aefcf28330e1003687752d506d1050528a19b592bbd7d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/th/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/th/firefox-80.0b8.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha512 = "97950bd4c56df1defdcc7f6f1693dd6fd0065805d63145aca80242e2d5a83186585dc1a165e7fe9a0dde52a8f60fa6b32ee097fe0febdbac5937a410e654b20a";
+      sha256 = "66cd4f8cd18f1c076b9d7538600459fe01998185cbf6899126841b16b3184321";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/tl/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/tl/firefox-80.0b8.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha512 = "994980dc3ad618140b0b422db46cf19cdaeb99c4d3202c426c415494812b5cac525b43c4b290fcb58ea66ab9330680c4add11e8ed92a5e36b7daeab19c96b4bf";
+      sha256 = "d3f6102c2eeec1ecb1ba28884592c11e544e71d42ea2204de59ded1065f71f5f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/tr/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/tr/firefox-80.0b8.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha512 = "65558235961baf87812242607d8b77f6e843bc5828e79002d55dce462bb2d40a00ccc97a9e83de56777d1e0ca35991a2c577ce40217964c481930a4081955289";
+      sha256 = "ea161412fd08571782f607c2aab116a1e1912caa3eae785db1129f617b389f11";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/trs/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/trs/firefox-80.0b8.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha512 = "cbc3c626919406af47ea8a00e01fc8146838042a8b7a04fde88f39e8b21bb3ec8c15b9ed2b327f5df1bae621427c8c2917837a29c95f27b1bade9d82e4eb93ef";
+      sha256 = "a1824abd2c3f0e0ab3e1ad971137cc81c636af48865f7bdf7eb1029a7d08a16e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/uk/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/uk/firefox-80.0b8.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha512 = "70ac4bcb16191992de317cc6dbe2f3e8d6ccd0b7bee0568d7a2272429bf164610621f53d6d3817ab6b3c7643d63db243273f6e99dfc5c5133dab4645f9824174";
+      sha256 = "38afb4f054d9b577257509b17e32049e7c5fb50e47971fe52bc5ecc7d9b5806d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/ur/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ur/firefox-80.0b8.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha512 = "e66011a9db9ff2512dd3b2a338440ecf268141200754b0dc09c484d1504534b109aeb83364181b3bee7b534ea078c879ebca1860af63c388689517397055f670";
+      sha256 = "8b9503d7b5452c43e7300c8a1b1c2ec9d2b0572aed78e7b8f05fc7c1ca883d07";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/uz/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/uz/firefox-80.0b8.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha512 = "e09d595c56d8fb54592a046a6e4f9868a1bcb2bb638cbecbb87f94000127d0f3acedca67ea7f8db15445cd2142052873bf73ddf4df2fcea16373c614d6501728";
+      sha256 = "789a4b08daadd64f6275bf267bc269ea92177902ae7a8b20dd14bdabcda49cde";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/vi/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/vi/firefox-80.0b8.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha512 = "04d5647b360d52ddb714c25443b55558b3d54fdb31a385513832fba336e7db28a8dc27653ceef32e72a4dac7cb771e82178b6161b55917c07da839e80523a8bf";
+      sha256 = "10702553917f359954b204b65bfe311826cd44f6e81e7864c05a94d541dbd636";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/xh/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/xh/firefox-80.0b8.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha512 = "bc564788b8fa57981b7963b584a445d69e4c198ae83d8d6ae1a5e4402796492bc2cf92d0119a9db067f75577240b0e9d6afb2f38fa94e3e101ce6481b8406fe2";
+      sha256 = "d99ea01e9d8bb5efeea45e2c2e14da6618d1eaaa25f4f1a1facfec1ebdef2291";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/zh-CN/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/zh-CN/firefox-80.0b8.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha512 = "38fc3b4eef5cc6ffe867665d82dae4156ea2676749a9dd0b15bfbd9e01798829570bba75e0023ffdcf9b104ebe85911586eaba95868ab0773b22e121fc75679e";
+      sha256 = "5c7c3d76a7e4fea7ca207cbcea698eedc970a6fb727fad7c071e19325fd8631d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-x86_64/zh-TW/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/zh-TW/firefox-80.0b8.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha512 = "73477a782280c18dd42d7d62e26cfc5674201d3904d155c2ac712251ef8b65f422b522804104d7374865cd7e8286a8ea9291cbf7da37d412a1cdf8d24d18a3ae";
+      sha256 = "9fbe3205110e83ff45fdc8f5c1659caeaef48c75db30a7014454d6338f1aceb7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ach/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ach/firefox-80.0b8.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha512 = "a35694c831c424eda7b6e5069c1b03d1e6b2fba051b3a29a7e8ebbded9b3b12fc1fbd39131d86f1c0d28a728a9ef2b7c8f903f6ba792d522c5e96490cf68563f";
+      sha256 = "a6a965e26d90ef0dc4b892d0d90f8b0b81ea7ced3ea1de3a70126c4095731fd8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/af/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/af/firefox-80.0b8.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha512 = "9fdc8e1e39d2fb69d3afb64f676fa85fd674b45eb86d4d4735df403bca27eb499be9e7a6f5f9e67cd3e588352adb29ee805b403f35a859c3226507684a69ecc2";
+      sha256 = "649d3f77f16832b3a645f98616bdab4b788fad7d2ecc2d91558d369b439857be";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/an/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/an/firefox-80.0b8.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha512 = "1da6aa658841d59069bf57960f9c5888e879056777e4c227037c1745648417356bd87bf062de6afe41058a290998e7e080ea7fec895cbc86619d0466ab0bf64a";
+      sha256 = "8b0e52a60af14565dbc514536a8808fc8aafefab56d765fb0ce42565f67ce1da";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ar/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ar/firefox-80.0b8.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha512 = "8cfc1c08b728727053277a60c19e289f0d0407e01cb2da5632cbbfe5ab48f751298f4f83930dfd5907d4be8973a4aeec3f3a719dae16827f48f0eb0d4151cd03";
+      sha256 = "522f35d947d56354d31ed106ba5fc6feda9ad0a4c29476c7497aec6cb2f6dd36";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ast/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ast/firefox-80.0b8.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha512 = "96c7451450e0d6e133a6576b098b37dfab5059240a6107fb95be17a82e9600ffc4003b60918f4ccd8907d8aef814d55a79a61107504f41fe086fe3d6c83232b1";
+      sha256 = "03220451f980f89f3d9b23b53f90e852402fdbf54494ac99be7dc8932287d732";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/az/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/az/firefox-80.0b8.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha512 = "0211b3ff84eb9e7e9f6a0c81a141273009a2afc7ff237bdad751bcd68a24b60c9e9c896a836068d3373f0a0e6469fc77ce8f502197cdf9701ba033ab63eb5e03";
+      sha256 = "2d70285230ec8fd4f5f0e3232d08b5c669e5f71d4758d88947b82f907305df3e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/be/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/be/firefox-80.0b8.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha512 = "e268741abb735b0425d42fb21a1a70b7035f915122c64e45418f2e61a3fb5f9c123b53e93979c96e7a183b8511cfeea4c3c6e3af87756622f4f8d049657a7a4f";
+      sha256 = "02967f01fe3f8b225d60d462e4dd17cee0d031bd5171ec781d2938796b1174ed";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/bg/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/bg/firefox-80.0b8.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha512 = "3de7753956fcee2d2697f2c8a3cde18719621ae4c728b190d43b7e936c39543d6d6dae3ca593698931fb17b0270a19840377ec9392d1eb8bc591dcc7fc915404";
+      sha256 = "9b5acf3d80fc9f7e8ea20d0df282d6ff1b605fcd46a5a329a9138734df501035";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/bn/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/bn/firefox-80.0b8.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha512 = "ff9b2217e043c7cbba98f9993c729d23dea838e6f120c6adcbb4d03ff127484111ac2be2426de2134dc914aa765550ae62a464822ed31b24231fdfb50d295610";
+      sha256 = "e8a65769c738e9079d1aa9fda2ba74d21b96cbb76d4e348acba7ea1887d90d52";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/br/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/br/firefox-80.0b8.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha512 = "805d85cad7af9264c1e8e3534b6c6248573ae445410616a8d74402cda2273b68dfeae4d47240e0247fb29b56bcf6f2d627f4a872afa8eda3d8156f14bf8851af";
+      sha256 = "7c2a12900d2adfa765b4036e05875adbf59f70e4eaab33568799cae91d948b5a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/bs/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/bs/firefox-80.0b8.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha512 = "40f56cc3fa11d85b7e9e8d770ac5bec91ba5b8203e11a0cf898ef6bc94d58ddc73d6919e5c56a2e79a846393f28922233211784e693f3da63ae9315f3befc80d";
+      sha256 = "bd0e3d7b35cb845288f91eb1ae21d405f4dea2a6633897c30fcf56219982cd59";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ca-valencia/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ca-valencia/firefox-80.0b8.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha512 = "00dafbfb3095d7b76d1bf08bdbe5e99cfd207b39ae2a787eacb39ca412f1b2ea7c4fade4c99715f44cdd774823c4929d0efb65b40757f1b86faec738d4f11493";
+      sha256 = "a167e7db353adf008d28458aa24209175c29c1af92f21da7e999729a8ce7e5b9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ca/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ca/firefox-80.0b8.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha512 = "24c21262e498e8840cba3f8411d8f46108f736f10bba2a0c37ad9fab6e0bc773f38ac086334d3d572e19223309e9d106035d3458e05c9b7b8db237b7bb1e1984";
+      sha256 = "809cca0c4549e747944f043c96bab11e50a1ee6f4ddd6436ae94f85cb55063e8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/cak/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/cak/firefox-80.0b8.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha512 = "fa849173b8af4d6be6a499734042763d2ac532e213cb863a611e66e405acb5df7a51649bb1f9509ec637e15c055fdaac63e380128290623b6d3818e528a9c532";
+      sha256 = "8575e1572ff2872993aa7cc07ea1fe82d66830e80c779f742412128344afdc07";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/cs/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/cs/firefox-80.0b8.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha512 = "5b718c2dc82230343e35b8d45725e9f7c331cdf5716d973d671b7465e06d50e92e0a353c73c7c31c33cec1115b9332e2457f17f6e5fcf8f033bcf7e222802267";
+      sha256 = "a4e5c1e08e138c077a8cd5a3f54e3a7a1ebaf7ac674d2658e1c4cb10b4a26a5a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/cy/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/cy/firefox-80.0b8.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha512 = "7b037bdbe658d26c2ea75b8da80b4040b9a0c4cefc00784bb94512481de435463605c565eda38f0e958725adea11f09a9ec5a37d9513c16118214d0486db9031";
+      sha256 = "149d1bb8bcedcf215095629e71e530a58e0dfb60a13e72d6346db1200f79a882";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/da/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/da/firefox-80.0b8.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha512 = "9752b73c59784ea54a95b0bbf63123ebbbfdfb7d2742e3418a872982c0d8198fc0450b3c33f4fc569fcd43a633cead3ea1893057b6d7e8c6ab78632fad3555cd";
+      sha256 = "5eb27549c370ca89421a9d39bc5f33c948f85c48d67446b32281a54c50e12ea1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/de/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/de/firefox-80.0b8.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha512 = "067ad7a8a5a4c6120c1f1be2f9b4066f1ef830e3cb49ba850478d18693c8e4ab12d54a07036d23ddf3e138837320728f1fd6bbfffed760b530d8ab6addba6b20";
+      sha256 = "d868edc9f9831a4f8f196f438a1235339592a05086c3d5e4ed25714df36421af";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/dsb/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/dsb/firefox-80.0b8.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha512 = "9f4b6f73a3966a7aa60c168c16d88382dcfb278f934f3fa485e691a6b6af43a14f49395a3f8177b4ca9802275706b2cf701aba2310262149b0bb42cf6d096c25";
+      sha256 = "ffc379cbd30f04c1f7c78f6991414b9214ca2c23280655690dea42c9a11992aa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/el/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/el/firefox-80.0b8.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha512 = "43a0710f463542a1389e98b5993d1d1b35f443f0a0ccabca65ec5505d19c28311d91cdddee4f9c102b6f4a25a87e4c2c6ad7be89252f60a724c7af935e30f675";
+      sha256 = "a87721a1a6da5674d0b9b754d142ad5c00fca4274cca7d4d1d5e15f1e21be389";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/en-CA/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/en-CA/firefox-80.0b8.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha512 = "6717d9c590e5f06d3b02f643ad4eb27f48499ca759c41144aa5e0351e478bacc54163378faedd731042ce56ff5e8f55b2c6b6bde7768d3576b70a0abaf4c91bf";
+      sha256 = "dd04f6027f1cac7b5a34013ad4dfd3b0494f40f243665a80ae058887997ec299";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/en-GB/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/en-GB/firefox-80.0b8.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha512 = "320a50b2461d617962093c1d7eea94517c56a93d6857a4d4efc4183e76f24dc9320619f9c3143c9dda017ec5e8e3d71c730a27d532bd7141c750598edbcb0121";
+      sha256 = "d425ea90fa18877faac09cd7ba1b499cc92133580f720cf0481dd651f529582c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/en-US/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/en-US/firefox-80.0b8.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha512 = "ea7f210807e2306d3578c39d1d58ce12525c47cb9dff3198dc9153683f8e49229e19dfd9fcfd3d76e109cda4f92392e4f9f1fac2cffbd59e6430105ebfc705f5";
+      sha256 = "777291dacd6ada8f3777c63e0264d36f3477b15e262d575e60b9efc4ac5de30d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/eo/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/eo/firefox-80.0b8.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha512 = "bd1dbf20cbd4aadef8bafa74f308f097b5dce955ba7f2299cddcb1cc9cc9d8805e399684cbca1af750535ba0ddc939757f4d38331035e4a708ffe1c252da9c82";
+      sha256 = "df865cc147074318eb89c0ac4966b42aedd12aecb2a637bab18f6c231fafbb29";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/es-AR/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/es-AR/firefox-80.0b8.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha512 = "1e7a48ba49c4f96ff0d16efa3798e4254b7f38f0da8f51e62a4bb71c13e3f066a64c2c6d778da18b5db83da52684dc39067f6c765987d95921df2b3118de2c6e";
+      sha256 = "cbccc83c1e54a59716173e5f1a8e675ed1e3567a7a316e48b5bf83adbfe39597";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/es-CL/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/es-CL/firefox-80.0b8.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha512 = "9c7e6456459a4e2b6c7aba254afb145ca3c8efa4023f7e023c3cf326b0e0afd88149888265856e9f28179b686e1a458d453acace73f635a5fc8c90419e6fa043";
+      sha256 = "45b0243d594b5e8b4828746719b93a9388ab509aef54d03412292b76365f4fd2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/es-ES/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/es-ES/firefox-80.0b8.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha512 = "95e2d89e0f94f9ac95489f8a084d0857aa5339c8257fc1bbe7c7ecba31694963831917461537cb12199fda05372e1304e6820683802efc0b4ec02324194ec2de";
+      sha256 = "8eb9961ed19594381a761385af10bb0acd0bddc95166737a766b20de03e12e0c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/es-MX/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/es-MX/firefox-80.0b8.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha512 = "5fc41cbecc716fb024df2d13e9fffb2b656e18f47adcb496d3f8f3d61580f97fe801435240576f1403805151c7183c208425e83a2ac56373051f0e82031115ba";
+      sha256 = "d4cd439aa71e06af039922fa98dc33bd25f90c728faf09c6bfaab4bfefc6dc0f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/et/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/et/firefox-80.0b8.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha512 = "16c5eb3e9739e100dbce0eb93f209fecb11b5b024ed62f18a47b00927452d8823b77a14fac1788d9c4bca9062e85e724a78c39630694b0d692b3867e4f62f7fa";
+      sha256 = "dedb23bc1ee86909143b02b1d1601beb1dce38e9bb14ec8cf015e274fbab9e97";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/eu/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/eu/firefox-80.0b8.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha512 = "0352971bb2d43782052f20341f8fff0f6e919ced7909e6a860648e9772101e5f79bfdf0f912647d3593a0f6dc9dbe84fc193519c3b24ddcd13742f01ec59d1af";
+      sha256 = "8e51b57208029e32ae01c93724f7b2f25d896f732e6739d5537e770b386e22be";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/fa/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/fa/firefox-80.0b8.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha512 = "4856a0b482dd0676cdb5d46de7bcd96a4c9aa61bd976f3b46205019493b8933c78d7b253c41f4c2178e2f79b000dea8a9cf13e1fc7a31a5242432e1c9205d445";
+      sha256 = "1c332cda9a1445ba3b58ea93c614300f3b0679d3b32e9722068a554c92e3c8d8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ff/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ff/firefox-80.0b8.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha512 = "e85757478feafe009085ff55492913944d5d8490426f93cfca481cbd97842bc3c6dbf709e17c372b5b51b14fea3b057415120b6fe145de928a108c7464de9af4";
+      sha256 = "c99e29b5b31196dc71a8c89b66b0e34b9bca8ae630414190ef7f56133bd08959";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/fi/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/fi/firefox-80.0b8.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha512 = "f479d48fd6176baf30b0d648120669ba47ae2ec5d681ac6b610d6f0b0a617a0f259db863966625376b63a6b871d56049adc500ce8e8e0e27da3520a953bf1736";
+      sha256 = "98a35572115ce221a03215bc4a4347f9579a3052191d81f64af1455f38f47ff7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/fr/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/fr/firefox-80.0b8.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha512 = "4caa574275e5c0756ae787e73398f73a2702b36d4d3f49d3a3dfad8cda8393cef24ec0375d65d0cee4f41be8fc94b5419a3b613dda287d884f8e7b6317e3fe13";
+      sha256 = "34f0991b083d5a924a0e77000010d89f049767a86338db7f565a1fbc815216fe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/fy-NL/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/fy-NL/firefox-80.0b8.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha512 = "28d31bc60979c84d874f444555e6157b906b9d34399cb87608099e67127dc7480d6789b855c38615b075f5b07f8a6b222f04dd99e5690ae36d56490953135149";
+      sha256 = "157dacc021af4ca81590394c4dd01cb337f4436df1020718ffa424d43f023606";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ga-IE/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ga-IE/firefox-80.0b8.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha512 = "b83c50b728bb1e4febc53ceb3a4fb8a6589751b5ef77ef81f03941ff33d3e289c8986b501d95afeb56feb8f94be7d9a7b38e5330ca359543948d762e71402f75";
+      sha256 = "0e338674ea0ebb68052aefbb33c8eadcbb0bd71c78fe9bb7eba455e7c58f1a5d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/gd/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/gd/firefox-80.0b8.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha512 = "e1b2535e07364a29cedf36047b99dffeec8937b775a247b605532376b3a43a8c0037e2cc9a6a461a9b68e00eb67ac1d337bd40ee7110ce9890cf862dde3cfb60";
+      sha256 = "6129a4db1d2c0b0b2f250ea2ef30d08cf41da50c1d2401a7464ec4f6b8cbbe76";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/gl/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/gl/firefox-80.0b8.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha512 = "776e2fb5cd75a8f5dd1e6340af21356141a24be87eeb6968ca926cb3d3aec1b48adde0881a7e4413a83fdf45f5caa3e829c0ca1754cf7176eebf2b9e3ccbb02f";
+      sha256 = "94ea69444a49b0ea79f22d805963adff4a7d8fab8321e415fe8b4682b489e7b8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/gn/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/gn/firefox-80.0b8.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha512 = "bd3bb0d416557c94a57c8b364ad08ddcc1885bf55a2435f5a2f74f5af1607a828795fc68027a470cc95bf46d553d84eed1c0af3de1ae9d72546587b486a1bafa";
+      sha256 = "e3e6533130afd6577b8f1d41f66c2b16d3b385aeb398cfb211e7196073d7ff9e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/gu-IN/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/gu-IN/firefox-80.0b8.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha512 = "b789f7adc37302354f797988e052957fd95f270dce838352636a367e03475ea92a740ab5ed49c9561eb5e90b106e38a767d6d3b4e8f1b3f07db7dada400b6aa6";
+      sha256 = "25ab691be04561a2dcfb2185fe5deac0b6e4785f3cbbed871b8f51e370429b3d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/he/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/he/firefox-80.0b8.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha512 = "afbb11407ee19f4d3846673c451848ebd4efaf5795d1f864871c57f7e5d36d26e38c7107e326c5843109f89a315cbc38f25df1622f97d6c355f824d06986341b";
+      sha256 = "9ca2569009d5707c9ee9051173b24c5f531bb9c3aced445bc3bc01fe99c7926e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/hi-IN/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/hi-IN/firefox-80.0b8.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha512 = "03c32d07601cf4b98d02495baf97b70a38a8e82abc8685ed507f0c9abb907468b1e8b8403b2272c9c06ea8b0cb020bb330f70f8abe5b5fe0c757fed710c912ce";
+      sha256 = "c39d4070be5517f8979527064b5553236d2f1f15eacfb3fc66fe4f7a2a063814";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/hr/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/hr/firefox-80.0b8.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha512 = "47c923096c22e509063298e9229f3b74df60142aec4296d7008b5e49c69ee9542915e639b52ef8aa65a7ab9f118d1d23117874a3b717b37930d8a988386b6ae7";
+      sha256 = "c6c37633f91a675dbd33180761542d8f1af950e876dbd1635f73a0243e2165ec";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/hsb/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/hsb/firefox-80.0b8.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha512 = "2e2b3c390ad20fef9860c4e3516a32a66b091e1f60a0dc71916172de3a667cdeab3d712f8f2a5baef8857da3d9211fb7bea808b975cf3cce1920e8ef2d73614d";
+      sha256 = "4bc5975c97a98c4a93ffb4940b2f0f35670cbc9785f5fc07be5d387c3403fa64";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/hu/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/hu/firefox-80.0b8.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha512 = "4c5e5fc5e859751cfdbe1eea6217b92dcd3bf2a30b4967965d0242de72deb6d497823b0d17c170be1e7113a15f9d607a6890a5283c47c254ef2c94022397b977";
+      sha256 = "5c76f9bed31bd9e906b0a044b67113f1cc6d91ae738d3c6e1c2746eeccf8854c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/hy-AM/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/hy-AM/firefox-80.0b8.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha512 = "6953bf0ef7dfb0b703d4aa1ab9c26b85fc049c12a04d669121e9e98005ae870d92df9ce16bd567aa1586d02162ee94fd01800d4d291f5a0c1b6e0cfdafd89c8f";
+      sha256 = "40d1896dd1763f035ea5f626430e6de77df4e0c83f3cb4d2d9c2b992379695fb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ia/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ia/firefox-80.0b8.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha512 = "e7bb763c2049dfb8081384059313e977ca44eb3d147caa2fbba755e288e45d6ee5e47b6aef1267e23d4e8c6a625f9dbdda7b938a9183a7012b3d943b857645af";
+      sha256 = "5c8a0451233c3d55d764a3ab073ae25b3fd2125aae40c73968672fed9b2520f6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/id/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/id/firefox-80.0b8.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha512 = "a4139cd488a85cd70e595bcbd3f8fce96fdebcce2c61c04c06b70ea0f2a99348ab69590f1ccabbf803798952fd436a30bf6c103beb3006ecbd14f70d6c3ecf93";
+      sha256 = "7328e7f45205c3f9109eef8d7e512f41dfaf179eea50233f63a549efec0412b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/is/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/is/firefox-80.0b8.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha512 = "e485e4b6f5a8ae5fda9be8ebcdfa102bad2c55ccee6d9dfbaf2778f92c68e68133a26a599998e134314186b296df68fc0dba7c849a109f699d3198a2c5a31001";
+      sha256 = "3f9e92d8218acf6da2ca09bda7544b6ae6d99d1ec2398bd3281fd28aaf3b7845";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/it/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/it/firefox-80.0b8.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha512 = "032e3e3b854a0be7ace835d71dfa864c0c84004c87ff09314615e633d64011f8676118ea73797b725bcb1c1e079fe632e16c15eeedf78602201c7ed371222e2f";
+      sha256 = "947b2947b5b33c3d62645fd2a5ba7e02eac525bd3fdc511f62881b61c77a1eb7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ja/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ja/firefox-80.0b8.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha512 = "dbdf163abdde2bfc22f5574d2be4e3daea52c7cca394a9b0f1f1b8af19c65593383a112a2fc7dc55e224ea6f5d63537f03be8d2cf02fd3d3566963bd0d51d204";
+      sha256 = "fc82a3d2b816af47b8dd632d672135f7dfa3016a554c6b1840129394007f25da";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ka/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ka/firefox-80.0b8.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha512 = "2cd1446890227f1ba4d7f50ef778731b350f694646b6cf33e1407325784b071db4bc2fe43eeefef2ed98ffc5353538d42df48ff8e546f4495a366d5acbc2aace";
+      sha256 = "9dc51bcb8d60327d5f893f334a54181eb6a4f34800ca9f15671fbc833e8a4026";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/kab/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/kab/firefox-80.0b8.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha512 = "87c131e32ad46194175e8ca8061cc1399813b2259c9c3e83e612c74bac27c9364cbbc63860c283eeb8416e3b108297ced4a1d9755c0a273c9143cc6b468f5cbc";
+      sha256 = "bda38d2522f0fdf8d1d6903bb11b63dcd242684bea412f9176c49fdf56b6d5f6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/kk/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/kk/firefox-80.0b8.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha512 = "6977a2478623dd8963121a1cb3da0a8669d1cf17357ed85475f61384a9e1ffc2c1b4286b3d7150386031786e365c33c188cded495036012a63dcf2db44e19d50";
+      sha256 = "d89d7aaea34b094c6a452c3d566ca03f42e4a1dae4db26d1dea5bc2da49d808d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/km/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/km/firefox-80.0b8.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha512 = "4893ae9bb4695b227a6906db91c1df7997c866953ae3960a334856f9a1c99e05937518ecea2e59c5bdf12a4ccd3e644ce328e99294dae53d7a9d9a9f5e2e483a";
+      sha256 = "932469479db43ced4b9ee82a481ef00adb5808f7d2e859ef7564e20cd764417f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/kn/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/kn/firefox-80.0b8.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha512 = "eb78a32ea736f139fe1c5cf0a1ae59df33272c6078e643a571968d0a5e4f3801c280aade938a5a714a7695700dbd2db84116f6e5ccbb7362d394ee929a2d9efe";
+      sha256 = "80564390296e12424ad2fbe1952397cf7b36af4e9dfc1fdcf914745aa01a5836";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ko/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ko/firefox-80.0b8.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha512 = "3bc572b109fe9c5b14cb94d7705ab7fa972a99e914eabddfbef4901e5be9f058ee6412c59b2173fa0620166612c982ed6bccb1f4fd684189845a5446c93364ff";
+      sha256 = "b3f091451469caea3f87f81be1da8d2e981327ba36df12224f8466ab68a2e9ea";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/lij/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/lij/firefox-80.0b8.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha512 = "9364ab431f931727157b0722ed021736bb8a2771a01fd8e12e616c02d7ff8a2ad23add11ea720b1d462e727df51c985b5fcad908307af04ffb57af5d25674c24";
+      sha256 = "becabccd189bad47d9e716889698811f39c0833474bf48df2e4f2792b67bca6f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/lt/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/lt/firefox-80.0b8.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha512 = "c2ebacf0d93c38d51d16cda493aa1152f8a682aa41b7f6626422596f21038ae16d3419873dd253f60f59971486568f3a71420df4d2c503a79aef80ec413adbc8";
+      sha256 = "fe38d20e2cc294f3ae11df9ea7d34849489b1456355b7d110f8639649d5cd944";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/lv/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/lv/firefox-80.0b8.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha512 = "a1e0962bd4a10f1c1336650e97ce79fccfba6e752e2929156f60ae10a9b3a9e74b9e2cb8c265d7b1c242b2a34ec52f2368d07777bf7c687dbdd7914daae55c6c";
+      sha256 = "1f6b7bf9f9b1fb0eeb80ef4a9ff280b042f9f524edd88b9ccd0500fa4ab40063";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/mk/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/mk/firefox-80.0b8.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha512 = "e6b4cc5658ffdcc1a52979845abda4870917f8d036588daf1c1db93645696c85cbddc8a8dfcdb6f6166c43276ff52069c3c4289db38e9e98e7592b0d83fe3d08";
+      sha256 = "732585681ae095a83428cdc32c4277f98861c73583c6b12fb1ba07f0265be8ab";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/mr/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/mr/firefox-80.0b8.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha512 = "9d4cad2c1b192b199ac9a7c0ba233c0096546de7be31a21c4ee5789c82fa8fbaa5b9c5a37ac4001ef9bd774b62f57d33aa5760fbb0ee6ce60000f256e91f7054";
+      sha256 = "1aea289a62cee8243f69bccb02770b026ed183b6621bb99f33b1f5b4c8a5b667";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ms/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ms/firefox-80.0b8.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha512 = "56d8a03ac84fab825c387ce84a45efd656abae43f9ea965ee45a09b417bb2634ed1f7fde0874294cb09ff3e3789782df7db19b6fce4598073a81854a91a6f800";
+      sha256 = "12726f171b6d5a831898fe0c6379949860e8aa899789c2dbff7df86281549076";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/my/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/my/firefox-80.0b8.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha512 = "a9768618490611f5073438986de4265bbc7bf3a2613f4314b78533430d1f830f83b7929c74d431d8bfaa2ee9d5ef64b189695ac838c52c5ee6dadde88d3a3606";
+      sha256 = "4545ba6aee4231640d4670e08a5bfb71b0cae5faadd5bd3d9705b37df04f5dba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/nb-NO/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/nb-NO/firefox-80.0b8.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha512 = "4a413a17a3796f4ba4b0b783c4226419f7fb800ce4965288129cae2f1f087a11226376764afe51e09c57a23a85df762bbe833d167a13b6c93c22fa378f0ae47d";
+      sha256 = "1b741c62a58ac9a0ca845fa942ae169576242a3d97018439d85c9efba09e41ed";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ne-NP/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ne-NP/firefox-80.0b8.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha512 = "899e26c0ab61e7dcd4ba97b4df082b13fd93d07c22e849a02dcbd887f870df0a6de4b05517b200a4917fda6f7cc83d7ff603d8e0bbd96a39ff016adacb669c32";
+      sha256 = "5f44c3bb3351ded2b7f5ed216323fcee990175ef55b34a32026a2c6afa280ebd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/nl/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/nl/firefox-80.0b8.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha512 = "59b6885bce4c6cb95288e1338d6df199e8710313bd569dcbfa2cd2029b02bdfee9e28d4aa11f561765ef9e51d982a999d689935e18fbdd0d60d8ec25cf4544e3";
+      sha256 = "5da24260eec62457572431b2667eba929876c68e0122f589cd87c7df3c364e7d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/nn-NO/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/nn-NO/firefox-80.0b8.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha512 = "40e62963d39f0b23498a438c3ad184d0367cdceff9a2674e565153c70bc450992d11145e5f651bbb53f389d5a74eb3d7413968c608b7d7650e9d553ee26d5cb7";
+      sha256 = "3d8ae8f44295cb55a3c148510922e5e74b0ec8b69333fc9dde04e6f05d1109e4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/oc/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/oc/firefox-80.0b8.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha512 = "3ea480ff19ffafa1812069ef7dd1ff1852b10abf2ec4cc094912173937b82c744f29f1480de2e95dc65ee1062a766f0ec33d234e3e3d714f49972458a09705f7";
+      sha256 = "913bfa234f56906bb48d2410ba8bb400cce92f6f960d7e1557786092f03aec30";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/pa-IN/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/pa-IN/firefox-80.0b8.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha512 = "8a13731a6072abb0c34241f206898fb59d91dc26eb3f4c0627d2aee2e6a53fba8b3735d8f5f2b36dddca9609ff4c1d9c5d441c350e9164aecc2ce9a69b1f0c5e";
+      sha256 = "f6c276a03f658fe7f62b49d8ed4e7ecfa14c9852384b224b732bb80d6d0421df";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/pl/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/pl/firefox-80.0b8.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha512 = "853bd27d468111e512907ca3226f399ba0be48c3332836342ff15b4a8bc4e3253e31fe91a31f462863f9a6559273ad6693f1bf65a1763178aa3488185779da91";
+      sha256 = "f1118903f6774c4e24cf2a01238f0cdefbb137e8af829dc403b13290bad64124";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/pt-BR/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/pt-BR/firefox-80.0b8.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha512 = "d70bde7178c6ce76eedbd8a8e33617ddc7e7271aff41afae4d190e5f28bddec2094c1450c3782ae7dfe8ea7a6b844d50602e27294454946ab5c65a44b3553f9b";
+      sha256 = "e421152016cf3551bc66382559e947aec03698090ed797514a35bbcee07229af";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/pt-PT/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/pt-PT/firefox-80.0b8.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha512 = "6e8e2f7519e88809dd38d694f5a293379af1529afe7fdfd6f19e09e240bfd184291720ac48db382308c8d79c38c955916c57bf88d85ec2d220de7bd872954f43";
+      sha256 = "a4da74dda8c2641e349cabc2360bbcf4ad531719d3652c96a8c9a8f2130794d1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/rm/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/rm/firefox-80.0b8.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha512 = "928018a321f1c0b86d13c092a5390652fe5d13bc63ee19274b6d3a107e2c5157fc969683e59055a13798c5982c75e02ae0e5cb40f5c94203a052c7898d1ad607";
+      sha256 = "578499fc230856e300a6774a8ab0b1d58c1afaee1e0fe6987ae16ea033cd6beb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ro/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ro/firefox-80.0b8.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha512 = "b2fe56c56cb25471fd7cd40d9fbdaad10d25438b94fdffbbd81ab93a7340befd1678d904a3629a28c8db6fa10d969243c27b003817ef3c9b38030d6f43f39f9c";
+      sha256 = "967ada36c6bfb6bd658493417f5f21e1cad56afc40081463072eee40a964f809";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ru/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ru/firefox-80.0b8.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha512 = "bb4745d61f87f6e7acae842be9068a7f7b9d9da3c44d2d32a45c4d4a0dcd127e4c98bf5c7cc9ce03c9dd1782e4d9d03f8c1c82a6008a2b9b93b5ce380020d98c";
+      sha256 = "58008daaf760fb6a9202d10771764cc3c46347b905aa622319b0631d833120e1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/si/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/si/firefox-80.0b8.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha512 = "efa44e8a4e69d10feb35385ee01b171d08c46feffea0d74ea8ee9b7cf21a839b2cc43ff138752c50ad43db1923b264495b63a0d46b5b2e579c3ba61b6bdf3acb";
+      sha256 = "c599e263b7084a69ea0730755483fdd6334610e07188c5c9f06b4be6bb7f073e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/sk/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/sk/firefox-80.0b8.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha512 = "3f9e63ad4c1e8a4f6bfac97925e189c9b3888c2e952c1801e4fcf935a246a294f9b088eaad6c18bf7dd93c136579529605bad6bcd95fa7b68c89a0fb087a44f8";
+      sha256 = "a7170c138b30450e5b56ef7d5460f549288488455e482c8a89ea897dc9607f73";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/sl/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/sl/firefox-80.0b8.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha512 = "79d4a1aed3c9afab1c1847ed4365ab7e99d0982fdaf09d6d9652b9f95ce3c32b123b2389a1a9d6486e6141953d25c06fac0a06156bff8c2eff6e295c8f79c28e";
+      sha256 = "f7dea114d00831e71a6940348692b6523174a9fe099dad3743bb69f277cd2d7d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/son/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/son/firefox-80.0b8.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha512 = "5faec58c78ab2acb1fb5f3aa3aabdb9d5ad9df6168215f818967bc2b3575aeee1428ee8354aabfb36b37ed66137f8ca6b2ce9ce5fee0075562c618fc3cfba9e8";
+      sha256 = "9d9917d01601e3de913267d1836764cc10acb09363b05049867d7069964171ad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/sq/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/sq/firefox-80.0b8.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha512 = "32c67a6ace809219fbd51775c421fa6a68e29bef9e908678b43b53e1bffc85d8bf773e2a5b9a00861b0a437d56ee3ad5ff1cd1e84504a48816cf74a69240b851";
+      sha256 = "85c34be5e061157f94444cfa07d8c8c1768aea4d4ed29a63d46b13bbb5d80438";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/sr/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/sr/firefox-80.0b8.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha512 = "ea3aff47c7e428a445aea0ebd7fa98e8de3a41dad208cea39adcad84327d2181b862ecd977e9c7a6aa8fb21cc99ada9698be67c86c5a931b1b41edafb744450b";
+      sha256 = "15a348fbf5fb4ae31e0a33b17d866e40b655b4dd788329d579afc82bb5ed86a3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/sv-SE/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/sv-SE/firefox-80.0b8.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha512 = "dcef09b5dee93167dbe6bc87d1fbb6f0e472db6471b99815d38532f6d223ac7a12183b323b5e979fa7943e4db1fc25b48760caf4540afa111f9dfd0958568767";
+      sha256 = "bb9bbd0edb5934f5d33d4f8db92d1e039f8519c0c126f5156f88d4a5be864902";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ta/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ta/firefox-80.0b8.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha512 = "598e3169673ad39832fea1afe0c141070795d54636846b18fd7ccb4a9e66575f779789553550552f9a9786ebe691afb10b81f0d0ba127242827e2d11f941c115";
+      sha256 = "1d886bf18808d2dd3d6a95e5ae377c24be50f7e3788bf2c37c42606e2141d3ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/te/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/te/firefox-80.0b8.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha512 = "a1501c3fe46adc0d29ea098aba2800c71f6eb14b33e44a367e33f5f9c705357cad8445e0980cc758102eb7c01c18a79f3007cfbd8d1b9c1ae9766e0e793ec3b3";
+      sha256 = "72bcbe4f087f8ed8248d5056adc786d96982a87fb79bc3e83dfb9e9f209211e2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/th/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/th/firefox-80.0b8.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha512 = "1bf0876237e5c8eea321970f86c3878770a3c54c7cbacf67bfb75904fd270ce88252d9844450086e00758cb2b1a0e1db40394246cb9ef8a7018c76bba03e3850";
+      sha256 = "ba0d8e25d5d2de631c05b9aa7317eca67dfa12564e677f9391a7da61c7630ddd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/tl/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/tl/firefox-80.0b8.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha512 = "5a0f3514e196803d7d6062cac1ec75342ffb49155624a0035eb49ddcaf829dfeaf37f7e26997b31cb85b9e43ee21fca9f7129ab6bf4a065fdade9bdb06573628";
+      sha256 = "020791c52209fe806aa92f7945724ac1bbfc5554ec7827d7c320e1cefb5d6e60";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/tr/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/tr/firefox-80.0b8.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha512 = "8b81e0479b60cad9b97f2108745445f584986fef5521c9ab88bb6ecd48dbc9a989b906122fad29c755dfbff859719c1c9da34452383dbf027d69288a32ea7af4";
+      sha256 = "e803849628fb4a07aac2b23d457a8d1f954d2270d989fdd167c82e4ff407dd23";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/trs/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/trs/firefox-80.0b8.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha512 = "9b3d99608d163d860d0b123eddd794a2d3b44866e6b92bfc0f06c05fbdb59ebd1ade970850e5b1974332424886edfde04861abd1d47868e60970826846fc5b31";
+      sha256 = "8aa74977fc2ae7e85150406541673b71b122f10a79762ae98787f9196d6e1ac9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/uk/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/uk/firefox-80.0b8.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha512 = "f056c542bd5b83bdfc7b2a8d7234d40b64e88063208ee4b0b1b7b27017ede66b8acbbaa9d835a6d2667a321d6b965002bb87b68e5aae0eeae27aba8dfc87164a";
+      sha256 = "7489d2f06cc74a759e6128a9e1ae19305ac8d81f026e8d16fce30dd8c23762de";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/ur/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ur/firefox-80.0b8.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha512 = "a36a8c25ebe88fcf086fd476619a657b1ff26364133d05b32bdc13cca81b61009c4f1afb760bae961942ed1396b178c2eb3cda9add8c6b502353a2ce8c486cd0";
+      sha256 = "a0e924a25bdde879856fbf53fc0ca3972a3f701338079ef408694c0f87a13aa1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/uz/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/uz/firefox-80.0b8.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha512 = "d07515f921caedca18f7661fad83ac772369a2f7f99d65fb827a0236818fd8eff211dbab90aa9525a6318374b1a2f84d8099667d1957f21c30e9dca35f97a111";
+      sha256 = "4603be13c80926a5de1a2fac56d433798c2e2415ac5e769a7d4893b3eae7ec86";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/vi/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/vi/firefox-80.0b8.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha512 = "de51d63ce79c249496222658ebbf53fa656916a753e6305d36047a99879b25e17a4ea4ebce1ccd07141cb507a7501362d0bb556aae97d115686d0d38db7742ab";
+      sha256 = "1f9aef09fd0707121eb3335d60bf0b3b06554294594f45158cd41cd37f0beb07";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/xh/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/xh/firefox-80.0b8.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha512 = "b01037ce68d8147dc79aeb0d540fe22a06d89ba5cf804951d16af3a896f592a00be7519b184de2f3aca7531d3026f78283b9f6b409c24031faf4859e92bfd1bd";
+      sha256 = "4c61f2ca3c4ecbc5b6a71edfa540400633d689c2cb042030c2291117443ade65";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/zh-CN/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/zh-CN/firefox-80.0b8.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha512 = "0e6088a9b32ec76410fc45fc1433c514b1deb9fdab7f5249bd7ab3e1db9e0e5ad4294bffbfabf2f665bcfbedf8234ab64192ee50b34259e4133d7d035f6f4ff6";
+      sha256 = "b24226ecd5946ea1320dd8ceabcf5402af96c7674c45d058b548aa212da1e1aa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0b8/linux-i686/zh-TW/firefox-76.0b8.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/zh-TW/firefox-80.0b8.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha512 = "82042857b33d2dd642c8d6404bb864c79c2ffd91d2f8b342f39d9389e63ca59738b0083f192b607a391cf2fadac056760fd07c2b76a74172118eb44ed5724a1b";
+      sha256 = "9765b5e72e0e2bb22b080d6a9a050a52fe003771e172f4865948b0c8b0000ff4";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix
index 71940c1b33a..6f5b18bd56c 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -8,7 +8,6 @@
 , dbus
 , fontconfig
 , freetype
-, gconf
 , gdk-pixbuf
 , glib
 , glibc
@@ -27,9 +26,7 @@
 , libXinerama
 , libXrender
 , libXt
-, libcanberra-gtk2
-, libgnome
-, libgnomeui
+, libcanberra
 , libnotify
 , gnome3
 , libGLU, libGL
@@ -48,8 +45,9 @@
 , gnused
 , gnugrep
 , gnupg
-, ffmpeg
+, ffmpeg_3
 , runtimeShell
+, mesa # firefox wants gbm for drm+dmabuf
 , systemLocale ? config.i18n.defaultLocale or "en-US"
 }:
 
@@ -87,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" ];
 
@@ -103,13 +101,13 @@ stdenv.mkDerivation {
       dbus
       fontconfig
       freetype
-      gconf
       gdk-pixbuf
       glib
       glibc
       gtk2
       gtk3
       kerberos
+      mesa
       libX11
       libXScrnSaver
       libXcomposite
@@ -122,9 +120,7 @@ stdenv.mkDerivation {
       libXinerama
       libXrender
       libXt
-      libcanberra-gtk2
-      libgnome
-      libgnomeui
+      libcanberra
       libnotify
       libGLU libGL
       nspr
@@ -134,7 +130,7 @@ stdenv.mkDerivation {
       libpulseaudio
       (lib.getDev libpulseaudio)
       systemd
-      ffmpeg
+      ffmpeg_3
     ] + ":" + 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 c2f92dc1e3d..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 = "76.0b8";
+  version = "80.0b8";
   sources = [
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ach/firefox-76.0b8.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 = "0c2e0175eb3950098d7e13352d037f00b46edd7094e2978ed568d4bfe7c046b533d4c5473be6e28f84baa6eb3aaa6658b174da23409eaf34841ab7ac4aa244d9";
+      sha256 = "f9b686c12733f6be1c96fcc71727f55e9c79f417df64a4b703c7fadaaf3a85e6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/af/firefox-76.0b8.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 = "3a10b739bb0ace8331190a9bd045cd4de78fa81fd18d271903db6a29828da814454751ff56dde9181786c81ecfc373a1bae05701f4982f5889dd6007ab2bde59";
+      sha256 = "dc73e323741c3612607812878d24450b0b5d5274a8e58d25a9c3957d457b2431";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/an/firefox-76.0b8.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 = "3a4d769aa9b123fcc5080bc877b6d29444926c5c7f45665e058bf7c4c9a7c87cd3c604eb56fb2a25b4a62a84360a3b6df51d123435f23b921b03e1bfdd65ef5a";
+      sha256 = "a84e966f8ac0373f63c7fd76148e16c56af645bb9b83cccee91e20065883f92d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ar/firefox-76.0b8.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 = "7febbf4429c33bdca13b978610e1f996d99e8db90290fa4c4ae5dded909d8fd60e416de328eb4b68b07af6af48b079232f9f85f64f30c751c2f877d7756d0c67";
+      sha256 = "9949f976617961c3853fc6e4596bac9a7c18d66b72df22b9b217dbccaea6b0c7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ast/firefox-76.0b8.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 = "6e6989857228793a3e3492a6f42b6c073c7ea58a9999daa5d88b465ecef5a0123d7607ede7c7297038747f4f0ea1c5fee70c2ff6436c6b7b642abe3f9a72be19";
+      sha256 = "89f277e215e11c7efd270c6f0952292db5c85057a50b48a3753fb16c1322587d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/az/firefox-76.0b8.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 = "391becbf14940922f7a290840519af8ea5149058ae420738bb2bfa80ee057c16c04910f54660ee5eb3bc6067d6fd3b61053464eae4439eef708379bc220e4416";
+      sha256 = "44c84f6e00f5672c4f4b5d26d727da4aa0e8f5bbdcb4ab484be4015b5ea4bb55";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/be/firefox-76.0b8.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 = "c87ec6c520c9b47541e0b6ea2bd6a6916dc5a41e03affdf3caaee7247a8ad51925fbc7208725033518f03cab72a159cc5a75076bb9089ecf85210686cc704a60";
+      sha256 = "cbcb4dbf931214f01167705529ce410935a378ddf76f32c04a16a019a04dcec6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/bg/firefox-76.0b8.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 = "f50f02c10d5c14756670aac99ccc909bcfc62d30ad7ab4ffdfa2870ded4b97ada7d21a78fe94610e01a448231d5a4b1decee47caf467978b667cd65b31d53dc5";
+      sha256 = "6af931944901fc143d9958538aecfcfa5c8604aa928dcad7ff4062e4752b2861";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/bn/firefox-76.0b8.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 = "f81e4f057defb28b57e218b74d115b140f595f17b40af00cacd4b46db1f45790e34a222c61551e8f9387c5dc505423f451904fc82adb2e18908786ca0e4a2ffd";
+      sha256 = "5f44e1a8abf75708aed3c73c217ac6aa31520c32eae8c6a2c28838d4591fd779";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/br/firefox-76.0b8.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 = "2834602a86796ca65d278ad7e13d7e1722ef6d375d294d6623256c427eaa60691211244bc10a22b48c9831f832a9d2e948e814962464beaa430962e862000c78";
+      sha256 = "7f345832f046770ff20457c902b499a6d2d3650e3cbad696d0a0ce81371b8710";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/bs/firefox-76.0b8.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 = "f4efa6b86bb314f850466d81e8fcffdd6b1fe4f8a372750edeecfda2fd5feb172251227ae8ead7d79bae3f3757b948e45200d779d8368fabc980ae73ef8c7b68";
+      sha256 = "539e441b74c8897113d8fe36076473f61cd26f9be24d5197dfa8f92a5ce68169";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ca-valencia/firefox-76.0b8.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 = "ec51ece975fa6e3fd4b3fe508c5ccacc62dc340562aefa8e22a74f2c818bbc81982ebb5d9b0f85a460ebf75030e3d25e084a554ff3ad8ea142a4bfd9b020ad96";
+      sha256 = "8f8581a6888dbdce1d357e8a289a0befa20e1679a8cc7bff13ef237bb5498ec9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ca/firefox-76.0b8.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 = "84cb922c3b7c61185fee0f08d6c6123efad63730a8be960b2087fd6074ed3486c1ead7081dba0a6cb0ea1799e14cd9a32f3690c31017e5ce2a3d2875d0368750";
+      sha256 = "5f3b7553a62465e18e103ffce48f75cc58489349c3cf966e3ba0138ce14d7b8c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/cak/firefox-76.0b8.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 = "7245add38d451e6dbad55140d9b2aee182df94b4285645ded8713f3c2c3aa4bf4c602a3f9a0a5f39ca091561cabde58aea18be3fe4247c53c742d03dc43c9858";
+      sha256 = "a1269157c6ec005756c1e0f0bbbf61a524f03b4c69022a2c49661c0375a78839";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/cs/firefox-76.0b8.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 = "883a2c0ddd7cd826e6bfe6835c8ff33c135a9bc77962d9f1f67d49a0928ad9172c07974f0681769cb874ae7db4f6a1a96fbc78af3275262cffadb744ec6527fe";
+      sha256 = "15a26b351b40964089c8eed80fd5cadafd66ef39abbf19ce50a8b7ef5bdc661d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/cy/firefox-76.0b8.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 = "93b8379294b7a6ca49aa8b454f64de1f2df3db75f47c4bfe6e11e9317cbcea41da1ad8b73564a273c9343b4317329ee96f1f1ae7dee4a61f52b3a26e5790fc0c";
+      sha256 = "8400fc3e6192f2095d4a57bf354dbeee1b771a8aa61ab0d865956cdddfafcaf6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/da/firefox-76.0b8.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 = "6233c7a642883903c1e8054c6508dbc5cee01a5ee08baadc12ff388cf3353d879968a6cad59ea7458e93df9e1520e2a938a30c04b0f2e3c903857275bab801f7";
+      sha256 = "83c7818e65c32723c2bd0a4f65a33f19941fdcc5d84055cf2532cf8c4592020b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/de/firefox-76.0b8.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 = "41febc39a7ade5843b45a02950ddb1485fca32abd0a0bd8f8e017cf8f1503d4b4b20e7dfaf89e8833900aefad44f5119ec9c8d73f5f5fc7641dd3ae1e5d794ab";
+      sha256 = "589b9249ffcff23c388716c24cd09baa8b309d771b97f4dfcf9c979ad9a3342a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/dsb/firefox-76.0b8.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 = "3e4f96d7653f0cc4bec4de6c3eafea64c309f8dd88d54dc9fa27eca90c877d1f026b552fa755c0742a8537bc65a2ca831fd57adccda0c3f5573df95afbdf368f";
+      sha256 = "df57cc439fa74d93921c7c1265b7335e23c0df545e78eccce34e06fa528e75b3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/el/firefox-76.0b8.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 = "3fe9b14954d3774a389deccbe7d7b1e81c3f50f1e7b7b2e92f8c5bd55c3f4623f99f518e3fc8acf92473dc4c05e2ce316c370aa19d8d39e970a1f99bb9d221c6";
+      sha256 = "7a2b0380cc8733e7d6eb5adc228fd543d8459d7b7d9ffbcb39b73dffd395e5de";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/en-CA/firefox-76.0b8.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 = "d57062e3ca388a52485fb28eed924376f6decb324ba0cb9e9af2583f10447a24d129b1c0ae17dbeb9bcac829a4da09870eac22fd8aa378ffa2ca9dd2090292d4";
+      sha256 = "6e747524fb05aa987e0c24b21fc9ab27901f1cb205b7cffa100d5bdb7ba130c6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/en-GB/firefox-76.0b8.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 = "62d571af76baad53a699a7e80dcc7c7e60ba87aa3d6325cadbac7230b710180dcdd7ba058b7b502303067ee7fd590247d08278583e188394a1873ba9f5f23b2c";
+      sha256 = "4e95f0c08c44e6d4830abaf9c2d25b10e63753f1dd48e192d4464a03b82a68de";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/en-US/firefox-76.0b8.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 = "b934ff6b86c84600fae27cd006606b26cea62a42c8c21bdc5472b776f95faaa8604acc9c7072a8ea5aa6bc7fee6a62375b75ca4b34ae7ad83d16e074445ed327";
+      sha256 = "2b75be9a3961e734ae16e591c367e76828e9a3adc458629db69fe5fb32a8b476";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/eo/firefox-76.0b8.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 = "7135b45b7424650933d579778130484b877766ddc7db83a5c4bf2f7faa662b127d475126d5fd67fffa3406f637128ced63693946e9ddfa4d33d57fe1396f3fe4";
+      sha256 = "2fb71c60605c4c56432c262f62d72509d520787a7e86a45b496a68e55d08823b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/es-AR/firefox-76.0b8.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 = "0e66427df853ba3ba45880e45f466349bd4805812a879e6f654b2a02d4bcca71de27578140e4ae301b3bb329335453ddf3a756be6f49b1e92ca06abc58ff1654";
+      sha256 = "3aefd418e20dbb7ae0b8aa87d15be140b4ddd7f6572ae0ca691b98f7f919361b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/es-CL/firefox-76.0b8.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 = "36ed5cedcf9a2a75b19de328c5a5d89f07c09e9da728fb3431a31781a5c522b5a53a03fa5dfdcb079ce140f5bab3d7bedc79c0e3c79e3aaf672b5cce3eee2b1b";
+      sha256 = "7d650204f7f717cb39b218919b3654db5cced3fffa4d06fdcbd4eba5cea1263b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/es-ES/firefox-76.0b8.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 = "616477226b52076c86371cf1f1a548c2c95112685ab0e4b9835bef7b8bcf6c0ebb839ed3cee2f348cf26d990bd88b2dff46e20e38938421a6670cf66a82ee3b7";
+      sha256 = "5870182df6c69538ac1eaad0e61f580165e2e916cb76bbdee8b659a5a58dc68b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/es-MX/firefox-76.0b8.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 = "87dcfd61c3e02515f772e02b182fdd465d34c79dea55d5fc125ad6f32e504c22aa3d7cc6f23a7b2905dc4f2fb73106ecd7c662758d218349fd6419ab889a98f4";
+      sha256 = "166dc0e61759c879737a10c3b709e5bc94493bfbf01a7997c2d38b48254d6af6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/et/firefox-76.0b8.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 = "81221fd364e6ba5e6300e93402dc727f9640b73015060d5a3fcb3d0d60f8fd031bcad94c9a5b35157bdb0ee2671fb2020656916fa2f5218d6e5cc1745d47629e";
+      sha256 = "b8b8ea33ad920876b36abd8d35a61f01548c5a482c7eab0998f83f066bb62e27";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/eu/firefox-76.0b8.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 = "58b0849c7df2d8d4cd5bc1e076728678b85adadcd504978356e6ac2810a4b1b9d2318e2ad9e056fd9598d3ddc829c16a1ab89102a11d17a8742021d9c8b5e293";
+      sha256 = "255637aa99002ea1f353098b19787077501efc915a74c2bc88a6ed6c05f12079";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/fa/firefox-76.0b8.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 = "9f8db5e7054f377e4672333c3f775dbec755e6096660d1d642080bd5e9bcd0c8d50a05bcc92bbb357555f60f8aceb21fbffacb019f8b3c901b1390ff3dcee034";
+      sha256 = "304144942ac8e71f4c29bf4bbc91f17a05bfd712e621cc0029909e0b65e09a95";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ff/firefox-76.0b8.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 = "4fcad8469fc5c742e4b4c4dc838da969ec3ee4af5c8c856aeb2afce85e2de7927713acc1ab9c422814d51c1114917e131af7c1a9efb6b91b1e68a5c5b36a3c92";
+      sha256 = "7ce1b42078fe98783e2da541cdd69dd2083ada20254ef80fb53454950e77eddd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/fi/firefox-76.0b8.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 = "a86ca2d70706f2c3aa8601372986525eddd8a268e47fdc7613223cc322fbfae68b86e8041c244366969cc1d5f09db7aa9c6cde9dccbd007fadcffc27b9310cc1";
+      sha256 = "af9271da2138c9c0d73fec09c5356a87b91aecc36a1211a9ce35e0ee1bcedda2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/fr/firefox-76.0b8.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 = "ec1c210cb0bafaaf14a6f8d79c81d2777d228ed31a7a4b1516227ce9c505574a2ad9a15bf72150439ddf32e5e2200f07471c92540d25bff31c6b9b3e123e8091";
+      sha256 = "c7f347082b17060c7af21ef12f9fd8b210ee20f877e7e791379c482a63e04ace";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/fy-NL/firefox-76.0b8.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 = "530c2e803501a91433401445badf6528ccb51b0459028c098d3708a33369e566f679702fbcb50190fc5236acc3aaf4ebb4acfabb529b86a47dceecedeea9e45b";
+      sha256 = "51d42832b2f58e0d8f011762f9884dd49ab243d45b050258ceeae96bb92daad9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ga-IE/firefox-76.0b8.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 = "a81f82c5b4623afc3344eeded3d786f4e666627fbd40f64390dc21b728452cdca9f3510e21572d62e550c4e3b9230503eb771b615c3d4ef77e1a0211d79a5f08";
+      sha256 = "33a50b14ff9d965deac611e0dd6a85de9caa9cde9b99a8dd955a28916e026d7e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/gd/firefox-76.0b8.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 = "633b05aed902b9a655d22f45e5cb62d8978596e4d9b63f403a3f7f2a7db63b0dd2b9a1e5a82f7c9f5e8231edd15eda1ede415a80d9debfb96fc98058ed48472c";
+      sha256 = "bd3469f5c101682a723eb5b261c591fa619b64dc99466ae919658cf44ae8fed4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/gl/firefox-76.0b8.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 = "052141759e0bfebedc42a7c9209b122e4ef4bb15f83ea42b8559d7b2894544e26167a6935e854541082a60dde2b301e17f2fd3a5c659642f6a4c83828ea55273";
+      sha256 = "eedd3b89b26b6634827e07a5b20b57716f54a604b18d9849a4b2fe30ab7c366e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/gn/firefox-76.0b8.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 = "74977e4afb2d61c01834cc63f0d4440012752254ee475f28e80d33c63148b7c43520e141f043d90e611be4268da89103ec6432af8beb96ae243b8acdf4f4e934";
+      sha256 = "206a292bdf13d98a502ff89ea57e94b37a528e57b88c1611c5094ed64aae2b0d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/gu-IN/firefox-76.0b8.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 = "bbe4e976026c98c7f32b83941841c3da8992495122e96954d550fc8263e989539372f120d8b359423ae9fce043e79421c096d8dbdea921ac7bea8133485ad62b";
+      sha256 = "2ec91a2be77abc9b52e4d466cfaef70ef02b7b92e332fe572cdc3f4e53ac5276";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/he/firefox-76.0b8.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 = "cd7b957a983efe5cf9c4760f0dbfe35a06e6a7dd01702d94474eccc19b91fe136a3c14c5eb5d5a1dccbf02bece9535f059179afce15c42567a918c40cceba1aa";
+      sha256 = "5f53772c8a24d4fe1be3cc21673a924a5d65e606168f079b8091f4502d1218b7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/hi-IN/firefox-76.0b8.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 = "0a12a9cadbaaab40db835e5986d9211527d175a4724207af1e3ec6a22879a16054f4e9d7d5deb2c428f0b59b72b6f2d2d1c2d8ea5aaf10e20c0f4be1aaebc174";
+      sha256 = "15e74fb5124e1547f7eb776bd3b6d4096338731f1d97b6c0944e7f3af1b569c9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/hr/firefox-76.0b8.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 = "0d219e5bea0ac4d75fd7b6d1ec2819e6bae95ebdb6766a09e34eeae2f8de3a330b58f6292c3a00e9d1b255e8286858db39ecbffdedf7af588ef393bfc7cddb02";
+      sha256 = "5c4a0c766ed006e0f43856104aa8bd96e8d63ca618fda401370633b707e80374";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/hsb/firefox-76.0b8.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 = "ee2325e90ff0e3fa5128e9a13938afa532fedc7565cb9d26c016a37227dd9417bb78eca928c9c33bd2526cca0b2c3a6f469a76ac5d7685755aac29f06ef6c506";
+      sha256 = "6945e71a060bcbf8a329c65ddcba786beb4f955cc2105806bf5873c07daae988";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/hu/firefox-76.0b8.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 = "df602af7bc01521ff5c37876db7deb0d25414cdeabf34346c7cdf61e9083a12784ff94ee647fb75fcc9bb33e7458371b137cf3400b4d07dad4064b32a7cab11c";
+      sha256 = "5da76038365922aff82c540652132c7763a07f4336ef003a434299240444b036";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/hy-AM/firefox-76.0b8.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 = "774ed56ff51c7ea363c81fc11dddf8e6d54fa7242d9c7dcfc6cc3678dfe032cbd70ca93f014299690ff461da6c8013b946fa9ed170ca755a33fb95a85eb726f4";
+      sha256 = "4be5260452b39b707d271b5696710038174c397083f626b3fd877aad36c37142";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ia/firefox-76.0b8.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 = "c2513985cd2d6f1d874eb4f28eee05f7f42e639f8dcbc4d2a39d331507cf6681dbaae35e400a1f8e876598e8a633d67cd51b133391db30e36db46f65ede1cca2";
+      sha256 = "94dac5899d0f2d5afa0dec53472afb329b956347d22581e1b9668a123d200278";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/id/firefox-76.0b8.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 = "3bcad2477cfc42e2f01f5ef1bf3e907f80d96649fb5b2f143f58f6478939694fdfbab33bcd35b1f95023ad39ff807cf532faf43e1dac8aa66ca1e8d95c44ebbe";
+      sha256 = "d4cade715292ed116c2605dd6a8c70854cad373641982283decbc1e2f0417490";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/is/firefox-76.0b8.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 = "f01ce9358446ed8ed4b01297fc175e2fc36804262905f2d5e6732827ffcccf2897d5daaa6464a4ca146fe46d9a1487164de3febb6a222343277cb26492e5a787";
+      sha256 = "5f4bf4e8bb2f5e72872e99f8415b864df457c93ddabbcd4377588895c83b1d7a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/it/firefox-76.0b8.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 = "52f23996de3c4cd409cff547348757f48e421555c965a58dc43fa82c99b51260b1ec24a97a04b046f29455955d62bc28a41d67d8087e23b9c490032cc28402c4";
+      sha256 = "5fa9251fd8c8e0d4aebc006ea1f8df15afada7276a1bd0517b89c2a6f8e488b6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ja/firefox-76.0b8.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 = "490a950113acbc895226749335d8fbda813708ed916fb79719c0980920401871c632150bd2d88749cffd26bc7d3e7352b6706f379b37d11df6a8519d6a6642e4";
+      sha256 = "a1557fd84bb39786566b6c11d1efea9464a96b77a690b1b1c3b165283c031185";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ka/firefox-76.0b8.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 = "12191f6adf723389595e7b9b3ff1ae20c3873b511a021205046c51f29e960db1faf45e74c055edfeaee506e6c8dcdadca7967da4b4421f892a88bc337c6b5046";
+      sha256 = "f9359c7eb9c6536ced999c18571babd932a1b1bd22565d6489bb43cb17893eb8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/kab/firefox-76.0b8.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 = "a21ab0cff70609b3aebc28ce34ab2e6404b53638135667c330915491d8cb5c5ed7f292385e118e03e1bf2b4cfd197ad114f98b41371f5641c02d8372a7682286";
+      sha256 = "9b34875edfbf6383b5bbddd110d969e32e448e47eaf48b7f41c215e6b3f8da62";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/kk/firefox-76.0b8.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 = "93b2d1d091f9c14619d575eab5fa41ebe5a36f3278fa537f8143bd9fade793859d2d94e14d809e82fe037ecf2a05d0f84ef49c70970d00274d51beb2bc14fdc2";
+      sha256 = "78bdac1a7f0bd82440e43c6079332624b1e7e60defe45d55493857b1f9e2c7ce";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/km/firefox-76.0b8.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 = "184185ab33f3d73ea0a5f38b5e9931201ce3018e5060b72b0344211d11f8ebe9ee685e77c2160ce58a60b61e1377ba28f4bbdc2732f0a3ccef2190ce55072065";
+      sha256 = "9fc753e4fa4a2a3a911dcfe9d8c7c993416833bedec4e94e85d95ef075209377";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/kn/firefox-76.0b8.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 = "b0917c696844114ccfeb854d13e75d48038404e1221b13629dcd981b1272f7765cfc85a0843d85957a1f3ead2a98288ae28739da47d1186b762058213681eae3";
+      sha256 = "1e45e618c6d4db4f870e4d3baf60676d2a76916ce0998ae33d671ab73e8c1bfa";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ko/firefox-76.0b8.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 = "4ce9e202f6d794585294d6bf664c999b88674d74d2b085109ad48f7f16737e26c89980c76e9d6ab34800e841bce9074fdde6c574b228116056922799369fa04e";
+      sha256 = "afe8410a5be470aa016720f411f33aa0b244fa34dacb138ab145b97a7e195db9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/lij/firefox-76.0b8.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 = "3138f5abddc0f49355c768fa84ec475bb3c013fad94bb4c87a2eae616b590244339236b112f03fe16dfd0b10ccb6d106cc1db0f73a5eb95df7e0dab9a247b496";
+      sha256 = "094f4ad0a2b988f0d75938dd6439ad5dacb1eee42584e7d1b424289117512d49";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/lt/firefox-76.0b8.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 = "7080f9e7838c5ac076bcfd0e1192f1435b623c81144f53b1ee935aaa07c941ca8afb0cf399f161496bce02052d069033f6990bc9da16a1ab23f228417935d8ed";
+      sha256 = "69164a34e2cacc8f68e8e87defe713c4dcd1de278d449e1f9eb7b8cf42aae305";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/lv/firefox-76.0b8.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 = "c058a8c6b4ea8c48991ecba72cc4c5645410da2d9a8ef9175475fbe906f5bbb2fe82f2c4bcdd86aed73cc75aaa0fd5a2e00a6a780f394b843ce075fdd031f8be";
+      sha256 = "10262da2e4d50f2e331b3bd0c4d064002a3a5f10719284b96cced812ca0551bb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/mk/firefox-76.0b8.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 = "f64a6373a56c7ee37ccca43708ab33b3e001b477d2ce25870553eb96fd3c42f20206171f46c93513cb328203c4454461d808b6f888260b0c2df76450ba676fb8";
+      sha256 = "d310667e306b177191965b40b6cc8556e0fa749a3ebfa6120b0255e701d81ac1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/mr/firefox-76.0b8.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 = "14f58b3f59e68b9692a6fc562888e7868becf95b53aa6be0de0d3ba6c883cfde4b56496fe017b5e6e38a89b0248794408402657a34a0db45eecae74d9ce7f9ef";
+      sha256 = "2130fd9a56e2e4f4c09ea57cf0a566ade53c255c52e867c40316e14a04a59e0f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ms/firefox-76.0b8.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 = "238d2c63d4ffe36db493ef153c30a6e4b33e1403e456d2c02275786d3c13c8b2e0467a80916cb08f4676ed68c94b2127ee9876614909e4bece2577609f027ef3";
+      sha256 = "ac215f60d098eacfb4d03e857e0229d0368a113e5758f00044790953712cc4bf";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/my/firefox-76.0b8.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 = "843d4d67ed852b2d0f54dee78cbe3e27ef052537270357e71f3ee0643904c2d370d5e0d25cc2e1dcc150d5f999f2841b963df41c7a98493a5101132dc6ef9a77";
+      sha256 = "0f89f81cde40821463e9ddbd988616d019d73fc0a27cc3a427dad4c9bd6fc931";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/nb-NO/firefox-76.0b8.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 = "e8eff86060d9f6bc6fd0f13c6f1840c77b9282f8be07177cd6ffd5472ded9b55c3d4e7641a67c655c94fd72a21a100648ff1ccbdcf90b5e7543ac1ffeb604dae";
+      sha256 = "4d599136e6a8f430f21605895d2ea63aaa3542a2b9dff5fa44d3a618dff1be5b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ne-NP/firefox-76.0b8.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 = "bb62e672ea5aabe57ab78dd37081922a67ea6471558c8a412bc5f6718b88439afb87debd23bc8e8076b7f0ca20083b79745ab0e85cfedbed024d82fee7a79986";
+      sha256 = "859dc2201e76de7f08b2c29d11382f02bb2eb6f9ec48f65656f578da67cc10d3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/nl/firefox-76.0b8.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 = "9e0ffb62fc391ffc0bee82e67c26fd24f22be3c9ab0d14d929cc0ddaaced27facebe49b55bbcb53dad9e27466d22a4edbcc1358cf38c4beb1f846278574fcf76";
+      sha256 = "f9b7784f2c626f6bfe8a39a18a593d9f0d10d0f6407d1015969fd3744a483e88";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/nn-NO/firefox-76.0b8.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 = "ea71229a06a26c13d436662336e5a9b52b290c2094561c3626bdda069930c3a5b4dd61a25f76d147fb152eaefa07fd1e032b7a739b5a2038a2c4360827322144";
+      sha256 = "6c46d8b833423fe0eed0da6c162ae16f6969b569902c41fa21ee7e19ce7515fd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/oc/firefox-76.0b8.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 = "f0ca79deb5450984e1f70bafddb2002f81adba022ffd2ae9c68c009fa559253f47a5fd66bb232afc5ed685721c78d7c81335e4e5e898e4a469019f98330bc602";
+      sha256 = "c359b9438f6065adb64baca086b7bed295ffccb825a96b4bcc5721ed4346a061";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/pa-IN/firefox-76.0b8.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 = "6e730c323889c7d889bac2cf7d4d2fe13347c4c9ed6251ce9e3f3825e99248c896740ee24557e9238e8fe4f5b29702f6344ba4a3210279a6e6432ab94774d990";
+      sha256 = "6ae3b82728155e195747176188e30d4ddc3d5e9499ab018902e2e1289b19c171";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/pl/firefox-76.0b8.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 = "e48f82f35d338852abe3ddb1abcd1c06c5d401f464bed702b7b649fe29e1a8a3ae25f4a2d0b4d30615340021cc71784777eed114b1dde4a34928159b8d616ed9";
+      sha256 = "45b97c17dcd1042eb205f6c59f5b679fcd224705cd5009dc2e39c8a22099ecb9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/pt-BR/firefox-76.0b8.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 = "cd84947d36f334740d2bc590ceaf8b052ef90c7b261712eef9c85580ee9d703e0b362ddd5d51ae24ae7bf56e2bddaf32f36081df2717e673c016ec91874f6b53";
+      sha256 = "50b2309fc1b083f739b090729096fe82747dc3e889923d271aae500ee5f0c82d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/pt-PT/firefox-76.0b8.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 = "6c59d46bb4b740098ec69c7a573233cf871d88ec1f9a9ecfbbf5f38a4ec1977cc7d8c7b9a6ed78dde2a795d6d078a2e505646704e91ad37b09fff564585b170d";
+      sha256 = "aac403c497aa1bb9e37038ea7897f57074278d080e592bf1984f1712a80de632";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/rm/firefox-76.0b8.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 = "f700e667bb8bec958501dffb33bba8cffd4bbb84cdcc9f00ddee78d43676db9afddbdf6a3d9b2ab9e58c10d2b1a2727c47224e6e824f36bcf018f7bf53b45b43";
+      sha256 = "b8330c7ef733c1d50e320376bdd9c5205fd56f58fc7baf46497f1b0902193dc5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ro/firefox-76.0b8.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 = "e40a8935b7ad0b0656783023c622dc357921eda21583b1ed46c85a7ad2de8972167196764e98f75ee0c15ef046ebf09c99a2fa4613106c5302de8a9ce6429b97";
+      sha256 = "ae7d39f56d162d7b8bfb4d55c6de9b46a40f45c1bf9a4191e65c7a99a36b22ab";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ru/firefox-76.0b8.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 = "780f5df88cd75c306e725a48aaeae2b45ab5b30342ad74f5ce521f10dcf6b96affc92693fbc0dd1e95c927a21ec26e2fb9cfc74774040656459f2a7477520d61";
+      sha256 = "10e1adf60a23574fd5ccf9ae1be83710c92c902367174f73952d18412228814f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/si/firefox-76.0b8.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 = "59a20ec7a102830976fefad4f87fa4a59ce723541b069204c03728e4c7f19cddfd74e604844da72969439542bb67e404cf5d6a649372f85250cba4fb8fb42d7c";
+      sha256 = "fe02265dfb0bb12ad9a5739e802937540425789c8e36220f59001ef4fc256f16";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/sk/firefox-76.0b8.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 = "56c540f1a5d46f7e67cfcf8c6197febb7e7c4761bdbd0d4250a0c79671f84ff87c3f146f549c8dab85392c7ee94d59a4fa2101d5d8b9c7379b0f39a24d37b5e8";
+      sha256 = "73c58bb35f204f875d2c8d293780810be6083d2934fa8d7d7e02a3bc8d41e5a3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/sl/firefox-76.0b8.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 = "af3c4e96ca34c177fdfad0203daf1a85819e731b4137bd7685ca95d33583a04fbaf54097777c571fdc0ffafc4748f57b683cdf6773177ceef1e6ffe764f780ed";
+      sha256 = "90243b7a75889617085715d6cbb65c220f1fc5eba5d4a70612277dcb6a6df6b6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/son/firefox-76.0b8.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 = "045767b189c1f8ba26bfbec61f841ae2c66c7e1b35569edb26ddbfc9169e1cb6122237d83808a87e3bb3ce4a6b1f080a9bd77bd6f8d7f731a87a894a559cab1d";
+      sha256 = "ba8ead8c649116edb7e168b25e6eb3735a85cf5c15a2a78ebe8340cd7071adc1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/sq/firefox-76.0b8.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 = "4126eedaa46dca25e491e74ad788af4ded93127061219dade8be09cd18d807b4df549178c4e1d525ba1530ddd50dc4c6e35586e7762f550cc0381bb7d9c2d7ed";
+      sha256 = "6466c44847b3b0370665e996582a2cbed9a8eb56a8b3f683582011cba77e918c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/sr/firefox-76.0b8.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 = "60ef4c3830baf02481d7371d4a55ad8da7b7cb059c1e7171b3aca0be159baeb287b2aeac15e0ef0936f452a12c8e6d2570f50a846af7b87f5d8e1779fcf8c8b6";
+      sha256 = "06869c6fc77aecdf48a991ebd65cc6052c8c3aca976b01cac5e39933c7aa9190";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/sv-SE/firefox-76.0b8.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 = "354e699c53e9b9e0a803824a4f5d00fc991adc3822a21f5842a1268e6d028c89951c943aa2461402d39b7345487bf74c73bcf1cb49ea2acbce5a24a49ace8b9c";
+      sha256 = "e763358e9672fbc8b990bacae8687c7558d9718cc9d1e80798ee9ad220f28b35";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ta/firefox-76.0b8.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 = "ada3a7ee976f82841096b9cd80fc1af79000833cf65971b3c141f70cb9ede5a523c6e7e8f6be36d6a175c7b1e8415f95a84553d21b35bed90bf1865861ed9d19";
+      sha256 = "1669e95f886a7adeac0489c072fb88f1ca09daf3b42027006305857bdbfced4f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/te/firefox-76.0b8.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 = "ec9d5f601856bdedfa4f005692911e4e9a5afc88d8c0a5551e507ccebe28f2280b2ee3f842df5255e1cca5b1e35308354827d8c6006c593366a08e917622366c";
+      sha256 = "3d5c9f1596291eba38fa5b5174674fdcfd335e4cff44ecc50ddc7f08ca254b97";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/th/firefox-76.0b8.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 = "e939d4888cb59e0a1f066c641c213bdf33ad56c60e73eb7b97983026249b223f2465703bf8df931b6b844ced18a8703b77310ac61c847be054eb83b8196dea6e";
+      sha256 = "d583744cc4d1099f23960b0ee7c80992233864c94f877623f0c566a65cd944fe";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/tl/firefox-76.0b8.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 = "4f269b9ce6f25e236f00374e68438d09cb30107babbe3fcaf88312b7abdcf8d4a5b619860e3e4010f367b341646cc9de027ee094f175cb144a00bef47f427806";
+      sha256 = "cb6b8cdf1747e211cceeb07bda07573bc193574fa3603bfebaa537857953ce13";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/tr/firefox-76.0b8.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 = "9275209304112ead1c200f9f62386de665922bedfe8501f5975a7598a6ab19ec6941fa61cec4904fabf75d76c42105f7abcf86d91c746b609bcbc6957b8c40b5";
+      sha256 = "e2561f98607ac5dcc67ef825cfe73d1c2af4ef9c5c01ebf48ee4dc0f80b53d07";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/trs/firefox-76.0b8.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 = "4b06342ca02d40b6bf9de58e50d29ff2ffd3ffba60e79b6aafc7e59a1ff8bc28e1d32ef6fed7ab5d90d5224fb98ea11aee57c758938ae84015c52202be97a300";
+      sha256 = "de1e1f83c439d17d5489d666f1772ac32e26d70a5b3309176b528de413fae39d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/uk/firefox-76.0b8.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 = "02189417dac9ad1371fedf3a2909d3a1cb612566d653255a58402dd79656a56fdd859b23aa7b9872a928d2ac088e96bc9d24d97504ac183d6e3c7baec8c072a2";
+      sha256 = "7632b4734ffe3106e78ddfc9e5ed81dbd219045f4b954421be4629397436763c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/ur/firefox-76.0b8.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 = "6a629c7c06883c0cb3d62f69d996c6778a0929802bfa086fded6f7b5d3572e615f6280a68b3343c43a111c02ff6b18f77ed411029ce9c6084c98f418f9cf5fa9";
+      sha256 = "8e6c6d36546492ae93128c780c80bcae86ebaded38cc753db1f0401d4b5d31e3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/uz/firefox-76.0b8.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 = "f890c9c046244c476250ec89821f5de5a2e0a2acf12be2ece12b192276163dd9c86c046e8d22280592fc0b22e799b3681a3138a624564f45e3ce3e17dab20119";
+      sha256 = "18c7827cc1337e0a2cb3a1e9603aff8e7c3ac8e5631cb791eb0b7a2de35bb487";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/vi/firefox-76.0b8.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 = "360cb88f79705ac8b6e50a52ef23b10923a15c952795f1bc885cff09d99e23f200b7e67ca8637fad0447abfdb07ee9526f26ffbc424cc6c9bda399da0e4ef0b6";
+      sha256 = "e78c922c13e0207c9cfb4d492e855543979e77b49a18fc63796c7e74cc4fcdeb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/xh/firefox-76.0b8.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 = "03cf616b1bcf80c2dda6a6eba15f28b9e5c8741aa37c383c3b16b6f1ddc834d51fd144ce3484709335e06119769bc021da6d1006cb385929451d6db1f1480a4e";
+      sha256 = "bd30e089384bac81aacf68c52ac884712bd0c739f517faa6390090d112d9fcf7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/zh-CN/firefox-76.0b8.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 = "de16b1013dba1726a146c3212310da5e51f6dc706ae1e5fbda60e1181ab19510a485908bad50b6a4d87ed1e56027627777bb005bfc2a5e104df9f7d1e95cd7db";
+      sha256 = "316ad740bbba808a66b6fa00a9b1391597c949fa217e721563c685ef9fa028f1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-x86_64/zh-TW/firefox-76.0b8.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 = "15826e8a03c1c0496a7d9ffcec580f283b789c594f6dfa64de2ac8bc86398d2cd267a84a274a94063d980cbf984741f1754c644451dcb1e56d06c1c8393d1294";
+      sha256 = "f92189c808903b314ff4cc30fdfa7d5e2085ce22b9763e95144a7d69e6af719d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ach/firefox-76.0b8.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 = "619cef2ed7c9a8fa67723548aa826926f0dbe34996a1c6132571173a15c15dc7a8f9165296f4a94e1b8beebf67cdf79c388fdc898a013cf25985b4fdb4a5c200";
+      sha256 = "aaf1bc4cda7e1f1182f701485f5cb186d4b731851aca70611cd478c923b2427b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/af/firefox-76.0b8.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 = "3815642e4bab2ffeab6208d9c6901c80c89a42dc8453a97ff288da7847f033402bd48c0eba8a8e62f0c696fba75f95e7dc9795089894e99c70306cf4e40d37fc";
+      sha256 = "1be25b19658c15a88031169c57acda5ebd49b63212f584da6f859370b493ad32";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/an/firefox-76.0b8.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 = "b6a740e7273be146958a99a5a4e16f7c1c7e21b8df76d22473c6ca16e510d7f37fd9fdcb672c2d6ad29aa354a20ee3a7c5a9aaa03b9332ea3f5b460e7d271565";
+      sha256 = "d461a566f7efc35ac323b0e8e963b8332a349e1b317401c2975cf4c75f7ce8cd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ar/firefox-76.0b8.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 = "e3fab302b21d5f6de8b41faec14cfd842def6f2a65259cd8d5b0b481fca33bece3e7fa4610c60013153b676dc9e53d790734d27837e4701b393e322c5eb0f602";
+      sha256 = "2051bf3ff16a6ebf15ed4fcd97adc2bef65c04500d09ff1f009785f41c0b02a2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ast/firefox-76.0b8.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 = "28f62c0a906283c1ebfd47e598918349c066c33512d3fff2daa44885faadbfa8b00309254b754d758d86acf23bd4ebde9142e56302c23ffcdbbe2baac6fd6e47";
+      sha256 = "97951d00f79bed031680ff9676201c9ff0fe79273e4f2697cd19ca9ccdfe95cc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/az/firefox-76.0b8.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 = "c9e00425a869501867f20b22c85e72dce9798437ee8afe718eb21c06acadd9d618d614e25463f84d0a31901261d92603374f9b2b91879e19973d50942ae6774a";
+      sha256 = "a461aa41658c34bef1bffba2d34619ea402fdda2e51aa1e0200002b2e9321c8d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/be/firefox-76.0b8.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 = "58811c55d4a5f41e3ef8b378c00a9a08adfbb48294eb20c32dbaffd972e1df1ae55191a8ad5c4705002f07d3b7d3eda90ec759b805995c14c29fdb8707517378";
+      sha256 = "ff1d2fa9203fce0aac5d91b38034910bbf7b0822b499fe522ed981f3365db8c3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/bg/firefox-76.0b8.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 = "428b34c8dd2c926dbbbd2a8ccd72ea7f023e5fb0e9cb664810d29df1008ab744eeefdd34f6f6de1596f3fd7da9d2e3b23d5c216c8a9ac94b96aefe5fe987828e";
+      sha256 = "17553a8566afe02d916b18d76a8850295512d9514bc37bbac459bd28a3bf46ec";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/bn/firefox-76.0b8.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 = "5f1d54165939ef8448a5abb734f8bb914626964493e9ace1a483f5d6003c0fb087e6cc1d76afdc15c1fe563ec64f022233204be92a5705d8456a6cf75219cb4a";
+      sha256 = "9863e968594a556a7bd52a43cd3c965687d4116c9fbfb62bed38b1b7ee343728";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/br/firefox-76.0b8.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 = "4eed64845ca603e21de1e60632b7d75e4bff5a5a2af792131de4141a2454fc8922109f67c13c9cd97032e3cb2cfa4d5a0ca3cb3e64faf2754fe44d8a161c464e";
+      sha256 = "762f1f951560f8c85a44cc2a7c318e4f8e5a0b752011cf06f86235e3aedabebf";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/bs/firefox-76.0b8.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 = "7525926461a5e89d4aad85bf3176ff36c39fa18131ead378ddce015688830051dcabb4eb3dd05922d84ea2fdb666dc8a2f8751c6bb3405b4c6e1f7a5241dcfed";
+      sha256 = "24fc8ac01417df1bbcec358c083f7627ed13bc76921bf0efc14e9f7653e9a819";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ca-valencia/firefox-76.0b8.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 = "3ccda6fade937406e9ad8c609e1cbecc2ebc064d0793e9facf3910569ad5f8997d8e9165a60d59de645d29bf1411a439904af504a5daf519774bcd76a371b567";
+      sha256 = "b071e20fadfaa2c06baa1579343c18167f6adf88e1c98fc68413287f6a45225f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ca/firefox-76.0b8.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 = "d1a6c8a42fb947547d460d8d244f0b091f609aa3590fab7a785a5a9aebffcbb96fd6254797b19ea3b0bacc8ba086db210ead35260cac69d980432fc0a7a7b9e1";
+      sha256 = "e63fc27b2bd404ae9190035d5537822fe76213545d8dd076566abd12ea213e25";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/cak/firefox-76.0b8.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 = "b0052bbd85357bf6bd3d550021013d3f97cde943be85c08835e9d51b829f9fa66fb3a34937f806552373bcce2f36d949ea872f0eae115e7b1d13382502fd2c3b";
+      sha256 = "6f4fc3e51819d9d3914ad624593cfc755d9e8f78263700268dab46c38e8fdbcf";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/cs/firefox-76.0b8.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 = "8f8f91ee726b3526b0d375f6075e466781fae463e55f8e7140b859e4418466c3653a3a39ef69c5395393840e8d09188d1be503ef7ac9cd2f34bce7fb6fc8719d";
+      sha256 = "ee61413b6544ec56d13bebd08ee2ee69f8d1f16e886ba31d46c2a786c0984f7c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/cy/firefox-76.0b8.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 = "895f1e28b998d27c99ae8cfd8f6bdb94dc526d5dfe39d537e5ece92a76b8ea3a9905197c40967e7e90bed60567628dfb23219843dcb313bc65b8dc1300dca51d";
+      sha256 = "8f29a8b77732cb1387371538efdf970d0e93d3de866b103c836990a4f0a30933";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/da/firefox-76.0b8.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 = "3b206e9d0b2fea0fc445617fce9c9908d0d4ca15e68ac04fbab74dbb7239c986de7f5e0a5ab601f25b3481a20eb9fe1f39aaa535ba24fd6e1c76fefe81e26474";
+      sha256 = "b89854119e139a8e9347b262131ed5da62672f6d728b1017963a11d279861a45";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/de/firefox-76.0b8.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 = "8a9293278b5a426aeb3f1da45fc5c8d8508297a81534c33ed3d032fcb0a0c67eb4cac72b591f4fed9b159934b1e3f84a6996f665ec7955f37b6acef78886ac3c";
+      sha256 = "c453a0f5cf528c582a35997a963b944d31666018ffc912ee4e188f795066b925";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/dsb/firefox-76.0b8.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 = "edc302624c544c455f1799b271b0c6590131f0e01e4cf1691fb8f6fa3b470ff9a5b4db301ca87ae97ede4482782d802e24233d20d84dc8adc2b18deb25b249e5";
+      sha256 = "bf1f7ebef2aa4a5e0ed824a2c89a0b86101b5cc754feec482f0c39ef2ef3dea4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/el/firefox-76.0b8.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 = "98259fefb0d9a3ff9d5e80afe251cb001c767736887d6c342d857536a031d013442a271b3aeb1c227c789a5695e134b31a81777ca7d13249451bce4325bc9a8e";
+      sha256 = "b31ea72af96ecfd2b625d813bf32e08dfbffb9c0acb004e1f279b7937d675a90";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/en-CA/firefox-76.0b8.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 = "f0f8d81d0700d8539a9697001a9bdbfc75a36e3f4a1786d46e5dbdb77f61d69df10097040ea8e5aaf722b7eb578a58300c2feb32bc010443fdbd2e5eeef1eff5";
+      sha256 = "31866007d8bc76202fcec3b9531afe237c9822025a14113051a9389cd9f81ec8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/en-GB/firefox-76.0b8.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 = "97994f92d574726cf0553378f3a0a90d32cf92b8810b33a4c422355ae5dd5ce7f411352f8f45311c24caea005b727a2886bc60589231608604f97dd684e5e3db";
+      sha256 = "82b2e6cc268eefb687255fdc5170aa8ab6136d6a07b881d49c044e1700eb9190";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/en-US/firefox-76.0b8.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 = "8e212c9b394d887ec8a27e47fab45f15e4d179b82332605360a951fc4bed5693be1136bddd8821ecbd31aca926a1277cf9f1fdcd07e365ada5ad35e19c64e213";
+      sha256 = "dcd29328d9b464c16bd034f635a16d1593f98e08becc6a278d265b07bdc208a2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/eo/firefox-76.0b8.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 = "f8ef36d7d4cb44a170fe575d6bf94854549eb311422ea5c6ce9220f6852d76c7d1d9b65f8f959526b6d91e88b1dc34bff6f30d8534fe565574b78b045a652662";
+      sha256 = "cfd6996e81513426d0534ba62e4f2d22fafcef51ed48da4a593b9d3ead2cb2fb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/es-AR/firefox-76.0b8.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 = "6a6a67453a7b48f635b2ec0b6fd34ded5d1624a375ff526ec1693affb77d7c503215d91a29c0a266228f2f1780f0f5e6b8ab215e810faa8eb5bed5a36c998975";
+      sha256 = "9d4c24e1153f723a789c1934c15cf8b4d3925fd34e8fee98d7e5ad19c9f7a9d3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/es-CL/firefox-76.0b8.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 = "7755a4cd53704f28a137d8588a969475df4ae444e1a15591941cb409528deda93b45bcd4cc0d8a10321402f01ca8439db6ee0d634a1a50f964d824e61cdc789c";
+      sha256 = "91364ba1a2ab6c8bdede117f45a855b5968bee492e054123433c0fc034d66415";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/es-ES/firefox-76.0b8.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 = "88b173d9b150f4973fb59d3bc51c3cb5f9e2580805310a73f2de993f6cb053c2c8a09d97c6979a7a501610d924a97ed6cd848325ba5142680c2e7e83ed026c37";
+      sha256 = "1cef40ebfb1b12813d85a975ac0620b3ed339acf5de8e4d0ff0aba6aadedcc7d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/es-MX/firefox-76.0b8.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 = "e84b113f5c8a4d5a242c174fb5752e23be54bdd79d19926ac46f29ffd7d0d5d2d35a7f2aba68967c0cf0a352a8bc8f5e7ff50883a1423a99d811a260323475af";
+      sha256 = "e41ae370750f65e59470e05b2ed501a308f8743cde3291bae2fb8d17af553789";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/et/firefox-76.0b8.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 = "6618cdd88ff48e3ab9b1d5f301d668c5ed1e659c3777cf1d87f7fb33c8698659766291b821f1fda11d13a72e50321a48afdc42438f96a8e827b2cb6712a60e66";
+      sha256 = "5a279c246cffd27f6c919f451161e87b30ac8743e1a22ac490496b28af7e75de";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/eu/firefox-76.0b8.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 = "56488e4dc90422b1df30265dedfbb2d0ed9e2569b989d642e83d68f71be8e5c45caa9e7df0849993b7763ed91dba937a66231288cc821cc753e9631ee1cc6118";
+      sha256 = "3530e6f3060fd133dfad72532319c6cdb5be5bdd2dc0395d02e379b203264d20";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/fa/firefox-76.0b8.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 = "87c044f5b2e86c65f03b164b4875805c01fdbeb8cc1f1a431c3e8dc1c5f7cfe5e836e2c32cf4a6a26621c3a9f06a831edca828b5a343d8547e69684c6da23924";
+      sha256 = "ae1b1fa06440f1038c97fa9d625a2b58ce5ffe11fb53a71afff632a18675f113";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ff/firefox-76.0b8.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 = "22722fb25b81ae05faad99a81af7aa21489c0fc031ce039c7f917f0d329160748f7ee6378c53e26846c466a472b19f88fb0a71080b37f16fc036f4199b75f67e";
+      sha256 = "05b47dda3d1fbce0e3dcd79534aef247516e5ded783d1184975ba97b1abb09f8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/fi/firefox-76.0b8.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 = "680e8889e1b4b162118dd781cc43a928ab07359d31d61f0e2053223d5eb858d24a12a81dffa3ba562428d958940019b0a775867553cdc5156d2c380f1ff98d13";
+      sha256 = "689eeeee1a769ec9bb53014044a615f0a5c05d8a15e6dcd408d18ef452c0b441";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/fr/firefox-76.0b8.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 = "45d39ff9ef3de3229e1a6799fbbfe8ea9e773041c9f98998aaf07a41146cf8a034a46927df8003d953ecc10ce50b375b311fef5b3cd532952761b6d05c4316db";
+      sha256 = "c64e31adfc24ba1fca84922b33a71bb74150ddc9b4d5e52f3627d2aac3b11516";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/fy-NL/firefox-76.0b8.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 = "5b6b196fcd7c1a23664e10a0351a5f13e2168ede27627a1aa66a6c6e586095c47de071e917b82092f6df72540e50a93fa95e0c81e0e06687517622ffcb9b8a6b";
+      sha256 = "36765f1c9e1b15b43fd7d70c9f9dd1b977c4171ff920710346493214e08f9dc0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ga-IE/firefox-76.0b8.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 = "44d1554d851e650f2121183059625f3c8f633c50b309cfbad2cd0dd3b3c7cfcda33c8a14ab74fbb3481725c530c5140363dca573a4e686d6921974c191da093a";
+      sha256 = "026c461de7bba74facc421a58028e46efe32e7e3f441a8ca030911e2e883f56a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/gd/firefox-76.0b8.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 = "b8210e2afd5f13522dd367baf6724a0982ab0a98b548b1f2e6fc3af93d704a4e5929ed4e235f292ed666b6064beb5e1e463d715c8c14bfb47cf9b2687e321b1d";
+      sha256 = "c2a21914b4f7cc71d6456e9c395fcf2ebbca12408563decc4a400e3d5d43c865";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/gl/firefox-76.0b8.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 = "96349751178a2cf264e1ec27c74ba725d2c3a9b54641bc4964e5d8237d3d6b6f98c116d44b883aad132ba7c4962c3c1b471fec08394e969dcff42598fdea6841";
+      sha256 = "888aaad1dba8db4d71785fee01c100aa1919d432e8ccaa044e386224abe9494e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/gn/firefox-76.0b8.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 = "61b270273fae12b485d93707d358e5a3d7a9198ad147e31c2fac2465f65c9d6a803326fb042ec0a6de2d46cfc61e505b09f6093a7f62e3dd69b8e44e017d7b26";
+      sha256 = "d5b1d103104c2e6e7b8198be649b0628acb4cfe6865422fc9e3db3b6ecc07cc6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/gu-IN/firefox-76.0b8.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 = "52e497831de58f7abb221b4906f0fb64182a04a93e8d7ee83d42a1391f029e4873dbe977b4e8a405d0acff537d98504f659971075b9b76e33c09a46607a6106a";
+      sha256 = "215b9df33e06685f9b264b06b512d325aa8353b3f3975699b77e9fc8d18531f1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/he/firefox-76.0b8.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 = "8212b67f9447128a4cb9ee0864c50d07fd3595de15d8e3c6bf4a8f3b19bd2288ea1f55b7fe003f75249db6de0a8aa4ad6962b2913657bbdfbbf282cbc14a77e0";
+      sha256 = "8a19ef1eb702a0083c7751cbd7f2437c5fa46ba3f61a5f5d07f797b8ca696d22";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/hi-IN/firefox-76.0b8.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 = "61e8954d14b9b7f06919c23d60eba00213c57709a5013c4a9b3376f7823f5eec262ed891a24857fe5e5efcd0245bcfe474c3838f1463dfa38427c4335ce7f1e7";
+      sha256 = "17a84efead836ce54c1c0f0f5486595753f97463fbc2031d78b01e33c7a7775d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/hr/firefox-76.0b8.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 = "a58c582cf0a9dd154ab53819197eb4c84fdacb2133e59b367df5111a5807c4ac63d1ca0b2567fa218a64f570b19dda9b70b13a2c15d2359cdf962f241d4ea275";
+      sha256 = "41bc47533991b818b26fa149a30825326879cdb3ba92eab0ae5171be595078bd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/hsb/firefox-76.0b8.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 = "fdd4d7618fda5b950fcdfba0c47c27311881bdd62d1ba2028ba13adabb4beda99351c97a3ac0d3e7c1d9b9fdbe5e32bd04c4863f24e76144f6b21725a5d5d8d2";
+      sha256 = "9ee8d0255eaaefe37f00960ed59c83a06b8356a8c6ea05d1f9697edb9880593e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/hu/firefox-76.0b8.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 = "2d6455843faa19b8fcd401a897eb03b76bcb5da784b6aa8598e88d1b3d44ffbccbcd01d9480fdfd61039197f8e6dba86353e400cfa9537568d81debd31428c50";
+      sha256 = "a9b6dfa44cc8d90a530aeb98ac96a0ac1e63b4a46b9af8ddfd4d6f268fc7eb5a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/hy-AM/firefox-76.0b8.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 = "6ea49a50bf8e22e6caffc95936cadf3e6373b131b10a5a96faffe786a9a9a4ca8737600cec76c071bab4a20f7c05003f25d3f573af6450a5c995e08e3b939acb";
+      sha256 = "e93f74803b536d3b12b6e41d064a7adc5dc16615d045a2e6cf792d25477fbdc6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ia/firefox-76.0b8.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 = "7f5bfb9d4c7debcfb8a19c59f464a47af4f729d780b3940420326303d129f93363a6b9d606285d6d1e87b51d538b8573911356be2318b72e9544adaa0c64cc83";
+      sha256 = "931dbb0817dd797c5af61bc683f3d95ed99ad9834efe2f66a50f9e444e708061";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/id/firefox-76.0b8.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 = "f98fa51506a9c5f8da4ce090778eb675ab922970a94f7fcc93b2f0af20b08889238188f8def9f001ca757b68cc321f7f023023b53c2d2c1f87dc645d9a9489a8";
+      sha256 = "1e1afcecc3bcadfbd6989eefc191f8d5cfd0f4d29c1f6814927370aa647af854";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/is/firefox-76.0b8.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 = "54a2ec07da6259d6fcbf38a9bda6636fda9a15dad5188c3a8cf5a80bd813ce5c399d44daba0ba49281a7d503ee38542753560ca322324d86bc528c509b34d3c8";
+      sha256 = "4907987557a6a560557d417dcc31f9c7dd45dc0d2767ed050770f6fc6f308641";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/it/firefox-76.0b8.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 = "944dabeff41606eff6a49ff87142aab2934cbc658015a8ef05a8416252b8c8c64fd446f5f88516dbea67e269a6514ba7a59038b39b2bb21b909f5342e90b9fd6";
+      sha256 = "d895c87359cfb98e236c4b5bac92391528eef07a45dca2d067a7d55fed4ebe7c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ja/firefox-76.0b8.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 = "22bf40ed5c37609dce3ed3ea4e88ab8bbbea31a2610697ca72446c201f874c7a4fde8c3f0f859e492869a8a3421e917d6eef37f71cba58658c584f30c683e9b8";
+      sha256 = "30dc7aee461930bea42c9f2985ff766f4aaf3ec0bd7f09562626b155bf80f202";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ka/firefox-76.0b8.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 = "b746405cd39c261ca7e18193fb0714520c59f58a595be513660d609ed3373b36f07444283d8ed1a6106ef0a48de45ba61fd5c8a1798d45088ac886917e883772";
+      sha256 = "d452668daf3b5a9f0602417822f7581183dfd5dbcc5d770afa20e1d61d557003";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/kab/firefox-76.0b8.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 = "eabc8a30e4683de833a73a49e2d3d6a25d92ca6fbddbab672f13a6ed5094edacda15ee85a1a8582a05b6e3382ad8a2063a6b1f9acd02771711d43a5e43da8f4d";
+      sha256 = "5e828a4f6abbb80c7b575db2a70ddcff0d734f11eb9bca55c2b8d00f08fa6497";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/kk/firefox-76.0b8.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 = "938991eaea630be2ad5818f97a9f43808ce7978c07177b5eaf10bfc74d495c1bbd5d66af79c25ad66ecf6b1d35acd94b04b70c5a8efbce5e26d53e45f3db0c7b";
+      sha256 = "994e8ccd626f3e640b8a1b687a22ae6e3943b25995278f3333b6814ce61185c2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/km/firefox-76.0b8.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 = "ae6eeef2328c92c26b6eb9c2a600162d99c58fa04bfd526f8b0d3d1b147a9f19b7976342e17415d8cca2df65ef5335c5da0a68378e900c09c941fb18a92ea8ff";
+      sha256 = "a63ad9f77f01523dfb02eb6c2880a4046a556bae6d329a5e5480aa3eea0aec85";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/kn/firefox-76.0b8.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 = "af171a1f641c50b7f50794d6a1ea0b2d9d2230724c08774ab594b1c9d02ba0660e7f349de65dc4638191b855183b9a0a45fba1ecab5e87199522d6c36103e6f6";
+      sha256 = "5396452efe004c7cb57105bb7134875e073f822927a98db23e96994e11fc7155";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ko/firefox-76.0b8.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 = "7a2a61748c0f79f6e65da80e013dc9cc4550253298e6abf01b431db16a3373ba4fbdabba25dec3c994435b6e6330aac58067ed95003695bfb7e49fe6af70b094";
+      sha256 = "a0bd2586531902121344b7c70e9ec9ae4e08514d2c467a17664701735f8d74ab";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/lij/firefox-76.0b8.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 = "d06298f697163b89f7195393a660534080595b6630b8e2b5c67cb311001bdde4b69cf5a2bcecae4ca90a0abf275736842a33f6d57dbe021458599f0a531b5a13";
+      sha256 = "ac4f16381c71e3a4f00c6ac615913cc7d5eda77dd9ca337b9a8ec0e63a2e9176";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/lt/firefox-76.0b8.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 = "b9ac847949d35872b0d56c41d58c26768afc1c6157d87a0e0059c4b4928e7eaeb6aa7564754b739dc757e049ed485a2c94085e8881515ebf18f250cd5c9e8ccd";
+      sha256 = "bbeda439051c1ff43ba08b95de57914237e7b9845fef0d92efa02265cdc81961";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/lv/firefox-76.0b8.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 = "88cd61ed1bb4eb1d871d1844e83acbc932685e10993ed64e84c63fea81fd1d5f79937ca9fff154a699334a4f10942415b6cbb90312d5be508d482de064cdbba6";
+      sha256 = "bb500de9c32241a7e28828e3f9b89427be1a54475d7b05b9c678d489a457c329";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/mk/firefox-76.0b8.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 = "6359356fe1c2eabb3757c6906d925b80a7a069e0dcd7a56b958f614879b942a295bb6345a84365fa21a2cd527bea48d6efe01a603d98571deb6141ae35ff59e6";
+      sha256 = "5689b2805b30cece9f9757a1869906529a7094b4a9de5d5180a5bea7582606de";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/mr/firefox-76.0b8.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 = "7b57efa8b87f662a56cd202102d220fe8f5a72d2e9838528384c4e40206df75e57a26df35544f595460daf471a565c5bfc7071f9a816b11cfeb48f84437d40a6";
+      sha256 = "fc5ec6938f33c548f52cfb90f8a40b342bc9b4a7b97c3fcc1b3cd2aa5a031270";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ms/firefox-76.0b8.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 = "fbdfe0a1f4ee6831a1d09d9349ddd43d6d540877c1272484429a7ac735a9b326ca5d99fc45a305fa1a36293a4e3eba3d03c4451b0f68a011e58c055d7e89ccee";
+      sha256 = "374e2a6ea3c59c7f985606f2e631294b57e20d7aff2bd8256ef9c91189e960b3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/my/firefox-76.0b8.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 = "8106d80e99497435ffb5a58c0f4002fc1286e223688ebd7c9e406d4181c621abd831819339a6ce65c7a3ebec7a7e8963bf711d7fadc5b94653d83e1fdd13ea75";
+      sha256 = "d9058df8893da03a707e549d9f133942fa71bf51e06c1a654f3ac588d79af82b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/nb-NO/firefox-76.0b8.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 = "165c134b673a2a9cfb38db68e5020a284bb087b21ae37a70ad8ab25808c1fd68c0f6385a433d4e16bf34cf7fb07510b36edd0563078a644d6c0a44633946be23";
+      sha256 = "11019961c5378bb86b45b2c6d4b74ca1e41e86aed500ec0cd73fbe1785ef7742";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ne-NP/firefox-76.0b8.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 = "c0450269268b5e89de324c3e5fc6a864461a4b29d1fb8646846f8ebd87f661be2a340963a5ae8282cddcca5f05a3ca14f2b155eba99f4357983b5977eac808e7";
+      sha256 = "de45c606c961a38c84196cab1827089b1b22e2dd0c23302ce57bf9fcbfcaf82e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/nl/firefox-76.0b8.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 = "6cd6dc6545e481c28f9d63e5bf97e8dbeb275821c829c729c2dacae5e16d913424bff0e2c6b3cd65a566708f6b047a6eda29793acdf45de295911596bfa49ef9";
+      sha256 = "bc2d98ae8f0fcc608d55b394398c45c1bcfcd02956031ca4762cc98d265916d8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/nn-NO/firefox-76.0b8.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 = "03865af4dd626a188682ce32b4e817af44cb3059bc8ed7620853234a15972556fa57a2b6c6046ae40cc9c714dc09e54c2111adacd2a0a315d347e4322233fd3a";
+      sha256 = "b7c1d390a8bdf295ad8951959fcb720f977139592ef0f669005dcca0e6cbb19b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/oc/firefox-76.0b8.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 = "9a774f343442ee10b673cc9894fb8e4adb0a02d824dce5bfa8b3c699a1deb17dfc2ebff86126f9e0743075091c37ad170ed49f0c7818b602373f9fff20240b58";
+      sha256 = "a61a765b698f48c15cf07ea424e8e69be7630261a94c6514fa739974b51243f0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/pa-IN/firefox-76.0b8.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 = "6413054a66903741f6a50c8977dc61866067ea54f915f1d7eaf972dd26cba592945bda62348b3cb397d7e045cc7af36581e374deca2812a5112f0bcbd7703b43";
+      sha256 = "6721ca2f49b60f5ff1d86e0b1c9a1d6107c5d701b319a2abec7b6fcb9f845d57";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/pl/firefox-76.0b8.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 = "98c9403b1567d02c1571aed5d6b1cdae7bdddc01ef16a2df44fb8efcb728b7c16dfa27231795fcb9ac3b1cdedbb66fcdda70a8971ed08caa89f8a0bb11dea5e9";
+      sha256 = "a77c0c05be64f027d25feaa75a788c630dd7af831c0c2fa334db7c36ac340144";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/pt-BR/firefox-76.0b8.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 = "ac721c8b4e104285cb8eb025916da8ba1c7c0481eeaba2b60e35ceed7d26afa7eea9a83168608daff25c025f2f06208cf36c56a4ece68b66b2baacefdb8b5d9f";
+      sha256 = "2baf74be32eec18bb235b57ee3816a3c9df916bbd4458aab1613af864581a072";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/pt-PT/firefox-76.0b8.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 = "720d6a5c0bfeab99f4360e9e64c4bcfc49c987f1dd040eeb1ff580f1f4b1c4a29fb7a3c88a369574fd966237f817959baf9db7117bd515cd6458e13155128df1";
+      sha256 = "0103da6d53b4a9e9512b8e3b90e583d8592a5bd02f09aedb90f49b1ce73516e6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/rm/firefox-76.0b8.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 = "e06fd7a663dd341f8cc9f60de2edca6af622bbcfffb9b1d9e3b75c07fb6b27f3b0ca9eeccb6173a91f52ee8241f167c4a399160e20377b3738e4cf4b2dfb84b7";
+      sha256 = "5dc1ace0d108460d6a57f7b158a1640d822c4e07a2e4d108db9f17e63150e4a1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ro/firefox-76.0b8.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 = "d7738a3039202e9cd3b30652b4c069f9b73f88e5db1429e26324ef30f87af88f79452cb5dfa687bb988b513359ae65d7319c8a3dd59207af85b618d51519f335";
+      sha256 = "1e2ee8f338625bf95da2914e54b22e1a052cce955a92102163e67cacc41129b8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ru/firefox-76.0b8.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 = "cd0c2ea6af241de3d382345fd783b75e15499e0d666df99bb6ec06ae9e9da233e5ebbd181bec6a3b044682456dd78f5405177e4a781160b9a3b110008782f32c";
+      sha256 = "c57cda1ba6e8895044fbc55b37eb5e241b02904f69337a6430b3b9fd47a57fea";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/si/firefox-76.0b8.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 = "94aff48579b1fff63decdc6640b853907abc508da23e3d7ec13ea01c2fae496e870261fc5616821bb0c2dd5279ceb1be054691f501dd183ee0ea9aae7d24d5b1";
+      sha256 = "e31df32be4babb9b1eeb5f6a5a44d1c94b07fd5c4bf70d8cc78d4061e1e790a0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/sk/firefox-76.0b8.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 = "189f8bc5db155eb0f50d0b60d321ca0dd67e15cd30749d830a21397df0b314608393c08daf70712a6077ea5ac663d5e745a836483750fd26ec1e92dda265c061";
+      sha256 = "0630c3c617d1a646ab0acdc0c18346ac29066a8a31be9995f96e5daecc74bb24";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/sl/firefox-76.0b8.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 = "f6f1d2ac3270e639bea54eb04c8f292d17ec2c4e70848a4104219800af1a17f78658eebc39d3c244e351d0511d681ab66a61358523d7edf93d4b317993cdb10c";
+      sha256 = "65cc9e3d0e6af8743a768cf23b1dcb281d5ee26cbdf0fb2f0639cfe032f8cc07";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/son/firefox-76.0b8.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 = "747f109672e47a6a344a09c32b5e2694de1ba125dd29d583a5f6a31859247e659b9ea204af31337dd5a635c0d1d7662efcf37d0d708e0936b59dfe3c975e9990";
+      sha256 = "7f25deb9d71b23647722745d813e8e115e0d08190811efa4fc0b6456ee5bc634";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/sq/firefox-76.0b8.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 = "5f6ad0ccd20bcd09783de5307a1ac2b149cf63ab922162149d8c0632698de86b78170e378dca7103374ec356bbb03b373bf573512e6b27b95550ed95178dc1f7";
+      sha256 = "e103461a63337bd7905345091edde08056eb267a522a205d6308e33d477f7d49";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/sr/firefox-76.0b8.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 = "01c8f958ff9c5e9e65459b20c7a42208bc985246445d6ed310f80fc0dae2c8bb5684e118baf1c3dc2947dfd66ca148537d94ae726e3b3d8cc01c4990e42e2f96";
+      sha256 = "cfaead5b0913dd265c18e42793a2a845aeb6e421b6c54a0f979bc80cd7a6cb18";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/sv-SE/firefox-76.0b8.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 = "1fcece2f00f98e769fd7023b5cd80eeac27b8f987291bf4041dfd90538482e7184137471cff73aaaff1c307813efa26cea3f7e77082ebe08d11769b35cd21d12";
+      sha256 = "7343ae52dc3f85d35264fb6cc86daea45deed4cc3b7c3dc3078afdfde9a48919";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ta/firefox-76.0b8.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 = "557646065e7370bfe43fffc9a57eec3da2ec8176e2371e948f70c92e54e3cd7d194022dab508c0b384545c121587e41ef19bda7ec8b1827118adf12aa82c653f";
+      sha256 = "389ae6d8db8280f74944c2c5d61dc031ba4ae4db792c1f851ff72ebfb123b17c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/te/firefox-76.0b8.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 = "d7f95cefdf312d4c3ec157208266c9eba7e394cc1deb83e4cb9baa98f99292f6d4996b4c6f663a303556769a8c6b81fa6ee127f84464fbabc8fa0f55763dced8";
+      sha256 = "e49d8a521ffc7087c8d75f5ecbb9f6c010966c9f92dd4c105278aeeee1eee865";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/th/firefox-76.0b8.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 = "9c9d80fe8157f7f844c81a99439d9e35ccd51c8cb9dd4e8c1bc16591aa2e34654440e1b926f3737790c2fe4fa1ef9720180393260adf1dc1b6d22a805ed8edf8";
+      sha256 = "a27ff17d3bd090cf5bf798465dbeb3e369ea03a738729b748a0b03bb2d0418f8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/tl/firefox-76.0b8.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 = "21fc8ba0d1374fe0dbdba8a0f5ac940085f89886f0eb7ae28aae5e152ce7d68518172238042fd0287ec62127489ae3c9b750334d38676ecc7b60633187311fde";
+      sha256 = "5826bcb2683e74bc5588c7b12099d9d2ac70ecb0026d375bea92d94a3f381f70";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/tr/firefox-76.0b8.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 = "b91dca298f68ef9f1a9ff17ecd58d7fd2f0d47193fb03781027be26ecc75d3391ff47dbd1d9b6796617df00b28ff8b2610858188cd03d87efcf704f2ad4cb0df";
+      sha256 = "73d79d2dfc0c7ac86566c1d41a6cbf6367ff57a6c5dcd459e1994d5bb8290fe8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/trs/firefox-76.0b8.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 = "ff2b2be81f48758bd52a70ec6da9cf2950fa595bd7d3a26a4929ae28a6c612aa6ca1c127318587fe4adc03257e259a1b68ea39b9b4741e7edea53c55ccb9036a";
+      sha256 = "a8b7cab92a7b449ce57a2eaf6a447e4cec99fbd8dd43ffe36dd4b87cd04c19a7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/uk/firefox-76.0b8.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 = "980175a00523c0ba2b4c67999e5afcc59946b45bc58d6b813e25dd0a5f1678d23d329dc70611bdb55d9ad9debe2adf0a5fb867a9d83d43ab5934ad2bcc132da0";
+      sha256 = "af59707ac1141ed356a9bacfa116d0a65236352f6bbbddd69e8544a551064782";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/ur/firefox-76.0b8.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 = "9648cb55f355c68852430f9a7c5486b0fb5be65c7f258b81906d19119f437e033121f46b884d65f1f64c33f511c605d8a42737a26ff7089306ed6bde4fd5ab4d";
+      sha256 = "4a6068c0384b69592312bde06631584e612fd1f17d0af4b71dbfe38fe19dd413";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/uz/firefox-76.0b8.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 = "2fdc0572a32112310044936c9b81f7238172f9ef2c2e502813b82ac0f61fa96b9d1ec96d396c7baf79c27b44673a72bd9e484d6ab68087993ab44310a52d453d";
+      sha256 = "a6f01fd45fc403dff8a97be0bcdcd2837eff7880ad039eab2cb31a2eca82c6e9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/vi/firefox-76.0b8.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 = "9b6b6ccaf74e4c3699605d43d51c02f7ccd3f4f28ed93e9b800fc0adcf662f08e554f081cc51e5706c73f308cc289976e5523d0424988b5ae3d5bb1ef6260503";
+      sha256 = "b7cc325a09e7e5a6097c81055eec760452ebff160af5e5f9b7a790a2d3fba53d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/xh/firefox-76.0b8.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 = "d417c0efde71e18f8dc04f5cb8b61c6b4410579051cf3816b55a52f3165ede2921691ed67307999ba48d6b46ea2acfdf82d063ea349fd7131402155f50dec01e";
+      sha256 = "64e6d44ed8b07fefb110463e1003cab01503a52bcb72c76d6030325cd6c796d9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/zh-CN/firefox-76.0b8.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 = "d4da856a2b142d4a088a0a5b460eaa2466da9280890c62b178d1bcfc18e91e494d7be357915880a0369ecf578b00e087cdf47eb8591d605595e9cc2356cbd086";
+      sha256 = "11312a9a212159bb929df04217292481b9aacdebc50ae941729b37f9c7c8312b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/76.0b8/linux-i686/zh-TW/firefox-76.0b8.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 = "6a43e2db9823f0ca86628b77df193183182208c27a7c0347fb0cb324b615bae58ca9319038c4ac642428f4ab0f1bea557ca46f313256d849cb10e8da87942247";
+      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 28a3c085a2f..618a6fc519d 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 = "76.0";
+  version = "79.0";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ach/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ach/firefox-79.0.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha512 = "d1bd187497c76c624e010ec50a43e68bd91cdfded37f85e02047acdb53027c79c8071632f1a31f35f0a2b52eacf94c905984f2edb7b83e0a74fb0a0565eb18a5";
+      sha256 = "25571c5d9aa4294f84d3e8aceb501efcadcc7d80dae799ee7246391782079885";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/af/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/af/firefox-79.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha512 = "bd9e45046cb566cd3fc94eec9d5587b0270417d68091da1b29eca40645b2aff4f081c2a5b0292a0e06da410a64fd1f617543bf0702852a6fe424680fdf3ec39a";
+      sha256 = "400edad1b17de72f33237d5c0fbe20dee9a2032aac41745339d62eaafd36b157";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/an/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/an/firefox-79.0.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha512 = "d5df04a513a349291d629941e519617cdcdee1c004ec8bcc3c02bf02ad310dad2dc33878268d8a4a6b115b3b02bd558159a8eaddda48e83aca29f2a377225396";
+      sha256 = "13971db840762cbe9b54c917c1cae459259df1bfc8783d0659accf539dc0bf05";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ar/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ar/firefox-79.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha512 = "753550131ee986f7a770f95959a26b24b17e0a6a5f2e12ec1b7d42b31886e32b9c93a559b7824cd5348f34f1fe26901f5198fca57ab2c9f412ce032882cf7b5b";
+      sha256 = "7c8f5692e483667ccc173d9205ab5b5b77b4e4d50a5643f4ac531b1809a97d80";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ast/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ast/firefox-79.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha512 = "8561ba0236a9524672c7ebacde935d4c3761fe2c5fc0125951d28f53c3d27388d48c108a6fa71064cbfa54cca57a72f6fb49b3b8314d28b875e250b218be4d55";
+      sha256 = "50cc5928b1877be40e29f30b51cfd183d9196bf73f68234866eff9e0e50c2e36";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/az/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/az/firefox-79.0.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha512 = "53b7a939d02ccc0a809079070afd4db528a4cb617a4fbfaa58cca573450be764e3894caf3a40477903151f8116460dc574749f0edf9bfae6981616772b649703";
+      sha256 = "6f8f0b486652ac7bb4e3808a02b123acbd4babd6b272c503c6fc14159278d492";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/be/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/be/firefox-79.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha512 = "36658c05c6b7b1f64ffe14ded709dbc08f0236f99f9457964c15a36a4ebf8d73bf482ac2f8518927b2d66fc9a1ba19289db1855a6dbc7b9502c2a3c0137bd7ab";
+      sha256 = "f2dd77674d83b888e2016177eb80c7855a7fa26318ec052fbb919fd2abab6561";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/bg/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/bg/firefox-79.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha512 = "890066ff182d6ce79cf0adf307a92a26ced29f633cbaaacd02eb5c1c3f0e2bc2de336a7b22fbb530ec85561d26dc44f93f2ce1f58843e1d87322badbdc92e8fc";
+      sha256 = "08514f73d202ed1f53f0ef23de3093ac7eb08049fedf3bb09b69c98148efb99b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/bn/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/bn/firefox-79.0.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha512 = "c6f9bda8a95351d79ecfe1e138ace440aecee6c1dc5ad2d7c6d249e5277b75b27797cdcbfa1b8d3ec2a899974f555b8b20f7c38f03a7979ca917ab050feb6cfa";
+      sha256 = "7f5114a60d966e2dedb95c1b65696bd3b04d25eb057b9a109d8bb0dc43b46f40";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/br/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/br/firefox-79.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha512 = "b15b1cd34dc4799836d67ce4ed8b166b54e21076313a2f726c7b872aeabbcc40a35c7f859cf78e0f17825fcad38b6d4dfaadf5d27ef89ebea8da0ce427492311";
+      sha256 = "816dbbdd0f86874aad38733a30b54e683c7b18557c34d977ced6cd17ddf8b125";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/bs/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/bs/firefox-79.0.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha512 = "fee05346fed30422b79af7c0626a7763f404f8a3a2617bddd17b95434060bd1c47b47409a0147c130b51d08d98de2232abe8fc7ade9bc58cc1eeccaf0987aee7";
+      sha256 = "6c975f990120e9c70121eea464e9c375df40f6aa78275922d005096135044067";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ca-valencia/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ca-valencia/firefox-79.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha512 = "beb5d44cabc7a80a0ceb4573e4e6fc2b554c6cc0ae38c9a5699d0d87d5f36aee892c4bee8ca1d103001b3305ef814f9a96a8fd63dc5b495363443f9abb4edc91";
+      sha256 = "e993527db5fac86e5a503cb7615c073363d73c733837f7acc66b30d17b7a369d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ca/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ca/firefox-79.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha512 = "1b8cc942602134a48e0d16a3244e97edafa133c74651ed4545f5e3eb515ad1881276cd2adc204e5c9cfd677dacec79030311483469174415199b9eb679729442";
+      sha256 = "8ac5bfa08c2f082816c4f7bc45a0ebdadd04a078efcd172049899890ddcc3ffc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/cak/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/cak/firefox-79.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha512 = "2738e924257a81bb1ff956a6717e6ef4769e96f5940bb0fad58030e3d2ce65e84ecb2807e6e04ca820eeba61bd386c85716112535cc28d2bd3c9e7a364c734b2";
+      sha256 = "76680375d4f2ffb8f70414e2f934fe442e30d50c1921f7eb596f1325ee01a155";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/cs/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/cs/firefox-79.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha512 = "3d58acd8bafbd11307ca58894992fcf8325a5679585d5c5e09e397b941019a8a8f7bc9b63997bcad2722e8cbba88715b789683b0428632e4ec4b728a36b54099";
+      sha256 = "99f83abcdc15839e879b7cced936fc3bb628d8b42f5381dad980d444d4fcfe1f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/cy/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/cy/firefox-79.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha512 = "aa7aa1b06c1a28e30b532d41b4cf3bbae26c42a24a63afb1999f421577afac4e4591b465b3e659ed5c9278b2c5d2c4c449a84fcfa69b451804d2a0470524ab04";
+      sha256 = "d81fee7d2b5b8177f1b28f4e4d05f4b266b876adcf5ed62a7d458465ca50bf42";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/da/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/da/firefox-79.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha512 = "48160d3a437dee94c1070e2742c6bde4a36811e8d2eae87d7c8450476b30b912bc9cbef8a5f7d917ad4be771eeede9d7fa9315e27b154f50049ce80f4911024d";
+      sha256 = "40fdbaa88e3ac77d4cc846bf01b00ba1cdb5d3241f7af8a47efc92c929c862e1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/de/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/de/firefox-79.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha512 = "fc4d0ddd9649dd555b4abd4d90f9d6cff8fe7e702bcf5d2931565c469842f51ee215286f68802304868848f043e54c8224358c8f4060435a4674401d19bd6989";
+      sha256 = "6635eb71b5f4dc01ceed02771cc4e7bf7b3ba340c75f471fb7ecfde8170f838b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/dsb/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/dsb/firefox-79.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha512 = "3cab1a498db5900b055a8bc6398e4dc9770657c41ba9bb6bf0f196566e9c535db99f02e5c51750e7c7185f2f0b1a26e84da51403775c33ef34915b43e3a8b27c";
+      sha256 = "afe56bea25e44fbd3cd1fff7411cc20473ed0212500304ed865a985c2565594c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/el/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/el/firefox-79.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha512 = "d099758283e38566a4d9db744590f42b5fd28de8e985c2f240096e158995da00711e97d6feb3979bac40a2ad57cf7876da37c4ba69f3467930415d87a2d10c50";
+      sha256 = "b83801b722069d476bdb3325051f6e0bf2c34b6081320b82824aaf218d0f968a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/en-CA/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/en-CA/firefox-79.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha512 = "442e60f0d132d96c58364e0d5f70e43ade8e6508f5d0a76b3d7e5c61bed0bffa5f9bc2096c89879dcb1681bc394699e39d3c31f2d02fa790dd8e38f1b406154c";
+      sha256 = "e5a1a6e755cf35287f455a36c2019157fc7a0de6296c0af5949f7d33c55c871b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/en-GB/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/en-GB/firefox-79.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha512 = "8c0d31a9123d8d8baf94f73505233786f7fd2ce721f8792f4cc1db337a1659badf08393a22159dcb9d8256e43f24661c3975e6a1f801e30d21bc54083f4da041";
+      sha256 = "709d89f99e96d76a77b0a1a40d7f2ef49d6709b41336973c114fc25fee2f1d49";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/en-US/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/en-US/firefox-79.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha512 = "993e5410a946f802a47d8167c83e767fa9973754cfc1365e4cc2698a25524dc27c83f3b202990744dd654d68226c601ad9608ecc49d2c3952e50967e20ece34a";
+      sha256 = "d57ce2ec9d39d4f0e1100a2faf7cfdc827eeb45db672511d5a6aea7229430f85";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/eo/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/eo/firefox-79.0.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha512 = "c2021ecd345cc45fd26ccd8a75ee66cd1eeb506a8e0f6b9811b4149b6bb15121edcdc9a0825703db52beea61f7249f45d23fa3822a9f47701adbc2e86c7ccaa3";
+      sha256 = "facef477b06aab7d67580c6931d97a26c5a7a9ae9555d92c7f31227d0e944dcd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/es-AR/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/es-AR/firefox-79.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha512 = "c397cdeebd4527189b898db2640c1a5b8b5bd4fc1664ef384662136232b5dc21f7033686d2624ec421542d1140f46cc95c8364d47e1c89a8653d541fab52e28c";
+      sha256 = "43449d930cfd29ff06a1f38b3a36cf7b2bb7aa4feef1a4509f60f1370f08539e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/es-CL/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/es-CL/firefox-79.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha512 = "86940cd36df65d0515634c7abe6c7c81157a8bd3576acd9844784041c2239d25aa455da2fc33ba9b8cac0e5a840546dda0cc04765589dab0608ebe9b3cd53967";
+      sha256 = "fd821e8cf3c2f67f0993d08dc43026b1f5454a91102dc44706587d5744a63d1c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/es-ES/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/es-ES/firefox-79.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha512 = "9a1404626e2b9716567e0c1b0a7d681acfc47bd488fcc585172fb40c4d18dc1bdd4356244c74d042ad085e0300aff73ff7619d651658655bdf7d668f64e72a3a";
+      sha256 = "b1db4d75e75bd4329cc8ff4e637f920ebab47384442fae56584f170421a18657";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/es-MX/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/es-MX/firefox-79.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha512 = "870b2b135ffe3ece3ef4d16abc74d469421742bb32fe8b0add3a39dbd580aa07e251df4137f3a2950d6992cefcf0eaff162959ad5eeeb7e493c016769ad2751d";
+      sha256 = "b08ce5a33ada7d551b341693545ec7d9c30afc4529a3e33f55836a4e2bec1a41";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/et/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/et/firefox-79.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha512 = "d20a3c1cb0649406d9cfcc22bffb4dacdee124b68c210ff25b1316be76a1ec26b7b9f21ee8d208cb7a6f1f733ae71b70af3fe084b92640cce03989f4d45cc375";
+      sha256 = "5fea2b490a7323cf9cec5e02fd148aab16c18a4bc107b1f267ca2b442eb2d53e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/eu/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/eu/firefox-79.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha512 = "fcc4a18ab042f31153e1f5a4d090c920e687687ae8be4259394a771c839e8af167efdf9b0a3cd8ae80f15e70300d24ca894ec1381bd91738b7a5c1160dcf8eac";
+      sha256 = "98f89c8e3efcdc3585c6cd0cd6de6b5ab7ab7a55266328a2fd6198e1b739fd7f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/fa/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/fa/firefox-79.0.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha512 = "7ce0bce00836d4497a440f3c66421cbab38f5b856a8b0e3dea13b88c167b689a061be7261d9daed1ddebd23f21eb806fbe72c7cf08a2f49c31ea1486287404b7";
+      sha256 = "874beed2e6b23f7edc7b51465a758243468e99e835951bb908336f16dc7baf0c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ff/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ff/firefox-79.0.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha512 = "41c0639955bb82c8042e0cd9e76c6c6b30c5baf8f94206f1932e8a56cbc21a2de53fc9b31b6dec656822e215d11259a7b2dc158e58d1edce48dbe41f2cda4098";
+      sha256 = "f84e37769376d2a05fd1d76903ff75c79e3631c2c7c5ceccdadde59de991aead";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/fi/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/fi/firefox-79.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha512 = "540f26080c0b85b71e40bb0eb5acd92d8b71cd9ad8dbe72121225afc2b9821519ed6a2d2bc58cc77b445c3fa42ac6e39647c1da8c8a8935617995dcb0376b9d8";
+      sha256 = "8898a7ba0aefe3e26c4239c8b4d3768f716004b18da5ce5799ac5fb159b699b0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/fr/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/fr/firefox-79.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha512 = "ccf845aec06d7274acc7a850702e2dbfe69db8198a44537f7f0eef6b65bdf0cb71682b2a443f0e6a5e8ff310922bd29c39229813cd12ba54f70c0fa3418ff23a";
+      sha256 = "3f6e7cd8ffa7bf343d28cd289ea14f88e4e0ccf7229ff122c118627ba909a400";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/fy-NL/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/fy-NL/firefox-79.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha512 = "5eca2e853a3458f5adf0a960cc7ec4f21db344e67e7e419ca19d34b807809bd0c954ae4011b5ee73b02d9ef88686ac57f2a0d1d3af43e6a4def2031b698cd656";
+      sha256 = "de4d6f8aa0564ff23eed16f2bb41486a62ed4fad935625eb1d26829aa281d71c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ga-IE/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ga-IE/firefox-79.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha512 = "4ceee43db5cbd6ef5b18442cba0c7c74998129280e14b20ad41de041b3053b518fe77767a7aed9c62fa2467b2d6ac36a680e276d79edbc959313b260950f7c8a";
+      sha256 = "48a595094b959f74455f568d872b3426bb6ad9be60df256d5cc1d5ac7cc688a2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/gd/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/gd/firefox-79.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha512 = "9a5115acf49a15e10a530041029081eff7bd7a6877dac1331391d5321533083162be0dbc5dcede2bb708d8a54d47af3773c89e498d8c7d99c28f7229747c0721";
+      sha256 = "8c64d89f708238affb2bc356a5f86b491d368f6b838371c62ed647291925e72a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/gl/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/gl/firefox-79.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha512 = "435de08a8d536491b645d630e81bd9190b61e0073c3b170977a995f9599b0ebd0fe4a18279f0ef40ca242e854fd43ea36dab41a86a73c515a691b621f8b74ae2";
+      sha256 = "2d391f67f0f911112332a155436e5013ebb505620e5070d03b794949df2a4f36";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/gn/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/gn/firefox-79.0.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha512 = "e4e4d05239306cbc0f91cf6d1eb890af45c40fff8ac53fa47c6dde6dbaa583d31b6e5e51bfac91d2fddba9f89e51125235b11f766ebc39ec5e55da65e1ba732d";
+      sha256 = "732951a35fc0ab79327a225ee02494eff4a17a8b5b348764f980610fcb1de6ef";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/gu-IN/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/gu-IN/firefox-79.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha512 = "727b7db843fc1722cb5d837e02388170d06f8c6ef42aba22dde9e237808e5404820c8b14dd43ec5cf2ddfcdf4883bd678d5c9aeb2845e428c096382d8a805afa";
+      sha256 = "0c3f65ab3736b43832feea9459a6fc336d0611c3221eba091c6194494eaf252c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/he/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/he/firefox-79.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha512 = "c151a281f8aaaf82a0021c20af2d12332674b27f2e5ac9c0ffea070c5c350f96de978a1662b5886f1d3b1d514061747f247ae3ebbd965e3ce940a2494c164243";
+      sha256 = "c62d4e52a2f308061fc6348531b708cfb26c0aee71a5f08f33b265af1789ea54";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/hi-IN/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/hi-IN/firefox-79.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha512 = "5048f072162e3b2cbfbcc24885aec83599a7c47bad212fbae741fa15b903014a9e29b362f1492b42341498398b009e5d929de0801a22b4333093f9057c47b42c";
+      sha256 = "e83f4fa9cd50d2389697b78eb6591b7d1c1a6b4a61ae91b429909cb3cdbe1a99";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/hr/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/hr/firefox-79.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha512 = "ebd9c280598ebec64a230f6711d4d7839feb005d790c0660fe789e129a1acba78e170686eff21e0bad558dc7e9b0dc98a9139b7fff2426d9050ec0b3ed3e815b";
+      sha256 = "10ccf56a6f388a49ab6b5aa24ab3d82cf3ee685af5fd9592fec35055c1195d48";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/hsb/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/hsb/firefox-79.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha512 = "197ea2000df14ad17191e2e7eaf54bf7bd1df21fbd25c0e18b200d2c43686c4e256be329f57254422a8e156917ea3bf312a38e332b72596b5b93b97f61319be2";
+      sha256 = "771b5bba633c08861acc056cf0cbd73752f6109f601b8d59685dcad23804e3db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/hu/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/hu/firefox-79.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha512 = "ce3b86d39f27f1a5f2287cb88bb45be0b70ca8adf7e814e3fd5191fd41ab7e33c427d8ee0d4f5c7c5b279e2079e318239aa3485771bd2f211c9f1ae2e654fc5f";
+      sha256 = "0f8631c95cc683d0c9faa5153cd3b499fa89374f6d8c2d0ef161074b03355d2b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/hy-AM/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/hy-AM/firefox-79.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha512 = "022053cf588d2f7aebb564342068d4bf3763dde50f3bbcf433dd2d7e5d90ecb134f9302b44f5bdcc84f56e74c7c965555e931ac7b6d85ce58dafe838026a91b6";
+      sha256 = "e3f6989cf2716b455d5d962c88307a74cd57d57c8585f31a4007579534b168a3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ia/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ia/firefox-79.0.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha512 = "bd57679165653b1557569d20eaa3ca83011e5704b76e3f29730e91d2c7a5fb553ab3563a1f26d38100ff8330d7efbbd133e959c4ae5c534da2e0888dac12ca5d";
+      sha256 = "aa769627a633e32b8bab9dc1e0cb3e4030a9d6af36c66a6fd365520eb978a7a3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/id/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/id/firefox-79.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha512 = "72a391de2d665db794e5624f341245a85a85c45d8d2f3c71bcf526b273bbf1a06cdfca5e9d45ec05627570ee496e0899fd7756066f6f40a86df088c4e5025ac2";
+      sha256 = "179529666d1dce606758f7a7ee700e1823a7c4f5840195ed57a5eb48f2ce21ac";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/is/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/is/firefox-79.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha512 = "8707e9ea8665b0f2f773c98b7c457c00c99528676afaebd56570fea1460b11ac016ca257f10397e447581a3a8966db671bf33634255c015104c8435c067fbce3";
+      sha256 = "53f5231e74ee28eef4ecf954ac850f1e6070fb7be51e7c8a0aa8477e0c9325e3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/it/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/it/firefox-79.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha512 = "10d74b74ca47e406919ac9589937ecadc55b637678f895d6bb3700aa072c261416591378845fcc2f032755da08a4e996c726fa1694b18883feb9fb90a36ab71e";
+      sha256 = "410c0c6f119b70006a947ea34ed1462247f4cfda996cf9797423784c8833776f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ja/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ja/firefox-79.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha512 = "9d7d45b0e1ef893145bce37a137e648b6292febbb08e66a0f0e8b6e9765e19ed3e864483c3892d327f3c75a4f73592a5cb2957ff6c17b20d19bf18179df5b083";
+      sha256 = "38f1f110e1490626908dad0e8f638453e70adc2afe66da5ae834a889e0ed13b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ka/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ka/firefox-79.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha512 = "22730ebd0eec5fe1c9f993c8964c81b31d2bce1b1b7ba901c3a7911d9544659e459fdd19024bb551169d17c9430e15a92c039969379da28a49db2f0b04d799c4";
+      sha256 = "bd38f5fe5707a0ca0aee0de7d1ec8afcc92fa0faa8661b724b876c0faf5bccf7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/kab/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/kab/firefox-79.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha512 = "e7455deffe566f95239e6b1b6eb5a4b20d849ff9f0fa26518d993581b5e76975e41a5bdb54f69be7ff182437ceca868779b67c6a6c118155569dd8792793979e";
+      sha256 = "d7c748eeeb4d26433147b02d08b57f41be742b86480220d4fa7ae08823ae7984";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/kk/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/kk/firefox-79.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha512 = "56e36532e5babf3682edf5f278b971897cbd4854b0864dde5aedffa6a7828048557dee5992f9eabdfdb67c2054abc0dc2e5d0df8ec5882b07d8b266183177e06";
+      sha256 = "8e3f43b8551b9844aeccfb21390ae1ce59eb7acde612efa4d9eeb4bcfc81bf60";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/km/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/km/firefox-79.0.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha512 = "6d1ef5fb7b555d667bc1ced25b7ef49f8832b9c077b113db79ff8509d845d693af33bcccf4039805fc0c69293139a22f24ea3294706097ebde859cd0f9aae8bb";
+      sha256 = "44819213495492477fc7401b816f45b2a7d3d4e6b5b04b2b5dbb73380fc60ef0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/kn/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/kn/firefox-79.0.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha512 = "04626f922214d666f1da224b2ba52960f1697ff76a0b40f92718c536eb07de6b319700566a9c3d702e50b137d54b7a75af474bdf56d39bf80165b8430b636944";
+      sha256 = "89b97b079894174c2826e6106806d6bf9a46a3499e0e458a8219ba9f5ce6722e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ko/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ko/firefox-79.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha512 = "e83f42c7c24b5a0536510ee736114d8e8ab6c6393ce63ca9e2f9d0e0216831b192781d0617e9793c6a8b687429275eafa6f84a8839900858412abff751256a4f";
+      sha256 = "731f9a98b4edfcf249fd08f94e8849a8f1c396ed577c0a1ed921b2d58863d029";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/lij/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/lij/firefox-79.0.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha512 = "524261eaf2fd311f92d85df46459bba17b06ca4e1a61a14453c9edbf37c31b1de2d781d466812c250353546bbde2044c79626840297c76a3986fc6ef869db863";
+      sha256 = "a3325d7298d0cffc04757e3d4617725145ab5dcb11d359b029f92e70cfa47905";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/lt/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/lt/firefox-79.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha512 = "f9c0665c4f4fa6f4a8f0fcc02b92c88d0c9eefcc7b018dd54c605c6b0f024282e25645ddf14cb2bc82827f7c4c8191a83c38d4d749af45db07bb81df99ec6d44";
+      sha256 = "2071fa08893ca0b55181478c677669577c9011e8f4d39b499aaec939046e45e4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/lv/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/lv/firefox-79.0.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha512 = "b89f91a5223a2431ea272115b18fba29491d60ab5e0a69af4a1152644596b477876a7c8109ba08c5210b782ad11ddd2b65c775a4fe8cba1126b21cf31e31d1e9";
+      sha256 = "b6639a338afa0fe86e0324d844740caa9260b26e3f06d075348999253f0a0bc7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/mk/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/mk/firefox-79.0.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha512 = "f10771c9b2f8634259b7252488e4fd3f9b249b33ab59ce9a02c77d0c4cdc5c567222a91271d4cf3949decd86602613e9fcf9e5e8a403f91255ad8a69bf2351dc";
+      sha256 = "e06db923b89559735663c93b551f31e48cd12b86f5fc7fdf78e8db88fba48d59";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/mr/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/mr/firefox-79.0.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha512 = "49bf1846a330c4d43d554f048bc1c5061c1059d62c57ffa224d19b3b4b2fdc806be73e6bea8409763be182b37ab6a1243652c62f5f3e48a36c3443f509a06c56";
+      sha256 = "dcd161187ddb20eaad0353c7ba0bf7d5d0149c8bc324151d41d013e5756a7e35";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ms/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ms/firefox-79.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha512 = "018622ef6cec81de014191bf94f88aa1a7ce732324f70a1524e3866e5500ee93dc6ac48dff4603b2f86b909301ebd2440ab87bf976cf041f6f8ecc4bc7da25fc";
+      sha256 = "d309a899fe69b3b17a33c43093ce78e1942b497e3e3db252a46968884bb9d737";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/my/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/my/firefox-79.0.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha512 = "24685648158e9da5e74bba611884c3d260e7bad4eb3b6b2e70cf57f15d505b87a7886868e88bfaf440f03f37f7da04fb6fcaa5947ac6ecb62a987b24e0be5759";
+      sha256 = "9f74bf01425741e1c08d5a637e20b3df7e5aefc0421da14eb3ecc8199a03a0d9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/nb-NO/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/nb-NO/firefox-79.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha512 = "4fd040d08c704cbcade0a290020d591fc265bcbf63467f93c58603a3f96af06cb3b38d03aae5a32b4b78fe2c4f89ef81112a69bf539fa052b721f549423b42d9";
+      sha256 = "638a017eb9d5f7402565dd293c44b236460be99d718fa43cfa705a55eca949e3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ne-NP/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ne-NP/firefox-79.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha512 = "0708208411de209aad6a692dc1b867011d589f2fe1e60dbb5c8448f96735d811aca6a444f7a3ae2d93a2953965b57a728e3af1b2a31ff8c86d1941a21ac2147a";
+      sha256 = "d7d0b87b0f3aa4c8cfe1d6a44b011c167b48e19384031a302d0e0eb5bf422951";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/nl/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/nl/firefox-79.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha512 = "2c6df617fe9e4c3ba1940aa86e313fa4a5e64db98f4df9abdcef2a5e7832e8586e939646e435c9725e5b97ec80da0f987b620a78faaf445c374a46cdda862f23";
+      sha256 = "88a6ed36cf8116634010f5a1ab27fb22f2519974ba10dd48deb2a6fbb2ac659e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/nn-NO/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/nn-NO/firefox-79.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha512 = "5f02a673edacd9e9e9171c7324b3b45974bc5374fc5a05835a450b6aad1219dc76ee50dd4084243523fc3e10e7b65a51f33e33009f4393f790a9a8430442d87f";
+      sha256 = "aa6475e941d6e2f724447a94c2000f9f8983d872a317d4ccb1df421128687564";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/oc/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/oc/firefox-79.0.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha512 = "cf24d386d8ad5a927e86929d053eebaf03be667bee4a4d0a85a76b6030e85f254b8e9b14091cb17ce3082890affa2c75ae2c1c0da8e007fed5189c9c2fb3b95a";
+      sha256 = "2535537159fd34b6680cb676d607e3810f78d2db2130e35c1086210c8fc40c0e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/pa-IN/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/pa-IN/firefox-79.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha512 = "1a8f07e70425bc65552fa82a16eb4009e036de60a6b84aacf7a4d47c2763b00b116f61fb87aa2a5dc28d2e09a82dc3621470b5589b3fba449e2eadf2996686aa";
+      sha256 = "ddf3f2da7c31bf2b52e9dc4ad9f3d2b25c42e4c621594bb48a9213d2a18ea91a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/pl/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/pl/firefox-79.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha512 = "ba8dcd5ad68f8506d4c637be831365fe230209ef58640da8bfec20cde9447daab678229e0a82931c022aa0c6fecdd0e405e92a4bfd51d7627235b689aa78c555";
+      sha256 = "efb57f54e1cdf5a99b84856fa12d8591cc970d5850bab7595a5e804458b1f430";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/pt-BR/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/pt-BR/firefox-79.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha512 = "fa1f67341221a907f24ce2953fd75a0003c04540a7673173fdc333081c82c24e68c0fcaa85e10264435a9540e356e94f0b4d5b38d892821bd307530ee10f9b7a";
+      sha256 = "704d84a395b6d24b33723121785cc17d36ffb95eec1c550895f61277add01cba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/pt-PT/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/pt-PT/firefox-79.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha512 = "c282b71b30ee4f2f67d98551eaeb1700d2867e8ae1f19dad417f8774b8a91db63ecc14c37712910b7476e837c4c23f4871a20d2afe37f61ba4ba0ca4b1684569";
+      sha256 = "c8f67765c2bd151c68a973135ad67c46287aa11bd8055b1ee084e7c18bdc7a38";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/rm/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/rm/firefox-79.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha512 = "70cd918ccbeade126f36dee76600f7c6e78ec3291a12e6d60f684dbf5fba322bb7ab847cda9f101af5b48d9b0374573e8f6295dd8683ff3acf9a89512117d054";
+      sha256 = "5fe367fc5338a867cf16322fd4cfb55899275825a6aababbcc95be1f2df54a79";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ro/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ro/firefox-79.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha512 = "acf9a4914255bdde374ecdd77b39190c945621c51ab13b2d9e1e8b1655df593c6c7e174113d89e8b1afd223e6a0f63560ef4d991706d5f23db35a939ddf793da";
+      sha256 = "f22ce12f453e7c08a1fa1277f80a24038a2906d556c5d96fd6c331b185f38bcb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ru/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ru/firefox-79.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha512 = "9457048e428958b55ae221471cfb2874ca16ea9c1e34a33d538b9964e6ed77711283207106814f6d18ab73f8c690e6c20b2c84d361242b228cc92c7ddb675a27";
+      sha256 = "057a5c87914e98c056a2213c348bbe72be46cad8566d7cdb0f68370b19f4b313";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/si/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/si/firefox-79.0.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha512 = "897b488d3ba0592b902f2cdc4eeb2f454b9b6f67fb5e4c583f5f49fb062483ce1d30e64f6273894c698406f8be7dd8a2af02a67e8d9bf47f8d30a572fb18e7c9";
+      sha256 = "9b97d6588b9f304e090dd5c0258f0209fc7229ccf7ce21d6fb0d6da1f829dd38";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/sk/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/sk/firefox-79.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha512 = "2847545533829f45c22b85368c5fe262e2a43cef0e5d480a540ca47f0dacc8003b8e155b11098944c7012b03feb8ddca216649f645c46da0975183f42580e285";
+      sha256 = "621fb92cccbf325edf25ea274e90fe9533a0ce5fdb1e0bd9f266b4a1f3a47ffa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/sl/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/sl/firefox-79.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha512 = "9b0223b409774a62216c97e522696700dd95b65e1755d889d58137602fe4302d8f5280464636d94c97cfdde8c56e49492005e487730b591d19bc947271754e1e";
+      sha256 = "f840e911bebf98a7917f15421fcd8feaeb72097659bd3fb0f3d1fcd2e348ec75";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/son/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/son/firefox-79.0.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha512 = "097ff1df64b7ef62eee3a29672447c42c46dc23741ebe87365c4d41159052ba3560f7a10956dbae6b67daaf80607600d2241dd997573b8ef8c54fa94f064e629";
+      sha256 = "9b834f1895db63a263d3f2ce2567095b8000ad39d0753020f69a704dac7d12f7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/sq/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/sq/firefox-79.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha512 = "8a76a933f261708504fb637a93bf4d600514558f08832ceae8db23a404e5d911ef23803436e5513a4b7e4cb85f536e64c5ed801457ad2e1f9c559dfd1f8be807";
+      sha256 = "7136196b26f6e9b963d86e1cd9a088f9d2a7751e08193a59dd27c00b08da4d4f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/sr/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/sr/firefox-79.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha512 = "bf7d631608e91989a8cb63cc07b8e253cc2c764e9f712eb113c7b735bbe2da04ddcc91d43fc418eb208a75f4027256cfb10d15c21e82b7e3eea096ce6fce9a5a";
+      sha256 = "6cd5ce0c122a3b9cb6c066ab8df57277bec7d78e4fab9f15ef88c7ca16a6a3e1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/sv-SE/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/sv-SE/firefox-79.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha512 = "cfec4b5942c193b37e881569de1d40907d44b7ffdd6a08fdc3dc44ad27151427de0e368a08e4888d9248e07fda8de54f1b7d1eb3e106f0cb41c7fa1a8e4acb10";
+      sha256 = "ed0104efacbe6c4054b5d6a2c4397c13db38d245bd557dfe8ed876334bb232a1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ta/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ta/firefox-79.0.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha512 = "8f487289fff43075239d79d1d4b8b0e9e7a645a8dca26eff58ec32e534a870b5b67232ea6d43dc58b1b4bae9be8af65793f185e4b5747d9c374fe7802b92c9b4";
+      sha256 = "4589d31f7ba58e6f149ddf64f6020b262cfa9a7b8c228ddbad5ac9032013bb74";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/te/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/te/firefox-79.0.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha512 = "a3ed83d4c34fe6d24c2d33c490d6d2de6fe56382bb87807f530bef967c25bfb9a00a1958ca13f2936357e3f1d75b029dd2bb89a13171574bc022f7da8b4f49f6";
+      sha256 = "3bae0a5ae9735ba623b8f3b4f333169f4f99fc37c43ee29e65221aae21060d9e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/th/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/th/firefox-79.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha512 = "54c9f36ff4f00f1bfa3f947930988ce6985bf4e2682613a8368ab60d07abd02d3171cd2457987b2bcdd7d0929003580af9e4683b7e0f529b1ff3661004aafff7";
+      sha256 = "eac036a449108ee78cf3d527a85abcb87b0c116d78e71d7a0274f326ebcf1218";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/tl/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/tl/firefox-79.0.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha512 = "6dd5f5908e9ca66b7ab9e132dd6db3c5c2ea2e28eb9de211ceb6d2736746fcd50408cd327f098ffe1beb57199af6b60827bc11614c4c781d109ff315ccf9d7c8";
+      sha256 = "f8c9053e62b80b7ad1f20e622c25d01b8926c89b8780f1ae642d922d293d5018";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/tr/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/tr/firefox-79.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha512 = "0222ab139a87a195fcc4489a2d2b1024e95b4b76d4ffd8c63408ab3f4c9ea0e4be019a57e31ef3eee3216fb0217c01cd92cbab9ea33b2d7f0a4660326dd0b8ce";
+      sha256 = "8c6d089c9b0a1acdddbaf01d44b274da4a7d01751239dd017add9c7a0867dd38";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/trs/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/trs/firefox-79.0.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha512 = "a50634af2bb7d9cdd8ae8fd268b2bd5f24bbe68e7bfcb810e51921a56db7f831e84e73f93001a12f83a269a27df956df03e70aaf6231925b08399bc54aa71de7";
+      sha256 = "086b1b43a42f3c1487ead061b822b94274dd58b927df5b481f8079b960b52dc3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/uk/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/uk/firefox-79.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha512 = "9e32876027449c3b145cf7088b5b9bf7d941d3086f6d1da1dd13f3f06138b1c7c375dd7561d9342dd7a1aad1adae6da3a2f354927be1318eb79703753dbb0d00";
+      sha256 = "e3ee4bf352916f57bece093a079ef58f68a1d3c60d39e02ac7ba9587b98b6cf9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/ur/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/ur/firefox-79.0.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha512 = "f4331e2c47373a612083697f4a693d7c05edda3f08518642617aa274e735f7a64ac49f28a0c1681addfe488107367377757b12dedae49a14a4752ca726d0fe02";
+      sha256 = "7e485392f74814c874c2efd153add419a110c790514f4fef4bad0a4c5043751f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/uz/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/uz/firefox-79.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha512 = "ba7a39e9f8537bb5fff9253d01b3fb2a0c815c3d93fda024d1da6dffcaf313e7c75068c302887355b0e1b498157917be5f290fe81a2c30f8303c33ae2f23d9fe";
+      sha256 = "7a9f0e8e1a776d1155c609bce03380ecad60c2259a05248ddabb65a6c2f8080f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/vi/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/vi/firefox-79.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha512 = "4382a78302dac11f2ec626627c65c528d756364b8332c0124cbfd45ce9ae226d4b42eddf723e306a1b1e0b7bb3fe70c9efd3019f91993ac2e140492900fc0ab0";
+      sha256 = "a50f5c651093bb205f5cf7d1c44c12994d0aa73cf3a3cf1dea22e3754c6943e0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/xh/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/xh/firefox-79.0.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha512 = "b23a1f3b7fa906fd6dc25638d8cafdf3adfe63346fdcdcf878b9f0f98c8803631fa608fd75086aa7808fa0d4730ea7a89998e2d695b2d1f140a178f14294d318";
+      sha256 = "a94a46b428a87a3cd543dfcdbef46708931e18b377c548b11ca565067c953ebb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/zh-CN/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/zh-CN/firefox-79.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha512 = "b73405a8872f079f5f69cbd9fd69aa60e614a0e22f1f933be9a8a9e7312fca362549f57af17629548694e92679c763786978fb572faf4f9f6cb72d64b2661d60";
+      sha256 = "911e0b9591dea07aab26e4e35e84645d79c132fcfcabe504ff242ac87d853834";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-x86_64/zh-TW/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-x86_64/zh-TW/firefox-79.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha512 = "0069f82c583d88e9630fcb70c481969ada68a7ce919c4f5ab12ee442ca77f69d15179a46e5f2e7850a6686bcd6cd896f2e03163ddaa7e88affe6d62856d1fde6";
+      sha256 = "58afd8192b08eb343da9385344b87ad0e72046cdda26495a5534a75f12d40d38";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ach/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ach/firefox-79.0.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha512 = "1e81c77813d8f489ca2d2d75dcf74ef1085ddb367df885c2d25cc7051d759f26685da89860f67920a49ae4331762be74fbd2293bc2a6e0549187ed8fde643d4c";
+      sha256 = "055e0f66d0e5e3c9f3bc7ae94f6bd46a8ab0bb87dcefc2cace02f4ebbbabbf33";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/af/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/af/firefox-79.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha512 = "a753254f0e302af7aea86499c1b03cec34a83691eff48231840a20c0afff1c595fab893d804b83aa0964eb5e570185102a701d31c668764d58c4715b3d0feeea";
+      sha256 = "0705f3f63655b6b55604d9b2b801ea07bacf2f0060ce6a2ca6c1d6021c35a594";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/an/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/an/firefox-79.0.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha512 = "e1fa38d89cdc7d7c9a01f8de5ee19316b1ddbdce1f4f868e8ce1bbbf22e68b8f741246a5ba4f2a4e67c959b9575c73acd7b88e918e3be5fa285dc5ed42e9af61";
+      sha256 = "f1735cdcb500df69cf66886f194d101393f8e5880b790fc135348e6515fc7ba5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ar/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ar/firefox-79.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha512 = "10270f9783b09b09fd7f43b8f3c4196d332644820796b097ca219819e81bd5fe23ffcd4df988d3f2f3d59fd005e38feece57b7dedb84a78aac6af7965e73421c";
+      sha256 = "97dc4e314f361d7afc3e77d13d712f45306af21e4ef2e5737409b9932b341f92";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ast/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ast/firefox-79.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha512 = "1df6b8b479fe391bd128cd9b175ddc233b19b61b3f538ee75ba7728a4b59e4cf1ec09bd9576f82df66e89048b62ebd9cd2206038a0387492cf7b1994c36d84b2";
+      sha256 = "2cb19f22bc6372d4b3406d87b19acc4ec61cf60317869392145b7405a820b7ea";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/az/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/az/firefox-79.0.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha512 = "81305694cb1601b45d09aedb7bf6c0ecdda500c95209abaa00feb2cd2aaa1f5d86f5bb18933f00cbb5a6b676710db4e96495b17141cc62dea06c26483d90976f";
+      sha256 = "83fe4b78ca684c9a58702451e4f8bbc9ee4a67aeb066d74699f7e3d471e0a16c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/be/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/be/firefox-79.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha512 = "13e5c72791ccc0ee12844d8a9ffdb5ac60a2a9d79bb3f25818f4f1b3b606137b5eb3c8911f81d654028cef48a00d9cf10841465c7fe0304000357c62d964ec44";
+      sha256 = "f08a685b2b99d3f508487215e426af802097599752ab82dfbd801c063588194a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/bg/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/bg/firefox-79.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha512 = "06a1ba2fc944a15375029ff12ed9f566ccf6a795ea8e63743be8084c7e11004d72693c65b8a330cf945a530fde5298c69c83a0f549edca8fa50d85a904ee744f";
+      sha256 = "a5d3c78d91e813358e7b1c33c10854f43112398ee88310c078aa0b5db00b7518";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/bn/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/bn/firefox-79.0.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha512 = "4b4c8871d5da372ddd15ac410ecfae08385a74b68e142b64e4e463d58b1e60583025f3855375b5adffb8a218839f86cf538a96dd285dabde96f8695af2ed1a4d";
+      sha256 = "eab386c0bc37dbe0ab2c8b51a470bc9f65a8f59ad17223d95fe631507da8fefa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/br/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/br/firefox-79.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha512 = "e33d927f88d4e0a67b28f27ed32696cadba6241fd3bb48800e68248173bcd7085adfd3dd3700c8d4ddf5be3df93403e20e9c0d57db9ff5d6a141ed58b74c26b8";
+      sha256 = "125e5bfe77bac8d9155b07d057e3e8e8de3c3b4bb3aa3de192f2ae55ab9f4e33";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/bs/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/bs/firefox-79.0.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha512 = "680587ff748248a665751f004b02d0b0d4e28f90f672141961d47cff6239823431b863e8ba702cad8f43fa70b295ad69b47954d2abe2fcec423e68f704fddc6c";
+      sha256 = "6d9fafc803b098e8fe93911e9d07baa28765dff6b072aa911f74b2076cef54f3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ca-valencia/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ca-valencia/firefox-79.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha512 = "3f740ce2af373a3154372796edc4e85f8bf87b83cf4895328dcdb357aa4214e7711cdacbed596c4d7a1ce1ccc16bfba32fdf2d38749f3144faf747d05e76e208";
+      sha256 = "91d71b2538e059c9aed1d7a564125c25bca6f6c8213eb247aea7357b1f27b9a3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ca/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ca/firefox-79.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha512 = "ea9b71eee4f6e967753acf4e9f0a4014eeadadc6d1bcc5fad11a5975b778f92cade729338636d86a783ca08b0363942d7d9b7e4ad65fc3186760189ead9bf0ae";
+      sha256 = "5088cc39fd0b18926e6821348373f834a8b5d093ccaf9152cfc8da3157522734";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/cak/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/cak/firefox-79.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha512 = "bab4ceb14749b67877a99b96f47aa7a9d6d65281e78fc416d3bc3e5296ba2133d7548ccfd4ab32637c976d178fc911f55b6acc60dc6658b4193e1c6146bb641d";
+      sha256 = "31c9be88e0263e0968fa2ebba0673234532d6a99d5cf97ab7b863b814d9d140e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/cs/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/cs/firefox-79.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha512 = "e33adfe91886dc66f09cce26dc33ea26cdf432915674541a8fbde09cb41d2b14c0ebb3c41683cb1c29908dd652c83c92bacea3b8cab9bb3e8d9d6010a19f9646";
+      sha256 = "a606452009ca9e9e7d5f44fc9b42a222e3f557ac4d338c90ab9335dbd96e6683";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/cy/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/cy/firefox-79.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha512 = "1c5b5d518914fb69b6a978fbb8530589c0aa117da1f2f7398696fe29c6177f0ee932f88bfabeab049bdc80d6e457835a492853ee9095b10f12b68172004a2b73";
+      sha256 = "a8254adacb701007945e4cbb48d861358cfefd4f590e509264ecdd4e0e858235";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/da/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/da/firefox-79.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha512 = "90d385bf3faaea5ec6884c4042a72e6a23c68f1454309bc933670d0fed7a5aac2210ab4c6b23755d883fed385ae0f11639a932c2540687b219aa009067a3ab89";
+      sha256 = "350ce9d092799302a8c3830fc756c7ddacc752f9b42e70bd73dc1d61a1d1d07b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/de/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/de/firefox-79.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha512 = "7fbc20a9cef66a6760fa314f2d074d2c597b420fee45fbc8c61a85f963130564e18d47a97833299283faf5c959d12f70e4f99089dabcbc3d83f3bfbefaec0f63";
+      sha256 = "576c95fc5aadbaeba43991b2fb28e13cd3f18f2e81e6584a0208328a4f9c5ca6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/dsb/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/dsb/firefox-79.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha512 = "2dc3dde5159c64b61a4599a0ee2aaf3e4d9e71d7a3913e086c0c187cca48e8bbaebf7d4253dab7a3cb4fbce55a1119e3f4c30026671b92b70059b8b3256e72db";
+      sha256 = "024054a027af7a4e8f68a299ae24a47eaa2ab2e69a847cfaa053295cd454b947";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/el/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/el/firefox-79.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha512 = "73bfdcc5482d5793c0c5673738ae08cb6a2187e61d8ee057ef89f4ceb801bfeec48b8c0a9f48bdd996bca8ae4a232afc61c6539a1c22c7bf96d06180364cecc6";
+      sha256 = "63ff8a79ec70c7ce44d8375e5ee377754e329f32ad751b87de214707984eba7f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/en-CA/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/en-CA/firefox-79.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha512 = "baf1441e6f6ce7a31ce5ff12b600b61068bdbb9beebfe74f6c9b97ed2533ec734bc34b702caa9e9c59bb4563bfdd64c2612151793067cef3ffa1fb0ada312e28";
+      sha256 = "eb8597936d2a3a2747827227082743a5b267ee12b45f16e901ab87ad897ae780";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/en-GB/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/en-GB/firefox-79.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha512 = "60b276043c2ec3456b6b06acd2edf6f3df5149824d20c33974f3ac77fa0ef81a03f99f337add0209bb88b390fbf4dec08a30da207ad72ef91c9a89cd36e4452d";
+      sha256 = "8a1b4c0320439cd3ac22b46fc111564b7ed68ba9f04c7b20a276ac550ebd84e6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/en-US/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/en-US/firefox-79.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha512 = "26eae1d8a6f9e988695d59d418749fde988e48514d7c183039ee998b400f480dae16e9d5a590ff4364954e57a4008e7104cece212fa81fe73666d2bf3f0c0020";
+      sha256 = "d56bc3d81f7e1807852b326d3f0b00f9e745fe4f8b97c0ffc64aee979db4fa15";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/eo/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/eo/firefox-79.0.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha512 = "55aee2c68a1cb6b7e374f2622c8aa30a8f26e14ea0f0119d97bbe6e807c15c7df94ec74c0f31ef071ea7b112c3bd8ee501c7d7b33ab5eae9a8126b2fc9673047";
+      sha256 = "cd979e28dbf2032ed8f1e5c7c84eda3ddefdef4223749b6fd61ef2f727401a4e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/es-AR/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/es-AR/firefox-79.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha512 = "dbd5aa229d0123a26290330df078967bff4d0484bcdcc3eb499a7cdc82176b49a2362a0ab08e2b55286141b25c8cd4970308cf48a1143a5af788eced5b84b83b";
+      sha256 = "4875b4139be6ddcf1e7bff57c3045f29e7730a7bd0e38fffa0443bd0f3aa45a4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/es-CL/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/es-CL/firefox-79.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha512 = "5082bef600a311f560daa09b31945961766a0ec63ebf9f38a0f0e76560fca2a99594c1f26fd0b57a2dca0c94d1991a91501ee3e931740e59010c93d46d3e8a67";
+      sha256 = "68bf54d52e45e0b8e0cfd27ec39e3ff97307e91bcede2f2d2561ac5139d179b8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/es-ES/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/es-ES/firefox-79.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha512 = "87ef420353069862cd539aa8e53f93f50330e0c68bfa4a56913e9245bd4a972bcd271a7c159218f9ffb78c9d9be3046206f20fad4faae3d76e4e9687530ea6b8";
+      sha256 = "e324772591d019b5b27a00716c30ed0f8803dee83276b19b43f5808f584d5000";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/es-MX/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/es-MX/firefox-79.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha512 = "d02362e93a290f34063fdfa7af8fea71a6cb92b964b872bfac8f5b5665dc6ce9cde7a38a445de1074fa8673cc2c0243af69e2663542c5c2fb8e53f2c41518cbd";
+      sha256 = "bf40f1eec6d42c5706a2ae0f840ec00778801d98476dd6055a7170e8ebe8033a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/et/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/et/firefox-79.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha512 = "0064c56cf6cfc38a5eff201f16df5c9037da8089655df5c88a348ffbeaf933941d5ce99b3618293d2154774b483298b4c28616c6e175fe0f6c9124ce00bb16f9";
+      sha256 = "d0f45fa9c2e9559efe0376a53d1bfc7fed04a408d563419e283a0e1a4b4f0840";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/eu/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/eu/firefox-79.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha512 = "bf5cd434f45bd057de94bdc219f25e4da878a0be58c4a864a22961ac5677d0a679204a069220cdfb353d319d493e10d3423888999de6701e33227b1dde16e43b";
+      sha256 = "def48b817fcd432a3573a1d17bbc4dc8616e8b94366836406cf6341d610ba3aa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/fa/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/fa/firefox-79.0.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha512 = "402f980bbffd145e9f6f832ad4bff8c6dbb0db9a77a303ffe16c44b449668e621c2edf75e41686cc69684069efa10b7853d57ed5ee928298bad5ed27c253eed0";
+      sha256 = "08e4e0c50bb80aba30c2f3666cf568c39bd031938a1e2a6b9fd092da688e3b4f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ff/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ff/firefox-79.0.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha512 = "baae62b09a0a7fef88f64b43b854dc8c4ff583765338c4dd1e00db9c7717adfb3d8817c776cfc88f88ae6865d490a08bf4d0c97824ae3280835769ca04fd8c71";
+      sha256 = "3e9e75e5501d2a5d1d1d11e628d6b9acbd613f3a0f7aed005752f4d07f15686d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/fi/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/fi/firefox-79.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha512 = "161da9aa8cd66a9f691b218f5d11cdae19fbfb04f44a77e266731afdb7202af98f165e33107af15ee6ced477b0ae07d78f91f57d14fec0e9a6de24847cc73976";
+      sha256 = "61e0d7ee1d4b0d8dfbea3869766497d88dcbf0c467d41d07ea45309d03839a49";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/fr/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/fr/firefox-79.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha512 = "150677eb9c0aafb0486dce2c846e0997f6eb1ccfb022a9ec2914628fa2affc32801fc34f0397fdade3cbe3afd1897ead515bc240043dd1cc7b879d92566a47c5";
+      sha256 = "9c502d317ae781e82a69a80c864958ea23eeed18b215b9f08a7ecc024bcc6249";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/fy-NL/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/fy-NL/firefox-79.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha512 = "b03e12ebeed5af0150715176e32a7da3ce20a57d227f3ef6da369f6fa27059cb23a8af0b4e165027598894c572d02e4d58e8fdb9a48b86d3bdc35385a249287f";
+      sha256 = "05ed05024ebdb58eb2c178c30da5d0f013299ffbf42c26b7e28c0bd1053106f5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ga-IE/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ga-IE/firefox-79.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha512 = "7122e4f914f5e8d42393a86e61baeecbcdf6fff646ddb38cbb2d7324a0be90d60bf609824f2dcc696c107f856a867e0ac9717fc098b1db3571bf60fb6d3b8a28";
+      sha256 = "101f512b07c22c24d55fab970b1d5140f6f7a54d470652511e8d053d5d3ba265";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/gd/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/gd/firefox-79.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha512 = "f35b295657bbceb293cf1bb88a140d629f0b1fc654cf3f1ebcb5d9de84f40b17a9a7bc8973dc6699c4c6609e5cfbb858df52c0153ed4dcde6eff2e25c38f7ad0";
+      sha256 = "2a7998045852b8f3bcc86aecf40b5582724da71eb14d1fa612184dacdc751fcc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/gl/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/gl/firefox-79.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha512 = "4a4a37fdce02108118cca5fddc2f2ebfeddb8a4fad97ef0584fb85748e09d43abe79b0d3f7b5250deeaec8ec0b2e698771100dca486831fdde09f41d8d77b093";
+      sha256 = "0aa2c2ca4cdffedc5d17e4223c2cc6e96ce89bc69989ae10be683bcd61f4a143";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/gn/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/gn/firefox-79.0.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha512 = "6c4969572ce922eca81344f1b05747d3935f88486082bdc64c814825af2cfdf27eac7f8f0c25edfd4d249b9f469ada0b062abd0aff02b9849c7055e40bec5b67";
+      sha256 = "4e9f93db434ef45712c11ef5e3e812dba5927183d73da81db3b9698f35c51585";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/gu-IN/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/gu-IN/firefox-79.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha512 = "a5d1daf151be8d23dde730945343bfd507ba29314ab8acb71e4d5e71b534eadc573eb4eec1bcae0ab0bd72735cd891b72d8d931b634680881bf65f63a4a7abab";
+      sha256 = "f2c3cbef250bfdac654ec2eaf438f51c059521b6a0d1694427013b949a323cdd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/he/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/he/firefox-79.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha512 = "87b6c4a1dfdb49bc9430d9740612d24ec9f61d74bd379caebef6d19fb3492cfd1a4c8112126ab509af1f35e3f6e10062a786a0e5397b424e057e9d13c924fd7d";
+      sha256 = "3b4d9dc608998b2d76db3ab2f21826983a12284bffa22e76ec60a275c5a54f97";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/hi-IN/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/hi-IN/firefox-79.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha512 = "e2b96ab462227f70f4208b52b144d852e657edd3fc9885ba6b4217461a414a6aac6dedc206b4fc82d269c768662ce94ccc6cb3e0f096250d074b3d91ffa98c9e";
+      sha256 = "840ff442beb5c0599f7c67a00adf840a8f4306f2bc6ac8f2397af0b876304741";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/hr/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/hr/firefox-79.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha512 = "1fcaff37d60936b68a6f2e368c414c69718e114bcdcf8f71114f5e3dfea1eb2fbfc8b5e237406576daae74f8c4371d8a824d2542dcdd36221c931a86c9ea7175";
+      sha256 = "e0098a3069cb9b86becd2f77a671731bd849a568d2fffb6064528f802e5cd6c6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/hsb/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/hsb/firefox-79.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha512 = "5146346331ed881f0f85f42bb43f4b4884cdeb659b392db28f7a534c685a579405fa482ad14c6c4e20422e8e22b07f2fc35ead1f3756539dcee797fb0df8c1dd";
+      sha256 = "8322028ef47168ecc2928284e0a96d36c9208dfa2a7f3eae6f7449fb77753e62";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/hu/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/hu/firefox-79.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha512 = "eb043d50e735f1b99eab7cedef601aa302dce2b0270f08a9e93c1b1fa9b85da87305aa94e8db638e81dd8f6d9bed96b6c22f87928026cb042964bbb51420fff2";
+      sha256 = "801b62419499f9ae9fa48848aafdad7258cc95f7b04b1ade6d3cbf6663a6b3dc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/hy-AM/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/hy-AM/firefox-79.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha512 = "eb0553646d6b53a41bff160379845b0a21c28815ea523ab0de21230ce6c519b7ee07c9d97ce26f2078f3c66448dcd1c09e978bb1f748e548d1b5c2e0fe4e7f7a";
+      sha256 = "7b4af441958fbffbf43b7e1ff8e97d62dfd3aef2076bcdf1fb1eda8006093721";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ia/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ia/firefox-79.0.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha512 = "b43efaa2e45de94e9be8b8b9bea50966b0fa089dff9e25671577c724f45d0dba502044c2da7de32cf1431a38aaa92c2e5856659fb7f1ee557e38616beb4a9c96";
+      sha256 = "ee2bf28f2cb18a5cdeb51420042d624c40bbaea73e4c567eb801273f0c4c8095";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/id/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/id/firefox-79.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha512 = "5fd68752ab6309af0bbc6d523e2e251c8378ac0a6c2ba0627b37ddf7dbb1efc444901a254944f4384a6fc10ccd1909f6312c0fd7c9e700ba5f223ccdf76d30d5";
+      sha256 = "1083dbcab9b2b297869ef7a4a65ee04b63e851805e7fe7f7977fbe6d2f69828c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/is/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/is/firefox-79.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha512 = "1c128e7fffc103347329cbd65037e798292d5b0e843f878ffc44d9d53c32f1d9a917acd694cb3662ba0089e79063421705f30d39e9736c88b9c439660147b949";
+      sha256 = "c2c475e280f3f52a134182ac6dc679273c29198605d9214f4ceeb09e57f2cdf5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/it/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/it/firefox-79.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha512 = "890812041bb3ab8cb0ddc6a54222fec9f4e342f9734f3c92f9d0452122cceff739eb46d92ebef5d2571509e4c7821704a64da1ec3dfe8150193a6dc5b4aa8477";
+      sha256 = "d7de926e398e6291e031f737da63fe223c7e4c70c01994bf74c8461e04af0840";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ja/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ja/firefox-79.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha512 = "13703e62dd8d6728553524723828cf7bd8db672febeff63324c93e300a9ed6c2f3b1919d6f4bf8f1f74164df278a0c95ac98c348531581b717ab09e921490a91";
+      sha256 = "a5f1c6bd8bd5aba351511838c04a35f26aa107ca43d87489ae24bac3831df165";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ka/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ka/firefox-79.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha512 = "929b2e3ca70c8d9ee11405b1366faf957cde5075dec5631a49ebc724d4912291b1f3826ee01e5c90e2d68c09b2664599ed73e4f597298ffb066ff8419a8056d8";
+      sha256 = "513c9c885f741162301a980daf84eff5aa42f45aaf766a9b3e1376fea83bb78a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/kab/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/kab/firefox-79.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha512 = "83900bd13db0731508e516bfafb5bb540a43f6b8ba9c9e2e9c0878d67e9cd8f9b6b496e5b77ccf314346ea3089f6d95c1902b9280741ac3325638e972794872a";
+      sha256 = "15fd46b89f7ea425121d02aef931bbaf624391e7039d81e646d6551303598579";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/kk/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/kk/firefox-79.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha512 = "a62767e00ba2c0d522f503331c2b6eb4cc82d3abb4879711c2d9f611c8454f2cbfa5e76707e6ec6ce54df8d40f64da6ad8af2e15079ea75b3b8ec55e6273ef2f";
+      sha256 = "82a29718fdff57e6d02f8cc6ae76bb604d0e14374e7881c120ff6e38c4b21995";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/km/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/km/firefox-79.0.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha512 = "03a47578e51da36b51bbaa98e36927a1a5b3f216ff6ed60c337d905f414902c7638cdd361b5d8f4c29960dc93b19343b18567c7b40106f0e7e95fa941c0dae88";
+      sha256 = "406c361b49d9e5cb6eb952e5be0eea3a8b9ff535a3edb6dc1c60ec6171d5ae49";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/kn/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/kn/firefox-79.0.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha512 = "c4cb00f4383f73c65930ff3626342cb53695ca4aaa29ec5f80400ed4d18e4dc87dc44445069c62265112980ac7a061d0839f542a792aa5d294561b201445b677";
+      sha256 = "0839a7af990a70523355047e5cfd24e73d0c8816cd12f2a21aa8cc244d9ef90c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ko/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ko/firefox-79.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha512 = "72fc61f2429fbef846eec40e53f50bd95d3b6b728d78e2199408b052b0d85ea66fbd6d2a114cd046311f88b419eeb7447b062cc9c5824cbae572debe872656db";
+      sha256 = "2ed856441ea51d642027b800911f134c27207dd8a53ee5a27b9674eb11417b05";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/lij/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/lij/firefox-79.0.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha512 = "9192d46b8b16129243ee2f5af47cd0f8fdf9af3ac953ae6481452cdd1f4da9ad9b75aa9c1b96416cba47dc16ca867db3135da810f32df5a33bed233a3b68f447";
+      sha256 = "653c7c4be39dfc49f89e5e6c591ebc953ef0bff5a9d827d348dad26e3f06bcd8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/lt/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/lt/firefox-79.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha512 = "89a5c07f1c1b7b389bf7074feb6b7c29470bfb143b720503783c35cabb36fbd0e5c3fe31349e1004728f128db36148ad6dd07f389099fab17c8a6d078c37675d";
+      sha256 = "b61fe55f65029ab661d0b589cc5301c6131b778d55524de6b13779dd2d0d6c35";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/lv/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/lv/firefox-79.0.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha512 = "1bc60805513cfd6ab6d563108fecb176766e77bf10203c942ada3878d062e6a75c54129505fa63f16aeb72f4a1c6b360f7e65e8f23433d20fe134692e53f4210";
+      sha256 = "2f9a99d7a344984736cb422ccc106db8d175f31c1b1a108852494b7201ff67cc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/mk/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/mk/firefox-79.0.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha512 = "811449cc14b5bc3185c56a8ea2b640a3fdfcb60b309ae9ccb5498196677e1431719897e3e239dec4ee964575187430c1a0a1b4fa48fbd29dc874a1edceb7fd00";
+      sha256 = "0cdde250523fbdbb8b651660fccbe1afe65068c263e03fe7ce26d9758fba7bba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/mr/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/mr/firefox-79.0.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha512 = "940563e7a93a08372790ea3f0403c4facc900a6ec680c0e7d71fa10978fbe484c448f1e7bdc8096e26528a969178273223592daba724296f423b1293b79aa5fe";
+      sha256 = "0df4e48be06d800d1fa308841a1890f7b1c87e63b34901cdd1481a63a7080d24";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ms/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ms/firefox-79.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha512 = "ab8d456745a815934736ae25cf597dd6eec2dc25320dfe99c6af804823ad71b482b19eae071be08763c82678e7c966bd86ab1bc285925945b6800ab725dbebe5";
+      sha256 = "3fc1dcbe6c72acbee7a68ebf6a8b08b9961a5a04eb05f0cac86ac8fc56953917";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/my/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/my/firefox-79.0.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha512 = "a8b4532eda52b3543767a28fb9550b21324c72976b71fd2101665e0ca89c63c4b1d8272a9f425feacb3bef188b43edacf603ac87fa1a3dd19c374d22877ac02f";
+      sha256 = "aba83f9c9f41dc5660a480b6821dff2c405900d9370c3d1414a892ad0e44161a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/nb-NO/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/nb-NO/firefox-79.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha512 = "a68193718025329d73e07b7199fc6a11e4834cf3f0ca327efbc182d0b33bff342e8a3012ae180fec2167f842781ae9c6d63d29e312e2385ee06e4ef25c851fbe";
+      sha256 = "34e9cfa0bd9a065b58edeffffff690abb6240e90f1d788146ac3976d9e7d9cc7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ne-NP/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ne-NP/firefox-79.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha512 = "5ba2c7da5741d45b376de87c9d3abd65de5a74885cac25ba0c7c8a81d681c0dd0fb870764208b62aecbc93122daea5cd7dba1fec41a1d97eda0dc674f16dd6cd";
+      sha256 = "8031d15b84eb3baa73064ba592434d4d36ae94c6bb3b7c9fa359f93486be3ea8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/nl/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/nl/firefox-79.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha512 = "941cbc8f65b1b307f998c853010bd373541aa8043f1fc97e261453f7d49ed7ad9880e0cd85fd1bdb5b4b038272e210d9eeb7a5a24f27f1212ffbfde494c87b04";
+      sha256 = "33f19d81143a26b7472b70558c2187a4ed39f67ba95e28332c7e8a8699aa33e9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/nn-NO/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/nn-NO/firefox-79.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha512 = "0c0dd5ce17626e96c3e88a9771272f60e93c7ad4f1f40710d8b70d4f40a58010933de89a2b381dac94831db786621a35ef6894f46f1b19026c0eb7ce0b172459";
+      sha256 = "ca27dd578f8054df63b77c314d3504a2277139cc2d54d43f8c202771ad12e76c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/oc/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/oc/firefox-79.0.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha512 = "169b6a1a48b2711ecdccdd6a685ee10b5f602d0300cac13b56feb331901be88edf6e8386ce6e4bfc108f419de305a5603445f5b7561b37358a75adb8e8d418e0";
+      sha256 = "336cfde595de21f8ee355ec4e6a240da8a8946f357a100629ab0d0d883bee335";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/pa-IN/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/pa-IN/firefox-79.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha512 = "96dda02dda90aaa1de2bd31e04d87b37a179773d1f3f8094d33fcdfa6ffc78616f9d7539b4405911a6dfd31382cba91ce34ca6680c36e7aec22493d3bf6f15fa";
+      sha256 = "bb51ced0f4993862a7d025b1b504e29fb96e6341336c3fc61ffc6d3ffc18d884";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/pl/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/pl/firefox-79.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha512 = "326b8b65388b6e7d8215a665fd6acd9ad9fd5a03edfd6ee428dc53b217df7b108a351094530621c5b78f3cfaed90092c17e1d1c9656a37a10c108aa441ae0e47";
+      sha256 = "c44b50bc19b0ba7cb198d144f05b10d5f453c110463dd945534ccd180b71c7d1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/pt-BR/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/pt-BR/firefox-79.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha512 = "70a56009e39e06b701de62c7df02d3d648e04ffe94d2718f2f2cc4ee24f19e832decf0371425ab9791ed5db6a5b56d5f221163d3bd67bcbf6cd48617114353c4";
+      sha256 = "6cda521f9c8a02c948dd1461fafff84e7e1b793815b6f25697a78751264dc689";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/pt-PT/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/pt-PT/firefox-79.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha512 = "33a770a0ea0c177c1d839056f4045e41e8e2102e840c99c48abd2cb49733d44af2753f040696e859eb724dfbb6dddc3357bf505620f74c0c29b92211d8ab9572";
+      sha256 = "56e5ced26db5466aebcd7108dc3f499b243631bf61505a1fffb92b2eeb2cb5cc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/rm/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/rm/firefox-79.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha512 = "233af09f6a4ebb88aa678362c85244f1465d5da57e193b26d676543d0d1df9e673b25096da705178d1784cf3682fb6a1d12564525b77723eca0924bad7ecb0e4";
+      sha256 = "47913299e22f8b955bd5307241d368cb3c29d6a0bb0d90d5ed7667b85b6aa0e3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ro/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ro/firefox-79.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha512 = "6be29acfa925e3524c83ccd6915523cb8a37143855361b46fbd71465002f8791426ea9985d34486db17edffcf53d6197b7115cc0dd38a2be16502d07d3b26cf9";
+      sha256 = "528c36c4361f42a3d90f076800b0b73c8c1d630ae97ba33ff59e72d30d203cab";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ru/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ru/firefox-79.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha512 = "46b2a7b8370fc173101dd1e78ce12e363f80a852d55b2e6be9f5b31232888750e07937afa60bee2571e0b3b18ca2987ffbbad8c6065d4bb71064c34acc46c3a1";
+      sha256 = "ff1a33da0bd8bb7c2d7f460724c292b7433087ba5596258cc4bbbac2087d81b7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/si/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/si/firefox-79.0.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha512 = "934144d99326a139d994518e5aa763cf32035a7d310fa94eba7b4a2b7cf40eaff732dc20100f7bba35dbf415b7a5fc22c5122ef40a65732566063d4517321ffb";
+      sha256 = "675d6238f6bcf07751ec5356f3f4824d681ef28ac26255e1bae84cdab23ac0a7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/sk/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/sk/firefox-79.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha512 = "a892ced0d9c5dac7cda65cd67abc1232d5be3ba8ebc2c98181f504b68d43018fc392e0e5b4b12ed22f1ca1b6469be83f68b12e60fad28fd42eba18d9b8d4d7b0";
+      sha256 = "141416a2320bf355cf9f3ca33ec3983b5089c5b2c9172cf03e00d21577b570c9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/sl/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/sl/firefox-79.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha512 = "229175292f435f3cb1db7ba671933508ba7b4daba1aa5db0ed9f03fe8bb83778a0b951b0248a27b4e4a7beaa374f9bc4eef3b2762596b22bd45045efc3038be3";
+      sha256 = "6d062305ad9e40add4f8c84d051647df8c6b3e083011e00d9380f3e2eb6f128b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/son/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/son/firefox-79.0.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha512 = "44d585391132de3c4df67bdec4a5062bf71af4ae32084e0602de93d75c279e8ee76a022aa19926eee03a31022b4d7eb9feab8e349c2a6547b85f8a42f5b122d1";
+      sha256 = "2e2adcfe7f26adac4aa820acbe894fa567f53faf2854eca3febf2d7fb66c97ee";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/sq/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/sq/firefox-79.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha512 = "f0b04a81888f8cac58e311f9f4fe16111a414f541bd1a5b3dc2fda028cf85b3a701ae5b91d223a3d6542580c1bec5459dd4dfe90cac517d3f974c1084ed6be1f";
+      sha256 = "eeddc2cb86011cbec49ace8c954ae9724ebb9a800cacd4354cfbee782ce7e481";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/sr/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/sr/firefox-79.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha512 = "c3fae910a582dbcb5b8609dbfce0d759d776667e34c737755968f1a531e83b58b098b8a88bd948ee820ab76328210631b7d85ff65a88be630f795522831a7014";
+      sha256 = "88081a8c78e039aca0774b1ad61eb3508b9d4bf088cfd27e6b420431dcc6b95a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/sv-SE/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/sv-SE/firefox-79.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha512 = "fd5feca0a4a107b018329ab2fc1d7eab9c0e51d2660d8356cba4792cf73f1176fd19411580f98a469f47eb6bacb2c311134194ee612caa7ad8a5a0021b062420";
+      sha256 = "51096fc91f7bd36b6bf66c57eb870cfbc62c42880ef2b7d3ae8032c49b5dc07d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ta/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ta/firefox-79.0.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha512 = "c54d20862ec7c09e4ceaca3afb120938beb7ec0bf1c38e651355fad1247c61e75acbd0fe6b96a17fc19136720ba55755a8bb04726c714c812a333c9e300b9463";
+      sha256 = "06f1af1fff1eff74d3aee7a7bffc7485911d350daf216bc8a3f6462b85ab28e7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/te/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/te/firefox-79.0.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha512 = "a594904a68ccd42f5e6c0a829100fb99e37732a29775273ac202fbb65785549bbdf638e8ddbcf6b7269161cafd229354b5b350be8e2f2360892bcf17ef777e07";
+      sha256 = "5921702973c5c808f396fad81e736ffe7b9948996997cde5f721e55a6b0c172b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/th/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/th/firefox-79.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha512 = "45b5fca122f7900da176ff3d55dd70a1a2d594fd9119b75760dc094b7a254e21aa6455c8370650f1b17d69ec1e81749881635d176dc72a45eec8f632d3a2e0f2";
+      sha256 = "5e8ff4f8b3204ed67545c4c68cc225ef7e28ce9c63108efdfb1ced7c77e2ce6e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/tl/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/tl/firefox-79.0.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha512 = "06b3fd1f4cf030377854ea39bfe0818322123d53299a3f5d7308db32683f3992240099491422858c3104079b566958dfa60b58248c0c6adcd0153d584429fca2";
+      sha256 = "72b9a9cef7a4d166e9d33e0a89d00a1c270d1e6b4e5039356f6145bab0d8f6a0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/tr/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/tr/firefox-79.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha512 = "2cb1d03ced3d88344e24bda60687e9a0c34aade38fd635a63ffea3f072188bf6f5ab76cc7c54188280932c225f1e5c9b7c6cea4d2ee0b1798335e84b7826c886";
+      sha256 = "38cc4e45e3222633b7f85c59eb1fc8a993f4b77ffe9b50478ae894fb68f67304";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/trs/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/trs/firefox-79.0.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha512 = "6fa6eb60bef978b82e6805c3a083ee40418125416f139bfae2695c2a4b28e34081a984e8c8e092e449e28fae28d812ac2c76b808da83f79c2be4e7f5361f4536";
+      sha256 = "f82d215f8a1a9b5b07ab71cadf75ef007e57b987d025c14fa671305dc5087182";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/uk/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/uk/firefox-79.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha512 = "e412938a9ff5bca8b770a83a2f7b9a03f92fc155df9088f60d758aa41c47bb348e331e34c8b04b1b2b5c796ec34261aebedc697c058bc5457265ee7b87d2d773";
+      sha256 = "014d024f4d14f465393f096147b661919dc1793289e68c4d13b6b01dba42d4d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/ur/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/ur/firefox-79.0.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha512 = "8a4d50ceae88d1ccb354135fa10df40a2427bc0e704dca5b7ceafafbfcb3970eb57d4d6eb427330a2198894e67e2da2532adcdf5f900f5e8ed15727e1dc4fa84";
+      sha256 = "c2b7382f1e511dd7c79b3d5854059c403f633ec4423ec31dd9395d6dca4d31ee";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/uz/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/uz/firefox-79.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha512 = "cb1be90d64caa7ac445cc7a6b3549350eaf8859e7a4e662e602eee4218de98944360bcd828b62bdcf18a5a602b153a1e4cfb0bdac92a802a8b071f349c88262a";
+      sha256 = "66e35eb3fe6aef2a3d4986a585072f96b55877b0a15ce81c41096e1f1c001f2a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/vi/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/vi/firefox-79.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha512 = "69fc97339bd8fddedf12ac5f545c2f768cb071c4786f08c43fe61775e43b2dcf065d84d23ef9b9fb3f09c6df6364413f61fec0fa1cdeea2b4b769e3ef0bf124f";
+      sha256 = "d1cdb32bfb6f6d8e41d3f32de0c86654660d5d7ca4bfe0e763eeb799c0ead10f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/xh/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/xh/firefox-79.0.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha512 = "b8013f7c0e1cfad11ef950015444105b1e8512d778fe4b2a7567e0613a1191a7a929c5fdca9c15ab846da05f189fea1b0c137784ca1061b43f7ebada27376a06";
+      sha256 = "508d17ec13f5b3e1d18641451374efb72331fe68b254f8a71bef4807c318bb9e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/zh-CN/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/zh-CN/firefox-79.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha512 = "154bfde5424cca1af2e624596755fe95a1504be0ce977162117e937b6ab6ec6b03b1cdb470ef62c710129d19a16c42fac334477f8638de6472b742ab2395b262";
+      sha256 = "cf2f5617c652209daef0e6e5176181f2659e188f9007d7accb4041c030c54fad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/76.0/linux-i686/zh-TW/firefox-76.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/79.0/linux-i686/zh-TW/firefox-79.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha512 = "6c3d36ba9e4682600c2a99d6837dfe76032d6d1618c0ddb8dab5633c2961d413959e9fe0a9c0fc7ef4bbbc41af469a92fab566d24458c43c1671cd3288dcaae8";
+      sha256 = "ec99c9201151f134d72450513c518816f244fec0af6de2bb4ee08d3286b709f1";
     }
     ];
 }
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 5dc791631d8..2fc15a42a8b 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -2,13 +2,13 @@
 , src, unpackPhase ? null, patches ? []
 , extraNativeBuildInputs ? [], extraConfigureFlags ? [], extraMakeFlags ? [] }:
 
-{ lib, stdenv, pkgconfig, pango, perl, python2, python3, zip, libIDL
+{ lib, stdenv, pkgconfig, pango, perl, python2, python3, zip
 , libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
 , freetype, fontconfig, file, nspr, nss, libnotify
 , 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
@@ -104,14 +104,14 @@ stdenv.mkDerivation ({
   patchFlags = [ "-p1" "-l" ];
 
   buildInputs = [
-    gtk2 perl zip libIDL libjpeg zlib bzip2
+    gtk2 perl zip libjpeg zlib bzip2
     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
@@ -138,7 +140,6 @@ stdenv.mkDerivation ({
     "-Wno-error=format-security");
 
   postPatch = ''
-    substituteInPlace third_party/prio/prio/rand.c --replace 'nspr/prinit.h' 'prinit.h'
     rm -rf obj-x86_64-pc-linux-gnu
   '';
 
@@ -176,9 +177,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"
@@ -201,7 +203,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
@@ -209,19 +210,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") [
@@ -274,6 +277,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 d33535da376..62181321cac 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 = "76.0";
+    ffversion = "79.0";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "3dq9h84w1qqidabbrl34jgyjr8bbmbf5wddjazpr7znfm49fn2xyg8fmm5lx9dakghk3wp8yhfi36gmk08fzlrm47v6h17dm9hkh0hz";
+      sha512 = "0zgf7wdcz992a4dy1rj0ax0k65an7h9p9iihka3jy4jd7w4g2d0x4mxz5iqn2y26hmgnkvjb921zh28biikahgygqja3z2pcx26ic0r";
     };
 
     patches = [
@@ -33,12 +33,40 @@ rec {
     };
   };
 
-  firefox-esr-68 = common rec {
+  firefox-esr-78 = common rec {
     pname = "firefox-esr";
-    ffversion = "68.8.0esr";
+    ffversion = "78.1.0esr";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "2rl5irkamxi8caa8krj0wng93lb82kk9mf09mgci87mj9hy6fxzcrlmiiffp14s03rv0raagrn4w54pbx1336mylq6saxmfhpf676hk";
+      sha512 = "223v796vjsvgs3yw442c8qbsbh43l1aniial05rl70hx44rh9sg108ripj8q83p5l9m0sp67x6ixd2xvifizv6461a1zra1rvbb1caa";
+    };
+
+    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.11.0esr";
+    src = fetchurl {
+      url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
+      sha512 = "0zg41jnbnpsa07xaizwfsmfav0cgxdqnh8i4yanxy49a45gigk895zqrx2if7pfsmdnj9zpwj9prj8cpnpsfhv6p62f3g2596aa9kvx";
     };
 
     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 52773bf291a..424c45d305e 100644
--- a/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -2,7 +2,7 @@
 
 ## various stuff that can be plugged in
 , flashplayer, hal-flash
-, ffmpeg_4, xorg, libpulseaudio, libcanberra-gtk2, libglvnd
+, ffmpeg, xorg, libpulseaudio, libcanberra-gtk2, libglvnd
 , gnome3/*.gnome-shell*/
 , browserpass, chrome-gnome-shell, uget-integrator, plasma-browser-integration, bukubrow
 , tridactyl-native
@@ -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 ]
-            ++ lib.optional ffmpegSupport ffmpeg_4
+      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,9 +87,9 @@ 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 = "Application;Network;WebBrowser;";
+        categories = "Network;WebBrowser;";
         mimeType = stdenv.lib.concatStringsSep ";" [
           "text/html"
           "text/xml"
@@ -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 e5cd08f7df7..fa19c4efa9d 100644
--- a/pkgs/applications/networking/browsers/google-chrome/default.nix
+++ b/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -7,6 +7,9 @@
 , dbus, gtk2, gtk3, gdk-pixbuf, gcc-unwrapped, at-spi2-atk, at-spi2-core
 , kerberos, libdrm, mesa
 
+# Command line programs
+, coreutils
+
 # command line arguments which are always set e.g "--disable-gpu"
 , commandLineArgs ? ""
 
@@ -58,7 +61,7 @@ let
     liberation_ttf curl utillinux xdg_utils wget
     flac harfbuzz icu libpng opusWithCustomModes snappy speechd
     bzip2 libcap at-spi2-atk at-spi2-core
-    kerberos libdrm mesa
+    kerberos libdrm mesa coreutils
   ] ++ optional pulseSupport libpulseaudio
     ++ [ gtk ];
 
@@ -102,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 \
@@ -110,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/kristall/default.nix b/pkgs/applications/networking/browsers/kristall/default.nix
new file mode 100644
index 00000000000..4028f8622c3
--- /dev/null
+++ b/pkgs/applications/networking/browsers/kristall/default.nix
@@ -0,0 +1,31 @@
+{ lib, mkDerivation, fetchFromGitHub, qtbase, qtmultimedia }:
+
+mkDerivation rec {
+  pname = "kristall";
+  version = "0.3";
+  src = fetchFromGitHub {
+    owner = "MasterQ32";
+    repo = "kristall";
+    rev = "V" + version;
+    sha256 = "07nf7w6ilzs5g6isnvsmhh4qa1zsprgjyf0zy7rhpx4ikkj8c8zq";
+  };
+
+  buildInputs = [ qtbase qtmultimedia ];
+
+  qmakeFlags = [ "src/kristall.pro" ];
+
+  installPhase = ''
+    install -Dt $out/bin kristall
+    install -D Kristall.desktop $out/share/applications/net.random-projects.kristall.desktop
+  '';
+
+  meta = with lib;
+    src.meta // {
+      description =
+        "Graphical small-internet client, supports gemini, http, https, gopher, finger";
+      homepage = "https://random-projects.net/projects/kristall.gemini";
+      maintainers = with maintainers; [ ehmry ];
+      license = licenses.gpl3;
+      inherit (qtmultimedia.meta) platforms;
+    };
+}
diff --git a/pkgs/applications/networking/browsers/links2/default.nix b/pkgs/applications/networking/browsers/links2/default.nix
index d58fc8fd19b..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;
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     homepage = "http://links.twibright.com/";
     description = "A small browser with some graphics support";
     maintainers = with maintainers; [ raskin ];
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
index 6672a75d574..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.363";
+  version = "32.0.0.414";
 
   src = fetchurl {
     url =
@@ -85,14 +85,14 @@ stdenv.mkDerivation rec {
     sha256 =
       if debug then
         if arch == "x86_64" then
-          "06711k4vbn6mqfd8gvx2snsxyalhw15hn5b64sja8726z5rxvzy7"
+          "184qy9zxk9ynp6avz1j0ca5mxqqqlhrc0m7d1cjxv39jfdiyz51i"
         else
-          "0v584aqhy4xk08afi3ypkq4mqjq57y136z82i5ixyim88dqbaf4f"
+          "1m8fay452zps5yw1qpsc6irxxdvqjhkwxg066ckxkjf68gln7cmn"
       else
         if arch == "x86_64" then
-          "1g1ijxypm8a8mfc1x58gksmaakqpp7xmf277wiir8zqjn3vd6c64"
+          "0ng04yig7msq4mv01ngfsh7mkxia18j3k9clnp0y0sbpr60z8s83"
         else
-          "13nbxmqmbxqvdhdwdqimim2f9fz3y2vrsx6b3pck6352m4i4wzh8";
+          "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 3661f6edb53..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.363";
+  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
-        "03zhza8lvc1nvz3racwfsajfd6rnbw3g56dp5wvr1qmaps8xaaqg"
+        "1sfvxi0ngk1ny912hw1zp0l3v6md6qqpvnyab3h45562m2fm6vqz"
       else
-        "0bhp7jv2l2agfzr8m564k749a5g75dw1390phlwvf49n1h8ldap2";
+        "0pxb3fhwvajvb28w11iylx5rp0h1f4s2aiii53gz28sq082w9br4";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix
index 686ffee9148..f2bf39b548b 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 .";
diff --git a/pkgs/applications/networking/browsers/palemoon/default.nix b/pkgs/applications/networking/browsers/palemoon/default.nix
index b22a35bc54f..c59d23ecdba 100644
--- a/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, lib, fetchgit, makeDesktopItem
+{ stdenv, lib, fetchFromGitHub, writeScript, desktop-file-utils
 , pkgconfig, autoconf213, alsaLib, bzip2, cairo
-, dbus, dbus-glib, ffmpeg, file, fontconfig, freetype
+, dbus, dbus-glib, ffmpeg_3, file, fontconfig, freetype
 , gnome2, gnum4, gtk2, hunspell, libevent, libjpeg
 , libnotify, libstartup_notification, makeWrapper
 , libGLU, libGL, perl, python2, libpulseaudio
@@ -11,44 +11,42 @@
 
 let
 
-  libPath = lib.makeLibraryPath [ ffmpeg ];
+  libPath = lib.makeLibraryPath [ ffmpeg_3 ];
   gtkVersion = if withGTK3 then "3" else "2";
 
 in stdenv.mkDerivation rec {
   pname = "palemoon";
-  version = "28.9.1";
+  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 = "1772by9r9l1l0wmj4hs89r3zyckcbrq1krb09bn3pxvjjywzvkfl";
+    sha256 = "1cc75972nhmxkkynkky1m2fijbf3qlzvpxsd98mxlx0b7h4d3l5l";
     fetchSubmodules = true;
   };
 
-  desktopItem = makeDesktopItem {
-    name = "palemoon";
-    exec = "palemoon %U";
-    icon = "palemoon";
-    desktopName = "Pale Moon";
-    genericName = "Web Browser";
-    categories = "Application;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 = [
-    alsaLib bzip2 cairo dbus dbus-glib ffmpeg fontconfig freetype
+    alsaLib bzip2 cairo dbus dbus-glib ffmpeg_3 fontconfig freetype
     gnome2.GConf gtk2 hunspell libevent libjpeg libnotify
     libstartup_notification libGLU libGL
     libpulseaudio unzip yasm zip zlib
@@ -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 edb5b2759e2..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.11.1";
+  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 = "0cxmmw002f5rvxzyhlhzqm2ipf64w4vspf298p6c5kpg535m8cvs";
+    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 97a03ccbab5..21a34539b86 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -29,7 +29,7 @@
 
 # Media support (implies audio support)
 , mediaSupport ? true
-, ffmpeg
+, ffmpeg_3
 
 , gmp
 
@@ -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
@@ -83,26 +84,26 @@ let
   ]
   ++ optionals pulseaudioSupport [ libpulseaudio ]
   ++ optionals mediaSupport [
-    ffmpeg
+    ffmpeg_3
   ];
 
   # Library search path for the fte transport
   fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
 
   # Upstream source
-  version = "9.0.9";
+  version = "9.5.3";
 
   lang = "en-US";
 
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
-      sha256 = "0ws4s0jn559j1ih60wqspxvr5wpqww29kzk0xzzbr56wfyahp4fg";
+      sha256 = "1kqvr0sag94xdkq85k426qq1hz2b52m315yz51w6hvc87d8332b4";
     };
 
     i686-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
-      sha256 = "0sv73jlv0qwlkxgqkmqg1flsa9lbkxa4yahny5wrfgsbw74xibkl";
+      sha256 = "179g00xw964d6x11wvzs84r7d6rcczx7ganqrxrs499yklscc46b";
     };
   };
 in
@@ -401,8 +402,9 @@ stdenv.mkDerivation rec {
       the `/nix/store`.
     '';
     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 25ee5462b29..567a75a31ab 100644
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
@@ -4,7 +4,7 @@
 , 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, libxslt, libxml2, at-spi2-core
+, 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 libxslt libxml2
+    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,6 +189,11 @@ 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
 
@@ -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 1dd9baa628a..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.363";
+    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 = "0znk8an892mykgbz56hyv3gz65vc9mhb3vn96c6bsvicwl1fn460";
+      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 f6f3c06e937..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.122" = {
-    rev = "81.0.4044.122-2";
-    sha256 = "0bbr4a2gkgm3ykdgpj8x58sd3dwam6qkifhzfs2997681g7b2v2q";
+  "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 77505b47d85..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 = "1s16wl101yabq0l7w0q50lxkr2gn090pcaj6l5sj6g5xvi9lhgbf";
-    sha256bin64 = "0k6fsqlpiwp9vds83hb3cg9xf74hqgbfdm3ijyad2rmwc5rqk0ax";
-    version = "83.0.4103.14";
+    sha256 = "0yf6j0459qzr677zsa2apmfz0x0ndlscvwj1a5v40nqjijchv5qp";
+    sha256bin64 = "017ix9a74f2gzlg6in0x6fqgiw8bpk0rypr6wsqqkslywprypjd0";
+    version = "84.0.4147.89";
   };
   dev = {
-    sha256 = "0djppzwzpfyyfjb1mhy5wws2379m3wpzyk2x3kw5nd0mdz35hbny";
-    sha256bin64 = "1wg55qhfvd5zvigjl6496za81mh9b2c5da53zy07bk8wj91ly8pf";
-    version = "84.0.4115.5";
+    sha256 = "1dbbr7s8vbhxd0sk4k2yqp630zp1r4gzkkd2a86pzlzq2mjhsk8a";
+    sha256bin64 = "0bphfwi6nkj9nzrjjaffiv27xfblgdikyifsbjl6vv2pawkh335q";
+    version = "85.0.4183.15";
   };
   stable = {
-    sha256 = "0ahqh3vmzbpai4xwn7qybgw9phc8ssjdvfc7384mxqk9swqgv7qg";
-    sha256bin64 = "0gpgim244594m35qwf625blwdqgjbp4qr846wq75a9a9zqwqs05w";
-    version = "81.0.4044.122";
+    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 7a542a71d1e..2fe4c638929 100644
--- a/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -1,9 +1,9 @@
 { stdenv, fetchurl, zlib, libX11, libXext, libSM, libICE
 , libXfixes, libXt, libXi, libXcursor, libXScrnSaver, libXcomposite, libXdamage, libXtst, libXrandr
-, alsaLib, dbus, cups, libexif, ffmpeg, systemd
+, 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
@@ -18,11 +18,11 @@ let
   vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
 in stdenv.mkDerivation rec {
   pname = "vivaldi";
-  version = "2.11.1811.52-1";
+  version = "3.1.1929.45-1";
 
   src = fetchurl {
     url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
-    sha256 = "0bq9ggk75xzka2nbrnc7vghq8s7jjy9nbfmyrf51kf0nni1zg1fp";
+    sha256 = "0pg16zs9fcr6b360igszpkia3i8i5xf4m0hs1b2a17lf8vkldix9";
   };
 
   unpackPhase = ''
@@ -35,9 +35,9 @@ in stdenv.mkDerivation rec {
   buildInputs = [
     stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE libxcb
     libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr
-    atk at-spi2-atk at-spi2-core alsaLib dbus cups gtk3 gdk-pixbuf libexif ffmpeg systemd
+    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/browsers/webbrowser/default.nix b/pkgs/applications/networking/browsers/webbrowser/default.nix
new file mode 100644
index 00000000000..d1075817078
--- /dev/null
+++ b/pkgs/applications/networking/browsers/webbrowser/default.nix
@@ -0,0 +1,108 @@
+{ stdenv, lib, fetchgit, makeDesktopItem, pkgconfig, makeWrapper
+# Build
+, python2, autoconf213, yasm, perl, ccache
+, unzip, gnome2, gnum4
+
+# Runtime
+, xorg, zip, freetype, fontconfig, glibc, libffi
+, dbus, dbus-glib, gtk2, alsaLib, jack2, ffmpeg
+}:
+
+let
+
+  libPath = lib.makeLibraryPath [ ffmpeg ];
+
+in stdenv.mkDerivation rec {
+  pname = "webbrowser";
+  version = "29.0.0rc1";
+
+  src = fetchgit {
+    url = "https://git.nuegia.net/webbrowser.git";
+    rev = version;
+    sha256 = "1d82943mla6q3257081d946kgms91dg0n93va3zlzm9hbbqilzm6";
+    fetchSubmodules = true;
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "webbrowser";
+    exec = "webbrowser %U";
+    icon = "webbrowser";
+    desktopName = "Web Browser";
+    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"
+    ];
+  };
+
+  nativeBuildInputs = [
+    gnum4 makeWrapper perl pkgconfig python2 ccache
+  ];
+
+  buildInputs = [
+    alsaLib dbus dbus-glib ffmpeg fontconfig freetype yasm zip jack2 gtk2
+    unzip gnome2.GConf xorg.libXt
+  ];
+
+  enableParallelBuilding = true;
+
+  configurePhase = ''
+    export MOZCONFIG=$PWD/.mozconfig
+    export MOZ_NOSPAM=1
+    export HOME=$PWD # Needed by ccache
+
+    cp $src/doc/mozconfig.example $MOZCONFIG
+    # Need to modify it
+    chmod 644 $MOZCONFIG
+
+    substituteInPlace $MOZCONFIG \
+      --replace "mk_add_options PYTHON=/usr/bin/python2" "mk_add_options PYTHON=${python2}/bin/python2" \
+      --replace "mk_add_options AUTOCONF=/usr/bin/autoconf-2.13" "mk_add_options AUTOCONF=${autoconf213}/bin/autoconf" \
+      --replace 'mk_add_options MOZ_OBJDIR=$HOME/build/wbobjects/' "" \
+      --replace "ac_add_options --x-libraries=/usr/lib64" "ac_add_options --x-libraries=${lib.makeLibraryPath [ xorg.libX11 ]}" \
+      --replace "_BUILD_64=1" "_BUILD_64=${lib.optionalString stdenv.hostPlatform.is64bit "1"}"
+
+    echo >> $MOZCONFIG '
+    #
+    # NixOS-specific adjustments
+    #
+
+    ac_add_options --prefix=$out
+
+    mk_add_options MOZ_MAKE_FLAGS="-j$NIX_BUILD_CORES"
+    '
+  '';
+
+  buildPhase = "$src/mach build";
+
+  installPhase = ''
+    $src/mach install
+
+    mkdir -p $out/share/applications
+    cp ${desktopItem}/share/applications/* $out/share/applications
+
+    for n in 16 32 48; do
+      size=$n"x"$n
+      mkdir -p $out/share/icons/hicolor/$size/apps
+      cp $src/webbrowser/branding/unofficial/default$n.png \
+         $out/share/icons/hicolor/$size/apps/webbrowser.png
+    done
+
+    # Needed to make videos work
+    wrapProgram $out/lib/webbrowser-${version}/webbrowser \
+      --prefix LD_LIBRARY_PATH : "${libPath}"
+  '';
+
+  meta = with lib; {
+    description = "Generic web browser without trackers compatible with XUL plugins using UXP rendering engine";
+    homepage    = "https://git.nuegia.net/webbrowser.git/";
+    license     = [ licenses.mpl20 licenses.gpl3 ];
+    maintainers = with maintainers; [ TheBrainScrambler ];
+    platforms   = [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/networking/calls/default.nix b/pkgs/applications/networking/calls/default.nix
index 18a9bc0f422..39ad9ef1d15 100644
--- a/pkgs/applications/networking/calls/default.nix
+++ b/pkgs/applications/networking/calls/default.nix
@@ -22,14 +22,14 @@
 
 stdenv.mkDerivation rec {
   pname = "calls";
-  version = "0.1.4";
+  version = "0.1.5";
 
   src = fetchFromGitLab {
     domain = "source.puri.sm";
     owner = "Librem5";
     repo = "calls";
     rev = "v${version}";
-    sha256 = "0715cap3w8gppxlfaynhiqvc2ss512xgykjcpqq8f5syz2776skh";
+    sha256 = "1wqkczl1fn4d2py00fsb6kh05avmc7c49gi49j3592fqsvi87j18";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/cawbird/default.nix b/pkgs/applications/networking/cawbird/default.nix
index c9e6b6f6de0..2ff9e5581b0 100644
--- a/pkgs/applications/networking/cawbird/default.nix
+++ b/pkgs/applications/networking/cawbird/default.nix
@@ -20,14 +20,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.5";
+  version = "1.1.0";
   pname = "cawbird";
 
   src = fetchFromGitHub {
     owner = "IBBoard";
     repo = "cawbird";
     rev = "v${version}";
-    sha256 = "sha256:0prrrkgmnm78sq2c6yvy86qb3lcl51d250q7gvmqili2ffnjmamf";
+    sha256 = "0zghryx5y47ff8kxa65lvgmy1cnhvhazxml7r1lxixxj3d88wh7p";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/cloudflared/default.nix b/pkgs/applications/networking/cloudflared/default.nix
index b34cd3306c0..252a6f5b48b 100644
--- a/pkgs/applications/networking/cloudflared/default.nix
+++ b/pkgs/applications/networking/cloudflared/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "cloudflared";
-  version = "2020.3.2";
+  version = "2020.5.1";
 
   src = fetchFromGitHub {
     owner  = "cloudflare";
     repo   = "cloudflared";
     rev    = version;
-    sha256 = "1vbxm5z72y9zfg4carmja3fc1vhkanmc25pgnlw550p1l14y6404";
+    sha256 = "0r1n3a8h8gyww4p2amb24jmp8zkyxy1ava3nbqgwlfjr3zagga00";
   };
 
-  modSha256 = "1mnfp8nhbllv8msglci1hq4026rqsc1yibrh2xnwwbf2f3yqx8h0";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   buildFlagsArray = "-ldflags=-X main.Version=${version}";
 
diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix
index 891d153a09e..45bbfbd6c40 100644
--- a/pkgs/applications/networking/cluster/argo/default.nix
+++ b/pkgs/applications/networking/cluster/argo/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, buildGoPackage, fetchFromGitHub, installShellFiles }:
 
 let
   # Argo can package a static server in the CLI using the `staticfiles` go module.
@@ -19,19 +19,23 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "2.6.1";
+  version = "2.10.0";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "v${version}";
-    sha256 = "12wq79h4m8wlzf18r66965mbbjjb62kvnxdj50ra7nxa8jjxpsmf";
+    sha256 = "19z1v6p59pcl8smywn1b5igqpv9wj48n6500wjxx5ayhc4mg00h2";
   };
 
-  modSha256 = "1394bav1k1xv9n1rvji0j9a09mibk97xpha24640jkgmy9bnmg45";
+  vendorSha256 = "0fqdxs3r4249qxlc9cac0lpbqf2aifkcah07v0cckb9rxfyiwhjz";
+
+  doCheck = false;
 
   subPackages = [ "cmd/argo" ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
   preBuild = ''
     mkdir -p ui/dist/app
     echo "Built without static files" > ui/dist/app/index.html
@@ -39,6 +43,22 @@ buildGoModule rec {
     ${staticfiles}/bin/staticfiles -o server/static/files.go ui/dist/app
   '';
 
+  buildFlagsArray = ''
+    -ldflags=
+      -s -w
+      -X github.com/argoproj/argo.version=${version}
+      -X github.com/argoproj/argo.gitCommit=${src.rev}
+      -X github.com/argoproj/argo.gitTreeState=clean
+      -X github.com/argoproj/argo.gitTag=${version}
+  '';
+
+  postInstall = ''
+    for shell in bash zsh; do
+      $out/bin/argo completion $shell > argo.$shell
+      installShellCompletion argo.$shell
+    done
+  '';
+
   meta = with lib; {
     description = "Container native workflow engine for Kubernetes";
     homepage = "https://github.com/argoproj/argo";
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index 7f9ebda93c0..505de3c0802 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -12,7 +12,9 @@ buildGoModule rec {
     sha256 = "01vsyrks1k5yfvrarv8ia0isr7snilr21b7lfiy860si82r2r8hj";
   };
 
-  modSha256 = "1qivg7yy7ymmgkrvl365x29d8jnsphbz18j1ykgwwysyw3n4jkdg";
+  vendorSha256 = "0r2nh7v00m6zbdnhsgjn01q9pkiz41ckkqgfnpqmkxaqmjz31iyj";
+
+  doCheck = false;
 
   nativeBuildInputs = [ packr ];
 
@@ -25,12 +27,12 @@ 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";
diff --git a/pkgs/applications/networking/cluster/atlantis/default.nix b/pkgs/applications/networking/cluster/atlantis/default.nix
index 7d04595d3fe..d3e18ce691f 100644
--- a/pkgs/applications/networking/cluster/atlantis/default.nix
+++ b/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -2,23 +2,24 @@
 
 buildGoModule rec {
   pname = "atlantis";
-  version = "0.12.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "runatlantis";
     repo = "atlantis";
     rev = "v${version}";
-    sha256 = "16zz4xwpqipdmszbz93xxw31hbh7s8pfa9dm64ybyni7wc4lvdy6";
+    sha256 = "0nb0dm4yn6f5pw7clgb2d1khcwcxiidqyc0sdh38wwqg0zyil0cz";
   };
 
-  modSha256 = "18f7cf61yn5jkji5a4v6xw6c7xl40nj32n5w34xmcmszzf64cwkn";
+  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 ];
   };
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 49d3aaa298d..5bbd1014125 100644
--- a/pkgs/applications/networking/cluster/cni/default.nix
+++ b/pkgs/applications/networking/cluster/cni/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "cni";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "containernetworking";
     repo = pname;
     rev = "v${version}";
-    sha256 = "02qn1br8164d99978acalisy1sx294g1axnii4yh1wji0fc735xz";
+    sha256 = "16i59dhiq7pc7qs32cdk4yv4w9rjx4vvlw7fb6a6jhq6hxxjrgiw";
   };
 
   goPackagePath = "github.com/containernetworking/cni";
diff --git a/pkgs/applications/networking/cluster/cni/plugins.nix b/pkgs/applications/networking/cluster/cni/plugins.nix
index d457ddd98bf..3822f453a30 100644
--- a/pkgs/applications/networking/cluster/cni/plugins.nix
+++ b/pkgs/applications/networking/cluster/cni/plugins.nix
@@ -1,17 +1,23 @@
-{ lib, fetchFromGitHub, buildGoPackage }:
+{ lib, fetchFromGitHub, buildGoModule, nixosTests }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "cni-plugins";
-  version = "0.8.5";
+  version = "0.8.6";
 
   src = fetchFromGitHub {
     owner = "containernetworking";
     repo = "plugins";
     rev = "v${version}";
-    sha256 = "17c8pvpn0dpda6ah7irr9hhd8sk7mnm32zv72nc5pxg1xvfpaipi";
+    sha256 = "0f1cqxjf26sy1c4aw6y7pyd9lrz0vknby4q5j6xj77a1pab9073m";
   };
 
-  goPackagePath = "github.com/containernetworking/plugins";
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  buildFlagsArray = [
+    "-ldflags=-X github.com/containernetworking/plugins/pkg/utils/buildversion.BuildVersion=${version}"
+  ];
 
   subPackages = [
     "plugins/ipam/dhcp"
@@ -32,6 +38,8 @@ buildGoPackage rec {
     "plugins/meta/tuning"
   ];
 
+  passthru.tests = { inherit (nixosTests) cri-o podman; };
+
   meta = with lib; {
     description = "Some standard networking plugins, maintained by the CNI team";
     homepage = "https://github.com/containernetworking/plugins";
diff --git a/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix b/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix
index ec5a79e9ace..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 modSha256 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 = ''
diff --git a/pkgs/applications/networking/cluster/docker-machine/kvm2.nix b/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
index 6af1bf126b5..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 modSha256 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 = ''
diff --git a/pkgs/applications/networking/cluster/fluxctl/default.nix b/pkgs/applications/networking/cluster/fluxctl/default.nix
index 10991d47cca..44e21de0a03 100644
--- a/pkgs/applications/networking/cluster/fluxctl/default.nix
+++ b/pkgs/applications/networking/cluster/fluxctl/default.nix
@@ -1,22 +1,33 @@
-{ 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";
   };
 
-  modSha256 = "0zwq7n1lggj27j5yxgfplbaccw5fhbm7vm0sja839r1jamrn3ips";
+  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";
diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix
index deb6d75f12c..bb76ad69882 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.0";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "1x05xnc3czk7vpn9qnfdavdjy5agv800nh7jyqczpiw125l9jfyd";
+    sha256 = "0bp2yscrvdm46w2nxas5zs9mcvdn2yp05k0wmcjl7gh42fs6hmcs";
   };
-  modSha256 = "000knqwsajlqika4abp3fh721mn1vykcsnv3c1qw0mzffkmzwsqd";
+  vendorSha256 = "0lccglh5qpm5kp8xp1pn7y4cfxjpax83gyzjmnhh9h5y9zwgqp03";
+
+  doCheck = false;
 
   subPackages = [ "cmd/helm" ];
   buildFlagsArray = [ "-ldflags=-w -s -X helm.sh/helm/v3/internal/version.version=v${version}" ];
diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix
index 628ae10f11b..f713d8a8a6d 100644
--- a/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -1,28 +1,25 @@
-{ lib, buildGoModule, fetchFromGitHub, makeWrapper, kubernetes-helm, ... }:
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper, kubernetes-helm }:
 
-let version = "0.114.0"; in
-
-buildGoModule {
+buildGoModule rec {
   pname = "helmfile";
-  inherit version;
+  version = "0.125.7";
 
   src = fetchFromGitHub {
     owner = "roboll";
     repo = "helmfile";
     rev = "v${version}";
-    sha256 = "0486wcfizi8xljr29mznc4p11ggz4rvk5n53qvb30f7ry4ncc8n5";
+    sha256 = "1m030gjrd98z4vbj7l927qi55vgr11czrb8wmw56ifkqwfi6h9hi";
   };
 
-  goPackagePath = "github.com/roboll/helmfile";
+  vendorSha256 = "0w72nlf26k64cq1hrqycks0pyp18y4wh3h40jpn5qnysi5pb2ndj";
 
-  modSha256 = "0j7w12rrnsv2h5v0bqh6sjq9anm51zs0p3nzlhwsksw9c98r9avk";
+  doCheck = false;
 
   nativeBuildInputs = [ makeWrapper ];
 
-  buildFlagsArray = ''
-    -ldflags=
-    -X main.Version=${version}
-  '';
+  subPackages = [ "." ];
+
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/roboll/helmfile/pkg/app/version.Version=${version}" ];
 
   postInstall = ''
     wrapProgram $out/bin/helmfile \
diff --git a/pkgs/applications/networking/cluster/helmsman/default.nix b/pkgs/applications/networking/cluster/helmsman/default.nix
new file mode 100644
index 00000000000..19c7234e11b
--- /dev/null
+++ b/pkgs/applications/networking/cluster/helmsman/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoModule, fetchFromGitHub, ... }:
+
+buildGoModule rec {
+  pname = "helmsman";
+  version = "3.4.4";
+
+  src = fetchFromGitHub {
+    owner = "Praqma";
+    repo = "helmsman";
+    rev = "v${version}";
+    sha256 = "01vjghak2szif0p82kall5jw7mbfh4fg7fcjkblmic7l0vlqhfac";
+  };
+
+  vendorSha256 = "05vnysr5r3hbayss1pyifgp989kjw81h95iack8ady62k6ys5njl";
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Helm Charts (k8s applications) as Code tool";
+    homepage = "https://github.com/Praqma/helmsman";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lynty ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/networking/cluster/hetzner-kube/default.nix b/pkgs/applications/networking/cluster/hetzner-kube/default.nix
index 1d9940c8f31..7409d71fe8f 100644
--- a/pkgs/applications/networking/cluster/hetzner-kube/default.nix
+++ b/pkgs/applications/networking/cluster/hetzner-kube/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "1iqgpmljqx6rhmvsir2675waj78amcfiw08knwvlmavjgpxx2ysw";
   };
 
-  modSha256 = "0jjrk93wdi13wrb5gchhqk7rgwm74kcizrbqsibgkgs2dszwfazh";
+  vendorSha256 = "1jh2f66ys6rmrrwrf5zqfprgcvziyq6l4z8bfqwxgf1ysnxx525h";
+
+  doCheck = false;
 
   buildFlagsArray = ''
     -ldflags=
diff --git a/pkgs/applications/networking/cluster/istioctl/default.nix b/pkgs/applications/networking/cluster/istioctl/default.nix
new file mode 100644
index 00000000000..59dd92a4d22
--- /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.6.7";
+
+  src = fetchFromGitHub {
+    owner = "istio";
+    repo = "istio";
+    rev = version;
+    sha256 = "0zqp78ilr39j4pyqyk8a0rc0dlmkgzdd2ksfjd7vyjns5mrrjfj7";
+  };
+  vendorSha256 = "0cc0lmjsxrn3f78k95wklf3yn5k7h8slwnwmssy1i1h0bkcg1bai";
+
+  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/3321-fix-location-of-thrift.patch b/pkgs/applications/networking/cluster/jx/3321-fix-location-of-thrift.patch
deleted file mode 100644
index 223d6c6c247..00000000000
--- a/pkgs/applications/networking/cluster/jx/3321-fix-location-of-thrift.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 40b8eaacb3a24c466c17c8a65938330d5805b112 Mon Sep 17 00:00:00 2001
-From: "Wael M. Nasreddine" <wael.nasreddine@gmail.com>
-Date: Fri, 8 Mar 2019 14:10:11 -0800
-Subject: [PATCH] chore: fix the location of thrift
-
-Thrift is no longer available at the git.apache.org and it's now
-distributed on GitHub at github.com/apache/thrift.
-
-fixes #3320
----
- go.mod | 2 ++
- go.sum | 1 +
- 2 files changed, 3 insertions(+)
-
-diff --git a/go.mod b/go.mod
-index 04bcc84cc..e26c4cf1d 100644
---- a/go.mod
-+++ b/go.mod
-@@ -184,3 +184,5 @@ replace k8s.io/metrics => k8s.io/metrics v0.0.0-20181128195641-3954d62a524d
- replace k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20190122181752-bebe27e40fb7
-
- replace k8s.io/client-go => k8s.io/client-go v2.0.0-alpha.0.0.20190115164855-701b91367003+incompatible
-+
-+replace git.apache.org/thrift.git => github.com/apache/thrift v0.0.0-20180902110319-2566ecd5d999
-diff --git a/go.sum b/go.sum
-index c9fdf8768..6ed69e69d 100644
---- a/go.sum
-+++ b/go.sum
-@@ -87,6 +87,7 @@ github.com/antham/chyle v1.4.0/go.mod h1:D94Z4aE/ECudyNoTHwkhqu77mjGPZtfPG8dNoeI
- github.com/antham/envh v1.2.0/go.mod h1:ocIRPHuwwjyBVBtuUJOJc2TYzGg+d23xSAZexl4y9hQ=
- github.com/antham/strumt v0.0.0-20171215230529-6776189777d3/go.mod h1:sE7EYIUE0nQzPiv5zQAmw2aVkei0j2xmb4gTIIqSFSI=
- github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ=
-+github.com/apache/thrift v0.0.0-20180902110319-2566ecd5d999/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
- github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
- github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
- github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I=
diff --git a/pkgs/applications/networking/cluster/jx/default.nix b/pkgs/applications/networking/cluster/jx/default.nix
index e2c0b663bef..52e483424f1 100644
--- a/pkgs/applications/networking/cluster/jx/default.nix
+++ b/pkgs/applications/networking/cluster/jx/default.nix
@@ -1,29 +1,37 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule, fetchFromGitHub, lib, installShellFiles }:
 
 buildGoModule rec {
-  name = "jx";
-  version = "1.3.967";
+  pname = "jx";
+  version = "2.1.127";
 
   src = fetchFromGitHub {
     owner = "jenkins-x";
     repo = "jx";
     rev = "v${version}";
-    sha256 = "0a25m7sz134kch21bg6l86kvwl4cg6babqf57kqidq6kid1zgdaq";
+    sha256 = "01dfpnqgbrn8b6h2irq080xdm76b4jx6sd80f8x4zmyaz6hf5vlv";
   };
 
-  patches = [
-    # https://github.com/jenkins-x/jx/pull/3321
-    ./3321-fix-location-of-thrift.patch
-  ];
+  vendorSha256 = "0la92a8720l8my5r4wsbgv74y6m19ikmm0wv3l4m4w5gjyplfsxb";
 
-  modSha256 = "0ljf0c0c3pc12nmhdbrwflcaj6hs8igzjw5hi6fyhi6n9cy87vac";
+  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/k3s/default.nix b/pkgs/applications/networking/cluster/k3s/default.nix
index ee1b08f8be4..eedc34d7d48 100644
--- a/pkgs/applications/networking/cluster/k3s/default.nix
+++ b/pkgs/applications/networking/cluster/k3s/default.nix
@@ -42,9 +42,9 @@ with lib;
 # Those pieces of software we entirely ignore upstream's handling of, and just
 # make sure they're in the path if desired.
 let
-  k3sVersion = "1.17.3+k3s1";     # k3s git tag
-  traefikChartVersion = "1.81.0"; # taken from ./scripts/version.sh at the above k3s tag
-  k3sRootVersion = "0.3.0";       # taken from .s/cripts/version.sh at the above k3s tag
+  k3sVersion = "1.18.2+k3s1";     # k3s git tag
+  traefikChartVersion = "1.81.0"; # taken from ./scripts/download at the above k3s tag
+  k3sRootVersion = "0.3.0";       # taken from .s/cripts/download at the above k3s tag
   # bundled into the k3s binary
   traefikChart = fetchurl {
     url = "https://kubernetes-charts.storage.googleapis.com/traefik-${traefikChartVersion}.tgz";
@@ -93,7 +93,7 @@ let
     url = "https://github.com/rancher/k3s";
     rev = "v${k3sVersion}";
     leaveDotGit = true; # ./scripts/version.sh depends on git
-    sha256 = "0qahyc0mf9glxj49va6d20mcncqg4svfic2iz8b1lqid5c4g68mm";
+    sha256 = "01ww3d71mlri2fk6z54rbd697aqwj942kbg323k0hfsnx7flkhps";
   };
   # Stage 1 of the k3s build:
   # Let's talk about how k3s is structured.
@@ -124,7 +124,7 @@ let
 
     src = k3sRepo;
 
-    patches = [ ./patches/00-k3s.patch ];
+    patches = [ ./patches/0001-Use-rm-from-path-in-go-generate.patch ./patches/0002-Add-nixpkgs-patches.patch ];
 
     nativeBuildInputs = [ git pkgconfig ];
     buildInputs = [ libseccomp ];
@@ -164,7 +164,7 @@ let
 
     src = k3sRepo;
 
-    patches = [ ./patches/00-k3s.patch ];
+    patches = [ ./patches/0001-Use-rm-from-path-in-go-generate.patch ./patches/0002-Add-nixpkgs-patches.patch ];
 
     nativeBuildInputs = [ git pkgconfig ];
     buildInputs = [ k3sBuildStage1 k3sPlugins runc ];
diff --git a/pkgs/applications/networking/cluster/k3s/patches/00-k3s.patch b/pkgs/applications/networking/cluster/k3s/patches/00-k3s.patch
deleted file mode 100644
index 1e39792df5c..00000000000
--- a/pkgs/applications/networking/cluster/k3s/patches/00-k3s.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-diff --git a/main.go b/main.go
-index 62908bb7bb..0527222887 100644
---- a/main.go
-+++ b/main.go
-@@ -1,5 +1,5 @@
- //go:generate go run pkg/codegen/cleanup/main.go
--//go:generate /bin/rm -rf pkg/generated
-+//go:generate rm -rf pkg/generated
- //go:generate go run pkg/codegen/main.go
- //go:generate go fmt pkg/deploy/zz_generated_bindata.go
- //go:generate go fmt pkg/static/zz_generated_bindata.go
-diff --git a/scripts/build b/scripts/build
-index 72d3c07ece..3e5455b262 100755
---- a/scripts/build
-+++ b/scripts/build
-@@ -10,7 +10,8 @@ PKG_CONTAINERD="github.com/containerd/containerd"
- PKG_RANCHER_CONTAINERD="github.com/rancher/containerd"
- PKG_CRICTL="github.com/kubernetes-sigs/cri-tools"
- 
--buildDate=$(date -u '+%Y-%m-%dT%H:%M:%SZ')
-+# Deterministic build date
-+buildDate="$(date -d "$(git log -1 --format=%ai)" -u "+%Y-%m-%dT%H:%M:%SZ")"
- 
- VENDOR_PREFIX="${PKG}/vendor/"
- VERSIONFLAGS="
-@@ -82,17 +83,7 @@ cleanup() {
- }
- 
- INSTALLBIN=$(pwd)/bin
--if [ ! -x ${INSTALLBIN}/cni ]; then
--(
--    echo Building cni
--    TMPDIR=$(mktemp -d)
--    trap cleanup EXIT
--    WORKDIR=$TMPDIR/src/github.com/containernetworking/plugins
--    git clone -b $VERSION_CNIPLUGINS https://github.com/rancher/plugins.git $WORKDIR
--    cd $WORKDIR
--    GOPATH=$TMPDIR CGO_ENABLED=0 go build -tags "$TAGS" -ldflags "$LDFLAGS $STATIC" -o $INSTALLBIN/cni
--)
--fi
-+# skip building cni, use our separately built one
- # echo Building agent
- # CGO_ENABLED=1 go build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC" -o bin/k3s-agent ./cmd/agent/main.go
- echo Building server
-@@ -108,9 +99,8 @@ ln -s containerd ./bin/ctr
- #CGO_ENABLED=1 go build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC_SQLITE" -o bin/ctr ./cmd/ctr/main.go
- # echo Building containerd
- # CGO_ENABLED=0 go build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC" -o bin/containerd ./cmd/containerd/
--echo Building runc
--make EXTRA_LDFLAGS="-w -s" BUILDTAGS="apparmor seccomp" -C ./vendor/github.com/opencontainers/runc static
--cp -f ./vendor/github.com/opencontainers/runc/runc ./bin/runc
-+
-+# skip building runc; use our packaged one
- 
- echo Building containerd-shim
- make -C ./vendor/github.com/containerd/containerd bin/containerd-shim
-diff --git a/scripts/package-cli b/scripts/package-cli
-index 4c66ce32df..280b428bb8 100755
---- a/scripts/package-cli
-+++ b/scripts/package-cli
-@@ -49,16 +49,16 @@ fi
- 
- CMD_NAME=dist/artifacts/k3s${BIN_SUFFIX}
- 
--go generate
-+CGO_ENABLED=0 env -u GOARCH go generate
- LDFLAGS="
-     -X github.com/rancher/k3s/pkg/version.Version=$VERSION
-     -X github.com/rancher/k3s/pkg/version.GitCommit=${COMMIT:0:8}
-     -w -s
- "
--STATIC="-extldflags '-static'"
- if [ "$DQLITE" = "true" ]; then
-     DQLITE_TAGS="dqlite"
- fi
--CGO_ENABLED=0 go build -tags "$DQLITE_TAGS" -ldflags "$LDFLAGS $STATIC" -o ${CMD_NAME} ./cmd/k3s/main.go
-+go build -tags "$DQLITE_TAGS" -ldflags "$LDFLAGS" -o ${CMD_NAME} ./cmd/k3s/main.go
- 
--./scripts/build-upload ${CMD_NAME} ${COMMIT}
-+# for nixos, don't upload it
-+# ./scripts/build-upload ${CMD_NAME} ${COMMIT}
diff --git a/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch b/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch
new file mode 100644
index 00000000000..c439241e855
--- /dev/null
+++ b/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch
@@ -0,0 +1,25 @@
+From e79ddef65d08599ae3fe8ff39d202ea2416650b8 Mon Sep 17 00:00:00 2001
+From: Euan Kemp <euank@euank.com>
+Date: Sun, 31 May 2020 17:27:05 -0700
+Subject: [PATCH 1/2] Use 'rm' from path in go generate
+
+/bin/rm is less portable. On some distros, like nixos, it doesn't exist
+at all.
+---
+ main.go | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/main.go b/main.go
+index 62908bb7bb..0527222887 100644
+--- a/main.go
++++ b/main.go
+@@ -1,5 +1,5 @@
+ //go:generate go run pkg/codegen/cleanup/main.go
+-//go:generate /bin/rm -rf pkg/generated
++//go:generate rm -rf pkg/generated
+ //go:generate go run pkg/codegen/main.go
+ //go:generate go fmt pkg/deploy/zz_generated_bindata.go
+ //go:generate go fmt pkg/static/zz_generated_bindata.go
+-- 
+2.25.4
+
diff --git a/pkgs/applications/networking/cluster/k3s/patches/0002-Add-nixpkgs-patches.patch b/pkgs/applications/networking/cluster/k3s/patches/0002-Add-nixpkgs-patches.patch
new file mode 100644
index 00000000000..71dea7a9c6e
--- /dev/null
+++ b/pkgs/applications/networking/cluster/k3s/patches/0002-Add-nixpkgs-patches.patch
@@ -0,0 +1,87 @@
+From 1891be119e298ef7c86347a6b74d40ff539cf06e Mon Sep 17 00:00:00 2001
+From: Euan Kemp <euank@euank.com>
+Date: Sun, 31 May 2020 19:02:37 -0700
+Subject: [PATCH 2/2] Add nixpkgs patches
+
+These patches let us re-use the upstream build scripts when building for
+nix.
+---
+ scripts/build       | 20 ++++----------------
+ scripts/package-cli | 10 ++++++----
+ 2 files changed, 10 insertions(+), 20 deletions(-)
+
+diff --git a/scripts/build b/scripts/build
+index 4ca6333c4a..df15f7db1d 100755
+--- a/scripts/build
++++ b/scripts/build
+@@ -12,7 +12,8 @@ PKG_CONTAINERD="github.com/containerd/containerd"
+ PKG_RANCHER_CONTAINERD="github.com/rancher/containerd"
+ PKG_CRICTL="github.com/kubernetes-sigs/cri-tools"
+ 
+-buildDate=$(date -u '+%Y-%m-%dT%H:%M:%SZ')
++# nixpkgs: deterministic build date
++buildDate="$(date -d "$(git log -1 --format=%ai)" -u "+%Y-%m-%dT%H:%M:%SZ")"
+ 
+ VENDOR_PREFIX="${PKG}/vendor/"
+ VERSIONFLAGS="
+@@ -92,17 +93,7 @@ cleanup() {
+ }
+ 
+ INSTALLBIN=$(pwd)/bin
+-if [ ! -x ${INSTALLBIN}/cni ]; then
+-(
+-    echo Building cni
+-    TMPDIR=$(mktemp -d)
+-    trap cleanup EXIT
+-    WORKDIR=$TMPDIR/src/github.com/containernetworking/plugins
+-    git clone -b $VERSION_CNIPLUGINS https://github.com/rancher/plugins.git $WORKDIR
+-    cd $WORKDIR
+-    GOPATH=$TMPDIR CGO_ENABLED=0 "${GO}" build -tags "$TAGS" -ldflags "$LDFLAGS $STATIC" -o $INSTALLBIN/cni
+-)
+-fi
++# nixpkgs: skip building cni, we build it separately
+ # echo Building agent
+ # CGO_ENABLED=1 "${GO}" build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC" -o bin/k3s-agent ./cmd/agent/main.go
+ echo Building server
+@@ -118,10 +109,7 @@ ln -s containerd ./bin/ctr
+ #CGO_ENABLED=1 "${GO}" build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC_SQLITE" -o bin/ctr ./cmd/ctr/main.go
+ # echo Building containerd
+ # CGO_ENABLED=0 "${GO}" build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC" -o bin/containerd ./cmd/containerd/
+-echo Building runc
+-rm -f ./vendor/github.com/opencontainers/runc/runc
+-make EXTRA_LDFLAGS="-w -s" BUILDTAGS="$RUNC_TAGS" -C ./vendor/github.com/opencontainers/runc $RUNC_STATIC
+-cp -f ./vendor/github.com/opencontainers/runc/runc ./bin/runc
++# nixpkgs: we build runc separately
+ 
+ echo Building containerd-shim
+ rm -f ./vendor/github.com/containerd/containerd/bin/containerd-shim
+diff --git a/scripts/package-cli b/scripts/package-cli
+index f33d8c66dd..da34397a28 100755
+--- a/scripts/package-cli
++++ b/scripts/package-cli
+@@ -49,16 +49,18 @@ fi
+ 
+ CMD_NAME=dist/artifacts/k3s${BIN_SUFFIX}
+ 
+-"${GO}" generate
++CGO_ENABLED=0 env -u GOARCH "${GO}" generate
+ LDFLAGS="
+     -X github.com/rancher/k3s/pkg/version.Version=$VERSION
+     -X github.com/rancher/k3s/pkg/version.GitCommit=${COMMIT:0:8}
+     -w -s
+ "
+-STATIC="-extldflags '-static'"
++# STATIC="-extldflags '-static'"
++# nixpkgs: we can depend on dynamic linking because we have a good package manager
+ if [ "$DQLITE" = "true" ]; then
+     DQLITE_TAGS="dqlite"
+ fi
+-CGO_ENABLED=0 "${GO}" build -tags "$DQLITE_TAGS" -ldflags "$LDFLAGS $STATIC" -o ${CMD_NAME} ./cmd/k3s/main.go
++"${GO}" build -tags "$DQLITE_TAGS" -ldflags "$LDFLAGS" -o ${CMD_NAME} ./cmd/k3s/main.go
+ 
+-./scripts/build-upload ${CMD_NAME} ${COMMIT}
++# nixpkgs: skip uploading
++# ./scripts/build-upload ${CMD_NAME} ${COMMIT}
+-- 
+2.25.4
+
diff --git a/pkgs/applications/networking/cluster/k9s/default.nix b/pkgs/applications/networking/cluster/k9s/default.nix
index a51d1afb367..1e700f2339c 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.2";
 
   src = fetchFromGitHub {
     owner  = "derailed";
     repo   = "k9s";
     rev    = "v${version}";
-    sha256 = "1ya3lrw31pxd1rxzf88l5hzilaxwrng1a3ibawgn57my333hrmf6";
+    sha256 = "06yjc4lrqr3y7428xkfcgfg3aal71r437ij2hqd2yjxsq8r7zvif";
   };
 
   buildFlagsArray = ''
@@ -18,12 +18,14 @@ buildGoModule rec {
       -X github.com/derailed/k9s/cmd.commit=${src.rev}
   '';
 
-  modSha256 = "11jxyzajlk6b5j19sg1kjr7qdzpxkwjwrvyhx9mwy6jb5sgqbzv8";
+  vendorSha256 = "1hmqvcvlffd8cpqcnn2f9mnyiwdhw8k46sl2p6rk16yrj06la9mr";
+
+  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 ];
   };
 }
diff --git a/pkgs/applications/networking/cluster/kops/default.nix b/pkgs/applications/networking/cluster/kops/default.nix
index 027809c61e5..282890ada5b 100644
--- a/pkgs/applications/networking/cluster/kops/default.nix
+++ b/pkgs/applications/networking/cluster/kops/default.nix
@@ -57,7 +57,12 @@ in rec {
   };
 
   kops_1_16 = mkKops {
-    version = "1.16.2";
-    sha256 = "1vhkjhx1n3f6ggw5cy1avs3sbqb2da6khck9zqd4s7almjbpc2h2";
+    version = "1.16.4";
+    sha256 = "0qi80hzd5wc8vn3y0wsckd7pq09xcshpzvcr7rl5zd4akxb0wl3f";
+  };
+
+  kops_1_17 = mkKops {
+    version = "1.17.1";
+    sha256 = "1km6nwanmhfx8rl1wp445z9ib50jr2f86rd92vilm3q4rs9kig1h";
   };
 }
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 a3cb55ce329..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 = "0.3.1";
+  version = "1.0.1";
 
   goPackagePath = "github.com/cloudnativelabs/kube-router";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "cloudnativelabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "06azrghcxp6n4bvrqxpwhmg60qk4jqcrkl1lh1rardlzhl71lk1h";
+    sha256 = "00bypaccv8q9xdcz6vlvl1qxqxqssl21bs4nkd1a6q8b4jpl339z";
   };
 
   buildFlagsArray = ''
diff --git a/pkgs/applications/networking/cluster/kube3d/default.nix b/pkgs/applications/networking/cluster/kube3d/default.nix
index 2eea6adb28d..0c1f452ea5b 100644
--- a/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -1,27 +1,37 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "kube3d";
-  version = "1.6.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 = "0qjwqqynvgzainq66fpzczgynwk3hv7wzgfy5271fc6mj2k0zz5x";
+    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}
   '';
 
-  modSha256 = "0c8bfl0hz5cfhi6jzhhylz051jiix6s7s20fn23w7wri4xaqrjn8";
+  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";
diff --git a/pkgs/applications/networking/cluster/kubecfg/default.nix b/pkgs/applications/networking/cluster/kubecfg/default.nix
index bf4ec949215..b8bef9ecc05 100644
--- a/pkgs/applications/networking/cluster/kubecfg/default.nix
+++ b/pkgs/applications/networking/cluster/kubecfg/default.nix
@@ -1,6 +1,6 @@
 { lib, buildGoPackage, fetchFromGitHub, ... }:
 
-let version = "0.13.1"; in
+let version = "0.16.0"; in
 
 buildGoPackage {
   pname = "kubecfg";
@@ -10,7 +10,7 @@ buildGoPackage {
     owner = "bitnami";
     repo = "kubecfg";
     rev = "v${version}";
-    sha256 = "0x2mg13p8r1sgqr1bbzh57kfymb8z392y43djgks2agc7rjnd45f";
+    sha256 = "1ipw7r9fyqbh1bjvk7ifmj3skh799ly90y4ph37r8mqk1wb92rz4";
   };
 
   goPackagePath = "github.com/bitnami/kubecfg";
diff --git a/pkgs/applications/networking/cluster/kubeless/default.nix b/pkgs/applications/networking/cluster/kubeless/default.nix
index 48540bffb53..6f6c8dc338b 100644
--- a/pkgs/applications/networking/cluster/kubeless/default.nix
+++ b/pkgs/applications/networking/cluster/kubeless/default.nix
@@ -1,22 +1,31 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
 
 buildGoPackage rec {
   pname = "kubeless";
-  version = "1.0.4";
+  version = "1.0.7";
 
   src = fetchFromGitHub {
     owner = "kubeless";
     repo = "kubeless";
     rev = "v${version}";
-    sha256 = "1f5w6kn9rsaxx9nf6kzyjkzm3s9ycy1c8h78hb61v4x915xd3040";
+    sha256 = "0x2hydywnnlh6arzz71p7gg9yzq5z2y2lppn1jszvkbgh11kkqfr";
   };
 
   goPackagePath = "github.com/kubeless/kubeless";
 
+  nativeBuildInputs = [ installShellFiles ];
+
   subPackages = [ "cmd/kubeless" ];
 
   buildFlagsArray = ''
-    -ldflags=-X github.com/kubeless/kubeless/pkg/version.Version=${version}
+    -ldflags=-s -w -X github.com/kubeless/kubeless/pkg/version.Version=${version}
+  '';
+
+  postInstall = ''
+    for shell in bash; do
+      $out/bin/kubeless completion $shell > kubeless.$shell
+      installShellCompletion kubeless.$shell
+    done
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix
index 3a91efd064c..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.1";
+  version = "1.18.8";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "kubernetes";
     rev = "v${version}";
-    sha256 = "1z109h0jqqfxvgyhmxsiggf6fb9kdrwvmv9wdi1n58n4yk65hvl6";
+    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 ef87b67a360..0bd1967aec8 100644
--- a/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -2,19 +2,23 @@
 
 buildGoModule rec {
   pname = "kubeseal";
-  version = "0.12.0";
+  version = "0.12.5";
 
   src = fetchFromGitHub {
     owner = "bitnami-labs";
     repo = "sealed-secrets";
     rev = "v${version}";
-    sha256 = "0z51iwdc4m0y8wyyx3mcvbzxlrgws7n5wkcd0g7nr73irnsld4lh";
+    sha256 = "135ls3ngdz43qx6a49faczs2vdmccalsgak2hg0rairpy2jxym37";
   };
 
-  modSha256 = "029h0zr3fpzlsv9hf1d1x5j7aalxkcsyszsxjz8fqrhjafqc7zvq";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   subPackages = [ "cmd/kubeseal" ];
 
+  buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ];
+
   meta = with lib; {
     description = "A Kubernetes controller and tool for one-way encrypted Secrets";
     homepage = "https://github.com/bitnami-labs/sealed-secrets";
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 3d3674dbe0f..72dfe3ecc33 100644
--- a/pkgs/applications/networking/cluster/kubeval/default.nix
+++ b/pkgs/applications/networking/cluster/kubeval/default.nix
@@ -11,13 +11,14 @@ buildGoModule rec {
     sha256 = "05li0qv4q7fy2lr50r6c1r8dhx00jb1g01qmgc72a9zqp378yiq0";
   };
 
-  modSha256 = "0y9x44y3bchi8xg0a6jmp2rmi8dybkl6qlywb6nj1viab1s8dd4y";
+  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;
   };
 }
diff --git a/pkgs/applications/networking/cluster/linkerd/default.nix b/pkgs/applications/networking/cluster/linkerd/default.nix
index 3d66a7c62f2..70aeb784159 100644
--- a/pkgs/applications/networking/cluster/linkerd/default.nix
+++ b/pkgs/applications/networking/cluster/linkerd/default.nix
@@ -1,17 +1,19 @@
 { stdenv, fetchFromGitHub, buildGoModule }:
 
 buildGoModule {
-  pname = "linkerd-unstablle";
-  version = "2019-07-26";
+  pname = "linkerd-unstable";
+  version = "2020-05-01";
 
   src = fetchFromGitHub {
     owner = "linkerd";
     repo = "linkerd2";
-    rev = "065dd3ec9d4b84c90383b31be16ccadd34a8ab0d";
-    sha256 = "01m8g627sd126as0a74fy9svmymwd41sifd897nhn6kz78a21gq8";
+    rev = "9e9f3bb1e2aeab8cf20f98f5cad159bbb6f24883";
+    sha256 = "1pvj31wz1klwhcqga1m8kixdqsxwmppp9ix6r3wpp4dwfig45fm0";
   };
 
-  modSha256 = "0gahhywpcj16ww4l8s3wjwvavq24fpy258snhyf94ipy6lb797sl";
+  vendorSha256 = "0vls58ld50jca5yn73kvg3lx4z83cc7skky54a90pkbj737y58pz";
+
+  doCheck = false;
 
   subPackages = [ "cli/cmd" ];
 
diff --git a/pkgs/applications/networking/cluster/luigi/default.nix b/pkgs/applications/networking/cluster/luigi/default.nix
index ced4c45d059..f69082bff3a 100644
--- a/pkgs/applications/networking/cluster/luigi/default.nix
+++ b/pkgs/applications/networking/cluster/luigi/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "luigi";
-  version = "2.8.13";
+  version = "3.0.1";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0x14549iwj7r1knc0hmic9ny9hp960yjjqi4mxl78jb69gd3bhmf";
+    sha256 = "02c480f5pjgqsvqnkaw7f6n4nhdspmhq5w7lw8sgg2v3jghg8n7i";
   };
 
   propagatedBuildInputs = with python3Packages; [ dateutil tornado_4 python-daemon boto3 ];
@@ -18,12 +18,13 @@ python3Packages.buildPythonApplication rec {
   makeWrapperArgs = ["--prefix PYTHONPATH . :"];
 
   meta = with lib; {
-    homepage = "https://github.com/spotify/luigi";
     description = "Python package that helps you build complex pipelines of batch jobs";
     longDescription = ''
       Luigi handles dependency resolution, workflow management, visualization,
       handling failures, command line integration, and much more.
     '';
+    homepage = "https://github.com/spotify/luigi";
+    changelog = "https://github.com/spotify/luigi/releases/tag/${version}";
     license =  [ licenses.asl20 ];
     maintainers = [ maintainers.bhipple ];
   };
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 02a2270e45b..00b314b6cbb 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.10.0";
+  version = "1.12.3";
 
-  # for -ldflags
-  commit = "f318680e7e5bf539f7fadeaaf198f4e468393fb9";
+  vendorSha256 = "014zgkh1l6838s5bmcxpvvyap96sd8ammrz5d7fncx0afik7zc4m";
 
-  modSha256 = "1g94jjwr5higg1b297zwp6grkj7if3mrdafjq9vls9y2svh11xr8";
+  doCheck = false;
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "minikube";
     rev = "v${version}";
-    sha256 = "0n7px2ww00jllgm6qdax09q80gqk2qi23jfk90mnwphwjrqrggfp";
+    sha256 = "0z8hinhx521rphcm0cd5lli5jy09lw1jw63q2a4fqlmhpw39qrj9";
   };
 
   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/minishift/default.nix b/pkgs/applications/networking/cluster/minishift/default.nix
index 0c932396e9e..cd11bcbb431 100644
--- a/pkgs/applications/networking/cluster/minishift/default.nix
+++ b/pkgs/applications/networking/cluster/minishift/default.nix
@@ -4,7 +4,7 @@
 }:
 
 let
-  version = "1.34.0";
+  version = "1.34.2";
 
   # Update these on version bumps according to Makefile
   centOsIsoVersion = "v1.15.0";
@@ -18,7 +18,7 @@ in buildGoPackage rec {
     owner = "minishift";
     repo = "minishift";
     rev = "v${version}";
-    sha256 = "0nc1g4lmz5ww6rjyyanp9vq4sj6fvi9zf9qjc4lpsmapddhjkdy7";
+    sha256 = "1xzjzmjs2ijg7zzw53v02lgrg1j82jd7ljcn6lprg01hhvfrwgg7";
   };
 
   nativeBuildInputs = [ pkgconfig go-bindata makeWrapper ];
diff --git a/pkgs/applications/networking/cluster/node-problem-detector/default.nix b/pkgs/applications/networking/cluster/node-problem-detector/default.nix
index a7a98de6d39..48dabaac90e 100644
--- a/pkgs/applications/networking/cluster/node-problem-detector/default.nix
+++ b/pkgs/applications/networking/cluster/node-problem-detector/default.nix
@@ -2,23 +2,18 @@
 
 buildGoModule rec {
   pname = "node-problem-detector";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = pname;
     rev = "v${version}";
-    sha256 = "02avknglmkr9k933a64hkw0rjfxvyh4sc3x70p41b8q2g6vzv2gs";
+    sha256 = "0cphlaf9k2va879jgqd6fzdgkscpwg29j1cpr677i3zj3hfgaw1g";
   };
 
-  # Project upstream recommends building through vendoring
-  overrideModAttrs = (_: {
-    buildCommand = ''
-      echo "Skipping go.mod, using vendoring instead." && touch $out
-    '';
-  });
+  vendorSha256 = null;
 
-  modSha256 = "0ip26j2h11n1kgkz36rl4akv694yz65hr72q4kv4b3lxcbi65b3p";
+  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
@@ -44,6 +39,7 @@ buildGoModule rec {
   meta = with stdenv.lib; {
     description = "Various problem detectors running on the Kubernetes nodes";
     homepage = "https://github.com/kubernetes/node-problem-detector";
+    changelog = "https://github.com/kubernetes/node-problem-detector/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ lbpdt ];
   };
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 da668b9589a..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.1";
+  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 = "1pcn1bk7sqhhsrm3izqljwyrwdz6bdlplrajvjzka39l3k6f9hgc";
+    inherit rev sha256;
   };
 
   # ui:
diff --git a/pkgs/applications/networking/cluster/prow/default.nix b/pkgs/applications/networking/cluster/prow/default.nix
index 0b2f798d35b..60e79ed6690 100644
--- a/pkgs/applications/networking/cluster/prow/default.nix
+++ b/pkgs/applications/networking/cluster/prow/default.nix
@@ -13,7 +13,9 @@ buildGoModule rec {
     sha256 = "0mc3ynmbf3kidibdy8k3v3xjlvmxl8w7zm1z2m0skmhd0y4bpmk4";
   };
 
-  modSha256 = "1xajdg10a27icc7g1y3ym4pkgg64rp4afybbjlhbg3k3whir9xa1";
+  vendorSha256 = "16fdc5r28andm8my4fxj0f1yygx6j2mvn92i6xdfhbcra0lvr4ql";
+
+  doCheck = false;
 
   subPackages = [
     "prow/cmd/admission"
diff --git a/pkgs/applications/networking/cluster/qbec/default.nix b/pkgs/applications/networking/cluster/qbec/default.nix
index 53b421ec552..508e0b656d6 100644
--- a/pkgs/applications/networking/cluster/qbec/default.nix
+++ b/pkgs/applications/networking/cluster/qbec/default.nix
@@ -1,17 +1,27 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, go, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "qbec";
-  version = "0.11.0";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner = "splunk";
     repo = "qbec";
     rev = "v${version}";
-    sha256 = "0krdfaha19wzi10rh0wfhki5nknbd5mndaxhrq7y9m840xy43d6d";
+    sha256 = "1g90z155nhcblr48qypw8qw3l8g4dz33iflv4cg4xrhwjp8dfbv9";
   };
 
-  modSha256 = "1wb15vrkb4ryvrjp68ygmadnf78s354106ya210pnmsbb53rbhaz";
+  vendorSha256 = "15hbjghi2ifylg7nr85qlk0alsy97h9zj6hf5w84m76dla2bcjf3";
+
+  doCheck = false;
+
+  buildFlagsArray = ''
+    -ldflags=
+      -s -w
+      -X github.com/splunk/qbec/internal/commands.version=${version}
+      -X github.com/splunk/qbec/internal/commands.commit=${src.rev}
+      -X github.com/splunk/qbec/internal/commands.goVersion=${lib.getVersion go}
+  '';
 
   meta = with lib; {
     description = "Configure kubernetes objects on multiple clusters using jsonnet https://qbec.io";
diff --git a/pkgs/applications/networking/cluster/spacegun/node-packages.nix b/pkgs/applications/networking/cluster/spacegun/node-packages.nix
index ece04f6621b..981d787c91a 100644
--- a/pkgs/applications/networking/cluster/spacegun/node-packages.nix
+++ b/pkgs/applications/networking/cluster/spacegun/node-packages.nix
@@ -10,7 +10,7 @@ let
       version = "7.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz";
-        sha512 = "a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==";
+        sha512 = "3d85pd9lfbm8yrlpn6wj9g56snbnpr9fx0w1b9x26jbirc2xfrvnifwzprp0f6bhqijshgm0q35axic8d11v4j0kq493dapcyk33n3b";
       };
     };
     "@babel/core-7.8.7" = {
@@ -19,7 +19,7 @@ let
       version = "7.8.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz";
-        sha512 = "rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==";
+        sha512 = "34gjbasmqp8z2rbwlc5b9sfnvs7fw1hm3i5bcdk0ddymr9b280fbcgfx6mgiwhkv3gzgawjvzcg1bzqp9f0hhifkhrdg8r4fqbnl6dc";
       };
     };
     "@babel/generator-7.8.8" = {
@@ -28,7 +28,7 @@ let
       version = "7.8.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/generator/-/generator-7.8.8.tgz";
-        sha512 = "HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg==";
+        sha512 = "0k5w5pcsv2m6992nh49qjil2b1aqzdbdrcxzcp89v7wq9wx7llnx5ijyzl9w895iry3hnp8mk3srgp52kgz4swvjqf9lwdxxrb99b0w";
       };
     };
     "@babel/helper-function-name-7.8.3" = {
@@ -37,7 +37,7 @@ let
       version = "7.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz";
-        sha512 = "BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==";
+        sha512 = "0w35m1kq2dmsgdgjxvpmg6gxm1rzl1jqf23h3k7pwh9nmwsmqbgv0rzy7fs6dq31dqq6j17bwyww0091r41aj0rl3zi1nj2a1gn0b04";
       };
     };
     "@babel/helper-get-function-arity-7.8.3" = {
@@ -46,7 +46,7 @@ let
       version = "7.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz";
-        sha512 = "FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==";
+        sha512 = "12g2gjipd8svg02d12iqbf0rz4m99g36qccn3f81xij3ac4f7kqzx0407xma49h11j88iz8jil2whj7j96wqpwd67abi23xczwd2l0m";
       };
     };
     "@babel/helper-plugin-utils-7.8.3" = {
@@ -55,7 +55,7 @@ let
       version = "7.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz";
-        sha512 = "j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==";
+        sha512 = "1jj9ibj72hqv1qm4hvdnk728fi9mihrwhq0xcs2qlxbs8iz9d2zb4a23sm7ny0s42asrdyy2s98shgnqm0rhn2314k6pcyxspiymrwg";
       };
     };
     "@babel/helper-split-export-declaration-7.8.3" = {
@@ -64,7 +64,7 @@ let
       version = "7.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz";
-        sha512 = "3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==";
+        sha512 = "1sgm6wd88kmizvig5m0ims97vmlylfii72xcw4k01h2wsw3cpc312s1asnjrq5y472hcqfh2mwn8dwpqkpcvs0ssqwnz1c1xhwz47fz";
       };
     };
     "@babel/helpers-7.8.4" = {
@@ -73,7 +73,7 @@ let
       version = "7.8.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz";
-        sha512 = "VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==";
+        sha512 = "3rr2xlnr2hmpbrgysgs0jyrz4bjyg80cxij1wn899v53zqj4i1bcm3ajpnr03v1swlczkzapn7nvzmzhwlqxl1hw5pciq8h0zpxxxjl";
       };
     };
     "@babel/highlight-7.8.3" = {
@@ -82,7 +82,7 @@ let
       version = "7.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz";
-        sha512 = "PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==";
+        sha512 = "09353nlk7ng0h135l14dhwk4jahsdrapvd0185wra8l73wjbnkb11jl42znj1rxypb38jlzcraxf4xdka1ssis5khgjvgql2kkk4zix";
       };
     };
     "@babel/parser-7.8.8" = {
@@ -91,7 +91,7 @@ let
       version = "7.8.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz";
-        sha512 = "mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==";
+        sha512 = "1q85si9966ra57f43dccjanxnyy65c66lykxgv5z231wpi4w023nk8l7s8m54bp9fv4yd3pl682yh0krny22qmfygxggc2g61dldvlq";
       };
     };
     "@babel/plugin-syntax-object-rest-spread-7.8.3" = {
@@ -100,7 +100,7 @@ let
       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==";
+        sha512 = "2a9vg6b6p2rfhcflic2w6rbrbiqrdgj4ra2q20g1qv6ncwmvja2jq8snygwfw1ll1k94rqnbj4hc1fpizgr1v35rfvxqvwr6658r2jy";
       };
     };
     "@babel/template-7.8.6" = {
@@ -109,7 +109,7 @@ let
       version = "7.8.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz";
-        sha512 = "zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==";
+        sha512 = "0z8kzrpis50nr4vsyqr77cpqad0xfsacw45jdhwsl89mdzpvy8wcvc0kdy938kb0ll069plxhgy3a3fpag408ci2pb47gxzrhy2rcyd";
       };
     };
     "@babel/traverse-7.8.6" = {
@@ -118,7 +118,7 @@ let
       version = "7.8.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz";
-        sha512 = "2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==";
+        sha512 = "3s53fzm55c14accqfxhvdck1vkj87489w0rhcl7zj8phf9iz21qs0garpghgs0h1cj4s4n2fb7czipdm2mlrj19iaygh37zsv8ja7yq";
       };
     };
     "@babel/types-7.8.7" = {
@@ -127,7 +127,7 @@ let
       version = "7.8.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz";
-        sha512 = "k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==";
+        sha512 = "0kj404kqcscn0qdpis6kha2263fb0njap0qqcjbwf38jv9qvpxw39f84iiyjspgwz7v1bqcdpjpfb274dkgh2v9ih10w57i85wfnr4k";
       };
     };
     "@cnakazawa/watch-1.0.4" = {
@@ -136,7 +136,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz";
-        sha512 = "v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==";
+        sha512 = "2hl7iz90jal2f27hgyb5rbmcp96p182xkmflyj5rsyqqffng8vkzz3fcjvbvcpdykij40ax4yirdc6p68yrmjvai7hr8y93mj20indz";
       };
     };
     "@jest/console-24.9.0" = {
@@ -145,7 +145,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz";
-        sha512 = "Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==";
+        sha512 = "0nwvmyk8p01b6331xizblr7h9kkgp8rybjpfj1pa57h9w47lsnpyzzhh9vsji9q361bg17fmxwkgxs10k7nk9lcmfvphag7qipzms36";
       };
     };
     "@jest/core-24.9.0" = {
@@ -154,7 +154,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz";
-        sha512 = "Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==";
+        sha512 = "3c0jsaq55pcz4gx9sg9dccqpakbdfplm0w715lw904p8lvvz6p9899j47ndfcpnb5pba3vdzr96f5gmanwgmskyapshm51hrvg2120n";
       };
     };
     "@jest/environment-24.9.0" = {
@@ -163,7 +163,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz";
-        sha512 = "5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==";
+        sha512 = "1lpii90h62jy8h2awivnqdjarsicik5g1npmsyjm8yq24iv3n6d0ilgajw3v95qrw5m2gcpsy82cyqb35xkn9sn7i4gg1ngwjb503g4";
       };
     };
     "@jest/fake-timers-24.9.0" = {
@@ -172,7 +172,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz";
-        sha512 = "eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==";
+        sha512 = "3s57a5043fphl08b2gb8frph1gm1x47lb7za0n0iqspr4p0iwibvm7wmzgal27b8h2v93i229cyh786kymy80l3b3bhqjwqmlsiqr3r";
       };
     };
     "@jest/reporters-24.9.0" = {
@@ -181,7 +181,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz";
-        sha512 = "mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==";
+        sha512 = "0dkr3yy0x1n8b1226aczwz75785nl21hh913sadyqj48j0fq4sr9n2q2b2v23gqg6p63p4hcjcsdadlway599n57bgvf7ns539igvls";
       };
     };
     "@jest/source-map-24.9.0" = {
@@ -190,7 +190,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz";
-        sha512 = "/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==";
+        sha512 = "038h2qlv880agd1b1mqxmkxbqv76ikcvdas4gjzkppg77yzd61ww2nwvliwgymc860niaa9xsi2p5svrwg80hrk4w6bwrbcd723nz7x";
       };
     };
     "@jest/test-result-24.9.0" = {
@@ -199,7 +199,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz";
-        sha512 = "XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==";
+        sha512 = "2464cq11b9d51nrx8j5vi5m2572rrhi001l2lxz84wg5r6bkpskkszrk3s47w51h1rgm668ix0fgzwhgihjcxkafiy15738n0fnnhaw";
       };
     };
     "@jest/test-sequencer-24.9.0" = {
@@ -208,7 +208,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz";
-        sha512 = "6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==";
+        sha512 = "3h61jyz33sya4wglmvp4f1m5lhxagwv76gdbjafdxfc1nag58vdv4b65yiggsry5xx9ixjd8j1grjw3d3rsjy8gpifnv49li99srapa";
       };
     };
     "@jest/transform-24.9.0" = {
@@ -217,7 +217,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz";
-        sha512 = "TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==";
+        sha512 = "2cwna8zadqd9ahyf32pyg0hgrnn8qwwg55cdyw5imfbvj9g9kljwsbagx87074kzp3rdai22glvwkwpv7lk0aa49dw5ziai4fdi9i2d";
       };
     };
     "@jest/types-24.9.0" = {
@@ -226,7 +226,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz";
-        sha512 = "XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==";
+        sha512 = "03hdscpch75yk366szkrfi63n6mqd5hscqslcpxklq5j99n05qg1p54zj51jhcld1dvkc4hgw0vmzjcr0qncphfb54yx9jsxp6vp8jw";
       };
     };
     "@kubernetes/client-node-0.10.3" = {
@@ -235,7 +235,7 @@ let
       version = "0.10.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@kubernetes/client-node/-/client-node-0.10.3.tgz";
-        sha512 = "mw+1zdKfMW4QN2ns82SKFhAvqC4SVUAiItto4oFg3Me+a510h3h9N5O7ad6m4efAmlQBlMc6Y5FHz70dAwuiMg==";
+        sha512 = "0ra42q33nywyiwiccxcg501ajdc1rz1lvg6kfwk6xypi1vlkmmvxiywc20y4s6v48i40m8j5sl2y40ni9jg7v396w86wcczsb6va3wv";
       };
     };
     "@sindresorhus/is-0.7.0" = {
@@ -244,7 +244,7 @@ let
       version = "0.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz";
-        sha512 = "ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==";
+        sha512 = "2ilygr40l2yqbk6lix4xnnnqsq6fxa6sysdxg49bg1ax5gzhwy3bcjbdlk7lndgh9055slpx6fybs3p8mhvbsnnjkmkqzrfy8l5mn1q";
       };
     };
     "@types/accepts-1.3.5" = {
@@ -253,7 +253,7 @@ let
       version = "1.3.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz";
-        sha512 = "jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==";
+        sha512 = "30y19l2wp8plrlgcj6fn0qc7wdy72rcn69zvmn8463738bx4mz7pxwl8dml92gi7y1ry2hqzaq0ljvk8wfp6f9k0v092kpazlingrwc";
       };
     };
     "@types/axios-0.14.0" = {
@@ -271,7 +271,7 @@ let
       version = "7.0.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz";
-        sha512 = "dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==";
+        sha512 = "18iifcb27svl3qmsh5vvpidyw3cj6hhif0il25xsg76vq9gb4h8gmfqs5hv3is2dab09a6nwbinf6f1q641spv7spr33a9ynxp426vl";
       };
     };
     "@types/babel__core-7.1.6" = {
@@ -280,7 +280,7 @@ let
       version = "7.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.6.tgz";
-        sha512 = "tTnhWszAqvXnhW7m5jQU9PomXSiKXk2sFxpahXvI20SZKu9ylPi8WtIxueZ6ehDWikPT0jeFujMj3X4ZHuf3Tg==";
+        sha512 = "17ggrqy35zds8rkpa2kglnk8f5dc43sgbkbjcfjbaygi53jxwm9ji6vr1xqanhs2yn4spla51fjdypl2hsfdrkfhpkzban0ridf2fdm";
       };
     };
     "@types/babel__generator-7.6.1" = {
@@ -289,7 +289,7 @@ let
       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==";
+        sha512 = "1xw1hijlii2sxf25d5pcqlgqsb6vpzw7c3z9s0s20f1cdyyb768cajmxxk3l1c9g8md3h797v6pzvjvpjmw8q83aw8w69agcpxsc4kc";
       };
     };
     "@types/babel__template-7.0.2" = {
@@ -298,7 +298,7 @@ let
       version = "7.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz";
-        sha512 = "/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==";
+        sha512 = "199fw9pirw68kdc47d80sy6gg5g6m8raxawnxwpcs0nc6bmxrv19qmv1212lfyw67a2l5b5abxz9g0i1fwnrxm6h6rqkv4njw5b7bpw";
       };
     };
     "@types/babel__traverse-7.0.9" = {
@@ -307,7 +307,7 @@ let
       version = "7.0.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.9.tgz";
-        sha512 = "jEFQ8L1tuvPjOI8lnpaf73oCJe+aoxL6ygqSy6c8LcW98zaC+4mzWuQIRCEvKeCOu+lbqdXcg4Uqmm1S8AP1tw==";
+        sha512 = "2vza0zha9nrlal5hgfdbaavx6xqxq195whl8274barqkyw26vrvvi9d7jkwp4harbx158wsxwjh4ypgkyb9w9cg73iz7fkdppq50hcc";
       };
     };
     "@types/babylon-6.16.5" = {
@@ -316,7 +316,7 @@ let
       version = "6.16.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz";
-        sha512 = "xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==";
+        sha512 = "3pvh96p07fz7ib5j5519lk4xm59i6yv2dyy4xsmjv853fi61lziwz0q03y3bih2nvvskcy82jqsaxaadagjmrr9wdbkv9m5qzkrwzf4";
       };
     };
     "@types/body-parser-1.19.0" = {
@@ -325,7 +325,7 @@ let
       version = "1.19.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz";
-        sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==";
+        sha512 = "0av4v9bdhgbq0jils3jajym9gcfddyx63g2xx8fh6vqafqb5vdcm98p1kfl70ydih9m393zp13krslmii5bmf05ngyaxn139nn0kpsv";
       };
     };
     "@types/caseless-0.12.2" = {
@@ -334,7 +334,7 @@ let
       version = "0.12.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz";
-        sha512 = "6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==";
+        sha512 = "39jv2a7v9mi41wxbv242icriy5asbzyk95iy25ay3gwa1d6yi40cd6gclbzn81hig9xvvi5z7j2gq4ybirjfyihpq8wa3s160r33jg9";
       };
     };
     "@types/command-line-args-5.0.0" = {
@@ -343,7 +343,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.0.0.tgz";
-        sha512 = "4eOPXyn5DmP64MCMF8ePDvdlvlzt2a+F8ZaVjqmh2yFCpGjc1kI3kGnCFYX9SCsGTjQcWIyVZ86IHCEyjy/MNg==";
+        sha512 = "0vcqbwg68hir26fcyaqqn0w6i70cas8zn2ibhk9j0vl5mnwd2j448fvl6lqx5cny62szngdbjz6bxqfiz3ig360w3x663pr55gqzqz1";
       };
     };
     "@types/connect-3.4.33" = {
@@ -352,7 +352,7 @@ let
       version = "3.4.33";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz";
-        sha512 = "2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==";
+        sha512 = "3n5gxr7z1jn60gvcnzls1c3fgzbv171acdp4shbn095wnbb8hdba3cjq1sac8aina3bg957ww5hg89swcgbdjfp9irmkkiqfs8npqfv";
       };
     };
     "@types/cookies-0.7.4" = {
@@ -361,7 +361,7 @@ let
       version = "0.7.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.4.tgz";
-        sha512 = "oTGtMzZZAVuEjTwCjIh8T8FrC8n/uwy+PG0yTvQcdZ7etoel7C7/3MSd7qrukENTgQtotG7gvBlBojuVs7X5rw==";
+        sha512 = "2pzkddkjlxs4h8rpkh6xd381f0m6hwhxsmfx7f4vkzjxv55hyvdx7km3ks4wckd7jz0rfzzr45nphaggj48q0iwin25n0ar6qrsscd1";
       };
     };
     "@types/cron-1.7.2" = {
@@ -370,7 +370,7 @@ let
       version = "1.7.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/cron/-/cron-1.7.2.tgz";
-        sha512 = "AEpNLRcsVSc5AdseJKNHpz0d4e8+ow+abTaC0fKDbAU86rF1evoFF0oC2fV9FdqtfVXkG2LKshpLTJCFOpyvTg==";
+        sha512 = "17az71shn84qjqsnb5646z4amysvnhmgpsxj0ja2w2zlykmn7m3q1bchgrd30indnd0z8ryxzhisgd78yij87nv04wjfm9c2wnlsjh0";
       };
     };
     "@types/events-3.0.0" = {
@@ -379,7 +379,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz";
-        sha512 = "EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==";
+        sha512 = "3v6shgxnlkc7izsc00g8ilpxi1q2mpcmbjyfawyqcj8mwfhlx2cnkm3hj87gsd39yyq33pilb0dbb4cdc8wwhn7dcwj4srg0amrp8qi";
       };
     };
     "@types/express-4.17.3" = {
@@ -388,7 +388,7 @@ let
       version = "4.17.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/express/-/express-4.17.3.tgz";
-        sha512 = "I8cGRJj3pyOLs/HndoP+25vOqhqWkAZsWMEmq1qXy/b/M3ppufecUwaK2/TVDVxcV61/iSdhykUjQQ2DLSrTdg==";
+        sha512 = "1vd6aidhc6l28s5r9hjg2bzmmbmqp0dspsdp2h6affggfb9g8rzzxnbjxdan9n1b1n0d44n3amcx6yvzs1pdrzinf5j79zpk120dir3";
       };
     };
     "@types/express-serve-static-core-4.17.2" = {
@@ -397,7 +397,7 @@ let
       version = "4.17.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.2.tgz";
-        sha512 = "El9yMpctM6tORDAiBwZVLMcxoTMcqqRO9dVyYcn7ycLWbvR8klrDn8CAOwRfZujZtWD7yS/mshTdz43jMOejbg==";
+        sha512 = "1pa7rrhwf6wzp8lnbk2zjgvc2sxks36bw23p060kz1mm4kwyipddhn9zg4n2wnmym7a9ahw6fhk3ircal30f8ih8i7ancrdjwr74pqj";
       };
     };
     "@types/formidable-1.0.31" = {
@@ -406,7 +406,7 @@ let
       version = "1.0.31";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/formidable/-/formidable-1.0.31.tgz";
-        sha512 = "dIhM5t8lRP0oWe2HF8MuPvdd1TpPTjhDMAqemcq6oIZQCBQTovhBAdTQ5L5veJB4pdQChadmHuxtB0YzqvfU3Q==";
+        sha512 = "3fx9xxa6d30fvgc3rkag182sjjpi43qdyzf9l6l050zi8hk2h4511m0pb59k7ha611khkjg7bamvxry5v1ig1zdb4lgsi15vzk4r23l";
       };
     };
     "@types/glob-7.1.1" = {
@@ -415,7 +415,7 @@ let
       version = "7.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz";
-        sha512 = "1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==";
+        sha512 = "3dhbgdkzpgx010hfgkhndrb094kbd3z6s4waicihnl0rp3jk0f0gs8vvzi84xzissrhml1dfgvbdhahzbh75nny1g6429fnqvlp866l";
       };
     };
     "@types/http-assert-1.5.1" = {
@@ -424,7 +424,7 @@ let
       version = "1.5.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz";
-        sha512 = "PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==";
+        sha512 = "1cn6djbpsp6rky1sllzs6s311xz0zhzkwb38s68w83ij8whsygjr87ymzbp0x3gbxxnvhfa1xh1c5vxfan6q3dz2gbjgiv9kzphlq1w";
       };
     };
     "@types/istanbul-lib-coverage-2.0.1" = {
@@ -433,7 +433,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz";
-        sha512 = "hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==";
+        sha512 = "2b0br9w70brjpzw8ck05lr79v6hc4sdk1q2jq6qs55nw869ylsfwng48ghj0yjcm9skkn76g8ry8rdf2b35i2iynbh957k7m3cl64l5";
       };
     };
     "@types/istanbul-lib-report-3.0.0" = {
@@ -442,7 +442,7 @@ let
       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==";
+        sha512 = "2parlinb7jrj152li79c6fs089y970f0s7yvzpkid8m4r8cgr9rn54bhg5ak7hsw6yvs9isx0diwjq20fb3dggnc5la2m6z0dfa0ld6";
       };
     };
     "@types/istanbul-reports-1.1.1" = {
@@ -451,7 +451,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz";
-        sha512 = "UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==";
+        sha512 = "0s1jhax5h82lqchx13zj07h3zpyhqzckbnc76yl3a864xy91x11s06q3b2nds5pi89059xxa2b57p45ja90da60hr1gay9i5w3275jj";
       };
     };
     "@types/jest-24.9.1" = {
@@ -460,7 +460,7 @@ let
       version = "24.9.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/jest/-/jest-24.9.1.tgz";
-        sha512 = "Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q==";
+        sha512 = "3hkz9dl54is1hmjiscs6sdvmafpv192bb3qz6sq6yq862dhvl4i5qwqbikbkmcn1576jiccpvrc35kvlng132piy45hwm6j8lggrg8m";
       };
     };
     "@types/js-yaml-3.12.2" = {
@@ -469,7 +469,7 @@ let
       version = "3.12.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.2.tgz";
-        sha512 = "0CFu/g4mDSNkodVwWijdlr8jH7RoplRWNgovjFLEZeT+QEbbZXjBmCe3HwaWheAlCbHwomTwzZoSedeOycABug==";
+        sha512 = "2x03h69ivbpj4lsrpq698phn44jbq45jq31zdr7k30phrfv8r0gxr35qi98qbqa6rb599k8nhgj7gwnvll5lw6ml5j263961vz6w8fh";
       };
     };
     "@types/keygrip-1.0.2" = {
@@ -478,7 +478,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz";
-        sha512 = "GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==";
+        sha512 = "0mqq8pzrfh058ha153xmyrbvcwpqq02z0ap89pw2rgfw9ll8c78dnxa0161i3pjhz7q0n7kizh73841637s4spc35qygnkkx96nk60q";
       };
     };
     "@types/koa-2.11.2" = {
@@ -487,7 +487,7 @@ let
       version = "2.11.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/koa/-/koa-2.11.2.tgz";
-        sha512 = "2UPelagNNW6bnc1I5kIzluCaheXRA9S+NyOdXEFFj9Az7jc15ek5V03kb8OTbb3tdZ5i2BIJObe86PhHvpMolg==";
+        sha512 = "2b2i4xy8zwfig5p744i5n32krsyvgbdjg1nzr2dawwykr9m6zp37l4g8m0mr7936yzd80yiwn2rmq4n6d1fcj6dkndnwd8dm2axwhyr";
       };
     };
     "@types/koa-compose-3.2.5" = {
@@ -496,7 +496,7 @@ let
       version = "3.2.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz";
-        sha512 = "B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==";
+        sha512 = "02hhnlq6kz27g5y2vlnj3pk1rnm16gh2qb7hf3gpxrarxrz35pc40y0aiz34ncaiggpk8306yz9q0pwm75mc099m1cy9m04xbycdj87";
       };
     };
     "@types/koa-router-7.4.0" = {
@@ -505,7 +505,7 @@ let
       version = "7.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/koa-router/-/koa-router-7.4.0.tgz";
-        sha512 = "CkNyhGOCJ6rpBEG0rlSQhwHsHNwMzGLE49tV3jE5f0TvMzy/SmoCAIlHWdOLs8Mro+BqtKFH6e/lDaibWkydag==";
+        sha512 = "1m9sk2skfl0vrggx53s3d3aw2ijphxkig9mjiw90016ljmz7hryyi3z74qxwmfvwg265k0cvhffq0c7j1aaxd210klsl9w2cf274hqa";
       };
     };
     "@types/koa-send-4.1.2" = {
@@ -514,7 +514,7 @@ let
       version = "4.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/koa-send/-/koa-send-4.1.2.tgz";
-        sha512 = "rfqKIv9bFds39Jxvsp8o3YJLnEQVPVriYA14AuO2OY65IHh/4UX4U/iMs5L0wATpcRmm1bbe0BNk23TRwx3VQQ==";
+        sha512 = "10xa7f3s5sdnr0ks3gbdmd635qyj160yj9b737qagw4bqbzg0hbk3irnvih4y0dc3i5lg8m8jf4p0nx52gv4vwwyhvxn5avzwi8mymd";
       };
     };
     "@types/koa-static-4.0.1" = {
@@ -523,7 +523,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/koa-static/-/koa-static-4.0.1.tgz";
-        sha512 = "SSpct5fEcAeRkBHa3RiwCIRfDHcD1cZRhwRF///ZfvRt8KhoqRrhK6wpDlYPk/vWHVFE9hPGqh68bhzsHkir4w==";
+        sha512 = "3isnj0yxhf6xg0ymb317xj4a4fxdywk1xb0wadc5ghimab8m3q6vx3yv7zzyi84hx8wdm83fw65z108n0cdvnhij28hfw64jyvmqaj9";
       };
     };
     "@types/koa-views-2.0.4" = {
@@ -532,7 +532,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/koa-views/-/koa-views-2.0.4.tgz";
-        sha512 = "aGFBVLiPC7FkXTqHLhnmjKhx3COV+GeJHO9OkLX/p/iAQTgDB5bbnsddx3XgrS6aACWyxR3BpQJVDdSqCNY1lw==";
+        sha512 = "2bkbmh8mba0sm82lp0ividj4l09lbmdw1swfpf7kvdrc1q3710q1y57zysr0kpg3j4ngy4m4gf73a4cwqcjx1rsbmjb22wgp1a42qb8";
       };
     };
     "@types/lodash-4.14.149" = {
@@ -541,7 +541,7 @@ let
       version = "4.14.149";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.149.tgz";
-        sha512 = "ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ==";
+        sha512 = "0jnvvzg602jxgjxl0fvi7iws4msvxvkff6mqvinyy0fcmxfxrpf46k30r6s0z7cb12r17sg0j6nbhg8s8xbvgf2rmgv0vvzkg6slcca";
       };
     };
     "@types/lodash.clonedeep-4.5.6" = {
@@ -550,7 +550,7 @@ let
       version = "4.5.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.6.tgz";
-        sha512 = "cE1jYr2dEg1wBImvXlNtp0xDoS79rfEdGozQVgliDZj1uERH4k+rmEMTudP9b4VQ8O6nRb5gPqft0QzEQGMQgA==";
+        sha512 = "2010qs0qh6d3vd77rhbwid7xvq511bgzp9vj4s3k2mlzqj78jwgb60dc84mdl4c38fz3bgx5shl6k57dm9mxbw90iq0s4lxpmi66kbh";
       };
     };
     "@types/mime-2.0.1" = {
@@ -559,7 +559,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz";
-        sha512 = "FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==";
+        sha512 = "35iimmp0d3zg4774qavnq9wh54dgnxfks59fks65f8q8d1008x00a1fmkdnxcs27znlc69mzbxp1frzpxx85c5w4x0ha5prgs0ks0hp";
       };
     };
     "@types/minimatch-3.0.3" = {
@@ -568,7 +568,7 @@ let
       version = "3.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz";
-        sha512 = "tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==";
+        sha512 = "2ff7lcgph45bp2v5zsaxcy00rbh5n5h4njbicwhqilz66pd1lw7xfrpfl4i4ppfcx78zg9cp582b5fjif0dg7r18m44vxfksslvlyml";
       };
     };
     "@types/mkdirp-0.5.2" = {
@@ -577,7 +577,7 @@ let
       version = "0.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz";
-        sha512 = "U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==";
+        sha512 = "177ihvl818zn0w93xipz417pm2cj2jzwnqs2khkj0k2dd7gs6ssv460affznfiii54a5l8qffigcq6xl74zsy6339c7cqpvkdd9r62k";
       };
     };
     "@types/node-10.17.17" = {
@@ -586,7 +586,7 @@ let
       version = "10.17.17";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/node/-/node-10.17.17.tgz";
-        sha512 = "gpNnRnZP3VWzzj5k3qrpRC6Rk3H/uclhAVo1aIvwzK5p5cOrs9yEyQ8H/HBsBY0u5rrWxXEiVPQ0dEB6pkjE8Q==";
+        sha512 = "3qw8j56g9078d7lahi73ifnpbk2x385diqgq1qgr62drcxbqgjnkbncy25nhdas05hwkfgzf69r2bj4x6mdwr1yrsrmbpagfr36g4w2";
       };
     };
     "@types/node-12.12.30" = {
@@ -595,7 +595,7 @@ let
       version = "12.12.30";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/node/-/node-12.12.30.tgz";
-        sha512 = "sz9MF/zk6qVr3pAnM0BSQvYIBK44tS75QC5N+VbWSE4DjCV/pJ+UzCW/F+vVnl7TkOPcuwQureKNtSSwjBTaMg==";
+        sha512 = "0rdl54cn0jbb3g2mlp09fywwf8d6plyspmiggr5rja9z93z4n606kj8srbgjk9f83wjxd9qmq20ixj2a90369whvrmsbsp4zhblqgxk";
       };
     };
     "@types/ora-3.2.0" = {
@@ -604,7 +604,7 @@ let
       version = "3.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/ora/-/ora-3.2.0.tgz";
-        sha512 = "jll99xUKpiFbIFZSQcxm4numfsLaOWBzWNaRk3PvTSE7BPqTzzOCFmS0mQ7m8qkTfmYhuYbehTGsxkvRLPC++w==";
+        sha512 = "3xvxw1cs55wdb1ihpg8df91crz17agjwq79kd342s137kwkz823n8adxxrr74fnb1rn0ffsq9zacyz2cv642ljn41dj39ha2pvpsncf";
       };
     };
     "@types/range-parser-1.2.3" = {
@@ -613,7 +613,7 @@ let
       version = "1.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz";
-        sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==";
+        sha512 = "0w59kqlbrl9ich2pv2xqanzmg9f51404zqsba9l8aimqd77zbrdxcyq9q13xfnhr0d1dz4mx6z7n976ryc2nk2gfch5p507njm5f0bv";
       };
     };
     "@types/request-2.48.4" = {
@@ -622,7 +622,7 @@ let
       version = "2.48.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/request/-/request-2.48.4.tgz";
-        sha512 = "W1t1MTKYR8PxICH+A4HgEIPuAC3sbljoEVfyZbeFJJDbr30guDspJri2XOaM2E+Un7ZjrihaDi7cf6fPa2tbgw==";
+        sha512 = "21mnsvbrykpzp1f1rd2ibk3nsgr8kyqikk5rdmq4qlkpf10gnpxp414hnvnbwjp27l5hvpc5l0fx0qhw20h7zi143qw6iwq68qpansv";
       };
     };
     "@types/serve-static-1.13.3" = {
@@ -631,7 +631,7 @@ let
       version = "1.13.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz";
-        sha512 = "oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g==";
+        sha512 = "39fm32fi9qpb1bz4q399y9rzv02ywml2m1qmclyr1ckrmy4vdn8nv5f9986ckn19yapxif0ljs0gc717xd7dmssjnh37qrxkp1d56m2";
       };
     };
     "@types/stack-utils-1.0.1" = {
@@ -640,7 +640,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz";
-        sha512 = "l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==";
+        sha512 = "29j551rin7d7ygf7pd95db51b4jf48vsjnl03l4djdi6sh5jsk2f4kxwf21ixzj92mwq8y4cfhbcihwppxfkm4pkb5sqiv91a1833cp";
       };
     };
     "@types/tough-cookie-2.3.6" = {
@@ -649,7 +649,7 @@ let
       version = "2.3.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.6.tgz";
-        sha512 = "wHNBMnkoEBiRAd3s8KTKwIuO9biFtTf0LehITzBhSco+HQI0xkXZbLOD55SW3Aqw3oUkHstkm5SPv58yaAdFPQ==";
+        sha512 = "0yla1v86agvz3wlkdjcn7i4hpgb02nwjsafg0xkdkclbiil08fkxjj9c4q4yj785ps3gdc5p3sqx2y0rajg1v6x068ih418g4r42wy0";
       };
     };
     "@types/underscore-1.9.4" = {
@@ -658,7 +658,7 @@ let
       version = "1.9.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/underscore/-/underscore-1.9.4.tgz";
-        sha512 = "CjHWEMECc2/UxOZh0kpiz3lEyX2Px3rQS9HzD20lxMvx571ivOBQKeLnqEjxUY0BMgp6WJWo/pQLRBwMW5v4WQ==";
+        sha512 = "1czi6sv1hf482wlzsl9an3s18r033aiy54airz2558f1g32ppkz3jy44mnhzwyi9g87miwggp4l8yfgc95d4qg6qka6ywq2q48dcc8a";
       };
     };
     "@types/websocket-0.0.40" = {
@@ -667,7 +667,7 @@ let
       version = "0.0.40";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/websocket/-/websocket-0.0.40.tgz";
-        sha512 = "ldteZwWIgl9cOy7FyvYn+39Ah4+PfpVE72eYKw75iy2L0zTbhbcwvzeJ5IOu6DQP93bjfXq0NGHY6FYtmYoqFQ==";
+        sha512 = "0ajm2lr5mbfin316js7lzg3fvvhyd78ms1y929ppwqbg1fv6k9qnbcbz472p637xx29azlgiy3l0zzv4zvcmi9f7df5z0l80mkmxnwm";
       };
     };
     "@types/ws-6.0.4" = {
@@ -676,7 +676,7 @@ let
       version = "6.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/ws/-/ws-6.0.4.tgz";
-        sha512 = "PpPrX7SZW9re6+Ha8ojZG4Se8AZXgf0GK6zmfqEuCsY49LFDNXO3SByp44X3dFEqtB73lkCDAdUazhAjVPiNwg==";
+        sha512 = "318vy2l4c8cw6nm061l15pp3ss2llblyy2y7a8w92vp6da3n7s3iiha5shpxrmc5c3gv0ap0vq9x10vv64g5np1xggdlnwrnigyp4ry";
       };
     };
     "@types/yargs-13.0.8" = {
@@ -685,7 +685,7 @@ let
       version = "13.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz";
-        sha512 = "XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==";
+        sha512 = "36csm2rf0wi6cj680qswwvyl3lvh88ayl578165z8d1hxh6saswzn2g2zl5v20c08jg9rdjhqwwi336yj0jh6l76fy0yldv04pwf2sw";
       };
     };
     "@types/yargs-parser-15.0.0" = {
@@ -694,7 +694,7 @@ let
       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==";
+        sha512 = "35k8bcpm51w11xbny2a8gqgz12pdn3pw8w0jf36jzlkcmpkrqlqnqf9gbrwj9sah0pv05clzlgk2a7kvnr9q3h1za4rbw9dzxdc23ql";
       };
     };
     "@webassemblyjs/ast-1.8.5" = {
@@ -703,7 +703,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz";
-        sha512 = "aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==";
+        sha512 = "00rj3q9igpw0cihw48xx7qpmmv64yy821bvy52dqxqc7w8kq2hga2f2v2g5j83is5kdz4hfdla4a3h6q5lwpdshxynrzsqr0ag1z4v8";
       };
     };
     "@webassemblyjs/floating-point-hex-parser-1.8.5" = {
@@ -712,7 +712,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz";
-        sha512 = "9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==";
+        sha512 = "2shwdw16zcsl2rkvyc8jlgcs5564si8m64b0v9f8ssmrxmrd84c82brnwbyblhynqldvyr8f3fl9pjvfgzw0phz0qm5mfzbc7svp7zn";
       };
     };
     "@webassemblyjs/helper-api-error-1.8.5" = {
@@ -721,7 +721,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz";
-        sha512 = "Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==";
+        sha512 = "363avw28ls7abwqcy7wvhdr853pccnzd9b58i1k7l1aax5cads499b494i1lwj4nlb8ksypy3nchr97i9y5r57k91dag7ig7fgyvbv5";
       };
     };
     "@webassemblyjs/helper-buffer-1.8.5" = {
@@ -730,7 +730,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz";
-        sha512 = "Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==";
+        sha512 = "3yxqbq2lizijhxxr5ics6i0c5hc6c00fw4dqlqiq669mr1b0zalzs0670psbddmd4sq3yks567n1wr00l5flg6lwf34xlcjfgr92ba6";
       };
     };
     "@webassemblyjs/helper-code-frame-1.8.5" = {
@@ -739,7 +739,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz";
-        sha512 = "VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==";
+        sha512 = "0ljgrac16148nv6nbzk5jisalyjx3pgm4vdcbzympzn143367w1k82lvpr7iwrslildvi6ck1jj9vjqy8fj2fkyli6qhr4v5dsil02m";
       };
     };
     "@webassemblyjs/helper-fsm-1.8.5" = {
@@ -748,7 +748,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz";
-        sha512 = "kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==";
+        sha512 = "2imw7y018r4hyvyaaw2cpvrv3qp9bv4vg816l2yvl79xwd2dnplmsmmwsv3vmy2b8mvdjzq0dknkd2i6sjbgpzgn4ychicfqvz9f6wi";
       };
     };
     "@webassemblyjs/helper-module-context-1.8.5" = {
@@ -757,7 +757,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz";
-        sha512 = "/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==";
+        sha512 = "3gfr1zif7fxlfbpfkcqncq8vmrimncn6pmvh0x7av1pb82a9vhhahpy2mkrgdrc3w62gw0lbbhj4zwgrxzgabaf246vadx6gvdl3vgw";
       };
     };
     "@webassemblyjs/helper-wasm-bytecode-1.8.5" = {
@@ -766,7 +766,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz";
-        sha512 = "Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==";
+        sha512 = "10klm32913whkdnjk7jgf262lgl6wqv9qkw6ssjg1lmlzwa0qbn159l962j6pfx3idzaf4w014gmcy17wssdri6v1xxj3dph4qiivha";
       };
     };
     "@webassemblyjs/helper-wasm-section-1.8.5" = {
@@ -775,7 +775,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz";
-        sha512 = "VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==";
+        sha512 = "2s3d3bh4wrizs5y2p480qnxs5m1hx9pfkppa38f7mk9w49cfq6h0gq5c0q79aqrl4jpyzqzmrsdbyx9562q1bb547mm9y8i7kgkqpam";
       };
     };
     "@webassemblyjs/ieee754-1.8.5" = {
@@ -784,7 +784,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz";
-        sha512 = "aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==";
+        sha512 = "3g8bqb43s1n4nrzn5f7vrhdpi88mnr49xpwcq5jb0ql7baslh3cxni2rijp0hng7daai5d0n7dnn0llyazis2mckwzvcaggi90sz839";
       };
     };
     "@webassemblyjs/leb128-1.8.5" = {
@@ -793,7 +793,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz";
-        sha512 = "plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==";
+        sha512 = "3ncjzk3d9pjnjd0vfagpbaa02jpmgapq2hyamzpfpaidshgcyqbz6rfhfp3arvjcdxpws4d9bi0wf552pzr9vs9i8rv4y159jwi8mm6";
       };
     };
     "@webassemblyjs/utf8-1.8.5" = {
@@ -802,7 +802,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz";
-        sha512 = "U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==";
+        sha512 = "27hlgvdfxw9arxzrdrnfd7zmzp953439jyjh8acb3g2nm0ysr9il2xl3v0dklr9yvv6jkmj7s9yi29l2izgghypxqvjrblhv5zf1g2k";
       };
     };
     "@webassemblyjs/wasm-edit-1.8.5" = {
@@ -811,7 +811,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz";
-        sha512 = "A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==";
+        sha512 = "3lzdvq0vwmp3civ70pdrr3970i7viiywnwry8ysmvmfbd4zhkffs4d5vyy5ibvxmmass9nlmvs3cd8fwh633yx8prr0wnqc5wrl9383";
       };
     };
     "@webassemblyjs/wasm-gen-1.8.5" = {
@@ -820,7 +820,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz";
-        sha512 = "BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==";
+        sha512 = "1d2nc7b2zjdyaxyrvxm5mck8aj0p95dznknn8j8wi5d3ah55zpf2kp18kk79l55fbb7k9vhri74yqbks9ay9qrwbh12si6l897l29h4";
       };
     };
     "@webassemblyjs/wasm-opt-1.8.5" = {
@@ -829,7 +829,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz";
-        sha512 = "HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==";
+        sha512 = "3npgmsia24ap1yhdpdn1c9bwdq71glsxdyn7kyphz5x4gnxl97v04iwgcsaj2k1di5vgq1m8mlqfrllxk4fvviwl8xd11ylxyc3dahw";
       };
     };
     "@webassemblyjs/wasm-parser-1.8.5" = {
@@ -838,7 +838,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz";
-        sha512 = "pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==";
+        sha512 = "2bprpybs2qm4m1fbdd877aqj8s153j4gg32bf8qnmigqnjcfwl6mxmbzb90xq7qx6zvwqniv4rirgd40b4c2qab6bfdgsjk9xh14bd6";
       };
     };
     "@webassemblyjs/wast-parser-1.8.5" = {
@@ -847,7 +847,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz";
-        sha512 = "daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==";
+        sha512 = "2r6vw7gg4ij9mjl2f564mwnjsrn7nzsvr1gcrpch0f87xayvjky82f4cn6sh0d8714fpqqqrfq6a1797jnnqs2xidsp2n4abkac59bm";
       };
     };
     "@webassemblyjs/wast-printer-1.8.5" = {
@@ -856,7 +856,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz";
-        sha512 = "w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==";
+        sha512 = "0r5hhrrqk2ww81xjvbxjglp0sh6igz55pjy45ly4786kq3b723vlhqsydr7j87sb3zyww9zvjil08jmk8dcr2978zpmk1h47sj38if3";
       };
     };
     "@xtuc/ieee754-1.2.0" = {
@@ -865,7 +865,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz";
-        sha512 = "DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==";
+        sha512 = "1wczr2c331gq4q6w6nsiylqs6q6dp0j2lvc231826gfrdhr3lcimmyhswp4g0b5p7k7k525gq6gh0wpg65sjlp2s4f0n6ww18m2fzqd";
       };
     };
     "@xtuc/long-4.2.2" = {
@@ -874,7 +874,7 @@ let
       version = "4.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz";
-        sha512 = "NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==";
+        sha512 = "00n8akj5s578b8r7vcdz817cnmga21vznz895kygvb0j780968szj171f91b0bgvz880ff7zq025q4087cgxb2fqpyg01sgil2ymq9n";
       };
     };
     "abab-2.0.3" = {
@@ -883,7 +883,7 @@ let
       version = "2.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz";
-        sha512 = "tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==";
+        sha512 = "192f58ba6nxqhzyxlp9dlj156ry71s8mlfvgbg37kj2slffixrwj2s3zwpnyyhy4mh5m7sy3idir119mk518hjhii6skd9djwz77hdn";
       };
     };
     "abbrev-1.1.1" = {
@@ -892,7 +892,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
-        sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
+        sha512 = "38s4f3id97wsb0rg9nm9zvxyq0nvwrmrpa5dzvrkp36mf5ibs98b4z6lvsbrwzzs0sbcank6c7gpp06vcwp9acfhp41rzlhi3ybsxwy";
       };
     };
     "accepts-1.3.7" = {
@@ -901,7 +901,7 @@ let
       version = "1.3.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
-        sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
+        sha512 = "2j51dxzbgz22q0k7dhivimfsqx9a0f0h9slfd7n20gz3y1944gx3y7xai54za0x3zhbar6vqiaab2i9p913cwqk414qk3cnrm138pr2";
       };
     };
     "acorn-3.3.0" = {
@@ -928,7 +928,7 @@ let
       version = "5.7.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz";
-        sha512 = "1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==";
+        sha512 = "0k4pivh1yagdalb26khf36wscaxi3kbv6w48zg5jsll2scl2wq4f4gxcq9ggnzf37l4y446n4a3bmr85wx0fnwk89pvp1n1drabwgyl";
       };
     };
     "acorn-6.4.1" = {
@@ -937,7 +937,7 @@ let
       version = "6.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz";
-        sha512 = "ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==";
+        sha512 = "1s65pswzbh0155lsrdln08lifgs34zb53vkfl8fvxwnfmrc84vj01m9b31w4n846k7vk8lr5ns6wqf0fxc8xz98vkihldxsgn9ksl35";
       };
     };
     "acorn-7.1.1" = {
@@ -946,7 +946,7 @@ let
       version = "7.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz";
-        sha512 = "add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==";
+        sha512 = "29c8jlhwnfbnqa2s1v593lcpksv4hl56lywss4gy6w0mwmhx4ydf2n7var8bhcf39nm9asph0ybnf1hkw0s0j91qi7r99ir01v7pmv9";
       };
     };
     "acorn-globals-3.1.0" = {
@@ -964,7 +964,7 @@ let
       version = "4.3.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz";
-        sha512 = "clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==";
+        sha512 = "38gm4qa9sr1znbnlv4w33f1zrqsvldv66yqlflsc7r5ifxwsnpizsa93yxd3d1a8wy08j424smizrywkzam36z4jpsf0ixm3l9d0mvj";
       };
     };
     "acorn-walk-6.2.0" = {
@@ -973,7 +973,7 @@ let
       version = "6.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz";
-        sha512 = "7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==";
+        sha512 = "1q392w8cii4phm8maghmlfjzgzmwhd2n0xadah315lqflygnaf5g7gn6lhbdfszf1sdqx5j4bik89qa6zg03n8cfj1b6w7my74yrszd";
       };
     };
     "acorn-walk-7.1.1" = {
@@ -982,7 +982,7 @@ let
       version = "7.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz";
-        sha512 = "wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==";
+        sha512 = "10s7pz9c2jqw7sjmkkwfb6kyyfgb7qqpmz2gc0fq9phhmfknyw029x1jbw0cwi47wbacpwkw65601arnid2l95lmz0xbzv6ddilznf1";
       };
     };
     "aggregate-error-1.0.0" = {
@@ -1000,7 +1000,7 @@ let
       version = "6.12.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz";
-        sha512 = "D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==";
+        sha512 = "0gkcic96nmpcq311i2jfwbaa961x0mj7mkl7iwk213hyn4jgxbl0a472lcpg9dr7ybacn3i45fj6q0dz3g8rqmva7r14i9la240ba0g";
       };
     };
     "ajv-errors-1.0.1" = {
@@ -1009,7 +1009,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz";
-        sha512 = "DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==";
+        sha512 = "24kqslzd256yc0dckqcg8n1rngyfzdflfznp55hnhkv3rhyzirjhpj31rgiiryyjlw8a64x9ba7hdqkpiwf6jpllwyyyhr7zqxmy90c";
       };
     };
     "ajv-keywords-3.4.1" = {
@@ -1018,7 +1018,7 @@ let
       version = "3.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz";
-        sha512 = "RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==";
+        sha512 = "1lyjmfg70gijr3gjs63qmawfazm5mz8vb1bknyy1vzdif6a30vi3dpwkrlv4j4i5dg56jd3fliqgfq0rxbm98a42jxbgnyxmdn65va4";
       };
     };
     "align-text-0.1.4" = {
@@ -1036,7 +1036,7 @@ let
       version = "3.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz";
-        sha512 = "hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==";
+        sha512 = "2n6gl8300ihln724832pvvzrii5c4qjli9xc16s632ywnyrfbv1kmcqg133v25583hqhflpsfi2yhkjy6nhzj0si5v36zhym0cifxc4";
       };
     };
     "ansi-escapes-3.2.0" = {
@@ -1045,7 +1045,7 @@ let
       version = "3.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
-        sha512 = "cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==";
+        sha512 = "12pp3q4c44hrzr2xl9vqjigwjn2wr1j0lhvshl75z5m6a97hqkd047sdcma1inzjvxhpkzk1qkvag7cw3sya32s9wsfasr6xsnnj63h";
       };
     };
     "ansi-html-0.0.7" = {
@@ -1081,7 +1081,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
-        sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
+        sha512 = "1v2gfp292kslpvam0l0h1iba35yi0n7dc6qv6fmxsdyfcp6zakkl13vrh3hzsw4zgh50jrrsg7xb2q2hn4g8a0dmf947mfcylymxanm";
       };
     };
     "ansi-styles-2.2.1" = {
@@ -1099,7 +1099,7 @@ let
       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==";
+        sha512 = "2lgkskkj4c1fsnrksy0yffda0wss84p8lfiazdc7jli7iqnvrxkzbxjzpvx13lm28qw0zkawfxvz2bdiisc72ccy7hx8i8rm4iijgam";
       };
     };
     "any-promise-1.3.0" = {
@@ -1117,7 +1117,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz";
-        sha512 = "5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==";
+        sha512 = "03mjsaw6xk4zhvl17fpqn59j4v2bafqs0yfw5y45hl8x97xlihwvjmcx3icnaamvipplnczymvzg4sb4ixwpzak0k3p21c00nqqxmz6";
       };
     };
     "aproba-1.2.0" = {
@@ -1126,7 +1126,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
-        sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
+        sha512 = "13mgnbmdhdq0qncijvpip1l39q1a8labcvj3hc3n1yl2zch106mdkn7p7bd5knvmfkkn1js9nd47nzyjk1himbm8ry8i8gd6mk7mlk3";
       };
     };
     "argparse-1.0.10" = {
@@ -1135,7 +1135,7 @@ let
       version = "1.0.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
-        sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
+        sha512 = "17fhywmdjcp8g0ys089i5xg26yajkkg9zg8hyry3fghz75b2pq5vdx997dk5p2sc15r9nsj8rmf4f27g81hi92kzj5q86sdmg5ni553";
       };
     };
     "arr-diff-4.0.0" = {
@@ -1153,7 +1153,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz";
-        sha512 = "L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==";
+        sha512 = "2vdly17xk5kw7bfzajrjdnw4ml3wrfblx8064n0i4fxlchcscx2mvnwkq2bnnqvbqvdy4vs9ad462lz0rid7khysly9m9vzjiblly1g";
       };
     };
     "arr-union-3.1.0" = {
@@ -1171,7 +1171,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz";
-        sha512 = "TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==";
+        sha512 = "3aqfm29ppm74q3q0xlxldmf1a3vbkl9a6fbljf211cfgc7asjbkdglbpr6a5a04r0rvnk7y709k6nvaqa2nb3df1ipgqfh2hl1v2jsf";
       };
     };
     "array-equal-1.0.0" = {
@@ -1198,7 +1198,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz";
-        sha512 = "hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==";
+        sha512 = "2swmvaw9xcvzv29i247057pq4khyss7gnc0p244v1l2g2p2xpsr47m0dfaf54yscd3fc9njh3kvwly99w8shvd9p5fq6nvwwmqg7mw4";
       };
     };
     "array-union-1.0.2" = {
@@ -1243,7 +1243,7 @@ let
       version = "0.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
-        sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
+        sha512 = "1v2z1ll0l8rif8hh0d03jc49kz3p8hym63q8ixbas48w4a8akl413hwn08nx83m89sj3mxl06aa0grp7n8hj6hcbsb2k3fhj913674g";
       };
     };
     "asn1.js-4.10.1" = {
@@ -1252,7 +1252,7 @@ let
       version = "4.10.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz";
-        sha512 = "p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==";
+        sha512 = "15j9ms7k6dx08m1wqrvc4958vcrshjjpicpxmz9bflsyk0x2r7w20lxlm27jpyj7cwj6158a0582vifk393hqp0ysn9mlbabqw9qzd7";
       };
     };
     "assert-1.5.0" = {
@@ -1261,7 +1261,7 @@ let
       version = "1.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz";
-        sha512 = "EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==";
+        sha512 = "1n2xh5m359gm4my50j2206n32q2h044lqrl8h122gjn41fizlrh32j1lj7wqfix1iblyvi7zvdgvzbf97f840lr17vfk8ph1imj0fqh";
       };
     };
     "assert-plus-1.0.0" = {
@@ -1288,7 +1288,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz";
-        sha512 = "+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==";
+        sha512 = "0ga6b0jymkw4jrfvjilhfrddml29l1nrvj7r57d140p7rn31mmbni4j9z343v2zzz2zcnlsr2s17kmlgjkyvs9pxrf88an11pm9y77r";
       };
     };
     "async-2.6.3" = {
@@ -1297,7 +1297,7 @@ let
       version = "2.6.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/async/-/async-2.6.3.tgz";
-        sha512 = "zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==";
+        sha512 = "1g679kw2qqpqx1yd4s778r8rw3cv9qwmib5x3klk64kcl5ndw71bljcpav5jkk6grizlpvrqszsbs6fkmnlvcq5fnz2q33mrnb6zyfd";
       };
     };
     "async-each-1.0.3" = {
@@ -1306,7 +1306,7 @@ let
       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==";
+        sha512 = "00vbg0zvq40mmvzz9q3klkk5ly5jh75kc8s3bf7j2ff9zivla3wlc8d622gajjq4w66mln5570dc936my6wh08ippfj5jagj51s3xfg";
       };
     };
     "async-limiter-1.0.1" = {
@@ -1315,7 +1315,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz";
-        sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==";
+        sha512 = "0sy81yyf4na58ic2m0ib0prkb9njb1qzl7wf3vlq4hhm4xnwgxaph0lr43gs1sd0rai2xp1h6phlwvni9jiggm94dd54i0wc1cabhvj";
       };
     };
     "asynckit-0.4.0" = {
@@ -1333,7 +1333,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz";
-        sha512 = "Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==";
+        sha512 = "1rbq2rl2ry0y3nkqs3013vgjrnzf03609rg58092r8zkvzzn6v15grhv2yhzb48sz74zmjcj8ix7f5whrfp4zvsxyzrh64fhs9awvjs";
       };
     };
     "awesome-typescript-loader-5.2.1" = {
@@ -1342,7 +1342,7 @@ let
       version = "5.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/awesome-typescript-loader/-/awesome-typescript-loader-5.2.1.tgz";
-        sha512 = "slv66OAJB8orL+UUaTI3pKlLorwIvS4ARZzYR9iJJyGsEgOqueMfOMdKySWzZ73vIkEe3fcwFgsKMg4d8zyb1g==";
+        sha512 = "3b9ng7k3l7342hb2qqggp8y84ifzgb7ncjwjjn770gy7fda0c9aq897i7c4gn4w8l02xg88pji4pad46wr6j5755wmwl1q9w3lglnxj";
       };
     };
     "aws-sign2-0.7.0" = {
@@ -1360,7 +1360,7 @@ let
       version = "1.9.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz";
-        sha512 = "wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==";
+        sha512 = "2x4b6c0ny64yv6ljfs6sv82akh200klmnh1m1i18hdj28ksxkr9c0szphnwcasy3g5y3l1wn858wcxnc2gi9q5wql8s678fc61xbhf0";
       };
     };
     "axios-0.19.2" = {
@@ -1369,7 +1369,7 @@ let
       version = "0.19.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz";
-        sha512 = "fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==";
+        sha512 = "0fa6ngb4rkbyp5r4ccjgs2ykdbz8i2hcr41av59jicgq6mfva739kcd6n5dqzj3hsx7d4qi201g93li3qddn14bz9qvh76irgj2cf3y";
       };
     };
     "babel-6.23.0" = {
@@ -1396,7 +1396,7 @@ let
       version = "6.26.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz";
-        sha512 = "6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==";
+        sha512 = "0617drz6fkpdpkl4snbfz7ivd296j19182m7x4klhqac60qr77wn8bkgpz696sscxykcv1n8cdv09pz7v9xq6s1k552fyp6w0p8ag7a";
       };
     };
     "babel-generator-6.26.1" = {
@@ -1405,7 +1405,7 @@ let
       version = "6.26.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz";
-        sha512 = "HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==";
+        sha512 = "2jfjq7ggb0ygyzxg3vw248iq0iw2v00janjva1bf3l322k4zjcx9hvq9qqy67gxxyl2igw1asxfgp769hd5229pc70kwri9l1iz09qz";
       };
     };
     "babel-helper-builder-binary-assignment-operator-visitor-6.24.1" = {
@@ -1522,7 +1522,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz";
-        sha512 = "ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==";
+        sha512 = "0iziajgh09ldyj02pmxdkxhzy1wj6n84az4l30p7pllaxlbz9g678q59b0309wfihbj82n4v85pi66n9crksz0f6chy2dx2zisrvnwy";
       };
     };
     "babel-messages-6.23.0" = {
@@ -1549,7 +1549,7 @@ let
       version = "5.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz";
-        sha512 = "5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==";
+        sha512 = "1kj4z39mavs3h7wmb3nwrvhjddb1r138q61nisldfzcb52aikgi0hgg7yvql7xlvy7pxygx7wka7gimvcvbdhjwidwcn0qj8l5n3fp4";
       };
     };
     "babel-plugin-jest-hoist-24.9.0" = {
@@ -1558,7 +1558,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz";
-        sha512 = "2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==";
+        sha512 = "1gvgnf01laddy7cnxb2ggd1qg1zlsj3s72azdvib6vi9sqmbc7snzhxy6xw4dsmpypb64ncqxlk1mmasy0sycqhs53bk9qmzzc00hyq";
       };
     };
     "babel-plugin-syntax-async-functions-6.13.0" = {
@@ -1702,7 +1702,7 @@ let
       version = "6.26.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz";
-        sha512 = "CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==";
+        sha512 = "3sy41x9jlzyzy6wzsj60asahzm6hg9gmr6r1cckdqhzmvckl7jbfb5zwr0nslndnhqgjwdmvxsah41h8v8286hjqbfbhxn4w4w52pq9";
       };
     };
     "babel-plugin-transform-es2015-modules-systemjs-6.24.1" = {
@@ -1828,7 +1828,7 @@ let
       version = "1.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz";
-        sha512 = "9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==";
+        sha512 = "0g45grnsjds9va8zwb68gpm4ngzmnb351bbvphnmis7bifsh2ny2c00bwah57fn1yv87fs69hriimbysbm15dpsvfbpf3lazdlpdr7l";
       };
     };
     "babel-preset-jest-24.9.0" = {
@@ -1837,7 +1837,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz";
-        sha512 = "izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==";
+        sha512 = "01858ghqwnl2b16rmrwwf6w6z3awwvxm22ld8vnfghf6lil3pkxdjjpfn70iib4plm4ynwrfrsiyr0gf3qxjzgi8k9wfk1q26xd8d4b";
       };
     };
     "babel-register-6.26.0" = {
@@ -1891,7 +1891,7 @@ let
       version = "6.18.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz";
-        sha512 = "q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==";
+        sha512 = "1qk460vyxfs08g8586jdc02wqzyy2y06596qcn1na9bz7yxra6vgh6177qf345xai0virpaz56bkpgmfcrd8yx5l2vjkn49y66h9xdb";
       };
     };
     "balanced-match-1.0.0" = {
@@ -1909,7 +1909,7 @@ let
       version = "0.11.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/base/-/base-0.11.2.tgz";
-        sha512 = "5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==";
+        sha512 = "11dwi4v72034dqafp0qxsg8h6cpn92vv4vf909a9fybd69yfg6gqn4hhav6x59r1wbi8h1qlgfh9np0340mpljv1hc9v9p02giqygp5";
       };
     };
     "base64-js-1.3.1" = {
@@ -1918,7 +1918,7 @@ let
       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==";
+        sha512 = "3mbfy80f2q6z8fwzch81hn7z0wjjsz6lwzz4jwrgr62pyql94mwi21k0l28xba2q1pydf8hf0jzzvr8w34rjmk135pjpmqfcj5kid4q";
       };
     };
     "base64url-3.0.1" = {
@@ -1927,7 +1927,7 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz";
-        sha512 = "ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==";
+        sha512 = "3hb3l768r5h0x6z47fw1kn6v50cx9xncmm6yzbhvrvgja0j26fwvhpyh8ppwnf1c2j8g62c912l7cq5h755fpdiafqhg4yxplz59gca";
       };
     };
     "batch-0.6.1" = {
@@ -1954,7 +1954,7 @@ let
       version = "6.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz";
-        sha512 = "BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==";
+        sha512 = "0dhyz488lykv8avkn9y738mnlkgkffxwsp5xmh9sffsh1xxdnigsd9a6l01vj0bdzqdmzqq0pbw31qh9x06fll38i7s19z2h9mljq06";
       };
     };
     "big.js-5.2.2" = {
@@ -1963,7 +1963,7 @@ let
       version = "5.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz";
-        sha512 = "vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==";
+        sha512 = "2cin34lhbrlligarblnrqnl6f419mkpqd4abjms0y1fk1mxzb6rqvh1sg0zif7bgskirhh6shxnqa444syk4cf87fmndil954xzc8mz";
       };
     };
     "binary-extensions-1.13.1" = {
@@ -1972,7 +1972,7 @@ let
       version = "1.13.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz";
-        sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==";
+        sha512 = "0drjfs8xmgc4rfi8nbbx7adsinnc5m0nc96dw3r3gars8zvg1kzay5a7a5s3islf13wmw7q9v15i7d2gdghs1lp6rh2wl6x80hcqzjj";
       };
     };
     "bindings-1.5.0" = {
@@ -1981,7 +1981,7 @@ let
       version = "1.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz";
-        sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==";
+        sha512 = "24xpa35sym31k1x9hs78jbmsh58yx7ldkn03d4g5qhmvm0bi5cwqvpn2s6r8hkwhks5mhm81gz878gbp5g9b2s7zniy7gm1z6vvysm7";
       };
     };
     "bluebird-3.7.2" = {
@@ -1990,7 +1990,7 @@ let
       version = "3.7.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz";
-        sha512 = "XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==";
+        sha512 = "2v12rs2wvv94hrlyv0nadxn9x11796k9mk7a8vg0bqsry8m2pbyy9dribalwikh34qkk3rp6gnis849y5z9x5mxzbbdgkfhc3l674sy";
       };
     };
     "bn.js-4.11.8" = {
@@ -1999,7 +1999,7 @@ let
       version = "4.11.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz";
-        sha512 = "ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==";
+        sha512 = "20bg51v29zygy89w84qb64pkjikxfjdsgjs0ry6pvv8fkwn5kd1izrqn022d838q3rcaq8dmy033g7q8b6960j4f8ipan74y9ydimr2";
       };
     };
     "body-parser-1.19.0" = {
@@ -2008,7 +2008,7 @@ let
       version = "1.19.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz";
-        sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
+        sha512 = "2rl5ww96fwgmxdqhqmnknsaafw44vsr2xz7vf7nax8qz9jy8bmmdyawcy6yfny0wm7pi8m2jssakzjc1nin8z8207kv0gclpnrhy4bn";
       };
     };
     "bonjour-3.5.0" = {
@@ -2026,7 +2026,7 @@ let
       version = "1.1.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
-        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+        sha512 = "248cnpbbf0p32h53rd3g8wzpgrkaj4p078ra1g6l16f82i6bzkvmhwqan5rk88apbll9ly1476kngd7f7z27i3b3zxpbb3064f8yaw8";
       };
     };
     "braces-2.3.2" = {
@@ -2035,7 +2035,7 @@ let
       version = "2.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz";
-        sha512 = "aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==";
+        sha512 = "3gxrfbb03jf6nh75n99snhv4a9jni48hfc0gkj5yl1cginpqx3d73dnp8snph1fdkc804iz6zg0aqibifjnscjfbpfziw2g7yg5pmv8";
       };
     };
     "brorand-1.1.0" = {
@@ -2053,7 +2053,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz";
-        sha512 = "9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==";
+        sha512 = "2ijqy6cba233jd04p2sd4a372z807f9rsykxzbf3sn50102h7nv57bid0bldh9is9c4yajgdjwlif9xpnz5xsx06clij6ipq9wm93pn";
       };
     };
     "browser-resolve-1.11.3" = {
@@ -2062,7 +2062,7 @@ let
       version = "1.11.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz";
-        sha512 = "exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==";
+        sha512 = "1slq1pnm0b2903am1rl17iczlsl08sq4rckkr5fgkchgzfac13kiibwdk08yy2m62lgir8dmj9d61vil8q0vrm1d2mzw1qn2vaf443v";
       };
     };
     "browserify-aes-1.2.0" = {
@@ -2071,7 +2071,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz";
-        sha512 = "+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==";
+        sha512 = "22gkxh9wf4hjxkyvj427k9r76xkz9vs63s1drwcggbpv0r7qdclzdvw167s7iq8936zak241cc5ck3bqkp6hy99zlkrbcmfl5g8gc7v";
       };
     };
     "browserify-cipher-1.0.1" = {
@@ -2080,7 +2080,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz";
-        sha512 = "sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==";
+        sha512 = "3bz6v63l37ndb18236yjdkbxjcvy4x16a8j7vsqxqprvnkcnkq1hg1ffd1c9zk9a3j555ppnpisfyh0x4adlb8lmpwbfa8i837n9y5h";
       };
     };
     "browserify-des-1.0.2" = {
@@ -2089,7 +2089,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz";
-        sha512 = "BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==";
+        sha512 = "3j1gv3firnsbjppm47ldxbav9rmh3plq026zn728wvhgf19i4r7kxzyyj7hpibhjv61lcm9i4b869yy90c8hfj7w8rmr17p2zbhwah6";
       };
     };
     "browserify-rsa-4.0.1" = {
@@ -2116,7 +2116,7 @@ let
       version = "0.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz";
-        sha512 = "Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==";
+        sha512 = "24488d4s6d901hj9d9jdddapmcvmibbdpjq6nv3bpyjx72546fcqa0vripy0ydsrw1jk6bakfzvynh5i9cz0g59hrmn4ph75d3kdpk7";
       };
     };
     "browserslist-3.2.8" = {
@@ -2125,7 +2125,7 @@ let
       version = "3.2.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz";
-        sha512 = "WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==";
+        sha512 = "00i65frm5jkbv8pzc13i02fzd39q0ahh653zzjzhq35pz6p0idajfjqg1b7mnnlvxymihcpmd1cfhwaj51hnqjmh4alrg8sjrq6hxaq";
       };
     };
     "bs-logger-0.2.6" = {
@@ -2134,7 +2134,7 @@ let
       version = "0.2.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz";
-        sha512 = "pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==";
+        sha512 = "2i44nrigqkrnr7acqqppsmv9y97b55vma5fwg30jdhy9m4pc13rb3bpfxm8r560fp81605chdi27mx8dpy3mji3hwxhfvk6ih507px5";
       };
     };
     "bser-2.1.1" = {
@@ -2143,7 +2143,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz";
-        sha512 = "gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==";
+        sha512 = "30jby01rqjgx78xnzyysjav12c0cj8dcwd40wprcfh1jn3768cdkb834q1zyf3wivhifi47xqa7jai7x16m1jv1mq4g40f69ws56341";
       };
     };
     "buffer-4.9.2" = {
@@ -2152,7 +2152,7 @@ let
       version = "4.9.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz";
-        sha512 = "xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==";
+        sha512 = "1d85syv6ashl8f3a6h553d185cg3vq6nhjqnc80vr2z3bak0c9xbm1jawfk9zs43xz34yih6h6j3bhb3njkahdqpji12fsc4kfsmby6";
       };
     };
     "buffer-from-1.1.1" = {
@@ -2161,7 +2161,7 @@ let
       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==";
+        sha512 = "3c0m16i3fdv3vlq2zz8dakrnhqvs16gvggj485f91fiaa5v0p7pyhamcdw5fggr7djzd8nshmvz4hgbp7714smqxlld2an28q8if1ri";
       };
     };
     "buffer-indexof-1.1.1" = {
@@ -2170,7 +2170,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz";
-        sha512 = "4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==";
+        sha512 = "3bgz1zhq9ng3gypq825f00p9qi9y6z7wvkkf28nhjlyifnb3lk1dkmbya84k0ja79zv8kmmhvalwcnnz92533ip7pnjp3is1w9cxyp3";
       };
     };
     "buffer-xor-1.0.3" = {
@@ -2215,7 +2215,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz";
-        sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
+        sha512 = "073ccjmvxf726gcgzy0pksvi8x8r51dq6hyv69sc75ynrin7anwk9q3sqhbbbjhqjjrmq42s5f5gdbcgj2jxai6ldpyq6y2ny78payd";
       };
     };
     "cacache-10.0.4" = {
@@ -2224,7 +2224,7 @@ let
       version = "10.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz";
-        sha512 = "Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==";
+        sha512 = "0f1zwi8bbiia995410m24xljd0ra0vk579q7rk48p7mrq9nbilx3qa2rnp7hjdwnvx28zfad0rfdcwyq3blzkb3rk8b9yl77crp960f";
       };
     };
     "cacache-12.0.3" = {
@@ -2233,7 +2233,7 @@ let
       version = "12.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz";
-        sha512 = "kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==";
+        sha512 = "0zsyrn5azk0hm2mhfsa2wwz1g66wis9f7ifxl2sphms1i91z75mfmky892g7c538slj94fgd8nlbjnw5irki49vn5gfl586f5ynd9wj";
       };
     };
     "cache-base-1.0.1" = {
@@ -2242,7 +2242,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz";
-        sha512 = "AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==";
+        sha512 = "36i943khi87af4gif9r6imjgybqxq9cbd69z2h8p2s2j6scfbhrv7j3n591xl982fmyq29rkwh70a6qdcf3v0piwzfh8n2jf571v9q0";
       };
     };
     "cache-content-type-1.0.1" = {
@@ -2251,7 +2251,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz";
-        sha512 = "IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==";
+        sha512 = "209nv86cqszi98b5mij2w84m5ixnnwxh211nv0zjgfi46l52fp437hqznnc0ckm5nlgr4labfn16wxa7s7lmnaac4vdwliqb9krzar0";
       };
     };
     "cacheable-request-2.1.4" = {
@@ -2269,7 +2269,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz";
-        sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==";
+        sha512 = "1ljrfqkxsjdvl02qlx1xdsw8csg4az6dkwvlk0zmcz7x3b6q3kbggd8i3ai8jcjicabdsqkhvpjy0898xcdf21m42ajyrggql167h1z";
       };
     };
     "camelcase-1.2.1" = {
@@ -2296,7 +2296,7 @@ let
       version = "5.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
-        sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
+        sha512 = "0kg17fpj4c7akmpa9x0a3fi5glrc3y5k3ppjcpb3pd02ylg3fnzfdvz0pixd223crbs5980sjaxsk9q8kcqxm5d9cb7rlkv3m614vrg";
       };
     };
     "caniuse-lite-1.0.30001035" = {
@@ -2305,7 +2305,7 @@ let
       version = "1.0.30001035";
       src = fetchurl {
         url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz";
-        sha512 = "C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ==";
+        sha512 = "0nv07k5fhwwhak7xbp0kf2z0v2bpjicyrs11c9d14cipzzgcx6has5910iwc7yhh3mja5h52d93x3hrmfam66yk27agdqw09f172mhb";
       };
     };
     "capture-exit-2.0.0" = {
@@ -2314,7 +2314,7 @@ let
       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==";
+        sha512 = "3m6md2j1rsn26hijf0yfbbfnx6w2jrrqhr2b2xwjc9lyzvypidyz5krczc9wb04z1vq4mgb759ljwn7iggiiigijzhp38lk162zy91y";
       };
     };
     "caseless-0.12.0" = {
@@ -2350,7 +2350,7 @@ let
       version = "2.4.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
-        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
+        sha512 = "2wr55z22i274wadq2cvpxga28a8igq9whc4m1q06sz5sn2hc4amradd5vd02wm92vyfg2qrb0bysd5drv7mfmlb2wqdf939v5zvxn1j";
       };
     };
     "character-parser-2.2.0" = {
@@ -2368,7 +2368,7 @@ let
       version = "8.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz";
-        sha512 = "YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==";
+        sha512 = "30ql79azwkvqg2pfwvc0zp51fbwpijfbxdrnw5v5vsd3j2k6bzi5d78p78b877fzrji6clkw284pdakba5jg7dvmjwnx60lg1k8m5v2";
       };
     };
     "chokidar-2.1.8" = {
@@ -2377,7 +2377,7 @@ let
       version = "2.1.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz";
-        sha512 = "ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==";
+        sha512 = "21d2yf3364v025ivy6ak1bh61qvvq9llryh8c1rhvrif1kalx0j996x8m0qs717cgl97q5c40awyv8gi8hbmpgfpl6zvkff6xmm8rk6";
       };
     };
     "chownr-1.1.4" = {
@@ -2386,7 +2386,7 @@ let
       version = "1.1.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz";
-        sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
+        sha512 = "1b03acmav1awkygrda5h64pn8msd6wda119q553hik728i1j72bfqyq7yzn1x7nmw28hvg9mcyh7krsj8vwsq3karnn55mj6smip7cc";
       };
     };
     "chrome-trace-event-1.0.2" = {
@@ -2395,7 +2395,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz";
-        sha512 = "9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==";
+        sha512 = "06mh145f12ppkxn7xdzrvh7rrjg9c770rqai08m8r5i31br1ihc96i63dyn0c4arfl1hl0za33kzy5i09x4agz77c11xv7hb33z7vzm";
       };
     };
     "ci-info-2.0.0" = {
@@ -2404,7 +2404,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz";
-        sha512 = "5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==";
+        sha512 = "04yh5kqsx5akwc3rlcwqrvz3lrb8mak15ysxan17hw9pp00kmf20m8d9dpbnkq612wc1wwvjzcci1wgivd8cbak5j7dzl6rv89bplp6";
       };
     };
     "cipher-base-1.0.4" = {
@@ -2413,7 +2413,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz";
-        sha512 = "Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==";
+        sha512 = "3cm9kdc1sv7pakzlhrc1pazdvg9lk4hv31lximwbcrgmwfzg6imxrndszgx9yzlizknfh2b73cr7b5mfcv50bldpyq6jr5s4zknsj1a";
       };
     };
     "class-utils-0.3.6" = {
@@ -2422,7 +2422,7 @@ let
       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==";
+        sha512 = "1xcqwmfmsbrm2ck76brwiqjmcza655khgh5szh6wngk357i37sgwsga1pbarwzaz9hvzkriqhq6j0z5mv0pmz61cf9wxvk3y5mlzs58";
       };
     };
     "clean-css-4.2.3" = {
@@ -2431,7 +2431,7 @@ let
       version = "4.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz";
-        sha512 = "VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==";
+        sha512 = "0ad50l577m99sgpcdd49zspq8h9n9i3hhngapg9y5q76s7zwdz3hmaw2kc2jg30lk4z3wlyp9kgiyg71dvg0fg89g1xyr3qvq61dhsm";
       };
     };
     "clean-stack-1.3.0" = {
@@ -2458,7 +2458,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz";
-        sha512 = "tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==";
+        sha512 = "0lj50waj40l4a51whihhvrjb838jqjkp1znn7dqgw6bsb1z7qwfyaxfggwmy3122rvnz4gxa8fn7qmp94zk03q8265khqikmiy3f1dn";
       };
     };
     "cliui-2.1.0" = {
@@ -2476,7 +2476,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz";
-        sha512 = "4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==";
+        sha512 = "26knyxdavl3y7kq82vfa094ym3n05vy2h2j5srb9fhhy8l43l0kwlasah5i78jks77zqgc373hbf96xcxv6am042gpbw35x452vwlg0";
       };
     };
     "cliui-5.0.0" = {
@@ -2485,7 +2485,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz";
-        sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==";
+        sha512 = "1fg1afsij2xwc4gpqbyhrp3s7q19w7bmii0ghmdv6cdx6giz3v0yqn25i3g7fw2lpi388jpvaf6nf9z2c7xp7w7psrww7569548d1rx";
       };
     };
     "clone-1.0.4" = {
@@ -2521,7 +2521,7 @@ let
       version = "5.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/co-body/-/co-body-5.2.0.tgz";
-        sha512 = "sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ==";
+        sha512 = "36nr6zz2qri7lg37azg3n5lq5cwgfi3pf7j35l908qlc0shbbi353k47ama8q7p8c4gb9czdjpr7xy05ar7pnqwdcr1hlpan91wnzxi";
       };
     };
     "code-point-at-1.1.0" = {
@@ -2548,7 +2548,7 @@ let
       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==";
+        sha512 = "0d5pmdh1dh0qbpjrzdczwqkh0jwf8gxhq71mknwlxqz80h1q6kdrpghq4qfp0y4v650ia2jdihmzpb2n8hg00h72lnx05dgvysi9w21";
       };
     };
     "color-name-1.1.3" = {
@@ -2566,7 +2566,7 @@ let
       version = "1.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
-        sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
+        sha512 = "1v09nkip7zpn3k3prkkg53w331rhczpfgcqb0q42i97nafra43l2khl5zvhd4ar0qmh145nmw7944jy8p108ny0xpgy29gf2wqph0qm";
       };
     };
     "command-line-args-5.1.1" = {
@@ -2575,7 +2575,7 @@ let
       version = "5.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz";
-        sha512 = "hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==";
+        sha512 = "1dffdcll80c4cs7d9026187ild861bw26qph26frx8hx2dv23wwsw5g68kykqs8g2da57f62s56psxplx3bxcsprd85v5kbr4dxxgw4";
       };
     };
     "commander-2.20.3" = {
@@ -2584,7 +2584,7 @@ let
       version = "2.20.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz";
-        sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==";
+        sha512 = "1qqrwy7z476gqa94kjjyyzyi3x49k28ji7znbc65plrp67yzmpa2yyslh6bl965yl4jqb2fwb2ljzhgcvv2xxj8ab86n5rgryc6958s";
       };
     };
     "commondir-1.0.1" = {
@@ -2602,7 +2602,7 @@ let
       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==";
+        sha512 = "136ravx3m3gf0ca84sf21hj47wmpqyjzmx6yvhj0b14mga7xcxfcgdc7yj9z8klcbr4yfqzy88fksmf233qx68a9ysw7yh1lixyrpa5";
       };
     };
     "compressible-2.0.18" = {
@@ -2611,7 +2611,7 @@ let
       version = "2.0.18";
       src = fetchurl {
         url = "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz";
-        sha512 = "AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==";
+        sha512 = "13341lfj8d36v6gha16xmv92w4875z8irqdbns3jxlkc3a63aswys5sajq97y1sd42l08inw1l0s51r4l9lv20w6gy14nsxzvnfnp80";
       };
     };
     "compression-1.7.4" = {
@@ -2620,7 +2620,7 @@ let
       version = "1.7.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz";
-        sha512 = "jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==";
+        sha512 = "24kqcbwm455isy2yiyfrdrsh011qi09pbgylw1jws2yfmiwmwp2j8pmax52c41z3x1n84v1j5va29dnxwygkl4pw599b9gx6c7qi94d";
       };
     };
     "concat-map-0.0.1" = {
@@ -2638,7 +2638,7 @@ let
       version = "1.6.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz";
-        sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==";
+        sha512 = "05nnf80j9ls12y3cw2dfnc6rmand3ya5sx9cqn9dgg19ljzdnyfjjv8ig79xi73gr2y4rkfzn9wjip2zzwp5n2d49njd3ki2a1c3cfv";
       };
     };
     "condense-newlines-0.2.1" = {
@@ -2656,7 +2656,7 @@ let
       version = "1.1.12";
       src = fetchurl {
         url = "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz";
-        sha512 = "a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==";
+        sha512 = "2hg7rni4gx8l765i8qzkp9dv69c8r06i8rxxkkkrsklbd8iz6ingxnp10r4fqqrm9jxy3gp8yp0lzpybwdf27kq49abkyxwrchqwmvb";
       };
     };
     "connect-history-api-fallback-1.6.0" = {
@@ -2665,7 +2665,7 @@ let
       version = "1.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz";
-        sha512 = "e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==";
+        sha512 = "0p9s5aqb76hamj9z64zd53ndh5r1jv76iw97hwrylmwwjprjn1246hrr5nvp5vs1xwwipq6dv7zj4qwywbn3n4cxc3llfdzvbvh37kv";
       };
     };
     "console-browserify-1.2.0" = {
@@ -2674,7 +2674,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz";
-        sha512 = "ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==";
+        sha512 = "168x7bp4xr522yw92himv9xv14q336ps1kkg79qcmarg3q4yzpd52pa8x8zgq11b6996f8053799k6365437si3pk85w5z4y8xiijb4";
       };
     };
     "consolidate-0.15.1" = {
@@ -2683,7 +2683,7 @@ let
       version = "0.15.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz";
-        sha512 = "DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==";
+        sha512 = "0rx5m8ygvw7y8rfs0fgpl6ppwk6gm7299qsnm005x88ws9yzb9fcj143f2irjsb94k8x9kdw7pap819dgg3w6x0jayhq9hcpfg3lvhd";
       };
     };
     "constantinople-3.1.2" = {
@@ -2692,7 +2692,7 @@ let
       version = "3.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz";
-        sha512 = "yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==";
+        sha512 = "2xnhrmlbkfpcvckxxrl0hjp6qhhqv1p7c6pwxgqp1g0sa5q5cc514xn48g9x8kqj7g1imzciwgb2msbhvhn0w0v92mb7105l43drqy9";
       };
     };
     "constants-browserify-1.0.0" = {
@@ -2710,7 +2710,7 @@ let
       version = "0.5.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz";
-        sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==";
+        sha512 = "3976ggkw1lp21a6m3s19blb9a74kq7a0spw47v0m3vvi1k5wiamrsn20slcr9byx80x2la2sppkwjp7x10gc58142dl7412pvpv84qk";
       };
     };
     "content-type-1.0.4" = {
@@ -2719,7 +2719,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
-        sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
+        sha512 = "1f4y61wc913jrnga7nny83gzf9l2488q6sl1ry9lbwgh5x5d3va0xcc0xrmjk6gdxl6d4r6rsk800xp5bazhjrx05yx1wpc8c8gg0w4";
       };
     };
     "convert-source-map-1.7.0" = {
@@ -2728,7 +2728,7 @@ let
       version = "1.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz";
-        sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==";
+        sha512 = "2hgf7brri4yaflx3y24d2cvznsk0km17mq8mp7sb2hhskf45hcamlgf8vzzbimw36lw128bjbf442p2rx96d1bhn9sk044p69gn8lp0";
       };
     };
     "cookie-0.4.0" = {
@@ -2737,7 +2737,7 @@ let
       version = "0.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz";
-        sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==";
+        sha512 = "1g7bscknfpc6zgznz77hvll6cy5m9jv7zg9nkpdqzmgi0vhv75kh8iyqf6rdslkml47l3jihsz7hy0i8x5n6bfx9ba0kvvrp9y7qypq";
       };
     };
     "cookie-signature-1.0.6" = {
@@ -2755,7 +2755,7 @@ let
       version = "0.8.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz";
-        sha512 = "8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==";
+        sha512 = "2iqv33i76hmss097a18gkv8v1kawzs5zkgkri3nnrql9160y2vpkasv8dqj7l4c9hh6y6ki6nv072y13jrxzfcgp3kvay8zjh1fr8zi";
       };
     };
     "copy-concurrently-1.0.5" = {
@@ -2764,7 +2764,7 @@ let
       version = "1.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz";
-        sha512 = "f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==";
+        sha512 = "3c1ggiqqnjgqlwdnimx94gm176c8rjsrih5qw2lbm642l8x7grx07v065k4j89c1p0adkm7v6sz11drb6j6sp51np2m1cazvycnhrvz";
       };
     };
     "copy-descriptor-0.1.1" = {
@@ -2782,7 +2782,7 @@ let
       version = "4.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz";
-        sha512 = "Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==";
+        sha512 = "1j7l2xm5blz3ylmq1c0mwlkfbx9faqm09zid0czbyyfr05236pkgvzjzfr7syqb95mgzkzxdag697p4wwsxpcr7my88admlbw491r33";
       };
     };
     "core-js-2.6.11" = {
@@ -2791,7 +2791,7 @@ let
       version = "2.6.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz";
-        sha512 = "5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==";
+        sha512 = "1db6yjq48a8kkrfrxd0miblcf7nk2b4afgpr8dfgjl3jvz3xclvrqmz590hx2h59jh79lgl35r101lw5jqs46qybizdbpgzljjyf277";
       };
     };
     "core-util-is-1.0.2" = {
@@ -2809,7 +2809,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz";
-        sha512 = "GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==";
+        sha512 = "1mhn55gf43qsdrp2klyyyxqjsd5mw9l6s51vsfj7wl44pq7ymfw68r8wkd4yd8dd6adg3k6q18sddxfjljr0gbk56lh3cqfyd00gc8r";
       };
     };
     "create-hash-1.2.0" = {
@@ -2818,7 +2818,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz";
-        sha512 = "z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==";
+        sha512 = "055xaldi3hy1bjxhvznh3470j1kq2xk827mxal79bgqik3lblax6s4inxqby27ymgcghl2hn7wnx9fnacmyq3q93hk6y327cc41nkfg";
       };
     };
     "create-hmac-1.1.7" = {
@@ -2827,7 +2827,7 @@ let
       version = "1.1.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz";
-        sha512 = "MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==";
+        sha512 = "0p2jhk94k3as67lhrr1jyljkr0y65snxjzqnix0nifnfcanhilccrzkc47gwlg5wy0m8l1gv12lj78ivgmw5m1ww4f8iylr52bbv49h";
       };
     };
     "cron-1.8.2" = {
@@ -2836,7 +2836,7 @@ let
       version = "1.8.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz";
-        sha512 = "Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==";
+        sha512 = "35a9lj0cl50q669jhxl1f68myxinkmbdbl2yn4z3d93swlckjjiganjcn8iphg2867jil7ahkpapx5md94lw5102ny46a5i5virqk8s";
       };
     };
     "cross-spawn-6.0.5" = {
@@ -2845,7 +2845,7 @@ let
       version = "6.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz";
-        sha512 = "eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==";
+        sha512 = "1csj16gwq9riz0pm73dlxhbnsl1r3ldc5v0aincwj71ambi6xf3kc1kgsbwaakd8rj16k4mrli2syrjd57g6cr81zdzivdd2jn4ndbr";
       };
     };
     "crypto-browserify-3.12.0" = {
@@ -2854,7 +2854,7 @@ let
       version = "3.12.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz";
-        sha512 = "fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==";
+        sha512 = "1d3mrhqlay037azmjp2ml5a8yyls9ijdhilv6f0znz0ajgfm972yr9bhm78wqi09p4crc3shgflk50jc63zijsqv777ikkyi2j2qgkz";
       };
     };
     "cssom-0.3.8" = {
@@ -2863,7 +2863,7 @@ let
       version = "0.3.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz";
-        sha512 = "b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==";
+        sha512 = "1i0h2rg4hb1j2430jc46n2zjc5gqg26brpl2ypjank206vjwdbk4n1svfk7nrbdsx7czd1a025a9h6ssh9qhscw4r7vi0fynwflcjvg";
       };
     };
     "cssstyle-1.4.0" = {
@@ -2872,7 +2872,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz";
-        sha512 = "GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==";
+        sha512 = "1460djxnz2dn84cx1wln5l004dy95pgik0h5bij3f7gw1i45p3mnsylwdps4r37gckfzqv5zvyh3gx95dr0ca01zmx8qpvqhrjwn6hq";
       };
     };
     "cyclist-1.0.1" = {
@@ -2890,7 +2890,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/d/-/d-1.0.1.tgz";
-        sha512 = "m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==";
+        sha512 = "0abwyrfpd8rm9bwzgcaxcwd92d07c31cxw1fgs7h51ri2igw4vib1a5x69cg14wqisjad1d0fhglca6218qm9dngr17yhwv8f295bcv";
       };
     };
     "dashdash-1.14.1" = {
@@ -2908,7 +2908,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz";
-        sha512 = "YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==";
+        sha512 = "1wvgs0ccidbr67x52w8wx58knvvy7ir6j05z1sa3f4rdnpr3dvdlf6rwapfb09z0mi9w129llzvhxa0lj8jy84zpdwzxm0yvcirhdb1";
       };
     };
     "debug-2.6.9" = {
@@ -2917,7 +2917,7 @@ let
       version = "2.6.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
-        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
+        sha512 = "0q0fsr8bk1m83z0am0h2xn09vyfcf18adscxms8hclznwks1aihsisd96h8npx0idq5wwnypnqrkyk25m5d9zh3dk7rjs29nybc8bkc";
       };
     };
     "debug-3.1.0" = {
@@ -2926,7 +2926,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz";
-        sha512 = "OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==";
+        sha512 = "3g1hqsahr1ks2kpvdxrwzr57fj90nnr0hvwwrw8yyyzcv3i11sym8zwibxx67bl1mln0acddrzpkkdjjxnc6n2cm9fazmgzzsl1fzrr";
       };
     };
     "debug-3.2.6" = {
@@ -2935,7 +2935,7 @@ let
       version = "3.2.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
-        sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
+        sha512 = "1cyv14044rfh792n1hhsa44kk8dk95zk14w96i49gwq6g9wi6h9vn90xaragfy7rvggqvj178l5f16c78g47xgrwhjx3bp7zs6pxscr";
       };
     };
     "debug-4.1.1" = {
@@ -2944,7 +2944,7 @@ let
       version = "4.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz";
-        sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==";
+        sha512 = "1kmf9j5pka2rsljg5x6shniwmgs9444ksgdn0d3fjmis7yghxxn2zj526s36ip8rmpfni9zpj8z74w7irax32a67j59xw38wk6hi055";
       };
     };
     "decamelize-1.2.0" = {
@@ -2998,7 +2998,7 @@ let
       version = "4.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz";
-        sha512 = "h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==";
+        sha512 = "2067xswfnhdrq76l5wqibx50y8r46q0sdbkax2nxq6gq0ljjrrmmq95k99vnkgcz5xc7r1hhv0w7bw978krjxvdmnawam3ma2nhraw7";
       };
     };
     "defaults-1.0.3" = {
@@ -3016,7 +3016,7 @@ let
       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==";
+        sha512 = "1fsa8nx7qgi958fykj36cndsf8ygj3132if6k4a36mkf11bl2j2gn7dn2nz07mfsygkx0415yxrjpzx8j369z1767fvr57nm1h9zjnw";
       };
     };
     "define-property-0.2.5" = {
@@ -3043,7 +3043,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz";
-        sha512 = "jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==";
+        sha512 = "1hrk3pzr4hyhfnrjy1msrlj2zh769x4l35q9fq0a2cy2glq3h1iwjkpmvz39y9idwy71h9hd98lydi92485bzkff1dzm70wbr8vc0lg";
       };
     };
     "del-4.1.1" = {
@@ -3052,7 +3052,7 @@ let
       version = "4.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/del/-/del-4.1.1.tgz";
-        sha512 = "QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==";
+        sha512 = "1fkk8r4abk9009whl0yqapv13rjzj6mr01ghkxpbjkrvr6a6n6hg492mdr72wf3dc13zp3dmzq6z4bzm31h59q7q4anjgrf988sw0a3";
       };
     };
     "delayed-stream-1.0.0" = {
@@ -3088,7 +3088,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz";
-        sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==";
+        sha512 = "2phijq20j255bs4jjs11j5pa0x7y1084k6ch9xa8wgzp71zzgbpm23wyzbcs0mszvj971l9i5aav40sddm000484sl3ij4xzvlcgfc3";
       };
     };
     "des.js-1.0.1" = {
@@ -3097,7 +3097,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz";
-        sha512 = "Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==";
+        sha512 = "085ljc5q2yk3jabd61p91n821q4prv13qalbfni9ybcb900b4mmcdnndi5b5prfs9wybp13asd13shlxgrbsgvyfx7nbgvby6jkhhj3";
       };
     };
     "destroy-1.0.4" = {
@@ -3142,7 +3142,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz";
-        sha512 = "ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==";
+        sha512 = "0mncqs8asq6722qr5jcv5bwi1653nd4s61s9mb9iyk3jkv83w9iynwjfd6ynp1jwsmr7qaspk6yd1x8c05qi9pxikikwfkbnajd3334";
       };
     };
     "diff-sequences-24.9.0" = {
@@ -3151,7 +3151,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz";
-        sha512 = "Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==";
+        sha512 = "1xvcq6cya1qr0slk88xxgibba4win89nmmy6945vzi0cqs3f4h72inwbk7wb05v55c23sx69grj872yyk5mnswd2qz33jangf9rcghf";
       };
     };
     "diffie-hellman-5.0.3" = {
@@ -3160,7 +3160,7 @@ let
       version = "5.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz";
-        sha512 = "kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==";
+        sha512 = "37186rz3862gn294acnwnm59jwm62x1rz9ca0y5anvmj0a7abs4rhw974qp1j684qpd4rxb8c2kagv21hapxfddr2q72zvyv7ya19lj";
       };
     };
     "dir-glob-2.2.2" = {
@@ -3169,7 +3169,7 @@ let
       version = "2.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz";
-        sha512 = "f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==";
+        sha512 = "2rlgbmwy8bl5xqrwifdqhggx21ac4c8k6vgq7ia2h6cxmaiprrlm1p99cn4hb4dmax9wwk4vx96bc50b7ngxgx74fvqbk0njj5w3lkz";
       };
     };
     "dns-equal-1.0.0" = {
@@ -3187,7 +3187,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz";
-        sha512 = "0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==";
+        sha512 = "19g682cvkba33mwrism28hibd2nv9xd16k5bj807jx3ih1cc7ff9dn8chmfjnqgglzl6lq3m3jarxng9vbarccgchd0aq118d15yk6i";
       };
     };
     "dns-txt-2.0.2" = {
@@ -3214,7 +3214,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz";
-        sha512 = "jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==";
+        sha512 = "1fcxv8rzfhs99afvhji7bs5ppxwn9mw040ixdgvkm6iabz72q61arly2lr57086rjn4g2vkb3rkih1cyc7z35kzv1jjciwyrs4g4y4f";
       };
     };
     "domexception-1.0.1" = {
@@ -3223,7 +3223,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz";
-        sha512 = "raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==";
+        sha512 = "2x8mi3fy0wghky9i6bmz1d26yz1bbd4zmaqyc45fhrqhw8kdg6a4k4zz6jn9bisnxr8bff7fypz0vncby6sw8d2ld6r627v94ra1a5d";
       };
     };
     "duplexer-0.1.1" = {
@@ -3250,7 +3250,7 @@ let
       version = "3.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz";
-        sha512 = "07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==";
+        sha512 = "3k23dn0v8n7r3ds3v137vmw1vg3ngd6fw3bb4hasa6bm40qasvdaidjwx0wb4gakp8xvdrsckjn0wkmmi90z8a2sswj8cxhznxgrg6k";
       };
     };
     "ecc-jsbn-0.1.2" = {
@@ -3268,7 +3268,7 @@ let
       version = "0.15.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz";
-        sha512 = "M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==";
+        sha512 = "3ggssjvjbrq0q12nr33bfbd8qdmmyapkiivxczlp66gi9y14s7dhaqxdmvbmg6lkzzli17w6v3rx3fyb0d82zl18ysgmskxbhq0ip1k";
       };
     };
     "ee-first-1.1.1" = {
@@ -3286,7 +3286,7 @@ let
       version = "2.7.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz";
-        sha512 = "7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==";
+        sha512 = "2ad39acbba96hqbgf714pacri515xjn8jd43bkfb1wwp04vflpjj0qhnnmsq074g7d1kycyj1bmf620s43qb3x74hrfb4ky3v5axygf";
       };
     };
     "electron-to-chromium-1.3.376" = {
@@ -3295,7 +3295,7 @@ let
       version = "1.3.376";
       src = fetchurl {
         url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.376.tgz";
-        sha512 = "cv/PYVz5szeMz192ngilmezyPNFkUjuynuL2vNdiqIrio440nfTDdc0JJU0TS2KHLSVCs9gBbt4CFqM+HcBnjw==";
+        sha512 = "27ngh0x7siic0nydq0xics24lnqfqjb2d6ja2fdfp1z979lisiy52m8cbbvrxp2ksr3nlk4s4yg5v4rll49wxjzry63gczrbihwzzvj";
       };
     };
     "elliptic-6.5.2" = {
@@ -3304,7 +3304,7 @@ let
       version = "6.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz";
-        sha512 = "f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==";
+        sha512 = "33kzl02iwbq3pl33ihcdq9nm48yzhfj96183zzra06hp3z6bacz3d99pl74jziwygys4npxbxwnvszz12wl8lpkjw8b4r9ki797p33z";
       };
     };
     "emoji-regex-7.0.3" = {
@@ -3313,7 +3313,7 @@ let
       version = "7.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
-        sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
+        sha512 = "2s4i22ccvwa2l4xwl9yz6mkyn2kpf58hp1nqiwmmgqlpyr57345i3ll0l4656ryik6a6wz1lgk4vbl6y0dwj5hx2kcbpv0h8924n00b";
       };
     };
     "emojis-list-2.1.0" = {
@@ -3331,7 +3331,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz";
-        sha512 = "/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==";
+        sha512 = "3cib7aw0206bfcb324aqh3fsda46mjxghd08gaasxagv6jfc74r2jvcv78rb8h10m879w42nbrn3q8rjifg9s5rclbpr2hzq7bqqk7y";
       };
     };
     "encodeurl-1.0.2" = {
@@ -3349,7 +3349,7 @@ let
       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==";
+        sha512 = "3jyw0a0c7m1yxglwk7i5jh8zb3vvx7f9l4frbskxkgf9cyf4i8ww26p8bimnsryrh1dx7lwrxq64vbpjwfcv1svd4lg8m07fa53bv7s";
       };
     };
     "enhanced-resolve-4.1.0" = {
@@ -3358,7 +3358,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz";
-        sha512 = "F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==";
+        sha512 = "2g5bp8yrd5ixqfg81db9ifalcqdyjxmrc4va86ljng9vnhkk2v0gxc7w28q00wnlp0j6sjilzj7dh4mkj2z49z2jkjwzjgd4j9yzzhp";
       };
     };
     "enhanced-resolve-4.1.1" = {
@@ -3367,7 +3367,7 @@ let
       version = "4.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz";
-        sha512 = "98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==";
+        sha512 = "2w4dww5r1bxbycbb3kq0pdl9v56942678c53j9rwikxf05xd2n5h0b3a6914wxcmzr9wx4m0w56adp3qp21rk1wzkhbybxb9z67djpp";
       };
     };
     "errno-0.1.7" = {
@@ -3376,7 +3376,7 @@ let
       version = "0.1.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz";
-        sha512 = "MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==";
+        sha512 = "2bdzcjwgdkg5yrvlw6my57pn77k4j7a2pzppwqrq4va9f5bd4b5mzbhwpklhsy1jl7w9sjvnfs30h42nhz2dbdfhagnh8dk6l2d3yii";
       };
     };
     "error-ex-1.3.2" = {
@@ -3385,7 +3385,7 @@ let
       version = "1.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz";
-        sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
+        sha512 = "3igrl2amb9mpa9d2z6qghz3ljqd7amjla8ahfs5fdgl0w52pw6gz3y32q5fk229yvfyg3x9kpfygadcm2w0lv4hv4nj25cyd8v4glgd";
       };
     };
     "error-inject-1.0.0" = {
@@ -3403,7 +3403,7 @@ let
       version = "1.17.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz";
-        sha512 = "Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==";
+        sha512 = "24sx605c7x5di53nzw0x2brrfvy4nw76ws0gsd1hskdifrcxafn8fwk0n11si002zxhfs9c8nba1acaj2zkrqrgp8k5vw0vz2dyxv81";
       };
     };
     "es-to-primitive-1.2.1" = {
@@ -3412,7 +3412,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
-        sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
+        sha512 = "2y6j97j2f10gc52kw7qin10gm24m5hz1qq7ph6jf89y8a9i8vb268f2q0z78qjmngc765y9v0f1ldc5qb10b638yqlabda90sbaa8s0";
       };
     };
     "es5-ext-0.10.53" = {
@@ -3421,7 +3421,7 @@ let
       version = "0.10.53";
       src = fetchurl {
         url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz";
-        sha512 = "Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==";
+        sha512 = "3wl9jgj276xsjcf4gvc9w7gg403rg02s1i24r7scvhwg0mmgbqwsszjk94xnzfd3wj4y2khk6wbz8dm9j6lvlcwrbbd324d1svr5kay";
       };
     };
     "es6-iterator-2.0.3" = {
@@ -3439,7 +3439,7 @@ let
       version = "4.2.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz";
-        sha512 = "HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==";
+        sha512 = "3zz892nih7z36hb24sqg3wgzgzp81zjq7h8bbrpdh80yxp46r9rk2ddhr65zqg9ygi4s8ph9fs3in3gkinvqwfhqlpy5iasjz3wd40w";
       };
     };
     "es6-symbol-3.1.3" = {
@@ -3448,7 +3448,7 @@ let
       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==";
+        sha512 = "0sgbv9jpq91di424qar8xiw36az4msxqhgpk1ixq5hv4wdbgaxs45q8i671icpg085bh1j7hj93iyszp7x9fmhld30jj3kff6gri7il";
       };
     };
     "escape-html-1.0.3" = {
@@ -3475,7 +3475,7 @@ let
       version = "1.14.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz";
-        sha512 = "Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==";
+        sha512 = "14kvh9zgpdp6ci9l9nqwwlhjz8gidkhgsv1yj8i7jbh087fchwwn62440spqk09f3qz13jrdyqdgfhf2yddkm7p6hgx4jbjqhspnsq6";
       };
     };
     "eslint-scope-4.0.3" = {
@@ -3484,7 +3484,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz";
-        sha512 = "p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==";
+        sha512 = "2p4myi99y1nk5dy7fvmbspjdynigw3dzkhcm7zaiwfyw2wp6j61y0i8mba18ksv9qi2s1wp6w6xhn7471qs631bqwmz8fzmvas6xdd7";
       };
     };
     "esprima-4.0.1" = {
@@ -3493,7 +3493,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
-        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+        sha512 = "3h999di4dnwxb22lxlb7cbz42nalrv8g8sqdvrkkl5c27gnwhp1rva4039hmq6g1i0y4mfjgx6p4i2vwxxl0zlahfzdd9fl1qbqasvq";
       };
     };
     "esrecurse-4.2.1" = {
@@ -3502,7 +3502,7 @@ let
       version = "4.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz";
-        sha512 = "64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==";
+        sha512 = "06zyknk70y80n428x20wvjqy5822wgz2yaxzw387njnz3ar6ixzjcxzr2jsl8wrm0m9jpa4ysbcr9znpk6gbkqd7wby084zxw3l317b";
       };
     };
     "estraverse-4.3.0" = {
@@ -3511,7 +3511,7 @@ let
       version = "4.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz";
-        sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
+        sha512 = "2kh3lczc7smb84ryllqrdvrknxl3h47khh7li6n9m76mj9jfh1ahz2jm8ffpcaac7i4k8zkf3sc3nczzp7djgqmsi6wrkynywlygnfz";
       };
     };
     "esutils-2.0.3" = {
@@ -3520,7 +3520,7 @@ let
       version = "2.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz";
-        sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
+        sha512 = "3m321j8gmjllmmi1zyvbz0lsmkkjq26bvfr8niwr5b8saxh6icixmpxixyspjb40l54vpx3r3zvln190i47cx16y5x2lf1qg6liqnwi";
       };
     };
     "etag-1.8.1" = {
@@ -3538,7 +3538,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz";
-        sha512 = "qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==";
+        sha512 = "05cdww9h7f3kjfmv478p0rcq2ia3lcrvqmsh155hd6wm895i2jn6j68w0ly09c3gjn8hshfdvnh99qchipbclycnb241y993m2d5sm9";
       };
     };
     "events-3.1.0" = {
@@ -3547,7 +3547,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/events/-/events-3.1.0.tgz";
-        sha512 = "Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==";
+        sha512 = "1d21craxji58ccc5l8c39mw7pgk0is7gj1sixm8v1va1zc81hrw8426b9rhrv7z2kwqvix5l7cyfc8awwypj19him6ffd67qbqaxzs6";
       };
     };
     "eventsource-1.0.7" = {
@@ -3556,7 +3556,7 @@ let
       version = "1.0.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz";
-        sha512 = "4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==";
+        sha512 = "02zyvvhbzxhb7q9pzn867l80whipj03h4nkzjw1r8kppkmgaw0fcgvnkkv11fkfnlcdhkr9f55xrap5qpvbggkad4y4jkymxgpzbfg0";
       };
     };
     "evp_bytestokey-1.0.3" = {
@@ -3565,7 +3565,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz";
-        sha512 = "/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==";
+        sha512 = "1wd18zxd7n42asa63aa4k1bdf58warg29c7c8cdzzkd4r1wva7qwzqnn52h8g8hqwj7bxjkk3ryghajrvz4i27h5bzp30p8hjiqdzgx";
       };
     };
     "exec-sh-0.3.4" = {
@@ -3574,7 +3574,7 @@ let
       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==";
+        sha512 = "3a56in0wklcqf6hk0n22z22yg9kzb7y4xj7yfmj2sahbnkjbr5s0sngpzrr60r5rq9b3f0f1m13da5fn9mfz7p3b5nbxgxmrs8lhhdh";
       };
     };
     "execa-1.0.0" = {
@@ -3583,7 +3583,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz";
-        sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==";
+        sha512 = "0nbazkdhh5zqw7l7y4ml860h6pbn72x5kp2iaknqbdk0ygcrp3yh6bnq0brzzsyk3f72ard3ss3kp9a2ffsglib3yiamqwm4mrz3mk9";
       };
     };
     "exit-0.1.2" = {
@@ -3619,7 +3619,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz";
-        sha512 = "wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==";
+        sha512 = "38r26vw1qwvgj86dijd5hps0b5ijk4qq0zy9dcgc2dpafq6jjx1x4k9lpaqs1mbkg4d9a29qkx914y9waavswvgwvcmv8n8qp3l1xf2";
       };
     };
     "express-4.17.1" = {
@@ -3628,7 +3628,7 @@ let
       version = "4.17.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz";
-        sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
+        sha512 = "3i2sxjf2x1r9wbfdyh5ll8ybbnqq6n4xfxdlc4dsqhssljrlih18csqg142lf16lcfcdgsmvf9pff0rzxjw7p0shnlmpajipwxpswlq";
       };
     };
     "ext-1.4.0" = {
@@ -3637,7 +3637,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz";
-        sha512 = "Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==";
+        sha512 = "3n50kbfjicn887f19ragi6k288srkjidzvcnphnb2f8bqw4vn10y73p3ryjyqq0xgrdxnwhy2j9favm7pfb3j3vhf5dmi8licsbkv19";
       };
     };
     "extend-3.0.2" = {
@@ -3646,7 +3646,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
-        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
+        sha512 = "3zad2109w3q3gh46s5msrnzfy2nl581sqpy20b52fs7v5pdjh3irpg7szl3xvh4sfy63218jy8ry6qlnir3baxbbfrb03swkw5swfky";
       };
     };
     "extend-shallow-2.0.1" = {
@@ -3673,7 +3673,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz";
-        sha512 = "Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==";
+        sha512 = "2klp0045k4wnaspb9khqx90ddv7rjg997mlyp5qz41sl2yqdrpw8g8wji77qq16aawl4yhvg0f993ln48lja0kfmy0wnbh4g50zlrin";
       };
     };
     "extsprintf-1.3.0" = {
@@ -3691,7 +3691,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
-        sha512 = "8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==";
+        sha512 = "1j7wq3vqvfgnpd2sjblnlgryxlic2fsy343fx8w4ywb2mngj1w5afq8fmly8cp9fi66dhz1fhcfpn23g5zasnzs6n1snb83qkkilhgi";
       };
     };
     "fast-json-stable-stringify-2.1.0" = {
@@ -3700,7 +3700,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 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
+        sha512 = "0gz06zkjlqc4r59ka14n3vwqjdgn40zd8r115ql3rkwqb7j42frmnsj3axr7p2md8ik52nqjn3myyv8ddavdhl4cq3xz4wbbz07y5wn";
       };
     };
     "fast-levenshtein-2.0.6" = {
@@ -3727,7 +3727,7 @@ let
       version = "0.11.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz";
-        sha512 = "D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==";
+        sha512 = "0wgmgai5pj0yjcc4gs5b6r94gr8ycsbv1xyjw055cxfy4vm6yrpqp0mpr89ychmzgr5y0mggqrljf9jhb8n5iq63bi3r9yqidpbhv0g";
       };
     };
     "fb-watchman-2.0.1" = {
@@ -3736,7 +3736,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz";
-        sha512 = "DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==";
+        sha512 = "1b67x7n9c1irns63lipsffgi0zm9kfms6k87mznvhak81dijqvfy26nqr3j5mw41mqb3vbbhxbbmcdgc787laz3kaq45slq0wlwjhqf";
       };
     };
     "figgy-pudding-3.5.1" = {
@@ -3745,7 +3745,7 @@ let
       version = "3.5.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz";
-        sha512 = "vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==";
+        sha512 = "39n5js2y984px4bvwavskv70pazpjnrvy5lnyqif5pdh6pgfinnl3b5zknfkqvlws7gnylmlwryzfpdvh0jgpgsiphx8a64fhjb3lmw";
       };
     };
     "file-uri-to-path-1.0.0" = {
@@ -3754,7 +3754,7 @@ let
       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==";
+        sha512 = "0px1qliabg53lwfq4izc9vdll68sd08nlczi2ms5nvg7frm3y6zgy07vdvxywazab26jc723qpmh9a6h3bdp685iddzsmgvfarpx6yi";
       };
     };
     "filesize-3.6.1" = {
@@ -3763,7 +3763,7 @@ let
       version = "3.6.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz";
-        sha512 = "7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==";
+        sha512 = "1rfby2136b86m318244b42lrcx9hc28vz71cv9i84cd5z7dd3cwvj1gx8mykbjh937yyi1h4q5kk3vhjcldc8pkd2f7iapszgbd3a7c";
       };
     };
     "fill-range-4.0.0" = {
@@ -3781,7 +3781,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz";
-        sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
+        sha512 = "1cfqk6g78cb12b1cki4pbcspsy40d0yny513myqji716njyhc5hrj7ll539kz96m6vn27168hhyqvd52cr5x1cs85mm7igfkrdrq1b8";
       };
     };
     "find-cache-dir-1.0.0" = {
@@ -3799,7 +3799,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz";
-        sha512 = "Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==";
+        sha512 = "0wjlwmvadzac6hwmxv6hsc16z3285i2y0nkwpg4366flza0rx30s3ncx93xn8hkkpxr493zi5b0h94jczinr87h2m6gbhrl265qzbjf";
       };
     };
     "find-replace-3.0.0" = {
@@ -3808,7 +3808,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz";
-        sha512 = "6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==";
+        sha512 = "04qvcapazb6cj527naq4ycrydqph63gpsq9ly76cvnxy7cm9xwdn2q62rlyvn7iynvm59akggz5jiiygzzbq7wrpwh218124fdzcdp9";
       };
     };
     "find-up-2.1.0" = {
@@ -3826,7 +3826,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";
-        sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==";
+        sha512 = "2bg49lifm64h5jqjc20612wrx7cazw9np9ms02ys94kif4li8cp5in4rvmb1c1ssa8yhbsqkgprykkj4lf3jbz8qrgp1mf8c93gl86p";
       };
     };
     "findup-sync-3.0.0" = {
@@ -3835,7 +3835,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz";
-        sha512 = "YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==";
+        sha512 = "1i4px24rzp6x5wczj63r720lxw2rl1yvsk8w36bcmmdsyji2yx59p1nxy3v0hqjfr5s9vzrxh55v83ly3d0mf5r78hw32awp1mdzdv1";
       };
     };
     "flush-write-stream-1.1.1" = {
@@ -3844,7 +3844,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz";
-        sha512 = "3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==";
+        sha512 = "3pkp1ymgv73zg0d94la628nagxyngq7zm1jmngx6vjc6vi5d4jkmvfygvgac6w6x929hqljwygaidq2znk3l5xd4apdvxvpas21g7nx";
       };
     };
     "follow-redirects-1.5.10" = {
@@ -3853,7 +3853,7 @@ let
       version = "1.5.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz";
-        sha512 = "0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==";
+        sha512 = "1alfnscb0lnmf1ka8d5jrp48bizkbqrdz616r7q9yv4afqadlli1xmmf7lsvany1kmmnmwpvhbgx70mvcsnjf1ywjnzmkmk53h6apni";
       };
     };
     "for-in-1.0.2" = {
@@ -3880,7 +3880,7 @@ let
       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==";
+        sha512 = "0jj3hgqp9pmxmfavx6rvdfl3r4yf98clpsarqadz3hq0dxhjlh2ppd9x8bvmaq3nwjdqpdvqx25pwyin4ipixhgsn7s3p9fcc3wllnn";
       };
     };
     "form-data-2.5.1" = {
@@ -3889,7 +3889,7 @@ let
       version = "2.5.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz";
-        sha512 = "m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==";
+        sha512 = "1aa6m5c13kybvcycjdyhr0qbb7097qs7kah89bbhynjs9r5fl6ibbhscpin31nshzhw5nszw5c6x10krrig90afh88la456cgflsvcv";
       };
     };
     "formidable-1.2.2" = {
@@ -3898,7 +3898,7 @@ let
       version = "1.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz";
-        sha512 = "V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==";
+        sha512 = "3jm9bdwpbsvpf9f7v9gh2dc01p5pg77g1q6g6jwxyaqykr6q6ljp3gvkbxrxa6wkhlnw52qd130f4nx8f6zwf74h8jgy8rmxsdhpj2p";
       };
     };
     "forwarded-0.1.2" = {
@@ -3961,7 +3961,7 @@ let
       version = "1.2.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz";
-        sha512 = "+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==";
+        sha512 = "0gh6646md6jag20cv3p6c36gf1k2h417lp8a7pwfdbvnbz9khs69hgs344jf2lk7pfqr8gyh13j56n9qvk2ad7nlq0isym93sbpgv7s";
       };
     };
     "function-bind-1.1.1" = {
@@ -3970,7 +3970,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
-        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
+        sha512 = "38chm1mh077ksx6hy2sssfz4q29hf0ncb9k6ila7si54zqcpl5fxd1rh6wi82blqp7jcspf4aynr7jqhbsg2yc9y42xpqqp6c1jz2n8";
       };
     };
     "gensync-1.0.0-beta.1" = {
@@ -3979,7 +3979,7 @@ let
       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==";
+        sha512 = "1r0jph65fg2w5p612lr79rb1k2xyvr3cymg0cbsk8nrncdm82l4k1k8sflk3q32zahpdjfsfs15rdqcj7wgahrpzw3picmmsgl05hdg";
       };
     };
     "get-caller-file-1.0.3" = {
@@ -3988,7 +3988,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz";
-        sha512 = "3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==";
+        sha512 = "3mw8nv3r73b3lp2pzj116p27flkrv1vq6v0ika46w3xqfinm6gxn38glryibvy834mja8ib4j9cjq27qn164z3793c9g88y79asppny";
       };
     };
     "get-caller-file-2.0.5" = {
@@ -3997,7 +3997,7 @@ let
       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==";
+        sha512 = "0b7da6kb3xqk26cw4i6kb1lk911z06z53if2g8l23hmfpbhl6vfbn8iip55j1yplbqnly2abb9d349r6ky2z570839q3p9z2gf4y88g";
       };
     };
     "get-paths-0.0.7" = {
@@ -4006,7 +4006,7 @@ let
       version = "0.0.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/get-paths/-/get-paths-0.0.7.tgz";
-        sha512 = "0wdJt7C1XKQxuCgouqd+ZvLJ56FQixKoki9MrFaO4EriqzXOiH9gbukaDE1ou08S8Ns3/yDzoBAISNPqj6e6tA==";
+        sha512 = "2sbm9wgxb9lh20hl3rj1zrpvgq14kxvd16hq6p9drh7z26f6nmy4jp0irbaqk1gjal152shl7kwkwk6gskvla18p0qs8p5mn2vlj1yk";
       };
     };
     "get-stream-3.0.0" = {
@@ -4024,7 +4024,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz";
-        sha512 = "GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==";
+        sha512 = "3pwlllj9naaqzlc5axbxz4jqg3v533xd9jz945mjd3zmca3hh3pr1dpwc7416kjszw6igk060v6x2dgwpr7m1rd4djavmvr8bhavihq";
       };
     };
     "get-value-2.0.6" = {
@@ -4051,7 +4051,7 @@ let
       version = "7.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
-        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+        sha512 = "020qv13jbi1v4y5xavf6fw08h9svy4q9p67m4avkrrhgdjmk0c5k3h19bv7k6yn1vfxljpjw9kg81fbdg9v83cjplxvkn3v4v1v21ig";
       };
     };
     "glob-parent-3.1.0" = {
@@ -4069,7 +4069,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz";
-        sha512 = "sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==";
+        sha512 = "1pgpsvm0rm1fnqmblx77xs67gh8c80nf4dsgcgalhh9phmlp8ahn5w7vzx3xkwyxw3fg33h8vhh3plsycw6fd7c2r76mm7m8w9fkb5h";
       };
     };
     "global-modules-2.0.0" = {
@@ -4078,7 +4078,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz";
-        sha512 = "NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==";
+        sha512 = "3q8nyi4i93sc7kfx7mmzmkr3656h7f27f5dkwx0908mz2m4bdih9024qmbss87anjf9d817zbr0mmm2zr9pfli2qw41zxv9j2cdyril";
       };
     };
     "global-prefix-1.0.2" = {
@@ -4096,7 +4096,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz";
-        sha512 = "awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==";
+        sha512 = "1dda0wwyqq1k8qa0cy6ifchm9zfbq0bsrvq68gccp4haqp0hgqs5ax1hrpxkcl9k9j3g1nb0nzi19v8ikcxxc9y6i37a24mjjfah03b";
       };
     };
     "globals-11.12.0" = {
@@ -4105,7 +4105,7 @@ let
       version = "11.12.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz";
-        sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==";
+        sha512 = "1ab6f0n8yjl3zkl6dwhvxpxh63b4acc7nj7i21z3dx1fz1jv1c3673qpkwiavmcbbf8jlkxapx0x8ybzz5w2yra4ln24lh687y6kq2q";
       };
     };
     "globals-9.18.0" = {
@@ -4114,7 +4114,7 @@ let
       version = "9.18.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz";
-        sha512 = "S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==";
+        sha512 = "18psd5ig23apaw07k4mma3z1hi2ndfwsqkm05hxashnf5lf7mpfs6kjiircc0x3x3q15j2x2j4zfzsqacxvfsmw40zjchn44bfccjab";
       };
     };
     "globby-6.1.0" = {
@@ -4141,7 +4141,7 @@ let
       version = "8.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/got/-/got-8.3.2.tgz";
-        sha512 = "qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==";
+        sha512 = "05i0zb81f4c0z48y9mjckyajm586ygznh8y8di5g0qrg3vi9hpbw2q3cf548as8zx9b4g1q5zf2cab43yx21wnan1l0qsz19zjhjdda";
       };
     };
     "graceful-fs-4.2.3" = {
@@ -4150,7 +4150,7 @@ let
       version = "4.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
-        sha512 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==";
+        sha512 = "12xdl6ai5jdxcpcavw2hk4zpiknz7g7f2cvgawzwlzv7cy7qf7riq8ymkgqdqxjkpl1mg627dxa65zc9b0yqhflsmqlfg5q3481azbb";
       };
     };
     "growly-1.3.0" = {
@@ -4168,7 +4168,7 @@ let
       version = "5.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz";
-        sha512 = "FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==";
+        sha512 = "0y1sp7474a0w8329a3d69dgqdbaj7azkx415kcdrkri95c6gyvpj6c3mp5v0jdwjasq01xw07lr5l551z77ch0nkcszn7m8d7mf5l8l";
       };
     };
     "handle-thing-2.0.0" = {
@@ -4177,7 +4177,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz";
-        sha512 = "d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==";
+        sha512 = "28zz3rsr08yf5sib0pnnwyk99023ll7bp73z28r1pb6j722bfdhxmzww91cyh713b3a6bqvfxlglancn95pwdnsb5w8w2sda9xk72vp";
       };
     };
     "har-schema-2.0.0" = {
@@ -4195,7 +4195,7 @@ let
       version = "5.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
-        sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
+        sha512 = "3kaldgfsh3lfvgvw31s8b7q345zf7ixjahllncdckcw6qfs3gnbsamdxgs9kfigq7rwmja7v51ghh7y0rsp6q7jmvmbydhh645wxnxh";
       };
     };
     "has-1.0.3" = {
@@ -4204,7 +4204,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
-        sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
+        sha512 = "37vh53c11hws66navka0w9xxm6rcr034bxpyvaldiqz1msafqf0jpi1aqxbaygs53arz9y510qg6dl6vrm285hrxniygs2l8lxnyrvz";
       };
     };
     "has-ansi-2.0.0" = {
@@ -4231,7 +4231,7 @@ let
       version = "1.4.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz";
-        sha512 = "3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==";
+        sha512 = "0kljkjnsw7jnqm8dpf05rd7a59xjfwlbmp1qxs5kdda78zwwqfpkq5ryc2510iyam6v5vbyy0h7bpkwqadajq1ag2zaa7dymyyhwfnx";
       };
     };
     "has-symbols-1.0.1" = {
@@ -4240,7 +4240,7 @@ let
       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==";
+        sha512 = "0mb9d5yqvznqmq073hdc4wl7175niiqpkpb7iqqv8p0q6xgmrhfap9ni6iwrx44w8p9vyg8n3zsllil5pdflzlh462dkydymfi2rdrw";
       };
     };
     "has-to-string-tag-x-1.4.1" = {
@@ -4249,7 +4249,7 @@ let
       version = "1.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz";
-        sha512 = "vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==";
+        sha512 = "0bqvhd628h3lrsydbp1xllh7jp23c58j7d4z0x0v9ddffindkk1zfrqmzm28z47ipjp0zxlmzvmlzk98zf9mzjsc47bmp1ydizcmmmx";
       };
     };
     "has-value-0.3.1" = {
@@ -4303,7 +4303,7 @@ let
       version = "1.1.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz";
-        sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==";
+        sha512 = "1f5xc15zpy3b7hssv57xnd92ja5r073zvd2pczvncxmy1jnbjcx716riyr2syvah88qk7328a6fz049mziv2k837093xqxd86r9m8xm";
       };
     };
     "hmac-drbg-1.0.1" = {
@@ -4330,7 +4330,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz";
-        sha512 = "eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==";
+        sha512 = "1qc7ngn9k1w5lcqx2ygqb2x9f03knfbsym25l6qsp6q9qdcxa4fzwwjsh9d9lm5l1569v19rjp7sdnz11087f4b6sv34rav9rcacabr";
       };
     };
     "hoopy-0.1.4" = {
@@ -4339,7 +4339,7 @@ let
       version = "0.1.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz";
-        sha512 = "HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==";
+        sha512 = "1yx4ynb45w5hn214j6xm2357i3hcbhyh21d7040ikmi9ywaqsjycbzp390wp1qixpyjnc8aaacwzqyf1cvlfz7c5fs6brxbd7xjq5qx";
       };
     };
     "hosted-git-info-2.8.8" = {
@@ -4348,7 +4348,7 @@ let
       version = "2.8.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
-        sha512 = "f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==";
+        sha512 = "19a25b4xb3hg00d1nsirc3xfcc07rplbh6msa49rgc8xg5rg38y1z8rfrf0dmll8k4jaml8z337bi6y2cgah66jnwxinn0sch5k7z3z";
       };
     };
     "hpack.js-2.1.6" = {
@@ -4366,7 +4366,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz";
-        sha512 = "71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==";
+        sha512 = "1ir4rhs26z0x26nr1bca94rbgyginfyrdza1a550ish1ssv5cf9j94dgl2j47n65yvjsnmhx8m749bljr3qjn7pdndcp7l35375jngg";
       };
     };
     "html-entities-1.2.1" = {
@@ -4384,7 +4384,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz";
-        sha512 = "a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==";
+        sha512 = "0i7fxa00a4a7qdgxkiafdbpwvm5x80fivcnhmwbd8qdyxf18zdxzmriqq48k5a7yr7vn0hhzvvf1nki2105hqn29fznnn0iw42vv2vb";
       };
     };
     "http-assert-1.4.1" = {
@@ -4393,7 +4393,7 @@ let
       version = "1.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz";
-        sha512 = "rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw==";
+        sha512 = "21ixj6v0igbmy7zx5g4kpqp9fr495ki1jm8qszg1gbwmwcbji51n4zcpm6ll8a927m626rw4vkdamvsi90azmsnapm2d5lkl6mkpp5d";
       };
     };
     "http-cache-semantics-3.8.1" = {
@@ -4402,7 +4402,7 @@ let
       version = "3.8.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz";
-        sha512 = "5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==";
+        sha512 = "3gsj16kpvygynld5ajbvg8ii3n3bka4waamdzx30wwhz72mdr6wvffm20rfnxwzid9fq49d5g333yjq5dz1qqbnk9bwcmrj9f5bda75";
       };
     };
     "http-deceiver-1.2.7" = {
@@ -4429,7 +4429,7 @@ let
       version = "1.7.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz";
-        sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==";
+        sha512 = "13c4825kzqlxdqfjrlrwh15ira0bjm9m3b8qcrfzaysiky1m3gb6dv6gcjgpnap9mbl0fajqiibzp1w5r8qnyn8glaj4wgzf6vh2i5r";
       };
     };
     "http-errors-1.7.3" = {
@@ -4438,7 +4438,7 @@ let
       version = "1.7.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz";
-        sha512 = "ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==";
+        sha512 = "1zx0vws4k6lcw8j8pgc2yrwfw56s6n2z4dvhd9lcj9l1ywnl9ssianilmrlzr6ravkqxv0xbdqg4cn0q3l72d8h0achvcdbqp8dfd35";
       };
     };
     "http-parser-js-0.4.10" = {
@@ -4456,7 +4456,7 @@ let
       version = "1.18.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz";
-        sha512 = "84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==";
+        sha512 = "2jhzdgr7gcgj58mf798ak1a638wm4mnp45pk48im1rf03dpw39alpyabd7rqwqgjrilaggnmh6nd3m9pqnyn76q3mw5g7rzjf43d0pk";
       };
     };
     "http-proxy-middleware-0.19.1" = {
@@ -4465,7 +4465,7 @@ let
       version = "0.19.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz";
-        sha512 = "yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==";
+        sha512 = "3fl42r9rpdqm0jrrd2wqws6syv02r8cqgy0j6ddrjvn5p3by8shm0mmbych1g5k9i5agc70x6z2904nrgidkdnlq1pwafqhcf0i6xn8";
       };
     };
     "http-signature-1.2.0" = {
@@ -4492,7 +4492,7 @@ let
       version = "0.4.24";
       src = fetchurl {
         url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
-        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+        sha512 = "2n3ygx6km56rdcd5kq52bs2113xqm3vlw2kb9r7pnmxd2qhxrfahp2ngc4w7x8x76fyfpapnixnbjq1i24nc11mj6q7rghwj2fifwxz";
       };
     };
     "ieee754-1.1.13" = {
@@ -4501,7 +4501,7 @@ let
       version = "1.1.13";
       src = fetchurl {
         url = "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz";
-        sha512 = "4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==";
+        sha512 = "179jm8fhl2advz4j63klrp57sm99wvyb5jcxwfr9rhi730ybcxkyfqrr0pmwvir12zjzpkwwvjjkjclwrss7lpab7dg2myqc8izpxz2";
       };
     };
     "iferr-0.1.5" = {
@@ -4519,7 +4519,7 @@ let
       version = "3.3.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz";
-        sha512 = "Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==";
+        sha512 = "2x7za00gs7ipwcq29bslxcdv7j47m28jx14n9ybs5h2icr4024jn5ppmbs6953g2qb3amhs1gg5x0s48ky3mk7ybi36wchsb7kks2ry";
       };
     };
     "import-local-2.0.0" = {
@@ -4528,7 +4528,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz";
-        sha512 = "b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==";
+        sha512 = "04jd526svpmpgya7i580qcb13s9b6bw4s9hng2fsni2gxsz6h8vqxl8gbm5k575yxm5aqhy001rl7p1iy60rsi6371cvynfdpi39avg";
       };
     };
     "imurmurhash-0.1.4" = {
@@ -4555,7 +4555,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz";
-        sha512 = "IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==";
+        sha512 = "3s364ysa3q0sxc852a6rlbx0y8spayvg5csradd7s9vn2fr0ky3xpfhy5kkv6afgji3df7kyiswx296kwfakydii9xygqzxgkwn6a90";
       };
     };
     "inflation-2.0.0" = {
@@ -4600,7 +4600,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
-        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+        sha512 = "30rw2i1k63pbf0n5dbwly05h95cdp1kj8c9r15gv1cwha141g61k56fx4qwsvhpm1ksnf7agch1wxirs3s0m31wbfvmcqizgrlwdywk";
       };
     };
     "ini-1.3.5" = {
@@ -4609,7 +4609,7 @@ let
       version = "1.3.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
-        sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==";
+        sha512 = "1rjbvf1rg5ywhnba08sgagn2qf23lab330qrqmh7d891zap3xpxcyfyj1cblpf0f0rypglcfacybzyrpd4996aa1mbc820awa33k5j5";
       };
     };
     "internal-ip-4.3.0" = {
@@ -4618,7 +4618,7 @@ let
       version = "4.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz";
-        sha512 = "S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==";
+        sha512 = "05c6ydjyg8633b07vn5g168r5lxwvl5k1mjm55brfx35c1z18195bh67f7cfk4bjvyapxfhh8q5i7pv75k353rfp0rcpkgsa2iw2p2b";
       };
     };
     "interpret-1.2.0" = {
@@ -4627,7 +4627,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz";
-        sha512 = "mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==";
+        sha512 = "1pibn9f6dn61lmilqiv8hb4aix4b78xf9sdws3rnl060vvv6l4qrw6gfmncq5n0f0rah2yj1ssfg80chaw9y5aa860wfdcccb4ghgcr";
       };
     };
     "into-stream-3.1.0" = {
@@ -4645,7 +4645,7 @@ let
       version = "2.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz";
-        sha512 = "phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==";
+        sha512 = "0sa0bflh46zr7zqdifqk3a48bmqlmpikrnmwvgz8nx6979piw2m92qrn1g5xnpjzxn864y2jq3gl84jkws2dad3mlwr6s3fa10my4m6";
       };
     };
     "invert-kv-2.0.0" = {
@@ -4654,7 +4654,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz";
-        sha512 = "wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==";
+        sha512 = "0lamd4l8hybnh42bg1nav09fj3h7k31vnvsqbqk3mhbhml32042k8hpixhiapqfssi1jyhnw31mdv9zx0fvxzxqi8igahyh5zznzxf0";
       };
     };
     "ip-1.1.5" = {
@@ -4681,7 +4681,7 @@ let
       version = "1.9.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
-        sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
+        sha512 = "3gcwhv1wa2hb1vljlcmzhvzliks9rj7nzsw165vgy69jakw8g55ky474mj4j41vfbid8viy9nhwn9kx8pfqrikyl29i98zi9vmkz8nh";
       };
     };
     "is-absolute-url-3.0.3" = {
@@ -4690,7 +4690,7 @@ let
       version = "3.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz";
-        sha512 = "opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==";
+        sha512 = "3ssxj0ds0anzx5qcgn5lcawrsv3br0zbi1qcfpi9sslp4iwzb0hr9aqy3y72rf9c0bwb0h5svy7l341j0arlkyvx2yp85pfgqhqv6d2";
       };
     };
     "is-accessor-descriptor-0.1.6" = {
@@ -4708,7 +4708,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
-        sha512 = "m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==";
+        sha512 = "1qllik6fjwfq17ic0fxwqyll8mrhmcm36xfsq45xc57mq9ah4i4nn4f8fvgb0gx4kpl3jlpkzndp0xlmmf2mh0xmggw6mhw74fng64v";
       };
     };
     "is-arrayish-0.2.1" = {
@@ -4735,7 +4735,7 @@ let
       version = "1.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz";
-        sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==";
+        sha512 = "3kr8dm9qyklmm2xyiz75s8db90bfilfals4x0g276kncihrrrz0ar4y6dqpvc7pwy7h43jay1bayi1r62x97nzvcswkk4ap18pl1irm";
       };
     };
     "is-callable-1.1.5" = {
@@ -4744,7 +4744,7 @@ let
       version = "1.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz";
-        sha512 = "ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==";
+        sha512 = "3wmff73yzck45x5shydqswbww8zkl03i43yhy7mm6av9770yvd2gj7xfrc8f45fw2ncn7mwblxvxlcap5rngmklkjiis902qgkay8hi";
       };
     };
     "is-ci-2.0.0" = {
@@ -4753,7 +4753,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz";
-        sha512 = "YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==";
+        sha512 = "3inmiidgnyxsaypy9cq2pxcc0n7xcfsy3dlkjhk22y97vwz45b0hg972wj27kc0q5dd7k0zywjl3y5fjsqiq7fvllp1sh19p7p57wk1";
       };
     };
     "is-data-descriptor-0.1.4" = {
@@ -4771,7 +4771,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
-        sha512 = "jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==";
+        sha512 = "0ny6kxc752fg3z6fmj8a7fw2lai2y17d9fx0028nvyv1qj0sa30rfryhv9xd7b7is1yfs0val6amsy2b22rh589il10md36a75mgd4d";
       };
     };
     "is-date-object-1.0.2" = {
@@ -4780,7 +4780,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz";
-        sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==";
+        sha512 = "39f971gzwirnxjw4b72c175nbn1hnmrn1wljvbzvxv69hw9vpialhjafh9nkh0g3p26a49zss3rr7pxfww1f6day4s89hmqkm7l6aai";
       };
     };
     "is-descriptor-0.1.6" = {
@@ -4789,7 +4789,7 @@ let
       version = "0.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz";
-        sha512 = "avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==";
+        sha512 = "0gbflcxmd30gzj91y19fylsfalirl6qg71sxjximc8lc2vxkg5h9scnahvxsczymchlx742i8ai489843ys431vyw73rp418jpxiw3a";
       };
     };
     "is-descriptor-1.0.2" = {
@@ -4798,7 +4798,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz";
-        sha512 = "2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==";
+        sha512 = "2v1a9mn2rzz52v8vs3i7njk9pv95fh971yc81xr0zkaw3dff4gbv1zv048xyjysfgwpajbyryk2px8hinwwh0wagblmw6chdbjsrs6r";
       };
     };
     "is-expression-3.0.0" = {
@@ -4825,7 +4825,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz";
-        sha512 = "arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==";
+        sha512 = "0w73qlx9ynmv2iznw1kll86yd04z4rsz3788nzgh7amcnpsbyxbrs734im9dibqgps6pjyz61s8kp4lcsbjsdfrlc51m1pm2hrxgfba";
       };
     };
     "is-extglob-2.1.1" = {
@@ -4843,7 +4843,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz";
-        sha512 = "cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==";
+        sha512 = "3gj0k3vlpbc7zg5xkl8yjnilqs2dmk3ks67shchrfmnzkj6r4aad994xwfczx99ccjx6cixdqg4sawk2m92lqhh6jmfl17zlnv8rp3i";
       };
     };
     "is-fullwidth-code-point-1.0.0" = {
@@ -4870,7 +4870,7 @@ let
       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==";
+        sha512 = "14qphsynlkivbpi3hhf3wmcjh8f5s9d2z6nr1h98ijygyj2jql330h1w52a4z33plgjma305w3rn3nf28q4n6j1qfmz2byq4gih2cki";
       };
     };
     "is-generator-function-1.0.7" = {
@@ -4879,7 +4879,7 @@ let
       version = "1.0.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz";
-        sha512 = "YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==";
+        sha512 = "2vr3bz9zc2d62mnsg16ppb5h2v5h9yfyjbijysi34b10vsly1fn1g4hmqwi40fng3i9pmbkc7vapr3yl23yxc96b2jgvqcf1h9kk5v1";
       };
     };
     "is-glob-3.1.0" = {
@@ -4897,7 +4897,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
-        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
+        sha512 = "19c23n8r8rfbz5rgs5csbjbpwgxvwi7y6kpsvlylgs2v1r1z2zm18qzzz2g8vnnwaldn5c4qalpc6p88rl0gjrrm278j52ks0m2svg4";
       };
     };
     "is-number-3.0.0" = {
@@ -4924,7 +4924,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz";
-        sha512 = "w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==";
+        sha512 = "0aws7clcb9cyvvb4430df9fhfnpg9bl1n07ymzp7jdzia0bvjg25gyd39xp2xhgkgpkqazw8csglblifdql0rpj4kfwg1r26xnkdpn3";
       };
     };
     "is-path-in-cwd-2.1.0" = {
@@ -4933,7 +4933,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz";
-        sha512 = "rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==";
+        sha512 = "12yyg4jlg5mmiy2g0r91hz29v3jh5g2wyhdgs1qrfswx2sp7bfsn5g4632yfxmhrpjcy03bxfj12v93yd6pdykkpsmyz912g1f1rnmc";
       };
     };
     "is-path-inside-2.1.0" = {
@@ -4942,7 +4942,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz";
-        sha512 = "wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==";
+        sha512 = "0b5h3ls9n24ma1wqpfsv7n034ryz86rfn1vkz5g0sih2abi9wrs0vx6w583s6qhcgqa6rx5w5layfz7hlakhxvf07qcnnn36x7s2b62";
       };
     };
     "is-plain-obj-1.1.0" = {
@@ -4960,7 +4960,7 @@ let
       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==";
+        sha512 = "0xgsjz9m3kg5pm36lcchblxk53qay59ya7wi5jgdmz0dsl5b0j2j7wcd48yyfaip1m70mj9aqf8kib02fn62k0hy0vxg2hng60yk4w7";
       };
     };
     "is-promise-2.1.0" = {
@@ -4978,7 +4978,7 @@ let
       version = "1.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz";
-        sha512 = "vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==";
+        sha512 = "1hqaalcf1yqll2yzm71a1axvid0x87jp41hyicw16rl12rrh6sp6srr9lk7wxm6a1vl3ypw8qyd0imbq8fl2h7yq8l8xawdnkbrclmy";
       };
     };
     "is-retry-allowed-1.2.0" = {
@@ -4987,7 +4987,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz";
-        sha512 = "RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==";
+        sha512 = "134jdgzg4p15g5jvwsmb0bmglmymn1pyk6r2w8q1fm728f15l7k12sqmfngn0mg3vs34gzg12v684fp9c99l6jnv737b6rgmiwd8ij5";
       };
     };
     "is-stream-1.1.0" = {
@@ -5005,7 +5005,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz";
-        sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==";
+        sha512 = "1lmzzy2360gfg5639x8mzi5fpc1bgpdx0ffjlqaz9affd0lvvpi7yjwk15jsm1y1l8rf5jahyapv6rm2w3p86gxkghsp0jjlj2s621v";
       };
     };
     "is-typedarray-1.0.0" = {
@@ -5032,7 +5032,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz";
-        sha512 = "eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==";
+        sha512 = "0h9a8zw2ddl25yryp7i376iqjdvlsx4gw93sxy4067dw2yi98m3krfwd9xgi9q5w0idw9rqnyhhncr38xsppyi5izkb7ngai58bawkr";
       };
     };
     "is-wsl-1.1.0" = {
@@ -5095,7 +5095,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz";
-        sha512 = "BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==";
+        sha512 = "3bk7frapznyd2q46p7kbk6w1wby8dfjj14p06j485n3s08nc398ah9d3wlr1q59sj5hv1cycvalkmn1vfzlamkp93d69981ccvny406";
       };
     };
     "isstream-0.1.2" = {
@@ -5113,7 +5113,7 @@ let
       version = "2.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz";
-        sha512 = "8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==";
+        sha512 = "2cgkn8swx4450c0m0alr4lb4fvqjyh3v9mg6ivx2sa9vq0hkb7r0yz87srf8263j089kpjmpnsl6d3l5vg7x4f4kk39n20gw6gg79gi";
       };
     };
     "istanbul-lib-instrument-3.3.0" = {
@@ -5122,7 +5122,7 @@ let
       version = "3.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz";
-        sha512 = "5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==";
+        sha512 = "1j5bcfrd9sgjpm1mpgxv847jwwcjfpzfkynjcidpf4mwxbn0p6gz622rcrmbliphcbnw0nxipw0d7aw0gva7rym3lci9rz8icvwhyg6";
       };
     };
     "istanbul-lib-report-2.0.8" = {
@@ -5131,7 +5131,7 @@ let
       version = "2.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz";
-        sha512 = "fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==";
+        sha512 = "2qm8v7vck1yv85lkx7n060wdvrr547mfrc83xyr6sl4p4av7r6c5jh6mdbvxiqz2m6d5spj6v8fksa9dc6c5r86hjhqh47pkqdmww3w";
       };
     };
     "istanbul-lib-source-maps-3.0.6" = {
@@ -5140,7 +5140,7 @@ let
       version = "3.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz";
-        sha512 = "R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==";
+        sha512 = "1gm71m2lqpb1p2lrwmf9f9g2maz48s133zvk0zzlblgwnjgnn6dx129cbsx8znklhanwwgck6fwnfpsy5sga5pnwfbpw923rg6cm3j7";
       };
     };
     "istanbul-reports-2.2.7" = {
@@ -5149,7 +5149,7 @@ let
       version = "2.2.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz";
-        sha512 = "uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==";
+        sha512 = "0m8fjnnvxyyd03g22xna4jnypd01jbvdsz5k9jnqlb1v678zikdzidq7p1x4pdlg1dfzfa9g8lzz01srnamalpmrj5qxrb8ppy4bvds";
       };
     };
     "isurl-1.0.0" = {
@@ -5158,7 +5158,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz";
-        sha512 = "1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==";
+        sha512 = "3vs53bpdrwiwwcql2xs20jmd8qha27k4iypdhr0b3isgdaj18vz80nhxwvvqxk6y3x5vj3slchxl0r91gjhz487xmkkp52gridg5zyl";
       };
     };
     "jest-24.9.0" = {
@@ -5167,7 +5167,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz";
-        sha512 = "YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==";
+        sha512 = "0dz2j03p5zng926y4l7d5ivp918xscx0rmpavzyh02wy397hc3qr7m8w90zyfizy0gkwcq6xcdw4a3p1rqpqyg8sy0xvvb6aqph3yb2";
       };
     };
     "jest-changed-files-24.9.0" = {
@@ -5176,7 +5176,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz";
-        sha512 = "6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==";
+        sha512 = "2m70h82g3b9fhgyvzvg189inyc1zq20jz8nv763k4zcqg05pswzg92kjwkk26ry257qpk1p7cdg5hivchvmmg5xhh1ms756xnjxd979";
       };
     };
     "jest-cli-24.9.0" = {
@@ -5185,7 +5185,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz";
-        sha512 = "+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==";
+        sha512 = "0d2yrlapfahrl57m7nwz7lw04gvx72f61sq0w8mga9c1ly2jqm1jfb7jx4xjwqy4rshz0xxrj1zcpy5s60m14n7l1b70kxd50mx2lpr";
       };
     };
     "jest-config-24.9.0" = {
@@ -5194,7 +5194,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz";
-        sha512 = "RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==";
+        sha512 = "1yjki6v7vm537dmjkfkdbmb9gqw90j3sz1815j1ckx21rb2pshsdpk7qccjn6hfbcn7zy287wb48ynbz6kq7mpvxplhlqamkd0fs124";
       };
     };
     "jest-diff-24.9.0" = {
@@ -5203,7 +5203,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz";
-        sha512 = "qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==";
+        sha512 = "02sb3bshly5aqlan0hxxw54d15jm33d68zhyl9mr86lwy736g3gdvcs18d3jv9zr82vnnnhcdvi7fc7fd4aglxai8v92x00rx7fpix8";
       };
     };
     "jest-docblock-24.9.0" = {
@@ -5212,7 +5212,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz";
-        sha512 = "F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==";
+        sha512 = "009kyd5sgsjr8fa7ayc30pggfywigyh6a49rwk6fs1lcn5r61iy7ffza0zssbbra98yp64qgjinbmk09m0pp1yyf0sw096cj1vf6l0p";
       };
     };
     "jest-each-24.9.0" = {
@@ -5221,7 +5221,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz";
-        sha512 = "ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==";
+        sha512 = "2i6r417rcfrcfm30qy6ahwx0bgnwmj43d9l43vj1fkzj22dp6aygkx8qb6v09iw43q0y2b8pmfdw1k2gjy2wdnbqdf8wnvgh13v9n1q";
       };
     };
     "jest-environment-jsdom-24.9.0" = {
@@ -5230,7 +5230,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz";
-        sha512 = "Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==";
+        sha512 = "2s9xjipxcg6j92q67l7c9xcc6dy8d5nhjw722j501cxha0fabdp0ld1vzdw9y4hnqbvcy2h6kagjv9vlccbvqxm03p34is1sdblbzv6";
       };
     };
     "jest-environment-node-24.9.0" = {
@@ -5239,7 +5239,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz";
-        sha512 = "6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==";
+        sha512 = "2wbp9q6p3l2n5zd9s9788rpbyy4xgf07fgf1q8vgnndzgk87jiillyhsjliznj924bssn8pwadqaimgsdpa7pg9q4rk5ir7zvcibpp9";
       };
     };
     "jest-get-type-24.9.0" = {
@@ -5248,7 +5248,7 @@ let
       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==";
+        sha512 = "3qs6d7i3xgiwb787y3d4ymij99fqgrcn6bg0bz27ic0nr58cw49njbhnrb7jpmkq3823mqs1snx7rvz97zlhac7hh5jwyr560riwjwm";
       };
     };
     "jest-haste-map-24.9.0" = {
@@ -5257,7 +5257,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz";
-        sha512 = "kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==";
+        sha512 = "26w4jc0ic0x8j1vza10vnf1aqahg1wknvq9q40kbsv5i9j5h3krvjb8akjgkkpv9gjh9frq04kyml8gg01d8saliy92vflnrfd4bxci";
       };
     };
     "jest-jasmine2-24.9.0" = {
@@ -5266,7 +5266,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz";
-        sha512 = "Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==";
+        sha512 = "37r7lh1ni9sizsffg7zcymwr8v30jhnz5kxmpq06i4c5d2b62nmpnci0w2kfmx0nq21ndp6829ypajdbgrdpzn57rzalq0s128fzbha";
       };
     };
     "jest-leak-detector-24.9.0" = {
@@ -5275,7 +5275,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz";
-        sha512 = "tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==";
+        sha512 = "2n6cx7niz5q8aryz2gahj0kz5s7vvj4xjn5py635kmmrhr7xa0immgd7h6id9zxccrxz8pn8rlp9maz447xfik1dyq32a927ch0b2dm";
       };
     };
     "jest-matcher-utils-24.9.0" = {
@@ -5284,7 +5284,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz";
-        sha512 = "OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==";
+        sha512 = "0fa7wakjy0cpr8scy7i55r1bp13r42n334abwv6p2zfkxa1dgkv0s00qm31437ixxv0rjah1d86vvjg6nvyn7hc62ifds9fgchzd71r";
       };
     };
     "jest-message-util-24.9.0" = {
@@ -5293,7 +5293,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz";
-        sha512 = "oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==";
+        sha512 = "2bq0saksr0nf5i1vj8lkrgwpb1ssyasmmxj0bwhn6ckf921bx3lapbg7wwzp96aa0qd81pv5n6gi0iz7cpvm4l67x9lhlvp4qbgqa50";
       };
     };
     "jest-mock-24.9.0" = {
@@ -5302,7 +5302,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz";
-        sha512 = "3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==";
+        sha512 = "3byaz1py3zmdifhw4743mrj6vq5mkqmkr83ps0w20i3dw2f46sqspx2prn9gyvcqa0i7za0gy6ff0gc28qjrcp4fxqayjlvjlvih4fw";
       };
     };
     "jest-pnp-resolver-1.2.1" = {
@@ -5311,7 +5311,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz";
-        sha512 = "pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==";
+        sha512 = "2fsj6wsh0r9hbal035dfnly528jk85b00z1rnikavh6zprlhwspq8rqjlv4ds0qkr2l62frwq803h6awxx3hgzpcbhgrqdrv7d700d6";
       };
     };
     "jest-regex-util-24.9.0" = {
@@ -5320,7 +5320,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz";
-        sha512 = "05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==";
+        sha512 = "101f428mjhbpli5q63y48lr2j3010x571y5km5mfk2zxx9vrqwnwvprsib89f5nv2lysfr6cin7gxc6ryyqx7yfc8za1idfl1psd46k";
       };
     };
     "jest-resolve-24.9.0" = {
@@ -5329,7 +5329,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz";
-        sha512 = "TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==";
+        sha512 = "0qkydcrqaqslxls0wgkxipas27szpigp62bw03ab640ilj8ym1zfm9x9w0x1ghp14x218dq5jzraf5niwvdybch2lc4z5zma8nxx8jd";
       };
     };
     "jest-resolve-dependencies-24.9.0" = {
@@ -5338,7 +5338,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz";
-        sha512 = "Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==";
+        sha512 = "3xflqrzhsd48ckwqzd4cc5b2qxng8f9946lws7dam37gwd4dxb5spjsswqa624bh36ymv8il4i4gjv9x4ay5whms19qi7an17ldnvhn";
       };
     };
     "jest-runner-24.9.0" = {
@@ -5347,7 +5347,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz";
-        sha512 = "KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==";
+        sha512 = "1d1djjic2c29yjm7lccjh8vpa7imjmr3b4y87v255dvg7cn9p7v78298hzjvl00xkaqn4vrnwd9w6rq8hf9yagvf6hlkzrp491hjjra";
       };
     };
     "jest-runtime-24.9.0" = {
@@ -5356,7 +5356,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz";
-        sha512 = "8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==";
+        sha512 = "2gwrn1nf3fc73wdc0a4gjipld6ahf9iq9k37rdzp5wxish6691xnb4b72j31k2hksr6caijgdgjhgxsbxi36lgmx24zvpl5g616m0zj";
       };
     };
     "jest-serializer-24.9.0" = {
@@ -5365,7 +5365,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz";
-        sha512 = "DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==";
+        sha512 = "1nkvvhcv9qvpdxj7p66qpi46yy4yqvdw6kfdfpq3b00x4i4ypxa1c8m9s7xh672svcibgv3ghwzfh3limg7mjkx53mzffpw7aj245hg";
       };
     };
     "jest-snapshot-24.9.0" = {
@@ -5374,7 +5374,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz";
-        sha512 = "uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==";
+        sha512 = "1xq7ysip1hh99xijwdhk5xmax44mkf7r0ggqdfzdmfnj7h75myfzr39nwi3ljvgwgj7lwkliz9bidivggmgl9fd13qvvcwj66ryp3xq";
       };
     };
     "jest-util-24.9.0" = {
@@ -5383,7 +5383,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz";
-        sha512 = "x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==";
+        sha512 = "0xcvxjx6b045jaki9zg2qjf7j10fv9wmlq2173553l6z11g73id4xgv591r7wdjd81x088fmmv2c53pq60fcjhddiqy562iqm9ikry7";
       };
     };
     "jest-validate-24.9.0" = {
@@ -5392,7 +5392,7 @@ let
       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==";
+        sha512 = "12y3aryz98ppjhkz6zs9pix68d6ng43dq40wyvjhdzlf1cyyfs27qk9ra1zir84g2y42smvq7rclxj8sbkzh8ic9am0h2s05vl2vwhw";
       };
     };
     "jest-watcher-24.9.0" = {
@@ -5401,7 +5401,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz";
-        sha512 = "+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==";
+        sha512 = "1kqdbclywg8vhhvh6dhrmzmdfj1ivkwdl639qxam38nxvvv869b7j9shaag8zg7cmc5nlw67yhhc7p1pynv6r491l4pcpcgy8wwpxzv";
       };
     };
     "jest-worker-24.9.0" = {
@@ -5410,7 +5410,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz";
-        sha512 = "51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==";
+        sha512 = "1bj47m96z8b7jibrl7ybpmk88l2ic0yzwanlsimc1ca2gz8rhj0zaxaix9baxmyms63lq8dj2yxpafr739k3lhrl83pfjcc2vic8lz7";
       };
     };
     "js-beautify-1.10.3" = {
@@ -5419,7 +5419,7 @@ let
       version = "1.10.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.3.tgz";
-        sha512 = "wfk/IAWobz1TfApSdivH5PJ0miIHgDoYb1ugSqHcODPmaYu46rYe5FVuIEkhjg8IQiv6rDNPyhsqbsohI/C2vQ==";
+        sha512 = "2yvdw134756wahvr97k7b7s5d10h3wf454j0vjmwhgbdsmqidlyccrqvjhlm82vdwc3m0074ad79wp4qwmpclhagi9ksvx80lh3zyf1";
       };
     };
     "js-stringify-1.0.2" = {
@@ -5446,7 +5446,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
-        sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
+        sha512 = "0lwyvximqkf1q5w94x2747nj2v035is66vzalrbl3f2gdh9k1m3m29p8zw6r65ps5784x2lxwz8akmv085l4ai358rwbp84axz59lj5";
       };
     };
     "js-yaml-3.13.1" = {
@@ -5455,7 +5455,7 @@ let
       version = "3.13.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
-        sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==";
+        sha512 = "0kkjjrr0znm2ka89ywc5518c8dw0210z91fm94c7v11l8c96mkjh0ddld5mb7jmmnpzap7vn0fhvr29lma63c9is2ixq3fpp0xxrxk1";
       };
     };
     "jsbn-0.1.1" = {
@@ -5473,7 +5473,7 @@ let
       version = "11.12.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz";
-        sha512 = "y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==";
+        sha512 = "27wagw1v4qv7snvz46q94kvwfzs4p86izsab5rm1bjh4dj18k527msjszrcnvb924sbwk4pj0ncvdqn6jzwydcpvlsi721jgbiz3hyb";
       };
     };
     "jsesc-0.5.0" = {
@@ -5500,7 +5500,7 @@ let
       version = "2.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz";
-        sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==";
+        sha512 = "20bfkjw0zjachan7rfv75dn5ky7l12xhyz919mdhh9fjn395ss454ykknjza7fwyx09dj89makcs1xi341dvv4k1cvj94739ifbp2rr";
       };
     };
     "json-buffer-3.0.0" = {
@@ -5518,7 +5518,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
-        sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==";
+        sha512 = "2pv1kaf7gjr0bhr2djaf1i88li7q3v5daz4zm4hz57i4h21jgryihxb5c2h0p0q1vrq1ffyg279hp0vjrg73shvxr5lir6plxjb5fls";
       };
     };
     "json-schema-0.2.3" = {
@@ -5536,7 +5536,7 @@ let
       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==";
+        sha512 = "1bbgxs4777gn3q3yxi0n792cgz9pimf85pypr0w4wzpb22nr8fl9xi98pkcqd3n4fn7lnzffpq7qwpcl4dqc15py19lwqa2jwgw5dn5";
       };
     };
     "json-stringify-safe-5.0.1" = {
@@ -5554,7 +5554,7 @@ let
       version = "3.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz";
-        sha512 = "c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==";
+        sha512 = "049m3dzsr3mcgk3g8hw79w9lr296zxs0qmmn45ngfzinyxsvqh6k52i49690bfjlhsv16yrs87vh4nh6lfy80xrdh02haicnnczrgvk";
       };
     };
     "json5-0.5.1" = {
@@ -5572,7 +5572,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz";
-        sha512 = "aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==";
+        sha512 = "0xzlb8ipv7y4s06gdr1j09fgp9a8xcjrwy5qq739vgadwzfyslk6xph4f9d8zv7rrc0fg3qn6fpwg3y1mrzf0hbi5qp8yng11cvi938";
       };
     };
     "json5-2.1.1" = {
@@ -5581,7 +5581,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz";
-        sha512 = "l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==";
+        sha512 = "22wbapqjyyia17kracx58ch53wppglmma2r3k2wzfjixnljynv3s7sscdxffl5v70j77j89wvq0ldmpm8xrxdbap3hqs4067mfcgvcp";
       };
     };
     "jsonpath-plus-0.19.0" = {
@@ -5590,7 +5590,7 @@ let
       version = "0.19.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-0.19.0.tgz";
-        sha512 = "GSVwsrzW9LsA5lzsqe4CkuZ9wp+kxBb2GwNniaWzI2YFn5Ig42rSW8ZxVpWXaAfakXNrx5pgY5AbQq7kzX29kg==";
+        sha512 = "29bszfdwjp446whcdh9mivbff8xl1v8jyamcwf6bg96mqr0jaghari3nfjqjrq33gv1di54kz17vrlj0bpakv2wwq0bpx6npjr7098r";
       };
     };
     "jsprim-1.4.1" = {
@@ -5617,7 +5617,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz";
-        sha512 = "iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==";
+        sha512 = "00x227di73g3xvz8pmdhf4ykssibdigbhqw7kr6a22s8w54r7raw71apsc3r2bwda290y3wzsmay0xi59j27lh6icy295ky6a29r149";
       };
     };
     "keyv-3.0.0" = {
@@ -5626,7 +5626,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz";
-        sha512 = "eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==";
+        sha512 = "32ga97c763vprf4sjbb2f7gbngfppq9n1hy4cpq2h4yb1msrhh2zjimxib7p09mzgynm6askbigxlsqsm11p644avp4sf5nmng8f2vs";
       };
     };
     "killable-1.0.1" = {
@@ -5635,7 +5635,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz";
-        sha512 = "LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==";
+        sha512 = "272kk46rkfh4wq4mispvvy174y6fj8rlnf1m5z8pszpa2igz586k5f8vzz3q3nckxwvkcyqzf48sndd48krwzr9ag22mhjlm4nasfig";
       };
     };
     "kind-of-3.2.2" = {
@@ -5662,7 +5662,7 @@ let
       version = "5.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz";
-        sha512 = "NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==";
+        sha512 = "0zk87sccrjx6pgf9n74v4msnqwq5siyhrkpaklx7yk85ygy5ypcgmyfhbd5mmcyd53x8zcw0gzvp9bhbglziqbhp7a6n5zsf6p08q9l";
       };
     };
     "kind-of-6.0.3" = {
@@ -5671,7 +5671,7 @@ let
       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==";
+        sha512 = "23pm3j7jjxhl5igjj2mg91b2w2x6j39axjy2y7b1z0dp9jgnhxl885znwwvglzhnb5ssdc4v5vy04ks7xpwgzllyy1ngdmxbyxbbi3m";
       };
     };
     "kleur-3.0.3" = {
@@ -5680,7 +5680,7 @@ let
       version = "3.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz";
-        sha512 = "eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==";
+        sha512 = "3rh87j32f450qslsmms0br15jzkv6b71n08xsms6wv6qfvdxv1b5cridqb7bmkwmvzffx9asikjs4vh328pmifhqn4iylcjafak6ckr";
       };
     };
     "koa-2.11.0" = {
@@ -5689,7 +5689,7 @@ let
       version = "2.11.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/koa/-/koa-2.11.0.tgz";
-        sha512 = "EpR9dElBTDlaDgyhDMiLkXrPwp6ZqgAIBvhhmxQ9XN4TFgW+gEz6tkcsNI6BnUbUftrKDjVFj4lW2/J2aNBMMA==";
+        sha512 = "0q4rl38fvrdnml9ix2ka3nav9zd8ilxh6738b27nvx4r05y0lb17pjw7la9nqgq0q401alrkv1cyyliig40r88c1rd3jk2195s7v50j";
       };
     };
     "koa-body-4.1.1" = {
@@ -5698,7 +5698,7 @@ let
       version = "4.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/koa-body/-/koa-body-4.1.1.tgz";
-        sha512 = "rLb/KVD8qplEcK8Qsu6F4Xw+uHkmx3MWogDVmMX07DpjXizhw3pOEp1ja1MqqAcl0ei75AsrbGVDlySmsUrreA==";
+        sha512 = "1wfnjmilqj9fhv5dhmhpr5vx38ja1x8599nnqwx2977mhz15ig66fpcyk2rim80l8b77ir6g6w3wz71hppb445gf129kapwa0lzzdmc";
       };
     };
     "koa-compose-3.2.1" = {
@@ -5716,7 +5716,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz";
-        sha512 = "8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==";
+        sha512 = "1grd8vfvlnkpwjj8da79mig7p54842wpxzf2dhkj4dmsjm3yh5afh7kq83pig53xbfg6fbds2iwkypgl7r6naqwblpwdf637bqxdq7h";
       };
     };
     "koa-convert-1.2.0" = {
@@ -5734,7 +5734,7 @@ let
       version = "7.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/koa-router/-/koa-router-7.4.0.tgz";
-        sha512 = "IWhaDXeAnfDBEpWS6hkGdZ1ablgr6Q6pGdXCyK38RbzuH4LkUOpPqPw+3f8l8aTDrQmBQ7xJc0bs2yV4dzcO+g==";
+        sha512 = "3x0wdvpg0jxpv26fd4vqhw116nw797i4pzxsgpwm17yll74h8gyxg25zjnwihnm36lhxs9bb1p5m7bm0qcym4lm2b0z17c0fw6mls11";
       };
     };
     "koa-send-5.0.0" = {
@@ -5743,7 +5743,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/koa-send/-/koa-send-5.0.0.tgz";
-        sha512 = "90ZotV7t0p3uN9sRwW2D484rAaKIsD8tAVtypw/aBU+ryfV+fR2xrcAwhI8Wl6WRkojLUs/cB9SBSCuIb+IanQ==";
+        sha512 = "2fimqkgi0mli0fl0zfcylnbi29939cp2s7q8c60mnqiszbyyp4snkq5v87sfwjv04nkzc48l80jpkp3hdnw24fv6zp9vlpdbssnhipp";
       };
     };
     "koa-static-5.0.0" = {
@@ -5752,7 +5752,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz";
-        sha512 = "UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==";
+        sha512 = "1llav1xa767y46f8dhhapgqyyhc4hg7np4d34lbf0r0gg5fa9gi5lypzmn3q346rmym41g4jm0lb0hsnx6z0lpzmn4pc4aqgv49ib2j";
       };
     };
     "koa-views-6.2.1" = {
@@ -5761,7 +5761,7 @@ let
       version = "6.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/koa-views/-/koa-views-6.2.1.tgz";
-        sha512 = "wU3tw48KuskaJg0x1JZmC73UWGgVmh6B54HuHDzTrkavig+dBI0NbFeGiWsaOCZREQkaTfIVXSPSByDant71ew==";
+        sha512 = "1xzbplyv8h0gli3blaz4k8s148m29iq39mqk1jpdh6qs14x1y5ayimfscy1rvl1wy0ix6hmd1cd9g8bcsbd8c8d4qdckfhaiz1yskf1";
       };
     };
     "lazy-cache-1.0.4" = {
@@ -5779,7 +5779,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz";
-        sha512 = "avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==";
+        sha512 = "1wcm03j1xmwayngclsgc7xk3rfsn8d3lcas6yfxszjpjwa37nwiia213cxkagdfc56anijwb679bg42ak1w59d0bkq6j47wqdpw9wva";
       };
     };
     "left-pad-1.3.0" = {
@@ -5788,7 +5788,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz";
-        sha512 = "XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==";
+        sha512 = "08aih5wmcyaw8f8nxlcf6lhr8synqf7jpvcp0ah2vdkshckvhvw2a8sj2bqkf5dr3fq43rilnq8lj86zhasccqlrb09h0jd6lzlr3jw";
       };
     };
     "leven-3.1.0" = {
@@ -5797,7 +5797,7 @@ let
       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==";
+        sha512 = "3acc4jl6xib9wx3gqgq9wqab262mwjyc8d6aa7igfiyfyami7w4g59b62if7hd8w0zh8k1q3kqkwdxgnqsvyygw6wdaak93gzw5mixa";
       };
     };
     "levn-0.3.0" = {
@@ -5824,7 +5824,7 @@ let
       version = "2.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz";
-        sha512 = "Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==";
+        sha512 = "13mmy8rws80fp5mw0b7qwq5zvvlwq8v20hykp1npzsc5i5sw426j6sgi77js3lrqzbc8b7gjxhsrf26bi8xnn7ii8q64p2wskrspj96";
       };
     };
     "loader-utils-1.2.3" = {
@@ -5833,7 +5833,7 @@ let
       version = "1.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz";
-        sha512 = "fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==";
+        sha512 = "1j5jpk2rz5n0365vhmgknl49zq4sav613jn87b6khghcfsj3xvm2y0zil8zai7rr7wx0fvx1w78297fyiic1yydvq34776xx3qp6jky";
       };
     };
     "loader-utils-1.4.0" = {
@@ -5842,7 +5842,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz";
-        sha512 = "qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==";
+        sha512 = "1sdj0mw1y0adq9fpaafpv91yz2ijx06s6fpzjfs0db47cry0q2xjcahr5aksf6vlxp7ripisvjz21hjkkdzrwh8pc3zm7vdq141czd8";
       };
     };
     "locate-path-2.0.0" = {
@@ -5860,7 +5860,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";
-        sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==";
+        sha512 = "3jbllbkvv54d6k6zss6spzsknz5icscyfclf377jjpndb8mmacq0v9vjr1w07zjn14gaz4d2hfi0yaqk4nvg6hbm16qi70nrkivn0zc";
       };
     };
     "lodash-4.17.15" = {
@@ -5869,7 +5869,7 @@ let
       version = "4.17.15";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz";
-        sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==";
+        sha512 = "3a41cs1932x00vd7h32v6rfkaak3vhkwv4x0bg27ilhlmbpl95r3abc4vja21k42cdfprsy3sdfcp2xs02sfp1fflf7m3n2gd29q4zk";
       };
     };
     "lodash.camelcase-4.3.0" = {
@@ -5914,7 +5914,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz";
-        sha512 = "VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==";
+        sha512 = "093j1mha2zwbfkb6cvxr94l1dsx44607vvyxadxki3j69s40n2f6x6iqs6f9rzpvvqd8anclsqdlrm3klkwxixm4k2fl8bjr4b01qjm";
       };
     };
     "loglevel-1.6.7" = {
@@ -5923,7 +5923,7 @@ let
       version = "1.6.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz";
-        sha512 = "cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A==";
+        sha512 = "3y57kcbhh98x86dpx7apanxgnkqf5chybr4jnwhzljd3k2n9knm5h7fp9aiv6bzpyvq1xg0qssgg3i47ddiz80h7vahfj6hb8n9x3bi";
       };
     };
     "loglevelnext-1.0.5" = {
@@ -5932,7 +5932,7 @@ let
       version = "1.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz";
-        sha512 = "V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A==";
+        sha512 = "3l63lnbnnsg2dgy8c89m5fxgdnl56a04hyiabic65zj4p9dsbh4jykr9jblvn8v7c7wx1a12mjv9gq69zfdfif00mw6q9pf8fmggzjp";
       };
     };
     "long-4.0.0" = {
@@ -5941,7 +5941,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/long/-/long-4.0.0.tgz";
-        sha512 = "XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==";
+        sha512 = "0q7w59j4asw2i6n4hwbdrcigmaz042y2hsm31brmjfp3fg465mgqjmia2giil8kxbdh5ijdx00lv4a8n8lbj6srbziqczr22hmgxhsy";
       };
     };
     "longest-1.0.1" = {
@@ -5959,7 +5959,7 @@ let
       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==";
+        sha512 = "3fhlaj5f55z0d4f45a5vsyz1r5k40qy6mfbxphjgnz8x4jx4d1g4pz4v2793viw0hk04a1a6zbiqxbjsjzhidp9jmmzhngzd8yb2awp";
       };
     };
     "lowercase-keys-1.0.0" = {
@@ -5977,7 +5977,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz";
-        sha512 = "G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==";
+        sha512 = "1a7qa1zn5zl1nf7i6w3299lc3biabfb0w2c30cl770l2dbldvi72nwvjdlinhx7j0ldip82sj710aprdjbmbg782i2pa3jpbgmy6qhv";
       };
     };
     "lru-cache-4.1.5" = {
@@ -5986,7 +5986,7 @@ let
       version = "4.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz";
-        sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==";
+        sha512 = "3k64s8pgffvqc84ar3r2jjvxnrll916m1q6s4m2k8pq2gqvlrzy11hdhvx2662fa4x7h1hcpn9wmy4kk28rgk3sj76w2fpn8dn6armi";
       };
     };
     "lru-cache-5.1.1" = {
@@ -5995,7 +5995,7 @@ let
       version = "5.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz";
-        sha512 = "KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==";
+        sha512 = "3vjhn04mjkxbkfb4fh7xnlghlgmqffqp5i1w2vg1ndgh5izv7nwvr8lq1n1hypfs5pm3bvbk7wf3fjm2pavld1hipz0n8rp012l14ra";
       };
     };
     "make-dir-1.3.0" = {
@@ -6004,7 +6004,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz";
-        sha512 = "2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==";
+        sha512 = "2qkk2yzlzrfwnmw8l80cn4l91rfin7fmqn81j39s32i8gzijilbmc798wy51bs3m5gqa6dgrns95gals771jbbl4s4jgdl9ni3za3fv";
       };
     };
     "make-dir-2.1.0" = {
@@ -6013,7 +6013,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz";
-        sha512 = "LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==";
+        sha512 = "12asfdw6jlwcqjli9xywj755wznjxadmh7q6abrhldss26wdsik8w39dqww20i3ilr9mjam1r80ickwzlp9w7dz15bvqa1wszwmfbrd";
       };
     };
     "make-error-1.3.6" = {
@@ -6022,7 +6022,7 @@ let
       version = "1.3.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz";
-        sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==";
+        sha512 = "2glh9fqac2bycfy6gmvv1r03pr484iglvv5ry3pjm6iz43h6qnkkw2l4sz9ydyadq6hip4wyjpj9jllbshxchh8k6lg5g5vsya23idk";
       };
     };
     "makeerror-1.0.11" = {
@@ -6040,7 +6040,7 @@ let
       version = "0.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz";
-        sha512 = "qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==";
+        sha512 = "1670fzjdl58zpljl3vblrzfz0805w0d99kdhf9rz4cgr1f2g01ibb5s5b1n7w7dqfv8lyig9zcqw2f0gsjlzxxwj4zc939fwn3k1hd8";
       };
     };
     "map-age-cleaner-0.1.3" = {
@@ -6049,7 +6049,7 @@ let
       version = "0.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
-        sha512 = "bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==";
+        sha512 = "3gk1kdfw4z4pjghrxyn53gyb40gbk71ycv5mi2mbidwxg76mbfgkxcn88zkcrjw38mq6vn5kcarw4n5zq79ligh5k1s6gr8fgmg373c";
       };
     };
     "map-cache-0.2.2" = {
@@ -6076,7 +6076,7 @@ let
       version = "1.3.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz";
-        sha512 = "xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==";
+        sha512 = "29ds70y468n42xivsz4vrgy8rp2x4nxz52z1vkd1k49556gvn74pq998s510g3jgz9972m9yxs6yk1kw752blq97b9w8gaddkwlyay6";
       };
     };
     "media-typer-0.3.0" = {
@@ -6094,7 +6094,7 @@ let
       version = "4.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz";
-        sha512 = "qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==";
+        sha512 = "3znrz98ggx92y1crm2y017k8lriwz4m9y4w451wm0h1jzsq7jgpafymdvgpznvx07l3xw8inznd78zzwyxdzhb0aq8scki9iwdrnzd9";
       };
     };
     "memory-fs-0.4.1" = {
@@ -6112,7 +6112,7 @@ let
       version = "0.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz";
-        sha512 = "jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==";
+        sha512 = "0cgni6pl3js3s6ylnj3j9sydf6z5sbnpyi42xdh4437rd6c7xgbapzdq84wn8dzxrcf7sva66z7m6mna61sdagfs41078aa9rsjn3cc";
       };
     };
     "merge-descriptors-1.0.1" = {
@@ -6130,7 +6130,7 @@ let
       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==";
+        sha512 = "3gyvijjr3va5jwglqgv7sqxm4a6nhzhj32sl68ffjf8axkzi5z25g0nl2r2mvw1kjs3z49wxjdclljkk4whzpqka4vzjg9fwylgzfv9";
       };
     };
     "methods-1.1.2" = {
@@ -6148,7 +6148,7 @@ let
       version = "3.1.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz";
-        sha512 = "MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==";
+        sha512 = "1r9rsac8gdslsplya0cnzyk6q0bh7m0wnxccdisacr5327k5k0v6f48dzp0022z8qqpzpvxw7sv1gzhvrqn6v5sz7qcvx37by1a8s1i";
       };
     };
     "miller-rabin-4.0.1" = {
@@ -6157,7 +6157,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz";
-        sha512 = "115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==";
+        sha512 = "12277knznlw4myxmgg6vgkrwmrhj9dyniscrlph3s08ndi2q25v3wrv6rwanvz29v5k5x756xa5yif4xllrghpn3jqaamnr3cp5ypnp";
       };
     };
     "mime-1.6.0" = {
@@ -6166,7 +6166,7 @@ let
       version = "1.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz";
-        sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
+        sha512 = "1x901mk5cdib4xp27v4ivwwr7mhy64r4rk953bzivi5p9lf2bhw88ra2rhkd254xkdx2d3q30zkq239vc4yx4pfsj4hpys8rbr6fif7";
       };
     };
     "mime-2.4.4" = {
@@ -6175,7 +6175,7 @@ let
       version = "2.4.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz";
-        sha512 = "LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==";
+        sha512 = "0c4qs0w88nqz2v7441rw9bbsgrsh50cifwmqm2i7c96yz2ncdy35cb5g42zhr6z0wmqqcwq5la04nnf1n4y3zncvgyg8b721hvnc71d";
       };
     };
     "mime-db-1.43.0" = {
@@ -6184,7 +6184,7 @@ let
       version = "1.43.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz";
-        sha512 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==";
+        sha512 = "36x3p6lll5v1g7na92kbba0bpcl36i1argsqn8iy4mgz3zh3llnqhzhfw0l26jqcb0mh9rhhmrx718kvqzchga6y79qdg9884c6r5zv";
       };
     };
     "mime-types-2.1.26" = {
@@ -6193,7 +6193,7 @@ let
       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==";
+        sha512 = "1cxsgrndjg6jyfqzm74hv6cmy9lil52f1kzkq2niknaiqz20p3yiw0fpgsyld2zrbxr9abpdabz1q6nqa50xr9a0cmbjbi0cqymlnnk";
       };
     };
     "mimic-fn-1.2.0" = {
@@ -6202,7 +6202,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz";
-        sha512 = "jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==";
+        sha512 = "1clrrqw75rmpkw0x53axy8va2hq2gzynz9zb58m0xv1nh3lg81cv4dfdy7pk9vrlb9ydwmj6klpicwkv2bjx3m8aj4fi2ph3jxkizwd";
       };
     };
     "mimic-fn-2.1.0" = {
@@ -6211,7 +6211,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz";
-        sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==";
+        sha512 = "1r8csnc32c6rrvy8d5d1g33gba52m1863wdwl7qbancmzn795726im9mrwp20k3d8pl4x4msp7n6wpldvcwkmk5y4cy0h84ka9wx9is";
       };
     };
     "mimic-response-1.0.1" = {
@@ -6220,7 +6220,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz";
-        sha512 = "j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==";
+        sha512 = "32nwz24nh1f2nbpk8i638ff8hsg1ajmc6746abkssjr951z28362k5a92dd1cfr7bd1l9f507cn0pbam04ixfgsaygskv87g6v1r4cg";
       };
     };
     "minimalistic-assert-1.0.1" = {
@@ -6229,7 +6229,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
-        sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==";
+        sha512 = "3y39pa1xxg7j49vya7xca4p1mg89d0df56hj4yjhpyhmza3g5qvpgp11xs11wkd48zzy7ym970jfbn0ppimmczpijns249j7q05rljj";
       };
     };
     "minimalistic-crypto-utils-1.0.1" = {
@@ -6247,7 +6247,7 @@ let
       version = "3.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
-        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+        sha512 = "1879a3j85h92ypvb7lpv1dqpcxl49rqnbgs5la18zmj1yqhwl60c2m74254wbr5pp3znckqpkg9dvjyrz6hfz8b9vag5a3j910db4f8";
       };
     };
     "minimist-0.0.8" = {
@@ -6265,7 +6265,7 @@ let
       version = "1.2.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
-        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+        sha512 = "0pif0kjsr0cdm73cyicn9xdx9zkly45w4akmyfa39lkaf6lzysfr8kr145p54wjk26pbsk0w0qfdds3k4bxy4wl5l210i1b8qsngkql";
       };
     };
     "mississippi-2.0.0" = {
@@ -6274,7 +6274,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz";
-        sha512 = "zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==";
+        sha512 = "2gnigixsj38hrqchkf6k8wqywihq6l14pg0qb23x3qpjn56vybljv3nz1z7cbzhl952h1xfw28vsqm09pjhpv9zs9sm43rdxazkqync";
       };
     };
     "mississippi-3.0.0" = {
@@ -6283,7 +6283,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz";
-        sha512 = "x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==";
+        sha512 = "2895y9fw0xa9bmwbbkv3ziz5gnvr2b9k6kgh1b815ppwhgpcnbzsmn3bjvd2c1852hfakgnxw5hbn8kr8ff1pfbnm8x0lk3qm5gb3n7";
       };
     };
     "mixin-deep-1.3.2" = {
@@ -6292,7 +6292,7 @@ let
       version = "1.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz";
-        sha512 = "WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==";
+        sha512 = "08fzp03g97vcq1dm4qs3kfjbazfs8h2m99bzdhn9caddpi4xr9bw9n9adlrv24qwfdw2jphwfhjszdwnykawd3ysj4ihp76zygh66jr";
       };
     };
     "mkdirp-0.5.1" = {
@@ -6310,7 +6310,7 @@ let
       version = "2.24.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz";
-        sha512 = "bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==";
+        sha512 = "111s7ki890wwh47hr44ps1q5vsh23jpp56dlgvyzz7hg71np9xkrc7k683qvfs7zyijb9fdcwzvinjcnbz36lhn0hg2hhknm7xxypkd";
       };
     };
     "moment-timezone-0.5.28" = {
@@ -6319,7 +6319,7 @@ let
       version = "0.5.28";
       src = fetchurl {
         url = "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.28.tgz";
-        sha512 = "TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw==";
+        sha512 = "0zr752vsxhfbfh884hzz8xbqkvs2l5778qwrkl7gxihdasi2ni80w61hvp858xclvgmcqgl2v8z1pjkffj5cbcihdb8aa1jy1k68cjc";
       };
     };
     "move-concurrently-1.0.1" = {
@@ -6346,7 +6346,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
-        sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
+        sha512 = "352z145jr1zx0w6kmlz2jxcaw6j2pwwg9va3x4gk731zw1agka2b213avw12zx6hgn071ibm0f3p80n5cdv896npay4s6jwbrv7w2mn";
       };
     };
     "ms-2.1.2" = {
@@ -6355,7 +6355,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
-        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+        sha512 = "3dqfiiw6nxvvi24fndbzlccnjcas99bsd1kz5m2r78lzgpp6vx57jzbmxq3k1m7bsw88rwra0n4848l720fxxn5x20djck3wp3hysdh";
       };
     };
     "multicast-dns-6.2.3" = {
@@ -6364,7 +6364,7 @@ let
       version = "6.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz";
-        sha512 = "ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==";
+        sha512 = "3m42kr8y2s1krl4gzb5xsa9v3h01xalvrgdkj99gyfaq7761asmj5m6kzm70mxb22125gia12g7rmarnzmh09403j8j2cyvx7jqjblf";
       };
     };
     "multicast-dns-service-types-1.1.0" = {
@@ -6382,7 +6382,7 @@ let
       version = "2.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz";
-        sha512 = "z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==";
+        sha512 = "3cpmwzmngnmxhklvicnsbl5dchvsy0yikzgf705cq1cplyps3waa03xbjp306bjf167wnplibwki0csnavz98dihq2877g7xqs4dkfg";
       };
     };
     "nan-2.14.0" = {
@@ -6391,7 +6391,7 @@ let
       version = "2.14.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz";
-        sha512 = "INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==";
+        sha512 = "115f4m91pjscflwskc29clsspd2z02gdbz0dbj63ja8bf67nraw14gvppl4872y9z2f5vbjlkpg1i4625zvalx3gp04vvn2gs7qblr0";
       };
     };
     "nanomatch-1.2.13" = {
@@ -6400,7 +6400,7 @@ let
       version = "1.2.13";
       src = fetchurl {
         url = "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz";
-        sha512 = "fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==";
+        sha512 = "04al0wvh9hw1p9bblk847c5nbi3lcjz2pg5yzpqdzgllk57firrqinn4yk169iddaagdf9s5l987xh43z87w3hm9h0pqv0i7pcix6ky";
       };
     };
     "natural-compare-1.4.0" = {
@@ -6418,7 +6418,7 @@ let
       version = "0.6.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
-        sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
+        sha512 = "0xi79rad0khwah5v2k6pvh8ajjgi7hp3zlkg6gk11pv70ydcq7li0kzcv1gnaf13gmblzhvx7hxs2nhypphb0sp4cggiy4ympndr5c5";
       };
     };
     "neo-async-2.6.1" = {
@@ -6427,7 +6427,7 @@ let
       version = "2.6.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz";
-        sha512 = "iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==";
+        sha512 = "1kvffl97cs76iidch6z424p50m0wdryx6h6b1jdgr71bfg035szlxcdl6dz9jy71aj8msvprdq2ilbs9jisbim3g1b4l2bfy3qsc9lb";
       };
     };
     "next-tick-1.0.0" = {
@@ -6445,7 +6445,7 @@ let
       version = "1.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz";
-        sha512 = "1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==";
+        sha512 = "0swp764n5mcgqfjbm3hsw9iayqy46490y4lvqyk6www0a02bw130mji8lvsvlr34sc29rai5i4vpwwhh76mzplf6ljrlvwyszjphy6n";
       };
     };
     "node-forge-0.8.5" = {
@@ -6454,7 +6454,7 @@ let
       version = "0.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-forge/-/node-forge-0.8.5.tgz";
-        sha512 = "vFMQIWt+J/7FLNyKouZ9TazT74PRV3wgv9UT4cRjC8BffxFbKXkgIWR42URCPSnHm/QDz6BOlb2Q0U4+VQT67Q==";
+        sha512 = "3nzl12m7r7d345xjm7a1kq3yjdwfa9x892djy3444h7jaav25zmzh0bcg2f24ympwh7qmyihgpx7b2dgpka52nw5k2zw9vydchi0lxw";
       };
     };
     "node-forge-0.9.0" = {
@@ -6463,7 +6463,7 @@ let
       version = "0.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz";
-        sha512 = "7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==";
+        sha512 = "0lhlm8x38i28zwmjycgdcyzcqlb0x3z8scjx7vm3s4ypj99bfj7pmv18yxjsnz532z7g9li2aa1x54hbv61dmvbvm4yj3z9ml6rl17c";
       };
     };
     "node-int64-0.4.0" = {
@@ -6481,7 +6481,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-jose/-/node-jose-1.1.3.tgz";
-        sha512 = "kupfi4uGWhRjnOmtie2T64cLge5a1TZyalEa8uWWWBgtKBcu41A4IGKpI9twZAxRnmviamEUQRK7LSyfFb2w8A==";
+        sha512 = "3qb1g8mkwn2vfqj84a62sp2dfg52334f3dj7ab240w51qrf2wl2s62qjvjz46jid9r3dmasxs0hp1zbjgnqkbg9kiii8nl6if5mzslj";
       };
     };
     "node-libs-browser-2.2.1" = {
@@ -6490,7 +6490,7 @@ let
       version = "2.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz";
-        sha512 = "h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==";
+        sha512 = "3jhlmpgvcnjkg1bh3qp6rqp4a4plsih4bcfqkg0by0acj58r2m1x1jlsgw1k114920vlsvwl563lfjh844mpm02ykcs14gxq47xrz47";
       };
     };
     "node-modules-regexp-1.0.0" = {
@@ -6508,7 +6508,7 @@ let
       version = "5.4.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz";
-        sha512 = "M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==";
+        sha512 = "3qq3cn12n130r2k8aldr2fn3afv21m8ichf87yj7nfp251ypmb5kv9vxs70k93g9nr6164l7crvyzmw4j6b3lr8yj5f739qrcch319k";
       };
     };
     "nopt-4.0.3" = {
@@ -6517,7 +6517,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz";
-        sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==";
+        sha512 = "0mb9va0ag1n8v5c2lhza37prcw4iyrmbw5n6yglk1kcg95xwqi9ng5dqwr17h63sl5dba2rnwwrzz7dnfvkx5z75h4j7d9kag0qdxha";
       };
     };
     "normalize-package-data-2.5.0" = {
@@ -6526,7 +6526,7 @@ let
       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==";
+        sha512 = "1wbwhlsm965n61y23wrm50ric9l7rig90wvx7hjdl34np6n1bbqcc67wgm494z303s6y5aj4xjyism3n6kikp40iz9qaizlfhvqr47z";
       };
     };
     "normalize-path-2.1.1" = {
@@ -6544,7 +6544,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
-        sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
+        sha512 = "0n301s7qa4645iyk3zpcgin8r19p0p8h8g50c3mnnrl9n3m9rpyxv79hjl6miix9daq12s69am1sbskhqnzbabmn2id0nippgj6rrp9";
       };
     };
     "normalize-url-2.0.1" = {
@@ -6553,7 +6553,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz";
-        sha512 = "D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==";
+        sha512 = "0rykwifg14xfgm9m6md48rkqqxa2cya4xdsv7jjciacis2nz6dzaccpzyldlpvy14rvihpxbdiysfn49a8x8x5jw84klmxzh9di98qg";
       };
     };
     "npm-run-path-2.0.2" = {
@@ -6580,7 +6580,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz";
-        sha512 = "h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==";
+        sha512 = "22vnwmwzxgzp9flhivwzrsa2jr754ysi133p4wdqdfgvg1mvhbjh1hv7ahbl7i2m7zv4vs6higga9c1gydywvwsi53y47qqvjsilq47";
       };
     };
     "oauth-sign-0.9.0" = {
@@ -6589,7 +6589,7 @@ let
       version = "0.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
-        sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
+        sha512 = "1jz644r7ybsq688ifahm64ih3ljqjjskm533bgir20pvc350f9cl0z162scih0r1idx8lpw5f8hxa2pkf0lhbdhr5y6ak2ga5863v3x";
       };
     };
     "object-assign-4.1.1" = {
@@ -6616,7 +6616,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz";
-        sha512 = "OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==";
+        sha512 = "06crm6ynp4rxakk4frrb4kjmi758r38fs5h0f6b7giyxhj0dghb6mdx7sbp0nhnk2w8cyb1bli07d9nbm086i34j8yx641qjpzawarr";
       };
     };
     "object-inspect-1.7.0" = {
@@ -6625,7 +6625,7 @@ let
       version = "1.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz";
-        sha512 = "a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==";
+        sha512 = "19lmsxagwl8zzqckw6p0bdjwjbq2bshicnw78az9ka40d0gjghmdm0ify1n3857fxadv43c6v0g27rk1dl514iwh40a5i3mv0fl9fkb";
       };
     };
     "object-keys-1.1.1" = {
@@ -6634,7 +6634,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
-        sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
+        sha512 = "0nf2rr25ncya39v7cq274x3w4drfbdrc3iqdwd017s1wndwh9plsjagbvhl6j6l6piipprdsvgfx4vfz8q2piz7bi4bjcll8d4h9q1n";
       };
     };
     "object-visit-1.0.1" = {
@@ -6652,7 +6652,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz";
-        sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==";
+        sha512 = "3krdp08gvbxvipalq64qy7bm86znxxdb7ap6bjki235qs17i9fsn6hqd22ga31sqyqa6iyy5xjfnnqc7lsck1kaybwsh154mrxcj4bv";
       };
     };
     "object.getownpropertydescriptors-2.1.0" = {
@@ -6661,7 +6661,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz";
-        sha512 = "Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==";
+        sha512 = "1b08dy2xs3gqhwviks5245b0m3fa6kkdcqi8wldr5cfvkpgwbvdx474k9y5cjnsf2z075gysifxsc39i59fslxrl55kgpa03xmcx7b7";
       };
     };
     "object.pick-1.3.0" = {
@@ -6679,7 +6679,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz";
-        sha512 = "PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==";
+        sha512 = "0vcjqppr8sr1in2haifxl9q8v6kgn8pddc4ffkjbx5n2fasb3kdrx7mybkfxqdaqfch2hqrwa87rrwllqd5lrmx73md609682xp0z9x";
       };
     };
     "oidc-token-hash-3.0.2" = {
@@ -6688,7 +6688,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-3.0.2.tgz";
-        sha512 = "dTzp80/y/da+um+i+sOucNqiPpwRL7M/xPwj7pH1TFA2/bqQ+OK2sJahSXbemEoLtPkHcFLyhLhLWZa9yW5+RA==";
+        sha512 = "127wvn9pnb5jjxqhkr54w07z6s0njlqvrv4k8cnn2vf5y4hpbykcl2cyn8yw8zwqhzv6bqikhza5nkhmv1zm8kgpazddzgj9zryjg3m";
       };
     };
     "on-finished-2.3.0" = {
@@ -6706,7 +6706,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz";
-        sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==";
+        sha512 = "2n6994y8y4b146a5wpzzgw779yc227cqkmwsifc3fbn2kc9dzypjigqf72bpgsqrk7gs93l6fk4iqdk752jnsnpr89j58sbabw09455";
       };
     };
     "once-1.4.0" = {
@@ -6742,7 +6742,7 @@ let
       version = "1.5.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz";
-        sha512 = "goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==";
+        sha512 = "2yg0r89kjihas5gr319kw75b6bjalmhpy6yfabd8g7vnldsddnnwsdbzb3942c9c9zrbz8pwa17an3rkcb8nwdd8lw72l9njz5i51l2";
       };
     };
     "openid-client-2.5.0" = {
@@ -6751,7 +6751,7 @@ let
       version = "2.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/openid-client/-/openid-client-2.5.0.tgz";
-        sha512 = "t3hFD7xEoW1U25RyBcRFaL19fGGs6hNVTysq9pgmiltH0IVUPzH/bQV9w24pM5Q7MunnGv2/5XjIru6BQcWdxg==";
+        sha512 = "339via1h7paxj3qwnzzs6p7x4r3p51k55pc6z85dpzk2gslhp84fnwa4scgcaib9xai7smcc5y7vgb88p20awllvda6v8a4ph7lay5p";
       };
     };
     "opn-5.5.0" = {
@@ -6760,7 +6760,7 @@ let
       version = "5.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz";
-        sha512 = "PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==";
+        sha512 = "2qa90jg1bw4yx1an6vbx2cp7lpk6xwa94yrbr6mkpl2h95wl4iinlmlzzy2z5ihm79d4ypkjkf3w5m7cjl79775amsbav5x021fk89y";
       };
     };
     "optionator-0.8.3" = {
@@ -6769,7 +6769,7 @@ let
       version = "0.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz";
-        sha512 = "+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==";
+        sha512 = "1n905a6d9xvmaqhy1xvpk4m7amkpx4wmky0w9764biihzkgachffm975qq5yqy4qjri2pbrrck994dsnz4ipmv4kbb7b4wx02jbv1gq";
       };
     };
     "ora-3.4.0" = {
@@ -6778,7 +6778,7 @@ let
       version = "3.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz";
-        sha512 = "eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==";
+        sha512 = "1i331n8qj60jz6f51yfczwaspwsj57sykmgj34cwzhvlp761l2rx1iwqd247xys1749hhddfp6mmzznfp32dxqkjkl5ffsvsfwhgp3q";
       };
     };
     "original-1.0.2" = {
@@ -6787,7 +6787,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/original/-/original-1.0.2.tgz";
-        sha512 = "hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==";
+        sha512 = "038qn5613vi5gjik4pmng7zf2ib4w81hjyzy9dhflj7kw1p1ll09nq63x9rnkyyflkv33lq8bx0fbw1gzlpp4asy24l7adam2bma847";
       };
     };
     "os-browserify-0.3.0" = {
@@ -6814,7 +6814,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz";
-        sha512 = "Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==";
+        sha512 = "3frcfnhc4914snsnfqyqrz253i5dd31202gbx4dzkp6bvc8f7wnqhfyc89zp662v016gdqa7wb1z2g6p8nzk6cxzwscwn0qii3pgjb7";
       };
     };
     "os-tmpdir-1.0.2" = {
@@ -6832,7 +6832,7 @@ let
       version = "0.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz";
-        sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
+        sha512 = "3ddw0y41pxv08ls5xhmq1bi81hppjbr45k78cjfx99vznh5znrj5g1b1wab9caj1mqlsvmfms0zm9cfb47ygm0d8wv5fccx8049q9fh";
       };
     };
     "p-any-1.1.0" = {
@@ -6841,7 +6841,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-any/-/p-any-1.1.0.tgz";
-        sha512 = "Ef0tVa4CZ5pTAmKn+Cg3w8ABBXh+hHO1aV8281dKOoUHfX+3tjG2EaFcC+aZyagg9b4EYGsHEjz21DnEE8Og2g==";
+        sha512 = "3da1hqkqhwx9xiw283nnq04pvsj1a69k7k0np5126v33dmpgxyhg19s99bz6djzd6sp713yg02h3h636wlgi9v2099rlrq2mrajvz8i";
       };
     };
     "p-cancelable-0.4.1" = {
@@ -6850,7 +6850,7 @@ let
       version = "0.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz";
-        sha512 = "HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==";
+        sha512 = "02ipk9sgz2q0msm9h53lxbjvqprh9k6zj8q21dvczv6p6a5d4q5yqcmwj6xm0icmdc94n42plfmwlymnqn4f15pgci5j1zgq81vbmhw";
       };
     };
     "p-defer-1.0.0" = {
@@ -6895,7 +6895,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz";
-        sha512 = "Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==";
+        sha512 = "0z3jpi001p4scg2h40kyy7mjvscz8l9mpdp79lhk9b19lyiz140gbwi8963dr5nrysmkrl0hy52v6ikg2wzfsmk8m6ccasgak1b8xb3";
       };
     };
     "p-limit-1.3.0" = {
@@ -6904,7 +6904,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz";
-        sha512 = "vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==";
+        sha512 = "3sh18calqxbww99pxc84hldflmj0i915g8npihlmazw8wjqabihi9475v0ll3fhx44sxn35j014j1k5d2xr73q3mpwkmx09n2q1gxxy";
       };
     };
     "p-limit-2.2.2" = {
@@ -6913,7 +6913,7 @@ let
       version = "2.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz";
-        sha512 = "WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==";
+        sha512 = "36v4kvifp6msn6gaal1pgwy5qi56fbv8295221a6araml7nzxsnw2jfy7i6k7ybxy3dida9xxnyx447s8i8f15m27xklacwfz27wr2q";
       };
     };
     "p-locate-2.0.0" = {
@@ -6931,7 +6931,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";
-        sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==";
+        sha512 = "14sa2r3zdhvy3sq757d4l21nxrlb7picyigb8zm956bbjadcv22chrfa95wzzrf28z0cyj62b6yihhdc9508q82gs2q3yz8yk1pdvf7";
       };
     };
     "p-map-2.1.0" = {
@@ -6940,7 +6940,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz";
-        sha512 = "y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==";
+        sha512 = "0bx813aqd3627xffp035h9nimfd19i0l6may47yd0k7x2bngiyp8z31im58ac1nnxy3gdb3yiilagbyqlb7qwc8wdw06f3wjwmgqxnb";
       };
     };
     "p-reduce-1.0.0" = {
@@ -6958,7 +6958,7 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz";
-        sha512 = "XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==";
+        sha512 = "3gknqxqyn23vmgcqsvnvspzynkbkfn74f3plq72wj54kcyy5f3mbq3lw8pj2gwpmbkqcv7w0wvk3vv54dlny5j5dgv48khkwviqckjw";
       };
     };
     "p-some-2.0.1" = {
@@ -6976,7 +6976,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz";
-        sha512 = "88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==";
+        sha512 = "0h1wg3bw3pyf3vlnxxfnrs3h33lwbx5n1lz4cz8ivh7bi8vjd6makxf6p1xz1d70ww3gj2ghryhbg6w1myxacgirk51ym23qzksdizk";
       };
     };
     "p-try-1.0.0" = {
@@ -6994,7 +6994,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
-        sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
+        sha512 = "1skmb50xzdk3qzd1f9l5mw8xp29frkizl63bhb9l1amivqybqb23n2824906vx790hjlwyhhrfzpzr5xr6ilzvy1xyl0ly0ah0wz2a7";
       };
     };
     "pako-1.0.11" = {
@@ -7003,7 +7003,7 @@ let
       version = "1.0.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz";
-        sha512 = "4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==";
+        sha512 = "1imm2ygnj1himskq6lblzdh3ngc6p9gkvhrbzivalqf3nwafzfglpmbh8wkaz0rsiaxh67jzxbb16m2ygapfcnfwqg9gkdqzkqc24p2";
       };
     };
     "parallel-transform-1.2.0" = {
@@ -7012,7 +7012,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz";
-        sha512 = "P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==";
+        sha512 = "35gr4098wc5ibbrpckgva8l9v50z6mcii4y3kv6wc1ymz3aj2i444y3m2qm2ngf0k02ylqkg3gn7g6awkqfs56ppljy5wmpifcd4srz";
       };
     };
     "parse-asn1-5.1.5" = {
@@ -7021,7 +7021,7 @@ let
       version = "5.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz";
-        sha512 = "jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==";
+        sha512 = "16n59f599pq8832a6c5wyxnqdf4vrqrdnclzs6vp9m2z2h9qmxamjk6xcrl1aal758jyba0pvyz1bkf7npm7achfxxa29jwaygihhwf";
       };
     };
     "parse-json-4.0.0" = {
@@ -7048,7 +7048,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz";
-        sha512 = "VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==";
+        sha512 = "0a10cnny1cy9csxrw2736fjbhqp0jqv8hnghr7gz9jrlkclw91f8rzg1173b43b3dbc1qq68g7vy4hq4b45r3bmw5j52kvpwxw7pdjn";
       };
     };
     "parseurl-1.3.3" = {
@@ -7057,7 +7057,7 @@ let
       version = "1.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
-        sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
+        sha512 = "2lzxqjq4zp60k9gbskpqz7pr1yvb0c6nygd42sia7n6km2gc0cc844nlc5d6r9sshrjhjvs284143jzvz9wzd4r6xr9dz2k24xrwb0a";
       };
     };
     "pascalcase-0.1.1" = {
@@ -7075,7 +7075,7 @@ let
       version = "0.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz";
-        sha512 = "BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==";
+        sha512 = "2avzhwqw37c6l7a0f276z7qzchzhwppinxhgg6q7by5bskwb7q7sfhwijb6fx4ingbdzb4i1pw6la5pg0izb5s4z69268278gil1ah5";
       };
     };
     "path-dirname-1.0.2" = {
@@ -7129,7 +7129,7 @@ let
       version = "1.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
-        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+        sha512 = "37qw5986wccpwwqckqky509s4nd6zwv200s9r2v6mcf5nsyxgf2x00m4yp918mkkz84sdh4q0kjbg0hhfq4flpz0l6v47hvc57qwa8r";
       };
     };
     "path-to-regexp-0.1.7" = {
@@ -7147,7 +7147,7 @@ let
       version = "1.8.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz";
-        sha512 = "n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==";
+        sha512 = "1a1s16c1sx28yq8nh8sqkj9izaypszmxfk27x5hl1wid9611b5viffw9vbwqw6sik20ksgmh18dqndglbvq82dii4jl0aal353ck3cz";
       };
     };
     "path-type-3.0.0" = {
@@ -7156,7 +7156,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz";
-        sha512 = "T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==";
+        sha512 = "2z1csf4c3fmlwl0ahk533z5zqkjdf36ccfx11kakl9xran9f5asxm4cxjq4lx1kwqdp8gki786cgpldvgrkvfc7pcvh07j5ssqm8rjg";
       };
     };
     "pbkdf2-3.0.17" = {
@@ -7165,7 +7165,7 @@ let
       version = "3.0.17";
       src = fetchurl {
         url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz";
-        sha512 = "U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==";
+        sha512 = "2s4nd3yv3kkyywvh5rkrvbr6w2h6a4q786v548w895ralcq9cllqzyxr0jgxf911k3zpmzycimsg3ggww3lkrhd3bk9wribrgjaby2k";
       };
     };
     "performance-now-2.1.0" = {
@@ -7201,7 +7201,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz";
-        sha512 = "uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==";
+        sha512 = "3d9a1zsv7ca8ffpp7ffl67vp0ahiq78ix1jl21b4nfklinh2ilwh6c45f93syclab0b49p3cfq8d4agpphrbmf6xgfxgzjv268387xq";
       };
     };
     "pinkie-2.0.4" = {
@@ -7228,7 +7228,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz";
-        sha512 = "WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==";
+        sha512 = "0caxkzsq2j5ypg50bxyjcbyz66cpicl6gay0pzaskr5gwjf6m239v6qmydj5kwr15n1j5mdf8n24q22cnn4rxp7gmk7n8yc6qnnmqss";
       };
     };
     "pkg-dir-2.0.0" = {
@@ -7246,7 +7246,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz";
-        sha512 = "/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==";
+        sha512 = "2znan90js3xrk8a8cvzv7vrjma5dgr9hkk4kpcgciyawbjz404a4rpdj6gngx1dc7f1xzmfm3q0an1rq69qyk2cmawhsy98i40pnkpw";
       };
     };
     "pn-1.1.0" = {
@@ -7255,7 +7255,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz";
-        sha512 = "2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==";
+        sha512 = "2fgy9i99qaapk6lrqsf0i396i0hw5prvpn2wwsccs7j9jz8960r59vjz98kjhfiif2pyf4fiizrwpminc29rdhpld2v8m7n18hxm8fs";
       };
     };
     "portfinder-1.0.25" = {
@@ -7264,7 +7264,7 @@ let
       version = "1.0.25";
       src = fetchurl {
         url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz";
-        sha512 = "6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==";
+        sha512 = "0388smj2gw4cwp6pddy75jr5x6sha60s4w055dpxpag7fi9ql9vxrkidnzc1v5h2zp6ra350y8q4n6lqsg0dq12blsm1iavf2f4jjg8";
       };
     };
     "posix-character-classes-0.1.1" = {
@@ -7300,7 +7300,7 @@ let
       version = "1.19.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz";
-        sha512 = "s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==";
+        sha512 = "1xv5n13ms7da26nl80isb703rvq4nwrpqsz4xh8z4bakjh79c631x9pnjrqfhyc77bcjr818yclpxzlq4k9qbh4dr78s87z7g4ficxk";
       };
     };
     "pretty-2.0.0" = {
@@ -7318,7 +7318,7 @@ let
       version = "24.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz";
-        sha512 = "00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==";
+        sha512 = "2f2qn4f43m108j6kw127wvywyyci2c5jdrnfb093ql7f626hwz0qh5z4nwllgpzs4gvdc7l5ljxy2xamzk85xsdgv6rls4791jlqink";
       };
     };
     "private-0.1.8" = {
@@ -7327,7 +7327,7 @@ let
       version = "0.1.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/private/-/private-0.1.8.tgz";
-        sha512 = "VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==";
+        sha512 = "2dgznnpxsgy9bgp4kfby1is72blvca4lhmqb3nlja8yiig1v52c12p5yw0aag8jqazhkqvihpxmqf9gsjlg5dr1jb56jxzgnqrazy2n";
       };
     };
     "process-0.11.10" = {
@@ -7345,7 +7345,7 @@ let
       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==";
+        sha512 = "1mgan8li4i2l4y7lsr7snks85n6xg5x693cqmzpid3fkk9br7v5xzgvh1zlfs08zkxn6s0n6qhykr64mszjfyxd77dhmdi1jhx992yy";
       };
     };
     "promise-7.3.1" = {
@@ -7354,7 +7354,7 @@ let
       version = "7.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz";
-        sha512 = "nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==";
+        sha512 = "17cn4nns2nxh9r0pdiqsqx3fpvaa82c1mhcr8r84k2a9hkpb0mj4bxzfbg3l9iy74yn9hj6mh2gsddsi3v939a1zp7ycbzqkxfm12cy";
       };
     };
     "promise-inflight-1.0.1" = {
@@ -7372,7 +7372,7 @@ let
       version = "2.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/prompts/-/prompts-2.3.1.tgz";
-        sha512 = "qIP2lQyCwYbdzcqHIUi2HAxiWixhoM9OdLCWf8txXsapC/X9YdsCoeyRIXE/GP+Q0J37Q7+XN/MFqbUa7IzXNA==";
+        sha512 = "0sdg37c3assj1gk6ybvyhzvkp891zqq7xqj34gcl41dnqgxyl5skijyf75pz5mhfi7cz8315id6430wnr4231yarpfqdhc21jazd0x8";
       };
     };
     "proto-list-1.2.4" = {
@@ -7390,7 +7390,7 @@ let
       version = "2.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
-        sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
+        sha512 = "0xy6dm0910h3nsa0ik45yccdfm6f84nl3h9dpkb22crqhdr3mmiczcbrq9z53gq7l2ijxhxi3pzsfzafrzymw4c1nn68ml1y2pdy7vn";
       };
     };
     "prr-1.0.1" = {
@@ -7417,7 +7417,7 @@ let
       version = "1.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz";
-        sha512 = "5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==";
+        sha512 = "0whj0m29370fn3imrlj2dw0xmr33j2gn30kn96xpxckz7i1b21pj6vlgsn4ggxl79mz2ckng5mdxbkczcwkjry497s8xkgw7c815nz4";
       };
     };
     "public-encrypt-4.0.3" = {
@@ -7426,7 +7426,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz";
-        sha512 = "zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==";
+        sha512 = "3qnsvs746b98ifyv12qj1g6hl6fq25vip5mswhvn3gnl7r32fids6mw3jb0gdcqrrl5x9ik475sf0vx6mbhmif49idkwjwrhbr5lnnd";
       };
     };
     "pug-2.0.4" = {
@@ -7435,7 +7435,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz";
-        sha512 = "XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw==";
+        sha512 = "2zis5am87x72261l3vnqzms2cybdk6bc8kqa6xdjxd337yayy3c4h3s3zm175iv61h3p2pvzpl40qs7g17vnrwg5wrx5s72bc71l6jy";
       };
     };
     "pug-attrs-2.0.4" = {
@@ -7444,7 +7444,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz";
-        sha512 = "TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==";
+        sha512 = "08vr4ngaa625x9jh03hs5alwzwlbw9wpgsxppr9r1vl28y3f8kyr4xis9li3dxpinrqacz4vnnwqidms56qvw2xf74z0l6ncikpi9jd";
       };
     };
     "pug-code-gen-2.0.2" = {
@@ -7453,7 +7453,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.2.tgz";
-        sha512 = "kROFWv/AHx/9CRgoGJeRSm+4mLWchbgpRzTEn8XCiwwOy6Vh0gAClS8Vh5TEJ9DBjaP8wCjS3J6HKsEsYdvaCw==";
+        sha512 = "05xmnv15k0jm1wyvk92ih7wlf6w3l17qja8f59gjl101lk1lp5hw34bqb2rzi1l8wlvi1cwnncbhvsaj6biha0q17yiy7y0zxd8a4wi";
       };
     };
     "pug-error-1.3.3" = {
@@ -7462,7 +7462,7 @@ let
       version = "1.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz";
-        sha512 = "qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ==";
+        sha512 = "24id0x6g1wh6gq1b72ibrp653d0knzzlg0aqsfap9m7cqsx49vvn1ma5ghs67q98wbjfig18irgp42gdnkq0jf1b1069nlg8j2dhkd8";
       };
     };
     "pug-filters-3.1.1" = {
@@ -7471,7 +7471,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz";
-        sha512 = "lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg==";
+        sha512 = "112912ajq0dfvbibdba458952wpd9cyl0na8fn7p40fyx4i5igki4z0f541aj8nvy679i1rj9m8p1cjmxnd25qww215bjc444vy6mwl";
       };
     };
     "pug-lexer-4.1.0" = {
@@ -7480,7 +7480,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz";
-        sha512 = "i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==";
+        sha512 = "0y1ljrsfpv6jacmhcghkn6s9n46vm0ziwrf55fyqb0g0afwhsx0bbmh5xhq9lz2xg1df3905zfy9bin02xf0mlrjqk6v3kd836757lb";
       };
     };
     "pug-linker-3.0.6" = {
@@ -7489,7 +7489,7 @@ let
       version = "3.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz";
-        sha512 = "bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg==";
+        sha512 = "375crip8jzn5kx6lbx19nc12dyxqxc1wq0i3pmbjr8km8kc0p9j1kysysl69djiq0n663yxpqsjdv97in7dbcni02lh6zbdgfw1za3d";
       };
     };
     "pug-load-2.0.12" = {
@@ -7498,7 +7498,7 @@ let
       version = "2.0.12";
       src = fetchurl {
         url = "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz";
-        sha512 = "UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==";
+        sha512 = "2rdg2l72v2hwsiyiz0rvqff2vfd07dlxacs1qf3qhxcl861wgl96jrcjp6733nn53cc36bc83qiy8p90i5ypmyg4qh1cpdjkhd61ajj";
       };
     };
     "pug-parser-5.0.1" = {
@@ -7507,7 +7507,7 @@ let
       version = "5.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz";
-        sha512 = "nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA==";
+        sha512 = "30blpbplbbgh6xfirijjqbbfxkp3f70iz7scbspw6z56pw6g4nrkz9swd9bz1wadaij38mazdhybz212cwwpj637rzrxvilxhmylqcw";
       };
     };
     "pug-runtime-2.0.5" = {
@@ -7516,7 +7516,7 @@ let
       version = "2.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz";
-        sha512 = "P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw==";
+        sha512 = "2vnj0qdc3rhxbi060mkcss7mwn6avl864vj16shbf9fwf97a2lblkd9g1g6pivqgxszzvrh3ilcaaqp5sbvdw5ycg88g7vfgwmdgsiz";
       };
     };
     "pug-strip-comments-1.0.4" = {
@@ -7525,7 +7525,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz";
-        sha512 = "i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==";
+        sha512 = "2zpmf1c507g195spdxrm7wsfaxrd3kjifxvkfgj7wlbva0vmfydnh8wjsajqph42qzdhmym1y51la62qyiqhybsqi95ij5q4ksgz64b";
       };
     };
     "pug-walk-1.1.8" = {
@@ -7534,7 +7534,7 @@ let
       version = "1.1.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz";
-        sha512 = "GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA==";
+        sha512 = "1a288y26wmpn6f09g6z69xqmqazcvqn36fgrzwjm7wh9ik5pgqn44qvg06ibq2lvp9svz6nly5wni9v35y83plgpgipfbylk4rvgjqq";
       };
     };
     "pump-2.0.1" = {
@@ -7543,7 +7543,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz";
-        sha512 = "ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==";
+        sha512 = "288hcmlwdnqda84ylx9cv413ic0r59k0dp71hy7a200jsb7h1y63277jwdp1jdp13c1b3pl6g2gzr5gjv9p72f5sp7w3p0d34swrqxf";
       };
     };
     "pump-3.0.0" = {
@@ -7552,7 +7552,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz";
-        sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==";
+        sha512 = "31n24fqakqmhzk2ch644gziskmysmrgiwclsdsr0rwk9spgikqpwickbnayap0rynfjlq72s7iny2p35n3qszypr97ws5njkpx741ig";
       };
     };
     "pumpify-1.5.1" = {
@@ -7561,7 +7561,7 @@ let
       version = "1.5.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz";
-        sha512 = "oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==";
+        sha512 = "1sxm2mh7jmxhjqdrpdqrhc61ipk2cjyyyvsn9hmxlxnlpsasyzjdicl98pm63zv30012qhrxl57vdpdnnq2m2hl4w4ybgn7gqimjad0";
       };
     };
     "punycode-1.3.2" = {
@@ -7588,7 +7588,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
-        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
+        sha512 = "381vqgh5xkqzrr6cxbzfykgnnk83m7qgpx3wjwj1hddn3sg2aibjxyr30rajpgv4js0cqknrbzwbfk5ryhiiyigzfjrk3zysy6i26sx";
       };
     };
     "qs-6.5.2" = {
@@ -7597,7 +7597,7 @@ let
       version = "6.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
-        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
+        sha512 = "0c46ws0x9g3mmkgfmvd78bzvnmv2b8ryg4ah6jvyyqgjv9v994z7xdyvsc4vg9sf98gg7phvy3q1ahgaj5fy3dwzf2rki6bixgl15ip";
       };
     };
     "qs-6.7.0" = {
@@ -7606,7 +7606,7 @@ let
       version = "6.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz";
-        sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
+        sha512 = "34x6fm4dnq8m0kps5ann831k8fvx7jzlrcw8vvri0ki2g2ywdrjr8j5y14bvj9c0fd01ndsyx43y6ji51bfhnxk2gr5fpsks52429sl";
       };
     };
     "query-string-5.1.1" = {
@@ -7615,7 +7615,7 @@ let
       version = "5.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz";
-        sha512 = "gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==";
+        sha512 = "0kkwn38nmjd6n6byiz52gngvyiw46fbibx9c9p1vzn9g7l11f2jpbs39d4aqajk7kk2a6k69wx5bjgavbg1lh275ih6k84jdnr8wdc2";
       };
     };
     "querystring-0.2.0" = {
@@ -7642,7 +7642,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz";
-        sha512 = "w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==";
+        sha512 = "1yd3j6k7rr39qm5zsh0k86znfksfcz9rbj48vv2dbsicnvvgzvw1vwl17vk2jlxszwqjiqsj9hy88r74wsdxf8by7a3wia2hk2cpdy3";
       };
     };
     "randombytes-2.1.0" = {
@@ -7651,7 +7651,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz";
-        sha512 = "vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==";
+        sha512 = "2cimbs750ysa2wxsiw9mmc1xqjb8w0c4s22p2mv2n676s8hchvzcl1l5p78jnk62d2jzacpr9zbl9w64kaqnipcbaa25q7ywn47g2dx";
       };
     };
     "randomfill-1.0.4" = {
@@ -7660,7 +7660,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz";
-        sha512 = "87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==";
+        sha512 = "0pm7c7mw7a3qwjr21f8cvxaa2sq5l4svqs51lppn833x0yvz3yx8x4vbd4rswjynykvlgvn4hrpq327pvbzp428f4b1fciy3xnmrfgk";
       };
     };
     "range-parser-1.2.1" = {
@@ -7669,7 +7669,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
-        sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
+        sha512 = "15b00vag4wijzsp0lwi9jznpz16n858vq5p1p3dgjrqqil9c6d4x55s1nl1fi4cbq8307bylbvkd9qkhyk6qib8ksh8raibxb3jrf0y";
       };
     };
     "raw-body-2.4.0" = {
@@ -7678,7 +7678,7 @@ let
       version = "2.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz";
-        sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
+        sha512 = "3flyhj96ayiy8is22lwh9sp1yqq9ksym43x22yri2ikzladqqzxj6z657bc0xb5f2wl7qr2ja4byf57c9f7l2d3wqdglxih886zrv70";
       };
     };
     "raw-body-2.4.1" = {
@@ -7687,7 +7687,7 @@ let
       version = "2.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz";
-        sha512 = "9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==";
+        sha512 = "1ngfzkci4v3yg989xbriv2giv775w4z9l34hyzfjhyh5ap8wdvc1sggkmqnkz19hgm5r3xyszrs7sppwslxi05r90sg14m6bql8hsgm";
       };
     };
     "react-is-16.13.0" = {
@@ -7696,7 +7696,7 @@ let
       version = "16.13.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz";
-        sha512 = "GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==";
+        sha512 = "00g57i5q020lc9cdswy1ba9bqds0a5wbpy88abfcbnjf0v54fmv4qcch3ad3336sdkxy4mjq3zaf142agbc0vkryipj14n79cpjslqq";
       };
     };
     "read-pkg-3.0.0" = {
@@ -7714,7 +7714,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz";
-        sha512 = "6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==";
+        sha512 = "28400v5dwid6mc9x40s2mwfbkn22vj0dzx0ix8n2bffjx4p2ivb9b60bh743c74kdp0v391rdmladhgvrjgzihns456n977gr451sz9";
       };
     };
     "readable-stream-2.3.7" = {
@@ -7723,7 +7723,7 @@ let
       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==";
+        sha512 = "0zrh6gjjzwwycwydra51xcrgjgzyqv6dq38bfpwzmlqn702mwb4nj4sjjn499rycqndfk6rby0dksnq72x8pcbvqv0b2893mvq6if0i";
       };
     };
     "readable-stream-3.6.0" = {
@@ -7732,7 +7732,7 @@ let
       version = "3.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
-        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
+        sha512 = "1s8hs6ax9jwmmw558j3hyfx5lfn7qf66xg0giplz9jci7d8zp2d8vh96dzlis6xzpxfa5b2zbm8nm4mgsr71r6rl3w3qyfanb5qfn05";
       };
     };
     "readdirp-2.2.1" = {
@@ -7741,7 +7741,7 @@ let
       version = "2.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz";
-        sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==";
+        sha512 = "2yzl88bp25ig1xnrzqmqiwpfxyqkmdw27h3p90a4a58q0964xcijcx4i948msnlvin9f6hn5hmpxj1s90jzkj8aqxr5d04mmzr3z5fl";
       };
     };
     "realpath-native-1.1.0" = {
@@ -7750,7 +7750,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz";
-        sha512 = "wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==";
+        sha512 = "26fzz602hwidkkqwv7nk72xq07nlymik92psrcs5pifzqypr63pgz0sy8dzda0bpzl7abkz4kiy2z4f1w07xx5ch0yqh802lw1hyn62";
       };
     };
     "rechoir-0.6.2" = {
@@ -7768,7 +7768,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz";
-        sha512 = "1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==";
+        sha512 = "0m5jil0f2yz4js80jxvwilkhq6im5h6h0pa4disk3fsv9lm23lz8ly5219518j47v4fn0h248s9jf5pqhxhcr6z5cmxvbnna0js6vnl";
       };
     };
     "regenerator-runtime-0.11.1" = {
@@ -7777,7 +7777,7 @@ let
       version = "0.11.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
-        sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==";
+        sha512 = "03d4l8l8cyywh93wf5vw84lq56jh1b1d7jll4ny4z060j9hvx7w5q3q0b8q227jm93749k1c9h86r2pz0bm2xq5vp14g3r2kbvqc2rj";
       };
     };
     "regenerator-transform-0.10.1" = {
@@ -7786,7 +7786,7 @@ let
       version = "0.10.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz";
-        sha512 = "PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==";
+        sha512 = "3lxj64s9v2jksipiz0pphfy6m12cf7j96w64bqlzjwnasbpqhc5ws5bjzv3x9ld625v1z4f15l30izpv3p6l9w8h1qsvf6vy1pak5rw";
       };
     };
     "regex-not-1.0.2" = {
@@ -7795,7 +7795,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz";
-        sha512 = "J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==";
+        sha512 = "3cggngaj8m70zdn8kghha4mhvavm7jfy5xm2iqi94w4gi5m5irs3nlrgg975w2231y49jnnw7zhsg648pbkl9zb6vwhii83926q7917";
       };
     };
     "regexpu-core-2.0.0" = {
@@ -7840,7 +7840,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz";
-        sha512 = "ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==";
+        sha512 = "3dbpfrs4yh7dd9572m6dc8cxcgqacnvd24xm9licnw1hygqv51a18a84gm04sjssajbm437rq01raggrzmnzk4jnmbnxrnmk78sl4ba";
       };
     };
     "repeat-string-1.6.1" = {
@@ -7867,7 +7867,7 @@ let
       version = "2.88.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz";
-        sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==";
+        sha512 = "23hm71jcxrwvp33azx8mx3w6dg21fr4w6lwvkvxyf6ckvhk3hz9dk8lzgkbiyzfl9ylhp4n807xp88ppq4gj5h07cmrgxf6nwxfvjrj";
       };
     };
     "request-promise-core-1.1.3" = {
@@ -7876,7 +7876,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz";
-        sha512 = "QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==";
+        sha512 = "00riv5nw32j70g67b1ll1h599bvdbnkgasnwl1m26pfdgdmgr6zaq500mprx5n77yrnhza27vs3c9icb4z5h6wnwmlha6f81bw3d2s0";
       };
     };
     "request-promise-native-1.0.8" = {
@@ -7885,7 +7885,7 @@ let
       version = "1.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz";
-        sha512 = "dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==";
+        sha512 = "0qx1n06bjj430fidkma2dr90dmrixiza4ymk561v1xxpd5yp7r36lwirgsdn0nvra7s4xs9gs1xhd6fxvlps6q1wh5xq7m4d8n71akm";
       };
     };
     "require-directory-2.1.1" = {
@@ -7912,7 +7912,7 @@ let
       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==";
+        sha512 = "2d0gd2x49nz3hgfwms6326sjw5fx7gqf997dnggc7l084cibgang6wr6ryksky32fvdz1bq72xm73kfxd3lj2qnfyjsp57jq287k8rl";
       };
     };
     "requires-port-1.0.0" = {
@@ -7939,7 +7939,7 @@ let
       version = "1.15.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz";
-        sha512 = "84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==";
+        sha512 = "3pr5zjp8nh6qfllxnpqx531srx1igzdm28j4zg1y53yzc8qxp16yx01pw8cp7y4frla90gnpv622d6bi6aayi03iqlkb8gdjklji2pk";
       };
     };
     "resolve-cwd-2.0.0" = {
@@ -8011,7 +8011,7 @@ let
       version = "0.1.15";
       src = fetchurl {
         url = "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz";
-        sha512 = "TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==";
+        sha512 = "2d7igpgyzdlpx2ni0sql8gsnqk9qivfsw6bn1aklm19kbhgxjzmlazz8szfsbdpjka4gk6i3zf0jqa0llaf7dni636fnbwfmyjmhfad";
       };
     };
     "retry-0.12.0" = {
@@ -8038,7 +8038,7 @@ let
       version = "2.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
-        sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==";
+        sha512 = "3ixwnv4h7x38jd12vyzhx6m6adnfhz1zv881allalyqs8sy3q3zgwldngk4cqslnn2d46l0g91yz8wprmzcsvas9573vp8al9ldns5r";
       };
     };
     "ripemd160-2.0.2" = {
@@ -8047,7 +8047,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz";
-        sha512 = "ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==";
+        sha512 = "0hbd4cqbkycj691cj7gm40x3x5w46xk56xkg6n11wskc3k4xbdz1xxxyy6r27rcwipkzp19y1fmpfmb4lgf10l8asn6prdn11m24bla";
       };
     };
     "rsvp-4.8.5" = {
@@ -8056,7 +8056,7 @@ let
       version = "4.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz";
-        sha512 = "nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==";
+        sha512 = "2wdl1qh3bdrji9q0whkrhj7gzryfipskamagkg5dq54phmg5c7ifp8va0b8saxs4xmi6c5mlvkh6gbk6r4nqrld4v8ykx5f0ja0xwwx";
       };
     };
     "run-queue-1.0.3" = {
@@ -8074,7 +8074,7 @@ let
       version = "6.5.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz";
-        sha512 = "naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==";
+        sha512 = "3nzzg67sr57cc5n1065xsxjgrwa405bgbgqm9l8w01lnr660cy8zdjk99hm2n0did4kd75nwiz3843mfbrw7bs100n7g8q4r1fi18wx";
       };
     };
     "safe-buffer-5.1.2" = {
@@ -8083,7 +8083,7 @@ let
       version = "5.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
-        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+        sha512 = "3xbm0dkya4bc3zwfwpdzbl8ngq0aai5ihlp2v3s39y7162c7wyvv9izj3g8hv6dy6vm2lq48lmfzygk0kxwbjb6xic7k4a329j99p8r";
       };
     };
     "safe-buffer-5.2.0" = {
@@ -8092,7 +8092,7 @@ let
       version = "5.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==";
+        sha512 = "1pb164cfv1ip3s1rp008433rak88mdcch24q84cbfndg0dzky2ij8vjvsiyx2qf3rg4dgs82zk7vnrd9hkqqdcvp4lbk5ymcr8314bx";
       };
     };
     "safe-regex-1.1.0" = {
@@ -8110,7 +8110,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+        sha512 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1";
       };
     };
     "sane-4.1.0" = {
@@ -8119,7 +8119,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz";
-        sha512 = "hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==";
+        sha512 = "1jdy0h2kdi5d2lnxafnbxnqssf306v0pffvw10jspi9v899n7rxknzs78k7nnrgy1mgyfragq91y4ci7z7xksbp92xw6py80h1g65l6";
       };
     };
     "sax-1.2.4" = {
@@ -8128,7 +8128,7 @@ let
       version = "1.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
-        sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==";
+        sha512 = "1dn291mjsda42w8kldlbmngk6dhjxfbvvd5lckyqmwbjaj6069iq3wx0nvcfglwnpddz2qa93lzf4hv77iz43bd2qixa079sjzl799n";
       };
     };
     "schema-utils-1.0.0" = {
@@ -8137,7 +8137,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz";
-        sha512 = "i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==";
+        sha512 = "3kgnvyq6cxrlx9xwba75z4wp364mf4y4d66d92zwhjdw8nqg5jxzp1bfl6n5srl0aircw32nmry28a4476cpb3ijqzz78hars4wqvlb";
       };
     };
     "select-hose-2.0.0" = {
@@ -8155,7 +8155,7 @@ let
       version = "1.10.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz";
-        sha512 = "8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==";
+        sha512 = "165gijv79k6g333d52fwfnna4z0myalk0cywvf9b6pysjfwlib4cvldycwx6yiiy099v9s0yhgvhq1sn21dqy7r85kq4n6y5h2g1kgh";
       };
     };
     "semver-5.7.1" = {
@@ -8164,7 +8164,7 @@ let
       version = "5.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
-        sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
+        sha512 = "0cl68vp0ymkjpvim4s24v3awyk37d1bfbqrqv4ybwfi8yxga3d8fma2d6bh8dd4i2dsfwca324vaxm5dms61kdlmihdarfgzw6rmaxi";
       };
     };
     "semver-6.3.0" = {
@@ -8173,7 +8173,7 @@ let
       version = "6.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz";
-        sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
+        sha512 = "17wg4dv63jhss5hwqd135zz67r5c30b7a1xz33kfa7knxr0wfypyb8mj2xmc3l71qkxrz569n89xwp5d77m7adn0sr5wzfjlh2m6zvg";
       };
     };
     "send-0.17.1" = {
@@ -8182,7 +8182,7 @@ let
       version = "0.17.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
-        sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
+        sha512 = "016qgvxg1si6vn34p7piyc8mhvmav1zscm294wkcjf221y1l9zk5kwk5z6yn1ixspj12df25bpazb2h3fdclcf59xqc2h4w46r4mi86";
       };
     };
     "serialize-javascript-1.9.1" = {
@@ -8191,7 +8191,7 @@ let
       version = "1.9.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz";
-        sha512 = "0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==";
+        sha512 = "3a0kvzr1rq0l6v4l587sv58i0xgajs9863srkhxxlzq3dk5mj8r5sag4yyxfidzsbwcbygbg7wdm2nja97kg5n4y9plxsl9hpkzymni";
       };
     };
     "serialize-javascript-2.1.2" = {
@@ -8200,7 +8200,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz";
-        sha512 = "rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==";
+        sha512 = "26vhlfjji0jk84cvbcpna4h1nfvdwj19g7rjmvz9mzlm277cpgz7xw9q61yrp3x4amas66fxrz0p2rrndv737j4imw4a5ql0614xkxf";
       };
     };
     "serve-index-1.9.1" = {
@@ -8218,7 +8218,7 @@ let
       version = "1.14.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
-        sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
+        sha512 = "0551vv6s1vgk5krzdn9cwnybsv6g4cyqpkk1dlkyv1pd8n7m8r7pi12r16bw12dzwl6ghj4qwizjsxc8vl26lv9c61fkq9r059yzji4";
       };
     };
     "set-blocking-2.0.0" = {
@@ -8236,7 +8236,7 @@ let
       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==";
+        sha512 = "15idn47lw67wfq0qfva85xnphqxkzz5apix6gwcnylmqw4ch7bqhq4vzdh53f327agpcg6pdzkbj8m72wm887wd8lqaydw20zbxq497";
       };
     };
     "setimmediate-1.0.5" = {
@@ -8254,7 +8254,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz";
-        sha512 = "BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==";
+        sha512 = "2jlhhawfqdiga1m6if01ks1q3yx56k5vj6wf372589vkswvdflw7224viivxali56b0jjsckpmjy10rj6fcakhw2dbq2psr197kzw86";
       };
     };
     "setprototypeof-1.1.1" = {
@@ -8263,7 +8263,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
-        sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
+        sha512 = "01qxzb0a6jrcxa6qh776v04ihqrmcy3qfbp9drfsjhfcsmaqd21mppr3ndj970ixfh6bpm8ai45jyqyzjfjw26pcyd82y6pyrcl1xr6";
       };
     };
     "sha.js-2.4.11" = {
@@ -8272,7 +8272,7 @@ let
       version = "2.4.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz";
-        sha512 = "QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==";
+        sha512 = "2lihh3p2mrwymrly93ni37b1dvzwbm1jc47iqp66ax4bj41js4mr94wghv3c2agq98bb44nxxddn2n67ab978zk00xx2znw3vj2kha0";
       };
     };
     "shebang-command-1.2.0" = {
@@ -8299,7 +8299,7 @@ let
       version = "0.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz";
-        sha512 = "fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==";
+        sha512 = "3ndzzikwq0c0084xy1s0v9q2msc8wc7qrmi0bi1llshsmlhfz4dn1k9i2r666ls7xmq62idmify0ksc1vq3mrjqcrqbm20na0m03kbx";
       };
     };
     "shellwords-0.1.1" = {
@@ -8308,7 +8308,7 @@ let
       version = "0.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz";
-        sha512 = "vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==";
+        sha512 = "31h1mksdbashjfpvj7xh8nqw7siqm5v1yj77pmcsbkzqi4hrpjqmzv2sifjlljjyx87sfqnmcn0yqh1hfgn669c43i2dargyi8i4p5w";
       };
     };
     "sigmund-1.0.1" = {
@@ -8335,7 +8335,7 @@ let
       version = "1.96.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/simple-git/-/simple-git-1.96.0.tgz";
-        sha512 = "+gXuzJFpGtK9zCa7rPMMNs8AF2weWMsB0Vlyym5VkFX2VGQ3VBzKhnxPN//PWrGuPFGQ/u0F1yL6rZoPhj/KPQ==";
+        sha512 = "0ywlgw61ydavyi2sw2yvzlha4yaxcasrzzkfkvwhv51qm1pciagcmchampclwjrs40wnn0ydhbh1krn1krsrfr6rjyx46k9j76fw1gs";
       };
     };
     "sisteransi-1.0.4" = {
@@ -8344,7 +8344,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.4.tgz";
-        sha512 = "/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig==";
+        sha512 = "25g5in0cfm4qpjw7rw3pnqyln8svln98bh34hiwmmk51wkfyb93sg52x9xc2nahx1lhvg4np6v5dq8vbsm2k7v4pii9y9qdrsh0rsgx";
       };
     };
     "slash-1.0.0" = {
@@ -8362,7 +8362,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz";
-        sha512 = "ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==";
+        sha512 = "3sbrc1b1qf9m7lhlljmnc51k9bl7jbc9zfmdc4z55iafsck65d9ll77bifknvgvgbc0f0a7cvm1b785ab5d1avm27lm7kvnd3fs30k5";
       };
     };
     "snapdragon-0.8.2" = {
@@ -8371,7 +8371,7 @@ let
       version = "0.8.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz";
-        sha512 = "FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==";
+        sha512 = "2b0sap2q0c6qbfkw6znql845b143frn5gkkz4gpirjhgwa2j3wy3jsvrfg51s5c1w1m4nkgis97x9yvmzsc533kap9j3h3zcffqxp0n";
       };
     };
     "snapdragon-node-2.1.1" = {
@@ -8380,7 +8380,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
-        sha512 = "O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==";
+        sha512 = "2gk18pdld8ij1bpa2mdwl8f7i4rl5d4ys3qw31hipj56wslnsfhp1vxp3q36kj1m4f34wzzlvj0282qx5xlflqf978xyqlc2viyaviv";
       };
     };
     "snapdragon-util-3.0.1" = {
@@ -8389,7 +8389,7 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
-        sha512 = "mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==";
+        sha512 = "1jsaqma4ycl2iq0761i1w7758z1kq7gbsij4xfb7p5cnw0qa62pszv6pr3j856n3pbxww7wwxs5wvcg2cb6vy020kw3bchashqs9clr";
       };
     };
     "sockjs-0.3.19" = {
@@ -8398,7 +8398,7 @@ let
       version = "0.3.19";
       src = fetchurl {
         url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz";
-        sha512 = "V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==";
+        sha512 = "0pn77r3rgi2blxla6ilhf4madx8n0cprzb295mw5knx2hyhiwn60z8n8n8clsb1l0wddcrjj5x4rn24ydf2wnxbrn63xwb5lsa293sp";
       };
     };
     "sockjs-client-1.4.0" = {
@@ -8407,7 +8407,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz";
-        sha512 = "5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==";
+        sha512 = "3pa683q7x6az2iwmd2bh0d2zwdkgklkfi4vpkwnxw4b49mgfdjkal83i9lzxlz6f6sqybyvb0mlyw0mmg9mdd76fawvi7izxz48ndp7";
       };
     };
     "sort-keys-2.0.0" = {
@@ -8425,7 +8425,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz";
-        sha512 = "qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==";
+        sha512 = "0izwdwncwz4s14qn5ahkb2mpcdpxq2arn5185dlhljns4nylsw2xfm425zi115ik4kz1vfa97qyix3vf3i149dyi1ndq61iaf0knx5a";
       };
     };
     "source-map-0.5.7" = {
@@ -8443,7 +8443,7 @@ let
       version = "0.6.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
-        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
+        sha512 = "3p7hw8p69ikj5mwapmqkacsjnbvdfk5ylyamjg9x5izkl717xvzj0vk3fnmx1n4pf54h5rs7r8ig5kk4jv4ycqqj0hv75cnx6k1lf2j";
       };
     };
     "source-map-resolve-0.5.3" = {
@@ -8452,7 +8452,7 @@ let
       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==";
+        sha512 = "2gq1flmkac2lzw8rs6vpch0sanmv8r9gv6bggwkgxzj3n7gw33lbqzk7nk9vvsckdjjkm132jzbl3nxc69cf9bb7xz4wnhpgd3gxp0y";
       };
     };
     "source-map-support-0.4.18" = {
@@ -8461,7 +8461,7 @@ let
       version = "0.4.18";
       src = fetchurl {
         url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz";
-        sha512 = "try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==";
+        sha512 = "1n37icn5xpsxs2x8szv6ifajjf066fskm04xn6agr79sid57n0yws4n0cis7m9q5hr0hxzr8dv2fnmmpgb4mvz8kiyv2g5ikbyb9g5n";
       };
     };
     "source-map-support-0.5.16" = {
@@ -8470,7 +8470,7 @@ let
       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==";
+        sha512 = "1ayqxcigra517ylxbrvri7jlw55cv0m6a8j9j6060c5xsh519ip69jjp4jk6bqcj5ra5y318k6la6lfhpsj0k8hhkyw1szbj128pz3r";
       };
     };
     "source-map-url-0.4.0" = {
@@ -8488,7 +8488,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz";
-        sha512 = "lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==";
+        sha512 = "3qslnh3c2x2g8lar94rladm2rz692d5ds1bp1cpl223jf67jnazl9ipy4n17n7vqvgwimij36gz740nfqr5pyxq8x6n02rd4xj89gcn";
       };
     };
     "spdx-exceptions-2.2.0" = {
@@ -8497,7 +8497,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
-        sha512 = "2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==";
+        sha512 = "12c442riig2hk7014ahh40chwirmmsl9dr4cnm2dr2bdbv1lnal8xxwsfx403pqkx7ib06gm2hyyd98kn30kxanjm92yai5y44h0x6r";
       };
     };
     "spdx-expression-parse-3.0.0" = {
@@ -8506,7 +8506,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
-        sha512 = "Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==";
+        sha512 = "351djgqvsgqmfg6h764c2k09dmixczw5073jirm8km6i1yym4xjrzc7g5ckwkidi3gls7s910m4ahl8sh37dsb478j8j3sigbfq63k2";
       };
     };
     "spdx-license-ids-3.0.5" = {
@@ -8515,7 +8515,7 @@ let
       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==";
+        sha512 = "3sk6sk6r05ikn5qslbh04h54mv4a34wn4d76s800h94padnjydfvvq73ij6jh81yrigspyr50ay878jjwpj2mcq38br371jkb6mdq97";
       };
     };
     "spdy-4.0.1" = {
@@ -8524,7 +8524,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz";
-        sha512 = "HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==";
+        sha512 = "2h245q80im9phjaghcl16kb4sv4n7igk0ch8dsqkq32dsfhcqysjx19blvd45whyaqh9r6309wc6pf6885apd1bcnn0yc2xy3f55rhx";
       };
     };
     "spdy-transport-3.0.0" = {
@@ -8533,7 +8533,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz";
-        sha512 = "hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==";
+        sha512 = "1rha3zyhardm434kr4h4y44wxpd49hqzzxqk1d9lqg91bkzfbp6qkh9nahdkkmpgbkc5021x8c8cy1aqnaph5ib1a9hx32j9qadbhl6";
       };
     };
     "split-string-3.1.0" = {
@@ -8542,7 +8542,7 @@ let
       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==";
+        sha512 = "25ih1dx2qb3lawqjxj85znd4l3x8nnigrcdlpfw8064gh2mwxic9bgg5ylgxm9gjl3v8dmyc47rycp8xvqz78jqalg0g9yqj225acrp";
       };
     };
     "sprintf-js-1.0.3" = {
@@ -8560,7 +8560,7 @@ let
       version = "1.16.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
-        sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
+        sha512 = "0i4jnrxh6i17qij2vfki7qxmk435cnacvg363qg0hya5incfj57akgbas8zcx2cl5pds9jfgfyhqm8wlqz6damsg059gymv99aylx8x";
       };
     };
     "ssri-5.3.0" = {
@@ -8569,7 +8569,7 @@ let
       version = "5.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz";
-        sha512 = "XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==";
+        sha512 = "00qc3iqsi21cc2az3nz36q88psab4ickpzranndk6vmrb6yhn5xsq3kgp21x3lp0406bdaalpb59xy7zzqnl40ans69v3z2l8z8h52x";
       };
     };
     "ssri-6.0.1" = {
@@ -8578,7 +8578,7 @@ let
       version = "6.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz";
-        sha512 = "3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==";
+        sha512 = "107yg08ib4232ppannc6fw8ml8p1fssnvcf88cpq3s5ybq3r5ppxnmc32rp40i0ppbgxcw9q04d5rc90if0q3xyp953swad93biws6x";
       };
     };
     "stack-utils-1.0.2" = {
@@ -8587,7 +8587,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz";
-        sha512 = "MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==";
+        sha512 = "300alvgq7a9y0fyilyifhirpj9k0qvs6lx7g8msrs6lilcs8wjgl3jzckcs3mvp5v6bi2g7q6k1ml18zpgqvr5cf5wdylxrw4qzwd9i";
       };
     };
     "static-extend-0.1.2" = {
@@ -8623,7 +8623,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz";
-        sha512 = "nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==";
+        sha512 = "2mfvadpwj9mzxps4arl1frxlkz96hfp0sc5pvq76s0ijf8fgw26mm3a721zq3iz1f8155w3a41wkixbdlwn1cavv0mzics796da2zlx";
       };
     };
     "stream-each-1.2.3" = {
@@ -8632,7 +8632,7 @@ let
       version = "1.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz";
-        sha512 = "vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==";
+        sha512 = "0pxki70s41jg18b738qvcwxlcakp6658ksicxkcgg8wp9q97fwp3mv13c5k38k47vxkyyk951k7gzavs3r7b93ackdyznh8zzch4lxy";
       };
     };
     "stream-http-2.8.3" = {
@@ -8641,7 +8641,7 @@ let
       version = "2.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz";
-        sha512 = "+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==";
+        sha512 = "19y2xbs1xzzpjwfdczl21d0d76ahd7013cr3mhfa6a8nbwwv9jpncng8idf0g8hnmnq2mcl3xh912rjlasl06wsz44qw3j7hdya8d7r";
       };
     };
     "stream-shift-1.0.1" = {
@@ -8650,7 +8650,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz";
-        sha512 = "AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==";
+        sha512 = "1ai59bc5x8d6a1c37fp2d2gi6q7x6fhza2jsf1sblrdvbza8j14a4xnp20lg65b8lzm0s95m3pqizblbj6ks44qf73gdllhbahaqa02";
       };
     };
     "strict-uri-encode-1.1.0" = {
@@ -8686,7 +8686,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
-        sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
+        sha512 = "29s1fqgr4mnhfxwczgdghfmmc1f792m9hysvcjxw2h5lfj8ndf2b6gm02m96qk5m75g4aisijvng4pk618anwbr8i9ay2jyszkqgslw";
       };
     };
     "string-width-3.1.0" = {
@@ -8695,7 +8695,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
-        sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
+        sha512 = "3bix3jva53vcp1im3aa1y2v1lywkm7ix81gkwkj4915s2675pmw1c9n5x98q1m985hzgwkk1fnc2q78qz7s0fixhf994md3lazxr9xx";
       };
     };
     "string.prototype.trimleft-2.1.1" = {
@@ -8704,7 +8704,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz";
-        sha512 = "iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==";
+        sha512 = "013lf0f398s2xb9jhq9acspdnnk52k7whcga9am4b8a2wrgpc2w7xgkydg4sg4ah9z3i1syimzqs7dc89390xmwlx8zxf6gvlcq1vca";
       };
     };
     "string.prototype.trimright-2.1.1" = {
@@ -8713,7 +8713,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz";
-        sha512 = "qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==";
+        sha512 = "3x2qc2fc2fh9sj3vw9w45h246vspjfn88b0k356ldazylhap91vg825bppg73s9n63kwpql3gpw24lv8zx0b2arblcqhh7ygwpxcnx8";
       };
     };
     "string_decoder-1.1.1" = {
@@ -8722,7 +8722,7 @@ let
       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==";
+        sha512 = "315yd4vzwrwk3vwj1klf46y1cj2jbvf88066y2rnwhksb98phj46jkxixbwsp3h607w7czy7cby522s7sx8mvspdpdm3s72y2ga3x4z";
       };
     };
     "strip-ansi-3.0.1" = {
@@ -8749,7 +8749,7 @@ let
       version = "5.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
-        sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
+        sha512 = "1cf4mpsr46nik5xxyb9wc4cz6c4yymi2ijpfx1nghnkl39l8pgq1sc7q19jzrjkwpn9i7hwg4q3rs4ny3vssrc6506an1lv0bb6rr0f";
       };
     };
     "strip-bom-3.0.0" = {
@@ -8785,7 +8785,7 @@ let
       version = "5.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
-        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+        sha512 = "2ihqi2z38fr1sq2jvwqgjqymncmkhxqz0x3bi97w4b4fn24wsdy71j139p95sb3nfrh3a449n0sqhm1z0jsi04860y8vdy8sp0n6da2";
       };
     };
     "supports-color-6.1.0" = {
@@ -8794,7 +8794,7 @@ let
       version = "6.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz";
-        sha512 = "qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==";
+        sha512 = "30pwyjmww4d54bf2m6lpw20ly4blhb88sy3gn6qcjih2rfq1s5zsl1nszzwgj2j1gqn3c8mw52df0z26rqyk8flzimb70scdmz67vd9";
       };
     };
     "symbol-tree-3.2.4" = {
@@ -8803,7 +8803,7 @@ let
       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==";
+        sha512 = "17zjr1mhbpxi4zhrmghix8hw1pi9svlwzjxz51mj2hxx9qpjwn1z9rlyrmdn55hbdiqnl8m9gkci2294swkkwp3rxpy05q3mkj680zm";
       };
     };
     "tapable-1.1.3" = {
@@ -8812,7 +8812,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz";
-        sha512 = "4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==";
+        sha512 = "283f6rp3hhj0lvi5smcvh4mq56mifjchgv6qlnr4qb1xs2fsyb2vy71b308h1285nngcz8q7cbmjp8qqzh0im71mx5wr3v6hrnvyqp1";
       };
     };
     "terser-4.6.6" = {
@@ -8821,7 +8821,7 @@ let
       version = "4.6.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/terser/-/terser-4.6.6.tgz";
-        sha512 = "4lYPyeNmstjIIESr/ysHg2vUPRGf2tzF9z2yYwnowXVuVzLEamPN1Gfrz7f8I9uEPuHcbFlW4PLIAsJoxXyJ1g==";
+        sha512 = "3b8jz65d3105j7jw1b5jv6ww4z89nr3zjvwzsv7sk6n6sn469bnwxf1x04n7cixyz2xrnlz24yx8sw30wmzzas4434dick6wg4hymp2";
       };
     };
     "terser-webpack-plugin-1.4.3" = {
@@ -8830,7 +8830,7 @@ let
       version = "1.4.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz";
-        sha512 = "QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==";
+        sha512 = "2n44cgqgz070skn207m3l6zg3q444p1db54g0j87fcjxwyhmlfvgg3kak5v1ffhg765cdxah1l99kjdcy74mc75nlq7907zbiq5xk20";
       };
     };
     "test-exclude-5.2.3" = {
@@ -8839,7 +8839,7 @@ let
       version = "5.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz";
-        sha512 = "M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==";
+        sha512 = "3dgwbvh6yz24lh2kbdigw3j3kpxmmvlrqdhlc4innvrmyj0wvhs5ayckl00161sdx6a2pik344ggs49w9z1h6nh1v2fs542qyv33sik";
       };
     };
     "thenify-3.3.0" = {
@@ -8875,7 +8875,7 @@ let
       version = "2.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz";
-        sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==";
+        sha512 = "14xi6lbly1f37015ny2pzcnf5kaksjmpnhm61gfhwn686w5ac519qb1icxdda974n84f342g0y15kysj1hci2vl40z91aiivyhx2spy";
       };
     };
     "thunky-1.1.0" = {
@@ -8884,7 +8884,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz";
-        sha512 = "eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==";
+        sha512 = "2n8ys98dmv1625inb52cdr421ry82ri2sninmss1njzy9hxrlblw3fkvgr3na4d69glygww3g80bj4pgr9ik1zcm10ki0gd2yf3nxkq";
       };
     };
     "timed-out-4.0.1" = {
@@ -8902,7 +8902,7 @@ let
       version = "2.0.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz";
-        sha512 = "60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==";
+        sha512 = "0lrwqck7qvpvxswx5kmydj9nmn2rwckzzfpdf5mf869fqrs9girj45i80hdv99b81m4g8fgwqx2lqk04k7zars7rldq3r89r3m9aipb";
       };
     };
     "tmpl-1.0.4" = {
@@ -8956,7 +8956,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz";
-        sha512 = "FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==";
+        sha512 = "03lcq1y1ks55lss37m3cx52f8f4wj85rqsxfxrhi3y8rqa0iiny6df8ardg2f742z870v7xw749lcsxh8yplsmbvaig4rrds1w6asqm";
       };
     };
     "to-regex-range-2.1.1" = {
@@ -8974,7 +8974,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
-        sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
+        sha512 = "1bip1yxcfy4c0yl2kwmj9jyzfg1ixyj564wd1aaf46rabdiasx62yznb8bwn9cki886f353axgca42zma7q9rb4b50lhm1zz7y8g8y9";
       };
     };
     "token-stream-0.0.1" = {
@@ -8992,7 +8992,7 @@ let
       version = "2.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
-        sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
+        sha512 = "3xgcny117pqhfncr4gbmagzlnjiqqgq0lrvmljdfcdy64nc0xjfcbf1r08dmp1v1m3s51kq0yxc18nl3j9lbpr5bp5lgmi6719yqlly";
       };
     };
     "tr46-1.0.1" = {
@@ -9019,7 +9019,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz";
-        sha512 = "c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==";
+        sha512 = "0092ym5f8nqn9kwk6wczdd9g9cmyakl54rqrmrmhj1ncm4c5p8iy2sjxkxybnqp4y4bxsabar5kalggrz787665r6lnb49zpz4xlz3k";
       };
     };
     "ts-jest-24.3.0" = {
@@ -9028,7 +9028,7 @@ let
       version = "24.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ts-jest/-/ts-jest-24.3.0.tgz";
-        sha512 = "Hb94C/+QRIgjVZlJyiWwouYUF+siNJHJHknyspaOcZ+OQAIdFG/UrdQVXw/0B8Z3No34xkUXZJpOTy9alOWdVQ==";
+        sha512 = "1arvrclb8plyklschblbipqilv7gih7yh7my5flmpa6y50x0908x7viisbb5wj93v4r2d12xcbi9rm2n0jwljcraliqhi4hzw5pigqx";
       };
     };
     "tslib-1.11.1" = {
@@ -9037,7 +9037,7 @@ let
       version = "1.11.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz";
-        sha512 = "aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==";
+        sha512 = "0c0k843zya7w9k5snfr3g76wz2vyl99q149safl5g364jjwq839h3qf8c17i8mahdcqc3zj3xgfv0nv9pcxfm8axva0d49w4vqvr5b9";
       };
     };
     "tsscmp-1.0.6" = {
@@ -9046,7 +9046,7 @@ let
       version = "1.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz";
-        sha512 = "LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==";
+        sha512 = "104f0vccp42fba9r2ij7ww4r7mazkmvqgj8is4ipg0jfx190n967qq5b1g0n77kcmm4d2m3l3q3cmh5kqgdmv886514akn38c16s61g";
       };
     };
     "tty-browserify-0.0.0" = {
@@ -9082,7 +9082,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/type/-/type-1.2.0.tgz";
-        sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==";
+        sha512 = "1z2f06mzr855vwxwr0wkndnkn3fnjcwisd3iajkh6dmzz0dn1a5amq7m798j1ass4kiymz4gn3q0c573l21377dkq1ap2i703jfv6gv";
       };
     };
     "type-2.0.0" = {
@@ -9091,7 +9091,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/type/-/type-2.0.0.tgz";
-        sha512 = "KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==";
+        sha512 = "2iyk1bl159vr7i0r24jawi0lwrgns8xvsw72962lvzw6qshm5blls6p7spkpcqpgwb0p7liwdix0ph0j22dip1rg812xbw723rpj6r8";
       };
     };
     "type-check-0.3.2" = {
@@ -9109,7 +9109,7 @@ let
       version = "1.6.18";
       src = fetchurl {
         url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
-        sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
+        sha512 = "3r7402x79nilhdgk4z21yjh5y9vix8lwlll1kzcn8jd2m89vzksdb6wddia77cxv3iwhd6i5hkv6n7diwjbhpy7y03i2kqlvfplli2f";
       };
     };
     "typedarray-0.0.6" = {
@@ -9127,7 +9127,7 @@ let
       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==";
+        sha512 = "3cvrfgjsyvnh9fdyixjzx9mwkfcjfyhgsjizzxzmrsvb1pwch0y58crjh7p6b0ml9nl7jr55nx5dyslq3jn15qz555fl3a4qdfbrnyd";
       };
     };
     "typescript-3.8.3" = {
@@ -9136,7 +9136,7 @@ let
       version = "3.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz";
-        sha512 = "MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==";
+        sha512 = "3rwcbg3l3w3l2zr5y9lszqs30s29jzvh1w594rbdljyr582yi6vajzs2fg04s9p79klh3iv0980b91mbr94sl77h9nb7b2mgrz4929i";
       };
     };
     "typical-4.0.0" = {
@@ -9145,7 +9145,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz";
-        sha512 = "VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==";
+        sha512 = "13n01mbvkc5ikjpc69q3ixakq46pp2nbagrwz2a40ff7as9sandwzp51nhh6hy42l9yxq2pjv2y1whds49yq7akh9c3211vyhigh0al";
       };
     };
     "uglify-js-2.8.29" = {
@@ -9172,7 +9172,7 @@ let
       version = "1.9.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/underscore/-/underscore-1.9.2.tgz";
-        sha512 = "D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ==";
+        sha512 = "0fpcm4n2qlycl50j6k3fv7baybnzf1wbsm2ng0vwfsdi40fyvsvvl0k1i427hgpknhj5hbcwff3swckw6wx96kw4dgwvldi56v6lzqg";
       };
     };
     "union-value-1.0.1" = {
@@ -9181,7 +9181,7 @@ let
       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==";
+        sha512 = "1g7i0bs3sa35zpsrr2l3wsz4j6bqpxgm77kg2fdz89irzw6nrk6j93j61wr134mg9rbf039xa4pp1dw0iqfsv15rkf8jn8y2fdxg5xl";
       };
     };
     "unique-filename-1.1.1" = {
@@ -9190,7 +9190,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz";
-        sha512 = "Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==";
+        sha512 = "0sp2fs9gsv3l6mc9kdk09z835d54gw04x02dlz9q208mda3f6bmqd4vix4634kv9njvvxcz3iswcj6fwcmszvima7wpv5knia678sjn";
       };
     };
     "unique-slug-2.0.2" = {
@@ -9199,7 +9199,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz";
-        sha512 = "zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==";
+        sha512 = "3dz3f3rqwqssr86c072j9m8m7l98l20b3i75diqrq5l871d647jmdf7pjjml7l83iqvjnb2frz7h6xbs8rpx3rkvk1h5i6swvsap1ff";
       };
     };
     "unpipe-1.0.0" = {
@@ -9226,7 +9226,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz";
-        sha512 = "aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==";
+        sha512 = "230pbhzxv0jr9n43qhghbsdbsp1rwalc3rclaqscwjaazi35s6vzw9p66s3ypk6yn3jgpmqflda2yh8j2rlypz9vihasfw5m6jhd739";
       };
     };
     "uri-js-4.2.2" = {
@@ -9235,7 +9235,7 @@ let
       version = "4.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
-        sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==";
+        sha512 = "2fz60s71ghl56ddfiiaws81xpiidlbjk69jyjmahz190d2advy9zdbcwh5if4rgg5hxdbfxhkwiipjrnjy8w834bxsmzambd2p4b3r9";
       };
     };
     "urijs-1.19.2" = {
@@ -9244,7 +9244,7 @@ let
       version = "1.19.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/urijs/-/urijs-1.19.2.tgz";
-        sha512 = "s/UIq9ap4JPZ7H1EB5ULo/aOUbWqfDi7FKzMC2Nz+0Si8GiT1rIEaprt8hy3Vy2Ex2aJPpOQv4P4DuOZ+K1c6w==";
+        sha512 = "3mmrbgqk7ihxy43py896gl9cv3q8bapnwfg5vcsd82b5mlkd3qa4i7vfdihpk5c2jxkhz5anm8qxxm31fahfi3xxkcr7q59ssmhixdk";
       };
     };
     "urix-0.1.0" = {
@@ -9271,7 +9271,7 @@ let
       version = "1.4.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz";
-        sha512 = "d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==";
+        sha512 = "2bdb8rqxq8xd530jx6q8awb1y9idrvd8cfznrlyc1h8j4ra1icxcssfg7qldhssj6dxvibkvx6rnn1ljkjbxi95l58dn1y35ibrlyvp";
       };
     };
     "url-parse-lax-3.0.0" = {
@@ -9298,7 +9298,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/use/-/use-3.1.1.tgz";
-        sha512 = "cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==";
+        sha512 = "2hzzynss1cv7kn1lf40hqk16qmbf38g7a28m27pcg05mg6vpf7sj0gy175fdscz534fxdi14622rmq3sdpib9c5ypjympjfg5ai40bk";
       };
     };
     "util-0.10.3" = {
@@ -9316,7 +9316,7 @@ let
       version = "0.11.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/util/-/util-0.11.1.tgz";
-        sha512 = "HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==";
+        sha512 = "0fpzl6qczbzr5jniy99vgfxz1k4gdfl13lwwhlfysj22rm18ikfici89wpgv34v67ckays1d500fgk2dlzw95zncn9jvkdygjr40a0x";
       };
     };
     "util-deprecate-1.0.2" = {
@@ -9334,7 +9334,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz";
-        sha512 = "g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==";
+        sha512 = "2n8sxd1qdzc7pn348ayx8jm13kvi9wyjkshzwy1fam3aiy8phv8lbikbli433qvnq3ndnqj8yhcf9dgavm2xv6cvzk7cyy7zl5nkll3";
       };
     };
     "utils-merge-1.0.1" = {
@@ -9352,7 +9352,7 @@ let
       version = "3.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
-        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+        sha512 = "3y9pcli1v8nqryqd2c4pxj9kcv92mjc22z4smg08pdjzrbwda19xmjbzms1dwr04995h4carz9s8mldbiqb8708694lwr501r3q6d0y";
       };
     };
     "v8-compile-cache-2.0.3" = {
@@ -9361,7 +9361,7 @@ let
       version = "2.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz";
-        sha512 = "CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==";
+        sha512 = "3givf3csckgfmf3aahy2cdnn1wanqnyjhxq52s8mi349v658g9izi20prr2y5m8gxrv69idkvvwp5njwqds49kbyhmkq1hc0iprvn88";
       };
     };
     "validate-npm-package-license-3.0.4" = {
@@ -9370,7 +9370,7 @@ let
       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==";
+        sha512 = "09vn7gn5jp2c07pxplc11lvk7ybfaz0rp3qzflyiyhnahkfgh76bij31ll5rg01ranlmljrky2q25d1f6bbd0h23pzxxi5z93csd4hf";
       };
     };
     "vary-1.1.2" = {
@@ -9397,7 +9397,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz";
-        sha512 = "2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==";
+        sha512 = "00japcjqx1df1bgck837ds0xvg5dr7g4j30a38zhbmanqss2kyxs4p7pgmldlnxpa31js50gydy8x9qi89s4x74iidf6k6nfgqsc5ns";
       };
     };
     "void-elements-2.0.1" = {
@@ -9415,7 +9415,7 @@ let
       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==";
+        sha512 = "1ykk57cjg94sdr82b43a5q815xrd4yhvpqzdwlpvfi50zv5zw4cincppdbkmizdc4zkmym57s8rqmpj5fpyxjl12kla136dy07gkhyg";
       };
     };
     "walker-1.0.7" = {
@@ -9433,7 +9433,7 @@ let
       version = "1.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz";
-        sha512 = "i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==";
+        sha512 = "34gp4bbaidicl7azgivrrxb9kvdz501gg0xyf88lya75j9wmrbd1rs5rlk2h5g07q5rb453fkjkck54j2qzsdam1qk36bijf5xlg9wb";
       };
     };
     "wbuf-1.7.3" = {
@@ -9442,7 +9442,7 @@ let
       version = "1.7.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz";
-        sha512 = "O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==";
+        sha512 = "066j9njgvk6mkjalv1zf1p8w9m2hrl97vz1iw8q6g9zlplhphz54j5j0ma0x9053zhczbyi3k1nr493vgnx1lk22hdwp2glg8x11kiv";
       };
     };
     "wcwidth-1.0.1" = {
@@ -9460,7 +9460,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz";
-        sha512 = "YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==";
+        sha512 = "15gwgjh9anvzcissfhxy3gki7jxn1dy9vq5rma1sgwkbbra8wbxnvimwalgmy8anm33x56mfp492akzhs0gidwmbnadx0ck3fdq23v1";
       };
     };
     "webpack-4.42.0" = {
@@ -9469,7 +9469,7 @@ let
       version = "4.42.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz";
-        sha512 = "EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==";
+        sha512 = "3my3qykp4laavc26aad536i8n5h6isv7rnrsv092i7nbyy7dkpi59w3jsxrz7yhbrzwvyiqs78kv8q2plswm8camnc1ij0hzhg52chk";
       };
     };
     "webpack-bundle-analyzer-3.6.1" = {
@@ -9478,7 +9478,7 @@ let
       version = "3.6.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.1.tgz";
-        sha512 = "Nfd8HDwfSx1xBwC+P8QMGvHAOITxNBSvu/J/mCJvOwv+G4VWkU7zir9SSenTtyCi0LnVtmsc7G5SZo1uV+bxRw==";
+        sha512 = "13z3rjpds6nclkfxhf6pdnmp78a485psglljlmzibrlx4anhldzw2rvdwi9hzzjpfpi8d7ihhwc1w8s1k23zgh00xqisjqz7hf7rxrm";
       };
     };
     "webpack-cli-3.3.11" = {
@@ -9487,7 +9487,7 @@ let
       version = "3.3.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz";
-        sha512 = "dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==";
+        sha512 = "3i5vq7c9hpjb8z9x68dq56cjmv5hs584vgci6zbc7n0m8y1fk4y1kv4pyrq4q9crlkwirwy6gh5w3q0a2xv43w5q42z1ikvd6x5yybm";
       };
     };
     "webpack-dev-middleware-3.7.2" = {
@@ -9496,7 +9496,7 @@ let
       version = "3.7.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz";
-        sha512 = "1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==";
+        sha512 = "27qjisacr2wrfj7r3z5hh2x7nrhadc27vg4kcalrdc7rrn8gnnlk64zf1pqmlkffy8klh8r0dr259v1sf6fjm886j5qlqjvpkcbh46p";
       };
     };
     "webpack-dev-server-3.10.3" = {
@@ -9505,7 +9505,7 @@ let
       version = "3.10.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz";
-        sha512 = "e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ==";
+        sha512 = "1wl6ahwwfvm7620d70by2abmqgvw54mdhr8bxhdnnsvjzincy83rg80vffb1vwm2cvxwdc9qpp7ipq8bqrkf773fi6lbk0qzxxdd2bv";
       };
     };
     "webpack-log-1.2.0" = {
@@ -9514,7 +9514,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz";
-        sha512 = "U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA==";
+        sha512 = "0f0lcci53li31zhx7vhwaq4di0xvhd0n02rgy54kb4bcq6fzki0lz34s6ldzwf1ppaqw1n6jc3hp64blldhz8ianvbl3rzf54h2gl2k";
       };
     };
     "webpack-log-2.0.0" = {
@@ -9523,7 +9523,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz";
-        sha512 = "cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==";
+        sha512 = "191qr8nb4rszy53q0ydqfxr1pirimc3k3bi7mhgin5f15cd7vd28maxanyb248kdivmajhji580fv3a1i584icz3cc9bwvzykd0czvi";
       };
     };
     "webpack-sources-1.4.3" = {
@@ -9532,7 +9532,7 @@ let
       version = "1.4.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz";
-        sha512 = "lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==";
+        sha512 = "1wn7ixcv4b15kj3jn4c08n3pgrrd2kgzm2llh9viqx6a6k3j6rqzd5iksxdkalzaz6iic1q4fjj6wr9wfa07llf5a751mkgg3fx414n";
       };
     };
     "websocket-1.0.31" = {
@@ -9541,7 +9541,7 @@ let
       version = "1.0.31";
       src = fetchurl {
         url = "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz";
-        sha512 = "VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==";
+        sha512 = "22yr8a52nsijkqybp8fgzvh69wxrhmcqmcmjvmdwl6m9qix0lxdyakbvznj0wr90nl3mw5j4srhgxp6p8ihipil2j5gha66bfk2w2jl";
       };
     };
     "websocket-driver-0.7.3" = {
@@ -9550,7 +9550,7 @@ let
       version = "0.7.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz";
-        sha512 = "bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==";
+        sha512 = "0b5m603phj37lw5vb70ijc77g29cz7vn1w1bs7rhkx1ax3gil0wys841m14gnm3p95lc630hs370dngh68p7aaq69yqw1yvysb5d73f";
       };
     };
     "websocket-extensions-0.1.3" = {
@@ -9559,7 +9559,7 @@ let
       version = "0.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz";
-        sha512 = "nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==";
+        sha512 = "0d1n4yv45ibxf72hj7qka3j7v53dwn58savfiyvsppqhhrgg3g648ykk5v7fpb53hz85kj87m4f45r7d5iazx4yqgs381z6qnfd98cy";
       };
     };
     "whatwg-encoding-1.0.5" = {
@@ -9568,7 +9568,7 @@ let
       version = "1.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz";
-        sha512 = "b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==";
+        sha512 = "09x9fa2rb8a6lmwy9hs7z4qn2bsyqw8l2hmfy50z3fa496x3p2xadmlccm8ad17nam5fz77z9mndw2yqp8jpvyw3ryz6f09ksdn56bg";
       };
     };
     "whatwg-mimetype-2.3.0" = {
@@ -9577,7 +9577,7 @@ let
       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==";
+        sha512 = "3zaycdfc1hh0i4r1c42vgkzwmlfv8j68d90f6i577735i40hk9p9m790g2z2dlmdkchn2z73yj0zs73fmpjdnx4xwrp80m6pv18r31k";
       };
     };
     "whatwg-url-6.5.0" = {
@@ -9586,7 +9586,7 @@ let
       version = "6.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz";
-        sha512 = "rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==";
+        sha512 = "36rzky2jm48j68kfvdhvr0cmbnvr2liaagpnnypc59mlvq4bbcwx9qbdb93hbi4vwx0w287zphiardpmfwyjl2ab58b4k3zmi35j55f";
       };
     };
     "whatwg-url-7.1.0" = {
@@ -9595,7 +9595,7 @@ let
       version = "7.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz";
-        sha512 = "WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==";
+        sha512 = "1xa656b9abn0fnwqaybjm3h5gs9x26cc3zj7jkk5n3865l9d1wqpp461s4l3i2mgbwf90q6psgvbb80lbrmkihbl4xq7bj31m3bnjsr";
       };
     };
     "which-1.3.1" = {
@@ -9604,7 +9604,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz";
-        sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==";
+        sha512 = "0hr4hxkk8yb9fz993bs69pf8z2z2qb6sdpxfxb84sd16lja9fsx444pk1ang1ivmjjv5srnsm6fihdj593w7rwxdh834cdmd9hms4hz";
       };
     };
     "which-module-2.0.0" = {
@@ -9640,7 +9640,7 @@ let
       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==";
+        sha512 = "2ykkqcs7vmimn8dsvs7xl55j0lbbrfj0nij9i7yqnxg9g759vqyrdis8w5n82k6xvas03x0xhgmbzjgsp7v803mzihx9d12vjnfcgqz";
       };
     };
     "wordwrap-0.0.2" = {
@@ -9658,7 +9658,7 @@ let
       version = "1.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz";
-        sha512 = "rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==";
+        sha512 = "37m9wq9rvylb71n9kw3qghinwa3x4sggz82k29aall83izni78ijnh8rd6nhas8advw0lbnhby8z74vjlhp3sjsr4qm1wjw6r0kgz5f";
       };
     };
     "wrap-ansi-2.1.0" = {
@@ -9676,7 +9676,7 @@ let
       version = "5.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
-        sha512 = "QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==";
+        sha512 = "3nmsfqfd98a7bgjyhd334y5gzc98nnkipfkmk2z1v4m0acagmpq951d8brmrsxvpnk256fbrp7zkn5n8v02pn4q4zai7zgnvy47yba0";
       };
     };
     "wrappy-1.0.2" = {
@@ -9694,7 +9694,7 @@ let
       version = "2.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz";
-        sha512 = "TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==";
+        sha512 = "2zcd4w8bmjv2qg25v2ysnj63r717jb6zmrh2f4c92r0dh0zwj3ybyzg5h619b4adxksn67cg8y5pgn43hq7wl8ih3z7nchrj5wwaqac";
       };
     };
     "ws-5.2.2" = {
@@ -9703,7 +9703,7 @@ let
       version = "5.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz";
-        sha512 = "jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==";
+        sha512 = "0f6ay7yn6xslzh3h66d5krqnp48d9g3ikwk0ijiyyxfkwaqxxf3b0qdswy6ych79mj44315qd16snlnk6m6npc5l0habgy5lc7wb8cd";
       };
     };
     "ws-6.2.1" = {
@@ -9712,7 +9712,7 @@ let
       version = "6.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz";
-        sha512 = "GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==";
+        sha512 = "2l27cfiaw6syjvy6vbpqf5c2swd37bqviizzck6842xlankppm9j1sg79x3m8jpda8v6khcpnm5ssab1b8vf34qpviv41ww5mf8130q";
       };
     };
     "xml-name-validator-3.0.0" = {
@@ -9721,7 +9721,7 @@ let
       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==";
+        sha512 = "0zzh3xf5vk49fghwrf83qvq6v98qin1brnwd7yyh7qs05gc1w3xni0w17sj33534jrkm2za7wkm4q5rhgpchds54i5grcj3vjk99403";
       };
     };
     "xtend-4.0.2" = {
@@ -9730,7 +9730,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
-        sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
+        sha512 = "08w1d6fg23v422cfwd55306pfs9n9cqpz6hycahq3adm3n29wmhl9bmpn4vk75rlzgwn7hp4n3idqxvw8c53zbr04h7a98p43b199ic";
       };
     };
     "y18n-4.0.0" = {
@@ -9739,7 +9739,7 @@ let
       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==";
+        sha512 = "3zj75gvpcgiphxpci4ji1znykk9n4cs0aw3dd6inwdvkmxyqn2483vya70lssjwq8alspnpw88vgii21fdrcn2vmfyppzgf4mkvzm5g";
       };
     };
     "yaeti-0.0.6" = {
@@ -9766,7 +9766,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
-        sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
+        sha512 = "3ig31a6zfbdlrs3l77a8avpp17hajryhyq2xk4h3ayc4dmxch146rdk7q1s1jgx9qvmxq125r0xq2bvnq0rq63m75k9y7wglm0hd1bb";
       };
     };
     "yargs-12.0.5" = {
@@ -9775,7 +9775,7 @@ let
       version = "12.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz";
-        sha512 = "Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==";
+        sha512 = "1kjmh68p4rb4c04s0gk4ra20crfr32h6v9zhj4clrz61xanslza9g3drbf6471mmvqq3vmxk04grmgillx1rsp6v2zim7wqnr6gq71f";
       };
     };
     "yargs-13.2.4" = {
@@ -9784,7 +9784,7 @@ let
       version = "13.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz";
-        sha512 = "HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==";
+        sha512 = "2ba88a0fmf5k7dddcbkyhlmh7pijzczza486f2vq9pyw739r7q4yy2xmv4hk8w4ibrj4sjgf6zw01phb89h4j9z3lkz1m2s09cc6vqw";
       };
     };
     "yargs-13.3.2" = {
@@ -9793,7 +9793,7 @@ let
       version = "13.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz";
-        sha512 = "AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==";
+        sha512 = "19rg5b2rhj2kg44as5vv9jxmpr39lw250885w6nlfwyhvwd5nxnnx7fc35v7h615i65cik7k3wi7ac20c91kcgfi5wy7blgk31xjz81";
       };
     };
     "yargs-3.10.0" = {
@@ -9811,7 +9811,7 @@ let
       version = "10.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz";
-        sha512 = "VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==";
+        sha512 = "1nj7f7y3kyrc1ijsgnaf4mdkxhxy38lnckavl6inh9wwzhx12xfmgq0n45x4fbj0y6rd1zhjv57l49qm07kqfd9a9cl1809bi3k48jl";
       };
     };
     "yargs-parser-11.1.1" = {
@@ -9820,7 +9820,7 @@ let
       version = "11.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz";
-        sha512 = "C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==";
+        sha512 = "14iaywclwncdp3p7878q12cqgdc5rbkl0f6ghi9g7k7f4f1bbqi41dc5ki6hnqmy6jbfk0kx88m47vk3igrql5j6i7ar2a3cbyh3a8b";
       };
     };
     "yargs-parser-13.1.2" = {
@@ -9829,7 +9829,7 @@ let
       version = "13.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz";
-        sha512 = "3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==";
+        sha512 = "375nan6m28q81h8q9a8vmcxgiq7s81yn1ql7zdikac0c4j2kmxdjzmbq14fcp9jm4ilcfzkd9ym4x7c80s7r6g488wf13zz2wsyqmny";
       };
     };
     "ylru-1.2.1" = {
@@ -9838,7 +9838,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz";
-        sha512 = "faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==";
+        sha512 = "2yw1b7v991krvw6f597i39x9sqp12qxlfnqz8zd75x00m7jp2a08b2zivbx59b5ih7ka14swqmpfk9ni2inkdjh363z0w1ksfl2p93x";
       };
     };
   };
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/data.nix b/pkgs/applications/networking/cluster/terraform-providers/data.nix
index 6994f2b85a3..117fb874bc0 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/data.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/data.nix
@@ -4,9 +4,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-aci";
-      rev     = "v0.2.1";
-      version = "0.2.1";
-      sha256  = "1ylc3w5m68q7vvdignrgw3kwdmrw7w0blmfffxc4cam0a6a7q05l";
+      rev     = "v0.2.3";
+      version = "0.2.3";
+      sha256  = "0sk0pp178w03fhsb65b9mpim1l4wqfnv9r9x64kiapjnvfb1rz3j";
     };
   acme =
     {
@@ -20,17 +20,17 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-akamai";
-      rev     = "v0.5.0";
-      version = "0.5.0";
-      sha256  = "18l1ik10pn4aq0911sqnfjw9a5zxrm0qbsgynvf5vxc02zds13n5";
+      rev     = "v0.7.1";
+      version = "0.7.1";
+      sha256  = "0mg81147yz0m24xqljpw6v0ayhvb4fwf6qwaj7ii34hy2gjwv405";
     };
   alicloud =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-alicloud";
-      rev     = "v1.80.1";
-      version = "1.80.1";
-      sha256  = "0d483lp3rwz99f77sds717hafzbz1z7gq58dw52qzqagam8lrc10";
+      rev     = "v1.86.0";
+      version = "1.86.0";
+      sha256  = "1hbv9ah7fd173sapwgsbg7790piwxw9zx90wfj5vz5b96ggbg28d";
     };
   archive =
     {
@@ -52,49 +52,49 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-auth0";
-      rev     = "v0.9.3";
-      version = "0.9.3";
-      sha256  = "04dd7jxhpw2dqj6h3sbknbl1fa92jzshznm8icxrjajpxhcnbc32";
+      rev     = "v0.11.0";
+      version = "0.11.0";
+      sha256  = "1dkcgzvvwmw5z5q4146jk0gj5b1zrv51vvkhhjd8qh9ipinipn97";
     };
-  avi =
+  aviatrix =
     {
       owner   = "terraform-providers";
-      repo    = "terraform-provider-avi";
-      rev     = "18.2.8";
-      version = "18.2.8";
-      sha256  = "0vpa6wksvb4gz65hgq0vizw0bky400bqh9zgf41g0mqkhv3wwb4i";
+      repo    = "terraform-provider-aviatrix";
+      rev     = "v2.14.1";
+      version = "2.14.1";
+      sha256  = "137z7fgy5gp9n9fdvllyjh3nkbalrs2giqljfldbllymhvrv7xgr";
     };
-  aviatrix =
+  avi =
     {
       owner   = "terraform-providers";
-      repo    = "terraform-provider-aviatrix";
-      rev     = "v2.13.0";
-      version = "2.13.0";
-      sha256  = "1913fp3lfvdr3npwr0vbdhb4xsvyyr1r76hv3h7rg5fidf3vpw5a";
+      repo    = "terraform-provider-avi";
+      rev     = "v0.2.2";
+      version = "0.2.2";
+      sha256  = "0dgpjg6iw21vfcn4i0x6x1l329a09wrd2jwghrjigwlq68wd835d";
     };
   aws =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-aws";
-      rev     = "v2.59.0";
-      version = "2.59.0";
-      sha256  = "0hkvjvabw8phl5mb9km2dxm64a5lf56g9aq9qf593zsij1rsjwkk";
+      rev     = "v2.65.0";
+      version = "2.65.0";
+      sha256  = "005vs1qd6payicxldc9lr4w6kzr58xw9b930j52g1q7hlddl5mbb";
     };
   azuread =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-azuread";
-      rev     = "v0.8.0";
-      version = "0.8.0";
-      sha256  = "0vljhjbizxh5s8f2ki7yn6hzf5xbn5swhxmq9wpxmg7jw5z0k6ha";
+      rev     = "v0.10.0";
+      version = "0.10.0";
+      sha256  = "0i9xrsqgh1024189hihm2nqrcy2pcyf1bwxnamwmwph5cas6hfb3";
     };
   azurerm =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-azurerm";
-      rev     = "v2.7.0";
-      version = "2.7.0";
-      sha256  = "0w4bafj3kn5kvkrc26ix1y9rgf3w4810x7la7g1aclpg7507fcv3";
+      rev     = "v2.13.0";
+      version = "2.13.0";
+      sha256  = "0aj19vy1flpb2233rxaypjcfimjr1wfqri1m3p15dy1r108q84r7";
     };
   azurestack =
     {
@@ -116,9 +116,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-bigip";
-      rev     = "v1.12";
-      version = "1.12";
-      sha256  = "0yjv0xldplx7jfld1izzc7i93bzwdqrjjzymq02isy2xyfh8by35";
+      rev     = "v1.2.0";
+      version = "1.2.0";
+      sha256  = "0z0l4j8sn8yf6kw5sbyhp6s0046f738lsm650skcspqa5f63mbd9";
     };
   bitbucket =
     {
@@ -132,17 +132,17 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-brightbox";
-      rev     = "v1.2.0";
-      version = "1.2.0";
-      sha256  = "0s1b2k58r2kmjrdqrkw2dlfpby79i81gml9rpa10y372bwq314zd";
+      rev     = "v1.3.0";
+      version = "1.3.0";
+      sha256  = "127l1ic70fkcqr0h23qhbpl1j2mzp44p9593x8jl936xz4ll8l70";
     };
   checkpoint =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-checkpoint";
-      rev     = "v1.0.1";
-      version = "1.0.1";
-      sha256  = "1z2m8lbnplcfaij1xnclyhl4zlchx6bmvrc2fr4hwfzc58m9v7ra";
+      rev     = "v1.0.2";
+      version = "1.0.2";
+      sha256  = "0zypjcg1z8fkz31lfhysxx42lpw8ak4aqgdis6rxzqbnkk491fjp";
     };
   chef =
     {
@@ -180,9 +180,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-cloudflare";
-      rev     = "v2.6.0";
-      version = "2.6.0";
-      sha256  = "01z2znif5yy4bawcf76b6d0j3b67fljbx87b4b2cb5vqy4l4aamk";
+      rev     = "v2.7.0";
+      version = "2.7.0";
+      sha256  = "1r18lxhfi2sd42ja4bzxbkf5bli8iljrpqbgdcn1a7rcf44vnxa2";
     };
   cloudinit =
     {
@@ -216,13 +216,37 @@
       version = "1.1.0";
       sha256  = "08ljqibfi6alpvv8f7pzvjl2k4w6br6g6ac755x4xw4ycrr24xw9";
     };
+  cohesity =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-cohesity";
+      rev     = "v0.1.0";
+      version = "0.1.0";
+      sha256  = "1yifipjf51n8q9xyqcmc4zjpszmpyzb330f4zas81hahjml78hgx";
+    };
+  constellix =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-constellix";
+      rev     = "v0.1.0";
+      version = "0.1.0";
+      sha256  = "14y0v8ilbrjj0aymrw50fkz2mihnwyv83z8a9f8dh399s8l624w1";
+    };
   consul =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-consul";
-      rev     = "v2.7.0";
-      version = "2.7.0";
-      sha256  = "11c54waq7w34l79ak4kizjkmh8zjca5ygh9yib691hdmxsx2cifj";
+      rev     = "v2.8.0";
+      version = "2.8.0";
+      sha256  = "1brd0fp9ksc3x8cygxm0k2q1sh4v5x89298pnidg6xirn41lvcr4";
+    };
+  ct =
+    {
+      owner   = "poseidon";
+      repo    = "terraform-provider-ct";
+      rev     = "v0.5.0";
+      version = "0.5.0";
+      sha256  = "1zqfaxlyhr9vpqj2qqpfyh1f1nfpynb7c5ris6mdmy9zin55ppni";
     };
   datadog =
     {
@@ -236,9 +260,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-digitalocean";
-      rev     = "v1.16.0";
-      version = "1.16.0";
-      sha256  = "0yymgkn66a9mif0wic4rais7ap6d4gfxij835ssr2pr3rb49ay8d";
+      rev     = "v1.19.0";
+      version = "1.19.0";
+      sha256  = "0plfkwkfb19f7bzky4jfa2kmkqvbah02c6j6applsd3jyiawpbgy";
     };
   dme =
     {
@@ -252,9 +276,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-dnsimple";
-      rev     = "v0.3.0";
-      version = "0.3.0";
-      sha256  = "1m38whc6jx5mccaisnbnkawwlz1bxvy991rqy6h9xb10zyvqar62";
+      rev     = "v0.4.0";
+      version = "0.4.0";
+      sha256  = "1f1cpfa30frghp4yxp9n313yaf2mm1hnjq4kzmn6n9210prab9h1";
     };
   dns =
     {
@@ -268,17 +292,17 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-docker";
-      rev     = "v2.7.0";
-      version = "2.7.0";
-      sha256  = "0pl515xjnic7mhfvqbml1z1win5mrhjdqb84jhd5n09j39lb24gx";
+      rev     = "v2.7.1";
+      version = "2.7.1";
+      sha256  = "1jqnlc3dfy354yjdkj8iyxv0vamyxgmwxmhjim11alwzwjafbv9s";
     };
   dome9 =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-dome9";
-      rev     = "v1.18.1";
-      version = "1.18.1";
-      sha256  = "0m4fxpik55z9ah5nlhvy314xyxvlaldqbwdp3bx1xs9kpm3znvyl";
+      rev     = "v1.19.0";
+      version = "1.19.0";
+      sha256  = "190q74aaa1v7n7pqcri8kib0g0d4njf9dzm3cygyzmsjs3pxj1lc";
     };
   dyn =
     {
@@ -308,25 +332,25 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-fastly";
-      rev     = "v0.14.0";
-      version = "0.14.0";
-      sha256  = "1ak5gyrv66dnf5qy54hvwc4478n3cs5nxd0nwa2vf0gn2zp55bhy";
+      rev     = "v0.16.1";
+      version = "0.16.1";
+      sha256  = "1pjrcw03a86xgkzcx778f7kk79svv8csy05b7qi0m5x77zy4pws7";
     };
   flexibleengine =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-flexibleengine";
-      rev     = "v1.11.1";
-      version = "1.11.1";
-      sha256  = "12kgnq2ydwi2n29y0dc7r251zrnq8kkskiq8p5ypsrm23j3jm6dw";
+      rev     = "v1.12.1";
+      version = "1.12.1";
+      sha256  = "0klxi40dd3a4dp7gjsjjwh6zv2m94hh6mk5m9g0dyhvn0r28w5j2";
     };
   fortios =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-fortios";
-      rev     = "v1.1.0";
-      version = "1.1.0";
-      sha256  = "0m006ah351f2ih7zvd3pnpga4d8mh42i4m8af4wflhvyzkw50xnf";
+      rev     = "v1.2.0";
+      version = "1.2.0";
+      sha256  = "0sqp23pyldxjkfw33xn5l5fqs4vn00kkfhy9wnl690wn0cwmldbx";
     };
   genymotion =
     {
@@ -340,17 +364,17 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-github";
-      rev     = "v2.6.1";
-      version = "2.6.1";
-      sha256  = "1hg5pij2hllj6m6x8salsgw404ap7pw6yccvgynw4y4k26dl0jlr";
+      rev     = "v2.8.0";
+      version = "2.8.0";
+      sha256  = "11aw9wqnayl786hvbgnb9ijijaipaggj18vkn5y0kcj2v4dwq4wg";
     };
   gitlab =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-gitlab";
-      rev     = "v2.6.0";
-      version = "2.6.0";
-      sha256  = "0qy58fgwipcjwxz473rpcnpkb22n9hqsjckx88lhc2br4pgbcbrd";
+      rev     = "v2.9.0";
+      version = "2.9.0";
+      sha256  = "0l0b69nxxskpsylcgli2sm9qq7p4hw96dsri24w38shhnxmpysbb";
     };
   google-beta =
     {
@@ -380,9 +404,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-gridscale";
-      rev     = "v1.5.1";
-      version = "1.5.1";
-      sha256  = "0m5j9y26a7jl3frnw1j8gll999brprgf0i29p201d3c9b02pxnla";
+      rev     = "v1.6.0";
+      version = "1.6.0";
+      sha256  = "00l3cwvyyjk0n3j535qfj3bsf1s5l07786gnxycj0f8vz3a06bcq";
     };
   hcloud =
     {
@@ -402,19 +426,19 @@
     };
   helm =
     {
-      owner   = "terraform-providers";
+      owner   = "hashicorp";
       repo    = "terraform-provider-helm";
-      rev     = "v1.1.1";
-      version = "1.1.1";
-      sha256  = "0sna0xaibdh1aw3lxs1r2hidw95lxkpm4fqdw0hzmdqxwdmg4b40";
+      rev     = "v1.2.2";
+      version = "1.2.2";
+      sha256  = "1hjlf0pzc9jkcvqi52kvqwmd8v0cvnhhcbahzxmv0zkdwh310c12";
     };
   heroku =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-heroku";
-      rev     = "v2.4.0";
-      version = "2.4.0";
-      sha256  = "1rhny1mbkqkfiqshps5mc5f3ykxnpypsdi72hw4g1k29pbvr4hh8";
+      rev     = "v2.4.1";
+      version = "2.4.1";
+      sha256  = "10dacnd0y8q952s53n5myy08slw349pbfddjz63wcblcjyhvq0df";
     };
   http =
     {
@@ -428,9 +452,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-huaweicloudstack";
-      rev     = "v1.1.0";
-      version = "1.1.0";
-      sha256  = "1zzf7jbvdlccfbb4cmw2k3mlfj4hh0lv59zahq2zy8afiajsb68i";
+      rev     = "v1.2.0";
+      version = "1.2.0";
+      sha256  = "0jhx9rap4128j8sfkvpp8lbdmvdba0rkd3nxvy38wr3n18m7v1xg";
     };
   huaweicloud =
     {
@@ -444,9 +468,9 @@
     {
       owner   = "IBM-Cloud";
       repo    = "terraform-provider-ibm";
-      rev     = "v1.4.0";
-      version = "1.4.0";
-      sha256  = "147vl55g6c49ihk8z2hwfq2v7g1yj35id1qfjlz0dxalm7cwa3l6";
+      rev     = "v1.7.0";
+      version = "1.7.0";
+      sha256  = "1kb2dxdygvph65hh7qiba9kl9k5aygxxvx3x1qi28jwny594j82a";
     };
   icinga2 =
     {
@@ -496,21 +520,37 @@
       version = "1.1.0";
       sha256  = "04vz0m3z9rfw2hp0h3jhn625r2v37b319krznvhqylqzksv39dzf";
     };
+  ksyun =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-ksyun";
+      rev     = "v1.0.0";
+      version = "1.0.0";
+      sha256  = "1vcx612bz2p0rjsrx11j6fdc0f0q2jm5m3xl94wrpx9jjb7aczvc";
+    };
+  kubernetes-alpha =
+    {
+      owner   = "hashicorp";
+      repo    = "terraform-provider-kubernetes-alpha";
+      rev     = "nightly20200608";
+      version = "nightly20200608";
+      sha256  = "1g171sppf3kq5qlp6g0qqdm0x8lnpizgw8bxjlhp9b6cl4kym70m";
+    };
   kubernetes =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-kubernetes";
-      rev     = "v1.11.1";
-      version = "1.11.1";
-      sha256  = "13m0g52i2z4s58grk22rv0yqbrfszfbxxhwisb5mi7cma4cp7506";
+      rev     = "v1.11.3";
+      version = "1.11.3";
+      sha256  = "13j4xwibjgiqpzwbwd0d3z1idv0lwz78ip38khhmhwa78mjjb4zz";
     };
   launchdarkly =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-launchdarkly";
-      rev     = "v1.2.2";
-      version = "1.2.2";
-      sha256  = "0rvyzn2a8bh8hvd3f6whfwzpx2frqnfmh8nwlasb0r4xya8lv3bc";
+      rev     = "v1.3.2";
+      version = "1.3.2";
+      sha256  = "0vgkivzbf6hcl9by6l0whpwidva7zmmgdabkshjjk0npl2cj8f9n";
     };
   librato =
     {
@@ -524,9 +564,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-linode";
-      rev     = "v1.9.3";
-      version = "1.9.3";
-      sha256  = "12jwvpnv4xl9crq6jynking2rcl4ci8ci22db3fadigxqs98hb4w";
+      rev     = "v1.12.3";
+      version = "1.12.3";
+      sha256  = "17hnm7wivd75psap2qdmlnmmlf964s7jf4jrfgsm6njx32wwwfpp";
     };
   local =
     {
@@ -580,9 +620,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-mongodbatlas";
-      rev     = "v0.5.0";
-      version = "0.5.0";
-      sha256  = "15m7qmn1gd7gmzlqgf2q70kmihf8ihqabpkf122pxhb3iyikwh77";
+      rev     = "v0.5.1";
+      version = "0.5.1";
+      sha256  = "0sl5yd1bqj79f7pj49aqh7l3fvdrbf8r7a4g7cv15qbc8g3lr1dh";
     };
   mysql =
     {
@@ -612,9 +652,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-newrelic";
-      rev     = "v1.16.0";
-      version = "1.16.0";
-      sha256  = "0ddfffyrw28syg0y2q9j7xh4k2sjb8l40167rwgz19w39p1caffv";
+      rev     = "v1.19.0";
+      version = "1.19.0";
+      sha256  = "0nmbgw4qyzsw8kxi7p8dy4j1lkxcz7qfs56qsvwf2w07y4qm382p";
     };
   nixos =
     {
@@ -636,9 +676,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-ns1";
-      rev     = "v1.8.1";
-      version = "1.8.1";
-      sha256  = "04s46f40md8hrqqiwj6wcq4qpx0115qk8hwbln9a7lsrh0zmmmb3";
+      rev     = "v1.8.3";
+      version = "1.8.3";
+      sha256  = "18mq6r8sw2jjvngay0zyvzlfiln8c0xb8hcrl2wcmnpqv2iinbkl";
     };
   nsxt =
     {
@@ -668,9 +708,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-oci";
-      rev     = "v3.72.0";
-      version = "3.72.0";
-      sha256  = "05sl702b0j9lpsy3bjac104qngjlsln0v2ni8a78j97xif8jb0an";
+      rev     = "v3.79.0";
+      version = "3.79.0";
+      sha256  = "11n2v537zniiv5xvhpypqrm09my8zybirvq4ly94hp69v73xj89c";
     };
   oktaasa =
     {
@@ -684,9 +724,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-okta";
-      rev     = "v3.2.0";
-      version = "3.2.0";
-      sha256  = "13z5srra4pj5p2dwzrqiny2ph4vmmp8q59ycmd7x2yi93fd02mcl";
+      rev     = "v3.3.0";
+      version = "3.3.0";
+      sha256  = "1z557z1yagp2caf85hmcr6sddax9a5h47jja17082qmmr1qy0i07";
     };
   oneandone =
     {
@@ -716,25 +756,25 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-openstack";
-      rev     = "v1.27.0";
-      version = "1.27.0";
-      sha256  = "0d6dms5y8vndcm10zfid1g13c5fi19z7hqll8z07jr0hgvhbzp2v";
+      rev     = "v1.28.0";
+      version = "1.28.0";
+      sha256  = "1g2nxv312ddvkgpph17m9sh4zmy5ddj8gqwnfb3frbfbbamrgar6";
     };
   opentelekomcloud =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-opentelekomcloud";
-      rev     = "v1.16.0";
-      version = "1.16.0";
-      sha256  = "1bxkh8qnm1mw37wi4rxf29q8lksp864124nwbyn14fwb4h6m1yj4";
+      rev     = "v1.17.1";
+      version = "1.17.1";
+      sha256  = "1d4w35hpvxy5wkb6n9wrh2nfcsy0xgk6d4jbk4sy7dn44w3nkqbg";
     };
   opsgenie =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-opsgenie";
-      rev     = "v0.3.1";
-      version = "0.3.1";
-      sha256  = "1ciqhibij0fk2z20yabl464mj9srp1v6dy04dyazmxkw46bm1lc5";
+      rev     = "v0.3.4";
+      version = "0.3.4";
+      sha256  = "11pbkhn7yhz2mfa01ikn7rdajl28zwxfq9g9qdf9lvkdrv88gwh0";
     };
   oraclepaas =
     {
@@ -748,25 +788,25 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-ovh";
-      rev     = "v0.7.0";
-      version = "0.7.0";
-      sha256  = "167msjsl8xh8zy7lrxvkq2h98xpvxpsjzlil8lcxqmz8qq8a0q5f";
+      rev     = "v0.8.0";
+      version = "0.8.0";
+      sha256  = "1ww4ng8w5hm50rbxd83xzbkq8qsn04dqwpdjhs587v9d0x2vwrf1";
     };
   packet =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-packet";
-      rev     = "v2.8.1";
-      version = "2.8.1";
-      sha256  = "1idrvkc2bbp3vwz2w45nazr1hq10f7bmyamb57q7mlswydcyk6b2";
+      rev     = "v2.9.0";
+      version = "2.9.0";
+      sha256  = "0d9r272gidkwn4zr130ml047512qq5d5d599s63blzy6m38vilha";
     };
   pagerduty =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-pagerduty";
-      rev     = "v1.7.0";
-      version = "1.7.0";
-      sha256  = "168v1mpl9df63yp8zjq79hyxcjj4imyzg20rdn6n71d6iz8v85g8";
+      rev     = "v1.7.2";
+      version = "1.7.2";
+      sha256  = "1a8g8rpn52wibrxhnvhlda7ja38vw9aadgdc8nbj7zs50x4aj3ic";
     };
   panos =
     {
@@ -788,25 +828,25 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-postgresql";
-      rev     = "v1.5.0";
-      version = "1.5.0";
-      sha256  = "1c9vn1jpfan04iidzn030q21bz3xabrd5pdhlbblblf558ykn4q0";
+      rev     = "v1.6.0";
+      version = "1.6.0";
+      sha256  = "0m9x60hrry0cqx4bhmql081wjcbay3750jwzqiph5vpj9717banf";
     };
   powerdns =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-powerdns";
-      rev     = "v1.3.0";
-      version = "1.3.0";
-      sha256  = "0in8f9vfi9y71qac643lfgapbnxi40cwq9b3l82fl1r8ghg7kgri";
+      rev     = "v1.4.0";
+      version = "1.4.0";
+      sha256  = "1mfcj32v66w5gnzbrdkampydl3m9f1155vcdw8l1f2nba59irkgw";
     };
   profitbricks =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-profitbricks";
-      rev     = "v1.5.0";
-      version = "1.5.0";
-      sha256  = "0v9x8sj9c6acmbnkv4bnjvz93dd1fmg9b98rwghiakf968hxx6hl";
+      rev     = "v1.5.2";
+      version = "1.5.2";
+      sha256  = "0gass4gzv8axlzn5rgg35nqvd61q82k041r0sr6x6pv6j8v1ixln";
     };
   pureport =
     {
@@ -876,17 +916,17 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-scaleway";
-      rev     = "v1.14.0";
-      version = "1.14.0";
-      sha256  = "0j428pinwyyldg1jhlkad32213z98q3891yv906d6n7jg2bk5m6a";
+      rev     = "v1.15.0";
+      version = "1.15.0";
+      sha256  = "0bdhjrml14f5z4spkl7l305g0vdzpgama7ahngws8jhvl8yfa208";
     };
   secret =
     {
       owner   = "tweag";
       repo    = "terraform-provider-secret";
-      rev     = "v1.1.0";
-      version = "1.1.0";
-      sha256  = "09gv0fpsrxzgna0xrhrdk8d4va9s0gvdbz596r306qxb4mip4w3r";
+      rev     = "v1.1.1";
+      version = "1.1.1";
+      sha256  = "1pr0amzgv1i1lxniqlx8spdb73q522l7pm8a4m25hwy1kwby37sd";
     };
   segment =
     {
@@ -900,17 +940,17 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-selectel";
-      rev     = "v3.1.0";
-      version = "3.1.0";
-      sha256  = "1ajhnjlx4bf91z04cp8245j3h2h9c30ajf934zr29jvwli0y3piw";
+      rev     = "v3.3.0";
+      version = "3.3.0";
+      sha256  = "1fs96qd2b4glk8hhn5m9r04ap679g0kf3nnhjx1a2idqwrv71gcl";
     };
   signalfx =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-signalfx";
-      rev     = "v4.19.4";
-      version = "4.19.4";
-      sha256  = "15cf9paqrcznj99gv6mxqvgvkd8qbxkwz2145h2qxp5vdcykj78g";
+      rev     = "v4.23.0";
+      version = "4.23.0";
+      sha256  = "1v3whvqb6nilfvw4c0xziq6yrlkl96d2cya094c7bd7wp9hzif1l";
     };
   skytap =
     {
@@ -932,17 +972,17 @@
     {
       owner   = "carlpett";
       repo    = "terraform-provider-sops";
-      rev     = "v0.5.0";
-      version = "0.5.0";
-      sha256  = "18zhqjkw1639a1vrxniws3sf5p91vrf5m7kksaj3yfiavsr5q2ki";
+      rev     = "v0.5.1";
+      version = "0.5.1";
+      sha256  = "1x32w1qw46rwa8bjhkfn6ybr1dkbdqk0prlm0bnwn3gvvj0hc7kh";
     };
   spotinst =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-spotinst";
-      rev     = "v1.14.3";
-      version = "1.14.3";
-      sha256  = "06brm0bvr13f31km55y8bp4z1xj3imfi11k7l5nirjp73cbvcpmg";
+      rev     = "v1.17.0";
+      version = "1.17.0";
+      sha256  = "0pmbr2xdqrzkd66zv4gpyxzahs7p2m2xl5qyvqpg0apxn91z3ra7";
     };
   stackpath =
     {
@@ -964,9 +1004,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-sumologic";
-      rev     = "v2.0.0";
-      version = "2.0.0";
-      sha256  = "0j6lq9xcc3znjd4yd8gyzsbhwbbwi95k16kj1la9cicbvgra8iap";
+      rev     = "v2.0.3";
+      version = "2.0.3";
+      sha256  = "0d7xsfdfs6dj02bh90bhwsa2jgxf84df3pqmsjlmxvpv65dv4vs8";
     };
   telefonicaopencloud =
     {
@@ -988,9 +1028,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-tencentcloud";
-      rev     = "v1.32.0";
-      version = "1.32.0";
-      sha256  = "014zgslr14r446qifk4slq9g5qydxs7bk181gw227k9mr6krgba1";
+      rev     = "v1.36.0";
+      version = "1.36.0";
+      sha256  = "1sqynm0g1al5hnxzccv8iiqcgd07ys0g828f3xfw53b6f5vzbhfr";
     };
   terraform =
     {
@@ -1004,9 +1044,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-tfe";
-      rev     = "v0.16.0";
-      version = "0.16.0";
-      sha256  = "0c9csyp655wijlnr3rbmymg6gaa23y4fyav0b1y99qsxaa358af5";
+      rev     = "v0.18.0";
+      version = "0.18.0";
+      sha256  = "1cl83afm00fflsd3skynjvncid3r74fkxfznrs1v8qypcg1j79g1";
     };
   tls =
     {
@@ -1020,25 +1060,25 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-triton";
-      rev     = "v0.6.0";
-      version = "0.6.0";
-      sha256  = "10z032fa64sd8d6r4v2f4m7gp93v8wb2zk2r13fflzg5rfk5740z";
+      rev     = "v0.7.0";
+      version = "0.7.0";
+      sha256  = "14wbdm2rlmjld9y7iizdinhk1fnx5s8fgjgd3jcs1b4g126s0pl0";
     };
   turbot =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-turbot";
-      rev     = "v1.1.0";
-      version = "1.1.0";
-      sha256  = "1wb5n17rv1r5jn6xdzjjafw7s96i826x9ww8w6llllihgl798zn7";
+      rev     = "v1.3.0";
+      version = "1.3.0";
+      sha256  = "0z56s3kmx84raiwiny9jing8ac9msfd5vk8va24k8czwj2v5gb0f";
     };
   ucloud =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-ucloud";
-      rev     = "v1.19.0";
-      version = "1.19.0";
-      sha256  = "17wkhhxvriqix520nv4q4jrk7gah8kkq3l4nj0rzp1kdwxphmsz0";
+      rev     = "v1.20.0";
+      version = "1.20.0";
+      sha256  = "1s3xgdrngiy7slxwk5cmhij681yyfvc8185yig7jmrm21q2981f6";
     };
   ultradns =
     {
@@ -1052,9 +1092,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-vault";
-      rev     = "v2.10.0";
-      version = "2.10.0";
-      sha256  = "1yg8ck9z5ycw8akfhnv4pnxyfzav9dzbhizv4dp78xi2gnddrawi";
+      rev     = "v2.11.0";
+      version = "2.11.0";
+      sha256  = "1yzakc7jp0rs9axnfdqw409asrbjhq0qa7xn4xzpi7m94g1ii12d";
     };
   vcd =
     {
@@ -1084,9 +1124,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-vsphere";
-      rev     = "v1.17.3";
-      version = "1.17.3";
-      sha256  = "109rg8w6szdqq2hb9jg4j3i79z5ppb6vayikl1cg8m8dsv2whhrj";
+      rev     = "v1.18.3";
+      version = "1.18.3";
+      sha256  = "1cvfmkckigi80cvv826m0d8wzd98qny0r5nqpl7nkzz5kybkb5qp";
     };
   vthunder =
     {
@@ -1100,24 +1140,24 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-vultr";
-      rev     = "v1.1.5";
-      version = "1.1.5";
-      sha256  = "06sxcqklqqsninqach05fzilh6k2h9bv66mgfhf9s53ggs5nm8z7";
+      rev     = "v1.3.0";
+      version = "1.3.0";
+      sha256  = "0swc2fvp83d6w0cqvyxs346c756wr48xbn8m8jqkmma5s4ab2y4k";
     };
   wavefront =
     {
-      owner   = "spaceapegames";
+      owner   = "terraform-providers";
       repo    = "terraform-provider-wavefront";
-      rev     = "v2.1.1";
-      version = "2.1.1";
-      sha256  = "0cbs74kd820i8f13a9jfbwh2y5zmmx3c2mp07qy7m0xx3m78jksn";
+      rev     = "v2.3.0";
+      version = "2.3.0";
+      sha256  = "0aci96852bd4y8bi9y68p550jiji0c69kiw4zhf9qfld0sjz44j2";
     };
   yandex =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-yandex";
-      rev     = "v0.38.0";
-      version = "0.38.0";
-      sha256  = "16s9ffbdgws5hglfr6f48ipjv2sbkdpkg20m9s1m6v2f055nxwak";
+      rev     = "v0.40.0";
+      version = "0.40.0";
+      sha256  = "0dymhdrdm00m9xn4xka3zbvjqnckhl06vz5zm6rqivkmw8m2q0mz";
     };
 }
diff --git a/pkgs/applications/networking/cluster/terraform-providers/default.nix b/pkgs/applications/networking/cluster/terraform-providers/default.nix
index 82ce5a70679..686b9ef9500 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -82,6 +82,14 @@ let
       '';
     });
 
+    # https://github.com/hashicorp/terraform-provider-helm/pull/522
+    helm = automated-providers.helm.overrideAttrs (attrs: {
+      prePatch = attrs.prePatch or "" + ''
+        substituteInPlace go.mod --replace terraform-providers/terraform-provider-helm hashicorp/terraform-provider-helm
+        substituteInPlace main.go --replace terraform-providers/terraform-provider-helm hashicorp/terraform-provider-helm
+      '';
+    });
+
     # https://github.com/hashicorp/terraform-provider-http/pull/40
     http = automated-providers.http.overrideAttrs (attrs: {
       prePatch = attrs.prePatch or "" + ''
@@ -132,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 1aadbbc5ccd..6eaaa05106d 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix
@@ -10,7 +10,9 @@ buildGoModule rec {
     sha256 = "0ci9gcn9ijdbx25wa99iy0b3sl7akqa7b6gi9wnnl1dawpqznj7v";
   };
 
-  modSha256 = "1xk21xswqwpv34j4ba4fj8lcbvfdd12x7rq1hrdyd21mdhmrhw0p";
+  vendorSha256 = "1rdvyypdl3fk6af66gfjhyl271cnlx5xgrl1w68sc6sbvq00bqkd";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
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/libvirt/default.nix b/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
index daffb593090..42ed3d21066 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
@@ -19,7 +19,7 @@
 
 buildGoPackage rec {
   pname = "terraform-provider-libvirt";
-  version = "0.6.1";
+  version = "0.6.2";
 
   goPackagePath = "github.com/dmacvicar/terraform-provider-libvirt";
 
@@ -27,7 +27,7 @@ buildGoPackage rec {
     owner = "dmacvicar";
     repo = "terraform-provider-libvirt";
     rev = "v${version}";
-    sha256 = "1l2n97nj6g44n7bhnbjwmv36xi6754p4iq2qnpkdh39x4384a0zz";
+    sha256 = "1wkpns047ccff0clfb1108wjax1qb5v06hky0i3h2wpzysll7r7b";
   };
 
   nativeBuildInputs = [ pkgconfig makeWrapper ];
diff --git a/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix b/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
index fd2a6c36d65..d64178b1e65 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "1k54021178zybh9dqly2ly8ji9x5rka8dn9xd6rv7gkcl5w3y6fv";
   };
 
-  modSha256 = "1h95ng9by3i3v15s1ws1fv86a47vglivn42xbffdy94s108g0908";
+  vendorSha256 = "1shdpl1zsbbpc3mfs0l65ykq2h15ggvqylaixcap4j4lfl7m9my0";
+
+  doCheck = false;
 
   postBuild = "mv ../go/bin/terraform-provider-lxd{,_v${version}}";
 
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/update-all b/pkgs/applications/networking/cluster/terraform-providers/update-all
index 70dfc2f825d..e6e93b45403 100755
--- a/pkgs/applications/networking/cluster/terraform-providers/update-all
+++ b/pkgs/applications/networking/cluster/terraform-providers/update-all
@@ -117,7 +117,7 @@ slugs=(
   camptocamp/terraform-provider-pass
   carlpett/terraform-provider-sops
   poseidon/terraform-provider-matchbox
-  spaceapegames/terraform-provider-wavefront
+  poseidon/terraform-provider-ct
   tweag/terraform-provider-nixos
   tweag/terraform-provider-secret
 )
diff --git a/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix b/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix
index 2f788ed915e..a4167d2b099 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix
@@ -7,10 +7,12 @@ buildGoModule rec {
     owner = "vpsfreecz";
     repo = "terraform-provider-vpsadmin";
     rev = "v${version}";
-    hash = "sha256-+6jRjcManQdoKh7ewOJI1UaulY5OSbkIUHmtrBI33u4=";
+    sha256 = "1vny6w9arbbra04bjjafisaswinm93ic1phy59l0g78sqf6x3a7v";
   };
 
-  modSha256 = "sha256-gz+t50uHFj4BQnJg6kOJI/joJVE+usLpVzTqziek2wY=";
+  vendorSha256 = "0j90fnzba23mwf9bzf9w5h0hszkl3h61p5i780s9v9c0hbzhbqsh";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 516c4e51402..8aa1f4a44fe 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,18 +119,25 @@ in rec {
   terraform_0_11-full = terraform_0_11.full;
 
   terraform_0_12 = pluggable (generic {
-    version = "0.12.24";
-    sha256 = "1rjihp6qcaizp2nnv4z20kpmjnqcw95pq5rnhq381a3pdzr0cd0z";
+    version = "0.12.29";
+    sha256 = "18i7vkvnvfybwzhww8d84cyh93xfbwswcnwfrgvcny1qwm8rsaj8";
     patches = [
         ./provider-path.patch
         (fetchpatch {
             name = "fix-mac-mojave-crashes.patch";
-            url = "https://github.com/hashicorp/terraform/pull/24562.patch";
+            url = "https://github.com/hashicorp/terraform/commit/cd65b28da051174a13ac76e54b7bb95d3051255c.patch";
             sha256 = "1k70kk4hli72x8gza6fy3vpckdm3sf881w61fmssrah3hgmfmbrs";
         }) ];
     passthru = { inherit plugins; };
   });
 
+  terraform_0_13 = pluggable (generic {
+    version = "0.13.0";
+    sha256 = "0kangddd99ix50w67hi0pwa9js9c0hjxqvrc0lxaa6msjvjsxyyq";
+    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 245bd2fffbb..14744f188b0 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.14";
+  version = "0.23.33";
 
    src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1znb9d4n9zv3dq10dw17kb1h04gj8iz6gwx1a741fcf4ygp8zpy1";
+    sha256 = "0fsyvmdg2llnzy0yzmiihnb865ccq2sn6d3i935dflppnjyp01p4";
   };
 
-  modSha256 = "0pjqsb6lxk73prc6jxj07iwd1wyy5gqz24kigb308r3n0c2vcnky";
+  vendorSha256 = "05p72l724qqf61dn0frahf4awvkkcw8cpl6nhwlacd1jw8c14fjl";
+
+  doCheck = false;
 
   buildInputs = [ makeWrapper ];
 
diff --git a/pkgs/applications/networking/cluster/tilt/default.nix b/pkgs/applications/networking/cluster/tilt/default.nix
index 13f2c3d9bd9..c2ffb816aa9 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.0";
 
   src = fetchFromGitHub {
-    owner  = "windmilleng";
+    owner  = "tilt-dev";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "035czgr0rn6gcv24vnlr35n9yvy0fwq4spdzsc76gfxckcbcmzz0";
+    sha256 = "0bd01fmrf17njzf8ri4bw4qi7bxcvd3dx7yyf42qfvnp7hrfzipk";
   };
-
-  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/datovka/default.nix b/pkgs/applications/networking/datovka/default.nix
index 976541177dd..6dc996c7975 100644
--- a/pkgs/applications/networking/datovka/default.nix
+++ b/pkgs/applications/networking/datovka/default.nix
@@ -11,11 +11,11 @@
 
 mkDerivation rec {
   pname = "datovka";
-  version = "4.15.0";
+  version = "4.15.1";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/datove_schranky/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1f311qnyiay34iqpik4x492py46my89j4nnbdf6qcidnydzas8r1";
+    sha256 = "0ab1s1r6zrqxcfjnij5ar352kzyrl1m92c04nqk6hahpzzma2p3r";
   };
 
   buildInputs = [ libisds qmake qtbase qtsvg libxml2 ];
diff --git a/pkgs/applications/networking/dnscontrol/default.nix b/pkgs/applications/networking/dnscontrol/default.nix
index e8500872d52..70e107c063f 100644
--- a/pkgs/applications/networking/dnscontrol/default.nix
+++ b/pkgs/applications/networking/dnscontrol/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "dnscontrol";
-  version = "3.0.0";
+  version = "3.2.0";
 
   goPackagePath = "github.com/StackExchange/dnscontrol";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "StackExchange";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1j8i4k7bqkqmi6dmc9fxfab49a7qigig72rlbga902lw336p6cc7";
+    sha256 = "1lrn1whmx9zkyvs505zxrsmnr5s6kpj3kjkr6rblfwdlnadkgfj7";
   };
 
   subPackages = [ "." ];
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/newsboat/default.nix b/pkgs/applications/networking/feedreaders/newsboat/default.nix
index 5b97859304c..18c39588775 100644
--- a/pkgs/applications/networking/feedreaders/newsboat/default.nix
+++ b/pkgs/applications/networking/feedreaders/newsboat/default.nix
@@ -1,37 +1,38 @@
-{ stdenv, rustPlatform, fetchFromGitHub, stfl, sqlite, curl, gettext, pkgconfig, libxml2, json_c, ncurses
+{ stdenv, rustPlatform, fetchFromGitHub, stfl, sqlite, curl, gettext, pkg-config, libxml2, json_c, ncurses
 , asciidoctor, libiconv, Security, makeWrapper }:
 
 rustPlatform.buildRustPackage rec {
   pname = "newsboat";
-  version = "2.19";
+  version = "2.20.1";
 
   src = fetchFromGitHub {
     owner = "newsboat";
     repo = "newsboat";
     rev = "r${version}";
-    sha256 = "0yyrq8a90l6pkrczm9qvdg75jhsdq0niwp79vrdpm8rsxqpdmfq7";
+    sha256 = "1i9dpkdlsm3ya0w2x4c8kplrp3qzd8slbkcqvzfpqggb67gvczvv";
   };
 
-  cargoSha256 = "1q3jf3d80c0ik38qk8jgbhfz5jxv0cy3lzmkyh2l002azp9hvv59";
+  cargoSha256 = "1ykffx2lhn4w56qm1wypkg9wsqpvzzrz419qkl95w1384xf3f7ix";
 
   postPatch = ''
     substituteInPlace Makefile --replace "|| true" ""
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
     # Allow other ncurses versions on Darwin
     substituteInPlace config.sh \
       --replace "ncurses5.4" "ncurses"
   '';
 
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
     asciidoctor
     gettext
-  ] ++ stdenv.lib.optionals stdenv.isDarwin [ makeWrapper libiconv ];
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [ makeWrapper ncurses ];
 
   buildInputs = [ stfl sqlite curl libxml2 json_c ncurses ]
-    ++ stdenv.lib.optional stdenv.isDarwin Security;
+    ++ stdenv.lib.optionals stdenv.isDarwin [ Security libiconv gettext ];
 
   postBuild = ''
-    make
+    make prefix="$out"
   '';
 
   # TODO: Check if that's still needed
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..b852eb02fec 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.1";
 
-  propagatedBuildInputs = [ feedparser beautifulsoup4 html2text ];
+  propagatedBuildInputs = [ feedparser html2text ];
+  checkInputs = [ beautifulsoup4 ];
 
   src = fetchurl {
     url = "mirror://pypi/r/rss2email/${pname}-${version}.tar.gz";
-    sha256 = "1vk5slp2mhmc1qj30igqkyq3z5h2bl1ayhafqrjapa6cg6rbvhrn";
+    sha256 = "0zqpibh31rl6xlfw9y66d9hfhwrnzy5cjzbksczyw3lh4dfzsql0";
   };
 
   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 5ee80250dde..93356dfb4f8 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.0";
+  version = "3.7.0";
 
   src = fetchFromGitHub {
     owner = "martinrotter";
     repo = pname;
     rev = version;
-    sha256 = "0nlvhcvd3bbvd3dapqix7h29pchbd9gv5n3hmrig9yi98yv8q53r";
+    sha256 = "1maiazjsnjalx09rq1l84kd86s48cvljnwynv4rj6cln1h0al030";
   };
 
   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 20ddc6c93d4..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.30";
+  version = "3.1.67";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "453992c6bf8a7b0f83abeddd0e8f989dc10fd59e407e3803b886072cff2576a7";
+    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 780385b28f3..7d07c7acbe4 100644
--- a/pkgs/applications/networking/ftp/filezilla/default.nix
+++ b/pkgs/applications/networking/ftp/filezilla/default.nix
@@ -10,23 +10,17 @@
 , pugixml
 , sqlite
 , tinyxml
-, wxGTK30
+, wxGTK30-gtk3
 , xdg_utils
 }:
 
-let
-  # we can drop this when wxgtk is built with gtk3 by default
-  # see: https://github.com/NixOS/nixpkgs/pull/73145
-  wxgtk' = wxGTK30.override { compat26 = false; withGtk2 = false; };
-
-in
 stdenv.mkDerivation rec {
   pname = "filezilla";
-  version = "3.48.0";
+  version = "3.49.1";
 
   src = fetchurl {
     url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.bz2";
-    sha256 = "0msxl8ihbycd56hmn1q8sl1gzmsxc7j8ar9k4zsryd0ayyz7wv05";
+    sha256 = "1dmkwpc0vy7058bh9a10ida0k64rxggap8ysl5xx3457y468rk2f";
   };
 
   # https://www.linuxquestions.org/questions/slackware-14/trouble-building-filezilla-3-47-2-1-current-4175671182/#post6099769
@@ -52,8 +46,8 @@ stdenv.mkDerivation rec {
     pugixml
     sqlite
     tinyxml
-    wxgtk'
-    wxgtk'.gtk
+    wxGTK30-gtk3
+    wxGTK30-gtk3.gtk
     xdg_utils
   ];
 
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 a7dc6fe1550..a32da469719 100644
--- a/pkgs/applications/networking/gmailctl/default.nix
+++ b/pkgs/applications/networking/gmailctl/default.nix
@@ -14,7 +14,9 @@ buildGoModule rec {
     sha256 = "08q4yjfbwlldirf3j5db18l8kn6sf288wd364s50jlcx2ka8w50j";
   };
 
-  modSha256 = "1c7dk6l8lkq2j04cp5g97hwkwfmmyn5r0vpr5zpavvalxgjidsf4";
+  vendorSha256 = "0qp8n7z3vcsbc6safp7i18i0i3r4hy4nidzwl85i981sg12vcg6b";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Declarative configuration for Gmail filters";
@@ -24,4 +26,3 @@ buildGoModule rec {
     platforms = platforms.unix;
   };
 }
-
diff --git a/pkgs/applications/networking/gns3/default.nix b/pkgs/applications/networking/gns3/default.nix
index 6cfc5ed3a99..73f2ab25264 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.12";
   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 = "05nnil8ljyj6h366yrniv6syznhhbnb7nzjkz5785rb9pzjizs19";
+  serverSrcHash = "0gmfdnymiw4w13qbcsvd71yj3hc9640n43c305vq39hahvsn7rvc";
 in {
   guiStable = mkGui {
     stable = true;
diff --git a/pkgs/applications/networking/gns3/gui.nix b/pkgs/applications/networking/gns3/gui.nix
index 2524731cd05..8eb688bcd56 100644
--- a/pkgs/applications/networking/gns3/gui.nix
+++ b/pkgs/applications/networking/gns3/gui.nix
@@ -1,12 +1,9 @@
 { stable, branch, version, sha256Hash, mkOverride, commonOverrides }:
 
-{ lib, stdenv, python3, fetchFromGitHub }:
+{ lib, python3, fetchFromGitHub, wrapQtAppsHook }:
 
 let
-  # TODO: This package requires qt5Full to launch
   defaultOverrides = commonOverrides ++ [
-    (mkOverride "jsonschema" "2.6.0"
-      "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg")
   ];
 
   python = python3.override {
@@ -23,15 +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
   ];
 
   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 32dc42e9f51..bbf3f0514c4 100644
--- a/pkgs/applications/networking/gns3/server.nix
+++ b/pkgs/applications/networking/gns3/server.nix
@@ -4,8 +4,19 @@
 
 let
   defaultOverrides = commonOverrides ++ [
-    (mkOverride "jsonschema" "2.6.0"
-      "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg")
+    (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 {
@@ -29,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 679b3f4014f..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";
   };
 
-  modSha256 = "0888ikywclhjb4n7xqxc7hvzlhx1qhf4c3skaddqs3nrxm171jwn";
+  vendorSha256 = "1r5qg5cx48yw1l5nil28y4a82fc7g52jmy9pckaxygppmmn539pc";
+
+  doCheck = false;
 
   subPackages = [ "cmd/hydroxide" ];
 
diff --git a/pkgs/applications/networking/ids/snort/default.nix b/pkgs/applications/networking/ids/snort/default.nix
index 92415148ed5..49f7bbfd812 100644
--- a/pkgs/applications/networking/ids/snort/default.nix
+++ b/pkgs/applications/networking/ids/snort/default.nix
@@ -1,16 +1,16 @@
-{stdenv, fetchurl, libpcap, pcre, libdnet, daq, zlib, flex, bison, makeWrapper}:
+{stdenv, pkgconfig, luajit, openssl, fetchurl, libpcap, pcre, libdnet, daq, zlib, flex, bison, makeWrapper}:
 
 stdenv.mkDerivation rec {
-  version = "2.9.11.1";
+  version = "2.9.16";
   pname = "snort";
   
   src = fetchurl {
     name = "${pname}-${version}.tar.gz";
     url = "https://snort.org/downloads/archive/snort/${pname}-${version}.tar.gz";
-    sha256 = "1ka67zrrhs32c729v4h76mvv2723mij0adxx0iaza2d1qpm3lswz";
+    sha256 = "1mxspk0060f62xp631w589b9ryb21qygn020az3dw2fsy7nxi24n";
   };
   
-  buildInputs = [ makeWrapper libpcap pcre libdnet daq zlib flex bison ];
+  buildInputs = [ makeWrapper pkgconfig luajit openssl libpcap pcre libdnet daq zlib flex bison ];
 
   enableParallelBuilding = true;
 
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/baresip/default.nix b/pkgs/applications/networking/instant-messengers/baresip/default.nix
index ace546227b9..37d8adceae1 100644
--- a/pkgs/applications/networking/instant-messengers/baresip/default.nix
+++ b/pkgs/applications/networking/instant-messengers/baresip/default.nix
@@ -1,5 +1,5 @@
 {stdenv, fetchurl, zlib, openssl, libre, librem, pkgconfig, gst_all_1
-, cairo, mpg123, alsaLib, SDL, libv4l, celt, libsndfile, srtp, ffmpeg
+, cairo, mpg123, alsaLib, SDL, libv4l, celt, libsndfile, srtp, ffmpeg_3
 , gsm, speex, portaudio, spandsp, libuuid, ccache, libvpx
 }:
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [zlib openssl libre librem cairo mpg123
-    alsaLib SDL libv4l celt libsndfile srtp ffmpeg gsm speex portaudio spandsp libuuid
+    alsaLib SDL libv4l celt libsndfile srtp ffmpeg_3 gsm speex portaudio spandsp libuuid
     ccache libvpx
   ] ++ (with gst_all_1; [ gstreamer gst-libav gst-plugins-base gst-plugins-bad gst-plugins-good ]);
   makeFlags = [
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/blink/default.nix b/pkgs/applications/networking/instant-messengers/blink/default.nix
index f383daa6fd0..28cc3836057 100644
--- a/pkgs/applications/networking/instant-messengers/blink/default.nix
+++ b/pkgs/applications/networking/instant-messengers/blink/default.nix
@@ -39,7 +39,7 @@ mkDerivationWith pythonPackages.buildPythonApplication rec {
     desktopName = "Blink";
     icon = "blink";
     genericName = "Instant Messaging";
-    categories = "Application;Internet;";
+    categories = "Internet;";
   };
 
   dontWrapQtApps = true;
diff --git a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
index 14fbd4db1a0..0143e401c19 100644
--- a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
@@ -1,8 +1,6 @@
 { stdenv
 , fetchurl
 , rpmextract
-, patchelf
-, patchelfUnstable
 , libnotify
 , libuuid
 , cairo
@@ -40,11 +38,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bluejeans";
-  version = "2.1.0";
+  version = "2.4.0";
 
   src = fetchurl {
     url = "https://swdl.bluejeans.com/desktop-app/linux/${version}/BlueJeans.rpm";
-    sha256 = "1zhh0pla5gk75p8x84va9flvnk456pbcm1n6x8l82c9682fwr7dd";
+    sha256 = "180hc854ngwfn6y6nsrfn74rv78cxhq6sgshrca5zqv6wq3l98g0";
   };
 
   nativeBuildInputs = [ rpmextract makeWrapper ];
@@ -96,11 +94,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
 
@@ -110,6 +108,9 @@ stdenv.mkDerivation rec {
       --set LD_LIBRARY_PATH "${libPath}":"${placeholder "out"}"/opt/BlueJeans \
       --set LD_PRELOAD "$out"/opt/BlueJeans/liblocaltime64_stub.so
 
+    substituteInPlace "$out"/share/applications/bluejeans-v2.desktop \
+      --replace "/opt/BlueJeans/bluejeans-v2" "$out/bin/bluejeans"
+
     patchShebangs "$out"
   '';
 
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/deltachat-electron/default.nix b/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix
index 5418b671633..e58e73fdc85 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix
+++ b/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "deltachat-electron";
-  version = "1.2.0";
+  version = "1.3.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url =
       "https://download.delta.chat/desktop/v${version}/DeltaChat-${version}.AppImage";
-    sha256 = "Cyb34bfQEdwOA6XYZO+1Ri/2e/PRat15aUMn7IElmUI=";
+    sha256 = "1xyp8cg11px8rras12sncjmq85alyvz7ycw1v1py8w8rlz60wkij";
   };
 
   appimageContents = appimageTools.extract { inherit name src; };
diff --git a/pkgs/applications/networking/instant-messengers/discord/base.nix b/pkgs/applications/networking/instant-messengers/discord/base.nix
index 8f4f16673d2..0ee84dae356 100644
--- a/pkgs/applications/networking/instant-messengers/discord/base.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/base.nix
@@ -1,16 +1,31 @@
 { pname, version, src, binaryName, desktopName
-, stdenv, fetchurl, makeDesktopItem, wrapGAppsHook
-, alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig, freetype
-, gdk-pixbuf, glib, gtk3, libnotify, libX11, libXcomposite, libXcursor, libXdamage, libuuid
-, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, nspr, nss, libxcb
-, pango, systemd, libXScrnSaver, libcxx, libpulseaudio }:
+, autoPatchelfHook, fetchurl, makeDesktopItem, stdenv, wrapGAppsHook
+, alsaLib, at-spi2-atk, at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig
+, freetype, gdk-pixbuf, glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid
+, libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
+, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb
+, mesa, nspr, nss, pango, systemd, libappindicator-gtk3
+}:
 
 let
   inherit binaryName;
 in stdenv.mkDerivation rec {
   inherit pname version src;
 
-  nativeBuildInputs = [ wrapGAppsHook ];
+  nativeBuildInputs = [
+    alsaLib
+    autoPatchelfHook
+    cups
+    libdrm
+    libuuid
+    libX11
+    libXScrnSaver
+    libXtst
+    libxcb
+    mesa.drivers
+    nss
+    wrapGAppsHook
+  ];
 
   dontWrapGApps = true;
 
@@ -20,6 +35,7 @@ in stdenv.mkDerivation rec {
     gdk-pixbuf glib gtk3 libnotify libX11 libXcomposite libuuid
     libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
     libXtst nspr nss libxcb pango systemd libXScrnSaver
+    libappindicator-gtk3
    ];
 
   installPhase = ''
diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index 926ddeeb048..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.103";
+    version = "0.0.111";
     src = fetchurl {
       url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
-      sha256 = "1d95q75ak4z6wkxlgcmkl7yk20gl7zf568b0xslz42hwx032fn4z";
+      sha256 = "0ngmb40pwfwydvxyfby89yp17lsvmv642jci9b12cyc3hlkf85n4";
     };
   };
 }.${branch}
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
new file mode 100644
index 00000000000..30645793728
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
@@ -0,0 +1,112 @@
+{
+  "name": "element-desktop",
+  "productName": "Element",
+  "main": "src/electron-main.js",
+  "version": "1.7.4",
+  "description": "A feature-rich client for Matrix.org",
+  "author": "Element",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/vector-im/riot-desktop"
+  },
+  "license": "Apache-2.0",
+  "files": [],
+  "scripts": {
+    "mkdirs": "mkdirp packages deploys",
+    "fetch": "yarn run mkdirs && node scripts/fetch-package.js",
+    "asar-webapp": "asar p webapp webapp.asar",
+    "start": "electron .",
+    "lint": "eslint src/ scripts/ hak/",
+    "build:native": "yarn run hak",
+    "build32": "electron-builder --ia32",
+    "build64": "electron-builder --x64",
+    "build": "electron-builder",
+    "docker:setup": "docker build -t riot-desktop-dockerbuild dockerbuild",
+    "docker:build:native": "scripts/in-docker.sh yarn run hak",
+    "docker:build": "scripts/in-docker.sh yarn run build",
+    "docker:install": "scripts/in-docker.sh yarn install",
+    "debrepo": "scripts/mkrepo.sh",
+    "clean": "rimraf webapp.asar dist packages deploys",
+    "hak": "node scripts/hak/index.js"
+  },
+  "dependencies": {
+    "auto-launch": "^5.0.1",
+    "electron-store": "^2.0.0",
+    "electron-window-state": "^4.1.0",
+    "minimist": "^1.2.3",
+    "png-to-ico": "^1.0.2"
+  },
+  "devDependencies": {
+    "asar": "^2.0.1",
+    "electron-builder": "^22.7.0",
+    "electron-builder-squirrel-windows": "^22.7.0",
+    "electron-devtools-installer": "^2.2.4",
+    "electron-notarize": "^0.2.0",
+    "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",
+    "mkdirp": "^1.0.3",
+    "needle": "^2.5.0",
+    "node-pre-gyp": "^0.15.0",
+    "npm": "^6.14.6",
+    "rimraf": "^3.0.2",
+    "semver": "^7.1.3",
+    "tar": "^6.0.1"
+  },
+  "hakDependencies": {
+    "matrix-seshat": "^2.1.0",
+    "keytar": "^5.6.0"
+  },
+  "build": {
+    "appId": "im.riot.app",
+    "electronVersion": "9.1.2",
+    "files": [
+      "package.json",
+      {
+        "from": ".hak/hakModules",
+        "to": "node_modules"
+      },
+      "src/**"
+    ],
+    "extraResources": [
+      {
+        "from": "res/img",
+        "to": "img"
+      },
+      "webapp.asar"
+    ],
+    "linux": {
+      "target": "deb",
+      "category": "Network;InstantMessaging;Chat",
+      "maintainer": "support@element.io",
+      "desktop": {
+        "StartupWMClass": "element"
+      }
+    },
+    "mac": {
+      "category": "public.app-category.social-networking",
+      "darkModeSupport": true
+    },
+    "win": {
+      "target": {
+        "target": "squirrel"
+      },
+      "sign": "scripts/electron_winSign"
+    },
+    "directories": {
+      "output": "dist"
+    },
+    "afterPack": "scripts/electron_afterPack",
+    "afterSign": "scripts/electron_afterSign",
+    "protocols": [
+      {
+        "name": "element",
+        "schemes": [
+          "element"
+        ]
+      }
+    ]
+  }
+}
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix b/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
new file mode 100644
index 00000000000..f1c5ff1bfd4
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
@@ -0,0 +1,6493 @@
+{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec {
+  offline_cache = linkFarm "offline" packages;
+  packages = [
+    {
+      name = "7zip_bin___7zip_bin_5.0.3.tgz";
+      path = fetchurl {
+        name = "7zip_bin___7zip_bin_5.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz";
+        sha1 = "bc5b5532ecafd923a61f2fb097e3b108c0106a3f";
+      };
+    }
+    {
+      name = "7zip___7zip_0.0.6.tgz";
+      path = fetchurl {
+        name = "7zip___7zip_0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/7zip/-/7zip-0.0.6.tgz";
+        sha1 = "9cafb171af82329490353b4816f03347aa150a30";
+      };
+    }
+    {
+      name = "_babel_code_frame___code_frame_7.5.5.tgz";
+      path = fetchurl {
+        name = "_babel_code_frame___code_frame_7.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz";
+        sha1 = "bc0782f6d69f7b7d49531219699b988f669a8f9d";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz";
+        sha1 = "56d11312bd9248fa619591d02472be6e8cb32540";
+      };
+    }
+    {
+      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_parser___parser_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.5.tgz";
+        sha1 = "e7c6bf5a7deff957cec9f04b551e2762909d826b";
+      };
+    }
+    {
+      name = "_babel_template___template_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_template___template_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz";
+        sha1 = "3251996c4200ebc71d1a8fc405fba940f36ba278";
+      };
+    }
+    {
+      name = "_babel_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";
+      };
+    }
+    {
+      name = "_iarna_cli___cli_1.2.0.tgz";
+      path = fetchurl {
+        name = "_iarna_cli___cli_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/@iarna/cli/-/cli-1.2.0.tgz";
+        sha1 = "0f7af5e851afe895104583c4ca07377a8094d641";
+      };
+    }
+    {
+      name = "_sindresorhus_is___is_0.14.0.tgz";
+      path = fetchurl {
+        name = "_sindresorhus_is___is_0.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz";
+        sha1 = "9fb3a3cf3132328151f353de4632e01e52102bea";
+      };
+    }
+    {
+      name = "_szmarczak_http_timer___http_timer_1.1.2.tgz";
+      path = fetchurl {
+        name = "_szmarczak_http_timer___http_timer_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz";
+        sha1 = "b1665e2c461a2cd92f4c1bbf50d5454de0d4b421";
+      };
+    }
+    {
+      name = "_types_color_name___color_name_1.1.1.tgz";
+      path = fetchurl {
+        name = "_types_color_name___color_name_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz";
+        sha1 = "1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0";
+      };
+    }
+    {
+      name = "_types_debug___debug_4.1.5.tgz";
+      path = fetchurl {
+        name = "_types_debug___debug_4.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz";
+        sha1 = "b14efa8852b7768d898906613c23f688713e02cd";
+      };
+    }
+    {
+      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_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";
+      };
+    }
+    {
+      name = "_types_node___node_13.7.1.tgz";
+      path = fetchurl {
+        name = "_types_node___node_13.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-13.7.1.tgz";
+        sha1 = "238eb34a66431b71d2aaddeaa7db166f25971a0d";
+      };
+    }
+    {
+      name = "_types_node___node_9.6.55.tgz";
+      path = fetchurl {
+        name = "_types_node___node_9.6.55.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-9.6.55.tgz";
+        sha1 = "7cc1358c9c18e71f6c020e410962971863232cf5";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz";
+        sha1 = "3208c1f08d3a4d99261ab64f92302bc15e111ca0";
+      };
+    }
+    {
+      name = "abbrev___abbrev_1.1.1.tgz";
+      path = fetchurl {
+        name = "abbrev___abbrev_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz";
+        sha1 = "f8f2c887ad10bf67f634f005b6987fed3179aac8";
+      };
+    }
+    {
+      name = "acorn_jsx___acorn_jsx_5.2.0.tgz";
+      path = fetchurl {
+        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_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 = "agent_base___agent_base_4.3.0.tgz";
+      path = fetchurl {
+        name = "agent_base___agent_base_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz";
+        sha1 = "8165f01c436009bccad0b1d122f05ed770efc6ee";
+      };
+    }
+    {
+      name = "agent_base___agent_base_4.2.1.tgz";
+      path = fetchurl {
+        name = "agent_base___agent_base_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz";
+        sha1 = "d89e5999f797875674c07d87f260fc41e83e8ca9";
+      };
+    }
+    {
+      name = "agentkeepalive___agentkeepalive_3.5.2.tgz";
+      path = fetchurl {
+        name = "agentkeepalive___agentkeepalive_3.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz";
+        sha1 = "a113924dd3fa24a0bc3b78108c450c2abee00f67";
+      };
+    }
+    {
+      name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
+      path = fetchurl {
+        name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz";
+        sha1 = "ef916e271c64ac12171fd8384eaae6b2345854da";
+      };
+    }
+    {
+      name = "ajv___ajv_6.12.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";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz";
+        sha1 = "d3cea04d6b017b2894ad69040fec8b623eb4bd52";
+      };
+    }
+    {
+      name = "ajv___ajv_6.12.2.tgz";
+      path = fetchurl {
+        name = "ajv___ajv_6.12.2.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz";
+        sha1 = "c629c5eced17baf314437918d2da88c99d5958cd";
+      };
+    }
+    {
+      name = "ansi_align___ansi_align_2.0.0.tgz";
+      path = fetchurl {
+        name = "ansi_align___ansi_align_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz";
+        sha1 = "c36aeccba563b89ceb556f3690f0b1d9e3547f7f";
+      };
+    }
+    {
+      name = "ansi_align___ansi_align_3.0.0.tgz";
+      path = fetchurl {
+        name = "ansi_align___ansi_align_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz";
+        sha1 = "b536b371cf687caaef236c18d3e21fe3797467cb";
+      };
+    }
+    {
+      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_4.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz";
+        sha1 = "a5c47cc43181f1f38ffd7076837700d395522a61";
+      };
+    }
+    {
+      name = "ansi_regex___ansi_regex_2.1.1.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
+        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+      };
+    }
+    {
+      name = "ansi_regex___ansi_regex_3.0.0.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
+        sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+      };
+    }
+    {
+      name = "ansi_regex___ansi_regex_4.1.0.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz";
+        sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997";
+      };
+    }
+    {
+      name = "ansi_regex___ansi_regex_5.0.0.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz";
+        sha1 = "388539f55179bf39339c81af30a654d69f87cb75";
+      };
+    }
+    {
+      name = "ansi_styles___ansi_styles_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 = "ansi_styles___ansi_styles_4.2.1.tgz";
+      path = fetchurl {
+        name = "ansi_styles___ansi_styles_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz";
+        sha1 = "90ae75c424d008d2624c5bf29ead3177ebfcf359";
+      };
+    }
+    {
+      name = "ansicolors___ansicolors_0.3.2.tgz";
+      path = fetchurl {
+        name = "ansicolors___ansicolors_0.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz";
+        sha1 = "665597de86a9ffe3aa9bfbe6cae5c6ea426b4979";
+      };
+    }
+    {
+      name = "ansistyles___ansistyles_0.1.3.tgz";
+      path = fetchurl {
+        name = "ansistyles___ansistyles_0.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz";
+        sha1 = "5de60415bda071bb37127854c864f41b23254539";
+      };
+    }
+    {
+      name = "app_builder_bin___app_builder_bin_3.5.9.tgz";
+      path = fetchurl {
+        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.7.0.tgz";
+      path = fetchurl {
+        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";
+      };
+    }
+    {
+      name = "applescript___applescript_1.0.0.tgz";
+      path = fetchurl {
+        name = "applescript___applescript_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/applescript/-/applescript-1.0.0.tgz";
+        sha1 = "bb87af568cad034a4e48c4bdaf6067a3a2701317";
+      };
+    }
+    {
+      name = "aproba___aproba_1.2.0.tgz";
+      path = fetchurl {
+        name = "aproba___aproba_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz";
+        sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a";
+      };
+    }
+    {
+      name = "aproba___aproba_2.0.0.tgz";
+      path = fetchurl {
+        name = "aproba___aproba_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz";
+        sha1 = "52520b8ae5b569215b354efc0caa3fe1e45a8adc";
+      };
+    }
+    {
+      name = "archiver_utils___archiver_utils_2.1.0.tgz";
+      path = fetchurl {
+        name = "archiver_utils___archiver_utils_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz";
+        sha1 = "e8a460e94b693c3e3da182a098ca6285ba9249e2";
+      };
+    }
+    {
+      name = "archiver___archiver_4.0.1.tgz";
+      path = fetchurl {
+        name = "archiver___archiver_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/archiver/-/archiver-4.0.1.tgz";
+        sha1 = "3f722b121777e361ca9fad374ecda38e77e63c7f";
+      };
+    }
+    {
+      name = "archy___archy_1.0.0.tgz";
+      path = fetchurl {
+        name = "archy___archy_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz";
+        sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40";
+      };
+    }
+    {
+      name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+      path = fetchurl {
+        name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+        sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21";
+      };
+    }
+    {
+      name = "argparse___argparse_1.0.10.tgz";
+      path = fetchurl {
+        name = "argparse___argparse_1.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
+        sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz";
+        sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
+      };
+    }
+    {
+      name = "asar___asar_2.0.1.tgz";
+      path = fetchurl {
+        name = "asar___asar_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/asar/-/asar-2.0.1.tgz";
+        sha1 = "8518a1c62c238109c15a5f742213e83a09b9fd38";
+      };
+    }
+    {
+      name = "asn1___asn1_0.2.4.tgz";
+      path = fetchurl {
+        name = "asn1___asn1_0.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
+        sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
+      };
+    }
+    {
+      name = "assert_plus___assert_plus_1.0.0.tgz";
+      path = fetchurl {
+        name = "assert_plus___assert_plus_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
+        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+      };
+    }
+    {
+      name = "astral_regex___astral_regex_1.0.0.tgz";
+      path = fetchurl {
+        name = "astral_regex___astral_regex_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz";
+        sha1 = "6c8c3fb827dd43ee3918f27b82782ab7658a6fd9";
+      };
+    }
+    {
+      name = "async_exit_hook___async_exit_hook_2.0.1.tgz";
+      path = fetchurl {
+        name = "async_exit_hook___async_exit_hook_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz";
+        sha1 = "8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz";
+        sha1 = "d72625e2344a3656e3a3ad4fa749fa83299d82ff";
+      };
+    }
+    {
+      name = "asynckit___asynckit_0.4.0.tgz";
+      path = fetchurl {
+        name = "asynckit___asynckit_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
+        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/auto-launch/-/auto-launch-5.0.5.tgz";
+        sha1 = "d14bd002b1ef642f85e991a6195ff5300c8ad3c0";
+      };
+    }
+    {
+      name = "aws_sign2___aws_sign2_0.7.0.tgz";
+      path = fetchurl {
+        name = "aws_sign2___aws_sign2_0.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
+        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+      };
+    }
+    {
+      name = "aws4___aws4_1.9.0.tgz";
+      path = fetchurl {
+        name = "aws4___aws4_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.9.0.tgz";
+        sha1 = "24390e6ad61386b0a747265754d2a17219de862c";
+      };
+    }
+    {
+      name = "babel_eslint___babel_eslint_10.1.0.tgz";
+      path = fetchurl {
+        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 = "balanced_match___balanced_match_1.0.0.tgz";
+      path = fetchurl {
+        name = "balanced_match___balanced_match_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
+        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+      };
+    }
+    {
+      name = "base64_js___base64_js_1.3.1.tgz";
+      path = fetchurl {
+        name = "base64_js___base64_js_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz";
+        sha1 = "58ece8cb75dd07e71ed08c736abc5fac4dbf8df1";
+      };
+    }
+    {
+      name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+      path = fetchurl {
+        name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+        sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+      };
+    }
+    {
+      name = "bignumber.js___bignumber.js_2.4.0.tgz";
+      path = fetchurl {
+        name = "bignumber.js___bignumber.js_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.4.0.tgz";
+        sha1 = "838a992da9f9d737e0f4b2db0be62bb09dd0c5e8";
+      };
+    }
+    {
+      name = "bin_links___bin_links_1.1.7.tgz";
+      path = fetchurl {
+        name = "bin_links___bin_links_1.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.7.tgz";
+        sha1 = "34b79ea9d0e575d7308afeff0c6b2fc24c793359";
+      };
+    }
+    {
+      name = "bl___bl_4.0.2.tgz";
+      path = fetchurl {
+        name = "bl___bl_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz";
+        sha1 = "52b71e9088515d0606d9dd9cc7aa48dc1f98e73a";
+      };
+    }
+    {
+      name = "bluebird_lst___bluebird_lst_1.0.9.tgz";
+      path = fetchurl {
+        name = "bluebird_lst___bluebird_lst_1.0.9.tgz";
+        url  = "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz";
+        sha1 = "a64a0e4365658b9ab5fe875eb9dfb694189bb41c";
+      };
+    }
+    {
+      name = "bluebird___bluebird_3.7.2.tgz";
+      path = fetchurl {
+        name = "bluebird___bluebird_3.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz";
+        sha1 = "9f229c15be272454ffa973ace0dbee79a1b0c36f";
+      };
+    }
+    {
+      name = "bmp_js___bmp_js_0.0.3.tgz";
+      path = fetchurl {
+        name = "bmp_js___bmp_js_0.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.0.3.tgz";
+        sha1 = "64113e9c7cf1202b376ed607bf30626ebe57b18a";
+      };
+    }
+    {
+      name = "boxen___boxen_1.3.0.tgz";
+      path = fetchurl {
+        name = "boxen___boxen_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz";
+        sha1 = "55c6c39a8ba58d9c61ad22cd877532deb665a20b";
+      };
+    }
+    {
+      name = "boxen___boxen_4.2.0.tgz";
+      path = fetchurl {
+        name = "boxen___boxen_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz";
+        sha1 = "e411b62357d6d6d36587c8ac3d5d974daa070e64";
+      };
+    }
+    {
+      name = "brace_expansion___brace_expansion_1.1.11.tgz";
+      path = fetchurl {
+        name = "brace_expansion___brace_expansion_1.1.11.tgz";
+        url  = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
+        sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
+      };
+    }
+    {
+      name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
+      path = fetchurl {
+        name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz";
+        sha1 = "0d333e3f00eac50aa1454abd30ef8c2a5d9a7242";
+      };
+    }
+    {
+      name = "buffer_equal___buffer_equal_0.0.1.tgz";
+      path = fetchurl {
+        name = "buffer_equal___buffer_equal_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz";
+        sha1 = "91bc74b11ea405bc916bc6aa908faafa5b4aac4b";
+      };
+    }
+    {
+      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 = "buffer___buffer_5.4.3.tgz";
+      path = fetchurl {
+        name = "buffer___buffer_5.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/buffer/-/buffer-5.4.3.tgz";
+        sha1 = "3fbc9c69eb713d323e3fc1a895eee0710c072115";
+      };
+    }
+    {
+      name = "buffer___buffer_5.6.0.tgz";
+      path = fetchurl {
+        name = "buffer___buffer_5.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz";
+        sha1 = "a31749dc7d81d84db08abf937b6b8c4033f62786";
+      };
+    }
+    {
+      name = "builder_util_runtime___builder_util_runtime_8.7.1.tgz";
+      path = fetchurl {
+        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.7.0.tgz";
+      path = fetchurl {
+        name = "builder_util___builder_util_22.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.7.0.tgz";
+        sha1 = "0776a66e6d6e408a78bed7f17a7ad22516d9e7f0";
+      };
+    }
+    {
+      name = "builtins___builtins_1.0.3.tgz";
+      path = fetchurl {
+        name = "builtins___builtins_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz";
+        sha1 = "cb94faeb61c8696451db36534e1422f94f0aee88";
+      };
+    }
+    {
+      name = "byline___byline_5.0.0.tgz";
+      path = fetchurl {
+        name = "byline___byline_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz";
+        sha1 = "741c5216468eadc457b03410118ad77de8c1ddb1";
+      };
+    }
+    {
+      name = "byte_size___byte_size_5.0.1.tgz";
+      path = fetchurl {
+        name = "byte_size___byte_size_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz";
+        sha1 = "4b651039a5ecd96767e71a3d7ed380e48bed4191";
+      };
+    }
+    {
+      name = "cacache___cacache_12.0.3.tgz";
+      path = fetchurl {
+        name = "cacache___cacache_12.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz";
+        sha1 = "be99abba4e1bf5df461cd5a2c1071fc432573390";
+      };
+    }
+    {
+      name = "cacheable_request___cacheable_request_6.1.0.tgz";
+      path = fetchurl {
+        name = "cacheable_request___cacheable_request_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz";
+        sha1 = "20ffb8bd162ba4be11e9567d823db651052ca912";
+      };
+    }
+    {
+      name = "call_limit___call_limit_1.1.1.tgz";
+      path = fetchurl {
+        name = "call_limit___call_limit_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.1.tgz";
+        sha1 = "ef15f2670db3f1992557e2d965abc459e6e358d4";
+      };
+    }
+    {
+      name = "callsites___callsites_3.1.0.tgz";
+      path = fetchurl {
+        name = "callsites___callsites_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz";
+        sha1 = "b3630abd8943432f54b3f0519238e33cd7df2f73";
+      };
+    }
+    {
+      name = "camelcase___camelcase_4.1.0.tgz";
+      path = fetchurl {
+        name = "camelcase___camelcase_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz";
+        sha1 = "d545635be1e33c542649c69173e5de6acfae34dd";
+      };
+    }
+    {
+      name = "camelcase___camelcase_5.3.1.tgz";
+      path = fetchurl {
+        name = "camelcase___camelcase_5.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz";
+        sha1 = "e3c9b31569e106811df242f715725a1f4c494320";
+      };
+    }
+    {
+      name = "capture_stack_trace___capture_stack_trace_1.0.1.tgz";
+      path = fetchurl {
+        name = "capture_stack_trace___capture_stack_trace_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz";
+        sha1 = "a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d";
+      };
+    }
+    {
+      name = "caseless___caseless_0.12.0.tgz";
+      path = fetchurl {
+        name = "caseless___caseless_0.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
+        sha1 = "1b681c21ff84033c826543090689420d187151dc";
+      };
+    }
+    {
+      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 = "chalk___chalk_3.0.0.tgz";
+      path = fetchurl {
+        name = "chalk___chalk_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz";
+        sha1 = "3f73c2bf526591f574cc492c51e2456349f844e4";
+      };
+    }
+    {
+      name = "chalk___chalk_4.1.0.tgz";
+      path = fetchurl {
+        name = "chalk___chalk_4.1.0.tgz";
+        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";
+        url  = "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz";
+        sha1 = "90094849f0937f2eedc2425d0d28a9e5f0cbad9e";
+      };
+    }
+    {
+      name = "chownr___chownr_1.1.4.tgz";
+      path = fetchurl {
+        name = "chownr___chownr_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz";
+        sha1 = "6fc9d7b42d32a583596337666e7d08084da2cc6b";
+      };
+    }
+    {
+      name = "chownr___chownr_1.1.3.tgz";
+      path = fetchurl {
+        name = "chownr___chownr_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz";
+        sha1 = "42d837d5239688d55f303003a508230fa6727142";
+      };
+    }
+    {
+      name = "chromium_pickle_js___chromium_pickle_js_0.2.0.tgz";
+      path = fetchurl {
+        name = "chromium_pickle_js___chromium_pickle_js_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz";
+        sha1 = "04a106672c18b085ab774d983dfa3ea138f22205";
+      };
+    }
+    {
+      name = "ci_info___ci_info_1.6.0.tgz";
+      path = fetchurl {
+        name = "ci_info___ci_info_1.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz";
+        sha1 = "2ca20dbb9ceb32d4524a683303313f0304b1e497";
+      };
+    }
+    {
+      name = "ci_info___ci_info_2.0.0.tgz";
+      path = fetchurl {
+        name = "ci_info___ci_info_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz";
+        sha1 = "67a9e964be31a51e15e5010d58e6f12834002f46";
+      };
+    }
+    {
+      name = "cidr_regex___cidr_regex_2.0.10.tgz";
+      path = fetchurl {
+        name = "cidr_regex___cidr_regex_2.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-2.0.10.tgz";
+        sha1 = "af13878bd4ad704de77d6dc800799358b3afa70d";
+      };
+    }
+    {
+      name = "cli_boxes___cli_boxes_1.0.0.tgz";
+      path = fetchurl {
+        name = "cli_boxes___cli_boxes_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz";
+        sha1 = "4fa917c3e59c94a004cd61f8ee509da651687143";
+      };
+    }
+    {
+      name = "cli_boxes___cli_boxes_2.2.0.tgz";
+      path = fetchurl {
+        name = "cli_boxes___cli_boxes_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz";
+        sha1 = "538ecae8f9c6ca508e3c3c95b453fe93cb4c168d";
+      };
+    }
+    {
+      name = "cli_columns___cli_columns_3.1.2.tgz";
+      path = fetchurl {
+        name = "cli_columns___cli_columns_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/cli-columns/-/cli-columns-3.1.2.tgz";
+        sha1 = "6732d972979efc2ae444a1f08e08fa139c96a18e";
+      };
+    }
+    {
+      name = "cli_cursor___cli_cursor_3.1.0.tgz";
+      path = fetchurl {
+        name = "cli_cursor___cli_cursor_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz";
+        sha1 = "264305a7ae490d1d03bf0c9ba7c925d1753af307";
+      };
+    }
+    {
+      name = "cli_table3___cli_table3_0.5.1.tgz";
+      path = fetchurl {
+        name = "cli_table3___cli_table3_0.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz";
+        sha1 = "0252372d94dfc40dbd8df06005f48f31f656f202";
+      };
+    }
+    {
+      name = "cli_width___cli_width_3.0.0.tgz";
+      path = fetchurl {
+        name = "cli_width___cli_width_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz";
+        sha1 = "a2f48437a2caa9a22436e794bf071ec9e61cedf6";
+      };
+    }
+    {
+      name = "cliui___cliui_3.2.0.tgz";
+      path = fetchurl {
+        name = "cliui___cliui_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz";
+        sha1 = "120601537a916d29940f934da3b48d585a39213d";
+      };
+    }
+    {
+      name = "cliui___cliui_4.1.0.tgz";
+      path = fetchurl {
+        name = "cliui___cliui_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz";
+        sha1 = "348422dbe82d800b3022eef4f6ac10bf2e4d1b49";
+      };
+    }
+    {
+      name = "cliui___cliui_6.0.0.tgz";
+      path = fetchurl {
+        name = "cliui___cliui_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz";
+        sha1 = "511d702c0c4e41ca156d7d0e96021f23e13225b1";
+      };
+    }
+    {
+      name = "clone_response___clone_response_1.0.2.tgz";
+      path = fetchurl {
+        name = "clone_response___clone_response_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz";
+        sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b";
+      };
+    }
+    {
+      name = "clone___clone_1.0.4.tgz";
+      path = fetchurl {
+        name = "clone___clone_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz";
+        sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e";
+      };
+    }
+    {
+      name = "cmd_shim___cmd_shim_3.0.3.tgz";
+      path = fetchurl {
+        name = "cmd_shim___cmd_shim_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-3.0.3.tgz";
+        sha1 = "2c35238d3df37d98ecdd7d5f6b8dc6b21cadc7cb";
+      };
+    }
+    {
+      name = "code_point_at___code_point_at_1.1.0.tgz";
+      path = fetchurl {
+        name = "code_point_at___code_point_at_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
+        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+      };
+    }
+    {
+      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_convert___color_convert_2.0.1.tgz";
+      path = fetchurl {
+        name = "color_convert___color_convert_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz";
+        sha1 = "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3";
+      };
+    }
+    {
+      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 = "color_name___color_name_1.1.4.tgz";
+      path = fetchurl {
+        name = "color_name___color_name_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
+        sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2";
+      };
+    }
+    {
+      name = "colors___colors_1.4.0.tgz";
+      path = fetchurl {
+        name = "colors___colors_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz";
+        sha1 = "c50491479d4c1bdaed2c9ced32cf7c7dc2360f78";
+      };
+    }
+    {
+      name = "columnify___columnify_1.5.4.tgz";
+      path = fetchurl {
+        name = "columnify___columnify_1.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz";
+        sha1 = "4737ddf1c7b69a8a7c340570782e947eec8e78bb";
+      };
+    }
+    {
+      name = "combined_stream___combined_stream_1.0.8.tgz";
+      path = fetchurl {
+        name = "combined_stream___combined_stream_1.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz";
+        sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f";
+      };
+    }
+    {
+      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 = "compress_commons___compress_commons_3.0.0.tgz";
+      path = fetchurl {
+        name = "compress_commons___compress_commons_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-3.0.0.tgz";
+        sha1 = "833944d84596e537224dd91cf92f5246823d4f1d";
+      };
+    }
+    {
+      name = "concat_map___concat_map_0.0.1.tgz";
+      path = fetchurl {
+        name = "concat_map___concat_map_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    }
+    {
+      name = "concat_stream___concat_stream_1.6.2.tgz";
+      path = fetchurl {
+        name = "concat_stream___concat_stream_1.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
+        sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
+      };
+    }
+    {
+      name = "conf___conf_2.2.0.tgz";
+      path = fetchurl {
+        name = "conf___conf_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/conf/-/conf-2.2.0.tgz";
+        sha1 = "ee282efafc1450b61e205372041ad7d866802d9a";
+      };
+    }
+    {
+      name = "config_chain___config_chain_1.1.12.tgz";
+      path = fetchurl {
+        name = "config_chain___config_chain_1.1.12.tgz";
+        url  = "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz";
+        sha1 = "0fde8d091200eb5e808caf25fe618c02f48e4efa";
+      };
+    }
+    {
+      name = "configstore___configstore_3.1.2.tgz";
+      path = fetchurl {
+        name = "configstore___configstore_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz";
+        sha1 = "c6f25defaeef26df12dd33414b001fe81a543f8f";
+      };
+    }
+    {
+      name = "configstore___configstore_5.0.1.tgz";
+      path = fetchurl {
+        name = "configstore___configstore_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz";
+        sha1 = "d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96";
+      };
+    }
+    {
+      name = "console_control_strings___console_control_strings_1.1.0.tgz";
+      path = fetchurl {
+        name = "console_control_strings___console_control_strings_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz";
+        sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+      };
+    }
+    {
+      name = "contains_path___contains_path_0.1.0.tgz";
+      path = fetchurl {
+        name = "contains_path___contains_path_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz";
+        sha1 = "fe8cf184ff6670b6baef01a9d4861a5cbec4120a";
+      };
+    }
+    {
+      name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
+      path = fetchurl {
+        name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz";
+        sha1 = "92297398cae34937fcafd6ec8139c18051f0b5e0";
+      };
+    }
+    {
+      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 = "crc32_stream___crc32_stream_3.0.1.tgz";
+      path = fetchurl {
+        name = "crc32_stream___crc32_stream_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-3.0.1.tgz";
+        sha1 = "cae6eeed003b0e44d739d279de5ae63b171b4e85";
+      };
+    }
+    {
+      name = "crc___crc_3.8.0.tgz";
+      path = fetchurl {
+        name = "crc___crc_3.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz";
+        sha1 = "ad60269c2c856f8c299e2c4cc0de4556914056c6";
+      };
+    }
+    {
+      name = "create_error_class___create_error_class_3.0.2.tgz";
+      path = fetchurl {
+        name = "create_error_class___create_error_class_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz";
+        sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6";
+      };
+    }
+    {
+      name = "cross_spawn___cross_spawn_5.1.0.tgz";
+      path = fetchurl {
+        name = "cross_spawn___cross_spawn_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz";
+        sha1 = "e8bd0efee58fcff6f8f94510a0a554bbfa235449";
+      };
+    }
+    {
+      name = "cross_spawn___cross_spawn_6.0.5.tgz";
+      path = fetchurl {
+        name = "cross_spawn___cross_spawn_6.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
+        sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
+      };
+    }
+    {
+      name = "cross_spawn___cross_spawn_7.0.3.tgz";
+      path = fetchurl {
+        name = "cross_spawn___cross_spawn_7.0.3.tgz";
+        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";
+        url  = "https://registry.yarnpkg.com/cross-unzip/-/cross-unzip-0.0.2.tgz";
+        sha1 = "5183bc47a09559befcf98cc4657964999359372f";
+      };
+    }
+    {
+      name = "crypto_random_string___crypto_random_string_1.0.0.tgz";
+      path = fetchurl {
+        name = "crypto_random_string___crypto_random_string_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz";
+        sha1 = "a230f64f568310e1498009940790ec99545bca7e";
+      };
+    }
+    {
+      name = "crypto_random_string___crypto_random_string_2.0.0.tgz";
+      path = fetchurl {
+        name = "crypto_random_string___crypto_random_string_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz";
+        sha1 = "ef2a7a966ec11083388369baa02ebead229b30d5";
+      };
+    }
+    {
+      name = "cuint___cuint_0.2.2.tgz";
+      path = fetchurl {
+        name = "cuint___cuint_0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz";
+        sha1 = "408086d409550c2631155619e9fa7bcadc3b991b";
+      };
+    }
+    {
+      name = "cyclist___cyclist_1.0.1.tgz";
+      path = fetchurl {
+        name = "cyclist___cyclist_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz";
+        sha1 = "596e9698fd0c80e12038c2b82d6eb1b35b6224d9";
+      };
+    }
+    {
+      name = "dashdash___dashdash_1.14.1.tgz";
+      path = fetchurl {
+        name = "dashdash___dashdash_1.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
+        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+      };
+    }
+    {
+      name = "debug___debug_3.1.0.tgz";
+      path = fetchurl {
+        name = "debug___debug_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz";
+        sha1 = "5bb5a0672628b64149566ba16819e61518c67261";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz";
+        sha1 = "e83d17de16d8a7efb7717edbe5fb10135eee629b";
+      };
+    }
+    {
+      name = "debug___debug_4.1.1.tgz";
+      path = fetchurl {
+        name = "debug___debug_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz";
+        sha1 = "3b72260255109c6b589cee050f1d516139664791";
+      };
+    }
+    {
+      name = "debug___debug_4.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";
+        url  = "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz";
+        sha1 = "aa24ffb9ac3df9a2351837cfb2d279360cd78492";
+      };
+    }
+    {
+      name = "decamelize___decamelize_1.2.0.tgz";
+      path = fetchurl {
+        name = "decamelize___decamelize_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
+        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+      };
+    }
+    {
+      name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+      path = fetchurl {
+        name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+        sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+      };
+    }
+    {
+      name = "decompress_response___decompress_response_3.3.0.tgz";
+      path = fetchurl {
+        name = "decompress_response___decompress_response_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz";
+        sha1 = "80a4dd323748384bfa248083622aedec982adff3";
+      };
+    }
+    {
+      name = "deep_equal___deep_equal_1.1.1.tgz";
+      path = fetchurl {
+        name = "deep_equal___deep_equal_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz";
+        sha1 = "b5c98c942ceffaf7cb051e24e1434a25a2e6076a";
+      };
+    }
+    {
+      name = "deep_extend___deep_extend_0.6.0.tgz";
+      path = fetchurl {
+        name = "deep_extend___deep_extend_0.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz";
+        sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac";
+      };
+    }
+    {
+      name = "deep_is___deep_is_0.1.3.tgz";
+      path = fetchurl {
+        name = "deep_is___deep_is_0.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
+        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+      };
+    }
+    {
+      name = "defaults___defaults_1.0.3.tgz";
+      path = fetchurl {
+        name = "defaults___defaults_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz";
+        sha1 = "c656051e9817d9ff08ed881477f3fe4019f3ef7d";
+      };
+    }
+    {
+      name = "defer_to_connect___defer_to_connect_1.1.1.tgz";
+      path = fetchurl {
+        name = "defer_to_connect___defer_to_connect_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.1.tgz";
+        sha1 = "88ae694b93f67b81815a2c8c769aef6574ac8f2f";
+      };
+    }
+    {
+      name = "define_properties___define_properties_1.1.3.tgz";
+      path = fetchurl {
+        name = "define_properties___define_properties_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz";
+        sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
+      };
+    }
+    {
+      name = "delayed_stream___delayed_stream_1.0.0.tgz";
+      path = fetchurl {
+        name = "delayed_stream___delayed_stream_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
+        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+      };
+    }
+    {
+      name = "delegates___delegates_1.0.0.tgz";
+      path = fetchurl {
+        name = "delegates___delegates_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
+        sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+      };
+    }
+    {
+      name = "detect_indent___detect_indent_5.0.0.tgz";
+      path = fetchurl {
+        name = "detect_indent___detect_indent_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz";
+        sha1 = "3871cc0a6a002e8c3e5b3cf7f336264675f06b9d";
+      };
+    }
+    {
+      name = "detect_libc___detect_libc_1.0.3.tgz";
+      path = fetchurl {
+        name = "detect_libc___detect_libc_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz";
+        sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+      };
+    }
+    {
+      name = "detect_newline___detect_newline_2.1.0.tgz";
+      path = fetchurl {
+        name = "detect_newline___detect_newline_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz";
+        sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2";
+      };
+    }
+    {
+      name = "dezalgo___dezalgo_1.0.3.tgz";
+      path = fetchurl {
+        name = "dezalgo___dezalgo_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz";
+        sha1 = "7f742de066fc748bc8db820569dddce49bf0d456";
+      };
+    }
+    {
+      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 = "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";
+      };
+    }
+    {
+      name = "doctrine___doctrine_3.0.0.tgz";
+      path = fetchurl {
+        name = "doctrine___doctrine_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz";
+        sha1 = "addebead72a6574db783639dc87a121773973961";
+      };
+    }
+    {
+      name = "dom_walk___dom_walk_0.1.1.tgz";
+      path = fetchurl {
+        name = "dom_walk___dom_walk_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz";
+        sha1 = "672226dc74c8f799ad35307df936aba11acd6018";
+      };
+    }
+    {
+      name = "dot_prop___dot_prop_4.2.0.tgz";
+      path = fetchurl {
+        name = "dot_prop___dot_prop_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz";
+        sha1 = "1f19e0c2e1aa0e32797c49799f2837ac6af69c57";
+      };
+    }
+    {
+      name = "dot_prop___dot_prop_5.2.0.tgz";
+      path = fetchurl {
+        name = "dot_prop___dot_prop_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz";
+        sha1 = "c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb";
+      };
+    }
+    {
+      name = "dotenv_expand___dotenv_expand_5.1.0.tgz";
+      path = fetchurl {
+        name = "dotenv_expand___dotenv_expand_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz";
+        sha1 = "3fbaf020bfd794884072ea26b1e9791d45a629f0";
+      };
+    }
+    {
+      name = "dotenv___dotenv_5.0.1.tgz";
+      path = fetchurl {
+        name = "dotenv___dotenv_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz";
+        sha1 = "a5317459bd3d79ab88cff6e44057a6a3fbb1fcef";
+      };
+    }
+    {
+      name = "dotenv___dotenv_8.2.0.tgz";
+      path = fetchurl {
+        name = "dotenv___dotenv_8.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz";
+        sha1 = "97e619259ada750eea3e4ea3e26bceea5424b16a";
+      };
+    }
+    {
+      name = "duplexer3___duplexer3_0.1.4.tgz";
+      path = fetchurl {
+        name = "duplexer3___duplexer3_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz";
+        sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2";
+      };
+    }
+    {
+      name = "duplexify___duplexify_3.7.1.tgz";
+      path = fetchurl {
+        name = "duplexify___duplexify_3.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz";
+        sha1 = "2a4df5317f6ccfd91f86d6fd25d8d8a103b88309";
+      };
+    }
+    {
+      name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+      path = fetchurl {
+        name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+        sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+      };
+    }
+    {
+      name = "editor___editor_1.0.0.tgz";
+      path = fetchurl {
+        name = "editor___editor_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz";
+        sha1 = "60c7f87bd62bcc6a894fa8ccd6afb7823a24f742";
+      };
+    }
+    {
+      name = "ejs___ejs_3.1.3.tgz";
+      path = fetchurl {
+        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.7.0.tgz";
+      path = fetchurl {
+        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.7.0.tgz";
+      path = fetchurl {
+        name = "electron_builder___electron_builder_22.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.7.0.tgz";
+        sha1 = "a42d08a1654ffc2f7d9e2860829d3cc55d4a0c81";
+      };
+    }
+    {
+      name = "electron_devtools_installer___electron_devtools_installer_2.2.4.tgz";
+      path = fetchurl {
+        name = "electron_devtools_installer___electron_devtools_installer_2.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/electron-devtools-installer/-/electron-devtools-installer-2.2.4.tgz";
+        sha1 = "261a50337e37121d338b966f07922eb4939a8763";
+      };
+    }
+    {
+      name = "electron_notarize___electron_notarize_0.2.1.tgz";
+      path = fetchurl {
+        name = "electron_notarize___electron_notarize_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-0.2.1.tgz";
+        sha1 = "759e8006decae19134f82996ed910db26d9192cc";
+      };
+    }
+    {
+      name = "electron_publish___electron_publish_22.7.0.tgz";
+      path = fetchurl {
+        name = "electron_publish___electron_publish_22.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.7.0.tgz";
+        sha1 = "d92ba7c4007c9ac1dd070593e48028184fb2dc19";
+      };
+    }
+    {
+      name = "electron_store___electron_store_2.0.0.tgz";
+      path = fetchurl {
+        name = "electron_store___electron_store_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/electron-store/-/electron-store-2.0.0.tgz";
+        sha1 = "1035cca2a95409d1f54c7466606345852450d64a";
+      };
+    }
+    {
+      name = "electron_window_state___electron_window_state_4.1.1.tgz";
+      path = fetchurl {
+        name = "electron_window_state___electron_window_state_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/electron-window-state/-/electron-window-state-4.1.1.tgz";
+        sha1 = "6b34fdc31b38514dfec8b7c8f7b5d4addb67632d";
+      };
+    }
+    {
+      name = "emoji_regex___emoji_regex_7.0.3.tgz";
+      path = fetchurl {
+        name = "emoji_regex___emoji_regex_7.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
+        sha1 = "933a04052860c85e83c122479c4748a8e4c72156";
+      };
+    }
+    {
+      name = "emoji_regex___emoji_regex_8.0.0.tgz";
+      path = fetchurl {
+        name = "emoji_regex___emoji_regex_8.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz";
+        sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37";
+      };
+    }
+    {
+      name = "encoding___encoding_0.1.12.tgz";
+      path = fetchurl {
+        name = "encoding___encoding_0.1.12.tgz";
+        url  = "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz";
+        sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb";
+      };
+    }
+    {
+      name = "end_of_stream___end_of_stream_1.4.4.tgz";
+      path = fetchurl {
+        name = "end_of_stream___end_of_stream_1.4.4.tgz";
+        url  = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz";
+        sha1 = "5ae64a5f45057baf3626ec14da0ca5e4b2431eb0";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz";
+        sha1 = "4168133b42bb05c38a35b1ae4397c8298ab369e0";
+      };
+    }
+    {
+      name = "env_paths___env_paths_2.2.0.tgz";
+      path = fetchurl {
+        name = "env_paths___env_paths_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz";
+        sha1 = "cdca557dc009152917d6166e2febe1f039685e43";
+      };
+    }
+    {
+      name = "err_code___err_code_1.1.2.tgz";
+      path = fetchurl {
+        name = "err_code___err_code_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz";
+        sha1 = "06e0116d3028f6aef4806849eb0ea6a748ae6960";
+      };
+    }
+    {
+      name = "errno___errno_0.1.7.tgz";
+      path = fetchurl {
+        name = "errno___errno_0.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz";
+        sha1 = "4684d71779ad39af177e3f007996f7c67c852618";
+      };
+    }
+    {
+      name = "error_ex___error_ex_1.3.2.tgz";
+      path = fetchurl {
+        name = "error_ex___error_ex_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
+        sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.3.tgz";
+        sha1 = "52490d978f96ff9f89ec15b5cf244304a5bca161";
+      };
+    }
+    {
+      name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
+      path = fetchurl {
+        name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
+        sha1 = "e55cd4c9cdc188bcefb03b366c736323fc5c898a";
+      };
+    }
+    {
+      name = "es6_promise___es6_promise_3.3.1.tgz";
+      path = fetchurl {
+        name = "es6_promise___es6_promise_3.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz";
+        sha1 = "a08cdde84ccdbf34d027a1451bc91d4bcd28a613";
+      };
+    }
+    {
+      name = "es6_promise___es6_promise_4.2.8.tgz";
+      path = fetchurl {
+        name = "es6_promise___es6_promise_4.2.8.tgz";
+        url  = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz";
+        sha1 = "4eb21594c972bc40553d276e510539143db53e0a";
+      };
+    }
+    {
+      name = "es6_promisify___es6_promisify_5.0.0.tgz";
+      path = fetchurl {
+        name = "es6_promisify___es6_promisify_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz";
+        sha1 = "5109d62f3e56ea967c4b63505aef08291c8a5203";
+      };
+    }
+    {
+      name = "escape_goat___escape_goat_2.1.1.tgz";
+      path = fetchurl {
+        name = "escape_goat___escape_goat_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz";
+        sha1 = "1b2dc77003676c457ec760b2dc68edb648188675";
+      };
+    }
+    {
+      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 = "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_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_config_recommended___eslint_config_recommended_4.1.0.tgz";
+      path = fetchurl {
+        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_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
+      path = fetchurl {
+        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";
+      };
+    }
+    {
+      name = "eslint_utils___eslint_utils_1.4.3.tgz";
+      path = fetchurl {
+        name = "eslint_utils___eslint_utils_1.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz";
+        sha1 = "74fec7c54d0776b6f67e0251040b5806564e981f";
+      };
+    }
+    {
+      name = "eslint_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";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz";
+        sha1 = "e2a82cea84ff246ad6fb57f9bde5b46621459ec2";
+      };
+    }
+    {
+      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_6.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz";
+        sha1 = "62262d6729739f9275723824302fb227c8c93ffb";
+      };
+    }
+    {
+      name = "espree___espree_6.2.1.tgz";
+      path = fetchurl {
+        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";
+      };
+    }
+    {
+      name = "esprima___esprima_4.0.1.tgz";
+      path = fetchurl {
+        name = "esprima___esprima_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
+        sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
+      };
+    }
+    {
+      name = "esquery___esquery_1.0.1.tgz";
+      path = fetchurl {
+        name = "esquery___esquery_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz";
+        sha1 = "406c51658b1f5991a5f9b62b1dc25b00e3e5c708";
+      };
+    }
+    {
+      name = "esquery___esquery_1.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";
+        url  = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz";
+        sha1 = "007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf";
+      };
+    }
+    {
+      name = "estraverse___estraverse_4.3.0.tgz";
+      path = fetchurl {
+        name = "estraverse___estraverse_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz";
+        sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz";
+        sha1 = "74d2eb4de0b8da1293711910d50775b9b710ef64";
+      };
+    }
+    {
+      name = "execa___execa_0.7.0.tgz";
+      path = fetchurl {
+        name = "execa___execa_0.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz";
+        sha1 = "944becd34cc41ee32a63a9faf27ad5a65fc59777";
+      };
+    }
+    {
+      name = "execa___execa_1.0.0.tgz";
+      path = fetchurl {
+        name = "execa___execa_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz";
+        sha1 = "c6236a5bb4df6d6f15e88e7f017798216749ddd8";
+      };
+    }
+    {
+      name = "exif_parser___exif_parser_0.1.12.tgz";
+      path = fetchurl {
+        name = "exif_parser___exif_parser_0.1.12.tgz";
+        url  = "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz";
+        sha1 = "58a9d2d72c02c1f6f02a0ef4a9166272b7760922";
+      };
+    }
+    {
+      name = "extend___extend_3.0.2.tgz";
+      path = fetchurl {
+        name = "extend___extend_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
+        sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
+      };
+    }
+    {
+      name = "external_editor___external_editor_3.1.0.tgz";
+      path = fetchurl {
+        name = "external_editor___external_editor_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz";
+        sha1 = "cb03f740befae03ea4d283caed2741a83f335495";
+      };
+    }
+    {
+      name = "extsprintf___extsprintf_1.3.0.tgz";
+      path = fetchurl {
+        name = "extsprintf___extsprintf_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
+        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+      };
+    }
+    {
+      name = "extsprintf___extsprintf_1.4.0.tgz";
+      path = fetchurl {
+        name = "extsprintf___extsprintf_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
+        sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
+      };
+    }
+    {
+      name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+      path = fetchurl {
+        name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
+        sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
+        sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
+      };
+    }
+    {
+      name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+      path = fetchurl {
+        name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+        sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+      };
+    }
+    {
+      name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
+      path = fetchurl {
+        name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz";
+        sha1 = "862470112901c727a0e495a80744bd5baa1d6790";
+      };
+    }
+    {
+      name = "figures___figures_3.2.0.tgz";
+      path = fetchurl {
+        name = "figures___figures_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz";
+        sha1 = "625c18bd293c604dc4a8ddb2febf0c88341746af";
+      };
+    }
+    {
+      name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
+      path = fetchurl {
+        name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
+        sha1 = "ca0f6efa6dd3d561333fb14515065c2fafdf439c";
+      };
+    }
+    {
+      name = "file_type___file_type_3.9.0.tgz";
+      path = fetchurl {
+        name = "file_type___file_type_3.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz";
+        sha1 = "257a078384d1db8087bc449d107d52a52672b9e9";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz";
+        sha1 = "8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf";
+      };
+    }
+    {
+      name = "find_up___find_up_2.1.0.tgz";
+      path = fetchurl {
+        name = "find_up___find_up_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz";
+        sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
+      };
+    }
+    {
+      name = "find_up___find_up_3.0.0.tgz";
+      path = fetchurl {
+        name = "find_up___find_up_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz";
+        sha1 = "49169f1d7993430646da61ecc5ae355c21c97b73";
+      };
+    }
+    {
+      name = "find_up___find_up_4.1.0.tgz";
+      path = fetchurl {
+        name = "find_up___find_up_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz";
+        sha1 = "97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19";
+      };
+    }
+    {
+      name = "flat_cache___flat_cache_2.0.1.tgz";
+      path = fetchurl {
+        name = "flat_cache___flat_cache_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz";
+        sha1 = "5d296d6f04bda44a4630a301413bdbc2ec085ec0";
+      };
+    }
+    {
+      name = "flatted___flatted_2.0.1.tgz";
+      path = fetchurl {
+        name = "flatted___flatted_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz";
+        sha1 = "69e57caa8f0eacbc281d2e2cb458d46fdb449e08";
+      };
+    }
+    {
+      name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
+      path = fetchurl {
+        name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz";
+        sha1 = "8dd7d873a1babc207d94ead0c2e0e44276ebf2e8";
+      };
+    }
+    {
+      name = "forever_agent___forever_agent_0.6.1.tgz";
+      path = fetchurl {
+        name = "forever_agent___forever_agent_0.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
+        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+      };
+    }
+    {
+      name = "form_data___form_data_2.3.3.tgz";
+      path = fetchurl {
+        name = "form_data___form_data_2.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
+        sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
+      };
+    }
+    {
+      name = "from2___from2_1.3.0.tgz";
+      path = fetchurl {
+        name = "from2___from2_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/from2/-/from2-1.3.0.tgz";
+        sha1 = "88413baaa5f9a597cfde9221d86986cd3c061dfd";
+      };
+    }
+    {
+      name = "from2___from2_2.3.0.tgz";
+      path = fetchurl {
+        name = "from2___from2_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz";
+        sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af";
+      };
+    }
+    {
+      name = "fs_constants___fs_constants_1.0.0.tgz";
+      path = fetchurl {
+        name = "fs_constants___fs_constants_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz";
+        sha1 = "6be0de9be998ce16af8afc24497b9ee9b7ccd9ad";
+      };
+    }
+    {
+      name = "fs_extra___fs_extra_8.1.0.tgz";
+      path = fetchurl {
+        name = "fs_extra___fs_extra_8.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz";
+        sha1 = "49d43c45a88cd9677668cb7be1b46efdb8d2e1c0";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz";
+        sha1 = "ccff8570841e7fe4265693da88936c55aed7f7c7";
+      };
+    }
+    {
+      name = "fs_minipass___fs_minipass_2.0.0.tgz";
+      path = fetchurl {
+        name = "fs_minipass___fs_minipass_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.0.0.tgz";
+        sha1 = "a6415edab02fae4b9e9230bc87ee2e4472003cd1";
+      };
+    }
+    {
+      name = "fs_vacuum___fs_vacuum_1.2.10.tgz";
+      path = fetchurl {
+        name = "fs_vacuum___fs_vacuum_1.2.10.tgz";
+        url  = "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz";
+        sha1 = "b7629bec07a4031a2548fdf99f5ecf1cc8b31e36";
+      };
+    }
+    {
+      name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
+      path = fetchurl {
+        name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz";
+        sha1 = "b47df53493ef911df75731e70a9ded0189db40c9";
+      };
+    }
+    {
+      name = "fs.realpath___fs.realpath_1.0.0.tgz";
+      path = fetchurl {
+        name = "fs.realpath___fs.realpath_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    }
+    {
+      name = "function_bind___function_bind_1.1.1.tgz";
+      path = fetchurl {
+        name = "function_bind___function_bind_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
+        sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
+      };
+    }
+    {
+      name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
+      path = fetchurl {
+        name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
+        sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
+      };
+    }
+    {
+      name = "gauge___gauge_2.7.4.tgz";
+      path = fetchurl {
+        name = "gauge___gauge_2.7.4.tgz";
+        url  = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz";
+        sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+      };
+    }
+    {
+      name = "genfun___genfun_5.0.0.tgz";
+      path = fetchurl {
+        name = "genfun___genfun_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz";
+        sha1 = "9dd9710a06900a5c4a5bf57aca5da4e52fe76537";
+      };
+    }
+    {
+      name = "gentle_fs___gentle_fs_2.3.0.tgz";
+      path = fetchurl {
+        name = "gentle_fs___gentle_fs_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.3.0.tgz";
+        sha1 = "13538db5029400f98684be4894e8a7d8f0d1ea7f";
+      };
+    }
+    {
+      name = "get_caller_file___get_caller_file_1.0.3.tgz";
+      path = fetchurl {
+        name = "get_caller_file___get_caller_file_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz";
+        sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a";
+      };
+    }
+    {
+      name = "get_caller_file___get_caller_file_2.0.5.tgz";
+      path = fetchurl {
+        name = "get_caller_file___get_caller_file_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz";
+        sha1 = "4f94412a82db32f36e3b0b9741f8a97feb031f7e";
+      };
+    }
+    {
+      name = "get_stream___get_stream_3.0.0.tgz";
+      path = fetchurl {
+        name = "get_stream___get_stream_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz";
+        sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14";
+      };
+    }
+    {
+      name = "get_stream___get_stream_4.1.0.tgz";
+      path = fetchurl {
+        name = "get_stream___get_stream_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz";
+        sha1 = "c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5";
+      };
+    }
+    {
+      name = "get_stream___get_stream_5.1.0.tgz";
+      path = fetchurl {
+        name = "get_stream___get_stream_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz";
+        sha1 = "01203cdc92597f9b909067c3e656cc1f4d3c4dc9";
+      };
+    }
+    {
+      name = "getpass___getpass_0.1.7.tgz";
+      path = fetchurl {
+        name = "getpass___getpass_0.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
+        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz";
+        sha1 = "141f33b81a7c2492e125594307480c46679278a6";
+      };
+    }
+    {
+      name = "global_dirs___global_dirs_0.1.1.tgz";
+      path = fetchurl {
+        name = "global_dirs___global_dirs_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz";
+        sha1 = "b319c0dd4607f353f3be9cca4c72fc148c49f445";
+      };
+    }
+    {
+      name = "global_dirs___global_dirs_2.0.1.tgz";
+      path = fetchurl {
+        name = "global_dirs___global_dirs_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz";
+        sha1 = "acdf3bb6685bcd55cb35e8a052266569e9469201";
+      };
+    }
+    {
+      name = "global___global_4.3.2.tgz";
+      path = fetchurl {
+        name = "global___global_4.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz";
+        sha1 = "e76989268a6c74c38908b1305b10fc0e394e9d0f";
+      };
+    }
+    {
+      name = "globals___globals_11.12.0.tgz";
+      path = fetchurl {
+        name = "globals___globals_11.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz";
+        sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz";
+        sha1 = "240cd05785a9a18e561dc1b44b41c763ef1e8db0";
+      };
+    }
+    {
+      name = "got___got_9.6.0.tgz";
+      path = fetchurl {
+        name = "got___got_9.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz";
+        sha1 = "edf45e7d67f99545705de1f7bbeeeb121765ed85";
+      };
+    }
+    {
+      name = "graceful_fs___graceful_fs_4.2.3.tgz";
+      path = fetchurl {
+        name = "graceful_fs___graceful_fs_4.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz";
+        sha1 = "4a12ff1b60376ef09862c2093edd908328be8423";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
+        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+      };
+    }
+    {
+      name = "har_validator___har_validator_5.1.3.tgz";
+      path = fetchurl {
+        name = "har_validator___har_validator_5.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz";
+        sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080";
+      };
+    }
+    {
+      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 = "has_flag___has_flag_4.0.0.tgz";
+      path = fetchurl {
+        name = "has_flag___has_flag_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz";
+        sha1 = "944771fd9c81c81265c4d6941860da06bb59479b";
+      };
+    }
+    {
+      name = "has_symbols___has_symbols_1.0.1.tgz";
+      path = fetchurl {
+        name = "has_symbols___has_symbols_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz";
+        sha1 = "9f5214758a44196c406d9bd76cebf81ec2dd31e8";
+      };
+    }
+    {
+      name = "has_unicode___has_unicode_2.0.1.tgz";
+      path = fetchurl {
+        name = "has_unicode___has_unicode_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz";
+        sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+      };
+    }
+    {
+      name = "has_yarn___has_yarn_2.1.0.tgz";
+      path = fetchurl {
+        name = "has_yarn___has_yarn_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz";
+        sha1 = "137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77";
+      };
+    }
+    {
+      name = "has___has_1.0.3.tgz";
+      path = fetchurl {
+        name = "has___has_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
+        sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
+      };
+    }
+    {
+      name = "hosted_git_info___hosted_git_info_2.8.5.tgz";
+      path = fetchurl {
+        name = "hosted_git_info___hosted_git_info_2.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz";
+        sha1 = "759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c";
+      };
+    }
+    {
+      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.4.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.4.tgz";
+        sha1 = "be4973eb1fd2737b11c9c7c19380739bb249f60d";
+      };
+    }
+    {
+      name = "http_cache_semantics___http_cache_semantics_3.8.1.tgz";
+      path = fetchurl {
+        name = "http_cache_semantics___http_cache_semantics_3.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz";
+        sha1 = "39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2";
+      };
+    }
+    {
+      name = "http_cache_semantics___http_cache_semantics_4.0.3.tgz";
+      path = fetchurl {
+        name = "http_cache_semantics___http_cache_semantics_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz";
+        sha1 = "495704773277eeef6e43f9ab2c2c7d259dda25c5";
+      };
+    }
+    {
+      name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
+      path = fetchurl {
+        name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz";
+        sha1 = "e4821beef5b2142a2026bd73926fe537631c5405";
+      };
+    }
+    {
+      name = "http_signature___http_signature_1.2.0.tgz";
+      path = fetchurl {
+        name = "http_signature___http_signature_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
+        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+      };
+    }
+    {
+      name = "https_proxy_agent___https_proxy_agent_2.2.4.tgz";
+      path = fetchurl {
+        name = "https_proxy_agent___https_proxy_agent_2.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz";
+        sha1 = "4ee7a737abd92678a293d9b34a1af4d0d08c787b";
+      };
+    }
+    {
+      name = "humanize_ms___humanize_ms_1.2.1.tgz";
+      path = fetchurl {
+        name = "humanize_ms___humanize_ms_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz";
+        sha1 = "c46e3159a293f6b896da29316d8b6fe8bb79bbed";
+      };
+    }
+    {
+      name = "iconv_lite___iconv_lite_0.4.24.tgz";
+      path = fetchurl {
+        name = "iconv_lite___iconv_lite_0.4.24.tgz";
+        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
+        sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b";
+      };
+    }
+    {
+      name = "iconv_lite___iconv_lite_0.5.1.tgz";
+      path = fetchurl {
+        name = "iconv_lite___iconv_lite_0.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.1.tgz";
+        sha1 = "b2425d3c7b18f7219f2ca663d103bddb91718d64";
+      };
+    }
+    {
+      name = "ieee754___ieee754_1.1.13.tgz";
+      path = fetchurl {
+        name = "ieee754___ieee754_1.1.13.tgz";
+        url  = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz";
+        sha1 = "ec168558e95aa181fd87d37f55c32bbcb6708b84";
+      };
+    }
+    {
+      name = "iferr___iferr_0.1.5.tgz";
+      path = fetchurl {
+        name = "iferr___iferr_0.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz";
+        sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501";
+      };
+    }
+    {
+      name = "iferr___iferr_1.0.2.tgz";
+      path = fetchurl {
+        name = "iferr___iferr_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/iferr/-/iferr-1.0.2.tgz";
+        sha1 = "e9fde49a9da06dc4a4194c6c9ed6d08305037a6d";
+      };
+    }
+    {
+      name = "ignore_walk___ignore_walk_3.0.3.tgz";
+      path = fetchurl {
+        name = "ignore_walk___ignore_walk_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz";
+        sha1 = "017e2447184bfeade7c238e4aefdd1e8f95b1e37";
+      };
+    }
+    {
+      name = "ignore___ignore_4.0.6.tgz";
+      path = fetchurl {
+        name = "ignore___ignore_4.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz";
+        sha1 = "750e3db5862087b4737ebac8207ffd1ef27b25fc";
+      };
+    }
+    {
+      name = "import_fresh___import_fresh_3.2.1.tgz";
+      path = fetchurl {
+        name = "import_fresh___import_fresh_3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz";
+        sha1 = "633ff618506e793af5ac91bf48b72677e15cbe66";
+      };
+    }
+    {
+      name = "import_lazy___import_lazy_2.1.0.tgz";
+      path = fetchurl {
+        name = "import_lazy___import_lazy_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz";
+        sha1 = "05698e3d45c88e8d7e9d92cb0584e77f096f3e43";
+      };
+    }
+    {
+      name = "imurmurhash___imurmurhash_0.1.4.tgz";
+      path = fetchurl {
+        name = "imurmurhash___imurmurhash_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz";
+        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+      };
+    }
+    {
+      name = "infer_owner___infer_owner_1.0.4.tgz";
+      path = fetchurl {
+        name = "infer_owner___infer_owner_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz";
+        sha1 = "c4cefcaa8e51051c2a40ba2ce8a3d27295af9467";
+      };
+    }
+    {
+      name = "inflight___inflight_1.0.6.tgz";
+      path = fetchurl {
+        name = "inflight___inflight_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    }
+    {
+      name = "inherits___inherits_2.0.4.tgz";
+      path = fetchurl {
+        name = "inherits___inherits_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
+        sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
+      };
+    }
+    {
+      name = "ini___ini_1.3.5.tgz";
+      path = fetchurl {
+        name = "ini___ini_1.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz";
+        sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927";
+      };
+    }
+    {
+      name = "init_package_json___init_package_json_1.10.3.tgz";
+      path = fetchurl {
+        name = "init_package_json___init_package_json_1.10.3.tgz";
+        url  = "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.3.tgz";
+        sha1 = "45ffe2f610a8ca134f2bd1db5637b235070f6cbe";
+      };
+    }
+    {
+      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 = "internal_slot___internal_slot_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz";
+        sha1 = "9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3";
+      };
+    }
+    {
+      name = "invert_kv___invert_kv_1.0.0.tgz";
+      path = fetchurl {
+        name = "invert_kv___invert_kv_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz";
+        sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6";
+      };
+    }
+    {
+      name = "invert_kv___invert_kv_2.0.0.tgz";
+      path = fetchurl {
+        name = "invert_kv___invert_kv_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz";
+        sha1 = "7393f5afa59ec9ff5f67a27620d11c226e3eec02";
+      };
+    }
+    {
+      name = "ip_regex___ip_regex_1.0.3.tgz";
+      path = fetchurl {
+        name = "ip_regex___ip_regex_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz";
+        sha1 = "dc589076f659f419c222039a33316f1c7387effd";
+      };
+    }
+    {
+      name = "ip_regex___ip_regex_2.1.0.tgz";
+      path = fetchurl {
+        name = "ip_regex___ip_regex_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz";
+        sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
+      };
+    }
+    {
+      name = "ip___ip_1.1.5.tgz";
+      path = fetchurl {
+        name = "ip___ip_1.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz";
+        sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a";
+      };
+    }
+    {
+      name = "is_arguments___is_arguments_1.0.4.tgz";
+      path = fetchurl {
+        name = "is_arguments___is_arguments_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz";
+        sha1 = "3faf966c7cba0ff437fb31f6250082fcf0448cf3";
+      };
+    }
+    {
+      name = "is_arrayish___is_arrayish_0.2.1.tgz";
+      path = fetchurl {
+        name = "is_arrayish___is_arrayish_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz";
+        sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+      };
+    }
+    {
+      name = "is_callable___is_callable_1.1.4.tgz";
+      path = fetchurl {
+        name = "is_callable___is_callable_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz";
+        sha1 = "1e1adf219e1eeb684d691f9d6a05ff0d30a24d75";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz";
+        sha1 = "e3779c8ee17fccf428488f6e281187f2e632841c";
+      };
+    }
+    {
+      name = "is_ci___is_ci_2.0.0.tgz";
+      path = fetchurl {
+        name = "is_ci___is_ci_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz";
+        sha1 = "6bc6334181810e04b5c22b3d589fdca55026404c";
+      };
+    }
+    {
+      name = "is_cidr___is_cidr_3.1.0.tgz";
+      path = fetchurl {
+        name = "is_cidr___is_cidr_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-cidr/-/is-cidr-3.1.0.tgz";
+        sha1 = "72e233d8e1c4cd1d3f11713fcce3eba7b0e3476f";
+      };
+    }
+    {
+      name = "is_date_object___is_date_object_1.0.1.tgz";
+      path = fetchurl {
+        name = "is_date_object___is_date_object_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz";
+        sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+        sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+      };
+    }
+    {
+      name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+      path = fetchurl {
+        name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+      };
+    }
+    {
+      name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
+      path = fetchurl {
+        name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+        sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d";
+      };
+    }
+    {
+      name = "is_function___is_function_1.0.1.tgz";
+      path = fetchurl {
+        name = "is_function___is_function_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz";
+        sha1 = "12cfb98b65b57dd3d193a3121f5f6e2f437602b5";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz";
+        sha1 = "0dfd98f5a9111716dd535dda6492f67bf3d25a80";
+      };
+    }
+    {
+      name = "is_installed_globally___is_installed_globally_0.3.1.tgz";
+      path = fetchurl {
+        name = "is_installed_globally___is_installed_globally_0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.1.tgz";
+        sha1 = "679afef819347a72584617fd19497f010b8ed35f";
+      };
+    }
+    {
+      name = "is_npm___is_npm_1.0.0.tgz";
+      path = fetchurl {
+        name = "is_npm___is_npm_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz";
+        sha1 = "f2fb63a65e4905b406c86072765a1a4dc793b9f4";
+      };
+    }
+    {
+      name = "is_npm___is_npm_4.0.0.tgz";
+      path = fetchurl {
+        name = "is_npm___is_npm_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz";
+        sha1 = "c90dd8380696df87a7a6d823c20d0b12bbe3c84d";
+      };
+    }
+    {
+      name = "is_obj___is_obj_1.0.1.tgz";
+      path = fetchurl {
+        name = "is_obj___is_obj_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz";
+        sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f";
+      };
+    }
+    {
+      name = "is_obj___is_obj_2.0.0.tgz";
+      path = fetchurl {
+        name = "is_obj___is_obj_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz";
+        sha1 = "473fb05d973705e3fd9620545018ca8e22ef4982";
+      };
+    }
+    {
+      name = "is_path_inside___is_path_inside_1.0.1.tgz";
+      path = fetchurl {
+        name = "is_path_inside___is_path_inside_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz";
+        sha1 = "8ef5b7de50437a3fdca6b4e865ef7aa55cb48036";
+      };
+    }
+    {
+      name = "is_path_inside___is_path_inside_3.0.2.tgz";
+      path = fetchurl {
+        name = "is_path_inside___is_path_inside_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz";
+        sha1 = "f5220fc82a3e233757291dddc9c5877f2a1f3017";
+      };
+    }
+    {
+      name = "is_redirect___is_redirect_1.0.0.tgz";
+      path = fetchurl {
+        name = "is_redirect___is_redirect_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz";
+        sha1 = "1d03dded53bd8db0f30c26e4f95d36fc7c87dc24";
+      };
+    }
+    {
+      name = "is_regex___is_regex_1.0.4.tgz";
+      path = fetchurl {
+        name = "is_regex___is_regex_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz";
+        sha1 = "5517489b547091b0930e095654ced25ee97e9491";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz";
+        sha1 = "d778488bd0a4666a3be8a1482b9f2baafedea8b4";
+      };
+    }
+    {
+      name = "is_stream___is_stream_1.1.0.tgz";
+      path = fetchurl {
+        name = "is_stream___is_stream_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz";
+        sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz";
+        sha1 = "38e1014b9e6329be0de9d24a414fd7441ec61937";
+      };
+    }
+    {
+      name = "is_typedarray___is_typedarray_1.0.0.tgz";
+      path = fetchurl {
+        name = "is_typedarray___is_typedarray_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
+        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+      };
+    }
+    {
+      name = "is_yarn_global___is_yarn_global_0.3.0.tgz";
+      path = fetchurl {
+        name = "is_yarn_global___is_yarn_global_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz";
+        sha1 = "d502d3382590ea3004893746754c89139973e232";
+      };
+    }
+    {
+      name = "isarray___isarray_0.0.1.tgz";
+      path = fetchurl {
+        name = "isarray___isarray_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz";
+        sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+      };
+    }
+    {
+      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 = "isbinaryfile___isbinaryfile_4.0.6.tgz";
+      path = fetchurl {
+        name = "isbinaryfile___isbinaryfile_4.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz";
+        sha1 = "edcb62b224e2b4710830b67498c8e4e5a4d2610b";
+      };
+    }
+    {
+      name = "isexe___isexe_2.0.0.tgz";
+      path = fetchurl {
+        name = "isexe___isexe_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
+        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+      };
+    }
+    {
+      name = "isstream___isstream_0.1.2.tgz";
+      path = fetchurl {
+        name = "isstream___isstream_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
+        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/jimp/-/jimp-0.2.28.tgz";
+        sha1 = "dd529a937190f42957a7937d1acc3a7762996ea2";
+      };
+    }
+    {
+      name = "jpeg_js___jpeg_js_0.2.0.tgz";
+      path = fetchurl {
+        name = "jpeg_js___jpeg_js_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.2.0.tgz";
+        sha1 = "53e448ec9d263e683266467e9442d2c5a2ef5482";
+      };
+    }
+    {
+      name = "js_tokens___js_tokens_4.0.0.tgz";
+      path = fetchurl {
+        name = "js_tokens___js_tokens_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz";
+        sha1 = "19203fb59991df98e3a287050d4647cdeaf32499";
+      };
+    }
+    {
+      name = "js_yaml___js_yaml_3.13.1.tgz";
+      path = fetchurl {
+        name = "js_yaml___js_yaml_3.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz";
+        sha1 = "aff151b30bfdfa8e49e05da22e7415e9dfa37847";
+      };
+    }
+    {
+      name = "js_yaml___js_yaml_3.14.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";
+        url  = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
+        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz";
+        sha1 = "5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898";
+      };
+    }
+    {
+      name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
+      path = fetchurl {
+        name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+        sha1 = "bb867cfb3450e69107c131d1c514bab3dc8bcaa9";
+      };
+    }
+    {
+      name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+      path = fetchurl {
+        name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+        sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
+      };
+    }
+    {
+      name = "json_schema___json_schema_0.2.3.tgz";
+      path = fetchurl {
+        name = "json_schema___json_schema_0.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
+        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+      };
+    }
+    {
+      name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
+      path = fetchurl {
+        name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
+        sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
+      };
+    }
+    {
+      name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+      path = fetchurl {
+        name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+      };
+    }
+    {
+      name = "json5___json5_1.0.1.tgz";
+      path = fetchurl {
+        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";
+      };
+    }
+    {
+      name = "jsonfile___jsonfile_2.4.0.tgz";
+      path = fetchurl {
+        name = "jsonfile___jsonfile_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz";
+        sha1 = "3736a2b428b87bbda0cc83b53fa3d633a35c2ae8";
+      };
+    }
+    {
+      name = "jsonfile___jsonfile_4.0.0.tgz";
+      path = fetchurl {
+        name = "jsonfile___jsonfile_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
+        sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz";
+        sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280";
+      };
+    }
+    {
+      name = "jsprim___jsprim_1.4.1.tgz";
+      path = fetchurl {
+        name = "jsprim___jsprim_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
+        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz";
+        sha1 = "ecc228486f69991e49e9476485a5be1e8fc5c4d9";
+      };
+    }
+    {
+      name = "latest_version___latest_version_3.1.0.tgz";
+      path = fetchurl {
+        name = "latest_version___latest_version_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz";
+        sha1 = "a205383fea322b33b5ae3b18abee0dc2f356ee15";
+      };
+    }
+    {
+      name = "latest_version___latest_version_5.1.0.tgz";
+      path = fetchurl {
+        name = "latest_version___latest_version_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz";
+        sha1 = "119dfe908fe38d15dfa43ecd13fa12ec8832face";
+      };
+    }
+    {
+      name = "lazy_property___lazy_property_1.0.0.tgz";
+      path = fetchurl {
+        name = "lazy_property___lazy_property_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz";
+        sha1 = "84ddc4b370679ba8bd4cdcfa4c06b43d57111147";
+      };
+    }
+    {
+      name = "lazy_val___lazy_val_1.0.4.tgz";
+      path = fetchurl {
+        name = "lazy_val___lazy_val_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz";
+        sha1 = "882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65";
+      };
+    }
+    {
+      name = "lazystream___lazystream_1.0.0.tgz";
+      path = fetchurl {
+        name = "lazystream___lazystream_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz";
+        sha1 = "f6995fe0f820392f61396be89462407bb77168e4";
+      };
+    }
+    {
+      name = "lcid___lcid_1.0.0.tgz";
+      path = fetchurl {
+        name = "lcid___lcid_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz";
+        sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835";
+      };
+    }
+    {
+      name = "lcid___lcid_2.0.0.tgz";
+      path = fetchurl {
+        name = "lcid___lcid_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz";
+        sha1 = "6ef5d2df60e52f82eb228a4c373e8d1f397253cf";
+      };
+    }
+    {
+      name = "levn___levn_0.3.0.tgz";
+      path = fetchurl {
+        name = "levn___levn_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz";
+        sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/libcipm/-/libcipm-4.0.7.tgz";
+        sha1 = "76cd675c98bdaae64db88b782b01b804b6d02c8a";
+      };
+    }
+    {
+      name = "libnpm___libnpm_3.0.1.tgz";
+      path = fetchurl {
+        name = "libnpm___libnpm_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/libnpm/-/libnpm-3.0.1.tgz";
+        sha1 = "0be11b4c9dd4d1ffd7d95c786e92e55d65be77a2";
+      };
+    }
+    {
+      name = "libnpmaccess___libnpmaccess_3.0.2.tgz";
+      path = fetchurl {
+        name = "libnpmaccess___libnpmaccess_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.2.tgz";
+        sha1 = "8b2d72345ba3bef90d3b4f694edd5c0417f58923";
+      };
+    }
+    {
+      name = "libnpmconfig___libnpmconfig_1.2.1.tgz";
+      path = fetchurl {
+        name = "libnpmconfig___libnpmconfig_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz";
+        sha1 = "c0c2f793a74e67d4825e5039e7a02a0044dfcbc0";
+      };
+    }
+    {
+      name = "libnpmhook___libnpmhook_5.0.3.tgz";
+      path = fetchurl {
+        name = "libnpmhook___libnpmhook_5.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-5.0.3.tgz";
+        sha1 = "4020c0f5edbf08ebe395325caa5ea01885b928f7";
+      };
+    }
+    {
+      name = "libnpmorg___libnpmorg_1.0.1.tgz";
+      path = fetchurl {
+        name = "libnpmorg___libnpmorg_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.1.tgz";
+        sha1 = "5d2503f6ceb57f33dbdcc718e6698fea6d5ad087";
+      };
+    }
+    {
+      name = "libnpmpublish___libnpmpublish_1.1.3.tgz";
+      path = fetchurl {
+        name = "libnpmpublish___libnpmpublish_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-1.1.3.tgz";
+        sha1 = "e3782796722d79eef1a0a22944c117e0c4ca4280";
+      };
+    }
+    {
+      name = "libnpmsearch___libnpmsearch_2.0.2.tgz";
+      path = fetchurl {
+        name = "libnpmsearch___libnpmsearch_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.2.tgz";
+        sha1 = "9a4f059102d38e3dd44085bdbfe5095f2a5044cf";
+      };
+    }
+    {
+      name = "libnpmteam___libnpmteam_1.0.2.tgz";
+      path = fetchurl {
+        name = "libnpmteam___libnpmteam_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.2.tgz";
+        sha1 = "8b48bcbb6ce70dd8150c950fcbdbf3feb6eec820";
+      };
+    }
+    {
+      name = "libnpx___libnpx_10.2.2.tgz";
+      path = fetchurl {
+        name = "libnpx___libnpx_10.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.2.tgz";
+        sha1 = "5a4171b9b92dd031463ef66a4af9f5cbd6b09572";
+      };
+    }
+    {
+      name = "load_bmfont___load_bmfont_1.4.0.tgz";
+      path = fetchurl {
+        name = "load_bmfont___load_bmfont_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.0.tgz";
+        sha1 = "75f17070b14a8c785fe7f5bee2e6fd4f98093b6b";
+      };
+    }
+    {
+      name = "load_json_file___load_json_file_2.0.0.tgz";
+      path = fetchurl {
+        name = "load_json_file___load_json_file_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz";
+        sha1 = "7947e42149af80d696cbf797bcaabcfe1fe29ca8";
+      };
+    }
+    {
+      name = "locate_path___locate_path_2.0.0.tgz";
+      path = fetchurl {
+        name = "locate_path___locate_path_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz";
+        sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
+      };
+    }
+    {
+      name = "locate_path___locate_path_3.0.0.tgz";
+      path = fetchurl {
+        name = "locate_path___locate_path_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz";
+        sha1 = "dbec3b3ab759758071b58fe59fc41871af21400e";
+      };
+    }
+    {
+      name = "locate_path___locate_path_5.0.0.tgz";
+      path = fetchurl {
+        name = "locate_path___locate_path_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz";
+        sha1 = "1afba396afd676a6d42504d0a67a3a7eb9f62aa0";
+      };
+    }
+    {
+      name = "lock_verify___lock_verify_2.2.0.tgz";
+      path = fetchurl {
+        name = "lock_verify___lock_verify_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.2.0.tgz";
+        sha1 = "12432feb68bb647071c78c44bde16029a0f7d935";
+      };
+    }
+    {
+      name = "lockfile___lockfile_1.0.4.tgz";
+      path = fetchurl {
+        name = "lockfile___lockfile_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz";
+        sha1 = "07f819d25ae48f87e538e6578b6964a4981a5609";
+      };
+    }
+    {
+      name = "lodash._baseuniq___lodash._baseuniq_4.6.0.tgz";
+      path = fetchurl {
+        name = "lodash._baseuniq___lodash._baseuniq_4.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz";
+        sha1 = "0ebb44e456814af7905c6212fa2c9b2d51b841e8";
+      };
+    }
+    {
+      name = "lodash._createset___lodash._createset_4.0.3.tgz";
+      path = fetchurl {
+        name = "lodash._createset___lodash._createset_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz";
+        sha1 = "0f4659fbb09d75194fa9e2b88a6644d363c9fe26";
+      };
+    }
+    {
+      name = "lodash._root___lodash._root_3.0.1.tgz";
+      path = fetchurl {
+        name = "lodash._root___lodash._root_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz";
+        sha1 = "fba1c4524c19ee9a5f8136b4609f017cf4ded692";
+      };
+    }
+    {
+      name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+        sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+      };
+    }
+    {
+      name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
+      path = fetchurl {
+        name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz";
+        sha1 = "d09178716ffea4dde9e5fb7b37f6f0802274580c";
+      };
+    }
+    {
+      name = "lodash.difference___lodash.difference_4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.difference___lodash.difference_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz";
+        sha1 = "9ccb4e505d486b91651345772885a2df27fd017c";
+      };
+    }
+    {
+      name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
+      path = fetchurl {
+        name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz";
+        sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f";
+      };
+    }
+    {
+      name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz";
+      path = fetchurl {
+        name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz";
+        sha1 = "7c526a52d89b45c45cc690b88163be0497f550cb";
+      };
+    }
+    {
+      name = "lodash.union___lodash.union_4.6.0.tgz";
+      path = fetchurl {
+        name = "lodash.union___lodash.union_4.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz";
+        sha1 = "48bb5088409f16f1821666641c44dd1aaae3cd88";
+      };
+    }
+    {
+      name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
+        sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
+      };
+    }
+    {
+      name = "lodash.without___lodash.without_4.4.0.tgz";
+      path = fetchurl {
+        name = "lodash.without___lodash.without_4.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz";
+        sha1 = "3cd4574a00b67bae373a94b748772640507b7aac";
+      };
+    }
+    {
+      name = "lodash___lodash_4.17.15.tgz";
+      path = fetchurl {
+        name = "lodash___lodash_4.17.15.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz";
+        sha1 = "b447f6670a0455bbfeedd11392eff330ea097548";
+      };
+    }
+    {
+      name = "lodash___lodash_4.17.19.tgz";
+      path = fetchurl {
+        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";
+      };
+    }
+    {
+      name = "lowercase_keys___lowercase_keys_1.0.1.tgz";
+      path = fetchurl {
+        name = "lowercase_keys___lowercase_keys_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz";
+        sha1 = "6f9e30b47084d971a7c820ff15a6c5167b74c26f";
+      };
+    }
+    {
+      name = "lowercase_keys___lowercase_keys_2.0.0.tgz";
+      path = fetchurl {
+        name = "lowercase_keys___lowercase_keys_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz";
+        sha1 = "2603e78b7b4b0006cbca2fbcc8a3202558ac9479";
+      };
+    }
+    {
+      name = "lru_cache___lru_cache_4.1.5.tgz";
+      path = fetchurl {
+        name = "lru_cache___lru_cache_4.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz";
+        sha1 = "8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd";
+      };
+    }
+    {
+      name = "lru_cache___lru_cache_5.1.1.tgz";
+      path = fetchurl {
+        name = "lru_cache___lru_cache_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz";
+        sha1 = "1da27e6710271947695daf6848e847f01d84b920";
+      };
+    }
+    {
+      name = "make_dir___make_dir_1.3.0.tgz";
+      path = fetchurl {
+        name = "make_dir___make_dir_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz";
+        sha1 = "79c1033b80515bd6d24ec9933e860ca75ee27f0c";
+      };
+    }
+    {
+      name = "make_dir___make_dir_3.0.2.tgz";
+      path = fetchurl {
+        name = "make_dir___make_dir_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz";
+        sha1 = "04a1acbf22221e1d6ef43559f43e05a90dbb4392";
+      };
+    }
+    {
+      name = "make_fetch_happen___make_fetch_happen_5.0.2.tgz";
+      path = fetchurl {
+        name = "make_fetch_happen___make_fetch_happen_5.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz";
+        sha1 = "aa8387104f2687edca01c8687ee45013d02d19bd";
+      };
+    }
+    {
+      name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
+      path = fetchurl {
+        name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
+        sha1 = "7d583a7306434c055fe474b0f45078e6e1b4b92a";
+      };
+    }
+    {
+      name = "meant___meant_1.0.1.tgz";
+      path = fetchurl {
+        name = "meant___meant_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/meant/-/meant-1.0.1.tgz";
+        sha1 = "66044fea2f23230ec806fb515efea29c44d2115d";
+      };
+    }
+    {
+      name = "mem___mem_1.1.0.tgz";
+      path = fetchurl {
+        name = "mem___mem_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz";
+        sha1 = "5edd52b485ca1d900fe64895505399a0dfa45f76";
+      };
+    }
+    {
+      name = "mem___mem_4.3.0.tgz";
+      path = fetchurl {
+        name = "mem___mem_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz";
+        sha1 = "461af497bc4ae09608cdb2e60eefb69bff744178";
+      };
+    }
+    {
+      name = "mime_db___mime_db_1.42.0.tgz";
+      path = fetchurl {
+        name = "mime_db___mime_db_1.42.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz";
+        sha1 = "3e252907b4c7adb906597b4b65636272cf9e7bac";
+      };
+    }
+    {
+      name = "mime_types___mime_types_2.1.25.tgz";
+      path = fetchurl {
+        name = "mime_types___mime_types_2.1.25.tgz";
+        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.25.tgz";
+        sha1 = "39772d46621f93e2a80a856c53b86a62156a6437";
+      };
+    }
+    {
+      name = "mime___mime_1.6.0.tgz";
+      path = fetchurl {
+        name = "mime___mime_1.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
+        sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
+      };
+    }
+    {
+      name = "mime___mime_2.4.6.tgz";
+      path = fetchurl {
+        name = "mime___mime_2.4.6.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz";
+        sha1 = "e5b407c90db442f2beb5b162373d07b69affa4d1";
+      };
+    }
+    {
+      name = "mimic_fn___mimic_fn_1.2.0.tgz";
+      path = fetchurl {
+        name = "mimic_fn___mimic_fn_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz";
+        sha1 = "820c86a39334640e99516928bd03fca88057d022";
+      };
+    }
+    {
+      name = "mimic_fn___mimic_fn_2.1.0.tgz";
+      path = fetchurl {
+        name = "mimic_fn___mimic_fn_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz";
+        sha1 = "7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b";
+      };
+    }
+    {
+      name = "mimic_response___mimic_response_1.0.1.tgz";
+      path = fetchurl {
+        name = "mimic_response___mimic_response_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz";
+        sha1 = "4923538878eef42063cb8a3e3b0798781487ab1b";
+      };
+    }
+    {
+      name = "min_document___min_document_2.19.0.tgz";
+      path = fetchurl {
+        name = "min_document___min_document_2.19.0.tgz";
+        url  = "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz";
+        sha1 = "7bd282e3f5842ed295bb748cdd9f1ffa2c824685";
+      };
+    }
+    {
+      name = "minimatch___minimatch_3.0.4.tgz";
+      path = fetchurl {
+        name = "minimatch___minimatch_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
+        sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+      };
+    }
+    {
+      name = "minimist___minimist_0.0.8.tgz";
+      path = fetchurl {
+        name = "minimist___minimist_0.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
+        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+      };
+    }
+    {
+      name = "minimist___minimist_1.2.3.tgz";
+      path = fetchurl {
+        name = "minimist___minimist_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.3.tgz";
+        sha1 = "3db5c0765545ab8637be71f333a104a965a9ca3f";
+      };
+    }
+    {
+      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 = "minipass___minipass_2.9.0.tgz";
+      path = fetchurl {
+        name = "minipass___minipass_2.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz";
+        sha1 = "e713762e7d3e32fed803115cf93e04bca9fcc9a6";
+      };
+    }
+    {
+      name = "minipass___minipass_3.1.1.tgz";
+      path = fetchurl {
+        name = "minipass___minipass_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz";
+        sha1 = "7607ce778472a185ad6d89082aa2070f79cedcd5";
+      };
+    }
+    {
+      name = "minizlib___minizlib_1.3.3.tgz";
+      path = fetchurl {
+        name = "minizlib___minizlib_1.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz";
+        sha1 = "2290de96818a34c29551c8a8d301216bd65a861d";
+      };
+    }
+    {
+      name = "minizlib___minizlib_2.1.0.tgz";
+      path = fetchurl {
+        name = "minizlib___minizlib_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.0.tgz";
+        sha1 = "fd52c645301ef09a63a2c209697c294c6ce02cf3";
+      };
+    }
+    {
+      name = "mississippi___mississippi_3.0.0.tgz";
+      path = fetchurl {
+        name = "mississippi___mississippi_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz";
+        sha1 = "ea0a3291f97e0b5e8776b363d5f0a12d94c67022";
+      };
+    }
+    {
+      name = "mkdirp___mkdirp_0.5.1.tgz";
+      path = fetchurl {
+        name = "mkdirp___mkdirp_0.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz";
+        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+      };
+    }
+    {
+      name = "mkdirp___mkdirp_0.5.5.tgz";
+      path = fetchurl {
+        name = "mkdirp___mkdirp_0.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
+        sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
+      };
+    }
+    {
+      name = "mkdirp___mkdirp_1.0.3.tgz";
+      path = fetchurl {
+        name = "mkdirp___mkdirp_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz";
+        sha1 = "4cf2e30ad45959dddea53ad97d518b6c8205e1ea";
+      };
+    }
+    {
+      name = "move_concurrently___move_concurrently_1.0.1.tgz";
+      path = fetchurl {
+        name = "move_concurrently___move_concurrently_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz";
+        sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92";
+      };
+    }
+    {
+      name = "ms___ms_2.0.0.tgz";
+      path = fetchurl {
+        name = "ms___ms_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
+        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+      };
+    }
+    {
+      name = "ms___ms_2.1.2.tgz";
+      path = fetchurl {
+        name = "ms___ms_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
+        sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
+      };
+    }
+    {
+      name = "mute_stream___mute_stream_0.0.8.tgz";
+      path = fetchurl {
+        name = "mute_stream___mute_stream_0.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz";
+        sha1 = "1630c42b2251ff81e2a283de96a5497ea92e5e0d";
+      };
+    }
+    {
+      name = "natural_compare___natural_compare_1.4.0.tgz";
+      path = fetchurl {
+        name = "natural_compare___natural_compare_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz";
+        sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
+      };
+    }
+    {
+      name = "needle___needle_2.5.0.tgz";
+      path = fetchurl {
+        name = "needle___needle_2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/needle/-/needle-2.5.0.tgz";
+        sha1 = "e6fc4b3cc6c25caed7554bd613a5cf0bac8c31c0";
+      };
+    }
+    {
+      name = "nice_try___nice_try_1.0.5.tgz";
+      path = fetchurl {
+        name = "nice_try___nice_try_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz";
+        sha1 = "a3378a7696ce7d223e88fc9b764bd7ef1089e366";
+      };
+    }
+    {
+      name = "node_fetch_npm___node_fetch_npm_2.0.2.tgz";
+      path = fetchurl {
+        name = "node_fetch_npm___node_fetch_npm_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz";
+        sha1 = "7258c9046182dca345b4208eda918daf33697ff7";
+      };
+    }
+    {
+      name = "node_gyp___node_gyp_5.1.0.tgz";
+      path = fetchurl {
+        name = "node_gyp___node_gyp_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.0.tgz";
+        sha1 = "8e31260a7af4a2e2f994b0673d4e0b3866156332";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz";
+        sha1 = "c2fc383276b74c7ffa842925241553e8b40f1087";
+      };
+    }
+    {
+      name = "nopt___nopt_4.0.1.tgz";
+      path = fetchurl {
+        name = "nopt___nopt_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz";
+        sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
+        sha1 = "e66db1838b200c1dfc233225d12cb36520e234a8";
+      };
+    }
+    {
+      name = "normalize_path___normalize_path_3.0.0.tgz";
+      path = fetchurl {
+        name = "normalize_path___normalize_path_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz";
+        sha1 = "0dcd69ff23a1c9b11fd0978316644a0388216a65";
+      };
+    }
+    {
+      name = "normalize_url___normalize_url_4.5.0.tgz";
+      path = fetchurl {
+        name = "normalize_url___normalize_url_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz";
+        sha1 = "453354087e6ca96957bd8f5baf753f5982142129";
+      };
+    }
+    {
+      name = "npm_audit_report___npm_audit_report_1.3.2.tgz";
+      path = fetchurl {
+        name = "npm_audit_report___npm_audit_report_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.2.tgz";
+        sha1 = "303bc78cd9e4c226415076a4f7e528c89fc77018";
+      };
+    }
+    {
+      name = "npm_bundled___npm_bundled_1.1.1.tgz";
+      path = fetchurl {
+        name = "npm_bundled___npm_bundled_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz";
+        sha1 = "1edd570865a94cdb1bc8220775e29466c9fb234b";
+      };
+    }
+    {
+      name = "npm_cache_filename___npm_cache_filename_1.0.2.tgz";
+      path = fetchurl {
+        name = "npm_cache_filename___npm_cache_filename_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz";
+        sha1 = "ded306c5b0bfc870a9e9faf823bc5f283e05ae11";
+      };
+    }
+    {
+      name = "npm_install_checks___npm_install_checks_3.0.2.tgz";
+      path = fetchurl {
+        name = "npm_install_checks___npm_install_checks_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-3.0.2.tgz";
+        sha1 = "ab2e32ad27baa46720706908e5b14c1852de44d9";
+      };
+    }
+    {
+      name = "npm_lifecycle___npm_lifecycle_3.1.4.tgz";
+      path = fetchurl {
+        name = "npm_lifecycle___npm_lifecycle_3.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.4.tgz";
+        sha1 = "de6975c7d8df65f5150db110b57cce498b0b604c";
+      };
+    }
+    {
+      name = "npm_logical_tree___npm_logical_tree_1.2.1.tgz";
+      path = fetchurl {
+        name = "npm_logical_tree___npm_logical_tree_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz";
+        sha1 = "44610141ca24664cad35d1e607176193fd8f5b88";
+      };
+    }
+    {
+      name = "npm_normalize_package_bin___npm_normalize_package_bin_1.0.1.tgz";
+      path = fetchurl {
+        name = "npm_normalize_package_bin___npm_normalize_package_bin_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz";
+        sha1 = "6e79a41f23fd235c0623218228da7d9c23b8f6e2";
+      };
+    }
+    {
+      name = "npm_package_arg___npm_package_arg_6.1.1.tgz";
+      path = fetchurl {
+        name = "npm_package_arg___npm_package_arg_6.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz";
+        sha1 = "02168cb0a49a2b75bf988a28698de7b529df5cb7";
+      };
+    }
+    {
+      name = "npm_packlist___npm_packlist_1.4.8.tgz";
+      path = fetchurl {
+        name = "npm_packlist___npm_packlist_1.4.8.tgz";
+        url  = "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz";
+        sha1 = "56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e";
+      };
+    }
+    {
+      name = "npm_pick_manifest___npm_pick_manifest_3.0.2.tgz";
+      path = fetchurl {
+        name = "npm_pick_manifest___npm_pick_manifest_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz";
+        sha1 = "f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7";
+      };
+    }
+    {
+      name = "npm_profile___npm_profile_4.0.2.tgz";
+      path = fetchurl {
+        name = "npm_profile___npm_profile_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.2.tgz";
+        sha1 = "8272a71c19634d0dce9c35a5daf8ee589cbb0f52";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.2.tgz";
+        sha1 = "2b1434f93ccbe6b6385f8e45f45db93e16921d7a";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz";
+        sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
+      };
+    }
+    {
+      name = "npm_user_validate___npm_user_validate_1.0.0.tgz";
+      path = fetchurl {
+        name = "npm_user_validate___npm_user_validate_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.0.tgz";
+        sha1 = "8ceca0f5cea04d4e93519ef72d0557a75122e951";
+      };
+    }
+    {
+      name = "npm___npm_6.14.6.tgz";
+      path = fetchurl {
+        name = "npm___npm_6.14.6.tgz";
+        url  = "https://registry.yarnpkg.com/npm/-/npm-6.14.6.tgz";
+        sha1 = "1a81ce1fac2bf5457dbf6342ceed503627ff228f";
+      };
+    }
+    {
+      name = "npmlog___npmlog_4.1.2.tgz";
+      path = fetchurl {
+        name = "npmlog___npmlog_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz";
+        sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b";
+      };
+    }
+    {
+      name = "number_is_nan___number_is_nan_1.0.1.tgz";
+      path = fetchurl {
+        name = "number_is_nan___number_is_nan_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
+        sha1 = "097b602b53422a522c1afb8790318336941a011d";
+      };
+    }
+    {
+      name = "oauth_sign___oauth_sign_0.9.0.tgz";
+      path = fetchurl {
+        name = "oauth_sign___oauth_sign_0.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
+        sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
+      };
+    }
+    {
+      name = "object_assign___object_assign_4.1.1.tgz";
+      path = fetchurl {
+        name = "object_assign___object_assign_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
+        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+      };
+    }
+    {
+      name = "object_inspect___object_inspect_1.7.0.tgz";
+      path = fetchurl {
+        name = "object_inspect___object_inspect_1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz";
+        sha1 = "f4f6bd181ad77f006b5ece60bd0b6f398ff74a67";
+      };
+    }
+    {
+      name = "object_is___object_is_1.0.1.tgz";
+      path = fetchurl {
+        name = "object_is___object_is_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz";
+        sha1 = "0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6";
+      };
+    }
+    {
+      name = "object_keys___object_keys_1.1.1.tgz";
+      path = fetchurl {
+        name = "object_keys___object_keys_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz";
+        sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz";
+        sha1 = "8758c846f5b407adab0f236e0986f14b051caa16";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
+        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+      };
+    }
+    {
+      name = "onetime___onetime_5.1.0.tgz";
+      path = fetchurl {
+        name = "onetime___onetime_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz";
+        sha1 = "fff0f3c91617fe62bb50189636e99ac8a6df7be5";
+      };
+    }
+    {
+      name = "opener___opener_1.5.1.tgz";
+      path = fetchurl {
+        name = "opener___opener_1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz";
+        sha1 = "6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed";
+      };
+    }
+    {
+      name = "optionator___optionator_0.8.3.tgz";
+      path = fetchurl {
+        name = "optionator___optionator_0.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz";
+        sha1 = "84fa1d036fe9d3c7e21d99884b601167ec8fb495";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz";
+        sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+      };
+    }
+    {
+      name = "os_locale___os_locale_2.1.0.tgz";
+      path = fetchurl {
+        name = "os_locale___os_locale_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz";
+        sha1 = "42bc2900a6b5b8bd17376c8e882b65afccf24bf2";
+      };
+    }
+    {
+      name = "os_locale___os_locale_3.1.0.tgz";
+      path = fetchurl {
+        name = "os_locale___os_locale_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz";
+        sha1 = "a802a6ee17f24c10483ab9935719cef4ed16bf1a";
+      };
+    }
+    {
+      name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
+      path = fetchurl {
+        name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+        sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+      };
+    }
+    {
+      name = "osenv___osenv_0.1.5.tgz";
+      path = fetchurl {
+        name = "osenv___osenv_0.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz";
+        sha1 = "85cdfafaeb28e8677f416e287592b5f3f49ea410";
+      };
+    }
+    {
+      name = "p_cancelable___p_cancelable_1.1.0.tgz";
+      path = fetchurl {
+        name = "p_cancelable___p_cancelable_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz";
+        sha1 = "d078d15a3af409220c886f1d9a0ca2e441ab26cc";
+      };
+    }
+    {
+      name = "p_defer___p_defer_1.0.0.tgz";
+      path = fetchurl {
+        name = "p_defer___p_defer_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz";
+        sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
+      };
+    }
+    {
+      name = "p_finally___p_finally_1.0.0.tgz";
+      path = fetchurl {
+        name = "p_finally___p_finally_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz";
+        sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
+      };
+    }
+    {
+      name = "p_is_promise___p_is_promise_2.1.0.tgz";
+      path = fetchurl {
+        name = "p_is_promise___p_is_promise_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz";
+        sha1 = "918cebaea248a62cf7ffab8e3bca8c5f882fc42e";
+      };
+    }
+    {
+      name = "p_limit___p_limit_1.3.0.tgz";
+      path = fetchurl {
+        name = "p_limit___p_limit_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz";
+        sha1 = "b86bd5f0c25690911c7590fcbfc2010d54b3ccb8";
+      };
+    }
+    {
+      name = "p_limit___p_limit_2.2.1.tgz";
+      path = fetchurl {
+        name = "p_limit___p_limit_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz";
+        sha1 = "aa07a788cc3151c939b5131f63570f0dd2009537";
+      };
+    }
+    {
+      name = "p_limit___p_limit_2.2.2.tgz";
+      path = fetchurl {
+        name = "p_limit___p_limit_2.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz";
+        sha1 = "61279b67721f5287aa1c13a9a7fbbc48c9291b1e";
+      };
+    }
+    {
+      name = "p_locate___p_locate_2.0.0.tgz";
+      path = fetchurl {
+        name = "p_locate___p_locate_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz";
+        sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
+      };
+    }
+    {
+      name = "p_locate___p_locate_3.0.0.tgz";
+      path = fetchurl {
+        name = "p_locate___p_locate_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz";
+        sha1 = "322d69a05c0264b25997d9f40cd8a891ab0064a4";
+      };
+    }
+    {
+      name = "p_locate___p_locate_4.1.0.tgz";
+      path = fetchurl {
+        name = "p_locate___p_locate_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz";
+        sha1 = "a3428bb7088b3a60292f66919278b7c297ad4f07";
+      };
+    }
+    {
+      name = "p_try___p_try_1.0.0.tgz";
+      path = fetchurl {
+        name = "p_try___p_try_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz";
+        sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
+      };
+    }
+    {
+      name = "p_try___p_try_2.2.0.tgz";
+      path = fetchurl {
+        name = "p_try___p_try_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz";
+        sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6";
+      };
+    }
+    {
+      name = "package_json___package_json_4.0.1.tgz";
+      path = fetchurl {
+        name = "package_json___package_json_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz";
+        sha1 = "8869a0401253661c4c4ca3da6c2121ed555f5eed";
+      };
+    }
+    {
+      name = "package_json___package_json_6.5.0.tgz";
+      path = fetchurl {
+        name = "package_json___package_json_6.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz";
+        sha1 = "6feedaca35e75725876d0b0e64974697fed145b0";
+      };
+    }
+    {
+      name = "pacote___pacote_9.5.12.tgz";
+      path = fetchurl {
+        name = "pacote___pacote_9.5.12.tgz";
+        url  = "https://registry.yarnpkg.com/pacote/-/pacote-9.5.12.tgz";
+        sha1 = "1e11dd7a8d736bcc36b375a9804d41bb0377bf66";
+      };
+    }
+    {
+      name = "parallel_transform___parallel_transform_1.2.0.tgz";
+      path = fetchurl {
+        name = "parallel_transform___parallel_transform_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz";
+        sha1 = "9049ca37d6cb2182c3b1d2c720be94d14a5814fc";
+      };
+    }
+    {
+      name = "parent_module___parent_module_1.0.1.tgz";
+      path = fetchurl {
+        name = "parent_module___parent_module_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz";
+        sha1 = "691d2709e78c79fae3a156622452d00762caaaa2";
+      };
+    }
+    {
+      name = "parse_bmfont_ascii___parse_bmfont_ascii_1.0.6.tgz";
+      path = fetchurl {
+        name = "parse_bmfont_ascii___parse_bmfont_ascii_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz";
+        sha1 = "11ac3c3ff58f7c2020ab22769079108d4dfa0285";
+      };
+    }
+    {
+      name = "parse_bmfont_binary___parse_bmfont_binary_1.0.6.tgz";
+      path = fetchurl {
+        name = "parse_bmfont_binary___parse_bmfont_binary_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz";
+        sha1 = "d038b476d3e9dd9db1e11a0b0e53a22792b69006";
+      };
+    }
+    {
+      name = "parse_bmfont_xml___parse_bmfont_xml_1.1.4.tgz";
+      path = fetchurl {
+        name = "parse_bmfont_xml___parse_bmfont_xml_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz";
+        sha1 = "015319797e3e12f9e739c4d513872cd2fa35f389";
+      };
+    }
+    {
+      name = "parse_headers___parse_headers_2.0.3.tgz";
+      path = fetchurl {
+        name = "parse_headers___parse_headers_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz";
+        sha1 = "5e8e7512383d140ba02f0c7aa9f49b4399c92515";
+      };
+    }
+    {
+      name = "parse_json___parse_json_2.2.0.tgz";
+      path = fetchurl {
+        name = "parse_json___parse_json_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz";
+        sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9";
+      };
+    }
+    {
+      name = "path_exists___path_exists_3.0.0.tgz";
+      path = fetchurl {
+        name = "path_exists___path_exists_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz";
+        sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+      };
+    }
+    {
+      name = "path_exists___path_exists_4.0.0.tgz";
+      path = fetchurl {
+        name = "path_exists___path_exists_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz";
+        sha1 = "513bdbe2d3b95d7762e8c1137efa195c6c61b5b3";
+      };
+    }
+    {
+      name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+      path = fetchurl {
+        name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    }
+    {
+      name = "path_is_inside___path_is_inside_1.0.2.tgz";
+      path = fetchurl {
+        name = "path_is_inside___path_is_inside_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz";
+        sha1 = "365417dede44430d1c11af61027facf074bdfc53";
+      };
+    }
+    {
+      name = "path_key___path_key_2.0.1.tgz";
+      path = fetchurl {
+        name = "path_key___path_key_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz";
+        sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz";
+        sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c";
+      };
+    }
+    {
+      name = "path_type___path_type_2.0.0.tgz";
+      path = fetchurl {
+        name = "path_type___path_type_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz";
+        sha1 = "f012ccb8415b7096fc2daa1054c3d72389594c73";
+      };
+    }
+    {
+      name = "performance_now___performance_now_2.1.0.tgz";
+      path = fetchurl {
+        name = "performance_now___performance_now_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
+        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+      };
+    }
+    {
+      name = "phin___phin_2.9.3.tgz";
+      path = fetchurl {
+        name = "phin___phin_2.9.3.tgz";
+        url  = "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz";
+        sha1 = "f9b6ac10a035636fb65dfc576aaaa17b8743125c";
+      };
+    }
+    {
+      name = "pify___pify_2.3.0.tgz";
+      path = fetchurl {
+        name = "pify___pify_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz";
+        sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
+      };
+    }
+    {
+      name = "pify___pify_3.0.0.tgz";
+      path = fetchurl {
+        name = "pify___pify_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz";
+        sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+      };
+    }
+    {
+      name = "pixelmatch___pixelmatch_4.0.2.tgz";
+      path = fetchurl {
+        name = "pixelmatch___pixelmatch_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz";
+        sha1 = "8f47dcec5011b477b67db03c243bc1f3085e8854";
+      };
+    }
+    {
+      name = "pkg_dir___pkg_dir_2.0.0.tgz";
+      path = fetchurl {
+        name = "pkg_dir___pkg_dir_2.0.0.tgz";
+        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";
+        url  = "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz";
+        sha1 = "c819ac728059a461cab1c3889a2be3c49a004d7f";
+      };
+    }
+    {
+      name = "png_to_ico___png_to_ico_1.0.7.tgz";
+      path = fetchurl {
+        name = "png_to_ico___png_to_ico_1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/png-to-ico/-/png-to-ico-1.0.7.tgz";
+        sha1 = "9346b5f4d6fd7e94cb08fd49eeb585f501c3e5f2";
+      };
+    }
+    {
+      name = "pngjs___pngjs_3.4.0.tgz";
+      path = fetchurl {
+        name = "pngjs___pngjs_3.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz";
+        sha1 = "99ca7d725965fb655814eaf65f38f12bbdbf555f";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz";
+        sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+      };
+    }
+    {
+      name = "prepend_http___prepend_http_1.0.4.tgz";
+      path = fetchurl {
+        name = "prepend_http___prepend_http_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz";
+        sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc";
+      };
+    }
+    {
+      name = "prepend_http___prepend_http_2.0.0.tgz";
+      path = fetchurl {
+        name = "prepend_http___prepend_http_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz";
+        sha1 = "e92434bfa5ea8c19f41cdfd401d741a3c819d897";
+      };
+    }
+    {
+      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 = "process___process_0.5.2.tgz";
+      path = fetchurl {
+        name = "process___process_0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz";
+        sha1 = "1638d8a8e34c2f440a91db95ab9aeb677fc185cf";
+      };
+    }
+    {
+      name = "progress___progress_2.0.3.tgz";
+      path = fetchurl {
+        name = "progress___progress_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz";
+        sha1 = "7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8";
+      };
+    }
+    {
+      name = "promise_inflight___promise_inflight_1.0.1.tgz";
+      path = fetchurl {
+        name = "promise_inflight___promise_inflight_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz";
+        sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
+      };
+    }
+    {
+      name = "promise_retry___promise_retry_1.1.1.tgz";
+      path = fetchurl {
+        name = "promise_retry___promise_retry_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz";
+        sha1 = "6739e968e3051da20ce6497fb2b50f6911df3d6d";
+      };
+    }
+    {
+      name = "promzard___promzard_0.3.0.tgz";
+      path = fetchurl {
+        name = "promzard___promzard_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz";
+        sha1 = "26a5d6ee8c7dee4cb12208305acfb93ba382a9ee";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz";
+        sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849";
+      };
+    }
+    {
+      name = "protoduck___protoduck_5.0.1.tgz";
+      path = fetchurl {
+        name = "protoduck___protoduck_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz";
+        sha1 = "03c3659ca18007b69a50fd82a7ebcc516261151f";
+      };
+    }
+    {
+      name = "prr___prr_1.0.1.tgz";
+      path = fetchurl {
+        name = "prr___prr_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz";
+        sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476";
+      };
+    }
+    {
+      name = "pseudomap___pseudomap_1.0.2.tgz";
+      path = fetchurl {
+        name = "pseudomap___pseudomap_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz";
+        sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+      };
+    }
+    {
+      name = "psl___psl_1.6.0.tgz";
+      path = fetchurl {
+        name = "psl___psl_1.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/psl/-/psl-1.6.0.tgz";
+        sha1 = "60557582ee23b6c43719d9890fb4170ecd91e110";
+      };
+    }
+    {
+      name = "pump___pump_2.0.1.tgz";
+      path = fetchurl {
+        name = "pump___pump_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz";
+        sha1 = "12399add6e4cf7526d973cbc8b5ce2e2908b3909";
+      };
+    }
+    {
+      name = "pump___pump_3.0.0.tgz";
+      path = fetchurl {
+        name = "pump___pump_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz";
+        sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64";
+      };
+    }
+    {
+      name = "pumpify___pumpify_1.5.1.tgz";
+      path = fetchurl {
+        name = "pumpify___pumpify_1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz";
+        sha1 = "36513be246ab27570b1a374a5ce278bfd74370ce";
+      };
+    }
+    {
+      name = "punycode___punycode_1.4.1.tgz";
+      path = fetchurl {
+        name = "punycode___punycode_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz";
+        sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+      };
+    }
+    {
+      name = "punycode___punycode_2.1.1.tgz";
+      path = fetchurl {
+        name = "punycode___punycode_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
+        sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
+      };
+    }
+    {
+      name = "pupa___pupa_2.0.1.tgz";
+      path = fetchurl {
+        name = "pupa___pupa_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/pupa/-/pupa-2.0.1.tgz";
+        sha1 = "dbdc9ff48ffbea4a26a069b6f9f7abb051008726";
+      };
+    }
+    {
+      name = "qrcode_terminal___qrcode_terminal_0.12.0.tgz";
+      path = fetchurl {
+        name = "qrcode_terminal___qrcode_terminal_0.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz";
+        sha1 = "bb5b699ef7f9f0505092a3748be4464fe71b5819";
+      };
+    }
+    {
+      name = "qs___qs_6.5.2.tgz";
+      path = fetchurl {
+        name = "qs___qs_6.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
+        sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
+      };
+    }
+    {
+      name = "query_string___query_string_6.10.1.tgz";
+      path = fetchurl {
+        name = "query_string___query_string_6.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/query-string/-/query-string-6.10.1.tgz";
+        sha1 = "30b3505f6fca741d5ae541964d1b3ae9dc2a0de8";
+      };
+    }
+    {
+      name = "qw___qw_1.0.1.tgz";
+      path = fetchurl {
+        name = "qw___qw_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz";
+        sha1 = "efbfdc740f9ad054304426acb183412cc8b996d4";
+      };
+    }
+    {
+      name = "rc___rc_1.2.8.tgz";
+      path = fetchurl {
+        name = "rc___rc_1.2.8.tgz";
+        url  = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz";
+        sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/read-chunk/-/read-chunk-1.0.1.tgz";
+        sha1 = "5f68cab307e663f19993527d9b589cace4661194";
+      };
+    }
+    {
+      name = "read_cmd_shim___read_cmd_shim_1.0.5.tgz";
+      path = fetchurl {
+        name = "read_cmd_shim___read_cmd_shim_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz";
+        sha1 = "87e43eba50098ba5a32d0ceb583ab8e43b961c16";
+      };
+    }
+    {
+      name = "read_config_file___read_config_file_6.0.0.tgz";
+      path = fetchurl {
+        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";
+      };
+    }
+    {
+      name = "read_installed___read_installed_4.0.3.tgz";
+      path = fetchurl {
+        name = "read_installed___read_installed_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz";
+        sha1 = "ff9b8b67f187d1e4c29b9feb31f6b223acd19067";
+      };
+    }
+    {
+      name = "read_package_json___read_package_json_2.1.1.tgz";
+      path = fetchurl {
+        name = "read_package_json___read_package_json_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.1.tgz";
+        sha1 = "16aa66c59e7d4dad6288f179dd9295fd59bb98f1";
+      };
+    }
+    {
+      name = "read_package_tree___read_package_tree_5.3.1.tgz";
+      path = fetchurl {
+        name = "read_package_tree___read_package_tree_5.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz";
+        sha1 = "a32cb64c7f31eb8a6f31ef06f9cedf74068fe636";
+      };
+    }
+    {
+      name = "read_pkg_up___read_pkg_up_2.0.0.tgz";
+      path = fetchurl {
+        name = "read_pkg_up___read_pkg_up_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz";
+        sha1 = "6b72a8048984e0c41e79510fd5e9fa99b3b549be";
+      };
+    }
+    {
+      name = "read_pkg___read_pkg_2.0.0.tgz";
+      path = fetchurl {
+        name = "read_pkg___read_pkg_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz";
+        sha1 = "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8";
+      };
+    }
+    {
+      name = "read___read_1.0.7.tgz";
+      path = fetchurl {
+        name = "read___read_1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz";
+        sha1 = "b3da19bd052431a97671d44a42634adf710b40c4";
+      };
+    }
+    {
+      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 = "readable_stream___readable_stream_2.3.6.tgz";
+      path = fetchurl {
+        name = "readable_stream___readable_stream_2.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz";
+        sha1 = "b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf";
+      };
+    }
+    {
+      name = "readable_stream___readable_stream_3.4.0.tgz";
+      path = fetchurl {
+        name = "readable_stream___readable_stream_3.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz";
+        sha1 = "a51c26754658e0a3c21dbf59163bd45ba6f447fc";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz";
+        sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9";
+      };
+    }
+    {
+      name = "readdir_scoped_modules___readdir_scoped_modules_1.1.0.tgz";
+      path = fetchurl {
+        name = "readdir_scoped_modules___readdir_scoped_modules_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz";
+        sha1 = "8d45407b4f870a0dcaebc0e28670d18e74514309";
+      };
+    }
+    {
+      name = "regexp.prototype.flags___regexp.prototype.flags_1.2.0.tgz";
+      path = fetchurl {
+        name = "regexp.prototype.flags___regexp.prototype.flags_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz";
+        sha1 = "6b30724e306a27833eeb171b66ac8890ba37e41c";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz";
+        sha1 = "8d19d31cf632482b589049f8281f93dbcba4d07f";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz";
+        sha1 = "d7446815433f5d5ed6431cd5dca21048f66b397e";
+      };
+    }
+    {
+      name = "registry_auth_token___registry_auth_token_4.0.0.tgz";
+      path = fetchurl {
+        name = "registry_auth_token___registry_auth_token_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.0.0.tgz";
+        sha1 = "30e55961eec77379da551ea5c4cf43cbf03522be";
+      };
+    }
+    {
+      name = "registry_url___registry_url_3.1.0.tgz";
+      path = fetchurl {
+        name = "registry_url___registry_url_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz";
+        sha1 = "3d4ef870f73dde1d77f0cf9a381432444e174942";
+      };
+    }
+    {
+      name = "registry_url___registry_url_5.1.0.tgz";
+      path = fetchurl {
+        name = "registry_url___registry_url_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz";
+        sha1 = "e98334b50d5434b81136b44ec638d9c2009c5009";
+      };
+    }
+    {
+      name = "request___request_2.88.0.tgz";
+      path = fetchurl {
+        name = "request___request_2.88.0.tgz";
+        url  = "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz";
+        sha1 = "9c2fca4f7d35b592efe57c7f0a55e81052124fef";
+      };
+    }
+    {
+      name = "require_directory___require_directory_2.1.1.tgz";
+      path = fetchurl {
+        name = "require_directory___require_directory_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
+        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+      };
+    }
+    {
+      name = "require_main_filename___require_main_filename_1.0.1.tgz";
+      path = fetchurl {
+        name = "require_main_filename___require_main_filename_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz";
+        sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
+      };
+    }
+    {
+      name = "require_main_filename___require_main_filename_2.0.0.tgz";
+      path = fetchurl {
+        name = "require_main_filename___require_main_filename_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz";
+        sha1 = "d0b329ecc7cc0f61649f62215be69af54aa8989b";
+      };
+    }
+    {
+      name = "resolve_from___resolve_from_4.0.0.tgz";
+      path = fetchurl {
+        name = "resolve_from___resolve_from_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz";
+        sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6";
+      };
+    }
+    {
+      name = "resolve___resolve_1.13.1.tgz";
+      path = fetchurl {
+        name = "resolve___resolve_1.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.13.1.tgz";
+        sha1 = "be0aa4c06acd53083505abb35f4d66932ab35d16";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz";
+        sha1 = "918720ef3b631c5642be068f15ade5a46f4ba1e7";
+      };
+    }
+    {
+      name = "restore_cursor___restore_cursor_3.1.0.tgz";
+      path = fetchurl {
+        name = "restore_cursor___restore_cursor_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz";
+        sha1 = "39f67c54b3a7a58cea5236d95cf0034239631f7e";
+      };
+    }
+    {
+      name = "retry___retry_0.10.1.tgz";
+      path = fetchurl {
+        name = "retry___retry_0.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz";
+        sha1 = "e76388d217992c252750241d3d3956fed98d8ff4";
+      };
+    }
+    {
+      name = "retry___retry_0.12.0.tgz";
+      path = fetchurl {
+        name = "retry___retry_0.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz";
+        sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
+      };
+    }
+    {
+      name = "rimraf___rimraf_2.6.3.tgz";
+      path = fetchurl {
+        name = "rimraf___rimraf_2.6.3.tgz";
+        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz";
+        sha1 = "b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab";
+      };
+    }
+    {
+      name = "rimraf___rimraf_2.7.1.tgz";
+      path = fetchurl {
+        name = "rimraf___rimraf_2.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz";
+        sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec";
+      };
+    }
+    {
+      name = "rimraf___rimraf_3.0.2.tgz";
+      path = fetchurl {
+        name = "rimraf___rimraf_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz";
+        sha1 = "f1a5402ba6220ad52cc1282bac1ae3aa49fd061a";
+      };
+    }
+    {
+      name = "run_async___run_async_2.4.1.tgz";
+      path = fetchurl {
+        name = "run_async___run_async_2.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz";
+        sha1 = "8440eccf99ea3e70bd409d49aab88e10c189a455";
+      };
+    }
+    {
+      name = "run_queue___run_queue_1.0.3.tgz";
+      path = fetchurl {
+        name = "run_queue___run_queue_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz";
+        sha1 = "e848396f057d223f24386924618e25694161ec47";
+      };
+    }
+    {
+      name = "rxjs___rxjs_6.6.0.tgz";
+      path = fetchurl {
+        name = "rxjs___rxjs_6.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.0.tgz";
+        sha1 = "af2901eedf02e3a83ffa7f886240ff9018bbec84";
+      };
+    }
+    {
+      name = "safe_buffer___safe_buffer_5.2.0.tgz";
+      path = fetchurl {
+        name = "safe_buffer___safe_buffer_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz";
+        sha1 = "b74daec49b1148f88c64b68d49b1e815c1f2f519";
+      };
+    }
+    {
+      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 = "safer_buffer___safer_buffer_2.1.2.tgz";
+      path = fetchurl {
+        name = "safer_buffer___safer_buffer_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
+        sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
+      };
+    }
+    {
+      name = "sanitize_filename___sanitize_filename_1.6.3.tgz";
+      path = fetchurl {
+        name = "sanitize_filename___sanitize_filename_1.6.3.tgz";
+        url  = "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz";
+        sha1 = "755ebd752045931977e30b2025d340d7c9090378";
+      };
+    }
+    {
+      name = "sax___sax_1.2.4.tgz";
+      path = fetchurl {
+        name = "sax___sax_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz";
+        sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
+      };
+    }
+    {
+      name = "semver_diff___semver_diff_2.1.0.tgz";
+      path = fetchurl {
+        name = "semver_diff___semver_diff_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz";
+        sha1 = "4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36";
+      };
+    }
+    {
+      name = "semver_diff___semver_diff_3.1.1.tgz";
+      path = fetchurl {
+        name = "semver_diff___semver_diff_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz";
+        sha1 = "05f77ce59f325e00e2706afd67bb506ddb1ca32b";
+      };
+    }
+    {
+      name = "semver___semver_5.7.1.tgz";
+      path = fetchurl {
+        name = "semver___semver_5.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
+        sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
+      };
+    }
+    {
+      name = "semver___semver_6.3.0.tgz";
+      path = fetchurl {
+        name = "semver___semver_6.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz";
+        sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d";
+      };
+    }
+    {
+      name = "semver___semver_7.1.3.tgz";
+      path = fetchurl {
+        name = "semver___semver_7.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz";
+        sha1 = "e4345ce73071c53f336445cfc19efb1c311df2a6";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
+        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+      };
+    }
+    {
+      name = "sha___sha_3.0.0.tgz";
+      path = fetchurl {
+        name = "sha___sha_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/sha/-/sha-3.0.0.tgz";
+        sha1 = "b2f2f90af690c16a3a839a6a6c680ea51fedd1ae";
+      };
+    }
+    {
+      name = "shebang_command___shebang_command_1.2.0.tgz";
+      path = fetchurl {
+        name = "shebang_command___shebang_command_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz";
+        sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz";
+        sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz";
+        sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
+      };
+    }
+    {
+      name = "slice_ansi___slice_ansi_2.1.0.tgz";
+      path = fetchurl {
+        name = "slice_ansi___slice_ansi_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz";
+        sha1 = "cacd7693461a637a5788d92a7dd4fba068e81636";
+      };
+    }
+    {
+      name = "slide___slide_1.1.6.tgz";
+      path = fetchurl {
+        name = "slide___slide_1.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz";
+        sha1 = "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707";
+      };
+    }
+    {
+      name = "smart_buffer___smart_buffer_4.1.0.tgz";
+      path = fetchurl {
+        name = "smart_buffer___smart_buffer_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz";
+        sha1 = "91605c25d91652f4661ea69ccf45f1b331ca21ba";
+      };
+    }
+    {
+      name = "socks_proxy_agent___socks_proxy_agent_4.0.2.tgz";
+      path = fetchurl {
+        name = "socks_proxy_agent___socks_proxy_agent_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz";
+        sha1 = "3c8991f3145b2799e70e11bd5fbc8b1963116386";
+      };
+    }
+    {
+      name = "socks___socks_2.3.3.tgz";
+      path = fetchurl {
+        name = "socks___socks_2.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz";
+        sha1 = "01129f0a5d534d2b897712ed8aceab7ee65d78e3";
+      };
+    }
+    {
+      name = "sorted_object___sorted_object_2.0.1.tgz";
+      path = fetchurl {
+        name = "sorted_object___sorted_object_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz";
+        sha1 = "7d631f4bd3a798a24af1dffcfbfe83337a5df5fc";
+      };
+    }
+    {
+      name = "sorted_union_stream___sorted_union_stream_2.1.3.tgz";
+      path = fetchurl {
+        name = "sorted_union_stream___sorted_union_stream_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz";
+        sha1 = "c7794c7e077880052ff71a8d4a2dbb4a9a638ac7";
+      };
+    }
+    {
+      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.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 = "spdx_correct___spdx_correct_3.1.0.tgz";
+      path = fetchurl {
+        name = "spdx_correct___spdx_correct_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz";
+        sha1 = "fb83e504445268f154b074e218c87c003cd31df4";
+      };
+    }
+    {
+      name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz";
+      path = fetchurl {
+        name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
+        sha1 = "2ea450aee74f2a89bfb94519c07fcd6f41322977";
+      };
+    }
+    {
+      name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
+      path = fetchurl {
+        name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
+        sha1 = "99e119b7a5da00e05491c9fa338b7904823b41d0";
+      };
+    }
+    {
+      name = "spdx_license_ids___spdx_license_ids_3.0.5.tgz";
+      path = fetchurl {
+        name = "spdx_license_ids___spdx_license_ids_3.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz";
+        sha1 = "3694b5804567a458d3c8045842a6358632f62654";
+      };
+    }
+    {
+      name = "split_on_first___split_on_first_1.1.0.tgz";
+      path = fetchurl {
+        name = "split_on_first___split_on_first_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz";
+        sha1 = "f610afeee3b12bce1d0c30425e76398b78249a5f";
+      };
+    }
+    {
+      name = "sprintf_js___sprintf_js_1.0.3.tgz";
+      path = fetchurl {
+        name = "sprintf_js___sprintf_js_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
+        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+      };
+    }
+    {
+      name = "sshpk___sshpk_1.16.1.tgz";
+      path = fetchurl {
+        name = "sshpk___sshpk_1.16.1.tgz";
+        url  = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz";
+        sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877";
+      };
+    }
+    {
+      name = "ssri___ssri_6.0.1.tgz";
+      path = fetchurl {
+        name = "ssri___ssri_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz";
+        sha1 = "2a3c41b28dd45b62b63676ecb74001265ae9edd8";
+      };
+    }
+    {
+      name = "stat_mode___stat_mode_1.0.0.tgz";
+      path = fetchurl {
+        name = "stat_mode___stat_mode_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz";
+        sha1 = "68b55cb61ea639ff57136f36b216a291800d1465";
+      };
+    }
+    {
+      name = "stream_each___stream_each_1.2.3.tgz";
+      path = fetchurl {
+        name = "stream_each___stream_each_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz";
+        sha1 = "ebe27a0c389b04fbcc233642952e10731afa9bae";
+      };
+    }
+    {
+      name = "stream_iterate___stream_iterate_1.2.0.tgz";
+      path = fetchurl {
+        name = "stream_iterate___stream_iterate_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz";
+        sha1 = "2bd7c77296c1702a46488b8ad41f79865eecd4e1";
+      };
+    }
+    {
+      name = "stream_shift___stream_shift_1.0.1.tgz";
+      path = fetchurl {
+        name = "stream_shift___stream_shift_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz";
+        sha1 = "d7088281559ab2778424279b0877da3c392d5a3d";
+      };
+    }
+    {
+      name = "stream_to_buffer___stream_to_buffer_0.1.0.tgz";
+      path = fetchurl {
+        name = "stream_to_buffer___stream_to_buffer_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz";
+        sha1 = "26799d903ab2025c9bd550ac47171b00f8dd80a9";
+      };
+    }
+    {
+      name = "stream_to___stream_to_0.2.2.tgz";
+      path = fetchurl {
+        name = "stream_to___stream_to_0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/stream-to/-/stream-to-0.2.2.tgz";
+        sha1 = "84306098d85fdb990b9fa300b1b3ccf55e8ef01d";
+      };
+    }
+    {
+      name = "strict_uri_encode___strict_uri_encode_2.0.0.tgz";
+      path = fetchurl {
+        name = "strict_uri_encode___strict_uri_encode_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz";
+        sha1 = "b9c7330c7042862f6b142dc274bbcc5866ce3546";
+      };
+    }
+    {
+      name = "string_width___string_width_1.0.2.tgz";
+      path = fetchurl {
+        name = "string_width___string_width_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
+        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+      };
+    }
+    {
+      name = "string_width___string_width_2.1.1.tgz";
+      path = fetchurl {
+        name = "string_width___string_width_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
+        sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
+      };
+    }
+    {
+      name = "string_width___string_width_3.1.0.tgz";
+      path = fetchurl {
+        name = "string_width___string_width_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz";
+        sha1 = "22767be21b62af1081574306f69ac51b62203961";
+      };
+    }
+    {
+      name = "string_width___string_width_4.2.0.tgz";
+      path = fetchurl {
+        name = "string_width___string_width_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz";
+        sha1 = "952182c46cc7b2c313d1596e623992bd163b72b5";
+      };
+    }
+    {
+      name = "string.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";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz";
+        sha1 = "6cc47f0d7eb8d62b0f3701611715a3954591d634";
+      };
+    }
+    {
+      name = "string.prototype.trimright___string.prototype.trimright_2.1.0.tgz";
+      path = fetchurl {
+        name = "string.prototype.trimright___string.prototype.trimright_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz";
+        sha1 = "669d164be9df9b6f7559fa8e89945b168a5a6c58";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz";
+        sha1 = "42f114594a46cf1a8e30b0a84f56c78c3edac21e";
+      };
+    }
+    {
+      name = "string_decoder___string_decoder_0.10.31.tgz";
+      path = fetchurl {
+        name = "string_decoder___string_decoder_0.10.31.tgz";
+        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz";
+        sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+      };
+    }
+    {
+      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 = "stringify_package___stringify_package_1.0.1.tgz";
+      path = fetchurl {
+        name = "stringify_package___stringify_package_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz";
+        sha1 = "e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85";
+      };
+    }
+    {
+      name = "strip_ansi___strip_ansi_3.0.1.tgz";
+      path = fetchurl {
+        name = "strip_ansi___strip_ansi_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
+        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+      };
+    }
+    {
+      name = "strip_ansi___strip_ansi_4.0.0.tgz";
+      path = fetchurl {
+        name = "strip_ansi___strip_ansi_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
+        sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+      };
+    }
+    {
+      name = "strip_ansi___strip_ansi_5.2.0.tgz";
+      path = fetchurl {
+        name = "strip_ansi___strip_ansi_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz";
+        sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae";
+      };
+    }
+    {
+      name = "strip_ansi___strip_ansi_6.0.0.tgz";
+      path = fetchurl {
+        name = "strip_ansi___strip_ansi_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz";
+        sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532";
+      };
+    }
+    {
+      name = "strip_bom___strip_bom_3.0.0.tgz";
+      path = fetchurl {
+        name = "strip_bom___strip_bom_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz";
+        sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
+      };
+    }
+    {
+      name = "strip_eof___strip_eof_1.0.0.tgz";
+      path = fetchurl {
+        name = "strip_eof___strip_eof_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz";
+        sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+        sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+      };
+    }
+    {
+      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 = "supports_color___supports_color_7.1.0.tgz";
+      path = fetchurl {
+        name = "supports_color___supports_color_7.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz";
+        sha1 = "68e32591df73e25ad1c4b49108a2ec507962bfd1";
+      };
+    }
+    {
+      name = "table___table_5.4.6.tgz";
+      path = fetchurl {
+        name = "table___table_5.4.6.tgz";
+        url  = "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz";
+        sha1 = "1292d19500ce3f86053b05f0e8e7e4a3bb21079e";
+      };
+    }
+    {
+      name = "tar_stream___tar_stream_2.1.2.tgz";
+      path = fetchurl {
+        name = "tar_stream___tar_stream_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz";
+        sha1 = "6d5ef1a7e5783a95ff70b69b97455a5968dc1325";
+      };
+    }
+    {
+      name = "tar___tar_4.4.13.tgz";
+      path = fetchurl {
+        name = "tar___tar_4.4.13.tgz";
+        url  = "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz";
+        sha1 = "43b364bc52888d555298637b10d60790254ab525";
+      };
+    }
+    {
+      name = "tar___tar_6.0.1.tgz";
+      path = fetchurl {
+        name = "tar___tar_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/tar/-/tar-6.0.1.tgz";
+        sha1 = "7b3bd6c313cb6e0153770108f8d70ac298607efa";
+      };
+    }
+    {
+      name = "temp_file___temp_file_3.3.7.tgz";
+      path = fetchurl {
+        name = "temp_file___temp_file_3.3.7.tgz";
+        url  = "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.7.tgz";
+        sha1 = "686885d635f872748e384e871855958470aeb18a";
+      };
+    }
+    {
+      name = "term_size___term_size_1.2.0.tgz";
+      path = fetchurl {
+        name = "term_size___term_size_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz";
+        sha1 = "458b83887f288fc56d6fffbfad262e26638efa69";
+      };
+    }
+    {
+      name = "term_size___term_size_2.2.0.tgz";
+      path = fetchurl {
+        name = "term_size___term_size_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz";
+        sha1 = "1f16adedfe9bdc18800e1776821734086fcc6753";
+      };
+    }
+    {
+      name = "text_table___text_table_0.2.0.tgz";
+      path = fetchurl {
+        name = "text_table___text_table_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz";
+        sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
+      };
+    }
+    {
+      name = "through2___through2_2.0.5.tgz";
+      path = fetchurl {
+        name = "through2___through2_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz";
+        sha1 = "01c1e39eb31d07cb7d03a96a70823260b23132cd";
+      };
+    }
+    {
+      name = "through___through_2.3.8.tgz";
+      path = fetchurl {
+        name = "through___through_2.3.8.tgz";
+        url  = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
+        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+      };
+    }
+    {
+      name = "timed_out___timed_out_4.0.1.tgz";
+      path = fetchurl {
+        name = "timed_out___timed_out_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz";
+        sha1 = "f32eacac5a175bea25d7fab565ab3ed8741ef56f";
+      };
+    }
+    {
+      name = "tiny_relative_date___tiny_relative_date_1.3.0.tgz";
+      path = fetchurl {
+        name = "tiny_relative_date___tiny_relative_date_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz";
+        sha1 = "fa08aad501ed730f31cc043181d995c39a935e07";
+      };
+    }
+    {
+      name = "tinycolor2___tinycolor2_1.4.1.tgz";
+      path = fetchurl {
+        name = "tinycolor2___tinycolor2_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz";
+        sha1 = "f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8";
+      };
+    }
+    {
+      name = "tmp_promise___tmp_promise_1.1.0.tgz";
+      path = fetchurl {
+        name = "tmp_promise___tmp_promise_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-1.1.0.tgz";
+        sha1 = "bb924d239029157b9bc1d506a6aa341f8b13e64c";
+      };
+    }
+    {
+      name = "tmp___tmp_0.1.0.tgz";
+      path = fetchurl {
+        name = "tmp___tmp_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz";
+        sha1 = "ee434a4e22543082e294ba6201dcc6eafefa2877";
+      };
+    }
+    {
+      name = "tmp___tmp_0.0.33.tgz";
+      path = fetchurl {
+        name = "tmp___tmp_0.0.33.tgz";
+        url  = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz";
+        sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz";
+        sha1 = "ce0aa0c2f3df6adf852efb404a783e77c0475771";
+      };
+    }
+    {
+      name = "tough_cookie___tough_cookie_2.4.3.tgz";
+      path = fetchurl {
+        name = "tough_cookie___tough_cookie_2.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz";
+        sha1 = "53f36da3f47783b0925afa06ff9f3b165280f781";
+      };
+    }
+    {
+      name = "truncate_utf8_bytes___truncate_utf8_bytes_1.0.2.tgz";
+      path = fetchurl {
+        name = "truncate_utf8_bytes___truncate_utf8_bytes_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz";
+        sha1 = "405923909592d56f78a5818434b0b78489ca5f2b";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz";
+        sha1 = "c3c19f95973fb0a62973fb09d90d961ee43e5c8a";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+      };
+    }
+    {
+      name = "tweetnacl___tweetnacl_0.14.5.tgz";
+      path = fetchurl {
+        name = "tweetnacl___tweetnacl_0.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
+        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz";
+        sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz";
+        sha1 = "09e249ebde851d3b1e48d27c105444667f17b83d";
+      };
+    }
+    {
+      name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
+      path = fetchurl {
+        name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
+        sha1 = "a97ee7a9ff42691b9f783ff1bc5112fe3fca9080";
+      };
+    }
+    {
+      name = "typedarray___typedarray_0.0.6.tgz";
+      path = fetchurl {
+        name = "typedarray___typedarray_0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
+        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+      };
+    }
+    {
+      name = "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";
+        url  = "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz";
+        sha1 = "0ea10e8035e8eb5b8e4449f06da1c730663baa81";
+      };
+    }
+    {
+      name = "umask___umask_1.1.0.tgz";
+      path = fetchurl {
+        name = "umask___umask_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz";
+        sha1 = "f29cebf01df517912bb58ff9c4e50fde8e33320d";
+      };
+    }
+    {
+      name = "unique_filename___unique_filename_1.1.1.tgz";
+      path = fetchurl {
+        name = "unique_filename___unique_filename_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz";
+        sha1 = "1d69769369ada0583103a1e6ae87681b56573230";
+      };
+    }
+    {
+      name = "unique_slug___unique_slug_2.0.2.tgz";
+      path = fetchurl {
+        name = "unique_slug___unique_slug_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz";
+        sha1 = "baabce91083fc64e945b0f3ad613e264f7cd4e6c";
+      };
+    }
+    {
+      name = "unique_string___unique_string_1.0.0.tgz";
+      path = fetchurl {
+        name = "unique_string___unique_string_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz";
+        sha1 = "9e1057cca851abb93398f8b33ae187b99caec11a";
+      };
+    }
+    {
+      name = "unique_string___unique_string_2.0.0.tgz";
+      path = fetchurl {
+        name = "unique_string___unique_string_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz";
+        sha1 = "39c6451f81afb2749de2b233e3f7c5e8843bd89d";
+      };
+    }
+    {
+      name = "universalify___universalify_0.1.2.tgz";
+      path = fetchurl {
+        name = "universalify___universalify_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz";
+        sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz";
+        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+      };
+    }
+    {
+      name = "untildify___untildify_3.0.3.tgz";
+      path = fetchurl {
+        name = "untildify___untildify_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz";
+        sha1 = "1e7b42b140bcfd922b22e70ca1265bfe3634c7c9";
+      };
+    }
+    {
+      name = "unzip_response___unzip_response_2.0.1.tgz";
+      path = fetchurl {
+        name = "unzip_response___unzip_response_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz";
+        sha1 = "d2f0f737d16b0615e72a6935ed04214572d56f97";
+      };
+    }
+    {
+      name = "update_notifier___update_notifier_2.5.0.tgz";
+      path = fetchurl {
+        name = "update_notifier___update_notifier_2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz";
+        sha1 = "d0744593e13f161e406acb1d9408b72cad08aff6";
+      };
+    }
+    {
+      name = "update_notifier___update_notifier_4.1.0.tgz";
+      path = fetchurl {
+        name = "update_notifier___update_notifier_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.0.tgz";
+        sha1 = "4866b98c3bc5b5473c020b1250583628f9a328f3";
+      };
+    }
+    {
+      name = "uri_js___uri_js_4.2.2.tgz";
+      path = fetchurl {
+        name = "uri_js___uri_js_4.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
+        sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
+      };
+    }
+    {
+      name = "url_parse_lax___url_parse_lax_1.0.0.tgz";
+      path = fetchurl {
+        name = "url_parse_lax___url_parse_lax_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz";
+        sha1 = "7af8f303645e9bd79a272e7a14ac68bc0609da73";
+      };
+    }
+    {
+      name = "url_parse_lax___url_parse_lax_3.0.0.tgz";
+      path = fetchurl {
+        name = "url_parse_lax___url_parse_lax_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz";
+        sha1 = "16b5cafc07dbe3676c1b1999177823d6503acb0c";
+      };
+    }
+    {
+      name = "url_regex___url_regex_3.2.0.tgz";
+      path = fetchurl {
+        name = "url_regex___url_regex_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/url-regex/-/url-regex-3.2.0.tgz";
+        sha1 = "dbad1e0c9e29e105dd0b1f09f6862f7fdb482724";
+      };
+    }
+    {
+      name = "utf8_byte_length___utf8_byte_length_1.0.4.tgz";
+      path = fetchurl {
+        name = "utf8_byte_length___utf8_byte_length_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz";
+        sha1 = "f45f150c4c66eee968186505ab93fcbb8ad6bf61";
+      };
+    }
+    {
+      name = "util_deprecate___util_deprecate_1.0.2.tgz";
+      path = fetchurl {
+        name = "util_deprecate___util_deprecate_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    }
+    {
+      name = "util_extend___util_extend_1.0.3.tgz";
+      path = fetchurl {
+        name = "util_extend___util_extend_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz";
+        sha1 = "a7c216d267545169637b3b6edc6ca9119e2ff93f";
+      };
+    }
+    {
+      name = "util_promisify___util_promisify_2.1.0.tgz";
+      path = fetchurl {
+        name = "util_promisify___util_promisify_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/util-promisify/-/util-promisify-2.1.0.tgz";
+        sha1 = "3c2236476c4d32c5ff3c47002add7c13b9a82a53";
+      };
+    }
+    {
+      name = "util.promisify___util.promisify_1.0.0.tgz";
+      path = fetchurl {
+        name = "util.promisify___util.promisify_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz";
+        sha1 = "440f7165a459c9a16dc145eb8e72f35687097030";
+      };
+    }
+    {
+      name = "uuid___uuid_3.3.3.tgz";
+      path = fetchurl {
+        name = "uuid___uuid_3.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz";
+        sha1 = "4568f0216e78760ee1dbf3a4d2cf53e224112866";
+      };
+    }
+    {
+      name = "uuid___uuid_3.4.0.tgz";
+      path = fetchurl {
+        name = "uuid___uuid_3.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz";
+        sha1 = "b23e4358afa8a202fe7a100af1f5f883f02007ee";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
+        sha1 = "fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a";
+      };
+    }
+    {
+      name = "validate_npm_package_name___validate_npm_package_name_3.0.0.tgz";
+      path = fetchurl {
+        name = "validate_npm_package_name___validate_npm_package_name_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz";
+        sha1 = "5fa912d81eb7d0c74afc140de7317f0ca7df437e";
+      };
+    }
+    {
+      name = "verror___verror_1.10.0.tgz";
+      path = fetchurl {
+        name = "verror___verror_1.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
+        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+      };
+    }
+    {
+      name = "wcwidth___wcwidth_1.0.1.tgz";
+      path = fetchurl {
+        name = "wcwidth___wcwidth_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz";
+        sha1 = "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8";
+      };
+    }
+    {
+      name = "which_module___which_module_2.0.0.tgz";
+      path = fetchurl {
+        name = "which_module___which_module_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz";
+        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+      };
+    }
+    {
+      name = "which___which_1.3.1.tgz";
+      path = fetchurl {
+        name = "which___which_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
+        sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz";
+        sha1 = "ae074e6bdc0c14a431e804e624549c633b000457";
+      };
+    }
+    {
+      name = "widest_line___widest_line_2.0.1.tgz";
+      path = fetchurl {
+        name = "widest_line___widest_line_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz";
+        sha1 = "7438764730ec7ef4381ce4df82fb98a53142a3fc";
+      };
+    }
+    {
+      name = "widest_line___widest_line_3.1.0.tgz";
+      path = fetchurl {
+        name = "widest_line___widest_line_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz";
+        sha1 = "8292333bbf66cb45ff0de1603b136b7ae1496eca";
+      };
+    }
+    {
+      name = "winreg___winreg_1.2.4.tgz";
+      path = fetchurl {
+        name = "winreg___winreg_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/winreg/-/winreg-1.2.4.tgz";
+        sha1 = "ba065629b7a925130e15779108cf540990e98d1b";
+      };
+    }
+    {
+      name = "word_wrap___word_wrap_1.2.3.tgz";
+      path = fetchurl {
+        name = "word_wrap___word_wrap_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz";
+        sha1 = "610636f6b1f703891bd34771ccb17fb93b47079c";
+      };
+    }
+    {
+      name = "worker_farm___worker_farm_1.7.0.tgz";
+      path = fetchurl {
+        name = "worker_farm___worker_farm_1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz";
+        sha1 = "26a94c5391bbca926152002f69b84a4bf772e5a8";
+      };
+    }
+    {
+      name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
+      path = fetchurl {
+        name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
+        sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
+      };
+    }
+    {
+      name = "wrap_ansi___wrap_ansi_6.2.0.tgz";
+      path = fetchurl {
+        name = "wrap_ansi___wrap_ansi_6.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
+        sha1 = "e9393ba07102e6c91a3b221478f0257cd2856e53";
+      };
+    }
+    {
+      name = "wrappy___wrappy_1.0.2.tgz";
+      path = fetchurl {
+        name = "wrappy___wrappy_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    }
+    {
+      name = "write_file_atomic___write_file_atomic_2.4.3.tgz";
+      path = fetchurl {
+        name = "write_file_atomic___write_file_atomic_2.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz";
+        sha1 = "1fd2e9ae1df3e75b8d8c367443c692d4ca81f481";
+      };
+    }
+    {
+      name = "write_file_atomic___write_file_atomic_3.0.1.tgz";
+      path = fetchurl {
+        name = "write_file_atomic___write_file_atomic_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.1.tgz";
+        sha1 = "558328352e673b5bb192cf86500d60b230667d4b";
+      };
+    }
+    {
+      name = "write___write_1.0.3.tgz";
+      path = fetchurl {
+        name = "write___write_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz";
+        sha1 = "0800e14523b923a387e415123c865616aae0f5c3";
+      };
+    }
+    {
+      name = "xdg_basedir___xdg_basedir_3.0.0.tgz";
+      path = fetchurl {
+        name = "xdg_basedir___xdg_basedir_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz";
+        sha1 = "496b2cc109eca8dbacfe2dc72b603c17c5870ad4";
+      };
+    }
+    {
+      name = "xdg_basedir___xdg_basedir_4.0.0.tgz";
+      path = fetchurl {
+        name = "xdg_basedir___xdg_basedir_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz";
+        sha1 = "4bc8d9984403696225ef83a1573cbbcb4e79db13";
+      };
+    }
+    {
+      name = "xhr___xhr_2.5.0.tgz";
+      path = fetchurl {
+        name = "xhr___xhr_2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz";
+        sha1 = "bed8d1676d5ca36108667692b74b316c496e49dd";
+      };
+    }
+    {
+      name = "xml_parse_from_string___xml_parse_from_string_1.0.1.tgz";
+      path = fetchurl {
+        name = "xml_parse_from_string___xml_parse_from_string_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz";
+        sha1 = "a9029e929d3dbcded169f3c6e28238d95a5d5a28";
+      };
+    }
+    {
+      name = "xml2js___xml2js_0.4.22.tgz";
+      path = fetchurl {
+        name = "xml2js___xml2js_0.4.22.tgz";
+        url  = "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.22.tgz";
+        sha1 = "4fa2d846ec803237de86f30aa9b5f70b6600de02";
+      };
+    }
+    {
+      name = "xmlbuilder___xmlbuilder_11.0.1.tgz";
+      path = fetchurl {
+        name = "xmlbuilder___xmlbuilder_11.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz";
+        sha1 = "be9bae1c8a046e76b31127726347d0ad7002beb3";
+      };
+    }
+    {
+      name = "xtend___xtend_4.0.2.tgz";
+      path = fetchurl {
+        name = "xtend___xtend_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz";
+        sha1 = "bb72779f5fa465186b1f438f674fa347fdb5db54";
+      };
+    }
+    {
+      name = "y18n___y18n_3.2.1.tgz";
+      path = fetchurl {
+        name = "y18n___y18n_3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz";
+        sha1 = "6d15fba884c08679c0d77e88e7759e811e07fa41";
+      };
+    }
+    {
+      name = "y18n___y18n_4.0.0.tgz";
+      path = fetchurl {
+        name = "y18n___y18n_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz";
+        sha1 = "95ef94f85ecc81d007c264e190a120f0a3c8566b";
+      };
+    }
+    {
+      name = "yallist___yallist_2.1.2.tgz";
+      path = fetchurl {
+        name = "yallist___yallist_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz";
+        sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+      };
+    }
+    {
+      name = "yallist___yallist_3.1.1.tgz";
+      path = fetchurl {
+        name = "yallist___yallist_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz";
+        sha1 = "dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd";
+      };
+    }
+    {
+      name = "yallist___yallist_4.0.0.tgz";
+      path = fetchurl {
+        name = "yallist___yallist_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz";
+        sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72";
+      };
+    }
+    {
+      name = "yargs_parser___yargs_parser_18.1.3.tgz";
+      path = fetchurl {
+        name = "yargs_parser___yargs_parser_18.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz";
+        sha1 = "be68c4975c6b2abf469236b0c870362fab09a7b0";
+      };
+    }
+    {
+      name = "yargs_parser___yargs_parser_7.0.0.tgz";
+      path = fetchurl {
+        name = "yargs_parser___yargs_parser_7.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz";
+        sha1 = "8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9";
+      };
+    }
+    {
+      name = "yargs_parser___yargs_parser_9.0.2.tgz";
+      path = fetchurl {
+        name = "yargs_parser___yargs_parser_9.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz";
+        sha1 = "9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077";
+      };
+    }
+    {
+      name = "yargs___yargs_11.1.1.tgz";
+      path = fetchurl {
+        name = "yargs___yargs_11.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-11.1.1.tgz";
+        sha1 = "5052efe3446a4df5ed669c995886cc0f13702766";
+      };
+    }
+    {
+      name = "yargs___yargs_15.3.1.tgz";
+      path = fetchurl {
+        name = "yargs___yargs_15.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz";
+        sha1 = "9505b472763963e54afe60148ad27a330818e98b";
+      };
+    }
+    {
+      name = "yargs___yargs_8.0.2.tgz";
+      path = fetchurl {
+        name = "yargs___yargs_8.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz";
+        sha1 = "6299a9055b1cefc969ff7e79c1d918dceb22c360";
+      };
+    }
+    {
+      name = "zip_stream___zip_stream_3.0.1.tgz";
+      path = fetchurl {
+        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/element/element-desktop.nix b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
new file mode 100644
index 00000000000..09fd89b0da7
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchFromGitHub
+, makeWrapper, makeDesktopItem, mkYarnPackage
+, electron_9, element-web
+}:
+# Notes for maintainers:
+# * 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 = "element-desktop";
+  version = "1.7.4";
+  src = fetchFromGitHub {
+    owner = "vector-im";
+    repo = "riot-desktop";
+    rev = "v${version}";
+    sha256 = "16ilkf5b8mz74x1r9fym5xjb4plxzhg3g5njj1sl4qvsbrkk6r9a";
+  };
+  electron = electron_9;
+
+in mkYarnPackage rec {
+  name = "element-desktop-${version}";
+  inherit version src;
+
+  packageJSON = ./element-desktop-package.json;
+  yarnNix = ./element-desktop-yarndeps.nix;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    # resources
+    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/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/element.png"
+    done
+
+    # desktop item
+    mkdir -p "$out/share"
+    ln -s "${desktopItem}/share/applications" "$out/share/applications"
+
+    # executable wrapper
+    makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
+      --add-flags "$out/share/element/electron"
+  '';
+
+  # 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:
+  # https://github.com/vector-im/riot-desktop/blob/develop/package.json
+  desktopItem = makeDesktopItem {
+    name = "element-desktop";
+    exec = executableName;
+    icon = "element";
+    desktopName = "Element (Riot)";
+    genericName = "Matrix Client";
+    comment = meta.description;
+    categories = "Network;InstantMessaging;Chat;";
+    extraEntries = ''
+      StartupWMClass=element
+    '';
+  };
+
+  meta = with stdenv.lib; {
+    description = "A feature-rich client for Matrix.org";
+    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 3aeb715ac67..9c818a8e8b6 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.0";
+  pname = "element-web";
+  version = "1.7.4";
 
   src = fetchurl {
     url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
-    sha256 = "1mm4xk69ya1k3gz6jjhc4njx7b3rp157jmrqsxr5i382zs035ff7";
+    sha256 = "0ssyd5b9yrxidivr3rcjsd8ixkmppsmmr7a8k0sv16yk7hjnvz5b";
   };
 
   installPhase = ''
@@ -31,8 +31,8 @@ in stdenv.mkDerivation rec {
 
   meta = {
     description = "A glossy Matrix collaboration client for the web";
-    homepage = "http://riot.im/";
-    maintainers = with stdenv.lib.maintainers; [ bachp pacien ma27 ];
+    homepage = "https://element.io/";
+    maintainers = stdenv.lib.teams.matrix.members;
     license = stdenv.lib.licenses.asl20;
     platforms = stdenv.lib.platforms.all;
     hydraPlatforms = [];
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..2abd733b277 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
@@ -78,6 +79,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..d1206cdf9b2
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/franz/generic.nix
@@ -0,0 +1,89 @@
+{ stdenv
+, 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 = [ udev.lib 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
new file mode 100644
index 00000000000..04418dc64fc
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/go-neb/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
+
+buildGoModule {
+  pname = "go-neb";
+  version = "unstable-2020-04-09";
+  src = fetchFromGitHub {
+    owner = "matrix-org";
+    repo = "go-neb";
+    rev = "1e297c50ad2938e511a3c86f4b190fd3fc3559d6";
+    sha256 = "1azwy4s4kmypps1fjbz76flpi1b7sjzjj4qwx94cry0hn3qfnrc6";
+  };
+
+  subPackages = [ "." ];
+
+  patches = [ ./go-mod.patch ];
+
+  vendorSha256 = "1k3980yf6zl00dkd1djwhm2f9nnffzrsbs3kq3alpw2gm0aln739";
+
+  doCheck = false;
+
+  passthru.tests.go-neb = nixosTests.go-neb;
+
+  meta = with lib; {
+    description = "Extensible matrix bot written in Go";
+    homepage = "https://github.com/matrix-org/go-neb";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa maralorn ];
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/go-neb/go-mod.patch b/pkgs/applications/networking/instant-messengers/go-neb/go-mod.patch
new file mode 100644
index 00000000000..1c725652d43
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/go-neb/go-mod.patch
@@ -0,0 +1,50 @@
+diff --git a/go.mod b/go.mod
+index 8ed4e68..83526e7 100644
+--- a/go.mod
++++ b/go.mod
+@@ -4,24 +4,15 @@ go 1.14
+ 
+ require (
+ 	github.com/PuerkitoBio/goquery v1.5.1 // indirect
+-	github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect
+-	github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 // indirect
+ 	github.com/andygrunwald/go-jira v1.11.0
+ 	github.com/beorn7/perks v1.0.1 // indirect
+-	github.com/cespare/xxhash/v2 v2.1.1 // indirect
+ 	github.com/dghubble/oauth1 v0.6.0
+ 	github.com/die-net/lrucache v0.0.0-20190707192454-883874fe3947
+-	github.com/go-kit/kit v0.9.0 // indirect
+-	github.com/go-logfmt/logfmt v0.4.0 // indirect
+-	github.com/go-stack/stack v1.8.0 // indirect
+-	github.com/gogo/protobuf v1.1.1 // indirect
+ 	github.com/golang/protobuf v1.3.2 // indirect
+ 	github.com/google/go-cmp v0.4.0 // indirect
+ 	github.com/google/go-github v2.0.1-0.20160719063544-b5e5babef39c+incompatible
+ 	github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79
+ 	github.com/jaytaylor/html2text v0.0.0-20200220170450-61d9dc4d7195
+-	github.com/json-iterator/go v1.1.9 // indirect
+-	github.com/julienschmidt/httprouter v1.2.0 // indirect
+ 	github.com/kr/pretty v0.1.0 // indirect
+ 	github.com/lib/pq v1.3.0
+ 	github.com/matrix-org/dugong v0.0.0-20180820122854-51a565b5666b
+@@ -32,9 +23,6 @@ require (
+ 	github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
+ 	github.com/mmcdole/gofeed v1.0.0-beta2
+ 	github.com/mmcdole/goxpp v0.0.0-20181012175147-0068e33feabf // indirect
+-	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
+-	github.com/modern-go/reflect2 v1.0.1 // indirect
+-	github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223 // indirect
+ 	github.com/olekukonko/tablewriter v0.0.4 // indirect
+ 	github.com/pkg/errors v0.8.1 // indirect
+ 	github.com/prometheus/client_golang v0.8.1-0.20160916180340-5636dc67ae77
+@@ -47,10 +35,7 @@ require (
+ 	github.com/stretchr/testify v1.4.0 // indirect
+ 	golang.org/x/net v0.0.0-20200301022130-244492dfa37a
+ 	golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
+-	golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e // indirect
+ 	golang.org/x/sys v0.0.0-20200122134326-e047566fdf82 // indirect
+-	golang.org/x/tools v0.0.0-20200311090712-aafaee8bce8c // indirect
+-	gopkg.in/alecthomas/kingpin.v2 v2.2.6 // indirect
+ 	gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
+ 	gopkg.in/yaml.v2 v2.2.8
+ )
diff --git a/pkgs/applications/networking/instant-messengers/gomuks/default.nix b/pkgs/applications/networking/instant-messengers/gomuks/default.nix
index 2962d190d36..8df4e4b3ea3 100644
--- a/pkgs/applications/networking/instant-messengers/gomuks/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gomuks/default.nix
@@ -1,19 +1,21 @@
-{ stdenv, buildGoModule, fetchFromGitHub, makeDesktopItem }:
+{ stdenv, buildGoModule, fetchFromGitHub, olm, makeDesktopItem }:
 
 buildGoModule rec {
   pname = "gomuks";
-  version = "2020-03-20";
-
-  goPackagePath = "maunium.net/go/gomuks";
+  version = "0.1.2";
 
   src = fetchFromGitHub {
     owner = "tulir";
     repo = pname;
-    rev = "bce30e32a049b3ee76081c8d3881a3820b0e7341";
-    sha256 = "0f7i88vrvl1xl4hmjplq3wwihqwijbgxy6nk5fkvc8pfmm5hsjcs";
+    rev = "v" + version;
+    sha256 = "11bainw4w9fdrhv2jm0j9fw0f7r4cxlblyazbhckgr4j9q900383";
   };
 
-  modSha256 = "10w0bjhnf6bbqx5jbgfv2jxxyqswzx25p64kkjmvh5qamjzpbjz2";
+  vendorSha256 = "11rk7pma6dr6fsyz8hpjyr7nc2c7ichh5m7ds07m89gzk6ar55gb";
+
+  doCheck = false;
+
+  buildInputs = [ olm ];
 
   postInstall = ''
     cp -r ${
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 7afe273599f..66194d9d246 100644
--- a/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
@@ -2,17 +2,20 @@
 , fetchurl
 , appimageTools
 , makeWrapper
-, electron_8
+, electron_9
 }:
 
+let
+  electron = electron_9;
+in
 stdenv.mkDerivation rec {
   pname = "jitsi-meet-electron";
-  version = "2.0.2";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage";
-    sha256 = "04y3qn2clvsfiyp9s6ib09mfxspv3kpr9248sda8s09n1cm0jpps";
-    name="${pname}-${version}.AppImage";
+    sha256 = "0gqyqjj69x1gxwj4zhwazddnj5xzy598xqz7vwkpdm1ldzna2iyj";
+    name = "${pname}-${version}.AppImage";
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -42,7 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    makeWrapper ${electron_8}/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 [ stdenv.cc.cc ]}"
   '';
@@ -51,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 025b66852f4..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 = "Application;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/linphone/default.nix b/pkgs/applications/networking/instant-messengers/linphone/default.nix
index 0d97fcbbf51..e2783585144 100644
--- a/pkgs/applications/networking/instant-messengers/linphone/default.nix
+++ b/pkgs/applications/networking/instant-messengers/linphone/default.nix
@@ -10,7 +10,7 @@
 , cyrus_sasl
 , fetchFromGitLab
 , fetchurl
-, ffmpeg
+, ffmpeg_3
 , gdk-pixbuf
 , glib
 , gnused
@@ -137,7 +137,7 @@ mkDerivation rec {
     bzrtp
     cairo
     cyrus_sasl
-    ffmpeg
+    ffmpeg_3
     gdk-pixbuf
     glib
     gtk2
diff --git a/pkgs/applications/networking/instant-messengers/matrix-recorder/node-packages.nix b/pkgs/applications/networking/instant-messengers/matrix-recorder/node-packages.nix
index 577619dcc04..1f968a62c9f 100644
--- a/pkgs/applications/networking/instant-messengers/matrix-recorder/node-packages.nix
+++ b/pkgs/applications/networking/instant-messengers/matrix-recorder/node-packages.nix
@@ -10,7 +10,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
-        sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
+        sha512 = "38s4f3id97wsb0rg9nm9zvxyq0nvwrmrpa5dzvrkp36mf5ibs98b4z6lvsbrwzzs0sbcank6c7gpp06vcwp9acfhp41rzlhi3ybsxwy";
       };
     };
     "ajv-6.10.2" = {
@@ -19,7 +19,7 @@ let
       version = "6.10.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz";
-        sha512 = "TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==";
+        sha512 = "13mb943karizrqc9k4wpfs02jcrjzqyaysld4pmqacald7yj8wsjbx8gk2pbn6kc85fzjyb22x836g65fjj0mmndk2a9f878r858ysd";
       };
     };
     "another-json-0.2.0" = {
@@ -46,7 +46,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
-        sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
+        sha512 = "13mgnbmdhdq0qncijvpip1l39q1a8labcvj3hc3n1yl2zch106mdkn7p7bd5knvmfkkn1js9nd47nzyjk1himbm8ry8i8gd6mk7mlk3";
       };
     };
     "are-we-there-yet-1.1.5" = {
@@ -55,7 +55,7 @@ let
       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==";
+        sha512 = "3mizm1yfxynlhaavbimv7n9qljrbhni22v4fch6zr89x6ps0gpjcxm5yfvv05n8vc3r17hmglyswgq9w0s598xv70nnyw358q11s5p6";
       };
     };
     "asn1-0.2.4" = {
@@ -64,7 +64,7 @@ let
       version = "0.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
-        sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
+        sha512 = "1v2z1ll0l8rif8hh0d03jc49kz3p8hym63q8ixbas48w4a8akl413hwn08nx83m89sj3mxl06aa0grp7n8hj6hcbsb2k3fhj913674g";
       };
     };
     "assert-plus-1.0.0" = {
@@ -100,7 +100,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz";
-        sha512 = "Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==";
+        sha512 = "3h6cs1b1kw3rsfczqb8jzjlsha24ax4hyhgrk4smwj1i66lgc63kv03cvkn7zbivqvnrpmk640mp3c1bnmm49v1v40kvl5xay2vmyjj";
       };
     };
     "balanced-match-1.0.0" = {
@@ -127,7 +127,7 @@ let
       version = "1.1.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
-        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+        sha512 = "248cnpbbf0p32h53rd3g8wzpgrkaj4p078ra1g6l16f82i6bzkvmhwqan5rk88apbll9ly1476kngd7f7z27i3b3zxpbb3064f8yaw8";
       };
     };
     "browser-request-0.3.3" = {
@@ -154,7 +154,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz";
-        sha512 = "i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==";
+        sha512 = "1gqsfnpd5kpc4vi8v5b2dr480pk56d674a49bi0505qrjf9iash3n016cyz7qq1iwa41qny8dixp24w9vvam9sy9vnp0mv6g1a1zgcb";
       };
     };
     "code-point-at-1.1.0" = {
@@ -172,7 +172,7 @@ let
       version = "1.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
-        sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
+        sha512 = "1v09nkip7zpn3k3prkkg53w331rhczpfgcqb0q42i97nafra43l2khl5zvhd4ar0qmh145nmw7944jy8p108ny0xpgy29gf2wqph0qm";
       };
     };
     "concat-map-0.0.1" = {
@@ -217,7 +217,7 @@ let
       version = "3.2.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
-        sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
+        sha512 = "1cyv14044rfh792n1hhsa44kk8dk95zk14w96i49gwq6g9wi6h9vn90xaragfy7rvggqvj178l5f16c78g47xgrwhjx3bp7zs6pxscr";
       };
     };
     "deep-extend-0.6.0" = {
@@ -226,7 +226,7 @@ let
       version = "0.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
-        sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
+        sha512 = "0wc0sqg1aqx864bxf8xa4j8ncrc8rcvmiaj1sp3x1np2i8hdjybzjfd0w9gbf1yasmwycwzzg1mz6smr3q42hhv4pjx2qcgwqhg3q9c";
       };
     };
     "delayed-stream-1.0.0" = {
@@ -280,7 +280,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
-        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
+        sha512 = "3zad2109w3q3gh46s5msrnzfy2nl581sqpy20b52fs7v5pdjh3irpg7szl3xvh4sfy63218jy8ry6qlnir3baxbbfrb03swkw5swfky";
       };
     };
     "extsprintf-1.3.0" = {
@@ -325,7 +325,7 @@ let
       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==";
+        sha512 = "0jj3hgqp9pmxmfavx6rvdfl3r4yf98clpsarqadz3hq0dxhjlh2ppd9x8bvmaq3nwjdqpdvqx25pwyin4ipixhgsn7s3p9fcc3wllnn";
       };
     };
     "fs-minipass-1.2.7" = {
@@ -334,7 +334,7 @@ let
       version = "1.2.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz";
-        sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==";
+        sha512 = "1644yfnzfqikaff5s68dm4qfrblxrz68ynigkyzyixjqazxlli0svj1nxkawz35sv2vb3vjh41f1rhg0j4nr770a53fzqbjc4j94r0r";
       };
     };
     "fs.realpath-1.0.0" = {
@@ -370,7 +370,7 @@ let
       version = "7.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
-        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+        sha512 = "020qv13jbi1v4y5xavf6fw08h9svy4q9p67m4avkrrhgdjmk0c5k3h19bv7k6yn1vfxljpjw9kg81fbdg9v83cjplxvkn3v4v1v21ig";
       };
     };
     "graceful-fs-4.2.3" = {
@@ -379,7 +379,7 @@ let
       version = "4.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
-        sha512 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==";
+        sha512 = "12xdl6ai5jdxcpcavw2hk4zpiknz7g7f2cvgawzwlzv7cy7qf7riq8ymkgqdqxjkpl1mg627dxa65zc9b0yqhflsmqlfg5q3481azbb";
       };
     };
     "har-schema-2.0.0" = {
@@ -397,7 +397,7 @@ let
       version = "5.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
-        sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
+        sha512 = "3kaldgfsh3lfvgvw31s8b7q345zf7ixjahllncdckcw6qfs3gnbsamdxgs9kfigq7rwmja7v51ghh7y0rsp6q7jmvmbydhh645wxnxh";
       };
     };
     "has-unicode-2.0.1" = {
@@ -424,7 +424,7 @@ let
       version = "0.4.24";
       src = fetchurl {
         url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
-        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+        sha512 = "2n3ygx6km56rdcd5kq52bs2113xqm3vlw2kb9r7pnmxd2qhxrfahp2ngc4w7x8x76fyfpapnixnbjq1i24nc11mj6q7rghwj2fifwxz";
       };
     };
     "ignore-walk-3.0.3" = {
@@ -433,7 +433,7 @@ let
       version = "3.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz";
-        sha512 = "m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==";
+        sha512 = "0mlk9s23jc3avly1bv6s5j7hs0aafxabmgn7iqi0bjag4b03nqckvcdrgnarpmysdq8yr1rgxh6k7p82vzjj1z6hnm5ckwswg33mflv";
       };
     };
     "imurmurhash-0.1.4" = {
@@ -460,7 +460,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
-        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+        sha512 = "30rw2i1k63pbf0n5dbwly05h95cdp1kj8c9r15gv1cwha141g61k56fx4qwsvhpm1ksnf7agch1wxirs3s0m31wbfvmcqizgrlwdywk";
       };
     };
     "ini-1.3.5" = {
@@ -469,7 +469,7 @@ let
       version = "1.3.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
-        sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==";
+        sha512 = "1rjbvf1rg5ywhnba08sgagn2qf23lab330qrqmh7d891zap3xpxcyfyj1cblpf0f0rypglcfacybzyrpd4996aa1mbc820awa33k5j5";
       };
     };
     "is-fullwidth-code-point-1.0.0" = {
@@ -541,7 +541,7 @@ let
       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==";
+        sha512 = "1bbgxs4777gn3q3yxi0n792cgz9pimf85pypr0w4wzpb22nr8fl9xi98pkcqd3n4fn7lnzffpq7qwpcl4dqc15py19lwqa2jwgw5dn5";
       };
     };
     "json-stringify-safe-5.0.1" = {
@@ -568,7 +568,7 @@ let
       version = "0.6.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/marked/-/marked-0.6.3.tgz";
-        sha512 = "Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ==";
+        sha512 = "0wnipqyl61ks0g90fa5pmgmzjcc16j8mbvs1h5s9lbqskdp7b76wwxr7xglzqrizggpilwd8pih983ynav61cramv61fswlmxxbp9hn";
       };
     };
     "matrix-js-sdk-0.7.13" = {
@@ -586,7 +586,7 @@ let
       version = "1.42.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz";
-        sha512 = "UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==";
+        sha512 = "1hipkh3wjfb7m6qid0nrqdas0bj5c2hj3123pcwhcdb1qxxwyacnidn1nhdp01nnrkycwzymrf81jg6yin24pyah16m808l3q4wkdsi";
       };
     };
     "mime-types-2.1.25" = {
@@ -595,7 +595,7 @@ let
       version = "2.1.25";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz";
-        sha512 = "5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==";
+        sha512 = "1b88jc29kn9ksarmd9ad8d4y4q1cn977g7nvfqyj7grmsll6y9zlfx4wwpcq0426y8dgvm412fhr9n1401h92kag3099ikrl2v55a74";
       };
     };
     "minimatch-3.0.4" = {
@@ -604,7 +604,7 @@ let
       version = "3.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
-        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+        sha512 = "1879a3j85h92ypvb7lpv1dqpcxl49rqnbgs5la18zmj1yqhwl60c2m74254wbr5pp3znckqpkg9dvjyrz6hfz8b9vag5a3j910db4f8";
       };
     };
     "minimist-0.0.8" = {
@@ -631,7 +631,7 @@ let
       version = "2.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz";
-        sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==";
+        sha512 = "1x0k2ycn1r5fig2zy7jj5vjsc7sxdl2a8lidvzsfyhcbrmvyvlbkmb3ga6l8njclvhjz2yrcx57jn26bckzrms017zb2yan1y7d85y3";
       };
     };
     "minizlib-1.3.3" = {
@@ -640,7 +640,7 @@ let
       version = "1.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz";
-        sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==";
+        sha512 = "3slcgy5kqasjl8k1n2indaaw0k6j2ipapzxrcqyy2zrwpv8z9w2im5i8c2c73pqdgkd31rwf5bajgv4pm2i6m9jg51cfmp694w0r5p9";
       };
     };
     "mkdirp-0.5.1" = {
@@ -658,7 +658,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
-        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+        sha512 = "3dqfiiw6nxvvi24fndbzlccnjcas99bsd1kz5m2r78lzgpp6vx57jzbmxq3k1m7bsw88rwra0n4848l720fxxn5x20djck3wp3hysdh";
       };
     };
     "mustache-2.3.2" = {
@@ -667,7 +667,7 @@ let
       version = "2.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz";
-        sha512 = "KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==";
+        sha512 = "1aihy6k9338c8w0cip0c3v4s2h5yqd8xksqrv17rjybj01nsrpplbniiv09fvjadwhbyjbhkr82lyx3gyidcli0zp73sqrcsk0hv4ra";
       };
     };
     "nan-2.14.0" = {
@@ -676,7 +676,7 @@ let
       version = "2.14.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz";
-        sha512 = "INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==";
+        sha512 = "115f4m91pjscflwskc29clsspd2z02gdbz0dbj63ja8bf67nraw14gvppl4872y9z2f5vbjlkpg1i4625zvalx3gp04vvn2gs7qblr0";
       };
     };
     "needle-2.4.0" = {
@@ -685,7 +685,7 @@ let
       version = "2.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz";
-        sha512 = "4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==";
+        sha512 = "1k9220dhvc3m78hzd1xh2135p19z15y964hmhsajayvj11j2p3rv5w0gii7lmgr8w57bqkjg0xby5f1gkcph60kxvyr52z6pp7g0yg0";
       };
     };
     "node-fetch-1.7.3" = {
@@ -694,7 +694,7 @@ let
       version = "1.7.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz";
-        sha512 = "NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==";
+        sha512 = "0lz5m15w7qaks0a0s3dm0crsjrsd123dy00pn6qwcp50zfjykxkp22i5ymh6smlc0ags38nmdxlxw9yyq509azlv8kcdvdiq857h5in";
       };
     };
     "node-localstorage-1.3.1" = {
@@ -703,7 +703,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-localstorage/-/node-localstorage-1.3.1.tgz";
-        sha512 = "NMWCSWWc6JbHT5PyWlNT2i8r7PgGYXVntmKawY83k/M0UJScZ5jirb61TLnqKwd815DfBQu+lR3sRw08SPzIaQ==";
+        sha512 = "1lwiz287h6lgv0xjnz0n1fzj3bpq1rbxawlrddympi9hrwwji839wwk6y7w36k2nrkpaq86z3n2nbysad9mmwlk9z3rds4wcm4q5i9l";
       };
     };
     "node-pre-gyp-0.11.0" = {
@@ -712,7 +712,7 @@ let
       version = "0.11.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz";
-        sha512 = "TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==";
+        sha512 = "38q9mq0yq7pjnlqnxjiq8qz38jrgj7rccdf4n6dk95zwamncxmvb88192zabdccpnjhvd9rl4nmqxn727mzb7v6g2yvg3zljqwq01ag";
       };
     };
     "nopt-4.0.1" = {
@@ -730,7 +730,7 @@ let
       version = "1.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz";
-        sha512 = "8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==";
+        sha512 = "395ysq8prylnnimwxy4w37dwaxlk56dxwdc4jif41qghhcpdmignikigrpg6sfxxb0mr92z2p1kbad72sqxmcjfzrzvgha7zdll5wpk";
       };
     };
     "npm-packlist-1.4.6" = {
@@ -739,7 +739,7 @@ let
       version = "1.4.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.6.tgz";
-        sha512 = "u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg==";
+        sha512 = "2b0xwi30n7mqd43xc06yx3ck4j7ny8xaph36qs1zj2zxr64bn6m79cxfd9vxawcqpkdcy1apf1mfvc120wgqqa2pi30pazysr0nxbmv";
       };
     };
     "npmlog-4.1.2" = {
@@ -748,7 +748,7 @@ let
       version = "4.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz";
-        sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==";
+        sha512 = "2967mavp7zw0aawf5fadqf4pmn7vy5gya1yx2s9wwppvivhd9q4mpdnszfqvd7p6yks649bwbpj8iviw86g0hpp4f93d5ca7dmjmrfs";
       };
     };
     "number-is-nan-1.0.1" = {
@@ -766,7 +766,7 @@ let
       version = "0.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
-        sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
+        sha512 = "1jz644r7ybsq688ifahm64ih3ljqjjskm533bgir20pvc350f9cl0z162scih0r1idx8lpw5f8hxa2pkf0lhbdhr5y6ak2ga5863v3x";
       };
     };
     "object-assign-4.1.1" = {
@@ -821,7 +821,7 @@ let
       version = "0.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz";
-        sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
+        sha512 = "3ddw0y41pxv08ls5xhmq1bi81hppjbr45k78cjfx99vznh5znrj5g1b1wab9caj1mqlsvmfms0zm9cfb47ygm0d8wv5fccx8049q9fh";
       };
     };
     "path-is-absolute-1.0.1" = {
@@ -848,7 +848,7 @@ let
       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==";
+        sha512 = "1mgan8li4i2l4y7lsr7snks85n6xg5x693cqmzpid3fkk9br7v5xzgvh1zlfs08zkxn6s0n6qhykr64mszjfyxd77dhmdi1jhx992yy";
       };
     };
     "psl-1.4.0" = {
@@ -857,7 +857,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz";
-        sha512 = "HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==";
+        sha512 = "0bjwkcvqqwlhg86aa7pmd3n65y9hhiv5np25mw6g2phqx3mp9iv0d8sxl8r2j50hiniwz00k569h8hdxsviry8ql7r54w6ycc4fm70x";
       };
     };
     "punycode-1.4.1" = {
@@ -875,7 +875,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
-        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
+        sha512 = "381vqgh5xkqzrr6cxbzfykgnnk83m7qgpx3wjwj1hddn3sg2aibjxyr30rajpgv4js0cqknrbzwbfk5ryhiiyigzfjrk3zysy6i26sx";
       };
     };
     "q-1.5.1" = {
@@ -893,7 +893,7 @@ let
       version = "6.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
-        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
+        sha512 = "0c46ws0x9g3mmkgfmvd78bzvnmv2b8ryg4ah6jvyyqgjv9v994z7xdyvsc4vg9sf98gg7phvy3q1ahgaj5fy3dwzf2rki6bixgl15ip";
       };
     };
     "rc-1.2.8" = {
@@ -902,7 +902,7 @@ let
       version = "1.2.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
-        sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
+        sha512 = "0xhy1n9n3y6cp28f8f0f2mi0xzc7ay1g5nhbp64fyvcwv9q30zq2zvyc5q2d0al8aa0hx101yq2y6d2ln4r5jxnqifh1pd3la1ccxnb";
       };
     };
     "readable-stream-2.3.6" = {
@@ -911,7 +911,7 @@ let
       version = "2.3.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz";
-        sha512 = "tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==";
+        sha512 = "0mj9b6190amln9rg89x5pq2n195s3v0gzicpdamv1kbabg69aw5m71l34jsjn7bqil7405l6l35x9ijnb3h4jz5vx2i00l8sl1ll2xm";
       };
     };
     "request-2.88.0" = {
@@ -920,7 +920,7 @@ let
       version = "2.88.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/request/-/request-2.88.0.tgz";
-        sha512 = "NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==";
+        sha512 = "2339w6v6d7n7pj0085vkfvk0864gs8kfh1kghbl3smj7s21ny3k265in140frsaipc6bvqbi4k696ic4z13d6a56dfvc653p15822il";
       };
     };
     "rimraf-2.7.1" = {
@@ -929,7 +929,7 @@ let
       version = "2.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
-        sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==";
+        sha512 = "3ixwnv4h7x38jd12vyzhx6m6adnfhz1zv881allalyqs8sy3q3zgwldngk4cqslnn2d46l0g91yz8wprmzcsvas9573vp8al9ldns5r";
       };
     };
     "safe-buffer-5.1.2" = {
@@ -938,7 +938,7 @@ let
       version = "5.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
-        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+        sha512 = "3xbm0dkya4bc3zwfwpdzbl8ngq0aai5ihlp2v3s39y7162c7wyvv9izj3g8hv6dy6vm2lq48lmfzygk0kxwbjb6xic7k4a329j99p8r";
       };
     };
     "safe-buffer-5.2.0" = {
@@ -947,7 +947,7 @@ let
       version = "5.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==";
+        sha512 = "1pb164cfv1ip3s1rp008433rak88mdcch24q84cbfndg0dzky2ij8vjvsiyx2qf3rg4dgs82zk7vnrd9hkqqdcvp4lbk5ymcr8314bx";
       };
     };
     "safer-buffer-2.1.2" = {
@@ -956,7 +956,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+        sha512 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1";
       };
     };
     "sax-1.2.4" = {
@@ -965,7 +965,7 @@ let
       version = "1.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
-        sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==";
+        sha512 = "1dn291mjsda42w8kldlbmngk6dhjxfbvvd5lckyqmwbjaj6069iq3wx0nvcfglwnpddz2qa93lzf4hv77iz43bd2qixa079sjzl799n";
       };
     };
     "semver-5.7.1" = {
@@ -974,7 +974,7 @@ let
       version = "5.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
-        sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
+        sha512 = "0cl68vp0ymkjpvim4s24v3awyk37d1bfbqrqv4ybwfi8yxga3d8fma2d6bh8dd4i2dsfwca324vaxm5dms61kdlmihdarfgzw6rmaxi";
       };
     };
     "set-blocking-2.0.0" = {
@@ -1010,7 +1010,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/sqlite3/-/sqlite3-4.1.0.tgz";
-        sha512 = "RvqoKxq+8pDHsJo7aXxsFR18i+dU2Wp5o12qAJOV5LNcDt+fgJsc2QKKg3sIRfXrN9ZjzY1T7SNe/DFVqAXjaw==";
+        sha512 = "1my61d8alqzqpi3xm9qvkb3sqvypxa511xq72h2v4f9p04zvw75rcz4jn9h1ajxldwnmnalwy5pq78mdiy6jfwsn33r1wmy38msiyj6";
       };
     };
     "sshpk-1.16.1" = {
@@ -1019,7 +1019,7 @@ let
       version = "1.16.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
-        sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
+        sha512 = "0i4jnrxh6i17qij2vfki7qxmk435cnacvg363qg0hya5incfj57akgbas8zcx2cl5pds9jfgfyhqm8wlqz6damsg059gymv99aylx8x";
       };
     };
     "string-width-1.0.2" = {
@@ -1037,7 +1037,7 @@ let
       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==";
+        sha512 = "315yd4vzwrwk3vwj1klf46y1cj2jbvf88066y2rnwhksb98phj46jkxixbwsp3h607w7czy7cby522s7sx8mvspdpdm3s72y2ga3x4z";
       };
     };
     "strip-ansi-3.0.1" = {
@@ -1064,7 +1064,7 @@ let
       version = "4.4.13";
       src = fetchurl {
         url = "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz";
-        sha512 = "w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==";
+        sha512 = "10gwhmgx7fh619zv48r2lnm42qr7rw4qa9ph7142rizcn8in9dpi49jbmmv8ism60rcg1a7b4103r598jngi1rcn50sw7b8n1570rf3";
       };
     };
     "tough-cookie-2.4.3" = {
@@ -1073,7 +1073,7 @@ let
       version = "2.4.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz";
-        sha512 = "Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==";
+        sha512 = "2akhyixx49dkqadghzwj53xwfa1aikf0iv04ib9zj0kbilkzxxh16j5c6vfkcwm3cy29y46q3d8lzinsy6ql2cvb1wcw31gzs9jp6s3";
       };
     };
     "tunnel-agent-0.6.0" = {
@@ -1100,7 +1100,7 @@ let
       version = "4.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
-        sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==";
+        sha512 = "2fz60s71ghl56ddfiiaws81xpiidlbjk69jyjmahz190d2advy9zdbcwh5if4rgg5hxdbfxhkwiipjrnjy8w834bxsmzambd2p4b3r9";
       };
     };
     "util-deprecate-1.0.2" = {
@@ -1118,7 +1118,7 @@ let
       version = "3.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz";
-        sha512 = "pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==";
+        sha512 = "14s78i0nwzf5q1xz1d5rjlsm2rk5rf75nizydkj19mhbk1hw00lwzilkncx3bqzqhsni41i88wajwmc2mxxckkjlkjhq7j6ajihsvd5";
       };
     };
     "verror-1.10.0" = {
@@ -1136,7 +1136,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
-        sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+        sha512 = "2224a32flpf40nhq6rj4idzkcdz0vx65bfxp90hd06db18l6fiqgxz1xnaygm3pbfb1a6v73hl8ryq4996b09zwwins0bqprx0hwsa0";
       };
     };
     "wrappy-1.0.2" = {
@@ -1163,7 +1163,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
-        sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
+        sha512 = "3ig31a6zfbdlrs3l77a8avpp17hajryhyq2xk4h3ayc4dmxch146rdk7q1s1jgx9qvmxq125r0xq2bvnq0rq63m75k9y7wglm0hd1bb";
       };
     };
   };
@@ -1173,7 +1173,7 @@ let
     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==";
+      sha512 = "32drv6q9sh4i2ff2djd1dhxxxiaiymmgycbm12wpkz9vxspnldxgmppf9sazp3c72771a1p5s4kkzgwn4w1csyz9bn4zdbdnq5w6azq";
     };
     dependencies = [
       sources."abbrev-1.1.1"
diff --git a/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
index 0a41c9666b6..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.3.1";
+    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 = "076nv5h6xscbw1987az00x493qhqgrli87gnn57zbvz0acgvlhfv";
+          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 = "19ps9g8j6kp4haj6r3yfy4ma2wm6isq5fa8zlcz6g042ajkqq0ij";
+          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/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix
index f3b304564cb..5d9963956ed 100644
--- a/pkgs/applications/networking/instant-messengers/nheko/default.nix
+++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -24,13 +24,13 @@
 
 mkDerivation rec {
   pname = "nheko";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "Nheko-Reborn";
     repo = "nheko";
     rev = "v${version}";
-    sha256 = "12sxibbrn79sxkf9jrm7jrlj7l5vz15claxrrll7pkv9mv44wady";
+    sha256 = "1cbhgaf9klgxdirrxj571fqwspm0byl75c1xc40l727a6qswvp7s";
   };
 
   nativeBuildInputs = [
@@ -38,20 +38,6 @@ mkDerivation rec {
     cmake
     pkgconfig
   ];
-  cmakeFlags = [
-    # Can be removed once either https://github.com/NixOS/nixpkgs/pull/85254 or
-    # https://github.com/NixOS/nixpkgs/pull/73940 are merged
-    "-DBoost_NO_BOOST_CMAKE=TRUE"
-  ];
-  # commit missing from latest release and recommended by upstream:
-  # https://github.com/NixOS/nixpkgs/pull/85922#issuecomment-619263903
-  patches = [
-    (fetchpatch {
-      name = "room-ids-escape-patch";
-      url = "https://github.com/Nheko-Reborn/nheko/commit/d94ac86816f9f325cba11f71344a3ca99591130d.patch";
-      sha256 = "1p0kj4a60l3jf0rfakc88adld7ccg3vfjhzia5rf2i03h35cxw8c";
-    })
-  ];
 
   buildInputs = [
     nlohmann_json
@@ -68,6 +54,11 @@ mkDerivation rec {
     qtquickcontrols2
     qtgraphicaleffects
   ] ++ lib.optional stdenv.isDarwin qtmacextras;
+  # Quick and dirty fix to https://github.com/NixOS/nixpkgs/issues/94952
+  # and/or: https://github.com/NixOS/nixpkgs/issues/94905
+  cmakeFlags = [
+    "-DCMAKE_OSX_ARCHITECTURES="
+  ];
 
   meta = with stdenv.lib; {
     description = "Desktop client for the Matrix protocol";
diff --git a/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix b/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
index c7d8ce4b56d..d58688565fd 100644
--- a/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, buildPythonApplication, fetchFromGitHub, pythonOlder,
   attrs, aiohttp, appdirs, click, keyring, Logbook, peewee, janus,
   prompt_toolkit, matrix-nio, dbus-python, pydbus, notify2, pygobject3,
+  setuptools,
 
   pytest, faker, pytest-aiohttp, aioresponses,
 
@@ -9,7 +10,7 @@
 
 buildPythonApplication rec {
   pname = "pantalaimon";
-  version = "0.5.1";
+  version = "0.6.5";
 
   disabled = pythonOlder "3.6";
 
@@ -18,7 +19,7 @@ buildPythonApplication rec {
     owner = "matrix-org";
     repo = pname;
     rev = version;
-    sha256 = "18jihvqlfk8lx97hxcr36zdkp2sffg2l8mkg5lflylwcgwy1dx0y";
+    sha256 = "1pjrq71fkpvsc79nwhxhwjkqvqhj5wsnnwvsgslghaajdaw3n6wd";
   };
 
   propagatedBuildInputs = [
@@ -32,6 +33,7 @@ buildPythonApplication rec {
     matrix-nio
     peewee
     prompt_toolkit
+    setuptools
   ] ++ lib.optional enableDbusUi [
       dbus-python
       notify2
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/pidgin/default.nix b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index 369ae069324..a269eead708 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, makeWrapper, pkgconfig, gtk2, gtkspell2, aspell
+{ stdenv, fetchurl, makeWrapper, pkgconfig, gtk2, gtk2-x11
+, gtkspell2, aspell
 , gst_all_1, startupnotification, gettext
 , perlPackages, libxml2, nss, nspr, farstream
 , libXScrnSaver, ncurses, avahi, dbus, dbus-glib, intltool, libidn
@@ -29,19 +30,24 @@ let unwrapped = stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0";
 
   buildInputs = [
-    gtkspell2 aspell startupnotification
+    aspell startupnotification
     gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
-    libxml2 nss nspr farstream
+    libxml2 nss nspr
     libXScrnSaver ncurses python
     avahi dbus dbus-glib intltool libidn
     libICE libXext libSM cyrus_sasl
   ]
   ++ (lib.optional (openssl != null) openssl)
   ++ (lib.optional (gnutls != null) gnutls)
-  ++ (lib.optional (libgcrypt != null) libgcrypt);
+  ++ (lib.optional (libgcrypt != null) libgcrypt)
+  ++ (lib.optionals (stdenv.isLinux) [gtk2 gtkspell2 farstream])
+  ++ (lib.optional (stdenv.isDarwin) gtk2-x11);
 
-  propagatedBuildInputs = [ pkgconfig gtk2 gettext ]
-    ++ (with perlPackages; [ perl XMLParser ]);
+
+  propagatedBuildInputs = [ pkgconfig gettext ]
+    ++ (with perlPackages; [ perl XMLParser ])
+    ++ (lib.optional (stdenv.isLinux) gtk2)
+    ++ (lib.optional (stdenv.isDarwin) gtk2-x11);
 
   patches = [ ./pidgin-makefile.patch ./add-search-path.patch ];
 
@@ -56,7 +62,8 @@ let unwrapped = stdenv.mkDerivation rec {
     "--disable-tcl"
   ]
   ++ (lib.optionals (cyrus_sasl != null) [ "--enable-cyrus-sasl=yes" ])
-  ++ (lib.optionals (gnutls != null) ["--enable-gnutls=yes" "--enable-nss=no"]);
+  ++ (lib.optionals (gnutls != null) ["--enable-gnutls=yes" "--enable-nss=no"])
+  ++ (lib.optionals (stdenv.isDarwin) ["--disable-gtkspell" "--disable-vv"]);
 
   enableParallelBuilding = true;
 
@@ -69,7 +76,7 @@ let unwrapped = stdenv.mkDerivation rec {
     description = "Multi-protocol instant messaging client";
     homepage = "http://pidgin.im";
     license = licenses.gpl2Plus;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.vcunat ];
   };
 };
diff --git a/pkgs/applications/networking/instant-messengers/poezio/default.nix b/pkgs/applications/networking/instant-messengers/poezio/default.nix
index f7238419b53..8dc70d6d792 100644
--- a/pkgs/applications/networking/instant-messengers/poezio/default.nix
+++ b/pkgs/applications/networking/instant-messengers/poezio/default.nix
@@ -1,20 +1,20 @@
 { lib, buildPythonApplication, fetchFromGitHub, pythonOlder
-, pytest, aiodns, slixmpp, pyinotify, potr, mpd2, cffi, pkgconfig }:
+, pytest, aiodns, slixmpp, pyinotify, potr, mpd2, cffi, pkgconfig, setuptools }:
 buildPythonApplication rec {
     pname = "poezio";
-    version = "0.12.1";
+    version = "0.13.1";
 
     disabled = pythonOlder "3.4";
 
     checkInputs = [ pytest ];
-    propagatedBuildInputs = [ aiodns slixmpp pyinotify potr mpd2 cffi ];
+    propagatedBuildInputs = [ aiodns slixmpp pyinotify potr mpd2 cffi setuptools ];
     nativeBuildInputs = [ pkgconfig ];
 
     src = fetchFromGitHub {
       owner = pname;
       repo = pname;
       rev = "v${version}";
-      sha256 = "04qnsr0l12i55k6xl4q4akx317gai9wv5f1wpkfkq01wp181i5ll";
+      sha256 = "041y61pcbdb86s04qwp8s1g6bp84yskc7vdizwpi2hz18y01x5fy";
     };
 
     checkPhase = ''
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 e5862769882..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.1159";
+  version = "1.4.1473";
 
   src = fetchFromGitHub {
     owner = "psi-plus";
     repo = "psi-plus-snapshots";
     rev = version;
-    sha256 = "1k4ip2glkjsbb28gzffahi81kz90qkf213j89gsmcvbdjf4kp687";
+    sha256 = "03f28zwbjn6fnsm0fqg8lmc11rpfdfvzjf7k7xydc3lzy8pxbds5";
   };
 
   cmakeFlags = [
diff --git a/pkgs/applications/networking/instant-messengers/qtox/default.nix b/pkgs/applications/networking/instant-messengers/qtox/default.nix
index 58d6230f26a..0df7a5d8e56 100644
--- a/pkgs/applications/networking/instant-messengers/qtox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/qtox/default.nix
@@ -2,7 +2,7 @@
 , libtoxcore
 , libpthreadstubs, libXdmcp, libXScrnSaver
 , qtbase, qtsvg, qttools, qttranslations
-, ffmpeg, filter-audio, libexif, libsodium, libopus
+, ffmpeg_3, filter-audio, libexif, libsodium, libopus
 , libvpx, openal, pcre, qrencode, sqlcipher
 , AVFoundation ? null }:
 
@@ -25,7 +25,7 @@ in mkDerivation {
     libtoxcore
     libpthreadstubs libXdmcp libXScrnSaver
     qtbase qtsvg qttranslations
-    ffmpeg filter-audio libexif libopus libsodium
+    ffmpeg_3 filter-audio libexif libopus libsodium
     libvpx openal pcre qrencode sqlcipher
   ] ++ lib.optionals stdenv.isDarwin [ AVFoundation] ;
 
diff --git a/pkgs/applications/networking/instant-messengers/quaternion/default.nix b/pkgs/applications/networking/instant-messengers/quaternion/default.nix
index 18b590304d8..b1577a37844 100644
--- a/pkgs/applications/networking/instant-messengers/quaternion/default.nix
+++ b/pkgs/applications/networking/instant-messengers/quaternion/default.nix
@@ -11,7 +11,7 @@ mkDerivation rec {
     owner = "QMatrixClient";
     repo = "Quaternion";
     rev = "${version}";
-    sha256 = "sha256-2yEiILiitRPj2hCodUDM8UNVq8crb9nyX21ebuh5EEM=";
+    sha256 = "0hqhg7l6wpkdbzrdjvrbqymmahziri07ba0hvbii7dd2p0h248fv";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/rambox/default.nix b/pkgs/applications/networking/instant-messengers/rambox/default.nix
index 74a644d189d..6bf3efa5364 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
+, libXtst, libXScrnSaver, gtk3, nss, alsaLib, udev, libnotify, wrapGAppsHook
 }:
 
 let
@@ -18,7 +18,7 @@ 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 ];
 
@@ -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 16c96a86a41..d39091d4618 100644
--- a/pkgs/applications/networking/instant-messengers/rambox/pro.nix
+++ b/pkgs/applications/networking/instant-messengers/rambox/pro.nix
@@ -1,8 +1,11 @@
-{ 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.1";
+  version = "1.3.2";
 
   dontBuild = true;
   dontStrip = true;
@@ -12,26 +15,35 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/ramboxapp/download/releases/download/v${version}/RamboxPro-${version}-linux-x64.tar.gz";
-    sha256 = "1cy4h2yzrpr3gxd16p4323w06i67d82jjlyx737c3ngzw7aahmq1";
+    sha256 = "010v5i8lxfz77cb5cn9va5cbnfa28nzdymk5k2fcpi65jldw1pxx";
   };
 
   installPhase = ''
-    mkdir -p $out/bin $out/opt/RamboxPro $out/share/applications
-    asar e resources/app.asar $out/opt/RamboxPro/resources/app.asar.unpacked   
-    ln -s ${desktopItem}/share/applications/* $out/share/applications
+    mkdir -p $out/{bin,resources/dist/renderer/assets/images/app,share/applications,share/icons/hicolor/256x256/apps}
+
+    asar e resources/app.asar $out/resources
+
+    substituteInPlace "$out/resources/dist/electron/main.js" \
+      --replace ",isHidden:" ",path:\"$out/bin/ramboxpro\",isHidden:"
+
+    cp $desktopItem/share/applications/* $out/share/applications
+    cp $out/resources/dist/electron/imgs/256x256.png $out/share/icons/hicolor/256x256/apps/ramboxpro.png
+    cp $out/resources/dist/electron/imgs/256x256.png $out/resources/dist/renderer/assets/images/app/icon.png
   '';
 
   postFixup = ''
     makeWrapper ${electron}/bin/electron $out/bin/ramboxpro \
-      --add-flags "$out/opt/RamboxPro/resources/app.asar.unpacked --without-update" \
+      --add-flags "$out/resources --without-update" \
       --prefix PATH : ${xdg_utils}/bin
   '';
 
   desktopItem = makeDesktopItem {
     name = "rambox-pro";
     exec = "ramboxpro";
+    icon = "ramboxpro";
     type = "Application";
     desktopName = "Rambox Pro";
+    categories = "Network;";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix b/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix
index 55624643a01..4a95debdfd1 100644
--- a/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix
@@ -13,7 +13,7 @@
 , libsndfile
 , dbus
 , dbus_cplusplus
-, ffmpeg
+, ffmpeg_3
 , udev
 , pcre
 , gsm
@@ -101,7 +101,7 @@ stdenv.mkDerivation {
     libsndfile
     dbus
     dbus_cplusplus
-    ffmpeg
+    ffmpeg_3
     udev
     pcre
     gsm
diff --git a/pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json b/pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json
deleted file mode 100644
index d036050a476..00000000000
--- a/pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "name": "riot-web",
-  "productName": "Riot",
-  "main": "src/electron-main.js",
-  "version": "1.6.0",
-  "description": "A feature-rich client for Matrix.org",
-  "author": "New Vector Ltd.",
-  "dependencies": {
-    "auto-launch": "^5.0.1",
-    "electron-store": "^2.0.0",
-    "electron-window-state": "^4.1.0",
-    "minimist": "^1.2.0",
-    "png-to-ico": "^1.0.2"
-  }
-}
diff --git a/pkgs/applications/networking/instant-messengers/riot/riot-desktop-yarndeps.nix b/pkgs/applications/networking/instant-messengers/riot/riot-desktop-yarndeps.nix
deleted file mode 100644
index 0db687dff0b..00000000000
--- a/pkgs/applications/networking/instant-messengers/riot/riot-desktop-yarndeps.nix
+++ /dev/null
@@ -1,1021 +0,0 @@
-{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec {
-  offline_cache = linkFarm "offline" packages;
-  packages = [
-    {
-      name = "_types_node___node_9.6.45.tgz";
-      path = fetchurl {
-        name = "_types_node___node_9.6.45.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-9.6.45.tgz";
-        sha1 = "a9e5cfd026a3abaaf17e3c0318a470da9f2f178e";
-      };
-    }
-    {
-      name = "ajv___ajv_6.10.0.tgz";
-      path = fetchurl {
-        name = "ajv___ajv_6.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz";
-        sha1 = "90d0d54439da587cd7e843bfb7045f50bd22bdf1";
-      };
-    }
-    {
-      name = "applescript___applescript_1.0.0.tgz";
-      path = fetchurl {
-        name = "applescript___applescript_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/applescript/-/applescript-1.0.0.tgz";
-        sha1 = "bb87af568cad034a4e48c4bdaf6067a3a2701317";
-      };
-    }
-    {
-      name = "asn1___asn1_0.2.4.tgz";
-      path = fetchurl {
-        name = "asn1___asn1_0.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
-        sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
-      };
-    }
-    {
-      name = "assert_plus___assert_plus_1.0.0.tgz";
-      path = fetchurl {
-        name = "assert_plus___assert_plus_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
-        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
-      };
-    }
-    {
-      name = "asynckit___asynckit_0.4.0.tgz";
-      path = fetchurl {
-        name = "asynckit___asynckit_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
-        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
-      };
-    }
-    {
-      name = "auto_launch___auto_launch_5.0.5.tgz";
-      path = fetchurl {
-        name = "auto_launch___auto_launch_5.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/auto-launch/-/auto-launch-5.0.5.tgz";
-        sha1 = "d14bd002b1ef642f85e991a6195ff5300c8ad3c0";
-      };
-    }
-    {
-      name = "aws_sign2___aws_sign2_0.7.0.tgz";
-      path = fetchurl {
-        name = "aws_sign2___aws_sign2_0.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
-        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
-      };
-    }
-    {
-      name = "aws4___aws4_1.8.0.tgz";
-      path = fetchurl {
-        name = "aws4___aws4_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz";
-        sha1 = "f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f";
-      };
-    }
-    {
-      name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
-      path = fetchurl {
-        name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
-        sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
-      };
-    }
-    {
-      name = "bignumber.js___bignumber.js_2.4.0.tgz";
-      path = fetchurl {
-        name = "bignumber.js___bignumber.js_2.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.4.0.tgz";
-        sha1 = "838a992da9f9d737e0f4b2db0be62bb09dd0c5e8";
-      };
-    }
-    {
-      name = "bmp_js___bmp_js_0.0.3.tgz";
-      path = fetchurl {
-        name = "bmp_js___bmp_js_0.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.0.3.tgz";
-        sha1 = "64113e9c7cf1202b376ed607bf30626ebe57b18a";
-      };
-    }
-    {
-      name = "buffer_equal___buffer_equal_0.0.1.tgz";
-      path = fetchurl {
-        name = "buffer_equal___buffer_equal_0.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz";
-        sha1 = "91bc74b11ea405bc916bc6aa908faafa5b4aac4b";
-      };
-    }
-    {
-      name = "caseless___caseless_0.12.0.tgz";
-      path = fetchurl {
-        name = "caseless___caseless_0.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
-        sha1 = "1b681c21ff84033c826543090689420d187151dc";
-      };
-    }
-    {
-      name = "combined_stream___combined_stream_1.0.7.tgz";
-      path = fetchurl {
-        name = "combined_stream___combined_stream_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz";
-        sha1 = "2d1d24317afb8abe95d6d2c0b07b57813539d828";
-      };
-    }
-    {
-      name = "conf___conf_2.2.0.tgz";
-      path = fetchurl {
-        name = "conf___conf_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/conf/-/conf-2.2.0.tgz";
-        sha1 = "ee282efafc1450b61e205372041ad7d866802d9a";
-      };
-    }
-    {
-      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 = "dashdash___dashdash_1.14.1.tgz";
-      path = fetchurl {
-        name = "dashdash___dashdash_1.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
-        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
-      };
-    }
-    {
-      name = "deep_equal___deep_equal_1.0.1.tgz";
-      path = fetchurl {
-        name = "deep_equal___deep_equal_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz";
-        sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5";
-      };
-    }
-    {
-      name = "define_properties___define_properties_1.1.3.tgz";
-      path = fetchurl {
-        name = "define_properties___define_properties_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz";
-        sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
-      };
-    }
-    {
-      name = "delayed_stream___delayed_stream_1.0.0.tgz";
-      path = fetchurl {
-        name = "delayed_stream___delayed_stream_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
-        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
-      };
-    }
-    {
-      name = "dom_walk___dom_walk_0.1.1.tgz";
-      path = fetchurl {
-        name = "dom_walk___dom_walk_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz";
-        sha1 = "672226dc74c8f799ad35307df936aba11acd6018";
-      };
-    }
-    {
-      name = "dot_prop___dot_prop_4.2.0.tgz";
-      path = fetchurl {
-        name = "dot_prop___dot_prop_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz";
-        sha1 = "1f19e0c2e1aa0e32797c49799f2837ac6af69c57";
-      };
-    }
-    {
-      name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
-      path = fetchurl {
-        name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
-        sha1 = "3a83a904e54353287874c564b7549386849a98c9";
-      };
-    }
-    {
-      name = "electron_store___electron_store_2.0.0.tgz";
-      path = fetchurl {
-        name = "electron_store___electron_store_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/electron-store/-/electron-store-2.0.0.tgz";
-        sha1 = "1035cca2a95409d1f54c7466606345852450d64a";
-      };
-    }
-    {
-      name = "electron_window_state___electron_window_state_4.1.1.tgz";
-      path = fetchurl {
-        name = "electron_window_state___electron_window_state_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/electron-window-state/-/electron-window-state-4.1.1.tgz";
-        sha1 = "6b34fdc31b38514dfec8b7c8f7b5d4addb67632d";
-      };
-    }
-    {
-      name = "env_paths___env_paths_1.0.0.tgz";
-      path = fetchurl {
-        name = "env_paths___env_paths_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz";
-        sha1 = "4168133b42bb05c38a35b1ae4397c8298ab369e0";
-      };
-    }
-    {
-      name = "es_abstract___es_abstract_1.13.0.tgz";
-      path = fetchurl {
-        name = "es_abstract___es_abstract_1.13.0.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz";
-        sha1 = "ac86145fdd5099d8dd49558ccba2eaf9b88e24e9";
-      };
-    }
-    {
-      name = "es_to_primitive___es_to_primitive_1.2.0.tgz";
-      path = fetchurl {
-        name = "es_to_primitive___es_to_primitive_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz";
-        sha1 = "edf72478033456e8dda8ef09e00ad9650707f377";
-      };
-    }
-    {
-      name = "es6_promise___es6_promise_3.3.1.tgz";
-      path = fetchurl {
-        name = "es6_promise___es6_promise_3.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz";
-        sha1 = "a08cdde84ccdbf34d027a1451bc91d4bcd28a613";
-      };
-    }
-    {
-      name = "exif_parser___exif_parser_0.1.12.tgz";
-      path = fetchurl {
-        name = "exif_parser___exif_parser_0.1.12.tgz";
-        url  = "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz";
-        sha1 = "58a9d2d72c02c1f6f02a0ef4a9166272b7760922";
-      };
-    }
-    {
-      name = "extend___extend_3.0.2.tgz";
-      path = fetchurl {
-        name = "extend___extend_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
-        sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
-      };
-    }
-    {
-      name = "extsprintf___extsprintf_1.3.0.tgz";
-      path = fetchurl {
-        name = "extsprintf___extsprintf_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
-        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
-      };
-    }
-    {
-      name = "extsprintf___extsprintf_1.4.0.tgz";
-      path = fetchurl {
-        name = "extsprintf___extsprintf_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
-        sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
-      };
-    }
-    {
-      name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
-      path = fetchurl {
-        name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
-        sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
-      };
-    }
-    {
-      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";
-        url  = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
-        sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
-      };
-    }
-    {
-      name = "file_type___file_type_3.9.0.tgz";
-      path = fetchurl {
-        name = "file_type___file_type_3.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz";
-        sha1 = "257a078384d1db8087bc449d107d52a52672b9e9";
-      };
-    }
-    {
-      name = "find_up___find_up_2.1.0.tgz";
-      path = fetchurl {
-        name = "find_up___find_up_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz";
-        sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
-      };
-    }
-    {
-      name = "for_each___for_each_0.3.3.tgz";
-      path = fetchurl {
-        name = "for_each___for_each_0.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz";
-        sha1 = "69b447e88a0a5d32c3e7084f3f1710034b21376e";
-      };
-    }
-    {
-      name = "forever_agent___forever_agent_0.6.1.tgz";
-      path = fetchurl {
-        name = "forever_agent___forever_agent_0.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
-        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
-      };
-    }
-    {
-      name = "form_data___form_data_2.3.3.tgz";
-      path = fetchurl {
-        name = "form_data___form_data_2.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
-        sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
-      };
-    }
-    {
-      name = "function_bind___function_bind_1.1.1.tgz";
-      path = fetchurl {
-        name = "function_bind___function_bind_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
-        sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
-      };
-    }
-    {
-      name = "getpass___getpass_0.1.7.tgz";
-      path = fetchurl {
-        name = "getpass___getpass_0.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
-        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
-      };
-    }
-    {
-      name = "global___global_4.3.2.tgz";
-      path = fetchurl {
-        name = "global___global_4.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz";
-        sha1 = "e76989268a6c74c38908b1305b10fc0e394e9d0f";
-      };
-    }
-    {
-      name = "graceful_fs___graceful_fs_4.1.15.tgz";
-      path = fetchurl {
-        name = "graceful_fs___graceful_fs_4.1.15.tgz";
-        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz";
-        sha1 = "ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00";
-      };
-    }
-    {
-      name = "har_schema___har_schema_2.0.0.tgz";
-      path = fetchurl {
-        name = "har_schema___har_schema_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
-        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
-      };
-    }
-    {
-      name = "har_validator___har_validator_5.1.3.tgz";
-      path = fetchurl {
-        name = "har_validator___har_validator_5.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz";
-        sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080";
-      };
-    }
-    {
-      name = "has_symbols___has_symbols_1.0.0.tgz";
-      path = fetchurl {
-        name = "has_symbols___has_symbols_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz";
-        sha1 = "ba1a8f1af2a0fc39650f5c850367704122063b44";
-      };
-    }
-    {
-      name = "has___has_1.0.3.tgz";
-      path = fetchurl {
-        name = "has___has_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
-        sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
-      };
-    }
-    {
-      name = "http_signature___http_signature_1.2.0.tgz";
-      path = fetchurl {
-        name = "http_signature___http_signature_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
-        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
-      };
-    }
-    {
-      name = "imurmurhash___imurmurhash_0.1.4.tgz";
-      path = fetchurl {
-        name = "imurmurhash___imurmurhash_0.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz";
-        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
-      };
-    }
-    {
-      name = "ip_regex___ip_regex_1.0.3.tgz";
-      path = fetchurl {
-        name = "ip_regex___ip_regex_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz";
-        sha1 = "dc589076f659f419c222039a33316f1c7387effd";
-      };
-    }
-    {
-      name = "is_callable___is_callable_1.1.4.tgz";
-      path = fetchurl {
-        name = "is_callable___is_callable_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz";
-        sha1 = "1e1adf219e1eeb684d691f9d6a05ff0d30a24d75";
-      };
-    }
-    {
-      name = "is_date_object___is_date_object_1.0.1.tgz";
-      path = fetchurl {
-        name = "is_date_object___is_date_object_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz";
-        sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
-      };
-    }
-    {
-      name = "is_function___is_function_1.0.1.tgz";
-      path = fetchurl {
-        name = "is_function___is_function_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz";
-        sha1 = "12cfb98b65b57dd3d193a3121f5f6e2f437602b5";
-      };
-    }
-    {
-      name = "is_obj___is_obj_1.0.1.tgz";
-      path = fetchurl {
-        name = "is_obj___is_obj_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz";
-        sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f";
-      };
-    }
-    {
-      name = "is_regex___is_regex_1.0.4.tgz";
-      path = fetchurl {
-        name = "is_regex___is_regex_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz";
-        sha1 = "5517489b547091b0930e095654ced25ee97e9491";
-      };
-    }
-    {
-      name = "is_symbol___is_symbol_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_symbol___is_symbol_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz";
-        sha1 = "a055f6ae57192caee329e7a860118b497a950f38";
-      };
-    }
-    {
-      name = "is_typedarray___is_typedarray_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_typedarray___is_typedarray_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
-        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
-      };
-    }
-    {
-      name = "isstream___isstream_0.1.2.tgz";
-      path = fetchurl {
-        name = "isstream___isstream_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
-        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
-      };
-    }
-    {
-      name = "jimp___jimp_0.2.28.tgz";
-      path = fetchurl {
-        name = "jimp___jimp_0.2.28.tgz";
-        url  = "https://registry.yarnpkg.com/jimp/-/jimp-0.2.28.tgz";
-        sha1 = "dd529a937190f42957a7937d1acc3a7762996ea2";
-      };
-    }
-    {
-      name = "jpeg_js___jpeg_js_0.2.0.tgz";
-      path = fetchurl {
-        name = "jpeg_js___jpeg_js_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.2.0.tgz";
-        sha1 = "53e448ec9d263e683266467e9442d2c5a2ef5482";
-      };
-    }
-    {
-      name = "jsbn___jsbn_0.1.1.tgz";
-      path = fetchurl {
-        name = "jsbn___jsbn_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
-        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
-      };
-    }
-    {
-      name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
-      path = fetchurl {
-        name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
-        sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
-      };
-    }
-    {
-      name = "json_schema___json_schema_0.2.3.tgz";
-      path = fetchurl {
-        name = "json_schema___json_schema_0.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
-        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
-      };
-    }
-    {
-      name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
-      path = fetchurl {
-        name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
-        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
-      };
-    }
-    {
-      name = "jsonfile___jsonfile_2.4.0.tgz";
-      path = fetchurl {
-        name = "jsonfile___jsonfile_2.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz";
-        sha1 = "3736a2b428b87bbda0cc83b53fa3d633a35c2ae8";
-      };
-    }
-    {
-      name = "jsprim___jsprim_1.4.1.tgz";
-      path = fetchurl {
-        name = "jsprim___jsprim_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
-        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
-      };
-    }
-    {
-      name = "load_bmfont___load_bmfont_1.4.0.tgz";
-      path = fetchurl {
-        name = "load_bmfont___load_bmfont_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.0.tgz";
-        sha1 = "75f17070b14a8c785fe7f5bee2e6fd4f98093b6b";
-      };
-    }
-    {
-      name = "locate_path___locate_path_2.0.0.tgz";
-      path = fetchurl {
-        name = "locate_path___locate_path_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz";
-        sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
-      };
-    }
-    {
-      name = "make_dir___make_dir_1.3.0.tgz";
-      path = fetchurl {
-        name = "make_dir___make_dir_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz";
-        sha1 = "79c1033b80515bd6d24ec9933e860ca75ee27f0c";
-      };
-    }
-    {
-      name = "mime_db___mime_db_1.38.0.tgz";
-      path = fetchurl {
-        name = "mime_db___mime_db_1.38.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz";
-        sha1 = "1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad";
-      };
-    }
-    {
-      name = "mime_types___mime_types_2.1.22.tgz";
-      path = fetchurl {
-        name = "mime_types___mime_types_2.1.22.tgz";
-        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz";
-        sha1 = "fe6b355a190926ab7698c9a0556a11199b2199bd";
-      };
-    }
-    {
-      name = "mime___mime_1.6.0.tgz";
-      path = fetchurl {
-        name = "mime___mime_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
-        sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
-      };
-    }
-    {
-      name = "min_document___min_document_2.19.0.tgz";
-      path = fetchurl {
-        name = "min_document___min_document_2.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz";
-        sha1 = "7bd282e3f5842ed295bb748cdd9f1ffa2c824685";
-      };
-    }
-    {
-      name = "minimist___minimist_0.0.8.tgz";
-      path = fetchurl {
-        name = "minimist___minimist_0.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
-        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
-      };
-    }
-    {
-      name = "minimist___minimist_1.2.3.tgz";
-      path = fetchurl {
-        name = "minimist___minimist_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.3.tgz";
-        sha1 = "3db5c0765545ab8637be71f333a104a965a9ca3f";
-      };
-    }
-    {
-      name = "mkdirp___mkdirp_0.5.1.tgz";
-      path = fetchurl {
-        name = "mkdirp___mkdirp_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz";
-        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
-      };
-    }
-    {
-      name = "oauth_sign___oauth_sign_0.9.0.tgz";
-      path = fetchurl {
-        name = "oauth_sign___oauth_sign_0.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
-        sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
-      };
-    }
-    {
-      name = "object_keys___object_keys_1.1.0.tgz";
-      path = fetchurl {
-        name = "object_keys___object_keys_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.0.tgz";
-        sha1 = "11bd22348dd2e096a045ab06f6c85bcc340fa032";
-      };
-    }
-    {
-      name = "p_limit___p_limit_1.3.0.tgz";
-      path = fetchurl {
-        name = "p_limit___p_limit_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz";
-        sha1 = "b86bd5f0c25690911c7590fcbfc2010d54b3ccb8";
-      };
-    }
-    {
-      name = "p_locate___p_locate_2.0.0.tgz";
-      path = fetchurl {
-        name = "p_locate___p_locate_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz";
-        sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
-      };
-    }
-    {
-      name = "p_try___p_try_1.0.0.tgz";
-      path = fetchurl {
-        name = "p_try___p_try_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz";
-        sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
-      };
-    }
-    {
-      name = "parse_bmfont_ascii___parse_bmfont_ascii_1.0.6.tgz";
-      path = fetchurl {
-        name = "parse_bmfont_ascii___parse_bmfont_ascii_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz";
-        sha1 = "11ac3c3ff58f7c2020ab22769079108d4dfa0285";
-      };
-    }
-    {
-      name = "parse_bmfont_binary___parse_bmfont_binary_1.0.6.tgz";
-      path = fetchurl {
-        name = "parse_bmfont_binary___parse_bmfont_binary_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz";
-        sha1 = "d038b476d3e9dd9db1e11a0b0e53a22792b69006";
-      };
-    }
-    {
-      name = "parse_bmfont_xml___parse_bmfont_xml_1.1.4.tgz";
-      path = fetchurl {
-        name = "parse_bmfont_xml___parse_bmfont_xml_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz";
-        sha1 = "015319797e3e12f9e739c4d513872cd2fa35f389";
-      };
-    }
-    {
-      name = "parse_headers___parse_headers_2.0.2.tgz";
-      path = fetchurl {
-        name = "parse_headers___parse_headers_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.2.tgz";
-        sha1 = "9545e8a4c1ae5eaea7d24992bca890281ed26e34";
-      };
-    }
-    {
-      name = "path_exists___path_exists_3.0.0.tgz";
-      path = fetchurl {
-        name = "path_exists___path_exists_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz";
-        sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
-      };
-    }
-    {
-      name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
-      path = fetchurl {
-        name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
-        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
-      };
-    }
-    {
-      name = "performance_now___performance_now_2.1.0.tgz";
-      path = fetchurl {
-        name = "performance_now___performance_now_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
-        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
-      };
-    }
-    {
-      name = "phin___phin_2.9.3.tgz";
-      path = fetchurl {
-        name = "phin___phin_2.9.3.tgz";
-        url  = "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz";
-        sha1 = "f9b6ac10a035636fb65dfc576aaaa17b8743125c";
-      };
-    }
-    {
-      name = "pify___pify_3.0.0.tgz";
-      path = fetchurl {
-        name = "pify___pify_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz";
-        sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
-      };
-    }
-    {
-      name = "pixelmatch___pixelmatch_4.0.2.tgz";
-      path = fetchurl {
-        name = "pixelmatch___pixelmatch_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz";
-        sha1 = "8f47dcec5011b477b67db03c243bc1f3085e8854";
-      };
-    }
-    {
-      name = "pkg_up___pkg_up_2.0.0.tgz";
-      path = fetchurl {
-        name = "pkg_up___pkg_up_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz";
-        sha1 = "c819ac728059a461cab1c3889a2be3c49a004d7f";
-      };
-    }
-    {
-      name = "png_to_ico___png_to_ico_1.0.7.tgz";
-      path = fetchurl {
-        name = "png_to_ico___png_to_ico_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/png-to-ico/-/png-to-ico-1.0.7.tgz";
-        sha1 = "9346b5f4d6fd7e94cb08fd49eeb585f501c3e5f2";
-      };
-    }
-    {
-      name = "pngjs___pngjs_3.4.0.tgz";
-      path = fetchurl {
-        name = "pngjs___pngjs_3.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz";
-        sha1 = "99ca7d725965fb655814eaf65f38f12bbdbf555f";
-      };
-    }
-    {
-      name = "process___process_0.5.2.tgz";
-      path = fetchurl {
-        name = "process___process_0.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz";
-        sha1 = "1638d8a8e34c2f440a91db95ab9aeb677fc185cf";
-      };
-    }
-    {
-      name = "psl___psl_1.1.31.tgz";
-      path = fetchurl {
-        name = "psl___psl_1.1.31.tgz";
-        url  = "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz";
-        sha1 = "e9aa86d0101b5b105cbe93ac6b784cd547276184";
-      };
-    }
-    {
-      name = "punycode___punycode_1.4.1.tgz";
-      path = fetchurl {
-        name = "punycode___punycode_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz";
-        sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
-      };
-    }
-    {
-      name = "punycode___punycode_2.1.1.tgz";
-      path = fetchurl {
-        name = "punycode___punycode_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
-        sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
-      };
-    }
-    {
-      name = "qs___qs_6.5.2.tgz";
-      path = fetchurl {
-        name = "qs___qs_6.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
-        sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
-      };
-    }
-    {
-      name = "read_chunk___read_chunk_1.0.1.tgz";
-      path = fetchurl {
-        name = "read_chunk___read_chunk_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/read-chunk/-/read-chunk-1.0.1.tgz";
-        sha1 = "5f68cab307e663f19993527d9b589cace4661194";
-      };
-    }
-    {
-      name = "request___request_2.88.0.tgz";
-      path = fetchurl {
-        name = "request___request_2.88.0.tgz";
-        url  = "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz";
-        sha1 = "9c2fca4f7d35b592efe57c7f0a55e81052124fef";
-      };
-    }
-    {
-      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 = "safer_buffer___safer_buffer_2.1.2.tgz";
-      path = fetchurl {
-        name = "safer_buffer___safer_buffer_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
-      };
-    }
-    {
-      name = "sax___sax_1.2.4.tgz";
-      path = fetchurl {
-        name = "sax___sax_1.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz";
-        sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
-      };
-    }
-    {
-      name = "signal_exit___signal_exit_3.0.2.tgz";
-      path = fetchurl {
-        name = "signal_exit___signal_exit_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz";
-        sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
-      };
-    }
-    {
-      name = "sshpk___sshpk_1.16.1.tgz";
-      path = fetchurl {
-        name = "sshpk___sshpk_1.16.1.tgz";
-        url  = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz";
-        sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877";
-      };
-    }
-    {
-      name = "stream_to_buffer___stream_to_buffer_0.1.0.tgz";
-      path = fetchurl {
-        name = "stream_to_buffer___stream_to_buffer_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz";
-        sha1 = "26799d903ab2025c9bd550ac47171b00f8dd80a9";
-      };
-    }
-    {
-      name = "stream_to___stream_to_0.2.2.tgz";
-      path = fetchurl {
-        name = "stream_to___stream_to_0.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/stream-to/-/stream-to-0.2.2.tgz";
-        sha1 = "84306098d85fdb990b9fa300b1b3ccf55e8ef01d";
-      };
-    }
-    {
-      name = "string.prototype.trim___string.prototype.trim_1.1.2.tgz";
-      path = fetchurl {
-        name = "string.prototype.trim___string.prototype.trim_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz";
-        sha1 = "d04de2c89e137f4d7d206f086b5ed2fae6be8cea";
-      };
-    }
-    {
-      name = "tinycolor2___tinycolor2_1.4.1.tgz";
-      path = fetchurl {
-        name = "tinycolor2___tinycolor2_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz";
-        sha1 = "f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8";
-      };
-    }
-    {
-      name = "tough_cookie___tough_cookie_2.4.3.tgz";
-      path = fetchurl {
-        name = "tough_cookie___tough_cookie_2.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz";
-        sha1 = "53f36da3f47783b0925afa06ff9f3b165280f781";
-      };
-    }
-    {
-      name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
-      path = fetchurl {
-        name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
-        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
-      };
-    }
-    {
-      name = "tweetnacl___tweetnacl_0.14.5.tgz";
-      path = fetchurl {
-        name = "tweetnacl___tweetnacl_0.14.5.tgz";
-        url  = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
-        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
-      };
-    }
-    {
-      name = "untildify___untildify_3.0.3.tgz";
-      path = fetchurl {
-        name = "untildify___untildify_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz";
-        sha1 = "1e7b42b140bcfd922b22e70ca1265bfe3634c7c9";
-      };
-    }
-    {
-      name = "uri_js___uri_js_4.2.2.tgz";
-      path = fetchurl {
-        name = "uri_js___uri_js_4.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
-        sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
-      };
-    }
-    {
-      name = "url_regex___url_regex_3.2.0.tgz";
-      path = fetchurl {
-        name = "url_regex___url_regex_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/url-regex/-/url-regex-3.2.0.tgz";
-        sha1 = "dbad1e0c9e29e105dd0b1f09f6862f7fdb482724";
-      };
-    }
-    {
-      name = "uuid___uuid_3.3.2.tgz";
-      path = fetchurl {
-        name = "uuid___uuid_3.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz";
-        sha1 = "1b4af4955eb3077c501c23872fc6513811587131";
-      };
-    }
-    {
-      name = "verror___verror_1.10.0.tgz";
-      path = fetchurl {
-        name = "verror___verror_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
-        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
-      };
-    }
-    {
-      name = "winreg___winreg_1.2.4.tgz";
-      path = fetchurl {
-        name = "winreg___winreg_1.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/winreg/-/winreg-1.2.4.tgz";
-        sha1 = "ba065629b7a925130e15779108cf540990e98d1b";
-      };
-    }
-    {
-      name = "write_file_atomic___write_file_atomic_2.4.2.tgz";
-      path = fetchurl {
-        name = "write_file_atomic___write_file_atomic_2.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.2.tgz";
-        sha1 = "a7181706dfba17855d221140a9c06e15fcdd87b9";
-      };
-    }
-    {
-      name = "xhr___xhr_2.5.0.tgz";
-      path = fetchurl {
-        name = "xhr___xhr_2.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz";
-        sha1 = "bed8d1676d5ca36108667692b74b316c496e49dd";
-      };
-    }
-    {
-      name = "xml_parse_from_string___xml_parse_from_string_1.0.1.tgz";
-      path = fetchurl {
-        name = "xml_parse_from_string___xml_parse_from_string_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz";
-        sha1 = "a9029e929d3dbcded169f3c6e28238d95a5d5a28";
-      };
-    }
-    {
-      name = "xml2js___xml2js_0.4.19.tgz";
-      path = fetchurl {
-        name = "xml2js___xml2js_0.4.19.tgz";
-        url  = "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz";
-        sha1 = "686c20f213209e94abf0d1bcf1efaa291c7827a7";
-      };
-    }
-    {
-      name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
-      path = fetchurl {
-        name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz";
-        sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d";
-      };
-    }
-    {
-      name = "xtend___xtend_4.0.1.tgz";
-      path = fetchurl {
-        name = "xtend___xtend_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz";
-        sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
-      };
-    }
-  ];
-}
diff --git a/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix b/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix
deleted file mode 100644
index 3b4f968c129..00000000000
--- a/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{ stdenv, fetchFromGitHub
-, makeWrapper, makeDesktopItem, mkYarnPackage
-, electron_7, riot-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>`
-
-let
-  executableName = "riot-desktop";
-  version = "1.6.0";
-  riot-web-src = fetchFromGitHub {
-    owner = "vector-im";
-    repo = "riot-web";
-    rev = "v${version}";
-    sha256 = "16zm6l4c7vkfdlxh6gdw531k5r4v3mb0h66q41h94dvmj79dz2bj";
-  };
-  electron = electron_7;
-
-in mkYarnPackage rec {
-  name = "riot-desktop-${version}";
-  inherit version;
-
-  src = "${riot-web-src}/electron_app";
-
-  packageJSON = ./riot-desktop-package.json;
-  yarnNix = ./riot-desktop-yarndeps.nix;
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  installPhase = ''
-    # resources
-    mkdir -p "$out/share/riot"
-    ln -s '${riot-web}' "$out/share/riot/webapp"
-    cp -r './deps/riot-web' "$out/share/riot/electron"
-    cp -r './deps/riot-web/img' "$out/share/riot"
-    rm "$out/share/riot/electron/node_modules"
-    cp -r './node_modules' "$out/share/riot/electron"
-
-    # icons
-    for icon in $out/share/riot/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"
-    done
-
-    # desktop item
-    mkdir -p "$out/share"
-    ln -s "${desktopItem}/share/applications" "$out/share/applications"
-
-    # executable wrapper
-    makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
-      --add-flags "$out/share/riot/electron"
-  '';
-
-  # Do not attempt generating a tarball for riot-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
-  desktopItem = makeDesktopItem {
-    name = "riot";
-    exec = executableName;
-    icon = "riot";
-    desktopName = "Riot";
-    genericName = "Matrix Client";
-    comment = meta.description;
-    categories = "Network;InstantMessaging;Chat;";
-    extraEntries = ''
-      StartupWMClass=riot
-    '';
-  };
-
-  meta = with stdenv.lib; {
-    description = "A feature-rich client for Matrix.org";
-    homepage = "https://about.riot.im/";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ pacien worldofpeace ];
-    inherit (electron.meta) platforms;
-  };
-}
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 f516e4a76f0..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-web/$1"
-
-wget "$RIOT_WEB_SRC/electron_app/package.json" -O riot-desktop-package.json
-wget "$RIOT_WEB_SRC/electron_app/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 16cf7f5fc77..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.24";
+  version = "0.4.26";
 
   src = let
     appimage = fetchurl {
       url = "https://cancel.fm/dl/Ripcord-${version}-x86_64.AppImage";
-      sha256 = "0rscmnwxvbdl0vfx1pz7x5gxs9qsjk905zmcad4f330j5l5m227z";
+      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-cli/default.nix b/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
index a4594a20caf..5c46a5a0fd2 100644
--- a/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "signal-cli";
-  version = "0.6.7";
+  version = "0.6.8";
 
   # Building from source would be preferred, but is much more involved.
   src = fetchurl {
     url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}.tar.gz";
-    sha256 = "13wz2c0n89aglqjfqlma1z4jr5xnp2qlg8cqng3v9axpkkynk996";
+    sha256 = "0gcyj8r7156zn5zzfnabf0mw3kcaq7v29vsjb6mdvj8cjjm05dvd";
   };
 
   buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ];
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 4a751bac4ac..90e2b201ebb 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -23,7 +23,7 @@ let
       else "");
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "1.33.4"; # Please backport all updates to the stable channel.
+  version = "1.34.5"; # 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 +33,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 = "0mcxia2zaflaazfdl1ngpab0dyhwwzbhad7brc6kwhjxydbnmwcd";
+    sha256 = "1s8nksrkfivsf9r460ifxsf8l7bnc1zix5yj39kvnx0mbync8lg1";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/sky/default.nix b/pkgs/applications/networking/instant-messengers/sky/default.nix
index fe8b251c404..33bd4586bfd 100644
--- a/pkgs/applications/networking/instant-messengers/sky/default.nix
+++ b/pkgs/applications/networking/instant-messengers/sky/default.nix
@@ -4,7 +4,7 @@
 , curl, sqlite, openssl
 , libuuid, openh264, libv4l, libxkbfile, libXv, zlib, libXmu
 , libXtst, libXdamage, pam, libXfixes, libXrender, libjpeg_original
-, ffmpeg
+, ffmpeg_3
 }:
  let
    # Sky is linked to the libjpeg 8 version and checks for the version number in the code.
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     file
     qt5.qtbase
     SDL
-    ffmpeg
+    ffmpeg_3
     sqlite
     openssl
     openh264
diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index 0cc8cd848c5..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.59.0.77";
+  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 = "1cnlwlp84942ywji3x60zvhijavazdxfym3rfzq3ysky28b6mn6i";
+        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 9cf436ff18f..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 = "0z731q00bwljlcmbjwqphyys7skqms1vg87pyi4nsvjmc7kjx7qg";
-    x86_64-linux = "0wrs0i2bqv21ivy8s88khbww28b3gsw4abbbbjc76mqma9b0bajs";
+  pname = "slack";
+  version = {
+    x86_64-darwin = "4.8.0";
+    x86_64-linux = "4.8.0";
   }.${system} or throwSystem;
 
-  version = {
-    x86_64-darwin = "4.4.2";
-    x86_64-linux = "4.4.2";
+  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 6b5acd8344a..e3b664e5fc2 100644
--- a/pkgs/applications/networking/instant-messengers/teams/default.nix
+++ b/pkgs/applications/networking/instant-messengers/teams/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "teams";
-  version = "1.3.00.5153";
+  version = "1.3.00.16851";
 
   src = fetchurl {
     url = "https://packages.microsoft.com/repos/ms-teams/pool/main/t/teams/teams_${version}_amd64.deb";
-    sha256 = "13c7fmij0gcg6mrjjj2mhs21q7fzdssscwhihzyrmbmj64cd0a69";
+    sha256 = "1mp4xq224nwv2ckb5zd7iv3yvkg3gv6mk9dvx3f60jgain7qr0r3";
   };
 
   nativeBuildInputs = [ dpkg autoPatchelfHook wrapGAppsHook ];
@@ -56,9 +56,9 @@ stdenv.mkDerivation rec {
 
   # Includes runtimeDependencies in the RPATH of the included Node modules
   # so that dynamic loading works. We cannot use directly runtimeDependencies
-  # here, since the libraries from runtimeDependencies are not propagated 
+  # here, since the libraries from runtimeDependencies are not propagated
   # to the dynamically loadable node modules because of a condition in
-  # autoPatchElfHook since *.node modules have Type: DYN (Shared object file) 
+  # autoPatchElfHook since *.node modules have Type: DYN (Shared object file)
   # instead of EXEC or INTERP it expects.
   # Fixes: https://github.com/NixOS/nixpkgs/issues/85449
   postFixup = ''
diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
index b9835f45d27..7d2586c6708 100644
--- a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
+++ b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, makeWrapper, makeDesktopItem, zlib, glib, libpng, freetype, openssl
-, xorg, fontconfig, qtbase, qtwebengine, qtwebchannel, qtsvg, xkeyboard_config, alsaLib
-, libpulseaudio ? null, libredirect, quazip, which, unzip, llvmPackages, writeShellScriptBin
+, xorg, fontconfig, qtbase, qtwebengine, qtwebchannel, qtsvg, qtwebsockets, xkeyboard_config
+, alsaLib, libpulseaudio ? null, libredirect, quazip, which, unzip, llvmPackages, writeShellScriptBin
 }:
 
 let
@@ -13,7 +13,7 @@ let
     [ zlib glib libpng freetype xorg.libSM xorg.libICE xorg.libXrender openssl
       xorg.libXrandr xorg.libXfixes xorg.libXcursor xorg.libXinerama
       xorg.libxcb fontconfig xorg.libXext xorg.libX11 alsaLib qtbase qtwebengine qtwebchannel qtsvg
-      libpulseaudio quazip llvmPackages.libcxx llvmPackages.libcxxabi
+      qtwebsockets libpulseaudio quazip llvmPackages.libcxx llvmPackages.libcxxabi
     ];
 
   desktopItem = makeDesktopItem {
@@ -33,13 +33,13 @@ in
 stdenv.mkDerivation rec {
   pname = "teamspeak-client";
 
-  version = "3.3.2";
+  version = "3.5.3";
 
   src = fetchurl {
     url = "https://files.teamspeak-services.com/releases/client/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run";
     sha256 = if stdenv.is64bit
-                then "1n916ds67dxj5bfgc5zm9nz2xh2914k85pzzspzvfyr7njcw7hpi"
-                else "0csl5xklcb4v8bzwvby5m2n38zjrnaw8dcvha7qvfbjllxr75yn2";
+                then "0fp9v2rkxf0zgvf3wcx8nsmf93bzdc22xlqxk3r8cb0415adp76a"
+                else "0ni7hijprc8xygyz41568f1m9wwhl8lk5c3q28bm9m5r6qym39l6";
   };
 
   # grab the plugin sdk for the desktop icon
diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
index 87c70464e9b..cfb41fa9fc5 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
@@ -1,5 +1,5 @@
 { mkDerivation, lib, fetchFromGitHub, pkg-config, python3, cmake, ninja
-, qtbase, qtimageformats, libsForQt5, hunspell, xdg_utils, ffmpeg, openalSoft
+, qtbase, qtimageformats, libsForQt5, hunspell, xdg_utils, ffmpeg_3, openalSoft
 , lzma, lz4, xxHash, zlib, minizip, openssl, libtgvoip, microsoft_gsl, tl-expected
 , range-v3
 }:
@@ -21,7 +21,7 @@ mkDerivation rec {
   nativeBuildInputs = [ pkg-config python3 cmake ninja ];
 
   buildInputs = [
-    qtbase qtimageformats ffmpeg openalSoft lzma lz4 xxHash libsForQt5.libdbusmenu
+    qtbase qtimageformats ffmpeg_3 openalSoft lzma lz4 xxHash libsForQt5.libdbusmenu
     zlib minizip openssl hunspell libtgvoip microsoft_gsl tl-expected range-v3
   ];
 
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 1e1f952586c..014e22bc512 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -1,7 +1,7 @@
-{ mkDerivation, lib, fetchurl, fetchsvn
+{ mkDerivation, lib, fetchurl, fetchsvn, stdenv
 , pkgconfig, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook
 , qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash
-, dee, ffmpeg_4, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
+, dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
 , tl-expected, hunspell
 # TODO: Shouldn't be required:
 , pcre, xorg, utillinux, libselinux, libsepol, epoxy, at-spi2-core, libXtst
@@ -19,12 +19,12 @@ with lib;
 
 mkDerivation rec {
   pname = "telegram-desktop";
-  version = "2.1.4";
+  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 = "1swmmklw2mcgag0c8zh4rk5cjfx6z2yl0nxd5yc43hg9hx76yqqi";
+    sha256 = "0yga4p36jrc5m3d8q2y2g0505c2v540w5hgcscapl4xj9hyb21dw";
   };
 
   postPatch = ''
@@ -42,7 +42,7 @@ mkDerivation rec {
 
   buildInputs = [
     qtbase qtimageformats gtk3 libsForQt5.libdbusmenu enchant2 lz4 xxHash
-    dee ffmpeg_4 openalSoft minizip libopus alsaLib libpulseaudio range-v3
+    dee ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3
     tl-expected hunspell
     # TODO: Shouldn't be required:
     pcre xorg.libpthreadstubs xorg.libXdmcp utillinux libselinux libsepol epoxy at-spi2-core libXtst
@@ -52,16 +52,19 @@ 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
+  ] ++ optionals stdenv.isLinux [ # TODO: Remove workaround once #94905 is resolved:
+    "-DCMAKE_OSX_ARCHITECTURES="
   ];
 
   # Note: The following packages could be packaged system-wide, but it's
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix
index c590b6a0896..a6e74443f29 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     # https://gitlab.gnome.org/GNOME/polari/-/merge_requests/141
     (fetchpatch {
       url = "https://github.com/TelepathyIM/telepathy-mission-control/commit/d8dab08fe8db137c6bbd8bbdc3d9b01d98c48910.patch";
-      sha256 = "Sw+V5QcWQ5zugwTTdkwa3pqV+v5XD0OhH6xI5ymgkOU=";
+      sha256 = "1rchl0lyfj5c3yhl63spzvx9b6ny3967dlq4hgp9qhqn0zjra3sb";
     })
   ];
 
diff --git a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
index d69f22f32ac..532eeb1d038 100644
--- a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
@@ -20,13 +20,13 @@ let
   pname = "wire-desktop";
 
   version = {
-    x86_64-darwin = "3.16.3630";
-    x86_64-linux = "3.16.2923";
+    x86_64-darwin = "3.19.3799";
+    x86_64-linux = "3.19.2928";
   }.${system} or throwSystem;
 
   sha256 = {
-    x86_64-darwin = "1lnjn45bhd36n9xgx6xx9cggwivvkr2s6r4zai2dwg0aac1bywr5";
-    x86_64-linux = "0c8jmlsg2gnxsvly04xj1al80nj52rg4czfdha58sg14x14lyspz";
+    x86_64-darwin = "1sv8n4g1pd4nwpwsg0m61zhrfjlh7sj29rnh46xjw1qg332g6cw9";
+    x86_64-linux = "038h1j59qfj5ckaxk823qpfflxay47v0jrqc0hmrdmnd2y59dpx7";
   }.${system} or throwSystem;
 
   meta = with stdenv.lib; {
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 360d8b4e1c9..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.0.399860.0429";
+  version = "5.1.422789.0705";
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
-      sha256 = "1jid8rs403b709scz8vpqsi1dxdmssn5426wa3d16p45blnxk16k";
+      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
   ];
@@ -60,7 +60,6 @@ in mkDerivation {
         "zcacert.pem"
         "zoom"
         "zoom.sh"
-        "zoomlinux"
         "zopen"
       ];
     in ''
@@ -71,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
     '';
@@ -126,7 +128,7 @@ in mkDerivation {
     description = "zoom.us video conferencing application";
     license = stdenv.lib.licenses.unfree;
     platforms = builtins.attrNames srcs;
-    maintainers = with stdenv.lib.maintainers; [ danbst tadfisher ];
+    maintainers = with stdenv.lib.maintainers; [ danbst tadfisher doronbehar ];
   };
 
 }
diff --git a/pkgs/applications/networking/instant-messengers/zulip/default.nix b/pkgs/applications/networking/instant-messengers/zulip/default.nix
index 8245f5febc4..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.0.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 = "0qwlhkzb3lbzk3piyfx8nn827kcafrl3j1nxrn18f8px9gwasinz";
+    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 f921970175a..09ab75aae94 100644
--- a/pkgs/applications/networking/ipfs-cluster/default.nix
+++ b/pkgs/applications/networking/ipfs-cluster/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "ipfs-cluster";
-  version = "0.12.1";
+  version = "0.13.0";
   rev = "v${version}";
 
-  modSha256 = "0bn47lcb9plzvl2vqqj7p33ishz6bbqpsgf2i6p34g13bwwpq647";
+  vendorSha256 = "00fkyxxi4iz16v0j33270x8qrspqpsv9j6csnikjy0klyb038pfq";
+
+  doCheck = false;
 
   src = fetchFromGitHub {
     owner = "ipfs";
     repo = "ipfs-cluster";
     inherit rev;
-    sha256 = "1jh6ynj50jd4w79widaqrgm3h3yz5h03vq0lbsx717a8d9073blh";
+    sha256 = "0jf3ngxqkgss5f1kifp5lp3kllb21jxc475ysl01ma8l3smqdvya";
   };
 
   meta = with stdenv.lib; {
@@ -22,4 +24,3 @@ buildGoModule rec {
     maintainers = with maintainers; [ jglukasik ];
   };
 }
-
diff --git a/pkgs/applications/networking/ipfs-migrator/default.nix b/pkgs/applications/networking/ipfs-migrator/default.nix
index 727f89da9a2..4b1d1213b01 100644
--- a/pkgs/applications/networking/ipfs-migrator/default.nix
+++ b/pkgs/applications/networking/ipfs-migrator/default.nix
@@ -2,16 +2,18 @@
 
 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";
   };
 
-  modSha256 = "1magqgbb6prnihr8lr6jc2fcgsbqqc9y317mkdnvq9qs6bj0a6qj";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/ipfs/default.nix b/pkgs/applications/networking/ipfs/default.nix
index 1f8838e4c29..dbc6dc97ef2 100644
--- a/pkgs/applications/networking/ipfs/default.nix
+++ b/pkgs/applications/networking/ipfs/default.nix
@@ -1,29 +1,38 @@
-{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
+{ stdenv, buildGoModule, fetchurl, nixosTests }:
 
 buildGoModule rec {
   pname = "ipfs";
-  version = "0.5.1";
+  version = "0.6.0";
   rev = "v${version}";
 
-  src = fetchFromGitHub {
-    owner = "ipfs";
-    repo = "go-ipfs";
-    inherit rev;
-    sha256 = "11l55hlbixv1i25d3n216pkrwgcgac99fa88lyy3dailvminqxw7";
+  # go-ipfs makes changes to it's source tarball that don't match the git source.
+  src = fetchurl {
+    url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz";
+    sha256 = "14bgq2j2bjjy0pspy2lsj5dm3w9rmfha0l8kyq5ig86yhc4nzn80";
   };
 
-  postPatch = ''
-    rm -rf test/dependencies
-    patchShebangs plugin/loader/preload.sh
+  # tarball contains multiple files/directories
+  postUnpack = ''
+    mkdir ipfs-src
+    mv * ipfs-src || true
+    cd ipfs-src
   '';
 
-  buildPhase = ''
-    make install
-  '';
+  sourceRoot = ".";
+
+  subPackages = [ "cmd/ipfs" ];
 
   passthru.tests.ipfs = nixosTests.ipfs;
 
-  modSha256 = "13mpva3r6r2amw08g0bdggbxn933jjimngkvzgq1q5dksp4mivfk";
+  vendorSha256 = null;
+
+  postInstall = ''
+    install -D misc/systemd/ipfs.service $out/etc/systemd/system/ipfs.service
+    install -D misc/systemd/ipfs-api.socket $out/etc/systemd/system/ipfs-api.socket
+    install -D misc/systemd/ipfs-gateway.socket $out/etc/systemd/system/ipfs-gateway.socket
+    substituteInPlace $out/etc/systemd/system/ipfs.service \
+      --replace /usr/bin/ipfs $out/bin/ipfs
+  '';
 
   meta = with stdenv.lib; {
     description = "A global, versioned, peer-to-peer filesystem";
diff --git a/pkgs/applications/networking/ipget/default.nix b/pkgs/applications/networking/ipget/default.nix
index 6a9bcaf32d2..f16031e9dc8 100644
--- a/pkgs/applications/networking/ipget/default.nix
+++ b/pkgs/applications/networking/ipget/default.nix
@@ -1,32 +1,25 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, fetchgx }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "ipget";
-  version = "0.3.2";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/ipfs/ipget";
-
-  extraSrcPaths = [
-    (fetchgx {
-      inherit  src;name = "${pname}-${version}";
-      sha256 = "07l9hpkhk5phr95zp1l5wd3ii38bw91hy4dlw2rsfbzcsc8bq4s8";
-    })
-  ];
-
-  goDeps = ../../../tools/package-management/gx/deps.nix;
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "ipfs";
     repo = "ipget";
-    inherit rev;
-    sha256 = "1ljf5ddvc1p5swmgn4m1ivfj74fykk56myk2r9c4grdjzksf4a15";
+    rev = "v${version}";
+    sha256 = "14ygij6hj6bd4g4aw6jgfbi1fgpal0jgf1hr22zxm16dpx3vva6b";
   };
 
+  vendorSha256 = "0vy21pdqk6q5fw7wlcv51myhh9y79n2qhvy61rmblwhxlrkh6sdv";
+
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Retrieve files over IPFS and save them locally";
     homepage = "https://ipfs.io/";
     license = licenses.mit;
+    maintainers = with maintainers; [ Luflosi ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/irc/convos/default.nix b/pkgs/applications/networking/irc/convos/default.nix
new file mode 100644
index 00000000000..6adcaa7b3d6
--- /dev/null
+++ b/pkgs/applications/networking/irc/convos/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchFromGitHub, perl, perlPackages, makeWrapper, shortenPerlShebang
+, nixosTests
+}:
+
+with stdenv.lib;
+
+perlPackages.buildPerlPackage rec {
+  pname = "convos";
+  version = "4.29";
+
+  src = fetchFromGitHub {
+    owner = "Nordaaker";
+    repo = pname;
+    rev = version;
+    sha256 = "07m9lhwgqq77hi4n2zrya7n8apkjv8xi166bxa0n7pnlknlp74ar";
+  };
+
+  nativeBuildInputs = [ makeWrapper ]
+    ++ optional stdenv.isDarwin [ shortenPerlShebang ];
+
+  buildInputs = with perlPackages; [
+    CryptEksblowfish FileHomeDir FileReadBackwards
+    IOSocketSSL IRCUtils JSONValidator LinkEmbedder ModuleInstall
+    Mojolicious MojoliciousPluginOpenAPI MojoliciousPluginWebpack
+    ParseIRC TextMarkdown TimePiece UnicodeUTF8
+    CpanelJSONXS EV
+  ];
+
+  checkInputs = with perlPackages; [ TestDeep TestMore ];
+
+  postPatch = ''
+    patchShebangs script/convos
+  '';
+
+  preCheck = ''
+    # 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
+  '';
+
+  # Convos expects to find assets in both auto/share/dist/Convos, and $MOJO_HOME
+  # which is set to $out
+  #
+  postInstall = ''
+    AUTO_SHARE_PATH=$out/${perl.libPrefix}/auto/share/dist/Convos
+    mkdir -p $AUTO_SHARE_PATH
+    cp -vR public assets $AUTO_SHARE_PATH/
+    ln -s $AUTO_SHARE_PATH/public/asset $out/asset
+    cp -vR templates $out/templates
+    cp cpanfile $out/cpanfile
+  '' + optionalString stdenv.isDarwin ''
+    shortenPerlShebang $out/bin/convos
+  '' + ''
+    wrapProgram $out/bin/convos --set MOJO_HOME $out
+  '';
+
+  passthru.tests = nixosTests.convos;
+
+  meta = {
+    homepage = "https://convos.chat";
+    description = "Convos is the simplest way to use IRC in your browser";
+    license = stdenv.lib.licenses.artistic2;
+    maintainers = with maintainers; [ sgo ];
+  };
+}
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..69c9aeaf891 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;
@@ -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/wee-slack/default.nix b/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
index 8df6c8d6124..9650f903ed6 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wee-slack";
-  version = "2.5.0";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     repo = "wee-slack";
     owner = "wee-slack";
     rev = "v${version}";
-    sha256 = "0sxgi5fg8qvzqmxy7sdma6v0wj93xwh21av10n8nxvdskacw5dxz";
+    sha256 = "0s4qd1z40c1bczkvc840jwjmzbv7nyj06xqs1si9v54qmkh4gaq4";
   };
 
   patches = [
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/lieer/default.nix b/pkgs/applications/networking/lieer/default.nix
index fc5214f0d01..700ad011dff 100644
--- a/pkgs/applications/networking/lieer/default.nix
+++ b/pkgs/applications/networking/lieer/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "lieer";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchFromGitHub {
     owner = "gauteh";
     repo = "lieer";
     rev = "v${version}";
-    sha256 = "19jx3sm925nrzl26km1bxbp6y5gk1mzwadd79vip2jl70b3xk9f8";
+    sha256 = "0qp8sycclzagkiszqk1pw2fr8s8s195bzy8r27dj7f5zx350nxk5";
   };
 
   propagatedBuildInputs = with python3Packages; [
@@ -30,6 +30,6 @@ python3Packages.buildPythonApplication rec {
     homepage         = "https://lieer.gaute.vetsj.com/";
     repositories.git = "https://github.com/gauteh/lieer.git";
     license          = licenses.gpl3Plus;
-    maintainers      = with maintainers; [ kaiha ];
+    maintainers      = with maintainers; [ flokli kaiha ];
   };
 }
diff --git a/pkgs/applications/networking/maestral-qt/default.nix b/pkgs/applications/networking/maestral-qt/default.nix
new file mode 100644
index 00000000000..ea6303a3c34
--- /dev/null
+++ b/pkgs/applications/networking/maestral-qt/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, python3
+, wrapQtAppsHook
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "maestral-qt";
+  version = "1.1.0";
+  disabled = python3.pkgs.pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "SamSchott";
+    repo = "maestral-qt";
+    rev = "v${version}";
+    sha256 = "0clzzwwbrynfbvawhaaa4mp2qi8smng31mmz0is166z6g67bwdl6";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    bugsnag
+    click
+    markdown2
+    maestral
+    pyqt5
+  ];
+
+  nativeBuildInputs = [ wrapQtAppsHook ];
+
+  makeWrapperArgs = [
+    # Firstly, add all necessary QT variables
+    "\${qtWrapperArgs[@]}"
+
+    # Add the installed directories to the python path so the daemon can find them
+    "--prefix" "PYTHONPATH" ":" "${stdenv.lib.concatStringsSep ":" (map (p: p + "/lib/${python3.libPrefix}/site-packages") (python3.pkgs.requiredPythonModules python3.pkgs.maestral.propagatedBuildInputs))}"
+    "--prefix" "PYTHONPATH" ":" "${python3.pkgs.maestral}/lib/${python3.libPrefix}/site-packages"
+  ];
+
+  # no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "GUI front-end for maestral (an open-source Dropbox client) for Linux";
+    license = licenses.mit;
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms = platforms.linux;
+    inherit (src.meta) homepage;
+  };
+}
diff --git a/pkgs/applications/networking/maestral/default.nix b/pkgs/applications/networking/maestral/default.nix
deleted file mode 100644
index fe611892ae6..00000000000
--- a/pkgs/applications/networking/maestral/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, python3
-, withGui ? false
-, wrapQtAppsHook ? null
-}:
-
-python3.pkgs.buildPythonApplication rec {
-  pname = "maestral${lib.optionalString withGui "-gui"}";
-  version = "0.6.4";
-
-  disabled = python3.pkgs.pythonOlder "3.6";
-
-  src = fetchFromGitHub {
-    owner = "SamSchott";
-    repo = "maestral-dropbox";
-    rev = "v${version}";
-    sha256 = "06psbjd205qj6vx7k7ywhclz1bs5zp43xnf275hf0k80h3b064sn";
-  };
-
-  propagatedBuildInputs = with python3.pkgs; [
-    blinker
-    bugsnag
-    click
-    dropbox
-    keyring
-    keyrings-alt
-    lockfile
-    pathspec
-    Pyro5
-    requests
-    u-msgpack-python
-    watchdog
-  ] ++ lib.optionals stdenv.isLinux [
-    sdnotify
-    systemd
-  ] ++ lib.optional withGui pyqt5;
-
-  nativeBuildInputs = lib.optional withGui wrapQtAppsHook;
-
-  postInstall = lib.optionalString withGui ''
-    makeQtWrapper $out/bin/maestral $out/bin/maestral-gui \
-      --add-flags gui
-  '';
-
-  # no tests
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Open-source Dropbox client for macOS and Linux";
-    license = licenses.mit;
-    maintainers = with maintainers; [ peterhoeg ];
-    platforms = platforms.unix;
-    inherit (src.meta) homepage;
-  };
-}
diff --git a/pkgs/applications/networking/mailreaders/aerc/default.nix b/pkgs/applications/networking/mailreaders/aerc/default.nix
index f53f2244e9f..9a607b54b9c 100644
--- a/pkgs/applications/networking/mailreaders/aerc/default.nix
+++ b/pkgs/applications/networking/mailreaders/aerc/default.nix
@@ -1,20 +1,22 @@
 { stdenv, buildGoModule, fetchurl
 , go, ncurses, notmuch, scdoc
 , python3, perl, w3m, dante
+, fetchFromGitHub
 }:
 
-let
-  rev = "ea0df7bee433fedae5716906ea56141f92b9ce53";
-in buildGoModule rec {
+buildGoModule rec {
   pname = "aerc";
-  version = "unstable-2020-02-01";
+  version = "0.4.0";
 
   src = fetchurl {
-    url = "https://git.sr.ht/~sircmpwn/aerc/archive/${rev}.tar.gz";
-    sha256 = "1bx2fypw053v3bzalfgyi6a0s5fvv040z8jy4i63s7p53m8gmzs9";
+    url = "https://git.sr.ht/~sircmpwn/aerc/archive/${version}.tar.gz";
+    sha256 = "05qy14k9wmyhsg1hiv4njfx1zn1m9lz4d1p50kc36v7pq0n4csfk";
   };
 
-  modSha256 = "127xrah6xxrvc224g5dxn432sagrssx8v7phzapcsdajsnmagq6x";
+  runVend = true;
+  vendorSha256 = "13zs5113ip85yl6sw9hzclxwlnrhy18d39vh9cwbq97dgnh9rz89";
+
+  doCheck = false;
 
   nativeBuildInputs = [
     scdoc
@@ -31,8 +33,6 @@ in buildGoModule rec {
 
   buildInputs = [ python3 notmuch ];
 
-  GOFLAGS="-tags=notmuch";
-
   buildPhase = "
     runHook preBuild
     # we use make instead of go build
@@ -41,7 +41,7 @@ in 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
   '';
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/balsa/default.nix b/pkgs/applications/networking/mailreaders/balsa/default.nix
index 04d00a166aa..055aa15b2ec 100644
--- a/pkgs/applications/networking/mailreaders/balsa/default.nix
+++ b/pkgs/applications/networking/mailreaders/balsa/default.nix
@@ -1,16 +1,32 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, gtk3, gmime, gnutls,
-  webkitgtk, libesmtp, openssl, libnotify, gtkspell3, gpgme,
-  libcanberra-gtk3, libsecret, gtksourceview, gobject-introspection,
-  wrapGAppsHook
+{ stdenv
+, fetchurl
+, glib
+, gmime3
+, gnutls
+, gobject-introspection
+, gpgme
+, gtk3
+, gtksourceview
+, gtkspell3
+, intltool
+, libcanberra-gtk3
+, libesmtp
+, libical
+, libnotify
+, libsecret
+, openssl
+, pkgconfig
+, webkitgtk
+, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "balsa";
-  version = "2.5.9";
+  version = "2.6.1";
 
   src = fetchurl {
     url = "https://pawsa.fedorapeople.org/balsa/${pname}-${version}.tar.bz2";
-    sha256 = "19gs1qfvbk9qx4rjmgrmvid00kl9k153zjjx8zjii2lz09w7g19i";
+    sha256 = "1xkxx801p7sbfkn0bh3cz85wra4xf1z1zhjqqc80z1z1nln7fhb4";
   };
 
   nativeBuildInputs = [
@@ -22,23 +38,23 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib
-    gtk3
-    gmime
+    gmime3
     gnutls
-    webkitgtk
-    openssl
-    libnotify
-    gtkspell3
     gpgme
-    libcanberra-gtk3
+    gtk3
     gtksourceview
-    libsecret
+    gtkspell3
+    libcanberra-gtk3
     libesmtp
+    libical
+    libnotify
+    libsecret
+    openssl
+    webkitgtk
   ];
 
   configureFlags = [
     "--with-canberra"
-    "--with-gpgme"
     "--with-gtksourceview"
     "--with-libsecret"
     "--with-ssl"
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 49f0ac53365..a097fd0dd8a 100644
--- a/pkgs/applications/networking/mailreaders/hasmail/default.nix
+++ b/pkgs/applications/networking/mailreaders/hasmail/default.nix
@@ -19,7 +19,9 @@ buildGoModule rec {
     sha256 = "1p6kwa5xk1mb1fkkxz1b5rcyp5kb4zc8nfif1gk6fab6wbdj9ia1";
   };
 
-  modSha256 = "0z3asz7v1izg81f9xifx9s2sp5hly173hajsn9idi3bkv0h78is2";
+  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;
   };
 }
diff --git a/pkgs/applications/networking/mailreaders/mailnag/default.nix b/pkgs/applications/networking/mailreaders/mailnag/default.nix
index 8341cc63092..6d315049d24 100644
--- a/pkgs/applications/networking/mailreaders/mailnag/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailnag/default.nix
@@ -1,49 +1,105 @@
-{ stdenv, fetchurl, gettext, gtk3, pythonPackages
-, gdk-pixbuf, libnotify, gst_all_1
-, libgnome-keyring3
-, wrapGAppsHook, gnome3
-# otherwise passwords are stored unencrypted
-, withGnomeKeyring ? true
+{ lib
+, callPackage
+, fetchFromGitHub
+, gettext
+, xorg # for lndir
+, gtk3
+, python3Packages
+, gdk-pixbuf
+, libnotify
+, gst_all_1
+, libsecret
+, wrapGAppsHook
+, 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 ? [ ]
 }:
 
-let
-  inherit (pythonPackages) python;
-in pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "mailnag";
-  version = "1.3.0";
+  version = "2.0.0";
 
-  src = fetchurl {
-    url = "https://github.com/pulb/mailnag/archive/v${version}.tar.gz";
-    sha256 = "0cp5pad6jzd5c14pddbi9ap5bi78wjhk1x2p0gbblmvmcasw309s";
+  src = fetchFromGitHub {
+    owner = "pulb";
+    repo = "mailnag";
+    rev = "v${version}";
+    sha256 = "0q97v9i96br22z3h6r2mz79i68ib8m8x42yxky78szfrf8j60i30";
   };
 
   buildInputs = [
-    gtk3 gdk-pixbuf libnotify gst_all_1.gstreamer
-    gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
+    gtk3
+    gdk-pixbuf
+    glib
+    libnotify
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
     gst_all_1.gst-plugins-bad
-    gnome3.adwaita-icon-theme
-  ] ++ stdenv.lib.optional withGnomeKeyring libgnome-keyring3;
+    gobject-introspection
+    libsecret
+  ] ++ pluginsDeps;
 
   nativeBuildInputs = [
     gettext
     wrapGAppsHook
+    # To later add plugins to 
+    xorg.lndir
   ];
 
-  propagatedBuildInputs = with pythonPackages; [
-    pygobject3 dbus-python pyxdg
+  propagatedBuildInputs = with python3Packages; [
+    gsettings-desktop-schemas
+    pygobject3
+    dbus-python
+    pyxdg
   ];
 
-  buildPhase = "";
+  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;
 
-  installPhase = "${python}/bin/python setup.py install --prefix=$out";
+  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[@]}")
+  '';
 
-  doCheck = false;
+  # Actually install plugins
+  postInstall = ''
+    for plug in ${builtins.toString userPlugins}; do
+      lndir $plug/${python3Packages.python.sitePackages} $out/${python3Packages.python.sitePackages}
+    done
+  '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An extensible mail notification daemon";
     homepage = "https://github.com/pulb/mailnag";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ doronbehar ];
   };
 }
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..3bb68d7805c
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/mailspring/default.nix
@@ -0,0 +1,84 @@
+{ stdenv
+, 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
+    udev.lib
+  ];
+
+  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
new file mode 100644
index 00000000000..1a6ae282a8d
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/meli/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, lib
+, fetchgit
+, rustPlatform
+, pkgconfig
+, openssl
+, dbus
+, sqlite
+, file
+, gzip
+, notmuch
+  # Build with support for notmuch backend
+, withNotmuch ? true
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "meli";
+  version = "alpha-0.6.1";
+
+  src = fetchgit {
+    url = "https://git.meli.delivery/meli/meli.git";
+    rev = version;
+    sha256 = "0fs3wccbdfxf4nmx9l5wy7qpjk4r11qg0fc59y0pdvjrrslcjsds";
+  };
+
+  cargoSha256 = "sha256:19j7jrizp7yifmqwrmnv66pka7131jl7ks4zgs3nr5gbb28zvdrz";
+
+  cargoBuildFlags = lib.optional withNotmuch "--features=notmuch";
+
+  nativeBuildInputs = [ pkgconfig gzip ];
+
+  buildInputs = [ openssl dbus sqlite ] ++ lib.optional withNotmuch notmuch;
+
+  checkInputs = [ file ];
+
+  postInstall = ''
+    mkdir -p $out/share/man/man1
+    gzip < meli.1 > $out/share/man/man1/meli.1.gz
+    mkdir -p $out/share/man/man5
+    gzip < meli.conf.5 > $out/share/man/man5/meli.conf.5.gz
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Experimental terminal mail client aiming for configurability and extensibility with sane defaults";
+    homepage = "https://meli.delivery";
+    license = licenses.gpl3;
+    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 736d7530be1..ec4778cd4ab 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.0";
+  version = "1.14.6";
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
-    sha256 = "1y7racrhz06k9mwxw5qspfjfyvbj5fmwai3gsfgrm36k7al84bnz";
+    sha256 = "0i0q6vwhnb1grimsrpmz8maw255rh9k0laijzxkry6xqa80jm5s7";
   };
 
   patches = optional smimeSupport (fetchpatch {
diff --git a/pkgs/applications/networking/mailreaders/neomutt/default.nix b/pkgs/applications/networking/mailreaders/neomutt/default.nix
index ad7b4debd3f..84c81ecff64 100644
--- a/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, writeScript
 , ncurses, perl , cyrus_sasl, gss, gpgme, kerberos, libidn, libxml2, notmuch, openssl
-, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, mailcap, runtimeShell, sqlite, zlib
+, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, elinks, mailcap, runtimeShell, sqlite, zlib
 , glibcLocales
 }:
 
 stdenv.mkDerivation rec {
-  version = "20200501";
+  version = "20200821";
   pname = "neomutt";
 
   src = fetchFromGitHub {
     owner  = "neomutt";
     repo   = "neomutt";
     rev    = version;
-    sha256 = "1xrs2bagrcg489zp7g39l3rrpgz8n1ji9cbr21wrnasfbhqcsmnx";
+    sha256 = "0l66xf6qp2fdhm5h2v58bbc73pwj72c80mriqac9pfyjh5padir5";
   };
 
   buildInputs = [
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [
-    docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which zlib
+    docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which zlib elinks
   ];
 
   enableParallelBuilding = true;
@@ -40,14 +40,12 @@ 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
+  '';
 
-    # The string conversion tests all fail with the first version of neomutt
-    # that has tests (20180223) as well as 20180716 so we disable them for now.
-    # I don't know if that is related to the tests or our build environment.
-    # Try again with a later release.
-    sed -i '/rfc2047/d' test/Makefile.autosetup test/main.c
+  preBuild = ''
+    export HOME=$(mktemp -d)
   '';
 
   configureFlags = [
@@ -60,6 +58,9 @@ stdenv.mkDerivation rec {
     "--sasl"
     "--with-homespool=mailbox"
     "--with-mailpath="
+    # To make it not reference .dev outputs. See:
+    # https://github.com/neomutt/neomutt/pull/2367
+    "--disable-include-path-in-cflags"
     # Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail
     "ac_cv_path_SENDMAIL=sendmail"
     "--zlib"
@@ -80,16 +81,15 @@ stdenv.mkDerivation rec {
     cp -r ${fetchFromGitHub {
       owner = "neomutt";
       repo = "neomutt-test-files";
-      rev = "1ee274e9ae1330fb901eb7b8275b3079d7869222";
-      sha256 = "0dhilz4rr7616jh8jcvh50a3rr09in43nsv72mm6f3vfklcqincp";
+      rev = "8629adab700a75c54e8e28bf05ad092503a98f75";
+      sha256 = "1ci04nqkab9mh60zzm66sd6mhsr6lya8wp92njpbvafc86vvwdlr";
     }} $(pwd)/test-files
+    chmod -R +w test-files
     (cd test-files && ./setup.sh)
 
     export NEOMUTT_TEST_DIR=$(pwd)/test-files
-    export LC_ALL="en_US.UTF-8"
   '';
 
-  checkInputs = [ glibcLocales ];
   checkTarget = "test";
   postCheck = "unset NEOMUTT_TEST_DIR";
 
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..e0f75692d26
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix
@@ -0,0 +1,615 @@
+{
+  version = "68.11.0";
+  sources = [
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/ar/thunderbird-68.11.0.tar.bz2";
+      locale = "ar";
+      arch = "linux-x86_64";
+      sha256 = "878336931005573f76fb15c25fcf2593bfabde16356ec6b1f9b8913663b5fcaa";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/ast/thunderbird-68.11.0.tar.bz2";
+      locale = "ast";
+      arch = "linux-x86_64";
+      sha256 = "5e3f29fb47ccb059d983946d6efec14b8ab00695fdd84a5cc7baa0cc40657cc5";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/be/thunderbird-68.11.0.tar.bz2";
+      locale = "be";
+      arch = "linux-x86_64";
+      sha256 = "5cd4c3a3d6ac865b727b58cbb51def60779c0d731a9f6b8f01d4b8cdc90d42b5";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/bg/thunderbird-68.11.0.tar.bz2";
+      locale = "bg";
+      arch = "linux-x86_64";
+      sha256 = "f359cf1bd12f14bd6636fdb0bd885ed829235559c20c86bd361668f057039f34";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/br/thunderbird-68.11.0.tar.bz2";
+      locale = "br";
+      arch = "linux-x86_64";
+      sha256 = "6cfc9608b392b1e604eaefda5a5dcdc346bd88a1bc411532e8864a04631cf6f8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/ca/thunderbird-68.11.0.tar.bz2";
+      locale = "ca";
+      arch = "linux-x86_64";
+      sha256 = "9068b49e2d8a6f5e82b70ddda1b0a048d094328c96cf21848eefa431d358e6ca";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/cak/thunderbird-68.11.0.tar.bz2";
+      locale = "cak";
+      arch = "linux-x86_64";
+      sha256 = "b3aef7c88302e2b9d0fcff8daa0d8ad4e2893d41e54ec29b746e79d5b03128b2";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/cs/thunderbird-68.11.0.tar.bz2";
+      locale = "cs";
+      arch = "linux-x86_64";
+      sha256 = "a2338c8ac38a4cef41d8fab1e7857c290afa30af0b131a31e675368944d69ba9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/cy/thunderbird-68.11.0.tar.bz2";
+      locale = "cy";
+      arch = "linux-x86_64";
+      sha256 = "b02118f945ee76653df0364da6b2b8c597fff2bf52f4e20b64f2b8ac69aaf60a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/da/thunderbird-68.11.0.tar.bz2";
+      locale = "da";
+      arch = "linux-x86_64";
+      sha256 = "a565beeaf67c01edf83a2478732fa9e245645d6e6b4fb566affe552762b8bc86";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/de/thunderbird-68.11.0.tar.bz2";
+      locale = "de";
+      arch = "linux-x86_64";
+      sha256 = "00a8f51254b2152ba37d964bfaca77cc06b9d778ef750eb6500e01510e298fb4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/dsb/thunderbird-68.11.0.tar.bz2";
+      locale = "dsb";
+      arch = "linux-x86_64";
+      sha256 = "7cfcafbf7f46a4be23003a59390b0404d04ee344c883c29a18f42accb5fddc4c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/el/thunderbird-68.11.0.tar.bz2";
+      locale = "el";
+      arch = "linux-x86_64";
+      sha256 = "b0d0865f8b64de26af8eeff6eb84f159f585e3f9f7590dab413e04167215dcf3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/en-GB/thunderbird-68.11.0.tar.bz2";
+      locale = "en-GB";
+      arch = "linux-x86_64";
+      sha256 = "eb6731a9baaa1cd99584aec7c6dcce8f819d41106ac6ed4f42f02f747cb2afe4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/en-US/thunderbird-68.11.0.tar.bz2";
+      locale = "en-US";
+      arch = "linux-x86_64";
+      sha256 = "6ddd72732957282280a7209f2d5137229ca8af4ad7f02e112187fe333cc79a7f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/es-AR/thunderbird-68.11.0.tar.bz2";
+      locale = "es-AR";
+      arch = "linux-x86_64";
+      sha256 = "0d620d929ed41ffd16cfd8297ec70e8cb9105e726af99d2cd207de50920a1f93";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/es-ES/thunderbird-68.11.0.tar.bz2";
+      locale = "es-ES";
+      arch = "linux-x86_64";
+      sha256 = "28bac94492c7444caab029f3cc3995275000496aab854f20368f941514cd7b11";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/et/thunderbird-68.11.0.tar.bz2";
+      locale = "et";
+      arch = "linux-x86_64";
+      sha256 = "49fe0adb4fc5c5135083ba53369030faa95d3a530e8eb49180f81e359229bf81";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/eu/thunderbird-68.11.0.tar.bz2";
+      locale = "eu";
+      arch = "linux-x86_64";
+      sha256 = "a422935f96d5a3033c6c2a7bd39f19e3f84211d99b57d3996b31e404414703e4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/fi/thunderbird-68.11.0.tar.bz2";
+      locale = "fi";
+      arch = "linux-x86_64";
+      sha256 = "649c3908ecccc8466e555aa76aac47bf7153da8b6f45ddf83f36f6ac676cb4c3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/fr/thunderbird-68.11.0.tar.bz2";
+      locale = "fr";
+      arch = "linux-x86_64";
+      sha256 = "8270cf0e0acfb7280b8616462cd87a1d8d929c7c5fd4839f9607cb588a97c025";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/fy-NL/thunderbird-68.11.0.tar.bz2";
+      locale = "fy-NL";
+      arch = "linux-x86_64";
+      sha256 = "177a9f337719b2902ae964525803cd437b2cbcc8c7b85c7881e14f7e0d207875";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/ga-IE/thunderbird-68.11.0.tar.bz2";
+      locale = "ga-IE";
+      arch = "linux-x86_64";
+      sha256 = "80d3625a04d027382ec3fdfdabd45d501fa4b451c82ec5cfdf5c3352a395a6ba";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/gd/thunderbird-68.11.0.tar.bz2";
+      locale = "gd";
+      arch = "linux-x86_64";
+      sha256 = "0b2fc2582ef518529f204b5096601047b5b3406201b1fc9f7ea88736d1ce1e0a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/gl/thunderbird-68.11.0.tar.bz2";
+      locale = "gl";
+      arch = "linux-x86_64";
+      sha256 = "d1cfc4e646fa6ce03765a56ea4cc2ad3936ec8224f1a7f5e74a34c189be11721";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/he/thunderbird-68.11.0.tar.bz2";
+      locale = "he";
+      arch = "linux-x86_64";
+      sha256 = "588f22ff9dd4dea7c808c4786f2c897842dedbf2a04c0b4d28b3aa162f88773c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/hr/thunderbird-68.11.0.tar.bz2";
+      locale = "hr";
+      arch = "linux-x86_64";
+      sha256 = "126ae387a1c97d253c4ca60441a192d6a00f63f0483b2888371624337e4fd2a9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/hsb/thunderbird-68.11.0.tar.bz2";
+      locale = "hsb";
+      arch = "linux-x86_64";
+      sha256 = "456c323f61f77c07ae73a260a3ad2641190f165d14c75da1dba33ed1f8d2a3d5";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/hu/thunderbird-68.11.0.tar.bz2";
+      locale = "hu";
+      arch = "linux-x86_64";
+      sha256 = "4790f014d95fe3ae00433e27fa291f7e4657b8062538ca52c46dd46ea41a05cb";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/hy-AM/thunderbird-68.11.0.tar.bz2";
+      locale = "hy-AM";
+      arch = "linux-x86_64";
+      sha256 = "7d81493a67e27eb485c1cb702cb8305788733e133bcb22659026737cc2afe1e9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/id/thunderbird-68.11.0.tar.bz2";
+      locale = "id";
+      arch = "linux-x86_64";
+      sha256 = "9f558c85ba88c6350da0445ca2d2b63205c8c1e6700388e1d4f7de0978321667";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/is/thunderbird-68.11.0.tar.bz2";
+      locale = "is";
+      arch = "linux-x86_64";
+      sha256 = "1f1f65bb573fb4fb563e890c043ff8c3283687575892853dd3e076473072b63f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/it/thunderbird-68.11.0.tar.bz2";
+      locale = "it";
+      arch = "linux-x86_64";
+      sha256 = "de6c3adf83745370241c8935edccc412a60642ec758bd891d03c098b40b8792f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/ja/thunderbird-68.11.0.tar.bz2";
+      locale = "ja";
+      arch = "linux-x86_64";
+      sha256 = "8b2ce4598af7323f59a31269c24bd05e369d9898266dc6e8cfa360dae7609273";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/ka/thunderbird-68.11.0.tar.bz2";
+      locale = "ka";
+      arch = "linux-x86_64";
+      sha256 = "be74a3edf9a1d931124c4351b51147be2e7a74f453d07482bce4f7721de701ce";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/kab/thunderbird-68.11.0.tar.bz2";
+      locale = "kab";
+      arch = "linux-x86_64";
+      sha256 = "1be81ab7bb429b44e0c63c81ebf249b66a79d43a3dba39ba0af6242db165d6d3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/kk/thunderbird-68.11.0.tar.bz2";
+      locale = "kk";
+      arch = "linux-x86_64";
+      sha256 = "ee308381b1e0643b7e0683c365c763beb4afcaf21c9b0a1e8c8c2ec3c218c965";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/ko/thunderbird-68.11.0.tar.bz2";
+      locale = "ko";
+      arch = "linux-x86_64";
+      sha256 = "af2d7ee49a6295e41dbfcc7b8e19b8f146890f12baa36ffddbc7dfbfa39a8eb3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/lt/thunderbird-68.11.0.tar.bz2";
+      locale = "lt";
+      arch = "linux-x86_64";
+      sha256 = "8d384844274d048772fbc35da75f91ab6398ca64e26f089c4da116065584acf1";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/ms/thunderbird-68.11.0.tar.bz2";
+      locale = "ms";
+      arch = "linux-x86_64";
+      sha256 = "6e447b3ed1903a20001963021598d957270c88980ff04d3da6c819ab106a2210";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/nb-NO/thunderbird-68.11.0.tar.bz2";
+      locale = "nb-NO";
+      arch = "linux-x86_64";
+      sha256 = "710a982216120cbec822d7a9f74d8ae789b4a234fb3a192797604c9a47a23a62";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/nl/thunderbird-68.11.0.tar.bz2";
+      locale = "nl";
+      arch = "linux-x86_64";
+      sha256 = "2b02b7e3b5e310e5b7935cb72e59d6a385567100d22e87d196c4b4700851d439";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/nn-NO/thunderbird-68.11.0.tar.bz2";
+      locale = "nn-NO";
+      arch = "linux-x86_64";
+      sha256 = "128807f651cc0b09618bad42703970c391c17f5ff883c3ab11d115d0878fe1aa";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/pl/thunderbird-68.11.0.tar.bz2";
+      locale = "pl";
+      arch = "linux-x86_64";
+      sha256 = "181721ac04e9911f57ec7b4f36a5db82e261da71a310dc502efab75a101bec03";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/pt-BR/thunderbird-68.11.0.tar.bz2";
+      locale = "pt-BR";
+      arch = "linux-x86_64";
+      sha256 = "e82f40343e28ecd0abafb71f421c6d7df40b7cfca4898503b32fb0500686d7c4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/pt-PT/thunderbird-68.11.0.tar.bz2";
+      locale = "pt-PT";
+      arch = "linux-x86_64";
+      sha256 = "96bea893919ff89441dd47e027a7d83aa691cc99abf4eaa342c941777ecf319a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/rm/thunderbird-68.11.0.tar.bz2";
+      locale = "rm";
+      arch = "linux-x86_64";
+      sha256 = "544f666af94043737503a30551ad5832f22ae529bc32495bef9d7443c8869072";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/ro/thunderbird-68.11.0.tar.bz2";
+      locale = "ro";
+      arch = "linux-x86_64";
+      sha256 = "4c6e7793c206999e0a9510b390e4b47d82e19dc2da1cae8b4341b8afee440191";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/ru/thunderbird-68.11.0.tar.bz2";
+      locale = "ru";
+      arch = "linux-x86_64";
+      sha256 = "66e951339323a3a44326cada8c572d7040d33057a3a487d8078eb27efa791eb8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/si/thunderbird-68.11.0.tar.bz2";
+      locale = "si";
+      arch = "linux-x86_64";
+      sha256 = "3ef89e462359d09d95216a132c462f0529948073a4f0aef6358362d0457e747e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/sk/thunderbird-68.11.0.tar.bz2";
+      locale = "sk";
+      arch = "linux-x86_64";
+      sha256 = "476641e4d45cd114dca94f59ddee15fda5fbd432c50e4f29af09eb3298782854";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/sl/thunderbird-68.11.0.tar.bz2";
+      locale = "sl";
+      arch = "linux-x86_64";
+      sha256 = "5e85ff37554f47f585a155db65ae9e782c8604fa44db8d0dc9c3e2741704909d";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/sq/thunderbird-68.11.0.tar.bz2";
+      locale = "sq";
+      arch = "linux-x86_64";
+      sha256 = "fc4f839973d6986979089c1dcc1e9b219007c34ecd2d587538db706e4b01eccd";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/sr/thunderbird-68.11.0.tar.bz2";
+      locale = "sr";
+      arch = "linux-x86_64";
+      sha256 = "85a32f352d2b535366dd10a49116e65de4c8ec87886b37e34ac55082c4c310fd";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/sv-SE/thunderbird-68.11.0.tar.bz2";
+      locale = "sv-SE";
+      arch = "linux-x86_64";
+      sha256 = "19af3a847c9e28baed2db8f6b025dcfb0e688932b0483bae461c86861bfa67ea";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/tr/thunderbird-68.11.0.tar.bz2";
+      locale = "tr";
+      arch = "linux-x86_64";
+      sha256 = "deea2513814df3e7a9004316dc50f6fa2bac46e0d9456cf124e33e6e03a9b4c8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/uk/thunderbird-68.11.0.tar.bz2";
+      locale = "uk";
+      arch = "linux-x86_64";
+      sha256 = "22b34b43ccc74eb2dc565a0c63bde89ff0d22f710bd26868341be91f51489f94";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/uz/thunderbird-68.11.0.tar.bz2";
+      locale = "uz";
+      arch = "linux-x86_64";
+      sha256 = "26bb8336c617dc6fe485339b3c8da814f7aa0b46eb0a821db36309305ea87e58";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/vi/thunderbird-68.11.0.tar.bz2";
+      locale = "vi";
+      arch = "linux-x86_64";
+      sha256 = "88705691ae084991c198865f1e93d1ed127496245313cb8f28dafac0a64793a5";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/zh-CN/thunderbird-68.11.0.tar.bz2";
+      locale = "zh-CN";
+      arch = "linux-x86_64";
+      sha256 = "5ebf1ad54acb6d6d17985d80bff9a0b39726d1f62eea30ad9ca0f04577f640a1";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-x86_64/zh-TW/thunderbird-68.11.0.tar.bz2";
+      locale = "zh-TW";
+      arch = "linux-x86_64";
+      sha256 = "b795b0127cf922f65a2ad2d8f17ebe64089c6d06fe7a701c289b7af5afe7c371";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/ar/thunderbird-68.11.0.tar.bz2";
+      locale = "ar";
+      arch = "linux-i686";
+      sha256 = "d19d082b55d76862977b9357e9cf245697c24d207a6d6b3aacd81abf1443747b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/ast/thunderbird-68.11.0.tar.bz2";
+      locale = "ast";
+      arch = "linux-i686";
+      sha256 = "6cd6c484888fe96fb08eab2b6b2a4dc8495823efee6a373536c26e9679fc664e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/be/thunderbird-68.11.0.tar.bz2";
+      locale = "be";
+      arch = "linux-i686";
+      sha256 = "bdd2ac4571d6444ff9a3ffd72c1b55cf5f564c740b5ceafce7a2e2268f482dda";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/bg/thunderbird-68.11.0.tar.bz2";
+      locale = "bg";
+      arch = "linux-i686";
+      sha256 = "3354c7e4b505e99a53a10cdbeac5b6425b13182def27a82c839eaee6ba6e2f86";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/br/thunderbird-68.11.0.tar.bz2";
+      locale = "br";
+      arch = "linux-i686";
+      sha256 = "27339c12c5cdabea7a9a057cad70fa02cf4f69860e71b604f81a60f891345268";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/ca/thunderbird-68.11.0.tar.bz2";
+      locale = "ca";
+      arch = "linux-i686";
+      sha256 = "b65b6d20d7251795e0a9f0ce88f8133d7742c6361375e4897a0bb2e043dd8c97";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/cak/thunderbird-68.11.0.tar.bz2";
+      locale = "cak";
+      arch = "linux-i686";
+      sha256 = "173a85565dfb7b9d44b5757245f8b5f8a62fd15a8a15bfee0680a96ef8f84625";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/cs/thunderbird-68.11.0.tar.bz2";
+      locale = "cs";
+      arch = "linux-i686";
+      sha256 = "9cb5def4eca0bb103516a66f90baf91f7b4e962d5ed59b4f09ae9f19e7f95b47";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/cy/thunderbird-68.11.0.tar.bz2";
+      locale = "cy";
+      arch = "linux-i686";
+      sha256 = "8b51e01daf38091d3b1b32a249f3c6fb220ad8075bbfd16914cb72b24435d8bb";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/da/thunderbird-68.11.0.tar.bz2";
+      locale = "da";
+      arch = "linux-i686";
+      sha256 = "1269600ab71c691563482c6d5787a7670fdceeda3a07c61d7cf2477aa16fe075";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/de/thunderbird-68.11.0.tar.bz2";
+      locale = "de";
+      arch = "linux-i686";
+      sha256 = "46c5fcae1b11b7e31fff2e70397a560c502bb3360ed646dd09945fcee81efad7";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/dsb/thunderbird-68.11.0.tar.bz2";
+      locale = "dsb";
+      arch = "linux-i686";
+      sha256 = "4dc661243d99edb84d0bafd45300bf18d86d5289ede3db066ff89cc4094afed1";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/el/thunderbird-68.11.0.tar.bz2";
+      locale = "el";
+      arch = "linux-i686";
+      sha256 = "efd5f7f46d53bf34146a6f39149abb2aed9c47b735339cf767e32e6387ba50bb";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/en-GB/thunderbird-68.11.0.tar.bz2";
+      locale = "en-GB";
+      arch = "linux-i686";
+      sha256 = "ce97a84ba103a7e5bedba43ee47a5c603c1b5d9bf3bc1a8cab4c26ec9ace21c7";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/en-US/thunderbird-68.11.0.tar.bz2";
+      locale = "en-US";
+      arch = "linux-i686";
+      sha256 = "632f078407322995eef93db134f1da753a1b35696a668a5b8be29f908a34c223";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/es-AR/thunderbird-68.11.0.tar.bz2";
+      locale = "es-AR";
+      arch = "linux-i686";
+      sha256 = "88b67f07b6069adcb82c04f818493e25bd145b5d874a7503453e88ea14200499";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/es-ES/thunderbird-68.11.0.tar.bz2";
+      locale = "es-ES";
+      arch = "linux-i686";
+      sha256 = "a52a6917d77364e5f7ed06f4484abf7e607c53445ff338e65af6b9bad4626e0d";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/et/thunderbird-68.11.0.tar.bz2";
+      locale = "et";
+      arch = "linux-i686";
+      sha256 = "a0c15f0000a00984760419e6f737840b4637bf5aa014ee88093aa2a7a3258807";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/eu/thunderbird-68.11.0.tar.bz2";
+      locale = "eu";
+      arch = "linux-i686";
+      sha256 = "d69e9af1a381743acc9ee1f800999b015129cba4fc112f312a04884c121535b0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/fi/thunderbird-68.11.0.tar.bz2";
+      locale = "fi";
+      arch = "linux-i686";
+      sha256 = "876673de48a047d75e0ac766dca338629069af1872308a7bc6a7e068da026d3a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/fr/thunderbird-68.11.0.tar.bz2";
+      locale = "fr";
+      arch = "linux-i686";
+      sha256 = "d83d87dca716d4cd3850df1c5923e88f15e35354abc874202c8c12bf8d1a006f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/fy-NL/thunderbird-68.11.0.tar.bz2";
+      locale = "fy-NL";
+      arch = "linux-i686";
+      sha256 = "0cce3392aaace190f9ea0247d89699f73d534762278f4776146a1f75bbc09996";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/ga-IE/thunderbird-68.11.0.tar.bz2";
+      locale = "ga-IE";
+      arch = "linux-i686";
+      sha256 = "83b7e660e8098718bd4b205ad2de53522bd94e7a602afb960b6381fe4c11a395";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/gd/thunderbird-68.11.0.tar.bz2";
+      locale = "gd";
+      arch = "linux-i686";
+      sha256 = "447a887ef76e57b9c12a0991d7eaf903ce29d7621d4f9143edd18b56bdab81d3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/gl/thunderbird-68.11.0.tar.bz2";
+      locale = "gl";
+      arch = "linux-i686";
+      sha256 = "288b865596e2b8b1087cbca98bd9c55f9aff1f1cb8d432953d20854b0b1e9ab8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/he/thunderbird-68.11.0.tar.bz2";
+      locale = "he";
+      arch = "linux-i686";
+      sha256 = "9d801a18324849e4a6faf3266c09eb5898c8122e89b020e35ea25a6b3899a4d2";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/hr/thunderbird-68.11.0.tar.bz2";
+      locale = "hr";
+      arch = "linux-i686";
+      sha256 = "f20210372b36b43cdae8f7f1294927dfb364d1ca4db21ee8af1c059a06f3e45e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/hsb/thunderbird-68.11.0.tar.bz2";
+      locale = "hsb";
+      arch = "linux-i686";
+      sha256 = "54daf67c97f2e7496fabe6bef2d1d9a60baccfee35d7331444d48fc6fe675c26";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/hu/thunderbird-68.11.0.tar.bz2";
+      locale = "hu";
+      arch = "linux-i686";
+      sha256 = "0791aa7bec49ff1bfe862f9114ed4b0013361f2f1fa0e4745ad49c8c0e0a9f84";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/hy-AM/thunderbird-68.11.0.tar.bz2";
+      locale = "hy-AM";
+      arch = "linux-i686";
+      sha256 = "e64bacff30d0b2b2a5038aa11d719c9ef3124d64b9923d52a9c5856f6584f9c2";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/id/thunderbird-68.11.0.tar.bz2";
+      locale = "id";
+      arch = "linux-i686";
+      sha256 = "ba6108ba9b4f31f49e7c925a6051738276c67545f7f8d2b3cb378e8834dbd0ce";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/is/thunderbird-68.11.0.tar.bz2";
+      locale = "is";
+      arch = "linux-i686";
+      sha256 = "a3eac36b640a61f2fc6bd62350bd8aaf020636035547c2b9d687df2bd2d7174b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/it/thunderbird-68.11.0.tar.bz2";
+      locale = "it";
+      arch = "linux-i686";
+      sha256 = "bf3cc19a7d1c1415cad867b72c5765dfced27511616a8cbd230516adf8d3f20a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/ja/thunderbird-68.11.0.tar.bz2";
+      locale = "ja";
+      arch = "linux-i686";
+      sha256 = "d4788294f5e91c033c3c3251cfb614e50843631252a2b1fcc6389d099b1fee1e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/ka/thunderbird-68.11.0.tar.bz2";
+      locale = "ka";
+      arch = "linux-i686";
+      sha256 = "8735be035cf0ab5d4b2102aab8b207c1cc686da8843b45f15c1be91931850968";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/kab/thunderbird-68.11.0.tar.bz2";
+      locale = "kab";
+      arch = "linux-i686";
+      sha256 = "a570fd29e5eacdc08ed484bce7336f90ae74744e80d8f2ac0f05395cb3363e51";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/kk/thunderbird-68.11.0.tar.bz2";
+      locale = "kk";
+      arch = "linux-i686";
+      sha256 = "186b7457a96a64da0564c1b411bb04598de1067362a6238f7327abe780cc6aa3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/ko/thunderbird-68.11.0.tar.bz2";
+      locale = "ko";
+      arch = "linux-i686";
+      sha256 = "3c9513362c6b7a64bf6e74bbfad6ef586b0085baeb9a8ad8eb2fbc73461e9f67";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/lt/thunderbird-68.11.0.tar.bz2";
+      locale = "lt";
+      arch = "linux-i686";
+      sha256 = "e90df1606ec0e875fa02f7bf5a52b14d84f758bdc18ab0f395703c0129a18e57";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/ms/thunderbird-68.11.0.tar.bz2";
+      locale = "ms";
+      arch = "linux-i686";
+      sha256 = "ea686adcfb5cf4b1642e7dcb21053090ffb57d344b27269d807cebcf8469934c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/nb-NO/thunderbird-68.11.0.tar.bz2";
+      locale = "nb-NO";
+      arch = "linux-i686";
+      sha256 = "6f827fee307917b590b99b5c85b16337865f027059f52bc9ab12da33f80448b9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/nl/thunderbird-68.11.0.tar.bz2";
+      locale = "nl";
+      arch = "linux-i686";
+      sha256 = "b88843831b982d1317e8bf64df99a8c7a1fa9f67461aa966b2737f12715c9cf3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/nn-NO/thunderbird-68.11.0.tar.bz2";
+      locale = "nn-NO";
+      arch = "linux-i686";
+      sha256 = "ab8383a432f55944d417108b59d891953f2d322ec81d09e971ec63d1883d4b46";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/pl/thunderbird-68.11.0.tar.bz2";
+      locale = "pl";
+      arch = "linux-i686";
+      sha256 = "0f8c0feb68b090598a3db9295d4b4e09d9ffdedb69a73914228d7ef76b768414";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/pt-BR/thunderbird-68.11.0.tar.bz2";
+      locale = "pt-BR";
+      arch = "linux-i686";
+      sha256 = "ca78fad9dce15534754571b14d82ede798b123210599ade352016420faf0db5a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/pt-PT/thunderbird-68.11.0.tar.bz2";
+      locale = "pt-PT";
+      arch = "linux-i686";
+      sha256 = "cf79430e02259d9117feeaebb5fe02139c3e3d95013e48fe290550814200cf6e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/rm/thunderbird-68.11.0.tar.bz2";
+      locale = "rm";
+      arch = "linux-i686";
+      sha256 = "cc7d9614130f24969356b3496f4d322a9f73cafa5c7b60302ca8f2e2efe1f6ec";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/ro/thunderbird-68.11.0.tar.bz2";
+      locale = "ro";
+      arch = "linux-i686";
+      sha256 = "a8fcc2c6e0755fe701a56c2fa3bbf2d288d6351179ee74b8aa3da3180f14cdd1";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/ru/thunderbird-68.11.0.tar.bz2";
+      locale = "ru";
+      arch = "linux-i686";
+      sha256 = "b9f68985e70f8aa47c36cd4a4fc0fb41918d43f089cc760ace8ec879e2561770";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/si/thunderbird-68.11.0.tar.bz2";
+      locale = "si";
+      arch = "linux-i686";
+      sha256 = "a2563b3c9d0ecb567c366aa41cb6a10bde8d09b8c1065cd3934c8c221afee056";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/sk/thunderbird-68.11.0.tar.bz2";
+      locale = "sk";
+      arch = "linux-i686";
+      sha256 = "566906f011283fd27abf55e1e9a1bf7504e4028f7c4a631716ba590c07fe9d91";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/sl/thunderbird-68.11.0.tar.bz2";
+      locale = "sl";
+      arch = "linux-i686";
+      sha256 = "8b74b751b3ee706be9aeb06726ffd3a989a57a1dc9794112262fa2aac45498ad";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/sq/thunderbird-68.11.0.tar.bz2";
+      locale = "sq";
+      arch = "linux-i686";
+      sha256 = "9f7bcc51d4bb3f7c8d6ae49c61b88c17a7a59f6de8d2f62e0ee3fb3a68d30791";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/sr/thunderbird-68.11.0.tar.bz2";
+      locale = "sr";
+      arch = "linux-i686";
+      sha256 = "809c22c379c0c9943acb23de8b7023843ad6ecfedb9cf89006d6889ac1214203";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/sv-SE/thunderbird-68.11.0.tar.bz2";
+      locale = "sv-SE";
+      arch = "linux-i686";
+      sha256 = "9381345ab9229f4b8465c183c936c17ab73680fa6aca27535daff9a2f9a133a3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/tr/thunderbird-68.11.0.tar.bz2";
+      locale = "tr";
+      arch = "linux-i686";
+      sha256 = "0f08bc1e65a8bccf8765cf26af5c09ebf6b77ff463af2f8f133dd2499c1d935c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/uk/thunderbird-68.11.0.tar.bz2";
+      locale = "uk";
+      arch = "linux-i686";
+      sha256 = "37a1fee3bcf2fca901c542295d01a32545e814217985414419a270ad9576c14c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/uz/thunderbird-68.11.0.tar.bz2";
+      locale = "uz";
+      arch = "linux-i686";
+      sha256 = "50668670b10f3171b9033306d43c51ce24f1a48286c4156eff369530ae6d93d1";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/vi/thunderbird-68.11.0.tar.bz2";
+      locale = "vi";
+      arch = "linux-i686";
+      sha256 = "3588d2ed7c67459f5c091a1881821eaba72c9f3307624f7890549fcd1da120f6";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/zh-CN/thunderbird-68.11.0.tar.bz2";
+      locale = "zh-CN";
+      arch = "linux-i686";
+      sha256 = "d8f2976535ef60e62c94338fd049365234a7b2a8658b32df231d1faa22529c0e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.11.0/linux-i686/zh-TW/thunderbird-68.11.0.tar.bz2";
+      locale = "zh-TW";
+      arch = "linux-i686";
+      sha256 = "aca4a8410429bde9926f6ce6a183439750f490fd68dda229531b2e16bb7068ef";
+    }
+    ];
+}
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index e9217c84fc6..8cdd27653e2 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -1,5 +1,4 @@
 { stdenv, fetchurl, config, makeWrapper
-, gconf
 , alsaLib
 , at-spi2-atk
 , atk
@@ -13,8 +12,6 @@
 , gdk-pixbuf
 , glib
 , glibc
-, gst-plugins-base
-, gstreamer
 , gtk2
 , gtk3
 , kerberos
@@ -30,9 +27,7 @@
 , libXrender
 , libXt
 , libxcb
-, libcanberra-gtk2
-, libgnome
-, libgnomeui
+, libcanberra
 , gnome3
 , libGLU, libGL
 , nspr
@@ -75,14 +70,13 @@ 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";
 
   libPath = stdenv.lib.makeLibraryPath
     [ stdenv.cc.cc
-      gconf
       alsaLib
       at-spi2-atk
       atk
@@ -96,8 +90,6 @@ stdenv.mkDerivation {
       gdk-pixbuf
       glib
       glibc
-      gst-plugins-base
-      gstreamer
       gtk2
       gtk3
       kerberos
@@ -113,9 +105,7 @@ stdenv.mkDerivation {
       libXrender
       libXt
       libxcb
-      libcanberra-gtk2
-      libgnome
-      libgnomeui
+      libcanberra
       libGLU libGL
       nspr
       nss
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index 800f7ff9e62..1e238bf8843 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.8.0";
+  version = "78.1.1";
   sources = [
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/ar/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/af/thunderbird-78.1.1.tar.bz2";
+      locale = "af";
+      arch = "linux-x86_64";
+      sha256 = "540aa91a70379c4d6975820649abbe3063515bae031229f01ed7e794cf87395d";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/ar/thunderbird-78.1.1.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha512 = "a45860fc124ef1c3ce15b1c91ab1d920beff2d6f886a646b6162bc5687e8910d559de6d616a36e7bdbd99fe18aa39720b44fcd4fe14e6d5fd4872750f209a740";
+      sha256 = "18d1b4f33895b5c4b17199ca8412f8060f40660c7e45e024d0dda486ad290044";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/ast/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/ast/thunderbird-78.1.1.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha512 = "21e025c3e28b46e1d6af0fa10f3ab5b6b86543bb422c2b3d4928ae733cf3387ab092a20af15f05bdcebf0108c376973982d099371a4b2c2f9a892defe144e160";
+      sha256 = "dd87c494ef5f142517aeec3d8890bc553664b323f2cadb46bca597101b275c91";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/be/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/be/thunderbird-78.1.1.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha512 = "5cb35465afbf6ba68aab98197ab6997e925d5e34db6deaf3b047fb679f32372e0524ac03d7988898f34c493349283088a3b4c0cfff679774760916673e49b757";
+      sha256 = "90e0d5354f41244e2ebaeeeb65959d64fcef52f914a15af7b9808125e6e25639";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/bg/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/bg/thunderbird-78.1.1.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha512 = "a06dea6a215003ef5663cea4928cf201ee71cd021565f3a2f9317f21679047adc7f6c87427d65c4f919facb30e8dfaf941e308173f23c6c0b3e92606fa0220b8";
+      sha256 = "4e8f53fc2e1c3b8dddec3d62bfa104a458943c1b0794fcca3a1658b812359b97";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/br/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/br/thunderbird-78.1.1.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha512 = "194f7332e6c67dea103bae4001b555296b2a64259060bb63329aee95f774e4f3f82c9bf133a456989b43f05682eba7e73e16235f1530012aeb7cf323bc16a381";
+      sha256 = "068c48e37b4d921cb33e2df27b32a8e9abfc29698c30779b1771f2ab61697f27";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/ca/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/ca/thunderbird-78.1.1.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha512 = "99952f59100fe127fb274df641e02185a9416c315d5b023e990ca39fe6edb014a2e6e8ae702cce4d3133635a4c8488c42a72a6b3111147fc19dafeacae396943";
+      sha256 = "1f09e12e53d7bc76551c47995b0fa5ff649db94013a66e4ee445e6901352ead6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/cak/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/cak/thunderbird-78.1.1.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha512 = "9e4d9dd67fa7480c2897175d08ed250a14bb2595c9a69f74db7b7723d08e6218021a0916d637bb682f7e0e3e316cafcfe9a09408e5cced018616c00a752ccb0a";
+      sha256 = "e917249cbc16e1ccaf630a5335577e76d971f422fb7c7d9b7c7f05805de18d78";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/cs/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/cs/thunderbird-78.1.1.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha512 = "53d653b9eda30f7b5ce75ebd31a2bb9e5bde683ca65549cb5d67ed4173eb4f44524f2bd148a0b41368e183b2ec513b7b7c698fcdeb2679ffd6391f133db2a0c6";
+      sha256 = "89926439c396b64a701d688b2520eb1364e5f2a348a645651396e7f91a4b774a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/cy/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/cy/thunderbird-78.1.1.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha512 = "ba01e95181c8b0e04989681cffacbc48a57a7861ce7f60377e219823fc5c70096bdf4f0a38401a35fd442e28c62b0bbb38328e62800db82ea7d097b919f60d55";
+      sha256 = "65a124a1840efdc33b0426a0a8ab8426423425326f7905844c74f7503c6e60f4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/da/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/da/thunderbird-78.1.1.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha512 = "5b79cff38ae706023ef74799e66fb3e47e0cc4b1986f7df9b420dc27881c91db881311da9ac8c8d45c2a1c04a2e8b16b9a1d06e724e891f8a4e6323eedfd984b";
+      sha256 = "a572014192e6ba98994f8693b062400b7909bdcede065dd363a3ab182cf40293";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/de/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/de/thunderbird-78.1.1.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha512 = "de71986c0fecd12358a6ce01c708b7cfc1ebbc9a3f748f301bec76c1c4b23f584de224bfb8cca0bc59f545aa29990de0175af5a3005b33b77786c8b69065427f";
+      sha256 = "a0eeef52d89bee326402354eb1de3f531c9c255d31840ed91e93110c9f170aaa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/dsb/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/dsb/thunderbird-78.1.1.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha512 = "e18851b7c709feb8c3bde88db8d9c297174ea3a7ff512f8a5d35d515e3693717f55631b4ab60fd134f0af056257e0b21947a400d305f91c904dc0848fa9ce5ec";
+      sha256 = "35d0295ebd60415457a7defa40c5bdee2dbf40b08dad387aef0557dc511ce489";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/el/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/el/thunderbird-78.1.1.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha512 = "10816787adb0d02712b1a200f0b7547d8b03ff44056690dcf41a8a74c0dd1faa86a073c5036527a34626e83f47742caa213bc953a0d80e3598b2a743bcfc4d78";
+      sha256 = "135fe2424a1731e24c9602c40e0ae4f8fc551ed058fcd17516ce8f39a7d88bbe";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/en-GB/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/en-CA/thunderbird-78.1.1.tar.bz2";
+      locale = "en-CA";
+      arch = "linux-x86_64";
+      sha256 = "b5741a82e8d59300c1f2046b4a4deaa2804d90ad8e8cda7cda9a39b7d6293b87";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/en-GB/thunderbird-78.1.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha512 = "295a440863622a263a8c157da9ae4d39f73c83d9e9fab3e8fad792480c84a1fdf0e073398c137c359e0dc078bd755bd024f2f15bb5129218df4cf54d02b9e565";
+      sha256 = "61b0e85a24f56b1b7ad03e9d8206313d50cfc6480627cd377a4a4b1bfdd9f13a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/en-US/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/en-US/thunderbird-78.1.1.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha512 = "cce266a330866ec3368c7d3f596868a87e1e3d786ddb848402456c5d80e5dec60a93a6feeee596b1ad91492e1d07aa5cc5703b09f0703d44575db7a050d58864";
+      sha256 = "9f0cc0edd2b23bc67824d3e8ed19b8c0a331e69a307b6d48c20e0e29e756e7e7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/es-AR/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/es-AR/thunderbird-78.1.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha512 = "78d7897c537807068ce92d6520086f921aa6530d893c7d1b662530bfee5a5082740ba4cbbecd7e8e57f5f600e8a288b259ed3d89a97f3e88d5e5ebc47b5bd6b4";
+      sha256 = "b0390addfb6133074aab52d1b6b73eccb9fae9031967fc94d57f95be30cce54d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/es-ES/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/es-ES/thunderbird-78.1.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha512 = "df97856ec0f8cf1fd82ceeb93529d8560cfe80416db769eea290ea1c28dcdc60799822ef1cdde744dfe4fb9622d16f32b0ed992293481762cf45c44a5bd846e8";
+      sha256 = "4d9f115bba5f9f32247465398e8ccd2f279776fadc3961f79b9fcc923c9cc363";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/et/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/et/thunderbird-78.1.1.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha512 = "9028d26dc4393043b39c7c918163d50aba07d6c1c57916b7e1c607b92be0c16dd8d62ff41b0ff26991b70f63a9fc684904c266e1a18ca8fc3e5abf5c61c6d372";
+      sha256 = "6db8f8c69d8452e402724bf3fc6fb42242d2839307f6ad387f813a97286f4773";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/eu/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/eu/thunderbird-78.1.1.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha512 = "adf9c6eedb1b086fa72af21b44a55bd9d8a1b3f4c45db4c232384abd570564e62fc9068dc1391b0bbe0adda4043c7893bf1cb15a9c3019230eed6f66001bcb97";
+      sha256 = "7c8165bc0a0feffd71431f3dd30ce99092a0816581363c2d317c6f40149234e1";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/fa/thunderbird-78.1.1.tar.bz2";
+      locale = "fa";
+      arch = "linux-x86_64";
+      sha256 = "9537892fa5e9ba5b3f79b96fafef1e8e37c4813f0515f965ce05b410bc7c9448";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/fi/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/fi/thunderbird-78.1.1.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha512 = "a436504ebc04f1214226a0555838fe5eda6e12dabd3b09e9c83e85cc8b6b7bfea00389202c9680bf14d147e8e0a9200de01fdb1bac2197b8d7e8a392aa3b617e";
+      sha256 = "31ca37c4d0f13d1a30b2d7541fa9fbe80add66c6d787bbec069cb904d1157e18";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/fr/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/fr/thunderbird-78.1.1.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha512 = "16d02c3e7d6342fed0f785c0f6a65c06a04eb6915bf67c7ff7d80a59ae9f4e069c329d54a9dbc8add6b84755e18aa485db7950dd1e3231a6ac135d799b27656a";
+      sha256 = "c7507fd9096e9c47632be197054be68631c9d1812b7242b4de06774dbc9c3b1b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/fy-NL/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/fy-NL/thunderbird-78.1.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha512 = "c5ddf9105d06b2b5cb45299d88bb7b753832d54a653a62d68695c88aa9cfa0d6e12f510139e924d142b867a5b1e10f7e9704c503fcc93dcb8d97d1b071a69b7a";
+      sha256 = "0a3d9d62861eb11bf409ac20905e787fdb273dd1d74b754f10790ff7deb7160d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/ga-IE/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/ga-IE/thunderbird-78.1.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha512 = "6479f7692fda207c51435691cbd6281a24fc6ad47101827516bad3c2b40ca8c0bb592aacd9936a22d9305ff8ffd53c376a79479ce82dee3af1eacf47a068b130";
+      sha256 = "4bd0b50313e9a85a83d5b5a032710478feb2df52936bcdfd2621cf30a4d02efb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/gd/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/gd/thunderbird-78.1.1.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha512 = "43b94bbd76809f67078ae5248df2d25b399be35ca7d5261236b6149142083483d2871edf17eec7fd42812fa8f5d775bc141ffb8d0fd43d14f39d3d150dc83a41";
+      sha256 = "a72ed3ea99e863f4a6150cfeeaa0052adf84f8f5ad52388b8bc30bf15d58a310";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/gl/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/gl/thunderbird-78.1.1.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha512 = "be4c49d737b2b6bc1a19c0e63df9558c04b448be44a4552fd4fe3d3d28d8cab59bc1bc05cc72acecc8e398fd75ef9785e61848c8f3e39b55b7a534dd337845ab";
+      sha256 = "5d9bae1205ac9490821b1b6d5b700a540bccbb21a3d41943d7f3ccb8576e2087";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/he/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/he/thunderbird-78.1.1.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha512 = "4f0a83e57ac97d3e278c727f49ffff615333812dd9708ebbdd687fc35848be8074705aca6f09b5bb868eb6535c61252272729241cfe46a96e500f7ab6604849c";
+      sha256 = "7cd6417391db27934b6945edcdd9d14b46a69052af7bccd5a62fed588c77894a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/hr/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/hr/thunderbird-78.1.1.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha512 = "08a8f8d273b1fceec0151813439be41d6ff1b2b42b28711a782caab04800e1acf61019f0fa8c7be27036ece8184b4b7f587b58f436c0eb8c73f35aa13be8afba";
+      sha256 = "b641cb7393e1e655adff946c82c43edf580e9fe3852b5c0cffe8f6d12759d190";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/hsb/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/hsb/thunderbird-78.1.1.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha512 = "1f64e9193fc44201e7bae329af94f7c18e6c0c0d30edf01b66dcca43e996f12622e795890e394c207ba20fc84198836b69e2fb1c61ae83c1875b1e424b5b3b97";
+      sha256 = "39a27b797117eaed4e939e1c38ade2da13486f9050b5c4d87219cdd46abb67c4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/hu/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/hu/thunderbird-78.1.1.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha512 = "4e8741809e8eb3b45a7931d4f5bdbceb1e7018a4f4cef97d32d16d00eb3713d85d70a2a4987830f1480633b07fa839cc8ed73fc1fa2d4b3a2944cf03221a3240";
+      sha256 = "5c9795de2316add4e482f9e074c861ef2e05411ea3792d6256d3c43359dc692f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/hy-AM/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/hy-AM/thunderbird-78.1.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha512 = "07f817b7c3229ea993d65861b75c21f37e53e20db2645e68c90a1fc87fd151603580a1ecc67c9007284ab21167e781581a7727a885b760524ffa7079f44986c0";
+      sha256 = "be1ba0a8fecf9a577cd63de519f92f48ddaf7c4b68fd629f94bb2ebff3cf16fb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/id/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/id/thunderbird-78.1.1.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha512 = "3753ae5cd20cc6a65ff1b1e5484fb596dc08d1a08e6747295904106db0f231006328e0a906d0f2d7fa98c53352cc61351eeefc32b8f35bde2ffe1b8c800d7640";
+      sha256 = "15eb3d6acda87645da2874cc92366fb50e821d7ec7885f87951366ddc66db2a0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/is/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/is/thunderbird-78.1.1.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha512 = "26b1a7169221df476224ca5e1d9e5b97e9cbb8d84bbc12fef19685916f7b8e95e784aef6a86e7fc0078f9bddcc617823f2ca2af9de4412431e878f6efbff6fb9";
+      sha256 = "06549f464526e931f23c0925b402eb3da6fbd9bd16595387604fe7edc62c4672";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/it/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/it/thunderbird-78.1.1.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha512 = "96049256ede8fb4ad1a6f20e3bf2d8513b21536c9dfd2acfd1679c41d25cafe5f938ed7cdc2bd0b11bdcd0a13d730f1d8056e85791211561ad4b3c1017ba23b7";
+      sha256 = "d81344b5dc0e131d1796f63de559a18b59dc70403a957eab737354ab05fd31c4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/ja/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/ja/thunderbird-78.1.1.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha512 = "df162eff6af3bad1cf1a9ac359f977410f612885f005c989e928af3464d3cebe7511712cdea4e3951bdf4a69a40fc68e2b4f5efb35f25375f04bfae79ab70eaf";
+      sha256 = "48bd5534bfebd6c6f976ea4230ac7d364544c1467b2912f0db46fd23944d0908";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/ka/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/ka/thunderbird-78.1.1.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha512 = "74186db28403463f9bf8b41242ce7122d410106c21e369977b73d6e72aec9bdeafb3b47665b0450f5b5eaf75c515759e3d6752d0743a2b598c4c7158c47bc7c5";
+      sha256 = "8f581c4d9f6c2e8f79bf7be92bf06a69d0dfed017346e1c380a31f541c5155fa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/kab/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/kab/thunderbird-78.1.1.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha512 = "933fe5f2ae31ee322c4da4c985ed775f8a15b0290f22c2e9e6ecce2f856b0d1236a78659ba3909c9ef97fd4de9634d1ed6aa452174fc987ccdc42b0b65de565b";
+      sha256 = "2cbcf1e64dcb914af8dfa0f8dab462d59d37992b3f4e22159e2edd340cb6e73a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/kk/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/kk/thunderbird-78.1.1.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha512 = "b7ae4f00d7c91e8609ba99592feedfe8f53d4257eacf0a6f206cf768cc4ba16abb54c86f9865416f617b1417601ce4408ba939d065a0a8d3e95aa38ae17444bf";
+      sha256 = "1fd067e9751c60dc6c6dcf1e5cfee3650758ae6593cb20fa5e6103cd01e6e6b7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/ko/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/ko/thunderbird-78.1.1.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha512 = "6f2d017af8755980f39fefe0d78b22115f33c7397917fb713c8e4fe34e88c7f4d0d6ce58767336dfe3f99d3b4a06b34305f92e4d414fc755a885c954eea97cad";
+      sha256 = "efdd154ad42d1b8f257d0cf619afc4bdea44d7014882c82847cb5f21d7037469";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/lt/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/lt/thunderbird-78.1.1.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha512 = "8fc98daf3fe5eb8844d02cb56656aabd260d309ec6ac59055ba0f10f7470292bf942be1647b038103ff99c12cb34e3e03bad2fc8dfbebef0e356ecbfbe93b354";
+      sha256 = "4256ec374ea5a22553469393e7fde51b46cd2ade5a620e9b0fc442e9d524494f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/ms/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/ms/thunderbird-78.1.1.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha512 = "5582840bff43eccb907187930286c47c54a10a9a2af1af3e23b61b5ad56ed3eff32e9b488f00a1e2fba7a47fd647e55f0562adf4c01b1fe843f8708e1dee859b";
+      sha256 = "40f6fc9fb01a83288a6952b7a6e625bd00659594f7fa21ee883c16501407b8be";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/nb-NO/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/nb-NO/thunderbird-78.1.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha512 = "aae8ce8c919cc9621e99af620959427e732d5bab1515676b9ee7b7bd2a6d46af7163677f6601a52e2aa246f619b2206b7239663660e4bbe8dd2ab558e55c073d";
+      sha256 = "b3f363ccbc5946c6e0e87ca4b75e12e4e4372688ae7a034c9cf37fd401794840";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/nl/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/nl/thunderbird-78.1.1.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha512 = "7d166e84b3406ee0c5caf2309aa005c22779a78e7074f4a061b9e6df50722a95be3977802fafe10bc367f90e8a4e77895b28e2b6a2650b066d2d644962ad3557";
+      sha256 = "6963f3f09cf8a3370b06c894aa744c4ddbaa7c11df4e41f540a21427ec391135";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/nn-NO/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/nn-NO/thunderbird-78.1.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha512 = "ffc39e7398220dcf4deadd24aa63a0838326bf2b24c58d0507c00169b322f0e56c5d803c1b78c9bfbd8aa345122c928fe688780e6d5ef238de9e399f40998bfd";
+      sha256 = "da647b3c85db5ebbfbc530dd8d8fb1005928430775cd5c8a2999709614f4e35c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/pa-IN/thunderbird-78.1.1.tar.bz2";
+      locale = "pa-IN";
+      arch = "linux-x86_64";
+      sha256 = "9df18348eedd3b43a13ac991b875fe12678929faa58712b09ee7364a8dedbd2e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/pl/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/pl/thunderbird-78.1.1.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha512 = "f6f2302693af1f466733244f1cde764b0aed0b64afef085e91ba9f24c341007d8e8ab4ca58e777c307ae33bc5c1a78670317393b601d6fb2851095386d7dcb1b";
+      sha256 = "7f60d5a0a819f6b69cd3f8444c12758f7cee17a681859c03cbea29ec27e1221e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/pt-BR/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/pt-BR/thunderbird-78.1.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha512 = "f14380f5b22e9743a0e3b0c390ba4ea1decbb7aa85c1bcecd42f967e5f90416f8904b28b3c5f4b8fcebf55fb07505b96d9b9d8a39d99da5f8725b6bf48e05ab7";
+      sha256 = "229073650b742b4566350ce82ea65f93f639a2b502bf706de4038c3c13ead354";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/pt-PT/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/pt-PT/thunderbird-78.1.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha512 = "215fe20e131557f54091c80e7b2c09c07bcdfb57bbc145964ca37e66b39add37348ac0a08b6c46a6186e25a864447c8cbe2f485fa04687c4cf8e169a731bb8fa";
+      sha256 = "f8596511964a688747ce51cf0ca6bb6da65ea78b9b3ef70ced4f69fae8edbeb0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/rm/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/rm/thunderbird-78.1.1.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha512 = "dfb3e49c940b0332753fa9d2347ba833c8243d1f006fd7e463d514c38cd27a14069ccdcfa60847bc6bbdfac1cec95629a2ae699cd702ef1f40e4898fda4961f4";
+      sha256 = "fb101dae4058f2cf804aacaf60c1354415cb0287432bb367a83e2ef8109375ce";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/ro/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/ro/thunderbird-78.1.1.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha512 = "57d7bc23aaf3365b1a76f1bb8006f725a620d14773886dce9aa9bb4625fc062af08bb6bbd40248601569d7aab2a31794bbb79f7b208f36507c7a919d14872a8a";
+      sha256 = "1cb1fc985122dea685fc1998764c60979a7c357d5e1e0646b8c4f45e856b4f00";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/ru/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/ru/thunderbird-78.1.1.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha512 = "5e85808686c79ebd323990ea2957c10714281d3f0d4a9b097d2e3820769bf1406f4400ac541eccb5a817a6aa639048d1767c2cf4bfd56a3262ac83ce01516275";
+      sha256 = "d89b9a418c78422e2a715e7e1c5d2bf57e90c2293ad63dc5e9f2645fdc910103";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/si/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/si/thunderbird-78.1.1.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha512 = "c4b3b8d62c0369c95c7f498eb319e839688b27cb23a49d15d9a4e15251d7555be7f65ec9a7b19237921dc71ec6dd5cbec02aa4bfc6c16382f917e0f66b1032bc";
+      sha256 = "584cd0dca877163073824e9dfbee4d6146e0ef8bd0b23cd2325462a1a72a41a4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/sk/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/sk/thunderbird-78.1.1.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha512 = "3cd7c89db92dee5ea3ce44df89749d5822659e7b83bcdf56ebcfe0ffd295393c9f5acea5bb836b5bb0a0a6a69e6ce1406efb39d2943357086e14a3802d9181f0";
+      sha256 = "cbb2b5678d11eef244a175d88207e00fc59584afd0b788a82319987368ff19c2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/sl/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/sl/thunderbird-78.1.1.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha512 = "d08549134713d50842b82d24ddc8f8fb5ff098c41d3baec30198e43435ac73cc620e7d9375a9aa9622e991c38e4e36241183a026b6aa63420038694d74833180";
+      sha256 = "e8727e9942c4555d6413a3ebe1d4b2ab2ea39da4f5b3b2ad7baaeb8abf49fd47";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/sq/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/sq/thunderbird-78.1.1.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha512 = "9c6849fa77de94df39d9e2615aa3392dea0f8adf7e61b0171243fa202b6747a4208279b0c0ce4b05f57544caa69a40641a3b145726d304df549f2b4e75d939d2";
+      sha256 = "31141f45121dab9c5ce3f3d6195264df91e61e434ee993c409c3cac164215737";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/sr/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/sr/thunderbird-78.1.1.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha512 = "b52b146a4a54c4987d430eae6d7e922a0a43e57d38ef2956e84b4ab50bae2a896ad1350f98171f57b2e4cbf4a69f0b1123a540e4cc582721cda391b2ae7c7616";
+      sha256 = "dc9a868b1345da0633d090877ae6cddaa3a1b2bb1fc3113bc9de2aac1c30366c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/sv-SE/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/sv-SE/thunderbird-78.1.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha512 = "73767026562ca540c6d3f77792a29b55938ba5d43bfc59d5a020809e020cc9e7c9fcedad8f0653be71e54c44b54374aa1e1d4f5a6e44a40436cf0a9b59e484cb";
+      sha256 = "fab7e11f8de1fcd2e8719d20e818d8bd2c39f7539328fb79f2cce56d4f312a78";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/th/thunderbird-78.1.1.tar.bz2";
+      locale = "th";
+      arch = "linux-x86_64";
+      sha256 = "fa3173940d4e7109385d65b479297110545cc7e2e76e8a657f376553e370563a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/tr/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/tr/thunderbird-78.1.1.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha512 = "4ce31c5bcd8075d3f6edff2f8266c2c6546e4f19b8c00486b4dd15b68d7ea898b6e76a5745087c0c4a41b3462e4d8facb7ee0e9e988b8b76ff2374206fa3cd62";
+      sha256 = "a8cf6b95a6b890892d034c0b014a62f710bbafa34f3282a80e17828ad9365513";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/uk/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/uk/thunderbird-78.1.1.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha512 = "affb8eb4049a2452a4f17a405d6228e6debc87802b77bca55848b66fe136ab0eab6bdb64817f43fc25652109fadf1dc830fd7c22339702684916d7cd95147e1a";
+      sha256 = "a5086a87a87ccb605154aad5bc2986d6fe995391189b3e452640210e2016b08f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/uz/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/uz/thunderbird-78.1.1.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha512 = "e4a6abf7ee0d6c2c0c7484911b025cd40b4f2d0fb5715a6333430336047deda5721f19abb3c5bf49ad3d16b0d128a495525fbf0a23bab7b1bd8ffd8539d17054";
+      sha256 = "b5bea650b678808b7fbcca432c1de0121dc19886b2f32e764e4fe1a797d1e8ab";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/vi/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/vi/thunderbird-78.1.1.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha512 = "f58a50ed7505be5903af948025cc2cb15cd6a3370fa6789f784c3d2cf512f7d51a03d7961ede14e6ecad87cdc207932c90741cdfa7325ba67bc44ff150f39b53";
+      sha256 = "8b8b57417b1d6faeb283b1b6037eac92841029bd73769d5cb8bc6c227e87efbf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/zh-CN/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/zh-CN/thunderbird-78.1.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha512 = "609d4b4cd3ff7f1501e7ca6e247ed29e8376b8bafeb140cc134565fffaf65b6051c158d8f4b90fa2e15b3aeb9bb92897f708a00d666ec2eca490c7dd856b28c8";
+      sha256 = "4a0c8629e2a5e5f95799169dba4ee9c10b728bf503e090ed829cdd11fbeb57d1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-x86_64/zh-TW/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-x86_64/zh-TW/thunderbird-78.1.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha512 = "78bbba535a4cc284e7fde8c96739c29fb6998a5aa71a4ba424121cbcd0a44168412e54a0590cb6a1d7d9bfaabe0ddd343ce4cc4dbe63e4c88d99451ac6823143";
+      sha256 = "11a892d8ec3ec6e2dccbad4b97ce2fe7cb0a0b1dc309bef9819432f0be9d510c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/ar/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/af/thunderbird-78.1.1.tar.bz2";
+      locale = "af";
+      arch = "linux-i686";
+      sha256 = "a254eecebf45c16f55b7d72cc38da2c4d22f49704cdb5db72d2adfc199a7a78c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/ar/thunderbird-78.1.1.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha512 = "1e5d29f706216ddcc8887e17826af397b54fbfe75d4b5c14a644e6c834eec60522ba401392977aaf40a6357713af68f274442288a01db65430acbd7549625c07";
+      sha256 = "3e735d996bb3bf2674f1c04f035489893169ab632208af1427756bc3c15b1600";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/ast/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/ast/thunderbird-78.1.1.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha512 = "24bab81e6d36189635ae8f0da6f0153f1ef32eaaee388dcdb9f9cb5049c586b01e8de2c79372784645ba42749e48f1d77f7a91c857df69ff72566969a68619dc";
+      sha256 = "a8fe0f85c250b0f71b0bac30cd51e10e5d1ded4265775afe93f986ccde4fbc49";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/be/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/be/thunderbird-78.1.1.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha512 = "70a4a9881cdb15b68c5fdcd85ce6234644119bbeb1a3dfdeb47899515303bc65013cde6fbec7d4b2997acca18abe298e9fcf7c7e236931a9f06b7f9c4a5032ce";
+      sha256 = "279a98d38f6c33945ddd1e86c9263e72f9a52555e7f26c56a2f3062696436bbb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/bg/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/bg/thunderbird-78.1.1.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha512 = "80a0c836a7809ba49d067fb76fbb639d653f0a38cd77034d3265807da06c3212eb5c7cc522793fdb22c80be65f763a25ba55775d67a6e8716f7ece9dfcd6796a";
+      sha256 = "cb23b56841818af2e3e8dc922cace29c8538d22977ee951dee744bbc490c24a6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/br/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/br/thunderbird-78.1.1.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha512 = "81bb47202578f138e135c7f4bc30af3a3ccbd3dbf127dfbb47bb6ff4fbb09c2fd54c68bc65d81e5c3e72cbda749bb0d69cba442e0f7a5336ffa6eb10ab9af4a1";
+      sha256 = "f729274b064205cb9baf57be3732268a2c56893ac6b17ae6ddc0aed3269fda15";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/ca/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/ca/thunderbird-78.1.1.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha512 = "61ae36d17fbbc8f91f517992966b59a687ce6e6c72f18cc3a8e8c6d29cb4dac18a7edaea2132bb258e77a0e6690df622aa35f9f0700d713c6411ef4363ba9028";
+      sha256 = "eb434c12d8d841eb8426b95663591f742a9e62b630cadb7afebfa79ab1142a38";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/cak/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/cak/thunderbird-78.1.1.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha512 = "eb0a3dccaae4cdc70fb3a1f5c25cde379ac3d9be65b3125428532ddd8e4ff8c7d65733a2eb101435ae14ac06d1a4ea32c1cba40d8c114b4b8025287ac7fa85c9";
+      sha256 = "daa19634d796f849ab9b3a575bc53e451453902f82ce7384a7ae5ae4f99a2165";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/cs/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/cs/thunderbird-78.1.1.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha512 = "8b8cdfb5f0449e48ce50ab27f75dbb9cdb05ecc9df58dca52be3b72dc523d06248c14656f4a072645e5292e8b06a82b274307b7d4dec99228de7353b539937cb";
+      sha256 = "181cc3c70985d41a806395b353ccd98475c37ae8151fd5f59adbe25bf2059457";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/cy/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/cy/thunderbird-78.1.1.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha512 = "a265e96a1ba45a57999a905f21e45edb457004cc2a337d2b84e2d55d2b2a0f71d1f20d524701a2287f3038f76fd814b051d46b1f130a40713d745b701e66570f";
+      sha256 = "4cb93a1b38582e6fd4e4fc514c36e469b88bedf0bd36bee4d7a66d9c33c3c8ca";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/da/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/da/thunderbird-78.1.1.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha512 = "4ff53dc463e51d14ae4cb7935f44cf2d2624e98469d7dd1285c7a8c512ee8c73aecf0067c6a695024a6e0588b9f567ef3ed12ea9c72bb6e525af348a52144ea2";
+      sha256 = "6eb46018b763d22e62739ec9dd98d5f3804f85b5b65ca3092c42d5d9a1a258ee";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/de/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/de/thunderbird-78.1.1.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha512 = "aac47bce113450818c44d4c17f05be4a57bb33a7e41fc1fbf50b9123ebaf229d673484190538c6fdb6b1a02ad42e33f1644d4ee625707bd3776eb86e023366b3";
+      sha256 = "dff12cffa89c1ad5666b92b66361e17c604f0ca34305fb0e3b06be5fa8fb0f96";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/dsb/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/dsb/thunderbird-78.1.1.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha512 = "35e4a54a82175a1f214a87718800a42743f81cd39e14971da9729cdcd863dbbb70d61d60d58387951cd3e470c764df22b225a4cf9ce894b97699073ca475d46e";
+      sha256 = "efa2f9449703fc0941620650f1ca1332682b2866339413aa03f2438580d18f78";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/el/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/el/thunderbird-78.1.1.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha512 = "b919a771034e06e8b30ba9662930d7961fab757d2d6dd4603239063127702051a29c6401a983a0d0e4b232b16cf5780f8d1cb53037a22b0b2175653eb86e893a";
+      sha256 = "675cfc628dd02fe874a701e0e16986c797adac263605b304c1c69bb01552037f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/en-GB/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/en-CA/thunderbird-78.1.1.tar.bz2";
+      locale = "en-CA";
+      arch = "linux-i686";
+      sha256 = "a710c91df20b4b25d9e363b585344e1595ab96b9cc1df35e973e485834942957";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/en-GB/thunderbird-78.1.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha512 = "70c979be649771596478d0ec9f33398baa862e12aadb5369af42a62c732f1cf40c3e1184ddabd12ac1cb4b21759d2b00f24c59e7f89ca6e221a62837813f9785";
+      sha256 = "3acd3020cb6116588a0f061aa9ba5d620477e3265eefac3dc22f4705757fe025";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/en-US/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/en-US/thunderbird-78.1.1.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha512 = "a0750ff269b11f52d8b001274257c7e4e35fe356e7ee0d31bf929c9336e7abef5f8670d19541f45900192ee72417d8b90a388e17896dc279e78a15c5faeae929";
+      sha256 = "bf9ebc54aff457654b5ea1fc81437281f70d78de96d5a4d3586ae83fb8135d39";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/es-AR/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/es-AR/thunderbird-78.1.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha512 = "ad524e9198f42cc06bcd6b6ea86ba64b4faca80e9fb5df45e34d49997d131973426edde698d3e6e9fd89f133e527ba7089f1c5b753f6614e597a74b80edb5626";
+      sha256 = "cf1c278a36c9303956ac8dc29a51226a42ea17cf64559c34bef318c79ba6ed74";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/es-ES/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/es-ES/thunderbird-78.1.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha512 = "8bba8a570e58ba7e3091af1c1cea4fe6e4cef3ef2bd0ce14ea13087c80d3c01efe43e60497977be6ece54ecfd92d0f6c30afd0d561129e7589c18bf318e415c7";
+      sha256 = "4a9356476a18f292f763f1647611189ebe89ee368a3f01a7c75ef8dce48d91af";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/et/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/et/thunderbird-78.1.1.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha512 = "ad6b225169aea7b8634b57f7d1afe04b99a358a9f010915f2bf9fdf898c0f6dbbf5990e114a220584c1aa06bf750c9fd426587c07292dfc7082caeed1b5f7cc4";
+      sha256 = "03d3a43153b714f334a8f5d7d23e9080624488ec54400451b508c6aa50bcd594";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/eu/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/eu/thunderbird-78.1.1.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha512 = "73f6ab9d2f285f1848f25af22339988b2993fb12a9e458ca7c6c67e57aaf53b660e182c4a99f6f1a424ac0336fb7c9e5e72209444dc4e99a1b74df0062e61f50";
+      sha256 = "a7cca16186f0e2627dc6e06164b3cb2bb691cf798f7c41378ae90349521d9199";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/fa/thunderbird-78.1.1.tar.bz2";
+      locale = "fa";
+      arch = "linux-i686";
+      sha256 = "6a19a79d409acdc25c69b5c8d75a18f2de665a7d18244d578e4ef0f65597daea";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/fi/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/fi/thunderbird-78.1.1.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha512 = "10f42882594f3cb3bc02afcfdac7171139cc11915440b7888ff9edd2d9b0a0a2cbc9fa6faba0f8044d085397e6a7f4fd4b5190990e5f67592ccb85dc24f0cc9b";
+      sha256 = "4b82f0fadfb5f388948e33fd3408e9f6ece6737c8e5e4b53c164a124f017e553";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/fr/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/fr/thunderbird-78.1.1.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha512 = "bd50ba42353e3cc3b709d1f6f0f16b998dce896ac2b08df9e75eee715e90df5f84b128861af69a2587c1b288774b273d2ae2fca6337723e105fe6b42da0fdaf3";
+      sha256 = "bc4fb423664576d4d94eb24383e3f4f23c199e52f1c985fd3bfccc947212f82a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/fy-NL/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/fy-NL/thunderbird-78.1.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha512 = "c5200ec273a85489e3975f87e0050a2de6e2033f7e5ef1bfe7416c4cb0abab8047cbb04b6b8018adf2d9ec9c2a2c362317a92bb90c43c2dab52bb4a8bab50ede";
+      sha256 = "6eb76c3a4d3b31160dc0d0b807596095354c7c0740f5593f86042af1e1b03d48";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/ga-IE/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/ga-IE/thunderbird-78.1.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha512 = "cb4886d2a9f20f6deb600dd3338268b160934e42a0b73e74600c35694c83253bdcb4d77ddb5292294d38da23801fae7559dc6601fa40b873c7c71e2cc64707e0";
+      sha256 = "5321fff3eb4d341307233976de74624f6002abb8662f40ecbf77e3bdb5757add";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/gd/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/gd/thunderbird-78.1.1.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha512 = "49fba7937ca3ab596ccd656267d7ebb5592623a1a8a9143fe25f84424fb2a9d27f72f3fafeca57e204911208671e9fad7acac97d4202a9adf89a7640ba001411";
+      sha256 = "515207242fffd0513a550017f8bfb53061f0a0e3d795a111adf0154b55363d38";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/gl/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/gl/thunderbird-78.1.1.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha512 = "b80131b5ced22d861fd2e6682149e2fde2d3106d2b4d4f528d8620b400acda0db497500bc489b7806a942dffe5001798a05a440d0b00a56879ccdfe81390d353";
+      sha256 = "84c32bd92a783c680343aa5b01dbf58e37eda9ee466b16f817a79a135e37fbe5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/he/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/he/thunderbird-78.1.1.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha512 = "601f99613725276d801c8d0dee9ad25f98ffe8ccba42620551f5a41e02b6abede34547857f43a265f12be01ccf4b3e4b4479e1ec6f8ab5d3b5890f230d4b43b6";
+      sha256 = "96d07263578fb16068e0f48309552ea9237d3dd5a46fc63e3293326778cb7af1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/hr/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/hr/thunderbird-78.1.1.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha512 = "b9c681c4b2edf89f789cfd6bb703670aa62d8e48bd6afd8147409a1154d01f1b59933acdcd0f1f6b88ddf131031a64237958ffc25572dc818b1e06f9c8cace4c";
+      sha256 = "9c612aad3a12530052dd609c2f20a3739c458b3c7f3d761e7c00754f9b43db95";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/hsb/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/hsb/thunderbird-78.1.1.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha512 = "a512ed1d095bc1077836486aa40a6f223fc2c37cada6bd59d5ebafb8bf17d47bca0acf7ef007dc6adf8141db2b81b6a6304bc85b36b929bb2b1375898e67472e";
+      sha256 = "376e4d8eadb9bb8f301053d30260ab0cbeb3dc9f590564583f07547585105fe0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/hu/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/hu/thunderbird-78.1.1.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha512 = "3333452d03a2e8436bdd8e7ed0195553d0dc86e74d55903aee4484d5e920bf81f979c4a482d5e44be6dd6bbdccd85d7d50dfe5d58c6590c5ea95c8b5164c71ac";
+      sha256 = "4e7e51dbbe359ec542e553f5b0691f1d191343261094828b2572dd5a03ec2c8a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/hy-AM/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/hy-AM/thunderbird-78.1.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha512 = "e6a01f614533824e9d69a4feee3ff483ec57f42415a1854db4125479d38137102465050de140d113daedd6d0a4ede83f5c3aa5e9c27fb77f368c70079eb90c44";
+      sha256 = "735624e30d1986d6c822fcbee4694389cf8a0061eba40926265bd4ac998e2186";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/id/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/id/thunderbird-78.1.1.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha512 = "4c505da3cd0a57cd0d24199ad3df92b5ba28f0bbc3410e05000f1fc7d93bc0228b6c16e1ed4852d84e2f8bc25c15886312bc471538ec12ad3fcfc8bc7cf1f852";
+      sha256 = "ce6d668f38d1e74e7c8bbfc7408edc749eed9449908044bdd57b2dcd868cb89f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/is/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/is/thunderbird-78.1.1.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha512 = "0088ca68a63d53f242e82c3d304417a3503a78301b6a4c1198671e55b5fcbcbf75b874ed783ac907dd5ed3415b955481fa699e0aeba0062de7de58e4ffa0eee1";
+      sha256 = "589369ce68b6c78ad7753ddd14412eb68f438dbd7cae449f828288d25ee3f795";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/it/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/it/thunderbird-78.1.1.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha512 = "1f70db3fa112f208a395202b18387fafdd8abceabce2717d33b295cae441353b759400d8ea5aacce07481f841523d932004105eed61551ec6271c796fdb6aec0";
+      sha256 = "fd909d5aaa68a208050a0812f15024ef115b99fbde0edb0afe995c3b766c0d76";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/ja/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/ja/thunderbird-78.1.1.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha512 = "3e43f8d7e52ffe9b7e7b4817756997f68171d08717020406410ffe999a55c9d4f83f1f30c7cedde4732923bf3ee3385828e6d0ec49f7e69d87cb97cd9f083d25";
+      sha256 = "160c2a1c36ef34339270abd59fed13b37414f8c37edd60463e0945e6751a0c74";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/ka/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/ka/thunderbird-78.1.1.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha512 = "3a1a8eb0c49bf963e9586c42128d2574dd04ef775749506e09f4d8d8256ffa5690f5c5e21d1cfa304c298388028e333ea5cb1964b6ff9b97a1f17c00e581ce3b";
+      sha256 = "e822a28e62aae6d6e84e6788d5311af45396248f48cc60152b4273d75359dd8f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/kab/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/kab/thunderbird-78.1.1.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha512 = "d977575e4723c643c04209a875f15e6b7a00133c938dfceacb4a896bb65846348511ea2078971eb3b8fe413c484aab035134411d615d7c153b69452139d155a8";
+      sha256 = "2ea58cc79b80966b5bbc310fa32bd27621f95d4ffbd3646bf9e04f922c36ca6e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/kk/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/kk/thunderbird-78.1.1.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha512 = "5cb567862e9627b9c684045dba9342afa6f1f78064a941f19eb90e8c6ce30d102a611dae85ec3c6ca271ec57fe0fd2b7df07c1aaa8f5bc93c4501cfb0161b55f";
+      sha256 = "a874bc02f065be73a54b70567b7a04be5fc6a9f766f3b054b12555763361ea2a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/ko/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/ko/thunderbird-78.1.1.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha512 = "e3e83cfffcd472b22f60c3e65b458e534c7c76d8c6b637c69b7e1a062b11e3c7461cb8f3fda21e7f0f3a9512c2d713bc0d40a84e235dc6807ed6d7e96d9a4095";
+      sha256 = "d9678f72569dfde84544fcb9afa7cb8d5a4a35baa52d4e560aa2b082a418ab00";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/lt/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/lt/thunderbird-78.1.1.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha512 = "5f1438e9c1a71dbde9abd06b34c8d384fd3923ace38ab643fb0b16352c54efa94db83d4a86573b59c7f9bb418e23a6c158f3a3744b2114f0c535cf49e90f3439";
+      sha256 = "1d7ec489dc52fae0f7597e40f8505bdd6a57a717389c75b66481749e85e2fab6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/ms/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/ms/thunderbird-78.1.1.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha512 = "87e8e1fcef966a7a14700ea4113f28945bc25eb1351a67d2eaf55b9d54864de98cc86e494d3ef81a075c9bda8f6018ed3273796e422dd304abbfe1740ad4cd2a";
+      sha256 = "5d0c7cc00139c39a69dfc9ba1dc5c83b56973f26679860d048952bcf09baa737";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/nb-NO/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/nb-NO/thunderbird-78.1.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha512 = "9ce730dbf2e80c8badbd9c8f3277648deb44b00fb44d367bfc9ff8894ea7a945774aba9241300b01b04617040bcc82f7e65ae024483205a707cd1b63f585e0e8";
+      sha256 = "e72a25e7d53e6e0d470632c487d31e08afdb6c27543d50c93ff72ecac3f70bc6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/nl/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/nl/thunderbird-78.1.1.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha512 = "aada9422ada20cb8561da823b6a240a30c155cea774b369649f8423f6659d6bdee0d2b6ecba2dd0c64837e04e6e6a60235a588d1850fe5ca8a6b7a9d1dfa5fc8";
+      sha256 = "19efd7323e671fe25b64ee44c85f698f608e6c2b18fdbfc9f0cc95b9cd8cd149";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/nn-NO/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/nn-NO/thunderbird-78.1.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha512 = "adb4a038f4cd87ba6ef425911eed240adaf23a23d8719b5401b463578f9de7ad049a76ea1b9b9460afe7b18aa86a9be4e39eccfa42d0be7609077fda9c3381fc";
+      sha256 = "b4be21281c6a13de05e5d0b96e43454bab662140a00d3837f609e23f14360c90";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/pa-IN/thunderbird-78.1.1.tar.bz2";
+      locale = "pa-IN";
+      arch = "linux-i686";
+      sha256 = "f2795a504616404616f7d22022e105e9e4ea54025d60e262c405b867cb9c7936";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/pl/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/pl/thunderbird-78.1.1.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha512 = "40fd0b0123f768e66f669566395e151a696a54445daf5ac30cc6e4dc42e1aa20545c12ed29bfcd0b3881928242b0d12bd7426497b7401ae6876a1a076a6d8dab";
+      sha256 = "52f80b074dc168ec00d0fd78f6376c1dfd357c2b7e7ed78bb1b9cf17536508a6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/pt-BR/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/pt-BR/thunderbird-78.1.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha512 = "603f026cce3a097fc424e754393f9699f3a8639ccf8669e58ffde5eb7363071fc87ffcb2fbf1f04866cb403a0d08d3c8bfa801a0ea9e4290d63b106f657d7aba";
+      sha256 = "d02867899a54eebffb2b6e600f7e6260b960d686a8bcd61ce705e9d0bbebe377";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/pt-PT/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/pt-PT/thunderbird-78.1.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha512 = "3fed3c60cf4c77bc1336db22c65a0f84e4f2a4ca0476f016d289f5951b48e96394365c98e5025b42d51b8990a46151d2cf00eb3381ed98ac96bf3760b640f91b";
+      sha256 = "659a7ff3a0dcbb4f3fec32eda6b5a2087191c8d49ea310662ad540433d869180";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/rm/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/rm/thunderbird-78.1.1.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha512 = "87ec8c6e2358df02baf3bd6a2241c4e83a4441be6c9ff465da9fb0a992d316ba1a3f2e5b41d7186769a8c8e4894c04158a4497a70a4c6c82a630954d5758c1fa";
+      sha256 = "d9ee3c5e3cf2d7eedced9d12bf4d499ae931c262be166af6a14bbd4a2538788a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/ro/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/ro/thunderbird-78.1.1.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha512 = "0b740488109c97bf3a54d87de45f14063ba356d26da56651de7902de4264755f9837f8910a3b524ada953e6e1387d43c0f60572673af2d1cab0e6c7bdebca67c";
+      sha256 = "c3db9965a25d52d25cde0b52bffcc274ae32862fb29be368f27b102774d0971b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/ru/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/ru/thunderbird-78.1.1.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha512 = "16f07bcc8bb6f49754fe6741ce2ce0f77d44dc6641a37b9b9fef601604abbd9c44861d4540e544daf67c871955cdcf141ad1db3ac2cdcc0fc371638bb0aa8058";
+      sha256 = "f0356ef5eadccfcdfc694d0bed9b1e4027e4883095f9c117403a68f1cb2810c8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/si/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/si/thunderbird-78.1.1.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha512 = "cbaeb62f5ca1ac9ea731e291d5988044ab86f7c26eec99ea4741f0db200685bb88b1358c4d29f1d641d01947dfd1ce5eccd971131e49f4373fad1074f15c004c";
+      sha256 = "5b5d17a2b098fbe1c2d8686ab0e1adb7c72efedc38365ca9b39b1e122302c85c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/sk/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/sk/thunderbird-78.1.1.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha512 = "933e45cb5ee1832ad27aefed0ed99077957374727b00a227ae79a004add3fc395917e351d90ae522cf98fce50aafdccc86f3a74e5b4b7ec2e3fa5a9fd498a5df";
+      sha256 = "b39bd41a38947ea467e1a89c5a173fd07cbce09562c10e6a60adb2150b04c9cf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/sl/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/sl/thunderbird-78.1.1.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha512 = "b46ec4da60c666ad13fd31269c3e06e5b50b6f5d37ef89a4cafbcd7d30f60dc0b5de5ce318930ac0aee404c2a72eaeb97698bd2a1d077ec29dd0335256af6e40";
+      sha256 = "602e0feffc5b786930005c376ca3e8819b834a0cfc9a649bc46d86c27999144d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/sq/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/sq/thunderbird-78.1.1.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha512 = "fc4bfd6355fc462fbf196f326291d98659a1c0ba4a5d4d829ec9b184917e524d925b301b2e1aaf3f03b334786c4974f8e2f218c5f96d1ce71a6642c2f46a53c9";
+      sha256 = "fb265490d00c3a844f73e8f531b7c73f3787cb4e4ddc7cdcde72017fd7f3d612";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/sr/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/sr/thunderbird-78.1.1.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha512 = "ef76ee6b540bed79743d223e80f997eb8c6bfb92085659df72d8360c3883ac4862b990334ed9412a2fde7eda01ea0a1bfc80adaf581feb54d5031c2352dda89f";
+      sha256 = "1574eaee6effc4df2c88fc94597e295f352455a9f68501080385c08cb4ab7e35";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/sv-SE/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/sv-SE/thunderbird-78.1.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha512 = "f431dbcba41510823b489a80699af68c32801b3a994ad5b596fea564f007697c26e2ce3c8cce39f9b56eb102adf6cf701ae8cbefb7bee84e37fcfb91a39a49db";
+      sha256 = "8d55df4937fe28f7b9d0fcaebcde3fb9650de9f0b74f677111f339ae2365b822";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/th/thunderbird-78.1.1.tar.bz2";
+      locale = "th";
+      arch = "linux-i686";
+      sha256 = "6a872a6c332c7b3bfc24721bf1114c85475a73ae5c7b16d8637b0eb0045e112d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/tr/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/tr/thunderbird-78.1.1.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha512 = "021b6f44f576e1b35e6e74d0ca40ab8b48def0f8f0159e7864929322cea2aedaadc3c9aa5e7294c1f91898b4eefed6f1032cf26afb560629308cd2ae081c56fa";
+      sha256 = "26d2b8493a1508591b45f9ecc43598e244856c0d9bc3c185721a7239679c4e63";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/uk/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/uk/thunderbird-78.1.1.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha512 = "a2a14df4f815368a798f035a6d9a917bb88ed7e954e1ada08d1dd526b0c8e93653da2cfb7568912f1416eaa2912ce394d334a3fc38da32c5dd8cc9e8db920b4b";
+      sha256 = "ddb4b5fab55ded8f7bc2ae914f41af42b3b69c738727b055efd5e05b253ac872";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/uz/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/uz/thunderbird-78.1.1.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha512 = "2c63ab4db77702e8e975809f71e1a64fc2acf0bbafc8d24bb407ad5d3b79a9a20041320cf1716b2555b3d6843acc12762a07db4857acd6c1009f645198290a25";
+      sha256 = "dce93fab320f90ece938ae2b2343c1d27a1143b0183318a9d9e0cbbcfb607982";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/vi/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/vi/thunderbird-78.1.1.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha512 = "f68610e7f1df34209212d8db6620fd038b1e8f6a5ef430b8b23fb1bb9a3f51ce5da8b98e576561693d0dc125e5d428246e4cbfd38ee991e3d3695dcbeeffa05e";
+      sha256 = "cf1b4f96ef1a510d21b232e748ace6e567d27e382393a7d7f51ab392f026d55c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/zh-CN/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/zh-CN/thunderbird-78.1.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha512 = "42bab5ba6dd11f185ed09b1826c1578b9f90caf8612558e6d4bc09038181f9559bece41eac9fb2060a21ddc11cee9522794fbfba3126b750ad1a283e3557be14";
+      sha256 = "574acd0743a1202b6629883618278eb3ce113c518bc9c39f3d90e2dc12d4f644";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.8.0/linux-i686/zh-TW/thunderbird-68.8.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.1.1/linux-i686/zh-TW/thunderbird-78.1.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha512 = "6f6f5365976c0eae38f26e83248c9cff718433ad4d9757732d87289a876f3c0023df71907ff43434ee0dbf5ba8ee737a44f33d832979dc1e260edb003702f817";
+      sha256 = "51ccc5a4696841b3391a5dd9fb9ff1f55a9f6ccd6fbd86587ffb86c5f664f10f";
     }
     ];
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/68.nix b/pkgs/applications/networking/mailreaders/thunderbird/68.nix
new file mode 100644
index 00000000000..3143c7f62bb
--- /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.11.0";
+
+  src = fetchurl {
+    url =
+      "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
+    sha512 =
+      "1rdxizg1mpagh17fhnrbkilyv1i2zfcr6z62jf3ng31ns94za9kdg9f580srkp63png67jaj3b1kc33v5vb8wavl09n5d38g113x2m9";
+  };
+
+  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:${systemd.lib}/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 2ba2d2fca63..53d337067d7 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
@@ -18,7 +18,6 @@
 , lib
 , libGL
 , libGLU
-, libIDL
 , libevent
 , libjpeg
 , libnotify
@@ -43,6 +42,7 @@
 , rustc
 , sqlite
 , stdenv
+, systemd
 , unzip
 , which
 , writeScript
@@ -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.8.0";
+  version = "78.1.1";
 
   src = fetchurl {
     url =
       "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
     sha512 =
-      "18963ccclfvz85bkiy7dpxgzkf71yh4qjbr8hblwyha9d3h8xnm29mi1dd3a2bz05qi3ly1v3k5mrhcbivhy2can2ippsal6j8rky0s";
+      "1lf15zl3p8y1vxv4s04y088flkspf0r0c6j8gfrlfzla5ckfcsbad3zbygh6y73m35j882g7fbacby5a4hiw891zq2kji5dn3nbahyi";
   };
 
   nativeBuildInputs = [
@@ -112,7 +109,6 @@ stdenv.mkDerivation rec {
     jemalloc
     libGL
     libGLU
-    libIDL
     libevent
     libjpeg
     libnotify
@@ -176,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/${
@@ -207,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"
@@ -224,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"
@@ -305,11 +297,11 @@ stdenv.mkDerivation rec {
     )
   '';
 
-  # FIXME: This can probably be removed as soon as we package a
-  # Thunderbird >=71.0 since XUL shouldn't be anymore (in use)?
+  # 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:$(patchelf --print-rpath $xul)" $xul
+    patchelf --set-rpath "${libnotify}/lib:${systemd.lib}/lib:$(patchelf --print-rpath $xul)" $xul
   '';
 
   doInstallCheck = true;
@@ -322,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;
@@ -337,5 +329,6 @@ stdenv.mkDerivation rec {
       pierron
     ];
     platforms = platforms.linux;
+    license = licenses.mpl20;
   };
 }
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 e8b7645db87..38662bf7f69 100644
--- a/pkgs/applications/networking/modem-manager-gui/default.nix
+++ b/pkgs/applications/networking/modem-manager-gui/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     # Fix docs build
     (fetchpatch {
       url = "https://bitbucket.org/linuxonly/modem-manager-gui/commits/68fb09c12413b7de9b7477cbf4241c3527568325/raw";
-      sha256 = "58XIT/RTZ9sjUK2e47h+SqpRWhQ2vbKb2h9MKiHNdgw=";
+      sha256 = "033nrlhjlk0zvadv5g9n2id53ajagswf77mda0ixnrskyi7wiig7";
     })
   ];
 
diff --git a/pkgs/applications/networking/mpop/default.nix b/pkgs/applications/networking/mpop/default.nix
index 8a0980286df..f6c979b5173 100644
--- a/pkgs/applications/networking/mpop/default.nix
+++ b/pkgs/applications/networking/mpop/default.nix
@@ -4,11 +4,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "mpop";
-  version = "1.4.9";
+  version = "1.4.10";
 
   src = fetchurl {
     url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
-    sha256 = "0hinmyd4lipy9wi3grwm72vv6xrpf4m08i9g9nlxzxnwfanw885q";
+    sha256 = "1243hazpiwgvz2m3p48cdh0yw1019i6xjxgc7qyhmxcdy0inb6wy";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/networking/msmtp/default.nix b/pkgs/applications/networking/msmtp/default.nix
index 9e990dcdf33..e21cd5b3f0f 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.10";
+  version = "1.8.11";
 
   src = fetchurl {
     url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
-    sha256 = "041g921rdjiv8bapp61gp4rylq8cckfkcwzyh8bs7xwxs4wpzfna";
+    sha256 = "0q0fg235qk448l1xjcwyxr7vcpzk6w57jzhjbkb0m7nffyhhypzj";
   };
 
   patches = [
diff --git a/pkgs/applications/networking/mullvad-vpn/default.nix b/pkgs/applications/networking/mullvad-vpn/default.nix
index 1e25b01259d..265c8add278 100644
--- a/pkgs/applications/networking/mullvad-vpn/default.nix
+++ b/pkgs/applications/networking/mullvad-vpn/default.nix
@@ -41,11 +41,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "mullvad-vpn";
-  version = "2020.3";
+  version = "2020.5";
 
   src = fetchurl {
     url = "https://www.mullvad.net/media/app/MullvadVPN-${version}_amd64.deb";
-    sha256 = "fac3896db78cc2ddac81abec8bc0aa324e66b453126ed35a501e422ce64b1362";
+    sha256 = "131z6qlpjwxcn5a62f1f147f2z1xg185jmr0vbin8h0dwa1182vn";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix
index 633d6e63dce..8490c0509a1 100644
--- a/pkgs/applications/networking/mumble/default.nix
+++ b/pkgs/applications/networking/mumble/default.nix
@@ -128,14 +128,14 @@ let
   } source;
 
   source = rec {
-    version = "1.3.0";
+    version = "1.3.2";
 
     # Needs submodules
     src = fetchFromGitHub {
       owner = "mumble-voip";
       repo = "mumble";
       rev = version;
-      sha256 = "0g5ri84gg0x3crhpxlzawf9s9l4hdna6aqw6qbdpx1hjlf5k6g8k";
+      sha256 = "1ljn7h7dr9iyhvq7rdh0prl7hzn9d2hhnxv0ni6dha6f7d9qbfy6";
       fetchSubmodules = true;
     };
   };
diff --git a/pkgs/applications/networking/newsreaders/liferea/default.nix b/pkgs/applications/networking/newsreaders/liferea/default.nix
index f1e8905089c..2632acd73d3 100644
--- a/pkgs/applications/networking/newsreaders/liferea/default.nix
+++ b/pkgs/applications/networking/newsreaders/liferea/default.nix
@@ -1,7 +1,24 @@
-{ stdenv, fetchurl, pkgconfig, intltool, python3Packages, wrapGAppsHook
-, glib, libxml2, libxslt, sqlite, libsoup , webkitgtk, json-glib, gst_all_1
-, libnotify, gtk3, gsettings-desktop-schemas, libpeas, dconf, librsvg
-, gobject-introspection, glib-networking
+{ stdenv
+, fetchurl
+, pkg-config
+, intltool
+, python3Packages
+, wrapGAppsHook
+, glib
+, libxml2
+, libxslt
+, sqlite
+, libsoup
+, webkitgtk
+, json-glib
+, gst_all_1
+, libnotify
+, gtk3
+, gsettings-desktop-schemas
+, libpeas
+, libsecret
+, gobject-introspection
+, glib-networking
 }:
 
 stdenv.mkDerivation rec {
@@ -10,20 +27,42 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${pname}-${version}b.tar.bz2";
-    sha256 = "sha256:03pr1gmiv5y0i92bkhcxr8s311ll91chz19wb96jkixx32xav91d";
+    sha256 = "03pr1gmiv5y0i92bkhcxr8s311ll91chz19wb96jkixx32xav91d";
   };
 
-  nativeBuildInputs = [ wrapGAppsHook python3Packages.wrapPython intltool pkgconfig ];
+  nativeBuildInputs = [
+    wrapGAppsHook
+    python3Packages.wrapPython
+    intltool
+    pkg-config
+  ];
 
   buildInputs = [
-    glib gtk3 webkitgtk libxml2 libxslt sqlite libsoup gsettings-desktop-schemas
-    libpeas gsettings-desktop-schemas json-glib dconf gobject-introspection
-    librsvg glib-networking libnotify
+    glib
+    gtk3
+    webkitgtk
+    libxml2
+    libxslt
+    sqlite
+    libsoup
+    libpeas
+    gsettings-desktop-schemas
+    json-glib
+    gobject-introspection
+    libsecret
+    glib-networking
+    libnotify
   ] ++ (with gst_all_1; [
-    gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad
+    gstreamer
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-bad
   ]);
 
-  pythonPath = with python3Packages; [ pygobject3 pycairo ];
+  pythonPath = with python3Packages; [
+    pygobject3
+    pycairo
+  ];
 
   preFixup = ''
     buildPythonPath "$out $pythonPath"
diff --git a/pkgs/applications/networking/newsreaders/pan/default.nix b/pkgs/applications/networking/newsreaders/pan/default.nix
index 454e19fd897..6dc0630d2db 100644
--- a/pkgs/applications/networking/newsreaders/pan/default.nix
+++ b/pkgs/applications/networking/newsreaders/pan/default.nix
@@ -37,10 +37,11 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A GTK-based Usenet newsreader good at both text and binaries";
     homepage = "http://pan.rebelbase.com/";
-    maintainers = [ stdenv.lib.maintainers.eelco ];
-    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ maintainers.eelco ];
+    platforms = platforms.linux;
+    license = with licenses; [ gpl2 fdl11 ];
   };
 }
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/nym/default.nix b/pkgs/applications/networking/nym/default.nix
index 6bb86c016ba..4dfe1dc5492 100644
--- a/pkgs/applications/networking/nym/default.nix
+++ b/pkgs/applications/networking/nym/default.nix
@@ -9,21 +9,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nym";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "nymtech";
     repo = "nym";
     rev = "v${version}";
-    sha256 = "1q9i24mzys6a9kp9n0bnxr3iwzblabmc6iif3ah75gffyf0cipk4";
+    sha256 = "05bxrpqwwf9spydac0q8sly65q8f1nk13i5fy3p5adr1phzxdnr8";
   };
 
-  cargoSha256 = "0qas544bs4wyllvqf2r5mvqxs1nviwcvxa3rzq10dvjyjm1xyh3k";
+  cargoSha256 = "0mh8cwia86bm68b0wcrmnsq1af5cp6kj1j81nwxb03awnqpxc34n";
 
   nativeBuildInputs = [ pkgconfig ];
 
   buildInputs = [ openssl ];
 
+  checkType = "debug";
+
   /*
   Nym's test presence::converting_mixnode_presence_into_topology_mixnode::it_returns_resolved_ip_on_resolvable_hostname tries to resolve nymtech.net.
   Since there is no external DNS resolution available in the build sandbox, we point cargo and its children (that's what we remove the 'unsetenv' call for) to a hosts file in which we statically resolve nymtech.net.
@@ -49,6 +51,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://nymtech.net";
     license = licenses.asl20;
     maintainers = [ maintainers.ehmry ];
-    platforms = with platforms; intersectLists (linux ++ darwin) (x86 ++ x86_64); # see https://github.com/nymtech/nym/issues/179 for architectures
+    platforms = with platforms; intersectLists (linux ++ darwin) (concatLists [ x86 x86_64 aarch64 arm ]);
   };
 }
diff --git a/pkgs/applications/networking/offrss/default.nix b/pkgs/applications/networking/offrss/default.nix
index 679e966373b..03159a61a40 100644
--- a/pkgs/applications/networking/offrss/default.nix
+++ b/pkgs/applications/networking/offrss/default.nix
@@ -26,11 +26,11 @@ stdenv.mkDerivation {
     sha256 = "1akw1x84jj2m9z60cvlvmz21qwlaywmw18pl7lgp3bj5nw6250p6";
   };
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = "http://vicerveza.homeunix.net/~viric/cgi-bin/offrss";
     description = "Offline RSS/Atom reader";
-    license="AGPLv3+";
-    maintainers = with stdenv.lib.maintainers; [viric];
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ viric ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/openbazaar/client.nix b/pkgs/applications/networking/openbazaar/client.nix
new file mode 100644
index 00000000000..f011f9aef4e
--- /dev/null
+++ b/pkgs/applications/networking/openbazaar/client.nix
@@ -0,0 +1,60 @@
+{ stdenv
+, fetchurl
+, gcc-unwrapped
+, dpkg
+, bash
+, nodePackages
+, makeWrapper
+, electron_6
+}:
+
+let
+  electron = electron_6;
+in
+stdenv.mkDerivation rec {
+  pname = "openbazaar-client";
+  version = "2.4.7";
+
+  src = fetchurl {
+    url = "https://github.com/OpenBazaar/openbazaar-desktop/releases/download/v${version}/openbazaar2client_${version}_amd64.deb";
+    sha256 = "04wwljaiqm8rsdrzngqrzrjzfrjsrfsaa60c904zhbhmsqc7y4f1";
+  };
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  unpackPhase = ''
+    ${dpkg}/bin/dpkg-deb -x $src .
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/{${pname},applications,pixmaps}
+
+    cp -a usr/lib/openbazaar2client/{locales,resources} $out/share/${pname}
+    cp -a usr/share/applications/openbazaar2client.desktop $out/share/applications/${pname}.desktop
+    cp -a usr/share/pixmaps/openbazaar2client.png $out/share/pixmaps/${pname}.png
+
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'openbazaar2client' 'openbazaar-client'
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
+      --add-flags $out/share/${pname}/resources/app \
+      --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ gcc-unwrapped.lib ]}"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Decentralized Peer to Peer Marketplace for Bitcoin - client";
+    homepage = "https://www.openbazaar.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ prusnak ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/networking/openbazaar/default.nix b/pkgs/applications/networking/openbazaar/default.nix
new file mode 100644
index 00000000000..aa341b29224
--- /dev/null
+++ b/pkgs/applications/networking/openbazaar/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "openbazaar";
+  version = "0.14.3";
+
+  suffix = {
+    i686-linux    = "linux-386";
+    x86_64-darwin = "darwin-10.6-amd64";
+    x86_64-linux  = "linux-amd64";
+  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+  src = fetchurl {
+    url = "https://github.com/OpenBazaar/openbazaar-go/releases/download/v${version}/${pname}-go-${suffix}";
+    sha256 = {
+      i686-linux    = "098dgxpz9m4rfswc9yg77s3bvaifd4453s20n8kmh55g5ipgs2x1";
+      x86_64-darwin = "0q989m4zj7x9d6vimmpfkla78hmx2zr7bxm9yg61ir00w60l14jx";
+      x86_64-linux  = "093rwn4nfirknbxz58n16v0l0apj2h0yr63f64fqysmy78883al2";
+    }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+  };
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+  dontStrip = true;
+  dontPatchELF = true;
+  preferLocalBuild = true;
+
+  installPhase = ''
+    install -D $src $out/bin/openbazaard
+  '';
+
+  postFixup = stdenv.lib.optionalString (!stdenv.isDarwin) ''
+    patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      $out/bin/openbazaard
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Decentralized Peer to Peer Marketplace for Bitcoin - daemon";
+    homepage = "https://www.openbazaar.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ prusnak ];
+    platforms = [ "i686-linux" "x86_64-darwin" "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/networking/owncloud-client/default.nix b/pkgs/applications/networking/owncloud-client/default.nix
index 3fc9fedc413..a487da6f5ad 100644
--- a/pkgs/applications/networking/owncloud-client/default.nix
+++ b/pkgs/applications/networking/owncloud-client/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, mkDerivation, cmake, pkgconfig, qtbase, qtkeychain, sqlite }:
+{ lib, stdenv, fetchurl, mkDerivation, cmake, pkgconfig, qtbase, qtkeychain, sqlite, libsecret }:
 
 mkDerivation rec {
   pname = "owncloud-client";
@@ -12,6 +12,10 @@ mkDerivation rec {
   nativeBuildInputs = [ pkgconfig cmake ];
   buildInputs = [ qtbase qtkeychain sqlite ];
 
+  qtWrapperArgs = [
+    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret ]}"
+  ];
+
   cmakeFlags = [
     "-UCMAKE_INSTALL_LIBDIR"
     "-DNO_SHIBBOLETH=1"
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 da7713d7bc6..b8c1991c88f 100644
--- a/pkgs/applications/networking/p2p/magnetico/default.nix
+++ b/pkgs/applications/networking/p2p/magnetico/default.nix
@@ -11,14 +11,13 @@ buildGoModule rec {
     sha256 = "1622xcl5v67lrnkjwbg7g5b5ikrawx7p91jxbj3ixc1za2f3a3fn";
   };
 
-  modSha256 = "193n323xaypm9xkpray68nqcgyf141x8qzpxzwjnrmsgfz8p6wgk";
+  vendorSha256 = "0g4m0jnpy0q64xnflphyc0lmhni0q9448h7grbbr7f1s9lpqsjml";
 
   nativeBuildInputs = [ go-bindata ];
   buildPhase = ''
     make magneticow magneticod
   '';
 
-  doCheck = true;
   checkPhase = ''
     make test
   '';
diff --git a/pkgs/applications/networking/p2p/retroshare/default.nix b/pkgs/applications/networking/p2p/retroshare/default.nix
index ce6d3958c9b..a6a0ab27287 100644
--- a/pkgs/applications/networking/p2p/retroshare/default.nix
+++ b/pkgs/applications/networking/p2p/retroshare/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, libupnp, gpgme, gnome3, glib, libssh, pkgconfig, protobuf, bzip2
-, libXScrnSaver, speex, curl, libxml2, libxslt, sqlcipher, libmicrohttpd, opencv, qmake, ffmpeg
+, libXScrnSaver, speex, curl, libxml2, libxslt, sqlcipher, libmicrohttpd, opencv, qmake, ffmpeg_3
 , qtmultimedia, qtx11extras, qttools }:
 
 stdenv.mkDerivation rec {
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig qmake ];
   buildInputs = [
     speex libupnp gpgme gnome3.libgnome-keyring glib libssh qtmultimedia qtx11extras qttools
-    protobuf bzip2 libXScrnSaver curl libxml2 libxslt sqlcipher libmicrohttpd opencv ffmpeg
+    protobuf bzip2 libXScrnSaver curl libxml2 libxslt sqlcipher libmicrohttpd opencv ffmpeg_3
   ];
 
   preConfigure = ''
diff --git a/pkgs/applications/networking/p2p/stig/default.nix b/pkgs/applications/networking/p2p/stig/default.nix
index 6b1a7ace902..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.10.1a";
+  version = "0.11.2a0";
 
   src = fetchFromGitHub {
     owner = "rndusr";
     repo = "stig";
     rev = "v${version}";
-    sha256 = "076rlial6h1nhwdxf1mx5nf2zld5ci43cadj9wf8xms7zn8s6c8v";
+    sha256 = "05dn6mr86ly65gdqarl16a2jk1bwiw5xa6r4kyag3s6lqsv66iw8";
   };
 
   # urwidtrees 1.0.3 is requested by the developer because 1.0.2 (which is packaged
@@ -34,7 +34,6 @@ python3Packages.buildPythonApplication rec {
     pyxdg
     blinker
     natsort
-    maxminddb
     setproctitle
   ];
 
@@ -53,6 +52,8 @@ python3Packages.buildPythonApplication rec {
     "tests"
     # test_string__month_day_hour_minute_second fails on darwin
     "--deselect=tests/client_test/ttypes_test.py::TestTimestamp::test_string__month_day_hour_minute_second"
+    # TestScrollBarWithScrollable.test_wrapping_bug fails
+    "--deselect=tests/tui_test/scroll_test.py::TestScrollBarWithScrollable::test_wrapping_bug"
   ];
 
   meta = with lib; {
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/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 0e80e1397fa..ab4fc0908ba 100644
--- a/pkgs/applications/networking/p2p/transmission/default.nix
+++ b/pkgs/applications/networking/p2p/transmission/default.nix
@@ -1,47 +1,78 @@
-{ stdenv, fetchurl, pkgconfig, intltool, file, wrapGAppsHook
-, openssl, curl, libevent, inotify-tools, systemd, zlib
-, enableGTK3 ? false, gtk3
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkgconfig
+, openssl
+, curl
+, libevent
+, inotify-tools
+, systemd
+, zlib
+, pcre
+  # Build options
+, enableGTK3 ? false
+, gnome3
+, xorg
+, wrapGAppsHook
+, enableQt ? false
+, qt5
 , enableSystemd ? stdenv.isLinux
 , enableDaemon ? true
 , enableCli ? true
 }:
 
-let inherit (stdenv.lib) optional optionals optionalString; in
+let
+  version = "3.00";
 
-stdenv.mkDerivation rec {
-  name = "transmission-" + optionalString enableGTK3 "gtk-" + version;
-  version = "2.94";
+in stdenv.mkDerivation {
+  pname = "transmission";
+  inherit version;
 
-  src = fetchurl {
-    url = "https://github.com/transmission/transmission-releases/raw/master/transmission-2.94.tar.xz";
-    sha256 = "0zbbj7rlm6m7vb64x68a64cwmijhsrwx9l63hbwqs7zr9742qi1m";
+  src = fetchFromGitHub {
+    owner = "transmission";
+    repo = "transmission";
+    rev = version;
+    sha256 = "0ccg0km54f700x9p0jsnncnwvfnxfnxf7kcm7pcx1cj0vw78924z";
+    fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ pkgconfig ]
-    ++ optionals enableGTK3 [ wrapGAppsHook ];
-  buildInputs = [ intltool file openssl curl libevent zlib ]
-    ++ optionals enableGTK3 [ gtk3 ]
-    ++ optionals enableSystemd [ systemd ]
-    ++ optionals stdenv.isLinux [ inotify-tools ];
-
-  postPatch = ''
-    substituteInPlace ./configure \
-      --replace "libsystemd-daemon" "libsystemd" \
-      --replace "/usr/bin/file"     "${file}/bin/file" \
-      --replace "test ! -d /Developer/SDKs/MacOSX10.5.sdk" "false"
-  '';
-
-  configureFlags = [
-      ("--enable-cli=" + (if enableCli then "yes" else "no"))
-      ("--enable-daemon=" + (if enableDaemon then "yes" else "no"))
-      "--disable-mac" # requires xcodebuild
-    ]
-    ++ optional enableSystemd "--with-systemd-daemon"
-    ++ optional enableGTK3 "--with-gtk";
-
-  NIX_LDFLAGS = optionalString stdenv.isDarwin "-framework CoreFoundation";
-
-  meta = with stdenv.lib; {
+  cmakeFlags =
+    let
+      mkFlag = opt: if opt then "ON" else "OFF";
+    in
+    [
+      "-DENABLE_MAC=OFF" # requires xcodebuild
+      "-DENABLE_GTK=${mkFlag enableGTK3}"
+      "-DENABLE_QT=${mkFlag enableQt}"
+      "-DENABLE_DAEMON=${mkFlag enableDaemon}"
+      "-DENABLE_CLI=${mkFlag enableCli}"
+    ];
+
+  nativeBuildInputs = [
+    pkgconfig
+    cmake
+  ]
+  ++ lib.optionals enableGTK3 [ wrapGAppsHook ]
+  ++ lib.optionals enableQt [ qt5.wrapQtAppsHook ]
+  ;
+
+  buildInputs = [
+    openssl
+    curl
+    libevent
+    zlib
+    pcre
+  ]
+  ++ lib.optionals enableQt [ qt5.qttools qt5.qtbase ]
+  ++ lib.optionals enableGTK3 [ gnome3.gtk xorg.libpthreadstubs ]
+  ++ lib.optionals enableSystemd [ systemd ]
+  ++ lib.optionals stdenv.isLinux [ inotify-tools ]
+  ;
+
+  NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework CoreFoundation";
+
+  meta = {
     description = "A fast, easy and free BitTorrent client";
     longDescription = ''
       Transmission is a BitTorrent client which features a simple interface
@@ -55,9 +86,9 @@ stdenv.mkDerivation rec {
         * Full encryption, DHT, and PEX support
     '';
     homepage = "http://www.transmissionbt.com/";
-    license = licenses.gpl2; # parts are under MIT
-    maintainers = with maintainers; [ astsmtl vcunat wizeman ];
-    platforms = platforms.unix;
+    license = lib.licenses.gpl2; # parts are under MIT
+    maintainers = with lib.maintainers; [ astsmtl vcunat wizeman ];
+    platforms = lib.platforms.unix;
   };
-}
 
+}
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 e62bc21ab5b..00000000000
--- a/pkgs/applications/networking/protonvpn-cli-ng/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, fetchFromGitHub, python3Packages, openvpn, dialog, iptables }:
-
-python3Packages.buildPythonApplication rec {
-  pname = "protonvpn-cli-ng";
-  version = "2.2.2";
-
-  src = fetchFromGitHub {
-    owner = "protonvpn";
-    repo = "${pname}";
-    rev = "v${version}";
-    sha256 = "0ixjb02kj4z79whm1izd8mrn2h0rp9cmw4im1qvp93rahqxdd4n8";
-  };
-
-  propagatedBuildInputs = (with python3Packages; [
-      requests
-      docopt
-      setuptools
-      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 8830881b69f..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 = "09ajpsmgrgjhw7b91id76w84kwk2d678n0b81zzpwq7sgjcm0sb0";
-    i386-linux   = "0vjxbg5hwkqkh600rr75xviwy848r1xw9mxwf6bb6l8b0isvlsgg";
+    x86_64-linux = "19c6blkkqpyjf330v16mdmsh7q6x087p6gw5ag8r2mc6jwq5ixlx";
+    i386-linux   = "0dwc7v4p1dz51444zwn0kds23yi87r4h2d3isfj9xwkn90pxb7in";
   }.${stdenv.hostPlatform.system} or (throw "system ${stdenv.hostPlatform.system} not supported");
 
   arch = {
@@ -22,13 +22,13 @@ let
     icon = "anydesk";
     desktopName = "AnyDesk";
     genericName = description;
-    categories = "Application;Network;";
+    categories = "Network;";
     startupNotify = "false";
   };
 
 in stdenv.mkDerivation rec {
   pname = "anydesk";
-  version = "5.5.5";
+  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..36ae194a165
--- /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
+    systemd.lib
+    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 66f4d386572..52f8decf170 100644
--- a/pkgs/applications/networking/remote/freerdp/default.nix
+++ b/pkgs/applications/networking/remote/freerdp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig, alsaLib, ffmpeg, glib, openssl
+{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig, alsaLib, ffmpeg_3, glib, openssl
 , pcre, zlib, libX11, libXcursor, libXdamage, libXext, libXi, libXinerama
 , libXrandr, libXrender, libXv, libXtst, libxkbcommon, libxkbfile, wayland
 , gstreamer, gst-plugins-base, gst-plugins-good, libunwind, orc, libxslt
@@ -17,13 +17,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "freerdp";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "FreeRDP";
     repo = "FreeRDP";
     rev = version;
-    sha256 = "0905374k4x647052sr27m2hgjcavbxdl0xd8n02vm5xa6whz239j";
+    sha256 = "02zlg5r704zbryx09a5rjjf7q137kj16i9qh25dw9q1y69ri619n";
   };
 
   postPatch = ''
@@ -50,7 +50,7 @@ in stdenv.mkDerivation rec {
     [
       alsaLib
       cups
-      ffmpeg
+      ffmpeg_3
       glib
       gst-plugins-base
       gst-plugins-good
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 92f76e5e6d8..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.3";
+  version = "1.4.7";
 
   src = fetchFromGitLab {
     owner  = "Remmina";
     repo   = "Remmina";
     rev    = "v${version}";
-    sha256 = "11s39xcy80rarkddw31v621zpai1vdr52iam367l69mcbc40xg36";
+    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..a857abcfed1 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.5.6";
 
   src = fetchurl {
     url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb";
-    sha256 = "1g6a7yadvc6gc660m62yibj2hrj7bwy26z5ww0gk6rwqlz048i97";
+    sha256 = "12dzrg9qf5gj9srv482n3jsjar8jhs3s5kkp6v5pvfp8kbmwcbib";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/networking/remote/waypipe/default.nix b/pkgs/applications/networking/remote/waypipe/default.nix
index 03be60a9948..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_4, libva
+, 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,18 +21,14 @@ 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
     # Optional dependencies:
-    mesa lz4 zstd ffmpeg_4 libva
+    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/default.nix b/pkgs/applications/networking/remote/wayvnc/default.nix
index 865710184f9..32373e22b76 100644
--- a/pkgs/applications/networking/remote/wayvnc/default.nix
+++ b/pkgs/applications/networking/remote/wayvnc/default.nix
@@ -1,25 +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";
   };
 
-  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 9b06676b017..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.0";
+  version = "2.7.2";
 
   src = fetchurl {
     url = "https://download-cdn.resilio.com/${version}/linux-${arch}/resilio-sync_${arch}.tar.gz";
     sha256 = {
-      x86_64-linux = "17vw4kyggmi8phm91jx1skkd7vrdhbahibv6d6zm14q87r01a56f";
-      i686-linux   = "0yvy3lif2g4jchcp5q1r5b8ndj8009pcq5js7r0kl20bmmcmzklg";
+      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
new file mode 100644
index 00000000000..864f10553ee
--- /dev/null
+++ b/pkgs/applications/networking/scaleft/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, rpmextract, patchelf, bash }:
+
+stdenv.mkDerivation rec {
+  pname = "scaleft";
+  version = "1.45.3";
+
+  src =
+    fetchurl {
+      url = "http://pkg.scaleft.com/rpm/scaleft-client-tools-${version}-1.x86_64.rpm";
+      sha256 = "02hsn64kg22pgga5ldjwhnqc6jq8w03mwf40dfanln1qz38x9nx1";
+    };
+
+  nativeBuildInputs = [ patchelf rpmextract ];
+
+  libPath =
+    stdenv.lib.makeLibraryPath
+       [ stdenv.cc stdenv.cc.cc.lib ];
+
+  buildCommand = ''
+    mkdir -p $out/bin/
+    cd $out
+    rpmextract $src
+    patchelf \
+      --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+      usr/bin/sft
+    patchelf \
+      --set-rpath ${libPath} \
+      usr/bin/sft
+    ln -s $out/usr/bin/sft $out/bin/sft
+    chmod +x $out/bin/sft
+    patchShebangs $out
+  '';
+
+  meta = with stdenv.lib; {
+    description = "ScaleFT provides Zero Trust software which you can use to secure your internal servers and services";
+    homepage = "https://www.scaleft.com";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ jloyet ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/networking/sniffers/etherape/default.nix b/pkgs/applications/networking/sniffers/etherape/default.nix
index 9c295c27915..4cc4487c90a 100644
--- a/pkgs/applications/networking/sniffers/etherape/default.nix
+++ b/pkgs/applications/networking/sniffers/etherape/default.nix
@@ -2,10 +2,10 @@
 popt, itstool, libxml2 }:
 
 stdenv.mkDerivation rec {
-  name = "etherape-0.9.18";
+  name = "etherape-0.9.19";
   src = fetchurl {
     url = "mirror://sourceforge/etherape/${name}.tar.gz";
-    sha256 = "0y9cfc5iv5zy82j165i9agf45n1ixka064ykdvpdhb07sr3lzhmv";
+    sha256 = "0w63vg2q6if3wvy2md66in8b6cdw9q40hny5xy6yrxky58l4kmg7";
   };
 
   nativeBuildInputs = [ itstool pkgconfig (stdenv.lib.getBin libxml2) ];
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/sngrep/default.nix b/pkgs/applications/networking/sniffers/sngrep/default.nix
index 5c536b8aec2..b48edd69837 100644
--- a/pkgs/applications/networking/sniffers/sngrep/default.nix
+++ b/pkgs/applications/networking/sniffers/sngrep/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sngrep";
-  version = "1.4.6";
+  version = "1.4.7";
 
   src = fetchFromGitHub {
     owner = "irontec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0fj13pim5bfm3a2nr05apspraf29klpmcnhmycklfmrlncq5xqdf";
+    sha256 = "1dx5l48m4634y0zi6wjky412g80lfxqq1nphv7pi1kwvm1k5m5ri";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index 7602cb5fe6a..8d4a6d73120 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -10,8 +10,9 @@ assert withQt  -> qt5  != null;
 with stdenv.lib;
 
 let
-  version = "3.2.3";
+  version = "3.2.5";
   variant = if withQt then "qt" else "cli";
+  pcap = libpcap.override { withBluez = stdenv.isLinux; };
 
 in stdenv.mkDerivation {
   pname = "wireshark-${variant}";
@@ -20,7 +21,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
-    sha256 = "1fpsfjrap7j84sy728yhcr2gad9nq3n5gq03mwrmxnc6ijwf81zh";
+    sha256 = "0h69m9maq6w5gik4gamv4kfqrr37hmi4kpwh225y1k36awm0b2dx";
   };
 
   cmakeFlags = [
@@ -30,12 +31,15 @@ in stdenv.mkDerivation {
     "-DCMAKE_INSTALL_LIBDIR=lib"
   ];
 
+  # Avoid referencing -dev paths because of debug assertions.
+  NIX_CFLAGS_COMPILE = [ "-DQT_NO_DEBUG" ];
+
   nativeBuildInputs = [
     bison cmake flex pkgconfig
   ] ++ optional withQt qt5.wrapQtAppsHook;
 
   buildInputs = [
-    gettext pcre perl libpcap lua5 libssh nghttp2 openssl libgcrypt
+    gettext pcre perl pcap lua5 libssh nghttp2 openssl libgcrypt
     libgpgerror gnutls geoip c-ares python3 glib zlib makeWrapper
   ] ++ optionals withQt  (with qt5; [ qtbase qtmultimedia qtsvg qttools ])
     ++ optionals stdenv.isLinux  [ libcap libnl ]
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/ssb/patchwork-classic/default.nix b/pkgs/applications/networking/ssb/patchwork-classic/default.nix
deleted file mode 100644
index 74a02f47c3b..00000000000
--- a/pkgs/applications/networking/ssb/patchwork-classic/default.nix
+++ /dev/null
@@ -1,106 +0,0 @@
-{ stdenv, fetchurl, lib, makeWrapper,
-  # build dependencies
-  alsaLib, atk, cairo, cups, dbus, expat, fontconfig,
-  freetype, gdk-pixbuf, glib, gnome2, nspr, nss, xorg,
-  glibc, systemd
-}:
-
-stdenv.mkDerivation {
-
-  version = "2.12.0";
-
-  pname = "patchwork-classic";
-
-  src = fetchurl {
-    url    = "https://github.com/ssbc/patchwork-classic-electron/releases/download/v2.12.0/ssb-patchwork-electron_2.12.0_linux-amd64.deb";
-    sha256 = "1rvp07cgqwv7ac319p0qwpfxd7l8f53m1rlvvig7qf7q23fnmbsj";
-  };
-
-  sourceRoot = ".";
-
-  unpackCmd = ''
-    ar p "$src" data.tar.xz | tar xJ
-  '';
-
-  dontBuild = true;
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp -R usr/share opt $out/
-
-    # fix the path in the desktop file
-    substituteInPlace \
-      $out/share/applications/ssb-patchwork-electron.desktop \
-      --replace /opt/ $out/opt/
-
-    # symlink the binary to bin/
-    ln -s $out/opt/ssb-patchwork-electron/ssb-patchwork-electron $out/bin/patchwork-classic
-  '';
-
-
-  preFixup = let
-    packages = [
-      alsaLib
-      atk
-      cairo
-      cups
-      dbus
-      expat
-      fontconfig
-      freetype
-      gdk-pixbuf
-      glib
-      gnome2.GConf
-      gnome2.gtk
-      gnome2.pango
-      nspr
-      nss
-      xorg.libX11
-      xorg.libXScrnSaver
-      xorg.libXcomposite
-      xorg.libXcursor
-      xorg.libXdamage
-      xorg.libXext
-      xorg.libXfixes
-      xorg.libXi
-      xorg.libXrandr
-      xorg.libXrender
-      xorg.libXtst
-      stdenv.cc.cc.lib
-      stdenv.cc.cc
-      glibc
-    ];
-    libPathNative = lib.makeLibraryPath packages;
-    libPath64 = lib.makeSearchPathOutput "lib" "lib64" packages;
-    libPath = "${libPathNative}:${libPath64}";
-  in ''
-    # patch executable
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${libPath}:$out/opt/ssb-patchwork-electron" \
-      $out/opt/ssb-patchwork-electron/ssb-patchwork-electron
-
-    # patch libnode
-    patchelf \
-      --set-rpath "${libPath}" \
-      $out/opt/ssb-patchwork-electron/libnode.so
-
-    # libffmpeg is for some reason  not executable
-    chmod a+x $out/opt/ssb-patchwork-electron/libffmpeg.so
-
-    # fix missing libudev
-    ln -s ${systemd.lib}/lib/libudev.so.1 $out/opt/ssb-patchwork-electron/libudev.so.1
-    wrapProgram $out/opt/ssb-patchwork-electron/ssb-patchwork-electron \
-      --prefix LD_LIBRARY_PATH : $out/opt/ssb-patchwork-electron
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Electron wrapper for Patchwork Classic: run as a desktop app outside the browser";
-    homepage    = "https://github.com/ssbc/patchwork-classic-electron";
-    license     = licenses.gpl3;
-    maintainers = with maintainers; [ mrVanDalo ];
-    platforms   = platforms.linux;
-  };
-}
diff --git a/pkgs/applications/networking/sync/onedrive/default.nix b/pkgs/applications/networking/sync/onedrive/default.nix
index 636761d2aaf..be255a6c146 100644
--- a/pkgs/applications/networking/sync/onedrive/default.nix
+++ b/pkgs/applications/networking/sync/onedrive/default.nix
@@ -1,21 +1,37 @@
-{ stdenv, fetchFromGitHub, dmd, pkgconfig, curl, sqlite, libnotify }:
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, ldc, installShellFiles, pkgconfig
+, curl, sqlite, libnotify
+, withSystemd ? stdenv.isLinux, systemd ? null }:
 
 stdenv.mkDerivation rec {
   pname = "onedrive";
-  version = "2.3.13";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "abraunegg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0bcsrfh1g7bdlcp0zjn6np88qzpn5frv61lzxz9b2ayxf7wyybvi";
+    sha256 = "10s33p1xzq9c5n1bxv9n7n31afxgx9i6c17w0xgxdrma75micm3a";
   };
 
-  nativeBuildInputs = [ dmd pkgconfig ];
+  nativeBuildInputs = [ autoreconfHook ldc installShellFiles pkgconfig ];
 
-  buildInputs = [ curl sqlite libnotify ];
+  buildInputs = [
+    curl sqlite libnotify
+  ] ++ lib.optional withSystemd systemd;
 
-  configureFlags = [ "--enable-notifications" ];
+  configureFlags = [
+    "--enable-notifications"
+  ] ++ lib.optionals withSystemd [
+    "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
+    "--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user"
+  ];
+
+  # we could also pass --enable-completions to configure but we would then have to
+  # figure out the paths manually and pass those along.
+  postInstall = ''
+    installShellCompletion --bash --name ${pname}  contrib/completions/complete.bash
+    installShellCompletion --zsh  --name _${pname} contrib/completions/complete.zsh
+  '';
 
   meta = with stdenv.lib; {
     description = "A complete tool to interact with OneDrive on Linux";
diff --git a/pkgs/applications/networking/sync/rclone/default.nix b/pkgs/applications/networking/sync/rclone/default.nix
index 2fde398b2f5..db05056e7e1 100644
--- a/pkgs/applications/networking/sync/rclone/default.nix
+++ b/pkgs/applications/networking/sync/rclone/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "rclone";
-  version = "1.51.0";
+  version = "1.52.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0z4kaq6wnj5dgl52g7f86phxlvnk5pbpda7prgh3hahpyhxj0z7d";
+    sha256 = "1bf3rhs4dcb8vkzs4a6pk5xrhnkhqsrbf4xrhcqf407r668gdav1";
   };
 
   goPackagePath = "github.com/rclone/rclone";
@@ -28,7 +28,7 @@ buildGoPackage rec {
     in
       ''
         installManPage $src/rclone.1
-        for shell in bash zsh; do
+        for shell in bash zsh fish; do
           ${rcloneBin}/bin/rclone genautocomplete $shell rclone.$shell
           installShellCompletion rclone.$shell
         done
@@ -38,7 +38,6 @@ buildGoPackage rec {
     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 fa3290f7485..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.5.0";
+      version = "1.8.0";
       name = "${stname}-${version}";
 
       src = fetchFromGitHub {
         owner  = "syncthing";
         repo   = "syncthing";
         rev    = "v${version}";
-        sha256 = "0yy31rfvr9d6kidfvvy36ljxlc14x5ir3ln19zg4k02hdqn0xkpj";
+        sha256 = "047y2sy9zif19dlh098ihaski9f3b971q3mmqg97qgfzpa8z8fpr";
       };
 
-      modSha256 = "1vs7lxlqd7jr4r9xkk7w7k6gxzjmm7ic0a1scfpx8rcr5swa9cq1";
+      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
new file mode 100644
index 00000000000..2019e1c2b81
--- /dev/null
+++ b/pkgs/applications/networking/termius/default.nix
@@ -0,0 +1,68 @@
+{ atomEnv
+, autoPatchelfHook
+, dpkg
+, fetchurl
+, makeDesktopItem
+, makeWrapper
+, stdenv
+, udev
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "termius";
+  version = "6.1.1";
+
+  src = fetchurl {
+    url = "https://deb.termius.com/pool/main/t/termius-app/termius-app_${version}_amd64.deb";
+    sha256 = "1z3ry9jjiyqn41h38hyrx27c2cz8j39qa6i6f0f79p6pqfv93p70";
+  };
+
+  desktopItem = makeDesktopItem {
+    categories = "Network;";
+    comment = "The SSH client that works on Desktop and Mobile";
+    desktopName = "Termius";
+    exec = "termius-app";
+    genericName = "Cross-platform SSH client";
+    icon = "termius-app";
+    name = "termius-app";
+  };
+
+  dontBuild = true;
+  dontConfigure = true;
+  dontPatchELF = true;
+  dontWrapGApps = true;
+
+  nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper wrapGAppsHook ];
+
+  buildInputs = atomEnv.packages;
+
+  unpackPhase = "dpkg-deb -x $src .";
+
+  installPhase = ''
+    mkdir -p "$out/bin"
+    cp -R "opt" "$out"
+    cp -R "usr/share" "$out/share"
+    chmod -R g-w "$out"
+
+    # Desktop file
+    mkdir -p "$out/share/applications"
+    cp "${desktopItem}/share/applications/"* "$out/share/applications"
+  '';
+
+  runtimeDependencies = [ udev.lib ];
+
+  postFixup = ''
+    makeWrapper $out/opt/Termius/termius-app $out/bin/termius-app \
+      "''${gappsWrapperArgs[@]}"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A cross-platform SSH client with cloud data sync and more";
+    homepage = "https://termius.com/";
+    downloadPage = "https://termius.com/linux/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ filalex77 ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/networking/testssl/default.nix b/pkgs/applications/networking/testssl/default.nix
index 557e69b1ee1..197756d8ace 100644
--- a/pkgs/applications/networking/testssl/default.nix
+++ b/pkgs/applications/networking/testssl/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "testssl.sh";
-  version = "3.0.1";
+  version = "3.0.2";
 
   src = fetchFromGitHub {
     owner = "drwetter";
     repo = pname;
     rev = version;
-    sha256 = "13vvkn1hna1d1mj8ffg7psrv6ha2jcjrf50qrsb0v0p8hszibavy";
+    sha256 = "0vfpj3g3il3imbydx3j8gx1pgzrxi0czcl9jmi749vnkf5mkmh8w";
   };
 
   nativeBuildInputs = [ makeWrapper ];
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 4160e70b9c4..c287abb0de2 100644
--- a/pkgs/applications/networking/websocketd/default.nix
+++ b/pkgs/applications/networking/websocketd/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "1qc4yi4kwy7bfi3fb17w58ff0i95yi6m4syldh8j79930syr5y8q";
   };
 
-  modSha256 = "18hamj557ln8k3vmvcrpvnydjr1dy7zi9490iacwdldw5vp870xs";
+  vendorSha256 = "05k31z4h3b327mh940zh52im4xfk7kf5phb8b7xp4l9bgckhz4lb";
+
+  doCheck = false;
 
   meta = with lib; {
     description = "Turn any program that uses STDIN/STDOUT into a WebSocket server";
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/networking/znc/default.nix b/pkgs/applications/networking/znc/default.nix
index e9c3acdc11d..13803556a47 100644
--- a/pkgs/applications/networking/znc/default.nix
+++ b/pkgs/applications/networking/znc/default.nix
@@ -13,11 +13,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "znc";
-  version = "1.7.5";
+  version = "1.8.1";
 
   src = fetchurl {
     url = "https://znc.in/releases/archive/${pname}-${version}.tar.gz";
-    sha256 = "08a7yb2xs85hyyz8dpzfbsfjwj2r6kcii022lj3l4rf8hl9ix558";
+    sha256 = "0hb1v167aa6gv5bcwz352l6b8gnd74ymjw92y4x882l099hzg59i";
   };
 
   nativeBuildInputs = [ pkgconfig ];
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/atlassian-cli/default.nix b/pkgs/applications/office/atlassian-cli/default.nix
index 22eee857b20..3cc62aa9dc1 100644
--- a/pkgs/applications/office/atlassian-cli/default.nix
+++ b/pkgs/applications/office/atlassian-cli/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "atlassian-cli";
-  version = "9.2.0";
+  version = "9.3.0";
   
   src = fetchzip {
     url  = "https://bobswift.atlassian.net/wiki/download/attachments/16285777/${pname}-${version}-distribution.zip";
-    sha256  = "0rdnbx3zfz3lpgka7bb8jzapkr81l2yvgsbmn8hrhva5k61xwx3d";
+    sha256  = "1gsyxkkx04vhp8ii0xbln5h8wa8x3dj6xhh2fyjs4z0bil4hlf06";
     extraPostFetch = "chmod go-w $out";
   };
   
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/elementary-planner/default.nix b/pkgs/applications/office/elementary-planner/default.nix
index 28a470162ce..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.3.5";
+  version = "2.4.6";
 
   src = fetchFromGitHub {
     owner = "alainm23";
     repo = "planner";
     rev = version;
-    sha256 = "15d51sqb3k59jjishsw1fq5ib50jmhlk194y3nga329damfv8bmy";
+    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
new file mode 100644
index 00000000000..889f363dfb9
--- /dev/null
+++ b/pkgs/applications/office/espanso/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, pkgconfig
+, extra-cmake-modules
+, libX11
+, libXi
+, libXtst
+, libnotify
+, openssl
+, xclip
+, xdotool
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "espanso";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "federico-terzi";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "11xdnn1iwpx58s3wvjb6dkgfc6dzsblzb6fngc0np5vx8r2pccpg";
+  };
+
+  cargoSha256 = "1yjpqjfrixscg52yhalybgp734w3sdqg5hxka8ppcvz7lp3w5b1s";
+
+  nativeBuildInputs = [
+    extra-cmake-modules
+    pkgconfig
+  ];
+
+  buildInputs = [
+    libX11
+    libXtst
+    libXi
+    libnotify
+    openssl
+    xdotool
+  ];
+
+  # Some tests require networking
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Cross-platform Text Expander written in Rust";
+    homepage = "https://espanso.org";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ kimat ];
+
+    longDescription = ''
+      Espanso detects when you type a keyword and replaces it while you're typing.
+    '';
+  };
+}
diff --git a/pkgs/applications/office/fava/default.nix b/pkgs/applications/office/fava/default.nix
index 8e1bb0d76d9..b33d978ee0b 100644
--- a/pkgs/applications/office/fava/default.nix
+++ b/pkgs/applications/office/fava/default.nix
@@ -5,16 +5,16 @@ let
 in
 buildPythonApplication rec {
   pname = "fava";
-  version = "1.14";
+  version = "1.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "181ypq2p7aaq2b76s55hxxbm1hykzf45mjjgm500h4dsaa167dqy";
+    sha256 = "037fhimfjiqay28wg7hd5sm7r0935ynw9d905iszn965ihr1qsgz";
   };
 
   checkInputs = [ python3.pkgs.pytest ];
   propagatedBuildInputs = with python3.pkgs;
-    [ 
+    [
       Babel
       cheroot
       flaskbabel
@@ -30,8 +30,9 @@ buildPythonApplication rec {
     ];
 
   # CLI test expects fava on $PATH.  Not sure why static_url fails.
+  # the entry_slices and render_entries requires other files to pass
   checkPhase = ''
-    py.test tests -k 'not cli and not static_url'
+    py.test tests -k 'not cli and not static_url and not entry_slice and not render_entries'
   '';
 
   meta = {
diff --git a/pkgs/applications/office/flexibee/default.nix b/pkgs/applications/office/flexibee/default.nix
index c215b9ef637..452fc7aecdb 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.1.2";
   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 = "1a382lwyscvl5gdax5vs0shzmbnhjgggrv0hcwid8kf2s98diw5n";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix
index a8630381ebf..641d400886f 100644
--- a/pkgs/applications/office/gnucash/default.nix
+++ b/pkgs/applications/office/gnucash/default.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
       --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share/gsettings-schemas/${pname}-${version}" \
       --prefix XDG_DATA_DIRS : "${hicolor-icon-theme}/share" \
       --prefix PERL5LIB ":" "$PERL5LIB" \
+      --set GNC_DBD_DIR ${libdbiDrivers}/lib/dbd \
       --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules"
   '';
 
diff --git a/pkgs/applications/office/gnumeric/default.nix b/pkgs/applications/office/gnumeric/default.nix
index 67618e0e4f9..40351ba64a1 100644
--- a/pkgs/applications/office/gnumeric/default.nix
+++ b/pkgs/applications/office/gnumeric/default.nix
@@ -7,11 +7,11 @@ let
   inherit (python3Packages) python pygobject3;
 in stdenv.mkDerivation rec {
   pname = "gnumeric";
-  version = "1.12.46";
+  version = "1.12.47";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "9fdc67377af52dfe69a7db4f533938024a75f454fc5d25ab43b8e6739be0b5e1";
+    sha256 = "1khrf72kiq50y8b5prbj2207k9shn36h2b2i588cc4wa28s9y5a0";
   };
 
   configureFlags = [ "--disable-component" ];
diff --git a/pkgs/applications/office/gtg/default.nix b/pkgs/applications/office/gtg/default.nix
new file mode 100644
index 00000000000..d990bc07ad2
--- /dev/null
+++ b/pkgs/applications/office/gtg/default.nix
@@ -0,0 +1,68 @@
+{ 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
+  ];
+
+  format = "other";
+  strictDeps = false; # gobject-introspection does not run with strictDeps (https://github.com/NixOS/nixpkgs/issues/56943)
+
+  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/homebank/default.nix b/pkgs/applications/office/homebank/default.nix
index a34eadde36e..1f60d7df927 100644
--- a/pkgs/applications/office/homebank/default.nix
+++ b/pkgs/applications/office/homebank/default.nix
@@ -2,10 +2,10 @@
 , libsoup, gnome3 }:
 
 stdenv.mkDerivation rec {
-  name = "homebank-5.4.1";
+  name = "homebank-5.4.2";
   src = fetchurl {
     url = "http://homebank.free.fr/public/${name}.tar.gz";
-    sha256 = "1m1hpaby6zi8y0vmj2ljklp34a55l2qsr7pxw3852k2m4v5n9zsx";
+    sha256 = "0bkjvd819kw9cwmr3macggbg8yil3yc8v2za8pjrl6g746s89kn6";
   };
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
diff --git a/pkgs/applications/office/jabref/default.nix b/pkgs/applications/office/jabref/default.nix
index 01ba190cf31..7ab53b19ce0 100644
--- a/pkgs/applications/office/jabref/default.nix
+++ b/pkgs/applications/office/jabref/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     name = "jabref";
     desktopName = "JabRef";
     genericName = "Bibliography manager";
-    categories = "Application;Office;";
+    categories = "Office;";
     icon = "jabref";
     exec = "jabref";
   };
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/kmymoney/default.nix b/pkgs/applications/office/kmymoney/default.nix
index 6137a4dc1ad..e15615f78a3 100644
--- a/pkgs/applications/office/kmymoney/default.nix
+++ b/pkgs/applications/office/kmymoney/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kmymoney";
-  version = "5.0.8";
+  version = "5.1.0";
 
   src = fetchurl {
     url = "mirror://kde/stable/kmymoney/${version}/src/${pname}-${version}.tar.xz";
-    sha256 = "1h6l01a08f1xgk4dfpndl7rmgbp9npm58qi760jwl2gggprwwsxc";
+    sha256 = "0l8kywq77yaf1bqgdqswrai9ws6a2l11drg0wgyi7f8js7qnif9d";
   };
 
   # Hidden dependency that wasn't included in CMakeLists.txt:
diff --git a/pkgs/applications/office/ledger/default.nix b/pkgs/applications/office/ledger/default.nix
index 6ac092f27e2..a0a558f5ed8 100644
--- a/pkgs/applications/office/ledger/default.nix
+++ b/pkgs/applications/office/ledger/default.nix
@@ -1,37 +1,48 @@
-{ 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")
+  ] ++ lib.optionals (usePython && stdenv.isDarwin) [
+    # Fix python lookup on Darwin. Not necessary after
+    # https://github.com/NixOS/nixpkgs/pull/94090 lands in master
+    "-DPython_ROOT_DIR=${python}"
+  ];
 
-  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 976fc0fcd2d..7e20c0bb4fe 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -1,21 +1,22 @@
-{ stdenv, fetchurl, fetchpatch, pam, python3, libxslt, perl, ArchiveZip, gettext
+{ stdenv, fetchurl, fetchpatch, lib, pam, python3, libxslt, perl, ArchiveZip, gettext
 , IOCompress, zlib, libjpeg, expat, freetype, libwpd
 , libxml2, db, curl, fontconfig, libsndfile, neon
-, bison, flex, zip, unzip, gtk3, gtk2, libmspack, getopt, file, cairo, which
+, bison, flex, zip, unzip, gtk3, libmspack, getopt, file, cairo, which
 , icu, boost, jdk, ant, cups, xorg, libcmis, fontforge
 , openssl, gperf, cppunit, poppler, utillinux
 , librsvg, libGLU, libGL, bsh, CoinMP, libwps, libabw, libmysqlclient
 , autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
-, libwpg, dbus-glib, qt4, clucene_core, libcdr, lcms, vigra
+, libwpg, dbus-glib, clucene_core, libcdr, lcms, vigra
 , unixODBC, mdds, sane-backends, mythes, libexttextcat, libvisio
 , fontsConf, pkgconfig, bluez5, libtool, carlito
 , libatomic_ops, graphite2, harfbuzz, libodfgen, libzmf
 , 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
+, kdeIntegration ? false, mkDerivation ? null, qtbase ? null, qtx11extras ? null
+, ki18n ? null, kconfig ? null, kcoreaddons ? null, kio ? null, kwindowsystem ? null
 , variant ? "fresh"
 } @ args:
 
@@ -28,9 +29,10 @@ let
 
   inherit (primary-src) major minor subdir version;
 
-  lib = stdenv.lib;
   langsSpaces = lib.concatStringsSep " " langs;
 
+  mkDrv = if kdeIntegration then mkDerivation else stdenv.mkDerivation;
+
   srcs = {
     third_party =
       map (x : ((fetchurl {inherit (x) url sha256 name;}) // {inherit (x) md5name md5;}))
@@ -47,7 +49,7 @@ let
     translations = primary-src.translations;
     help = primary-src.help;
   };
-in (stdenv.mkDerivation rec {
+in (mkDrv rec {
   pname = "libreoffice";
   inherit version;
 
@@ -57,8 +59,9 @@ in (stdenv.mkDerivation rec {
 
   # For some reason librdf_redland sometimes refers to rasqal.h instead
   # of rasqal/rasqal.h
-  NIX_CFLAGS_COMPILE = "-I${librdf_rasqal}/include/rasqal"
-    + stdenv.lib.optionalString stdenv.isx86_64 " -mno-fma";
+  NIX_CFLAGS_COMPILE = [
+    "-I${librdf_rasqal}/include/rasqal"
+  ] ++ lib.optional stdenv.isx86_64 "-mno-fma";
 
   patches = [
     ./xdg-open-brief.patch
@@ -84,8 +87,20 @@ in (stdenv.mkDerivation rec {
     tar -xf ${srcs.translations}
   '';
 
-  postPatch = ''
-    sed -e 's@/usr/bin/xdg-open@xdg-open@g' -i shell/source/unix/exec/shellexec.cxx
+  ### QT/KDE
+  #
+  # We have to resort to the ugly patching of configure.ac as it assumes that
+  # the first directory that contains headers and libraries during the check
+  # contains all the relevant headers/libs which doesn't work with both as they
+  # are in multiple directories due to each having their own derivation.
+  postPatch = let
+    inc = e: path:
+      "${lib.getDev e}/include/KF5/${path}";
+    libs = list:
+      lib.concatMapStringsSep " " (e: "-L${lib.getLib e}/lib") list;
+  in ''
+    substituteInPlace shell/source/unix/exec/shellexec.cxx \
+      --replace /usr/bin/xdg-open ${if kdeIntegration then "kde-open5" else "xdg-open"}
 
     # configure checks for header 'gpgme++/gpgmepp_version.h',
     # and if it is found (no matter where) uses a hardcoded path
@@ -96,9 +111,24 @@ in (stdenv.mkDerivation rec {
     substituteInPlace configure.ac --replace \
       'GPGMEPP_CFLAGS=-I/usr/include/gpgme++' \
       'GPGMEPP_CFLAGS=-I${gpgme.dev}/include/gpgme++'
+  '' + lib.optionalString kdeIntegration ''
+      substituteInPlace configure.ac \
+        --replace '$QT5INC'             ${qtbase.dev}/include \
+        --replace '$QT5LIB'             ${qtbase.out}/lib \
+        --replace '-I$qt5_incdir '      '-I${qtx11extras.dev}/include '\
+        --replace '-L$qt5_libdir '      '${libs [ qtbase qtx11extras ]} ' \
+        --replace '$KF5INC'             ${kcoreaddons.dev}/include \
+        --replace '$KF5LIB'             ${kcoreaddons.out}/lib \
+        --replace '$kf5_incdir/KCore'   ${inc kcoreaddons "KCore"} \
+        --replace '$kf5_incdir/KI18n'   ${inc ki18n "KI18n"} \
+        --replace '$kf5_incdir/KConfig' ${inc kconfig "KConfig"} \
+        --replace '$kf5_incdir/KWindow' ${inc kwindowsystem "KWindow"} \
+        --replace '$kf5_incdir/KIO'     ${inc kio "KIO"} \
+        --replace '-L$kf5_libdir '      '${libs [ kconfig kcoreaddons ki18n kio kwindowsystem ]} '
   '';
 
-  QT4DIR = qt4;
+  dontUseCmakeConfigure = true;
+  dontUseCmakeBuildDir = true;
 
   preConfigure = ''
     configureFlagsArray=(
@@ -264,14 +294,16 @@ in (stdenv.mkDerivation rec {
     ln -s $out/lib/libreoffice/share/xdg $out/share/applications
 
     for f in $out/share/applications/*.desktop; do
-      substituteInPlace "$f" --replace "Exec=libreofficedev${major}.${minor}" "Exec=libreoffice"
-      substituteInPlace "$f" --replace "Exec=libreoffice${major}.${minor}" "Exec=libreoffice"
-      substituteInPlace "$f" --replace "Exec=libreoffice" "Exec=libreoffice"
+      substituteInPlace "$f" \
+        --replace "Exec=libreofficedev${major}.${minor}" "Exec=libreoffice" \
+        --replace "Exec=libreoffice${major}.${minor}"    "Exec=libreoffice"
     done
 
     cp -r sysui/desktop/icons  "$out/share"
     sed -re 's@Icon=libreoffice(dev)?[0-9.]*-?@Icon=@' -i "$out/share/applications/"*.desktop
 
+    qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH")
+
     mkdir -p $dev
     cp -r include $dev
   '';
@@ -335,29 +367,35 @@ in (stdenv.mkDerivation rec {
     "--without-system-libstaroffice"
     "--without-system-libepubgen"
     "--without-system-libqxp"
-    "--without-system-mdds"
+    "--without-system-mdds" # we have mdds but our version is too new
     # https://github.com/NixOS/nixpkgs/commit/5c5362427a3fa9aefccfca9e531492a8735d4e6f
     "--without-system-orcus"
     "--without-system-qrcodegen"
     "--without-system-xmlsec"
-  ];
+  ] ++ lib.optionals kdeIntegration [
+    "--enable-kf5"
+    "--enable-qt5"
+    "--enable-gtk3-kde5"
+  ] ++ lib.optional (lib.versionOlder version "6.4") "--disable-gtk"; # disables GTK2, GTK3 is still there
 
   checkPhase = ''
     make unitcheck
     make slowcheck
   '';
 
-  nativeBuildInputs = [ wrapGAppsHook gdb fontforge autoconf automake bison pkgconfig libtool ];
+  nativeBuildInputs = [
+    gdb fontforge autoconf automake bison pkgconfig libtool
+  ] ++ lib.optional (!kdeIntegration) wrapGAppsHook;
 
   buildInputs = with xorg;
     [ ant ArchiveZip boost cairo clucene_core
       IOCompress cppunit cups curl db dbus-glib expat file flex fontconfig
-      freetype getopt gperf gtk3 gtk2
+      freetype getopt gperf gtk3
       hunspell icu jdk lcms libcdr libexttextcat unixODBC libjpeg
       libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
       libXaw libXext libXi libXinerama libxml2 libxslt libXtst
-      libXdmcp libpthreadstubs libGLU libGL mythes gst_all_1.gstreamer
-      gst_all_1.gst-plugins-base glib libmysqlclient
+      libXdmcp libpthreadstubs libGLU libGL mythes
+      glib libmysqlclient
       neon nspr nss openldap openssl pam perl pkgconfig poppler
       python3 sane-backends unzip vigra which zip zlib
       mdds bluez5 libcmis libwps libabw libzmf
@@ -365,7 +403,8 @@ in (stdenv.mkDerivation rec {
       librevenge libe-book libmwaw glm glew ncurses epoxy
       libodfgen CoinMP librdf_rasqal gnome3.adwaita-icon-theme gettext
     ]
-    ++ lib.optional kdeIntegration kdelibs4;
+    ++ (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good ])
+    ++ lib.optional kdeIntegration [ qtbase qtx11extras kcoreaddons kio ];
 
   passthru = {
     inherit srcs jdk;
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
new file mode 100644
index 00000000000..73f50998f63
--- /dev/null
+++ b/pkgs/applications/office/portfolio/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, autoPatchelfHook
+, fetchurl
+, glibc
+, gcc-unwrapped
+, gtk3
+, jre
+, libsecret
+, makeDesktopItem
+, webkitgtk
+, wrapGAppsHook
+}:
+let
+  desktopItem = makeDesktopItem {
+    name = "Portfolio";
+    exec = "portfolio";
+    icon = "portfolio";
+    comment = "Calculate Investment Portfolio Performance";
+    desktopName = "Portfolio Performance";
+    categories = "Office;";
+  };
+
+  runtimeLibs = stdenv.lib.makeLibraryPath [ gtk3 webkitgtk ];
+in
+stdenv.mkDerivation rec {
+  pname = "PortfolioPerformance";
+  version = "0.47.0";
+
+  src = fetchurl {
+    url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
+    sha256 = "0l328wvikdmm2i0kbpv9qwd0mkbs24y89cgfg28swhcvpywjpk36";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glibc
+    gcc-unwrapped
+    libsecret
+  ];
+
+  installPhase = ''
+    mkdir -p $out/portfolio
+    cp -av ./* $out/portfolio
+
+    makeWrapper $out/portfolio/PortfolioPerformance $out/bin/portfolio \
+      --prefix LD_LIBRARY_PATH : "${runtimeLibs}" \
+      --prefix PATH : ${jre}/bin
+
+    # Create desktop item
+    mkdir -p $out/share/applications
+    cp ${desktopItem}/share/applications/* $out/share/applications
+    mkdir -p $out/share/pixmaps
+    ln -s $out/portfolio/icon.xpm $out/share/pixmaps/portfolio.xpm
+  '';
+
+  meta = with stdenv.lib; {
+    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 oyren ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/office/scribus/unstable.nix b/pkgs/applications/office/scribus/unstable.nix
index aa0c2dee979..ff69329140b 100644
--- a/pkgs/applications/office/scribus/unstable.nix
+++ b/pkgs/applications/office/scribus/unstable.nix
@@ -40,7 +40,7 @@ mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-devel/${pname}-${version}.tar.xz";
-    sha256 = "eQiyGmzoQyafWM7fX495GJMlfmIBzOX73ccNrKL+P3E=";
+    sha256 = "0w9zzsiaq3f7vpxybk01c9z2b4qqg67mzpyfb2gjchz8dhdb423r";
   };
 
   patches = [
@@ -66,17 +66,17 @@ mkDerivation rec {
     # Formating changes needed for the Poppler 0.86 patch to apply
     (fetchpatch {
       url = "https://github.com/scribusproject/scribus/commit/58613b5ce44335f202a55ab15ed303d97fe274cb.patch";
-      sha256 = "qwmVAZVYCijLNMVGwnOLJE8223vcRwPWfEvNKiDjw5o=";
+      sha256 = "16n3wch2mkabgkb06iywggdkckr4idrw4in56k5jh2jqjl0ra2db";
     })
     (fetchpatch {
       url = "https://github.com/scribusproject/scribus/commit/24aba508aac3f672f5f8cd629744a3b71e58ec37.patch";
-      sha256 = "sha256-OY+EIiGBTg2aIAmZOnkI8DPZVZYqFZAKnD7ychge1Dw=";
+      sha256 = "0g6l3qc75wiykh59059ajraxjczh11wkm68942d0skl144i893rr";
       includes = [ "scribus/plugins/import/pdf/*" ];
     })
     # fix build with Poppler 0.86
     (fetchpatch {
       url = "https://github.com/scribusproject/scribus/commit/67f8771aaff2f55d61b8246f420e762f4b526944.patch";
-      sha256 = "51z+BYKhbH8a9dFph8X60NGpiogSb+5tOhW2d+m/X9M=";
+      sha256 = "1lszpzlpgdhm79nywvqji25aklfhzb2qfsfiyld7yv51h82zwp77";
     })
   ];
 
diff --git a/pkgs/applications/office/skrooge/default.nix b/pkgs/applications/office/skrooge/default.nix
index f3e6f622996..66d028144ff 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.21.1";
+  version = "2.22.1";
 
   src = fetchurl {
     url = "http://download.kde.org/stable/skrooge/${pname}-${version}.tar.xz";
-    sha256 = "0lv953i7cybzbxr5gx6g4libdcjj086jf152mwrwvx1avrpjavb8";
+    sha256 = "194vwnc2fi7cgdhasxpr1gxjqqsiqadhadvv43d0lxaxys6f360h";
   };
 
   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 77634efebe8..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 = "976";
-  edition = "2018";
   suiteName = "SoftMaker Office";
 
   src = fetchurl {
+    inherit (officeVersion) sha256;
     url = "https://www.softmaker.net/down/softmaker-office-${edition}-${version}-amd64.tgz";
-    sha256 = "0j6zm0cbxrcgm7glk84hvvbp4z0ys6v8bkwwhl5r7dbphyi72fw8";
   };
 
   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/todoman/default.nix b/pkgs/applications/office/todoman/default.nix
index e18a11a7448..092a776ae60 100644
--- a/pkgs/applications/office/todoman/default.nix
+++ b/pkgs/applications/office/todoman/default.nix
@@ -5,11 +5,11 @@ let
 in
 buildPythonApplication rec {
   pname = "todoman";
-  version = "3.7.0";
+  version = "3.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16brw2zhm5vamffin6qjb0lxjlj3ba40vaficl851nw2xh2mrdhy";
+    sha256 = "1aq7f63bhs9dnwzp15nfr07f2ki6s3lnqfap3b09rhchn6lfznwb";
   };
 
     LOCALE_ARCHIVE = stdenv.lib.optionalString stdenv.isLinux
diff --git a/pkgs/applications/office/trilium/default.nix b/pkgs/applications/office/trilium/default.nix
index fb7f88829f6..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.1";
+  version = "0.43.3";
 
   desktopSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
-    sha256 = "0xcbkm6z1a0jh3qywlwcjk6l302cxgdfcq8sw30vbnz99cyarpvz";
+    sha256 = "1k9vcs7pwa89bzivqp0gfs45jzqw216fpypg3ja4n2dzn4qkv2as";
   };
 
   serverSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
-    sha256 = "012l36z0n3fcdajj3v4w2bcb1619sdhg6cvy3y89b6rxl0h2wdiw";
+    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/tudu/default.nix b/pkgs/applications/office/tudu/default.nix
index cb3b2111372..6094e02c5c1 100644
--- a/pkgs/applications/office/tudu/default.nix
+++ b/pkgs/applications/office/tudu/default.nix
@@ -1,20 +1,25 @@
 { stdenv, fetchurl, ncurses }:
-stdenv.mkDerivation rec {
 
+stdenv.mkDerivation rec {
   pname = "tudu";
-  version = "0.10.3";
+  version = "0.10.4";
 
   src = fetchurl {
     url = "https://code.meskio.net/tudu/${pname}-${version}.tar.gz";
-    sha256 = "0140pw457cd05ysws998yhd3b087j98q8m0g3s4br942l65b8n2y";
+    sha256 = "14srqn968ii3sr4v6xc5zzs50dmm9am22lrm57j7n0rhjclwbssy";
   };
 
   buildInputs = [ ncurses ];
 
-  meta = {
+  preConfigure = stdenv.lib.optionalString stdenv.cc.isClang ''
+    substituteInPlace configure \
+      --replace 'echo "main()' 'echo "int main()'
+  '';
+
+  meta = with stdenv.lib; {
     description = "ncurses-based hierarchical todo list manager with vim-like keybindings";
     homepage = "https://code.meskio.net/tudu/";
-    license = stdenv.lib.licenses.gpl3;
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.gpl3;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/office/watson/default.nix b/pkgs/applications/office/watson/default.nix
index 52c94ce378e..00fa9416e17 100644
--- a/pkgs/applications/office/watson/default.nix
+++ b/pkgs/applications/office/watson/default.nix
@@ -1,15 +1,16 @@
-{ stdenv, pythonPackages, fetchpatch, installShellFiles }:
+{ stdenv, fetchFromGitHub, pythonPackages, installShellFiles }:
 
 with pythonPackages;
 
 buildPythonApplication rec {
   pname = "watson";
-  version = "1.8.0";
+  version = "1.10.0";
 
-  src = fetchPypi {
-    inherit version;
-    pname = "td-watson";
-    sha256 = "1ip66jhbcqifdw1avbhngwym0vv7fsqxgbph11da5wlqwfwp060n";
+  src = fetchFromGitHub {
+    owner = "TailorDev";
+    repo = "Watson";
+    rev = version;
+    sha256 = "1s0k86ldqky6avwjaxkw1y02wyf59qwqldcahy3lhjn1b5dgsb3s";
   };
 
   checkPhase = ''
@@ -21,14 +22,14 @@ buildPythonApplication rec {
     installShellCompletion --zsh --name _watson watson.zsh-completion
   '';
 
-  checkInputs = [ py pytest pytest-datafiles mock pytest-mock pytestrunner ];
-  propagatedBuildInputs = [ requests click arrow ];
+  checkInputs = [ py pytest pytest-datafiles pytest-mock pytestrunner ];
+  propagatedBuildInputs = [ arrow click click-didyoumean requests ];
   nativeBuildInputs = [ installShellFiles ];
 
   meta = with stdenv.lib; {
     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 2d8f4d18621..cc8412e1ac5 100644
--- a/pkgs/applications/office/wpsoffice/default.nix
+++ b/pkgs/applications/office/wpsoffice/default.nix
@@ -36,7 +36,7 @@
 , zlib
 }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   pname = "wpsoffice";
   version = "11.1.0.9505";
 
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec{
     platforms = [ "x86_64-linux" ];
     hydraPlatforms = [];
     license = stdenv.lib.licenses.unfreeRedistributable;
-    maintainers = [ stdenv.lib.maintainers.mlatus ];
+    maintainers = with stdenv.lib.maintainers; [ mlatus th0rgal ];
   };
 
   buildInputs = with xorg; [
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 8a27dcd3c9f..c0690415d67 100644
--- a/pkgs/applications/office/zotero/default.nix
+++ b/pkgs/applications/office/zotero/default.nix
@@ -35,11 +35,11 @@
 
 stdenv.mkDerivation rec {
   pname = "zotero";
-  version = "5.0.83";
+  version = "5.0.88";
 
   src = fetchurl {
     url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
-    sha256 = "1abkwxdi154hnry8nsvxbklvbsnvd7cs2as0041h2kbiz824pv31";
+    sha256 = "19r9jmakr04raqripfnqm2b9gwpi52lklrrqgqyb1x35a4xvnj62";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
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 848e0ca3c01..377619f5088 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 = "20200409";
+  version = "20200430";
 
   src = fetchurl {
     url = "https://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${pname}-${version}.tar.gz";
-    sha256 = "16zhwg2xmp5kpqx5isavwwkfq1212zgfj8gbp453ngjcrvp3m4lq";
+    sha256 = "060fzplgmpfrk6wkfaasx7phpfk90mmylk6drbwzk4f9r1655vda";
   };
 
   propagatedBuildInputs = with python2.pkgs; [
diff --git a/pkgs/applications/radio/cubicsdr/default.nix b/pkgs/applications/radio/cubicsdr/default.nix
index ef4d68af54c..c0dd4346d40 100644
--- a/pkgs/applications/radio/cubicsdr/default.nix
+++ b/pkgs/applications/radio/cubicsdr/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, cmake, fftw, hamlib, libpulseaudio, libGL, libX11, liquid-dsp,
-  pkgconfig, soapysdr-with-plugins, wxGTK, enableDigitalLab ? false }:
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, fftw, hamlib, libpulseaudio, libGL, libX11, liquid-dsp,
+  pkgconfig, soapysdr-with-plugins, wxGTK31-gtk3, enableDigitalLab ? false }:
 
 stdenv.mkDerivation rec {
   pname = "cubicsdr";
@@ -12,8 +12,26 @@ 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 wxGTK ];
+
+  buildInputs = [ fftw hamlib libpulseaudio libGL libX11 liquid-dsp soapysdr-with-plugins wxGTK31-gtk3 ];
 
   cmakeFlags = [ "-DUSE_HAMLIB=ON" ]
     ++ stdenv.lib.optional enableDigitalLab "-DENABLE_DIGITAL_LAB=ON";
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/dump1090/default.nix b/pkgs/applications/radio/dump1090/default.nix
index 01af881d133..11c5c46ae68 100644
--- a/pkgs/applications/radio/dump1090/default.nix
+++ b/pkgs/applications/radio/dump1090/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dump1090";
-  version = "3.8.0";
+  version = "3.8.1";
 
   src = fetchFromGitHub {
     owner = "flightaware";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0c30x56h79hza9m6b9zp5y28jxx4f4n5xgaaw597l8agcm5iia0p";
+    sha256 = "0xg8rzrxqklx1m9ncxsd96dlkbjcsxfi2mrb859v50f07xysdyd8";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/radio/fldigi/default.nix b/pkgs/applications/radio/fldigi/default.nix
index 84908d304df..b4815803ccd 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.12";
+  version = "4.1.13";
   pname = "fldigi";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "1yjjv2ss84xfiaidypp476mhrbpnw4zf7mb5cdqwhdh604x0svr1";
+    sha256 = "0mlq4z5k3h466plij8hg9xn5xbjxk557g4pw13cplpf32fhng224";
   };
 
   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/gnuradio/default.nix b/pkgs/applications/radio/gnuradio/default.nix
index 6d788f77bc3..dec968cd32d 100644
--- a/pkgs/applications/radio/gnuradio/default.nix
+++ b/pkgs/applications/radio/gnuradio/default.nix
@@ -1,18 +1,35 @@
-{ stdenv, fetchFromGitHub, writeText, makeWrapper
+{ stdenv
+, fetchFromGitHub
+, makeWrapper
+, writeText
 # Dependencies documented @ https://gnuradio.org/doc/doxygen/build_guide.html
 # => core dependencies
-, cmake, pkgconfig, git, boost, cppunit, fftw
+, cmake
+, pkgconfig
+, git
+, boost
+, cppunit
+, fftw
 # => python wrappers
 # May be able to upgrade to swig3
-, python, swig2, numpy, scipy, matplotlib
+, python
+, swig2
+, numpy
+, scipy
+, matplotlib
 # => grc - the gnu radio companion
-, Mako, cheetah, pygtk # Note: GR is migrating to Mako. Cheetah should be removed for GR3.8
+, Mako
+, cheetah
+, pygtk # Note: GR is migrating to Mako. Cheetah should be removed for GR3.8
 # => gr-wavelet: collection of wavelet blocks
 , gsl
 # => gr-qtgui: the Qt-based GUI
-, qt4, qwt, pyqt4
+, qt4
+, qwt
+, pyqt4
 # => gr-wxgui: the Wx-based GUI
-, wxPython, lxml
+, wxPython
+, lxml
 # => gr-audio: audio subsystems (system/OS dependent)
 , alsaLib   # linux   'audio-alsa'
 , CoreAudio # darwin  'audio-osx'
@@ -21,33 +38,57 @@
 # => gr-video-sdl: PAL and NTSC display
 , SDL
 # Other
-, libusb1, orc, pyopengl
+, libusb1
+, orc
+, pyopengl
 }:
 
 stdenv.mkDerivation rec {
   pname = "gnuradio";
-  version = "3.7.13.4";
+  version = "3.7.14.0";
 
   src = fetchFromGitHub {
     owner = "gnuradio";
     repo = "gnuradio";
     rev = "v${version}";
-    sha256 = "0ybfn2zfr9lc1bi3c794l4bzpj8y6vas9c4rbcj4nqlx0zf3p8fn";
+    sha256 = "1nh4f9dmygprlbqybd3j1byg9fsr6065n140mvc4b0v8qqygmhrc";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [
-    cmake pkgconfig git makeWrapper cppunit orc
+    cmake
+    pkgconfig
+    git
+    makeWrapper
+    cppunit
+    orc
   ];
 
   buildInputs = [
-    boost fftw python swig2 lxml qt4
-    qwt SDL libusb1 uhd gsl
+    boost
+    fftw
+    python
+    swig2
+    lxml
+    qt4
+    qwt
+    SDL
+    libusb1
+    uhd
+    gsl
   ] ++ stdenv.lib.optionals stdenv.isLinux  [ alsaLib   ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ CoreAudio ];
 
   propagatedBuildInputs = [
-    Mako cheetah numpy scipy matplotlib pyqt4 pygtk wxPython pyopengl
+    Mako
+    cheetah
+    numpy
+    scipy
+    matplotlib
+    pyqt4
+    pygtk
+    wxPython
+    pyopengl
   ];
 
   NIX_LDFLAGS = "-lpthread";
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 ef36eac28e4..013b4978b56 100644
--- a/pkgs/applications/radio/limesuite/default.nix
+++ b/pkgs/applications/radio/limesuite/default.nix
@@ -1,30 +1,29 @@
 { stdenv, fetchFromGitHub, cmake
-, sqlite, wxGTK30, libusb1, soapysdr
+, sqlite, wxGTK30-gtk3, libusb1, soapysdr
 , mesa_glu, libX11, gnuplot, fltk
 } :
 
-let
-  version = "20.01.0";
-
-in stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "limesuite";
-  inherit version;
+  version = "20.07.2";
 
   src = fetchFromGitHub {
     owner = "myriadrf";
     repo = "LimeSuite";
     rev = "v${version}";
-    sha256 = "01z4idcby2lm34bbnpbp400ski7p61jjiir6sy6dalnvsl52m7vx";
+    sha256 = "0v0w0f5ff1gwpfy13x1q1jsx9xfg4s3ccg05ikpnkzj4yg6sjps1";
   };
 
-  enableParallelBuilding = true;
-
   nativeBuildInputs = [ cmake ];
 
+  cmakeFlags = [
+    "-DOpenGL_GL_PREFERENCE=GLVND"
+  ];
+
   buildInputs = [
     libusb1
     sqlite
-    wxGTK30
+    wxGTK30-gtk3
     fltk
     gnuplot
     libusb1
@@ -34,11 +33,8 @@ in stdenv.mkDerivation {
   ];
 
   postInstall = ''
-    mkdir -p $out/lib/udev/rules.d
-    cp ../udev-rules/64-limesuite.rules $out/lib/udev/rules.d
-
-    mkdir -p $out/share/limesuite
-    cp bin/Release/lms7suite_mcu/* $out/share/limesuite
+    install -Dm444 -t $out/lib/udev/rules.d ../udev-rules/64-limesuite.rules
+    install -Dm444 -t $out/share/limesuite bin/Release/lms7suite_mcu/*
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/radio/rtl-ais/default.nix b/pkgs/applications/radio/rtl-ais/default.nix
new file mode 100644
index 00000000000..f806f07d597
--- /dev/null
+++ b/pkgs/applications/radio/rtl-ais/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, pkgconfig, libusb1, rtl-sdr }:
+
+stdenv.mkDerivation {
+  name = "rtl-ais";
+  version = "0.8.1";
+  buildInputs = [ pkgconfig rtl-sdr libusb1 ];
+
+  src = fetchFromGitHub {
+    owner = "dgiardini";
+    repo = "rtl-ais";
+    rev = "0e85f4e5f9ce7378834c3129bc894580efc24291";
+    sha256 = "0wm4zai1vs89mf0zgz52q5w5rj8f3i3v6zg42hfb7aqabi25r3jf";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    description = "A simple AIS tuner and generic dual-frequency FM demodulator";
+    homepage = "https://github.com/dgiardini/rtl-ais";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ mgdm ];
+    platforms = platforms.unix;
+  };
+}
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/urh/default.nix b/pkgs/applications/radio/urh/default.nix
index d75572e5e57..730b679ba61 100644
--- a/pkgs/applications/radio/urh/default.nix
+++ b/pkgs/applications/radio/urh/default.nix
@@ -5,13 +5,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "urh";
-  version = "2.8.7";
+  version = "2.8.8";
 
   src = fetchFromGitHub {
     owner = "jopohl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1grak0vzlzqvg8bqaalyamwvkyzlmj9nbczqp6jcdf6w2vnbzhph";
+    sha256 = "0knymy85n9kxj364jpxjc4v9c238b00nl40rafi1ripkqx36bsfv";
   };
 
   nativeBuildInputs = [ qt5.wrapQtAppsHook ];
diff --git a/pkgs/applications/radio/welle-io/default.nix b/pkgs/applications/radio/welle-io/default.nix
index 05187440899..ce4c872821e 100644
--- a/pkgs/applications/radio/welle-io/default.nix
+++ b/pkgs/applications/radio/welle-io/default.nix
@@ -1,5 +1,5 @@
 { mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig
-, qtbase, qtcharts, qtmultimedia, qtquickcontrols, qtquickcontrols2
+, qtbase, qtcharts, qtmultimedia, qtquickcontrols, qtquickcontrols2, qtgraphicaleffects
 , faad2, rtl-sdr, soapysdr-with-plugins, libusb-compat-0_1, fftwSinglePrec, lame, mpg123 }:
 let
 
@@ -30,6 +30,7 @@ in mkDerivation {
     qtmultimedia
     qtquickcontrols
     qtquickcontrols2
+    qtgraphicaleffects
     rtl-sdr
     soapysdr-with-plugins
   ];
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/astronomy/gildas/default.nix b/pkgs/applications/science/astronomy/gildas/default.nix
index 38d8e23a811..74eea15e830 100644
--- a/pkgs/applications/science/astronomy/gildas/default.nix
+++ b/pkgs/applications/science/astronomy/gildas/default.nix
@@ -7,8 +7,8 @@ let
 in
 
 stdenv.mkDerivation rec {
-  srcVersion = "feb20a";
-  version = "20200201_a";
+  srcVersion = "jun20b";
+  version = "20200601_b";
   pname = "gildas";
 
   src = fetchurl {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     # source code of the previous release to a different directory
     urls = [ "http://www.iram.fr/~gildas/dist/gildas-src-${srcVersion}.tar.xz"
       "http://www.iram.fr/~gildas/dist/archive/gildas/gildas-src-${srcVersion}.tar.xz" ];
-    sha256 = "05f34kpi3pfgf4dsyka7mkcln26yzb2mixnnc306krq0isjm7m26";
+    sha256 = "190na9p9kaif4hviraksig6hsq35i1q3nlrm50l00kpj2n8knisk";
   };
 
   nativeBuildInputs = [ pkgconfig groff perl getopt gfortran which ];
diff --git a/pkgs/applications/science/astronomy/gildas/wrapper.patch b/pkgs/applications/science/astronomy/gildas/wrapper.patch
index 2e470a1e9cd..3843937bf1b 100644
--- a/pkgs/applications/science/astronomy/gildas/wrapper.patch
+++ b/pkgs/applications/science/astronomy/gildas/wrapper.patch
@@ -1,12 +1,13 @@
 diff --new-file -r -u gildas-src-feb17d.orig/admin/wrapper.sh gildas-src-feb17d/admin/wrapper.sh
 --- gildas-src-feb17d.orig/admin/wrapper.sh	1970-01-01 01:00:00.000000000 +0100
 +++ gildas-src-feb17d/admin/wrapper.sh	2017-05-18 21:00:01.660778782 +0200
-@@ -0,0 +1,15 @@
+@@ -0,0 +1,16 @@
 +#!/bin/sh -e
 +
 +export GAG_ROOT_DIR="%%OUT%%"
 +export GAG_PATH="${GAG_ROOT_DIR}/etc"
 +export GAG_EXEC_SYSTEM="libexec"
++export GAG_GAG="${HOME}/.gag"
 +export PYTHONHOME="%%PYTHONHOME%%"
 +if [ -z "\$PYTHONPATH" ]; then
 +  PYTHONPATH="${GAG_ROOT_DIR}/${GAG_EXEC_SYSTEM}/python"
diff --git a/pkgs/applications/science/astronomy/stellarium/default.nix b/pkgs/applications/science/astronomy/stellarium/default.nix
index 7ef7776c0fe..78a7f742174 100644
--- a/pkgs/applications/science/astronomy/stellarium/default.nix
+++ b/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "stellarium";
-  version = "0.20.1";
+  version = "0.20.2";
 
   src = fetchFromGitHub {
     owner = "Stellarium";
     repo = "stellarium";
     rev = "v${version}";
-    sha256 = "1x8svan03k1x9jwqflimbpj7jpg6mjrbz26bg1sbhsqdlc8rbhky";
+    sha256 = "0bpxv781chx5acjh9ni5l9dlnvn6jgkqylq09885g6j4gi3q56br";
   };
 
   nativeBuildInputs = [ cmake perl wrapQtAppsHook ];
diff --git a/pkgs/applications/science/biology/ants/default.nix b/pkgs/applications/science/biology/ants/default.nix
index 20eedfaaa16..cb88e92fe1c 100644
--- a/pkgs/applications/science/biology/ants/default.nix
+++ b/pkgs/applications/science/biology/ants/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fetchpatch, cmake, makeWrapper, itk4, vtk }:
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, makeWrapper, itk4, vtk_7 }:
 
 stdenv.mkDerivation rec {
   pname    = "ANTs";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ cmake makeWrapper ];
-  buildInputs = [ itk4 vtk ];
+  buildInputs = [ itk4 vtk_7 ];
 
   cmakeFlags = [ "-DANTS_SUPERBUILD=FALSE" "-DUSE_VTK=TRUE" ];
 
diff --git a/pkgs/applications/science/biology/bppsuite/default.nix b/pkgs/applications/science/biology/bppsuite/default.nix
new file mode 100644
index 00000000000..564a38708bc
--- /dev/null
+++ b/pkgs/applications/science/biology/bppsuite/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchFromGitHub, cmake, bpp-core, bpp-seq, bpp-phyl, bpp-popgen }:
+
+stdenv.mkDerivation rec {
+  pname = "bppsuite";
+
+  inherit (bpp-core) version;
+
+  src = fetchFromGitHub {
+    owner = "BioPP";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1wdwcgczqbc3m116vakvi0129wm3acln3cfc7ivqnalwvi6lrpds";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ bpp-core bpp-seq bpp-phyl bpp-popgen ];
+
+  meta = bpp-core.meta // {
+    changelog = "https://github.com/BioPP/bppsuite/blob/master/ChangeLog";
+  };
+}
diff --git a/pkgs/applications/science/biology/emboss/default.nix b/pkgs/applications/science/biology/emboss/default.nix
index e2374bcd1e2..2eeb17520f2 100644
--- a/pkgs/applications/science/biology/emboss/default.nix
+++ b/pkgs/applications/science/biology/emboss/default.nix
@@ -21,8 +21,8 @@ stdenv.mkDerivation {
     specially developed for the needs of the molecular biology (e.g. EMBnet)
     user community, including libraries. The software automatically copes with
     data in a variety of formats and even allows transparent retrieval of
-    sequence data from the web.''; 
-    license     = "GPL2";
+    sequence data from the web.'';
+    license     = stdenv.lib.licenses.gpl2;
     homepage    = "http://emboss.sourceforge.net/";
   };
 }
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 1a3762f4326..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 = "1060";
+  version = "1066";
 
   src = fetchurl {
     url = "http://last.cbrc.jp/last-${version}.zip";
-    sha256 = "0h0604rxg0z0h21dykrnxsb4679zfhibg79gss1v2ik5xpdxl8kk";
+    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/mrbayes/default.nix b/pkgs/applications/science/biology/mrbayes/default.nix
index 8ee7bccf075..0ebd1441121 100644
--- a/pkgs/applications/science/biology/mrbayes/default.nix
+++ b/pkgs/applications/science/biology/mrbayes/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   builder = ./builder.sh;
   buildInputs = [readline];
 
-  meta = {
+  meta = with stdenv.lib; {
     description     = "Bayesian Inference of Phylogeny";
     longDescription = ''
       Bayesian inference of phylogeny is based upon a
@@ -22,8 +22,8 @@ stdenv.mkDerivation rec {
       MrBayes uses a simulation technique called Markov chain Monte Carlo (or
       MCMC) to approximate the posterior probabilities of trees.
     '';
-    license     = "GPL2";
+    license     = licenses.gpl2;
     homepage    = "http://mrbayes.csit.fsu.edu/";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/science/biology/picard-tools/default.nix b/pkgs/applications/science/biology/picard-tools/default.nix
index 5073d0f0f32..99bac0c4b7a 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.22.4";
+  version = "2.23.3";
 
   src = fetchurl {
     url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
-    sha256 = "0gzna5df8nk42l7mc0qbp9h73gwr1030jnw10fawjp6ql6213kdd";
+    sha256 = "08wgi0hijfbchr2srmndxq3h2fijvyvr8b6zv680fpcjixm5bbhf";
   };
 
   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/spades/default.nix b/pkgs/applications/science/biology/spades/default.nix
index 08a6a0d2509..d555f2873a6 100644
--- a/pkgs/applications/science/biology/spades/default.nix
+++ b/pkgs/applications/science/biology/spades/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "SPAdes";
-  version = "3.14.0";
+  version = "3.14.1";
 
   src = fetchurl {
     url = "http://cab.spbu.ru/files/release${version}/${pname}-${version}.tar.gz";
-    sha256 = "1ffxswd2ngkpy1d6l3lb6a9cmyy1fglbdsws00b3m1k22zaqv60q";
+    sha256 = "1ji3afn6yvx7ysg7p9j0d1g28zrnxg1b7x90mhs2bj3lgs7vfafn";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/biology/star/default.nix b/pkgs/applications/science/biology/star/default.nix
index 6f4211d0c0d..3f362e6d46a 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.4a";
 
   src = fetchFromGitHub {
     repo = "STAR";
     owner = "alexdobin";
     rev = version;
-    sha256 = "1hgiqw5qhs0pc1xazzihcfd92na02xyq2kb469z04y1v51kpvvjq";
+    sha256 = "1y4g7h6f95pa9g8kv1aihrfglavqymdx4mnqh6ascs50ibm7zdmz";
   };
 
   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 f52621dd71a..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.30.2";
+  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 = "0f9sxhxyqrd1vvmq566v1zpzzlci37pm9j7alzak766x5dg5yyz1";
+    sha256 = "0p2cbzxhw1s4l76kbriag3r4dkpsfvrnydryyikgkbdwnq479hm2";
   };
 
   patchPhase = ''
diff --git a/pkgs/applications/science/chemistry/marvin/default.nix b/pkgs/applications/science/chemistry/marvin/default.nix
index 9512a288d80..88a55b52b5c 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.10.0";
+  version = "20.16.0";
 
   src = fetchurl {
     name = "marvin-${version}.deb";
     url = "http://dl.chemaxon.com/marvin/${version}/marvin_linux_${versions.majorMinor version}.deb";
-    sha256 = "042ndlns48pa6mn6wyrp4q9c1v0a2vzcnhw5l766zdnxdjyv0acx";
+    sha256 = "0wfg5zd8dvjy6x6al58jd5d53gar3ds326q3b6771h5p5jzv0x2g";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper ];
diff --git a/pkgs/applications/science/chemistry/molden/default.nix b/pkgs/applications/science/chemistry/molden/default.nix
index 5e5df85a527..0d7e81cd9da 100644
--- a/pkgs/applications/science/chemistry/molden/default.nix
+++ b/pkgs/applications/science/chemistry/molden/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, which, gfortran, libGLU, xorg } :
 
 stdenv.mkDerivation rec {
-  version = "6.2";
+  version = "6.3";
   pname = "molden";
 
   src = fetchurl {
     url = "ftp://ftp.cmbi.ru.nl/pub/molgraph/molden/molden${version}.tar.gz";
-    sha256 = "01m5p7v5pz1fi77var50sp1bzlvdckwr6kn4wanvic2jmvgp9q5n";
+    sha256 = "02qi16pz2wffn3cc47dpjqhfafzwfmb79waw4nnhfyir8a4h3cq1";
   };
 
   nativeBuildInputs = [ which ];
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/eagle/eagle.nix b/pkgs/applications/science/electronics/eagle/eagle.nix
index 58bdd5c722d..400e5e30097 100644
--- a/pkgs/applications/science/electronics/eagle/eagle.nix
+++ b/pkgs/applications/science/electronics/eagle/eagle.nix
@@ -13,11 +13,11 @@ let
   in
   mkDerivation rec {
     pname = "eagle";
-    version = "9.6.1";
+    version = "9.6.2";
 
     src = fetchurl {
       url = "https://eagle-updates.circuits.io/downloads/${builtins.replaceStrings ["."] ["_"] version}/Autodesk_EAGLE_${version}_English_Linux_64bit.tar.gz";
-      sha256 = "1iq4aahrh4g3549vbr7gka5y2h7f17n3yafzl21njc2mkqb12jdw";
+      sha256 = "18syygnskl286kn8aqfzzdsyzq59d2w19y1h1ynyxsnrvkyv71h0";
     };
 
     desktopItem = makeDesktopItem {
@@ -27,7 +27,7 @@ let
       comment = "Schematic capture and PCB layout";
       desktopName = "Eagle";
       genericName = "Schematic editor";
-      categories = "Application;Development;";
+      categories = "Development;";
     };
 
     buildInputs =
diff --git a/pkgs/applications/science/electronics/eagle/eagle7.nix b/pkgs/applications/science/electronics/eagle/eagle7.nix
index af0fb675880..5546bb91045 100644
--- a/pkgs/applications/science/electronics/eagle/eagle7.nix
+++ b/pkgs/applications/science/electronics/eagle/eagle7.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     comment = "Schematic capture and PCB layout";
     desktopName = "Eagle";
     genericName = "Schematic editor";
-    categories = "Application;Development;";
+    categories = "Development;";
   };
 
   buildInputs =
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 9fc1111c7b9..2fd4c122041 100644
--- a/pkgs/applications/science/electronics/kicad/base.nix
+++ b/pkgs/applications/science/electronics/kicad/base.nix
@@ -8,7 +8,7 @@
 , oceSupport ? false, opencascade
 , withOCCT ? true, opencascade-occt
 , ngspiceSupport ? true, libngspice
-, scriptingSupport ? true, swig, python, pythonPackages, wxPython
+, scriptingSupport ? true, swig, python, wxPython
 , debug ? false, valgrind
 , withI18n ? true
 }:
@@ -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 2aa2686a29a..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
@@ -8,7 +9,7 @@
 , oceSupport ? false, opencascade
 , withOCCT ? true, opencascade-occt
 , ngspiceSupport ? true, libngspice
-, scriptingSupport ? true, swig, python3, python3Packages
+, scriptingSupport ? true, swig, python3
 , debug ? false, valgrind
 , with3d ? true
 , withI18n ? true
@@ -31,9 +32,8 @@ let
     # but brings high DPI support?
     else wxGTK31.override { withGtk2 = false; };
 
-  pythonPackages = python3Packages;
   python = python3;
-  wxPython = python3Packages.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 2b7c91751e5..d001cc43367 100644
--- a/pkgs/applications/science/electronics/kicad/versions.nix
+++ b/pkgs/applications/science/electronics/kicad/versions.nix
@@ -3,49 +3,49 @@
 {
   "kicad" = {
     kicadVersion = {
-      version =			"5.1.5";
+      version =			"5.1.6";
       src = {
-        rev =			"52549c5d09cbfb0e807fcbcb07819bc9f7861544";
-        sha256 =		"15h3rwisjss3fdc9bam9n2wq94slhacc3fbg14bnzf4n5agsnv5b";
+        rev =			"c6e7f7de7df655fd59b57823499efc443009de6b";
+        sha256 =		"1pa3z0h0679jmgxlzc833h6q85b5paxdp69kf2h93vkaryj58622";
       };
     };
     libVersion = {
-      version =			"5.1.5";
+      version =			"5.1.6";
       libSources = {
-        i18n.rev =		"5122cbec6563fb7c8d6f960a639ac470353af91b";
-        i18n.sha256 =		"1rfpifl8vky1gba2angizlb2n7mwmsiai3r6ip6qma60wdj8sbd3";
-        symbols.rev =		"dd122ec170b49e032179511c9d263126f52f4020";
-        symbols.sha256 =	"048b07ffsaav1ssrchw2p870lvb4rsyb5vnniy670k7q9p16qq6h";
-        templates.rev =		"94761f10d06582b33cd55ea2149d72f269f65580";
-        templates.sha256 =	"0cs3bm3zb5ngw5ldn0lzw5bvqm4kvcidyrn76438alffwiz2b15g";
-        footprints.rev =	"e076f8f271f8db96d5fec45616b7554caebb7ef7";
-        footprints.sha256 =	"1c4whgn14qhz4yqkl46w13p6rpv1k0hsc9s9h9368fxfcz9knb2j";
-        packages3d.rev =	"8d233cdcb109aa1c3b8ba4c934ee31f6a3b6e1f4";
-        packages3d.sha256 =	"0cff2ms1bsw530kqb1fr1m2pjixyxzwa81mxgac3qpbcf8fnpvaz";
+        i18n.rev =		"5ad171ce5c8d90f4740517c2adecb310d8be51bd";
+        i18n.sha256 =		"0qryi8xjm23ka363zfl7bbga0v5c31fr3d4nyxp3m168vkv9zhha";
+        symbols.rev =		"5150eaa2a7d15cfc6bb1459c527c4ebaa66d7708";
+        symbols.sha256 =	"12w3rdy085drlikkpb27n9ni7cyg9l0pqy7hnr86cxjcw3l5wcx6";
+        templates.rev =		"9213d439f757e6049b7e54f3ea08272a0d0f44a9";
+        templates.sha256 =	"1hppcsrkn4dk6ggby6ckh0q65qxkywrbyxa4lwpaf7pxjyv498xg";
+        footprints.rev =	"a61b4e49762fb355f654e65a1c7db1aaf7bb2332";
+        footprints.sha256 =	"1kmf91a5mmvj9izrv40mkaw1w36yjgn8daczd9rq2wlmd0rdp1zx";
+        packages3d.rev =	"150ff1caf0b01dc04c84f4f966f4f88fedfa8f8c";
+        packages3d.sha256 =	"0b9jglf77fy0n0r8xs4yqkv6zvipyfvp0z5dnqlzp32csy5aqpi1";
       };
     };
   };
   "kicad-unstable" = {
     kicadVersion = {
-      version =			"2020-05-06";
+      version =			"2020-08-22";
       src = {
-        rev =			"c92181621e2e51dc8aae1bd9f4483bb3301ffaa5";
-        sha256 =		"0s50xn5gbjy7yxnp9yiynxvxi2mkcrp6yghgdzclpm40rnfyi0v5";
+        rev =			"a2341f0f335b0abb9fc8cb86d19cbe6f9b38fade";
+        sha256 =		"0167yb39f800xarq3khn7sbdkgcx9j2ayhy8c7lhhks6kh7459g0";
       };
     };
     libVersion = {
-      version =			"2020-05-06";
+      version =			"2020-08-22";
       libSources = {
-        i18n.rev =		"f29cab831eb823165fa2c5efab5d9c9b443e62e2";
-        i18n.sha256 =		"0cc0zvpml75yxphay3281f762ls08fzvv538cd5hmkr8xqlj3vbi";
-        symbols.rev =		"d4245ae8cf633095a0994ab01492bd56cd124112";
-        symbols.sha256 =	"11pynjgji3skw42q5mryz98f8z418k43jy6s2k90w6jv638z3cb0";
-        templates.rev =		"7db8d4d0ea0711f1961d117853547fb3edbc3857";
-        templates.sha256 =	"1hppcsrkn4dk6ggby6ckh0q65qxkywrbyxa4lwpaf7pxjyv498xg";
-        footprints.rev =	"3bff23ee339bc48490bb39deba5d8b2f1f42733e";
-        footprints.sha256 =	"0430r8k49ib6w1sjr8fx42szbz960yhlzg4w80jl5bwasq67nqwd";
-        packages3d.rev =	"889a3dd550233ec51baed4a04a01d4cc64a8d747";
-        packages3d.sha256 =	"152zv4j51v8skqlvrabblpcqpbn5yf3grisjj8vnwf7kdd41chb2";
+        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..5a70831d824
--- /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.1";
+
+  src = fetchFromGitHub {
+    owner = "OpenHantek";
+    repo = "OpenHantek6022";
+    rev = version;
+    sha256 = "17b0qmz7g0nk7n7jhbh5xhs135dpj9kv41n42vvpdzwr6z5rk4qm";
+  };
+
+  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 dd6c5a09851..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.032";
+  version = "4.040";
 
   src = fetchurl {
     url    = "https://www.veripool.org/ftp/${pname}-${version}.tgz";
-    sha256 = "1l3rhgw7pk59dz7dyhcl0iygn6c9rv9bv131rfzg66asxfwbfq1s";
+    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 a33cc92c7ce..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.03.05";
+  version = "2020.06.22";
 
   src = fetchFromGitHub {
     owner  = "berkeley-abc";
     repo   = "abc";
-    rev    = "ed90ce20df9c7c4d6e1db5d3f786f9b52e06bab1";
-    sha256 = "01sw67pkrb6wzflkxbkxzwsnli3nvp0yxwp3j1ngb3c0j86ri437";
+    rev    = "341db25668f3054c87aa3372c794e180f629af5d";
+    sha256 = "14cgv34vz5ljkcms6nrv19vqws2hs8bgjgffk5q03cbxnm2jxv5s";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/logic/boolector/cmake-gtest.patch b/pkgs/applications/science/logic/boolector/cmake-gtest.patch
new file mode 100644
index 00000000000..61a64d3abbb
--- /dev/null
+++ b/pkgs/applications/science/logic/boolector/cmake-gtest.patch
@@ -0,0 +1,16 @@
+diff --git a/cmake/googletest-download.cmake b/cmake/googletest-download.cmake
+index 0ec4d558..d0910313 100644
+--- a/cmake/googletest-download.cmake
++++ b/cmake/googletest-download.cmake
+@@ -9,10 +9,7 @@ ExternalProject_Add(
+   googletest
+   SOURCE_DIR "@GOOGLETEST_DOWNLOAD_ROOT@/googletest-src"
+   BINARY_DIR "@GOOGLETEST_DOWNLOAD_ROOT@/googletest-build"
+-  GIT_REPOSITORY
+-    https://github.com/google/googletest.git
+-  GIT_TAG
+-    release-1.10.0
++  URL REPLACEME
+   CONFIGURE_COMMAND ""
+   BUILD_COMMAND ""
+   INSTALL_COMMAND ""
diff --git a/pkgs/applications/science/logic/boolector/default.nix b/pkgs/applications/science/logic/boolector/default.nix
index 105e911ed4f..aedc8e3484a 100644
--- a/pkgs/applications/science/logic/boolector/default.nix
+++ b/pkgs/applications/science/logic/boolector/default.nix
@@ -1,37 +1,31 @@
-{ stdenv, fetchFromGitHub, fetchpatch
-, cmake, lingeling, btor2tools
+{ stdenv, fetchFromGitHub, lib, python3
+, cmake, lingeling, btor2tools, gtest, gmp
 }:
 
 stdenv.mkDerivation rec {
   pname = "boolector";
-  version = "3.0.0";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner  = "boolector";
     repo   = "boolector";
     rev    = "refs/tags/${version}";
-    sha256 = "15i3ni5klss423m57wcy1gx0m5wfrjmglapwg85pm7fb3jj1y7sz";
+    sha256 = "0jkmaw678njqgkflzj9g374yk1mci8yqvsxkrqzlifn6bwhwb7ci";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2019-7560.patch";
-      url = "https://github.com/Boolector/boolector/commit/8d979d02e0482c7137c9f3a34e6d430dbfd1f5c5.patch";
-      sha256 = "1a1g02mk8b0azzjcigdn5zpshn0dn05fciwi8sd5q38yxvnvpbbi";
-    })
-  ];
+  postPatch = ''
+    sed s@REPLACEME@file://${gtest.src}@ ${./cmake-gtest.patch} | patch -p1
+  '';
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ lingeling btor2tools ];
+  buildInputs = [ lingeling btor2tools gmp ];
 
   cmakeFlags =
-    [ "-DSHARED=ON"
+    [ "-DBUILD_SHARED_LIBS=ON"
       "-DUSE_LINGELING=YES"
-      "-DBTOR2_INCLUDE_DIR=${btor2tools.dev}/include"
-      "-DBTOR2_LIBRARIES=${btor2tools.lib}/lib/libbtor2parser.so"
-      "-DLINGELING_INCLUDE_DIR=${lingeling.dev}/include"
-      "-DLINGELING_LIBRARIES=${lingeling.lib}/lib/liblgl.a"
-    ];
+      "-DBtor2Tools_INCLUDE_DIR=${btor2tools.dev}/include"
+      "-DBtor2Tools_LIBRARIES=${btor2tools.lib}/lib/libbtor2parser.so"
+    ] ++ (lib.optional (gmp != null) "-DUSE_GMP=YES");
 
   installPhase = ''
     mkdir -p $out/bin $lib/lib $dev/include
@@ -39,13 +33,22 @@ stdenv.mkDerivation rec {
     cp -vr bin/* $out/bin
     cp -vr lib/* $lib/lib
 
-    rm -rf $out/bin/{examples,test}
+    rm -rf $out/bin/{examples,tests}
+    # we don't care about gtest related libs
+    rm -rf $lib/lib/libg*
 
     cd ../src
     find . -iname '*.h' -exec cp --parents '{}' $dev/include \;
     rm -rf $dev/include/tests
   '';
 
+  checkInputs = [ python3 ];
+  doCheck = true;
+  preCheck = ''
+    export LD_LIBRARY_PATH=$(readlink -f lib)
+    patchShebangs ..
+  '';
+
   outputs = [ "out" "dev" "lib" ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/science/logic/btor2tools/default.nix b/pkgs/applications/science/logic/btor2tools/default.nix
index 2aedfb1d07e..714ab49524b 100644
--- a/pkgs/applications/science/logic/btor2tools/default.nix
+++ b/pkgs/applications/science/logic/btor2tools/default.nix
@@ -1,24 +1,24 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, cmake, fetchFromGitHub }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "btor2tools";
-  version = "pre55_8c150b39";
+  version = "1.0.0-pre_${src.rev}";
 
   src = fetchFromGitHub {
     owner  = "boolector";
     repo   = "btor2tools";
-    rev    = "8c150b39cdbcdef4247344acf465d75ef642365d";
-    sha256 = "1r5pid4x567nms02ajjrz3v0zj18k0fi5pansrmc2907rnx2acxx";
+    rev    = "9831f9909fb283752a3d6d60d43613173bd8af42";
+    sha256 = "0mfqmkgvyw8fa2c09kww107dmk180ch1hp98r5kv41vnc04iqb0s";
   };
 
-  configurePhase = "./configure.sh -shared";
+  nativeBuildInputs = [ cmake ];
 
   installPhase = ''
     mkdir -p $out $dev/include/btor2parser/ $lib/lib
 
     cp -vr bin $out
-    cp -v  src/btor2parser/btor2parser.h $dev/include/btor2parser
-    cp -v  build/libbtor2parser.* $lib/lib
+    cp -v  ../src/btor2parser/btor2parser.h $dev/include/btor2parser
+    cp -v  lib/libbtor2parser.* $lib/lib
   '';
 
   outputs = [ "out" "dev" "lib" ];
diff --git a/pkgs/applications/science/logic/cadical/default.nix b/pkgs/applications/science/logic/cadical/default.nix
index 5e6c0d55b7d..e3707ff7dab 100644
--- a/pkgs/applications/science/logic/cadical/default.nix
+++ b/pkgs/applications/science/logic/cadical/default.nix
@@ -2,16 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "cadical";
-  version = "1.2.1";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "arminbiere";
     repo = "cadical";
     rev = "rel-${version}";
-    hash = "sha256:1a66xkw42ad330fvw8i0sawrmg913m8wrq5c85lw5qandkwvxdi6";
+    sha256 = "05lvnvapjawgkky38xknb9lgaliiwan4kggmb9yggl4ifpjrh8qf";
   };
 
+  doCheck = true;
   dontAddPrefix = true;
+
   installPhase = ''
     install -Dm0755 build/cadical "$out/bin/cadical"
     install -Dm0755 build/mobical "$out/bin/mobical"
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index 315900d42b9..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
 }:
@@ -34,6 +33,8 @@ let
    "8.10.2" = "0znxmpy71bfw0p6x47i82jf5k7v41zbz9bdpn901ysn3ir8l3wrz";
    "8.11.0" = "1rfdic6mp7acx2zfwz7ziqk12g95bl9nyj68z4n20a5bcjv2pxpn";
    "8.11.1" = "0qriy9dy36dajsv5qmli8gd6v55mah02ya334nw49ky19v7518m0";
+   "8.11.2" = "0f77ccyxdgbf1nrj5fa8qvrk1cyfy06fv8gj9kzfvlcgn0cf48sa";
+   "8.12.0" = "18dc7k0piv6v064zgdadpw6mkkxk7j663hb3svgj5236fihjr0cz";
   }.${version};
   coq-version = stdenv.lib.versions.majorMinor version;
   versionAtLeast = stdenv.lib.versionAtLeast coq-version;
@@ -105,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 8c1b3bd0369..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.0";
+  version = "5.8.0";
 
   src = fetchFromGitHub {
     owner  = "msoos";
     repo   = "cryptominisat";
     rev    = version;
-    sha256 = "0ny5ln8fc0irprs04qw01c9mppps8q27lkx01a549zazwhj4b5rm";
+    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/elan/default.nix b/pkgs/applications/science/logic/elan/default.nix
index 743bbf163c2..7a7da2c5f5d 100644
--- a/pkgs/applications/science/logic/elan/default.nix
+++ b/pkgs/applications/science/logic/elan/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "elan";
-  version = "0.10.0";
+  version = "0.10.2";
 
   src = fetchFromGitHub {
     owner = "kha";
     repo = "elan";
     rev = "v${version}";
-    sha256 = "0aw538shvpfbk481y0gw3z97nsazdnk8qh8fwsb6ji62p2r51v6f";
+    sha256 = "0ycw1r364g5gwh8796dpv1israpg7zqwx8mcvnacv2lqj5iijmby";
   };
 
-  cargoSha256 = "0zg3q31z516049v9fhli4yxldx9fg31k2qfx4ag8rmyvpgy9xh6c";
+  cargoSha256 = "0hcaiy046d2gnkp6sfpnkkprb3nd94i9q8dgqxxpwrc1j157x6z9";
 
   nativeBuildInputs = [ pkgconfig ];
 
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 c80c163562b..224795f2a66 100644
--- a/pkgs/applications/science/logic/lean/default.nix
+++ b/pkgs/applications/science/logic/lean/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, cmake, gmp }:
+{ stdenv, fetchFromGitHub, cmake, gmp, coreutils }:
 
 stdenv.mkDerivation rec {
   pname = "lean";
-  version = "3.10.0";
+  version = "3.18.4";
 
   src = fetchFromGitHub {
     owner  = "leanprover-community";
     repo   = "lean";
     rev    = "v${version}";
-    sha256 = "0nmh09x3scfqg0bg1qf8b7z67s11hbfd7kr1h6k1zw94fyn2mg8q";
+    sha256 = "1pmc2wi1pa346w89ayrrjv9xk6v6myg2zmx1wj4pd9qxv7ivrbsn";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -19,6 +19,11 @@ stdenv.mkDerivation rec {
     cd src
   '';
 
+  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace $out/bin/leanpkg \
+      --replace "greadlink" "${coreutils}/bin/readlink"
+  '';
+
   meta = with stdenv.lib; {
     description = "Automatic and interactive theorem prover";
     homepage    = "https://leanprover.github.io/";
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/proverif/default.nix b/pkgs/applications/science/logic/proverif/default.nix
index 931ad2fc4f3..6a9367b30aa 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.00";
+  version = "2.01";
 
   src = fetchurl {
     url    = "http://prosecco.gforge.inria.fr/personal/bblanche/proverif/proverif${version}.tar.gz";
-    sha256 = "0vjphj85ch9q39vc7sd6n4vxy5bplp017vlshk989yhfwb00r37y";
+    sha256 = "01wp5431c77z0aaa99h8bnm5yhr6jslpqc8iyg0a7gxfqnb19gxi";
   };
 
   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 f9b82b5d733..77613a13571 100644
--- a/pkgs/applications/science/logic/sad/default.nix
+++ b/pkgs/applications/science/logic/sad/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
   };
   buildInputs = [ haskell.compiler.ghc844 spass ];
   patches = [
-    ./patch
+    ./patch.patch
     # Since the LTS 12.0 update, <> is an operator in Prelude, colliding with
     # the <> operator with a different meaning defined by this package
     ./monoid.patch
@@ -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/sad/patch b/pkgs/applications/science/logic/sad/patch.patch
index a5b1d617708..a5b1d617708 100644
--- a/pkgs/applications/science/logic/sad/patch
+++ b/pkgs/applications/science/logic/sad/patch.patch
diff --git a/pkgs/applications/science/logic/symbiyosys/default.nix b/pkgs/applications/science/logic/symbiyosys/default.nix
index b180cf307f0..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.03.24";
+  version = "2020.08.22";
 
   src = fetchFromGitHub {
     owner  = "YosysHQ";
     repo   = "SymbiYosys";
-    rev    = "8a62780b9df4d2584e41cdd42cab92fddcd75b31";
-    sha256 = "0ss5mrzwff2dny8kfciqbrz67m6k52yvc1shd7gk3qb99x7g7fp8";
+    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/tlaplus/toolbox.nix b/pkgs/applications/science/logic/tlaplus/toolbox.nix
index f326d62f8f0..5edc3e4129d 100644
--- a/pkgs/applications/science/logic/tlaplus/toolbox.nix
+++ b/pkgs/applications/science/logic/tlaplus/toolbox.nix
@@ -13,7 +13,7 @@ let
     comment = "IDE for TLA+";
     desktopName = name;
     genericName = comment;
-    categories = "Application;Development";
+    categories = "Development";
     extraEntries = ''
       StartupWMClass=TLA+ Toolbox
     '';
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 51cb2a456c1..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,14 +29,9 @@ 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
+  '';
 
   configureFlags = [ "--enable-verbose-make" ];
 
diff --git a/pkgs/applications/science/logic/workcraft/default.nix b/pkgs/applications/science/logic/workcraft/default.nix
index 685d6ee4861..4038db17f93 100644
--- a/pkgs/applications/science/logic/workcraft/default.nix
+++ b/pkgs/applications/science/logic/workcraft/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "workcraft";
-  version = "3.2.6";
+  version = "3.3.0";
 
   src = fetchurl {
     url = "https://github.com/workcraft/workcraft/releases/download/v${version}/workcraft-v${version}-linux.tar.gz";
-    sha256 = "1sfbxmk71gp7paw4l5azqr0lsgsyp4308gx2jz8w4k3nasfshz25";
+    sha256 = "072i7kan2c9f4s9jxwqr4ccsi9979c12xhwr385sbq06rwyrna85";
   };
 
   buildInputs = [ makeWrapper ];
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/machine-learning/shogun/default.nix b/pkgs/applications/science/machine-learning/shogun/default.nix
index 031ca55a048..a2c26de7a2d 100644
--- a/pkgs/applications/science/machine-learning/shogun/default.nix
+++ b/pkgs/applications/science/machine-learning/shogun/default.nix
@@ -25,7 +25,7 @@ let
       owner = pname + "-toolbox";
       repo = pname;
       rev = pname + "_" + version;
-      sha256 = "38aULxK50wQ2+/ERosSpRyBmssmYSGv5aaWfWSlrSRc=";
+      sha256 = "05s9dclmk7x5d7wnnj4qr6r6c827m72a44gizcv09lxr28pr9inz";
       fetchSubmodules = true;
     };
     # we need the packed archive
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/clp/default.nix b/pkgs/applications/science/math/clp/default.nix
index 5e770cec13b..97ef3dd7543 100644
--- a/pkgs/applications/science/math/clp/default.nix
+++ b/pkgs/applications/science/math/clp/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "1.17.5";
+  version = "1.17.6";
   pname = "clp";
   src = fetchurl {
     url = "https://www.coin-or.org/download/source/Clp/Clp-${version}.tgz";
-    sha256 = "0y5wg4lfffy5vh8gc20v68pmmv241ndi2jgm9pgvk39b00bzkaa9";
+    sha256 = "0ap1f0lxppa6pnbc4bg7ih7a96avwaki482nig8w5fr3vg9wvkzr";
   };
 
   propagatedBuildInputs = [ zlib ];
diff --git a/pkgs/applications/science/math/gap/default.nix b/pkgs/applications/science/math/gap/default.nix
index 87f4fa12038..04a49becc97 100644
--- a/pkgs/applications/science/math/gap/default.nix
+++ b/pkgs/applications/science/math/gap/default.nix
@@ -3,7 +3,7 @@
 , fetchurl
 , fetchpatch
 , makeWrapper
-, m4
+, readline
 , gmp
 # one of
 # - "minimal" (~400M):
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
   version = "4.10.2";
 
   src = fetchurl {
-    url = "https://www.gap-system.org/pub/gap/gap-${lib.versions.major version}.${lib.versions.minor version}/tar.bz2/gap-${version}.tar.bz2";
+    url = "https://files.gap-system.org/gap-${lib.versions.major version}.${lib.versions.minor version}/tar.bz2/gap-${version}.tar.bz2";
     sha256 = "0cp6ddk0469zzv1m1vair6gm27ic6c5m77ri8rn0znq3gaps6x94";
   };
 
@@ -73,10 +73,8 @@ stdenv.mkDerivation rec {
     patchShebangs .
   '';
 
-  configureFlags = [ "--with-gmp=system" ];
-
   buildInputs = [
-    m4
+    readline
     gmp
   ];
 
@@ -91,14 +89,31 @@ stdenv.mkDerivation rec {
       url = "https://github.com/gap-system/gap/commit/3361c172e6c5ff3bb3f01ba9d6f1dd4ad42cea80.patch";
       sha256 = "1kwp9qnfvmlbpf1c3rs6j5m2jz22rj7a4hb5x1gj9vkpiyn5pdyj";
     })
+
+    # Fix for locale specific tests causing issues. Already upstream.
+    # Backport of https://github.com/gap-system/gap/pull/4022
+    # WHEN REMOVING: also remove the`rm tst/testinstall/strings.tst` line in
+    # `postPatch` below. That line is necessary since the patch is not intended
+    # for gap 4.10.
+    (fetchpatch {
+      name = "remove-locale-specific-tests.patch";
+      url = "https://github.com/gap-system/gap/commit/c18b0c4215b5212a2cc4f305e2d5b94ba716bee8.patch";
+      excludes = ["tst/testinstall/stringobj.tst"];
+      sha256 = "1mz5b4mbw2jdd1ypp5s0dy6pp0jsvwsxr2dm4kbkls20r1r192sc";
+    })
   ];
 
+  postPatch = ''
+    # File not covered by the remove-locale-specific-tests.patch patch above.
+    rm tst/testinstall/strings.tst
+  '';
+
   # "teststandard" is a superset of testinstall. It takes ~1h instead of ~1min.
   # tests are run twice, once with all packages loaded and once without
   # checkTarget = "teststandard";
 
   doInstallCheck = true;
-  installCheckTarget = "testinstall";
+  installCheckTarget = "check";
 
   preInstallCheck = ''
     # gap tests check that the home directory exists
@@ -119,16 +134,6 @@ stdenv.mkDerivation rec {
     )
   '';
 
-  postCheck = ''
-    # The testsuite doesn't exit with a non-zero exit code on failure.
-    # It leaves its logs in dev/log however.
-
-    # grep for error messages
-    if grep ^##### dev/log/*; then
-        exit 1
-    fi
-  '';
-
   postBuild = ''
     pushd pkg
     bash ../bin/BuildPackages.sh
@@ -170,11 +175,11 @@ stdenv.mkDerivation rec {
     ];
     platforms = platforms.all;
     broken = stdenv.isDarwin;
-    # keeping all packages increases the package size considerably, wchich
-    # is why a local build is preferable in that situation. The timeframe
-    # is reasonable and that way the binary cache doesn't get overloaded.
+    # keeping all packages increases the package size considerably, which is
+    # why a local build is preferable in that situation. The timeframe is
+    # reasonable and that way the binary cache doesn't get overloaded.
     hydraPlatforms = lib.optionals (!keepAllPackages) meta.platforms;
     license = licenses.gpl2;
-    homepage = "http://gap-system.org/";
+    homepage = "https://www.gap-system.org";
   };
 }
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..c068225bb6b
--- /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-598-0";
+
+  src = fetchurl {
+    urls = [
+        "https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
+        "https://web.archive.org/web/20200815132422/https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
+      ];
+    sha256 = "1klazsgrpmfd6vjzpdcfl5x8qhhbh6vx2g6id4vg16ac4sjdrb0c";
+  };
+
+  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/gmsh/default.nix b/pkgs/applications/science/math/gmsh/default.nix
index 946beff8003..db7e238e8de 100644
--- a/pkgs/applications/science/math/gmsh/default.nix
+++ b/pkgs/applications/science/math/gmsh/default.nix
@@ -5,11 +5,11 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "gmsh";
-  version = "4.5.6";
+  version = "4.6.0";
 
   src = fetchurl {
     url = "http://gmsh.info/src/gmsh-${version}-source.tgz";
-    sha256 = "0gs65bgr1ph5lz7r6manqj8cra30s7c94pxilkd2z0p5vq6fpsj6";
+    sha256 = "075dyblmlfdlhgbb1dwk6jzlqx93q90n6zwpr3mpii5n1zjmab0g";
   };
 
   buildInputs = [ blas lapack gmm fltk libjpeg zlib libGLU libGL
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/mxnet/default.nix b/pkgs/applications/science/math/mxnet/default.nix
index b006a9dd18d..3d74421669e 100644
--- a/pkgs/applications/science/math/mxnet/default.nix
+++ b/pkgs/applications/science/math/mxnet/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake perl ];
 
-  buildInputs = [ opencv3 gtest blas ]
+  buildInputs = [ opencv3 gtest blas.provider ]
               ++ lib.optionals cudaSupport [ cudatoolkit nvidia_x11 ]
               ++ lib.optional cudnnSupport cudnn;
 
diff --git a/pkgs/applications/science/math/nauty/default.nix b/pkgs/applications/science/math/nauty/default.nix
index 64cc4a9aa00..c1d408213b9 100644
--- a/pkgs/applications/science/math/nauty/default.nix
+++ b/pkgs/applications/science/math/nauty/default.nix
@@ -4,10 +4,10 @@
 }:
 stdenv.mkDerivation rec {
   pname = "nauty";
-  version = "26r12";
+  version = "27r1";
   src = fetchurl {
     url = "http://pallini.di.uniroma1.it/nauty${version}.tar.gz";
-    sha256 = "1p4mxf8q5wm47nxyskxbqwa5p1vvkycv1zgswvnk9nsn6vff0al6";
+    sha256 = "1nym0p2djws8ylkpr0kgpxfa6fxdlh46cmvz0gn5vd02jzgs0aww";
   };
   outputs = [ "out" "dev" ];
   configureFlags = {
@@ -37,6 +37,10 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ raskin timokau ];
     platforms = platforms.unix;
+    # I'm not sure if the filename will remain the same for future changelog or
+    # if it will track changes to minor releases. Lets see. Better than nothing
+    # in any case.
+    changelog = "http://pallini.di.uniroma1.it/changes24-27.txt";
     homepage = "http://pallini.di.uniroma1.it/";
   };
 }
diff --git a/pkgs/applications/science/math/palp/default.nix b/pkgs/applications/science/math/palp/default.nix
index 4912b82d158..c383438002f 100644
--- a/pkgs/applications/science/math/palp/default.nix
+++ b/pkgs/applications/science/math/palp/default.nix
@@ -9,16 +9,15 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "palp";
-  version = "2.1";
+  version = "2.11";
 
   src = fetchurl {
     url = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/palp/palp-${version}.tar.gz";
-    sha256 = "1s7s2lc5f0ig1yy7ygsh3sddm3sbq4mxwybqsj8lp9wjdxs7qfrs";
+    sha256 = "00jpm73fw9jjq58z6rysr1mwv489j6rpfqqlhm9ab0dln4kyhh05";
   };
 
   hardeningDisable = [
     "format"
-    "strictoverflow" # causes runtime failure (tested in checkPhase)
   ];
 
   patchPhase = stdenv.lib.optionalString stdenv.isDarwin ''
@@ -78,6 +77,9 @@ stdenv.mkDerivation rec {
       facet enumeration compares well with existing packages.
     '';
     homepage = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/CYpalp.html";
+    # Not really a changelog, but a one-line summary of each update that should
+    # be reviewed on update.
+    changelog = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/CYpalp.html";
     # Just a link on the website pointing to gpl -- now gplv3. When the last
     # version was released that pointed to gplv2 however, so thats probably
     # the right license.
diff --git a/pkgs/applications/science/math/qalculate-gtk/default.nix b/pkgs/applications/science/math/qalculate-gtk/default.nix
index e393111590a..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" ];
@@ -25,6 +33,7 @@ stdenv.mkDerivation rec {
     description = "The ultimate desktop calculator";
     homepage = "http://qalculate.github.io";
     maintainers = with maintainers; [ gebner ];
+    license = licenses.gpl2Plus;
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/science/math/wxmaxima/default.nix b/pkgs/applications/science/math/wxmaxima/default.nix
index 4d6e4bea34e..a6afc95ac09 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.02.4";
+  version = "20.04.0";
 
   src = fetchFromGitHub {
     owner = "wxMaxima-developers";
     repo = "wxmaxima";
     rev = "Version-${version}";
-    sha256 = "106a7jrjwfmymzj70nsv44fm3jbxngr8pmkaghhpwy0ln38lhf54";
+    sha256 = "0vrjxzfgmjdzm1rgl0crz4b4badl14jwh032y3xkcdvjl5j67lp3";
   };
 
   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/colmap/default.nix b/pkgs/applications/science/misc/colmap/default.nix
index 02adb689e20..83dff3e08f1 100644
--- a/pkgs/applications/science/misc/colmap/default.nix
+++ b/pkgs/applications/science/misc/colmap/default.nix
@@ -1,10 +1,10 @@
-{ mkDerivation, lib, fetchpatch, fetchFromGitHub, cmake, boost, ceres-solver, eigen,
+{ mkDerivation, lib, fetchpatch, fetchFromGitHub, cmake, boost17x, ceres-solver, eigen,
   freeimage, glog, libGLU, glew, qtbase,
   cudaSupport ? false, cudatoolkit ? null }:
 
 assert !cudaSupport || cudatoolkit != null;
 
-let boost_static = boost.override { enableStatic = true; };
+let boost_static = boost17x.override { enableStatic = true; };
 in
 mkDerivation rec {
   version = "3.5";
diff --git a/pkgs/applications/science/misc/cytoscape/default.nix b/pkgs/applications/science/misc/cytoscape/default.nix
index b4e4adbfa6f..0db007f543f 100644
--- a/pkgs/applications/science/misc/cytoscape/default.nix
+++ b/pkgs/applications/science/misc/cytoscape/default.nix
@@ -1,14 +1,23 @@
-{ stdenv, fetchurl, jre, makeWrapper }:
+{ stdenv, fetchurl, jre, makeWrapper, substituteAll, coreutils }:
 
 stdenv.mkDerivation rec {
   pname = "cytoscape";
-  version = "3.7.2";
+  version = "3.8.0";
 
   src = fetchurl {
-    url = "https://github.com/cytoscape/cytoscape/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "125vgr8vqbmy2nsm1yl0h0q8p49lxxqfw5cmxzbx1caklcn4rryc";
+    url = "https://github.com/cytoscape/cytoscape/releases/download/${version}/${pname}-unix-${version}.tar.gz";
+    sha256 = "0kksx12m83cjprdygmcc286990byf25yqfx5s7c07cizc21aavyg";
   };
 
+  patches = [
+    # By default, gen_vmoptions.sh tries to store custom options in $out/share
+    # at run time. This patch makes sure $HOME is used instead.
+    (substituteAll {
+      src = ./gen_vmoptions_to_homedir.patch;
+      inherit coreutils;
+    })
+  ];
+
   buildInputs = [jre makeWrapper];
 
   installPhase = ''
diff --git a/pkgs/applications/science/misc/cytoscape/gen_vmoptions_to_homedir.patch b/pkgs/applications/science/misc/cytoscape/gen_vmoptions_to_homedir.patch
new file mode 100644
index 00000000000..e31681e8541
--- /dev/null
+++ b/pkgs/applications/science/misc/cytoscape/gen_vmoptions_to_homedir.patch
@@ -0,0 +1,19 @@
+diff -Nur a/gen_vmoptions.sh b/gen_vmoptions.sh
+--- a/gen_vmoptions.sh	2020-03-30 21:57:47.000000000 +0100
++++ b/gen_vmoptions.sh	2020-05-05 09:49:57.974989824 +0100
+@@ -1,13 +1,10 @@
+ #!/bin/sh
+ # Generates the Cytoscape.vmoptions file
+ 
+-script_path="$(dirname -- $0)"
+-
+-#vm_options_path="$HOME/.cytoscape"
+-vm_options_path=$script_path
++vm_options_path="$HOME/.cytoscape"
+ 
+ if [ ! -e $vm_options_path ]; then
+-    /bin/mkdir $vm_options_path
++    @coreutils@/bin/mkdir $vm_options_path
+ fi
+ 
+ # Determine amount of physical memory present:
diff --git a/pkgs/applications/science/misc/foldingathome/control.nix b/pkgs/applications/science/misc/foldingathome/control.nix
index 72217689ff1..91c3b8c779c 100644
--- a/pkgs/applications/science/misc/foldingathome/control.nix
+++ b/pkgs/applications/science/misc/foldingathome/control.nix
@@ -8,7 +8,7 @@
 }:
 let
   majMin = stdenv.lib.versions.majorMinor version;
-  version = "7.6.9";
+  version = "7.6.13";
 
   python = python2.withPackages
     (
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://download.foldingathome.org/releases/public/release/fahcontrol/debian-stable-64bit/v${majMin}/fahcontrol_${version}-1_all.deb";
-    sha256 = "1fh7ybbp3qlqzh18c4gva3aaymv7d31mqchrv235a1axldha1s9s";
+    sha256 = "0qfvhwc29cgqkwf2bkhq4gr2d1c4jgccfs58916ss03n4rwz9gng";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/misc/foldingathome/viewer.nix b/pkgs/applications/science/misc/foldingathome/viewer.nix
index a35df650300..cdeed6536ef 100644
--- a/pkgs/applications/science/misc/foldingathome/viewer.nix
+++ b/pkgs/applications/science/misc/foldingathome/viewer.nix
@@ -11,7 +11,7 @@
 }:
 let
   majMin = stdenv.lib.versions.majorMinor version;
-  version = "7.6.9";
+  version = "7.6.13";
 in
 stdenv.mkDerivation rec {
   inherit version;
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://download.foldingathome.org/releases/public/release/fahviewer/debian-stable-64bit/v${majMin}/fahviewer_${version}_amd64.deb";
-    sha256 = "04wr86g11wpmsczzwzak4gvalcihb47rn3zp6qriawhxyac9nf93";
+    sha256 = "09yfvk16j1iwx8h1xg678ks3bc8760gfdn7n32j8r893kd32cwyk";
   };
 
   nativeBuildInputs = [
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..9a24496c6ad 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.0";
   pname = "rink";
 
   src = fetchFromGitHub {
     owner = "tiffany352";
     repo = "rink-rs";
     rev = "v${version}";
-    sha256 = "0vl996y58a9b62d8sqrpfn2h8qkya7qbg5zqsmy7nxhph1vhbspj";
+    sha256 = "1z51n25hmgqkn4bm9yj18j8p4pk5i1x3f3z70vl1vx3v109jhff0";
   };
 
-  # Upstreamed in https://github.com/tiffany352/rink-rs/pull/53
-  cargoPatches = [ ./cargo-lock.patch ];
+  cargoSha256 = "0p63py8q4iqj5rrsir9saj7dvkrafx63z493k7p5xb2mah7b21lb";
 
-  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/5.nix b/pkgs/applications/science/misc/root/5.nix
index fd06d721ebd..cab26577bd0 100644
--- a/pkgs/applications/science/misc/root/5.nix
+++ b/pkgs/applications/science/misc/root/5.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchurl, fetchpatch, cmake, pcre, pkgconfig, python2
-, libX11, libXpm, libXft, libXext, libGLU, libGL, zlib, libxml2, lzma, gsl_1
+, libX11, libXpm, libXft, libXext, libGLU, libGL, zlib, libxml2, lz4, lzma, gsl_1, xxHash
 , Cocoa, OpenGL, noSplash ? false }:
 
 stdenv.mkDerivation rec {
   pname = "root";
-  version = "5.34.36";
+  version = "5.34.38";
 
   src = fetchurl {
     url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
-    sha256 = "1kbx1jxc0i5xfghpybk8927a0wamxyayij9c74zlqm0595gqx1pw";
+    sha256 = "1ln448lszw4d6jmbdphkr2plwxxlhmjkla48vmmq750xc1lxlfrc";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ cmake pcre python2 zlib libxml2 lzma gsl_1 ]
+  buildInputs = [ cmake pcre python2 zlib libxml2 lz4 lzma gsl_1 xxHash ]
     ++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
     ++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
     ;
@@ -20,12 +20,6 @@ stdenv.mkDerivation rec {
   patches = [
     ./sw_vers_root5.patch
 
-    (fetchpatch {
-      name = "enable_new_gcc.patch";
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/enable_new_gcc.patch?h=root5&id=91c50876081a0af36f84ec4f0f9dba869107fa4f";
-      sha256 = "1rnp0xlw0yqi7mjs4w145njd79i8kkir1qik7zwicdik9axf8ygm";
-    })
-
     # prevents rootcint from looking in /usr/includes and such
     ./purify_include_paths_root5.patch
 
@@ -92,5 +86,6 @@ stdenv.mkDerivation rec {
     description = "A data analysis framework";
     platforms = platforms.unix;
     maintainers = with maintainers; [ veprbl ];
+    license = licenses.lgpl21;
   };
 }
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/sasview/xhtml2pdf.nix b/pkgs/applications/science/misc/sasview/xhtml2pdf.nix
index 42b9560d9b8..41d15e2f1ba 100644
--- a/pkgs/applications/science/misc/sasview/xhtml2pdf.nix
+++ b/pkgs/applications/science/misc/sasview/xhtml2pdf.nix
@@ -2,7 +2,7 @@
 
 let
   #xhtml2pdf specifically requires version "1.0b10" of html5lib
-  html5 = html5lib.overrideAttrs( oldAttrs: rec{
+  html5 = html5lib.overrideAttrs( oldAttrs: rec {
     name = "${oldAttrs.pname}-${version}";
     version = "1.0b10";
     src = oldAttrs.src.override {
diff --git a/pkgs/applications/science/misc/snakemake/default.nix b/pkgs/applications/science/misc/snakemake/default.nix
index 741330e4ad2..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.16.0";
+  version = "5.19.3";
 
   propagatedBuildInputs = with python3Packages; [
     appdirs
@@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec {
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0jlf3y8b1gdv5xz37yk9b5g2b65zkk45p15x0ypvd2blpzy80537";
+    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/physics/sherpa/default.nix b/pkgs/applications/science/physics/sherpa/default.nix
index 314fc522500..a672272e9e6 100644
--- a/pkgs/applications/science/physics/sherpa/default.nix
+++ b/pkgs/applications/science/physics/sherpa/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sherpa";
-  version = "2.2.9";
+  version = "2.2.10";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/sherpa/SHERPA-MC-${version}.tar.gz";
-    sha256 = "1z7vws97k6zfzyqx0dkv2kq8d83dibi73i5jiqk5a22yplp6bnjh";
+    sha256 = "1iwa17s8ipj6a2b8zss5csb1k5y9s5js38syvq932rxcinbyjsl4";
   };
 
   buildInputs = [ gfortran sqlite lhapdf rivet ];
diff --git a/pkgs/applications/science/physics/xflr5/default.nix b/pkgs/applications/science/physics/xflr5/default.nix
new file mode 100644
index 00000000000..85838b04cbf
--- /dev/null
+++ b/pkgs/applications/science/physics/xflr5/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, fetchurl, wrapQtAppsHook, qmake }:
+
+stdenv.mkDerivation rec {
+  pname = "xflr5";
+  version = "6.47";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/xflr5/${pname}_v${version}_src.tar.gz";
+    sha256 = "02x3r9iv3ndwxa65mxn9m5dlhcrnjiq7cffi6rmb456gs3v3dnav";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ qmake wrapQtAppsHook ];
+
+  meta = with stdenv.lib; {
+    description = "An analysis tool for airfoils, wings and planes";
+    homepage = https://sourceforge.net/projects/xflr5/;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.esclear ];
+    platforms = platforms.linux;
+  };
+}
\ No newline at end of file
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/gazebo/6.nix b/pkgs/applications/science/robotics/gazebo/6.nix
deleted file mode 100644
index 80c52b49e47..00000000000
--- a/pkgs/applications/science/robotics/gazebo/6.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ stdenv, fetchurl, callPackage, ignition, gazeboSimulator, ... } @ args:
-
-callPackage ./default.nix (args // {
-  version = "6.5.1";
-  src-sha256 = "96260aa23f1a1f24bc116f8e359d31f3bc65011033977cb7fb2c64d574321908";
-  sdformat = gazeboSimulator.sdformat3;
-})
-
diff --git a/pkgs/applications/science/robotics/gazebo/default.nix b/pkgs/applications/science/robotics/gazebo/default.nix
deleted file mode 100644
index 86572e73c75..00000000000
--- a/pkgs/applications/science/robotics/gazebo/default.nix
+++ /dev/null
@@ -1,84 +0,0 @@
-{ stdenv, fetchurl, cmake, pkgconfig, boost, protobuf, freeimage
-  , boost-build, boost_process
-  , xorg_sys_opengl, tbb, ogre, tinyxml-2
-  , libtar, glxinfo,  libusb-compat-0_1, libxslt, ignition
-  , pythonPackages, utillinux
-
-  # these deps are hidden; cmake doesn't catch them
-  , gazeboSimulator, sdformat ? gazeboSimulator.sdformat, curl, tinyxml, qt4
-  , xlibsWrapper
-  , withIgnitionTransport ? true
-  , libav, withLibAvSupport ? true
-  , openal, withAudioSupport ? false
-  , withQuickBuild ? false, withHeadless ? false, withLowMemorySupport ? false
-  , doxygen, withDocs ? true
-  , bullet, withBulletEngineSupport ? false
-  , graphviz, withModelEditorSchematicView ? true # graphviz needed for this view
-  , gdal, withDigitalElevationTerrainsSupport ? true
-  , gts, withConstructiveSolidGeometrySupport ? true
-  , hdf5, withHdf5Support ? true
-  , version ? "7.0.0"
-  , src-sha256 ? "127q2g93kvmak2b6vhl13xzg56h09v14s4pki8wv7aqjv0c3whbl"
-  , ...
-}: with stdenv.lib;
-
-stdenv.mkDerivation rec {
-  inherit version;
-  pname = "gazebo";
-
-  src = fetchurl {
-    url = "https://osrf-distributions.s3.amazonaws.com/gazebo/releases/${pname}-${version}.tar.bz2";
-    sha256 = src-sha256;
-  };
-
-  enableParallelBuilding = true; # gazebo needs this so bad
-  cmakeFlags = [
-  "-DCMAKE_INSTALL_LIBDIR:PATH=lib"
-  "-DCMAKE_INSTALL_INCLUDEDIR=include" ]
-    ++ optional withQuickBuild [ "-DENABLE_TESTS_COMPILATION=False" ]
-    ++ optional withLowMemorySupport [ "-DUSE_LOW_MEMORY_TESTS=True" ]
-    ++ optional withHeadless [ "-DENABLE_SCREEN_TESTS=False" ];
-
-  nativeBuildInputs = [ cmake pkgconfig ];
-
-  propagatedNativeBuildInputs = [ boost boost-build boost_process protobuf ];
-
-  buildInputs = [
-    #cmake boost protobuf
-    freeimage
-    xorg_sys_opengl
-    tbb
-    ogre
-    tinyxml-2
-    libtar
-    glxinfo
-    libusb-compat-0_1
-    libxslt
-    ignition.math2
-    sdformat
-    pythonPackages.pyopengl
-
-    # TODO: add these hidden deps to cmake configuration & submit upstream
-    curl
-    tinyxml
-    xlibsWrapper
-    qt4
-  ] ++ optional stdenv.isLinux utillinux # on Linux needs uuid/uuid.h
-    ++ optional withDocs doxygen
-    ++ optional withLibAvSupport libav  #TODO: package rubygem-ronn and put it here
-    ++ optional withAudioSupport openal
-    ++ optional withBulletEngineSupport bullet
-    ++ optional withIgnitionTransport ignition.transport
-    ++ optional withModelEditorSchematicView graphviz
-    ++ optional withDigitalElevationTerrainsSupport gdal
-    ++ optional withConstructiveSolidGeometrySupport gts
-    ++ optional withHdf5Support hdf5;
-
-  meta = with stdenv.lib; {
-    homepage = "http://gazebosim.org/";
-    description = "Multi-robot simulator for outdoor environments";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ pxc ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/applications/science/robotics/qgroundcontrol/default.nix b/pkgs/applications/science/robotics/qgroundcontrol/default.nix
index c17ffb00118..8710b88ced3 100644
--- a/pkgs/applications/science/robotics/qgroundcontrol/default.nix
+++ b/pkgs/applications/science/robotics/qgroundcontrol/default.nix
@@ -1,34 +1,31 @@
-{ lib, mkDerivation, fetchgit, SDL2
+{ lib, mkDerivation, fetchFromGitHub, SDL2
 , qtbase, qtcharts, qtlocation, qtserialport, qtsvg, qtquickcontrols2
-, qtgraphicaleffects, qtspeech, qmake
-, makeWrapper
-, gst_all_1, pkgconfig
+, qtgraphicaleffects, qtspeech, qtx11extras, qmake, qttools
+, gst_all_1, wayland, pkgconfig
 }:
 
 mkDerivation rec {
   pname = "qgroundcontrol";
-  version = "3.5.5";
+  version = "4.0.10";
 
   qtInputs = [
     qtbase qtcharts qtlocation qtserialport qtsvg qtquickcontrols2
-    qtgraphicaleffects qtspeech
+    qtgraphicaleffects qtspeech qtx11extras
   ];
 
   gstInputs = with gst_all_1; [
-    gstreamer gst-plugins-base
+    gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad wayland
   ];
 
   enableParallelBuilding = true;
   buildInputs = [ SDL2 ] ++ gstInputs ++ qtInputs;
-  nativeBuildInputs = [ pkgconfig makeWrapper qmake ];
+  nativeBuildInputs = [ pkgconfig qmake qttools ];
 
   preConfigure = ''
     mkdir build
     cd build
   '';
 
-  NIX_CFLAGS_COMPILE = [ "-Wno-address-of-packed-member" ]; # Don't litter logs with these warnings
-
   qmakeFlags = [
     # Default install tries to copy Qt files into package
     "CONFIG+=QGC_DISABLE_BUILD_SETUP"
@@ -36,6 +33,8 @@ mkDerivation rec {
   ];
 
   installPhase = ''
+    runHook preInstall
+
     cd ..
 
     mkdir -p $out/share/applications
@@ -50,18 +49,20 @@ mkDerivation rec {
 
     mkdir -p $out/share/pixmaps
     cp -v resources/icons/qgroundcontrol.png $out/share/pixmaps
+
+    runHook postInstall
   '';
 
   postInstall = ''
-    wrapProgram "$out/bin/qgroundcontrol" \
-      --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
+    qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
   '';
 
   # 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 = "05zy6w9lwwh254wa8c6wysa67kk0flywcvipii9b1rmy47slflhs";
+    sha256 = "1jmhhd2nwxq3m9rzzmrjls8f6hhj52ia71b1sv4vvcjh802cha8g";
     fetchSubmodules = true;
   };
 
@@ -70,6 +71,6 @@ mkDerivation rec {
     homepage = "http://qgroundcontrol.org/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ pxc ];
+    maintainers = with maintainers; [ lopsided98 ];
   };
 }
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/bazaar/CVE-2017-14176.patch b/pkgs/applications/version-management/bazaar/CVE-2017-14176.patch
deleted file mode 100644
index a34ab0c6eb1..00000000000
--- a/pkgs/applications/version-management/bazaar/CVE-2017-14176.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-diff --git a/bzrlib/tests/test_ssh_transport.py b/bzrlib/tests/test_ssh_transport.py
-index 9e37c3b..fe9f219 100644
---- a/bzrlib/tests/test_ssh_transport.py
-+++ b/bzrlib/tests/test_ssh_transport.py
-@@ -22,6 +22,7 @@ from bzrlib.transport.ssh import (
-     SSHCorpSubprocessVendor,
-     LSHSubprocessVendor,
-     SSHVendorManager,
-+    StrangeHostname,
-     )
- 
- 
-@@ -161,6 +162,19 @@ class SSHVendorManagerTests(TestCase):
- 
- class SubprocessVendorsTests(TestCase):
- 
-+    def test_openssh_command_tricked(self):
-+        vendor = OpenSSHSubprocessVendor()
-+        self.assertEqual(
-+            vendor._get_vendor_specific_argv(
-+                "user", "-oProxyCommand=blah", 100, command=["bzr"]),
-+            ["ssh", "-oForwardX11=no", "-oForwardAgent=no",
-+                "-oClearAllForwardings=yes",
-+                "-oNoHostAuthenticationForLocalhost=yes",
-+                "-p", "100",
-+                "-l", "user",
-+                "--",
-+                "-oProxyCommand=blah", "bzr"])
-+
-     def test_openssh_command_arguments(self):
-         vendor = OpenSSHSubprocessVendor()
-         self.assertEqual(
-@@ -171,6 +185,7 @@ class SubprocessVendorsTests(TestCase):
-                 "-oNoHostAuthenticationForLocalhost=yes",
-                 "-p", "100",
-                 "-l", "user",
-+                "--",
-                 "host", "bzr"]
-             )
- 
-@@ -184,9 +199,16 @@ class SubprocessVendorsTests(TestCase):
-                 "-oNoHostAuthenticationForLocalhost=yes",
-                 "-p", "100",
-                 "-l", "user",
--                "-s", "host", "sftp"]
-+                "-s", "--", "host", "sftp"]
-             )
- 
-+    def test_openssh_command_tricked(self):
-+        vendor = SSHCorpSubprocessVendor()
-+        self.assertRaises(
-+            StrangeHostname,
-+            vendor._get_vendor_specific_argv,
-+                "user", "-oProxyCommand=host", 100, command=["bzr"])
-+
-     def test_sshcorp_command_arguments(self):
-         vendor = SSHCorpSubprocessVendor()
-         self.assertEqual(
-@@ -209,6 +231,13 @@ class SubprocessVendorsTests(TestCase):
-                 "-s", "sftp", "host"]
-             )
- 
-+    def test_lsh_command_tricked(self):
-+        vendor = LSHSubprocessVendor()
-+        self.assertRaises(
-+            StrangeHostname,
-+            vendor._get_vendor_specific_argv,
-+                "user", "-oProxyCommand=host", 100, command=["bzr"])
-+
-     def test_lsh_command_arguments(self):
-         vendor = LSHSubprocessVendor()
-         self.assertEqual(
-@@ -231,6 +260,13 @@ class SubprocessVendorsTests(TestCase):
-                 "--subsystem", "sftp", "host"]
-             )
- 
-+    def test_plink_command_tricked(self):
-+        vendor = PLinkSubprocessVendor()
-+        self.assertRaises(
-+            StrangeHostname,
-+            vendor._get_vendor_specific_argv,
-+                "user", "-oProxyCommand=host", 100, command=["bzr"])
-+
-     def test_plink_command_arguments(self):
-         vendor = PLinkSubprocessVendor()
-         self.assertEqual(
-diff --git a/bzrlib/transport/ssh.py b/bzrlib/transport/ssh.py
-index eecaa26..6f22341 100644
---- a/bzrlib/transport/ssh.py
-+++ b/bzrlib/transport/ssh.py
-@@ -46,6 +46,10 @@ else:
-     from paramiko.sftp_client import SFTPClient
- 
- 
-+class StrangeHostname(errors.BzrError):
-+    _fmt = "Refusing to connect to strange SSH hostname %(hostname)s"
-+
-+
- SYSTEM_HOSTKEYS = {}
- BZR_HOSTKEYS = {}
- 
-@@ -360,6 +364,11 @@ class SubprocessVendor(SSHVendor):
-     # tests, but beware of using PIPE which may hang due to not being read.
-     _stderr_target = None
- 
-+    @staticmethod
-+    def _check_hostname(arg):
-+        if arg.startswith('-'):
-+            raise StrangeHostname(hostname=arg)
-+
-     def _connect(self, argv):
-         # Attempt to make a socketpair to use as stdin/stdout for the SSH
-         # subprocess.  We prefer sockets to pipes because they support
-@@ -424,9 +433,9 @@ class OpenSSHSubprocessVendor(SubprocessVendor):
-         if username is not None:
-             args.extend(['-l', username])
-         if subsystem is not None:
--            args.extend(['-s', host, subsystem])
-+            args.extend(['-s', '--', host, subsystem])
-         else:
--            args.extend([host] + command)
-+            args.extend(['--', host] + command)
-         return args
- 
- register_ssh_vendor('openssh', OpenSSHSubprocessVendor())
-@@ -439,6 +448,7 @@ class SSHCorpSubprocessVendor(SubprocessVendor):
- 
-     def _get_vendor_specific_argv(self, username, host, port, subsystem=None,
-                                   command=None):
-+        self._check_hostname(host)
-         args = [self.executable_path, '-x']
-         if port is not None:
-             args.extend(['-p', str(port)])
-@@ -460,6 +470,7 @@ class LSHSubprocessVendor(SubprocessVendor):
- 
-     def _get_vendor_specific_argv(self, username, host, port, subsystem=None,
-                                   command=None):
-+        self._check_hostname(host)
-         args = [self.executable_path]
-         if port is not None:
-             args.extend(['-p', str(port)])
-@@ -481,6 +492,7 @@ class PLinkSubprocessVendor(SubprocessVendor):
- 
-     def _get_vendor_specific_argv(self, username, host, port, subsystem=None,
-                                   command=None):
-+        self._check_hostname(host)
-         args = [self.executable_path, '-x', '-a', '-ssh', '-2', '-batch']
-         if port is not None:
-             args.extend(['-P', str(port)])
diff --git a/pkgs/applications/version-management/bazaar/add_certificates.patch b/pkgs/applications/version-management/bazaar/add_certificates.patch
deleted file mode 100644
index 18fac36daec..00000000000
--- a/pkgs/applications/version-management/bazaar/add_certificates.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ru orig/bzrlib/transport/http/_urllib2_wrappers.py bzr-2.7.0/bzrlib/transport/http/_urllib2_wrappers.py
---- orig/bzr-2.7.0/bzrlib/transport/http/_urllib2_wrappers.py	2016-02-01 20:49:17.000000000 +0100
-+++ bzr-2.7.0/bzrlib/transport/http/_urllib2_wrappers.py	2016-06-18 23:15:21.089511349 +0200
-@@ -95,6 +95,7 @@
-     u"/usr/local/share/certs/ca-root-nss.crt",  # FreeBSD
-     # XXX: Needs checking, can't trust the interweb ;) -- vila 2012-01-25
-     u'/etc/openssl/certs/ca-certificates.crt',  # Solaris
-+    u'@certPath@',
- ]
-
-
diff --git a/pkgs/applications/version-management/bazaar/default.nix b/pkgs/applications/version-management/bazaar/default.nix
deleted file mode 100644
index fa0009d3ef0..00000000000
--- a/pkgs/applications/version-management/bazaar/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ stdenv, fetchurl, python2Packages
-, withSFTP ? true
- }:
-
-python2Packages.buildPythonApplication rec {
-  version = "2.7";
-  release = ".0";
-  name = "bazaar-${version}${release}";
-
-  src = fetchurl {
-    url = "https://launchpad.net/bzr/${version}/${version}${release}/+download/bzr-${version}${release}.tar.gz";
-    sha256 = "1cysix5k3wa6y7jjck3ckq3abls4gvz570s0v0hxv805nwki4i8d";
-  };
-
-  doCheck = false;
-
-  propagatedBuildInputs = []
-  ++ stdenv.lib.optionals withSFTP [ python2Packages.paramiko ];
-
-  patches = [
-    # Bazaar can't find the certificates alone
-    ./add_certificates.patch
-    ./CVE-2017-14176.patch
-  ];
-  postPatch = ''
-    substituteInPlace bzrlib/transport/http/_urllib2_wrappers.py \
-      --subst-var-by certPath /etc/ssl/certs/ca-certificates.crt
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "http://bazaar-vcs.org/";
-    description = "A distributed version control system that Just Works";
-    platforms = platforms.unix;
-    license = licenses.gpl2Plus;
-  };
-}
diff --git a/pkgs/applications/version-management/bazaar/tools.nix b/pkgs/applications/version-management/bazaar/tools.nix
deleted file mode 100644
index d76260ad4be..00000000000
--- a/pkgs/applications/version-management/bazaar/tools.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, fetchurl, python2Packages }:
-
-python2Packages.buildPythonApplication rec {
-  pname = "bzr-tools";
-  version = "2.6.0";
-
-  src = fetchurl {
-    url = "https://launchpad.net/bzrtools/stable/${version}/+download/bzrtools-${version}.tar.gz";
-    sha256 = "0n3zzc6jf5866kfhmrnya1vdr2ja137a45qrzsz8vz6sc6xgn5wb";
-  };
-
-  doCheck = false;
-
-  meta = with stdenv.lib; {
-    description = "Bazaar plugins";
-    homepage = "http://wiki.bazaar.canonical.com/BzrTools";
-    platforms = platforms.unix;
-    license = licenses.gpl2;
-  };
-}
diff --git a/pkgs/applications/version-management/bcompare/default.nix b/pkgs/applications/version-management/bcompare/default.nix
index d8a6ec05844..1af64f8e6df 100644
--- a/pkgs/applications/version-management/bcompare/default.nix
+++ b/pkgs/applications/version-management/bcompare/default.nix
@@ -1,12 +1,12 @@
-{ autoPatchelfHook, bzip2, cairo, coreutils, fetchurl, gdk-pixbuf, gnome2, gtk2, kcoreaddons, ki18n, kio, kservice, lib, qt4, qtbase, stdenv, runtimeShell }:
+{ autoPatchelfHook, bzip2, cairo, coreutils, fetchurl, gdk-pixbuf, pango, gtk2, kcoreaddons, ki18n, kio, kservice, lib, qt4, qtbase, stdenv, runtimeShell }:
 
 stdenv.mkDerivation rec {
   pname = "bcompare";
-  version = "4.3.2.24472";
+  version = "4.3.5.24893";
 
   src = fetchurl {
     url = "https://www.scootersoftware.com/${pname}-${version}_amd64.deb";
-    sha256 = "1msygg01yi0n8lpk8sl226p09ls7wvd3z3k067mdgrss8rjy5va5";
+    sha256 = "1gm8d6hgdg8f3hd83wqac28gkvz5nyn62wj7x44vmr60dh4i2jfn";
   };
 
   unpackPhase = ''
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     stdenv.cc.cc.lib
     gtk2
-    gnome2.pango
+    pango
     cairo
     kio
     kservice
diff --git a/pkgs/applications/version-management/cvs-fast-export/default.nix b/pkgs/applications/version-management/cvs-fast-export/default.nix
index 5d3c3976f3f..0592f6e545d 100644
--- a/pkgs/applications/version-management/cvs-fast-export/default.nix
+++ b/pkgs/applications/version-management/cvs-fast-export/default.nix
@@ -7,7 +7,7 @@ with stdenv; with lib;
 mkDerivation rec {
   name = "cvs-fast-export-${meta.version}";
   meta = {
-    version = "1.53";
+    version = "1.55";
     description = "Export an RCS or CVS history as a fast-import stream";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ dfoxfranke ];
@@ -16,8 +16,8 @@ mkDerivation rec {
   };
 
   src = fetchurl {
-    url = "http://www.catb.org/~esr/cvs-fast-export/cvs-fast-export-1.53.tar.gz";
-    sha256 = "01zda8qbi9cm2p23cxw0h5cx55ysr0v7dzzbpx9qa19wpv75kisb";
+    url = "http://www.catb.org/~esr/cvs-fast-export/cvs-fast-export-1.55.tar.gz";
+    sha256 = "06y2myhhv2ap08bq7d7shq0b7lq6wgznwrpz6622xq66cxkf2n5g";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/version-management/cvs2svn/default.nix b/pkgs/applications/version-management/cvs2svn/default.nix
index 68c4e72e531..ae1929565b6 100644
--- a/pkgs/applications/version-management/cvs2svn/default.nix
+++ b/pkgs/applications/version-management/cvs2svn/default.nix
@@ -1,6 +1,6 @@
 { lib, fetchurl, makeWrapper
 , python2Packages
-, cvs, subversion, git, bazaar
+, cvs, subversion, git, breezy
 }:
 
 python2Packages.buildPythonApplication  rec {
@@ -14,7 +14,7 @@ python2Packages.buildPythonApplication  rec {
 
   buildInputs = [ makeWrapper ];
 
-  checkInputs = [ subversion git bazaar ];
+  checkInputs = [ subversion git breezy ];
 
   checkPhase = "python run-tests.py";
 
diff --git a/pkgs/applications/version-management/fossil/default.nix b/pkgs/applications/version-management/fossil/default.nix
index fa715884b60..d23728a060f 100644
--- a/pkgs/applications/version-management/fossil/default.nix
+++ b/pkgs/applications/version-management/fossil/default.nix
@@ -5,7 +5,7 @@
 
 stdenv.mkDerivation rec {
   pname = "fossil";
-  version = "2.10";
+  version = "2.11.1";
 
   src = fetchurl {
     urls =
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
         "https://www.fossil-scm.org/index.html/uv/fossil-src-${version}.tar.gz"
       ];
     name = "${pname}-${version}.tar.gz";
-    sha256 = "041bs4fgk52fw58p7s084pxk9d9vs5v2f2pjbznqawz75inpg8yq";
+    sha256 = "1sxq1hn87fdikhbg9y3v4sjy4gxaifnx4dig8nx6xwd5mm7z74dk";
   };
 
   buildInputs = [ zlib openssl readline sqlite which ed ]
diff --git a/pkgs/applications/version-management/gerrit/default.nix b/pkgs/applications/version-management/gerrit/default.nix
index 4382a638893..6412a6da9a6 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.4";
+  version = "3.2.2";
 
   src = fetchurl {
     url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war";
-    sha256 = "1pi4252hsx1zcmarzzimds1pw34x3fwi96nh9xvxqvv2cjjlr2c1";
+    sha256 = "08i6rb8hawj44gg57mbhwjjmfn7mc45racl8gjsyrcyb8jm6zj1s";
   };
 
   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 ];
+    maintainers = with maintainers; [ flokli jammerful zimbatm ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix b/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
index b225782f286..99c6323217a 100644
--- a/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
@@ -3,7 +3,7 @@
 let
   version = "1.13.0";
   jarName = "bfg-${version}.jar";
-  mavenUrl = "http://central.maven.org/maven2/com/madgag/bfg/${version}/${jarName}";
+  mavenUrl = "mirror://maven/com/madgag/bfg/${version}/${jarName}";
 in
   stdenv.mkDerivation {
     inherit version jarName;
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index c591ef554ee..657ae4605eb 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -26,7 +26,9 @@ let
 
   darcs-to-git = callPackage ./darcs-to-git { };
 
-  delta = callPackage ./delta { };
+  delta = callPackage ./delta {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   diff-so-fancy = callPackage ./diff-so-fancy { };
 
@@ -61,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 { };
@@ -82,11 +86,19 @@ let
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
   };
 
+  git-doc = lib.addMetaAttrs {
+    description = "Additional documentation for Git";
+    longDescription = ''
+      This package contains additional documentation (HTML and text files) that
+      is referenced in the man pages of Git.
+    '';
+  } gitFull.doc;
+
   git-extras = callPackage ./git-extras { };
 
   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;
@@ -136,6 +148,10 @@ let
 
   git-subrepo = callPackage ./git-subrepo { };
 
+  git-subset = callPackage ./git-subset {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   git-subtrac = callPackage ./git-subtrac { };
 
   git-sync = callPackage ./git-sync { };
@@ -171,6 +187,8 @@ let
 
   gitflow = callPackage ./gitflow { };
 
+  gitin = callPackage ./gitin { };
+
   gitstatus = callPackage ./gitstatus { };
 
   gitui = callPackage ./gitui {
@@ -219,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 60950dc0465..12b63f7c387 100644
--- a/pkgs/applications/version-management/git-and-tools/delta/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/delta/default.nix
@@ -1,25 +1,32 @@
-{ lib, fetchFromGitHub, rustPlatform, llvmPackages, installShellFiles }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, rustPlatform
+, installShellFiles
+, libiconv
+, Security
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "delta";
-  version = "0.1.1";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "dandavison";
     repo = pname;
     rev = version;
-    sha256 = "1b5ap468d0gvgwkx6wqxvayzda2xw95lymd0kl38nq1fc0ica6hk";
+    sha256 = "15vpmalv2195aff3xd85nr99xn2dbc0k1lmlf7xp293s79kibrz7";
   };
 
-  LLVM_CONFIG_PATH = "${llvmPackages.llvm}/bin/llvm-config";
-  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
-
-  cargoSha256 = "07mjl751r9d88fnmnan0ip0m3vxqf51vq2y7k3g3yywcgasj9jgr";
+  cargoSha256 = "0vgjijrxpfrgwh17dpxhgq8jdr6f9cj0mkr5ni9m3w8qv545a1ix";
 
   nativeBuildInputs = [ installShellFiles ];
 
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
+
   postInstall = ''
-    installShellCompletion --bash --name delta.bash completion/bash/completion.sh
+    installShellCompletion --bash --name delta.bash etc/completion/completion.bash
+    installShellCompletion --zsh --name _delta etc/completion/completion.zsh
   '';
 
   meta = with lib; {
@@ -27,6 +34,6 @@ rustPlatform.buildRustPackage rec {
     description = "A syntax-highlighting pager for git";
     changelog = "https://github.com/dandavison/delta/releases/tag/${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ marsam ma27 ];
+    maintainers = with maintainers; [ marsam ma27 zowoq ];
   };
 }
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 adec2a361b5..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,31 +2,37 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "0.8.0";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "08fy3677yq52x40rab49ijhw4r25ls2807dbv9wpna6w07n7r8v7";
+    sha256 = "0l1d75smvly2k6s3j55n674ld6i5hd8yn6lfhg8vvkvhxx2jjvb9";
   };
 
-  modSha256 = "0v33x9bnwjfg4425vralnsb4i22c0g1rcmaga9911v0i7d51k0fn";
+  vendorSha256 = "1xq1n583p0a3j78afprm2hk5f1hchdrx4vvphml95rv9786vjbcc";
 
-  buildFlagsArray = [
-    "-ldflags=-s -w -X github.com/cli/cli/command.Version=${version}"
-  ];
+  nativeBuildInputs = [ installShellFiles ];
 
-  subPackages = [ "cmd/gh" ];
+  buildPhase = ''
+    make GH_VERSION=${version} bin/gh manpages
+  '';
+
+  installPhase = ''
+    install -Dm755 bin/gh -t $out/bin
+    installManPage share/man/*/*.[1-9]
 
-  nativeBuildInputs = [ installShellFiles ];
-  postInstall = ''
     for shell in bash fish zsh; do
       $out/bin/gh completion -s $shell > gh.$shell
       installShellCompletion gh.$shell
     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 f9d8eab8e55..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.0";
+  version = "1.1.5";
 
   src = fetchFromGitHub {
     owner = "x-motemen";
     repo = "ghq";
     rev = "v${version}";
-    sha256 = "1i0q9lxdxbyj0l0510cbkwkbycawrx8cxlbdrhb2p2fnk0vqnyiv";
+    sha256 = "098fik155viylq07az7crzbgswcvhpx0hr68xpvyx0rpri792jbq";
   };
 
-  modSha256 = "0hlbhky3c6zva9khn73n6xgq57k5p8anskxy3g2m0wzhr72cyc41";
+  vendorSha256 = "0gll132g111vn1hdmdjpkha9rbyppz0qj1ld89gwlk2mqd57jxkd";
+
+  doCheck = false;
 
   buildFlagsArray = ''
     -ldflags=
diff --git a/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix b/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix
index 3f5cbad4c12..00f279942d9 100644
--- a/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix
@@ -1,19 +1,25 @@
-{ stdenv, fetchFromGitHub, rustPlatform, libiconv, Security }:
+{ stdenv, fetchFromGitHub, rustPlatform, installShellFiles, libiconv, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "git-absorb";
-  version = "0.5.0";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner  = "tummychow";
     repo   = pname;
     rev    = "refs/tags/${version}";
-    sha256 = "0lggv3knh6iglkh8x2zqvqcs3dlwfsdiclg7pmdrycny72la4k2j";
+    sha256 = "0kvb9nzjlxhnrd2ir3zjd99v7zcq4bch1i9nqsn3505j5m0wv0hh";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
 
-  cargoSha256 = "13gikjswbb0kkpvb5zhj88qq5l667624gkfb7hd3zygh4qyhsy05";
+  cargoSha256 = "0bppb1ng77ynhlxnhgz9qx4x5j0lyzcxw3zshfpgjc03fxcwl6cz";
+
+  postInstall = ''
+    installManPage Documentation/git-absorb.1
+  '';
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/tummychow/git-absorb";
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 3ca25d6cf13..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;
@@ -13,13 +12,15 @@ buildGoModule rec {
     sha256 = "01ab3mlwh5g1vr3x85fppflg18gb8ip9mjfsp2b5rfigd9lxyyns";
   };
 
-  modSha256 = "05wxvzsbhvz15596019vs7h09kynfsfjx3i5xyrl5xjzdxbaqbrq";
+  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 ];
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git-extras/default.nix b/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
index f2afdd941fe..ed9e1cd4bdf 100644
--- a/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "git-extras";
-  version = "5.1.0";
+  version = "6.0.0";
 
   src = fetchzip {
     url = "https://github.com/tj/git-extras/archive/${version}.tar.gz";
-    sha256 = "0ja8ds9gpibrnwcf8n6cpbggwkbks0ik3z9vfx5h1yf3ln1nycky";
+    sha256 = "0mxb3c5lb5n7c76bp10bw7bid564vjxi5f7cvzaj2ss93v5rr11g";
   };
 
   nativeBuildInputs = [ unixtools.column which ];
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 0439669f9da..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.26.0";
+  version = "2.28.0";
 
   src = fetchurl {
     url = "https://github.com/newren/git-filter-repo/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "15d07i66b090bhjfj9s4s2s38k75mhxmddzyn44bnnyb967w6yjk";
+    sha256 = "0sa6h6k1mnhx8p8w5d88gx7cqbnxaazfj1dv47c107fk70hqvvpx";
   };
 
   buildInputs = [ pythonPackages.python ];
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/newren/git-filter-repo";
     description = "Quickly rewrite git repository history (filter-branch replacement)";
     license = licenses.mit;
+    inherit (pythonPackages.python.meta) platforms;
     maintainers = [ maintainers.marsam ];
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git-gone/default.nix b/pkgs/applications/version-management/git-and-tools/git-gone/default.nix
index 32350fa538d..46decaf3cc1 100644
--- a/pkgs/applications/version-management/git-and-tools/git-gone/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-gone/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-gone";
-  version = "0.3.2";
+  version = "0.3.6";
 
   src = fetchFromGitHub {
     owner = "lunaryorn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0zc4cb1dg30np5yc4ymkr894qs2bk0r123i302md00niayk4njyd";
+    sha256 = "0wpmabd5lshsga3dhv1hix7i99f1f82rpl6kjmpi315whg11kki3";
   };
 
-  cargoSha256 = "1d892889ml7sqyxzmjipq5fvizb4abqhmmn450qm7yam9fn5q5wf";
+  cargoSha256 = "0ayqsrhy6hpi20gfryhnwl2c1na4nnmzxkp7him104cc07vsdllq";
 
   nativeBuildInputs = [ pkgconfig makeWrapper installShellFiles ];
 
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 42be3f7d354..76c991f2283 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.13.6";
+  version = "2.15.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0n07gm05676vgfh6vlym59jwwzym9xmibhr0zpf0drlx02fr47qy";
+    sha256 = "0kpfi1w1jnn7v7mny71jil3sc9mm08lz47l9v3hzgs5z3ham98jb";
   };
 
   nativeBuildInputs = [ installShellFiles pbr ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-open/default.nix b/pkgs/applications/version-management/git-and-tools/git-open/default.nix
index 10f221b6388..f7b2120cca0 100644
--- a/pkgs/applications/version-management/git-and-tools/git-open/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-open/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-open";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "paulirish";
     repo = "git-open";
     rev = "v${version}";
-    sha256 = "0lprzrjsqrg83gixfaiw26achgd8l7s56jknsjss4p7y0w1fxm05";
+    sha256 = "11n46bngvca5wbdbfcxzjhjbfdbad7sgf7h9gf956cb1q8swsdm0";
   };
 
   buildInputs = [ makeWrapper ];
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-subset/default.nix b/pkgs/applications/version-management/git-and-tools/git-subset/default.nix
new file mode 100644
index 00000000000..9893e6dd784
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git-subset/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, curl, libiconv, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "git-subset";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "jasonwhite";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "02z2r0kcd0nnn1zjslp6xxam5ddbhrmzn67qzxhlamsw0p9vvkbb";
+  };
+
+  cargoSha256 = "1ydrrq35h1h5s59mx8kwwf3bp7lsmla3jl53ccdlsq29x0rj2jhs";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ curl libiconv Security ];
+
+  meta = with stdenv.lib; {
+    description = "Super fast Git tree filtering";
+    homepage = "https://github.com/jasonwhite/git-subset";
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+  };
+}
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 a5097697a86..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
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "git-subtrac";
-  version = "0.02";
+  version = "0.03";
 
   src = fetchFromGitHub {
     owner = "apenwarr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1nj950r38sxzrgw69m1xphm7a4km2g29iw2897gfx4wx57jl957k";
+    sha256 = "1ky04h18vg1yl9lykbhkmf25qslg0z2qzziy8c7afmvzvvvhm2v5";
   };
 
-  modSha256 = "147vzllp1gydk2156hif313vwykagrj35vaiqy1swqczxs7p9hhs";
+  vendorSha256 = "1ccwbhzwys8sl3m2rs2lp70snzsi2a0ahnnq8kn15rrlvsv5qahf";
+
+  doCheck = false;
 
   meta = with lib; {
     description = "Keep the content for your git submodules all in one place: the parent repo";
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 9c1a01f42ae..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.26.2";
+  version = "2.28.0";
   svn = subversionClient.override { perlBindings = perlSupport; };
 
   gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
@@ -33,10 +34,10 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    sha256 = "0j685w6pzkn926z5nf5r8fij4ziipvw4c9yb0wc577nzf4j16rbd";
+    sha256 = "17a311vzimqn1glc9d7x82rhb1mb81m5rr4g8xji8idaafid39fz";
   };
 
-  outputs = [ "out" ];
+  outputs = [ "out" ] ++ stdenv.lib.optional withManual "doc";
 
   hardeningDisable = [ "format" ];
 
@@ -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
@@ -234,7 +236,7 @@ stdenv.mkDerivation {
       '')
 
    + stdenv.lib.optionalString withManual ''# Install man pages and Info manual
-       make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES PERL_PATH="${buildPackages.perl}/bin/perl" cmd-list.made install install-info \
+       make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES PERL_PATH="${buildPackages.perl}/bin/perl" cmd-list.made install install-html install-info \
          -C Documentation ''
 
    + (if guiSupport then ''
@@ -286,13 +288,14 @@ stdenv.mkDerivation {
         mv t/{,skip-}$test.sh || true
       else
         sed -i t/$test.sh \
-          -e "/^ *test_expect_.*$pattern/,/^ *' *\$/{s/^/#/}"
+          -e "/^\s*test_expect_.*$pattern/,/^\s*' *\$/{s/^/: #/}"
       fi
     }
 
     # Shared permissions are forbidden in sandbox builds.
     disable_test t0001-init shared
     disable_test t1301-shared-repo
+    disable_test t5324-split-commit-graph 'split commit-graph respects core.sharedrepository'
 
     # Our patched gettext never fallbacks
     disable_test t0201-gettext-fallbacks
@@ -343,6 +346,6 @@ stdenv.mkDerivation {
     '';
 
     platforms = stdenv.lib.platforms.all;
-    maintainers = with stdenv.lib.maintainers; [ peti wmertens globin ];
+    maintainers = with stdenv.lib.maintainers; [ primeos peti wmertens globin ];
   };
 }
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 c9d188e10e5..5fe6b34fd3b 100644
--- a/pkgs/applications/version-management/git-and-tools/gita/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gita/default.nix
@@ -1,17 +1,22 @@
 { lib
 , buildPythonApplication
-, fetchPypi
+, fetchFromGitHub
+, git
+, pytest
 , pyyaml
 , setuptools
+, installShellFiles
 }:
 
 buildPythonApplication rec {
-  version = "0.10.5";
+  version = "0.10.9";
   pname = "gita";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1xggslmrrfszpl190klkc97fnl88gml1bnkmkzp6aimdch66g4jg";
+  src = fetchFromGitHub {
+    sha256 = "0wilyf4nnn2jyxrfqs8krya3zvhj6x36szsp9xhb6h08g1ihzp5i";
+    rev = "v${version}";
+    repo = "gita";
+    owner = "nosarthur";
   };
 
   propagatedBuildInputs = [
@@ -19,6 +24,29 @@ buildPythonApplication rec {
     setuptools
   ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  postUnpack = ''
+    for case in "\n" ""; do
+        substituteInPlace source/tests/test_main.py \
+         --replace "'gita$case'" "'source$case'"
+    done
+  '';
+
+  checkInputs = [
+    git
+    pytest
+  ];
+
+  checkPhase = ''
+    git init
+    pytest tests
+  '';
+
+  postInstall = ''
+    installShellCompletion --bash --name gita ${src}/.gita-completion.bash
+  '';
+
   meta = with lib; {
     description = "A command-line tool to manage multiple git repos";
     homepage = "https://github.com/nosarthur/gita";
diff --git a/pkgs/applications/version-management/git-and-tools/gitbatch/default.nix b/pkgs/applications/version-management/git-and-tools/gitbatch/default.nix
index 2b372cc0e21..99a127f3d8f 100644
--- a/pkgs/applications/version-management/git-and-tools/gitbatch/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitbatch/default.nix
@@ -12,7 +12,7 @@ buildGoPackage rec {
     owner = "isacikgoz";
     repo = "gitbatch";
     rev = "381b0df7f86056c625c0d4d2d979733c1ee5def7";
-    sha256 = "sha256:0613vfqdn3k0w7fm25rqnqdr67w9vii3i56dfslqcn1vqjfrff3q";
+    sha256 = "0613vfqdn3k0w7fm25rqnqdr67w9vii3i56dfslqcn1vqjfrff3q";
   };
 
   meta = with stdenv.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
new file mode 100644
index 00000000000..af9aef6d39c
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/gitin/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildGoPackage
+, fetchFromGitHub
+, pkgconfig
+, libgit2_0_27
+}:
+
+buildGoPackage rec {
+  version = "0.2.3";
+  pname = "gitin";
+
+  goPackagePath = "github.com/isacikgoz/gitin";
+
+  src = fetchFromGitHub {
+    owner = "isacikgoz";
+    repo = "gitin";
+    rev = "v${version}";
+    sha256 = "00z6i0bjk3hdxbc0cy12ss75b41yvzyl5pm6rdrvsjhzavry2fa3";
+  };
+
+  goDeps = ./deps.nix;
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libgit2_0_27 ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/isacikgoz/gitin";
+    description = "Text-based user interface for git";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ kimat ];
+  };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/gitin/deps.nix b/pkgs/applications/version-management/git-and-tools/gitin/deps.nix
new file mode 100644
index 00000000000..908665693b8
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/gitin/deps.nix
@@ -0,0 +1,121 @@
+# 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/fatih/color";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fatih/color";
+      rev = "daf2830f2741ebb735b21709a520c5f37d642d85";
+      sha256 = "086z8ssmr1fn9ba4mqnw7pnccfpys6l5yfhvycv1gdrsk7n27mvs";
+    };
+  }
+  {
+    goPackagePath = "github.com/isacikgoz/gia";
+    fetch = {
+      type = "git";
+      url = "https://github.com/isacikgoz/gia";
+      rev = "00556493579ec25f4e199b85ee1e2a73c98d15bb";
+      sha256 = "16nqi4z1pgybcw05wbp3qnbbq407smcr56hq7npnhkirngc5j822";
+    };
+  }
+  {
+    goPackagePath = "github.com/jroimartin/gocui";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jroimartin/gocui";
+      rev = "c055c87ae801372cd74a0839b972db4f7697ae5f";
+      sha256 = "1b1cbjg925l1c5v3ls8amni9716190yzf847cqs9wjnj82z8qa47";
+    };
+  }
+  {
+    goPackagePath = "github.com/justincampbell/timeago";
+    fetch = {
+      type = "git";
+      url = "https://github.com/justincampbell/timeago";
+      rev = "027f40306f1dbe89d24087611680ef95543bf876";
+      sha256 = "1p3va1cn9x5pyvq7k64mnvbxp5zy7h9z49syjyglixgg6avdbp1v";
+    };
+  }
+  {
+    goPackagePath = "github.com/kelseyhightower/envconfig";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kelseyhightower/envconfig";
+      rev = "0b417c4ec4a8a82eecc22a1459a504aa55163d61";
+      sha256 = "1a7b35njpqz94gbd7wvsl3wjzpd5y1fj1lrg2sdh00yq0nax1qj9";
+    };
+  }
+  {
+    goPackagePath = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev = "14e809f6d78fcf9f48ff9b70981472b64c05f754";
+      sha256 = "1mvlxcdwr0vwp8b2wqs6y7hk72y28sqh03dz5x0xkg48d4y9cplj";
+    };
+  }
+  {
+    goPackagePath = "github.com/nsf/termbox-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nsf/termbox-go";
+      rev = "38ba6e5628f1d70bac606cfd210b9ad1a16c3027";
+      sha256 = "03xx5vbnavklsk6wykcc7qhmhvn2074sx0ql06b51vqsxwsa6zw2";
+    };
+  }
+  {
+    goPackagePath = "github.com/sahilm/fuzzy";
+    fetch = {
+      type = "git";
+      url = "https://github.com/sahilm/fuzzy";
+      rev = "d88f8cb825ddd46a2ce86b60382e11645220ee33";
+      sha256 = "0nl4l02s3961p11aj1vgajfy28rqlya2z6af2xjncra59gfhqvlq";
+    };
+  }
+  {
+    goPackagePath = "github.com/waigani/diffparser";
+    fetch = {
+      type = "git";
+      url = "https://github.com/waigani/diffparser";
+      rev = "7391f219313d9175703f67561b222fd2a81bca30";
+      sha256 = "0h3y3ivlghdvkyqsh5lcidqdajhc9g7m1xqm73j9a0ayby0sx1ql";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/alecthomas/kingpin.v2";
+      rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
+      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/libgit2/git2go.v27";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/libgit2/git2go.v27";
+      rev = "6cc7d3dc6aec2781fe0239315da215f49c76e2f8";
+      sha256 = "0b2m4rjadngyd675bi1k21pyi9r91dsxngzd4mikacpd7yshgvaq";
+    };
+  }
+]
+
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 eab382386ef..b0e14859eed 100644
--- a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
@@ -1,14 +1,14 @@
 { callPackage, stdenv, fetchFromGitHub, ...}:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "gitstatus";
-  version = "unstable-2020-04-21";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "gitstatus";
-    rev = "3494f25b0b3b2eac241cf669d1fea2b49ea42fb3";
-    sha256 = "0b4g14dkkgih6zps2w1krl9xf44ysj02617zj1k51z127v2lpm1f";
+    rev = "v${version}";
+    sha256 = "1kspz2fhryyjhn6gqf029rv0386a1ga08sf6g0l6smivw628k71l";
   };
 
   buildInputs = [ (callPackage ./romkatv_libgit2.nix {}) ];
@@ -24,7 +24,6 @@ stdenv.mkDerivation {
     description = "10x faster implementation of `git status` command";
     homepage = "https://github.com/romkatv/gitstatus";
     license = [ licenses.gpl3 ];
-
     maintainers = with maintainers; [ mmlb hexa ];
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/gitstatus/romkatv_libgit2.nix b/pkgs/applications/version-management/git-and-tools/gitstatus/romkatv_libgit2.nix
index e4cd58bf0f0..2f99c88a37b 100644
--- a/pkgs/applications/version-management/git-and-tools/gitstatus/romkatv_libgit2.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitstatus/romkatv_libgit2.nix
@@ -6,16 +6,17 @@ libgit2.overrideAttrs (oldAttrs: {
     "-DBUILD_SHARED_LIBS=OFF"
     "-DREGEX_BACKEND=builtin"
     "-DUSE_BUNDLED_ZLIB=ON"
+    "-DUSE_GSSAPI=OFF"
     "-DUSE_HTTPS=OFF"
     "-DUSE_HTTP_PARSER=builtin"  # overwritten from libgit2
-    "-DUSE_ICONV=OFF"
+    "-DUSE_NTLMCLIENT=OFF"
     "-DUSE_SSH=OFF"
     "-DZERO_NSEC=ON"
   ];
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "libgit2";
-    rev = "bb77509f4436901f3958e30272026f63d2247d7d";
-    sha256 = "06iypr0sc6g11xipwfbgm6f039d4qy9krmwb3zww8k4y004s5jcv";
+    rev = "tag-005f77dca6dbe8788e55139fa1199fc94cc04f9a";
+    sha256 = "1h5bnisk4ljdpfzlv8g41m8js9841xyjhfywc5cn8pmyv58c50il";
   };
 })
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 5ed4b0d3727..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.2.2";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "extrawurst";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1vcdgzr71m9rlkaq5pc2vnli3hdh7vv8g3ji5ancnlk3zcqc78xy";
+    sha256 = "0lxpdwpxizc4bczh5cl2x2xbbdam3fakvgcbbrdh43czgjwb4ds1";
   };
 
-  cargoSha256 = "04g089y6k0p36h08v6swcg1ig2kcadkidnlc0rh04znmv0bkn84d";
+  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 5a00d6b1f86..2413019ebc7 100644
--- a/pkgs/applications/version-management/git-and-tools/lab/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/lab/default.nix
@@ -13,7 +13,9 @@ buildGoModule rec {
 
   subPackages = [ "." ];
 
-  modSha256 = "03fqa7s6729g0a6ffiyc61dkldpi7vg8pvvpqak4c0mqi1dycivd";
+  vendorSha256 = "1lrmafvv5zfn9kc0p8g5vdz351n1zbaqwhwk861fxys0rdpqskyc";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
@@ -29,6 +31,5 @@ buildGoModule rec {
     homepage = "https://zaquestion.github.io/lab";
     license = licenses.cc0;
     maintainers = with maintainers; [ marsam dtzWill ];
-    platforms = platforms.all;
   };
 }
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 9fc89d520ae..15c323680a4 100644
--- a/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "lefthook";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "Arkweid";
     repo = "lefthook";
-    sha256 = "14rcvbzzrx0m3xijl8qhw5l2h0q10hqzad2hqm3079g893f2qad0";
+    sha256 = "1ciyxjx3r3dcl8xas49kqsjshs1bv4pafmfmhdfyfdvlaj374hgj";
   };
 
-  modSha256 = "0ih11gw2y9dhv3zw1fzjmdfjln5h6zg1bj7sl68cglf6743siqnq";
+  vendorSha256 = "1pdrw4vwbj9cka2pjbjvxviigfvnrf8sgws27ixwwiblbkj4isc8";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Fast and powerful Git hooks manager for any type of projects";
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 2cd4adce939..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,31 +1,26 @@
-{ stdenv, fetchFromGitHub, python2, git }:
+{ stdenv, python3Packages, fetchFromGitHub, git, installShellFiles }:
 
-let
-  name = "stgit-${version}";
-  version = "0.22";
-in
-stdenv.mkDerivation {
-  inherit name;
+python3Packages.buildPythonApplication rec {
+  pname = "stgit";
+  version = "0.23";
 
   src = fetchFromGitHub {
     owner = "ctmarinas";
     repo = "stgit";
     rev = "v${version}";
-    sha256 = "0xpvs5fa50rrvl2c8naha1nblk5ip2mgg63a9srqqxfx6z8qmrfz";
+    sha256 = "1r9y8qnl6kdvq61788pnfhhgyv2xrnyrizbhy4qz4l1bpqkwfr2r";
   };
 
-  buildInputs = [ python2 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-repo/default.nix b/pkgs/applications/version-management/git-repo/default.nix
index 9488bb8ff78..eb3f95a354f 100644
--- a/pkgs/applications/version-management/git-repo/default.nix
+++ b/pkgs/applications/version-management/git-repo/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-repo";
-  version = "2.7";
+  version = "2.8";
 
   src = fetchFromGitHub {
     owner = "android";
     repo = "tools_repo";
     rev = "v${version}";
-    sha256 = "19wn16m9sy8fv31zl90av5la60l5hsf5fvvfpgiy0470rkagvz6j";
+    sha256 = "00sahddplisg55zpjz4v4sc7zqbh3apx36xv77g55nabwz7han8d";
   };
 
   patches = [ ./import-ssl-module.patch ];
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 34a3d804707..70169bd90e5 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -1,6 +1,5 @@
 { stdenv, buildGoPackage, fetchurl, makeWrapper
 , git, bash, gzip, openssh, pam
-, fetchpatch
 , sqliteSupport ? true
 , pamSupport ? true
 }:
@@ -9,11 +8,11 @@ with stdenv.lib;
 
 buildGoPackage rec {
   pname = "gitea";
-  version = "1.11.5";
+  version = "1.12.3";
 
   src = fetchurl {
     url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
-    sha256 = "0iqxwg53wjwi4vpq2h6fwmniazsi4cf68fcjrs459qbz4d6x8xa9";
+    sha256 = "05z1pp2lnbr82pw97wy0j0qk2vv1qv9c46df13d03xdfsc3gsm50";
   };
 
   unpackPhase = ''
@@ -25,10 +24,6 @@ buildGoPackage rec {
 
   patches = [
     ./static-root-path.patch
-    (fetchpatch {
-      url = "https://github.com/go-gitea/gitea/commit/1830d0ed5f4a67e3360ecbb55933b5540b6affce.patch";
-      sha256 = "163531pcki28qfs56l64vv4xxaavxgksf038da1sn21j5l2jm81i";
-    })
   ];
 
   postPatch = ''
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index c5ee8f39443..6457ac3af0d 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -13,11 +13,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gitkraken";
-  version = "6.6.0";
+  version = "7.2.0";
 
   src = fetchzip {
     url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
-    sha256 = "1k94dyynsnm90mp7q9h6baq6q9zi539b1qszf3mqvd5i0id9kjcw";
+    sha256 = "0nrrcwikx6dx1j1s0b80gh1s932zvxmijpddqp6a1vh3ddc5v1mp";
   };
 
   dontBuild = true;
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
     icon = "gitkraken";
     desktopName = "GitKraken";
     genericName = "Git Client";
-    categories = "Application;Development;";
+    categories = "Development;";
     comment = "Graphical Git client from Axosoft";
   };
 
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index d3f2db5e5ad..fe211d1b87f 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,13 +1,13 @@
 {
-  "version": "12.8.10",
-  "repo_hash": "1njkihj66d8fnk1l0r5pys38akf5srqlrgj2hzc68l5m8d51dk15",
+  "version": "13.0.12",
+  "repo_hash": "0m9pn1alxdib9ppf878wf186bvn0llik7vcpqijzcdzc18q9cldq",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v12.8.10-ee",
+  "rev": "v13.0.12-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "12.8.10",
-    "GITLAB_PAGES_VERSION": "1.16.0",
-    "GITLAB_SHELL_VERSION": "11.0.0",
-    "GITLAB_WORKHORSE_VERSION": "8.21.2"
+    "GITALY_SERVER_VERSION": "13.0.12",
+    "GITLAB_PAGES_VERSION": "1.18.0",
+    "GITLAB_SHELL_VERSION": "13.2.0",
+    "GITLAB_WORKHORSE_VERSION": "8.31.2"
   }
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix
index f3ecc6df640..76127681bbd 100644
--- a/pkgs/applications/version-management/gitlab/default.nix
+++ b/pkgs/applications/version-management/gitlab/default.nix
@@ -89,7 +89,7 @@ let
 
       bundle exec rake gettext:po_to_json RAILS_ENV=production NODE_ENV=production
       bundle exec rake rake:assets:precompile RAILS_ENV=production NODE_ENV=production
-      bundle exec rake webpack:compile RAILS_ENV=production NODE_ENV=production NODE_OPTIONS="--max_old_space_size=2048"
+      bundle exec rake webpack:compile RAILS_ENV=production NODE_ENV=production NODE_OPTIONS="--max_old_space_size=3072"
       bundle exec rake gitlab:assets:fix_urls RAILS_ENV=production NODE_ENV=production
 
       runHook postBuild
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
index 1d7cf17161c..8a35c8c3b47 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -4,11 +4,11 @@ source 'https://rubygems.org'
 gem 'bundler', '>= 1.17.3'
 
 gem 'rugged', '~> 0.28'
-gem 'github-linguist', '~> 7.5', require: 'linguist'
-gem 'gitlab-markup', '~> 1.7.0'
-gem 'activesupport', '6.0.2'
+gem 'github-linguist', '~> 7.9', require: 'linguist'
+gem 'gitlab-markup', '~> 1.7.1'
+gem 'activesupport', '~> 6.0.3.1'
 gem 'rdoc', '~> 6.0'
-gem 'gitlab-gollum-lib', '~> 4.2.7.7', require: false
+gem 'gitlab-gollum-lib', '~> 4.2.7.9', require: false
 gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.2', require: false
 gem 'grpc', '~> 1.24.0'
 gem 'sentry-raven', '~> 2.9.0', require: false
@@ -16,7 +16,7 @@ gem 'faraday', '~> 0.12'
 gem 'rbtrace', require: false
 
 # Labkit provides observability functionality
-gem 'gitlab-labkit', '~> 0.9.1'
+gem 'gitlab-labkit', '~> 0.12.0'
 
 # Detects the open source license the repository includes
 # This version needs to be in sync with GitLab CE/EE
@@ -32,6 +32,8 @@ group :development, :test do
   gem 'factory_bot', require: false
   gem 'pry', '~> 0.12.2', require: false
 
+  gem 'grpc-tools', '= 1.0.1'
+
   # gitlab-shell spec gems
   gem 'listen', '~> 0.5.0'
   gem 'simplecov', '~> 0.17.1', require: false
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index 0c125f5a0bf..f409ebb9b41 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -2,25 +2,25 @@ GEM
   remote: https://rubygems.org/
   specs:
     abstract_type (0.0.7)
-    actionpack (6.0.2)
-      actionview (= 6.0.2)
-      activesupport (= 6.0.2)
-      rack (~> 2.0)
+    actionpack (6.0.3.1)
+      actionview (= 6.0.3.1)
+      activesupport (= 6.0.3.1)
+      rack (~> 2.0, >= 2.0.8)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (6.0.2)
-      activesupport (= 6.0.2)
+    actionview (6.0.3.1)
+      activesupport (= 6.0.3.1)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activesupport (6.0.2)
+    activesupport (6.0.3.1)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
       tzinfo (~> 1.1)
-      zeitwerk (~> 2.2)
+      zeitwerk (~> 2.2, >= 2.2.2)
     adamantium (0.2.0)
       ice_nine (~> 0.11.0)
       memoizable (~> 0.4.0)
@@ -34,7 +34,7 @@ GEM
     concord (0.1.5)
       adamantium (~> 0.2.0)
       equalizer (~> 0.0.9)
-    concurrent-ruby (1.1.5)
+    concurrent-ruby (1.1.6)
     crack (0.4.3)
       safe_yaml (~> 1.0.0)
     crass (1.0.6)
@@ -47,19 +47,19 @@ GEM
       activesupport (>= 4.2.0)
     faraday (0.15.4)
       multipart-post (>= 1.2, < 3)
-    ffi (1.11.1)
+    ffi (1.12.2)
     gemojione (3.3.0)
       json
-    github-linguist (7.5.1)
+    github-linguist (7.9.0)
       charlock_holmes (~> 0.7.6)
       escape_utils (~> 1.2.0)
       mini_mime (~> 1.0)
       rugged (>= 0.25.1)
     github-markup (1.7.0)
-    gitlab-gollum-lib (4.2.7.7)
+    gitlab-gollum-lib (4.2.7.9)
       gemojione (~> 3.2)
       github-markup (~> 1.6)
-      gollum-grit_adapter (~> 1.0)
+      gitlab-gollum-rugged_adapter (~> 0.4.4.2)
       nokogiri (>= 1.6.1, < 2.0)
       rouge (~> 3.1)
       sanitize (~> 4.6.4)
@@ -67,27 +67,21 @@ GEM
     gitlab-gollum-rugged_adapter (0.4.4.2)
       mime-types (>= 1.15)
       rugged (~> 0.25)
-    gitlab-grit (2.8.2)
-      charlock_holmes (~> 0.6)
-      diff-lcs (~> 1.1)
-      mime-types (>= 1.16)
-      posix-spawn (~> 0.3)
-    gitlab-labkit (0.9.1)
+    gitlab-labkit (0.12.0)
       actionpack (>= 5.0.0, < 6.1.0)
       activesupport (>= 5.0.0, < 6.1.0)
       grpc (~> 1.19)
       jaeger-client (~> 0.10)
       opentracing (~> 0.4)
       redis (> 3.0.0, < 5.0.0)
-    gitlab-markup (1.7.0)
-    gollum-grit_adapter (1.0.1)
-      gitlab-grit (~> 2.7, >= 2.7.1)
+    gitlab-markup (1.7.1)
     google-protobuf (3.8.0)
     googleapis-common-protos-types (1.0.4)
       google-protobuf (~> 3.0)
     grpc (1.24.0)
       google-protobuf (~> 3.8)
       googleapis-common-protos-types (~> 1.0)
+    grpc-tools (1.0.1)
     hashdiff (0.3.9)
     i18n (1.8.2)
       concurrent-ruby (~> 1.0)
@@ -100,7 +94,7 @@ GEM
     licensee (8.9.2)
       rugged (~> 0.24)
     listen (0.5.3)
-    loofah (2.4.0)
+    loofah (2.5.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     memoizable (0.4.2)
@@ -121,9 +115,8 @@ GEM
     opentracing (0.5.0)
     optimist (3.0.0)
     parallel (1.17.0)
-    parser (2.6.3.0)
+    parser (2.7.0.5)
       ast (~> 2.4.0)
-    posix-spawn (0.3.13)
     proc_to_ast (0.1.0)
       coderay
       parser
@@ -148,7 +141,7 @@ GEM
       optimist (>= 3.0.0)
     rdoc (6.2.0)
     redis (4.1.3)
-    rouge (3.15.0)
+    rouge (3.19.0)
     rspec (3.8.0)
       rspec-core (~> 3.8.0)
       rspec-expectations (~> 3.8.0)
@@ -193,39 +186,40 @@ GEM
     thread_safe (0.3.6)
     thrift (0.11.0.0)
     timecop (0.9.1)
-    tzinfo (1.2.6)
+    tzinfo (1.2.7)
       thread_safe (~> 0.1)
     unicode-display_width (1.6.0)
-    unparser (0.4.5)
+    unparser (0.4.7)
       abstract_type (~> 0.0.7)
       adamantium (~> 0.2.0)
       concord (~> 0.1.5)
       diff-lcs (~> 1.3)
       equalizer (~> 0.0.9)
-      parser (~> 2.6.3)
+      parser (>= 2.6.5)
       procto (~> 0.0.2)
     vcr (4.0.0)
     webmock (3.4.2)
       addressable (>= 2.3.6)
       crack (>= 0.3.2)
       hashdiff
-    zeitwerk (2.2.2)
+    zeitwerk (2.3.0)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  activesupport (= 6.0.2)
+  activesupport (~> 6.0.3.1)
   bundler (>= 1.17.3)
   factory_bot
   faraday (~> 0.12)
-  github-linguist (~> 7.5)
-  gitlab-gollum-lib (~> 4.2.7.7)
+  github-linguist (~> 7.9)
+  gitlab-gollum-lib (~> 4.2.7.9)
   gitlab-gollum-rugged_adapter (~> 0.4.4.2)
-  gitlab-labkit (~> 0.9.1)
-  gitlab-markup (~> 1.7.0)
+  gitlab-labkit (~> 0.12.0)
+  gitlab-markup (~> 1.7.1)
   google-protobuf (~> 3.8.0)
   grpc (~> 1.24.0)
+  grpc-tools (= 1.0.1)
   licensee (~> 8.9.0)
   listen (~> 0.5.0)
   pry (~> 0.12.2)
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 7c84acc8f05..5f3fa345d85 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitLab, fetchFromGitHub, buildGoPackage, ruby,
-  bundlerEnv, pkgconfig, libgit2 }:
+  bundlerEnv, pkgconfig, libgit2_0_27 }:
 
 let
   rubyEnv = bundlerEnv rec {
@@ -18,29 +18,22 @@ let
         };
       };
   };
-  libgit2_0_27 = libgit2.overrideAttrs (oldAttrs: rec {
-    version = "0.27.8";
-    src = fetchFromGitHub {
-      owner = "libgit2";
-      repo = "libgit2";
-      rev = "v${version}";
-      sha256 = "0wzx8nkyy9m7mx6cks58chjd4289vjsw97mxm9w6f1ggqsfnmbr9";
-    };
-  });
 in buildGoPackage rec {
-  version = "12.8.10";
+  version = "13.0.12";
   pname = "gitaly";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitaly";
     rev = "v${version}";
-    sha256 = "1vhnpyggh2ch93i75np11rjzvq8d6pwv2kzvwh7ak3fa02w9qdfs";
+    sha256 = "00jzrib8f51b3wkl0zy9a9cr5j9kp6cmm49vxm27zgxpyz8k1axw";
   };
 
   # Fix a check which assumes that hook files are writeable by their
   # owner.
-  patches = [ ./fix-executable-check.patch ];
+  patches = [
+    ./fix-executable-check.patch
+  ];
 
   goPackagePath = "gitlab.com/gitlab-org/gitaly";
 
@@ -56,13 +49,6 @@ in buildGoPackage rec {
   postInstall = ''
     mkdir -p $ruby
     cp -rv $src/ruby/{bin,lib,proto,git-hooks,gitlab-shell} $ruby
-
-    # gitlab-shell will try to read its config relative to the source
-    # code by default which doesn't work in nixos because it's a
-    # read-only filesystem
-    substituteInPlace $ruby/gitlab-shell/lib/gitlab_config.rb --replace \
-       "File.join(ROOT_PATH, 'config.yml')" \
-       "'/run/gitlab/shell-config.yml'"
   '';
 
   outputs = [ "out" "ruby" ];
diff --git a/pkgs/applications/version-management/gitlab/gitaly/deps.nix b/pkgs/applications/version-management/gitlab/gitaly/deps.nix
index 83a2f0f5f74..221ce16163d 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/deps.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/deps.nix
@@ -1,12 +1,39 @@
 # file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
 [
   {
+    goPackagePath = "bou.ke/monkey";
+    fetch = {
+      type = "git";
+      url = "https://github.com/bouk/monkey";
+      rev = "v1.0.1";
+      sha256 = "050y07pwx5zk7fchp0lhf35w417sml7lxkkzly8f932fy25rydz5";
+    };
+  }
+  {
     goPackagePath = "cloud.google.com/go";
     fetch = {
       type = "git";
       url = "https://code.googlesource.com/gocloud";
-      rev = "v0.26.0";
-      sha256 = "149v3ci17g6wd2pm18mzcncq5qpl9hwdjnz3rlbn5rfidyn46la1";
+      rev = "v0.50.0";
+      sha256 = "0pbz5migljd5whxh6z1w79cwx93n85mcs3x1bckl27yzaa4lvqsl";
+    };
+  }
+  {
+    goPackagePath = "dmitri.shuralyov.com/gpu/mtl";
+    fetch = {
+      type = "git";
+      url = "https://dmitri.shuralyov.com/gpu/mtl";
+      rev = "666a987793e9";
+      sha256 = "1isd03hgiwcf2ld1rlp0plrnfz7r4i7c5q4kb6hkcd22axnmrv0z";
+    };
+  }
+  {
+    goPackagePath = "github.com/AndreasBriese/bbloom";
+    fetch = {
+      type = "git";
+      url = "https://github.com/AndreasBriese/bbloom";
+      rev = "e2d15f34fcf9";
+      sha256 = "05kkrsmpragy69bj6s80pxlm3pbwxrkkx7wgk0xigs6y2n6ylpds";
     };
   }
   {
@@ -19,12 +46,30 @@
     };
   }
   {
+    goPackagePath = "github.com/BurntSushi/xgb";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/xgb";
+      rev = "27f122750802";
+      sha256 = "18lp2x8f5bljvlz0r7xn744f0c9rywjsb9ifiszqqdcpwhsa0kvj";
+    };
+  }
+  {
+    goPackagePath = "github.com/CloudyKit/fastprinter";
+    fetch = {
+      type = "git";
+      url = "https://github.com/CloudyKit/fastprinter";
+      rev = "74b38d55f37a";
+      sha256 = "07wkq3503j7sd5knsgp3lwzfdwm6sj7a3l6i71i52yb3fd8md235";
+    };
+  }
+  {
     goPackagePath = "github.com/Joker/hpp";
     fetch = {
       type = "git";
       url = "https://github.com/Joker/hpp";
-      rev = "6893e659854a";
-      sha256 = "0lsx63c28rzqigv3lwzznqacpk7nr0dn6ig37v023x8lzc728ix5";
+      rev = "v1.0.0";
+      sha256 = "1xnqkjkmqdj48w80qa74rwcmgar8dcilpkcrcn1f53djk45k1gq2";
     };
   }
   {
@@ -32,8 +77,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/Joker/jade";
-      rev = "v1.0.0";
-      sha256 = "0k9b8dcwwhajw6rzjmakqwmhw9z192pzzdhppcvam6dy63yl4zjf";
+      rev = "d475f43051e7";
+      sha256 = "0yigzvxp5qd05pai0yimzkpl2m23358a2fqqs585psrdmwsic2pn";
     };
   }
   {
@@ -91,15 +136,6 @@
     };
   }
   {
-    goPackagePath = "github.com/aymerick/raymond";
-    fetch = {
-      type = "git";
-      url = "https://github.com/aymerick/raymond";
-      rev = "v2.0.2";
-      sha256 = "1w6am4142k8lyjnwwcgx94c2d8zviflzi0a9c81gn2j0gyx475i3";
-    };
-  }
-  {
     goPackagePath = "github.com/beorn7/perks";
     fetch = {
       type = "git";
@@ -127,6 +163,33 @@
     };
   }
   {
+    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";
@@ -149,8 +212,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/cloudflare/tableflip";
-      rev = "8392f1641731";
-      sha256 = "0by5hk8s0bhhl3kiw658p5g53zvc61k4q2wxnh1w64p5ghd1rfn8";
+      rev = "4baec9811f2b";
+      sha256 = "095xb5gfz7dglljp91nh68dnscddvlf7q5ivvz972fq86r3ypq6q";
     };
   }
   {
@@ -226,6 +289,15 @@
     };
   }
   {
+    goPackagePath = "github.com/dgraph-io/badger";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dgraph-io/badger";
+      rev = "v1.6.0";
+      sha256 = "1vzibjqhb10q6s2chbzlwndij2d9ybjnq7h28hx4akr119avd0d5";
+    };
+  }
+  {
     goPackagePath = "github.com/dgrijalva/jwt-go";
     fetch = {
       type = "git";
@@ -235,6 +307,24 @@
     };
   }
   {
+    goPackagePath = "github.com/dgryski/go-farm";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dgryski/go-farm";
+      rev = "6a90982ecee2";
+      sha256 = "1x3l4jgps0v1bjvd446kj4dp0ckswjckxgrng9afm275ixnf83ix";
+    };
+  }
+  {
+    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/eknkc/amber";
     fetch = {
       type = "git";
@@ -244,6 +334,24 @@
     };
   }
   {
+    goPackagePath = "github.com/etcd-io/bbolt";
+    fetch = {
+      type = "git";
+      url = "https://github.com/etcd-io/bbolt";
+      rev = "v1.3.3";
+      sha256 = "0dn0zngks9xiz0rrrb3911f73ghl64z84jsmzai2yfmzqr7cdkqc";
+    };
+  }
+  {
+    goPackagePath = "github.com/fasthttp-contrib/websocket";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fasthttp-contrib/websocket";
+      rev = "1f3b11f56072";
+      sha256 = "1yacmwmil625p0pzj800h9dnmiab6bjwfmi48p9fcrvy2yyv9b97";
+    };
+  }
+  {
     goPackagePath = "github.com/fatih/color";
     fetch = {
       type = "git";
@@ -280,12 +388,12 @@
     };
   }
   {
-    goPackagePath = "github.com/gavv/monotime";
+    goPackagePath = "github.com/gavv/httpexpect";
     fetch = {
       type = "git";
-      url = "https://github.com/gavv/monotime";
-      rev = "30dba4353424";
-      sha256 = "0w67yyc9y11dp7lp4b712dkcgbiln1qmgfx1nbbrw3mfkzr61d7g";
+      url = "https://github.com/gavv/httpexpect";
+      rev = "v2.0.0";
+      sha256 = "0dqb7lsinciz594q6jg59hrvk4g4awbs2ybsr580j22j2xag53vs";
     };
   }
   {
@@ -293,7 +401,7 @@
     fetch = {
       type = "git";
       url = "https://github.com/getsentry/raven-go";
-      rev = "v0.1.0";
+      rev = "v0.1.2";
       sha256 = "1dl80kar4lzdcfl3w6jssi1ld6bv0rmx6sp6bz6rzysfr9ilm02z";
     };
   }
@@ -302,8 +410,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/getsentry/sentry-go";
-      rev = "v0.3.0";
-      sha256 = "1919lhvg1swcqyfa6mck6nz53c7n4df21jsz46f7x4wncb6f5il1";
+      rev = "v0.5.1";
+      sha256 = "1kfn0gcb4c6amhagv04ydpl6p9cqw7f0lxas688a0rf89iwdzz89";
     };
   }
   {
@@ -343,6 +451,15 @@
     };
   }
   {
+    goPackagePath = "github.com/go-gl/glfw";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-gl/glfw";
+      rev = "12ad95a8df72";
+      sha256 = "0ahw4a1lk7wqn6m0sjngsv2zc08kxxj259ai6g4kf11lmidszm9s";
+    };
+  }
+  {
     goPackagePath = "github.com/go-kit/kit";
     fetch = {
       type = "git";
@@ -424,6 +541,33 @@
     };
   }
   {
+    goPackagePath = "github.com/gobwas/httphead";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gobwas/httphead";
+      rev = "2c6c146eadee";
+      sha256 = "0j7nlrf79cafl8ap69ri2c7v3psr2y133cr2wn735z7yn3dz3kss";
+    };
+  }
+  {
+    goPackagePath = "github.com/gobwas/pool";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gobwas/pool";
+      rev = "v0.2.0";
+      sha256 = "1avpa8c75j1y4hs7awazrjjy7w0pjfw80l424ddn5zyizvh7s67i";
+    };
+  }
+  {
+    goPackagePath = "github.com/gobwas/ws";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gobwas/ws";
+      rev = "v1.0.2";
+      sha256 = "070mfcjbfb40bglc9aw9zjvd4jb1hp3l1s12ww6mjlwbjcg0mm9s";
+    };
+  }
+  {
     goPackagePath = "github.com/gogo/protobuf";
     fetch = {
       type = "git";
@@ -451,6 +595,15 @@
     };
   }
   {
+    goPackagePath = "github.com/golang/groupcache";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/groupcache";
+      rev = "215e87163ea7";
+      sha256 = "07555csk49ara636bhl2vbzziayls3qks8964z0q29g065zliy9j";
+    };
+  }
+  {
     goPackagePath = "github.com/golang/lint";
     fetch = {
       type = "git";
@@ -464,8 +617,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/golang/mock";
-      rev = "v1.1.1";
-      sha256 = "0ap8wb6pdl6ccmdb43advjll2ly4sz26wsc3axw0hbrjrybybzgy";
+      rev = "v1.3.1";
+      sha256 = "1wnfa8njxdym1qb664dmfnkpm4pmqy22hqjlqpwaaiqhglb5g9d1";
     };
   }
   {
@@ -478,12 +631,30 @@
     };
   }
   {
+    goPackagePath = "github.com/gomodule/redigo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gomodule/redigo";
+      rev = "574c33c3df38";
+      sha256 = "1qpw8mq9xqj1hmpag1av941swkx39qikahsajyhn34rc2q54f4z6";
+    };
+  }
+  {
+    goPackagePath = "github.com/google/btree";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/btree";
+      rev = "v1.0.0";
+      sha256 = "0ba430m9fbnagacp57krgidsyrgp3ycw5r7dj71brgp5r52g82p6";
+    };
+  }
+  {
     goPackagePath = "github.com/google/go-cmp";
     fetch = {
       type = "git";
       url = "https://github.com/google/go-cmp";
-      rev = "v0.3.0";
-      sha256 = "1hyxx3434zshl2m9ja78gwlkg1rx9yl6diqa7dnjb31xz5x4gbjj";
+      rev = "v0.4.0";
+      sha256 = "1x5pvl3fb5sbyng7i34431xycnhmx8xx94gq2n19g6p0vz68z2v2";
     };
   }
   {
@@ -496,6 +667,33 @@
     };
   }
   {
+    goPackagePath = "github.com/google/martian";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/martian";
+      rev = "v2.1.0";
+      sha256 = "197hil6vrjk50b9wvwyzf61csid83whsjj6ik8mc9r2lryxlyyrp";
+    };
+  }
+  {
+    goPackagePath = "github.com/google/pprof";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/pprof";
+      rev = "d4f498aebedc";
+      sha256 = "1r4pn70yy5vfl38jx9v8224n7jkhcm5wg28vv48izgznlgv7h024";
+    };
+  }
+  {
+    goPackagePath = "github.com/google/renameio";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/renameio";
+      rev = "v0.1.0";
+      sha256 = "1ki2x5a9nrj17sn092d6n4zr29lfg5ydv4xz5cp58z6cw8ip43jx";
+    };
+  }
+  {
     goPackagePath = "github.com/google/uuid";
     fetch = {
       type = "git";
@@ -505,6 +703,15 @@
     };
   }
   {
+    goPackagePath = "github.com/googleapis/gax-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/googleapis/gax-go";
+      rev = "v2.0.5";
+      sha256 = "1lxawwngv6miaqd25s3ba0didfzylbwisd2nz7r4gmbmin6jsjrx";
+    };
+  }
+  {
     goPackagePath = "github.com/gopherjs/gopherjs";
     fetch = {
       type = "git";
@@ -514,12 +721,12 @@
     };
   }
   {
-    goPackagePath = "github.com/gorilla/schema";
+    goPackagePath = "github.com/gorilla/websocket";
     fetch = {
       type = "git";
-      url = "https://github.com/gorilla/schema";
-      rev = "v1.1.0";
-      sha256 = "14d31i3h6bg83r7ncmwm2pirab66z9hza38in18l89pbazxyh2n9";
+      url = "https://github.com/gorilla/websocket";
+      rev = "v1.4.0";
+      sha256 = "00i4vb31nsfkzzk7swvx3i75r2d960js3dri1875vypk3v2s0pzk";
     };
   }
   {
@@ -559,6 +766,24 @@
     };
   }
   {
+    goPackagePath = "github.com/hashicorp/go-version";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/go-version";
+      rev = "v1.2.0";
+      sha256 = "1bwi6y6111xq8ww8kjq0w1cmz15l1h9hb2id6596l8l0ag1vjj1z";
+    };
+  }
+  {
+    goPackagePath = "github.com/hashicorp/golang-lru";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/golang-lru";
+      rev = "v0.5.1";
+      sha256 = "13f870cvk161bzjj6x41l45r5x9i1z9r2ymwmvm7768kg08zznpy";
+    };
+  }
+  {
     goPackagePath = "github.com/hashicorp/hcl";
     fetch = {
       type = "git";
@@ -577,6 +802,15 @@
     };
   }
   {
+    goPackagePath = "github.com/ianlancetaylor/demangle";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ianlancetaylor/demangle";
+      rev = "5e5cf60278f6";
+      sha256 = "1fhjk11cip9c3jyj1byz9z77n6n2rlxmyz0xjx1zpn1da3cvri75";
+    };
+  }
+  {
     goPackagePath = "github.com/imkira/go-interpol";
     fetch = {
       type = "git";
@@ -604,30 +838,30 @@
     };
   }
   {
-    goPackagePath = "github.com/iris-contrib/formBinder";
+    goPackagePath = "github.com/iris-contrib/go.uuid";
     fetch = {
       type = "git";
-      url = "https://github.com/iris-contrib/formBinder";
-      rev = "v5.0.0";
-      sha256 = "0mqk6j7a9d3y28ad4ylqc7z5w4hmn1ws5wwnyll918xn1wkzr5rg";
+      url = "https://github.com/iris-contrib/go.uuid";
+      rev = "v2.0.0";
+      sha256 = "0nc0ggn0a6bcwdrwinnx3z6889x65c20a2dwja0n8can3xblxs35";
     };
   }
   {
-    goPackagePath = "github.com/iris-contrib/go.uuid";
+    goPackagePath = "github.com/iris-contrib/i18n";
     fetch = {
       type = "git";
-      url = "https://github.com/iris-contrib/go.uuid";
-      rev = "v2.0.0";
-      sha256 = "0nc0ggn0a6bcwdrwinnx3z6889x65c20a2dwja0n8can3xblxs35";
+      url = "https://github.com/iris-contrib/i18n";
+      rev = "987a633949d0";
+      sha256 = "0yslm7hmacc57v970jbys4x5c5yxgcjgff982ngivg9v1a16kifq";
     };
   }
   {
-    goPackagePath = "github.com/iris-contrib/httpexpect";
+    goPackagePath = "github.com/iris-contrib/schema";
     fetch = {
       type = "git";
-      url = "https://github.com/iris-contrib/httpexpect";
-      rev = "ebe99fcebbce";
-      sha256 = "126c50c6r5l2gdn60jirpb54pqwswxag3wgrv6wcn998h9w9gv8c";
+      url = "https://github.com/iris-contrib/schema";
+      rev = "v0.0.1";
+      sha256 = "1a1lk2ll2xv3ljffmfw4q8mqqw727pj8dzs6c8g2hh0b0b050g79";
     };
   }
   {
@@ -649,6 +883,15 @@
     };
   }
   {
+    goPackagePath = "github.com/jstemmer/go-junit-report";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jstemmer/go-junit-report";
+      rev = "v0.9.1";
+      sha256 = "1knip80yir1cdsjlb3rzy0a4w3kl4ljpiciaz6hjzwqlfhnv7bkw";
+    };
+  }
+  {
     goPackagePath = "github.com/jtolds/gls";
     fetch = {
       type = "git";
@@ -707,8 +950,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/kataras/golog";
-      rev = "99c81de45f40";
-      sha256 = "1dgrsvhzymgj7da54ldv8plkxk3n8zh3kc995qxl6mrpz65j801p";
+      rev = "v0.0.9";
+      sha256 = "160hd3z93c9i33q9g1bhfdxmsqg1lanncnrqcsr2444dy5j6ly3i";
     };
   }
   {
@@ -716,8 +959,17 @@
     fetch = {
       type = "git";
       url = "https://github.com/kataras/iris";
-      rev = "v11.1.1";
-      sha256 = "1rxpr5hdj9mji26mlfp4zic0pc6nh93akzccw24a5kynj07g68wg";
+      rev = "v12.0.1";
+      sha256 = "0k1jhamvf0byx6d317gzg6r2jls7bajhhf2spvdinarl2cjnakm5";
+    };
+  }
+  {
+    goPackagePath = "github.com/kataras/neffos";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kataras/neffos";
+      rev = "v0.0.10";
+      sha256 = "0mkqrxff28rcc71nw5qqsywn0fm2jz7magwp9hhvh1s01lgghjdp";
     };
   }
   {
@@ -752,8 +1004,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/klauspost/compress";
-      rev = "v1.4.0";
-      sha256 = "1y7951q0ji894d111lqqbacq64cxyi2dxsni5sqi9488zsasgw8s";
+      rev = "v1.9.0";
+      sha256 = "07vndz6mdaliwagj2xq0y5c5w2zld14p9i5y7r0bkhb7klfyamfk";
     };
   }
   {
@@ -761,8 +1013,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/klauspost/cpuid";
-      rev = "e7e905edc00e";
-      sha256 = "0cmyv3rwv5r5iqvvfhbiwp3jsfa40c6xfm42nxbngd5lygjcwwgf";
+      rev = "v1.2.1";
+      sha256 = "1071wchrs37bvpb99fwf19fjrpz0yaqipi2y2hjvim419flvd49x";
     };
   }
   {
@@ -815,8 +1067,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/labstack/echo";
-      rev = "v4.1.10";
-      sha256 = "0qg9ykmhgldiv2v1w8sz8x0j0bgqf11ghzrim59fb6pxz8qgg25h";
+      rev = "v4.1.11";
+      sha256 = "0b14vgwzznn7wzyjb98xdmq4wjg16l3y62njiwfz4qsm4pwzk405";
     };
   }
   {
@@ -892,6 +1144,15 @@
     };
   }
   {
+    goPackagePath = "github.com/mattn/go-shellwords";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-shellwords";
+      rev = "2444a32a19f4";
+      sha256 = "08zcgr1az1n8zaxzwdd205j86hczgyc52nxfnw5avpw7rrkf7v0d";
+    };
+  }
+  {
     goPackagePath = "github.com/mattn/go-sqlite3";
     fetch = {
       type = "git";
@@ -919,6 +1180,24 @@
     };
   }
   {
+    goPackagePath = "github.com/mediocregopher/mediocre-go-lib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mediocregopher/mediocre-go-lib";
+      rev = "cb65787f37ed";
+      sha256 = "0lg6q76fxjhxv05m80k4l6nrkj9qwzafs2mb2gbvhznxh8m0cv9j";
+    };
+  }
+  {
+    goPackagePath = "github.com/mediocregopher/radix";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mediocregopher/radix";
+      rev = "v3.3.0";
+      sha256 = "0pchn5z2g4wnf87350war5fr9pqpdksia1ffvw7cphg4q9blggfx";
+    };
+  }
+  {
     goPackagePath = "github.com/microcosm-cc/bluemonday";
     fetch = {
       type = "git";
@@ -991,6 +1270,33 @@
     };
   }
   {
+    goPackagePath = "github.com/nats-io/nats.go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nats-io/nats.go";
+      rev = "v1.8.1";
+      sha256 = "0h9zzpjl6ac227bhf0i4ram9a5jlibq53pawv0zzxdirxrnp1vkj";
+    };
+  }
+  {
+    goPackagePath = "github.com/nats-io/nkeys";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nats-io/nkeys";
+      rev = "v0.0.2";
+      sha256 = "0kibc1g60w031rssk3vs74gfick3jdl3igckn1v4k8b5grawcks1";
+    };
+  }
+  {
+    goPackagePath = "github.com/nats-io/nuid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nats-io/nuid";
+      rev = "v1.0.1";
+      sha256 = "11zbhg4kds5idsya04bwz4plj0mmiigypzppzih731ppbk2ms1zg";
+    };
+  }
+  {
     goPackagePath = "github.com/olekukonko/tablewriter";
     fetch = {
       type = "git";
@@ -1004,8 +1310,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/onsi/ginkgo";
-      rev = "v1.10.1";
-      sha256 = "033a42h1wzmji57p86igg9whvsbp6nvfdsypskw738ys903n3z4d";
+      rev = "v1.10.3";
+      sha256 = "00a40by9f5ylycnar8h3p9b4z5rcsvfvg4j3v5s5mchdqrqjv1pc";
     };
   }
   {
@@ -1013,8 +1319,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/onsi/gomega";
-      rev = "v1.7.0";
-      sha256 = "09j6wq425wgzzsbwm9ckhfgl2capv3yyqbrf45qyrjwkzm49i02y";
+      rev = "v1.7.1";
+      sha256 = "06p3x0910cdaa64l7d44s728d4j3yhps315dlcvrbjzhljjj7mam";
     };
   }
   {
@@ -1027,6 +1333,33 @@
     };
   }
   {
+    goPackagePath = "github.com/otiai10/copy";
+    fetch = {
+      type = "git";
+      url = "https://github.com/otiai10/copy";
+      rev = "v1.0.1";
+      sha256 = "0xmy0kfcx48q10s040579pcjswfaxlwhv7a2z07z9r92fdrgw03k";
+    };
+  }
+  {
+    goPackagePath = "github.com/otiai10/curr";
+    fetch = {
+      type = "git";
+      url = "https://github.com/otiai10/curr";
+      rev = "v1.0.0";
+      sha256 = "0fpw20adq2wff7l4c87zaavj9jra4d64a8bbjixiiv3bbarim987";
+    };
+  }
+  {
+    goPackagePath = "github.com/otiai10/mint";
+    fetch = {
+      type = "git";
+      url = "https://github.com/otiai10/mint";
+      rev = "v1.3.0";
+      sha256 = "0kfc95jc2hfgwzcpdfa5hrxgj7s6rzx5jc0n1sn863bsngx2q1ca";
+    };
+  }
+  {
     goPackagePath = "github.com/pelletier/go-toml";
     fetch = {
       type = "git";
@@ -1049,8 +1382,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/pingcap/errors";
-      rev = "v0.11.1";
-      sha256 = "00wr0l4cwq0qx8jw51j0n7pbh9l7hdq2874x9rf1mz5svz1wbmcp";
+      rev = "v0.11.4";
+      sha256 = "02k6b30m42aya763fnwx3paq4r8h28yav4i2kv2z4r28r70xxcgn";
     };
   }
   {
@@ -1094,8 +1427,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/prometheus/client_model";
-      rev = "fd36f4220a90";
-      sha256 = "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5";
+      rev = "14fe0d1b01d4";
+      sha256 = "0zdmk6rbbx39cvfz0r59v2jg5sg9yd02b4pds5n5llgvivi99550";
     };
   }
   {
@@ -1202,7 +1535,7 @@
     fetch = {
       type = "git";
       url = "https://github.com/smartystreets/goconvey";
-      rev = "505e41936337";
+      rev = "v1.6.4";
       sha256 = "07zjxwszayal88z1j2bwnqrsa32vg8l4nivks5yfr9j8xfsw7n6m";
     };
   }
@@ -1319,8 +1652,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/ugorji/go";
-      rev = "v1.1.4";
-      sha256 = "0ma2qvn5wqvjidpdz74x832a813qnr1cxbx6n6n125ak9b3wbn5w";
+      rev = "v1.1.7";
+      sha256 = "068gja55kbh2iivp03x4n9dcml0rxv0k64ivkmq06si2ar1835rm";
     };
   }
   {
@@ -1346,8 +1679,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/valyala/fasthttp";
-      rev = "v1.4.0";
-      sha256 = "0kypc7r91n61fm6qsadza1aiy9n6byghvcxzvx7agi6yzrllk956";
+      rev = "v1.6.0";
+      sha256 = "1r1hm4rv9w6x829jjg75y8xd523b76parsyyvjwyz8k2l6bm4h0b";
     };
   }
   {
@@ -1373,8 +1706,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/xeipuuv/gojsonpointer";
-      rev = "df4f5c81cb3b";
-      sha256 = "0dfwc66z5gq75m3z7va80c10c22ijiq99bahq86l26ki71g286xn";
+      rev = "4e3ac2762d5f";
+      sha256 = "13y6iq2nzf9z4ls66bfgnnamj2m3438absmbpqry64bpwjfbsi9q";
     };
   }
   {
@@ -1391,8 +1724,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/xeipuuv/gojsonschema";
-      rev = "v1.1.0";
-      sha256 = "10gn5y4l72zknj21mff29d9vnk4pz7jnw39xnlsb373lsiih91xg";
+      rev = "v1.2.0";
+      sha256 = "1mqiq0r8qw4qlfp3ls8073r6514rmzwrmdn4j33rppk3zh942i6l";
     };
   }
   {
@@ -1450,12 +1783,30 @@
     };
   }
   {
+    goPackagePath = "gitlab.com/gitlab-org/gitlab-shell";
+    fetch = {
+      type = "git";
+      url = "https://gitlab.com/gitlab-org/gitlab-shell.git";
+      rev = "716e30c55e89";
+      sha256 = "0g2bgwm5rf93xfd40j3d2a5js1a212r2l2qdbds3gp7h0v73npjw";
+    };
+  }
+  {
     goPackagePath = "gitlab.com/gitlab-org/labkit";
     fetch = {
       type = "git";
       url = "https://gitlab.com/gitlab-org/labkit.git";
-      rev = "3253d7975ca7";
-      sha256 = "1q7vqcbwzgwk4n09jnzdh2filv1aqclw9bgf3qjr5qrfk7hby58s";
+      rev = "0149780c759d";
+      sha256 = "1krp5jkwpckpdznbl9xp4yvq6cii750r24agcni3snbbs8hd8gb1";
+    };
+  }
+  {
+    goPackagePath = "go.opencensus.io";
+    fetch = {
+      type = "git";
+      url = "https://github.com/census-instrumentation/opencensus-go";
+      rev = "v0.22.2";
+      sha256 = "0lz7fid63pdrcvyzk5kn7vlcva102h61igmw7pz824wvj9k3hy4q";
     };
   }
   {
@@ -1472,8 +1823,26 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/crypto";
-      rev = "4def268fd1a4";
-      sha256 = "1bfsnari529gw34cz0zqk3d9mrkcj1ay35kangri8kbgll0ss5a6";
+      rev = "87dc89f01550";
+      sha256 = "0z4i1m2yn3f31ci7wvcm2rxkx2yiv7a78mfzklncmsz2k97rlh2g";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/exp";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/exp";
+      rev = "da58074b4299";
+      sha256 = "1pgvdbjm3n47505diw3mm2hisp9b9q2lyvgl9m6xh2wx83b0cj48";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/image";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/image";
+      rev = "cff245a6509b";
+      sha256 = "0hiznlkiaay30acwvvyq8g6bm32r7bc6gv47pygrcxqpapasbz84";
     };
   }
   {
@@ -1481,8 +1850,26 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/lint";
-      rev = "d0100b6bd8b3";
-      sha256 = "0b0amr9x4ji66iv9ayfx7zrfx52k1m5g66qfcxkgj80qrb1y2yn7";
+      rev = "fdd1cda4f05f";
+      sha256 = "0a23pc90fqar8sm1b480sls15ss20rqk13yrf63b6rnyd2c6z0x2";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/mobile";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/mobile";
+      rev = "d2bd2a29d028";
+      sha256 = "1nv6vvhnjr01nx9y06q46ww87dppdwpbqrlsfg1xf2587wxl8xiv";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/mod";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/mod";
+      rev = "c90efee705ee";
+      sha256 = "0i5md645rmcy5z5ij9ng428k9rz4g3k1kjy3blsq1264rn426gdf";
     };
   }
   {
@@ -1490,8 +1877,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/net";
-      rev = "3b0461eec859";
-      sha256 = "0l00c8l0a8xnv6qdpwfzxxsr58jggacgzdrwiprrfx2xqm37b6d5";
+      rev = "6afb5195e5aa";
+      sha256 = "1aiz41q2yxgg3dxfkn33ff54vhaxbiwcps9j3ia1xx4cqxim38zw";
     };
   }
   {
@@ -1499,8 +1886,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/oauth2";
-      rev = "d2e6202438be";
-      sha256 = "0wbn75fd10485nb93bm4kqldqifdim5xqy4v7r5sdvimvf3fyhn7";
+      rev = "bf48bf16ab8d";
+      sha256 = "1sirdib60zwmh93kf9qrx51r8544k1p9rs5mk0797wibz3m4mrdg";
     };
   }
   {
@@ -1517,8 +1904,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/sys";
-      rev = "fde4db37ae7a";
-      sha256 = "16k4w4pzziq1kln18k5fg01qgk4hpzb5xsm7175kaky6d6gwyhg3";
+      rev = "86b910548bc1";
+      sha256 = "1z8l2wp27q0bd4nc46j31lc7cr6kiw52zi6ix3i121pd3rcyrw44";
     };
   }
   {
@@ -1531,12 +1918,21 @@
     };
   }
   {
+    goPackagePath = "golang.org/x/time";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/time";
+      rev = "9d24e82272b4";
+      sha256 = "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb";
+    };
+  }
+  {
     goPackagePath = "golang.org/x/tools";
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/tools";
-      rev = "72853e10c5a3";
-      sha256 = "06v42k857lcivcar3fq8yjc782hny0m5yf20sb7ij5jva0gab026";
+      rev = "43d50277825c";
+      sha256 = "1168q4da36wq9w2591iqzsfy5ymwfi2g46bv5dnyyspg155ld19k";
     };
   }
   {
@@ -1544,8 +1940,17 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/xerrors";
-      rev = "a985d3407aa7";
-      sha256 = "00wzr5w8aadipgc3rkk8f11i41znskfj9ix5nhhaxyg7isrslgcj";
+      rev = "9bdfabe68543";
+      sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c";
+    };
+  }
+  {
+    goPackagePath = "google.golang.org/api";
+    fetch = {
+      type = "git";
+      url = "https://code.googlesource.com/google-api-go-client";
+      rev = "v0.15.0";
+      sha256 = "1ljhwv5xsgsbqia70f35q19vwrsm47sh08ljbwdyfa867ff17qdh";
     };
   }
   {
@@ -1562,8 +1967,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/google/go-genproto";
-      rev = "bd91e49a0898";
-      sha256 = "1f5q04h03q6fksbfkhz13ai5849rkkb8xrmmi7cxs4lzsi6ixkg8";
+      rev = "ca5a22157cba";
+      sha256 = "0ldkh6f0g0wzfkp09ib15a62bmcbpsxj93saikqmc86242bcxij0";
     };
   }
   {
@@ -1679,8 +2084,17 @@
     fetch = {
       type = "git";
       url = "https://github.com/dominikh/go-tools";
-      rev = "ea95bdfd59fc";
-      sha256 = "1763nw7pwpzkvzfnm63dgzcgbq9hwmq5l1nffchnhh77vgkaq4ic";
+      rev = "v0.0.1-2019.2.3";
+      sha256 = "1rwwahmbs4dwxncwjj56likir1kps9937vm2id3rygxzzla40zal";
+    };
+  }
+  {
+    goPackagePath = "rsc.io/binaryregexp";
+    fetch = {
+      type = "git";
+      url = "https://github.com/rsc/binaryregexp";
+      rev = "v0.2.0";
+      sha256 = "1kar0myy85waw418zslviwx8846zj0m9cmqkxjx0fvgjdi70nc4b";
     };
   }
 ]
diff --git a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
index 7719a90abb5..f693d5b4c7b 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -13,10 +13,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zg96vjjw1kbli6nk6cyk64zfh4lgpl7fqx38ncbgfacl4dq7y0b";
+      sha256 = "1665r4ffqdpykxwpgdnaq7xsaz1nfswc5wjs2qr0npx8bq7g49kh";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3.1";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -24,10 +24,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bfh9z3n98c76c6jdp6avh75wsckxyp74r59hmgnqdhfznbkppv4";
+      sha256 = "1n21pswh3k7m33vzhxyrbi5lj64b1138yqv34jjhkhlq3474b4rh";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3.1";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -35,10 +35,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1brlp5pmawb2hqdybjb732zxxkamcmis6px3wyh09rjlc0gqnzzz";
+      sha256 = "1l29n9n38c9lpy5smh26r7fy7jp2bpjqlzhxgsr79cv7xpwlrbhs";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3.1";
   };
   adamantium = {
     dependencies = ["ice_nine" "memoizable"];
@@ -118,10 +118,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
+      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
       type = "gem";
     };
-    version = "1.1.5";
+    version = "1.1.6";
   };
   crack = {
     dependencies = ["safe_yaml"];
@@ -213,10 +213,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06mvxpjply8qh4j3fj9wh08kdzwkbnvsiysh0vrhlk5cwxzjmblh";
+      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
       type = "gem";
     };
-    version = "1.11.1";
+    version = "1.12.2";
   };
   gemojione = {
     dependencies = ["json"];
@@ -233,10 +233,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "092bq7bjfj2yvss2ig6jb71j0h04cigq79xxfis37j315iixl12j";
+      sha256 = "0rhw05d88l928g6y2bngvmr66565b2z822hyynmb13b7khf07y1a";
       type = "gem";
     };
-    version = "7.5.1";
+    version = "7.9.0";
   };
   github-markup = {
     source = {
@@ -247,15 +247,15 @@
     version = "1.7.0";
   };
   gitlab-gollum-lib = {
-    dependencies = ["gemojione" "github-markup" "gollum-grit_adapter" "nokogiri" "rouge" "sanitize" "stringex"];
+    dependencies = ["gemojione" "github-markup" "gitlab-gollum-rugged_adapter" "nokogiri" "rouge" "sanitize" "stringex"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13m26b32iznp0lbq984dijx7n4ckg99zckwp80gv1knq8n0bpfbf";
+      sha256 = "0y21k8bix3h2qdys2kz2z831cclmx3zc15x67cp8s945dkmh39sj";
       type = "gem";
     };
-    version = "4.2.7.7";
+    version = "4.2.7.9";
   };
   gitlab-gollum-rugged_adapter = {
     dependencies = ["mime-types" "rugged"];
@@ -268,44 +268,26 @@
     };
     version = "0.4.4.2";
   };
-  gitlab-grit = {
-    dependencies = ["charlock_holmes" "diff-lcs" "mime-types" "posix-spawn"];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0xgs3l81ghlc5nm75n0pz7b2cj3hpscfq5iy27c483nnjn2v5mc4";
-      type = "gem";
-    };
-    version = "2.8.2";
-  };
   gitlab-labkit = {
     dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "redis"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1s1cgnnzlnfglsh5r0iihgvyasa2zbqkyrrnbxshvnkddb10i94z";
+      sha256 = "0a63zgjll83b25hiq8m4sk75jci2rj8z46lss0j3bc6zi3pxnzax";
       type = "gem";
     };
-    version = "0.9.1";
+    version = "0.12.0";
   };
   gitlab-markup = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rqf3jmyn78r3ysy3bjyx7s4yv3xipxlmqlmbyrbksna19rrx08d";
-      type = "gem";
-    };
-    version = "1.7.0";
-  };
-  gollum-grit_adapter = {
-    dependencies = ["gitlab-grit"];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0fcibm63v1afc0fj5rki0mm51m7nndil4cjcjjvkh3yigfn4nr4b";
+      sha256 = "0xnlra517pfj3hx07kasbqlcw51ix4xajr6bsd3mwg8bc92dlwy7";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.7.1";
   };
   google-protobuf = {
     groups = ["default"];
@@ -339,6 +321,16 @@
     };
     version = "1.24.0";
   };
+  grpc-tools = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pjs2sm43mai2fy0jsbxl8rs9bych8f5j8hv630fjwh0323cmcc9";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
   hashdiff = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -422,10 +414,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g7ps9m3s14cajhxrfgbzahv9i3gy47s4hqrv3mpybpj5cyr0srn";
+      sha256 = "0jk9fgn5ayzbqvzqm11gbkqvas77zdbpkvynlylyiwynclgrn040";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   memoizable = {
     dependencies = ["thread_safe"];
@@ -563,18 +555,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pnks149x0fzgqiw53qlmvcd8bi746cxdw03sjljby5s97p1fskn";
-      type = "gem";
-    };
-    version = "2.6.3.0";
-  };
-  posix-spawn = {
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1pmxmpins57qrbr31bs3bm7gidhaacmrp4md6i962gvpq4gyfcjw";
+      sha256 = "0iirjc36irgwpfb58jdf9gli382cj893y9caqhxas8anpzzlikgc";
       type = "gem";
     };
-    version = "0.3.13";
+    version = "2.7.0.5";
   };
   proc_to_ast = {
     dependencies = ["coderay" "parser" "unparser"];
@@ -695,10 +679,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ipgdir89a6pp1zscl2fkb99pppa7c513pk4wvis157bn8p9hlrx";
+      sha256 = "102rc07d78k5bkl0s9nd1gw6wz0w0zcvg4g5sl7z9xxi4r793c35";
       type = "gem";
     };
-    version = "3.15.0";
+    version = "3.19.0";
   };
   rspec = {
     dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
@@ -887,10 +871,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04f18jdv6z3zn3va50rqq35nj3izjpb72fnf21ixm7vanq6nc4fp";
+      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
       type = "gem";
     };
-    version = "1.2.6";
+    version = "1.2.7";
   };
   unicode-display_width = {
     groups = ["default" "development" "test"];
@@ -908,10 +892,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03vjj74kj86vlazhiclf63kf6gajs66k8ni34q70fdhf97d7b60c";
+      sha256 = "0qg1apxlnf4kxfj9jpm6hhv73jsncbs4zpsgyan32p5r331q1gmx";
       type = "gem";
     };
-    version = "0.4.5";
+    version = "0.4.7";
   };
   vcr = {
     source = {
@@ -935,9 +919,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jywi63w1m2b2w9fj9rjb9n3imf6p5bfijfmml1xzdnsrdrjz0x1";
+      sha256 = "1akpm3pwvyiack2zk6giv9yn3cqb8pw6g40p4394pdc3xmy3s4k0";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "2.3.0";
   };
 }
\ No newline at end of file
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
index 2b4fddaa9c8..3e32e90a6d2 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -2,12 +2,12 @@
 
 buildGoPackage rec {
   pname = "gitlab-shell";
-  version = "11.0.0";
+  version = "13.2.0";
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-shell";
     rev = "v${version}";
-    sha256 = "1ca4yil8gp1cm7w939irp1x2y907z2mkdqiap8ik8mqp8svv1m44";
+    sha256 = "0drdpg4nmhzrmy8sl1f3hcd1278bpapgf0wmhi94xlyayh47j53a";
   };
 
   buildInputs = [ ruby ];
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/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index dda67833567..6386a9cc5aa 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -3,13 +3,13 @@
 buildGoPackage rec {
   pname = "gitlab-workhorse";
 
-  version = "8.21.2";
+  version = "8.31.2";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-workhorse";
     rev = "v${version}";
-    sha256 = "065yy8zfxahpybk3mbvc492by1lvssqcbqm8i4yp09m669rk239w";
+    sha256 = "0wvhhjfb490mjdrmc9xwr3qfh3941xn3b02c757ghrvzwv329wvg";
   };
 
   goPackagePath = "gitlab.com/gitlab-org/gitlab-workhorse";
diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/deps.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/deps.nix
index c27c5bbf548..530eb073c7b 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-workhorse/deps.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/deps.nix
@@ -5,8 +5,17 @@
     fetch = {
       type = "git";
       url = "https://code.googlesource.com/gocloud";
-      rev = "v0.26.0";
-      sha256 = "149v3ci17g6wd2pm18mzcncq5qpl9hwdjnz3rlbn5rfidyn46la1";
+      rev = "v0.50.0";
+      sha256 = "0pbz5migljd5whxh6z1w79cwx93n85mcs3x1bckl27yzaa4lvqsl";
+    };
+  }
+  {
+    goPackagePath = "dmitri.shuralyov.com/gpu/mtl";
+    fetch = {
+      type = "git";
+      url = "https://dmitri.shuralyov.com/gpu/mtl";
+      rev = "666a987793e9";
+      sha256 = "1isd03hgiwcf2ld1rlp0plrnfz7r4i7c5q4kb6hkcd22axnmrv0z";
     };
   }
   {
@@ -19,6 +28,15 @@
     };
   }
   {
+    goPackagePath = "github.com/BurntSushi/xgb";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/xgb";
+      rev = "27f122750802";
+      sha256 = "18lp2x8f5bljvlz0r7xn744f0c9rywjsb9ifiszqqdcpwhsa0kvj";
+    };
+  }
+  {
     goPackagePath = "github.com/FZambia/sentinel";
     fetch = {
       type = "git";
@@ -109,6 +127,33 @@
     };
   }
   {
+    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";
@@ -271,6 +316,15 @@
     };
   }
   {
+    goPackagePath = "github.com/go-gl/glfw";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-gl/glfw";
+      rev = "12ad95a8df72";
+      sha256 = "0ahw4a1lk7wqn6m0sjngsv2zc08kxxj259ai6g4kf11lmidszm9s";
+    };
+  }
+  {
     goPackagePath = "github.com/go-kit/kit";
     fetch = {
       type = "git";
@@ -334,6 +388,15 @@
     };
   }
   {
+    goPackagePath = "github.com/golang/groupcache";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/groupcache";
+      rev = "215e87163ea7";
+      sha256 = "07555csk49ara636bhl2vbzziayls3qks8964z0q29g065zliy9j";
+    };
+  }
+  {
     goPackagePath = "github.com/golang/lint";
     fetch = {
       type = "git";
@@ -347,8 +410,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/golang/mock";
-      rev = "v1.1.1";
-      sha256 = "0ap8wb6pdl6ccmdb43advjll2ly4sz26wsc3axw0hbrjrybybzgy";
+      rev = "v1.3.1";
+      sha256 = "1wnfa8njxdym1qb664dmfnkpm4pmqy22hqjlqpwaaiqhglb5g9d1";
     };
   }
   {
@@ -370,12 +433,21 @@
     };
   }
   {
+    goPackagePath = "github.com/google/btree";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/btree";
+      rev = "v1.0.0";
+      sha256 = "0ba430m9fbnagacp57krgidsyrgp3ycw5r7dj71brgp5r52g82p6";
+    };
+  }
+  {
     goPackagePath = "github.com/google/go-cmp";
     fetch = {
       type = "git";
       url = "https://github.com/google/go-cmp";
-      rev = "v0.3.1";
-      sha256 = "1caw49i0plkjxir7kdf5qhwls3krqwfmi7g4h392rdfwi3kfahx1";
+      rev = "v0.4.0";
+      sha256 = "1x5pvl3fb5sbyng7i34431xycnhmx8xx94gq2n19g6p0vz68z2v2";
     };
   }
   {
@@ -388,6 +460,24 @@
     };
   }
   {
+    goPackagePath = "github.com/google/martian";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/martian";
+      rev = "v2.1.0";
+      sha256 = "197hil6vrjk50b9wvwyzf61csid83whsjj6ik8mc9r2lryxlyyrp";
+    };
+  }
+  {
+    goPackagePath = "github.com/google/pprof";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/pprof";
+      rev = "d4f498aebedc";
+      sha256 = "1r4pn70yy5vfl38jx9v8224n7jkhcm5wg28vv48izgznlgv7h024";
+    };
+  }
+  {
     goPackagePath = "github.com/google/renameio";
     fetch = {
       type = "git";
@@ -406,6 +496,15 @@
     };
   }
   {
+    goPackagePath = "github.com/googleapis/gax-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/googleapis/gax-go";
+      rev = "v2.0.5";
+      sha256 = "1lxawwngv6miaqd25s3ba0didfzylbwisd2nz7r4gmbmin6jsjrx";
+    };
+  }
+  {
     goPackagePath = "github.com/gopherjs/gopherjs";
     fetch = {
       type = "git";
@@ -451,6 +550,15 @@
     };
   }
   {
+    goPackagePath = "github.com/hashicorp/golang-lru";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/golang-lru";
+      rev = "v0.5.1";
+      sha256 = "13f870cvk161bzjj6x41l45r5x9i1z9r2ymwmvm7768kg08zznpy";
+    };
+  }
+  {
     goPackagePath = "github.com/hpcloud/tail";
     fetch = {
       type = "git";
@@ -460,6 +568,15 @@
     };
   }
   {
+    goPackagePath = "github.com/ianlancetaylor/demangle";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ianlancetaylor/demangle";
+      rev = "5e5cf60278f6";
+      sha256 = "1fhjk11cip9c3jyj1byz9z77n6n2rlxmyz0xjx1zpn1da3cvri75";
+    };
+  }
+  {
     goPackagePath = "github.com/imkira/go-interpol";
     fetch = {
       type = "git";
@@ -532,6 +649,15 @@
     };
   }
   {
+    goPackagePath = "github.com/jstemmer/go-junit-report";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jstemmer/go-junit-report";
+      rev = "v0.9.1";
+      sha256 = "1knip80yir1cdsjlb3rzy0a4w3kl4ljpiciaz6hjzwqlfhnv7bkw";
+    };
+  }
+  {
     goPackagePath = "github.com/jtolds/gls";
     fetch = {
       type = "git";
@@ -905,8 +1031,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/prometheus/client_model";
-      rev = "fd36f4220a90";
-      sha256 = "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5";
+      rev = "14fe0d1b01d4";
+      sha256 = "0zdmk6rbbx39cvfz0r59v2jg5sg9yd02b4pds5n5llgvivi99550";
     };
   }
   {
@@ -1193,8 +1319,17 @@
     fetch = {
       type = "git";
       url = "https://gitlab.com/gitlab-org/labkit.git";
-      rev = "3253d7975ca7";
-      sha256 = "1q7vqcbwzgwk4n09jnzdh2filv1aqclw9bgf3qjr5qrfk7hby58s";
+      rev = "fac94cb428e6";
+      sha256 = "19wvfjij6zm88fxbx0cngr6ny4yh3fw469d6vlv741b37s07w3j0";
+    };
+  }
+  {
+    goPackagePath = "go.opencensus.io";
+    fetch = {
+      type = "git";
+      url = "https://github.com/census-instrumentation/opencensus-go";
+      rev = "v0.22.2";
+      sha256 = "0lz7fid63pdrcvyzk5kn7vlcva102h61igmw7pz824wvj9k3hy4q";
     };
   }
   {
@@ -1211,8 +1346,26 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/crypto";
-      rev = "4def268fd1a4";
-      sha256 = "1bfsnari529gw34cz0zqk3d9mrkcj1ay35kangri8kbgll0ss5a6";
+      rev = "87dc89f01550";
+      sha256 = "0z4i1m2yn3f31ci7wvcm2rxkx2yiv7a78mfzklncmsz2k97rlh2g";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/exp";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/exp";
+      rev = "da58074b4299";
+      sha256 = "1pgvdbjm3n47505diw3mm2hisp9b9q2lyvgl9m6xh2wx83b0cj48";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/image";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/image";
+      rev = "cff245a6509b";
+      sha256 = "0hiznlkiaay30acwvvyq8g6bm32r7bc6gv47pygrcxqpapasbz84";
     };
   }
   {
@@ -1220,8 +1373,17 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/lint";
-      rev = "d0100b6bd8b3";
-      sha256 = "0b0amr9x4ji66iv9ayfx7zrfx52k1m5g66qfcxkgj80qrb1y2yn7";
+      rev = "fdd1cda4f05f";
+      sha256 = "0a23pc90fqar8sm1b480sls15ss20rqk13yrf63b6rnyd2c6z0x2";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/mobile";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/mobile";
+      rev = "d2bd2a29d028";
+      sha256 = "1nv6vvhnjr01nx9y06q46ww87dppdwpbqrlsfg1xf2587wxl8xiv";
     };
   }
   {
@@ -1229,8 +1391,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/mod";
-      rev = "4bf6d317e70e";
-      sha256 = "19lg1ly3j31anx92p0hynic1gjk417wwxphfdrb2cq1c19kj3r17";
+      rev = "c90efee705ee";
+      sha256 = "0i5md645rmcy5z5ij9ng428k9rz4g3k1kjy3blsq1264rn426gdf";
     };
   }
   {
@@ -1238,8 +1400,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/net";
-      rev = "d28f0bde5980";
-      sha256 = "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf";
+      rev = "6afb5195e5aa";
+      sha256 = "1aiz41q2yxgg3dxfkn33ff54vhaxbiwcps9j3ia1xx4cqxim38zw";
     };
   }
   {
@@ -1247,8 +1409,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/oauth2";
-      rev = "d2e6202438be";
-      sha256 = "0wbn75fd10485nb93bm4kqldqifdim5xqy4v7r5sdvimvf3fyhn7";
+      rev = "bf48bf16ab8d";
+      sha256 = "1sirdib60zwmh93kf9qrx51r8544k1p9rs5mk0797wibz3m4mrdg";
     };
   }
   {
@@ -1256,8 +1418,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/sync";
-      rev = "112230192c58";
-      sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
+      rev = "cd5d95a43a6e";
+      sha256 = "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds";
     };
   }
   {
@@ -1265,8 +1427,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/sys";
-      rev = "fde4db37ae7a";
-      sha256 = "16k4w4pzziq1kln18k5fg01qgk4hpzb5xsm7175kaky6d6gwyhg3";
+      rev = "d101bd2416d5";
+      sha256 = "1ksxf37b0ym21n8j29m3wgbaiw1kcjw3hgf88kipc1ry2j13l98p";
     };
   }
   {
@@ -1274,8 +1436,17 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/text";
-      rev = "v0.3.0";
-      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+      rev = "v0.3.2";
+      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/time";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/time";
+      rev = "9d24e82272b4";
+      sha256 = "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb";
     };
   }
   {
@@ -1283,8 +1454,26 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/tools";
-      rev = "6e04913cbbac";
-      sha256 = "1314j8r4cp69a12nqdaljd06r6hmh3b1v4xyrz8prw6gx5jg7h3q";
+      rev = "43d50277825c";
+      sha256 = "1168q4da36wq9w2591iqzsfy5ymwfi2g46bv5dnyyspg155ld19k";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/xerrors";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/xerrors";
+      rev = "9bdfabe68543";
+      sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c";
+    };
+  }
+  {
+    goPackagePath = "google.golang.org/api";
+    fetch = {
+      type = "git";
+      url = "https://code.googlesource.com/google-api-go-client";
+      rev = "v0.15.0";
+      sha256 = "1ljhwv5xsgsbqia70f35q19vwrsm47sh08ljbwdyfa867ff17qdh";
     };
   }
   {
@@ -1292,8 +1481,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/golang/appengine";
-      rev = "v1.1.0";
-      sha256 = "1pz202zszg8f35dk5pfhwgcdi3r6dx1l4yk6x6ly7nb4j45zi96x";
+      rev = "v1.6.5";
+      sha256 = "05hbq4cs7bqw0zl17bx8rzdkszid3nyl92100scg3jjrg70dhm7w";
     };
   }
   {
@@ -1301,8 +1490,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/google/go-genproto";
-      rev = "bd91e49a0898";
-      sha256 = "1f5q04h03q6fksbfkhz13ai5849rkkb8xrmmi7cxs4lzsi6ixkg8";
+      rev = "ca5a22157cba";
+      sha256 = "0ldkh6f0g0wzfkp09ib15a62bmcbpsxj93saikqmc86242bcxij0";
     };
   }
   {
@@ -1409,8 +1598,17 @@
     fetch = {
       type = "git";
       url = "https://github.com/dominikh/go-tools";
-      rev = "v0.0.1-2019.2.2";
-      sha256 = "1vndpwg797z2gw9h9378iq99aqy7nalqx82lgvcsaqnkypdmppnd";
+      rev = "v0.0.1-2019.2.3";
+      sha256 = "1rwwahmbs4dwxncwjj56likir1kps9937vm2id3rygxzzla40zal";
+    };
+  }
+  {
+    goPackagePath = "rsc.io/binaryregexp";
+    fetch = {
+      type = "git";
+      url = "https://github.com/rsc/binaryregexp";
+      rev = "v0.2.0";
+      sha256 = "1kar0myy85waw418zslviwx8846zj0m9cmqkxjx0fvgjdi70nc4b";
     };
   }
 ]
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index e8a58a6d59b..9c8c5e8b30d 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -1,8 +1,8 @@
 source 'https://rubygems.org'
 
-gem 'rails', '6.0.2'
+gem 'rails', '~> 6.0.3'
 
-gem 'bootsnap', '~> 1.4'
+gem 'bootsnap', '~> 1.4.6'
 
 # Improves copy-on-write performance for MRI
 gem 'nakayoshi_fork', '~> 0.0.4'
@@ -26,7 +26,7 @@ gem 'marginalia', '~> 1.8.0'
 
 # Authentication libraries
 gem 'devise', '~> 4.6'
-gem 'doorkeeper', '~> 5.0.2'
+gem 'doorkeeper', '~> 5.0.3'
 gem 'doorkeeper-openid_connect', '~> 1.6.3'
 gem 'omniauth', '~> 1.8'
 gem 'omniauth-auth0', '~> 2.0.0'
@@ -58,7 +58,7 @@ gem 'akismet', '~> 3.0'
 gem 'invisible_captcha', '~> 0.12.1'
 
 # Two-factor authentication
-gem 'devise-two-factor', '~> 3.0.0'
+gem 'devise-two-factor', '~> 3.1.0'
 gem 'rqrcode-rails3', '~> 0.1.7'
 gem 'attr_encrypted', '~> 3.1.0'
 gem 'u2f', '~> 0.2.1'
@@ -87,7 +87,7 @@ gem 'grape-entity', '~> 0.7.1'
 gem 'rack-cors', '~> 1.0.6', require: 'rack/cors'
 
 # GraphQL API
-gem 'graphql', '~> 1.9.12'
+gem 'graphql', '~> 1.10.5'
 # NOTE: graphiql-rails v1.5+ doesn't work: https://gitlab.com/gitlab-org/gitlab/issues/31771
 # TODO: remove app/views/graphiql/rails/editors/show.html.erb when https://github.com/rmosolgo/graphiql-rails/pull/71 is released:
 # https://gitlab.com/gitlab-org/gitlab/issues/31747
@@ -138,7 +138,7 @@ gem 'faraday_middleware-aws-signers-v4'
 # Markdown and HTML processing
 gem 'html-pipeline', '~> 2.12'
 gem 'deckar01-task_list', '2.3.1'
-gem 'gitlab-markup', '~> 1.7.0'
+gem 'gitlab-markup', '~> 1.7.1'
 gem 'github-markup', '~> 1.7.0', require: 'github/markup'
 gem 'commonmarker', '~> 0.20'
 gem 'RedCloth', '~> 4.3.2'
@@ -148,30 +148,30 @@ gem 'creole', '~> 0.5.0'
 gem 'wikicloth', '0.8.1'
 gem 'asciidoctor', '~> 2.0.10'
 gem 'asciidoctor-include-ext', '~> 0.3.1', require: false
-gem 'asciidoctor-plantuml', '0.0.10'
-gem 'rouge', '~> 3.15.0'
+gem 'asciidoctor-plantuml', '~> 0.0.12'
+gem 'rouge', '~> 3.19.0'
 gem 'truncato', '~> 0.7.11'
 gem 'bootstrap_form', '~> 4.2.0'
-gem 'nokogiri', '~> 1.10.5'
+gem 'nokogiri', '~> 1.10.9'
 gem 'escape_utils', '~> 1.1'
 
 # Calendar rendering
 gem 'icalendar'
 
 # Diffs
-gem 'diffy', '~> 3.1.0'
+gem 'diffy', '~> 3.3'
 gem 'diff_match_patch', '~> 0.1.0'
 
 # Application server
 gem 'rack', '~> 2.0.9'
 
 group :unicorn do
-  gem 'unicorn', '~> 5.4.1'
+  gem 'unicorn', '~> 5.5'
   gem 'unicorn-worker-killer', '~> 0.4.4'
 end
 
 group :puma do
-  gem 'gitlab-puma', '~> 4.3.1.gitlab.2', require: false
+  gem 'gitlab-puma', '~> 4.3.3.gitlab.2', require: false
   gem 'gitlab-puma_worker_killer', '~> 0.1.1.gitlab.1', require: false
   gem 'rack-timeout', require: false
 end
@@ -204,7 +204,7 @@ gem 'ruby-progressbar'
 gem 'settingslogic', '~> 2.0.9'
 
 # Linear-time regex library for untrusted regular expressions
-gem 're2', '~> 1.1.1'
+gem 're2', '~> 1.2.0'
 
 # Misc
 
@@ -230,14 +230,14 @@ gem 'discordrb-webhooks-blackst0ne', '~> 3.3', require: false
 gem 'hipchat', '~> 1.5.0'
 
 # Jira integration
-gem 'jira-ruby', '~> 1.7'
+gem 'jira-ruby', '~> 2.0.0'
 gem 'atlassian-jwt', '~> 0.2.0'
 
 # Flowdock integration
 gem 'flowdock', '~> 0.7'
 
 # Slack integration
-gem 'slack-notifier', '~> 1.5.1'
+gem 'slack-messenger', '~> 2.3.3'
 
 # Hangouts Chat integration
 gem 'hangouts-chat', '~> 0.0.5'
@@ -287,13 +287,13 @@ gem 'addressable', '~> 2.7'
 gem 'font-awesome-rails', '~> 4.7'
 gem 'gemojione', '~> 3.3'
 gem 'gon', '~> 6.2'
-gem 'request_store', '~> 1.3'
+gem 'request_store', '~> 1.5'
 gem 'base32', '~> 0.3.0'
 
 gem "gitlab-license", "~> 1.0"
 
 # Protect against bruteforcing
-gem 'rack-attack', '~> 6.2.0'
+gem 'rack-attack', '~> 6.3.0'
 
 # Sentry integration
 gem 'sentry-raven', '~> 2.9'
@@ -301,7 +301,7 @@ gem 'sentry-raven', '~> 2.9'
 gem 'premailer-rails', '~> 1.10.3'
 
 # LabKit: Tracing and Correlation
-gem 'gitlab-labkit', '0.9.1'
+gem 'gitlab-labkit', '0.12.0'
 
 # I18n
 gem 'ruby_parser', '~> 3.8', require: false
@@ -318,13 +318,9 @@ gem 'peek', '~> 1.1'
 # Snowplow events tracking
 gem 'snowplow-tracker', '~> 0.6.1'
 
-# Memory benchmarks
-gem 'derailed_benchmarks', require: false
-
 # Metrics
 group :metrics do
   gem 'method_source', '~> 0.8', require: false
-  gem 'influxdb', '~> 0.2', require: false
 
   # Prometheus
   gem 'prometheus-client-mmap', '~> 0.10.0'
@@ -355,7 +351,7 @@ group :development, :test do
 
   gem 'database_cleaner', '~> 1.7.0'
   gem 'factory_bot_rails', '~> 5.1.0'
-  gem 'rspec-rails', '~> 4.0.0.beta3'
+  gem 'rspec-rails', '~> 4.0.0'
 
   # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
   gem 'minitest', '~> 5.11.0'
@@ -366,7 +362,7 @@ group :development, :test do
   gem 'spring', '~> 2.0.0'
   gem 'spring-commands-rspec', '~> 1.0.4'
 
-  gem 'gitlab-styles', '~> 3.1.0', require: false
+  gem 'gitlab-styles', '~> 3.2.0', require: false
   # Pin these dependencies, otherwise a new rule could break the CI pipelines
   gem 'rubocop', '~> 0.74.0'
   gem 'rubocop-performance', '~> 1.4.1'
@@ -374,8 +370,8 @@ group :development, :test do
 
   gem 'scss_lint', '~> 0.56.0', require: false
   gem 'haml_lint', '~> 0.34.0', require: false
-  gem 'simplecov', '~> 0.16.1', require: false
-  gem 'bundler-audit', '~> 0.5.0', require: false
+  gem 'simplecov', '~> 0.18.5', require: false
+  gem 'bundler-audit', '~> 0.6.1', require: false
 
   gem 'benchmark-ips', '~> 2.3.0', require: false
 
@@ -383,7 +379,7 @@ group :development, :test do
 
   gem 'simple_po_parser', '~> 1.1.2', require: false
 
-  gem 'timecop', '~> 0.8.0'
+  gem 'timecop', '~> 0.9.1'
 
   gem 'png_quantizator', '~> 0.2.1', require: false
 
@@ -399,7 +395,6 @@ group :test do
   gem 'fuubar', '~> 2.2.0'
   gem 'rspec-retry', '~> 0.6.1'
   gem 'rspec_profiling', '~> 0.0.5'
-  gem 'rspec-set', '~> 0.1.3'
   gem 'rspec-parameterized', require: false
 
   gem 'capybara', '~> 3.22.0'
@@ -415,16 +410,20 @@ group :test do
   gem 'test-prof', '~> 0.10.0'
   gem 'rspec_junit_formatter'
   gem 'guard-rspec'
+
+  # Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527
+  gem 'derailed_benchmarks', require: false
 end
 
 gem 'octokit', '~> 4.15'
 
-gem 'mail_room', '~> 0.10.0'
+# https://gitlab.com/gitlab-org/gitlab/issues/207207
+gem 'gitlab-mail_room', '~> 0.0.4', require: 'mail_room'
 
 gem 'email_reply_trimmer', '~> 0.1'
 gem 'html2text'
 
-gem 'ruby-prof', '~> 1.0.0'
+gem 'ruby-prof', '~> 1.3.0'
 gem 'stackprof', '~> 0.2.15', require: false
 gem 'rbtrace', '~> 0.4', require: false
 gem 'memory_profiler', '~> 0.9', require: false
@@ -445,7 +444,7 @@ gem 'sys-filesystem', '~> 1.1.6'
 gem 'net-ntp'
 
 # SSH host key support
-gem 'net-ssh', '~> 5.2'
+gem 'net-ssh', '~> 6.0'
 gem 'sshkey', '~> 2.0'
 
 # Required for ED25519 SSH host key support
@@ -455,7 +454,7 @@ group :ed25519 do
 end
 
 # Gitaly GRPC protocol definitions
-gem 'gitaly', '~> 1.86.0'
+gem 'gitaly', '~> 13.0.0.pre.rc1'
 
 gem 'grpc', '~> 1.24.0'
 
@@ -481,8 +480,6 @@ gem 'countries', '~> 3.0'
 
 gem 'retriable', '~> 3.1.2'
 
-gem 'liquid', '~> 4.0'
-
 # LRU cache
 gem 'lru_redux'
 
@@ -492,3 +489,12 @@ gem 'erubi', '~> 1.9.0'
 # Monkey-patched in `config/initializers/mail_encoding_patch.rb`
 # See https://gitlab.com/gitlab-org/gitlab/issues/197386
 gem 'mail', '= 2.7.1'
+
+# File encryption
+gem 'lockbox', '~> 0.3.3'
+
+# Email validation
+gem 'valid_email', '~> 0.1'
+
+# JSON
+gem 'json', '~> 2.3.0'
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 4d7b3d32a6b..e6407161f8e 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -6,64 +6,64 @@ GEM
     ace-rails-ap (4.1.2)
     acme-client (2.0.5)
       faraday (~> 0.9, >= 0.9.1)
-    actioncable (6.0.2)
-      actionpack (= 6.0.2)
+    actioncable (6.0.3)
+      actionpack (= 6.0.3)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
-    actionmailbox (6.0.2)
-      actionpack (= 6.0.2)
-      activejob (= 6.0.2)
-      activerecord (= 6.0.2)
-      activestorage (= 6.0.2)
-      activesupport (= 6.0.2)
+    actionmailbox (6.0.3)
+      actionpack (= 6.0.3)
+      activejob (= 6.0.3)
+      activerecord (= 6.0.3)
+      activestorage (= 6.0.3)
+      activesupport (= 6.0.3)
       mail (>= 2.7.1)
-    actionmailer (6.0.2)
-      actionpack (= 6.0.2)
-      actionview (= 6.0.2)
-      activejob (= 6.0.2)
+    actionmailer (6.0.3)
+      actionpack (= 6.0.3)
+      actionview (= 6.0.3)
+      activejob (= 6.0.3)
       mail (~> 2.5, >= 2.5.4)
       rails-dom-testing (~> 2.0)
-    actionpack (6.0.2)
-      actionview (= 6.0.2)
-      activesupport (= 6.0.2)
-      rack (~> 2.0)
+    actionpack (6.0.3)
+      actionview (= 6.0.3)
+      activesupport (= 6.0.3)
+      rack (~> 2.0, >= 2.0.8)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actiontext (6.0.2)
-      actionpack (= 6.0.2)
-      activerecord (= 6.0.2)
-      activestorage (= 6.0.2)
-      activesupport (= 6.0.2)
+    actiontext (6.0.3)
+      actionpack (= 6.0.3)
+      activerecord (= 6.0.3)
+      activestorage (= 6.0.3)
+      activesupport (= 6.0.3)
       nokogiri (>= 1.8.5)
-    actionview (6.0.2)
-      activesupport (= 6.0.2)
+    actionview (6.0.3)
+      activesupport (= 6.0.3)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activejob (6.0.2)
-      activesupport (= 6.0.2)
+    activejob (6.0.3)
+      activesupport (= 6.0.3)
       globalid (>= 0.3.6)
-    activemodel (6.0.2)
-      activesupport (= 6.0.2)
-    activerecord (6.0.2)
-      activemodel (= 6.0.2)
-      activesupport (= 6.0.2)
+    activemodel (6.0.3)
+      activesupport (= 6.0.3)
+    activerecord (6.0.3)
+      activemodel (= 6.0.3)
+      activesupport (= 6.0.3)
     activerecord-explain-analyze (0.1.0)
       activerecord (>= 4)
       pg
-    activestorage (6.0.2)
-      actionpack (= 6.0.2)
-      activejob (= 6.0.2)
-      activerecord (= 6.0.2)
+    activestorage (6.0.3)
+      actionpack (= 6.0.3)
+      activejob (= 6.0.3)
+      activerecord (= 6.0.3)
       marcel (~> 0.3.1)
-    activesupport (6.0.2)
+    activesupport (6.0.3)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
       tzinfo (~> 1.1)
-      zeitwerk (~> 2.2)
+      zeitwerk (~> 2.2, >= 2.2.2)
     acts-as-taggable-on (6.5.0)
       activerecord (>= 5.0, < 6.1)
     adamantium (0.2.0)
@@ -84,7 +84,7 @@ GEM
     asciidoctor (2.0.10)
     asciidoctor-include-ext (0.3.1)
       asciidoctor (>= 1.5.6, < 3.0.0)
-    asciidoctor-plantuml (0.0.10)
+    asciidoctor-plantuml (0.0.12)
       asciidoctor (>= 1.5.6, < 3.0.0)
     ast (2.4.0)
     atlassian-jwt (0.2.0)
@@ -123,7 +123,7 @@ GEM
     binding_ninja (0.2.3)
     binding_of_caller (0.8.0)
       debug_inspector (>= 0.0.1)
-    bootsnap (1.4.5)
+    bootsnap (1.4.6)
       msgpack (~> 1.0)
     bootstrap_form (4.2.0)
       actionpack (>= 5.0)
@@ -134,8 +134,8 @@ GEM
     bullet (6.0.2)
       activesupport (>= 3.0.0)
       uniform_notifier (~> 1.11)
-    bundler-audit (0.5.0)
-      bundler (~> 1.2)
+    bundler-audit (0.6.1)
+      bundler (>= 1.2.0, < 3)
       thor (~> 0.18)
     byebug (9.1.0)
     capybara (3.22.0)
@@ -153,7 +153,6 @@ GEM
       activemodel (>= 4.0.0)
       activesupport (>= 4.0.0)
       mime-types (>= 1.16)
-    cause (0.1)
     character_set (1.1.2)
     charlock_holmes (0.7.6)
     childprocess (3.0.0)
@@ -211,15 +210,17 @@ GEM
     declarative-option (0.1.0)
     default_value_for (3.3.0)
       activerecord (>= 3.2.0, < 6.1)
-    derailed_benchmarks (1.4.2)
+    derailed_benchmarks (1.7.0)
       benchmark-ips (~> 2)
       get_process_mem (~> 0)
       heapy (~> 0)
       memory_profiler (~> 0)
+      mini_histogram (~> 0)
       rack (>= 1)
       rake (> 10, < 14)
       ruby-statistics (>= 2.1)
-      thor (~> 0.19)
+      thor (>= 0.19, < 2)
+      unicode_plot (>= 0.0.4, < 1.0.0)
     descendants_tracker (0.0.4)
       thread_safe (~> 0.3, >= 0.3.1)
     device_detector (1.0.0)
@@ -229,21 +230,21 @@ GEM
       railties (>= 4.1.0)
       responders
       warden (~> 1.2.3)
-    devise-two-factor (3.0.0)
-      activesupport
+    devise-two-factor (3.1.0)
+      activesupport (< 6.1)
       attr_encrypted (>= 1.3, < 4, != 2)
       devise (~> 4.0)
-      railties
+      railties (< 6.1)
       rotp (~> 2.0)
     diff-lcs (1.3)
     diff_match_patch (0.1.0)
-    diffy (3.1.0)
+    diffy (3.3.0)
     discordrb-webhooks-blackst0ne (3.3.0)
       rest-client (~> 2.0)
-    docile (1.3.1)
+    docile (1.3.2)
     domain_name (0.5.20180417)
       unf (>= 0.0.5, < 1.0.0)
-    doorkeeper (5.0.2)
+    doorkeeper (5.0.3)
       railties (>= 4.2)
     doorkeeper-openid_connect (1.6.3)
       doorkeeper (>= 5.0, < 5.2)
@@ -268,6 +269,7 @@ GEM
       launchy (~> 2.1)
       mail (~> 2.7)
     encryptor (3.0.0)
+    enumerable-statistics (2.0.1)
     equalizer (0.0.11)
     erubi (1.9.0)
     escape_utils (1.2.1)
@@ -299,7 +301,7 @@ GEM
     fast_blank (1.0.0)
     fast_gettext (1.6.0)
     ffaker (2.10.0)
-    ffi (1.11.3)
+    ffi (1.12.2)
     ffi-compiler (1.0.1)
       ffi (>= 1.0.0)
       rake
@@ -375,12 +377,12 @@ GEM
       po_to_json (>= 1.0.0)
       rails (>= 3.2.0)
     git (1.5.0)
-    gitaly (1.86.0)
+    gitaly (13.0.0.pre.rc1)
       grpc (~> 1.0)
     github-markup (1.7.0)
     gitlab-chronic (0.10.5)
       numerizer (~> 0.2)
-    gitlab-labkit (0.9.1)
+    gitlab-labkit (0.12.0)
       actionpack (>= 5.0.0, < 6.1.0)
       activesupport (>= 5.0.0, < 6.1.0)
       grpc (~> 1.19)
@@ -388,16 +390,17 @@ GEM
       opentracing (~> 0.4)
       redis (> 3.0.0, < 5.0.0)
     gitlab-license (1.0.0)
-    gitlab-markup (1.7.0)
+    gitlab-mail_room (0.0.4)
+    gitlab-markup (1.7.1)
     gitlab-net-dns (0.9.1)
-    gitlab-puma (4.3.1.gitlab.2)
+    gitlab-puma (4.3.3.gitlab.2)
       nio4r (~> 2.0)
     gitlab-puma_worker_killer (0.1.1.gitlab.1)
       get_process_mem (~> 0.2)
       gitlab-puma (>= 2.7, < 5)
     gitlab-sidekiq-fetcher (0.5.2)
       sidekiq (~> 5)
-    gitlab-styles (3.1.0)
+    gitlab-styles (3.2.0)
       rubocop (~> 0.74.0)
       rubocop-gitlab-security (~> 0.1.0)
       rubocop-performance (~> 1.4.1)
@@ -433,7 +436,7 @@ GEM
       multi_json (~> 1.11)
       os (>= 0.9, < 2.0)
       signet (~> 0.7)
-    gpgme (2.0.19)
+    gpgme (2.0.20)
       mini_portile2 (~> 2.3)
     grape (1.1.0)
       activesupport
@@ -455,7 +458,7 @@ GEM
     graphiql-rails (1.4.10)
       railties
       sprockets-rails
-    graphql (1.9.12)
+    graphql (1.10.5)
     graphql-docs (1.6.0)
       commonmarker (~> 0.16)
       escape_utils (~> 1.2)
@@ -531,9 +534,6 @@ GEM
     i18n_data (0.8.0)
     icalendar (2.4.1)
     ice_nine (0.11.2)
-    influxdb (0.2.3)
-      cause
-      json
     invisible_captcha (0.12.1)
       rails (>= 3.2.0)
     ipaddress (0.8.3)
@@ -541,7 +541,7 @@ GEM
       opentracing (~> 0.3)
       thrift
     jaro_winkler (1.5.4)
-    jira-ruby (1.7.1)
+    jira-ruby (2.0.0)
       activesupport
       atlassian-jwt
       multipart-post
@@ -551,7 +551,7 @@ GEM
       character_set (~> 1.1)
       regexp_parser (~> 1.1)
       regexp_property_values (~> 0.3)
-    json (1.8.6)
+    json (2.3.0)
     json-jwt (1.11.0)
       activesupport (>= 4.2)
       aes_key_wrap
@@ -559,19 +559,19 @@ 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)
-    kgio (2.11.2)
+      kaminari-core (= 1.2.1)
+    kaminari-core (1.2.1)
+    kgio (2.11.3)
     knapsack (1.17.0)
       rake
     kramdown (2.1.0)
@@ -598,25 +598,24 @@ GEM
       xml-simple
     licensee (8.9.2)
       rugged (~> 0.24)
-    liquid (4.0.3)
     listen (3.1.5)
       rb-fsevent (~> 0.9, >= 0.9.4)
       rb-inotify (~> 0.9, >= 0.9.7)
       ruby_dep (~> 1.2)
     locale (2.1.2)
+    lockbox (0.3.3)
     lograge (0.10.0)
       actionpack (>= 4)
       activesupport (>= 4)
       railties (>= 4)
       request_store (~> 1.0)
-    loofah (2.4.0)
+    loofah (2.5.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     lru_redux (1.1.0)
     lumberjack (1.0.13)
     mail (2.7.1)
       mini_mime (>= 0.1.1)
-    mail_room (0.10.0)
     marcel (0.3.3)
       mimemagic (~> 0.3.2)
     marginalia (1.8.0)
@@ -630,7 +629,8 @@ GEM
     mime-types (3.2.2)
       mime-types-data (~> 3.2015)
     mime-types-data (3.2019.0331)
-    mimemagic (0.3.3)
+    mimemagic (0.3.5)
+    mini_histogram (0.1.3)
     mini_magick (4.9.5)
     mini_mime (1.0.2)
     mini_portile2 (2.4.0)
@@ -648,11 +648,11 @@ GEM
     nenv (0.3.0)
     net-ldap (0.16.2)
     net-ntp (2.1.3)
-    net-ssh (5.2.0)
+    net-ssh (6.0.0)
     netrc (0.11.0)
     nio4r (2.5.2)
     no_proxy_fix (0.1.2)
-    nokogiri (1.10.8)
+    nokogiri (1.10.9)
       mini_portile2 (~> 2.4.0)
     nokogumbo (1.5.0)
       nokogiri
@@ -750,7 +750,7 @@ GEM
     orm_adapter (0.5.0)
     os (1.0.0)
     parallel (1.19.1)
-    parser (2.6.5.0)
+    parser (2.7.0.4)
       ast (~> 2.4.0)
     parslet (1.8.2)
     peek (1.1.0)
@@ -786,7 +786,7 @@ GEM
     rack (2.0.9)
     rack-accept (0.4.5)
       rack (>= 0.4)
-    rack-attack (6.2.0)
+    rack-attack (6.3.0)
       rack (>= 1.0, < 3)
     rack-cors (1.0.6)
       rack (>= 1.6.0)
@@ -803,20 +803,20 @@ GEM
     rack-test (1.1.0)
       rack (>= 1.0, < 3)
     rack-timeout (0.5.1)
-    rails (6.0.2)
-      actioncable (= 6.0.2)
-      actionmailbox (= 6.0.2)
-      actionmailer (= 6.0.2)
-      actionpack (= 6.0.2)
-      actiontext (= 6.0.2)
-      actionview (= 6.0.2)
-      activejob (= 6.0.2)
-      activemodel (= 6.0.2)
-      activerecord (= 6.0.2)
-      activestorage (= 6.0.2)
-      activesupport (= 6.0.2)
+    rails (6.0.3)
+      actioncable (= 6.0.3)
+      actionmailbox (= 6.0.3)
+      actionmailer (= 6.0.3)
+      actionpack (= 6.0.3)
+      actiontext (= 6.0.3)
+      actionview (= 6.0.3)
+      activejob (= 6.0.3)
+      activemodel (= 6.0.3)
+      activerecord (= 6.0.3)
+      activestorage (= 6.0.3)
+      activesupport (= 6.0.3)
       bundler (>= 1.3.0)
-      railties (= 6.0.2)
+      railties (= 6.0.3)
       sprockets-rails (>= 2.0.0)
     rails-controller-testing (1.0.4)
       actionpack (>= 5.0.1.x)
@@ -830,14 +830,14 @@ GEM
     rails-i18n (6.0.0)
       i18n (>= 0.7, < 2)
       railties (>= 6.0.0, < 7)
-    railties (6.0.2)
-      actionpack (= 6.0.2)
-      activesupport (= 6.0.2)
+    railties (6.0.3)
+      actionpack (= 6.0.3)
+      activesupport (= 6.0.3)
       method_source
       rake (>= 0.8.7)
       thor (>= 0.20.3, < 2.0)
     rainbow (3.0.0)
-    raindrops (0.19.0)
+    raindrops (0.19.1)
     rake (12.3.3)
     rb-fsevent (0.10.2)
     rb-inotify (0.9.10)
@@ -849,10 +849,10 @@ GEM
       msgpack (>= 0.4.3)
       optimist (>= 3.0.0)
     rdoc (6.1.2)
-    re2 (1.1.1)
+    re2 (1.2.0)
     recaptcha (4.13.1)
       json
-    recursive-open-struct (1.1.0)
+    recursive-open-struct (1.1.1)
     redis (4.1.3)
     redis-actionpack (5.2.0)
       actionpack (>= 5, < 7)
@@ -878,7 +878,8 @@ GEM
       declarative (< 0.1.0)
       declarative-option (< 0.2.0)
       uber (< 0.2.0)
-    request_store (1.3.1)
+    request_store (1.5.0)
+      rack (>= 1.4)
     responders (3.0.0)
       actionpack (>= 5.0)
       railties (>= 5.0)
@@ -889,41 +890,40 @@ GEM
     retriable (3.1.2)
     rinku (2.0.0)
     rotp (2.1.2)
-    rouge (3.15.0)
+    rouge (3.19.0)
     rqrcode (0.7.0)
       chunky_png
     rqrcode-rails3 (0.1.7)
       rqrcode (>= 0.4.2)
-    rspec (3.8.0)
-      rspec-core (~> 3.8.0)
-      rspec-expectations (~> 3.8.0)
-      rspec-mocks (~> 3.8.0)
-    rspec-core (3.8.2)
-      rspec-support (~> 3.8.0)
-    rspec-expectations (3.8.4)
+    rspec (3.9.0)
+      rspec-core (~> 3.9.0)
+      rspec-expectations (~> 3.9.0)
+      rspec-mocks (~> 3.9.0)
+    rspec-core (3.9.1)
+      rspec-support (~> 3.9.1)
+    rspec-expectations (3.9.1)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.8.0)
-    rspec-mocks (3.8.1)
+      rspec-support (~> 3.9.0)
+    rspec-mocks (3.9.1)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.8.0)
+      rspec-support (~> 3.9.0)
     rspec-parameterized (0.4.2)
       binding_ninja (>= 0.2.3)
       parser
       proc_to_ast
       rspec (>= 2.13, < 4)
       unparser
-    rspec-rails (4.0.0.beta3)
+    rspec-rails (4.0.0)
       actionpack (>= 4.2)
       activesupport (>= 4.2)
       railties (>= 4.2)
-      rspec-core (~> 3.8)
-      rspec-expectations (~> 3.8)
-      rspec-mocks (~> 3.8)
-      rspec-support (~> 3.8)
+      rspec-core (~> 3.9)
+      rspec-expectations (~> 3.9)
+      rspec-mocks (~> 3.9)
+      rspec-support (~> 3.9)
     rspec-retry (0.6.1)
       rspec-core (> 3.3)
-    rspec-set (0.1.3)
-    rspec-support (3.8.2)
+    rspec-support (3.9.2)
     rspec_junit_formatter (0.4.1)
       rspec-core (>= 2, < 4, != 2.12.0)
     rspec_profiling (0.0.5)
@@ -951,11 +951,11 @@ GEM
       i18n
     ruby-fogbugz (0.2.1)
       crack (~> 0.4)
-    ruby-prof (1.0.0)
+    ruby-prof (1.3.1)
     ruby-progressbar (1.10.1)
     ruby-saml (1.7.2)
       nokogiri (>= 1.5.10)
-    ruby-statistics (2.1.1)
+    ruby-statistics (2.1.2)
     ruby_dep (1.5.0)
     ruby_parser (3.13.1)
       sexp_processor (~> 4.9)
@@ -1015,13 +1015,12 @@ GEM
       jwt (>= 1.5, < 3.0)
       multi_json (~> 1.10)
     simple_po_parser (1.1.2)
-    simplecov (0.16.1)
+    simplecov (0.18.5)
       docile (~> 1.1)
-      json (>= 1.8, < 3)
-      simplecov-html (~> 0.10.0)
-    simplecov-html (0.10.2)
+      simplecov-html (~> 0.11)
+    simplecov-html (0.12.2)
     sixarm_ruby_unaccent (1.2.0)
-    slack-notifier (1.5.1)
+    slack-messenger (2.3.3)
     snowplow-tracker (0.6.1)
       contracts (~> 0.7, <= 0.11)
     spring (2.0.2)
@@ -1065,7 +1064,7 @@ GEM
     thread_safe (0.3.6)
     thrift (0.11.0.0)
     tilt (2.0.10)
-    timecop (0.8.1)
+    timecop (0.9.1)
     timfel-krb5-auth (0.8.3)
     toml (0.2.0)
       parslet (~> 1.8.0)
@@ -1074,7 +1073,7 @@ GEM
     truncato (0.7.11)
       htmlentities (~> 4.3.1)
       nokogiri (>= 1.7.0, <= 2.0)
-    tzinfo (1.2.6)
+    tzinfo (1.2.7)
       thread_safe (~> 0.1)
     u2f (0.2.1)
     uber (0.1.0)
@@ -1085,8 +1084,10 @@ GEM
       unf_ext
     unf_ext (0.0.7.5)
     unicode-display_width (1.6.0)
+    unicode_plot (0.0.4)
+      enumerable-statistics (>= 2.0.1)
     unicode_utils (1.4.0)
-    unicorn (5.4.1)
+    unicorn (5.5.5)
       kgio (~> 2.6)
       raindrops (~> 0.7)
     unicorn-worker-killer (0.4.4)
@@ -1095,14 +1096,17 @@ GEM
     uniform_notifier (1.13.0)
     unleash (0.1.5)
       murmurhash3 (~> 0.1.6)
-    unparser (0.4.5)
+    unparser (0.4.7)
       abstract_type (~> 0.0.7)
       adamantium (~> 0.2.0)
       concord (~> 0.1.5)
       diff-lcs (~> 1.3)
       equalizer (~> 0.0.9)
-      parser (~> 2.6.3)
+      parser (>= 2.6.5)
       procto (~> 0.0.2)
+    valid_email (0.1.3)
+      activemodel
+      mail (>= 2.6.1)
     validate_email (0.1.6)
       activemodel (>= 3.0)
       mail (>= 2.2.5)
@@ -1141,7 +1145,7 @@ GEM
     xml-simple (1.1.5)
     xpath (3.2.0)
       nokogiri (~> 1.8)
-    zeitwerk (2.2.2)
+    zeitwerk (2.3.0)
 
 PLATFORMS
   ruby
@@ -1158,7 +1162,7 @@ DEPENDENCIES
   asana (~> 0.9)
   asciidoctor (~> 2.0.10)
   asciidoctor-include-ext (~> 0.3.1)
-  asciidoctor-plantuml (= 0.0.10)
+  asciidoctor-plantuml (~> 0.0.12)
   atlassian-jwt (~> 0.2.0)
   attr_encrypted (~> 3.1.0)
   awesome_print
@@ -1171,12 +1175,12 @@ DEPENDENCIES
   benchmark-memory (~> 0.1)
   better_errors (~> 2.5.0)
   binding_of_caller (~> 0.8.0)
-  bootsnap (~> 1.4)
+  bootsnap (~> 1.4.6)
   bootstrap_form (~> 4.2.0)
   brakeman (~> 4.2)
   browser (~> 2.5)
   bullet (~> 6.0.2)
-  bundler-audit (~> 0.5.0)
+  bundler-audit (~> 0.6.1)
   capybara (~> 3.22.0)
   capybara-screenshot (~> 1.0.22)
   carrierwave (~> 1.3)
@@ -1193,11 +1197,11 @@ DEPENDENCIES
   derailed_benchmarks
   device_detector
   devise (~> 4.6)
-  devise-two-factor (~> 3.0.0)
+  devise-two-factor (~> 3.1.0)
   diff_match_patch (~> 0.1.0)
-  diffy (~> 3.1.0)
+  diffy (~> 3.3)
   discordrb-webhooks-blackst0ne (~> 3.3)
-  doorkeeper (~> 5.0.2)
+  doorkeeper (~> 5.0.3)
   doorkeeper-openid_connect (~> 1.6.3)
   ed25519 (~> 1.2)
   elasticsearch-api (~> 6.8)
@@ -1230,17 +1234,18 @@ DEPENDENCIES
   gettext (~> 3.2.2)
   gettext_i18n_rails (~> 1.8.0)
   gettext_i18n_rails_js (~> 1.3)
-  gitaly (~> 1.86.0)
+  gitaly (~> 13.0.0.pre.rc1)
   github-markup (~> 1.7.0)
   gitlab-chronic (~> 0.10.5)
-  gitlab-labkit (= 0.9.1)
+  gitlab-labkit (= 0.12.0)
   gitlab-license (~> 1.0)
-  gitlab-markup (~> 1.7.0)
+  gitlab-mail_room (~> 0.0.4)
+  gitlab-markup (~> 1.7.1)
   gitlab-net-dns (~> 0.9.1)
-  gitlab-puma (~> 4.3.1.gitlab.2)
+  gitlab-puma (~> 4.3.3.gitlab.2)
   gitlab-puma_worker_killer (~> 0.1.1.gitlab.1)
   gitlab-sidekiq-fetcher (= 0.5.2)
-  gitlab-styles (~> 3.1.0)
+  gitlab-styles (~> 3.2.0)
   gitlab_chronic_duration (~> 0.10.6.2)
   gitlab_omniauth-ldap (~> 2.1.1)
   gon (~> 6.2)
@@ -1252,7 +1257,7 @@ DEPENDENCIES
   grape-path-helpers (~> 1.2)
   grape_logging (~> 1.7)
   graphiql-rails (~> 1.4.10)
-  graphql (~> 1.9.12)
+  graphql (~> 1.10.5)
   graphql-docs (~> 1.6.0)
   grpc (~> 1.24.0)
   gssapi
@@ -1267,10 +1272,10 @@ DEPENDENCIES
   html2text
   httparty (~> 0.16.4)
   icalendar
-  influxdb (~> 0.2)
   invisible_captcha (~> 0.12.1)
-  jira-ruby (~> 1.7)
+  jira-ruby (~> 2.0.0)
   js_regex (~> 3.1)
+  json (~> 2.3.0)
   json-schema (~> 2.8.0)
   jwt (~> 2.1.0)
   kaminari (~> 1.0)
@@ -1279,12 +1284,11 @@ DEPENDENCIES
   letter_opener_web (~> 1.3.4)
   license_finder (~> 5.4)
   licensee (~> 8.9)
-  liquid (~> 4.0)
+  lockbox (~> 0.3.3)
   lograge (~> 0.5)
   loofah (~> 2.2)
   lru_redux
   mail (= 2.7.1)
-  mail_room (~> 0.10.0)
   marginalia (~> 1.8.0)
   memory_profiler (~> 0.9)
   method_source (~> 0.8)
@@ -1294,8 +1298,8 @@ DEPENDENCIES
   nakayoshi_fork (~> 0.0.4)
   net-ldap
   net-ntp
-  net-ssh (~> 5.2)
-  nokogiri (~> 1.10.5)
+  net-ssh (~> 6.0)
+  nokogiri (~> 1.10.9)
   oauth2 (~> 1.4)
   octokit (~> 4.15)
   omniauth (~> 1.8)
@@ -1326,12 +1330,12 @@ DEPENDENCIES
   pry-byebug (~> 3.5.1)
   pry-rails (~> 0.3.9)
   rack (~> 2.0.9)
-  rack-attack (~> 6.2.0)
+  rack-attack (~> 6.3.0)
   rack-cors (~> 1.0.6)
   rack-oauth2 (~> 1.9.3)
   rack-proxy (~> 0.6.0)
   rack-timeout
-  rails (= 6.0.2)
+  rails (~> 6.0.3)
   rails-controller-testing
   rails-i18n (~> 6.0)
   rainbow (~> 3.0)
@@ -1339,27 +1343,26 @@ DEPENDENCIES
   rblineprof (~> 0.3.6)
   rbtrace (~> 0.4)
   rdoc (~> 6.1.2)
-  re2 (~> 1.1.1)
+  re2 (~> 1.2.0)
   recaptcha (~> 4.11)
   redis (~> 4.0)
   redis-namespace (~> 1.6.0)
   redis-rails (~> 5.0.2)
-  request_store (~> 1.3)
+  request_store (~> 1.5)
   responders (~> 3.0)
   retriable (~> 3.1.2)
-  rouge (~> 3.15.0)
+  rouge (~> 3.19.0)
   rqrcode-rails3 (~> 0.1.7)
   rspec-parameterized
-  rspec-rails (~> 4.0.0.beta3)
+  rspec-rails (~> 4.0.0)
   rspec-retry (~> 0.6.1)
-  rspec-set (~> 0.1.3)
   rspec_junit_formatter
   rspec_profiling (~> 0.0.5)
   rubocop (~> 0.74.0)
   rubocop-performance (~> 1.4.1)
   rubocop-rspec (~> 1.37.0)
   ruby-fogbugz (~> 0.2.1)
-  ruby-prof (~> 1.0.0)
+  ruby-prof (~> 1.3.0)
   ruby-progressbar
   ruby_parser (~> 3.8)
   rubyzip (~> 2.0.0)
@@ -1375,8 +1378,8 @@ DEPENDENCIES
   sidekiq (~> 5.2.7)
   sidekiq-cron (~> 1.0)
   simple_po_parser (~> 1.1.2)
-  simplecov (~> 0.16.1)
-  slack-notifier (~> 1.5.1)
+  simplecov (~> 0.18.5)
+  slack-messenger (~> 2.3.3)
   snowplow-tracker (~> 0.6.1)
   spring (~> 2.0.0)
   spring-commands-rspec (~> 1.0.4)
@@ -1387,15 +1390,16 @@ DEPENDENCIES
   sys-filesystem (~> 1.1.6)
   test-prof (~> 0.10.0)
   thin (~> 1.7.0)
-  timecop (~> 0.8.0)
+  timecop (~> 0.9.1)
   toml-rb (~> 1.0.0)
   truncato (~> 0.7.11)
   u2f (~> 0.2.1)
   uglifier (~> 2.7.2)
   unf (~> 0.1.4)
-  unicorn (~> 5.4.1)
+  unicorn (~> 5.5)
   unicorn-worker-killer (~> 0.4.4)
   unleash (~> 0.1.5)
+  valid_email (~> 0.1)
   validates_hostname (~> 1.0.6)
   version_sorter (~> 2.2.4)
   vmstat (~> 2.3.0)
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index dec89c43a82..7156347be05 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -36,10 +36,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dngxp5r9ww4xgryn458ngq2h3ylx7d6d258wcfqhibpyjr7qvpj";
+      sha256 = "0lvbyv15j3g3xhywr8jdgv5rjn26mz7430886njjfrd12x812szy";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3";
   };
   actionmailbox = {
     dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"];
@@ -47,10 +47,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11wpcjc806y82p1nn3ly9savcdqcf4b0qml5ri5bmd6r2g802s2z";
+      sha256 = "1nwvx83lha87052jywaiqq284nabp3h5lfq7vrb01myh6cr3ggaq";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
@@ -58,10 +58,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ych434bbim8n65png7hg35xfgmpv0qxvkngpvrr3qgj7l1xgdi5";
+      sha256 = "16d40j1hcak5p9185dbb015difw12m5f3wjfbh4mw9w8agqsc8mr";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -69,10 +69,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zg96vjjw1kbli6nk6cyk64zfh4lgpl7fqx38ncbgfacl4dq7y0b";
+      sha256 = "1v885hs35r8217py08z5k1wvgfzfml64g9wf5v3djgh8mhlf5nfn";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3";
   };
   actiontext = {
     dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "nokogiri"];
@@ -80,10 +80,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1acw3yypd4w35ra87d0kzwwcwj3hps6j0g108rnxy7pscvzajw8q";
+      sha256 = "00w8a5vxs1rlbn0innhrwhjjavmgx0scnkz8h7k83df9l1s7f70j";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -91,10 +91,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bfh9z3n98c76c6jdp6avh75wsckxyp74r59hmgnqdhfznbkppv4";
+      sha256 = "0s6fr50l714rvzr9vavg1ckgx5xjj5zz7dca42xxjp4jkr7jva7q";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -102,10 +102,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bhf4lxnrmz73zshl5rzvw65x3kd18yligf11lcg7ik9b2i9j6pi";
+      sha256 = "1qr5p1sijan8k2m39w602s1mn3bwwsl7jm14drsgdhvdx5ilwg7b";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -113,10 +113,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09p7si419x0fb5cw8cbfmzplyk2bdrx0m5cy9pwja89rnhp8yhl0";
+      sha256 = "0pi9waxcvb8gxwp4i4wmxszyqhr28gn9jzbq1ivy84g1q658lmqz";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
@@ -124,10 +124,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w60vnkg88frbpsixfm9immh211pbqg9dwm0gqrr17kdjd00r5z4";
+      sha256 = "1wkm8741i00l5cq88wl9nr131wh955x4cjg2q2d60m3qhpqbxirv";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3";
   };
   activerecord-explain-analyze = {
     dependencies = ["activerecord" "pg"];
@@ -146,10 +146,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qsjhyrjcklqf7dqw6yjvmbfd8yhqyz0dy9apmpd0swiwxnn8kds";
+      sha256 = "1yy832p0q7gxp1vbncb677y35y112d2f6mvf131n0m2w35ig9m4f";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -157,10 +157,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1brlp5pmawb2hqdybjb732zxxkamcmis6px3wyh09rjlc0gqnzzz";
+      sha256 = "0shh34xx9ygxb57s8mag8l22klvjfnk1c4jbjvchk16r6z0ps326";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3";
   };
   acts-as-taggable-on = {
     dependencies = ["activerecord"];
@@ -264,10 +264,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bnrz4ywaq7vaw66fy3kkbwf07fvyqwngm3vb83s9h5zvr4n593b";
+      sha256 = "02knhmyd3h1yryn66xjfciz7jjsq676kl7ama0r0cf92vyyvm12x";
       type = "gem";
     };
-    version = "0.0.10";
+    version = "0.0.12";
   };
   ast = {
     groups = ["default" "development" "test"];
@@ -505,10 +505,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dyjk2irr0d3d3am2dzipg1zyv2nz69a16g8xkprxfa0na07wvs0";
+      sha256 = "0bz62p9vc7lcrmzhiz4pf7myww086mq287cw3jjj7fyc7jhmamw0";
       type = "gem";
     };
-    version = "1.4.5";
+    version = "1.4.6";
   };
   bootstrap_form = {
     dependencies = ["actionpack" "activemodel"];
@@ -568,10 +568,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gr7k6m9fda7m66irxzydm8v9xbmlryjj65cagwm1zyi5f317srb";
+      sha256 = "0pm22xpn3xyymsainixnrk8v3l3xi9bzwkjkspx00cfzp84xvxbq";
       type = "gem";
     };
-    version = "0.5.0";
+    version = "0.6.1";
   };
   byebug = {
     groups = ["default" "development" "test"];
@@ -620,16 +620,6 @@
     };
     version = "1.3.1";
   };
-  cause = {
-    groups = ["default" "metrics"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0digirxqlwdg79mkbn70yc7i9i1qnclm2wjbrc47kqv6236bpj00";
-      type = "gem";
-    };
-    version = "0.1";
-  };
   character_set = {
     groups = ["default"];
     platforms = [];
@@ -950,15 +940,15 @@
     version = "3.3.0";
   };
   derailed_benchmarks = {
-    dependencies = ["benchmark-ips" "get_process_mem" "heapy" "memory_profiler" "rack" "rake" "ruby-statistics" "thor"];
+    dependencies = ["benchmark-ips" "get_process_mem" "heapy" "memory_profiler" "mini_histogram" "rack" "rake" "ruby-statistics" "thor" "unicode_plot"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bsxrmrjhjvvxpl3sgq0c6yyzspazgmxcpdkfipqknd7p8r0hd53";
+      sha256 = "03lrvzvdjy6wyrnb3nw7nqn9jbhn6lncach58pj6m4l76b2n6jpr";
       type = "gem";
     };
-    version = "1.4.2";
+    version = "1.7.0";
   };
   descendants_tracker = {
     dependencies = ["thread_safe"];
@@ -998,10 +988,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pkldws5lga4mlv4xmcrfb0yivl6qad0l8qyb2hdb50adv6ny4gs";
+      sha256 = "0gzk7phrryxlq4k3jrcxm8faifmbqrbfxq7jx089ncsixwd69bn4";
       type = "gem";
     };
-    version = "3.0.0";
+    version = "3.1.0";
   };
   diff-lcs = {
     groups = ["default" "development" "test"];
@@ -1028,10 +1018,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1azibizfv91sjbzhjqj1pg2xcv8z9b8a7z6kb3wpl4hpj5hil5kj";
+      sha256 = "0qhx743lcx61r2d3925jk61c6r8clfjmpf5g93cdy5sq00ig76lh";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.3.0";
   };
   discordrb-webhooks-blackst0ne = {
     dependencies = ["rest-client"];
@@ -1049,10 +1039,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04d2izkna3ahfn6fwq4xrcafa715d3bbqczxm16fq40fqy87xn17";
+      sha256 = "0qrwiyagxzl8zlx3dafb0ay8l14ib7imb2rsmx70i5cp420v8gif";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.3.2";
   };
   domain_name = {
     dependencies = ["unf"];
@@ -1071,10 +1061,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0488m6nwp31mxrhayj60gsb7jgyw1lzh73r2kldx00a9bw3634d4";
+      sha256 = "0w554smil33j64h50w29xavgg4k7172r0c2rrygfbp5p4ap9py9c";
       type = "gem";
     };
-    version = "5.0.2";
+    version = "5.0.3";
   };
   doorkeeper-openid_connect = {
     dependencies = ["doorkeeper" "json-jwt"];
@@ -1182,6 +1172,16 @@
     };
     version = "3.0.0";
   };
+  enumerable-statistics = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ac2f5g4m58l6bmap1ak6vgqykz2hy9n3c8r6dmlr2xjybdryc1f";
+      type = "gem";
+    };
+    version = "2.0.1";
+  };
   equalizer = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -1382,14 +1382,14 @@
     version = "2.10.0";
   };
   ffi = {
-    groups = ["default" "development" "kerberos" "test"];
+    groups = ["default" "development" "kerberos" "puma" "test" "unicorn"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10ay35dm0lkcqprsiya6q2kwvyid884102ryipr4vrk790yfp8kd";
+      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
       type = "gem";
     };
-    version = "1.11.3";
+    version = "1.12.2";
   };
   ffi-compiler = {
     dependencies = ["ffi" "rake"];
@@ -1668,10 +1668,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14ihiw3xsr3r7pk4mbwarasakhq31vzg87bm8g4qaym9ihpf7y77";
+      sha256 = "01ki2isvqyhfw503z3ahksbfb0s0m3psi4din9azdpgcqyv1pxlh";
       type = "gem";
     };
-    version = "1.86.0";
+    version = "13.0.0.pre.rc1";
   };
   github-markup = {
     groups = ["default"];
@@ -1700,10 +1700,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1s1cgnnzlnfglsh5r0iihgvyasa2zbqkyrrnbxshvnkddb10i94z";
+      sha256 = "0a63zgjll83b25hiq8m4sk75jci2rj8z46lss0j3bc6zi3pxnzax";
       type = "gem";
     };
-    version = "0.9.1";
+    version = "0.12.0";
   };
   gitlab-license = {
     groups = ["default"];
@@ -1715,15 +1715,25 @@
     };
     version = "1.0.0";
   };
+  gitlab-mail_room = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10ajr3l8vasy4zkc0p481m806g7k7idnw7mi6rlkmx4gkgb0z46j";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
   gitlab-markup = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rqf3jmyn78r3ysy3bjyx7s4yv3xipxlmqlmbyrbksna19rrx08d";
+      sha256 = "0xnlra517pfj3hx07kasbqlcw51ix4xajr6bsd3mwg8bc92dlwy7";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "1.7.1";
   };
   gitlab-net-dns = {
     groups = ["default"];
@@ -1741,10 +1751,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0a0kihx7ps6hc1a5xbpbssqnh1k0gzfvln7xkjinpqipvk53l094";
+      sha256 = "0i1gv7mgjpa46v6jr97rjk0zv3jny3gc3q3bq8wd6rv59lv5s4wi";
       type = "gem";
     };
-    version = "4.3.1.gitlab.2";
+    version = "4.3.3.gitlab.2";
   };
   gitlab-puma_worker_killer = {
     dependencies = ["get_process_mem" "gitlab-puma"];
@@ -1774,10 +1784,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07qh80nxwxgk76bhwrxw0a0jjcfvyxzmcd773k6axwklp5wvas7x";
+      sha256 = "1il4jqvz7b2l6pcxw6pfjvljpngn92mghfm47g0mfickih1i2r55";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.2.0";
   };
   gitlab_chronic_duration = {
     dependencies = ["numerizer"];
@@ -1872,10 +1882,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jbqajngi5ndqfarw9dxkhbphva0j71jav5wfym3fsiisvk5gg6p";
+      sha256 = "0xbgh9d8nbvsvyzqnd0mzhz0nr9hx4qn025kmz6d837lry4lc6gw";
       type = "gem";
     };
-    version = "2.0.19";
+    version = "2.0.20";
   };
   grape = {
     dependencies = ["activesupport" "builder" "mustermann-grape" "rack" "rack-accept" "virtus"];
@@ -1937,10 +1947,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17p5c1432fxcqpj7yl70a1667n9774chmam6zswdm021vn8cfwmv";
+      sha256 = "0zj729kxig2klhm4naqsgrfi4xgba4vh2pazvvi7iaikaa3vfh48";
       type = "gem";
     };
-    version = "1.9.12";
+    version = "1.10.5";
   };
   graphql-docs = {
     dependencies = ["commonmarker" "escape_utils" "extended-markdown-filter" "gemoji" "graphql" "html-pipeline" "sass"];
@@ -2250,17 +2260,6 @@
     };
     version = "0.11.2";
   };
-  influxdb = {
-    dependencies = ["cause" "json"];
-    groups = ["metrics"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1vhg5nd88nwvfa76lqcczld916nljswwq6clsixrzi3js8ym9y1w";
-      type = "gem";
-    };
-    version = "0.2.3";
-  };
   invisible_captcha = {
     dependencies = ["rails"];
     groups = ["default"];
@@ -2309,10 +2308,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hb3645x0p3bkmqcgc9b2q4b5kn02wgmb03brx7ag1h5y79an4q5";
+      sha256 = "1bfqb5qkgbcjrspspa2lha2is0anjnby20x9gp7bfjr5j5j9my32";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "2.0.0";
   };
   jmespath = {
     groups = ["default"];
@@ -2336,14 +2335,14 @@
     version = "3.1.1";
   };
   json = {
-    groups = ["default" "development" "metrics" "test"];
+    groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
+      sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
       type = "gem";
     };
-    version = "1.8.6";
+    version = "2.3.0";
   };
   json-jwt = {
     dependencies = ["activesupport" "aes_key_wrap" "bindata"];
@@ -2383,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"];
@@ -2394,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"];
@@ -2405,30 +2404,30 @@
     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"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1528pyj1szzzp3pgj05fzjd36qjrxm9yj2x5radc9p1z7vl67y50";
+      sha256 = "0ai6bzlvxbzpdl466p1qi4dlhx8ri2wcrp6x1l19y3yfs3a29rng";
       type = "gem";
     };
-    version = "2.11.2";
+    version = "2.11.3";
   };
   knapsack = {
     dependencies = ["rake"];
@@ -2528,16 +2527,6 @@
     };
     version = "8.9.2";
   };
-  liquid = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0zhg5ha8zy8zw9qr3fl4wgk4r5940n4128xm2pn4shpbzdbsj5by";
-      type = "gem";
-    };
-    version = "4.0.3";
-  };
   listen = {
     dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"];
     groups = ["default" "test"];
@@ -2559,6 +2548,16 @@
     };
     version = "2.1.2";
   };
+  lockbox = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sgbs0frk601yc7bb33pz5z9cyadvj077vwy9k5zapsbn2rxf5aj";
+      type = "gem";
+    };
+    version = "0.3.3";
+  };
   lograge = {
     dependencies = ["actionpack" "activesupport" "railties" "request_store"];
     groups = ["default"];
@@ -2576,10 +2575,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g7ps9m3s14cajhxrfgbzahv9i3gy47s4hqrv3mpybpj5cyr0srn";
+      sha256 = "0jk9fgn5ayzbqvzqm11gbkqvas77zdbpkvynlylyiwynclgrn040";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   lru_redux = {
     groups = ["default"];
@@ -2612,16 +2611,6 @@
     };
     version = "2.7.1";
   };
-  mail_room = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0q06fkv6wka68gbva17jknm57jnjwk57f9ng1lvyvwki2v4jnkz4";
-      type = "gem";
-    };
-    version = "0.10.0";
-  };
   marcel = {
     dependencies = ["mimemagic"];
     groups = ["default" "development" "test"];
@@ -2715,10 +2704,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04cp5sfbh1qx82yqxn0q75c7hlcx8y1dr5g3kyzwm4mx6wi2gifw";
+      sha256 = "1qfqb9w76kmpb48frbzbyvjc0dfxh5qiw1kxdbv2y2kp6fxpa1kf";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "0.3.5";
+  };
+  mini_histogram = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "127vmd85kwi85qjbb1431bi4j5gdy0pp6wrq1f88ja1pf3mlb50y";
+      type = "gem";
+    };
+    version = "0.1.3";
   };
   mini_magick = {
     groups = ["default"];
@@ -2886,10 +2885,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "101wd2px9lady54aqmkibvy4j62zk32w0rjz4vnigyg974fsga40";
+      sha256 = "1l0kgd7w08fx2522aw8grlfzwmrgw4jgjakpkgkwm0134g5xv432";
       type = "gem";
     };
-    version = "5.2.0";
+    version = "6.0.0";
   };
   netrc = {
     groups = ["default"];
@@ -2927,10 +2926,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yi8j8hwrlc3rg5v3w52gxndmwifyk7m732q9yfbal0qajqbh1h8";
+      sha256 = "12j76d0bp608932xkzmfi638c7aqah57l437q8494znzbj610qnm";
       type = "gem";
     };
-    version = "1.10.8";
+    version = "1.10.9";
   };
   nokogumbo = {
     dependencies = ["nokogiri"];
@@ -3315,10 +3314,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09davv4ld6caqlczw64vhwf8hr41apys3cj8v2h96yxs4qg1m2iw";
+      sha256 = "19nxgcl6fbnr6da958hyvnycv441ryp2dw4ccmldah5bm8885z39";
       type = "gem";
     };
-    version = "2.6.5.0";
+    version = "2.7.0.4";
   };
   parslet = {
     groups = ["default" "development" "test"];
@@ -3523,10 +3522,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sqjqwa18c0l59zdymcvvvnh5nk3pjggnzaydb2q1qbrk3rypcnq";
+      sha256 = "15b8lk54j2abqhpn588b1wvbzwmxwa7iql6241kxpjc0gyb51p0z";
       type = "gem";
     };
-    version = "6.2.0";
+    version = "6.3.0";
   };
   rack-cors = {
     dependencies = ["rack"];
@@ -3599,10 +3598,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02sxw1f3n2ydmhacakmgjjwv84vqplgr1888cv5dyflb11a3f8mm";
+      sha256 = "1rvkzj2hn1rlxc0ndn742mgbdpq0l38i6pjhhwgpaq519jpkk41r";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3";
   };
   rails-controller-testing = {
     dependencies = ["actionpack" "actionview" "activesupport"];
@@ -3654,10 +3653,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lpzw7bwvg42x6mwfv7d3bhcnyy8p7rcd8yy8cj5qq5mjznhawca";
+      sha256 = "01h2ifvvmlzmq8dmpqkhrrmj704v79r1vkcrnvmrqhf4a9bbyqsi";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.0.3";
   };
   rainbow = {
     groups = ["default" "development" "test"];
@@ -3674,10 +3673,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qpbd9jif40c53fz2r0l8khfl016y8s8bkx37ibcaafclbl3xygp";
+      sha256 = "0zjja00mzgx2lddb7qrn14k7qrnwhf4bpmnlqj78m1pfxh7svync";
       type = "gem";
     };
-    version = "0.19.0";
+    version = "0.19.1";
   };
   rake = {
     groups = ["default" "development" "test"];
@@ -3751,10 +3750,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00wf9k1hkv3z3nfkrnfyyfq9ah0l7k14awqys3h2hqz4c21pqd2i";
+      sha256 = "16q71cc9wx342c697q18pkz19ym4ncjd97hcw4v6f1mgflkdv400";
       type = "gem";
     };
-    version = "1.1.1";
+    version = "1.2.0";
   };
   recaptcha = {
     dependencies = ["json"];
@@ -3772,10 +3771,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wfcyigmf5mwrxy76p0bi4sdb4h9afs8jc73pjav5cnqszljjl3c";
+      sha256 = "0acrxff186sn6sxdfiy7nacjgwak5cqd7jha9v3kshpf3sfr7qd1";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.1";
   };
   RedCloth = {
     groups = ["default"];
@@ -3895,14 +3894,15 @@
     version = "3.0.4";
   };
   request_store = {
+    dependencies = ["rack"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1va9x0b3ww4chcfqlmi8b14db39di1mwa7qrjbh7ma0lhndvs2zv";
+      sha256 = "0cx74kispmnw3ljwb239j65a2j14n8jlsygy372hrsa8mxc71hxi";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.5.0";
   };
   responders = {
     dependencies = ["actionpack" "railties"];
@@ -3961,10 +3961,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ipgdir89a6pp1zscl2fkb99pppa7c513pk4wvis157bn8p9hlrx";
+      sha256 = "102rc07d78k5bkl0s9nd1gw6wz0w0zcvg4g5sl7z9xxi4r793c35";
       type = "gem";
     };
-    version = "3.15.0";
+    version = "3.19.0";
   };
   rqrcode = {
     dependencies = ["chunky_png"];
@@ -3990,14 +3990,14 @@
   };
   rspec = {
     dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
-    groups = ["default" "development" "test"];
+    groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15ppasvb9qrscwlyjz67ppw1lnxiqnkzx5vkx1bd8x5n3dhikxc3";
+      sha256 = "1hzsig4pi9ybr0xl5540m1swiyxa74c8h09225y5sdh2rjkkg84h";
       type = "gem";
     };
-    version = "3.8.0";
+    version = "3.9.0";
   };
   rspec-core = {
     dependencies = ["rspec-support"];
@@ -4005,10 +4005,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0spjgmd3yx6q28q950r32bi0cs8h2si53zn6rq8s7n1i4zp4zwbf";
+      sha256 = "1qzc1wdjb1qnbimjl8i1q1r1z5hdv2lmcw7ysz7jawj4d1cvpqvd";
       type = "gem";
     };
-    version = "3.8.2";
+    version = "3.9.1";
   };
   rspec-expectations = {
     dependencies = ["diff-lcs" "rspec-support"];
@@ -4016,10 +4016,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0x3iddjjaramqb0yb51c79p2qajgi9wb5b59bzv25czddigyk49r";
+      sha256 = "0fjbwvq7qaz6h3sh1bs9q2qiy4zwcrc8f7xwv82dx2bc09dmqzhd";
       type = "gem";
     };
-    version = "3.8.4";
+    version = "3.9.1";
   };
   rspec-mocks = {
     dependencies = ["diff-lcs" "rspec-support"];
@@ -4027,10 +4027,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12zplnsv4p6wvvxsk8xn6nm87a5qadxlkk497zlxfczd0jfawrni";
+      sha256 = "19vmdqym1v2g1zbdnq37zwmyj87y9yc9ijwc8js55igvbb9hx0mr";
       type = "gem";
     };
-    version = "3.8.1";
+    version = "3.9.1";
   };
   rspec-parameterized = {
     dependencies = ["binding_ninja" "parser" "proc_to_ast" "rspec" "unparser"];
@@ -4049,10 +4049,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "164dni69b9imgv33rxzsy3272ni10xny0f4dbx6k90zr1cgzmj5s";
+      sha256 = "01cyd449g4lsgrlck7nn3ynn8c8vwfhjb913y05wil56y77wsfkl";
       type = "gem";
     };
-    version = "4.0.0.beta3";
+    version = "4.0.0";
   };
   rspec-retry = {
     dependencies = ["rspec-core"];
@@ -4065,25 +4065,15 @@
     };
     version = "0.6.1";
   };
-  rspec-set = {
-    groups = ["development" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "06vw8b5w1a58838cw9ssmy3r6f8vrjh54h7dp97rwv831gn5zlyk";
-      type = "gem";
-    };
-    version = "0.1.3";
-  };
   rspec-support = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "139mbhfdr10flm2ffryvxkyqgqs1gjdclc1xhyh7i7njfqayxk7g";
+      sha256 = "1zwpyq1na23pvgacpxs2v9nwfbjbw6x3arca5j3l1xagigqmzhc3";
       type = "gem";
     };
-    version = "3.8.2";
+    version = "3.9.2";
   };
   rspec_junit_formatter = {
     dependencies = ["rspec-core"];
@@ -4189,10 +4179,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ac3mv3x468s820f6wnp5whzl59y5844wmdjg47a8mbp0kkmnn58";
+      sha256 = "0g1j37fy53ly6351asfcnik033gwkp4kjma7lji1yklmj86d4dg7";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.3.1";
   };
   ruby-progressbar = {
     groups = ["default" "development" "test"];
@@ -4220,10 +4210,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f5mpzb1way683klgggsj029a4kw7krj72i17ggmvlp83804s6a3";
+      sha256 = "0xmd9dk1fcmii38apwn3py00qfqxd5yzylafm49n24plzwv913nh";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.1.2";
   };
   ruby_dep = {
     groups = ["default" "test"];
@@ -4491,25 +4481,25 @@
     version = "1.1.2";
   };
   simplecov = {
-    dependencies = ["docile" "json" "simplecov-html"];
+    dependencies = ["docile" "simplecov-html"];
     groups = ["development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sfyfgf7zrp2n42v7rswkqgk3bbwk1bnsphm24y7laxv3f8z0947";
+      sha256 = "0ycx5q699ycbjhp28sjbkrd62vwxlrb7fh4v2m7sjsp2qhi6cf6r";
       type = "gem";
     };
-    version = "0.16.1";
+    version = "0.18.5";
   };
   simplecov-html = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn";
+      sha256 = "1v7b4mf7njw8kv4ghl4q7mwz3q0flbld7v8blp4m4m3n3aq11bn9";
       type = "gem";
     };
-    version = "0.10.2";
+    version = "0.12.2";
   };
   sixarm_ruby_unaccent = {
     groups = ["default"];
@@ -4521,15 +4511,15 @@
     };
     version = "1.2.0";
   };
-  slack-notifier = {
+  slack-messenger = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xavibxh00gy62mm79l6id9l2fldjmdqifk8alqfqy5z38ffwah6";
+      sha256 = "1s2bff13nd21r28528vfb2ly5718r812izww2g0vxksjq7xgr2c7";
       type = "gem";
     };
-    version = "1.5.1";
+    version = "2.3.3";
   };
   snowplow-tracker = {
     dependencies = ["contracts"];
@@ -4777,10 +4767,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vwbkwqyxhavzvr1820hqwz43ylnfcf6w4x6sag0nghi44sr9kmx";
+      sha256 = "0d7mm786180v4kzvn1f77rhfppsg5n0sq2bdx63x9nv114zm8jrp";
       type = "gem";
     };
-    version = "0.8.1";
+    version = "0.9.1";
   };
   timfel-krb5-auth = {
     groups = ["default" "kerberos"];
@@ -4831,10 +4821,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04f18jdv6z3zn3va50rqq35nj3izjpb72fnf21ixm7vanq6nc4fp";
+      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
       type = "gem";
     };
-    version = "1.2.6";
+    version = "1.2.7";
   };
   u2f = {
     groups = ["default"];
@@ -4898,6 +4888,17 @@
     };
     version = "1.6.0";
   };
+  unicode_plot = {
+    dependencies = ["enumerable-statistics"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09cv90pi414ns1knbi0zjbn59071qjgym974jpsgj7yjh70dpj0g";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
   unicode_utils = {
     groups = ["default"];
     platforms = [];
@@ -4914,10 +4915,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qfhvzs4i6ja1s43j8p1kfbzm10n7a02ngki30a38y5m46a2qrak";
+      sha256 = "1cznkq0agsm7s66nbqbalmq5nlc5cdpd2h88r8jdzsc7wsi5a098";
       type = "gem";
     };
-    version = "5.4.1";
+    version = "5.5.5";
   };
   unicorn-worker-killer = {
     dependencies = ["get_process_mem" "unicorn"];
@@ -4953,14 +4954,25 @@
   };
   unparser = {
     dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"];
-    groups = ["default" "development" "test"];
+    groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03vjj74kj86vlazhiclf63kf6gajs66k8ni34q70fdhf97d7b60c";
+      sha256 = "0qg1apxlnf4kxfj9jpm6hhv73jsncbs4zpsgyan32p5r331q1gmx";
       type = "gem";
     };
-    version = "0.4.5";
+    version = "0.4.7";
+  };
+  valid_email = {
+    dependencies = ["activemodel" "mail"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w3587sa7d1a51djyla57pbv9v105jsqvxhkg6vbxi343fsm455q";
+      type = "gem";
+    };
+    version = "0.1.3";
   };
   validate_email = {
     dependencies = ["activemodel" "mail"];
@@ -5138,9 +5150,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jywi63w1m2b2w9fj9rjb9n3imf6p5bfijfmml1xzdnsrdrjz0x1";
+      sha256 = "1akpm3pwvyiack2zk6giv9yn3cqb8pw6g40p4394pdc3xmy3s4k0";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "2.3.0";
   };
 }
\ No newline at end of file
diff --git a/pkgs/applications/version-management/gitlab/update.py b/pkgs/applications/version-management/gitlab/update.py
index 4c7bcefacb0..3db5099598a 100755
--- a/pkgs/applications/version-management/gitlab/update.py
+++ b/pkgs/applications/version-management/gitlab/update.py
@@ -177,7 +177,7 @@ def update_gitaly():
     subprocess.check_output(['bundix'], cwd=gitaly_dir)
 
     os.environ['GOROOT'] = ""
-    subprocess.check_output(['vgo2nix'], cwd=gitaly_dir)
+    subprocess.check_output(['vgo2nix', '--keep-going'], cwd=gitaly_dir)
 
     for fn in ['go.mod', 'go.sum']:
         os.unlink(gitaly_dir / fn)
@@ -200,7 +200,7 @@ def update_gitlab_shell():
             f.write(repo.get_file(fn, f"v{gitlab_shell_version}"))
 
     os.environ['GOROOT'] = ""
-    subprocess.check_output(['vgo2nix'], cwd=gitlab_shell_dir)
+    subprocess.check_output(['vgo2nix', '--keep-going'], cwd=gitlab_shell_dir)
 
     for fn in ['go.mod', 'go.sum']:
         os.unlink(gitlab_shell_dir / fn)
@@ -221,7 +221,7 @@ def update_gitlab_workhorse():
             f.write(repo.get_file(fn, f"v{gitlab_workhorse_version}"))
 
     os.environ['GOROOT'] = ""
-    subprocess.check_output(['vgo2nix'], cwd=gitlab_workhorse_dir)
+    subprocess.check_output(['vgo2nix', '--keep-going'], cwd=gitlab_workhorse_dir)
 
     for fn in ['go.mod', 'go.sum']:
         os.unlink(gitlab_workhorse_dir / fn)
diff --git a/pkgs/applications/version-management/gitlab/yarnPkgs.nix b/pkgs/applications/version-management/gitlab/yarnPkgs.nix
index 0215a47756f..797329c613e 100644
--- a/pkgs/applications/version-management/gitlab/yarnPkgs.nix
+++ b/pkgs/applications/version-management/gitlab/yarnPkgs.nix
@@ -2,107 +2,131 @@
   offline_cache = linkFarm "offline" packages;
   packages = [
     {
-      name = "_babel_code_frame___code_frame_7.5.5.tgz";
+      name = "_babel_code_frame___code_frame_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_code_frame___code_frame_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz";
-        sha1 = "bc0782f6d69f7b7d49531219699b988f669a8f9d";
+        name = "_babel_code_frame___code_frame_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz";
+        sha1 = "33e25903d7481181534e12ec0a25f16b6fcf419e";
       };
     }
     {
-      name = "_babel_core___core_7.6.2.tgz";
+      name = "_babel_compat_data___compat_data_7.8.5.tgz";
       path = fetchurl {
-        name = "_babel_core___core_7.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.6.2.tgz";
-        sha1 = "069a776e8d5e9eefff76236bc8845566bd31dd91";
+        name = "_babel_compat_data___compat_data_7.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.8.5.tgz";
+        sha1 = "d28ce872778c23551cbb9432fc68d28495b613b9";
       };
     }
     {
-      name = "_babel_generator___generator_7.6.2.tgz";
+      name = "_babel_core___core_7.8.4.tgz";
       path = fetchurl {
-        name = "_babel_generator___generator_7.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.2.tgz";
-        sha1 = "dac8a3c2df118334c2a29ff3446da1636a8f8c03";
+        name = "_babel_core___core_7.8.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.8.4.tgz";
+        sha1 = "d496799e5c12195b3602d0fddd77294e3e38e80e";
       };
     }
     {
-      name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.0.0.tgz";
+      name = "_babel_generator___generator_7.8.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz";
-        sha1 = "323d39dd0b50e10c7c06ca7d7638e6864d8c5c32";
+        name = "_babel_generator___generator_7.8.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.4.tgz";
+        sha1 = "35bbc74486956fe4251829f9f6c48330e8d0985e";
       };
     }
     {
-      name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.1.0.tgz";
+      name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz";
-        sha1 = "6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f";
+        name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz";
+        sha1 = "60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee";
       };
     }
     {
-      name = "_babel_helper_call_delegate___helper_call_delegate_7.4.4.tgz";
+      name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_call_delegate___helper_call_delegate_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz";
-        sha1 = "87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43";
+        name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz";
+        sha1 = "c84097a427a061ac56a1c30ebf54b7b22d241503";
       };
     }
     {
-      name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.6.0.tgz";
+      name = "_babel_helper_call_delegate___helper_call_delegate_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.6.0.tgz";
-        sha1 = "769711acca889be371e9bc2eb68641d55218021f";
+        name = "_babel_helper_call_delegate___helper_call_delegate_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz";
+        sha1 = "de82619898aa605d409c42be6ffb8d7204579692";
       };
     }
     {
-      name = "_babel_helper_define_map___helper_define_map_7.5.5.tgz";
+      name = "_babel_helper_compilation_targets___helper_compilation_targets_7.8.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_define_map___helper_define_map_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz";
-        sha1 = "3dec32c2046f37e09b28c93eb0b103fd2a25d369";
+        name = "_babel_helper_compilation_targets___helper_compilation_targets_7.8.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz";
+        sha1 = "03d7ecd454b7ebe19a254f76617e61770aed2c88";
       };
     }
     {
-      name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.1.0.tgz";
+      name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz";
-        sha1 = "537fa13f6f1674df745b0c00ec8fe4e99681c8f6";
+        name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.3.tgz";
+        sha1 = "5b94be88c255f140fd2c10dd151e7f98f4bff397";
       };
     }
     {
-      name = "_babel_helper_function_name___helper_function_name_7.1.0.tgz";
+      name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_function_name___helper_function_name_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz";
-        sha1 = "a0ceb01685f73355d4360c1247f582bfafc8ff53";
+        name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz";
+        sha1 = "c774268c95ec07ee92476a3862b75cc2839beb79";
       };
     }
     {
-      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.0.0.tgz";
+      name = "_babel_helper_define_map___helper_define_map_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz";
-        sha1 = "83572d4320e2a4657263734113c42868b64e49c3";
+        name = "_babel_helper_define_map___helper_define_map_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz";
+        sha1 = "a0655cad5451c3760b726eba875f1cd8faa02c15";
       };
     }
     {
-      name = "_babel_helper_hoist_variables___helper_hoist_variables_7.4.4.tgz";
+      name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_hoist_variables___helper_hoist_variables_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz";
-        sha1 = "0298b5f25c8c09c53102d52ac4a98f773eb2850a";
+        name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz";
+        sha1 = "a728dc5b4e89e30fc2dfc7d04fa28a930653f982";
       };
     }
     {
-      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.5.5.tgz";
+      name = "_babel_helper_function_name___helper_function_name_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz";
-        sha1 = "1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590";
+        name = "_babel_helper_function_name___helper_function_name_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz";
+        sha1 = "eeeb665a01b1f11068e9fb86ad56a1cb1a824cca";
+      };
+    }
+    {
+      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.8.3.tgz";
+      path = fetchurl {
+        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz";
+        sha1 = "b894b947bd004381ce63ea1db9f08547e920abd5";
+      };
+    }
+    {
+      name = "_babel_helper_hoist_variables___helper_hoist_variables_7.8.3.tgz";
+      path = fetchurl {
+        name = "_babel_helper_hoist_variables___helper_hoist_variables_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz";
+        sha1 = "1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134";
+      };
+    }
+    {
+      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.8.3.tgz";
+      path = fetchurl {
+        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz";
+        sha1 = "659b710498ea6c1d9907e0c73f206eee7dadc24c";
       };
     }
     {
@@ -114,483 +138,507 @@
       };
     }
     {
-      name = "_babel_helper_module_transforms___helper_module_transforms_7.5.5.tgz";
+      name = "_babel_helper_module_transforms___helper_module_transforms_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_transforms___helper_module_transforms_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz";
-        sha1 = "f84ff8a09038dcbca1fd4355661a500937165b4a";
+        name = "_babel_helper_module_transforms___helper_module_transforms_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz";
+        sha1 = "d305e35d02bee720fbc2c3c3623aa0c316c01590";
       };
     }
     {
-      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.0.0.tgz";
+      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz";
-        sha1 = "a2920c5702b073c15de51106200aa8cad20497d5";
+        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz";
+        sha1 = "7ed071813d09c75298ef4f208956006b6111ecb9";
       };
     }
     {
-      name = "_babel_helper_plugin_utils___helper_plugin_utils_7.0.0.tgz";
+      name = "_babel_helper_plugin_utils___helper_plugin_utils_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_plugin_utils___helper_plugin_utils_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz";
-        sha1 = "bbb3fbee98661c569034237cc03967ba99b4f250";
+        name = "_babel_helper_plugin_utils___helper_plugin_utils_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz";
+        sha1 = "9ea293be19babc0f52ff8ca88b34c3611b208670";
       };
     }
     {
-      name = "_babel_helper_regex___helper_regex_7.5.5.tgz";
+      name = "_babel_helper_regex___helper_regex_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_regex___helper_regex_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz";
-        sha1 = "0aa6824f7100a2e0e89c1527c23936c152cab351";
+        name = "_babel_helper_regex___helper_regex_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz";
+        sha1 = "139772607d51b93f23effe72105b319d2a4c6965";
       };
     }
     {
-      name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.1.0.tgz";
+      name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz";
-        sha1 = "361d80821b6f38da75bd3f0785ece20a88c5fe7f";
+        name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz";
+        sha1 = "273c600d8b9bf5006142c1e35887d555c12edd86";
       };
     }
     {
-      name = "_babel_helper_replace_supers___helper_replace_supers_7.5.5.tgz";
+      name = "_babel_helper_replace_supers___helper_replace_supers_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_replace_supers___helper_replace_supers_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz";
-        sha1 = "f84ce43df031222d2bad068d2626cb5799c34bc2";
+        name = "_babel_helper_replace_supers___helper_replace_supers_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz";
+        sha1 = "91192d25f6abbcd41da8a989d4492574fb1530bc";
       };
     }
     {
-      name = "_babel_helper_simple_access___helper_simple_access_7.1.0.tgz";
+      name = "_babel_helper_simple_access___helper_simple_access_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_simple_access___helper_simple_access_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz";
-        sha1 = "65eeb954c8c245beaa4e859da6188f39d71e585c";
+        name = "_babel_helper_simple_access___helper_simple_access_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz";
+        sha1 = "7f8109928b4dab4654076986af575231deb639ae";
       };
     }
     {
-      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.4.4.tgz";
+      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz";
-        sha1 = "ff94894a340be78f53f06af038b205c49d993677";
+        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz";
+        sha1 = "31a9f30070f91368a7182cf05f831781065fc7a9";
       };
     }
     {
-      name = "_babel_helper_wrap_function___helper_wrap_function_7.2.0.tgz";
+      name = "_babel_helper_wrap_function___helper_wrap_function_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_wrap_function___helper_wrap_function_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz";
-        sha1 = "c4e0012445769e2815b55296ead43a958549f6fa";
+        name = "_babel_helper_wrap_function___helper_wrap_function_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz";
+        sha1 = "9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610";
       };
     }
     {
-      name = "_babel_helpers___helpers_7.6.2.tgz";
+      name = "_babel_helpers___helpers_7.8.4.tgz";
       path = fetchurl {
-        name = "_babel_helpers___helpers_7.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz";
-        sha1 = "681ffe489ea4dcc55f23ce469e58e59c1c045153";
+        name = "_babel_helpers___helpers_7.8.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.4.tgz";
+        sha1 = "754eb3ee727c165e0a240d6c207de7c455f36f73";
       };
     }
     {
-      name = "_babel_highlight___highlight_7.5.0.tgz";
+      name = "_babel_highlight___highlight_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_highlight___highlight_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz";
-        sha1 = "56d11312bd9248fa619591d02472be6e8cb32540";
+        name = "_babel_highlight___highlight_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz";
+        sha1 = "28f173d04223eaaa59bc1d439a3836e6d1265797";
       };
     }
     {
-      name = "_babel_parser___parser_7.6.2.tgz";
+      name = "_babel_parser___parser_7.8.4.tgz";
       path = fetchurl {
-        name = "_babel_parser___parser_7.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.2.tgz";
-        sha1 = "205e9c95e16ba3b8b96090677a67c9d6075b70a1";
+        name = "_babel_parser___parser_7.8.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.4.tgz";
+        sha1 = "d1dbe64691d60358a974295fa53da074dd2ce8e8";
       };
     }
     {
-      name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.2.0.tgz";
+      name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz";
-        sha1 = "b289b306669dce4ad20b0252889a15768c9d417e";
+        name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz";
+        sha1 = "bad329c670b382589721b27540c7d288601c6e6f";
       };
     }
     {
-      name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.5.5.tgz";
+      name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz";
-        sha1 = "a974cfae1e37c3110e71f3c6a2e48b8e71958cd4";
+        name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz";
+        sha1 = "5e06654af5cd04b608915aada9b2a6788004464e";
       };
     }
     {
-      name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.5.0.tgz";
+      name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz";
-        sha1 = "e532202db4838723691b10a67b8ce509e397c506";
+        name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz";
+        sha1 = "38c4fe555744826e97e2ae930b0fb4cc07e66054";
       };
     }
     {
-      name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.2.0.tgz";
+      name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz";
-        sha1 = "568ecc446c6148ae6b267f02551130891e29f317";
+        name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz";
+        sha1 = "da5216b238a98b58a1e05d6852104b10f9a70d6b";
       };
     }
     {
-      name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.6.2.tgz";
+      name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz";
-        sha1 = "8ffccc8f3a6545e9f78988b6bf4fe881b88e8096";
+        name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz";
+        sha1 = "e4572253fdeed65cddeecfdab3f928afeb2fd5d2";
       };
     }
     {
-      name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.2.0.tgz";
+      name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz";
-        sha1 = "135d81edb68a081e55e56ec48541ece8065c38f5";
+        name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz";
+        sha1 = "eb5ae366118ddca67bed583b53d7554cad9951bb";
       };
     }
     {
-      name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.7.5.tgz";
+      name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.7.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.7.5.tgz";
-        sha1 = "f0835f044cef85b31071a924010a2a390add11d4";
+        name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz";
+        sha1 = "9dee96ab1650eed88646ae9734ca167ac4a9c5c9";
       };
     }
     {
-      name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.6.0.tgz";
+      name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.6.0.tgz";
-        sha1 = "19ddc493c7b5d47afdd4291e740c609a83c9fae4";
+        name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz";
+        sha1 = "ae10b3214cb25f7adb1f3bc87ba42ca10b7e2543";
       };
     }
     {
-      name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.6.2.tgz";
+      name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz";
-        sha1 = "05413762894f41bfe42b9a5e80919bd575dcc802";
+        name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.8.3.tgz";
+        sha1 = "01248c6c8dc292116b3b4ebd746150f4f0728bab";
       };
     }
     {
-      name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.2.0.tgz";
+      name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz";
-        sha1 = "69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f";
+        name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz";
+        sha1 = "b646c3adea5f98800c9ab45105ac34d06cd4a47f";
       };
     }
     {
-      name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.2.0.tgz";
+      name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.8.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz";
-        sha1 = "69c159ffaf4998122161ad8ebc5e6d1f55df8612";
+        name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.8.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz";
+        sha1 = "a983fb1aeb2ec3f6ed042a210f640e90e786fe0d";
       };
     }
     {
-      name = "_babel_plugin_syntax_import_meta___plugin_syntax_import_meta_7.2.0.tgz";
+      name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_import_meta___plugin_syntax_import_meta_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.2.0.tgz";
-        sha1 = "2333ef4b875553a3bcd1e93f8ebc09f5b9213a40";
+        name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz";
+        sha1 = "62bf98b2da3cd21d626154fc96ee5b3cb68eacb3";
       };
     }
     {
-      name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.2.0.tgz";
+      name = "_babel_plugin_syntax_import_meta___plugin_syntax_import_meta_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz";
-        sha1 = "72bd13f6ffe1d25938129d2a186b11fd62951470";
+        name = "_babel_plugin_syntax_import_meta___plugin_syntax_import_meta_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.8.3.tgz";
+        sha1 = "230afff79d3ccc215b5944b438e4e266daf3d84d";
       };
     }
     {
-      name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.2.0.tgz";
+      name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz";
-        sha1 = "3b7a3e733510c57e820b9142a6579ac8b0dfad2e";
+        name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz";
+        sha1 = "01ca21b668cd8218c9e640cb6dd88c5412b2c96a";
       };
     }
     {
-      name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.2.0.tgz";
+      name = "_babel_plugin_syntax_nullish_coalescing_operator___plugin_syntax_nullish_coalescing_operator_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz";
-        sha1 = "a94013d6eda8908dfe6a477e7f9eda85656ecf5c";
+        name = "_babel_plugin_syntax_nullish_coalescing_operator___plugin_syntax_nullish_coalescing_operator_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz";
+        sha1 = "167ed70368886081f74b5c36c65a88c03b66d1a9";
       };
     }
     {
-      name = "_babel_plugin_syntax_optional_chaining___plugin_syntax_optional_chaining_7.7.4.tgz";
+      name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_optional_chaining___plugin_syntax_optional_chaining_7.7.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.7.4.tgz";
-        sha1 = "c91fdde6de85d2eb8906daea7b21944c3610c901";
+        name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz";
+        sha1 = "60e225edcbd98a640332a2e72dd3e66f1af55871";
       };
     }
     {
-      name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.2.0.tgz";
+      name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz";
-        sha1 = "9aeafbe4d6ffc6563bf8f8372091628f00779550";
+        name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz";
+        sha1 = "6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1";
       };
     }
     {
-      name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.5.0.tgz";
+      name = "_babel_plugin_syntax_optional_chaining___plugin_syntax_optional_chaining_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz";
-        sha1 = "89a3848a0166623b5bc481164b5936ab947e887e";
+        name = "_babel_plugin_syntax_optional_chaining___plugin_syntax_optional_chaining_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz";
+        sha1 = "4f69c2ab95167e0180cd5336613f8c5788f7d48a";
       };
     }
     {
-      name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.2.0.tgz";
+      name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz";
-        sha1 = "5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190";
+        name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz";
+        sha1 = "3acdece695e6b13aaf57fc291d1a800950c71391";
       };
     }
     {
-      name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.6.2.tgz";
+      name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.2.tgz";
-        sha1 = "96c33ab97a9ae500cc6f5b19e04a7e6553360a79";
+        name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz";
+        sha1 = "82776c2ed0cd9e1a49956daeb896024c9473b8b6";
       };
     }
     {
-      name = "_babel_plugin_transform_classes___plugin_transform_classes_7.5.5.tgz";
+      name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_classes___plugin_transform_classes_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz";
-        sha1 = "d094299d9bd680a14a2a0edae38305ad60fb4de9";
+        name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz";
+        sha1 = "4308fad0d9409d71eafb9b1a6ee35f9d64b64086";
       };
     }
     {
-      name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.2.0.tgz";
+      name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz";
-        sha1 = "83a7df6a658865b1c8f641d510c6f3af220216da";
+        name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz";
+        sha1 = "437eec5b799b5852072084b3ae5ef66e8349e8a3";
       };
     }
     {
-      name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.6.0.tgz";
+      name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz";
-        sha1 = "44bbe08b57f4480094d57d9ffbcd96d309075ba6";
+        name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz";
+        sha1 = "97d35dab66857a437c166358b91d09050c868f3a";
       };
     }
     {
-      name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.6.2.tgz";
+      name = "_babel_plugin_transform_classes___plugin_transform_classes_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz";
-        sha1 = "44abb948b88f0199a627024e1508acaf8dc9b2f9";
+        name = "_babel_plugin_transform_classes___plugin_transform_classes_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz";
+        sha1 = "46fd7a9d2bb9ea89ce88720477979fe0d71b21b8";
       };
     }
     {
-      name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.5.0.tgz";
+      name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz";
-        sha1 = "c5dbf5106bf84cdf691222c0974c12b1df931853";
+        name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz";
+        sha1 = "96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b";
       };
     }
     {
-      name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.2.0.tgz";
+      name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz";
-        sha1 = "a63868289e5b4007f7054d46491af51435766008";
+        name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz";
+        sha1 = "20ddfbd9e4676906b1056ee60af88590cc7aaa0b";
       };
     }
     {
-      name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.4.4.tgz";
+      name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz";
-        sha1 = "0267fc735e24c808ba173866c6c4d1440fc3c556";
+        name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz";
+        sha1 = "c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e";
       };
     }
     {
-      name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.4.4.tgz";
+      name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz";
-        sha1 = "e1436116abb0610c2259094848754ac5230922ad";
+        name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz";
+        sha1 = "8d12df309aa537f272899c565ea1768e286e21f1";
       };
     }
     {
-      name = "_babel_plugin_transform_literals___plugin_transform_literals_7.2.0.tgz";
+      name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_literals___plugin_transform_literals_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz";
-        sha1 = "690353e81f9267dad4fd8cfd77eafa86aba53ea1";
+        name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz";
+        sha1 = "581a6d7f56970e06bf51560cd64f5e947b70d7b7";
       };
     }
     {
-      name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.2.0.tgz";
+      name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.8.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz";
-        sha1 = "fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d";
+        name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.8.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz";
+        sha1 = "6fe8eae5d6875086ee185dd0b098a8513783b47d";
       };
     }
     {
-      name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.5.0.tgz";
+      name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz";
-        sha1 = "ef00435d46da0a5961aa728a1d2ecff063e4fb91";
+        name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz";
+        sha1 = "279373cb27322aaad67c2683e776dfc47196ed8b";
       };
     }
     {
-      name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.6.0.tgz";
+      name = "_babel_plugin_transform_literals___plugin_transform_literals_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz";
-        sha1 = "39dfe957de4420445f1fcf88b68a2e4aa4515486";
+        name = "_babel_plugin_transform_literals___plugin_transform_literals_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz";
+        sha1 = "aef239823d91994ec7b68e55193525d76dbd5dc1";
       };
     }
     {
-      name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.5.0.tgz";
+      name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz";
-        sha1 = "e75266a13ef94202db2a0620977756f51d52d249";
+        name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz";
+        sha1 = "963fed4b620ac7cbf6029c755424029fa3a40410";
       };
     }
     {
-      name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.2.0.tgz";
+      name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz";
-        sha1 = "7678ce75169f0877b8eb2235538c074268dd01ae";
+        name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz";
+        sha1 = "65606d44616b50225e76f5578f33c568a0b876a5";
       };
     }
     {
-      name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.6.2.tgz";
+      name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.2.tgz";
-        sha1 = "c1ca0bb84b94f385ca302c3932e870b0fb0e522b";
+        name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz";
+        sha1 = "df251706ec331bd058a34bdd72613915f82928a5";
       };
     }
     {
-      name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.4.4.tgz";
+      name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz";
-        sha1 = "18d120438b0cc9ee95a47f2c72bc9768fbed60a5";
+        name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz";
+        sha1 = "d8bbf222c1dbe3661f440f2f00c16e9bb7d0d420";
       };
     }
     {
-      name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.5.5.tgz";
+      name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz";
-        sha1 = "c70021df834073c65eb613b8679cc4a381d1a9f9";
+        name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz";
+        sha1 = "592d578ce06c52f5b98b02f913d653ffe972661a";
       };
     }
     {
-      name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.4.4.tgz";
+      name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz";
-        sha1 = "7556cf03f318bd2719fe4c922d2d808be5571e16";
+        name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz";
+        sha1 = "a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c";
       };
     }
     {
-      name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.2.0.tgz";
+      name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz";
-        sha1 = "03e33f653f5b25c4eb572c98b9485055b389e905";
+        name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz";
+        sha1 = "60cc2ae66d85c95ab540eb34babb6434d4c70c43";
       };
     }
     {
-      name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.4.5.tgz";
+      name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.4.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz";
-        sha1 = "629dc82512c55cee01341fb27bdfcb210354680f";
+        name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz";
+        sha1 = "ebb6a1e7a86ffa96858bd6ac0102d65944261725";
       };
     }
     {
-      name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.2.0.tgz";
+      name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.8.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz";
-        sha1 = "4792af87c998a49367597d07fedf02636d2e1634";
+        name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.8.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz";
+        sha1 = "1d5155de0b65db0ccf9971165745d3bb990d77d3";
       };
     }
     {
-      name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.2.0.tgz";
+      name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz";
-        sha1 = "6333aee2f8d6ee7e28615457298934a3b46198f0";
+        name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz";
+        sha1 = "33194300d8539c1ed28c62ad5087ba3807b98263";
       };
     }
     {
-      name = "_babel_plugin_transform_spread___plugin_transform_spread_7.6.2.tgz";
+      name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_spread___plugin_transform_spread_7.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz";
-        sha1 = "fc77cf798b24b10c46e1b51b1b88c2bf661bb8dd";
+        name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz";
+        sha1 = "b31031e8059c07495bf23614c97f3d9698bc6ec8";
       };
     }
     {
-      name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.2.0.tgz";
+      name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz";
-        sha1 = "a1e454b5995560a9c1e0d537dfc15061fd2687e1";
+        name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz";
+        sha1 = "9a0635ac4e665d29b162837dd3cc50745dfdf1f5";
       };
     }
     {
-      name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.4.4.tgz";
+      name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz";
-        sha1 = "9d28fea7bbce637fb7612a0750989d8321d4bcb0";
+        name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz";
+        sha1 = "28545216e023a832d4d3a1185ed492bcfeac08c8";
       };
     }
     {
-      name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.2.0.tgz";
+      name = "_babel_plugin_transform_spread___plugin_transform_spread_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz";
-        sha1 = "117d2bcec2fbf64b4b59d1f9819894682d29f2b2";
+        name = "_babel_plugin_transform_spread___plugin_transform_spread_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz";
+        sha1 = "9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8";
       };
     }
     {
-      name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.6.2.tgz";
+      name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz";
-        sha1 = "b692aad888a7e8d8b1b214be6b9dc03d5031f698";
+        name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz";
+        sha1 = "be7a1290f81dae767475452199e1f76d6175b100";
       };
     }
     {
-      name = "_babel_preset_env___preset_env_7.6.2.tgz";
+      name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_preset_env___preset_env_7.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.2.tgz";
-        sha1 = "abbb3ed785c7fe4220d4c82a53621d71fc0c75d3";
+        name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz";
+        sha1 = "7bfa4732b455ea6a43130adc0ba767ec0e402a80";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.8.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.8.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz";
+        sha1 = "ede4062315ce0aaf8a657a920858f1a2f35fc412";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.8.3.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz";
+        sha1 = "0cef36e3ba73e5c57273effb182f46b91a1ecaad";
+      };
+    }
+    {
+      name = "_babel_preset_env___preset_env_7.8.4.tgz";
+      path = fetchurl {
+        name = "_babel_preset_env___preset_env_7.8.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.8.4.tgz";
+        sha1 = "9dac6df5f423015d3d49b6e9e5fa3413e4a72c4e";
       };
     }
     {
@@ -602,19 +650,19 @@
       };
     }
     {
-      name = "_babel_template___template_7.6.0.tgz";
+      name = "_babel_template___template_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_template___template_7.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz";
-        sha1 = "7f0159c7f5012230dad64cca42ec9bdb5c9536e6";
+        name = "_babel_template___template_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz";
+        sha1 = "e02ad04fe262a657809327f578056ca15fd4d1b8";
       };
     }
     {
-      name = "_babel_traverse___traverse_7.6.2.tgz";
+      name = "_babel_traverse___traverse_7.8.4.tgz";
       path = fetchurl {
-        name = "_babel_traverse___traverse_7.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.2.tgz";
-        sha1 = "b0e2bfd401d339ce0e6c05690206d1e11502ce2c";
+        name = "_babel_traverse___traverse_7.8.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.4.tgz";
+        sha1 = "f0845822365f9d5b0e312ed3959d3f827f869e3c";
       };
     }
     {
@@ -650,51 +698,35 @@
       };
     }
     {
-      name = "_gitlab_eslint_config___eslint_config_3.0.0.tgz";
-      path = fetchurl {
-        name = "_gitlab_eslint_config___eslint_config_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/eslint-config/-/eslint-config-3.0.0.tgz";
-        sha1 = "9a93662ffefb7792d5d0d96d876c316f2c393315";
-      };
-    }
-    {
-      name = "_gitlab_eslint_plugin_i18n___eslint_plugin_i18n_1.1.0.tgz";
-      path = fetchurl {
-        name = "_gitlab_eslint_plugin_i18n___eslint_plugin_i18n_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/eslint-plugin-i18n/-/eslint-plugin-i18n-1.1.0.tgz";
-        sha1 = "e494d599e644ce3a094ea85f87dbbda41a924c5e";
-      };
-    }
-    {
-      name = "_gitlab_eslint_plugin_vue_i18n___eslint_plugin_vue_i18n_2.0.0.tgz";
+      name = "_gitlab_eslint_plugin___eslint_plugin_3.1.0.tgz";
       path = fetchurl {
-        name = "_gitlab_eslint_plugin_vue_i18n___eslint_plugin_vue_i18n_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/eslint-plugin-vue-i18n/-/eslint-plugin-vue-i18n-2.0.0.tgz";
-        sha1 = "5a01912d9d5a7524539d678f09cac6fa57d6d838";
+        name = "_gitlab_eslint_plugin___eslint_plugin_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/eslint-plugin/-/eslint-plugin-3.1.0.tgz";
+        sha1 = "18e03630d10788defbb4c2d746620aec09517295";
       };
     }
     {
-      name = "_gitlab_svgs___svgs_1.96.0.tgz";
+      name = "_gitlab_svgs___svgs_1.127.0.tgz";
       path = fetchurl {
-        name = "_gitlab_svgs___svgs_1.96.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.96.0.tgz";
-        sha1 = "1d32730389e94358dc245e8336912523446d1269";
+        name = "_gitlab_svgs___svgs_1.127.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.127.0.tgz";
+        sha1 = "1f7ffdffe44d6a82b372535f93d78f3a895d1960";
       };
     }
     {
-      name = "_gitlab_ui___ui_9.8.0.tgz";
+      name = "_gitlab_ui___ui_14.10.0.tgz";
       path = fetchurl {
-        name = "_gitlab_ui___ui_9.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-9.8.0.tgz";
-        sha1 = "b1a0b5f1f6ac9fdb19b64d74f0f729e3ec182495";
+        name = "_gitlab_ui___ui_14.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-14.10.0.tgz";
+        sha1 = "39c04d62c914fcefe96c7ec32fdf31b1f98f1119";
       };
     }
     {
-      name = "_gitlab_visual_review_tools___visual_review_tools_1.5.1.tgz";
+      name = "_gitlab_visual_review_tools___visual_review_tools_1.6.1.tgz";
       path = fetchurl {
-        name = "_gitlab_visual_review_tools___visual_review_tools_1.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/visual-review-tools/-/visual-review-tools-1.5.1.tgz";
-        sha1 = "2552927cd7a376f1f06ef3293a69fe2ffcdddb52";
+        name = "_gitlab_visual_review_tools___visual_review_tools_1.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/visual-review-tools/-/visual-review-tools-1.6.1.tgz";
+        sha1 = "0d8f3ff9f51b05f7c80b9a107727703d48997e4e";
       };
     }
     {
@@ -810,6 +842,14 @@
       };
     }
     {
+      name = "_rails_actioncable___actioncable_6.0.3.tgz";
+      path = fetchurl {
+        name = "_rails_actioncable___actioncable_6.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-6.0.3.tgz";
+        sha1 = "722b4b639936129307ddbab3a390f6bcacf3e7bc";
+      };
+    }
+    {
       name = "_sentry_browser___browser_5.10.2.tgz";
       path = fetchurl {
         name = "_sentry_browser___browser_5.10.2.tgz";
@@ -858,11 +898,27 @@
       };
     }
     {
-      name = "_sourcegraph_code_host_integration___code_host_integration_0.0.30.tgz";
+      name = "_sourcegraph_code_host_integration___code_host_integration_0.0.46.tgz";
+      path = fetchurl {
+        name = "_sourcegraph_code_host_integration___code_host_integration_0.0.46.tgz";
+        url  = "https://registry.yarnpkg.com/@sourcegraph/code-host-integration/-/code-host-integration-0.0.46.tgz";
+        sha1 = "05e4cda671ed00450be12461e6a3caff473675aa";
+      };
+    }
+    {
+      name = "_toast_ui_editor___editor_2.0.1.tgz";
+      path = fetchurl {
+        name = "_toast_ui_editor___editor_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@toast-ui/editor/-/editor-2.0.1.tgz";
+        sha1 = "749e5be1f02f42ded51488d1575ab1c19ca59952";
+      };
+    }
+    {
+      name = "_toast_ui_vue_editor___vue_editor_2.0.1.tgz";
       path = fetchurl {
-        name = "_sourcegraph_code_host_integration___code_host_integration_0.0.30.tgz";
-        url  = "https://registry.yarnpkg.com/@sourcegraph/code-host-integration/-/code-host-integration-0.0.30.tgz";
-        sha1 = "85f52eca0f8fd5efb1526a7ec6a09d261ab43bda";
+        name = "_toast_ui_vue_editor___vue_editor_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@toast-ui/vue-editor/-/vue-editor-2.0.1.tgz";
+        sha1 = "c9c8c8da4c0a67b9fbc4240464388c67d72a0c22";
       };
     }
     {
@@ -906,6 +962,22 @@
       };
     }
     {
+      name = "_types_codemirror___codemirror_0.0.71.tgz";
+      path = fetchurl {
+        name = "_types_codemirror___codemirror_0.0.71.tgz";
+        url  = "https://registry.yarnpkg.com/@types/codemirror/-/codemirror-0.0.71.tgz";
+        sha1 = "861f1bcb3100c0a064567c5400f2981cf4ae8ca7";
+      };
+    }
+    {
+      name = "_types_estree___estree_0.0.44.tgz";
+      path = fetchurl {
+        name = "_types_estree___estree_0.0.44.tgz";
+        url  = "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.44.tgz";
+        sha1 = "980cc5a29a3ef3bea6ff1f7d021047d7ea575e21";
+      };
+    }
+    {
       name = "_types_events___events_1.2.0.tgz";
       path = fetchurl {
         name = "_types_events___events_1.2.0.tgz";
@@ -946,6 +1018,14 @@
       };
     }
     {
+      name = "_types_json_schema___json_schema_7.0.4.tgz";
+      path = fetchurl {
+        name = "_types_json_schema___json_schema_7.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz";
+        sha1 = "38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339";
+      };
+    }
+    {
       name = "_types_minimatch___minimatch_3.0.3.tgz";
       path = fetchurl {
         name = "_types_minimatch___minimatch_3.0.3.tgz";
@@ -986,6 +1066,14 @@
       };
     }
     {
+      name = "_types_tern___tern_0.23.3.tgz";
+      path = fetchurl {
+        name = "_types_tern___tern_0.23.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/tern/-/tern-0.23.3.tgz";
+        sha1 = "4b54538f04a88c9ff79de1f6f94f575a7f339460";
+      };
+    }
+    {
       name = "_types_uglify_js___uglify_js_3.0.4.tgz";
       path = fetchurl {
         name = "_types_uglify_js___uglify_js_3.0.4.tgz";
@@ -1042,6 +1130,22 @@
       };
     }
     {
+      name = "_typescript_eslint_experimental_utils___experimental_utils_2.30.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_experimental_utils___experimental_utils_2.30.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.30.0.tgz";
+        sha1 = "9845e868c01f3aed66472c561d4b6bac44809dd0";
+      };
+    }
+    {
+      name = "_typescript_eslint_typescript_estree___typescript_estree_2.30.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_typescript_estree___typescript_estree_2.30.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.30.0.tgz";
+        sha1 = "1b8e848b55144270255ffbfe4c63291f8f766615";
+      };
+    }
+    {
       name = "_vue_component_compiler_utils___component_compiler_utils_2.6.0.tgz";
       path = fetchurl {
         name = "_vue_component_compiler_utils___component_compiler_utils_2.6.0.tgz";
@@ -1762,14 +1866,6 @@
       };
     }
     {
-      name = "async___async_1.5.2.tgz";
-      path = fetchurl {
-        name = "async___async_1.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz";
-        sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a";
-      };
-    }
-    {
       name = "async___async_2.6.3.tgz";
       path = fetchurl {
         name = "async___async_2.6.3.tgz";
@@ -1802,19 +1898,19 @@
       };
     }
     {
-      name = "autosize___autosize_4.0.0.tgz";
+      name = "autosize___autosize_4.0.2.tgz";
       path = fetchurl {
-        name = "autosize___autosize_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/autosize/-/autosize-4.0.0.tgz";
-        sha1 = "7a0599b1ba84d73bd7589b0d9da3870152c69237";
+        name = "autosize___autosize_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/autosize/-/autosize-4.0.2.tgz";
+        sha1 = "073cfd07c8bf45da4b9fd153437f5bafbba1e4c9";
       };
     }
     {
-      name = "aws_sdk___aws_sdk_2.526.0.tgz";
+      name = "aws_sdk___aws_sdk_2.637.0.tgz";
       path = fetchurl {
-        name = "aws_sdk___aws_sdk_2.526.0.tgz";
-        url  = "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.526.0.tgz";
-        sha1 = "e0f899be59edb7d50eb8cca7978bcd401a5d48c2";
+        name = "aws_sdk___aws_sdk_2.637.0.tgz";
+        url  = "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.637.0.tgz";
+        sha1 = "810e25e53acf2250d35fc74498f9d4492e154217";
       };
     }
     {
@@ -1850,14 +1946,6 @@
       };
     }
     {
-      name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
-      path = fetchurl {
-        name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
-        sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
-      };
-    }
-    {
       name = "babel_eslint___babel_eslint_10.0.3.tgz";
       path = fetchurl {
         name = "babel_eslint___babel_eslint_10.0.3.tgz";
@@ -2226,11 +2314,11 @@
       };
     }
     {
-      name = "browserslist___browserslist_4.6.6.tgz";
+      name = "browserslist___browserslist_4.8.7.tgz";
       path = fetchurl {
-        name = "browserslist___browserslist_4.6.6.tgz";
-        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz";
-        sha1 = "6e4bf467cde520bc9dbdf3747dafa03531cec453";
+        name = "browserslist___browserslist_4.8.7.tgz";
+        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.7.tgz";
+        sha1 = "ec8301ff415e6a42c949d0e66b405eb539c532d0";
       };
     }
     {
@@ -2450,11 +2538,11 @@
       };
     }
     {
-      name = "caniuse_lite___caniuse_lite_1.0.30001025.tgz";
+      name = "caniuse_lite___caniuse_lite_1.0.30001030.tgz";
       path = fetchurl {
-        name = "caniuse_lite___caniuse_lite_1.0.30001025.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001025.tgz";
-        sha1 = "30336a8aca7f98618eb3cf38e35184e13d4e5fe6";
+        name = "caniuse_lite___caniuse_lite_1.0.30001030.tgz";
+        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001030.tgz";
+        sha1 = "78076c4c6d67d3e41d6eb9399853fb27fe6e44ee";
       };
     }
     {
@@ -2770,11 +2858,19 @@
       };
     }
     {
-      name = "codesandbox_api___codesandbox_api_0.0.20.tgz";
+      name = "codemirror___codemirror_5.53.2.tgz";
+      path = fetchurl {
+        name = "codemirror___codemirror_5.53.2.tgz";
+        url  = "https://registry.yarnpkg.com/codemirror/-/codemirror-5.53.2.tgz";
+        sha1 = "9799121cf8c50809cca487304e9de3a74d33f428";
+      };
+    }
+    {
+      name = "codesandbox_api___codesandbox_api_0.0.23.tgz";
       path = fetchurl {
-        name = "codesandbox_api___codesandbox_api_0.0.20.tgz";
-        url  = "https://registry.yarnpkg.com/codesandbox-api/-/codesandbox-api-0.0.20.tgz";
-        sha1 = "174bcd76c9f31521175c6bceabc37da6b1fbc30b";
+        name = "codesandbox_api___codesandbox_api_0.0.23.tgz";
+        url  = "https://registry.yarnpkg.com/codesandbox-api/-/codesandbox-api-0.0.23.tgz";
+        sha1 = "bf650a21b5f3c2369e03f0c19d10b4e2ba255b4f";
       };
     }
     {
@@ -3058,11 +3154,11 @@
       };
     }
     {
-      name = "convert_source_map___convert_source_map_1.6.0.tgz";
+      name = "convert_source_map___convert_source_map_1.7.0.tgz";
       path = fetchurl {
-        name = "convert_source_map___convert_source_map_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz";
-        sha1 = "51b537a8c43e0f04dec1993bffcdd504e758ac20";
+        name = "convert_source_map___convert_source_map_1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz";
+        sha1 = "17a2cb882d7f77d3490585e2ce6c524424a3a442";
       };
     }
     {
@@ -3122,27 +3218,19 @@
       };
     }
     {
-      name = "core_js_compat___core_js_compat_3.1.4.tgz";
+      name = "core_js_compat___core_js_compat_3.6.4.tgz";
       path = fetchurl {
-        name = "core_js_compat___core_js_compat_3.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.1.4.tgz";
-        sha1 = "e4d0c40fbd01e65b1d457980fe4112d4358a7408";
+        name = "core_js_compat___core_js_compat_3.6.4.tgz";
+        url  = "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz";
+        sha1 = "938476569ebb6cda80d339bcf199fae4f16fff17";
       };
     }
     {
-      name = "core_js_pure___core_js_pure_3.1.4.tgz";
+      name = "core_js___core_js_3.6.4.tgz";
       path = fetchurl {
-        name = "core_js_pure___core_js_pure_3.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.4.tgz";
-        sha1 = "5fa17dc77002a169a3566cc48dc774d2e13e3769";
-      };
-    }
-    {
-      name = "core_js___core_js_3.2.1.tgz";
-      path = fetchurl {
-        name = "core_js___core_js_3.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.2.1.tgz";
-        sha1 = "cd41f38534da6cc59f7db050fe67307de9868b09";
+        name = "core_js___core_js_3.6.4.tgz";
+        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz";
+        sha1 = "440a83536b458114b9cb2ac1580ba377dc470647";
       };
     }
     {
@@ -3274,11 +3362,11 @@
       };
     }
     {
-      name = "css_loader___css_loader_1.0.1.tgz";
+      name = "css_loader___css_loader_2.1.1.tgz";
       path = fetchurl {
-        name = "css_loader___css_loader_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.1.tgz";
-        sha1 = "6885bb5233b35ec47b006057da01cc640b6b79fe";
+        name = "css_loader___css_loader_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz";
+        sha1 = "d8254f72e412bb2238bb44dd674ffbef497333ea";
       };
     }
     {
@@ -3290,14 +3378,6 @@
       };
     }
     {
-      name = "css_selector_tokenizer___css_selector_tokenizer_0.7.1.tgz";
-      path = fetchurl {
-        name = "css_selector_tokenizer___css_selector_tokenizer_0.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz";
-        sha1 = "a177271a8bca5019172f4f891fc6eed9cbf68d5d";
-      };
-    }
-    {
       name = "css___css_2.2.4.tgz";
       path = fetchurl {
         name = "css___css_2.2.4.tgz";
@@ -3306,14 +3386,6 @@
       };
     }
     {
-      name = "cssesc___cssesc_0.1.0.tgz";
-      path = fetchurl {
-        name = "cssesc___cssesc_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz";
-        sha1 = "c814903e45623371a0477b40109aaafbeeaddbb4";
-      };
-    }
-    {
       name = "cssesc___cssesc_2.0.0.tgz";
       path = fetchurl {
         name = "cssesc___cssesc_2.0.0.tgz";
@@ -3546,14 +3618,6 @@
       };
     }
     {
-      name = "d3_queue___d3_queue_3.0.7.tgz";
-      path = fetchurl {
-        name = "d3_queue___d3_queue_3.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/d3-queue/-/d3-queue-3.0.7.tgz";
-        sha1 = "c93a2e54b417c0959129d7d73f6cf7d4292e7618";
-      };
-    }
-    {
       name = "d3_random___d3_random_1.1.0.tgz";
       path = fetchurl {
         name = "d3_random___d3_random_1.1.0.tgz";
@@ -3562,14 +3626,6 @@
       };
     }
     {
-      name = "d3_request___d3_request_1.0.6.tgz";
-      path = fetchurl {
-        name = "d3_request___d3_request_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/d3-request/-/d3-request-1.0.6.tgz";
-        sha1 = "a1044a9ef4ec28c824171c9379fae6d79474b19f";
-      };
-    }
-    {
       name = "d3_scale_chromatic___d3_scale_chromatic_1.3.3.tgz";
       path = fetchurl {
         name = "d3_scale_chromatic___d3_scale_chromatic_1.3.3.tgz";
@@ -3578,14 +3634,6 @@
       };
     }
     {
-      name = "d3_scale___d3_scale_1.0.7.tgz";
-      path = fetchurl {
-        name = "d3_scale___d3_scale_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/d3-scale/-/d3-scale-1.0.7.tgz";
-        sha1 = "fa90324b3ea8a776422bd0472afab0b252a0945d";
-      };
-    }
-    {
       name = "d3_scale___d3_scale_2.2.2.tgz";
       path = fetchurl {
         name = "d3_scale___d3_scale_2.2.2.tgz";
@@ -3658,14 +3706,6 @@
       };
     }
     {
-      name = "d3___d3_4.13.0.tgz";
-      path = fetchurl {
-        name = "d3___d3_4.13.0.tgz";
-        url  = "https://registry.yarnpkg.com/d3/-/d3-4.13.0.tgz";
-        sha1 = "ab236ff8cf0cfc27a81e69bf2fb7518bc9b4f33d";
-      };
-    }
-    {
       name = "d3___d3_5.15.0.tgz";
       path = fetchurl {
         name = "d3___d3_5.15.0.tgz";
@@ -4066,11 +4106,11 @@
       };
     }
     {
-      name = "document_register_element___document_register_element_1.13.1.tgz";
+      name = "document_register_element___document_register_element_1.14.3.tgz";
       path = fetchurl {
-        name = "document_register_element___document_register_element_1.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/document-register-element/-/document-register-element-1.13.1.tgz";
-        sha1 = "dad8cb7be38e04ee3f56842e6cf81af46c1249ba";
+        name = "document_register_element___document_register_element_1.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/document-register-element/-/document-register-element-1.14.3.tgz";
+        sha1 = "3335d4578df6a1536a34595b91cca36dd5db61d7";
       };
     }
     {
@@ -4090,11 +4130,11 @@
       };
     }
     {
-      name = "dom_serializer___dom_serializer_0.1.0.tgz";
+      name = "dom_serializer___dom_serializer_0.2.2.tgz";
       path = fetchurl {
-        name = "dom_serializer___dom_serializer_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz";
-        sha1 = "073c697546ce0780ce23be4a28e293e40bc30c82";
+        name = "dom_serializer___dom_serializer_0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz";
+        sha1 = "1afb81f533717175d478655debc5e332d9f9bb51";
       };
     }
     {
@@ -4114,11 +4154,11 @@
       };
     }
     {
-      name = "domelementtype___domelementtype_1.1.3.tgz";
+      name = "domelementtype___domelementtype_2.0.1.tgz";
       path = fetchurl {
-        name = "domelementtype___domelementtype_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz";
-        sha1 = "bd28773e2642881aec51544924299c5cd822185b";
+        name = "domelementtype___domelementtype_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz";
+        sha1 = "1f8bdfe91f5a78063274e803b4bdcedf6e94f94d";
       };
     }
     {
@@ -4138,6 +4178,14 @@
       };
     }
     {
+      name = "domhandler___domhandler_3.0.0.tgz";
+      path = fetchurl {
+        name = "domhandler___domhandler_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/domhandler/-/domhandler-3.0.0.tgz";
+        sha1 = "51cd13efca31da95bbb0c5bee3a48300e333b3e9";
+      };
+    }
+    {
       name = "domutils___domutils_1.6.2.tgz";
       path = fetchurl {
         name = "domutils___domutils_1.6.2.tgz";
@@ -4146,6 +4194,14 @@
       };
     }
     {
+      name = "domutils___domutils_2.0.0.tgz";
+      path = fetchurl {
+        name = "domutils___domutils_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/domutils/-/domutils-2.0.0.tgz";
+        sha1 = "15b8278e37bfa8468d157478c58c367718133c08";
+      };
+    }
+    {
       name = "dot_prop___dot_prop_4.2.0.tgz";
       path = fetchurl {
         name = "dot_prop___dot_prop_4.2.0.tgz";
@@ -4234,11 +4290,11 @@
       };
     }
     {
-      name = "electron_to_chromium___electron_to_chromium_1.3.199.tgz";
+      name = "electron_to_chromium___electron_to_chromium_1.3.360.tgz";
       path = fetchurl {
-        name = "electron_to_chromium___electron_to_chromium_1.3.199.tgz";
-        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.199.tgz";
-        sha1 = "f9a62a74cda77854310a2abffde8b75591ea09a1";
+        name = "electron_to_chromium___electron_to_chromium_1.3.360.tgz";
+        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.360.tgz";
+        sha1 = "1db9cb8d43f4c772546d94ea9be8b677a8ecb483";
       };
     }
     {
@@ -4282,6 +4338,14 @@
       };
     }
     {
+      name = "emojis_list___emojis_list_3.0.0.tgz";
+      path = fetchurl {
+        name = "emojis_list___emojis_list_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz";
+        sha1 = "5570662046ad29e2e916e71aae260abdff4f6a78";
+      };
+    }
+    {
       name = "encodeurl___encodeurl_1.0.2.tgz";
       path = fetchurl {
         name = "encodeurl___encodeurl_1.0.2.tgz";
@@ -4354,6 +4418,14 @@
       };
     }
     {
+      name = "entities___entities_2.0.0.tgz";
+      path = fetchurl {
+        name = "entities___entities_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz";
+        sha1 = "68d6084cab1b079767540d80e56a39b423e4abf4";
+      };
+    }
+    {
       name = "errno___errno_0.1.7.tgz";
       path = fetchurl {
         name = "errno___errno_0.1.7.tgz";
@@ -4506,11 +4578,11 @@
       };
     }
     {
-      name = "eslint_plugin_jest___eslint_plugin_jest_22.3.0.tgz";
+      name = "eslint_plugin_jest___eslint_plugin_jest_23.8.2.tgz";
       path = fetchurl {
-        name = "eslint_plugin_jest___eslint_plugin_jest_22.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.3.0.tgz";
-        sha1 = "a10f10dedfc92def774ec9bb5bfbd2fb8e1c96d2";
+        name = "eslint_plugin_jest___eslint_plugin_jest_23.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.8.2.tgz";
+        sha1 = "6f28b41c67ef635f803ebd9e168f6b73858eb8d4";
       };
     }
     {
@@ -4530,11 +4602,11 @@
       };
     }
     {
-      name = "eslint_plugin_vue___eslint_plugin_vue_6.1.2.tgz";
+      name = "eslint_plugin_vue___eslint_plugin_vue_6.2.2.tgz";
       path = fetchurl {
-        name = "eslint_plugin_vue___eslint_plugin_vue_6.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.1.2.tgz";
-        sha1 = "4b05c28c83c0ec912669b64dbd998bb8bf692ef6";
+        name = "eslint_plugin_vue___eslint_plugin_vue_6.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz";
+        sha1 = "27fecd9a3a24789b0f111ecdd540a9e56198e0fe";
       };
     }
     {
@@ -4570,6 +4642,14 @@
       };
     }
     {
+      name = "eslint_utils___eslint_utils_2.0.0.tgz";
+      path = fetchurl {
+        name = "eslint_utils___eslint_utils_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz";
+        sha1 = "7be1cc70f27a72a76cd14aa698bcabed6890e1cd";
+      };
+    }
+    {
       name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
       path = fetchurl {
         name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
@@ -4634,11 +4714,11 @@
       };
     }
     {
-      name = "esutils___esutils_2.0.2.tgz";
+      name = "esutils___esutils_2.0.3.tgz";
       path = fetchurl {
-        name = "esutils___esutils_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz";
-        sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
+        name = "esutils___esutils_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz";
+        sha1 = "74d2eb4de0b8da1293711910d50775b9b710ef64";
       };
     }
     {
@@ -4874,14 +4954,6 @@
       };
     }
     {
-      name = "fastparse___fastparse_1.1.2.tgz";
-      path = fetchurl {
-        name = "fastparse___fastparse_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz";
-        sha1 = "91728c5a5942eced8531283c79441ee4122c35a9";
-      };
-    }
-    {
       name = "fault___fault_1.0.2.tgz";
       path = fetchurl {
         name = "fault___fault_1.0.2.tgz";
@@ -4938,11 +5010,11 @@
       };
     }
     {
-      name = "file_loader___file_loader_4.2.0.tgz";
+      name = "file_loader___file_loader_5.1.0.tgz";
       path = fetchurl {
-        name = "file_loader___file_loader_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/file-loader/-/file-loader-4.2.0.tgz";
-        sha1 = "5fb124d2369d7075d70a9a5abecd12e60a95215e";
+        name = "file_loader___file_loader_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/file-loader/-/file-loader-5.1.0.tgz";
+        sha1 = "cb56c070efc0e40666424309bd0d9e45ac6f2bb8";
       };
     }
     {
@@ -5122,11 +5194,11 @@
       };
     }
     {
-      name = "formdata_polyfill___formdata_polyfill_3.0.11.tgz";
+      name = "formdata_polyfill___formdata_polyfill_3.0.19.tgz";
       path = fetchurl {
-        name = "formdata_polyfill___formdata_polyfill_3.0.11.tgz";
-        url  = "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-3.0.11.tgz";
-        sha1 = "c82b4b4bea3356c0a6752219e54ce1edb2a7fb5b";
+        name = "formdata_polyfill___formdata_polyfill_3.0.19.tgz";
+        url  = "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-3.0.19.tgz";
+        sha1 = "72f517db3a646a5dd8c31af0edf111fd8f1e4cee";
       };
     }
     {
@@ -5242,11 +5314,11 @@
       };
     }
     {
-      name = "fuzzaldrin_plus___fuzzaldrin_plus_0.5.0.tgz";
+      name = "fuzzaldrin_plus___fuzzaldrin_plus_0.6.0.tgz";
       path = fetchurl {
-        name = "fuzzaldrin_plus___fuzzaldrin_plus_0.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/fuzzaldrin-plus/-/fuzzaldrin-plus-0.5.0.tgz";
-        sha1 = "ef5f26f0c2fc7e9e9a16ea149a802d6cb4804b1e";
+        name = "fuzzaldrin_plus___fuzzaldrin_plus_0.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/fuzzaldrin-plus/-/fuzzaldrin-plus-0.6.0.tgz";
+        sha1 = "832f6489fbe876769459599c914a670ec22947ee";
       };
     }
     {
@@ -5266,6 +5338,14 @@
       };
     }
     {
+      name = "gensync___gensync_1.0.0_beta.1.tgz";
+      path = fetchurl {
+        name = "gensync___gensync_1.0.0_beta.1.tgz";
+        url  = "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz";
+        sha1 = "58f4361ff987e5ff6e1e7a210827aa371eaac269";
+      };
+    }
+    {
       name = "get_caller_file___get_caller_file_1.0.3.tgz";
       path = fetchurl {
         name = "get_caller_file___get_caller_file_1.0.3.tgz";
@@ -5394,11 +5474,11 @@
       };
     }
     {
-      name = "glob___glob_7.1.4.tgz";
+      name = "glob___glob_7.1.6.tgz";
       path = fetchurl {
-        name = "glob___glob_7.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz";
-        sha1 = "aa608a2f6c577ad357e1ae5a5c26d9a8d1969255";
+        name = "glob___glob_7.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz";
+        sha1 = "141f33b81a7c2492e125594307480c46679278a6";
       };
     }
     {
@@ -5546,11 +5626,11 @@
       };
     }
     {
-      name = "graphql_tag___graphql_tag_2.10.0.tgz";
+      name = "graphql_tag___graphql_tag_2.10.3.tgz";
       path = fetchurl {
-        name = "graphql_tag___graphql_tag_2.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.0.tgz";
-        sha1 = "87da024be863e357551b2b8700e496ee2d4353ae";
+        name = "graphql_tag___graphql_tag_2.10.3.tgz";
+        url  = "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.3.tgz";
+        sha1 = "ea1baba5eb8fc6339e4c4cf049dabe522b0edf03";
       };
     }
     {
@@ -5642,6 +5722,14 @@
       };
     }
     {
+      name = "has_flag___has_flag_4.0.0.tgz";
+      path = fetchurl {
+        name = "has_flag___has_flag_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz";
+        sha1 = "944771fd9c81c81265c4d6941860da06bb59479b";
+      };
+    }
+    {
       name = "has_symbols___has_symbols_1.0.1.tgz";
       path = fetchurl {
         name = "has_symbols___has_symbols_1.0.1.tgz";
@@ -5802,6 +5890,14 @@
       };
     }
     {
+      name = "html_escaper___html_escaper_2.0.0.tgz";
+      path = fetchurl {
+        name = "html_escaper___html_escaper_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.0.tgz";
+        sha1 = "71e87f931de3fe09e56661ab9a29aadec707b491";
+      };
+    }
+    {
       name = "html_minifier___html_minifier_4.0.0.tgz";
       path = fetchurl {
         name = "html_minifier___html_minifier_4.0.0.tgz";
@@ -5826,6 +5922,14 @@
       };
     }
     {
+      name = "htmlparser2___htmlparser2_4.1.0.tgz";
+      path = fetchurl {
+        name = "htmlparser2___htmlparser2_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-4.1.0.tgz";
+        sha1 = "9a4ef161f2e4625ebf7dfbe6c0a2f52d18a59e78";
+      };
+    }
+    {
       name = "http_deceiver___http_deceiver_1.2.7.tgz";
       path = fetchurl {
         name = "http_deceiver___http_deceiver_1.2.7.tgz";
@@ -5898,19 +6002,19 @@
       };
     }
     {
-      name = "icss_utils___icss_utils_2.1.0.tgz";
+      name = "icss_utils___icss_utils_4.1.1.tgz";
       path = fetchurl {
-        name = "icss_utils___icss_utils_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz";
-        sha1 = "83f0a0ec378bf3246178b6c2ad9136f135b1c962";
+        name = "icss_utils___icss_utils_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz";
+        sha1 = "21170b53789ee27447c2f47dd683081403f9a467";
       };
     }
     {
-      name = "ieee754___ieee754_1.1.8.tgz";
+      name = "ieee754___ieee754_1.1.13.tgz";
       path = fetchurl {
-        name = "ieee754___ieee754_1.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz";
-        sha1 = "be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4";
+        name = "ieee754___ieee754_1.1.13.tgz";
+        url  = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz";
+        sha1 = "ec168558e95aa181fd87d37f55c32bbcb6708b84";
       };
     }
     {
@@ -6194,11 +6298,11 @@
       };
     }
     {
-      name = "is_absolute_url___is_absolute_url_3.0.2.tgz";
+      name = "is_absolute_url___is_absolute_url_3.0.3.tgz";
       path = fetchurl {
-        name = "is_absolute_url___is_absolute_url_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.2.tgz";
-        sha1 = "554f2933e7385cc46e94351977ca2081170a206e";
+        name = "is_absolute_url___is_absolute_url_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz";
+        sha1 = "96c6a22b6a23929b11ea0afb1836c36ad4a5d698";
       };
     }
     {
@@ -6730,6 +6834,14 @@
       };
     }
     {
+      name = "istanbul_lib_coverage___istanbul_lib_coverage_3.0.0.tgz";
+      path = fetchurl {
+        name = "istanbul_lib_coverage___istanbul_lib_coverage_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz";
+        sha1 = "f5944a37c70b550b02a78a5c3b2055b280cec8ec";
+      };
+    }
+    {
       name = "istanbul_lib_hook___istanbul_lib_hook_2.0.7.tgz";
       path = fetchurl {
         name = "istanbul_lib_hook___istanbul_lib_hook_2.0.7.tgz";
@@ -6754,6 +6866,14 @@
       };
     }
     {
+      name = "istanbul_lib_report___istanbul_lib_report_3.0.0.tgz";
+      path = fetchurl {
+        name = "istanbul_lib_report___istanbul_lib_report_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz";
+        sha1 = "7518fe52ea44de372f460a76b5ecda9ffb73d8a6";
+      };
+    }
+    {
       name = "istanbul_lib_source_maps___istanbul_lib_source_maps_3.0.6.tgz";
       path = fetchurl {
         name = "istanbul_lib_source_maps___istanbul_lib_source_maps_3.0.6.tgz";
@@ -6770,6 +6890,14 @@
       };
     }
     {
+      name = "istanbul_reports___istanbul_reports_3.0.0.tgz";
+      path = fetchurl {
+        name = "istanbul_reports___istanbul_reports_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.0.tgz";
+        sha1 = "d4d16d035db99581b6194e119bbf36c963c5eb70";
+      };
+    }
+    {
       name = "istextorbinary___istextorbinary_2.2.1.tgz";
       path = fetchurl {
         name = "istextorbinary___istextorbinary_2.2.1.tgz";
@@ -7122,19 +7250,11 @@
       };
     }
     {
-      name = "js_cookie___js_cookie_2.1.3.tgz";
+      name = "js_cookie___js_cookie_2.2.1.tgz";
       path = fetchurl {
-        name = "js_cookie___js_cookie_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.1.3.tgz";
-        sha1 = "48071625217ac9ecfab8c343a13d42ec09ff0526";
-      };
-    }
-    {
-      name = "js_levenshtein___js_levenshtein_1.1.4.tgz";
-      path = fetchurl {
-        name = "js_levenshtein___js_levenshtein_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz";
-        sha1 = "3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e";
+        name = "js_cookie___js_cookie_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz";
+        sha1 = "69e106dc5d5806894562902aa5baec3744e9b2b8";
       };
     }
     {
@@ -7146,14 +7266,6 @@
       };
     }
     {
-      name = "js_tokens___js_tokens_3.0.2.tgz";
-      path = fetchurl {
-        name = "js_tokens___js_tokens_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz";
-        sha1 = "9866df395102130e38f7f996bceb65443209c25b";
-      };
-    }
-    {
       name = "js_yaml___js_yaml_3.13.1.tgz";
       path = fetchurl {
         name = "js_yaml___js_yaml_3.13.1.tgz";
@@ -7498,6 +7610,14 @@
       };
     }
     {
+      name = "levenary___levenary_1.1.1.tgz";
+      path = fetchurl {
+        name = "levenary___levenary_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz";
+        sha1 = "842a9ee98d2075aa7faeedbe32679e9205f46f77";
+      };
+    }
+    {
       name = "levn___levn_0.3.0.tgz";
       path = fetchurl {
         name = "levn___levn_0.3.0.tgz";
@@ -7514,11 +7634,11 @@
       };
     }
     {
-      name = "lightercollective___lightercollective_0.1.0.tgz";
+      name = "lightercollective___lightercollective_0.3.0.tgz";
       path = fetchurl {
-        name = "lightercollective___lightercollective_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/lightercollective/-/lightercollective-0.1.0.tgz";
-        sha1 = "70df102c530dcb8d0ccabfe6175a8d00d5f61300";
+        name = "lightercollective___lightercollective_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/lightercollective/-/lightercollective-0.3.0.tgz";
+        sha1 = "1f07638642ec645d70bdb69ab2777676f35a28f0";
       };
     }
     {
@@ -7570,6 +7690,14 @@
       };
     }
     {
+      name = "loader_utils___loader_utils_1.4.0.tgz";
+      path = fetchurl {
+        name = "loader_utils___loader_utils_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz";
+        sha1 = "c579b5e34cb34b1a74edc6c1fb36bfa371d5a613";
+      };
+    }
+    {
       name = "locate_path___locate_path_2.0.0.tgz";
       path = fetchurl {
         name = "locate_path___locate_path_2.0.0.tgz";
@@ -7730,11 +7858,11 @@
       };
     }
     {
-      name = "loglevel___loglevel_1.6.4.tgz";
+      name = "loglevel___loglevel_1.6.7.tgz";
       path = fetchurl {
-        name = "loglevel___loglevel_1.6.4.tgz";
-        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.4.tgz";
-        sha1 = "f408f4f006db8354d0577dcf6d33485b3cb90d56";
+        name = "loglevel___loglevel_1.6.7.tgz";
+        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.7.tgz";
+        sha1 = "b3e034233188c68b889f5b862415306f565e2c56";
       };
     }
     {
@@ -8074,11 +8202,11 @@
       };
     }
     {
-      name = "mermaid___mermaid_8.4.5.tgz";
+      name = "mermaid___mermaid_8.4.8.tgz";
       path = fetchurl {
-        name = "mermaid___mermaid_8.4.5.tgz";
-        url  = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.4.5.tgz";
-        sha1 = "48d5722cbc72be2ad01002795835d7ca1b48e000";
+        name = "mermaid___mermaid_8.4.8.tgz";
+        url  = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.4.8.tgz";
+        sha1 = "8adcfdbc505d6bca52df167cff690427c9727b60";
       };
     }
     {
@@ -8274,6 +8402,14 @@
       };
     }
     {
+      name = "mitt___mitt_1.2.0.tgz";
+      path = fetchurl {
+        name = "mitt___mitt_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/mitt/-/mitt-1.2.0.tgz";
+        sha1 = "cb24e6569c806e31bd4e3995787fe38a04fdf90d";
+      };
+    }
+    {
       name = "mixin_deep___mixin_deep_1.3.2.tgz";
       path = fetchurl {
         name = "mixin_deep___mixin_deep_1.3.2.tgz";
@@ -8458,11 +8594,11 @@
       };
     }
     {
-      name = "node_forge___node_forge_0.8.2.tgz";
+      name = "node_forge___node_forge_0.9.0.tgz";
       path = fetchurl {
-        name = "node_forge___node_forge_0.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.8.2.tgz";
-        sha1 = "b4bcc59fb12ce77a8825fc6a783dfe3182499c5a";
+        name = "node_forge___node_forge_0.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz";
+        sha1 = "d624050edbb44874adca12bb9a52ec63cb782579";
       };
     }
     {
@@ -8514,11 +8650,11 @@
       };
     }
     {
-      name = "node_releases___node_releases_1.1.25.tgz";
+      name = "node_releases___node_releases_1.1.50.tgz";
       path = fetchurl {
-        name = "node_releases___node_releases_1.1.25.tgz";
-        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.25.tgz";
-        sha1 = "0c2d7dbc7fed30fbe02a9ee3007b8c90bf0133d3";
+        name = "node_releases___node_releases_1.1.50.tgz";
+        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.50.tgz";
+        sha1 = "803c40d2c45db172d0410e4efec83aa8c6ad0592";
       };
     }
     {
@@ -9402,11 +9538,11 @@
       };
     }
     {
-      name = "popper.js___popper.js_1.16.0.tgz";
+      name = "popper.js___popper.js_1.16.1.tgz";
       path = fetchurl {
-        name = "popper.js___popper.js_1.16.0.tgz";
-        url  = "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.0.tgz";
-        sha1 = "2e1816bcbbaa518ea6c2e15a466f4cb9c6e2fbb3";
+        name = "popper.js___popper.js_1.16.1.tgz";
+        url  = "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz";
+        sha1 = "2a223cb3dc7b6213d740e40372be40de43e65b1b";
       };
     }
     {
@@ -9418,11 +9554,11 @@
       };
     }
     {
-      name = "portfinder___portfinder_1.0.24.tgz";
+      name = "portfinder___portfinder_1.0.25.tgz";
       path = fetchurl {
-        name = "portfinder___portfinder_1.0.24.tgz";
-        url  = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.24.tgz";
-        sha1 = "11efbc6865f12f37624b6531ead1d809ed965cfa";
+        name = "portfinder___portfinder_1.0.25.tgz";
+        url  = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz";
+        sha1 = "254fd337ffba869f4b9d37edc298059cb4d35eca";
       };
     }
     {
@@ -9474,35 +9610,35 @@
       };
     }
     {
-      name = "postcss_modules_extract_imports___postcss_modules_extract_imports_1.2.1.tgz";
+      name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz";
       path = fetchurl {
-        name = "postcss_modules_extract_imports___postcss_modules_extract_imports_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz";
-        sha1 = "dc87e34148ec7eab5f791f7cd5849833375b741a";
+        name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz";
+        sha1 = "818719a1ae1da325f9832446b01136eeb493cd7e";
       };
     }
     {
-      name = "postcss_modules_local_by_default___postcss_modules_local_by_default_1.2.0.tgz";
+      name = "postcss_modules_local_by_default___postcss_modules_local_by_default_2.0.6.tgz";
       path = fetchurl {
-        name = "postcss_modules_local_by_default___postcss_modules_local_by_default_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz";
-        sha1 = "f7d80c398c5a393fa7964466bd19500a7d61c069";
+        name = "postcss_modules_local_by_default___postcss_modules_local_by_default_2.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz";
+        sha1 = "dd9953f6dd476b5fd1ef2d8830c8929760b56e63";
       };
     }
     {
-      name = "postcss_modules_scope___postcss_modules_scope_1.1.0.tgz";
+      name = "postcss_modules_scope___postcss_modules_scope_2.2.0.tgz";
       path = fetchurl {
-        name = "postcss_modules_scope___postcss_modules_scope_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz";
-        sha1 = "d6ea64994c79f97b62a72b426fbe6056a194bb90";
+        name = "postcss_modules_scope___postcss_modules_scope_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz";
+        sha1 = "385cae013cc7743f5a7d7602d1073a89eaae62ee";
       };
     }
     {
-      name = "postcss_modules_values___postcss_modules_values_1.3.0.tgz";
+      name = "postcss_modules_values___postcss_modules_values_2.0.0.tgz";
       path = fetchurl {
-        name = "postcss_modules_values___postcss_modules_values_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz";
-        sha1 = "ecffa9d7e192518389f42ad0e83f72aec456ea20";
+        name = "postcss_modules_values___postcss_modules_values_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz";
+        sha1 = "479b46dc0c5ca3dc7fa5270851836b9ec7152f64";
       };
     }
     {
@@ -9594,19 +9730,19 @@
       };
     }
     {
-      name = "postcss___postcss_6.0.23.tgz";
+      name = "postcss___postcss_7.0.27.tgz";
       path = fetchurl {
-        name = "postcss___postcss_6.0.23.tgz";
-        url  = "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz";
-        sha1 = "61c82cc328ac60e677645f979054eb98bc0e3324";
+        name = "postcss___postcss_7.0.27.tgz";
+        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.27.tgz";
+        sha1 = "cc67cdc6b0daa375105b7c424a85567345fc54d9";
       };
     }
     {
-      name = "postcss___postcss_7.0.21.tgz";
+      name = "postcss___postcss_7.0.30.tgz";
       path = fetchurl {
-        name = "postcss___postcss_7.0.21.tgz";
-        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz";
-        sha1 = "06bb07824c19c2021c5d056d5b10c35b989f7e17";
+        name = "postcss___postcss_7.0.30.tgz";
+        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.30.tgz";
+        sha1 = "cc9378beffe46a02cbc4506a0477d05fcea9a8e2";
       };
     }
     {
@@ -10034,11 +10170,11 @@
       };
     }
     {
-      name = "raw_loader___raw_loader_3.1.0.tgz";
+      name = "raw_loader___raw_loader_4.0.0.tgz";
       path = fetchurl {
-        name = "raw_loader___raw_loader_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/raw-loader/-/raw-loader-3.1.0.tgz";
-        sha1 = "5e9d399a5a222cc0de18f42c3bc5e49677532b3f";
+        name = "raw_loader___raw_loader_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.0.tgz";
+        sha1 = "d639c40fb9d72b5c7f8abc1fb2ddb25b29d3d540";
       };
     }
     {
@@ -10226,14 +10362,6 @@
       };
     }
     {
-      name = "regexpu_core___regexpu_core_1.0.0.tgz";
-      path = fetchurl {
-        name = "regexpu_core___regexpu_core_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz";
-        sha1 = "86a763f58ee4d7c2f6b102e4764050de7ed90c6b";
-      };
-    }
-    {
       name = "regexpu_core___regexpu_core_4.6.0.tgz";
       path = fetchurl {
         name = "regexpu_core___regexpu_core_4.6.0.tgz";
@@ -10258,14 +10386,6 @@
       };
     }
     {
-      name = "regjsgen___regjsgen_0.2.0.tgz";
-      path = fetchurl {
-        name = "regjsgen___regjsgen_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz";
-        sha1 = "6c016adeac554f75823fe37ac05b92d5a4edb1f7";
-      };
-    }
-    {
       name = "regjsgen___regjsgen_0.5.0.tgz";
       path = fetchurl {
         name = "regjsgen___regjsgen_0.5.0.tgz";
@@ -10274,14 +10394,6 @@
       };
     }
     {
-      name = "regjsparser___regjsparser_0.1.5.tgz";
-      path = fetchurl {
-        name = "regjsparser___regjsparser_0.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz";
-        sha1 = "7ee8f84dc6fa792d3fd0ae228d24bd949ead205c";
-      };
-    }
-    {
       name = "regjsparser___regjsparser_0.6.0.tgz";
       path = fetchurl {
         name = "regjsparser___regjsparser_0.6.0.tgz";
@@ -10418,14 +10530,6 @@
       };
     }
     {
-      name = "requireindex___requireindex_1.1.0.tgz";
-      path = fetchurl {
-        name = "requireindex___requireindex_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/requireindex/-/requireindex-1.1.0.tgz";
-        sha1 = "e5404b81557ef75db6e49c5a72004893fe03e162";
-      };
-    }
-    {
       name = "requires_port___requires_port_1.0.0.tgz";
       path = fetchurl {
         name = "requires_port___requires_port_1.0.0.tgz";
@@ -10650,11 +10754,11 @@
       };
     }
     {
-      name = "sanitize_html___sanitize_html_1.20.1.tgz";
+      name = "sanitize_html___sanitize_html_1.22.0.tgz";
       path = fetchurl {
-        name = "sanitize_html___sanitize_html_1.20.1.tgz";
-        url  = "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.20.1.tgz";
-        sha1 = "f6effdf55dd398807171215a62bfc21811bacf85";
+        name = "sanitize_html___sanitize_html_1.22.0.tgz";
+        url  = "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.22.0.tgz";
+        sha1 = "9df779c53cf5755adb2322943c21c1c1dffca7bf";
       };
     }
     {
@@ -10698,11 +10802,11 @@
       };
     }
     {
-      name = "schema_utils___schema_utils_2.6.1.tgz";
+      name = "schema_utils___schema_utils_2.6.4.tgz";
       path = fetchurl {
-        name = "schema_utils___schema_utils_2.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.1.tgz";
-        sha1 = "eb78f0b945c7bcfa2082b3565e8db3548011dc4f";
+        name = "schema_utils___schema_utils_2.6.4.tgz";
+        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.4.tgz";
+        sha1 = "a27efbf6e4e78689d91872ee3ccfa57d7bdd0f53";
       };
     }
     {
@@ -10746,11 +10850,11 @@
       };
     }
     {
-      name = "selfsigned___selfsigned_1.10.6.tgz";
+      name = "selfsigned___selfsigned_1.10.7.tgz";
       path = fetchurl {
-        name = "selfsigned___selfsigned_1.10.6.tgz";
-        url  = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.6.tgz";
-        sha1 = "7b3cd37ed9c2034261a173af1a1aae27d8169b67";
+        name = "selfsigned___selfsigned_1.10.7.tgz";
+        url  = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz";
+        sha1 = "da5819fd049d5574f28e88a9bcc6dbc6e6f3906b";
       };
     }
     {
@@ -10770,6 +10874,14 @@
       };
     }
     {
+      name = "semver___semver_7.0.0.tgz";
+      path = fetchurl {
+        name = "semver___semver_7.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz";
+        sha1 = "5f3ca35761e47e05b206c6daff2cf814f0316b8e";
+      };
+    }
+    {
       name = "semver___semver_6.3.0.tgz";
       path = fetchurl {
         name = "semver___semver_6.3.0.tgz";
@@ -10962,11 +11074,11 @@
       };
     }
     {
-      name = "smooshpack___smooshpack_0.0.54.tgz";
+      name = "smooshpack___smooshpack_0.0.62.tgz";
       path = fetchurl {
-        name = "smooshpack___smooshpack_0.0.54.tgz";
-        url  = "https://registry.yarnpkg.com/smooshpack/-/smooshpack-0.0.54.tgz";
-        sha1 = "9044358b85052d348b801f385678c8a0c76f2bb6";
+        name = "smooshpack___smooshpack_0.0.62.tgz";
+        url  = "https://registry.yarnpkg.com/smooshpack/-/smooshpack-0.0.62.tgz";
+        sha1 = "cb31b9f808f73de3146b050f84d044eb353b5503";
       };
     }
     {
@@ -11042,11 +11154,11 @@
       };
     }
     {
-      name = "sortablejs___sortablejs_1.10.0.tgz";
+      name = "sortablejs___sortablejs_1.10.2.tgz";
       path = fetchurl {
-        name = "sortablejs___sortablejs_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.10.0.tgz";
-        sha1 = "0ebc054acff2486569194a2f975b2b145dd5e7d6";
+        name = "sortablejs___sortablejs_1.10.2.tgz";
+        url  = "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.10.2.tgz";
+        sha1 = "6e40364d913f98b85a14f6678f92b5c1221f5290";
       };
     }
     {
@@ -11194,11 +11306,11 @@
       };
     }
     {
-      name = "srcset___srcset_1.0.0.tgz";
+      name = "srcset___srcset_2.0.1.tgz";
       path = fetchurl {
-        name = "srcset___srcset_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/srcset/-/srcset-1.0.0.tgz";
-        sha1 = "a5669de12b42f3b1d5e83ed03c71046fc48f41ef";
+        name = "srcset___srcset_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/srcset/-/srcset-2.0.1.tgz";
+        sha1 = "8f842d357487eb797f413d9c309de7a5149df5ac";
       };
     }
     {
@@ -11282,11 +11394,11 @@
       };
     }
     {
-      name = "stickyfilljs___stickyfilljs_2.0.5.tgz";
+      name = "stickyfilljs___stickyfilljs_2.1.0.tgz";
       path = fetchurl {
-        name = "stickyfilljs___stickyfilljs_2.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/stickyfilljs/-/stickyfilljs-2.0.5.tgz";
-        sha1 = "d229e372d2199ddf5d283bbe34ac1f7d2529c2fc";
+        name = "stickyfilljs___stickyfilljs_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/stickyfilljs/-/stickyfilljs-2.1.0.tgz";
+        sha1 = "46dabb599d8275d185bdb97db597f86a2e3afa7b";
       };
     }
     {
@@ -11498,11 +11610,11 @@
       };
     }
     {
-      name = "style_loader___style_loader_1.0.0.tgz";
+      name = "style_loader___style_loader_1.1.3.tgz";
       path = fetchurl {
-        name = "style_loader___style_loader_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/style-loader/-/style-loader-1.0.0.tgz";
-        sha1 = "1d5296f9165e8e2c85d24eee0b7caf9ec8ca1f82";
+        name = "style_loader___style_loader_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/style-loader/-/style-loader-1.1.3.tgz";
+        sha1 = "9e826e69c683c4d9bf9db924f85e9abb30d5e200";
       };
     }
     {
@@ -11570,6 +11682,14 @@
       };
     }
     {
+      name = "supports_color___supports_color_7.1.0.tgz";
+      path = fetchurl {
+        name = "supports_color___supports_color_7.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz";
+        sha1 = "68e32591df73e25ad1c4b49108a2ec507962bfd1";
+      };
+    }
+    {
       name = "svg_tags___svg_tags_1.0.0.tgz";
       path = fetchurl {
         name = "svg_tags___svg_tags_1.0.0.tgz";
@@ -11586,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";
       };
     }
     {
@@ -11738,11 +11858,11 @@
       };
     }
     {
-      name = "throttle_debounce___throttle_debounce_2.0.1.tgz";
+      name = "throttle_debounce___throttle_debounce_2.1.0.tgz";
       path = fetchurl {
-        name = "throttle_debounce___throttle_debounce_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.0.1.tgz";
-        sha1 = "7307ddd6cd9acadb349132fbf6c18d78c88a5e62";
+        name = "throttle_debounce___throttle_debounce_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.1.0.tgz";
+        sha1 = "257e648f0a56bd9e54fe0f132c4ab8611df4e1d5";
       };
     }
     {
@@ -11770,11 +11890,11 @@
       };
     }
     {
-      name = "timeago.js___timeago.js_4.0.1.tgz";
+      name = "timeago.js___timeago.js_4.0.2.tgz";
       path = fetchurl {
-        name = "timeago.js___timeago.js_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/timeago.js/-/timeago.js-4.0.1.tgz";
-        sha1 = "4be4aa19565ceaeb0da31fe14e01ce6ca4742da6";
+        name = "timeago.js___timeago.js_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/timeago.js/-/timeago.js-4.0.2.tgz";
+        sha1 = "724e8c8833e3490676c7bb0a75f5daf20e558028";
       };
     }
     {
@@ -11954,6 +12074,14 @@
       };
     }
     {
+      name = "tributejs___tributejs_4.1.3.tgz";
+      path = fetchurl {
+        name = "tributejs___tributejs_4.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/tributejs/-/tributejs-4.1.3.tgz";
+        sha1 = "2e1be7d9a1e403ed4c394f91d859812267e4691c";
+      };
+    }
+    {
       name = "trim_newlines___trim_newlines_1.0.0.tgz";
       path = fetchurl {
         name = "trim_newlines___trim_newlines_1.0.0.tgz";
@@ -12050,11 +12178,19 @@
       };
     }
     {
-      name = "tslib___tslib_1.9.3.tgz";
+      name = "tslib___tslib_1.11.1.tgz";
       path = fetchurl {
-        name = "tslib___tslib_1.9.3.tgz";
-        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz";
-        sha1 = "d7e4dd79245d85428c4d7e4822a79917954ca286";
+        name = "tslib___tslib_1.11.1.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz";
+        sha1 = "eb15d128827fbee2841549e171f45ed338ac7e35";
+      };
+    }
+    {
+      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";
       };
     }
     {
@@ -12178,14 +12314,6 @@
       };
     }
     {
-      name = "underscore___underscore_1.9.0.tgz";
-      path = fetchurl {
-        name = "underscore___underscore_1.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/underscore/-/underscore-1.9.0.tgz";
-        sha1 = "31dbb314cfcc88f169cd3692d9149d81a00a73e4";
-      };
-    }
-    {
       name = "underscore___underscore_1.8.3.tgz";
       path = fetchurl {
         name = "underscore___underscore_1.8.3.tgz";
@@ -12194,6 +12322,14 @@
       };
     }
     {
+      name = "unfetch___unfetch_4.1.0.tgz";
+      path = fetchurl {
+        name = "unfetch___unfetch_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/unfetch/-/unfetch-4.1.0.tgz";
+        sha1 = "6ec2dd0de887e58a4dee83a050ded80ffc4137db";
+      };
+    }
+    {
       name = "unherit___unherit_1.1.1.tgz";
       path = fetchurl {
         name = "unherit___unherit_1.1.1.tgz";
@@ -12402,11 +12538,11 @@
       };
     }
     {
-      name = "url_loader___url_loader_2.1.0.tgz";
+      name = "url_loader___url_loader_3.0.0.tgz";
       path = fetchurl {
-        name = "url_loader___url_loader_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/url-loader/-/url-loader-2.1.0.tgz";
-        sha1 = "bcc1ecabbd197e913eca23f5e0378e24b4412961";
+        name = "url_loader___url_loader_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/url-loader/-/url-loader-3.0.0.tgz";
+        sha1 = "9f1f11b371acf6e51ed15a50db635e02eec18368";
       };
     }
     {
@@ -12522,14 +12658,6 @@
       };
     }
     {
-      name = "v8_compile_cache___v8_compile_cache_2.1.0.tgz";
-      path = fetchurl {
-        name = "v8_compile_cache___v8_compile_cache_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz";
-        sha1 = "e14de37b31a6d194f5690d67efc4e7f6fc6ab30e";
-      };
-    }
-    {
       name = "validate_npm_package_license___validate_npm_package_license_3.0.1.tgz";
       path = fetchurl {
         name = "validate_npm_package_license___validate_npm_package_license_3.0.1.tgz";
@@ -12602,11 +12730,11 @@
       };
     }
     {
-      name = "vue_apollo___vue_apollo_3.0.0_beta.28.tgz";
+      name = "vue_apollo___vue_apollo_3.0.3.tgz";
       path = fetchurl {
-        name = "vue_apollo___vue_apollo_3.0.0_beta.28.tgz";
-        url  = "https://registry.yarnpkg.com/vue-apollo/-/vue-apollo-3.0.0-beta.28.tgz";
-        sha1 = "be6a3a1504be2096cbfb23996537e2fc95c8c239";
+        name = "vue_apollo___vue_apollo_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/vue-apollo/-/vue-apollo-3.0.3.tgz";
+        sha1 = "7f29558df76eec0f03251847eef153816a261827";
       };
     }
     {
@@ -12642,11 +12770,11 @@
       };
     }
     {
-      name = "vue_loader___vue_loader_15.8.3.tgz";
+      name = "vue_loader___vue_loader_15.9.0.tgz";
       path = fetchurl {
-        name = "vue_loader___vue_loader_15.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.8.3.tgz";
-        sha1 = "857cb9e30eb5fc25e66db48dce7e4f768602a23c";
+        name = "vue_loader___vue_loader_15.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.0.tgz";
+        sha1 = "5d4b0378a4606188fc83e587ed23c94bc3a10998";
       };
     }
     {
@@ -12658,6 +12786,14 @@
       };
     }
     {
+      name = "vue_runtime_helpers___vue_runtime_helpers_1.1.2.tgz";
+      path = fetchurl {
+        name = "vue_runtime_helpers___vue_runtime_helpers_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/vue-runtime-helpers/-/vue-runtime-helpers-1.1.2.tgz";
+        sha1 = "446b7b820888ab0c5264d2c3a32468e72e4100f3";
+      };
+    }
+    {
       name = "vue_style_loader___vue_style_loader_4.1.0.tgz";
       path = fetchurl {
         name = "vue_style_loader___vue_style_loader_4.1.0.tgz";
@@ -12762,35 +12898,35 @@
       };
     }
     {
-      name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.5.1.tgz";
+      name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.6.0.tgz";
       path = fetchurl {
-        name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.5.1.tgz";
-        sha1 = "84aabb1547178d842ebb4ccc7324084b6c3b0ea9";
+        name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.0.tgz";
+        sha1 = "39b3a8f829ca044682bc6f9e011c95deb554aefd";
       };
     }
     {
-      name = "webpack_cli___webpack_cli_3.3.9.tgz";
+      name = "webpack_cli___webpack_cli_3.3.11.tgz";
       path = fetchurl {
-        name = "webpack_cli___webpack_cli_3.3.9.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.9.tgz";
-        sha1 = "79c27e71f94b7fe324d594ab64a8e396b9daa91a";
+        name = "webpack_cli___webpack_cli_3.3.11.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz";
+        sha1 = "3bf21889bf597b5d82c38f215135a411edfdc631";
       };
     }
     {
-      name = "webpack_dev_middleware___webpack_dev_middleware_3.7.1.tgz";
+      name = "webpack_dev_middleware___webpack_dev_middleware_3.7.2.tgz";
       path = fetchurl {
-        name = "webpack_dev_middleware___webpack_dev_middleware_3.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.1.tgz";
-        sha1 = "1167aea02afa034489869b8368fe9fed1aea7d09";
+        name = "webpack_dev_middleware___webpack_dev_middleware_3.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz";
+        sha1 = "0019c3db716e3fa5cecbf64f2ab88a74bab331f3";
       };
     }
     {
-      name = "webpack_dev_server___webpack_dev_server_3.8.1.tgz";
+      name = "webpack_dev_server___webpack_dev_server_3.10.3.tgz";
       path = fetchurl {
-        name = "webpack_dev_server___webpack_dev_server_3.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.8.1.tgz";
-        sha1 = "485b64c4aadc23f601e72114b40c1b1fea31d9f1";
+        name = "webpack_dev_server___webpack_dev_server_3.10.3.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz";
+        sha1 = "f35945036813e57ef582c2420ef7b470e14d3af0";
       };
     }
     {
@@ -12810,19 +12946,19 @@
       };
     }
     {
-      name = "webpack_stats_plugin___webpack_stats_plugin_0.3.0.tgz";
+      name = "webpack_stats_plugin___webpack_stats_plugin_0.3.1.tgz";
       path = fetchurl {
-        name = "webpack_stats_plugin___webpack_stats_plugin_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-stats-plugin/-/webpack-stats-plugin-0.3.0.tgz";
-        sha1 = "6952f63feb9a5393a328d774fb3eccac78d2f51b";
+        name = "webpack_stats_plugin___webpack_stats_plugin_0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-stats-plugin/-/webpack-stats-plugin-0.3.1.tgz";
+        sha1 = "1103c39a305a4e6ba15d5078db84bc0b35447417";
       };
     }
     {
-      name = "webpack___webpack_4.41.5.tgz";
+      name = "webpack___webpack_4.42.0.tgz";
       path = fetchurl {
-        name = "webpack___webpack_4.41.5.tgz";
-        url  = "https://registry.yarnpkg.com/webpack/-/webpack-4.41.5.tgz";
-        sha1 = "3210f1886bce5310e62bb97204d18c263341b77c";
+        name = "webpack___webpack_4.42.0.tgz";
+        url  = "https://registry.yarnpkg.com/webpack/-/webpack-4.42.0.tgz";
+        sha1 = "b901635dd6179391d90740a63c93f76f39883eb8";
       };
     }
     {
@@ -13082,14 +13218,6 @@
       };
     }
     {
-      name = "xmlhttprequest___xmlhttprequest_1.8.0.tgz";
-      path = fetchurl {
-        name = "xmlhttprequest___xmlhttprequest_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz";
-        sha1 = "67fe075c5c24fef39f9d65f5f7b7fe75171968fc";
-      };
-    }
-    {
       name = "xtend___xtend_4.0.2.tgz";
       path = fetchurl {
         name = "xtend___xtend_4.0.2.tgz";
@@ -13098,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 ffbd9879135..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.3.1";
+  version = "5.4.2";
 
   src = fetchurl {
     url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
-    sha256 = "1nbjpzjrzgql4hrvslpxwbcgn885ikq6ba1yb4w6p78rw9nzkhgp";
+    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/reposurgeon/default.nix b/pkgs/applications/version-management/reposurgeon/default.nix
index fb5b72be4eb..f52fd30d839 100644
--- a/pkgs/applications/version-management/reposurgeon/default.nix
+++ b/pkgs/applications/version-management/reposurgeon/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, makeWrapper, python27Packages, git
 , docbook_xml_dtd_412, docbook_xsl, asciidoc, xmlto, pypy
-, bazaar ? null, cvs ? null, darcs ? null, fossil ? null
+, breezy ? null, cvs ? null, darcs ? null, fossil ? null
 , mercurial ? null, monotone ? null, rcs ? null
 , subversion ? null, cvs_fast_export ? null }:
 
@@ -42,7 +42,7 @@ in mkDerivation rec {
     let
       binpath = makeBinPath (
         filter (x: x != null)
-        [ out git bazaar cvs darcs fossil mercurial
+        [ out git breezy cvs darcs fossil mercurial
           monotone rcs src subversion cvs_fast_export ]
       );
       pythonpath = makeSearchPathOutput "lib" python.sitePackages (
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 99907993104..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";
 
-    modSha256 = "10is7siscids9qz6jh9m1i17749dafqqkg4b3sslmxaxyn16yj97";
+    vendorSha256 = "0prdlihcy5yz760llwyby747yy2981dn3gy401a48df7ndlfj6lp";
+
+    doCheck = false;
   };
 in buildPythonPackage rec {
   inherit version;
@@ -20,7 +21,7 @@ in buildPythonPackage rec {
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/builds.sr.ht";
     rev = version;
-    sha256 = "uFoS9xaVXsZZf4neZQcUyTqKo2RshOQeifD27kaKSVE=";
+    sha256 = "0la9i93fxxphi4gf913ccjiqlfn92h3nbpl9gxcwcplm2vvi4nmq";
   };
 
   patches = [
diff --git a/pkgs/applications/version-management/sourcehut/core.nix b/pkgs/applications/version-management/sourcehut/core.nix
index 76a81ce8968..0023eb407b3 100644
--- a/pkgs/applications/version-management/sourcehut/core.nix
+++ b/pkgs/applications/version-management/sourcehut/core.nix
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/core.sr.ht";
     rev = version;
-    sha256 = "5jc6MtG/cBry05Sq51UAFzSBvKKkdNTA67UIDvJt9uU=";
+    sha256 = "1rgndpr0w25mxg0d8x54lay82d0p01aygallsgr1lw5zs4r3ldz6";
   };
 
   node_modules = fetchNodeModules {
diff --git a/pkgs/applications/version-management/sourcehut/dispatch.nix b/pkgs/applications/version-management/sourcehut/dispatch.nix
index 52a49d4a084..1531a6e69b5 100644
--- a/pkgs/applications/version-management/sourcehut/dispatch.nix
+++ b/pkgs/applications/version-management/sourcehut/dispatch.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/dispatch.sr.ht";
     rev = version;
-    sha256 = "eJ+oHs9m74Q8V6fUBLOA1ksUiwdaR1/Bxlf3jcexdkA=";
+    sha256 = "0h3nn73qvxspqv0myiss0y5i8jynh2rh9m57awy89vv6rwgai7vq";
   };
 
   patches = [
diff --git a/pkgs/applications/version-management/sourcehut/git.nix b/pkgs/applications/version-management/sourcehut/git.nix
index de4656e5881..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";
 
-    modSha256 = "0lxxxzh39bviab71kfsqqr217338yxn5l2zkak55r6qqs6iz4ccv";
+    vendorSha256 = "1zvbqn4r940mibn4h1cqz94gbr476scm281ps361n0rfqlimw8g5";
+
+    doCheck = false;
   };
 
   buildDispatcher = src: buildGoModule {
     inherit src version;
     pname = "gitsrht-dispatcher";
-    goPackagePath = "git.sr.ht/~sircmpwn/git.sr.ht/gitsrht-dispatch";
 
-    modSha256 = "1lmgmlin460g09dph2hw6yz25d4agqwjhrjv0qqsis7df9qpf3i1";
+    vendorSha256 = "1lzkf13m54pq0gnn3bcxc80nfg76hgck4l8q8jpaicrsiwgcyrd9";
+
+    doCheck = false;
   };
 
   buildKeys = src: buildGoModule {
     inherit src version;
     pname = "gitsrht-keys";
-    goPackagePath = "git.sr.ht/~sircmpwn/git.sr.ht/gitsrht-keys";
 
-    modSha256 = "1pfcw9n63zhlxm9kd3bxa2zqmzd8mgl7yl2ck055j56v3k929w3f";
+    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";
 
-    modSha256 = "0p8qd6hpgmnlfqk5vw6l41dqs7qjhf6xijzj5iv6wv1cf362b4wp";
+    vendorSha256 = "1rmv3p60g6w4h4v9wx99jkyx0q02snslyjrjy9n1flardjs01b63";
+
+    doCheck = false;
   };
 in buildPythonPackage rec {
   inherit version;
@@ -44,7 +48,7 @@ in buildPythonPackage rec {
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/git.sr.ht";
     rev = version;
-    sha256 = "dmcTee3hp6ZkwwunG4ouEVmCxQ1a9LfQ7oWpHxnKumc=";
+    sha256 = "0rxsr8cizac5xv8bgx2s1p2q4n8i5s51p9qbqdjad9z1xmwi6rvn";
   };
 
   patches = [
diff --git a/pkgs/applications/version-management/sourcehut/hg.nix b/pkgs/applications/version-management/sourcehut/hg.nix
index ee6dd270759..bddc065eacf 100644
--- a/pkgs/applications/version-management/sourcehut/hg.nix
+++ b/pkgs/applications/version-management/sourcehut/hg.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
   src = fetchhg {
     url = "https://hg.sr.ht/~sircmpwn/hg.sr.ht";
     rev = version;
-    sha256 = "kX0KZSEzYQ/hxL2vKh+mpaRuG16qbBKN2Xwp+e9pTxs=";
+    sha256 = "06sgd7pzjabwv66i4v5abqdnx955lqgjmbxxqkhhyq9k45jhlzci";
   };
 
   patches = [
diff --git a/pkgs/applications/version-management/sourcehut/lists.nix b/pkgs/applications/version-management/sourcehut/lists.nix
index 1d915e915b1..b1446bbebc8 100644
--- a/pkgs/applications/version-management/sourcehut/lists.nix
+++ b/pkgs/applications/version-management/sourcehut/lists.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/lists.sr.ht";
     rev = version;
-    sha256 = "Gmt6ttupyhZhpyH/IASEt8SZGrlQmEEtV5bE11yIiXQ=";
+    sha256 = "0x49i1fdgi4nawnl362hp4d9ki5phh221zr1lxhidjm9vfv7lsqs";
   };
 
   patches = [
diff --git a/pkgs/applications/version-management/sourcehut/man.nix b/pkgs/applications/version-management/sourcehut/man.nix
index a150b774f61..9b8e5901d9e 100644
--- a/pkgs/applications/version-management/sourcehut/man.nix
+++ b/pkgs/applications/version-management/sourcehut/man.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/man.sr.ht";
     rev = version;
-    sha256 = "CKXWVXr2P1D6Nz9/S5rOkuOi9piy66RreQv2RQ0KSfs=";
+    sha256 = "1ys9186lbxhbg5ms9sxjk3va5qwjrsd4nzrz6zx50gzng9axd988";
   };
 
   patches = [
diff --git a/pkgs/applications/version-management/sourcehut/meta.nix b/pkgs/applications/version-management/sourcehut/meta.nix
index 5b75b5818d7..e2d155e1a06 100644
--- a/pkgs/applications/version-management/sourcehut/meta.nix
+++ b/pkgs/applications/version-management/sourcehut/meta.nix
@@ -10,7 +10,7 @@ buildPythonPackage rec {
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/meta.sr.ht";
     rev = version;
-    sha256 = "p7WgnfOsX09YxJJclHwdIky/jYkTOxibbYmXwcmE2S4=";
+    sha256 = "0bnrhk4w35w9dndihfqki66vyk123my98p4jqic4ypxcyffs1dd7";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
diff --git a/pkgs/applications/version-management/sourcehut/paste.nix b/pkgs/applications/version-management/sourcehut/paste.nix
index e05dec5d6aa..26650156c5c 100644
--- a/pkgs/applications/version-management/sourcehut/paste.nix
+++ b/pkgs/applications/version-management/sourcehut/paste.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/paste.sr.ht";
     rev = version;
-    sha256 = "i1M4L5NG152zkIEFj2vDHa9lr5aE1ioToDVPpkIqemk=";
+    sha256 = "0sbs591ackrml09jmml4jspnbbqxqdmqy1c1j2rrvms6jcpkhlwb";
   };
 
   patches = [
diff --git a/pkgs/applications/version-management/sourcehut/scm.nix b/pkgs/applications/version-management/sourcehut/scm.nix
index e3210673cb7..788c90e4872 100644
--- a/pkgs/applications/version-management/sourcehut/scm.nix
+++ b/pkgs/applications/version-management/sourcehut/scm.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/scm.sr.ht";
     rev = version;
-    sha256 = "a0JIZcO/3op409t+jq4/fImuppuGqfGxBPgBh67DGHM=";
+    sha256 = "0wqqqfp8f0gq0jqz3ac6kfkax2bw7yp8wznvsdw8mpmzqdjlhhkb";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
diff --git a/pkgs/applications/version-management/sourcehut/todo.nix b/pkgs/applications/version-management/sourcehut/todo.nix
index 3a5bc2c105e..53cd8756ad3 100644
--- a/pkgs/applications/version-management/sourcehut/todo.nix
+++ b/pkgs/applications/version-management/sourcehut/todo.nix
@@ -10,7 +10,7 @@ buildPythonPackage rec {
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/todo.sr.ht";
     rev = version;
-    sha256 = "nlTf7KV6vjqqVEXZ6OOZ5dAj1iHTDPYj4DnAD2hGp5c=";
+    sha256 = "15x78rl0zh1rw0izc36k47b27l75k7iyina5ajm3mgkslpndym4y";
   };
 
   patches = [
diff --git a/pkgs/applications/version-management/sublime-merge/common.nix b/pkgs/applications/version-management/sublime-merge/common.nix
index 173333fb75c..ad540c46411 100644
--- a/pkgs/applications/version-management/sublime-merge/common.nix
+++ b/pkgs/applications/version-management/sublime-merge/common.nix
@@ -1,6 +1,6 @@
 { buildVersion, sha256, dev ? false }:
 
-{ fetchurl, stdenv, xorg, glib, glibcLocales, gtk3, cairo, pango, libredirect, makeWrapper, wrapGAppsHook
+{ fetchurl, stdenv, xorg, glib, libGL, glibcLocales, gtk3, cairo, pango, libredirect, makeWrapper, wrapGAppsHook
 , pkexecPath ? "/run/wrappers/bin/pkexec"
 , writeScript, common-updater-scripts, curl, gnugrep, coreutils
 }:
@@ -40,7 +40,7 @@ in let
       for binary in ${ builtins.concatStringsSep " " binaries }; do
         patchelf \
           --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-          --set-rpath ${libPath}:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"} \
+          --set-rpath ${libPath}:${libGL}/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"} \
           $binary
       done
 
@@ -67,6 +67,16 @@ in let
         --set NIX_REDIRECTS ${builtins.concatStringsSep ":" redirects} \
         --set LOCALE_ARCHIVE "${glibcLocales.out}/lib/locale/locale-archive" \
         "''${gappsWrapperArgs[@]}"
+
+      # We need to replace the ssh-askpass-sublime executable because the default one
+      # will not function properly, in order to work it needs to pass an argv[0] to
+      # the sublime_merge binary, and the built-in version will will try to call the
+      # sublime_merge wrapper script which cannot pass through the original argv[0] to
+      # the sublime_merge binary. Thankfully the ssh-askpass-sublime functionality is
+      # very simple and can be replaced with a simple wrapper script.
+      rm $out/ssh-askpass-sublime
+      makeWrapper $out/.${primaryBinary}-wrapped $out/ssh-askpass-sublime \
+        --argv0 "/ssh-askpass-sublime"
     '';
   };
 in stdenv.mkDerivation (rec {
diff --git a/pkgs/applications/version-management/sublime-merge/default.nix b/pkgs/applications/version-management/sublime-merge/default.nix
index 2734028866e..7a0c0d1f1ed 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 = "1116";
-    sha256 = "0cwvn47dv0sg8cp8i3njmp4p58c6wjv6g75g09igx25waysn9cx6";
+    buildVersion = "2020";
+    sha256 = "0r5qqappaiicc4srk08az2vx42m7b6a75yn2ji5pv4w4085hlrzp";
   } {};
 
   sublime-merge-dev = common {
-    buildVersion = "1115";
-    sha256 = "0dwgc9libqipwdgdc84maj1i3c8hbadz2318x1pibl6hbqy15bxl";
+    buildVersion = "2022";
+    sha256 = "0fhxz6nx24wbspn7vfli3pvfv6fdbd591m619pvivig3scpidj61";
     dev = true;
   } {};
 }
diff --git a/pkgs/applications/video/aegisub/default.nix b/pkgs/applications/video/aegisub/default.nix
index 123308babea..64c7dc20f35 100644
--- a/pkgs/applications/video/aegisub/default.nix
+++ b/pkgs/applications/video/aegisub/default.nix
@@ -12,7 +12,7 @@
 , libass
 , fftw
 , ffms
-, ffmpeg
+, ffmpeg_3
 , pkg-config
 , zlib
 , icu
@@ -85,7 +85,7 @@ stdenv.mkDerivation
     libass
     fftw
     ffms
-    ffmpeg
+    ffmpeg_3
     zlib
     icu
     boost
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/avxsynth/default.nix b/pkgs/applications/video/avxsynth/default.nix
index 2cccbae43d2..e818ef585c1 100644
--- a/pkgs/applications/video/avxsynth/default.nix
+++ b/pkgs/applications/video/avxsynth/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
-, cairo, ffmpeg, ffms, libjpeg, log4cpp, pango
+, cairo, ffmpeg_3, ffms, libjpeg, log4cpp, pango
 , avxeditSupport ? false, qt4 ? null
 }:
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
 
-  buildInputs = [ cairo ffmpeg ffms libjpeg log4cpp pango ]
+  buildInputs = [ cairo ffmpeg_3 ffms libjpeg log4cpp pango ]
     ++ optional avxeditSupport qt4;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/video/bombono/default.nix b/pkgs/applications/video/bombono/default.nix
index f9a82af2f79..2ae3722fff2 100644
--- a/pkgs/applications/video/bombono/default.nix
+++ b/pkgs/applications/video/bombono/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, wrapGAppsHook, gtk2, boost, gtkmm2, scons,
-mjpegtools, libdvdread, dvdauthor, gettext, dvdplusrwtools, libxmlxx, ffmpeg,
+mjpegtools, libdvdread, dvdauthor, gettext, dvdplusrwtools, libxmlxx, ffmpeg_3,
 enca, pkgconfig, fetchpatch }:
 
 let fetchPatchFromAur = {name, sha256}:
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gtk2 gtkmm2 mjpegtools libdvdread dvdauthor boost dvdplusrwtools
-    libxmlxx ffmpeg enca
+    libxmlxx ffmpeg_3 enca
     ];
 
   prefixKey = "PREFIX=";
diff --git a/pkgs/applications/video/catt/default.nix b/pkgs/applications/video/catt/default.nix
index b3df290bfb0..7f2b8551151 100644
--- a/pkgs/applications/video/catt/default.nix
+++ b/pkgs/applications/video/catt/default.nix
@@ -12,7 +12,7 @@ buildPythonApplication rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256:1vq1wg79b7855za6v6bsfgypm0v3b4wakap4rash45mhzbgjj0kq";
+    sha256 = "1vq1wg79b7855za6v6bsfgypm0v3b4wakap4rash45mhzbgjj0kq";
   };
 
   propagatedBuildInputs = [
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/clipgrab/default.nix b/pkgs/applications/video/clipgrab/default.nix
index 34e0d33bcbc..0e39ab05685 100644
--- a/pkgs/applications/video/clipgrab/default.nix
+++ b/pkgs/applications/video/clipgrab/default.nix
@@ -1,25 +1,25 @@
-{ stdenv, fetchurl, makeDesktopItem, ffmpeg
+{ stdenv, fetchurl, makeDesktopItem, ffmpeg_3
 , qmake, qttools, mkDerivation
 , qtbase, qtdeclarative, qtlocation, qtquickcontrols2, qtwebchannel, qtwebengine
 }:
 
 mkDerivation rec {
   pname = "clipgrab";
-  version = "3.8.11";
+  version = "3.8.13";
 
   src = fetchurl {
-    sha256 = "0jpfdmyzjasq4x1xvk7b1cmhhq6fz6ydvvbwz2wclph367x496xk";
+    sha256 = "0ryaha33m41y0xjrspa838qqr4iy2c8vbvhbb334qimpqn1hj3q5";
     # The .tar.bz2 "Download" link is a binary blob, the source is the .tar.gz!
     url = "https://download.clipgrab.org/${pname}-${version}.tar.gz";
   };
 
-  buildInputs = [ ffmpeg qtbase qtdeclarative qtlocation qtquickcontrols2 qtwebchannel qtwebengine ];
+  buildInputs = [ ffmpeg_3 qtbase qtdeclarative qtlocation qtquickcontrols2 qtwebchannel qtwebengine ];
   nativeBuildInputs = [ qmake qttools ];
 
-  postPatch = stdenv.lib.optionalString (ffmpeg != null) ''
+  postPatch = stdenv.lib.optionalString (ffmpeg_3 != null) ''
   substituteInPlace converter_ffmpeg.cpp \
-    --replace '"ffmpeg"' '"${ffmpeg.bin}/bin/ffmpeg"' \
-    --replace '"ffmpeg ' '"${ffmpeg.bin}/bin/ffmpeg '
+    --replace '"ffmpeg"' '"${ffmpeg_3.bin}/bin/ffmpeg"' \
+    --replace '"ffmpeg ' '"${ffmpeg_3.bin}/bin/ffmpeg '
   '';
 
   qmakeFlags = [ "clipgrab.pro" ];
diff --git a/pkgs/applications/video/devede/default.nix b/pkgs/applications/video/devede/default.nix
index 2ec2f68d128..9bb5518e80f 100644
--- a/pkgs/applications/video/devede/default.nix
+++ b/pkgs/applications/video/devede/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, python3Packages, ffmpeg, mplayer, vcdimager, cdrkit, dvdauthor
+{ stdenv, fetchFromGitHub, python3Packages, ffmpeg_3, mplayer, vcdimager, cdrkit, dvdauthor
 , gtk3, gettext, wrapGAppsHook, gdk-pixbuf, gobject-introspection }:
 
 let
@@ -30,11 +30,11 @@ in buildPythonApplication {
   ];
 
   buildInputs = [
-    ffmpeg
+    ffmpeg_3
   ];
 
   propagatedBuildInputs = [
-    gtk3 pygobject3 gdk-pixbuf dbus-python ffmpeg mplayer dvdauthor vcdimager cdrkit urllib3 setuptools
+    gtk3 pygobject3 gdk-pixbuf dbus-python ffmpeg_3 mplayer dvdauthor vcdimager cdrkit urllib3 setuptools
   ];
 
   postPatch = ''
diff --git a/pkgs/applications/video/dvd-slideshow/default.nix b/pkgs/applications/video/dvd-slideshow/default.nix
index f6e336240d3..e35d95d54d6 100644
--- a/pkgs/applications/video/dvd-slideshow/default.nix
+++ b/pkgs/applications/video/dvd-slideshow/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, lib, fetchurl, writeScript, cdrtools, dvdauthor, ffmpeg, imagemagick, lame, mjpegtools, sox, transcode, vorbis-tools, runtimeShell }:
+{ stdenv, lib, fetchurl, writeScript, cdrtools, dvdauthor, ffmpeg_3, imagemagick, lame, mjpegtools, sox, transcode, vorbis-tools, runtimeShell }:
 
 let
-  binPath = lib.makeBinPath [ cdrtools dvdauthor ffmpeg imagemagick lame mjpegtools sox transcode vorbis-tools ];
+  binPath = lib.makeBinPath [ cdrtools dvdauthor ffmpeg_3 imagemagick lame mjpegtools sox transcode vorbis-tools ];
 
   wrapper = writeScript "dvd-slideshow.sh" ''
       #!${runtimeShell}
diff --git a/pkgs/applications/video/dvdauthor/default.nix b/pkgs/applications/video/dvdauthor/default.nix
index 6be1d8a1633..af1fe24cbbf 100644
--- a/pkgs/applications/video/dvdauthor/default.nix
+++ b/pkgs/applications/video/dvdauthor/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, imagemagick, libdvdread, libxml2, freetype, fribidi, libpng, zlib, pkgconfig
 , flex, bison }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   name = "dvdauthor-0.7.1";
 
   src = fetchurl {
diff --git a/pkgs/applications/video/ffmpeg-normalize/default.nix b/pkgs/applications/video/ffmpeg-normalize/default.nix
index c2259ce8379..411ab9e6bc2 100644
--- a/pkgs/applications/video/ffmpeg-normalize/default.nix
+++ b/pkgs/applications/video/ffmpeg-normalize/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonApplication
 , fetchPypi
-, ffmpeg
+, ffmpeg_3
 , tqdm
 }:
 
@@ -14,7 +14,7 @@ buildPythonApplication rec {
     sha256 = "18dpck9grnr3wgbjvdh4mjlx0zfwcxpy4rnpmc39in0yk3w7li2x";
   };
 
-  propagatedBuildInputs = [ ffmpeg tqdm ];
+  propagatedBuildInputs = [ ffmpeg_3 tqdm ];
 
   checkPhase = ''
     $out/bin/ffmpeg-normalize --help > /dev/null
diff --git a/pkgs/applications/video/gnomecast/default.nix b/pkgs/applications/video/gnomecast/default.nix
index 3b7e8913c5d..3a3ca044bb8 100644
--- a/pkgs/applications/video/gnomecast/default.nix
+++ b/pkgs/applications/video/gnomecast/default.nix
@@ -1,4 +1,4 @@
-{ lib, python3Packages, gtk3, gobject-introspection, ffmpeg, wrapGAppsHook }:
+{ lib, python3Packages, gtk3, gobject-introspection, ffmpeg_3, wrapGAppsHook }:
 
 with python3Packages;
 buildPythonApplication rec {
@@ -17,7 +17,7 @@ buildPythonApplication rec {
   ];
 
   preFixup = ''
-    gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ ffmpeg ]})
+    gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ ffmpeg_3 ]})
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/video/handbrake/default.nix b/pkgs/applications/video/handbrake/default.nix
index 9b51746b14c..b56c26dff78 100644
--- a/pkgs/applications/video/handbrake/default.nix
+++ b/pkgs/applications/video/handbrake/default.nix
@@ -7,9 +7,9 @@
 # be nice to add the native GUI (and/or the GTK GUI) as an option too, but that
 # requires invoking the Xcode build system, which is non-trivial for now.
 
-{ stdenv, lib, fetchurl, fetchpatch,
+{ stdenv, lib, fetchFromGitHub,
   # Main build tools
-  python2, pkgconfig, autoconf, automake, libtool, m4, lzma,
+  pkgconfig, autoconf, automake, libtool, m4, lzma, python3,
   numactl,
   # Processing, video codecs, containers
   ffmpeg-full, nv-codec-headers, libogg, x264, x265, libvpx, libtheora, dav1d,
@@ -30,34 +30,64 @@
   # for now we disable GTK GUI support on Darwin. (It may be possible to remove
   # this restriction later.)
   useGtk ? !stdenv.isDarwin, wrapGAppsHook ? null,
-                             intltool ? null,
-                             glib ? null,
-                             gtk3 ? null,
-                             libappindicator-gtk3 ? null,
-                             libnotify ? null,
-                             gst_all_1 ? null,
-                             dbus-glib ? null,
-                             udev ? null,
-                             libgudev ? null,
-                             hicolor-icon-theme ? null,
+  intltool ? null,
+  glib ? null,
+  gtk3 ? null,
+  libappindicator-gtk3 ? null,
+  libnotify ? null,
+  gst_all_1 ? null,
+  dbus-glib ? null,
+  udev ? null,
+  libgudev ? null,
+  hicolor-icon-theme ? null,
   # FDK
   useFdk ? false, fdk_aac ? null
 }:
 
-assert stdenv.isDarwin -> AudioToolbox != null && Foundation != null
-  && libobjc != null && VideoToolbox != null;
+assert stdenv.isDarwin -> AudioToolbox != null
+       && Foundation != null
+       && libobjc != null
+       && VideoToolbox != null;
 
 stdenv.mkDerivation rec {
   pname = "handbrake";
-  version = "1.3.1";
+  version = "1.3.3";
 
-  src = fetchurl {
-    url = ''https://download.handbrake.fr/releases/${version}/HandBrake-${version}-source.tar.bz2'';
-    sha256 = "09rcrq0kjs1lc1as7w3glbpbfvzldwpx3xv0pfmkn4pl7acxw1f0";
+  src = fetchFromGitHub {
+    owner = "HandBrake";
+    repo = "HandBrake";
+    rev = version;
+    sha256 = "0bsmk37543zv3p32a7wxnh2w483am23ha2amj339q3nnb4142krn";
+    extraPostFetch = ''
+      echo "DATE=$(date +"%F %T %z" -r $out/NEWS.markdown)" > $out/version.txt
+    '';
   };
 
+  # we put as little as possible in src.extraPostFetch as it's much easier to
+  # add to it here without having to fiddle with src.sha256
+  # only DATE and HASH are absolutely necessary
+  postPatch = ''
+    cat >> version.txt <<_EOF
+HASH=${src.rev}
+SHORTHASH=${src.rev}
+TAG=${version}
+URL=${src.meta.homepage}
+_EOF
+
+    patchShebangs scripts
+
+    substituteInPlace libhb/module.defs \
+      --replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2
+
+    # Force using nixpkgs dependencies
+    sed -i '/MODULES += contrib/d' make/include/main.defs
+    sed -e 's/^[[:space:]]*\(meson\|ninja\|nasm\)[[:space:]]*= ToolProbe.*$//g' \
+        -e '/    ## Additional library and tool checks/,/    ## MinGW specific library and tool checks/d' \
+        -i make/configure.py
+  '';
+
   nativeBuildInputs = [
-    python2 pkgconfig autoconf automake libtool m4
+    pkgconfig autoconf automake libtool m4 python3
   ] ++ lib.optionals useGtk [ intltool wrapGAppsHook ];
 
   buildInputs = [
@@ -70,26 +100,12 @@ stdenv.mkDerivation rec {
     gst_all_1.gstreamer gst_all_1.gst-plugins-base dbus-glib udev
     libgudev hicolor-icon-theme
   ] ++ lib.optional useFdk fdk_aac
-    ++ lib.optionals stdenv.isDarwin [ AudioToolbox Foundation libobjc VideoToolbox ]
+  ++ lib.optionals stdenv.isDarwin [ AudioToolbox Foundation libobjc VideoToolbox ]
   # NOTE: 2018-12-27: Handbrake supports nv-codec-headers for Linux only,
   # look at ./make/configure.py search "enable_nvenc"
-    ++ lib.optional stdenv.isLinux nv-codec-headers;
+  ++ lib.optional stdenv.isLinux nv-codec-headers;
 
-  preConfigure = ''
-    patchShebangs scripts
-
-    substituteInPlace libhb/module.defs \
-      --replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2
-    substituteInPlace libhb/module.defs \
-      --replace '$(CONTRIB.build/)include/libxml2' ${libxml2.dev}/include/libxml2
-
-    # Force using nixpkgs dependencies
-    sed -i '/MODULES += contrib/d' make/include/main.defs
-    sed -i '/PKG_CONFIG_PATH=/d' gtk/module.rules
-    sed -e 's/^[[:space:]]*\(meson\|ninja\|nasm\)[[:space:]]*= ToolProbe.*$//g' \
-        -e '/    ## Additional library and tool checks/,/    ## MinGW specific library and tool checks/d' \
-        -i make/configure.py
-  '';
+  enableParallelBuilding = true;
 
   configureFlags = [
     "--disable-df-fetch"
@@ -97,10 +113,10 @@ stdenv.mkDerivation rec {
     (if useGtk          then "--disable-gtk-update-checks" else "--disable-gtk")
     (if useFdk          then "--enable-fdk-aac"            else "")
     (if stdenv.isDarwin then "--disable-xcode"             else "")
-  ];
+  ] ++ lib.optional (stdenv.isx86_32 || stdenv.isx86_64) "--harden";
 
   # NOTE: 2018-12-27: Check NixOS HandBrake test if changing
-  NIX_LDFLAGS = toString [
+  NIX_LDFLAGS = [
     "-lx265"
   ];
 
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 e4da20c8487..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 {
@@ -179,8 +179,8 @@ in stdenv.mkDerivation {
       # libdvdcss libdvdnav libdvdread
     ]
     ++ lib.optional x11Support [
-      libX11 xorgproto libXt libXmu libXext libXdmcp
-      libXinerama libXrandr libXtst libXfixes
+      libX11 xorgproto libXt libXmu libXext.dev libXdmcp
+      libXinerama libXrandr.dev libXtst libXfixes
     ]
     ++ lib.optional  dbusSupport     dbus
     ++ lib.optional joystickSupport cwiid
@@ -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/makemkv/default.nix b/pkgs/applications/video/makemkv/default.nix
index 2364f9ec02c..d3cb12924c2 100644
--- a/pkgs/applications/video/makemkv/default.nix
+++ b/pkgs/applications/video/makemkv/default.nix
@@ -1,23 +1,23 @@
 { stdenv, mkDerivation, fetchurl, autoPatchelfHook
-, ffmpeg, openssl, qtbase, zlib, pkgconfig
+, ffmpeg_3, openssl, qtbase, zlib, pkgconfig
 }:
 
 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";
@@ -29,7 +29,7 @@ in mkDerivation {
 
   nativeBuildInputs = [ autoPatchelfHook pkgconfig ];
 
-  buildInputs = [ ffmpeg openssl qtbase zlib ];
+  buildInputs = [ ffmpeg_3 openssl qtbase zlib ];
 
   installPhase = ''
     runHook preInstall
@@ -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/manim/default.nix b/pkgs/applications/video/manim/default.nix
index 470908377b5..667b2bb2b88 100644
--- a/pkgs/applications/video/manim/default.nix
+++ b/pkgs/applications/video/manim/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonApplication, fetchFromGitHub, pythonOlder, file, fetchpatch
-, cairo, ffmpeg, sox, xdg_utils, texlive
+, cairo, ffmpeg_3, sox, xdg_utils, texlive
 , colour, numpy, pillow, progressbar, scipy, tqdm, opencv , pycairo, pydub
 , pbr, fetchPypi
 }:
@@ -28,14 +28,14 @@ buildPythonApplication rec {
     pycairo
     pydub
 
-    cairo sox ffmpeg xdg_utils
+    cairo sox ffmpeg_3 xdg_utils
   ];
 
   # Test with texlive to see whether it works but don't propagate
   # because it's huge and optional
   # TODO: Use smaller TexLive distribution
   #       Doesn't need everything but it's hard to figure out what it needs
-  checkInputs = [ cairo sox ffmpeg xdg_utils texlive.combined.scheme-full ];
+  checkInputs = [ cairo sox ffmpeg_3 xdg_utils texlive.combined.scheme-full ];
 
   # Simple test and complex test with LaTeX
   checkPhase = ''
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 7db27888782..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 = "46.0.0";
+  version = "48.0.0";
 
   src = fetchFromGitLab {
     owner  = "mbunkus";
     repo   = "mkvtoolnix";
     rev    = "release-${version}";
-    sha256 = "1vyfvpsllnzhzaaz3s9lqlnkmnqchyhxj2d47bfyizs982r5kg24";
+    sha256 = "0lbl3w2m12blymda3m00afl9racgahvl0z4b2clwbawhvypc5vfc";
   };
 
   nativeBuildInputs = [
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
     (enableFeature withGUI "qt")
   ];
 
-  CXXFLAGS = optional stdenv.cc.isClang "-std=c++14";
+  CXXFLAGS = optional stdenv.cc.isClang "-std=c++17";
 
   dontWrapQtApps = true;
   postFixup = optionalString withGUI ''
diff --git a/pkgs/applications/video/mlv-app/aarch64-flags.patch b/pkgs/applications/video/mlv-app/aarch64-flags.patch
new file mode 100644
index 00000000000..b8c025b3b3f
--- /dev/null
+++ b/pkgs/applications/video/mlv-app/aarch64-flags.patch
@@ -0,0 +1,13 @@
+diff --git a/platform/qt/MLVApp.pro b/platform/qt/MLVApp.pro
+index ebdc552..3e37573 100644
+--- a/platform/qt/MLVApp.pro
++++ b/platform/qt/MLVApp.pro
+@@ -84,7 +84,7 @@ win32{
+
+ # Linux
+ linux-g++*{
+-    QMAKE_CFLAGS += -O3 -fopenmp -msse4.1 -mssse3 -msse3 -msse2 -msse -std=c99
++    QMAKE_CFLAGS += -O3 -fopenmp -march=native -std=c99
+     QMAKE_CXXFLAGS += -fopenmp
+     LIBS += -lgomp
+ }
diff --git a/pkgs/applications/video/mlv-app/default.nix b/pkgs/applications/video/mlv-app/default.nix
new file mode 100644
index 00000000000..757759b1146
--- /dev/null
+++ b/pkgs/applications/video/mlv-app/default.nix
@@ -0,0 +1,62 @@
+{ fetchFromGitHub
+, lib
+, mkDerivation
+, qmake
+, qtbase
+, qtmultimedia
+, stdenv
+}:
+
+mkDerivation rec {
+  pname = "mlv-app";
+  version = "1.11";
+
+  src = fetchFromGitHub {
+    owner = "ilia3101";
+    repo = "MLV-App";
+    rev = "QTv${version}";
+    sha256 = "0s5sjdxi8a17ddvih4ara7mlb2xrc9xqx52jmhfaca6ng341gi4x";
+  };
+
+  patches = if stdenv.isAarch64 then ./aarch64-flags.patch else null;
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm555 -t $out/bin                mlvapp
+    install -Dm444 -t $out/share/applications mlvapp.desktop
+    install -Dm444 -t $out/share/icons/hicolor/512x512/apps RetinaIMG/MLVAPP.png
+    runHook postInstall
+  '';
+
+  qmakeFlags = [ "MLVApp.pro" ];
+
+  preConfigure = ''
+    export HOME=$TMPDIR
+    cd platform/qt/
+  '';
+
+  buildInputs = [
+    qtmultimedia
+    qtbase
+  ];
+
+  dontWrapQtApps = true;
+
+  preFixup = ''
+    wrapQtApp "$out/bin/mlvapp"
+  '';
+
+  nativeBuildInputs = [
+    qmake
+  ];
+
+  meta = with lib; {
+    description = "All in one MLV processing app that is pretty great";
+    homepage = "https://mlv.app";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [
+      kiwi
+    ];
+    platforms = platforms.linux;
+  };
+}
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 dd0510f70c3..7f101c41edb 100644
--- a/pkgs/applications/video/motion/default.nix
+++ b/pkgs/applications/video/motion/default.nix
@@ -3,13 +3,13 @@
 
 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 ];
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "https://motion-project.github.io/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ puffnfresh veprbl ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/video/mplayer/default.nix b/pkgs/applications/video/mplayer/default.nix
index 5a72fe91ddd..f00b5aabf97 100644
--- a/pkgs/applications/video/mplayer/default.nix
+++ b/pkgs/applications/video/mplayer/default.nix
@@ -1,4 +1,4 @@
-{ config, stdenv, fetchurl, pkgconfig, freetype, yasm, ffmpeg
+{ config, stdenv, fetchurl, pkgconfig, freetype, yasm, ffmpeg_3
 , aalibSupport ? true, aalib ? null
 , fontconfigSupport ? true, fontconfig ? null, freefont_ttf ? null
 , fribidiSupport ? true, fribidi ? null
@@ -107,7 +107,7 @@ stdenv.mkDerivation rec {
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ pkgconfig yasm ];
   buildInputs = with stdenv.lib;
-    [ freetype ffmpeg ]
+    [ freetype ffmpeg_3 ]
     ++ optional aalibSupport aalib
     ++ optional fontconfigSupport fontconfig
     ++ optional fribidiSupport fribidi
@@ -182,7 +182,7 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     configureFlagsArray+=(
       "--cc=$CC"
-      "--host-cc=$BUILD_CC"
+      "--host-cc=$CC_FOR_BUILD"
       "--as=$AS"
       "--nm=$NM"
       "--ar=$AR"
@@ -199,6 +199,7 @@ stdenv.mkDerivation rec {
        optional  fontconfigSupport "-lfontconfig"
     ++ optional  fribidiSupport "-lfribidi"
     ++ optionals x11Support [ "-lX11" "-lXext" ]
+    ++ [ "-lfreetype" ]
   );
 
   installTargets = [ "install" ] ++ stdenv.lib.optional x11Support "install-gui";
diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix
index 50b67f45558..697a468f890 100644
--- a/pkgs/applications/video/mpv/default.nix
+++ b/pkgs/applications/video/mpv/default.nix
@@ -1,6 +1,6 @@
-{ config, stdenv, fetchurl, fetchFromGitHub, makeWrapper, fetchpatch
+{ config, stdenv, fetchurl, fetchFromGitHub, fetchpatch
 , addOpenGLRunpath, docutils, perl, pkgconfig, python3, wafHook, which
-, ffmpeg_4, freefont_ttf, freetype, libass, libpthreadstubs, mujs
+, ffmpeg, freefont_ttf, freetype, libass, libpthreadstubs, mujs
 , nv-codec-headers, lua, libuchardet, libiconv ? null
 , CoreFoundation, Cocoa, CoreAudio, MediaPlayer
 
@@ -39,7 +39,10 @@
 , libpngSupport      ? true,           libpng        ? null
 , pulseSupport       ? config.pulseaudio or stdenv.isLinux, libpulseaudio ? null
 , rubberbandSupport  ? stdenv.isLinux, rubberband    ? null
-, sambaSupport       ? stdenv.isLinux, samba         ? null
+# NOTE: samba support should be removed on the next mpv release, see also:
+# https://github.com/NixOS/nixpkgs/pull/89145#issuecomment-636424362
+# Please remove this line on the next mpv release.
+, sambaSupport       ? false,          samba         ? null
 , screenSaverSupport ? true,           libXScrnSaver ? null
 , sdl2Support        ? true,           SDL2          ? null
 , sndioSupport       ? true,           sndio         ? null
@@ -50,7 +53,6 @@
 , vdpauSupport       ? true,           libvdpau      ? null
 , xineramaSupport    ? stdenv.isLinux, libXinerama   ? null
 , xvSupport          ? stdenv.isLinux, libXv         ? null
-, youtubeSupport     ? true,           youtube-dl    ? null
 , zimgSupport        ? true,           zimg          ? null
 , archiveSupport     ? true,           libarchive    ? null
 , jackaudioSupport   ? false,          libjack2      ? null
@@ -91,7 +93,6 @@ assert waylandSupport     -> all available [ wayland wayland-protocols libxkbcom
 assert x11Support         -> all available [ libGLU libGL libX11 libXext libXxf86vm libXrandr ];
 assert xineramaSupport    -> x11Support && available libXinerama;
 assert xvSupport          -> x11Support && available libXv;
-assert youtubeSupport     -> available youtube-dl;
 assert zimgSupport        -> available zimg;
 
 let
@@ -112,6 +113,20 @@ in stdenv.mkDerivation rec {
     patchShebangs ./TOOLS/
   '';
 
+  passthru = {
+    inherit
+    # The wrapper consults luaEnv and lua.version
+    luaEnv
+    lua
+    # In the wrapper, we want to reference vapoursynth which has the
+    # `python3` passthru attribute (which has the `sitePrefix`
+    # attribute). This way we'll be sure that in the wrapper we'll
+    # use the same python3.sitePrefix used to build vapoursynth.
+    vapoursynthSupport
+    vapoursynth
+    ;
+  };
+
   NIX_LDFLAGS = optionalString x11Support "-lX11 -lXext "
               + optionalString stdenv.isDarwin "-framework CoreFoundation";
 
@@ -135,12 +150,12 @@ in stdenv.mkDerivation rec {
     ++ stdenv.lib.optional (!swiftSupport) "--disable-macos-cocoa-cb";
 
   nativeBuildInputs = [
-    addOpenGLRunpath docutils makeWrapper perl pkgconfig python3 wafHook which
+    addOpenGLRunpath docutils perl pkgconfig python3 wafHook which
   ]
     ++ optional swiftSupport swift;
 
   buildInputs = [
-    ffmpeg_4 freetype libass libpthreadstubs
+    ffmpeg freetype libass libpthreadstubs
     luaEnv libuchardet mujs
   ] ++ optional alsaSupport        alsaLib
     ++ optional archiveSupport     libarchive
@@ -164,7 +179,6 @@ in stdenv.mkDerivation rec {
     ++ optional vdpauSupport       libvdpau
     ++ optional xineramaSupport    libXinerama
     ++ optional xvSupport          libXv
-    ++ optional youtubeSupport     youtube-dl
     ++ optional zimgSupport        zimg
     ++ optional stdenv.isDarwin    libiconv
     ++ optional stdenv.isLinux     nv-codec-headers
@@ -182,15 +196,6 @@ in stdenv.mkDerivation rec {
     python3 TOOLS/osxbundle.py -s build/mpv
   '';
 
-  # Ensure youtube-dl is available in $PATH for mpv
-  wrapperFlags =
-    ''--prefix PATH : "${luaEnv}/bin" \''
-  + optionalString youtubeSupport ''
-      --prefix PATH : "${youtube-dl}/bin" \
-  '' + optionalString vapoursynthSupport ''
-      --prefix PYTHONPATH : "${vapoursynth}/lib/${python3.libPrefix}/site-packages:$PYTHONPATH"
-  '';
-
   patches = stdenv.lib.optionals stdenv.isDarwin [
     # Fix cocoa backend. Remove with the next release
     (fetchpatch {
@@ -203,24 +208,17 @@ in stdenv.mkDerivation rec {
     # Use a standard font
     mkdir -p $out/share/mpv
     ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mpv/subfont.ttf
-    wrapProgram "$out/bin/mpv" \
-      ${wrapperFlags}
 
     cp TOOLS/umpv $out/bin
-    wrapProgram $out/bin/umpv \
-      --set MPV "$out/bin/mpv"
-
   '' + optionalString stdenv.isDarwin ''
     mkdir -p $out/Applications
     cp -r build/mpv.app $out/Applications
-    wrapProgram "$out/Applications/mpv.app/Contents/MacOS/mpv" \
-      ${wrapperFlags}
   '';
 
   # Set RUNPATH so that libcuda in /run/opengl-driver(-32)/lib can be found.
   # See the explanation in addOpenGLRunpath.
   postFixup = optionalString stdenv.isLinux ''
-    addOpenGLRunpath $out/bin/.mpv-wrapped
+    addOpenGLRunpath $out/bin/mpv
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix b/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix
new file mode 100644
index 00000000000..d51434e241c
--- /dev/null
+++ b/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetchFromGitHub }:
+stdenv.mkDerivation rec {
+  pname = "simple-mpv-ui";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "open-dynaMIX";
+    repo = "simple-mpv-webui";
+    rev = "v${version}";
+    sha256 = "1glrnnl1slcl0ri0zs4j64lc9aa52p9ffh6av0d81fk95nm98917";
+  };
+
+  dontBuild = true;
+  installPhase = ''
+    mkdir -p $out/share/mpv/scripts
+    cp -r webui.lua webui-page $out/share/mpv/scripts/
+  '';
+  passthru.scriptName = "webui.lua";
+
+  meta = with stdenv.lib; {
+    description = "A web based user interface with controls for the mpv mediaplayer";
+    homepage = "https://github.com/open-dynaMIX/simple-mpv-webui";
+    maintainers = [ maintainers.cript0nauta ];
+    longDescription = ''
+      You can access the webui when accessing http://127.0.0.1:8080 or
+      http://[::1]:8080 in your webbrowser. By default it listens on
+      0.0.0.0:8080 and [::0]:8080
+    '';
+    license = licenses.mit;
+  };
+}
+
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/mpv/wrapper.nix b/pkgs/applications/video/mpv/wrapper.nix
index 53def80e7da..5b3ad7a9831 100644
--- a/pkgs/applications/video/mpv/wrapper.nix
+++ b/pkgs/applications/video/mpv/wrapper.nix
@@ -1,14 +1,83 @@
-{ stdenv, symlinkJoin, makeWrapper, mpv, scripts ? [] }:
+# Arguments that this derivation gets when it is created with `callPackage`
+{ stdenv
+, lib
+, symlinkJoin
+, makeWrapper
+, youtube-dl
+}:
 
-symlinkJoin {
-  name = "mpv-with-scripts-${mpv.version}";
+# the unwrapped mpv derivation - 1st argument to `wrapMpv`
+mpv:
 
-  paths = [ mpv ];
+let
+  # arguments to the function (called `wrapMpv` in all-packages.nix)
+  wrapper = {
+    extraMakeWrapperArgs ? [],
+    youtubeSupport ? true,
+    # a set of derivations (probably from `mpvScripts`) where each is
+    # expected to have a `scriptName` passthru attribute that points to the
+    # name of the script that would reside in the script's derivation's
+    # `$out/share/mpv/scripts/`.
+    scripts ? [],
+    extraUmpvWrapperArgs ? []
+  }:
+  let
+    binPath = lib.makeBinPath ([
+      mpv.luaEnv
+    ] ++ lib.optionals youtubeSupport [
+      youtube-dl
+    ] ++ lib.optionals mpv.vapoursynthSupport [
+      mpv.vapoursynth.python3
+    ]);
+    # All arguments besides the input and output binaries (${mpv}/bin/mpv and
+    # $out/bin/mpv). These are used by the darwin specific makeWrapper call
+    # used to wrap $out/Applications/mpv.app/Contents/MacOS/mpv as well.
+    mostMakeWrapperArgs = lib.strings.escapeShellArgs ([ "--argv0" "'$0'"
+      # These are always needed (TODO: Explain why)
+      "--prefix" "LUA_CPATH" ";" "${mpv.luaEnv}/lib/lua/${mpv.lua.luaversion}/?.so"
+      "--prefix" "LUA_PATH" ";" "${mpv.luaEnv}/share/lua/${mpv.lua.luaversion}/?.lua"
+    ] ++ lib.optionals mpv.vapoursynthSupport [
+      "--prefix" "PYTHONPATH" ":" "${mpv.vapoursynth}/lib/${mpv.vapoursynth.python3.sitePackages}"
+    ] ++ lib.optionals (binPath != "") [
+      "--prefix" "PATH" ":" binPath
+    ] ++ (lib.lists.flatten (map
+      # For every script in the `scripts` argument, add the necessary flags to the wrapper
+      (script:
+        [
+          "--add-flags"
+          # Here we rely on the existence of the `scriptName` passthru
+          # attribute of the script derivation from the `scripts`
+          "--script=${script}/share/mpv/scripts/${script.scriptName}"
+        ]
+      ) scripts
+    )) ++ extraMakeWrapperArgs)
+    ;
+    umpvWrapperArgs = lib.strings.escapeShellArgs ([
+      "--argv0" "'$0'"
+      "--set" "MPV" "${placeholder "out"}/bin/mpv"
+    ] ++ extraUmpvWrapperArgs)
+    ;
+  in
+    symlinkJoin {
+      name = "mpv-with-scripts-${mpv.version}";
 
-  buildInputs = [ makeWrapper ];
+      paths = [ mpv ];
 
-  postBuild = ''
-    wrapProgram $out/bin/mpv \
-      --add-flags "${stdenv.lib.concatMapStringsSep " " (x: "--script=${x}/share/mpv/scripts/${x.scriptName}") scripts}"
-  '';
-}
+      buildInputs = [ makeWrapper ];
+
+      passthru.unwrapped = mpv;
+
+      postBuild = ''
+        # wrapProgram can't operate on symlinks
+        rm "$out/bin/mpv"
+        makeWrapper "${mpv}/bin/mpv" "$out/bin/mpv" ${mostMakeWrapperArgs}
+        rm "$out/bin/umpv"
+        makeWrapper "${mpv}/bin/umpv" "$out/bin/umpv" ${umpvWrapperArgs}
+      '' + lib.optionalString stdenv.isDarwin ''
+        # wrapProgram can't operate on symlinks
+        rm "$out/Applications/mpv.app/Contents/MacOS/mpv"
+        makeWrapper "${mpv}/Applications/mpv.app/Contents/MacOS/mpv" "$out/Applications/mpv.app/Contents/MacOS/mpv" ${mostMakeWrapperArgs}
+      '';
+    };
+in
+  lib.makeOverridable wrapper
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/natron/default.nix b/pkgs/applications/video/natron/default.nix
index 4e6c9f7ea5a..dede7d6b29e 100644
--- a/pkgs/applications/video/natron/default.nix
+++ b/pkgs/applications/video/natron/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, qt4, pkgconfig, boost, expat, cairo, python2Packages,
   cmake, flex, bison, pango, librsvg, librevenge, libxml2, libcdr, libzip,
-  poppler, imagemagick, openexr, ffmpeg, opencolorio, openimageio,
+  poppler, imagemagick, openexr, ffmpeg_3, opencolorio, openimageio,
   qmake4Hook, libpng, libGL, lndir }:
 
 let
@@ -68,7 +68,7 @@ let
       sha256 = "0s196i9fkgr9iw92c94mxgs1lkxbhynkf83vmsgrldflmf0xjky7";
       nativeBuildInputs = [ pkgconfig ];
       buildInputs = [
-        libpng ffmpeg openexr opencolorio openimageio boost libGL
+        libpng ffmpeg_3 openexr opencolorio openimageio boost libGL
         seexpr
       ];
     })
diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix
index be2a323943d..8a2cd172822 100644
--- a/pkgs/applications/video/obs-studio/default.nix
+++ b/pkgs/applications/video/obs-studio/default.nix
@@ -1,6 +1,7 @@
 { config, stdenv
 , mkDerivation
 , fetchFromGitHub
+, addOpenGLRunpath
 , cmake
 , fdk_aac
 , ffmpeg
@@ -35,51 +36,62 @@
 
 let
   inherit (stdenv.lib) optional optionals;
+
 in mkDerivation rec {
   pname = "obs-studio";
-  version = "25.0.3";
+  version = "25.0.8";
 
   src = fetchFromGitHub {
     owner = "obsproject";
     repo = "obs-studio";
     rev = version;
-    sha256 = "11hl3lxvbsm7ackl7qhzgy2x0jsz2dfpi2qxsf8pkp908lrh3b3r";
+    sha256 = "0j2k65q3wfyfxhvkl6icz4qy0s3kfqhksizy2i3ah7yml266axbj";
   };
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ addOpenGLRunpath cmake pkgconfig ];
 
-  buildInputs = [ curl
-                  fdk_aac
-                  ffmpeg
-                  jansson
-                  libjack2
-                  libv4l
-                  libxkbcommon
-                  libpthreadstubs
-                  libXdmcp
-                  qtbase
-                  qtx11extras
-                  qtsvg
-                  speex
-                  x264
-                  vlc
-                  makeWrapper
-                  mbedtls
-                ]
-                ++ optionals scriptingSupport [ luajit swig python3 ]
-                ++ optional alsaSupport alsaLib
-                ++ optional pulseaudioSupport libpulseaudio;
+  buildInputs = [
+    curl
+    fdk_aac
+    ffmpeg
+    jansson
+    libjack2
+    libv4l
+    libxkbcommon
+    libpthreadstubs
+    libXdmcp
+    qtbase
+    qtx11extras
+    qtsvg
+    speex
+    x264
+    vlc
+    makeWrapper
+    mbedtls
+  ]
+  ++ optionals scriptingSupport [ luajit swig python3 ]
+  ++ optional alsaSupport alsaLib
+  ++ optional pulseaudioSupport libpulseaudio;
 
   # obs attempts to dlopen libobs-opengl, it fails unless we make sure
   # DL_OPENGL is an explicit path. Not sure if there's a better way
   # to handle this.
-  cmakeFlags = [ "-DCMAKE_CXX_FLAGS=-DDL_OPENGL=\\\"$(out)/lib/libobs-opengl.so\\\"" ];
+  cmakeFlags = [
+    "-DCMAKE_CXX_FLAGS=-DDL_OPENGL=\\\"$(out)/lib/libobs-opengl.so\\\""
+    "-DOBS_VERSION_OVERRIDE=${version}"
+    "-Wno-dev" # kill dev warnings that are useless for packaging
+  ];
 
   postInstall = ''
       wrapProgram $out/bin/obs \
         --prefix "LD_LIBRARY_PATH" : "${xorg.libX11.out}/lib:${vlc}/lib"
   '';
 
+  postFixup = stdenv.lib.optionalString stdenv.isLinux ''
+      addOpenGLRunpath $out/lib/lib*.so
+      addOpenGLRunpath $out/lib/obs-plugins/*.so
+  '';
+
   meta = with stdenv.lib; {
     description = "Free and open source software for video recording and live streaming";
     longDescription = ''
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/olive-editor/default.nix b/pkgs/applications/video/olive-editor/default.nix
index 55c6149e7d0..b1e70cd037c 100644
--- a/pkgs/applications/video/olive-editor/default.nix
+++ b/pkgs/applications/video/olive-editor/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pkgconfig, which, qmake, mkDerivation,
-  qtbase, qtmultimedia, frei0r, opencolorio, ffmpeg-full,
-  CoreFoundation  }:
+  qtmultimedia, wrapQtAppsHook, frei0r, opencolorio, ffmpeg-full,
+  CoreFoundation }:
 
 mkDerivation rec {
   pname = "olive-editor";
@@ -17,15 +17,14 @@ mkDerivation rec {
     pkgconfig
     which
     qmake
+    wrapQtAppsHook
   ];
 
   buildInputs = [
     ffmpeg-full
     frei0r
     opencolorio
-    qtbase
     qtmultimedia
-    qtmultimedia.dev
   ] ++ stdenv.lib.optional stdenv.isDarwin CoreFoundation;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/video/openshot-qt/libopenshot.nix b/pkgs/applications/video/openshot-qt/libopenshot.nix
index 861ac456029..e24b6ee41f8 100644
--- a/pkgs/applications/video/openshot-qt/libopenshot.nix
+++ b/pkgs/applications/video/openshot-qt/libopenshot.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub
 , pkgconfig, cmake, doxygen
-, libopenshot-audio, imagemagick, ffmpeg
+, libopenshot-audio, imagemagick, ffmpeg_3
 , swig, python3
 , unittest-cpp, cppzmq, zeromq
 , qtbase, qtmultimedia }:
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig cmake doxygen ];
 
   buildInputs =
-  [ imagemagick ffmpeg swig python3 unittest-cpp
+  [ imagemagick ffmpeg_3 swig python3 unittest-cpp
     cppzmq zeromq qtbase qtmultimedia ];
 
   LIBOPENSHOT_AUDIO_DIR = libopenshot-audio;
diff --git a/pkgs/applications/video/peek/default.nix b/pkgs/applications/video/peek/default.nix
index ce0ea532c4c..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
@@ -15,7 +16,7 @@
 , glib
 , cairo
 , keybinder3
-, ffmpeg
+, ffmpeg_3
 , python3
 , libxml2
 , gst_all_1
@@ -65,9 +66,16 @@ stdenv.mkDerivation rec {
   '';
 
   preFixup = ''
-    gappsWrapperArgs+=(--prefix PATH : ${stdenv.lib.makeBinPath [ which ffmpeg gifski ]})
+    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/plex-mpv-shim/default.nix b/pkgs/applications/video/plex-mpv-shim/default.nix
index 268905e3a4c..993bdd67b0d 100644
--- a/pkgs/applications/video/plex-mpv-shim/default.nix
+++ b/pkgs/applications/video/plex-mpv-shim/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname = "plex-mpv-shim";
-  version = "1.7.16";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "iwalton3";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1pnbdxaqnliwqfvv08gi7gdcvflg5vcbgk4g0fw75prgw54vnd9a";
+    sha256 = "0fi0glnl7nr6754r9jk7d7dsnjbdm7civvhcj2l009yxiv2rxzj3";
   };
 
   propagatedBuildInputs = [ mpv requests python-mpv-jsonipc ];
diff --git a/pkgs/applications/video/qstopmotion/default.nix b/pkgs/applications/video/qstopmotion/default.nix
index 98af60c4937..dbb2128b50b 100644
--- a/pkgs/applications/video/qstopmotion/default.nix
+++ b/pkgs/applications/video/qstopmotion/default.nix
@@ -6,7 +6,7 @@
 , qtquickcontrols
 , qtimageformats
 , qtxmlpatterns
-, ffmpeg
+, ffmpeg_3
 , guvcview
 , cmake
 , ninja
@@ -40,7 +40,7 @@ mkDerivation rec {
     v4l-utils
     libv4l
     pcre
-    ffmpeg
+    ffmpeg_3
     guvcview
     qwt
   ];
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/simplescreenrecorder/default.nix b/pkgs/applications/video/simplescreenrecorder/default.nix
index f97d1ee0037..7176f5e2f09 100644
--- a/pkgs/applications/video/simplescreenrecorder/default.nix
+++ b/pkgs/applications/video/simplescreenrecorder/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, mkDerivation, fetchurl, alsaLib, ffmpeg, libjack2, libX11, libXext, qtx11extras
+{ stdenv, mkDerivation, fetchurl, alsaLib, ffmpeg_3, libjack2, libX11, libXext, qtx11extras
 , libXfixes, libGLU, libGL, pkgconfig, libpulseaudio, qtbase, cmake, ninja
 }:
 
@@ -25,7 +25,7 @@ mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig cmake ninja ];
   buildInputs = [
-    alsaLib ffmpeg libjack2 libX11 libXext libXfixes libGLU libGL
+    alsaLib ffmpeg_3 libjack2 libX11 libXext libXfixes libGLU libGL
     libpulseaudio qtbase qtx11extras
   ];
 
diff --git a/pkgs/applications/video/smplayer/default.nix b/pkgs/applications/video/smplayer/default.nix
index aba6af7359a..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 = "19.10.2";
+  version = "20.6.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0i2c15yxk4by2zyjhb7n08larz9pmpa6zw383aybjxqh0nd9zv9p";
+    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 782b81cc238..4c8800c918e 100644
--- a/pkgs/applications/video/streamlink/default.nix
+++ b/pkgs/applications/video/streamlink/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, pythonPackages, fetchFromGitHub, rtmpdump, ffmpeg }:
+{ 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 ];
 
-  propagatedBuildInputs = (with pythonPackages; [ pycryptodome requests iso-639 iso3166 websocket_client isodate ]) ++ [ rtmpdump ffmpeg ];
+  propagatedBuildInputs = (with pythonPackages; [ pycryptodome requests iso-639 iso3166 websocket_client isodate ]) ++ [ rtmpdump ffmpeg_3 ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/streamlink/streamlink";
diff --git a/pkgs/applications/video/tartube/default.nix b/pkgs/applications/video/tartube/default.nix
index ae222ae05a7..23ee76eb469 100644
--- a/pkgs/applications/video/tartube/default.nix
+++ b/pkgs/applications/video/tartube/default.nix
@@ -14,13 +14,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "tartube";
-  version = "2.0.016";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "axcore";
     repo = "tartube";
     rev = "v${version}";
-    sha256 = "1y77ykihyi4v6xlsm5xldbs9lzq229l574rxz6qfvrjcbbwajfj9";
+    sha256 = "1klqjwqm29y2f6nc8gn222ykfvb5d64z1w2kifw9bq5bv0np9bda";
   };
 
   nativeBuildInputs = [
@@ -35,6 +35,8 @@ python3Packages.buildPythonApplication rec {
     pygobject3
     pyxdg
     requests
+    feedparser
+    playsound
   ];
 
   buildInputs = [
@@ -45,6 +47,10 @@ python3Packages.buildPythonApplication rec {
     pango
   ];
 
+  postPatch = ''
+    sed -i "/^\s*install_requires/s/, 'gi'\|'gi', \|'gi'//" setup.py
+  '';
+
   postInstall = ''
     mkdir -p $out/share/{man/man1,applications,pixmaps}
     cp pack/tartube.1 $out/share/man/man1
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/vdr/plugins.nix b/pkgs/applications/video/vdr/plugins.nix
index 6c1e79c42de..2ae4cbac4d7 100644
--- a/pkgs/applications/video/vdr/plugins.nix
+++ b/pkgs/applications/video/vdr/plugins.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, fetchgit, vdr, alsaLib, fetchFromGitHub
-, libvdpau, libxcb, xcbutilwm, graphicsmagick, libav, pcre, xorgserver, ffmpeg
+, libvdpau, libxcb, xcbutilwm, graphicsmagick, libav, pcre, xorgserver, ffmpeg_3
 , libiconv, boost, libgcrypt, perl, utillinux, groff, libva, xorg, ncurses
 , callPackage
 }: let
@@ -52,7 +52,7 @@ in {
     name = "vdr-vaapidevice-0.7.0";
 
     buildInputs = [
-      vdr libxcb xcbutilwm ffmpeg
+      vdr libxcb xcbutilwm ffmpeg_3
       alsaLib
       libvdpau # vdpau
       libva # va-api
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index 229eeffe8f7..e655e0fbff4 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, autoreconfHook
 , libarchive, perl, xorg, libdvdnav, libbluray
-, zlib, a52dec, libmad, faad2, ffmpeg, alsaLib
+, zlib, a52dec, libmad, faad2, ffmpeg_3, alsaLib
 , pkgconfig, dbus, fribidi, freefont_ttf, libebml, libmatroska
 , libvorbis, libtheora, speex, lua5, libgcrypt, libgpgerror, libupnp
 , libcaca, libpulseaudio, flac, schroedinger, libxml2, librsvg
@@ -25,18 +25,18 @@ assert (withQt5 -> qtbase != null && qtsvg != null && qtx11extras != null && wra
 
 stdenv.mkDerivation rec {
   pname = "vlc";
-  version = "3.0.8";
+  version = "3.0.11.1";
 
   src = fetchurl {
     url = "http://get.videolan.org/vlc/${version}/${pname}-${version}.tar.xz";
-    sha256 = "e0149ef4a20a19b9ecd87309c2d27787ee3f47dfd47c6639644bc1f6fd95bdf6";
+    sha256 = "1f46h0hv7fk35zg4iczlp7ib7h2jmh8m4r5klw3g2558ib9134qq";
   };
 
   # VLC uses a *ton* of libraries for various pieces of functionality, many of
   # which are not included here for no other reason that nobody has mentioned
   # needing them
   buildInputs = [
-    zlib a52dec libmad faad2 ffmpeg alsaLib libdvdnav libdvdnav.libdvdread
+    zlib a52dec libmad faad2 ffmpeg_3 alsaLib libdvdnav libdvdnav.libdvdread
     libbluray dbus fribidi libvorbis libtheora speex lua5 libgcrypt libgpgerror
     libupnp libcaca libpulseaudio flac schroedinger libxml2 librsvg mpeg2dec
     systemd gnutls avahi libcddb SDL SDL_image libmtp unzip taglib libarchive
diff --git a/pkgs/applications/video/webcamoid/default.nix b/pkgs/applications/video/webcamoid/default.nix
new file mode 100644
index 00000000000..41304c21ac3
--- /dev/null
+++ b/pkgs/applications/video/webcamoid/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, pkgconfig, libxcb, mkDerivation, qmake
+, qtbase, qtdeclarative, qtquickcontrols, qtquickcontrols2
+, ffmpeg-full, gstreamer, gst_all_1, libpulseaudio, alsaLib, jack2
+, v4l-utils }:
+mkDerivation rec {
+  pname = "webcamoid";
+  version = "8.7.1";
+
+  src = fetchFromGitHub {
+    sha256 = "1d8g7mq0wf0ycds87xpdhr3zkljgjmb94n3ak9kkxj2fqp9242d2";
+    rev = version;
+    repo = "webcamoid";
+    owner = "webcamoid";
+  };
+
+  buildInputs = [
+    libxcb
+    qtbase qtdeclarative qtquickcontrols qtquickcontrols2
+    ffmpeg-full
+    gstreamer gst_all_1.gst-plugins-base
+    alsaLib libpulseaudio jack2
+    v4l-utils
+  ];
+
+  nativeBuildInputs = [ pkgconfig qmake ];
+
+  qmakeFlags = [
+    "Webcamoid.pro"
+    "INSTALLQMLDIR=${placeholder "out"}/lib/qt/qml"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Webcam Capture Software";
+    longDescription = "Webcamoid is a full featured and multiplatform webcam suite.";
+    homepage = "https://github.com/webcamoid/webcamoid/";
+    license = [ licenses.gpl3Plus ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ robaca ];
+  };
+}
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/video/wf-recorder/default.nix b/pkgs/applications/video/wf-recorder/default.nix
index cb97e5b1090..09b67149f5a 100644
--- a/pkgs/applications/video/wf-recorder/default.nix
+++ b/pkgs/applications/video/wf-recorder/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland, scdoc
-, wayland-protocols, ffmpeg_4, x264, libpulseaudio, ocl-icd, opencl-headers
+, wayland-protocols, ffmpeg, x264, libpulseaudio, ocl-icd, opencl-headers
 }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ meson ninja pkg-config wayland scdoc ];
   buildInputs = [
-    wayland-protocols ffmpeg_4 x264 libpulseaudio ocl-icd opencl-headers
+    wayland-protocols ffmpeg x264 libpulseaudio ocl-icd opencl-headers
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/video/xawtv/default.nix b/pkgs/applications/video/xawtv/default.nix
index 38cce053edf..a82ea044407 100644
--- a/pkgs/applications/video/xawtv/default.nix
+++ b/pkgs/applications/video/xawtv/default.nix
@@ -19,11 +19,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "xawtv-3.106";
+  name = "xawtv-3.107";
 
   src = fetchurl {
     url = "https://linuxtv.org/downloads/xawtv/${name}.tar.bz2";
-    sha256 = "174wd36rk0k23mgx9nlnpc398yd1f0wiv060963axg6sz0v4rksp";
+    sha256 = "055p0wia0xsj073l8mg4ifa6m81dmv6p45qyh99brramq5iylfy5";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/video/xscast/default.nix b/pkgs/applications/video/xscast/default.nix
index dec8bdd67fc..f9e6a3d6521 100644
--- a/pkgs/applications/video/xscast/default.nix
+++ b/pkgs/applications/video/xscast/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, makeWrapper, ffmpeg, imagemagick, dzen2, xorg }:
+{ stdenv, fetchFromGitHub, makeWrapper, ffmpeg_3, imagemagick, dzen2, xorg }:
 
 stdenv.mkDerivation {
   pname = "xscast-unstable";
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
     patchShebangs $out/bin
 
     wrapProgram "$out/bin/xscast" \
-      --prefix PATH : ${stdenv.lib.makeBinPath [ ffmpeg dzen2 xorg.xwininfo xorg.xinput xorg.xmodmap imagemagick ]}
+      --prefix PATH : ${stdenv.lib.makeBinPath [ ffmpeg_3 dzen2 xorg.xwininfo xorg.xinput xorg.xmodmap imagemagick ]}
 
     runHook postInstall
   '';
diff --git a/pkgs/applications/virtualization/8086tiny/builder.sh b/pkgs/applications/virtualization/8086tiny/builder.sh
index 7cff2589abe..210f11e1328 100644
--- a/pkgs/applications/virtualization/8086tiny/builder.sh
+++ b/pkgs/applications/virtualization/8086tiny/builder.sh
@@ -1,17 +1,19 @@
 
 source $stdenv/setup
 
-mkdir -p ./$name $out/bin $out/share/$name $out/share/doc/$name/images
+unpackPhase
+cd $sourceRoot
 
-cd $name
-tar xf $src
 make 8086tiny
+
 if [ $bios ]; then
     cd bios_source
     nasm -f bin bios.asm -o bios
     cd ..
 fi
 
+mkdir -p $out/bin $out/share/$name $out/share/doc/$name/images
+
 install -m 755 8086tiny $out/bin
 install -m 644 fd.img $out/share/$name/8086tiny-floppy.img
 install -m 644 bios_source/bios.asm  $out/share/$name/8086tiny-bios-src.asm
diff --git a/pkgs/applications/virtualization/8086tiny/default.nix b/pkgs/applications/virtualization/8086tiny/default.nix
index 464ea053cc4..db76efb96e5 100644
--- a/pkgs/applications/virtualization/8086tiny/default.nix
+++ b/pkgs/applications/virtualization/8086tiny/default.nix
@@ -1,17 +1,19 @@
-{ stdenv, fetchurl
+{ stdenv, fetchFromGitHub
 , localBios ? true, nasm ? null
 , sdlSupport ? true, SDL ? null }:
 
 assert sdlSupport -> (SDL != null);
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
 
   pname = "8086tiny";
   version = "1.25";
 
-  src = fetchurl {
-    url ="http://www.megalith.co.uk/8086tiny/downloads/8086tiny_125.tar.bz2";
-    sha256 = "0kmq4iiwhi2grjwq43ljjk1b1f1v1x9gzrgrgq2fzfsj7m7s6ris";
+  src = fetchFromGitHub {
+    owner = "adriancable";
+    repo = pname;
+    rev = "c79ca2a34d96931d55ef724c815b289d0767ae3a";
+    sha256 = "00aydg8f28sgy8l3rd2a7jvp56lx3b63hhak43p7g7vjdikv495w";
   };
 
   buildInputs = with stdenv.lib;
@@ -22,18 +24,20 @@ stdenv.mkDerivation {
   
   builder = ./builder.sh;
 
-  meta = {
-    description = "An open-source 8086 emulator";
+  meta = with stdenv.lib; {
+    description = "An open-source small 8086 emulator";
     longDescription = ''
-    8086tiny is a tiny, open-source (MIT), portable (little-endian hosts) Intel PC emulator, powerful enough to run DOS, Windows 3.0, Excel, MS Flight Simulator, AutoCAD, Lotus 1-2-3, and similar applications. 8086tiny emulates a "late 80's era" PC XT-type machine.
+      8086tiny is a tiny, open-source (MIT), portable (little-endian hosts)
+      Intel PC emulator, powerful enough to run DOS, Windows 3.0, Excel, MS
+      Flight Simulator, AutoCAD, Lotus 1-2-3, and similar applications. 8086tiny
+      emulates a "late 80's era" PC XT-type machine.
 
-    8086tiny is based on an IOCCC 2013 winning entry. In fact that is the "unobfuscated" version :)
+      8086tiny is based on an IOCCC 2013 winning entry. In fact that is the
+      "unobfuscated" version :)
     '';
-    homepage = "http://www.megalith.co.uk/8086tiny/index.html";
-    license = stdenv.lib.licenses.mit;
-    maintainers = [ stdenv.lib.maintainers.AndersonTorres ];
-    platforms = stdenv.lib.platforms.linux;
+    homepage = "https://github.com/adriancable/8086tiny";
+    license = licenses.mit;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
   };
 }
-
-# TODO: add support for a locally made BIOS
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/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 bfe9f1d3486..064500fde7f 100644
--- a/pkgs/applications/virtualization/conmon/default.nix
+++ b/pkgs/applications/virtualization/conmon/default.nix
@@ -4,17 +4,18 @@
 , glib
 , glibc
 , systemd
+, nixosTests
 }:
 
 stdenv.mkDerivation rec {
   pname = "conmon";
-  version = "2.0.15";
+  version = "2.0.20";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1fshcmnfqzbagzcrh5nxw7pi0dd60xpq47a2lzfghklqhl1h0b5i";
+    sha256 = "1f09wx5k98fa55r73y5v0sgf2lha675xhk40piyf0b7zqknl6lya";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -23,6 +24,8 @@ stdenv.mkDerivation rec {
 
   installFlags = [ "PREFIX=$(out)" ];
 
+  passthru.tests = { inherit (nixosTests) cri-o podman; };
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/containers/conmon";
     description = "An OCI container runtime monitor";
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 4c3d9ffc937..d0c8938e6de 100644
--- a/pkgs/applications/virtualization/cri-o/default.nix
+++ b/pkgs/applications/virtualization/cri-o/default.nix
@@ -1,52 +1,47 @@
-{ flavor ? ""
-, stdenv
+{ stdenv
 , btrfs-progs
-, buildGoPackage
+, buildGoModule
 , fetchFromGitHub
 , glibc
 , gpgme
 , installShellFiles
 , libapparmor
-, libassuan
-, libgpgerror
 , libseccomp
 , libselinux
 , lvm2
 , pkg-config
+, nixosTests
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "cri-o";
-  version = "1.18.0";
-  name = "${pname}-${version}${flavor}";
-
-  goPackagePath = "github.com/cri-o/cri-o";
+  version = "1.18.3";
 
   src = fetchFromGitHub {
     owner = "cri-o";
     repo = "cri-o";
     rev = "v${version}";
-    sha256 = "142flmv54pj48rjqkd26fbxrcbx2cv6pdmrc33jgyvn6r99zliah";
+    sha256 = "1csdbyypqwxkfc061pdv7nj52a52b9xxzb6qgxcznd82w7wgfb3g";
   };
+  vendorSha256 = null;
 
-  outputs = [ "out" "man" ];
+  doCheck = false;
 
+  outputs = [ "out" "man" ];
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
   buildInputs = [
     btrfs-progs
     gpgme
     libapparmor
-    libassuan
-    libgpgerror
     libseccomp
     libselinux
     lvm2
   ] ++ stdenv.lib.optionals (glibc != null) [ glibc glibc.static ];
 
-  BUILDTAGS = "apparmor seccomp selinux containers_image_ostree_stub";
+  BUILDTAGS = "apparmor seccomp selinux containers_image_openpgp containers_image_ostree_stub";
   buildPhase = ''
-    pushd go/src/${goPackagePath}
+    patchShebangs .
 
     sed -i '/version.buildDate/d' Makefile
 
@@ -54,9 +49,7 @@ buildGoPackage rec {
   '';
 
   installPhase = ''
-    install -Dm755 bin/crio $out/bin/crio${flavor}
-    install -Dm755 bin/crio-status $out/bin/crio-status${flavor}
-    install -Dm755 bin/pinns $out/bin/pinns${flavor}
+    install -Dm755 bin/* -t $out/bin
 
     for shell in bash fish zsh; do
       installShellCompletion --$shell completions/$shell/*
@@ -65,6 +58,8 @@ buildGoPackage 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
new file mode 100644
index 00000000000..298bec6550e
--- /dev/null
+++ b/pkgs/applications/virtualization/cri-o/wrapper.nix
@@ -0,0 +1,53 @@
+{ cri-o-unwrapped
+, runCommand
+, makeWrapper
+, lib
+, extraPackages ? []
+, cri-o
+, runc # Default container runtime
+, crun # Container runtime (default with cgroups v2 for podman/buildah)
+, conmon # Container runtime monitor
+, utillinux # nsenter
+, cni-plugins # not added to path
+, iptables
+, socat
+}:
+
+let
+  cri-o = cri-o-unwrapped;
+
+  binPath = lib.makeBinPath ([
+    runc
+    crun
+    conmon
+    utillinux
+    iptables
+    socat
+  ] ++ extraPackages);
+
+in runCommand cri-o.name {
+  name = "${cri-o.pname}-wrapper-${cri-o.version}";
+  inherit (cri-o) pname version passthru;
+
+  meta = builtins.removeAttrs cri-o.meta [ "outputsToInstall" ];
+
+  outputs = [
+    "out"
+    "man"
+  ];
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+} ''
+  ln -s ${cri-o.man} $man
+
+  mkdir -p $out/bin
+  ln -s ${cri-o-unwrapped}/share $out/share
+
+  for p in ${cri-o-unwrapped}/bin/*; do
+    makeWrapper $p $out/bin/''${p##*/} \
+      --prefix PATH : ${binPath}
+  done
+''
diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix
index ded793449fc..5f002f5ddc8 100644
--- a/pkgs/applications/virtualization/crun/default.nix
+++ b/pkgs/applications/virtualization/crun/default.nix
@@ -9,6 +9,7 @@
 , python3
 , systemd
 , yajl
+, nixosTests
 }:
 
 let
@@ -33,13 +34,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "crun";
-  version = "0.13";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = version;
-    sha256 = "0c5acf916yv2zv3xjvxk1sa4h3n2wljc5hw61php7q37pbjc1ppn";
+    sha256 = "0r77ksdrpxskf79m898a7ai8wxw9fmmsf2lg8fw3ychnk74l8jvh";
     fetchSubmodules = true;
   };
 
@@ -62,6 +63,8 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  passthru.tests = { inherit (nixosTests) podman; };
+
   meta = with lib; {
     description = "A fast and lightweight fully featured OCI runtime and C library for running containers";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/virtualization/docker-compose/default.nix b/pkgs/applications/virtualization/docker-compose/default.nix
index 14c5ec0a416..cf11b693293 100644
--- a/pkgs/applications/virtualization/docker-compose/default.nix
+++ b/pkgs/applications/virtualization/docker-compose/default.nix
@@ -1,27 +1,29 @@
 { stdenv, buildPythonApplication, fetchPypi, pythonOlder
+, installShellFiles
 , mock, pytest, nose
 , 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
   doCheck = false;
+  nativeBuildInputs = [ installShellFiles ];
   checkInputs = [ mock pytest nose ];
   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;
@@ -33,11 +35,8 @@ buildPythonApplication rec {
   '';
 
   postInstall = ''
-    install -D -m 0444 contrib/completion/bash/docker-compose \
-      $out/share/bash-completion/completions/docker-compose
-
-    install -D -m 0444 contrib/completion/zsh/_docker-compose \
-      $out/share/zsh-completion/zsh/site-functions/_docker-compose
+    installShellCompletion --bash contrib/completion/bash/docker-compose
+    installShellCompletion --zsh contrib/completion/zsh/_docker-compose
   '';
 
   meta = with stdenv.lib; {
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 f7c49526fb1..e9fc96986a8 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -184,9 +184,9 @@ rec {
   # Get revisions from
   # https://github.com/docker/docker-ce/tree/${version}/components/engine/hack/dockerfile/install/*
 
-  docker_18_09 = makeOverridable dockerGen {
+  docker_18_09 = makeOverridable dockerGen rec {
     version = "18.09.9";
-    rev = "039a7df9ba8097dd987370782fcdd6ea79b26016";
+    rev = "v${version}";
     sha256 = "0wqhjx9qs96q2jd091wffn3cyv2aslqn2cvpdpgljk8yr9s0yg7h";
     runcRev = "3e425f80a8c931f88e6d94a8c831b9d5aa481657";
     runcSha256 = "18psc830b2rkwml1x6vxngam5b5wi3pj14mw817rshpzy87prspj";
@@ -196,10 +196,10 @@ rec {
     tiniSha256 = "1h20i3wwlbd8x4jr2gz68hgklh0lb0jj7y5xk1wvr8y58fip1rdn";
   };
 
-  docker_19_03 = makeOverridable dockerGen {
-    version = "19.03.8";
-    rev = "afacb8b7f0d8d4f9d2a8e8736e9c993e672b41f3";
-    sha256 = "15iq16rlnkw78lvapcfpbnsnxhdjbvfvgzg3xzxhpdg1dmq40b6j";
+  docker_19_03 = makeOverridable dockerGen rec {
+    version = "19.03.12";
+    rev = "v${version}";
+    sha256 = "0i5xr8q3yjrz5zsjcq63v4g1mzqpingjr1hbf9amk14484i2wkw7";
     runcRev = "dc9208a3303feef5b3839f4323d9beb36df0a9dd"; # v1.0.0-rc10
     runcSha256 = "0pi3rvj585997m4z9ljkxz2z9yxf9p2jr0pmqbqrc7bc95f5hagk";
     containerdRev = "7ad184331fa3e55e52b890ea95e65ba581ae3429"; # v1.2.13
diff --git a/pkgs/applications/virtualization/firectl/default.nix b/pkgs/applications/virtualization/firectl/default.nix
index f91cc6d5ed3..523e96f347c 100644
--- a/pkgs/applications/virtualization/firectl/default.nix
+++ b/pkgs/applications/virtualization/firectl/default.nix
@@ -4,6 +4,8 @@ buildGoModule rec {
   pname = "firectl";
   version = "0.1.0";
 
+  patches = [ ./gomod.patch ];
+
   src = fetchFromGitHub {
     owner = "firecracker-microvm";
     repo = pname;
@@ -11,7 +13,9 @@ buildGoModule rec {
     sha256 = "1ni3yx4rjhrkqk2038c6hkb2jwsdj2llx233wd5wgpvb6c57652p";
   };
 
-  modSha256 = "1nqjz1afklcxc3xcpmygjdh3lfxjk6zvmghr8z8fr3nw2wvw2ddr";
+  vendorSha256 = "1xbpck1gvzl75xgrajf5yzl199l4f2f6j3mac5586i7b00b9jxqj";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "A command-line tool to run Firecracker microVMs";
diff --git a/pkgs/applications/virtualization/firectl/gomod.patch b/pkgs/applications/virtualization/firectl/gomod.patch
new file mode 100644
index 00000000000..96c65e72822
--- /dev/null
+++ b/pkgs/applications/virtualization/firectl/gomod.patch
@@ -0,0 +1,15 @@
+diff --git a/go.mod b/go.mod
+index 1044001..7bafeda 100644
+--- a/go.mod
++++ b/go.mod
+@@ -1,7 +1,10 @@
+ module github.com/firecracker-microvm/firectl
+ 
++go 1.14
++
+ require (
+ 	github.com/firecracker-microvm/firecracker-go-sdk v0.15.1
++	github.com/go-openapi/strfmt v0.17.1
+ 	github.com/jessevdk/go-flags v1.4.0
+ 	github.com/pkg/errors v0.8.0
+ 	github.com/sirupsen/logrus v1.1.1
diff --git a/pkgs/applications/virtualization/gvisor/containerd-shim.nix b/pkgs/applications/virtualization/gvisor/containerd-shim.nix
index 702aeaded3e..c8610b73865 100644
--- a/pkgs/applications/virtualization/gvisor/containerd-shim.nix
+++ b/pkgs/applications/virtualization/gvisor/containerd-shim.nix
@@ -11,13 +11,12 @@ buildGoModule rec {
     sha256 = "077bhrmjrpcxv1z020yxhx2c4asn66j21gxlpa6hz0av3lfck9lm";
   };
 
-  modSha256 = "1jdhgbrn59ahnabwnig99i21f6kimmqx9f3dg10ffwfs3dx0gzlg";
+  vendorSha256 = "11jai5jl024k7wbhz4a3zzdbvl0si07jwgwmyr8bn4i0nqx8ig2k";
 
   buildPhase = ''
     make
   '';
 
-  doCheck = true;
   checkPhase = ''
     make test
   '';
diff --git a/pkgs/applications/virtualization/gvisor/default.nix b/pkgs/applications/virtualization/gvisor/default.nix
index 7d62b1b9fa2..576f2d9e6f2 100644
--- a/pkgs/applications/virtualization/gvisor/default.nix
+++ b/pkgs/applications/virtualization/gvisor/default.nix
@@ -76,7 +76,7 @@ in buildBazelPackage rec {
       rm -f "$bazelOut"/java.log "$bazelOut"/java.log.*
     '';
 
-    sha256 = "0r11kbyp1ambgcj35gvjjmxrsrdg7b9jb9sq3kih4lik7zyljp25";
+    sha256 = "0myffqywbvqhax995z55jymwnwyxmp13r27kpbc7wb5fk9s4skvr";
   };
 
   buildAttrs = {
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/oci-seccomp-bpf-hook/default.nix b/pkgs/applications/virtualization/oci-seccomp-bpf-hook/default.nix
new file mode 100644
index 00000000000..0e97a7c3646
--- /dev/null
+++ b/pkgs/applications/virtualization/oci-seccomp-bpf-hook/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+, go-md2man
+, installShellFiles
+, libseccomp
+, linuxPackages
+, pkg-config
+}:
+
+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 = [
+    libseccomp
+    linuxPackages.bcc
+  ];
+
+  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/applications/virtualization/open-vm-tools/default.nix b/pkgs/applications/virtualization/open-vm-tools/default.nix
index 84f74ef6dd0..df9a89293f2 100644
--- a/pkgs/applications/virtualization/open-vm-tools/default.nix
+++ b/pkgs/applications/virtualization/open-vm-tools/default.nix
@@ -1,18 +1,18 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper, autoreconfHook,
   fuse, libmspack, openssl, pam, xercesc, icu, libdnet, procps,
   libX11, libXext, libXinerama, libXi, libXrender, libXrandr, libXtst,
-  pkgconfig, glib, gtk3, gtkmm3, iproute, dbus, systemd, which,
+  pkgconfig, glib, gdk-pixbuf-xlib, gtk3, gtkmm3, iproute, dbus, systemd, which,
   withX ? true }:
 
 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";
@@ -21,9 +21,13 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig ];
   buildInputs = [ fuse glib icu libdnet libmspack openssl pam procps xercesc ]
-      ++ lib.optionals withX [ gtk3 gtkmm3 libX11 libXext libXinerama libXi libXrender libXrandr libXtst ];
+      ++ lib.optionals withX [ gdk-pixbuf-xlib gtk3 gtkmm3 libX11 libXext libXinerama libXi libXrender libXrandr libXtst ];
+
+  patches = [
+    ./recognize_nixos.patch
+    ./find_gdk_pixbuf_xlib.patch #See https://github.com/vmware/open-vm-tools/pull/438
+  ];
 
-  patches = [ ./recognize_nixos.patch ];
   postPatch = ''
      # Build bugfix for 10.1.0, stolen from Arch PKGBUILD
      mkdir -p common-agent/etc/config
@@ -31,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/open-vm-tools/find_gdk_pixbuf_xlib.patch b/pkgs/applications/virtualization/open-vm-tools/find_gdk_pixbuf_xlib.patch
new file mode 100644
index 00000000000..6606c50e77d
--- /dev/null
+++ b/pkgs/applications/virtualization/open-vm-tools/find_gdk_pixbuf_xlib.patch
@@ -0,0 +1,12 @@
+diff --git a/lib/appUtil/Makefile.am b/lib/appUtil/Makefile.am
+index a0d8e391..899cd4e9 100644
+--- a/lib/appUtil/Makefile.am
++++ b/lib/appUtil/Makefile.am
+@@ -21,4 +21,6 @@ libAppUtil_la_SOURCES =
+ libAppUtil_la_SOURCES += appUtil.c
+ libAppUtil_la_SOURCES += appUtilX11.c
+ 
+-AM_CFLAGS = @GTK_CPPFLAGS@
++AM_CFLAGS =
++AM_CFLAGS += @GTK_CPPFLAGS@
++AM_CFLAGS += @GDK_PIXBUF_XLIB2_CPPFLAGS@
diff --git a/pkgs/applications/virtualization/podman-compose/default.nix b/pkgs/applications/virtualization/podman-compose/default.nix
index 31755f87f63..de3d944bacb 100644
--- a/pkgs/applications/virtualization/podman-compose/default.nix
+++ b/pkgs/applications/virtualization/podman-compose/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonApplication, fetchPypi, podman, pyyaml }:
+{ lib, buildPythonApplication, fetchPypi, pyyaml }:
 
 buildPythonApplication rec {
   version = "0.1.5";
@@ -9,13 +9,13 @@ buildPythonApplication rec {
     sha256 = "1sgbc889zq127qhxa9frhswa1mid19fs5qnyzfihx648y5i968pv";
   };
 
-  propagatedBuildInputs = [ pyyaml podman ];
+  propagatedBuildInputs = [ pyyaml ];
 
-  meta = with lib; {
+  meta = {
     description = "An implementation of docker-compose with podman backend";
     homepage = "https://github.com/containers/podman-compose";
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ sikmir ];
+    license = lib.licenses.gpl2;
+    platforms = lib.platforms.linux;
+    maintainers = [ lib.maintainers.sikmir ] ++ lib.teams.podman.members;
   };
 }
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index 4a9fa078752..b6656ea50bd 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -2,51 +2,65 @@
 , fetchFromGitHub
 , pkg-config
 , installShellFiles
-, buildGoPackage
+, buildGoModule
 , gpgme
 , lvm2
 , btrfs-progs
+, libapparmor
 , libseccomp
+, libselinux
 , systemd
 , go-md2man
 , nixosTests
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "podman";
-  version = "1.9.1";
+  version = "2.0.4";
 
   src = fetchFromGitHub {
     owner = "containers";
-    repo = "libpod";
+    repo = "podman";
     rev = "v${version}";
-    sha256 = "0dr5vd52fnjwx3zn2nj2nlvkbvh5bg579nf3qw8swrn8i1jwxd6j";
+    sha256 = "0rnli16nh5m3a8jjkkm1k4f896yk1k1rg48rjiajqhfrr98qwr0f";
   };
 
-  goPackagePath = "github.com/containers/libpod";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   outputs = [ "out" "man" ];
 
   nativeBuildInputs = [ pkg-config go-md2man installShellFiles ];
 
-  buildInputs = stdenv.lib.optionals stdenv.isLinux [ btrfs-progs libseccomp gpgme lvm2 systemd ];
+  buildInputs = stdenv.lib.optionals stdenv.isLinux [
+    btrfs-progs
+    gpgme
+    libapparmor
+    libseccomp
+    libselinux
+    lvm2
+    systemd
+  ];
 
   buildPhase = ''
-    pushd go/src/${goPackagePath}
     patchShebangs .
     ${if stdenv.isDarwin
-      then "make CGO_ENABLED=0 BUILDTAGS='remoteclient containers_image_openpgp exclude_graphdriver_devicemapper' varlink_generate all"
-      else "make binaries docs"}
+      then "make podman-remote"
+      else "make podman"}
+    make docs
   '';
 
-  installPhase = ''
+  installPhase = stdenv.lib.optionalString stdenv.isDarwin ''
+    mv bin/{podman-remote,podman}
+  '' + ''
     install -Dm555 bin/podman $out/bin/podman
     installShellCompletion --bash completions/bash/podman
     installShellCompletion --zsh completions/zsh/_podman
-    MANDIR=$man/share/man make install.man
+    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/";
@@ -54,6 +68,5 @@ buildGoPackage rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ marsam ] ++ teams.podman.members;
     platforms = platforms.unix;
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/applications/virtualization/podman/wrapper.nix b/pkgs/applications/virtualization/podman/wrapper.nix
index 99233696b3e..d97d182496a 100644
--- a/pkgs/applications/virtualization/podman/wrapper.nix
+++ b/pkgs/applications/virtualization/podman/wrapper.nix
@@ -5,12 +5,12 @@
 , extraPackages ? []
 , podman # Docker compat
 , runc # Default container runtime
-, crun # Default container runtime (cgroups v2)
+, crun # Container runtime (default with cgroups v2 for podman/buildah)
 , conmon # Container runtime monitor
 , slirp4netns # User-mode networking for unprivileged namespaces
 , fuse-overlayfs # CoW for images, much faster than default vfs
 , utillinux # nsenter
-, cni-plugins
+, cni-plugins # not added to path
 , iptables
 }:
 
@@ -29,7 +29,7 @@ let
 
 in runCommand podman.name {
   name = "${podman.pname}-wrapper-${podman.version}";
-  inherit (podman) pname version;
+  inherit (podman) pname version passthru;
 
   meta = builtins.removeAttrs podman.meta [ "outputsToInstall" ];
 
diff --git a/pkgs/applications/virtualization/qboot/default.nix b/pkgs/applications/virtualization/qboot/default.nix
index d770308239f..8d1f9dac2e5 100644
--- a/pkgs/applications/virtualization/qboot/default.nix
+++ b/pkgs/applications/virtualization/qboot/default.nix
@@ -1,22 +1,26 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, meson, ninja, fetchFromGitHub, nixosTests }:
 
 stdenv.mkDerivation {
-  name = "qboot-20170330";
+  name = "qboot-20200423";
 
   src = fetchFromGitHub {
     owner = "bonzini";
     repo = "qboot";
-    rev = "ac9488f26528394856b94bda0797f5bd9c69a26a";
-    sha256 = "0l83nbjndin1cbcimkqkiqr5df8d76cnhyk26rd3aygb2bf7cspy";
+    rev = "de50b5931c08f5fba7039ddccfb249a5b3b0b18d";
+    sha256 = "1d0h29zz535m0pq18k3aya93q7lqm2858mlcp8mlfkbq54n8c5d8";
   };
 
+  nativeBuildInputs = [ meson ninja ];
+
   installPhase = ''
     mkdir -p $out
-    cp bios.bin* $out/.
+    cp bios.bin bios.bin.elf $out/.
   '';
 
   hardeningDisable = [ "stackprotector" "pic" ];
 
+  passthru.tests = { qboot = nixosTests.qboot; };
+
   meta = {
     description = "A simple x86 firmware for booting Linux";
     homepage = "https://github.com/bonzini/qboot";
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index d6611e20a9c..535f8371153 100644
--- a/pkgs/applications/virtualization/qemu/default.nix
+++ b/pkgs/applications/virtualization/qemu/default.nix
@@ -8,7 +8,7 @@
 , seccompSupport ? stdenv.isLinux, libseccomp
 , pulseSupport ? !stdenv.isDarwin, libpulseaudio
 , sdlSupport ? !stdenv.isDarwin, SDL2
-, gtkSupport ? !stdenv.isDarwin && !xenSupport, gtk3, gettext, vte
+, gtkSupport ? !stdenv.isDarwin && !xenSupport, gtk3, gettext, vte, wrapGAppsHook
 , vncSupport ? true, libjpeg, libpng
 , smartcardSupport ? true, libcacard
 , spiceSupport ? !stdenv.isDarwin, spice, spice-protocol
@@ -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,18 +36,19 @@ let
 in
 
 stdenv.mkDerivation rec {
-  version = "4.2.0";
+  version = "5.1.0";
   pname = "qemu"
     + stdenv.lib.optionalString xenSupport "-xen"
     + stdenv.lib.optionalString hostCpuOnly "-host-cpu-only"
     + stdenv.lib.optionalString nixosTestRunner "-for-vm-tests";
 
   src = fetchurl {
-    url = "https://wiki.qemu.org/download/qemu-${version}.tar.bz2";
-    sha256 = "1gczv8hn3wqci86css3mhzrppp3z8vppxw25l08j589k6bvz7x1w";
+    url= "https://download.qemu.org/qemu-${version}.tar.xz";
+    sha256 = "1rd41wwlvp0vpialjp2czs6i3lsc338xc72l3zkbb7ixjfslw5y9";
   };
 
-  nativeBuildInputs = [ python python.pkgs.sphinx pkgconfig flex bison ];
+  nativeBuildInputs = [ python python.pkgs.sphinx pkgconfig flex bison ]
+    ++ optionals gtkSupport [ wrapGAppsHook ];
   buildInputs =
     [ zlib glib ncurses perl pixman
       vde2 texinfo makeWrapper lzo snappy
@@ -77,44 +79,6 @@ stdenv.mkDerivation rec {
     ./no-etc-install.patch
     ./fix-qemu-ga.patch
     ./9p-ignore-noatime.patch
-    (fetchpatch {
-      name = "CVE-2019-15890.patch";
-      url = "https://git.qemu.org/?p=libslirp.git;a=patch;h=c59279437eda91841b9d26079c70b8a540d41204";
-      sha256 = "1q2rc67mfdz034mk81z9bw105x9zad7n954sy3kq068b1svrf7iy";
-      stripLen = 1;
-      extraPrefix = "slirp/";
-    })
-    # patches listed at: https://nvd.nist.gov/vuln/detail/CVE-2020-7039
-    (fetchpatch {
-      name = "CVE-2020-7039-1.patch";
-      url = "https://git.qemu.org/?p=libslirp.git;a=patch;h=2655fffed7a9e765bcb4701dd876e9dab975f289";
-      sha256 = "1jh0k3lg3553c2x1kq1kl3967jabhba5gm584wjpmr5mjqk3lnz1";
-      stripLen = 1;
-      extraPrefix = "slirp/";
-      excludes = ["slirp/CHANGELOG.md"];
-    })
-    (fetchpatch {
-      name = "CVE-2020-7039-2.patch";
-      url = "https://git.qemu.org/?p=libslirp.git;a=patch;h=82ebe9c370a0e2970fb5695aa19aa5214a6a1c80";
-      sha256 = "08ccxcmrhzknnzd1a1q2brszv3a7h02n26r73kpli10b0hn12r2l";
-      stripLen = 1;
-      extraPrefix = "slirp/";
-    })
-    (fetchpatch {
-      name = "CVE-2020-7039-3.patch";
-      url = "https://git.qemu.org/?p=libslirp.git;a=patch;h=ce131029d6d4a405cb7d3ac6716d03e58fb4a5d9";
-      sha256 = "18ypj9an2jmsmdn58853rbz42r10587h7cz5fdws2x4635778ibd";
-      stripLen = 1;
-      extraPrefix = "slirp/";
-    })
-    # patches listed at: https://nvd.nist.gov/vuln/detail/CVE-2020-7211
-    (fetchpatch {
-      name = "CVE-2020-7211.patch";
-      url = "https://git.qemu.org/?p=libslirp.git;a=patch;h=14ec36e107a8c9af7d0a80c3571fe39b291ff1d4";
-      sha256 = "1lc8zabqs580iqrsr5k7zwgkx6qjmja7apwfbc36lkvnrxwfzmrc";
-      stripLen = 1;
-      extraPrefix = "slirp/";
-    })
   ] ++ optional nixosTestRunner ./force-uid0-on-9p.patch
     ++ optionals stdenv.hostPlatform.isMusl [
     (fetchpatch {
@@ -145,6 +109,8 @@ stdenv.mkDerivation rec {
       "--sysconfdir=/etc"
       "--localstatedir=/var"
       "--enable-docs"
+      "--enable-tools"
+      "--enable-guest-agent"
     ]
     # disable sysctl check on darwin.
     ++ optional stdenv.isDarwin "--cpu=x86_64"
@@ -162,16 +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
-
-  postFixup =
-    ''
-      # copy qemu-ga (guest agent) to separate output
-      mkdir -p $ga/bin
-      cp $out/bin/qemu-ga $ga/bin/
-    '';
+  dontWrapGApps = true;
+
+  postFixup = ''
+    # 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/fix-qemu-ga.patch b/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch
index c2f051e2b94..0b2dd0ee5ec 100644
--- a/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch
+++ b/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch
@@ -1,22 +1,36 @@
-diff --git a/qga/commands-posix.c b/qga/commands-posix.c
-index 0dc219d..9d020d3 100644
+diff -Naur a/qga/commands-posix.c b/qga/commands-posix.c
 --- a/qga/commands-posix.c
 +++ b/qga/commands-posix.c
-@@ -102,6 +102,8 @@ void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp)
+@@ -109,6 +109,8 @@
          reopen_fd_to_null(1);
          reopen_fd_to_null(2);
-
+ 
 +        execle("/run/current-system/sw/bin/shutdown", "shutdown", "-h", shutdown_flag, "+0",
 +               "hypervisor initiated shutdown", (char*)NULL, environ);
          execle("/sbin/shutdown", "shutdown", "-h", shutdown_flag, "+0",
                 "hypervisor initiated shutdown", (char*)NULL, environ);
          _exit(EXIT_FAILURE);
-@@ -189,6 +191,8 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp)
-
+@@ -157,11 +159,13 @@
+     pid_t pid;
+     Error *local_err = NULL;
+     struct timeval tv;
++    static const char hwclock_path_nix[] = "/run/current-system/sw/bin/hwclock";
+     static const char hwclock_path[] = "/sbin/hwclock";
+     static int hwclock_available = -1;
+ 
+     if (hwclock_available < 0) {
+-        hwclock_available = (access(hwclock_path, X_OK) == 0);
++        hwclock_available = (access(hwclock_path_nix, X_OK) == 0) ||
++                            (access(hwclock_path, X_OK) == 0);
+     }
+ 
+     if (!hwclock_available) {
+@@ -207,6 +211,8 @@
+ 
          /* Use '/sbin/hwclock -w' to set RTC from the system time,
           * or '/sbin/hwclock -s' to set the system time from RTC. */
-+        execle("/run/current-system/sw/bin/hwclock", "hwclock", has_time ? "-w" : "-s",
++        execle(hwclock_path_nix, "hwclock", has_time ? "-w" : "-s",
 +               NULL, environ);
-         execle("/sbin/hwclock", "hwclock", has_time ? "-w" : "-s",
+         execle(hwclock_path, "hwclock", has_time ? "-w" : "-s",
                 NULL, environ);
          _exit(EXIT_FAILURE);
diff --git a/pkgs/applications/virtualization/qemu/utils.nix b/pkgs/applications/virtualization/qemu/utils.nix
index 430d7122179..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,5 +13,10 @@ 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/rkt/default.nix b/pkgs/applications/virtualization/rkt/default.nix
deleted file mode 100644
index f3b68e5c227..00000000000
--- a/pkgs/applications/virtualization/rkt/default.nix
+++ /dev/null
@@ -1,78 +0,0 @@
-{ stdenv, lib, autoreconfHook, acl, go, file, git, wget, gnupg, trousers, squashfsTools,
-  cpio, fetchurl, fetchFromGitHub, iptables, systemd, makeWrapper, glibc }:
-
-let
-  # Always get the information from
-  # https://github.com/coreos/rkt/blob/v${VERSION}/stage1/usr_from_coreos/coreos-common.mk
-  coreosImageRelease = "1478.0.0";
-  coreosImageSystemdVersion = "233";
-
-  # TODO: track https://github.com/coreos/rkt/issues/1758 to allow "host" flavor.
-  stage1Flavours = [ "coreos" "fly" ];
-  stage1Dir = "lib/rkt/stage1-images";
-
-in stdenv.mkDerivation rec {
-  version = "1.30.0";
-  pname = "rkt";
-  BUILDDIR="build-${pname}-${version}";
-
-  src = fetchFromGitHub {
-    owner = "coreos";
-    repo = "rkt";
-    rev = "v${version}";
-    sha256 = "0dqf83b7iin1np8k8k1m8i99ybga8vx932q7n2q64yghkw7p6i00";
-  };
-
-  stage1BaseImage = fetchurl {
-    url = "http://alpha.release.core-os.net/amd64-usr/${coreosImageRelease}/coreos_production_pxe_image.cpio.gz";
-    sha256 = "0s4qdkkfp0iirfnm5ds3b3hxq0249kvpygyhflma8z90ivkzk5wq";
-  };
-
-  buildInputs = [
-    glibc.out glibc.static
-    autoreconfHook go file git wget gnupg trousers squashfsTools cpio acl systemd
-    makeWrapper
-  ];
-
-  preConfigure = ''
-    ./autogen.sh
-    configureFlagsArray=(
-      --with-stage1-flavors=${builtins.concatStringsSep "," stage1Flavours}
-      ${if lib.findFirst (p: p == "coreos") null stage1Flavours != null then "
-      --with-coreos-local-pxe-image-path=${stage1BaseImage}
-      --with-coreos-local-pxe-image-systemd-version=v${coreosImageSystemdVersion}
-      " else "" }
-      --with-stage1-default-location=$out/${stage1Dir}/stage1-${builtins.elemAt stage1Flavours 0}.aci
-    );
-  '';
-
-  preBuild = ''
-    export BUILDDIR
-    export GOCACHE="$TMPDIR/go-cache"
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp -Rv $BUILDDIR/target/bin/rkt $out/bin
-
-    mkdir -p $out/lib/rkt/stage1-images/
-    cp -Rv $BUILDDIR/target/bin/stage1-*.aci $out/${stage1Dir}/
-
-    wrapProgram $out/bin/rkt \
-      --prefix LD_LIBRARY_PATH : "${systemd.lib}/lib:${acl.out}/lib" \
-      --prefix PATH : ${iptables}/bin
-  '';
-
-  meta = with lib; {
-    description = "A fast, composable, and secure App Container runtime for Linux";
-    homepage = "https://github.com/coreos/rkt";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ ragge steveej ];
-    platforms = [ "x86_64-linux" ];
-    knownVulnerabilities = [
-      "CVE-2019-10144: processes run with `rkt enter` are given all capabilities during stage 2"
-      "CVE-2019-10145: processes run with `rkt enter` do not have seccomp filtering during stage 2"
-      "CVE-2019-10147: processes run with `rkt enter` are not limited by cgroups during stage 2"
-    ];
-  };
-}
diff --git a/pkgs/applications/virtualization/runc/default.nix b/pkgs/applications/virtualization/runc/default.nix
index 95db2a1d9e9..fd3d914af66 100644
--- a/pkgs/applications/virtualization/runc/default.nix
+++ b/pkgs/applications/virtualization/runc/default.nix
@@ -8,26 +8,29 @@
 , libapparmor
 , apparmor-parser
 , libseccomp
+, libselinux
+, nixosTests
 }:
 
 buildGoPackage rec {
   pname = "runc";
-  version = "1.0.0-rc10";
+  version = "1.0.0-rc92";
 
   src = fetchFromGitHub {
     owner = "opencontainers";
     repo = "runc";
     rev = "v${version}";
-    sha256 = "0pi3rvj585997m4z9ljkxz2z9yxf9p2jr0pmqbqrc7bc95f5hagk";
+    sha256 = "0r4zbxbs03xr639r7848282j1ybhibfdhnxyap9p76j5w8ixms94";
   };
 
   goPackagePath = "github.com/opencontainers/runc";
   outputs = [ "out" "man" ];
 
   nativeBuildInputs = [ go-md2man installShellFiles pkg-config which ];
-  buildInputs = [ libseccomp libapparmor apparmor-parser ];
 
-  makeFlags = [ "BUILDTAGS+=seccomp" "BUILDTAGS+=apparmor" ];
+  buildInputs = [ libselinux libseccomp libapparmor apparmor-parser ];
+
+  makeFlags = [ "BUILDTAGS+=seccomp" "BUILDTAGS+=apparmor" "BUILDTAGS+=selinux" ];
 
   buildPhase = ''
     cd go/src/${goPackagePath}
@@ -42,6 +45,8 @@ buildGoPackage rec {
     installManPage man/*/*.[1-9]
   '';
 
+  passthru.tests = { inherit (nixosTests) cri-o podman; };
+
   meta = with lib; {
     homepage = "https://github.com/opencontainers/runc";
     description = "A CLI tool for spawning and running containers according to the OCI specification";
diff --git a/pkgs/applications/virtualization/singularity/default.nix b/pkgs/applications/virtualization/singularity/default.nix
index f6a1a3bc6a9..8cec24534d4 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.1";
 
-  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 = "070jj6kbiw23sd2p4xhvmyb8gd83imwgisdf18ahkwp7dq85db3c";
   };
 
   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,28 @@ 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}
+
+    # 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
+
+    runHook postInstall
   '';
 
   postFixup = ''
     find $out/libexec/ -type f -executable -exec remove-references-to -t ${go} '{}' + || true
-
-    # These etc scripts shouldn't have their paths patched
-    cp etc/actions/* $out/etc/singularity/actions/
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/virtualization/spice-vdagent/default.nix b/pkgs/applications/virtualization/spice-vdagent/default.nix
index 22aa31a6dea..f577ded70ba 100644
--- a/pkgs/applications/virtualization/spice-vdagent/default.nix
+++ b/pkgs/applications/virtualization/spice-vdagent/default.nix
@@ -8,6 +8,9 @@ stdenv.mkDerivation rec {
     sha256 = "0n9k2kna2gd1zi6jv45zsp2jlv439nz5l5jjijirxqaycwi74srf";
   };
   NIX_CFLAGS_COMPILE = [ "-Wno-error=address-of-packed-member" ];
+  patchFlags = [ "-uNp1" ];
+  # included in the next release.
+  patches = [ ./timeout.diff ];
   postPatch = ''
     substituteInPlace data/spice-vdagent.desktop --replace /usr $out
   '';
diff --git a/pkgs/applications/virtualization/spice-vdagent/timeout.diff b/pkgs/applications/virtualization/spice-vdagent/timeout.diff
new file mode 100644
index 00000000000..2021e98e41f
--- /dev/null
+++ b/pkgs/applications/virtualization/spice-vdagent/timeout.diff
@@ -0,0 +1,84 @@
+diff --git a/src/udscs.c b/src/udscs.c
+index 4de75f8..7c99eed 100644
+--- a/src/udscs.c
++++ b/src/udscs.c
+@@ -186,6 +186,7 @@ struct udscs_server *udscs_server_new(
+     server->read_callback = read_callback;
+     server->error_cb = error_cb;
+     server->service = g_socket_service_new();
++    g_socket_service_stop(server->service);
+ 
+     g_signal_connect(server->service, "incoming",
+         G_CALLBACK(udscs_server_accept_cb), server);
+@@ -223,6 +224,11 @@ void udscs_server_listen_to_address(struct udscs_server *server,
+     g_object_unref(sock_addr);
+ }
+ 
++void udscs_server_start(struct udscs_server *server)
++{
++    g_socket_service_start(server->service);
++}
++
+ void udscs_server_destroy_connection(struct udscs_server *server,
+                                      UdscsConnection     *conn)
+ {
+diff --git a/src/udscs.h b/src/udscs.h
+index 45ebd3f..4f7ea36 100644
+--- a/src/udscs.h
++++ b/src/udscs.h
+@@ -98,6 +98,8 @@ void udscs_server_listen_to_address(struct udscs_server *server,
+                                     const gchar         *addr,
+                                     GError             **err);
+ 
++void udscs_server_start(struct udscs_server *server);
++
+ void udscs_server_destroy_connection(struct udscs_server *server,
+                                      UdscsConnection     *conn);
+ 
+diff --git a/src/vdagentd/vdagentd.c b/src/vdagentd/vdagentd.c
+index cfd0a51..753c9bf 100644
+--- a/src/vdagentd/vdagentd.c
++++ b/src/vdagentd/vdagentd.c
+@@ -1184,10 +1184,6 @@ int main(int argc, char *argv[])
+         uinput_device = g_strdup(DEFAULT_UINPUT_DEVICE);
+     }
+ 
+-    g_unix_signal_add(SIGINT, signal_handler, NULL);
+-    g_unix_signal_add(SIGHUP, signal_handler, NULL);
+-    g_unix_signal_add(SIGTERM, signal_handler, NULL);
+-
+     openlog("spice-vdagentd", do_daemonize ? 0 : LOG_PERROR, LOG_USER);
+ 
+     /* Setup communication with vdagent process(es) */
+@@ -1228,9 +1224,6 @@ int main(int argc, char *argv[])
+         }
+     }
+ 
+-    if (do_daemonize)
+-        daemonize();
+-
+ #ifdef WITH_STATIC_UINPUT
+     uinput = vdagentd_uinput_create(uinput_device, 1024, 768, NULL, 0,
+                                     debug > 1, uinput_fake);
+@@ -1240,6 +1233,13 @@ int main(int argc, char *argv[])
+     }
+ #endif
+ 
++    if (do_daemonize)
++        daemonize();
++
++    g_unix_signal_add(SIGINT, signal_handler, NULL);
++    g_unix_signal_add(SIGHUP, signal_handler, NULL);
++    g_unix_signal_add(SIGTERM, signal_handler, NULL);
++
+     if (want_session_info)
+         session_info = session_info_create(debug);
+     if (session_info) {
+@@ -1252,6 +1252,7 @@ int main(int argc, char *argv[])
+ 
+     active_xfers = g_hash_table_new(g_direct_hash, g_direct_equal);
+ 
++    udscs_server_start(server);
+     loop = g_main_loop_new(NULL, FALSE);
+     g_main_loop_run(loop);
+ 
diff --git a/pkgs/applications/virtualization/umoci/default.nix b/pkgs/applications/virtualization/umoci/default.nix
index f07bb0fc164..bef40bef87b 100644
--- a/pkgs/applications/virtualization/umoci/default.nix
+++ b/pkgs/applications/virtualization/umoci/default.nix
@@ -1,25 +1,40 @@
-{ lib, fetchFromGitHub, buildGoPackage }:
+{ lib
+, fetchFromGitHub
+, buildGoModule
+, go-md2man
+, installShellFiles
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "umoci";
-  version = "0.4.5";
+  version = "0.4.6";
 
   src = fetchFromGitHub {
-    owner = "openSUSE";
+    owner = "opencontainers";
     repo = "umoci";
     rev = "v${version}";
-    sha256 = "1gzj4nnys73wajdwjn5jsskvnhzh8s2vmyl76ax8drpvw19bd5g3";
+    sha256 = "0jaar26l940yh77cs31c3zndiycp85m3fz4zivcibzi68g6n6yzg";
   };
 
-  goPackagePath = "github.com/openSUSE/umoci";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
+  nativeBuildInputs = [ go-md2man installShellFiles ];
+
+  postInstall = ''
+    sed -i '/SHELL =/d' Makefile
+    make docs
+    installManPage doc/man/*.[1-9]
+  '';
+
   meta = with lib; {
     description = "umoci modifies Open Container images";
     homepage = "https://umo.ci";
     license = licenses.asl20;
     maintainers = with maintainers; [ zokrezyl ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
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/virtualization/x11docker/default.nix b/pkgs/applications/virtualization/x11docker/default.nix
index 7ef91e6f609..cbaa0a57992 100644
--- a/pkgs/applications/virtualization/x11docker/default.nix
+++ b/pkgs/applications/virtualization/x11docker/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchFromGitHub, makeWrapper, nx-libs, xorg, getopt, gnugrep, gawk, ps, mount, iproute }:
 stdenv.mkDerivation rec {
   pname = "x11docker";
-  version = "6.6.1";
+  version = "6.6.2";
   src = fetchFromGitHub {
     owner = "mviereck";
     repo = "x11docker";
     rev = "v${version}";
-    sha256 = "0p1ypgy45ngxxjczd986pkfh4cn5bs45cwzlfv9fm2p58fkx3aar";
+    sha256 = "1skdgr2hipd7yx9c7r7nr3914gm9cm1xj6h3qdsa9f92xxm3aml1";
   };
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/applications/virtualization/xhyve/default.nix b/pkgs/applications/virtualization/xhyve/default.nix
index 921a54b11a2..db9a7ef8257 100644
--- a/pkgs/applications/virtualization/xhyve/default.nix
+++ b/pkgs/applications/virtualization/xhyve/default.nix
@@ -27,10 +27,11 @@ stdenv.mkDerivation rec {
     cp build/xhyve $out/bin
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Lightweight Virtualization on macOS Based on bhyve";
     homepage = "https://github.com/mist64/xhyve";
-    maintainers = [ lib.maintainers.lnl7 ];
-    platforms = lib.platforms.darwin;
+    maintainers = [ maintainers.lnl7 ];
+    license = licenses.bsd2;
+    platforms = platforms.darwin;
   };
 }
diff --git a/pkgs/applications/window-managers/berry/default.nix b/pkgs/applications/window-managers/berry/default.nix
new file mode 100644
index 00000000000..2a41a3d3c07
--- /dev/null
+++ b/pkgs/applications/window-managers/berry/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub
+, libX11, libXft, libXinerama, fontconfig, freetype }:
+
+stdenv.mkDerivation rec {
+  pname = "berry";
+  version = "0.1.5";
+
+  src = fetchFromGitHub {
+    owner = "JLErvin";
+    repo = "berry";
+    rev = version;
+    sha256 = "1wxbjzpwqb9x7vd7kb095fiqj271rki980dnwcxjxpqlmmrmjzyl";
+  };
+
+  buildInputs = [ libX11 libXft libXinerama fontconfig freetype ];
+
+  preBuild = ''
+    makeFlagsArray+=( PREFIX="${placeholder "out"}"
+                      X11INC="${libX11.dev}/include"
+                      X11LIB="${libX11}/lib"
+                      XINERAMALIBS="-lXinerama"
+                      XINERAMAFLAGS="-DXINERAMA"
+                      FREETYPELIBS="-lfontconfig -lXft"
+                      FREETYPEINC="${freetype.dev}/include/freetype2" )
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A healthy, bite-sized window manager";
+    longDescription = ''
+      berry is a healthy, bite-sized window manager written in C for unix
+      systems. Its main features include:
+
+      - Controlled via a powerful command-line client, allowing users to control
+        windows via a hotkey daemon such as sxhkd or expand functionality via
+        shell scripts.
+      - Small, hackable source code.
+      - Extensible themeing options with double borders, title bars, and window
+        text.
+      - Intuitively place new windows in unoccupied spaces.
+      - Virtual desktops.
+    '';
+    homepage = "https://berrywm.org/";
+    license = licenses.mit;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
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 0e57643c64d..18baefdbf3e 100644
--- a/pkgs/applications/window-managers/cwm/default.nix
+++ b/pkgs/applications/window-managers/cwm/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
 
   pname = "cwm";
-  version = "6.6";
+  version = "6.7";
 
   src = fetchFromGitHub {
     owner = "leahneukirchen";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1rvb4y37vw3bpkqa6fbizgc74x3nrlkk6yf5hlm0hf8qz0c17vbl";
+    sha256 = "0f9xmki2hx10k8iisfzc7nm1l31zkf1r06pdgn06ar9w9nizrld9";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -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 568258ee2c4..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.6.4";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "Gerschtli";
     repo = "dwm-status";
     rev = version;
-    sha256 = "05dhd2gy7ysrnchdimrdd7jvzs1db9fyrk4ci7850jhrgavfd7c4";
+    sha256 = "172qkzbi37j6wx81pyqqffi9wxbg3bf8nis7d15ncn1yfd5r4gqh";
   };
 
   nativeBuildInputs = [ makeWrapper pkgconfig ];
   buildInputs = [ dbus gdk-pixbuf libnotify xorg.libX11 ];
 
-  cargoSha256 = "0zkbps8vsjcvy7x0sgb07kacszi57dlyq8j6ia6yy0jyqnvlaqa7";
+  cargoSha256 = "041sd9zm1c3v6iihnwjcya2xg5yxb2y4biyxpjlfblz2srxa15dm";
 
   postInstall = lib.optionalString (bins != [])  ''
     wrapProgram $out/bin/dwm-status --prefix "PATH" : "${stdenv.lib.makeBinPath bins}"
diff --git a/pkgs/applications/window-managers/herbstluftwm/default.nix b/pkgs/applications/window-managers/herbstluftwm/default.nix
index 7dc715e126c..e547cea3c54 100644
--- a/pkgs/applications/window-managers/herbstluftwm/default.nix
+++ b/pkgs/applications/window-managers/herbstluftwm/default.nix
@@ -8,11 +8,11 @@ assert withDoc -> asciidoc != null;
 
 stdenv.mkDerivation rec {
   pname = "herbstluftwm";
-  version = "0.8.1";
+  version = "0.8.3";
 
   src = fetchurl {
     url = "https://herbstluftwm.org/tarballs/herbstluftwm-${version}.tar.gz";
-    sha256 = "0c1lf82z6a56g8asin91cmqhzk3anw0xwc44b31bpjixadmns57y";
+    sha256 = "1qmb4pjf2f6g0dvcg11cw9njwmxblhqzd70ai8qnlgqw1iz3nkm1";
   };
 
   outputs = [
diff --git a/pkgs/applications/window-managers/hikari/default.nix b/pkgs/applications/window-managers/hikari/default.nix
new file mode 100644
index 00000000000..9bf68adaef4
--- /dev/null
+++ b/pkgs/applications/window-managers/hikari/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchzip,
+  pkgconfig, bmake,
+  cairo, glib, libevdev, libinput, libxkbcommon, linux-pam, pango, pixman,
+  libucl, wayland, wayland-protocols, wlroots,
+  features ? {
+    gammacontrol = true;
+    layershell   = true;
+    screencopy   = true;
+    xwayland     = true;
+  }
+}:
+
+let
+  pname = "hikari";
+  version = "2.1.2";
+in
+
+stdenv.mkDerivation {
+  inherit pname version;
+
+  src = fetchzip {
+    url = "https://hikari.acmelabs.space/releases/${pname}-${version}.tar.gz";
+    sha256 = "1qzbwc8dgsvp5jb4faapcrg9npsl11gq8jvhbbk2h7hj52c5lgmv";
+  };
+
+  nativeBuildInputs = [ pkgconfig bmake ];
+
+  buildInputs = [
+    cairo
+    glib
+    libevdev
+    libinput
+    libxkbcommon
+    linux-pam
+    pango
+    pixman
+    libucl
+    wayland
+    wayland-protocols
+    wlroots
+  ];
+
+  enableParallelBuilding = true;
+
+  # Must replace GNU Make by bmake
+  buildPhase = with stdenv.lib; concatStringsSep " " (
+    [ "bmake" "-j$NIX_BUILD_CORES" "PREFIX=$out" ]
+    ++ optional stdenv.isLinux "WITH_POSIX_C_SOURCE=YES"
+    ++ mapAttrsToList (feat: enabled:
+         optionalString enabled "WITH_${toUpper feat}=YES"
+       ) features
+  );
+
+  # Can't suid in nix store
+  # Run hikari as root (it will drop privileges as early as possible), or create
+  # a systemd unit to give it the necessary permissions/capabilities.
+  patchPhase = ''
+    substituteInPlace Makefile --replace '4555' '555'
+  '';
+
+  installPhase = ''
+    bmake \
+      PREFIX=$out \
+      install
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Stacking Wayland compositor which is actively developed on FreeBSD but also supports Linux";
+    homepage    = "https://hikari.acmelabs.space";
+    license     = licenses.bsd2;
+    platforms   = platforms.linux ++ platforms.freebsd;
+    maintainers = with maintainers; [ jpotier ];
+  };
+}
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 062a8c4b8d8..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.1";
+  version = "2.12.c.5";
   pname = "i3lock-color";
 
   src = fetchFromGitHub {
     owner = "PandorasFox";
     repo = "i3lock-color";
     rev = version;
-    sha256 = "1q09cfgkikqbrkk1kljg8dsgbs5nacixhdqaww18h94hmlnbbssc";
+    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/i3/pystatus.nix b/pkgs/applications/window-managers/i3/pystatus.nix
index 29bda8e4e2b..beefdaf891c 100644
--- a/pkgs/applications/window-managers/i3/pystatus.nix
+++ b/pkgs/applications/window-managers/i3/pystatus.nix
@@ -1,31 +1,45 @@
-{ stdenv, fetchFromGitHub, libpulseaudio, python3Packages, extraLibs ? [] }:
+{ stdenv
+, fetchFromGitHub
+, libpulseaudio
+, libnotify
+, gobject-introspection
+, python3Packages
+, wrapGAppsHook
+, extraLibs ? [] }:
 
 python3Packages.buildPythonApplication rec {
   # i3pystatus moved to rolling release:
   # https://github.com/enkore/i3pystatus/issues/584
-  version = "unstable-2019-06-10";
+  version = "unstable-2020-06-12";
   pname = "i3pystatus";
 
-  src = fetchFromGitHub
-  {
+  src = fetchFromGitHub {
     owner = "enkore";
     repo = "i3pystatus";
-    rev = "56ce08d0ff8d5d64950d6b588ebede35a95e0ce2";
-    sha256 = "12938860jbcly1xwhd71jvy2dff28pwv9kqh6mab1859148bzmcg";
+    rev = "dad5eb0c5c8a2ecd20c37ade4732586c6e53f44b";
+    sha256 = "18ygvkl92yr69kxsym57k1mc90asdxpz4b943i61qr0s4fc5n4mq";
   };
 
-  propagatedBuildInputs = with python3Packages; [ keyring colour netifaces psutil basiciw ] ++
-    [ libpulseaudio ] ++ extraLibs;
+  buildInputs = [ libpulseaudio libnotify gobject-introspection ];
 
-  libpulseaudioPath = stdenv.lib.makeLibraryPath [ libpulseaudio ];
-  ldWrapperSuffix = "--suffix LD_LIBRARY_PATH : \"${libpulseaudioPath}\"";
-  # LC_TIME != C results in locale.Error: unsupported locale setting
-  makeWrapperArgs = [ "--set LC_TIME C" ldWrapperSuffix ]; # libpulseaudio.so is loaded manually
+  propagatedBuildInputs = with python3Packages; [
+    keyring colour netifaces psutil basiciw pygobject3
+  ] ++ extraLibs;
+
+  makeWrapperArgs = [
+    # LC_TIME != C results in locale.Error: unsupported locale setting
+    "--set" "LC_TIME" "C"
+    "--suffix" "LD_LIBRARY_PATH" ":" "${stdenv.lib.makeLibraryPath [ libpulseaudio ]}"
+  ];
+
+  postPatch = ''
+    makeWrapperArgs+=(--set GI_TYPELIB_PATH "$GI_TYPELIB_PATH")
+  '';
 
   postInstall = ''
     makeWrapper ${python3Packages.python.interpreter} $out/bin/${pname}-python-interpreter \
       --prefix PYTHONPATH : "$PYTHONPATH" \
-      ${ldWrapperSuffix}
+      ''${makeWrapperArgs[@]}
   '';
 
   # no tests in tarball
diff --git a/pkgs/applications/window-managers/i3/status-rust.nix b/pkgs/applications/window-managers/i3/status-rust.nix
index 62389e1230a..8bd3d581434 100644
--- a/pkgs/applications/window-managers/i3/status-rust.nix
+++ b/pkgs/applications/window-managers/i3/status-rust.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "i3status-rust";
-  version = "0.13.1";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "greshake";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0va6ny1v7lk30hhx4i5qyk9fwg3apy2nmh6kbmxhcf0rs5449ikg";
+    sha256 = "11qhzjml04njhfa033v98m4yd522zj91s6ffvrm0m6sk7m0wyjsc";
   };
 
-  cargoSha256 = "1lywr21kk3idjyc10gy4848dmmgyqc2jjf7hpzq0vywkp639bf2x";
+  cargoSha256 = "0jmmxld4rsjj6p5nazi3d8j1hh7r34q6kyfqq4wv0sjc77gcpaxd";
 
   nativeBuildInputs = [ pkgconfig ];
 
diff --git a/pkgs/applications/window-managers/icewm/default.nix b/pkgs/applications/window-managers/icewm/default.nix
index b6b07d8d727..57f4a764c90 100644
--- a/pkgs/applications/window-managers/icewm/default.nix
+++ b/pkgs/applications/window-managers/icewm/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, cmake, gettext, perl, asciidoc
 , libjpeg, libtiff, libungif, libpng, imlib, expat
-, freetype, fontconfig, pkgconfig, gdk-pixbuf
+, freetype, fontconfig, pkgconfig, gdk-pixbuf, gdk-pixbuf-xlib, glib
 , mkfontdir, libX11, libXft, libXext, libXinerama
 , libXrandr, libICE, libSM, libXpm, libXdmcp, libxcb
 , libpthreadstubs, pcre, libXdamage, libXcomposite, libXfixes
@@ -9,20 +9,20 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "icewm";
-  version = "1.6.5";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner  = "bbidulock";
     repo   = "icewm";
     rev    = version;
-    sha256 = "1glzpkpl0vl5sjn1d9jlvwd9ch16dvxvsf2n310kb0ycpfkl84vs";
+    sha256 = "0x6axhwfwxxgnljf3201hvrwa90yacf3ln24lsywrk1bxq9am74b";
   };
 
   nativeBuildInputs = [ cmake pkgconfig perl asciidoc ];
 
   buildInputs = [
     gettext libjpeg libtiff libungif libpng imlib expat
-    freetype fontconfig gdk-pixbuf mkfontdir libX11
+    freetype fontconfig gdk-pixbuf gdk-pixbuf-xlib glib mkfontdir libX11
     libXft libXext libXinerama libXrandr libICE libSM libXpm
     libXdmcp libxcb libpthreadstubs pcre libsndfile fribidi
     libXdamage libXcomposite libXfixes
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/lwm/default.nix b/pkgs/applications/window-managers/lwm/default.nix
new file mode 100644
index 00000000000..49cdc81b9ce
--- /dev/null
+++ b/pkgs/applications/window-managers/lwm/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl
+, imake, libX11, libSM, libXext, libICE }:
+
+stdenv.mkDerivation rec {
+  pname = "lwm";
+  version = "1.2.4";
+
+  src = fetchurl {
+    url = "http://www.jfc.org.uk/files/lwm/${pname}-${version}.tar.gz";
+    sha256 = "1bcdr173f0gl61fyl43p3gr145angci7lvjqb8rl00y9f9amvh3y";
+  };
+
+  nativeBuildInputs = [ imake ];
+
+  buildInputs = [ libX11 libSM libXext libICE ];
+
+  dontConfigure = true;
+
+  preBuild = ''
+    sed -i 's|^LOCAL_LIBRARIES.*|& $(ICELIB)|' Imakefile
+    xmkmf
+  '';
+
+  installPhase = ''
+    install -dm755 $out/bin $out/share/man/man1
+    install -m755 lwm $out/bin/lwm
+    install -m644 lwm.man $out/share/man/man1/lwm.1
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Lightweight Window Manager";
+    longDescription = ''
+      lwm is a window manager for X that tries to keep out of your face. There
+      are no icons, no button bars, no icon docks, no root menus, no nothing: if
+      you want all that, then other programs can provide it. There's no
+      configurability either: if you want that, you want a different window
+      manager; one that helps your operating system in its evil conquest of your
+      disc space and its annexation of your physical memory.
+    '';
+    homepage = "http://www.jfc.org.uk/software/lwm.html";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/window-managers/notion/default.nix b/pkgs/applications/window-managers/notion/default.nix
index ac4f00f4545..494bb9ff1b7 100644
--- a/pkgs/applications/window-managers/notion/default.nix
+++ b/pkgs/applications/window-managers/notion/default.nix
@@ -5,15 +5,15 @@
 , xlibsWrapper, makeWrapper
 }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   pname = "notion";
-  version = "4.0.0";
+  version = "4.0.1";
 
   src = fetchFromGitHub {
     owner = "raboof";
     repo = pname;
     rev = version;
-    sha256 = "0rqfvwkj0j862hf6i4wsmb6185xibsskfj9kwy896qcpcg8w4kk7";
+    sha256 = "1s0fyacygvc9iz7b9v3b2cmzzqc02nh4g1p9bfcxbg254iscd502";
   };
 
   nativeBuildInputs = [ pkgconfig makeWrapper groff ];
diff --git a/pkgs/applications/window-managers/openbox/default.nix b/pkgs/applications/window-managers/openbox/default.nix
index a4ec6d067dc..39329e8004c 100644
--- a/pkgs/applications/window-managers/openbox/default.nix
+++ b/pkgs/applications/window-managers/openbox/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, python2
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, python3
 , libxml2, libXinerama, libXcursor, libXau, libXrandr, libICE, libSM
 , imlib2, pango, libstartup_notification, makeWrapper }:
 
@@ -7,22 +7,24 @@ stdenv.mkDerivation rec {
   version = "3.6.1";
 
   nativeBuildInputs = [
+    autoreconfHook
     pkgconfig
     makeWrapper
-    python2.pkgs.wrapPython
+    python3.pkgs.wrapPython
   ];
 
   buildInputs = [
     libxml2
     libXinerama libXcursor libXau libXrandr libICE libSM
     libstartup_notification
+    python3
   ];
 
   propagatedBuildInputs = [
     pango imlib2
   ];
 
-  pythonPath = with python2.pkgs; [
+  pythonPath = with python3.pkgs; [
     pyxdg
   ];
 
@@ -36,6 +38,15 @@ stdenv.mkDerivation rec {
     sha256 = "1ci9lq4qqhl31yz1jwwjiawah0f7x0vx44ap8baw7r6rdi00pyiv";
   };
 
+  patches = [
+    # Use fetchurl to avoid "fetchpatch: ignores file renames" #32084
+    # This patch adds python3 support
+    (fetchurl {
+      url = "https://git.archlinux.org/svntogit/community.git/plain/openbox/trunk/py3.patch?id=90cb57ef53d952bb6ab4c33a184f815bbe1791c0";
+      sha256 = "1ks99awlkhd5ph9kz94s1r6m1bfvh42g4rmxd14dyg5b421p1ljc";
+    })
+  ];
+
   postBuild = "gcc -O2 -o setlayout $(pkg-config --cflags --libs x11) $setlayoutSrc";
 
   # Openbox needs XDG_DATA_DIRS set or it can't find its default theme
diff --git a/pkgs/applications/window-managers/picom/default.nix b/pkgs/applications/window-managers/picom/default.nix
index ad5f73ab173..8ea724aa694 100644
--- a/pkgs/applications/window-managers/picom/default.nix
+++ b/pkgs/applications/window-managers/picom/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "picom";
-  version = "7.5";
+  version = "8";
 
   src = fetchFromGitHub {
     owner  = "yshui";
     repo   = "picom";
     rev    = "v${version}";
-    sha256 = "1l48fxl04vkzr4r94sl37nbbw7a621rn8sxmkbdv4252i1gjxd4z";
+    sha256 = "04svbv7v73q8yn9la69451rda6l2pgxcphv2zlkdqaxxdbp69195";
     fetchSubmodules = true;
   };
 
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/smallwm/default.nix b/pkgs/applications/window-managers/smallwm/default.nix
new file mode 100644
index 00000000000..b6d3821e8d0
--- /dev/null
+++ b/pkgs/applications/window-managers/smallwm/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub
+, doxygen, graphviz, libX11, libXrandr }:
+
+stdenv.mkDerivation rec {
+
+  pname = "smallwm";
+  version = "2020-02-28";
+
+  src = fetchFromGitHub {
+    owner = "adamnew123456";
+    repo = "SmallWM";
+    rev = "c2dc72afa87241bcf7e646630f4aae216ce78613";
+    sha256 = "0cqhy81ymdcdyvgi55a401rr96h2akskcxi9ddzjbln4a71yjlz8";
+  };
+
+  nativeBuildInputs = [ doxygen graphviz ];
+  buildInputs = [ libX11 libXrandr ];
+
+  dontConfigure = true;
+
+  makeFlags = [ "CC=${stdenv.cc}/bin/cc" "CXX=${stdenv.cc}/bin/c++" ];
+
+  buildFlags = [ "all" "doc" ];
+
+  installPhase = ''
+    install -dm755 $out/bin $out/share/doc/${pname}-${version}
+    install -m755 bin/smallwm -t $out/bin
+    cp -r README.markdown doc/html doc/latex $out/share/doc/${pname}-${version}
+  '';
+
+  meta = with stdenv.lib;{
+    description = "A small X window manager, extended from tinywm";
+    homepage = "https://github.com/adamnew123456/SmallWM";
+    license = licenses.bsd2;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
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
new file mode 100644
index 00000000000..fd44f4a5be5
--- /dev/null
+++ b/pkgs/applications/window-managers/sway/contrib.nix
@@ -0,0 +1,95 @@
+{ stdenv
+
+, fetchurl
+, coreutils
+, makeWrapper
+, sway-unwrapped
+, installShellFiles
+, wl-clipboard
+, libnotify
+, slurp
+, grim
+, jq
+
+, python3Packages
+}:
+
+{
+
+grimshot = stdenv.mkDerivation rec {
+  pname = "grimshot";
+  version = sway-unwrapped.version;
+
+  src = sway-unwrapped.src;
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  outputs = [ "out" "man" ];
+
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
+
+  installPhase = ''
+    installManPage contrib/grimshot.1
+
+    install -Dm 0755 contrib/grimshot $out/bin/grimshot
+    wrapProgram $out/bin/grimshot --set PATH \
+      "${stdenv.lib.makeBinPath [
+        sway-unwrapped
+        wl-clipboard
+        coreutils
+        libnotify
+        slurp
+        grim
+        jq
+        ] }"
+  '';
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    # check always returns 0
+    if [[ $($out/bin/grimshot check | grep "NOT FOUND") ]]; then false
+    else
+      echo "grimshot check passed"
+    fi
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A helper for screenshots within sway";
+    homepage = "https://github.com/swaywm/sway/tree/master/contrib";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [
+      sway-unwrapped.meta.maintainers
+      evils
+    ];
+  };
+};
+
+
+inactive-windows-transparency = python3Packages.buildPythonApplication rec {
+  # long name is long
+  lname = "inactive-windows-transparency";
+  pname = "sway-${lname}";
+  version = sway-unwrapped.version;
+
+  src = sway-unwrapped.src;
+
+  format = "other";
+  dontBuild = true;
+  dontConfigure = true;
+
+  propagatedBuildInputs = [ python3Packages.i3ipc ];
+
+  installPhase = ''
+    install -Dm 0755 $src/contrib/${lname}.py $out/bin/${lname}.py
+  '';
+
+  meta = sway-unwrapped.meta // {
+    description = "It makes inactive sway windows transparent";
+    homepage    = "https://github.com/swaywm/sway/tree/${sway-unwrapped.version}/contrib";
+  };
+};
+
+}
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/sway/lock.nix b/pkgs/applications/window-managers/sway/lock.nix
index dcff3a5c47f..7cbba5e981b 100644
--- a/pkgs/applications/window-managers/sway/lock.nix
+++ b/pkgs/applications/window-managers/sway/lock.nix
@@ -30,6 +30,8 @@ stdenv.mkDerivation rec {
     description = "Screen locker for Wayland";
     longDescription = ''
       swaylock is a screen locking utility for Wayland compositors.
+      Important note: If you don't use the Sway module (programs.sway.enable)
+      you need to set "security.pam.services.swaylock = {};" manually.
     '';
     inherit (src.meta) homepage;
     license = licenses.mit;
diff --git a/pkgs/applications/window-managers/tinywm/default.nix b/pkgs/applications/window-managers/tinywm/default.nix
index 0e30857267b..d6ff4ad51a2 100644
--- a/pkgs/applications/window-managers/tinywm/default.nix
+++ b/pkgs/applications/window-managers/tinywm/default.nix
@@ -42,10 +42,11 @@ stdenv.mkDerivation rec {
       - Resize windows interactively with Alt+Button3 drag (right mouse button)
       - Raise windows with Alt+F1 (not high on usability I know, but I needed a
         keybinding in there somewhere)
-      - Focus windows with the mouse pointer (X does this on its own)      
+      - Focus windows with the mouse pointer (X does this on its own)
     '';
     homepage = "http://incise.org/tinywm.html";
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = libX11.meta.platforms;
+    license = licenses.publicDomain;
   };
 }
diff --git a/pkgs/applications/window-managers/wmfs/default.nix b/pkgs/applications/window-managers/wmfs/default.nix
index 2013096d6fe..a53fc560abc 100644
--- a/pkgs/applications/window-managers/wmfs/default.nix
+++ b/pkgs/applications/window-managers/wmfs/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "xorg62";
     repo = "wmfs";
-    sha256 = "sha256:1m7dsmmlhq2qipim659cp9aqlriz1cwrrgspl8baa5pncln0gd5c";
+    sha256 = "1m7dsmmlhq2qipim659cp9aqlriz1cwrrgspl8baa5pncln0gd5c";
     rev = "b7b8ff812d28c79cb22a73db2739989996fdc6c2";
   };
 
diff --git a/pkgs/applications/window-managers/yeahwm/default.nix b/pkgs/applications/window-managers/yeahwm/default.nix
new file mode 100644
index 00000000000..a8323ff1d38
--- /dev/null
+++ b/pkgs/applications/window-managers/yeahwm/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl
+, lesstif
+, libX11, libXext, libXmu, libXinerama }:
+
+stdenv.mkDerivation rec {
+
+  pname = "yeahwm";
+  version = "0.3.5";
+
+  src = fetchurl {
+    url = "http://phrat.de/${pname}_${version}.tar.gz";
+    sha256 = "01gfzjvb40n16m2ja4238nk08k4l203y6a61cydqvf68924fjb69";
+  };
+
+  buildInputs = [ lesstif libX11 libXext libXinerama libXmu ];
+
+  dontConfigure = true;
+
+  preBuild = ''
+    makeFlagsArray+=( CC="${stdenv.cc}/bin/cc" \
+                      XROOT="${libX11}" \
+                      INCLUDES="-I${libX11.dev}/include -I${libXext.dev}/include -I${libXinerama.dev}/include -I${libXmu.dev}/include" \
+                      LDPATH="-L${libX11}/lib -L${libXext}/lib -L${libXinerama}/lib -L${libXmu}/lib" \
+                      prefix="${placeholder "out"}" )
+  '';
+
+  postInstall = ''
+    gzip -9 --stdout yeahwm.1 > yeahwm.1.gz
+    install -m644 yeahwm.1.gz ${placeholder "out"}/share/man/man1/
+  '';
+
+  meta = with stdenv.lib;{
+    description = "An X window manager based on evilwm and aewm";
+    longDescription = ''
+      YeahWM is a h* window manager for X based on evilwm and aewm.
+
+      Features
+      - Sloppy Focus.
+      - BeOS-like tabbed titles, which can be repositioned.
+      - Support for Xinerama.
+      - Simple Appearance.
+      - Good keyboard control.
+      - Creative usage of the mouse.
+      - Respects aspect size hints.
+      - Solid resize and move operations.
+      - Virtual Desktops.
+      - "Magic" Screen edges for desktop switching.
+      - Snapping to other windows and screen borders when moving windows.
+      - Small binary size(ca. 23kb).
+      - Little resource usage.
+      - It's slick.
+    '';
+    homepage = "http://phrat.de/index.html";
+    license = licenses.isc;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = libX11.meta.platforms;
+  };
+}
diff --git a/pkgs/build-support/agda/default.nix b/pkgs/build-support/agda/default.nix
index 0d054eaa546..3c973e8cc0a 100644
--- a/pkgs/build-support/agda/default.nix
+++ b/pkgs/build-support/agda/default.nix
@@ -1,90 +1,82 @@
-# Builder for Agda packages. Mostly inspired by the cabal builder.
+# Builder for Agda packages.
 
-{ stdenv, Agda, glibcLocales
-, writeShellScriptBin
-, extension ? (self: super: {})
-}:
+{ stdenv, lib, self, Agda, runCommandNoCC, makeWrapper, writeText, mkShell, ghcWithPackages }:
 
-with stdenv.lib.strings;
+with lib.strings;
 
 let
-  defaults = self : {
-    # There is no Hackage for Agda so we require src.
-    inherit (self) src name;
-
-    isAgdaPackage = true;
-
-    buildInputs = [ Agda ] ++ self.buildDepends;
-    buildDepends = [];
-
-    buildDependsAgda = stdenv.lib.filter
-      (dep: dep ? isAgdaPackage && dep.isAgdaPackage)
-      self.buildDepends;
-    buildDependsAgdaShareAgda = map (x: x + "/share/agda") self.buildDependsAgda;
-
-    # Not much choice here ;)
-    LANG = "en_US.UTF-8";
-    LOCALE_ARCHIVE = stdenv.lib.optionalString
-      stdenv.isLinux
-      "${glibcLocales}/lib/locale/locale-archive";
-
-    everythingFile = "Everything.agda";
-
-    propagatedBuildInputs = self.buildDependsAgda;
-    propagatedUserEnvPkgs = self.buildDependsAgda;
-
-    # Immediate source directories under which modules can be found.
-    sourceDirectories = [ ];
-
-    # This is used if we have a top-level element that only serves
-    # as the container for the source and we only care about its
-    # contents. The directories put here will have their
-    # *contents* copied over as opposed to sourceDirectories which
-    # would make a direct copy of the whole thing.
-    topSourceDirectories = [ "src" ];
-
-    # FIXME: `dirOf self.everythingFile` is what we really want, not hardcoded "./"
-    includeDirs = self.buildDependsAgdaShareAgda
-                  ++ self.sourceDirectories ++ self.topSourceDirectories
-                  ++ [ "." ];
-    buildFlags = stdenv.lib.concatMap (x: ["-i" x]) self.includeDirs;
-
-    agdaWithArgs = "${Agda}/bin/agda ${toString self.buildFlags}";
-
-    buildPhase = ''
-      runHook preBuild
-      ${self.agdaWithArgs} ${self.everythingFile}
-      runHook postBuild
+  withPackages' = {
+    pkgs,
+    ghc ? ghcWithPackages (p: with p; [ ieee ])
+  }: let
+    pkgs' = if builtins.isList pkgs then pkgs else pkgs self;
+    library-file = writeText "libraries" ''
+      ${(concatMapStringsSep "\n" (p: "${p}/${p.libraryFile}") pkgs')}
     '';
-
-    installPhase = let
-      srcFiles = self.sourceDirectories
-                 ++ map (x: x + "/*") self.topSourceDirectories;
-    in ''
-      runHook preInstall
-      mkdir -p $out/share/agda
-      cp -pR ${concatStringsSep " " srcFiles} $out/share/agda
-      runHook postInstall
-    '';
-
-    passthru = {
-      env = stdenv.mkDerivation {
-        name = "interactive-${self.name}";
-        inherit (self) LANG LOCALE_ARCHIVE;
-        AGDA_PACKAGE_PATH = concatMapStrings (x: x + ":") self.buildDependsAgdaShareAgda;
-        buildInputs = let
-          # Makes a wrapper available to the user. Very useful in
-          # nix-shell where all dependencies are -i'd.
-          agdaWrapper = writeShellScriptBin "agda" ''
-            exec ${self.agdaWithArgs} "$@"
-          '';
-        in [agdaWrapper] ++ self.buildDepends;
+    pname = "agdaWithPackages";
+    version = Agda.version;
+  in runCommandNoCC "${pname}-${version}" {
+    inherit pname version;
+    nativeBuildInputs = [ makeWrapper ];
+    passthru.unwrapped = Agda;
+  } ''
+    mkdir -p $out/bin
+    makeWrapper ${Agda}/bin/agda $out/bin/agda \
+      --add-flags "--with-compiler=${ghc}/bin/ghc" \
+      --add-flags "--library-file=${library-file}" \
+      --add-flags "--local-interfaces"
+    makeWrapper ${Agda}/bin/agda-mode $out/bin/agda-mode
+    ''; # Local interfaces has been added for now: See https://github.com/agda/agda/issues/4526
+
+  withPackages = arg: if builtins.isAttrs arg then withPackages' arg else withPackages' { pkgs = arg; };
+
+  extensions = [
+    "agda"
+    "agda-lib"
+    "agdai"
+    "lagda"
+    "lagda.md"
+    "lagda.org"
+    "lagda.rst"
+    "lagda.tex"
+  ];
+
+  defaults =
+    { pname
+    , buildInputs ? []
+    , everythingFile ? "./Everything.agda"
+    , libraryName ? pname
+    , libraryFile ? "${libraryName}.agda-lib"
+    , buildPhase ? null
+    , installPhase ? null
+    , extraExtensions ? []
+    , ...
+    }: let
+      agdaWithArgs = withPackages (builtins.filter (p: p ? isAgdaDerivation) buildInputs);
+    in
+      {
+        inherit libraryName libraryFile;
+
+        isAgdaDerivation = true;
+
+        buildInputs = buildInputs ++ [ agdaWithArgs ];
+
+        buildPhase = if buildPhase != null then buildPhase else ''
+          runHook preBuild
+          agda -i ${dirOf everythingFile} ${everythingFile}
+          runHook postBuild
+        '';
+
+        installPhase = if installPhase != null then installPhase else ''
+          runHook preInstall
+          mkdir -p $out
+          find \( ${concatMapStringsSep " -or " (p: "-name '*.${p}'") (extensions ++ extraExtensions)} \) -exec cp -p --parents -t "$out" {} +
+          runHook postInstall
+        '';
       };
-    };
-  };
 in
-{ mkDerivation = args: let
-      super = defaults self // args self;
-      self  = super // extension self super;
-    in stdenv.mkDerivation self;
+{
+  mkDerivation = args: stdenv.mkDerivation (args // defaults args);
+
+  inherit withPackages withPackages';
 }
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/appimage-exec.sh b/pkgs/build-support/appimage/appimage-exec.sh
index 15eafc58a1e..82ebdd0bbe4 100755
--- a/pkgs/build-support/appimage/appimage-exec.sh
+++ b/pkgs/build-support/appimage/appimage-exec.sh
@@ -6,58 +6,55 @@ fi
 PATH="@path@:$PATH"
 apprun_opt=true
 
-#DEBUG=0
-
 # src : AppImage
 # dest : let's unpack() create the directory
 unpack() {
-  local src=$1
-  local out=$2
-  local appimageSignature=""
-  local appimageType=0
+  local src="$1"
+  local out="$2"
 
   # https://github.com/AppImage/libappimage/blob/ca8d4b53bed5cbc0f3d0398e30806e0d3adeaaab/src/libappimage/utils/MagicBytesChecker.cpp#L45-L63
-  eval "$(r2 -nn -Nqc "p8j 3 @ 8" "$src"|
-    jq -r '{appimageSignature: (.[:-1]|implode), appimageType: .[-1]}|
-      @sh "appimageSignature=\(.appimageSignature) appimageType=\(.appimageType)"')"
+  local appimageSignature=$(readelf -h "$src" | awk 'NR==2{print $10$11;}')
+  local appimageType=$(readelf -h "$src" | awk 'NR==2{print $12;}')
 
   # check AppImage signature
-  if [[ "$appimageSignature" != "AI" ]]; then
-    echo "Not an appimage."
+  if [ "$appimageSignature" != "4149" ]; then
+    echo "Not an AppImage file"
     exit
   fi
 
   case "$appimageType" in
-    1 ) echo "Uncompress $(basename "$src") of type $appimageType."
-        mkdir "$out"
-        pv "$src" | bsdtar -x -C "$out" -f -
-        ;;
-    2)
-        # This method avoid issues with non executable appimages,
-        # non-native packer, packer patching and squashfs-root destination prefix.
-
-        # multiarch offset one-liner using same method as AppImage
-        # see https://gist.github.com/probonopd/a490ba3401b5ef7b881d5e603fa20c93
-        offset=$(r2 -nn -Nqc "pfj.elf_header @ 0" "$src"|\
-          jq 'map({(.name): .value}) | add | .shoff + (.shnum * .shentsize)')
-
-        echo "Uncompress $(basename "$src") of type $appimageType @ offset $offset."
-        unsquashfs -q -d "$out" -o "$offset" "$src"
-        chmod go-w "$out"
-        ;;
-
-    # 3) get ready, https://github.com/TheAssassin/type3-runtime
-    *)  echo Unsupported AppImage Type: "$appimageType"
-        exit
-        ;;
+    "01")
+      echo "Uncompress $(basename "$src") of type $appimageType"
+      mkdir "$out"
+      pv "$src" | bsdtar -x -C "$out" -f -
+      ;;
+
+    "02")
+      # This method avoid issues with non executable appimages,
+      # non-native packer, packer patching and squashfs-root destination prefix.
+
+      # multiarch offset one-liner using same method as AppImage
+      # see https://gist.github.com/probonopd/a490ba3401b5ef7b881d5e603fa20c93
+      offset=$(readelf -h "$src" | awk 'NR==13{e_shoff=$5} NR==18{e_shentsize=$5} NR==19{e_shnum=$5} END{print e_shoff+e_shentsize*e_shnum}')
+      echo "Uncompress $(basename "$src") of type $appimageType @ offset $offset"
+      unsquashfs -q -d "$out" -o "$offset" "$src"
+      chmod go-w "$out"
+      ;;
+
+    # "03")
+    #   get ready, https://github.com/TheAssassin/type3-runtime
+
+    *)
+      echo Unsupported AppImage Type: "$appimageType"
+      exit
+      ;;
   esac
   echo "$(basename "$src") is now installed in $out"
 }
 
 apprun() {
 
-  eval "$(rahash2 "$APPIMAGE" -j | jq -r '.[] | @sh "SHA256=\(.hash)"')"
-  echo sha256 = \""$SHA256"\"\;
+  SHA256=$(sha256sum "$APPIMAGE" | awk '{print $1}')
   export APPDIR="${XDG_CACHE_HOME:-$HOME/.cache}/appimage-run/$SHA256"
 
   #compatibility
@@ -102,27 +99,26 @@ EOF
 }
 
 while getopts "x:w:dh" option; do
-    case "${option}" in
-        d)  set -x
-            ;;
-        x)  # eXtract
-            unpack_opt=true
-            APPDIR=${OPTARG}
-            ;;
-        w)  # WrapAppImage
-            export APPDIR=${OPTARG}
-            wrap_opt=true
-            ;;
-        h)  usage
-            ;;
-        *)
-            usage
-            ;;
-    esac
+  case "${option}" in
+    d)  set -x
+        ;;
+    x)  # eXtract
+        unpack_opt=true
+        APPDIR=${OPTARG}
+        ;;
+    w)  # WrapAppImage
+        export APPDIR=${OPTARG}
+        wrap_opt=true
+        ;;
+    h)  usage
+        ;;
+    *)  usage
+        ;;
+  esac
 done
-shift $((OPTIND-1))
+shift "$((OPTIND-1))"
 
-if [[ $wrap_opt = true ]] && [[ -d "$APPDIR" ]]; then
+if [ -n "$wrap_opt" ] && [ -d "$APPDIR" ]; then
   wrap "$@"
   exit
 else
@@ -130,12 +126,12 @@ else
   shift
 fi
 
-if [[ $unpack_opt = true ]] && [[ -f "$APPIMAGE" ]]; then
+if [ -n "$unpack_opt" ] && [ -f "$APPIMAGE" ]; then
   unpack "$APPIMAGE" "$APPDIR"
   exit
 fi
 
-if [[ $apprun_opt = true ]] && [[ -f "$APPIMAGE" ]]; then
+if [ -n "$apprun_opt" ] && [ -f "$APPIMAGE" ]; then
   apprun
   wrap "$@"
   exit
diff --git a/pkgs/build-support/appimage/default.nix b/pkgs/build-support/appimage/default.nix
index 993032c5601..f15ce80d6d9 100644
--- a/pkgs/build-support/appimage/default.nix
+++ b/pkgs/build-support/appimage/default.nix
@@ -1,40 +1,57 @@
-{ stdenv, buildFHSUserEnv, writeScript, pkgs
-, bash, radare2, jq, squashfsTools, ripgrep
-, coreutils, libarchive, file, runtimeShell, pv
-, lib, runCommand }:
+{ stdenv
+, bash
+, binutils-unwrapped
+, coreutils
+, gawk
+, libarchive
+, pv
+, squashfsTools
+, buildFHSUserEnv
+, pkgs
+}:
 
 rec {
   appimage-exec = pkgs.substituteAll {
     src = ./appimage-exec.sh;
     isExecutable = true;
     dir = "bin";
-    path = with pkgs; lib.makeBinPath [ pv ripgrep file radare2 libarchive jq squashfsTools coreutils bash ];
+    path = with pkgs; stdenv.lib.makeBinPath [
+      bash
+      binutils-unwrapped
+      coreutils
+      gawk
+      libarchive
+      pv
+      squashfsTools
+    ];
   };
 
-  extract = { name, src }: runCommand "${name}-extracted" {
-    buildInputs = [ appimage-exec ];
-  } ''
-    appimage-exec.sh -x $out ${src}
-  '';
+  extract = { name, src }: pkgs.runCommand "${name}-extracted" {
+      buildInputs = [ appimage-exec ];
+    } ''
+      appimage-exec.sh -x $out ${src}
+    '';
 
   # for compatibility, deprecated
   extractType1 = extract;
   extractType2 = extract;
   wrapType1 = wrapType2;
 
-  wrapAppImage = args@{ name, src, extraPkgs, ... }: buildFHSUserEnv (defaultFhsEnvArgs // {
-    inherit name;
+  wrapAppImage = args@{ name, src, extraPkgs, ... }: buildFHSUserEnv
+    (defaultFhsEnvArgs // {
+      inherit name;
 
-    targetPkgs = pkgs: [ appimage-exec ]
-      ++ defaultFhsEnvArgs.targetPkgs pkgs ++ extraPkgs pkgs;
+      targetPkgs = pkgs: [ appimage-exec ]
+        ++ defaultFhsEnvArgs.targetPkgs pkgs ++ extraPkgs pkgs;
 
-    runScript = "appimage-exec.sh -w ${src}";
-  } // (removeAttrs args (builtins.attrNames (builtins.functionArgs wrapAppImage))));
+      runScript = "appimage-exec.sh -w ${src}";
+    } // (removeAttrs args (builtins.attrNames (builtins.functionArgs wrapAppImage))));
 
-  wrapType2 = args@{ name, src, extraPkgs ? pkgs: [], ... }: wrapAppImage (args // {
-    inherit name extraPkgs;
-    src = extract { inherit name src; };
-  });
+  wrapType2 = args@{ name, src, extraPkgs ? pkgs: [ ], ... }: wrapAppImage
+    (args // {
+      inherit name extraPkgs;
+      src = extract { inherit name src; };
+    });
 
   defaultFhsEnvArgs = {
     name = "appimage-env";
@@ -67,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
@@ -146,7 +164,6 @@ rec {
       SDL2_ttf
       SDL2_mixer
       gstreamer
-      gst-plugins-base
       libappindicator-gtk2
       libcaca
       libcanberra
diff --git a/pkgs/build-support/bintools-wrapper/add-flags.sh b/pkgs/build-support/bintools-wrapper/add-flags.sh
index e5c0556556c..e99beb38158 100644
--- a/pkgs/build-support/bintools-wrapper/add-flags.sh
+++ b/pkgs/build-support/bintools-wrapper/add-flags.sh
@@ -1,32 +1,32 @@
 # See cc-wrapper for comments.
 var_templates_list=(
-    NIX+IGNORE_LD_THROUGH_GCC
-    NIX+LDFLAGS
-    NIX+LDFLAGS_BEFORE
-    NIX+LDFLAGS_AFTER
-    NIX+LDFLAGS_HARDEN
-    NIX+HARDENING_ENABLE
+    NIX_IGNORE_LD_THROUGH_GCC
+    NIX_LDFLAGS
+    NIX_LDFLAGS_BEFORE
+    NIX_LDFLAGS_AFTER
+    NIX_LDFLAGS_HARDEN
+    NIX_HARDENING_ENABLE
 )
 var_templates_bool=(
-    NIX+SET_BUILD_ID
-    NIX+DONT_SET_RPATH
+    NIX_SET_BUILD_ID
+    NIX_DONT_SET_RPATH
 )
 
 accumulateRoles
 
 for var in "${var_templates_list[@]}"; do
-    mangleVarList "$var" ${role_infixes[@]+"${role_infixes[@]}"}
+    mangleVarList "$var" ${role_suffixes[@]+"${role_suffixes[@]}"}
 done
 for var in "${var_templates_bool[@]}"; do
-    mangleVarBool "$var" ${role_infixes[@]+"${role_infixes[@]}"}
+    mangleVarBool "$var" ${role_suffixes[@]+"${role_suffixes[@]}"}
 done
 
 if [ -e @out@/nix-support/libc-ldflags ]; then
-    NIX_@infixSalt@_LDFLAGS+=" $(< @out@/nix-support/libc-ldflags)"
+    NIX_LDFLAGS_@suffixSalt@+=" $(< @out@/nix-support/libc-ldflags)"
 fi
 
 if [ -e @out@/nix-support/libc-ldflags-before ]; then
-    NIX_@infixSalt@_LDFLAGS_BEFORE="$(< @out@/nix-support/libc-ldflags-before) $NIX_@infixSalt@_LDFLAGS_BEFORE"
+    NIX_LDFLAGS_BEFORE_@suffixSalt@="$(< @out@/nix-support/libc-ldflags-before) $NIX_LDFLAGS_BEFORE_@suffixSalt@"
 fi
 
-export NIX_BINTOOLS_WRAPPER_@infixSalt@_FLAGS_SET=1
+export NIX_BINTOOLS_WRAPPER_FLAGS_SET_@suffixSalt@=1
diff --git a/pkgs/build-support/bintools-wrapper/add-hardening.sh b/pkgs/build-support/bintools-wrapper/add-hardening.sh
index b7180870860..5e49b7bd905 100644
--- a/pkgs/build-support/bintools-wrapper/add-hardening.sh
+++ b/pkgs/build-support/bintools-wrapper/add-hardening.sh
@@ -5,7 +5,7 @@ declare -A hardeningEnableMap=()
 # Intentionally word-split in case 'NIX_HARDENING_ENABLE' is defined in Nix. The
 # array expansion also prevents undefined variables from causing trouble with
 # `set -u`.
-for flag in ${NIX_@infixSalt@_HARDENING_ENABLE-}; do
+for flag in ${NIX_HARDENING_ENABLE_@suffixSalt@-}; do
   hardeningEnableMap["$flag"]=1
 done
 
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix
index 5cc99c6412a..786f0f9c598 100644
--- a/pkgs/build-support/bintools-wrapper/default.nix
+++ b/pkgs/build-support/bintools-wrapper/default.nix
@@ -45,7 +45,7 @@ let
   coreutils_bin = if nativeTools then "" else getBin coreutils;
 
   # See description in cc-wrapper.
-  infixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config;
+  suffixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config;
 
   # The dynamic linker has different names on different platforms. This is a
   # shell glob that ought to match it.
@@ -83,7 +83,7 @@ stdenv.mkDerivation {
   shell = getBin shell + shell.shellPath or "";
   gnugrep_bin = if nativeTools then "" else gnugrep;
 
-  inherit targetPrefix infixSalt;
+  inherit targetPrefix suffixSalt;
 
   outputs = [ "out" ] ++ optionals propagateDoc ([ "man" ] ++ optional (bintools ? info) "info");
 
@@ -95,9 +95,9 @@ stdenv.mkDerivation {
       (mapc
         (lambda (arg)
           (when (file-directory-p (concat arg "/lib"))
-            (setenv "NIX_${infixSalt}_LDFLAGS" (concat (getenv "NIX_${infixSalt}_LDFLAGS") " -L" arg "/lib")))
+            (setenv "NIX_LDFLAGS_${suffixSalt}" (concat (getenv "NIX_LDFLAGS_${suffixSalt}") " -L" arg "/lib")))
           (when (file-directory-p (concat arg "/lib64"))
-            (setenv "NIX_${infixSalt}_LDFLAGS" (concat (getenv "NIX_${infixSalt}_LDFLAGS") " -L" arg "/lib64"))))
+            (setenv "NIX_LDFLAGS_${suffixSalt}" (concat (getenv "NIX_LDFLAGS_${suffixSalt}") " -L" arg "/lib64"))))
         '(${concatStringsSep " " (map (pkg: "\"${pkg}\"") pkgs)}))
     '';
   };
@@ -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,53 +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
     '')
 
-    + optionalString (!nativeTools) ''
-      ##
-      ## User env support
-      ##
+    # Ensure consistent LC_VERSION_MIN_MACOSX and remove LC_UUID.
+    + optionalString stdenv.targetPlatform.isMacOS ''
+      echo "-macosx_version_min 10.12 -sdk_version 10.12 -no_uuid" >> $out/nix-support/libc-ldflags-before
+    ''
 
-      # Propagate the underling unwrapped bintools so that if you
-      # install the wrapper, you get tools like objdump (same for any
-      # binaries of libc).
+    ##
+    ## 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).
+    + 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"
@@ -299,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/bintools-wrapper/ld-wrapper.sh b/pkgs/build-support/bintools-wrapper/ld-wrapper.sh
index ed2f00a8974..81b5a90edd5 100644
--- a/pkgs/build-support/bintools-wrapper/ld-wrapper.sh
+++ b/pkgs/build-support/bintools-wrapper/ld-wrapper.sh
@@ -16,7 +16,7 @@ fi
 
 source @out@/nix-support/utils.bash
 
-if [ -z "${NIX_BINTOOLS_WRAPPER_@infixSalt@_FLAGS_SET:-}" ]; then
+if [ -z "${NIX_BINTOOLS_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then
     source @out@/nix-support/add-flags.sh
 fi
 
@@ -24,7 +24,7 @@ fi
 # Optionally filter out paths not refering to the store.
 expandResponseParams "$@"
 if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "${NIX_STORE:-}"
-        && ( -z "$NIX_@infixSalt@_IGNORE_LD_THROUGH_GCC" || -z "${NIX_@infixSalt@_LDFLAGS_SET:-}" ) ]]; then
+        && ( -z "$NIX_IGNORE_LD_THROUGH_GCC_@suffixSalt@" || -z "${NIX_LDFLAGS_SET_@suffixSalt@:-}" ) ]]; then
     rest=()
     nParams=${#params[@]}
     declare -i n=0
@@ -60,12 +60,12 @@ source @out@/nix-support/add-hardening.sh
 extraAfter=()
 extraBefore=(${hardeningLDFlags[@]+"${hardeningLDFlags[@]}"})
 
-if [ -z "${NIX_@infixSalt@_LDFLAGS_SET:-}" ]; then
-    extraAfter+=($NIX_@infixSalt@_LDFLAGS)
-    extraBefore+=($NIX_@infixSalt@_LDFLAGS_BEFORE)
+if [ -z "${NIX_LDFLAGS_SET_@suffixSalt@:-}" ]; then
+    extraAfter+=($NIX_LDFLAGS_@suffixSalt@)
+    extraBefore+=($NIX_LDFLAGS_BEFORE_@suffixSalt@)
 fi
 
-extraAfter+=($NIX_@infixSalt@_LDFLAGS_AFTER)
+extraAfter+=($NIX_LDFLAGS_AFTER_@suffixSalt@)
 
 # Specify the target emulation if nothing is passed in ("-m" overrides this
 # environment variable). Ensures we never blindly fallback on targeting the host
@@ -84,8 +84,8 @@ declare -A libs
 declare -i relocatable=0 link32=0
 
 if
-    [ "$NIX_@infixSalt@_DONT_SET_RPATH" != 1 ] \
-        || [ "$NIX_@infixSalt@_SET_BUILD_ID" = 1 ] \
+    [ "$NIX_DONT_SET_RPATH_@suffixSalt@" != 1 ] \
+        || [ "$NIX_SET_BUILD_ID_@suffixSalt@" = 1 ] \
         || [ -e @out@/nix-support/dynamic-linker-m32 ]
 then
     prev=
@@ -144,7 +144,7 @@ if [ -e "@out@/nix-support/dynamic-linker-m32" ] && (( "$link32" )); then
 fi
 
 # Add all used dynamic libraries to the rpath.
-if [ "$NIX_@infixSalt@_DONT_SET_RPATH" != 1 ]; then
+if [ "$NIX_DONT_SET_RPATH_@suffixSalt@" != 1 ]; then
     # For each directory in the library search path (-L...),
     # see if it contains a dynamic library used by a -l... flag.  If
     # so, add the directory to the rpath.
@@ -186,7 +186,7 @@ fi
 
 # Only add --build-id if this is a final link. FIXME: should build gcc
 # with --enable-linker-build-id instead?
-if [ "$NIX_@infixSalt@_SET_BUILD_ID" = 1 ] && ! (( "$relocatable" )); then
+if [ "$NIX_SET_BUILD_ID_@suffixSalt@" = 1 ] && ! (( "$relocatable" )); then
     extraAfter+=(--build-id)
 fi
 
diff --git a/pkgs/build-support/bintools-wrapper/setup-hook.sh b/pkgs/build-support/bintools-wrapper/setup-hook.sh
index a714bd151c9..7e9547b96c2 100644
--- a/pkgs/build-support/bintools-wrapper/setup-hook.sh
+++ b/pkgs/build-support/bintools-wrapper/setup-hook.sh
@@ -10,11 +10,11 @@
 
 bintoolsWrapper_addLDVars () {
     # See ../setup-hooks/role.bash
-    local role_post role_pre
+    local role_post
     getHostRoleEnvHook
 
     if [[ -d "$1/lib64" && ! -L "$1/lib64" ]]; then
-        export NIX_${role_pre}LDFLAGS+=" -L$1/lib64"
+        export NIX_LDFLAGS${role_post}+=" -L$1/lib64"
     fi
 
     if [[ -d "$1/lib" ]]; then
@@ -24,7 +24,7 @@ bintoolsWrapper_addLDVars () {
         # directories and bloats the size of the environment variable space.
         local -a glob=( $1/lib/lib* )
         if [ "${#glob[*]}" -gt 0 ]; then
-            export NIX_${role_pre}LDFLAGS+=" -L$1/lib"
+            export NIX_LDFLAGS${role_post}+=" -L$1/lib"
         fi
     fi
 }
@@ -52,7 +52,7 @@ fi
 
 # Export tool environment variables so various build systems use the right ones.
 
-export NIX_${role_pre}BINTOOLS=@out@
+export NIX_BINTOOLS${role_post}=@out@
 
 for cmd in \
     ar as ld nm objcopy objdump readelf ranlib strip strings size windres
@@ -60,7 +60,6 @@ do
     if
         PATH=$_PATH type -p "@targetPrefix@${cmd}" > /dev/null
     then
-        export "${role_pre}${cmd^^}=@targetPrefix@${cmd}";
         export "${cmd^^}${role_post}=@targetPrefix@${cmd}";
     fi
 done
@@ -70,4 +69,4 @@ done
 export NIX_HARDENING_ENABLE
 
 # No local scope in sourced file
-unset -v role_pre role_post cmd upper_case
+unset -v role_post cmd upper_case
diff --git a/pkgs/build-support/build-bazel-package/default.nix b/pkgs/build-support/build-bazel-package/default.nix
index 31c0c8e92e5..bbcbc4e2e11 100644
--- a/pkgs/build-support/build-bazel-package/default.nix
+++ b/pkgs/build-support/build-bazel-package/default.nix
@@ -30,6 +30,13 @@ 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
+
 , ...
 }:
 
@@ -79,7 +86,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 +119,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
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/build-fhs-userenv/env.nix b/pkgs/build-support/build-fhs-userenv/env.nix
index 8de43d5a919..083e7617b50 100644
--- a/pkgs/build-support/build-fhs-userenv/env.nix
+++ b/pkgs/build-support/build-fhs-userenv/env.nix
@@ -58,7 +58,7 @@ let
 
     # Force compilers and other tools to look in default search paths
     unset NIX_ENFORCE_PURITY
-    export NIX_CC_WRAPPER_${stdenv.cc.infixSalt}_TARGET_HOST=1
+    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'
diff --git a/pkgs/build-support/buildenv/builder.pl b/pkgs/build-support/buildenv/builder.pl
index fc6ffce735c..411b147cc58 100755
--- a/pkgs/build-support/buildenv/builder.pl
+++ b/pkgs/build-support/buildenv/builder.pl
@@ -129,6 +129,15 @@ sub findFiles {
         return;
     }
 
+    # If target already exists and both targets resolves to the same path, skip
+    if (defined $oldTarget && $oldTarget ne "" && abs_path($target) eq abs_path($oldTarget)) {
+        # Prefer the target that is not a symlink, if any
+        if (-l $oldTarget && ! -l $target) {
+            $symlinks{$relName} = [$target, $priority];
+        }
+        return;
+    }
+
     # If target already exists as a symlink to a file (not a
     # directory) in a higher-priority package, skip.
     if (defined $oldTarget && $priority > $oldPriority && $oldTarget ne "" && ! -d $oldTarget) {
diff --git a/pkgs/build-support/cc-wrapper/add-flags.sh b/pkgs/build-support/cc-wrapper/add-flags.sh
index 323ea5bfd77..94589131b70 100644
--- a/pkgs/build-support/cc-wrapper/add-flags.sh
+++ b/pkgs/build-support/cc-wrapper/add-flags.sh
@@ -5,15 +5,15 @@
 # wrapped binary just inherit the work of the forker's wrapper script.
 
 var_templates_list=(
-    NIX+CFLAGS_COMPILE
-    NIX+CFLAGS_COMPILE_BEFORE
-    NIX+CFLAGS_LINK
-    NIX+CXXSTDLIB_COMPILE
-    NIX+CXXSTDLIB_LINK
-    NIX+GNATFLAGS_COMPILE
+    NIX_CFLAGS_COMPILE
+    NIX_CFLAGS_COMPILE_BEFORE
+    NIX_CFLAGS_LINK
+    NIX_CXXSTDLIB_COMPILE
+    NIX_CXXSTDLIB_LINK
+    NIX_GNATFLAGS_COMPILE
 )
 var_templates_bool=(
-    NIX+ENFORCE_NO_NATIVE
+    NIX_ENFORCE_NO_NATIVE
 )
 
 accumulateRoles
@@ -21,37 +21,49 @@ accumulateRoles
 # We need to mangle names for hygiene, but also take parameters/overrides
 # from the environment.
 for var in "${var_templates_list[@]}"; do
-    mangleVarList "$var" ${role_infixes[@]+"${role_infixes[@]}"}
+    mangleVarList "$var" ${role_suffixes[@]+"${role_suffixes[@]}"}
 done
 for var in "${var_templates_bool[@]}"; do
-    mangleVarBool "$var" ${role_infixes[@]+"${role_infixes[@]}"}
+    mangleVarBool "$var" ${role_suffixes[@]+"${role_suffixes[@]}"}
 done
 
 # `-B@out@/bin' forces cc to use ld-wrapper.sh when calling ld.
-NIX_@infixSalt@_CFLAGS_COMPILE="-B@out@/bin/ $NIX_@infixSalt@_CFLAGS_COMPILE"
+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
-    NIX_@infixSalt@_CFLAGS_COMPILE="$(< @out@/nix-support/libc-cflags) $NIX_@infixSalt@_CFLAGS_COMPILE"
+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_@infixSalt@_CFLAGS_COMPILE="$(< @out@/nix-support/cc-cflags) $NIX_@infixSalt@_CFLAGS_COMPILE"
+    NIX_CFLAGS_COMPILE_@suffixSalt@="$(< @out@/nix-support/cc-cflags) $NIX_CFLAGS_COMPILE_@suffixSalt@"
 fi
 
 if [ -e @out@/nix-support/gnat-cflags ]; then
-    NIX_@infixSalt@_GNATFLAGS_COMPILE="$(< @out@/nix-support/gnat-cflags) $NIX_@infixSalt@_GNATFLAGS_COMPILE"
+    NIX_GNATFLAGS_COMPILE_@suffixSalt@="$(< @out@/nix-support/gnat-cflags) $NIX_GNATFLAGS_COMPILE_@suffixSalt@"
 fi
 
 if [ -e @out@/nix-support/cc-ldflags ]; then
-    NIX_@infixSalt@_LDFLAGS+=" $(< @out@/nix-support/cc-ldflags)"
+    NIX_LDFLAGS_@suffixSalt@+=" $(< @out@/nix-support/cc-ldflags)"
 fi
 
 if [ -e @out@/nix-support/cc-cflags-before ]; then
-    NIX_@infixSalt@_CFLAGS_COMPILE_BEFORE="$(< @out@/nix-support/cc-cflags-before) $NIX_@infixSalt@_CFLAGS_COMPILE_BEFORE"
+    NIX_CFLAGS_COMPILE_BEFORE_@suffixSalt@="$(< @out@/nix-support/cc-cflags-before) $NIX_CFLAGS_COMPILE_BEFORE_@suffixSalt@"
 fi
 
 # That way forked processes will not extend these environment variables again.
-export NIX_CC_WRAPPER_@infixSalt@_FLAGS_SET=1
+export NIX_CC_WRAPPER_FLAGS_SET_@suffixSalt@=1
diff --git a/pkgs/build-support/cc-wrapper/add-hardening.sh b/pkgs/build-support/cc-wrapper/add-hardening.sh
index fc40fe7408b..8e2fe6c407e 100644
--- a/pkgs/build-support/cc-wrapper/add-hardening.sh
+++ b/pkgs/build-support/cc-wrapper/add-hardening.sh
@@ -5,7 +5,7 @@ declare -A hardeningEnableMap=()
 # Intentionally word-split in case 'NIX_HARDENING_ENABLE' is defined in Nix. The
 # array expansion also prevents undefined variables from causing trouble with
 # `set -u`.
-for flag in ${NIX_@infixSalt@_HARDENING_ENABLE-}; do
+for flag in ${NIX_HARDENING_ENABLE_@suffixSalt@-}; do
   hardeningEnableMap["$flag"]=1
 done
 
diff --git a/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
index ba3dfc96f5c..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_@infixSalt@_FLAGS_SET:-}" ]; then
-    source @bintools@/nix-support/add-flags.sh
-fi
-
-# Put this one second so libc ldflags take priority.
-if [ -z "${NIX_CC_WRAPPER_@infixSalt@_FLAGS_SET:-}" ]; 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,9 +103,18 @@ 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_@infixSalt@_ENFORCE_NO_NATIVE" = 1 ]; then
+if [ "$NIX_ENFORCE_NO_NATIVE_@suffixSalt@" = 1 ]; then
     rest=()
     # Old bash empty array hack
     for p in ${params+"${params[@]}"}; do
@@ -129,36 +130,36 @@ fi
 
 if [[ "$isCpp" = 1 ]]; then
     if [[ "$cppInclude" = 1 ]]; then
-        NIX_@infixSalt@_CFLAGS_COMPILE+=" ${NIX_@infixSalt@_CXXSTDLIB_COMPILE:-@default_cxx_stdlib_compile@}"
+        NIX_CFLAGS_COMPILE_@suffixSalt@+=" $NIX_CXXSTDLIB_COMPILE_@suffixSalt@"
     fi
-    NIX_@infixSalt@_CFLAGS_LINK+=" $NIX_@infixSalt@_CXXSTDLIB_LINK"
+    NIX_CFLAGS_LINK_@suffixSalt@+=" $NIX_CXXSTDLIB_LINK_@suffixSalt@"
 fi
 
 source @out@/nix-support/add-hardening.sh
 
 # Add the flags for the C compiler proper.
-extraAfter=($NIX_@infixSalt@_CFLAGS_COMPILE)
-extraBefore=(${hardeningCFlags[@]+"${hardeningCFlags[@]}"} $NIX_@infixSalt@_CFLAGS_COMPILE_BEFORE)
+extraAfter=($NIX_CFLAGS_COMPILE_@suffixSalt@)
+extraBefore=(${hardeningCFlags[@]+"${hardeningCFlags[@]}"} $NIX_CFLAGS_COMPILE_BEFORE_@suffixSalt@)
 
 if [ "$dontLink" != 1 ]; then
 
     # Add the flags that should only be passed to the compiler when
     # linking.
-    extraAfter+=($NIX_@infixSalt@_CFLAGS_LINK)
+    extraAfter+=($NIX_CFLAGS_LINK_@suffixSalt@)
 
     # Add the flags that should be passed to the linker (and prevent
-    # `ld-wrapper' from adding NIX_@infixSalt@_LDFLAGS again).
-    for i in $NIX_@infixSalt@_LDFLAGS_BEFORE; do
+    # `ld-wrapper' from adding NIX_LDFLAGS_@suffixSalt@ again).
+    for i in $NIX_LDFLAGS_BEFORE_@suffixSalt@; do
         extraBefore+=("-Wl,$i")
     done
-    for i in $NIX_@infixSalt@_LDFLAGS; do
+    for i in $NIX_LDFLAGS_@suffixSalt@; do
         if [ "${i:0:3}" = -L/ ]; then
             extraAfter+=("$i")
         else
             extraAfter+=("-Wl,$i")
         fi
     done
-    export NIX_@infixSalt@_LDFLAGS_SET=1
+    export NIX_LDFLAGS_SET_@suffixSalt@=1
 fi
 
 # As a very special hack, if the arguments are just `-v', then don't
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index 1b7c5750727..6ee287e287b 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -8,6 +8,8 @@
 { 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
 , extraTools ? [], extraPackages ? [], extraBuildCommands ? ""
@@ -47,18 +49,12 @@ 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 "infix salt" is a arbitrary string added in the middle of env vars
+  # 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,
   # adjusted to be a valid bash identifier. This should be considered an
   # unstable implementation detail, however.
-  infixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config;
+  suffixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config;
 
   expand-response-params =
     if buildPackages.stdenv.hasCC && buildPackages.stdenv.cc != "/dev/null"
@@ -67,7 +63,7 @@ let
 
   # older compilers (for example bootstrap's GCC 5) fail with -march=too-modern-cpu
   isGccArchSupported = arch:
-    if cc.isGNU or false then
+    if isGNU then
       { skylake        = versionAtLeast ccVersion "6.0";
         skylake-avx512 = versionAtLeast ccVersion "6.0";
         cannonlake     = versionAtLeast ccVersion "8.0";
@@ -75,7 +71,7 @@ let
         icelake-server = versionAtLeast ccVersion "8.0";
         knm            = versionAtLeast ccVersion "8.0";
       }.${arch} or true
-    else if cc.isClang or false then
+    else if isClang then
       { cannonlake     = versionAtLeast ccVersion "5.0";
         icelake-client = versionAtLeast ccVersion "7.0";
         icelake-server = versionAtLeast ccVersion "7.0";
@@ -105,7 +101,7 @@ stdenv.mkDerivation {
   shell = getBin shell + shell.shellPath or "";
   gnugrep_bin = if nativeTools then "" else gnugrep;
 
-  inherit targetPrefix infixSalt;
+  inherit targetPrefix suffixSalt;
 
   outputs = [ "out" ] ++ optionals propagateDoc [ "man" "info" ];
 
@@ -115,14 +111,14 @@ 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
       (mapc
         (lambda (arg)
           (when (file-directory-p (concat arg "/include"))
-            (setenv "NIX_${infixSalt}_CFLAGS_COMPILE" (concat (getenv "NIX_${infixSalt}_CFLAGS_COMPILE") " -isystem " arg "/include"))))
+            (setenv "NIX_CFLAGS_COMPILE_${suffixSalt}" (concat (getenv "NIX_CFLAGS_COMPILE_${suffixSalt}") " -isystem " arg "/include"))))
         '(${concatStringsSep " " (map (pkg: "\"${pkg}\"") pkgs)}))
     '';
   };
@@ -159,21 +155,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
@@ -205,10 +201,15 @@ stdenv.mkDerivation {
       wrap ${targetPrefix}gnatlink ${./gnat-wrapper.sh} $ccPath/${targetPrefix}gnatlink
     ''
 
+    + optionalString cc.langD or false ''
+      wrap ${targetPrefix}gdc $wrapper $ccPath/${targetPrefix}gdc
+    ''
+
     + optionalString cc.langFortran or false ''
       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 ''
@@ -220,23 +221,30 @@ stdenv.mkDerivation {
     '';
 
   strictDeps = true;
-  propagatedBuildInputs = [ bintools ] ++ extraTools;
-  depsTargetTargetPropagated = extraPackages;
+  propagatedBuildInputs = [ bintools ] ++ extraTools ++ optionals cc.langD or false [ zlib ];
+  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
@@ -245,25 +253,46 @@ 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 ''
+    '' + optionalString (isGNU && (!(cc.langD or false))) ''
       for dir in "${cc}"/lib/gcc/*/*/include-fixed; do
         echo '-idirafter' ''${dir} >> $out/nix-support/libc-cflags
       done
@@ -273,15 +302,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"
@@ -290,30 +344,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 [])}"
     ''
 
@@ -366,34 +424,33 @@ stdenv.mkDerivation {
       hardening_unsupported_flags+=" stackprotector fortify"
     '' + optionalString cc.langAda or false ''
       hardening_unsupported_flags+=" stackprotector strictoverflow"
-    ''
-
-    + optionalString targetPlatform.isWasm ''
+    '' + optionalString cc.langD or false ''
+      hardening_unsupported_flags+=" format"
+    '' + optionalString targetPlatform.isWasm ''
       hardening_unsupported_flags+=" stackprotector fortify pie pic"
     ''
 
     + 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/cc-wrapper/gnat-wrapper.sh b/pkgs/build-support/cc-wrapper/gnat-wrapper.sh
index 15b53d76c63..d3f7d382c19 100644
--- a/pkgs/build-support/cc-wrapper/gnat-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/gnat-wrapper.sh
@@ -18,12 +18,12 @@ fi
 source @out@/nix-support/utils.bash
 
 # Flirting with a layer violation here.
-if [ -z "${NIX_BINTOOLS_WRAPPER_@infixSalt@_FLAGS_SET:-}" ]; then
+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_@infixSalt@_FLAGS_SET:-}" ]; then
+if [ -z "${NIX_CC_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then
     source @out@/nix-support/add-flags.sh
 fi
 
@@ -108,7 +108,7 @@ fi
 
 
 # Clear march/mtune=native -- they bring impurity.
-if [ "$NIX_@infixSalt@_ENFORCE_NO_NATIVE" = 1 ]; then
+if [ "$NIX_ENFORCE_NO_NATIVE_@suffixSalt@" = 1 ]; then
     rest=()
     # Old bash empty array hack
     for p in ${params+"${params[@]}"}; do
@@ -124,12 +124,12 @@ fi
 
 if [ "$(basename $0)x" = "gnatmakex" ]; then
     extraBefore=("--GNATBIND=@out@/bin/gnatbind" "--GNATLINK=@out@/bin/gnatlink")
-    extraAfter=($NIX_@infixSalt@_GNATFLAGS_COMPILE)
+    extraAfter=($NIX_GNATFLAGS_COMPILE_@suffixSalt@)
 fi
 
 if [ "$(basename $0)x" = "gnatbindx" ]; then
     extraBefore=()
-    extraAfter=($NIX_@infixSalt@_GNATFLAGS_COMPILE)
+    extraAfter=($NIX_GNATFLAGS_COMPILE_@suffixSalt@)
 fi
 
 if [ "$(basename $0)x" = "gnatlinkx" ]; then
diff --git a/pkgs/build-support/cc-wrapper/setup-hook.sh b/pkgs/build-support/cc-wrapper/setup-hook.sh
index 5b13f268309..6a913cc4eac 100644
--- a/pkgs/build-support/cc-wrapper/setup-hook.sh
+++ b/pkgs/build-support/cc-wrapper/setup-hook.sh
@@ -6,9 +6,9 @@
 # tools. For example:
 #
 #   # Flags for compiling (whether or not linking) C code for the...
-#   NIX_BUILD_CFLAGS_COMPILE  # ...build platform
-#   NIX_CFLAGS_COMPILE        # ...host platform
-#   NIX_TARGET_CFLAGS_COMPILE # ...target platform
+#   NIX_CFLAGS_COMPILE_FOR_BUILD  # ...build platform
+#   NIX_CFLAGS_COMPILE            # ...host platform
+#   NIX_CFLAGS_COMPILE_FOR_TARGET # ...target platform
 #
 # Notice that these platforms are the 3 *relative* to the package using
 # cc-wrapper, not absolute like `x86_64-pc-linux-gnu`.
@@ -33,12 +33,12 @@
 # The basic strategy is:
 #
 #  - Everyone exclusively *adds information* to relative-platform-specific
-#    environment variables, like `NIX_TARGET_CFLAGS_COMPILE`, to communicate
+#    environment variables, like `NIX_CFLAGS_COMPILE_FOR_TARGET`, to communicate
 #    with the wrapped binaries.
 #
 #  - The wrapped binaries will exclusively *read* cc-wrapper-derivation-specific
-#    environment variables distinguished with with `infixSalt`, like
-#    `NIX_@infixSalt@_CFLAGS_COMPILE`.
+#    environment variables distinguished with with `suffixSalt`, like
+#    `NIX_CFLAGS_COMPILE_@suffixSalt@`.
 #
 #  - `add-flags`, beyond its old task of reading extra flags stuck inside the
 #    cc-wrapper derivation, will convert the relative-platform-specific
@@ -65,15 +65,15 @@
 # function is guaranteed to be exactly the same.
 ccWrapper_addCVars () {
     # See ../setup-hooks/role.bash
-    local role_post role_pre
+    local role_post
     getHostRoleEnvHook
 
     if [ -d "$1/include" ]; then
-        export NIX_${role_pre}CFLAGS_COMPILE+=" -isystem $1/include"
+        export NIX_CFLAGS_COMPILE${role_post}+=" -isystem $1/include"
     fi
 
     if [ -d "$1/Library/Frameworks" ]; then
-        export NIX_${role_pre}CFLAGS_COMPILE+=" -iframework $1/Library/Frameworks"
+        export NIX_CFLAGS_COMPILE${role_post}+=" -iframework $1/Library/Frameworks"
     fi
 }
 
@@ -105,10 +105,10 @@ fi
 
 # Export tool environment variables so various build systems use the right ones.
 
-export NIX_${role_pre}CC=@out@
+export NIX_CC${role_post}=@out@
 
-export ${role_pre}CC=@named_cc@
-export ${role_pre}CXX=@named_cxx@
+export CC${role_post}=@named_cc@
+export CXX${role_post}=@named_cxx@
 export CC${role_post}=@named_cc@
 export CXX${role_post}=@named_cxx@
 
@@ -117,4 +117,4 @@ export CXX${role_post}=@named_cxx@
 export NIX_HARDENING_ENABLE
 
 # No local scope in sourced file
-unset -v role_pre role_post
+unset -v role_post
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index bee6e37cccb..bf815af6f7c 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -11,6 +11,7 @@
   jq,
   jshon,
   lib,
+  makeWrapper,
   moreutils,
   nix,
   pigz,
@@ -29,6 +30,7 @@
   writeReferencesToFile,
   writeScript,
   writeText,
+  writePython3,
 }:
 
 # WARNING: this API is unstable and may be subject to backwards-incompatible changes in the future.
@@ -95,7 +97,7 @@ rec {
       sourceURL = "docker://${imageName}@${imageDigest}";
       destNameTag = "${finalImageName}:${finalImageTag}";
     } ''
-      skopeo --override-os ${os} --override-arch ${arch} copy "$sourceURL" "docker-archive://$out:$destNameTag"
+      skopeo --insecure-policy --tmpdir=$TMPDIR --override-os ${os} --override-arch ${arch} copy "$sourceURL" "docker-archive://$out:$destNameTag"
     '';
 
   # We need to sum layer.tar, not a directory, hence tarsum instead of nix-hash.
@@ -204,24 +206,17 @@ rec {
         mkdir image
         tar -C image -xpf "$fromImage"
 
-        # If the image name isn't set, read it from the image repository json.
-        if [[ -z "$fromImageName" ]]; then
-          fromImageName=$(jshon -k < image/repositories | head -n 1)
-          echo "From-image name wasn't set. Read $fromImageName."
-        fi
-
-        # If the tag isn't set, use the name as an index into the json
-        # and read the first key found.
-        if [[ -z "$fromImageTag" ]]; then
-          fromImageTag=$(jshon -e $fromImageName -k < image/repositories \
-                         | head -n1)
-          echo "From-image tag wasn't set. Read $fromImageTag."
+        if [[ -n "$fromImageName" ]] && [[ -n "$fromImageTag" ]]; then
+          parentID="$(
+            cat "image/manifest.json" |
+              jq -r '.[] | select(.RepoTags | contains([$desiredTag])) | rtrimstr(".json")' \
+                --arg desiredTag "$fromImageName:$fromImageTag"
+          )"
+        else
+          echo "From-image name or tag wasn't set. Reading the first ID."
+          parentID="$(cat "image/manifest.json" | jq -r '.[0].Config | rtrimstr(".json")')"
         fi
 
-        # Use the name and tag to get the parent ID field.
-        parentID=$(jshon -e $fromImageName -e $fromImageTag -u \
-                   < image/repositories)
-
         cat ./image/manifest.json  | jq -r '.[0].Layers | .[]' > layer-list
       else
         touch layer-list
@@ -305,110 +300,6 @@ rec {
       ${text}
     '';
 
-  # Create $maxLayers worth of Docker Layers, one layer per store path
-  # unless there are more paths than $maxLayers. In that case, create
-  # $maxLayers-1 for the most popular layers, and smush the remainaing
-  # store paths in to one final layer.
-  #
-  # NOTE: the `closures` parameter is a list of closures to include.
-  # The TOP LEVEL store paths themselves will never be present in the
-  # resulting image. At this time (2019-12-16) none of these layers
-  # are appropriate to include, as they are all created as
-  # implementation details of dockerTools.
-  mkManyPureLayers = {
-    name,
-    # Files to add to the layer.
-    closures,
-    configJson,
-    # Docker has a 125-layer maximum, we pick 100 to ensure there is
-    # plenty of room for extension.
-    # https://github.com/moby/moby/blob/b3e9f7b13b0f0c414fa6253e1f17a86b2cff68b5/layer/layer_store.go#L23-L26
-    maxLayers ? 100
-  }:
-    let
-      storePathToLayer = substituteAll
-      { shell = runtimeShell;
-        isExecutable = true;
-        src = ./store-path-to-layer.sh;
-      };
-
-      overallClosure = writeText "closure" (lib.concatStringsSep " " closures);
-    in
-    runCommand "${name}-granular-docker-layers" {
-      inherit maxLayers;
-      paths = referencesByPopularity overallClosure;
-      nativeBuildInputs = [ jshon rsync tarsum moreutils ];
-      enableParallelBuilding = true;
-    }
-    ''
-      mkdir layers
-
-      # Delete impurities for store path layers, so they don't get
-      # shared and taint other projects.
-      cat ${configJson} \
-        | jshon -d config \
-        | jshon -s "1970-01-01T00:00:01Z" -i created > generic.json
-
-      # WARNING!
-      # The following code is fiddly w.r.t. ensuring every layer is
-      # created, and that no paths are missed. If you change the
-      # following head and tail call lines, double-check that your
-      # code behaves properly when the number of layers equals:
-      #      maxLayers-1, maxLayers, and maxLayers+1, 0
-      paths() {
-        cat $paths ${lib.concatMapStringsSep " " (path: "| (grep -v ${path} || true)") (closures ++ [ overallClosure ])}
-      }
-
-      paths | head -n $((maxLayers - 1)) | cat -n | xargs -r -P$NIX_BUILD_CORES -n2 ${storePathToLayer}
-      if [ $(paths | wc -l) -ge $maxLayers ]; then
-        paths | tail -n+$maxLayers | xargs ${storePathToLayer} $maxLayers
-      fi
-
-      echo "Finished building layer '$name'"
-
-      mv ./layers $out
-    '';
-
-  # Create a "Customisation" layer which adds symlinks at the root of
-  # the image to the root paths of the closure. Also add the config
-  # data like what command to run and the environment to run it in.
-  mkCustomisationLayer = {
-    name,
-    # Files to add to the layer.
-    contents,
-    baseJson,
-    extraCommands,
-    uid ? 0, gid ? 0,
-  }:
-    runCommand "${name}-customisation-layer" {
-      nativeBuildInputs = [ jshon rsync tarsum ];
-      inherit extraCommands;
-    }
-    ''
-      cp -r ${contents}/ ./layer
-
-      if [[ -n $extraCommands ]]; then
-        chmod ug+w layer
-        (cd layer; eval "$extraCommands")
-      fi
-
-      # Tar up the layer and throw it into 'layer.tar'.
-      echo "Packing layer..."
-      mkdir $out
-      tar --transform='s|^\./||' -C layer --sort=name --mtime="@$SOURCE_DATE_EPOCH" --owner=${toString uid} --group=${toString gid} -cf $out/layer.tar .
-
-      # Compute a checksum of the tarball.
-      echo "Computing layer checksum..."
-      tarhash=$(tarsum < $out/layer.tar)
-
-      # Add a 'checksum' field to the JSON, with the value set to the
-      # checksum of the tarball.
-      cat ${baseJson} | jshon -s "$tarhash" -i checksum > $out/json
-
-      # Indicate to docker that we're using schema version 1.0.
-      echo -n "1.0" > $out/VERSION
-    '';
-
   # Create a "layer" (set of files).
   mkPureLayer = {
     # Name of the layer
@@ -442,18 +333,14 @@ rec {
 
       chmod ug+w layer
 
-      if [[ -n $extraCommands ]]; then
+      if [[ -n "$extraCommands" ]]; then
         (cd layer; eval "$extraCommands")
       fi
 
       # Tar up the layer and throw it into 'layer.tar'.
       echo "Packing layer..."
       mkdir $out
-      tar -C layer --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" --owner=${toString uid} --group=${toString gid} -cf $out/layer.tar .
-
-      # Compute a checksum of the tarball.
-      echo "Computing layer checksum..."
-      tarhash=$(tarsum < $out/layer.tar)
+      tarhash=$(tar -C layer --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" --owner=${toString uid} --group=${toString gid} -cf - . | tee $out/layer.tar | tarsum)
 
       # Add a 'checksum' field to the JSON, with the value set to the
       # checksum of the tarball.
@@ -537,11 +424,10 @@ rec {
 
         echo "Packing layer..."
         mkdir -p $out
-        tar -C layer --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" -cf $out/layer.tar .
+        tarhash=$(tar -C layer --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" -cf - . |
+                    tee $out/layer.tar |
+                    ${tarsum}/bin/tarsum)
 
-        # Compute the tar checksum and add it to the output json.
-        echo "Computing checksum..."
-        tarhash=$(${tarsum}/bin/tarsum < $out/layer.tar)
         cat ${baseJson} | jshon -s "$tarhash" -i checksum > $out/json
         # Indicate to docker that we're using schema version 1.0.
         echo -n "1.0" > $out/VERSION
@@ -550,131 +436,15 @@ rec {
       '';
     };
 
-  buildLayeredImage = {
-    # Image Name
-    name,
-    # Image tag, the Nix's output hash will be used if null
-    tag ? null,
-    # Files to put on the image (a nix store path or list of paths).
-    contents ? [],
-    # Docker config; e.g. what command to run on the container.
-    config ? {},
-    # Time of creation of the image. Passing "now" will make the
-    # created date be the time of building.
-    created ? "1970-01-01T00:00:01Z",
-    # Optional bash script to run on the files prior to fixturizing the layer.
-    extraCommands ? "", uid ? 0, gid ? 0,
-    # We pick 100 to ensure there is plenty of room for extension. I
-    # believe the actual maximum is 128.
-    maxLayers ? 100
-  }:
-    assert
-      (lib.assertMsg (maxLayers > 1)
-      "the maxLayers argument of dockerTools.buildLayeredImage function must be greather than 1 (current value: ${toString maxLayers})");
+  buildLayeredImage = {name, ...}@args:
     let
-      baseName = baseNameOf name;
-      contentsEnv = symlinkJoin {
-        name = "bulk-layers";
-        paths = if builtins.isList contents
-          then contents
-          else [ contents ];
-      };
-
-      configJson = let
-          pure = writeText "${baseName}-config.json" (builtins.toJSON {
-            inherit created config;
-            architecture = buildPackages.go.GOARCH;
-            os = "linux";
-          });
-          impure = runCommand "${baseName}-standard-dynamic-date.json"
-            { nativeBuildInputs = [ jq ]; }
-            ''
-               jq ".created = \"$(TZ=utc date --iso-8601="seconds")\"" ${pure} > $out
-            '';
-        in if created == "now" then impure else pure;
-
-      bulkLayers = mkManyPureLayers {
-          name = baseName;
-          closures = [ contentsEnv configJson ];
-          # One layer will be taken up by the customisationLayer, so
-          # take up one less.
-          maxLayers = maxLayers - 1;
-          inherit configJson;
-        };
-      customisationLayer = mkCustomisationLayer {
-          name = baseName;
-          contents = contentsEnv;
-          baseJson = configJson;
-          inherit uid gid extraCommands;
-        };
-      result = runCommand "docker-image-${baseName}.tar.gz" {
-        nativeBuildInputs = [ jshon pigz coreutils findutils jq ];
-        # Image name and tag must be lowercase
-        imageName = lib.toLower name;
-        baseJson = configJson;
-        passthru.imageTag =
-          if tag == null
-          then lib.head (lib.splitString "-" (lib.last (lib.splitString "/" result)))
-          else lib.toLower tag;
-        # Docker can't be made to run darwin binaries
-        meta.badPlatforms = lib.platforms.darwin;
-      } ''
-        ${if (tag == null) then ''
-          outName="$(basename "$out")"
-          outHash=$(echo "$outName" | cut -d - -f 1)
-
-          imageTag=$outHash
-        '' else ''
-          imageTag="${tag}"
-        ''}
-
-        find ${bulkLayers} -mindepth 1 -maxdepth 1 | sort -t/ -k5 -n > layer-list
-        echo ${customisationLayer} >> layer-list
-
-        mkdir image
-        imageJson=$(cat ${configJson} | jq ". + {\"rootfs\": {\"diff_ids\": [], \"type\": \"layers\"}}")
-        manifestJson=$(jq -n "[{\"RepoTags\":[\"$imageName:$imageTag\"]}]")
-        for layer in $(cat layer-list); do
-          layerChecksum=$(sha256sum $layer/layer.tar | cut -d ' ' -f1)
-          layerID=$(sha256sum "$layer/json" | cut -d ' ' -f 1)
-          ln -s "$layer" "./image/$layerID"
-
-          manifestJson=$(echo "$manifestJson" | jq ".[0].Layers |= . + [\"$layerID/layer.tar\"]")
-          imageJson=$(echo "$imageJson" | jq ".history |= . + [{\"created\": \"$(jq -r .created ${configJson})\"}]")
-          imageJson=$(echo "$imageJson" | jq ".rootfs.diff_ids |= . + [\"sha256:$layerChecksum\"]")
-        done
-        imageJsonChecksum=$(echo "$imageJson" | sha256sum | cut -d ' ' -f1)
-        echo "$imageJson" > "image/$imageJsonChecksum.json"
-        manifestJson=$(echo "$manifestJson" | jq ".[0].Config = \"$imageJsonChecksum.json\"")
-        echo "$manifestJson" > image/manifest.json
-
-        jshon -n object \
-          -n object -s "$layerID" -i "$imageTag" \
-          -i "$imageName" > image/repositories
-
-        echo "Cooking the image..."
-        # tar exits with an exit code of 1 if files changed while it was
-        # reading them. It considers a change in the number of hard links
-        # to be a "change", which can cause this to fail if images are being
-        # built concurrently and the auto-optimise-store nix option is turned on.
-        # Since the contents of these files will not change, we can reasonably
-        # ignore this exit code.
-        set +e
-        tar -C image --dereference --hard-dereference --sort=name \
-          --mtime="@$SOURCE_DATE_EPOCH" --owner=0 --group=0  \
-          --mode=a-w --xform s:'^./':: --use-compress-program='pigz -nT' \
-          --warning=no-file-changed -cf $out .
-        RET=$?
-        if [ $RET -ne 0 ] && [ $RET -ne 1 ]; then
-          exit $RET
-        fi
-        set -e
-
-        echo "Finished."
-      '';
-
+      stream = streamLayeredImage args;
     in
-    result;
+      runCommand "${name}.tar.gz" {
+        inherit (stream) imageName;
+        passthru = { inherit (stream) imageTag; };
+        buildInputs = [ pigz ];
+      } "${stream} | pigz -nT > $out";
 
   # 1. extract the base image
   # 2. create the layer
@@ -748,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;
       } ''
@@ -773,26 +548,32 @@ rec {
 
         mkdir image
         touch baseFiles
+        baseEnvs='[]'
         if [[ -n "$fromImage" ]]; then
           echo "Unpacking base image..."
           tar -C image -xpf "$fromImage"
 
+          # Store the layers and the environment variables from the base image
           cat ./image/manifest.json  | jq -r '.[0].Layers | .[]' > layer-list
+          configName="$(cat ./image/manifest.json | jq -r '.[0].Config')"
+          baseEnvs="$(cat "./image/$configName" | jq '.config.Env // []')"
+
+          # Extract the parentID from the manifest
+          if [[ -n "$fromImageName" ]] && [[ -n "$fromImageTag" ]]; then
+            parentID="$(
+              cat "image/manifest.json" |
+                jq -r '.[] | select(.RepoTags | contains([$desiredTag])) | rtrimstr(".json")' \
+                  --arg desiredTag "$fromImageName:$fromImageTag"
+            )"
+          else
+            echo "From-image name or tag wasn't set. Reading the first ID."
+            parentID="$(cat "image/manifest.json" | jq -r '.[0].Config | rtrimstr(".json")')"
+          fi
 
-          # Do not import the base image configuration and manifest
+          # Otherwise do not import the base image configuration and manifest
           chmod a+w image image/*.json
           rm -f image/*.json
 
-          if [[ -z "$fromImageName" ]]; then
-            fromImageName=$(jshon -k < image/repositories|head -n1)
-          fi
-          if [[ -z "$fromImageTag" ]]; then
-            fromImageTag=$(jshon -e $fromImageName -k \
-                           < image/repositories|head -n1)
-          fi
-          parentID=$(jshon -e $fromImageName -e $fromImageTag -u \
-                     < image/repositories)
-
           for l in image/*/layer.tar; do
             ls_tar $l >> baseFiles
           done
@@ -859,7 +640,8 @@ rec {
         ) | sponge layer-list
 
         # Create image json and image manifest
-        imageJson=$(cat ${baseJson} | jq ". + {\"rootfs\": {\"diff_ids\": [], \"type\": \"layers\"}}")
+        imageJson=$(cat ${baseJson} | jq '.config.Env = $baseenv + .config.Env' --argjson baseenv "$baseEnvs")
+        imageJson=$(echo "$imageJson" | jq ". + {\"rootfs\": {\"diff_ids\": [], \"type\": \"layers\"}}")
         manifestJson=$(jq -n "[{\"RepoTags\":[\"$imageName:$imageTag\"]}]")
 
         for layerTar in $(cat ./layer-list); do
@@ -908,4 +690,123 @@ rec {
     })
   );
 
+  streamLayeredImage = {
+    # Image Name
+    name,
+    # Image tag, the Nix's output hash will be used if null
+    tag ? null,
+    # Files to put on the image (a nix store path or list of paths).
+    contents ? [],
+    # Docker config; e.g. what command to run on the container.
+    config ? {},
+    # Time of creation of the image. Passing "now" will make the
+    # created date be the time of building.
+    created ? "1970-01-01T00:00:01Z",
+    # Optional bash script to run on the files prior to fixturizing the layer.
+    extraCommands ? "",
+    # We pick 100 to ensure there is plenty of room for extension. I
+    # believe the actual maximum is 128.
+    maxLayers ? 100
+  }:
+    assert
+      (lib.assertMsg (maxLayers > 1)
+      "the maxLayers argument of dockerTools.buildLayeredImage function must be greather than 1 (current value: ${toString maxLayers})");
+    let
+      streamScript = writePython3 "stream" {} ./stream_layered_image.py;
+      baseJson = writeText "${name}-base.json" (builtins.toJSON {
+         inherit config;
+         architecture = buildPackages.go.GOARCH;
+         os = "linux";
+      });
+      customisationLayer = runCommand "${name}-customisation-layer" { inherit extraCommands; } ''
+        cp -r ${contentsEnv}/ $out
+
+        if [[ -n $extraCommands ]]; then
+          chmod u+w $out
+          (cd $out; eval "$extraCommands")
+        fi
+      '';
+      contentsEnv = symlinkJoin {
+        name = "${name}-bulk-layers";
+        paths = if builtins.isList contents
+          then contents
+          else [ contents ];
+      };
+
+      # NOTE: the `closures` parameter is a list of closures to include.
+      # The TOP LEVEL store paths themselves will never be present in the
+      # resulting image. At this time (2020-06-18) none of these layers
+      # are appropriate to include, as they are all created as
+      # implementation details of dockerTools.
+      closures = [ baseJson contentsEnv ];
+      overallClosure = writeText "closure" (lib.concatStringsSep " " closures);
+      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 ];
+      } ''
+        paths() {
+          cat $paths ${lib.concatMapStringsSep " " (path: "| (grep -v ${path} || true)") (closures ++ [ overallClosure ])}
+        }
+        ${if (tag == null) then ''
+          outName="$(basename "$out")"
+          outHash=$(echo "$outName" | cut -d - -f 1)
+
+          imageTag=$outHash
+        '' else ''
+          imageTag="${tag}"
+        ''}
+
+        # convert "created" to iso format
+        if [[ "$created" != "now" ]]; then
+            created="$(date -Iseconds -d "$created")"
+        fi
+
+        # Create $maxLayers worth of Docker Layers, one layer per store path
+        # unless there are more paths than $maxLayers. In that case, create
+        # $maxLayers-1 for the most popular layers, and smush the remainaing
+        # store paths in to one final layer.
+        #
+        # The following code is fiddly w.r.t. ensuring every layer is
+        # created, and that no paths are missed. If you change the
+        # following lines, double-check that your code behaves properly
+        # when the number of layers equals:
+        #      maxLayers-1, maxLayers, and maxLayers+1, 0
+        store_layers="$(
+          paths |
+            jq -sR '
+              rtrimstr("\n") | split("\n")
+                | (.[:$maxLayers-1] | map([.])) + [ .[$maxLayers-1:] ]
+                | map(select(length > 0))
+            ' \
+              --argjson maxLayers "$(( maxLayers - 1 ))" # one layer will be taken up by the customisation layer
+        )"
+
+        cat ${baseJson} | jq '
+          . + {
+            "store_layers": $store_layers,
+            "customisation_layer", $customisation_layer,
+            "repo_tag": $repo_tag,
+            "created": $created
+          }
+          ' --argjson store_layers "$store_layers" \
+            --arg customisation_layer ${customisationLayer} \
+            --arg repo_tag "$imageName:$imageTag" \
+            --arg created "$created" |
+          tee $out
+      '';
+      result = runCommand "stream-${name}" {
+        inherit (conf) imageName;
+        passthru = { inherit (conf) imageTag; };
+        buildInputs = [ makeWrapper ];
+      } ''
+        makeWrapper ${streamScript} $out --add-flags ${conf}
+      '';
+    in result;
 }
diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix
index f42b35e6494..bc107471762 100644
--- a/pkgs/build-support/docker/examples.nix
+++ b/pkgs/build-support/docker/examples.nix
@@ -69,6 +69,12 @@ rec {
     tag = "latest";
     contents = pkgs.nginx;
 
+    extraCommands = ''
+      # nginx still tries to read this directory even if error_log
+      # directive is specifying another file :/
+      mkdir -p var/log/nginx
+      mkdir -p var/cache/nginx
+    '';
     runAsRoot = ''
       #!${pkgs.stdenv.shell}
       ${shadowSetup}
@@ -115,6 +121,7 @@ rec {
       # the image env variable NIX_PAGER.
       pkgs.coreutils
       pkgs.nix
+      pkgs.bash
     ];
     config = {
       Env = [
@@ -231,14 +238,41 @@ rec {
     '';
   };
 
-  # 14. Create another layered image, for comparing layers with image 10.
+  # 14. Environment variable inheritance.
+  # Child image should inherit parents environment variables,
+  # optionally overriding them.
+  environmentVariables = let
+    parent = pkgs.dockerTools.buildImage {
+      name = "parent";
+      tag = "latest";
+      config = {
+        Env = [
+          "FROM_PARENT=true"
+          "LAST_LAYER=parent"
+        ];
+      };
+    };
+  in pkgs.dockerTools.buildImage {
+    name = "child";
+    fromImage = parent;
+    tag = "latest";
+    contents = [ pkgs.coreutils ];
+    config = {
+      Env = [
+        "FROM_CHILD=true"
+        "LAST_LAYER=child"
+      ];
+    };
+  };
+
+  # 15. Create another layered image, for comparing layers with image 10.
   another-layered-image = pkgs.dockerTools.buildLayeredImage {
     name = "another-layered-image";
     tag = "latest";
     config.Cmd = [ "${pkgs.hello}/bin/hello" ];
   };
 
-  # 15. Create a layered image with only 2 layers
+  # 16. Create a layered image with only 2 layers
   two-layered-image = pkgs.dockerTools.buildLayeredImage {
     name = "two-layered-image";
     tag = "latest";
@@ -247,7 +281,7 @@ rec {
     maxLayers = 2;
   };
 
-  # 16. Create a layered image with more packages than max layers.
+  # 17. Create a layered image with more packages than max layers.
   # coreutils and hello are part of the same layer
   bulk-layer = pkgs.dockerTools.buildLayeredImage {
     name = "bulk-layer";
@@ -258,7 +292,7 @@ rec {
     maxLayers = 2;
   };
 
-  # 17. Create a "layered" image without nix store layers. This is not
+  # 18. Create a "layered" image without nix store layers. This is not
   # recommended, but can be useful for base images in rare cases.
   no-store-paths = pkgs.dockerTools.buildLayeredImage {
     name = "no-store-paths";
@@ -280,4 +314,108 @@ rec {
       )
     ];
   };
+
+  nixLayered = pkgs.dockerTools.buildLayeredImageWithNixDb {
+    name = "nix-layered";
+    tag = "latest";
+    contents = [
+      # nix-store uses cat program to display results as specified by
+      # the image env variable NIX_PAGER.
+      pkgs.coreutils
+      pkgs.nix
+      pkgs.bash
+    ];
+    config = {
+      Env = [
+        "NIX_PAGER=cat"
+        # A user is required by nix
+        # https://github.com/NixOS/nix/blob/9348f9291e5d9e4ba3c4347ea1b235640f54fd79/src/libutil/util.cc#L478
+        "USER=nobody"
+      ];
+    };
+  };
+
+  # 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/nix-prefetch-docker b/pkgs/build-support/docker/nix-prefetch-docker
index 839dc87487a..1b6785189c2 100755
--- a/pkgs/build-support/docker/nix-prefetch-docker
+++ b/pkgs/build-support/docker/nix-prefetch-docker
@@ -38,7 +38,7 @@ get_image_digest(){
         imageTag="latest"
     fi
 
-    skopeo inspect "docker://$imageName:$imageTag" | jq '.Digest' -r
+    skopeo --insecure-policy --tmpdir=$TMPDIR inspect "docker://$imageName:$imageTag" | jq '.Digest' -r
 }
 
 get_name() {
@@ -127,9 +127,9 @@ trap "rm -rf \"$tmpPath\"" EXIT
 tmpFile="$tmpPath/$(get_name $finalImageName $finalImageTag)"
 
 if test -z "$QUIET"; then
-    skopeo --override-os ${os} --override-arch ${arch} copy "$sourceUrl" "docker-archive://$tmpFile:$finalImageName:$finalImageTag"
+    skopeo --insecure-policy --tmpdir=$TMPDIR --override-os ${os} --override-arch ${arch} copy "$sourceUrl" "docker-archive://$tmpFile:$finalImageName:$finalImageTag"
 else
-    skopeo --override-os ${os} --override-arch ${arch} copy "$sourceUrl" "docker-archive://$tmpFile:$finalImageName:$finalImageTag" > /dev/null
+    skopeo --insecure-policy --tmpdir=$TMPDIR --override-os ${os} --override-arch ${arch} copy "$sourceUrl" "docker-archive://$tmpFile:$finalImageName:$finalImageTag" > /dev/null
 fi
 
 # Compute the hash.
diff --git a/pkgs/build-support/docker/store-path-to-layer.sh b/pkgs/build-support/docker/store-path-to-layer.sh
deleted file mode 100755
index 7e8efeea1c1..00000000000
--- a/pkgs/build-support/docker/store-path-to-layer.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!@shell@
-
-set -eu
-
-layerNumber=$1
-shift
-
-layerPath="./layers/$layerNumber"
-echo "Creating layer #$layerNumber for $@"
-
-mkdir -p "$layerPath"
-
-# Make sure /nix and /nix/store appear first in the archive.
-# We create the directories here and use them because
-# when there are other things being added to the
-# nix store, tar could fail, saying,
-# "tar: /nix/store: file changed as we read it"
-mkdir -p nix/store
-tar -cf "$layerPath/layer.tar"  \
-    --mtime="@$SOURCE_DATE_EPOCH" \
-    --owner=0 --group=0 \
-    --transform='s,nix,/nix,' \
-    nix
-
-# We change into the /nix/store in order to avoid a similar
-# "file changed as we read it" error as above. Namely,
-# if we use the absolute path of /nix/store/123-pkg
-# and something new is added to the nix store while tar
-# is running, it will detect a change to /nix/store and
-# fail. Instead, if we cd into the nix store and copy
-# the relative nix store path, tar will ignore changes
-# to /nix/store. In order to create the correct structure
-# in the tar file, we transform the relative nix store
-# path to the absolute store path.
-for storePath in "$@"; do
-  n=$(basename "$storePath")
-  tar -C /nix/store -rpf "$layerPath/layer.tar" \
-      --hard-dereference --sort=name \
-      --mtime="@$SOURCE_DATE_EPOCH" \
-      --owner=0 --group=0 \
-      --transform="s,$n,/nix/store/$n," \
-      $n
-done
-
-# Compute a checksum of the tarball.
-tarhash=$(tarsum < $layerPath/layer.tar)
-
-# Add a 'checksum' field to the JSON, with the value set to the
-# checksum of the tarball.
-cat ./generic.json | jshon -s "$tarhash" -i checksum > $layerPath/json
-
-# Indicate to docker that we're using schema version 1.0.
-echo -n "1.0" > $layerPath/VERSION
diff --git a/pkgs/build-support/docker/stream_layered_image.py b/pkgs/build-support/docker/stream_layered_image.py
new file mode 100644
index 00000000000..ffb6ba0ade4
--- /dev/null
+++ b/pkgs/build-support/docker/stream_layered_image.py
@@ -0,0 +1,313 @@
+"""
+This script generates a Docker image from a set of store paths. Uses
+Docker Image Specification v1.2 as reference [1].
+
+It expects a JSON file with the following properties and writes the
+image as an uncompressed tarball to stdout:
+
+* "architecture", "config", "os", "created", "repo_tag" correspond to
+  the fields with the same name on the image spec [2].
+* "created" can be "now".
+* "created" is also used as mtime for files added to the image.
+* "store_layers" is a list of layers in ascending order, where each
+  layer is the list of store paths to include in that layer.
+
+The main challenge for this script to create the final image in a
+streaming fashion, without dumping any intermediate data to disk
+for performance.
+
+A docker image has each layer contents archived as separate tarballs,
+and they later all get enveloped into a single big tarball in a
+content addressed fashion. However, because how "tar" format works,
+we have to know about the name (which includes the checksum in our
+case) and the size of the tarball before we can start adding it to the
+outer tarball.  We achieve that by creating the layer tarballs twice;
+on the first iteration we calculate the file size and the checksum,
+and on the second one we actually stream the contents. 'add_layer_dir'
+function does all this.
+
+[1]: https://github.com/moby/moby/blob/master/image/spec/v1.2.md
+[2]: https://github.com/moby/moby/blob/4fb59c20a4fb54f944fe170d0ff1d00eb4a24d6f/image/spec/v1.2.md#image-json-field-descriptions
+"""  # noqa: E501
+
+
+import io
+import os
+import re
+import sys
+import json
+import hashlib
+import pathlib
+import tarfile
+import itertools
+import threading
+from datetime import datetime, timezone
+from collections import namedtuple
+
+
+def archive_paths_to(obj, paths, mtime, add_nix, filter=None):
+    """
+    Writes the given store paths as a tar file to the given stream.
+
+    obj: Stream to write to. Should have a 'write' method.
+    paths: List of store paths.
+    add_nix: Whether /nix and /nix/store directories should be
+             prepended to the archive.
+    filter: An optional transformation to be applied to TarInfo
+            objects. Should take a single TarInfo object and return
+            another one. Defaults to identity.
+    """
+
+    filter = filter if filter else lambda i: i
+
+    # gettarinfo makes the paths relative, this makes them
+    # absolute again
+    def append_root(ti):
+        ti.name = "/" + ti.name
+        return ti
+
+    def apply_filters(ti):
+        ti.mtime = mtime
+        ti.uid = 0
+        ti.gid = 0
+        ti.uname = "root"
+        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
+        return ti
+
+    with tarfile.open(fileobj=obj, mode="w|") as tar:
+        # To be consistent with the docker utilities, we need to have
+        # these directories first when building layer tarballs. But
+        # we don't need them on the customisation layer.
+        if add_nix:
+            tar.addfile(apply_filters(nix_root(dir("/nix"))))
+            tar.addfile(apply_filters(nix_root(dir("/nix/store"))))
+
+        for path in paths:
+            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():
+                    with open(filename, "rb") as f:
+                        tar.addfile(ti, f)
+                else:
+                    tar.addfile(ti)
+
+
+class ExtractChecksum:
+    """
+    A writable stream which only calculates the final file size and
+    sha256sum, while discarding the actual contents.
+    """
+
+    def __init__(self):
+        self._digest = hashlib.sha256()
+        self._size = 0
+
+    def write(self, data):
+        self._digest.update(data)
+        self._size += len(data)
+
+    def extract(self):
+        """
+        Returns: Hex-encoded sha256sum and size as a tuple.
+        """
+        return (self._digest.hexdigest(), self._size)
+
+
+# Some metadata for a layer
+LayerInfo = namedtuple("LayerInfo", ["size", "checksum", "path", "paths"])
+
+
+def add_layer_dir(tar, paths, mtime, add_nix=True, filter=None):
+    """
+    Appends given store paths to a TarFile object as a new layer.
+
+    tar: 'tarfile.TarFile' object for the new layer to be added to.
+    paths: List of store paths.
+    mtime: 'mtime' of the added files and the layer tarball.
+           Should be an integer representing a POSIX time.
+    add_nix: Whether /nix and /nix/store directories should be
+             added to a layer.
+    filter: An optional transformation to be applied to TarInfo
+            objects inside the layer. Should take a single TarInfo
+            object and return another one. Defaults to identity.
+
+    Returns: A 'LayerInfo' object containing some metadata of
+             the layer added.
+    """
+
+    invalid_paths = [i for i in paths if not i.startswith("/nix/store/")]
+    assert len(invalid_paths) == 0, \
+        "Expecting absolute store paths, but got: {invalid_paths}"
+
+    # First, calculate the tarball checksum and the size.
+    extract_checksum = ExtractChecksum()
+    archive_paths_to(
+        extract_checksum,
+        paths,
+        mtime=mtime,
+        add_nix=add_nix,
+        filter=filter
+    )
+    (checksum, size) = extract_checksum.extract()
+
+    path = f"{checksum}/layer.tar"
+    layer_tarinfo = tarfile.TarInfo(path)
+    layer_tarinfo.size = size
+    layer_tarinfo.mtime = mtime
+
+    # Then actually stream the contents to the outer tarball.
+    read_fd, write_fd = os.pipe()
+    with open(read_fd, "rb") as read, open(write_fd, "wb") as write:
+        def producer():
+            archive_paths_to(
+                write,
+                paths,
+                mtime=mtime,
+                add_nix=add_nix,
+                filter=filter
+            )
+            write.close()
+
+        # Closing the write end of the fifo also closes the read end,
+        # so we don't need to wait until this thread is finished.
+        #
+        # Any exception from the thread will get printed by the default
+        # exception handler, and the 'addfile' call will fail since it
+        # won't be able to read required amount of bytes.
+        threading.Thread(target=producer).start()
+        tar.addfile(layer_tarinfo, read)
+
+    return LayerInfo(size=size, checksum=checksum, path=path, paths=paths)
+
+
+def add_customisation_layer(tar, path, mtime):
+    """
+    Adds the contents of the store path as a new layer. This is different
+    than the 'add_layer_dir' function defaults in the sense that the contents
+    of a single store path will be added to the root of the layer. eg (without
+    the /nix/store prefix).
+
+    tar: 'tarfile.TarFile' object for the new layer to be added to.
+    path: A store path.
+    mtime: 'mtime' of the added files and the layer tarball. Should be an
+           integer representing a POSIX time.
+    """
+
+    def filter(ti):
+        ti.name = re.sub("^/nix/store/[^/]*", "", ti.name)
+        return ti
+    return add_layer_dir(
+        tar,
+        [path],
+        mtime=mtime,
+        add_nix=False,
+        filter=filter
+      )
+
+
+def add_bytes(tar, path, content, mtime):
+    """
+    Adds a file to the tarball with given path and contents.
+
+    tar: 'tarfile.TarFile' object.
+    path: Path of the file as a string.
+    content: Contents of the file.
+    mtime: 'mtime' of the file. Should be an integer representing a POSIX time.
+    """
+    assert type(content) is bytes
+
+    ti = tarfile.TarInfo(path)
+    ti.size = len(content)
+    ti.mtime = mtime
+    tar.addfile(ti, io.BytesIO(content))
+
+
+def main():
+    with open(sys.argv[1], "r") as f:
+        conf = json.load(f)
+
+    created = (
+      datetime.now(tz=timezone.utc)
+      if conf["created"] == "now"
+      else datetime.fromisoformat(conf["created"])
+    )
+    mtime = int(created.timestamp())
+
+    with tarfile.open(mode="w|", fileobj=sys.stdout.buffer) as tar:
+        layers = []
+        for num, store_layer in enumerate(conf["store_layers"]):
+            print(
+              "Creating layer", num,
+              "from paths:", store_layer,
+              file=sys.stderr)
+            info = add_layer_dir(tar, store_layer, mtime=mtime)
+            layers.append(info)
+
+        print("Creating the customisation layer...", file=sys.stderr)
+        layers.append(
+          add_customisation_layer(
+            tar,
+            conf["customisation_layer"],
+            mtime=mtime
+          )
+        )
+
+        print("Adding manifests...", file=sys.stderr)
+
+        image_json = {
+            "created": datetime.isoformat(created),
+            "architecture": conf["architecture"],
+            "os": "linux",
+            "config": conf["config"],
+            "rootfs": {
+                "diff_ids": [f"sha256:{layer.checksum}" for layer in layers],
+                "type": "layers",
+            },
+            "history": [
+                {
+                  "created": datetime.isoformat(created),
+                  "comment": f"store paths: {layer.paths}"
+                }
+                for layer in layers
+            ],
+        }
+
+        image_json = json.dumps(image_json, indent=4).encode("utf-8")
+        image_json_checksum = hashlib.sha256(image_json).hexdigest()
+        image_json_path = f"{image_json_checksum}.json"
+        add_bytes(tar, image_json_path, image_json, mtime=mtime)
+
+        manifest_json = [
+            {
+                "Config": image_json_path,
+                "RepoTags": [conf["repo_tag"]],
+                "Layers": [layer.path for layer in layers],
+            }
+        ]
+        manifest_json = json.dumps(manifest_json, indent=4).encode("utf-8")
+        add_bytes(tar, "manifest.json", manifest_json, mtime=mtime)
+
+        print("Done.", file=sys.stderr)
+
+
+if __name__ == "__main__":
+    main()
diff --git a/pkgs/build-support/dotnetbuildhelpers/default.nix b/pkgs/build-support/dotnetbuildhelpers/default.nix
index 0edfd0b467a..809619ed55d 100644
--- a/pkgs/build-support/dotnetbuildhelpers/default.nix
+++ b/pkgs/build-support/dotnetbuildhelpers/default.nix
@@ -12,7 +12,7 @@
         cp -v "$script" "$target"/"$scriptName"
         chmod 755 "$target"/"$scriptName"
         patchShebangs "$target"/"$scriptName"
-        substituteInPlace "$target"/"$scriptName" --replace pkg-config ${pkgconfig}/bin/pkg-config
+        substituteInPlace "$target"/"$scriptName" --replace pkg-config ${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config
         substituteInPlace "$target"/"$scriptName" --replace monodis ${mono}/bin/monodis
       done
     ''
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/emacs/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix
index 25f068cd3fa..1f2fbd8068e 100644
--- a/pkgs/build-support/emacs/wrapper.nix
+++ b/pkgs/build-support/emacs/wrapper.nix
@@ -174,7 +174,7 @@ runCommand
 
     mkdir -p $out/share
     # Link icons and desktop files into place
-    for dir in applications icons info man; do
+    for dir in applications icons info man emacs; do
       ln -s $emacs/share/$dir $out/share/$dir
     done
   ''
diff --git a/pkgs/build-support/fetchbzr/default.nix b/pkgs/build-support/fetchbzr/default.nix
index f9250de4ee0..2cf169de7a5 100644
--- a/pkgs/build-support/fetchbzr/default.nix
+++ b/pkgs/build-support/fetchbzr/default.nix
@@ -1,11 +1,11 @@
-{ stdenvNoCC, bazaar }:
+{ stdenvNoCC, breezy }:
 { url, rev, sha256 }:
 
 stdenvNoCC.mkDerivation {
   name = "bzr-export";
 
   builder = ./builder.sh;
-  nativeBuildInputs = [ bazaar ];
+  nativeBuildInputs = [ breezy ];
 
   outputHashAlgo = "sha256";
   outputHashMode = "recursive";
diff --git a/pkgs/build-support/fetchgitlab/default.nix b/pkgs/build-support/fetchgitlab/default.nix
index 6c4d52a0533..f1850fbaa1e 100644
--- a/pkgs/build-support/fetchgitlab/default.nix
+++ b/pkgs/build-support/fetchgitlab/default.nix
@@ -12,10 +12,11 @@ let
     ((optional (group != null) group) ++ [ owner repo ]);
 
   escapedSlug = replaceStrings ["." "/"] ["%2E" "%2F"] slug;
+  escapedRev = replaceStrings ["+"] ["%2B"] rev;
 in
 
 fetchzip ({
   inherit name;
-  url = "https://${domain}/api/v4/projects/${escapedSlug}/repository/archive.tar.gz?sha=${rev}";
+  url = "https://${domain}/api/v4/projects/${escapedSlug}/repository/archive.tar.gz?sha=${escapedRev}";
   meta.homepage = "https://${domain}/${slug}/";
 } // removeAttrs args [ "domain" "owner" "group" "repo" "rev" ]) // { inherit rev; }
diff --git a/pkgs/build-support/fetchmavenartifact/default.nix b/pkgs/build-support/fetchmavenartifact/default.nix
index d7ad406943b..583a9ea396c 100644
--- a/pkgs/build-support/fetchmavenartifact/default.nix
+++ b/pkgs/build-support/fetchmavenartifact/default.nix
@@ -3,7 +3,7 @@
 { fetchurl, stdenv }:
 let
   defaultRepos = [
-    "http://central.maven.org/maven2"
+    "http://repo1.maven.org/maven2"
     "http://oss.sonatype.org/content/repositories/releases"
     "http://oss.sonatype.org/content/repositories/public"
     "http://repo.typesafe.com/typesafe/releases"
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/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index 4e8b0aa99a8..0eba8816b63 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -426,7 +426,6 @@
   # Maven Central
   maven = [
     "https://repo1.maven.org/maven2/"
-    "https://central.maven.org/maven2/"
   ];
 
   # Alsa Project
diff --git a/pkgs/build-support/kernel/modules-closure.sh b/pkgs/build-support/kernel/modules-closure.sh
index 220f3b00a77..68d840f1614 100644
--- a/pkgs/build-support/kernel/modules-closure.sh
+++ b/pkgs/build-support/kernel/modules-closure.sh
@@ -19,36 +19,55 @@ 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 module in $(cat closure); do
     for i in $(modinfo -F firmware $module); do
         mkdir -p "$out/lib/firmware/$(dirname "$i")"
         echo "firmware for $module: $i"
diff --git a/pkgs/build-support/ocaml/oasis.nix b/pkgs/build-support/ocaml/oasis.nix
index 74977486f2f..c1d1d699765 100644
--- a/pkgs/build-support/ocaml/oasis.nix
+++ b/pkgs/build-support/ocaml/oasis.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation (args // {
   buildPhase = ''
     runHook preBuild
     oasis setup
-    ocaml setup.ml -configure
+    ocaml setup.ml -configure --prefix $OCAMLFIND_DESTDIR --exec-prefix $out
     ocaml setup.ml -build
     runHook postBuild
   '';
@@ -37,9 +37,7 @@ stdenv.mkDerivation (args // {
   installPhase = ''
     runHook preInstall
     mkdir -p $out
-    sed -i s+/usr/local+$out+g setup.ml
-    sed -i s+/usr/local+$out+g setup.data
-    prefix=$OCAMLFIND_DESTDIR ocaml setup.ml -install
+    ocaml setup.ml -install
     runHook postInstall
   '';
 
diff --git a/pkgs/build-support/pkg-config-wrapper/add-flags.sh b/pkgs/build-support/pkg-config-wrapper/add-flags.sh
new file mode 100644
index 00000000000..35ecf62ca23
--- /dev/null
+++ b/pkgs/build-support/pkg-config-wrapper/add-flags.sh
@@ -0,0 +1,12 @@
+# See cc-wrapper for comments.
+var_templates_list=(
+    PKG_CONFIG_PATH
+)
+
+accumulateRoles
+
+for var in "${var_templates_list[@]}"; do
+    mangleVarList "$var" ${role_suffixes[@]+"${role_suffixes[@]}"}
+done
+
+export NIX_PKG_CONFIG_WRAPPER_FLAGS_SET_@suffixSalt@=1
diff --git a/pkgs/build-support/pkg-config-wrapper/default.nix b/pkgs/build-support/pkg-config-wrapper/default.nix
new file mode 100644
index 00000000000..e01df107dd1
--- /dev/null
+++ b/pkgs/build-support/pkg-config-wrapper/default.nix
@@ -0,0 +1,126 @@
+# The wrapper script ensures variables like PKG_CONFIG_PATH and
+# PKG_CONFIG_PATH_FOR_BUILD work properly.
+
+{ stdenvNoCC
+, buildPackages
+, pkg-config
+, baseBinName ? "pkg-config"
+, propagateDoc ? pkg-config != null && pkg-config ? man
+, extraPackages ? [], extraBuildCommands ? ""
+}:
+
+with stdenvNoCC.lib;
+
+let
+  stdenv = stdenvNoCC;
+  inherit (stdenv) hostPlatform targetPlatform;
+
+  # Prefix for binaries. Customarily ends with a dash separator.
+  #
+  # TODO(@Ericson2314) Make unconditional, or optional but always true by
+  # default.
+  targetPrefix = stdenv.lib.optionalString (targetPlatform != hostPlatform)
+                                        (targetPlatform.config + "-");
+
+  # See description in cc-wrapper.
+  suffixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config;
+
+in
+
+stdenv.mkDerivation {
+  pname = targetPrefix + pkg-config.pname + "-wrapper";
+  inherit (pkg-config) version;
+
+  preferLocalBuild = true;
+
+  shell = getBin stdenvNoCC.shell + stdenvNoCC.shell.shellPath or "";
+
+  inherit targetPrefix suffixSalt baseBinName;
+
+  outputs = [ "out" ] ++ optionals propagateDoc ([ "man" ] ++ optional (pkg-config ? doc) "doc");
+
+  passthru = {
+    inherit pkg-config;
+  };
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  unpackPhase = ''
+    src=$PWD
+  '';
+
+  installPhase =
+    ''
+      mkdir -p $out/bin $out/nix-support
+
+      wrap() {
+        local dst="$1"
+        local wrapper="$2"
+        export prog="$3"
+        substituteAll "$wrapper" "$out/bin/$dst"
+        chmod +x "$out/bin/$dst"
+      }
+
+      echo $pkg-config > $out/nix-support/orig-pkg-config
+
+      wrap ${targetPrefix}${baseBinName} ${./pkg-config-wrapper.sh} "${getBin pkg-config}/bin/${baseBinName}"
+    ''
+    # symlink in share for autoconf to find macros
+
+    # TODO(@Ericson2314): in the future just make the unwrapped pkg-config a
+    # propagated dep once we can rely on downstream deps comming first in
+    # search paths. (https://github.com/NixOS/nixpkgs/pull/31414 took a crack
+    # at this.)
+    + ''
+      ln -s ${pkg-config}/share $out/share
+    '';
+
+  strictDeps = true;
+
+  wrapperName = "PKG_CONFIG_WRAPPER";
+
+  setupHooks = [
+    ../setup-hooks/role.bash
+    ./setup-hook.sh
+  ];
+
+  postFixup =
+    ##
+    ## User env support
+    ##
+
+    # Propagate the underling unwrapped pkg-config so that if you
+    # install the wrapper, you get anything else it might provide.
+    ''
+      printWords ${pkg-config} > $out/nix-support/propagated-user-env-packages
+    ''
+
+    ##
+    ## Man page and doc support
+    ##
+    + optionalString propagateDoc (''
+      ln -s ${pkg-config.man} $man
+    '' + optionalString (pkg-config ? doc) ''
+      ln -s ${pkg-config.doc} $doc
+    '')
+
+    + ''
+      substituteAll ${./add-flags.sh} $out/nix-support/add-flags.sh
+      substituteAll ${../wrapper-common/utils.bash} $out/nix-support/utils.bash
+    ''
+
+    ##
+    ## Extra custom steps
+    ##
+    + extraBuildCommands;
+
+  meta =
+    let pkg-config_ = if pkg-config != null then pkg-config else {}; in
+    (if pkg-config_ ? meta then removeAttrs pkg-config.meta ["priority"] else {}) //
+    { description =
+        stdenv.lib.attrByPath ["meta" "description"] "pkg-config" pkg-config_
+        + " (wrapper script)";
+      priority = 10;
+  };
+}
diff --git a/pkgs/build-support/pkg-config-wrapper/pkg-config-wrapper.sh b/pkgs/build-support/pkg-config-wrapper/pkg-config-wrapper.sh
new file mode 100644
index 00000000000..f7c7429eb0b
--- /dev/null
+++ b/pkgs/build-support/pkg-config-wrapper/pkg-config-wrapper.sh
@@ -0,0 +1,21 @@
+#! @shell@
+set -eu -o pipefail +o posix
+shopt -s nullglob
+
+if (( "${NIX_DEBUG:-0}" >= 7 )); then
+    set -x
+fi
+
+source @out@/nix-support/utils.bash
+
+if [ -z "${NIX_PKG_CONFIG_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then
+    source @out@/nix-support/add-flags.sh
+fi
+
+if (( ${#role_suffixes[@]} > 0 )); then
+	# replace env var with nix-modified one
+    PKG_CONFIG_PATH=$PKG_CONFIG_PATH_@suffixSalt@ exec @prog@ "$@"
+else
+	# pkg-config isn't a bonafied dependency so ignore setup hook entirely
+	exec @prog@ "$@"
+fi
diff --git a/pkgs/build-support/pkg-config-wrapper/setup-hook.sh b/pkgs/build-support/pkg-config-wrapper/setup-hook.sh
new file mode 100644
index 00000000000..34f1a999a82
--- /dev/null
+++ b/pkgs/build-support/pkg-config-wrapper/setup-hook.sh
@@ -0,0 +1,29 @@
+# pkg-config Wrapper hygiene
+#
+# See comments in cc-wrapper's setup hook. This works exactly the same way.
+
+# Skip setup hook if we're neither a build-time dep, nor, temporarily, doing a
+# native compile.
+#
+# TODO(@Ericson2314): No native exception
+[[ -z ${strictDeps-} ]] || (( "$hostOffset" < 0 )) || return 0
+
+pkgConfigWrapper_addPkgConfigPath () {
+    # See ../setup-hooks/role.bash
+    local role_post
+    getHostRoleEnvHook
+
+    addToSearchPath "PKG_CONFIG_PATH${role_post}" "$1/lib/pkgconfig"
+    addToSearchPath "PKG_CONFIG_PATH${role_post}" "$1/share/pkgconfig"
+}
+
+# See ../setup-hooks/role.bash
+getTargetRole
+getTargetRoleWrapper
+
+addEnvHooks "$targetOffset" pkgConfigWrapper_addPkgConfigPath
+
+export PKG_CONFIG${role_post}=@targetPrefix@@baseBinName@
+
+# No local scope in sourced file
+unset -v role_post
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 d6d1cebb2e9..142109cef49 100644
--- a/pkgs/build-support/rust/build-rust-crate/build-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, mkRustcDepArgs, rust }:
+{ lib, stdenv, mkRustcDepArgs, mkRustcFeatureArgs, rust }:
 { crateName,
   dependencies,
   crateFeatures, crateRenames, libName, release, libPath,
@@ -13,7 +13,7 @@
       ++ ["-C codegen-units=$NIX_BUILD_CORES"]
       ++ ["--remap-path-prefix=$NIX_BUILD_TOP=/" ]
       ++ [(mkRustcDepArgs dependencies crateRenames)]
-      ++ [crateFeatures]
+      ++ [(mkRustcFeatureArgs crateFeatures)]
       ++ extraRustcOpts
       ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--target ${rust.toRustTarget stdenv.hostPlatform} -C linker=${stdenv.hostPlatform.config}-gcc"
       # since rustc 1.42 the "proc_macro" crate is part of the default crate prelude
@@ -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 ed810053709..a95b356646e 100644
--- a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
@@ -1,5 +1,6 @@
-{ lib, stdenv, echo_colored, noisily, mkRustcDepArgs }:
-{ build
+{ lib, stdenv, echo_colored, noisily, mkRustcDepArgs, mkRustcFeatureArgs }:
+{
+  build
 , buildDependencies
 , colors
 , completeBuildDeps
@@ -30,6 +31,9 @@ let version_ = lib.splitString "-" crateVersion;
     optLevel = if release then 3 else 0;
     completeDepsDir = lib.concatStringsSep " " completeDeps;
     completeBuildDepsDir = lib.concatStringsSep " " completeBuildDeps;
+    envFeatures = lib.concatStringsSep " " (
+      map (f: lib.replaceChars ["-"] ["_"] (lib.toUpper f)) crateFeatures
+    );
 in ''
   ${echo_colored colors}
   ${noisily colors verbose}
@@ -39,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
@@ -49,7 +53,7 @@ in ''
 ''}
 
   runHook preConfigure
- 
+
   symlink_dependency() {
     # $1 is the nix-store path of a dependency
     # $2 is the target path
@@ -161,14 +165,24 @@ in ''
        EXTRA_BUILD_FLAGS="$EXTRA_BUILD_FLAGS $(tr '\n' ' ' < target/link.build)"
      fi
      noisily rustc --crate-name build_script_build $BUILD --crate-type bin ${rustcOpts} \
-       ${crateFeatures} --out-dir target/build/${crateName} --emit=dep-info,link \
+       ${mkRustcFeatureArgs crateFeatures} --out-dir target/build/${crateName} --emit=dep-info,link \
        -L dependency=target/buildDeps ${buildDeps} --cap-lints allow $EXTRA_BUILD_FLAGS --color ${colors}
 
      mkdir -p target/build/${crateName}.out
      export RUST_BACKTRACE=1
      BUILD_OUT_DIR="-L $OUT_DIR"
      mkdir -p $OUT_DIR
-     target/build/${crateName}/build_script_build > target/build/${crateName}.opt
+
+     (
+       # Features should be set as environment variable for build scripts:
+       # https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-build-scripts
+       for feature in ${envFeatures}; do
+         export CARGO_FEATURE_$feature=1
+       done
+
+       target/build/${crateName}/build_script_build > target/build/${crateName}.opt
+     )
+
      set +e
      EXTRA_BUILD=$(sed -n "s/^cargo:rustc-flags=\(.*\)/\1/p" target/build/${crateName}.opt | tr '\n' ' ' | sort -u)
      EXTRA_FEATURES=$(sed -n "s/^cargo:rustc-cfg=\(.*\)/--cfg \1/p" target/build/${crateName}.opt | tr '\n' ' ')
@@ -179,9 +193,9 @@ in ''
        export $env
      done
 
-     CRATENAME=$(echo ${crateName} | sed -e "s/\(.*\)-sys$/\U\1/")
+     CRATENAME=$(echo ${crateName} | sed -e "s/\(.*\)-sys$/\U\1/" -e "s/-/_/g")
      grep -P "^cargo:(?!(rustc-|warning=|rerun-if-changed=|rerun-if-env-changed))" target/build/${crateName}.opt \
-       | sed -e "s/cargo:\([^=]*\)=\(.*\)/export DEP_$(echo $CRATENAME)_\U\1\E=\2/" > target/env
+       | awk -F= "/^cargo:/ { sub(/^cargo:/, \"\", \$1); gsub(/-/, \"_\", \$1); print \"export \" toupper(\"DEP_$(echo $CRATENAME)_\" \$1) \"=\" \$2 }" > target/env
      set -e
   fi
   runHook postConfigure
diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix
index d9ed26f1d94..d559aba1616 100644
--- a/pkgs/build-support/rust/build-rust-crate/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/default.nix
@@ -45,14 +45,17 @@ let
            " --extern ${name}=${dep.lib}/lib/lib${extern}-${dep.metadata}${stdenv.hostPlatform.extensions.sharedLibrary}")
       ) dependencies;
 
+   # Create feature arguments for rustc.
+   mkRustcFeatureArgs = lib.concatMapStringsSep " " (f: ''--cfg feature=\"${f}\"'');
+
    inherit (import ./log.nix { inherit lib; }) noisily echo_colored;
 
    configureCrate = import ./configure-crate.nix {
-     inherit lib stdenv echo_colored noisily mkRustcDepArgs;
+     inherit lib stdenv echo_colored noisily mkRustcDepArgs mkRustcFeatureArgs;
    };
 
    buildCrate = import ./build-crate.nix {
-     inherit lib stdenv mkRustcDepArgs rust;
+     inherit lib stdenv mkRustcDepArgs mkRustcFeatureArgs rust;
    };
 
    installCrate = import ./install-crate.nix { inherit stdenv; };
@@ -233,8 +236,11 @@ stdenv.mkDerivation (rec {
       ++ lib.concatMap (dep: dep.completeBuildDeps ++ dep.completeDeps) buildDependencies
     );
 
-    crateFeatures = lib.optionalString (crate ? features)
-      (lib.concatMapStringsSep " " (f: ''--cfg feature=\"${f}\"'') (crate.features ++ features));
+    # Create a list of features that are enabled by the crate itself and
+    # through the features argument of buildRustCrate. Exclude features
+    # with a forward slash, since they are passed through to dependencies.
+    crateFeatures = lib.optionals (crate ? features)
+      (builtins.filter (f: !lib.hasInfix "/" f) (crate.features ++ features));
 
     libName = if crate ? libName then crate.libName else crate.crateName;
     libPath = if crate ? libPath then crate.libPath else "";
@@ -244,7 +250,8 @@ stdenv.mkDerivation (rec {
     metadata = let
       depsMetadata = lib.foldl' (str: dep: str + dep.metadata) "" (dependencies ++ buildDependencies);
       hashedMetadata = builtins.hashString "sha256"
-        (crateName + "-" + crateVersion + "___" + toString crateFeatures + "___" + depsMetadata);
+        (crateName + "-" + crateVersion + "___" + toString (mkRustcFeatureArgs crateFeatures) +
+          "___" + depsMetadata);
       in lib.substring 0 10 hashedMetadata;
 
     build = crate.build or "";
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/build-rust-crate/test/default.nix b/pkgs/build-support/rust/build-rust-crate/test/default.nix
index e97e243a7fc..112aa72fec7 100644
--- a/pkgs/build-support/rust/build-rust-crate/test/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/test/default.nix
@@ -344,6 +344,66 @@ let
         buildTests = true;
         expectedTestOutputs = [ "test baz_false ... ok" ];
       };
+      buildScriptFeatureEnv = {
+        crateName = "build-script-feature-env";
+        features = [ "some-feature" "crate/another_feature" ];
+        src = symlinkJoin {
+          name = "build-script-feature-env";
+          paths = [
+            (mkFile  "src/main.rs" ''
+              #[cfg(test)]
+              #[test]
+              fn feature_not_visible() {
+                assert!(std::env::var("CARGO_FEATURE_SOME_FEATURE").is_err());
+                assert!(option_env!("CARGO_FEATURE_SOME_FEATURE").is_none());
+              }
+              fn main() {}
+            '')
+            (mkFile  "build.rs" ''
+              fn main() {
+                assert!(std::env::var("CARGO_FEATURE_SOME_FEATURE").is_ok());
+                assert!(option_env!("CARGO_FEATURE_SOME_FEATURE").is_none());
+              }
+            '')
+          ];
+        };
+        buildTests = true;
+        expectedTestOutputs = [ "test feature_not_visible ... ok" ];
+      };
+      # Regression test for https://github.com/NixOS/nixpkgs/pull/88054
+      # Build script output should be rewritten as valid env vars.
+      buildScriptIncludeDirDeps = let
+        depCrate = mkCrate {
+          crateName = "bar";
+          src = symlinkJoin {
+            name = "build-script-and-include-dir-bar";
+            paths = [
+              (mkFile  "src/lib.rs" ''
+                fn main() { }
+              '')
+              (mkFile  "build.rs" ''
+                use std::path::PathBuf;
+                fn main() { println!("cargo:include-dir={}/src", std::env::current_dir().unwrap_or(PathBuf::from(".")).to_str().unwrap()); }
+              '')
+            ];
+          };
+        };
+      in {
+        crateName = "foo";
+        src = symlinkJoin {
+          name = "build-script-and-include-dir-foo";
+          paths = [
+            (mkFile  "src/main.rs" ''
+              fn main() { }
+            '')
+            (mkFile  "build.rs" ''
+              fn main() { assert!(std::env::var_os("DEP_BAR_INCLUDE_DIR").is_some()); }
+            '')
+          ];
+        };
+        buildDependencies = [ depCrate ];
+        dependencies = [ depCrate ];
+      };
       # Regression test for https://github.com/NixOS/nixpkgs/issues/74071
       # Whenevever a build.rs file is generating files those should not be overlayed onto the actual source dir
       buildRsOutDirOverlay = {
diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix
index a6b47930c27..c292b8ea4d4 100644
--- a/pkgs/build-support/rust/default.nix
+++ b/pkgs/build-support/rust/default.nix
@@ -28,6 +28,13 @@
 , meta ? {}
 , target ? null
 , cargoVendorDir ? null
+, checkType ? buildType
+
+# Needed to `pushd`/`popd` into a subdir of a tarball if this subdir
+# contains a Cargo.toml, but isn't part of a workspace (which is e.g. the
+# case for `rustfmt`/etc from the `rust-sources).
+# Otherwise, everything from the tarball would've been built/tested.
+, buildAndTestSubdir ? null
 , ... } @ args:
 
 assert cargoVendorDir == null -> cargoSha256 != "unset";
@@ -67,10 +74,12 @@ 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`.
-  diff = "${diffutils}/bin/diff";
+  # The `.nativeDrv` stanza works like nativeBuildInputs and ensures cross-compiling has the right version available.
+  diff = "${diffutils.nativeDrv or diffutils}/bin/diff";
 
 in
 
@@ -130,6 +139,7 @@ stdenv.mkDerivation (args // {
       # give a friendlier error msg.
       if ! [ -e $srcLockfile ]; then
         echo "ERROR: Missing Cargo.lock from src. Expected to find it at: $srcLockfile"
+        echo "Hint: You can use the cargoPatches attribute to add a Cargo.lock manually to the build."
         exit 1
       fi
 
@@ -161,6 +171,7 @@ stdenv.mkDerivation (args // {
   '';
 
   buildPhase = with builtins; args.buildPhase or ''
+    ${stdenv.lib.optionalString (buildAndTestSubdir != null) "pushd ${buildAndTestSubdir}"}
     runHook preBuild
 
     (
@@ -176,39 +187,51 @@ stdenv.mkDerivation (args // {
         --frozen ${concatStringsSep " " cargoBuildFlags}
     )
 
-    # rename the output dir to a architecture independent one
-    mapfile -t targets < <(find "$NIX_BUILD_TOP" -type d | grep '${releaseDir}$')
-    for target in "''${targets[@]}"; do
-      rm -rf "$target/../../${buildType}"
-      ln -srf "$target" "$target/../../"
-    done
-
     runHook postBuild
+
+    ${stdenv.lib.optionalString (buildAndTestSubdir != null) "popd"}
+
+    # This needs to be done after postBuild: packages like `cargo` do a pushd/popd in
+    # the pre/postBuild-hooks that need to be taken into account before gathering
+    # all binaries to install.
+    mkdir -p $tmpDir
+    cp -r $releaseDir/* $tmpDir/
+    bins=$(find $tmpDir \
+      -maxdepth 1 \
+      -type f \
+      -executable ! \( -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \))
   '';
 
-  checkPhase = args.checkPhase or ''
+  checkPhase = args.checkPhase or (let
+    argstr = "${stdenv.lib.optionalString (checkType == "release") "--release"} --target ${rustTarget} --frozen";
+  in ''
+    ${stdenv.lib.optionalString (buildAndTestSubdir != null) "pushd ${buildAndTestSubdir}"}
     runHook preCheck
-    echo "Running cargo cargo test -- ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}"
-    cargo test -- ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"}
+    echo "Running cargo test ${argstr} -- ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}"
+    cargo test ${argstr} -- ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"}
     runHook postCheck
-  '';
+    ${stdenv.lib.optionalString (buildAndTestSubdir != null) "popd"}
+  '');
 
   doCheck = args.doCheck or true;
 
   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 '${tmpDir}$')
+    for target in "''${targets[@]}"; do
+      rm -rf "$target/../../${buildType}"
+      ln -srf "$target" "$target/../../"
+    done
     mkdir -p $out/bin $out/lib
 
-    find $releaseDir \
-      -maxdepth 1 \
-      -type f \
-      -executable ! \( -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \) \
-      -print0 | xargs -r -0 cp -t $out/bin
-    find $releaseDir \
+    xargs -r cp -t $out/bin <<< $bins
+    find $tmpDir \
       -maxdepth 1 \
       -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \
       -print0 | xargs -r -0 cp -t $out/lib
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/role.bash b/pkgs/build-support/setup-hooks/role.bash
index 6f1c36f5c05..cf69e732e7c 100644
--- a/pkgs/build-support/setup-hooks/role.bash
+++ b/pkgs/build-support/setup-hooks/role.bash
@@ -3,21 +3,17 @@
 # derivation) in which the derivation is used.
 #
 # The role is intened to be use as part of other variables names like
-#  - $NIX_${role_pre}_SOMETHING
-#  - $NIX_SOMETHING_${role_post}
+#  - $NIX_SOMETHING${role_post}
 
 function getRole() {
     case $1 in
         -1)
-            role_pre='BUILD_'
             role_post='_FOR_BUILD'
             ;;
         0)
-            role_pre=''
             role_post=''
             ;;
         1)
-            role_pre='TARGET_'
             role_post='_FOR_TARGET'
             ;;
         *)
@@ -54,18 +50,18 @@ function getTargetRoleEnvHook() {
 }
 
 # This variant is inteneded specifically for code-prodocing tool wrapper scripts
-# `NIX_@wrapperName@_@infixSalt@_TARGET_*` tracks this (needs to be an exported
+# `NIX_@wrapperName@_TARGET_*_@suffixSalt@` tracks this (needs to be an exported
 # env var so can't use fancier data structures).
 function getTargetRoleWrapper() {
     case $targetOffset in
         -1)
-            export NIX_@wrapperName@_@infixSalt@_TARGET_BUILD=1
+            export NIX_@wrapperName@_TARGET_BUILD_@suffixSalt@=1
             ;;
         0)
-            export NIX_@wrapperName@_@infixSalt@_TARGET_HOST=1
+            export NIX_@wrapperName@_TARGET_HOST_@suffixSalt@=1
             ;;
         1)
-            export NIX_@wrapperName@_@infixSalt@_TARGET_TARGET=1
+            export NIX_@wrapperName@_TARGET_TARGET_@suffixSalt@=1
             ;;
         *)
             echo "@name@: used as improper sort of dependency" >2
diff --git a/pkgs/build-support/setup-hooks/validate-pkg-config.sh b/pkgs/build-support/setup-hooks/validate-pkg-config.sh
new file mode 100644
index 00000000000..54fc9cc122c
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/validate-pkg-config.sh
@@ -0,0 +1,19 @@
+# This setup hook validates each pkgconfig file in each output.
+
+fixupOutputHooks+=(_validatePkgConfig)
+
+_validatePkgConfig() {
+    for pc in $(find "$prefix" -name '*.pc'); do
+        local bail=0
+
+        # Do not fail immediately. It's nice to see all errors when
+        # there are multiple pkgconfig files.
+        if ! pkg-config --validate "$pc"; then
+            bail=1
+        fi
+    done
+
+    if [ $bail -eq 1 ]; then
+        exit 1
+    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/skaware/clean-packaging.nix b/pkgs/build-support/skaware/clean-packaging.nix
index 16bae04b21e..762fe25c0ac 100644
--- a/pkgs/build-support/skaware/clean-packaging.nix
+++ b/pkgs/build-support/skaware/clean-packaging.nix
@@ -26,11 +26,11 @@ let
     writeScript "common-file-actions.sh" ''
       #!${stdenv.shell}
       set -e
-      DOCDIR="$1"
+      DOCDIR="''${1?commonFileActions: DOCDIR as argv[1] required}"
       shopt -s globstar extglob nullglob
-      ${rmNoise noiseFiles}
       mkdir -p "$DOCDIR"
       ${mvDoc docFiles}
+      ${rmNoise noiseFiles}
     '';
 
   # Shell script to check whether the build directory is empty.
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/vm/default.nix b/pkgs/build-support/vm/default.nix
index f86e3371384..909cdc6da04 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -115,7 +115,7 @@ rec {
 
     echo "mounting host's temporary directory..."
     mkdir -p /fs/tmp/xchg
-    mount -t 9p xchg /fs/tmp/xchg -o trans=virtio,version=9p2000.L,cache=loose
+    mount -t 9p xchg /fs/tmp/xchg -o trans=virtio,version=9p2000.L
 
     mkdir -p /fs/proc
     mount -t proc none /fs/proc
diff --git a/pkgs/build-support/vm/windows/controller/default.nix b/pkgs/build-support/vm/windows/controller/default.nix
index 08b93aaf117..9d13983a283 100644
--- a/pkgs/build-support/vm/windows/controller/default.nix
+++ b/pkgs/build-support/vm/windows/controller/default.nix
@@ -53,7 +53,7 @@ let
       store /fs/nix/store
 
     mount -t 9p \
-      -o trans=virtio,version=9p2000.L,cache=loose \
+      -o trans=virtio,version=9p2000.L \
       xchg /fs/xchg
 
     echo root:x:0:0::/root:/bin/false > /fs/etc/passwd
diff --git a/pkgs/build-support/wrapper-common/utils.bash b/pkgs/build-support/wrapper-common/utils.bash
index 4fd57162072..8c4680a8e44 100644
--- a/pkgs/build-support/wrapper-common/utils.bash
+++ b/pkgs/build-support/wrapper-common/utils.bash
@@ -1,29 +1,29 @@
-# Accumulate infixes for taking in the right input parameters with the `mangle*`
+# Accumulate suffixes for taking in the right input parameters with the `mangle*`
 # functions below. See setup-hook for details.
 accumulateRoles() {
-    declare -ga role_infixes=()
-    if [ "${NIX_@wrapperName@_@infixSalt@_TARGET_BUILD:-}" ]; then
-        role_infixes+=(_BUILD_)
+    declare -ga role_suffixes=()
+    if [ "${NIX_@wrapperName@_TARGET_BUILD_@suffixSalt@:-}" ]; then
+        role_suffixes+=('_FOR_BUILD')
     fi
-    if [ "${NIX_@wrapperName@_@infixSalt@_TARGET_HOST:-}" ]; then
-        role_infixes+=(_)
+    if [ "${NIX_@wrapperName@_TARGET_HOST_@suffixSalt@:-}" ]; then
+        role_suffixes+=('')
     fi
-    if [ "${NIX_@wrapperName@_@infixSalt@_TARGET_TARGET:-}" ]; then
-        role_infixes+=(_TARGET_)
+    if [ "${NIX_@wrapperName@_TARGET_TARGET_@suffixSalt@:-}" ]; then
+        role_suffixes+=('_FOR_TARGET')
     fi
 }
 
 mangleVarList() {
     local var="$1"
     shift
-    local -a role_infixes=("$@")
+    local -a role_suffixes=("$@")
 
-    local outputVar="${var/+/_@infixSalt@_}"
+    local outputVar="${var}_@suffixSalt@"
     declare -gx ${outputVar}+=''
     # For each role we serve, we accumulate the input parameters into our own
     # cc-wrapper-derivation-specific environment variables.
-    for infix in "${role_infixes[@]}"; do
-        local inputVar="${var/+/${infix}}"
+    for suffix in "${role_suffixes[@]}"; do
+        local inputVar="${var}${suffix}"
         if [ -v "$inputVar" ]; then
             export ${outputVar}+="${!outputVar:+ }${!inputVar}"
         fi
@@ -33,12 +33,12 @@ mangleVarList() {
 mangleVarBool() {
     local var="$1"
     shift
-    local -a role_infixes=("$@")
+    local -a role_suffixes=("$@")
 
-    local outputVar="${var/+/_@infixSalt@_}"
+    local outputVar="${var}_@suffixSalt@"
     declare -gxi ${outputVar}+=0
-    for infix in "${role_infixes[@]}"; do
-        local inputVar="${var/+/${infix}}"
+    for suffix in "${role_suffixes[@]}"; do
+        local inputVar="${var}${suffix}"
         if [ -v "$inputVar" ]; then
             # "1" in the end makes `let` return success error code when
             # expression itself evaluates to zero.
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 a9a64fb4029..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.06";
+  version = "5.08";
 
   src = fetchurl {
     url = "mirror://kernel/linux/docs/man-pages/${pname}-${version}.tar.xz";
-    sha256 = "0l7ypgl36jswa077qvdh1rcsvnwr64vja6cc32bab86sm41akf3h";
+    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
new file mode 100644
index 00000000000..345fb99b7bb
--- /dev/null
+++ b/pkgs/data/documentation/scheme-manpages/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "scheme-manpages-unstable";
+  version = "2020-08-14";
+
+  src = fetchFromGitHub {
+    owner = "schemedoc";
+    repo = "manpages";
+    rev = "2e99a0aea9c0327e3c2dcfb9b7a2f8f528b4fe43";
+    sha256 = "0ykj4i8mx50mgyz9q63glfnc0mw1lf89hwsflpnbizjda5b4s0fp";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/share/man
+    cp -r man3/ man7/ $out/share/man/
+  '';
+
+  meta = with stdenv.lib; {
+    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/documentation/zeal/default.nix b/pkgs/data/documentation/zeal/default.nix
index 7bfe918030e..4551dc21179 100644
--- a/pkgs/data/documentation/zeal/default.nix
+++ b/pkgs/data/documentation/zeal/default.nix
@@ -1,40 +1,44 @@
 { stdenv, fetchFromGitHub, cmake, extra-cmake-modules, pkgconfig
-, qtbase, qtimageformats, qtwebkit, qtx11extras, mkDerivation
+, qtbase, qtimageformats, qtwebengine, qtx11extras, mkDerivation
 , libarchive, libXdmcp, libpthreadstubs, xcbutilkeysyms  }:
 
 mkDerivation rec {
   pname = "zeal";
-  version = "0.6.1";
+  version = "0.6.999";
 
   src = fetchFromGitHub {
-    owner  = "zealdocs";
-    repo   = "zeal";
-    rev    = "v${version}";
-    sha256 = "05qcjpibakv4ibhxgl5ajbkby3w7bkxsv3nfv2a0kppi1z0f8n8v";
+    owner = "zealdocs";
+    repo = "zeal";
+    rev = "1ce0e2e446232e7647c5588c1f603f1dd88e0f67";
+    sha256 = "0gj5qcm7ck8m5zfmiabay2f7wbxldmrkw8m3xi7v9i8y8hx0jkxr";
   };
 
-  # while ads can be disabled from the user settings, by default they are not so
-  # we patch it out completely instead
-  patches = [ ./remove_ads.patch ];
+  # we only need this if we are using a version that hasn't been released. We
+  # could also match on the "VERSION x.y.z" bit but then it would have to be
+  # updated based on whatever is the latest release, so instead just rewrite the
+  # line.
+  postPatch = ''
+    sed -i CMakeLists.txt \
+      -e 's@^project.*@project(Zeal VERSION ${version})@'
+  '';
 
   nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig ];
+
   buildInputs = [
-    qtbase qtimageformats qtwebkit qtx11extras
+    qtbase qtimageformats qtwebengine qtx11extras
     libarchive
     libXdmcp libpthreadstubs xcbutilkeysyms
   ];
 
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     description = "A simple offline API documentation browser";
     longDescription = ''
       Zeal is a simple offline API documentation browser inspired by Dash (macOS
       app), available for Linux and Windows.
     '';
-    homepage    = "https://zealdocs.org/";
-    license     = licenses.gpl3;
+    homepage = "https://zealdocs.org/";
+    license = licenses.gpl3;
     maintainers = with maintainers; [ skeidel peterhoeg ];
-    platforms   = platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/data/documentation/zeal/remove_ads.patch b/pkgs/data/documentation/zeal/remove_ads.patch
deleted file mode 100644
index be0cab305eb..00000000000
--- a/pkgs/data/documentation/zeal/remove_ads.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-commit 1b61397175b6e60f23224db463301c9057830859
-Author: Peter Hoeg <peter@hoeg.com>
-Date:   Mon Feb 19 07:38:03 2018 +0800
-
-    strip container with ads
-
-diff --git a/src/app/resources/browser/welcome.html b/src/app/resources/browser/welcome.html
-index bb3f511..67382b2 100644
---- a/src/app/resources/browser/welcome.html
-+++ b/src/app/resources/browser/welcome.html
-@@ -20,12 +20,6 @@
-               <span id="version" class="has-text-weight-light is-size-5"></span>
-             </p>
-             <p class="subtitle">Docs for everyone</p>
--            <div id="carboncontainer" style="margin-top: 75px;">
--              <div id="carbon" class="box">
--                <script async type="text/javascript" src="https://cdn.carbonads.com/carbon.js?zoneid=1673&serve=C6AILKT&placement=zealdocsforwindowsorg"
--                  onerror="document.getElementById('carboncontainer').style.display = 'none';" id="_carbonads_js"></script>
--              </div>
--            </div>
-           </div>
-           <div class="column">
-             <p class="subtitle is-5">Customize</p>
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/amiri/default.nix b/pkgs/data/fonts/amiri/default.nix
index 9ecde1939e8..9867b84757a 100644
--- a/pkgs/data/fonts/amiri/default.nix
+++ b/pkgs/data/fonts/amiri/default.nix
@@ -1,14 +1,14 @@
 { lib, fetchzip }:
 
 let
-  version = "0.112";
+  version = "0.113";
 
 in fetchzip rec {
   name = "Amiri-${version}";
 
   url = "https://github.com/alif-type/amiri/releases/download/${version}/${name}.zip";
 
-  sha256 = "13j8kglgca296czxjz1xvrbz6yx05s2xassiliyszndbkrhn6bkl";
+  sha256 = "0v5xm4spyww8wy6j9kpb01ixrakw7wp6jng4xnh220iy6yqcxm7v";
 
   postFetch = ''
     unzip $downloadedFile
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/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/cozette/default.nix b/pkgs/data/fonts/cozette/default.nix
index a5d9f905562..a5bc752c4ca 100644
--- a/pkgs/data/fonts/cozette/default.nix
+++ b/pkgs/data/fonts/cozette/default.nix
@@ -1,55 +1,28 @@
-{ stdenv, fetchurl, mkfontscale }:
+{ lib, fetchzip }:
 
 let
-  version = "1.5.1";
-  releaseUrl =
-    "https://github.com/slavfox/Cozette/releases/download/v.${version}";
-in stdenv.mkDerivation rec {
-  pname = "Cozette";
-  inherit version;
+  version = "1.8.3";
+in
+fetchzip rec {
+  name = "Cozette-${version}";
 
-  srcs = map fetchurl [
-    {
-      url = "${releaseUrl}/cozette.otb";
-      sha256 = "05k45n7jar11gnng2awpmc7zk9jdlzd6wz87xx49cp75jm4z9xm8";
-    }
-    {
-      url = "${releaseUrl}/CozetteVector.otf";
-      sha256 = "1sqhnjpizn1wi26lc7z2zml7yr7zkcpa72mh1drvd74rlcs1ip30";
-    }
-    {
-      url = "${releaseUrl}/CozetteVector.ttf";
-      sha256 = "1q4ml8shv9lmyc6bwhffwvbvl92s73j7xkb0rkqvci4f0zbz7mcy";
-    }
-  ];
+  url = "https://github.com/slavfox/Cozette/releases/download/v.${version}/CozetteFonts.zip";
 
-  nativeBuildInputs = [ mkfontscale ];
+  sha256 = "1nc4zk6n7cbv9vwlhpm3ady5lc4d4ic1klyywwfg27w8j0jv57hx";
 
-  sourceRoot = "./";
-
-  unpackCmd = ''
-    otName=$(stripHash "$curSrc")
-    cp $curSrc ./$otName
-  '';
-
-  installPhase = ''
-
-    install -D -m 644 *.otf -t "$out/share/fonts/opentype"
-    install -D -m 644 *.ttf -t "$out/share/fonts/truetype"
-    install -D -m 644 *.otb -t "$out/share/fonts/misc"
-
-    mkfontdir "$out/share/fonts/misc"
-    mkfontscale "$out/share/fonts/truetype"
-    mkfontscale "$out/share/fonts/opentype"
+  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 \*.bdf -d $out/share/fonts/misc
+    unzip -j $downloadedFile \*.otb -d $out/share/fonts/misc
   '';
 
-  outputs = [ "out" ];
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A bitmap programming font optimized for coziness.";
     homepage = "https://github.com/slavfox/cozette";
     license = licenses.mit;
     platforms = platforms.all;
-    maintainers = with maintainers; [ brettlyons ];
+    maintainers = with maintainers; [ brettlyons marsam ];
   };
 }
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/fira-code/default.nix b/pkgs/data/fonts/fira-code/default.nix
index 37169d1548e..4f0fb1e81c1 100644
--- a/pkgs/data/fonts/fira-code/default.nix
+++ b/pkgs/data/fonts/fira-code/default.nix
@@ -1,19 +1,18 @@
 { stdenv, fetchzip }:
 
 let
-  version = "3.1";
+  version = "5.2";
 in fetchzip {
   name = "fira-code-${version}";
 
-  url = "https://github.com/tonsky/FiraCode/releases/download/${version}/FiraCode_${version}.zip";
+  url = "https://github.com/tonsky/FiraCode/releases/download/${version}/Fira_Code_v${version}.zip";
 
   postFetch = ''
     mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
     unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
   '';
 
-  sha256 = "1rk5hiix282b1gsxq9kqma2q9fnydj0xl9vbrd88rf7ywvn75817";
+  sha256 = "16v62wj872ba4w7qxn4l6zjgqh7lrpwh1xax1bp1x9dpz08mnq06";
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/tonsky/FiraCode";
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 3e507047166..4e1001adb69 100644
--- a/pkgs/data/fonts/ibm-plex/default.nix
+++ b/pkgs/data/fonts/ibm-plex/default.nix
@@ -1,15 +1,19 @@
 { lib, fetchzip }:
 
 let
-  version = "4.0.2";
+  version = "5.1.0";
+
 in fetchzip {
   name = "ibm-plex-${version}";
+
   url = "https://github.com/IBM/plex/releases/download/v${version}/OpenType.zip";
+
   postFetch = ''
     mkdir -p $out/share/fonts
     unzip -j $downloadedFile "OpenType/*/*.otf" -d $out/share/fonts/opentype
   '';
-  sha256 = "1v00y1l9sjcv9w8d3115w1vv1b7bgwbrv4d3zv68galk8wz8px1x";
+
+  sha256 = "1lcbj6zkpnsq38s2xkx3z4d7bd43k630lmzmgdcv1w05gjij0pw5";
 
   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..ee1bd74faf5 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.1";
 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 = "0qqzgfplib6jdn1fra7fwx25jkzlw21brj45q8gn3gxvndvqabvd";
 
   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..f81c0ed90f9 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.001";
 in
-fetchzip rec {
+fetchzip {
   name = "JetBrainsMono-${version}";
 
-  url = "https://github.com/JetBrains/JetBrainsMono/releases/download/v${version}/JetBrainsMono-${version}.zip";
+  url = "https://github.com/JetBrains/JetBrainsMono/releases/download/v${version}/JetBrains.Mono.${version}.zip";
 
-  sha256 = "1198k5zw91g85h6n7rg3y7wcj1nrbby9zlr6zwlmiq0nb37n0d3g";
+  sha256 = "06rh8dssq6qzgb9rri3an2ka24j47c0i8yhgq81yyg471spc39h1";
 
   postFetch = ''
     mkdir -p $out/share/fonts
diff --git a/pkgs/data/fonts/joypixels/default.nix b/pkgs/data/fonts/joypixels/default.nix
index fb9b76b0efc..1b107f9cb82 100644
--- a/pkgs/data/fonts/joypixels/default.nix
+++ b/pkgs/data/fonts/joypixels/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "joypixels";
-  version = "5.5.0";
+  version = "6.0.0";
 
   src = fetchurl {
     url = "https://cdn.joypixels.com/arch-linux/font/${version}/joypixels-android.ttf";
-    sha256 = "S0Y/yAps11W69poz2c3xJSX9Augexm82ZzbbCSgoeXA=";
+    sha256 = "1vxqsqs93g4jyp01r47lrpcm0fmib2n1vysx32ksmfxmprimb75s";
   };
 
   dontUnpack = true;
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/line-awesome/default.nix b/pkgs/data/fonts/line-awesome/default.nix
index f100f81b3d7..d9f7818dd2f 100644
--- a/pkgs/data/fonts/line-awesome/default.nix
+++ b/pkgs/data/fonts/line-awesome/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   src = fetchurl {
     url =
       "https://maxst.icons8.com/vue-static/landings/line-awesome/line-awesome/${version}/line-awesome-${version}.zip";
-    hash = "sha256:07qkz8s1wjh5xwqlq1b4lpihr1zah3kh6bnqvfwvncld8l9wjqfk";
+    sha256 = "07qkz8s1wjh5xwqlq1b4lpihr1zah3kh6bnqvfwvncld8l9wjqfk";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/data/fonts/marathi-cursive/default.nix b/pkgs/data/fonts/marathi-cursive/default.nix
index 724d975e53a..8c228fd91a7 100644
--- a/pkgs/data/fonts/marathi-cursive/default.nix
+++ b/pkgs/data/fonts/marathi-cursive/default.nix
@@ -1,21 +1,19 @@
-{ lib, fetchzip, p7zip }:
+{ lib, fetchzip }:
 
 let
-  version = "1.2";
+  version = "2.0";
 in fetchzip rec {
   name = "marathi-cursive-${version}";
 
-  url = "https://github.com/MihailJP/MarathiCursive/releases/download/${version}/MarathiCursive-${version}.7z";
+  url = "https://github.com/MihailJP/MarathiCursive/releases/download/v${version}/MarathiCursive-${version}.tar.xz";
 
   postFetch = ''
-    ${p7zip}/bin/7z x $downloadedFile
-    cd MarathiCursive
-
+    tar -xJf $downloadedFile --strip-components=1
     install -m444 -Dt $out/share/fonts/marathi-cursive *.otf *.ttf
-    install -m444 -Dt $out/share/doc/${name}           README *.txt
+    install -m444 -Dt $out/share/doc/${name} README *.txt
   '';
 
-  sha256 = "0wq4w79x8r5w6ikm9amcmapf0jcdgifs9zf1pbnw3fk4ncz5s551";
+  sha256 = "17pj60ajnjghxhxka8a046mz6vfwr79wnby7xd6pg5hgncin2hgg";
 
   meta = with lib; {
     homepage = "https://github.com/MihailJP/MarathiCursive";
diff --git a/pkgs/data/fonts/material-design-icons/default.nix b/pkgs/data/fonts/material-design-icons/default.nix
index 72dc5fe6313..1bf5c6aa482 100644
--- a/pkgs/data/fonts/material-design-icons/default.nix
+++ b/pkgs/data/fonts/material-design-icons/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub }:
 
 let
-  version = "4.7.95";
+  version = "5.3.45";
 in fetchFromGitHub {
   name = "material-design-icons-${version}";
   owner  = "Templarian";
@@ -16,10 +16,10 @@ in fetchFromGitHub {
     cp fonts/*.woff $out/share/fonts/woff/
     cp fonts/*.woff2 $out/share/fonts/woff2/
   '';
-  sha256 = "0da92kz8ryy60kb5xm52md13w28ih4sfap8g3v9b4ziyww66zjhz";
+  sha256 = "1nwha6dbj97ybiwlf69la57l3ibmwgnzs0nr104bfqnqxjs471sx";
 
   meta = with lib; {
-    description = "3200+ Material Design Icons from the Community";
+    description = "4600+ Material Design Icons from the Community";
     longDescription = ''
       Material Design Icons' growing icon collection allows designers and
       developers targeting various platforms to download icons in the format,
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 f4a6dba3029..e077fc30344 100644
--- a/pkgs/data/fonts/noto-fonts/default.nix
+++ b/pkgs/data/fonts/noto-fonts/default.nix
@@ -2,6 +2,7 @@
 , stdenvNoCC
 , lib
 , fetchFromGitHub
+, fetchurl
 , fetchzip
 , optipng
 , cairo
@@ -146,4 +147,28 @@ in
       maintainers = with maintainers; [ mathnerd314 ];
     };
   };
+
+  noto-fonts-emoji-blob-bin = stdenv.mkDerivation rec {
+    pname = "noto-fonts-emoji-blob-bin";
+    version = "2019-06-14-Emoji-12";
+
+    src = fetchurl {
+      url = "https://github.com/C1710/blobmoji/releases/download/v${version}/Blobmoji.ttf";
+      sha256 = "0snvymglmvpnfgsriw2cnnqm0f4llav0jvzir6mpd17mqqhhabbh";
+    };
+
+    dontUnpack = true;
+
+    installPhase = ''
+      install -D $src $out/share/fonts/blobmoji/Blobmoji.ttf
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Noto Emoji with extended Blob support";
+      homepage = https://github.com/C1710/blobmoji;
+      license = with licenses; [ ofl asl20 ];
+      platforms = platforms.all;
+      maintainers = with maintainers; [ rileyinman ];
+    };
+  };
 }
diff --git a/pkgs/data/fonts/oldsindhi/default.nix b/pkgs/data/fonts/oldsindhi/default.nix
index fbca0283d23..e0e783fd80a 100644
--- a/pkgs/data/fonts/oldsindhi/default.nix
+++ b/pkgs/data/fonts/oldsindhi/default.nix
@@ -1,26 +1,25 @@
-{ lib, fetchzip, p7zip }:
+{ lib, fetchzip }:
 
 let
-  version = "0.1";
+  version = "1.0";
 in fetchzip rec {
   name = "oldsindhi-${version}";
 
-  url = "https://github.com/MihailJP/oldsindhi/releases/download/0.1/OldSindhi-0.1.7z";
+  url = "https://github.com/MihailJP/oldsindhi/releases/download/v${version}/OldSindhi-${version}.tar.xz";
 
   postFetch = ''
-    ${p7zip}/bin/7z x $downloadedFile
-
-    install -m444 -Dt $out/share/fonts/truetype OldSindhi/*.ttf
-    install -m444 -Dt $out/share/doc/${name}    OldSindhi/README OldSindhi/*.txt
+    tar -xJf $downloadedFile --strip-components=1
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+    install -m444 -Dt $out/share/doc/${name} README *.txt
   '';
 
-  sha256 = "0d4l9cg2vmh2pvnqsla8mgcwvc7wjxzcabhlli6633h3ifj2yp7b";
+  sha256 = "03c483vbrwz2fpdfbys42fmik9788zxfmjmc4fgq4s2d0mraa0j1";
 
   meta = with lib; {
     homepage = "https://github.com/MihailJP/oldsindhi";
     description = "Free Sindhi Khudabadi font";
     maintainers = with maintainers; [ mathnerd314 ];
-    license = licenses.bsd2;
+    license = with licenses; [mit ofl];
     platforms = platforms.all;
   };
 }
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 210858c5aed..7f3b9562e89 100644
--- a/pkgs/data/fonts/recursive/default.nix
+++ b/pkgs/data/fonts/recursive/default.nix
@@ -1,20 +1,21 @@
 { lib, fetchzip }:
 
 let
-  version = "1.051";
+  version = "1.057";
 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}/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 = "1cqlljbzvrxamswcqx8jbr61q4kji7yil5ic1mh60x4yfsk9x5wn";
+  sha256 = "0qsqldnhgl93h1izminjajjymvyxsw91ngdbxlhgbqvadg77325y";
 
   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/rictydiminished-with-firacode/default.nix b/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
index ccfc72dc180..0f90c13d11e 100644
--- a/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
+++ b/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   src = fetchgit {
     url = "https://github.com/hakatashi/RictyDiminished-with-FiraCode.git";
     rev = version;
-    sha256 = "sha256-twh3yLAM4MUjWzSDNmo8gNIRf01hieXeOS334sNdFk4=";
+    sha256 = "0khnbp1y5xrd77gfb2b19mzi3ll07im3d0rlbciwbq0cn347f25p";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/data/fonts/sarasa-gothic/default.nix b/pkgs/data/fonts/sarasa-gothic/default.nix
index 1be4835e20c..9fce696b6e8 100644
--- a/pkgs/data/fonts/sarasa-gothic/default.nix
+++ b/pkgs/data/fonts/sarasa-gothic/default.nix
@@ -1,18 +1,19 @@
-{ lib, fetchurl, p7zip }:
+{ lib, fetchurl, libarchive }:
 
 let
-  version = "0.8.2";
+  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 = "17xkpklb6spi10132lq658fwvrms3fs7ksb9j098z9vaqad1k51q";
+  sha256 = "0vcp8583by7pfqinq8p2jx2bn4dqq816x4bxgv05k0kb9ziwj7aj";
 
   recursiveHash = true;
   downloadToTemp = true;
 
   postFetch = ''
-    ${p7zip}/bin/7z x $downloadedFile -o$out/share/fonts
+    mkdir -p $out/share/fonts
+    ${libarchive}/bin/bsdtar -xf $downloadedFile -C $out/share/fonts
   '';
 
   meta = with lib; {
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 6994b7d4a72..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.7.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 = "17dn6spfr8wv63sy009djb4q12q635m13wsyirzn074qabhr9ggg";
+  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
new file mode 100644
index 00000000000..026ec63d670
--- /dev/null
+++ b/pkgs/data/fonts/tamzen/default.nix
@@ -0,0 +1,37 @@
+{ fetchFromGitHub, mkfontscale, stdenv }:
+
+stdenv.mkDerivation rec {
+  pname = "tamzen-font";
+  version = "1.11.5";
+
+  src = fetchFromGitHub {
+    owner = "sunaku";
+    repo = "tamzen-font";
+    rev = "Tamzen-${version}";
+    sha256 = "00x5fipzqimglvshhqwycdhaqslbvn3rl06jnswhyxfvz16ymj7s";
+  };
+
+  nativeBuildInputs = [ mkfontscale ];
+
+  installPhase = ''
+    install -m 644 -D otb/*.otb pcf/*.pcf -t "$out/share/fonts/misc"
+    install -m 644 -D psf/*.psf -t "$out/share/consolefonts"
+    mkfontdir "$out/share/fonts/misc"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Bitmapped programming font based on Tamsyn";
+    longDescription = ''
+    Tamzen is a monospace bitmap font. It is programatically forked
+    from Tamsyn version 1.11, which backports glyphs from older
+    versions while deleting deliberately empty glyphs to allow
+    secondary/fallback fonts to provide real glyphs at those codepoints.
+    Tamzen also has fonts that additionally provide the Powerline
+    symbols.
+    '';
+    homepage = "https://github.com/sunaku/tamzen-font";
+    license = licenses.free;
+    maintainers = with maintainers; [ wishfort36 ];
+  };
+}
+
diff --git a/pkgs/data/fonts/terminus-font/default.nix b/pkgs/data/fonts/terminus-font/default.nix
index 4c7f5d85e86..bbde1dd252c 100644
--- a/pkgs/data/fonts/terminus-font/default.nix
+++ b/pkgs/data/fonts/terminus-font/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     substituteInPlace Makefile --replace 'fc-cache' '#fc-cache'
+    substituteInPlace Makefile --replace 'gzip'     'gzip -n'
   '';
 
   postBuild = ''
@@ -34,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 0e835cbedea..ac3930853cf 100644
--- a/pkgs/data/fonts/twitter-color-emoji/default.nix
+++ b/pkgs/data/fonts/twitter-color-emoji/default.nix
@@ -22,7 +22,7 @@ let
     owner = "twitter";
     repo = "twemoji";
     rev = "v${version}";
-    hash = "sha256-qb3bLiUgtA8QQ13u928kvM+3qwmQpyjUk0EPKja1kSk=";
+    sha256 = "0acinlv2l3s1jga2i9wh16mvgkxw4ipzgvjx8c80zd104lpdpgd9";
   };
 
 in
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
     # ImageMagick -> GraphicsMagick
     (fetchpatch {
       url = "https://src.fedoraproject.org/rpms/twitter-twemoji-fonts/raw/07778605d50696f6aa929020e82611a01d254c90/f/noto-emoji-use-gm.patch";
-      sha256 = "sha256-kyJwT1SKS1vnXxvPTiIMK6TRHMp1ZOSlb6rodL4Jbxs=";
+      sha256 = "06vg16z79s5adyjy8r3mr8fd391b1hi4xkqvbzkmnjwaai7p08lk";
     })
   ];
 
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/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 ae8c127381b..01443578057 100644
--- a/pkgs/data/icons/iconpack-obsidian/default.nix
+++ b/pkgs/data/icons/iconpack-obsidian/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "iconpack-obsidian";
-  version = "4.11";
+  version = "4.12";
 
   src = fetchFromGitHub {
     owner = "madmaxms";
     repo = pname;
     rev = "v${version}";
-    sha256 = "18sqnrvh4bbmg3zzm78n4s2hvv8a77ilg7xa3hl94mp9qla6gasn";
+    sha256 = "0139ps707mh1zkypaxsqzy58mmsm5whdxxx2nbsmqfswb7qisz2b";
   };
 
   nativeBuildInputs = [ gtk3 ];
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/mint-x-icons/default.nix b/pkgs/data/icons/mint-x-icons/default.nix
new file mode 100644
index 00000000000..213ba877dc6
--- /dev/null
+++ b/pkgs/data/icons/mint-x-icons/default.nix
@@ -0,0 +1,52 @@
+{ stdenv
+, fetchurl
+, gnome-icon-theme
+, gtk3
+, hicolor-icon-theme
+, humanity-icon-theme
+, ubuntu-themes
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mint-x-icons";
+  version = "1.5.5";
+
+  src = fetchurl {
+    url = "http://packages.linuxmint.com/pool/main/m/${pname}/${pname}_${version}.tar.xz";
+    sha256 = "0nq3si06m98b71f33wism0bvlvib57rm96msf0wx852ginw3a5yd";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    gnome-icon-theme
+    hicolor-icon-theme
+    humanity-icon-theme
+    ubuntu-themes # provides the  parent icon theme: ubuntu-mono-dark
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons
+    cp -vai usr/share/icons/* $out/share/icons
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Mint/metal theme based on mintified versions of Clearlooks Revamp, Elementary and Faenza";
+    homepage = "https://github.com/linuxmint/mint-x-icons";
+    license = licenses.gpl3Plus;
+    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/numix-icon-theme/default.nix b/pkgs/data/icons/numix-icon-theme/default.nix
index 56bb2f3808f..30e212629e8 100644
--- a/pkgs/data/icons/numix-icon-theme/default.nix
+++ b/pkgs/data/icons/numix-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "numix-icon-theme";
-  version = "20.03.20";
+  version = "20.06.07";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "092f8k38xf9yz898nrangm0ia211d41z8kx0v6njfqfgpiad1s7q";
+    sha256 = "1yp9parc8ihmai8pswf4qzrqd88qpls87ipq8ylx38yqns7wsn4h";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/pkgs/data/icons/papirus-icon-theme/default.nix b/pkgs/data/icons/papirus-icon-theme/default.nix
index a39a8720635..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 = "20200430";
+  version = "20200801";
 
   src = fetchFromGitHub {
     owner = "PapirusDevelopmentTeam";
     repo = pname;
     rev = version;
-    sha256 = "1dgxf3fi4x5iy504xncj1jba8cd51axkn2j1cfb220rpc6mzv25l";
+    sha256 = "0w9ks8izxv7mkh82fnclfcdf6mif991dsbbnxsqmcbvljrmjval2";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/icons/qogir-icon-theme/default.nix b/pkgs/data/icons/qogir-icon-theme/default.nix
index fa52ad176d9..2a9a895b6ca 100644
--- a/pkgs/data/icons/qogir-icon-theme/default.nix
+++ b/pkgs/data/icons/qogir-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qogir-icon-theme";
-  version = "2020-02-21";
+  version = "2020-06-22";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "0m7f26dzzz5gkxi9dbbc96pl0xcvayr1ibxbjkrlsjcdvfg7p3rr";
+    sha256 = "0s5fhwfhn4qgk198jw736byxdrfm42l5m681pllbhg02j8ld4iik";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/pkgs/data/misc/cacert/default.nix b/pkgs/data/misc/cacert/default.nix
index 27aa60ac09f..f72431c5a27 100644
--- a/pkgs/data/misc/cacert/default.nix
+++ b/pkgs/data/misc/cacert/default.nix
@@ -65,5 +65,6 @@ stdenv.mkDerivation {
     description = "A bundle of X.509 certificates of public Certificate Authorities (CA)";
     platforms = platforms.all;
     maintainers = with maintainers; [ fpletz ];
+    license = licenses.mpl20;
   };
 }
diff --git a/pkgs/data/misc/cldr-emoji-annotation/default.nix b/pkgs/data/misc/cldr-emoji-annotation/default.nix
index 289f6d66340..f2dc4213e00 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.120191002_0";
+  version = "37.0_13.0_0_1";
 
   src = fetchFromGitHub {
     owner = "fujiwarat";
     repo = "cldr-emoji-annotation";
     rev = version;
-    sha256 = "0nxigzs3mxjgi7c8mmdaxsy5sfl7ihsc2nysaj0db198b33w9clw";
+    sha256 = "19cqxyrap3p7djzzs99pndjbcvzmdv86n2m1sw2zqiwpirw7y1sy";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/misc/dns-root-data/default.nix b/pkgs/data/misc/dns-root-data/default.nix
index ee08c07f5a6..aad1fe61c4b 100644
--- a/pkgs/data/misc/dns-root-data/default.nix
+++ b/pkgs/data/misc/dns-root-data/default.nix
@@ -7,7 +7,7 @@ let
     # occasionally suffers from pointless hash changes,
     # and having stable sources for older versions has advantages, too.
     urls = map (prefix: prefix + "cc5e14a264912/etc/root.hints") [
-      "https://gitlab.labs.nic.cz/knot/knot-resolver/raw/"
+      "https://gitlab.nic.cz/knot/knot-resolver/raw/"
       "https://raw.githubusercontent.com/CZ-NIC/knot-resolver/"
     ];
     sha256 = "0vdrff4l8s8grif52dnh091s8qydhh88k25zqd9rj66sf1qwcwxl";
diff --git a/pkgs/data/misc/hackage/default.nix b/pkgs/data/misc/hackage/default.nix
index e937f3a0f70..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/a734b1438c8379ed3945412538ff4ec49823564c.tar.gz";
-  sha256 = "0y1y818n10fh0qq7cg67p9l293js78fyahk5f6s9w3c21xn9wn8r";
+  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 a6a368e26e0..36242db4621 100644
--- a/pkgs/data/misc/nixos-artwork/wallpapers.nix
+++ b/pkgs/data/misc/nixos-artwork/wallpapers.nix
@@ -3,12 +3,18 @@
 let
   mkNixBackground = { name, src, description }:
 
-    stdenv.mkDerivation {
+  let
+    pkg = stdenv.mkDerivation {
       inherit name src;
 
       dontUnpack = true;
 
       installPhase = ''
+        # GNOME
+        mkdir -p $out/share/backgrounds/nixos
+        ln -s $src $out/share/backgrounds/nixos/${src.name}
+
+        # TODO: is this path still needed?
         mkdir -p $out/share/artwork/gnome
         ln -s $src $out/share/artwork/gnome/${src.name}
 
@@ -22,6 +28,11 @@ X-KDE-PluginInfo-Name=${name}
 _EOF
       '';
 
+      passthru = {
+        gnomeFilePath = "${pkg}/share/backgrounds/nixos/${src.name}";
+        kdeFilePath = "${pkg}/share/wallpapers/${name}/contents/images/${src.name}";
+      };
+
       meta = with stdenv.lib; {
         inherit description;
         homepage = "https://github.com/NixOS/nixos-artwork";
@@ -29,11 +40,21 @@ _EOF
         platforms = platforms.all;
       };
     };
+in pkg;
 
 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 {
@@ -45,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 7fb2aa2f811..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 = "20200214";
+  version = "20200804";
 
   src = fetchurl {
     url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz";
-    sha256 = "1fpdb8r8kzwp1k5dc9xyy9jr2jr3haq7n9b6spamm599zvzf8nb6";
+    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 1c68569a29a..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.8";
+  version = "3.10";
 
   src = fetchFromGitHub {
     owner = "spdx";
     repo = "license-list-data";
     rev = "v${version}";
-    sha256 = "1pfy0vbs7sk7m670mclmlkpcanizdmgsm1qgwzrw28w3hxfq7gdb";
+    sha256 = "1zza0jrs82112dcjqgkyck2b7hv4kg9s10pmlripi6c1rs37av14";
   };
 
   phases = [ "unpackPhase" "installPhase" ];
diff --git a/pkgs/data/misc/wireless-regdb/default.nix b/pkgs/data/misc/wireless-regdb/default.nix
index 45ff07b8efc..cc22606c0d6 100644
--- a/pkgs/data/misc/wireless-regdb/default.nix
+++ b/pkgs/data/misc/wireless-regdb/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wireless-regdb";
-  version = "2019.06.03";
+  version = "2020.04.29";
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/network/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1gslvh0aqdkv48jyr2ddq153mw28i7qz2ybrjj9qvkk3dgc7x4fd";
+    sha256 = "0yicda474ygahv8da18h1p4yf42s6x2f208mlwcw4xsrxld07zc9";
   };
 
   dontBuild = true;
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 9d5334bc79b..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.1";
+  version = "1.1.4";
 
   src = fetchFromGitHub {
     owner = "FedoraQt";
     repo = pname;
     rev = version;
-    sha256 = "1z1zl6b1190nffcdyjnwz2xy4s6cvgd98aas9z71l5iddwzy32fm";
+    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/amber/default.nix b/pkgs/data/themes/amber/default.nix
index a004c0fb3e9..589ce716f49 100644
--- a/pkgs/data/themes/amber/default.nix
+++ b/pkgs/data/themes/amber/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "amber-theme";
-  version = "3.34-2";
+  version = "3.36-1";
 
   src = fetchFromGitHub {
     owner = "lassekongo83";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0809l4r1qrzs9z04kcs1j962dpsvgpwpksnxs09md5722mynn65l";
+    sha256 = "0dn81ca3kyfz4ql15kl5108gw309cc0c1inmwlch1nq5dslmfjji";
   };
 
   nativeBuildInputs = [ meson ninja sassc ];
diff --git a/pkgs/data/themes/arc/default.nix b/pkgs/data/themes/arc/default.nix
index 14e1b248261..1e36eb2f99a 100644
--- a/pkgs/data/themes/arc/default.nix
+++ b/pkgs/data/themes/arc/default.nix
@@ -1,15 +1,24 @@
-{ stdenv, fetchFromGitHub, sassc, autoreconfHook, pkgconfig, gtk3, gnome3
-, gtk-engine-murrine, optipng, inkscape }:
+{ stdenv
+, fetchFromGitHub
+, sassc
+, autoreconfHook
+, pkgconfig
+, gtk3
+, gnome3
+, gtk-engine-murrine
+, optipng
+, inkscape_0
+}:
 
 stdenv.mkDerivation rec {
   pname = "arc-theme";
-  version = "20200416";
+  version = "20200819";
 
   src = fetchFromGitHub {
-    owner  = "jnsh";
-    repo   = pname;
-    rev    = "0779e1ca84141d8b443cf3e60b85307a145169b6";
-    sha256 = "1ddyi8g4rkd4mxadjvl66wc0lxpa4qdr98nbbhm5abaqfs2yldd4";
+    owner = "jnsh";
+    repo = pname;
+    rev = version;
+    sha256 = "1l5sc4r5jp3526r4p32fszny0cw6pkb45cp424hq0s0k344z9px6";
   };
 
   nativeBuildInputs = [
@@ -17,7 +26,7 @@ stdenv.mkDerivation rec {
     pkgconfig
     sassc
     optipng
-    inkscape
+    inkscape_0
     gtk3
   ];
 
@@ -34,7 +43,7 @@ stdenv.mkDerivation rec {
   '';
 
   configureFlags = [
-    "--disable-gnome-shell" # 3.36 not supported
+    "--with-gnome-shell=${gnome3.gnome-shell.version}"
     "--disable-cinnamon" # not equipped to test
     "--disable-unity"
   ];
@@ -45,9 +54,9 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Flat theme with transparent elements for GTK 3, GTK 2 and Gnome Shell";
-    homepage    = "https://github.com/jnsh/arc-theme";
-    license     = licenses.gpl3;
+    homepage = "https://github.com/jnsh/arc-theme";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ simonvandel romildo ];
-    platforms   = platforms.linux;
   };
 }
diff --git a/pkgs/data/themes/canta/default.nix b/pkgs/data/themes/canta/default.nix
index f1c8ad15559..8534fe7a506 100644
--- a/pkgs/data/themes/canta/default.nix
+++ b/pkgs/data/themes/canta/default.nix
@@ -1,26 +1,57 @@
-{ stdenv, fetchFromGitHub, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+{ stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, librsvg
+, gtk-engine-murrine
+, gtk3
+, gnome3
+, gnome-icon-theme
+, numix-icon-theme-circle
+, hicolor-icon-theme
+}:
 
 stdenv.mkDerivation rec {
   pname = "canta-theme";
-  version = "2020-01-31";
+  version = "2020-05-17";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "070lhbhh3n7nd6rkwm52v1x4v8spyb932w6qmgs2r19g0whyn55w";
+    sha256 = "0b9ffkw611xxb2wh43sjqla195jp0ygxph5a8dvifkxdw6nxc2y0";
   };
 
-  buildInputs = [ gdk-pixbuf librsvg ];
+  nativeBuildInputs = [
+    gtk3
+  ];
 
-  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+  buildInputs = [
+    gdk-pixbuf
+    librsvg
+  ];
+
+  propagatedBuildInputs = [
+    gnome3.adwaita-icon-theme
+    gnome-icon-theme
+    numix-icon-theme-circle
+    hicolor-icon-theme
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontDropIconThemeCache = true;
 
   installPhase = ''
     patchShebangs .
     mkdir -p $out/share/themes
-    name= ./install.sh -d $out/share/themes
-    install -D -t $out/share/backgrounds wallpaper/canta-wallpaper.svg
+    name= ./install.sh --dest $out/share/themes
     rm $out/share/themes/*/{AUTHORS,COPYING}
+    install -D -t $out/share/backgrounds wallpaper/canta-wallpaper.svg
+    mkdir -p $out/share/icons
+    cp -a icons/Canta $out/share/icons
+    gtk-update-icon-cache $out/share/icons/Canta
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/data/themes/cdetheme/default.nix b/pkgs/data/themes/cdetheme/default.nix
new file mode 100644
index 00000000000..ae738604751
--- /dev/null
+++ b/pkgs/data/themes/cdetheme/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, python2Packages }:
+
+stdenv.mkDerivation rec {
+  pname = "cdetheme";
+  version = "1.3";
+
+  src = fetchFromGitHub {
+    owner = "josvanr";
+    repo = "cde-motif-theme";
+    rev = version;
+    sha256 = "1v5c4db69cmzdci8xxlkx3s3cifg1h5160qq5siwfps0sj7pvggj";
+  };
+
+  dontBuild = true;
+
+  pythonPath = with python2Packages; [ pyqt4 pillow pyxdg pyyaml ];
+  nativeBuildInputs = with python2Packages; [ python wrapPython ];
+
+  installPhase = ''
+    mkdir -p $out/share/themes
+    cp -r cdetheme $out/share/themes
+    patchShebangs $out/share/themes/cdetheme/scripts/switchtheme
+    wrapPythonProgramsIn "$out/share/themes/cdetheme/scripts" "$out $pythonPath"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Gtk2 / Gtk3 theme mimicking CDE / Motif";
+    homepage = "https://www.gnome-look.org/p/1231025";
+    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/default.nix b/pkgs/data/themes/marwaita/default.nix
new file mode 100644
index 00000000000..6426f2a222f
--- /dev/null
+++ b/pkgs/data/themes/marwaita/default.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita";
+  version = "7.4.2";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "0kq7d8nqp8m0kbh2k9s0yybfdkyfkhbkjsv22lplnzh1p84pnlx7";
+  };
+
+  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
+    rm $out/share/themes/*/COPYING
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GTK theme supporting Budgie, Pantheon, Mate and Xfce4 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 e54d2354139..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-05-09";
+  version = "2020-07-27";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "0fp3ijynyvncy2byjjyba573p81x2pl2hdzv17mg40r8d5mjlkww";
+    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/plano/default.nix b/pkgs/data/themes/plano/default.nix
index ff1825f6341..7ac245b920f 100644
--- a/pkgs/data/themes/plano/default.nix
+++ b/pkgs/data/themes/plano/default.nix
@@ -1,27 +1,40 @@
-{ stdenv, fetchFromGitHub, gdk-pixbuf, gtk_engines, gtk-engine-murrine, librsvg }:
+{ stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, gdk-pixbuf
+, gtk_engines
+, gtk-engine-murrine
+, librsvg
+, sassc
+}:
 
 stdenv.mkDerivation rec {
   pname = "plano-theme";
-  version = "3.34-2";
+  version = "3.36-1";
 
   src = fetchFromGitHub {
     owner = "lassekongo83";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0spbyvzb47vyfhcn3gr0z1gdb5xrprynm6442y1z32znai2bgpnd";
+    sha256 = "1rngn5a7hwjqpznbg5kvgs237d2q1anywg37k1cz153ipa96snrv";
   };
 
-  buildInputs = [ gdk-pixbuf gtk_engines librsvg ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    sassc
+  ];
 
-  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
 
-  dontBuild = true;
-
-  installPhase = ''
-    install -dm 755 $out/share/themes/Plano
-    cp -a * $out/share/themes/Plano/
-    rm $out/share/themes/Plano/{LICENSE,README.md}
-  '';
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
 
   meta = with stdenv.lib; {
     description = "Flat theme for GNOME and Xfce";
diff --git a/pkgs/data/themes/plata/default.nix b/pkgs/data/themes/plata/default.nix
index 3ccd58ccdc0..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
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "plata-theme";
-  version = "0.9.7";
+  version = "0.9.8";
 
   src = fetchFromGitLab {
     owner = "tista500";
     repo = "plata-theme";
     rev = version;
-    sha256 = "0rm3xl7d3082kdkbds7ib8b85wpynvpaqravpyb4r5pys0y16fws";
+    sha256 = "1sqmydvx36f6r4snw22s2q4dvcyg30jd7kg7dibpzqn3njfkkfag";
   };
 
   preferLocalBuild = 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/snowblind/default.nix b/pkgs/data/themes/snowblind/default.nix
index db7b34d78e7..3517f4de263 100644
--- a/pkgs/data/themes/snowblind/default.nix
+++ b/pkgs/data/themes/snowblind/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "snowblind";
-  version = "2020-02-26";
+  version = "2020-06-07";
 
   src = fetchFromGitLab {
     domain = "www.opencode.net";
     owner = "ju1464";
     repo = pname;
-    rev = "94c35410be5cccc142c9cd6be9dff973ce0761c4";
-    sha256 = "1aqmpg1vyqwp6s6iikp5c5yfrvdkzq75jdr9mmv2ijcam1g0jhnv";
+    rev = "88d626b204e19d1730836289a1c0d83efcf247d0";
+    sha256 = "0admiqwdc0rvl8zxs0b2qyvsi8im7lrpsygm8ky8ymyf7alkw0gd";
   };
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
diff --git a/pkgs/data/themes/stilo/default.nix b/pkgs/data/themes/stilo/default.nix
index 798c1b74f95..ecef868f287 100644
--- a/pkgs/data/themes/stilo/default.nix
+++ b/pkgs/data/themes/stilo/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "stilo-themes";
-  version = "3.34-2";
+  version = "3.36-2";
 
   src = fetchFromGitHub {
     owner = "lassekongo83";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1i5cl61dk8sxa6h61ghynm4wp1qzp3c7kwf4ks0ddzzk9dbvdrhb";
+    sha256 = "0w4il6rk1f8yjmdxpnzq6zll2jjqbyp9dckxhzxgs4zh8fy9pzvh";
   };
 
   nativeBuildInputs = [ meson ninja sassc ];
diff --git a/pkgs/data/themes/ubuntu-themes/default.nix b/pkgs/data/themes/ubuntu-themes/default.nix
new file mode 100644
index 00000000000..6be3ce1d80b
--- /dev/null
+++ b/pkgs/data/themes/ubuntu-themes/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, fetchurl
+, fetchpatch
+, gnome-icon-theme
+, gnome3
+, gtk-engine-murrine
+, gtk3
+, hicolor-icon-theme
+, humanity-icon-theme
+, python2Packages
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ubuntu-themes";
+  version = "19.04";
+
+  src = fetchurl {
+    url = "https://launchpad.net/ubuntu/+archive/primary/+files/${pname}_${version}.orig.tar.gz";
+    sha256 = "1dy2dmiq2dj80nl2y4mf4ks0c7qmmnpk25wzv2rynwa3s2gkxgih";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+    python2Packages.python
+  ];
+
+  propagatedBuildInputs = [
+    gnome-icon-theme
+    gnome3.adwaita-icon-theme
+    humanity-icon-theme
+    hicolor-icon-theme
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontDropIconThemeCache = true;
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/themes
+    cp -a Ambiance $out/share/themes
+    cp -a Radiance $out/share/themes
+
+    mkdir -p $out/share/icons
+    cp -a LoginIcons        $out/share/icons
+    cp -a suru-icons        $out/share/icons
+    cp -a ubuntu-mobile     $out/share/icons
+    cp -a ubuntu-mono-dark  $out/share/icons
+    cp -a ubuntu-mono-light $out/share/icons
+
+    mv $out/share/icons/{suru-icons,suru}
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+
+    mkdir -p $out/share/icons/hicolor/48x48/apps
+    cp -a distributor-logo.png $out/share/icons/hicolor/48x48/apps
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Ubuntu monochrome and Suru icon themes, Ambiance and Radiance themes, and Ubuntu artwork";
+    homepage = "https://launchpad.net/ubuntu-themes";
+    license = with licenses; [ cc-by-sa-40 gpl3 ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/yaru/default.nix b/pkgs/data/themes/yaru/default.nix
index 665452a91d8..4e869469db6 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.6";
+  version = "20.10.1";
 
   src = fetchFromGitHub {
     owner = "ubuntu";
     repo = "yaru";
     rev = version;
-    sha256 = "04z16bcv1xdq4acnchd6cq9a8j46zl2bjp50cj90qmd6plpiiz50";
+    sha256 = "08zws1qwvfr126fgdkqxxmpsqgfk02s31n90555bd5d66cfgdh72";
   };
 
   nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
diff --git a/pkgs/data/themes/zuki/default.nix b/pkgs/data/themes/zuki/default.nix
index 45f3862ea63..628708b2387 100644
--- a/pkgs/data/themes/zuki/default.nix
+++ b/pkgs/data/themes/zuki/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zuki-themes";
-  version = "3.34-2";
+  version = "3.36-3";
 
   src = fetchFromGitHub {
     owner = "lassekongo83";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1nc0qh6qai6ybmz3a44q0rirri0gfg7lyqy4k4l1sci5q5ckl7x4";
+    sha256 = "19cxbrjkyk7ndpd5hnznpprlbp7dqqrs0qg0ry80rpfj0nw0gyhi";
   };
 
   nativeBuildInputs = [ meson ninja sassc ];
diff --git a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
index b2a3acd0722..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.4.2";
+  version = "4.6.2";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "1n1nkapcgxmbv0l8hrx5cf588pi4ifx12xbz46lq4p1ijrlfivba";
+    sha256 = "0zaghha62ibhg3rir6mrfy1z3v7p7v83b6glhmj9s51nxd86fyv6";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/dbus-factory/default.nix b/pkgs/desktops/deepin/dbus-factory/default.nix
deleted file mode 100644
index 06d921cce6d..00000000000
--- a/pkgs/desktops/deepin/dbus-factory/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, jq
-, libxml2
-, go-dbus-generator
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "dbus-factory";
-  version = "3.1.17";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1llq8wzgikgpzj7z36fyzk8kjych2h9nzi3x6zv53z0xc1xn4256";
-  };
-
-  nativeBuildInputs = [
-    jq
-    libxml2
-    go-dbus-generator
-  ];
-
-  makeFlags = [
-    "GOPATH=${placeholder "out"}/share/go"
-  ];
-
-  postPatch = ''
-    sed -i -e 's:/share/gocode:/share/go:' Makefile
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Generates static DBus bindings for Golang and QML at build-time";
-    homepage = "https://github.com/linuxdeepin/dbus-factory";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-api/default.nix b/pkgs/desktops/deepin/dde-api/default.nix
index 325f62f3781..a84fc9c2e02 100644
--- a/pkgs/desktops/deepin/dde-api/default.nix
+++ b/pkgs/desktops/deepin/dde-api/default.nix
@@ -6,7 +6,6 @@
 , bc
 , blur-effect
 , coreutils
-, dbus-factory
 , deepin
 , deepin-gettext-tools
 , fontconfig
@@ -21,7 +20,7 @@
 , librsvg
 , poppler
 , pulseaudio
-, rfkill
+, utillinux
 , xcur2png
 }:
 
@@ -43,7 +42,6 @@ buildGoPackage rec {
   nativeBuildInputs = [
     pkgconfig
     deepin-gettext-tools # build
-    dbus-factory         # build
     deepin.setupHook
 
     # TODO: using $PATH to find run time executable does not work with cross compiling
@@ -51,7 +49,7 @@ buildGoPackage rec {
     blur-effect # run (is it really needed?)
     coreutils   # run (is it really needed?)
     fontconfig  # run (is it really needed?)
-    rfkill      # run
+    utillinux   # run
     xcur2png    # run
     grub2       # run (is it really needed?)
   ];
@@ -125,5 +123,6 @@ buildGoPackage rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ romildo ];
+    broken = true; # 2020-08-22 https://hydra.nixos.org/build/125354866/nixlog/2
   };
 }
diff --git a/pkgs/desktops/deepin/dde-control-center/default.nix b/pkgs/desktops/deepin/dde-control-center/default.nix
index be2846fc87e..850e39b9367 100644
--- a/pkgs/desktops/deepin/dde-control-center/default.nix
+++ b/pkgs/desktops/deepin/dde-control-center/default.nix
@@ -121,7 +121,7 @@ mkDerivation rec {
     substituteInPlace dde-control-center.desktop \
       --replace "dbus-send" "${dbus}/bin/dbus-send"
     substituteInPlace com.deepin.controlcenter.addomain.policy \
-      --replace "/bin/systemctl" "${systemd}/bin/systemctl"
+      --replace "/bin/systemctl" "/run/current-system/sw/bin/systemctl"
   '';
 
   dontWrapQtApps = true;
diff --git a/pkgs/desktops/deepin/dde-daemon/default.nix b/pkgs/desktops/deepin/dde-daemon/default.nix
index b89b2c25446..c4edcef15af 100644
--- a/pkgs/desktops/deepin/dde-daemon/default.nix
+++ b/pkgs/desktops/deepin/dde-daemon/default.nix
@@ -3,7 +3,6 @@
 , fetchFromGitHub
 , fetchpatch
 , pkgconfig
-, dbus-factory
 , go-dbus-factory
 , go-gir-generator
 , go-lib
@@ -59,7 +58,6 @@ buildGoPackage rec {
 
   nativeBuildInputs = [
     pkgconfig
-    dbus-factory
     deepin-gettext-tools
     gettext
     networkmanager
diff --git a/pkgs/desktops/deepin/deepin-icon-theme/default.nix b/pkgs/desktops/deepin/deepin-icon-theme/default.nix
index 464d6f19ced..b56b219faff 100644
--- a/pkgs/desktops/deepin/deepin-icon-theme/default.nix
+++ b/pkgs/desktops/deepin/deepin-icon-theme/default.nix
@@ -3,19 +3,19 @@
 , gtk3
 , xcursorgen
 , papirus-icon-theme
-, deepin
 , hicolor-icon-theme
+, deepin
 }:
 
 stdenv.mkDerivation rec {
   pname = "deepin-icon-theme";
-  version = "15.12.71";
+  version = "2020.05.21";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "12rzzjp906np95ckbxrd4mb345lm198wz69kxy48f8q1zg78q8iw";
+    sha256 = "0b1s6kf0q804zbbghly981wzacy1spi8168shf3x8w95rqj6463p";
   };
 
   nativeBuildInputs = [
@@ -30,22 +30,29 @@ stdenv.mkDerivation rec {
 
   dontDropIconThemeCache = true;
 
+  buildTargets = "all hicolor-links";
+
   postPatch = ''
-    patchShebangs tools/hicolor.links
-    patchShebangs tools/display_unused_links.sh
-    patchShebangs cursors-src/cursors/bitmaps/make.sh
-    patchShebangs cursors-src/render-cursors.sh
+    # 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
 
-    # keep icon-theme.cache
-    sed -i -e 's|\(-rm -f .*/icon-theme.cache\)|# \1|g' Makefile
+    substituteInPlace Sea/index.theme --replace Inherits=deepin Inherits=bloom
   '';
 
-  buildTargets = "all hicolor-links";
-  installTargets = [ "install-icons" "install-cursors" ];
-  installFlags = [ "PREFIX=${placeholder "out"}" ];
+  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
 
-  postInstall = ''
-    cp -a ./Sea ./usr/share/icons/hicolor "$out"/share/icons/
+    runHook postInstall
   '';
 
   passthru.updateScript = deepin.updateScript { inherit pname version src; };
diff --git a/pkgs/desktops/deepin/deepin-movie-reborn/default.nix b/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
index 6763292b626..68daffb0d15 100644
--- a/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
+++ b/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
@@ -8,7 +8,7 @@
 , qtx11extras
 , dtkcore
 , dtkwidget
-, ffmpeg
+, ffmpeg_3
 , ffmpegthumbnailer
 , mpv
 , pulseaudio
@@ -41,7 +41,7 @@ mkDerivation rec {
   buildInputs = [
     dtkcore
     dtkwidget
-    ffmpeg
+    ffmpeg_3
     ffmpegthumbnailer
     libdvdnav
     libdvdread
diff --git a/pkgs/desktops/deepin/deepin-screenshot/default.nix b/pkgs/desktops/deepin/deepin-screenshot/default.nix
deleted file mode 100644
index 0ccc350962a..00000000000
--- a/pkgs/desktops/deepin/deepin-screenshot/default.nix
+++ /dev/null
@@ -1,73 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, fetchpatch
-, cmake
-, pkgconfig
-, xdg_utils
-, qttools
-, qtx11extras
-, dtkcore
-, dtkwidget
-, dtkwm
-, deepin-turbo
-, deepin-shortcut-viewer
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-screenshot";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0h1kcf9i8q6rz4jhym3yf84zr6svzff0hh9sl7b24sflzkxx6zwk";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    deepin-shortcut-viewer
-    deepin-turbo
-    dtkcore
-    dtkwidget
-    dtkwm
-    qtx11extras
-  ];
-
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/linuxdeepin/deepin-screenshot/pull/52/commits/e14508b223fd9965854ed41c944cea2ea19e6e0c.patch";
-      sha256 = "18zvz98z3hr8pcdyb706za6h2nwx23zsjb1hgyp21ycinhzr9j9h";
-    })
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    patchShebangs generate_translations.sh
-    fixPath ${deepin-turbo} /usr/bin/deepin-turbo-invoker src/dbusservice/com.deepin.Screenshot.service
-    fixPath $out /usr/bin/deepin-screenshot src/dbusservice/com.deepin.Screenshot.service
-    substituteInPlace src/mainwindow.cpp --replace '"xdg-open,%1"' '"${xdg_utils}/bin/xdg-open,%1"'
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Easy-to-use screenshot tool for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/deepin-screenshot";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo flokli ];
-  };
-}
diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index 8d33ac154af..b177b2ccf35 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -12,7 +12,6 @@ let
         ignoredVersions = "^2014(\\.|rc)|^v[0-9]+";
       };
 
-    dbus-factory = callPackage ./dbus-factory { };
     dde-api = callPackage ./dde-api { };
     dde-calendar = callPackage ./dde-calendar { };
     dde-control-center = callPackage ./dde-control-center { };
@@ -36,7 +35,6 @@ let
     deepin-image-viewer = callPackage ./deepin-image-viewer { };
     deepin-menu = callPackage ./deepin-menu { };
     deepin-movie-reborn = callPackage ./deepin-movie-reborn { };
-    deepin-screenshot = callPackage ./deepin-screenshot { };
     deepin-shortcut-viewer = callPackage ./deepin-shortcut-viewer { };
     deepin-sound-theme = callPackage ./deepin-sound-theme { };
     deepin-terminal = callPackage ./deepin-terminal {
@@ -50,12 +48,11 @@ let
     dtkwidget = callPackage ./dtkwidget { };
     dtkwm = callPackage ./dtkwm { };
     go-dbus-factory = callPackage ./go-dbus-factory { };
-    go-dbus-generator = callPackage ./go-dbus-generator { };
     go-gir-generator = callPackage ./go-gir-generator { };
     go-lib = callPackage ./go-lib { };
     qcef = callPackage ./qcef { };
-    qt5dxcb-plugin = callPackage ./qt5dxcb-plugin { };
     qt5integration = callPackage ./qt5integration { };
+    qt5platform-plugins = callPackage ./qt5platform-plugins { };
     startdde = callPackage ./startdde { };
     udisks2-qt5 = callPackage ./udisks2-qt5 { };
 
diff --git a/pkgs/desktops/deepin/disomaster/default.nix b/pkgs/desktops/deepin/disomaster/default.nix
index 758c8ff76c3..89cbe34ceaa 100644
--- a/pkgs/desktops/deepin/disomaster/default.nix
+++ b/pkgs/desktops/deepin/disomaster/default.nix
@@ -10,13 +10,13 @@
 
 mkDerivation rec {
   pname = "disomaster";
-  version = "5.0.0";
+  version = "5.0.1";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "13144gq0mpbpclzxc79fb1kirh0vvi50jvjnbpla9s8lvh59xl62";
+    sha256 = "1kmhlnw37pdmlf7k9zry657xlhz40m9nzg361kiyisn186pfqpws";
   };
 
   nativeBuildInputs = [
@@ -32,11 +32,12 @@ mkDerivation rec {
 
   postPatch = ''
     searchHardCodedPaths  # debugging
-
-    sed -i '/^QMAKE_PKGCONFIG_DESTDIR/i QMAKE_PKGCONFIG_PREFIX = $$PREFIX' \
-       libdisomaster/libdisomaster.pro
   '';
 
+  qmakeFlags = [
+    "QMAKE_PKGCONFIG_PREFIX=${placeholder "out"}"
+  ];
+
   passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/deepin/go-dbus-generator/default.nix b/pkgs/desktops/deepin/go-dbus-generator/default.nix
deleted file mode 100644
index d0b2d8c07e6..00000000000
--- a/pkgs/desktops/deepin/go-dbus-generator/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, go
-, go-lib
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "go-dbus-generator";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "17rzicqizyyrhjjf4rild7py1cyd07b2zdcd9nabvwn4gvj6lhfb";
-  };
-
-  nativeBuildInputs = [
-    go
-    go-lib
-  ];
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-    "GOCACHE=$(TMPDIR)/go-cache"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Convert dbus interfaces to go-lang or qml wrapper code";
-    homepage = "https://github.com/linuxdeepin/go-dbus-generator";
-    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
index 0c282aaa227..7768f9afc85 100644
--- a/pkgs/desktops/deepin/go-gir-generator/default.nix
+++ b/pkgs/desktops/deepin/go-gir-generator/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     # https://github.com/linuxdeepin/go-gir-generator/pull/11
     (fetchpatch {
       url = "https://github.com/linuxdeepin/go-gir-generator/commit/7dea15a1a491f28d2ac8c411068ccefeba01aae3.patch";
-      sha256 = "7bn/mtruCcK+AIXMzhN2e3o7CuzuJ3mtTz0HOTEYTaA=";
+      sha256 = "182d30qkj1rx9ynpj9zfxh53nykvfq9wxk4502zc42gfvadgzfgd";
     })
   ];
 
diff --git a/pkgs/desktops/deepin/go-lib/default.nix b/pkgs/desktops/deepin/go-lib/default.nix
index d45351fd6dc..7129d912e30 100644
--- a/pkgs/desktops/deepin/go-lib/default.nix
+++ b/pkgs/desktops/deepin/go-lib/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "go-lib";
-  version = "5.0.0";
+  version = "5.4.5";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "0j1ik5hfrysqgync8cyv815cwyjn67k8n69x6llxdp39jli1k8q0";
+    sha256 = "021sq7nzvfwsa5ccsb3vdjk53m7cf693xm4wkdkrkf8pja6vz94q";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/deepin/qcef/default.nix b/pkgs/desktops/deepin/qcef/default.nix
index fb6bb89d939..c37915377d8 100644
--- a/pkgs/desktops/deepin/qcef/default.nix
+++ b/pkgs/desktops/deepin/qcef/default.nix
@@ -64,14 +64,14 @@ let
 in
 mkDerivation rec {
   pname = "qcef";
-  version = "1.1.7";
+  version = "1.1.8";
 
   srcs = [
     (fetchFromGitHub {
       owner = "linuxdeepin";
       repo = pname;
       rev = version;
-      sha256 = "1x0vb4nkfa1lq0nh6iqpxfvsqmb6qfn305pbc92bsqpgiqd7jvb1";
+      sha256 = "14a33af1h3wj3yph080c1ri3m27bqj1v1k0jdqc63x7c3smnpwfk";
       name = pname;
     })
     (fetchFromGitHub {
diff --git a/pkgs/desktops/deepin/qt5integration/default.nix b/pkgs/desktops/deepin/qt5integration/default.nix
index cc427611c34..e3bbaba068b 100644
--- a/pkgs/desktops/deepin/qt5integration/default.nix
+++ b/pkgs/desktops/deepin/qt5integration/default.nix
@@ -8,7 +8,7 @@
 , qtx11extras
 , qtmultimedia
 , qtsvg
-, qt5dxcb-plugin
+, qt5platform-plugins
 , qtstyleplugins
 , dtkcore
 , dtkwidget
@@ -34,7 +34,7 @@ mkDerivation rec {
   buildInputs = [
     dtkcore
     dtkwidget
-    qt5dxcb-plugin
+    qt5platform-plugins
     mtdev
     lxqt.libqtxdg
     qtstyleplugins
diff --git a/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix b/pkgs/desktops/deepin/qt5platform-plugins/default.nix
index 4aa10fb1a93..33e4863c0d9 100644
--- a/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix
+++ b/pkgs/desktops/deepin/qt5platform-plugins/default.nix
@@ -12,15 +12,15 @@
 }:
 
 mkDerivation rec {
-  pname = "qt5dxcb-plugin";
-  version = "5.0.1";
+  pname = "qt5platform-plugins";
+  version = "5.0.11";
 
   srcs = [
     (fetchFromGitHub {
       owner = "linuxdeepin";
       repo = pname;
       rev = version;
-      sha256 = "1pkhbx4hzjv7n4mscv7dng9ymjcc1csdc82iy62yxshhq32bcfja";
+      sha256 = "14xkr3p49716jc9v7ksj6jgcmfa65qicqrmablizfi71srg3z2pr";
     })
     qtbase.src
   ];
@@ -51,13 +51,11 @@ mkDerivation rec {
     "INSTALL_PATH=${placeholder "out"}/${qtbase.qtPluginPrefix}/platforms"
   ];
 
-  enableParallelBuilding = true;
-
   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/qt5dxcb-plugin";
+    homepage = "https://github.com/linuxdeepin/qt5platform-plugins";
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ romildo ];
diff --git a/pkgs/desktops/deepin/startdde/default.nix b/pkgs/desktops/deepin/startdde/default.nix
index 7d03b00928e..75b36e85de3 100644
--- a/pkgs/desktops/deepin/startdde/default.nix
+++ b/pkgs/desktops/deepin/startdde/default.nix
@@ -4,7 +4,6 @@
 , pkgconfig
 , alsaLib
 , coreutils
-, dbus-factory
 , dde-api
 , dde-daemon
 , dde-dock
@@ -53,7 +52,6 @@ buildGoPackage rec {
 
   nativeBuildInputs = [
     pkgconfig
-    dbus-factory
     jq
     wrapGAppsHook
     deepin.setupHook
diff --git a/pkgs/desktops/deepin/udisks2-qt5/default.nix b/pkgs/desktops/deepin/udisks2-qt5/default.nix
index 385fedfc478..0fcc2e9f9f7 100644
--- a/pkgs/desktops/deepin/udisks2-qt5/default.nix
+++ b/pkgs/desktops/deepin/udisks2-qt5/default.nix
@@ -8,13 +8,13 @@
 
 mkDerivation rec {
   pname = "udisks2-qt5";
-  version = "5.0.0";
+  version = "5.0.3";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "0mqxm6ixzpbg0rr6ly2kvnkpag8gjza67ya7jv4i4rihbq1d0wzi";
+    sha256 = "0c87ks9glwhk4m2s7kf7mb43q011yi6l3qjq2ammmfqwl8xal69a";
   };
 
   nativeBuildInputs = [
@@ -27,11 +27,15 @@ mkDerivation rec {
   ];
 
   postPatch = ''
-    searchHardCodedPaths
+    searchHardCodedPaths # debugging
   '';
 
+  qmakeFlags = [
+    "QMAKE_PKGCONFIG_PREFIX=${placeholder "out"}"
+  ];
+
   postFixup = ''
-    searchHardCodedPaths $out
+    searchHardCodedPaths $out # debugging
   '';
 
   passthru.updateScript = deepin.updateScript { inherit pname version src; };
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 bd6c0529925..0fa5edc934c 100644
--- a/pkgs/desktops/enlightenment/efl.nix
+++ b/pkgs/desktops/enlightenment/efl/default.nix
@@ -3,10 +3,8 @@
 , meson
 , ninja
 , pkgconfig
-, SDL
 , SDL2
 , alsaLib
-, avahi
 , bullet
 , check
 , curl
@@ -41,6 +39,7 @@
 , luajit
 , lz4
 , mesa
+, mint-x-icons
 , openjpeg
 , openssl
 , poppler
@@ -55,11 +54,11 @@
 
 stdenv.mkDerivation rec {
   pname = "efl";
-  version = "1.24.0";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/libs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1yhck2g4rwlzgnzqa4wjxw3lf6k6rd730hz4bwzajdjy7i26xfdk";
+    sha256 = "de95c6e673c170c1e21382918b122417c091c643e7dcaced89aa785529625c2a";
   };
 
   nativeBuildInputs = [
@@ -71,8 +70,6 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    SDL
-    avahi
     fontconfig
     freetype
     giflib
@@ -96,7 +93,7 @@ stdenv.mkDerivation rec {
     xorg.libXcursor
     xorg.xorgproto
     zlib
-    # still missing parent icon themes: Mint-X, RAVE-X, Faenza
+    # still missing parent icon themes: RAVE-X, Faenza
   ];
 
   propagatedBuildInputs = [
@@ -111,6 +108,7 @@ stdenv.mkDerivation rec {
     fribidi
     ghostscript
     harfbuzz
+    hicolor-icon-theme # for the icon theme
     jbig2dec
     libdrm
     libinput
@@ -121,9 +119,9 @@ stdenv.mkDerivation rec {
     libwebp
     libxkbcommon
     luajit
+    mint-x-icons # Mint-X is a parent icon theme of Enlightenment-X
     openjpeg
     poppler
-    python3Packages.dbus-python
     utillinux
     xorg.libXScrnSaver
     xorg.libXcomposite
@@ -132,13 +130,10 @@ stdenv.mkDerivation rec {
     xorg.libXfixes
     xorg.libXi
     xorg.libXinerama
-    xorg.libXp
     xorg.libXrandr
     xorg.libXrender
     xorg.libXtst
     xorg.libxcb
-    xorg.libxkbfile
-    xorg.xcbutilkeysyms
   ];
 
   dontDropIconThemeCache = true;
@@ -147,21 +142,23 @@ stdenv.mkDerivation rec {
     "--buildtype=release"
     "-D build-tests=false" # disable build tests, which are not working
     "-D drm=true"
-    "-D embedded-lz4=false"
     "-D ecore-imf-loaders-disabler=ibus,scim" # ibus is disalbed by default, scim is not availabe in nixpkgs
-    "-D evas-loaders-disabler=json"
+    "-D embedded-lz4=false"
     "-D fb=true"
-    "-D opengl=full"
+    "-D network-backend=connman"
     "-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'"
   '';
 
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/enlightenment.nix b/pkgs/desktops/enlightenment/enlightenment.nix
deleted file mode 100644
index 8ba0dffc8a4..00000000000
--- a/pkgs/desktops/enlightenment/enlightenment.nix
+++ /dev/null
@@ -1,88 +0,0 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, alsaLib, bc,
-  bzip2, efl, gdbm, libXdmcp, libXrandr, libcap, libffi,
-  libpthreadstubs, libxcb, luajit, mesa, pam, pcre, xcbutilkeysyms,
-  xkeyboard_config,
-
-  bluetoothSupport ? true, bluez5,
-  pulseSupport ? !stdenv.isDarwin, libpulseaudio,
-}:
-
-stdenv.mkDerivation rec {
-  pname = "enlightenment";
-  version = "0.23.1";
-
-  src = fetchurl {
-    url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0d1cyl07w9pvi2pf029kablazks2q9aislzl46b6fq5m1465jc75";
-  };
-
-  nativeBuildInputs = [
-    gettext
-    meson
-    ninja
-    pkgconfig
-  ];
-
-  buildInputs = [
-    alsaLib
-    bc  # for the Everything module calculator mode
-    bzip2
-    efl
-    gdbm
-    libXdmcp
-    libXrandr
-    libffi
-    libpthreadstubs
-    libxcb
-    luajit
-    mesa
-    pam
-    pcre
-    xcbutilkeysyms
-    xkeyboard_config
-  ]
-  ++ stdenv.lib.optional stdenv.isLinux libcap
-  ++ stdenv.lib.optional bluetoothSupport bluez5
-  ++ stdenv.lib.optional pulseSupport libpulseaudio
-  ;
-
-  patches = [
-    # Some programs installed by enlightenment (to set the cpu frequency,
-    # for instance) need root ownership and setuid/setgid permissions, which
-    # are not allowed for files in /nix/store. Instead of allowing the
-    # installer to try to do this, the file $out/e-wrappers.nix is created,
-    # containing the needed configuration for wrapping those programs. It
-    # can be used in the enlightenment module. The idea is:
-    #
-    #  1) rename the original binary adding the extension .orig
-    #  2) wrap the renamed binary at /run/wrappers/bin/
-    #  3) create a new symbolic link using the original binary name (in the
-    #     original directory where enlightenment wants it) pointing to the
-    #     wrapper
-
-    ./enlightenment.suid-exes.patch
-  ];
-
-  postPatch = ''
-    # edge_cc is a binary provided by efl and cannot be found at the directory
-    # given by e_prefix_bin_get(), which is $out/bin
-
-    substituteInPlace src/bin/e_import_config_dialog.c \
-      --replace "e_prefix_bin_get()" "\"${efl}/bin\""
-
-    substituteInPlace src/modules/everything/evry_plug_calc.c \
-      --replace "ecore_exe_pipe_run(\"bc -l\"" "ecore_exe_pipe_run(\"${bc}/bin/bc -l\""
-  '';
-
-  mesonFlags = [ "-Dsystemdunitdir=lib/systemd/user" ];
-
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
-    description = "The Compositing Window Manager and Desktop Shell";
-    homepage = "https://www.enlightenment.org";
-    license = licenses.bsd2;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ matejc tstrobel ftrvxmtrx romildo ];
-  };
-}
diff --git a/pkgs/desktops/enlightenment/enlightenment.suid-exes.patch b/pkgs/desktops/enlightenment/enlightenment.suid-exes.patch
deleted file mode 100644
index f53f6ffa7ca..00000000000
--- a/pkgs/desktops/enlightenment/enlightenment.suid-exes.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- enlightenment-0.22.0.orig/meson/meson_inst.sh	2017-09-25 10:55:43.000000000 -0300
-+++ enlightenment-0.22.0/meson/meson_inst.sh	2017-11-15 08:31:03.336844920 -0200
-@@ -1,6 +1,19 @@
--#!/bin/sh
-+#!/bin/sh -x
-+
-+w="$out"/e-wrappers.nix
-+
-+echo "# Wrappers for programs installed by enlightenment that should be setuid" > $w
-+echo "" >> $w
-+echo "{" >> $w
-+echo "  security.wrappers = {" >> $w
- 
- for x in "$@" ; do
--	chown root "$DESTDIR/$x"
--	chmod a=rx,u+xs "$DESTDIR/$x"
-+	f="$DESTDIR$x";
-+	b=$(basename "$f".orig)
-+	mv -v "$f" "$f".orig
-+	ln -sv /run/wrappers/bin/"$b" "$f"
-+	echo "    \"$b\".source = \"$f.orig\";" >> $w
- done
-+
-+echo "  };" >> $w
-+echo "}" >> $w
diff --git a/pkgs/desktops/enlightenment/enlightenment/0001-wrapped-setuid-executables.patch b/pkgs/desktops/enlightenment/enlightenment/0001-wrapped-setuid-executables.patch
new file mode 100644
index 00000000000..55a3501ef8b
--- /dev/null
+++ b/pkgs/desktops/enlightenment/enlightenment/0001-wrapped-setuid-executables.patch
@@ -0,0 +1,114 @@
+From a1e54ae0097a3b6a0dabf4639fe8bc594c4f602d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
+Date: Thu, 14 May 2020 16:36:34 -0300
+Subject: [PATCH] wrapped setuid executables
+
+Installing programs with root ownership and setuid/setgid permissions
+in /nix/store is not allowed. They should be wrapped in the
+enlightenment service module, and the wrapped ones should be used
+instead.
+---
+ meson/meson_inst.sh           | 4 ++--
+ src/bin/e_auth.c              | 6 ++----
+ src/bin/e_fm/e_fm_main_eeze.c | 6 +++---
+ src/bin/e_start_main.c        | 2 +-
+ src/bin/e_system.c            | 2 +-
+ 5 files changed, 9 insertions(+), 11 deletions(-)
+
+diff --git a/meson/meson_inst.sh b/meson/meson_inst.sh
+index 321143e40..cd2399306 100755
+--- a/meson/meson_inst.sh
++++ b/meson/meson_inst.sh
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+ 
+ for x in "$@" ; do
+-	chown root "$DESTDIR/$x"
+-	chmod a=rx,u+xs "$DESTDIR/$x"
++	echo TODO: chown root "$DESTDIR/$x"
++	echo TODO: chmod a=rx,u+xs "$DESTDIR/$x"
+ done
+diff --git a/src/bin/e_auth.c b/src/bin/e_auth.c
+index 8b0aa6641..63c68c4bc 100644
+--- a/src/bin/e_auth.c
++++ b/src/bin/e_auth.c
+@@ -12,8 +12,7 @@ e_auth_begin(char *passwd)
+    if (pwlen == 0) goto out;
+ 
+    snprintf(buf, sizeof(buf),
+-            "%s/enlightenment/utils/enlightenment_ckpasswd pw",
+-            e_prefix_lib_get());
++            "/run/wrappers/bin/enlightenment_ckpasswd pw");
+    exe = ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_WRITE, NULL);
+    if (!exe) goto out;
+    if (ecore_exe_send(exe, passwd, pwlen) != EINA_TRUE) goto out;
+@@ -47,8 +46,7 @@ e_auth_polkit_begin(char *passwd, const char *cookie, unsigned int uid)
+    if (pwlen == 0) goto out;
+ 
+    snprintf(buf, sizeof(buf),
+-            "%s/enlightenment/utils/enlightenment_ckpasswd pk",
+-            e_prefix_lib_get());
++            "/run/wrappers/bin/enlightenment_ckpasswd pk");
+    exe = ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_WRITE, NULL);
+    if (!exe) goto out;
+    snprintf(buf, sizeof(buf), "%s %u %s", cookie, uid, passwd);
+diff --git a/src/bin/e_fm/e_fm_main_eeze.c b/src/bin/e_fm/e_fm_main_eeze.c
+index 9b10b3117..0f0aa5b53 100644
+--- a/src/bin/e_fm/e_fm_main_eeze.c
++++ b/src/bin/e_fm/e_fm_main_eeze.c
+@@ -318,7 +318,7 @@ _e_fm_main_eeze_volume_eject(E_Volume *v)
+      {
+         char buf[PATH_MAX];
+ 
+-        snprintf(buf, sizeof(buf), "%s/enlightenment/utils/enlightenment_sys", eina_prefix_lib_get(pfx));
++        snprintf(buf, sizeof(buf), "/run/wrappers/bin/enlightenment_sys");
+         eeze_disk_mount_wrapper_set(v->disk, buf);
+      }
+    v->guard = ecore_timer_loop_add(E_FM_EJECT_TIMEOUT, (Ecore_Task_Cb)_e_fm_main_eeze_vol_eject_timeout, v);
+@@ -512,7 +512,7 @@ _e_fm_main_eeze_volume_unmount(E_Volume *v)
+      {
+         char buf[PATH_MAX];
+ 
+-        snprintf(buf, sizeof(buf), "%s/enlightenment/utils/enlightenment_sys", eina_prefix_lib_get(pfx));
++        snprintf(buf, sizeof(buf), "/run/wrappers/bin/enlightenment_sys");
+         eeze_disk_mount_wrapper_set(v->disk, buf);
+      }
+    v->guard = ecore_timer_loop_add(E_FM_UNMOUNT_TIMEOUT, (Ecore_Task_Cb)_e_fm_main_eeze_vol_unmount_timeout, v);
+@@ -548,7 +548,7 @@ _e_fm_main_eeze_volume_mount(E_Volume *v)
+      {
+         char buf2[PATH_MAX];
+ 
+-        snprintf(buf2, sizeof(buf2), "%s/enlightenment/utils/enlightenment_sys", eina_prefix_lib_get(pfx));
++        snprintf(buf2, sizeof(buf2), "/run/wrappers/bin/enlightenment_sys");
+         eeze_disk_mount_wrapper_set(v->disk, buf2);
+      }
+    v->guard = ecore_timer_loop_add(E_FM_MOUNT_TIMEOUT, (Ecore_Task_Cb)_e_fm_main_eeze_vol_mount_timeout, v);
+diff --git a/src/bin/e_start_main.c b/src/bin/e_start_main.c
+index 8534a7a8e..f0f0061a4 100644
+--- a/src/bin/e_start_main.c
++++ b/src/bin/e_start_main.c
+@@ -709,7 +709,7 @@ main(int argc, char **argv)
+             "E_ALERT_FONT_DIR=%s/data/fonts", eina_prefix_data_get(pfx));
+    putenv(buf2);
+    snprintf(buf3, sizeof(buf3),
+-            "E_ALERT_SYSTEM_BIN=%s/enlightenment/utils/enlightenment_system", eina_prefix_lib_get(pfx));
++            "E_ALERT_SYSTEM_BIN=/run/wrappers/bin/enlightenment_system");
+    putenv(buf3);
+ 
+    if ((valgrind_mode || valgrind_tool) &&
+diff --git a/src/bin/e_system.c b/src/bin/e_system.c
+index 1e7aabb64..5084933a1 100644
+--- a/src/bin/e_system.c
++++ b/src/bin/e_system.c
+@@ -132,7 +132,7 @@ _system_spawn(void)
+    else _respawn_count = 0;
+    if (_respawn_count > 5) return;
+    snprintf(buf, sizeof(buf),
+-            "%s/enlightenment/utils/enlightenment_system", e_prefix_lib_get());
++            "/run/wrappers/bin/enlightenment_system");
+    _system_exe = ecore_exe_pipe_run
+      (buf, ECORE_EXE_NOT_LEADER | ECORE_EXE_TERM_WITH_PARENT |
+       ECORE_EXE_PIPE_READ | ECORE_EXE_PIPE_WRITE, NULL);
+-- 
+2.26.2
+
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/default.nix b/pkgs/desktops/enlightenment/enlightenment/default.nix
new file mode 100644
index 00000000000..90a15a1d523
--- /dev/null
+++ b/pkgs/desktops/enlightenment/enlightenment/default.nix
@@ -0,0 +1,76 @@
+{ stdenv
+, fetchurl
+, meson
+, ninja
+, pkg-config
+, gettext
+, alsaLib
+, acpid
+, bc
+, ddcutil
+, efl
+, pam
+, xkeyboard_config
+, udisks2
+
+, bluetoothSupport ? true, bluez5
+, pulseSupport ? !stdenv.isDarwin, libpulseaudio
+}:
+
+stdenv.mkDerivation rec {
+  pname = "enlightenment";
+  version = "0.24.2";
+
+  src = fetchurl {
+    url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
+    sha256 = "1wfz0rwwsx7c1mkswn4hc9xw1i6bsdirhxiycf7ha2vcipqy465y";
+  };
+
+  nativeBuildInputs = [
+    gettext
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    alsaLib
+    acpid # for systems with ACPI for lid events, AC/Battery plug in/out etc
+    bc # for the Everything module calculator mode
+    ddcutil # specifically libddcutil.so.2 for backlight control
+    efl
+    pam
+    xkeyboard_config
+    udisks2 # for removable storage mounting/unmounting
+  ]
+  ++ stdenv.lib.optional bluetoothSupport bluez5 # for bluetooth configuration and control
+  ++ stdenv.lib.optional pulseSupport libpulseaudio # for proper audio device control and redirection
+  ;
+
+  patches = [
+    # Executables cannot be made setuid in nix store. They should be
+    # 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 = ''
+    substituteInPlace src/modules/everything/evry_plug_calc.c \
+      --replace "ecore_exe_pipe_run(\"bc -l\"" "ecore_exe_pipe_run(\"${bc}/bin/bc -l\""
+  '';
+
+  mesonFlags = [
+    "-D systemdunitdir=lib/systemd/user"
+  ];
+
+  passthru.providedSessions = [ "enlightenment" ];
+
+  meta = with stdenv.lib; {
+    description = "The Compositing Window Manager and Desktop Shell";
+    homepage = "https://www.enlightenment.org";
+    license = licenses.bsd2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ matejc tstrobel ftrvxmtrx romildo ];
+  };
+}
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 205d133e1d2..72aab761754 100644
--- a/pkgs/desktops/enlightenment/terminology.nix
+++ b/pkgs/desktops/enlightenment/terminology/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "terminology";
-  version = "1.6.0";
+  version = "1.8.0";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0xxx4xyhis6fy3frgb34ip0aj0kc4zashf60gzbxmq5gadbb0p5r";
+    sha256 = "0pvn8mdzxlx7181xdha32fbr0w8xl7hsnb3hfxr5099g841v1xf6";
   };
 
   nativeBuildInputs = [
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 467971b2dba..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.2";
+  version = "3.36.5";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "12ii8crp4v4bpdxrc2rkxwdxqz3qjizyfgfrmir9pcyxlg0lh2f5";
+    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/glade/default.nix b/pkgs/desktops/gnome-3/apps/glade/default.nix
deleted file mode 100644
index 23f5410e1ea..00000000000
--- a/pkgs/desktops/gnome-3/apps/glade/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ stdenv, intltool, fetchurl, python3
-, pkgconfig, gtk3, glib, gobject-introspection
-, wrapGAppsHook, itstool, libxml2, docbook_xsl
-, gnome3, gdk-pixbuf, libxslt, gsettings-desktop-schemas }:
-
-stdenv.mkDerivation rec {
-  pname = "glade";
-  version = "3.22.2";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/glade/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "08bayb1rrpblxf6jhhbw2n3c425w170is4l94pampldl4kmsdvzd";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "glade"; attrPath = "gnome3.glade"; };
-  };
-
-  nativeBuildInputs = [
-    pkgconfig intltool itstool wrapGAppsHook docbook_xsl libxslt libxml2 gobject-introspection
-  ];
-  buildInputs = [
-    gtk3 glib libxml2 python3 python3.pkgs.pygobject3
-    gsettings-desktop-schemas
-    gdk-pixbuf gnome3.adwaita-icon-theme
-  ];
-
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
-    homepage = "https://wiki.gnome.org/Apps/Glade";
-    description = "User interface designer for GTK applications";
-    maintainers = teams.gnome.members;
-    license = licenses.lgpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
index e2ac4cb4b89..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.3";
+  version = "3.36.6";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-boxes/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "18imxv1859gr53z4yay02611p5f1rd2pwnbaq093gmn77l0j9292";
+    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-calendar/default.nix b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
index 88284c540e3..988cb1ed2a3 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
@@ -4,13 +4,13 @@
 
 let
   pname = "gnome-calendar";
-  version = "3.36.1";
+  version = "3.36.2";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0ql3f509bj17riqs0jfpp434s97dzjgkjcd978i4m4y80nq2131v";
+    sha256 = "07sc1kn65dzxsxpv0vl5dj1a5awljjsfl9jldrg0hnjmq12m7c6h";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix b/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
index 7494d66cc0d..5e3ff58b290 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
@@ -27,22 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-clocks";
-  version = "3.36.0";
+  version = "3.36.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-clocks/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1ij9xwp3c96gsnnlhkqkiw3y45a4lpw7a09d4yysx7bvgw68p5sc";
+    sha256 = "1rjicycgh9jvkqir2m8hx9m4jlaa3w5lqs43k185wa0zxhi1n6zi";
   };
 
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-clocks";
-      attrPath = "gnome3.gnome-clocks";
-    };
-  };
-
-  doCheck = true;
-
   nativeBuildInputs = [
     vala
     meson
@@ -55,6 +46,7 @@ stdenv.mkDerivation rec {
     libxml2
     gobject-introspection # for finding vapi files
   ];
+
   buildInputs = [
     gtk3
     glib
@@ -76,6 +68,15 @@ stdenv.mkDerivation rec {
     )
   '';
 
+  doCheck = true;
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "gnome-clocks";
+      attrPath = "gnome3.gnome-clocks";
+    };
+  };
+
   meta = with stdenv.lib; {
     homepage = "https://wiki.gnome.org/Apps/Clocks";
     description = "Clock application designed for GNOME 3";
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 7eda4a706ca..45675b791cd 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
@@ -1,25 +1,66 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gnome3, glib, gtk3, wrapGAppsHook
-, gettext, itstool, libxml2, libxslt, docbook_xsl, docbook_xml_dtd_43, systemd, python3, gsettings-desktop-schemas }:
+{ stdenv
+, fetchurl
+, fetchpatch
+, meson
+, ninja
+, pkgconfig
+, gnome3
+, glib
+, gtk3
+, wrapGAppsHook
+, gettext
+, itstool
+, libxml2
+, libxslt
+, docbook_xsl
+, docbook_xml_dtd_43
+, systemd
+, python3
+, gsettings-desktop-schemas
+}:
 
 stdenv.mkDerivation rec {
   pname = "gnome-logs";
-  version = "3.34.0";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-logs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "16jfwg912asirrdmipf6wh7zr5zrww3nyhf99mi230y8hmqazx0m";
+    sha256 = "0w1nfdxbv3f0wnhmdy21ydvr4swfc108hypda561p7l9lrhnnxj4";
   };
 
-  mesonFlags = [
-    "-Dman=true"
+  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 ninja pkgconfig wrapGAppsHook gettext itstool
-    libxml2 libxslt docbook_xsl docbook_xml_dtd_43
+    meson
+    ninja
+    pkgconfig
+    wrapGAppsHook
+    gettext
+    itstool
+    libxml2
+    libxslt
+    docbook_xsl
+    docbook_xml_dtd_43
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    systemd
+    gsettings-desktop-schemas
+    gnome3.adwaita-icon-theme
+  ];
+
+  mesonFlags = [
+    "-Dman=true"
   ];
-  buildInputs = [ glib gtk3 systemd gsettings-desktop-schemas gnome3.adwaita-icon-theme ];
 
   postPatch = ''
     chmod +x meson_post_install.py
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 26cebe076ea..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.2";
+  version = "3.36.4.1";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "19c2x7h9gq4kh4995y1qcn5pyry4x04lh5n7md0q33zsxcx43bdb";
+    sha256 = "0zdpjgwf48bqb66wrl6k33pzcmc2g3m1046ma7z8xaj9idpi37jh";
   };
 
   nativeBuildInputs = [
@@ -93,6 +93,9 @@ python3.pkgs.buildPythonApplication rec {
 
   doCheck = false;
 
+  # handle setup hooks better
+  strictDeps = false;
+
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = pname;
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/polari/default.nix b/pkgs/desktops/gnome-3/apps/polari/default.nix
index 363d3c49af8..514eecc1736 100644
--- a/pkgs/desktops/gnome-3/apps/polari/default.nix
+++ b/pkgs/desktops/gnome-3/apps/polari/default.nix
@@ -5,13 +5,13 @@
 
 let
   pname = "polari";
-  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 = "12i0gp2kwp0b7af135q32qygkhh2025f74dqbaylfbmzacbdpz5c";
+    sha256 = "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg";
   };
 
   patches = [
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/baobab/default.nix b/pkgs/desktops/gnome-3/core/baobab/default.nix
index af39d3a3c05..dce14d6d1de 100644
--- a/pkgs/desktops/gnome-3/core/baobab/default.nix
+++ b/pkgs/desktops/gnome-3/core/baobab/default.nix
@@ -4,13 +4,13 @@
 
 let
   pname = "baobab";
-  version = "3.34.0";
+  version = "3.34.1";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "01w6m5ylyqs4wslpjn1hg6n6ynwh3rghksak0qs8r9m6dm3dkss6";
+    sha256 = "1i90gc1cpw5507zn54k46hj4mjgdxsq8cvpnlgxq0ksy2d7iv63z";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig vala gettext itstool libxml2 desktop-file-utils wrapGAppsHook ];
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 c41f5d79eb7..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.1";
+  version = "3.36.4";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/epiphany/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1dpgp1fqkn6azdrkw9imbrxi5d6mznrhfisrsiv88cf68gxk7wpn";
+    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 2852c816e4b..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.0";
+  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 = "1a7v534sqbg7rlrvg9x1rffdf6p9n37blp3wix6anyfl6i99n7c5";
+    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 0d3c786690d..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.2";
+  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 = "0yz9fsnbnnlj2iidd81i9w7d0dhidrzqkixrnfjfdkhnxk7p9qlq";
+    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 79d28ae8ced..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.2";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "05vqhj5z4w4vaphp541zxxkx6x781m371l2gqnq2vhnnqvqfz9g0";
+    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 94de64c9ea9..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.2";
+  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 = "12f724inw3sv289xqprvwh8r3qw89z67m74j3hyhkbp1n7f99y9q";
+    sha256 = "0lxpgb199hn37vq822qg9g43pwixbki3x5lkazqa77qhjhlj98gf";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
index a19f0b6a276..02941743f55 100644
--- a/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     # fix AppStream validation
     (fetchpatch {
       url = "https://gitlab.gnome.org/GNOME/gnome-dictionary/commit/1c94d612030ef87c6e26a01a490470b71c39e341.patch";
-      sha256 = "sha256:0cbswmhs9mks3gsc0iy4wnidsa8sfzzf4s1kgvb80qwffgxz5m8b";
+      sha256 = "0cbswmhs9mks3gsc0iy4wnidsa8sfzzf4s1kgvb80qwffgxz5m8b";
     })
   ];
 
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 fb801ca19a6..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.2";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0mjp2j4smikmr4fa0y8wrw2srlfjahiixzphz3dmc30hx8df92sg";
+    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 d3fb419aabc..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.2";
+  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 = "0lqpxhvn073bshnzarnisym3da3k3awsi3h906hm85hz3wm9n4iv";
+    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 {
@@ -67,7 +88,7 @@ in stdenv.mkDerivation rec {
     # https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1194
     (fetchpatch {
       url = "https://gitlab.gnome.org/GNOME/gnome-shell/commit/9f1ad5d86ddbabaa840eb2860279d53f4e635453.patch";
-      sha256 = "f8MDFbfg9D7ORF84Ld9GIvf0xRCYuSszo3QLMji2VaE=";
+      sha256 = "18amnqw342vllcrjpfcq232z9xr28vgjsf2z8k73xx70nwah7hvz";
     })
 
     # Use absolute path for libshew installation to make our patched gobject-introspection
@@ -82,10 +103,81 @@ in stdenv.mkDerivation rec {
     (fetchpatch {
       url = "https://gitlab.gnome.org/GNOME/gnome-shell/commit/ffb8bd5fa7704ce70ce7d053e03549dd15dce5ae.patch";
       revert = true;
-      sha256 = "9DdzjEnDiBL+JmdfgKwjYPn1O2wJ/6n1sMDT1ylUB5I=";
+      sha256 = "14h7ahlxgly0n3sskzq9dhxzbyb04fn80pv74vz1526396676dzl";
     })
   ];
 
+  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/gnome-software/default.nix b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
index 46201629ce7..9f51227f235 100644
--- a/pkgs/desktops/gnome-3/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
@@ -11,11 +11,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gnome-software";
-  version = "3.36.0";
+  version = "3.36.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-software/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0b5b1k0a531c2jyf4g59dw7lblga8xrba38mzfdl57dnknbvbafs";
+    sha256 = "0vkgpy2afb33rrk94zqlm2q728xhzjj8s24n9wh9ylw00z3nckad";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
index 82ec3c9a9d7..2dd4ae9e7f7 100644
--- a/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-system-monitor";
-  version = "3.36.0";
+  version = "3.36.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-system-monitor/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1gipjaw708lv1zj1c9g09x4h4226kawam2kzdhdd6zjkzfghp9s0";
+    sha256 = "18dwwwmw4m2kzvfmxyaxmnm66d1plwvh6c6naznb0xac1ymlfsw6";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix
index 3274044bde9..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.2";
+  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 = "1x6svmd1k6w6a2m6ssq4hi997nxyq6z64fjjaid97z2rn177dcvm";
+    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/nautilus/default.nix b/pkgs/desktops/gnome-3/core/nautilus/default.nix
index b926f9b627f..6145178de1e 100644
--- a/pkgs/desktops/gnome-3/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome-3/core/nautilus/default.nix
@@ -32,11 +32,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nautilus";
-  version = "3.36.2";
+  version = "3.36.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1yknaz8n0l949sr8j3b7kdm0cm5mx2dp4n4k577m492hk6akqrr6";
+    sha256 = "1y0fsd7j48v4qkc051cg41mz7jycgw4vd4g37lw682p7n5xgrjmn";
   };
 
   nativeBuildInputs = [
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 d38339425ce..eebd307a306 100644
--- a/pkgs/desktops/gnome-3/core/simple-scan/default.nix
+++ b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
@@ -1,24 +1,60 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, itstool, python3, wrapGAppsHook
-, cairo, gdk-pixbuf, colord, glib, gtk3, gusb, packagekit, libwebp
-, libxml2, sane-backends, vala, gnome3, gobject-introspection }:
+{ stdenv
+, fetchurl
+, meson
+, ninja
+, pkgconfig
+, gettext
+, itstool
+, python3
+, wrapGAppsHook
+, cairo
+, gdk-pixbuf
+, colord
+, glib
+, gtk3
+, gusb
+, packagekit
+, libwebp
+, libxml2
+, sane-backends
+, vala
+, gnome3
+, gobject-introspection
+}:
 
 stdenv.mkDerivation rec {
   pname = "simple-scan";
-  version = "3.36.2";
+  version = "3.36.4";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/simple-scan/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1ya4k63q75w8xwv3vrk1gvbvbpxq876dvnkn3ym1wxzfd29pznxf";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "09gmzrlljdqkj3w6wa1c27wypy6j8z9dw3jzv9izfqvp38liibsn";
   };
 
-  buildInputs = [
-    cairo gdk-pixbuf colord glib gnome3.adwaita-icon-theme gusb
-    gtk3 libwebp packagekit sane-backends vala
-  ];
   nativeBuildInputs = [
-    meson ninja gettext itstool pkgconfig python3 wrapGAppsHook libxml2
-    # For setup hook
-    gobject-introspection
+    meson
+    ninja
+    gettext
+    itstool
+    pkgconfig
+    python3
+    wrapGAppsHook
+    libxml2
+    gobject-introspection # For setup hook
+  ];
+
+  buildInputs = [
+    cairo
+    gdk-pixbuf
+    colord
+    glib
+    gnome3.adwaita-icon-theme
+    gusb
+    gtk3
+    libwebp
+    packagekit
+    sane-backends
+    vala
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index 9d34fc0f40c..846eefa9fa9 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -164,8 +164,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   ghex = callPackage ./apps/ghex { };
 
-  glade = callPackage ./apps/glade { };
-
   gnome-books = callPackage ./apps/gnome-books { };
 
   gnome-boxes = callPackage ./apps/gnome-boxes { };
@@ -352,6 +350,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   inherit (pkgs) networkmanagerapplet; # added 2019-12-12
 
+  inherit (pkgs) glade; # added 2020-05-15
+
   vino = throw "vino is deprecated, use gnome-remote-desktop instead."; # added 2020-03-13
 
   gnome-screensaver = throw "gnome-screensaver is deprecated. If you are using GNOME Flashback, it now has a built-in lock screen. If you are using it elsewhere, you can try xscreenlock or other alternatives."; # added 2020-03-19
diff --git a/pkgs/desktops/gnome-3/extensions/appindicator/default.nix b/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
index cf9ca9999d7..5f34d079114 100644
--- a/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     owner = "Ubuntu";
     repo = "gnome-shell-extension-appindicator";
     rev = "v${version}";
-    sha256 = "B039bgg5b63oaHp1Z36k9Dh5FLr8fmfxI25ZgIA+p2I=";
+    sha256 = "0qm77s080nbf4gqnfzpwp8a7jf7lliz6fxbsd3lasvrr11pgsk87";
   };
 
   # This package has a Makefile, but it's used for building a zip for
@@ -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/chrome-gnome-shell/default.nix b/pkgs/desktops/gnome-3/extensions/chrome-gnome-shell/default.nix
index 1e3815705cd..5308d4bee5a 100644
--- a/pkgs/desktops/gnome-3/extensions/chrome-gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/chrome-gnome-shell/default.nix
@@ -1,29 +1,56 @@
-{stdenv, fetchurl, cmake, ninja, jq, python3, gnome3, wrapGAppsHook}:
+{ stdenv
+, fetchurl
+, cmake
+, ninja
+, jq
+, python3
+, gnome3
+, wrapGAppsHook
+, gobject-introspection
+}:
 
 let
-  version = "10.1";
-
   inherit (python3.pkgs) python pygobject3 requests;
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   pname = "chrome-gnome-shell";
-  inherit version;
+  version = "10.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/chrome-gnome-shell/${version}/${pname}-${version}.tar.xz";
     sha256 = "0f54xyamm383ypbh0ndkza0pif6ljddg2f947p265fkqj3p4zban";
   };
 
-  nativeBuildInputs = [ cmake ninja jq wrapGAppsHook ];
-  buildInputs = [ gnome3.gnome-shell python pygobject3 requests ];
+  nativeBuildInputs = [
+    cmake
+    ninja
+    jq
+    wrapGAppsHook
+    gobject-introspection # for setup-hook
+  ];
+
+  buildInputs = [
+    gnome3.gnome-shell
+    python
+    pygobject3
+    requests
+    gobject-introspection # for Gio typelib
+  ];
+
+  cmakeFlags = [
+    "-DBUILD_EXTENSION=OFF"
+  ];
+
+  wrapPrefixVariables = [
+    "PYTHONPATH"
+  ];
 
-  preConfigure = ''
-    substituteInPlace CMakeLists.txt --replace "/etc" "$out/etc"
-  '';
   # cmake setup hook changes /etc/opt into /var/empty
   dontFixCmake = true;
 
-  cmakeFlags = [ "-DBUILD_EXTENSION=OFF" ];
-  wrapPrefixVariables = [ "PYTHONPATH" ];
+  preConfigure = ''
+    substituteInPlace CMakeLists.txt --replace "/etc" "$out/etc"
+  '';
 
   passthru = {
     updateScript = gnome3.updateScript {
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-dock/default.nix b/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix
index 5a546bd1579..1170b9c5b62 100644
--- a/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     repo = "dash-to-dock";
     # rev = "extensions.gnome.org-v" + version;
     rev = "1788f31b049b622f78d0e65c56bef76169022ca9";
-    sha256 = "M3tlRbQ1PjKvNrKNtg0+CBEtzLSFQYauXJXQojdkHuk=";
+    sha256 = "1s8ychvs5l4mbjp8chc5nk62s4887q6vd3dj6spk4gimni2nayrk";
   };
 
   nativeBuildInputs = [
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 e97b34460d0..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 = "A8Ft+tLNv8KlTnVUzrWGavBWpP0u2rhkuG5LZls1A24=";
+    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 db113924ae6..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 = "35";
+  version = "39";
 
   src = fetchFromGitHub {
     owner = "andyholmes";
     repo = "gnome-shell-extension-gsconnect";
     rev = "v${version}";
-    sha256 = "GqM2S9FIOHw+8AK2K7fpEBq34JqgKRCsW8I9Ve6c6IM=";
+    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 c16f7bc4209..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
 }:
 
@@ -11,16 +12,25 @@ stdenv.mkDerivation rec {
     owner = "JasonLG1979";
     repo = "gnome-shell-extension-mpris-indicator-button";
     rev = "de54160e7d905b8c48c0fe30a437f7c51efc1aa3";
-    sha256 = "k/NLmDrlaOsMkwLye7YGQhaQvOMNfhCsDVh2F0qnuFg=";
+    sha256 = "0n5qlx51fxjq1nn10zhdwfy905j20sv7pwh2jc6fns757ac4pwwk";
   };
 
   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 6fa1840bbb1..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
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     owner = "kgshank";
     repo = "gse-sound-output-device-chooser";
     rev = version;
-    sha256 = "JmDUi6xTMbkMzW+hYJuKtjQj4ERctaiHr6eLsl5Fru4=";
+    sha256 = "1vmf8mgb52x7my3sidaw8kh26d5niadn18bgrl6bjcakmj5x8q16";
   };
 
   patches = [
@@ -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 adcaf3126f3..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 = "LTDkKSKvReJxBzAERE+vV+uJBNZw6UyhiB7kN48BZCo=";
+    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 1523da990e3..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.2";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/four-in-a-row/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1pjwaly0f36gn8ashf19b6w1yldmqpa8grdxcyb6h7b0k3bd54z6";
+    sha256 = "1y1ihh72zk0bgyj197dpwgwj1q91dhvp0rasrib8k18sisrdq31h";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-chess/default.nix b/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
index 21348370579..7747676f09e 100644
--- a/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-chess";
-  version = "3.36.0";
+  version = "3.36.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-chess/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1a9fgi749gy1f60vbcyrqqkab9vqs42hji70q73k1xx8rv0agmg0";
+    sha256 = "165bk8s3nngyqbikggspj4rff5nxxfkfcmgzjb4grmsrgbqwk5di";
   };
 
   nativeBuildInputs = [ meson ninja vala pkgconfig gettext itstool libxml2 python3 wrapGAppsHook gobject-introspection ];
diff --git a/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix b/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
index ac15ebadce9..eb6f4b10dbd 100644
--- a/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
@@ -5,13 +5,13 @@
 
 let
   pname = "gnome-klotski";
-  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 = "1w7fp79hc2v98r7ffg57d6na3wwr355gg9jrdd7w2ad362dfg1kw";
+    sha256 = "0fj1hlkqpjdb4hxd0di16ahm5j2r5j218ckyk88pmhjf8whb2g6z";
   };
 
   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 ad549a7c682..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.2";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-taquin/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0pi8kxici7p3jys8673ib0kigpif4mfkq0zlq48rsibhdqfhrlij";
+    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 7061610ced1..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.2";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-tetravex/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0qf6s3gl5qrs5rwsgx0191b0xyknhz2n9whx5i6ma5yw5ikslmq4";
+    sha256 = "0amnmd12mpny3vnf946wnphlsnbvjrvkx29sarplm57m1571qdc5";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/games/iagno/default.nix b/pkgs/desktops/gnome-3/games/iagno/default.nix
index c3df9bd1099..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.2";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/iagno/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0hgn2iqvnfiiwm57bir28dz61b1kkp1zh6av8f342q153rxx10g6";
+    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-applets/default.nix b/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
index bc2afb51979..a33376618c2 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
@@ -24,13 +24,13 @@
 
 let
   pname = "gnome-applets";
-  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 = "1hlblnajjkvlcd45lxfdxscx7j51nwyvri5jci6ylgpaxlwwm1s8";
+    sha256 = "1cd7y2air9cjznqmnynadbsayvq4dpsi39avnz46vv0bavx1aiwz";
   };
 
   nativeBuildInputs = [
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/gnome-3/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/misc/gpaste/default.nix
index b6a88e5864b..59b87c3367f 100644
--- a/pkgs/desktops/gnome-3/misc/gpaste/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gpaste/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     owner = "Keruspe";
     repo = "GPaste";
     rev = "v${version}";
-    sha256 = "sR7/NdCaidP03xE64nqQc1M+xAIipOuKp5OWBJ4VN9w=";
+    sha256 = "1p1p2ng095lkly5fp9120b23wlvkj1xf4fhivzsd72css0szy7mi";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnustep/back/default.nix b/pkgs/desktops/gnustep/back/default.nix
index 54ea8dcf487..bf6441f6820 100644
--- a/pkgs/desktops/gnustep/back/default.nix
+++ b/pkgs/desktops/gnustep/back/default.nix
@@ -8,13 +8,13 @@
 , libXmu
 }:
 let
-  version = "0.27.0";
+  version = "0.28.0";
 in
 gsmakeDerivation {
   name = "gnustep-back-${version}";
   src = fetchurl {
     url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-back-${version}.tar.gz";
-    sha256 = "0j400892ysxygh50i3918nn87vkxh15h892jwvphmkd34j8wdn9f";
+    sha256 = "1ynd27zwga17mp2qlym90k2xsypdvz24w6gyy2rfvmv0gkvlgrjr";
   };
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ cairo base gui freetype xlibsWrapper libXmu ];
diff --git a/pkgs/desktops/gnustep/base/default.nix b/pkgs/desktops/gnustep/base/default.nix
index 7017100565c..deeca1d600f 100644
--- a/pkgs/desktops/gnustep/base/default.nix
+++ b/pkgs/desktops/gnustep/base/default.nix
@@ -12,13 +12,13 @@
 , libiberty
 }:
 let
-  version = "1.26.0";
+  version = "1.27.0";
 in
 gsmakeDerivation {
   name = "gnustep-base-${version}";
   src = fetchurl {
     url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-base-${version}.tar.gz";
-    sha256 = "0ws16rwqx0qvqpyjsxbdylfpkgjr19nqc9i3b30wywqcqrkc12zn";
+    sha256 = "10xjrv5d443wzll6lf9y65p6v9kvx7xxklhsm1j05y93vwgzl0w8";
   };
   nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [
diff --git a/pkgs/desktops/gnustep/gorm/default.nix b/pkgs/desktops/gnustep/gorm/default.nix
index c977c61dd09..3817edad36b 100644
--- a/pkgs/desktops/gnustep/gorm/default.nix
+++ b/pkgs/desktops/gnustep/gorm/default.nix
@@ -1,13 +1,13 @@
 { fetchurl, base, back, gsmakeDerivation, gui }:
 let
-  version = "1.2.24";
+  version = "1.2.26";
 in
 gsmakeDerivation {
   name = "gorm-${version}";
-  
+
   src = fetchurl {
     url = "ftp://ftp.gnustep.org/pub/gnustep/dev-apps/gorm-${version}.tar.gz";
-    sha256 = "1jw7vm5ia7ias1mm5if7vvvb66q50zwiqw0ksj5g14f11v8l61rf";
+    sha256 = "063f8rlz8py931hfrh95jxvr68bzs33bvckfigzbagp73n892jnw";
   };
   buildInputs = [ base back gui ];
 
diff --git a/pkgs/desktops/gnustep/gui/default.nix b/pkgs/desktops/gnustep/gui/default.nix
index 72d109b6979..e945af64d90 100644
--- a/pkgs/desktops/gnustep/gui/default.nix
+++ b/pkgs/desktops/gnustep/gui/default.nix
@@ -1,12 +1,12 @@
 { gsmakeDerivation, fetchurl, base }:
 let
-  version = "0.27.0";
+  version = "0.28.0";
 in
 gsmakeDerivation {
   name = "gnustep-gui-${version}";
   src = fetchurl {
     url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-gui-${version}.tar.gz";
-    sha256 = "1m6k3fa2ndxv0kl2fazi76mwa27gn5jyp24q0rk96f2djhsy94br";
+    sha256 = "05wk8kbl75qj0jgawgyv9sp98wsgz5vl1s0d51sads0p0kk2sv8z";
   };
   buildInputs = [ base ];
   patches = [ ./fixup-all.patch ];
diff --git a/pkgs/desktops/gnustep/libobjc2/default.nix b/pkgs/desktops/gnustep/libobjc2/default.nix
index 10c10c33a95..0124e91a9b7 100644
--- a/pkgs/desktops/gnustep/libobjc2/default.nix
+++ b/pkgs/desktops/gnustep/libobjc2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libobjc2";
-  version = "2.0";
+  version = "1.9";
 
   src = fetchFromGitHub {
     owner = "gnustep";
     repo = "libobjc2";
     rev = "v${version}";
-    sha256 = "1b4h0a4pqr8j6300qr2wmi33r7ysvp705gs0ypx69hbmifln0mlf";
+    sha256 = "00pscl3ly3rv6alf9vk70kxnnxq2rfgpc1ylcv6cgjs9jxdnrqmn";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/desktops/gnustep/make/default.nix b/pkgs/desktops/gnustep/make/default.nix
index 9b8692f0da5..9b803be0251 100644
--- a/pkgs/desktops/gnustep/make/default.nix
+++ b/pkgs/desktops/gnustep/make/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, clang, which, libobjc }:
 
 let
-  version = "2.7.0";
+  version = "2.8.0";
 in
 
 stdenv.mkDerivation {
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-${version}.tar.gz";
-    sha256 = "1khiygfkz0zhh9b5nybn40g0xnnjxchk24n49hff1bwanszir84h";
+    sha256 = "0pfaylrr3xgn5026anmja4rv4l7nzzaqsrkxycyi0p4lvm12kklz";
   };
 
   configureFlags = [
diff --git a/pkgs/desktops/lumina/lumina-calculator/default.nix b/pkgs/desktops/lumina/lumina-calculator/default.nix
index aa74be8d5f3..7451fa3facf 100644
--- a/pkgs/desktops/lumina/lumina-calculator/default.nix
+++ b/pkgs/desktops/lumina/lumina-calculator/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, qmake, qtbase, qttools }:
+{ stdenv, mkDerivation, fetchFromGitHub, qmake, qtbase, qttools }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "lumina-calculator";
-  version = "2019-04-27";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "lumina-desktop";
     repo = pname;
-    rev = "ccb792fc713aa7163fffd37fc20c83ffe9ca7523";
-    sha256 = "0cdyz94znycsc3qxg5bmg51bwms7586d4ja1bsmj8cb9pd3lv980";
+    rev = "v${version}";
+    sha256 = "1238d1m0mjkwkdpgq165a4ql9aql0aji5f41rzdzny6m7ws9nm2y";
   };
   
   sourceRoot = "source/src-qt5";
diff --git a/pkgs/desktops/lumina/lumina-pdf/default.nix b/pkgs/desktops/lumina/lumina-pdf/default.nix
index af9d469e1be..b4e5039af1f 100644
--- a/pkgs/desktops/lumina/lumina-pdf/default.nix
+++ b/pkgs/desktops/lumina/lumina-pdf/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, qmake, qtbase, qttools, poppler }:
+{ stdenv, mkDerivation, fetchFromGitHub, qmake, qtbase, qttools, poppler }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "lumina-pdf";
-  version = "2019-04-27";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "lumina-desktop";
     repo = pname;
-    rev = "645ed591ef91c3607d3ab87dd86f7acfd08b05c9";
-    sha256 = "0gl943jb9c9rcgb5wksx3946hwlifghfd27r97skm9is8ih6k0vn";
+    rev = "v${version}";
+    sha256 = "08caj4nashp79fbvj94rabn0iaa1hymifqmb782x03nb2vkn38r6";
   };
   
   sourceRoot = "source/src-qt5";
diff --git a/pkgs/desktops/lumina/lumina/default.nix b/pkgs/desktops/lumina/lumina/default.nix
index 048b559c34a..ff1810db6e6 100644
--- a/pkgs/desktops/lumina/lumina/default.nix
+++ b/pkgs/desktops/lumina/lumina/default.nix
@@ -1,28 +1,29 @@
-{ stdenv,
-  fetchFromGitHub,
-  desktop-file-utils,
-  fluxbox,
-  numlockx,
-  qmake,
-  qtbase,
-  qtmultimedia,
-  qtsvg,
-  qttools,
-  qtx11extras,
-  xorg,
-  xscreensaver,
-  wrapGAppsHook
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, fluxbox
+, libarchive
+, numlockx
+, qmake
+, qtbase
+, qtmultimedia
+, qtsvg
+, qttools
+, qtx11extras
+, xorg
+, xscreensaver
+, wrapGAppsHook
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "lumina";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "lumina-desktop";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0rj2gzifr98db7i82cg3hg7l5yfik810pjpawg6n54qbzq987z25";
+    sha256 = "0bvs12c9pkc6fnkfcr7rrxc8jfbzbslch4nlfjrzwi203fcv4avw";
   };
 
   nativeBuildInputs = [
@@ -32,19 +33,19 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    xorg.libxcb
-    xorg.libXcursor
-    xorg.libXdamage
-    xorg.xcbutilwm
-    xorg.xcbutilimage
+    fluxbox # window manager for Lumina DE
+    libarchive # make `bsdtar` available for lumina-archiver
+    numlockx # required for changing state of numlock at login
     qtbase
-    qtsvg
     qtmultimedia
+    qtsvg
     qtx11extras
-    fluxbox
+    xorg.libXcursor
+    xorg.libXdamage
+    xorg.libxcb
+    xorg.xcbutilimage
+    xorg.xcbutilwm
     xscreensaver
-    desktop-file-utils
-    numlockx
   ];
 
   patches = [
@@ -66,6 +67,15 @@ stdenv.mkDerivation rec {
     # Fix location of fluxbox styles
     substituteInPlace src-qt5/core-utils/lumina-config/pages/page_fluxbox_settings.cpp \
       --replace 'LOS::AppPrefix()+"share/fluxbox' "\"${fluxbox}/share/fluxbox"
+
+    # Add full path of bsdtar to lumina-archiver
+    substituteInPlace src-qt5/desktop-utils/lumina-archiver/TarBackend.cpp \
+      --replace '"bsdtar"' '"${stdenv.lib.getBin libarchive}/bin/bsdtar"'
+
+    # Fix desktop files
+    for i in $(grep -lir 'OnlyShowIn=Lumina' src-qt5); do
+      substituteInPlace $i --replace 'OnlyShowIn=Lumina' 'OnlyShowIn=X-Lumina'
+    done
   '';
 
   qmakeFlags = [
@@ -74,6 +84,8 @@ stdenv.mkDerivation rec {
     "LRELEASE=${stdenv.lib.getDev qttools}/bin/lrelease"
   ];
 
+  passthru.providedSessions = [ "Lumina-DE" ];
+
   meta = with stdenv.lib; {
     description = "A lightweight, portable desktop environment";
     longDescription = ''
diff --git a/pkgs/desktops/lxde/core/lxappearance/default.nix b/pkgs/desktops/lxde/core/lxappearance/default.nix
index ea64b75214f..b838c19afc8 100644
--- a/pkgs/desktops/lxde/core/lxappearance/default.nix
+++ b/pkgs/desktops/lxde/core/lxappearance/default.nix
@@ -1,26 +1,42 @@
-{ stdenv, fetchurl, intltool, pkgconfig, libX11, gtk2, withGtk3 ? false, gtk3 }:
+{ stdenv
+, fetchurl
+, intltool
+, pkg-config
+, libX11
+, gtk2
+, gtk3
+, withGtk3 ? true
+}:
 
 stdenv.mkDerivation rec {
   name = "lxappearance-0.6.3";
 
-  src = fetchurl{
+  src = fetchurl {
     url = "mirror://sourceforge/project/lxde/LXAppearance/${name}.tar.xz";
     sha256 = "0f4bjaamfxxdr9civvy55pa6vv9dx1hjs522gjbbgx7yp1cdh8kj";
   };
 
-  nativeBuildInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [
+    pkg-config
+    intltool
+  ];
 
-  buildInputs = [ libX11 (if withGtk3 then gtk3 else gtk2) ];
+  buildInputs = [
+    libX11
+    (if withGtk3 then gtk3 else gtk2)
+  ];
 
-  patches = [ ./lxappearance-0.6.3-xdg.system.data.dirs.patch ];
+  patches = [
+    ./lxappearance-0.6.3-xdg.system.data.dirs.patch
+  ];
 
   configureFlags = stdenv.lib.optional withGtk3 "--enable-gtk3";
 
-  meta = {
-    description = "A lightweight program for configuring the theme and fonts of gtk applications";
+  meta = with stdenv.lib; {
+    description = "Lightweight program for configuring the theme and fonts of gtk applications";
     homepage = "https://lxde.org/";
-    maintainers = [ stdenv.lib.maintainers.hinton ];
-    platforms = stdenv.lib.platforms.linux;
-    license = stdenv.lib.licenses.gpl2;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ hinton romildo ];
   };
 }
diff --git a/pkgs/desktops/lxqt/libfm-qt/default.nix b/pkgs/desktops/lxqt/libfm-qt/default.nix
index ba83f0e3167..fc97906ab7d 100644
--- a/pkgs/desktops/lxqt/libfm-qt/default.nix
+++ b/pkgs/desktops/lxqt/libfm-qt/default.nix
@@ -16,13 +16,13 @@
 
 mkDerivation rec {
   pname = "libfm-qt";
-  version = "0.15.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = "libfm-qt";
     rev = version;
-    sha256 = "0isshh627zr69kdmjxsy75i1nh95ky2wfhgy90g8j4zijpkdrd3l";
+    sha256 = "1gjxml6c9m3xn094zbr9835sr4749dpxk4nc0ap9lg27qim63gx3";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/liblxqt/default.nix b/pkgs/desktops/lxqt/liblxqt/default.nix
index e72593548cc..bd8181d57f6 100644
--- a/pkgs/desktops/lxqt/liblxqt/default.nix
+++ b/pkgs/desktops/lxqt/liblxqt/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "liblxqt";
-  version = "0.15.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1dqxsz8fy6xyzbkxhsymmr71yw4d5dwjgqd4rdjn0r9gk8ajrfzp";
+    sha256 = "01vfy7r7h0c5axlwqwsxg3pzdlaicnf2474bcq3jwk12gipvj5sd";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-archiver/default.nix b/pkgs/desktops/lxqt/lxqt-archiver/default.nix
index ae772272c4b..93e5ffec2a0 100644
--- a/pkgs/desktops/lxqt/lxqt-archiver/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-archiver/default.nix
@@ -14,13 +14,13 @@
 
 mkDerivation rec {
   pname = "lxqt-archiver";
-  version = "0.1.1";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = "lxqt-archiver";
     rev = version;
-    sha256 = "0c0y8sy12laqyanvy6mmnpjvy1yb8k3241pbxhc3nyl5zrq3hzdh";
+    sha256 = "1cip2dbvxbdlx1axz5sn4mwigwvfxb1q14byn09crv71adyfprw5";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-panel/default.nix b/pkgs/desktops/lxqt/lxqt-panel/default.nix
index 705d6aec793..a0bdd9bfae6 100644
--- a/pkgs/desktops/lxqt/lxqt-panel/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-panel/default.nix
@@ -3,40 +3,40 @@
 , fetchFromGitHub
 , cmake
 , pkgconfig
-, lxqt-build-tools
-, qtbase
-, qttools
-, qtx11extras
-, qtsvg
-, libdbusmenu
-, kwindowsystem
-, solid
+, alsaLib
 , kguiaddons
+, kwindowsystem
+, libXdamage
+, libdbusmenu
 , liblxqt
+, libpulseaudio
 , libqtxdg
-, lxqt-globalkeys
-, libsysstat
-, xorg
 , libstatgrab
+, libsysstat
 , lm_sensors
-, libpulseaudio
-, alsaLib
-, menu-cache
 , lxmenu-data
-, pcre
-, libXdamage
+, lxqt-build-tools
+, lxqt-globalkeys
 , lxqtUpdateScript
+, menu-cache
+, pcre
+, qtbase
+, qtsvg
+, qttools
+, qtx11extras
+, solid
+, xorg
 }:
 
 mkDerivation rec {
   pname = "lxqt-panel";
-  version = "0.15.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0k2gqf9f4g8fpny8p5m1anzk7mdxm9dgh6xlngz25nj4mshnq3xs";
+    sha256 = "0f3sjzkria61nz342daxps2w57wnx6laq9iww8hha7rbi24yw2sd";
   };
 
   nativeBuildInputs = [
@@ -46,28 +46,28 @@ mkDerivation rec {
   ];
 
   buildInputs = [
-    qtbase
-    qttools
-    qtx11extras
-    qtsvg
-    libdbusmenu
-    kwindowsystem
-    solid
+    alsaLib
     kguiaddons
+    kwindowsystem
+    libXdamage
+    libdbusmenu
     liblxqt
+    libpulseaudio
     libqtxdg
-    lxqt-globalkeys
-    libsysstat
-    xorg.libpthreadstubs
-    xorg.libXdmcp
     libstatgrab
+    libsysstat
     lm_sensors
-    libpulseaudio
-    alsaLib
-    menu-cache
     lxmenu-data
+    lxqt-globalkeys
+    menu-cache
     pcre
-    libXdamage
+    qtbase
+    qtsvg
+    qttools
+    qtx11extras
+    solid
+    xorg.libXdmcp
+    xorg.libpthreadstubs
   ];
 
   passthru.updateScript = lxqtUpdateScript { inherit pname version src; };
diff --git a/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix b/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix
index 02a43b4a8c1..7bdd628f458 100644
--- a/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix
@@ -2,26 +2,26 @@
 , mkDerivation
 , fetchFromGitHub
 , cmake
-, lxqt-build-tools
-, qtbase
-, qtx11extras
-, qttools
-, qtsvg
 , libdbusmenu
-, libqtxdg
 , libfm-qt
+, libqtxdg
+, lxqt-build-tools
 , lxqtUpdateScript
+, qtbase
+, qtsvg
+, qttools
+, qtx11extras
 }:
 
 mkDerivation rec {
   pname = "lxqt-qtplugin";
-  version = "0.15.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "17x5jr78rbsf4pbvc4y3wwkpvsmynzkxy2ifvwhqyc2gmjspp8il";
+    sha256 = "0if01bdhz8ph4k1mwvjjjw0fw6mxzprgz17ap23xbsdr009hxdf0";
   };
 
   nativeBuildInputs = [
@@ -30,13 +30,13 @@ mkDerivation rec {
   ];
 
   buildInputs = [
-    qtbase
-    qtx11extras
-    qttools
-    qtsvg
     libdbusmenu
-    libqtxdg
     libfm-qt
+    libqtxdg
+    qtbase
+    qtsvg
+    qttools
+    qtx11extras
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/lxqt/pcmanfm-qt/default.nix b/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
index f5a5b18cfc0..599dd67828c 100644
--- a/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
+++ b/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "pcmanfm-qt";
-  version = "0.15.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "16zwd2jfrmsnzfpywirkrpyilq1jj99liwvg77l20b1dbql9dc0q";
+    sha256 = "12rzcv5n4s299c8787islkn4xcjb9bbrj12mxcd5ii91jq39aii4";
   };
 
   nativeBuildInputs = [
@@ -42,6 +42,10 @@ mkDerivation rec {
 
   passthru.updateScript = lxqtUpdateScript { inherit pname version src; };
 
+  postPatch = ''
+    substituteInPlace config/pcmanfm-qt/lxqt/settings.conf.in --replace @LXQT_SHARE_DIR@ /run/current-system/sw/share/lxqt
+  '';
+
   meta = with lib; {
     description = "File manager and desktop icon manager (Qt port of PCManFM and libfm)";
     homepage = "https://github.com/lxqt/pcmanfm-qt";
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/maxx/default.nix b/pkgs/desktops/maxx/default.nix
deleted file mode 100644
index fc48514ff01..00000000000
--- a/pkgs/desktops/maxx/default.nix
+++ /dev/null
@@ -1,77 +0,0 @@
-{ stdenv, fetchurl, makeWrapper, autoPatchelfHook, gnused
-, gcc, bash, gtk-engine-murrine, gtk_engines, librsvg
-
-, libX11, libXext, libXi, libXau, libXrender, libXft, libXmu, libSM, libXcomposite, libXfixes, libXpm
-, libXinerama, libXdamage, libICE, libXtst, libXaw, fontconfig, pango, cairo, glib, libxml2, atk, gtk2
-, gdk-pixbuf, libGL, ncurses5
-
-, dmidecode, pciutils, usbutils
-}:
-
-stdenv.mkDerivation rec {
-  pname = "MaXX";
-  version = "2.0.1";
-  codename = "Indigo";
-
-  srcs = [
-    (fetchurl {
-      url = "http://maxxdesktop.arcadedaydream.com/${codename}-Releases/Installers/MaXX-${codename}-${version}-x86_64.tar.gz";
-      sha256 = "17hd3j8773kmvvhyf657in6zmhnw4mbvyn4r6dfip5bdaz66pj01";
-    })
-  ];
-
-  nativeBuildInputs = [ makeWrapper autoPatchelfHook gnused ];
-  buildInputs = [
-    stdenv.cc.cc libX11 libXext libXi libXau libXrender libXft libXmu libSM libXcomposite libXfixes libXpm
-    libXinerama libXdamage libICE libXtst libXaw fontconfig pango cairo glib libxml2 atk gtk2
-    gdk-pixbuf libGL ncurses5
-  ];
-
-  buildPhase = ''
-    sed -i "s/\(LD_LIBRARY_PATH=.*\)$/\1:\$LD_LIBRARY_PATH/p" etc/system.desktopenv
-
-    substituteInPlace bin/adminterm \
-      --replace /bin/bash ${bash}/bin/bash
-
-    substituteInPlace share/misc/HOME/initMaXX-Desktop-Home.sh \
-      --replace "cp " "cp --no-preserve=mode "
-  '';
-
-  installPhase = ''
-    maxx=$out/opt/MaXX
-    mkdir -p "$maxx" $out/share $maxx/sbin
-
-    mv -- ./* "$maxx"
-    ln -s $maxx/share/icons $out/share
-
-    wrapProgram $maxx/etc/skel/Xsession.dt \
-      --prefix GTK_PATH : "${gtk-engine-murrine}/lib/gtk-2.0:${gtk_engines}/lib/gtk-2.0" \
-      --prefix GDK_PIXBUF_MODULE_FILE : "$(echo ${librsvg.out}/lib/gdk-pixbuf-2.0/*/loaders.cache)"
-
-    while IFS= read -r -d ''$'\0' i; do
-      if isExecutable "$i"; then
-        wrapProgram "$i" \
-          --prefix PATH : ${gcc}/bin
-      fi
-    done < <(find "$maxx" -type f -print0)
-
-    wrapProgram $maxx/bin/hinv \
-      --prefix PATH : ${stdenv.lib.makeBinPath [ dmidecode pciutils usbutils ]}
-  '';
-
-  meta = with stdenv.lib; {
-    description = "A replica of IRIX Interactive Desktop";
-    homepage = "https://www.facebook.com/maxxdesktop/";
-    license = {
-      fullName = "The MaXX Interactive Desktop for Linux License Agreement";
-      url = "http://maxxdesktop.arcadedaydream.com/Indigo-Releases/docs/license.html";
-      free = false; # redistribution is only allowed to *some* hardware, etc.
-    };
-    maintainers = [ maintainers.gnidorah ];
-    platforms = ["x86_64-linux"];
-    longDescription = ''
-      A clone of IRIX Interactive Desktop made in agreement with SGI.
-      Provides simple and fast retro desktop environment.
-    '';
-  };
-}
diff --git a/pkgs/desktops/pantheon/apps/appcenter/default.nix b/pkgs/desktops/pantheon/apps/appcenter/default.nix
index 656428fa7f0..24323893838 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.2.4";
+  version = "3.4.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0nhgf5lgy74liml3kzijldan3qgrxh2721yvjdk4jf83b0g1b7yb";
+    sha256 = "1bwkjxl4k49hvy88llif82hdancda9692vjwkw4bxy2cbz8444zx";
   };
 
   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..058148e07c8 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
@@ -30,7 +31,7 @@ stdenv.mkDerivation rec {
   };
 
   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 ec11ae7516b..cdb5e860650 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.4";
+  version = "5.0.6";
 
   repoName = "calendar";
 
@@ -33,11 +34,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0ywk9w6d6nw7ir3f11xc13fr08ifvzpavq1c3x48kmmf69ywprdk";
+    sha256 = "0lmadk4yzf1kiiqshwqcxzcyia1haq1avv6pyzvsaywxhqwdsini";
   };
 
   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..9874d87eae9 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
@@ -35,7 +36,7 @@ stdenv.mkDerivation rec {
   };
 
   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 82036c8b8e2..635b5cfc735 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
@@ -27,7 +28,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-code";
-  version = "3.4.0";
+  version = "3.4.1";
 
   repoName = "code";
 
@@ -35,11 +36,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0b1vdgb1xvh5lqbral3r0qaq05zd5q5ywxw02fggpyy8nyxs3z8f";
+    sha256 = "158zrzyyy507rxcbsb5am9768zbakpwrl61ixab57zla7z51l0g0";
   };
 
   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..1e3db99bab5 100644
--- a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
@@ -27,7 +27,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-dock";
-  version = "unstable-2020-02-28";
+  version = "unstable-2020-06-11";
 
   outputs = [ "out" "dev" ];
 
@@ -36,8 +36,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "elementary";
     repo = repoName;
-    rev = "ac87d9063dc9c81d90f42f3002ad9c5b49460a82";
-    sha256 = "0lhjzd370fza488dav8n155ss486wqv6y7ldkahwg0c3zvlsvha7";
+    rev = "0a389ee58939d8c91c340df4e5340fc4b23d0b80";
+    sha256 = "01vinik73s0vmk56samgf49zr2bl4wjv44x15sz2cmh744llckja";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
index e54841275f6..3b257b0812f 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
@@ -30,7 +31,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
index ed557da5449..f6215e5025b 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
@@ -30,7 +31,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-files";
-  version = "4.4.2";
+  version = "4.4.4";
 
   repoName = "files";
 
@@ -40,11 +41,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1n18b3m3vgvmmgpfbgnfnz0z98bkgbfrfkx25jqbwsdnwrlb4li6";
+    sha256 = "1hsh9kg30l90r2aqrrap1nfmgjf0la8mfd8h4xm6d7acailcnhmb";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/elementary-music/default.nix b/pkgs/desktops/pantheon/apps/elementary-music/default.nix
index 85739a6ec2e..8849965edde 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
@@ -41,7 +42,7 @@ stdenv.mkDerivation rec {
   };
 
   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..252791df1d5 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
@@ -45,7 +46,7 @@ stdenv.mkDerivation rec {
   };
 
   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..611e683491f 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
@@ -29,7 +30,7 @@ stdenv.mkDerivation rec {
   };
 
   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..c7c1c8780ed 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
@@ -34,7 +35,7 @@ stdenv.mkDerivation rec {
   };
 
   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..03b730cecac 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 = "07dwhshdc78wia0fsbzz6iv651znzzasfil91w60v29kgc4s2b1i";
   };
 
   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 01048d881d5..05f0f40db4a 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
@@ -21,17 +22,17 @@
 
 stdenv.mkDerivation rec {
   pname = "sideload";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1nnaq4vc0aag6pckxhrma5qv8al7i00rrlg95ac4iqqmivja7i92";
+    sha256 = "0mlc3nm2navzxm8k1rwpbw4w6mv30lmhqybm8jqxd4v8x7my73vq";
   };
 
   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..d7a50fc7e5c 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
@@ -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 76b4eeebdf1..3c810a5f4f3 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
@@ -16,17 +17,17 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-about";
-  version = "2.6.2";
+  version = "2.6.3";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1cjhip0abc0y5w6cqnjcgi48bfrackp45gz7955l66hxhnm5wyw6";
+    sha256 = "1zs2qmglh85ami07dnlq3lfwl5ikc4abvz94a35k6fhfs703lay2";
   };
 
   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..e5f423bea8a 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
@@ -23,7 +24,7 @@ stdenv.mkDerivation rec {
   };
 
   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 8ceaee93bdb..425d2785878 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
@@ -14,17 +15,17 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-bluetooth";
-  version = "2.3.1";
+  version = "2.3.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "06ws1swl2jg6a1b3m4b1v1rawgzs5k7rq4dcnd5v0czda110yhg0";
+    sha256 = "0ksxx45mm0cvnb5jphyxsf843rn2rgb0yxv9j0ydh2xp4qgvvyva";
   };
 
   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 adb6e187915..ee714e1962e 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
@@ -16,17 +17,17 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-datetime";
-  version = "2.1.7";
+  version = "2.1.9";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0lpmxl42r5vn6mddwppn6zwmai0yabs3n467w027vkzw4axdi6bf";
+    sha256 = "1kkd75kp24zq84wfmc00brqxximfsi4sqyx8a7rbl7zaspf182xa";
   };
 
   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 aaf980a313f..568d9bd24c8 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
@@ -13,17 +14,17 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-display";
-  version = "2.2.1";
+  version = "2.2.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1racp0mxiaix9afx25ryskdcyi335fz8yh8nwgdxbqbm6jpyq4zs";
+    sha256 = "0ijzm91gycx8iaf3sd8i07b5899gbryxd6klzjh122d952wsyfcs";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index 10468cdc553..5f55edb77c7 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
@@ -29,7 +30,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
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 956d53d6980..27c7db368da 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
@@ -15,17 +16,17 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-mouse-touchpad";
-  version = "2.4.1";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "19y1n05pc3j0px5pql5338vzrq6hjw209s8l2l70ha4i4r978qir";
+    sha256 = "0jfykvdpjlymnks8mhlv9957ybq7srqqq23isjvh0jvc2r3cd7sq";
   };
 
   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 04763c3dc3f..f6a22af75d7 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.0";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0pqkr7swjgla8klcjdcwgk2fipiwvylk8m71l1fymazvzwxrbxw6";
+    sha256 = "1k7925qrgjvh1x8ijhkh3p0z4ypgmx3lg21ygr8qhlp7xr3zm8d5";
   };
 
   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 b4564abd770..09c61e1625d 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
@@ -15,26 +16,17 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-notifications";
-  version = "2.1.6";
+  version = "2.1.7";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1ikq058svdan0whg4ks35m50apvbmzcz7h2wznxdbsimczzvj5sz";
+    sha256 = "02amm2j6blpfc16p5rm64p8shnppzsg49hz4v196mli5xr1r441h";
   };
 
-  patches = [
-    # Fix do not disturb on NixOS
-    # https://github.com/elementary/switchboard-plug-notifications/pull/66
-    (fetchpatch {
-      url = "https://github.com/elementary/switchboard-plug-notifications/commit/c306366b39c3199f0b64eda73419005fcb5e29b8.patch";
-      sha256 = "0m018rfw5iv582sw6qgwc8lzn0j32ix1w47fvlfmx0kw04irl2x3";
-    })
-  ];
-
   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..cbe65e68a61 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
@@ -30,7 +31,7 @@ stdenv.mkDerivation rec {
   };
 
   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..af65327fb82 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
@@ -1,4 +1,4 @@
-{ 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 }:
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
index 58c135d9c66..1405fb698d1 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
@@ -19,17 +20,17 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-power";
-  version = "2.4.1";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0hmchx0sfdm2c2f9khjvlaqcxmvzarn2vmwcdb3h5ifbj32vydzw";
+    sha256 = "0zbqv3bnwxapp9b442fjg9fizxmndva8vby5qicx0yy7l68in1xk";
   };
 
   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 1d71ae1f7cc..fcb1f26eb96 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
@@ -15,17 +16,17 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-printers";
-  version = "2.1.8";
+  version = "2.1.9";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0nnzwpfxkvgsw3g329926c3m7vci6vyb60qib7b9mpgicmsqnkvz";
+    sha256 = "1jxpq4rvkrii85imnipbw44zjinq1sc0cq39lssprzfd4g5hjw5n";
   };
 
   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 c07e48736d7..df62a0b34b6 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
@@ -18,17 +19,17 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-security-privacy";
-  version = "2.2.3";
+  version = "2.2.4";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1rgbw2kfcq7cdpvl6sy6r6d4iprm1j2n3knbnbxy8sylfc83bwri";
+    sha256 = "0177lsly8qpqsfas3qc263as77h2k35avhw9708h1v8bllb3l2sb";
   };
 
   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..515660739d3 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
@@ -24,7 +25,7 @@ stdenv.mkDerivation rec {
   };
 
   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 df553a515ea..6f89331593c 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.3";
+  version = "2.2.4";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1vpw06ldhy26xs5vp2gx5s8wbl42dznycp3jsnm5qp8iid8wl6l6";
+    sha256 = "1kwd3cj6kk5dnmhcrmf13adqrhhjv2j6j2i78cpqbi9yv2h7sv9y";
   };
 
   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 6b451931a46..99018790053 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
@@ -17,17 +18,17 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard";
-  version = "2.3.9";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0gq2gi14ywmhhlq3vablzqjzxq2ms60l9b10splzsf3zd7k2dqz2";
+    sha256 = "12xir2gssr0x21sgm5m620bvd6b6y8dcm26cj4s1wsn8qb59jx9p";
   };
 
   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..78267e1bdd4 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
@@ -20,7 +21,7 @@ stdenv.mkDerivation rec {
   };
 
   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 3d448954cca..39d23c05b74 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
@@ -1,18 +1,19 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , python3
 , ninja
 , hicolor-icon-theme
 , gtk3
-, inkscape
 , xorg
+, librsvg
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-icon-theme";
-  version = "5.2.0";
+  version = "5.3.1";
 
   repoName = "icons";
 
@@ -20,18 +21,18 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1irkjj8xfpgkl5p56xhqa3w2s98b8lav7d1lxxrabdi87cjv3n33";
+    sha256 = "0rs68cb39r9vq85pr8h3mgmyjpj8bkhkxr5cz4cn5947kf776wg9";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
 
   nativeBuildInputs = [
     gtk3
-    inkscape
+    librsvg
     meson
     ninja
     python3
diff --git a/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
index f95e6815305..2abe677d748 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
@@ -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..2d54580d3e6 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
@@ -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 4e8d8bfeb15..81cb4b51dc4 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
@@ -27,7 +28,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -62,7 +63,7 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "--sysconfdir=${placeholder "out"}/etc"
-    "-Ddefault-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png"
+    "-Ddefault-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}"
     "-Dplank-dockitems=false"
   ];
 
@@ -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 64c4509280a..42eb8fb3771 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
@@ -28,7 +29,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-greeter";
-  version = "5.0.3";
+  version = "5.0.4";
 
   repoName = "greeter";
 
@@ -36,11 +37,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1zbfcdgjn57r8pz01xrz6kk8rmviq133snz9f1vqhjdsznk82w5i";
+    sha256 = "1zrsvbd386f7r3jbvjf8j08v1n5cpzkbjjaj2lxvjn8b81xgwy8j";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
 
@@ -89,7 +90,7 @@ stdenv.mkDerivation rec {
     # Needed until https://github.com/elementary/greeter/issues/360 is fixed
     (substituteAll {
       src = ./hardcode-fallback-background.patch;
-      default_wallpaper = "${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png";
+      default_wallpaper = "${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}";
     })
   ];
 
@@ -113,7 +114,7 @@ stdenv.mkDerivation rec {
     # Use NixOS default wallpaper
     substituteInPlace $out/etc/lightdm/io.elementary.greeter.conf \
       --replace "#default-wallpaper=/usr/share/backgrounds/elementaryos-default" \
-      "default-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png"
+      "default-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}"
 
     substituteInPlace $out/share/xgreeters/io.elementary.greeter.desktop \
       --replace "Exec=io.elementary.greeter" "Exec=$out/bin/io.elementary.greeter"
diff --git a/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
index 02a87159aef..2bfa1c22088 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
@@ -20,7 +21,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-onboarding";
-  version = "1.2.0";
+  version = "1.2.1";
 
   repoName = "onboarding";
 
@@ -28,11 +29,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0yxafz7jlzj8gsbp6m72q4zbcvm1ch2y4fibj9cymjvz2i0izhba";
+    sha256 = "1cq9smvrnzc12gp6rzcdxc3x0sbgcch246r5m2c7m2561mfg1d5l";
   };
 
   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..0d6de8a77d5 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
@@ -22,7 +23,7 @@ stdenv.mkDerivation rec {
   };
 
   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 2cdb2c23507..798757ba726 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
@@ -17,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-shortcut-overlay";
-  version = "1.1.1";
+  version = "1.1.2";
 
   repoName = "shortcut-overlay";
 
@@ -25,11 +26,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "03wnc3vfnrkm5i7h370n7h2mbcmaxnhynmjs37q63vq6vq7agldb";
+    sha256 = "0v8fx58fn309glxi2zxxlnddw8lkmjr025f22ml3p483zkvbcm2c";
   };
 
   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 9b370847fc8..eb865d695e2 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
@@ -26,17 +28,17 @@
 
 stdenv.mkDerivation rec {
   pname = "gala";
-  version = "3.3.1";
+  version = "3.3.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "03cq9ihgjasnv1n4v3dn1m3ypzj26k2ybd5b1a7yrbprb35zbrs4";
+    sha256 = "1qd8ynn04rzkki68w4x3ryq6fhlbi6mk359rx86a8ni084fsprh4";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -69,6 +71,13 @@ stdenv.mkDerivation rec {
   ];
 
   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 7adcdb21d78..45141dc1d3d 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
@@ -22,11 +23,12 @@
 , wingpanel
 , zeitgeist
 , bc
+, libhandy
 }:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-applications-menu";
-  version = "2.6.0";
+  version = "2.7.1";
 
   repoName = "applications-menu";
 
@@ -34,11 +36,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "16ki1x6697jmfqajynx2zvwqrpjpshnd08y7vf6g7xc7zwwh38c5";
+    sha256 = "0wsfvyp0z6c612nl348dr6sar0qghhfcgkzcx3108x8v743v7rim";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -60,6 +62,7 @@ stdenv.mkDerivation rec {
     gtk3
     json-glib
     libgee
+    libhandy
     libsoup
     libunity
     plank
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
index 979d6af8f0c..310f908d35d 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
@@ -27,7 +28,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/207.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/207.patch
deleted file mode 100644
index c4d6d8574a5..00000000000
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/207.patch
+++ /dev/null
@@ -1,4726 +0,0 @@
-From 20228e34bf97f67b1dd542a22e92cd90f0db5c72 Mon Sep 17 00:00:00 2001
-From: Dirli <litandrej85@gmail.com>
-Date: Thu, 9 Apr 2020 16:30:16 +0300
-Subject: [PATCH 1/8] added a single namespace
-
----
- meson.build                                   |  14 +-
- src/DateIterator.vala                         |  82 -----
- src/DateRange.vala                            |  66 ----
- src/Indicator.vala                            | 341 +++++++++---------
- .../calendar => Models}/CalendarModel.vala    |   4 +-
- src/Services/TimeManager.vala                 | 230 ++++++------
- src/Util/DateIterator.vala                    |  84 +++++
- src/Util/DateRange.vala                       |  68 ++++
- src/{Widgets/calendar => Util}/Util.vala      |   8 +-
- src/Widgets/CalendarView.vala                 | 185 ++++++++++
- src/Widgets/EventRow.vala                     | 184 +++++-----
- src/Widgets/{calendar => }/Grid.vala          |  12 +-
- src/Widgets/GridDay.vala                      | 180 +++++++++
- src/Widgets/PanelLabel.vala                   |  80 ++--
- src/Widgets/calendar/CalendarView.vala        | 183 ----------
- src/Widgets/calendar/GridDay.vala             | 178 ---------
- 16 files changed, 957 insertions(+), 942 deletions(-)
- delete mode 100644 src/DateIterator.vala
- delete mode 100644 src/DateRange.vala
- rename src/{Widgets/calendar => Models}/CalendarModel.vala (99%)
- create mode 100644 src/Util/DateIterator.vala
- create mode 100644 src/Util/DateRange.vala
- rename src/{Widgets/calendar => Util}/Util.vala (96%)
- create mode 100644 src/Widgets/CalendarView.vala
- rename src/Widgets/{calendar => }/Grid.vala (95%)
- create mode 100644 src/Widgets/GridDay.vala
- delete mode 100644 src/Widgets/calendar/CalendarView.vala
- delete mode 100644 src/Widgets/calendar/GridDay.vala
-
-diff --git a/meson.build b/meson.build
-index 2555723..b44c5bd 100644
---- a/meson.build
-+++ b/meson.build
-@@ -39,16 +39,16 @@ endif
- shared_module(
-     meson.project_name(),
-     gresource,
--    'src/DateIterator.vala',
--    'src/DateRange.vala',
-     'src/Indicator.vala',
-+    'src/Util/DateIterator.vala',
-+    'src/Util/DateRange.vala',
-+    'src/Util/Util.vala',
-+    'src/Models/CalendarModel.vala',
-+    'src/Widgets/CalendarView.vala',
-     'src/Widgets/EventRow.vala',
-+    'src/Widgets/Grid.vala',
-+    'src/Widgets/GridDay.vala',
-     'src/Widgets/PanelLabel.vala',
--    'src/Widgets/calendar/CalendarModel.vala',
--    'src/Widgets/calendar/CalendarView.vala',
--    'src/Widgets/calendar/Grid.vala',
--    'src/Widgets/calendar/GridDay.vala',
--    'src/Widgets/calendar/Util.vala',
-     'src/Services/TimeManager.vala',
-     dependencies: [
-         dependency('glib-2.0'),
-diff --git a/src/DateIterator.vala b/src/DateIterator.vala
-deleted file mode 100644
-index 961895b..0000000
---- a/src/DateIterator.vala
-+++ /dev/null
-@@ -1,82 +0,0 @@
--/*
-- * Copyright 2011-2018 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 2 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, write to the
-- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- * Boston, MA 02110-1301 USA.
-- *
-- * Authored by: Corentin Noël <corentin@elementaryos.org>
-- */
--
--public class Util.DateIterator : Object, Gee.Traversable<GLib.DateTime>, Gee.Iterator<GLib.DateTime> {
--    public GLib.DateTime current { get; construct set; }
--    public Util.DateRange range { get; construct; }
--
--    // Required by Gee.Iterator
--    public bool valid {
--        get {
--            return true;
--        }
--    }
--
--    // Required by Gee.Iterator
--    public bool read_only {
--        get {
--            return false;
--        }
--    }
--
--    public DateIterator (Util.DateRange range) {
--        Object (
--            range: range,
--            current: range.first_dt.add_days (-1)
--        );
--    }
--
--    public bool @foreach (Gee.ForallFunc<GLib.DateTime> f) {
--        var element = range.first_dt;
--
--        while (element.compare (range.last_dt) < 0) {
--            if (f (element) == false) {
--                return false;
--            }
--
--            element = element.add_days (1);
--        }
--
--        return true;
--    }
--
--    public bool next () {
--        if (!has_next ()) {
--            return false;
--        }
--
--        current = this.current.add_days (1);
--
--        return true;
--    }
--
--    public bool has_next () {
--        return current.compare (range.last_dt) < 0;
--    }
--
--    public new GLib.DateTime get () {
--        return current;
--    }
--
--    public void remove () {
--        assert_not_reached ();
--    }
--}
-diff --git a/src/DateRange.vala b/src/DateRange.vala
-deleted file mode 100644
-index 08e4c00..0000000
---- a/src/DateRange.vala
-+++ /dev/null
-@@ -1,66 +0,0 @@
--/*
-- * Copyright 2011-2019 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 2 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, write to the
-- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- * Boston, MA 02110-1301 USA.
-- *
-- * Authored by: Corentin Noël <corentin@elementaryos.org>
-- */
--
--/* Represents date range from 'first' to 'last' inclusive */
--public class Util.DateRange : Object, Gee.Traversable<GLib.DateTime>, Gee.Iterable<GLib.DateTime> {
--    public GLib.DateTime first_dt { get; construct; }
--    public GLib.DateTime last_dt { get; construct; }
--
--    public bool @foreach (Gee.ForallFunc<GLib.DateTime> f) {
--        foreach (var date in this) {
--            if (f (date) == false) {
--                return false;
--            }
--        }
--
--        return true;
--    }
--
--    public DateRange (GLib.DateTime first, GLib.DateTime last) {
--        Object (
--            first_dt: first,
--            last_dt: last
--        );
--    }
--
--    public bool equals (DateRange other) {
--        return (first_dt == other.first_dt && last_dt == other.last_dt);
--    }
--
--    public Gee.Iterator<GLib.DateTime> iterator () {
--        return new DateIterator (this);
--    }
--
--    public Gee.List<GLib.DateTime> to_list () {
--        var list = new Gee.ArrayList<GLib.DateTime> ((Gee.EqualDataFunc<GLib.DateTime>? )datetime_equal_func);
--
--        foreach (var date in this) {
--            list.add (date);
--        }
--
--        return list;
--    }
--
--    /* Returns true if 'a' and 'b' are the same GLib.DateTime */
--    private bool datetime_equal_func (GLib.DateTime a, GLib.DateTime b) {
--        return a.equal (b);
--    }
--}
-diff --git a/src/Indicator.vala b/src/Indicator.vala
-index 77aa35c..b712c12 100644
---- a/src/Indicator.vala
-+++ b/src/Indicator.vala
-@@ -17,218 +17,219 @@
-  * Boston, MA 02110-1301 USA.
-  */
- 
--public class DateTime.Indicator : Wingpanel.Indicator {
--    public static GLib.Settings settings;
--
--    private Widgets.PanelLabel panel_label;
--    private Gtk.Grid main_grid;
--    private Widgets.CalendarView calendar;
--    private Gtk.ListBox event_listbox;
--    private uint update_events_idle_source = 0;
--
--    public Indicator () {
--        Object (
--            code_name: Wingpanel.Indicator.DATETIME,
--            display_name: _("Date & Time"),
--            description: _("The date and time indicator")
--        );
--    }
--
--    static construct {
--        settings = new GLib.Settings ("io.elementary.desktop.wingpanel.datetime");
--    }
-+namespace DateTimeIndicator {
-+    public class Indicator : Wingpanel.Indicator {
-+        public static GLib.Settings settings;
-+
-+        private Widgets.PanelLabel panel_label;
-+        private Gtk.Grid main_grid;
-+        private Widgets.CalendarView calendar;
-+        private Gtk.ListBox event_listbox;
-+        private uint update_events_idle_source = 0;
-+
-+        public Indicator () {
-+            Object (
-+                code_name: Wingpanel.Indicator.DATETIME,
-+                display_name: _("Date & Time"),
-+                description: _("The date and time indicator")
-+            );
-+        }
- 
--    construct {
--        visible = true;
--    }
-+        static construct {
-+            settings = new GLib.Settings ("io.elementary.desktop.wingpanel.datetime");
-+        }
- 
--    public override Gtk.Widget get_display_widget () {
--        if (panel_label == null) {
--            panel_label = new Widgets.PanelLabel ();
-+        construct {
-+            visible = true;
-         }
- 
--        return panel_label;
--    }
-+        public override Gtk.Widget get_display_widget () {
-+            if (panel_label == null) {
-+                panel_label = new Widgets.PanelLabel ();
-+            }
- 
--    public override Gtk.Widget? get_widget () {
--        if (main_grid == null) {
--            calendar = new Widgets.CalendarView ();
--            calendar.margin_bottom = 6;
--
--            var placeholder_label = new Gtk.Label (_("No Events on This Day"));
--            placeholder_label.wrap = true;
--            placeholder_label.wrap_mode = Pango.WrapMode.WORD;
--            placeholder_label.margin_start = 12;
--            placeholder_label.margin_end = 12;
--            placeholder_label.max_width_chars = 20;
--            placeholder_label.justify = Gtk.Justification.CENTER;
--            placeholder_label.show_all ();
--
--            var placeholder_style_context = placeholder_label.get_style_context ();
--            placeholder_style_context.add_class (Gtk.STYLE_CLASS_DIM_LABEL);
--            placeholder_style_context.add_class (Granite.STYLE_CLASS_H3_LABEL);
--
--            event_listbox = new Gtk.ListBox ();
--            event_listbox.selection_mode = Gtk.SelectionMode.NONE;
--            event_listbox.set_header_func (header_update_func);
--            event_listbox.set_placeholder (placeholder_label);
--            event_listbox.set_sort_func (sort_function);
--
--            var scrolled_window = new Gtk.ScrolledWindow (null, null);
--            scrolled_window.hscrollbar_policy = Gtk.PolicyType.NEVER;
--            scrolled_window.add (event_listbox);
--
--            var settings_button = new Gtk.ModelButton ();
--            settings_button.text = _("Date & Time Settings…");
--
--            main_grid = new Gtk.Grid ();
--            main_grid.margin_top = 12;
--            main_grid.attach (calendar, 0, 0);
--            main_grid.attach (new Gtk.Separator (Gtk.Orientation.VERTICAL), 1, 0);
--            main_grid.attach (scrolled_window, 2, 0);
--            main_grid.attach (new Wingpanel.Widgets.Separator (), 0, 2, 3);
--            main_grid.attach (settings_button, 0, 3, 3);
--
--            var size_group = new Gtk.SizeGroup (Gtk.SizeGroupMode.HORIZONTAL);
--            size_group.add_widget (calendar);
--            size_group.add_widget (event_listbox);
--
--            calendar.day_double_click.connect (() => {
--                close ();
--            });
-+            return panel_label;
-+        }
- 
--            calendar.selection_changed.connect ((date) => {
--                idle_update_events ();
--            });
-+        public override Gtk.Widget? get_widget () {
-+            if (main_grid == null) {
-+                calendar = new Widgets.CalendarView ();
-+                calendar.margin_bottom = 6;
-+
-+                var placeholder_label = new Gtk.Label (_("No Events on This Day"));
-+                placeholder_label.wrap = true;
-+                placeholder_label.wrap_mode = Pango.WrapMode.WORD;
-+                placeholder_label.margin_start = 12;
-+                placeholder_label.margin_end = 12;
-+                placeholder_label.max_width_chars = 20;
-+                placeholder_label.justify = Gtk.Justification.CENTER;
-+                placeholder_label.show_all ();
-+
-+                var placeholder_style_context = placeholder_label.get_style_context ();
-+                placeholder_style_context.add_class (Gtk.STYLE_CLASS_DIM_LABEL);
-+                placeholder_style_context.add_class (Granite.STYLE_CLASS_H3_LABEL);
-+
-+                event_listbox = new Gtk.ListBox ();
-+                event_listbox.selection_mode = Gtk.SelectionMode.NONE;
-+                event_listbox.set_header_func (header_update_func);
-+                event_listbox.set_placeholder (placeholder_label);
-+                event_listbox.set_sort_func (sort_function);
-+
-+                var scrolled_window = new Gtk.ScrolledWindow (null, null);
-+                scrolled_window.hscrollbar_policy = Gtk.PolicyType.NEVER;
-+                scrolled_window.add (event_listbox);
-+
-+                var settings_button = new Gtk.ModelButton ();
-+                settings_button.text = _("Date & Time Settings…");
-+
-+                main_grid = new Gtk.Grid ();
-+                main_grid.margin_top = 12;
-+                main_grid.attach (calendar, 0, 0);
-+                main_grid.attach (new Gtk.Separator (Gtk.Orientation.VERTICAL), 1, 0);
-+                main_grid.attach (scrolled_window, 2, 0);
-+                main_grid.attach (new Wingpanel.Widgets.Separator (), 0, 2, 3);
-+                main_grid.attach (settings_button, 0, 3, 3);
-+
-+                var size_group = new Gtk.SizeGroup (Gtk.SizeGroupMode.HORIZONTAL);
-+                size_group.add_widget (calendar);
-+                size_group.add_widget (event_listbox);
-+
-+                calendar.day_double_click.connect (() => {
-+                    close ();
-+                });
-+
-+                calendar.selection_changed.connect ((date) => {
-+                    idle_update_events ();
-+                });
-+
-+                event_listbox.row_activated.connect ((row) => {
-+                    calendar.show_date_in_maya (((EventRow) row).date);
-+                    close ();
-+                });
-+
-+                settings_button.clicked.connect (() => {
-+                    try {
-+                        AppInfo.launch_default_for_uri ("settings://time", null);
-+                    } catch (Error e) {
-+                        warning ("Failed to open time and date settings: %s", e.message);
-+                    }
-+                });
-+            }
- 
--            event_listbox.row_activated.connect ((row) => {
--                calendar.show_date_in_maya (((DateTime.EventRow) row).date);
--                close ();
--            });
-+            return main_grid;
-+        }
- 
--            settings_button.clicked.connect (() => {
--                try {
--                    AppInfo.launch_default_for_uri ("settings://time", null);
--                } catch (Error e) {
--                    warning ("Failed to open time and date settings: %s", e.message);
-+        private void header_update_func (Gtk.ListBoxRow lbrow, Gtk.ListBoxRow? lbbefore) {
-+            var row = (EventRow) lbrow;
-+            if (lbbefore != null) {
-+                var before = (EventRow) lbbefore;
-+                if (row.is_allday == before.is_allday) {
-+                    row.set_header (null);
-+                    return;
-                 }
--            });
--        }
- 
--        return main_grid;
--    }
-+                if (row.is_allday != before.is_allday) {
-+                    var header_label = new Granite.HeaderLabel (_("During the Day"));
-+                    header_label.margin_start = header_label.margin_end = 6;
- 
--    private void header_update_func (Gtk.ListBoxRow lbrow, Gtk.ListBoxRow? lbbefore) {
--        var row = (DateTime.EventRow) lbrow;
--        if (lbbefore != null) {
--            var before = (DateTime.EventRow) lbbefore;
--            if (row.is_allday == before.is_allday) {
--                row.set_header (null);
-+                    row.set_header (header_label);
-+                    return;
-+                }
-+            } else {
-+                if (row.is_allday) {
-+                    var allday_header = new Granite.HeaderLabel (_("All Day"));
-+                    allday_header.margin_start = allday_header.margin_end = 6;
-+
-+                    row.set_header (allday_header);
-+                }
-                 return;
-             }
-+        }
- 
--            if (row.is_allday != before.is_allday) {
--                var header_label = new Granite.HeaderLabel (_("During the Day"));
--                header_label.margin_start = header_label.margin_end = 6;
-+        [CCode (instance_pos = -1)]
-+        private int sort_function (Gtk.ListBoxRow child1, Gtk.ListBoxRow child2) {
-+            var e1 = (EventRow) child1;
-+            var e2 = (EventRow) child2;
- 
--                row.set_header (header_label);
--                return;
-+            if (e1.start_time.compare (e2.start_time) != 0) {
-+                return e1.start_time.compare (e2.start_time);
-             }
--        } else {
--            if (row.is_allday) {
--                var allday_header = new Granite.HeaderLabel (_("All Day"));
--                allday_header.margin_start = allday_header.margin_end = 6;
- 
--                row.set_header (allday_header);
-+            // If they have the same date, sort them wholeday first
-+            if (e1.is_allday) {
-+                return -1;
-+            } else if (e2.is_allday) {
-+                return 1;
-             }
--            return;
--        }
--    }
--
--    [CCode (instance_pos = -1)]
--    private int sort_function (Gtk.ListBoxRow child1, Gtk.ListBoxRow child2) {
--        var e1 = (EventRow) child1;
--        var e2 = (EventRow) child2;
- 
--        if (e1.start_time.compare (e2.start_time) != 0) {
--            return e1.start_time.compare (e2.start_time);
-+            return 0;
-         }
- 
--        // If they have the same date, sort them wholeday first
--        if (e1.is_allday) {
--            return -1;
--        } else if (e2.is_allday) {
--            return 1;
-+        private void update_events_model (E.Source source, Gee.Collection<ECal.Component> events) {
-+            idle_update_events ();
-         }
- 
--        return 0;
--    }
--
--    private void update_events_model (E.Source source, Gee.Collection<ECal.Component> events) {
--        idle_update_events ();
--    }
-+        private void idle_update_events () {
-+            if (update_events_idle_source > 0) {
-+                GLib.Source.remove (update_events_idle_source);
-+            }
- 
--    private void idle_update_events () {
--        if (update_events_idle_source > 0) {
--            GLib.Source.remove (update_events_idle_source);
-+            update_events_idle_source = GLib.Idle.add (update_events);
-         }
- 
--        update_events_idle_source = GLib.Idle.add (update_events);
--    }
--
--    private bool update_events () {
--        foreach (unowned Gtk.Widget widget in event_listbox.get_children ()) {
--            widget.destroy ();
--        }
-+        private bool update_events () {
-+            foreach (unowned Gtk.Widget widget in event_listbox.get_children ()) {
-+                widget.destroy ();
-+            }
- 
--        if (calendar.selected_date == null) {
--            update_events_idle_source = 0;
--            return GLib.Source.REMOVE;
--        }
-+            if (calendar.selected_date == null) {
-+                update_events_idle_source = 0;
-+                return GLib.Source.REMOVE;
-+            }
- 
--        var date = calendar.selected_date;
-+            var date = calendar.selected_date;
- 
--        var model = Widgets.CalendarModel.get_default ();
-+            var model = Models.CalendarModel.get_default ();
- 
--        var events_on_day = new Gee.TreeMap<string, DateTime.EventRow> ();
-+            var events_on_day = new Gee.TreeMap<string, EventRow> ();
- 
--        model.source_events.@foreach ((source, component_map) => {
--            foreach (var comp in component_map.get_values ()) {
--                if (Util.calcomp_is_on_day (comp, date)) {
--                    unowned ICal.Component ical = comp.get_icalcomponent ();
--                    var event_uid = ical.get_uid ();
--                    if (!events_on_day.has_key (event_uid)) {
--                        events_on_day[event_uid] = new DateTime.EventRow (date, ical, source);
-+            model.source_events.@foreach ((source, component_map) => {
-+                foreach (var comp in component_map.get_values ()) {
-+                    if (Util.calcomp_is_on_day (comp, date)) {
-+                        unowned ICal.Component ical = comp.get_icalcomponent ();
-+                        var event_uid = ical.get_uid ();
-+                        if (!events_on_day.has_key (event_uid)) {
-+                            events_on_day[event_uid] = new EventRow (date, ical, source);
- 
--                        event_listbox.add (events_on_day[event_uid]);
-+                            event_listbox.add (events_on_day[event_uid]);
-+                        }
-                     }
-                 }
--            }
--        });
-+            });
- 
--        event_listbox.show_all ();
--        update_events_idle_source = 0;
--        return GLib.Source.REMOVE;
--    }
-+            event_listbox.show_all ();
-+            update_events_idle_source = 0;
-+            return GLib.Source.REMOVE;
-+        }
- 
--    public override void opened () {
--        calendar.show_today ();
-+        public override void opened () {
-+            calendar.show_today ();
- 
--        Widgets.CalendarModel.get_default ().events_added.connect (update_events_model);
--        Widgets.CalendarModel.get_default ().events_updated.connect (update_events_model);
--        Widgets.CalendarModel.get_default ().events_removed.connect (update_events_model);
--    }
-+            Models.CalendarModel.get_default ().events_added.connect (update_events_model);
-+            Models.CalendarModel.get_default ().events_updated.connect (update_events_model);
-+            Models.CalendarModel.get_default ().events_removed.connect (update_events_model);
-+        }
- 
--    public override void closed () {
--        Widgets.CalendarModel.get_default ().events_added.disconnect (update_events_model);
--        Widgets.CalendarModel.get_default ().events_updated.disconnect (update_events_model);
--        Widgets.CalendarModel.get_default ().events_removed.disconnect (update_events_model);
-+        public override void closed () {
-+            Models.CalendarModel.get_default ().events_added.disconnect (update_events_model);
-+            Models.CalendarModel.get_default ().events_updated.disconnect (update_events_model);
-+            Models.CalendarModel.get_default ().events_removed.disconnect (update_events_model);
-+        }
-     }
- }
--
- public Wingpanel.Indicator get_indicator (Module module) {
-     debug ("Activating DateTime Indicator");
--    var indicator = new DateTime.Indicator ();
-+    var indicator = new DateTimeIndicator.Indicator ();
- 
-     return indicator;
- }
-diff --git a/src/Widgets/calendar/CalendarModel.vala b/src/Models/CalendarModel.vala
-similarity index 99%
-rename from src/Widgets/calendar/CalendarModel.vala
-rename to src/Models/CalendarModel.vala
-index 7602303..965b93e 100644
---- a/src/Widgets/calendar/CalendarModel.vala
-+++ b/src/Models/CalendarModel.vala
-@@ -15,8 +15,8 @@
-  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-  */
- 
--namespace DateTime.Widgets {
--    public class CalendarModel : Object {
-+namespace DateTimeIndicator {
-+    public class Models.CalendarModel : Object {
-         /* The data_range is the range of dates for which this model is storing
-          * data.
-          *
-diff --git a/src/Services/TimeManager.vala b/src/Services/TimeManager.vala
-index b68f158..5baa136 100644
---- a/src/Services/TimeManager.vala
-+++ b/src/Services/TimeManager.vala
-@@ -32,153 +32,155 @@ interface FDO.Accounts : Object {
-     public abstract string find_user_by_name (string username) throws GLib.Error;
- }
- 
--public class DateTime.Services.TimeManager : Gtk.Calendar {
--    private static TimeManager? instance = null;
-+namespace DateTimeIndicator {
-+    public class Services.TimeManager : Gtk.Calendar {
-+        private static TimeManager? instance = null;
- 
--    public signal void minute_changed ();
-+        public signal void minute_changed ();
- 
--    private GLib.DateTime? current_time = null;
--    private uint timeout_id = 0;
--    private Manager? manager = null;
-+        private GLib.DateTime? current_time = null;
-+        private uint timeout_id = 0;
-+        private Manager? manager = null;
- 
--    public bool clock_show_seconds { get; set; }
--    public bool is_12h { get; set; }
-+        public bool clock_show_seconds { get; set; }
-+        public bool is_12h { get; set; }
- 
--    public TimeManager () {
--        update_current_time ();
--
--        if (current_time == null) {
--            return;
--        }
-+        public TimeManager () {
-+            update_current_time ();
- 
--        add_timeout ();
--        try {
--            var clock_settings = new GLib.Settings ("io.elementary.desktop.wingpanel.datetime");
--            clock_settings.bind ("clock-show-seconds", this, "clock-show-seconds", SettingsBindFlags.DEFAULT);
-+            if (current_time == null) {
-+                return;
-+            }
- 
--            notify["clock-show-seconds"].connect (() => {
--                add_timeout ();
--            });
-+            add_timeout ();
-+            try {
-+                var clock_settings = new GLib.Settings ("io.elementary.desktop.wingpanel.datetime");
-+                clock_settings.bind ("clock-show-seconds", this, "clock-show-seconds", SettingsBindFlags.DEFAULT);
- 
--            // Listen for the D-BUS server that controls time settings
--            Bus.watch_name (BusType.SYSTEM, "org.freedesktop.timedate1", BusNameWatcherFlags.NONE, on_watch, on_unwatch);
--            // Listen for the signal that is fired when waking up from sleep, then update time
--            manager = Bus.get_proxy_sync (BusType.SYSTEM, "org.freedesktop.login1", "/org/freedesktop/login1");
--            manager.prepare_for_sleep.connect ((sleeping) => {
--                if (!sleeping) {
--                    update_current_time ();
--                    minute_changed ();
-+                notify["clock-show-seconds"].connect (() => {
-                     add_timeout ();
--                }
--            });
--        } catch (Error e) {
--            warning (e.message);
-+                });
-+
-+                // Listen for the D-BUS server that controls time settings
-+                Bus.watch_name (BusType.SYSTEM, "org.freedesktop.timedate1", BusNameWatcherFlags.NONE, on_watch, on_unwatch);
-+                // Listen for the signal that is fired when waking up from sleep, then update time
-+                manager = Bus.get_proxy_sync (BusType.SYSTEM, "org.freedesktop.login1", "/org/freedesktop/login1");
-+                manager.prepare_for_sleep.connect ((sleeping) => {
-+                    if (!sleeping) {
-+                        update_current_time ();
-+                        minute_changed ();
-+                        add_timeout ();
-+                    }
-+                });
-+            } catch (Error e) {
-+                warning (e.message);
-+            }
-         }
--    }
--
--    construct {
--        setup_time_format.begin ();
--    }
- 
--    private async void setup_time_format () {
--        try {
--            var accounts_service = yield GLib.Bus.get_proxy<FDO.Accounts> (GLib.BusType.SYSTEM,
--                                                                           "org.freedesktop.Accounts",
--                                                                           "/org/freedesktop/Accounts");
--            var user_path = accounts_service.find_user_by_name (GLib.Environment.get_user_name ());
--
--            var greeter_act = yield GLib.Bus.get_proxy<Pantheon.AccountsService> (GLib.BusType.SYSTEM,
--                                                    "org.freedesktop.Accounts",
--                                                    user_path,
--                                                    GLib.DBusProxyFlags.GET_INVALIDATED_PROPERTIES);
--            is_12h = ("12h" in greeter_act.time_format);
--            ((GLib.DBusProxy) greeter_act).g_properties_changed.connect ((changed_properties, invalidated_properties) => {
--                if (changed_properties.lookup_value ("TimeFormat", GLib.VariantType.STRING) != null) {
--                    is_12h = ("12h" in greeter_act.time_format);
--                }
--            });
--        } catch (Error e) {
--            critical (e.message);
--            // Connect to the GSettings instead
--            var clock_settings = new GLib.Settings ("org.gnome.desktop.interface");
--            clock_settings.changed["clock-format"].connect (() => {
--                is_12h = ("12h" in clock_settings.get_string ("clock-format"));
--            });
--
--            is_12h = ("12h" in clock_settings.get_string ("clock-format"));
-+        construct {
-+            setup_time_format.begin ();
-         }
--    }
- 
--    private void on_watch (DBusConnection conn) {
--        // Start updating the time display quicker because someone is changing settings
--        add_timeout (true);
--    }
-+        private async void setup_time_format () {
-+            try {
-+                var accounts_service = yield GLib.Bus.get_proxy<FDO.Accounts> (GLib.BusType.SYSTEM,
-+                                                                               "org.freedesktop.Accounts",
-+                                                                               "/org/freedesktop/Accounts");
-+                var user_path = accounts_service.find_user_by_name (GLib.Environment.get_user_name ());
-+
-+                var greeter_act = yield GLib.Bus.get_proxy<Pantheon.AccountsService> (GLib.BusType.SYSTEM,
-+                                                        "org.freedesktop.Accounts",
-+                                                        user_path,
-+                                                        GLib.DBusProxyFlags.GET_INVALIDATED_PROPERTIES);
-+                is_12h = ("12h" in greeter_act.time_format);
-+                ((GLib.DBusProxy) greeter_act).g_properties_changed.connect ((changed_properties, invalidated_properties) => {
-+                    if (changed_properties.lookup_value ("TimeFormat", GLib.VariantType.STRING) != null) {
-+                        is_12h = ("12h" in greeter_act.time_format);
-+                    }
-+                });
-+            } catch (Error e) {
-+                critical (e.message);
-+                // Connect to the GSettings instead
-+                var clock_settings = new GLib.Settings ("org.gnome.desktop.interface");
-+                clock_settings.changed["clock-format"].connect (() => {
-+                    is_12h = ("12h" in clock_settings.get_string ("clock-format"));
-+                });
- 
--    private void on_unwatch (DBusConnection conn) {
--        // Stop updating the time display quicker
--        add_timeout (false);
--    }
-+                is_12h = ("12h" in clock_settings.get_string ("clock-format"));
-+            }
-+        }
- 
--    private void add_timeout (bool update_fast = false) {
--        uint interval;
--        if (update_fast || clock_show_seconds) {
--            interval = 500;
--        } else {
--            interval = calculate_time_until_next_minute ();
-+        private void on_watch (DBusConnection conn) {
-+            // Start updating the time display quicker because someone is changing settings
-+            add_timeout (true);
-         }
- 
--        if (timeout_id > 0) {
--            Source.remove (timeout_id);
-+        private void on_unwatch (DBusConnection conn) {
-+            // Stop updating the time display quicker
-+            add_timeout (false);
-         }
- 
--        timeout_id = Timeout.add (interval, () => {
--            update_current_time ();
--            minute_changed ();
--            add_timeout (update_fast);
-+        private void add_timeout (bool update_fast = false) {
-+            uint interval;
-+            if (update_fast || clock_show_seconds) {
-+                interval = 500;
-+            } else {
-+                interval = calculate_time_until_next_minute ();
-+            }
- 
--            return false;
--        });
--    }
-+            if (timeout_id > 0) {
-+                Source.remove (timeout_id);
-+            }
- 
--    public string format (string format) {
--        if (current_time == null) {
--            return "undef";
-+            timeout_id = Timeout.add (interval, () => {
-+                update_current_time ();
-+                minute_changed ();
-+                add_timeout (update_fast);
-+
-+                return false;
-+            });
-         }
- 
--        return current_time.format (format);
--    }
-+        public string format (string format) {
-+            if (current_time == null) {
-+                return "undef";
-+            }
- 
--    public GLib.DateTime get_current_time () {
--        return current_time;
--    }
-+            return current_time.format (format);
-+        }
- 
--    private void update_current_time () {
--        var local_time = new GLib.DateTime.now_local ();
-+        public GLib.DateTime get_current_time () {
-+            return current_time;
-+        }
- 
--        if (local_time == null) {
--            critical ("Can't get the local time.");
-+        private void update_current_time () {
-+            var local_time = new GLib.DateTime.now_local ();
- 
--            return;
--        }
-+            if (local_time == null) {
-+                critical ("Can't get the local time.");
- 
--        current_time = local_time;
--    }
-+                return;
-+            }
- 
--    private uint calculate_time_until_next_minute () {
--        if (current_time == null) {
--            return 60 * 1000;
-+            current_time = local_time;
-         }
- 
--        var seconds_until_next_minute = 60 - (current_time.to_unix () % 60);
-+        private uint calculate_time_until_next_minute () {
-+            if (current_time == null) {
-+                return 60 * 1000;
-+            }
- 
--        return (uint)seconds_until_next_minute * 1000;
--    }
-+            var seconds_until_next_minute = 60 - (current_time.to_unix () % 60);
- 
--    public static TimeManager get_default () {
--        if (instance == null) {
--            instance = new TimeManager ();
-+            return (uint)seconds_until_next_minute * 1000;
-         }
- 
--        return instance;
-+        public static TimeManager get_default () {
-+            if (instance == null) {
-+                instance = new TimeManager ();
-+            }
-+
-+            return instance;
-+        }
-     }
- }
-diff --git a/src/Util/DateIterator.vala b/src/Util/DateIterator.vala
-new file mode 100644
-index 0000000..c2c771e
---- /dev/null
-+++ b/src/Util/DateIterator.vala
-@@ -0,0 +1,84 @@
-+/*
-+ * Copyright 2011-2018 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 2 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, write to the
-+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ * Boston, MA 02110-1301 USA.
-+ *
-+ * Authored by: Corentin Noël <corentin@elementaryos.org>
-+ */
-+
-+namespace DateTimeIndicator {
-+    public class Util.DateIterator : Object, Gee.Traversable<GLib.DateTime>, Gee.Iterator<GLib.DateTime> {
-+        public GLib.DateTime current { get; construct set; }
-+        public Util.DateRange range { get; construct; }
-+
-+        // Required by Gee.Iterator
-+        public bool valid {
-+            get {
-+                return true;
-+            }
-+        }
-+
-+        // Required by Gee.Iterator
-+        public bool read_only {
-+            get {
-+                return false;
-+            }
-+        }
-+
-+        public DateIterator (Util.DateRange range) {
-+            Object (
-+                range: range,
-+                current: range.first_dt.add_days (-1)
-+            );
-+        }
-+
-+        public bool @foreach (Gee.ForallFunc<GLib.DateTime> f) {
-+            var element = range.first_dt;
-+
-+            while (element.compare (range.last_dt) < 0) {
-+                if (f (element) == false) {
-+                    return false;
-+                }
-+
-+                element = element.add_days (1);
-+            }
-+
-+            return true;
-+        }
-+
-+        public bool next () {
-+            if (!has_next ()) {
-+                return false;
-+            }
-+
-+            current = this.current.add_days (1);
-+
-+            return true;
-+        }
-+
-+        public bool has_next () {
-+            return current.compare (range.last_dt) < 0;
-+        }
-+
-+        public new GLib.DateTime get () {
-+            return current;
-+        }
-+
-+        public void remove () {
-+            assert_not_reached ();
-+        }
-+    }
-+}
-diff --git a/src/Util/DateRange.vala b/src/Util/DateRange.vala
-new file mode 100644
-index 0000000..82da7c8
---- /dev/null
-+++ b/src/Util/DateRange.vala
-@@ -0,0 +1,68 @@
-+/*
-+ * Copyright 2011-2019 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 2 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, write to the
-+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ * Boston, MA 02110-1301 USA.
-+ *
-+ * Authored by: Corentin Noël <corentin@elementaryos.org>
-+ */
-+
-+namespace DateTimeIndicator {
-+/* Represents date range from 'first' to 'last' inclusive */
-+    public class Util.DateRange : Object, Gee.Traversable<GLib.DateTime>, Gee.Iterable<GLib.DateTime> {
-+        public GLib.DateTime first_dt { get; construct; }
-+        public GLib.DateTime last_dt { get; construct; }
-+
-+        public bool @foreach (Gee.ForallFunc<GLib.DateTime> f) {
-+            foreach (var date in this) {
-+                if (f (date) == false) {
-+                    return false;
-+                }
-+            }
-+
-+            return true;
-+        }
-+
-+        public DateRange (GLib.DateTime first, GLib.DateTime last) {
-+            Object (
-+                first_dt: first,
-+                last_dt: last
-+            );
-+        }
-+
-+        public bool equals (DateRange other) {
-+            return (first_dt == other.first_dt && last_dt == other.last_dt);
-+        }
-+
-+        public Gee.Iterator<GLib.DateTime> iterator () {
-+            return new DateIterator (this);
-+        }
-+
-+        public Gee.List<GLib.DateTime> to_list () {
-+            var list = new Gee.ArrayList<GLib.DateTime> ((Gee.EqualDataFunc<GLib.DateTime>? )datetime_equal_func);
-+
-+            foreach (var date in this) {
-+                list.add (date);
-+            }
-+
-+            return list;
-+        }
-+
-+        /* Returns true if 'a' and 'b' are the same GLib.DateTime */
-+        private bool datetime_equal_func (GLib.DateTime a, GLib.DateTime b) {
-+            return a.equal (b);
-+        }
-+    }
-+}
-diff --git a/src/Widgets/calendar/Util.vala b/src/Util/Util.vala
-similarity index 96%
-rename from src/Widgets/calendar/Util.vala
-rename to src/Util/Util.vala
-index e51f784..c261f4b 100644
---- a/src/Widgets/calendar/Util.vala
-+++ b/src/Util/Util.vala
-@@ -19,7 +19,7 @@
-  * Authored by: Corentin Noël <corentin@elementaryos.org>
-  */
- 
--namespace Util {
-+namespace DateTimeIndicator.Util {
-     static bool has_scrolled = false;
- 
-     public bool on_scroll_event (Gdk.EventScroll event) {
-@@ -35,7 +35,7 @@ namespace Util {
- 
-         /* It's mouse scroll ! */
-         if (choice == 1 || choice == -1) {
--            DateTime.Widgets.CalendarModel.get_default ().change_month ((int)choice);
-+            Models.CalendarModel.get_default ().change_month ((int)choice);
- 
-             return true;
-         }
-@@ -46,14 +46,14 @@ namespace Util {
- 
-         if (choice > 0.3) {
-             reset_timer.begin ();
--            DateTime.Widgets.CalendarModel.get_default ().change_month (1);
-+            Models.CalendarModel.get_default ().change_month (1);
- 
-             return true;
-         }
- 
-         if (choice < -0.3) {
-             reset_timer.begin ();
--            DateTime.Widgets.CalendarModel.get_default ().change_month (-1);
-+            Models.CalendarModel.get_default ().change_month (-1);
- 
-             return true;
-         }
-diff --git a/src/Widgets/CalendarView.vala b/src/Widgets/CalendarView.vala
-new file mode 100644
-index 0000000..65cee28
---- /dev/null
-+++ b/src/Widgets/CalendarView.vala
-@@ -0,0 +1,185 @@
-+/*-
-+ * Copyright (c) 2011–2018 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 <http://www.gnu.org/licenses/>.
-+ *
-+ * Authored by: Maxwell Barvian
-+ *              Corentin Noël <corentin@elementaryos.org>
-+ */
-+
-+namespace DateTimeIndicator {
-+    public class Widgets.CalendarView : Gtk.Grid {
-+        public signal void day_double_click ();
-+        public signal void event_updates ();
-+        public signal void selection_changed (GLib.DateTime? new_date);
-+
-+        public GLib.DateTime? selected_date { get; private set; }
-+
-+        private Widgets.Grid grid;
-+        private Gtk.Stack stack;
-+        private Gtk.Grid big_grid;
-+
-+        construct {
-+            var label = new Gtk.Label (new GLib.DateTime.now_local ().format (_("%OB, %Y")));
-+            label.hexpand = true;
-+            label.margin_start = 6;
-+            label.xalign = 0;
-+            label.width_chars = 13;
-+
-+            var provider = new Gtk.CssProvider ();
-+            provider.load_from_resource ("/io/elementary/desktop/wingpanel/datetime/ControlHeader.css");
-+
-+            var label_style_context = label.get_style_context ();
-+            label_style_context.add_class ("header-label");
-+            label_style_context.add_provider (provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
-+
-+            var left_button = new Gtk.Button.from_icon_name ("pan-start-symbolic");
-+            var center_button = new Gtk.Button.from_icon_name ("office-calendar-symbolic");
-+            center_button.tooltip_text = _("Go to today's date");
-+            var right_button = new Gtk.Button.from_icon_name ("pan-end-symbolic");
-+
-+            var box_buttons = new Gtk.Grid ();
-+            box_buttons.margin_end = 6;
-+            box_buttons.valign = Gtk.Align.CENTER;
-+            box_buttons.get_style_context ().add_class (Gtk.STYLE_CLASS_LINKED);
-+            box_buttons.add (left_button);
-+            box_buttons.add (center_button);
-+            box_buttons.add (right_button);
-+
-+            big_grid = create_big_grid ();
-+
-+            stack = new Gtk.Stack ();
-+            stack.add (big_grid);
-+            stack.show_all ();
-+            stack.expand = true;
-+
-+            stack.notify["transition-running"].connect (() => {
-+                if (stack.transition_running == false) {
-+                    stack.get_children ().foreach ((child) => {
-+                        if (child != stack.visible_child) {
-+                            child.destroy ();
-+                        }
-+                    });
-+                }
-+            });
-+
-+            column_spacing = 6;
-+            row_spacing = 6;
-+            margin_start = margin_end = 10;
-+            attach (label, 0, 0);
-+            attach (box_buttons, 1, 0);
-+            attach (stack, 0, 1, 2);
-+
-+            var model = Models.CalendarModel.get_default ();
-+            model.notify["data-range"].connect (() => {
-+                label.label = model.month_start.format (_("%OB, %Y"));
-+
-+                sync_with_model ();
-+
-+                selected_date = null;
-+                selection_changed (selected_date);
-+            });
-+
-+            left_button.clicked.connect (() => {
-+                model.change_month (-1);
-+            });
-+
-+            right_button.clicked.connect (() => {
-+                model.change_month (1);
-+            });
-+
-+            center_button.clicked.connect (() => {
-+                show_today ();
-+            });
-+        }
-+
-+        private Gtk.Grid create_big_grid () {
-+            grid = new Widgets.Grid ();
-+            grid.show_all ();
-+
-+            grid.on_event_add.connect ((date) => {
-+                show_date_in_maya (date);
-+                day_double_click ();
-+            });
-+
-+            grid.selection_changed.connect ((date) => {
-+                selected_date = date;
-+                selection_changed (date);
-+            });
-+
-+            return grid;
-+        }
-+
-+        public void show_today () {
-+            var calmodel = Models.CalendarModel.get_default ();
-+            var today = Util.strip_time (new GLib.DateTime.now_local ());
-+            var start = Util.get_start_of_month (today);
-+            selected_date = today;
-+            if (!start.equal (calmodel.month_start)) {
-+                calmodel.month_start = start;
-+            }
-+            sync_with_model ();
-+
-+            grid.set_focus_to_today ();
-+        }
-+
-+        // TODO: As far as maya supports it use the Dbus Activation feature to run the calendar-app.
-+        public void show_date_in_maya (GLib.DateTime date) {
-+            var command = "io.elementary.calendar --show-day %s".printf (date.format ("%F"));
-+
-+            try {
-+                var appinfo = AppInfo.create_from_commandline (command, null, AppInfoCreateFlags.NONE);
-+                appinfo.launch_uris (null, null);
-+            } catch (GLib.Error e) {
-+                var dialog = new Granite.MessageDialog.with_image_from_icon_name (
-+                    _("Unable To Launch Calendar"),
-+                    _("The program \"io.elementary.calendar\" may not be installed"),
-+                    "dialog-error"
-+                );
-+                dialog.show_error_details (e.message);
-+                dialog.run ();
-+                dialog.destroy ();
-+            }
-+        }
-+
-+        /* Sets the calendar widgets to the date range of the model */
-+        private void sync_with_model () {
-+            var model = Models.CalendarModel.get_default ();
-+            if (grid.grid_range != null && (model.data_range.equals (grid.grid_range) || grid.grid_range.first_dt.compare (model.data_range.first_dt) == 0)) {
-+                grid.update_today ();
-+                return; // nothing else to do
-+            }
-+
-+            GLib.DateTime previous_first = null;
-+            if (grid.grid_range != null)
-+                previous_first = grid.grid_range.first_dt;
-+
-+            big_grid = create_big_grid ();
-+            stack.add (big_grid);
-+
-+            grid.set_range (model.data_range, model.month_start);
-+            grid.update_weeks (model.data_range.first_dt, model.num_weeks);
-+
-+            if (previous_first != null) {
-+                if (previous_first.compare (grid.grid_range.first_dt) == -1) {
-+                    stack.transition_type = Gtk.StackTransitionType.SLIDE_LEFT;
-+                } else {
-+                    stack.transition_type = Gtk.StackTransitionType.SLIDE_RIGHT;
-+                }
-+            }
-+
-+            stack.set_visible_child (big_grid);
-+        }
-+    }
-+}
-diff --git a/src/Widgets/EventRow.vala b/src/Widgets/EventRow.vala
-index 8e0513e..1268311 100644
---- a/src/Widgets/EventRow.vala
-+++ b/src/Widgets/EventRow.vala
-@@ -17,104 +17,106 @@
-  * Boston, MA 02110-1301 USA.
-  */
- 
--public class DateTime.EventRow : Gtk.ListBoxRow {
--    public GLib.DateTime date { get; construct; }
--    public unowned ICal.Component component { get; construct; }
--    public unowned E.SourceCalendar cal { get; construct; }
--
--    public GLib.DateTime start_time { get; private set; }
--    public GLib.DateTime? end_time { get; private set; }
--    public bool is_allday { get; private set; default = false; }
--
--    private static Services.TimeManager time_manager;
--    private static Gtk.CssProvider css_provider;
--
--    private Gtk.Grid grid;
--    private Gtk.Image event_image;
--    private Gtk.Label time_label;
--
--    public EventRow (GLib.DateTime date, ICal.Component component, E.Source source) {
--        Object (
--            component: component,
--            date: date,
--            cal: (E.SourceCalendar?) source.get_extension (E.SOURCE_EXTENSION_CALENDAR)
--        );
--    }
--
--    static construct {
--        css_provider = new Gtk.CssProvider ();
--        css_provider.load_from_resource ("/io/elementary/desktop/wingpanel/datetime/EventRow.css");
--
--        time_manager = Services.TimeManager.get_default ();
--    }
-+namespace DateTimeIndicator {
-+    public class EventRow : Gtk.ListBoxRow {
-+        public GLib.DateTime date { get; construct; }
-+        public unowned ICal.Component component { get; construct; }
-+        public unowned E.SourceCalendar cal { get; construct; }
-+
-+        public GLib.DateTime start_time { get; private set; }
-+        public GLib.DateTime? end_time { get; private set; }
-+        public bool is_allday { get; private set; default = false; }
-+
-+        private static Services.TimeManager time_manager;
-+        private static Gtk.CssProvider css_provider;
-+
-+        private Gtk.Grid grid;
-+        private Gtk.Image event_image;
-+        private Gtk.Label time_label;
-+
-+        public EventRow (GLib.DateTime date, ICal.Component component, E.Source source) {
-+            Object (
-+                component: component,
-+                date: date,
-+                cal: (E.SourceCalendar?) source.get_extension (E.SOURCE_EXTENSION_CALENDAR)
-+            );
-+        }
- 
--    construct {
--        start_time = Util.ical_to_date_time (component.get_dtstart ());
--        end_time = Util.ical_to_date_time (component.get_dtend ());
-+        static construct {
-+            css_provider = new Gtk.CssProvider ();
-+            css_provider.load_from_resource ("/io/elementary/desktop/wingpanel/datetime/EventRow.css");
- 
--        if (end_time != null && Util.is_the_all_day (start_time, end_time)) {
--            is_allday = true;
-+            time_manager = Services.TimeManager.get_default ();
-         }
- 
--        unowned string icon_name = "office-calendar-symbolic";
--        if (end_time == null) {
--            icon_name = "alarm-symbolic";
-+        construct {
-+            start_time = Util.ical_to_date_time (component.get_dtstart ());
-+            end_time = Util.ical_to_date_time (component.get_dtend ());
-+
-+            if (end_time != null && Util.is_the_all_day (start_time, end_time)) {
-+                is_allday = true;
-+            }
-+
-+            unowned string icon_name = "office-calendar-symbolic";
-+            if (end_time == null) {
-+                icon_name = "alarm-symbolic";
-+            }
-+
-+            event_image = new Gtk.Image.from_icon_name (icon_name, Gtk.IconSize.MENU);
-+            event_image.valign = Gtk.Align.START;
-+
-+            unowned Gtk.StyleContext event_image_context = event_image.get_style_context ();
-+            event_image_context.add_provider (css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
-+
-+            var name_label = new Gtk.Label (component.get_summary ());
-+            name_label.hexpand = true;
-+            name_label.ellipsize = Pango.EllipsizeMode.END;
-+            name_label.lines = 3;
-+            name_label.max_width_chars = 30;
-+            name_label.wrap = true;
-+            name_label.wrap_mode = Pango.WrapMode.WORD_CHAR;
-+            name_label.xalign = 0;
-+
-+            unowned Gtk.StyleContext name_label_context = name_label.get_style_context ();
-+            name_label_context.add_class ("title");
-+            name_label_context.add_provider (css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
-+
-+            time_label = new Gtk.Label (null);
-+            time_label.use_markup = true;
-+            time_label.xalign = 0;
-+            time_label.get_style_context ().add_class (Gtk.STYLE_CLASS_DIM_LABEL);
-+
-+            grid = new Gtk.Grid ();
-+            grid.column_spacing = 6;
-+            grid.margin = 3;
-+            grid.margin_start = grid.margin_end = 6;
-+            grid.attach (event_image, 0, 0);
-+            grid.attach (name_label, 1, 0);
-+            if (!is_allday) {
-+                grid.attach (time_label, 1, 1);
-+            }
-+
-+            unowned Gtk.StyleContext grid_context = grid.get_style_context ();
-+            grid_context.add_class ("event");
-+            grid_context.add_provider (css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
-+
-+            add (grid);
-+
-+            set_color ();
-+            cal.notify["color"].connect (set_color);
-+
-+            update_timelabel ();
-+            time_manager.notify["is-12h"].connect (update_timelabel);
-         }
- 
--        event_image = new Gtk.Image.from_icon_name (icon_name, Gtk.IconSize.MENU);
--        event_image.valign = Gtk.Align.START;
--
--        unowned Gtk.StyleContext event_image_context = event_image.get_style_context ();
--        event_image_context.add_provider (css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
--
--        var name_label = new Gtk.Label (component.get_summary ());
--        name_label.hexpand = true;
--        name_label.ellipsize = Pango.EllipsizeMode.END;
--        name_label.lines = 3;
--        name_label.max_width_chars = 30;
--        name_label.wrap = true;
--        name_label.wrap_mode = Pango.WrapMode.WORD_CHAR;
--        name_label.xalign = 0;
--
--        unowned Gtk.StyleContext name_label_context = name_label.get_style_context ();
--        name_label_context.add_class ("title");
--        name_label_context.add_provider (css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
--
--        time_label = new Gtk.Label (null);
--        time_label.use_markup = true;
--        time_label.xalign = 0;
--        time_label.get_style_context ().add_class (Gtk.STYLE_CLASS_DIM_LABEL);
--
--        grid = new Gtk.Grid ();
--        grid.column_spacing = 6;
--        grid.margin = 3;
--        grid.margin_start = grid.margin_end = 6;
--        grid.attach (event_image, 0, 0);
--        grid.attach (name_label, 1, 0);
--        if (!is_allday) {
--            grid.attach (time_label, 1, 1);
-+        private void update_timelabel () {
-+            var time_format = Granite.DateTime.get_default_time_format (time_manager.is_12h);
-+            time_label.label = "<small>%s – %s</small>".printf (start_time.format (time_format), end_time.format (time_format));
-         }
- 
--        unowned Gtk.StyleContext grid_context = grid.get_style_context ();
--        grid_context.add_class ("event");
--        grid_context.add_provider (css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
--
--        add (grid);
--
--        set_color ();
--        cal.notify["color"].connect (set_color);
--
--        update_timelabel ();
--        time_manager.notify["is-12h"].connect (update_timelabel);
--    }
--
--    private void update_timelabel () {
--        var time_format = Granite.DateTime.get_default_time_format (time_manager.is_12h);
--        time_label.label = "<small>%s – %s</small>".printf (start_time.format (time_format), end_time.format (time_format));
--    }
--
--    private void set_color () {
--        Util.set_event_calendar_color (cal, grid);
--        Util.set_event_calendar_color (cal, event_image);
-+        private void set_color () {
-+            Util.set_event_calendar_color (cal, grid);
-+            Util.set_event_calendar_color (cal, event_image);
-+        }
-     }
- }
-diff --git a/src/Widgets/calendar/Grid.vala b/src/Widgets/Grid.vala
-similarity index 95%
-rename from src/Widgets/calendar/Grid.vala
-rename to src/Widgets/Grid.vala
-index 2b48636..165d11d 100644
---- a/src/Widgets/calendar/Grid.vala
-+++ b/src/Widgets/Grid.vala
-@@ -20,11 +20,11 @@
-  *              Corentin Noël <corentin@elementaryos.org>
-  */
- 
--namespace DateTime.Widgets {
-+namespace DateTimeIndicator {
- /**
-  * Represents the entire date grid as a table.
-  */
--    public class Grid : Gtk.Grid {
-+    public class Widgets.Grid : Gtk.Grid {
-         public Util.DateRange grid_range { get; private set; }
- 
-         /*
-@@ -59,7 +59,7 @@ namespace DateTime.Widgets {
-             hexpand = true;
-             attach (week_sep_revealer, 1, 1, 1, 6);
- 
--            DateTime.Indicator.settings.bind ("show-weeks", week_sep_revealer, "reveal-child", GLib.SettingsBindFlags.DEFAULT);
-+            Indicator.settings.bind ("show-weeks", week_sep_revealer, "reveal-child", GLib.SettingsBindFlags.DEFAULT);
- 
-             data = new Gee.HashMap<uint, GridDay> ();
-             events |= Gdk.EventMask.SCROLL_MASK;
-@@ -77,7 +77,7 @@ namespace DateTime.Widgets {
-             day.set_selected (true);
-             day.set_state_flags (Gtk.StateFlags.FOCUSED, false);
-             selection_changed (selected_date);
--            var calmodel = CalendarModel.get_default ();
-+            var calmodel = Models.CalendarModel.get_default ();
-             var date_month = selected_date.get_month () - calmodel.month_start.get_month ();
-             var date_year = selected_date.get_year () - calmodel.month_start.get_year ();
- 
-@@ -127,7 +127,7 @@ namespace DateTime.Widgets {
-             /* Create new widgets for the new range */
- 
-             var date = Util.strip_time (today);
--            date = date.add_days (CalendarModel.get_default ().week_starts_on - date.get_day_of_week ());
-+            date = date.add_days (Models.CalendarModel.get_default ().week_starts_on - date.get_day_of_week ());
-             foreach (var label in header_labels) {
-                 label.label = date.format ("%a");
-                 date = date.add_days (1);
-@@ -221,7 +221,7 @@ namespace DateTime.Widgets {
-                 week_labels[c].add (week_label);
-                 week_labels[c].show_all ();
- 
--                DateTime.Indicator.settings.bind ("show-weeks", week_labels[c], "reveal-child", GLib.SettingsBindFlags.DEFAULT);
-+                Indicator.settings.bind ("show-weeks", week_labels[c], "reveal-child", GLib.SettingsBindFlags.DEFAULT);
- 
-                 attach (week_labels[c], 0, c + 1);
- 
-diff --git a/src/Widgets/GridDay.vala b/src/Widgets/GridDay.vala
-new file mode 100644
-index 0000000..8c44443
---- /dev/null
-+++ b/src/Widgets/GridDay.vala
-@@ -0,0 +1,180 @@
-+// -*- Mode: vala; indent-tabs-mode: nil; tab-width: 4 -*-
-+/*-
-+ * Copyright (c) 2011–2018 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 <http://www.gnu.org/licenses/>.
-+ *
-+ * Authored by: Maxwell Barvian
-+ *              Corentin Noël <corentin@elementaryos.org>
-+ */
-+
-+namespace DateTimeIndicator {
-+/**
-+ * Represents a single day on the grid.
-+ */
-+    public class Widgets.GridDay : Gtk.EventBox {
-+        /*
-+         * Event emitted when the day is double clicked or the ENTER key is pressed.
-+         */
-+        public signal void on_event_add (GLib.DateTime date);
-+
-+        public GLib.DateTime date { get; construct set; }
-+
-+        private static Gtk.CssProvider provider;
-+        private static Models.CalendarModel model;
-+
-+        private Gee.HashMap<string, Gtk.Widget> event_dots;
-+        private Gtk.Grid event_grid;
-+        private Gtk.Label label;
-+        private bool valid_grab = false;
-+
-+        public GridDay (GLib.DateTime date) {
-+            Object (date: date);
-+        }
-+
-+        static construct {
-+            model = Models.CalendarModel.get_default ();
-+
-+            provider = new Gtk.CssProvider ();
-+            provider.load_from_resource ("/io/elementary/desktop/wingpanel/datetime/GridDay.css");
-+        }
-+
-+        construct {
-+            unowned Gtk.StyleContext style_context = get_style_context ();
-+            style_context.add_provider (provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
-+            style_context.add_class ("circular");
-+
-+            label = new Gtk.Label (null);
-+
-+            event_grid = new Gtk.Grid ();
-+            event_grid.halign = Gtk.Align.CENTER;
-+            event_grid.height_request = 6;
-+
-+            var grid = new Gtk.Grid ();
-+            grid.halign = grid.valign = Gtk.Align.CENTER;
-+            grid.attach (label, 0, 0);
-+            grid.attach (event_grid, 0, 1);
-+
-+            can_focus = true;
-+            events |= Gdk.EventMask.BUTTON_PRESS_MASK;
-+            events |= Gdk.EventMask.KEY_PRESS_MASK;
-+            events |= Gdk.EventMask.SMOOTH_SCROLL_MASK;
-+            set_size_request (35, 35);
-+            halign = Gtk.Align.CENTER;
-+            hexpand = true;
-+            add (grid);
-+            show_all ();
-+
-+            // Signals and handlers
-+            button_press_event.connect (on_button_press);
-+            key_press_event.connect (on_key_press);
-+            scroll_event.connect ((event) => {return Util.on_scroll_event (event);});
-+
-+            notify["date"].connect (() => {
-+                label.label = date.get_day_of_month ().to_string ();
-+            });
-+
-+            event_dots = new Gee.HashMap<string, Gtk.Widget> ();
-+
-+            model.events_added.connect (add_event_dots);
-+            model.events_removed.connect (remove_event_dots);
-+        }
-+
-+        private void add_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
-+            foreach (var component in events) {
-+                if (event_dots.size >= 3) {
-+                    return;
-+                }
-+
-+                if (Util.calcomp_is_on_day (component, date)) {
-+                    unowned ICal.Component ical = component.get_icalcomponent ();
-+
-+                    var event_uid = ical.get_uid ();
-+                    if (!event_dots.has_key (event_uid)) {
-+                        var event_dot = new Gtk.Image ();
-+                        event_dot.gicon = new ThemedIcon ("pager-checked-symbolic");
-+                        event_dot.pixel_size = 6;
-+
-+                        unowned Gtk.StyleContext style_context = event_dot.get_style_context ();
-+                        style_context.add_class (Granite.STYLE_CLASS_ACCENT);
-+                        style_context.add_provider (provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
-+
-+                        var source_calendar = (E.SourceCalendar?) source.get_extension (E.SOURCE_EXTENSION_CALENDAR);
-+                        Util.set_event_calendar_color (source_calendar, event_dot);
-+
-+                        event_dots[event_uid] = event_dot;
-+
-+                        event_grid.add (event_dot);
-+                    }
-+                }
-+            }
-+
-+            event_grid.show_all ();
-+        }
-+
-+        private void remove_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
-+            foreach (var component in events) {
-+                unowned ICal.Component ical = component.get_icalcomponent ();
-+                var event_uid = ical.get_uid ();
-+                var dot = event_dots[event_uid];
-+                if (dot != null) {
-+                    dot.destroy ();
-+                    event_dots.remove (event_uid);
-+                }
-+            }
-+        }
-+
-+        public void set_selected (bool selected) {
-+            if (selected) {
-+                set_state_flags (Gtk.StateFlags.SELECTED, true);
-+            } else {
-+                set_state_flags (Gtk.StateFlags.NORMAL, true);
-+            }
-+        }
-+
-+        public void grab_focus_force () {
-+            valid_grab = true;
-+            grab_focus ();
-+        }
-+
-+        public override void grab_focus () {
-+            if (valid_grab) {
-+                base.grab_focus ();
-+                valid_grab = false;
-+            }
-+        }
-+
-+        public void sensitive_container (bool sens) {
-+            label.sensitive = sens;
-+            event_grid.sensitive = sens;
-+        }
-+
-+        private bool on_button_press (Gdk.EventButton event) {
-+            if (event.type == Gdk.EventType.2BUTTON_PRESS && event.button == Gdk.BUTTON_PRIMARY)
-+                on_event_add (date);
-+            valid_grab = true;
-+            grab_focus ();
-+            return false;
-+        }
-+
-+        private bool on_key_press (Gdk.EventKey event) {
-+            if (event.keyval == Gdk.keyval_from_name ("Return") ) {
-+                on_event_add (date);
-+                return true;
-+            }
-+
-+            return false;
-+        }
-+    }
-+}
-diff --git a/src/Widgets/PanelLabel.vala b/src/Widgets/PanelLabel.vala
-index f253f9b..dff9a21 100644
---- a/src/Widgets/PanelLabel.vala
-+++ b/src/Widgets/PanelLabel.vala
-@@ -17,55 +17,57 @@
-  * Boston, MA 02110-1301 USA.
-  */
- 
--public class DateTime.Widgets.PanelLabel : Gtk.Grid {
--    private Gtk.Label date_label;
--    private Gtk.Label time_label;
--    private Services.TimeManager time_manager;
-+namespace DateTimeIndicator {
-+    public class Widgets.PanelLabel : Gtk.Grid {
-+        private Gtk.Label date_label;
-+        private Gtk.Label time_label;
-+        private Services.TimeManager time_manager;
- 
--    public string clock_format { get; set; }
--    public bool clock_show_seconds { get; set; }
--    public bool clock_show_weekday { get; set; }
-+        public string clock_format { get; set; }
-+        public bool clock_show_seconds { get; set; }
-+        public bool clock_show_weekday { get; set; }
- 
--    construct {
--        date_label = new Gtk.Label (null);
--        date_label.margin_end = 12;
-+        construct {
-+            date_label = new Gtk.Label (null);
-+            date_label.margin_end = 12;
- 
--        var date_revealer = new Gtk.Revealer ();
--        date_revealer.transition_type = Gtk.RevealerTransitionType.SLIDE_LEFT;
--        date_revealer.add (date_label);
-+            var date_revealer = new Gtk.Revealer ();
-+            date_revealer.transition_type = Gtk.RevealerTransitionType.SLIDE_LEFT;
-+            date_revealer.add (date_label);
- 
--        time_label = new Gtk.Label (null);
-+            time_label = new Gtk.Label (null);
- 
--        valign = Gtk.Align.CENTER;
--        add (date_revealer);
--        add (time_label);
-+            valign = Gtk.Align.CENTER;
-+            add (date_revealer);
-+            add (time_label);
- 
--        var clock_settings = new GLib.Settings ("io.elementary.desktop.wingpanel.datetime");
--        clock_settings.bind ("clock-format", this, "clock-format", SettingsBindFlags.DEFAULT);
--        clock_settings.bind ("clock-show-seconds", this, "clock-show-seconds", SettingsBindFlags.DEFAULT);
--        clock_settings.bind ("clock-show-date", date_revealer, "reveal_child", SettingsBindFlags.DEFAULT);
--        clock_settings.bind ("clock-show-weekday", this, "clock-show-weekday", SettingsBindFlags.DEFAULT);
-+            var clock_settings = new GLib.Settings ("io.elementary.desktop.wingpanel.datetime");
-+            clock_settings.bind ("clock-format", this, "clock-format", SettingsBindFlags.DEFAULT);
-+            clock_settings.bind ("clock-show-seconds", this, "clock-show-seconds", SettingsBindFlags.DEFAULT);
-+            clock_settings.bind ("clock-show-date", date_revealer, "reveal_child", SettingsBindFlags.DEFAULT);
-+            clock_settings.bind ("clock-show-weekday", this, "clock-show-weekday", SettingsBindFlags.DEFAULT);
- 
--        notify.connect (() => {
--            update_labels ();
--        });
-+            notify.connect (() => {
-+                update_labels ();
-+            });
- 
--        time_manager = Services.TimeManager.get_default ();
--        time_manager.minute_changed.connect (update_labels);
--        time_manager.notify["is-12h"].connect (update_labels);
--    }
--
--    private void update_labels () {
--        string date_format;
--        if (clock_format == "ISO8601") {
--            date_format = "%F";
--        } else {
--            date_format = Granite.DateTime.get_default_date_format (clock_show_weekday, true, false);
-+            time_manager = Services.TimeManager.get_default ();
-+            time_manager.minute_changed.connect (update_labels);
-+            time_manager.notify["is-12h"].connect (update_labels);
-         }
- 
--        date_label.label = time_manager.format (date_format);
-+        private void update_labels () {
-+            string date_format;
-+            if (clock_format == "ISO8601") {
-+                date_format = "%F";
-+            } else {
-+                date_format = Granite.DateTime.get_default_date_format (clock_show_weekday, true, false);
-+            }
- 
--        string time_format = Granite.DateTime.get_default_time_format (time_manager.is_12h, clock_show_seconds);
--        time_label.label = time_manager.format (time_format);
-+            date_label.label = time_manager.format (date_format);
-+
-+            string time_format = Granite.DateTime.get_default_time_format (time_manager.is_12h, clock_show_seconds);
-+            time_label.label = time_manager.format (time_format);
-+        }
-     }
- }
-diff --git a/src/Widgets/calendar/CalendarView.vala b/src/Widgets/calendar/CalendarView.vala
-deleted file mode 100644
-index ef3f8f9..0000000
---- a/src/Widgets/calendar/CalendarView.vala
-+++ /dev/null
-@@ -1,183 +0,0 @@
--/*-
-- * Copyright (c) 2011–2018 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 <http://www.gnu.org/licenses/>.
-- *
-- * Authored by: Maxwell Barvian
-- *              Corentin Noël <corentin@elementaryos.org>
-- */
--
--public class DateTime.Widgets.CalendarView : Gtk.Grid {
--    public signal void day_double_click ();
--    public signal void event_updates ();
--    public signal void selection_changed (GLib.DateTime? new_date);
--
--    public GLib.DateTime? selected_date { get; private set; }
--
--    private Grid grid;
--    private Gtk.Stack stack;
--    private Gtk.Grid big_grid;
--
--    construct {
--        var label = new Gtk.Label (new GLib.DateTime.now_local ().format (_("%OB, %Y")));
--        label.hexpand = true;
--        label.margin_start = 6;
--        label.xalign = 0;
--        label.width_chars = 13;
--
--        var provider = new Gtk.CssProvider ();
--        provider.load_from_resource ("/io/elementary/desktop/wingpanel/datetime/ControlHeader.css");
--
--        var label_style_context = label.get_style_context ();
--        label_style_context.add_class ("header-label");
--        label_style_context.add_provider (provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
--
--        var left_button = new Gtk.Button.from_icon_name ("pan-start-symbolic");
--        var center_button = new Gtk.Button.from_icon_name ("office-calendar-symbolic");
--        center_button.tooltip_text = _("Go to today's date");
--        var right_button = new Gtk.Button.from_icon_name ("pan-end-symbolic");
--
--        var box_buttons = new Gtk.Grid ();
--        box_buttons.margin_end = 6;
--        box_buttons.valign = Gtk.Align.CENTER;
--        box_buttons.get_style_context ().add_class (Gtk.STYLE_CLASS_LINKED);
--        box_buttons.add (left_button);
--        box_buttons.add (center_button);
--        box_buttons.add (right_button);
--
--        big_grid = create_big_grid ();
--
--        stack = new Gtk.Stack ();
--        stack.add (big_grid);
--        stack.show_all ();
--        stack.expand = true;
--
--        stack.notify["transition-running"].connect (() => {
--            if (stack.transition_running == false) {
--                stack.get_children ().foreach ((child) => {
--                    if (child != stack.visible_child) {
--                        child.destroy ();
--                    }
--                });
--            }
--        });
--
--        column_spacing = 6;
--        row_spacing = 6;
--        margin_start = margin_end = 10;
--        attach (label, 0, 0);
--        attach (box_buttons, 1, 0);
--        attach (stack, 0, 1, 2);
--
--        var model = CalendarModel.get_default ();
--        model.notify["data-range"].connect (() => {
--            label.label = model.month_start.format (_("%OB, %Y"));
--
--            sync_with_model ();
--
--            selected_date = null;
--            selection_changed (selected_date);
--        });
--
--        left_button.clicked.connect (() => {
--            model.change_month (-1);
--        });
--
--        right_button.clicked.connect (() => {
--            model.change_month (1);
--        });
--
--        center_button.clicked.connect (() => {
--            show_today ();
--        });
--    }
--
--    private Gtk.Grid create_big_grid () {
--        grid = new DateTime.Widgets.Grid ();
--        grid.show_all ();
--
--        grid.on_event_add.connect ((date) => {
--            show_date_in_maya (date);
--            day_double_click ();
--        });
--
--        grid.selection_changed.connect ((date) => {
--            selected_date = date;
--            selection_changed (date);
--        });
--
--        return grid;
--    }
--
--    public void show_today () {
--        var calmodel = CalendarModel.get_default ();
--        var today = Util.strip_time (new GLib.DateTime.now_local ());
--        var start = Util.get_start_of_month (today);
--        selected_date = today;
--        if (!start.equal (calmodel.month_start)) {
--            calmodel.month_start = start;
--        }
--        sync_with_model ();
--
--        grid.set_focus_to_today ();
--    }
--
--    // TODO: As far as maya supports it use the Dbus Activation feature to run the calendar-app.
--    public void show_date_in_maya (GLib.DateTime date) {
--        var command = "io.elementary.calendar --show-day %s".printf (date.format ("%F"));
--
--        try {
--            var appinfo = AppInfo.create_from_commandline (command, null, AppInfoCreateFlags.NONE);
--            appinfo.launch_uris (null, null);
--        } catch (GLib.Error e) {
--            var dialog = new Granite.MessageDialog.with_image_from_icon_name (
--                _("Unable To Launch Calendar"),
--                _("The program \"io.elementary.calendar\" may not be installed"),
--                "dialog-error"
--            );
--            dialog.show_error_details (e.message);
--            dialog.run ();
--            dialog.destroy ();
--        }
--    }
--
--    /* Sets the calendar widgets to the date range of the model */
--    private void sync_with_model () {
--        var model = CalendarModel.get_default ();
--        if (grid.grid_range != null && (model.data_range.equals (grid.grid_range) || grid.grid_range.first_dt.compare (model.data_range.first_dt) == 0)) {
--            grid.update_today ();
--            return; // nothing else to do
--        }
--
--        GLib.DateTime previous_first = null;
--        if (grid.grid_range != null)
--            previous_first = grid.grid_range.first_dt;
--
--        big_grid = create_big_grid ();
--        stack.add (big_grid);
--
--        grid.set_range (model.data_range, model.month_start);
--        grid.update_weeks (model.data_range.first_dt, model.num_weeks);
--
--        if (previous_first != null) {
--            if (previous_first.compare (grid.grid_range.first_dt) == -1) {
--                stack.transition_type = Gtk.StackTransitionType.SLIDE_LEFT;
--            } else {
--                stack.transition_type = Gtk.StackTransitionType.SLIDE_RIGHT;
--            }
--        }
--
--        stack.set_visible_child (big_grid);
--    }
--}
-diff --git a/src/Widgets/calendar/GridDay.vala b/src/Widgets/calendar/GridDay.vala
-deleted file mode 100644
-index a9b5a28..0000000
---- a/src/Widgets/calendar/GridDay.vala
-+++ /dev/null
-@@ -1,178 +0,0 @@
--// -*- Mode: vala; indent-tabs-mode: nil; tab-width: 4 -*-
--/*-
-- * Copyright (c) 2011–2018 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 <http://www.gnu.org/licenses/>.
-- *
-- * Authored by: Maxwell Barvian
-- *              Corentin Noël <corentin@elementaryos.org>
-- */
--
--/**
-- * Represents a single day on the grid.
-- */
--public class DateTime.Widgets.GridDay : Gtk.EventBox {
--    /*
--     * Event emitted when the day is double clicked or the ENTER key is pressed.
--     */
--    public signal void on_event_add (GLib.DateTime date);
--
--    public GLib.DateTime date { get; construct set; }
--
--    private static Gtk.CssProvider provider;
--    private static Widgets.CalendarModel model;
--
--    private Gee.HashMap<string, Gtk.Widget> event_dots;
--    private Gtk.Grid event_grid;
--    private Gtk.Label label;
--    private bool valid_grab = false;
--
--    public GridDay (GLib.DateTime date) {
--        Object (date: date);
--    }
--
--    static construct {
--        model = Widgets.CalendarModel.get_default ();
--
--        provider = new Gtk.CssProvider ();
--        provider.load_from_resource ("/io/elementary/desktop/wingpanel/datetime/GridDay.css");
--    }
--
--    construct {
--        unowned Gtk.StyleContext style_context = get_style_context ();
--        style_context.add_provider (provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
--        style_context.add_class ("circular");
--
--        label = new Gtk.Label (null);
--
--        event_grid = new Gtk.Grid ();
--        event_grid.halign = Gtk.Align.CENTER;
--        event_grid.height_request = 6;
--
--        var grid = new Gtk.Grid ();
--        grid.halign = grid.valign = Gtk.Align.CENTER;
--        grid.attach (label, 0, 0);
--        grid.attach (event_grid, 0, 1);
--
--        can_focus = true;
--        events |= Gdk.EventMask.BUTTON_PRESS_MASK;
--        events |= Gdk.EventMask.KEY_PRESS_MASK;
--        events |= Gdk.EventMask.SMOOTH_SCROLL_MASK;
--        set_size_request (35, 35);
--        halign = Gtk.Align.CENTER;
--        hexpand = true;
--        add (grid);
--        show_all ();
--
--        // Signals and handlers
--        button_press_event.connect (on_button_press);
--        key_press_event.connect (on_key_press);
--        scroll_event.connect ((event) => {return Util.on_scroll_event (event);});
--
--        notify["date"].connect (() => {
--            label.label = date.get_day_of_month ().to_string ();
--        });
--
--        event_dots = new Gee.HashMap<string, Gtk.Widget> ();
--
--        model.events_added.connect (add_event_dots);
--        model.events_removed.connect (remove_event_dots);
--    }
--
--    private void add_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
--        foreach (var component in events) {
--            if (event_dots.size >= 3) {
--                return;
--            }
--
--            if (Util.calcomp_is_on_day (component, date)) {
--                unowned ICal.Component ical = component.get_icalcomponent ();
--
--                var event_uid = ical.get_uid ();
--                if (!event_dots.has_key (event_uid)) {
--                    var event_dot = new Gtk.Image ();
--                    event_dot.gicon = new ThemedIcon ("pager-checked-symbolic");
--                    event_dot.pixel_size = 6;
--
--                    unowned Gtk.StyleContext style_context = event_dot.get_style_context ();
--                    style_context.add_class (Granite.STYLE_CLASS_ACCENT);
--                    style_context.add_provider (provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
--
--                    var source_calendar = (E.SourceCalendar?) source.get_extension (E.SOURCE_EXTENSION_CALENDAR);
--                    Util.set_event_calendar_color (source_calendar, event_dot);
--
--                    event_dots[event_uid] = event_dot;
--
--                    event_grid.add (event_dot);
--                }
--            }
--        }
--
--        event_grid.show_all ();
--    }
--
--    private void remove_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
--        foreach (var component in events) {
--            unowned ICal.Component ical = component.get_icalcomponent ();
--            var event_uid = ical.get_uid ();
--            var dot = event_dots[event_uid];
--            if (dot != null) {
--                dot.destroy ();
--                event_dots.remove (event_uid);
--            }
--        }
--    }
--
--    public void set_selected (bool selected) {
--        if (selected) {
--            set_state_flags (Gtk.StateFlags.SELECTED, true);
--        } else {
--            set_state_flags (Gtk.StateFlags.NORMAL, true);
--        }
--    }
--
--    public void grab_focus_force () {
--        valid_grab = true;
--        grab_focus ();
--    }
--
--    public override void grab_focus () {
--        if (valid_grab) {
--            base.grab_focus ();
--            valid_grab = false;
--        }
--    }
--
--    public void sensitive_container (bool sens) {
--        label.sensitive = sens;
--        event_grid.sensitive = sens;
--    }
--
--    private bool on_button_press (Gdk.EventButton event) {
--        if (event.type == Gdk.EventType.2BUTTON_PRESS && event.button == Gdk.BUTTON_PRIMARY)
--            on_event_add (date);
--        valid_grab = true;
--        grab_focus ();
--        return false;
--    }
--
--    private bool on_key_press (Gdk.EventKey event) {
--        if (event.keyval == Gdk.keyval_from_name ("Return") ) {
--            on_event_add (date);
--            return true;
--        }
--
--        return false;
--    }
--}
-
-From 11f11073d74dac1d831560c3a92687531aaf846e Mon Sep 17 00:00:00 2001
-From: Dirli <litandrej85@gmail.com>
-Date: Thu, 9 Apr 2020 20:46:31 +0300
-Subject: [PATCH 2/8] Events list moved to a separate file
-
----
- meson.build                    |   1 +
- src/Indicator.vala             | 113 +++------------------------------
- src/Widgets/EventsListBox.vala | 102 +++++++++++++++++++++++++++++
- 3 files changed, 113 insertions(+), 103 deletions(-)
- create mode 100644 src/Widgets/EventsListBox.vala
-
-diff --git a/meson.build b/meson.build
-index b44c5bd..1b52276 100644
---- a/meson.build
-+++ b/meson.build
-@@ -46,6 +46,7 @@ shared_module(
-     'src/Models/CalendarModel.vala',
-     'src/Widgets/CalendarView.vala',
-     'src/Widgets/EventRow.vala',
-+    'src/Widgets/EventsListBox.vala',
-     'src/Widgets/Grid.vala',
-     'src/Widgets/GridDay.vala',
-     'src/Widgets/PanelLabel.vala',
-diff --git a/src/Indicator.vala b/src/Indicator.vala
-index b712c12..6a8d001 100644
---- a/src/Indicator.vala
-+++ b/src/Indicator.vala
-@@ -22,9 +22,9 @@ namespace DateTimeIndicator {
-         public static GLib.Settings settings;
- 
-         private Widgets.PanelLabel panel_label;
--        private Gtk.Grid main_grid;
-         private Widgets.CalendarView calendar;
--        private Gtk.ListBox event_listbox;
-+        private Widgets.EventsListBox event_listbox;
-+        private Gtk.Grid main_grid;
-         private uint update_events_idle_source = 0;
- 
-         public Indicator () {
-@@ -56,24 +56,7 @@ namespace DateTimeIndicator {
-                 calendar = new Widgets.CalendarView ();
-                 calendar.margin_bottom = 6;
- 
--                var placeholder_label = new Gtk.Label (_("No Events on This Day"));
--                placeholder_label.wrap = true;
--                placeholder_label.wrap_mode = Pango.WrapMode.WORD;
--                placeholder_label.margin_start = 12;
--                placeholder_label.margin_end = 12;
--                placeholder_label.max_width_chars = 20;
--                placeholder_label.justify = Gtk.Justification.CENTER;
--                placeholder_label.show_all ();
--
--                var placeholder_style_context = placeholder_label.get_style_context ();
--                placeholder_style_context.add_class (Gtk.STYLE_CLASS_DIM_LABEL);
--                placeholder_style_context.add_class (Granite.STYLE_CLASS_H3_LABEL);
--
--                event_listbox = new Gtk.ListBox ();
--                event_listbox.selection_mode = Gtk.SelectionMode.NONE;
--                event_listbox.set_header_func (header_update_func);
--                event_listbox.set_placeholder (placeholder_label);
--                event_listbox.set_sort_func (sort_function);
-+                event_listbox = new Widgets.EventsListBox ();
- 
-                 var scrolled_window = new Gtk.ScrolledWindow (null, null);
-                 scrolled_window.hscrollbar_policy = Gtk.PolicyType.NEVER;
-@@ -84,11 +67,11 @@ namespace DateTimeIndicator {
- 
-                 main_grid = new Gtk.Grid ();
-                 main_grid.margin_top = 12;
--                main_grid.attach (calendar, 0, 0);
--                main_grid.attach (new Gtk.Separator (Gtk.Orientation.VERTICAL), 1, 0);
--                main_grid.attach (scrolled_window, 2, 0);
--                main_grid.attach (new Wingpanel.Widgets.Separator (), 0, 2, 3);
--                main_grid.attach (settings_button, 0, 3, 3);
-+                main_grid.attach (calendar,                                     0, 0);
-+                main_grid.attach (new Wingpanel.Widgets.Separator (),           0, 1);
-+                main_grid.attach (settings_button,                              0, 2);
-+                main_grid.attach (new Gtk.Separator (Gtk.Orientation.VERTICAL), 1, 0, 1, 3);
-+                main_grid.attach (scrolled_window,                              2, 0, 1, 3);
- 
-                 var size_group = new Gtk.SizeGroup (Gtk.SizeGroupMode.HORIZONTAL);
-                 size_group.add_widget (calendar);
-@@ -119,52 +102,6 @@ namespace DateTimeIndicator {
-             return main_grid;
-         }
- 
--        private void header_update_func (Gtk.ListBoxRow lbrow, Gtk.ListBoxRow? lbbefore) {
--            var row = (EventRow) lbrow;
--            if (lbbefore != null) {
--                var before = (EventRow) lbbefore;
--                if (row.is_allday == before.is_allday) {
--                    row.set_header (null);
--                    return;
--                }
--
--                if (row.is_allday != before.is_allday) {
--                    var header_label = new Granite.HeaderLabel (_("During the Day"));
--                    header_label.margin_start = header_label.margin_end = 6;
--
--                    row.set_header (header_label);
--                    return;
--                }
--            } else {
--                if (row.is_allday) {
--                    var allday_header = new Granite.HeaderLabel (_("All Day"));
--                    allday_header.margin_start = allday_header.margin_end = 6;
--
--                    row.set_header (allday_header);
--                }
--                return;
--            }
--        }
--
--        [CCode (instance_pos = -1)]
--        private int sort_function (Gtk.ListBoxRow child1, Gtk.ListBoxRow child2) {
--            var e1 = (EventRow) child1;
--            var e2 = (EventRow) child2;
--
--            if (e1.start_time.compare (e2.start_time) != 0) {
--                return e1.start_time.compare (e2.start_time);
--            }
--
--            // If they have the same date, sort them wholeday first
--            if (e1.is_allday) {
--                return -1;
--            } else if (e2.is_allday) {
--                return 1;
--            }
--
--            return 0;
--        }
--
-         private void update_events_model (E.Source source, Gee.Collection<ECal.Component> events) {
-             idle_update_events ();
-         }
-@@ -174,42 +111,12 @@ namespace DateTimeIndicator {
-                 GLib.Source.remove (update_events_idle_source);
-             }
- 
--            update_events_idle_source = GLib.Idle.add (update_events);
--        }
--
--        private bool update_events () {
--            foreach (unowned Gtk.Widget widget in event_listbox.get_children ()) {
--                widget.destroy ();
--            }
-+            update_events_idle_source = GLib.Idle.add (() => {
-+                event_listbox.update_events (calendar.selected_date);
- 
--            if (calendar.selected_date == null) {
-                 update_events_idle_source = 0;
-                 return GLib.Source.REMOVE;
--            }
--
--            var date = calendar.selected_date;
--
--            var model = Models.CalendarModel.get_default ();
--
--            var events_on_day = new Gee.TreeMap<string, EventRow> ();
--
--            model.source_events.@foreach ((source, component_map) => {
--                foreach (var comp in component_map.get_values ()) {
--                    if (Util.calcomp_is_on_day (comp, date)) {
--                        unowned ICal.Component ical = comp.get_icalcomponent ();
--                        var event_uid = ical.get_uid ();
--                        if (!events_on_day.has_key (event_uid)) {
--                            events_on_day[event_uid] = new EventRow (date, ical, source);
--
--                            event_listbox.add (events_on_day[event_uid]);
--                        }
--                    }
--                }
-             });
--
--            event_listbox.show_all ();
--            update_events_idle_source = 0;
--            return GLib.Source.REMOVE;
-         }
- 
-         public override void opened () {
-diff --git a/src/Widgets/EventsListBox.vala b/src/Widgets/EventsListBox.vala
-new file mode 100644
-index 0000000..547e4c5
---- /dev/null
-+++ b/src/Widgets/EventsListBox.vala
-@@ -0,0 +1,102 @@
-+namespace DateTimeIndicator {
-+    public class Widgets.EventsListBox : Gtk.ListBox {
-+
-+        public EventsListBox () {
-+            selection_mode = Gtk.SelectionMode.NONE;
-+
-+            var placeholder_label = new Gtk.Label (_("No Events on This Day"));
-+            placeholder_label.wrap = true;
-+            placeholder_label.wrap_mode = Pango.WrapMode.WORD;
-+            placeholder_label.margin_start = 12;
-+            placeholder_label.margin_end = 12;
-+            placeholder_label.max_width_chars = 20;
-+            placeholder_label.justify = Gtk.Justification.CENTER;
-+            placeholder_label.show_all ();
-+
-+            var placeholder_style_context = placeholder_label.get_style_context ();
-+            placeholder_style_context.add_class (Gtk.STYLE_CLASS_DIM_LABEL);
-+            placeholder_style_context.add_class (Granite.STYLE_CLASS_H3_LABEL);
-+
-+            set_header_func (header_update_func);
-+            set_placeholder (placeholder_label);
-+            set_sort_func (sort_function);
-+        }
-+
-+        public void update_events (GLib.DateTime? selected_date) {
-+            foreach (unowned Gtk.Widget widget in get_children ()) {
-+                widget.destroy ();
-+            }
-+
-+            if (selected_date == null) {
-+                return;
-+            }
-+
-+            var model = Models.CalendarModel.get_default ();
-+
-+            var events_on_day = new Gee.TreeMap<string, EventRow> ();
-+
-+            model.source_events.@foreach ((source, component_map) => {
-+                foreach (var comp in component_map.get_values ()) {
-+                    if (Util.calcomp_is_on_day (comp, selected_date)) {
-+                        unowned ICal.Component ical = comp.get_icalcomponent ();
-+                        var event_uid = ical.get_uid ();
-+                        if (!events_on_day.has_key (event_uid)) {
-+                            events_on_day[event_uid] = new EventRow (selected_date, ical, source);
-+
-+                            add (events_on_day[event_uid]);
-+                        }
-+                    }
-+                }
-+            });
-+
-+            show_all ();
-+            return;
-+        }
-+
-+        private void header_update_func (Gtk.ListBoxRow lbrow, Gtk.ListBoxRow? lbbefore) {
-+            var row = (EventRow) lbrow;
-+            if (lbbefore != null) {
-+                var before = (EventRow) lbbefore;
-+                if (row.is_allday == before.is_allday) {
-+                    row.set_header (null);
-+                    return;
-+                }
-+
-+                if (row.is_allday != before.is_allday) {
-+                    var header_label = new Granite.HeaderLabel (_("During the Day"));
-+                    header_label.margin_start = header_label.margin_end = 6;
-+
-+                    row.set_header (header_label);
-+                    return;
-+                }
-+            } else {
-+                if (row.is_allday) {
-+                    var allday_header = new Granite.HeaderLabel (_("All Day"));
-+                    allday_header.margin_start = allday_header.margin_end = 6;
-+
-+                    row.set_header (allday_header);
-+                }
-+                return;
-+            }
-+        }
-+
-+        [CCode (instance_pos = -1)]
-+        private int sort_function (Gtk.ListBoxRow child1, Gtk.ListBoxRow child2) {
-+            var e1 = (EventRow) child1;
-+            var e2 = (EventRow) child2;
-+
-+            if (e1.start_time.compare (e2.start_time) != 0) {
-+                return e1.start_time.compare (e2.start_time);
-+            }
-+
-+            // If they have the same date, sort them wholeday first
-+            if (e1.is_allday) {
-+                return -1;
-+            } else if (e2.is_allday) {
-+                return 1;
-+            }
-+
-+            return 0;
-+        }
-+    }
-+}
-
-From 262d91676f78f031bcfbff637344e52c63ab89bd Mon Sep 17 00:00:00 2001
-From: Dirli <litandrej85@gmail.com>
-Date: Sat, 11 Apr 2020 21:56:33 +0300
-Subject: [PATCH 3/8] added event manager
-
----
- meson.build                     |   1 +
- src/Indicator.vala              |  38 ++++--
- src/Models/CalendarModel.vala   | 224 +------------------------------
- src/Services/EventsManager.vala | 226 ++++++++++++++++++++++++++++++++
- src/Util/Util.vala              |  57 ++------
- src/Widgets/CalendarView.vala   |   9 ++
- src/Widgets/EventsListBox.vala  |   7 +-
- src/Widgets/Grid.vala           |  31 +++++
- src/Widgets/GridDay.vala        | 111 +++++++++++-----
- 9 files changed, 385 insertions(+), 319 deletions(-)
- create mode 100644 src/Services/EventsManager.vala
-
-diff --git a/meson.build b/meson.build
-index 1b52276..e348e3d 100644
---- a/meson.build
-+++ b/meson.build
-@@ -50,6 +50,7 @@ shared_module(
-     'src/Widgets/Grid.vala',
-     'src/Widgets/GridDay.vala',
-     'src/Widgets/PanelLabel.vala',
-+    'src/Services/EventsManager.vala',
-     'src/Services/TimeManager.vala',
-     dependencies: [
-         dependency('glib-2.0'),
-diff --git a/src/Indicator.vala b/src/Indicator.vala
-index 6a8d001..bf4358f 100644
---- a/src/Indicator.vala
-+++ b/src/Indicator.vala
-@@ -24,9 +24,14 @@ namespace DateTimeIndicator {
-         private Widgets.PanelLabel panel_label;
-         private Widgets.CalendarView calendar;
-         private Widgets.EventsListBox event_listbox;
-+
-+        private Services.EventsManager event_manager;
-+
-         private Gtk.Grid main_grid;
-         private uint update_events_idle_source = 0;
- 
-+        private bool opened_widget = false;
-+
-         public Indicator () {
-             Object (
-                 code_name: Wingpanel.Indicator.DATETIME,
-@@ -56,10 +61,22 @@ namespace DateTimeIndicator {
-                 calendar = new Widgets.CalendarView ();
-                 calendar.margin_bottom = 6;
- 
-+                event_manager = new Services.EventsManager ();
-+                event_manager.events_updated.connect (update_events_model);
-+                event_manager.events_added.connect ((source, events) => {
-+                    calendar.add_event_dots (source, events);
-+                    update_events_model (source, events);
-+                });
-+                event_manager.events_removed.connect ((source, events) => {
-+                    calendar.remove_event_dots (source, events);
-+                    update_events_model (source, events);
-+                });
-+
-                 event_listbox = new Widgets.EventsListBox ();
- 
-                 var scrolled_window = new Gtk.ScrolledWindow (null, null);
-                 scrolled_window.hscrollbar_policy = Gtk.PolicyType.NEVER;
-+                scrolled_window.vscrollbar_policy = Gtk.PolicyType.AUTOMATIC;
-                 scrolled_window.add (event_listbox);
- 
-                 var settings_button = new Gtk.ModelButton ();
-@@ -90,6 +107,12 @@ namespace DateTimeIndicator {
-                     close ();
-                 });
- 
-+                var model = Models.CalendarModel.get_default ();
-+                model.notify["month-start"].connect (() => {
-+                    model.compute_ranges ();
-+                    event_manager.load_all_sources ();
-+                });
-+
-                 settings_button.clicked.connect (() => {
-                     try {
-                         AppInfo.launch_default_for_uri ("settings://time", null);
-@@ -103,7 +126,9 @@ namespace DateTimeIndicator {
-         }
- 
-         private void update_events_model (E.Source source, Gee.Collection<ECal.Component> events) {
--            idle_update_events ();
-+            if (opened_widget) {
-+                idle_update_events ();
-+            }
-         }
- 
-         private void idle_update_events () {
-@@ -112,7 +137,7 @@ namespace DateTimeIndicator {
-             }
- 
-             update_events_idle_source = GLib.Idle.add (() => {
--                event_listbox.update_events (calendar.selected_date);
-+                event_listbox.update_events (calendar.selected_date, event_manager.source_events);
- 
-                 update_events_idle_source = 0;
-                 return GLib.Source.REMOVE;
-@@ -122,18 +147,15 @@ namespace DateTimeIndicator {
-         public override void opened () {
-             calendar.show_today ();
- 
--            Models.CalendarModel.get_default ().events_added.connect (update_events_model);
--            Models.CalendarModel.get_default ().events_updated.connect (update_events_model);
--            Models.CalendarModel.get_default ().events_removed.connect (update_events_model);
-+            opened_widget = true;
-         }
- 
-         public override void closed () {
--            Models.CalendarModel.get_default ().events_added.disconnect (update_events_model);
--            Models.CalendarModel.get_default ().events_updated.disconnect (update_events_model);
--            Models.CalendarModel.get_default ().events_removed.disconnect (update_events_model);
-+            opened_widget = false;
-         }
-     }
- }
-+
- public Wingpanel.Indicator get_indicator (Module module) {
-     debug ("Activating DateTime Indicator");
-     var indicator = new DateTimeIndicator.Indicator ();
-diff --git a/src/Models/CalendarModel.vala b/src/Models/CalendarModel.vala
-index 965b93e..d60a9ac 100644
---- a/src/Models/CalendarModel.vala
-+++ b/src/Models/CalendarModel.vala
-@@ -35,17 +35,6 @@ namespace DateTimeIndicator {
-         /* The start of week, ie. Monday=1 or Sunday=7 */
-         public GLib.DateWeekday week_starts_on { get; set; }
- 
--        public HashTable<E.Source, Gee.TreeMultiMap<string, ECal.Component>> source_events { get; private set; }
--
--        /* Notifies when events are added, updated, or removed */
--        public signal void events_added (E.Source source, Gee.Collection<ECal.Component> events);
--        public signal void events_updated (E.Source source, Gee.Collection<ECal.Component> events);
--        public signal void events_removed (E.Source source, Gee.Collection<ECal.Component> events);
--
--        private E.SourceRegistry registry { get; private set; }
--        private HashTable<string, ECal.Client> source_client;
--        private HashTable<string, ECal.ClientView> source_view;
--
-         private static CalendarModel? calendar_model = null;
- 
-         public static CalendarModel get_default () {
-@@ -59,12 +48,6 @@ namespace DateTimeIndicator {
-         }
- 
-         construct {
--            open.begin ();
--
--            source_client = new HashTable<string, ECal.Client> (str_hash, str_equal);
--            source_events = new HashTable<E.Source, Gee.TreeMultiMap<string, ECal.Component> > (Util.source_hash_func, Util.source_equal_func);
--            source_view = new HashTable<string, ECal.ClientView> (str_hash, str_equal);
--
-             int week_start = Posix.NLTime.FIRST_WEEKDAY.to_string ().data[0];
-             if (week_start >= 1 && week_start <= 7) {
-                 week_starts_on = (GLib.DateWeekday) (week_start - 1);
-@@ -72,66 +55,6 @@ namespace DateTimeIndicator {
- 
-             month_start = Util.get_start_of_month ();
-             compute_ranges ();
--            notify["month-start"].connect (on_parameter_changed);
--        }
--
--        private async void open () {
--            try {
--                registry = yield new E.SourceRegistry (null);
--                registry.source_removed.connect (remove_source);
--                registry.source_added.connect ((source) => add_source_async.begin (source));
--
--                // Add sources
--                registry.list_sources (E.SOURCE_EXTENSION_CALENDAR).foreach ((source) => {
--                    E.SourceCalendar cal = (E.SourceCalendar)source.get_extension (E.SOURCE_EXTENSION_CALENDAR);
--                    if (cal.selected == true && source.enabled == true) {
--                        add_source_async.begin (source);
--                    }
--                });
--
--                load_all_sources ();
--            } catch (GLib.Error error) {
--                critical (error.message);
--            }
--        }
--
--        private void load_all_sources () {
--            lock (source_client) {
--                foreach (var id in source_client.get_keys ()) {
--                    var source = registry.ref_source (id);
--                    E.SourceCalendar cal = (E.SourceCalendar)source.get_extension (E.SOURCE_EXTENSION_CALENDAR);
--
--                    if (cal.selected == true && source.enabled == true) {
--                        load_source (source);
--                    }
--                }
--            }
--        }
--
--        private void remove_source (E.Source source) {
--            debug ("Removing source '%s'", source.dup_display_name ());
--            /* Already out of the model, so do nothing */
--            unowned string uid = source.get_uid ();
--
--            if (!source_view.contains (uid)) {
--                return;
--            }
--
--            var current_view = source_view.get (uid);
--            try {
--                current_view.stop ();
--            } catch (Error e) {
--                warning (e.message);
--            }
--
--            source_view.remove (uid);
--            lock (source_client) {
--                source_client.remove (uid);
--            }
--
--            var events = source_events.get (source).get_values ().read_only_view;
--            events_removed (source, events);
--            source_events.remove (source);
-         }
- 
-         public void change_month (int relative) {
-@@ -144,7 +67,7 @@ namespace DateTimeIndicator {
- 
-         /* --- Helper Methods ---// */
- 
--        private void compute_ranges () {
-+        public void compute_ranges () {
-             var month_end = month_start.add_full (0, 1, -1);
- 
-             int dow = month_start.get_day_of_week ();
-@@ -182,150 +105,5 @@ namespace DateTimeIndicator {
- 
-             debug (@"Date ranges: ($data_range_first <= $month_start < $month_end <= $data_range_last)");
-         }
--
--        private void load_source (E.Source source) {
--            /* create empty source-event map */
--            var events = new Gee.TreeMultiMap<string, ECal.Component> (
--                (GLib.CompareDataFunc<ECal.Component>?) GLib.strcmp,
--                (GLib.CompareDataFunc<ECal.Component>?) Util.calcomponent_compare_func
--            );
--            source_events.set (source, events);
--            /* query client view */
--            var iso_first = ECal.isodate_from_time_t ((time_t)data_range.first_dt.to_unix ());
--            var iso_last = ECal.isodate_from_time_t ((time_t)data_range.last_dt.add_days (1).to_unix ());
--            var query = @"(occur-in-time-range? (make-time \"$iso_first\") (make-time \"$iso_last\"))";
--
--            ECal.Client client;
--            lock (source_client) {
--                client = source_client.get (source.dup_uid ());
--            }
--
--            if (client == null) {
--                return;
--            }
--
--            debug ("Getting client-view for source '%s'", source.dup_display_name ());
--            client.get_view.begin (query, null, (obj, results) => {
--                var view = on_client_view_received (results, source, client);
--                view.objects_added.connect ((objects) => on_objects_added (source, client, objects));
--                view.objects_removed.connect ((objects) => on_objects_removed (source, client, objects));
--                view.objects_modified.connect ((objects) => on_objects_modified (source, client, objects));
--                try {
--                    view.start ();
--                } catch (Error e) {
--                    critical (e.message);
--                }
--
--                source_view.set (source.dup_uid (), view);
--            });
--        }
--
--        private async void add_source_async (E.Source source) {
--            debug ("Adding source '%s'", source.dup_display_name ());
--            try {
--                var client = (ECal.Client) ECal.Client.connect_sync (source, ECal.ClientSourceType.EVENTS, -1, null);
--                source_client.insert (source.dup_uid (), client);
--            } catch (Error e) {
--                critical (e.message);
--            }
--
--            Idle.add (() => {
--                load_source (source);
--
--                return false;
--            });
--        }
--
--        private void debug_event (E.Source source, ECal.Component event) {
--            unowned ICal.Component comp = event.get_icalcomponent ();
--            debug (@"Event ['$(comp.get_summary())', $(source.dup_display_name()), $(comp.get_uid()))]");
--        }
--
--        /* --- Signal Handlers ---// */
--        private void on_parameter_changed () {
--            compute_ranges ();
--            load_all_sources ();
--        }
--
--        private ECal.ClientView on_client_view_received (AsyncResult results, E.Source source, ECal.Client client) {
--            ECal.ClientView view;
--            try {
--                debug ("Received client-view for source '%s'", source.dup_display_name ());
--                bool status = client.get_view.end (results, out view);
--                assert (status == true);
--            } catch (Error e) {
--                critical ("Error loading client-view from source '%s': %s", source.dup_display_name (), e.message);
--            }
--
--            return view;
--        }
--
--#if E_CAL_2_0
--        private void on_objects_added (E.Source source, ECal.Client client, SList<ICal.Component> objects) {
--#else
--        private void on_objects_added (E.Source source, ECal.Client client, SList<weak ICal.Component> objects) {
--#endif
--            debug (@"Received $(objects.length()) added event(s) for source '%s'", source.dup_display_name ());
--            var events = source_events.get (source);
--            var added_events = new Gee.ArrayList<ECal.Component> ((Gee.EqualDataFunc<ECal.Component>?) Util.calcomponent_equal_func);
--            objects.foreach ((comp) => {
--                unowned string uid = comp.get_uid ();
--#if E_CAL_2_0
--                client.generate_instances_for_object_sync (comp, (time_t) data_range.first_dt.to_unix (), (time_t) data_range.last_dt.to_unix (), null, (comp, start, end) => {
--                    var event = new ECal.Component.from_icalcomponent (comp);
--#else
--                client.generate_instances_for_object_sync (comp, (time_t) data_range.first_dt.to_unix (), (time_t) data_range.last_dt.to_unix (), (event, start, end) => {
--#endif
--                    debug_event (source, event);
--                    events.set (uid, event);
--                    added_events.add (event);
--                    return true;
--                });
--            });
--        }
--
--#if E_CAL_2_0
--        private void on_objects_modified (E.Source source, ECal.Client client, SList<ICal.Component> objects) {
--#else
--        private void on_objects_modified (E.Source source, ECal.Client client, SList<weak ICal.Component> objects) {
--#endif
--            debug (@"Received $(objects.length()) modified event(s) for source '%s'", source.dup_display_name ());
--            var updated_events = new Gee.ArrayList<ECal.Component> ((Gee.EqualDataFunc<ECal.Component>?) Util.calcomponent_equal_func);
--
--            objects.foreach ((comp) => {
--                unowned string uid = comp.get_uid ();
--                var events = source_events.get (source).get (uid);
--                updated_events.add_all (events);
--                foreach (var event in events) {
--                    debug_event (source, event);
--                }
--            });
--
--            events_updated (source, updated_events.read_only_view);
--        }
--
--#if E_CAL_2_0
--        private void on_objects_removed (E.Source source, ECal.Client client, SList<ECal.ComponentId?> cids) {
--#else
--        private void on_objects_removed (E.Source source, ECal.Client client, SList<weak ECal.ComponentId?> cids) {
--#endif
--            debug (@"Received $(cids.length()) removed event(s) for source '%s'", source.dup_display_name ());
--            var events = source_events.get (source);
--            var removed_events = new Gee.ArrayList<ECal.Component> ((Gee.EqualDataFunc<ECal.Component>?) Util.calcomponent_equal_func);
--
--            cids.foreach ((cid) => {
--                if (cid == null) {
--                    return;
--                }
--
--                var comps = events.get (cid.get_uid ());
--                foreach (ECal.Component event in comps) {
--                    removed_events.add (event);
--                    debug_event (source, event);
--                }
--            });
--
--            events_removed (source, removed_events.read_only_view);
--        }
-     }
- }
-diff --git a/src/Services/EventsManager.vala b/src/Services/EventsManager.vala
-new file mode 100644
-index 0000000..d939777
---- /dev/null
-+++ b/src/Services/EventsManager.vala
-@@ -0,0 +1,226 @@
-+namespace DateTimeIndicator {
-+    public class Services.EventsManager : GLib.Object {
-+        public signal void events_added (E.Source source, Gee.Collection<ECal.Component> events);
-+        public signal void events_updated (E.Source source, Gee.Collection<ECal.Component> events);
-+        public signal void events_removed (E.Source source, Gee.Collection<ECal.Component> events);
-+
-+        public HashTable<E.Source, Gee.TreeMultiMap<string, ECal.Component>> source_events { get; private set; }
-+
-+        private E.SourceRegistry registry { get; private set; }
-+        private HashTable<string, ECal.Client> source_client;
-+        private HashTable<string, ECal.ClientView> source_view;
-+
-+        public EventsManager () {
-+
-+        }
-+
-+        construct {
-+            source_client = new HashTable<string, ECal.Client> (str_hash, str_equal);
-+            source_events = new HashTable<E.Source, Gee.TreeMultiMap<string, ECal.Component> > (Util.source_hash_func, Util.source_equal_func);
-+            source_view = new HashTable<string, ECal.ClientView> (str_hash, str_equal);
-+
-+            open.begin ();
-+        }
-+
-+        private async void open () {
-+            try {
-+                registry = yield new E.SourceRegistry (null);
-+                registry.source_removed.connect (remove_source);
-+                registry.source_added.connect ((source) => add_source_async.begin (source));
-+
-+                // Add sources
-+                registry.list_sources (E.SOURCE_EXTENSION_CALENDAR).foreach ((source) => {
-+                    E.SourceCalendar cal = (E.SourceCalendar)source.get_extension (E.SOURCE_EXTENSION_CALENDAR);
-+                    if (cal.selected == true && source.enabled == true) {
-+                        add_source_async.begin (source);
-+                    }
-+                });
-+
-+                load_all_sources ();
-+            } catch (GLib.Error error) {
-+                critical (error.message);
-+            }
-+        }
-+
-+        public void load_all_sources () {
-+            lock (source_client) {
-+                foreach (var id in source_client.get_keys ()) {
-+                    var source = registry.ref_source (id);
-+                    E.SourceCalendar cal = (E.SourceCalendar)source.get_extension (E.SOURCE_EXTENSION_CALENDAR);
-+
-+                    if (cal.selected == true && source.enabled == true) {
-+                        load_source (source);
-+                    }
-+                }
-+            }
-+        }
-+
-+        private void remove_source (E.Source source) {
-+            debug ("Removing source '%s'", source.dup_display_name ());
-+            /* Already out of the model, so do nothing */
-+            unowned string uid = source.get_uid ();
-+
-+            if (!source_view.contains (uid)) {
-+                return;
-+            }
-+
-+            var current_view = source_view.get (uid);
-+            try {
-+                current_view.stop ();
-+            } catch (Error e) {
-+                warning (e.message);
-+            }
-+
-+            source_view.remove (uid);
-+            lock (source_client) {
-+                source_client.remove (uid);
-+            }
-+
-+            var events = source_events.get (source).get_values ().read_only_view;
-+            events_removed (source, events);
-+            source_events.remove (source);
-+        }
-+
-+        private void load_source (E.Source source) {
-+            var model = Models.CalendarModel.get_default ();
-+
-+            /* create empty source-event map */
-+            var events = new Gee.TreeMultiMap<string, ECal.Component> (
-+                (GLib.CompareDataFunc<ECal.Component>?) GLib.strcmp,
-+                (GLib.CompareDataFunc<ECal.Component>?) Util.calcomponent_compare_func
-+            );
-+            source_events.set (source, events);
-+            /* query client view */
-+            var iso_first = ECal.isodate_from_time_t ((time_t) model.data_range.first_dt.to_unix ());
-+            var iso_last = ECal.isodate_from_time_t ((time_t) model.data_range.last_dt.add_days (1).to_unix ());
-+            var query = @"(occur-in-time-range? (make-time \"$iso_first\") (make-time \"$iso_last\"))";
-+
-+            ECal.Client client;
-+            lock (source_client) {
-+                client = source_client.get (source.dup_uid ());
-+            }
-+
-+            if (client == null) {
-+                return;
-+            }
-+
-+            debug ("Getting client-view for source '%s'", source.dup_display_name ());
-+            client.get_view.begin (query, null, (obj, results) => {
-+                var view = on_client_view_received (results, source, client);
-+                view.objects_added.connect ((objects) => on_objects_added (source, client, objects));
-+                view.objects_removed.connect ((objects) => on_objects_removed (source, client, objects));
-+                view.objects_modified.connect ((objects) => on_objects_modified (source, client, objects));
-+                try {
-+                    view.start ();
-+                } catch (Error e) {
-+                    critical (e.message);
-+                }
-+
-+                source_view.set (source.dup_uid (), view);
-+            });
-+        }
-+
-+        private async void add_source_async (E.Source source) {
-+            debug ("Adding source '%s'", source.dup_display_name ());
-+            try {
-+                var client = (ECal.Client) ECal.Client.connect_sync (source, ECal.ClientSourceType.EVENTS, -1, null);
-+                source_client.insert (source.dup_uid (), client);
-+            } catch (Error e) {
-+                critical (e.message);
-+            }
-+
-+            Idle.add (() => {
-+                load_source (source);
-+
-+                return false;
-+            });
-+        }
-+
-+        private void debug_event (E.Source source, ECal.Component event) {
-+            unowned ICal.Component comp = event.get_icalcomponent ();
-+            debug (@"Event ['$(comp.get_summary())', $(source.dup_display_name()), $(comp.get_uid()))]");
-+        }
-+
-+        private ECal.ClientView on_client_view_received (AsyncResult results, E.Source source, ECal.Client client) {
-+            ECal.ClientView view;
-+            try {
-+                debug ("Received client-view for source '%s'", source.dup_display_name ());
-+                bool status = client.get_view.end (results, out view);
-+                assert (status == true);
-+            } catch (Error e) {
-+                critical ("Error loading client-view from source '%s': %s", source.dup_display_name (), e.message);
-+            }
-+
-+            return view;
-+        }
-+
-+#if E_CAL_2_0
-+        private void on_objects_added (E.Source source, ECal.Client client, SList<ICal.Component> objects) {
-+#else
-+        private void on_objects_added (E.Source source, ECal.Client client, SList<weak ICal.Component> objects) {
-+#endif
-+            debug (@"Received $(objects.length()) added event(s) for source '%s'", source.dup_display_name ());
-+            var events = source_events.get (source);
-+            var added_events = new Gee.ArrayList<ECal.Component> ((Gee.EqualDataFunc<ECal.Component>?) Util.calcomponent_equal_func);
-+            var model = Models.CalendarModel.get_default ();
-+            objects.foreach ((comp) => {
-+                unowned string uid = comp.get_uid ();
-+#if E_CAL_2_0
-+                client.generate_instances_for_object_sync (comp, (time_t) model.data_range.first_dt.to_unix (), (time_t) model.data_range.last_dt.to_unix (), null, (comp, start, end) => {
-+                    var event = new ECal.Component.from_icalcomponent (comp);
-+#else
-+                client.generate_instances_for_object_sync (comp, (time_t) model.data_range.first_dt.to_unix (), (time_t) model.data_range.last_dt.to_unix (), (event, start, end) => {
-+#endif
-+                    debug_event (source, event);
-+                    events.set (uid, event);
-+                    added_events.add (event);
-+                    return true;
-+                });
-+            });
-+        }
-+
-+#if E_CAL_2_0
-+        private void on_objects_modified (E.Source source, ECal.Client client, SList<ICal.Component> objects) {
-+#else
-+        private void on_objects_modified (E.Source source, ECal.Client client, SList<weak ICal.Component> objects) {
-+#endif
-+            debug (@"Received $(objects.length()) modified event(s) for source '%s'", source.dup_display_name ());
-+            var updated_events = new Gee.ArrayList<ECal.Component> ((Gee.EqualDataFunc<ECal.Component>?) Util.calcomponent_equal_func);
-+
-+            objects.foreach ((comp) => {
-+                unowned string uid = comp.get_uid ();
-+                var events = source_events.get (source).get (uid);
-+                updated_events.add_all (events);
-+                foreach (var event in events) {
-+                    debug_event (source, event);
-+                }
-+            });
-+
-+            events_updated (source, updated_events.read_only_view);
-+        }
-+
-+#if E_CAL_2_0
-+        private void on_objects_removed (E.Source source, ECal.Client client, SList<ECal.ComponentId?> cids) {
-+#else
-+        private void on_objects_removed (E.Source source, ECal.Client client, SList<weak ECal.ComponentId?> cids) {
-+#endif
-+            debug (@"Received $(cids.length()) removed event(s) for source '%s'", source.dup_display_name ());
-+            var events = source_events.get (source);
-+            var removed_events = new Gee.ArrayList<ECal.Component> ((Gee.EqualDataFunc<ECal.Component>?) Util.calcomponent_equal_func);
-+
-+            cids.foreach ((cid) => {
-+                if (cid == null) {
-+                    return;
-+                }
-+
-+                var comps = events.get (cid.get_uid ());
-+                foreach (ECal.Component event in comps) {
-+                    removed_events.add (event);
-+                    debug_event (source, event);
-+                }
-+            });
-+
-+            events_removed (source, removed_events.read_only_view);
-+        }
-+    }
-+}
-diff --git a/src/Util/Util.vala b/src/Util/Util.vala
-index c261f4b..b0bdf98 100644
---- a/src/Util/Util.vala
-+++ b/src/Util/Util.vala
-@@ -20,47 +20,6 @@
-  */
- 
- namespace DateTimeIndicator.Util {
--    static bool has_scrolled = false;
--
--    public bool on_scroll_event (Gdk.EventScroll event) {
--        double delta_x;
--        double delta_y;
--        event.get_scroll_deltas (out delta_x, out delta_y);
--
--        double choice = delta_x;
--
--        if (((int)delta_x).abs () < ((int)delta_y).abs ()) {
--            choice = delta_y;
--        }
--
--        /* It's mouse scroll ! */
--        if (choice == 1 || choice == -1) {
--            Models.CalendarModel.get_default ().change_month ((int)choice);
--
--            return true;
--        }
--
--        if (has_scrolled == true) {
--            return true;
--        }
--
--        if (choice > 0.3) {
--            reset_timer.begin ();
--            Models.CalendarModel.get_default ().change_month (1);
--
--            return true;
--        }
--
--        if (choice < -0.3) {
--            reset_timer.begin ();
--            Models.CalendarModel.get_default ().change_month (-1);
--
--            return true;
--        }
--
--        return false;
--    }
--
-     public GLib.DateTime get_start_of_month (owned GLib.DateTime? date = null) {
-         if (date == null) {
-             date = new GLib.DateTime.now_local ();
-@@ -225,12 +184,12 @@ namespace DateTimeIndicator.Util {
-         return a.dup_uid () == b.dup_uid ();
-     }
- 
--    public async void reset_timer () {
--        has_scrolled = true;
--        Timeout.add (500, () => {
--            has_scrolled = false;
--
--            return false;
--        });
--    }
-+    // public async void reset_timer () {
-+    //     has_scrolled = true;
-+    //     Timeout.add (500, () => {
-+    //         has_scrolled = false;
-+    //
-+    //         return false;
-+    //     });
-+    // }
- }
-diff --git a/src/Widgets/CalendarView.vala b/src/Widgets/CalendarView.vala
-index 65cee28..070580f 100644
---- a/src/Widgets/CalendarView.vala
-+++ b/src/Widgets/CalendarView.vala
-@@ -181,5 +181,14 @@ namespace DateTimeIndicator {
- 
-             stack.set_visible_child (big_grid);
-         }
-+
-+        public void add_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
-+            grid.add_event_dots (source, events);
-+        }
-+
-+
-+        public void remove_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
-+            grid.remove_event_dots (source, events);
-+        }
-     }
- }
-diff --git a/src/Widgets/EventsListBox.vala b/src/Widgets/EventsListBox.vala
-index 547e4c5..c25af2e 100644
---- a/src/Widgets/EventsListBox.vala
-+++ b/src/Widgets/EventsListBox.vala
-@@ -1,6 +1,5 @@
- namespace DateTimeIndicator {
-     public class Widgets.EventsListBox : Gtk.ListBox {
--
-         public EventsListBox () {
-             selection_mode = Gtk.SelectionMode.NONE;
- 
-@@ -22,7 +21,7 @@ namespace DateTimeIndicator {
-             set_sort_func (sort_function);
-         }
- 
--        public void update_events (GLib.DateTime? selected_date) {
-+        public void update_events (GLib.DateTime? selected_date, HashTable<E.Source, Gee.TreeMultiMap<string, ECal.Component>> source_events) {
-             foreach (unowned Gtk.Widget widget in get_children ()) {
-                 widget.destroy ();
-             }
-@@ -31,11 +30,9 @@ namespace DateTimeIndicator {
-                 return;
-             }
- 
--            var model = Models.CalendarModel.get_default ();
--
-             var events_on_day = new Gee.TreeMap<string, EventRow> ();
- 
--            model.source_events.@foreach ((source, component_map) => {
-+            source_events.@foreach ((source, component_map) => {
-                 foreach (var comp in component_map.get_values ()) {
-                     if (Util.calcomp_is_on_day (comp, selected_date)) {
-                         unowned ICal.Component ical = comp.get_icalcomponent ();
-diff --git a/src/Widgets/Grid.vala b/src/Widgets/Grid.vala
-index 165d11d..660f212 100644
---- a/src/Widgets/Grid.vala
-+++ b/src/Widgets/Grid.vala
-@@ -261,5 +261,36 @@ namespace DateTimeIndicator {
-             return date.get_year () * 10000 + date.get_month () * 100 + date.get_day_of_month ();
-         }
- 
-+        public void add_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
-+            data.foreach ((entry) => {
-+
-+                foreach (var component in events) {
-+                    if (entry.value.skip_day ()) {
-+                        return true;
-+                    }
-+
-+                    if (Util.calcomp_is_on_day (component, entry.value.date)) {
-+                        entry.value.add_dots (source, component.get_icalcomponent ());
-+                    }
-+                }
-+
-+                entry.value.show_event_grid ();
-+
-+                return true;
-+            });
-+        }
-+
-+        public void remove_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
-+            foreach (var component in events) {
-+                unowned ICal.Component ical = component.get_icalcomponent ();
-+                var event_uid = ical.get_uid ();
-+                data.foreach ((entry) => {
-+                    if (entry.value.exist_event (event_uid)) {
-+                        entry.value.remove_dots (event_uid);
-+                    }
-+                    return true;
-+                });
-+            }
-+        }
-     }
- }
-diff --git a/src/Widgets/GridDay.vala b/src/Widgets/GridDay.vala
-index 8c44443..00f82ea 100644
---- a/src/Widgets/GridDay.vala
-+++ b/src/Widgets/GridDay.vala
-@@ -31,6 +31,8 @@ namespace DateTimeIndicator {
- 
-         public GLib.DateTime date { get; construct set; }
- 
-+        private bool has_scrolled = false;
-+
-         private static Gtk.CssProvider provider;
-         private static Models.CalendarModel model;
- 
-@@ -79,59 +81,100 @@ namespace DateTimeIndicator {
-             // Signals and handlers
-             button_press_event.connect (on_button_press);
-             key_press_event.connect (on_key_press);
--            scroll_event.connect ((event) => {return Util.on_scroll_event (event);});
-+            scroll_event.connect (on_scroll_event);
- 
-             notify["date"].connect (() => {
-                 label.label = date.get_day_of_month ().to_string ();
-             });
- 
-             event_dots = new Gee.HashMap<string, Gtk.Widget> ();
--
--            model.events_added.connect (add_event_dots);
--            model.events_removed.connect (remove_event_dots);
-         }
- 
--        private void add_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
--            foreach (var component in events) {
--                if (event_dots.size >= 3) {
--                    return;
--                }
-+        public bool on_scroll_event (Gdk.EventScroll event) {
-+            double delta_x;
-+            double delta_y;
-+            event.get_scroll_deltas (out delta_x, out delta_y);
-+
-+            double choice = delta_x;
-+
-+            if (((int)delta_x).abs () < ((int)delta_y).abs ()) {
-+                choice = delta_y;
-+            }
-+
-+            /* It's mouse scroll ! */
-+            if (choice == 1 || choice == -1) {
-+                Models.CalendarModel.get_default ().change_month ((int)choice);
- 
--                if (Util.calcomp_is_on_day (component, date)) {
--                    unowned ICal.Component ical = component.get_icalcomponent ();
-+                return true;
-+            }
- 
--                    var event_uid = ical.get_uid ();
--                    if (!event_dots.has_key (event_uid)) {
--                        var event_dot = new Gtk.Image ();
--                        event_dot.gicon = new ThemedIcon ("pager-checked-symbolic");
--                        event_dot.pixel_size = 6;
-+            if (has_scrolled == true) {
-+                return true;
-+            }
- 
--                        unowned Gtk.StyleContext style_context = event_dot.get_style_context ();
--                        style_context.add_class (Granite.STYLE_CLASS_ACCENT);
--                        style_context.add_provider (provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
-+            if (choice > 0.3) {
-+                reset_timer.begin ();
-+                Models.CalendarModel.get_default ().change_month (1);
- 
--                        var source_calendar = (E.SourceCalendar?) source.get_extension (E.SOURCE_EXTENSION_CALENDAR);
--                        Util.set_event_calendar_color (source_calendar, event_dot);
-+                return true;
-+            }
- 
--                        event_dots[event_uid] = event_dot;
-+            if (choice < -0.3) {
-+                reset_timer.begin ();
-+                Models.CalendarModel.get_default ().change_month (-1);
- 
--                        event_grid.add (event_dot);
--                    }
--                }
-+                return true;
-             }
- 
-+            return false;
-+        }
-+
-+        public async void reset_timer () {
-+            has_scrolled = true;
-+            Timeout.add (500, () => {
-+                has_scrolled = false;
-+
-+                return false;
-+            });
-+        }
-+
-+        public bool skip_day () {
-+            return event_dots.size >= 3 ? true : false;
-+        }
-+
-+        public void show_event_grid () {
-             event_grid.show_all ();
-         }
- 
--        private void remove_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
--            foreach (var component in events) {
--                unowned ICal.Component ical = component.get_icalcomponent ();
--                var event_uid = ical.get_uid ();
--                var dot = event_dots[event_uid];
--                if (dot != null) {
--                    dot.destroy ();
--                    event_dots.remove (event_uid);
--                }
-+        public void add_dots (E.Source source, ICal.Component ical) {
-+            var event_uid = ical.get_uid ();
-+            if (!event_dots.has_key (event_uid)) {
-+                var event_dot = new Gtk. Image ();
-+                event_dot.gicon = new ThemedIcon ("pager-checked-symbolic");
-+                event_dot.pixel_size = 6;
-+
-+                unowned Gtk.StyleContext style_context = event_dot.get_style_context ();
-+                style_context.add_class (Granite.STYLE_CLASS_ACCENT);
-+                style_context.add_provider (provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
-+
-+                var source_calendar = (E.SourceCalendar?) source.get_extension (E.SOURCE_EXTENSION_CALENDAR);
-+                Util.set_event_calendar_color (source_calendar, event_dot);
-+
-+                event_dots[event_uid] = event_dot;
-+
-+                event_grid.add (event_dot);
-+            }
-+        }
-+
-+        public bool exist_event (string ical_uid) {
-+            return event_dots.has_key (ical_uid);
-+        }
-+
-+        public void remove_dots (string event_uid) {
-+            var dot = event_dots[event_uid];
-+            if (dot != null) {
-+                dot.destroy ();
-+                event_dots.unset (event_uid);
-             }
-         }
- 
-
-From c99db5e63b9c48aa1d069b97b98b0c07481de27d Mon Sep 17 00:00:00 2001
-From: Dirli <litandrej85@gmail.com>
-Date: Sat, 11 Apr 2020 23:44:14 +0300
-Subject: [PATCH 4/8] rename calendar elements
-
----
- meson.build                                   |  4 +--
- .../{GridDay.vala => CalendarDay.vala}        |  4 +--
- src/Widgets/{Grid.vala => CalendarGrid.vala}  | 26 +++++++--------
- src/Widgets/CalendarView.vala                 | 33 +++++++++----------
- 4 files changed, 33 insertions(+), 34 deletions(-)
- rename src/Widgets/{GridDay.vala => CalendarDay.vala} (98%)
- rename src/Widgets/{Grid.vala => CalendarGrid.vala} (91%)
-
-diff --git a/meson.build b/meson.build
-index e348e3d..dcdd9b2 100644
---- a/meson.build
-+++ b/meson.build
-@@ -44,11 +44,11 @@ shared_module(
-     'src/Util/DateRange.vala',
-     'src/Util/Util.vala',
-     'src/Models/CalendarModel.vala',
-+    'src/Widgets/CalendarDay.vala',
-+    'src/Widgets/CalendarGrid.vala',
-     'src/Widgets/CalendarView.vala',
-     'src/Widgets/EventRow.vala',
-     'src/Widgets/EventsListBox.vala',
--    'src/Widgets/Grid.vala',
--    'src/Widgets/GridDay.vala',
-     'src/Widgets/PanelLabel.vala',
-     'src/Services/EventsManager.vala',
-     'src/Services/TimeManager.vala',
-diff --git a/src/Widgets/GridDay.vala b/src/Widgets/CalendarDay.vala
-similarity index 98%
-rename from src/Widgets/GridDay.vala
-rename to src/Widgets/CalendarDay.vala
-index 00f82ea..a5ca920 100644
---- a/src/Widgets/GridDay.vala
-+++ b/src/Widgets/CalendarDay.vala
-@@ -23,7 +23,7 @@ namespace DateTimeIndicator {
- /**
-  * Represents a single day on the grid.
-  */
--    public class Widgets.GridDay : Gtk.EventBox {
-+    public class Widgets.CalendarDay : Gtk.EventBox {
-         /*
-          * Event emitted when the day is double clicked or the ENTER key is pressed.
-          */
-@@ -41,7 +41,7 @@ namespace DateTimeIndicator {
-         private Gtk.Label label;
-         private bool valid_grab = false;
- 
--        public GridDay (GLib.DateTime date) {
-+        public CalendarDay (GLib.DateTime date) {
-             Object (date: date);
-         }
- 
-diff --git a/src/Widgets/Grid.vala b/src/Widgets/CalendarGrid.vala
-similarity index 91%
-rename from src/Widgets/Grid.vala
-rename to src/Widgets/CalendarGrid.vala
-index 660f212..66e2757 100644
---- a/src/Widgets/Grid.vala
-+++ b/src/Widgets/CalendarGrid.vala
-@@ -24,7 +24,7 @@ namespace DateTimeIndicator {
- /**
-  * Represents the entire date grid as a table.
-  */
--    public class Widgets.Grid : Gtk.Grid {
-+    public class Widgets.CalendarGrid : Gtk.Grid {
-         public Util.DateRange grid_range { get; private set; }
- 
-         /*
-@@ -34,8 +34,8 @@ namespace DateTimeIndicator {
- 
-         public signal void selection_changed (GLib.DateTime new_date);
- 
--        private Gee.HashMap<uint, GridDay> data;
--        private GridDay selected_gridday;
-+        private Gee.HashMap<uint, Widgets.CalendarDay> data;
-+        private Widgets.CalendarDay selected_gridday;
-         private Gtk.Label[] header_labels;
-         private Gtk.Revealer[] week_labels;
- 
-@@ -61,12 +61,12 @@ namespace DateTimeIndicator {
- 
-             Indicator.settings.bind ("show-weeks", week_sep_revealer, "reveal-child", GLib.SettingsBindFlags.DEFAULT);
- 
--            data = new Gee.HashMap<uint, GridDay> ();
-+            data = new Gee.HashMap<uint, Widgets.CalendarDay> ();
-             events |= Gdk.EventMask.SCROLL_MASK;
-             events |= Gdk.EventMask.SMOOTH_SCROLL_MASK;
-         }
- 
--        private void on_day_focus_in (GridDay day) {
-+        private void on_day_focus_in (Widgets.CalendarDay day) {
-             debug ("on_day_focus_in %s", day.date.to_string ());
-             if (selected_gridday != null) {
-                 selected_gridday.set_selected (false);
-@@ -94,7 +94,7 @@ namespace DateTimeIndicator {
-             Gee.List<GLib.DateTime> dates = grid_range.to_list ();
-             for (int i = 0; i < dates.size; i++) {
-                 var date = dates[i];
--                GridDay? day = data[day_hash (date)];
-+                Widgets.CalendarDay? day = data[day_hash (date)];
-                 if (day != null && day.name == "today") {
-                     day.grab_focus_force ();
-                     return;
-@@ -119,7 +119,7 @@ namespace DateTimeIndicator {
- 
-             var new_dates = new_range.to_list ();
- 
--            var data_new = new Gee.HashMap<uint, GridDay> ();
-+            var data_new = new Gee.HashMap<uint, Widgets.CalendarDay> ();
- 
-             /* Assert that a valid number of weeks should be displayed */
-             assert (new_dates.size % 7 == 0);
-@@ -138,7 +138,7 @@ namespace DateTimeIndicator {
- 
-             for (i = 0; i < new_dates.size; i++) {
-                 var new_date = new_dates[i];
--                GridDay day;
-+                Widgets.CalendarDay day;
- 
-                 if (i < old_dates.size) {
-                     /* A widget already exists for this date, just change it */
-@@ -147,7 +147,7 @@ namespace DateTimeIndicator {
-                     day = update_day (data[day_hash (old_date)], new_date, today, month_start);
-                 } else {
-                     /* Still update_day to get the color of etc. right */
--                    day = update_day (new GridDay (new_date), new_date, today, month_start);
-+                    day = update_day (new Widgets.CalendarDay (new_date), new_date, today, month_start);
-                     day.on_event_add.connect ((date) => on_event_add (date));
-                     day.scroll_event.connect ((event) => { scroll_event (event); return false; });
-                     day.focus_in_event.connect ((event) => {
-@@ -182,9 +182,9 @@ namespace DateTimeIndicator {
-         }
- 
-         /**
--         * Updates the given GridDay so that it shows the given date. Changes to its style etc.
-+         * Updates the given CalendarDay so that it shows the given date. Changes to its style etc.
-          */
--        private GridDay update_day (GridDay day, GLib.DateTime new_date, GLib.DateTime today, GLib.DateTime month_start) {
-+        private Widgets.CalendarDay update_day (Widgets.CalendarDay day, GLib.DateTime new_date, GLib.DateTime today, GLib.DateTime month_start) {
-             update_today_style (day, new_date, today);
-             if (new_date.get_month () == month_start.get_month ()) {
-                 day.sensitive_container (true);
-@@ -237,13 +237,13 @@ namespace DateTimeIndicator {
-             int i = 0;
-             for (i = 0; i < dates.size; i++) {
-                 var date = dates[i];
--                GridDay? day = data[day_hash (date)];
-+                Widgets.CalendarDay? day = data[day_hash (date)];
-                 if (day == null) return;
-                 update_today_style (day, date, today);
-             }
-         }
- 
--        private void update_today_style (GridDay day, GLib.DateTime date, GLib.DateTime today) {
-+        private void update_today_style (Widgets.CalendarDay day, GLib.DateTime date, GLib.DateTime today) {
-             if (date.get_day_of_year () == today.get_day_of_year () && date.get_year () == today.get_year ()) {
-                 day.name = "today";
-                 day.get_style_context ().add_class (Granite.STYLE_CLASS_ACCENT);
-diff --git a/src/Widgets/CalendarView.vala b/src/Widgets/CalendarView.vala
-index 070580f..db2139c 100644
---- a/src/Widgets/CalendarView.vala
-+++ b/src/Widgets/CalendarView.vala
-@@ -26,7 +26,7 @@ namespace DateTimeIndicator {
- 
-         public GLib.DateTime? selected_date { get; private set; }
- 
--        private Widgets.Grid grid;
-+        private Widgets.CalendarGrid calendar_grid;
-         private Gtk.Stack stack;
-         private Gtk.Grid big_grid;
- 
-@@ -105,20 +105,20 @@ namespace DateTimeIndicator {
-         }
- 
-         private Gtk.Grid create_big_grid () {
--            grid = new Widgets.Grid ();
--            grid.show_all ();
-+            calendar_grid = new Widgets.CalendarGrid ();
-+            calendar_grid.show_all ();
- 
--            grid.on_event_add.connect ((date) => {
-+            calendar_grid.on_event_add.connect ((date) => {
-                 show_date_in_maya (date);
-                 day_double_click ();
-             });
- 
--            grid.selection_changed.connect ((date) => {
-+            calendar_grid.selection_changed.connect ((date) => {
-                 selected_date = date;
-                 selection_changed (date);
-             });
- 
--            return grid;
-+            return calendar_grid;
-         }
- 
-         public void show_today () {
-@@ -131,7 +131,7 @@ namespace DateTimeIndicator {
-             }
-             sync_with_model ();
- 
--            grid.set_focus_to_today ();
-+            calendar_grid.set_focus_to_today ();
-         }
- 
-         // TODO: As far as maya supports it use the Dbus Activation feature to run the calendar-app.
-@@ -156,23 +156,23 @@ namespace DateTimeIndicator {
-         /* Sets the calendar widgets to the date range of the model */
-         private void sync_with_model () {
-             var model = Models.CalendarModel.get_default ();
--            if (grid.grid_range != null && (model.data_range.equals (grid.grid_range) || grid.grid_range.first_dt.compare (model.data_range.first_dt) == 0)) {
--                grid.update_today ();
-+            if (calendar_grid.grid_range != null && (model.data_range.equals (calendar_grid.grid_range) || calendar_grid.grid_range.first_dt.compare (model.data_range.first_dt) == 0)) {
-+                calendar_grid.update_today ();
-                 return; // nothing else to do
-             }
- 
-             GLib.DateTime previous_first = null;
--            if (grid.grid_range != null)
--                previous_first = grid.grid_range.first_dt;
-+            if (calendar_grid.grid_range != null)
-+                previous_first = calendar_grid.grid_range.first_dt;
- 
-             big_grid = create_big_grid ();
-             stack.add (big_grid);
- 
--            grid.set_range (model.data_range, model.month_start);
--            grid.update_weeks (model.data_range.first_dt, model.num_weeks);
-+            calendar_grid.set_range (model.data_range, model.month_start);
-+            calendar_grid.update_weeks (model.data_range.first_dt, model.num_weeks);
- 
-             if (previous_first != null) {
--                if (previous_first.compare (grid.grid_range.first_dt) == -1) {
-+                if (previous_first.compare (calendar_grid.grid_range.first_dt) == -1) {
-                     stack.transition_type = Gtk.StackTransitionType.SLIDE_LEFT;
-                 } else {
-                     stack.transition_type = Gtk.StackTransitionType.SLIDE_RIGHT;
-@@ -183,12 +183,11 @@ namespace DateTimeIndicator {
-         }
- 
-         public void add_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
--            grid.add_event_dots (source, events);
-+            calendar_grid.add_event_dots (source, events);
-         }
- 
--
-         public void remove_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
--            grid.remove_event_dots (source, events);
-+            calendar_grid.remove_event_dots (source, events);
-         }
-     }
- }
-
-From 6b1b15305a9c90ff8b7e7244727a225984d34a14 Mon Sep 17 00:00:00 2001
-From: Dirli <litandrej85@gmail.com>
-Date: Sun, 12 Apr 2020 03:10:24 +0300
-Subject: [PATCH 5/8] evolution data server now optional
-
----
- meson.build                   | 55 ++++++++++++++---------
- meson_options.txt             |  1 +
- src/Indicator.vala            | 43 ++++++++++--------
- src/Util/Util.vala            | 85 ++++++++++++++++-------------------
- src/Widgets/CalendarDay.vala  |  2 +
- src/Widgets/CalendarGrid.vala |  2 +
- src/Widgets/CalendarView.vala |  2 +
- 7 files changed, 104 insertions(+), 86 deletions(-)
- create mode 100644 meson_options.txt
-
-diff --git a/meson.build b/meson.build
-index dcdd9b2..5fee9ab 100644
---- a/meson.build
-+++ b/meson.build
-@@ -24,18 +24,40 @@ gresource = gnome.compile_resources(
- wingpanel_dep = dependency('wingpanel-2.0')
- wingpanel_indicatorsdir = wingpanel_dep.get_pkgconfig_variable('indicatorsdir', define_variable: ['libdir', libdir])
- 
-+deps = [
-+    dependency('glib-2.0'),
-+    dependency('gobject-2.0'),
-+    dependency('granite'),
-+    dependency('gtk+-3.0'),
-+    wingpanel_dep,
-+    meson.get_compiler('vala').find_library('posix')
-+]
- 
--libecal_dep = dependency('libecal-2.0', required: false)
--if libecal_dep.found()
--    libical_dep = dependency('libical-glib')
--    add_project_arguments('--define=E_CAL_2_0', language: 'vala')
--    add_project_arguments('-DLIBICAL_GLIB_UNSTABLE_API=1', language: 'c')
--else
--    libecal_dep = dependency('libecal-1.2', version: '>=3.8.0')
--    libical_dep = dependency('libical')
--    add_project_arguments('--vapidir', join_paths(meson.current_source_dir(), 'vapi'), language: 'vala')
-+opt_files = []
-+
-+if get_option('evo')
-+    libecal_dep = dependency ('libecal-2.0', required: false)
-+    if libecal_dep.found()
-+        deps += dependency('libical-glib')
-+        deps += libecal_dep
-+        add_project_arguments('--define=E_CAL_2_0', language: 'vala')
-+        add_project_arguments('-DLIBICAL_GLIB_UNSTABLE_API=1', language: 'c')
-+    else
-+        deps += dependency('libecal-1.2', version: '>=3.8.0')
-+        deps += dependency('libical')
-+        add_project_arguments('--vapidir', join_paths(meson.current_source_dir(), 'vapi'), language: 'vala')
-+    endif
-+
-+    deps += dependency ('libedataserver-1.2')
-+    opt_files += files (
-+        'src/Widgets/EventRow.vala',
-+        'src/Widgets/EventsListBox.vala',
-+        'src/Services/EventsManager.vala',
-+    )
-+    add_project_arguments('--define=USE_EVO', language: 'vala')
- endif
- 
-+
- shared_module(
-     meson.project_name(),
-     gresource,
-@@ -47,21 +69,10 @@ shared_module(
-     'src/Widgets/CalendarDay.vala',
-     'src/Widgets/CalendarGrid.vala',
-     'src/Widgets/CalendarView.vala',
--    'src/Widgets/EventRow.vala',
--    'src/Widgets/EventsListBox.vala',
-     'src/Widgets/PanelLabel.vala',
--    'src/Services/EventsManager.vala',
-     'src/Services/TimeManager.vala',
--    dependencies: [
--        dependency('glib-2.0'),
--        dependency('gobject-2.0'),
--        dependency('granite'),
--        dependency('gtk+-3.0'),
--        libecal_dep,
--        dependency('libedataserver-1.2'),
--        libical_dep,
--        wingpanel_dep,
--    ],
-+    opt_files,
-+    dependencies: deps,
-     install: true,
-     install_dir : wingpanel_indicatorsdir,
- )
-diff --git a/meson_options.txt b/meson_options.txt
-new file mode 100644
-index 0000000..a1c9f0e
---- /dev/null
-+++ b/meson_options.txt
-@@ -0,0 +1 @@
-+option ('evo', type : 'boolean', value : true)
-diff --git a/src/Indicator.vala b/src/Indicator.vala
-index bf4358f..31c7af5 100644
---- a/src/Indicator.vala
-+++ b/src/Indicator.vala
-@@ -23,9 +23,11 @@ namespace DateTimeIndicator {
- 
-         private Widgets.PanelLabel panel_label;
-         private Widgets.CalendarView calendar;
--        private Widgets.EventsListBox event_listbox;
- 
-+#if USE_EVO
-+        private Widgets.EventsListBox event_listbox;
-         private Services.EventsManager event_manager;
-+#endif
- 
-         private Gtk.Grid main_grid;
-         private uint update_events_idle_source = 0;
-@@ -60,7 +62,20 @@ namespace DateTimeIndicator {
-             if (main_grid == null) {
-                 calendar = new Widgets.CalendarView ();
-                 calendar.margin_bottom = 6;
-+                calendar.day_double_click.connect (() => {
-+                    close ();
-+                });
-+
-+                var settings_button = new Gtk.ModelButton ();
-+                settings_button.text = _("Date & Time Settings…");
- 
-+                main_grid = new Gtk.Grid ();
-+                main_grid.margin_top = 12;
-+                main_grid.attach (calendar,                           0, 0);
-+                main_grid.attach (new Wingpanel.Widgets.Separator (), 0, 1);
-+                main_grid.attach (settings_button,                    0, 2);
-+
-+#if USE_EVO
-                 event_manager = new Services.EventsManager ();
-                 event_manager.events_updated.connect (update_events_model);
-                 event_manager.events_added.connect ((source, events) => {
-@@ -73,20 +88,16 @@ namespace DateTimeIndicator {
-                 });
- 
-                 event_listbox = new Widgets.EventsListBox ();
-+                event_listbox.row_activated.connect ((row) => {
-+                    calendar.show_date_in_maya (((EventRow) row).date);
-+                    close ();
-+                });
- 
-                 var scrolled_window = new Gtk.ScrolledWindow (null, null);
-                 scrolled_window.hscrollbar_policy = Gtk.PolicyType.NEVER;
-                 scrolled_window.vscrollbar_policy = Gtk.PolicyType.AUTOMATIC;
-                 scrolled_window.add (event_listbox);
- 
--                var settings_button = new Gtk.ModelButton ();
--                settings_button.text = _("Date & Time Settings…");
--
--                main_grid = new Gtk.Grid ();
--                main_grid.margin_top = 12;
--                main_grid.attach (calendar,                                     0, 0);
--                main_grid.attach (new Wingpanel.Widgets.Separator (),           0, 1);
--                main_grid.attach (settings_button,                              0, 2);
-                 main_grid.attach (new Gtk.Separator (Gtk.Orientation.VERTICAL), 1, 0, 1, 3);
-                 main_grid.attach (scrolled_window,                              2, 0, 1, 3);
- 
-@@ -94,23 +105,17 @@ namespace DateTimeIndicator {
-                 size_group.add_widget (calendar);
-                 size_group.add_widget (event_listbox);
- 
--                calendar.day_double_click.connect (() => {
--                    close ();
--                });
--
-                 calendar.selection_changed.connect ((date) => {
-                     idle_update_events ();
-                 });
--
--                event_listbox.row_activated.connect ((row) => {
--                    calendar.show_date_in_maya (((EventRow) row).date);
--                    close ();
--                });
-+#endif
- 
-                 var model = Models.CalendarModel.get_default ();
-                 model.notify["month-start"].connect (() => {
-                     model.compute_ranges ();
-+#if USE_EVO
-                     event_manager.load_all_sources ();
-+#endif
-                 });
- 
-                 settings_button.clicked.connect (() => {
-@@ -125,6 +130,7 @@ namespace DateTimeIndicator {
-             return main_grid;
-         }
- 
-+#if USE_EVO
-         private void update_events_model (E.Source source, Gee.Collection<ECal.Component> events) {
-             if (opened_widget) {
-                 idle_update_events ();
-@@ -143,6 +149,7 @@ namespace DateTimeIndicator {
-                 return GLib.Source.REMOVE;
-             });
-         }
-+#endif
- 
-         public override void opened () {
-             calendar.show_today ();
-diff --git a/src/Util/Util.vala b/src/Util/Util.vala
-index b0bdf98..26b343a 100644
---- a/src/Util/Util.vala
-+++ b/src/Util/Util.vala
-@@ -32,38 +32,6 @@ namespace DateTimeIndicator.Util {
-         return datetime.add_full (0, 0, 0, -datetime.get_hour (), -datetime.get_minute (), -datetime.get_second ());
-     }
- 
--    /**
--     * Converts the given ICal.Time to a DateTime.
--     */
--    public TimeZone timezone_from_ical (ICal.Time date) {
--        int is_daylight;
--        var interval = date.get_timezone ().get_utc_offset (null, out is_daylight);
--        bool is_positive = interval >= 0;
--        interval = interval.abs ();
--        var hours = (interval / 3600);
--        var minutes = (interval % 3600) / 60;
--        var hour_string = "%s%02d:%02d".printf (is_positive ? "+" : "-", hours, minutes);
--
--        return new TimeZone (hour_string);
--    }
--
--    /**
--     * Converts the given ICal.Time to a DateTime.
--     * XXX : Track next versions of evolution in order to convert ICal.Timezone to GLib.TimeZone with a dedicated function…
--     */
--    public GLib.DateTime ical_to_date_time (ICal.Time date) {
--#if E_CAL_2_0
--        int year, month, day, hour, minute, second;
--        date.get_date (out year, out month, out day);
--        date.get_time (out hour, out minute, out second);
--        return new GLib.DateTime (timezone_from_ical (date), year, month,
--            day, hour, minute, second);
--#else
--        return new GLib.DateTime (timezone_from_ical (date), date.year, date.month,
--            date.day, date.hour, date.minute, date.second);
--#endif
--    }
--
-     /**
-      * Say if an event lasts all day.
-      */
-@@ -78,6 +46,7 @@ namespace DateTimeIndicator.Util {
-         }
-     }
- 
-+#if USE_EVO
-     private Gee.HashMap<string, Gtk.CssProvider>? providers;
-     public void set_event_calendar_color (E.SourceCalendar cal, Gtk.Widget widget) {
-         if (providers == null) {
-@@ -104,6 +73,38 @@ namespace DateTimeIndicator.Util {
-         style_context.add_provider (providers[color], Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
-     }
- 
-+    /**
-+     * Converts the given ICal.Time to a DateTime.
-+     */
-+    public TimeZone timezone_from_ical (ICal.Time date) {
-+        int is_daylight;
-+        var interval = date.get_timezone ().get_utc_offset (null, out is_daylight);
-+        bool is_positive = interval >= 0;
-+        interval = interval.abs ();
-+        var hours = (interval / 3600);
-+        var minutes = (interval % 3600) / 60;
-+        var hour_string = "%s%02d:%02d".printf (is_positive ? "+" : "-", hours, minutes);
-+
-+        return new TimeZone (hour_string);
-+    }
-+
-+    /**
-+     * Converts the given ICal.Time to a DateTime.
-+     * XXX : Track next versions of evolution in order to convert ICal.Timezone to GLib.TimeZone with a dedicated function…
-+     */
-+    public GLib.DateTime ical_to_date_time (ICal.Time date) {
-+#if E_CAL_2_0
-+        int year, month, day, hour, minute, second;
-+        date.get_date (out year, out month, out day);
-+        date.get_time (out hour, out minute, out second);
-+        return new GLib.DateTime (timezone_from_ical (date), year, month,
-+            day, hour, minute, second);
-+#else
-+        return new GLib.DateTime (timezone_from_ical (date), date.year, date.month,
-+            date.day, date.hour, date.minute, date.second);
-+#endif
-+    }
-+
-     /*
-      * Gee Utility Functions
-      */
-@@ -113,6 +114,11 @@ namespace DateTimeIndicator.Util {
-         return key.dup_uid (). hash ();
-     }
- 
-+    /* Returns true if 'a' and 'b' are the same E.Source */
-+    public bool source_equal_func (E.Source a, E.Source b) {
-+        return a.dup_uid () == b.dup_uid ();
-+    }
-+
-     /* Returns true if 'a' and 'b' are the same ECal.Component */
-     public bool calcomponent_equal_func (ECal.Component a, ECal.Component b) {
-         return a.get_id ().equal (b.get_id ());
-@@ -178,18 +184,5 @@ namespace DateTimeIndicator.Util {
- 
-         return false;
-     }
--
--    /* Returns true if 'a' and 'b' are the same E.Source */
--    public bool source_equal_func (E.Source a, E.Source b) {
--        return a.dup_uid () == b.dup_uid ();
--    }
--
--    // public async void reset_timer () {
--    //     has_scrolled = true;
--    //     Timeout.add (500, () => {
--    //         has_scrolled = false;
--    //
--    //         return false;
--    //     });
--    // }
-+#endif
- }
-diff --git a/src/Widgets/CalendarDay.vala b/src/Widgets/CalendarDay.vala
-index a5ca920..f9c742a 100644
---- a/src/Widgets/CalendarDay.vala
-+++ b/src/Widgets/CalendarDay.vala
-@@ -146,6 +146,7 @@ namespace DateTimeIndicator {
-             event_grid.show_all ();
-         }
- 
-+#if USE_EVO
-         public void add_dots (E.Source source, ICal.Component ical) {
-             var event_uid = ical.get_uid ();
-             if (!event_dots.has_key (event_uid)) {
-@@ -177,6 +178,7 @@ namespace DateTimeIndicator {
-                 event_dots.unset (event_uid);
-             }
-         }
-+#endif
- 
-         public void set_selected (bool selected) {
-             if (selected) {
-diff --git a/src/Widgets/CalendarGrid.vala b/src/Widgets/CalendarGrid.vala
-index 66e2757..1d1e06c 100644
---- a/src/Widgets/CalendarGrid.vala
-+++ b/src/Widgets/CalendarGrid.vala
-@@ -261,6 +261,7 @@ namespace DateTimeIndicator {
-             return date.get_year () * 10000 + date.get_month () * 100 + date.get_day_of_month ();
-         }
- 
-+#if USE_EVO
-         public void add_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
-             data.foreach ((entry) => {
- 
-@@ -292,5 +293,6 @@ namespace DateTimeIndicator {
-                 });
-             }
-         }
-+#endif
-     }
- }
-diff --git a/src/Widgets/CalendarView.vala b/src/Widgets/CalendarView.vala
-index db2139c..77c233c 100644
---- a/src/Widgets/CalendarView.vala
-+++ b/src/Widgets/CalendarView.vala
-@@ -182,6 +182,7 @@ namespace DateTimeIndicator {
-             stack.set_visible_child (big_grid);
-         }
- 
-+#if USE_EVO
-         public void add_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
-             calendar_grid.add_event_dots (source, events);
-         }
-@@ -189,5 +190,6 @@ namespace DateTimeIndicator {
-         public void remove_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
-             calendar_grid.remove_event_dots (source, events);
-         }
-+#endif
-     }
- }
-
-From 16715f5114c0597d6961880bf877f04414400334 Mon Sep 17 00:00:00 2001
-From: Dirli <litandrej85@gmail.com>
-Date: Mon, 13 Apr 2020 22:21:07 +0300
-Subject: [PATCH 6/8] returned dots in the calendar
-
----
- src/Indicator.vala              |  6 ++--
- src/Services/EventsManager.vala | 28 +++++----------
- src/Widgets/CalendarDay.vala    | 62 ++++++++++++++++++---------------
- src/Widgets/CalendarGrid.vala   | 29 ++++++---------
- 4 files changed, 57 insertions(+), 68 deletions(-)
-
-diff --git a/src/Indicator.vala b/src/Indicator.vala
-index 31c7af5..c7550aa 100644
---- a/src/Indicator.vala
-+++ b/src/Indicator.vala
-@@ -105,8 +105,10 @@ namespace DateTimeIndicator {
-                 size_group.add_widget (calendar);
-                 size_group.add_widget (event_listbox);
- 
--                calendar.selection_changed.connect ((date) => {
--                    idle_update_events ();
-+                event_manager.open.begin ((obj, res) => {
-+                    calendar.selection_changed.connect ((date) => {
-+                        idle_update_events ();
-+                    });
-                 });
- #endif
- 
-diff --git a/src/Services/EventsManager.vala b/src/Services/EventsManager.vala
-index d939777..ad0397d 100644
---- a/src/Services/EventsManager.vala
-+++ b/src/Services/EventsManager.vala
-@@ -10,33 +10,25 @@ namespace DateTimeIndicator {
-         private HashTable<string, ECal.Client> source_client;
-         private HashTable<string, ECal.ClientView> source_view;
- 
--        public EventsManager () {
--
--        }
--
-         construct {
-             source_client = new HashTable<string, ECal.Client> (str_hash, str_equal);
-             source_events = new HashTable<E.Source, Gee.TreeMultiMap<string, ECal.Component> > (Util.source_hash_func, Util.source_equal_func);
-             source_view = new HashTable<string, ECal.ClientView> (str_hash, str_equal);
--
--            open.begin ();
-         }
- 
--        private async void open () {
-+        public async void open () {
-             try {
-                 registry = yield new E.SourceRegistry (null);
-                 registry.source_removed.connect (remove_source);
--                registry.source_added.connect ((source) => add_source_async.begin (source));
-+                registry.source_added.connect (add_source);
- 
-                 // Add sources
-                 registry.list_sources (E.SOURCE_EXTENSION_CALENDAR).foreach ((source) => {
--                    E.SourceCalendar cal = (E.SourceCalendar)source.get_extension (E.SOURCE_EXTENSION_CALENDAR);
-+                    E.SourceCalendar cal = (E.SourceCalendar) source.get_extension (E.SOURCE_EXTENSION_CALENDAR);
-                     if (cal.selected == true && source.enabled == true) {
--                        add_source_async.begin (source);
-+                        add_source (source);
-                     }
-                 });
--
--                load_all_sources ();
-             } catch (GLib.Error error) {
-                 critical (error.message);
-             }
-@@ -46,7 +38,7 @@ namespace DateTimeIndicator {
-             lock (source_client) {
-                 foreach (var id in source_client.get_keys ()) {
-                     var source = registry.ref_source (id);
--                    E.SourceCalendar cal = (E.SourceCalendar)source.get_extension (E.SOURCE_EXTENSION_CALENDAR);
-+                    E.SourceCalendar cal = (E.SourceCalendar) source.get_extension (E.SOURCE_EXTENSION_CALENDAR);
- 
-                     if (cal.selected == true && source.enabled == true) {
-                         load_source (source);
-@@ -120,7 +112,7 @@ namespace DateTimeIndicator {
-             });
-         }
- 
--        private async void add_source_async (E.Source source) {
-+        private void add_source (E.Source source) {
-             debug ("Adding source '%s'", source.dup_display_name ());
-             try {
-                 var client = (ECal.Client) ECal.Client.connect_sync (source, ECal.ClientSourceType.EVENTS, -1, null);
-@@ -129,11 +121,7 @@ namespace DateTimeIndicator {
-                 critical (e.message);
-             }
- 
--            Idle.add (() => {
--                load_source (source);
--
--                return false;
--            });
-+            load_source (source);
-         }
- 
-         private void debug_event (E.Source source, ECal.Component event) {
-@@ -177,6 +165,8 @@ namespace DateTimeIndicator {
-                     return true;
-                 });
-             });
-+
-+            events_added (source, added_events.read_only_view);
-         }
- 
- #if E_CAL_2_0
-diff --git a/src/Widgets/CalendarDay.vala b/src/Widgets/CalendarDay.vala
-index f9c742a..a2c4922 100644
---- a/src/Widgets/CalendarDay.vala
-+++ b/src/Widgets/CalendarDay.vala
-@@ -36,7 +36,8 @@ namespace DateTimeIndicator {
-         private static Gtk.CssProvider provider;
-         private static Models.CalendarModel model;
- 
--        private Gee.HashMap<string, Gtk.Widget> event_dots;
-+        // private Gee.HashMap<string, Gtk.Widget> event_dots;
-+        private Gee.ArrayList<string> event_dots;
-         private Gtk.Grid event_grid;
-         private Gtk.Label label;
-         private bool valid_grab = false;
-@@ -87,7 +88,8 @@ namespace DateTimeIndicator {
-                 label.label = date.get_day_of_month ().to_string ();
-             });
- 
--            event_dots = new Gee.HashMap<string, Gtk.Widget> ();
-+            // event_dots = new Gee.HashMap<string, Gtk.Widget> ();
-+            event_dots = new Gee.ArrayList<string> ();
-         }
- 
-         public bool on_scroll_event (Gdk.EventScroll event) {
-@@ -138,44 +140,46 @@ namespace DateTimeIndicator {
-             });
-         }
- 
--        public bool skip_day () {
--            return event_dots.size >= 3 ? true : false;
--        }
--
--        public void show_event_grid () {
--            event_grid.show_all ();
--        }
--
- #if USE_EVO
-         public void add_dots (E.Source source, ICal.Component ical) {
-             var event_uid = ical.get_uid ();
--            if (!event_dots.has_key (event_uid)) {
--                var event_dot = new Gtk. Image ();
--                event_dot.gicon = new ThemedIcon ("pager-checked-symbolic");
--                event_dot.pixel_size = 6;
-+            if (event_dots.contains (event_uid)) {
-+                return;
-+            }
- 
--                unowned Gtk.StyleContext style_context = event_dot.get_style_context ();
--                style_context.add_class (Granite.STYLE_CLASS_ACCENT);
--                style_context.add_provider (provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
-+            event_dots.add (event_uid);
-+            if (event_dots.size > 3) {
-+                return;
-+            }
- 
--                var source_calendar = (E.SourceCalendar?) source.get_extension (E.SOURCE_EXTENSION_CALENDAR);
--                Util.set_event_calendar_color (source_calendar, event_dot);
-+            var event_dot = new Gtk.Image ();
-+            event_dot.gicon = new ThemedIcon ("pager-checked-symbolic");
-+            event_dot.pixel_size = 6;
- 
--                event_dots[event_uid] = event_dot;
-+            unowned Gtk.StyleContext style_context = event_dot.get_style_context ();
-+            style_context.add_class (Granite.STYLE_CLASS_ACCENT);
-+            style_context.add_provider (provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
- 
--                event_grid.add (event_dot);
--            }
--        }
-+            var source_calendar = (E.SourceCalendar?) source.get_extension (E.SOURCE_EXTENSION_CALENDAR);
-+            Util.set_event_calendar_color (source_calendar, event_dot);
- 
--        public bool exist_event (string ical_uid) {
--            return event_dots.has_key (ical_uid);
-+            event_grid.add (event_dot);
-+            event_dot.show ();
-         }
- 
-         public void remove_dots (string event_uid) {
--            var dot = event_dots[event_uid];
--            if (dot != null) {
--                dot.destroy ();
--                event_dots.unset (event_uid);
-+            if (event_dots.contains (event_uid)) {
-+                return;
-+            }
-+
-+            event_dots.remove (event_uid);
-+            if (event_dots.size >= 3) {
-+                return;
-+            }
-+
-+            var w = event_grid.get_children ();
-+            if (w.length () > 0) {
-+                w.nth_data (0).destroy ();
-             }
-         }
- #endif
-diff --git a/src/Widgets/CalendarGrid.vala b/src/Widgets/CalendarGrid.vala
-index 1d1e06c..c544404 100644
---- a/src/Widgets/CalendarGrid.vala
-+++ b/src/Widgets/CalendarGrid.vala
-@@ -263,22 +263,16 @@ namespace DateTimeIndicator {
- 
- #if USE_EVO
-         public void add_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
--            data.foreach ((entry) => {
--
--                foreach (var component in events) {
--                    if (entry.value.skip_day ()) {
--                        return true;
--                    }
--
--                    if (Util.calcomp_is_on_day (component, entry.value.date)) {
--                        entry.value.add_dots (source, component.get_icalcomponent ());
--                    }
-+            foreach (var component in events) {
-+                unowned ICal.Component? icomp = component.get_icalcomponent ();
-+                ICal.Time? start_time = icomp.get_dtstart ();
-+                time_t start_unix = start_time.as_timet ();
-+                var t = new DateTime.from_unix_utc (start_unix);
-+                var d_hash = day_hash (t);
-+                if (data.has_key (d_hash)) {
-+                    data[d_hash].add_dots (source, component.get_icalcomponent ());
-                 }
--
--                entry.value.show_event_grid ();
--
--                return true;
--            });
-+            }
-         }
- 
-         public void remove_event_dots (E.Source source, Gee.Collection<ECal.Component> events) {
-@@ -286,9 +280,8 @@ namespace DateTimeIndicator {
-                 unowned ICal.Component ical = component.get_icalcomponent ();
-                 var event_uid = ical.get_uid ();
-                 data.foreach ((entry) => {
--                    if (entry.value.exist_event (event_uid)) {
--                        entry.value.remove_dots (event_uid);
--                    }
-+                    entry.value.remove_dots (event_uid);
-+
-                     return true;
-                 });
-             }
-
-From 149da28659883b01ceb0773b35c018d31aa1d912 Mon Sep 17 00:00:00 2001
-From: Dirli <litandrej85@gmail.com>
-Date: Tue, 14 Apr 2020 00:16:01 +0300
-Subject: [PATCH 7/8] issue #55
-
----
- src/Services/EventsManager.vala |  2 ++
- src/Widgets/CalendarDay.vala    |  2 +-
- src/Widgets/CalendarGrid.vala   | 11 +++++++----
- 3 files changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/src/Services/EventsManager.vala b/src/Services/EventsManager.vala
-index ad0397d..959762f 100644
---- a/src/Services/EventsManager.vala
-+++ b/src/Services/EventsManager.vala
-@@ -208,6 +208,8 @@ namespace DateTimeIndicator {
-                     removed_events.add (event);
-                     debug_event (source, event);
-                 }
-+
-+                events.remove_all (cid.get_uid ());
-             });
- 
-             events_removed (source, removed_events.read_only_view);
-diff --git a/src/Widgets/CalendarDay.vala b/src/Widgets/CalendarDay.vala
-index a2c4922..10d088c 100644
---- a/src/Widgets/CalendarDay.vala
-+++ b/src/Widgets/CalendarDay.vala
-@@ -168,7 +168,7 @@ namespace DateTimeIndicator {
-         }
- 
-         public void remove_dots (string event_uid) {
--            if (event_dots.contains (event_uid)) {
-+            if (!event_dots.contains (event_uid)) {
-                 return;
-             }
- 
-diff --git a/src/Widgets/CalendarGrid.vala b/src/Widgets/CalendarGrid.vala
-index c544404..6e6cbdb 100644
---- a/src/Widgets/CalendarGrid.vala
-+++ b/src/Widgets/CalendarGrid.vala
-@@ -279,11 +279,14 @@ namespace DateTimeIndicator {
-             foreach (var component in events) {
-                 unowned ICal.Component ical = component.get_icalcomponent ();
-                 var event_uid = ical.get_uid ();
--                data.foreach ((entry) => {
--                    entry.value.remove_dots (event_uid);
- 
--                    return true;
--                });
-+                ICal.Time? start_time = ical.get_dtstart ();
-+                time_t start_unix = start_time.as_timet ();
-+                var t = new DateTime.from_unix_utc (start_unix);
-+                var d_hash = day_hash (t);
-+                if (data.has_key (d_hash)) {
-+                    data[d_hash].remove_dots (event_uid);
-+                }
-             }
-         }
- #endif
-
-From a3910e2b8242b8c4837cc764da7f268a02d05d6e Mon Sep 17 00:00:00 2001
-From: Dirli <litandrej85@gmail.com>
-Date: Fri, 17 Apr 2020 00:52:53 +0300
-Subject: [PATCH 8/8] issue #127
-
----
- src/Indicator.vala              |  1 +
- src/Models/CalendarModel.vala   | 17 ++++++---
- src/Services/EventsManager.vala | 17 +++++++++
- src/Widgets/CalendarDay.vala    |  3 +-
- src/Widgets/CalendarGrid.vala   | 66 ++++++++++++++++++++++-----------
- src/Widgets/CalendarView.vala   | 17 ++++-----
- src/Widgets/EventsListBox.vala  |  6 ++-
- 7 files changed, 87 insertions(+), 40 deletions(-)
-
-diff --git a/src/Indicator.vala b/src/Indicator.vala
-index c7550aa..63614e0 100644
---- a/src/Indicator.vala
-+++ b/src/Indicator.vala
-@@ -116,6 +116,7 @@ namespace DateTimeIndicator {
-                 model.notify["month-start"].connect (() => {
-                     model.compute_ranges ();
- #if USE_EVO
-+                    event_listbox.clear_list ();
-                     event_manager.load_all_sources ();
- #endif
-                 });
-diff --git a/src/Models/CalendarModel.vala b/src/Models/CalendarModel.vala
-index d60a9ac..48b6e78 100644
---- a/src/Models/CalendarModel.vala
-+++ b/src/Models/CalendarModel.vala
-@@ -57,12 +57,17 @@ namespace DateTimeIndicator {
-             compute_ranges ();
-         }
- 
--        public void change_month (int relative) {
--            month_start = month_start.add_months (relative);
--        }
--
--        public void change_year (int relative) {
--            month_start = month_start.add_years (relative);
-+        public void change_month (int m_relative, int y_relative = 0) {
-+            if (y_relative == 0) {
-+                month_start = month_start.add_months (m_relative);
-+            } else {
-+                if (m_relative == 0) {
-+                    month_start = month_start.add_years (y_relative);
-+                } else {
-+                    GLib.DateTime tmp_date = month_start.add_months (m_relative);
-+                    month_start = tmp_date.add_years (y_relative);
-+                }
-+            }
-         }
- 
-         /* --- Helper Methods ---// */
-diff --git a/src/Services/EventsManager.vala b/src/Services/EventsManager.vala
-index 959762f..6ece557 100644
---- a/src/Services/EventsManager.vala
-+++ b/src/Services/EventsManager.vala
-@@ -1,3 +1,20 @@
-+/*
-+ * Copyright (c) 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 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/>.
-+ */
-+
- namespace DateTimeIndicator {
-     public class Services.EventsManager : GLib.Object {
-         public signal void events_added (E.Source source, Gee.Collection<ECal.Component> events);
-diff --git a/src/Widgets/CalendarDay.vala b/src/Widgets/CalendarDay.vala
-index 10d088c..735fdc1 100644
---- a/src/Widgets/CalendarDay.vala
-+++ b/src/Widgets/CalendarDay.vala
-@@ -36,7 +36,6 @@ namespace DateTimeIndicator {
-         private static Gtk.CssProvider provider;
-         private static Models.CalendarModel model;
- 
--        // private Gee.HashMap<string, Gtk.Widget> event_dots;
-         private Gee.ArrayList<string> event_dots;
-         private Gtk.Grid event_grid;
-         private Gtk.Label label;
-@@ -105,7 +104,7 @@ namespace DateTimeIndicator {
- 
-             /* It's mouse scroll ! */
-             if (choice == 1 || choice == -1) {
--                Models.CalendarModel.get_default ().change_month ((int)choice);
-+                Models.CalendarModel.get_default ().change_month ((int) choice);
- 
-                 return true;
-             }
-diff --git a/src/Widgets/CalendarGrid.vala b/src/Widgets/CalendarGrid.vala
-index 6e6cbdb..ef8edb6 100644
---- a/src/Widgets/CalendarGrid.vala
-+++ b/src/Widgets/CalendarGrid.vala
-@@ -32,7 +32,7 @@ namespace DateTimeIndicator {
-          */
-         public signal void on_event_add (GLib.DateTime date);
- 
--        public signal void selection_changed (GLib.DateTime new_date);
-+        public signal void selection_changed (GLib.DateTime new_date, bool up);
- 
-         private Gee.HashMap<uint, Widgets.CalendarDay> data;
-         private Widgets.CalendarDay selected_gridday;
-@@ -66,25 +66,32 @@ namespace DateTimeIndicator {
-             events |= Gdk.EventMask.SMOOTH_SCROLL_MASK;
-         }
- 
--        private void on_day_focus_in (Widgets.CalendarDay day) {
--            debug ("on_day_focus_in %s", day.date.to_string ());
-+        private bool on_day_focus_in (Gdk.EventFocus event) {
-+            var day = get_focus_child ();
-+            if (day == null) {
-+                return false;
-+            }
-+
-             if (selected_gridday != null) {
-                 selected_gridday.set_selected (false);
-             }
- 
--            var selected_date = day.date;
--            selected_gridday = day;
--            day.set_selected (true);
-+            var selected_date = (day as Widgets.CalendarDay).date;
-+            selected_gridday = day as Widgets.CalendarDay;
-+            (day as Widgets.CalendarDay).set_selected (true);
-             day.set_state_flags (Gtk.StateFlags.FOCUSED, false);
--            selection_changed (selected_date);
-             var calmodel = Models.CalendarModel.get_default ();
-             var date_month = selected_date.get_month () - calmodel.month_start.get_month ();
-             var date_year = selected_date.get_year () - calmodel.month_start.get_year ();
- 
-             if (date_month != 0 || date_year != 0) {
--                calmodel.change_month (date_month);
--                calmodel.change_year (date_year);
-+                selection_changed (selected_date, false);
-+                calmodel.change_month (date_month, date_year);
-+            } else {
-+                selection_changed (selected_date, true);
-             }
-+
-+            return false;
-         }
- 
-         public void set_focus_to_today () {
-@@ -106,7 +113,7 @@ namespace DateTimeIndicator {
-          * Sets the given range to be displayed in the grid. Note that the number of days
-          * must remain the same.
-          */
--        public void set_range (Util.DateRange new_range, GLib.DateTime month_start) {
-+        public void set_range (Util.DateRange new_range, GLib.DateTime month_start, GLib.DateTime? selected_date) {
-             var today = new GLib.DateTime.now_local ();
- 
-             Gee.List<GLib.DateTime> old_dates;
-@@ -138,28 +145,46 @@ namespace DateTimeIndicator {
- 
-             for (i = 0; i < new_dates.size; i++) {
-                 var new_date = new_dates[i];
--                Widgets.CalendarDay day;
-+                Widgets.CalendarDay? day = null;
- 
-                 if (i < old_dates.size) {
-                     /* A widget already exists for this date, just change it */
- 
-                     var old_date = old_dates[i];
--                    day = update_day (data[day_hash (old_date)], new_date, today, month_start);
--                } else {
-+                    var d_hash = day_hash (old_date);
-+                    if (data.has_key (d_hash)) {
-+                        day = data[d_hash];
-+                    }
-+                }
-+
-+                if (day == null) {
-                     /* Still update_day to get the color of etc. right */
--                    day = update_day (new Widgets.CalendarDay (new_date), new_date, today, month_start);
-+                    day = new Widgets.CalendarDay (new_date);
-                     day.on_event_add.connect ((date) => on_event_add (date));
--                    day.scroll_event.connect ((event) => { scroll_event (event); return false; });
--                    day.focus_in_event.connect ((event) => {
--                        on_day_focus_in (day);
--
-+                    day.scroll_event.connect ((event) => {
-+                        scroll_event (event);
-                         return false;
-                     });
-+                    day.focus_in_event.connect (on_day_focus_in);
- 
-                     attach (day, col + 2, row);
-                     day.show_all ();
-                 }
- 
-+                update_day (day, new_date, month_start);
-+                update_today_style (day, new_date, today);
-+                if (selected_date != null && day.date.equal (selected_date)) {
-+                    /* disabled the signal to avoid unnecessary signals and selected
-+                    * the specified day from the new period */
-+                    debug (@"focus selected day $selected_date");
-+                    day.focus_in_event.disconnect (on_day_focus_in);
-+                    day.grab_focus_force ();
-+                    day.set_selected (true);
-+                    day.set_state_flags (Gtk.StateFlags.FOCUSED, false);
-+                    selected_gridday = day;
-+                    day.focus_in_event.connect (on_day_focus_in);
-+                }
-+
-                 col = (col + 1) % 7;
-                 row = (col == 0) ? row + 1 : row;
-                 data_new.set (day_hash (new_date), day);
-@@ -184,8 +209,7 @@ namespace DateTimeIndicator {
-         /**
-          * Updates the given CalendarDay so that it shows the given date. Changes to its style etc.
-          */
--        private Widgets.CalendarDay update_day (Widgets.CalendarDay day, GLib.DateTime new_date, GLib.DateTime today, GLib.DateTime month_start) {
--            update_today_style (day, new_date, today);
-+        private void update_day (Widgets.CalendarDay day, GLib.DateTime new_date, GLib.DateTime month_start) {
-             if (new_date.get_month () == month_start.get_month ()) {
-                 day.sensitive_container (true);
-             } else {
-@@ -193,8 +217,6 @@ namespace DateTimeIndicator {
-             }
- 
-             day.date = new_date;
--
--            return day;
-         }
- 
-         public void update_weeks (GLib.DateTime date, int nr_of_weeks) {
-diff --git a/src/Widgets/CalendarView.vala b/src/Widgets/CalendarView.vala
-index 77c233c..fe957ab 100644
---- a/src/Widgets/CalendarView.vala
-+++ b/src/Widgets/CalendarView.vala
-@@ -85,10 +85,7 @@ namespace DateTimeIndicator {
-             model.notify["data-range"].connect (() => {
-                 label.label = model.month_start.format (_("%OB, %Y"));
- 
--                sync_with_model ();
--
--                selected_date = null;
--                selection_changed (selected_date);
-+                sync_with_model (selected_date != null);
-             });
- 
-             left_button.clicked.connect (() => {
-@@ -113,9 +110,11 @@ namespace DateTimeIndicator {
-                 day_double_click ();
-             });
- 
--            calendar_grid.selection_changed.connect ((date) => {
-+            calendar_grid.selection_changed.connect ((date, up) => {
-                 selected_date = date;
--                selection_changed (date);
-+                if (up) {
-+                    selection_changed (date);
-+                }
-             });
- 
-             return calendar_grid;
-@@ -154,9 +153,9 @@ namespace DateTimeIndicator {
-         }
- 
-         /* Sets the calendar widgets to the date range of the model */
--        private void sync_with_model () {
-+        private void sync_with_model (bool show_selected = false) {
-             var model = Models.CalendarModel.get_default ();
--            if (calendar_grid.grid_range != null && (model.data_range.equals (calendar_grid.grid_range) || calendar_grid.grid_range.first_dt.compare (model.data_range.first_dt) == 0)) {
-+            if (!show_selected && calendar_grid.grid_range != null && (model.data_range.equals (calendar_grid.grid_range) || calendar_grid.grid_range.first_dt.compare (model.data_range.first_dt) == 0)) {
-                 calendar_grid.update_today ();
-                 return; // nothing else to do
-             }
-@@ -168,7 +167,7 @@ namespace DateTimeIndicator {
-             big_grid = create_big_grid ();
-             stack.add (big_grid);
- 
--            calendar_grid.set_range (model.data_range, model.month_start);
-+            calendar_grid.set_range (model.data_range, model.month_start, show_selected ? selected_date : null);
-             calendar_grid.update_weeks (model.data_range.first_dt, model.num_weeks);
- 
-             if (previous_first != null) {
-diff --git a/src/Widgets/EventsListBox.vala b/src/Widgets/EventsListBox.vala
-index c25af2e..9022072 100644
---- a/src/Widgets/EventsListBox.vala
-+++ b/src/Widgets/EventsListBox.vala
-@@ -21,10 +21,14 @@ namespace DateTimeIndicator {
-             set_sort_func (sort_function);
-         }
- 
--        public void update_events (GLib.DateTime? selected_date, HashTable<E.Source, Gee.TreeMultiMap<string, ECal.Component>> source_events) {
-+        public void clear_list () {
-             foreach (unowned Gtk.Widget widget in get_children ()) {
-                 widget.destroy ();
-             }
-+        }
-+
-+        public void update_events (GLib.DateTime? selected_date, HashTable<E.Source, Gee.TreeMultiMap<string, ECal.Component>> source_events) {
-+            clear_list ();
- 
-             if (selected_date == null) {
-                 return;
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
index c6a0e2f7779..1d2d94ad01a 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,26 +20,17 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-datetime";
-  version = "2.2.2";
+  version = "2.2.5";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0a0pqrpmrdd5pch30lizr9righlc7165z7krmnaxrzd0fvfkbr2h";
+    sha256 = "0z5a4jkmg8jw3yjdq89njhqcpms2rbq7rnsh83q9gh8v3qidk75d";
   };
 
-  patches = [
-    # https://github.com/elementary/wingpanel-indicator-datetime/pull/207
-    # Fixes lots of issues despite being rejected upstream
-    # https://github.com/elementary/wingpanel-indicator-datetime/issues/206
-    # https://github.com/elementary/wingpanel-indicator-datetime/issues/55
-    # https://github.com/elementary/wingpanel-indicator-datetime/issues/127
-    ./207.patch
-  ];
-
   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..838c592c989 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
@@ -27,7 +28,7 @@ stdenv.mkDerivation rec {
   };
 
   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 0b9d95faf0b..76d6368fceb 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
@@ -15,17 +16,17 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-network";
-  version = "2.2.3";
+  version = "2.2.4";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "17s5fixhwgalgjhrhnb3wh0hdzi17waqcdfw1fx8q4zs78hapjzg";
+    sha256 = "1ja789m4d3akm3i9fl3kazfcny376xl4apv445mrwkwlvcfyylf1";
   };
 
   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..30456eee461 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
@@ -24,7 +25,7 @@ stdenv.mkDerivation rec {
   };
 
   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..bf206868f94 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
@@ -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..ac9f07232f1 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
@@ -27,7 +28,7 @@ stdenv.mkDerivation rec {
   };
 
   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..410acc37330 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
@@ -23,8 +25,21 @@ stdenv.mkDerivation rec {
     sha256 = "02inp8xdxfx8qxjdf2nazw46ahp1gv3skd922ma6kgx5w4wxh5l8";
   };
 
+  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..eb1d4807325 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
@@ -28,7 +29,7 @@ stdenv.mkDerivation rec {
   };
 
   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..0c456b13111 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 = "0sz3m64s5clirmiamx67iq42spba7sggcb29sny44z9f939vly4r";
   };
 
   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 ec40e1e8f72..69b53c78ed2 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
@@ -10,23 +11,26 @@
 , gtk3
 , glib
 , gettext
+, gsettings-desktop-schemas
 , gobject-introspection
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "granite";
-  version = "5.3.1";
+  version = "5.5.0";
+
+  outputs = [ "out" "dev" ];
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "12f1n07cjlc7czf642ak6964wl4fsgakc39nnmiba22z5aahfpz9";
+    sha256 = "13qfhq8xndikk6kmybibs6a4ddyp6mhvbsp2yy4qr7aiiyxf7mna";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -48,6 +52,10 @@ stdenv.mkDerivation rec {
     libgee
   ];
 
+  propagatedBuildInputs = [
+    gsettings-desktop-schemas # is_clock_format_12h uses "org.gnome.desktop.interface clock-format"
+  ];
+
   postPatch = ''
     chmod +x meson/post_install.py
     patchShebangs meson/post_install.py
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..11152defc65 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
@@ -25,7 +26,7 @@ stdenv.mkDerivation rec {
   };
 
   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..2f7bfaa155b 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
@@ -29,7 +30,7 @@ stdenv.mkDerivation rec {
   };
 
   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..b8c87cfd546 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
@@ -24,7 +25,7 @@ stdenv.mkDerivation rec {
   };
 
   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..4b9be31015a 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
@@ -25,7 +26,7 @@ stdenv.mkDerivation rec {
   };
 
   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 3663ff2640d..61679320505 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.1";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "137809mplrsff1isxwbwa2v2y9ixhwzm4khiijm4mmjchi75wpvx";
+    sha256 = "1kd6spwfwy5r2mrf7xh5l2wrazqia8vr4j3g27s97vn7fcg4pgb0";
   };
 
   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/kwin/scripts/tiling.nix b/pkgs/desktops/plasma-5/kwin/scripts/tiling.nix
index d2c68d3cb7b..da424d04da9 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
diff --git a/pkgs/desktops/plasma-5/powerdevil.nix b/pkgs/desktops/plasma-5/powerdevil.nix
index 65fc5446c16..e6b2c472bc8 100644
--- a/pkgs/desktops/plasma-5/powerdevil.nix
+++ b/pkgs/desktops/plasma-5/powerdevil.nix
@@ -1,9 +1,9 @@
 {
-  mkDerivation,
+  mkDerivation, fetchpatch,
   extra-cmake-modules, kdoctools,
   bluez-qt, kactivities, kauth, kconfig, kdbusaddons, kdelibs4support,
   kglobalaccel, ki18n, kidletime, kio, knotifyconfig, kwayland, libkscreen,
-  networkmanager-qt, plasma-workspace, qtx11extras, solid, udev
+  ddcutil, networkmanager-qt, plasma-workspace, qtx11extras, solid, udev
 }:
 
 mkDerivation {
@@ -13,5 +13,19 @@ mkDerivation {
     kconfig kdbusaddons knotifyconfig solid udev bluez-qt kactivities kauth
     kdelibs4support kglobalaccel ki18n kio kidletime kwayland libkscreen
     networkmanager-qt plasma-workspace qtx11extras
+    ddcutil
+  ];
+  cmakeFlags = [
+    "-DHAVE_DDCUTIL=On"
+  ];
+  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";
+    })
   ];
 }
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/thunar/default.nix b/pkgs/desktops/xfce/core/thunar/default.nix
index 24df606e246..00da58f6628 100644
--- a/pkgs/desktops/xfce/core/thunar/default.nix
+++ b/pkgs/desktops/xfce/core/thunar/default.nix
@@ -21,9 +21,9 @@
 let unwrapped = mkXfceDerivation {
   category = "xfce";
   pname = "thunar";
-  version = "1.8.14";
+  version = "1.8.15";
 
-  sha256 = "1ph9bcqfm2nccliagl8zdl1dizh62qnr8m5hacri3cs2jhc0jjpy";
+  sha256 = "1y9d88i0kwl7ak4d65gy3qf4bpkiyaqxd4g6px3v1ykf274k8al8";
 
   nativeBuildInputs = [
     docbook_xsl
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-eyes-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix
index 220e2506858..d8f612d1a81 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix
@@ -6,11 +6,11 @@ in
 
 stdenv.mkDerivation rec {
   pname  = "xfce4-eyes-plugin";
-  version = "4.5.0";
+  version = "4.5.1";
 
   src = fetchurl {
     url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "17gj6fbvvrdzvz61czmia8hqynllsnmhk61fs4aml443cc1h1bpx";
+    sha256 = "1iaszzkagl1mb0cdafrvlfjnjklhhs9y90517par34sjiqbq1dsd";
   };
 
   nativeBuildInputs = [
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/androidndk-pkgs.nix b/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix
index f8be40eecab..04420370ff1 100644
--- a/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix
+++ b/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix
@@ -82,7 +82,10 @@ rec {
   };
 
   clang = wrapCCWith {
-    cc = binaries;
+    cc = binaries // {
+      # for packages expecting libcompiler-rt, etc. to come from here (stdenv.cc.cc.lib)
+      lib = targetAndroidndkPkgs.libraries;
+    };
     bintools = binutils;
     libc = targetAndroidndkPkgs.libraries;
     extraBuildCommands = ''
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 3512dcbd2bc..1c537edd0b4 100644
--- a/pkgs/development/arduino/arduino-core/default.nix
+++ b/pkgs/development/arduino/arduino-core/default.nix
@@ -1,22 +1,36 @@
-{ stdenv, lib, fetchFromGitHub, fetchurl, jdk, ant
-, libusb-compat-0_1, libusb1, unzip, zlib, ncurses, readline
-, withGui ? false, gtk2 ? null, withTeensyduino ? false
+{ stdenv
+, lib
+, fetchFromGitHub
+, fetchurl
+, jdk
+, ant
+, libusb-compat-0_1
+, libusb1
+, unzip
+, zlib
+, ncurses
+, readline
+, withGui ? false
+, gtk2 ? null
+, withTeensyduino ? false
   /* Packages needed for Teensyduino */
-, upx, fontconfig, xorg, gcc
-, atk, glib, pango, gdk-pixbuf, libpng12, expat, freetype
-, cairo, udev
+, upx
+, fontconfig
+, xorg
+, gcc
+, atk
+, glib
+, pango
+, gdk-pixbuf
+, libpng12
+, expat
+, freetype
+, cairo
+, udev
 }:
 
 assert withGui -> gtk2 != null;
 assert withTeensyduino -> withGui;
-
-# TODO: Teensyduino is disabled for i686-linux due to an indefinite hang in the
-# xdotool script; the cause of this hang is not yet known.
-# TODO: There is a fair chance that Teensyduino works with arm-linux, but it
-# has not yet been tested.
-if withTeensyduino && (stdenv.hostPlatform.system != "x86_64-linux") then throw
-  "Teensyduino is only supported on x86_64-linux at this time (patches welcome)."
-else
 let
   externalDownloads = import ./downloads.nix {
     inherit fetchurl;
@@ -25,12 +39,13 @@ let
   };
   # Some .so-files are later copied from .jar-s to $HOME, so patch them beforehand
   patchelfInJars =
-       lib.optional (stdenv.hostPlatform.system == "x86_64-linux") {jar = "share/arduino/lib/jssc-2.8.0-arduino3.jar"; file = "libs/linux/libjSSC-2.8_x86_64.so";}
-    ++ lib.optional (stdenv.hostPlatform.system == "i686-linux") {jar = "share/arduino/lib/jssc-2.8.0-arduino3.jar"; file = "libs/linux/libjSSC-2.8_x86.so";}
+    lib.optional (stdenv.hostPlatform.system == "aarch64-linux") { jar = "share/arduino/lib/jssc-2.8.0-arduino4.jar"; file = "libs/linux/libjSSC-2.8_aarch64.so"; }
+    ++ lib.optional (builtins.match "armv[67]l-linux" stdenv.hostPlatform.system != null) { jar = "share/arduino/lib/jssc-2.8.0-arduino4.jar"; file = "libs/linux/libjSSC-2.8_armhf.so"; }
+    ++ lib.optional (stdenv.hostPlatform.system == "x86_64-linux") { jar = "share/arduino/lib/jssc-2.8.0-arduino4.jar"; file = "libs/linux/libjSSC-2.8_x86_64.so"; }
+    ++ lib.optional (stdenv.hostPlatform.system == "i686-linux") { jar = "share/arduino/lib/jssc-2.8.0-arduino4.jar"; file = "libs/linux/libjSSC-2.8_x86.so"; }
   ;
   # abiVersion 6 is default, but we need 5 for `avrdude_bin` executable
   ncurses5 = ncurses.override { abiVersion = "5"; };
-
   teensy_libpath = stdenv.lib.makeLibraryPath [
     atk
     cairo
@@ -53,50 +68,58 @@ 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 == "arm-linux") "linuxarm";
+  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.9";
+  version = "1.8.12";
   name = "${flavor}-${version}";
 
   src = fetchFromGitHub {
     owner = "arduino";
     repo = "Arduino";
     rev = version;
-    sha256 = "0kblq0bqap2zzkflrj6rmdi8dvqxa28fcwwrc3lfmbz2893ni3w4";
+    sha256 = "0lxkyvsh55biz2q20ba4qabraind5cpxznl41zfq027vl22j6kd2";
   };
 
-  teensyduino_version = "147";
+  teensyduino_version = "151";
   teensyduino_src = fetchurl {
     url = "https://www.pjrc.com/teensy/td_${teensyduino_version}/TeensyduinoInstall.${teensy_architecture}";
-    sha256 =
-      lib.optionalString (teensy_architecture == "linux64")
-        "09ysanip5d2f5axzd81z2l74ayng60zqhjxmxs7xa5098fff46il"
-      + lib.optionalString (teensy_architecture == "linux32")
-        "1zw3cfv2p62dwg8838vh0gd1934b18cyx7c13azvwmrpj601l0xx"
-      + lib.optionalString (teensy_architecture == "linuxarm")
-        "12421z26ksx84aldw1pq0cakh8jhs33mwafgvfij0zfgn9x0i877";
-    };
+    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")
-        "1lv4in9j0r8s0cis4zdvbk2637vlj12w69wdxgcxcrwvkcdahkpa"
-      + lib.optionalString (teensy_architecture == "linux32")
-        "0zla3a6gd9prclgrbbgsmhf8ds8zb221m65x21pvz0y1cwsdvjpm"
-      + lib.optionalString (teensy_architecture == "linuxarm")
-        "1w5m49wfd68zazli0lf3w4zykab8n7mzp3wnbjqfpx2vip80bqnz";
+      {
+        linux64 = "128f34kkxz7ab6ir5mqyr8d1mgxig8f9jygwxy44pdnq2rk6gmh9";
+        linux32 = "11n85lwsn1w4ysfacyw08v85s3f3zvl8j8ac7rld19yxgjslvisi";
+        linuxarm = "1k8yjivaydm6y16mplrjyblgx7l0wjzm3mjxh5saxrjq7drswmxx";
+        linuxaarch64 = "04v2nhyjhahml6nmz23bfb63c0an4a7zxgcgxqqq442i8vd304wa";
+      }.${teensy_architecture} or (throw "No arduino binaries for ${teensy_architecture}");
   };
 
 
-  buildInputs = [ jdk ant libusb-compat-0_1 libusb1 unzip zlib ncurses5 readline
+  buildInputs = [
+    jdk
+    ant
+    libusb-compat-0_1
+    libusb1
+    unzip
+    zlib
+    ncurses5
+    readline
   ] ++ stdenv.lib.optionals withTeensyduino [ upx ];
   downloadSrcList = builtins.attrValues externalDownloads;
   downloadDstList = builtins.attrNames externalDownloads;
@@ -116,7 +139,8 @@ stdenv.mkDerivation rec {
 
     # Deliberately break build.xml's download statement in order to cause
     # an error if anything needed is missing from download.nix.
-    substituteInPlace build/build.xml --replace "get src" "get error"
+    substituteInPlace build/build.xml \
+      --replace 'ignoreerrors="true"' 'ignoreerrors="false"'
 
     cd ./arduino-core && ant
     cd ../build && ant
@@ -125,11 +149,11 @@ stdenv.mkDerivation rec {
 
   # This will be patched into `arduino` wrapper script
   # Java loads gtk dynamically, so we need to provide it using LD_LIBRARY_PATH
-  dynamicLibraryPath = lib.makeLibraryPath [gtk2];
-  javaPath = lib.makeBinPath [jdk];
+  dynamicLibraryPath = lib.makeLibraryPath [ gtk2 ];
+  javaPath = lib.makeBinPath [ jdk ];
 
   # Everything else will be patched into rpath
-  rpath = (lib.makeLibraryPath [zlib libusb-compat-0_1 libusb1 readline ncurses5 stdenv.cc.cc]);
+  rpath = (lib.makeLibraryPath [ zlib libusb-compat-0_1 libusb1 readline ncurses5 stdenv.cc.cc ]);
 
   installPhase = ''
     mkdir -p $out/share/arduino
@@ -192,19 +216,19 @@ stdenv.mkDerivation rec {
     done
 
     ${lib.concatMapStringsSep "\n"
-        ({jar, file}:
+      ({ jar, file }:
           ''
-              jar xvf $out/${jar} ${file}
-              patchelf --set-rpath $rpath ${file}
-              jar uvf $out/${jar} ${file}
-              rm -f ${file}
+            jar xvf $out/${jar} ${file}
+            patchelf --set-rpath $rpath ${file}
+            jar uvf $out/${jar} ${file}
+            rm -f ${file}
           ''
         )
-        patchelfInJars}
+      patchelfInJars}
 
     # avrdude_bin is linked against libtinfo.so.5
     mkdir $out/lib/
-    ln -s ${lib.makeLibraryPath [ncurses5]}/libtinfo.so.5 $out/lib/libtinfo.so.5
+    ln -s ${lib.makeLibraryPath [ ncurses5 ]}/libtinfo.so.5 $out/lib/libtinfo.so.5
 
     ${stdenv.lib.optionalString withTeensyduino ''
       # Patch the Teensy loader binary
diff --git a/pkgs/development/arduino/arduino-core/downloads.nix b/pkgs/development/arduino/arduino-core/downloads.nix
index 9c4f795d293..f2edf64ceb6 100644
--- a/pkgs/development/arduino/arduino-core/downloads.nix
+++ b/pkgs/development/arduino/arduino-core/downloads.nix
@@ -1,4 +1,7 @@
-{fetchurl, optionalAttrs, system}:
+{ fetchurl
+, optionalAttrs
+, system
+}:
 # This file preloads all the archives which Arduino's build/build.xml
 # would otherwise try to download itself. When updating this for a new
 # version of Arduino, check build.xml for version numbers and new
@@ -56,9 +59,9 @@
     url = "https://github.com/arduino-libraries/RobotIRremote/archive/2.0.0.zip";
     sha256 = "0j5smap74j8p3wc6k0h73b1skj4gkr7r25jbjh1j1cg052dxri86";
   };
-  "build/SpacebrewYun-1.0.1.zip" = fetchurl {
-    url = "https://github.com/arduino-libraries/SpacebrewYun/archive/1.0.1.zip";
-    sha256 = "1zs6ymlzw66bglrm0x6d3cvr52q85c8rlm525x0wags111xx3s90";
+  "build/SpacebrewYun-1.0.2.zip" = fetchurl {
+    url = "https://github.com/arduino-libraries/SpacebrewYun/archive/1.0.2.zip";
+    sha256 = "1d8smmsx12qhf2ldvmi93h48cvdyz4id5gd68cvf076wfyv6dks8";
   };
   "build/Temboo-1.2.1.zip" = fetchurl {
     url = "https://github.com/arduino-libraries/Temboo/archive/1.2.1.zip";
@@ -76,108 +79,135 @@
     url = "https://github.com/arduino-libraries/Keyboard/archive/1.0.2.zip";
     sha256 = "17yfj95r1i7fb87q4krmxmaq07b4x2xf8cjngrj5imj68wgjck53";
   };
-  "build/SD-1.2.3.zip" = fetchurl {
-    url = "https://github.com/arduino-libraries/SD/archive/1.2.3.zip";
-    sha256 = "0i5hb5hmrsrhfgxx8w7zzrfrkc751vs63vhxrj6qvwazhfcdpjw2";
+  "build/SD-1.2.4.zip" = fetchurl {
+    url = "https://github.com/arduino-libraries/SD/archive/1.2.4.zip";
+    sha256 = "123g9px9nqcrsx696wqwzjd5s4hr55nxgfz95b7ws3v007i1f3fz";
   };
-  "build/Servo-1.1.3.zip" = fetchurl {
-    url = "https://github.com/arduino-libraries/Servo/archive/1.1.3.zip";
-    sha256 = "1m019a75cdn1fg0cwlzbahmaqvg8sgzr6v1812rd7rjh8ismiah6";
+  "build/Servo-1.1.6.zip" = fetchurl {
+    url = "https://github.com/arduino-libraries/Servo/archive/1.1.6.zip";
+    sha256 = "1z9k9lxzj5d3f8h9hy86f4k5wgfr2a9zcvjh76qmpvv6clcv3js3";
   };
   "build/LiquidCrystal-1.0.7.zip" = fetchurl {
     url = "https://github.com/arduino-libraries/LiquidCrystal/archive/1.0.7.zip";
     sha256 = "1wrxrqz3n4yrj9j1a2b7pdd7a1rlyi974ra7crv5amjng8817x9n";
   };
-  "build/Adafruit_Circuit_Playground-1.8.1.zip" = fetchurl {
-    url = "https://github.com/Adafruit/Adafruit_CircuitPlayground/archive/1.8.1.zip";
-    sha256 = "1fl24px4c42f6shpb3livwsxgpj866yy285274qrj4m1zl07f18q";
+  "build/Adafruit_Circuit_Playground-1.10.4.zip" = fetchurl {
+    url = "https://github.com/adafruit/Adafruit_CircuitPlayground/archive/1.10.4.zip";
+    sha256 = "194az5pxxzs0wg4ng7w0zqrdw93qdyv02y0q2yy57dr4kwfrm6nl";
   };
-  "build/libastylej-2.05.1-4.zip" = fetchurl {
-    url = "https://downloads.arduino.cc/libastylej-2.05.1-4.zip";
-    sha256 = "0q307b85xba7izjh344kqby3qahg3f5zy18gg52sjk1lbkl9i39s";
+  "build/libastylej-2.05.1-5.zip" = fetchurl {
+    url = "https://downloads.arduino.cc/libastylej-2.05.1-5.zip";
+    sha256 = "11mlprwvqfq3nvmz6hdf1fcg02a7xi2a9qhffa1d8a4w15s2iwny";
   };
-  "build/liblistSerials-1.4.2.zip" = fetchurl {
-    url = "https://downloads.arduino.cc/liblistSerials/liblistSerials-1.4.2.zip";
-    sha256 = "1p58b421k92rbgwfgbihy0d04mby7kfssghpmjb4gk9yix09za3m";
+  "build/liblistSerials-1.4.2-2.zip" = fetchurl {
+    url = "https://downloads.arduino.cc/liblistSerials/liblistSerials-1.4.2-2.zip";
+    sha256 = "0sqzwp1lfjy452z3d4ma5c4blwsj7za72ymxf7crpq9dh9qd8f53";
   };
-  "build/shared/WiFi101-Updater-ArduinoIDE-Plugin-0.10.6.zip" = fetchurl {
-    url = "https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin/releases/download/v0.10.6/WiFi101-Updater-ArduinoIDE-Plugin-0.10.6.zip";
-    sha256 = "1k23xyr5dmr60y8hb9x24wrgd4mfgvrzky621p6fvawn5xbdq8a3";
+  "build/shared/WiFi101-Updater-ArduinoIDE-Plugin-0.10.10.zip" = fetchurl {
+    url = "https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin/releases/download/v0.10.10/WiFi101-Updater-ArduinoIDE-Plugin-0.10.10.zip";
+    sha256 = "0bs5qdglsfc2q5c48m6wdjpzhz4ya4askh1g8364dp6p7jmg6w0d";
+  };
+  "build/avr-1.8.2.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/cores/avr-1.8.2.tar.bz2";
+    sha256 = "06zl8fwphknd0qdx87fcr1003gid1yqsazaj674mm9widqfd84v2";
   };
 }
+
 // optionalAttrs (system == "x86_64-linux") {
-  "build/arduino-builder-linux64-1.4.4.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/arduino-builder-linux64-1.4.4.tar.bz2";
-    sha256 = "1m5b4rc9i235ra6isqdpjj9llddb5sldkhidb8c4i14mcqbdci1n";
-  };
-  "build/linux/avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2";
-    sha256 = "11ciwv9sw900wxb2fwm4i4ml4a85ylng0f595v0mf0xifc6jnhh5";
+  "build/arduino-builder-linux64-1.5.2.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/arduino-builder-linux64-1.5.2.tar.bz2";
+    sha256 = "0wypr9a2cbv9r0ignsr13raw09i3vfc5zvkjxp2xwb7mv35y77z3";
   };
-  "build/linux/avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2";
-    sha256 = "1z4b6pvn1823h8mg0iph88igmcnrk2y7skr3z44dqlwk0pryi1kr";
+  "build/linux/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2";
+    sha256 = "1yq6a811dabrkcgzfi3jsys41r19qsna46kglkjbcy0rza7yvzry";
   };
-  "build/linux/arduinoOTA-1.2.1-linux_amd64.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_amd64.tar.bz2";
-    sha256 = "1ya834p2cqjj8k1ad3yxcnzd4bcgrlqsqsli9brq1138ac6k30jv";
+  "build/linux/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2";
+    sha256 = "0gfic26af9vlcpkw8v914psn05vmq1rsrlk1fi7vzapj1a9gpkdc";
   };
-  "build/avr-1.6.23.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/cores/avr-1.6.23.tar.bz2";
-    sha256 = "1al449r8hcdck7f4y295g7q388qvbn6qhk2zqdvws9kg4mzqsq8q";
+  "build/linux/arduinoOTA-1.3.0-linux_amd64.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_amd64.tar.bz2";
+    sha256 = "1ylz4pfa9np0nn0w9igmmm3sr8hz3na04n7cv8ia3hzz84jfwida";
   };
 }
+
 // optionalAttrs (system == "i686-linux") {
-  "build/arduino-builder-linux32-1.4.4.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/arduino-builder-linux32-1.4.4.tar.bz2";
-    sha256 = "0q3i1ba7vh14616d9ligizcz89yadr0skazxbrcq3mvvjqzbifw8";
+  "build/arduino-builder-linux32-1.5.2.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/arduino-builder-linux32-1.5.2.tar.bz2";
+    sha256 = "1slzw8fzxkqsp2izjisjd1rxxbqkrq6n72jc4frk5z2gdm6zfa0l";
   };
-  "build/linux/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2";
-    sha256 = "13skspybzq80ndsi93s7v15900lf26n5243mbib77andyc27xy2i";
+  "build/linux/avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-pc-linux-gnu.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-pc-linux-gnu.tar.bz2";
+    sha256 = "078f3rbpdrghk63mbaq73bd5p6znimp14b1wdf6nh2gdswwjgw9g";
   };
-  "build/linux/avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2";
-    sha256 = "1jklpk1sgrmbh1r25ynps4qcs5dbg6hd54fzjx4hcdf68cw0w42g";
+  "build/linux/avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2";
+    sha256 = "0py0jvpim0frmv0dnvzfj122ni5hg1qwshgya4a0wc5rgp0wd32w";
   };
-  "build/linux/arduinoOTA-1.2.1-linux_386.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_386.tar.bz2";
-    sha256 = "1m56ps58h0fs8rr4ifc45slmrdvalc63vhldy85isv28g15zdz9g";
+  "build/linux/arduinoOTA-1.3.0-linux_386.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_386.tar.bz2";
+    sha256 = "1cl79019ldsq0sc3fd4pm0vx2kqcklld7w03hdcj99y7zgb5jzry";
   };
 }
+
 // optionalAttrs (system == "x86_64-darwin") {
-  "build/arduino-builder-macosx-1.4.4.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/arduino-builder-macosx-1.4.4.tar.bz2";
-    sha256 = "1jp5kg32aiw062kcxlv660w38iaprifm8h3g2798izpwyfj0dmwg";
+  "build/arduino-builder-macosx-1.5.2-signed.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/arduino-builder-macosx-1.5.2-signed.tar.bz2";
+    sha256 = "1pa795vwly1z9h1bp5qzbx2c2pq4n6p7ab5ivhmd3q89z0ywyqgz";
+  };
+  "build/macosx/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-apple-darwin14-signed.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-apple-darwin14-signed.tar.bz2";
+    sha256 = "0lcnp525glnc2chcynnz2nllm4q6ar4n9nrjqd1jbj4m706zbv67";
+  };
+  "build/macosx/avrdude-6.3.0-arduino17-x86_64-apple-darwin12-signed.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-apple-darwin12-signed.tar.bz2";
+    sha256 = "1m24dci8mjf70yrf033mp1834pbp870m8sns2jxs3iy2i4qviiki";
+  };
+  "build/linux/arduinoOTA-1.3.0-darwin_amd64-signed.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/arduinoOTA-1.3.0-darwin_amd64-signed.tar.bz2";
+    sha256 = "12pwfnikq3z3ji5wgjhzx1mfyaha5cym7mr63r8kfl5a85fhk8nz";
+  };
+  "build/macosx/appbundler/appbundler-1.0ea-arduino5.jar.zip" = fetchurl {
+    url = "https://downloads.arduino.cc/appbundler-1.0ea-arduino5.jar.zip";
+    sha256 = "1ims951z7ajprqms7yd8ll83c79n7krhd9ljw30yn61f6jk46x82";
+  };
+}
+
+// optionalAttrs (system == "aarch64-linux") {
+  "build/arduino-builder-linuxaarch64-1.5.2.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/arduino-builder-linuxaarch64-1.5.2.tar.bz2";
+    sha256 = "14k7h7anjizbs2h04phw784slpfbi6hch9skvhy5ll805dmr24ci";
   };
-  "build/macosx/avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2";
-    sha256 = "1y2972b08ac59xwjqkyjmi5lf2pmzw88a6sdgci3x9rvahvh3idb";
+  "build/linux/avr-gcc-7.3.0-atmel3.6.1-arduino5-aarch64-pc-linux-gnu.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-aarch64-pc-linux-gnu.tar.bz2";
+    sha256 = "040cspc41iv59fb2g9fzc6w5523dvqa1bavxni7s8w731ccp176x";
   };
-  "build/macosx/avrdude-6.3.0-arduino14-i386-apple-darwin11.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i386-apple-darwin11.tar.bz2";
-    sha256 = "0qsa3sb3f480fm2z75fq14cqddw5hq8w8q0c2a9cw8i7aa8kkl27";
+  "build/linux/avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2";
+    sha256 = "1z59dx2j2j4675awjzag9fswhvkn3hlz4ds5d2b7pzmca7vliybc";
   };
-  "build/macosx/appbundler/appbundler-1.0ea-arduino4.jar.zip" = fetchurl {
-    url = "https://downloads.arduino.cc/appbundler-1.0ea-arduino4.jar.zip";
-    sha256 = "1vz0g98ancfqdf7yx5m3zrxmzb3fwp18zh5lkh2nyl5xlr9m368z";
+  "build/linux/arduinoOTA-1.3.0-linux_aarch64.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_aarch64.tar.bz2";
+    sha256 = "04s1is2w8xhvc7lg0lmyk0yjsnar2l2gdc6ig7lkgb7zgkrxhpl3";
   };
 }
-// optionalAttrs (system == "armv6l-linux") {
-  "build/arduino-builder-linuxarm-1.4.4.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/arduino-builder-linuxarm-1.4.4.tar.bz2";
-    sha256 = "03bhlhdkg1jx0d3lh9194xgaqsbank9njhlnwy8braa7pw4p58gn";
-  };
-  "build/linux/avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2";
-    sha256 = "17z9li387mx2acgad733h7l1jnnwv09ynw4nrwlqfahqqdfgjhb7";
-  };
-  "build/linux/avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2";
-    sha256 = "12amp8hqcj6gcdga7hfs22asgmgzafy8ny0rqhqs8n8d95sn586i";
-  };
-  "build/linux/arduinoOTA-1.2.1-linux_arm.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2";
-    sha256 = "1q79w1d0h2lp3jcg58qrlh3k5lak7dbsnawrzm0jj8c6spfb6m5d";
+
+// optionalAttrs (builtins.match "armv[67]l-linux" system != null) {
+  "build/arduino-builder-linuxarm-1.5.2.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/arduino-builder-linuxarm-1.5.2.tar.bz2";
+    sha256 = "1vs2s5px07jb2sdv83qxkf9lxmsy8j4dm7bn3vpw5dcjqd3qdyww";
+  };
+  "build/linux/avr-gcc-7.3.0-atmel3.6.1-arduino5-arm-linux-gnueabihf.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-arm-linux-gnueabihf.tar.bz2";
+    sha256 = "0fcn0s0fdgbz3yma2gjv16s1idrzn6nhmypdw8awg0kb3i9xbb7l";
+  };
+  "build/linux/avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2";
+    sha256 = "1lah9wvwvliajrrf5jw5blkjhk1sxivz26gj5s86zah3v32ni3ia";
+  };
+  "build/linux/arduinoOTA-1.3.0-linux_arm.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_arm.tar.bz2";
+    sha256 = "0mm6spjlg0lhkfx5c9q27b6agjywnc1nf3mbl15yysmm15s5i20q";
   };
 }
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 0d333a49d37..891d613da51 100644
--- a/pkgs/development/arduino/platformio/core.nix
+++ b/pkgs/development/arduino/platformio/core.nix
@@ -51,14 +51,14 @@ let
 
 in buildPythonApplication rec {
   pname = "platformio";
-  version = "4.3.1";
+  version = "4.3.4";
 
   # pypi tarballs don't contain tests - https://github.com/platformio/platformio-core/issues/1964
   src = fetchFromGitHub {
     owner = "platformio";
     repo = "platformio-core";
     rev = "v${version}";
-    sha256 = "1dxnjy60zpkgyrbvbf6b9qi6m37gm8gwjmxwfj30npr1y7rvxwrw";
+    sha256 = "0vf2j79319ypr4yrdmx84853igkb188sjfvlxgw06rlsvsm3kacq";
   };
 
   propagatedBuildInputs =  [
@@ -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/arduino/platformio/use-local-spdx-license-list.patch b/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch
index 16294a4d6cd..953eb3c9289 100644
--- a/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch
+++ b/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch
@@ -8,7 +8,7 @@ index be49b3ee..d1390a88 100644
      def load_spdx_licenses():
 -        r = requests.get(
 -            "https://raw.githubusercontent.com/spdx/license-list-data"
--            "/v3.8/json/licenses.json"
+-            "/v3.9/json/licenses.json"
 -        )
 -        r.raise_for_status()
 -        return r.json()
diff --git a/pkgs/development/compilers/abcl/default.nix b/pkgs/development/compilers/abcl/default.nix
index 005e4186b15..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.6.1";
+  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 = "04myiba6g0vij2ym2dmb0156k20ki2lz13dxwp2bk9kvjn2zg88b";
+    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/adoptopenjdk-icedtea-web/default.nix b/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
index 72ed184357c..b62b9c95ef6 100644
--- a/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
+++ b/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "adoptopenjdk-icedtea-web";
 
-  version = "1.8.3";
+  version = "1.8.4";
 
   src = fetchFromGitHub {
     owner = "AdoptOpenJDK";
     repo = "IcedTea-Web";
     rev = "icedtea-web-${version}";
-    sha256 = "0bm5k11i2vgb54ch1bawsmjbwnqnp04saadwm2f2mggmmdc6b1qq";
+    sha256 = "0pxijw9v5k4j840jczglx9qyfd57df390g5jdaz3qafblfg0k10n";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig bc ];
diff --git a/pkgs/development/compilers/aliceml/default.nix b/pkgs/development/compilers/aliceml/default.nix
index db1a8640753..d3208b12dd6 100644
--- a/pkgs/development/compilers/aliceml/default.nix
+++ b/pkgs/development/compilers/aliceml/default.nix
@@ -1,4 +1,4 @@
-{stdenv, gcc, glibc, fetchurl, fetchgit, libtool, autoconf, automake, file, gnumake, which, zsh, m4, pkgconfig, perl, gnome2, pango, sqlite, libxml2, zlib, gmp, smlnj }:
+{stdenv, gcc, glibc, fetchurl, fetchgit, libtool, autoconf, automake, file, gnumake, which, zsh, m4, pkg-config, perl, gnome2, gtk2, pango, sqlite, libxml2, zlib, gmp, smlnj }:
 
 stdenv.mkDerivation {
   name = "aliceml-1.4-7d44dc8e";
@@ -18,9 +18,9 @@ stdenv.mkDerivation {
   buildInputs = [
     stdenv gcc glibc
     libtool gnumake autoconf automake
-    file which zsh m4 gnome2.gtk zlib gmp
+    file which zsh m4 gtk2 zlib gmp
     gnome2.libgnomecanvas pango sqlite
-    libxml2 pkgconfig perl smlnj
+    libxml2 pkg-config perl smlnj
   ];
 
   makePatch = ./make.patch;
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/default.nix b/pkgs/development/compilers/binaryen/default.nix
index 3a03f633ff0..e9dc939b5ed 100644
--- a/pkgs/development/compilers/binaryen/default.nix
+++ b/pkgs/development/compilers/binaryen/default.nix
@@ -1,11 +1,11 @@
 { stdenv, cmake, python3, fetchFromGitHub, emscriptenRev ? null, substituteAll }:
 
 let
-  defaultVersion = "93";
+  defaultVersion = "95";
 
   # Map from git revs to SHA256 hashes
   sha256s = {
-    version_93 = "15y3703ha6mxcq168br0wlydas5rq66msrcsd650zrjz0ndxwsfx";
+    version_95 = "1w4js9bm5qv5aws8bzz4f0n3ni2l7h4fidkq9v5bldf0zxncy8m3";
     "1.39.1" = "0ygm9m5322h4vfpf3j63q32qxk2l26yk62hh7dkb49j51zwl1y3y";
   };
 in
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/bs-platform/default.nix b/pkgs/development/compilers/bs-platform/default.nix
index ee4123a23c1..0fd696c69f0 100644
--- a/pkgs/development/compilers/bs-platform/default.nix
+++ b/pkgs/development/compilers/bs-platform/default.nix
@@ -4,14 +4,14 @@ let
 in
 (build-bs-platform rec {
   inherit stdenv runCommand fetchFromGitHub ninja nodejs python3;
-  version = "7.3.1";
+  version = "7.3.2";
   ocaml-version = "4.06.1";
 
   src = fetchFromGitHub {
     owner = "BuckleScript";
     repo = "bucklescript";
     rev = version;
-    sha256 = "14vp6cl5ml7xb3pd0paqajb50qv62l8j5m8hi3b6fh0pm68j1yxd";
+    sha256 = "1nvp7wiiv149r4qf9bgc84bm4w7s44sjq9i7j103v24wllzz218s";
     fetchSubmodules = true;
   };
 }).overrideAttrs (attrs: {
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/ciao/default.nix b/pkgs/development/compilers/ciao/default.nix
new file mode 100644
index 00000000000..be39d81f558
--- /dev/null
+++ b/pkgs/development/compilers/ciao/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "ciao";
+  version = "1.19.0";
+  src = fetchFromGitHub {
+    owner = "ciao-lang";
+    repo = "ciao";
+    rev = "v${version}";
+    sha256 = "03qzcb4ivgkiwdpw7a94dn74xqyxjwz5ilrr53rcblsh5ng299jp";
+  };
+
+  configurePhase = ''
+    ./ciao-boot.sh configure --instype=global --prefix=$prefix
+  '';
+
+  buildPhase = ''
+    ./ciao-boot.sh build
+  '';
+
+  installPhase = ''
+    ./ciao-boot.sh install
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://ciao-lang.org/";
+    description = "A general purpose, multi-paradigm programming language in the Prolog family";
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ suhr ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/compilers/closure/default.nix b/pkgs/development/compilers/closure/default.nix
index 896b3a76789..2ee1223a53b 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 = "20200406";
+  version = "20200614";
 
   src = fetchurl {
     url = "https://dl.google.com/closure-compiler/compiler-${version}.tar.gz";
-    sha256 = "1dd6fakavnadpm8h8r4d1saf9flm7ilhknfy0q6i5i237psjf7i5";
+    sha256 = "0a54y2d9nfg60knfv34kf6sdsh065dzam86l3wprf8gvqffxxcli";
   };
 
   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/dasm/default.nix b/pkgs/development/compilers/dasm/default.nix
new file mode 100644
index 00000000000..1eb233b90b7
--- /dev/null
+++ b/pkgs/development/compilers/dasm/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "dasm";
+  version = "2.20.13";
+
+  src = fetchFromGitHub {
+    owner = "dasm-assembler";
+    repo = "dasm";
+    rev = version;
+    sha256 = "1nr4kvw42vyc6i4p1c06jlih11rhbjjxc27dc7cx5qj635xf4jcf";
+  };
+
+  configurePhase = false;
+  installPhase = ''
+    mkdir -p $out/bin
+    install bin/* $out/bin
+  '';
+
+  preCheck = ''
+    patchShebangs ./test/
+  '';
+
+  checkTarget = "test";
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    description = "Assembler for 6502 and other 8-bit microprocessors";
+    homepage = "https://dasm-assembler.github.io";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.jwatt ];
+    platforms = platforms.all;
+  };
+}
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 6f4237d2dce..00000000000
--- a/pkgs/development/compilers/dotnet/buildDotnet.nix
+++ /dev/null
@@ -1,72 +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";
-    suffix = {
-      x86_64-linux  = "x64";
-      aarch64-linux = "arm64";
-    }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
-    urls = {
-        aspnetcore = "https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/${version}/${pname}-${version}-linux-${suffix}.tar.gz";
-        netcore = "https://dotnetcli.azureedge.net/dotnet/Runtime/${version}/${pname}-${version}-linux-${suffix}.tar.gz";
-        sdk = "https://dotnetcli.azureedge.net/dotnet/Sdk/${version}/${pname}-${version}-linux-${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 = ''
-        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" ];
-        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 6497e8bdf96..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)
 
@@ -19,6 +19,7 @@ rec {
     sha512 = {
       x86_64-linux = "0awdzi8dysbg8xcy4l8wx2sb8gaaklphmwv61qxh7dj6ih4nla34l02xdax1l8nw41znnnqzsa77avglnrz36pckm9mc52m7wc7877h";
       aarch64-linux = null; # no aarch64 version of this package is available
+      x86_64-darwin = "1psqqpin4hipr2hzfp79712d6cag892jx4fx5001nlsynwrdq3vi4liakz4yz41rvk0jyd7f07z90wj97xlxyrqiqcc1fdbgn2q0px9";
     };
   };
 
@@ -27,6 +28,7 @@ rec {
     sha512 = {
       x86_64-linux = "07vvmza32hsblpw4zpcksm2gicy4agh0d1fwradqj16y6xbh3frdp87mqgbj5m54mmyfp5bc8c46v1w6dfm1w3y80v2y46aynild45l";
       aarch64-linux = "27ab982vz9rn2vzpq68dqfzhryfixq3s0apx7vi0cwiray3scgfmf45fm7qj63k9mvaqnk5g69i339109yasw3q5vpvpyjc1ykbi710";
+      x86_64-darwin = "2pxqpcw3djr18m0y124fbd6pz4lb5brlgvpvd9pdirkpsar8dmipsrhxcsk0d902zyxzgj1ac1ygzxsz49xvrkmh6s1m3w5fk8fws2f";
     };
   };
 
@@ -35,6 +37,7 @@ rec {
     sha512 = {
       x86_64-linux = "1kbzxcdgyvs94kkm6ikr1j0p0k3zq30d10sl69ig0rgbqbqm4rpqi6dq94jjbw7q3jlwz83vgq3549q38d2s9kalmzv9lmddn2kkc42";
       aarch64-linux = "2d97xvhxnkdgghqlichkwdxxh641dzkd9hq5xgffgvbqv1qsh31k9yib2q1nsarpnbx0d758bdn2jm2wvsj7nx0gpxlb3nab0b3hc2g";
+      x86_64-darwin = "0fjn18vizgfdbziklhgppnvka5iw2hb4pfi6047i46il8ydb6z1m40cflq436sdf07sivi0mnldg9247qvqrl6f078w3fwnh3bwlac8";
     };
   };
 
@@ -49,6 +52,7 @@ rec {
     sha512 = {
       x86_64-linux = "342v6kxxbxky09d1c392vvr9rm30lf75wccka1bk2h4advlcga5nlgv93g7vrq48bsyxfi5gc36r3b0dlwl1g409g5mlk1042n6d0yq";
       aarch64-linux = "2xkg4q88q5jw6jdz6cxj8vsjr475nd0fcvifkv1shdm2j9dsjy233hwpxbr140m5n5ggyh6z99238z9j4kp2az977y8y8irz8m8ppvf";
+      x86_64-darwin = "2p04j6p4j93pan71ih13hv57zxalcirh0n3vfjq0cfb80pbhf1f5cgxl24pw6kifh6hhh38rj62c4mr69lxzlqc8sfcfaws8dyz2avm";
     };
   };
 
@@ -57,6 +61,7 @@ rec {
     sha512 = {
       x86_64-linux = "32ykpcw2xx708r2lxcwcbxnmy4sk159rlfjfvkw990qh7n79pm3lm2qwa3zhqcslznmpg18kwxz8qb5fgsa0h49g843xx4kyai0n7rx";
       aarch64-linux = "1lp8din7d5jv5fkyq1a7m01i1xg9jwpiljvam1kcyzsnwzvi0cb4ji336cfx4lqrn95gvc75gkzi6q8b4fz0h21gvk6z6kmlcr63nyg";
+      x86_64-darwin = "0s20k7xawwd09xhy4xdcxp1rw6jd418ibrvhb509dnj480g48xryda2203g4mpswd24v2kx0n9qzxgbrbq9lvasfglkxi84bbqayp83";
     };
   };
 
@@ -65,24 +70,27 @@ rec {
     sha512 = {
       x86_64-linux = "2diiplgxs92fkb6ym68b02d79z4qn63x5qlky5lvr757c1zkh0vfpk3khawdg94kdn4qkn6dmyqr0msxqgmiqyhp63cadzqq4vx7b12";
       aarch64-linux = "32843q2lj7dgciq62g9v1q31vwfjyv5vaxrz712d942mcg5lyzjygwri106bv4naq3a22131ldzwnsifbdn2vq1iz60raqdb7ss9vnf";
+      x86_64-darwin = "3apswk2bhalgi0hm7h2j9p152jvp39h4xilxxzix5j1n36b442l1pwk7lj7019lxafjqkz5y850xkfcp14ks5wcvs33xs2c0aqwxvcn";
     };
   };
 
   # 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-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-linux = "03g6aghbpsxj9csaq9lkc8cad1nk8kvlivkarq6bfqvx992fxw6zryp7kcm5h6a5gkgpimb1nr17vndj1r629hdhpincqj8yw6i33mq";
+      aarch64-linux = "25gwicmpzhzs96w3azypbl32bx967f14xkfdgvl7knw234rcmfv7zr0a7lb3vci68dbx4xywpnwlrvgi54mimzp8nagrgwva8zrrxzb";
+      x86_64-darwin = "2g28jmv1n7pgxfq4wk9x58y5dp835c7rckz6c88ylk7g9w6z75l94pblfl1rc7mr6g3wddiy5cl87a607j9g283hv28a4vcpvll8s7g";
     };
   };
 
@@ -91,6 +99,7 @@ rec {
     sha512 = {
       x86_64-linux = "0lmz8ac5j0i4zcq4904kr6qibvyjcm2ckfg27kqyqfii00qmm80xb5sk3i7f06xqkbgkrqkbg9rsldk75akw6m5dxg932j602bxrb4w";
       aarch64-linux = "34k6cm69gxm7vcd9m6bp47sdx96j32z6lfhb2vjcdznc6xgs2wy8zcang3b1mjm5919dq7v6iysm6ffcpgjhhphy7prlnaqa69q5mks";
+      x86_64-darwin = "00xs87zj94v6yr6xs294bficp6lxpghyfswhnwqfkx62jy80qr5fa2y7s10ich3cbm2daa8dby56iizdvi7rnlvp23gfkq12gq4w1g8";
     };
   };
 }
diff --git a/pkgs/development/compilers/dtc/default.nix b/pkgs/development/compilers/dtc/default.nix
index a444dea4430..b7fcbe1c611 100644
--- a/pkgs/development/compilers/dtc/default.nix
+++ b/pkgs/development/compilers/dtc/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   pname = "dtc";
-  version = "1.5.1";
+  version = "1.6.0";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/utils/dtc/dtc.git";
     rev = "refs/tags/v${version}";
-    sha256 = "1jhhfrg22h53lvm2lqhd66pyk20pil08ry03wcwyx1c3ln27k73z";
+    sha256 = "0li992wwd7kgy71bikanqky49y4hq3p3vx35p2hvyxy1k0wfy7i8";
   };
 
   nativeBuildInputs = [ flex bison pkgconfig which ] ++ lib.optionals pythonSupport [ python swig ];
diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix
index 625d7adab41..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; };
 
@@ -71,56 +73,63 @@ let
       };
   };
 
-  /*
-  Node/NPM based dependecies can be upgraded using script
-  `packages/generate-node-packages.sh`.
-  Packages which rely on `bin-wrap` will fail by default
-  and can be patched using `patchBinwrap` function defined in `packages/patch-binwrap.nix`.
+  /* Node/NPM based dependecies can be upgraded using script `packages/generate-node-packages.sh`.
+
+      * Packages which rely on `bin-wrap` will fail by default
+        and can be patched using `patchBinwrap` function defined in `packages/lib.nix`.
+
+      * Packages which depend on npm installation of elm can be patched using
+        `patchNpmElm` function also defined in `packages/lib.nix`.
   */
-  elmNodePackages =
+  elmLib = import ./packages/lib.nix {
+    inherit lib writeScriptBin stdenv;
+    inherit (hsPkgs.elmPkgs) elm;
+  };
+
+  elmNodePackages = with elmLib;
     let
       nodePkgs = import ./packages/node-composition.nix {
           inherit nodejs pkgs;
           inherit (stdenv.hostPlatform) system;
         };
     in with hsPkgs.elmPkgs; {
-      elm-test = patchBinwrap [elmi-to-json] nodePkgs.elm-test;
-      elm-verify-examples = patchBinwrap [elmi-to-json] nodePkgs.elm-verify-examples;
+
+      elm-test = patchBinwrap [elmi-to-json]
+        nodePkgs.elm-test;
+
+      elm-verify-examples = patchBinwrap [elmi-to-json]
+        nodePkgs.elm-verify-examples;
+
       elm-coverage =
-        let patched = patchBinwrap [elmi-to-json] nodePkgs.elm-coverage;
-        in patched.override {
-          preRebuild = ''
+        let patched = patchNpmElm (patchBinwrap [elmi-to-json] nodePkgs.elm-coverage);
+        in patched.override (old: {
+          # Symlink Elm instrument binary
+          preRebuild = (old.preRebuild or "") + ''
+            # Noop custom installation script
             sed 's/\"install\".*/\"install\":\"echo no-op\"/g' --in-place package.json
 
             # This should not be needed (thanks to binwrap* being nooped) but for some reason it still needs to be done
             # in case of just this package
+            # TODO: investigate
             sed 's/\"install\".*/\"install\":\"echo no-op\",/g' --in-place node_modules/elmi-to-json/package.json
-
-            rm node_modules/elm/install.js
-            echo "console.log('no-op');" > node_modules/elm/install.js
           '';
-
-          # Link Elm instrument binary
-          postInstall = patched.postInstall + ''
+          postInstall = (old.postInstall or "") + ''
             mkdir -p unpacked_bin
             ln -sf ${elm-instrument}/bin/elm-instrument unpacked_bin/elm-instrument
           '';
-        };
+        });
 
-      create-elm-app = patchBinwrap [elmi-to-json] (nodePkgs.create-elm-app.override {
-        preRebuild = ''
-          rm node_modules/elm/install.js
-          echo "console.log('no-op');" > node_modules/elm/install.js
-        '';
-      });
+      create-elm-app = patchNpmElm (patchBinwrap [elmi-to-json]
+        nodePkgs.create-elm-app);
 
       elm-language-server = nodePkgs."@elm-tooling/elm-language-server";
 
       inherit (nodePkgs) elm-doc-preview elm-live elm-upgrade elm-xref elm-analyse;
     };
 
-  patchBinwrap = import ./packages/patch-binwrap.nix { inherit lib writeScriptBin stdenv; };
-
 in hsPkgs.elmPkgs // elmNodePackages // {
-  lib = { inherit patchBinwrap; };
+  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/generate-node-packages.sh b/pkgs/development/compilers/elm/packages/generate-node-packages.sh
index 343721208b8..0ffa56eae90 100755
--- a/pkgs/development/compilers/elm/packages/generate-node-packages.sh
+++ b/pkgs/development/compilers/elm/packages/generate-node-packages.sh
@@ -6,7 +6,7 @@ set -eu -o pipefail
 
 rm -f node-env.nix
 $(nix-build $ROOT -A nodePackages.node2nix --no-out-link)/bin/node2nix \
-    --nodejs-10 \
+    --nodejs-12 \
     -i node-packages.json \
     -o node-packages.nix \
     -c node-composition.nix \
diff --git a/pkgs/development/compilers/elm/packages/lib.nix b/pkgs/development/compilers/elm/packages/lib.nix
new file mode 100644
index 00000000000..12e0600dc23
--- /dev/null
+++ b/pkgs/development/compilers/elm/packages/lib.nix
@@ -0,0 +1,43 @@
+{ writeScriptBin, stdenv, lib, elm }:
+let
+  patchBinwrap =
+    let
+      # Patching binwrap by NoOp script
+      binwrap = writeScriptBin "binwrap" ''
+        #! ${stdenv.shell}
+        echo "binwrap called: Returning 0"
+        return 0
+      '';
+      binwrap-install = writeScriptBin "binwrap-install" ''
+        #! ${stdenv.shell}
+        echo "binwrap-install called: Doing nothing"
+      '';
+    in targets: pkg:
+      pkg.override (old: {
+        nativeBuildInputs = (old.nativeBuildInputs or []) ++ [ binwrap binwrap-install ];
+
+        # Manually install targets
+        # by symlinking binaries into `node_modules`
+        postInstall = let
+          binFile = module: lib.strings.removeSuffix ("-" + module.version) module.name;
+        in (old.postInstall or "") + ''
+          ${lib.concatStrings (map (module: ''
+              echo "linking ${binFile module}"
+              ln -sf ${module}/bin/${binFile module} \
+                  node_modules/${binFile module}/bin/${binFile module}
+          '') targets)}
+        '';
+      });
+
+  patchNpmElm = pkg:
+    pkg.override (old: {
+      preRebuild = (old.preRebuild or "") + ''
+        rm node_modules/elm/install.js
+        echo "console.log('Nixpkgs\' version of Elm will be used');" > node_modules/elm/install.js
+      '';
+      postInstall = (old.postInstall or "") + ''
+        ln -sf ${elm}/bin/elm node_modules/elm/bin/elm
+      '';
+    });
+in
+{ inherit patchBinwrap patchNpmElm; }
diff --git a/pkgs/development/compilers/elm/packages/node-composition.nix b/pkgs/development/compilers/elm/packages/node-composition.nix
index 4add754b599..9c6bdb2006a 100644
--- a/pkgs/development/compilers/elm/packages/node-composition.nix
+++ b/pkgs/development/compilers/elm/packages/node-composition.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 ../../../node-packages/node-env.nix {
diff --git a/pkgs/development/compilers/elm/packages/node-packages.nix b/pkgs/development/compilers/elm/packages/node-packages.nix
index 32bee20ce9d..ba17a1f0623 100644
--- a/pkgs/development/compilers/elm/packages/node-packages.nix
+++ b/pkgs/development/compilers/elm/packages/node-packages.nix
@@ -4,13 +4,13 @@
 
 let
   sources = {
-    "@babel/cli-7.2.3" = {
+    "@babel/cli-7.8.4" = {
       name = "_at_babel_slash_cli";
       packageName = "@babel/cli";
-      version = "7.2.3";
+      version = "7.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.2.3.tgz";
-        sha512 = "bfna97nmJV6nDJhXNPeEfxyMjWnt6+IjUAaDPiYRTBlm8L41n8nvw6UAqUCbvpFfU246gHPxW7sfWwqtF4FcYA==";
+        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.8.4.tgz";
+        sha512 = "XXLgAm6LBbaNxaGhMAznXXaxtCWfuv6PIDJ9Alsy9JYTOh+j2jJz+L/162kkfU1j/pTSxK1xGmlwI4pdIMkoag==";
       };
     };
     "@babel/code-frame-7.0.0" = {
@@ -22,283 +22,337 @@ let
         sha512 = "OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==";
       };
     };
-    "@babel/code-frame-7.8.3" = {
+    "@babel/code-frame-7.10.4" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
-      version = "7.8.3";
+      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.10.5" = {
+      name = "_at_babel_slash_compat-data";
+      packageName = "@babel/compat-data";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz";
-        sha512 = "a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.5.tgz";
+        sha512 = "mPVoWNzIpYJHbWje0if7Ck36bpbtTvIxOi9+6WSK9wjGEXearAqlwBoTQvVjsAY2VIwgcs8V940geY3okzRCEw==";
       };
     };
-    "@babel/core-7.3.4" = {
+    "@babel/core-7.9.6" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.3.4";
+      version = "7.9.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.3.4.tgz";
-        sha512 = "jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz";
+        sha512 = "nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==";
       };
     };
-    "@babel/generator-7.9.4" = {
+    "@babel/generator-7.10.5" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.9.4";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz";
-        sha512 = "rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz";
+        sha512 = "3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==";
       };
     };
-    "@babel/helper-annotate-as-pure-7.8.3" = {
+    "@babel/helper-annotate-as-pure-7.10.4" = {
       name = "_at_babel_slash_helper-annotate-as-pure";
       packageName = "@babel/helper-annotate-as-pure";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz";
-        sha512 = "6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==";
+        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.8.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.8.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.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-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz";
-        sha512 = "5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==";
+        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.8.8" = {
+    "@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.8.8";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz";
-        sha512 = "LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==";
+        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.8.3" = {
+    "@babel/helper-define-map-7.10.5" = {
       name = "_at_babel_slash_helper-define-map";
       packageName = "@babel/helper-define-map";
-      version = "7.8.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz";
-        sha512 = "PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==";
+        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.8.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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz";
-        sha512 = "N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==";
+        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.8.3" = {
+    "@babel/helper-function-name-7.10.4" = {
       name = "_at_babel_slash_helper-function-name";
       packageName = "@babel/helper-function-name";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz";
-        sha512 = "BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==";
+        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.8.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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz";
-        sha512 = "FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==";
+        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.8.3" = {
+    "@babel/helper-hoist-variables-7.10.4" = {
       name = "_at_babel_slash_helper-hoist-variables";
       packageName = "@babel/helper-hoist-variables";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz";
-        sha512 = "ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==";
+        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.8.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.8.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz";
-        sha512 = "fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==";
+        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.8.3" = {
+    "@babel/helper-module-imports-7.10.4" = {
       name = "_at_babel_slash_helper-module-imports";
       packageName = "@babel/helper-module-imports";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz";
-        sha512 = "R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==";
+        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.9.0" = {
+    "@babel/helper-module-transforms-7.10.5" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.9.0";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz";
-        sha512 = "0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==";
+        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.8.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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz";
-        sha512 = "Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==";
+        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.8.3" = {
+    "@babel/helper-plugin-utils-7.10.4" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz";
-        sha512 = "j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==";
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
+        sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==";
       };
     };
-    "@babel/helper-regex-7.8.3" = {
+    "@babel/helper-regex-7.10.5" = {
       name = "_at_babel_slash_helper-regex";
       packageName = "@babel/helper-regex";
-      version = "7.8.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz";
-        sha512 = "BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==";
+        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz";
+        sha512 = "68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==";
       };
     };
-    "@babel/helper-remap-async-to-generator-7.8.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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz";
-        sha512 = "kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==";
+        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.8.6" = {
+    "@babel/helper-replace-supers-7.10.4" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.8.6";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz";
-        sha512 = "PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==";
+        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.8.3" = {
+    "@babel/helper-simple-access-7.10.4" = {
       name = "_at_babel_slash_helper-simple-access";
       packageName = "@babel/helper-simple-access";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz";
-        sha512 = "VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==";
+        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.8.3" = {
+    "@babel/helper-split-export-declaration-7.10.4" = {
       name = "_at_babel_slash_helper-split-export-declaration";
       packageName = "@babel/helper-split-export-declaration";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz";
-        sha512 = "3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==";
+        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.9.0" = {
+    "@babel/helper-validator-identifier-7.10.4" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz";
-        sha512 = "6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
+        sha512 = "3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==";
       };
     };
-    "@babel/helper-wrap-function-7.8.3" = {
+    "@babel/helper-wrap-function-7.10.4" = {
       name = "_at_babel_slash_helper-wrap-function";
       packageName = "@babel/helper-wrap-function";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz";
-        sha512 = "LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==";
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz";
+        sha512 = "6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==";
       };
     };
-    "@babel/helpers-7.9.2" = {
+    "@babel/helpers-7.10.4" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.9.2";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz";
-        sha512 = "JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz";
+        sha512 = "L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==";
       };
     };
-    "@babel/highlight-7.9.0" = {
+    "@babel/highlight-7.10.4" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz";
-        sha512 = "lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz";
+        sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
       };
     };
-    "@babel/parser-7.9.4" = {
+    "@babel/parser-7.10.5" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.9.4";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz";
-        sha512 = "bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz";
+        sha512 = "wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==";
       };
     };
-    "@babel/plugin-proposal-async-generator-functions-7.8.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.8.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.5.tgz";
+        sha512 = "cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==";
+      };
+    };
+    "@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-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz";
-        sha512 = "NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==";
+        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.8.3" = {
+    "@babel/plugin-proposal-json-strings-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-json-strings";
       packageName = "@babel/plugin-proposal-json-strings";
-      version = "7.8.3";
+      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-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-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz";
-        sha512 = "KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==";
+        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-object-rest-spread-7.9.0" = {
+    "@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.10.4" = {
       name = "_at_babel_slash_plugin-proposal-object-rest-spread";
       packageName = "@babel/plugin-proposal-object-rest-spread";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz";
-        sha512 = "UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow==";
+        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.8.3" = {
+    "@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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz";
-        sha512 = "0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==";
+        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-unicode-property-regex-7.8.8" = {
+    "@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.4";
+      src = fetchurl {
+        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.4" = {
       name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
       packageName = "@babel/plugin-proposal-unicode-property-regex";
-      version = "7.8.8";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz";
-        sha512 = "EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==";
+        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" = {
@@ -310,6 +364,15 @@ let
         sha512 = "tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==";
       };
     };
+    "@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-json-strings-7.8.3" = {
       name = "_at_babel_slash_plugin-syntax-json-strings";
       packageName = "@babel/plugin-syntax-json-strings";
@@ -319,6 +382,24 @@ let
         sha512 = "lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==";
       };
     };
+    "@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";
@@ -337,328 +418,364 @@ let
         sha512 = "6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==";
       };
     };
-    "@babel/plugin-transform-arrow-functions-7.8.3" = {
+    "@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-transform-arrow-functions-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-arrow-functions";
       packageName = "@babel/plugin-transform-arrow-functions";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz";
-        sha512 = "0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==";
+        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.8.3" = {
+    "@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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz";
-        sha512 = "imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==";
+        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.8.3" = {
+    "@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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz";
-        sha512 = "vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==";
+        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.8.3" = {
+    "@babel/plugin-transform-block-scoping-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-block-scoping";
       packageName = "@babel/plugin-transform-block-scoping";
-      version = "7.8.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz";
-        sha512 = "pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==";
+        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.9.2" = {
+    "@babel/plugin-transform-classes-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.9.2";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz";
-        sha512 = "TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ==";
+        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.8.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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz";
-        sha512 = "O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==";
+        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.8.8" = {
+    "@babel/plugin-transform-destructuring-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.8.8";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz";
-        sha512 = "eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ==";
+        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.8.3" = {
+    "@babel/plugin-transform-dotall-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-dotall-regex";
       packageName = "@babel/plugin-transform-dotall-regex";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz";
-        sha512 = "kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==";
+        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.8.3" = {
+    "@babel/plugin-transform-duplicate-keys-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-duplicate-keys";
       packageName = "@babel/plugin-transform-duplicate-keys";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz";
-        sha512 = "s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==";
+        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.8.3" = {
+    "@babel/plugin-transform-exponentiation-operator-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-exponentiation-operator";
       packageName = "@babel/plugin-transform-exponentiation-operator";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz";
-        sha512 = "zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==";
+        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.9.0" = {
+    "@babel/plugin-transform-for-of-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-for-of";
       packageName = "@babel/plugin-transform-for-of";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz";
-        sha512 = "lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==";
+        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.8.3" = {
+    "@babel/plugin-transform-function-name-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-function-name";
       packageName = "@babel/plugin-transform-function-name";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz";
-        sha512 = "rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==";
+        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.8.3" = {
+    "@babel/plugin-transform-literals-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-literals";
       packageName = "@babel/plugin-transform-literals";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz";
-        sha512 = "3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==";
+        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-modules-amd-7.9.0" = {
+    "@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.9.0";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz";
-        sha512 = "vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==";
+        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.9.0" = {
+    "@babel/plugin-transform-modules-commonjs-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz";
-        sha512 = "qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g==";
+        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.9.0" = {
+    "@babel/plugin-transform-modules-systemjs-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-modules-systemjs";
       packageName = "@babel/plugin-transform-modules-systemjs";
-      version = "7.9.0";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz";
-        sha512 = "FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==";
+        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.9.0" = {
+    "@babel/plugin-transform-modules-umd-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-modules-umd";
       packageName = "@babel/plugin-transform-modules-umd";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz";
-        sha512 = "uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==";
+        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.8.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.8.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.8.3.tgz";
-        sha512 = "f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==";
+        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.8.3" = {
+    "@babel/plugin-transform-new-target-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-new-target";
       packageName = "@babel/plugin-transform-new-target";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz";
-        sha512 = "QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==";
+        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.8.3" = {
+    "@babel/plugin-transform-object-super-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-object-super";
       packageName = "@babel/plugin-transform-object-super";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz";
-        sha512 = "57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==";
+        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.9.3" = {
+    "@babel/plugin-transform-parameters-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.9.3";
+      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-parameters/-/plugin-transform-parameters-7.9.3.tgz";
-        sha512 = "fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg==";
+        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.8.7" = {
+    "@babel/plugin-transform-regenerator-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-regenerator";
       packageName = "@babel/plugin-transform-regenerator";
-      version = "7.8.7";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz";
-        sha512 = "TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz";
+        sha512 = "3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==";
       };
     };
-    "@babel/plugin-transform-runtime-7.3.4" = {
+    "@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-runtime-7.9.6" = {
       name = "_at_babel_slash_plugin-transform-runtime";
       packageName = "@babel/plugin-transform-runtime";
-      version = "7.3.4";
+      version = "7.9.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.3.4.tgz";
-        sha512 = "PaoARuztAdd5MgeVjAxnIDAIUet5KpogqaefQvPOmPYCxYoaPhautxDh3aO8a4xHsKgT/b9gSxR0BKK1MIewPA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.6.tgz";
+        sha512 = "qcmiECD0mYOjOIt8YHNsAP1SxPooC/rDmfmiSK9BNY72EitdSc7l44WTEklaWuFtbOEBjNhWWyph/kOImbNJ4w==";
       };
     };
-    "@babel/plugin-transform-shorthand-properties-7.8.3" = {
+    "@babel/plugin-transform-shorthand-properties-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-shorthand-properties";
       packageName = "@babel/plugin-transform-shorthand-properties";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz";
-        sha512 = "I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==";
+        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.8.3" = {
+    "@babel/plugin-transform-spread-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-spread";
       packageName = "@babel/plugin-transform-spread";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz";
-        sha512 = "CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==";
+        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.8.3" = {
+    "@babel/plugin-transform-sticky-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-sticky-regex";
       packageName = "@babel/plugin-transform-sticky-regex";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz";
-        sha512 = "9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==";
+        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.8.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.8.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz";
-        sha512 = "820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==";
+        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.8.4" = {
+    "@babel/plugin-transform-typeof-symbol-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-typeof-symbol";
       packageName = "@babel/plugin-transform-typeof-symbol";
-      version = "7.8.4";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz";
-        sha512 = "2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==";
+        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.8.3" = {
+    "@babel/plugin-transform-unicode-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-unicode-regex";
       packageName = "@babel/plugin-transform-unicode-regex";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz";
-        sha512 = "+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==";
+        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.3.4" = {
+    "@babel/preset-env-7.9.6" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.3.4";
+      version = "7.9.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.4.tgz";
-        sha512 = "2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.6.tgz";
+        sha512 = "0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ==";
       };
     };
-    "@babel/runtime-7.3.4" = {
-      name = "_at_babel_slash_runtime";
-      packageName = "@babel/runtime";
-      version = "7.3.4";
+    "@babel/preset-modules-0.1.3" = {
+      name = "_at_babel_slash_preset-modules";
+      packageName = "@babel/preset-modules";
+      version = "0.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.4.tgz";
-        sha512 = "IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==";
+        url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz";
+        sha512 = "Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==";
       };
     };
-    "@babel/runtime-7.9.2" = {
+    "@babel/runtime-7.9.6" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.9.2";
+      version = "7.9.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz";
-        sha512 = "NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz";
+        sha512 = "64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==";
       };
     };
-    "@babel/template-7.8.6" = {
+    "@babel/template-7.10.4" = {
       name = "_at_babel_slash_template";
       packageName = "@babel/template";
-      version = "7.8.6";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz";
-        sha512 = "zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==";
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz";
+        sha512 = "ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==";
       };
     };
-    "@babel/traverse-7.9.0" = {
+    "@babel/traverse-7.10.5" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.9.0";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz";
-        sha512 = "jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz";
+        sha512 = "yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==";
       };
     };
-    "@babel/types-7.9.0" = {
+    "@babel/types-7.10.5" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.9.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz";
-        sha512 = "BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==";
-      };
-    };
-    "@cnakazawa/watch-1.0.4" = {
-      name = "_at_cnakazawa_slash_watch";
-      packageName = "@cnakazawa/watch";
-      version = "1.0.4";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz";
-        sha512 = "v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz";
+        sha512 = "ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==";
       };
     };
     "@hapi/address-2.1.4" = {
@@ -751,22 +868,31 @@ let
         sha512 = "1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==";
       };
     };
-    "@sindresorhus/is-0.7.0" = {
+    "@sindresorhus/is-0.14.0" = {
       name = "_at_sindresorhus_slash_is";
       packageName = "@sindresorhus/is";
-      version = "0.7.0";
+      version = "0.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz";
-        sha512 = "ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==";
+        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz";
+        sha512 = "9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==";
       };
     };
-    "@sindresorhus/is-2.1.0" = {
+    "@sindresorhus/is-2.1.1" = {
       name = "_at_sindresorhus_slash_is";
       packageName = "@sindresorhus/is";
-      version = "2.1.0";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz";
+        sha512 = "/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==";
+      };
+    };
+    "@szmarczak/http-timer-1.1.2" = {
+      name = "_at_szmarczak_slash_http-timer";
+      packageName = "@szmarczak/http-timer";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.0.tgz";
-        sha512 = "lXKXfypKo644k4Da4yXkPCrwcvn6SlUW2X2zFbuflKHNjf0w9htru01bo26uMhleMXsDmnZ12eJLdrAZa9MANg==";
+        url = "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz";
+        sha512 = "XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==";
       };
     };
     "@szmarczak/http-timer-4.0.5" = {
@@ -805,31 +931,22 @@ let
         sha512 = "rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==";
       };
     };
-    "@types/events-3.0.0" = {
-      name = "_at_types_slash_events";
-      packageName = "@types/events";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz";
-        sha512 = "EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==";
-      };
-    };
-    "@types/glob-7.1.1" = {
+    "@types/glob-7.1.3" = {
       name = "_at_types_slash_glob";
       packageName = "@types/glob";
-      version = "7.1.1";
+      version = "7.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz";
-        sha512 = "1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==";
+        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz";
+        sha512 = "SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==";
       };
     };
-    "@types/html-minifier-terser-5.0.0" = {
+    "@types/html-minifier-terser-5.1.0" = {
       name = "_at_types_slash_html-minifier-terser";
       packageName = "@types/html-minifier-terser";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.0.0.tgz";
-        sha512 = "q95SP4FdkmF0CwO0F2q0H6ZgudsApaY/yCtAQNRn1gduef5fGpyEphzy0YCq/N0UFvDSnLg5V8jFK/YGXlDiCw==";
+        url = "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.0.tgz";
+        sha512 = "iYCgjm1dGPRuo12+BStjd1HiVQqhlRhWDOQigNxn023HcjnhsiFz9pc6CzJj4HwDCSQca9bxTL4PxJDbkdm3PA==";
       };
     };
     "@types/http-cache-semantics-4.0.0" = {
@@ -841,6 +958,24 @@ let
         sha512 = "c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==";
       };
     };
+    "@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/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/keyv-3.1.1" = {
       name = "_at_types_slash_keyv";
       packageName = "@types/keyv";
@@ -859,22 +994,22 @@ let
         sha512 = "tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==";
       };
     };
-    "@types/node-13.11.0" = {
+    "@types/node-14.0.23" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "13.11.0";
+      version = "14.0.23";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-13.11.0.tgz";
-        sha512 = "uM4mnmsIIPK/yeO+42F2RQhGUIs39K2RFmugcJANppXe6J1nvH87PvzPZYpza7Xhhs8Yn9yIAVdLZ84z61+0xQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.0.23.tgz";
+        sha512 = "Z4U8yDAl5TFkmYsZdFPdjeMa57NOvnaf1tljHzhouaPEp7LCj2JKkejpI1ODviIAQuW4CcQmxkQ77rnLsOOoKw==";
       };
     };
-    "@types/q-1.5.2" = {
+    "@types/q-1.5.4" = {
       name = "_at_types_slash_q";
       packageName = "@types/q";
-      version = "1.5.2";
+      version = "1.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz";
-        sha512 = "ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==";
+        url = "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz";
+        sha512 = "1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==";
       };
     };
     "@types/responselike-1.0.0" = {
@@ -895,40 +1030,40 @@ let
         sha512 = "K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==";
       };
     };
-    "@types/tapable-1.0.5" = {
+    "@types/tapable-1.0.6" = {
       name = "_at_types_slash_tapable";
       packageName = "@types/tapable";
-      version = "1.0.5";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.5.tgz";
-        sha512 = "/gG2M/Imw7cQFp8PGvz/SwocNrmKFjFsm5Pb8HdbHkZ1K8pmuPzOX4VeVoiEecFCVf4CsN1r3/BRvx+6sNqwtQ==";
+        url = "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz";
+        sha512 = "W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==";
       };
     };
-    "@types/uglify-js-3.0.5" = {
+    "@types/uglify-js-3.9.3" = {
       name = "_at_types_slash_uglify-js";
       packageName = "@types/uglify-js";
-      version = "3.0.5";
+      version = "3.9.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.0.5.tgz";
-        sha512 = "L7EbSkhSaWBpkl+PZAEAqZTqtTeIsq7s/oX/q0LNnxxJoRVKQE0T81XDVyaxjiiKQwiV2vhVeYRqxdRNqGOGJw==";
+        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.3.tgz";
+        sha512 = "KswB5C7Kwduwjj04Ykz+AjvPcfgv/37Za24O2EDzYNbwyzOo8+ydtvzUfZ5UMguiVu29Gx44l1A6VsPPcmYu9w==";
       };
     };
-    "@types/webpack-4.41.10" = {
+    "@types/webpack-4.41.21" = {
       name = "_at_types_slash_webpack";
       packageName = "@types/webpack";
-      version = "4.41.10";
+      version = "4.41.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.10.tgz";
-        sha512 = "vIy0qaq8AjOjZLuFPqpo7nAJzcoVXMdw3mvpNN07Uvdy0p1IpJeLNBe3obdRP7FX2jIusDE7z1pZa0A6qYUgnA==";
+        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.21.tgz";
+        sha512 = "2j9WVnNrr/8PLAB5csW44xzQSJwS26aOnICsP3pSGCEdsu6KYtfQ6QJsVUKHWRnm1bL7HziJsfh5fHqth87yKA==";
       };
     };
-    "@types/webpack-sources-0.1.7" = {
+    "@types/webpack-sources-1.4.0" = {
       name = "_at_types_slash_webpack-sources";
       packageName = "@types/webpack-sources";
-      version = "0.1.7";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.7.tgz";
-        sha512 = "XyaHrJILjK1VHVC4aVlKsdNN5KBTwufMb43cQs+flGxtPAf/1Qwl8+Q0tp5BwEGaI8D6XT1L+9bSWXckgkjTLw==";
+        url = "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-1.4.0.tgz";
+        sha512 = "c88dKrpSle9BtTqR6ifdaxu1Lvjsl3C5OsfvuUbUwdXymshv1TkufUAXBajCCUM/f/TmnkZC/Esb03MinzSiXQ==";
       };
     };
     "@webassemblyjs/ast-1.9.0" = {
@@ -1147,13 +1282,13 @@ let
         sha512 = "z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==";
       };
     };
-    "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-errors-1.0.1" = {
@@ -1165,13 +1300,13 @@ let
         sha512 = "DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==";
       };
     };
-    "ajv-keywords-3.4.1" = {
+    "ajv-keywords-3.5.1" = {
       name = "ajv-keywords";
       packageName = "ajv-keywords";
-      version = "3.4.1";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz";
-        sha512 = "RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==";
+        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz";
+        sha512 = "KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA==";
       };
     };
     "alphanum-sort-1.0.2" = {
@@ -1570,13 +1705,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 = "wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==";
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz";
+        sha512 = "3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==";
       };
     };
     "babel-extract-comments-1.0.0" = {
@@ -1588,22 +1723,22 @@ let
         sha512 = "qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==";
       };
     };
-    "babel-loader-8.0.4" = {
+    "babel-loader-8.1.0" = {
       name = "babel-loader";
       packageName = "babel-loader";
-      version = "8.0.4";
+      version = "8.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.4.tgz";
-        sha512 = "fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw==";
+        url = "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz";
+        sha512 = "7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==";
       };
     };
-    "babel-plugin-dynamic-import-node-2.3.0" = {
+    "babel-plugin-dynamic-import-node-2.3.3" = {
       name = "babel-plugin-dynamic-import-node";
       packageName = "babel-plugin-dynamic-import-node";
-      version = "2.3.0";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz";
-        sha512 = "o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==";
+        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-syntax-object-rest-spread-6.13.0" = {
@@ -1732,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" = {
@@ -1768,13 +1903,22 @@ let
         sha512 = "XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==";
       };
     };
-    "bn.js-4.11.8" = {
+    "bn.js-4.11.9" = {
       name = "bn.js";
       packageName = "bn.js";
-      version = "4.11.8";
+      version = "4.11.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz";
-        sha512 = "ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==";
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz";
+        sha512 = "E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==";
+      };
+    };
+    "bn.js-5.1.2" = {
+      name = "bn.js";
+      packageName = "bn.js";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz";
+        sha512 = "40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==";
       };
     };
     "body-parser-1.18.2" = {
@@ -1885,13 +2029,13 @@ let
         sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
       };
     };
-    "browserify-sign-4.0.4" = {
+    "browserify-sign-4.2.0" = {
       name = "browserify-sign";
       packageName = "browserify-sign";
-      version = "4.0.4";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz";
-        sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
+        url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz";
+        sha512 = "hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==";
       };
     };
     "browserify-zlib-0.2.0" = {
@@ -1921,22 +2065,13 @@ let
         sha512 = "VBorw+tgpOtZ1BYhrVSVTzTt/3+vSE3eFUh0N2GCFK1HffceOaf32YS/bs6WiFhjDAblAFrx85jMy3BG9fBK2Q==";
       };
     };
-    "browserslist-4.11.1" = {
+    "browserslist-4.13.0" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.11.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.11.1.tgz";
-        sha512 = "DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g==";
-      };
-    };
-    "bser-2.1.1" = {
-      name = "bser";
-      packageName = "bser";
-      version = "2.1.1";
+      version = "4.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz";
-        sha512 = "gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz";
+        sha512 = "MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==";
       };
     };
     "buffer-4.9.2" = {
@@ -2047,13 +2182,13 @@ let
         sha512 = "EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==";
       };
     };
-    "cacheable-request-2.1.4" = {
+    "cacheable-request-6.1.0" = {
       name = "cacheable-request";
       packageName = "cacheable-request";
-      version = "2.1.4";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz";
-        sha1 = "0d808801b6342ad33c91df9d0b44dc09b91e5c3d";
+        url = "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz";
+        sha512 = "Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==";
       };
     };
     "cacheable-request-7.0.1" = {
@@ -2137,22 +2272,13 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001039" = {
+    "caniuse-lite-1.0.30001102" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001039";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001039.tgz";
-        sha512 = "SezbWCTT34eyFoWHgx8UWso7YtvtM7oosmFoXbCkdC6qJzRfBTeTgE9REtKtiuKXuMwWTZEvdnFNGAyVMorv8Q==";
-      };
-    };
-    "capture-exit-2.0.0" = {
-      name = "capture-exit";
-      packageName = "capture-exit";
-      version = "2.0.0";
+      version = "1.0.30001102";
       src = fetchurl {
-        url = "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz";
-        sha512 = "PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001102.tgz";
+        sha512 = "fOjqRmHjRXv1H1YD6QVLb96iKqnu17TjcLSaX64TwhGYed0P1E1CCWZ9OujbbK4Z/7zax7zAzvQidzdtjx8RcA==";
       };
     };
     "case-sensitive-paths-webpack-plugin-2.3.0" = {
@@ -2281,6 +2407,15 @@ let
         sha512 = "dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==";
       };
     };
+    "chokidar-3.4.1" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "3.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz";
+        sha512 = "TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==";
+      };
+    };
     "chownr-1.1.4" = {
       name = "chownr";
       packageName = "chownr";
@@ -2344,13 +2479,13 @@ let
         sha1 = "f53b05266a8b1a0b934b3d0821e6e2dc5914ae23";
       };
     };
-    "cli-width-2.2.0" = {
+    "cli-width-2.2.1" = {
       name = "cli-width";
       packageName = "cli-width";
-      version = "2.2.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz";
-        sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
+        url = "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz";
+        sha512 = "GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==";
       };
     };
     "cliui-3.2.0" = {
@@ -2362,15 +2497,6 @@ let
         sha1 = "120601537a916d29940f934da3b48d585a39213d";
       };
     };
-    "cliui-4.1.0" = {
-      name = "cliui";
-      packageName = "cliui";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz";
-        sha512 = "4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==";
-      };
-    };
     "cliui-5.0.0" = {
       name = "cliui";
       packageName = "cliui";
@@ -2533,22 +2659,22 @@ let
         sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==";
       };
     };
-    "commander-3.0.2" = {
+    "commander-4.1.1" = {
       name = "commander";
       packageName = "commander";
-      version = "3.0.2";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz";
-        sha512 = "Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==";
+        url = "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz";
+        sha512 = "NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==";
       };
     };
-    "commander-4.1.1" = {
+    "commander-5.1.0" = {
       name = "commander";
       packageName = "commander";
-      version = "4.1.1";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz";
-        sha512 = "NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==";
+        url = "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz";
+        sha512 = "P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==";
       };
     };
     "common-tags-1.8.0" = {
@@ -2767,13 +2893,13 @@ let
         sha512 = "5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==";
       };
     };
-    "core-js-3.6.4" = {
-      name = "core-js";
-      packageName = "core-js";
-      version = "3.6.4";
+    "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/-/core-js-3.6.4.tgz";
-        sha512 = "4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==";
+        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" = {
@@ -2785,15 +2911,6 @@ let
         sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
       };
     };
-    "cosmiconfig-2.2.2" = {
-      name = "cosmiconfig";
-      packageName = "cosmiconfig";
-      version = "2.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz";
-        sha512 = "GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==";
-      };
-    };
     "cosmiconfig-5.2.1" = {
       name = "cosmiconfig";
       packageName = "cosmiconfig";
@@ -2884,13 +3001,13 @@ let
         sha512 = "u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==";
       };
     };
-    "cross-spawn-7.0.2" = {
+    "cross-spawn-7.0.3" = {
       name = "cross-spawn";
       packageName = "cross-spawn";
-      version = "7.0.2";
+      version = "7.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz";
-        sha512 = "PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==";
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz";
+        sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
       };
     };
     "crypt-0.0.2" = {
@@ -2929,13 +3046,13 @@ let
         sha512 = "BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==";
       };
     };
-    "css-loader-3.4.2" = {
+    "css-loader-3.6.0" = {
       name = "css-loader";
       packageName = "css-loader";
-      version = "3.4.2";
+      version = "3.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-loader/-/css-loader-3.4.2.tgz";
-        sha512 = "jYq4zdZT0oS0Iykt+fqnzVLRIeiPWhka+7BqPn+oSIpWJAHak5tmB/WZrJ2a21JhCeFyNnnlroSl8c+MtVndzA==";
+        url = "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz";
+        sha512 = "M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==";
       };
     };
     "css-select-1.2.0" = {
@@ -2992,13 +3109,13 @@ let
         sha512 = "a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==";
       };
     };
-    "css-what-3.2.1" = {
+    "css-what-3.3.0" = {
       name = "css-what";
       packageName = "css-what";
-      version = "3.2.1";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz";
-        sha512 = "WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==";
+        url = "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz";
+        sha512 = "pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==";
       };
     };
     "cssesc-3.0.0" = {
@@ -3118,13 +3235,13 @@ let
         sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
       };
     };
-    "debug-4.1.1" = {
+    "debug-4.2.0" = {
       name = "debug";
       packageName = "debug";
-      version = "4.1.1";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz";
-        sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==";
+        url = "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz";
+        sha512 = "IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==";
       };
     };
     "decamelize-1.2.0" = {
@@ -3199,6 +3316,15 @@ let
         sha512 = "h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==";
       };
     };
+    "defer-to-connect-1.1.3" = {
+      name = "defer-to-connect";
+      packageName = "defer-to-connect";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz";
+        sha512 = "0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==";
+      };
+    };
     "defer-to-connect-2.0.0" = {
       name = "defer-to-connect";
       packageName = "defer-to-connect";
@@ -3460,13 +3586,13 @@ let
         sha512 = "uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==";
       };
     };
-    "dotenv-5.0.1" = {
+    "dotenv-8.2.0" = {
       name = "dotenv";
       packageName = "dotenv";
-      version = "5.0.1";
+      version = "8.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz";
-        sha512 = "4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==";
+        url = "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz";
+        sha512 = "8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==";
       };
     };
     "duplexer-0.1.1" = {
@@ -3514,22 +3640,22 @@ let
         sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
       };
     };
-    "electron-to-chromium-1.3.397" = {
+    "electron-to-chromium-1.3.500" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.397";
+      version = "1.3.500";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.397.tgz";
-        sha512 = "zcUd1p/7yzTSdWkCTrqGvbnEOASy96d0RJL/lc5BDJoO23Z3G/VHd0yIPbguDU9n8QNUTCigLO7oEdtOb7fp2A==";
+        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.2" = {
+    "elliptic-6.5.3" = {
       name = "elliptic";
       packageName = "elliptic";
-      version = "6.5.2";
+      version = "6.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz";
-        sha512 = "f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==";
+        url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz";
+        sha512 = "IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==";
       };
     };
     "elm-0.19.1" = {
@@ -3550,14 +3676,14 @@ let
         sha512 = "6y36ewCcVmTOx8lj7cKJs3bhI5qMfoVEigePZ9PhEUNKpwjjML/pU2u2YSpHVAznuCcojoF6KIsrS1Ci7GtVaQ==";
       };
     };
-    "elm-analyse-git://github.com/elm-tooling/elm-analyse#1a665a6e540d7d11b29b3c5e3c52089704325d9c" = {
+    "elm-analyse-git://github.com/elm-tooling/elm-analyse#7f4000cce5ef024fe5e82c7ee1725feef95a9daf" = {
       name = "elm-analyse";
       packageName = "elm-analyse";
-      version = "0.16.5";
+      version = "0.16.6-alpha";
       src = fetchgit {
         url = "git://github.com/elm-tooling/elm-analyse";
-        rev = "1a665a6e540d7d11b29b3c5e3c52089704325d9c";
-        sha256 = "a442bce37ae37a65c1488c66e477c404da1c7f137a6668d89c4b09de845ca374";
+        rev = "7f4000cce5ef024fe5e82c7ee1725feef95a9daf";
+        sha256 = "270cb1adfdeb368dde2b780938f653e9aa46cc97afbe4de828813fef7c30e556";
       };
     };
     "elm-asset-webpack-loader-1.1.2" = {
@@ -3605,13 +3731,13 @@ let
         sha512 = "zVs2mVeyIE+K9y7/8b333h5xRMDWAoqbBDm7ThLDhyTi7ICxeL3t5uOS4KZCrRk9+4sP6+voSbcBlgr46Q+GiQ==";
       };
     };
-    "elm-webpack-loader-6.0.0" = {
+    "elm-webpack-loader-6.0.1" = {
       name = "elm-webpack-loader";
       packageName = "elm-webpack-loader";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/elm-webpack-loader/-/elm-webpack-loader-6.0.0.tgz";
-        sha512 = "g5eKUo/F8ixHtXU4hf9mTtA4IzJ9yOHfwH1/C9Mo3mfkiz23UFaXtbGvEILa+8jLGFRTp8wuVtKcC5fuhCnSMA==";
+        url = "https://registry.npmjs.org/elm-webpack-loader/-/elm-webpack-loader-6.0.1.tgz";
+        sha512 = "SkltiDAbegaiPxsQq7sxqTyRUXzD4n6UaT9JTZXIYoAjAEi/ogaIbYLQD6Ne5ZaSW3JOo6S/vb+VO5v0qDdirw==";
       };
     };
     "elmi-to-json-1.2.0" = {
@@ -3686,13 +3812,13 @@ let
         sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
       };
     };
-    "enhanced-resolve-4.1.1" = {
+    "enhanced-resolve-4.3.0" = {
       name = "enhanced-resolve";
       packageName = "enhanced-resolve";
-      version = "4.1.1";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz";
-        sha512 = "98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==";
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz";
+        sha512 = "3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==";
       };
     };
     "entities-1.1.2" = {
@@ -3704,13 +3830,13 @@ let
         sha512 = "f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==";
       };
     };
-    "entities-2.0.0" = {
+    "entities-2.0.3" = {
       name = "entities";
       packageName = "entities";
-      version = "2.0.0";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz";
-        sha512 = "D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==";
+        url = "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz";
+        sha512 = "MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==";
       };
     };
     "errno-0.1.7" = {
@@ -3731,13 +3857,13 @@ let
         sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
       };
     };
-    "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 = "BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==";
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz";
+        sha512 = "Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==";
       };
     };
     "es-to-primitive-1.2.1" = {
@@ -3749,13 +3875,22 @@ let
         sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
       };
     };
-    "es6-promisify-6.1.0" = {
+    "es6-promisify-6.1.1" = {
       name = "es6-promisify";
       packageName = "es6-promisify";
-      version = "6.1.0";
+      version = "6.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.0.tgz";
-        sha512 = "jCsk2fpfEFusVv1MDkF4Uf0hAzIKNDMgR6LyOIw6a3jwkN1sCgWzuwgnsHY9YSQ8n8P31HoncvE0LC44cpWTrw==";
+        url = "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.1.tgz";
+        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" = {
@@ -3785,6 +3920,15 @@ let
         sha512 = "UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==";
       };
     };
+    "escape-string-regexp-4.0.0" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
+        sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
+      };
+    };
     "eslint-scope-4.0.3" = {
       name = "eslint-scope";
       packageName = "eslint-scope";
@@ -3821,6 +3965,15 @@ let
         sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
       };
     };
+    "esutils-2.0.3" = {
+      name = "esutils";
+      packageName = "esutils";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz";
+        sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
+      };
+    };
     "etag-1.8.1" = {
       name = "etag";
       packageName = "etag";
@@ -3839,13 +3992,13 @@ let
         sha512 = "tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==";
       };
     };
-    "eventemitter3-4.0.0" = {
+    "eventemitter3-4.0.4" = {
       name = "eventemitter3";
       packageName = "eventemitter3";
-      version = "4.0.0";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz";
-        sha512 = "qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==";
+        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz";
+        sha512 = "rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==";
       };
     };
     "events-3.1.0" = {
@@ -3884,15 +4037,6 @@ let
         sha512 = "/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==";
       };
     };
-    "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";
@@ -3902,13 +4046,13 @@ let
         sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==";
       };
     };
-    "execa-4.0.0" = {
+    "execa-4.0.3" = {
       name = "execa";
       packageName = "execa";
-      version = "4.0.0";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/execa/-/execa-4.0.0.tgz";
-        sha512 = "JbDUxwV3BoT5ZVXQrSVbAiaXhXUkIwvbhPIwZ0N13kX+5yCzOhUNdocxB/UQRuYOHRYYwAxKYwJYc0T4D12pDA==";
+        url = "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz";
+        sha512 = "WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==";
       };
     };
     "expand-brackets-2.1.4" = {
@@ -4028,13 +4172,13 @@ let
         sha1 = "62cf120234c683785d902348a800ef3e0cc20bc0";
       };
     };
-    "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 = "8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==";
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
       };
     };
     "fast-diff-1.2.0" = {
@@ -4055,13 +4199,13 @@ let
         sha512 = "g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==";
       };
     };
-    "fast-glob-3.2.2" = {
+    "fast-glob-3.2.4" = {
       name = "fast-glob";
       packageName = "fast-glob";
-      version = "3.2.2";
+      version = "3.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz";
-        sha512 = "UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==";
+        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz";
+        sha512 = "kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==";
       };
     };
     "fast-json-stable-stringify-2.1.0" = {
@@ -4073,13 +4217,13 @@ let
         sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
       };
     };
-    "fastq-1.7.0" = {
+    "fastq-1.8.0" = {
       name = "fastq";
       packageName = "fastq";
-      version = "1.7.0";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fastq/-/fastq-1.7.0.tgz";
-        sha512 = "YOadQRnHd5q6PogvAR/x62BGituF2ufiEA6s8aavQANw5YKHERI4AREboX6KotzP8oX2klxYF2wcV/7bn1clfQ==";
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz";
+        sha512 = "SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==";
       };
     };
     "faye-websocket-0.10.0" = {
@@ -4100,15 +4244,6 @@ let
         sha512 = "D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==";
       };
     };
-    "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==";
-      };
-    };
     "figgy-pudding-3.5.2" = {
       name = "figgy-pudding";
       packageName = "figgy-pudding";
@@ -4307,13 +4442,13 @@ let
         sha512 = "3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==";
       };
     };
-    "follow-redirects-1.11.0" = {
+    "follow-redirects-1.12.1" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.11.0";
+      version = "1.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.11.0.tgz";
-        sha512 = "KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.12.1.tgz";
+        sha512 = "tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg==";
       };
     };
     "for-in-1.0.2" = {
@@ -4469,22 +4604,22 @@ let
         sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
       };
     };
-    "fsevents-1.2.12" = {
+    "fsevents-1.2.13" = {
       name = "fsevents";
       packageName = "fsevents";
-      version = "1.2.12";
+      version = "1.2.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz";
-        sha512 = "Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==";
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz";
+        sha512 = "oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==";
       };
     };
-    "fsevents-2.1.2" = {
+    "fsevents-2.1.3" = {
       name = "fsevents";
       packageName = "fsevents";
-      version = "2.1.2";
+      version = "2.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz";
-        sha512 = "R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==";
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz";
+        sha512 = "Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==";
       };
     };
     "function-bind-1.1.1" = {
@@ -4496,6 +4631,15 @@ let
         sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
       };
     };
+    "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-1.0.3" = {
       name = "get-caller-file";
       packageName = "get-caller-file";
@@ -4532,15 +4676,6 @@ let
         sha512 = "zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==";
       };
     };
-    "get-stream-3.0.0" = {
-      name = "get-stream";
-      packageName = "get-stream";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz";
-        sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14";
-      };
-    };
     "get-stream-4.1.0" = {
       name = "get-stream";
       packageName = "get-stream";
@@ -4649,13 +4784,13 @@ let
         sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==";
       };
     };
-    "globby-11.0.0" = {
+    "globby-11.0.1" = {
       name = "globby";
       packageName = "globby";
-      version = "11.0.0";
+      version = "11.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globby/-/globby-11.0.0.tgz";
-        sha512 = "iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg==";
+        url = "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz";
+        sha512 = "iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==";
       };
     };
     "globby-6.1.0" = {
@@ -4694,22 +4829,22 @@ let
         sha512 = "aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==";
       };
     };
-    "got-8.3.2" = {
+    "got-9.6.0" = {
       name = "got";
       packageName = "got";
-      version = "8.3.2";
+      version = "9.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/got/-/got-8.3.2.tgz";
-        sha512 = "qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==";
+        url = "https://registry.npmjs.org/got/-/got-9.6.0.tgz";
+        sha512 = "R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==";
       };
     };
-    "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 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==";
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
+        sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
       };
     };
     "gzip-size-5.0.0" = {
@@ -4847,13 +4982,13 @@ let
         sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
       };
     };
-    "hash-base-3.0.4" = {
+    "hash-base-3.1.0" = {
       name = "hash-base";
       packageName = "hash-base";
-      version = "3.0.4";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz";
-        sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918";
+        url = "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz";
+        sha512 = "1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==";
       };
     };
     "hash.js-1.1.7" = {
@@ -4946,31 +5081,31 @@ let
         sha512 = "P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==";
       };
     };
-    "html-entities-1.2.1" = {
+    "html-entities-1.3.1" = {
       name = "html-entities";
       packageName = "html-entities";
-      version = "1.2.1";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz";
-        sha1 = "0df29351f0721163515dfb9e5543e5f6eed5162f";
+        url = "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz";
+        sha512 = "rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==";
       };
     };
-    "html-minifier-terser-5.0.5" = {
+    "html-minifier-terser-5.1.1" = {
       name = "html-minifier-terser";
       packageName = "html-minifier-terser";
-      version = "5.0.5";
+      version = "5.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.5.tgz";
-        sha512 = "cBSFFghQh/uHcfSiL42KxxIRMF7A144+3E44xdlctIjxEmkEfCvouxNyFH2wysXk1fCGBPwtcr3hDWlGTfkDew==";
+        url = "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz";
+        sha512 = "ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==";
       };
     };
-    "html-webpack-plugin-4.0.4" = {
+    "html-webpack-plugin-4.3.0" = {
       name = "html-webpack-plugin";
       packageName = "html-webpack-plugin";
-      version = "4.0.4";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.4.tgz";
-        sha512 = "BREQzUbFfIQS39KqxkT2L1Ot0tuu1isako1CaCQLrgEQ43zi2ScHAe3SMTnVBWsStnIsGtl8jprDdxwZkNhrwQ==";
+        url = "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.3.0.tgz";
+        sha512 = "C0fzKN8yQoVLTelcJxZfJCE+aAvQiY2VUf3UuKrR4a9k5UMWYOtpDLsaXwATbcVCnI05hUS7L9ULQHWLZhyi3w==";
       };
     };
     "htmlparser2-3.10.1" = {
@@ -4982,15 +5117,6 @@ let
         sha512 = "IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==";
       };
     };
-    "http-cache-semantics-3.8.1" = {
-      name = "http-cache-semantics";
-      packageName = "http-cache-semantics";
-      version = "3.8.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz";
-        sha512 = "5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==";
-      };
-    };
     "http-cache-semantics-4.1.0" = {
       name = "http-cache-semantics";
       packageName = "http-cache-semantics";
@@ -5045,13 +5171,13 @@ let
         sha512 = "ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==";
       };
     };
-    "http-parser-js-0.4.10" = {
+    "http-parser-js-0.5.2" = {
       name = "http-parser-js";
       packageName = "http-parser-js";
-      version = "0.4.10";
+      version = "0.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz";
-        sha1 = "92c9c1374c35085f75db359ec56cc257cbb93fa4";
+        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz";
+        sha512 = "opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==";
       };
     };
     "http-proxy-1.17.0" = {
@@ -5063,13 +5189,13 @@ let
         sha512 = "Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==";
       };
     };
-    "http-proxy-1.18.0" = {
+    "http-proxy-1.18.1" = {
       name = "http-proxy";
       packageName = "http-proxy";
-      version = "1.18.0";
+      version = "1.18.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz";
-        sha512 = "84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==";
+        url = "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz";
+        sha512 = "7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==";
       };
     };
     "http-proxy-middleware-0.19.1" = {
@@ -5081,13 +5207,13 @@ let
         sha512 = "yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==";
       };
     };
-    "http-proxy-middleware-0.20.0" = {
+    "http-proxy-middleware-0.21.0" = {
       name = "http-proxy-middleware";
       packageName = "http-proxy-middleware";
-      version = "0.20.0";
+      version = "0.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.20.0.tgz";
-        sha512 = "dNJAk71nEJhPiAczQH9hGvE/MT9kEs+zn2Dh+Hi94PGZe1GluQirC7mw5rdREUtWx6qGS1Gu0bZd4qEAg+REgw==";
+        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.21.0.tgz";
+        sha512 = "4Arcl5QQ6pRMRJmtM1WVHKHkFAQn5uvw83XuNeqnMTOikDiCoTxv5/vdudhKQsF+1mtaAawrK2SEB1v2tYecdQ==";
       };
     };
     "http-signature-1.2.0" = {
@@ -5180,13 +5306,13 @@ let
         sha512 = "Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==";
       };
     };
-    "ignore-5.1.4" = {
+    "ignore-5.1.8" = {
       name = "ignore";
       packageName = "ignore";
-      version = "5.1.4";
+      version = "5.1.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz";
-        sha512 = "MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==";
+        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz";
+        sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==";
       };
     };
     "immer-1.7.2" = {
@@ -5198,6 +5324,15 @@ let
         sha512 = "4Urocwu9+XLDJw4Tc6ZCg7APVjjLInCFvO4TwGsAYV5zT6YYSor14dsZR0+0tHlDIN92cFUOq+i7fC00G5vTxA==";
       };
     };
+    "import-cwd-2.1.0" = {
+      name = "import-cwd";
+      packageName = "import-cwd";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz";
+        sha1 = "aa6cf36e722761285cb371ec6519f53e2435b0a9";
+      };
+    };
     "import-fresh-2.0.0" = {
       name = "import-fresh";
       packageName = "import-fresh";
@@ -5207,6 +5342,15 @@ let
         sha1 = "d81355c15612d386c61f9ddd3922d4304822a546";
       };
     };
+    "import-from-2.1.0" = {
+      name = "import-from";
+      packageName = "import-from";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz";
+        sha1 = "335db7f2a7affd53aaa471d4b8021dee36b7f3b1";
+      };
+    };
     "import-local-2.0.0" = {
       name = "import-local";
       packageName = "import-local";
@@ -5306,15 +5450,6 @@ let
         sha512 = "S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==";
       };
     };
-    "into-stream-3.1.0" = {
-      name = "into-stream";
-      packageName = "into-stream";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz";
-        sha1 = "96fb0a936c12babd6ff1752a17d05616abd094c6";
-      };
-    };
     "invariant-2.2.4" = {
       name = "invariant";
       packageName = "invariant";
@@ -5333,15 +5468,6 @@ let
         sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6";
       };
     };
-    "invert-kv-2.0.0" = {
-      name = "invert-kv";
-      packageName = "invert-kv";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz";
-        sha512 = "wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==";
-      };
-    };
     "ip-1.1.5" = {
       name = "ip";
       packageName = "ip";
@@ -5459,13 +5585,13 @@ let
         sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==";
       };
     };
-    "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 = "ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==";
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz";
+        sha512 = "pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==";
       };
     };
     "is-color-stop-1.1.0" = {
@@ -5531,6 +5657,15 @@ let
         sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1";
       };
     };
+    "is-docker-2.0.0" = {
+      name = "is-docker";
+      packageName = "is-docker";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz";
+        sha512 = "pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==";
+      };
+    };
     "is-extendable-0.1.1" = {
       name = "is-extendable";
       packageName = "is-extendable";
@@ -5675,15 +5810,6 @@ let
         sha512 = "wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==";
       };
     };
-    "is-plain-obj-1.1.0" = {
-      name = "is-plain-obj";
-      packageName = "is-plain-obj";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz";
-        sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
-      };
-    };
     "is-plain-object-2.0.4" = {
       name = "is-plain-object";
       packageName = "is-plain-object";
@@ -5693,22 +5819,13 @@ let
         sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==";
       };
     };
-    "is-promise-2.1.0" = {
-      name = "is-promise";
-      packageName = "is-promise";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz";
-        sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
-      };
-    };
-    "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 = "vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==";
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz";
+        sha512 = "iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==";
       };
     };
     "is-regexp-1.0.0" = {
@@ -5729,15 +5846,6 @@ let
         sha512 = "qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==";
       };
     };
-    "is-retry-allowed-1.2.0" = {
-      name = "is-retry-allowed";
-      packageName = "is-retry-allowed";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz";
-        sha512 = "RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==";
-      };
-    };
     "is-root-2.0.0" = {
       name = "is-root";
       packageName = "is-root";
@@ -5819,6 +5927,15 @@ let
         sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d";
       };
     };
+    "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";
@@ -5873,15 +5990,6 @@ let
         sha512 = "1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==";
       };
     };
-    "js-levenshtein-1.1.6" = {
-      name = "js-levenshtein";
-      packageName = "js-levenshtein";
-      version = "1.1.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz";
-        sha512 = "X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==";
-      };
-    };
     "js-tokens-4.0.0" = {
       name = "js-tokens";
       packageName = "js-tokens";
@@ -5891,13 +5999,13 @@ let
         sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
       };
     };
-    "js-yaml-3.13.1" = {
+    "js-yaml-3.14.0" = {
       name = "js-yaml";
       packageName = "js-yaml";
-      version = "3.13.1";
+      version = "3.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
-        sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==";
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz";
+        sha512 = "/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==";
       };
     };
     "jsbn-0.1.1" = {
@@ -6017,13 +6125,13 @@ let
         sha512 = "aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==";
       };
     };
-    "json5-2.1.2" = {
+    "json5-2.1.3" = {
       name = "json5";
       packageName = "json5";
-      version = "2.1.2";
+      version = "2.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz";
-        sha512 = "MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==";
+        url = "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz";
+        sha512 = "KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==";
       };
     };
     "jsonfile-2.4.0" = {
@@ -6062,22 +6170,22 @@ let
         sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
       };
     };
-    "keyv-3.0.0" = {
+    "keyv-3.1.0" = {
       name = "keyv";
       packageName = "keyv";
-      version = "3.0.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz";
-        sha512 = "eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==";
+        url = "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz";
+        sha512 = "9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==";
       };
     };
-    "keyv-4.0.0" = {
+    "keyv-4.0.1" = {
       name = "keyv";
       packageName = "keyv";
-      version = "4.0.0";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/keyv/-/keyv-4.0.0.tgz";
-        sha512 = "U7ioE8AimvRVLfw4LffyOIRhL2xVgmE8T22L6i0BucSnBUyv4w+I7VN/zVZwRKHOI6ZRUcdMdWHQ8KSUvGpEog==";
+        url = "https://registry.npmjs.org/keyv/-/keyv-4.0.1.tgz";
+        sha512 = "xz6Jv6oNkbhrFCvCP7HQa8AaII8y8LRpoSm661NOKLr4uHuBwhX4epXrPQgF3+xdJnN4Esm5X0xwY4bOlALOtw==";
       };
     };
     "killable-1.0.1" = {
@@ -6143,13 +6251,13 @@ let
         sha512 = "7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==";
       };
     };
-    "latest-version-4.0.0" = {
+    "latest-version-5.1.0" = {
       name = "latest-version";
       packageName = "latest-version";
-      version = "4.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/latest-version/-/latest-version-4.0.0.tgz";
-        sha512 = "b4Myk7aQiQJvgssw2O8yITjELdqKRX4JQJUF1IUplgLaA8unv7s+UsAOwH6Q0/a09czSvlxEm306it2LBXrCzg==";
+        url = "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz";
+        sha512 = "weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==";
       };
     };
     "lcid-1.0.0" = {
@@ -6161,13 +6269,22 @@ let
         sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835";
       };
     };
-    "lcid-2.0.0" = {
-      name = "lcid";
-      packageName = "lcid";
-      version = "2.0.0";
+    "leven-3.1.0" = {
+      name = "leven";
+      packageName = "leven";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz";
-        sha512 = "avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==";
+        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==";
       };
     };
     "load-json-file-1.1.0" = {
@@ -6242,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";
@@ -6287,13 +6413,13 @@ let
         sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
       };
     };
-    "loglevel-1.6.7" = {
+    "loglevel-1.6.8" = {
       name = "loglevel";
       packageName = "loglevel";
-      version = "1.6.7";
+      version = "1.6.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz";
-        sha512 = "cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A==";
+        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz";
+        sha512 = "bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==";
       };
     };
     "loose-envify-1.4.0" = {
@@ -6314,15 +6440,6 @@ let
         sha512 = "LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==";
       };
     };
-    "lowercase-keys-1.0.0" = {
-      name = "lowercase-keys";
-      packageName = "lowercase-keys";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz";
-        sha1 = "4e3366b39e7f5457e35f1324bdf6f88d0bfc7306";
-      };
-    };
     "lowercase-keys-1.0.1" = {
       name = "lowercase-keys";
       packageName = "lowercase-keys";
@@ -6377,24 +6494,6 @@ let
         sha512 = "LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==";
       };
     };
-    "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-age-cleaner-0.1.3" = {
-      name = "map-age-cleaner";
-      packageName = "map-age-cleaner";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
-        sha512 = "bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==";
-      };
-    };
     "map-cache-0.2.2" = {
       name = "map-cache";
       packageName = "map-cache";
@@ -6458,15 +6557,6 @@ let
         sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
       };
     };
-    "mem-4.3.0" = {
-      name = "mem";
-      packageName = "mem";
-      version = "4.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz";
-        sha512 = "qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==";
-      };
-    };
     "memory-fs-0.4.1" = {
       name = "memory-fs";
       packageName = "memory-fs";
@@ -6503,13 +6593,13 @@ let
         sha512 = "abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==";
       };
     };
-    "merge2-1.3.0" = {
+    "merge2-1.4.1" = {
       name = "merge2";
       packageName = "merge2";
-      version = "1.3.0";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz";
-        sha512 = "2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==";
+        url = "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz";
+        sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==";
       };
     };
     "methods-1.1.2" = {
@@ -6575,31 +6665,31 @@ let
         sha512 = "QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw==";
       };
     };
-    "mime-2.4.4" = {
+    "mime-2.4.6" = {
       name = "mime";
       packageName = "mime";
-      version = "2.4.4";
+      version = "2.4.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz";
-        sha512 = "LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==";
+        url = "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz";
+        sha512 = "RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==";
       };
     };
-    "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 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==";
+        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 = "01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
+        sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
       };
     };
     "mimic-fn-1.2.0" = {
@@ -6755,13 +6845,13 @@ let
         sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
       };
     };
-    "moment-2.24.0" = {
+    "moment-2.27.0" = {
       name = "moment";
       packageName = "moment";
-      version = "2.24.0";
+      version = "2.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz";
-        sha512 = "bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==";
+        url = "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz";
+        sha512 = "al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==";
       };
     };
     "move-concurrently-1.0.1" = {
@@ -6854,13 +6944,13 @@ let
         sha512 = "nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==";
       };
     };
-    "nan-2.14.0" = {
+    "nan-2.14.1" = {
       name = "nan";
       packageName = "nan";
-      version = "2.14.0";
+      version = "2.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz";
-        sha512 = "INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==";
+        url = "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz";
+        sha512 = "isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==";
       };
     };
     "nanomatch-1.2.13" = {
@@ -6890,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" = {
@@ -6935,15 +7025,6 @@ let
         sha512 = "7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==";
       };
     };
-    "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-libs-browser-2.2.1" = {
       name = "node-libs-browser";
       packageName = "node-libs-browser";
@@ -6953,13 +7034,13 @@ let
         sha512 = "h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==";
       };
     };
-    "node-releases-1.1.53" = {
+    "node-releases-1.1.59" = {
       name = "node-releases";
       packageName = "node-releases";
-      version = "1.1.53";
+      version = "1.1.59";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz";
-        sha512 = "wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==";
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz";
+        sha512 = "H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==";
       };
     };
     "node-watch-0.5.5" = {
@@ -7016,15 +7097,6 @@ let
         sha1 = "2d10c06bdfd312ea9777695a4d28439456b75942";
       };
     };
-    "normalize-url-2.0.1" = {
-      name = "normalize-url";
-      packageName = "normalize-url";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz";
-        sha512 = "D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==";
-      };
-    };
     "normalize-url-3.3.0" = {
       name = "normalize-url";
       packageName = "normalize-url";
@@ -7124,22 +7196,22 @@ let
         sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
       };
     };
-    "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 = "a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==";
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz";
+        sha512 = "jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==";
       };
     };
-    "object-is-1.0.2" = {
+    "object-is-1.1.2" = {
       name = "object-is";
       packageName = "object-is";
-      version = "1.0.2";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz";
-        sha512 = "Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==";
+        url = "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz";
+        sha512 = "5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==";
       };
     };
     "object-keys-1.1.1" = {
@@ -7169,13 +7241,13 @@ let
         sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==";
       };
     };
-    "object.entries-1.1.1" = {
+    "object.entries-1.1.2" = {
       name = "object.entries";
       packageName = "object.entries";
-      version = "1.1.1";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz";
-        sha512 = "ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==";
+        url = "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz";
+        sha512 = "BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==";
       };
     };
     "object.getownpropertydescriptors-2.1.0" = {
@@ -7268,6 +7340,15 @@ let
         sha512 = "IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==";
       };
     };
+    "open-7.0.4" = {
+      name = "open";
+      packageName = "open";
+      version = "7.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/open/-/open-7.0.4.tgz";
+        sha512 = "brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ==";
+      };
+    };
     "opn-5.4.0" = {
       name = "opn";
       packageName = "opn";
@@ -7286,6 +7367,15 @@ let
         sha512 = "PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==";
       };
     };
+    "opn-6.0.0" = {
+      name = "opn";
+      packageName = "opn";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz";
+        sha512 = "I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==";
+      };
+    };
     "optimize-css-assets-webpack-plugin-5.0.3" = {
       name = "optimize-css-assets-webpack-plugin";
       packageName = "optimize-css-assets-webpack-plugin";
@@ -7340,15 +7430,6 @@ let
         sha1 = "20f9f17ae29ed345e8bde583b13d2009803c14d9";
       };
     };
-    "os-locale-3.1.0" = {
-      name = "os-locale";
-      packageName = "os-locale";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz";
-        sha512 = "Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==";
-      };
-    };
     "os-tmpdir-1.0.2" = {
       name = "os-tmpdir";
       packageName = "os-tmpdir";
@@ -7358,22 +7439,13 @@ let
         sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
       };
     };
-    "output-file-sync-2.0.1" = {
-      name = "output-file-sync";
-      packageName = "output-file-sync";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/output-file-sync/-/output-file-sync-2.0.1.tgz";
-        sha512 = "mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ==";
-      };
-    };
-    "p-cancelable-0.4.1" = {
+    "p-cancelable-1.1.0" = {
       name = "p-cancelable";
       packageName = "p-cancelable";
-      version = "0.4.1";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz";
-        sha512 = "HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==";
+        url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz";
+        sha512 = "s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==";
       };
     };
     "p-cancelable-2.0.0" = {
@@ -7385,22 +7457,13 @@ let
         sha512 = "wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==";
       };
     };
-    "p-defer-1.0.0" = {
-      name = "p-defer";
-      packageName = "p-defer";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz";
-        sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
-      };
-    };
-    "p-event-4.1.0" = {
+    "p-event-4.2.0" = {
       name = "p-event";
       packageName = "p-event";
-      version = "4.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-event/-/p-event-4.1.0.tgz";
-        sha512 = "4vAd06GCsgflX4wHN1JqrMzBh/8QZ4j+rzp0cd2scXRwuBEv+QR3wrVA5aLhWDLw4y2WgDKvzWF3CCLmVM1UgA==";
+        url = "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz";
+        sha512 = "KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==";
       };
     };
     "p-finally-1.0.0" = {
@@ -7412,24 +7475,6 @@ let
         sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
       };
     };
-    "p-is-promise-1.1.0" = {
-      name = "p-is-promise";
-      packageName = "p-is-promise";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz";
-        sha1 = "9c9456989e9f6588017b0434d56097675c3da05e";
-      };
-    };
-    "p-is-promise-2.1.0" = {
-      name = "p-is-promise";
-      packageName = "p-is-promise";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz";
-        sha512 = "Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==";
-      };
-    };
     "p-limit-1.3.0" = {
       name = "p-limit";
       packageName = "p-limit";
@@ -7439,13 +7484,13 @@ let
         sha512 = "vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==";
       };
     };
-    "p-limit-2.2.2" = {
+    "p-limit-2.3.0" = {
       name = "p-limit";
       packageName = "p-limit";
-      version = "2.2.2";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz";
-        sha512 = "WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==";
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
+        sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
       };
     };
     "p-locate-2.0.0" = {
@@ -7493,13 +7538,13 @@ let
         sha512 = "XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==";
       };
     };
-    "p-timeout-2.0.1" = {
+    "p-timeout-3.2.0" = {
       name = "p-timeout";
       packageName = "p-timeout";
-      version = "2.0.1";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz";
-        sha512 = "88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==";
+        url = "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz";
+        sha512 = "rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==";
       };
     };
     "p-try-1.0.0" = {
@@ -7520,13 +7565,13 @@ let
         sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
       };
     };
-    "package-json-5.0.0" = {
+    "package-json-6.5.0" = {
       name = "package-json";
       packageName = "package-json";
-      version = "5.0.0";
+      version = "6.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/package-json/-/package-json-5.0.0.tgz";
-        sha512 = "EeHQFFTlEmLrkIQoxbE9w0FuAWHoc1XpthDqnZ/i9keOt701cteyXwAxQFLpVqVjj3feh2TodkihjLaRUtIgLg==";
+        url = "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz";
+        sha512 = "k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==";
       };
     };
     "pako-1.0.11" = {
@@ -7745,13 +7790,13 @@ let
         sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
       };
     };
-    "pbkdf2-3.0.17" = {
+    "pbkdf2-3.1.1" = {
       name = "pbkdf2";
       packageName = "pbkdf2";
-      version = "3.0.17";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz";
-        sha512 = "U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==";
+        url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz";
+        sha512 = "4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==";
       };
     };
     "pem-1.14.2" = {
@@ -7880,13 +7925,13 @@ let
         sha1 = "b5418ef0439de5425fc4995042dced14fb2a84ff";
       };
     };
-    "portfinder-1.0.25" = {
+    "portfinder-1.0.26" = {
       name = "portfinder";
       packageName = "portfinder";
-      version = "1.0.25";
+      version = "1.0.26";
       src = fetchurl {
-        url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz";
-        sha512 = "6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==";
+        url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz";
+        sha512 = "Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ==";
       };
     };
     "posix-character-classes-0.1.1" = {
@@ -7907,13 +7952,13 @@ let
         sha512 = "soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==";
       };
     };
-    "postcss-7.0.27" = {
+    "postcss-7.0.32" = {
       name = "postcss";
       packageName = "postcss";
-      version = "7.0.27";
+      version = "7.0.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz";
-        sha512 = "WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz";
+        sha512 = "03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==";
       };
     };
     "postcss-calc-7.0.2" = {
@@ -7979,49 +8024,31 @@ let
         sha512 = "IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==";
       };
     };
-    "postcss-flexbugs-fixes-3.3.1" = {
+    "postcss-flexbugs-fixes-4.2.1" = {
       name = "postcss-flexbugs-fixes";
       packageName = "postcss-flexbugs-fixes";
-      version = "3.3.1";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.3.1.tgz";
-        sha512 = "9y9kDDf2F9EjKX6x9ueNa5GARvsUbXw4ezH8vXItXHwKzljbu8awP7t5dCaabKYm18Vs1lo5bKQcnc0HkISt+w==";
+        url = "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz";
+        sha512 = "9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==";
       };
     };
-    "postcss-load-config-1.2.0" = {
+    "postcss-load-config-2.1.0" = {
       name = "postcss-load-config";
       packageName = "postcss-load-config";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz";
-        sha1 = "539e9afc9ddc8620121ebf9d8c3673e0ce50d28a";
-      };
-    };
-    "postcss-load-options-1.2.0" = {
-      name = "postcss-load-options";
-      packageName = "postcss-load-options";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz";
-        sha1 = "b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c";
-      };
-    };
-    "postcss-load-plugins-2.3.0" = {
-      name = "postcss-load-plugins";
-      packageName = "postcss-load-plugins";
-      version = "2.3.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz";
-        sha1 = "745768116599aca2f009fad426b00175049d8d92";
+        url = "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz";
+        sha512 = "4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==";
       };
     };
-    "postcss-loader-2.1.5" = {
+    "postcss-loader-3.0.0" = {
       name = "postcss-loader";
       packageName = "postcss-loader";
-      version = "2.1.5";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.5.tgz";
-        sha512 = "pV7kB5neJ0/1tZ8L1uGOBNTVBCSCXQoIsZMsrwvO8V2rKGa2tBl/f80GGVxow2jJnRJ2w1ocx693EKhZAb9Isg==";
+        url = "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz";
+        sha512 = "cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==";
       };
     };
     "postcss-merge-longhand-4.0.11" = {
@@ -8276,13 +8303,13 @@ let
         sha512 = "pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==";
       };
     };
-    "postcss-value-parser-4.0.3" = {
+    "postcss-value-parser-4.1.0" = {
       name = "postcss-value-parser";
       packageName = "postcss-value-parser";
-      version = "4.0.3";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz";
-        sha512 = "N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==";
+        url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz";
+        sha512 = "97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==";
       };
     };
     "prepend-http-2.0.0" = {
@@ -8312,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";
@@ -8519,15 +8537,6 @@ let
         sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
       };
     };
-    "query-string-5.1.1" = {
-      name = "query-string";
-      packageName = "query-string";
-      version = "5.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz";
-        sha512 = "gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==";
-      };
-    };
     "querystring-0.2.0" = {
       name = "querystring";
       packageName = "querystring";
@@ -8735,13 +8744,13 @@ let
         sha512 = "nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==";
       };
     };
-    "regenerate-1.4.0" = {
+    "regenerate-1.4.1" = {
       name = "regenerate";
       packageName = "regenerate";
-      version = "1.4.0";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz";
-        sha512 = "1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==";
+        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" = {
@@ -8762,15 +8771,6 @@ let
         sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==";
       };
     };
-    "regenerator-runtime-0.12.1" = {
-      name = "regenerator-runtime";
-      packageName = "regenerator-runtime";
-      version = "0.12.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz";
-        sha512 = "odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==";
-      };
-    };
     "regenerator-runtime-0.13.5" = {
       name = "regenerator-runtime";
       packageName = "regenerator-runtime";
@@ -8789,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" = {
@@ -8825,31 +8825,31 @@ let
         sha512 = "TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==";
       };
     };
-    "registry-auth-token-3.4.0" = {
+    "registry-auth-token-4.2.0" = {
       name = "registry-auth-token";
       packageName = "registry-auth-token";
-      version = "3.4.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz";
-        sha512 = "4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==";
+        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" = {
+    "registry-url-5.1.0" = {
       name = "registry-url";
       packageName = "registry-url";
-      version = "3.1.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz";
-        sha1 = "3d4ef870f73dde1d77f0cf9a381432444e174942";
+        url = "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz";
+        sha512 = "8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==";
       };
     };
-    "regjsgen-0.5.1" = {
+    "regjsgen-0.5.2" = {
       name = "regjsgen";
       packageName = "regjsgen";
-      version = "0.5.1";
+      version = "0.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz";
-        sha512 = "5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==";
+        url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz";
+        sha512 = "OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==";
       };
     };
     "regjsparser-0.6.4" = {
@@ -8951,15 +8951,6 @@ let
         sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
       };
     };
-    "require-from-string-1.2.1" = {
-      name = "require-from-string";
-      packageName = "require-from-string";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz";
-        sha1 = "529c9ccef27380adfec9a2f965b649bbee636418";
-      };
-    };
     "require-main-filename-1.0.1" = {
       name = "require-main-filename";
       packageName = "require-main-filename";
@@ -8987,13 +8978,13 @@ let
         sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
       };
     };
-    "resolve-1.15.1" = {
+    "resolve-1.17.0" = {
       name = "resolve";
       packageName = "resolve";
-      version = "1.15.1";
+      version = "1.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz";
-        sha512 = "84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==";
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz";
+        sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
       };
     };
     "resolve-cwd-2.0.0" = {
@@ -9140,22 +9131,13 @@ let
         sha512 = "ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==";
       };
     };
-    "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==";
-      };
-    };
-    "run-async-2.4.0" = {
+    "run-async-2.4.1" = {
       name = "run-async";
       packageName = "run-async";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz";
-        sha512 = "xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==";
+        url = "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz";
+        sha512 = "tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==";
       };
     };
     "run-parallel-1.1.9" = {
@@ -9176,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" = {
@@ -9203,13 +9185,13 @@ let
         sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
       };
     };
-    "safe-buffer-5.2.0" = {
+    "safe-buffer-5.2.1" = {
       name = "safe-buffer";
       packageName = "safe-buffer";
-      version = "5.2.0";
+      version = "5.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==";
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
       };
     };
     "safe-regex-1.1.0" = {
@@ -9239,15 +9221,6 @@ let
         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==";
-      };
-    };
     "sax-1.2.4" = {
       name = "sax";
       packageName = "sax";
@@ -9275,13 +9248,13 @@ let
         sha512 = "i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==";
       };
     };
-    "schema-utils-2.6.5" = {
+    "schema-utils-2.7.0" = {
       name = "schema-utils";
       packageName = "schema-utils";
-      version = "2.6.5";
+      version = "2.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz";
-        sha512 = "5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==";
+        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz";
+        sha512 = "0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==";
       };
     };
     "select-hose-2.0.0" = {
@@ -9320,13 +9293,22 @@ let
         sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
       };
     };
-    "semver-7.1.3" = {
+    "semver-7.0.0" = {
       name = "semver";
       packageName = "semver";
-      version = "7.1.3";
+      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.1.3.tgz";
-        sha512 = "ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==";
+        url = "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz";
+        sha512 = "OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==";
       };
     };
     "semver-regex-1.0.0" = {
@@ -9383,6 +9365,15 @@ let
         sha512 = "rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==";
       };
     };
+    "serialize-javascript-3.1.0" = {
+      name = "serialize-javascript";
+      packageName = "serialize-javascript";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz";
+        sha512 = "JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==";
+      };
+    };
     "serve-index-1.9.1" = {
       name = "serve-index";
       packageName = "serve-index";
@@ -9599,13 +9590,13 @@ let
         sha512 = "mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==";
       };
     };
-    "sockjs-0.3.19" = {
+    "sockjs-0.3.20" = {
       name = "sockjs";
       packageName = "sockjs";
-      version = "0.3.19";
+      version = "0.3.20";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz";
-        sha512 = "V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==";
+        url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz";
+        sha512 = "SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==";
       };
     };
     "sockjs-client-1.1.5" = {
@@ -9626,15 +9617,6 @@ let
         sha512 = "5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==";
       };
     };
-    "sort-keys-2.0.0" = {
-      name = "sort-keys";
-      packageName = "sort-keys";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz";
-        sha1 = "658535584861ec97d730d6cf41822e1f56684128";
-      };
-    };
     "source-list-map-2.0.1" = {
       name = "source-list-map";
       packageName = "source-list-map";
@@ -9662,6 +9644,15 @@ let
         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";
@@ -9671,13 +9662,13 @@ let
         sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==";
       };
     };
-    "source-map-support-0.5.16" = {
+    "source-map-support-0.5.19" = {
       name = "source-map-support";
       packageName = "source-map-support";
-      version = "0.5.16";
+      version = "0.5.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz";
-        sha512 = "efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==";
+        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" = {
@@ -9689,31 +9680,31 @@ let
         sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
       };
     };
-    "spdx-correct-3.1.0" = {
+    "spdx-correct-3.1.1" = {
       name = "spdx-correct";
       packageName = "spdx-correct";
-      version = "3.1.0";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz";
-        sha512 = "lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==";
+        url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz";
+        sha512 = "cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==";
       };
     };
-    "spdx-exceptions-2.2.0" = {
+    "spdx-exceptions-2.3.0" = {
       name = "spdx-exceptions";
       packageName = "spdx-exceptions";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
-        sha512 = "2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==";
+        url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
+        sha512 = "/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==";
       };
     };
-    "spdx-expression-parse-3.0.0" = {
+    "spdx-expression-parse-3.0.1" = {
       name = "spdx-expression-parse";
       packageName = "spdx-expression-parse";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
-        sha512 = "Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==";
+        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" = {
@@ -9887,22 +9878,13 @@ let
         sha512 = "AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==";
       };
     };
-    "strict-uri-encode-1.1.0" = {
-      name = "strict-uri-encode";
-      packageName = "strict-uri-encode";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz";
-        sha1 = "279b225df1d582b1f54e65addd4352e18faa0713";
-      };
-    };
-    "string-replace-loader-2.2.0" = {
+    "string-replace-loader-2.3.0" = {
       name = "string-replace-loader";
       packageName = "string-replace-loader";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string-replace-loader/-/string-replace-loader-2.2.0.tgz";
-        sha512 = "Ukt4ZC8+xVWdBRut3/iwnPJCNL1yV8AbVKXn8UcWdYrHgtuW4UDDAbBSi/J/CQDEWQBt824AJvPYahF23eJLRg==";
+        url = "https://registry.npmjs.org/string-replace-loader/-/string-replace-loader-2.3.0.tgz";
+        sha512 = "HYBIHStViMKLZC/Lehxy42OuwsBaPzX/LjcF5mkJlE2SnHXmW6SW6eiHABTXnY8ZCm/REbdJ8qnA0ptmIzN0Ng==";
       };
     };
     "string-width-1.0.2" = {
@@ -9941,40 +9923,22 @@ let
         sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==";
       };
     };
-    "string.prototype.trimend-1.0.0" = {
+    "string.prototype.trimend-1.0.1" = {
       name = "string.prototype.trimend";
       packageName = "string.prototype.trimend";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz";
-        sha512 = "EEJnGqa/xNfIg05SxiPSqRS7S9qwDhYts1TSLR1BQfYUfPe1stofgGKvwERK9+9yf+PpfBMlpBaCHucXGPQfUA==";
-      };
-    };
-    "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 = "gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==";
-      };
-    };
-    "string.prototype.trimright-2.1.2" = {
-      name = "string.prototype.trimright";
-      packageName = "string.prototype.trimright";
-      version = "2.1.2";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz";
-        sha512 = "ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==";
+        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
+        sha512 = "LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==";
       };
     };
-    "string.prototype.trimstart-1.0.0" = {
+    "string.prototype.trimstart-1.0.1" = {
       name = "string.prototype.trimstart";
       packageName = "string.prototype.trimstart";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.0.tgz";
-        sha512 = "iCP8g01NFYiiBOnwG1Xc3WZLyoo+RuBymwIlWncShXDDJYWN6DbnM3odslBJdgCdRlq94B5s63NWAZlcn2CS4w==";
+        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
+        sha512 = "XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==";
       };
     };
     "string_decoder-0.10.31" = {
@@ -10085,13 +10049,13 @@ let
         sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
       };
     };
-    "style-loader-0.21.0" = {
+    "style-loader-0.23.1" = {
       name = "style-loader";
       packageName = "style-loader";
-      version = "0.21.0";
+      version = "0.23.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/style-loader/-/style-loader-0.21.0.tgz";
-        sha512 = "T+UNsAcl3Yg+BsPKs1vd22Fr8sVT+CJMtzqc6LEw9bbJZb43lm9GoeIfUcDEefBSWC0BhYbcdupV1GtI4DGzxg==";
+        url = "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz";
+        sha512 = "XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==";
       };
     };
     "stylehacks-4.0.3" = {
@@ -10202,22 +10166,22 @@ let
         sha512 = "WMuOgiua1xb5R56lE0eH6ivpVmg/lq2OHm4+LtT/xtEtPQ+sz6N3bBM6WZ5FvO1lO4IKIOb43qnhoc4qxP5OeA==";
       };
     };
-    "terser-4.6.10" = {
+    "terser-4.8.0" = {
       name = "terser";
       packageName = "terser";
-      version = "4.6.10";
+      version = "4.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser/-/terser-4.6.10.tgz";
-        sha512 = "qbF/3UOo11Hggsbsqm2hPa6+L4w7bkr+09FNseEe8xrcVD3APGLFqE+Oz1ZKAxjYnFsj80rLOfgAtJ0LNJjtTA==";
+        url = "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz";
+        sha512 = "EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==";
       };
     };
-    "terser-webpack-plugin-1.4.3" = {
+    "terser-webpack-plugin-1.4.4" = {
       name = "terser-webpack-plugin";
       packageName = "terser-webpack-plugin";
-      version = "1.4.3";
+      version = "1.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz";
-        sha512 = "QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==";
+        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz";
+        sha512 = "U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==";
       };
     };
     "text-table-0.2.0" = {
@@ -10265,15 +10229,6 @@ let
         sha512 = "eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==";
       };
     };
-    "timed-out-4.0.1" = {
-      name = "timed-out";
-      packageName = "timed-out";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz";
-        sha1 = "f32eacac5a175bea25d7fab565ab3ed8741ef56f";
-      };
-    };
     "timers-browserify-2.0.11" = {
       name = "timers-browserify";
       packageName = "timers-browserify";
@@ -10319,15 +10274,6 @@ let
         sha512 = "J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==";
       };
     };
-    "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-arraybuffer-1.0.1" = {
       name = "to-arraybuffer";
       packageName = "to-arraybuffer";
@@ -10355,6 +10301,15 @@ let
         sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
       };
     };
+    "to-readable-stream-1.0.0" = {
+      name = "to-readable-stream";
+      packageName = "to-readable-stream";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz";
+        sha512 = "Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==";
+      };
+    };
     "to-readable-stream-2.1.0" = {
       name = "to-readable-stream";
       packageName = "to-readable-stream";
@@ -10445,13 +10400,13 @@ let
         sha1 = "61dbc2d53b69ff6091a12a168fd7d433107e40f1";
       };
     };
-    "tslib-1.11.1" = {
+    "tslib-1.13.0" = {
       name = "tslib";
       packageName = "tslib";
-      version = "1.11.1";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz";
-        sha512 = "aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==";
+        url = "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz";
+        sha512 = "i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==";
       };
     };
     "tty-browserify-0.0.0" = {
@@ -10796,15 +10751,6 @@ let
         sha512 = "i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==";
       };
     };
-    "util.promisify-1.0.1" = {
-      name = "util.promisify";
-      packageName = "util.promisify";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz";
-        sha512 = "g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==";
-      };
-    };
     "utila-0.4.0" = {
       name = "utila";
       packageName = "utila";
@@ -10931,31 +10877,31 @@ let
         sha512 = "+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==";
       };
     };
-    "vscode-uri-2.1.1" = {
+    "vscode-uri-2.1.2" = {
       name = "vscode-uri";
       packageName = "vscode-uri";
-      version = "2.1.1";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.1.tgz";
-        sha512 = "eY9jmGoEnVf8VE8xr5znSah7Qt1P/xsCdErz+g8HYZtJ7bZqKH5E3d+6oVNm1AC/c6IHUDokbmVXKOi4qPAC9A==";
+        url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz";
+        sha512 = "8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==";
       };
     };
-    "walker-1.0.7" = {
-      name = "walker";
-      packageName = "walker";
-      version = "1.0.7";
+    "watchpack-1.7.2" = {
+      name = "watchpack";
+      packageName = "watchpack";
+      version = "1.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz";
-        sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb";
+        url = "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz";
+        sha512 = "ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==";
       };
     };
-    "watchpack-1.6.1" = {
-      name = "watchpack";
-      packageName = "watchpack";
-      version = "1.6.1";
+    "watchpack-chokidar2-2.0.0" = {
+      name = "watchpack-chokidar2";
+      packageName = "watchpack-chokidar2";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz";
-        sha512 = "+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==";
+        url = "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz";
+        sha512 = "9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==";
       };
     };
     "wbuf-1.7.3" = {
@@ -10967,22 +10913,22 @@ let
         sha512 = "O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==";
       };
     };
-    "web-tree-sitter-0.16.2" = {
+    "web-tree-sitter-0.16.4" = {
       name = "web-tree-sitter";
       packageName = "web-tree-sitter";
-      version = "0.16.2";
+      version = "0.16.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.16.2.tgz";
-        sha512 = "vxZHqu4nItCARmE+oGvTgjFBrMbhEuGI9PWYSgF4ET/nLuW3K11KQQIVhAsoGtYvTI9jdbjc/THj38P7nhYwow==";
+        url = "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.16.4.tgz";
+        sha512 = "n1CfuJcJ+dynIx/fmavB6haPx37N3GZvY5HIGIselymDiSwNRC+8pAxOzoB4eVwUBJnbP3+aA8vWttrAZbgs7A==";
       };
     };
-    "webpack-4.42.1" = {
+    "webpack-4.43.0" = {
       name = "webpack";
       packageName = "webpack";
-      version = "4.42.1";
+      version = "4.43.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack/-/webpack-4.42.1.tgz";
-        sha512 = "SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg==";
+        url = "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz";
+        sha512 = "GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==";
       };
     };
     "webpack-dev-middleware-3.7.2" = {
@@ -10994,13 +10940,13 @@ let
         sha512 = "1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==";
       };
     };
-    "webpack-dev-server-3.10.3" = {
+    "webpack-dev-server-3.11.0" = {
       name = "webpack-dev-server";
       packageName = "webpack-dev-server";
-      version = "3.10.3";
+      version = "3.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz";
-        sha512 = "e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ==";
+        url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz";
+        sha512 = "PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==";
       };
     };
     "webpack-log-2.0.0" = {
@@ -11030,31 +10976,40 @@ let
         sha512 = "lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==";
       };
     };
-    "websocket-driver-0.7.3" = {
+    "websocket-driver-0.6.5" = {
       name = "websocket-driver";
       packageName = "websocket-driver";
-      version = "0.7.3";
+      version = "0.6.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz";
-        sha512 = "bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==";
+        url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz";
+        sha1 = "5cb2556ceb85f4373c6d8238aa691c8454e13a36";
       };
     };
-    "websocket-extensions-0.1.3" = {
+    "websocket-driver-0.7.4" = {
+      name = "websocket-driver";
+      packageName = "websocket-driver";
+      version = "0.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz";
+        sha512 = "b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==";
+      };
+    };
+    "websocket-extensions-0.1.4" = {
       name = "websocket-extensions";
       packageName = "websocket-extensions";
-      version = "0.1.3";
+      version = "0.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz";
-        sha512 = "nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==";
+        url = "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz";
+        sha512 = "OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==";
       };
     };
-    "whatwg-fetch-2.0.4" = {
+    "whatwg-fetch-3.0.0" = {
       name = "whatwg-fetch";
       packageName = "whatwg-fetch";
-      version = "2.0.4";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz";
-        sha512 = "dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==";
+        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz";
+        sha512 = "9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==";
       };
     };
     "which-1.3.1" = {
@@ -11345,6 +11300,15 @@ let
         sha512 = "o41D/WmDeca0BqYhsr3nJzQyg9NF5X8l/UdnFNux9cS3lwB+swm8qGWX5rn+aD6xfBU3rGmtHij7g7x6LxFU3A==";
       };
     };
+    "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==";
+      };
+    };
     "xmlbuilder-13.0.2" = {
       name = "xmlbuilder";
       packageName = "xmlbuilder";
@@ -11399,15 +11363,6 @@ let
         sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
       };
     };
-    "yargs-12.0.5" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "12.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz";
-        sha512 = "Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==";
-      };
-    };
     "yargs-13.3.2" = {
       name = "yargs";
       packageName = "yargs";
@@ -11417,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" = {
@@ -11435,15 +11390,6 @@ let
         sha1 = "782ec21ef403345f830a808ca3d513af56065208";
       };
     };
-    "yargs-parser-11.1.1" = {
-      name = "yargs-parser";
-      packageName = "yargs-parser";
-      version = "11.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz";
-        sha512 = "C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==";
-      };
-    };
     "yargs-parser-13.1.2" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
@@ -11453,13 +11399,13 @@ let
         sha512 = "3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==";
       };
     };
-    "yargs-parser-18.1.2" = {
+    "yargs-parser-18.1.3" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
-      version = "18.1.2";
+      version = "18.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz";
-        sha512 = "hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==";
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz";
+        sha512 = "o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==";
       };
     };
     "yargs-parser-4.2.1" = {
@@ -11493,14 +11439,14 @@ in
     };
     dependencies = [
       sources."accepts-1.3.7"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.3"
       sources."array-flatten-1.1.1"
       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.9.1"
+      sources."aws4-1.10.0"
       sources."babel-runtime-6.18.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."body-parser-1.19.0"
@@ -11549,7 +11495,7 @@ 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."finalhandler-1.1.1" // {
         dependencies = [
@@ -11563,7 +11509,7 @@ in
       sources."fresh-0.5.2"
       sources."fs-extra-2.0.0"
       sources."getpass-0.1.7"
-      sources."graceful-fs-4.2.3"
+      sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.3"
       sources."http-errors-1.7.2"
@@ -11582,13 +11528,13 @@ 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"
       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."minimist-1.2.0"
       sources."ms-2.0.0"
       sources."negotiator-0.6.2"
@@ -11614,7 +11560,7 @@ in
       (sources."request-2.88.0" // {
         dependencies = [
           sources."qs-6.5.2"
-          sources."safe-buffer-5.2.0"
+          sources."safe-buffer-5.2.1"
         ];
       })
       sources."safe-buffer-5.1.1"
@@ -11680,7 +11626,7 @@ in
     dependencies = [
       sources."@types/color-name-1.1.1"
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.3"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.1"
@@ -11689,11 +11635,11 @@ in
       sources."astral-regex-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       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"
@@ -11737,6 +11683,7 @@ in
             ];
           })
           sources."fs-extra-8.1.0"
+          sources."lodash-4.17.15"
           sources."which-2.0.1"
         ];
       })
@@ -11745,13 +11692,14 @@ in
       sources."escape-string-regexp-1.0.5"
       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."fill-range-7.0.1"
       sources."find-0.2.9"
       (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"
@@ -11762,12 +11710,12 @@ in
       sources."fs-extra-4.0.3"
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.2"
+      sources."fsevents-2.1.3"
       sources."get-caller-file-2.0.5"
       sources."getpass-0.1.7"
       sources."glob-7.1.4"
       sources."glob-parent-5.1.1"
-      sources."graceful-fs-4.2.3"
+      sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.3"
       sources."has-flag-3.0.0"
@@ -11790,26 +11738,27 @@ 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"
         ];
       })
-      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."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-2.9.0"
       sources."minizlib-1.3.3"
       sources."mkdirp-0.5.5"
-      sources."moment-2.24.0"
+      sources."moment-2.27.0"
       sources."murmur-hash-js-1.0.0"
       sources."mustache-3.2.1"
       sources."nice-try-1.0.5"
       (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"
         ];
       })
@@ -11819,7 +11768,7 @@ in
       sources."once-1.4.0"
       sources."opn-5.5.0"
       sources."os-tmpdir-1.0.2"
-      sources."p-limit-2.2.2"
+      sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
       sources."path-exists-4.0.0"
@@ -11838,7 +11787,7 @@ in
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
       sources."rimraf-2.6.3"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-5.7.1"
       sources."set-blocking-2.0.0"
@@ -11891,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"
@@ -11900,7 +11849,7 @@ in
           sources."strip-ansi-6.0.0"
         ];
       })
-      sources."yargs-parser-18.1.2"
+      sources."yargs-parser-18.1.3"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -11915,293 +11864,130 @@ in
   elm-doc-preview = nodeEnv.buildNodePackage {
     name = "elm-doc-preview";
     packageName = "elm-doc-preview";
-    version = "3.0.4";
+    version = "5.0.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/elm-doc-preview/-/elm-doc-preview-3.0.4.tgz";
-      sha512 = "tLobB4Kv4X/T+mkL4Tc5G1fqnBzvCqV7Pqx/f2sJIQtSTsJcktwI01U8poiBPoo8VwE7ZRuBmApSkl6XTzrymA==";
+      url = "https://registry.npmjs.org/elm-doc-preview/-/elm-doc-preview-5.0.3.tgz";
+      sha512 = "j9wli2wOHYiSMARDCRgAZGZ8JkcJqG4rh5+6rSgy5nVGqyXDEN6HCBX/8AhqtKMFKcuCp9ejx04heCaROlb/Eg==";
     };
     dependencies = [
-      sources."@cnakazawa/watch-1.0.4"
-      sources."@sindresorhus/is-0.7.0"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@types/color-name-1.1.1"
       sources."accepts-1.3.7"
-      sources."ansi-styles-3.2.1"
-      sources."anymatch-2.0.0"
-      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."anymatch-3.1.1"
       sources."array-flatten-1.1.1"
-      sources."array-unique-0.3.2"
-      sources."assign-symbols-1.0.0"
       sources."async-limiter-1.0.1"
-      sources."atob-2.1.2"
       sources."balanced-match-1.0.0"
-      (sources."base-0.11.2" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
       sources."batch-0.6.1"
+      sources."binary-extensions-2.1.0"
       sources."body-parser-1.19.0"
       sources."brace-expansion-1.1.11"
-      (sources."braces-2.3.2" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."bser-2.1.1"
+      sources."braces-3.0.2"
       sources."bytes-3.1.0"
-      sources."cache-base-1.0.1"
-      (sources."cacheable-request-2.1.4" // {
+      (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."lowercase-keys-1.0.0"
-        ];
-      })
-      sources."capture-exit-2.0.0"
-      sources."chalk-2.4.2"
-      (sources."class-utils-0.3.6" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
+          sources."get-stream-5.1.0"
+          sources."lowercase-keys-2.0.0"
         ];
       })
+      sources."chalk-3.0.0"
+      sources."chokidar-3.4.1"
       sources."clone-response-1.0.2"
-      sources."collection-visit-1.0.0"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."commander-3.0.2"
-      sources."component-emitter-1.3.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."commander-5.1.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."copy-descriptor-0.1.1"
-      sources."core-js-3.6.4"
-      sources."core-util-is-1.0.2"
-      sources."cross-spawn-6.0.5"
+      sources."cross-spawn-7.0.3"
       sources."debug-2.6.9"
-      sources."decode-uri-component-0.2.0"
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
-      sources."define-properties-1.1.3"
-      sources."define-property-2.0.2"
+      sources."defer-to-connect-1.1.3"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      sources."es-abstract-1.17.5"
-      sources."es-to-primitive-1.2.1"
       sources."escape-html-1.0.3"
-      sources."escape-string-regexp-1.0.5"
       sources."etag-1.8.1"
-      sources."exec-sh-0.3.4"
-      (sources."execa-1.0.0" // {
-        dependencies = [
-          sources."get-stream-4.1.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."express-4.17.1"
       (sources."express-ws-4.0.0" // {
         dependencies = [
           sources."ws-5.2.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."fb-watchman-2.0.1"
-      (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."for-in-1.0.2"
       sources."forwarded-0.1.2"
-      sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
-      sources."from2-2.3.0"
       sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.1"
-      sources."get-stream-3.0.0"
-      sources."get-value-2.0.6"
+      sources."fsevents-2.1.3"
+      sources."get-stream-4.1.0"
       sources."glob-7.1.6"
-      sources."got-8.3.2"
-      sources."has-1.0.3"
-      sources."has-flag-3.0.0"
-      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."kind-of-4.0.0"
-        ];
-      })
-      sources."http-cache-semantics-3.8.1"
+      sources."glob-parent-5.1.1"
+      sources."got-9.6.0"
+      sources."has-flag-4.0.0"
+      sources."http-cache-semantics-4.1.0"
       sources."http-errors-1.7.2"
       sources."iconv-lite-0.4.24"
       sources."inflight-1.0.6"
       sources."inherits-2.0.3"
       sources."ini-1.3.5"
-      sources."into-stream-3.1.0"
       sources."ipaddr.js-1.9.1"
-      sources."is-accessor-descriptor-1.0.0"
-      sources."is-buffer-1.1.6"
-      sources."is-callable-1.1.5"
-      sources."is-data-descriptor-1.0.0"
-      sources."is-date-object-1.0.2"
-      sources."is-descriptor-1.0.2"
-      sources."is-extendable-0.1.1"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."is-object-1.0.1"
-      sources."is-plain-obj-1.1.0"
-      sources."is-plain-object-2.0.4"
-      sources."is-regex-1.0.5"
-      sources."is-retry-allowed-1.2.0"
-      sources."is-stream-1.1.0"
-      sources."is-symbol-1.0.3"
-      sources."is-windows-1.0.2"
-      sources."is-wsl-1.1.0"
-      sources."isarray-1.0.0"
+      sources."is-binary-path-2.1.0"
+      sources."is-docker-2.0.0"
+      sources."is-extglob-2.1.1"
+      sources."is-glob-4.0.1"
+      sources."is-number-7.0.0"
+      sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
-      sources."isobject-3.0.1"
-      sources."isurl-1.0.0"
       sources."json-buffer-3.0.0"
-      sources."keyv-3.0.0"
-      sources."kind-of-6.0.3"
-      sources."latest-version-4.0.0"
+      sources."keyv-3.1.0"
+      sources."latest-version-5.1.0"
       sources."lowercase-keys-1.0.1"
-      sources."makeerror-1.0.11"
-      sources."map-cache-0.2.2"
-      sources."map-visit-1.0.0"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
-      sources."micromatch-3.1.10"
       sources."mime-1.6.0"
-      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."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."nanomatch-1.2.13"
       sources."negotiator-0.6.2"
-      sources."nice-try-1.0.5"
-      sources."node-int64-0.4.0"
-      sources."normalize-path-2.1.1"
-      sources."normalize-url-2.0.1"
-      sources."npm-run-path-2.0.2"
-      sources."object-assign-4.1.1"
-      (sources."object-copy-0.1.0" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-accessor-descriptor-0.1.6"
-          sources."is-data-descriptor-0.1.4"
-          (sources."is-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-5.1.0"
-            ];
-          })
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."object-inspect-1.7.0"
-      sources."object-keys-1.1.1"
-      sources."object-visit-1.0.1"
-      sources."object.assign-4.1.0"
-      sources."object.getownpropertydescriptors-2.1.0"
-      sources."object.pick-1.3.0"
+      sources."normalize-path-3.0.0"
+      sources."normalize-url-4.5.0"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
-      sources."opn-5.5.0"
-      sources."p-cancelable-0.4.1"
-      sources."p-finally-1.0.0"
-      sources."p-is-promise-1.1.0"
-      sources."p-timeout-2.0.1"
-      sources."package-json-5.0.0"
+      sources."open-7.0.4"
+      sources."p-cancelable-1.1.0"
+      sources."package-json-6.5.0"
       sources."parseurl-1.3.3"
-      sources."pascalcase-0.1.1"
       sources."path-is-absolute-1.0.1"
-      sources."path-key-2.0.1"
+      sources."path-key-3.1.1"
       sources."path-to-regexp-0.1.7"
-      sources."pify-3.0.0"
-      sources."posix-character-classes-0.1.1"
+      sources."picomatch-2.2.2"
       sources."prepend-http-2.0.0"
-      sources."process-nextick-args-2.0.1"
       sources."proxy-addr-2.0.6"
       sources."pump-3.0.0"
       sources."qs-6.7.0"
-      sources."query-string-5.1.1"
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
       sources."rc-1.2.8"
-      sources."readable-stream-2.3.7"
-      sources."regex-not-1.0.2"
-      sources."registry-auth-token-3.4.0"
-      sources."registry-url-3.1.0"
-      sources."remove-trailing-separator-1.1.0"
-      sources."repeat-element-1.1.3"
-      sources."repeat-string-1.6.1"
-      sources."resolve-url-0.2.1"
+      sources."readdirp-3.4.0"
+      sources."registry-auth-token-4.2.0"
+      sources."registry-url-5.1.0"
       sources."responselike-1.0.2"
-      sources."ret-0.1.15"
       sources."rimraf-2.7.1"
-      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."semver-5.7.1"
+      sources."semver-6.3.0"
       (sources."send-0.17.1" // {
         dependencies = [
           sources."ms-2.1.1"
@@ -12214,111 +12000,24 @@ in
         ];
       })
       sources."serve-static-1.14.1"
-      (sources."set-value-2.0.1" // {
-        dependencies = [
-          sources."extend-shallow-2.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."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."sort-keys-2.0.0"
-      sources."source-map-0.5.7"
-      sources."source-map-resolve-0.5.3"
-      sources."source-map-url-0.4.0"
-      sources."split-string-3.1.0"
-      (sources."static-extend-0.1.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
       sources."statuses-1.5.0"
-      sources."strict-uri-encode-1.1.0"
-      sources."string.prototype.trimend-1.0.0"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
-      sources."string.prototype.trimstart-1.0.0"
-      sources."string_decoder-1.1.1"
-      sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-5.5.0"
-      sources."timed-out-4.0.1"
+      sources."supports-color-7.1.0"
       sources."tmp-0.1.0"
-      sources."tmpl-1.0.4"
-      (sources."to-object-path-0.3.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."to-regex-3.0.2"
-      sources."to-regex-range-2.1.1"
+      sources."to-readable-stream-1.0.0"
+      sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
       sources."type-is-1.6.18"
-      sources."union-value-1.0.1"
       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."urix-0.1.0"
       sources."url-parse-lax-3.0.0"
-      sources."url-to-options-1.0.1"
-      sources."use-3.1.1"
-      sources."util-deprecate-1.0.2"
-      sources."util.promisify-1.0.1"
       sources."utils-merge-1.0.1"
       sources."vary-1.1.2"
-      sources."walker-1.0.7"
-      sources."which-1.3.1"
+      sources."which-2.0.2"
       sources."wrappy-1.0.2"
-      sources."ws-6.2.1"
+      sources."ws-7.3.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -12333,17 +12032,17 @@ in
   "@elm-tooling/elm-language-server" = nodeEnv.buildNodePackage {
     name = "_at_elm-tooling_slash_elm-language-server";
     packageName = "@elm-tooling/elm-language-server";
-    version = "1.7.1";
+    version = "1.9.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@elm-tooling/elm-language-server/-/elm-language-server-1.7.1.tgz";
-      sha512 = "/VsKUfM5wnthtoAGbofnuknXhHFTbh+aeloRQtoSP6uXTMY0UwvaSEXI0YsvigWL+OpxT71bCXAVjkbkBhUFiw==";
+      url = "https://registry.npmjs.org/@elm-tooling/elm-language-server/-/elm-language-server-1.9.1.tgz";
+      sha512 = "3wqe5OfqVWn0o92vDRuYwK7T6fohG0uSrNRr5EhJYrOUwlZFaSBx50RR79v12j7sNepDrACrsULSENcuyxNzIQ==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.3"
       sources."@nodelib/fs.stat-2.0.3"
       sources."@nodelib/fs.walk-1.2.4"
       sources."accepts-1.3.7"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.3"
       sources."array-flatten-1.1.1"
       sources."array-union-2.1.0"
       sources."asn1-0.2.4"
@@ -12351,7 +12050,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."babel-runtime-6.18.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."body-parser-1.19.0"
@@ -12360,13 +12059,13 @@ in
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.8"
       sources."concat-stream-1.5.2"
-      sources."content-disposition-0.5.2"
+      sources."content-disposition-0.5.3"
       sources."content-type-1.0.4"
-      sources."cookie-0.3.1"
+      sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
       sources."core-js-2.6.11"
       sources."core-util-is-1.0.2"
-      sources."cross-spawn-7.0.2"
+      sources."cross-spawn-7.0.3"
       sources."dashdash-1.14.1"
       sources."debug-2.6.9"
       sources."delayed-stream-1.0.0"
@@ -12375,34 +12074,18 @@ in
       sources."dir-glob-3.0.1"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."elm-analyse-git://github.com/elm-tooling/elm-analyse#1a665a6e540d7d11b29b3c5e3c52089704325d9c"
+      sources."elm-analyse-git://github.com/elm-tooling/elm-analyse#7f4000cce5ef024fe5e82c7ee1725feef95a9daf"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."escape-html-1.0.3"
+      sources."escape-string-regexp-4.0.0"
       sources."etag-1.8.1"
-      (sources."execa-4.0.0" // {
+      (sources."execa-4.0.3" // {
         dependencies = [
           sources."is-stream-2.0.0"
         ];
       })
-      (sources."express-4.16.3" // {
-        dependencies = [
-          sources."body-parser-1.18.2"
-          sources."bytes-3.0.0"
-          sources."http-errors-1.6.3"
-          sources."iconv-lite-0.4.19"
-          sources."qs-6.5.1"
-          (sources."raw-body-2.3.2" // {
-            dependencies = [
-              sources."depd-1.1.1"
-              sources."http-errors-1.6.2"
-              sources."setprototypeof-1.0.3"
-            ];
-          })
-          sources."setprototypeof-1.1.0"
-          sources."statuses-1.4.0"
-        ];
-      })
+      sources."express-4.17.1"
       (sources."express-ws-2.0.0" // {
         dependencies = [
           sources."ws-1.1.5"
@@ -12410,17 +12093,13 @@ 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-diff-1.2.0"
-      sources."fast-glob-3.2.2"
+      sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.7.0"
+      sources."fastq-1.8.0"
       sources."fill-range-7.0.1"
-      (sources."finalhandler-1.1.1" // {
-        dependencies = [
-          sources."statuses-1.4.0"
-        ];
-      })
+      sources."finalhandler-1.1.2"
       sources."find-0.2.7"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
@@ -12430,15 +12109,15 @@ in
       sources."get-stream-5.1.0"
       sources."getpass-0.1.7"
       sources."glob-parent-5.1.1"
-      sources."globby-11.0.0"
-      sources."graceful-fs-4.2.3"
+      sources."globby-11.0.1"
+      sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.3"
       sources."http-errors-1.7.2"
       sources."http-signature-1.2.0"
       sources."human-signals-1.1.1"
       sources."iconv-lite-0.4.24"
-      sources."ignore-5.1.4"
+      sources."ignore-5.1.8"
       sources."inherits-2.0.3"
       sources."ipaddr.js-1.9.1"
       sources."is-extglob-2.1.1"
@@ -12456,18 +12135,18 @@ 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"
-      sources."merge2-1.3.0"
+      sources."merge2-1.4.1"
       sources."methods-1.1.2"
       sources."micromatch-4.0.2"
-      sources."mime-1.4.1"
-      sources."mime-db-1.43.0"
-      sources."mime-types-2.1.26"
+      sources."mime-1.6.0"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
       sources."mimic-fn-2.1.0"
-      sources."minimist-1.2.0"
+      sources."minimist-1.2.5"
       sources."ms-2.0.0"
       sources."negotiator-0.6.2"
       sources."node-watch-0.5.5"
@@ -12476,7 +12155,7 @@ in
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
       sources."onetime-5.1.0"
-      sources."opn-5.4.0"
+      sources."opn-6.0.0"
       sources."options-0.0.6"
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
@@ -12497,25 +12176,21 @@ in
       sources."raw-body-2.4.0"
       sources."readable-stream-2.0.6"
       sources."regenerator-runtime-0.9.6"
-      (sources."request-2.88.0" // {
+      (sources."request-2.88.2" // {
         dependencies = [
           sources."qs-6.5.2"
-          sources."safe-buffer-5.2.0"
         ];
       })
       sources."reusify-1.0.4"
       sources."run-parallel-1.1.9"
-      sources."rxjs-6.5.5"
-      sources."safe-buffer-5.1.1"
+      sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      (sources."send-0.16.2" // {
+      (sources."send-0.17.1" // {
         dependencies = [
-          sources."http-errors-1.6.3"
-          sources."setprototypeof-1.1.0"
-          sources."statuses-1.4.0"
+          sources."ms-2.1.1"
         ];
       })
-      sources."serve-static-1.13.2"
+      sources."serve-static-1.14.1"
       sources."setprototypeof-1.1.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
@@ -12530,13 +12205,8 @@ in
       sources."tmp-0.0.31"
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
-      (sources."tough-cookie-2.4.3" // {
-        dependencies = [
-          sources."punycode-1.4.1"
-        ];
-      })
+      sources."tough-cookie-2.5.0"
       sources."traverse-chain-0.1.0"
-      sources."tslib-1.11.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
@@ -12554,8 +12224,8 @@ in
       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.1"
-      sources."web-tree-sitter-0.16.2"
+      sources."vscode-uri-2.1.2"
+      sources."web-tree-sitter-0.16.4"
       sources."which-2.0.2"
       sources."wrappy-1.0.2"
       (sources."ws-3.3.1" // {
@@ -12588,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"
@@ -12605,7 +12275,7 @@ in
       sources."elm-hot-1.1.4"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      sources."es6-promisify-6.1.0"
+      sources."es6-promisify-6.1.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
       sources."etag-1.8.1"
@@ -12617,14 +12287,9 @@ in
       })
       sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
-      (sources."follow-redirects-1.11.0" // {
-        dependencies = [
-          sources."debug-3.2.6"
-          sources."ms-2.1.2"
-        ];
-      })
+      sources."follow-redirects-1.12.1"
       sources."fresh-0.5.2"
-      sources."fsevents-2.1.2"
+      sources."fsevents-2.1.3"
       sources."get-stream-4.1.0"
       sources."glob-parent-5.1.1"
       sources."has-ansi-2.0.0"
@@ -12707,18 +12372,18 @@ in
     };
     dependencies = [
       sources."@types/color-name-1.1.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.3"
       sources."ansi-styles-4.2.1"
       sources."anymatch-3.1.1"
       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.9.1"
+      sources."aws4-1.10.0"
       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"
@@ -12741,7 +12406,7 @@ in
       sources."elmi-to-json-1.3.0"
       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."fill-range-7.0.1"
       (sources."find-elm-dependencies-2.0.2" // {
@@ -12756,11 +12421,11 @@ in
       sources."fs-extra-8.1.0"
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.2"
+      sources."fsevents-2.1.3"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.1"
-      sources."graceful-fs-4.2.3"
+      sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.3"
       sources."has-flag-4.0.0"
@@ -12781,8 +12446,8 @@ in
       sources."jsonfile-4.0.0"
       sources."jsprim-1.4.1"
       sources."lodash-4.17.15"
-      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."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-2.9.0"
@@ -12815,7 +12480,7 @@ in
       sources."request-promise-4.2.5"
       sources."request-promise-core-1.1.3"
       sources."rimraf-2.6.3"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-5.7.1"
       sources."shebang-command-2.0.0"
@@ -12861,12 +12526,12 @@ in
       sha512 = "SwNzV40wu9IEe35TWR9b7F8WctIRUkpl6F3lzF0AqmYnCcKjbzrxbW6G7DYfA9ICUYjuSLcyYJKm5c86oMiH8w==";
     };
     dependencies = [
-      sources."@sindresorhus/is-2.1.0"
+      sources."@sindresorhus/is-2.1.1"
       sources."@szmarczak/http-timer-4.0.5"
       sources."@types/cacheable-request-6.0.1"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
-      sources."@types/node-13.11.0"
+      sources."@types/node-14.0.23"
       sources."@types/responselike-1.0.0"
       sources."cacheable-lookup-2.0.1"
       sources."cacheable-request-7.0.1"
@@ -12885,7 +12550,7 @@ in
       sources."get-proxy-2.1.0"
       sources."get-stream-5.1.0"
       sources."got-10.7.0"
-      sources."graceful-fs-4.2.3"
+      sources."graceful-fs-4.2.4"
       sources."has-symbol-support-x-1.4.2"
       sources."has-to-string-tag-x-1.4.1"
       sources."http-cache-semantics-4.1.0"
@@ -12895,23 +12560,23 @@ in
       sources."isurl-1.0.0"
       sources."json-buffer-3.0.1"
       sources."jsonfile-4.0.0"
-      sources."keyv-4.0.0"
+      sources."keyv-4.0.1"
       sources."lowercase-keys-2.0.0"
       sources."mimic-response-2.1.0"
       sources."normalize-url-4.5.0"
       sources."npm-conf-1.1.3"
       sources."once-1.4.0"
       sources."p-cancelable-2.0.0"
-      sources."p-event-4.1.0"
+      sources."p-event-4.2.0"
       sources."p-finally-1.0.0"
-      sources."p-timeout-2.0.1"
+      sources."p-timeout-3.2.0"
       sources."pify-3.0.0"
       sources."proto-list-1.2.4"
       sources."pump-3.0.0"
       sources."responselike-2.0.0"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safename-1.0.2"
-      sources."semver-7.1.3"
+      sources."semver-7.3.2"
       sources."to-readable-stream-2.1.0"
       sources."tunnel-agent-0.6.0"
       sources."type-fest-0.10.0"
@@ -12940,7 +12605,7 @@ in
       sha512 = "dAOv+U9hXZ0IRGx19mkpCAdf5rUwoJWlzFmcR2gvOzE/QjZUSlPh3e0IIDAfGUuEF8DjfE5CTe31fNtIkkd2rQ==";
     };
     dependencies = [
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.3"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.1"
@@ -12948,11 +12613,11 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       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"
@@ -12991,7 +12656,7 @@ in
       sources."escape-string-regexp-1.0.5"
       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."fill-range-7.0.1"
       (sources."find-elm-dependencies-2.0.2" // {
@@ -13007,12 +12672,12 @@ in
       sources."fs-extra-5.0.0"
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.2"
+      sources."fsevents-2.1.3"
       sources."get-caller-file-2.0.5"
       sources."getpass-0.1.7"
       sources."glob-7.1.4"
       sources."glob-parent-5.1.1"
-      sources."graceful-fs-4.2.3"
+      sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.3"
       sources."has-flag-3.0.0"
@@ -13035,8 +12700,8 @@ in
       sources."jsprim-1.4.1"
       sources."locate-path-3.0.0"
       sources."lodash-4.17.15"
-      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."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-2.9.0"
@@ -13055,7 +12720,7 @@ in
       sources."normalize-path-3.0.0"
       sources."oauth-sign-0.9.0"
       sources."once-1.4.0"
-      sources."p-limit-2.2.2"
+      sources."p-limit-2.3.0"
       sources."p-locate-3.0.0"
       sources."p-try-2.2.0"
       sources."path-exists-3.0.0"
@@ -13073,7 +12738,7 @@ in
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
       sources."rimraf-2.7.1"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-5.7.1"
       sources."set-blocking-2.0.0"
@@ -13134,7 +12799,7 @@ in
       sources."compare-versions-3.6.0"
       sources."core-util-is-1.0.2"
       sources."fs-extra-6.0.1"
-      sources."graceful-fs-4.2.3"
+      sources."graceful-fs-4.2.4"
       sources."inherits-2.0.4"
       sources."isarray-1.0.0"
       sources."jsonfile-4.0.0"
@@ -13169,86 +12834,107 @@ in
   create-elm-app = nodeEnv.buildNodePackage {
     name = "create-elm-app";
     packageName = "create-elm-app";
-    version = "4.2.4";
+    version = "4.2.26";
     src = fetchurl {
-      url = "https://registry.npmjs.org/create-elm-app/-/create-elm-app-4.2.4.tgz";
-      sha512 = "BtALhZG5T+95hYpmgobaxn5XhgcuQDgP5Gt8/HGbD2OREhHxo09qiU6wx+UJfAGf5BYjPH1s5hWRBU+DwS52AA==";
+      url = "https://registry.npmjs.org/create-elm-app/-/create-elm-app-4.2.26.tgz";
+      sha512 = "m8+dA/ea43gXODN7nnd8zSXSNTtnhSFLK5O9xNSxRWasaLPI6fqO3TsG0MADSV1sB66rmHRFsn5au12ir058DQ==";
     };
     dependencies = [
-      sources."@babel/cli-7.2.3"
-      sources."@babel/code-frame-7.8.3"
-      sources."@babel/core-7.3.4"
-      sources."@babel/generator-7.9.4"
-      sources."@babel/helper-annotate-as-pure-7.8.3"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.8.3"
-      sources."@babel/helper-create-regexp-features-plugin-7.8.8"
-      sources."@babel/helper-define-map-7.8.3"
-      sources."@babel/helper-explode-assignable-expression-7.8.3"
-      sources."@babel/helper-function-name-7.8.3"
-      sources."@babel/helper-get-function-arity-7.8.3"
-      sources."@babel/helper-hoist-variables-7.8.3"
-      sources."@babel/helper-member-expression-to-functions-7.8.3"
-      sources."@babel/helper-module-imports-7.8.3"
-      sources."@babel/helper-module-transforms-7.9.0"
-      sources."@babel/helper-optimise-call-expression-7.8.3"
-      sources."@babel/helper-plugin-utils-7.8.3"
-      sources."@babel/helper-regex-7.8.3"
-      sources."@babel/helper-remap-async-to-generator-7.8.3"
-      sources."@babel/helper-replace-supers-7.8.6"
-      sources."@babel/helper-simple-access-7.8.3"
-      sources."@babel/helper-split-export-declaration-7.8.3"
-      sources."@babel/helper-validator-identifier-7.9.0"
-      sources."@babel/helper-wrap-function-7.8.3"
-      sources."@babel/helpers-7.9.2"
-      sources."@babel/highlight-7.9.0"
-      sources."@babel/parser-7.9.4"
-      sources."@babel/plugin-proposal-async-generator-functions-7.8.3"
-      sources."@babel/plugin-proposal-json-strings-7.8.3"
-      sources."@babel/plugin-proposal-object-rest-spread-7.9.0"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.8.3"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.8.8"
+      sources."@babel/cli-7.8.4"
+      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.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.4"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
       sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
-      sources."@babel/plugin-transform-arrow-functions-7.8.3"
-      sources."@babel/plugin-transform-async-to-generator-7.8.3"
-      sources."@babel/plugin-transform-block-scoped-functions-7.8.3"
-      sources."@babel/plugin-transform-block-scoping-7.8.3"
-      sources."@babel/plugin-transform-classes-7.9.2"
-      sources."@babel/plugin-transform-computed-properties-7.8.3"
-      sources."@babel/plugin-transform-destructuring-7.8.8"
-      sources."@babel/plugin-transform-dotall-regex-7.8.3"
-      sources."@babel/plugin-transform-duplicate-keys-7.8.3"
-      sources."@babel/plugin-transform-exponentiation-operator-7.8.3"
-      sources."@babel/plugin-transform-for-of-7.9.0"
-      sources."@babel/plugin-transform-function-name-7.8.3"
-      sources."@babel/plugin-transform-literals-7.8.3"
-      sources."@babel/plugin-transform-modules-amd-7.9.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.9.0"
-      sources."@babel/plugin-transform-modules-systemjs-7.9.0"
-      sources."@babel/plugin-transform-modules-umd-7.9.0"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.8.3"
-      sources."@babel/plugin-transform-new-target-7.8.3"
-      sources."@babel/plugin-transform-object-super-7.8.3"
-      sources."@babel/plugin-transform-parameters-7.9.3"
-      sources."@babel/plugin-transform-regenerator-7.8.7"
-      sources."@babel/plugin-transform-runtime-7.3.4"
-      sources."@babel/plugin-transform-shorthand-properties-7.8.3"
-      sources."@babel/plugin-transform-spread-7.8.3"
-      sources."@babel/plugin-transform-sticky-regex-7.8.3"
-      sources."@babel/plugin-transform-template-literals-7.8.3"
-      sources."@babel/plugin-transform-typeof-symbol-7.8.4"
-      sources."@babel/plugin-transform-unicode-regex-7.8.3"
-      sources."@babel/preset-env-7.3.4"
-      (sources."@babel/runtime-7.3.4" // {
-        dependencies = [
-          sources."regenerator-runtime-0.12.1"
-        ];
-      })
-      sources."@babel/template-7.8.6"
-      sources."@babel/traverse-7.9.0"
-      sources."@babel/types-7.9.0"
+      sources."@babel/plugin-syntax-optional-chaining-7.8.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.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.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.4"
+      (sources."@babel/traverse-7.10.5" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."@babel/types-7.10.5"
       sources."@hapi/address-2.1.4"
       sources."@hapi/bourne-1.3.2"
       sources."@hapi/hoek-8.5.1"
@@ -13258,27 +12944,28 @@ in
       sources."@nodelib/fs.stat-1.1.3"
       sources."@types/anymatch-1.3.1"
       sources."@types/color-name-1.1.1"
-      sources."@types/events-3.0.0"
-      sources."@types/glob-7.1.1"
-      sources."@types/html-minifier-terser-5.0.0"
+      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-13.11.0"
-      sources."@types/q-1.5.2"
+      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.5"
-      (sources."@types/uglify-js-3.0.5" // {
+      sources."@types/tapable-1.0.6"
+      (sources."@types/uglify-js-3.9.3" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      (sources."@types/webpack-4.41.10" // {
+      (sources."@types/webpack-4.41.21" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      (sources."@types/webpack-sources-0.1.7" // {
+      (sources."@types/webpack-sources-1.4.0" // {
         dependencies = [
-          sources."source-map-0.6.1"
+          sources."source-map-0.7.3"
         ];
       })
       sources."@webassemblyjs/ast-1.9.0"
@@ -13304,16 +12991,20 @@ in
       sources."accepts-1.3.7"
       sources."acorn-6.4.1"
       sources."address-1.0.3"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.3"
       sources."ajv-errors-1.0.1"
-      sources."ajv-keywords-3.4.1"
+      sources."ajv-keywords-3.5.1"
       sources."alphanum-sort-1.0.2"
       sources."ansi-colors-3.2.4"
       sources."ansi-escapes-3.2.0"
       sources."ansi-html-0.0.7"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-3.2.1"
-      sources."anymatch-3.1.1"
+      (sources."anymatch-2.0.0" // {
+        dependencies = [
+          sources."normalize-path-2.1.1"
+        ];
+      })
       sources."aproba-1.2.0"
       sources."argparse-1.0.10"
       sources."arr-diff-4.0.0"
@@ -13328,7 +13019,11 @@ in
       sources."array-unique-0.3.2"
       sources."asap-2.0.6"
       sources."asn1-0.2.4"
-      sources."asn1.js-4.10.1"
+      (sources."asn1.js-4.10.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       (sources."assert-1.5.0" // {
         dependencies = [
           sources."inherits-2.0.1"
@@ -13338,7 +13033,7 @@ in
       sources."assert-plus-1.0.0"
       (sources."assets-webpack-plugin-3.9.12" // {
         dependencies = [
-          sources."mkdirp-0.5.3"
+          sources."lodash-4.17.15"
         ];
       })
       sources."assign-symbols-1.0.0"
@@ -13353,10 +13048,10 @@ in
         ];
       })
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."babel-extract-comments-1.0.0"
-      sources."babel-loader-8.0.4"
-      sources."babel-plugin-dynamic-import-node-2.3.0"
+      sources."babel-loader-8.1.0"
+      sources."babel-plugin-dynamic-import-node-2.3.3"
       sources."babel-plugin-syntax-object-rest-spread-6.13.0"
       sources."babel-plugin-transform-object-rest-spread-6.26.0"
       (sources."babel-runtime-6.26.0" // {
@@ -13376,16 +13071,14 @@ in
       sources."bcrypt-pbkdf-1.0.2"
       sources."big.js-5.2.2"
       sources."binary-0.3.0"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-1.13.1"
       sources."bindings-1.5.0"
       sources."binwrap-0.2.2"
       sources."bluebird-3.7.2"
-      sources."bn.js-4.11.8"
+      sources."bn.js-5.1.2"
       (sources."body-parser-1.19.0" // {
         dependencies = [
           sources."bytes-3.1.0"
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
           sources."qs-6.7.0"
         ];
       })
@@ -13396,15 +13089,29 @@ in
       })
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      (sources."braces-2.3.2" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+          sources."is-extendable-0.1.1"
+        ];
+      })
       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"
-      sources."browserify-sign-4.0.4"
+      (sources."browserify-rsa-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (sources."browserify-sign-4.2.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
+        ];
+      })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.11.1"
+      sources."browserslist-4.13.0"
       sources."buffer-4.9.2"
       sources."buffer-from-1.1.1"
       sources."buffer-indexof-1.1.1"
@@ -13421,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.30001039"
+      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"
@@ -13431,11 +13138,7 @@ in
         ];
       })
       sources."chardet-0.7.0"
-      (sources."chokidar-3.3.0" // {
-        dependencies = [
-          sources."glob-parent-5.1.1"
-        ];
-      })
+      sources."chokidar-2.1.8"
       sources."chownr-1.1.4"
       sources."chrome-trace-event-1.0.2"
       sources."cipher-base-1.0.4"
@@ -13463,7 +13166,7 @@ in
       })
       sources."cli-cursor-2.1.0"
       sources."cli-table-0.3.1"
-      sources."cli-width-2.2.0"
+      sources."cli-width-2.2.1"
       (sources."cliui-3.2.0" // {
         dependencies = [
           sources."strip-ansi-3.0.1"
@@ -13478,17 +13181,12 @@ in
       sources."color-string-1.5.3"
       sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
-      sources."commander-2.20.3"
+      sources."commander-4.1.1"
       sources."common-tags-1.8.0"
       sources."commondir-1.0.1"
       sources."component-emitter-1.3.0"
       sources."compressible-2.0.18"
-      (sources."compression-1.7.4" // {
-        dependencies = [
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
-        ];
-      })
+      sources."compression-1.7.4"
       sources."concat-map-0.0.1"
       sources."concat-stream-1.6.2"
       sources."connect-history-api-fallback-1.6.0"
@@ -13503,38 +13201,39 @@ in
       sources."copy-descriptor-0.1.1"
       (sources."copy-webpack-plugin-5.1.1" // {
         dependencies = [
-          sources."find-cache-dir-2.1.0"
-          sources."find-up-3.0.0"
-          sources."locate-path-3.0.0"
-          sources."make-dir-2.1.0"
-          sources."p-limit-2.2.2"
-          sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
-          sources."pify-4.0.1"
-          sources."pkg-dir-3.0.0"
+          sources."schema-utils-1.0.0"
         ];
       })
       sources."core-js-2.6.11"
+      (sources."core-js-compat-3.6.5" // {
+        dependencies = [
+          sources."semver-7.0.0"
+        ];
+      })
       sources."core-util-is-1.0.2"
       sources."cosmiconfig-5.2.1"
-      sources."create-ecdh-4.0.3"
+      (sources."create-ecdh-4.0.3" // {
+        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-7.0.3"
       sources."crypto-browserify-3.12.0"
       sources."css-color-names-0.0.4"
       (sources."css-declaration-sorter-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
-      (sources."css-loader-3.4.2" // {
+      (sources."css-loader-3.6.0" // {
         dependencies = [
-          sources."postcss-7.0.27"
-          sources."postcss-value-parser-4.0.3"
-          sources."schema-utils-2.6.5"
+          sources."postcss-7.0.32"
+          sources."postcss-value-parser-4.1.0"
+          sources."semver-6.3.0"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
@@ -13550,14 +13249,14 @@ in
       sources."cssesc-3.0.0"
       (sources."cssnano-4.1.10" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."cssnano-preset-default-4.0.7" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
@@ -13566,7 +13265,7 @@ in
       sources."cssnano-util-get-match-4.0.0"
       (sources."cssnano-util-raw-cache-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
@@ -13582,7 +13281,7 @@ in
       sources."cycle-1.0.3"
       sources."cyclist-1.0.1"
       sources."dashdash-1.14.1"
-      sources."debug-4.1.1"
+      sources."debug-2.6.9"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       sources."deep-equal-0.2.2"
@@ -13596,7 +13295,6 @@ in
               sources."pify-2.3.0"
             ];
           })
-          sources."pify-4.0.1"
         ];
       })
       sources."delayed-stream-1.0.0"
@@ -13604,13 +13302,12 @@ in
       sources."des.js-1.0.1"
       sources."destroy-1.0.4"
       sources."detect-node-2.0.4"
-      (sources."detect-port-alt-1.1.6" // {
+      sources."detect-port-alt-1.1.6"
+      (sources."diffie-hellman-5.0.3" // {
         dependencies = [
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
+          sources."bn.js-4.11.9"
         ];
       })
-      sources."diffie-hellman-5.0.3"
       sources."dir-glob-2.2.2"
       sources."dns-equal-1.0.0"
       sources."dns-packet-1.3.1"
@@ -13627,13 +13324,17 @@ in
       sources."domutils-1.5.1"
       sources."dot-case-3.0.3"
       sources."dot-prop-5.2.0"
-      sources."dotenv-5.0.1"
+      sources."dotenv-8.2.0"
       sources."duplexer-0.1.1"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.397"
-      sources."elliptic-6.5.2"
+      sources."electron-to-chromium-1.3.500"
+      (sources."elliptic-6.5.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."elm-0.19.1-3"
       sources."elm-asset-webpack-loader-1.1.2"
       sources."elm-hot-1.1.4"
@@ -13641,49 +13342,68 @@ in
       (sources."elm-test-0.19.1-revision2" // {
         dependencies = [
           sources."ansi-styles-4.2.1"
+          sources."anymatch-3.1.1"
+          sources."binary-extensions-2.1.0"
+          sources."braces-3.0.2"
           sources."chalk-3.0.0"
+          sources."chokidar-3.3.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."cross-spawn-7.0.1"
+          sources."fill-range-7.0.1"
           sources."fs-extra-8.1.0"
+          sources."fsevents-2.1.3"
+          sources."glob-parent-5.1.1"
           sources."has-flag-4.0.0"
-          sources."path-key-3.1.1"
-          sources."shebang-command-2.0.0"
-          sources."shebang-regex-3.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"
           sources."which-2.0.1"
         ];
       })
-      sources."elm-webpack-loader-6.0.0"
+      sources."elm-webpack-loader-6.0.1"
       sources."elmi-to-json-1.3.0"
+      sources."emoji-regex-7.0.3"
       sources."emojis-list-3.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."enhanced-resolve-4.1.1" // {
+      (sources."enhanced-resolve-4.3.0" // {
         dependencies = [
           sources."memory-fs-0.5.0"
         ];
       })
-      sources."entities-2.0.0"
+      sources."entities-2.0.3"
       sources."errno-0.1.7"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.17.5"
+      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"
       sources."esprima-4.0.1"
       sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
       sources."etag-1.8.1"
-      sources."eventemitter3-4.0.0"
+      sources."eventemitter3-4.0.4"
       sources."events-3.1.0"
       sources."eventsource-0.1.6"
       sources."evp_bytestokey-1.0.3"
-      sources."execa-1.0.0"
+      (sources."execa-1.0.0" // {
+        dependencies = [
+          sources."cross-spawn-6.0.5"
+          sources."path-key-2.0.1"
+          sources."shebang-command-1.2.0"
+          sources."shebang-regex-1.0.0"
+          sources."which-1.3.1"
+        ];
+      })
       (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" // {
@@ -13697,56 +13417,31 @@ in
             ];
           })
           sources."is-descriptor-0.1.6"
+          sources."is-extendable-0.1.1"
           sources."kind-of-5.1.0"
-          sources."ms-2.0.0"
         ];
       })
       sources."expand-tilde-2.0.2"
       (sources."express-4.17.1" // {
         dependencies = [
           sources."array-flatten-1.1.1"
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
           sources."qs-6.7.0"
         ];
       })
       sources."extend-3.0.2"
-      (sources."extend-shallow-3.0.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
+      sources."extend-shallow-3.0.2"
       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."is-extendable-0.1.1"
         ];
       })
       sources."extsprintf-1.3.0"
       sources."eyes-0.1.8"
-      sources."fast-deep-equal-3.1.1"
-      (sources."fast-glob-2.2.7" // {
-        dependencies = [
-          (sources."braces-2.3.2" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          (sources."fill-range-4.0.0" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          (sources."is-number-3.0.0" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."micromatch-3.1.10"
-          sources."to-regex-range-2.1.1"
-        ];
-      })
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-glob-2.2.7"
       sources."fast-json-stable-stringify-2.1.0"
       sources."faye-websocket-0.11.3"
       sources."figgy-pudding-3.5.2"
@@ -13762,28 +13457,25 @@ in
       })
       sources."file-uri-to-path-1.0.0"
       sources."filesize-3.6.1"
-      sources."fill-range-7.0.1"
-      (sources."finalhandler-1.1.2" // {
+      (sources."fill-range-4.0.0" // {
         dependencies = [
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
+          sources."extend-shallow-2.0.1"
+          sources."is-extendable-0.1.1"
         ];
       })
-      sources."find-cache-dir-1.0.0"
+      sources."finalhandler-1.1.2"
+      sources."find-cache-dir-2.1.0"
       (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.11.0" // {
-        dependencies = [
-          sources."debug-3.2.6"
-        ];
-      })
+      sources."follow-redirects-1.12.1"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
@@ -13796,8 +13488,9 @@ in
       sources."fs-readdir-recursive-1.1.0"
       sources."fs-write-stream-atomic-1.0.10"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.2"
+      sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
+      sources."gensync-1.0.0-beta.1"
       sources."get-caller-file-1.0.3"
       sources."get-own-enumerable-property-symbols-3.0.2"
       sources."get-stream-4.1.0"
@@ -13811,15 +13504,24 @@ in
       })
       sources."glob-to-regexp-0.3.0"
       sources."global-modules-1.0.0"
-      sources."global-prefix-1.0.2"
+      (sources."global-prefix-1.0.2" // {
+        dependencies = [
+          sources."which-1.3.1"
+        ];
+      })
       sources."globals-11.12.0"
       (sources."globby-7.1.1" // {
         dependencies = [
+          sources."pify-3.0.0"
           sources."slash-1.0.0"
         ];
       })
-      sources."graceful-fs-4.2.3"
-      sources."gzip-size-5.0.0"
+      sources."graceful-fs-4.2.4"
+      (sources."gzip-size-5.0.0" // {
+        dependencies = [
+          sources."pify-3.0.0"
+        ];
+      })
       sources."handle-thing-2.0.1"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.3"
@@ -13829,15 +13531,15 @@ 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-base-3.0.4"
+      (sources."hash-base-3.1.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
+        ];
+      })
       sources."hash.js-1.1.7"
       sources."he-1.2.0"
       sources."hex-color-regex-1.1.0"
@@ -13848,17 +13550,9 @@ in
       sources."hsl-regex-1.0.0"
       sources."hsla-regex-1.0.0"
       sources."html-comment-regex-1.1.2"
-      sources."html-entities-1.2.1"
-      (sources."html-minifier-terser-5.0.5" // {
-        dependencies = [
-          sources."commander-4.1.1"
-        ];
-      })
-      (sources."html-webpack-plugin-4.0.4" // {
-        dependencies = [
-          sources."util.promisify-1.0.0"
-        ];
-      })
+      sources."html-entities-1.3.1"
+      sources."html-minifier-terser-5.1.1"
+      sources."html-webpack-plugin-4.3.0"
       (sources."htmlparser2-3.10.1" // {
         dependencies = [
           sources."entities-1.1.2"
@@ -13871,16 +13565,24 @@ in
           sources."inherits-2.0.3"
         ];
       })
-      sources."http-parser-js-0.4.10"
-      sources."http-proxy-1.18.0"
-      sources."http-proxy-middleware-0.20.0"
+      sources."http-parser-js-0.5.2"
+      sources."http-proxy-1.18.1"
+      (sources."http-proxy-middleware-0.21.0" // {
+        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."http-signature-1.2.0"
       sources."https-browserify-1.0.0"
       sources."i-0.3.6"
       sources."iconv-lite-0.4.24"
       (sources."icss-utils-4.1.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
@@ -13889,17 +13591,10 @@ in
       sources."iferr-0.1.5"
       sources."ignore-3.3.10"
       sources."immer-1.7.2"
+      sources."import-cwd-2.1.0"
       sources."import-fresh-2.0.0"
-      (sources."import-local-2.0.0" // {
-        dependencies = [
-          sources."find-up-3.0.0"
-          sources."locate-path-3.0.0"
-          sources."p-limit-2.2.2"
-          sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
-          sources."pkg-dir-3.0.0"
-        ];
-      })
+      sources."import-from-2.1.0"
+      sources."import-local-2.0.0"
       sources."imurmurhash-0.1.4"
       sources."indexes-of-1.0.1"
       sources."infer-owner-1.0.4"
@@ -13925,27 +13620,29 @@ in
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arguments-1.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-binary-path-2.1.0"
+      sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.1.5"
+      sources."is-callable-1.2.0"
       sources."is-color-stop-1.1.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
       sources."is-directory-0.3.1"
-      sources."is-extendable-0.1.1"
+      sources."is-extendable-1.0.1"
       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-number-3.0.0" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
       sources."is-obj-2.0.0"
       sources."is-path-cwd-2.2.0"
       sources."is-path-in-cwd-2.1.0"
       sources."is-path-inside-2.1.0"
-      sources."is-plain-obj-1.1.0"
       sources."is-plain-object-2.0.4"
-      sources."is-promise-2.1.0"
-      sources."is-regex-1.0.5"
+      sources."is-regex-1.1.0"
       sources."is-regexp-1.0.0"
       sources."is-resolvable-1.1.0"
       sources."is-root-2.0.0"
@@ -13960,9 +13657,8 @@ in
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
-      sources."js-levenshtein-1.1.6"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
       sources."jsesc-2.5.2"
       sources."json-parse-better-errors-1.0.2"
@@ -13971,7 +13667,7 @@ in
       sources."json-stable-stringify-1.0.1"
       sources."json-stringify-safe-5.0.1"
       sources."json3-3.3.3"
-      sources."json5-2.1.2"
+      sources."json5-2.1.3"
       sources."jsonfile-4.0.0"
       sources."jsonify-0.0.0"
       sources."jsprim-1.4.1"
@@ -13979,6 +13675,8 @@ in
       sources."kind-of-6.0.3"
       sources."last-call-webpack-plugin-3.0.0"
       sources."lcid-1.0.0"
+      sources."leven-3.1.0"
+      sources."levenary-1.1.1"
       (sources."load-json-file-1.1.0" // {
         dependencies = [
           sources."parse-json-2.2.0"
@@ -13991,40 +13689,42 @@ 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"
       sources."lodash.templatesettings-4.2.0"
       sources."lodash.uniq-4.5.0"
-      sources."loglevel-1.6.7"
+      sources."loglevel-1.6.8"
       sources."loose-envify-1.4.0"
       sources."lower-case-2.0.1"
       sources."lru-cache-5.1.1"
-      sources."make-dir-1.3.0"
-      sources."map-age-cleaner-0.1.3"
+      sources."make-dir-2.1.0"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."md5.js-1.3.5"
       sources."mdn-data-2.0.4"
       sources."media-typer-0.3.0"
-      (sources."mem-4.3.0" // {
-        dependencies = [
-          sources."mimic-fn-2.1.0"
-        ];
-      })
       sources."memory-fs-0.4.1"
       sources."merge-descriptors-1.0.1"
-      sources."merge2-1.3.0"
+      sources."merge2-1.4.1"
       sources."methods-1.1.2"
-      sources."micromatch-4.0.2"
-      sources."miller-rabin-4.0.1"
-      sources."mime-2.4.4"
-      sources."mime-db-1.43.0"
-      sources."mime-types-2.1.26"
+      sources."micromatch-3.1.10"
+      (sources."miller-rabin-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."mime-2.4.6"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
       sources."mimic-fn-1.2.0"
-      sources."mini-css-extract-plugin-0.4.5"
+      (sources."mini-css-extract-plugin-0.4.5" // {
+        dependencies = [
+          sources."schema-utils-1.0.0"
+        ];
+      })
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
       sources."minimatch-3.0.4"
@@ -14032,39 +13732,48 @@ in
       sources."minipass-2.9.0"
       sources."minizlib-1.3.3"
       sources."mississippi-3.0.0"
-      (sources."mixin-deep-1.3.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
-      sources."mkdirp-0.5.5"
+      sources."mixin-deep-1.3.2"
+      sources."mkdirp-0.5.3"
       sources."move-concurrently-1.0.1"
-      sources."ms-2.1.2"
+      sources."ms-2.0.0"
       sources."multicast-dns-6.2.3"
       sources."multicast-dns-service-types-1.1.0"
       sources."murmur-hash-js-1.0.0"
       sources."mustache-3.2.1"
       sources."mute-stream-0.0.8"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       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"
+      (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"
+          sources."which-1.3.1"
+        ];
+      })
       sources."node-forge-0.9.0"
       (sources."node-libs-browser-2.2.1" // {
         dependencies = [
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-releases-1.1.53"
+      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"
       sources."normalize-url-3.3.0"
-      sources."npm-run-path-2.0.2"
+      (sources."npm-run-path-2.0.2" // {
+        dependencies = [
+          sources."path-key-2.0.1"
+        ];
+      })
       sources."nth-check-1.0.2"
       sources."num2fraction-1.2.2"
       sources."number-is-nan-1.0.1"
@@ -14083,12 +13792,12 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.7.0"
-      sources."object-is-1.0.2"
+      sources."object-inspect-1.8.0"
+      sources."object-is-1.1.2"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.0"
-      sources."object.entries-1.1.1"
+      sources."object.entries-1.1.2"
       sources."object.getownpropertydescriptors-2.1.0"
       sources."object.pick-1.3.0"
       sources."object.values-1.1.1"
@@ -14101,18 +13810,14 @@ in
       sources."optimize-css-assets-webpack-plugin-5.0.3"
       sources."original-1.0.2"
       sources."os-browserify-0.3.0"
-      sources."os-homedir-1.0.2"
       sources."os-locale-1.4.0"
       sources."os-tmpdir-1.0.2"
-      sources."output-file-sync-2.0.1"
-      sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
-      sources."p-is-promise-2.1.0"
-      sources."p-limit-1.3.0"
-      sources."p-locate-2.0.0"
+      sources."p-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"
@@ -14127,23 +13832,36 @@ in
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-is-inside-1.0.2"
-      sources."path-key-2.0.1"
+      sources."path-key-3.1.1"
       sources."path-parse-1.0.6"
       sources."path-to-regexp-0.1.7"
-      sources."path-type-3.0.0"
-      sources."pbkdf2-3.0.17"
+      (sources."path-type-3.0.0" // {
+        dependencies = [
+          sources."pify-3.0.0"
+        ];
+      })
+      sources."pbkdf2-3.1.1"
       sources."performance-now-2.1.0"
       sources."picomatch-2.2.2"
-      sources."pify-3.0.0"
+      sources."pify-4.0.1"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
-      sources."pkg-dir-2.0.0"
-      sources."pkg-up-2.0.0"
+      sources."pkg-dir-3.0.0"
+      (sources."pkg-up-2.0.0" // {
+        dependencies = [
+          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."pkginfo-0.4.1"
-      (sources."portfinder-1.0.25" // {
+      (sources."portfinder-1.0.26" // {
         dependencies = [
           sources."async-2.6.3"
           sources."debug-3.2.6"
+          sources."ms-2.1.2"
         ];
       })
       sources."posix-character-classes-0.1.1"
@@ -14154,88 +13872,80 @@ in
       })
       (sources."postcss-calc-7.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
-          sources."postcss-value-parser-4.0.3"
+          sources."postcss-7.0.32"
+          sources."postcss-value-parser-4.1.0"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-colormin-4.0.3" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-convert-values-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-discard-comments-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-discard-duplicates-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-discard-empty-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-discard-overridden-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
-      sources."postcss-flexbugs-fixes-3.3.1"
-      (sources."postcss-load-config-1.2.0" // {
-        dependencies = [
-          sources."cosmiconfig-2.2.2"
-          sources."parse-json-2.2.0"
-        ];
-      })
-      (sources."postcss-load-options-1.2.0" // {
+      (sources."postcss-flexbugs-fixes-4.2.1" // {
         dependencies = [
-          sources."cosmiconfig-2.2.2"
-          sources."parse-json-2.2.0"
-        ];
-      })
-      (sources."postcss-load-plugins-2.3.0" // {
-        dependencies = [
-          sources."cosmiconfig-2.2.2"
-          sources."parse-json-2.2.0"
+          sources."postcss-7.0.32"
+          sources."source-map-0.6.1"
+          sources."supports-color-6.1.0"
         ];
       })
-      (sources."postcss-loader-2.1.5" // {
+      sources."postcss-load-config-2.1.0"
+      (sources."postcss-loader-3.0.0" // {
         dependencies = [
-          sources."schema-utils-0.4.7"
+          sources."postcss-7.0.32"
+          sources."schema-utils-1.0.0"
+          sources."source-map-0.6.1"
+          sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-merge-longhand-4.0.11" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-merge-rules-4.0.3" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."postcss-selector-parser-3.1.2"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
@@ -14243,28 +13953,28 @@ in
       })
       (sources."postcss-minify-font-values-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-minify-gradients-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-minify-params-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-minify-selectors-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."postcss-selector-parser-3.1.2"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
@@ -14272,120 +13982,120 @@ in
       })
       (sources."postcss-modules-extract-imports-2.0.0" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-modules-local-by-default-3.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
-          sources."postcss-value-parser-4.0.3"
+          sources."postcss-7.0.32"
+          sources."postcss-value-parser-4.1.0"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-modules-scope-2.2.0" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-modules-values-3.0.0" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-charset-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-display-values-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-positions-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-repeat-style-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-string-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-timing-functions-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-unicode-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-url-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-whitespace-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-ordered-values-4.1.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-reduce-initial-4.0.3" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-reduce-transforms-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-safe-parser-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
@@ -14393,14 +14103,14 @@ in
       sources."postcss-selector-parser-6.0.2"
       (sources."postcss-svgo-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-unique-selectors-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
@@ -14408,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"
@@ -14422,7 +14131,11 @@ in
       sources."prr-1.0.1"
       sources."pseudomap-1.0.2"
       sources."psl-1.8.0"
-      sources."public-encrypt-4.0.3"
+      (sources."public-encrypt-4.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."pump-3.0.0"
       (sources."pumpify-1.5.1" // {
         dependencies = [
@@ -14450,22 +14163,21 @@ in
           sources."big.js-3.2.0"
           sources."browserslist-4.1.1"
           sources."chalk-2.4.1"
-          sources."debug-2.6.9"
+          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."ms-2.0.0"
-          sources."p-limit-2.2.2"
-          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"
+          sources."shebang-command-1.2.0"
+          sources."shebang-regex-1.0.0"
           sources."slash-1.0.0"
           sources."sockjs-client-1.1.5"
           sources."strip-ansi-4.0.0"
+          sources."which-1.3.1"
         ];
       })
       sources."react-error-overlay-4.0.1"
@@ -14483,20 +14195,16 @@ in
         ];
       })
       sources."readable-stream-2.3.7"
-      sources."readdirp-3.2.0"
+      sources."readdirp-2.2.1"
       sources."recursive-readdir-2.2.2"
-      sources."regenerate-1.4.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" // {
-        dependencies = [
-          sources."@babel/runtime-7.9.2"
-        ];
-      })
+      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"
-      sources."regjsgen-0.5.1"
+      sources."regjsgen-0.5.2"
       (sources."regjsparser-0.6.4" // {
         dependencies = [
           sources."jsesc-0.5.0"
@@ -14515,10 +14223,9 @@ in
       sources."request-promise-4.2.5"
       sources."request-promise-core-1.1.3"
       sources."require-directory-2.1.1"
-      sources."require-from-string-1.2.1"
       sources."require-main-filename-1.0.1"
       sources."requires-port-1.0.0"
-      sources."resolve-1.15.1"
+      sources."resolve-1.17.0"
       sources."resolve-cwd-2.0.0"
       sources."resolve-dir-1.0.1"
       sources."resolve-from-3.0.0"
@@ -14531,24 +14238,19 @@ in
       sources."rgba-regex-1.0.0"
       sources."rimraf-2.7.1"
       sources."ripemd160-2.0.2"
-      sources."run-async-2.4.0"
+      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"
       sources."sax-1.2.4"
-      sources."schema-utils-1.0.0"
+      sources."schema-utils-2.7.0"
       sources."select-hose-2.0.0"
       sources."selfsigned-1.10.7"
       sources."semver-5.7.1"
       (sources."send-0.17.1" // {
         dependencies = [
-          (sources."debug-2.6.9" // {
-            dependencies = [
-              sources."ms-2.0.0"
-            ];
-          })
           sources."mime-1.6.0"
           sources."ms-2.1.1"
         ];
@@ -14556,10 +14258,8 @@ in
       sources."serialize-javascript-2.1.2"
       (sources."serve-index-1.9.1" // {
         dependencies = [
-          sources."debug-2.6.9"
           sources."http-errors-1.6.3"
           sources."inherits-2.0.3"
-          sources."ms-2.0.0"
           sources."setprototypeof-1.1.0"
         ];
       })
@@ -14568,13 +14268,14 @@ in
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
+          sources."is-extendable-0.1.1"
         ];
       })
       sources."setimmediate-1.0.5"
       sources."setprototypeof-1.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."signal-exit-3.0.3"
       (sources."simple-swizzle-0.2.2" // {
@@ -14585,7 +14286,6 @@ in
       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" // {
@@ -14599,8 +14299,8 @@ in
             ];
           })
           sources."is-descriptor-0.1.6"
+          sources."is-extendable-0.1.1"
           sources."kind-of-5.1.0"
-          sources."ms-2.0.0"
         ];
       })
       (sources."snapdragon-node-2.1.1" // {
@@ -14613,33 +14313,42 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      (sources."sockjs-0.3.19" // {
+      (sources."sockjs-0.3.20" // {
         dependencies = [
           sources."faye-websocket-0.10.0"
+          sources."websocket-driver-0.6.5"
         ];
       })
       (sources."sockjs-client-1.4.0" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."eventsource-1.0.7"
+          sources."ms-2.1.2"
         ];
       })
       sources."source-list-map-2.0.1"
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
-      (sources."source-map-support-0.5.16" // {
+      (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.0"
-      sources."spdx-exceptions-2.2.0"
-      sources."spdx-expression-parse-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."spdy-4.0.2"
+      (sources."spdy-4.0.2" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
+        ];
+      })
       (sources."spdy-transport-3.0.0" // {
         dependencies = [
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
           sources."readable-stream-3.6.0"
         ];
       })
@@ -14673,16 +14382,14 @@ in
       sources."stream-each-1.2.3"
       sources."stream-http-2.8.3"
       sources."stream-shift-1.0.1"
-      sources."string-replace-loader-2.2.0"
+      sources."string-replace-loader-2.3.0"
       (sources."string-width-1.0.2" // {
         dependencies = [
           sources."strip-ansi-3.0.1"
         ];
       })
-      sources."string.prototype.trimend-1.0.0"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
-      sources."string.prototype.trimstart-1.0.0"
+      sources."string.prototype.trimend-1.0.1"
+      sources."string.prototype.trimstart-1.0.1"
       sources."string_decoder-1.1.1"
       (sources."stringify-object-3.3.0" // {
         dependencies = [
@@ -14697,14 +14404,14 @@ in
       sources."strip-bom-2.0.0"
       sources."strip-comments-1.0.2"
       sources."strip-eof-1.0.0"
-      (sources."style-loader-0.21.0" // {
+      (sources."style-loader-0.23.1" // {
         dependencies = [
-          sources."schema-utils-0.4.7"
+          sources."schema-utils-1.0.0"
         ];
       })
       (sources."stylehacks-4.0.3" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."postcss-selector-parser-3.1.2"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
@@ -14714,7 +14421,7 @@ in
       (sources."svgo-1.3.2" // {
         dependencies = [
           sources."css-select-2.1.0"
-          sources."css-what-3.2.1"
+          sources."css-what-3.3.0"
           sources."domutils-1.7.0"
         ];
       })
@@ -14725,22 +14432,16 @@ in
           sources."rimraf-2.6.3"
         ];
       })
-      (sources."terser-4.6.10" // {
+      (sources."terser-4.8.0" // {
         dependencies = [
+          sources."commander-2.20.3"
           sources."source-map-0.6.1"
         ];
       })
-      (sources."terser-webpack-plugin-1.4.3" // {
+      (sources."terser-webpack-plugin-1.4.4" // {
         dependencies = [
-          sources."find-cache-dir-2.1.0"
-          sources."find-up-3.0.0"
-          sources."locate-path-3.0.0"
-          sources."make-dir-2.1.0"
-          sources."p-limit-2.2.2"
-          sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
-          sources."pify-4.0.1"
-          sources."pkg-dir-3.0.0"
+          sources."schema-utils-1.0.0"
+          sources."serialize-javascript-3.1.0"
           sources."source-map-0.6.1"
         ];
       })
@@ -14759,11 +14460,11 @@ in
         ];
       })
       sources."to-regex-3.0.2"
-      sources."to-regex-range-5.0.1"
+      sources."to-regex-range-2.1.1"
       sources."toidentifier-1.0.0"
       sources."tough-cookie-2.5.0"
       sources."traverse-0.3.9"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."tty-browserify-0.0.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
@@ -14778,8 +14479,17 @@ in
       (sources."uglifyjs-webpack-plugin-1.3.0" // {
         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"
           sources."schema-utils-0.4.7"
           sources."serialize-javascript-1.9.1"
@@ -14792,7 +14502,11 @@ in
       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."union-value-1.0.1" // {
+        dependencies = [
+          sources."is-extendable-0.1.1"
+        ];
+      })
       sources."uniq-1.0.1"
       sources."uniqs-2.0.0"
       sources."unique-filename-1.1.1"
@@ -14819,7 +14533,11 @@ in
           sources."punycode-1.3.2"
         ];
       })
-      sources."url-loader-1.1.2"
+      (sources."url-loader-1.1.2" // {
+        dependencies = [
+          sources."schema-utils-1.0.0"
+        ];
+      })
       sources."url-parse-1.4.7"
       sources."use-3.1.1"
       (sources."util-0.11.1" // {
@@ -14828,7 +14546,7 @@ in
         ];
       })
       sources."util-deprecate-1.0.2"
-      sources."util.promisify-1.0.1"
+      sources."util.promisify-1.0.0"
       sources."utila-0.4.0"
       sources."utile-0.3.0"
       sources."utils-merge-1.0.1"
@@ -14838,82 +14556,62 @@ in
       sources."vendors-1.0.4"
       sources."verror-1.10.0"
       sources."vm-browserify-1.1.2"
-      (sources."watchpack-1.6.1" // {
-        dependencies = [
-          sources."anymatch-2.0.0"
-          sources."binary-extensions-1.13.1"
-          sources."braces-2.3.2"
-          sources."chokidar-2.1.8"
-          sources."extend-shallow-2.0.1"
-          sources."fill-range-4.0.0"
-          sources."fsevents-1.2.12"
-          sources."is-binary-path-1.0.1"
-          sources."is-number-3.0.0"
-          sources."kind-of-3.2.2"
-          sources."micromatch-3.1.10"
-          sources."normalize-path-2.1.1"
-          sources."readdirp-2.2.1"
-          sources."to-regex-range-2.1.1"
+      (sources."watchpack-1.7.2" // {
+        dependencies = [
+          sources."anymatch-3.1.1"
+          sources."binary-extensions-2.1.0"
+          sources."braces-3.0.2"
+          sources."chokidar-3.4.1"
+          sources."fill-range-7.0.1"
+          sources."fsevents-2.1.3"
+          sources."glob-parent-5.1.1"
+          sources."is-binary-path-2.1.0"
+          sources."is-number-7.0.0"
+          sources."readdirp-3.4.0"
+          sources."to-regex-range-5.0.1"
         ];
       })
+      sources."watchpack-chokidar2-2.0.0"
       sources."wbuf-1.7.3"
-      (sources."webpack-4.42.1" // {
+      (sources."webpack-4.43.0" // {
         dependencies = [
-          sources."braces-2.3.2"
-          sources."extend-shallow-2.0.1"
-          sources."fill-range-4.0.0"
-          sources."is-number-3.0.0"
-          sources."kind-of-3.2.2"
-          sources."micromatch-3.1.10"
-          sources."to-regex-range-2.1.1"
+          sources."schema-utils-1.0.0"
         ];
       })
       sources."webpack-dev-middleware-3.7.2"
-      (sources."webpack-dev-server-3.10.3" // {
+      (sources."webpack-dev-server-3.11.0" // {
         dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."anymatch-2.0.0"
-          sources."binary-extensions-1.13.1"
-          sources."braces-2.3.2"
-          sources."chokidar-2.1.8"
-          (sources."cliui-4.1.0" // {
+          sources."ansi-regex-4.1.0"
+          (sources."cliui-5.0.0" // {
             dependencies = [
-              sources."strip-ansi-4.0.0"
+              sources."strip-ansi-5.2.0"
             ];
           })
-          sources."extend-shallow-2.0.1"
-          sources."fill-range-4.0.0"
-          sources."find-up-3.0.0"
-          sources."fsevents-1.2.12"
+          sources."debug-4.2.0"
+          sources."get-caller-file-2.0.5"
           sources."http-proxy-middleware-0.19.1"
-          sources."invert-kv-2.0.0"
           sources."is-absolute-url-3.0.3"
-          sources."is-binary-path-1.0.1"
           sources."is-fullwidth-code-point-2.0.0"
-          sources."is-number-3.0.0"
-          sources."kind-of-3.2.2"
-          sources."lcid-2.0.0"
-          sources."locate-path-3.0.0"
-          sources."micromatch-3.1.10"
-          sources."normalize-path-2.1.1"
+          sources."ms-2.1.2"
           sources."opn-5.5.0"
-          sources."os-locale-3.1.0"
-          sources."p-limit-2.2.2"
-          sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
-          sources."readdirp-2.2.1"
+          sources."require-main-filename-2.0.0"
+          sources."schema-utils-1.0.0"
           sources."semver-6.3.0"
-          (sources."string-width-2.1.1" // {
+          (sources."string-width-3.1.0" // {
             dependencies = [
-              sources."strip-ansi-4.0.0"
+              sources."strip-ansi-5.2.0"
             ];
           })
           sources."strip-ansi-3.0.1"
           sources."supports-color-6.1.0"
-          sources."to-regex-range-2.1.1"
           sources."which-module-2.0.0"
-          sources."yargs-12.0.5"
-          sources."yargs-parser-11.1.1"
+          (sources."wrap-ansi-5.1.0" // {
+            dependencies = [
+              sources."strip-ansi-5.2.0"
+            ];
+          })
+          sources."yargs-13.3.2"
+          sources."yargs-parser-13.1.2"
         ];
       })
       sources."webpack-log-2.0.0"
@@ -14927,10 +14625,10 @@ in
           sources."source-map-0.6.1"
         ];
       })
-      sources."websocket-driver-0.7.3"
-      sources."websocket-extensions-0.1.3"
-      sources."whatwg-fetch-2.0.4"
-      sources."which-1.3.1"
+      sources."websocket-driver-0.7.4"
+      sources."websocket-extensions-0.1.4"
+      sources."whatwg-fetch-3.0.0"
+      sources."which-2.0.2"
       sources."which-module-1.0.0"
       (sources."winston-2.1.1" // {
         dependencies = [
diff --git a/pkgs/development/compilers/elm/packages/patch-binwrap.nix b/pkgs/development/compilers/elm/packages/patch-binwrap.nix
deleted file mode 100644
index 30f54e6f5ac..00000000000
--- a/pkgs/development/compilers/elm/packages/patch-binwrap.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ writeScriptBin, stdenv, lib }:
-let
-  # Patching binwrap by NoOp script
-  binwrap = writeScriptBin "binwrap" ''
-    #! ${stdenv.shell}
-    echo "binwrap called: Returning 0"
-    return 0
-  '';
-  binwrap-install = writeScriptBin "binwrap-install" ''
-    #! ${stdenv.shell}
-    echo "binwrap-install called: Doing nothing"
-  '';
-in
-targets:
-pkg:
-pkg.override {
-  nativeBuildInputs = pkg.nativeBuildInputs ++ [ binwrap binwrap-install ];
-
-  # Manually install targets
-  # by symlinking binaries into `node_modules`
-  postInstall = let
-    binFile = module: lib.strings.removeSuffix ("-" + module.version) module.name;
-  in ''
-    ${lib.concatStrings (map (module: ''
-        echo "linking ${binFile module}"
-        ln -sf ${module}/bin/${binFile module} \
-            node_modules/${binFile module}/bin/${binFile module}
-    '') targets)}
-  '';
-}
diff --git a/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix b/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix
index 520a34afe58..f8f06e24f8b 100644
--- a/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix
+++ b/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix
@@ -1,8 +1,7 @@
-{ emscriptenVersion, stdenv, fetchFromGitHub, cmake, python, gtest, ... }:
+{ emscriptenVersion, stdenv, fetchFromGitHub, cmake, python, gtest, gccForLibs, ... }:
 
 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}";
@@ -36,13 +35,12 @@ stdenv.mkDerivation rec {
     "-DCLANG_INCLUDE_TESTS=ON"
   ] ++ (stdenv.lib.optional stdenv.isLinux
     # necessary for clang to find crtend.o
-    "-DGCC_INSTALL_PREFIX=${gcc}"
+    "-DGCC_INSTALL_PREFIX=${gccForLibs}"
   );
   enableParallelBuilding = true;
 
   passthru = {
     isClang = true;
-    inherit gcc;
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix
index afc8fbd7f49..c58457b71a4 100644
--- a/pkgs/development/compilers/flutter/default.nix
+++ b/pkgs/development/compilers/flutter/default.nix
@@ -6,26 +6,28 @@ let
     let files = builtins.attrNames (builtins.readDir dir);
     in map (f: dir + ("/" + f)) files;
 in {
-  stable = 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/lazarus.nix b/pkgs/development/compilers/fpc/lazarus.nix
index 5947b572cec..31a0727da90 100644
--- a/pkgs/development/compilers/fpc/lazarus.nix
+++ b/pkgs/development/compilers/fpc/lazarus.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchurl, makeWrapper
 , fpc, gtk2, glib, pango, atk, gdk-pixbuf
 , libXi, xorgproto, libX11, libXext
+, gdb, gnumake, binutils
 }:
 stdenv.mkDerivation rec {
   pname = "lazarus";
@@ -34,8 +35,12 @@ stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    wrapProgram $out/bin/startlazarus --prefix NIX_LDFLAGS ' ' "'$NIX_LDFLAGS'" \
-      --prefix LCL_PLATFORM ' ' "'$LCL_PLATFORM'"
+    wrapProgram $out/bin/startlazarus --prefix NIX_LDFLAGS ' ' \
+      "$(echo "$NIX_LDFLAGS" | sed -re 's/-rpath [^ ]+//g')" \
+      --prefix NIX_LDFLAGS_${binutils.suffixSalt} ' ' \
+      "$(echo "$NIX_LDFLAGS" | sed -re 's/-rpath [^ ]+//g')" \
+      --prefix LCL_PLATFORM ' ' "$LCL_PLATFORM" \
+      --prefix PATH ':' "${fpc}/bin:${gdb}/bin:${gnumake}/bin:${binutils}/bin"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/compilers/gambit/bootstrap.nix b/pkgs/development/compilers/gambit/bootstrap.nix
index 2fb9e3ce2fc..ec963ab3b8d 100644
--- a/pkgs/development/compilers/gambit/bootstrap.nix
+++ b/pkgs/development/compilers/gambit/bootstrap.nix
@@ -1,6 +1,10 @@
-{ stdenv, fetchurl, autoconf, gcc, coreutils, ... }:
+# This derivation is a reduced-functionality variant of Gambit stable,
+# used to compile the full version of Gambit stable *and* unstable.
 
-stdenv.mkDerivation {
+{ gccStdenv, lib, fetchurl, autoconf, gcc, coreutils, gambit-support, ... }:
+# As explained in build.nix, GCC compiles Gambit 10x faster than Clang, for code 3x better
+
+gccStdenv.mkDerivation {
   pname = "gambit-bootstrap";
   version = "4.9.3";
 
@@ -16,29 +20,25 @@ stdenv.mkDerivation {
            CPP=${gcc}/bin/cpp CXXCPP=${gcc}/bin/cpp LD=${gcc}/bin/ld \
            XMKMF=${coreutils}/bin/false
     unset CFLAGS LDFLAGS LIBS CPPFLAGS CXXFLAGS
-    ./configure --prefix=$out
+    ./configure --prefix=$out/gambit
   '';
 
   buildPhase = ''
     # Copy the (configured) sources now, not later, so we don't have to filter out
     # all the intermediate build products.
-    mkdir -p $out ; cp -rp . $out/
+    mkdir -p $out/gambit ; cp -rp . $out/gambit/
 
     # build the gsc-boot* compiler
-    make bootstrap
+    make -j$NIX_BUILD_CORES bootstrap
   '';
 
   installPhase = ''
-    cp -fa ./ $out/
+    cp -fa ./ $out/gambit/
   '';
 
   forceShare = [ "info" ];
 
-  meta = {
+  meta = gambit-support.meta // {
     description = "Optimizing Scheme to C compiler, bootstrap step";
-    homepage    = "http://gambitscheme.org";
-    license     = stdenv.lib.licenses.lgpl2;
-    platforms   = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin fare ];
   };
 }
diff --git a/pkgs/development/compilers/gambit/build.nix b/pkgs/development/compilers/gambit/build.nix
index e17241b6d98..c6a48bd744e 100644
--- a/pkgs/development/compilers/gambit/build.nix
+++ b/pkgs/development/compilers/gambit/build.nix
@@ -1,11 +1,13 @@
-{ stdenv, git, openssl, autoconf, pkgs, makeStaticLibraries, version, gcc, src, coreutils }:
+{ gccStdenv, lib, git, openssl, autoconf, pkgs, makeStaticLibraries, gcc, coreutils, gnused, gnugrep,
+  src, version, git-version,
+  gambit-support, optimizationSetting ? "-O1", gambit-params ? pkgs.gambit-support.stable-params }:
 
 # Note that according to a benchmark run by Marc Feeley on May 2018,
 # clang is 10x (with default settings) to 15% (with -O2) slower than GCC at compiling
 # Gambit output, producing code that is 3x slower. IIRC the benchmarks from Gambit@30,
 # the numbers were still heavily in favor of GCC in October 2019.
 # Thus we use GCC over clang, even on macOS.
-
+#
 # Also note that I (fare) just ran benchmarks from https://github.com/ecraven/r7rs-benchmarks
 # with Gambit 4.9.3 with -O1 vs -O2 vs -Os on Feb 2020. Which wins depends on the benchmark.
 # The fight is unclear between -O1 and -O2, where -O1 wins more often, by up to 17%,
@@ -13,29 +15,33 @@
 # However, -Os seems more consistent in winning slightly against both -O1 and -O2,
 # and is overall 15% faster than -O2. As for compile times, -O1 is fastest,
 # -Os is about 29%-33% slower than -O1, while -O2 is about 40%-50% slower than -O1.
-# Overall, -Os seems like the best choice, and that's what we now use.
+#
+# Overall, -Os seems like the best choice, but I care more about compile-time,
+# so I stick with -O1 (in the defaults above), which is also the default for Gambit.
 
-stdenv.mkDerivation rec {
-  pname = "gambit";
-  inherit version;
-  inherit src;
+gccStdenv.mkDerivation rec {
 
-  bootstrap = import ./bootstrap.nix ( pkgs );
+  pname = "gambit";
+  inherit src version git-version;
+  bootstrap = gambit-support.gambit-bootstrap;
 
   # TODO: if/when we can get all the library packages we depend on to have static versions,
   # we could use something like (makeStaticLibraries openssl) to enable creation
   # of statically linked binaries by gsc.
   buildInputs = [ git autoconf bootstrap openssl ];
 
+  # TODO: patch gambit's source so it has the full path to sed, grep, fgrep? Is there more?
+  # Or wrap relevant programs to add a suitable PATH ?
+  #runtimeDeps = [ gnused gnugrep ];
+
   configureFlags = [
     "--enable-single-host"
-    "--enable-c-opt=-Os"
+    "--enable-c-opt=${optimizationSetting}"
     "--enable-gcc-opts"
     "--enable-shared"
     "--enable-absolute-shared-libs" # Yes, NixOS will want an absolute path, and fix it.
-    "--enable-poll"
     "--enable-openssl"
-    "--enable-default-runtime-options=f8,-8,t8" # Default to UTF-8 for source and all I/O
+    "--enable-default-runtime-options=${gambit-params.defaultRuntimeOptions}"
     # "--enable-debug" # Nope: enables plenty of good stuff, but also the costly console.log
     # "--enable-multiple-versions" # Nope, NixOS already does version multiplexing
     # "--enable-guide"
@@ -50,14 +56,22 @@ stdenv.mkDerivation rec {
     # "--enable-coverage"
     # "--enable-inline-jumps"
     # "--enable-char-size=1" # default is 4
-  ];
+  ] ++
+    # due not enable poll on darwin due to https://github.com/gambit/gambit/issues/498
+    lib.optional (!gccStdenv.isDarwin) "--enable-poll";
 
   configurePhase = ''
-    export CC=${gcc}/bin/gcc CXX=${gcc}/bin/g++ \
-           CPP=${gcc}/bin/cpp CXXCPP=${gcc}/bin/cpp LD=${gcc}/bin/ld \
+    export CC=${gcc}/bin/gcc \
+           CXX=${gcc}/bin/g++ \
+           CPP=${gcc}/bin/cpp \
+           CXXCPP=${gcc}/bin/cpp \
+           LD=${gcc}/bin/ld \
            XMKMF=${coreutils}/bin/false
     unset CFLAGS LDFLAGS LIBS CPPFLAGS CXXFLAGS
-    ./configure --prefix=$out ${builtins.concatStringsSep " " configureFlags}
+
+    ${gambit-params.fix-stamp git-version}
+
+    ./configure --prefix=$out/gambit ${builtins.concatStringsSep " " configureFlags}
 
     # OS-specific paths are hardcoded in ./configure
     substituteInPlace config.status \
@@ -69,28 +83,26 @@ stdenv.mkDerivation rec {
   buildPhase = ''
     # Make bootstrap compiler, from release bootstrap
     mkdir -p boot &&
-    cp -rp ${bootstrap}/. boot/. &&
+    cp -rp ${bootstrap}/gambit/. boot/. &&
     chmod -R u+w boot &&
     cd boot &&
-    cp ../gsc/makefile.in ../gsc/*.scm gsc && # */
+    cp ../gsc/makefile.in ../gsc/*.scm gsc/ && # */
     ./configure &&
-    for i in lib gsi gsc ; do (cd $i ; make ) ; done &&
+    for i in lib gsi gsc ; do (cd $i ; make -j$NIX_BUILD_CORES) ; done &&
     cd .. &&
     cp boot/gsc/gsc gsc-boot &&
 
     # Now use the bootstrap compiler to build the real thing!
-    make -j2 from-scratch
+    make -j$NIX_BUILD_CORES from-scratch
+  '';
+
+  postInstall = ''
+    mkdir $out/bin
+    cd $out/bin
+    ln -s ../gambit/bin/* .
   '';
 
   doCheck = true;
 
-  meta = {
-    description = "Optimizing Scheme to C compiler";
-    homepage    = "http://gambitscheme.org";
-    license     = stdenv.lib.licenses.lgpl2;
-    # NB regarding platforms: only actually tested on Linux, *should* work everywhere,
-    # but *might* need adaptation e.g. on macOS.
-    platforms   = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin fare ];
-  };
+  meta = gambit-support.meta;
 }
diff --git a/pkgs/development/compilers/gambit/default.nix b/pkgs/development/compilers/gambit/default.nix
index 303f6a30aad..8f77daa4173 100644
--- a/pkgs/development/compilers/gambit/default.nix
+++ b/pkgs/development/compilers/gambit/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, callPackage, fetchurl }:
+{ callPackage, fetchurl }:
 
-callPackage ./build.nix {
+callPackage ./build.nix rec {
   version = "4.9.3";
+  git-version = version;
   src = fetchurl {
     url = "http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/source/gambit-v4_9_3.tgz";
     sha256 = "1p6172vhcrlpjgia6hsks1w4fl8rdyjf9xjh14wxfkv7dnx8a5hk";
   };
-  inherit stdenv;
 }
diff --git a/pkgs/development/compilers/gambit/gambit-support.nix b/pkgs/development/compilers/gambit/gambit-support.nix
new file mode 100644
index 00000000000..0e78831f2e4
--- /dev/null
+++ b/pkgs/development/compilers/gambit/gambit-support.nix
@@ -0,0 +1,33 @@
+{ pkgs, lib }:
+
+rec {
+  stable-params = {
+    defaultRuntimeOptions = "f8,-8,t8";
+    buildRuntimeOptions = "f8,-8,t8";
+    fix-stamp = git-version : "";
+  };
+
+  unstable-params = {
+    defaultRuntimeOptions = "iL,fL,-L,tL";
+    buildRuntimeOptions = "i8,f8,-8,t8";
+    fix-stamp = git-version : ''
+      substituteInPlace configure \
+        --replace "$(grep '^PACKAGE_VERSION=.*$' configure)" 'PACKAGE_VERSION="v${git-version}"' \
+        --replace "$(grep '^PACKAGE_STRING=.*$' configure)" 'PACKAGE_STRING="Gambit v${git-version}"' ;
+    '';
+  };
+
+  export-gambopt = params : "export GAMBOPT=${params.buildRuntimeOptions} ;";
+
+  gambit-bootstrap = import ./bootstrap.nix ( pkgs );
+
+  meta = {
+    description = "Optimizing Scheme to C compiler";
+    homepage    = "http://gambitscheme.org";
+    license     = lib.licenses.lgpl21; # dual, also asl20
+    # NB regarding platforms: continuously tested on Linux,
+    # tested on macOS once in a while, *should* work everywhere.
+    platforms   = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ thoughtpolice raskin fare ];
+  };
+}
diff --git a/pkgs/development/compilers/gambit/unstable.nix b/pkgs/development/compilers/gambit/unstable.nix
index 4c33c83c67b..7284e5b531d 100644
--- a/pkgs/development/compilers/gambit/unstable.nix
+++ b/pkgs/development/compilers/gambit/unstable.nix
@@ -1,13 +1,13 @@
-{ stdenv, callPackage, fetchFromGitHub }:
+{ callPackage, fetchFromGitHub, gambit-support }:
 
 callPackage ./build.nix {
-  version = "unstable-2020-02-24";
-# git-version = "4.9.3-979-gc69e9f70";
+  version = "unstable-2020-07-29";
+  git-version = "4.9.3-1232-gbba388b8";
   src = fetchFromGitHub {
     owner = "feeley";
     repo = "gambit";
-    rev = "c69e9f70dfdc6545353b135a5d5e2f9234f1e1cc";
-    sha256 = "1f69n7yzzdv3wpnjlrbck38xpa8115vbady43mc544l39ckklr0k";
+    rev = "bba388b80ca62a77883a8936d64b03316808696a";
+    sha256 = "0iqlp1mvxz8g32kqrqm0phnnp1i5c4jrapqh2wqwa8fh1vgnizg1";
   };
-  inherit stdenv;
+  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 5e0a25ea60b..ae723a14531 100644
--- a/pkgs/development/compilers/gcc/10/default.nix
+++ b/pkgs/development/compilers/gcc/10/default.nix
@@ -5,6 +5,7 @@
 , langObjCpp ? stdenv.targetPlatform.isDarwin
 , langGo ? false
 , profiledCompiler ? false
+, langJit ? false
 , staticCompiler ? false
 , enableShared ? true
 , enableLTO ? true
@@ -85,7 +86,7 @@ stdenv.mkDerivation ({
 
   inherit patches;
 
-  outputs = [ "out" "lib" "man" "info" ];
+  outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional (!langJit) "lib";
   setOutputFlags = false;
   NIX_NO_SELF_RPATH = true;
 
@@ -100,10 +101,10 @@ stdenv.mkDerivation ({
       --replace 'if (stdinc)' 'if (0)'
 
     substituteInPlace libgcc/config/t-slibgcc-darwin \
-      --replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name $lib/lib/\$(SHLIB_INSTALL_NAME)"
+      --replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name ''${!outputLib}/lib/\$(SHLIB_INSTALL_NAME)"
 
     substituteInPlace libgfortran/configure \
-      --replace "-install_name \\\$rpath/\\\$soname" "-install_name $lib/lib/\\\$soname"
+      --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
   '';
 
   postPatch = ''
@@ -202,6 +203,7 @@ stdenv.mkDerivation ({
       langGo
       langObjC
       langObjCpp
+      langJit
       ;
   };
 
@@ -237,8 +239,8 @@ stdenv.mkDerivation ({
     (import ../common/extra-target-flags.nix {
       inherit stdenv crossStageStatic libcCross threadsCross;
     })
-    EXTRA_TARGET_FLAGS
-    EXTRA_TARGET_LDFLAGS
+    EXTRA_FLAGS_FOR_TARGET
+    EXTRA_LDFLAGS_FOR_TARGET
     ;
 
   passthru = {
diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix
index 7e8870cf2e2..6a2c506b1bf 100644
--- a/pkgs/development/compilers/gcc/4.8/default.nix
+++ b/pkgs/development/compilers/gcc/4.8/default.nix
@@ -5,6 +5,7 @@
 , langJava ? false
 , langGo ? false
 , profiledCompiler ? false
+, langJit ? false
 , staticCompiler ? false
 , enableShared ? true
 , enableLTO ? true
@@ -212,6 +213,7 @@ stdenv.mkDerivation ({
       langGo
       langObjC
       langObjCpp
+      langJit
       ;
   };
 
@@ -262,8 +264,8 @@ stdenv.mkDerivation ({
     (import ../common/extra-target-flags.nix {
       inherit stdenv crossStageStatic libcCross threadsCross;
     })
-    EXTRA_TARGET_FLAGS
-    EXTRA_TARGET_LDFLAGS
+    EXTRA_FLAGS_FOR_TARGET
+    EXTRA_LDFLAGS_FOR_TARGET
     ;
 
   passthru = {
diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix
index dd448ccbe5f..6f4fd415fc0 100644
--- a/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/pkgs/development/compilers/gcc/4.9/default.nix
@@ -5,6 +5,7 @@
 , langJava ? false
 , langGo ? false
 , profiledCompiler ? false
+, langJit ? false
 , staticCompiler ? false
 , enableShared ? true
 , enableLTO ? true
@@ -62,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";
@@ -224,6 +226,7 @@ stdenv.mkDerivation ({
       langGo
       langObjC
       langObjCpp
+      langJit
       ;
   };
 
@@ -274,8 +277,8 @@ stdenv.mkDerivation ({
     (import ../common/extra-target-flags.nix {
       inherit stdenv crossStageStatic libcCross threadsCross;
     })
-    EXTRA_TARGET_FLAGS
-    EXTRA_TARGET_LDFLAGS
+    EXTRA_FLAGS_FOR_TARGET
+    EXTRA_LDFLAGS_FOR_TARGET
     ;
 
   passthru = {
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 c04e424b2fa..8e3f9634717 100644
--- a/pkgs/development/compilers/gcc/6/default.nix
+++ b/pkgs/development/compilers/gcc/6/default.nix
@@ -6,6 +6,7 @@
 , langJava ? false
 , langGo ? false
 , profiledCompiler ? false
+, langJit ? false
 , staticCompiler ? false
 , enableShared ? true
 , enableLTO ? true
@@ -63,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
@@ -119,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";
@@ -126,7 +132,7 @@ stdenv.mkDerivation ({
 
   inherit patches;
 
-  outputs = if langJava || langGo then ["out" "man" "info"]
+  outputs = if langJava || langGo || langJit then ["out" "man" "info"]
     else [ "out" "lib" "man" "info" ];
   setOutputFlags = false;
   NIX_NO_SELF_RPATH = true;
@@ -136,21 +142,17 @@ stdenv.mkDerivation ({
   hardeningDisable = [ "format" "pie" ];
 
   prePatch =
-    (stdenv.lib.optionalString (langJava || langGo) ''
-      export lib=$out
-    '')
-
     # This should kill all the stdinc frameworks that gcc and friends like to
     # insert into default search paths.
-    + stdenv.lib.optionalString hostPlatform.isDarwin ''
+    stdenv.lib.optionalString hostPlatform.isDarwin ''
       substituteInPlace gcc/config/darwin-c.c \
         --replace 'if (stdinc)' 'if (0)'
 
       substituteInPlace libgcc/config/t-slibgcc-darwin \
-        --replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name $lib/lib/\$(SHLIB_INSTALL_NAME)"
+        --replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name ''${!outputLib}/lib/\$(SHLIB_INSTALL_NAME)"
 
       substituteInPlace libgfortran/configure \
-        --replace "-install_name \\\$rpath/\\\$soname" "-install_name $lib/lib/\\\$soname"
+        --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
     '';
 
   postPatch =
@@ -185,7 +187,7 @@ 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 =
@@ -244,6 +246,7 @@ stdenv.mkDerivation ({
       langGo
       langObjC
       langObjCpp
+      langJit
       ;
   };
 
@@ -294,8 +297,8 @@ stdenv.mkDerivation ({
     (import ../common/extra-target-flags.nix {
       inherit stdenv crossStageStatic libcCross threadsCross;
     })
-    EXTRA_TARGET_FLAGS
-    EXTRA_TARGET_LDFLAGS
+    EXTRA_FLAGS_FOR_TARGET
+    EXTRA_LDFLAGS_FOR_TARGET
     ;
 
   passthru = {
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 2ae2f8e758c..dcd129ff25a 100644
--- a/pkgs/development/compilers/gcc/7/default.nix
+++ b/pkgs/development/compilers/gcc/7/default.nix
@@ -4,6 +4,7 @@
 , langObjCpp ? stdenv.targetPlatform.isDarwin
 , langGo ? false
 , profiledCompiler ? false
+, langJit ? false
 , staticCompiler ? false
 , enableShared ? true
 , enableLTO ? true
@@ -52,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 [
@@ -90,7 +93,7 @@ stdenv.mkDerivation ({
 
   inherit patches;
 
-  outputs = [ "out" "lib" "man" "info" ];
+  outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional (!langJit) "lib";
   setOutputFlags = false;
   NIX_NO_SELF_RPATH = true;
 
@@ -105,10 +108,10 @@ stdenv.mkDerivation ({
       --replace 'if (stdinc)' 'if (0)'
 
     substituteInPlace libgcc/config/t-slibgcc-darwin \
-      --replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name $lib/lib/\$(SHLIB_INSTALL_NAME)"
+      --replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name ''${!outputLib}/lib/\$(SHLIB_INSTALL_NAME)"
 
     substituteInPlace libgfortran/configure \
-      --replace "-install_name \\\$rpath/\\\$soname" "-install_name $lib/lib/\\\$soname"
+      --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
   '';
 
   postPatch = ''
@@ -206,6 +209,7 @@ stdenv.mkDerivation ({
       langGo
       langObjC
       langObjCpp
+      langJit
       ;
   } ++ optional (targetPlatform.isAarch64) "--enable-fix-cortex-a53-843419"
     ++ optional targetPlatform.isNetBSD "--disable-libcilkrts"
@@ -245,8 +249,8 @@ stdenv.mkDerivation ({
     (import ../common/extra-target-flags.nix {
       inherit stdenv crossStageStatic libcCross threadsCross;
     })
-    EXTRA_TARGET_FLAGS
-    EXTRA_TARGET_LDFLAGS
+    EXTRA_FLAGS_FOR_TARGET
+    EXTRA_LDFLAGS_FOR_TARGET
     ;
 
   passthru = {
diff --git a/pkgs/development/compilers/gcc/8/default.nix b/pkgs/development/compilers/gcc/8/default.nix
index c2edba0ba90..5a6e20c0f41 100644
--- a/pkgs/development/compilers/gcc/8/default.nix
+++ b/pkgs/development/compilers/gcc/8/default.nix
@@ -4,6 +4,7 @@
 , langObjCpp ? stdenv.targetPlatform.isDarwin
 , langGo ? false
 , profiledCompiler ? false
+, langJit ? false
 , staticCompiler ? false
 , enableShared ? true
 , enableLTO ? true
@@ -82,7 +83,7 @@ stdenv.mkDerivation ({
 
   inherit patches;
 
-  outputs = [ "out" "lib" "man" "info" ];
+  outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional (!langJit) "lib";
   setOutputFlags = false;
   NIX_NO_SELF_RPATH = true;
 
@@ -97,10 +98,10 @@ stdenv.mkDerivation ({
       --replace 'if (stdinc)' 'if (0)'
 
     substituteInPlace libgcc/config/t-slibgcc-darwin \
-      --replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name $lib/lib/\$(SHLIB_INSTALL_NAME)"
+      --replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name ''${!outputLib}/lib/\$(SHLIB_INSTALL_NAME)"
 
     substituteInPlace libgfortran/configure \
-      --replace "-install_name \\\$rpath/\\\$soname" "-install_name $lib/lib/\\\$soname"
+      --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
   '';
 
   postPatch = ''
@@ -197,6 +198,7 @@ stdenv.mkDerivation ({
       langGo
       langObjC
       langObjCpp
+      langJit
       ;
   };
 
@@ -232,8 +234,8 @@ stdenv.mkDerivation ({
     (import ../common/extra-target-flags.nix {
       inherit stdenv crossStageStatic libcCross threadsCross;
     })
-    EXTRA_TARGET_FLAGS
-    EXTRA_TARGET_LDFLAGS
+    EXTRA_FLAGS_FOR_TARGET
+    EXTRA_LDFLAGS_FOR_TARGET
     ;
 
   passthru = {
diff --git a/pkgs/development/compilers/gcc/9/default.nix b/pkgs/development/compilers/gcc/9/default.nix
index 5785782a671..5f0a69583a1 100644
--- a/pkgs/development/compilers/gcc/9/default.nix
+++ b/pkgs/development/compilers/gcc/9/default.nix
@@ -3,8 +3,10 @@
 , langAda ? false
 , langObjC ? stdenv.targetPlatform.isDarwin
 , langObjCpp ? stdenv.targetPlatform.isDarwin
+, langD ? false
 , langGo ? false
 , profiledCompiler ? false
+, langJit ? false
 , staticCompiler ? false
 , enableShared ? true
 , enableLTO ? true
@@ -29,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;
 
@@ -58,6 +65,7 @@ let majorVersion = "9";
         sha256 = ""; # TODO: uncomment and check hash when available.
       }) */
       ++ optional langAda ../gnat-cflags.patch
+      ++ optional langD ../libphobos.patch
       ++ optional langFortran ../gfortran-driving.patch
       ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
       ++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch {
@@ -85,7 +93,7 @@ stdenv.mkDerivation ({
 
   inherit patches;
 
-  outputs = [ "out" "lib" "man" "info" ];
+  outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional (!langJit) "lib";
   setOutputFlags = false;
   NIX_NO_SELF_RPATH = true;
 
@@ -100,10 +108,10 @@ stdenv.mkDerivation ({
       --replace 'if (stdinc)' 'if (0)'
 
     substituteInPlace libgcc/config/t-slibgcc-darwin \
-      --replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name $lib/lib/\$(SHLIB_INSTALL_NAME)"
+      --replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name ''${!outputLib}/lib/\$(SHLIB_INSTALL_NAME)"
 
     substituteInPlace libgfortran/configure \
-      --replace "-install_name \\\$rpath/\\\$soname" "-install_name $lib/lib/\\\$soname"
+      --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
   '';
 
   postPatch = ''
@@ -136,10 +144,10 @@ stdenv.mkDerivation ({
         )
     else "")
       + stdenv.lib.optionalString targetPlatform.isAvr ''
-	        makeFlagsArray+=(
-	           'LIMITS_H_TEST=false'
-	        )
-	      '';
+          makeFlagsArray+=(
+             'LIMITS_H_TEST=false'
+          )
+        '';
 
   inherit noSysDirs staticCompiler crossStageStatic
     libcCross crossMingw;
@@ -196,12 +204,14 @@ stdenv.mkDerivation ({
       enableShared
 
       langC
+      langD
       langCC
       langFortran
       langAda
       langGo
       langObjC
       langObjCpp
+      langJit
       ;
   };
 
@@ -235,14 +245,14 @@ stdenv.mkDerivation ({
 
   inherit
     (import ../common/extra-target-flags.nix {
-      inherit stdenv crossStageStatic libcCross threadsCross;
+      inherit stdenv crossStageStatic langD libcCross threadsCross;
     })
-    EXTRA_TARGET_FLAGS
-    EXTRA_TARGET_LDFLAGS
+    EXTRA_FLAGS_FOR_TARGET
+    EXTRA_LDFLAGS_FOR_TARGET
     ;
 
   passthru = {
-    inherit langC langCC langObjC langObjCpp langAda langFortran langGo version;
+    inherit langC langCC langObjC langObjCpp langAda langFortran langGo langD version;
     isGNU = true;
   };
 
diff --git a/pkgs/development/compilers/gcc/builder.sh b/pkgs/development/compilers/gcc/builder.sh
index 8d03e010464..45587020844 100644
--- a/pkgs/development/compilers/gcc/builder.sh
+++ b/pkgs/development/compilers/gcc/builder.sh
@@ -25,12 +25,12 @@ echo "\$LIBRARY_PATH is \`${LIBRARY_PATH-}'"
 if test "$noSysDirs" = "1"; then
 
     declare \
-        EXTRA_BUILD_FLAGS EXTRA_FLAGS EXTRA_TARGET_FLAGS \
-        EXTRA_BUILD_LDFLAGS EXTRA_TARGET_LDFLAGS
+        EXTRA_FLAGS_FOR_BUILD EXTRA_FLAGS EXTRA_FLAGS_FOR_TARGET \
+        EXTRA_LDFLAGS_FOR_BUILD EXTRA_LDFLAGS_FOR_TARGET
 
     # Extract flags from Bintools Wrappers
-    for pre in 'BUILD_' ''; do
-        curBintools="NIX_${pre}BINTOOLS"
+    for post in '_FOR_BUILD' ''; do
+        curBintools="NIX_BINTOOLS${post}"
 
         declare -a extraLDFlags=()
         if [[ -e "${!curBintools}/nix-support/orig-libc" ]]; then
@@ -48,20 +48,20 @@ if test "$noSysDirs" = "1"; then
         extraLDFlags=("-L$libc_libdir" "-rpath" "$libc_libdir"
                       "${extraLDFlags[@]}")
         for i in "${extraLDFlags[@]}"; do
-            declare EXTRA_${pre}LDFLAGS+=" -Wl,$i"
+            declare EXTRA_LDFLAGS${post}+=" -Wl,$i"
         done
     done
 
     # Extract flags from CC Wrappers
-    for pre in 'BUILD_' ''; do
-        curCC="NIX_${pre}CC"
-        curFIXINC="NIX_${pre}FIXINC_DUMMY"
+    for post in '_FOR_BUILD' ''; do
+        curCC="NIX_CC${post}"
+        curFIXINC="NIX_FIXINC_DUMMY${post}"
 
         declare -a extraFlags=()
         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")"
@@ -69,11 +69,11 @@ if test "$noSysDirs" = "1"; then
             # Use *real* header files, otherwise a limits.h is generated that
             # does not include Libc's limits.h (notably missing SSIZE_MAX,
             # which breaks the build).
-            declare NIX_${pre}FIXINC_DUMMY="$libc_devdir/include"
+            declare NIX_FIXINC_DUMMY${post}="$libc_devdir/include"
         else
             # Hack: support impure environments.
             extraFlags=("-isystem" "/usr/include")
-            declare NIX_${pre}FIXINC_DUMMY=/usr/include
+            declare NIX_FIXINC_DUMMY${post}=/usr/include
         fi
 
         extraFlags=("-I${!curFIXINC}" "${extraFlags[@]}")
@@ -89,13 +89,13 @@ if test "$noSysDirs" = "1"; then
             extraFlags=("-O2" "${extraFlags[@]}")
         fi
 
-        declare EXTRA_${pre}FLAGS="${extraFlags[*]}"
+        declare EXTRA_FLAGS${post}="${extraFlags[*]}"
     done
 
     if test -z "${targetConfig-}"; then
         # host = target, so the flags are the same
-        EXTRA_TARGET_FLAGS="$EXTRA_FLAGS"
-        EXTRA_TARGET_LDFLAGS="$EXTRA_LDFLAGS"
+        EXTRA_FLAGS_FOR_TARGET="$EXTRA_FLAGS"
+        EXTRA_LDFLAGS_FOR_TARGET="$EXTRA_LDFLAGS"
     fi
 
     # CFLAGS_FOR_TARGET are needed for the libstdc++ configure script to find
@@ -103,31 +103,31 @@ if test "$noSysDirs" = "1"; then
     # FLAGS_FOR_TARGET are needed for the target libraries to receive the -Bxxx
     # for the startfiles.
     makeFlagsArray+=(
-        "BUILD_SYSTEM_HEADER_DIR=$NIX_BUILD_FIXINC_DUMMY"
-        "SYSTEM_HEADER_DIR=$NIX_BUILD_FIXINC_DUMMY"
+        "BUILD_SYSTEM_HEADER_DIR=$NIX_FIXINC_DUMMY_FOR_BUILD"
+        "SYSTEM_HEADER_DIR=$NIX_FIXINC_DUMMY_FOR_BUILD"
         "NATIVE_SYSTEM_HEADER_DIR=$NIX_FIXINC_DUMMY"
 
-        "LDFLAGS_FOR_BUILD=$EXTRA_BUILD_LDFLAGS"
+        "LDFLAGS_FOR_BUILD=$EXTRA_LDFLAGS_FOR_BUILD"
         #"LDFLAGS=$EXTRA_LDFLAGS"
-        "LDFLAGS_FOR_TARGET=$EXTRA_TARGET_LDFLAGS"
+        "LDFLAGS_FOR_TARGET=$EXTRA_LDFLAGS_FOR_TARGET"
 
-        "CFLAGS_FOR_BUILD=$EXTRA_BUILD_FLAGS $EXTRA_BUILD_LDFLAGS"
-        "CXXFLAGS_FOR_BUILD=$EXTRA_BUILD_FLAGS $EXTRA_BUILD_LDFLAGS"
-        "FLAGS_FOR_BUILD=$EXTRA_BUILD_FLAGS $EXTRA_BUILD_LDFLAGS"
+        "CFLAGS_FOR_BUILD=$EXTRA_FLAGS_FOR_BUILD $EXTRA_LDFLAGS_FOR_BUILD"
+        "CXXFLAGS_FOR_BUILD=$EXTRA_FLAGS_FOR_BUILD $EXTRA_LDFLAGS_FOR_BUILD"
+        "FLAGS_FOR_BUILD=$EXTRA_FLAGS_FOR_BUILD $EXTRA_LDFLAGS_FOR_BUILD"
 
         # It seems there is a bug in GCC 5
         #"CFLAGS=$EXTRA_FLAGS $EXTRA_LDFLAGS"
         #"CXXFLAGS=$EXTRA_FLAGS $EXTRA_LDFLAGS"
 
-        "CFLAGS_FOR_TARGET=$EXTRA_TARGET_FLAGS $EXTRA_TARGET_LDFLAGS"
-        "CXXFLAGS_FOR_TARGET=$EXTRA_TARGET_FLAGS $EXTRA_TARGET_LDFLAGS"
-        "FLAGS_FOR_TARGET=$EXTRA_TARGET_FLAGS $EXTRA_TARGET_LDFLAGS"
+        "CFLAGS_FOR_TARGET=$EXTRA_FLAGS_FOR_TARGET $EXTRA_LDFLAGS_FOR_TARGET"
+        "CXXFLAGS_FOR_TARGET=$EXTRA_FLAGS_FOR_TARGET $EXTRA_LDFLAGS_FOR_TARGET"
+        "FLAGS_FOR_TARGET=$EXTRA_FLAGS_FOR_TARGET $EXTRA_LDFLAGS_FOR_TARGET"
     )
 
     if test -z "${targetConfig-}"; then
         makeFlagsArray+=(
             "BOOT_CFLAGS=$EXTRA_FLAGS $EXTRA_LDFLAGS"
-            "BOOT_LDFLAGS=$EXTRA_TARGET_FLAGS $EXTRA_TARGET_LDFLAGS"
+            "BOOT_LDFLAGS=$EXTRA_FLAGS_FOR_TARGET $EXTRA_LDFLAGS_FOR_TARGET"
         )
     fi
 
@@ -202,34 +202,34 @@ postConfigure() {
 
 preInstall() {
     mkdir -p "$out/${targetConfig}/lib"
-    mkdir -p "$lib/${targetConfig}/lib"
+    mkdir -p "${!outputLib}/${targetConfig}/lib"
     # Make ‘lib64’ symlinks to ‘lib’.
     if [ -n "$is64bit" -a -z "$enableMultilib" ]; then
         ln -s lib "$out/${targetConfig}/lib64"
-        ln -s lib "$lib/${targetConfig}/lib64"
+        ln -s lib "${!outputLib}/${targetConfig}/lib64"
     fi
 }
 
 
 postInstall() {
-    # Move runtime libraries to $lib.
-    moveToOutput "${targetConfig+$targetConfig/}lib/lib*.so*" "$lib"
-    moveToOutput "${targetConfig+$targetConfig/}lib/lib*.la"  "$lib"
-    moveToOutput "${targetConfig+$targetConfig/}lib/lib*.dylib" "$lib"
-    moveToOutput "${targetConfig+$targetConfig/}lib/lib*.dll.a" "$lib"
-    moveToOutput "share/gcc-*/python" "$lib"
-
-    for i in "$lib/${targetConfig}"/lib/*.{la,py}; do
-        substituteInPlace "$i" --replace "$out" "$lib"
+    # Move runtime libraries to lib output.
+    moveToOutput "${targetConfig+$targetConfig/}lib/lib*.so*" "${!outputLib}"
+    moveToOutput "${targetConfig+$targetConfig/}lib/lib*.la"  "${!outputLib}"
+    moveToOutput "${targetConfig+$targetConfig/}lib/lib*.dylib" "${!outputLib}"
+    moveToOutput "${targetConfig+$targetConfig/}lib/lib*.dll.a" "${!outputLib}"
+    moveToOutput "share/gcc-*/python" "${!outputLib}"
+
+    for i in "${!outputLib}/${targetConfig}"/lib/*.{la,py}; do
+        substituteInPlace "$i" --replace "$out" "${!outputLib}"
     done
 
     if [ -n "$enableMultilib" ]; then
-        moveToOutput "${targetConfig+$targetConfig/}lib64/lib*.so*" "$lib"
-        moveToOutput "${targetConfig+$targetConfig/}lib64/lib*.la"  "$lib"
-        moveToOutput "${targetConfig+$targetConfig/}lib64/lib*.dylib" "$lib"
+        moveToOutput "${targetConfig+$targetConfig/}lib64/lib*.so*" "${!outputLib}"
+        moveToOutput "${targetConfig+$targetConfig/}lib64/lib*.la"  "${!outputLib}"
+        moveToOutput "${targetConfig+$targetConfig/}lib64/lib*.dylib" "${!outputLib}"
 
-        for i in "$lib/${targetConfig}"/lib64/*.{la,py}; do
-            substituteInPlace "$i" --replace "$out" "$lib"
+        for i in "${!outputLib}/${targetConfig}"/lib64/*.{la,py}; do
+            substituteInPlace "$i" --replace "$out" "${!outputLib}"
         done
     fi
 
@@ -251,10 +251,10 @@ postInstall() {
     fi
 
     if type "install_name_tool"; then
-        for i in "$lib"/lib/*.*.dylib; do
+        for i in "${!outputLib}"/lib/*.*.dylib; 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,$lib,"`
+              new_path=`echo "$old_path" | sed "s,$out,${!outputLib},"`
               install_name_tool -change "$old_path" "$new_path" "$i" || true
             done
         done
diff --git a/pkgs/development/compilers/gcc/common/configure-flags.nix b/pkgs/development/compilers/gcc/common/configure-flags.nix
index c78a2814895..7e0d691412b 100644
--- a/pkgs/development/compilers/gcc/common/configure-flags.nix
+++ b/pkgs/development/compilers/gcc/common/configure-flags.nix
@@ -14,17 +14,29 @@
 
 , langC
 , langCC
+, langD ? false
 , langFortran
 , langJava ? false, javaAwtGtk ? false, javaAntlr ? null, javaEcj ? null
 , langAda ? false
 , langGo
 , langObjC
 , langObjCpp
+, langJit
 }:
 
 assert cloog != null -> stdenv.lib.versionOlder version "5";
 assert langJava -> stdenv.lib.versionOlder version "7";
 
+# Note [Windows Exception Handling]
+# sjlj (short jump long jump) exception handling makes no sense on x86_64,
+# it's forcably slowing programs down as it produces a constant overhead.
+# On x86_64 we have SEH (Structured Exception Handling) and we should use
+# that. On i686, we do not have SEH, and have to use sjlj with dwarf2.
+# Hence it's now conditional on x86_32 (i686 is 32bit).
+#
+# ref: https://stackoverflow.com/questions/15670169/what-is-difference-between-sjlj-vs-dwarf-vs-seh
+
+
 let
   inherit (stdenv)
     buildPlatform hostPlatform targetPlatform
@@ -56,8 +68,16 @@ let
       "--with-gnu-as"
       "--with-gnu-ld"
       "--disable-debug"
-      "--enable-sjlj-exceptions"
       "--disable-win32-registry"
+      "--enable-hash-synchronization"
+      "--enable-libssp"
+      "--disable-nls"
+      # To keep ABI compatibility with upstream mingw-w64
+      "--enable-fully-dynamic-string"      
+    ] ++ lib.optionals (crossMingw && targetPlatform.isx86_32) [
+      # See Note [Windows Exception Handling]
+      "--enable-sjlj-exceptions"
+      "--with-dwarf2"
     ] else [
       (if crossDarwin then "--with-sysroot=${lib.getLib libcCross}/share/sysroot"
        else                "--with-headers=${lib.getDev libcCross}${libcCross.incdir or "/include"}")
@@ -78,14 +98,6 @@ let
     ] ++ lib.optionals (targetPlatform.libc == "musl") [
       # musl at least, disable: https://git.buildroot.net/buildroot/commit/?id=873d4019f7fb00f6a80592224236b3ba7d657865
       "--disable-libmpx"
-    ] ++ lib.optionals crossMingw [
-      "--enable-sjlj-exceptions"
-      "--enable-hash-synchronization"
-      "--enable-libssp"
-      "--disable-nls"
-      "--with-dwarf2"
-      # To keep ABI compatibility with upstream mingw-w64
-      "--enable-fully-dynamic-string"
     ] ++ lib.optional (targetPlatform.libc == "newlib") "--with-newlib"
       ++ lib.optional (targetPlatform.libc == "avrlibc") "--with-avrlibc"
     );
@@ -114,6 +126,7 @@ let
         lib.concatStrings (lib.intersperse ","
           (  lib.optional langC        "c"
           ++ lib.optional langCC       "c++"
+          ++ lib.optional langD        "d"
           ++ lib.optional langFortran  "fortran"
           ++ lib.optional langJava     "java"
           ++ lib.optional langAda      "ada"
@@ -121,6 +134,7 @@ let
           ++ lib.optional langObjC     "objc"
           ++ lib.optional langObjCpp   "obj-c++"
           ++ lib.optionals crossDarwin [ "objc" "obj-c++" ]
+          ++ lib.optional langJit      "jit"
           )
         )
       }"
@@ -173,6 +187,12 @@ let
       "--disable-symvers"
       "libat_cv_have_ifunc=no"
       "--disable-gnu-indirect-function"
+    ] 
+    ++ lib.optionals langJit [
+      "--enable-host-shared"
+    ] 
+    ++ lib.optionals (langD) [
+      "--with-target-system-zlib=yes"
     ]
   ;
 
diff --git a/pkgs/development/compilers/gcc/common/extra-target-flags.nix b/pkgs/development/compilers/gcc/common/extra-target-flags.nix
index bce9a8d4738..0a5a7a1bc1c 100644
--- a/pkgs/development/compilers/gcc/common/extra-target-flags.nix
+++ b/pkgs/development/compilers/gcc/common/extra-target-flags.nix
@@ -1,21 +1,24 @@
-{ stdenv, crossStageStatic, libcCross, threadsCross }:
+{ stdenv, crossStageStatic, langD ? false, libcCross, threadsCross }:
 
 let
   inherit (stdenv) lib hostPlatform targetPlatform;
 in
 
 {
-  EXTRA_TARGET_FLAGS = let
-      mkFlags = dep: lib.optionals (targetPlatform != hostPlatform && dep != null) ([
-        "-idirafter ${lib.getDev dep}${dep.incdir or "/include"}"
+  # For non-cross builds these flags are currently assigned in builder.sh.
+  # It would be good to consolidate the generation of makeFlags
+  # ({C,CXX,LD}FLAGS_FOR_{BUILD,TARGET}, etc...) at some point.
+  EXTRA_FLAGS_FOR_TARGET = let
+      mkFlags = dep: langD: lib.optionals (targetPlatform != hostPlatform && dep != null && !langD) ([
+        "-O2 -idirafter ${lib.getDev dep}${dep.incdir or "/include"}"
       ] ++ stdenv.lib.optionals (! crossStageStatic) [
         "-B${lib.getLib dep}${dep.libdir or "/lib"}"
       ]);
-    in mkFlags libcCross
-    ++ lib.optionals (!crossStageStatic) (mkFlags threadsCross)
+    in mkFlags libcCross langD
+    ++ lib.optionals (!crossStageStatic) (mkFlags threadsCross langD)
     ;
 
-  EXTRA_TARGET_LDFLAGS = let
+  EXTRA_LDFLAGS_FOR_TARGET = let
       mkFlags = dep: lib.optionals (targetPlatform != hostPlatform && dep != null) ([
         "-Wl,-L${lib.getLib dep}${dep.libdir or "/lib"}"
       ] ++ (if crossStageStatic then [
diff --git a/pkgs/development/compilers/gcc/common/pre-configure.nix b/pkgs/development/compilers/gcc/common/pre-configure.nix
index 85b854e19b9..fff49014800 100644
--- a/pkgs/development/compilers/gcc/common/pre-configure.nix
+++ b/pkgs/development/compilers/gcc/common/pre-configure.nix
@@ -17,3 +17,35 @@ 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
+''
diff --git a/pkgs/development/compilers/gcc/libphobos.patch b/pkgs/development/compilers/gcc/libphobos.patch
new file mode 100644
index 00000000000..a16ea5416ff
--- /dev/null
+++ b/pkgs/development/compilers/gcc/libphobos.patch
@@ -0,0 +1,119 @@
+diff --git a/Makefile.in b/Makefile.in
+index a375471..83c5ecb 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -804,7 +804,7 @@ BASE_FLAGS_TO_PASS = \
+ 	"STAGE1_LANGUAGES=$(STAGE1_LANGUAGES)" \
+ 	"GNATBIND=$(GNATBIND)" \
+ 	"GNATMAKE=$(GNATMAKE)" \
+-	"GDC=$(GDC)" \
++	"`echo 'GDC=$(GDC)' | sed -e 's/-idirafter [^ ]*//g'`" \
+ 	"GDCFLAGS=$(GDCFLAGS)" \
+ 	"AR_FOR_TARGET=$(AR_FOR_TARGET)" \
+ 	"AS_FOR_TARGET=$(AS_FOR_TARGET)" \
+@@ -817,7 +817,7 @@ BASE_FLAGS_TO_PASS = \
+ 	"GFORTRAN_FOR_TARGET=$(GFORTRAN_FOR_TARGET)" \
+ 	"GOC_FOR_TARGET=$(GOC_FOR_TARGET)" \
+ 	"GOCFLAGS_FOR_TARGET=$(GOCFLAGS_FOR_TARGET)" \
+-	"GDC_FOR_TARGET=$(GDC_FOR_TARGET)" \
++	"`echo 'GDC_FOR_TARGET=$(GDC_FOR_TARGET)' | sed -e 's/-idirafter [^ ]*//g'`" \
+ 	"GDCFLAGS_FOR_TARGET=$(GDCFLAGS_FOR_TARGET)" \
+ 	"LD_FOR_TARGET=$(LD_FOR_TARGET)" \
+ 	"LIPO_FOR_TARGET=$(LIPO_FOR_TARGET)" \
+@@ -890,7 +890,7 @@ EXTRA_HOST_FLAGS = \
+ 	'DLLTOOL=$(DLLTOOL)' \
+ 	'GFORTRAN=$(GFORTRAN)' \
+ 	'GOC=$(GOC)' \
+-	'GDC=$(GDC)' \
++	"`echo 'GDC=$(GDC)' | sed -e 's/-idirafter [^ ]*//g'`" \
+ 	'LD=$(LD)' \
+ 	'LIPO=$(LIPO)' \
+ 	'NM=$(NM)' \
+@@ -966,8 +966,11 @@ EXTRA_TARGET_FLAGS = \
+ 	'STAGE1_LDFLAGS=$$(POSTSTAGE1_LDFLAGS)' \
+ 	'STAGE1_LIBS=$$(POSTSTAGE1_LIBS)' \
+ 	"TFLAGS=$$TFLAGS"
++EXTRA_TARGET_FLAGS_D = \
++	"`echo $(EXTRA_TARGET_FLAGS) | sed -e 's/-idirafter [^ ]*//g'`"
+ 
+ TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)
++TARGET_FLAGS_TO_PASS_D = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS_D)
+ 
+ # Flags to pass down to gcc.  gcc builds a library, libgcc.a, so it
+ # unfortunately needs the native compiler and the target ar and
+@@ -47285,7 +47288,7 @@ check-target-libphobos:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libphobos && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)
++	  $(MAKE) $(TARGET_FLAGS_TO_PASS_D)   check)
+ 
+ @endif target-libphobos
+ 
+@@ -47300,7 +47303,7 @@ install-target-libphobos: installdirs
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libphobos && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)
++	  $(MAKE) $(TARGET_FLAGS_TO_PASS_D)  install)
+ 
+ @endif target-libphobos
+ 
+@@ -47315,7 +47318,7 @@ install-strip-target-libphobos: installdirs
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libphobos && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)
++	  $(MAKE) $(TARGET_FLAGS_TO_PASS_D)  install-strip)
+ 
+ @endif target-libphobos
+ 
+diff --git a/Makefile.tpl b/Makefile.tpl
+index 41cae58..b3d32e7 100644
+--- a/Makefile.tpl
++++ b/Makefile.tpl
+@@ -721,8 +721,11 @@ EXTRA_TARGET_FLAGS = \
+ 	'STAGE1_LDFLAGS=$$(POSTSTAGE1_LDFLAGS)' \
+ 	'STAGE1_LIBS=$$(POSTSTAGE1_LIBS)' \
+ 	"TFLAGS=$$TFLAGS"
++EXTRA_TARGET_FLAGS_D = \
++	"`echo $(EXTRA_TARGET_FLAGS) | sed -e 's/-idirafter [^ ]*//g'`"
+ 
+ TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)
++TARGET_FLAGS_TO_PASS_D = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS_D)
+ 
+ # Flags to pass down to gcc.  gcc builds a library, libgcc.a, so it
+ # unfortunately needs the native compiler and the target ar and
+diff --git a/libphobos/Makefile.in b/libphobos/Makefile.in
+index e894417..2d18dcb 100644
+--- a/libphobos/Makefile.in
++++ b/libphobos/Makefile.in
+@@ -365,6 +365,7 @@ AM_MAKEFLAGS = \
+ 	"LIBCFLAGS=$(LIBCFLAGS)" \
+ 	"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
+ 	"MAKE=$(MAKE)" \
++	"`echo 'MAKEFLAGS=$(MAKEFLAGS)' | sed -e 's/-j[0-9]+/-j1/'`" \
+ 	"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
+ 	"PICFLAG=$(PICFLAG)" \
+ 	"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
+@@ -694,6 +695,8 @@ uninstall-am:
+ 
+ .PRECIOUS: Makefile
+ 
++.NOTPARALLEL:
++
+ # GNU Make needs to see an explicit $(MAKE) variable in the command it
+ # runs to enable its job server during parallel builds.  Hence the
+ # comments below.
+diff --git a/libphobos/configure b/libphobos/configure
+index b3cb5f3..25adf2b 100755
+--- a/libphobos/configure
++++ b/libphobos/configure
+@@ -5122,6 +5122,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ 
++GDC=`$as_echo "$GDC" | sed -e 's/-idirafter [^ ]*//g'`
+ 
+ ac_ext=d
+ ac_compile='$GDC -c $GDCFLAGS conftest.$ac_ext >&5'
diff --git a/pkgs/development/compilers/gcc/libstdc++-hook.sh b/pkgs/development/compilers/gcc/libstdc++-hook.sh
deleted file mode 100644
index 60c610a8e7a..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_${role_pre}CXXSTDLIB_COMPILE+=" -isystem $(echo -n @gcc@/include/c++/*) -isystem $(echo -n @gcc@/include/c++/*)/@targetConfig@"
diff --git a/pkgs/development/compilers/gerbil/build.nix b/pkgs/development/compilers/gerbil/build.nix
index 21c2936fa0f..8297dafff8e 100644
--- a/pkgs/development/compilers/gerbil/build.nix
+++ b/pkgs/development/compilers/gerbil/build.nix
@@ -1,34 +1,34 @@
-{ stdenv, makeStaticLibraries,
-  coreutils, rsync, bash,
+{ pkgs, gccStdenv, lib, coreutils, bash, # makeStaticLibraries,
   openssl, zlib, sqlite, libxml2, libyaml, libmysqlclient, lmdb, leveldb, postgresql,
-  version, git-version, gambit, src }:
+  version, git-version,
+  gambit-support,
+  gambit ? pkgs.gambit, gambit-params ? pkgs.gambit-support.stable-params, src }:
+
+# We use Gambit, that works 10x better with GCC than Clang. See ../gambit/build.nix
+let stdenv = gccStdenv; in
 
 stdenv.mkDerivation rec {
   pname = "gerbil";
   inherit version;
   inherit src;
 
-  # Use makeStaticLibraries to enable creation of statically linked binaries
   buildInputs_libraries = [ openssl zlib sqlite libxml2 libyaml libmysqlclient lmdb leveldb postgresql ];
-  buildInputs_staticLibraries = map makeStaticLibraries buildInputs_libraries;
 
-  buildInputs = [ gambit rsync bash ]
-    ++ buildInputs_libraries ++ buildInputs_staticLibraries;
+  # TODO: either fix all of Gerbil's dependencies to provide static libraries,
+  # or give up and delete all tentative support for static libraries.
+  #buildInputs_staticLibraries = map makeStaticLibraries buildInputs_libraries;
+
+  buildInputs = [ gambit ]
+    ++ buildInputs_libraries; # ++ buildInputs_staticLibraries;
 
   NIX_CFLAGS_COMPILE = "-I${libmysqlclient}/include/mysql -L${libmysqlclient}/lib/mysql";
 
   postPatch = ''
-    echo '(define (gerbil-version-string) "v${git-version}")' > src/gerbil/runtime/gx-version.scm
-
-    patchShebangs .
-
+    echo '(define (gerbil-version-string) "v${git-version}")' > src/gerbil/runtime/gx-version.scm ;
+    patchShebangs . ;
     grep -Fl '#!/usr/bin/env' `find . -type f -executable` | while read f ; do
-      substituteInPlace "$f" --replace '#!/usr/bin/env' '#!${coreutils}/bin/env'
-    done
-    grep -Fl '"gsc"' `find . -type f -name '*.s*'` | while read f ; do
-      substituteInPlace "$f" --replace '"gsc"' '"${gambit}/bin/gsc"'
-    done
-    substituteInPlace "etc/gerbil.el" --replace '"gxc"' "\"$out/bin/gxc\""
+      substituteInPlace "$f" --replace '#!/usr/bin/env' '#!${coreutils}/bin/env' ;
+    done ;
 '';
 
 ## TODO: make static compilation work.
@@ -47,22 +47,31 @@ stdenv.mkDerivation rec {
 # LEVELDB=${makeStaticLibraries leveldb}/lib/libleveldb.a
 # EOF
 
+  configurePhase = ''
+    (cd src && ./configure \
+      --prefix=$out/gerbil \
+      --with-gambit=${gambit}/gambit \
+      --enable-libxml \
+      --enable-libyaml \
+      --enable-zlib \
+      --enable-sqlite \
+      --enable-mysql \
+      --enable-lmdb \
+      --enable-leveldb)
+  '';
+
   buildPhase = ''
     runHook preBuild
 
-    # Enable all optional libraries
-    substituteInPlace "src/std/build-features.ss" --replace '#f' '#t'
-
-    # Enable autodetection of a default GERBIL_HOME
-    for i in src/gerbil/boot/gx-init-exe.scm src/gerbil/boot/gx-init.scm ; do
-      substituteInPlace "$i" --replace '(getenv "GERBIL_HOME" #f)' "(getenv \"GERBIL_HOME\" \"$out\")"
-    done
-    for i in src/gerbil/boot/gxi-init.scm src/gerbil/compiler/driver.ss src/gerbil/runtime/gx-gambc.scm src/std/build.ss src/tools/build.ss ; do
-      substituteInPlace "$i" --replace '(getenv "GERBIL_HOME")' "(getenv \"GERBIL_HOME\" \"$out\")"
-    done
-
     # gxprof testing uses $HOME/.cache/gerbil/gxc
-    export HOME=$$PWD
+    export HOME=$PWD
+    export GERBIL_BUILD_CORES=$NIX_BUILD_CORES
+    export GERBIL_GXC=$PWD/bin/gxc
+    export GERBIL_BASE=$PWD
+    export GERBIL_HOME=$PWD
+    export GERBIL_PATH=$PWD/lib
+    export PATH=$PWD/bin:$PATH
+    ${gambit-support.export-gambopt gambit-params}
 
     # Build, replacing make by build.sh
     ( cd src && sh build.sh )
@@ -72,19 +81,9 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
-    mkdir -p $out/
-    cp -fa bin lib etc doc $out/
-
-    cat > $out/bin/gxi <<EOF
-#!${bash}/bin/bash -e
-export GERBIL_HOME=$out
-case "\$1" in -:*) GSIOPTIONS=\$1 ; shift ;; esac
-if [[ \$# = 0 ]] ; then
-  exec ${gambit}/bin/gsi \$GSIOPTIONS \$GERBIL_HOME/lib/gxi-init \$GERBIL_HOME/lib/gxi-interactive -
-else
-  exec ${gambit}/bin/gsi \$GSIOPTIONS \$GERBIL_HOME/lib/gxi-init "\$@"
-fi
-EOF
+    mkdir -p $out/gerbil $out/bin
+    (cd src; ./install)
+    (cd $out/bin ; ln -s ../gerbil/bin/* .)
     runHook postInstall
   '';
 
@@ -93,10 +92,10 @@ EOF
   meta = {
     description = "Gerbil Scheme";
     homepage    = "https://github.com/vyzo/gerbil";
-    license     = stdenv.lib.licenses.lgpl2;
+    license     = lib.licenses.lgpl21; # also asl20, like Gambit
     # NB regarding platforms: regularly tested on Linux, only occasionally on macOS.
     # Please report success and/or failure to fare.
-    platforms   = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ fare ];
+    platforms   = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ fare ];
   };
 }
diff --git a/pkgs/development/compilers/gerbil/default.nix b/pkgs/development/compilers/gerbil/default.nix
index 8c6b1a87cd3..3367ae581b2 100644
--- a/pkgs/development/compilers/gerbil/default.nix
+++ b/pkgs/development/compilers/gerbil/default.nix
@@ -1,14 +1,12 @@
-{ stdenv, callPackage, fetchFromGitHub, gambit }:
+{ callPackage, fetchFromGitHub }:
 
 callPackage ./build.nix rec {
-  version = "0.15.1";
-  git-version = "0.15.1";
-  inherit gambit;
+  version = "0.16";
+  git-version = version;
   src = fetchFromGitHub {
     owner = "vyzo";
     repo = "gerbil";
     rev = "v${version}";
-    sha256 = "0qpqms66hz41wwhxb1z0fnzj96ivkm7qi9h9d7lhlr3fsxm1kp1n";
+    sha256 = "0vng0kxpnwsg8jbjdpyn4sdww36jz7zfpfbzayg9sdpz6bjxjy0f";
   };
-  inherit stdenv;
 }
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
new file mode 100644
index 00000000000..e3f4bb0e0d2
--- /dev/null
+++ b/pkgs/development/compilers/gerbil/gerbil-support.nix
@@ -0,0 +1,73 @@
+{ pkgs, gccStdenv, callPackage, fetchFromGitHub }:
+# See ../gambit/build.nix regarding gccStdenv
+
+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.
+  gerbilLoadPath =
+    gerbilInputs : builtins.concatStringsSep ":" (map (x : x + "/gerbil/lib") gerbilInputs);
+
+  # Use this function to create a Gerbil library. See gerbil-utils as an example.
+  gerbilPackage = {
+    pname, version, src, meta, gerbil-package,
+    git-version ? "", version-path ? "",
+    gerbil ? pkgs.gerbil-unstable,
+    gambit-params ? pkgs.gambit-support.stable-params,
+    gerbilInputs ? [],
+    buildInputs ? [],
+    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}.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 . ;
+      '';
+
+      postConfigure = ''
+        export GERBIL_BUILD_CORES=$NIX_BUILD_CORES
+        export GERBIL_PATH=$PWD/.build
+        export GERBIL_LOADPATH=${gerbilLoadPath gerbilInputs}
+        ${pkgs.gambit-support.export-gambopt gambit-params}
+      '';
+
+      buildPhase = ''
+        runHook preBuild
+        ./build.ss
+        runHook postBuild
+      '';
+
+      installPhase = ''
+        runHook preInstall
+        mkdir -p $out/gerbil/lib
+        cp -fa .build/lib $out/gerbil/
+        bins=(.build/bin/*)
+        if [ 0 -lt ''${#bins} ] ; then
+          cp -fa .build/bin $out/gerbil/
+          mkdir $out/bin
+          cd $out/bin
+          ln -s ../gerbil/bin/* .
+        fi
+        runHook postInstall
+      '';
+
+      dontFixup = true;
+    };
+}
diff --git a/pkgs/development/compilers/gerbil/gerbil-utils.nix b/pkgs/development/compilers/gerbil/gerbil-utils.nix
new file mode 100644
index 00000000000..7e1a9bf0557
--- /dev/null
+++ b/pkgs/development/compilers/gerbil/gerbil-utils.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub, gerbil-unstable, gerbil-support, gambit-support }:
+
+gerbil-support.gerbilPackage {
+  pname = "gerbil-utils";
+  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";
+  softwareName = "Gerbil-utils";
+  src = fetchFromGitHub {
+    owner = "fare";
+    repo = "gerbil-utils";
+    rev = "7e7d053ec5e78cc58d38cb03baf554d83b31b0c6";
+    sha256 = "078vqdcddfavqq0d9pw430iz1562cgx1ck3fw6dpwxjkyc6m4bms";
+  };
+  meta = {
+    description = "Gerbil Clan: Community curated Collection of Common Utilities";
+    homepage    = "https://github.com/fare/gerbil-utils";
+    license     = lib.licenses.lgpl21;
+    platforms   = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ fare ];
+  };
+}
diff --git a/pkgs/development/compilers/gerbil/unstable.nix b/pkgs/development/compilers/gerbil/unstable.nix
index eb78eed35ee..7b54438b5c9 100644
--- a/pkgs/development/compilers/gerbil/unstable.nix
+++ b/pkgs/development/compilers/gerbil/unstable.nix
@@ -1,15 +1,15 @@
-{ stdenv, callPackage, fetchFromGitHub, gambit, gambit-unstable }:
+{ callPackage, fetchFromGitHub, gambit-unstable, gambit-support }:
 
-callPackage ./build.nix {
-  version = "unstable-2020-02-27";
-  git-version = "0.16-DEV-493-g1ffb74db";
-  #gambit = gambit-unstable;
-  gambit = gambit;
+callPackage ./build.nix rec {
+  version = "unstable-2020-08-02";
+  git-version = "0.16-120-g3f248e13";
   src = fetchFromGitHub {
     owner = "vyzo";
     repo = "gerbil";
-    rev = "1ffb74db5ffd49b4bad751586cef5e619c891d41";
-    sha256 = "1szmdp8lvy5gpcwn5bpa7x383m6vywl35xa7hz9a5vs1rq4w2097";
+    rev = "3f248e139dfa11be74284fc812253fbecafbaf31";
+    sha256 = "18v192cypj0nbmfcyflm8qnwp27qwy65m0a19ggs47wwbzhgvgqh";
   };
-  inherit stdenv;
+  inherit gambit-support;
+  gambit = gambit-unstable;
+  gambit-params = gambit-support.unstable-params;
 }
diff --git a/pkgs/development/compilers/ghc/8.10.1.nix b/pkgs/development/compilers/ghc/8.10.1.nix
index c70efe1fdef..3e51796bd56 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
@@ -65,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
@@ -94,7 +99,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";
   };
 
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-binary.nix b/pkgs/development/compilers/ghc/8.6.5-binary.nix
index 97793d91289..41af279e83f 100644
--- a/pkgs/development/compilers/ghc/8.6.5-binary.nix
+++ b/pkgs/development/compilers/ghc/8.6.5-binary.nix
@@ -78,18 +78,6 @@ stdenv.mkDerivation rec {
       patchShebangs ghc-${version}/configure
     '' +
 
-    # Strip is harmful, see also below. It's important that this happens
-    # first. The GHC Cabal build system makes use of strip by default and
-    # has hardcoded paths to /usr/bin/strip in many places. We replace
-    # those below, making them point to our dummy script.
-    ''
-      mkdir "$TMP/bin"
-      for i in strip; do
-        echo '#! ${stdenv.shell}' > "$TMP/bin/$i"
-        chmod +x "$TMP/bin/$i"
-      done
-      PATH="$TMP/bin:$PATH"
-    '' +
     # We have to patch the GMP paths for the integer-gmp package.
     ''
       find . -name integer-gmp.buildinfo \
@@ -125,17 +113,13 @@ stdenv.mkDerivation rec {
   ] ++ stdenv.lib.optional stdenv.isDarwin "--with-gcc=${./gcc-clang-wrapper.sh}"
     ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "--disable-ld-override";
 
-  # Stripping combined with patchelf breaks the executables (they die
-  # with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
-  dontStrip = true;
-
   # No building is necessary, but calling make without flags ironically
   # calls install-strip ...
   dontBuild = true;
 
   # On Linux, use patchelf to modify the executables so that they can
   # find editline/gmp.
-  preFixup = stdenv.lib.optionalString stdenv.isLinux ''
+  postFixup = stdenv.lib.optionalString stdenv.isLinux ''
     for p in $(find "$out" -type f -executable); do
       if isELF "$p"; then
         echo "Patchelfing $p"
diff --git a/pkgs/development/compilers/ghc/8.8.2.nix b/pkgs/development/compilers/ghc/8.8.2.nix
index 305226b3407..fc55e8bdd53 100644
--- a/pkgs/development/compilers/ghc/8.8.2.nix
+++ b/pkgs/development/compilers/ghc/8.8.2.nix
@@ -94,7 +94,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";
   };
 
diff --git a/pkgs/development/compilers/ghc/8.8.3.nix b/pkgs/development/compilers/ghc/8.8.3.nix
index b199dc34fa3..aa4c378f200 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
@@ -65,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
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..60c0f2cdd9d
--- /dev/null
+++ b/pkgs/development/compilers/ghc/8.8.4.nix
@@ -0,0 +1,247 @@
+{ 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 = ''
+    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"}
+    CrossCompilePrefix = ${targetPrefix}
+    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
+  '' + 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}" > 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;
+  };
+
+} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
+  dontStrip = true;
+  dontPatchELF = true;
+  noAuditTmpdir = true;
+})
diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix
index a15ef7f7dbf..67459b146a3 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.20200731"
 , # 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;
@@ -64,13 +67,15 @@ let
     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"}
     CrossCompilePrefix = ${targetPrefix}
     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
@@ -81,7 +86,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 +108,8 @@ stdenv.mkDerivation (rec {
 
   src = fetchgit {
     url = "https://gitlab.haskell.org/ghc/ghc.git/";
-    rev = "40c71c2cf38b4e134d81b7184a4d5e02949ae70c";
-    sha256 = "04h9rcyzm9w3an1z00hjs062dp7dl19b8pkyxjsypr7a2i9dmvkb";
+    rev = "380638a33691ba43fdcd2e18bca636750e5f66f1";
+    sha256 = "029cgiyhddvwnx5zx31i0vgj13zsvzb8fna99zr6ifscz6x7rid1";
   };
 
   enableParallelBuilding = true;
@@ -173,7 +178,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) [
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/default.nix b/pkgs/development/compilers/ghcjs-ng/default.nix
index 7b6fbc460a9..6d56c410aab 100644
--- a/pkgs/development/compilers/ghcjs-ng/default.nix
+++ b/pkgs/development/compilers/ghcjs-ng/default.nix
@@ -102,6 +102,7 @@ in stdenv.mkDerivation {
 
     inherit passthru;
 
-    meta.platforms = passthru.bootPkgs.ghc.meta.platforms;
+    meta.broken = true; # build does not succeed
+    meta.platforms = lib.platforms.none;  # 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..e7d9287e0d5 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.10.1";
 
   src = fetchFromGitHub {
     owner = "gleam-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "05n8a7b63i9946fvbxphfh8n6ib20qnbv44ghlzcjwca9qvlx7i7";
+    sha256 = "0cgs0halxhp2hh3sf0nvy5ybllhraxircxxbfj9jbs3446dzflbk";
   };
 
-  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+  nativeBuildInputs = [ pkg-config ];
 
-  cargoSha256 = "1ga5dinkmibkg53bfr6vc0i4bbgyn2y3d5qjf5bd965c1v7ba1jl";
+  buildInputs = [ openssl ] ++
+    stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+  cargoSha256 = "12lpxighjk3ydfa288llj6xqas7z9fbfjpwnl870189awvp2fjxx";
 
   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 a39ee351f21..04af8e91251 100644
--- a/pkgs/development/compilers/go-jsonnet/default.nix
+++ b/pkgs/development/compilers/go-jsonnet/default.nix
@@ -2,18 +2,20 @@
 
 buildGoModule rec {
   pname = "go-jsonnet";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "go-jsonnet";
     rev = "v${version}";
-    sha256 = "0l6cwky2xl7m8nnc9abp76bhkdcf2ldbbv3r8p30xv2yr5wd1j8i";
+    sha256 = "17606gc75wnkm64am4hmlv7m3fy2hi8rnzadp6nrgpcd6rl26m83";
   };
 
-  modSha256 = "1b6hz5a66hhlzpcv1badxr1b4nmk4lw0507d5jks7lqzvvwd0sxq";
+  vendorSha256 = "0nsm4gsbbn8myz4yfi6m7qc3iizhdambsr18iks0clkdn3mi2jn1";
 
-  subPackages = [ "cmd/jsonnet" ];
+  doCheck = false;
+
+  subPackages = [ "cmd/jsonnet" "cmd/jsonnetfmt" ];
 
   meta = with lib; {
     description = "An implementation of Jsonnet in pure Go";
diff --git a/pkgs/development/compilers/go/1.14.nix b/pkgs/development/compilers/go/1.14.nix
index 9ee5b6fa624..0bf972ff80f 100644
--- a/pkgs/development/compilers/go/1.14.nix
+++ b/pkgs/development/compilers/go/1.14.nix
@@ -2,6 +2,7 @@
 , perl, which, pkgconfig, patch, procps, pcre, cacert, Security, Foundation
 , mailcap, runtimeShell
 , buildPackages, pkgsTargetTarget
+, fetchpatch
 }:
 
 let
@@ -30,11 +31,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.14.2";
+  version = "1.14.7";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "0z3zxsnhmsxplnwfw1l9gr6jgglwp50sr3p5njknv9i6jzk89plq";
+    sha256 = "1qrhdjdzi1knchk1wmlaqgkqhxkq2niw14b931rhqrk36m1r4hq6";
   };
 
   # perl is used for testing go vet
@@ -137,6 +138,12 @@ stdenv.mkDerivation rec {
     ./go-1.9-skip-flaky-20072.patch
     ./skip-external-network-tests.patch
     ./skip-nohup-tests.patch
+
+    # fix rare TestDontCacheBrokenHTTP2Conn failure
+    (fetchpatch {
+      url = "https://github.com/golang/go/commit/ea1437a8cdf6bb3c2d2447833a5d06dbd75f7ae4.patch";
+      sha256 = "1lyzy4nf8c34a966vw45j3j7hzpvncq2gqspfxffzkyh17xd8sgy";
+    })
   ] ++ [
     # breaks under load: https://github.com/golang/go/issues/25628
     (if stdenv.isAarch32
@@ -186,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
   '';
 
@@ -229,8 +239,6 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  setupHook = ./setup-hook.sh;
-
   disallowedReferences = [ goBootstrap ];
 
   meta = with stdenv.lib; {
@@ -238,7 +246,7 @@ stdenv.mkDerivation rec {
     homepage = "http://golang.org/";
     description = "The Go Programming language";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ cstrahan orivej mic92 rvolosatovs kalbasit Frostman ];
+    maintainers = teams.golang.members;
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/compilers/go/1.15.nix b/pkgs/development/compilers/go/1.15.nix
new file mode 100644
index 00000000000..b3851741c69
--- /dev/null
+++ b/pkgs/development/compilers/go/1.15.nix
@@ -0,0 +1,255 @@
+{ stdenv, fetchurl, tzdata, iana-etc, runCommand
+, perl, which, pkgconfig, patch, procps, pcre, cacert, Security, Foundation
+, mailcap, runtimeShell
+, buildPackages, pkgsTargetTarget
+, fetchpatch
+}:
+
+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.15";
+
+  src = fetchurl {
+    url = "https://dl.google.com/go/go${version}.src.tar.gz";
+    sha256 = "0fmc53pamxxbvmp5bcvh1fhffirpv3gz6y7qz97iacpmsiz8yhv9";
+  };
+
+  # 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
+    # Fails on aarch64
+    sed -i '/TestFallocate/aif true \{ return\; \}' src/cmd/link/internal/ld/fallocate_test.go
+    # Skip this test since ssl patches mess it up.
+    sed -i '/TestLoadSystemCertsLoadColonSeparatedDirs/aif true \{ return\; \}' src/crypto/x509/root_unix_test.go
+    # Disable another PIE test which breaks.
+    sed -i '/TestTrivialPIE/aif true \{ return\; \}' misc/cgo/testshared/shared_test.go
+    # Disable the BuildModePie test
+    sed -i '/TestBuildmodePIE/aif true \{ return\; \}' src/cmd/go/go_test.go
+    # Disable the unix socket test
+    sed -i '/TestShutdownUnix/aif true \{ return\; \}' src/net/net_test.go
+    # Disable the hostname test
+    sed -i '/TestHostname/aif true \{ return\; \}' src/os/os_test.go
+    # ParseInLocation fails the test
+    sed -i '/TestParseInSydney/aif true \{ return\; \}' src/time/format_test.go
+    # Remove the api check as it never worked
+    sed -i '/src\/cmd\/api\/run.go/ireturn nil' src/cmd/dist/test.go
+    # Remove the coverage test as we have removed this utility
+    sed -i '/TestCoverageWithCgo/aif true \{ return\; \}' src/cmd/go/go_test.go
+    # Remove the timezone naming test
+    sed -i '/TestLoadFixed/aif true \{ return\; \}' src/time/time_test.go
+    # Remove disable setgid test
+    sed -i '/TestRespectSetgidDir/aif true \{ return\; \}' src/cmd/go/internal/work/build_test.go
+    # Remove cert tests that conflict with NixOS's cert resolution
+    sed -i '/TestEnvVars/aif true \{ return\; \}' src/crypto/x509/root_unix_test.go
+    # TestWritevError hangs sometimes
+    sed -i '/TestWritevError/aif true \{ return\; \}' src/net/writev_test.go
+    # TestVariousDeadlines fails sometimes
+    sed -i '/TestVariousDeadlines/aif true \{ return\; \}' src/net/timeout_test.go
+
+    sed -i 's,/etc/protocols,${iana-etc}/etc/protocols,' src/net/lookup_unix.go
+    sed -i 's,/etc/services,${iana-etc}/etc/services,' src/net/port_unix.go
+
+    # Disable cgo lookup tests not works, they depend on resolver
+    rm src/net/cgo_unix_test.go
+
+  '' + optionalString stdenv.isLinux ''
+    # prepend the nix path to the zoneinfo files but also leave the original value for static binaries
+    # that run outside a nix server
+    sed -i 's,\"/usr/share/zoneinfo/,"${tzdata}/share/zoneinfo/\"\,\n\t&,' src/time/zoneinfo_unix.go
+
+  '' + optionalString stdenv.isAarch32 ''
+    echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash
+  '' + optionalString stdenv.isDarwin ''
+    substituteInPlace src/race.bash --replace \
+      "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true
+    sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go
+    sed -i 's,"/etc","'"$TMPDIR"'",' src/os/os_test.go
+    sed -i 's,/_go_os_test,'"$TMPDIR"'/_go_os_test,' src/os/path_test.go
+
+    sed -i '/TestChdirAndGetwd/aif true \{ return\; \}' src/os/os_test.go
+    sed -i '/TestCredentialNoSetGroups/aif true \{ return\; \}' src/os/exec/exec_posix_test.go
+    sed -i '/TestRead0/aif true \{ return\; \}' src/os/os_test.go
+    sed -i '/TestSystemRoots/aif true \{ return\; \}' src/crypto/x509/root_darwin_test.go
+
+    sed -i '/TestGoInstallRebuildsStalePackagesInOtherGOPATH/aif true \{ return\; \}' src/cmd/go/go_test.go
+    sed -i '/TestBuildDashIInstallsDependencies/aif true \{ return\; \}' src/cmd/go/go_test.go
+
+    sed -i '/TestDisasmExtld/aif true \{ return\; \}' src/cmd/objdump/objdump_test.go
+
+    sed -i 's/unrecognized/unknown/' src/cmd/link/internal/ld/lib.go
+
+    # TestCurrent fails because Current is not implemented on Darwin
+    sed -i 's/TestCurrent/testCurrent/g' src/os/user/user_test.go
+    sed -i 's/TestLookup/testLookup/g' src/os/user/user_test.go
+
+    touch $TMPDIR/group $TMPDIR/hosts $TMPDIR/passwd
+  '';
+
+  patches = [
+    ./remove-tools-1.11.patch
+    ./ssl-cert-file-1.15.patch
+    ./remove-test-pie-1.15.patch
+    ./creds-test.patch
+    ./go-1.9-skip-flaky-19608.patch
+    ./go-1.9-skip-flaky-20072.patch
+    ./skip-external-network-tests-1.15.patch
+    ./skip-nohup-tests.patch
+    ./skip-cgo-tests-1.15.patch
+  ] ++ [
+    # breaks under load: https://github.com/golang/go/issues/25628
+    (if stdenv.isAarch32
+    then ./skip-test-extra-files-on-aarch32-1.14.patch
+    else ./skip-test-extra-files-on-386-1.14.patch)
+  ];
+
+  postPatch = ''
+    find . -name '*.orig' -exec rm {} ';'
+  '';
+
+  GOOS = stdenv.targetPlatform.parsed.kernel.name;
+  GOARCH = goarch stdenv.targetPlatform;
+  # GOHOSTOS/GOHOSTARCH must match the building system, not the host system.
+  # Go will nevertheless build a for host system that we will copy over in
+  # the install phase.
+  GOHOSTOS = stdenv.buildPlatform.parsed.kernel.name;
+  GOHOSTARCH = goarch stdenv.buildPlatform;
+
+  # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those
+  # to be different from CC/CXX
+  CC_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
+      "${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
+
+    ${optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
+    # Independent from host/target, CC should produce code for the building system.
+    # We only set it when cross-compiling.
+    export CC=${buildPackages.stdenv.cc}/bin/cc
+    ''}
+    ulimit -a
+  '';
+
+  postBuild = ''
+    (cd src && ./make.bash)
+  '';
+
+  doCheck = stdenv.hostPlatform == stdenv.targetPlatform && !stdenv.isDarwin;
+
+  checkPhase = ''
+    runHook preCheck
+    (cd src && HOME=$TMPDIR GOCACHE=$TMPDIR/go-cache ./run.bash --no-rebuild)
+    runHook postCheck
+  '';
+
+  preInstall = ''
+    rm -r pkg/obj
+    # Contains the wrong perl shebang when cross compiling,
+    # since it is not used for anything we can deleted as well.
+    rm src/regexp/syntax/make_perl_groups.pl
+  '' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then ''
+    mv bin/*_*/* bin
+    rmdir bin/*_*
+    ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
+      rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH}
+    ''}
+  '' else if (stdenv.hostPlatform != stdenv.targetPlatform) then ''
+    rm -rf bin/*_*
+    ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
+      rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH}
+    ''}
+  '' else "");
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $GOROOT_FINAL
+    cp -a bin pkg src lib misc api doc $GOROOT_FINAL
+    ln -s $GOROOT_FINAL/bin $out/bin
+    runHook postInstall
+  '';
+
+  disallowedReferences = [ goBootstrap ];
+
+  meta = with stdenv.lib; {
+    branch = "1.15";
+    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.4.nix b/pkgs/development/compilers/go/1.4.nix
index fc3fb0ad0e5..af125d60ed0 100644
--- a/pkgs/development/compilers/go/1.4.nix
+++ b/pkgs/development/compilers/go/1.4.nix
@@ -151,8 +151,6 @@ stdenv.mkDerivation rec {
     ./all.bash
   '';
 
-  setupHook = ./setup-hook.sh;
-
   meta = with stdenv.lib; {
     branch = "1.4";
     homepage = "http://golang.org/";
diff --git a/pkgs/development/compilers/go/remove-test-pie-1.13.patch b/pkgs/development/compilers/go/remove-test-pie-1.15.patch
index 05f18b813f9..f00685feba9 100644
--- a/pkgs/development/compilers/go/remove-test-pie-1.13.patch
+++ b/pkgs/development/compilers/go/remove-test-pie-1.15.patch
@@ -1,13 +1,13 @@
 diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go
-index f63c94697c..f02eff7064 100644
+index e1cd4965c3..66bf980fc6 100644
 --- a/src/cmd/dist/test.go
 +++ b/src/cmd/dist/test.go
-@@ -574,29 +574,6 @@ func (t *tester) registerTests() {
+@@ -584,29 +584,6 @@ func (t *tester) registerTests() {
  		})
  	}
  
 -	// Test internal linking of PIE binaries where it is supported.
--	if goos == "linux" && (goarch == "amd64" || goarch == "arm64") {
+-	if t.internalLinkPIE() {
 -		t.tests = append(t.tests, distTest{
 -			name:    "pie_internal",
 -			heading: "internal linking of -buildmode=pie",
@@ -17,7 +17,7 @@ index f63c94697c..f02eff7064 100644
 -			},
 -		})
 -		// Also test a cgo package.
--		if t.cgoEnabled {
+-		if t.cgoEnabled && t.internalLink() {
 -			t.tests = append(t.tests, distTest{
 -				name:    "pie_internal_cgo",
 -				heading: "internal linking of -buildmode=pie",
diff --git a/pkgs/development/compilers/go/setup-hook.sh b/pkgs/development/compilers/go/setup-hook.sh
deleted file mode 100644
index 7dce15eeb10..00000000000
--- a/pkgs/development/compilers/go/setup-hook.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-addToGoPath() {
-    addToSearchPath GOPATH $1/share/go
-}
-
-addEnvHooks "$targetOffset" addToGoPath
diff --git a/pkgs/development/compilers/go/skip-cgo-tests-1.15.patch b/pkgs/development/compilers/go/skip-cgo-tests-1.15.patch
new file mode 100644
index 00000000000..945d3ef8d12
--- /dev/null
+++ b/pkgs/development/compilers/go/skip-cgo-tests-1.15.patch
@@ -0,0 +1,13 @@
+diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go
+index e1cd4965c3..0980d044df 100644
+--- a/src/cmd/dist/test.go
++++ b/src/cmd/dist/test.go
+@@ -1136,7 +1136,7 @@ func (t *tester) cgoTest(dt *distTest) error {
+ 					t.addCmd(dt, "misc/cgo/test", t.goTest(), "-buildmode=pie", "-ldflags=-linkmode=internal")
+ 				}
+ 				t.addCmd(dt, "misc/cgo/testtls", t.goTest(), "-buildmode=pie")
+-				t.addCmd(dt, "misc/cgo/nocgo", t.goTest(), "-buildmode=pie")
++				//t.addCmd(dt, "misc/cgo/nocgo", t.goTest(), "-buildmode=pie")
+ 			}
+ 		}
+ 	}
diff --git a/pkgs/development/compilers/go/skip-external-network-tests-1.15.patch b/pkgs/development/compilers/go/skip-external-network-tests-1.15.patch
new file mode 100644
index 00000000000..0ea1050cd8e
--- /dev/null
+++ b/pkgs/development/compilers/go/skip-external-network-tests-1.15.patch
@@ -0,0 +1,13 @@
+diff --git a/src/net/dial_test.go b/src/net/dial_test.go
+index 01582489de..5b5faa5424 100644
+--- a/src/net/dial_test.go
++++ b/src/net/dial_test.go
+@@ -990,6 +990,8 @@ func TestDialerControl(t *testing.T) {
+ // except that it won't skip testing on non-mobile builders.
+ func mustHaveExternalNetwork(t *testing.T) {
+ 	t.Helper()
++	t.Skipf("Nix sandbox does not have networking")
++
+ 	mobile := runtime.GOOS == "android" || runtime.GOOS == "darwin" && runtime.GOARCH == "arm64"
+ 	if testenv.Builder() == "" || mobile {
+ 		testenv.MustHaveExternalNetwork(t)
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
new file mode 100644
index 00000000000..1884c681ca3
--- /dev/null
+++ b/pkgs/development/compilers/go/ssl-cert-file-1.15.patch
@@ -0,0 +1,76 @@
+diff --git a/src/crypto/x509/root_darwin_amd64.go b/src/crypto/x509/root_darwin_amd64.go
+index ce88de025e..258ecc45d1 100644
+--- a/src/crypto/x509/root_darwin_amd64.go
++++ b/src/crypto/x509/root_darwin_amd64.go
+@@ -10,6 +10,7 @@ import (
+ 	"bytes"
+ 	macOS "crypto/x509/internal/macos"
+ 	"fmt"
++	"io/ioutil"
+ 	"os"
+ 	"strings"
+ )
+@@ -25,6 +26,14 @@ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate
+ var loadSystemRootsWithCgo func() (*CertPool, error)
+ 
+ func loadSystemRoots() (*CertPool, error) {
++	if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
++		data, err := ioutil.ReadFile(file)
++		if err == nil {
++			roots := NewCertPool()
++			roots.AppendCertsFromPEM(data)
++			return roots, nil
++		}
++	}
+ 	var trustedRoots []*Certificate
+ 	untrustedRoots := make(map[string]bool)
+ 
+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
+ 
++import (
++	"io/ioutil"
++	"os"
++)
++
+ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate, err error) {
+ 	return nil, nil
+ }
+@@ -14,6 +19,14 @@ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate
+ var loadSystemRootsWithCgo func() (*CertPool, error)
+ 
+ func loadSystemRoots() (*CertPool, error) {
++	if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
++		data, err := ioutil.ReadFile(file)
++		if err == nil {
++			roots := NewCertPool()
++			roots.AppendCertsFromPEM(data)
++			return roots, nil
++		}
++	}
+ 	p := NewCertPool()
+ 	p.AppendCertsFromPEM([]byte(systemRootsPEM))
+ 	return p, nil
+diff --git a/src/crypto/x509/root_unix.go b/src/crypto/x509/root_unix.go
+index b48e618a65..195c1ff25a 100644
+--- a/src/crypto/x509/root_unix.go
++++ b/src/crypto/x509/root_unix.go
+@@ -42,6 +42,13 @@ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate
+ 
+ func loadSystemRoots() (*CertPool, error) {
+ 	roots := NewCertPool()
++	if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
++		data, err := ioutil.ReadFile(file)
++		if err == nil {
++			roots.AppendCertsFromPEM(data)
++			return roots, nil
++		}
++	}
+ 
+ 	files := certFiles
+ 	if f := os.Getenv(certFileEnv); f != "" {
diff --git a/pkgs/development/compilers/graalvm/default.nix b/pkgs/development/compilers/graalvm/default.nix
index 244ee4c010e..337e0f735eb 100644
--- a/pkgs/development/compilers/graalvm/default.nix
+++ b/pkgs/development/compilers/graalvm/default.nix
@@ -462,7 +462,7 @@ in rec {
         export CC="gcc"
         export CPP="gcc -E"
         export NIX_CXXSTDLIB_LINK=""
-        export NIX_TARGET_CXXSTDLIB_LINK=""
+        export NIX_CXXSTDLIB_LINK_FOR_TARGET=""
         export OPENSSL_PREFIX=$(realpath openssl)
         # this fixes error: impure path 'LibFFIHeaderDirectives' used in link
         export NIX_ENFORCE_PURITY=0
diff --git a/pkgs/development/compilers/graalvm/enterprise-edition.nix b/pkgs/development/compilers/graalvm/enterprise-edition.nix
index 5a6c9650764..89896c556ef 100644
--- a/pkgs/development/compilers/graalvm/enterprise-edition.nix
+++ b/pkgs/development/compilers/graalvm/enterprise-edition.nix
@@ -1,4 +1,4 @@
-{ stdenv, requireFile, perl, unzip, glibc, zlib, bzip2, gdk-pixbuf, xorg, glib, fontconfig, freetype, cairo, pango, gtk3, gtk2, ffmpeg, libGL, atk, alsaLib, libav_0_8, setJavaClassPath }:
+{ stdenv, requireFile, perl, unzip, glibc, zlib, bzip2, gdk-pixbuf, xorg, glib, fontconfig, freetype, cairo, pango, gtk3, gtk2, ffmpeg_3, libGL, atk, alsaLib, libav_0_8, setJavaClassPath }:
 
 let
   common = javaVersion:
@@ -117,7 +117,7 @@ let
                     }.${javaVersion}
                  }:${
             stdenv.lib.strings.makeLibraryPath [ glibc xorg.libXxf86vm xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXrender
-                                                 glib zlib bzip2 alsaLib fontconfig freetype pango gtk3 gtk2 cairo gdk-pixbuf atk ffmpeg libGL ]}"
+                                                 glib zlib bzip2 alsaLib fontconfig freetype pango gtk3 gtk2 cairo gdk-pixbuf atk ffmpeg_3 libGL ]}"
 
           for f in $(find $out -type f -perm -0100); do
             patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$f" || true
diff --git a/pkgs/development/compilers/idris2/default.nix b/pkgs/development/compilers/idris2/default.nix
new file mode 100644
index 00000000000..5bde4bbb720
--- /dev/null
+++ b/pkgs/development/compilers/idris2/default.nix
@@ -0,0 +1,78 @@
+{ stdenv, fetchFromGitHub, makeWrapper
+, clang, chez
+}:
+
+# Uses scheme to bootstrap the build of idris2
+stdenv.mkDerivation rec {
+  pname = "idris2";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "idris-lang";
+    repo = "Idris2";
+    rev = "v${version}";
+    sha256 = "044slgl2pwvj939kz3z92n6l182plc5fzng1n4z4k6bg11msqq14";
+  };
+
+  strictDeps = true;
+  nativeBuildInputs = [ makeWrapper clang chez ];
+  buildInputs = [ chez ];
+
+  prePatch = ''
+    patchShebangs --build tests
+  '';
+
+  makeFlags = [ "PREFIX=$(out)" ]
+    ++ stdenv.lib.optional stdenv.isDarwin "OS=";
+
+  # The name of the main executable of pkgs.chez is `scheme`
+  buildFlags = [ "bootstrap-build" "SCHEME=scheme" ];
+
+  checkTarget = "bootstrap-test";
+
+  # 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 = {
+    description = "A purely functional programming language with first class types";
+    homepage = "https://github.com/idris-lang/Idris2";
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = with stdenv.lib.maintainers; [ wchresta ];
+    inherit (chez.meta) platforms;
+  };
+}
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 e3dfa8ea324..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.3627";
+  version = "1.0.4241";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "intel-graphics-compiler";
     rev = "igc-${version}";
-    sha256 = "1x9fjvf7rbhil09am2v9j2jhwysdvwgshf9zidbirjgfrqn573h8";
+    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/jsonnet/default.nix b/pkgs/development/compilers/jsonnet/default.nix
index 2d28954b221..510fca1838e 100644
--- a/pkgs/development/compilers/jsonnet/default.nix
+++ b/pkgs/development/compilers/jsonnet/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jsonnet";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "google";
     repo = "jsonnet";
-    sha256 = "06imnpbc5mn1dis051f54q6nq80dbm51nhxmba61rdyhf1131ml8";
+    sha256 = "0wxhc0ghjk88zrrn9a18h979ipkia2rx12489515gzhlplfx6724";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/julia/1.3.nix b/pkgs/development/compilers/julia/1.3.nix
index b67a78b4a5a..15694734d48 100644
--- a/pkgs/development/compilers/julia/1.3.nix
+++ b/pkgs/development/compilers/julia/1.3.nix
@@ -114,7 +114,7 @@ stdenv.mkDerivation rec {
 
   LD_LIBRARY_PATH = makeLibraryPath [
     arpack fftw fftwSinglePrec gmp libgit2 mpfr blas openlibm
-    openspecfun pcre2
+    openspecfun pcre2 lapack
   ];
 
   enableParallelBuilding = true;
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 68f64ef4256..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;
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
   # 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 = ''
+  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 ''
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 6611259165a..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_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
-export NIX_${role_pre}CXXSTDLIB_LINK=" -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/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 6611259165a..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_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
-export NIX_${role_pre}CXXSTDLIB_LINK=" -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 5ae8bb01f05..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;
 
@@ -55,7 +56,7 @@ stdenv.mkDerivation {
   # 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 = ''
+  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 ''
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 6611259165a..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_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
-export NIX_${role_pre}CXXSTDLIB_LINK=" -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 e9853c58ca5..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
@@ -56,7 +59,7 @@ stdenv.mkDerivation {
   # 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 = ''
+  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 ''
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 6611259165a..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_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
-export NIX_${role_pre}CXXSTDLIB_LINK=" -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 1f58cb98e3d..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
@@ -56,7 +57,7 @@ stdenv.mkDerivation {
   # 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 = ''
+  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 ''
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 6611259165a..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_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
-export NIX_${role_pre}CXXSTDLIB_LINK=" -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 3b92264ad69..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;
@@ -55,7 +56,7 @@ stdenv.mkDerivation rec {
   # 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 = ''
+  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 ''
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 6611259165a..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_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
-export NIX_${role_pre}CXXSTDLIB_LINK=" -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/mlkit/default.nix b/pkgs/development/compilers/mlkit/default.nix
new file mode 100644
index 00000000000..6fa58145250
--- /dev/null
+++ b/pkgs/development/compilers/mlkit/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, mlton }:
+
+stdenv.mkDerivation rec {
+  pname = "mlkit";
+  version = "4.5.0";
+
+  src = fetchFromGitHub {
+    owner = "melsman";
+    repo = "mlkit";
+    rev = "v${version}";
+    sha256 = "0fc0y40qphn02857fv2dvhwzzsvgixzchx9i6i0x80xfv7z68fbh";
+  };
+
+  nativeBuildInputs = [ autoreconfHook mlton ];
+
+  buildFlags = ["mlkit" "mlkit_libs"];
+
+  meta = with stdenv.lib; {
+    description = "Standard ML Compiler and Toolkit";
+    homepage = "https://elsman.com/mlkit/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ athas ];
+  };
+}
diff --git a/pkgs/development/compilers/mono/generic.nix b/pkgs/development/compilers/mono/generic.nix
index f22771a35e9..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,13 +17,12 @@ 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
     ]
     ++ (stdenv.lib.optionals stdenv.isDarwin [ Foundation libobjc ]);
 
-  propagatedBuildInputs = [glib];
-
   configureFlags = [
     "--x-includes=${libX11.dev}/include"
     "--x-libraries=${libX11.out}/lib"
diff --git a/pkgs/development/compilers/mozart/default.nix b/pkgs/development/compilers/mozart/default.nix
index b8951c8c800..d2c2d98e411 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
@@ -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/mruby/bison-36-compat.patch b/pkgs/development/compilers/mruby/bison-36-compat.patch
new file mode 100644
index 00000000000..674a88fe4c2
--- /dev/null
+++ b/pkgs/development/compilers/mruby/bison-36-compat.patch
@@ -0,0 +1,59 @@
+From acab088fd6af0b2ef2df1396aeb93bfc2e020fa5 Mon Sep 17 00:00:00 2001
+From: "Yukihiro \"Matz\" Matsumoto" <matz@ruby.or.jp>
+Date: Mon, 27 Apr 2020 18:52:43 +0900
+Subject: [PATCH 1/2] Updating `parse.y for recent `bison` (retry).
+
+---
+ mrbgems/mruby-compiler/core/parse.y | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y
+index 6a1faf4e..2a4f740e 100644
+--- a/mrbgems/mruby-compiler/core/parse.y
++++ b/mrbgems/mruby-compiler/core/parse.y
+@@ -1323,7 +1323,7 @@ heredoc_end(parser_state *p)
+ 
+ %}
+ 
+-%pure-parser
++%define api.pure
+ %parse-param {parser_state *p}
+ %lex-param {parser_state *p}
+ 
+-- 
+2.27.0
+
+From 3cc682d943b29e84928a847a23f411ddbace74b7 Mon Sep 17 00:00:00 2001
+From: "Yukihiro \"Matz\" Matsumoto" <matz@ruby.or.jp>
+Date: Fri, 15 May 2020 12:30:13 +0900
+Subject: [PATCH 2/2] Remove `YYERROR_VERBOSE` which no longer supported since
+ `bison 3.6`.
+
+Instead we added `%define parse.error verbose`.
+---
+ mrbgems/mruby-compiler/core/parse.y | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y
+index 2a4f740e..eee6a5e5 100644
+--- a/mrbgems/mruby-compiler/core/parse.y
++++ b/mrbgems/mruby-compiler/core/parse.y
+@@ -9,7 +9,6 @@
+ #ifdef PARSER_DEBUG
+ # define YYDEBUG 1
+ #endif
+-#define YYERROR_VERBOSE 1
+ #define YYSTACK_USE_ALLOCA 1
+ 
+ #include <ctype.h>
+@@ -1323,6 +1322,7 @@ heredoc_end(parser_state *p)
+ 
+ %}
+ 
++%define parse.error verbose
+ %define api.pure
+ %parse-param {parser_state *p}
+ %lex-param {parser_state *p}
+-- 
+2.27.0
+
diff --git a/pkgs/development/compilers/mruby/default.nix b/pkgs/development/compilers/mruby/default.nix
index f6a7fc2f143..2589c47c3be 100644
--- a/pkgs/development/compilers/mruby/default.nix
+++ b/pkgs/development/compilers/mruby/default.nix
@@ -1,17 +1,19 @@
-{ stdenv, ruby, bison, fetchFromGitHub }:
+{ stdenv, ruby, bison, rake, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "mruby";
-  version = "2.1.0";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner   = "mruby";
     repo    = "mruby";
     rev     = version;
-    sha256  = "1y072c7dh9jf8xwy7kia6cb4dkpspq4zf24ssn7zm5f46p4waxni";
+    sha256  = "gEEb0Vn/G+dNgeY6r0VP8bMSPrEOf5s+0GoOcnIPtEU=";
   };
 
-  nativeBuildInputs = [ ruby bison ];
+  nativeBuildInputs = [ ruby bison rake ];
+
+  patches = [ ./bison-36-compat.patch ];
 
   # Necessary so it uses `gcc` instead of `ld` for linking.
   # https://github.com/mruby/mruby/blob/35be8b252495d92ca811d76996f03c470ee33380/tasks/toolchains/gcc.rake#L25
diff --git a/pkgs/development/compilers/nextpnr/default.nix b/pkgs/development/compilers/nextpnr/default.nix
index cce22207a36..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.03.25";
+  version = "2020.08.22";
 
   srcs = [
     (fetchFromGitHub {
       owner  = "YosysHQ";
       repo   = "nextpnr";
-      rev    = "a3ede0293a50c910e7d96319b2084d50f2501a6b";
-      sha256 = "0ikfjva4gqmlx6y7mjamg03ad7x9gnz32ahqv798ynd87svq10aq";
+      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/default.nix b/pkgs/development/compilers/nim/default.nix
index 53854d4fa35..543a6120577 100644
--- a/pkgs/development/compilers/nim/default.nix
+++ b/pkgs/development/compilers/nim/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nim";
-  version = "1.2.0";
+  version = "1.2.6";
 
   src = fetchurl {
     url = "https://nim-lang.org/download/${pname}-${version}.tar.xz";
-    sha256 = "TpRYOjc5ZYIYBeZl4KBfUvthCRZnbtsJFIlBQVY3xXU=";
+    sha256 = "0zk5qzxayqjw7kq6p92j4008g9bbyilyymhdc5xq9sln5rqym26z";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/ocaml/4.11.nix b/pkgs/development/compilers/ocaml/4.11.nix
new file mode 100644
index 00000000000..74e3d354f12
--- /dev/null
+++ b/pkgs/development/compilers/ocaml/4.11.nix
@@ -0,0 +1,6 @@
+import ./generic.nix {
+  major_version = "4";
+  minor_version = "11";
+  patch_version = "0+beta3";
+  sha256 = "18lpgirxil00pgy805cyi97v6ycmg93sdvbkc60i35ili030v1f7";
+}
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 ef496f5f7c5..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.6";
-  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 = "1w6n0cnz9izpjb3sc870q7a0jz85a6c7fiszymxin10cnsajkzir";
+      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"
@@ -135,7 +137,7 @@ let
       homepage = "http://openjdk.java.net/";
       license = licenses.gpl2;
       description = "The open-source Java Development Kit";
-      maintainers = with maintainers; [ edwtjo ];
+      maintainers = with maintainers; [ edwtjo asbachb ];
       platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
     };
 
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/11.nix b/pkgs/development/compilers/openjdk/openjfx/11.nix
index 7ba04ed50cc..adb564f7cfe 100644
--- a/pkgs/development/compilers/openjdk/openjfx/11.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/11.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, writeText, gradleGen, pkgconfig, perl, cmake
-, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsaLib, ffmpeg, python, ruby
+, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsaLib, ffmpeg_3, python, ruby
 , openjdk11-bootstrap }:
 
 let
@@ -19,7 +19,7 @@ let
       sha256 = "1h7qsylr7rnwnbimqjyn3whszp9kv4h3gpicsrb3mradxc9yv194";
     };
 
-    buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsaLib ffmpeg ];
+    buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsaLib ffmpeg_3 ];
     nativeBuildInputs = [ gradle_ perl pkgconfig cmake gperf python ruby ];
 
     dontUseCmakeConfigure = true;
diff --git a/pkgs/development/compilers/openjdk/openjfx/14.nix b/pkgs/development/compilers/openjdk/openjfx/14.nix
index 12d9448595e..04bb1fa5627 100644
--- a/pkgs/development/compilers/openjdk/openjfx/14.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/14.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, writeText, openjdk11_headless, gradleGen
 , pkgconfig, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsaLib
-, ffmpeg, python, ruby }:
+, ffmpeg_3, python, ruby }:
 
 let
   major = "14";
@@ -21,7 +21,7 @@ let
       sha256 = "16aj15xksc266gv3y42m0g277pfvp71901lrngndcnpr7i2zshnr";
     };
 
-    buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsaLib ffmpeg ];
+    buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsaLib ffmpeg_3 ];
     nativeBuildInputs = [ gradle_ perl pkgconfig cmake gperf python ruby ];
 
     dontUseCmakeConfigure = true;
diff --git a/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix b/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
index 092af49a9f8..78fff4a59fb 100644
--- a/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
+++ b/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
@@ -19,7 +19,7 @@
 , glib
 , libxml2
 , libav_0_8
-, ffmpeg
+, ffmpeg_3
 , libxslt
 , libGL
 , freetype
@@ -171,7 +171,7 @@ let result = stdenv.mkDerivation rec {
    * libXt is only needed on amd64
    */
   libraries =
-    [stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt libGL xorg.libXxf86vm alsaLib fontconfig freetype pango gtk2 cairo gdk-pixbuf atk] ++
+    [stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg_3 libxslt libGL xorg.libXxf86vm alsaLib fontconfig freetype pango gtk2 cairo gdk-pixbuf atk] ++
     (if swingSupport then [xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXp xorg.libXt xorg.libXrender stdenv.cc.cc] else []);
 
   rpath = stdenv.lib.strings.makeLibraryPath libraries;
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 ed313a9d00e..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 = "241";
-  sha256.i686-linux = "1niiwifby8zqvsh0ccdf3n21vlqfvvms223dc3kw2c2rksch3yg4";
-  sha256.x86_64-linux = "1jz8d6663jspxgw8yxxx5ca6jaa3g67dbbi5d83pdxjmg1kk57a1";
-  sha256.armv7l-linux = "1pjzyi1qd4nzfwvh0z5fpwga7j8mksiv5h8wzirv2ccdyy4wqw24";
-  sha256.aarch64-linux = "1zliv4a0ygrsdpq36b89yl7jf7kidmxqbnp1sk2661y471x02p9l";
+  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/purescript/purescript/default.nix b/pkgs/development/compilers/purescript/purescript/default.nix
index 6f61068738a..8a7fb96723a 100644
--- a/pkgs/development/compilers/purescript/purescript/default.nix
+++ b/pkgs/development/compilers/purescript/purescript/default.nix
@@ -18,19 +18,19 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "purescript";
-  version = "0.13.6";
+  version = "0.13.8";
 
   src =
     if stdenv.isDarwin
     then
     fetchurl {
       url = "https://github.com/${pname}/${pname}/releases/download/v${version}/macos.tar.gz";
-      sha256 = "04kwjjrriyizpvhs96jgyx21ppyd1ynblk24i5825ywxlw9hja25";
+      sha256 = "058w8w24g7xbdkn5l97jfj9dcg81vkfh3w8112anj982lynk6391";
     }
     else
     fetchurl {
       url = "https://github.com/${pname}/${pname}/releases/download/v${version}/linux64.tar.gz";
-      sha256 = "012znrj32aq96qh1g2hscdvhl3flgihhimiz40agk0dykpksblns";
+      sha256 = "01xb9sl6rmg02ypdrv4n0mkzmdr5y9rajcdmg9c3j46q7z6q9mxy";
     };
 
 
@@ -59,7 +59,7 @@ in stdenv.mkDerivation rec {
     description = "A strongly-typed functional programming language that compiles to JavaScript";
     homepage = "https://www.purescript.org/";
     license = licenses.bsd3;
-    maintainers = [ maintainers.justinwoo maintainers.mbbx6spp ];
+    maintainers = with maintainers; [ justinwoo mbbx6spp cdepillabout ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
   };
 }
diff --git a/pkgs/development/compilers/rgbds/default.nix b/pkgs/development/compilers/rgbds/default.nix
index 52d388beaed..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.3.10";
+  version = "0.4.1";
   src = fetchFromGitHub {
     owner = "rednex";
     repo = "rgbds";
     rev = "v${version}";
-    sha256 = "0752fbffxgxyf3jw2iij88l05dqhppgcxy7dvk82hp4wdg4cflpq";
+    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_44.nix b/pkgs/development/compilers/rust/1_44.nix
new file mode 100644
index 00000000000..9fc268d152b
--- /dev/null
+++ b/pkgs/development/compilers/rust/1_44.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.44.1";
+  rustcSha256 = "0ww4z2v3gxgn3zddqzwqya1gln04p91ykbrflnpdbmcd575n8bky";
+
+  # Note: the version MUST be one version prior to the version we're
+  # building
+  bootstrapVersion = "1.43.1";
+
+  # fetch hashes by running `print-hashes.sh 1.44.1`
+  bootstrapHashes = {
+    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_44;
+
+  rustcPatches = [
+  ];
+}
+
+(builtins.removeAttrs args [ "fetchpatch" ])
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 65614b9480e..e820b982620 100644
--- a/pkgs/development/compilers/rust/cargo.nix
+++ b/pkgs/development/compilers/rust/cargo.nix
@@ -9,8 +9,7 @@ rustPlatform.buildRustPackage {
 
   # the rust source tarball already has all the dependencies vendored, no need to fetch them again
   cargoVendorDir = "vendor";
-  preBuild = "pushd src/tools/cargo";
-  postBuild = "popd";
+  buildAndTestSubdir = "src/tools/cargo";
 
   passthru.rustc = rustc;
 
@@ -39,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/clippy.nix b/pkgs/development/compilers/rust/clippy.nix
index 4857b587847..0546ad9bac1 100644
--- a/pkgs/development/compilers/rust/clippy.nix
+++ b/pkgs/development/compilers/rust/clippy.nix
@@ -5,8 +5,7 @@ rustPlatform.buildRustPackage {
 
   # the rust source tarball already has all the dependencies vendored, no need to fetch them again
   cargoVendorDir = "vendor";
-  preBuild = "pushd src/tools/clippy";
-  postBuild = "popd";
+  buildAndTestSubdir = "src/tools/clippy";
 
   # changes hash of vendor directory otherwise
   dontUpdateAutotoolsGnuConfigScripts = true;
diff --git a/pkgs/development/compilers/rust/print-hashes.sh b/pkgs/development/compilers/rust/print-hashes.sh
index 1d46fe376d4..957011fad37 100755
--- a/pkgs/development/compilers/rust/print-hashes.sh
+++ b/pkgs/development/compilers/rust/print-hashes.sh
@@ -13,7 +13,6 @@ PLATFORMS=(
   arm-unknown-linux-gnueabihf
   armv7-unknown-linux-gnueabihf
   aarch64-unknown-linux-gnu
-  i686-apple-darwin
   x86_64-apple-darwin
 )
 BASEURL=https://static.rust-lang.org/dist
diff --git a/pkgs/development/compilers/rust/rls/default.nix b/pkgs/development/compilers/rust/rls/default.nix
index 4cf507fbf5c..06b1b9b1e64 100644
--- a/pkgs/development/compilers/rust/rls/default.nix
+++ b/pkgs/development/compilers/rust/rls/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, rustPlatform
+{ stdenv, makeWrapper, fetchFromGitHub, rustPlatform
 , openssh, openssl, pkgconfig, cmake, zlib, curl, libiconv
 , CoreFoundation, Security }:
 
@@ -10,8 +10,9 @@ rustPlatform.buildRustPackage {
   dontUpdateAutotoolsGnuConfigScripts = true;
 
   cargoVendorDir = "vendor";
+  buildAndTestSubdir = "src/tools/rls";
+
   preBuild = ''
-    pushd src/tools/rls
     # client tests are flaky
     rm tests/client.rs
   '';
@@ -19,27 +20,34 @@ 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;
 
   nativeBuildInputs = [ pkgconfig cmake ];
-  buildInputs = [ openssh openssl curl zlib libiconv rustPlatform.rust.rustc.llvm ]
+  buildInputs = [ openssh openssl curl zlib libiconv makeWrapper rustPlatform.rust.rustc.llvm ]
     ++ (stdenv.lib.optionals stdenv.isDarwin [ CoreFoundation Security ]);
 
   doCheck = true;
 
-  preInstall = "popd";
-
   doInstallCheck = true;
   installCheckPhase = ''
     $out/bin/rls --version
   '';
 
+  RUST_SRC_PATH = rustPlatform.rustcSrc;
+  postInstall = ''
+    wrapProgram $out/bin/rls --set-default RUST_SRC_PATH ${rustPlatform.rustcSrc}
+  '';
+
   meta = with stdenv.lib; {
     description = "Rust Language Server - provides information about Rust programs to IDEs and other tools";
     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 f8ed0bce2e0..6215c936c6d 100644
--- a/pkgs/development/compilers/rust/rustfmt.nix
+++ b/pkgs/development/compilers/rust/rustfmt.nix
@@ -6,8 +6,7 @@ rustPlatform.buildRustPackage rec {
 
   # the rust source tarball already has all the dependencies vendored, no need to fetch them again
   cargoVendorDir = "vendor";
-  preBuild = "pushd src/tools/rustfmt";
-  preInstall = "popd";
+  buildAndTestSubdir = "src/tools/rustfmt";
 
   # changes hash of vendor directory otherwise
   dontUpdateAutotoolsGnuConfigScripts = true;
@@ -17,17 +16,15 @@ rustPlatform.buildRustPackage rec {
   # As of 1.0.0 and rustc 1.30 rustfmt requires a nightly compiler
   RUSTC_BOOTSTRAP = 1;
 
-  # we run tests in debug mode so tests look for a debug build of
-  # rustfmt. Anyway this adds nearly no compilation time.
-  preCheck = ''
-    cargo build
-  '';
+  # 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/sbcl/2.0.0.nix b/pkgs/development/compilers/sbcl/2.0.0.nix
index bb0056bb9ec..6df98a9a60e 100644
--- a/pkgs/development/compilers/sbcl/2.0.0.nix
+++ b/pkgs/development/compilers/sbcl/2.0.0.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchurl, writeText, sbclBootstrap
 , sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit"
 , threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.hostPlatform.system)
+, disableImmobileSpace ? false
   # Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die.
   # Note that the created binaries still need `patchelf --set-interpreter ...`
   # to get rid of ${glibc} dependency.
@@ -21,17 +22,6 @@ stdenv.mkDerivation rec {
 
   patchPhase = ''
     echo '"${version}.nixos"' > version.lisp-expr
-    echo "
-    (lambda (features)
-      (flet ((enable (x)
-               (pushnew x features))
-             (disable (x)
-               (setf features (remove x features))))
-    ''
-    + (if threadSupport then "(enable :sb-thread)" else "(disable :sb-thread)")
-    + stdenv.lib.optionalString stdenv.isAarch32 "(enable :arm)"
-    + ''
-      )) " > customize-target-features.lisp
 
     pwd
 
@@ -80,8 +70,20 @@ stdenv.mkDerivation rec {
     export HOME=$PWD/test-home
   '';
 
+  enableFeatures = with stdenv.lib;
+    optional threadSupport "sb-thread" ++
+    optional stdenv.isAarch32 "arm";
+
+  disableFeatures = with stdenv.lib;
+    optional (!threadSupport) "sb-thread" ++
+    optionals disableImmobileSpace [ "immobile-space" "immobile-code" "compact-instance-header" ];
+
   buildPhase = ''
-    sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}"
+    sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}" ${
+                  stdenv.lib.concatStringsSep " "
+                    (builtins.map (x: "--with-${x}") enableFeatures ++
+                     builtins.map (x: "--without-${x}") disableFeatures)
+                }
     (cd doc/manual ; make info)
   '';
 
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index 4517db4c384..d4a00f57b6a 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchurl, writeText, sbclBootstrap
 , sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit"
 , threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.hostPlatform.system)
+, disableImmobileSpace ? false
   # Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die.
   # Note that the created binaries still need `patchelf --set-interpreter ...`
   # to get rid of ${glibc} dependency.
@@ -21,17 +22,6 @@ stdenv.mkDerivation rec {
 
   patchPhase = ''
     echo '"${version}.nixos"' > version.lisp-expr
-    echo "
-    (lambda (features)
-      (flet ((enable (x)
-               (pushnew x features))
-             (disable (x)
-               (setf features (remove x features))))
-    ''
-    + (if threadSupport then "(enable :sb-thread)" else "(disable :sb-thread)")
-    + stdenv.lib.optionalString stdenv.isAarch32 "(enable :arm)"
-    + ''
-      )) " > customize-target-features.lisp
 
     pwd
 
@@ -80,8 +70,20 @@ stdenv.mkDerivation rec {
     export HOME=$PWD/test-home
   '';
 
+  enableFeatures = with stdenv.lib;
+    optional threadSupport "sb-thread" ++
+    optional stdenv.isAarch32 "arm";
+
+  disableFeatures = with stdenv.lib;
+    optional (!threadSupport) "sb-thread" ++
+    optionals disableImmobileSpace [ "immobile-space" "immobile-code" "compact-instance-header" ];
+
   buildPhase = ''
-    sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}"
+    sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}" ${
+                  stdenv.lib.concatStringsSep " "
+                    (builtins.map (x: "--with-${x}") enableFeatures ++
+                     builtins.map (x: "--without-${x}") disableFeatures)
+                }
     (cd doc/manual ; make info)
   '';
 
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/scas/default.nix b/pkgs/development/compilers/scas/default.nix
new file mode 100644
index 00000000000..e80724c8a4c
--- /dev/null
+++ b/pkgs/development/compilers/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/compilers/solc/default.nix b/pkgs/development/compilers/solc/default.nix
index a1cf5b2debd..ac4bc324868 100644
--- a/pkgs/development/compilers/solc/default.nix
+++ b/pkgs/development/compilers/solc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip, boost, cmake, ncurses, python2
+{ stdenv, fetchzip, boost, cmake, ncurses, python3, coreutils
 , z3Support ? true, z3 ? null, cvc4Support ? true, cvc4 ? null
 , cln ? null, gmp ? null
 }:
@@ -16,12 +16,12 @@ in
 stdenv.mkDerivation rec {
 
   pname = "solc";
-  version = "0.5.15";
+  version = "0.6.8";
 
   # upstream suggests avoid using archive generated by github
   src = fetchzip {
     url = "https://github.com/ethereum/solidity/releases/download/v${version}/solidity_${version}.tar.gz";
-    sha256 = "1nfvsaci5ja5ss603z04197wndwkvcq9nm5mdab1kpdr91djxh2y";
+    sha256 = "1nxds6c10hjqjjk893qw2yljws57li0xigbf3ih85y8y6d587ph0";
   };
 
   postPatch = ''
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ boost ]
     ++ stdenv.lib.optionals z3Support [ z3 ]
     ++ stdenv.lib.optionals cvc4Support [ cvc4 cln gmp ];
-  checkInputs = [ ncurses python2 ];
+  checkInputs = [ ncurses python3 ];
 
   # Test fails on darwin for unclear reason
   doCheck = stdenv.hostPlatform.isLinux;
@@ -56,13 +56,7 @@ stdenv.mkDerivation rec {
     pushd ..
     # IPC tests need aleth avaliable, so we disable it
     sed -i "s/IPC_ENABLED=true/IPC_ENABLED=false\nIPC_FLAGS=\"--no-ipc\"/" ./scripts/tests.sh
-    for i in ./scripts/*.sh; do
-      patchShebangs "$i"
-    done
-    for i in ./scripts/*.py; do
-      patchShebangs "$i"
-    done
-    for i in ./test/*.sh; do
+    for i in ./scripts/*.sh ./scripts/*.py ./test/*.sh; do
       patchShebangs "$i"
     done
     TERM=xterm ./scripts/tests.sh
diff --git a/pkgs/development/compilers/souffle/default.nix b/pkgs/development/compilers/souffle/default.nix
index 00d1a2f7960..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 = "1.7.1";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner  = "souffle-lang";
     repo   = "souffle";
     rev    = version;
-    sha256 = "0px8kh5875q2iyza4ylpa6vxpy6qxg0qvn2idk1j6dcdf5pdryph";
+    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 069ef69dc7e..060b95cf877 100644
--- a/pkgs/development/compilers/tinygo/default.nix
+++ b/pkgs/development/compilers/tinygo/default.nix
@@ -1,19 +1,35 @@
 { lib, buildGoModule, fetchFromGitHub, llvm, clang-unwrapped, lld, avrgcc
-, avrdude, openocd, gcc-arm-embedded, makeWrapper }:
+, avrdude, openocd, gcc-arm-embedded, makeWrapper, fetchurl }:
 
+let main = ./main.go;
+    gomod = ./go.mod;
+in
 buildGoModule rec {
   pname = "tinygo";
-  version = "0.13.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "tinygo-org";
     repo = "tinygo";
     rev = "v${version}";
-    sha256 = "0x59j56y704m2hfkg78illgw9f6czrx265x887jfd989lnxphyqa";
+    sha256 = "0das5z5y2x1970yi9c4yssxvwrrjhdmsj495q0r5mb02amvc954v";
   };
 
-  modSha256 = "0y8n4mcr4jhas29ahvk8k4zbj1iz65fdpsgq61qa8kcsm8m5kqa6";
-  enableParallelBuilding = true;
+  overrideModAttrs = (_: {
+      patches = [];
+      preBuild = ''
+      rm -rf *
+      cp ${main} main.go
+      cp ${gomod} go.mod
+      '';
+  });
+
+  preBuild = "cp ${gomod} go.mod";
+
+  vendorSha256 = "19194dlzpl6zzw2gqybma5pwip71rw8z937f104k6c158qzzgy62";
+
+  doCheck = false;
+
   subPackages = [ "." ];
   buildInputs = [ llvm clang-unwrapped makeWrapper ];
   propagatedBuildInputs = [ lld avrgcc avrdude openocd gcc-arm-embedded ];
@@ -30,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/tinygo/go.mod b/pkgs/development/compilers/tinygo/go.mod
new file mode 100644
index 00000000000..f01b38d3e51
--- /dev/null
+++ b/pkgs/development/compilers/tinygo/go.mod
@@ -0,0 +1,13 @@
+module github.com/tinygo-org/tinygo
+
+go 1.14
+
+require (
+	github.com/blakesmith/ar v0.0.0-20150311145944-8bd4349a67f2
+	github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf
+	github.com/marcinbor85/gohex v0.0.0-20180128172054-7a43cd876e46
+	go.bug.st/serial v1.0.0
+	golang.org/x/tools v0.0.0-20200512001501-aaeff5de670a
+	google.golang.org/appengine v1.4.0
+	tinygo.org/x/go-llvm v0.0.0-20200401165421-8d120882fc7a
+)
diff --git a/pkgs/development/compilers/tinygo/main.go b/pkgs/development/compilers/tinygo/main.go
new file mode 100644
index 00000000000..050cf8afe39
--- /dev/null
+++ b/pkgs/development/compilers/tinygo/main.go
@@ -0,0 +1,18 @@
+package main
+
+import (
+	"fmt"
+
+	_ "github.com/blakesmith/ar"
+	_ "github.com/google/shlex"
+	_ "github.com/marcinbor85/gohex"
+	_ "go.bug.st/serial"
+	_ "golang.org/x/tools/go/ast/astutil"
+	_ "golang.org/x/tools/go/ssa"
+	_ "google.golang.org/appengine"
+	_ "tinygo.org/x/go-llvm"
+)
+
+func main() {
+	fmt.Println("vim-go")
+}
diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix
index 34e6835fc1f..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 = "61c5TAqQj/Y2I9F54J+h6dazjTHH61l9MCFInyl+cdQ=";
+    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 3a54d42498c..c3185ca4e0e 100644
--- a/pkgs/development/compilers/yosys/default.nix
+++ b/pkgs/development/compilers/yosys/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , abc-verifier
+, bash
 , bison
 , fetchFromGitHub
 , flex
@@ -15,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "yosys";
-  version = "2020.03.24";
+  version = "2020.08.22";
 
   src = fetchFromGitHub {
     owner  = "YosysHQ";
     repo   = "yosys";
-    rev    = "c9555c9adeba886a308c60615ac794ec20d9276e";
-    sha256 = "1fh118fv06jyfmkx6zy0w2k0rjj22m0ffyll3k5giaw8zzaf0j3a";
+    rev    = "12132b6850747aec99715fdfa3184fe3ebefa015";
+    sha256 = "1v6x1y2f3r8vi7pnkgx374rrv02xgmg9yg23f61n7d1v2rd6y5cc";
   };
 
   enableParallelBuilding = true;
@@ -38,6 +39,8 @@ stdenv.mkDerivation rec {
       --replace 'LD = gcc' 'LD = $(CXX)' \
       --replace 'ABCMKARGS = CC="$(CXX)" CXX="$(CXX)"' 'ABCMKARGS =' \
       --replace 'echo UNKNOWN' 'echo ${builtins.substring 0 10 src.rev}'
+    substituteInPlace ./misc/yosys-config.in \
+      --replace '/bin/bash' '${bash}/bin/bash'
     patchShebangs tests
   '';
 
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 ed3d67ff862..cb8eb0b8f26 100644
--- a/pkgs/development/compilers/zulu/8.nix
+++ b/pkgs/development/compilers/zulu/8.nix
@@ -1,21 +1,21 @@
 { stdenv, lib, fetchurl, unzip, makeWrapper, setJavaClassPath
-, zulu, glib, libxml2, libav_0_8, ffmpeg, libxslt, libGL, alsaLib
+, zulu, glib, libxml2, libav_0_8, ffmpeg_3, libxslt, libGL, alsaLib
 , fontconfig, freetype, gnome2, cairo, gdk-pixbuf, atk, xorg
 , 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;
   extension = if stdenv.isDarwin then "zip" else "tar.gz";
 
   libraries = [
-    stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt libGL
+    stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg_3 libxslt libGL
     xorg.libXxf86vm alsaLib fontconfig freetype gnome2.pango
     gnome2.gtk cairo gdk-pixbuf atk
   ] ++ (lib.optionals swingSupport (with xorg; [
@@ -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 d13e574a81a..d91581f5b10 100644
--- a/pkgs/development/compilers/zulu/default.nix
+++ b/pkgs/development/compilers/zulu/default.nix
@@ -1,21 +1,21 @@
 { stdenv, lib, fetchurl, unzip, makeWrapper, setJavaClassPath
-, zulu, glib, libxml2, libav_0_8, ffmpeg, libxslt, libGL, alsaLib
+, zulu, glib, libxml2, libav_0_8, ffmpeg_3, libxslt, libGL, alsaLib
 , fontconfig, freetype, gnome2, cairo, gdk-pixbuf, atk, xorg, zlib
 , 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;
   extension = if stdenv.isDarwin then "zip" else "tar.gz";
 
   libraries = [
-    stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt libGL
+    stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg_3 libxslt libGL
     xorg.libXxf86vm alsaLib fontconfig freetype gnome2.pango
     gnome2.gtk cairo gdk-pixbuf atk zlib
   ] ++ (lib.optionals swingSupport (with xorg; [
@@ -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/zz/default.nix b/pkgs/development/compilers/zz/default.nix
index 7ac59cc5869..273873c8801 100644
--- a/pkgs/development/compilers/zz/default.nix
+++ b/pkgs/development/compilers/zz/default.nix
@@ -1,19 +1,19 @@
 { lib, rustPlatform, fetchFromGitHub, makeWrapper, z3 }:
 
 rustPlatform.buildRustPackage rec {
-  pname = "zz-unstable";
-  version = "2020-03-02";
+  pname = "zz";
+  version = "0.1";
 
   src = fetchFromGitHub {
     owner = "aep";
     repo = "zz";
-    rev = "2dd92b959f7c34bf99af84b263e3864a5c41a0fe";
-    sha256 = "14ch5qgga2vpxvb53v4v4y6cwy3kkm10x1vbfpyfa7im57syib85";
+    rev = version;
+    sha256 = "0kqrfm2r9wn0p2c3lcprsy03p9qhrwjs990va8qi59jp704l84ad";
   };
 
   nativeBuildInputs = [ makeWrapper ];
 
-  cargoSha256 = "1m9az3adbkx2ab6fkg64cr7f9d73jbx8kx2pmgpw29csmh9hzqjy";
+  cargoSha256 = "0yllcqxyyhwr9h0z8q84l0ms8x6jrqhpg79ik4xng6h5yf4ab0pq";
 
   postInstall = ''
     wrapProgram $out/bin/zz --prefix PATH ":" "${lib.getBin z3}/bin"
diff --git a/pkgs/development/coq-modules/Cheerios/default.nix b/pkgs/development/coq-modules/Cheerios/default.nix
index 14048d1b0d8..194a1a0752a 100644
--- a/pkgs/development/coq-modules/Cheerios/default.nix
+++ b/pkgs/development/coq-modules/Cheerios/default.nix
@@ -2,9 +2,9 @@
 
 let param =
   {
-      version = "20181102";
-      rev = "04da309304bdd28a1f7dacca9fdf8696204a4ff2";
-      sha256 = "1xfa78p70c90favds1mv1vj5sr9bv0ad3dsgg05v3v72006g2f1q";
+      version = "20200201";
+      rev = "9c7f66e57b91f706d70afa8ed99d64ed98ab367d";
+      sha256 = "1h55s6lk47bk0lv5ralh81z55h799jbl9mhizmqwqzy57y8wqgs1";
   };
 in
 
@@ -27,6 +27,6 @@ stdenv.mkDerivation {
   installFlags = [ "COQLIB=$(out)/lib/coq/${coq.coq-version}/" ];
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.6" "8.7" "8.8" "8.9" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" ];
  };
 }
diff --git a/pkgs/development/coq-modules/CoLoR/default.nix b/pkgs/development/coq-modules/CoLoR/default.nix
index 1346ec92fad..1d3e5a07b03 100644
--- a/pkgs/development/coq-modules/CoLoR/default.nix
+++ b/pkgs/development/coq-modules/CoLoR/default.nix
@@ -7,6 +7,7 @@ let
     "8.8" = "1.6.0";
     "8.9" = "1.6.0";
     "8.10" = "1.7.0";
+    "8.11" = "1.7.0";
   };
   params = {
     "1.4.0" = {
diff --git a/pkgs/development/coq-modules/InfSeqExt/default.nix b/pkgs/development/coq-modules/InfSeqExt/default.nix
index ced2b7ce3db..e97b4499901 100644
--- a/pkgs/development/coq-modules/InfSeqExt/default.nix
+++ b/pkgs/development/coq-modules/InfSeqExt/default.nix
@@ -2,9 +2,9 @@
 
 let param =
   {
-      version = "20180918";
-      rev = "243d6be45666da73a9da6c37d451327165275798";
-      sha256 = "1nh2psb4pcppy1akk24ilb4p08m35cba357i4xyymmarmbwqpxmn";
+      version = "20200131";
+      rev = "203d4c20211d6b17741f1fdca46dbc091f5e961a";
+      sha256 = "0xylkdmb2dqnnqinf3pigz4mf4zmczcbpjnn59g5g76m7f2cqxl0";
   };
 in
 
@@ -26,6 +26,6 @@ stdenv.mkDerivation {
   installFlags = [ "COQLIB=$(out)/lib/coq/${coq.coq-version}/" ];
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" "8.8" "8.9" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" ];
  };
 }
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/Verdi/default.nix b/pkgs/development/coq-modules/Verdi/default.nix
index 3cf3a4e8d4b..1fd06a9c556 100644
--- a/pkgs/development/coq-modules/Verdi/default.nix
+++ b/pkgs/development/coq-modules/Verdi/default.nix
@@ -3,9 +3,9 @@
 let param =
   if stdenv.lib.versionAtLeast coq.coq-version "8.7" then
   {
-      version = "20190202";
-      rev = "bc193be9ea8485add7646a0f72e2aa76a9c7e01f";
-      sha256 = "1adkwxnmc9qfah2bya0hpd2vzkmk1y212z4n7fcmvr1a85ykgd7z";
+      version = "20200131";
+      rev = "fdb4ede19d2150c254f0ebcfbed4fb9547a734b0";
+      sha256 = "1a2k19f9q5k5djbxplqmmpwck49kw3lrm3aax920h4yb40czkd8m";
   } else {
       version = "20181102";
       rev = "25b79cf1be5527ab8dc1b8314fcee93e76a2e564";
@@ -32,6 +32,6 @@ stdenv.mkDerivation {
   installFlags = [ "COQLIB=$(out)/lib/coq/${coq.coq-version}/" ];
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.6" "8.7" "8.8" "8.9" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" ];
  };
 }
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 0dd8817ab3f..e58e51c63ae 100644
--- a/pkgs/development/coq-modules/coq-elpi/default.nix
+++ b/pkgs/development/coq-modules/coq-elpi/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchFromGitHub, which, coq }:
 
 let params = {
-  "8.10" = rec {
-    version = "1.3.0";
+  "8.11" = rec {
+    version = "1.5.0";
     rev = "v${version}";
-    sha256 = "1bbadh4qmsm0c5qw41apf4k8va6d44rpw294mc6pg556nmma87ra";
+    sha256 = "0dlw869j6ib58i8fhbr7x3hq2cy088arihhfanv8i08djqml6g8x";
   };
-  "8.11" = rec {
-    version = "1.3.1";
+  "8.12" = rec {
+    version = "1.5.1";
     rev = "v${version}";
-    sha256 = "06dg0i1jay9anhx68jfki5qs2g481n3s4q3m124qniyadlx80bh3";
+    sha256 = "1znjc8c8rivsawmz5bgm9ddl69p62p2pwxphvpap1gfmi5cp8lwi";
   };
 };
   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/coquelicot/default.nix b/pkgs/development/coq-modules/coquelicot/default.nix
index 2eb3021ada7..e45077f89fd 100644
--- a/pkgs/development/coq-modules/coquelicot/default.nix
+++ b/pkgs/development/coq-modules/coquelicot/default.nix
@@ -3,9 +3,9 @@
 let param =
   if stdenv.lib.versionAtLeast coq.coq-version "8.8"
   then {
-    version = "3.0.3";
-    uid = "38105";
-    sha256 = "0y52lqx1jphv6fwf0d702vzprxmfmxggnh1hy3fznxyl4isfpg4j";
+    version = "3.1.0";
+    uid = "38287";
+    sha256 = "07436wkvnq9jyf7wyhp77bpl157s3qhba1ay5xrkxdi26qdf3h14";
   } else {
     version = "3.0.2";
     uid = "37523";
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" "8.8" "8.9" "8.10" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" "8.12" ];
   };
 
 }
diff --git a/pkgs/development/coq-modules/equations/default.nix b/pkgs/development/coq-modules/equations/default.nix
index 060fa3b4c81..5a07d537536 100644
--- a/pkgs/development/coq-modules/equations/default.nix
+++ b/pkgs/development/coq-modules/equations/default.nix
@@ -33,9 +33,15 @@ let
     };
 
     "8.11" = {
-      version = "1.2.1";
-      rev = "v1.2.1-8.11";
-      sha256 = "06k0h7lansxs479is3vj5ikg8s5k4c6svnqcwmxbni4wx8bhmg17";
+      version = "1.2.3";
+      rev = "v1.2.3-8.11";
+      sha256 = "1srxz1rws8jsh7402g2x2vcqgjbbsr64dxxj5d2zs48pmhb20csf";
+    };
+
+    "8.12" = {
+      version = "1.2.3";
+      rev = "v1.2.3-8.12";
+      sha256 = "1y0jkvzyz5ssv5vby41p1i8zs7nsdc8g3pzyq73ih9jz8h252643";
     };
   };
   param = params.${coq.coq-version};
diff --git a/pkgs/development/coq-modules/flocq/default.nix b/pkgs/development/coq-modules/flocq/default.nix
index e0c32bc430e..c5d3a295f2b 100644
--- a/pkgs/development/coq-modules/flocq/default.nix
+++ b/pkgs/development/coq-modules/flocq/default.nix
@@ -2,11 +2,11 @@
 
 let params =
   if stdenv.lib.versionAtLeast coq.coq-version "8.7" then {
-    version = "3.2.0";
-    sha256 = "15bi36x7zj0glsb3s2gwqd4wswhfzh36rbp7imbyff53a7nna95l";
+    version = "3.3.1";
+    sha256 = "0k1nfgiszmai5dihhpfa5mgq9rwigl0n38dw10jn79x89xbdpyh5";
   } else {
     version = "2.6.1";
-    sha256 = "1y4czkfrd8p37vwv198nns4hz1brfv71na17pxsidwpxy7qnyfw1";
+    sha256 = "0q5a038ww5dn72yvwn5298d3ridkcngb1dik8hdyr3xh7gr5qibj";
   }
 ; in
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ]);
 
   buildPhase = ''
-    ${bash}/bin/bash autogen.sh
+    ${bash}/bin/bash autogen.sh || autoconf
     ${bash}/bin/bash configure --libdir=$out/lib/coq/${coq.coq-version}/user-contrib/Flocq
     ./remake
   '';
@@ -44,6 +44,6 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" "8.8" "8.9" "8.10" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" "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 ee9c6cb75cf..9be8459ee9f 100644
--- a/pkgs/development/coq-modules/hierarchy-builder/default.nix
+++ b/pkgs/development/coq-modules/hierarchy-builder/default.nix
@@ -2,15 +2,15 @@
 
 let
   versions = {
-      "0.9.0" =  {
-        rev = "v0.9.0";
-        sha256 = "1yss9f732r7bjaswgn46vd1rr3688ir0vz37wxkmy598xhrnd2ak";
+      "0.10.0" =  {
+        rev = "v0.10.0";
+        sha256 = "1a3vry9nzavrlrdlq3cys3f8kpq3bz447q8c4c7lh2qal61wb32h";
       };
   };
   version = x: versions.${x} // {version = x;};
   params = {
-   "8.10" = version "0.9.0";
-   "8.11" = version "0.9.0";
+   "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 9e78a9f3882..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.1";
-    uid = "38104";
-    sha256 = "1zklv2w34k866fpwmw8q692mid5n6s75d2mmhhigrzpx5l3d4z6y";
-  } 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" ];
+    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/mathcomp/default.nix b/pkgs/development/coq-modules/mathcomp/default.nix
index 140bf8ab536..8cf502a1943 100644
--- a/pkgs/development/coq-modules/mathcomp/default.nix
+++ b/pkgs/development/coq-modules/mathcomp/default.nix
@@ -66,7 +66,8 @@ let
   #######################################################################
     # sha256 of released mathcomp versions
     sha256 = {
-      "1.11.0+beta1" = "12i3zznwajlihzpqsiqniv20rklj8d8401lhd241xy4s21fxkkjm";
+      "1.11.0"       = "06a71d196wd5k4wg7khwqb7j7ifr7garhwkd54s86i0j7d6nhl3c";
+      "1.11+beta1"   = "12i3zznwajlihzpqsiqniv20rklj8d8401lhd241xy4s21fxkkjm";
       "1.10.0"       = "1b9m6pwxxyivw7rgx82gn5kmgv2mfv3h3y0mmjcjfypi8ydkrlbv";
       "1.9.0"        = "0lid9zaazdi3d38l8042lczb02pw5m9wq0yysiilx891hgq2p81r";
       "1.8.0"        = "07l40is389ih8bi525gpqs3qp4yb2kl11r9c8ynk1ifpjzpnabwp";
@@ -75,7 +76,8 @@ let
     };
     # versions of coq compatible with released mathcomp versions
     coq-versions     = {
-      "1.11.0+beta1" = flip elem [ "8.7" "8.8" "8.9" "8.10" "8.11" ];
+      "1.11.0"       = flip elem [ "8.7" "8.8" "8.9" "8.10" "8.11" "8.12" ];
+      "1.11+beta1"   = flip elem [ "8.7" "8.8" "8.9" "8.10" "8.11" "8.12" ];
       "1.10.0"       = flip elem [ "8.7" "8.8" "8.9" "8.10" "8.11" ];
       "1.9.0"        = flip elem [ "8.7" "8.8" "8.9" "8.10" ];
       "1.8.0"        = flip elem [ "8.7" "8.8" "8.9" ];
@@ -94,7 +96,7 @@ let
     # mathcomp preferred versions by decreasing order
     # (the first version in the list will be tried first)
     version-preferences =
-      [ "1.10.0" "1.9.0" "1.11.0+beta1" "1.8.0" "1.7.0" "1.6.1" ];
+      [ "1.10.0" "1.11.0" "1.9.0" "1.8.0" "1.7.0" "1.6.1" ];
 
     # list of core mathcomp packages sorted by dependency order
     packages = _version: # unused in current versions of mathcomp
diff --git a/pkgs/development/coq-modules/mathcomp/extra.nix b/pkgs/development/coq-modules/mathcomp/extra.nix
index d37608658b4..6a2dfcda345 100644
--- a/pkgs/development/coq-modules/mathcomp/extra.nix
+++ b/pkgs/development/coq-modules/mathcomp/extra.nix
@@ -80,7 +80,7 @@ let
   ############################
   rec-mathcomp-extra-config = {
     initial = {
-      mathcomp-finmap = version: {
+      mathcomp-finmap = {version, coqPackages}: {
         meta = {
           description = "A finset and finmap library";
           repo = "finmap";
@@ -89,7 +89,7 @@ let
         passthru.compatibleCoqVersions = flip elem [ "8.8" "8.9" "8.10" "8.11" ];
       };
 
-      mathcomp-bigenough = version: {
+      mathcomp-bigenough = {version, coqPackages}: {
         meta = {
           description = "A small library to do epsilon - N reasonning";
           repo = "bigenough";
@@ -98,7 +98,7 @@ let
         passthru.compatibleCoqVersions = flip elem [ "8.7" "8.8" "8.9" "8.10" "8.11" ];
       };
 
-      multinomials = version: {
+      multinomials = {version, coqPackages}: {
         buildInputs = [ which ];
         propagatedBuildInputs = with coqPackages;
           [ mathcomp.algebra mathcomp-finmap mathcomp-bigenough ];
@@ -110,9 +110,9 @@ let
         passthru.compatibleCoqVersions = flip elem [ "8.9" "8.10" "8.11" ];
       };
 
-      mathcomp-analysis = version: {
+      mathcomp-analysis = {version, coqPackages}: {
         propagatedBuildInputs = with coqPackages;
-          [ mathcomp.field mathcomp-finmap mathcomp-bigenough ];
+          [ mathcomp.field mathcomp-finmap mathcomp-bigenough mathcomp-real-closed ];
         meta = {
           description = "Analysis library compatible with Mathematical Components";
           homepage = "https://github.com/math-comp/analysis";
@@ -122,9 +122,9 @@ let
         passthru.compatibleCoqVersions = flip elem ["8.8" "8.9" "8.10" "8.11" ];
       };
 
-      mathcomp-real-closed = version: {
+      mathcomp-real-closed = {version, coqPackages}: {
         propagatedBuildInputs = with coqPackages;
-          [ coq mathcomp.field  mathcomp-bigenough ];
+          [ mathcomp.field mathcomp-bigenough ];
         meta = {
           description = "Mathematical Components Library on real closed fields";
           repo = "real-closed";
@@ -133,7 +133,7 @@ let
         passthru.compatibleCoqVersions = flip elem ["8.8" "8.9" "8.10" "8.11" ];
       };
 
-      coqeal = version: {
+      coqeal = {version, coqPackages}: {
         buildInputs = [ which ];
         propagatedBuildInputs = with coqPackages;
           [ mathcomp-algebra bignums paramcoq multinomials ];
@@ -168,12 +168,15 @@ let
         "1.0.0" = "10g0gp3hk7wri7lijkrqna263346wwf6a3hbd4qr9gn8hmsx70wg";
       };
       mathcomp-analysis = {
+        "0.3.1" = "1iad288yvrjv8ahl9v18vfblgqb1l5z6ax644w49w9hwxs93f2k8";
+        "0.3.0" = "03klwi4fja0cqb4myp3kgycfbmdv00bznmxf8yg3zzzzw997hjqc";
         "0.2.3" = "0p9mr8g1qma6h10qf7014dv98ln90dfkwn76ynagpww7qap8s966";
         "0.2.2" = "1d5dwg9di2ppdzfg21zr0a691zigb5kz0lcw263jpyli1nrq7cvk";
         "0.2.0" = "1186xjxgns4ns1szyi931964bjm0mp126qzlv10mkqqgfw07nhrd";
         "0.1.0" = "0hwkr2wzy710pcyh274fcarzdx8sv8myp16pv0vq5978nmih46al";
       };
       multinomials = {
+        "1.5.2" = "15aspf3jfykp1xgsxf8knqkxv8aav2p39c2fyirw7pwsfbsv2c4s";
         "1.5.1" = "13nlfm2wqripaq671gakz5mn4r0xwm0646araxv0nh455p9ndjs3";
         "1.5"   = "064rvc0x5g7y1a0nip6ic91vzmq52alf6in2bc2dmss6dmzv90hw";
         "1.4"   = "0vnkirs8iqsv8s59yx1fvg1nkwnzydl42z3scya1xp1b48qkgn0p";
@@ -183,6 +186,8 @@ let
         "1.0"   = "1qmbxp1h81cy3imh627pznmng0kvv37k4hrwi2faa101s6bcx55m";
       };
       mathcomp-real-closed = {
+        "1.1.1" = "0ksjscrgq1i79vys4zrmgvzy2y4ylxa8wdsf4kih63apw6v5ws6b";
+        "1.1.0" = "0zgfmrlximw77bw5w6w0xg2nampp02pmrwnrzx8m1n5pqljnv8fh";
         "1.0.5" = "0q8nkxr9fba4naylr5xk7hfxsqzq2pvwlg1j0xxlhlgr3fmlavg2";
         "1.0.4" = "058v9dj973h9kfhqmvcy9a6xhhxzljr90cf99hdfcdx68fi2ha1b";
         "1.0.3" = "1xbzkzqgw5p42dx1liy6wy8lzdk39zwd6j14fwvv5735k660z7yb";
@@ -190,6 +195,7 @@ let
         "1.0.1" = "0j81gkjbza5vg89v4n9z598mfdbql416963rj4b8fzm7dp2r4rxg";
       };
       coqeal = {
+        "1.0.4" = "1g5m26lr2lwxh6ld2gykailhay4d0ayql4bfh0aiwqpmmczmxipk";
         "1.0.3" = "0hc63ny7phzbihy8l7wxjvn3haxx8jfnhi91iw8hkq8n29i23v24";
         "1.0.2" = "1brmf3gj03iky1bcl3g9vx8vknny7xfvs0y2rfr85am0296sxsfj";
         "1.0.1" = "19jhdrv2yp9ww0h8q73ihb2w1z3glz4waf2d2n45klafxckxi7bm";
@@ -201,13 +207,21 @@ let
     # CONSISTENT sets of packages. #
     ################################
     for-coq-and-mc = let
+      v6 = {
+        mathcomp-finmap       = "1.5.0";
+        mathcomp-bigenough    = "1.0.0";
+        mathcomp-analysis     = "0.3.1";
+        multinomials          = "1.5.2";
+        mathcomp-real-closed  = "1.1.1";
+        coqeal                = "1.0.4";
+      };
       v5 = {
         mathcomp-finmap       = "1.5.0";
         mathcomp-bigenough    = "1.0.0";
-        mathcomp-analysis     = "678d3cc37f5f3c71b1bd550836eb44e3ba2a5459";
-        multinomials           = "1.5.1";
+        mathcomp-analysis     = "0.3.0";
+        multinomials          = "1.5.1";
         mathcomp-real-closed  = "1.0.5";
-        coqeal                = "CohenCyril/bdfc96771644b082e41268edc43d61dc5fda2358";
+        coqeal                = "1.0.4";
       };
       v4 = v3 // { coqeal = "1.0.3"; };
       v3 = {
@@ -236,32 +250,37 @@ let
     in
       {
         "8.11" = {
-          "1.11.0+beta1" = v5;
+          "1.11.0"     = v6;
+          "1.11+beta1" = v5;
           "1.10.0"       = v4 // {mathcomp-finmap = "1.4.0+coq-8.11";};
         };
         "8.10" = {
-          "1.11.0+beta1" = v5;
+          "1.11.0"       = removeAttrs v6 ["coqeal"];
+          "1.11+beta1"   = removeAttrs v5 ["coqeal"];
           "1.10.0"       = v4;
           "1.9.0"        = removeAttrs v3 ["coqeal"];
         };
         "8.9" = {
-          "1.11.0+beta1" = removeAttrs v5 ["mathcomp-analysis"];
+          "1.11.0"       = removeAttrs v6 ["mathcomp-analysis"];
+          "1.11+beta1"   = removeAttrs v5 ["mathcomp-analysis"];
           "1.10.0"       = v4;
           "1.9.0"        = removeAttrs v3 ["coqeal"];
           "1.8.0"        = removeAttrs v2 ["coqeal"];
         };
         "8.8" = {
-          "1.11.0+beta1" = removeAttrs v5 ["mathcomp-analysis"];
+          "1.11.0"       = removeAttrs v6 ["mathcomp-analysis"];
+          "1.11+beta1"   = removeAttrs v5 ["mathcomp-analysis"];
           "1.10.0"       = removeAttrs v4 ["mathcomp-analysis"];
           "1.9.0"        = removeAttrs v3 ["coqeal"];
           "1.8.0"        = removeAttrs v2 ["coqeal"];
           "1.7.0"        = removeAttrs v1 ["coqeal" "multinomials"];
         };
         "8.7" = {
-          "1.11.0+beta1" = removeAttrs v5 ["mathcomp-analysis"];
+          "1.11.0"       = removeAttrs v6 ["mathcomp-analysis"];
+          "1.11+beta1"   = removeAttrs v5 ["mathcomp-analysis"];
           "1.10.0"       = removeAttrs v4 ["mathcomp-analysis"];
-          "1.9.0"        = removeAttrs v3 ["coqeal"];
-          "1.8.0"        = removeAttrs v2 ["coqeal"];
+          "1.9.0"        = removeAttrs v3 ["coqeal" "mathcomp-analysis"];
+          "1.8.0"        = removeAttrs v2 ["coqeal" "mathcomp-analysis"];
           "1.7.0"        = removeAttrs v1 ["coqeal" "multinomials"];
         };
       };
@@ -318,13 +337,14 @@ let
   rec-mathcomp-extra-override = generic: old: let
     version = getVersion generic;
     package = old.meta.package or "math-comp-nix";
-    cfg = pkgUp ((mathcomp-extra-config.initial.${package} or (_: {})) version) old
+    cfg = pkgUp ((mathcomp-extra-config.initial.${package} or (_: {}))
+      { inherit version coqPackages; }) old
           // { inherit version; };
     fix = attrs: fix-attrs (pkgUp cfg attrs);
   in
     if isFunction generic then fix (generic cfg)
     else  if generic == null || generic == "" then fix {}
-    else  if isDerivation generic then fix generic.drvAttrs
+    else  if isDerivation generic then generic.drvAttrs
     else  if isAttrs generic then fix generic
     else  if generic == "broken" then fix { meta.broken = true; passthru.compatibleCoqVersions = _: false; }
     else  let fixedcfg = fix cfg; in fixedcfg // (
@@ -365,7 +385,7 @@ in
     mathcomp-real-closed  = current-mathcomp-extra "mathcomp-real-closed";
     coqeal                = current-mathcomp-extra "coqeal";
 
-    mathcomp-extra-fast    = map (pkg: current-mathcomp-extra pkg)
+    mathcomp-extra-fast    = map current-mathcomp-extra
       (attrNames (filterAttrs (pkg: config: !(config?slow && config.slow)) for-this));
-    mathcomp-extra-all    = map (pkg: current-mathcomp-extra pkg) (attrNames for-this);
+    mathcomp-extra-all    = map current-mathcomp-extra (attrNames for-this);
   }
diff --git a/pkgs/development/coq-modules/simple-io/default.nix b/pkgs/development/coq-modules/simple-io/default.nix
index 07ce35875d1..82fa215ee9c 100644
--- a/pkgs/development/coq-modules/simple-io/default.nix
+++ b/pkgs/development/coq-modules/simple-io/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub, coq, coq-ext-lib }:
 
 stdenv.mkDerivation rec {
-  version = "1.2.0";
+  version = "1.3.0";
   name = "coq${coq.coq-version}-simple-io-${version}";
   src = fetchFromGitHub {
     owner = "Lysxia";
     repo = "coq-simple-io";
     rev = version;
-    sha256 = "1im1vwp7l7ha8swnhgbih0qjg187n8yx14i003nf6yy7p0ryxc9m";
+    sha256 = "1yp7ca36jyl9kz35ghxig45x6cd0bny2bpmy058359p94wc617ax";
   };
 
   buildInputs = [ coq ] ++ (with coq.ocamlPackages; [ ocaml ocamlbuild ]);
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   };
 
   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/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/dhall-modules/Prelude.nix b/pkgs/development/dhall-modules/Prelude.nix
index c689f7156fb..6af08edf88a 100644
--- a/pkgs/development/dhall-modules/Prelude.nix
+++ b/pkgs/development/dhall-modules/Prelude.nix
@@ -1,26 +1,17 @@
-{ buildDhallPackage, fetchFromGitHub, lib }:
+{ buildDhallGitHubPackage, lib }:
 
 let
   makePrelude =
-    version:
-    lib.makeOverridable
-      ( { rev, sha256, file ? "package.dhall" }:
-          buildDhallPackage {
-            name = "Prelude-${version}";
-
-            code =
-              let
-                src = fetchFromGitHub {
-                  owner = "dhall-lang";
-                  repo  = "dhall-lang";
-
-                  inherit rev sha256;
-                };
-
-              in
-                "${src}/Prelude/${file}";
-          }
-      );
+    version: { rev, sha256 }:
+      buildDhallGitHubPackage {
+        name      = "Prelude-${version}";
+        owner     = "dhall-lang";
+        repo      = "dhall-lang";
+        directory = "Prelude";
+        file      = "package.dhall";
+
+        inherit rev sha256;
+      };
 
 in
   lib.mapAttrs makePrelude {
diff --git a/pkgs/development/dhall-modules/dhall-kubernetes.nix b/pkgs/development/dhall-modules/dhall-kubernetes.nix
index 23a1123eacb..2de89d63ec3 100644
--- a/pkgs/development/dhall-modules/dhall-kubernetes.nix
+++ b/pkgs/development/dhall-modules/dhall-kubernetes.nix
@@ -1,29 +1,16 @@
-{ buildDhallPackage, fetchFromGitHub, lib }:
+{ buildDhallGitHubPackage, lib }:
 
 let
   makeDhallKubernetes =
-    version:
-    lib.makeOverridable
-      ( { rev
-        , sha256
-        , file ? "package.dhall"
-        }:
-          buildDhallPackage {
-            name = "dhall-kubernetes-${version}";
+    version: { rev, sha256 }:
+      buildDhallGitHubPackage {
+        name  = "dhall-kubernetes-${version}";
+        owner = "dhall-lang";
+        repo  = "dhall-kubernetes";
+        file  = "package.dhall";
 
-            code =
-              let
-                src = fetchFromGitHub {
-                  owner = "dhall-lang";
-                  repo  = "dhall-kubernetes";
-
-                  inherit rev sha256;
-                };
-
-              in
-                "${src}/${file}";
-          }
-      );
+        inherit rev sha256;
+      };
 
 in
   lib.mapAttrs makeDhallKubernetes {
diff --git a/pkgs/development/dhall-modules/dhall-packages.nix b/pkgs/development/dhall-modules/dhall-packages.nix
index 34ebbed6869..866b689e38a 100644
--- a/pkgs/development/dhall-modules/dhall-packages.nix
+++ b/pkgs/development/dhall-modules/dhall-packages.nix
@@ -1,47 +1,32 @@
-{ buildDhallPackage, dhall-kubernetes, fetchFromGitHub, lib, Prelude }:
+{ buildDhallGitHubPackage, dhall-kubernetes, lib, Prelude }:
 
 let
   makeDhallPackages =
-    version:
-    lib.makeOverridable
-      ( { rev
-        , sha256
-        , dependencies
-        }:
-          buildDhallPackage {
-            name = "dhall-packages-${version}";
+    version: { rev, sha256, dependencies }:
+      buildDhallGitHubPackage {
+        name  = "dhall-packages-${version}";
+        owner = "EarnestResearch";
+        repo  = "dhall-packages";
+        file  = "package.dhall";
 
-            inherit dependencies;
-
-            code =
-              let
-                src = fetchFromGitHub {
-                  owner = "EarnestResearch";
-                  repo  = "dhall-packages";
-
-                  inherit rev sha256;
-                };
-
-              in
-                "${src}/package.dhall";
-          }
-      );
+        inherit rev sha256 dependencies;
+      };
 
 in
   lib.mapAttrs makeDhallPackages {
     "0.11.1" =
       let
-        k8s_6a47bd = dhall-kubernetes."3.0.0".override {
+        k8s_6a47bd = dhall-kubernetes.override {
           rev    = "6a47bd50c4d3984a13570ea62382a3ad4a9919a4";
           sha256 = "1azqs0x2kia3xw93rfk2mdi8izd7gy9aq6qzbip32gin7dncmfhh";
         };
 
-        k8s_4ad581 = dhall-kubernetes."3.0.0".override {
+        k8s_4ad581 = dhall-kubernetes.override {
           rev    = "4ad58156b7fdbbb6da0543d8b314df899feca077";
           sha256 = "12fm70qbhcainxia388svsay2cfg9iksc6mss0nvhgxhpypgp8r0";
         };
 
-        k8s_fee24c = dhall-kubernetes."3.0.0".override {
+        k8s_fee24c = dhall-kubernetes.override {
           rev    = "fee24c0993ba0b20190e2fdb94e386b7fb67252d";
           sha256 = "11d93z8y0jzrb8dl43gqha9z96nxxqkl7cbxpz8hw8ky9x6ggayk";
         };
diff --git a/pkgs/development/dotnet-modules/python-language-server/default.nix b/pkgs/development/dotnet-modules/python-language-server/default.nix
index 77154485118..286037b2cce 100644
--- a/pkgs/development/dotnet-modules/python-language-server/default.nix
+++ b/pkgs/development/dotnet-modules/python-language-server/default.nix
@@ -11,7 +11,7 @@
 
 let deps = import ./deps.nix { inherit fetchurl; };
 
-    version = "2020-04-24";
+    version = "2020-06-19";
 
     # Build the nuget source needed for the later build all by itself
     # since it's a time-consuming step that only depends on ./deps.nix.
@@ -49,8 +49,8 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "python-language-server";
-    rev = "d480cd12649dcff78ed271c92c274fab60c00f2f";
-    sha256 = "0p2sw6w6fymdlxn8r5ndvija2l7rd77f5rddq9n71dxj1nicljh3";
+    rev = "838ba78e00173d639bd90f54d8610ec16b4ba3a2";
+    sha256 = "0nj8l1apcb67gqwy5i49v0f01fs4lvdfmmp4w2hvrpss9if62c1m";
   };
 
   buildInputs = [dotnet-sdk_3 openssl icu];
diff --git a/pkgs/development/dotnet-modules/python-language-server/deps.nix b/pkgs/development/dotnet-modules/python-language-server/deps.nix
index 803f33f892d..c47e29b6420 100644
--- a/pkgs/development/dotnet-modules/python-language-server/deps.nix
+++ b/pkgs/development/dotnet-modules/python-language-server/deps.nix
@@ -29,24 +29,6 @@ in [
   })
 
   (fetchNuGet {
-    name = "LiteDB";
-    version = "4.1.4";
-    sha256 = "1g9258mv3jm9ps2s5wcxbmszh9nqiiw3d9nrfqis8x72jqiqi6js";
-  })
-
-  (fetchNuGet {
-    name = "MSTest.TestAdapter";
-    version = "2.1.0";
-    sha256 = "1g1v8yjnk4nr1c36k3cz116889bnpiw1i1jkmqnpb19wms7sq7cz";
-  })
-
-  (fetchNuGet {
-    name = "MSTest.TestFramework";
-    version = "2.1.0";
-    sha256 = "0mac4h7ylw953chclhz0lrn19yks3bab9dn9x9fpjqi7309gid0p";
-  })
-
-  (fetchNuGet {
     name = "MessagePack";
     version = "2.1.90";
     sha256 = "1j5wjl7aq7nn5ga3j6zaaivdf2wlfyd7w66ak0i7krgrmv26lb8i";
@@ -101,57 +83,21 @@ in [
   })
 
   (fetchNuGet {
-    name = "Microsoft.CSharp";
-    version = "4.0.1";
-    sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
-  })
-
-  (fetchNuGet {
     name = "Microsoft.CodeCoverage";
     version = "16.5.0";
     sha256 = "0610wzn4qyywf9lb4538vwqhprxc4g0g7gjbmnjzvx97jr5nd5mf";
   })
 
   (fetchNuGet {
-    name = "Microsoft.Extensions.FileSystemGlobbing";
-    version = "3.1.2";
-    sha256 = "1zwvzp0607irs7irfbq8vnclg5nj2jpyggw9agm4a32la5ngg27m";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NET.Test.Sdk";
-    version = "16.5.0";
-    sha256 = "19f5bvzci5mmfz81jwc4dax4qdf7w4k67n263383mn8mawf22bfq";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
-    version = "1.1.0";
-    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
-    version = "1.1.1";
-    sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
-    version = "2.0.0";
-    sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
-    version = "3.1.0";
-    sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
+    name = "Microsoft.CSharp";
+    version = "4.0.1";
+    sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
   })
 
   (fetchNuGet {
-    name = "Microsoft.NETCore.Targets";
-    version = "1.1.0";
-    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+    name = "Microsoft.Extensions.FileSystemGlobbing";
+    version = "3.1.2";
+    sha256 = "1zwvzp0607irs7irfbq8vnclg5nj2jpyggw9agm4a32la5ngg27m";
   })
 
   (fetchNuGet {
@@ -209,6 +155,42 @@ in [
   })
 
   (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.1.0";
+    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+  })
+
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.1.1";
+    sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj";
+  })
+
+  (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.1.0";
+    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+  })
+
+  (fetchNuGet {
+    name = "Microsoft.NET.Test.Sdk";
+    version = "16.5.0";
+    sha256 = "19f5bvzci5mmfz81jwc4dax4qdf7w4k67n263383mn8mawf22bfq";
+  })
+
+  (fetchNuGet {
     name = "Microsoft.TestPlatform.ObjectModel";
     version = "16.5.0";
     sha256 = "02h7j1fr0fwcggn0wgddh59k8b2wmly3snckwhswzqvks5rvfnnw";
@@ -269,21 +251,15 @@ in [
   })
 
   (fetchNuGet {
-    name = "NETStandard.Library";
-    version = "1.6.1";
-    sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
-  })
-
-  (fetchNuGet {
-    name = "NETStandard.Library";
-    version = "2.0.3";
-    sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
+    name = "MSTest.TestAdapter";
+    version = "2.1.0";
+    sha256 = "1g1v8yjnk4nr1c36k3cz116889bnpiw1i1jkmqnpb19wms7sq7cz";
   })
 
   (fetchNuGet {
-    name = "NSubstitute";
-    version = "4.2.1";
-    sha256 = "0wgfjh032qds994fmgxvsg88nhgjrx7p9rnv6z678jm62qi14asy";
+    name = "MSTest.TestFramework";
+    version = "2.1.0";
+    sha256 = "0mac4h7ylw953chclhz0lrn19yks3bab9dn9x9fpjqi7309gid0p";
   })
 
   (fetchNuGet {
@@ -293,9 +269,15 @@ in [
   })
 
   (fetchNuGet {
-    name = "NewtonSoft.Json";
-    version = "12.0.3";
-    sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
+    name = "NETStandard.Library";
+    version = "1.6.1";
+    sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
+  })
+
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "2.0.3";
+    sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
   })
 
   (fetchNuGet {
@@ -311,18 +293,342 @@ in [
   })
 
   (fetchNuGet {
+    name = "NewtonSoft.Json";
+    version = "12.0.3";
+    sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
+  })
+
+  (fetchNuGet {
     name = "Newtonsoft.Json";
     version = "9.0.1";
     sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
   })
 
   (fetchNuGet {
+    name = "NSubstitute";
+    version = "4.2.1";
+    sha256 = "0wgfjh032qds994fmgxvsg88nhgjrx7p9rnv6z678jm62qi14asy";
+  })
+
+  (fetchNuGet {
     name = "NuGet.Frameworks";
     version = "5.0.0";
     sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr";
   })
 
   (fetchNuGet {
+    name = "runtime.any.System.Collections";
+    version = "4.3.0";
+    sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0";
+  })
+
+  (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.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.3.0";
+    sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection";
+    version = "4.3.0";
+    sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime";
+    version = "4.3.0";
+    sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8";
+  })
+
+  (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.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i";
+  })
+
+  (fetchNuGet {
+    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
+  })
+
+  (fetchNuGet {
+    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r";
+  })
+
+  (fetchNuGet {
+    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
+  })
+
+  (fetchNuGet {
+    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3";
+  })
+
+  (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.3.0";
+    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
+  })
+
+  (fetchNuGet {
+    name = "runtime.native.System.IO.Compression";
+    version = "4.3.0";
+    sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d";
+  })
+
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Http";
+    version = "4.3.0";
+    sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
+  })
+
+  (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.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6";
+  })
+
+  (fetchNuGet {
+    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
+  })
+
+  (fetchNuGet {
+    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438";
+  })
+
+  (fetchNuGet {
+    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
+  })
+
+  (fetchNuGet {
+    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj";
+  })
+
+  (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.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6";
+  })
+
+  (fetchNuGet {
+    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
+  })
+
+  (fetchNuGet {
+    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1";
+  })
+
+  (fetchNuGet {
+    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
+  })
+
+  (fetchNuGet {
+    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi";
+  })
+
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
+  })
+
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w";
+  })
+
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
+  })
+
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c";
+  })
+
+  (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.3.0";
+    sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5";
+  })
+
+  (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.3.0";
+    sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk";
+  })
+
+  (fetchNuGet {
+    name = "runtime.unix.System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p";
+  })
+
+  (fetchNuGet {
     name = "StreamJsonRpc";
     version = "2.3.103";
     sha256 = "0z8ahxkbbrzsn56ylzlciriiid4bslf6y1rk49wzahwpvzlik1iw";
@@ -1006,316 +1312,4 @@ in [
     sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
   })
 
-  (fetchNuGet {
-    name = "runtime.any.System.Collections";
-    version = "4.3.0";
-    sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0";
-  })
-
-  (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.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.3.0";
-    sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Reflection";
-    version = "4.3.0";
-    sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Reflection.Extensions";
-    version = "4.3.0";
-    sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Reflection.Primitives";
-    version = "4.3.0";
-    sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Resources.ResourceManager";
-    version = "4.3.0";
-    sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Runtime";
-    version = "4.3.0";
-    sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Runtime.Handles";
-    version = "4.3.0";
-    sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Runtime.InteropServices";
-    version = "4.3.0";
-    sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Text.Encoding";
-    version = "4.3.0";
-    sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Text.Encoding.Extensions";
-    version = "4.3.0";
-    sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8";
-  })
-
-  (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.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i";
-  })
-
-  (fetchNuGet {
-    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
-  })
-
-  (fetchNuGet {
-    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r";
-  })
-
-  (fetchNuGet {
-    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
-  })
-
-  (fetchNuGet {
-    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3";
-  })
-
-  (fetchNuGet {
-    name = "runtime.native.System";
-    version = "4.3.0";
-    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
-  })
-
-  (fetchNuGet {
-    name = "runtime.native.System.IO.Compression";
-    version = "4.3.0";
-    sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d";
-  })
-
-  (fetchNuGet {
-    name = "runtime.native.System.Net.Http";
-    version = "4.3.0";
-    sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
-  })
-
-  (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.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6";
-  })
-
-  (fetchNuGet {
-    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
-  })
-
-  (fetchNuGet {
-    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438";
-  })
-
-  (fetchNuGet {
-    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
-  })
-
-  (fetchNuGet {
-    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj";
-  })
-
-  (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.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6";
-  })
-
-  (fetchNuGet {
-    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
-  })
-
-  (fetchNuGet {
-    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c";
-  })
-
-  (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.3.0";
-    sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5";
-  })
-
-  (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.3.0";
-    sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.System.Runtime.Extensions";
-    version = "4.3.0";
-    sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p";
-  })
-
 ]
diff --git a/pkgs/development/go-modules/generic/default.nix b/pkgs/development/go-modules/generic/default.nix
index 42b446b9fa8..402c3e781ad 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
@@ -13,12 +13,16 @@
 # path to go.mod and go.sum directory
 , modRoot ? "./"
 
-# modSha256 is the sha256 of the vendored dependencies
+# vendorSha256 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
+# if vendorSha256 is null, then we won't fetch any dependencies and
+# rely on the vendor folder within the source.
+, vendorSha256
+# Whether to delete the vendor folder supplied with the source.
+, deleteVendor ? false
+# 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
@@ -37,21 +41,28 @@
 with builtins;
 
 let
-  args = removeAttrs args' [ "overrideModAttrs" "modSha256" "disabled" ];
+  args = removeAttrs args' [ "overrideModAttrs" "vendorSha256" "disabled" ];
 
   removeReferences = [ ] ++ lib.optional (!allowGoReference) go;
 
   removeExpr = refs: ''remove-references-to ${lib.concatMapStrings (ref: " -t ${ref}") refs}'';
 
-  go-modules = go.stdenv.mkDerivation (let modArgs = {
+  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";
 
-    nativeBuildInputs = [ go git cacert ];
+    nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ go git cacert ];
 
     inherit (args) src;
     inherit (go) GOOS GOARCH;
 
     patches = args.patches or [];
+    preBuild = args.preBuild or "";
+    sourceRoot = args.sourceRoot or "";
 
     GO111MODULE = "on";
 
@@ -64,7 +75,6 @@ let
 
       export GOCACHE=$TMPDIR/go-cache
       export GOPATH="$TMPDIR/go"
-      mkdir -p "''${GOPATH}/pkg/mod/cache/download"
       cd "${modRoot}"
       runHook postConfigure
     '';
@@ -72,7 +82,27 @@ let
     buildPhase = args.modBuildPhase or ''
       runHook preBuild
 
-      go mod download
+      if [ ${deleteFlag} == "true" ]; then
+        if [ ! -d vendor ]; then
+          echo "vendor folder does not exist, 'deleteVendor' is not needed"
+          exit 10
+        else
+          rm -rf vendor
+        fi
+      fi
+
+      if [ -d vendor ]; then
+        echo "vendor folder exists, please set 'vendorSha256 = null;' in your expression"
+        exit 10
+      fi
+
+      if [ ${vendCommand} != "false" ]; then
+        echo running vend to rewrite vendor folder
+        ${vendCommand}
+      else
+        go mod vendor
+      fi
+      mkdir -p vendor
 
       runHook postBuild
     '';
@@ -81,23 +111,19 @@ let
       runHook preInstall
 
       # remove cached lookup results and tiles
-      rm -rf "''${GOPATH}/pkg/mod/cache/download/sumdb"
-      cp -r "''${GOPATH}/pkg/mod/cache/download" $out
+      cp -r --reflink=auto vendor $out
 
       runHook postInstall
     '';
 
     dontFixup = true;
   }; in modArgs // (
-    if modSha256 == null then
-      { __noChroot = true; }
-    else
       {
         outputHashMode = "recursive";
         outputHashAlgo = "sha256";
-        outputHash = modSha256;
+        outputHash = vendorSha256;
       }
-  ) // overrideModAttrs modArgs);
+  ) // overrideModAttrs modArgs) else "";
 
   package = go.stdenv.mkDerivation (args // {
     nativeBuildInputs = [ removeReferencesTo go ] ++ nativeBuildInputs;
@@ -105,6 +131,7 @@ let
     inherit (go) GOOS GOARCH;
 
     GO111MODULE = "on";
+    GOFLAGS = "-mod=vendor";
 
     configurePhase = args.configurePhase or ''
       runHook preConfigure
@@ -112,9 +139,12 @@ let
       export GOCACHE=$TMPDIR/go-cache
       export GOPATH="$TMPDIR/go"
       export GOSUMDB=off
-      export GOPROXY=file://${go-modules}
-
+      export GOPROXY=off
       cd "$modRoot"
+      if [ -n "${go-modules}" ]; then
+          rm -rf vendor
+          ln -s ${go-modules} vendor
+      fi
 
       runHook postConfigure
     '';
@@ -183,7 +213,7 @@ let
       runHook postBuild
     '';
 
-    doCheck = args.doCheck or false;
+    doCheck = args.doCheck or true;
     checkPhase = args.checkPhase or ''
       runHook preCheck
 
@@ -212,7 +242,7 @@ let
 
     disallowedReferences = lib.optional (!allowGoReference) go;
 
-    passthru = passthru // { inherit go go-modules modSha256; };
+    passthru = passthru // { inherit go go-modules vendorSha256 ; };
 
     meta = {
       # Add default meta information
diff --git a/pkgs/development/guile-modules/guile-cairo/default.nix b/pkgs/development/guile-modules/guile-cairo/default.nix
index 690fce9da66..000932cc010 100644
--- a/pkgs/development/guile-modules/guile-cairo/default.nix
+++ b/pkgs/development/guile-modules/guile-cairo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "guile-cairo";
-  version = "1.10.0";
+  version = "1.11.1";
 
   src = fetchurl {
     url = "mirror://savannah/guile-cairo/${pname}-${version}.tar.gz";
-    sha256 = "0p6xrhf2k6n5dybn88050za7h90gnd7534n62l53vsca187pwgdf";
+    sha256 = "1gc642r9ndsjhhmh9bl5cbd3dwvy4dpxwhr0zpsw43y9nmz37xpl";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 55934862c94..131ad6ede3e 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -26,6 +26,12 @@ self: super: {
   # successfully with recent versions of the compiler).
   bin-package-db = null;
 
+  # waiting for release: https://github.com/jwiegley/c2hsc/issues/41
+  c2hsc = appendPatch super.c2hsc (pkgs.fetchpatch {
+    url = "https://github.com/jwiegley/c2hsc/commit/490ecab202e0de7fc995eedf744ad3cb408b53cc.patch";
+    sha256 = "1c7knpvxr7p8c159jkyk6w29653z5yzgjjqj11130bbb8mk9qhq7";
+  });
+
   # Some Hackage packages reference this attribute, which exists only in the
   # GHCJS package set. We provide a dummy version here to fix potential
   # evaluation errors.
@@ -45,10 +51,6 @@ self: super: {
   # Needs older QuickCheck version
   attoparsec-varword = dontCheck super.attoparsec-varword;
 
-  # Tests are failing
-  # https://github.com/bos/statistics/issues/123
-  statistics = dontCheck super.statistics;
-
   # These packages (and their reverse deps) cannot be built with profiling enabled.
   ghc-heap-view = disableLibraryProfiling super.ghc-heap-view;
   ghc-datasize = disableLibraryProfiling super.ghc-datasize;
@@ -60,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 {
@@ -71,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;
@@ -119,19 +117,16 @@ 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;
   hsc3-db = dontHaddock super.hsc3-db;
-  classy-prelude-yesod = dontHaddock super.classy-prelude-yesod; # https://github.com/haskell/haddock/issues/979
 
   # https://github.com/techtangents/ablist/issues/1
   ABList = dontCheck super.ABList;
 
   # sse2 flag due to https://github.com/haskell/vector/issues/47.
-  # dontCheck due to https://github.com/haskell/vector/issues/138
-  vector = dontCheck (if pkgs.stdenv.isi686 then appendConfigureFlag super.vector "--ghc-options=-msse2" else super.vector);
+  vector = if pkgs.stdenv.isi686 then appendConfigureFlag super.vector "--ghc-options=-msse2" else super.vector;
 
   conduit-extra = if pkgs.stdenv.isDarwin
     then super.conduit-extra.overrideAttrs (drv: { __darwinAllowLocalNetworking = true; })
@@ -175,20 +170,14 @@ 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;
 
   # These packages try to execute non-existent external programs.
   cmaes = dontCheck super.cmaes;                        # http://hydra.cryp.to/build/498725/log/raw
   dbmigrations = dontCheck super.dbmigrations;
-  euler = dontCheck super.euler;                        # https://github.com/decomputed/euler/issues/1
   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
@@ -213,19 +202,18 @@ self: super: {
   # base bound
   digit = doJailbreak super.digit;
 
-  # Needs older version of QuickCheck.
-  these_0_7_6 = doJailbreak super.these_0_7_6;
-
-  # dontCheck: Can be removed once https://github.com/haskell-nix/hnix/commit/471712f is in (5.2 probably)
-  #   This is due to GenList having been removed from generic-random in 1.2.0.0
-  # doJailbreak: Can be removed once https://github.com/haskell-nix/hnix/pull/329 is in (5.2 probably)
-  #   This is due to hnix currently having an upper bound of <0.5 on deriving-compat, works just fine with our current version 0.5.1 though
-  # Does not support recent versions of "these".
-  # https://github.com/haskell-nix/hnix/issues/514
-  hnix =
-    generateOptparseApplicativeCompletion "hnix" (
-      dontCheck (doJailbreak (super.hnix.override { these = self.these_0_7_6; }))
-    );
+  # 2020-06-05: HACK: does not pass own build suite - `dontCheck` We should
+  # generate optparse-applicative completions for the hnix executable.  Sadly
+  # building of the executable has been disabled for ghc < 8.10 in hnix.
+  # Generating the completions should be activated again, once we default to
+  # ghc 8.10.
+  hnix = dontCheck (super.hnix.override {
+    # 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_1;
+  });
 
   # Fails for non-obvious reasons while attempting to use doctest.
   search = dontCheck super.search;
@@ -252,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;
@@ -309,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;
@@ -323,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;
@@ -355,7 +353,6 @@ self: super: {
   pwstore-cli = dontCheck super.pwstore-cli;
   quantities = dontCheck super.quantities;
   redis-io = dontCheck super.redis-io;
-  reflex = dontCheck super.reflex; # test suite uses hlint, which has different haskell-src-exts version
   rethinkdb = dontCheck super.rethinkdb;
   Rlang-QQ = dontCheck super.Rlang-QQ;
   safecopy = dontCheck super.safecopy;
@@ -397,9 +394,6 @@ self: super: {
   # https://github.com/bos/snappy/issues/1
   snappy = dontCheck super.snappy;
 
-  # https://github.com/kim/snappy-framing/issues/3
-  snappy-framing = dontHaddock super.snappy-framing;
-
   # https://ghc.haskell.org/trac/ghc/ticket/9625
   vty = dontCheck super.vty;
 
@@ -412,9 +406,6 @@ self: super: {
   # https://github.com/joeyadams/haskell-stm-delay/issues/3
   stm-delay = dontCheck super.stm-delay;
 
-  # https://github.com/cgaebel/stm-conduit/issues/33
-  stm-conduit = dontCheck super.stm-conduit;
-
   # https://github.com/pixbi/duplo/issues/25
   duplo = dontCheck super.duplo;
 
@@ -440,9 +431,6 @@ self: super: {
   # https://github.com/NixOS/nixpkgs/issues/6350
   paypal-adaptive-hoops = overrideCabal super.paypal-adaptive-hoops (drv: { testTarget = "local"; });
 
-  # https://github.com/vincenthz/hs-asn1/issues/12
-  asn1-encoding = dontCheck super.asn1-encoding;
-
   # Avoid "QuickCheck >=2.3 && <2.10" dependency we cannot fulfill in lts-11.x.
   test-framework = dontCheck super.test-framework;
 
@@ -460,13 +448,10 @@ self: super: {
   apiary-session = dontCheck super.apiary-session;
   apiary-websockets = dontCheck super.apiary-websockets;
 
-  # https://github.com/PaulJohnson/geodetics/issues/1
-  geodetics = dontCheck super.geodetics;
-
   # 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
@@ -481,6 +466,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; });
@@ -507,21 +498,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;
 
@@ -534,12 +516,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;
 
@@ -554,21 +530,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;
 
@@ -599,25 +566,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
     '';
@@ -685,9 +637,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 {
@@ -698,9 +647,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: {
@@ -710,21 +656,7 @@ self: super: {
   });
 
   # The standard libraries are compiled separately.
-  # The megaparsec-7 override is needed because https://github.com/idris-lang/Idris-dev/issues/4826 declares that
-  # idris1 has no plans to migrate to megaparsec-8.
-  # The idris-lang/Idris-dev#4808 patch is for GHC 8.8 compatibility, and can likely be removed with the next release.
-  idris = generateOptparseApplicativeCompletion "idris" (doJailbreak (dontCheck
-    (appendPatches
-      (super.idris.override { megaparsec = self.megaparsec_7_0_5; }) [
-        (pkgs.fetchpatch {
-          url = "https://github.com/idris-lang/Idris-dev/pull/4808.diff";
-          sha256 = "060ib1rczy34ip8xf3bv1pf28655f6s0bvvij19jhh5dpcr0pf71";
-          excludes = [ ".travis.yml" "Makefile" "appveyor.yml" ];
-        })
-      ])));
-
-  # https://github.com/bos/math-functions/issues/25
-  math-functions = dontCheck super.math-functions;
+  idris = generateOptparseApplicativeCompletion "idris" (dontCheck super.idris);
 
   # build servant docs from the repository
   servant =
@@ -763,10 +695,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;
@@ -789,39 +717,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; });
 
@@ -851,9 +757,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;
 
@@ -873,8 +776,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;
@@ -891,20 +793,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;
 
@@ -912,7 +812,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
@@ -941,14 +840,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: {
@@ -991,18 +885,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
@@ -1018,10 +902,8 @@ self: super: {
   # This package refers to the wrong library (itself in fact!)
   vulkan = super.vulkan.override { vulkan = pkgs.vulkan-loader; };
 
-  # # 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;
-  # };
+  # Compiles some C++ source which requires these headers
+  VulkanMemoryAllocator = addExtraLibrary super.VulkanMemoryAllocator pkgs.vulkan-headers;
 
   # https://github.com/dmwit/encoding/pull/3
   encoding = doJailbreak (appendPatch super.encoding ./patches/encoding-Cabal-2.0.patch);
@@ -1029,32 +911,16 @@ self: super: {
   # 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;
-
-  # The test suite attempts to use the network.
-  dhall = generateOptparseApplicativeCompletion "dhall" (dontCheck super.dhall);
-
-  # Missing test files in source distribution, fixed once 1.4.0 is bumped
-  # https://github.com/dhall-lang/dhall-haskell/pull/997
-  dhall-json =
-    generateOptparseApplicativeCompletions ["dhall-to-json" "dhall-to-yaml"] (
-      dontCheck 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);
 
   # https://github.com/haskell-hvr/netrc/pull/2#issuecomment-469526558
   netrc = doJailbreak super.netrc;
@@ -1062,14 +928,9 @@ self: super: {
   # https://github.com/haskell-hvr/hgettext/issues/14
   hgettext = doJailbreak super.hgettext;
 
-  # The test suite is broken. Break out of "base-compat >=0.9.3 && <0.10, hspec >=2.4.4 && <2.5".
-  haddock-library = doJailbreak (dontCheck super.haddock-library);
-  haddock-library_1_9_0 = doJailbreak (dontCheck super.haddock-library_1_9_0);
-
   # Generate shell completion.
   cabal2nix = generateOptparseApplicativeCompletion "cabal2nix" super.cabal2nix;
-  stack = generateOptparseApplicativeCompletion "stack" (super.stack.overrideScope (self: super: { http-download = self.http-download_0_2_0_0; }));
-  http-download_0_2_0_0 = dontCheck super.http-download_0_2_0_0;
+  stack = generateOptparseApplicativeCompletion "stack" super.stack;
 
   # musl fixes
   # dontCheck: use of non-standard strptime "%s" which musl doesn't support; only used in test
@@ -1083,13 +944,6 @@ self: super: {
     sha256 = "056rk58v9h114mjx62f41x971xn9p3nhsazcf9zrcyxh1ymrdm8j";
   });
 
-  # Tests require a browser: https://github.com/ku-fpg/blank-canvas/issues/73
-  blank-canvas = dontCheck super.blank-canvas;
-  blank-canvas_0_6_2 = dontCheck super.blank-canvas_0_6_2;
-
-  # 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: {
@@ -1100,9 +954,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 {
@@ -1121,13 +972,17 @@ self: super: {
     # Generate shell completions
     generateOptparseApplicativeCompletion "purs" dontHaddockPurescript;
 
-  # https://github.com/kcsongor/generic-lens/pull/65
+  # 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;
 
   # https://github.com/danfran/cabal-macosx/issues/13
   cabal-macosx = dontCheck super.cabal-macosx;
 
-  # https://github.com/DanielG/cabal-helper/issues/59
+  # https://github.com/DanielG/cabal-helper/pull/123
   cabal-helper = doJailbreak super.cabal-helper;
 
   # TODO(Profpatsch): factor out local nix store setup from
@@ -1137,15 +992,12 @@ self: super: {
   # });
   libnix = dontCheck super.libnix;
 
-  # The test suite tries to mess with ALSA, which doesn't work in the build sandbox.
+  # dontCheck: The test suite tries to mess with ALSA, which doesn't work in the build sandbox.
   xmobar = dontCheck super.xmobar;
 
   # https://github.com/mgajda/json-autotype/issues/25
   json-autotype = dontCheck super.json-autotype;
 
-  # Jailbreak tasty < 1.2: https://github.com/phadej/tdigest/issues/30
-  tdigest = doJailbreak super.tdigest; # until tdigest > 0.2.1
-
   # Requires pg_ctl command during tests
   beam-postgres = overrideCabal super.beam-postgres (drv: {
     testToolDepends = (drv.testToolDepends or []) ++ [pkgs.postgresql];
@@ -1159,23 +1011,16 @@ 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
-    '';
-  });
-
-  # test suite failure: https://github.com/jgm/pandoc/issues/5582
+  # 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;
 
   # Some tests depend on a postgresql instance
-  # Haddock failure: https://github.com/haskell/haddock/issues/979
-  esqueleto = dontHaddock (dontCheck super.esqueleto);
+  esqueleto = dontCheck super.esqueleto;
 
   # Requires API keys to run tests
   algolia = dontCheck super.algolia;
@@ -1203,9 +1048,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;
 
@@ -1218,16 +1060,9 @@ 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;
 
-  # https://github.com/blamario/grampa/issues/19
-  rank2classes = dontCheck super.rank2classes;
-
   nix-tools = super.nix-tools.overrideScope (self: super: {
     # Needs https://github.com/peti/hackage-db/pull/9
     hackage-db = super.hackage-db.overrideAttrs (old: {
@@ -1243,9 +1078,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 = [
@@ -1264,18 +1096,9 @@ self: super: {
     ];
   });
 
-  # Needs the corresponding version of haskell-src-exts.
-  haskell-src-exts-simple = super.haskell-src-exts-simple.override { haskell-src-exts = self.haskell-src-exts_1_23_0; };
-
-  # https://github.com/Daniel-Diaz/HaTeX/issues/144
-  HaTeX = dontCheck super.HaTeX;
-
   # 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: {
@@ -1297,9 +1120,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;
@@ -1311,62 +1131,10 @@ self: super: {
     '';
   });
 
-  # cabal-fmt requires Cabal3
-  cabal-fmt = super.cabal-fmt.override { Cabal = self.Cabal_3_2_0_0; };
-
-  # Several gtk2hs-provided packages at v0.13.8.0 fail to build on Darwin
-  # until we pick up https://github.com/gtk2hs/gtk2hs/pull/293 so apply that
-  # patch here. That single patch is for the gtk2hs super-repo, out of which
-  # we extract the patch for each indvidiual project (glib/gio/pango/gtk/gtk3).
-  glib = appendPatch super.glib (pkgs.fetchpatch {
-    url = "https://github.com/gtk2hs/gtk2hs/commit/1cf2f9bff2427d39986e32880d1383cfff49ab0e.patch";
-    includes = [ "glib.cabal" ];
-    stripLen = 1;
-    sha256 = "1zdss1xgsbijs3kx8dp5a81qryrfc1zm1xrd20whna3dqakf8b7g";
-  });
-  gio = appendPatch super.gio (pkgs.fetchpatch {
-    url = "https://github.com/gtk2hs/gtk2hs/commit/1cf2f9bff2427d39986e32880d1383cfff49ab0e.patch";
-    includes = [ "gio.cabal" ];
-    stripLen = 1;
-    sha256 = "0d72k6gqvgax9jcqi3gz1gqnar7jg8p5065z3mw2fcwvdw46s2zv";
-  });
-  pango = appendPatch super.pango (pkgs.fetchpatch {
-    url = "https://github.com/gtk2hs/gtk2hs/commit/1cf2f9bff2427d39986e32880d1383cfff49ab0e.patch";
-    includes = [ "pango.cabal" ];
-    stripLen = 1;
-    sha256 = "0dc221wlmyhc24h6ybfhbkxmcx4i6bvkbr1zgqidbnj3yp6w0l5w";
-  });
-  # gtk/gtk3 have an additional complication: independent of the above
-  # 0.13.8.0-specific fix, they need to be told on Darwin to use the Quartz
+  # gtk/gtk3 needs to be told on Darwin to use the Quartz
   # rather than X11 backend (see eg https://github.com/gtk2hs/gtk2hs/issues/249).
-  gtk3 =
-    let
-      patchedGtk3 = appendPatch super.gtk3 (pkgs.fetchpatch {
-        url = "https://github.com/gtk2hs/gtk2hs/commit/1cf2f9bff2427d39986e32880d1383cfff49ab0e.patch";
-        includes = [ "gtk3.cabal" ];
-        stripLen = 1;
-        sha256 = "0zvj0dzfwf9bksfhi0m4v0h5aij236gd0qhyr1adpdcjrkd8zbkd";
-      });
-    in
-      # The appendConfigureFlags should remain even after we can drop patchedGtk3.
-      appendConfigureFlags patchedGtk3 (pkgs.lib.optional pkgs.stdenv.isDarwin "-f have-quartz-gtk");
-  gtk =
-    let
-      patchedGtk = appendPatch super.gtk (pkgs.fetchpatch {
-        url = "https://github.com/gtk2hs/gtk2hs/commit/1cf2f9bff2427d39986e32880d1383cfff49ab0e.patch";
-        includes = [ "gtk.cabal-renamed" ];
-        stripLen = 1;
-        sha256 = "0wb0scvmhg8b42hxpns9m6zak3r8b25a2z7wg6vl56n17nb635l7";
-        # One final complication: the gtk cabal file in the source repo (as seen
-        # by the patch) is `gtk.cabal-renamed`, but this gets changed to the usual
-        # `gtk.cabal` before uploading to Hackage by a script.
-        postFetch = ''
-          substituteInPlace $out --replace "-renamed" ""
-        '';
-      });
-    in
-      # The appendConfigureFlags should remain even after we can drop patchedGtk.
-      appendConfigureFlags patchedGtk (pkgs.lib.optional pkgs.stdenv.isDarwin "-f have-quartz-gtk");
+  gtk3 = appendConfigureFlags super.gtk3 (pkgs.lib.optional pkgs.stdenv.isDarwin "-f have-quartz-gtk");
+  gtk = appendConfigureFlags super.gtk (pkgs.lib.optional pkgs.stdenv.isDarwin "-f have-quartz-gtk");
 
   # Chart-tests needs and compiles some modules from Chart itself
   Chart-tests = (addExtraLibrary super.Chart-tests self.QuickCheck).overrideAttrs (old: {
@@ -1375,46 +1143,16 @@ 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/
   # Therefore we jailbreak it.
   hakyll-contrib-hyphenation = doJailbreak super.hakyll-contrib-hyphenation;
 
-  # https://github.com/bergmark/feed/issues/43
-  feed = dontCheck super.feed;
-
-  pantry_0_2_0_0 = appendPatches (dontCheck super.pantry_0_2_0_0) [
-    # pantry-0.2.0.0 doesn't build with ghc-8.8, but there is a PR adding support.
-    # https://github.com/commercialhaskell/pantry/pull/6
-    # Currently stack-2.1.3.1 requires pantry-0.2.0.0, but when a newer version of
-    # stack is released, it will probably use the newer pantry version, so we
-    # can completely get rid of pantry-0.2.0.0.
-    (pkgs.fetchpatch {
-      url = "https://github.com/commercialhaskell/pantry/pull/6.diff";
-      sha256 = "0aml06jshpjh3aiscs5av7y33m3d6s6x5pzdvh7pky476izfg87k";
-      excludes = [
-        ".azure/azure-linux-template.yml"
-        ".azure/azure-osx-template.yml"
-        ".azure/azure-windows-template.yml"
-        "package.yaml"
-        "pantry.cabal"
-        "stack-lts-11.yaml"
-        "stack-lts-12.yaml"
-        "stack-nightly.yaml"
-        "stack-windows.yaml"
-        "stack.yaml"
-      ];
-    })
-  ];
-
-  # https://github.com/serokell/nixfmt/pull/62
+  # 2020-06-22: NOTE: > 0.4.0 => rm Jailbreak: https://github.com/serokell/nixfmt/issues/71
   nixfmt = doJailbreak super.nixfmt;
 
-  # https://github.com/phadej/binary-orphans/issues/45
+  # 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
@@ -1428,13 +1166,8 @@ self: super: {
   # $HOME, which we don't have in our build sandbox.
   cabal-install-parsers = dontCheck super.cabal-install-parsers;
 
-  # haskell-ci-0.8 needs cabal-install-parsers ==0.1, but we have 0.2.
-  haskell-ci = doJailbreak super.haskell-ci;
-
-  # Needs the latest version of vty.
-  matterhorn = super.matterhorn.overrideScope (self: super: {
-    vty = self.vty_5_28_2;
-  });
+  # gitit is unbroken in the latest release
+  gitit = markUnbroken super.gitit;
 
   # Test suite requires database
   persistent-mysql = dontCheck super.persistent-mysql;
@@ -1460,19 +1193,15 @@ self: super: {
     sha256 = "097wqn8hxsr50b9mhndg5pjim5jma2ym4ylpibakmmb5m98n17zp";
   });
 
-  # Needs a version that's newer than LTS-15.x provides.
-  weeder = super.weeder.override { generic-lens = self.generic-lens_2_0_0_0;  };
-
+  # polysemy-plugin 0.2.5.0 has constraint ghc-tcplugins-extra (==0.3.*)
+  # This upstream issue is relevant:
+  # https://github.com/polysemy-research/polysemy/issues/322
   polysemy-plugin = super.polysemy-plugin.override {
-    # polysemy-plugin 0.2.5.0 has constraint ghc-tcplugins-extra (==0.3.*)
-    # This upstream issue is relevant:
-    # https://github.com/polysemy-research/polysemy/issues/322
     ghc-tcplugins-extra = self.ghc-tcplugins-extra_0_3_2;
-    # version of Polysemy the plugin goes with
-    polysemy = self.polysemy_1_3_0_0;
   };
 
   # Test suite requires running a database server. Testing is done upstream.
+  hasql-notifications = dontCheck super.hasql-notifications;
   hasql-pool = dontCheck super.hasql-pool;
 
   # This bumps optparse-applicative to <0.16 in the cabal file, as otherwise
@@ -1481,38 +1210,258 @@ self: super: {
   # release of webify is published.
   webify = appendPatch super.webify (pkgs.fetchpatch {
     url = "https://github.com/ananthakumaran/webify/pull/27/commits/6d653e7bdc1ffda75ead46851b5db45e87cb2aa0.patch";
-    sha256 = "sha256:0xbfhzhzg94b4r5qy5dg1c40liswwpqarrc2chcwgfbfnrmwkfc2";
+    sha256 = "0xbfhzhzg94b4r5qy5dg1c40liswwpqarrc2chcwgfbfnrmwkfc2";
   });
 
-  # Depends on selective >= 0.4, but the default of selective is 0.3
-  headed-megaparsec = super.headed-megaparsec.override {
-    selective = self.selective_0_4_1;
-  };
-
-  # Needed for ghcide
-  haskell-lsp_0_19_0_0 = super.haskell-lsp_0_19_0_0.override {
-    haskell-lsp-types = self.haskell-lsp-types_0_19_0_0;
-  };
-
   # 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 rec {
-    haskell-lsp-types = self.haskell-lsp-types_0_19_0_0;
-    haskell-lsp = self.haskell-lsp_0_19_0_0;
+  ghcide = dontCheck (super.ghcide.override { ghc-check = self.ghc-check_0_3_0_1; });
+
+  # hasn‘t bumped upper bounds
+  # upstream: https://github.com/obsidiansystems/which/pull/6
+  which = doJailbreak super.which;
+
+  # the test suite attempts to run the binaries built in this package
+  # through $PATH but they aren't in $PATH
+  dhall-lsp-server = dontCheck super.dhall-lsp-server;
+
+  # https://github.com/ocharles/weeder/issues/15
+  weeder = doJailbreak super.weeder;
+
+  # Requested version bump on upstream https://github.com/obsidiansystems/constraints-extras/issues/32
+  constraints-extras = doJailbreak super.constraints-extras;
+
+  # Necessary for stack
+  # x509-validation test suite hangs: upstream https://github.com/vincenthz/hs-certificate/issues/120
+  # tls test suite fails: upstream https://github.com/vincenthz/hs-tls/issues/434
+  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";
   });
 
-  # stackage right now is not new enough for hlint-3.0
-  ghc-lib-parser-ex_8_10_0_6 = super.ghc-lib-parser-ex_8_10_0_6.override {
-    ghc-lib-parser = self.ghc-lib-parser_8_10_1_20200412;
+  patch = appendPatches super.patch [
+    # Upstream PR: https://github.com/reflex-frp/patch/pull/20
+    # Makes tests work with hlint 3
+    (pkgs.fetchpatch {
+      url = "https://github.com/reflex-frp/patch/commit/3ed23a4e4049ee17e64a1a5bbebf1990cdbe033a.patch";
+      sha256 ="1hfa980wln8kzbqw1lr8ddszgcibw25xf12ki2jb9xkl464aynzf";
+    })
+    # Upstream PR: https://github.com/reflex-frp/patch/pull/17
+    # Bumps version dependencies
+    (pkgs.fetchpatch {
+      url = "https://github.com/reflex-frp/patch/commit/a191ed9ded708ed7ff0cf53ad6dafaf54db5b95a.patch";
+      sha256 ="1x9w5fimhk3a0l2aa5z91nqaa6s2irz1775iidd0191m6w25vszp";
+    })
+  ];
+
+  reflex = appendPatches super.reflex [
+    # Upstream PR: https://github.com/reflex-frp/reflex/pull/434
+    # Bump version bounds
+    (pkgs.fetchpatch {
+      url = "https://github.com/reflex-frp/reflex/commit/e6104bdfd7f664f524b6765275490722e376df4d.patch";
+      sha256 ="1awp5p4640cnhfd50dplsvp0kzy6h8r0hpbw1s40blni74r3dhzr";
+    })
+    # Upstream PR: https://github.com/reflex-frp/reflex/pull/436
+    # Fix build with newest dependent-map version
+    (pkgs.fetchpatch {
+      url = "https://github.com/reflex-frp/reflex/commit/dc3bf44d822d70594e3c474fe3869261776c3554.patch";
+      sha256 ="0rbjfj9b8p6zkvd5j4pak5kpgard6cyfvzk750s4xwpc1v84iiqd";
+    })
+    # Upstream PR: https://github.com/reflex-frp/reflex/pull/437
+    # Fix tests with newer dep versions
+    (pkgs.fetchpatch {
+      url = "https://github.com/reflex-frp/reflex/commit/87c74a1b9d9098eae8a56148c59ed4963a5232c2.patch";
+      sha256 ="0qhjjgd6n4fms1hpbblny78c95bfh74izhx9dvrdlnhz6q7xlm9q";
+    })
+  ];
+
+  # Tests disabled and broken override needed because of missing lib chrome-test-utils: https://github.com/reflex-frp/reflex-dom/issues/392
+  # Tests disabled because of very old dep: https://github.com/reflex-frp/reflex-dom/issues/393
+  reflex-dom-core = doDistribute (unmarkBroken (dontCheck (appendPatches super.reflex-dom-core [
+    # Upstream PR: https://github.com/reflex-frp/reflex-dom/pull/388
+    # Fix upper bounds
+    (pkgs.fetchpatch {
+      url = "https://github.com/reflex-frp/reflex-dom/commit/5ef04d8e478f410d2c63603b84af052c9273a533.patch";
+      sha256 ="0d0b819yh8mqw8ih5asdi9qcca2kmggfsi8gf22akfw1n7xvmavi";
+      stripLen = 2;
+      extraPrefix = "";
+    })
+    # Upstream PR: https://github.com/reflex-frp/reflex-dom/pull/394
+    # Bump dependent-map
+    (pkgs.fetchpatch {
+      url = "https://github.com/reflex-frp/reflex-dom/commit/695bd17d5dcdb1bf321ee8858670731637f651db.patch";
+      sha256 ="0llky3i37rakgsw9vqaqmwryv7s91w8ph8xjkh83nxjs14p5zfyk";
+      stripLen = 2;
+      extraPrefix = "";
+    })
+  ])));
+
+  # add unreleased commit fixing version constraint as a patch
+  # Can be removed if https://github.com/lpeterse/haskell-utc/issues/8 is resolved
+  utc = appendPatch super.utc (pkgs.fetchpatch {
+    url = "https://github.com/lpeterse/haskell-utc/commit/e4502c08591e80d411129bb7c0414539f6302aaf.diff";
+    sha256 = "0v6kv1d4syjzgzc2s7a76c6k4vminlcq62n7jg3nn9xd00gwmmv7";
+  });
+
+  # Tests disabled because they assume to run in the whole jsaddle repo and not the hackage tarbal of jsaddle-warp.
+  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
+  trial = doJailbreak super.trial;
+
+  # 2020-06-24: Tests are broken in hackage distribution.
+  # See: https://github.com/kowainik/stan/issues/316
+  stan = dontCheck super.stan;
+
+  # 2020-06-24: Tests are broken in hackage distribution.
+  # 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);
+
+  # https://github.com/kowainik/policeman/issues/57
+  policeman = doJailbreak super.policeman;
+
+  # 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;
+
+  # The overrides in the following lines all have the following causes:
+  # * neuron needs commonmark-pandoc
+  # * which needs a newer pandoc-types (>= 1.21)
+  # * which means we need a newer pandoc (>= 2.10)
+  # * which needs a newer hslua (1.1.2) and a newer jira-wiki-markup (1.3.2)
+  # Then we need to apply those overrides to all transitive dependencies
+  # All of this will be obsolete, when pandoc 2.10 hits stack lts.
+  commonmark-pandoc = super.commonmark-pandoc.override {
+    pandoc-types = self.pandoc-types_1_21;
+  };
+  reflex-dom-pandoc = super.reflex-dom-pandoc.override {
+    pandoc-types = self.pandoc-types_1_21;
   };
+  pandoc_2_10_1 = super.pandoc_2_10_1.overrideScope (self: super: {
+    pandoc-types = self.pandoc-types_1_21;
+    hslua = self.hslua_1_1_2;
+    jira-wiki-markup = self.jira-wiki-markup_1_3_2;
+  });
 
-  hlint = super.hlint.override {
-    ghc-lib-parser = self.ghc-lib-parser_8_10_1_20200412;
-    ghc-lib-parser-ex = self.ghc-lib-parser-ex_8_10_0_6;
-    extra = self.extra_1_7_1;
-    filepattern = self.filepattern.override {
-      extra = self.extra_1_7_1;
+  # 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 = "";
+  }))
+    # See comment about overrides above commonmark-pandoc
+    .overrideScope (self: super: {
+    pandoc = self.pandoc_2_10_1;
+    pandoc-types = self.pandoc-types_1_21;
+  });
+
+  # Testsuite trying to run `which haskeline-examples-Test`
+  haskeline_0_8_0_0 = dontCheck super.haskeline_0_8_0_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_0_0;
     };
   };
 
-} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
+  # 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 any just disable the tests altogether.
+  hspec-core = dontCheck super.hspec-core;
+
+  # INSERT NEW OVERRIDES ABOVE THIS LINE
+
+} // (let
+  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 = dontCheck self.hls-ghcide;
+    # we are faster than stack here
+    hie-bios = dontCheck self.hie-bios_0_6_2;
+    lsp-test = dontCheck self.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 {
+    haskell-language-server = dontCheck (super.haskell-language-server.overrideScope hlsScopeOverride);
+    hls-ghcide = dontCheck (super.hls-ghcide.overrideScope hlsScopeOverride);
+    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 9053d2d9e0d..f2dd8942b8c 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
@@ -61,34 +61,16 @@ self: super: {
   haddock-library = self.haddock-library_1_9_0;
 
   # Jailbreak to fix the build.
-  async = doJailbreak super.async;
-  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;
+  base-noprelude = doJailbreak super.base-noprelude;
   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_31_1;
-  ghc-lib-parser-ex = self.ghc-lib-parser-ex_8_10_0_4;
+  dhall = self.dhall_1_34_0;
   lens = self.lens_4_19_2;
-  optics-core = self.optics-core_0_3;
-  repline = self.repline_0_3_0_0;
+  optics-core = self.optics-core_0_3_0_1;
+  repline = self.repline_0_4_0_0;
   singletons = self.singletons_2_7;
   th-desugar = self.th-desugar_1_11;
 
@@ -97,21 +79,15 @@ self: super: {
   # multiple verions of `ghc-lib-parser(-ex)` available, and the default ones
   # are older ones, those older ones will complain. Because we have a newer
   # GHC, we can just set the dependency to `null` as it is not used.
-  ghc-lib-parser-ex_8_10_0_4 = super.ghc-lib-parser-ex_8_10_0_4.override { ghc-lib-parser = null; };
+  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;
-  cborg = doJailbreak super.cborg;
-  cborg-json = doJailbreak super.cborg-json;
   exact-pi = doJailbreak super.exact-pi;
-  policeman = doJailbreak super.policeman;
-  relude = dontCheck (doJailbreak super.relude);
   serialise = doJailbreak super.serialise;
   setlocale = doJailbreak super.setlocale;
   shellmet = doJailbreak super.shellmet;
-  weeder = doJailbreak super.weeder;    # https://github.com/ocharles/weeder/issues/15
-  xmobar = doJailbreak super.xmobar;
+  shower = doJailbreak super.shower;
 
   # The shipped Setup.hs file is broken.
   csv = overrideCabal super.csv (drv: { preCompileBuildDriver = "rm Setup.hs"; });
@@ -126,13 +102,6 @@ self: super: {
   # Only 0.8 is compatible with ghc 8.10 https://hackage.haskell.org/package/apply-refact/changelog
   apply-refact = super.apply-refact_0_8_0_0;
 
-  # Apply patch to fix the build.
-  cabal-plan = appendPatch super.cabal-plan (pkgs.fetchpatch {
-    name = "cabal-plan-fix-for-ghc-8.10.x.patch";
-    url = "https://github.com/haskell-hvr/cabal-plan/pull/55.patch";
-    sha256 = "0lhs4vx5qg5ldhnyb9z7k0jmxhmd2f34x4xbwv6vsljs9vr02pd8";
-  });
-
   # https://github.com/commercialhaskell/pantry/issues/21
   pantry = appendPatch super.pantry (pkgs.fetchpatch {
     name = "add-cabal-3.2.x-support.patch";
@@ -141,4 +110,11 @@ self: super: {
     excludes = ["package.yaml"];
   });
 
+  # hnix 0.9.0 does not provide an executable for ghc < 8.10, so define completions here for now.
+  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 7395d059b4d..204b5d5a08c 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
@@ -54,7 +54,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;
@@ -74,7 +73,6 @@ self: super: {
   # TODO: remove when upstream accepts https://github.com/snapframework/io-streams-haproxy/pull/17
   io-streams-haproxy = doJailbreak super.io-streams-haproxy; # base >=4.5 && <4.13
   snap-server = doJailbreak super.snap-server;
-  xmobar = doJailbreak super.xmobar;
   exact-pi = doJailbreak super.exact-pi;
   time-compat = doJailbreak super.time-compat;
   http-media = doJailbreak super.http-media;
@@ -106,4 +104,7 @@ self: super: {
   # The package needs the latest Cabal version.
   cabal-install-parsers = super.cabal-install-parsers.overrideScope (self: super: { Cabal = self.Cabal_3_2_0_0; });
 
+  # cabal-fmt requires Cabal3
+  cabal-fmt = super.cabal-fmt.override { Cabal = self.Cabal_3_2_0_0; };
+
 }
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 008a3b50291..a9b0b88eaef 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
@@ -72,7 +72,7 @@ default-package-overrides:
   # gi-gdkx11-4.x requires gtk-4.x, which is still under development and
   # not yet available in Nixpkgs
   - gi-gdkx11 < 4
-  # LTS Haskell 15.11
+  # LTS Haskell 16.10
   - abstract-deque ==0.3
   - abstract-par ==0.3.3
   - AC-Angle ==1.0
@@ -88,20 +88,22 @@ default-package-overrides:
   - aeson-attoparsec ==0.0.0
   - aeson-better-errors ==0.9.1.0
   - aeson-casing ==0.2.0.0
+  - aeson-combinators ==0.0.2.1
   - aeson-compat ==0.3.9
   - aeson-default ==0.9.1.0
-  - aeson-diff ==1.1.0.8
+  - aeson-diff ==1.1.0.9
   - aeson-generic-compat ==0.0.1.3
   - aeson-lens ==0.5.0.0
   - aeson-optics ==1.1.0.1
   - aeson-picker ==0.1.0.5
   - aeson-pretty ==0.8.8
   - aeson-qq ==0.8.3
-  - aeson-schemas ==1.0.3
+  - aeson-schemas ==1.2.0
   - aeson-utils ==0.3.0.2
   - aeson-yak ==0.1.1.3
   - aeson-yaml ==1.0.6.0
   - al ==0.1.4.2
+  - alarmclock ==0.7.0.5
   - alerts ==0.1.2.0
   - alex ==3.2.5
   - alg ==0.2.13.1
@@ -204,18 +206,19 @@ default-package-overrides:
   - amazonka-waf ==1.6.1
   - amazonka-workspaces ==1.6.1
   - amazonka-xray ==1.6.1
-  - amqp ==0.19.1
+  - amqp ==0.20.0
+  - amqp-utils ==0.4.4.0
   - annotated-wl-pprint ==0.7.0
   - ansi-terminal ==0.10.3
   - ansi-wl-pprint ==0.6.9
-  - antiope-core ==7.4.5
-  - antiope-dynamodb ==7.4.5
-  - antiope-messages ==7.4.5
-  - antiope-s3 ==7.4.5
-  - antiope-sns ==7.4.5
-  - antiope-sqs ==7.4.5
+  - antiope-core ==7.5.1
+  - antiope-dynamodb ==7.5.1
+  - antiope-messages ==7.5.1
+  - antiope-s3 ==7.5.1
+  - antiope-sns ==7.5.1
+  - antiope-sqs ==7.5.1
   - ANum ==0.2.0.2
-  - apecs ==0.9.1
+  - apecs ==0.9.2
   - apecs-gloss ==0.2.4
   - apecs-physics ==0.4.4
   - api-field-json-th ==0.1.0.2
@@ -225,18 +228,23 @@ default-package-overrides:
   - approximate ==0.3.2
   - app-settings ==0.2.0.12
   - arbor-lru-cache ==0.1.1.1
-  - arbor-postgres ==0.0.5
   - arithmoi ==0.10.0.0
   - array-memoize ==0.6.0
   - arrow-extras ==0.1.0.1
+  - ascii ==1.0.0.2
+  - ascii-case ==1.0.0.2
+  - ascii-char ==1.0.0.2
   - asciidiagram ==1.3.3.3
+  - ascii-group ==1.0.0.2
+  - ascii-predicates ==1.0.0.2
   - ascii-progress ==0.3.3.0
-  - asif ==6.0.4
+  - ascii-superset ==1.0.0.2
+  - ascii-th ==1.0.0.2
   - asn1-encoding ==0.9.6
   - asn1-parse ==0.9.5
   - asn1-types ==0.3.4
-  - assert-failure ==0.1.2.2
-  - 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
@@ -250,40 +258,47 @@ default-package-overrides:
   - attoparsec-base64 ==0.0.0
   - attoparsec-binary ==0.2
   - attoparsec-expr ==0.1.1.2
-  - attoparsec-ip ==0.0.5
   - attoparsec-iso8601 ==1.0.1.0
   - attoparsec-path ==0.0.0.1
-  - attoparsec-uri ==0.0.7
   - audacity ==0.0.2
-  - aur ==6.2.0.1
+  - aur ==7.0.3
+  - aura ==3.1.7
   - authenticate ==1.3.5
   - authenticate-oauth ==1.6.0.1
   - auto ==0.4.3.1
-  - autoexporter ==1.1.16
+  - autoexporter ==1.1.18
   - auto-update ==0.1.6
   - avers ==0.0.17.1
-  - avro ==0.4.7.0
-  - aws-cloudfront-signed-cookies ==0.2.0.4
-  - base16-bytestring ==0.1.1.6
+  - avro ==0.5.2.0
+  - aws-cloudfront-signed-cookies ==0.2.0.6
+  - bank-holidays-england ==0.2.0.5
+  - base16 ==0.2.1.0
+  - base16-bytestring ==0.1.1.7
+  - base16-lens ==0.1.2.0
+  - base32 ==0.1.1.2
+  - base32-lens ==0.1.0.0
   - base32string ==0.9.1
   - base58string ==0.10.0
-  - base64 ==0.4.1
+  - base64 ==0.4.2.2
   - base64-bytestring ==1.0.0.3
   - base64-bytestring-type ==1.0.1
-  - base64-lens ==0.2.0
+  - base64-lens ==0.3.0
   - base64-string ==0.2
   - base-compat ==0.11.1
   - base-compat-batteries ==0.11.1
   - basement ==0.0.11
+  - base-noprelude ==4.13.0.0
   - base-orphans ==0.8.2
   - base-prelude ==1.3
   - base-unicode-symbols ==0.2.4.2
   - basic-prelude ==0.7.0
-  - bazel-runfiles ==0.7.0.1
+  - bazel-runfiles ==0.12
   - bbdb ==0.8
   - bcrypt ==0.0.11
   - bech32 ==1.0.2
+  - bech32-th ==1.0.2
   - bench ==1.0.12
+  - benchpress ==0.2.2.14
   - between ==0.11.0.0
   - bibtex ==0.1.0.6
   - bifunctors ==5.5.7
@@ -296,11 +311,11 @@ default-package-overrides:
   - binary-ieee754 ==0.1.0.0
   - binary-list ==1.1.1.2
   - binary-orphans ==1.0.1
-  - binary-parser ==0.5.5
+  - binary-parser ==0.5.6
   - binary-parsers ==0.2.4.0
   - binary-search ==1.0.0.3
   - binary-shared ==0.8.3
-  - binary-tagged ==0.2
+  - binary-tagged ==0.3
   - bindings-DSL ==1.0.25
   - bindings-GLFW ==3.3.2.0
   - bindings-libzip ==1.0.1
@@ -308,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
@@ -319,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
@@ -331,7 +346,7 @@ default-package-overrides:
   - boots ==0.2.0.1
   - bordacount ==0.1.0.0
   - boring ==0.1.3
-  - both ==0.1.1.0
+  - both ==0.1.1.1
   - bound ==2.0.1
   - BoundedChan ==1.0.3.0
   - bounded-queue ==1.0.0
@@ -340,57 +355,58 @@ default-package-overrides:
   - boxes ==0.1.5
   - brick ==0.52.1
   - brittany ==0.12.1.1
+  - broadcast-chan ==0.2.1.1
   - bsb-http-chunked ==0.0.0.4
   - bson ==0.4.0.1
   - btrfs ==0.2.0.0
   - buffer-builder ==0.2.4.7
   - buffer-pipe ==0.0
-  - bugsnag-hs ==0.1.0.0
-  - butcher ==1.3.3.1
+  - bugsnag-hs ==0.1.0.3
+  - butcher ==1.3.3.2
   - bv ==0.5
   - bv-little ==1.1.1
   - byteable ==0.1.1
-  - bytebuild ==0.3.4.0
+  - byte-count-reader ==0.10.0.1
   - bytedump ==1.0
   - byte-order ==0.1.2.0
   - byteorder ==1.0.4
   - bytes ==0.17
   - byteset ==0.1.1.0
-  - byteslice ==0.2.2.0
-  - bytesmith ==0.3.6.0
   - bytestring-builder ==0.10.8.2.0
   - bytestring-conversion ==0.3.1
   - bytestring-lexing ==0.5.0.2
+  - bytestring-mmap ==0.2.2
   - bytestring-strict-builder ==0.4.5.3
   - bytestring-to-vector ==0.3.0.1
   - bytestring-tree-builder ==0.2.7.3
   - bz2 ==1.0.0.1
   - bzlib-conduit ==0.3.0.2
   - c2hs ==0.28.6
+  - cabal-appimage ==0.3.0.0
+  - cabal-debian ==5.0.3
   - cabal-doctest ==1.0.8
-  - cabal-flatpak ==0.1
-  - cabal-plan ==0.6.2.0
-  - cabal-rpm ==2.0.4
+  - cabal-rpm ==2.0.6
   - cache ==0.1.3.0
   - cacophony ==0.10.1
   - calendar-recycling ==0.0.0.1
   - call-stack ==0.2.0
   - can-i-haz ==0.3.1.0
   - ca-province-codes ==1.0.0.0
+  - cardano-coin-selection ==1.0.1
   - carray ==0.1.6.8
   - casa-client ==0.0.1
   - casa-types ==0.0.1
   - cased ==0.1.0.0
   - case-insensitive ==1.2.1.0
-  - cases ==0.1.3.2
+  - cases ==0.1.4
   - casing ==0.1.4.1
   - cassava ==0.5.2.0
   - cassava-conduit ==0.5.1
   - cassava-megaparsec ==2.0.1
   - cast ==0.1.0.2
   - category ==0.2.5.0
-  - cayley-client ==0.4.12
-  - cborg ==0.2.2.1
+  - cayley-client ==0.4.13
+  - cborg ==0.2.4.0
   - cborg-json ==0.2.2.0
   - cereal ==0.5.8.1
   - cereal-conduit ==0.8.0
@@ -399,17 +415,22 @@ default-package-overrides:
   - cfenv ==0.1.0.0
   - chan ==0.0.4.1
   - ChannelT ==0.0.0.7
+  - character-cases ==0.1.0.4
   - charset ==0.3.7.1
   - charsetdetect-ae ==1.1.0.4
   - Chart ==1.9.3
   - Chart-diagrams ==1.9.3
   - chaselev-deque ==0.5.0.5
-  - ChasingBottoms ==1.3.1.8
-  - checkers ==0.5.5
+  - ChasingBottoms ==1.3.1.9
+  - cheapskate ==0.1.1.2
+  - cheapskate-highlight ==0.1.0.0
+  - cheapskate-lucid ==0.1.0.0
+  - checkers ==0.5.6
   - checksum ==0.0
   - 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
@@ -418,17 +439,18 @@ default-package-overrides:
   - cipher-des ==0.0.6
   - cipher-rc4 ==0.1.4
   - circle-packing ==0.1.0.6
+  - 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
-  - clr-host ==0.2.1.0
-  - clr-marshal ==0.2.0.0
   - clumpiness ==0.17.0.2
   - ClustalParser ==1.3.0
   - cmark ==0.6
@@ -440,13 +462,14 @@ default-package-overrides:
   - code-page ==0.2
   - coercible-utils ==0.1.0
   - co-log ==0.4.0.1
+  - co-log-concurrent ==0.5.0.0
   - co-log-core ==0.2.1.1
   - co-log-polysemy ==0.0.1.2
   - Color ==0.1.4
-  - colorful-monoids ==0.2.1.2
+  - colorful-monoids ==0.2.1.3
   - colorize-haskell ==1.0.1
   - colour ==2.3.5
-  - colourista ==0.0.0.0
+  - colourista ==0.1.0.0
   - combinatorial ==0.1.0.1
   - comfort-array ==0.4
   - comfort-graph ==0.0.3.1
@@ -460,10 +483,11 @@ default-package-overrides:
   - composition ==1.0.2.1
   - composition-extra ==2.0.0
   - concise ==0.1.0.1
-  - concurrency ==1.8.1.0
+  - concurrency ==1.11.0.0
   - concurrent-extra ==0.7.0.12
-  - concurrent-output ==1.10.11
+  - concurrent-output ==1.10.12
   - concurrent-split ==0.0.1.1
+  - concurrent-supply ==0.1.8
   - cond ==0.4.1.1
   - conduit ==1.3.2
   - conduit-algorithms ==0.0.11.0
@@ -471,21 +495,22 @@ default-package-overrides:
   - conduit-concurrent-map ==0.1.1
   - conduit-extra ==1.3.5
   - conduit-parse ==0.2.1.0
-  - conduit-zstd ==0.0.1.1
-  - conferer ==0.2.0.0
-  - conferer-hspec ==0.2.0.0
-  - conferer-provider-json ==0.2.0.0
-  - conferer-warp ==0.2.0.0
+  - conduit-zstd ==0.0.2.0
+  - conferer ==0.4.1.1
+  - conferer-hspec ==0.4.0.1
+  - conferer-source-json ==0.4.0.1
+  - conferer-warp ==0.4.0.1
+  - ConfigFile ==1.1.4
   - config-ini ==0.2.4.0
   - configurator ==0.3.0.0
   - configurator-export ==0.1.0.1
+  - configurator-pg ==0.2.3
   - connection ==0.3.1
   - connection-pool ==0.2.2
   - console-style ==0.0.2.1
   - constraint ==0.1.4.0
-  - constraints ==0.11.2
+  - constraints ==0.12
   - constraint-tuples ==0.1.2
-  - contiguous ==0.5
   - contravariant ==1.5.2
   - contravariant-extras ==0.3.5.1
   - control-bool ==0.2.1
@@ -493,9 +518,9 @@ default-package-overrides:
   - 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
@@ -507,9 +532,10 @@ default-package-overrides:
   - credential-store ==0.1.2
   - criterion ==1.5.6.2
   - criterion-measurement ==0.1.2.0
-  - cron ==0.6.2
+  - cron ==0.7.0
   - crypto-api ==0.13.3
   - crypto-cipher-types ==0.0.9
+  - cryptocompare ==0.1.1
   - crypto-enigma ==0.1.1.6
   - cryptohash ==0.11.9
   - cryptohash-cryptoapi ==0.1.4
@@ -527,6 +553,7 @@ default-package-overrides:
   - crypto-random-api ==0.2.0
   - crypt-sha512 ==0
   - csp ==1.4.0
+  - css-syntax ==0.1.0.0
   - css-text ==0.1.3.0
   - csv ==0.1.2
   - csv-conduit ==0.7.1.0
@@ -543,15 +570,18 @@ default-package-overrides:
   - cursor-fuzzy-time ==0.0.0.0
   - cursor-gen ==0.3.0.0
   - cutter ==0.0
-  - cyclotomic ==1.0.1
-  - czipwith ==1.0.1.2
+  - cyclotomic ==1.1.1
+  - czipwith ==1.0.1.3
+  - d10 ==0.2.1.6
   - data-accessor ==0.2.3
   - data-accessor-mtl ==0.2.0.4
   - data-accessor-transformers ==0.2.1.7
+  - data-ascii ==1.0.0.2
   - data-binary-ieee754 ==0.4.4
   - data-bword ==0.1.0.1
   - data-checked ==0.3
   - data-clist ==0.1.2.3
+  - data-compat ==0.1.0.2
   - data-default ==0.7.1.1
   - data-default-class ==0.1.2.0
   - data-default-instances-containers ==0.0.1
@@ -562,11 +592,14 @@ default-package-overrides:
   - data-dword ==0.3.2
   - data-endian ==0.1.1
   - data-fix ==0.2.1
+  - data-forest ==0.1.0.8
   - data-has ==0.3.0.0
   - data-interval ==2.0.1
   - data-inttrie ==0.1.4
   - data-lens-light ==0.1.2.2
   - data-memocombinators ==0.5.1
+  - data-msgpack ==0.0.13
+  - data-msgpack-types ==0.0.3
   - data-or ==1.0.0.5
   - data-ordlist ==0.4.7.0
   - data-ref ==0.0.2
@@ -576,33 +609,41 @@ default-package-overrides:
   - data-tree-print ==0.1.0.2
   - dataurl ==0.1.0.0
   - DAV ==1.3.4
-  - dbus ==1.2.14
+  - DBFunctor ==0.1.1.1
+  - dbus ==1.2.16
+  - dbus-hslogger ==0.1.0.1
+  - debian ==4.0.2
   - debian-build ==0.10.2.0
   - debug-trace-var ==0.2.0
   - dec ==0.0.3
   - Decimal ==0.5.1
-  - declarative ==0.5.2
+  - declarative ==0.5.3
   - deepseq-generics ==0.2.0.0
+  - deepseq-instances ==0.1.0.1
   - deferred-folds ==0.9.10.1
-  - dejafu ==2.1.0.3
+  - dejafu ==2.3.0.1
   - dense-linear-algebra ==0.1.0.0
+  - depq ==0.4.1.0
   - deque ==0.4.3
   - deriveJsonNoPrefix ==0.1.0.1
-  - deriving-compat ==0.5.8
-  - derulo ==1.0.8
+  - deriving-aeson ==0.2.6
+  - deriving-compat ==0.5.9
+  - derulo ==1.0.9
   - detour-via-sci ==1.0.0
-  - dhall ==1.30.0
-  - dhall-bash ==1.0.28
-  - dhall-json ==1.6.2
-  - dhall-yaml ==1.0.2
+  - dhall ==1.32.0
+  - dhall-bash ==1.0.30
+  - dhall-json ==1.6.4
+  - dhall-lsp-server ==1.0.8
+  - dhall-yaml ==1.1.0
   - diagrams ==1.4
   - diagrams-contrib ==1.4.4
   - diagrams-core ==1.4.2
   - diagrams-lib ==1.4.3
   - diagrams-postscript ==1.5
   - diagrams-rasterific ==1.4.2
-  - diagrams-solve ==0.1.1
+  - diagrams-solve ==0.1.2
   - diagrams-svg ==1.4.3
+  - dialogflow-fulfillment ==0.1.1.3
   - di-core ==1.0.4
   - dictionary-sharing ==0.1.0.0
   - Diff ==0.4.0
@@ -622,29 +663,31 @@ default-package-overrides:
   - dlist-nonempty ==0.1.1
   - dns ==4.0.1
   - dockerfile ==0.2.0
-  - doclayout ==0.2.0.1
-  - doctemplates ==0.8
+  - doclayout ==0.3
+  - doctemplates ==0.8.2
   - doctest ==0.16.3
   - doctest-discover ==0.2.0.0
   - doctest-driver-gen ==0.3.0.2
   - doldol ==0.4.1.2
   - do-list ==1.0.1
   - do-notation ==0.1.0.2
-  - dotenv ==0.8.0.4
-  - dotgen ==0.4.2
+  - 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
-  - dunai ==0.6.0
+  - dunai ==0.7.0
   - duration ==0.1.0.0
   - dvorak ==0.1.0.0
   - dynamic-state ==0.3.1
   - dyre ==0.8.12
   - eap ==0.9.0.2
+  - earcut ==0.1.0.4
   - Earley ==0.13.0.1
   - easy-file ==0.2.2
   - Ebnf2ps ==1.0.15
@@ -654,15 +697,21 @@ default-package-overrides:
   - edit-distance ==0.2.2.1
   - edit-distance-vector ==1.0.0.4
   - editor-open ==0.6.0.0
-  - egison ==3.10.3
+  - egison ==4.0.3
+  - egison-pattern-src ==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
+  - ekg ==0.4.0.15
+  - ekg-core ==0.1.1.7
+  - ekg-json ==0.1.0.6
+  - ekg-statsd ==0.2.5.0
   - elerea ==2.9.0
   - elf ==0.30
   - eliminators ==0.6
   - elm2nix ==0.2
-  - elm-bridge ==0.5.2
+  - elm-bridge ==0.6.1
   - elm-core-sources ==1.0.0
   - elm-export ==0.6.0.1
   - emacs-module ==0.1.1
@@ -671,7 +720,7 @@ default-package-overrides:
   - enclosed-exceptions ==1.0.3
   - ENIG ==0.0.1.0
   - entropy ==0.4.1.6
-  - enummapset ==0.6.0.2
+  - enummapset ==0.6.0.3
   - enumset ==0.0.5
   - enum-subset-generate ==0.1.0.0
   - envelope ==0.2.2.0
@@ -679,23 +728,28 @@ default-package-overrides:
   - epub-metadata ==4.5
   - eq ==4.2
   - equal-files ==0.0.5.3
-  - equational-reasoning ==0.6.0.2
+  - equational-reasoning ==0.6.0.3
   - erf ==2.0.0.0
   - 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
+  - essence-of-live-coding-quickcheck ==0.1.0.3
   - etc ==0.4.1.0
   - eventful-core ==0.2.0
   - eventful-test-helpers ==0.2.0
   - event-list ==0.1.2
+  - eventstore ==1.4.1
   - every ==0.0.1
   - exact-combinatorics ==0.2.0.9
   - exact-pi ==0.5.0.1
   - 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
@@ -706,50 +760,53 @@ default-package-overrides:
   - extended-reals ==0.2.4.0
   - extensible-effects ==5.0.0.1
   - extensible-exceptions ==0.1.1.4
-  - extra ==1.6.21
+  - extra ==1.7.5
   - extractable-singleton ==0.0.1
   - extrapolate ==0.4.2
   - fail ==4.9.0.0
   - failable ==1.2.4.0
-  - fakedata ==0.5.0
+  - fakedata ==0.6.1
   - farmhash ==0.1.0.5
   - fast-digits ==0.3.0.0
   - fast-logger ==3.0.1
   - fast-math ==1.0.2
-  - fb ==2.0.0
+  - fb ==2.1.1
   - feature-flags ==0.1.0.1
   - fedora-dists ==1.1.2
   - fedora-haskell-tools ==0.9
   - 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
   - finite-typelits ==0.1.4.2
-  - first-class-families ==0.7.0.0
+  - first-class-families ==0.8.0.0
   - first-class-patterns ==0.3.2.5
   - fitspec ==0.4.8
   - fixed ==0.3
   - fixed-length ==0.2.2
   - fixed-vector ==1.2.0.0
-  - fixed-vector-hetero ==0.5.0.0
+  - fixed-vector-hetero ==0.6.0.0
   - flac ==0.2.0
   - flac-picture ==0.1.2
   - flags-applicative ==0.1.0.2
+  - flat ==0.4.4
   - flat-mcmc ==1.5.1
   - FloatingHex ==0.4
   - floatshow ==0.2.4
-  - flow ==1.0.20
+  - flow ==1.0.21
   - flush-queue ==1.0.0
   - fmlist ==0.9.3
   - fmt ==0.6.1.2
@@ -758,7 +815,7 @@ default-package-overrides:
   - focuslist ==0.1.0.2
   - foldable1 ==0.1.0.0
   - fold-debounce ==0.2.0.9
-  - fold-debounce-conduit ==0.2.0.4
+  - fold-debounce-conduit ==0.2.0.5
   - foldl ==1.4.6
   - folds ==0.7.5
   - follow-file ==0.0.3
@@ -772,20 +829,23 @@ default-package-overrides:
   - formatting ==6.3.7
   - foundation ==0.0.25
   - free ==5.1.3
-  - free-categories ==0.1.0.0
+  - free-categories ==0.2.0.0
   - freenect ==1.2.1
   - freer-simple ==1.2.1.1
-  - freetype2 ==0.1.2
+  - freetype2 ==0.2.0
   - free-vl ==0.1.4
   - friendly-time ==0.4.1
   - from-sum ==0.2.3.0
   - frontmatter ==0.1.0.2
   - fsnotify ==0.3.0.1
   - fsnotify-conduit ==0.1.1.1
+  - ftp-client ==0.5.1.4
+  - ftp-client-conduit ==0.5.0.5
   - funcmp ==1.9
   - function-builder ==0.3.0.1
   - functor-classes-compat ==1
-  - fused-effects ==1.0.2.0
+  - fused-effects ==1.0.2.2
+  - fusion-plugin ==0.2.1
   - fusion-plugin-types ==0.1.0
   - fuzzcheck ==0.1.1
   - fuzzy ==0.1.0.0
@@ -798,19 +858,21 @@ default-package-overrides:
   - general-games ==1.1.1
   - generic-arbitrary ==0.1.0
   - generic-constraints ==1.1.1.1
-  - generic-data ==0.7.0.0
+  - generic-data ==0.8.3.0
   - generic-deriving ==1.13.1
-  - generic-lens ==1.2.0.1
-  - generic-monoid ==0.1.0.0
+  - generic-lens ==2.0.0.0
+  - generic-lens-core ==2.0.0.0
+  - generic-monoid ==0.1.0.1
+  - generic-optics ==2.0.0.0
   - GenericPretty ==1.2.2
   - generic-random ==1.3.0.1
   - generics-sop ==0.5.1.0
   - generics-sop-lens ==0.2.0.1
-  - genvalidity ==0.10.0.2
+  - genvalidity ==0.11.0.0
   - genvalidity-aeson ==0.3.0.0
-  - genvalidity-bytestring ==0.5.0.1
+  - genvalidity-bytestring ==0.6.0.0
   - genvalidity-containers ==0.8.0.2
-  - genvalidity-criterion ==0.0.0.0
+  - genvalidity-criterion ==0.2.0.0
   - genvalidity-hspec ==0.7.0.4
   - genvalidity-hspec-aeson ==0.3.1.1
   - genvalidity-hspec-binary ==0.2.0.4
@@ -818,8 +880,8 @@ default-package-overrides:
   - genvalidity-hspec-hashable ==0.2.0.5
   - genvalidity-hspec-optics ==0.1.1.2
   - genvalidity-hspec-persistent ==0.0.0.1
-  - genvalidity-mergeful ==0.1.0.0
-  - genvalidity-mergeless ==0.1.0.0
+  - genvalidity-mergeful ==0.2.0.0
+  - genvalidity-mergeless ==0.2.0.0
   - genvalidity-path ==0.3.0.4
   - genvalidity-property ==0.5.0.1
   - genvalidity-scientific ==0.2.1.1
@@ -831,27 +893,33 @@ default-package-overrides:
   - genvalidity-vector ==0.3.0.1
   - geojson ==4.0.2
   - getopt-generics ==0.13.0.4
+  - ghc-byteorder ==4.11.0.0.10
+  - ghc-check ==0.5.0.1
   - ghc-compact ==0.1.0.0
   - ghc-core ==0.5.6
+  - ghc-events ==0.13.0
   - ghc-exactprint ==0.6.2
-  - ghcid ==0.8.6
+  - ghcid ==0.8.7
   - ghci-hexcalc ==0.1.1.0
   - ghcjs-codemirror ==0.0.0.2
-  - ghc-lib ==8.8.3.20200412.1
-  - ghc-lib-parser ==8.8.3.20200412.1
-  - ghc-lib-parser-ex ==8.8.5.8
+  - 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
-  - ghc-source-gen ==0.3.0.0
-  - ghc-syntax-highlighter ==0.0.5.0
+  - ghc-source-gen ==0.4.0.0
+  - ghc-syntax-highlighter ==0.0.6.0
   - ghc-tcplugins-extra ==0.4
-  - ghc-typelits-extra ==0.3.3
-  - ghc-typelits-knownnat ==0.7.2
+  - ghc-typelits-extra ==0.4
+  - 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
+  - gi-cairo-connector ==0.0.1
+  - gi-cairo-render ==0.0.1
   - gi-dbusmenu ==0.4.7
   - gi-dbusmenugtk3 ==0.4.8
   - gi-gdk ==3.0.22
@@ -863,49 +931,59 @@ 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
   - 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
   - gi-xlib ==2.0.8
   - gl ==0.9
-  - glabrous ==2.0.1
+  - 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
   - gluturtle ==0.0.58.1
   - gnuplot ==0.5.6.1
   - google-isbn ==1.0.3
-  - gothic ==0.1.4
+  - gothic ==0.1.5
   - gpolyline ==0.1.0.1
   - 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.0.1.0
-  - greskell-core ==0.1.3.2
-  - greskell-websocket ==0.1.2.1
+  - 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
+  - gtk-sni-tray ==0.1.6.0
+  - gtk-strut ==0.1.3.0
   - guarded-allocation ==0.0.1
   - hackage-db ==2.1.0
   - hackage-security ==0.6.0.1
   - haddock-library ==1.8.0
+  - hadolint ==1.18.0
+  - hadoop-streaming ==0.2.0.3
+  - 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.2
+  - happstack-server ==7.6.1
   - happy ==1.19.12
   - HasBigDecimal ==0.1.1
+  - hasbolt ==0.1.4.3
   - hashable ==1.3.0.0
   - hashable-time ==0.2.0.2
   - hashids ==1.0.2.4
@@ -915,38 +993,41 @@ default-package-overrides:
   - haskell-gi ==0.23.1
   - haskell-gi-base ==0.23.0
   - haskell-gi-overloading ==1.0
+  - haskell-igraph ==0.8.0
   - haskell-import-graph ==1.0.4
   - haskell-lexer ==1.1
-  - haskell-lsp ==0.20.0.1
-  - haskell-lsp-types ==0.20.0.0
-  - haskell-names ==0.9.8
+  - haskell-lsp ==0.22.0.0
+  - haskell-lsp-types ==0.22.0.0
+  - haskell-names ==0.9.9
   - haskell-src ==1.0.3.1
-  - haskell-src-exts ==1.22.0
+  - haskell-src-exts ==1.23.1
   - haskell-src-exts-util ==0.2.5
   - haskell-src-meta ==0.8.5
   - haskey-btree ==0.3.0.1
-  - haskoin-core ==0.10.1
-  - haskoin-node ==0.9.21
-  - hasql ==1.4.2
-  - hasql-optparse-applicative ==0.3.0.5
-  - hasql-pool ==0.5.1
+  - haskoin-core ==0.13.4
+  - haskoin-node ==0.13.0
+  - hasql ==1.4.3
+  - hasql-optparse-applicative ==0.3.0.6
+  - hasql-pool ==0.5.2
   - hasql-transaction ==1.0.0.1
-  - hasty-hamiltonian ==1.3.2
+  - 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
   - HDBC-session ==0.1.2.0
-  - headroom ==0.1.3.0
+  - headroom ==0.2.2.1
   - heap ==1.0.4
   - heaps ==0.3.6.1
-  - heart-core ==0.1.1
   - hebrew-time ==0.1.2
-  - hedgehog ==1.0.2
+  - hedgehog ==1.0.3
   - hedgehog-corpus ==0.2.0
+  - 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
@@ -957,7 +1038,7 @@ default-package-overrides:
   - hformat ==0.3.3.1
   - hfsevents ==0.1.6
   - hidapi ==0.1.5
-  - hie-bios ==0.4.0
+  - hie-bios ==0.5.1
   - hi-file-parser ==0.1.0.0
   - higher-leveldb ==0.5.0.2
   - highlighting-kate ==0.6.4
@@ -965,7 +1046,8 @@ default-package-overrides:
   - hinotify ==0.4
   - hint ==0.9.0.3
   - hjsmin ==0.2.0.4
-  - hkgr ==0.2.5.2
+  - hkd-default ==1.1.0.0
+  - hkgr ==0.2.6.1
   - hlibcpuid ==0.2.0
   - hlibgit2 ==0.18.0.16
   - hmatrix ==0.20.0.0
@@ -975,7 +1057,9 @@ default-package-overrides:
   - hmatrix-vector-sized ==0.1.3.0
   - hmpfr ==0.4.4
   - hnock ==0.4.0
-  - hoauth2 ==1.11.0
+  - hoauth2 ==1.14.0
+  - hOpenPGP ==2.9.4
+  - hopenpgp-tools ==0.23.1
   - hopfli ==0.2.2.1
   - hosc ==0.17
   - hostname ==1.0
@@ -983,48 +1067,54 @@ default-package-overrides:
   - hourglass ==0.2.12
   - hourglass-orphans ==0.1.0.0
   - hp2pretty ==0.9
-  - hpack ==0.33.0
-  - hpc-codecov ==0.1.0.0
+  - hpack ==0.34.2
+  - hpack-dhall ==0.5.2
+  - hpc-codecov ==0.2.0.0
+  - hpc-lcov ==1.0.1
   - hreader ==1.1.0
   - hreader-lens ==0.1.3.0
   - hruby ==0.3.8
-  - hs-bibutils ==6.8.0.0
+  - hs-bibutils ==6.10.0.0
   - hsc2hs ==0.68.7
   - hscolour ==1.24.4
   - hsdns ==1.8
   - 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.1
-  - hslua-module-system ==0.2.1
+  - hslua-aeson ==1.0.3
+  - hslua-module-doclayout ==0.1.0
+  - 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
   - hspec-wai ==0.10.1
+  - hspec-wai-json ==0.10.1
   - hs-php-session ==0.0.9.3
   - hsshellscript ==3.4.5
   - HStringTemplate ==0.8.7
@@ -1039,60 +1129,49 @@ 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.0.0
+  - 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
-  - http-download ==0.1.0.1
+  - http-download ==0.2.0.0
   - httpd-shed ==0.4.1.1
   - 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.1
+  - hunit-dejafu ==2.0.0.4
   - hvect ==0.4.0.0
-  - hvega ==0.5.0.0
-  - hw-balancedparens ==0.3.1.0
-  - hw-bits ==0.7.2.0
+  - hvega ==0.9.1.0
+  - hw-balancedparens ==0.4.1.0
+  - hw-bits ==0.7.2.1
   - hw-conduit ==0.2.1.0
   - hw-conduit-merges ==0.2.1.0
   - hw-diagnostics ==0.0.1.0
-  - hw-dsv ==0.4.1.0
   - hweblib ==0.6.3
-  - hw-eliasfano ==0.1.2.0
   - hw-excess ==0.2.3.0
   - hw-fingertree ==0.1.2.0
   - hw-fingertree-strict ==0.1.2.0
   - hw-hedgehog ==0.1.1.0
   - hw-hspec-hedgehog ==0.1.1.0
   - hw-int ==0.0.2.0
-  - hw-ip ==2.4.2.0
-  - hw-json ==1.3.2.0
   - hw-json-simd ==0.1.1.0
-  - hw-json-simple-cursor ==0.1.1.0
-  - hw-json-standard-cursor ==0.2.2.0
   - hw-mquery ==0.2.1.0
-  - hw-packed-vector ==0.2.1.0
   - hw-parser ==0.1.1.0
   - hw-prim ==0.6.3.0
-  - hw-rankselect ==0.13.4.0
-  - hw-rankselect-base ==0.3.4.0
-  - hw-simd ==0.1.2.0
+  - hw-rankselect-base ==0.3.4.1
   - hw-streams ==0.0.1.0
   - hw-string-parse ==0.0.0.4
-  - hw-succinct ==0.1.0.1
-  - hw-xml ==0.5.1.0
   - hxt ==9.3.1.18
   - hxt-charproperties ==9.4.0.0
   - hxt-css ==0.1.0.3
@@ -1105,29 +1184,34 @@ default-package-overrides:
   - hybrid-vectors ==0.2.2
   - hyperloglog ==0.4.3
   - hyphenation ==0.8
+  - hyraxAbif ==0.2.3.21
   - iconv ==0.4.1.3
   - identicon ==0.2.2
   - ieee754 ==0.8.0
   - if ==0.1.0.0
   - iff ==0.0.6
+  - ihaskell ==0.10.1.1
   - ihs ==0.1.0.3
-  - ilist ==0.4.0.0
+  - ilist ==0.4.0.1
   - imagesize-conduit ==1.1
   - Imlib ==0.1.2
   - immortal ==0.3
+  - immortal-queue ==0.1.0.1
   - include-file ==0.1.0.4
-  - incremental-parser ==0.4.0.1
+  - incremental-parser ==0.4.0.2
   - indents ==0.5.0.1
   - indexed ==0.1.3
+  - indexed-containers ==0.1.0.2
   - indexed-list-literals ==0.2.1.3
   - indexed-profunctors ==0.1
   - infer-license ==0.2.0
   - inflections ==0.4.0.5
-  - influxdb ==1.7.1.3
+  - influxdb ==1.7.1.6
   - ini ==0.4.1
   - inj ==1.0
   - inline-c ==0.9.1.0
   - inline-c-cpp ==0.4.0.2
+  - inliterate ==0.1.0
   - insert-ordered-containers ==0.2.3.1
   - inspection-testing ==0.4.2.4
   - instance-control ==0.1.2.0
@@ -1136,15 +1220,17 @@ default-package-overrides:
   - integer-roots ==1.0
   - integration ==0.2.1
   - intern ==0.9.2
-  - interpolate ==0.2.0
+  - interpolate ==0.2.1
+  - interpolatedstring-perl6 ==1.0.2
   - interpolation ==0.1.1.1
   - interpolator ==1.0.0
-  - IntervalMap ==0.6.1.1
+  - IntervalMap ==0.6.1.2
   - intervals ==0.9.1
-  - intro ==0.6.0.1
+  - intro ==0.7.0.0
   - intset-imperative ==0.1.0.0
   - invariant ==0.5.3
-  - invertible ==0.2.0.5
+  - 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
@@ -1152,38 +1238,41 @@ default-package-overrides:
   - io-storage ==0.3
   - io-streams ==1.5.1.0
   - io-streams-haproxy ==1.0.1.0
-  - ip ==1.7.1
   - ip6addr ==1.0.1
   - iproute ==1.7.9
-  - IPv6Addr ==1.1.3
+  - IPv6Addr ==1.1.5
   - ipynb ==0.1.0.1
-  - ipython-kernel ==0.10.1.0
+  - ipython-kernel ==0.10.2.0
   - irc ==0.6.1.0
   - irc-client ==1.1.1.1
   - irc-conduit ==0.3.0.4
   - irc-ctcp ==0.1.3.0
+  - isbn ==1.0.0.0
   - islink ==0.1.0.0
   - iso3166-country-codes ==0.20140203.8
   - iso639 ==0.1.0.3
   - iso8601-time ==0.1.5
   - iterable ==3.0
+  - it-has ==0.2.0.0
+  - ixset-typed ==0.5
   - ix-shapable ==0.1.0
   - jack ==0.7.1.4
-  - jira-wiki-markup ==1.0.0
-  - jose ==0.8.2.1
+  - jira-wiki-markup ==1.1.4
+  - jose ==0.8.3.1
   - jose-jwt ==0.8.0
   - js-dgtable ==0.5.2
   - js-flot ==0.8.3
   - js-jquery ==3.3.1
   - json-alt ==1.0.0
-  - json-feed ==1.0.9
+  - json-feed ==1.0.11
   - jsonpath ==0.2.0.0
-  - json-rpc ==1.0.1
+  - json-rpc ==1.0.3
   - json-rpc-generic ==0.2.1.5
   - JuicyPixels ==3.3.5
+  - JuicyPixels-blurhash ==0.1.0.3
   - JuicyPixels-extra ==0.4.1
   - JuicyPixels-scale-dct ==0.1.2
-  - junit-xml ==0.1.0.0
+  - junit-xml ==0.1.0.1
   - justified-containers ==0.3.0.0
   - jwt ==0.10.0
   - kan-extensions ==5.2
@@ -1195,24 +1284,27 @@ default-package-overrides:
   - keycode ==0.2.2
   - keys ==3.12.3
   - kind-apply ==0.3.2.0
-  - kind-generics ==0.4.0.0
-  - kind-generics-th ==0.2.1.0
+  - kind-generics ==0.4.1.0
+  - kind-generics-th ==0.2.2.0
   - kmeans ==0.1.3
   - koofr-client ==1.0.0.3
-  - kubernetes-webhook-haskell ==0.2.0.1
+  - krank ==0.2.2
+  - kubernetes-webhook-haskell ==0.2.0.3
   - l10n ==0.1.0.1
   - labels ==0.3.3
-  - lackey ==1.0.12
+  - lackey ==1.0.13
   - LambdaHack ==0.9.5.0
   - lame ==0.2.0
-  - language-avro ==0.1.2.0
+  - language-avro ==0.1.3.1
+  - language-bash ==0.9.2
   - language-c ==0.8.3
   - language-c-quote ==0.12.2.1
+  - language-docker ==9.1.1
   - language-haskell-extract ==0.2.4
   - language-java ==0.2.9
   - language-javascript ==0.7.1.0
   - language-protobuf ==1.0.1
-  - language-puppet ==1.4.6.3
+  - language-puppet ==1.4.6.5
   - lapack-carray ==0.0.3
   - lapack-comfort-array ==0.0.0.1
   - lapack-ffi ==0.0.2
@@ -1234,7 +1326,7 @@ default-package-overrides:
   - lens-datetime ==0.3
   - lens-family ==2.0.0
   - lens-family-core ==2.0.0
-  - lens-family-th ==0.5.0.2
+  - lens-family-th ==0.5.1.0
   - lens-misc ==0.0.2.0
   - lens-properties ==4.11.1
   - lens-regex ==0.1.1
@@ -1246,29 +1338,35 @@ default-package-overrides:
   - libmpd ==0.9.1.0
   - libyaml ==0.1.2
   - LibZip ==1.0.1
-  - lifted-async ==0.10.0.6
+  - life-sync ==1.1.1.0
+  - lifted-async ==0.10.1.2
   - lifted-base ==0.2.3.12
   - lift-generics ==0.1.3
-  - linear ==1.20.9
-  - linenoise ==0.3.1
+  - line ==4.0.1
+  - 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.6.3
+  - ListLike ==4.7.1
+  - list-predicate ==0.1.0.1
   - listsafe ==0.1.0.1
-  - list-singleton ==1.0.0.3
+  - list-singleton ==1.0.0.4
   - list-t ==1.0.4
   - ListTree ==0.2.3
+  - little-logger ==0.1.0
+  - little-rio ==0.1.1
   - llvm-hs ==9.0.1
   - llvm-hs-pure ==9.0.0
   - lmdb ==0.2.5
   - load-env ==0.2.1.0
+  - loc ==0.1.3.8
   - loch-th ==0.2.2
   - lockfree-queue ==0.2.3.1
-  - log-base ==0.8.0.0
+  - log-base ==0.8.0.1
   - log-domain ==0.13
   - logfloat ==0.13.3.3
-  - logging-effect ==1.3.9
+  - logging ==3.0.5
   - logging-facade ==0.3.0
   - logging-facade-syslog ==1
   - logict ==0.7.0.2
@@ -1276,13 +1374,14 @@ default-package-overrides:
   - loopbreaker ==0.1.1.1
   - lrucache ==1.2.0.1
   - lrucaching ==0.3.3
-  - lsp-test ==0.10.2.0
+  - lsp-test ==0.10.3.0
   - lucid ==2.9.12
   - lucid-extras ==0.2.2
   - lukko ==0.1.1.2
   - lzma ==0.0.0.3
   - lzma-conduit ==1.2.1
   - machines ==0.7
+  - magic ==1.1
   - mainland-pretty ==0.7.0.1
   - main-tester ==0.2.0.1
   - makefile ==1.1.0.0
@@ -1290,58 +1389,63 @@ default-package-overrides:
   - markdown ==0.1.17.4
   - markdown-unlit ==0.5.0
   - markov-chain ==0.0.3.4
-  - massiv ==0.4.5.0
+  - massiv ==0.5.3.2
   - massiv-io ==0.2.1.0
-  - massiv-test ==0.1.2
+  - massiv-test ==0.1.3.1
   - mathexpr ==0.3.0.0
-  - math-functions ==0.3.3.0
+  - math-extras ==0.1.1.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.2.1
+  - matrix-static ==0.3
   - maximal-cliques ==0.1.1
   - mbox ==0.3.4
   - mbox-utility ==0.0.3.1
   - mcmc-types ==1.0.3
+  - medea ==1.1.2
   - median-stream ==0.7.0.0
   - megaparsec ==8.0.0
   - megaparsec-tests ==8.0.0
-  - membrain ==0.0.0.1
+  - membrain ==0.0.0.2
   - memory ==0.15.0
   - MemoTrie ==0.6.10
   - mercury-api ==0.1.0.2
-  - mergeful ==0.1.0.0
-  - mergeless ==0.2.0.2
+  - mergeful ==0.2.0.0
+  - mergeless ==0.3.0.0
   - mersenne-random-pure64 ==0.2.2.0
   - messagepack ==0.5.4
   - 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
   - microlens-platform ==0.4.1
-  - microlens-process ==0.2.0.1
+  - microlens-process ==0.2.0.2
   - microlens-th ==0.4.3.5
   - microspec ==0.2.1.3
   - microstache ==1.0.1.1
   - midair ==0.2.0.1
   - midi ==0.2.2.2
-  - mighty-metropolis ==1.2.0
+  - mighty-metropolis ==2.0.0
   - mime-mail ==0.5.0
   - mime-mail-ses ==0.4.1
   - mime-types ==0.1.0.9
-  - mini-egison ==0.1.6
+  - 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.2
   - mintty ==0.1.2
-  - miso ==1.4.0.0
+  - miso ==1.6.0.0
   - missing-foreign ==0.1.1
-  - mixed-types-num ==0.4.0.1
+  - MissingH ==1.4.3.0
+  - mixed-types-num ==0.4.0.2
   - mixpanel-client ==0.2.1
   - mltool ==0.2.0.1
   - mmap ==0.5.9
@@ -1351,27 +1455,30 @@ 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
+  - monad-bayes ==0.1.1.0
   - monad-control ==1.0.2.3
   - monad-control-aligned ==0.0.1.1
   - monad-coroutine ==0.9.0.4
   - 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
   - monad-memo ==0.5.1
+  - monad-metrics ==0.2.1.4
   - monad-par ==0.3.5
   - monad-parallel ==0.7.2.3
   - monad-par-extras ==0.3.3
   - 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
@@ -1384,23 +1491,28 @@ 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.10.0
+  - morpheus-graphql ==0.12.0
+  - morpheus-graphql-core ==0.12.0
   - mountpoints ==1.0.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
   - mtl-prelude ==2.0.3.1
   - multiarg ==0.30.0.10
+  - multi-containers ==0.1.1
   - multimap ==1.2.1
   - multiset ==0.3.4.3
-  - multistate ==0.8.0.2
-  - murmur3 ==1.0.3
+  - multistate ==0.8.0.3
+  - murmur3 ==1.0.4
   - murmur-hash ==0.1.0.9
   - MusicBrainz ==0.4.1
   - mustache ==2.3.1
   - mutable-containers ==0.3.4
-  - mwc-probability ==2.2.0
+  - mwc-probability ==2.3.1
   - mwc-random ==0.14.0.0
   - mx-state-codes ==1.0.0.0
   - mysql ==0.1.7
@@ -1411,7 +1523,6 @@ default-package-overrides:
   - nano-erl ==0.1.0.1
   - nanospec ==0.2.2
   - nats ==1.1.2
-  - natural-arithmetic ==0.1.2.0
   - natural-induction ==0.2.0.0
   - natural-sort ==0.1.2
   - natural-transformation ==0.4
@@ -1428,10 +1539,12 @@ default-package-overrides:
   - netwire-input-glfw ==0.0.11
   - network ==3.1.1.1
   - network-bsd ==2.8.1.0
-  - network-byte-order ==0.1.4.0
+  - network-byte-order ==0.1.5
   - network-conduit-tls ==1.3.2
   - network-info ==0.2.0.10
   - network-ip ==0.3.0.3
+  - network-messagepack-rpc ==0.1.2.0
+  - network-messagepack-rpc-websocket ==0.1.1.1
   - network-simple ==0.4.5
   - network-simple-tls ==0.4
   - network-transport ==0.5.4
@@ -1442,23 +1555,22 @@ default-package-overrides:
   - nicify-lib ==1.0.1
   - NineP ==0.0.2.1
   - nix-paths ==1.0.1
-  - NoHoed ==0.1.1
   - nonce ==1.0.7
   - nondeterminism ==1.4
   - non-empty ==0.3.2
-  - nonempty-containers ==0.3.3.0
+  - nonempty-containers ==0.3.4.0
   - nonemptymap ==0.0.6.0
   - non-empty-sequence ==0.2.0.4
-  - nonempty-vector ==0.2.0.1
+  - nonempty-vector ==0.2.0.2
   - non-negative ==0.1.2
   - not-gloss ==0.7.7.0
   - no-value ==1.0.0.0
   - nowdoc ==0.1.1.0
-  - nqe ==0.6.1
+  - nqe ==0.6.3
   - 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
@@ -1467,7 +1579,7 @@ default-package-overrides:
   - ObjectName ==1.1.0.1
   - o-clock ==1.1.0
   - odbc ==0.2.2
-  - oeis2 ==1.0.3
+  - oeis2 ==1.0.4
   - ofx ==0.4.4.0
   - old-locale ==1.0.0.7
   - old-time ==1.1.0.3
@@ -1477,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
@@ -1486,7 +1598,10 @@ default-package-overrides:
   - openpgp-asciiarmor ==0.1.2
   - opensource ==0.1.1.0
   - openssl-streams ==1.2.2.0
-  - opentelemetry ==0.0.0.2
+  - opentelemetry ==0.4.2
+  - opentelemetry-extra ==0.4.2
+  - opentelemetry-lightstep ==0.4.2
+  - opentelemetry-wai ==0.4.2
   - operational ==0.2.3.5
   - operational-class ==0.3.0.0
   - optics ==0.2
@@ -1501,18 +1616,19 @@ default-package-overrides:
   - optparse-simple ==0.1.1.2
   - optparse-text ==0.1.1.0
   - ordered-containers ==0.2.2
-  - ormolu ==0.0.3.1
+  - ormolu ==0.1.2.0
   - overhang ==1.0.0
-  - packcheck ==0.4.2
+  - packcheck ==0.5.1
   - pager ==0.1.1.0
   - pagination ==0.2.1
-  - pandoc ==2.9.1.1
-  - pandoc-citeproc ==0.16.4.1
+  - pagure-cli ==0.2
+  - pandoc ==2.9.2.1
+  - pandoc-citeproc ==0.17.0.1
   - pandoc-csv2table ==1.0.8
-  - pandoc-plot ==0.2.2.0
+  - 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
@@ -1527,13 +1643,15 @@ default-package-overrides:
   - parsers ==0.12.10
   - partial-handler ==1.0.3
   - partial-isomorphisms ==0.2.2.1
-  - password ==1.0.0.0
-  - password-instances ==1.0.0.0
+  - partial-semigroup ==0.5.1.8
+  - password ==2.0.1.1
+  - password-instances ==2.0.0.1
   - path ==0.7.0
   - path-extra ==0.2.0
   - path-io ==1.6.0
   - path-pieces ==0.2.1
-  - pathtype ==0.8.1
+  - path-text-utf8 ==0.0.1.6
+  - pathtype ==0.8.1.1
   - pathwalk ==0.3.1.2
   - pattern-arrows ==0.0.2
   - pcg-random ==0.1.3.6
@@ -1546,8 +1664,8 @@ default-package-overrides:
   - percent-format ==0.0.1
   - perfect-hash-generator ==0.2.0.6
   - perfect-vector-shuffle ==0.1.1.1
-  - persist ==0.1.1.4
-  - persistable-record ==0.6.0.4
+  - persist ==0.1.1.5
+  - persistable-record ==0.6.0.5
   - persistable-types-HDBC-pg ==0.0.3.5
   - persistent ==2.10.5.2
   - persistent-mysql ==2.10.2.3
@@ -1563,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
@@ -1583,17 +1701,18 @@ default-package-overrides:
   - pipes-wai ==3.2.0
   - pkcs10 ==0.2.0.0
   - placeholders ==0.1
+  - plaid ==0.1.0.4
   - planb-token-introspection ==0.1.4.0
   - plotlyhs ==0.2.1
   - pointed ==5.0.1
   - pointedlist ==0.6.1
   - pointless-fun ==1.1.0.6
   - poll ==0.0.0.1
-  - poly ==0.3.3.0
+  - poly ==0.4.0.0
   - poly-arity ==0.1.0
   - polynomials-bernstein ==1.1.2
   - polyparse ==1.13
-  - polysemy ==1.2.3.0
+  - polysemy ==1.3.0.0
   - pooled-io ==0.0.2.2
   - port-utils ==0.2.1.0
   - posix-paths ==0.2.1.6
@@ -1603,33 +1722,32 @@ default-package-overrides:
   - postgresql-libpq ==0.9.4.2
   - postgresql-orm ==0.5.1
   - postgresql-simple ==0.6.2
+  - postgrest ==7.0.0
   - post-mess-age ==0.2.1.0
   - pptable ==0.3.0.0
-  - pqueue ==1.4.1.2
+  - pqueue ==1.4.1.3
   - prefix-units ==0.2.0
   - prelude-compat ==0.0.0.2
   - prelude-safeenum ==0.1.1.2
   - prettyclass ==1.0.0.0
   - pretty-class ==1.0.1.1
   - pretty-hex ==1.1
-  - prettyprinter ==1.6.1
-  - prettyprinter-ansi-terminal ==1.1.1.2
+  - prettyprinter ==1.6.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.2.0
+  - pretty-simple ==3.2.3.0
   - pretty-sop ==0.2.0.3
+  - pretty-terminal ==0.1.0.0
   - pretty-types ==0.3.0.1
   - primes ==0.2.1.0
   - primitive ==0.7.0.1
   - primitive-addr ==0.1.0.2
-  - primitive-extras ==0.8
-  - primitive-offset ==0.2.0.0
   - primitive-unaligned ==0.1.1.1
-  - primitive-unlifted ==0.1.3.0
   - print-console-colors ==0.1.0.0
   - process-extras ==0.7.4
   - product-isomorphic ==0.0.3.3
@@ -1637,35 +1755,38 @@ 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
+  - project-template ==0.2.1.0
+  - prometheus-client ==1.0.1
   - promises ==0.3
   - prompt ==0.1.1.2
   - prospect ==0.1.0.0
+  - proto3-wire ==1.1.0
+  - protobuf ==0.2.1.3
   - protobuf-simple ==0.1.1.0
   - protocol-radius ==0.0.1.1
   - protocol-radius-test ==0.1.0.1
-  - proto-lens ==0.6.0.0
-  - proto-lens-arbitrary ==0.1.2.8
-  - proto-lens-optparse ==0.1.1.6
-  - proto-lens-protobuf-types ==0.6.0.0
-  - proto-lens-protoc ==0.6.0.0
-  - proto-lens-runtime ==0.6.0.0
-  - proto-lens-setup ==0.4.0.3
+  - proto-lens ==0.7.0.0
+  - proto-lens-arbitrary ==0.1.2.9
+  - proto-lens-optparse ==0.1.1.7
+  - proto-lens-protobuf-types ==0.7.0.0
+  - proto-lens-protoc ==0.7.0.0
+  - proto-lens-runtime ==0.7.0.0
+  - proto-lens-setup ==0.4.0.4
   - protolude ==0.2.4
   - proxied ==0.3.1
   - psqueues ==0.2.7.2
-  - publicsuffix ==0.20191003
+  - publicsuffix ==0.20200526
   - pulse-simple ==0.1.14
   - pureMD5 ==2.1.3
-  - purescript-bridge ==0.13.0.0
+  - purescript-bridge ==0.14.0.0
   - pushbullet-types ==0.4.1.0
-  - pusher-http-haskell ==1.5.1.11
+  - 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
@@ -1673,16 +1794,17 @@ default-package-overrides:
   - quickcheck-assertions ==0.3.0
   - quickcheck-classes ==0.6.4.0
   - quickcheck-classes-base ==0.6.0.0
-  - quickcheck-instances ==0.3.22
+  - quickcheck-instances ==0.3.23
   - quickcheck-io ==0.2.0
   - 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
   - rainbow ==0.34.2.2
-  - rainbox ==0.24.4.0
+  - rainbox ==0.26.0.0
   - ral ==0.1
   - ramus ==0.1.2
   - rando ==0.0.0.4
@@ -1697,29 +1819,34 @@ default-package-overrides:
   - rank2classes ==1.3.2.1
   - Rasterific ==0.7.5.2
   - rasterific-svg ==0.3.3.2
-  - ratel ==1.0.10
-  - ratel-wai ==1.1.2
-  - rattle ==0.1
+  - ratel ==1.0.12
+  - rate-limit ==1.4.2
+  - ratel-wai ==1.1.3
   - rawfilepath ==0.2.4
   - 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
   - read-editor ==0.1.0.2
   - read-env-var ==1.0.0.0
+  - reanimate ==0.3.3.0
   - reanimate-svg ==0.9.8.0
-  - rebase ==1.4.1
-  - record-dot-preprocessor ==0.2.3
+  - rebase ==1.6.1
+  - record-dot-preprocessor ==0.2.6
   - record-hasfield ==1.0
   - records-sop ==0.1.0.3
   - recursion-schemes ==5.1.3
   - reducers ==3.12.3
   - refact ==0.3.0.2
   - ref-fd ==0.4.0.2
-  - reflection ==2.1.5
+  - reflection ==2.1.6
+  - reform ==0.2.7.4
+  - reform-blaze ==0.2.4.3
+  - reform-hamlet ==0.0.5.3
+  - reform-happstack ==0.2.5.3
   - RefSerialize ==0.4.0
   - regex ==1.1.0.0
   - regex-applicative ==0.3.3.1
@@ -1732,46 +1859,47 @@ 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.7.1
+  - registry ==0.1.9.1
   - reinterpret-cast ==0.1.0
   - relapse ==1.0.0.0
-  - relational-query ==0.12.2.2
+  - relational-query ==0.12.2.3
   - relational-query-HDBC ==0.7.2.0
   - relational-record ==0.2.2.0
   - relational-schemas ==0.1.8.0
-  - relude ==0.6.0.0
+  - relude ==0.7.0.0
   - renderable ==0.2.0.1
-  - replace-attoparsec ==1.2.2.0
-  - replace-megaparsec ==1.2.1.0
+  - replace-attoparsec ==1.4.1.0
+  - replace-megaparsec ==1.4.2.0
   - repline ==0.2.2.0
-  - req ==3.1.0
+  - req ==3.2.0
   - req-conduit ==1.0.0
-  - rerebase ==1.4.1
+  - rerebase ==1.6.1
   - resolv ==0.1.2.0
   - resource-pool ==0.2.3.2
-  - resourcet ==1.2.4
+  - resourcet ==1.2.4.2
   - result ==0.2.6.0
   - rethinkdb-client-driver ==0.0.25
   - retry ==0.8.1.2
   - rev-state ==0.1.2
-  - rfc1751 ==0.1.2
+  - rfc1751 ==0.1.3
   - rfc5051 ==0.1.0.4
+  - rhine ==0.6.0
+  - rhine-gloss ==0.6.0.1
   - rigel-viz ==0.2.0.0
-  - rio ==0.1.15.1
+  - 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.1
+  - rocksdb-query ==0.3.2
   - roles ==0.2.0.0
   - 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
-  - run-st ==0.1.1.0
-  - safe ==0.3.18
+  - safe ==0.3.19
   - safecopy ==0.10.3
   - safe-decimal ==0.2.0.0
   - safe-exceptions ==0.1.7.0
@@ -1784,19 +1912,19 @@ default-package-overrides:
   - salak ==0.3.6
   - salak-yaml ==0.3.5.3
   - saltine ==0.1.1.0
-  - salve ==1.0.9
+  - salve ==1.0.10
   - sample-frame ==0.0.3
   - sample-frame-np ==0.0.4.1
-  - sampling ==0.3.3
+  - 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.5
+  - scotty ==0.11.6
   - scrypt ==0.5.0
   - sdl2 ==2.5.2.0
   - sdl2-gfx ==0.2
@@ -1804,18 +1932,18 @@ default-package-overrides:
   - sdl2-mixer ==1.1.0
   - sdl2-ttf ==2.1.1
   - search-algorithms ==0.3.1
-  - secp256k1-haskell ==0.1.8
+  - secp256k1-haskell ==0.2.5
   - securemem ==0.1.10
   - selda ==0.5.1.0
   - selda-json ==0.1.1.0
-  - selective ==0.3
-  - 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
@@ -1823,9 +1951,10 @@ default-package-overrides:
   - sequence-formats ==1.4.1
   - sequenceTools ==1.4.0.5
   - serf ==0.1.1.0
-  - serialise ==0.2.2.0
+  - serialise ==0.2.3.0
   - servant ==0.16.2
   - servant-auth ==0.3.2.0
+  - servant-auth-docs ==0.2.10.0
   - servant-auth-server ==0.4.5.1
   - servant-auth-swagger ==0.2.10.0
   - servant-blaze ==0.9
@@ -1836,77 +1965,86 @@ default-package-overrides:
   - servant-client-core ==0.16
   - servant-conduit ==0.15
   - servant-docs ==0.11.4
+  - servant-docs-simple ==0.2.0.1
   - 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
   - servant-mock ==0.8.5
   - servant-pipes ==0.15.1
-  - servant-purescript ==0.9.0.4
+  - servant-purescript ==0.10.0.0
   - servant-rawm ==0.3.2.0
   - servant-server ==0.16.2
-  - servant-static-th ==0.2.2.1
-  - servant-subscriber ==0.6.0.3
+  - servant-static-th ==0.2.3.0
+  - servant-subscriber ==0.7.0.0
   - servant-swagger ==1.1.7.1
   - servant-swagger-ui ==0.3.4.3.23.11
   - servant-swagger-ui-core ==0.3.3
   - servant-swagger-ui-redoc ==0.3.3.1.22.3
   - servant-websockets ==2.0.0
   - servant-yaml ==0.1.0.1
-  - serverless-haskell ==0.10.5
+  - serverless-haskell ==0.11.3
   - serversession ==1.0.1
   - serversession-frontend-wai ==1.0
   - ses-html ==0.4.0.0
   - set-cover ==0.1.1
   - setenv ==0.1.1.3
   - setlocale ==1.0.0.9
+  - sexp-grammar ==2.1.0
   - SHA ==1.6.4.4
-  - shakespeare ==2.0.24
+  - shake-plus ==0.1.10.0
+  - shakespeare ==2.0.24.1
   - shared-memory ==0.2.0.0
   - shell-conduit ==4.7.0
   - shell-escape ==0.2.0
-  - shellmet ==0.0.3.0
+  - shellmet ==0.0.3.1
   - shelltestrunner ==1.9
-  - shell-utility ==0.0
+  - shell-utility ==0.1
   - shelly ==1.9.0
   - should-not-typecheck ==2.1.0
-  - show-combinators ==0.1.1.0
+  - show-combinators ==0.2.0.0
   - siggy-chardust ==1.0.0
   - signal ==0.1.0.4
   - silently ==1.2.5.1
   - simple-affine-space ==0.1.1
-  - simple-cabal ==0.1.1
-  - simple-cmd ==0.2.1
+  - simple-cabal ==0.1.2
+  - simple-cmd ==0.2.2
   - simple-cmd-args ==0.1.6
   - simple-log ==0.9.12
   - simple-reflect ==0.3.3
   - simple-sendfile ==0.2.30
   - simplest-sqlite ==0.1.0.2
-  - simple-templates ==0.9.0.0
-  - simple-vec3 ==0.6
-  - simplistic-generics ==0.1.0.0
+  - simple-templates ==1.0.0
+  - simple-vec3 ==0.6.0.1
+  - simplistic-generics ==2.0.0
   - since ==0.0.0
   - 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
   - sized ==0.4.0.0
   - skein ==1.0.9.4
+  - skews ==0.1.0.3
   - skip-var ==0.1.1.0
-  - skylighting ==0.8.3.4
-  - skylighting-core ==0.8.3.4
+  - skylighting ==0.8.5
+  - skylighting-core ==0.8.5
+  - slack-api ==0.12
   - slist ==0.1.1.0
-  - small-bytearray-builder ==0.3.4.0
-  - smallcheck ==1.1.5
-  - smoothie ==0.4.2.10
+  - smallcheck ==1.1.7
+  - smash ==0.1.1.0
+  - smash-aeson ==0.1.0.0
+  - smash-lens ==0.1.0.0
+  - smash-microlens ==0.1.0.0
+  - smoothie ==0.4.2.11
   - snap-blaze ==0.2.1.5
-  - snap-core ==1.0.4.1
-  - snap-server ==1.1.1.1
+  - snap-core ==1.0.4.2
+  - snap-server ==1.1.1.2
   - snowflake ==0.1.1.1
   - soap ==0.2.3.6
   - soap-tls ==0.1.1.4
@@ -1919,65 +2057,75 @@ default-package-overrides:
   - sox ==0.2.3.1
   - soxlib ==0.0.3.1
   - sparse-linear-algebra ==0.3.1
-  - sparse-tensor ==0.2.1.3
+  - sparse-tensor ==0.2.1.4
   - spatial-math ==0.5.0.1
   - special-values ==0.1.0.0
   - speculate ==0.4.2
-  - speedy-slice ==0.3.0
-  - Spintax ==0.3.4
+  - speedy-slice ==0.3.1
+  - Spintax ==0.3.5
   - splice ==0.6.1.1
   - split ==0.2.3.4
-  - splitmix ==0.0.4
+  - splitmix ==0.0.5
   - spoon ==0.3.1
   - spreadsheet ==0.1.3.8
+  - sqlcli ==0.2.2.0
+  - sqlcli-odbc ==0.2.0.1
   - sql-words ==0.1.6.4
+  - squeather ==0.4.0.0
   - srcloc ==0.5.1.2
   - stache ==2.1.1
+  - stackcollapse-ghc ==0.0.1.2
   - stack-templatizer ==0.1.0.2
   - starter ==0.3.0
   - stateref ==0.3
   - statestack ==0.3
   - StateVar ==1.2
+  - static-text ==0.2.0.6
   - statistics ==0.15.2.0
+  - status-notifier-item ==0.3.0.5
   - stb-image-redux ==0.2.1.3
   - step-function ==0.2
   - stm-chans ==3.0.0.4
   - stm-conduit ==4.0.1
-  - stm-containers ==1.1.0.4
   - stm-delay ==0.1.1.1
   - stm-extras ==0.1.0.3
-  - stm-hamt ==1.2.0.4
   - stm-split ==0.0.2.1
   - stopwatch ==0.1.0.6
   - storable-complex ==0.2.3.0
   - storable-record ==0.0.5
   - storable-tuple ==0.0.3.3
-  - storablevector ==0.2.13
-  - stratosphere ==0.49.0
+  - 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
   - strict ==0.3.2
   - strict-base-types ==0.6.1
   - strict-concurrency ==0.2.4.3
   - strict-list ==0.1.5
+  - strict-tuple ==0.1.3
+  - strict-tuple-lens ==0.1.0.1
   - stringbuilder ==0.5.1
   - string-class ==0.1.7.0
   - string-combinators ==0.6.0.5
   - string-conv ==0.1.2
   - string-conversions ==0.4.0.1
-  - string-interpolate ==0.2.0.3
+  - string-interpolate ==0.2.1.0
   - string-qq ==0.0.4
   - stringsearch ==0.3.6.6
   - string-transform ==1.1.1
-  - stripe-concepts ==1.0.2.2
-  - stripe-signature ==1.0.0.2
-  - strive ==5.0.10
+  - stripe-concepts ==1.0.2.4
+  - stripe-signature ==1.0.0.4
+  - strive ==5.0.12
   - structs ==0.1.3
+  - structured ==0.1
   - structured-cli ==2.5.2.0
-  - stylish-haskell ==0.10.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
   - sundown ==0.6
   - superbuffer ==0.3.1.1
@@ -1986,16 +2134,19 @@ default-package-overrides:
   - svg-tree ==0.6.2.4
   - swagger ==0.3.0
   - swagger2 ==2.5
+  - 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.2.0
+  - systemd ==2.3.0
   - system-fileio ==0.3.16.4
   - system-filepath ==0.4.14
   - system-info ==0.5.1
   - tabular ==0.2.2.7
+  - taffybar ==3.2.2
   - tagchup ==0.4.1.1
   - tagged ==0.8.6
   - tagged-binary ==0.2.0.1
@@ -2010,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.1
+  - tasty-dejafu ==2.0.0.6
   - tasty-discover ==4.2.1
   - tasty-expected-failure ==0.11.1.2
   - tasty-golden ==2.3.3.2
@@ -2019,11 +2170,11 @@ 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
-  - tasty-silver ==3.1.13
+  - tasty-silver ==3.1.15
   - tasty-smallcheck ==0.8.1
   - tasty-th ==0.1.7
   - tasty-wai ==0.1.1.0
@@ -2067,30 +2218,35 @@ default-package-overrides:
   - tfp ==1.0.1.1
   - tf-random ==0.5
   - th-abstraction ==0.3.2.0
+  - th-bang-compat ==0.0.1.0
+  - th-constraint-compat ==0.0.1.0
   - th-data-compat ==0.1.0.0
   - th-desugar ==1.10
-  - these ==1.0.1
-  - these-lens ==1
+  - th-env ==0.1.0.2
+  - 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
   - th-lift ==0.8.1
-  - th-lift-instances ==0.1.16
+  - th-lift-instances ==0.1.17
+  - 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
-  - threepenny-gui ==0.8.3.1
+  - 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
   - throttle-io-stream ==0.2.0.1
+  - through-text ==0.1.0.0
   - throwable-exceptions ==0.1.0.9
   - th-strict-compat ==0.1.0.1
-  - th-test-utils ==1.0.1
+  - th-test-utils ==1.0.2
   - thyme ==0.3.5.5
-  - tidal ==1.4.9
+  - tidal ==1.5.2
   - tile ==0.3.0.0
   - time-compat ==1.9.3
   - timeit ==2.0
@@ -2101,7 +2257,8 @@ default-package-overrides:
   - time-manager ==0.0.0
   - time-parsers ==0.1.2.1
   - timerep ==2.0.0.2
-  - timezone-olson ==0.1.9
+  - time-units ==1.0.0
+  - timezone-olson ==0.2.0
   - timezone-series ==0.1.9
   - tinylog ==0.15.0
   - titlecase ==1.0.1
@@ -2112,7 +2269,7 @@ default-package-overrides:
   - tmapchan ==0.0.3
   - tmapmvar ==0.0.4
   - tmp-postgres ==1.34.1.0
-  - tomland ==1.2.1.0
+  - tomland ==1.3.0.0
   - tonalude ==0.1.1.0
   - topograph ==1.0.0.1
   - torsor ==0.1
@@ -2130,14 +2287,14 @@ default-package-overrides:
   - triplesec ==0.2.2.1
   - trivial-constraint ==0.6.0.0
   - tsv2csv ==0.1.0.2
-  - ttc ==0.2.0.0
+  - ttc ==0.2.2.0
   - ttl-hashtables ==1.4.1.0
   - ttrie ==0.1.2.1
   - tuple ==0.3.0.2
   - tuples-homogenous-h98 ==0.1.1.0
   - tuple-sop ==0.3.1.0
   - tuple-th ==0.2.5
-  - turtle ==1.5.18
+  - turtle ==1.5.20
   - TypeCompose ==0.9.14
   - typed-process ==0.2.6.0
   - typed-uuid ==0.0.0.2
@@ -2160,12 +2317,15 @@ default-package-overrides:
   - tzdata ==0.1.20190911.0
   - ua-parser ==0.7.5.1
   - uglymemo ==0.1.0.1
+  - ulid ==0.3.0.0
   - unagi-chan ==0.4.1.3
   - unbounded-delays ==0.1.1.0
   - unboxed-ref ==0.4.0.0
   - unboxing-vector ==0.1.1.0
   - uncertain ==0.3.1.0
   - unconstrained ==0.1.0.2
+  - unexceptionalio ==0.5.1
+  - unexceptionalio-trans ==0.5.1
   - unicode ==0.0.1.1
   - unicode-show ==0.1.0.4
   - unicode-transforms ==0.3.6
@@ -2189,20 +2349,20 @@ default-package-overrides:
   - unix-bytestring ==0.3.7.3
   - unix-compat ==0.5.2
   - unix-time ==0.4.7
-  - unliftio ==0.2.12.1
+  - unliftio ==0.2.13
   - unliftio-core ==0.1.2.0
   - unliftio-pool ==0.2.1.1
   - unlit ==0.4.0.0
   - unordered-containers ==0.2.10.0
   - unordered-intmap ==0.1.1
   - unsafe ==0.0
-  - urbit-hob ==0.3.2
+  - urbit-hob ==0.3.3
   - uri-bytestring ==0.3.2.2
-  - uri-bytestring-aeson ==0.1.0.7
-  - uri-encode ==1.5.0.5
+  - uri-bytestring-aeson ==0.1.0.8
+  - uri-encode ==1.5.0.6
   - url ==2.1.3
-  - urlpath ==9.0.1
   - users ==0.5.0.0
+  - utf8-conversions ==0.1.0.4
   - utf8-light ==0.4.2
   - utf8-string ==1.0.1.1
   - util ==0.1.17.1
@@ -2210,10 +2370,11 @@ default-package-overrides:
   - uuid ==1.3.13
   - uuid-types ==1.0.3
   - validation ==1.1
-  - validity ==0.9.0.3
-  - validity-aeson ==0.2.0.3
+  - validation-selective ==0.1.0.0
+  - validity ==0.11.0.0
+  - validity-aeson ==0.2.0.4
   - validity-bytestring ==0.4.1.1
-  - validity-containers ==0.5.0.3
+  - validity-containers ==0.5.0.4
   - validity-path ==0.4.0.1
   - validity-primitive ==0.0.0.1
   - validity-scientific ==0.2.0.3
@@ -2234,53 +2395,57 @@ default-package-overrides:
   - vector-instances ==3.4
   - vector-mmap ==0.0.3
   - vector-rotcev ==0.1.0.0
-  - vector-sized ==1.4.0.0
+  - vector-sized ==1.4.1.0
   - vector-space ==0.16
   - vector-split ==1.0.0.2
   - vector-th-unbox ==0.2.1.7
-  - verbosity ==0.3.0.0
-  - versions ==3.5.3
+  - verbosity ==0.4.0.0
+  - versions ==3.5.4
   - vformat ==0.14.1.0
   - vformat-aeson ==0.1.0.1
   - vformat-time ==0.1.0.0
   - ViennaRNAParser ==1.3.3
   - void ==0.7.3
-  - vty ==5.26
+  - 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
   - wai-eventsource ==3.0.0
-  - wai-extra ==3.0.29.1
+  - wai-extra ==3.0.29.2
   - wai-handler-launch ==3.0.3.1
   - wai-logger ==2.3.6
   - wai-middleware-caching ==0.1.0.2
+  - wai-middleware-clacks ==0.1.0.1
   - wai-middleware-static ==0.8.3
   - wai-session ==0.3.3
   - wai-slack-middleware ==0.2.0
   - wai-websockets ==3.0.1.2
-  - warp ==3.3.10
-  - warp-tls ==3.2.11
+  - 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.0
+  - 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
+  - witherable-class ==0
+  - within ==0.1.1.0
   - with-location ==0.1.0
+  - with-utf8 ==1.0.2.1
   - witness ==0.4
   - wizards ==1.0.3
   - wl-pprint-annotated ==0.1.0.1
@@ -2290,13 +2455,14 @@ 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
   - writer-cps-mtl ==0.1.1.6
   - writer-cps-transformers ==0.5.6.1
-  - wuss ==1.1.16
+  - wss-client ==0.3.0.0
+  - wuss ==1.1.17
   - X11 ==1.9.1
   - X11-xft ==0.3.1
   - x11-xim ==0.0.9.0
@@ -2306,10 +2472,11 @@ default-package-overrides:
   - x509-validation ==1.6.11
   - Xauth ==0.1
   - xdg-basedir ==0.2.2
+  - xdg-desktop-entry ==0.1.1.1
   - xdg-userdirs ==0.1.0.2
-  - xeno ==0.3.5.2
-  - xls ==0.1.2
-  - xlsx ==0.8.0
+  - xeno ==0.4.1
+  - xls ==0.1.3
+  - xlsx ==0.8.1
   - xlsx-tabular ==0.2.2.1
   - xml ==1.3.14
   - xml-basic ==0.1.3.1
@@ -2317,32 +2484,38 @@ default-package-overrides:
   - xml-conduit-writer ==0.1.1.2
   - xmlgen ==0.6.2.2
   - xml-hamlet ==0.5.0.1
+  - xml-helpers ==1.0.0
   - xml-html-qq ==0.1.0.1
   - xml-indexed-cursor ==0.1.1.0
   - xml-lens ==0.2
   - xml-picklers ==0.3.6
   - xml-to-json ==2.0.1
   - xml-to-json-fast ==2.0.0
-  - xml-types ==0.3.6
+  - 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.3.0
-  - yesod ==1.6.0.1
+  - yaml ==0.11.4.0
+  - yamlparse-applicative ==0.1.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
+  - yesod-form-bootstrap4 ==3.0.0
   - yesod-gitrev ==0.2.1
   - yesod-newsfeed ==1.7.0.0
   - 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
+  - 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
@@ -2355,27 +2528,28 @@ default-package-overrides:
   - zeromq4-haskell ==0.8.0
   - zeromq4-patterns ==0.3.1.0
   - zim-parser ==0.2.1.0
-  - zip ==1.3.2
+  - zip ==1.5.0
   - 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
-  - zstd ==0.1.1.2
+  - zstd ==0.1.2.0
 
 extra-packages:
   - aeson < 0.8                         # newer versions don't work with GHC 7.6.x or earlier
-  - ansi-terminal == 0.10.3             # required by cabal-plan, and policeman in ghc-8.8.x
+  - 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
   - apply-refact < 0.4                  # newer versions don't work with GHC 8.0.x
   - apply-refact == 0.6.0.0             # works with GHC 8.6.x https://hackage.haskell.org/package/apply-refact/changelog
   - apply-refact == 0.7.0.0             # works with GHC 8.8.x https://hackage.haskell.org/package/apply-refact/changelog
   - apply-refact == 0.8.0.0             # works with GHC 8.10.x https://hackage.haskell.org/package/apply-refact/changelog
   - binary > 0.7 && < 0.8               # keep a 7.x major release around for older compilers
   - binary > 0.8 && < 0.9               # keep a 8.x major release around for older compilers
-  - blank-canvas < 0.6.3                # more recent versions depend on base-compat-batteries == 0.10.* but we're on base-compat-0.9.*
   - Cabal == 2.2.*                      # required for jailbreak-cabal etc.
   - Cabal == 2.4.*                      # required for cabal-install etc.
   - colour < 2.3.4                      # newer versions don't support GHC 7.10.x
@@ -2387,7 +2561,10 @@ extra-packages:
   - deepseq == 1.3.0.1                  # required to build Cabal with GHC 6.12.3
   - dhall == 1.29.0                     # required for spago 0.14.0.
   - doctemplates == 0.8                 # required by pandoc-2.9.x
+  - gi-gdk == 3.0.23                    # required for gi-pango 1.0.23
+  - gi-gtk == 3.0.35                    # required for gi-pango 1.0.23
   - 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
   - gloss < 1.9.3                       # new versions don't compile with GHC 7.8.x
   - haddock == 2.22.*                   # required on GHC 8.0.x
@@ -2397,43 +2574,38 @@ 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.19.*               # required for ghcide 0.1.0
-  - haskell-lsp-types == 0.19.*         # required for ghcide 0.1.0
+  - 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
   - 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
+  - hslua == 1.1.2                      # required for pandoc 2.10
   - inline-c < 0.6                      # required on GHC 8.0.x
   - inline-c-cpp < 0.2                  # required on GHC 8.0.x
-  - lens-family ==1.2.3                 # required for tensorflow
-  - lens-family-core ==1.2.3            # required for tensorflow
   - lens-labels == 0.1.*                # required for proto-lens-descriptors
   - megaparsec >= 7.0.4 && < 8          # required for idris: https://github.com/idris-lang/Idris-dev/issues/4826
   - mtl < 2.2                           # newer versions require transformers > 0.4.x, which we cannot provide in GHC 7.8.x
   - 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
-  - pantry == 0.2.0.0                   # required by stack-2.1.3.1
   - persistent >=2.5 && <2.8            # pre-lts-11.x versions neeed by git-annex 6.20180227
   - persistent-sqlite < 2.7             # pre-lts-11.x versions neeed by git-annex 6.20180227
   - prettyprinter == 1.6.1              # required by ghc 8.8.x, and dhall-1.29.0
   - primitive == 0.5.1.*                # required to build alex with GHC 6.12.3
-  - proto-lens == 0.5.*                 # required for tensorflow-proto
-  - proto-lens-protobuf-types == 0.5.*  # required for tensorflow-proto
-  - proto-lens-protoc == 0.5.*          # required for tensorflow-proto
-  - proto-lens-runtime == 0.5.*         # required for tensorflow-proto
-  - proto-lens-setup == 0.4.0.2         # required for tensorflow-proto
   - QuickCheck < 2                      # required by test-framework-quickcheck and its users
+  - repline == 0.3.*                    # required by dhall-0.32.x
   - resolv == 0.1.1.2                   # required to build cabal-install-3.0.0.0 with pre ghc-8.8.x
   - 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
   - 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
-  - these == 0.7.6                      # required by hnix 0.6.1
   - transformers == 0.4.3.*             # the latest version isn't supported by mtl yet
   - vector < 0.10.10                    # newer versions don't work with GHC 6.12.3
   - xml-conduit ^>= 1.7                 # pre-lts-11.x versions neeed by git-annex 6.20180227
@@ -2479,11 +2651,11 @@ package-maintainers:
     # - pipes-mongodb
     - streaming-wai
   kiwi:
+    - Unique
     - glirc
     - matterhorn
     - mattermost-api
     - mattermost-api-qc
-    - Unique
   psibi:
     - path-pieces
     - persistent
@@ -2494,14 +2666,38 @@ package-maintainers:
     - Agda
   roberth:
     - arion-compose
+    - hercules-ci-agent
+    - hercules-ci-api-core
+    - hercules-ci-api-agent
   cdepillabout:
     - pretty-simple
     - spago
-    - termonad
   rkrzr:
     - icepeak
   terlar:
     - nix-diff
+  maralorn:
+    - reflex-dom
+    - ghcide
+    - cabal-fmt
+    - shh
+    - brittany
+    - hlint
+    - neuron
+    - releaser
+    - taskwarrior
+  sorki:
+    - cayene-lpp
+    - data-stm32
+    - gcodehs
+    - nix-derivation
+    - nix-narinfo
+    - ttn
+    # - ttn-client
+    - update-nix-fetchgit
+    - zre
+  utdemir:
+    - nix-tree
 
 unsupported-platforms:
   alsa-mixer:                                   [ x86_64-darwin ]
@@ -2565,6 +2761,7 @@ dont-distribute-packages:
   - boolector
   - ccelerate-cuda
   - cplex-hs
+  - cuda # 2020-08-18 because of dependency nvidia-x11
   - cublas
   - cufft
   - cusolver
@@ -2576,6 +2773,9 @@ dont-distribute-packages:
   - Obsidian
   - odpic-raw
   - patch-image
+  # license for input data unclear, dependency not on Hackage
+  # see https://github.com/NixOS/nixpkgs/pull/88604
+  - tensorflow-mnist
   - yices-easy
   - yices-painless
 
@@ -2619,7 +2819,6 @@ dont-distribute-packages:
   - reflex-dom-contrib
   - reflex-dom-fragment-shader-canvas
   - reflex-dom-helpers
-  - reflex-dom
   - reflex-jsx
   - sneathlane-haste
   - spike
@@ -2708,6 +2907,7 @@ broken-packages:
   - adaptive-containers
   - adaptive-tuple
   - adb
+  - addy
   - adhoc-network
   - adict
   - adobe-swatch-exchange
@@ -2732,7 +2932,6 @@ broken-packages:
   - aeson-diff-generic
   - aeson-filthy
   - aeson-flowtyped
-  - aeson-gadt-th
   - aeson-injector
   - aeson-iproute
   - aeson-native
@@ -2766,6 +2965,7 @@ broken-packages:
   - alerta
   - alex-prelude
   - alfred
+  - alfred-margaret
   - alga
   - algebra-dag
   - algebra-sql
@@ -2794,11 +2994,11 @@ broken-packages:
   - amazon-emailer
   - amazon-emailer-client-snap
   - amazon-products
-  - amazonka-dynamodb
   - amby
   - AMI
   - ampersand
   - amqp-conduit
+  - amqp-streamly
   - analyze
   - analyze-client
   - anansi-pandoc
@@ -2871,8 +3071,10 @@ broken-packages:
   - arb-fft
   - arbb-vm
   - arbor-datadog
+  - arbor-monad-counter
   - arbor-monad-metric
   - arbor-monad-metric-datadog
+  - arbor-postgres
   - arbtt
   - archive-libarchive
   - archive-tar-bytestring
@@ -2896,6 +3098,7 @@ broken-packages:
   - arpa
   - arpack
   - array-forth
+  - array-list
   - array-primops
   - arrayfire
   - arraylist
@@ -2910,6 +3113,7 @@ broken-packages:
   - artifact
   - asap
   - ascii
+  - ascii-cows
   - ascii-flatten
   - ascii-string
   - ascii-table
@@ -3009,6 +3213,7 @@ broken-packages:
   - aws-kinesis-client
   - aws-kinesis-reshard
   - aws-lambda
+  - aws-lambda-haskell-runtime-wai
   - aws-mfa-credentials
   - aws-performance-tests
   - aws-route53
@@ -3020,9 +3225,11 @@ broken-packages:
   - aws-sns
   - axel
   - axiom
+  - azimuth-hs
   - azubi
   - azure-acs
   - azure-email
+  - azure-functions-worker
   - azure-service-api
   - azure-servicebus
   - azurify
@@ -3061,6 +3268,8 @@ broken-packages:
   - base-generics
   - base-io-access
   - base32-bytestring
+  - base62
+  - base64-bytes
   - base64-conduit
   - baserock-schema
   - basex-client
@@ -3136,6 +3345,7 @@ broken-packages:
   - binary-protocol-zmq
   - binary-search
   - binary-streams
+  - binary-tagged
   - binary-typed
   - bind-marshal
   - BinderAnn
@@ -3207,9 +3417,12 @@ broken-packages:
   - birch-beer
   - bird
   - BirdPP
+  - birds-of-paradise
   - bisect-binary
+  - bishbosh
   - bit-array
   - bit-stream
+  - bitcoin-address
   - bitcoin-api
   - bitcoin-api-extra
   - bitcoin-block
@@ -3295,7 +3508,10 @@ broken-packages:
   - bot
   - botpp
   - bounded-array
+  - bowntz
   - box
+  - box-csv
+  - box-socket
   - braid
   - brain-bleep
   - Bravo
@@ -3349,11 +3565,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
@@ -3377,9 +3596,7 @@ broken-packages:
   - c0parser
   - c10k
   - c2ats
-  - c2hsc
   - cabal-audit
-  - cabal-bounds
   - cabal-bundle-clib
   - cabal-cache
   - cabal-cargs
@@ -3388,7 +3605,6 @@ broken-packages:
   - cabal-dependency-licenses
   - cabal-dev
   - cabal-dir
-  - cabal-fmt
   - cabal-ghc-dynflags
   - cabal-ghci
   - cabal-graphdeps
@@ -3397,7 +3613,6 @@ broken-packages:
   - cabal-install-bundle
   - cabal-install-ghc72
   - cabal-install-ghc74
-  - cabal-lenses
   - cabal-meta
   - cabal-mon
   - cabal-nirvana
@@ -3454,6 +3669,7 @@ broken-packages:
   - cao
   - cap
   - Capabilities
+  - capability
   - capnp
   - capped-list
   - capri
@@ -3531,6 +3747,7 @@ broken-packages:
   - cgen
   - cgi-utils
   - cgrep
+  - chainweb-mining-client
   - chalkboard
   - chalkboard-viewer
   - charade
@@ -3539,6 +3756,7 @@ broken-packages:
   - chart-histogram
   - Chart-simple
   - chart-svg
+  - chart-svg-various
   - chart-unit
   - chatter
   - chatty-text
@@ -3789,6 +4007,7 @@ broken-packages:
   - confcrypt
   - conferer-hedis
   - conferer-provider-dhall
+  - conferer-provider-json
   - conferer-provider-yaml
   - conferer-snap
   - conffmt
@@ -3821,6 +4040,7 @@ broken-packages:
   - constraint-manip
   - ConstraintKinds
   - constraints-emerge
+  - construct
   - constructible
   - constructive-algebra
   - consul-haskell
@@ -3872,6 +4092,7 @@ broken-packages:
   - CoreDump
   - CoreErlang
   - CoreFoundation
+  - corenlp-parser
   - Coroutine
   - coroutine-enumerator
   - coroutine-iteratee
@@ -3891,6 +4112,7 @@ broken-packages:
   - cparsing
   - CPBrainfuck
   - cpio-conduit
+  - cpkg
   - CPL
   - cplusplus-th
   - cprng-aes-effect
@@ -3942,6 +4164,7 @@ broken-packages:
   - crypto-random-effect
   - crypto-rng
   - crypto-simple
+  - crypto-sodium
   - cryptocipher
   - cryptocompare
   - cryptoconditions
@@ -3950,6 +4173,12 @@ broken-packages:
   - 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
@@ -3978,6 +4207,7 @@ broken-packages:
   - curve25519
   - curves
   - custom-prelude
+  - cut-the-crap
   - CV
   - cv-combinators
   - cypher
@@ -4028,6 +4258,7 @@ broken-packages:
   - data-filepath
   - data-fin
   - data-fin-simple
+  - data-fix-cse
   - data-flagset
   - data-forest
   - data-ivar
@@ -4073,6 +4304,7 @@ broken-packages:
   - datasets
   - DataTreeView
   - dataurl
+  - DataVersion
   - date-conversions
   - dates
   - datetime
@@ -4147,11 +4379,11 @@ broken-packages:
   - delude
   - demarcate
   - denominate
+  - dense
   - dense-int-set
   - dependent-hashmap
   - dependent-monoidal-map
   - dependent-state
-  - dependent-sum-aeson-orphans
   - depends
   - dephd
   - deptrack-core
@@ -4173,6 +4405,7 @@ broken-packages:
   - detour-via-uom
   - deunicode
   - devil
+  - devtools
   - dewdrop
   - dfinity-radix-tree
   - Dflow
@@ -4180,8 +4413,8 @@ broken-packages:
   - dgim
   - dgs
   - dhall-check
+  - dhall-docs
   - dhall-fly
-  - dhall-lsp-server
   - dhall-nix
   - dhall-text
   - dhall-to-cabal
@@ -4204,6 +4437,7 @@ broken-packages:
   - diagrams-wx
   - dialogflow-fulfillment
   - dib
+  - dice
   - dice-entropy-conduit
   - dice2tex
   - dicom
@@ -4247,6 +4481,7 @@ broken-packages:
   - dirtree
   - discogs-haskell
   - discord-gateway
+  - discord-haskell
   - discord-hs
   - discord-rest
   - discord-types
@@ -4455,6 +4690,7 @@ broken-packages:
   - elm-websocket
   - elynx
   - elynx-markov
+  - elynx-nexus
   - elynx-seq
   - elynx-tools
   - elynx-tree
@@ -4495,6 +4731,7 @@ broken-packages:
   - EnumMap
   - enummapmap
   - enummapset-th
+  - env-extra
   - env-parser
   - envstatus
   - epanet-haskell
@@ -4526,10 +4763,6 @@ broken-packages:
   - EsounD
   - espial
   - ess
-  - essence-of-live-coding
-  - essence-of-live-coding-gloss
-  - essence-of-live-coding-pulse
-  - essence-of-live-coding-quickcheck
   - estimators
   - EstProgress
   - estreps
@@ -4548,6 +4781,7 @@ broken-packages:
   - ethereum-client-haskell
   - ethereum-merkle-patricia-db
   - eths-rlp
+  - euler-tour-tree
   - euphoria
   - eurofxref
   - eve
@@ -4610,7 +4844,6 @@ broken-packages:
   - extensible-data
   - extensible-effects-concurrent
   - extensible-skeleton
-  - extensions
   - external-sort
   - Extra
   - extract-dependencies
@@ -4622,6 +4855,7 @@ broken-packages:
   - f-ree-hack-cheats-free-v-bucks-generator
   - Facebook-Password-Hacker-Online-Latest-Version
   - faceted
+  - factory
   - Facts
   - facts
   - factual-api
@@ -4739,14 +4973,15 @@ broken-packages:
   - findhttp
   - fingertree-psqueue
   - fingertree-tf
-  - finitary
   - finitary-derive
+  - finitary-optics
   - FiniteMap
   - firefly-example
   - first-and-last
   - first-class-instances
   - firstify
   - FirstOrderTheory
+  - fishfood
   - fit
   - fits-parse
   - fitsio
@@ -4785,7 +5020,6 @@ broken-packages:
   - flite
   - float-binstring
   - floating-bits
-  - floskell
   - flow-er
   - flow2dot
   - flowdock
@@ -4855,6 +5089,7 @@ broken-packages:
   - frag
   - Frames-beam
   - Frames-dsv
+  - Frames-map-reduce
   - franchise
   - Frank
   - fraxl
@@ -4938,8 +5173,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
@@ -4966,7 +5205,6 @@ broken-packages:
   - gas
   - gbu
   - gc-monitoring-wai
-  - gcodehs
   - gconf
   - gdax
   - gdiff-ig
@@ -5057,6 +5295,7 @@ broken-packages:
   - ghc-parmake
   - ghc-pkg-autofix
   - ghc-pkg-lib
+  - ghc-plugs-out
   - ghc-proofs
   - ghc-session
   - ghc-simple
@@ -5083,20 +5322,8 @@ broken-packages:
   - ghcprofview
   - ght
   - gi-cairo-again
-  - gi-graphene
-  - gi-gsk
-  - gi-gstpbutils
-  - gi-gsttag
-  - gi-gtk-declarative
-  - gi-gtk-declarative-app-simple
-  - gi-gtkosxapplication
-  - gi-handy
-  - gi-poppler
-  - gi-secret
-  - gi-wnck
   - giak
   - Gifcurry
-  - ginger
   - ginsu
   - gipeda
   - GiST
@@ -5105,6 +5332,7 @@ broken-packages:
   - git-all
   - git-checklist
   - git-config
+  - git-cuk
   - git-date
   - git-fmt
   - git-gpush
@@ -5147,6 +5375,7 @@ broken-packages:
   - glazier-react
   - glazier-react-examples
   - glazier-react-widget
+  - Gleam
   - GLFW
   - GLFW-b-demo
   - GLFW-OGL
@@ -5171,6 +5400,7 @@ broken-packages:
   - gloss-game
   - gloss-raster
   - gloss-sodium
+  - glpk-headers
   - glpk-hs
   - glue
   - GLUtil
@@ -5306,6 +5536,8 @@ broken-packages:
   - gtfs
   - gtfs-realtime
   - gtk-serialized-event
+  - gtk-sni-tray
+  - gtk-strut
   - gtk-toy
   - gtk2hs-hello
   - gtk2hs-rpn
@@ -5319,7 +5551,6 @@ broken-packages:
   - gtksourceview3
   - guarded-rewriting
   - guess-combinator
-  - guid
   - GuiHaskell
   - GuiTV
   - gulcii
@@ -5429,6 +5660,7 @@ broken-packages:
   - hannahci
   - hans
   - hans-pcap
+  - hanspell
   - haphviz
   - hapistrano
   - happindicator
@@ -5494,6 +5726,7 @@ broken-packages:
   - has-th
   - HasCacBDD
   - hascar
+  - hascard
   - hascas
   - Haschoo
   - HasGP
@@ -5531,10 +5764,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
@@ -5584,6 +5819,7 @@ broken-packages:
   - haskell2020
   - haskell98
   - haskell98libraries
+  - HaskellAnalysisProgram
   - haskelldb
   - haskelldb-connect-hdbc
   - haskelldb-connect-hdbc-catchio-mtl
@@ -5604,6 +5840,7 @@ broken-packages:
   - haskelldb-hsql-sqlite3
   - haskelldb-th
   - haskelldb-wx
+  - haskellish
   - HaskellLM
   - HaskellNet
   - HaskellNet-SSL
@@ -5628,6 +5865,7 @@ broken-packages:
   - haskoin-protocol
   - haskoin-script
   - haskoin-store
+  - haskoin-store-data
   - haskoin-util
   - haskoin-wallet
   - haskoon
@@ -5663,12 +5901,13 @@ broken-packages:
   - hasql-dynamic-statements
   - hasql-generic
   - hasql-implicits
-  - hasql-migration
-  - hasql-notifications
   - hasql-optparse-applicative
   - hasql-postgres
   - hasql-postgres-options
+  - hasql-queue
   - hasql-simple
+  - hasql-th
+  - hasqly-mysql
   - hastache
   - hastache-aeson
   - haste
@@ -5721,7 +5960,6 @@ broken-packages:
   - hcltest
   - hcoap
   - hcom
-  - hcoord
   - hcron
   - hCsound
   - hcube
@@ -5831,6 +6069,7 @@ broken-packages:
   - hexpress
   - hexquote
   - hext
+  - hextra
   - heyefi
   - heyting-algebras
   - hF2
@@ -5984,7 +6223,6 @@ broken-packages:
   - hmt-diagrams
   - hmumps
   - hnetcdf
-  - hnix
   - hnix-store-remote
   - HNM
   - hnormalise
@@ -5994,7 +6232,6 @@ broken-packages:
   - hobbes
   - hobbits
   - hocilib
-  - hocker
   - hodatime
   - HODE
   - hoe
@@ -6009,12 +6246,12 @@ broken-packages:
   - hol
   - hold-em
   - hole
+  - holmes
   - Holumbus-Searchengine
   - holy-project
   - homeomorphic
   - hommage
   - homoiconic
-  - homotuple
   - homplexity
   - HongoDB
   - honi
@@ -6033,6 +6270,7 @@ broken-packages:
   - hoodle-types
   - hoogle-index
   - hooks-dir
+  - hoop
   - hoopl
   - hoovie
   - hopencc
@@ -6041,9 +6279,6 @@ broken-packages:
   - hOpenPGP
   - hopenpgp-tools
   - hopfield
-  - hoppy-docs
-  - hoppy-generator
-  - hoppy-std
   - hops
   - hoq
   - horizon
@@ -6149,6 +6384,7 @@ broken-packages:
   - hsbencher
   - hsbencher-codespeed
   - hsbencher-fusion
+  - hsc3
   - hsc3-auditor
   - hsc3-cairo
   - hsc3-data
@@ -6198,7 +6434,7 @@ broken-packages:
   - hsI2C
   - hsignal
   - hSimpleDB
-  - hsimport
+  - hsinspect-lsp
   - HsJudy
   - hskeleton
   - hslackbuilder
@@ -6310,7 +6546,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
@@ -6333,6 +6568,7 @@ broken-packages:
   - http2-client
   - http2-client-exe
   - http2-client-grpc
+  - http2-grpc-proto-lens
   - http2-grpc-proto3-wire
   - https-everywhere-rules
   - https-everywhere-rules-raw
@@ -6370,15 +6606,21 @@ broken-packages:
   - hvega-theme
   - hVOIDP
   - hw-all
+  - hw-balancedparens
   - hw-ci-assist
   - hw-dsv
+  - hw-eliasfano
   - hw-json
   - hw-json-lens
   - hw-json-simd
   - hw-json-simple-cursor
   - hw-json-standard-cursor
   - hw-kafka-avro
+  - hw-prim-bits
+  - hw-rankselect
   - hw-simd
+  - hw-succinct
+  - hw-xml
   - hwall-auth-iitk
   - hweblib
   - hwhile
@@ -6462,20 +6704,8 @@ broken-packages:
   - ignore
   - igraph
   - igrf
-  - ihaskell
-  - ihaskell-aeson
   - ihaskell-basic
-  - ihaskell-blaze
-  - ihaskell-charts
-  - ihaskell-diagrams
   - ihaskell-display
-  - ihaskell-gnuplot
-  - ihaskell-graphviz
-  - ihaskell-hatex
-  - ihaskell-hvega
-  - ihaskell-inline-r
-  - ihaskell-juicypixels
-  - ihaskell-magic
   - ihaskell-parsec
   - ihaskell-plot
   - ihaskell-rlangqq
@@ -6522,6 +6752,7 @@ broken-packages:
   - indextype
   - indices
   - indieweb-algorithms
+  - indigo
   - inf-interval
   - infer-upstream
   - infernal
@@ -6535,8 +6766,8 @@ broken-packages:
   - inilist
   - initialize
   - inject-function
+  - inline-asm
   - inline-java
-  - inline-r
   - inserts
   - inspector-wrecker
   - instana-haskell-trace-sdk
@@ -6553,10 +6784,12 @@ broken-packages:
   - integer-pure
   - integreat
   - intel-aes
+  - intensional-datatys
   - interlude-l
   - InternedData
   - internetmarke
   - intero
+  - interp
   - interpol
   - interpolatedstring-qq
   - interpolatedstring-qq-mwotton
@@ -6568,7 +6801,6 @@ broken-packages:
   - introduction
   - introduction-test
   - intset
-  - invertible-grammar
   - invertible-hlist
   - invertible-syntax
   - io-capture
@@ -6581,7 +6813,6 @@ broken-packages:
   - iostring
   - iothread
   - iotransaction
-  - ip
   - ip2location
   - ip2proxy
   - ipatch
@@ -6689,7 +6920,6 @@ broken-packages:
   - jpeg
   - js-good-parts
   - jsaddle-hello
-  - jsaddle-warp
   - jsaddle-wkwebview
   - JsContracts
   - jsmw
@@ -6777,6 +7007,7 @@ broken-packages:
   - katydid
   - kawaii
   - kawhi
+  - kazura-queue
   - kd-tree
   - kdesrc-build-extra
   - keccak
@@ -6785,8 +7016,10 @@ broken-packages:
   - keera-hails-mvc-model-lightmodel
   - keera-hails-mvc-model-protectedmodel
   - keera-hails-mvc-solutions-gtk
+  - keera-hails-reactive-cbmvar
   - keera-hails-reactive-fs
   - keera-hails-reactive-gtk
+  - keera-hails-reactive-htmldom
   - keera-hails-reactive-network
   - keera-hails-reactive-polling
   - keera-hails-reactive-wx
@@ -6899,6 +7132,7 @@ broken-packages:
   - language-csharp
   - language-css
   - language-dart
+  - language-dickinson
   - language-dockerfile
   - language-ecmascript-analysis
   - language-eiffel
@@ -6974,6 +7208,7 @@ broken-packages:
   - learn
   - learn-physics-examples
   - Learning
+  - learning-hmm
   - leetify
   - legion
   - legion-discovery
@@ -7008,6 +7243,7 @@ broken-packages:
   - lhe
   - lhs2TeX-hl
   - lhslatex
+  - libarchive
   - LibClang
   - libconfig
   - libcspm
@@ -7029,6 +7265,7 @@ broken-packages:
   - libraft
   - librandomorg
   - librato
+  - libsodium
   - libssh2
   - libssh2-conduit
   - libsystemd-daemon
@@ -7088,7 +7325,15 @@ broken-packages:
   - lio-simple
   - lipsum-gen
   - liquid
+  - liquid-base
+  - liquid-bytestring
+  - liquid-containers
   - liquid-fixpoint
+  - liquid-ghc-prim
+  - liquid-parallel
+  - liquid-platform
+  - liquid-prelude
+  - liquid-vector
   - liquidhaskell
   - liquidhaskell-cabal
   - Liquorice
@@ -7155,6 +7400,7 @@ broken-packages:
   - log-postgres
   - log-utils
   - log2json
+  - log4hs
   - logentries
   - logger
   - logging-effect-extra
@@ -7320,10 +7566,13 @@ broken-packages:
   - math-grads
   - math-interpolate
   - math-metric
+  - math-programming-glpk
+  - math-programming-tests
   - mathblog
   - mathflow
   - mathlink
   - matrix-as-xyz
+  - matrix-lens
   - matrix-market
   - matrix-sized
   - matsuri
@@ -7352,6 +7601,7 @@ broken-packages:
   - mDNSResponder-client
   - mdp
   - mealstrom
+  - mealy
   - MeanShift
   - Measure
   - mecab
@@ -7432,6 +7682,7 @@ broken-packages:
   - miniforth
   - minilens
   - minilight
+  - minilight-lua
   - minimung
   - minions
   - minioperational
@@ -7441,6 +7692,7 @@ broken-packages:
   - minst-idx
   - mios
   - mirror-tweet
+  - misfortune
   - miso-action-logger
   - miso-examples
   - miss
@@ -7481,7 +7733,6 @@ broken-packages:
   - monad-atom
   - monad-atom-simple
   - monad-branch
-  - monad-dijkstra
   - monad-exception
   - monad-finally
   - monad-fork
@@ -7519,6 +7770,7 @@ broken-packages:
   - MonadCatchIO-transformers
   - MonadCatchIO-transformers-foreign
   - MonadCompose
+  - monadic-recursion-schemes
   - monadiccp
   - monadiccp-gecode
   - Monadius
@@ -7558,6 +7810,7 @@ broken-packages:
   - morfeusz
   - morley
   - morpheus-graphql-cli
+  - morpheus-graphql-client
   - morphisms-functors
   - morphisms-functors-inventory
   - morphisms-objects
@@ -7576,6 +7829,7 @@ broken-packages:
   - mpi-hs-cereal
   - mpi-hs-store
   - mpppc
+  - mprelude
   - mpretty
   - mpris
   - mprover
@@ -7627,6 +7881,7 @@ broken-packages:
   - multibase
   - multifocal
   - multihash
+  - multihash-cryptonite
   - multihash-serialise
   - multilinear
   - multilinear-io
@@ -7694,6 +7949,7 @@ broken-packages:
   - n-tuple
   - n2o-protocols
   - n2o-web
+  - NaCl
   - nagios-plugin-ekg
   - nakadi-client
   - named-lock
@@ -7799,7 +8055,6 @@ broken-packages:
   - neural
   - neural-network-blashs
   - neural-network-hmatrix
-  - neuron
   - newhope
   - newports
   - newsletter
@@ -7826,7 +8081,6 @@ broken-packages:
   - nix-deploy
   - nix-eval
   - nix-freeze-tree
-  - nix-narinfo
   - nix-tools
   - nixfromnpm
   - nixpkgs-update
@@ -7841,6 +8095,7 @@ broken-packages:
   - nofib-analyse
   - nofib-analyze
   - noise
+  - nom
   - Nomyx
   - Nomyx-Core
   - Nomyx-Language
@@ -7884,6 +8139,9 @@ broken-packages:
   - numhask-test
   - Nussinov78
   - Nutri
+  - nvim-hs
+  - nvim-hs-contrib
+  - nvim-hs-ghcid
   - NXT
   - NXTDSL
   - nylas
@@ -7923,6 +8181,7 @@ broken-packages:
   - om-actor
   - om-elm
   - om-fail
+  - om-http-logging
   - omaketex
   - ombra
   - Omega
@@ -7933,6 +8192,7 @@ broken-packages:
   - onama
   - ONC-RPC
   - oneormore
+  - online
   - online-csv
   - onpartitions
   - OnRmt
@@ -7987,6 +8247,7 @@ broken-packages:
   - optparse-applicative-simple
   - optparse-enum
   - optparse-helper
+  - orbits
   - orc
   - orchestrate
   - OrchestrateDB
@@ -8042,6 +8303,7 @@ broken-packages:
   - pam
   - pan-os-syslog
   - panda
+  - pandoc-crossref
   - pandoc-emphasize-code
   - pandoc-filter-graphviz
   - pandoc-include
@@ -8077,12 +8339,14 @@ broken-packages:
   - paphragen
   - pappy
   - paprika
+  - par-dual
   - paragon
   - Paraiso
   - Parallel-Arrows-Eden
   - parallel-tasks
   - parallel-tree-search
   - parameterized
+  - parameterized-utils
   - paranoia
   - parco
   - parco-attoparsec
@@ -8124,7 +8388,6 @@ broken-packages:
   - pastis
   - pasty
   - patat
-  - patch
   - patches-vector
   - path-text-utf8
   - Pathfinder
@@ -8156,6 +8419,7 @@ broken-packages:
   - pdf-toolbox-viewer
   - pdfname
   - pdfsplit
+  - pdftotext
   - pdynload
   - peakachu
   - PeanoWitnesses
@@ -8214,6 +8478,7 @@ broken-packages:
   - pg-store
   - pg-transact
   - pgdl
+  - pgf2
   - pgsql-simple
   - pgstream
   - phasechange
@@ -8300,6 +8565,7 @@ broken-packages:
   - plat
   - platinum-parsing
   - PlayingCards
+  - plex
   - plist
   - plist-buddy
   - plocketed
@@ -8339,7 +8605,9 @@ broken-packages:
   - polydata
   - polydata-core
   - polynomial
+  - polysemy-optics
   - polysemy-RandomFu
+  - polysemy-webserver
   - polysemy-zoo
   - polyseq
   - polytypeable
@@ -8353,6 +8621,7 @@ broken-packages:
   - pool-conduit
   - pop3-client
   - popenhs
+  - popkey
   - poppler
   - porcupine-core
   - porcupine-http
@@ -8373,6 +8642,7 @@ broken-packages:
   - postgres-websockets
   - postgresql-lo-stream
   - postgresql-named
+  - postgresql-pure
   - postgresql-query
   - postgresql-simple-bind
   - postgresql-simple-named
@@ -8380,6 +8650,9 @@ broken-packages:
   - postgresql-simple-queue
   - postgresql-simple-sop
   - postgresql-simple-typed
+  - postgresql-syntax
+  - postgresql-tx-query
+  - postgresql-tx-squeal
   - postgresql-typed
   - postgresql-typed-lifted
   - postgrest-ws
@@ -8461,6 +8734,7 @@ broken-packages:
   - process-qq
   - process-streaming
   - processing
+  - processmemory
   - procrastinating-variable
   - procstat
   - producer
@@ -8496,6 +8770,7 @@ broken-packages:
   - proteome
   - proto-lens-combinators
   - proto-lens-descriptors
+  - proto-lens-jsonpb
   - proto3-suite
   - protobuf-native
   - protocol-buffers
@@ -8538,6 +8813,7 @@ broken-packages:
   - purescript
   - purescript-iso
   - purescript-tsd-gen
+  - pursuit-client
   - push-notifications
   - push-notify
   - push-notify-apn
@@ -8565,15 +8841,12 @@ broken-packages:
   - qr-imager
   - qr-repa
   - qsem
-  - qtah-cpp-qt5
-  - qtah-examples
-  - qtah-generator
-  - qtah-qt5
   - QuadEdge
   - QuadTree
   - quantfin
   - quantum-arrow
   - quantum-random
+  - quarantimer
   - qudb
   - Quelea
   - quenya-verb
@@ -8648,12 +8921,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
@@ -8683,7 +8962,6 @@ broken-packages:
   - rbr
   - rc
   - rclient
-  - rdf4h
   - rdioh
   - react-flux
   - react-flux-servant
@@ -8742,8 +9020,8 @@ broken-packages:
   - Referees
   - references
   - refh
+  - refined-http-api-data
   - reflection-extras
-  - reflex
   - reflex-animation
   - reflex-backend-socket
   - reflex-backend-wai
@@ -8808,6 +9086,7 @@ broken-packages:
   - relacion
   - relation
   - relational-postgresql8
+  - relational-query-postgresql-pure
   - relative-date
   - relevant-time
   - reload
@@ -8847,6 +9126,7 @@ broken-packages:
   - req-url-extra
   - request-monad
   - require
+  - rescue
   - reserve
   - reservoir
   - resin
@@ -8874,7 +9154,6 @@ broken-packages:
   - rethinkdb-client-driver
   - rethinkdb-model
   - rethinkdb-wereHamster
-  - retrie
   - retryer
   - reverse-geocoding
   - reversi
@@ -8890,10 +9169,7 @@ broken-packages:
   - rfc-psql
   - rfc-redis
   - rfc-servant
-  - rhine
-  - rhine-gloss
   - rhythm-game-tutorial
-  - rib
   - ribbit
   - RichConditional
   - ridley
@@ -8983,6 +9259,7 @@ broken-packages:
   - rungekutta
   - runmany
   - runtime-arbitrary
+  - rvar
   - rws
   - RxHaskell
   - s-expression
@@ -9048,6 +9325,7 @@ broken-packages:
   - SCalendar
   - scalendar
   - scalp-webhooks
+  - scalpel-search
   - scan-vector-machine
   - scc
   - scenegraph
@@ -9115,6 +9393,7 @@ broken-packages:
   - secure-sockets
   - secureUDP
   - sednaDBXML
+  - seitz-symbol
   - selectors
   - SelectSequencesFromMSA
   - selenium
@@ -9125,6 +9404,7 @@ broken-packages:
   - Semantique
   - semdoc
   - semi-iso
+  - semialign-extras
   - semibounded-lattices
   - Semigroup
   - semigroupoids-syntax
@@ -9159,6 +9439,7 @@ broken-packages:
   - servant-auth-token-leveldb
   - servant-auth-token-persistent
   - servant-auth-token-rocksdb
+  - servant-avro
   - servant-client-namedargs
   - servant-csharp
   - servant-db
@@ -9192,6 +9473,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
@@ -9203,6 +9487,7 @@ broken-packages:
   - servant-streaming-docs
   - servant-streaming-server
   - servant-swagger-tags
+  - servant-to-elm
   - servant-waargonaut
   - servant-zeppelin
   - servant-zeppelin-client
@@ -9225,7 +9510,6 @@ broken-packages:
   - setoid
   - setters
   - sexp
-  - sexp-grammar
   - sexpr-parser
   - sext
   - SFML
@@ -9241,6 +9525,7 @@ broken-packages:
   - sgrep
   - sh2md
   - sha-streams
+  - sha1
   - shade
   - shadower
   - shake-bindist
@@ -9250,6 +9535,7 @@ broken-packages:
   - shake-pack
   - shake-path
   - shake-persist
+  - shake-plus-extended
   - shakebook
   - shaker
   - shakespeare-babel
@@ -9270,8 +9556,6 @@ broken-packages:
   - shellish
   - shellmate
   - shellmate-extras
-  - shh
-  - shh-extras
   - shimmer
   - shine-examples
   - shivers-cfg
@@ -9282,6 +9566,13 @@ broken-packages:
   - ShortestPathProblems
   - show-prettyprint
   - showdown
+  - Shpadoinkle
+  - Shpadoinkle-backend-pardiff
+  - Shpadoinkle-backend-snabbdom
+  - Shpadoinkle-backend-static
+  - Shpadoinkle-html
+  - Shpadoinkle-router
+  - Shpadoinkle-widgets
   - shpider
   - shuffle
   - si-clock
@@ -9338,7 +9629,6 @@ broken-packages:
   - SimpleServer
   - simplesmtpclient
   - simseq
-  - single-tuple
   - singleton-dict
   - singleton-typelits
   - singnal
@@ -9358,6 +9648,7 @@ broken-packages:
   - skeletons
   - skell
   - skemmtun
+  - skews
   - skulk
   - skylark-client
   - skylighting-lucid
@@ -9370,11 +9661,13 @@ broken-packages:
   - slidemews
   - Slides
   - slim
+  - slip32
   - sloane
   - slot-lambda
   - sloth
   - slug
   - slynx
+  - small-bytearray-builder
   - smallarray
   - smallcheck-laws
   - smallcheck-lens
@@ -9386,6 +9679,7 @@ broken-packages:
   - smartconstructor
   - smartGroup
   - smartword
+  - smash-optics
   - smcdel
   - sme
   - smerdyakov
@@ -9405,6 +9699,7 @@ broken-packages:
   - SMTPClient
   - smtps-gmail
   - smuggler
+  - smuggler2
   - snake
   - snake-game
   - snap-accept
@@ -9417,7 +9712,6 @@ broken-packages:
   - snap-loader-static
   - snap-routes
   - snap-stream
-  - snap-templates
   - snap-testing
   - snap-utils
   - snap-web-routes
@@ -9540,7 +9834,6 @@ broken-packages:
   - splines
   - split-morphism
   - splitter
-  - splot
   - Spock
   - Spock-api-ghcjs
   - Spock-api-server
@@ -9571,6 +9864,7 @@ broken-packages:
   - sqlvalue-list
   - sqsd-local
   - squeal-postgresql
+  - squeeze
   - sr-extra
   - srcinst
   - sscan
@@ -9612,6 +9906,7 @@ broken-packages:
   - stackage-types
   - stackage-upload
   - stackage2nix
+  - stan
   - standalone-derive-topdown
   - standalone-haddock
   - starling
@@ -9623,6 +9918,7 @@ broken-packages:
   - state-record
   - stateful-mtl
   - stateWriter
+  - static
   - static-canvas
   - static-closure
   - static-tensor
@@ -9655,6 +9951,7 @@ broken-packages:
   - stm-hamt
   - stm-promise
   - stm-stats
+  - stm-supply
   - STM32-Zombie
   - stmcontrol
   - stochastic
@@ -9686,9 +9983,14 @@ 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
   - strictly
@@ -9766,6 +10068,7 @@ broken-packages:
   - swearjure
   - swf
   - swift-lda
+  - swiss-ephemeris
   - sws
   - syb-extras
   - syb-with-class-instances-text
@@ -9775,6 +10078,7 @@ broken-packages:
   - sym
   - sym-plot
   - symantic
+  - symantic-atom
   - symantic-http-test
   - symantic-lib
   - symantic-xml
@@ -9782,6 +10086,7 @@ broken-packages:
   - symbolic-link
   - symengine
   - symengine-hs
+  - symmetry-operations-symbols
   - sync
   - sync-mht
   - syncthing-hs
@@ -9823,6 +10128,7 @@ broken-packages:
   - Tablify
   - tabloid
   - tabs
+  - taffybar
   - tag-bits
   - tag-stream
   - tagged-exception-core
@@ -9852,9 +10158,9 @@ broken-packages:
   - tart
   - task
   - task-distribution
-  - taskell
   - TaskMonad
   - tasty-auto
+  - tasty-bdd
   - tasty-fail-fast
   - tasty-groundhog-converters
   - tasty-hedgehog-coverage
@@ -9862,6 +10168,8 @@ broken-packages:
   - tasty-jenkins-xml
   - tasty-laws
   - tasty-lens
+  - tasty-mgolden
+  - tasty-quickcheck-laws
   - tasty-stats
   - tateti-tateti
   - Taxonomy
@@ -9903,12 +10211,14 @@ broken-packages:
   - tensorflow
   - tensorflow-core-ops
   - tensorflow-logging
+  - tensorflow-opgen
   - tensorflow-ops
   - termbox
   - termbox-banana
   - termbox-bindings
   - terminal-text
   - termination-combinators
+  - termonad
   - termplot
   - terntup
   - terrahs
@@ -9928,6 +10238,7 @@ broken-packages:
   - test-simple
   - testbench
   - testCom
+  - testcontainers
   - TestExplode
   - testloop
   - testpack
@@ -10036,7 +10347,9 @@ broken-packages:
   - timeseries
   - timespan
   - timeutils
+  - timezone-olson-th
   - timezone-unix
+  - tini
   - tintin
   - tiny-scheduler
   - TinyLaunchbury
@@ -10105,6 +10418,7 @@ broken-packages:
   - trackit
   - traction
   - tracy
+  - trade-journal
   - traildb
   - trajectory
   - transactional-events
@@ -10143,6 +10457,8 @@ broken-packages:
   - treemap-html-tools
   - TreeStructures
   - Treiber
+  - trek-app
+  - trek-db
   - tremulous-query
   - TrendGraph
   - trhsx
@@ -10183,6 +10499,7 @@ broken-packages:
   - turingMachine
   - turtle-options
   - tweak
+  - twee
   - tweet-hs
   - twentefp-eventloop-graphics
   - twentefp-eventloop-trees
@@ -10198,6 +10515,7 @@ broken-packages:
   - twilio
   - twill
   - twine
+  - twirp
   - twitter
   - twitter-conduit
   - twitter-enumerator
@@ -10237,6 +10555,7 @@ broken-packages:
   - typeable-th
   - TypeClass
   - typed-encoding
+  - typed-encoding-encoding
   - typed-streams
   - typed-wire
   - typedflow
@@ -10270,6 +10589,7 @@ broken-packages:
   - UMM
   - unagi-bloomfilter
   - unamb-custom
+  - unbeliever
   - unbound
   - unbound-generics
   - unbound-kind-generics
@@ -10323,7 +10643,6 @@ broken-packages:
   - unused
   - uom-plugin
   - up
-  - update-nix-fetchgit
   - Updater
   - uploadcare
   - upskirt
@@ -10331,6 +10650,7 @@ broken-packages:
   - urembed
   - uri
   - uri-conduit
+  - uri-encoder
   - uri-enumerator
   - uri-enumerator-file
   - uri-parse
@@ -10355,9 +10675,9 @@ broken-packages:
   - usb-id-database
   - usb-iteratee
   - usb-safe
+  - useragents
   - users-mysql-haskell
   - users-persistent
-  - utc
   - utf8-prelude
   - utf8-validator
   - UTFTConverter
@@ -10375,6 +10695,7 @@ broken-packages:
   - uuagc-cabal
   - uuagc-diagrams
   - uuid-aeson
+  - uuid-bytes
   - uvector
   - uvector-algorithms
   - uxadt
@@ -10417,6 +10738,7 @@ broken-packages:
   - vect-floating-accelerate
   - vect-opengl
   - vector-bytestring
+  - vector-circular
   - vector-clock
   - vector-conduit
   - vector-endian
@@ -10440,6 +10762,7 @@ broken-packages:
   - verifiable-expressions
   - verify
   - verilog
+  - verismith
   - versioning
   - versioning-servant
   - vflow-types
@@ -10453,6 +10776,7 @@ broken-packages:
   - views
   - vigilance
   - Villefort
+  - vimeta
   - vimus
   - vintage-basic
   - vinyl-gl
@@ -10486,8 +10810,6 @@ broken-packages:
   - vty-menu
   - vty-ui
   - vty-ui-extras
-  - vulkan
-  - VulkanMemoryAllocator
   - waargonaut
   - wacom-daemon
   - waddle
@@ -10590,21 +10912,23 @@ broken-packages:
   - webshow
   - websockets-rpc
   - webwire
+  - weekdaze
   - weighted
   - weighted-regexp
   - welshy
   - werewolf
   - werewolf-slack
+  - what4
   - Wheb
   - wheb-mongo
   - wheb-redis
   - wheb-strapped
-  - which
   - while-lang-parser
   - whim
   - whiskers
   - whitespace
   - whois
+  - wholepixels
   - why3
   - WikimediaParser
   - wikipedia4epub
@@ -10662,6 +10986,7 @@ broken-packages:
   - wsdl
   - wsedit
   - wshterm
+  - wss-client
   - wstunnel
   - wtk
   - wtk-gtk
@@ -10742,6 +11067,7 @@ broken-packages:
   - xmonad-windownames
   - xmpipe
   - XMPP
+  - xor
   - xorshift-plus
   - Xorshift128Plus
   - xournal-builder
@@ -10796,6 +11122,8 @@ broken-packages:
   - yarr
   - yarr-image-io
   - yavie
+  - yaya-test
+  - yaya-unsafe-test
   - ycextra
   - yeamer
   - yeller
@@ -10929,6 +11257,7 @@ broken-packages:
   - zeromq4-conduit
   - zeromq4-patterns
   - zeroth
+  - zettelkast
   - ZFS
   - zifter
   - zifter-cabal
@@ -10956,7 +11285,6 @@ broken-packages:
   - zoom-cache-pcm
   - zoom-cache-sndfile
   - zoom-refs
-  - zre
   - zsh-battery
   - zsyntax
   - ztail
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index e05f82bf04d..cff7cc2cd80 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -96,6 +96,7 @@ self: super: builtins.intersectAttrs super {
 
   # profiling is disabled to allow C++/C mess to work, which is fixed in GHC 8.8
   cachix = disableLibraryProfiling super.cachix;
+  hercules-ci-agent = disableLibraryProfiling super.hercules-ci-agent;
 
   # avoid compiling twice by providing executable as a separate output (with small closure size)
   niv = enableSeparateBinOutput super.niv;
@@ -442,6 +443,9 @@ self: super: builtins.intersectAttrs super {
                             [ pkgs.darwin.apple_sdk.frameworks.OpenCL ];
   });
 
+  # requires an X11 display in test suite
+  gi-gtk-declarative = dontCheck super.gi-gtk-declarative;
+
   # depends on 'hie' executable
   lsp-test = dontCheck super.lsp-test;
 
@@ -542,6 +546,9 @@ self: super: builtins.intersectAttrs super {
   # Break infinite recursion cycle between tasty and clock.
   clock = dontCheck super.clock;
 
+  # Break infinite recursion cycle between devtools and mprelude.
+  devtools = super.devtools.override { mprelude = dontCheck super.mprelude; };
+
   # loc and loc-test depend on each other for testing. Break that infinite cycle:
   loc-test = super.loc-test.override { loc = dontCheck self.loc; };
 
@@ -636,31 +643,28 @@ self: super: builtins.intersectAttrs super {
   spago =
     let
       # Spago needs a small patch to work with the latest versions of rio.
-      # https://github.com/purescript/spago/pull/616
-      # This can probably be removed when a version after spago-0.15.1 is released.
+      # https://github.com/purescript/spago/pull/647
       spagoWithPatches = appendPatch super.spago (pkgs.fetchpatch {
-        url = "https://github.com/purescript/spago/pull/616/commits/95b5fa0f1d3bfb07972d1ef5004b8bee8a070667.patch";
-        sha256 = "0v3890lwhddfrq9mhbq92962pkxra8kwbin97wg3s0b02dk65ysc";
+        url = "https://github.com/purescript/spago/pull/647/commits/917ee541a966db74f0f5d11f2f86df0030c35dd7.patch";
+        sha256 = "1nspqgcjk6z90cl9zhard0rn2q979kplcqz72x8xv5mh57zabk0w";
       });
 
-      # Spago basically compiles with LTS-14, but it requires a newer version
-      # of directory.  This is to work around a bug only present on windows, so
-      # we can safely jailbreak spago and use the older directory package from
-      # LTS-14.
+      # spago requires an older version of megaparsec, but it appears to work
+      # fine with newer versions.
       spagoWithOverrides = doJailbreak spagoWithPatches;
 
       # 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: {
@@ -715,12 +719,8 @@ 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;
-
   cut-the-crap =
-    let path = pkgs.stdenv.lib.makeBinPath [ pkgs.ffmpeg ];
+    let path = pkgs.stdenv.lib.makeBinPath [ pkgs.ffmpeg_3 ];
     in overrideCabal (addBuildTool super.cut-the-crap pkgs.makeWrapper) (_drv: {
       postInstall = ''
         wrapProgram $out/bin/cut-the-crap \
@@ -730,4 +730,45 @@ self: super: builtins.intersectAttrs super {
 
   # Tests access homeless-shelter.
   hie-bios = dontCheck super.hie-bios;
+  hie-bios_0_5_0 = dontCheck super.hie-bios_0_5_0;
+
+  # Compiling the readme throws errors and has no purpose in nixpkgs
+  aeson-gadt-th =
+    disableCabalFlag (doJailbreak (super.aeson-gadt-th)) "build-readme";
+
+  neuron = overrideCabal (super.neuron) (drv: {
+    # neuron expects the neuron-search script to be in PATH at built-time.
+    buildTools = [ pkgs.makeWrapper ];
+    preConfigure = ''
+      mkdir -p $out/bin
+      cp src-bash/neuron-search $out/bin/neuron-search
+      chmod +x $out/bin/neuron-search
+      wrapProgram $out/bin/neuron-search --prefix 'PATH' ':' ${
+        with pkgs;
+        lib.makeBinPath [ fzf ripgrep gawk bat findutils envsubst ]
+      }
+      PATH=$PATH:$out/bin
+    '';
+  });
+
+  # Fix compilation of Setup.hs by removing the module declaration.
+  # See: https://github.com/tippenein/guid/issues/1
+  guid = overrideCabal (super.guid) (drv: {
+    prePatch = "sed -i '1d' Setup.hs"; # 1st line is module declaration, remove it
+    doCheck = false;
+  });
+
+  # Tests disabled as recommended at https://github.com/luke-clifton/shh/issues/39
+  shh = dontCheck super.shh;
+
+  # The test suites fail because there's no PostgreSQL database running in our
+  # build sandbox.
+  hasql-queue = dontCheck super.hasql-queue;
+  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/configuration-tensorflow.nix b/pkgs/development/haskell-modules/configuration-tensorflow.nix
index aab416b9a87..4848cb6111f 100644
--- a/pkgs/development/haskell-modules/configuration-tensorflow.nix
+++ b/pkgs/development/haskell-modules/configuration-tensorflow.nix
@@ -11,124 +11,28 @@ let
   tensorflow-haskell = pkgs.fetchFromGitHub {
     owner = "tensorflow";
     repo = "haskell";
-    rev = "0f322b2e0611cbe7011c84ba8b6cb822e4725ebc";
-    sha256 = "15gn66i547q20sd50ixwm6yk1g00syfgxp8xa6xjd0i3kcsl3gs1";
+    rev = "568c9b6f03e5d66a25685a776386e2ff50b61aa9";
+    sha256 = "0v58zhqipa441hzdvp9pwgv6srir2fm7cp0bq2pb5jl1imwyd37h";
     fetchSubmodules = true;
   };
 
   setTensorflowSourceRoot = dir: drv:
     (overrideCabal drv (drv: { src = tensorflow-haskell; }))
       .overrideAttrs (_oldAttrs: {sourceRoot = "source/${dir}";});
-
-  proto-lens = self.proto-lens_0_5_1_0;
-  proto-lens-protoc = self.proto-lens-protoc_0_5_0_0;
-  proto-lens-runtime = self.proto-lens-runtime_0_5_0_0;
-  proto-lens-protobuf-types = self.proto-lens-protobuf-types_0_5_0_0;
-  proto-lens-setup = self.proto-lens-setup_0_4_0_2;
-  lens-family = self.lens-family_1_2_3;
 in
 {
-  lens-family_1_2_3 = super.lens-family_1_2_3.override {
-    lens-family-core = self.lens-family-core_1_2_3;
-  };
-  
-  proto-lens_0_5_1_0 = (appendPatch (doJailbreak super.proto-lens_0_5_1_0) ./patches/proto-lens-0.5.1.0.patch).override {
-    inherit lens-family;
-  };
-
-  proto-lens-runtime_0_5_0_0 = doJailbreak (super.proto-lens-runtime_0_5_0_0.override {
-    inherit lens-family proto-lens;
-  });
-
-  proto-lens-protoc_0_5_0_0 = doJailbreak (super.proto-lens-protoc_0_5_0_0.override {
-    inherit lens-family proto-lens;
-    haskell-src-exts = self.haskell-src-exts_1_19_1;
-  });
-  proto-lens-setup_0_4_0_2 = appendPatch (doJailbreak (super.proto-lens-setup_0_4_0_2.override {
-    inherit proto-lens-protoc;
-  })) ./patches/proto-lens-setup-0.4.0.2.patch;
-
-  proto-lens-protobuf-types_0_5_0_0 = doJailbreak (super.proto-lens-protobuf-types_0_5_0_0.override {
-    inherit lens-family proto-lens proto-lens-runtime proto-lens-setup;
-  });
-
-  haskell-src-exts_1_19_1 = appendPatches (doJailbreak super.haskell-src-exts_1_19_1) [
-    # Adapt to the Semigroup–Monoid Proposal (enables building on GHC >= 8.4)
-    (pkgs.fetchpatch {
-        url = "https://github.com/haskell-suite/haskell-src-exts/commit/258e072fe9e37f94360b7488b58ea2832843bbb8.patch";
-        sha256 = "0ja6ai41v9plinlhjwja282m6ahn6mw4xi79np0jxqk83cg0z1ff";
-    })
-    # Adapt to MonadFail proposal (enables building on GHC >= 8.8)
-    (pkgs.fetchpatch {
-        url = "https://gist.githubusercontent.com/mikesperber/0f2addaf3fbe97ffb4a5234d8711ba41/raw/e09e20998283c7195e82d546ba9266d290eb000d/gistfile1.txt";
-        sha256 = "18clvli7vpqsqlf2f3qidn71738j9zdlpana6wha3x0dxwan5ly0";
-    }) ];
-
-  tensorflow-proto = (setTensorflowSourceRoot "tensorflow-proto" super.tensorflow-proto).override {
-    inherit proto-lens proto-lens-runtime proto-lens-setup proto-lens-protobuf-types;
-  };
+  tensorflow-proto = doJailbreak (setTensorflowSourceRoot "tensorflow-proto" super.tensorflow-proto);
 
   tensorflow = (setTensorflowSourceRoot "tensorflow" super.tensorflow).override {
-    inherit lens-family proto-lens;
     # the "regular" Python package does not seem to include the binary library
     libtensorflow = pkgs.libtensorflow-bin;
   };
 
-  tensorflow-core-ops = (setTensorflowSourceRoot "tensorflow-core-ops" super.tensorflow-core-ops).override {
-    inherit lens-family proto-lens;
-  };
-
-  tensorflow-logging = (setTensorflowSourceRoot "tensorflow-logging" super.tensorflow-logging).override {
-    inherit lens-family proto-lens;
-  };
-
-  tensorflow-mnist = (setTensorflowSourceRoot "tensorflow-mnist" super.tensorflow-mnist).override {
-    inherit lens-family proto-lens;
-    # https://github.com/tensorflow/haskell/issues/215
-    tensorflow-mnist-input-data = self.tensorflow-mnist-input-data;
-  };
-
-  tensorflow-mnist-input-data = setTensorflowSourceRoot "tensorflow-mnist-input-data" (super.callPackage (
-    { mkDerivation, base, bytestring, Cabal, cryptonite, directory
-    , filepath, HTTP, network-uri, stdenv
-    }:
+  tensorflow-core-ops = setTensorflowSourceRoot "tensorflow-core-ops" super.tensorflow-core-ops;
 
-    let
-      fileInfos = {
-        "train-images-idx3-ubyte.gz" = "440fcabf73cc546fa21475e81ea370265605f56be210a4024d2ca8f203523609";
-        "train-labels-idx1-ubyte.gz" = "3552534a0a558bbed6aed32b30c495cca23d567ec52cac8be1a0730e8010255c";
-        "t10k-images-idx3-ubyte.gz"  = "8d422c7b0a1c1c79245a5bcf07fe86e33eeafee792b84584aec276f5a2dbc4e6";
-        "t10k-labels-idx1-ubyte.gz"  = "f7ae60f92e00ec6debd23a6088c31dbd2371eca3ffa0defaefb259924204aec6";
-      };
-      downloads = with pkgs.lib; flip mapAttrsToList fileInfos (name: sha256:
-                    pkgs.fetchurl {
-                      url = "http://yann.lecun.com/exdb/mnist/${name}";
-                      inherit sha256;
-                    });
-    in
-    mkDerivation {
-      pname = "tensorflow-mnist-input-data";
-      version = "0.1.0.0";
-      enableSeparateDataOutput = true;
-      setupHaskellDepends = [
-        base bytestring Cabal cryptonite directory filepath HTTP
-        network-uri
-      ];
-      preConfigure = pkgs.lib.strings.concatStringsSep "\n" (
-          map (x: "ln -s ${x} data/$(stripHash ${x})") downloads
-        );
-      libraryHaskellDepends = [ base ];
-      homepage = "https://github.com/tensorflow/haskell#readme";
-      description = "Downloader of input data for training MNIST";
-      license = stdenv.lib.licenses.asl20;
-    }
-  ) {});
+  tensorflow-logging = setTensorflowSourceRoot "tensorflow-logging" super.tensorflow-logging;
 
-  tensorflow-opgen = (setTensorflowSourceRoot "tensorflow-opgen" super.tensorflow-opgen).override {
-    inherit lens-family proto-lens;
-  };
+  tensorflow-opgen = setTensorflowSourceRoot "tensorflow-opgen" super.tensorflow-opgen;
 
-  tensorflow-ops = (setTensorflowSourceRoot "tensorflow-ops" super.tensorflow-ops).override {
-    inherit lens-family proto-lens;
-  };
+  tensorflow-ops = setTensorflowSourceRoot "tensorflow-ops" super.tensorflow-ops;
 }
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index 49cbe02b71e..29609e86389 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -21,13 +21,14 @@ 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
@@ -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
@@ -383,7 +383,8 @@ stdenv.mkDerivation ({
 
     for d in $(grep '^dynamic-library-dirs:' "$packageConfDir"/* | cut -d' ' -f2- | tr ' ' '\n' | sort -u); do
       for lib in "$d/"*.{dylib,so}; do
-        ln -s "$lib" "$dynamicLinksDir"
+        # Allow overwriting because C libs can be pulled in multiple times.
+        ln -sf "$lib" "$dynamicLinksDir"
       done
     done
     # Edit the local package DB to reference the links directory.
@@ -635,34 +636,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 4fe3aac0121..f2d83c8d9fe 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -819,16 +819,6 @@ self: {
        libraryToolDepends = [ alex happy ];
        executableHaskellDepends = [ base directory filepath process ];
        executableToolDepends = [ emacs ];
-       postInstall = ''
-         files=("$data/share/ghc-"*"/"*"-ghc-"*"/Agda-"*"/lib/prim/Agda/"{Primitive.agda,Builtin"/"*.agda})
-         for f in "''${files[@]}" ; do
-           $out/bin/agda $f
-         done
-         for f in "''${files[@]}" ; do
-           $out/bin/agda -c --no-main $f
-         done
-         $out/bin/agda-mode compile
-       '';
        description = "A dependently typed functional programming language and proof assistant";
        license = "unknown";
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -1041,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
@@ -1114,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;
@@ -1309,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
@@ -1528,7 +1531,7 @@ self: {
          base colour diagrams-cairo diagrams-lib directory either-unwrap
          filepath parsec ParsecTools StockholmAlignment SVGFonts text vector
        ];
-       description = "Libary for Hidden Markov Models in HMMER3 format.";
+       description = "Libary for Hidden Markov Models in HMMER3 format";
        license = stdenv.lib.licenses.gpl3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -2054,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 = [
@@ -2251,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
@@ -2511,7 +2530,7 @@ self: {
        version = "0.3.1.0";
        sha256 = "0dlb761kj33v9p53fw44gg4r7j8kcl4jxvvgi7rz0pv8v7nh6255";
        libraryHaskellDepends = [ base ];
-       description = "Definition of a CSP core-language.";
+       description = "Definition of a CSP core-language";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -2912,7 +2931,7 @@ self: {
        version = "0.3";
        sha256 = "10m7l701p3a2w0kxi2b93g2ii6s4s71zyjypqk3mi79siv8yilif";
        libraryHaskellDepends = [ base mtl ];
-       description = "A monad for complex manipulation of a stream.";
+       description = "A monad for complex manipulation of a stream";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -3090,8 +3109,8 @@ self: {
      }:
      mkDerivation {
        pname = "ChasingBottoms";
-       version = "1.3.1.8";
-       sha256 = "1madbhhxi5awh74q0z2mx1la5jbkvx26zvhl4x8237sjzs0k51wx";
+       version = "1.3.1.9";
+       sha256 = "1acsmvdwsgry0i0qhmz0img71gq97wikmn9zgbqppl4n8a1d7bvh";
        libraryHaskellDepends = [
          base containers mtl QuickCheck random syb
        ];
@@ -3332,6 +3351,27 @@ self: {
        broken = true;
      }) {};
 
+  "Color_0_2_0" = callPackage
+    ({ mkDerivation, base, colour, criterion, data-default-class
+     , deepseq, doctest, hspec, HUnit, JuicyPixels, massiv, massiv-test
+     , QuickCheck, random, vector
+     }:
+     mkDerivation {
+       pname = "Color";
+       version = "0.2.0";
+       sha256 = "1w7d1wjssldybbg46s4hc83f96n49v53wyq0sc1q8mkvqdl35vsh";
+       libraryHaskellDepends = [ base data-default-class deepseq vector ];
+       testHaskellDepends = [
+         base colour doctest hspec HUnit JuicyPixels massiv massiv-test
+         QuickCheck random vector
+       ];
+       benchmarkHaskellDepends = [ base colour criterion deepseq random ];
+       description = "Color spaces and conversions between them";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "Combinatorrent" = callPackage
     ({ mkDerivation, array, attoparsec, base, bytestring, cereal
      , containers, deepseq, directory, filepath, hopenssl, hslogger
@@ -3622,7 +3662,7 @@ self: {
        version = "0.1";
        sha256 = "027dv53jrfk46dmiidnnrrdvhyin60i862znp414213w72yjrbhh";
        libraryHaskellDepends = [ base template-haskell ];
-       description = "Practical typed lazy contracts.";
+       description = "Practical typed lazy contracts";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -3745,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
@@ -4341,6 +4381,8 @@ self: {
        testHaskellDepends = [ base hspec QuickCheck ];
        description = "Type safe data migrations";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "Deadpan-DDP" = callPackage
@@ -5604,7 +5646,7 @@ self: {
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ array base containers haskell98 ];
-       description = "A set of computational morphology tools for Swedish diachronic lexicons.";
+       description = "A set of computational morphology tools for Swedish diachronic lexicons";
        license = "GPL";
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -5639,6 +5681,17 @@ self: {
        broken = true;
      }) {};
 
+  "FSM" = callPackage
+    ({ mkDerivation, base, containers, matrix, vector }:
+     mkDerivation {
+       pname = "FSM";
+       version = "1.0.0";
+       sha256 = "0gsrfzk5g499r7xdhsaag53207bd015jwcrl2f9izmpa6gli5las";
+       libraryHaskellDepends = [ base containers matrix vector ];
+       description = "Basic concepts of finite state machines";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "FTGL" = callPackage
     ({ mkDerivation, base, ftgl }:
      mkDerivation {
@@ -6337,8 +6390,8 @@ self: {
      }:
      mkDerivation {
        pname = "Frames";
-       version = "0.6.4";
-       sha256 = "1z1bv3dqna9gp6k2rjnbl54hxkaxl4khdlfy52r0cv51ah8969ri";
+       version = "0.7.0";
+       sha256 = "0g4c8s4v3lg7bnsz8n09zrf8cwyywmxpv97wkwx6xvflknb7z0cc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -6376,7 +6429,7 @@ self: {
          base beam-core beam-migrate beam-postgres bytestring conduit Frames
          generics-sop hspec hspec-core QuickCheck text vinyl
        ];
-       description = "A library for accessing Postgres tables as in-memory data structures.";
+       description = "A library for accessing Postgres tables as in-memory data structures";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -6419,6 +6472,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
@@ -6698,10 +6753,12 @@ self: {
      }:
      mkDerivation {
        pname = "GLUtil";
-       version = "0.10.3";
-       sha256 = "09zcb0ijm20nmynqsl585nhn1qaldkp3c8v3y28gn2cj606m8cqr";
+       version = "0.10.4";
+       sha256 = "12bn7519icm7z5j5bqdhplf5gby5c9la57v48p9izs08ll9q9id3";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
-         array base bytestring containers directory filepath hpp JuicyPixels
+         array base bytestring containers directory filepath JuicyPixels
          linear OpenGL OpenGLRaw transformers vector
        ];
        libraryToolDepends = [ hpp ];
@@ -6786,8 +6843,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";
@@ -6837,15 +6894,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";
@@ -7189,6 +7244,8 @@ self: {
        libraryHaskellDepends = [ base mtl split threepenny-gui ];
        description = "HTML Canvas graphics, animations and simulations";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "Glob" = callPackage
@@ -7198,10 +7255,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
@@ -8814,17 +8869,22 @@ self: {
 
   "HPDF" = callPackage
     ({ mkDerivation, array, base, base64-bytestring, binary, bytestring
-     , containers, errors, HTF, mtl, random, vector, zlib
+     , containers, errors, filepath, HTF, hyphenation, mtl, network-uri
+     , parsec, random, text, vector, zlib
      }:
      mkDerivation {
        pname = "HPDF";
-       version = "1.4.10";
-       sha256 = "1m072rc03yx5y4djmvj87kn6n23d9378v3ipl8lj3vzfjgfzsayy";
-       revision = "1";
-       editedCabalFile = "1djn0a9rk3qrbz31bxj115r65p28fi3wzcrkrnjvzibl3450pq30";
+       version = "1.5.0";
+       sha256 = "0bwj0haxw9a061xzn5zh2qc5d958n0g9izbnn0w08dazfjyl8v46";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base base64-bytestring binary bytestring containers errors
-         mtl random vector zlib
+         filepath hyphenation mtl network-uri parsec random text vector zlib
+       ];
+       executableHaskellDepends = [
+         base filepath network-uri random text vector
        ];
        testHaskellDepends = [ base HTF ];
        description = "Generation of PDF documents";
@@ -9136,7 +9196,7 @@ self: {
          base bytestring DebugTraceHelpers directory filepath HSH
          HStringTemplateHelpers MissingH mtl regex-pcre unix
        ];
-       description = "Convenience functions that use HSH, instances for HSH.";
+       description = "Convenience functions that use HSH, instances for HSH";
        license = "GPL";
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -9347,8 +9407,8 @@ self: {
      }:
      mkDerivation {
        pname = "HTab";
-       version = "1.7.2";
-       sha256 = "1xn2ljw97j625l5q7a9chqscdbi4cj29zg1yy4jz4mcivzwbjqii";
+       version = "1.7.3";
+       sha256 = "0w5zjd9q87a79vaslxs4r7xllq37vyg546ramgfnw43l1cmkica6";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -9852,8 +9912,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 ];
@@ -9940,6 +10000,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 {
@@ -10812,8 +10897,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
@@ -11059,8 +11144,8 @@ self: {
      }:
      mkDerivation {
        pname = "IPv6Addr";
-       version = "1.1.3";
-       sha256 = "1kbas95ggmjwhc2xj542jkl0jdkq61b6d76182sp1ifcvk7qr6v9";
+       version = "1.1.5";
+       sha256 = "0fnh77znfkp0d2i6vdvrsnxcdprqjz43in5k36b3yrrzffdrfka7";
        libraryHaskellDepends = [
          aeson attoparsec base iproute network network-info random text
        ];
@@ -11272,8 +11357,8 @@ self: {
      }:
      mkDerivation {
        pname = "IntervalMap";
-       version = "0.6.1.1";
-       sha256 = "0vdlvxvhf7vjyv0mfn6jaj2i2gclqv8419ck32s2jxfcmki5m5g8";
+       version = "0.6.1.2";
+       sha256 = "03smzhwk1zf5na544b0azp49j4gvafqsih9ggwf6yng38yhixwld";
        libraryHaskellDepends = [ base containers deepseq ];
        testHaskellDepends = [ base Cabal containers deepseq QuickCheck ];
        benchmarkHaskellDepends = [
@@ -11600,6 +11685,35 @@ self: {
        broken = true;
      }) {};
 
+  "JuicyPixels-blurhash" = callPackage
+    ({ mkDerivation, base, bytestring, containers, doctest, filepath
+     , Glob, hedgehog, JuicyPixels, optparse-applicative, tasty
+     , tasty-discover, tasty-hedgehog, tasty-hunit, vector
+     }:
+     mkDerivation {
+       pname = "JuicyPixels-blurhash";
+       version = "0.1.0.3";
+       sha256 = "0kgl2j7990p8q5yrkn0wgaszc9fzva1pc3277j11k1lbjsymz360";
+       revision = "2";
+       editedCabalFile = "0phffs6r83sny6zr4zsrppzqy1lgybm6lqgfmbfgwhyvmd544qx6";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring containers filepath JuicyPixels vector
+       ];
+       executableHaskellDepends = [
+         base bytestring containers filepath JuicyPixels
+         optparse-applicative vector
+       ];
+       testHaskellDepends = [
+         base bytestring containers doctest filepath Glob hedgehog
+         JuicyPixels tasty tasty-discover tasty-hedgehog tasty-hunit vector
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Blurhash is a very compact represenation of a placeholder for an image";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "JuicyPixels-canvas" = callPackage
     ({ mkDerivation, base, containers, JuicyPixels }:
      mkDerivation {
@@ -12164,6 +12278,8 @@ self: {
        pname = "LambdaHack";
        version = "0.9.5.0";
        sha256 = "1y5345cmwl40p0risziyqlxfa8jv1rm9x6ivv85xhznrsmr0406h";
+       revision = "1";
+       editedCabalFile = "0qaqfyg7a50yibshq63718iyi4z1v017fzp7kbwrnwqmkmdqfa5a";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -12562,10 +12678,8 @@ self: {
      }:
      mkDerivation {
        pname = "ListLike";
-       version = "4.6.3";
-       sha256 = "10vn7gslx4zzjq547cwpzdfb4c5w3nsfis6qr03dr9c4fdzj61lx";
-       revision = "1";
-       editedCabalFile = "1xi5mlk6jm73fdxsjcp41ffr3ygwwykcjf20c122k7hgpkzg1lms";
+       version = "4.7.1";
+       sha256 = "1gccb84fma0plkwjdz8hgqa70a5lr6d9gnw6pfky993555ig29mp";
        libraryHaskellDepends = [
          array base bytestring containers deepseq dlist fmlist text
          utf8-string vector
@@ -12578,15 +12692,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ListLike_4_7" = callPackage
+  "ListLike_4_7_2" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, deepseq
      , dlist, fmlist, HUnit, QuickCheck, random, text, utf8-string
      , vector
      }:
      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
@@ -12964,6 +13078,31 @@ 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;
+     }) {};
+
   "MSQueue" = callPackage
     ({ mkDerivation, base, ghc-prim, monad-loops, ref-mtl, stm }:
      mkDerivation {
@@ -13059,6 +13198,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "MapWith" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "MapWith";
+       version = "0.1.0.0";
+       sha256 = "1dk5b9bi29917sf3mk3q85iqjkfc7vczwb8x8cg6w6gxfqn0444v";
+       revision = "1";
+       editedCabalFile = "1zkpqgxh2d1zg087766vixw5j9xh9i9z4vdp5gv87xzhc4ig9qbs";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       benchmarkHaskellDepends = [ base ];
+       description = "mapWith: like fmap, but with additional arguments (isFirst, isLast, etc)";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "Mapping" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -13326,29 +13480,6 @@ self: {
      }:
      mkDerivation {
        pname = "MissingH";
-       version = "1.4.2.0";
-       sha256 = "1wfhpb351nrqjryf9si9j13nkvrqybhkkyc9643wqq8ywkdd59b9";
-       libraryHaskellDepends = [
-         array base containers directory filepath hslogger mtl network
-         network-bsd old-locale old-time parsec process random regex-compat
-         time unix
-       ];
-       testHaskellDepends = [
-         base containers directory errorcall-eq-instance filepath HUnit
-         old-time parsec regex-compat time unix
-       ];
-       description = "Large utility library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "MissingH_1_4_3_0" = callPackage
-    ({ mkDerivation, array, base, containers, directory
-     , errorcall-eq-instance, filepath, hslogger, HUnit, mtl, network
-     , network-bsd, old-locale, old-time, parsec, process, random
-     , regex-compat, time, unix
-     }:
-     mkDerivation {
-       pname = "MissingH";
        version = "1.4.3.0";
        sha256 = "196cniya5wzcv2d777nr0f7hinclpals4ia1mkzzv35870pqr6lw";
        libraryHaskellDepends = [
@@ -13362,7 +13493,6 @@ self: {
        ];
        description = "Large utility library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "MissingK" = callPackage
@@ -13586,8 +13716,8 @@ self: {
      }:
      mkDerivation {
        pname = "MonadRandom";
-       version = "0.5.1.2";
-       sha256 = "0j1lwg3pp77cf87bk0c1gipzrdvpjcj7bkgi37lcjc7avmlhwvvp";
+       version = "0.5.2";
+       sha256 = "1rjihspfdg2b9bwvbgj36ql595nbza8ddh1bmgz924xmddshcf30";
        libraryHaskellDepends = [
          base mtl primitive random transformers transformers-compat
        ];
@@ -14007,6 +14137,29 @@ self: {
        broken = true;
      }) {};
 
+  "NaCl" = callPackage
+    ({ mkDerivation, base, bytestring, hedgehog, HUnit, libsodium
+     , memory, safe-exceptions, tasty, tasty-discover, tasty-hedgehog
+     , tasty-hunit
+     }:
+     mkDerivation {
+       pname = "NaCl";
+       version = "0.0.3.1";
+       sha256 = "1ff793w4dc34nmd9s9pxdz6nrpqz9wv6bx5j0kxgmjvwzjx9i5ql";
+       libraryHaskellDepends = [
+         base bytestring libsodium memory safe-exceptions
+       ];
+       testHaskellDepends = [
+         base bytestring hedgehog HUnit libsodium memory safe-exceptions
+         tasty tasty-hedgehog tasty-hunit
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Easy-and-safe-to-use high-level Haskell bindings to NaCl";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "NameGenerator" = callPackage
     ({ mkDerivation, base, containers, random }:
      mkDerivation {
@@ -14193,18 +14346,17 @@ self: {
   "Network-NineP" = callPackage
     ({ mkDerivation, async, base, binary, bytestring, containers
      , convertible, exceptions, hslogger, monad-loops, monad-peel
-     , mstate, mtl, network, NineP, regex-posix, stateref, transformers
+     , mstate, mtl, network, network-bsd, NineP, regex-posix, stateref
+     , transformers
      }:
      mkDerivation {
        pname = "Network-NineP";
-       version = "0.4.6";
-       sha256 = "0aq8888z0fcsd18shsqjsgrpxm417cfh250vyd2660ajc0ymj3q3";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.4.7";
+       sha256 = "08r15aacvdx739w1nn1bmr0n8ygfjhqnj12zk6zchw1d50x65mi2";
        libraryHaskellDepends = [
          async base binary bytestring containers convertible exceptions
-         hslogger monad-loops monad-peel mstate mtl network NineP
-         regex-posix stateref transformers
+         hslogger monad-loops monad-peel mstate mtl network network-bsd
+         NineP regex-posix stateref transformers
        ];
        description = "High-level abstraction over 9P protocol";
        license = "unknown";
@@ -15225,8 +15377,8 @@ self: {
        pname = "PSQueue";
        version = "1.1.0.1";
        sha256 = "1cik7sw10sacsijmfhghzy54gm1qcyxw14shlp86lx8z89kcnkza";
-       revision = "1";
-       editedCabalFile = "0pswr49mg0ww0w579w4qsv5hjgcnsswdi283lxk6cvxw3wafif07";
+       revision = "2";
+       editedCabalFile = "0n1yrv1x1dxbjn9hjr8lk4k5in9c75ixzldlmszayi26bvax7329";
        libraryHaskellDepends = [ base ];
        description = "Priority Search Queue";
        license = stdenv.lib.licenses.bsd3;
@@ -16252,6 +16404,8 @@ self: {
        pname = "QuickCheck";
        version = "2.13.2";
        sha256 = "0426j43af8v3qmdjjqxivazsvr3a2brac8yw09vpgpjkb2m0nmkv";
+       revision = "1";
+       editedCabalFile = "0ynhx1n135b0zg539c9m7gp75dykm93pqqlp5xz2w4kmpxjp4vk3";
        libraryHaskellDepends = [
          base containers deepseq random splitmix template-haskell
          transformers
@@ -16261,14 +16415,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";
+       version = "2.14.1";
+       sha256 = "0ms71pphgihmqsvh4v88xd99n8xg3nlz1wxxxcf2vgns32mcbz63";
        libraryHaskellDepends = [
          base containers deepseq random splitmix template-haskell
          transformers
@@ -16756,6 +16910,8 @@ self: {
        executableHaskellDepends = [ base random-fu ];
        description = "Randomness intuition trainer";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "Range" = callPackage
@@ -16842,6 +16998,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 {
@@ -18097,6 +18269,175 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "Shpadoinkle" = callPackage
+    ({ mkDerivation, base, jsaddle, jsaddle-warp, text, unliftio }:
+     mkDerivation {
+       pname = "Shpadoinkle";
+       version = "0.1.0.0";
+       sha256 = "0527rd9dh5sjh3y7sir9bpydad05rx43nr6ba20sa4ha8zvvl583";
+       libraryHaskellDepends = [
+         base jsaddle jsaddle-warp text unliftio
+       ];
+       description = "A programming model for declarative, high performance user interface";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "Shpadoinkle-backend-pardiff" = callPackage
+    ({ mkDerivation, base, compactable, containers, file-embed, jsaddle
+     , lens, mtl, neat-interpolation, random, semialign, Shpadoinkle
+     , text, these, unliftio, uuid
+     }:
+     mkDerivation {
+       pname = "Shpadoinkle-backend-pardiff";
+       version = "0.1.0.1";
+       sha256 = "1b1ab062fm1qz0pnp4jws7wmhsb2hfvj5mb6jrrgbm9yjv7k725v";
+       libraryHaskellDepends = [
+         base compactable containers file-embed jsaddle lens mtl
+         neat-interpolation random semialign Shpadoinkle text these unliftio
+         uuid
+       ];
+       description = "A Virtual Dom in pure Haskell, based on Html as an Alignable Functor";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "Shpadoinkle-backend-snabbdom" = callPackage
+    ({ mkDerivation, base, file-embed, jsaddle, mtl, Shpadoinkle, text
+     }:
+     mkDerivation {
+       pname = "Shpadoinkle-backend-snabbdom";
+       version = "0.1.0.1";
+       sha256 = "1hky3qvskrpkpdhhppx6ghqalv5hsb1iw7mrsvmkigj1y20dskh1";
+       libraryHaskellDepends = [
+         base file-embed jsaddle mtl Shpadoinkle text
+       ];
+       description = "Use the high-performance Snabbdom virtual dom library written in JavaScript";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "Shpadoinkle-backend-static" = callPackage
+    ({ mkDerivation, base, compactable, Shpadoinkle, text }:
+     mkDerivation {
+       pname = "Shpadoinkle-backend-static";
+       version = "0.1.0.1";
+       sha256 = "05ffkpp008b4cpf05xb754q5y7a5wjyygz8dc81hlx4lxfixlzzv";
+       libraryHaskellDepends = [ base compactable Shpadoinkle text ];
+       description = "A backend for rendering Shpadoinkle as Text";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "Shpadoinkle-debug" = callPackage
+    ({ mkDerivation, aeson, base, jsaddle, lens, text, unliftio }:
+     mkDerivation {
+       pname = "Shpadoinkle-debug";
+       version = "0.0.0.1";
+       sha256 = "1yvr3d40aa6sl3gpyr24a5hij63jm2p0jrx0kac7asjihvd6fk2g";
+       libraryHaskellDepends = [ aeson base jsaddle lens text unliftio ];
+       description = "Debugging tools for Shpadoinkle applications";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "Shpadoinkle-examples" = callPackage
+    ({ mkDerivation, aeson, base, beam-core, beam-sqlite, bytestring
+     , containers, exceptions, file-embed, lens, mtl
+     , optparse-applicative, servant, servant-client, servant-server
+     , Shpadoinkle, Shpadoinkle-backend-pardiff
+     , Shpadoinkle-backend-snabbdom, Shpadoinkle-backend-static
+     , Shpadoinkle-html, Shpadoinkle-lens, Shpadoinkle-router
+     , Shpadoinkle-widgets, sqlite-simple, stm, text, unliftio, wai
+     , wai-app-static, warp
+     }:
+     mkDerivation {
+       pname = "Shpadoinkle-examples";
+       version = "0.0.0.1";
+       sha256 = "19iq8yw2m14y8j67slry1x30fnayx1d4sjwg2cafbgz9g7l1g7f1";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson base beam-core beam-sqlite bytestring containers exceptions
+         file-embed lens mtl optparse-applicative servant servant-client
+         servant-server Shpadoinkle Shpadoinkle-backend-pardiff
+         Shpadoinkle-backend-snabbdom Shpadoinkle-backend-static
+         Shpadoinkle-html Shpadoinkle-lens Shpadoinkle-router
+         Shpadoinkle-widgets sqlite-simple stm text unliftio wai
+         wai-app-static warp
+       ];
+       description = "Example usages of Shpadoinkle";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {Shpadoinkle-lens = null;};
+
+  "Shpadoinkle-html" = callPackage
+    ({ mkDerivation, base, containers, ghcjs-dom, jsaddle, jsaddle-dom
+     , Shpadoinkle, stm, template-haskell, text, unliftio
+     }:
+     mkDerivation {
+       pname = "Shpadoinkle-html";
+       version = "0.1.0.0";
+       sha256 = "1v5dxg7axg2a508rcphchihr5krrwagxx1a41660r7js7wba9bk8";
+       libraryHaskellDepends = [
+         base containers ghcjs-dom jsaddle jsaddle-dom Shpadoinkle stm
+         template-haskell text unliftio
+       ];
+       description = "A typed, template generated Html DSL, and helpers";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "Shpadoinkle-router" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, compactable, exceptions
+     , ghcjs-dom, http-api-data, jsaddle, jsaddle-dom, lens, network-uri
+     , servant, servant-client, servant-server, Shpadoinkle
+     , Shpadoinkle-backend-static, text, unliftio, wai, wai-app-static
+     , warp
+     }:
+     mkDerivation {
+       pname = "Shpadoinkle-router";
+       version = "0.1.0.1";
+       sha256 = "08kv5gbs2kkkspnmkzv0q5y3hnvv69yliwc4815wsyh8hdrn3ks6";
+       libraryHaskellDepends = [
+         aeson base bytestring compactable exceptions ghcjs-dom
+         http-api-data jsaddle jsaddle-dom lens network-uri servant
+         servant-client servant-server Shpadoinkle
+         Shpadoinkle-backend-static text unliftio wai wai-app-static warp
+       ];
+       description = "A single page application rounter for Shpadoinkle based on Servant";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "Shpadoinkle-widgets" = callPackage
+    ({ mkDerivation, aeson, base, compactable, containers
+     , edit-distance, email-validate, hspec, jsaddle, mtl, QuickCheck
+     , Shpadoinkle, Shpadoinkle-html, stm, template-haskell, text
+     , unliftio
+     }:
+     mkDerivation {
+       pname = "Shpadoinkle-widgets";
+       version = "0.0.0.2";
+       sha256 = "1n85pjzkn1rjhl9rqswm7cra631qqabqf42wimfq2v17l8ymrlky";
+       libraryHaskellDepends = [
+         aeson base compactable containers edit-distance email-validate
+         jsaddle mtl Shpadoinkle Shpadoinkle-html stm template-haskell text
+         unliftio
+       ];
+       testHaskellDepends = [ base containers hspec QuickCheck ];
+       description = "A collection of common reusable types and components";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "Shrub" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -18506,8 +18847,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
        ];
@@ -19080,7 +19421,7 @@ self: {
        version = "0.1.4";
        sha256 = "0rpjd93lsqg3dqfjndm9l1nzyrbfs5nnvc61lmbmbhg0bcy0jms8";
        libraryHaskellDepends = [ base template-haskell ];
-       description = "TH implementation of effects.";
+       description = "TH implementation of effects";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -19314,8 +19655,8 @@ self: {
      }:
      mkDerivation {
        pname = "TeX-my-math";
-       version = "0.201.2.0";
-       sha256 = "1dg06lqh2x9smq6hbcn2gyh2qll9z7v4gbd1ipvf2isdwxc201vk";
+       version = "0.202.0.0";
+       sha256 = "0aiw7ag87kcwz47hasr0k79b9dvm0waf3j2qf5p7l2lld438chsb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -19950,8 +20291,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
        ];
@@ -20296,15 +20637,13 @@ self: {
     ({ mkDerivation, base, bytestring, transformers, vector, vulkan }:
      mkDerivation {
        pname = "VulkanMemoryAllocator";
-       version = "0.3";
-       sha256 = "1b16vbhml17knx2jk22dqv3hjq98p23g9vmqnd4c0igw76ih46nb";
+       version = "0.3.6";
+       sha256 = "1zclpawaa1cx1p58asn7lla4lakkr869qnkdvrypxxqki3406hsz";
        libraryHaskellDepends = [
          base bytestring transformers vector vulkan
        ];
        description = "Bindings to the VulkanMemoryAllocator library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "WAVE" = callPackage
@@ -20663,12 +21002,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;
@@ -22351,8 +22690,8 @@ self: {
      }:
      mkDerivation {
        pname = "acid-state";
-       version = "0.16.0";
-       sha256 = "18pdxawx28wsvjah2rih6fa8mgxpkrpskfkvb5gjb1yn29dd8cmn";
+       version = "0.16.0.1";
+       sha256 = "0n8qp002w972lf7z9hhn5bbz2rslh8m6am07c88y755nj5xk6y88";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -23209,6 +23548,8 @@ self: {
        pname = "ad";
        version = "4.4";
        sha256 = "1v7m5nk9aa0sfqfqmv15dq87s2nl7i3v1d5xx0xla9ydhlqizy4x";
+       revision = "1";
+       editedCabalFile = "1l9515avbn8hc1yc3x9mqxjrl6idjcf4a9wl4m3607n4anc62hlc";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          array base comonad containers data-reify erf free nats reflection
@@ -23296,6 +23637,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "addy" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, hedgehog
+     , http-types, ip, lens, relude, tasty, tasty-hedgehog, tasty-hunit
+     , text, text-icu, validation-selective
+     }:
+     mkDerivation {
+       pname = "addy";
+       version = "0.1.0.0";
+       sha256 = "10p7q0infa1bawhg7hxw8rqjqdj3w737j5s3g41hy4in2nfp5ji0";
+       libraryHaskellDepends = [
+         attoparsec base bytestring ip lens relude text text-icu
+         validation-selective
+       ];
+       testHaskellDepends = [
+         aeson attoparsec base bytestring hedgehog http-types ip lens relude
+         tasty tasty-hedgehog tasty-hunit text text-icu validation-selective
+       ];
+       description = "A full-featured library for parsing, validating, and rendering email addresses";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "adhoc-network" = callPackage
     ({ mkDerivation, base, bytestring, containers, Crypto, dataenc
      , HaXml, hsgnutls, network, old-locale, parsec, pkcs1, random, time
@@ -23596,6 +23960,72 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "aeson_1_5_2_0" = callPackage
+    ({ mkDerivation, attoparsec, base, base-compat
+     , base-compat-batteries, base-orphans, base16-bytestring
+     , bytestring, containers, deepseq, Diff, directory, dlist, filepath
+     , generic-deriving, ghc-prim, hashable, hashable-time
+     , integer-logarithms, primitive, QuickCheck, quickcheck-instances
+     , scientific, 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.2.0";
+       sha256 = "0awk3dss79mmcxpy147mijnd9icvlnm77bq248ibbbzx9y99hdfd";
+       libraryHaskellDepends = [
+         attoparsec base base-compat-batteries bytestring containers deepseq
+         dlist ghc-prim hashable primitive scientific 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 Diff directory dlist filepath
+         generic-deriving ghc-prim hashable hashable-time integer-logarithms
+         QuickCheck quickcheck-instances scientific 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_1_5_3_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.3.0";
+       sha256 = "0slqxmm4rikndzq2rmgydaqgf9qqnni62bgr0zihf25d65mgk3lm";
+       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 {
@@ -23713,8 +24143,8 @@ self: {
        pname = "aeson-compat";
        version = "0.3.9";
        sha256 = "1j13gykv4ryvmr14w5blz0nnpdb4p0hpa27wahw3mhb1lwdr8hz0";
-       revision = "3";
-       editedCabalFile = "1fnahwplqcnv9m4kcf8i588ankafd2125ch71027plciqxxwid70";
+       revision = "4";
+       editedCabalFile = "0l2ggm3lfnww4sq9frr0cga4ad9vlfhjsh323f9lvx3jk0g9pn7y";
        libraryHaskellDepends = [
          aeson attoparsec attoparsec-iso8601 base base-compat bytestring
          containers exceptions hashable scientific tagged text time
@@ -23762,6 +24192,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "aeson-deriving" = callPackage
+    ({ mkDerivation, aeson, base, hedgehog, regex-tdfa, text
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "aeson-deriving";
+       version = "0.1.1.1";
+       sha256 = "1yqiw8imp30gv3jij4f724yi8mmf6w8fn84kmq9r7yjn7scfz4dj";
+       libraryHaskellDepends = [
+         aeson base regex-tdfa text unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base hedgehog regex-tdfa text unordered-containers
+       ];
+       description = "data types for compositional, type-directed serialization";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "aeson-diff" = callPackage
     ({ mkDerivation, aeson, base, bytestring, directory, doctest
      , edit-distance-vector, filepath, Glob, hashable, mtl
@@ -23770,8 +24218,8 @@ self: {
      }:
      mkDerivation {
        pname = "aeson-diff";
-       version = "1.1.0.8";
-       sha256 = "1pim103mywlhxssrhr0ca0gsvql52g799fk73bdj5h31ziibdsi4";
+       version = "1.1.0.9";
+       sha256 = "18bm4qyjjwgrr6dxc4y0vai0z6qgrh2lcqb4jrr4xqs4cxrlwr92";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -23822,6 +24270,8 @@ self: {
        pname = "aeson-extra";
        version = "0.4.1.3";
        sha256 = "1k15vkyf635nh904diyg931ziwdngikvp7c9c339pys3savf5qr2";
+       revision = "4";
+       editedCabalFile = "0gwjgxpgq7lncylfpccikmn3jk2jmz54vsgjialhwa26iv9f9n4a";
        libraryHaskellDepends = [
          aeson aeson-compat attoparsec attoparsec-iso8601 base
          base-compat-batteries bytestring containers deepseq exceptions
@@ -23930,8 +24380,6 @@ self: {
        ];
        description = "Derivation of Aeson instances for GADTs";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "aeson-generic-compat" = callPackage
@@ -23945,6 +24393,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
@@ -23953,8 +24414,8 @@ self: {
      }:
      mkDerivation {
        pname = "aeson-injector";
-       version = "1.1.2.0";
-       sha256 = "05506d6nkw7q924l2ww5mg1ahzs9122vj02mgscdh7g72n3krdd4";
+       version = "1.1.3.0";
+       sha256 = "0188g4z204dw8gyza5hn3xljwmvfk9jq1wq4gnh43894nbrcm4ji";
        libraryHaskellDepends = [
          aeson base bifunctors deepseq hashable lens servant-docs swagger2
          text unordered-containers
@@ -24065,8 +24526,8 @@ self: {
        pname = "aeson-optics";
        version = "1.1.0.1";
        sha256 = "1pfi84cl7w5bp7dwdhcyi8kchvbfjybqcp0sifqrn70dj2b50mf7";
-       revision = "1";
-       editedCabalFile = "08nyfzxcw2j9wkm0cnbw2dl8f3zj2zrv85wrjayqq9v06hqk0dkl";
+       revision = "3";
+       editedCabalFile = "1hxkahjf6znybqiv622n3syn5pp1a6jdpzq8ryrq9y45yczg82pi";
        libraryHaskellDepends = [
          aeson attoparsec base base-compat bytestring optics-core
          optics-extra scientific text unordered-containers vector
@@ -24216,6 +24677,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
@@ -24249,38 +24721,14 @@ self: {
 
   "aeson-schemas" = callPackage
     ({ mkDerivation, aeson, base, bytestring, first-class-families
-     , megaparsec, raw-strings-qq, tasty, tasty-golden, template-haskell
-     , text, th-test-utils, unordered-containers
-     }:
-     mkDerivation {
-       pname = "aeson-schemas";
-       version = "1.0.3";
-       sha256 = "0fmhqibw6mw9shxh94riqq465njbgjsv539xb6sx7qpkhcck2csi";
-       revision = "3";
-       editedCabalFile = "01vp89mjl7jl80mdl9hqmiz3vs7fjl5mf1p64d3g352xqak3mr7d";
-       libraryHaskellDepends = [
-         aeson base bytestring first-class-families megaparsec
-         template-haskell text unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base bytestring first-class-families megaparsec
-         raw-strings-qq tasty tasty-golden template-haskell text
-         th-test-utils unordered-containers
-       ];
-       description = "Easily consume JSON data on-demand with type-safety";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "aeson-schemas_1_1_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, first-class-families
      , megaparsec, QuickCheck, raw-strings-qq, tasty, tasty-golden
      , tasty-hunit, tasty-quickcheck, template-haskell, text
      , th-test-utils, unordered-containers
      }:
      mkDerivation {
        pname = "aeson-schemas";
-       version = "1.1.0";
-       sha256 = "1w01mdixja6f8176ra0lrkhbrr68hcsiib7sq8sdfh1rsx3hsn62";
+       version = "1.2.0";
+       sha256 = "1fc8zzpkq6alkbl0v473h8diin8lqpliq6d3bsrh5bfny8yapvpk";
        libraryHaskellDepends = [
          aeson base bytestring first-class-families megaparsec
          template-haskell text unordered-containers
@@ -24292,7 +24740,6 @@ self: {
        ];
        description = "Easily consume JSON data on-demand with type-safety";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "aeson-serialize" = callPackage
@@ -24454,6 +24901,36 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "aeson-via" = callPackage
+    ({ mkDerivation, aeson, aeson-casing, base, newtype-generics, text
+     }:
+     mkDerivation {
+       pname = "aeson-via";
+       version = "0.1.0";
+       sha256 = "0zlx4pxfh3qll8ymfya0rfqx3gd7ag0wag86fa8fvni6h07ynryf";
+       libraryHaskellDepends = [
+         aeson aeson-casing base newtype-generics text
+       ];
+       description = "Wrappers to derive-via Aeson ToJSON/FromJSON typeclasses";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "aeson-with" = callPackage
+    ({ mkDerivation, aeson, base, lens, lens-aeson, scientific, text
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "aeson-with";
+       version = "0.1.2.0";
+       sha256 = "0zj8jjsq26i6k8m3zfszpjxnnkar3gmvdw1adl9rxlgha2v5kfz8";
+       libraryHaskellDepends = [
+         aeson base lens lens-aeson scientific text unordered-containers
+         vector
+       ];
+       description = "withXField combinators for aeson";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "aeson-yak" = callPackage
     ({ mkDerivation, aeson, base }:
      mkDerivation {
@@ -24474,6 +24951,31 @@ self: {
        pname = "aeson-yaml";
        version = "1.0.6.0";
        sha256 = "16rm4jgl4wznsc4nna3vdx186qy3jl71r9y89dgcc7k00qvlxb7y";
+       revision = "1";
+       editedCabalFile = "1k1wv06fzic9c85c5fl2piang0w1kxi9kzq02hp4chgmbj983jmz";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring text unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring string-qq tasty tasty-discover tasty-hunit
+         unordered-containers yaml
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Output any Aeson value as YAML (pure Haskell library)";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "aeson-yaml_1_1_0_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, string-qq, tasty
+     , tasty-discover, tasty-hunit, text, unordered-containers, vector
+     , yaml
+     }:
+     mkDerivation {
+       pname = "aeson-yaml";
+       version = "1.1.0.0";
+       sha256 = "1kyrh2w3qpzwm7kpb4rkrzi22kqqz1vcjw1f59wdkl8a5hffkv6y";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -24486,6 +24988,7 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Output any Aeson value as YAML (pure Haskell library)";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "affection" = callPackage
@@ -25108,8 +25611,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
        ];
@@ -25190,8 +25693,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
        ];
@@ -25249,6 +25752,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 {
@@ -25348,6 +25873,21 @@ self: {
        broken = true;
      }) {};
 
+  "algebra-driven-design" = callPackage
+    ({ mkDerivation, base, containers, file-embed, JuicyPixels, mtl
+     , QuickCheck, quickspec
+     }:
+     mkDerivation {
+       pname = "algebra-driven-design";
+       version = "0.1.0.1";
+       sha256 = "0jydvrmrz6kvrbk8hv0mb01g67j0bdxi519s7blwf3gfkxfjvyyv";
+       libraryHaskellDepends = [
+         base containers file-embed JuicyPixels mtl 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
@@ -25395,6 +25935,8 @@ self: {
        pname = "algebraic-classes";
        version = "0.9.4";
        sha256 = "06q0vzixc5dz98ia5ii862ryd9nlfinnmly2l5br8rixsbnks82s";
+       revision = "1";
+       editedCabalFile = "0w3845hl7cppdk3zvhmz0zic7sbcklfircx97wf9dhh40q3qdcmi";
        libraryHaskellDepends = [ base syb template-haskell ];
        description = "Conversions between algebraic classes and F-algebras";
        license = stdenv.lib.licenses.bsd3;
@@ -26835,8 +27377,6 @@ self: {
        ];
        description = "Amazon DynamoDB SDK";
        license = stdenv.lib.licenses.mpl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "amazonka-dynamodb-dax" = callPackage
@@ -28531,8 +29071,8 @@ self: {
      }:
      mkDerivation {
        pname = "amqp";
-       version = "0.19.1";
-       sha256 = "1802gngl74niszw355caf6x41ayfvyg2hpbckgshp7rlhfqdjabj";
+       version = "0.20.0";
+       sha256 = "1vi8kccvvnym8v4cnsghkiicbjzvkbc7binr12priqmvwvis34rv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -28572,6 +29112,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
@@ -28592,6 +29150,27 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "amqp-utils_0_4_4_1" = callPackage
+    ({ mkDerivation, amqp, base, bytestring, connection, containers
+     , data-default-class, directory, hinotify, magic, network, process
+     , text, time, tls, unix, utf8-string, x509-system
+     }:
+     mkDerivation {
+       pname = "amqp-utils";
+       version = "0.4.4.1";
+       sha256 = "1vs0p7pc6z9mfjd2vns66wnhl8v1n9rbgabyjw0v832m2pwizzmj";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         amqp base bytestring connection containers data-default-class
+         directory hinotify magic network process text time tls unix
+         utf8-string x509-system
+       ];
+       description = "AMQP toolset for the command line";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "amqp-worker" = callPackage
     ({ mkDerivation, aeson, amqp, base, bytestring, data-default
      , exceptions, monad-control, monad-loops, mtl, resource-pool
@@ -29153,6 +29732,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
@@ -29185,8 +29778,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 ];
@@ -29365,32 +29958,6 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-core";
-       version = "7.4.5";
-       sha256 = "1hrjq5vr5r12hfin3qb5q5mh1psldi2x9k4hg0yrx112kffvp45c";
-       libraryHaskellDepends = [
-         aeson amazonka amazonka-core base bytestring exceptions
-         generic-lens http-client http-types lens mtl resourcet text
-         transformers unliftio-core
-       ];
-       testHaskellDepends = [
-         aeson aeson-lens amazonka amazonka-core base bytestring exceptions
-         generic-lens hedgehog hspec http-client http-types
-         hw-hspec-hedgehog lens mtl resourcet scientific text transformers
-         unliftio-core
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "antiope-core_7_5_1" = callPackage
-    ({ mkDerivation, aeson, aeson-lens, amazonka, amazonka-core, base
-     , bytestring, exceptions, generic-lens, hedgehog, hspec
-     , hspec-discover, http-client, http-types, hw-hspec-hedgehog, lens
-     , mtl, resourcet, scientific, text, transformers, unliftio-core
-     }:
-     mkDerivation {
-       pname = "antiope-core";
        version = "7.5.1";
        sha256 = "068dsdag8bng2ddzr0vxipmzrfa5x3jq80pmrmc0l86bjvnlsdjr";
        libraryHaskellDepends = [
@@ -29407,7 +29974,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "antiope-dynamodb" = callPackage
@@ -29417,30 +29983,6 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-dynamodb";
-       version = "7.4.5";
-       sha256 = "0zv5r76vg31ybfjl56kli25knrv52z7cv25wzgk8sm6vywn1axif";
-       libraryHaskellDepends = [
-         aeson amazonka amazonka-core amazonka-dynamodb antiope-core base
-         generic-lens lens text unliftio-core unordered-containers
-       ];
-       testHaskellDepends = [
-         amazonka amazonka-core amazonka-dynamodb antiope-core base
-         generic-lens lens text unliftio-core unordered-containers
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
-       license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "antiope-dynamodb_7_5_1" = callPackage
-    ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-dynamodb
-     , antiope-core, base, generic-lens, hspec-discover, lens, text
-     , unliftio-core, unordered-containers
-     }:
-     mkDerivation {
-       pname = "antiope-dynamodb";
        version = "7.5.1";
        sha256 = "19d7rbz4qqq3pd9nncydgvda798a5ziw21zkpa5d0smfna71zckp";
        libraryHaskellDepends = [
@@ -29485,30 +30027,6 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-messages";
-       version = "7.4.5";
-       sha256 = "07dim004vfaq3646z616pvhsxqqp1w8nl3dxm15hw79cw43ib6q6";
-       libraryHaskellDepends = [
-         aeson amazonka amazonka-core base bytestring generic-lens lens
-         lens-aeson monad-loops network-uri text unliftio-core
-       ];
-       testHaskellDepends = [
-         aeson amazonka amazonka-core base bytestring generic-lens hedgehog
-         hspec hw-hspec-hedgehog lens lens-aeson monad-loops network-uri
-         scientific text unliftio-core
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "antiope-messages_7_5_1" = callPackage
-    ({ mkDerivation, aeson, amazonka, amazonka-core, base, bytestring
-     , generic-lens, hedgehog, hspec, hspec-discover, hw-hspec-hedgehog
-     , lens, lens-aeson, monad-loops, network-uri, scientific, text
-     , unliftio-core
-     }:
-     mkDerivation {
-       pname = "antiope-messages";
        version = "7.5.1";
        sha256 = "01hkq4n5jpfnb9i8ysaj73zknvkhpxb3mnq7csv2dc29ral4vzdp";
        libraryHaskellDepends = [
@@ -29523,7 +30041,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "antiope-optparse-applicative" = callPackage
@@ -29556,34 +30073,6 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-s3";
-       version = "7.4.5";
-       sha256 = "16ras7xk3diaqnqr0dcbwlg4bl51x7kjqwq64l33zxa42bf9wica";
-       libraryHaskellDepends = [
-         aeson amazonka amazonka-core amazonka-s3 antiope-core
-         antiope-messages attoparsec base bytestring conduit conduit-extra
-         deepseq dlist exceptions generic-lens http-types lens mtl
-         network-uri resourcet text time unliftio-core
-       ];
-       testHaskellDepends = [
-         aeson amazonka amazonka-core amazonka-s3 antiope-core attoparsec
-         base bytestring conduit conduit-extra exceptions generic-lens
-         hedgehog hspec http-types hw-hspec-hedgehog lens mtl network-uri
-         resourcet text time unliftio-core
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "antiope-s3_7_5_1" = callPackage
-    ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-s3
-     , antiope-core, antiope-messages, attoparsec, base, bytestring
-     , conduit, conduit-extra, deepseq, dlist, exceptions, generic-lens
-     , hedgehog, hspec, hspec-discover, http-types, hw-hspec-hedgehog
-     , lens, mtl, network-uri, resourcet, text, time, unliftio-core
-     }:
-     mkDerivation {
-       pname = "antiope-s3";
        version = "7.5.1";
        sha256 = "0nqs90pqk8dfjbrc55f4gdw4ybw2fslbx9z2x8k45mqpri3xwc0y";
        libraryHaskellDepends = [
@@ -29601,7 +30090,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "antiope-shell" = callPackage
@@ -29640,29 +30128,6 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-sns";
-       version = "7.4.5";
-       sha256 = "0f3g8hr8i0p5hkr8zvwvmcng5i4ryjw34wj319mrggxayy9kcf69";
-       libraryHaskellDepends = [
-         aeson amazonka amazonka-core amazonka-sns base bytestring
-         generic-lens lens text time unliftio-core
-       ];
-       testHaskellDepends = [
-         aeson amazonka amazonka-core amazonka-sns base bytestring
-         generic-lens hedgehog hspec hw-hspec-hedgehog lens text time
-         unliftio-core
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "antiope-sns_7_5_1" = callPackage
-    ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-sns, base
-     , bytestring, generic-lens, hedgehog, hspec, hspec-discover
-     , hw-hspec-hedgehog, lens, text, time, unliftio-core
-     }:
-     mkDerivation {
-       pname = "antiope-sns";
        version = "7.5.1";
        sha256 = "13wzfjqihsi0xw7j869knj82a6k1fi74fywhlqc3bh1xc6wcir7q";
        libraryHaskellDepends = [
@@ -29677,7 +30142,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "antiope-sqs" = callPackage
@@ -29689,32 +30153,6 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-sqs";
-       version = "7.4.5";
-       sha256 = "1q2sq4is1dzqfwq85r9xybw30mgydb6a3ir3xm4mcffv8vs4h3fw";
-       libraryHaskellDepends = [
-         aeson amazonka amazonka-core amazonka-sqs base bytestring conduit
-         generic-lens lens lens-aeson monad-loops mtl network-uri split text
-         unliftio-core unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson amazonka amazonka-core amazonka-sqs base bytestring conduit
-         generic-lens hedgehog hspec hw-hspec-hedgehog lens lens-aeson
-         monad-loops mtl network-uri text time unliftio-core
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "antiope-sqs_7_5_1" = callPackage
-    ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-sqs, base
-     , bytestring, conduit, generic-lens, hedgehog, hspec
-     , hspec-discover, hw-hspec-hedgehog, lens, lens-aeson, monad-loops
-     , mtl, network-uri, split, text, time, unliftio-core
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "antiope-sqs";
        version = "7.5.1";
        sha256 = "1y3fxqx5595agcnr157q3jap0dmcss8lyij187j9f29y0wkbkzv6";
        libraryHaskellDepends = [
@@ -29730,7 +30168,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "antiope-swf" = callPackage
@@ -29858,8 +30295,8 @@ self: {
     ({ mkDerivation, base, ghc-prim, integer-gmp }:
      mkDerivation {
        pname = "aop-prelude";
-       version = "0.3.0.2";
-       sha256 = "0ix3jr27yasr6zkfdrwpy9nfdgz7x5rn004rq0vsarg6dssiq46k";
+       version = "0.4.0.0";
+       sha256 = "0jg572zz9lbhpp4bxldrc0gs0ac0f4hfcrxds77gr51xizxfa7cn";
        libraryHaskellDepends = [ base ghc-prim integer-gmp ];
        testHaskellDepends = [ base ghc-prim ];
        description = "prelude for Algebra of Programming";
@@ -29910,6 +30347,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 {
@@ -29973,15 +30422,15 @@ self: {
      }) {};
 
   "apecs" = callPackage
-    ({ mkDerivation, array, base, containers, criterion, linear, mtl
-     , QuickCheck, template-haskell, vector
+    ({ mkDerivation, array, base, containers, criterion, exceptions
+     , linear, mtl, QuickCheck, template-haskell, vector
      }:
      mkDerivation {
        pname = "apecs";
-       version = "0.9.1";
-       sha256 = "1hf4ksv5s5z7842wz2zdmfix3s4xd34j6lcx94qja2h2vvh4c46a";
+       version = "0.9.2";
+       sha256 = "1ca9wpp60jslj63q77v55qql46f20jknfqsz7cjmqns41ml5g3q8";
        libraryHaskellDepends = [
-         array base containers mtl template-haskell vector
+         array base containers exceptions mtl template-haskell vector
        ];
        testHaskellDepends = [ base containers linear QuickCheck vector ];
        benchmarkHaskellDepends = [ base criterion linear ];
@@ -30883,6 +31332,8 @@ self: {
        pname = "apply-refact";
        version = "0.7.0.0";
        sha256 = "1facic5lbc9xih6w1kfr3inwvada6y98n9xgc6iv6r057zr8jfp0";
+       revision = "1";
+       editedCabalFile = "0ilyhm6nz1mkjdq13pgzgplmmfqrv6b5ailyhvbds362pqjqw72q";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -30905,7 +31356,7 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "apply-refact" = callPackage
+  "apply-refact_0_8_0_0" = callPackage
     ({ mkDerivation, base, containers, directory, filemanip, filepath
      , ghc, ghc-exactprint, mtl, optparse-applicative, process, refact
      , silently, syb, tasty, tasty-expected-failure, tasty-golden
@@ -30934,6 +31385,37 @@ self: {
        ];
        description = "Perform refactorings specified by the refact library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "apply-refact" = callPackage
+    ({ mkDerivation, base, containers, directory, extra, filemanip
+     , 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.2.1";
+       sha256 = "12dnwsv37bhla7cnqa3h24mnvdk5199lwd5mf845n1r6xqrh2vvp";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         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 optparse-applicative process refact syb transformers
+         unix-compat
+       ];
+       testHaskellDepends = [
+         base containers directory extra filemanip filepath ghc ghc-boot-th
+         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";
+       license = stdenv.lib.licenses.bsd3;
      }) {};
 
   "apportionment" = callPackage
@@ -31159,6 +31641,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Counter library for submitting metrics to a backend such as datadog";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "arbor-monad-logger" = callPackage
@@ -31250,6 +31734,8 @@ self: {
        ];
        description = "Convenience types and functions for postgresql-simple";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "arbtt" = callPackage
@@ -31343,6 +31829,8 @@ self: {
        pname = "archive-libarchive";
        version = "1.0.0.0";
        sha256 = "0pqq76gnk6y71c5wwjhq99y2695v6bfyzjb8gakp6h3jivcpd2gb";
+       revision = "1";
+       editedCabalFile = "12wq8nisyr2i1861v2377llha63nqpiys9vk6dvg9rfz7f6qqdch";
        libraryHaskellDepends = [
          base bytestring composition-prelude libarchive
        ];
@@ -31485,16 +31973,17 @@ self: {
   "arduino-copilot" = callPackage
     ({ mkDerivation, base, containers, copilot, copilot-c99
      , copilot-language, directory, filepath, mtl, optparse-applicative
-     , unix
+     , process, temporary
      }:
      mkDerivation {
        pname = "arduino-copilot";
-       version = "1.5.1";
-       sha256 = "0j7j2npipgd6jrlm9gn76ia3xbpnbiicn125ii673qzfgfzmgwrh";
+       version = "1.5.2";
+       sha256 = "04qy06aws4qwg5slakj12jkwvfcrg960spj0g1c42lfb582ybrm6";
        libraryHaskellDepends = [
          base containers copilot copilot-c99 copilot-language directory
-         filepath mtl optparse-applicative unix
+         filepath mtl optparse-applicative temporary
        ];
+       testHaskellDepends = [ base directory process temporary ];
        description = "Arduino programming in haskell using the Copilot stream DSL";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -31851,7 +32340,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "arithmoi_0_11_0_0" = callPackage
+  "arithmoi_0_11_0_1" = callPackage
     ({ mkDerivation, array, base, chimera, constraints, containers
      , deepseq, exact-pi, gauge, integer-gmp, integer-logarithms
      , integer-roots, mod, QuickCheck, quickcheck-classes, random
@@ -31860,8 +32349,8 @@ self: {
      }:
      mkDerivation {
        pname = "arithmoi";
-       version = "0.11.0.0";
-       sha256 = "14zhrlml6029n21h0ihspydg2zr7f93k4lji0nyi23c5y67pi9sk";
+       version = "0.11.0.1";
+       sha256 = "1dz6gpwnyw02lff8xh5vmf1vsknnvnd3vh3iix0r6f1hkf03xi8y";
        configureFlags = [ "-f-llvm" ];
        libraryHaskellDepends = [
          array base chimera constraints containers deepseq exact-pi
@@ -32044,6 +32533,22 @@ self: {
        broken = true;
      }) {};
 
+  "array-list" = callPackage
+    ({ mkDerivation, array, base, doctest, doctest-driver-gen, hspec }:
+     mkDerivation {
+       pname = "array-list";
+       version = "0.2.0.0";
+       sha256 = "17xdkn1p7zfg7rw9sfbv6amfab291gz8fafkl26x38al9khjcgy2";
+       libraryHaskellDepends = [ array base ];
+       testHaskellDepends = [
+         array base doctest doctest-driver-gen hspec
+       ];
+       description = "IsList instances of Array for OverloadedLists extension";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "array-memoize" = callPackage
     ({ mkDerivation, array, base }:
      mkDerivation {
@@ -32333,8 +32838,8 @@ self: {
      }:
      mkDerivation {
        pname = "ascii";
-       version = "1.0.0.0";
-       sha256 = "0sgn93l08fgaxqgfpxmymqfqh5697cx6765yifpzdr7ayxfpf8b2";
+       version = "1.0.0.2";
+       sha256 = "13v1zpll4x72ib5pwrs01kkhw5yc5xq8aazwm9zfni9452sw3r3w";
        libraryHaskellDepends = [
          ascii-case ascii-char ascii-group ascii-predicates ascii-superset
          ascii-th base bytestring data-ascii text
@@ -32364,8 +32869,8 @@ self: {
     ({ mkDerivation, ascii-char, base, hashable }:
      mkDerivation {
        pname = "ascii-case";
-       version = "1.0.0.0";
-       sha256 = "10j65n9pdm5gxq0bsp06s1k7n4357kyw4xjy0mzncp9d81mbz9w4";
+       version = "1.0.0.2";
+       sha256 = "1qs1rccslixsg4szgp7y98sqhhn0asp9qmk9vfrwdjfipmf3z72p";
        libraryHaskellDepends = [ ascii-char base hashable ];
        description = "ASCII letter case";
        license = stdenv.lib.licenses.asl20;
@@ -32375,8 +32880,8 @@ self: {
     ({ mkDerivation, base, hashable }:
      mkDerivation {
        pname = "ascii-char";
-       version = "1.0.0.0";
-       sha256 = "1y50m20np2id71lvfl3z9ysh5qblcajgqcl5gi1ggg7wvg2r4r97";
+       version = "1.0.0.2";
+       sha256 = "0pglcppji9irbz0fjc6hb1fv7qjbjcii6k4qdv389l7kbb77w318";
        libraryHaskellDepends = [ base hashable ];
        description = "A Char type representing an ASCII character";
        license = stdenv.lib.licenses.asl20;
@@ -32391,6 +32896,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
@@ -32413,8 +32920,8 @@ self: {
     ({ mkDerivation, ascii-char, base, hashable }:
      mkDerivation {
        pname = "ascii-group";
-       version = "1.0.0.0";
-       sha256 = "0a6sx8hxjwzhbd7cz74k3zqw4vr8ykim1ds95zp7rl646mhlv4bk";
+       version = "1.0.0.2";
+       sha256 = "19l50ksqa7jdsl0pmrmy8q8jbgmb1j3hr63jjzys220f0agsgcwr";
        libraryHaskellDepends = [ ascii-char base hashable ];
        description = "ASCII character groups";
        license = stdenv.lib.licenses.asl20;
@@ -32439,8 +32946,8 @@ self: {
     ({ mkDerivation, ascii-char, base }:
      mkDerivation {
        pname = "ascii-predicates";
-       version = "1.0.0.0";
-       sha256 = "1d44m97nqvfzxgxk2l7ch1693kccbx91fbg2hspfmkk3kyq16vk0";
+       version = "1.0.0.2";
+       sha256 = "0dzrxqhq7vqplg4aanc4kindwpizv3d777ri81sj1m1zn3vzvrrq";
        libraryHaskellDepends = [ ascii-char base ];
        description = "Various categorizations of ASCII characters";
        license = stdenv.lib.licenses.asl20;
@@ -32494,8 +33001,8 @@ self: {
     ({ mkDerivation, ascii-char, base, bytestring, hashable, text }:
      mkDerivation {
        pname = "ascii-superset";
-       version = "1.0.0.0";
-       sha256 = "0cpva5r2bxrbkqg1mifp3gcz01hnzlylyc9gqxcms4xxvi3sj22q";
+       version = "1.0.0.2";
+       sha256 = "1wanvb18h1jlf33f6zr7l1swvagdhw5w3554fsvjq1dm37nygd5m";
        libraryHaskellDepends = [
          ascii-char base bytestring hashable text
        ];
@@ -32526,8 +33033,8 @@ self: {
      }:
      mkDerivation {
        pname = "ascii-th";
-       version = "1.0.0.0";
-       sha256 = "1wh9zssgjrxd7z8wg5p0h3advbmc0v9p8lwjhra2c6860xzli9an";
+       version = "1.0.0.2";
+       sha256 = "1dmr2g4kx14qad62awk4pv3izx5gm8bmzvs03gn3xrbzssjb8pvc";
        libraryHaskellDepends = [
          ascii-char ascii-superset base template-haskell
        ];
@@ -32855,8 +33362,8 @@ self: {
     ({ mkDerivation, base, pretty-show, text }:
      mkDerivation {
        pname = "assert-failure";
-       version = "0.1.2.2";
-       sha256 = "17aapnal893awjwfjw8lfk1n688sfkpckpvfb0rnjkvvabyid57n";
+       version = "0.1.2.4";
+       sha256 = "0q4kaaxvz89qrw7j9kgh57nzyn6a8rh2w1hjb1h7ymdnznhr3cj4";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base pretty-show text ];
        description = "Syntactic sugar improving 'assert' and 'error'";
@@ -32929,10 +33436,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;
@@ -33552,24 +34057,24 @@ self: {
 
   "atom-conduit" = callPackage
     ({ mkDerivation, base-noprelude, blaze-builder, conduit
-     , data-default, filepath, generic-random, lens-simple, parsers
-     , pretty-simple, prettyprinter, QuickCheck, quickcheck-instances
-     , refined, relude, resourcet, safe-exceptions, tasty, tasty-golden
-     , tasty-hunit, tasty-quickcheck, text, time, timerep
-     , uri-bytestring, xml-conduit, xml-types
+     , data-default, filepath, generic-random, microlens, microlens-th
+     , parsers, pretty-simple, prettyprinter, QuickCheck
+     , quickcheck-instances, refined, relude, resourcet, safe-exceptions
+     , tasty, tasty-golden, tasty-hunit, tasty-quickcheck, text, time
+     , timerep, uri-bytestring, xml-conduit, xml-types
      }:
      mkDerivation {
        pname = "atom-conduit";
-       version = "0.7.0.0";
-       sha256 = "1xl2p06s26zm65sn9a13bzcq30d5vggnq32s8f51ss86b4h431q2";
+       version = "0.9.0.0";
+       sha256 = "0kjdw3x5jsa5hjb36zq93xyp3ac1s4j5vpb52969hckcghmyrabm";
        libraryHaskellDepends = [
-         base-noprelude blaze-builder conduit lens-simple parsers
+         base-noprelude blaze-builder conduit microlens microlens-th parsers
          prettyprinter refined relude safe-exceptions text time timerep
          uri-bytestring xml-conduit xml-types
        ];
        testHaskellDepends = [
          base-noprelude conduit data-default filepath generic-random
-         lens-simple pretty-simple QuickCheck quickcheck-instances refined
+         microlens pretty-simple QuickCheck quickcheck-instances refined
          relude resourcet tasty tasty-golden tasty-hunit tasty-quickcheck
          text time uri-bytestring xml-conduit xml-types
        ];
@@ -33761,27 +34266,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 = [
@@ -34336,33 +34841,13 @@ self: {
      }) {};
 
   "aur" = callPackage
-    ({ mkDerivation, aeson, base, http-client, http-client-tls, servant
-     , servant-client, tasty, tasty-hunit, text
-     }:
-     mkDerivation {
-       pname = "aur";
-       version = "6.2.0.1";
-       sha256 = "00h5v3b4is5jc11x85cjzq25lsqrlhidibsyn847bl0cpn9292d2";
-       libraryHaskellDepends = [
-         aeson base http-client servant servant-client text
-       ];
-       testHaskellDepends = [
-         base http-client http-client-tls tasty tasty-hunit
-       ];
-       description = "Access metadata from the Arch Linux User Repository";
-       license = stdenv.lib.licenses.gpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "aur_7_0_0" = callPackage
     ({ mkDerivation, aeson, base, bytestring, http-client
      , http-client-tls, http-types, tasty, tasty-hunit, text
      }:
      mkDerivation {
        pname = "aur";
-       version = "7.0.0";
-       sha256 = "1x355bd8xdg0xm4y89ciqz861chj0b6dkwq8ma7nc46acl25a18z";
+       version = "7.0.3";
+       sha256 = "0q54p9lb65k8n41gya09k8232y1piyfmks71c2z38kybh783mgg2";
        libraryHaskellDepends = [
          aeson base bytestring http-client http-types text
        ];
@@ -34396,31 +34881,34 @@ self: {
   "aura" = callPackage
     ({ mkDerivation, aeson, algebraic-graphs, aur, base, bytestring
      , containers, filepath, hashable, http-client, http-client-tls
-     , http-types, language-bash, megaparsec, microlens, network-uri
+     , http-types, language-bash, megaparsec, network-uri
      , optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
      , rio, scheduler, stm, tasty, tasty-hunit, text, time, transformers
-     , typed-process, unliftio, versions
+     , typed-process, versions
      }:
      mkDerivation {
        pname = "aura";
-       version = "2.3.0";
-       sha256 = "0m0f06qbg3dn4l5di5fmidjyk9qi14ppbbgbh126naccybjj3231";
+       version = "3.1.7";
+       sha256 = "0w7m65bh38gdq186b16pcnq7k2nakiy749m7z092cv4k5w72gal5";
+       revision = "1";
+       editedCabalFile = "1g8hm1bd4yssmy1qkarnwd8w2wz8c2m02gk1agh3pyv60f9q66s7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson algebraic-graphs aur base bytestring containers filepath
-         hashable http-client http-types language-bash megaparsec microlens
+         hashable http-client http-types language-bash megaparsec
          network-uri prettyprinter prettyprinter-ansi-terminal rio scheduler
-         stm text time transformers typed-process unliftio versions
+         stm text time transformers typed-process versions
        ];
        executableHaskellDepends = [
-         base bytestring containers http-client http-client-tls microlens
-         optparse-applicative prettyprinter prettyprinter-ansi-terminal rio
-         text transformers typed-process versions
+         aeson aur base bytestring containers http-client http-client-tls
+         megaparsec optparse-applicative prettyprinter
+         prettyprinter-ansi-terminal rio scheduler text transformers
+         typed-process versions
        ];
        testHaskellDepends = [
-         base bytestring containers megaparsec microlens rio tasty
-         tasty-hunit text versions
+         base bytestring containers megaparsec rio tasty tasty-hunit text
+         versions
        ];
        description = "A secure package manager for Arch Linux and the AUR";
        license = stdenv.lib.licenses.gpl3;
@@ -34480,8 +34968,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
@@ -34577,12 +35065,12 @@ self: {
     ({ mkDerivation, base, Cabal, directory, filepath }:
      mkDerivation {
        pname = "autoexporter";
-       version = "1.1.16";
-       sha256 = "1cr3fdj57p959dgsilnsl5m8ifih6jzxmkpkvgx6hiqxkxkxlzvg";
+       version = "1.1.18";
+       sha256 = "0pzszi5q7h1qxqh2fpds8d43miq0cf4mfzcwggi8409s72pyf9xl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base Cabal directory filepath ];
-       executableHaskellDepends = [ base Cabal directory filepath ];
+       executableHaskellDepends = [ base ];
        description = "Automatically re-export modules";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -34793,8 +35281,8 @@ self: {
        pname = "avers";
        version = "0.0.17.1";
        sha256 = "1x96fvx0z7z75c39qcggw70qvqnw7kzjf0qqxb3jwg3b0fmdhi8v";
-       revision = "34";
-       editedCabalFile = "0mj6881npk0xdkf4nkcy52sn6y4414wdpysbw03kkb5vx6cgjws9";
+       revision = "37";
+       editedCabalFile = "09z2wlr6g1lm4cdbbf0zjbl1j19xs31y126lcbzcs254f8mx5m13";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring clock containers cryptonite
          filepath inflections memory MonadRandom mtl network network-uri
@@ -34939,42 +35427,6 @@ self: {
     ({ mkDerivation, aeson, array, base, base16-bytestring, bifunctors
      , binary, bytestring, containers, data-binary-ieee754, deepseq
      , directory, doctest, doctest-discover, extra, fail, gauge
-     , HasBigDecimal, hashable, hspec, hspec-discover, lens, lens-aeson
-     , mtl, QuickCheck, random, raw-strings-qq, scientific, semigroups
-     , tagged, template-haskell, text, tf-random, time, transformers
-     , unordered-containers, uuid, vector, zlib
-     }:
-     mkDerivation {
-       pname = "avro";
-       version = "0.4.7.0";
-       sha256 = "14s2d2slnk5d1mjava003a61gn5cczx5m7wg4h48nzh8w70y1a9q";
-       libraryHaskellDepends = [
-         aeson array base base16-bytestring bifunctors binary bytestring
-         containers data-binary-ieee754 deepseq fail HasBigDecimal hashable
-         mtl scientific semigroups tagged template-haskell text tf-random
-         time unordered-containers uuid vector zlib
-       ];
-       testHaskellDepends = [
-         aeson array base base16-bytestring bifunctors binary bytestring
-         containers directory doctest doctest-discover extra fail
-         HasBigDecimal hashable hspec lens lens-aeson mtl QuickCheck
-         raw-strings-qq scientific semigroups tagged template-haskell text
-         tf-random time transformers unordered-containers uuid vector zlib
-       ];
-       testToolDepends = [ doctest-discover hspec-discover ];
-       benchmarkHaskellDepends = [
-         aeson base bytestring containers gauge hashable mtl random
-         raw-strings-qq template-haskell text transformers
-         unordered-containers vector
-       ];
-       description = "Avro serialization support for Haskell";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "avro_0_5_2_0" = callPackage
-    ({ mkDerivation, aeson, array, base, base16-bytestring, bifunctors
-     , binary, bytestring, containers, data-binary-ieee754, deepseq
-     , directory, doctest, doctest-discover, extra, fail, gauge
      , generic-lens, HasBigDecimal, hashable, hedgehog, hspec
      , hspec-discover, hw-hspec-hedgehog, lens, lens-aeson, mtl
      , QuickCheck, random, raw-strings-qq, scientific, semigroups
@@ -35006,7 +35458,6 @@ self: {
        ];
        description = "Avro serialization support for Haskell";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "avro-piper" = callPackage
@@ -35019,6 +35470,8 @@ self: {
        pname = "avro-piper";
        version = "1.0.3";
        sha256 = "1vi0mgpqpr74ankl8418npklyfxacxg001vppps22p2da97s3pk1";
+       revision = "1";
+       editedCabalFile = "1405kfnndnh6w4hslahg74rdhk8jmh48j64ps7mval3py8cl5qiv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -35049,8 +35502,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 ];
@@ -35167,8 +35620,8 @@ self: {
      }:
      mkDerivation {
        pname = "aws-cloudfront-signed-cookies";
-       version = "0.2.0.4";
-       sha256 = "0j40760k1ackwhsy279ir8jybnvis5m56i5hy3rppjybhjiyyd4v";
+       version = "0.2.0.6";
+       sha256 = "19kzrmjw3vfv3v1s35fqdvixlxha43sdb29d60fwjkzvg7al9scv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -35508,23 +35961,49 @@ self: {
      }) {};
 
   "aws-lambda-haskell-runtime" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, hspec, http-client
-     , http-types, path, path-io, safe-exceptions-checked
-     , template-haskell, text
+    ({ mkDerivation, aeson, base, bytestring, case-insensitive, hspec
+     , http-client, http-types, path, path-io, safe-exceptions-checked
+     , template-haskell, text, unordered-containers
      }:
      mkDerivation {
        pname = "aws-lambda-haskell-runtime";
-       version = "2.0.4";
-       sha256 = "0gzg1g5669lr7p5sg22r6b952c7pn39rjr9y0ss77jvl7klhykr8";
+       version = "3.0.4";
+       sha256 = "1rbgi7f1vymh8q6b074z64jlww5gssbzhpam8k8lcgp0zlvm13n1";
        libraryHaskellDepends = [
-         aeson base bytestring http-client http-types path path-io
-         safe-exceptions-checked template-haskell text
+         aeson base bytestring case-insensitive http-client http-types path
+         path-io safe-exceptions-checked template-haskell text
+         unordered-containers
        ];
        testHaskellDepends = [ base hspec ];
        description = "Haskell runtime for AWS Lambda";
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "aws-lambda-haskell-runtime-wai" = callPackage
+    ({ mkDerivation, aeson, aws-lambda-haskell-runtime, base, binary
+     , bytestring, case-insensitive, http-types, iproute, network, text
+     , unordered-containers, vault, wai
+     }:
+     mkDerivation {
+       pname = "aws-lambda-haskell-runtime-wai";
+       version = "1.0.2";
+       sha256 = "0bjqrwl2kcnxv8yni2bxaz5x3pgs3j6c4rrgqpv5kfs7yn1ins7w";
+       libraryHaskellDepends = [
+         aeson aws-lambda-haskell-runtime base binary bytestring
+         case-insensitive http-types iproute network text
+         unordered-containers vault wai
+       ];
+       testHaskellDepends = [
+         aeson aws-lambda-haskell-runtime base binary bytestring
+         case-insensitive http-types iproute network text
+         unordered-containers vault wai
+       ];
+       description = "Run wai applications on AWS Lambda";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "aws-lambda-runtime" = callPackage
     ({ mkDerivation, aeson, async, base, base-compat, bytestring
      , containers, deepseq, filepath, http-client, http-media
@@ -35871,6 +36350,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
@@ -35930,6 +36429,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
@@ -36010,8 +36538,8 @@ self: {
        pname = "b-tree";
        version = "0.1.4";
        sha256 = "17hcv85020dm5h3449bfa763bcbl723h17chah4418dby2ql5lxg";
-       revision = "1";
-       editedCabalFile = "106vsqgv7545p0rky073sd7viidbg4zy3fzlb39r9irbl3p3giih";
+       revision = "2";
+       editedCabalFile = "0dvmbs7dd2crv5qiziry2dlrpvsvcgj9hbpq04rbd25pzpk28hqi";
        libraryHaskellDepends = [
          base binary bytestring containers directory errors exceptions
          filepath lens mmap mtl pipes pipes-interleave transformers vector
@@ -36030,34 +36558,39 @@ self: {
   "b9" = callPackage
     ({ mkDerivation, aeson, async, base, base64-bytestring, bifunctors
      , binary, boxes, bytestring, conduit, conduit-extra, ConfigFile
-     , 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 = "0.5.69.0";
-       sha256 = "0r2iwv3ykh04d7qq9nskrj4m3xwlhhlyxzh38vij65gx8jiy2nwa";
+       version = "2.1.0";
+       sha256 = "0zrblqyq7zm2zya20zaxvcgb489y2kywns72kxyp6ymi2sax586g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson async base base64-bytestring bifunctors binary boxes
-         bytestring conduit conduit-extra ConfigFile directory exceptions
-         extensible-effects filepath free hashable hspec hspec-expectations
-         lens monad-control mtl parallel parsec pretty pretty-show process
+         bytestring conduit conduit-extra ConfigFile 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
        ];
        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;
@@ -36156,8 +36689,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
@@ -36195,6 +36728,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
@@ -36506,8 +37054,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";
@@ -36541,8 +37089,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
@@ -36552,12 +37100,12 @@ self: {
      }) {};
 
   "barbies-th" = callPackage
-    ({ mkDerivation, barbies, base, template-haskell }:
+    ({ mkDerivation, barbies, base, split, template-haskell }:
      mkDerivation {
        pname = "barbies-th";
-       version = "0.1.1";
-       sha256 = "0b8g8q1ddbsfwf1v3063wv3abpa3f90mbiwa4wgsgizflj7s1ik9";
-       libraryHaskellDepends = [ barbies base template-haskell ];
+       version = "0.1.4";
+       sha256 = "0pzlak3fdbqjs8q5wr11sra3gkjsp2z22b6yy38pmrlzs1phln91";
+       libraryHaskellDepends = [ barbies base split template-haskell ];
        testHaskellDepends = [ barbies base ];
        description = "Create strippable HKD via TH";
        license = stdenv.lib.licenses.bsd3;
@@ -36846,6 +37394,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "base-prelude_1_4" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "base-prelude";
+       version = "1.4";
+       sha256 = "0nn5v2y9kl7i3n21250m7cvn55lvkmzj22wx6q4kaag5ycwwczrs";
+       libraryHaskellDepends = [ base ];
+       description = "The most complete prelude formed solely from the \"base\" package";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "base-unicode-symbols" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -36881,13 +37441,39 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "base16_0_3_0_0" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bytestring, criterion
+     , deepseq, primitive, QuickCheck, random-bytestring, tasty
+     , tasty-hunit, tasty-quickcheck, text, text-short
+     }:
+     mkDerivation {
+       pname = "base16";
+       version = "0.3.0.0";
+       sha256 = "151g3lxma65z0hqi3pqy57bidkhibvdsppkl37p1cldg7whvc708";
+       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 {
        pname = "base16-bytestring";
-       version = "0.1.1.6";
-       sha256 = "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs";
+       version = "0.1.1.7";
+       sha256 = "1fk9zvkx005sy4adbyil86svnqhgrvmczmf16ajhzj2wkmkqjmjj";
        libraryHaskellDepends = [ base bytestring ghc-prim ];
+       testHaskellDepends = [ base bytestring ];
        description = "Fast base16 (hex) encoding and decoding for ByteStrings";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -36900,6 +37486,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 ];
@@ -36907,14 +37495,32 @@ 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
      }:
      mkDerivation {
        pname = "base32";
-       version = "0.1.1.1";
-       sha256 = "1j00nznckw6q09kwbqg4dx4s869bi2vdwlmkddanli74f8fc7l7m";
+       version = "0.1.1.2";
+       sha256 = "1mnzjpbsz8lsmn13lsbhj4jxn722vfchv01wb2faxfncijji2qhf";
        libraryHaskellDepends = [ base bytestring text ];
        testHaskellDepends = [
          base bytestring memory random-bytestring tasty tasty-hunit text
@@ -36926,6 +37532,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
@@ -36951,6 +37581,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 ];
@@ -37065,31 +37697,60 @@ self: {
        ];
        description = "Base62 encoding and decoding";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "base64" = callPackage
-    ({ mkDerivation, base, base64-bytestring, bytestring, deepseq
-     , gauge, memory, random-bytestring, tasty, tasty-hunit, text
+    ({ mkDerivation, base, base64-bytestring, bytestring, criterion
+     , deepseq, ghc-byteorder, QuickCheck, random-bytestring, tasty
+     , tasty-hunit, tasty-quickcheck, text, text-short
      }:
      mkDerivation {
        pname = "base64";
-       version = "0.4.1";
-       sha256 = "06mwamlqdz90k7nh3x4w0j0mjkbhkns11hvj9zd8d1yw6wy3l4hd";
-       revision = "1";
-       editedCabalFile = "1jvx3wpnfwzxfz5w3bqglqcv539fkk7wivl8ylm126pqh7sjdp5f";
-       libraryHaskellDepends = [ base bytestring text ];
+       version = "0.4.2.2";
+       sha256 = "05ins0i1561d4gfz6h7fxx8pj8i1qkskz8dgh8pfxa1llzmr856i";
+       libraryHaskellDepends = [
+         base bytestring deepseq ghc-byteorder text text-short
+       ];
        testHaskellDepends = [
-         base base64-bytestring bytestring random-bytestring tasty
-         tasty-hunit text
+         base base64-bytestring bytestring QuickCheck random-bytestring
+         tasty tasty-hunit tasty-quickcheck text text-short
        ];
        benchmarkHaskellDepends = [
-         base base64-bytestring bytestring deepseq gauge memory
+         base base64-bytestring bytestring criterion deepseq
          random-bytestring text
        ];
        description = "Fast RFC 4648-compliant Base64 encoding";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "base64-bytes" = callPackage
+    ({ mkDerivation, base, base64, base64-bytestring, byte-order
+     , bytebuild, byteslice, bytestring, gauge, natural-arithmetic
+     , primitive, random, run-st, small-bytearray-builder
+     }:
+     mkDerivation {
+       pname = "base64-bytes";
+       version = "0.1.0.0";
+       sha256 = "1h6hy4vqhramad2qbz91qirvc9vs2n67ni8qwagmimx0n4ds4w07";
+       libraryHaskellDepends = [
+         base byte-order bytebuild byteslice natural-arithmetic primitive
+         run-st
+       ];
+       testHaskellDepends = [
+         base byteslice natural-arithmetic primitive small-bytearray-builder
+       ];
+       benchmarkHaskellDepends = [
+         base base64 base64-bytestring byteslice bytestring gauge primitive
+         random
+       ];
+       description = "Base64 encoding of byte sequences";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "base64-bytestring" = callPackage
     ({ mkDerivation, base, bytestring, containers, criterion, deepseq
      , HUnit, QuickCheck, split, test-framework, test-framework-hunit
@@ -37111,15 +37772,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
@@ -37142,8 +37803,8 @@ self: {
        pname = "base64-bytestring-type";
        version = "1.0.1";
        sha256 = "03kq4rjj6by02rf3hg815jfdqpdk0xygm5f46r2pn8mb99yd01zn";
-       revision = "4";
-       editedCabalFile = "0w7pzjyyhan42zbk8mn9dw1hzjcr0nv9nhpi4hs7s16d6cc80qwa";
+       revision = "6";
+       editedCabalFile = "05z53pc1gi62lzl262mc1qx12qqrds6ab6rflwpfcxbp0a67c825";
        libraryHaskellDepends = [
          aeson base base-compat base64-bytestring binary bytestring cereal
          deepseq hashable http-api-data QuickCheck serialise text
@@ -37183,23 +37844,6 @@ self: {
      }:
      mkDerivation {
        pname = "base64-lens";
-       version = "0.2.0";
-       sha256 = "0d4lri7wpaxx7hgd7slxj5jl2qkgfairzsga4vajl05g49amyk80";
-       revision = "1";
-       editedCabalFile = "07x38p4zcv05y94gjn5j3j1ydv06vi17fbjnz4ckcgc3ay0dzbzf";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [ base base64 bytestring lens text ];
-       testHaskellDepends = [ base doctest lens ];
-       description = "Optics for the Base64 library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "base64-lens_0_3_0" = callPackage
-    ({ mkDerivation, base, base64, bytestring, Cabal, cabal-doctest
-     , doctest, lens, text
-     }:
-     mkDerivation {
-       pname = "base64-lens";
        version = "0.3.0";
        sha256 = "0gs3cxmglz0hshi4m94zrlc6fix90cvbdmcv2v4j01zwsdg8gv81";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -37207,7 +37851,6 @@ self: {
        testHaskellDepends = [ base doctest lens ];
        description = "Optics for the Base64 library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "base64-string" = callPackage
@@ -37526,15 +38169,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;
@@ -37657,20 +38301,6 @@ self: {
      }) {};
 
   "bazel-runfiles" = callPackage
-    ({ mkDerivation, base, directory, filepath }:
-     mkDerivation {
-       pname = "bazel-runfiles";
-       version = "0.7.0.1";
-       sha256 = "000awjykargiirnmb3nfqp8dk1p87f5aqx2d07nxrrgflxs7y8ad";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base directory filepath ];
-       executableHaskellDepends = [ base filepath ];
-       description = "Locate Bazel runfiles location";
-       license = stdenv.lib.licenses.asl20;
-     }) {};
-
-  "bazel-runfiles_0_12" = callPackage
     ({ mkDerivation, base, directory, filepath, transformers }:
      mkDerivation {
        pname = "bazel-runfiles";
@@ -37682,7 +38312,6 @@ self: {
        executableHaskellDepends = [ base filepath ];
        description = "Locate Bazel runfiles location";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "bbdb" = callPackage
@@ -38123,6 +38752,8 @@ self: {
        pname = "bech32";
        version = "1.0.2";
        sha256 = "0km1jy3fhpnzqhi4pd5yn6y7214ij7rg47xwnp915c0x6j72ykym";
+       revision = "1";
+       editedCabalFile = "00zw8s5gp7l9872mhm4xcra6z1maw3pwb8klvaik9r7w3gwx6b4h";
        libraryHaskellDepends = [
          array base bytestring containers extra text
        ];
@@ -38135,6 +38766,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
@@ -38143,6 +38802,8 @@ self: {
        pname = "bech32-th";
        version = "1.0.2";
        sha256 = "0ypn8y4b0iw7jb167biy0zjs4hp9k9nlf8y4nsczfv5n4p4cadnq";
+       revision = "1";
+       editedCabalFile = "1b614lymjd3idcbzrkha7labfskv1m0kbljrnhwcz7sbymfcbdbk";
        libraryHaskellDepends = [ base bech32 template-haskell text ];
        testHaskellDepends = [ base bech32 hspec template-haskell ];
        testToolDepends = [ hspec-discover ];
@@ -38256,8 +38917,8 @@ self: {
        pname = "bench";
        version = "1.0.12";
        sha256 = "1sy97qpv6paar2d5syppk6lc06wjx6qyz5aidsmh30jq853nydx6";
-       revision = "1";
-       editedCabalFile = "0sk6vkjwk7g1diwah67ifj7s69qvwi52ngaijkfx5prn0vz24ldn";
+       revision = "2";
+       editedCabalFile = "055482m81h7pijiszdkk2k65p208i3c3pxs955pv6h0gwrialcsh";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -38324,12 +38985,12 @@ self: {
     ({ mkDerivation, base, bytestring, mtl, time }:
      mkDerivation {
        pname = "benchpress";
-       version = "0.2.2.13";
-       sha256 = "1x14mynjwjd8j7l0dl8nn6w8wf5y95wvww445glkih4p1yvzqm8z";
+       version = "0.2.2.14";
+       sha256 = "02d4ndwz0xyvfa5j1a4564sfn6fmpf4757dfxr6k20z5vgcdbqih";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base mtl time ];
-       executableHaskellDepends = [ base bytestring ];
+       executableHaskellDepends = [ base bytestring time ];
        description = "Micro-benchmarking with detailed statistics";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -38449,7 +39110,7 @@ self: {
          ghc-paths haskeline haskell-src-exts language-python monads-tf
          parseargs process transformers
        ];
-       description = "An implementation of Python 3.";
+       description = "An implementation of Python 3";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -38793,6 +39454,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
@@ -39237,6 +39900,8 @@ self: {
        pname = "binary-instances";
        version = "1.0.0.1";
        sha256 = "0f8ilzpwj7gbyvlswlkd48dzpj9m13ipinw55lvjag0ir52idk9a";
+       revision = "1";
+       editedCabalFile = "19xmaj5vlabsifkdk1kpxp4nadfml7a51w316sd4fxd69ncvwd72";
        libraryHaskellDepends = [
          aeson base binary binary-orphans case-insensitive hashable
          scientific tagged text text-binary time-compat unordered-containers
@@ -39252,14 +39917,21 @@ 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.0.1";
-       sha256 = "1w0wqi60wdfhlmif7ji47cvf5608fg1b9hh7cz657ybv1lpc6s89";
-       libraryHaskellDepends = [ base binary bytestring ];
-       testHaskellDepends = [ base binary bytestring hspec process ];
-       description = "Read and write values of types that implement Binary from and to Handles";
+       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;
      }) {};
 
@@ -39312,21 +39984,18 @@ self: {
      }) {};
 
   "binary-parser" = callPackage
-    ({ mkDerivation, base, base-prelude, bytestring, mtl
+    ({ mkDerivation, base, bytestring, mtl, QuickCheck
      , quickcheck-instances, rerebase, tasty, tasty-hunit
      , tasty-quickcheck, text, transformers
      }:
      mkDerivation {
        pname = "binary-parser";
-       version = "0.5.5";
-       sha256 = "1cs3zrhgnng2h84xnnvqcy6yrdm0xay1494dsa612y590s773aqx";
-       revision = "3";
-       editedCabalFile = "14n41yazmks2qw0v4krxcqw3ac0wdy2z53d0qz0rdjcd94fpghjf";
-       libraryHaskellDepends = [
-         base base-prelude bytestring mtl text transformers
-       ];
+       version = "0.5.6";
+       sha256 = "0s91289qh3xwbjm0zbnjj550asg1l801h5arx35j4msxrbwgcx3g";
+       libraryHaskellDepends = [ base bytestring mtl text transformers ];
        testHaskellDepends = [
-         quickcheck-instances rerebase tasty tasty-hunit tasty-quickcheck
+         QuickCheck quickcheck-instances rerebase tasty tasty-hunit
+         tasty-quickcheck
        ];
        description = "A highly-efficient but limited parser API specialised for bytestrings";
        license = stdenv.lib.licenses.mit;
@@ -39496,38 +40165,33 @@ self: {
      }) {};
 
   "binary-tagged" = callPackage
-    ({ mkDerivation, aeson, array, base, base16-bytestring, bifunctors
-     , binary, binary-instances, bytestring, containers, criterion
-     , cryptohash-sha1, deepseq, generics-sop, hashable, nats
-     , quickcheck-instances, scientific, semigroups, SHA, tagged, tasty
-     , tasty-hunit, tasty-quickcheck, text, time, unordered-containers
-     , vector
+    ({ mkDerivation, array, base, base16-bytestring, binary
+     , binary-instances, bytestring, containers, criterion, deepseq
+     , QuickCheck, quickcheck-instances, singleton-bool, structured
+     , tagged, tasty, tasty-hunit, tasty-quickcheck, text, transformers
+     , unordered-containers
      }:
      mkDerivation {
        pname = "binary-tagged";
-       version = "0.2";
-       sha256 = "1pgb2p0kdh9vkmgn509c2v3h9dnhl9vyq2gyisfqvn27g2422c0j";
-       revision = "1";
-       editedCabalFile = "0chv885zl8m7c6281sz8kfr2p7hgcl7xj0yjajjyr9whwfnylfj0";
+       version = "0.3";
+       sha256 = "1bvzwhdjxxr7b3lk23rwcygi34d6a5mairi2j2gh7k3p8983fgss";
        libraryHaskellDepends = [
-         aeson array base base16-bytestring binary bytestring containers
-         cryptohash-sha1 generics-sop hashable scientific tagged text time
-         unordered-containers vector
+         array base base16-bytestring binary bytestring containers
+         structured tagged
        ];
        testHaskellDepends = [
-         aeson array base base16-bytestring bifunctors binary
-         binary-instances bytestring containers generics-sop hashable
-         quickcheck-instances scientific tagged tasty tasty-hunit
-         tasty-quickcheck text time unordered-containers vector
+         base binary binary-instances bytestring QuickCheck
+         quickcheck-instances singleton-bool tagged tasty tasty-hunit
+         tasty-quickcheck transformers
        ];
        benchmarkHaskellDepends = [
-         aeson array base base16-bytestring binary binary-instances
-         bytestring containers criterion deepseq generics-sop hashable nats
-         scientific semigroups SHA tagged text time unordered-containers
-         vector
+         base binary binary-instances bytestring criterion deepseq text
+         unordered-containers
        ];
        description = "Tagged binary serialisation";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "binary-tree" = callPackage
@@ -39597,8 +40261,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";
@@ -40365,7 +41029,7 @@ self: {
        libraryHaskellDepends = [ base ];
        librarySystemDepends = [ sipc ];
        executableHaskellDepends = [ base ];
-       description = "Low level bindings to SIPC.";
+       description = "Low level bindings to SIPC";
        license = "LGPL";
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -40794,6 +41458,26 @@ self: {
        broken = true;
      }) {};
 
+  "bip32" = callPackage
+    ({ mkDerivation, base, base16-bytestring, base58-bytestring, binary
+     , bitcoin-hash, bitcoin-keys, bytestring, hedgehog, tasty
+     , tasty-hedgehog, tasty-hunit
+     }:
+     mkDerivation {
+       pname = "bip32";
+       version = "0.2";
+       sha256 = "1ji71m6mdnhqscadrmxs4pwb18cc5j91dhlnqs3d76gk32fyy32q";
+       libraryHaskellDepends = [
+         base base58-bytestring binary bitcoin-hash bitcoin-keys bytestring
+       ];
+       testHaskellDepends = [
+         base base16-bytestring base58-bytestring binary bitcoin-keys
+         bytestring hedgehog tasty tasty-hedgehog tasty-hunit
+       ];
+       description = "BIP-0032: Hierarchical Deterministic Wallets for Bitcoin and other cryptocurrencies";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "birch-beer" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cassava, colour
      , containers, deepseq, diagrams, diagrams-cairo, diagrams-graphviz
@@ -40806,8 +41490,8 @@ self: {
      }:
      mkDerivation {
        pname = "birch-beer";
-       version = "0.2.4.2";
-       sha256 = "09bk2qsq6rpa2sk817vb9w1y21rqjkj25i74cfw4rgzy2c550ffj";
+       version = "0.3.1.1";
+       sha256 = "0v2202zrnli49z4vw4zc6cgxvfqrv51b6p0svp0fdd2f9add4rvm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -40852,6 +41536,20 @@ self: {
        broken = true;
      }) {};
 
+  "birds-of-paradise" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "birds-of-paradise";
+       version = "0.2.0.0";
+       sha256 = "1jkj8li8yxl9kk5i8p63p9jkdcvdznmh473n12dxzimxnh15sf1y";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       description = "Birds of Paradise";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "bisc" = callPackage
     ({ mkDerivation, base, configurator, directory, filepath, mtl
      , selda, selda-sqlite, text
@@ -40899,8 +41597,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;
@@ -40919,6 +41617,8 @@ self: {
        ];
        description = "Plays chess";
        license = "GPL";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "bit-array" = callPackage
@@ -41005,6 +41705,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "bitcoin-address" = callPackage
+    ({ mkDerivation, base, base16-bytestring, base58-bytestring, bech32
+     , binary, bitcoin-hash, bitcoin-keys, bitcoin-script, bytestring
+     , hedgehog, tasty, tasty-hedgehog, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "bitcoin-address";
+       version = "0.1";
+       sha256 = "1pxxscq4giqgkk5dy55lmsypqssdddbwp25a7d3n04x3gd23j5ym";
+       libraryHaskellDepends = [
+         base base58-bytestring bech32 binary bitcoin-hash bitcoin-keys
+         bitcoin-script bytestring text
+       ];
+       testHaskellDepends = [
+         base base16-bytestring bitcoin-keys bitcoin-script bytestring
+         hedgehog tasty tasty-hedgehog tasty-hunit
+       ];
+       description = "Bitcoin address generation and rendering. Parsing coming soon.";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "bitcoin-api" = callPackage
     ({ mkDerivation, aeson, base, base58string, binary, bitcoin-block
      , bitcoin-script, bitcoin-tx, bitcoin-types, bytestring, hexstring
@@ -41077,6 +41800,20 @@ self: {
        broken = true;
      }) {};
 
+  "bitcoin-hash" = callPackage
+    ({ mkDerivation, base, bytestring, cryptonite, memory, tasty
+     , tasty-hunit, time
+     }:
+     mkDerivation {
+       pname = "bitcoin-hash";
+       version = "0.1";
+       sha256 = "10xg9n1r505p4jh8mz43v48h1b3dck2mki27lkn9d8bh19jzk20k";
+       libraryHaskellDepends = [ base bytestring cryptonite memory ];
+       testHaskellDepends = [ base bytestring tasty tasty-hunit time ];
+       description = "Bitcoin hash primitives";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "bitcoin-hs" = callPackage
     ({ mkDerivation, array, base, binary, bytestring, containers
      , deepseq, directory, filepath, ghc-prim, HTTP, json, mtl, network
@@ -41102,6 +41839,23 @@ self: {
        broken = true;
      }) {};
 
+  "bitcoin-keys" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bytestring, hedgehog
+     , secp256k1-haskell, tasty, tasty-hedgehog, tasty-hunit
+     }:
+     mkDerivation {
+       pname = "bitcoin-keys";
+       version = "0.1";
+       sha256 = "18xdwp3p2r1cv5f84mfl5dj2hd6v2dnvqam8ny9jv9kswn4m66c0";
+       libraryHaskellDepends = [ base bytestring secp256k1-haskell ];
+       testHaskellDepends = [
+         base base16-bytestring bytestring hedgehog tasty tasty-hedgehog
+         tasty-hunit
+       ];
+       description = "Bitcoin keys";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "bitcoin-payment-channel" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, base64-bytestring
      , blockchain-restful-address-index-api, bytestring, cereal
@@ -41337,6 +42091,8 @@ self: {
        pname = "bits";
        version = "0.5.2";
        sha256 = "1q5grjma421qiwjkwvnsakd4hxnf02bavfinky2skfhqvg63hkav";
+       revision = "1";
+       editedCabalFile = "0yjx0rixg51bhhddhb7m4g2ryp1qqj70j4bj6ggj0wpzmzazq5aa";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base bytes mtl transformers ];
        testHaskellDepends = [ base doctest ];
@@ -41472,18 +42228,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
@@ -41836,6 +42594,18 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
+  "blake3" = callPackage
+    ({ mkDerivation, base, memory, tasty, tasty-hunit }:
+     mkDerivation {
+       pname = "blake3";
+       version = "0.2";
+       sha256 = "1a6pfcsdnqwr116jypzla6nvl1wzny60r5ypi2yj4gjpmpbkj8b8";
+       libraryHaskellDepends = [ base memory ];
+       testHaskellDepends = [ base memory tasty tasty-hunit ];
+       description = "BLAKE3 hashing algorithm";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "blakesum" = callPackage
     ({ mkDerivation, base, bytestring, text, vector }:
      mkDerivation {
@@ -41868,34 +42638,6 @@ self: {
        broken = true;
      }) {};
 
-  "blank-canvas_0_6_2" = callPackage
-    ({ mkDerivation, aeson, base, base-compat, base64-bytestring
-     , bytestring, colour, containers, data-default-class, directory
-     , http-types, kansas-comet, mime-types, process, scotty, semigroups
-     , shake, stm, text, text-show, time, transformers, unix, vector
-     , wai, wai-extra, warp
-     }:
-     mkDerivation {
-       pname = "blank-canvas";
-       version = "0.6.2";
-       sha256 = "1qhdvxia8wlnv0ss9dsrxdfw3qsf376ypnpsijz7vxkj9dmzyq84";
-       revision = "5";
-       editedCabalFile = "1csa2lsr4jv9x3867l1nbd1brnvw10q9qla027r19csscx5pg726";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         aeson base base-compat base64-bytestring bytestring colour
-         containers data-default-class http-types kansas-comet mime-types
-         scotty semigroups stm text text-show transformers vector wai
-         wai-extra warp
-       ];
-       testHaskellDepends = [
-         base containers directory process shake stm text time unix vector
-       ];
-       description = "HTML5 Canvas Graphics Library";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
   "blank-canvas" = callPackage
     ({ mkDerivation, aeson, base, base-compat-batteries
      , base64-bytestring, bytestring, colour, containers
@@ -41907,6 +42649,8 @@ self: {
        pname = "blank-canvas";
        version = "0.7.1";
        sha256 = "02w428jpb49yaqzw93121lf1m4pjxi8wniqhnrvqh2zh63gsfws1";
+       revision = "3";
+       editedCabalFile = "1l2xcvms2jw10c4jvnc3kldk21vqcchckms0bawrcf908yhq525g";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base base-compat-batteries base64-bytestring bytestring
@@ -41943,6 +42687,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "blanks_0_4_1" = callPackage
+    ({ mkDerivation, adjunctions, base, containers, deepseq
+     , distributive, megaparsec, mtl, tasty, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "blanks";
+       version = "0.4.1";
+       sha256 = "0qi2phi7vdq9i6cr8yab8qn4i0f2rxni0dcs063yi0glk1hy1ccx";
+       libraryHaskellDepends = [
+         adjunctions base containers deepseq distributive mtl
+       ];
+       testHaskellDepends = [
+         adjunctions base containers deepseq distributive megaparsec mtl
+         tasty tasty-hunit text
+       ];
+       description = "Fill-in-the-blanks - A library factoring out substitution from ASTs";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "blas" = callPackage
     ({ mkDerivation, base, ieee, QuickCheck, storable-complex }:
      mkDerivation {
@@ -42253,8 +43017,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
@@ -42704,6 +43468,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
@@ -42973,8 +43789,8 @@ self: {
      }:
      mkDerivation {
        pname = "bond";
-       version = "0.12.0.1";
-       sha256 = "0zhfhr1ya0ljvg5s0s6fpqyrb0f25qdkschblfcmf68c6xmy4ws0";
+       version = "0.12.1.0";
+       sha256 = "1jh2gczg2xlkn26s4pfi81rhcfm83qb51fcsrhi4yq5nlvjzlvm6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -43195,8 +44011,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
        ];
@@ -43285,8 +44101,8 @@ self: {
     ({ mkDerivation, base, mtl, semigroups, template-haskell, text }:
      mkDerivation {
        pname = "boomerang";
-       version = "1.4.5.7";
-       sha256 = "11ycghpgngnw0ks47h3wmp0xdfl3qw1wnwdil1vmr1b5a4gngzi1";
+       version = "1.4.6";
+       sha256 = "09angcdqf75f03rh7m02rsqz5rr304dw4c5cszj9alpq4qxlsyqc";
        libraryHaskellDepends = [
          base mtl semigroups template-haskell text
        ];
@@ -43554,10 +44370,8 @@ self: {
     ({ mkDerivation, base, semigroups, zero }:
      mkDerivation {
        pname = "both";
-       version = "0.1.1.0";
-       sha256 = "13hf6j8qfaqw446ifyx0y60j9kvlvm0yj3r4h910bcszfjvyhkkg";
-       revision = "1";
-       editedCabalFile = "0fi2lvxcdnj9bi683kl840xpyj12wxwxvqbi86a6qp4r8bq8442n";
+       version = "0.1.1.1";
+       sha256 = "0kdqz901fpdgggmkm9rpnpv7gma9c8d887bszhnz6xd3v96gg7xn";
        libraryHaskellDepends = [ base semigroups zero ];
        description = "Like Maybe, but with a different Monoid instance";
        license = stdenv.lib.licenses.mit;
@@ -43588,8 +44402,8 @@ self: {
        pname = "bound";
        version = "2.0.1";
        sha256 = "0xmvkwambzmji1czxipl9cms5l3v98765b9spmb3wn5n6dpj0ji9";
-       revision = "7";
-       editedCabalFile = "0amr5rpq8andqq3z2dsh8hn67g3x7ykcmqq899vbkxwnpvg60h5r";
+       revision = "8";
+       editedCabalFile = "1qfl93gabiz1z0cjlc2xzmr844sjqfzcadayn154c3b4dfgy1cf6";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base bifunctors binary bytes cereal comonad deepseq hashable mmorph
@@ -43716,37 +44530,79 @@ self: {
        ];
        description = "audio-visual pseudo-physical simulation of colliding circles";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "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.3.0";
-       sha256 = "1xm4dd2h8fylfadfb4gsw1vs2a5l5ngjz956zh5cnm0rdma63j14";
+       version = "0.6.0";
+       sha256 = "0kv3j0fh2ahn4x2lgpghhkrbw5y1cy5mdlrriycqv4slrdzaqyks";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async attoparsec base concurrency contravariant exceptions foldl
-         lens pipes profunctors 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 {
@@ -43968,7 +44824,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "brick_0_53" = 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
@@ -43977,8 +44833,10 @@ self: {
      }:
      mkDerivation {
        pname = "brick";
-       version = "0.53";
-       sha256 = "15k9sc5y3xcjd3kfjs0rnsqxbiy9k34khncbi7jyyl3khq7rhw5n";
+       version = "0.55";
+       sha256 = "0n51vh8j75a2b6qbfah9k9zrp15m4rkq7fywpp811v93h8zf02fy";
+       revision = "1";
+       editedCabalFile = "1kn5nksvds8njy8zv7bq7gankngfam3dl1if0qvlhsfdl3n3d1zr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -44240,6 +45098,7 @@ self: {
        ];
        description = "Haskell source code formatter";
        license = stdenv.lib.licenses.agpl3;
+       maintainers = with stdenv.lib.maintainers; [ maralorn ];
      }) {};
 
   "broadcast-chan" = callPackage
@@ -44248,8 +45107,10 @@ self: {
      }:
      mkDerivation {
        pname = "broadcast-chan";
-       version = "0.2.1";
-       sha256 = "1pigxkncv71p51qnhxkag6hry14jp5s2skmxxbq2pmlrkj9j6rgs";
+       version = "0.2.1.1";
+       sha256 = "01r57v2ghfkv37cwh64zs1lrz1rd7is3pa5k7y8h16ws1ddglirg";
+       revision = "1";
+       editedCabalFile = "1kmnsnyb4gz70bka30l35lgm5k131d8lc1hm4b23aml2yskx3m54";
        libraryHaskellDepends = [ base transformers unliftio-core ];
        benchmarkHaskellDepends = [ async base criterion deepseq stm ];
        description = "Closable, fair, single-wakeup channel type that avoids 0 reader space leaks";
@@ -44262,8 +45123,8 @@ self: {
      }:
      mkDerivation {
        pname = "broadcast-chan-conduit";
-       version = "0.2.1";
-       sha256 = "1n9hqmdyw3v58kv8czbvvw5sfy4il3izqvn6rk8gak84hb51brxq";
+       version = "0.2.1.1";
+       sha256 = "0w0f4skprhnm1x4vzchkgjgjljzqizpb678251jgj65jsg1mnyfc";
        libraryHaskellDepends = [
          base broadcast-chan conduit resourcet transformers unliftio-core
        ];
@@ -44298,8 +45159,8 @@ self: {
      }:
      mkDerivation {
        pname = "broadcast-chan-tests";
-       version = "0.2.1";
-       sha256 = "01vlhxxwhkakllffw7vdqr7fcsf9m7rkwkbs8x6d5dfwb5qxs6gk";
+       version = "0.2.1.1";
+       sha256 = "0qx8j9sfky5qvrxrn4is9sja4qh6jh7jahq3zkyyq3a54jkwc8d3";
        libraryHaskellDepends = [
          async base broadcast-chan clock containers optparse-applicative
          paramtree stm tagged tasty tasty-golden tasty-hunit tasty-travis
@@ -44327,19 +45188,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 ];
@@ -44555,8 +45416,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;
@@ -44930,8 +45791,8 @@ self: {
      }:
      mkDerivation {
        pname = "bugsnag-hs";
-       version = "0.1.0.0";
-       sha256 = "1p27q90k39rch3sy7m5n65qkqkn5f5jnrrk5sq182v2dfl1x2j36";
+       version = "0.1.0.3";
+       sha256 = "0xm7qf4kzbgk3qnchns7bb2578x4ivmym5a93272849klybjjqk9";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson auto-update base bytestring http-client stm text time
@@ -44964,6 +45825,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
@@ -45218,13 +46101,18 @@ self: {
      }) {};
 
   "burrito" = callPackage
-    ({ mkDerivation, base, hspec, QuickCheck, template-haskell }:
+    ({ mkDerivation, base, bytestring, containers, hspec, parsec
+     , QuickCheck, template-haskell, text, transformers
+     }:
      mkDerivation {
        pname = "burrito";
-       version = "1.0.2.0";
-       sha256 = "1zmwzdihys8kh9idcpzvg1p4hcpzbfji8pdzixpvz9hya8cc44vf";
-       libraryHaskellDepends = [ base template-haskell ];
-       testHaskellDepends = [ base hspec QuickCheck ];
+       version = "1.2.0.0";
+       sha256 = "1nrb08czlnfcgb7v59vzkffik2w5yp833la4mq6sp6sgnm0ylgya";
+       libraryHaskellDepends = [
+         base bytestring containers parsec template-haskell text
+         transformers
+       ];
+       testHaskellDepends = [ base containers hspec QuickCheck text ];
        description = "Parse and render URI templates";
        license = stdenv.lib.licenses.isc;
      }) {};
@@ -45317,15 +46205,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;
@@ -45333,16 +46221,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
@@ -45351,8 +46246,8 @@ self: {
      }:
      mkDerivation {
        pname = "butcher";
-       version = "1.3.3.1";
-       sha256 = "0nqn057b5g8p6nj9xpbg52swiwzncirgfmzp3l1z5d8yn641zp1n";
+       version = "1.3.3.2";
+       sha256 = "06qgqjc8h7dd786wkcwrxpl6bsd66jzywwcnhm52q0cb9678w3qx";
        libraryHaskellDepends = [
          base bifunctors containers deque extra free microlens microlens-th
          mtl multistate pretty transformers unsafe void
@@ -45463,42 +46358,47 @@ self: {
      }) {};
 
   "bv-sized" = callPackage
-    ({ mkDerivation, base, containers, lens, mtl, parameterized-utils
-     , pretty, QuickCheck, random
+    ({ mkDerivation, base, bitwise, bytestring, hedgehog, panic
+     , parameterized-utils, tasty, tasty-hedgehog, th-lift
      }:
      mkDerivation {
        pname = "bv-sized";
-       version = "0.7.0";
-       sha256 = "04fiqpd5kcq7lyas40axqn6mcngr1yymi1aiqgzip519qmdg73vl";
+       version = "1.0.1";
+       sha256 = "12l69p95z1ihwbfhlm0wyr1bdhs52ng4fvdsqxhgn0bpx9skzw73";
        libraryHaskellDepends = [
-         base containers lens mtl parameterized-utils pretty QuickCheck
-         random
+         base bitwise bytestring panic parameterized-utils th-lift
        ];
        testHaskellDepends = [
-         base lens parameterized-utils pretty QuickCheck random
+         base bytestring hedgehog parameterized-utils tasty tasty-hedgehog
        ];
-       description = "a BitVector datatype that is parameterized by the vector width";
+       description = "a bitvector datatype that is parameterized by the vector width";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
   "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
@@ -45514,6 +46414,37 @@ self: {
        broken = true;
      }) {};
 
+  "byte-count-reader" = callPackage
+    ({ mkDerivation, base, extra, hspec, parsec, parsec-numbers, text
+     }:
+     mkDerivation {
+       pname = "byte-count-reader";
+       version = "0.10.0.1";
+       sha256 = "0ibckpy0wz2f8590z92lvkmwcf29lv6sby1y3cz3cihxvp3bw3il";
+       libraryHaskellDepends = [ base extra parsec parsec-numbers text ];
+       testHaskellDepends = [
+         base extra hspec parsec parsec-numbers text
+       ];
+       description = "Read strings describing a number of bytes like 2Kb and 0.5 MiB";
+       license = stdenv.lib.licenses.gpl3;
+     }) {};
+
+  "byte-count-reader_0_10_1_1" = callPackage
+    ({ mkDerivation, base, extra, hspec, parsec, parsec-numbers, text
+     }:
+     mkDerivation {
+       pname = "byte-count-reader";
+       version = "0.10.1.1";
+       sha256 = "0amzhcy60rmiyfp7cgdg7g1xcf7z5zz43kg18i1bwwj565ipb6p8";
+       libraryHaskellDepends = [ base extra parsec parsec-numbers text ];
+       testHaskellDepends = [
+         base extra hspec parsec parsec-numbers text
+       ];
+       description = "Read strings describing a number of bytes like 2Kb and 0.5 MiB";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "byte-order" = callPackage
     ({ mkDerivation, base, primitive, primitive-unaligned }:
      mkDerivation {
@@ -45553,33 +46484,6 @@ self: {
 
   "bytebuild" = callPackage
     ({ mkDerivation, base, byteslice, bytestring, gauge
-     , natural-arithmetic, primitive, primitive-offset
-     , primitive-unlifted, QuickCheck, quickcheck-classes, run-st, tasty
-     , tasty-hunit, tasty-quickcheck, text, text-short, vector
-     , wide-word
-     }:
-     mkDerivation {
-       pname = "bytebuild";
-       version = "0.3.4.0";
-       sha256 = "00kda7qz92vfqldq2ksxx8qf1v4kl0wm2w2fxg6m2nkpqfzlv026";
-       libraryHaskellDepends = [
-         base byteslice bytestring natural-arithmetic primitive
-         primitive-offset primitive-unlifted run-st text-short wide-word
-       ];
-       testHaskellDepends = [
-         base byteslice bytestring natural-arithmetic primitive
-         primitive-unlifted QuickCheck quickcheck-classes tasty tasty-hunit
-         tasty-quickcheck text vector wide-word
-       ];
-       benchmarkHaskellDepends = [
-         base byteslice gauge natural-arithmetic primitive text-short
-       ];
-       description = "Serialize to a small byte arrays";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "bytebuild_0_3_5_0" = callPackage
-    ({ mkDerivation, base, byteslice, bytestring, gauge
      , integer-logarithms, natural-arithmetic, primitive
      , primitive-offset, primitive-unlifted, QuickCheck
      , quickcheck-classes, quickcheck-instances, run-st, tasty
@@ -45588,8 +46492,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
@@ -45606,7 +46510,6 @@ self: {
        ];
        description = "Serialize to a small byte arrays";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "bytedump" = callPackage
@@ -45662,6 +46565,8 @@ self: {
        ];
        description = "Fast logging";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "byteorder" = callPackage
@@ -45685,8 +46590,8 @@ self: {
        pname = "bytes";
        version = "0.17";
        sha256 = "11gacfxcn9f3v5a1phlgi7mwwrnyh51sfsym573g6i4v2zqfrwi3";
-       revision = "1";
-       editedCabalFile = "0pa787mwyic7bhbxpcp2dh86vhdccbdiakxss2c084h8hd8c1g97";
+       revision = "2";
+       editedCabalFile = "1i49q0zdh1a1pnbhcrbla9l8xgays6gvq9bbx9k5iv469n4ppjbd";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base binary binary-orphans bytestring cereal containers hashable
@@ -45714,27 +46619,6 @@ self: {
   "byteslice" = callPackage
     ({ mkDerivation, base, bytestring, gauge, primitive, primitive-addr
      , primitive-unlifted, quickcheck-classes, run-st, tasty
-     , tasty-hunit, tasty-quickcheck
-     }:
-     mkDerivation {
-       pname = "byteslice";
-       version = "0.2.2.0";
-       sha256 = "0ml3igz9rgrbwvpb883f6sz2j73isxf58iskfpisjgsx8lmgdl4c";
-       libraryHaskellDepends = [
-         base primitive primitive-addr primitive-unlifted run-st
-       ];
-       testHaskellDepends = [
-         base bytestring primitive quickcheck-classes tasty tasty-hunit
-         tasty-quickcheck
-       ];
-       benchmarkHaskellDepends = [ base gauge primitive ];
-       description = "Slicing managed and unmanaged memory";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "byteslice_0_2_3_0" = callPackage
-    ({ mkDerivation, base, bytestring, gauge, primitive, primitive-addr
-     , primitive-unlifted, quickcheck-classes, run-st, tasty
      , tasty-hunit, tasty-quickcheck, tuples, vector
      }:
      mkDerivation {
@@ -45752,7 +46636,6 @@ self: {
        benchmarkHaskellDepends = [ base gauge primitive ];
        description = "Slicing managed and unmanaged memory";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "bytesmith" = callPackage
@@ -45762,8 +46645,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
@@ -45779,21 +46662,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;
@@ -46320,16 +47195,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "bz2_1_0_0_2" = callPackage
-    ({ mkDerivation, base, bytestring, bzlib, bzlib-conduit, c2hs
-     , conduit, cpphs, criterion, deepseq, directory, filepath, pipes
-     , pipes-bytestring, pipes-bzip, pipes-safe, tasty, tasty-golden
-     , tasty-hunit, temporary
+  "bz2_1_0_1_0" = callPackage
+    ({ mkDerivation, base, bytestring, bzlib, c2hs, cpphs, criterion
+     , deepseq, directory, filepath, tasty, tasty-golden, tasty-hunit
+     , temporary
      }:
      mkDerivation {
        pname = "bz2";
-       version = "1.0.0.2";
-       sha256 = "12w3rz137g45cw3s5n0ajk9pvilfvh3fszjrnn07fsjck0r5mnyx";
+       version = "1.0.1.0";
+       sha256 = "1kskfgdfjpg2nn807298m605lc7jafnsi1phz3bp6jds48zwrfhq";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base bytestring ];
        libraryToolDepends = [ c2hs ];
@@ -46338,8 +47212,7 @@ self: {
          tasty-hunit
        ];
        benchmarkHaskellDepends = [
-         base bytestring bzlib bzlib-conduit conduit criterion filepath
-         pipes pipes-bytestring pipes-bzip pipes-safe temporary
+         base bytestring bzlib criterion filepath temporary
        ];
        benchmarkToolDepends = [ cpphs ];
        description = "Bindings to libbz2";
@@ -46364,10 +47237,8 @@ self: {
     ({ mkDerivation, base, bytestring, bzip2 }:
      mkDerivation {
        pname = "bzlib";
-       version = "0.5.0.5";
-       sha256 = "0zh130vw719a8d11q5qzc3ilzgv8cqyc2a7r1a131cv1fjnd1rwy";
-       revision = "1";
-       editedCabalFile = "1d4ra5prh2q9h8inpwvrsmkmg1ndisdj47jv06iijpj6xdp5bapl";
+       version = "0.5.1.0";
+       sha256 = "1n599xwyxghf52kam30k1l2qh8cg91h55c2bgchnqyj103hb7nfy";
        libraryHaskellDepends = [ base bytestring ];
        librarySystemDepends = [ bzip2 ];
        description = "Compression and decompression in the bzip2 format";
@@ -46454,8 +47325,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";
@@ -46514,6 +47385,19 @@ self: {
        broken = true;
      }) {};
 
+  "c14n" = callPackage
+    ({ mkDerivation, base, bytestring, libxml2 }:
+     mkDerivation {
+       pname = "c14n";
+       version = "0.1.0.1";
+       sha256 = "0j5g36sxz6bp2z0z10d47lqh7rmclx3296zafc5vzns8d884sm0n";
+       libraryHaskellDepends = [ base bytestring ];
+       librarySystemDepends = [ libxml2 ];
+       libraryPkgconfigDepends = [ libxml2 ];
+       description = "Bindings to the c14n implementation in libxml";
+       license = stdenv.lib.licenses.mit;
+     }) {inherit (pkgs) libxml2;};
+
   "c2ats" = callPackage
     ({ mkDerivation, base, containers, HUnit, language-c, pretty
      , regex-posix, test-framework, test-framework-hunit
@@ -46597,8 +47481,6 @@ self: {
        testHaskellDepends = [ base here hspec logging monad-logger text ];
        description = "Convert C API header files to .hsc and .hsc.helper.c files";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ca" = callPackage
@@ -46665,6 +47547,17 @@ self: {
        broken = true;
      }) {youProbablyWantCapitalCabal = null;};
 
+  "cabal-appimage" = callPackage
+    ({ mkDerivation, base, Cabal, filepath }:
+     mkDerivation {
+       pname = "cabal-appimage";
+       version = "0.3.0.0";
+       sha256 = "0m3xq3k4s6rn90vd2sp115jyb722vi9wgih3lz05fnc2bypyg6zi";
+       libraryHaskellDepends = [ base Cabal filepath ];
+       description = "Cabal support for creating AppImage applications";
+       license = stdenv.lib.licenses.agpl3;
+     }) {};
+
   "cabal-audit" = callPackage
     ({ mkDerivation, base, Cabal, directory, filepath, HTTP
      , optparse-applicative
@@ -46692,8 +47585,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-bounds";
-       version = "2.2.1";
-       sha256 = "13pqdmghs92rwkg8fkky30sqimq54yzw2y1z5czdsmlj46r8i6ij";
+       version = "2.3.0";
+       sha256 = "106q5imjznbh7x2pvvgfsn8qx1awb00w0mgfrkkzbwnwc3g8jnw3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -46704,10 +47597,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
@@ -46753,8 +47644,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 = [
@@ -46785,8 +47676,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-cargs";
-       version = "1.2.0";
-       sha256 = "10dqy2i2rq4hq81v2gar2bsq3glx5yg5mwp9a0h7drap69407ygs";
+       version = "1.3.0";
+       sha256 = "08n2n0p3m282yx7cf1nzmlfmw0xikqwrj3l1s8jmx18z2gh0x1h4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -46847,8 +47738,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-debian";
-       version = "5.0.2";
-       sha256 = "0586sjda7ar8p243m92csz3d35smpzlxvyh09rl4fllgzhazxn5f";
+       version = "5.0.3";
+       sha256 = "11imbizfa65fdqydpxvcdv0a80gsd6szzl33b312myw3il2xr5hi";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -46862,6 +47753,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 {
@@ -46924,13 +47840,57 @@ 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
+     , simple-cmd, simple-cmd-args, time
+     }:
+     mkDerivation {
+       pname = "cabal-file";
+       version = "0.1.0";
+       sha256 = "1khf39awvpnqxs0rlqa6n5810x9kkn31975v6kbmwwdrjjp2qlqw";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring Cabal directory extra filepath hackage-security
+         optparse-applicative simple-cabal simple-cmd time
+       ];
+       executableHaskellDepends = [
+         base bytestring Cabal directory extra filepath optparse-applicative
+         simple-cabal simple-cmd simple-cmd-args
+       ];
+       description = "Cabal file access";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "cabal-file-th" = callPackage
     ({ mkDerivation, base, Cabal, directory, pretty, template-haskell
      }:
@@ -46954,32 +47914,10 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-flatpak";
-       version = "0.1";
-       sha256 = "0f42sfqf0n7yizvvn6mvb9fbfrqzyanm10v9lk895jg6cryxy20j";
-       revision = "1";
-       editedCabalFile = "05q1bpjvkq7g6q5fx1p44h562i9m6vqffy43arc26zpfgssm59z2";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         aeson aeson-pretty base bytestring cabal-plan containers
-         cryptohash-sha256 http-client http-client-tls http-types
-         optparse-applicative pathtype shell-utility tar text utility-ht
-         zlib
-       ];
-       description = "Generate a FlatPak manifest from a Cabal package description";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "cabal-flatpak_0_1_0_1" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, cabal-plan
-     , containers, cryptohash-sha256, http-client, http-client-tls
-     , http-types, optparse-applicative, pathtype, shell-utility, tar
-     , text, utility-ht, zlib
-     }:
-     mkDerivation {
-       pname = "cabal-flatpak";
-       version = "0.1.0.1";
-       sha256 = "12jyzbh4xhqj6rhg9n2za5r8n4j6zdw3x5ixdh5xvw4wivfxqxq9";
+       version = "0.1.0.2";
+       sha256 = "1h7yklhqrsgxk841fryxz0sk03zb02p34g1nvwdz6c6mfpwc8y54";
+       revision = "2";
+       editedCabalFile = "0mf387hkxshcbss739c66j0hc1143r9lns3p3aw1l76as9lbdlwj";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -46990,7 +47928,6 @@ self: {
        ];
        description = "Generate a FlatPak manifest from a Cabal package description";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "cabal-fmt" = callPackage
@@ -47000,8 +47937,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-fmt";
-       version = "0.1.2";
-       sha256 = "0h4qxbwykddbdbiw5j140v8cin5h4aqi260wd9fddpxdpkpmdrda";
+       version = "0.1.3";
+       sha256 = "1d91kmx2q6ygx2avwgi9ihkdazngjf7i3ajyp3cmry5ahvv62x7z";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47017,8 +47954,7 @@ self: {
        doHaddock = false;
        description = "Format .cabal files";
        license = "GPL-3.0-or-later AND BSD-3-Clause";
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
+       maintainers = with stdenv.lib.maintainers; [ maralorn ];
      }) {};
 
   "cabal-ghc-dynflags" = callPackage
@@ -47081,6 +48017,8 @@ self: {
        pname = "cabal-helper";
        version = "1.1.0.0";
        sha256 = "1f4s46l60s1lcdia7nv2r3y71z5c6pg6ljcc0601abl1aklx303p";
+       revision = "1";
+       editedCabalFile = "08fyxvpqbp0r6hiqxi5wc944phr8zgmkv7hiw71zcavl09c8mvxf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47227,6 +48165,8 @@ self: {
        pname = "cabal-install-parsers";
        version = "0.3.0.1";
        sha256 = "1skv3psqs26m68n5xqsw4jil2f3dz5yv8hmskl58sg0q22mjbspm";
+       revision = "1";
+       editedCabalFile = "1q89viamcwb49qi8as9pdscsi2a0pkjpfj275ch4rx0qj0vwkr67";
        libraryHaskellDepends = [
          aeson base base16-bytestring binary binary-instances bytestring
          Cabal containers cryptohash-sha256 deepseq directory filepath lukko
@@ -47249,18 +48189,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
@@ -47359,8 +48295,10 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-plan";
-       version = "0.6.2.0";
-       sha256 = "0gwbyyj4xih9barg2c589v6z82s0gx98airs6icivg301khg9fzg";
+       version = "0.7.0.0";
+       sha256 = "1wv375dq50fibzg6xa9vrr8q4lhaqcl254b9a2vc42rrjvhxxmzc";
+       revision = "1";
+       editedCabalFile = "0gc64mgk11nszilkbid351zxh5cpy85kqcc3mrkrw2fsbcga08as";
        configureFlags = [ "-fexe" ];
        isLibrary = true;
        isExecutable = true;
@@ -47411,18 +48349,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.4";
-       sha256 = "0p2g0cci4ylbpkv3r1pfi6pc2iyxghqi8rjrmxz0jxs4x28hb23v";
+       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
        ];
@@ -47703,8 +48642,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal2nix";
-       version = "2.15.3";
-       sha256 = "1l4jhl842g5jmwhmi1gqljkxa8ia80xbk2vmlhg6hlw1nkl9wfrz";
+       version = "2.15.5";
+       sha256 = "1afqk9svs3zy69w3xa1gvsacn25vpxf2rffw2rvhs3wvsasxpb6c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47737,8 +48676,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal2spec";
-       version = "2.6";
-       sha256 = "173qiqpzcvihdv0jd0z15wgxzars0kybcyhxprmypk232c9pa48v";
+       version = "2.6.2";
+       sha256 = "0x1r01fk5mch76zindalvmlkfaca4y1x89zw2dm0d46fncsfgdrv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base Cabal filepath time ];
@@ -48004,8 +48943,8 @@ self: {
      }:
      mkDerivation {
        pname = "cachix";
-       version = "0.3.7";
-       sha256 = "14rz8rncvnv8x9idfg69acck38bygnbnccdn7ghhz4ailiamf50b";
+       version = "0.3.8";
+       sha256 = "0n05ys0jz6if3k121hr5znzbbd0v6xmckhh4vyya90r3kvgp1526";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -48093,6 +49032,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 {
@@ -48143,8 +49098,8 @@ self: {
      }:
      mkDerivation {
        pname = "cairo";
-       version = "0.13.8.0";
-       sha256 = "09g93jzackry9yi4xsd5d6h75z0r7mbw2s2w7wd2af4dmp76l2d9";
+       version = "0.13.8.1";
+       sha256 = "1hpkyhrlg1d24s34kq6d379z8l8fvznm98wpq37haqjma4nl25hk";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal gtk2hs-buildtools ];
        libraryHaskellDepends = [
@@ -48338,29 +49293,31 @@ self: {
      }) {};
 
   "calamity" = callPackage
-    ({ mkDerivation, aeson, async, base, bytestring, concurrent-extra
-     , containers, data-default-class, deepseq, deque, df1, di-polysemy
-     , exceptions, fmt, focus, generic-lens, generic-override
-     , generic-override-aeson, hashable, http-date, http-types, lens
-     , lens-aeson, mtl, polysemy, polysemy-plugin, reflection
+    ({ mkDerivation, aeson, async, base, bytestring, colour
+     , concurrent-extra, containers, data-default-class, data-flags
+     , deepseq, deque, df1, di-polysemy, exceptions, fmt, focus
+     , generic-lens, generic-override, generic-override-aeson, hashable
+     , 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, 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.5.1";
-       sha256 = "1bbdxhv5gl61qwf65gsrdc5zkwx2a1aar83l2ndmanayjbh6n8cs";
+       version = "0.1.19.2";
+       sha256 = "14vw42zsyzcdi5nmgfl2mi4zxqbkvmd525ybsx324qj3cp3k8mn6";
        libraryHaskellDepends = [
-         aeson async base bytestring concurrent-extra containers
-         data-default-class deepseq deque df1 di-polysemy exceptions fmt
-         focus generic-lens generic-override generic-override-aeson hashable
-         http-date http-types lens lens-aeson mtl polysemy polysemy-plugin
-         reflection scientific stm stm-chans stm-containers text text-show
-         time typerep-map unordered-containers vector websockets
-         wreq-patchable wuss
+         aeson async base bytestring colour concurrent-extra containers
+         data-default-class data-flags deepseq deque df1 di-polysemy
+         exceptions fmt focus generic-lens generic-override
+         generic-override-aeson hashable 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 unboxing-vector
+         unordered-containers vector websockets wreq wuss
        ];
-       description = "A library for writing discord bots";
+       description = "A library for writing discord bots in haskell";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -48509,8 +49466,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
@@ -48891,6 +49848,8 @@ self: {
        ];
        description = "Extensional capabilities and deriving combinators";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "capataz" = callPackage
@@ -49077,10 +50036,8 @@ self: {
      }:
      mkDerivation {
        pname = "cardano-coin-selection";
-       version = "1.0.0";
-       sha256 = "0s0b2bbczsjq31h3xpyvingwpgpzgh3x2sw6bvryyn13wy717hbk";
-       revision = "1";
-       editedCabalFile = "1cdm1sq8qnna83lxr9s5jsaxwgzd2363fni3xyirldmxnn20j3l1";
+       version = "1.0.1";
+       sha256 = "1nvnkd5g0vq4vqj1w55hd1b1v7rwzhb3anhavablw9wy3w230qja";
        libraryHaskellDepends = [
          base bytestring containers cryptonite deepseq quiet text
          transformers
@@ -49256,19 +50213,18 @@ self: {
   "cas-store" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, cas-hashable
      , containers, cryptonite, directory, filepath, hashable, hinotify
-     , hostname, lens, monad-control, path, path-io, random
-     , safe-exceptions, sqlite-simple, store, tar, tasty, tasty-hunit
-     , text, unix
+     , hostname, lens, path, path-io, random, safe-exceptions
+     , sqlite-simple, store, tar, tasty, tasty-hunit, text, unix
+     , unliftio
      }:
      mkDerivation {
        pname = "cas-store";
-       version = "1.0.1";
-       sha256 = "1ls0zsaf472ikpxddzr94cj7hbszlxm4jhdhl7syykypp867v2vi";
+       version = "1.1.0";
+       sha256 = "0fky3ag03wsnlij1f912a5ag082d2q9z8qfly86cw7kwz631ld18";
        libraryHaskellDepends = [
          aeson async base bytestring cas-hashable containers cryptonite
-         directory filepath hashable hinotify hostname lens monad-control
-         path path-io random safe-exceptions sqlite-simple store tar text
-         unix
+         directory filepath hashable hinotify hostname lens path path-io
+         random safe-exceptions sqlite-simple store tar text unix unliftio
        ];
        testHaskellDepends = [
          async base cas-hashable containers path path-io safe-exceptions
@@ -49280,16 +50236,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
@@ -49551,8 +50508,8 @@ self: {
      }:
      mkDerivation {
        pname = "cases";
-       version = "0.1.3.2";
-       sha256 = "1ad8b4rvz6lnnhdk63xm5rpk2dwj97whfd69gvnw5ajifwpn7kwy";
+       version = "0.1.4";
+       sha256 = "14mn0cjbnx4jlm5gqkprim5jfc39ffzj2xzv4vvzi2yq3pwcycv0";
        libraryHaskellDepends = [ attoparsec base-prelude loch-th text ];
        testHaskellDepends = [
          base HTF HUnit loch-th placeholders QuickCheck text
@@ -49851,6 +50808,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
@@ -49869,6 +50848,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
@@ -50264,6 +51259,7 @@ self: {
        testHaskellDepends = [ base base16-bytestring hspec ];
        description = "Cayenne Low Power Payload";
        license = stdenv.lib.licenses.bsd3;
+       maintainers = with stdenv.lib.maintainers; [ sorki ];
      }) {};
 
   "cayley-client" = callPackage
@@ -50273,8 +51269,8 @@ self: {
      }:
      mkDerivation {
        pname = "cayley-client";
-       version = "0.4.12";
-       sha256 = "1syx1qlgp7jw1f2334jc5y2bxph5xqpnsamd3dp1qa9zvxk9bxzd";
+       version = "0.4.13";
+       sha256 = "1sak0rg9gydcwk7ahx51czp3akispxrkkfgq94n6hgg3dqvm646l";
        libraryHaskellDepends = [
          aeson attoparsec base binary bytestring exceptions http-client
          http-conduit lens lens-aeson mtl text transformers
@@ -50331,6 +51327,8 @@ self: {
        pname = "cbor-tool";
        version = "0.2.2.0";
        sha256 = "0rsnnz1zh9jyjif94lrdppzaa41hypqs1r5dlyzbwlw1m75g286p";
+       revision = "1";
+       editedCabalFile = "1z87h65g6y1w43g76r5i9ps8wkpiabbgkqq85ni8mz1m3rjizl4n";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -50350,8 +51348,8 @@ self: {
      }:
      mkDerivation {
        pname = "cborg";
-       version = "0.2.2.1";
-       sha256 = "10v1dip11zlpbj69k95n1zm1msp41hkw8snd93h19zlji0v0v4ms";
+       version = "0.2.4.0";
+       sha256 = "0zrn75jx3lprdagl99r88jfhccalw783fn9jjk9zhy50zypkibil";
        libraryHaskellDepends = [
          array base bytestring containers deepseq ghc-prim half integer-gmp
          primitive text
@@ -50374,6 +51372,8 @@ self: {
        pname = "cborg-json";
        version = "0.2.2.0";
        sha256 = "0ysilz7rrjk94sqr3a61s98hr9qfi1xg13bskmlpc6mpgi2s4s5b";
+       revision = "2";
+       editedCabalFile = "1hbabjvmyqha75v2ivyvj6yzrnj9vs3h9988j4p68x9bcwmgyjyd";
        libraryHaskellDepends = [
          aeson aeson-pretty base cborg scientific text unordered-containers
          vector
@@ -50458,8 +51458,8 @@ self: {
      }:
      mkDerivation {
        pname = "cdeps";
-       version = "0.1.3.0";
-       sha256 = "1c237awhrr1r0qz7jll1d7803j1khhz1qq4my2dddsgwfsy57ga3";
+       version = "0.1.3.1";
+       sha256 = "0r8q2i29wb47dkkws6cyy2qgwzgyhcsmx7sixv8n44rxiiv0dhcw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -51098,6 +52098,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 {
@@ -51123,7 +52151,7 @@ self: {
          array base binary bytestring Codec-Image-DevIL containers
          data-reify directory GLUT OpenGLRaw process time
        ];
-       description = "Combinators for building and processing 2D images.";
+       description = "Combinators for building and processing 2D images";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -51136,7 +52164,7 @@ self: {
        version = "0.1";
        sha256 = "1gvnp176j8gd0s6wzq10zpiqkn3wma99pwn3f78wgxm9rh588gh2";
        libraryHaskellDepends = [ array base chalkboard GLUT OpenGL time ];
-       description = "OpenGL based viewer for chalkboard rendered images.";
+       description = "OpenGL based viewer for chalkboard rendered images";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -51264,6 +52292,26 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "character-cases_0_1_0_6" = callPackage
+    ({ mkDerivation, base, containers, doctest, Glob, megaparsec
+     , prettyprinter, template-haskell
+     }:
+     mkDerivation {
+       pname = "character-cases";
+       version = "0.1.0.6";
+       sha256 = "0nq461ij8h529skb55yn7afvx846r0va97kzbd1c16z1n4h94nhy";
+       libraryHaskellDepends = [
+         base containers megaparsec prettyprinter template-haskell
+       ];
+       testHaskellDepends = [
+         base containers doctest Glob megaparsec prettyprinter
+         template-haskell
+       ];
+       description = "Exposes subspecies types of Char. And naming cases.";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "charade" = callPackage
     ({ mkDerivation, base, configurator, containers, filepath, heist
      , lens, mtl, QuickCheck, random, snap, snap-core, snap-extras
@@ -51363,29 +52411,51 @@ self: {
      }) {};
 
   "chart-svg" = callPackage
-    ({ mkDerivation, attoparsec, base, bifunctors, colour, containers
-     , foldl, generic-lens, javascript-bridge, JuicyPixels, lens, lucid
-     , lucid-svg, numhask-space, palette, 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.1";
-       sha256 = "1mdvqvj5bj04vgfl7wv64kbx096hrlhwr78jxg2mdnhhzr4xciq6";
+       version = "0.1.3";
+       sha256 = "0b3hpxm7xjw8pjhpcla46jdsjhqxxb3ga0jmmj97wn6w971yphi1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         attoparsec base bifunctors colour foldl generic-lens JuicyPixels
-         lens lucid lucid-svg numhask-space palette 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;
@@ -51684,8 +52754,8 @@ self: {
     ({ mkDerivation, array, base, QuickCheck, random, semigroupoids }:
      mkDerivation {
        pname = "checkers";
-       version = "0.5.5";
-       sha256 = "1g16603803xzz73md1azlcpd6xz7gkwjpy66l638v6lvipdl9hr9";
+       version = "0.5.6";
+       sha256 = "1b82dz295h37pi6bnkr4r18gkvavrwvsig15955i8hh1rcn2msaz";
        libraryHaskellDepends = [
          array base QuickCheck random semigroupoids
        ];
@@ -51787,8 +52857,8 @@ self: {
      }:
      mkDerivation {
        pname = "chessIO";
-       version = "0.3.1.1";
-       sha256 = "05jwz1nq5wiqdpnwn31wyc4gpryh9b4qzil4rkgx7vhavck2w1ap";
+       version = "0.3.1.2";
+       sha256 = "0x79cgngxbrk43f28pprqq85n54cg2i2chhpycdcnkx16iva5bbf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -52231,14 +53301,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
@@ -52251,6 +53321,8 @@ self: {
        pname = "chronos";
        version = "1.1.1";
        sha256 = "10nxhnj5y984c3mf2wkc2zl6afbph0b0vj7f722g0yp7cq4908yj";
+       revision = "1";
+       editedCabalFile = "0yspjcgnzl8kvfw6lgndkd2m4cp1s5gvga0kfm5fbrf0g8kwhns8";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring hashable primitive semigroups text
          torsor vector
@@ -52569,6 +53641,8 @@ self: {
        pname = "cipher-aes128";
        version = "0.7.0.5";
        sha256 = "1bafr5aa9mjfzdgc6gwapvb9g04pyh4lwhv2x2m1v3ljjglg9d1w";
+       revision = "1";
+       editedCabalFile = "0miqp8jvgsqkgj5rxb2vjwa24ac5kdyy3b2cwxb9z0wk1ixk5ilm";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal process ];
@@ -52728,8 +53802,8 @@ self: {
        pname = "circle-packing";
        version = "0.1.0.6";
        sha256 = "06z8irwrjxxgk5xqlpy6a9mjl44kp9pgx2xpslhgxrd31nll9vk4";
-       revision = "3";
-       editedCabalFile = "0rcv84a6bp6dll8df4pfmjl03cm87hrlrf6mbig26ifp9ql4542m";
+       revision = "4";
+       editedCabalFile = "1jp1b6l5v1llmggy316s4bb78wjvgq8iya0i2zz4k5v6l5dl8ln2";
        libraryHaskellDepends = [ base ];
        description = "Simple heuristic for packing discs of varying radii in a circle";
        license = stdenv.lib.licenses.bsd3;
@@ -52782,6 +53856,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "circular" = callPackage
+    ({ mkDerivation, aeson, base, criterion, hspec, hspec-discover
+     , QuickCheck, quickcheck-instances, vector
+     }:
+     mkDerivation {
+       pname = "circular";
+       version = "0.1.1";
+       sha256 = "0kj9sfal78k0ba5djq10xddy2h8lq0grf5cknwcr96j555nlwhk9";
+       libraryHaskellDepends = [ aeson base vector ];
+       testHaskellDepends = [
+         aeson base hspec hspec-discover QuickCheck quickcheck-instances
+         vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [ aeson base criterion vector ];
+       description = "Circular fixed-sized mutable vectors";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "cirru-parser" = callPackage
     ({ mkDerivation, aeson, base, text, vector }:
      mkDerivation {
@@ -52949,13 +54042,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;
@@ -52965,8 +54058,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;
@@ -52976,8 +54069,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;
@@ -53190,9 +54283,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
@@ -53200,12 +54293,12 @@ self: {
      }:
      mkDerivation {
        pname = "clash-ghc";
-       version = "1.2.1";
-       sha256 = "0bczw02kgpiczagnv2aq2yjj0g2619gl8dzwpzsvfz5r1p8kp6f3";
+       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
@@ -53222,16 +54315,18 @@ self: {
      , bytestring, clash-prelude, concurrent-supply, containers
      , data-binary-ieee754, data-default, deepseq, directory, dlist
      , errors, exceptions, extra, filepath, ghc, ghc-boot-th
-     , ghc-typelits-knownnat, hashable, haskell-src-meta, hint
-     , integer-gmp, interpolate, lens, mtl, ordered-containers, parsers
-     , prettyprinter, primitive, process, reducers, tasty, tasty-hunit
-     , template-haskell, temporary, text, text-show, time, transformers
-     , trifecta, unordered-containers, vector, vector-binary-instances
+     , ghc-typelits-knownnat, hashable, haskell-src-exts
+     , haskell-src-meta, hint, integer-gmp, interpolate, lens, mtl
+     , ordered-containers, parsers, prettyprinter, primitive, process
+     , reducers, tasty, tasty-hunit, template-haskell, temporary
+     , terminal-size, text, text-show, time, transformers, trifecta
+     , unordered-containers, utf8-string, vector
+     , vector-binary-instances
      }:
      mkDerivation {
        pname = "clash-lib";
-       version = "1.2.1";
-       sha256 = "1l6xibxbkfz91wkl55548wv48gba6n4pmbymb1fbhs43nx3hssil";
+       version = "1.2.4";
+       sha256 = "147cahsid3l6ff8d96ndzli1v79i9lbmad0bkmy0s5vcbgp90q7c";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson ansi-terminal attoparsec base binary bytestring clash-prelude
@@ -53239,12 +54334,14 @@ self: {
          deepseq directory dlist errors exceptions extra filepath ghc
          ghc-boot-th hashable haskell-src-meta hint integer-gmp interpolate
          lens mtl ordered-containers parsers prettyprinter primitive process
-         reducers template-haskell temporary text text-show time
-         transformers trifecta unordered-containers vector
+         reducers template-haskell temporary terminal-size text text-show
+         time transformers trifecta unordered-containers utf8-string vector
          vector-binary-instances
        ];
        testHaskellDepends = [
-         base clash-prelude ghc ghc-typelits-knownnat lens tasty tasty-hunit
+         base clash-prelude concurrent-supply containers data-default
+         deepseq ghc ghc-typelits-knownnat haskell-src-exts lens tasty
+         tasty-hunit template-haskell text transformers unordered-containers
        ];
        description = "CAES Language for Synchronous Hardware - As a Library";
        license = stdenv.lib.licenses.bsd2;
@@ -53272,24 +54369,25 @@ self: {
      , data-binary-ieee754, data-default-class, deepseq, doctest
      , ghc-prim, ghc-typelits-extra, ghc-typelits-knownnat
      , ghc-typelits-natnormalise, half, hashable, hint, integer-gmp
-     , lens, QuickCheck, quickcheck-classes-base, recursion-schemes
-     , reflection, singletons, tasty, tasty-hunit, tasty-quickcheck
-     , template-haskell, text, text-show, th-abstraction, th-lift
-     , th-orphans, time, transformers, type-errors, vector
+     , interpolate, lens, QuickCheck, quickcheck-classes-base
+     , recursion-schemes, reflection, singletons, tasty, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, text-show
+     , th-abstraction, th-lift, th-orphans, time, transformers
+     , type-errors, uniplate, vector
      }:
      mkDerivation {
        pname = "clash-prelude";
-       version = "1.2.1";
-       sha256 = "18smrj545fvry8wj0hvawwcwc9yf1h1nsyyl337yh7xnxq9bycsy";
+       version = "1.2.4";
+       sha256 = "1yizprs6i4y2vyhjj6pvpd5xmdbxyqjwclk6saaws0g3xv008ffg";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          array base bifunctors binary bytestring constraints containers
          data-binary-ieee754 data-default-class deepseq ghc-prim
          ghc-typelits-extra ghc-typelits-knownnat ghc-typelits-natnormalise
-         half hashable integer-gmp lens QuickCheck recursion-schemes
-         reflection singletons template-haskell text text-show
-         th-abstraction th-lift th-orphans time transformers type-errors
-         vector
+         half hashable integer-gmp interpolate lens QuickCheck
+         recursion-schemes reflection singletons template-haskell text
+         text-show th-abstraction th-lift th-orphans time transformers
+         type-errors uniplate vector
        ];
        testHaskellDepends = [
          base doctest ghc-typelits-knownnat hint quickcheck-classes-base
@@ -53579,8 +54677,8 @@ self: {
      }:
      mkDerivation {
        pname = "clckwrks";
-       version = "0.25.5";
-       sha256 = "1sis7xqvnbaqw513xibzrfyvhbcfsg7yz6syd3lx9rqz26b1byih";
+       version = "0.26.0";
+       sha256 = "0yjw0kk241qbh2z6248savy3a99asd3smva1qbplga31232a8025";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          acid-state aeson aeson-qq attoparsec base blaze-html bytestring
@@ -53607,8 +54705,8 @@ self: {
      }:
      mkDerivation {
        pname = "clckwrks-cli";
-       version = "0.3.0.2";
-       sha256 = "0gan0x38ymi9s0bxv34girdh6pz2dy797yrifnzkv9p8gnlh0648";
+       version = "0.3.0.3";
+       sha256 = "03dyhfnmqhqjahd36cdhjvrqp68grzvdl69cqk2z2aa34z0agd4a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -53735,16 +54833,15 @@ self: {
      }:
      mkDerivation {
        pname = "clckwrks-plugin-media";
-       version = "0.6.16.8";
-       sha256 = "0l6rb5gjag9mxcn067yp3h0bd37jg18p3sg79gkf2pzkxyzhgwqk";
+       version = "0.6.16.9";
+       sha256 = "025zxvb3qynqsl39rnsvfyr7wrpfymmhc120nspd46sv4pvqmgvb";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          acid-state attoparsec base blaze-html cereal clckwrks containers
-         directory filepath gd happstack-server hsp ixset magic mtl reform
-         reform-happstack reform-hsp safecopy text web-plugins web-routes
-         web-routes-th
+         directory filepath gd happstack-server hsp hsx2hs ixset magic mtl
+         reform reform-happstack reform-hsp safecopy text web-plugins
+         web-routes web-routes-th
        ];
-       libraryToolDepends = [ hsx2hs ];
        description = "media plugin for clckwrks";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -53761,8 +54858,8 @@ self: {
      }:
      mkDerivation {
        pname = "clckwrks-plugin-page";
-       version = "0.4.3.20";
-       sha256 = "0w1vyw5jvypbha4i5m7f7kpwmyqarm9wzdklldabx41cm3ab48li";
+       version = "0.4.3.22";
+       sha256 = "00ad6ricd8jrjs7l5l2pg3k87x1cjm0x5zlgppzknns4xzjldips";
        libraryHaskellDepends = [
          acid-state aeson attoparsec base clckwrks containers directory
          filepath happstack-hsp happstack-server hsp hsx2hs ixset mtl
@@ -53784,8 +54881,8 @@ self: {
      }:
      mkDerivation {
        pname = "clckwrks-theme-bootstrap";
-       version = "0.4.2.2";
-       sha256 = "0sa3k34m1kf6r7i42rfg5v3g1m9drisfnn2bvlfcbyk8sna7mf80";
+       version = "0.4.2.3";
+       sha256 = "1a00rrb49m358ds408wzm40f6g98w1lnd70rhp4jpkirj94bmaz4";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base clckwrks happstack-authenticate hsp hsx-jmacro hsx2hs jmacro
@@ -54089,8 +55186,8 @@ self: {
      }:
      mkDerivation {
        pname = "climb";
-       version = "0.3.1";
-       sha256 = "0d9f0h0zk9ga349bvdaq6ch9xi3hynadi6r4mcmy7hcigckk2j7r";
+       version = "0.3.3";
+       sha256 = "0d6jscwbjlm21jcdl29c3ix6vd5ly9mjr0ljchzkr6yk7gqk4z24";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -54439,8 +55536,8 @@ self: {
      }:
      mkDerivation {
        pname = "cloudi";
-       version = "1.8.0";
-       sha256 = "0j98dbyhc845y26abyp8sdcajpxvpsjcqrmcls4jnb4bhnz21jkc";
+       version = "2.0.0";
+       sha256 = "0jkikp92k6pdqpa0c2mda81pplshyn7rdw1g2h2hhpjjg0g9npd1";
        libraryHaskellDepends = [
          array base binary bytestring containers network time unix zlib
        ];
@@ -54899,18 +55996,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;
@@ -55179,6 +56277,8 @@ self: {
        pname = "co-log-core";
        version = "0.2.1.1";
        sha256 = "04w8j39n1cfmzvvllbjj21w7g53lgppf5crk7n4i9hgspaxbwyik";
+       revision = "1";
+       editedCabalFile = "1mib449rp5g02f62nl4phfgjm4f8dj5v6qwxyx0cccglkiccn28j";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base doctest Glob ];
        description = "Composable Contravariant Comonadic Logging Library";
@@ -55274,8 +56374,8 @@ self: {
      }:
      mkDerivation {
        pname = "cobot-io";
-       version = "0.1.3.3";
-       sha256 = "0b4ihkghgzln8rz2czbmagcnzsi3gdsx99d29s74izbib4laxqqm";
+       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
@@ -55510,8 +56610,8 @@ self: {
      }:
      mkDerivation {
        pname = "codeworld-api";
-       version = "0.5.0";
-       sha256 = "17s1353jk5l93hxv7wnnf4hxzw0ds1gq16kxkf7ig985141cah1n";
+       version = "0.6.0";
+       sha256 = "1m1kqr8gniqcxc3s8yvk4rb2v0cg7wl0m3dam3g4ida2i8r5p22a";
        libraryHaskellDepends = [
          aeson base base64-bytestring blank-canvas bytestring cereal
          cereal-text containers deepseq dependent-sum ghc-prim hashable
@@ -56089,8 +57189,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "colorful-monoids";
-       version = "0.2.1.2";
-       sha256 = "0y35f21n8xh1xq8i0anbfx034m5wnwhp2ka47vvi3w0iw13zyhhb";
+       version = "0.2.1.3";
+       sha256 = "0yan2vxjdcal7zdh12m5yblcl9d1wcgjr09d3g64p09wdh82y6rq";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "Styled console text output using ANSI escape sequences";
@@ -56251,23 +57351,11 @@ self: {
     ({ mkDerivation, ansi-terminal, base, bytestring, text }:
      mkDerivation {
        pname = "colourista";
-       version = "0.0.0.0";
-       sha256 = "15nzcy3q8iivghprzsvy5l6c98ir085v6nhyymwy2ar0fnhx4hdi";
-       libraryHaskellDepends = [ ansi-terminal base bytestring text ];
-       description = "Convenient interface for printing colourful messages";
-       license = stdenv.lib.licenses.mpl20;
-     }) {};
-
-  "colourista_0_1_0_0" = callPackage
-    ({ mkDerivation, ansi-terminal, base, bytestring, text }:
-     mkDerivation {
-       pname = "colourista";
        version = "0.1.0.0";
        sha256 = "1iglvl6k8vrq45h5r8r2ng575dgg30jfw1zq19zld72914mmvjdz";
        libraryHaskellDepends = [ ansi-terminal base bytestring text ];
        description = "Convenient interface for printing colourful messages";
        license = stdenv.lib.licenses.mpl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "coltrane" = callPackage
@@ -56686,15 +57774,20 @@ self: {
      }) {};
 
   "commander-cli" = callPackage
-    ({ mkDerivation, base, mtl, text, unordered-containers }:
+    ({ mkDerivation, base, bytestring, directory, mtl, process, text
+     , unordered-containers
+     }:
      mkDerivation {
        pname = "commander-cli";
-       version = "0.1.0.0";
-       sha256 = "1ix0pjcq7khpc9b7f9j44akgfdlcssqhqmflsgvqyw5m8bg4qkrd";
+       version = "0.7.0.0";
+       sha256 = "1xrlgfyq59g7x7msrwl58bzg108jkxk0k5sra8la7zwpx46ach4z";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base mtl text unordered-containers ];
-       executableHaskellDepends = [ base mtl text ];
+       libraryHaskellDepends = [
+         base bytestring mtl text unordered-containers
+       ];
+       executableHaskellDepends = [ base directory mtl process text ];
+       testHaskellDepends = [ base text unordered-containers ];
        description = "A command line argument/option parser library built around a monadic metaphor";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -56724,6 +57817,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
@@ -56786,6 +57960,8 @@ self: {
        pname = "comonad";
        version = "5.0.6";
        sha256 = "1blgp2nm9cvnsdi2bmkmly5m0gz91npjvf1i5j4pnx6imhbb1kvp";
+       revision = "1";
+       editedCabalFile = "19744zfb5nd90a3xnhl7fx9aik39nwwx9sf7k9aahrcplwlvbwgx";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base containers distributive tagged transformers
@@ -56926,6 +58102,18 @@ self: {
        broken = true;
      }) {};
 
+  "compact-sequences" = callPackage
+    ({ mkDerivation, base, containers, primitive, transformers }:
+     mkDerivation {
+       pname = "compact-sequences";
+       version = "0.1.0.0";
+       sha256 = "148zjnnnn82vgn4ybs5z6nx9xv2wd73q2cavaa2nyjn1kcqqw7a8";
+       libraryHaskellDepends = [ base containers primitive transformers ];
+       testHaskellDepends = [ base ];
+       description = "Stacks and queues with compact representations";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "compact-socket" = callPackage
     ({ mkDerivation, base, binary, bytestring, compact, deepseq
      , directory, filepath, network, unix
@@ -57353,8 +58541,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-aeson";
-       version = "0.7.1.0";
-       sha256 = "1jv9frfv1ixqyby8zgldp2nkc051fnz0nqwcrnk1mqhav7rf3ilx";
+       version = "0.7.3.0";
+       sha256 = "0wb15vq95kf6jigfy0n3jampnx8xmkxmh2lnxgfsc8zac9hwls55";
        libraryHaskellDepends = [
          aeson aeson-better-errors base composite-base containers
          contravariant generic-deriving hashable lens mmorph mtl profunctors
@@ -57379,8 +58567,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-aeson-refined";
-       version = "0.7.1.0";
-       sha256 = "12nqw9mg25vblz5my5rrd0w2nwgpvykw0nnlmaibpj7z5z5fnfv6";
+       version = "0.7.3.0";
+       sha256 = "0g0i8zwky1ygniyxpvgl1r78b4qak1mx1wpy2pj815zrd43x1y60";
        libraryHaskellDepends = [
          aeson-better-errors base composite-aeson mtl refined
        ];
@@ -57397,8 +58585,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-base";
-       version = "0.7.1.0";
-       sha256 = "11sbpl43z65gkafz0y69b33irg51ag4hjg7yswaqiwv1b6qn80w4";
+       version = "0.7.3.0";
+       sha256 = "07zbs89cqm7b78jfh2lwma3spsklc6wq0f58g14p27wgm253xkwp";
        libraryHaskellDepends = [
          base exceptions lens monad-control mtl profunctors template-haskell
          text transformers transformers-base unliftio-core vinyl
@@ -57419,8 +58607,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-ekg";
-       version = "0.7.1.0";
-       sha256 = "1w2vlbzaxrxj95q3k2vmvzd34d51cz1pj4fv3x34icmp4rx92qvz";
+       version = "0.7.3.0";
+       sha256 = "1402ay8gxqp1fh2ija9ry5g366p5vx64ikmfal9hr2c42c2kmcf9";
        libraryHaskellDepends = [
          base composite-base ekg-core lens text vinyl
        ];
@@ -57437,8 +58625,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-opaleye";
-       version = "0.7.1.0";
-       sha256 = "1p5nrq5i5ssdiqy38p0qraig8r3z1djfa2hrb7wg5pandiplngr8";
+       version = "0.7.3.0";
+       sha256 = "0b9h0z4v0268qgcwq53p59nkwbbg77dqm9snr4zif71xhmlfscpx";
        libraryHaskellDepends = [
          base bytestring composite-base lens opaleye postgresql-simple
          product-profunctors profunctors template-haskell text vinyl
@@ -57461,8 +58649,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-swagger";
-       version = "0.7.1.0";
-       sha256 = "0npzy42ls7r8i4zldkn3569l5nfdcm905mycd5zda7pkjyyi36q4";
+       version = "0.7.3.0";
+       sha256 = "1gzmksq2dfywird7gyjc95v3spgxsab3jbakg5il2fmkx35cc1za";
        libraryHaskellDepends = [
          base composite-base insert-ordered-containers lens swagger2
          template-haskell text vinyl
@@ -57985,31 +59173,14 @@ self: {
      }:
      mkDerivation {
        pname = "concurrency";
-       version = "1.8.1.0";
-       sha256 = "0nw5i85lzh03ppcprzpvrlp3bmdam1z50bp7ddq9mp2ycyjbvrp5";
-       libraryHaskellDepends = [
-         array atomic-primops base exceptions monad-control mtl stm
-         transformers
-       ];
-       description = "Typeclasses, functions, and data types for concurrency and STM";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "concurrency_1_9_0_0" = callPackage
-    ({ mkDerivation, array, atomic-primops, base, exceptions
-     , monad-control, mtl, stm, transformers
-     }:
-     mkDerivation {
-       pname = "concurrency";
-       version = "1.9.0.0";
-       sha256 = "1bmj1g9dnjj6390ky1xkddb1azff1ibphaiyyy2dix351m9dhc3s";
+       version = "1.11.0.0";
+       sha256 = "19a4za0c65gi2a5n882nyi26cgxrsry64rkd3qiqhvzf7m34cjxd";
        libraryHaskellDepends = [
          array atomic-primops base exceptions monad-control mtl stm
          transformers
        ];
        description = "Typeclasses, functions, and data types for concurrency and STM";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "concurrency-benchmarks" = callPackage
@@ -58173,8 +59344,8 @@ self: {
      }:
      mkDerivation {
        pname = "concurrent-output";
-       version = "1.10.11";
-       sha256 = "1d1aaqg5814k59b0iws3fh06p3g2siaj922gkhs75qgncj0my2p3";
+       version = "1.10.12";
+       sha256 = "081wpag1d5znr0ynrjvkc14xl816m88vz9hgfm3g3sp6ak7s3y47";
        libraryHaskellDepends = [
          ansi-terminal async base directory exceptions process stm
          terminal-size text transformers unix
@@ -58910,17 +60081,17 @@ self: {
 
   "conduit-zstd" = callPackage
     ({ mkDerivation, base, bytestring, conduit, conduit-combinators
-     , conduit-extra, directory, HUnit, test-framework
-     , test-framework-hunit, test-framework-th, zstd
+     , conduit-extra, directory, quickcheck-instances, tasty
+     , tasty-quickcheck, zstd
      }:
      mkDerivation {
        pname = "conduit-zstd";
-       version = "0.0.1.1";
-       sha256 = "04h7w2903hgw4gjcx2pg29yinnmfapawvc19hd3r57rr12fzb0c6";
+       version = "0.0.2.0";
+       sha256 = "0f0ir4zs3skw33c8mfppxhfsyqh1c2cnc4gkf8bvv3bdiikdj1yl";
        libraryHaskellDepends = [ base bytestring conduit zstd ];
        testHaskellDepends = [
          base bytestring conduit conduit-combinators conduit-extra directory
-         HUnit test-framework test-framework-hunit test-framework-th zstd
+         quickcheck-instances tasty tasty-quickcheck zstd
        ];
        description = "Conduit-based ZStd Compression";
        license = stdenv.lib.licenses.mit;
@@ -59003,26 +60174,8 @@ self: {
      }:
      mkDerivation {
        pname = "conferer";
-       version = "0.2.0.0";
-       sha256 = "0r666jc016pcpsflxh9lvkxv6fmhnb7agn96gixy8fq3hbksri1v";
-       libraryHaskellDepends = [
-         base bytestring containers directory text
-       ];
-       testHaskellDepends = [
-         base bytestring containers deepseq directory hspec text
-       ];
-       description = "Configuration management library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "conferer_0_3_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, directory
-     , hspec, text
-     }:
-     mkDerivation {
-       pname = "conferer";
-       version = "0.3.0.0";
-       sha256 = "0irbi1b5fwxcm68a8dbh6qhl2sin998qv8pazw574a3s4z38slv5";
+       version = "0.4.1.1";
+       sha256 = "1fi3sflfkzgxzjv5s0w6ja9dqrlc72lli382j6phqdw3h4qja10d";
        libraryHaskellDepends = [
          base bytestring containers directory text
        ];
@@ -59030,20 +60183,19 @@ self: {
          base bytestring containers deepseq directory hspec text
        ];
        description = "Configuration management library";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
+       license = stdenv.lib.licenses.mpl20;
      }) {};
 
   "conferer-hedis" = callPackage
     ({ mkDerivation, base, conferer, hedis, hspec, text }:
      mkDerivation {
        pname = "conferer-hedis";
-       version = "0.3.0.0";
-       sha256 = "1d5y15xlsmvj5vbfyp5hmx3zjrwyz58q08aq3w90ia4pi206sq1l";
+       version = "0.4.0.1";
+       sha256 = "0drsyagkdzlkrrq0x43j72804x1i3p4b9pjyqff5jdrr8h9jrv37";
        libraryHaskellDepends = [ base conferer hedis text ];
        testHaskellDepends = [ base conferer hedis hspec text ];
        description = "conferer's FromConfig instances for hedis settings";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.mpl20;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -59052,25 +60204,12 @@ self: {
     ({ mkDerivation, base, conferer, hspec, hspec-core, text }:
      mkDerivation {
        pname = "conferer-hspec";
-       version = "0.2.0.0";
-       sha256 = "1gqll6ag2bgf05z1jsh5z5m8srz5zq6j9c29zbrdbk2smpp5qgz8";
-       libraryHaskellDepends = [ base conferer hspec-core text ];
-       testHaskellDepends = [ base conferer hspec hspec-core text ];
-       description = "conferer's FromConfig instances for hspec Config";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "conferer-hspec_0_3_0_0" = callPackage
-    ({ mkDerivation, base, conferer, hspec, hspec-core, text }:
-     mkDerivation {
-       pname = "conferer-hspec";
-       version = "0.3.0.0";
-       sha256 = "0vgg0fadcd3xkjrjrvvwl6ybxp6sccr82rjdxswrr0x38c5q42xz";
+       version = "0.4.0.1";
+       sha256 = "1g2dglsvj7caqrvbg1yc08j98ljf71l885kxmmk469ab07j1c5sz";
        libraryHaskellDepends = [ base conferer hspec-core text ];
        testHaskellDepends = [ base conferer hspec hspec-core text ];
        description = "conferer's FromConfig instances for hspec Config";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
+       license = stdenv.lib.licenses.mpl20;
      }) {};
 
   "conferer-provider-dhall" = callPackage
@@ -59101,26 +60240,6 @@ self: {
      }:
      mkDerivation {
        pname = "conferer-provider-json";
-       version = "0.2.0.0";
-       sha256 = "1lb1933r852jm8rf8fn7srhsrggibdissrsnwq7ffbk5l64kcd2v";
-       libraryHaskellDepends = [
-         aeson base bytestring conferer directory text unordered-containers
-         vector
-       ];
-       testHaskellDepends = [
-         aeson aeson-qq base bytestring conferer directory hspec text
-         unordered-containers vector
-       ];
-       description = "conferer's provider for reading json files";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "conferer-provider-json_0_3_0_0" = callPackage
-    ({ mkDerivation, aeson, aeson-qq, base, bytestring, conferer
-     , directory, hspec, text, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "conferer-provider-json";
        version = "0.3.0.0";
        sha256 = "0jrq1cpfhlyq9dvnf4kmx3wqjwz7x18g0hwbg4gkv12spjffpnc9";
        libraryHaskellDepends = [
@@ -59134,6 +60253,7 @@ self: {
        description = "conferer's provider for reading json files";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "conferer-provider-yaml" = callPackage
@@ -59162,8 +60282,8 @@ self: {
      }:
      mkDerivation {
        pname = "conferer-snap";
-       version = "0.3.0.0";
-       sha256 = "19kw9g0f7znc7as6nhjvnx5kypd71ygr5ialhk4pfjva3bp121ij";
+       version = "0.4.0.1";
+       sha256 = "1z5p8zchykp8fc7lag3mi32z4wzb0bxcw5p4j3ya57bqs2xhhsdd";
        libraryHaskellDepends = [
          base conferer snap-core snap-server text
        ];
@@ -59171,40 +60291,81 @@ self: {
          base conferer hspec snap-core snap-server text
        ];
        description = "conferer's FromConfig instances for snap Config";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.mpl20;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
-  "conferer-warp" = callPackage
-    ({ mkDerivation, base, conferer, hspec, http-types, text, wai, warp
+  "conferer-source-dhall" = callPackage
+    ({ mkDerivation, base, bytestring, conferer, conferer-source-json
+     , dhall, dhall-json, directory, hspec, text
      }:
      mkDerivation {
-       pname = "conferer-warp";
-       version = "0.2.0.0";
-       sha256 = "1ajymzh3jz0ffkaviacl4qdm7n7i8lswkk158vhrhqabpyqpxy6r";
-       libraryHaskellDepends = [ base conferer http-types text wai warp ];
+       pname = "conferer-source-dhall";
+       version = "0.4.0.1";
+       sha256 = "00i3sk948bg6brf97m41n9s4da4m25n220l5gkddb589li0lq0rk";
+       libraryHaskellDepends = [
+         base bytestring conferer conferer-source-json dhall dhall-json
+         directory text
+       ];
        testHaskellDepends = [
-         base conferer hspec http-types text wai warp
+         base bytestring conferer conferer-source-json dhall dhall-json
+         directory hspec text
        ];
-       description = "conferer's FromConfig instances for warp settings";
-       license = stdenv.lib.licenses.bsd3;
+       description = "Configuration for reading dhall files";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
+  "conferer-source-json" = callPackage
+    ({ mkDerivation, aeson, aeson-qq, base, bytestring, conferer
+     , directory, hspec, text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "conferer-source-json";
+       version = "0.4.0.1";
+       sha256 = "01kfm771qks7b66z0nlv2b108r002xv8bzacr9p6ih7nsbcbiqdn";
+       libraryHaskellDepends = [
+         aeson base bytestring conferer directory text unordered-containers
+         vector
+       ];
+       testHaskellDepends = [
+         aeson aeson-qq base bytestring conferer directory hspec text
+         unordered-containers vector
+       ];
+       description = "conferer's source for reading json files";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
+  "conferer-source-yaml" = callPackage
+    ({ mkDerivation, base, conferer, conferer-source-json, hspec, yaml
+     }:
+     mkDerivation {
+       pname = "conferer-source-yaml";
+       version = "0.4.0.1";
+       sha256 = "0ydciicxd7lxz2b6jmcc8ipyp99rp9gr9s2s2fnhmnhjv0xw6d7a";
+       libraryHaskellDepends = [
+         base conferer conferer-source-json yaml
+       ];
+       testHaskellDepends = [
+         base conferer conferer-source-json hspec yaml
+       ];
+       description = "Configuration for reading yaml files";
+       license = stdenv.lib.licenses.mpl20;
      }) {};
 
-  "conferer-warp_0_3_0_0" = callPackage
+  "conferer-warp" = callPackage
     ({ mkDerivation, base, conferer, hspec, http-types, text, wai, warp
      }:
      mkDerivation {
        pname = "conferer-warp";
-       version = "0.3.0.0";
-       sha256 = "19rld3xl4mfzl08wyciwh9amfcadnbn0rgjxvdy2s0vgk3nj7677";
+       version = "0.4.0.1";
+       sha256 = "1swvrkfqvpnpw2nihqzgn8rxv0pfbc9cl8wlyfshrqirjm0lhbj3";
        libraryHaskellDepends = [ base conferer http-types text wai warp ];
        testHaskellDepends = [
          base conferer hspec http-types text wai warp
        ];
        description = "conferer's FromConfig instances for warp settings";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
+       license = stdenv.lib.licenses.mpl20;
      }) {};
 
   "confetti" = callPackage
@@ -59436,6 +60597,8 @@ self: {
        pname = "configuration-tools";
        version = "0.5.0";
        sha256 = "0pgx2wzzqxgafgf3qjys05hp89lz4fwczsx0i581n8ngs3p4i0wh";
+       revision = "1";
+       editedCabalFile = "0srscnmj5dhaq0djx0lhcggl53ipn6pw8vgsvgzhhjrbmnn2zb2p";
        setupHaskellDepends = [
          base bytestring Cabal directory filepath process
        ];
@@ -59696,18 +60859,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;
@@ -59794,7 +60957,7 @@ self: {
        version = "0.1.0.1";
        sha256 = "16s8y035f30gyla620diwnsqi8lbmmfyxjpj4dlq24d45k5wfnsd";
        libraryHaskellDepends = [ attoparsec base bytestring vector ];
-       description = "Parse ByteStrings of a prescribed length.";
+       description = "Parse ByteStrings of a prescribed length";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -59895,7 +61058,7 @@ self: {
          base containers criterion deepseq nat-sized-numbers QuickCheck
          smallcheck transformers vector
        ];
-       description = "Typeclasses and instances for monads with constraints.";
+       description = "Typeclasses and instances for monads with constraints";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -59993,25 +61156,6 @@ self: {
      }:
      mkDerivation {
        pname = "constraints";
-       version = "0.11.2";
-       sha256 = "10mnhg7p5gk4i3bzldl07qkrihnvmfkgsp32w7p9i7x8cmj5akjq";
-       libraryHaskellDepends = [
-         base binary deepseq ghc-prim hashable mtl semigroups transformers
-         transformers-compat type-equality
-       ];
-       testHaskellDepends = [ base hspec ];
-       testToolDepends = [ hspec-discover ];
-       description = "Constraint manipulation";
-       license = stdenv.lib.licenses.bsd2;
-     }) {};
-
-  "constraints_0_12" = callPackage
-    ({ mkDerivation, base, binary, deepseq, ghc-prim, hashable, hspec
-     , hspec-discover, mtl, semigroups, transformers
-     , transformers-compat, type-equality
-     }:
-     mkDerivation {
-       pname = "constraints";
        version = "0.12";
        sha256 = "08q2fq2xy2ija164k5a178jjffdii57nrx2x9ddz24zh2ld56szj";
        libraryHaskellDepends = [
@@ -60022,7 +61166,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Constraint manipulation";
        license = stdenv.lib.licenses.bsd2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "constraints-deriving" = callPackage
@@ -60068,6 +61211,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 ];
@@ -60090,17 +61235,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 = [
@@ -60111,6 +61256,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
@@ -60179,6 +61326,8 @@ self: {
        pname = "consumers";
        version = "2.2.0.2";
        sha256 = "0nml5hn6n95ngy1qvj6w4rkwa8r6qax0nc2vgimk68bawv4z97qd";
+       revision = "1";
+       editedCabalFile = "150f62zfb5kpa8iwp08fq9gdmv142swfldkjrrjyx0jpvf6qcjxc";
        libraryHaskellDepends = [
          base containers exceptions extra hpqtypes lifted-base
          lifted-threads log-base monad-control monad-time mtl stm time
@@ -60246,12 +61395,12 @@ 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;
@@ -60292,8 +61441,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;
@@ -60340,6 +61489,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
@@ -60388,6 +61552,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 {
@@ -60403,6 +61598,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
@@ -60410,8 +61623,8 @@ self: {
      }:
      mkDerivation {
        pname = "contiguous";
-       version = "0.5";
-       sha256 = "0nz3ssh0zc8rs67mk8fmc8plvbjac6mlxdmzk9fw8sj2vx2ssisq";
+       version = "0.5.1";
+       sha256 = "1y02gqgd012zggs7kqxkky0prmbl0k9ji5ynb74i5mym88xrj67h";
        libraryHaskellDepends = [
          base deepseq primitive primitive-unlifted
        ];
@@ -60675,14 +61888,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;
      }) {};
@@ -61284,8 +62497,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
@@ -61321,8 +62534,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
@@ -61340,8 +62553,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
@@ -61413,21 +62626,26 @@ 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
-    ({ mkDerivation, base, HTF, lens, mtl, template-haskell
-     , th-abstraction, transformers
+    ({ mkDerivation, base-noprelude, either, HTF, lens, lifted-base
+     , monad-control, mtl, relude, template-haskell, th-abstraction
+     , transformers
      }:
      mkDerivation {
        pname = "cornea";
-       version = "0.2.2.0";
-       sha256 = "0b33599clz9cxlqhci8xlizhqzslw7k0mv60g04vf8b5pj3q2zyk";
+       version = "0.3.0.1";
+       sha256 = "0kdj6ii6k8x9i87vgfl2cjlwkj4vls09w781xab6ix7h264asi71";
        libraryHaskellDepends = [
-         base lens mtl template-haskell th-abstraction transformers
+         base-noprelude either lens lifted-base monad-control mtl relude
+         template-haskell th-abstraction transformers
        ];
        testHaskellDepends = [
-         base HTF lens mtl template-haskell th-abstraction transformers
+         base-noprelude either HTF lens lifted-base monad-control mtl relude
+         template-haskell th-abstraction transformers
        ];
        description = "classy optical monadic state";
        license = "unknown";
@@ -61641,16 +62859,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
@@ -61742,8 +62960,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
        ];
@@ -61802,8 +63020,10 @@ self: {
      }:
      mkDerivation {
        pname = "cpkg";
-       version = "0.2.5.3";
-       sha256 = "0fdwjpkjwdixcb3r265z3dnrsrzcfh513lv6wxmgd63507j29njf";
+       version = "0.2.5.6";
+       sha256 = "1fvwvaqd9nn4pnblyi874kwb450h85gg2afa6khp4vsz1bybc8ch";
+       revision = "1";
+       editedCabalFile = "07scy0rvrinfiwj4l7gfwi8srnrp3v5w0pbjsqsp738akmlbbgna";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -61820,6 +63040,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
@@ -61928,8 +63150,8 @@ self: {
     ({ mkDerivation, base, containers, directory, parallel }:
      mkDerivation {
        pname = "cpsa";
-       version = "3.6.5";
-       sha256 = "03qf4gd28097ra0vndizxxdqvqdgl4p3cl41w9r0rfcw4367bzjf";
+       version = "3.6.6";
+       sha256 = "1mg85yjx4fjsnzfmbz0gh78agis44nqqmnc8rwdqkrp6vka1v9ks";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -62748,6 +63970,8 @@ self: {
        pname = "criterion-compare";
        version = "0.1.0.0";
        sha256 = "034cm3hap9x6cwp44hrd03b09mifcm076a9pn3lgql5ardx91yl7";
+       revision = "1";
+       editedCabalFile = "0nzwqk0mrchrymbmim2542s37i3dvvs5ks25839z9x0fp6gpxiq6";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -62914,28 +64138,6 @@ self: {
      }:
      mkDerivation {
        pname = "cron";
-       version = "0.6.2";
-       sha256 = "14g4vndj5i1gjg6nbd6h04rzajijflwxzkgnjalsjjfd6fmrny5h";
-       libraryHaskellDepends = [
-         attoparsec base data-default-class mtl mtl-compat old-locale
-         semigroups text time
-       ];
-       testHaskellDepends = [
-         attoparsec base hedgehog semigroups tasty tasty-hedgehog
-         tasty-hunit text time transformers-compat
-       ];
-       benchmarkHaskellDepends = [ attoparsec base criterion text time ];
-       description = "Cron datatypes and Attoparsec parser";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "cron_0_7_0" = callPackage
-    ({ mkDerivation, attoparsec, base, criterion, data-default-class
-     , hedgehog, mtl, mtl-compat, old-locale, semigroups, tasty
-     , tasty-hedgehog, tasty-hunit, text, time, transformers-compat
-     }:
-     mkDerivation {
-       pname = "cron";
        version = "0.7.0";
        sha256 = "0f8jb2pxy89hkdnm20yz88b3j3vgh1a9c1dxiym3150izp34ikd5";
        libraryHaskellDepends = [
@@ -62949,7 +64151,6 @@ self: {
        benchmarkHaskellDepends = [ attoparsec base criterion text time ];
        description = "Cron datatypes and Attoparsec parser";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "cron-compat" = callPackage
@@ -62975,6 +64176,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 {
@@ -63166,8 +64384,8 @@ self: {
        pname = "crypto-enigma";
        version = "0.1.1.6";
        sha256 = "07qxrpwg9r2w2l0d2nrvn703vzsfhchznly93bnr2pfpbwj4iv2z";
-       revision = "1";
-       editedCabalFile = "15n8jb3g89x1cj5vk9a3x3g55c3agdz611sjlp5ixvqzf1kz5jiq";
+       revision = "4";
+       editedCabalFile = "0436kl0gsy0hj7dfrqmwz95q3k31af731q484yx2gj9zcma1h1vp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers split text ];
@@ -63175,7 +64393,7 @@ self: {
          ansi-terminal base containers optparse-applicative split text
        ];
        testHaskellDepends = [ base HUnit QuickCheck ];
-       description = "An Enigma machine simulator with display.";
+       description = "An Enigma machine simulator with display";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -63377,6 +64595,29 @@ self: {
        broken = true;
      }) {};
 
+  "crypto-sodium" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bytestring, cereal
+     , hedgehog, HUnit, libsodium, memory, NaCl, safe-exceptions, tasty
+     , tasty-discover, tasty-hedgehog, tasty-hunit
+     }:
+     mkDerivation {
+       pname = "crypto-sodium";
+       version = "0.0.3.1";
+       sha256 = "1hjwxbxszhg9z83i6p141avalwi9rjh4v014vh1dcj69dqb7q00h";
+       libraryHaskellDepends = [
+         base bytestring cereal libsodium memory NaCl safe-exceptions
+       ];
+       testHaskellDepends = [
+         base base16-bytestring bytestring hedgehog HUnit libsodium memory
+         safe-exceptions tasty tasty-hedgehog tasty-hunit
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Easy-and-safe-to-use high-level cryptography based on Sodium";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "crypto-token" = callPackage
     ({ mkDerivation, array, base, cryptonite, memory }:
      mkDerivation {
@@ -63651,25 +64892,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.0";
+       sha256 = "0bxx4pslmyjaqhskbi95a67fmpjhnbmgcys68xzs2y8ndjnz9jrb";
        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 = [
@@ -63707,6 +64950,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "cryptonite_0_27" = callPackage
+    ({ mkDerivation, base, basement, bytestring, deepseq, gauge
+     , ghc-prim, integer-gmp, memory, random, tasty, tasty-hunit
+     , tasty-kat, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "cryptonite";
+       version = "0.27";
+       sha256 = "1c68wvn2b49gijq9day2bzi0axcbdz41ip3j0wdahdhcjfl4a9y8";
+       libraryHaskellDepends = [
+         base basement bytestring deepseq ghc-prim integer-gmp memory
+       ];
+       testHaskellDepends = [
+         base bytestring memory tasty tasty-hunit tasty-kat tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring deepseq gauge memory random
+       ];
+       description = "Cryptography Primitives sink";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "cryptonite-conduit" = callPackage
     ({ mkDerivation, base, bytestring, conduit, conduit-combinators
      , conduit-extra, cryptonite, exceptions, memory, resourcet, tasty
@@ -63880,6 +65146,8 @@ self: {
        ];
        description = "a gallery of Csound instruments";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "csound-expression" = callPackage
@@ -63890,8 +65158,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
@@ -63899,22 +65167,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
@@ -63930,6 +65203,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
@@ -63940,8 +65215,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
@@ -63950,6 +65225,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
@@ -63961,6 +65238,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
@@ -64146,7 +65425,7 @@ self: {
          attoparsec attoparsec-enumerator base bytestring containers
          directory enumerator safe transformers unix-compat
        ];
-       description = "A flexible, fast, enumerator-based CSV parser library for Haskell.";
+       description = "A flexible, fast, enumerator-based CSV parser library for Haskell";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -64377,11 +65656,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
@@ -64427,8 +65707,8 @@ self: {
        pname = "cuda";
        version = "0.10.1.0";
        sha256 = "10lyyc652ic3m4r5agszpv2r99y9fnsdwahb5pd4qiga770v45vp";
-       revision = "1";
-       editedCabalFile = "0y08nr4p6rad1393l0373s4ivq2zvgm8xv0axh5bi6n95j2khkqz";
+       revision = "2";
+       editedCabalFile = "1nw135pd2ab3mmyq3xmkxynzfb54qr7a8xssq5ivrk83yzvs87im";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal directory filepath ];
@@ -64439,6 +65719,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
@@ -64454,7 +65735,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {cudd = null;};
+     }) {inherit (pkgs) cudd;};
 
   "cue-sheet" = callPackage
     ({ mkDerivation, base, bytestring, containers, exceptions, hspec
@@ -64540,23 +65821,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
@@ -64869,8 +66150,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
@@ -64949,33 +66230,37 @@ 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
+     , 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.0";
+       sha256 = "03xip8a9inqir8zm244ffv92ag5r7z8hlh0qz7z4vfdmg54mhhnq";
        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 ];
        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 ];
        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 ];
        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
@@ -65033,8 +66318,8 @@ self: {
      }:
      mkDerivation {
        pname = "cyclotomic";
-       version = "1.0.1";
-       sha256 = "0d2jnpgal88j05jk62p3xwfkarigclgw2hy77ph0lii360wijljh";
+       version = "1.1.1";
+       sha256 = "1m3977xi7s78h5bcq8gksamqimdm1h0hnjzalg3d63rvanjv4v84";
        libraryHaskellDepends = [ arithmoi base containers ];
        testHaskellDepends = [
          base HUnit QuickCheck test-framework test-framework-hunit
@@ -65069,8 +66354,8 @@ self: {
     ({ mkDerivation, base, template-haskell, transformers }:
      mkDerivation {
        pname = "czipwith";
-       version = "1.0.1.2";
-       sha256 = "17zf2blgjp47dahjcprkpymg9kb1ll6386pkr109gjr78f261gs1";
+       version = "1.0.1.3";
+       sha256 = "11v61zmjfdvfi6r0vy9fsj7j4g8hpq42pjhkzqjcksvlwm08bi1d";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base transformers ];
        description = "CZipWith class and deriving via TH";
@@ -65113,8 +66398,8 @@ self: {
     ({ mkDerivation, base, doctest, template-haskell }:
      mkDerivation {
        pname = "d10";
-       version = "0.2.1.2";
-       sha256 = "1y1rqx02qycw01921rrgd6daq91hnbzy35cflbl94maylvi3ryjk";
+       version = "0.2.1.6";
+       sha256 = "0a720zfpxwx5aymy3kmigfcwdbqz4vbfxjn1irfjl34ngndi358y";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base doctest ];
        description = "Digits 0-9";
@@ -65313,38 +66598,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 = ''
@@ -65352,8 +66642,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
@@ -65817,8 +67107,8 @@ self: {
      }:
      mkDerivation {
        pname = "data-ascii";
-       version = "1.0.0.0";
-       sha256 = "1dlcfli1fggalxqg4hvdq3g5c1k1f60mwiyz7sha70sa3lp0pw88";
+       version = "1.0.0.2";
+       sha256 = "03lxcybzamd1d5lrd1i9ygr5s094cr9ch2jdk5fx5hjg4bkigdds";
        libraryHaskellDepends = [
          base blaze-builder bytestring case-insensitive hashable semigroups
          text
@@ -65918,8 +67208,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "data-category";
-       version = "0.9";
-       sha256 = "1crp5mg9paf29gkl2nfpnx303p958kx3ap8zzbhq6gzvhklvyam0";
+       version = "0.10";
+       sha256 = "1mb72r17982w2sslmvi5nzpf7i702iikc7j4h68gzlfnm426jk9q";
        description = "Category theory";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -65992,8 +67282,8 @@ self: {
     ({ mkDerivation, base, constraints }:
      mkDerivation {
        pname = "data-compat";
-       version = "0.1.0.1";
-       sha256 = "1hbb9rx5x9pw5nzi7x9pxswr0w8vqvw1yf3brmgfxshwlq1ac0rh";
+       version = "0.1.0.2";
+       sha256 = "15bifxba0yddpq5yz23hq9k2s7vkzcrwjpwvbw0kkjf3wjjay5bp";
        libraryHaskellDepends = [ base constraints ];
        description = "Define Backwards Compatibility Schemes for Arbitrary Data";
        license = stdenv.lib.licenses.mit;
@@ -66522,20 +67812,36 @@ self: {
        pname = "data-fix";
        version = "0.2.1";
        sha256 = "05mhbcb04gxj1zl5y3zjss4p5lab5wyvzwk9pbg04ax2l24qmwih";
+       revision = "1";
+       editedCabalFile = "1rjz9w5rs48nia2imk4345h8daczlgk85ak2k0dssframi2w8v3s";
        libraryHaskellDepends = [ base ];
        description = "Fixpoint data types";
        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.";
+       description = "Common subexpression elimination for the fixploint types";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "data-flags" = callPackage
@@ -66577,10 +67883,8 @@ self: {
     ({ mkDerivation, base, doctest }:
      mkDerivation {
        pname = "data-forest";
-       version = "0.1.0.7";
-       sha256 = "1q41cwinvv0ys260f1f7005403pvz1gbwn0d6cnwh8b7rlgp8f4j";
-       revision = "2";
-       editedCabalFile = "15s9pv56mi2vqns70vcad1q841rp5yav2wh93qd1ialp109j54j4";
+       version = "0.1.0.8";
+       sha256 = "0b9b7h526580rsyqv8cfcc3109qjz4rv3prb7p98ddygcpbhm6rl";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base doctest ];
        description = "A simple multi-way tree data structure";
@@ -67262,6 +68566,7 @@ self: {
        ];
        description = "ARM SVD and CubeMX XML parser and pretty printer for STM32 family";
        license = stdenv.lib.licenses.bsd3;
+       maintainers = with stdenv.lib.maintainers; [ sorki ];
      }) {};
 
   "data-store" = callPackage
@@ -67670,6 +68975,23 @@ self: {
        broken = true;
      }) {};
 
+  "dataflower" = callPackage
+    ({ mkDerivation, base, criterion, hashable, hspec, mtl, pretty-show
+     , QuickCheck, stm, time, transformers, vector
+     }:
+     mkDerivation {
+       pname = "dataflower";
+       version = "0.2.2.0";
+       sha256 = "169m0yngaslc2pysdpf65pmf9zr037ij7y95rqi6bp3dxcxfcwlg";
+       libraryHaskellDepends = [
+         base hashable mtl pretty-show stm time transformers vector
+       ];
+       testHaskellDepends = [ base hspec QuickCheck stm ];
+       benchmarkHaskellDepends = [ base criterion stm ];
+       description = "A Pure-Haskell Timely Dataflow System";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "datalog" = callPackage
     ({ mkDerivation, base, containers, exceptions, hashable, haskeline
      , HUnit, parsec, pretty, test-framework, test-framework-hunit, text
@@ -68123,8 +69445,8 @@ self: {
      }:
      mkDerivation {
        pname = "dbus";
-       version = "1.2.14";
-       sha256 = "0w304j28vc90dmyz6zqsijjdjj2967grdc8f3zf5jiq50rzgmrr8";
+       version = "1.2.16";
+       sha256 = "103zxllh7nwbbckjblidr45xa13lrpqh9bwhvirrx24g7hsj1y9c";
        libraryHaskellDepends = [
          base bytestring cereal conduit containers deepseq exceptions
          filepath lens network parsec random split template-haskell text
@@ -68328,7 +69650,7 @@ self: {
        libraryHaskellDepends = [
          base containers deepseq parsec transformers wl-pprint
        ];
-       description = "Disciplined Disciple Compiler common utilities.";
+       description = "Disciplined Disciple Compiler common utilities";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -68817,8 +70139,8 @@ self: {
      }:
      mkDerivation {
        pname = "debug-me";
-       version = "1.20190926";
-       sha256 = "0qy2ianwal4v4s0m13yjszk032dp3y6k4p61whwmlp49xmqvwjyb";
+       version = "1.20200820";
+       sha256 = "1pxcycgdd0gmiqabpbjkish31yb2n7bqgwd1fm1na6w6xmjlh58a";
        isLibrary = false;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal filepath ];
@@ -68985,8 +70307,8 @@ self: {
      }:
      mkDerivation {
        pname = "declarative";
-       version = "0.5.2";
-       sha256 = "014spawd3wgasrlfaz0zcz0qf1cnhr9nxm71lzcxjgi8n1gcza0y";
+       version = "0.5.3";
+       sha256 = "021rhdhj2sji316mkm1fw679w7xb9n51x9pslmj21427q127ycw3";
        libraryHaskellDepends = [
          base hasty-hamiltonian kan-extensions lens mcmc-types
          mighty-metropolis mwc-probability pipes primitive speedy-slice
@@ -69177,8 +70499,8 @@ self: {
     ({ mkDerivation, array, base, deepseq, stm }:
      mkDerivation {
        pname = "deepseq-instances";
-       version = "0.1.0.0";
-       sha256 = "16b0j7k8jvbccl1jrsgqcbls5k4j3m847nlq1p78jq1qx7a6qlgn";
+       version = "0.1.0.1";
+       sha256 = "0shhk3hqy02qkrbbd85sbzhga7pvk6fwjnadnp6dkip55gllm24z";
        libraryHaskellDepends = [ array base deepseq stm ];
        description = "Candidate NFData Instances for Types in base";
        license = stdenv.lib.licenses.mit;
@@ -69398,14 +70720,31 @@ self: {
      }:
      mkDerivation {
        pname = "dejafu";
-       version = "2.1.0.3";
-       sha256 = "0b1akgq9pqrgwyj3smna7d4j6wvi7rm98q2d6ag01p06lcflypkg";
+       version = "2.3.0.1";
+       sha256 = "0klw2knnhqanmfjz2hjrj5sag6bqkh1g6vhgbvyk3d532m748wx1";
+       libraryHaskellDepends = [
+         base concurrency containers contravariant deepseq exceptions
+         leancheck profunctors random transformers
+       ];
+       description = "A library for unit-testing concurrent programs";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "dejafu_2_4_0_0" = callPackage
+    ({ mkDerivation, base, concurrency, containers, contravariant
+     , deepseq, exceptions, leancheck, profunctors, random, transformers
+     }:
+     mkDerivation {
+       pname = "dejafu";
+       version = "2.4.0.0";
+       sha256 = "1kj4ygdbbkr54bqknxk3jqif74jxgpid7cz9vzcm2m15h8q2z9k2";
        libraryHaskellDepends = [
          base concurrency containers contravariant deepseq exceptions
          leancheck profunctors random transformers
        ];
        description = "A library for unit-testing concurrent programs";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "deka" = callPackage
@@ -69638,6 +70977,8 @@ self: {
        ];
        description = "Mutable and immutable dense multidimensional arrays";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "dense-int-set" = callPackage
@@ -69791,8 +71132,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
@@ -69854,6 +71193,22 @@ self: {
        broken = true;
      }) {};
 
+  "depq" = callPackage
+    ({ mkDerivation, base, containers, deepseq, hspec, psqueues
+     , QuickCheck
+     }:
+     mkDerivation {
+       pname = "depq";
+       version = "0.4.1.0";
+       sha256 = "1rlbz9x34209zn44pn1xr9hnjv8ig47yq0p940wkblg55fy4lxcy";
+       libraryHaskellDepends = [
+         base containers deepseq psqueues QuickCheck
+       ];
+       testHaskellDepends = [ base containers hspec QuickCheck ];
+       description = "Double-ended priority queues";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "deptrack-core" = callPackage
     ({ mkDerivation, base, containers, dlist, mtl, parsec }:
      mkDerivation {
@@ -70032,6 +71387,19 @@ self: {
        broken = true;
      }) {};
 
+  "derive-lifted-instances" = callPackage
+    ({ mkDerivation, base, bifunctors, reflection, template-haskell }:
+     mkDerivation {
+       pname = "derive-lifted-instances";
+       version = "0.2";
+       sha256 = "1bms5m5hfrq4qg1gxxc045qms9jqrqgbd0695cxqnx9vyr86fpxf";
+       libraryHaskellDepends = [
+         base bifunctors reflection template-haskell
+       ];
+       description = "Derive class instances though various kinds of lifting";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "derive-monoid" = callPackage
     ({ mkDerivation, base, semigroups, template-haskell }:
      mkDerivation {
@@ -70137,8 +71505,8 @@ self: {
     ({ mkDerivation, aeson, base, bytestring }:
      mkDerivation {
        pname = "deriving-aeson";
-       version = "0.2.4";
-       sha256 = "1wswirjqpmmzyag5y2jhys9pswl3fdrzjv69csvd655qg8iyybpb";
+       version = "0.2.6";
+       sha256 = "0x9sv8r0ziy14zk6lcgzgxbmx9mrlngc0r1bqg6gkgxhswmjc2jq";
        libraryHaskellDepends = [ aeson base ];
        testHaskellDepends = [ aeson base bytestring ];
        description = "Type driven generic aeson instance customisation";
@@ -70149,19 +71517,19 @@ self: {
     ({ mkDerivation, base, base-compat, base-orphans, containers
      , ghc-boot-th, ghc-prim, hspec, hspec-discover, QuickCheck, tagged
      , template-haskell, th-abstraction, transformers
-     , transformers-compat
+     , transformers-compat, void
      }:
      mkDerivation {
        pname = "deriving-compat";
-       version = "0.5.8";
-       sha256 = "1dznwypw0w935z30zi9pf9k4mr5yfl6jfp43nv9vx3f6zy5gip9r";
+       version = "0.5.9";
+       sha256 = "1i0sc77h2902b0xc722v87iwdnwayn1y5mpiy700nclmfrrw2jy4";
        libraryHaskellDepends = [
          base containers ghc-boot-th ghc-prim template-haskell
          th-abstraction transformers transformers-compat
        ];
        testHaskellDepends = [
          base base-compat base-orphans hspec QuickCheck tagged
-         template-haskell transformers transformers-compat
+         template-haskell transformers transformers-compat void
        ];
        testToolDepends = [ hspec-discover ];
        description = "Backports of GHC deriving extensions";
@@ -70193,16 +71561,16 @@ self: {
      }) {};
 
   "derulo" = callPackage
-    ({ mkDerivation, base, doctest }:
+    ({ mkDerivation, base, HUnit }:
      mkDerivation {
        pname = "derulo";
-       version = "1.0.8";
-       sha256 = "1qmmhnvzn3dip5y757wmwjj51ah5i5db82ni85xl2ckk1k765v9c";
+       version = "1.0.9";
+       sha256 = "1rpxbg0g44813b0mlkifiav2w04wy56n1zlnqk5jcibdbmi6yagi";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base ];
        executableHaskellDepends = [ base ];
-       testHaskellDepends = [ base doctest ];
+       testHaskellDepends = [ base HUnit ];
        description = "Parse and render JSON simply";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -70439,6 +71807,35 @@ self: {
        broken = true;
      }) {};
 
+  "devtools" = callPackage
+    ({ mkDerivation, base, bytestring, cmdargs, Diff, filepath, hlint
+     , mprelude, source-constraints, tasty, tasty-mgolden, text
+     , typed-process
+     }:
+     mkDerivation {
+       pname = "devtools";
+       version = "0.0.2";
+       sha256 = "1p5695sgp48mznk9pb9kl24j9wa9gwq344hr3cdzzsvabfi1pkz2";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring cmdargs Diff filepath hlint mprelude
+         source-constraints tasty tasty-mgolden text typed-process
+       ];
+       executableHaskellDepends = [
+         base bytestring cmdargs Diff filepath hlint mprelude
+         source-constraints tasty tasty-mgolden text typed-process
+       ];
+       testHaskellDepends = [
+         base bytestring cmdargs Diff filepath hlint mprelude
+         source-constraints tasty tasty-mgolden text typed-process
+       ];
+       description = "Haskell development tool agregate";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "dewdrop" = callPackage
     ({ mkDerivation, base, bytestring, containers, elf, hdis86, syb }:
      mkDerivation {
@@ -70460,8 +71857,8 @@ self: {
      }:
      mkDerivation {
        pname = "df1";
-       version = "0.3.2";
-       sha256 = "1iywyrz2pfdpichfq6n77x8fpmfikj20rhkgnrwcf63ichav6xfp";
+       version = "0.4";
+       sha256 = "0adsmfjfcxsg55y4pahw408b82bi7phyzq48vrf80p84nyxmmpsi";
        libraryHaskellDepends = [
          attoparsec base bytestring containers text time
        ];
@@ -70473,6 +71870,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "df1-html" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, containers, df1
+     , QuickCheck, tasty, tasty-hunit, tasty-quickcheck, text, time
+     , xmlbf
+     }:
+     mkDerivation {
+       pname = "df1-html";
+       version = "0.1";
+       sha256 = "0qjwnh959621jm3y3hi54s2chcchflj9cmlrfysvb80ycyj6fs8x";
+       libraryHaskellDepends = [
+         attoparsec base bytestring containers df1 text time xmlbf
+       ];
+       testHaskellDepends = [
+         base containers df1 QuickCheck tasty tasty-hunit tasty-quickcheck
+         text time xmlbf
+       ];
+       description = "Render and parse df1 logs as HTML";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "dfinity-radix-tree" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, BoundedChan
      , bytestring, clock, concurrent-extra, conduit, containers
@@ -70615,6 +72032,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;
@@ -70625,36 +72043,36 @@ self: {
      , 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
+     , generic-random, half, 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, text-manipulate
+     , 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";
+       version = "1.32.0";
+       sha256 = "1imj0bh5365pdizvjbw2wqz0g9hakigf1zm4fr6379qdchxpp90p";
+       revision = "4";
+       editedCabalFile = "17mq04cla4367gb14g8jlzywgg5m3dbz02xxqm6ynyf9k8dnnr2x";
        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
+         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 th-lift-instances
-         transformers transformers-compat unordered-containers uri-encode
-         vector
+         scientific serialise template-haskell text text-manipulate
+         th-lift-instances transformers transformers-compat
+         unordered-containers uri-encode vector
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
@@ -70662,47 +72080,52 @@ self: {
          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
+         tasty-expected-failure tasty-hunit tasty-quickcheck
+         template-haskell 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;
      }) {};
 
-  "dhall_1_31_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, 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, text-manipulate, th-lift-instances
-     , transformers, transformers-compat, turtle, unordered-containers
-     , uri-encode, vector
+     , generic-random, half, hashable, haskeline, http-client
+     , http-client-tls, http-types, lens-family-core, megaparsec, memory
+     , mmorph, mockery, mtl, network-uri, optparse-applicative
+     , parser-combinators, parsers, pretty-simple, prettyprinter
+     , prettyprinter-ansi-terminal, profunctors, QuickCheck
+     , quickcheck-instances, repline, scientific, semigroups, serialise
+     , special-values, spoon, tasty, tasty-expected-failure, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, text-manipulate
+     , th-lift-instances, transformers, transformers-compat, turtle
+     , unordered-containers, uri-encode, vector
      }:
      mkDerivation {
        pname = "dhall";
-       version = "1.31.1";
-       sha256 = "18v7vvcbcm9s7slh6h43rj9yakkkxwnwgj6kv84i6qzd2j7d80mc";
+       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 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
+         filepath half hashable haskeline http-client http-client-tls
+         http-types lens-family-core megaparsec memory mmorph mtl
+         network-uri optparse-applicative parser-combinators parsers
+         pretty-simple prettyprinter prettyprinter-ansi-terminal profunctors
+         repline scientific serialise template-haskell text text-manipulate
          th-lift-instances transformers transformers-compat
          unordered-containers uri-encode vector
        ];
@@ -70719,6 +72142,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;
@@ -70730,8 +72154,10 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-bash";
-       version = "1.0.28";
-       sha256 = "0bvq4x9swnbc37vw08dw2vaj2phm9kyb94jv3vbfmwl1s6yw83zj";
+       version = "1.0.30";
+       sha256 = "1r2xr8c8kzmrxrb8m6f9dzjn81sqxzx97w0406kwrx9vzfj7ci1q";
+       revision = "1";
+       editedCabalFile = "0x7lkh86sr08qm53ycmka1vpxn7y60l01dm6hh70rhzn435ilvj1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -70745,14 +72171,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall-bash_1_0_29" = 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.29";
-       sha256 = "0hmhk2lmqr1szrjx1kqa3zlylcblwigi6lqmkqnh0z1dh3kc1a1w";
+       version = "1.0.32";
+       sha256 = "0y4pjrknbq48j1cnj25zf31k02j5ivjm3h6ffizr3vgr24whfxih";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -70786,6 +72212,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
@@ -70829,10 +72288,10 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-json";
-       version = "1.6.2";
-       sha256 = "044hq25h872rjlcp24fzf0nslxg4a6hmq8ylcljzk003lmq0c2xz";
-       revision = "1";
-       editedCabalFile = "0zljipb4nq0xmdfhqq7vr9c3966mpkd812g4z6xz7ngzrqn41s40";
+       version = "1.6.4";
+       sha256 = "0vr6a02frfk5bh0qj0m4qlc5pp08m29gxp8ixqihrqakkna6409z";
+       revision = "3";
+       editedCabalFile = "09yifah6mfy8k1qi5d2fibw62hjnxfcr7fx3wvyf4n16nq1mhshx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -70851,30 +72310,32 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall-json_1_6_3" = 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, 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.6.3";
-       sha256 = "1dm6lrn8nd29c8d1sp1l3jnxfxkhhqpvinrgn1hm0lcp3jgzchbb";
+       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
          optparse-applicative prettyprinter prettyprinter-ansi-terminal text
        ];
        testHaskellDepends = [
-         aeson base bytestring dhall tasty tasty-hunit text
+         aeson base bytestring dhall tasty tasty-hunit tasty-silver text
        ];
        description = "Convert between Dhall and JSON or YAML";
        license = stdenv.lib.licenses.bsd3;
@@ -70910,8 +72371,39 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-lsp-server";
-       version = "1.0.6";
-       sha256 = "1pbxzs9axnbwqfgdz44cbaabq9v10jsk752ix8i0cz1vmwyrcnlv";
+       version = "1.0.8";
+       sha256 = "1ig90w8iwyq5qwx5rd9zrd0mvrfksn6x1qh0hqxqvjdxrxk9lqnk";
+       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;
+     }) {};
+
+  "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 = [
@@ -70928,21 +72420,21 @@ self: {
        description = "Language Server Protocol (LSP) server for Dhall";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "dhall-nix" = callPackage
     ({ mkDerivation, base, containers, data-fix, dhall, hnix
-     , neat-interpolation, optparse-generic, text
+     , lens-family-core, neat-interpolation, optparse-generic, text
      }:
      mkDerivation {
        pname = "dhall-nix";
-       version = "1.1.13";
-       sha256 = "0sdnrhr9f29ds4zdj2qs123k44vg15r8kn8w2zwkmdabilzlgg9k";
+       version = "1.1.16";
+       sha256 = "1p9aizzf7zx92ns292zyzvg01r85dpl3wa61nh6g3q16qjs35bcx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base containers data-fix dhall hnix neat-interpolation text
+         base containers data-fix dhall hnix lens-family-core
+         neat-interpolation text
        ];
        executableHaskellDepends = [
          base dhall hnix optparse-generic text
@@ -70953,6 +72445,29 @@ self: {
        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
     ({ mkDerivation, base, dhall, optparse-applicative, text }:
      mkDerivation {
@@ -71010,8 +72525,10 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-yaml";
-       version = "1.0.2";
-       sha256 = "1fdid65wpxngbfdyisxij8m60x9i6mlq6ll6blf5jq4362ahhf3r";
+       version = "1.1.0";
+       sha256 = "06lwzis9jjfis6rv4r9gd0iq1da5ymcd6jl8x3rbcimg87k9r4bj";
+       revision = "2";
+       editedCabalFile = "1vflfl8j0fjvf5a8mz90d71myii4s2k98186gidxv0dkll8dix9a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -71032,7 +72549,7 @@ self: {
        broken = true;
      }) {};
 
-  "dhall-yaml_1_0_3" = 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
@@ -71040,8 +72557,10 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-yaml";
-       version = "1.0.3";
-       sha256 = "1lnxp2wqbgzg5f2kadhnbd8i5zgwy3g1nz17mmbdqwlx30p4scdn";
+       version = "1.2.1";
+       sha256 = "18p8a92wiz2zi4q7v5fjvdallxrl21scmwwv706g3mm5dgfgcs5a";
+       revision = "2";
+       editedCabalFile = "0ni3jamaz552nd0lp142ga42cmh956jq0zv34jzqfzfz7d3i5yw6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -71157,8 +72676,8 @@ self: {
      }:
      mkDerivation {
        pname = "di-df1";
-       version = "1.2";
-       sha256 = "0bixrinmmb496j55c3vlh914nq6zfsaxq0pp2fcdxhwig1y53fgr";
+       version = "1.2.1";
+       sha256 = "0mlx74605k33ibkqdbr7iyb32alansb41g9w0wjagyw45fvczda2";
        libraryHaskellDepends = [
          base df1 di-core di-handle di-monad stm
        ];
@@ -71202,8 +72721,8 @@ self: {
     ({ mkDerivation, base, df1, di-core, di-df1, di-handle, polysemy }:
      mkDerivation {
        pname = "di-polysemy";
-       version = "0.1.1.2";
-       sha256 = "0qglcvz628si1kg5djgh9j7ppvgfsc3gphal05hvlc4xziywf55y";
+       version = "0.1.4.0";
+       sha256 = "0p9wyli73skjbdbb0dgqb3p37rbijpadywsi0dwjdwdzpddjarcm";
        libraryHaskellDepends = [
          base df1 di-core di-df1 di-handle polysemy
        ];
@@ -71557,22 +73076,24 @@ self: {
 
   "diagrams-pandoc" = callPackage
     ({ mkDerivation, base, diagrams-builder, diagrams-cairo
-     , diagrams-lib, directory, filepath, linear, optparse-applicative
-     , pandoc-types
+     , diagrams-core, diagrams-lib, diagrams-svg, directory, filepath
+     , hashable, linear, optparse-applicative, pandoc-types, svg-builder
+     , text
      }:
      mkDerivation {
        pname = "diagrams-pandoc";
-       version = "0.3";
-       sha256 = "045592d6xhb7x6kq9r4nvxnayxs25sz3mqph4braym2llhx5khvv";
+       version = "0.3.1";
+       sha256 = "1c23xwagsxb6r7lfsrrh8s959aqiacazqxic4s8cg5q6l9vdn9xm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base diagrams-builder diagrams-cairo diagrams-lib directory
-         filepath linear pandoc-types
+         base diagrams-builder diagrams-cairo diagrams-core diagrams-lib
+         diagrams-svg directory filepath hashable linear pandoc-types
+         svg-builder text
        ];
        executableHaskellDepends = [
          base diagrams-builder diagrams-cairo diagrams-lib directory
-         filepath linear optparse-applicative pandoc-types
+         filepath linear optparse-applicative pandoc-types text
        ];
        description = "A Pandoc filter to express diagrams inline using the Haskell EDSL _Diagrams_";
        license = stdenv.lib.licenses.bsd3;
@@ -71715,24 +73236,6 @@ self: {
      }:
      mkDerivation {
        pname = "diagrams-solve";
-       version = "0.1.1";
-       sha256 = "17agchqkmj14b17sw50kzxq4hm056g5d8yy0wnqn5w8h1d0my7x4";
-       revision = "5";
-       editedCabalFile = "1yl8cs05fzqcz49p601am1ij66m9pa70yamhfxgcvya2pf8nimlf";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [
-         base deepseq tasty tasty-hunit tasty-quickcheck
-       ];
-       description = "Pure Haskell solver routines used by diagrams";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "diagrams-solve_0_1_2" = callPackage
-    ({ mkDerivation, base, deepseq, tasty, tasty-hunit
-     , tasty-quickcheck
-     }:
-     mkDerivation {
-       pname = "diagrams-solve";
        version = "0.1.2";
        sha256 = "1qzycw3aj4107dqpgir3ak7pnja3a6i4ax15gd2q2fjzmp4p3z24";
        libraryHaskellDepends = [ base ];
@@ -71741,7 +73244,6 @@ self: {
        ];
        description = "Pure Haskell solver routines used by diagrams";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "diagrams-svg" = callPackage
@@ -71823,8 +73325,8 @@ self: {
      }:
      mkDerivation {
        pname = "dialogflow-fulfillment";
-       version = "0.1.1.1";
-       sha256 = "1fha1raifdzkv3g52wl9cx6xpan3jsv11ysd3cz4sffylygcyg71";
+       version = "0.1.1.3";
+       sha256 = "10n91mfgvn3pi0rvw92ys8f4bcra4v24j0cjykrax3jdmk1wfmym";
        libraryHaskellDepends = [
          aeson base bytestring containers text unordered-containers
        ];
@@ -71875,6 +73377,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
@@ -71883,15 +73387,16 @@ self: {
      }:
      mkDerivation {
        pname = "dice-entropy-conduit";
-       version = "1.0.0.1";
-       sha256 = "01xwxajwyvv6ac48j9if6xsv05aqg1p02i7d25ivk1k56ky41l1s";
+       version = "1.0.0.3";
+       sha256 = "0pk1mhmy9683rbr2c589jqq1ra4w154nqcyvy3krw043hzd5y90n";
        libraryHaskellDepends = [
          base bytestring conduit entropy transformers
        ];
        testHaskellDepends = [
-         base QuickCheck test-framework test-framework-quickcheck2
+         base bytestring conduit entropy QuickCheck test-framework
+         test-framework-quickcheck2 transformers
        ];
-       description = "Cryptographically secure n-sided dice via rejection sampling.";
+       description = "Cryptographically secure n-sided dice via rejection sampling";
        license = stdenv.lib.licenses.lgpl21;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -72141,8 +73646,8 @@ self: {
      }:
      mkDerivation {
        pname = "differential";
-       version = "0.1.2.0";
-       sha256 = "1mw70yrxi72q55h5xvyds7qp5az7j1qc3xix6ahck17dv5w8fpyl";
+       version = "0.1.2.1";
+       sha256 = "164s372c7pfqnzhvrhxmic0csx3lgwqi06zz5w8zfvkw76md8qh3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -72295,10 +73800,8 @@ self: {
      }:
      mkDerivation {
        pname = "digestive-functors";
-       version = "0.8.4.0";
-       sha256 = "17l70z0bn5aahjaydg3qcwyip6jk0q4vkar5abhrhls59j5hk6z0";
-       revision = "2";
-       editedCabalFile = "1a8z8fmjvwab222ayc04xd3wxqagfq6nwf68ynljcbwdbbjyjb7b";
+       version = "0.8.4.2";
+       sha256 = "0x0mh43rli77vqs9bpqd85w5wwr68qchfl5086nn137358583lrn";
        libraryHaskellDepends = [
          base bytestring containers mtl old-locale semigroups text time
        ];
@@ -72355,8 +73858,8 @@ self: {
      }:
      mkDerivation {
        pname = "digestive-functors-happstack";
-       version = "0.6.1.2";
-       sha256 = "18i4hb39rkgj2jz2ii697gayxi02dqpfbx5arv6zyjvmp1ydynvz";
+       version = "0.6.1.3";
+       sha256 = "1kjmjxmlaaawfkk96wzlzd0kbcb5j0pvqssh3ynjm074cy6h89fd";
        libraryHaskellDepends = [
          base bytestring digestive-functors happstack-server text
        ];
@@ -72502,10 +74005,8 @@ self: {
      }:
      mkDerivation {
        pname = "digraph";
-       version = "0.1.0.2";
-       sha256 = "1kkvihqg3rhhsqz25yq7np211813kf3xqqi27lpdf1kdmq8vvf80";
-       revision = "1";
-       editedCabalFile = "0q9q9xr765ym535mwh3ji94y23mr9fxmrcwij439n6rgr4spwqi5";
+       version = "0.2";
+       sha256 = "0k6kr1vr25i2jvv2q1xby06b7xkpg2dr4sq2ffnv0lmznshjy8y5";
        libraryHaskellDepends = [
          base containers deepseq hashable massiv mwc-random streaming
          transformers unordered-containers
@@ -72534,6 +74035,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
@@ -73101,24 +74614,26 @@ 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.5.2";
-       sha256 = "1xpgbxmf70jlgm2mfnyb3mylvp0xzgp501iybbf3s12b7d0kk17b";
+       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;
+       broken = true;
      }) {};
 
   "discord-hs" = callPackage
@@ -74138,6 +75653,8 @@ self: {
        pname = "distributive";
        version = "0.6.2";
        sha256 = "1j93zkfffm6s16kgr0j0z87y5ds28rw0r2gyc5ncwcylvrqy4kl2";
+       revision = "2";
+       editedCabalFile = "11y4qanr09880d7sxkhrzrh3cpmqbx001hiqhsr2s75xrnmrpkia";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base base-orphans tagged transformers ];
        testHaskellDepends = [ base doctest generic-deriving hspec ];
@@ -74342,6 +75859,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 {
@@ -74362,8 +75892,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
        ];
@@ -74619,35 +76149,139 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "dobutokO";
-       version = "0.3.1.0";
-       sha256 = "0vsh9ygxaqy9qv193hbvk4fx4bj34m95qnqfippv76l0f4lpa8bz";
+       version = "0.3.2.0";
+       sha256 = "1qps4zvk3qn2d93778cs2b6kf1k9fjgw5248hyx9v0n05crfw2i8";
        libraryHaskellDepends = [ base ];
        description = "The library is intended to print updated messages on the terminal screen";
        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, dobutokO-poetry-general, mmsyn3, mmsyn6ukr
+     , mmsyn7s, uniqueness-periods, vector
+     }:
+     mkDerivation {
+       pname = "dobutokO-poetry";
+       version = "0.15.0.0";
+       sha256 = "1091wqxzg138bc8kk55fkgv5ripq48zyvm3in2b2g54zjy6l4f1p";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base dobutokO-poetry-general mmsyn3 mmsyn6ukr mmsyn7s
+         uniqueness-periods vector
+       ];
+       executableHaskellDepends = [
+         base dobutokO-poetry-general mmsyn3 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, mmsyn7s, mmsyn7ukr, process, vector
+     , mmsyn6ukr, mmsyn7l, mmsyn7s, mmsyn7ukr, process
+     , uniqueness-periods, vector
      }:
      mkDerivation {
        pname = "dobutokO2";
-       version = "0.39.0.0";
-       sha256 = "0xxdlxz3hmrsp57p3zdxwbd0wz366x5d9mkfld3i0v4by80x1a1m";
+       version = "0.43.0.0";
+       sha256 = "0f17ff77m16p951laijqf5w4pfw4pgc6x2ha13472h62dzg8gm2f";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bytestring directory mmsyn2 mmsyn3 mmsyn6ukr mmsyn7s mmsyn7ukr
-         process vector
+         base bytestring directory mmsyn2 mmsyn3 mmsyn6ukr mmsyn7l mmsyn7s
+         mmsyn7ukr process uniqueness-periods vector
        ];
        executableHaskellDepends = [
-         base bytestring directory mmsyn2 mmsyn3 mmsyn6ukr mmsyn7s mmsyn7ukr
-         process vector
+         base bytestring directory mmsyn2 mmsyn3 mmsyn6ukr mmsyn7l mmsyn7s
+         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;
      }) {};
 
+  "dobutokO3" = callPackage
+    ({ mkDerivation, base, bytestring, directory, dobutokO2, mmsyn2
+     , mmsyn3, mmsyn6ukr, mmsyn7l, mmsyn7s, mmsyn7ukr, process, vector
+     }:
+     mkDerivation {
+       pname = "dobutokO3";
+       version = "0.3.0.0";
+       sha256 = "1dbax6j2sdn6cd6crskwr0r90ymxmjk596a9ak8gvlkrwpk1cbdm";
+       libraryHaskellDepends = [
+         base bytestring directory dobutokO2 mmsyn2 mmsyn3 mmsyn6ukr mmsyn7l
+         mmsyn7s mmsyn7ukr process vector
+       ];
+       description = "Helps to create more complex experimental music from a file (especially timbre)";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "dobutokO4" = callPackage
+    ({ mkDerivation, base, directory, dobutokO2, mmsyn3, mmsyn7l
+     , process, vector, vector-doublezip
+     }:
+     mkDerivation {
+       pname = "dobutokO4";
+       version = "0.8.0.0";
+       sha256 = "073kjv1m3qcrfyk8j8zs5hrc8x0bkyqnw6pa72afhkxq08dzj9y9";
+       libraryHaskellDepends = [
+         base directory dobutokO2 mmsyn3 mmsyn7l process vector
+         vector-doublezip
+       ];
+       description = "Helps to create experimental music. Uses SoX inside.";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "doc-review" = callPackage
     ({ mkDerivation, base, base64-bytestring, binary, bytestring
      , containers, directory, feed, filepath, haskell98, heist, hexpat
@@ -74819,25 +76453,28 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "doclayout" = callPackage
-    ({ mkDerivation, base, criterion, mtl, safe, tasty, tasty-golden
-     , tasty-hunit, text
+  "dockerfile-creator" = callPackage
+    ({ mkDerivation, base, bytestring, data-default-class, directory
+     , filepath, free, Glob, hspec, language-docker, megaparsec, mtl
+     , process, template-haskell, text, th-lift, th-lift-instances, time
      }:
      mkDerivation {
-       pname = "doclayout";
-       version = "0.2.0.1";
-       sha256 = "0f6zfb0f4m71irc8wknkdk6xylgncsahhl7ga7rzpr4pxy3bnqak";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [ base mtl safe text ];
+       pname = "dockerfile-creator";
+       version = "0.1.0.0";
+       sha256 = "110qv5v7zh484c3w9zfyinpkpy787nqj161gag8kn50k63w5ff9w";
+       libraryHaskellDepends = [
+         base bytestring data-default-class free language-docker megaparsec
+         mtl template-haskell text th-lift th-lift-instances time
+       ];
        testHaskellDepends = [
-         base mtl tasty tasty-golden tasty-hunit text
+         base bytestring data-default-class directory filepath free Glob
+         hspec language-docker megaparsec mtl process template-haskell text
+         th-lift th-lift-instances time
        ];
-       benchmarkHaskellDepends = [ base criterion mtl text ];
-       description = "A prettyprinting library for laying out text documents";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "doclayout_0_3" = callPackage
+  "doclayout" = callPackage
     ({ mkDerivation, base, criterion, mtl, safe, tasty, tasty-golden
      , tasty-hunit, text
      }:
@@ -74853,7 +76490,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion mtl text ];
        description = "A prettyprinting library for laying out text documents";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "docopt" = callPackage
@@ -74911,7 +76547,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "doctemplates" = callPackage
+  "doctemplates_0_8" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, criterion
      , doclayout, filepath, Glob, HsYAML, mtl, parsec, safe, scientific
      , tasty, tasty-golden, tasty-hunit, temporary, text
@@ -74935,9 +76571,10 @@ self: {
        ];
        description = "Pandoc-style document templates";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "doctemplates_0_8_2" = callPackage
+  "doctemplates" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, criterion
      , doclayout, filepath, Glob, HsYAML, mtl, parsec, safe, scientific
      , tasty, tasty-golden, tasty-hunit, temporary, text
@@ -74961,7 +76598,6 @@ self: {
        ];
        description = "Pandoc-style document templates";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "doctest" = callPackage
@@ -74993,6 +76629,36 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "doctest_0_17" = callPackage
+    ({ mkDerivation, base, base-compat, code-page, deepseq, directory
+     , filepath, ghc, ghc-paths, hspec, hspec-core, HUnit, mockery
+     , process, QuickCheck, setenv, silently, stringbuilder, syb
+     , transformers
+     }:
+     mkDerivation {
+       pname = "doctest";
+       version = "0.17";
+       sha256 = "0f0knggq6yjcznyri35fll619q5jr8vcsbiyvdiz4prkawhaa4pz";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base base-compat code-page deepseq directory filepath ghc ghc-paths
+         process syb transformers
+       ];
+       executableHaskellDepends = [
+         base base-compat code-page deepseq directory filepath ghc ghc-paths
+         process syb transformers
+       ];
+       testHaskellDepends = [
+         base base-compat code-page deepseq directory filepath ghc ghc-paths
+         hspec hspec-core HUnit mockery process QuickCheck setenv silently
+         stringbuilder syb transformers
+       ];
+       description = "Test interactive Haskell examples";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "doctest-discover" = callPackage
     ({ mkDerivation, aeson, base, bytestring, directory, doctest
      , filepath
@@ -75245,15 +76911,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.1";
+       sha256 = "16pf0lzzg0wwk5q44ybbc2hbrjs5hzsai0ssm836xiywsqwp61a7";
        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;
@@ -75416,8 +77081,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;
@@ -75474,8 +77139,8 @@ self: {
     ({ mkDerivation, base, containers }:
      mkDerivation {
        pname = "dotgen";
-       version = "0.4.2";
-       sha256 = "148q93qsmqgr5pzdwvpjqfd6bdm1pwzcp2rblfwswx2x8c5f43fg";
+       version = "0.4.3";
+       sha256 = "1jcn5m9342jrdq7jln2v9msf9978ngrx0pq9rrjh8izhvbvph76s";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers ];
@@ -76165,6 +77830,21 @@ self: {
        broken = true;
      }) {};
 
+  "drunken-bishop" = callPackage
+    ({ mkDerivation, array, base, bytestring, pureMD5 }:
+     mkDerivation {
+       pname = "drunken-bishop";
+       version = "0.1.0.0";
+       sha256 = "114728h8zznmjygp1ddjnkklk0pcs8w7in7698k9xi54j6v467gy";
+       revision = "1";
+       editedCabalFile = "1iaq53nvyzh84g91a6p7y4m38v0mcqpw1c18s2fxlzb5zg342zqi";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ array base bytestring pureMD5 ];
+       description = "An implementation of the Drunken Bishop visual fingerprinting algorithm";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "ds-kanren" = callPackage
     ({ mkDerivation, base, containers, logict, QuickCheck, tasty
      , tasty-quickcheck
@@ -76299,14 +77979,14 @@ self: {
     ({ mkDerivation, array, base, containers, QuickCheck, random }:
      mkDerivation {
        pname = "dsp";
-       version = "0.2.5";
-       sha256 = "1lka6l0xf3p7cb9ikzvszwgr7pl3gjm0s5v312p6k4w1fqqsycl5";
+       version = "0.2.5.1";
+       sha256 = "03mhqqnjqjhklmlim6cljq5ik0l4h6lgqffw2i2clqgwj64ky5nf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ array base containers random ];
        testHaskellDepends = [ array base containers QuickCheck ];
        description = "Haskell Digital Signal Processing";
-       license = "GPL";
+       license = stdenv.lib.licenses.gpl2;
      }) {};
 
   "dstring" = callPackage
@@ -76639,21 +78319,6 @@ self: {
      }) {};
 
   "dunai" = callPackage
-    ({ mkDerivation, base, MonadRandom, simple-affine-space
-     , transformers, transformers-base
-     }:
-     mkDerivation {
-       pname = "dunai";
-       version = "0.6.0";
-       sha256 = "00ww23294xq8jh9mlg3rd0yz33vl09vdd176hja3l0yskd8cpbxn";
-       libraryHaskellDepends = [
-         base MonadRandom simple-affine-space transformers transformers-base
-       ];
-       description = "Generalised reactive framework supporting classic, arrowized and monadic FRP";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "dunai_0_7_0" = callPackage
     ({ mkDerivation, base, MonadRandom, simple-affine-space, tasty
      , tasty-hunit, transformers, transformers-base
      }:
@@ -76667,7 +78332,6 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit transformers ];
        description = "Generalised reactive framework supporting classic, arrowized and monadic FRP";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "dunai-core" = callPackage
@@ -77104,7 +78768,7 @@ self: {
        version = "0.1.1.0";
        sha256 = "1agk7q556yf6v776568apvc4dgvxiqfshina12f69ky8afvjr6qz";
        libraryHaskellDepends = [ base containers template-haskell unix ];
-       description = "Automatically derive dynamic linking methods from a data type.";
+       description = "Automatically derive dynamic linking methods from a data type";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -77131,7 +78795,7 @@ self: {
        version = "0.1.0.5";
        sha256 = "0hsy9mgnl2yf94kqxy69wgmr5hjqxpp55qvij3f53sxxywjrxdi2";
        libraryHaskellDepends = [ base primitive vector ];
-       description = "A wrapper around MVector that enables pushing, popping and extending.";
+       description = "A wrapper around MVector that enables pushing, popping and extending";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -77442,8 +79106,8 @@ self: {
     ({ mkDerivation, base, vector }:
      mkDerivation {
        pname = "earcut";
-       version = "0.1.0.1";
-       sha256 = "0zinq40b549avzgw1s8dbhn7cjsbsg72smr6iaj5aap8cccx6mr7";
+       version = "0.1.0.4";
+       sha256 = "0nssl7n697rzwlfb5lq4kl64j4mrb4i19rp5kzjpmc7iin9fzxsf";
        libraryHaskellDepends = [ base vector ];
        description = "Binding to C++ earcut library";
        license = stdenv.lib.licenses.isc;
@@ -77799,8 +79463,8 @@ self: {
        pname = "ed25519";
        version = "0.0.5.0";
        sha256 = "0v8msqvgzimhs7p5ri25hrb1ni2wvisl5rmdxy89fc59py79b9fq";
-       revision = "2";
-       editedCabalFile = "1cq6h3jqkb1kvd9fjfhsllg5gq78sdiyf2gy9862xhlbv6wil19f";
+       revision = "3";
+       editedCabalFile = "1yidh86ymzwmp2b449pwim6vvfcs1qgkkncbixw1zmb7wj6v167v";
        libraryHaskellDepends = [ base bytestring ghc-prim ];
        testHaskellDepends = [
          base bytestring directory doctest filepath hlint QuickCheck
@@ -78268,6 +79932,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 {
@@ -78284,43 +79964,6 @@ self: {
   "egison" = callPackage
     ({ mkDerivation, array, base, containers, criterion, deepseq
      , directory, filepath, ghc, ghc-paths, Glob, hashable, haskeline
-     , HUnit, megaparsec, mtl, optparse-applicative, parsec
-     , parser-combinators, prettyprinter, process, random, regex-tdfa
-     , split, test-framework, test-framework-hunit, text, transformers
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "egison";
-       version = "3.10.3";
-       sha256 = "01j0jgdaq002g8jb8i2chf571zksmjvd6z17jrf7fvn4981lcgqi";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         array base containers directory ghc ghc-paths hashable haskeline
-         megaparsec mtl optparse-applicative parsec parser-combinators
-         prettyprinter process random regex-tdfa split text transformers
-         unordered-containers vector
-       ];
-       executableHaskellDepends = [
-         array base containers directory filepath ghc ghc-paths haskeline
-         mtl optparse-applicative parsec prettyprinter process split text
-         transformers unordered-containers vector
-       ];
-       testHaskellDepends = [
-         base filepath Glob HUnit mtl test-framework test-framework-hunit
-         transformers
-       ];
-       benchmarkHaskellDepends = [
-         base criterion deepseq mtl transformers
-       ];
-       description = "Programming language with non-linear pattern-matching against non-free data";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "egison_4_0_0" = callPackage
-    ({ mkDerivation, array, base, containers, criterion, deepseq
-     , directory, filepath, ghc, ghc-paths, Glob, hashable, haskeline
      , HUnit, megaparsec, mini-egison, mtl, optparse-applicative, parsec
      , parser-combinators, prettyprinter, process, random, regex-tdfa
      , split, test-framework, test-framework-hunit, text, transformers
@@ -78328,8 +79971,8 @@ self: {
      }:
      mkDerivation {
        pname = "egison";
-       version = "4.0.0";
-       sha256 = "00dps0p1n3izfclvdykh6y10lnjis11352ndqbyv55wl6n3xjb2p";
+       version = "4.0.3";
+       sha256 = "0wav3cbp8yxkx9ajhcfqws9y1xhs36gw01spwi7x7s4l6x7fkqlm";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -78353,7 +79996,6 @@ self: {
        ];
        description = "Programming language with non-linear pattern-matching against non-free data";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "egison-pattern-src" = callPackage
@@ -78377,14 +80019,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
        ];
@@ -78403,10 +80067,8 @@ self: {
      }:
      mkDerivation {
        pname = "egison-pattern-src-th-mode";
-       version = "0.2.1.0";
-       sha256 = "0libfs39irdnqfvynmpji21p6nyk2s3zsxhlmsz763aya51ymxpy";
-       revision = "1";
-       editedCabalFile = "13k65z8jai64087ns3b99wznv0ain3z3bailk8fdpnsjf4s2a4qg";
+       version = "0.2.1.1";
+       sha256 = "110rykbxkpv9vrqvwdxm0fa73djy2g5swcxzpx61zh6cl4wk949g";
        libraryHaskellDepends = [
          base egison-pattern-src haskell-src-exts haskell-src-meta mtl
          pretty template-haskell text
@@ -78441,8 +80103,8 @@ self: {
      }:
      mkDerivation {
        pname = "egison-tutorial";
-       version = "4.0.0";
-       sha256 = "0kma4i6qhjwcr9dhlgl63gd8f676agigbv1qii7p6fvq3hj38ddg";
+       version = "4.0.1";
+       sha256 = "1g5vhf04b7r2g5kx0f5z9cci0nv55qbnjkvm81cg5yjh41bhffwn";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -78593,6 +80255,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 {
@@ -78648,8 +80325,8 @@ self: {
        pname = "ekg";
        version = "0.4.0.15";
        sha256 = "1k3d5kiqm034qs04k0pcisf4zbdmx2fcgl9a6c1lzzjw96zf6aj8";
-       revision = "7";
-       editedCabalFile = "1p6mq14si3bqgw4b1frdfj5cbqpz3p399q8wipk6z95yyg129f6i";
+       revision = "8";
+       editedCabalFile = "05k50vx956zlh7dvkhi7qvd9f7x48hg5hwgqjqsf5fwzm1cqir6n";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring ekg-core ekg-json filepath network snap-core
@@ -78791,8 +80468,8 @@ self: {
        pname = "ekg-json";
        version = "0.1.0.6";
        sha256 = "0iyx0ix4dcyhh9xg4ia1lm7x2q0iffswnr33khfg9fr81am80shy";
-       revision = "6";
-       editedCabalFile = "111495nizf5d9s91nbss78y3rh7vj5p1021m7pz96li37i5ps13m";
+       revision = "7";
+       editedCabalFile = "1f53dh7h48j07xw4jdxzwipndap8wdg36d857zdkaxmf14dzqvp1";
        libraryHaskellDepends = [
          aeson base ekg-core text unordered-containers
        ];
@@ -78884,10 +80561,8 @@ self: {
      }:
      mkDerivation {
        pname = "ekg-statsd";
-       version = "0.2.4.0";
-       sha256 = "1nvsiblha1fzykvfaq1s0fyvfmhm32wvxdsfkn9pqd6dl5ivyx2y";
-       revision = "4";
-       editedCabalFile = "0mrar804w2m57zg9bd0qkp4vbkzmgi46478v6z7qcz7qpd8vml9d";
+       version = "0.2.5.0";
+       sha256 = "02sgssxk8q9clz0pw7k7dbgxryvkhq46b9mf0nqkvw8r81j4gy92";
        libraryHaskellDepends = [
          base bytestring ekg-core network text time unordered-containers
        ];
@@ -79104,31 +80779,14 @@ self: {
      }:
      mkDerivation {
        pname = "elm-bridge";
-       version = "0.5.2";
-       sha256 = "1ls4c4lrjbmms1kcaz88nnxn3ih3wbx51adjggbvyvfj52bc5cvp";
-       libraryHaskellDepends = [ aeson base template-haskell ];
-       testHaskellDepends = [
-         aeson base containers hspec QuickCheck text
-       ];
-       description = "Derive Elm types and Json code from Haskell types, using aeson's options";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "elm-bridge_0_6_0" = callPackage
-    ({ mkDerivation, aeson, base, containers, hspec, QuickCheck
-     , template-haskell, text
-     }:
-     mkDerivation {
-       pname = "elm-bridge";
-       version = "0.6.0";
-       sha256 = "1sn4fdillziikydn832sknmn1wjb5idxfx8n2avahjwn5sdg7dwp";
+       version = "0.6.1";
+       sha256 = "0q71zj7vzkwxkn022bn4bqnblwygdrkjypqy65xxadfbqjl9y8gx";
        libraryHaskellDepends = [ aeson base template-haskell ];
        testHaskellDepends = [
          aeson base containers hspec QuickCheck text
        ];
        description = "Derive Elm types and Json code from Haskell types, using aeson's options";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "elm-build-lib" = callPackage
@@ -79611,119 +81269,126 @@ self: {
      }:
      mkDerivation {
        pname = "elynx";
-       version = "0.2.2";
-       sha256 = "19fj65klv8pyan6n6i0mzcwpsprkhvxirh82hdmr3b3y2zaw10h6";
+       version = "0.3.4";
+       sha256 = "0pm8gwaz6yzdhqw4cs98kbardcc6qsnvzx67f48hamrqvnvqa2ym";
        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.3.4";
+       sha256 = "0kd92zkafnx6bbzpn9xswl2wnkzzgjwmd7l6ycj43vrlgigp27v6";
        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.3.4";
+       sha256 = "16ckh34xywxggq0vf4aig912zb8n1fybz52k1vchrj0y0rxbvsa4";
+       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.3.4";
+       sha256 = "1zz0b2p8znigy5m12qacsdb52h09c2khc3l7i8glirhca74flsif";
        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.3.4";
+       sha256 = "0nldyxbj3ym4nnq62asi70w9c8h79s10g50gr7dkhdgbr07v47vs";
        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.3.4";
+       sha256 = "1xhrmpnqg4gjr262xqi31rc406l40v0f5yfj0ah7jb1z45m23hsk";
        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;
      }) {};
@@ -80144,8 +81809,8 @@ self: {
      }:
      mkDerivation {
        pname = "encoding";
-       version = "0.8.3";
-       sha256 = "07flh8rmdbi8rhgg2jzv70yb91kkjkiidc8ww5mxjdk8av70wbj3";
+       version = "0.8.5";
+       sha256 = "1kqi6ic5sa8y01ya99v7r5j9rl68vgy2lsixhbnavi8fx2200hcs";
        setupHaskellDepends = [
          base Cabal containers filepath ghc-prim HaXml
        ];
@@ -80617,6 +82282,17 @@ self: {
        broken = true;
      }) {};
 
+  "enummaps" = callPackage
+    ({ mkDerivation, base, containers, deepseq }:
+     mkDerivation {
+       pname = "enummaps";
+       version = "0.6.2.1.7";
+       sha256 = "0p4klnhwr10yiv3w209vl1j09280257z0pz626ynbxbff4mh9wg4";
+       libraryHaskellDepends = [ base containers deepseq ];
+       description = "Enum wrappers for IntMap and IntSet";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "enummapset" = callPackage
     ({ mkDerivation, array, base, containers, deepseq, ghc-prim, HUnit
      , QuickCheck, semigroups, test-framework, test-framework-hunit
@@ -80624,8 +82300,8 @@ self: {
      }:
      mkDerivation {
        pname = "enummapset";
-       version = "0.6.0.2";
-       sha256 = "0476rzarcfpp4qm4qsz6wdnhr11nlfhqgrnbni591kbmngqlld1v";
+       version = "0.6.0.3";
+       sha256 = "0sxbg053z9v68l9mw906npnm0864jn17rp28bnv4h6ifxyjckb2y";
        libraryHaskellDepends = [ base containers deepseq semigroups ];
        testHaskellDepends = [
          array base containers deepseq ghc-prim HUnit QuickCheck semigroups
@@ -80639,10 +82315,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
        ];
@@ -80682,6 +82356,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
@@ -80988,8 +82664,8 @@ self: {
      }:
      mkDerivation {
        pname = "equational-reasoning";
-       version = "0.6.0.2";
-       sha256 = "0zahv50jnbaaiwa7gy7w901fyqjk816gcd3fx9km0nacsjrgal4v";
+       version = "0.6.0.3";
+       sha256 = "003prif9pjjcj67nv6hxr0y70ik5qg1sddzh82y97a1l7m6kigfq";
        libraryHaskellDepends = [
          base containers template-haskell th-desugar th-extras void
        ];
@@ -81619,8 +83295,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
@@ -81670,8 +83346,30 @@ self: {
        ];
        description = "General purpose live coding framework";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "essence-of-live-coding_0_2_2" = callPackage
+    ({ mkDerivation, base, containers, foreign-store, mtl, QuickCheck
+     , syb, test-framework, test-framework-quickcheck2, transformers
+     , vector-sized
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding";
+       version = "0.2.2";
+       sha256 = "1hczvr1byk8qjkb45w9nvjmbqfmxl15dgn7kvp0rby0dkrn85275";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers foreign-store syb 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
@@ -81687,8 +83385,40 @@ self: {
        ];
        description = "General purpose live coding framework - Gloss backend";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "essence-of-live-coding-gloss_0_2_2" = callPackage
+    ({ mkDerivation, base, essence-of-live-coding, foreign-store, gloss
+     , syb, transformers
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding-gloss";
+       version = "0.2.2";
+       sha256 = "19kxrjyhikgb49qdb7rlap8bbjsvkyi2ni6a1m1hjyxjziypsw0y";
+       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;
-       broken = true;
+     }) {};
+
+  "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.2";
+       sha256 = "07kgmbwm9swdavsypxnqf64fh9b2c2h9rmkm38hcl6lahdb2rb44";
+       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;
      }) {};
 
   "essence-of-live-coding-pulse" = callPackage
@@ -81704,8 +83434,40 @@ self: {
        ];
        description = "General purpose live coding framework - pulse backend";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "essence-of-live-coding-pulse_0_2_2" = callPackage
+    ({ mkDerivation, base, essence-of-live-coding, foreign-store
+     , pulse-simple, transformers
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding-pulse";
+       version = "0.2.2";
+       sha256 = "15v4bzkx4j6mvprk1d215ywamjjvmf6g13cppd109aj4h40zcxbi";
+       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;
-       broken = true;
+     }) {};
+
+  "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.2";
+       sha256 = "1476wxny2yhq2f2cn2bqrcm4dri39mql509pf9yq2kyd76lkrcgx";
+       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;
      }) {};
 
   "essence-of-live-coding-quickcheck" = callPackage
@@ -81722,8 +83484,39 @@ self: {
        ];
        description = "General purpose live coding framework - QuickCheck integration";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "essence-of-live-coding-quickcheck_0_2_2" = callPackage
+    ({ mkDerivation, base, boltzmann-samplers, essence-of-live-coding
+     , QuickCheck, syb, transformers
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding-quickcheck";
+       version = "0.2.2";
+       sha256 = "1v7ijzs64bqn8nyp1msrrvk6kfkzx5a87ib74fmcasiww1y4lwgl";
+       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;
-       broken = true;
+     }) {};
+
+  "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.2";
+       sha256 = "14ygm62ak6gprx0r545xmv5nk544p0gsip3017p7ziy3k01mwhgh";
+       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;
      }) {};
 
   "estimator" = callPackage
@@ -82115,19 +83908,14 @@ self: {
      }) {};
 
   "euler" = callPackage
-    ({ mkDerivation, base, criterion, directory, happy, hlint, hspec
-     , process, regex-posix, xml
-     }:
+    ({ mkDerivation, base, hspec, hspec-discover }:
      mkDerivation {
        pname = "euler";
-       version = "0.9.2";
-       sha256 = "14ghmy5qblfgacc6b07jja6pssglf393j5hjypz0l0azd9w56kh5";
+       version = "0.10.1";
+       sha256 = "1kd8lsf5fsqzzj0f8slpxkfdia34gn6rmdscsn3w89v6lp0ccc1a";
        libraryHaskellDepends = [ base ];
-       testHaskellDepends = [
-         base directory hlint hspec process regex-posix xml
-       ];
-       testToolDepends = [ happy ];
-       benchmarkHaskellDepends = [ base criterion ];
+       testHaskellDepends = [ base hspec ];
+       testToolDepends = [ hspec-discover ];
        description = "Mathematics utilities for Haskell";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -82153,6 +83941,8 @@ self: {
        ];
        description = "Euler tour trees";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "euphoria" = callPackage
@@ -82201,18 +83991,15 @@ self: {
      }) {};
 
   "evdev" = callPackage
-    ({ mkDerivation, base, bytestring, c2hs, containers, either, extra
-     , hinotify, libevdev, monad-loops, paths, posix-paths, process
-     , rawfilepath, safe, streamly, streamly-fsnotify, time, unix
+    ({ mkDerivation, base, bytestring, c2hs, containers, extra
+     , libevdev, monad-loops, time, unix
      }:
      mkDerivation {
        pname = "evdev";
-       version = "1.3.0.0";
-       sha256 = "0jf9zbz04iyrmsr2fi8iq23nx48n38y7rs6czl226sd2dh10jhp3";
+       version = "2.0.0.1";
+       sha256 = "0ryq50g7z70rnv07pnvwssl0qrvhbljkq9yk1z8gj9kvqdsw9cmg";
        libraryHaskellDepends = [
-         base bytestring containers either extra hinotify monad-loops paths
-         posix-paths process rawfilepath safe streamly streamly-fsnotify
-         time unix
+         base bytestring containers extra monad-loops time unix
        ];
        libraryPkgconfigDepends = [ libevdev ];
        libraryToolDepends = [ c2hs ];
@@ -82220,6 +84007,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {inherit (pkgs) libevdev;};
 
+  "evdev-streamly" = callPackage
+    ({ mkDerivation, base, bytestring, containers, evdev, extra
+     , posix-paths, rawfilepath, streamly, streamly-fsnotify, unix
+     }:
+     mkDerivation {
+       pname = "evdev-streamly";
+       version = "0.0.1.0";
+       sha256 = "1bzmxkg5y7w6v5l6q5vzhr19j5vwbx4p4qxdq72f7f714ihn8nyp";
+       libraryHaskellDepends = [
+         base bytestring containers evdev extra posix-paths rawfilepath
+         streamly streamly-fsnotify unix
+       ];
+       description = "Bridge for working with evdev and streamly";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "eve" = callPackage
     ({ mkDerivation, base, containers, data-default, free, hspec
      , hspec-core, lens, mtl
@@ -82258,6 +84061,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 {
@@ -82645,6 +84459,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
@@ -82788,18 +84639,19 @@ self: {
      }) {};
 
   "exact-real" = callPackage
-    ({ mkDerivation, base, checkers, criterion, directory, doctest
-     , filepath, groups, integer-gmp, memoize, QuickCheck, random, tasty
+    ({ mkDerivation, base, Cabal, cabal-doctest, checkers, criterion
+     , doctest, groups, integer-gmp, QuickCheck, random, tasty
      , tasty-hunit, tasty-quickcheck, tasty-th
      }:
      mkDerivation {
        pname = "exact-real";
-       version = "0.12.2";
-       sha256 = "0rhaad2b6q7xzm8z61k21wjc3g8jgwpmxv8plgdb1r8dwzz23vmr";
-       libraryHaskellDepends = [ base integer-gmp memoize random ];
+       version = "0.12.4";
+       sha256 = "09i0pi141cmqc09mxgsmdk7n3a0rcmjc7w2j4a0ckf0i41vb9yni";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [ base integer-gmp random ];
        testHaskellDepends = [
-         base checkers directory doctest filepath groups QuickCheck random
-         tasty tasty-hunit tasty-quickcheck tasty-th
+         base checkers doctest groups QuickCheck random tasty tasty-hunit
+         tasty-quickcheck tasty-th
        ];
        benchmarkHaskellDepends = [ base criterion ];
        description = "Exact real arithmetic";
@@ -82918,16 +84770,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
@@ -83120,8 +84970,8 @@ self: {
      }:
      mkDerivation {
        pname = "exhaustive";
-       version = "1.1.8";
-       sha256 = "1nnylpjrrb6smmgl3d481wpkxpdw26yfa3jlw98p3xgm8k907486";
+       version = "1.1.9";
+       sha256 = "1mpqw30fwv6h5vwkbd5xzc5dn24l0185jzsrx71rmic9nx043xc6";
        libraryHaskellDepends = [
          base generics-sop template-haskell transformers
        ];
@@ -83169,6 +85019,31 @@ self: {
        broken = true;
      }) {inherit (pkgs) exif;};
 
+  "exigo-schema" = callPackage
+    ({ mkDerivation, aeson, base, binary, 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, th-lift-instances
+     }:
+     mkDerivation {
+       pname = "exigo-schema";
+       version = "0.2.0.2";
+       sha256 = "0kaja735bsgzywhfa16wg5kvjc1c89gvm503gxxyhkakacmp2002";
+       libraryHaskellDepends = [
+         aeson base binary bytestring persistent persistent-template
+         template-haskell text th-lift-instances
+       ];
+       testHaskellDepends = [
+         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;
+     }) {};
+
   "exinst" = callPackage
     ({ mkDerivation, base, binary, bytestring, constraints, deepseq
      , hashable, profunctors, QuickCheck, singletons, tasty, tasty-hunit
@@ -83176,8 +85051,8 @@ self: {
      }:
      mkDerivation {
        pname = "exinst";
-       version = "0.7";
-       sha256 = "01m50pixmrw6mrd04nxw6qwx0z5k857pn3nqfiybpmp4zbc3bwac";
+       version = "0.8";
+       sha256 = "08axj8yqnqbmxq4yi0fy2rffnkn7lcab2j13b9qlwl5ykc2jrhfh";
        libraryHaskellDepends = [
          base binary constraints deepseq hashable profunctors QuickCheck
          singletons
@@ -83198,8 +85073,8 @@ self: {
      }:
      mkDerivation {
        pname = "exinst-aeson";
-       version = "0.7";
-       sha256 = "1dn08xqcfp3bsgvrhcv491kdfmky6925wa33zry8aijwxkchva67";
+       version = "0.7.1";
+       sha256 = "1rl9sg6bqac944dh4v6xish6fw6x5mr6a937nyq0yrjmg8d3gswp";
        libraryHaskellDepends = [
          aeson base constraints exinst singletons
        ];
@@ -83219,8 +85094,8 @@ self: {
      }:
      mkDerivation {
        pname = "exinst-bytes";
-       version = "0.7";
-       sha256 = "05k2jzlz6aj5wwy3bnysszr6kw85n0j73wkda5vwcrsha4prmf9r";
+       version = "0.7.1";
+       sha256 = "0carx1qbs97pxj9bq6splar46myfjz8l0imqmy2nr868sf7an7q5";
        libraryHaskellDepends = [
          base bytes constraints exinst singletons
        ];
@@ -83240,8 +85115,8 @@ self: {
      }:
      mkDerivation {
        pname = "exinst-cereal";
-       version = "0.7";
-       sha256 = "1qdz4a4qzi3fbkigvng36hz5j322zbbwya2vrs0shja8ry6rvi74";
+       version = "0.7.1";
+       sha256 = "1ffya75sjy1b60a2c10zymshc8qi1b79rzgpa2mpvlr0glf5i32d";
        libraryHaskellDepends = [
          base cereal constraints exinst singletons
        ];
@@ -83289,8 +85164,8 @@ self: {
      }:
      mkDerivation {
        pname = "exinst-serialise";
-       version = "0.7";
-       sha256 = "0a51534sifdhq764qa9hrhwnv48f1y08a7f11mhhx3r23pxh4588";
+       version = "0.7.1";
+       sha256 = "06fqhxcqwam7160i2m0hsmbdkb0q21kv0vy5azilrbphhz4ycfvp";
        libraryHaskellDepends = [
          base constraints exinst serialise singletons
        ];
@@ -84052,8 +85927,8 @@ self: {
      }:
      mkDerivation {
        pname = "extensions";
-       version = "0.0.0.0";
-       sha256 = "0abvqqzcmfrwla3i7zx09wm74dw50s2rzhxnfs1gx4rs7c9rn4kb";
+       version = "0.0.0.1";
+       sha256 = "0wxkkdvsq8pqirw5w8ss20iyblw9197q420cpwnqzbl2xb0cjk6n";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -84070,8 +85945,6 @@ self: {
        ];
        description = "Parse Haskell Language Extensions";
        license = stdenv.lib.licenses.mpl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "external-sort" = callPackage
@@ -84091,39 +85964,20 @@ self: {
 
   "extra" = callPackage
     ({ mkDerivation, base, clock, directory, filepath, process
-     , QuickCheck, quickcheck-instances, semigroups, time, unix
-     }:
-     mkDerivation {
-       pname = "extra";
-       version = "1.6.21";
-       sha256 = "1gjx98w4w61g043k6rzc8i34cbxpcigi8lb6i7pp1vwp8w8jm5vl";
-       libraryHaskellDepends = [
-         base clock directory filepath process semigroups time unix
-       ];
-       testHaskellDepends = [
-         base directory filepath QuickCheck quickcheck-instances unix
-       ];
-       description = "Extra functions I use";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "extra_1_7_1" = callPackage
-    ({ mkDerivation, base, clock, directory, filepath, process
-     , QuickCheck, quickcheck-instances, semigroups, time, unix
+     , QuickCheck, quickcheck-instances, time, unix
      }:
      mkDerivation {
        pname = "extra";
-       version = "1.7.1";
-       sha256 = "0zshxv9dnd8vksncmb8dj4wvq2wdybzwxyhmy2zp6a81icm4azx4";
+       version = "1.7.5";
+       sha256 = "1cickrjvg4i25yn3qg4f0id0bmq115siysyqnh0yk9rwjlnrxyn9";
        libraryHaskellDepends = [
-         base clock directory filepath process semigroups time unix
+         base clock directory filepath process time unix
        ];
        testHaskellDepends = [
          base directory filepath QuickCheck quickcheck-instances unix
        ];
        description = "Extra functions I use";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "extract-dependencies" = callPackage
@@ -84316,8 +86170,8 @@ self: {
      }:
      mkDerivation {
        pname = "factory";
-       version = "0.3.2.1";
-       sha256 = "1vz273vni9335py69nlc2g92gkvy13rkfa238116g83qjjcx8w1f";
+       version = "0.3.2.2";
+       sha256 = "00nxadfipy92rpg7d3ypgigr51n4sn9jjh6n1gzxfjl6p7vq6myn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -84333,6 +86187,8 @@ self: {
        ];
        description = "Rational arithmetic in an irrational world";
        license = "GPL";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "facts" = callPackage
@@ -84569,8 +86425,8 @@ self: {
      }:
      mkDerivation {
        pname = "fakedata";
-       version = "0.5.0";
-       sha256 = "0xbdbxbj3phrzhg5ifp0s479sjrkm6p3pvvia2i4j1fmq313d9k7";
+       version = "0.6.1";
+       sha256 = "0qqc0hq7lg1s5fpflmnalcsy0043vqd8iiblwa6lvm45h7af8ii2";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers directory exceptions filepath hashable
@@ -84591,30 +86447,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "fakedata_0_6_1" = callPackage
+  "fakedata_0_7_1" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, directory
      , exceptions, filepath, gauge, hashable, hspec, hspec-discover
-     , random, template-haskell, text, time, unordered-containers
-     , vector, yaml
+     , random, string-random, template-haskell, text, time
+     , unordered-containers, vector, yaml
      }:
      mkDerivation {
        pname = "fakedata";
-       version = "0.6.1";
-       sha256 = "0qqc0hq7lg1s5fpflmnalcsy0043vqd8iiblwa6lvm45h7af8ii2";
+       version = "0.7.1";
+       sha256 = "1fbrfndwamwdnklbmyldhn45qxyyc61akbwvw0bmf645l0mkpn12";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers directory exceptions filepath hashable
-         random template-haskell text time unordered-containers vector yaml
+         random string-random template-haskell text time
+         unordered-containers vector yaml
        ];
        testHaskellDepends = [
          base bytestring containers directory exceptions filepath hashable
-         hspec hspec-discover random template-haskell text time
-         unordered-containers vector yaml
+         hspec hspec-discover random string-random template-haskell text
+         time unordered-containers vector yaml
        ];
        testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [
          base bytestring containers deepseq directory exceptions filepath
-         gauge hashable random template-haskell text time
+         gauge hashable random string-random template-haskell text time
          unordered-containers vector yaml
        ];
        description = "Library for producing fake data";
@@ -84622,14 +86479,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;
      }) {};
@@ -84653,8 +86525,8 @@ self: {
      }:
      mkDerivation {
        pname = "faktory";
-       version = "1.0.1.1";
-       sha256 = "1wz7f1ai73xc5n06db8mjbmbdyf5r9p78ysx3q1yiq32h2mvjd3m";
+       version = "1.0.1.2";
+       sha256 = "12pabsmy21il88qmdbg91152y9nzqci9y2cn9ljizlcndnsy7s5l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -84849,8 +86721,8 @@ self: {
      }:
      mkDerivation {
        pname = "fast-downward";
-       version = "0.2.0.0";
-       sha256 = "0a2ax0z326mf02p5wyp1d8knxj6afn92n9bqxav2qhkc2v5kijhw";
+       version = "0.2.1.0";
+       sha256 = "1gz1grd2f10pvmmk3klxhnwqg6mrdmgg23r5mblb4dflzpshffk1";
        libraryHaskellDepends = [
          base containers mtl process temporary text transformers
        ];
@@ -85077,8 +86949,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
@@ -85360,32 +87232,6 @@ self: {
      }:
      mkDerivation {
        pname = "fb";
-       version = "2.0.0";
-       sha256 = "0z56cibxp5f616vamj4jm76g2n33w22zz8pc9hhs33lm5m0nlncw";
-       libraryHaskellDepends = [
-         aeson attoparsec base bytestring conduit conduit-extra cryptonite
-         data-default http-client http-conduit http-types memory
-         monad-logger resourcet text time transformers transformers-base
-         unliftio unliftio-core unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base bytestring conduit containers data-default hspec
-         http-conduit HUnit QuickCheck resourcet text time transformers
-         unliftio
-       ];
-       description = "Bindings to Facebook's API";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "fb_2_1_1" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytestring, conduit
-     , conduit-extra, containers, cryptonite, data-default, hspec
-     , http-client, http-conduit, http-types, HUnit, memory
-     , monad-logger, QuickCheck, resourcet, text, time, transformers
-     , transformers-base, unliftio, unliftio-core, unordered-containers
-     }:
-     mkDerivation {
-       pname = "fb";
        version = "2.1.1";
        sha256 = "0j2rckrv1aksfp2wyiyffqg40jl927vs97fk2lyzkscz673jd9s9";
        libraryHaskellDepends = [
@@ -85401,7 +87247,6 @@ self: {
        ];
        description = "Bindings to Facebook's API";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "fb-persistent" = callPackage
@@ -85554,8 +87399,8 @@ self: {
      }:
      mkDerivation {
        pname = "fclabels";
-       version = "2.0.4";
-       sha256 = "1ks59vcliy2x9i01qxpd4k455m7wpcfhcldgmhkym9wmwfxy0sf2";
+       version = "2.0.5";
+       sha256 = "0ppvc1s5bvx38y6yd6ib1wxi3y2j438xzl9iqhpr4hc1zwvsi6rx";
        libraryHaskellDepends = [
          base base-orphans mtl template-haskell transformers
        ];
@@ -85823,6 +87668,8 @@ self: {
        pname = "feed";
        version = "1.3.0.1";
        sha256 = "0fdylvbrjlshgx398xpxx3y7mnrmpi1l2534mcv299afpm91yqcj";
+       revision = "1";
+       editedCabalFile = "0wlffsawz87ks8zf686q01qvcwzi3352l45f1yww5w063ih6j7ld";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base base-compat bytestring old-locale old-time safe text time
@@ -86462,10 +88309,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
@@ -86484,8 +88329,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
        ];
@@ -86499,8 +88344,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";
@@ -86535,10 +88380,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;
@@ -86709,6 +88552,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "file-embed_0_0_13_0" = callPackage
+    ({ mkDerivation, base, bytestring, directory, filepath
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "file-embed";
+       version = "0.0.13.0";
+       sha256 = "1sp1qq1ph2gr5a8ismn7n9vijnfwjyh38iqn338wa8mxn2mnhc6i";
+       libraryHaskellDepends = [
+         base bytestring directory filepath template-haskell
+       ];
+       testHaskellDepends = [ base filepath ];
+       description = "Use Template Haskell to embed file contents directly";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "file-embed-lzma" = callPackage
     ({ mkDerivation, base, base-compat, bytestring, directory, filepath
      , lzma, template-haskell, text, th-lift-instances, transformers
@@ -86868,8 +88728,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)";
@@ -87149,14 +89009,29 @@ 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_5_0" = callPackage
+    ({ mkDerivation, base, smallcheck, tasty, tasty-smallcheck
+     , transformers
+     }:
+     mkDerivation {
+       pname = "filtrable";
+       version = "0.1.5.0";
+       sha256 = "0glarxd5yaflyhy8ni6q0kzrhgwi8msr3q4zf6by80g2qd33kvh8";
+       libraryHaskellDepends = [ base transformers ];
+       testHaskellDepends = [ base smallcheck tasty tasty-smallcheck ];
        description = "Class of filtrable containers";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "fin" = callPackage
@@ -87364,8 +89239,6 @@ self: {
        ];
        description = "A better, more type-safe Enum";
        license = stdenv.lib.licenses.gpl3Plus;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "finitary-derive" = callPackage
@@ -87393,6 +89266,26 @@ self: {
        broken = true;
      }) {};
 
+  "finitary-optics" = callPackage
+    ({ mkDerivation, base, finitary, finite-typelits, hedgehog, hspec
+     , hspec-hedgehog, optics-core
+     }:
+     mkDerivation {
+       pname = "finitary-optics";
+       version = "1.0.0.0";
+       sha256 = "0is930yhcd1iqgbxn42ldzbh408inpsprw9psvnx61j6qm6p4cd7";
+       libraryHaskellDepends = [
+         base finitary finite-typelits optics-core
+       ];
+       testHaskellDepends = [
+         base hedgehog hspec hspec-hedgehog optics-core
+       ];
+       description = "Prisms and Isos between finitary types";
+       license = stdenv.lib.licenses.gpl3Plus;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "finite-field" = callPackage
     ({ mkDerivation, base, containers, deepseq, hashable, primes
      , QuickCheck, singletons, tasty, tasty-hunit, tasty-quickcheck
@@ -87525,18 +89418,6 @@ self: {
     ({ mkDerivation, base, doctest, Glob }:
      mkDerivation {
        pname = "first-class-families";
-       version = "0.7.0.0";
-       sha256 = "0dvlmfhnbbrr3yxq4idpipvlxda21qvayx6gk93f66jzcl5726my";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base doctest Glob ];
-       description = "First class type families";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "first-class-families_0_8_0_0" = callPackage
-    ({ mkDerivation, base, doctest, Glob }:
-     mkDerivation {
-       pname = "first-class-families";
        version = "0.8.0.0";
        sha256 = "190jl3vs7glkbm8ap90x9yzlj01yzxd818s3i0w4pz21b6d6sxav";
        revision = "1";
@@ -87545,7 +89426,6 @@ self: {
        testHaskellDepends = [ base doctest Glob ];
        description = "First class type families";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "first-class-instances" = callPackage
@@ -87603,8 +89483,8 @@ self: {
      }:
      mkDerivation {
        pname = "fishfood";
-       version = "0.0.1.9";
-       sha256 = "128m9zhn57jzz5ijkz54mlw70g0d1byp2gisw7wyrgddi0j3x3i5";
+       version = "0.0.1.11";
+       sha256 = "005jljanccyxj7j7lnkralir1lcinka5kapw0nv39pd1ibyc1nrb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -87618,6 +89498,8 @@ self: {
        ];
        description = "Calculates file-size frequency-distribution";
        license = "GPL";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "fit" = callPackage
@@ -87703,13 +89585,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
@@ -87932,13 +89814,19 @@ self: {
      }) {};
 
   "fixed-vector-hetero" = callPackage
-    ({ mkDerivation, base, deepseq, fixed-vector, primitive }:
+    ({ mkDerivation, base, Cabal, cabal-doctest, deepseq, doctest
+     , fixed-vector, primitive
+     }:
      mkDerivation {
        pname = "fixed-vector-hetero";
-       version = "0.5.0.0";
-       sha256 = "1446xsj030xr7zry2pqq0yxv4f0j46jmpisfmp357jb0n9l5kwm3";
+       version = "0.6.0.0";
+       sha256 = "1gc40wh887hd6am6kjswkxn9qnzxp30ni6larnq6ghrs5zalg67r";
+       revision = "1";
+       editedCabalFile = "041rz3cd2yi2k49crcbrqq1vkr4g6m5mczf2qik2avj124krq77f";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base deepseq fixed-vector primitive ];
-       description = "Generic heterogeneous vectors";
+       testHaskellDepends = [ base doctest fixed-vector ];
+       description = "Library for working with product types generically";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -88219,8 +90107,8 @@ self: {
      }:
      mkDerivation {
        pname = "flaccuraterip";
-       version = "0.3.8";
-       sha256 = "0ixk5vbnpnh3j262k5igvnglm4brypsv3b839xc51hlc29q7v9qs";
+       version = "0.3.9";
+       sha256 = "18nziy9x83x34nkfz3bzy1nmj7fxzcpxrkzp9gmb1lvgy9igrric";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -88281,20 +90169,25 @@ self: {
 
   "flat" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, deepseq
-     , dlist, ghc-prim, mono-traversable, pretty, primitive, QuickCheck
-     , tasty, tasty-hunit, tasty-quickcheck, text, vector
+     , dlist, filepath, ghc-prim, hashable, mono-traversable, pretty
+     , primitive, QuickCheck, quickcheck-instances, quickcheck-text
+     , semigroups, tasty, tasty-hunit, tasty-quickcheck, text
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "flat";
-       version = "0.3.4";
-       sha256 = "1v7c5nrvhys4flq5xacws59w25qzbb6mvwhvk4f6jb6impmqnwyw";
+       version = "0.4.4";
+       sha256 = "02i4nzzkmm11sp312k2d3d3g0gm2gzhh3ibczxxscl986svam7p3";
        libraryHaskellDepends = [
-         array base bytestring containers deepseq dlist ghc-prim
-         mono-traversable pretty primitive text vector
+         array base bytestring containers deepseq dlist ghc-prim hashable
+         mono-traversable pretty primitive semigroups text
+         unordered-containers vector
        ];
        testHaskellDepends = [
-         array base bytestring containers deepseq ghc-prim QuickCheck tasty
-         tasty-hunit tasty-quickcheck text
+         array base bytestring containers deepseq dlist filepath ghc-prim
+         mono-traversable pretty QuickCheck quickcheck-instances
+         quickcheck-text tasty tasty-hunit tasty-quickcheck text
+         unordered-containers vector
        ];
        description = "Principled and efficient bit-oriented binary serialization";
        license = stdenv.lib.licenses.bsd3;
@@ -88617,6 +90510,17 @@ self: {
        broken = true;
      }) {};
 
+  "float128" = callPackage
+    ({ mkDerivation, base, integer-gmp }:
+     mkDerivation {
+       pname = "float128";
+       version = "0.1";
+       sha256 = "0f4nrj5qy6j6d9ll22zjkbgvw2rx0x2w7nllhl929zdbmhxrjk73";
+       libraryHaskellDepends = [ base integer-gmp ];
+       description = "FFI bindings for C _Float128";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "floating-bits" = callPackage
     ({ mkDerivation, base, criterion }:
      mkDerivation {
@@ -88651,8 +90555,8 @@ self: {
        pname = "flock";
        version = "0.3.1.8";
        sha256 = "1g1gf7qnlqkl57h28nzxnbzj7v2h73czffp5y7s7jm9vbihcwd4n";
-       revision = "5";
-       editedCabalFile = "19jqvzacd1639r8c8vs2fdng188mjg8i76x0fghda71d7a2jgp97";
+       revision = "6";
+       editedCabalFile = "04cz4avwglnjgmsbkaadlfrzaadcfkcqzrbc4x9nbzi695zs8k21";
        libraryHaskellDepends = [
          base lifted-base monad-control transformers unix
        ];
@@ -88670,8 +90574,8 @@ self: {
      }:
      mkDerivation {
        pname = "floskell";
-       version = "0.10.2";
-       sha256 = "1id1bwvzl5x4wq6i2ailvmvy2gcdzfgs8q59pg7s2j5cv35gf80h";
+       version = "0.10.4";
+       sha256 = "14cwby2xyv2cviknpji6117jz6zfjrayrfvc75481g229yhcx156";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -88694,18 +90598,16 @@ self: {
        ];
        description = "A flexible Haskell source code pretty printer";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "flow" = callPackage
-    ({ mkDerivation, base, doctest, QuickCheck, template-haskell }:
+    ({ mkDerivation, base, HUnit }:
      mkDerivation {
        pname = "flow";
-       version = "1.0.20";
-       sha256 = "1pxb87rmw1ryls8k4g82wy1gg6wxw5n4s4nyn248gnam1xgls9li";
+       version = "1.0.21";
+       sha256 = "1zig5jwqflcs6akhxqkn9h7iwq7ypaz4cx7zwbqfy7sap6sdq2il";
        libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base doctest QuickCheck template-haskell ];
+       testHaskellDepends = [ base HUnit ];
        description = "Write more understandable Haskell";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -88725,17 +90627,18 @@ self: {
      }) {};
 
   "flow2dot" = callPackage
-    ({ mkDerivation, base, containers, mtl, parsec, QuickCheck
-     , utf8-string
+    ({ mkDerivation, base, containers, dotgen, mtl, parsec, QuickCheck
      }:
      mkDerivation {
        pname = "flow2dot";
-       version = "0.9.0.3";
-       sha256 = "1pf60wpwsvxxgqkz3zh2qlcyz9pyd8axi41y5y6pn77n9x8p2613";
+       version = "0.9.2";
+       sha256 = "07bnyzcaf5jlhkrsqw6y880z9x5p6y8kh2nfwz4xds9cgk61r18j";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [
-         base containers mtl parsec QuickCheck utf8-string
+       libraryHaskellDepends = [ base containers dotgen mtl parsec ];
+       executableHaskellDepends = [ base containers dotgen mtl parsec ];
+       testHaskellDepends = [
+         base containers dotgen mtl parsec QuickCheck
        ];
        description = "Library and binary to generate sequence/flow diagrams from plain text source";
        license = stdenv.lib.licenses.bsd3;
@@ -89226,6 +91129,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "fmlist_0_9_4" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "fmlist";
+       version = "0.9.4";
+       sha256 = "19h95ph7lh7llw6j1v1rssrdi5k7xw8x0iac9rgzss371s2w3g9d";
+       libraryHaskellDepends = [ base ];
+       description = "FoldMap lists";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "fmt" = callPackage
     ({ mkDerivation, base, base64-bytestring, bytestring, call-stack
      , containers, criterion, deepseq, doctest, doctest-discover
@@ -89383,8 +91298,8 @@ self: {
      }:
      mkDerivation {
        pname = "fold-debounce-conduit";
-       version = "0.2.0.4";
-       sha256 = "0mhnc5j8jnmf4rnb5cj75jlyj9xc4gj3dawywcw26zz189j540fj";
+       version = "0.2.0.5";
+       sha256 = "1qvr3wqqv2lvs22ddmalavggp8a4a50d056a50dsz6lcml1k6hdg";
        libraryHaskellDepends = [
          base conduit fold-debounce resourcet stm transformers
          transformers-base
@@ -89428,6 +91343,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "foldl_1_4_8" = callPackage
+    ({ mkDerivation, base, bytestring, comonad, containers
+     , contravariant, criterion, doctest, hashable, mwc-random
+     , primitive, profunctors, semigroupoids, text, transformers
+     , unordered-containers, vector, vector-builder
+     }:
+     mkDerivation {
+       pname = "foldl";
+       version = "1.4.8";
+       sha256 = "1jlrcj9nq8xwlrsny6fzfizai3ilc1zbw38abgf35ryl23r5j6pd";
+       revision = "1";
+       editedCabalFile = "09jz01w3brgd8fwya56qgg0riv9vxzc0r9lkkhkx54nflari2rig";
+       libraryHaskellDepends = [
+         base bytestring comonad containers contravariant hashable
+         mwc-random primitive profunctors semigroupoids text transformers
+         unordered-containers vector vector-builder
+       ];
+       testHaskellDepends = [ base doctest ];
+       benchmarkHaskellDepends = [ base criterion ];
+       description = "Composable, streaming, and efficient left folds";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "foldl-exceptions" = callPackage
     ({ mkDerivation, base, doctest, foldl, safe-exceptions }:
      mkDerivation {
@@ -89943,6 +91882,8 @@ self: {
        pname = "forma";
        version = "1.1.3";
        sha256 = "0pd2qzibffbkw2c4mk687yg109pl0nfjq0kpwi2cl0l8d0qlyv0c";
+       revision = "1";
+       editedCabalFile = "0p8cxv068d2fhpym28p49wxsiz6qdm1gb8mgw86lgs8yykqzwsy8";
        libraryHaskellDepends = [
          aeson base containers mtl text unordered-containers
        ];
@@ -90367,6 +92308,36 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "fourmolu" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, directory
+     , dlist, exceptions, filepath, ghc-lib-parser, gitrev, hspec
+     , hspec-discover, mtl, optparse-applicative, path, path-io, syb
+     , text, yaml
+     }:
+     mkDerivation {
+       pname = "fourmolu";
+       version = "0.1.0.0";
+       sha256 = "1kc7hhaqn7sghbcfj9xg8r1pvrmhawy9y2rhizfxzm7z034bgjyk";
+       revision = "1";
+       editedCabalFile = "1j6g6rzanjbdqf9svhjx0bbsy504xyc6vcn1ac3vgn4vp367wz0y";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers directory dlist exceptions
+         filepath ghc-lib-parser mtl syb text yaml
+       ];
+       executableHaskellDepends = [
+         base ghc-lib-parser gitrev optparse-applicative text
+       ];
+       testHaskellDepends = [
+         base containers filepath hspec path path-io text
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "A formatter for Haskell source code";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "fpco-api" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
      , blaze-html, bytestring, cereal, containers, data-default, deepseq
@@ -90640,23 +92611,27 @@ self: {
      }) {};
 
   "franz" = callPackage
-    ({ mkDerivation, base, bytestring, cereal, containers, cpu
-     , directory, fast-builder, filepath, fsnotify, network, process
-     , sendfile, stm, stm-delay, transformers, unordered-containers
-     , vector
+    ({ mkDerivation, base, bytestring, cereal, concurrent-resource-map
+     , containers, cpu, deepseq, directory, fast-builder, filepath
+     , fsnotify, mtl, network, optparse-applicative, process, retry
+     , sendfile, stm, stm-delay, transformers, unboxed-ref
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "franz";
-       version = "0.2.1";
-       sha256 = "0azkvqy4xgrs4wac6rd23rqc051hmm2r3nmdhgk8p2fs5cdkhncx";
+       version = "0.3.0.1";
+       sha256 = "0lzi5ckz2x88yayrlq5w15wd6x05bx44210b10w0yz5vg9dfz2y0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bytestring cereal containers cpu directory fast-builder
-         filepath fsnotify network process sendfile stm stm-delay
-         transformers unordered-containers vector
+         base bytestring cereal concurrent-resource-map containers cpu
+         deepseq directory fast-builder filepath fsnotify mtl network
+         process retry sendfile stm stm-delay transformers unboxed-ref
+         unordered-containers vector
+       ];
+       executableHaskellDepends = [
+         base bytestring network optparse-applicative stm vector
        ];
-       executableHaskellDepends = [ base bytestring network stm ];
        description = "Append-only database";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -90712,6 +92687,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
@@ -90726,8 +92703,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
@@ -90744,23 +92721,11 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "free-categories";
-       version = "0.1.0.0";
-       sha256 = "0lzal6vbh1zjcag4dwmhnsv4j66n00gkl0cmf0pssdjwwywxgpwx";
-       libraryHaskellDepends = [ base ];
-       description = "free categories";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "free-categories_0_2_0_0" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "free-categories";
        version = "0.2.0.0";
        sha256 = "0932bvy2cgmancjy4invm9m16w27kawlfmd3zy9xi8sl9a62rp38";
        libraryHaskellDepends = [ base ];
        description = "free categories";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "free-category" = callPackage
@@ -90769,8 +92734,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
@@ -90808,16 +92773,17 @@ self: {
      }) {};
 
   "free-functors" = callPackage
-    ({ mkDerivation, algebraic-classes, base, bifunctors, comonad
-     , contravariant, profunctors, template-haskell, transformers
+    ({ mkDerivation, base, bifunctors, comonad, contravariant
+     , derive-lifted-instances, profunctors, template-haskell
+     , transformers
      }:
      mkDerivation {
        pname = "free-functors";
-       version = "1.0.1";
-       sha256 = "1y1cmm4z5s5a1ivs30vwb2rbgc9q24y6z2a9in3azwpgfb1x4fw0";
+       version = "1.1.2";
+       sha256 = "1qkn7irp1zids0dvi7xn17kk8wmwkqnys78qy5n27dhsgi2l1avs";
        libraryHaskellDepends = [
-         algebraic-classes base bifunctors comonad contravariant profunctors
-         template-haskell transformers
+         base bifunctors comonad contravariant derive-lifted-instances
+         profunctors template-haskell transformers
        ];
        description = "Free functors, adjoint to functors that forget class constraints";
        license = stdenv.lib.licenses.bsd3;
@@ -91168,6 +93134,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
@@ -91177,6 +93154,8 @@ self: {
        pname = "freer-simple";
        version = "1.2.1.1";
        sha256 = "0vqbri72xxk6is0kk2yxfpqxixq3h047rn153i16hhpppsp3xk17";
+       revision = "1";
+       editedCabalFile = "10c7m8v7s8pqmhyym014xnb875z41sh3sq27b7sy7j15ay0vw694";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -91330,19 +93309,6 @@ self: {
      }) {};
 
   "freetype2" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "freetype2";
-       version = "0.1.2";
-       sha256 = "00p3zb5iip9ggkapw4jkmpypnl8s7l6q9mrl66q07schi0lq0zji";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base ];
-       description = "Haskell binding for FreeType 2 library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "freetype2_0_2_0" = callPackage
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "freetype2";
@@ -91354,7 +93320,6 @@ self: {
        testHaskellDepends = [ base template-haskell ];
        description = "Haskell bindings for FreeType 2 library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "french-cards" = callPackage
@@ -91426,8 +93391,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
@@ -91966,8 +93931,8 @@ self: {
      }:
      mkDerivation {
        pname = "ftp-client";
-       version = "0.5.1.3";
-       sha256 = "1alk8l8i5izdy5rk5qnig4wn0wd08pgnaixqq874mxwxhpak4c3f";
+       version = "0.5.1.4";
+       sha256 = "0c2xn2q24imrfgsx4zxzi24ciwkrly6n47lc5k5406j5b4znn5lf";
        libraryHaskellDepends = [
          attoparsec base bytestring connection containers exceptions network
          transformers
@@ -92432,25 +94397,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.5.1";
+       sha256 = "07hwsy8nly4sps3fsyfmq54cwfb850j1i1darwsyw24ignbd60j4";
        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;
@@ -92724,16 +94691,16 @@ self: {
 
   "fused-effects" = callPackage
     ({ mkDerivation, base, containers, gauge, hedgehog, hedgehog-fn
-     , inspection-testing, markdown-unlit, mtl, tasty, tasty-hedgehog
+     , inspection-testing, markdown-unlit, tasty, tasty-hedgehog
      , tasty-hunit, transformers
      }:
      mkDerivation {
        pname = "fused-effects";
-       version = "1.0.2.0";
-       sha256 = "0dy8m54fm3gndj0bda0savl80w7drj8h113bhbi2439wl3x02y6x";
+       version = "1.0.2.2";
+       sha256 = "1n9nal5kz2gpi58jc7xspj100ibn582f8vgndc9ra84fbp380yy2";
        libraryHaskellDepends = [ base transformers ];
        testHaskellDepends = [
-         base containers hedgehog hedgehog-fn inspection-testing mtl tasty
+         base containers hedgehog hedgehog-fn inspection-testing tasty
          tasty-hedgehog tasty-hunit transformers
        ];
        testToolDepends = [ markdown-unlit ];
@@ -92742,14 +94709,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
@@ -92757,33 +94745,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
@@ -92793,8 +94794,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
@@ -92837,6 +94838,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
@@ -92884,31 +94905,31 @@ self: {
 
   "futhark" = callPackage
     ({ mkDerivation, aeson, alex, ansi-terminal, array, base, binary
-     , blaze-html, bytestring, cmark-gfm, containers
-     , data-binary-ieee754, directory, directory-tree, dlist, file-embed
-     , filepath, free, gitrev, happy, haskeline, language-c-quote
-     , mainland-pretty, megaparsec, mtl, neat-interpolation, parallel
-     , parser-combinators, pcg-random, process, process-extras
-     , QuickCheck, regex-tdfa, srcloc, tasty, tasty-hunit
-     , tasty-quickcheck, template-haskell, temporary, terminal-size
-     , text, time, transformers, unordered-containers, utf8-string
-     , vector, vector-binary-instances, versions, zip-archive, zlib
+     , blaze-html, bytestring, cmark-gfm, containers, directory
+     , directory-tree, dlist, file-embed, filepath, free, gitrev, happy
+     , haskeline, language-c-quote, mainland-pretty, megaparsec, mtl
+     , neat-interpolation, parallel, parser-combinators, pcg-random
+     , process, process-extras, QuickCheck, regex-tdfa, srcloc, tasty
+     , tasty-hunit, tasty-quickcheck, template-haskell, temporary
+     , terminal-size, text, time, transformers, unordered-containers
+     , utf8-string, vector, vector-binary-instances, versions
+     , zip-archive, zlib
      }:
      mkDerivation {
        pname = "futhark";
-       version = "0.15.6";
-       sha256 = "16abw20ziw3ik28dry0nr63glmszzzw92dcz1vzm4q76j9sjl0py";
+       version = "0.16.3";
+       sha256 = "0y9g7nldcx2y7h3gb652i5r3lfvbriaqfqs2gnxym1r9w9kki0si";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson ansi-terminal array base binary blaze-html bytestring
-         cmark-gfm containers data-binary-ieee754 directory directory-tree
-         dlist file-embed filepath free gitrev haskeline language-c-quote
-         mainland-pretty megaparsec mtl neat-interpolation parallel
-         pcg-random process process-extras regex-tdfa srcloc
-         template-haskell temporary terminal-size text time transformers
-         unordered-containers utf8-string vector vector-binary-instances
-         versions zip-archive zlib
+         cmark-gfm containers directory directory-tree dlist file-embed
+         filepath free gitrev haskeline language-c-quote mainland-pretty
+         megaparsec mtl neat-interpolation parallel pcg-random process
+         process-extras regex-tdfa srcloc template-haskell temporary
+         terminal-size text time transformers unordered-containers
+         utf8-string vector vector-binary-instances versions zip-archive
+         zlib
        ];
        libraryToolDepends = [ alex happy ];
        executableHaskellDepends = [ base text ];
@@ -93014,14 +95035,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
@@ -93432,8 +95453,8 @@ self: {
      }:
      mkDerivation {
        pname = "gamgee";
-       version = "1.2.0";
-       sha256 = "0q7r4bspxsqaswcy9c90wl7bh19y0k1lds0rx1m0cla7rg5ixra4";
+       version = "1.2.1";
+       sha256 = "0kfaqxwnrpp9g6iz6s33b7lngw00l8n9bv9ssvw73dhh3r0rsj2b";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -93601,6 +95622,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "gather" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "gather";
+       version = "0.1.0.0";
+       sha256 = "0ajh8ygks61knc17vgsm5dsnqhkcrz2s0gaw6xyppq415wijgv0m";
+       libraryHaskellDepends = [ base ];
+       description = "An applicative for parsing unordered things, heterogenous sorting";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "gauge" = callPackage
     ({ mkDerivation, base, basement, bytestring, deepseq, directory
      , foundation, process, vector
@@ -93667,31 +95699,33 @@ self: {
      }) {};
 
   "gcodehs" = callPackage
-    ({ mkDerivation, ansi-wl-pprint, array, attoparsec, base
-     , bytestring, containers, double-conversion, mtl
+    ({ mkDerivation, ansi-wl-pprint, attoparsec, base, bytestring
+     , containers, double-conversion, hspec, hspec-discover
      , optparse-applicative, pipes, pipes-attoparsec, pipes-bytestring
-     , pipes-parse, pipes-safe, pipes-text, text, vty
+     , pipes-parse, pipes-safe, template-haskell, text, transformers
      }:
      mkDerivation {
        pname = "gcodehs";
-       version = "0.1.1.0";
-       sha256 = "1vlq8r4gf43bxly20l3aimg9p81rf64g35bngmvbkx7l218yvcjn";
+       version = "0.1.2.0";
+       sha256 = "09200kd2li6rlb7anvda5j2yj3ykr4lbm6a8yd887zz7j2j0hgyd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         ansi-wl-pprint array attoparsec base bytestring containers
-         double-conversion mtl pipes pipes-attoparsec pipes-bytestring text
-         vty
+         ansi-wl-pprint attoparsec base bytestring containers
+         double-conversion pipes pipes-attoparsec pipes-bytestring
+         pipes-parse pipes-safe template-haskell text transformers
        ];
        executableHaskellDepends = [
-         attoparsec base bytestring double-conversion optparse-applicative
-         pipes pipes-attoparsec pipes-bytestring pipes-parse pipes-safe
-         pipes-text text
+         attoparsec base bytestring containers double-conversion
+         optparse-applicative pipes pipes-safe text transformers
        ];
+       testHaskellDepends = [
+         ansi-wl-pprint attoparsec base bytestring hspec hspec-discover text
+       ];
+       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
@@ -94070,6 +96104,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
@@ -94344,39 +96432,45 @@ self: {
 
   "generic-data" = callPackage
     ({ mkDerivation, base, base-orphans, contravariant, criterion
-     , deepseq, generic-lens, one-liner, show-combinators, tasty
-     , tasty-hunit
+     , deepseq, doctest, generic-lens, ghc-boot-th, Glob, one-liner
+     , QuickCheck, show-combinators, tasty, tasty-hunit
      }:
      mkDerivation {
        pname = "generic-data";
-       version = "0.7.0.0";
-       sha256 = "156d8zx425bpghp903260x1fdgnvwkyd7483mdjdg5l54ff9via8";
+       version = "0.8.3.0";
+       sha256 = "090qwd898sacn0d4ryfhbx0jdcvhy84df5f10929zng7swh88hk7";
        libraryHaskellDepends = [
-         base base-orphans contravariant show-combinators
+         base base-orphans contravariant ghc-boot-th show-combinators
        ];
        testHaskellDepends = [
-         base generic-lens one-liner tasty tasty-hunit
+         base doctest generic-lens Glob one-liner QuickCheck
+         show-combinators tasty tasty-hunit
        ];
        benchmarkHaskellDepends = [ base criterion deepseq ];
        description = "Deriving instances with GHC.Generics and related utilities";
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "generic-data_0_8_3_0" = callPackage
-    ({ mkDerivation, base, base-orphans, contravariant, criterion
-     , deepseq, doctest, generic-lens, ghc-boot-th, Glob, one-liner
+  "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.8.3.0";
-       sha256 = "090qwd898sacn0d4ryfhbx0jdcvhy84df5f10929zng7swh88hk7";
+       version = "0.9.1.0";
+       sha256 = "0p58z70wp3vapxrwg7hkr5n6px7hws9398v9shc08c2aigq36kqa";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         base base-orphans contravariant ghc-boot-th show-combinators
+         ap-normalize base base-orphans contravariant ghc-boot-th
+         show-combinators
        ];
        testHaskellDepends = [
-         base doctest generic-lens Glob one-liner QuickCheck
-         show-combinators tasty tasty-hunit
+         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";
@@ -94385,15 +96479,17 @@ self: {
      }) {};
 
   "generic-data-surgery" = callPackage
-    ({ mkDerivation, base, first-class-families, generic-data, tasty
-     , tasty-hunit
+    ({ mkDerivation, base, first-class-families, generic-data
+     , show-combinators, tasty, tasty-hunit
      }:
      mkDerivation {
        pname = "generic-data-surgery";
-       version = "0.2.1.0";
-       sha256 = "0mjx8yi4f1wvf5w2wp5vzzrh3z5n6900qsp2lbhd2xzzq4zlvzy7";
+       version = "0.3.0.0";
+       sha256 = "1dg9mg10g0abs21wksplnaqgig42jb6zvk7xqwj2mkl5yln3h9is";
        libraryHaskellDepends = [ base first-class-families generic-data ];
-       testHaskellDepends = [ base generic-data tasty tasty-hunit ];
+       testHaskellDepends = [
+         base generic-data show-combinators tasty tasty-hunit
+       ];
        description = "Surgery for generic data types";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -94468,25 +96564,6 @@ self: {
      }) {};
 
   "generic-lens" = callPackage
-    ({ mkDerivation, base, criterion, deepseq, doctest, HUnit
-     , inspection-testing, lens, profunctors, QuickCheck, tagged, text
-     }:
-     mkDerivation {
-       pname = "generic-lens";
-       version = "1.2.0.1";
-       sha256 = "0dl7xrrrrbcsz6m69liiz6r8jaa7yi1h8ppgxj94r2zi7pjmwvwf";
-       libraryHaskellDepends = [ base profunctors tagged text ];
-       testHaskellDepends = [
-         base doctest HUnit inspection-testing lens profunctors
-       ];
-       benchmarkHaskellDepends = [
-         base criterion deepseq lens QuickCheck
-       ];
-       description = "Generically derive traversals, lenses and prisms";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "generic-lens_2_0_0_0" = callPackage
     ({ mkDerivation, base, doctest, generic-lens-core, HUnit
      , inspection-testing, lens, profunctors, text
      }:
@@ -94502,7 +96579,6 @@ self: {
        ];
        description = "Generically derive traversals, lenses and prisms";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "generic-lens-core" = callPackage
@@ -94583,10 +96659,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "generic-monoid";
-       version = "0.1.0.0";
-       sha256 = "0jzhmy6vi38p3cnlvi4hw59zga239y67nszzl7zscx263wsk7q0w";
-       revision = "1";
-       editedCabalFile = "1xsgnb87k80p3gn0jyiv3a1c6g77q8sqml6bmbpppfa24z8paa1p";
+       version = "0.1.0.1";
+       sha256 = "1pradfv1i2z73f3vxx78ahmfsdszcgi44kn29aww2hdgf2np5l6g";
        libraryHaskellDepends = [ base ];
        description = "Derive monoid instances for product types";
        license = stdenv.lib.licenses.bsd3;
@@ -94616,6 +96690,8 @@ self: {
        pname = "generic-optics-lite";
        version = "0.1";
        sha256 = "0vf5sk1narj69pdhjqxjj0w3w3i5lxjxn8p98xp8dj0jws4mx9xi";
+       revision = "1";
+       editedCabalFile = "1z6bglkw2lvwlxjs0dlmr9wa4rh73pkzhqlg5dq88q5p9d51cy09";
        libraryHaskellDepends = [ base generic-lens-lite optics-core ];
        testHaskellDepends = [ base optics-core ];
        description = "Monomorphic field opics like with generic-lens";
@@ -95098,27 +97174,12 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity";
-       version = "0.10.0.2";
-       sha256 = "1k6pba9zal7385838b9w9ybhk5742jwfy8bqa921zi08mv7vgqlp";
-       libraryHaskellDepends = [ base QuickCheck random validity ];
-       testHaskellDepends = [ base hspec hspec-core QuickCheck ];
-       description = "Testing utilities for the validity library";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "genvalidity_0_11_0_0" = callPackage
-    ({ mkDerivation, base, hspec, hspec-core, QuickCheck, random
-     , validity
-     }:
-     mkDerivation {
-       pname = "genvalidity";
        version = "0.11.0.0";
        sha256 = "0kqhmgq7p94980br47jd6k9m2vjb62idx8x5hrcmybf0dakyscbl";
        libraryHaskellDepends = [ base QuickCheck random validity ];
        testHaskellDepends = [ base hspec hspec-core QuickCheck ];
        description = "Testing utilities for the validity library";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "genvalidity-aeson" = callPackage
@@ -95144,26 +97205,6 @@ self: {
      }) {};
 
   "genvalidity-bytestring" = callPackage
-    ({ mkDerivation, base, bytestring, deepseq, genvalidity
-     , genvalidity-hspec, hspec, QuickCheck, validity
-     , validity-bytestring
-     }:
-     mkDerivation {
-       pname = "genvalidity-bytestring";
-       version = "0.5.0.1";
-       sha256 = "00ps3aq4dz1id3k50kwqbkng7ygs8yb8fmz7yv9s4byrf5gh7kpq";
-       libraryHaskellDepends = [
-         base bytestring genvalidity QuickCheck validity validity-bytestring
-       ];
-       testHaskellDepends = [
-         base bytestring deepseq genvalidity genvalidity-hspec hspec
-         QuickCheck validity
-       ];
-       description = "GenValidity support for ByteString";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "genvalidity-bytestring_0_6_0_0" = callPackage
     ({ mkDerivation, base, bytestring, criterion, deepseq, genvalidity
      , genvalidity-criterion, genvalidity-hspec, hspec, QuickCheck
      , random, validity, validity-bytestring
@@ -95186,7 +97227,6 @@ self: {
        ];
        description = "GenValidity support for ByteString";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "genvalidity-containers" = callPackage
@@ -95212,24 +97252,32 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "genvalidity-criterion" = callPackage
-    ({ mkDerivation, base, criterion, deepseq, genvalidity, QuickCheck
+  "genvalidity-containers_0_9_0_0" = callPackage
+    ({ mkDerivation, base, containers, criterion, genvalidity
+     , genvalidity-criterion, genvalidity-hspec, genvalidity-property
+     , hspec, QuickCheck, validity, validity-containers
      }:
      mkDerivation {
-       pname = "genvalidity-criterion";
-       version = "0.0.0.0";
-       sha256 = "0fd2079vh0pz3qkii9x7vwslix2mkx5h41ci0bblqxdhvsvbfp9r";
+       pname = "genvalidity-containers";
+       version = "0.9.0.0";
+       sha256 = "0g9drk60pf78j7qqh01a1yjqz93rv5irwhgi27qjda6siii5r3bk";
        libraryHaskellDepends = [
-         base criterion deepseq genvalidity QuickCheck
+         base containers genvalidity QuickCheck validity validity-containers
+       ];
+       testHaskellDepends = [
+         base containers genvalidity genvalidity-hspec genvalidity-property
+         hspec QuickCheck validity validity-containers
        ];
        benchmarkHaskellDepends = [
-         base criterion genvalidity QuickCheck
+         base containers criterion genvalidity genvalidity-criterion
+         QuickCheck
        ];
-       description = "Criterion benchmarks for generators";
+       description = "GenValidity support for containers";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "genvalidity-criterion_0_2_0_0" = callPackage
+  "genvalidity-criterion" = callPackage
     ({ mkDerivation, base, criterion, deepseq, genvalidity, QuickCheck
      }:
      mkDerivation {
@@ -95244,7 +97292,6 @@ self: {
        ];
        description = "Criterion benchmarks for generators";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "genvalidity-hspec" = callPackage
@@ -95388,15 +97435,15 @@ self: {
      }) {};
 
   "genvalidity-mergeful" = callPackage
-    ({ mkDerivation, base, containers, genvalidity
-     , genvalidity-containers, genvalidity-hspec
+    ({ mkDerivation, base, containers, criterion, genvalidity
+     , genvalidity-containers, genvalidity-criterion, genvalidity-hspec
      , genvalidity-hspec-aeson, genvalidity-time, genvalidity-uuid
      , hspec, mergeful, mtl, pretty-show, QuickCheck, random, time, uuid
      }:
      mkDerivation {
        pname = "genvalidity-mergeful";
-       version = "0.1.0.0";
-       sha256 = "04vk1jrn69i61l445y3nyw8pklfgbfcja30ghjvcrxxdf9nlmciy";
+       version = "0.2.0.0";
+       sha256 = "0mzlsa2rxj5dsrkbvpsilkb895cqw11iswfvjkfnwmimm8wg7c8q";
        libraryHaskellDepends = [
          base containers genvalidity genvalidity-containers genvalidity-time
          mergeful QuickCheck
@@ -95406,6 +97453,9 @@ self: {
          genvalidity-uuid hspec mergeful mtl pretty-show QuickCheck random
          time uuid
        ];
+       benchmarkHaskellDepends = [
+         base criterion genvalidity-criterion mergeful
+       ];
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -95420,8 +97470,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-mergeless";
-       version = "0.1.0.0";
-       sha256 = "0bhpbfydh78ia759y9c8hbf6j656g4b6v8j9pjg8chnbx9dzgn1m";
+       version = "0.2.0.0";
+       sha256 = "02p71gnih7xcrbfkaw76jjppz19xjv41idbgwqr93lrjs2qdyj7h";
        libraryHaskellDepends = [
          base containers genvalidity genvalidity-containers genvalidity-time
          mergeless QuickCheck
@@ -96068,6 +98118,19 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "ghc-byteorder" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "ghc-byteorder";
+       version = "4.11.0.0.10";
+       sha256 = "1dhzd7ygwm7b3hsrlm48iq4p634laby4hf7c8i7xp0c1g64hmrc6";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       doHaddock = false;
+       description = "\"GHC.ByteOrder\" API Compatibility Layer";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "ghc-call-stack-extras" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -96079,7 +98142,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ghc-check" = callPackage
+  "ghc-check_0_3_0_1" = callPackage
     ({ mkDerivation, base, filepath, ghc, ghc-paths, process
      , template-haskell, transformers
      }:
@@ -96092,6 +98155,41 @@ self: {
        ];
        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
+     , transformers
+     }:
+     mkDerivation {
+       pname = "ghc-check";
+       version = "0.5.0.1";
+       sha256 = "08z7jgp2gdf1ki69w34i87g5bhrcv2laqsjma5ki97l62bgsr808";
+       libraryHaskellDepends = [
+         base containers directory filepath ghc ghc-paths process
+         safe-exceptions template-haskell transformers
+       ];
+       description = "detect mismatches between compile-time and run-time versions of the ghc api";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "ghc-clippy-plugin" = callPackage
+    ({ mkDerivation, base, dhall, ghc, text, text-icu
+     , text-regex-replace
+     }:
+     mkDerivation {
+       pname = "ghc-clippy-plugin";
+       version = "0.0.0.1";
+       sha256 = "03d49d02bpic43d83a7zrj25wsnxr3868xhh77x7a8qnd25gy5m6";
+       revision = "1";
+       editedCabalFile = "17qdn7fj2kib8dx8nwbhsjzg2h8p5az4yv284df6hsrm099lza8g";
+       libraryHaskellDepends = [
+         base dhall ghc text text-icu text-regex-replace
+       ];
+       description = "Override GHC error messages to the user's liking";
+       license = stdenv.lib.licenses.bsd3;
      }) {};
 
   "ghc-compact_0_1_0_0" = callPackage
@@ -96343,15 +98441,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ghc-exactprint_0_6_3" = 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";
-       sha256 = "0da4gkirill2rpxr9gl4cbcwpp4a16z9bdgyv5nkdps3msh93214";
+       version = "0.6.3.2";
+       sha256 = "1bzf8mafz20pn7cq2483b9w3hjrwfbb0ahbcb3y7xy5yy52qvmln";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -96371,8 +98469,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 ];
@@ -96504,27 +98602,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib";
-       version = "8.8.3.20200412.1";
-       sha256 = "07xfj3p8w5964jv5py19p2pbcpbjcbwzpd4b46d43j80abzavgxg";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         array base binary bytestring containers deepseq directory filepath
-         ghc-lib-parser ghc-prim hpc pretty process time transformers unix
-       ];
-       libraryToolDepends = [ alex happy ];
-       description = "The GHC API, decoupled from GHC versions";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "ghc-lib_8_10_1_20200412" = callPackage
-    ({ mkDerivation, alex, array, base, binary, bytestring, containers
-     , deepseq, directory, filepath, ghc-lib-parser, ghc-prim, happy
-     , hpc, pretty, process, time, transformers, unix
-     }:
-     mkDerivation {
-       pname = "ghc-lib";
-       version = "8.10.1.20200412";
-       sha256 = "0y680izyflncjs9k1d0bjb2cym6vyp9nnahqhrrgfrhl4xlk0qmi";
+       version = "8.10.2.20200808";
+       sha256 = "0vh941bk7fy44rn5hwqa25xbfyhm28wcy4nwpvm3291lp0cxndgh";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
@@ -96533,7 +98612,6 @@ self: {
        libraryToolDepends = [ alex happy ];
        description = "The GHC API, decoupled from GHC versions";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ghc-lib-parser" = callPackage
@@ -96543,27 +98621,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib-parser";
-       version = "8.8.3.20200412.1";
-       sha256 = "1bfyi3haq6qz9x5dbnjvf7m7wqrxqmv3i4kdivlh2v416d56apqd";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         array base binary bytestring containers deepseq directory filepath
-         ghc-prim hpc pretty process time transformers unix
-       ];
-       libraryToolDepends = [ alex happy ];
-       description = "The GHC API, decoupled from GHC versions";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "ghc-lib-parser_8_10_1_20200412" = callPackage
-    ({ mkDerivation, alex, array, base, binary, bytestring, containers
-     , deepseq, directory, filepath, ghc-prim, happy, hpc, pretty
-     , process, time, transformers, unix
-     }:
-     mkDerivation {
-       pname = "ghc-lib-parser";
-       version = "8.10.1.20200412";
-       sha256 = "0cndflf4kfz5vf4q83716ambkkh53kw0j0ak5li2fd0kkwiz1q1z";
+       version = "8.10.2.20200808";
+       sha256 = "0nfxsvpsiyxbjc3hvdax70z07k08bc255lz9jhqgq57lnw46dyfl";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
@@ -96572,36 +98631,16 @@ self: {
        libraryToolDepends = [ alex happy ];
        description = "The GHC API, decoupled from GHC versions";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ghc-lib-parser-ex" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, extra
-     , filepath, ghc, ghc-boot, ghc-boot-th, tasty, tasty-hunit
-     , uniplate
-     }:
-     mkDerivation {
-       pname = "ghc-lib-parser-ex";
-       version = "8.8.5.8";
-       sha256 = "1mw1ym5bn39z7lqmxnhhkfqb0kbxddabkafw025wgs54knsghvmk";
-       libraryHaskellDepends = [
-         base bytestring containers extra ghc ghc-boot ghc-boot-th uniplate
-       ];
-       testHaskellDepends = [
-         base directory extra filepath ghc ghc-boot-th tasty tasty-hunit
-       ];
-       description = "Algorithms on GHC parse trees";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "ghc-lib-parser-ex_8_10_0_6" = callPackage
-    ({ mkDerivation, base, bytestring, containers, directory, extra
      , filepath, ghc-lib-parser, tasty, tasty-hunit, uniplate
      }:
      mkDerivation {
        pname = "ghc-lib-parser-ex";
-       version = "8.10.0.6";
-       sha256 = "0l416d7zxfpb3dvz5mh8fxg6z9gr56mhv9agkg3r9cgz0k7nfk1a";
+       version = "8.10.0.16";
+       sha256 = "1kqff62ml38hxwfnfq7ni0z65b3d3l7xqa5c5lxf3kzm9h7bdwb8";
        libraryHaskellDepends = [
          base bytestring containers ghc-lib-parser uniplate
        ];
@@ -96610,7 +98649,6 @@ self: {
        ];
        description = "Algorithms on GHC parse trees";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ghc-make" = callPackage
@@ -96817,6 +98855,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 {
@@ -96965,8 +99020,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-source-gen";
-       version = "0.3.0.0";
-       sha256 = "1r9mnwwbpc1bzjcbs5q58wrjnwjrsbcvmcv1khswchcfim12lqqk";
+       version = "0.4.0.0";
+       sha256 = "0ch3nahhbm0lvz0x5dlmiv07rd0a6398bf046byx36fwrkqglswh";
        libraryHaskellDepends = [ base ghc ];
        testHaskellDepends = [
          base ghc ghc-paths QuickCheck tasty tasty-hunit tasty-quickcheck
@@ -97019,23 +99074,6 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-syntax-highlighter";
-       version = "0.0.5.0";
-       sha256 = "09h911wqja56b9j9dwjqv7dlim9rm50vra1bkp8zhnlw9fa2s127";
-       revision = "3";
-       editedCabalFile = "0m41chf24mn78wxp1is38yg6nhkggwjw4r1avzfr2cvmcl0xz0xb";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [ base ghc-lib-parser text ];
-       testHaskellDepends = [ base hspec text ];
-       testToolDepends = [ hspec-discover ];
-       description = "Syntax highlighter for Haskell using lexer of GHC itself";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "ghc-syntax-highlighter_0_0_6_0" = callPackage
-    ({ mkDerivation, base, ghc-lib-parser, hspec, hspec-discover, text
-     }:
-     mkDerivation {
-       pname = "ghc-syntax-highlighter";
        version = "0.0.6.0";
        sha256 = "1dxm4w44y339flwl4ivsmvml3nvzzlxq585by9mm7j56ljlb4aja";
        enableSeparateDataOutput = true;
@@ -97044,24 +99082,24 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Syntax highlighter for Haskell using lexer of GHC itself";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "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
@@ -97079,20 +99117,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;
@@ -97159,8 +99197,8 @@ self: {
     ({ mkDerivation, base, bytestring, criterion, text }:
      mkDerivation {
        pname = "ghc-trace-events";
-       version = "0.1.0.1";
-       sha256 = "1krr97njpcxw161fgkm899h1ckwhgivprqyv85hhbbr4d5cg6yby";
+       version = "0.1.2.1";
+       sha256 = "0isxvysjk8z9ya8kbjkbp95wf7b4ixk0bjjy831aqyl6kbrnps84";
        libraryHaskellDepends = [ base bytestring text ];
        benchmarkHaskellDepends = [ base bytestring criterion ];
        description = "Faster traceEvent and traceMarker, and binary object logging for eventlog";
@@ -97175,29 +99213,6 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-typelits-extra";
-       version = "0.3.3";
-       sha256 = "0gdnp7pp3v5742qs9vkg2bh1sws9bcc11z4119fdapflglqq22mc";
-       libraryHaskellDepends = [
-         base containers ghc ghc-prim ghc-tcplugins-extra
-         ghc-typelits-knownnat ghc-typelits-natnormalise integer-gmp
-         transformers
-       ];
-       testHaskellDepends = [
-         base ghc-typelits-knownnat ghc-typelits-natnormalise tasty
-         tasty-hunit
-       ];
-       description = "Additional type-level operations on GHC.TypeLits.Nat";
-       license = stdenv.lib.licenses.bsd2;
-     }) {};
-
-  "ghc-typelits-extra_0_4" = callPackage
-    ({ mkDerivation, base, containers, ghc, ghc-prim
-     , ghc-tcplugins-extra, ghc-typelits-knownnat
-     , ghc-typelits-natnormalise, integer-gmp, tasty, tasty-hunit
-     , transformers
-     }:
-     mkDerivation {
-       pname = "ghc-typelits-extra";
        version = "0.4";
        sha256 = "0511vpwn8hz1hvn58g49l95iqcgqr8l8bqy5qwijy2bzad2nhcbg";
        libraryHaskellDepends = [
@@ -97211,7 +99226,6 @@ self: {
        ];
        description = "Additional type-level operations on GHC.TypeLits.Nat";
        license = stdenv.lib.licenses.bsd2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ghc-typelits-knownnat" = callPackage
@@ -97221,8 +99235,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
@@ -97258,10 +99272,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-typelits-presburger";
-       version = "0.3.0.0";
-       sha256 = "1jahwmy2cywnnlvrjizak1wqih7pki9r35qazcz7mih68pd9gnhz";
-       revision = "1";
-       editedCabalFile = "0kh04p9n9q74n84vrzrybkd45alwzhll8m6xwn8nzi1bxpilrhm4";
+       version = "0.3.0.1";
+       sha256 = "0h403zi5lqbpygpqw5469fafz1cgh5mcx96sp0iw4scnmh7z3cj9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -97493,8 +99505,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghcid";
-       version = "0.8.6";
-       sha256 = "00zyf8m3jj72ax7sj0c4j0yivrvj72vqfwra7hzgywf8fc2qxfv1";
+       version = "0.8.7";
+       sha256 = "0yqc1pkfajnr56gnh43sbj50r7c3r41b2jfz07ivgl6phi4frjbq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -97513,46 +99525,51 @@ self: {
      }) {};
 
   "ghcide" = callPackage
-    ({ mkDerivation, aeson, async, base, binary, bytestring, containers
-     , data-default, deepseq, directory, extra, filepath, fuzzy, ghc
-     , ghc-boot, ghc-boot-th, ghc-paths, ghc-typelits-knownnat, gitrev
+    ({ 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
      , 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, text, time, transformers, unix
+     , tasty-quickcheck, tasty-rerun, text, time, transformers, unix
      , unordered-containers, utf8-string
      }:
      mkDerivation {
        pname = "ghcide";
-       version = "0.1.0";
-       sha256 = "0yb8k64wnm9dx93925ddlwy8kimd6a44m9azs9d5x6nahigi406m";
+       version = "0.2.0";
+       sha256 = "1zadj34583qp8xz0iv2r0anqh96r94jv13iary5bk1m9zbhf4f7v";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson async base binary bytestring containers data-default deepseq
-         directory extra filepath fuzzy ghc ghc-boot ghc-boot-th
+         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
        ];
        executableHaskellDepends = [
-         base containers data-default directory extra filepath ghc ghc-paths
-         gitrev haskell-lsp hie-bios hslogger optparse-applicative shake
-         text
+         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
+         unordered-containers
        ];
        testHaskellDepends = [
          aeson base bytestring containers directory extra filepath ghc
          ghc-typelits-knownnat haddock-library haskell-lsp haskell-lsp-types
-         lens lsp-test parser-combinators QuickCheck quickcheck-instances
-         rope-utf16-splay tasty tasty-expected-failure tasty-hunit
-         tasty-quickcheck text
+         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
        ];
        description = "The core of an IDE";
        license = stdenv.lib.licenses.asl20;
+       maintainers = with stdenv.lib.maintainers; [ maralorn ];
      }) {};
 
   "ghcjs-ajax" = callPackage
@@ -97927,6 +99944,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
@@ -97950,6 +99987,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
@@ -98020,6 +100081,26 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {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;
+     }) {inherit (pkgs) libdbusmenu;};
+
   "gi-dbusmenugtk3" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
      , gi-dbusmenu, gi-gdk, gi-gdkpixbuf, gi-glib, gi-gobject, gi-gtk
@@ -98044,6 +100125,31 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {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;
+     }) {inherit (pkgs) gtk3; inherit (pkgs) libdbusmenu-gtk3;};
+
   "gi-gdk" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
      , gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject, gi-pango, gtk3
@@ -98068,7 +100174,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
@@ -98076,8 +100207,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
@@ -98114,6 +100245,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
@@ -98136,15 +100289,15 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {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
        ];
@@ -98166,8 +100319,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
        ];
@@ -98199,6 +100352,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
@@ -98206,8 +100379,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
@@ -98237,6 +100410,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
@@ -98256,6 +100449,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
@@ -98273,8 +100486,26 @@ self: {
        libraryPkgconfigDepends = [ graphene-gobject ];
        description = "Graphene bindings";
        license = stdenv.lib.licenses.lgpl21;
+     }) {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
@@ -98285,8 +100516,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
@@ -98299,8 +100530,6 @@ self: {
        libraryPkgconfigDepends = [ gtk4 ];
        description = "Gsk bindings";
        license = stdenv.lib.licenses.lgpl21;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {gtk4 = null;};
 
   "gi-gst" = callPackage
@@ -98310,8 +100539,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
@@ -98329,8 +100558,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
        ];
@@ -98350,8 +100579,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
        ];
@@ -98372,8 +100601,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
@@ -98386,8 +100615,6 @@ self: {
        libraryPkgconfigDepends = [ gstreamer-pbutils ];
        description = "GStreamer Plugins Base Utils bindings";
        license = stdenv.lib.licenses.lgpl21;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {gstreamer-pbutils = null;};
 
   "gi-gsttag" = callPackage
@@ -98397,8 +100624,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
        ];
@@ -98409,8 +100636,6 @@ self: {
        libraryPkgconfigDepends = [ gstreamer-tag ];
        description = "GStreamer Tag bindings";
        license = stdenv.lib.licenses.lgpl21;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {gstreamer-tag = null;};
 
   "gi-gstvideo" = callPackage
@@ -98420,8 +100645,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
        ];
@@ -98458,7 +100683,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
@@ -98466,8 +100716,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
@@ -98505,8 +100755,6 @@ 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
@@ -98525,8 +100773,6 @@ 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
@@ -98546,6 +100792,24 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {};
 
+  "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;
+     }) {};
+
   "gi-gtkosxapplication" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-gdkpixbuf
      , gi-gobject, gi-gtk, gtk-mac-integration-gtk3, haskell-gi
@@ -98565,8 +100829,6 @@ self: {
        libraryPkgconfigDepends = [ gtk-mac-integration-gtk3 ];
        description = "GtkosxApplication bindings";
        license = stdenv.lib.licenses.lgpl21;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {gtk-mac-integration-gtk3 = null;};
 
   "gi-gtksource" = callPackage
@@ -98577,8 +100839,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
@@ -98595,30 +100857,68 @@ 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";
        license = stdenv.lib.licenses.lgpl21;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       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
+     , haskell-gi-overloading, ibus, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-ibus";
+       version = "1.5.2";
+       sha256 = "14chw0qhzdxixsqsn2ra31z561kn2zclk15b7hfpfzayqr6dqci1";
+       setupHaskellDepends = [
+         base Cabal gi-gio gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ ibus ];
+       description = "IBus bindings";
+       license = stdenv.lib.licenses.lgpl21;
+     }) {inherit (pkgs) ibus;};
+
   "gi-javascriptcore" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
      , gi-gobject, haskell-gi, haskell-gi-base, haskell-gi-overloading
@@ -98626,8 +100926,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
@@ -98646,8 +100946,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
        ];
@@ -98667,8 +100967,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
        ];
@@ -98705,6 +101005,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
@@ -98713,8 +101039,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
        ];
@@ -98738,8 +101064,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
        ];
@@ -98750,8 +101076,6 @@ self: {
        libraryPkgconfigDepends = [ poppler ];
        description = "Poppler bindings";
        license = stdenv.lib.licenses.lgpl21;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) poppler;};
 
   "gi-secret" = callPackage
@@ -98761,8 +101085,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
        ];
@@ -98773,8 +101097,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
@@ -98784,8 +101106,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
        ];
@@ -98806,8 +101128,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
@@ -98853,8 +101175,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
@@ -98878,8 +101200,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
@@ -98903,8 +101225,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
        ];
@@ -98916,8 +101238,6 @@ self: {
        libraryPkgconfigDepends = [ libwnck ];
        description = "Wnck bindings";
        license = stdenv.lib.licenses.lgpl21;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) libwnck;};
 
   "gi-xlib" = callPackage
@@ -98939,6 +101259,26 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {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;
+     }) {inherit (pkgs) xlibsWrapper;};
+
   "giak" = callPackage
     ({ mkDerivation, async, base, bytestring, Cabal, containers
      , directory, extra, filemanip, filepath, mtl, process, semigroups
@@ -98980,8 +101320,8 @@ self: {
      }:
      mkDerivation {
        pname = "ginger";
-       version = "0.9.1.0";
-       sha256 = "0qlsqbkxwyc4hi8228l0mgiylnc0q9i02i46043m1390mdmp34qz";
+       version = "0.10.0.5";
+       sha256 = "187118g5fs97msdab4jmhrwy28hhi81ihyc1v6rfb535bsnm70sw";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -99001,8 +101341,6 @@ self: {
        ];
        description = "An implementation of the Jinja2 template language in Haskell";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "gingersnap" = callPackage
@@ -99057,8 +101395,8 @@ self: {
      }:
      mkDerivation {
        pname = "gio";
-       version = "0.13.8.0";
-       sha256 = "1wx35fm7jba69x33mhp0h6j0lszi62hmmb1inflx7gax0ncmk2n2";
+       version = "0.13.8.1";
+       sha256 = "00dq87p6nqk4x2n98a6b35l7a4crkmhr36zjk0xsfdsr3lf7zmr6";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal gtk2hs-buildtools ];
        libraryHaskellDepends = [
@@ -99189,9 +101527,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
@@ -99206,8 +101545,8 @@ self: {
      }:
      mkDerivation {
        pname = "git-annex";
-       version = "8.20200501";
-       sha256 = "19rggaymvqy7r61n2rl2nigwdi2hzq5l1afcd5l0k1vbacwgq4jl";
+       version = "8.20200810";
+       sha256 = "1wy6ckcf5f6m94gakg1504h1zryail3mmj85sglq03s45vawjcg6";
        configureFlags = [
          "-fassistant" "-f-benchmark" "-fdbus" "-f-debuglocks" "-fmagicmime"
          "-fnetworkbsd" "-fpairing" "-fproduction" "-fs3" "-ftorrentparser"
@@ -99216,26 +101555,27 @@ self: {
        isLibrary = false;
        isExecutable = true;
        setupHaskellDepends = [
-         base bytestring Cabal data-default directory exceptions filepath
-         filepath-bytestring hslogger IfElse process split transformers
-         unix-compat utf8-string
+         async 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
+         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
@@ -99262,8 +101602,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 = [
@@ -99319,6 +101659,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
@@ -99720,8 +102081,8 @@ self: {
      }:
      mkDerivation {
        pname = "github";
-       version = "0.25";
-       sha256 = "18avfzs7q16aagaqam0wblmq0wynl723gncwdcman4wbj4fayz3m";
+       version = "0.26";
+       sha256 = "1vbskrkhmz4d3fccn3w12zgz2dbl40b2gljsm7lyd5k8hz50kds8";
        libraryHaskellDepends = [
          aeson base base-compat base16-bytestring binary binary-instances
          bytestring containers cryptohash-sha1 deepseq deepseq-generics
@@ -99747,8 +102108,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-backup";
-       version = "1.20191219";
-       sha256 = "0yi0i342qh1wm7j81qa6mhyfjp4psbw4vrpp0m1c9zjbymfpcymk";
+       version = "1.20200721";
+       sha256 = "0d0sc2l6crkr42nwkhbcixlxrywx6gsn6vzgdpwh0r6vxlc83hcw";
        isLibrary = false;
        isExecutable = true;
        setupHaskellDepends = [
@@ -99818,8 +102179,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-release";
-       version = "1.3.0";
-       sha256 = "08nr6a763zc0zszbw1lci4d86z3rpcyr1444a10q3a0dj64krwab";
+       version = "1.3.5";
+       sha256 = "0z2sb9avhkq2mgj0pwlji5c2sjxd71628q1i3nhlbajfyms1bsqz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -99841,8 +102202,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-rest";
-       version = "1.0.2";
-       sha256 = "0q4dxr0080pkszq9vv3j2wx89yhy15jjbk5m7wd1mwirgwxv214m";
+       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
@@ -99956,8 +102317,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-webhooks";
-       version = "0.13.0";
-       sha256 = "08yqkxgmd9mqv75wzqi0mxhnb9jv1wawxkikgf6nzqwpdfml967y";
+       version = "0.15.0";
+       sha256 = "0cmavbh7c59pimspjj42mwlac5jmlgagjsw4239hcsrna5yi4wdz";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring cryptonite deepseq
          deepseq-generics memory text time vector
@@ -100018,30 +102379,31 @@ self: {
 
   "gitit" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, blaze-html
-     , bytestring, ConfigFile, containers, directory, feed, filepath
-     , filestore, ghc, ghc-paths, happstack-server, hoauth2, hslogger
-     , HStringTemplate, HTTP, http-client-tls, http-conduit, json, mtl
-     , network, network-uri, old-locale, old-time, pandoc, pandoc-types
-     , parsec, pretty, process, random, recaptcha, safe, SHA
-     , skylighting, split, syb, tagsoup, text, time, uri-bytestring, url
-     , utf8-string, uuid, xhtml, xml, xml-conduit, xss-sanitize, zlib
+     , bytestring, ConfigFile, containers, directory, doctemplates, feed
+     , filepath, filestore, ghc, ghc-paths, happstack-server, hoauth2
+     , hslogger, HStringTemplate, HTTP, http-client-tls, http-conduit
+     , json, mtl, network, network-bsd, network-uri, old-locale
+     , old-time, pandoc, pandoc-types, parsec, pretty, process, random
+     , recaptcha, safe, SHA, skylighting, split, syb, tagsoup, text
+     , time, uri-bytestring, url, utf8-string, uuid, xhtml, xml
+     , xml-conduit, xml-types, xss-sanitize, zlib
      }:
      mkDerivation {
        pname = "gitit";
-       version = "0.12.3.2";
-       sha256 = "0chsmyqb7cvnvkdj3dg5m6hdg28c987rl7rv3wjb78h6pqhql44l";
+       version = "0.13.0.0";
+       sha256 = "1d9vfjhr38xxpm0fq0b6dy581a1qacqg643njp8z2fz37rma3z15";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base base64-bytestring blaze-html bytestring ConfigFile
-         containers directory feed filepath filestore ghc ghc-paths
-         happstack-server hoauth2 hslogger HStringTemplate HTTP
-         http-client-tls http-conduit json mtl network network-uri
-         old-locale old-time pandoc pandoc-types parsec pretty process
-         random recaptcha safe SHA skylighting split syb tagsoup text time
-         uri-bytestring url utf8-string uuid xhtml xml xml-conduit
-         xss-sanitize zlib
+         containers directory doctemplates feed filepath filestore ghc
+         ghc-paths happstack-server hoauth2 hslogger HStringTemplate HTTP
+         http-client-tls http-conduit json mtl network network-bsd
+         network-uri old-locale old-time pandoc pandoc-types parsec pretty
+         process random recaptcha safe SHA skylighting split syb tagsoup
+         text time uri-bytestring url utf8-string uuid xhtml xml xml-conduit
+         xml-types xss-sanitize zlib
        ];
        executableHaskellDepends = [
          base bytestring directory filepath hslogger HTTP mtl network
@@ -100087,6 +102449,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "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.2";
+       sha256 = "10c6fv0hd8fnll56l7p4qbhyb0b4imiav910762kywbfrz1z6w18";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring connection http-conduit http-types text time
+         transformers unliftio unliftio-core
+       ];
+       testHaskellDepends = [ aeson base bytestring tasty tasty-hunit ];
+       description = "A Haskell library for the GitLab web API";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "gitlib" = callPackage
     ({ mkDerivation, base, base16-bytestring, bytestring, conduit
      , conduit-combinators, containers, directory, exceptions, filepath
@@ -100417,8 +102799,8 @@ self: {
      }:
      mkDerivation {
        pname = "glabrous";
-       version = "2.0.1";
-       sha256 = "068777yrxwkxc4lkiwyh7ndnc0wvfdngmqs7974p8ys0930qnwww";
+       version = "2.0.2";
+       sha256 = "10aaa3aggn48imhqxkwyp0i0mar7fan29rwr6qkwli63v3m7fvgr";
        libraryHaskellDepends = [
          aeson aeson-pretty attoparsec base bytestring cereal cereal-text
          either text unordered-containers
@@ -100667,8 +103049,8 @@ self: {
      }:
      mkDerivation {
        pname = "glib";
-       version = "0.13.8.0";
-       sha256 = "18k1drykl3mpmyj43kp9nvkzr9g3allr19ihscmxwc1w9ss6zklw";
+       version = "0.13.8.1";
+       sha256 = "170sbi1gg38sxl4yhd4z716fljlcbf21vgl58p0pcx2adnn2il6w";
        setupHaskellDepends = [ base Cabal gtk2hs-buildtools ];
        libraryHaskellDepends = [
          base bytestring containers text utf8-string
@@ -100728,25 +103110,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 ];
@@ -100903,10 +103285,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
        ];
@@ -100933,10 +103313,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;
@@ -100979,8 +103357,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 = [
@@ -101054,8 +103432,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
        ];
@@ -101111,6 +103489,26 @@ self: {
        broken = true;
      }) {};
 
+  "glpk-headers" = callPackage
+    ({ mkDerivation, base, derive-storable, glpk, tasty, tasty-discover
+     , tasty-hunit
+     }:
+     mkDerivation {
+       pname = "glpk-headers";
+       version = "0.4.1";
+       sha256 = "1r77p0h9iyffl903ag008cb3v21jw021129cfxpr2mp1mgnkhdjd";
+       libraryHaskellDepends = [ base derive-storable ];
+       testHaskellDepends = [
+         base derive-storable tasty tasty-discover tasty-hunit
+       ];
+       testSystemDepends = [ glpk ];
+       testToolDepends = [ tasty-discover ];
+       description = "Low-level Haskell bindings to GLPK";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) glpk;};
+
   "glpk-hs" = callPackage
     ({ mkDerivation, array, base, containers, deepseq, gasp, glpk, mtl
      }:
@@ -103931,6 +106329,26 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "goldplate" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, async, base, bytestring, Diff
+     , directory, filepath, Glob, optparse-applicative, process
+     , regex-pcre-builtin, text, time, unordered-containers
+     }:
+     mkDerivation {
+       pname = "goldplate";
+       version = "0.1.1";
+       sha256 = "0qjqx3yxlyfdj6glych7vwrrh47nrp6xi0vncga2a94hb5sljzzl";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson aeson-pretty async base bytestring Diff directory filepath
+         Glob optparse-applicative process regex-pcre-builtin text time
+         unordered-containers
+       ];
+       description = "A lightweight golden test runner";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "gooey" = callPackage
     ({ mkDerivation, base, renderable, transformers, varying }:
      mkDerivation {
@@ -104160,20 +106578,21 @@ self: {
   "google-server-api" = callPackage
     ({ mkDerivation, aeson, aeson-casing, base, base64-bytestring
      , bytestring, HsOpenSSL, http-api-data, http-client
-     , http-client-tls, mime-mail, monad-control, monad-logger, mtl, RSA
-     , servant, servant-client, text, time, transformers
-     , transformers-base, unix-time, unordered-containers, wai
-     , wai-extra, warp
+     , http-client-tls, http-media, mime-mail, monad-control
+     , monad-logger, mtl, RSA, servant, servant-client, text, time
+     , transformers, transformers-base, unix-time, unordered-containers
+     , wai, wai-extra, warp
      }:
      mkDerivation {
        pname = "google-server-api";
-       version = "0.3.1.1";
-       sha256 = "0rkjwib59iz07pcjlq7b16i8zivf8wpy4p0l2i6wr13vfhkq75js";
+       version = "0.3.2.1";
+       sha256 = "1bvj8pihsz4w53lax5k234p58v9r2k1gpkvdgjwl6n0vkqbw1qy8";
        libraryHaskellDepends = [
          aeson aeson-casing base base64-bytestring bytestring HsOpenSSL
-         http-api-data http-client http-client-tls mime-mail monad-control
-         monad-logger mtl RSA servant servant-client text time transformers
-         transformers-base unix-time unordered-containers wai wai-extra warp
+         http-api-data http-client http-client-tls http-media mime-mail
+         monad-control monad-logger mtl RSA servant servant-client text time
+         transformers transformers-base unix-time unordered-containers wai
+         wai-extra warp
        ];
        description = "Google APIs for server to server applications";
        license = stdenv.lib.licenses.mit;
@@ -104543,8 +106962,8 @@ self: {
      }:
      mkDerivation {
        pname = "gothic";
-       version = "0.1.4";
-       sha256 = "0j574gqxx1n7980pn8644al6pci1gkgwdgwwa98m3r94xlawlsv4";
+       version = "0.1.5";
+       sha256 = "1f8n15cxh4c5m3pylssfksiw3qary8jkl7wabq4gl5zqw2r9ki62";
        libraryHaskellDepends = [
          aeson base binary bytestring connection exceptions hashable
          http-client http-client-tls http-conduit http-types lens lens-aeson
@@ -104555,17 +106974,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;
@@ -105430,22 +107850,25 @@ self: {
      }) {};
 
   "graphql" = callPackage
-    ({ mkDerivation, aeson, base, containers, hspec, hspec-expectations
-     , hspec-megaparsec, megaparsec, raw-strings-qq, text, transformers
-     , unordered-containers
+    ({ 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.6.1.0";
-       sha256 = "0x0526kb29ndrhb9dy9iwxj9r3qij7sy4zjhjqfx3hc7334rdpda";
+       version = "0.9.0.0";
+       sha256 = "1lyzrnbf1w3j60wwi8cwbh1hxzvsw8vn9aymy1qzxgjgmi2wx94g";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson base containers megaparsec text transformers
+         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 raw-strings-qq text transformers unordered-containers
+         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;
@@ -105486,8 +107909,8 @@ self: {
     ({ mkDerivation, base, containers, json, text }:
      mkDerivation {
        pname = "graphql-w-persistent";
-       version = "0.8.0.0";
-       sha256 = "1qlx89igjh37hd9az8wm8yihgnw5djamq081g8cav0rc0yh982k5";
+       version = "0.9.0.0";
+       sha256 = "1kwrpcrvf6j23lq40j6kyrp6wvya2rb4l6zgn47bwcignac1ag3g";
        libraryHaskellDepends = [ base containers json text ];
        description = "GraphQL interface middleware for (SQL) databases";
        license = stdenv.lib.licenses.isc;
@@ -105552,8 +107975,8 @@ self: {
      }:
      mkDerivation {
        pname = "graphviz";
-       version = "2999.20.0.4";
-       sha256 = "047f6sa5rp0f2npgvdrj5irylh0raf01a6nrjj2vsf1mzb1q83xr";
+       version = "2999.20.1.0";
+       sha256 = "0l0zxgb938hh09qirggbaskq79mgj3s081cnr42y5vm1rp1jir2s";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -105609,7 +108032,7 @@ self: {
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
-       description = "GRASP implementation for the AMMM project.";
+       description = "GRASP implementation for the AMMM project";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -105825,29 +108248,8 @@ self: {
      }:
      mkDerivation {
        pname = "greskell";
-       version = "1.0.1.0";
-       sha256 = "0gknzbaldmziy7lj23g3l8q3ymxdr5vbis109j6r7zbjap1jy0in";
-       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_0" = 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.0";
-       sha256 = "10zvz33pd5h2zslmvhilsiqzg6j91azrh8dixc0z75dwrrwyhaa2";
+       version = "1.1.0.3";
+       sha256 = "1q3m4m994vmfk80szphfd74vzfq6zp678bdla6v4siwqjskagyn3";
        libraryHaskellDepends = [
          aeson base exceptions greskell-core hashable semigroups text
          transformers unordered-containers vector
@@ -105858,7 +108260,6 @@ self: {
        ];
        description = "Haskell binding for Gremlin graph query language";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "greskell-core" = callPackage
@@ -105868,8 +108269,8 @@ self: {
      }:
      mkDerivation {
        pname = "greskell-core";
-       version = "0.1.3.2";
-       sha256 = "149xqjhjjbwmsikdacpbhcd188c1rg0vj1szwwwrsadcagc793ky";
+       version = "0.1.3.5";
+       sha256 = "08jpgnsnmh9zbm1pw768ik28vhl3m4jz75l8cbxb3whfgwk5vyy4";
        libraryHaskellDepends = [
          aeson base containers hashable scientific semigroups text
          unordered-containers uuid vector
@@ -105889,30 +108290,8 @@ self: {
      }:
      mkDerivation {
        pname = "greskell-websocket";
-       version = "0.1.2.1";
-       sha256 = "0wz4x7n64cwdjsmyziy9v76aa7p3kxjmbd9bfxc4rpqdjyfk34px";
-       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_2" = 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.2";
-       sha256 = "1iq8ir7xcqy1vf7x23rl3vp2a165xzmz5c0hwid2n0nj7q3k0i93";
+       version = "0.1.2.4";
+       sha256 = "1w5867pdb07jlms3gddx8n3ds94qp4yq1yxcy880vcww2gyb4jda";
        libraryHaskellDepends = [
          aeson async base base64-bytestring bytestring greskell-core
          hashtables safe-exceptions stm text unordered-containers uuid
@@ -105924,7 +108303,6 @@ self: {
        ];
        description = "Haskell client for Gremlin Server using WebSocket serializer";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "grid" = callPackage
@@ -106391,6 +108769,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 {
@@ -106777,8 +109167,8 @@ self: {
      }:
      mkDerivation {
        pname = "gtk";
-       version = "0.15.4";
-       sha256 = "1wm42m4963abqiswkc3ngwf9jm4z9kyyx2h8w064f62ngnkdz84z";
+       version = "0.15.5";
+       sha256 = "096xawq85shmdhsqwpcmidjc4asqgqxsxv0f0xff78169jrdh6a2";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal gtk2hs-buildtools ];
        libraryHaskellDepends = [
@@ -106795,8 +109185,8 @@ self: {
      }:
      mkDerivation {
        pname = "gtk-helpers";
-       version = "0.0.9.1";
-       sha256 = "06clzm1lz0n9z8h8pnggdx710msnwmwcf8kzvp5crdbdi9v7y0di";
+       version = "0.1.0";
+       sha256 = "1h3ddvs28cnr65la0y21plp4bvf2217i5yi2z4wcixjgr0g5lxjv";
        libraryHaskellDepends = [
          array base gio glib gtk mtl process template-haskell
        ];
@@ -106906,6 +109296,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
@@ -106917,6 +109309,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
@@ -107115,8 +109509,8 @@ self: {
      }:
      mkDerivation {
        pname = "gtk3";
-       version = "0.15.4";
-       sha256 = "17g93j8az1gqgf9kxg1k1lls6c0if45bzgbhrc99qgm8s9f2dr1c";
+       version = "0.15.5";
+       sha256 = "1y5wmxxpvhfw1ypli3f48k5bg3hfbx081d9xr5ks8sj3g7f7cf60";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -107129,6 +109523,21 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) gtk3;};
 
+  "gtk3-helpers" = callPackage
+    ({ mkDerivation, array, base, gio, glib, gtk3, mtl, process
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "gtk3-helpers";
+       version = "0.1.0";
+       sha256 = "174sd1qxim74ixmssihbcka372s22f05xpc50wdi0h1nd8mzpk1r";
+       libraryHaskellDepends = [
+         array base gio glib gtk3 mtl process template-haskell
+       ];
+       description = "A collection of auxiliary operations and widgets related to Gtk";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "gtk3-mac-integration" = callPackage
     ({ mkDerivation, array, base, Cabal, containers, glib
      , gtk-mac-integration-gtk3, gtk2hs-buildtools, gtk3, mtl
@@ -107299,8 +109708,6 @@ self: {
        testHaskellDepends = [ base HUnit ];
        description = "A simple wrapper around uuid";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "gulcii" = callPackage
@@ -107557,7 +109964,7 @@ self: {
        license = "LGPL";
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {cudd = null; epd = null; inherit (pkgs) mtr; 
+     }) {inherit (pkgs) cudd; epd = null; inherit (pkgs) mtr; 
          inherit (pkgs) st; util = null;};
 
   "hCM" = callPackage
@@ -108660,6 +111067,8 @@ self: {
        pname = "hackage-security";
        version = "0.6.0.1";
        sha256 = "05rgz31cmp52137j4jk0074z8lfgk8mrf2x56bzw28asmxrv8qli";
+       revision = "2";
+       editedCabalFile = "12m1a5jggzjz3d1q5j41dcs51hi1vwqqxrba0h9jiajv11f3hb39";
        libraryHaskellDepends = [
          base base16-bytestring base64-bytestring bytestring Cabal
          containers cryptohash-sha256 directory ed25519 filepath ghc-prim
@@ -108887,34 +111296,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;
      }) {};
@@ -109198,8 +111608,8 @@ self: {
      }:
      mkDerivation {
        pname = "hadolint";
-       version = "1.17.6";
-       sha256 = "02xfkssxpyi7q7d1aj1gna8m4374pajqilbcgq0ii0hfrxiilc1k";
+       version = "1.18.0";
+       sha256 = "1pvf1wr8sg2yv439yyd08jz75jzmpys5629pcii1kdx5vh2rp1yx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -109265,8 +111675,8 @@ self: {
      }:
      mkDerivation {
        pname = "hadoop-streaming";
-       version = "0.2.0.2";
-       sha256 = "140kb8v9bz293v83w91zlf5qdm98gawsyvswh3yq533g2a5f5qs3";
+       version = "0.2.0.3";
+       sha256 = "1zlk9spilimpnvgyifpwp4k2n4ki5sv7lsaw912q9fxp8mmwycsy";
        libraryHaskellDepends = [ base bytestring conduit extra text ];
        testHaskellDepends = [ base bytestring conduit extra hspec ];
        testToolDepends = [ hspec-discover ];
@@ -109710,8 +112120,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;
@@ -109756,8 +112166,8 @@ self: {
      }:
      mkDerivation {
        pname = "hakyll-agda";
-       version = "0.1.11";
-       sha256 = "19zgpwmip8fcl9sai6ykhrsp4vkzpjnapkyccbg904qa1xwmlf8k";
+       version = "0.1.12";
+       sha256 = "0fa2pw3zaqrxr2in3bb63w7wmch7345lmn84z25s80z0if9qv2x3";
        libraryHaskellDepends = [
          Agda base containers directory filepath hakyll mtl pandoc text
          transformers xhtml
@@ -109921,7 +112331,7 @@ self: {
        libraryHaskellDepends = [
          base containers data-default filepath hakyll
        ];
-       description = "Allow Hakyll to create hierarchical menues from directories.";
+       description = "Allow Hakyll to create hierarchical menues from directories";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -110110,18 +112520,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;
@@ -110249,9 +112658,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
        ];
@@ -110775,6 +113184,39 @@ self: {
        broken = true;
      }) {pfq = null;};
 
+  "hanspell" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, directory, hspec
+     , html-entities, http-client, http-client-tls, http-types
+     , QuickCheck, regex-compat-tdfa, split, text, transformers, unix
+     , utf8-string
+     }:
+     mkDerivation {
+       pname = "hanspell";
+       version = "0.2.2.0";
+       sha256 = "06351wg5y9840nj1ysraa78bixk25vjn64g6fnj3d0zs2qyxd6ca";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson async base bytestring directory html-entities http-client
+         http-client-tls http-types regex-compat-tdfa split text
+         transformers unix utf8-string
+       ];
+       executableHaskellDepends = [
+         aeson async base bytestring directory html-entities http-client
+         http-client-tls http-types regex-compat-tdfa split text
+         transformers unix utf8-string
+       ];
+       testHaskellDepends = [
+         aeson async base bytestring directory hspec html-entities
+         http-client http-client-tls http-types QuickCheck regex-compat-tdfa
+         split text transformers unix utf8-string
+       ];
+       description = "Korean spell checker";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "haphviz" = callPackage
     ({ mkDerivation, base, checkers, hspec, mtl, QuickCheck
      , quickcheck-text, text
@@ -110803,8 +113245,8 @@ self: {
      }:
      mkDerivation {
        pname = "hapistrano";
-       version = "0.4.0.1";
-       sha256 = "08zjj506rs9124xvc78y4jm4baxmnyh005sbk6k4gpnnc0qagxz4";
+       version = "0.4.1.2";
+       sha256 = "0ylahq6hnyzyhh4fb2d21fwisq8a8x5rij6zrzvhcapnir2vkrn0";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -111327,7 +113769,7 @@ self: {
          base containers happstack-data happstack-util mtl syb
          syb-with-class template-haskell
        ];
-       description = "Efficient relational queries on Haskell sets.";
+       description = "Efficient relational queries on Haskell sets";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -111406,21 +113848,21 @@ self: {
      , containers, directory, exceptions, extensible-exceptions
      , filepath, hslogger, html, HUnit, monad-control, mtl, network
      , network-bsd, network-uri, old-locale, parsec, process, semigroups
-     , sendfile, syb, system-filepath, template-haskell, text, threads
-     , time, transformers, transformers-base, transformers-compat, unix
-     , utf8-string, xhtml, zlib
+     , sendfile, syb, system-filepath, text, threads, time, transformers
+     , transformers-base, transformers-compat, unix, utf8-string, xhtml
+     , zlib
      }:
      mkDerivation {
        pname = "happstack-server";
-       version = "7.6.0";
-       sha256 = "0dixzrqr6y96ldx7ls2n19ilfph798jkflgcpzbj6gaw3y20w2b7";
+       version = "7.6.1";
+       sha256 = "0l4vfw7jslsjgm2mszlwxlm2mql6ppim2blhwpwd23r7hw8kx5xx";
        libraryHaskellDepends = [
          base base64-bytestring blaze-html bytestring containers directory
          exceptions extensible-exceptions filepath hslogger html
          monad-control mtl network network-bsd network-uri old-locale parsec
-         process semigroups sendfile syb system-filepath template-haskell
-         text threads time transformers transformers-base
-         transformers-compat unix utf8-string xhtml zlib
+         process semigroups sendfile syb system-filepath text threads time
+         transformers transformers-base transformers-compat unix utf8-string
+         xhtml zlib
        ];
        testHaskellDepends = [
          base bytestring containers HUnit parsec zlib
@@ -111647,8 +114089,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
        ];
@@ -111828,8 +114270,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
@@ -111933,8 +114375,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "harp";
-       version = "0.4.3.3";
-       sha256 = "16bmv3ymiiyvy65vf4s5h4fhp6q5hrw40xfdba4yarwgpbm0frm2";
+       version = "0.4.3.4";
+       sha256 = "0n30bvpfijaji8p2lk3vc0dfcgd2sclwakvbi31jma4z1i03k89q";
        libraryHaskellDepends = [ base ];
        description = "HaRP allows pattern-matching with regular expressions";
        license = stdenv.lib.licenses.bsd3;
@@ -112036,8 +114478,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasbolt-extras";
-       version = "0.0.1.3";
-       sha256 = "1zgrw5k056spvqswgji41whjadq1ixayx817ln339mvc45a4nwa7";
+       version = "0.0.1.4";
+       sha256 = "1zamnp80sncy6fw8j1nsnzcima2f99n1jpcs2vrqyfg1z6n04qhc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -112096,6 +114538,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
@@ -112996,20 +115474,20 @@ self: {
      , bytestring, Cabal, cabal-install-parsers, containers, deepseq
      , Diff, directory, exceptions, filepath, generic-lens-lite, HsYAML
      , lattices, mtl, network-uri, optparse-applicative, parsec, pretty
-     , process, tasty, tasty-golden, temporary, text, transformers
-     , unordered-containers
+     , process, ShellCheck, tasty, tasty-golden, temporary, text
+     , transformers, unordered-containers
      }:
      mkDerivation {
        pname = "haskell-ci";
-       version = "0.10";
-       sha256 = "09v103azd8rd1ps1h14f6rv8s9nga9ja679ma4j44236yfgswxg5";
+       version = "0.10.3";
+       sha256 = "18qynghm1aj0qr18v6m3md75p2l3kyhki03798jwhi4kc5qdk2vv";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base base-compat bytestring Cabal cabal-install-parsers
          containers deepseq directory exceptions filepath generic-lens-lite
          HsYAML lattices mtl network-uri optparse-applicative parsec pretty
-         process temporary text transformers unordered-containers
+         process ShellCheck temporary text transformers unordered-containers
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
@@ -113213,13 +115691,13 @@ self: {
      }) {};
 
   "haskell-exp-parser" = callPackage
-    ({ mkDerivation, base, template-haskell }:
+    ({ mkDerivation, base, syb, template-haskell }:
      mkDerivation {
        pname = "haskell-exp-parser";
-       version = "0.1.1";
-       sha256 = "0p4p5ygw068chw6grci8mny2a1bn6nz74jm1q2sj97v7gglglg55";
+       version = "0.1.3";
+       sha256 = "0cswfpdw6sgmd0fhdpyfi2nk0mhvl8xpv4zfkl9l3wdk5ipbcxdf";
        libraryHaskellDepends = [ base template-haskell ];
-       testHaskellDepends = [ base template-haskell ];
+       testHaskellDepends = [ base syb template-haskell ];
        description = "Simple parser parser from Haskell to TemplateHaskell expressions";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -113237,6 +115715,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
@@ -113356,6 +115836,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 {
@@ -113368,6 +115871,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 {
@@ -113422,6 +115938,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
@@ -113523,36 +116041,6 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "haskell-lsp_0_19_0_0" = callPackage
-    ({ mkDerivation, aeson, async, attoparsec, base, bytestring
-     , containers, data-default, directory, filepath, hashable
-     , haskell-lsp-types, hslogger, hspec, hspec-discover, lens, mtl
-     , network-uri, QuickCheck, quickcheck-instances, rope-utf16-splay
-     , sorted-list, stm, temporary, text, time, unordered-containers
-     }:
-     mkDerivation {
-       pname = "haskell-lsp";
-       version = "0.19.0.0";
-       sha256 = "0cjmjrcd3rg8jc6rfk73jirmvay07jps9gdjd97clxz90w3mm24i";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson async attoparsec base bytestring containers data-default
-         directory filepath hashable haskell-lsp-types hslogger lens mtl
-         network-uri rope-utf16-splay sorted-list stm temporary text time
-         unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base bytestring containers data-default directory filepath
-         hashable hspec lens network-uri QuickCheck quickcheck-instances
-         rope-utf16-splay sorted-list stm text
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Haskell library for the Microsoft Language Server Protocol";
-       license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
   "haskell-lsp" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, base, bytestring
      , containers, data-default, directory, filepath, hashable
@@ -113562,35 +116050,6 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-lsp";
-       version = "0.20.0.1";
-       sha256 = "1yy9j61hlar4y8p58q8a0i3c6qmv5h9f53kk48jsvfa59c3dz92b";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson async attoparsec base bytestring containers data-default
-         directory filepath hashable haskell-lsp-types hslogger lens mtl
-         network-uri rope-utf16-splay sorted-list stm temporary text time
-         unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base bytestring containers data-default directory filepath
-         hashable hspec lens network-uri QuickCheck quickcheck-instances
-         rope-utf16-splay sorted-list stm text unordered-containers
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Haskell library for the Microsoft Language Server Protocol";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "haskell-lsp_0_22_0_0" = callPackage
-    ({ mkDerivation, aeson, async, attoparsec, base, bytestring
-     , containers, data-default, directory, filepath, hashable
-     , haskell-lsp-types, hslogger, hspec, hspec-discover, lens, mtl
-     , network-uri, QuickCheck, quickcheck-instances, rope-utf16-splay
-     , sorted-list, stm, temporary, text, time, unordered-containers
-     }:
-     mkDerivation {
-       pname = "haskell-lsp";
        version = "0.22.0.0";
        sha256 = "0mh2b3dza633plxp370zhvml50kfx4szk4hrzmcfm6aij2di2l0w";
        isLibrary = true;
@@ -113609,7 +116068,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Haskell library for the Microsoft Language Server Protocol";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haskell-lsp-client" = callPackage
@@ -113634,42 +116092,7 @@ self: {
        broken = true;
      }) {};
 
-  "haskell-lsp-types_0_19_0_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, data-default, deepseq
-     , filepath, hashable, lens, network-uri, scientific, text
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "haskell-lsp-types";
-       version = "0.19.0.0";
-       sha256 = "089rxcdz02hq68ihc26r7dwsn8hl7f7096vcb0dyd2jda0ganhm9";
-       libraryHaskellDepends = [
-         aeson base bytestring data-default deepseq filepath hashable lens
-         network-uri scientific text unordered-containers
-       ];
-       description = "Haskell library for the Microsoft Language Server Protocol, data types";
-       license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
   "haskell-lsp-types" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, data-default, deepseq
-     , filepath, hashable, lens, network-uri, scientific, text
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "haskell-lsp-types";
-       version = "0.20.0.0";
-       sha256 = "09p0d4vibrm06kj8i1yq9zhnkxl87yg5085l1sy9m20z8j988waq";
-       libraryHaskellDepends = [
-         aeson base bytestring data-default deepseq filepath hashable lens
-         network-uri scientific text unordered-containers
-       ];
-       description = "Haskell library for the Microsoft Language Server Protocol, data types";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "haskell-lsp-types_0_22_0_0" = callPackage
     ({ mkDerivation, aeson, base, binary, bytestring, data-default
      , deepseq, filepath, hashable, lens, network-uri, scientific, text
      , unordered-containers
@@ -113684,7 +116107,6 @@ self: {
        ];
        description = "Haskell library for the Microsoft Language Server Protocol, data types";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haskell-menu" = callPackage
@@ -113771,8 +116193,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-names";
-       version = "0.9.8";
-       sha256 = "1s4pyqrjhq9x4zxq0vh02qr86kw5fk854wfwkryqyzkylr83dv4r";
+       version = "0.9.9";
+       sha256 = "0gqh7whzzcg46c262yf610g781ach3p8458kwf3mmf1pyhjrj7hm";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring containers data-lens-light filepath
@@ -113991,17 +116413,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
@@ -114181,28 +116603,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-src-exts";
-       version = "1.22.0";
-       sha256 = "1wc3w1kkrlagbbbgqflqx4xwqk36wsng7r3wyjflvlas4sf3xmg0";
-       libraryHaskellDepends = [ array base ghc-prim pretty ];
-       libraryToolDepends = [ happy ];
-       testHaskellDepends = [
-         base containers directory filepath mtl pretty-show smallcheck tasty
-         tasty-golden tasty-smallcheck
-       ];
-       doCheck = false;
-       description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "haskell-src-exts_1_23_0" = callPackage
-    ({ mkDerivation, array, base, containers, directory, filepath
-     , ghc-prim, happy, mtl, pretty, pretty-show, smallcheck, tasty
-     , tasty-golden, tasty-smallcheck
-     }:
-     mkDerivation {
-       pname = "haskell-src-exts";
-       version = "1.23.0";
-       sha256 = "09048bhv7ajfsnjlzaz445yb65n2pc4l3yn7nmmrnkdy1f0gn2cm";
+       version = "1.23.1";
+       sha256 = "01bcrxs9af4yqpclw43aijmsd1g19qhyzb47blz7vzwz2r3k11b7";
        libraryHaskellDepends = [ array base ghc-prim pretty ];
        libraryToolDepends = [ happy ];
        testHaskellDepends = [
@@ -114212,7 +116614,6 @@ self: {
        doCheck = false;
        description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haskell-src-exts-observe" = callPackage
@@ -114382,8 +116783,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 = [
@@ -115191,7 +117592,7 @@ self: {
        version = "1.0.0";
        sha256 = "0j1aqix21pqcsw7skl897pd1ir6hg836g4zb2h5338h4gih6blx0";
        libraryHaskellDepends = [ base haskelldb hsql mtl old-time ];
-       description = "HaskellDB support for HSQL.";
+       description = "HaskellDB support for HSQL";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -115337,14 +117738,20 @@ self: {
      }) {};
 
   "haskellish" = callPackage
-    ({ mkDerivation, base, haskell-src-exts, mtl }:
+    ({ mkDerivation, base, containers, haskell-src-exts, mtl
+     , template-haskell
+     }:
      mkDerivation {
        pname = "haskellish";
-       version = "0.2.0";
-       sha256 = "108kjp66pzpynbh8pn2dr5y91bmb362c788ghj0i6fbfyiawdg20";
-       libraryHaskellDepends = [ base haskell-src-exts mtl ];
+       version = "0.2.3";
+       sha256 = "188sfmb9rcp0k75x94ld0jv91kxbyfqkk7hnw5wyw8ln5y0fmr3w";
+       libraryHaskellDepends = [
+         base containers haskell-src-exts mtl template-haskell
+       ];
        description = "For parsing Haskell-ish languages";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "haskellscrabble" = callPackage
@@ -115675,53 +118082,55 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-core";
-       version = "0.10.1";
-       sha256 = "0gfszpi453736lv7amfmknf9sfpxh071lvxfgaxyi3bshr2kibhz";
+       version = "0.13.4";
+       sha256 = "0bxn1jfb2s308gpdiwwnvar606qc3fqnvf6k0hdz2x43pqkc15lb";
        libraryHaskellDepends = [
          aeson array base base16-bytestring bytestring cereal conduit
+         containers cryptonite deepseq entropy hashable memory mtl murmur3
+         network safe scientific secp256k1-haskell split string-conversions
+         text time transformers unordered-containers vector
+       ];
+       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
          unordered-containers vector
        ];
-       testHaskellDepends = [
-         aeson base bytestring cereal containers deepseq hspec HUnit mtl
-         QuickCheck safe split string-conversions text unordered-containers
-         vector
-       ];
        testToolDepends = [ hspec-discover ];
        description = "Bitcoin & Bitcoin Cash library for Haskell";
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
-  "haskoin-core_0_13_3" = 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.13.3";
-       sha256 = "0lm2zsndiz9id7kmv4mxhakg7jzkz88g0f278bap78z5n9flh8sj";
+       version = "0.15.0";
+       sha256 = "1mvhp7khbjf3wxvgwgdxgbl8ylb4vhgiirq50dwi62p65w75xw1v";
        libraryHaskellDepends = [
          aeson array base base16-bytestring bytestring cereal conduit
-         containers cryptonite deepseq entropy hashable memory mtl murmur3
-         network safe scientific secp256k1-haskell split string-conversions
-         text time transformers unordered-containers vector
+         containers cryptonite deepseq entropy hashable hspec memory mtl
+         murmur3 network QuickCheck safe scientific secp256k1-haskell split
+         string-conversions text time transformers unordered-containers
+         vector
        ];
        testHaskellDepends = [
          aeson array base base16-bytestring bytestring cereal conduit
-         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 ];
        description = "Bitcoin & Bitcoin Cash library for Haskell";
-       license = stdenv.lib.licenses.publicDomain;
+       license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
@@ -115750,17 +118159,17 @@ self: {
      }) {};
 
   "haskoin-node" = callPackage
-    ({ mkDerivation, base, 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
+    ({ 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
      , string-conversions, text, time, transformers, unliftio
      , unordered-containers
      }:
      mkDerivation {
        pname = "haskoin-node";
-       version = "0.9.21";
-       sha256 = "1yhrxw1j4ynrn7bp1lpnbi13d32pdzg8waf96gx3r6shybb9nx4k";
+       version = "0.13.0";
+       sha256 = "0s6l25n9w4g5r2xafb6x1gdqaghfmrnzh9i3nn64c3g26xzk3vnp";
        libraryHaskellDepends = [
          base bytestring cereal conduit conduit-extra containers
          data-default hashable haskoin-core monad-logger mtl network nqe
@@ -115768,7 +118177,7 @@ self: {
          text time transformers unliftio unordered-containers
        ];
        testHaskellDepends = [
-         base bytestring cereal conduit conduit-extra containers
+         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
@@ -115781,34 +118190,35 @@ self: {
        broken = true;
      }) {};
 
-  "haskoin-node_0_12_0" = 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.12.0";
-       sha256 = "1x1z0k7n95mzgnlb3vcyp7gbqi727mniavdjijcrzw5vnvlzxnc6";
+       version = "0.16.0";
+       sha256 = "0az8lv5xkbhfff9hq3r0kndz2hp3q6f1h6za85qj8v5755za61c8";
        libraryHaskellDepends = [
-         base base64 bytestring cereal conduit conduit-extra containers
+         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 ];
-       description = "Haskoin Node P2P library for Bitcoin and Bitcoin Cash";
-       license = stdenv.lib.licenses.publicDomain;
+       description = "P2P library for Bitcoin and Bitcoin Cash";
+       license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -115860,43 +118270,74 @@ self: {
      }) {};
 
   "haskoin-store" = callPackage
-    ({ mkDerivation, aeson, base, base64, bytestring, cereal, conduit
-     , containers, data-default, deepseq, filepath, hashable
-     , haskoin-core, haskoin-node, 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
+    ({ mkDerivation, aeson, aeson-pretty, base, base64, bytestring
+     , 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-jprupp, rocksdb-query, scotty, string-conversions
+     , text, time, transformers, unliftio, unordered-containers, wai
+     , warp
      }:
      mkDerivation {
        pname = "haskoin-store";
-       version = "0.24.0";
-       sha256 = "12ci8vgdd4xh9r8xl4j3b1f63majy8vgvxd2cxw221amhjcsvfvw";
+       version = "0.37.5";
+       sha256 = "0ac1znif59fzcxcl3nmvrv6v49rzlcgsv138zgjnk7zxarp8alyg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base bytestring cereal conduit containers data-default
-         deepseq hashable haskoin-core haskoin-node hedis http-types
-         monad-logger mtl network nqe random rocksdb-haskell rocksdb-query
-         scotty string-conversions text time transformers unliftio
+         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-jprupp rocksdb-query scotty
+         string-conversions text time transformers unliftio
          unordered-containers wai warp
        ];
        executableHaskellDepends = [
-         aeson base bytestring cereal conduit containers data-default
-         deepseq filepath hashable haskoin-core haskoin-node monad-logger
-         mtl nqe optparse-applicative random string-conversions text time
-         transformers unliftio unordered-containers
+         aeson aeson-pretty base bytestring cereal conduit containers
+         data-default deepseq filepath hashable haskoin-core haskoin-node
+         haskoin-store-data monad-logger mtl nqe optparse-applicative random
+         string-conversions text time transformers unliftio
+         unordered-containers
        ];
        testHaskellDepends = [
-         aeson base base64 bytestring cereal conduit containers data-default
-         deepseq hashable haskoin-core haskoin-node hedis hspec http-types
-         monad-logger mtl network nqe QuickCheck random rocksdb-haskell
-         rocksdb-query scotty string-conversions text time transformers
-         unliftio unordered-containers wai warp
+         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-jprupp rocksdb-query scotty
+         string-conversions text time transformers unliftio
+         unordered-containers wai warp
        ];
        testToolDepends = [ hspec-discover ];
        description = "Storage and index for Bitcoin and Bitcoin Cash";
-       license = stdenv.lib.licenses.publicDomain;
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "haskoin-store-data" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cereal, containers
+     , data-default, deepseq, hashable, haskoin-core, hspec
+     , hspec-discover, http-client, http-types, lens, mtl, network
+     , QuickCheck, scotty, string-conversions, text, wreq
+     }:
+     mkDerivation {
+       pname = "haskoin-store-data";
+       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
+         scotty string-conversions text wreq
+       ];
+       testHaskellDepends = [
+         aeson base bytestring cereal containers data-default deepseq
+         hashable haskoin-core hspec http-client http-types lens mtl network
+         QuickCheck scotty string-conversions text wreq
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Data for Haskoin Store";
+       license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -116454,18 +118895,16 @@ self: {
   "haskus-binary" = callPackage
     ({ mkDerivation, base, bytestring, cereal, criterion, directory
      , doctest, filepath, ghc-prim, haskus-utils, haskus-utils-data
-     , haskus-utils-types, megaparsec, mtl, primitive, QuickCheck, tasty
+     , haskus-utils-types, megaparsec, mtl, QuickCheck, tasty
      , tasty-quickcheck, template-haskell, transformers
      }:
      mkDerivation {
        pname = "haskus-binary";
-       version = "1.4";
-       sha256 = "0riqgfy9ai1vb7555l1w9rfcp10ylg7sbk46ph1f2y00pjbxsmv3";
-       revision = "1";
-       editedCabalFile = "1b1dxsrl6iq97dbjsw90jpy6s37dik245w4jgaj2pgqsw1w1vz5h";
+       version = "1.5";
+       sha256 = "1dvsfkbmca4lr586iaj8yad8csxmimaffwwfqijczafzikysh1ah";
        libraryHaskellDepends = [
          base bytestring cereal directory filepath ghc-prim haskus-utils
-         haskus-utils-data haskus-utils-types megaparsec mtl primitive
+         haskus-utils-data haskus-utils-types megaparsec mtl
          template-haskell transformers
        ];
        testHaskellDepends = [
@@ -116525,16 +118964,16 @@ self: {
      }) {};
 
   "haskus-utils-compat" = callPackage
-    ({ mkDerivation, base, bytestring, directory, filepath
-     , haskus-binary, haskus-utils-data, template-haskell
+    ({ mkDerivation, base, bytestring, directory, filepath, formatting
+     , haskus-binary, haskus-utils-data, template-haskell, text
      }:
      mkDerivation {
        pname = "haskus-utils-compat";
-       version = "1.0";
-       sha256 = "0mgklzs26xhq06gij4cn9iz69z028apmrhafd8cqar3kg75lisyx";
+       version = "1.1";
+       sha256 = "1348wa4hi2nzyvh3x82hrll2lcq98jpmibm9gi771k67qsfza4bj";
        libraryHaskellDepends = [
-         base bytestring directory filepath haskus-binary haskus-utils-data
-         template-haskell
+         base bytestring directory filepath formatting haskus-binary
+         haskus-utils-data template-haskell text
        ];
        description = "Compatibility modules with other external packages (ByteString, etc.)";
        license = stdenv.lib.licenses.bsd3;
@@ -116543,18 +118982,16 @@ self: {
      }) {};
 
   "haskus-utils-data" = callPackage
-    ({ mkDerivation, base, containers, doctest, extra, ghc-prim
+    ({ mkDerivation, base, containers, doctest, ghc-prim
      , haskus-utils-types, mtl, recursion-schemes, transformers
      }:
      mkDerivation {
        pname = "haskus-utils-data";
-       version = "1.2";
-       sha256 = "0dn07zj9v5yl0mpcnblk2y17x30wg8fag4hv9mfp3kn003217f89";
-       revision = "1";
-       editedCabalFile = "0pgaf358jjkpi928rgxs5ly4v8vl7lxrsdrq0gflxfc47ni2mxj8";
+       version = "1.3";
+       sha256 = "0373bb3aqbrw6prn323vy47qq9mfnvmm1lbd9ql1dxgb9px338qn";
        libraryHaskellDepends = [
-         base containers extra ghc-prim haskus-utils-types mtl
-         recursion-schemes transformers
+         base containers ghc-prim haskus-utils-types mtl recursion-schemes
+         transformers
        ];
        testHaskellDepends = [ base doctest ];
        description = "Haskus data utility modules";
@@ -116750,8 +119187,36 @@ self: {
      }:
      mkDerivation {
        pname = "hasql";
-       version = "1.4.2";
-       sha256 = "0n617bh0achqwybngppz6inj7y5fv42zi0dxlyal3d9zbrgsljfw";
+       version = "1.4.3";
+       sha256 = "1g9xm2md7zaja3kka6jdgdkjnp1vj96b7hjgymvjcd0dp59kkd2q";
+       libraryHaskellDepends = [
+         attoparsec base base-prelude bytestring bytestring-strict-builder
+         contravariant contravariant-extras dlist hashable hashtables
+         loch-th mtl placeholders postgresql-binary postgresql-libpq
+         profunctors text text-builder transformers vector
+       ];
+       testHaskellDepends = [
+         bug QuickCheck quickcheck-instances rebase rerebase tasty
+         tasty-hunit tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ bug criterion rerebase ];
+       description = "An efficient PostgreSQL driver with a flexible mapping API";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "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
+     , placeholders, postgresql-binary, postgresql-libpq, profunctors
+     , QuickCheck, quickcheck-instances, rebase, rerebase, tasty
+     , tasty-hunit, tasty-quickcheck, text, text-builder, transformers
+     , vector
+     }:
+     mkDerivation {
+       pname = "hasql";
+       version = "1.4.4.2";
+       sha256 = "09j532mcgs9q1gwr7czvcd85byf3ds3gs4nr5cvlajv4ciaym0di";
        libraryHaskellDepends = [
          attoparsec base base-prelude bytestring bytestring-strict-builder
          contravariant contravariant-extras dlist hashable hashtables
@@ -116765,6 +119230,7 @@ self: {
        benchmarkHaskellDepends = [ bug criterion rerebase ];
        description = "An efficient PostgreSQL driver with a flexible mapping API";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hasql-backend" = callPackage
@@ -116859,8 +119325,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
        ];
@@ -116896,15 +119362,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;
@@ -116930,8 +119396,6 @@ self: {
        ];
        description = "PostgreSQL Schema Migrations";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasql-notifications" = callPackage
@@ -116954,8 +119418,6 @@ self: {
        testHaskellDepends = [ base bytestring hasql hspec QuickCheck ];
        description = "LISTEN/NOTIFY support for Hasql";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasql-optparse-applicative" = callPackage
@@ -116964,8 +119426,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
        ];
@@ -116979,8 +119441,8 @@ self: {
     ({ mkDerivation, base-prelude, hasql, hspec, resource-pool, time }:
      mkDerivation {
        pname = "hasql-pool";
-       version = "0.5.1";
-       sha256 = "0agl5ilp0amsp9pidhmgivdyaq43x3xi7hb80c91n9l92pv6163k";
+       version = "0.5.2";
+       sha256 = "0l870d58a53akwbzgrcxfmz8mqc598qh1786d5ks937q0w219wlz";
        libraryHaskellDepends = [ base-prelude hasql resource-pool time ];
        testHaskellDepends = [ base-prelude hasql hspec ];
        description = "A pool of connections for Hasql";
@@ -117040,6 +119502,42 @@ self: {
        broken = true;
      }) {};
 
+  "hasql-queue" = callPackage
+    ({ mkDerivation, aeson, async, base, base64-bytestring, bytestring
+     , cryptohash-sha1, exceptions, hasql, here, hspec, hspec-core
+     , hspec-expectations-lifted, monad-control, postgresql-libpq
+     , postgresql-libpq-notify, random, resource-pool, split, stm, text
+     , time, tmp-postgres, transformers
+     }:
+     mkDerivation {
+       pname = "hasql-queue";
+       version = "1.2.0.2";
+       sha256 = "0d8ylf92ydhg12v2rjxxnijzjkkpmws0r1nnxm63w5arwz947n5m";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring exceptions hasql here monad-control
+         postgresql-libpq postgresql-libpq-notify random stm text time
+         transformers
+       ];
+       executableHaskellDepends = [
+         aeson async base base64-bytestring bytestring cryptohash-sha1
+         exceptions hasql here monad-control postgresql-libpq
+         postgresql-libpq-notify random resource-pool stm text time
+         tmp-postgres transformers
+       ];
+       testHaskellDepends = [
+         aeson async base base64-bytestring bytestring cryptohash-sha1
+         exceptions hasql here hspec hspec-core hspec-expectations-lifted
+         monad-control postgresql-libpq postgresql-libpq-notify random
+         resource-pool split stm text time tmp-postgres transformers
+       ];
+       description = "A PostgreSQL backed queue";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hasql-simple" = callPackage
     ({ mkDerivation, aeson, base, bytestring, contravariant, hasql
      , text, time, unordered-containers, vector
@@ -117059,31 +119557,23 @@ self: {
      }) {};
 
   "hasql-th" = callPackage
-    ({ mkDerivation, base, bytestring, case-insensitive, containers
-     , contravariant, fast-builder, foldl, hashable, hasql
-     , headed-megaparsec, hedgehog, megaparsec, parser-combinators
-     , selective, template-haskell, template-haskell-compat-v0208, text
-     , text-builder, tuple-th, unordered-containers, uuid, vector
+    ({ mkDerivation, base, bytestring, containers, contravariant, foldl
+     , hasql, postgresql-syntax, template-haskell
+     , template-haskell-compat-v0208, text, uuid, vector
      }:
      mkDerivation {
        pname = "hasql-th";
-       version = "0.4.0.7";
-       sha256 = "0hs62wzp2phlq00jkz6qas1i3gyx3krnzn5hzvpa8zl4q0fggjvz";
+       version = "0.4.0.8";
+       sha256 = "14h71s7dha1g0zfi3vsg5y6lsn09x8c9nqv1nqiqmw2m19adx7gi";
        libraryHaskellDepends = [
-         base bytestring case-insensitive containers contravariant
-         fast-builder foldl hashable hasql headed-megaparsec megaparsec
-         parser-combinators selective template-haskell
-         template-haskell-compat-v0208 text text-builder
-         unordered-containers uuid vector
-       ];
-       testHaskellDepends = [
-         base bytestring case-insensitive containers contravariant
-         fast-builder foldl hashable hasql headed-megaparsec hedgehog
-         megaparsec parser-combinators selective template-haskell text
-         text-builder tuple-th unordered-containers uuid vector
+         base bytestring containers contravariant foldl hasql
+         postgresql-syntax template-haskell template-haskell-compat-v0208
+         text uuid vector
        ];
        description = "Template Haskell utilities for Hasql";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hasql-transaction" = callPackage
@@ -117104,6 +119594,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
@@ -117324,10 +119831,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasty-hamiltonian";
-       version = "1.3.2";
-       sha256 = "17nc33q9vkq13wp5dqrq2vq6bz408ll8h84fg7mapks5w5r9sag6";
-       revision = "1";
-       editedCabalFile = "1k883ziy63p3zmpyfzck5jw2143b6ijcsvwi704rp94pvh0vk02z";
+       version = "1.3.3";
+       sha256 = "11x0daijylcxg0zf55bcwac6dy6lmmz9f4zf7a44qp9dsgfv753a";
        libraryHaskellDepends = [
          base kan-extensions lens mcmc-types mwc-probability pipes primitive
          transformers
@@ -117379,6 +119884,29 @@ self: {
        broken = true;
      }) {};
 
+  "hatexmpp3" = callPackage
+    ({ mkDerivation, base, bytestring, containers, data-default
+     , datetime, gtk3, hslogger, monad-loops, mtl, Network-NineP
+     , pontarius-xmpp, pontarius-xmpp-extras, stm, string-class, text
+     , time, tls, transformers, vector, xml-conduit, xml-types
+     }:
+     mkDerivation {
+       pname = "hatexmpp3";
+       version = "0";
+       sha256 = "0j5428x0yq07x27lgd48fcyc8zix9a0vv8725ch8gr4v9znhwrwc";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring containers data-default datetime gtk3 hslogger
+         monad-loops mtl Network-NineP pontarius-xmpp pontarius-xmpp-extras
+         stm string-class text time tls transformers vector xml-conduit
+         xml-types
+       ];
+       description = "XMPP client with 9P and (optionally) GTK interfaces";
+       license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hath" = callPackage
     ({ mkDerivation, base, cmdargs, process, split, tasty, tasty-hunit
      , tasty-quickcheck
@@ -117656,8 +120184,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
@@ -118249,8 +120777,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
@@ -118287,7 +120813,7 @@ self: {
        executableHaskellDepends = [
          base directory HaskellForMaths QuickCheck text
        ];
-       description = "Virtual Rubik's cube of arbitrary size.";
+       description = "Virtual Rubik's cube of arbitrary size";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -118833,47 +121359,49 @@ self: {
 
   "headroom" = callPackage
     ({ mkDerivation, aeson, base, doctest, either, file-embed, hspec
-     , lens, mustache, optparse-applicative, pcre-heavy, pcre-light, rio
-     , template-haskell, text, time, validation, yaml
+     , mustache, optparse-applicative, pcre-light, QuickCheck, rio, time
+     , yaml
      }:
      mkDerivation {
        pname = "headroom";
-       version = "0.1.3.0";
-       sha256 = "0c680vr2kjlx9l9zh6v22jjfgxrwxh9icg1psjxrjfl9zi9kqfb9";
+       version = "0.2.2.1";
+       sha256 = "02s1s6v0fsn5a2anpi91za3dqafcp50lckr4xpir270l66lzdc2g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base either file-embed lens mustache optparse-applicative
-         pcre-heavy pcre-light rio template-haskell text time validation
-         yaml
+         aeson base either file-embed mustache optparse-applicative
+         pcre-light rio time yaml
        ];
        executableHaskellDepends = [ base optparse-applicative rio ];
        testHaskellDepends = [
-         aeson base doctest hspec optparse-applicative rio
+         aeson base doctest hspec optparse-applicative pcre-light QuickCheck
+         rio
        ];
        description = "License Header Manager";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "headroom_0_2_2_0" = callPackage
-    ({ mkDerivation, aeson, base, doctest, either, file-embed, hspec
-     , mustache, optparse-applicative, pcre-light, QuickCheck, rio
+  "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.2.2.0";
-       sha256 = "13kmzfh8r7y7cin93c0dhbcvgr66dcxfwjsylp41xyzq2w1g2aqb";
+       version = "0.3.1.0";
+       sha256 = "0md8yzjq92xc9pq9h8a78irgyka23ck7nlhdbdyfnm2f490fx2yw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base either file-embed mustache optparse-applicative
-         pcre-light rio template-haskell time yaml
+         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
+         rio time
        ];
        description = "License Header Manager";
        license = stdenv.lib.licenses.bsd3;
@@ -118936,26 +121464,6 @@ self: {
      }) {};
 
   "heart-core" = callPackage
-    ({ mkDerivation, aeson, aeson-casing, base, containers, exceptions
-     , filepath, hashable, lens, list-t, mtl, newtype-generics, text
-     , unliftio, unliftio-core, unordered-containers
-     }:
-     mkDerivation {
-       pname = "heart-core";
-       version = "0.1.1";
-       sha256 = "1r4137ws74dqk1bva06xv2gs18m4jkg52243yz5dwp65g6h5pb60";
-       libraryHaskellDepends = [
-         aeson aeson-casing base containers exceptions filepath hashable
-         lens list-t mtl newtype-generics text unliftio unliftio-core
-         unordered-containers
-       ];
-       description = "An opinionated library prelude in the UnliftIO style";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "heart-core_0_3_2" = callPackage
     ({ mkDerivation, aeson, aeson-casing, base, containers, deepseq
      , exceptions, filepath, hashable, lens, list-t, mtl
      , newtype-generics, text, unliftio, unliftio-core
@@ -119203,22 +121711,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 = [
@@ -119260,21 +121767,19 @@ self: {
 
   "hedgehog-classes" = callPackage
     ({ mkDerivation, aeson, base, binary, comonad, containers, hedgehog
-     , pretty-show, primitive, semirings, silently, transformers
+     , pretty-show, primitive, semirings, silently, transformers, vector
      , wl-pprint-annotated
      }:
      mkDerivation {
        pname = "hedgehog-classes";
-       version = "0.2.4.1";
-       sha256 = "0qa938cy1bm3shq0l4rfdq5cmb54jjy0qpp6cmx1xjd6yrdqrkxc";
-       revision = "1";
-       editedCabalFile = "1kxlq8x947wlpm6y80s25hhw074skzhpm7sbl87bvgcc6p7j7gc5";
+       version = "0.2.5.1";
+       sha256 = "0gyq9dr25sz14yw5x8jlb73l2hzv92r1c6cfan7lygq7z0yaiw6b";
        libraryHaskellDepends = [
          aeson base binary comonad containers hedgehog pretty-show primitive
-         semirings silently transformers wl-pprint-annotated
+         semirings silently transformers vector wl-pprint-annotated
        ];
        testHaskellDepends = [
-         aeson base binary comonad containers hedgehog
+         aeson base binary comonad containers hedgehog vector
        ];
        description = "Hedgehog will eat your typeclass bugs";
        license = stdenv.lib.licenses.bsd3;
@@ -119297,8 +121802,8 @@ self: {
     ({ mkDerivation, base, containers, fakedata, hedgehog, random }:
      mkDerivation {
        pname = "hedgehog-fakedata";
-       version = "0.0.1.1";
-       sha256 = "05s48h0cf599x5psllid0szynvqmfgkrv5cymsgy1b5mdnc868aj";
+       version = "0.0.1.3";
+       sha256 = "0h0cf4y25453n52d4y1ximzdc9l04b17byd9kgjvc3c279866f1i";
        libraryHaskellDepends = [ base fakedata hedgehog random ];
        testHaskellDepends = [ base containers fakedata hedgehog ];
        description = "Use 'fakedata' with 'hedgehog'";
@@ -119436,8 +121941,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
@@ -119574,6 +122079,8 @@ self: {
        pname = "hedn";
        version = "0.3.0.1";
        sha256 = "02pwwxdgw3kkqwckap9mf015bbd27mgblfz7k4y63v0gppw6fqm7";
+       revision = "1";
+       editedCabalFile = "0nbkc1hj0b5q2c3mcz6v2drq8mrh06aryq7gy8cnhhiqzwflk1fh";
        libraryHaskellDepends = [
          base containers deepseq deriving-compat megaparsec
          parser-combinators prettyprinter scientific template-haskell text
@@ -119654,8 +122161,8 @@ self: {
        pname = "heist";
        version = "1.1.0.1";
        sha256 = "1j4h9fwny4hl2m5lgsd257lvm9057fb0hmnaqjw8a9k4hyx7hmqq";
-       revision = "2";
-       editedCabalFile = "1w9iabqa3pm2160275z6mh658zlyp7vkj18ch064ry3y3a6cymbk";
+       revision = "3";
+       editedCabalFile = "0a456cq72fgdy3wvk6db6yqk3mpib85h7kmwrvdjl7p637dvpxzh";
        libraryHaskellDepends = [
          aeson attoparsec base blaze-builder blaze-html bytestring
          containers directory directory-tree dlist filepath hashable
@@ -120146,6 +122653,119 @@ self: {
        broken = true;
      }) {};
 
+  "hercules-ci-agent" = callPackage
+    ({ mkDerivation, aeson, async, attoparsec, base, base64-bytestring
+     , bdw-gc, binary, binary-conduit, boost, bytestring, cachix
+     , cachix-api, conduit, conduit-extra, containers, directory, dlist
+     , exceptions, filepath, hercules-ci-api-agent, hercules-ci-api-core
+     , hostname, hspec, http-client, http-client-tls, http-conduit
+     , inline-c, inline-c-cpp, katip, lens, lens-aeson, lifted-async
+     , lifted-base, monad-control, mtl, network, network-uri, nix
+     , optparse-applicative, process, protolude, safe-exceptions
+     , servant, servant-auth-client, servant-client, servant-client-core
+     , stm, temporary, text, time, tomland, transformers
+     , transformers-base, unbounded-delays, unix, unliftio
+     , unliftio-core, unordered-containers, uuid, vector, websockets
+     , wuss
+     }:
+     mkDerivation {
+       pname = "hercules-ci-agent";
+       version = "0.7.3";
+       sha256 = "19mz8cqrk7v49h8k2bcpv31qnplx7r10k010gzcwmhhfyrlyrqyg";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson async base binary binary-conduit bytestring cachix conduit
+         containers dlist exceptions hercules-ci-api-agent inline-c
+         inline-c-cpp katip lifted-async lifted-base monad-control mtl
+         network-uri optparse-applicative process protolude safe-exceptions
+         stm text time transformers-base unbounded-delays unliftio
+         unliftio-core uuid websockets wuss
+       ];
+       librarySystemDepends = [ boost ];
+       libraryPkgconfigDepends = [ bdw-gc nix ];
+       executableHaskellDepends = [
+         aeson async attoparsec base base64-bytestring binary binary-conduit
+         bytestring cachix cachix-api conduit conduit-extra containers
+         directory dlist exceptions filepath hercules-ci-api-agent
+         hercules-ci-api-core hostname http-client http-client-tls
+         http-conduit inline-c inline-c-cpp katip lens lens-aeson
+         lifted-async lifted-base monad-control mtl network network-uri
+         optparse-applicative process protolude safe-exceptions servant
+         servant-auth-client servant-client servant-client-core stm
+         temporary text time tomland transformers transformers-base unix
+         unliftio unliftio-core unordered-containers uuid vector websockets
+         wuss
+       ];
+       executableSystemDepends = [ boost ];
+       executablePkgconfigDepends = [ bdw-gc nix ];
+       testHaskellDepends = [
+         aeson async attoparsec base binary binary-conduit bytestring
+         conduit containers exceptions filepath hercules-ci-api-agent
+         hercules-ci-api-core hspec katip lifted-async lifted-base
+         monad-control optparse-applicative process protolude
+         safe-exceptions text transformers-base unliftio-core
+       ];
+       doHaddock = false;
+       description = "Runs Continuous Integration tasks on your machines";
+       license = stdenv.lib.licenses.asl20;
+       maintainers = with stdenv.lib.maintainers; [ roberth ];
+     }) {bdw-gc = null; inherit (pkgs) boost; inherit (pkgs) nix;};
+
+  "hercules-ci-api-agent" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring-type, bytestring
+     , containers, cookie, exceptions, hashable, hercules-ci-api-core
+     , hspec, http-api-data, http-media, lens, lens-aeson, memory
+     , network-uri, profunctors, QuickCheck, servant, servant-auth
+     , servant-auth-swagger, servant-swagger, servant-swagger-ui-core
+     , string-conv, swagger2, text, time, uuid, vector
+     }:
+     mkDerivation {
+       pname = "hercules-ci-api-agent";
+       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
+         lens lens-aeson memory servant servant-auth servant-auth-swagger
+         servant-swagger servant-swagger-ui-core string-conv swagger2 text
+         time uuid vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers cookie exceptions hashable hspec
+         http-api-data http-media lens memory network-uri profunctors
+         QuickCheck servant servant-auth servant-auth-swagger
+         servant-swagger servant-swagger-ui-core string-conv swagger2 text
+         time uuid
+       ];
+       description = "API definition for Hercules CI Agent to talk to hercules-ci.com or Hercules CI Enterprise";
+       license = stdenv.lib.licenses.asl20;
+       maintainers = with stdenv.lib.maintainers; [ roberth ];
+     }) {};
+
+  "hercules-ci-api-core" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, cookie
+     , exceptions, hashable, http-api-data, http-media, katip, lens
+     , lifted-base, memory, monad-control, safe-exceptions, servant
+     , servant-auth, servant-auth-swagger, servant-swagger
+     , servant-swagger-ui-core, string-conv, swagger2, text, time, uuid
+     }:
+     mkDerivation {
+       pname = "hercules-ci-api-core";
+       version = "0.1.1.0";
+       sha256 = "19qxbarnl65gqg52ysl12nggyc64860chdcl0vm3i3fny4vsqbcq";
+       libraryHaskellDepends = [
+         aeson base bytestring containers cookie exceptions hashable
+         http-api-data http-media katip lens lifted-base memory
+         monad-control safe-exceptions servant servant-auth
+         servant-auth-swagger servant-swagger servant-swagger-ui-core
+         string-conv swagger2 text time uuid
+       ];
+       description = "Types and convenience modules use across Hercules CI API packages";
+       license = stdenv.lib.licenses.asl20;
+       maintainers = with stdenv.lib.maintainers; [ roberth ];
+     }) {};
+
   "here" = callPackage
     ({ mkDerivation, base, haskell-src-meta, mtl, parsec
      , template-haskell
@@ -120178,13 +122798,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;
@@ -120542,52 +123162,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 }:
@@ -120789,10 +123409,8 @@ self: {
      }:
      mkDerivation {
        pname = "hexpat-lens";
-       version = "0.1.8";
-       sha256 = "05c5pjxxsivcbppbl2n8dwyv6zh7azc3l998s2rhgjja55cpfmg0";
-       revision = "1";
-       editedCabalFile = "0z7cqm5alscaspaiz5pgwlcn6njhggyizqb1v5ay4sbac7v8nqlx";
+       version = "0.1.9";
+       sha256 = "0vy96jq415rp6njkvnp4in07j052m68yfr1n1mdcbfd3j5a0dw39";
        libraryHaskellDepends = [
          base bytestring deepseq hexpat hexpat-tagsoup lens
        ];
@@ -120933,6 +123551,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
@@ -120941,8 +123572,8 @@ self: {
      }:
      mkDerivation {
        pname = "hextream";
-       version = "0.1.0.1";
-       sha256 = "0dc38zszqgbpmj7hlsd3w09i8rdpzd7jpr4vm2zv9y2y6bgcdpdr";
+       version = "0.2.0.0";
+       sha256 = "045q4glzqdl79w4baq4yvqjiqaih48p2iixkb3dv96nwmgr8xl8r";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base base-compat containers parsers text
@@ -121326,22 +123957,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";
@@ -121351,22 +123983,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
@@ -121389,8 +124022,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
@@ -121615,8 +124248,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
        ];
@@ -121664,8 +124297,8 @@ self: {
      }:
      mkDerivation {
        pname = "hhp";
-       version = "0.0.2";
-       sha256 = "0c9hcxvkrsz750r7hqviwn19r1slad4y5cj5m8ip84yiww44bfz4";
+       version = "0.0.3";
+       sha256 = "1d9hhsnf21f2v0hcmw5wpj33qdqw6xbcz979lkp2ilk8mxqgwf32";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -121893,10 +124526,8 @@ self: {
      }:
      mkDerivation {
        pname = "hie-bios";
-       version = "0.4.0";
-       sha256 = "1pa8wjj6sml39371f355z46304jzzwpcr62q0qzrpqq8w9017241";
-       revision = "1";
-       editedCabalFile = "12m0hy4lirnr02h0nh2a85cfm8jv7jgqh24fdn29jkc28gpspm72";
+       version = "0.5.1";
+       sha256 = "0b6kll3w8g0nb1ijz8kw39dmiksyaq30nk5b5gmdgjdycz5hp9vm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -121914,6 +124545,37 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hie-bios_0_6_2" = callPackage
+    ({ mkDerivation, aeson, base, base16-bytestring, bytestring
+     , conduit, conduit-extra, containers, cryptohash-sha1, deepseq
+     , directory, extra, file-embed, filepath, ghc, hslogger
+     , hspec-expectations, process, tasty, tasty-expected-failure
+     , tasty-hunit, temporary, text, time, transformers, unix-compat
+     , unordered-containers, vector, yaml
+     }:
+     mkDerivation {
+       pname = "hie-bios";
+       version = "0.6.2";
+       sha256 = "0x0lgrkbp4f9r96cf65d8qg55hp2qb14xd3zzap5yhybhlp54w8m";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base base16-bytestring bytestring conduit conduit-extra
+         containers cryptohash-sha1 deepseq directory extra file-embed
+         filepath ghc hslogger process temporary text time transformers
+         unix-compat unordered-containers vector yaml
+       ];
+       executableHaskellDepends = [ base directory filepath ghc ];
+       testHaskellDepends = [
+         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";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hie-core" = callPackage
     ({ mkDerivation, aeson, async, base, binary, bytestring, containers
      , data-default, deepseq, directory, extra, filepath, ghc, ghc-boot
@@ -122761,8 +125423,8 @@ self: {
      }:
      mkDerivation {
        pname = "hinterface";
-       version = "1.0.0";
-       sha256 = "18vhpmhpfam1nbh5fgbcfjnmsnsbkzq9qmr64alldlvwf6brs0kp";
+       version = "2.0.0";
+       sha256 = "1n1mp34s0ks7hkd2ddhfva9pbjwkciy1jjmqznmca244xg095yia";
        libraryHaskellDepends = [
          array async base binary bytestring containers cryptonite deepseq
          exceptions lifted-async lifted-base memory monad-control
@@ -123433,12 +126095,26 @@ self: {
        pname = "hkd";
        version = "0.1";
        sha256 = "1xz0i8lkh0rp55b0s7npkzqgyz9pf1bwq9b66cwbg073r9sz41wa";
+       revision = "1";
+       editedCabalFile = "09inakgqdwqifha2whvjfx6imx642zfinw8faxgjiv55ncm04zhr";
        libraryHaskellDepends = [ base some ];
        testHaskellDepends = [ base some ];
        description = "\"higher-kinded data\"";
        license = "(BSD-2-Clause OR Apache-2.0)";
      }) {};
 
+  "hkd-default" = callPackage
+    ({ mkDerivation, aeson, base }:
+     mkDerivation {
+       pname = "hkd-default";
+       version = "1.1.0.0";
+       sha256 = "1ff8sfd68a06s7kfc85ww6w5wm7m0f70vd2bi0lbkj0r14rsn7vg";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ aeson base ];
+       description = "Apply default value for optional field of HKD";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "hkd-delta" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -123478,17 +126154,19 @@ self: {
      }) {};
 
   "hkgr" = callPackage
-    ({ mkDerivation, base, directory, filepath, simple-cabal
-     , simple-cmd, simple-cmd-args
+    ({ mkDerivation, base, directory, extra, filepath, simple-cabal
+     , simple-cmd, simple-cmd-args, xdg-basedir
      }:
      mkDerivation {
        pname = "hkgr";
-       version = "0.2.5.2";
-       sha256 = "0n7xxm216jzsvm2si276a0x342iwn0jyfcaq5hfs5l92na456kg2";
+       version = "0.2.6.1";
+       sha256 = "0hq059l3byw3vcxw56z341q56xnb86kdqj5vnn16v29ql677xm26";
        isLibrary = false;
        isExecutable = true;
+       enableSeparateDataOutput = true;
        executableHaskellDepends = [
-         base directory filepath simple-cabal simple-cmd simple-cmd-args
+         base directory extra filepath simple-cabal simple-cmd
+         simple-cmd-args xdg-basedir
        ];
        description = "Simple Hackage release workflow for package maintainers";
        license = stdenv.lib.licenses.gpl3;
@@ -123609,8 +126287,10 @@ self: {
      }:
      mkDerivation {
        pname = "hledger";
-       version = "1.17.1.1";
-       sha256 = "17c7g4xnwkbi77drqc6w96bp2lw0b86yg1qmm0gsdnli2m93baz4";
+       version = "1.18.1";
+       sha256 = "1yl6akcbmz5qy559m0k0cndwb6wdzvq2jqn7ahc46v3ai6hwk20c";
+       revision = "1";
+       editedCabalFile = "1fz1wwpxf6scr8nnrd2n1g92vya9bd0l54fcx3sqhyk5kaf8kp2z";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -123637,7 +126317,7 @@ self: {
          temporary terminfo text time timeit transformers
          unordered-containers utf8-string utility-ht wizards
        ];
-       description = "Command-line interface for the hledger accounting tool";
+       description = "Command-line interface for the hledger accounting system";
        license = stdenv.lib.licenses.gpl3;
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
@@ -123733,10 +126413,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-iadd";
-       version = "1.3.10";
-       sha256 = "0kdrdbvs5qi8hc807d245xrv589hgx5aly5syb6zk62pi1kf92s3";
-       revision = "1";
-       editedCabalFile = "0bwpk2h2chhcw74sf1ljkkiy699zdc2dvgq7ixlrlk09yx44jhxc";
+       version = "1.3.11";
+       sha256 = "1pqjyybbnhckz16in6skx3582aykk2yq5bf4ghbhj8iqbm3cczqf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -123764,8 +126442,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-interest";
-       version = "1.5.4";
-       sha256 = "0n3pjd86j43dprpsy1k9x72v8g46dhy3f9244hvwhigyx72ijm6h";
+       version = "1.5.5";
+       sha256 = "1rsi0mpdgi0g7m07y8bd3gpw5jc8saxw15ab7yhxif4m7dfwjgmg";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -123797,7 +126475,7 @@ self: {
      }) {};
 
   "hledger-lib" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, array, base
+    ({ 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
@@ -123808,27 +126486,29 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-lib";
-       version = "1.17.1";
-       sha256 = "19vny2l2l45dk0fkpi2lzpzaj7jks2r0zjv8dkpcxlyk8bvqi92c";
+       version = "1.18.1";
+       sha256 = "16fd3412n4vdnjacngjx5078yzmypn389m91308kgbd8anv6bhj4";
+       revision = "1";
+       editedCabalFile = "1icjbfzdq2yd3h6qx245xyb4qahxih97rx63qhxx3vaicvph40pk";
        libraryHaskellDepends = [
-         aeson ansi-terminal array base base-compat-batteries blaze-markup
-         bytestring call-stack cassava cassava-megaparsec cmdargs containers
-         data-default Decimal deepseq directory extra fgl file-embed
-         filepath Glob hashtables megaparsec mtl old-time parsec
+         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
+         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
        ];
        testHaskellDepends = [
-         aeson 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
+         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
        ];
-       description = "Core data types, parsers and functionality for the hledger accounting tools";
+       description = "A reusable library providing the core functionality of hledger";
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
@@ -123885,8 +126565,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-ui";
-       version = "1.17.1.1";
-       sha256 = "0cwjjcy4r6dy1w4svmi7jk1yrp654qr8ic33ipg24dh7bl6lqzps";
+       version = "1.18.1";
+       sha256 = "0ggfz93f14znnjzkznzblsdk6iqbwwj2yxzx5rgsr0xcjzm8gx64";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -123896,7 +126576,7 @@ self: {
          process safe split text text-zipper time transformers unix vector
          vty
        ];
-       description = "Terminal user interface for the hledger accounting tool";
+       description = "Curses-style terminal interface for the hledger accounting system";
        license = stdenv.lib.licenses.gpl3;
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
@@ -123927,13 +126607,16 @@ self: {
      , hjsmin, hledger, hledger-lib, http-client, http-conduit
      , http-types, megaparsec, mtl, network, semigroups, shakespeare
      , template-haskell, text, time, transformers, unix-compat
-     , utf8-string, wai, wai-cors, wai-extra, wai-handler-launch, warp
-     , yaml, yesod, yesod-core, yesod-form, yesod-static
+     , unordered-containers, utf8-string, wai, wai-cors, wai-extra
+     , wai-handler-launch, warp, yaml, yesod, yesod-core, yesod-form
+     , yesod-static
      }:
      mkDerivation {
        pname = "hledger-web";
-       version = "1.17.1";
-       sha256 = "0zcb7a8xchsb093sw9aq30n45rns9v0xknwvigds3ka8yb383krl";
+       version = "1.18.1";
+       sha256 = "1s10xyiqs77xl949m7rc71a4511i755yiv88jb0pc32xba7a2b1y";
+       revision = "1";
+       editedCabalFile = "01amhyjlw6xjh97zhxx8j05jszw0c0wnv7ka835n7rjnnv8199l3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -123942,11 +126625,12 @@ self: {
          Decimal directory extra filepath hjsmin hledger hledger-lib
          http-client http-conduit http-types megaparsec mtl network
          semigroups shakespeare template-haskell text time transformers
-         unix-compat utf8-string wai wai-cors wai-extra wai-handler-launch
-         warp yaml yesod yesod-core yesod-form yesod-static
+         unix-compat unordered-containers utf8-string wai wai-cors wai-extra
+         wai-handler-launch warp yaml yesod yesod-core yesod-form
+         yesod-static
        ];
        executableHaskellDepends = [ base ];
-       description = "Web interface for the hledger accounting tool";
+       description = "Web-based user interface for the hledger accounting system";
        license = stdenv.lib.licenses.gpl3;
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
@@ -124028,8 +126712,8 @@ self: {
     ({ mkDerivation, base, Cabal, directory, hspec, libsass }:
      mkDerivation {
        pname = "hlibsass";
-       version = "0.1.9.0";
-       sha256 = "14rcg48hlbpz4vjk7ydhf58wgnbgsa61q6s7h0n80ak8ih63jdcx";
+       version = "0.1.10.1";
+       sha256 = "0gfbw6d48dqhc6gm9qwxfn4w6j3zs2xgf7c0kwxmgn4464y93dwy";
        configureFlags = [ "-fexternallibsass" ];
        setupHaskellDepends = [ base Cabal directory ];
        libraryHaskellDepends = [ base ];
@@ -124048,8 +126732,8 @@ self: {
      }:
      mkDerivation {
        pname = "hlint";
-       version = "3.1";
-       sha256 = "1c17bcfddajkww05afjzbsdzx9xxxq4dnrb266jlb1zad1saf8ah";
+       version = "3.1.6";
+       sha256 = "1kbzj3qw3rr4yb2x50q79abckh6fvadbzqidbzkbydqqm0yhqhnx";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -124062,6 +126746,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Source code suggestions";
        license = stdenv.lib.licenses.bsd3;
+       maintainers = with stdenv.lib.maintainers; [ maralorn ];
      }) {};
 
   "hlint-test" = callPackage
@@ -124834,21 +127519,19 @@ self: {
 
   "hmt" = callPackage
     ({ mkDerivation, aeson, array, base, bytestring, colour, containers
-     , data-ordlist, directory, fgl, filepath, lazy-csv, logict
-     , modular-arithmetic, multiset-comb, parsec, permutation, primes
-     , random, safe, split, text
+     , data-ordlist, directory, fgl, filepath, hsc3, lazy-csv, logict
+     , multiset-comb, parsec, permutation, primes, process, random, safe
+     , split, text, time
      }:
      mkDerivation {
        pname = "hmt";
-       version = "0.16";
-       sha256 = "1s6fjyphq57wh15vryj6y493ikaqa3g14x6hj9lg2h6wf6g8042h";
-       revision = "1";
-       editedCabalFile = "0ng1z7s5alciw1r3r0ch8bakabqlind29pssrih09rbnqbqwbmcj";
+       version = "0.18";
+       sha256 = "14c54z5zcg84nvq80yv3j3n6l7nha1l772vg3nsfsgy6fg430xdb";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson array base bytestring colour containers data-ordlist
-         directory fgl filepath lazy-csv logict modular-arithmetic
-         multiset-comb parsec permutation primes random safe split text
+         directory fgl filepath hsc3 lazy-csv logict multiset-comb parsec
+         permutation primes process random safe split text time
        ];
        description = "Haskell Music Theory";
        license = "GPL";
@@ -124928,68 +127611,52 @@ self: {
 
   "hnix" = callPackage
     ({ mkDerivation, aeson, array, base, base16-bytestring, binary
-     , bytestring, comonad, containers, contravariant, criterion
-     , cryptohash-md5, cryptohash-sha1, cryptohash-sha256
-     , cryptohash-sha512, data-fix, deepseq, dependent-sum
+     , bytestring, comonad, containers, criterion, data-fix, deepseq
      , deriving-compat, Diff, directory, exceptions, filepath, free
-     , generic-random, Glob, hashable, hashing, haskeline, 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, repline, scientific
-     , semialign, semialign-indexed, semigroups, serialise, split, syb
-     , tasty, tasty-hedgehog, tasty-hunit, tasty-quickcheck, tasty-th
+     , 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.7.1";
-       sha256 = "02isypknx732c25iqjym6941mfb5x6s6xrb6mijxy46rwzh3xd9l";
+       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 cryptohash-md5 cryptohash-sha1
-         cryptohash-sha256 cryptohash-sha512 data-fix deepseq dependent-sum
-         deriving-compat directory exceptions filepath free hashable hashing
-         haskeline 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 split syb template-haskell text these time transformers
-         transformers-base unix unordered-containers vector xml
-       ];
-       executableHaskellDepends = [
-         aeson base base16-bytestring bytestring comonad containers
-         cryptohash-md5 cryptohash-sha1 cryptohash-sha256 cryptohash-sha512
-         data-fix deepseq exceptions filepath free hashing haskeline mtl
-         optparse-applicative pretty-show prettyprinter ref-tf repline
-         serialise template-haskell text time transformers
-         unordered-containers
-       ];
-       testHaskellDepends = [
-         base base16-bytestring bytestring containers cryptohash-md5
-         cryptohash-sha1 cryptohash-sha256 cryptohash-sha512 data-fix
-         deepseq dependent-sum Diff directory exceptions filepath
-         generic-random Glob hashing hedgehog interpolate megaparsec mtl
-         optparse-applicative pretty-show prettyprinter process serialise
-         split tasty tasty-hedgehog tasty-hunit tasty-quickcheck tasty-th
+         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 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
-         cryptohash-md5 cryptohash-sha1 cryptohash-sha256 cryptohash-sha512
-         data-fix deepseq exceptions filepath hashing mtl
-         optparse-applicative serialise template-haskell text time
-         transformers unordered-containers
+         base base16-bytestring bytestring containers criterion data-fix
+         deepseq exceptions filepath mtl optparse-applicative serialise
+         template-haskell text time transformers unordered-containers
        ];
        description = "Haskell implementation of the Nix language";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hnix-store-core" = callPackage
@@ -125175,28 +127842,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoauth2";
-       version = "1.11.0";
-       sha256 = "0pf558n93gqksfgsjlvwcly2lq86adkcbqjqsq4p73kwwzs6dka8";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base binary bytestring exceptions http-conduit http-types
-         microlens text unordered-containers uri-bytestring
-         uri-bytestring-aeson
-       ];
-       description = "Haskell OAuth2 authentication client";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hoauth2_1_12_0" = callPackage
-    ({ mkDerivation, aeson, base, binary, bytestring, exceptions
-     , http-conduit, http-types, microlens, text, unordered-containers
-     , uri-bytestring, uri-bytestring-aeson
-     }:
-     mkDerivation {
-       pname = "hoauth2";
-       version = "1.12.0";
-       sha256 = "0v3brbwq07qa7fszdlxaf1q2nfxvr273qq7zg0x5nqvaa63ghdlc";
+       version = "1.14.0";
+       sha256 = "0szcg4bvzs8djmq5k47czyk7hv9nassahd0ngd127hcab5afmbxk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -125206,7 +127853,6 @@ self: {
        ];
        description = "Haskell OAuth2 authentication client";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hob" = callPackage
@@ -125258,16 +127904,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;
@@ -125297,46 +127944,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
@@ -125616,6 +128262,8 @@ self: {
        testToolDepends = [ markdown-unlit tasty-discover ];
        description = "Tools and combinators for solving constraint problems";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "holy-project" = callPackage
@@ -125711,18 +128359,17 @@ self: {
      }) {};
 
   "homotuple" = callPackage
-    ({ mkDerivation, base, OneTuple, Only, single-tuple }:
+    ({ mkDerivation, base, Cabal, directory, OneTuple, Only
+     , single-tuple
+     }:
      mkDerivation {
        pname = "homotuple";
-       version = "0.1.0.0";
-       sha256 = "0m72srmxqp8834ir08b5n9jk20yimmn5vwqyhpdxiyq4akbmb1w1";
-       revision = "2";
-       editedCabalFile = "0kn941gr9j6li1lnynx3fd652kvcbm1j4y8jd9qd6ynrcqd2hpia";
+       version = "0.1.2.1";
+       sha256 = "1jhw6mby17wz0jiqxjj59qfvcy9dgd8gm5z0ak3qzr1xrd652fa8";
+       setupHaskellDepends = [ base Cabal directory ];
        libraryHaskellDepends = [ base OneTuple Only single-tuple ];
        description = "Homotuple, all whose elements are the same type";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "homplexity" = callPackage
@@ -126109,8 +128756,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoogle";
-       version = "5.0.17.15";
-       sha256 = "0yl2izlxb863a3vxj4dhqn65qnwmmja799bgm004kcmk646r24jx";
+       version = "5.0.18";
+       sha256 = "16vbjivwwjn687cidg0v9bkdyk9mkv4gn6fmaxcfj8m94vrqdbdx";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -126169,10 +128816,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
        ];
@@ -126180,6 +128825,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
@@ -126396,8 +129064,6 @@ self: {
        ];
        description = "C++ FFI generator - Documentation";
        license = stdenv.lib.licenses.agpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hoppy-generator" = callPackage
@@ -126414,8 +129080,6 @@ self: {
        ];
        description = "C++ FFI generator - Code generator";
        license = stdenv.lib.licenses.agpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hoppy-runtime" = callPackage
@@ -126443,8 +129107,6 @@ self: {
        ];
        description = "C++ FFI generator - Standard library bindings";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hops" = callPackage
@@ -126569,6 +129231,24 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "hosc_0_18_1" = callPackage
+    ({ mkDerivation, base, binary, blaze-builder, bytestring
+     , data-binary-ieee754, network, time, transformers
+     }:
+     mkDerivation {
+       pname = "hosc";
+       version = "0.18.1";
+       sha256 = "0ygyvwzsvqv4pihzdm6i3kzkr01nh3qpk9g9f9ap6243yx7003vj";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base binary blaze-builder bytestring data-binary-ieee754 network
+         time transformers
+       ];
+       description = "Haskell Open Sound Control";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hosc-json" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bifunctors, bytestring
      , hosc, json, text, transformers, unordered-containers, utf8-string
@@ -126900,8 +129580,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpack";
-       version = "0.33.0";
-       sha256 = "1w49rjcviy4vyj1b45ifpva4bgwc0xd305si148rkxa65378ranj";
+       version = "0.34.2";
+       sha256 = "0sn99v1bndbn1if36i4xj1xqcxpihh6yj8ssixypnpwi5vm7hvyf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -127137,17 +129817,17 @@ self: {
   "hpath-directory" = callPackage
     ({ mkDerivation, base, bytestring, exceptions, hpath-filepath
      , hpath-posix, hspec, HUnit, IfElse, process, safe-exceptions
-     , streamly, streamly-bytestring, time, unix, unix-bytestring
-     , utf8-string
+     , streamly, streamly-bytestring, streamly-posix, time, transformers
+     , unix, unix-bytestring, utf8-string
      }:
      mkDerivation {
        pname = "hpath-directory";
-       version = "0.13.3";
-       sha256 = "1cvqag2gincqdc0zmfs227qh0cqc6hvg26aaznis6q57jiyk0ja2";
+       version = "0.14.0";
+       sha256 = "1rv2f0vqbivzqgpk3msxgymqmwp159bi6h2hcdgf65v5j3rhv52n";
        libraryHaskellDepends = [
          base bytestring exceptions hpath-filepath hpath-posix IfElse
-         safe-exceptions streamly streamly-bytestring time unix
-         unix-bytestring utf8-string
+         safe-exceptions streamly streamly-bytestring streamly-posix time
+         transformers unix unix-bytestring utf8-string
        ];
        testHaskellDepends = [
          base bytestring hpath-filepath hpath-posix hspec HUnit IfElse
@@ -127175,8 +129855,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpath-io";
-       version = "0.13.1";
-       sha256 = "0bpjr4hqwz7hlj81ndi2lyi95halm822mmpyw91pimq6k2m635wk";
+       version = "0.14.0";
+       sha256 = "12awqghnway7fhcyzyy6dj5f9p1z15gbp31r1781n892w3vvk4l9";
        libraryHaskellDepends = [
          base bytestring exceptions hpath hpath-directory hpath-posix
          safe-exceptions streamly time unix
@@ -127218,8 +129898,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpc-codecov";
-       version = "0.1.0.0";
-       sha256 = "1kr245qsdq60lvg1y9krpd19z9svwi2w9843b39hbv9fxzs7zcia";
+       version = "0.2.0.0";
+       sha256 = "0ha97zldwbsx86ji4sjaw9jf7kzgrk41zabzdd1b6sdlf20p883k";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -127267,8 +129947,10 @@ self: {
      }:
      mkDerivation {
        pname = "hpc-lcov";
-       version = "1.0.0";
-       sha256 = "0j2v2dpqj8xrs7z8mn1f71pin1m2arynp8nmai9cd1bqxyrv56a6";
+       version = "1.0.1";
+       sha256 = "01ws5y2vavgm7151dcabw3jwny1prrnzn5b04q76m5gc6a36wivl";
+       revision = "1";
+       editedCabalFile = "1jv81ywwzvr37zki8hjylj6gfhamq7fi7rpjyk1g0d06ac9ix0zp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers hpc ];
@@ -127334,20 +130016,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;
@@ -128028,23 +130713,11 @@ self: {
     ({ mkDerivation, base, syb }:
      mkDerivation {
        pname = "hs-bibutils";
-       version = "6.8.0.0";
-       sha256 = "0syhh413qmajv56gaqz7p3b2yb6f0x9cx8zgds6fa3yzcqw7zasc";
-       libraryHaskellDepends = [ base syb ];
-       description = "Haskell bindings to bibutils, the bibliography conversion utilities";
-       license = "GPL";
-     }) {};
-
-  "hs-bibutils_6_10_0_0" = callPackage
-    ({ mkDerivation, base, syb }:
-     mkDerivation {
-       pname = "hs-bibutils";
        version = "6.10.0.0";
        sha256 = "1wnpy1v5rbii2iwlcc9psnww8pkirv9zl21s64cmbi6q7dv15g3n";
        libraryHaskellDepends = [ base syb ];
        description = "Haskell bindings to bibutils, the bibliography conversion utilities";
        license = "GPL";
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hs-blake2" = callPackage
@@ -128287,14 +130960,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;
      }) {};
@@ -128303,8 +130974,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";
@@ -128363,19 +131034,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;
      }) {};
 
@@ -128467,7 +131132,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
@@ -129258,8 +131923,8 @@ self: {
      }:
      mkDerivation {
        pname = "hsc3";
-       version = "0.17";
-       sha256 = "1k7gm0qk96rm7rphmmwlqh99kn5v79g8szyyhb9cqg3rfv6as1ld";
+       version = "0.18";
+       sha256 = "1j6jdgvvk3pxyky63khszv0cim4b7wbffpcpa098ii98fib0r47i";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers data-ordlist directory
@@ -129268,6 +131933,8 @@ self: {
        ];
        description = "Haskell SuperCollider";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hsc3-auditor" = callPackage
@@ -130068,8 +132735,8 @@ self: {
      }:
      mkDerivation {
        pname = "hsendxmpp";
-       version = "0.1.2.0";
-       sha256 = "16mjcxkd706kfv9ifs1vn1gqry0wq8zqfwl8mig6vvav18n79l6q";
+       version = "0.1.2.2";
+       sha256 = "1zw26rp206w5wq3qb2y35wjis2a3qvyip7k35f3ls4y530gw39bq";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -130331,8 +132998,8 @@ self: {
        pname = "hsimport";
        version = "0.11.0";
        sha256 = "1z55gpwyb2gwjlll2c32g9r4aqpdybjpnjy785z60wpjdl48qwaa";
-       revision = "2";
-       editedCabalFile = "00blkkmxc7ldwa7jywrg32pq0nz7z8sidj56qdy5s8cpzx57gwg8";
+       revision = "3";
+       editedCabalFile = "017yfag3k4j9v9mj5fv7v8s2j7cla97isx8z4q6ks5wfvjvyfpjy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -130347,8 +133014,6 @@ self: {
        doHaddock = false;
        description = "Extend the import list of a Haskell source file";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsini" = callPackage
@@ -130375,8 +133040,8 @@ self: {
      }:
      mkDerivation {
        pname = "hsinspect";
-       version = "0.0.12";
-       sha256 = "12s6f5f26wzp5adwdpy15235v1nclw12ypp9ginxrm68a65qy4lk";
+       version = "0.0.13";
+       sha256 = "0w84v3l3w0ydidjr3iv2d9vq5maya1wna01wbgi78qh84cm1ds5c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -130389,6 +133054,38 @@ self: {
        license = stdenv.lib.licenses.gpl3Plus;
      }) {};
 
+  "hsinspect-lsp" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cache, data-default
+     , directory, extra, filepath, ghc, ghc-paths, haskell-lsp, hslogger
+     , hspec, hspec-discover, mtl, process, stm, text, transformers
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "hsinspect-lsp";
+       version = "0.0.6";
+       sha256 = "0z02hismrc14yw36ly0xgzavam9n4svwyv0g31yjrg9szyadn1i8";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring cache directory extra filepath ghc ghc-paths
+         hslogger process text transformers
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring cache data-default directory extra filepath
+         ghc ghc-paths haskell-lsp hslogger mtl process stm text
+         transformers unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring cache directory extra filepath ghc ghc-paths
+         hslogger hspec process text transformers
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "LSP interface over the hsinspect binary";
+       license = stdenv.lib.licenses.gpl3Plus;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hsinstall" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, Cabal, directory, filepath
      , heredoc, optparse-applicative, process, safe-exceptions
@@ -130587,15 +133284,38 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {inherit (pkgs) lua5_3;};
 
-  "hslua_1_1_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, criterion, deepseq
-     , exceptions, lua5_3, mtl, QuickCheck, quickcheck-instances, tasty
-     , tasty-hunit, tasty-quickcheck, text
+  "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.0";
-       sha256 = "04xf5xp5iyf6y0das661pbzw6z2zx63phidg9mqhwbn79wk2mwwh";
+       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
@@ -130605,7 +133325,6 @@ self: {
          base bytestring containers exceptions mtl QuickCheck
          quickcheck-instances tasty tasty-hunit tasty-quickcheck text
        ];
-       benchmarkHaskellDepends = [ base bytestring criterion deepseq ];
        description = "Bindings to Lua, an embeddable scripting language";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -130618,8 +133337,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-aeson";
-       version = "1.0.1";
-       sha256 = "13fmw1ajwc9xz2vsl2xaj6irij5c7sb5ifd774irajlcp31bwj8l";
+       version = "1.0.3";
+       sha256 = "0qqcf9km39bmw29d2s5zw91rxgmmm8nqfnfs5hkhmsgh5kvaal5h";
        libraryHaskellDepends = [
          aeson base hashable hslua scientific text unordered-containers
          vector
@@ -130650,16 +133369,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;
      }) {};
@@ -130677,6 +133398,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 {
@@ -131037,8 +133775,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
        ];
@@ -131109,10 +133847,8 @@ 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
@@ -131153,8 +133889,8 @@ 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 ];
@@ -131179,6 +133915,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hspec-expectations-json" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, aeson-qq, base, Diff, hspec
+     , HUnit, scientific, text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "hspec-expectations-json";
+       version = "1.0.0.0";
+       sha256 = "1i6w3qsy25y0aymkcnkycpgrx0dkbsv5a60004hx3fpl5rkbq1aj";
+       libraryHaskellDepends = [
+         aeson aeson-pretty base Diff HUnit scientific text
+         unordered-containers vector
+       ];
+       testHaskellDepends = [ aeson-qq base hspec ];
+       description = "Hspec expectations for JSON Values";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "hspec-expectations-lens" = callPackage
     ({ mkDerivation, base, hspec, hspec-expectations, HUnit, lens
      , silently
@@ -131277,8 +134030,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 ];
@@ -131464,8 +134217,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-need-env";
-       version = "0.1.0.4";
-       sha256 = "0cb6jr0mqhaylqdky38s8plgs9w8hk1pi135yxggr707bnhwsplg";
+       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";
@@ -131649,6 +134402,8 @@ self: {
        pname = "hspec-tables";
        version = "0.0.1";
        sha256 = "07z85920dr85kc763hfqd6rrzl81cc39cjgc0ymy95ycgpdz2w1q";
+       revision = "1";
+       editedCabalFile = "1li02kvz1mpq0x9j7q7cjwn8b35m2aqgfbrgab4vsngqq61a4f0z";
        libraryHaskellDepends = [ base hspec-core ];
        testHaskellDepends = [ base hspec hspec-core ];
        description = "Table-driven (by-example) HSpec tests";
@@ -131915,7 +134670,7 @@ self: {
        sha256 = "0lz9zjy1xgjjbabbi2hcrvsnfid6c78y2cb2703qjwr93xy54f1f";
        libraryHaskellDepends = [ base hsql old-time ];
        librarySystemDepends = [ unixODBC ];
-       description = "A Haskell Interface to ODBC.";
+       description = "A Haskell Interface to ODBC";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -131929,7 +134684,7 @@ self: {
        sha256 = "0yj0jalpapjvpxmc79yd6bn93ax13pp87dipbg2c9mxf3p38jc9z";
        libraryHaskellDepends = [ base hsql old-time ];
        librarySystemDepends = [ postgresql ];
-       description = "A Haskell Interface to PostgreSQL via the PQ library.";
+       description = "A Haskell Interface to PostgreSQL via the PQ library";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -132275,10 +135030,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
        ];
@@ -132612,14 +135365,18 @@ self: {
      }:
      mkDerivation {
        pname = "hsx2hs";
-       version = "0.14.1.6";
-       sha256 = "09qynnmy5pq7yl8zic91wysrvjb1a1ibcjc9ry458wgbz236br4n";
+       version = "0.14.1.8";
+       sha256 = "1yx2bnwjqwghp2jg3kpk42wbbqswnxph46xjrmyaharlw1s8y0f2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring haskell-src-exts haskell-src-meta mtl
          template-haskell utf8-string
        ];
+       executableHaskellDepends = [
+         base bytestring haskell-src-exts haskell-src-meta mtl
+         template-haskell utf8-string
+       ];
        description = "HSX (Haskell Source with XML) allows literal XML syntax in Haskell source code";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -133037,6 +135794,8 @@ self: {
        pname = "html-parse";
        version = "0.2.0.2";
        sha256 = "0dm771lrrqc87ygbr3dzyl1vsyi30jgr7l0isvsbqyah7s4zyg38";
+       revision = "1";
+       editedCabalFile = "1hr9bskwwx3svxqaxcyaz8v0brli1bb03xcvg7zpgbisf8x6r316";
        libraryHaskellDepends = [
          attoparsec base containers deepseq text
        ];
@@ -133424,6 +136183,34 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "http-client_0_7_2" = callPackage
+    ({ mkDerivation, array, async, base, blaze-builder, bytestring
+     , case-insensitive, containers, cookie, deepseq, directory
+     , exceptions, filepath, ghc-prim, hspec, http-types, memory
+     , mime-types, monad-control, network, network-uri, random, stm
+     , streaming-commons, text, time, transformers, zlib
+     }:
+     mkDerivation {
+       pname = "http-client";
+       version = "0.7.2";
+       sha256 = "1ld8bx1bnf1gpvdy9wn14b31k94rjvl40zqrgd7nb20zd2l354vp";
+       libraryHaskellDepends = [
+         array base blaze-builder bytestring case-insensitive containers
+         cookie deepseq exceptions filepath ghc-prim http-types memory
+         mime-types network network-uri random stm streaming-commons text
+         time transformers
+       ];
+       testHaskellDepends = [
+         async base blaze-builder bytestring case-insensitive containers
+         cookie deepseq directory hspec http-types monad-control network
+         network-uri streaming-commons text time transformers zlib
+       ];
+       doCheck = false;
+       description = "An HTTP client engine";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "http-client-auth" = callPackage
     ({ mkDerivation, base, base64-string, blaze-builder, bytestring
      , case-insensitive, conduit, crypto-conduit, http-client
@@ -133510,10 +136297,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-client-openssl";
-       version = "0.3.0.0";
-       sha256 = "0y7d1bp045mj1lnbd74a1v4viv5g5awivdhbycq75hnvqf2n50vl";
-       revision = "2";
-       editedCabalFile = "0p8vgakciq8ar9pfahh1bmriann3h0xn4z3xb328lgbcxxxpwqfd";
+       version = "0.3.1.0";
+       sha256 = "16h2f4ap35g63mdg66iihp10p1s4nwsrb06hplwm9i4akdr9gws2";
        libraryHaskellDepends = [
          base bytestring HsOpenSSL http-client network
        ];
@@ -133567,20 +136352,18 @@ self: {
 
   "http-client-restricted" = callPackage
     ({ mkDerivation, base, connection, data-default, http-client
-     , http-client-tls, network, utf8-string
+     , http-client-tls, network, network-bsd, utf8-string
      }:
      mkDerivation {
        pname = "http-client-restricted";
-       version = "0.0.2";
-       sha256 = "0i9x74r2lnwfbggd3dyccsivlrprglr3i21hc6a9vh868fbhmahn";
+       version = "0.0.3";
+       sha256 = "1xn84430haz2r9ikkxbi6awgpi0ybc7d7gp1plqhxq43ws626sam";
        libraryHaskellDepends = [
          base connection data-default http-client http-client-tls network
-         utf8-string
+         network-bsd utf8-string
        ];
        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
@@ -133651,8 +136434,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
@@ -133703,6 +136486,8 @@ self: {
        pname = "http-conduit";
        version = "2.3.7.3";
        sha256 = "00rshi1y0h8y4rvsnnad0bppxgpvp40sk7lw1kxmdwy8pi8xrvbs";
+       revision = "1";
+       editedCabalFile = "0d9mkg8wm943avghjwvq986m667fx63pvvgn2y8gvr6nla8740an";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring conduit conduit-extra http-client
          http-client-tls http-types mtl resourcet transformers unliftio-core
@@ -133829,32 +136614,6 @@ self: {
      }:
      mkDerivation {
        pname = "http-download";
-       version = "0.1.0.1";
-       sha256 = "1f1haybqflprm3gwnxsyi6pyz7k4b5qyiq4wqq81wb7nsrr4h943";
-       libraryHaskellDepends = [
-         base base64-bytestring bytestring conduit conduit-extra cryptonite
-         cryptonite-conduit directory exceptions filepath http-client
-         http-conduit http-types memory path path-io retry rio
-         rio-prettyprint
-       ];
-       testHaskellDepends = [
-         base cryptonite hspec hspec-discover http-client path path-io retry
-         rio rio-prettyprint
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Verified downloads with retries";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "http-download_0_2_0_0" = callPackage
-    ({ mkDerivation, base, base64-bytestring, bytestring, conduit
-     , conduit-extra, cryptonite, cryptonite-conduit, directory
-     , exceptions, filepath, hspec, hspec-discover, http-client
-     , http-conduit, http-types, memory, path, path-io, retry, rio
-     , rio-prettyprint
-     }:
-     mkDerivation {
-       pname = "http-download";
        version = "0.2.0.0";
        sha256 = "1wg5jck0h52dysdn0q5xs7gh8cjyq2qr9vaj7qa4fr3am1753n8v";
        libraryHaskellDepends = [
@@ -133870,7 +136629,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Verified downloads with retries";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "http-encodings" = callPackage
@@ -133930,23 +136688,24 @@ self: {
      }) {};
 
   "http-io-streams" = callPackage
-    ({ mkDerivation, attoparsec, base, base64-bytestring, blaze-builder
-     , brotli-streams, bytestring, case-insensitive, containers
-     , directory, HsOpenSSL, io-streams, mtl, network, network-uri
-     , openssl-streams, text, transformers
+    ({ mkDerivation, attoparsec, base, base64-bytestring, binary
+     , blaze-builder, brotli-streams, bytestring, case-insensitive
+     , containers, cryptohash-sha1, directory, HsOpenSSL, io-streams
+     , mtl, network, network-uri, openssl-streams, text, transformers
+     , xor
      }:
      mkDerivation {
        pname = "http-io-streams";
-       version = "0.1.3.0";
-       sha256 = "1m8nj92v21mgrb2mxlvc6smkpvd01664ng4kwikadb4j8bfpb15r";
+       version = "0.1.4.0";
+       sha256 = "004qqxc101qa9kcsn72wlgmfn14js3x6fx18kqvzhhxjh6fx0g1h";
        libraryHaskellDepends = [
-         attoparsec base base64-bytestring blaze-builder brotli-streams
-         bytestring case-insensitive containers directory HsOpenSSL
-         io-streams mtl network network-uri openssl-streams text
-         transformers
+         attoparsec base base64-bytestring binary blaze-builder
+         brotli-streams bytestring case-insensitive containers
+         cryptohash-sha1 directory HsOpenSSL io-streams mtl network
+         network-uri openssl-streams text transformers xor
        ];
-       description = "HTTP client based on io-streams";
-       license = stdenv.lib.licenses.bsd3;
+       description = "HTTP and WebSocket client based on io-streams";
+       license = "BSD-3-Clause AND GPL-2.0-or-later";
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -134202,6 +136961,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
@@ -134308,8 +137082,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
@@ -134406,8 +137180,8 @@ self: {
      }:
      mkDerivation {
        pname = "http2";
-       version = "2.0.4";
-       sha256 = "0rqfx6vvcrlic4sw5xlqzk3xvdsbw13d0ymppx8yjhkkzign6227";
+       version = "2.0.5";
+       sha256 = "1rg6dnkx2yxcdp87r1vdpyxacqv7jgxiq3bb1hjz45v5jk1xj676";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -134506,6 +137280,8 @@ self: {
        ];
        description = "Encoders based on `proto-lens` for gRPC over HTTP2";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "http2-grpc-proto3-wire" = callPackage
@@ -134943,8 +137719,8 @@ self: {
     ({ mkDerivation, base, dejafu, exceptions, HUnit }:
      mkDerivation {
        pname = "hunit-dejafu";
-       version = "2.0.0.1";
-       sha256 = "0n7npk8ksp14f2ib47navmc50rlnqrcsgdnxmd5qylg431h15sfz";
+       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;
@@ -135154,7 +137930,7 @@ self: {
        executableHaskellDepends = [
          array base bytestring containers kangaroo
        ];
-       description = "Extract function names from Windows DLLs.";
+       description = "Extract function names from Windows DLLs";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -135168,8 +137944,8 @@ self: {
      }:
      mkDerivation {
        pname = "hurl";
-       version = "1.4.1.0";
-       sha256 = "1n7688m5n5f62h59jjh2w5aa4ir87ni3x9wqnkc902crsqrgj2js";
+       version = "1.4.1.1";
+       sha256 = "0h4fzkdpsjsph6685sg78kwvajf7615y8dbcn9n88jwdq6j8j522";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -135334,33 +138110,33 @@ self: {
      }:
      mkDerivation {
        pname = "hvega";
-       version = "0.5.0.0";
-       sha256 = "0h587i2wxwdmp24yxw7ggg1ak68mppbjwgjrdfhzzqlwdr69y9k0";
+       version = "0.9.1.0";
+       sha256 = "0gy7f6amg5mvr1lc7s98ld445h4s0j8xjilpdq6c6yy5kgd5hdyp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ aeson base text unordered-containers ];
        testHaskellDepends = [
          aeson aeson-pretty base bytestring containers filepath tasty
-         tasty-golden text
+         tasty-golden text unordered-containers
        ];
        description = "Create Vega-Lite visualizations (version 4) in Haskell";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "hvega_0_7_0_1" = callPackage
+  "hvega_0_10_0_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
      , filepath, tasty, tasty-golden, text, unordered-containers
      }:
      mkDerivation {
        pname = "hvega";
-       version = "0.7.0.1";
-       sha256 = "16s58m7kk72hr52k9gci17ac5k38r1zy08wll2frzjxissgza4cj";
+       version = "0.10.0.0";
+       sha256 = "0jp9sfmyvscxn415z3mv5i2kjrwwabwy4v4qc709qkrfgzd9mmwn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ aeson base text unordered-containers ];
        testHaskellDepends = [
          aeson aeson-pretty base bytestring containers filepath tasty
-         tasty-golden text
+         tasty-golden text unordered-containers
        ];
        description = "Create Vega-Lite visualizations (version 4) in Haskell";
        license = stdenv.lib.licenses.bsd3;
@@ -135427,67 +138203,43 @@ self: {
      }) {};
 
   "hw-balancedparens" = callPackage
-    ({ mkDerivation, base, criterion, deepseq, doctest
-     , doctest-discover, hedgehog, hspec, hspec-discover, hw-bits
-     , hw-excess, hw-fingertree, hw-hspec-hedgehog, hw-prim
-     , hw-rankselect-base, transformers, vector
-     }:
-     mkDerivation {
-       pname = "hw-balancedparens";
-       version = "0.3.1.0";
-       sha256 = "1nr3p3qcd72i4av71vf9kxv483mdg13c10dnpynabxfh7vx49vc9";
-       libraryHaskellDepends = [
-         base deepseq hedgehog hspec hw-bits hw-excess hw-fingertree hw-prim
-         hw-rankselect-base vector
-       ];
-       testHaskellDepends = [
-         base doctest doctest-discover hedgehog hspec hw-bits
-         hw-hspec-hedgehog hw-prim hw-rankselect-base transformers vector
-       ];
-       testToolDepends = [ doctest-discover hspec-discover ];
-       benchmarkHaskellDepends = [
-         base criterion hedgehog hw-bits hw-prim vector
-       ];
-       doHaddock = false;
-       description = "Balanced parentheses";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-balancedparens_0_4_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, criterion, deepseq, doctest
-     , doctest-discover, generic-lens, hedgehog, hspec, hspec-discover
-     , hw-bits, hw-excess, hw-fingertree, hw-hspec-hedgehog, hw-prim
-     , hw-rankselect-base, lens, mmap, optparse-applicative
-     , transformers, vector
+    ({ mkDerivation, base, bytestring, criterion, deepseq, directory
+     , doctest, doctest-discover, generic-lens, hedgehog, hspec
+     , hspec-discover, hw-bits, hw-excess, hw-fingertree
+     , hw-hspec-hedgehog, hw-int, hw-prim, hw-rankselect-base, lens
+     , mmap, optparse-applicative, transformers, vector
      }:
      mkDerivation {
        pname = "hw-balancedparens";
-       version = "0.4.0.0";
-       sha256 = "02yb90i256avjkn7kfqiv55x8jpsiavr7swy1lh9bhga2zhgxnd5";
+       version = "0.4.1.0";
+       sha256 = "1ddxg00pwjvlrd4zdx9b9y7hm8rgxsxkvzzvwc34p2y75rivp21l";
        revision = "1";
-       editedCabalFile = "04s9n77xq5wr2n9zhj85dycxyvnbz0832m7sajrhl6kif4b0rsfv";
+       editedCabalFile = "0mc9lmjc3xrad4jlc9v66078362a791hnrrg9bclg1nq7jicfxgx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base deepseq hedgehog hspec hw-bits hw-excess hw-fingertree hw-prim
-         hw-rankselect-base vector
+         base deepseq hedgehog hspec hw-bits hw-excess hw-fingertree hw-int
+         hw-prim hw-rankselect-base vector
        ];
        executableHaskellDepends = [
          base bytestring generic-lens hw-bits hw-prim lens mmap
          optparse-applicative vector
        ];
        testHaskellDepends = [
-         base doctest doctest-discover hedgehog hspec hw-bits
-         hw-hspec-hedgehog hw-prim hw-rankselect-base transformers vector
+         base directory doctest doctest-discover hedgehog hspec hw-bits
+         hw-hspec-hedgehog hw-int hw-prim hw-rankselect-base transformers
+         vector
        ];
        testToolDepends = [ doctest-discover hspec-discover ];
        benchmarkHaskellDepends = [
-         base criterion hedgehog hw-bits hw-prim vector
+         base criterion deepseq directory generic-lens hedgehog hw-bits
+         hw-prim lens vector
        ];
        doHaddock = false;
        description = "Balanced parentheses";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hw-bits" = callPackage
@@ -135497,8 +138249,8 @@ self: {
      }:
      mkDerivation {
        pname = "hw-bits";
-       version = "0.7.2.0";
-       sha256 = "1i985qgcvwphawh91qh2r1wvh8y4kfa7s7wwwr92pgw4qsrvfkzi";
+       version = "0.7.2.1";
+       sha256 = "18l9r0yhddkzgbc2vvk0qr9brb5ih25zjfga3bddb5j8gpaaq65q";
        libraryHaskellDepends = [
          base bitvec bytestring deepseq hw-int hw-prim hw-string-parse
          vector
@@ -135603,8 +138355,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 = [
@@ -135644,8 +138396,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 = [
@@ -135679,8 +138431,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 = [
@@ -135704,6 +138456,8 @@ self: {
        ];
        description = "Elias-Fano";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hw-excess" = callPackage
@@ -135830,6 +138584,8 @@ self: {
        pname = "hw-ip";
        version = "2.4.2.0";
        sha256 = "1bvh4fkg1ffr3y8wink62rgkynlcgjhmra7a4w01h1dmw1vb2vfx";
+       revision = "1";
+       editedCabalFile = "19jbgqsmc71apmr6z0n0a2hgfhv9r0bsqa2x55r8grpyr91blpmw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -135861,10 +138617,10 @@ self: {
      }:
      mkDerivation {
        pname = "hw-json";
-       version = "1.3.2.0";
-       sha256 = "00pdd813phgfi9g9xs6r7iw03iifwmlzfb0b424q1cq6d9z37v2f";
-       revision = "2";
-       editedCabalFile = "1lg2l399fnx7vg2bxf6chcwpl9q3pblzrmwzzijxczvyfrsy5m41";
+       version = "1.3.2.1";
+       sha256 = "11lf4nxnkk8l25a44g1pkr9j1w03l69gqjgli5yfj6k68lzml7bf";
+       revision = "1";
+       editedCabalFile = "0l42hlc0icik28isjihqsj4cxzgdj1vzyxwazlyyv4f52liyjk61";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -135880,15 +138636,17 @@ self: {
          optparse-applicative text unordered-containers vector
        ];
        testHaskellDepends = [
-         aeson attoparsec base bytestring doctest doctest-discover hedgehog
-         hspec hw-balancedparens hw-bits hw-hspec-hedgehog
-         hw-json-simple-cursor hw-json-standard-cursor hw-prim hw-rankselect
-         hw-rankselect-base scientific text transformers vector
+         aeson attoparsec base bytestring dlist doctest doctest-discover
+         hedgehog hspec hw-balancedparens hw-bits hw-hspec-hedgehog
+         hw-json-simple-cursor hw-json-standard-cursor hw-mquery hw-prim
+         hw-rankselect hw-rankselect-base scientific text transformers
+         vector
        ];
        testToolDepends = [ doctest-discover hspec-discover ];
        benchmarkHaskellDepends = [
          base bytestring criterion directory hw-json-standard-cursor mmap
        ];
+       doHaddock = false;
        description = "Memory efficient JSON parser";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -135934,6 +138692,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 ];
@@ -135963,8 +138723,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 = [
@@ -136001,49 +138761,10 @@ self: {
      }:
      mkDerivation {
        pname = "hw-json-standard-cursor";
-       version = "0.2.2.0";
-       sha256 = "0rj0p3p2b5ghyyfkzvaivzcdsmnjxvqm16n94qpwacaszyca8hny";
-       revision = "2";
-       editedCabalFile = "07cspws24pxh9i98zylw73fknw6gcvna8qq9r3lcnh455wr3c9m1";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         array base bits-extra bytestring hw-balancedparens hw-bits
-         hw-json-simd hw-prim hw-rankselect hw-rankselect-base mmap vector
-         word8
-       ];
-       executableHaskellDepends = [
-         base bytestring generic-lens hw-balancedparens hw-json-simd hw-prim
-         hw-rankselect hw-rankselect-base lens mmap optparse-applicative
-         text vector
-       ];
-       testHaskellDepends = [
-         base bits-extra bytestring doctest doctest-discover hedgehog hspec
-         hw-balancedparens hw-bits hw-hspec-hedgehog hw-prim hw-rankselect
-         hw-rankselect-base vector
-       ];
-       testToolDepends = [ doctest-discover hspec-discover ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion directory mmap
-       ];
-       description = "Memory efficient JSON parser";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "hw-json-standard-cursor_0_2_3_1" = callPackage
-    ({ mkDerivation, array, base, bits-extra, bytestring, criterion
-     , directory, doctest, doctest-discover, generic-lens, hedgehog
-     , hspec, hspec-discover, hw-balancedparens, hw-bits
-     , hw-hspec-hedgehog, hw-json-simd, hw-prim, hw-rankselect
-     , hw-rankselect-base, lens, mmap, optparse-applicative, text
-     , vector, word8
-     }:
-     mkDerivation {
-       pname = "hw-json-standard-cursor";
        version = "0.2.3.1";
        sha256 = "1mpsspp6ba2zqv38a0rcv93mbwb1rb8snmxklf32g02djj8b4vir";
+       revision = "1";
+       editedCabalFile = "0gdvwhj2jmd8dm1yi3kzs0lyw5r4bk7c50s21z1600v36bmzpdm1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -136101,13 +138822,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.0";
-       sha256 = "0dnqswvkxqwvhcxkr2vh5qskbj4dmqm52n17y57n4nk5wkr30knz";
+       version = "3.1.2";
+       sha256 = "1yqzh9cvs9yr88wa0r26izd35hg2vfzqvzxbx0l6c1apgc3m7hd6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -136116,8 +138837,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";
@@ -136181,8 +138901,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 = [
@@ -136269,6 +138989,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
@@ -136283,8 +139005,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 = [
@@ -136308,6 +139030,8 @@ self: {
        doHaddock = false;
        description = "Rank-select";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hw-rankselect-base" = callPackage
@@ -136318,8 +139042,8 @@ self: {
      }:
      mkDerivation {
        pname = "hw-rankselect-base";
-       version = "0.3.4.0";
-       sha256 = "0rfk06fwmvpw2s7m397xm2s0831ad743325pv6yrd7019jcbiayl";
+       version = "0.3.4.1";
+       sha256 = "1s0lqwq0rjmjca6lshfnxqi0c7bzlyflhm45xw1xa9pvqci8439h";
        libraryHaskellDepends = [
          base bits-extra bitvec hw-bits hw-int hw-prim hw-string-parse
          vector
@@ -136426,6 +139150,8 @@ self: {
        ];
        description = "Succint datastructures";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hw-uri" = callPackage
@@ -136440,8 +139166,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 = [
@@ -136490,8 +139216,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;
@@ -136518,6 +139244,8 @@ self: {
        ];
        description = "XML parser based on succinct data structures";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hwall-auth-iitk" = callPackage
@@ -136913,7 +139641,7 @@ self: {
          base containers directory filepath haskell98 HTTP HUnit hxt network
          parsec process
        ];
-       description = "A collection of tools for processing XML with Haskell (Filter variant).";
+       description = "A collection of tools for processing XML with Haskell (Filter variant)";
        license = "unknown";
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
@@ -137474,6 +140202,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;
@@ -137663,6 +140393,8 @@ self: {
        pname = "hyphenation";
        version = "0.8";
        sha256 = "09c9xpygjnq7kqcaybls91s7g1cv40rg54dn9w1svk973h0lgyii";
+       revision = "1";
+       editedCabalFile = "0h8k3hj2lrmj4fg8q34v6q4pskmpci9v8z3hby8gamjmlgivsqjf";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
@@ -137714,8 +140446,8 @@ self: {
        pname = "hyraxAbif";
        version = "0.2.3.21";
        sha256 = "0ghhfv8gzs9sg13nj3mhqd24zbrkjj1dgsjz3sql6276kpa1p2kc";
-       revision = "2";
-       editedCabalFile = "05fnq87n1rprz3mlw89g74b1arzhldn8yqj3la04g3r3m39fh2v1";
+       revision = "3";
+       editedCabalFile = "12ka2k7z7yg3jbx6ya409flyqpl6i29hcf445dicbp1jpra2d70f";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137785,8 +140517,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
        ];
@@ -138068,6 +140800,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 {
@@ -138459,8 +141202,8 @@ self: {
      }:
      mkDerivation {
        pname = "idris";
-       version = "1.3.2";
-       sha256 = "0wychzkg0yghd2pp8fqz78vp1ayzks191knfpl7mhh8igsmb6bc7";
+       version = "1.3.3";
+       sha256 = "1pachwc6msw3n1mz2z1r1w6h518w9gbhdvbaa5vi1qp3cn3wm6q4";
        configureFlags = [ "-fcurses" "-fexeconly" "-fffi" "-fgmp" ];
        isLibrary = true;
        isExecutable = true;
@@ -138751,8 +141494,8 @@ self: {
      }:
      mkDerivation {
        pname = "ihaskell";
-       version = "0.10.1.0";
-       sha256 = "0vbi0cnw0hxm69h90v9rbjaqqfilg4mcrv0rdvmc11jxdiv3qlvw";
+       version = "0.10.1.1";
+       sha256 = "10rsdcc2l0gkhapvi5vzjc7m2bwv67k4iy3vjkx8i92jk6023y64";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -138773,8 +141516,6 @@ self: {
        ];
        description = "A Haskell backend kernel for the IPython project";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-aeson" = callPackage
@@ -138790,8 +141531,6 @@ self: {
        ];
        description = "IHaskell display instances for Aeson";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-basic" = callPackage
@@ -138816,8 +141555,6 @@ self: {
        libraryHaskellDepends = [ base blaze-html blaze-markup ihaskell ];
        description = "IHaskell display instances for blaze-html types";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-charts" = callPackage
@@ -138834,8 +141571,6 @@ self: {
        ];
        description = "IHaskell display instances for charts types";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-diagrams" = callPackage
@@ -138852,8 +141587,6 @@ self: {
        ];
        description = "IHaskell display instances for diagram types";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-display" = callPackage
@@ -138878,8 +141611,6 @@ self: {
        libraryHaskellDepends = [ base bytestring gnuplot ihaskell ];
        description = "IHaskell display instance for Gnuplot (from gnuplot package)";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-graphviz" = callPackage
@@ -138891,8 +141622,6 @@ self: {
        libraryHaskellDepends = [ base bytestring ihaskell process ];
        description = "IHaskell display instance for GraphViz (external binary)";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-hatex" = callPackage
@@ -138904,21 +141633,17 @@ self: {
        libraryHaskellDepends = [ base HaTeX ihaskell text ];
        description = "IHaskell display instances for hatex";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-hvega" = callPackage
     ({ mkDerivation, aeson, base, hvega, ihaskell, text }:
      mkDerivation {
        pname = "ihaskell-hvega";
-       version = "0.2.4.0";
-       sha256 = "0yk8wxr1kh3xibb1l5jgjryq7h4id9cz59yjkjjzq41r6p1zr6yj";
+       version = "0.3.1.0";
+       sha256 = "1zfk58f10r8mkj9wwi4mgqm6hyf2x6zkrxm7rdi8yfvfya38m7fy";
        libraryHaskellDepends = [ aeson base hvega ihaskell text ];
        description = "IHaskell display instance for hvega types";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-inline-r" = callPackage
@@ -138936,8 +141661,6 @@ self: {
        ];
        description = "Embed R quasiquotes and plots in IHaskell notebooks";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-juicypixels" = callPackage
@@ -138952,8 +141675,6 @@ self: {
        ];
        description = "IHaskell - IHaskellDisplay instances of the image types of the JuicyPixels package";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-magic" = callPackage
@@ -138970,8 +141691,6 @@ self: {
        ];
        description = "IHaskell display instances for bytestrings";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-parsec" = callPackage
@@ -139081,23 +141800,6 @@ self: {
      }:
      mkDerivation {
        pname = "ilist";
-       version = "0.4.0.0";
-       sha256 = "105qz5x03fa713ghxvmivawsaq3l9zf5ab4n09j7i7ryj3dwp4nv";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base hspec transformers ];
-       benchmarkHaskellDepends = [
-         base criterion lens loop transformers vector
-       ];
-       description = "Optimised list functions for doing index-related things";
-       license = stdenv.lib.licenses.mpl20;
-     }) {};
-
-  "ilist_0_4_0_1" = callPackage
-    ({ mkDerivation, base, criterion, hspec, lens, loop, transformers
-     , vector
-     }:
-     mkDerivation {
-       pname = "ilist";
        version = "0.4.0.1";
        sha256 = "016wa9n4glxcyvbifvfz2khk9i1i5wzfyl952vp1fhwpjrr8aj04";
        libraryHaskellDepends = [ base ];
@@ -139107,7 +141809,6 @@ self: {
        ];
        description = "Optimised list functions for doing index-related things";
        license = stdenv.lib.licenses.mpl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "illuminate" = callPackage
@@ -139126,7 +141827,7 @@ self: {
        libraryToolDepends = [ alex ];
        executableHaskellDepends = [ array base containers html xhtml ];
        executableToolDepends = [ alex ];
-       description = "A fast syntax highlighting library built with alex.";
+       description = "A fast syntax highlighting library built with alex";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -139141,7 +141842,7 @@ self: {
        revision = "1";
        editedCabalFile = "1wl2sv2g7iwxldk582h1z6a2b3ks4wzk8rx8bflcxwlh6s4kq0s7";
        libraryHaskellDepends = [ base bytestring ];
-       description = "Determine the type of an image by reading the first bytes.";
+       description = "Determine the type of an image by reading the first bytes";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -139424,38 +142125,36 @@ self: {
      }) {};
 
   "imm" = callPackage
-    ({ mkDerivation, aeson, async, atom-conduit, base-noprelude, binary
-     , blaze-html, blaze-markup, bytestring, case-insensitive, conduit
-     , connection, containers, dhall, directory, fast-logger, filepath
-     , hashable, http-client, http-client-tls, http-types, microlens
-     , mime-mail, monad-time, msgpack, opml-conduit
-     , optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
-     , refined, relude, rss-conduit, safe-exceptions, stm, stm-chans
-     , streaming-bytestring, streaming-with, text, time, timerep, tls
-     , typed-process, uri-bytestring, xml-conduit, xml-types
+    ({ mkDerivation, aeson, async, atom-conduit, avro, base-noprelude
+     , binary, blaze-html, blaze-markup, bytestring, conduit, containers
+     , dhall, directory, fast-logger, filepath, hashable, microlens
+     , mime-mail, monad-time, opml-conduit, optparse-applicative, pipes
+     , pipes-bytestring, prettyprinter, prettyprinter-ansi-terminal
+     , refined, relude, rss-conduit, safe, safe-exceptions, stm
+     , stm-chans, text, time, timerep, typed-process, uri-bytestring
+     , xml-conduit, xml-types
      }:
      mkDerivation {
        pname = "imm";
-       version = "1.8.0.0";
-       sha256 = "09948024zkjhdza100bi441xl2h8sd5b9gzki0l51dsm27phfk23";
+       version = "1.10.0.0";
+       sha256 = "0kjh6j1lw4ixgz5jkmaqfxi4rmmd5k2nq4wdr4c0yw26kwvgv003";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson async atom-conduit base-noprelude binary conduit containers
-         dhall directory filepath hashable http-types microlens monad-time
-         msgpack prettyprinter prettyprinter-ansi-terminal refined relude
-         rss-conduit safe-exceptions text time timerep tls uri-bytestring
-         xml-conduit xml-types
+         aeson async atom-conduit avro base-noprelude binary conduit
+         containers dhall directory filepath hashable microlens monad-time
+         pipes pipes-bytestring prettyprinter prettyprinter-ansi-terminal
+         refined relude rss-conduit safe-exceptions text time timerep
+         typed-process uri-bytestring xml-conduit xml-types
        ];
        executableHaskellDepends = [
-         aeson async atom-conduit base-noprelude blaze-html blaze-markup
-         bytestring case-insensitive conduit connection containers dhall
-         directory fast-logger filepath http-client http-client-tls
-         mime-mail msgpack opml-conduit optparse-applicative prettyprinter
-         prettyprinter-ansi-terminal refined relude rss-conduit
-         safe-exceptions stm stm-chans streaming-bytestring streaming-with
-         text time typed-process uri-bytestring xml-conduit xml-types
+         aeson async atom-conduit avro base-noprelude blaze-html
+         blaze-markup bytestring conduit containers dhall directory
+         fast-logger filepath mime-mail opml-conduit optparse-applicative
+         pipes pipes-bytestring prettyprinter prettyprinter-ansi-terminal
+         refined relude rss-conduit safe safe-exceptions stm stm-chans text
+         time typed-process uri-bytestring xml-conduit xml-types
        ];
        description = "Execute arbitrary callbacks for each element of RSS/Atom feeds";
        license = stdenv.lib.licenses.cc0;
@@ -139603,6 +142302,52 @@ self: {
        license = stdenv.lib.licenses.agpl3;
      }) {};
 
+  "implicit-hie" = callPackage
+    ({ mkDerivation, attoparsec, base, directory, filepath, filepattern
+     , hspec, hspec-attoparsec, text, transformers, yaml
+     }:
+     mkDerivation {
+       pname = "implicit-hie";
+       version = "0.1.1.0";
+       sha256 = "048y1wbwcp1vs4shgfzvcmbgg8fnm0pw2i7a8488b5kshfzf9syb";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         attoparsec base directory filepath filepattern text transformers
+         yaml
+       ];
+       executableHaskellDepends = [
+         attoparsec base directory filepath filepattern text transformers
+         yaml
+       ];
+       testHaskellDepends = [
+         attoparsec base directory filepath filepattern hspec
+         hspec-attoparsec text transformers yaml
+       ];
+       description = "Auto generate hie-bios cradles & hie.yaml";
+       license = 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 {
@@ -139858,8 +142603,8 @@ self: {
      }:
      mkDerivation {
        pname = "incremental";
-       version = "0.2";
-       sha256 = "0af3nrjmhxzn6q45nvrw8lw54239pkwdl3fdvhj10fv8rxdihnzh";
+       version = "0.3";
+       sha256 = "0l433m75m89iyb8djfzk7nfysmy11p75a852ib48n4gzkgyvi3mh";
        libraryHaskellDepends = [
          aeson base bytestring containers deepseq semigroups text
        ];
@@ -139922,8 +142667,8 @@ self: {
      }:
      mkDerivation {
        pname = "incremental-parser";
-       version = "0.4.0.1";
-       sha256 = "1cghkzdsh8vjv1ggk5qjr5ny88wna5kbifbfsy1ld5n5k66536lf";
+       version = "0.4.0.2";
+       sha256 = "11vip6qxw0y5yza4dcq4iah4kw3lyjsbxgbq1j17p1gr3c3xiafa";
        libraryHaskellDepends = [
          base monoid-subclasses parsers rank2classes transformers
        ];
@@ -139937,6 +142682,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 {
@@ -140263,6 +143032,32 @@ self: {
        broken = true;
      }) {};
 
+  "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 {
+       pname = "indigo";
+       version = "0.1.0.0";
+       sha256 = "03bspqbw8iz25d58xvy18qzk7wrm5k48k6bvnnslkikqy2bnkcr1";
+       libraryHaskellDepends = [
+         base constraints containers lorentz morley morley-prelude
+         reflection singletons template-haskell vinyl
+       ];
+       testHaskellDepends = [
+         base containers fmt hedgehog hspec-expectations HUnit lorentz
+         morley morley-prelude singletons tasty tasty-hedgehog
+         tasty-hunit-compat
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Convenient imperative eDSL over Lorentz";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "inf-interval" = callPackage
     ({ mkDerivation, array, base, deepseq, QuickCheck, text, vector }:
      mkDerivation {
@@ -140271,7 +143066,7 @@ self: {
        sha256 = "08fjmza05wlj11mvdjwfcp3fn6k5zi1hsld84805clipd55sbp0r";
        libraryHaskellDepends = [ array base deepseq vector ];
        testHaskellDepends = [ array base deepseq QuickCheck text vector ];
-       description = "Non-contiguous interval data types with potentially infinite ranges.";
+       description = "Non-contiguous interval data types with potentially infinite ranges";
        license = stdenv.lib.licenses.gpl3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -140441,8 +143236,8 @@ self: {
      }:
      mkDerivation {
        pname = "influxdb";
-       version = "1.7.1.3";
-       sha256 = "079f8xwhnzbdzjy0kbhsaklplp0d0nb9gxc193g9nl6v299zb8gv";
+       version = "1.7.1.6";
+       sha256 = "1psx9v95fhlapizhh7jdz4cvynwv9jiqn09z0843lhc74jqf65in";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -140459,6 +143254,34 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "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
+     , scientific, tagged, tasty, tasty-hunit, template-haskell, text
+     , time, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "influxdb";
+       version = "1.9.0";
+       sha256 = "1d580f2j71x0iww0q2mg47jbhjsd83yarrnnmcp9f2bx7cix174v";
+       isLibrary = true;
+       isExecutable = true;
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring clock containers foldl http-client
+         http-types lens network optional-args scientific tagged text time
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base containers doctest lens raw-strings-qq tasty tasty-hunit
+         template-haskell time vector
+       ];
+       description = "Haskell client library for InfluxDB";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "informative" = callPackage
     ({ mkDerivation, base, containers, csv, highlighting-kate
      , http-conduit, monad-logger, pandoc, persistent
@@ -140634,6 +143457,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
@@ -140737,19 +143562,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;
@@ -140788,8 +143616,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
@@ -140812,6 +143638,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 {
@@ -140836,6 +143678,8 @@ self: {
        pname = "insert-ordered-containers";
        version = "0.2.3.1";
        sha256 = "020a56280mxjk9k97q2m1424m73m1sf1ccl0wm0ci9msyw2g51za";
+       revision = "1";
+       editedCabalFile = "1s90flzj3039s50r6hx7mqihf8lvarcqb6zps7m12x543gahfcq0";
        libraryHaskellDepends = [
          aeson base base-compat hashable lens optics-core optics-extra
          semigroupoids semigroups text transformers unordered-containers
@@ -141129,8 +143973,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
@@ -141306,6 +144150,44 @@ 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
+     }:
+     mkDerivation {
+       pname = "interact";
+       version = "0.2.0.0";
+       sha256 = "0fnzhcdyd95z5jll88y8zi9dgr2z55w0ddiv4kfyjxy6jampdypj";
+       libraryHaskellDepends = [ base mtl ];
+       testHaskellDepends = [
+         base bytestring hspec main-tester mtl silently
+       ];
+       description = "instantly create REPL from any function";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "interactive-plot" = callPackage
     ({ mkDerivation, base, containers, data-default-class, microlens
      , microlens-th, MonadRandom, mtl, transformers, vty
@@ -141498,6 +144380,8 @@ self: {
        ];
        description = "Tracery-like randomized text interpolation";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "interpol" = callPackage
@@ -141531,8 +144415,8 @@ self: {
      }:
      mkDerivation {
        pname = "interpolate";
-       version = "0.2.0";
-       sha256 = "1gkaj98yz363v38fv78sqby236mp8yqwqcilx7kr2b9z0w3204bf";
+       version = "0.2.1";
+       sha256 = "03jrkj9c62w0c2awym8mhpsgpd0jffl50cqwfrm7bbdfhd8dsxi7";
        libraryHaskellDepends = [ base haskell-src-meta template-haskell ];
        testHaskellDepends = [
          base base-compat bytestring haskell-src-meta hspec QuickCheck
@@ -141650,6 +144534,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 {
@@ -141711,6 +144617,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
@@ -141720,6 +144650,8 @@ self: {
        pname = "intervals";
        version = "0.9.1";
        sha256 = "1s9pj2dah94smq769q4annxv2grdx376wvhzl4rsq85kjppf5a6z";
+       revision = "1";
+       editedCabalFile = "0fz1g5nlh87qznpm5cnj6rn65wi9nw8k7daw43jng1f2v0svvxng";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ array base distributive ghc-prim ];
        testHaskellDepends = [
@@ -141780,44 +144712,42 @@ self: {
 
   "intro" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, dlist
-     , extra, hashable, lens, mtl, QuickCheck, safe, text, transformers
-     , unordered-containers, writer-cps-mtl
+     , extra, hashable, lens, mtl, optics, QuickCheck, safe, text
+     , transformers, unordered-containers, writer-cps-mtl
      }:
      mkDerivation {
        pname = "intro";
-       version = "0.6.0.1";
-       sha256 = "1kka6dnlyqppjx9ykk3zixfyslr8cf4ja6sa2hgq6h69mmsicp67";
-       revision = "2";
-       editedCabalFile = "12jmy4lp9yrix6hm6cx3kmgprpmlwdyxqckyx53h01iygfpbx3w5";
+       version = "0.7.0.0";
+       sha256 = "18ddkcm77jxqpqjaaqs1qmzvn8zgincrybb3d4zcsggrp6llghc3";
        libraryHaskellDepends = [
          base bytestring containers deepseq dlist extra hashable mtl safe
          text transformers unordered-containers writer-cps-mtl
        ];
        testHaskellDepends = [
          base bytestring containers deepseq dlist extra hashable lens mtl
-         QuickCheck safe text transformers unordered-containers
+         optics QuickCheck safe text transformers unordered-containers
          writer-cps-mtl
        ];
        description = "Safe and minimal prelude";
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "intro_0_7_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, dlist
-     , extra, hashable, lens, mtl, optics, QuickCheck, safe, text
-     , transformers, unordered-containers, writer-cps-mtl
+  "intro_0_8_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.7.0.0";
-       sha256 = "18ddkcm77jxqpqjaaqs1qmzvn8zgincrybb3d4zcsggrp6llghc3";
+       version = "0.8.0.0";
+       sha256 = "1vmhmpcikxlmad2c55bdlsa7j1x30irjb7dp69qii650qslh2rf3";
        libraryHaskellDepends = [
-         base bytestring containers deepseq dlist extra hashable mtl safe
-         text transformers unordered-containers writer-cps-mtl
+         base bytestring containers extra hashable mtl safe text
+         transformers unordered-containers writer-cps-mtl
        ];
        testHaskellDepends = [
-         base bytestring containers deepseq dlist extra hashable lens mtl
-         optics QuickCheck safe text transformers unordered-containers
+         base bytestring containers extra hashable lens mtl optics
+         QuickCheck safe text transformers unordered-containers
          writer-cps-mtl
        ];
        description = "Safe and minimal prelude";
@@ -141948,8 +144878,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
@@ -141966,18 +144896,14 @@ self: {
      }:
      mkDerivation {
        pname = "invertible-grammar";
-       version = "0.1.2";
-       sha256 = "1nf7dchcxs8wwd2hgfpf04qd63ws22pafjwb5911lq7da8k1y57j";
-       revision = "3";
-       editedCabalFile = "023nln2rhsijx4z7cm914283fm7fv2azk0w65nlbgky7cbmn021w";
+       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
@@ -142019,6 +144945,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
@@ -142172,8 +145109,8 @@ self: {
        pname = "io-streams-haproxy";
        version = "1.0.1.0";
        sha256 = "1dcn5hd4fiwyq7m01r6fi93vfvygca5s6mz87c78m0zyj29clkmp";
-       revision = "2";
-       editedCabalFile = "1pvw39f0vrzb5hdx6nqpdg4ccsxa59vwjspfjkh6vvw1zwmidgja";
+       revision = "3";
+       editedCabalFile = "02k9halblgnynlm781ahc81yxla8z7cck1gikm8555v78rf5hv7x";
        libraryHaskellDepends = [
          attoparsec base bytestring io-streams network transformers
        ];
@@ -142316,21 +145253,20 @@ self: {
      }) {};
 
   "ip" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, byteslice, bytesmith
-     , bytestring, criterion, deepseq, doctest, hashable, hspec
-     , hspec-discover, HUnit, natural-arithmetic, primitive, QuickCheck
-     , quickcheck-classes, random, small-bytearray-builder, tasty
-     , tasty-hunit, tasty-quickcheck, text, text-short, vector
-     , wide-word
+    ({ mkDerivation, aeson, attoparsec, base, bytebuild, byteslice
+     , bytesmith, bytestring, criterion, deepseq, doctest, hashable
+     , hspec, hspec-discover, HUnit, natural-arithmetic, primitive
+     , QuickCheck, quickcheck-classes, random, tasty, tasty-hunit
+     , tasty-quickcheck, text, text-short, vector, wide-word
      }:
      mkDerivation {
        pname = "ip";
-       version = "1.7.1";
-       sha256 = "0y4cbr7ci41c5m0j1cllf5hsgnplxkw4lhzxynxv5af9dhpmzak4";
+       version = "1.7.2";
+       sha256 = "10jcqc7x48kfslyahl9i4pb1qmjfg1fjznc5w7kl9kx2cxivbwig";
        libraryHaskellDepends = [
-         aeson attoparsec base byteslice bytesmith bytestring deepseq
-         hashable natural-arithmetic primitive small-bytearray-builder text
-         text-short vector wide-word
+         aeson attoparsec base bytebuild byteslice bytesmith bytestring
+         deepseq hashable natural-arithmetic primitive text text-short
+         vector wide-word
        ];
        testHaskellDepends = [
          attoparsec base byteslice bytestring doctest hspec HUnit QuickCheck
@@ -142344,8 +145280,6 @@ self: {
        ];
        description = "Library for IP and MAC addresses";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ip-quoter" = callPackage
@@ -142379,8 +145313,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;
@@ -142462,8 +145396,8 @@ self: {
      }:
      mkDerivation {
        pname = "ipfs";
-       version = "1.0.2";
-       sha256 = "0mrr67bz283qqz0d70j9gz191l4pi554j3hmcf7pscg87b84rdv5";
+       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
@@ -142645,28 +145579,6 @@ self: {
 
   "ipython-kernel" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cereal, cereal-text
-     , containers, cryptonite, directory, filepath, memory, mtl, process
-     , temporary, text, transformers, unordered-containers, uuid
-     , zeromq4-haskell
-     }:
-     mkDerivation {
-       pname = "ipython-kernel";
-       version = "0.10.1.0";
-       sha256 = "03sygh5jvigfjg3il49wy41p6ac1wh2gx8wj3hg2rvsh91p9f4dw";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         aeson base bytestring cereal cereal-text containers cryptonite
-         directory filepath memory mtl process temporary text transformers
-         unordered-containers uuid zeromq4-haskell
-       ];
-       description = "A library for creating kernels for IPython frontends";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "ipython-kernel_0_10_2_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, cereal, cereal-text
      , containers, cryptonite, directory, filepath, memory, mtl, parsec
      , process, temporary, text, transformers, unordered-containers
      , uuid, zeromq4-haskell
@@ -142685,7 +145597,6 @@ self: {
        ];
        description = "A library for creating kernels for IPython frontends";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "irc" = callPackage
@@ -142771,10 +145682,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
@@ -142915,8 +145824,8 @@ self: {
      }:
      mkDerivation {
        pname = "ircbot";
-       version = "0.6.5.3";
-       sha256 = "0i9wrnlwf51wp3xgksj451nw6rxf2qghyhcjz7ihdxmqivbc6167";
+       version = "0.6.6";
+       sha256 = "1nmqgimmmxry4pj1y5mfsp662hkivn0vr9n8rx1yn0aldlzrxdm8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -143074,6 +145983,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "isbn" = callPackage
+    ({ mkDerivation, base, hspec, text }:
+     mkDerivation {
+       pname = "isbn";
+       version = "1.0.0.0";
+       sha256 = "0cxffahx54mf0baib9w2g2gbmcpmnzvpga71zggjaqkl0l7a7hf5";
+       libraryHaskellDepends = [ base text ];
+       testHaskellDepends = [ base hspec text ];
+       description = "ISBN Validation and Manipulation";
+       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
@@ -143338,6 +146272,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "it-has" = callPackage
+    ({ mkDerivation, base, generic-lens, QuickCheck }:
+     mkDerivation {
+       pname = "it-has";
+       version = "0.2.0.0";
+       sha256 = "0cpv2g95gvb4cb3jin2k12yz7nvksqkc9fn9mgy9smbx1m7xc06g";
+       libraryHaskellDepends = [ base generic-lens ];
+       testHaskellDepends = [ base generic-lens QuickCheck ];
+       description = "Automatically derivable Has instances";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "itanium-abi" = callPackage
     ({ mkDerivation, base, boomerang, HUnit, process, test-framework
      , test-framework-hunit, text, transformers, unordered-containers
@@ -144000,6 +146946,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.0";
+       sha256 = "1qa00y5cn3i2b66h87i6sfx6xx4yvgq7gk6maij5b9w4c821h4m4";
+       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.1";
+       sha256 = "14cd3kzhqv8w9f756drhjpmrr32i6n9sjmp9fk2gngsigaksnvnk";
+       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
@@ -144707,8 +147691,8 @@ self: {
     ({ mkDerivation, base, mtl, parsec, tasty, tasty-hunit, text }:
      mkDerivation {
        pname = "jira-wiki-markup";
-       version = "1.0.0";
-       sha256 = "1sl2jjcsqg61si33mxjwpf8zdn56kbbgcwqqqzbgifx2qbv4wmf8";
+       version = "1.1.4";
+       sha256 = "0riwi6i0vvmfffprzd4gklxjivjv1x7cmb2vx43x6n8yfrd75yzv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base mtl parsec text ];
@@ -144718,12 +147702,12 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "jira-wiki-markup_1_3_0" = callPackage
+  "jira-wiki-markup_1_3_2" = callPackage
     ({ mkDerivation, base, mtl, parsec, tasty, tasty-hunit, text }:
      mkDerivation {
        pname = "jira-wiki-markup";
-       version = "1.3.0";
-       sha256 = "01jv2xrp0xkx00fdxglik85mnbnkhgxfyya6kvkm4fgifj111h4s";
+       version = "1.3.2";
+       sha256 = "16vcy9gn6qrzvr99l26az4yi2dy9xngcb1wmj86yl7bmk1hcq3wc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base mtl parsec text ];
@@ -144855,18 +147839,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;
@@ -145024,26 +148009,26 @@ self: {
   "jose" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
      , bytestring, concise, containers, cryptonite, hspec, lens, memory
-     , monad-time, mtl, network-uri, QuickCheck, quickcheck-instances
-     , safe, semigroups, tasty, tasty-hspec, tasty-quickcheck
+     , monad-time, mtl, network-uri, pem, QuickCheck
+     , quickcheck-instances, safe, tasty, tasty-hspec, tasty-quickcheck
      , template-haskell, text, time, unordered-containers, vector, x509
      }:
      mkDerivation {
        pname = "jose";
-       version = "0.8.2.1";
-       sha256 = "1mfnxfzgcxlsjfwzg4syih6wasi7mq25j3dawar9aihvdkpwqlfh";
+       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
-         QuickCheck quickcheck-instances safe semigroups tasty tasty-hspec
+         pem QuickCheck quickcheck-instances safe tasty tasty-hspec
          tasty-quickcheck template-haskell text time unordered-containers
          vector x509
        ];
@@ -145181,8 +148166,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
@@ -145199,8 +148184,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
        ];
@@ -145214,8 +148199,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
@@ -145248,8 +148233,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
@@ -145263,8 +148248,6 @@ self: {
        ];
        description = "Interface for JavaScript that works with GHCJS and GHC";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "jsaddle-webkit2gtk" = callPackage
@@ -145275,8 +148258,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
@@ -145312,8 +148295,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
@@ -145410,8 +148393,8 @@ self: {
      }:
      mkDerivation {
        pname = "json-api-lib";
-       version = "0.2.1.0";
-       sha256 = "1dfi978ypgy1mlg7xmb4qja88pvvzvn2k26il2xiki3pcxnc4hsl";
+       version = "0.3.0.0";
+       sha256 = "14lycfqjp3v6lnr4vqagps80dpvy8z6gs6sqq3qz184xyw4m2ini";
        libraryHaskellDepends = [
          aeson base containers data-default deepseq lens lens-aeson text
          unordered-containers uri-encode
@@ -145590,19 +148573,21 @@ self: {
      }) {};
 
   "json-directory" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, directory, filepath, text
-     , unordered-containers
+    ({ mkDerivation, aeson, base, bytestring, directory, filepath, mtl
+     , process, text, unordered-containers
      }:
      mkDerivation {
        pname = "json-directory";
-       version = "0.1.0.0";
-       sha256 = "1pkna0f0al0p391s6i3rnylmh5ydf8jphd728cr14gqlvfq3hqy8";
+       version = "0.1.0.1";
+       sha256 = "145z46hh3ba3g7niwv9kf5djfv3xa1q5fmwadi629h7grfij0rr3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base directory filepath text unordered-containers
+         aeson base bytestring directory filepath text unordered-containers
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring filepath mtl process text
        ];
-       executableHaskellDepends = [ aeson base bytestring ];
        description = "Load JSON from files in a directory structure";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -145671,15 +148656,12 @@ self: {
      }:
      mkDerivation {
        pname = "json-feed";
-       version = "1.0.9";
-       sha256 = "10jm25dydg49nb9xpdhbv7cbpd35wwnsnqdkkia0y2r7d5xlc5jy";
+       version = "1.0.11";
+       sha256 = "1h9v71pvzi761ml0dpkmhd7w2l36s1v3rsq9zbshw87762710fy1";
        libraryHaskellDepends = [
          aeson base bytestring mime-types network-uri tagsoup text time
        ];
-       testHaskellDepends = [
-         aeson base bytestring filepath hspec mime-types network-uri tagsoup
-         text time
-       ];
+       testHaskellDepends = [ base bytestring filepath hspec ];
        description = "JSON Feed";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -145860,8 +148842,8 @@ self: {
      }:
      mkDerivation {
        pname = "json-rpc";
-       version = "1.0.1";
-       sha256 = "1gghpzaz2p1ib5jgkr0hn0fpzdkkzx9ywc65q3np9n6x6zb2878h";
+       version = "1.0.3";
+       sha256 = "0168hk5sqrxily51m0vlwvarmz59h79520y1ivbf6g38hxm8m60g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -145880,7 +148862,7 @@ self: {
          vector
        ];
        description = "Fully-featured JSON-RPC 2.0 library";
-       license = stdenv.lib.licenses.publicDomain;
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "json-rpc-client" = callPackage
@@ -146181,7 +149163,7 @@ self: {
          base blaze-builder bytestring containers json2-types mtl old-locale
          parsec pretty time utf8-string
        ];
-       description = "Library provides support for JSON.";
+       description = "Library provides support for JSON";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -146447,6 +149429,30 @@ 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
+     }:
+     mkDerivation {
+       pname = "jsop";
+       version = "0.1.0.0";
+       sha256 = "0yaxcpxgn00jf3igvncg59ca6hz28sf791872n617v3vh7arv8y3";
+       libraryHaskellDepends = [
+         aeson base containers generics-sop lens lens-aeson
+         monoidal-containers protolude string-interpolate tasty
+         tasty-discover tasty-hspec text
+       ];
+       testHaskellDepends = [
+         aeson base containers generics-sop lens lens-aeson
+         monoidal-containers protolude string-interpolate tasty
+         tasty-discover tasty-hspec text
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Cherry picking in JSON objects";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "jspath" = callPackage
     ({ mkDerivation, base, bytestring, bytestring-trie, JSONb
      , utf8-string
@@ -146557,8 +149563,8 @@ self: {
      }:
      mkDerivation {
        pname = "juicy-gcode";
-       version = "0.1.0.5.2";
-       sha256 = "14pd0gl2an4mkxkhcx2ybvzdfx2izcnm05p7p7kncf5wdgmkn0px";
+       version = "0.1.0.10";
+       sha256 = "17ps1kkbjvlvyjzbqagwikw960nn8q4dzjvng0waknr2gaa125bj";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -146574,17 +149580,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 ];
@@ -146622,8 +149628,8 @@ self: {
     ({ mkDerivation, base, tasty, tasty-golden, text, xml-conduit }:
      mkDerivation {
        pname = "junit-xml";
-       version = "0.1.0.0";
-       sha256 = "006w30x66pqzjxarhavp0lyy8cb16gmvyyirbx9scfnbki8ybchs";
+       version = "0.1.0.1";
+       sha256 = "1r75ncsmr5yj7xbgrw4sipjii7l3v7hj6nfi1lidc26n4m7r8ib1";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base text xml-conduit ];
        testHaskellDepends = [ base tasty tasty-golden ];
@@ -146679,19 +149685,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;
@@ -146706,8 +149712,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
@@ -146784,8 +149790,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
@@ -147128,8 +150134,8 @@ self: {
        pname = "kansas-comet";
        version = "0.4";
        sha256 = "1q9rffh6589a5am8mvfzxzwws34vg08rdjxggfabhmg9y9jla6hz";
-       revision = "19";
-       editedCabalFile = "0pnfhv3dlg9cs98nyz5kqdi5mq340909id8rb4lcdj9748w8gz4w";
+       revision = "21";
+       editedCabalFile = "1sgyn14j68n1gykgklnfvxqw9bw3k7p72bs22rl5fdbyhr5lf5lk";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base containers data-default-class scotty stm text time
@@ -147321,6 +150327,42 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "katip_0_8_5_0" = callPackage
+    ({ mkDerivation, aeson, async, auto-update, base, blaze-builder
+     , bytestring, containers, criterion, deepseq, directory, either
+     , filepath, hostname, microlens, microlens-th, monad-control, mtl
+     , old-locale, quickcheck-instances, regex-tdfa, resourcet
+     , safe-exceptions, scientific, semigroups, stm, string-conv, tasty
+     , tasty-golden, tasty-hunit, tasty-quickcheck, template-haskell
+     , text, time, time-locale-compat, transformers, transformers-base
+     , transformers-compat, unix, unliftio-core, unordered-containers
+     }:
+     mkDerivation {
+       pname = "katip";
+       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
+         safe-exceptions scientific semigroups stm string-conv
+         template-haskell text time transformers transformers-base
+         transformers-compat unix unliftio-core unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers directory microlens
+         quickcheck-instances regex-tdfa safe-exceptions stm tasty
+         tasty-golden tasty-hunit tasty-quickcheck template-haskell text
+         time time-locale-compat unordered-containers
+       ];
+       benchmarkHaskellDepends = [
+         aeson async base blaze-builder criterion deepseq directory filepath
+         safe-exceptions text time transformers unix
+       ];
+       description = "A structured logging framework";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "katip-datadog" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, base, binary, bytestring
      , conduit, conduit-extra, connection, containers, katip, network
@@ -147625,6 +150667,8 @@ self: {
        ];
        description = "Fast concurrent queues much inspired by unagi-chan";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "kbq-gu" = callPackage
@@ -147696,6 +150740,24 @@ self: {
        broken = true;
      }) {};
 
+  "kdesrc-build-profiles" = callPackage
+    ({ mkDerivation, ansi-terminal, base, bytestring, cmdargs
+     , directory, MissingH, parsec, process
+     }:
+     mkDerivation {
+       pname = "kdesrc-build-profiles";
+       version = "0.2.0";
+       sha256 = "0svv6dhbxk3wdjcvily6vzxvdjx4ky1bjbvc9xkrknsh58kibc7p";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         ansi-terminal base bytestring cmdargs directory MissingH parsec
+         process
+       ];
+       description = "Build profiles for kdesrc-build";
+       license = stdenv.lib.licenses.gpl3;
+     }) {};
+
   "kdt" = callPackage
     ({ mkDerivation, base, criterion, deepseq, deepseq-generics, heap
      , mersenne-random-pure64, MonadRandom, QuickCheck
@@ -147786,8 +150848,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-i18n";
-       version = "0.5.0";
-       sha256 = "1kjm9gf857f29a8zd18l4f1zvvdgz4k21rhlh7j14nwffx4i2wf7";
+       version = "0.7.0";
+       sha256 = "0k5cvnkc5r99r4361hn5jrmslvb21y3k2pj0dryiwbs21jwyv213";
        libraryHaskellDepends = [
          base directory filepath glib hgettext MissingK setlocale
          utf8-string
@@ -147802,8 +150864,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "keera-hails-mvc-controller";
-       version = "0.0.3.3";
-       sha256 = "00qr5czm0hq3jxwp42fc50v6r458rm9qq9fpri4rhnc41il79nzb";
+       version = "0.7.0";
+       sha256 = "1j7vhkghdh4hrap7g2xshpd2fw3acgwvi68f2c01mqmfi5dl4z2n";
        libraryHaskellDepends = [ base ];
        description = "Haskell on Gtk rails - Gtk-based controller for MVC applications";
        license = stdenv.lib.licenses.bsd3;
@@ -147815,8 +150877,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-mvc-environment-gtk";
-       version = "0.5.0";
-       sha256 = "0011q0pphzrsrp14nh6nw5szvmvm2gqq7m8vi9w0yi39s10azn97";
+       version = "0.7.0";
+       sha256 = "0px1f9jpdgkd253bhgalxk5rxx971s0s2a845h81x6hy9wi7n6mf";
        libraryHaskellDepends = [
          base keera-hails-mvc-model-protectedmodel keera-hails-mvc-view
          keera-hails-mvc-view-gtk
@@ -147833,8 +150895,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-mvc-model-lightmodel";
-       version = "0.0.3.4";
-       sha256 = "085qppi68qf8jbkp674ldikhr5z4nrffzqa9kgdm1dngrgsib190";
+       version = "0.7.0";
+       sha256 = "0nklcgsadm2h62jwp8i419dwrsfs885cmglr5n39b7r1zy7dsa0f";
        libraryHaskellDepends = [
          base containers keera-hails-reactivevalues MissingK stm
          template-haskell
@@ -147851,8 +150913,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-mvc-model-protectedmodel";
-       version = "0.5.0";
-       sha256 = "0snlswhdxgliaf8pn3h4x99b8zvbvwlrhd896f89cp0am7084ily";
+       version = "0.7.0";
+       sha256 = "0vz4bcnm2p03c3x6qspii9kylcv4d0qlmzawm6x1f148srrwidi7";
        libraryHaskellDepends = [
          base containers keera-hails-reactivevalues MissingK stm
          template-haskell
@@ -147921,6 +150983,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "keera-hails-reactive-cbmvar" = callPackage
+    ({ mkDerivation, base, directory, filepath, hlint, keera-callbacks
+     , keera-hails-reactivevalues, lens, process, regex-posix
+     }:
+     mkDerivation {
+       pname = "keera-hails-reactive-cbmvar";
+       version = "0.7.0";
+       sha256 = "085zli0s7p8f2ib2882q4qpqlh6czw62626fnrjiks4sff3f31c7";
+       libraryHaskellDepends = [
+         base keera-callbacks keera-hails-reactivevalues lens
+       ];
+       testHaskellDepends = [
+         base directory filepath hlint process regex-posix
+       ];
+       description = "Reactive Haskell on Rails - CBMVars as reactive values";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "keera-hails-reactive-fs" = callPackage
     ({ mkDerivation, base, directory, fsnotify
      , keera-hails-reactivevalues, system-filepath
@@ -147944,8 +151026,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-gtk";
-       version = "0.5";
-       sha256 = "014d9hr2321gs6ska8ykrgh59k92c6kxf0a3gqvrfj3rck28izb9";
+       version = "0.7.0";
+       sha256 = "1xn5ar20x8kpiv1z6i5gcvm09xjgrdppjyxd2si8nyv7gw173scr";
        libraryHaskellDepends = [
          base bytestring cairo glib gtk gtk-helpers
          keera-hails-reactivevalues mtl transformers
@@ -147956,14 +151038,33 @@ self: {
        broken = true;
      }) {};
 
+  "keera-hails-reactive-htmldom" = callPackage
+    ({ mkDerivation, base, ghcjs-dom, keera-callbacks
+     , keera-hails-reactive-cbmvar, keera-hails-reactivevalues, mtl
+     , transformers
+     }:
+     mkDerivation {
+       pname = "keera-hails-reactive-htmldom";
+       version = "0.7.0";
+       sha256 = "05lz38pffm6k3kbw3g6gkslixq4nc764n1i4dxz9p6zwj27f6svc";
+       libraryHaskellDepends = [
+         base ghcjs-dom keera-callbacks keera-hails-reactive-cbmvar
+         keera-hails-reactivevalues mtl transformers
+       ];
+       description = "Keera Hails Reactive bindings for HTML DOM via GHCJS";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "keera-hails-reactive-network" = callPackage
     ({ mkDerivation, base, bytestring, keera-hails-reactivevalues
      , network, network-bsd
      }:
      mkDerivation {
        pname = "keera-hails-reactive-network";
-       version = "0.5.0";
-       sha256 = "0s6zmqqidvd2ibs0hy6hrlflhsg7nlp8yjradpc7xzsr2g9gs8an";
+       version = "0.7.0";
+       sha256 = "0qn1vz55fpvrx4l3lak0lkx0ggli8smf3r4za3zypgfv3a1q3rxm";
        libraryHaskellDepends = [
          base bytestring keera-hails-reactivevalues network network-bsd
        ];
@@ -147993,8 +151094,8 @@ self: {
     ({ mkDerivation, base, keera-hails-reactivevalues, wx, wxcore }:
      mkDerivation {
        pname = "keera-hails-reactive-wx";
-       version = "0.5.0";
-       sha256 = "110363gzkawik4hhcbpd0ljqzzqvlzylp3n52j1sbnxj5p01ym7k";
+       version = "0.7.0";
+       sha256 = "1cpwyqqcdnxc30qmny0rq0ww51vv8g241jwjis1sbs47hvwgvi27";
        libraryHaskellDepends = [
          base keera-hails-reactivevalues wx wxcore
        ];
@@ -148010,8 +151111,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-yampa";
-       version = "0.0.3.3";
-       sha256 = "1n1xyr9pc1sw9gypwhh1rfdjshg7x1kvwr6v3hp0837zvdcz8gw1";
+       version = "0.7.0";
+       sha256 = "178r5igwnvkbpz1hypiy4l61s3amr4j8bk1yvqc7jvs40cldiw1x";
        libraryHaskellDepends = [
          base keera-callbacks keera-hails-reactivevalues time Yampa
        ];
@@ -148041,8 +151142,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactivevalues";
-       version = "0.5.0";
-       sha256 = "163jm6iz6j67qmz4r9rsb24xqb2s9b97assl3la3is3bkvj397z9";
+       version = "0.7.0";
+       sha256 = "1dmsjyvrzh8rdp9kcc8ysar0zw9gaxqh231xaqy17ndfhlmp2nzq";
        libraryHaskellDepends = [ base contravariant ];
        testHaskellDepends = [
          base directory filepath hlint HUnit mtl process QuickCheck
@@ -148546,23 +151647,11 @@ self: {
     ({ mkDerivation, base, kind-apply }:
      mkDerivation {
        pname = "kind-generics";
-       version = "0.4.0.0";
-       sha256 = "1w3rpvdvgfczsc86y00qbr9s9r8vmv442m4x975f3zcqs4algfhp";
-       libraryHaskellDepends = [ base kind-apply ];
-       description = "Generic programming in GHC style for arbitrary kinds and GADTs";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "kind-generics_0_4_1_0" = callPackage
-    ({ mkDerivation, base, kind-apply }:
-     mkDerivation {
-       pname = "kind-generics";
        version = "0.4.1.0";
        sha256 = "1ldfi5rvs3mxlbpy0nfyx8mq58xjkk76c13fmvmgqcpgb8gvmrnx";
        libraryHaskellDepends = [ base kind-apply ];
        description = "Generic programming in GHC style for arbitrary kinds and GADTs";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "kind-generics-th" = callPackage
@@ -148571,22 +151660,6 @@ self: {
      }:
      mkDerivation {
        pname = "kind-generics-th";
-       version = "0.2.1.0";
-       sha256 = "08mswzwm1byxx2hfc8h2b90pnn2p4y83kdrvl4mlcn6v488k2lkb";
-       libraryHaskellDepends = [
-         base ghc-prim kind-generics template-haskell th-abstraction
-       ];
-       testHaskellDepends = [ base kind-generics template-haskell ];
-       description = "Template Haskell support for generating `GenericK` instances";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "kind-generics-th_0_2_2_0" = callPackage
-    ({ mkDerivation, base, ghc-prim, kind-generics, template-haskell
-     , th-abstraction
-     }:
-     mkDerivation {
-       pname = "kind-generics-th";
        version = "0.2.2.0";
        sha256 = "1cllhh2lvz86nah2knsgcl0cqnvs1x6ggi8cq2jh1wqlarpy1sgk";
        libraryHaskellDepends = [
@@ -148595,7 +151668,6 @@ self: {
        testHaskellDepends = [ base kind-generics template-haskell ];
        description = "Template Haskell support for generating `GenericK` instances";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "kinds" = callPackage
@@ -148773,32 +151845,52 @@ self: {
        broken = true;
      }) {};
 
+  "knit" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, hashtables
+     , vector
+     }:
+     mkDerivation {
+       pname = "knit";
+       version = "0.2.0.0";
+       sha256 = "0a1swv5w9fxissxqr2x61qijqyhdxs71fv21fjz4r0kcqywnvy6x";
+       libraryHaskellDepends = [
+         base bytestring containers deepseq hashtables vector
+       ];
+       testHaskellDepends = [ base ];
+       doHaddock = false;
+       description = "Ties the knot on data structures that reference each other by unique keys";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "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;
@@ -148877,8 +151969,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
@@ -148985,8 +152077,8 @@ self: {
      }:
      mkDerivation {
        pname = "krank";
-       version = "0.2.1";
-       sha256 = "0lg7g5zzjpzjvdzd7ps3dygiqp33891dph35jrf704hkf3ksmqs2";
+       version = "0.2.2";
+       sha256 = "10w6vbpcn9n07s99w02izg7nfizpbq5m5mg6zv46f1llm35jpv6w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -149100,27 +152192,35 @@ self: {
      }) {egl = null; inherit (pkgs) glew;};
 
   "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;
@@ -149138,10 +152238,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
@@ -149165,8 +152263,8 @@ self: {
      }:
      mkDerivation {
        pname = "kubernetes-webhook-haskell";
-       version = "0.2.0.1";
-       sha256 = "10qf41gx4631793d19wibyhc2nm8wv3qjb53rhlgpxbjy547y2rr";
+       version = "0.2.0.3";
+       sha256 = "1xvc35jibs2nizzp6xgdzzyx6fhgzgqb55a48vl1djbi84s8b4q1";
        libraryHaskellDepends = [
          aeson base base64-bytestring binary bytestring text
          unordered-containers
@@ -149434,8 +152532,8 @@ self: {
     ({ mkDerivation, base, hspec, servant, servant-foreign, text }:
      mkDerivation {
        pname = "lackey";
-       version = "1.0.12";
-       sha256 = "0fc6g9bydh27yv4j45f7g49rq5gdxb1x175q5w9yni5xam5z7hl2";
+       version = "1.0.13";
+       sha256 = "1a3gpr0gf1dhvy6lcqbgkf0iznjg62yav2xfnzps48wba5585dj0";
        libraryHaskellDepends = [ base servant servant-foreign text ];
        testHaskellDepends = [ base hspec servant servant-foreign text ];
        description = "Generate Ruby clients from Servant APIs";
@@ -149728,8 +152826,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot";
-       version = "5.2";
-       sha256 = "1ay873mnp4jzjsawxm6k17h6ciyw022a3fviqm83d0l6d1yjnyzm";
+       version = "5.3.0.1";
+       sha256 = "0jkp4qr2d37pd0nr074fzrvjn95jg7x7zjwnddsqw5m4m2l1iqsr";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -149747,25 +152845,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.2";
-       sha256 = "1wh87wwb8hk3hn2lmdqi1hv77qbdmwqcwjslichygmvac8fjhjss";
-       revision = "3";
-       editedCabalFile = "182bhiwvbpadwwf3h9fpfsjwcsb0fkfzr57fvpl0k6w7msqn32rp";
+       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";
@@ -149784,8 +152880,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot-haskell-plugins";
-       version = "5.2";
-       sha256 = "0slq4bfkjpb13k9r9dzfhzsaz39f4ji81f8zfqs37b3r6vfvabbb";
+       version = "5.3";
+       sha256 = "1vlyjkz0dammzf5v8i9sfyswbnpfv0vpwpxybc1dhzm1qv04vbwh";
        libraryHaskellDepends = [
          array arrows base bytestring containers data-memocombinators
          directory filepath haskell-src-exts-simple hoogle HTTP IOSpec
@@ -149807,8 +152903,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot-irc-plugins";
-       version = "5.2";
-       sha256 = "0m0dmggmri8imzm15qf5xhzha5ww0qxzg9r3w826z57fwpsql5kh";
+       version = "5.3";
+       sha256 = "0dm5bsr8hly43hzfja8h6i3n3jai38ln9629p4dlsr8s1himcjbm";
        libraryHaskellDepends = [
          base bytestring containers directory filepath lambdabot-core
          lifted-base mtl network SafeSemaphore split time
@@ -149828,8 +152924,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot-misc-plugins";
-       version = "5.2";
-       sha256 = "1bl33np4ajiasafchqp2cf0jgb4r8s5phh2nifd82wqg4g4ajw6a";
+       version = "5.3";
+       sha256 = "03cj8bzmg7q6b66mblmxv39aw5jd586w1w90zyl632rff4j5f0bh";
        libraryHaskellDepends = [
          base bytestring containers filepath lambdabot-core lifted-base mtl
          network network-uri parsec process random random-fu random-source
@@ -149849,8 +152945,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot-novelty-plugins";
-       version = "5.2";
-       sha256 = "171zx2sicl2c5i0mq2aj82dy146i474l18958qw6nwnx9qxc023a";
+       version = "5.3";
+       sha256 = "0f7frjj41wpkhzvzi2xz7hsv8cr0fg653iqf8gqxlprk4k1sag5n";
        libraryHaskellDepends = [
          base binary brainfuck bytestring containers dice directory
          lambdabot-core misfortune process random-fu regex-tdfa unlambda
@@ -149868,8 +152964,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot-reference-plugins";
-       version = "5.2";
-       sha256 = "0z4hx2knj7y5cslrx3rbd2gzm1qyan4gi1v45c91nlg2g54z5cf3";
+       version = "5.3";
+       sha256 = "0xg8cpd25d01a35y2qmrhp402iphhdjb8sld5lnwc8rzyn6nd7gb";
        libraryHaskellDepends = [
          base bytestring containers HTTP lambdabot-core mtl network
          network-uri oeis process regex-tdfa split tagsoup utf8-string
@@ -149886,8 +152982,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot-social-plugins";
-       version = "5.2";
-       sha256 = "04gg7cnzahqfy69sp0wr0h1kgy6l0m0dkjbynrx2rmi5w6v4zgkl";
+       version = "5.3";
+       sha256 = "0gncll1z2x26v4g874vbwpg8yh9kang6wcvb4ywmfmlrs7kqw9fn";
        libraryHaskellDepends = [
          base binary bytestring containers lambdabot-core mtl split time
        ];
@@ -149901,8 +152997,8 @@ self: {
     ({ mkDerivation, base, oeis, QuickCheck, QuickCheck-safe }:
      mkDerivation {
        pname = "lambdabot-trusted";
-       version = "5.2";
-       sha256 = "0cc1x3yxmpnhgl47y8zvbhqiryp3db30b0i89h0zb112kf8mvw5k";
+       version = "5.3";
+       sha256 = "0847bxdnwh15szrhjb42y9nrb6qbaq6qyylwbmk1hkavp1baw77b";
        libraryHaskellDepends = [ base oeis QuickCheck QuickCheck-safe ];
        description = "Lambdabot trusted code";
        license = "GPL";
@@ -149942,8 +153038,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 = [
@@ -150387,14 +153483,20 @@ self: {
      }) {};
 
   "language-asn1" = callPackage
-    ({ mkDerivation, base, parsec, syb }:
+    ({ mkDerivation, base, HUnit, parsec, syb, test-framework
+     , test-framework-hunit
+     }:
      mkDerivation {
        pname = "language-asn1";
-       version = "0.5";
-       sha256 = "14aiqk1l1d3bh7dcml4a85xg81583h3r30h5splw0lvcxmbggzp3";
+       version = "0.6";
+       sha256 = "0crhyk69kp14w8917mnfsp8hiilsyw84xyz4ysdw70i78wvb530a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base parsec syb ];
+       executableHaskellDepends = [ base parsec syb ];
+       testHaskellDepends = [
+         base HUnit parsec syb test-framework test-framework-hunit
+       ];
        description = "Parsing of ASN1 definitions";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -150407,8 +153509,8 @@ self: {
      }:
      mkDerivation {
        pname = "language-ats";
-       version = "1.7.10.1";
-       sha256 = "19m9qalh9xiaw6n60zbhs8yqhd0acq08bkx42i44vfmm0917jys3";
+       version = "1.7.10.2";
+       sha256 = "10lanbzbaywyc3a8lq2ndgmpqq2kgpm4vkjxw7gl4irzjn3206yg";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          ansi-wl-pprint array base composition-prelude containers deepseq
@@ -150429,24 +153531,6 @@ self: {
      }:
      mkDerivation {
        pname = "language-avro";
-       version = "0.1.2.0";
-       sha256 = "0cpkkp4v5sqrf6khkhmdvklmhcjc4c4rcfprd5c854vf1zq06hhl";
-       libraryHaskellDepends = [
-         avro base containers directory filepath megaparsec text vector
-       ];
-       testHaskellDepends = [
-         avro base hspec hspec-megaparsec megaparsec text vector
-       ];
-       description = "Language definition and parser for AVRO files";
-       license = stdenv.lib.licenses.asl20;
-     }) {};
-
-  "language-avro_0_1_3_1" = callPackage
-    ({ mkDerivation, avro, base, containers, directory, filepath, hspec
-     , hspec-megaparsec, megaparsec, text, vector
-     }:
-     mkDerivation {
-       pname = "language-avro";
        version = "0.1.3.1";
        sha256 = "0b54041z1sfrd7fck975i8d69agxij6jml6mxlcr41y7ywvizq0l";
        libraryHaskellDepends = [
@@ -150457,7 +153541,6 @@ self: {
        ];
        description = "Language definition and parser for AVRO files";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "language-bash" = callPackage
@@ -150670,8 +153753,8 @@ self: {
     ({ mkDerivation, base, pretty }:
      mkDerivation {
        pname = "language-css";
-       version = "0.0.3";
-       sha256 = "1g0mh08rz44533473isrqbfn6hp12np9dxm85cn5xpx68jl9ni9g";
+       version = "0.0.3.1";
+       sha256 = "0gwsa9i9jxlnp60z3dh1rkk2zds74llxwjxzrsnhbmi71rmmiggx";
        libraryHaskellDepends = [ base pretty ];
        description = "CSS 2.1 syntax";
        license = stdenv.lib.licenses.bsd3;
@@ -150693,23 +153776,63 @@ 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.0";
+       sha256 = "0pi983l9s182c4xcqj7xq3idv8wnshx7zva5a5wfhws403y5yy7v";
+       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, directory, filepath
-     , free, Glob, hspec, HUnit, megaparsec, mtl, prettyprinter, process
-     , QuickCheck, split, template-haskell, text, th-lift, time
+    ({ mkDerivation, base, bytestring, containers, data-default-class
+     , hspec, HUnit, megaparsec, prettyprinter, QuickCheck, split, text
+     , time
      }:
      mkDerivation {
        pname = "language-docker";
-       version = "8.1.0";
-       sha256 = "0ifvn8xz8qbwy13kmmadi5xdzvxxbq8nmilrnlls8plb8cwsd5ff";
+       version = "9.1.1";
+       sha256 = "1smrayjp8d8vqvn7lg2mg3lzsqqslysj6syh1ckbn1a5fmjpzfv2";
        libraryHaskellDepends = [
-         base bytestring containers free megaparsec mtl prettyprinter split
-         template-haskell text th-lift time
+         base bytestring containers data-default-class megaparsec
+         prettyprinter split text time
        ];
        testHaskellDepends = [
-         base bytestring containers directory filepath free Glob hspec HUnit
-         megaparsec mtl prettyprinter process QuickCheck split
-         template-haskell text th-lift time
+         base bytestring containers data-default-class hspec HUnit
+         megaparsec prettyprinter QuickCheck split text time
        ];
        description = "Dockerfile parser, pretty-printer and embedded DSL";
        license = stdenv.lib.licenses.gpl3;
@@ -150796,7 +153919,7 @@ self: {
        libraryHaskellDepends = [
          base containers language-ecmascript parsec uniplate
        ];
-       description = "JavaScript static analysis library.";
+       description = "JavaScript static analysis library";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -150816,7 +153939,7 @@ self: {
          hashable lens mtl parsec pretty text unordered-containers
        ];
        libraryToolDepends = [ alex ];
-       description = "Parser and pretty printer for the Eiffel language.";
+       description = "Parser and pretty printer for the Eiffel language";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -150850,7 +153973,7 @@ self: {
        sha256 = "16kzdvhxpmfiia68c4y36fv1sjymy7sblba4iz77qqnwfqz3zka4";
        libraryHaskellDepends = [ array base haskell-src parsec syb ];
        libraryToolDepends = [ alex happy ];
-       description = "Fortran lexer and parser, language support, and extensions.";
+       description = "Fortran lexer and parser, language support, and extensions";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -150867,6 +153990,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
@@ -151326,17 +154462,16 @@ self: {
      , base16-bytestring, bytestring, case-insensitive, containers
      , cryptonite, directory, filecache, filepath, formatting, Glob
      , hashable, hruby, hslogger, hspec, hspec-megaparsec, http-api-data
-     , http-client, lens, lens-aeson, megaparsec, memory, mtl
-     , operational, optparse-applicative, parsec, parser-combinators
-     , pcre-utils, protolude, random, regex-pcre-builtin, scientific
-     , servant, servant-client, split, stm, strict-base-types, temporary
-     , text, time, transformers, unix, unordered-containers, vector
-     , yaml
+     , http-client, lens, megaparsec, memory, mtl, operational
+     , optparse-applicative, parsec, parser-combinators, pcre-utils
+     , protolude, random, regex-pcre-builtin, scientific, servant
+     , servant-client, split, stm, strict-base-types, temporary, text
+     , time, transformers, unix, unordered-containers, vector, yaml
      }:
      mkDerivation {
        pname = "language-puppet";
-       version = "1.4.6.3";
-       sha256 = "0g84x311hivlchz23kw0lwqcml3r0wkwh24bqvpgkb2m7rmi8mwx";
+       version = "1.4.6.5";
+       sha256 = "0j32504iwla8h33h4nycx6gwp46kvlqp1d6c9wirygm8ng3vpz6r";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -151344,10 +154479,10 @@ self: {
          aeson ansi-wl-pprint attoparsec base base16-bytestring bytestring
          case-insensitive containers cryptonite directory filecache filepath
          formatting hashable hruby hslogger http-api-data http-client lens
-         lens-aeson megaparsec memory mtl operational parsec
-         parser-combinators pcre-utils protolude random regex-pcre-builtin
-         scientific servant servant-client split stm strict-base-types text
-         time transformers unix unordered-containers vector yaml
+         megaparsec memory mtl operational parsec parser-combinators
+         pcre-utils protolude random regex-pcre-builtin scientific servant
+         servant-client split stm strict-base-types text time transformers
+         unix unordered-containers vector yaml
        ];
        executableHaskellDepends = [
          aeson ansi-wl-pprint async base bytestring containers Glob hslogger
@@ -151356,9 +154491,9 @@ self: {
          yaml
        ];
        testHaskellDepends = [
-         base Glob hslogger hspec hspec-megaparsec lens megaparsec mtl
-         pcre-utils scientific strict-base-types temporary text transformers
-         unordered-containers vector
+         base directory Glob hslogger hspec hspec-megaparsec lens megaparsec
+         mtl pcre-utils scientific strict-base-types temporary text
+         transformers unordered-containers vector
        ];
        description = "Tools to parse and evaluate the Puppet DSL";
        license = stdenv.lib.licenses.bsd3;
@@ -151370,15 +154505,13 @@ 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
        ];
        libraryToolDepends = [ alex happy ];
-       description = "Parsing and pretty printing of Python code.";
+       description = "Parsing and pretty printing of Python code";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -151395,7 +154528,7 @@ self: {
        executableHaskellDepends = [
          base haskell98 language-python xhtml
        ];
-       description = "Generate coloured XHTML for Python code.";
+       description = "Generate coloured XHTML for Python code";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -151405,8 +154538,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 ];
@@ -151592,6 +154725,28 @@ self: {
        broken = true;
      }) {};
 
+  "language-tl" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, deepseq, lens
+     , megaparsec, QuickCheck, text
+     }:
+     mkDerivation {
+       pname = "language-tl";
+       version = "0.1.1";
+       sha256 = "0gi57142ig8kir4qqab0nim59mnil5jsizbs893j9l3c2jn7wkdf";
+       revision = "1";
+       editedCabalFile = "1n1fzfz84j9qq2mcgk03xcc0cvrd5nkp9spg2ljsq40292y37jgj";
+       libraryHaskellDepends = [
+         aeson base bytestring containers deepseq lens megaparsec QuickCheck
+         text
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers deepseq lens megaparsec QuickCheck
+         text
+       ];
+       description = "A Parser for the Type Language";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "language-typescript" = callPackage
     ({ mkDerivation, base, containers, parsec, pretty }:
      mkDerivation {
@@ -151633,14 +154788,16 @@ self: {
      }) {};
 
   "laop" = callPackage
-    ({ mkDerivation, base, deepseq }:
+    ({ mkDerivation, base, criterion, deepseq, QuickCheck }:
      mkDerivation {
        pname = "laop";
-       version = "0.1.0.7";
-       sha256 = "0czxisy1vc4xinci5qhlw8mj1akydy3d5bfg45rd45dk699chxw4";
+       version = "0.1.1.1";
+       sha256 = "1f1dgj8dkyi2aymicc47s5n3rhy3cl02j2fphhg9iibqinfi4jz9";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [ base deepseq ];
-       license = stdenv.lib.licenses.bsd3;
+       benchmarkHaskellDepends = [ base criterion deepseq QuickCheck ];
+       description = "Matrix programming library";
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "lapack" = callPackage
@@ -151730,6 +154887,8 @@ self: {
        pname = "lapack-ffi-tools";
        version = "0.1.2.1";
        sha256 = "0hk54psm066acgn24mw5dbbhz4a0nqvyks75302cabijbp524gdh";
+       revision = "1";
+       editedCabalFile = "1h5chlb66ycg96ab56hwqr4qk82l19gq1pg1zfzhfdl5byg24fln";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -151989,8 +155148,8 @@ self: {
      }:
      mkDerivation {
        pname = "latex-svg-pandoc";
-       version = "0.2";
-       sha256 = "1qzp5y7slklq8p1m6bspzyx7iypd5mq3q0hmxdysivisw776f0aq";
+       version = "0.2.1";
+       sha256 = "12rwapjx4whsw4id4rijwcqksfblp0mnvf0xrvj6pf17pgg4qh52";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -152180,8 +155339,8 @@ self: {
      }:
      mkDerivation {
        pname = "layers-game";
-       version = "0.6.0";
-       sha256 = "03a8l2hmirhfnl7s07yq06szmwcr5lz2lapbpp22ryqjr3zpvwf6";
+       version = "0.7.0";
+       sha256 = "1v55940lpp9p67nnnqslzz175cbzs7sfdyinxws9dhwmjvpm4ix8";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -152533,8 +155692,8 @@ self: {
      }:
      mkDerivation {
        pname = "ldap-client";
-       version = "0.4.0";
-       sha256 = "1n15yab8mg12f80rq47ansdxmxj4n6symx11ihy2m4bjn7yq31mk";
+       version = "0.4.1";
+       sha256 = "0m253jicjn8rqdrkcqd75bcrdg7bdq313crx2b54yv5s3mz6cxi2";
        libraryHaskellDepends = [
          asn1-encoding asn1-types async base bytestring connection
          containers fail network semigroups stm text
@@ -152841,6 +156000,8 @@ self: {
        ];
        description = "Yet another library for hidden Markov models";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "leb128" = callPackage
@@ -152868,8 +156029,8 @@ self: {
      }:
      mkDerivation {
        pname = "leb128-cereal";
-       version = "1.0";
-       sha256 = "1qjxcvcgdf4l1wzps7410yv3i5mi3ax17mq2f9wgbfbnm33329i7";
+       version = "1.1";
+       sha256 = "08jmd5v36p2vwlx3rw22h762jp7arq06fsmdipff72bvs2cn0fld";
        libraryHaskellDepends = [ base bytestring cereal ];
        testHaskellDepends = [
          base bytestring tasty tasty-hunit tasty-quickcheck
@@ -153112,6 +156273,8 @@ self: {
        pname = "lens";
        version = "4.18.1";
        sha256 = "1lmxjaj32v06l12gy00rpjp2lk1cblh3k7kwklk655ss2vas61ri";
+       revision = "1";
+       editedCabalFile = "1ajb19bhxyg9i11pj6b9p43y0c0wjg6ap4vk6jl0a67gdxyjkki1";
        setupHaskellDepends = [ base Cabal cabal-doctest filepath ];
        libraryHaskellDepends = [
          array base base-orphans bifunctors bytestring call-stack comonad
@@ -153151,6 +156314,8 @@ self: {
        pname = "lens";
        version = "4.19.2";
        sha256 = "0fy2vr5r11cc6ana8m2swqgs3zals4kims55vd6119bi76p5iy2j";
+       revision = "1";
+       editedCabalFile = "19v3dhvlgfpsclbgm0qm81ay2yz82ksh0vr5aym9skb2wjh0qmzh";
        setupHaskellDepends = [ base Cabal cabal-doctest filepath ];
        libraryHaskellDepends = [
          array base base-orphans bifunctors bytestring call-stack comonad
@@ -153219,6 +156384,8 @@ self: {
        pname = "lens-aeson";
        version = "1.1";
        sha256 = "03n9dkdyqkkf15h8k4c4bjwgjcbbs2an2cf6z8x54nvkjmprrg7p";
+       revision = "2";
+       editedCabalFile = "1ivxsj7igrrrzkwhw7ipcxnnr721797is6yfsrh3mha9dl8985sf";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson attoparsec base bytestring lens scientific text
@@ -153303,22 +156470,6 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "lens-family_1_2_3" = callPackage
-    ({ mkDerivation, base, containers, lens-family-core, mtl
-     , transformers
-     }:
-     mkDerivation {
-       pname = "lens-family";
-       version = "1.2.3";
-       sha256 = "0a8fvvc3fsi5fzk5bnqvbgdz22xvvw55nyfac6411q0pm6vy4nc0";
-       libraryHaskellDepends = [
-         base containers lens-family-core mtl transformers
-       ];
-       description = "Lens Families";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
   "lens-family" = callPackage
     ({ mkDerivation, base, containers, lens-family-core, mtl
      , transformers
@@ -153350,18 +156501,6 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "lens-family-core_1_2_3" = callPackage
-    ({ mkDerivation, base, containers, transformers }:
-     mkDerivation {
-       pname = "lens-family-core";
-       version = "1.2.3";
-       sha256 = "009rf10pj1cb50v44cc1pq7qvfrmkkk9dikahs9qmvbvgl3mykwi";
-       libraryHaskellDepends = [ base containers transformers ];
-       description = "Haskell 98 Lens Families";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
   "lens-family-core" = callPackage
     ({ mkDerivation, base, containers, transformers }:
      mkDerivation {
@@ -153389,10 +156528,8 @@ self: {
     ({ mkDerivation, base, hspec, template-haskell, transformers }:
      mkDerivation {
        pname = "lens-family-th";
-       version = "0.5.0.2";
-       sha256 = "1rmhcnnlnll4mq7pqld5qg6crxh74gp0fqiwl6wn8l3ssgx5l9ww";
-       revision = "1";
-       editedCabalFile = "06sbynlrbqb51rn392w1q82qww1f6k8mmw1npgla2wc6s39k4977";
+       version = "0.5.1.0";
+       sha256 = "1gpjfig8a2dh4v4660rg659hpvrf2vv85v7cwn64xg3043i954qi";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base hspec template-haskell transformers ];
        description = "Generate lens-family style lenses";
@@ -153491,10 +156628,10 @@ self: {
      }:
      mkDerivation {
        pname = "lens-process";
-       version = "0.3.0.1";
-       sha256 = "05vznfn28a35k3qyjx28jva9d5acgzcdzn8s24mkb8mz1l8722d6";
-       revision = "1";
-       editedCabalFile = "1znsf836c0jar22ll6s01q8nb2zq8vgrz2nni0mkagx02fknshai";
+       version = "0.3.0.2";
+       sha256 = "1bv6z7309bq9jv2lzr79bcbwg1pkhy728pnrjnl3c3nv807a3igk";
+       revision = "2";
+       editedCabalFile = "1l71hi0a5yn5x9w4br5bzypa25zdlqw6jcb69z3bhb6dx53197ma";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base filepath lens process ];
        testHaskellDepends = [
@@ -153741,8 +156878,10 @@ self: {
      }:
      mkDerivation {
        pname = "lentil";
-       version = "1.3.1.0";
-       sha256 = "0jvabc8p69wgf20q3mq0nn9kg6x20gym3xl251vnbyl7chkg9can";
+       version = "1.3.2.0";
+       sha256 = "134f9ijnd1dw2l9k5m1ay643pc4jqmq5kx17cnijb7ff93442s0n";
+       revision = "2";
+       editedCabalFile = "0xijjp1ysybbd9n3f5vcaph1qdad5v9ynp0jia5aaizr34lwx94z";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -154115,6 +157254,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
@@ -154142,8 +157296,8 @@ self: {
      }:
      mkDerivation {
        pname = "libarchive";
-       version = "2.2.5.0";
-       sha256 = "0vsrjkg4ijk63rgsl7cqdi1inpnv7ballrg5c5pgrrapwxfb5v4x";
+       version = "2.2.5.2";
+       sha256 = "1qydgw1c74c0xp2d5d85qbyyng9rgqgxgvj6fhh94wzgkxj99al6";
        setupHaskellDepends = [ base Cabal chs-cabal ];
        libraryHaskellDepends = [
          base bytestring composition-prelude deepseq dlist filepath mtl
@@ -154161,6 +157315,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
@@ -154796,6 +157952,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "libsodium" = callPackage
+    ({ mkDerivation, base, hedgehog, libsodium, tasty, tasty-hedgehog
+     , tasty-hunit
+     }:
+     mkDerivation {
+       pname = "libsodium";
+       version = "1.0.18.1";
+       sha256 = "0injknfijncmfq10szdl1ay75wwpi8rgm3qfdl654aprd95kvpf1";
+       libraryHaskellDepends = [ base ];
+       libraryPkgconfigDepends = [ libsodium ];
+       testHaskellDepends = [
+         base hedgehog tasty tasty-hedgehog tasty-hunit
+       ];
+       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
     ({ mkDerivation, base, bytestring, c2hs, libssh2, network, syb
      , time, unix
@@ -155105,24 +158281,24 @@ self: {
   "life-sync" = callPackage
     ({ mkDerivation, base, bytestring, colourista, containers
      , exceptions, filepath, hedgehog, hspec, hspec-hedgehog
-     , optparse-applicative, path, path-io, process, relude, shellmet
-     , text, tomland, validation-selective
+     , optparse-applicative, path, path-io, relude, shellmet, text
+     , tomland, validation-selective
      }:
      mkDerivation {
        pname = "life-sync";
-       version = "1.1.0.0";
-       sha256 = "0l56n4dhg6p4lw7i7jjq747qv7r6fr0k2gdabwkbbb2qhsviw162";
+       version = "1.1.1.0";
+       sha256 = "051r1m2rrhgg4r34z9n5picnr5k9bdk08chibazndzhmqcxkh8fq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring colourista containers exceptions
-         optparse-applicative path path-io process relude shellmet text
-         tomland validation-selective
+         optparse-applicative path path-io relude shellmet text tomland
+         validation-selective
        ];
        executableHaskellDepends = [ base relude ];
        testHaskellDepends = [
          base containers filepath hedgehog hspec hspec-hedgehog path relude
-         text
+         text tomland
        ];
        description = "Synchronize personal configs across multiple machines";
        license = stdenv.lib.licenses.mpl20;
@@ -155167,8 +158343,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
        ];
@@ -155362,23 +158538,23 @@ self: {
 
   "lightstep-haskell" = callPackage
     ({ mkDerivation, async, base, bytestring, chronos, containers
-     , deepseq, hashable, http-types, http2-client, http2-client-grpc
-     , http2-grpc-proto-lens, lens, mtl, proto-lens
-     , proto-lens-protobuf-types, proto-lens-runtime, random
-     , safe-exceptions, stm, tasty, tasty-discover, tasty-hunit
-     , tasty-quickcheck, text, transformers, unordered-containers, wai
+     , deepseq, exceptions, hashable, http-types, http2-client
+     , http2-client-grpc, http2-grpc-proto-lens, lens, mtl, proto-lens
+     , proto-lens-protobuf-types, proto-lens-runtime, random, stm, tasty
+     , tasty-discover, tasty-hunit, tasty-quickcheck, text, text-show
+     , transformers, unordered-containers, wai
      }:
      mkDerivation {
        pname = "lightstep-haskell";
-       version = "0.6.1";
-       sha256 = "0c3z44wnx67k7n7gw8zs35g79al76fbjk6z20fpvjhmk49gsaspk";
+       version = "0.10.3";
+       sha256 = "0jzhqbm74hzk18pf3n9zswcvxi8wmn06zvvssaxzi9lwm2lk7xrr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async base bytestring chronos containers hashable http-types
-         http2-client http2-client-grpc http2-grpc-proto-lens lens mtl
-         proto-lens proto-lens-protobuf-types proto-lens-runtime random
-         safe-exceptions stm text transformers unordered-containers wai
+         async base bytestring chronos containers exceptions hashable
+         http-types http2-client http2-client-grpc http2-grpc-proto-lens
+         lens mtl proto-lens proto-lens-protobuf-types proto-lens-runtime
+         random stm text text-show transformers unordered-containers wai
        ];
        executableHaskellDepends = [ async base text ];
        testHaskellDepends = [
@@ -155662,36 +158838,6 @@ self: {
   "linear" = callPackage
     ({ mkDerivation, adjunctions, base, base-orphans, binary, bytes
      , bytestring, Cabal, cabal-doctest, cereal, containers, deepseq
-     , distributive, doctest, ghc-prim, hashable, HUnit, lens
-     , 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.20.9";
-       sha256 = "0h7yqigq593n7wsl7nz6a5f137wznm7y679wsii0ph0zsc4v5af5";
-       revision = "1";
-       editedCabalFile = "13ff7xvw25fpsikcvf0nly2ca614wzv10qyg4sh378p5r8rvfgka";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [
-         adjunctions base base-orphans binary bytes cereal containers
-         deepseq distributive ghc-prim hashable lens 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" = 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
@@ -155700,8 +158846,8 @@ self: {
      }:
      mkDerivation {
        pname = "linear";
-       version = "1.21";
-       sha256 = "1i00j740fpxrbdy1kjzwjxqixk975rd0dh6jxk0da622spabym5a";
+       version = "1.21.1";
+       sha256 = "0rwr8h9ddzbxrfxzdqsy841rj27xbvy73v20r2aml7jqzy0s3gqc";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          adjunctions base base-orphans binary bytes cereal containers
@@ -155715,7 +158861,6 @@ self: {
        ];
        description = "Linear Algebra";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "linear-accelerate" = callPackage
@@ -155900,8 +159045,8 @@ self: {
     ({ mkDerivation, base, sbv }:
      mkDerivation {
        pname = "linearEqSolver";
-       version = "2.0";
-       sha256 = "0dianwg8r4b6x6z17d994kmhjmqwdx083vlm9rzakfkn7p773l8w";
+       version = "2.3";
+       sha256 = "0lrrgix4m2sbfw9ydcqnx45lka0grl8ndiiy3cs1xg4xpcy2fkjw";
        libraryHaskellDepends = [ base sbv ];
        description = "Use SMT solvers to solve linear systems over integers and rationals";
        license = stdenv.lib.licenses.bsd3;
@@ -155984,8 +159129,8 @@ self: {
      }:
      mkDerivation {
        pname = "linenoise";
-       version = "0.3.1";
-       sha256 = "1ywz7msb292wzyppb3icy0l144z5mlk0yp8m2yq85ib6w2vzkqv0";
+       version = "0.3.2";
+       sha256 = "0hs910k358mfx1s1cmrc76f8ra3r34748h22m68a64mspibd2frx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -156314,12 +159459,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "linux-framebuffer" = callPackage
+    ({ mkDerivation, base, bindings-DSL, unix }:
+     mkDerivation {
+       pname = "linux-framebuffer";
+       version = "0";
+       sha256 = "0p469lmb6z9l2km607va95hqlhq48kx4p6q2dwgx16pw8w9rhmfg";
+       libraryHaskellDepends = [ base bindings-DSL unix ];
+       description = "Linux fbdev (framebuffer device, /dev/fbX) utility functions";
+       license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "linux-inotify" = callPackage
     ({ 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;
@@ -156553,28 +159710,75 @@ self: {
        broken = true;
      }) {};
 
+  "liquid-base" = callPackage
+    ({ mkDerivation, base, Cabal, liquid-ghc-prim, liquidhaskell }:
+     mkDerivation {
+       pname = "liquid-base";
+       version = "4.14.0.0";
+       sha256 = "07qy1xc04wbd46cd0zgw3znczang1h1sgllxswjjimaw1wp49xh3";
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal liquidhaskell ];
+       libraryHaskellDepends = [ base liquid-ghc-prim liquidhaskell ];
+       description = "Drop-in base replacement for LiquidHaskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "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;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "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;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "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.1";
+       sha256 = "0mavpfwsm3a6cnw2p75hvjch1j0nb8qm1rflq304iz6msg9zbhsv";
        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 ];
@@ -156591,37 +159795,118 @@ self: {
      }) {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;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "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;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "liquid-platform" = callPackage
+    ({ mkDerivation }:
+     mkDerivation {
+       pname = "liquid-platform";
+       version = "0.8.10.1";
+       sha256 = "1l1qpg08fhf2xbj7i3hy36idm2z4yggg7mlzyncjkjlqxdnmm44k";
+       isLibrary = false;
+       isExecutable = true;
+       description = "A battery-included platform for LiquidHaskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "liquid-prelude" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, liquid-base
+     , liquidhaskell
+     }:
+     mkDerivation {
+       pname = "liquid-prelude";
+       version = "0.8.10.1";
+       sha256 = "0pcz59spsg3x4c5553yksfqgdjlh2c33id10b6p8hnm6hyqcbjvn";
+       setupHaskellDepends = [ base Cabal liquidhaskell ];
+       libraryHaskellDepends = [
+         bytestring containers liquid-base liquidhaskell
+       ];
+       description = "General utility modules for LiquidHaskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "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;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "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";
+       version = "0.8.10.1";
+       sha256 = "0xyxb0sifqgp1hl6lcydf7svw6w968hd3dgmnlly8ddpdmhsw9jm";
        revision = "1";
-       editedCabalFile = "14mvnjgd65n6j2zlzw0c679zvlik02cn6x8rhxm3rb1155zybjil";
+       editedCabalFile = "0bg9660c5454jiimgwciimd114r81gfjdad6nzbgyhkvilfd0wad";
        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-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";
@@ -156811,8 +160096,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "list-singleton";
-       version = "1.0.0.3";
-       sha256 = "1k6kygngf88a8cxy9fvh0snhg4bhd3z7x6l1zsis4wjn0fpfzvrc";
+       version = "1.0.0.4";
+       sha256 = "0mb2kwj3gvykwh0iywwzqdnma27nxs1hl1rvnp3qxi893p4ikyiw";
        libraryHaskellDepends = [ base ];
        description = "Easily and clearly create lists with only one element in them";
        license = stdenv.lib.licenses.isc;
@@ -156956,8 +160241,8 @@ self: {
      }:
      mkDerivation {
        pname = "list-tries";
-       version = "0.6.6";
-       sha256 = "0n837h2ffgqgram5kvnshlqk5jc87bw49z4pxa94qdmc323z51ak";
+       version = "0.6.7";
+       sha256 = "110y66kkbi6m55b3ba7p1r25xnf6n59yz2kdp4qf6s8c7a5i0wzh";
        libraryHaskellDepends = [ base binary containers dlist ];
        testHaskellDepends = [
          base binary ChasingBottoms HUnit QuickCheck template-haskell
@@ -156970,20 +160255,20 @@ self: {
      }) {};
 
   "list-tuple" = callPackage
-    ({ mkDerivation, base, Cabal, deepseq, directory, hspec, OneTuple
-     , Only, should-not-typecheck, single-tuple, text
+    ({ mkDerivation, base, Cabal, deepseq, directory, hspec
+     , hspec-discover, OneTuple, Only, should-not-typecheck
+     , single-tuple, text
      }:
      mkDerivation {
        pname = "list-tuple";
-       version = "0.1.1.0";
-       sha256 = "11mmadb62rarsywn8nd642pxx91yavj7mv739wdwvr723p57i6i3";
-       revision = "1";
-       editedCabalFile = "1909sk4mzlagskjvccj8rlw5vnxrxcx211406bngyp9lmpnmhdyy";
+       version = "0.1.3.0";
+       sha256 = "1qd5pr7i9xsym09ly6am3a0id3cwbb8w4xphbsjkv3wrlfv9z9v0";
        setupHaskellDepends = [ base Cabal directory ];
        libraryHaskellDepends = [ base OneTuple Only single-tuple ];
        testHaskellDepends = [
          base deepseq hspec Only should-not-typecheck single-tuple text
        ];
+       testToolDepends = [ hspec-discover ];
        description = "List-like operations for tuples";
        license = stdenv.lib.licenses.asl20;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -157027,8 +160312,8 @@ self: {
      }:
      mkDerivation {
        pname = "list-zipper";
-       version = "0.0.9";
-       sha256 = "1926a02k9z97arbr622w1j13h8kik6ba148glpnmnm5kyr8d5xk4";
+       version = "0.0.10";
+       sha256 = "0vnylv1w7lkvlh7kmaz06gbq7fiz6dm44rl2s9r2nrnfslm4bjr3";
        libraryHaskellDepends = [
          base comonad deriving-compat lens mtl semigroupoids semigroups
          transformers
@@ -157189,8 +160474,8 @@ self: {
      }:
      mkDerivation {
        pname = "little-rio";
-       version = "0.1.0";
-       sha256 = "0i0z0rc1wc46rsfn1i11xp5r2sxd5i11vcjzdmbkqadp6ms8ahv0";
+       version = "0.1.1";
+       sha256 = "0yxxmad9709h1gpxzjhvqmjhn3m8dcishd9gs6bakc2hrapw2ss2";
        libraryHaskellDepends = [
          base exceptions microlens microlens-mtl mtl unliftio-core
        ];
@@ -157634,7 +160919,7 @@ self: {
          base directory filepath llvm-hs llvm-hs-pure mtl tasty tasty-golden
          tasty-hspec tasty-hunit text transformers
        ];
-       description = "A pretty printer for LLVM IR.";
+       description = "A pretty printer for LLVM IR";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -157945,8 +161230,8 @@ self: {
     ({ mkDerivation, base, containers, doctest, hedgehog }:
      mkDerivation {
        pname = "loc";
-       version = "0.1.3.6";
-       sha256 = "0bspclskqk0kzvic8y4bxagjrfzxpq53xgr0jfp6rcqacql6qvdr";
+       version = "0.1.3.8";
+       sha256 = "11xlpi1g4m0wcjahf1brs77g52pn45g7rglkqz8c6y81y8vllppd";
        libraryHaskellDepends = [ base containers ];
        testHaskellDepends = [ base containers doctest hedgehog ];
        description = "Types representing line and column positions and ranges in text files";
@@ -157957,8 +161242,8 @@ self: {
     ({ mkDerivation, base, containers, hedgehog, loc }:
      mkDerivation {
        pname = "loc-test";
-       version = "0.1.3.6";
-       sha256 = "0kzr7adk85y9fcibi8rw7ix3vp2z17ig211lw820nirhwb8xj697";
+       version = "0.1.3.8";
+       sha256 = "0jg6p0lfd5xgrwbmlskj5f1x8l5b0b3dqh460ds2nii8isccgvcq";
        libraryHaskellDepends = [ base containers hedgehog loc ];
        description = "Test-related utilities related to the /loc/ package";
        license = stdenv.lib.licenses.asl20;
@@ -157989,7 +161274,7 @@ self: {
        libraryHaskellDepends = [
          base combinatorial-problems containers erf random
        ];
-       description = "Generalised local search within Haskell, for applications in combinatorial optimisation.";
+       description = "Generalised local search within Haskell, for applications in combinatorial optimisation";
        license = "GPL";
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -158066,19 +161351,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
@@ -158218,10 +161505,8 @@ self: {
      }:
      mkDerivation {
        pname = "log-base";
-       version = "0.8.0.0";
-       sha256 = "15539v6y6s46kgb86ns13rh17c1qnidwdajk26yaxyqky58yx2m6";
-       revision = "1";
-       editedCabalFile = "0kdkvyw39ywly1qv1l0sq5qzr1akigl8410vr647hy2cn46anva0";
+       version = "0.8.0.1";
+       sha256 = "0s8w464yalbcgq3vq819mw9fsgj6a9rfbf00843311kqryml2a49";
        libraryHaskellDepends = [
          aeson aeson-pretty base bytestring deepseq exceptions mmorph
          monad-control monad-time mtl semigroups stm text time
@@ -158240,8 +161525,8 @@ self: {
        pname = "log-domain";
        version = "0.13";
        sha256 = "0isl8rs0k5088sxapfh351sff3lh7r1qkgwz8lmai3gvqasb3avv";
-       revision = "1";
-       editedCabalFile = "0wcy54axpnym55f1skagnbmdpw6y2ys6zvn99x8i6qcfzw00i6l9";
+       revision = "2";
+       editedCabalFile = "1dylv7gijrm3jn9d1gab9xfqk7xpfb9qrlkaaqpf7b3q8qdswqzs";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base binary bytes cereal comonad deepseq distributive hashable
@@ -158321,10 +161606,8 @@ self: {
      }:
      mkDerivation {
        pname = "log-postgres";
-       version = "0.7.1.1";
-       sha256 = "1mx43qbv9rbzzkxz7qgwgp26aq00a97rwka7a823l5hm5hamx74k";
-       revision = "1";
-       editedCabalFile = "012vyqrw0ncwxdrlbcb97x9lcmaizxspfc9dd5jxq8dfmqw5xgq7";
+       version = "0.7.1.3";
+       sha256 = "132q4cx0a2malzncm7bscjikpqaaz6fwzz6n8mhqianbpq02s0v1";
        libraryHaskellDepends = [
          aeson aeson-pretty base base64-bytestring bytestring deepseq
          hpqtypes http-client lifted-base log-base mtl semigroups split text
@@ -158438,6 +161721,8 @@ self: {
        ];
        description = "A python logging style log library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "logentries" = callPackage
@@ -158535,8 +161820,8 @@ self: {
      }:
      mkDerivation {
        pname = "logging-effect";
-       version = "1.3.9";
-       sha256 = "18g0yw5k0xcpiz3chag61smjc9fi4iy99sv9sqhq8f2v61p355dr";
+       version = "1.3.11";
+       sha256 = "1r5qfip5xl22hq2v27b1lkcknixmc40wm7iya7vs3mrnwyavpmdb";
        libraryHaskellDepends = [
          async base exceptions free monad-control mtl prettyprinter
          semigroups stm stm-delay text time transformers transformers-base
@@ -159055,10 +162340,8 @@ self: {
     ({ mkDerivation, base, integer-gmp }:
      mkDerivation {
        pname = "long-double";
-       version = "0.1";
-       sha256 = "072yfv1kv83k8qc9apks2czr9p6znk46bbbjmsdbcpzyb8byh64j";
-       revision = "2";
-       editedCabalFile = "03x83ycib19k2lmd3spwq2zmylfl5ihammb406fxxqqbyv4jw1mg";
+       version = "0.1.1";
+       sha256 = "0byrpngsh1a8w9n5nbw9lfmj4nmh33avzfh883zw9ya10pfa7x3g";
        libraryHaskellDepends = [ base integer-gmp ];
        description = "FFI bindings for C long double";
        license = stdenv.lib.licenses.bsd3;
@@ -159269,39 +162552,27 @@ self: {
      }) {};
 
   "lorentz" = callPackage
-    ({ mkDerivation, aeson-pretty, base-noprelude, bimap, bytestring
-     , constraints, containers, data-default, filepath
-     , first-class-families, fmt, formatting, ghc-prim, HUnit
-     , interpolate, lens, morley, morley-prelude, mtl, named
-     , optparse-applicative, pretty-terminal, QuickCheck, singletons
-     , spoon, tasty, tasty-discover, tasty-hunit-compat
-     , tasty-quickcheck, template-haskell, text, tezos-bake-monitor-lib
-     , type-spec, unordered-containers, vinyl
+    ({ mkDerivation, aeson-pretty, base, bimap, bytestring, constraints
+     , 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.2.0";
-       sha256 = "1az5phibdmxvr2g0lb1808rvlywd5d2cc647gzkybz5bwi837328";
+       version = "0.5.0";
+       sha256 = "0wvvxc49bc8cyfhhwzzhrdf3sia03d8hx2cxpjg3jab8bbxbqza1";
        libraryHaskellDepends = [
-         aeson-pretty base-noprelude bimap bytestring constraints containers
-         data-default first-class-families fmt formatting ghc-prim HUnit
-         interpolate lens morley morley-prelude mtl named
-         optparse-applicative pretty-terminal QuickCheck singletons
-         template-haskell text tezos-bake-monitor-lib unordered-containers
-         vinyl
-       ];
-       testHaskellDepends = [
-         base-noprelude bimap bytestring constraints containers data-default
-         filepath first-class-families fmt formatting HUnit morley
-         morley-prelude QuickCheck singletons spoon tasty tasty-hunit-compat
-         tasty-quickcheck text type-spec unordered-containers vinyl
+         aeson-pretty base bimap bytestring constraints containers
+         data-default first-class-families fmt interpolate lens morley
+         morley-prelude mtl named optparse-applicative pretty-terminal
+         QuickCheck singletons text unordered-containers vinyl
        ];
-       testToolDepends = [ tasty-discover ];
        description = "EDSL for the Michelson Language";
-       license = stdenv.lib.licenses.agpl3Plus;
+       license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {tezos-bake-monitor-lib = null;};
+     }) {};
 
   "loris" = callPackage
     ({ mkDerivation, base, c2hs, loris, vector }:
@@ -159537,8 +162808,8 @@ self: {
      }:
      mkDerivation {
        pname = "lsp-test";
-       version = "0.10.2.0";
-       sha256 = "1khqdgc90k9ya58nxsb6dggyyjdp5q9m4bgxmkg15l6qh6mw9zqp";
+       version = "0.10.3.0";
+       sha256 = "1gj6f99k3kd0flh2nbpj5wnhi1ql5rlijw0vf4l53zwxy203r7k8";
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal async base bytestring conduit
          conduit-parse containers data-default Diff directory filepath
@@ -159553,26 +162824,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "lsp-test_0_10_3_0" = 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, haskell-lsp, hspec, lens, mtl
+     , Diff, directory, filepath, Glob, haskell-lsp, hspec, lens, mtl
      , parser-combinators, process, text, transformers, unix
      , unordered-containers
      }:
      mkDerivation {
        pname = "lsp-test";
-       version = "0.10.3.0";
-       sha256 = "1gj6f99k3kd0flh2nbpj5wnhi1ql5rlijw0vf4l53zwxy203r7k8";
+       version = "0.11.0.4";
+       sha256 = "0nf0ys44q2n81arg7ll08dkilq8giz0gxarld2lpq5fyhhfvyv7g";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal async base bytestring conduit
-         conduit-parse containers data-default Diff directory filepath
+         conduit-parse containers data-default Diff directory filepath Glob
          haskell-lsp lens mtl parser-combinators process text transformers
          unix unordered-containers
        ];
        testHaskellDepends = [
-         aeson base data-default haskell-lsp hspec lens text
-         unordered-containers
+         aeson base data-default directory filepath haskell-lsp hspec lens
+         text unordered-containers
        ];
        description = "Functional test framework for LSP servers";
        license = stdenv.lib.licenses.bsd3;
@@ -159816,6 +163089,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "lucid-cdn" = callPackage
+    ({ mkDerivation, base, lucid }:
+     mkDerivation {
+       pname = "lucid-cdn";
+       version = "0.1.1.1";
+       sha256 = "1dl44rc5b3wrgfcllp6h1sw4w18jgglh1grh5w9g37rcxi2cxwll";
+       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 {
@@ -159981,8 +163265,8 @@ self: {
      }:
      mkDerivation {
        pname = "lumberjack";
-       version = "0.1.0.1";
-       sha256 = "1fgdhzkykyvi8dfy8yrv2rnr801677831k12k22i59afdw076xqg";
+       version = "0.1.0.2";
+       sha256 = "1qixhfalj22zgfmg3q0jk7ci4nafdwbhrbpgiwzjmah11219jib1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -159990,7 +163274,7 @@ self: {
          prettyprinter-ansi-terminal text time
        ];
        executableHaskellDepends = [
-         base exceptions mtl prettyprinter text
+         base contravariant exceptions mtl prettyprinter text
        ];
        description = "Trek through your code forest and make logs";
        license = stdenv.lib.licenses.isc;
@@ -160420,8 +163704,8 @@ self: {
      }:
      mkDerivation {
        pname = "lzo";
-       version = "0.1.1.2";
-       sha256 = "0dypzlxkkby937l2m9g4bz50sgchazqsbagbhkic70ak6iyasamf";
+       version = "0.1.1.3";
+       sha256 = "13l9fzvwyq1z3pv2p33w8ylb8wriwf5q2lif68f8n16fzh07ki7p";
        libraryHaskellDepends = [ base binary bytestring digest ];
        testHaskellDepends = [ base bytestring tasty tasty-hunit ];
        benchmarkHaskellDepends = [ base bytestring criterion ];
@@ -160542,6 +163826,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "machination" = callPackage
+    ({ mkDerivation, base, hspec }:
+     mkDerivation {
+       pname = "machination";
+       version = "1.0.0";
+       sha256 = "1vamvcnllcrz515ixidf07s751ah2nfwkwj045cpzgyygb7igvnc";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec ];
+       description = "Plot charts as unicode strings";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
   "machinecell" = callPackage
     ({ mkDerivation, base, doctest, free, hspec, mtl, profunctors
      , QuickCheck, semigroups, transformers
@@ -160572,6 +163868,8 @@ self: {
        pname = "machines";
        version = "0.7";
        sha256 = "1zipij9y913j5s6pyhycv0srias9fqyvnbky3a432qb5p9sgmh0b";
+       revision = "1";
+       editedCabalFile = "0b42bnsl6vwr6w5wi29hs25v6cihqvrfdjv178rwsfrk3256sxbx";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          adjunctions base comonad containers distributive mtl pointed
@@ -160756,8 +164054,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
@@ -161015,13 +164313,15 @@ self: {
      }) {};
 
   "magma" = callPackage
-    ({ mkDerivation, base, deepseq, profunctors, semigroups }:
+    ({ mkDerivation, base, deepseq, ghc-prim, profunctors, semigroups
+     }:
      mkDerivation {
        pname = "magma";
-       version = "0.4.0.0";
-       sha256 = "18s93ap84cd74sl89fy89dpj89j6qxayc1v771n0zhshbp7g9gkz";
+       version = "0.6.0.0";
+       sha256 = "054drdwpks29mf22imwng8k6i7701yl9hijb4wh2a8wa4axssn9w";
        libraryHaskellDepends = [ base deepseq profunctors semigroups ];
-       description = "magma is an algebraic structure consisting a set together with an binary operation";
+       testHaskellDepends = [ base ghc-prim ];
+       description = "magma is an algebraic structure";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -162551,8 +165851,8 @@ self: {
      }:
      mkDerivation {
        pname = "mason";
-       version = "0.2";
-       sha256 = "1nwxkbzzifgck6f4r4il790g149vx9bwd9m73c5k6b52v70h37sd";
+       version = "0.2.2";
+       sha256 = "1wck31lm5ms99r0aji8mkr0ax78i9z0qzz7gy9ihwriwwhyl9yiz";
        libraryHaskellDepends = [
          array base bytestring ghc-prim integer-gmp network text
        ];
@@ -162561,16 +165861,15 @@ 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.4.5.0";
-       sha256 = "06mllyp2wax1gbwafxa7sbda96mp4zhfsc3mbcpymxrap2i2c6w1";
-       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
@@ -162585,42 +165884,43 @@ self: {
        broken = true;
      }) {};
 
-  "massiv_0_5_1_0" = 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
+  "massiv-io" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, cabal-doctest, Color
+     , data-default-class, deepseq, doctest, exceptions, filepath, hspec
+     , JuicyPixels, massiv, massiv-test, netpbm, QuickCheck, random
+     , template-haskell, unliftio, vector
      }:
      mkDerivation {
-       pname = "massiv";
-       version = "0.5.1.0";
-       sha256 = "062b9mg1nqsg7lfv4a85s994jg1fipikpvxdb9w6ci3dqiq41dx0";
+       pname = "massiv-io";
+       version = "0.2.1.0";
+       sha256 = "0p7z4nk0fv9lql17s9d18hi5mrnvr4zry6rghqnhjmhlp97g4yi6";
+       revision = "1";
+       editedCabalFile = "0sqlkva81p748537vwbg0pzgvlx8xs7560rpd0fjcxafhj32m03x";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         base bytestring data-default-class deepseq exceptions primitive
-         scheduler unliftio-core vector
+         base bytestring Color data-default-class deepseq exceptions
+         filepath JuicyPixels massiv netpbm unliftio vector
        ];
        testHaskellDepends = [
-         base doctest mersenne-random-pure64 QuickCheck random splitmix
-         template-haskell
+         base bytestring doctest hspec JuicyPixels massiv massiv-test
+         QuickCheck random template-haskell
        ];
-       description = "Massiv (МаÑÑив) is an Array Library";
+       description = "Import/export of Image files into massiv Arrays";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
-  "massiv-io" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, cabal-doctest, Color
-     , data-default-class, deepseq, doctest, exceptions, filepath, hspec
-     , JuicyPixels, massiv, massiv-test, netpbm, QuickCheck, random
-     , template-haskell, unliftio, vector
+  "massiv-io_0_3_0_1" = callPackage
+    ({ mkDerivation, base, bytestring, Color, data-default-class
+     , deepseq, doctest, exceptions, filepath, hspec, JuicyPixels
+     , massiv, massiv-test, netpbm, QuickCheck, random, template-haskell
+     , unliftio, vector
      }:
      mkDerivation {
        pname = "massiv-io";
-       version = "0.2.1.0";
-       sha256 = "0p7z4nk0fv9lql17s9d18hi5mrnvr4zry6rghqnhjmhlp97g4yi6";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.3.0.1";
+       sha256 = "0r0nkgpdkjwsdxcfys3idk1m7q0paz5c3gx1sx7xwsj7c5gyp5gs";
        libraryHaskellDepends = [
          base bytestring Color data-default-class deepseq exceptions
          filepath JuicyPixels massiv netpbm unliftio vector
@@ -162658,43 +165958,20 @@ self: {
   "massiv-test" = callPackage
     ({ mkDerivation, base, bytestring, containers, data-default
      , data-default-class, deepseq, exceptions, genvalidity-hspec, hspec
-     , massiv, primitive, QuickCheck, scheduler, unliftio, vector
-     }:
-     mkDerivation {
-       pname = "massiv-test";
-       version = "0.1.2";
-       sha256 = "13sp8xw7rbwqgafn3f5f971l9i80cm09fan27cgpx8r8nmyrmhp2";
-       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 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_3" = 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.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;
@@ -162749,6 +166026,8 @@ self: {
        pname = "matchable";
        version = "0.1.2";
        sha256 = "0wrbq9pqndr9rm8iy3vmz756q77s0ih3y2is0hvv48w89hn5a4r0";
+       revision = "1";
+       editedCabalFile = "15gh6v6wicnl670j6knqcm1a589rdyh1drpk8ia7p4w9lhyav7vk";
        libraryHaskellDepends = [
          base containers hashable tagged unordered-containers vector
        ];
@@ -162765,10 +166044,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
        ];
@@ -162821,21 +166098,24 @@ 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.3.0";
-       sha256 = "1s5nbs40sc3r4z08n0j8bw40cy0zkp03fjjn3p27zkd4fvm9kib3";
+       version = "0.3.4.1";
+       sha256 = "13x4whrnacqvmprfi665n5nby8hqlz1pxrglsl81chyk0gy0l2p2";
        libraryHaskellDepends = [
-         base data-default-class deepseq primitive vector vector-th-unbox
+         base data-default-class deepseq primitive vector
        ];
        testHaskellDepends = [
          base data-default-class deepseq erf primitive QuickCheck tasty
          tasty-hunit tasty-quickcheck vector vector-th-unbox
        ];
+       benchmarkHaskellDepends = [
+         base data-default-class gauge random vector
+       ];
        description = "Collection of tools for numeric computations";
        license = stdenv.lib.licenses.bsd2;
      }) {};
@@ -162885,6 +166165,65 @@ self: {
        broken = true;
      }) {};
 
+  "math-programming" = callPackage
+    ({ mkDerivation, base, containers, mtl, tasty, tasty-discover
+     , tasty-hunit, tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "math-programming";
+       version = "0.4.0";
+       sha256 = "0c154gvx0h1xincmmx2jcrvaivni36ahglbrwx08v8z3wdp51k0m";
+       libraryHaskellDepends = [ base containers mtl text ];
+       testHaskellDepends = [
+         base containers mtl tasty tasty-discover tasty-hunit
+         tasty-quickcheck text
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "A library for formulating and solving math programs";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "math-programming-glpk" = callPackage
+    ({ mkDerivation, base, containers, glpk, glpk-headers
+     , math-programming, math-programming-tests, mtl, tasty
+     , tasty-discover, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "math-programming-glpk";
+       version = "0.4.1";
+       sha256 = "1ikg8a3pspcrk46rr87lnwkhziihzfpjd543bisqs0pl2db1ll5b";
+       libraryHaskellDepends = [
+         base containers glpk-headers math-programming mtl text
+       ];
+       testHaskellDepends = [
+         base containers glpk-headers math-programming
+         math-programming-tests mtl tasty tasty-discover tasty-hunit text
+       ];
+       testSystemDepends = [ glpk ];
+       testToolDepends = [ tasty-discover ];
+       description = "A GLPK backend to the math-programming library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) glpk;};
+
+  "math-programming-tests" = callPackage
+    ({ mkDerivation, base, math-programming, tasty, tasty-hunit
+     , tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "math-programming-tests";
+       version = "0.4.0";
+       sha256 = "01d6yb4zm2jky8jm8jzd1365nhjsa4c50b5a5yx3r7g078lk91pi";
+       libraryHaskellDepends = [
+         base math-programming tasty tasty-hunit tasty-quickcheck text
+       ];
+       description = "Utility functions for testing implementations of the math-programming library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "mathblog" = callPackage
     ({ mkDerivation, base, bytestring, ConfigFile, containers
      , data-default, deepseq, directory, either, filepath, fsnotify
@@ -163006,13 +166345,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;
@@ -163081,13 +166430,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;
@@ -163138,16 +166509,16 @@ self: {
 
   "matrix-sized" = callPackage
     ({ mkDerivation, base, bytestring, bytestring-lexing, conduit
-     , conduit-extra, data-ordlist, ieee754, primitive, singletons
+     , data-ordlist, double-conversion, ieee754, primitive, singletons
      , store, tasty, tasty-quickcheck, vector
      }:
      mkDerivation {
        pname = "matrix-sized";
-       version = "0.1.0";
-       sha256 = "0qmbckk1bmmg8lszdnd8lcgplniqzd53iq1aqv9jky96zdmmrna6";
+       version = "0.1.1";
+       sha256 = "00s08dnyr45c04k4qxydf3sfpyigrg1g8i0671z40m23wpcmzlyd";
        libraryHaskellDepends = [
-         base bytestring bytestring-lexing conduit conduit-extra primitive
-         singletons store vector
+         base bytestring bytestring-lexing conduit double-conversion
+         primitive singletons store vector
        ];
        testHaskellDepends = [
          base conduit data-ordlist ieee754 singletons store tasty
@@ -163165,25 +166536,6 @@ self: {
      }:
      mkDerivation {
        pname = "matrix-static";
-       version = "0.2.1";
-       sha256 = "1jq6f3as18q0z9z8nxf3jsa6fgci9nsp4m4qbr13429m6rl11x1n";
-       libraryHaskellDepends = [
-         base deepseq ghc-typelits-natnormalise matrix vector
-       ];
-       testHaskellDepends = [
-         base deepseq ghc-typelits-natnormalise matrix tasty tasty-hunit
-         vector
-       ];
-       description = "Type-safe matrix operations";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "matrix-static_0_3" = callPackage
-    ({ mkDerivation, base, deepseq, ghc-typelits-natnormalise, matrix
-     , tasty, tasty-hunit, vector
-     }:
-     mkDerivation {
-       pname = "matrix-static";
        version = "0.3";
        sha256 = "0g7vijwj6l8l10276smhycp1h30diy8naykxf184lm87ykx2aamv";
        libraryHaskellDepends = [
@@ -163195,7 +166547,6 @@ self: {
        ];
        description = "Type-safe matrix operations";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "matsuri" = callPackage
@@ -163225,7 +166576,7 @@ self: {
      , config-ini, connection, containers, data-clist, directory
      , filepath, gitrev, hashable, Hclip, mattermost-api
      , mattermost-api-qc, microlens-platform, mtl, network-uri, process
-     , quickcheck-text, random, semigroups, skylighting-core, stm
+     , quickcheck-text, random, semigroups, skylighting-core, split, stm
      , stm-delay, strict, string-conversions, tasty, tasty-hunit
      , tasty-quickcheck, temporary, text, text-zipper, time
      , timezone-olson, timezone-series, transformers, Unique, unix
@@ -163234,8 +166585,8 @@ self: {
      }:
      mkDerivation {
        pname = "matterhorn";
-       version = "50200.8.0";
-       sha256 = "05fkhizjj5vvrsz7db8s7ig36ym02n6mndwaay0md8s7fghjwfiw";
+       version = "50200.10.1";
+       sha256 = "0m4vqxxcqvbgm6flfwqy2w47ada3r29r34yw1gyv02na7gx3rqi1";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -163244,8 +166595,8 @@ self: {
          bytestring cheapskate config-ini connection containers data-clist
          directory filepath gitrev hashable Hclip mattermost-api
          microlens-platform mtl network-uri process random semigroups
-         skylighting-core stm stm-delay strict temporary text text-zipper
-         time timezone-olson timezone-series transformers unix
+         skylighting-core split stm stm-delay strict temporary text
+         text-zipper time timezone-olson timezone-series transformers unix
          unordered-containers utf8-string uuid vector vty word-wrap
          xdg-basedir
        ];
@@ -163273,8 +166624,8 @@ self: {
      }:
      mkDerivation {
        pname = "mattermost-api";
-       version = "50200.5.0";
-       sha256 = "0hfwc85qhz1klwr4baabcrv6n7imfj3xz809dddy2hdfav0y9qgg";
+       version = "50200.7.0";
+       sha256 = "1zqvfp0miql9ha9fcvr84p7yhli5br9kmsn080h058zknyabrl8p";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -163298,8 +166649,8 @@ self: {
      }:
      mkDerivation {
        pname = "mattermost-api-qc";
-       version = "50200.5.0";
-       sha256 = "0gzjzfzfipvpk61zilxw9a1xsgm10lrsl26rvr4h4gjw6mws7bg8";
+       version = "50200.7.0";
+       sha256 = "0gzrbgzynzr5g234dm1qbs9xkddfvm08rv1n12qx0191fzicbf25";
        libraryHaskellDepends = [
          base containers mattermost-api QuickCheck text time
        ];
@@ -163621,6 +166972,33 @@ self: {
        broken = true;
      }) {};
 
+  "mcmc" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, criterion
+     , data-default, directory, double-conversion, hspec, hspec-discover
+     , log-domain, microlens, mwc-random, QuickCheck, statistics, time
+     , transformers, vector, zlib
+     }:
+     mkDerivation {
+       pname = "mcmc";
+       version = "0.2.3";
+       sha256 = "14xf8l3ka7s34sa4rs4xsy7h5jxpl3fhsn959dvf17nsv252s6p8";
+       libraryHaskellDepends = [
+         aeson base bytestring containers data-default directory
+         double-conversion log-domain microlens mwc-random statistics time
+         transformers vector zlib
+       ];
+       testHaskellDepends = [
+         base directory hspec hspec-discover log-domain mwc-random
+         QuickCheck statistics vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [
+         base criterion log-domain microlens mwc-random statistics vector
+       ];
+       description = "Sample from a posterior using Markov chain Monte Carlo";
+       license = stdenv.lib.licenses.gpl3Plus;
+     }) {};
+
   "mcmc-samplers" = callPackage
     ({ mkDerivation, base, containers, hakaru, hmatrix, mwc-random
      , primitive, statistics
@@ -163775,6 +167153,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 {
@@ -163856,6 +167256,59 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "medea" = 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
+     , text, unordered-containers, vector, vector-instances
+     }:
+     mkDerivation {
+       pname = "medea";
+       version = "1.1.2";
+       sha256 = "0s5ra1a9p8yj2ddwlz58i1ajd7dmxz9rxrdckfmajpzgq9vyskpl";
+       revision = "1";
+       editedCabalFile = "1ick6yjqdk7wg75fzd496r1nyzhphzpz21lcalpicd34bkbzk6dd";
+       libraryHaskellDepends = [
+         aeson algebraic-graphs base bytestring containers deepseq free
+         hashable megaparsec microlens-ghc mtl nonempty-containers
+         parser-combinators scientific text unordered-containers vector
+         vector-instances
+       ];
+       testHaskellDepends = [
+         aeson base directory filepath hspec hspec-core mtl QuickCheck
+         quickcheck-instances text unordered-containers vector
+       ];
+       description = "A schema language for JSON";
+       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
@@ -164059,8 +167512,8 @@ self: {
      }:
      mkDerivation {
        pname = "mega-sdist";
-       version = "0.4.0.1";
-       sha256 = "191saxmdh3705rhci7lz7qzcdzv2zvw9bwa7f5d62500azi13j8v";
+       version = "0.4.1.0";
+       sha256 = "124wa7v8vx82gd04brgv3kphyqs0p5x9hp1vlp39bkha9w1yab7w";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -164073,6 +167526,17 @@ self: {
        broken = true;
      }) {};
 
+  "megalisp" = callPackage
+    ({ mkDerivation, base, megaparsec, mtl, text }:
+     mkDerivation {
+       pname = "megalisp";
+       version = "0.0.1";
+       sha256 = "158j4wc9j8vpi3k095nfsimjavfmrxgzil3d4a3yqphpk96fz9ci";
+       libraryHaskellDepends = [ base megaparsec mtl text ];
+       description = "lisp parser using mega-parsec";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "megaparsec_7_0_5" = callPackage
     ({ mkDerivation, base, bytestring, case-insensitive, containers
      , criterion, deepseq, mtl, parser-combinators, scientific, text
@@ -164274,8 +167738,10 @@ self: {
     ({ mkDerivation, base, doctest, Glob, hedgehog, hspec, type-spec }:
      mkDerivation {
        pname = "membrain";
-       version = "0.0.0.1";
-       sha256 = "1rrvny4avcpib47r26vf3x05yxl3vxz9gb9vsdcj3ck18vfgynsm";
+       version = "0.0.0.2";
+       sha256 = "1nizjkiggm2ws8kkjw6v96a611kim4yjg4kdrk0rd83fa1zcf7cc";
+       revision = "1";
+       editedCabalFile = "02yayszbb6g7q7cz9gkjbxzn28v4zm1i9svzydzlrzfds9z603r6";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base doctest Glob hedgehog hspec type-spec
@@ -164643,8 +168109,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 = [
@@ -164681,34 +168147,86 @@ self: {
      }) {};
 
   "mergeful" = callPackage
-    ({ mkDerivation, aeson, base, containers, mtl, text, time, validity
-     , validity-containers, validity-time
+    ({ mkDerivation, aeson, base, containers, deepseq, mtl, text, time
+     , validity, validity-containers, validity-time
      }:
      mkDerivation {
        pname = "mergeful";
-       version = "0.1.0.0";
-       sha256 = "1cw3mrbza5fqrh4qg4bjzw4dv23vwb0aglh0dcwzmzsl23hnvhad";
+       version = "0.2.0.0";
+       sha256 = "0cvx0qs4j7jbamz5dz23dii7car8dq5wz0qvkbckb3ymbrf16ywa";
        libraryHaskellDepends = [
-         aeson base containers mtl text time validity validity-containers
-         validity-time
+         aeson base containers deepseq mtl text time validity
+         validity-containers validity-time
        ];
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "mergeful-persistent" = callPackage
+    ({ mkDerivation, base, containers, genvalidity, genvalidity-hspec
+     , genvalidity-mergeful, genvalidity-persistent, hspec, mergeful
+     , microlens, monad-logger, mtl, path, path-io, persistent
+     , persistent-sqlite, persistent-template, QuickCheck, text
+     , validity, validity-persistent
+     }:
+     mkDerivation {
+       pname = "mergeful-persistent";
+       version = "0.0.0.0";
+       sha256 = "13lw0gb57as7mplaqwg0i6cpdp1gyw0qghbq4l19y7ib8c6jqnxi";
+       libraryHaskellDepends = [
+         base containers mergeful microlens mtl persistent
+       ];
+       testHaskellDepends = [
+         base containers genvalidity genvalidity-hspec genvalidity-mergeful
+         genvalidity-persistent hspec mergeful monad-logger mtl path path-io
+         persistent persistent-sqlite persistent-template QuickCheck text
+         validity validity-persistent
+       ];
+       description = "Support for using mergeful from persistent-based databases";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {genvalidity-persistent = null; validity-persistent = null;};
+
   "mergeless" = callPackage
     ({ mkDerivation, aeson, base, containers, deepseq, mtl, validity
      , validity-containers
      }:
      mkDerivation {
        pname = "mergeless";
-       version = "0.2.0.2";
-       sha256 = "0rrqligrrswmyy1gg6ji2q28rb30y1y97sa2bfxd9rgvbx8fgr2g";
+       version = "0.3.0.0";
+       sha256 = "14kgfh672fywvrjzb9kzhrnw10lxq44216rwniavn68abkg6yx94";
        libraryHaskellDepends = [
          aeson base containers deepseq mtl validity validity-containers
        ];
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "mergeless-persistent" = callPackage
+    ({ mkDerivation, base, containers, genvalidity, genvalidity-hspec
+     , genvalidity-mergeless, genvalidity-persistent, hspec, mergeless
+     , microlens, monad-logger, mtl, path, path-io, persistent
+     , persistent-sqlite, persistent-template, QuickCheck, text
+     , validity
+     }:
+     mkDerivation {
+       pname = "mergeless-persistent";
+       version = "0.0.0.0";
+       sha256 = "0b75qs3f1vp4cab28j9znr83apzrsfx7i0p42nk42m5kn5vg2rzs";
+       libraryHaskellDepends = [
+         base containers mergeless microlens persistent
+       ];
+       testHaskellDepends = [
+         base containers genvalidity genvalidity-hspec genvalidity-mergeless
+         genvalidity-persistent hspec mergeless monad-logger mtl path
+         path-io persistent persistent-sqlite persistent-template QuickCheck
+         text validity
+       ];
+       description = "Support for using mergeless from persistent-based databases";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {genvalidity-persistent = null;};
+
   "merkle-log" = callPackage
     ({ mkDerivation, base, bytestring, cereal, criterion, cryptonite
      , deepseq, exceptions, hash-tree, memory, merkle-tree, mwc-random
@@ -164931,7 +168449,7 @@ self: {
        version = "0.0.8";
        sha256 = "0rdw0laqx9kypfwzqb4ir18r07sjxgm4pwfs82bjpwq0gf58nzas";
        libraryHaskellDepends = [ arrows base random Stream ];
-       description = "Generalised local search within Haskell, for applications in combinatorial optimisation.";
+       description = "Generalised local search within Haskell, for applications in combinatorial optimisation";
        license = "GPL";
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -165070,6 +168588,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 {
@@ -165355,8 +168961,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
@@ -165445,10 +169051,10 @@ self: {
      }:
      mkDerivation {
        pname = "microlens-process";
-       version = "0.2.0.1";
-       sha256 = "0grnqs0b76la48ql6amrjnqfkgcb0rcq3s2xqs2czjg2jgp3zw5r";
-       revision = "3";
-       editedCabalFile = "01p3glv58jhiw6znjba247r6d6b63illnjfx26yxlqk2bhib90ap";
+       version = "0.2.0.2";
+       sha256 = "0dvhvrk1v0kjb45xnpjbr8b97vc6dx4cq34jfzkazqdp5jk5nlxp";
+       revision = "1";
+       editedCabalFile = "0l0c6s655ramncmww146had034n58p4bgxsv3wqggjcjnb26j2d0";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base filepath microlens process ];
        testHaskellDepends = [ base doctest microlens process ];
@@ -165531,8 +169137,8 @@ self: {
        pname = "microstache";
        version = "1.0.1.1";
        sha256 = "0851sqr1ppdj6m822635pa3j6qzdf25gyrhkjs25zdry6518bsax";
-       revision = "6";
-       editedCabalFile = "054ny1rsqz682k4x36dqj6wqbj6arwxp75xpsss8lc7j145d0qn3";
+       revision = "7";
+       editedCabalFile = "05ia18kywpmk01sqnywflfq0ck3yivh8rc178f575py1zrdpn3l7";
        libraryHaskellDepends = [
          aeson base bytestring containers deepseq directory filepath parsec
          text transformers unordered-containers vector
@@ -165804,18 +169410,21 @@ self: {
      }) {};
 
   "mighty-metropolis" = callPackage
-    ({ mkDerivation, base, containers, kan-extensions, mcmc-types
-     , mwc-probability, pipes, primitive, transformers
+    ({ mkDerivation, base, containers, foldl, hspec, kan-extensions
+     , mcmc-types, mwc-probability, mwc-random, pipes, primitive
+     , transformers
      }:
      mkDerivation {
        pname = "mighty-metropolis";
-       version = "1.2.0";
-       sha256 = "1h3ik18vnya6sm0x1s6hxxx5hky0wm2pqm2g3hllcj02cm5hng4d";
+       version = "2.0.0";
+       sha256 = "0r1viswlggm6y7k3x5cvfmbly8jmk1ivhfp8vpgvkamxagzhkrk4";
        libraryHaskellDepends = [
          base kan-extensions mcmc-types mwc-probability pipes primitive
          transformers
        ];
-       testHaskellDepends = [ base containers mwc-probability ];
+       testHaskellDepends = [
+         base containers foldl hspec mcmc-types mwc-probability mwc-random
+       ];
        description = "The Metropolis algorithm";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -165973,6 +169582,36 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "mime-mail-ses_0_4_2" = 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.2";
+       sha256 = "1jiv1h9b8396nf8iqf9x11idfcrppank3gqcn6l5877893fzd9hk";
+       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
@@ -166007,8 +169646,8 @@ self: {
      }:
      mkDerivation {
        pname = "min-max-pqueue";
-       version = "0.1.0.1";
-       sha256 = "09lby8qvjrcdp7ygy4a4dcw8w3y689qzazbcd55249z7ljjw731s";
+       version = "0.1.0.2";
+       sha256 = "0nbvd8w4wj00dbh1zknxqb28wlxi87k3z3snjfqg7zz7j7mvy0jp";
        libraryHaskellDepends = [ base containers ];
        testHaskellDepends = [ base containers hedgehog ];
        benchmarkHaskellDepends = [
@@ -166086,26 +169725,6 @@ self: {
      }) {};
 
   "mini-egison" = callPackage
-    ({ mkDerivation, base, containers, haskell-src-meta, hspec, primes
-     , regex-compat, sort, split, template-haskell
-     }:
-     mkDerivation {
-       pname = "mini-egison";
-       version = "0.1.6";
-       sha256 = "08348nw7xnni81iwcah43x5hi0hyqz286g3zpmkhja8if99l59lj";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base containers haskell-src-meta regex-compat split
-         template-haskell
-       ];
-       executableHaskellDepends = [ base sort ];
-       testHaskellDepends = [ base hspec primes ];
-       description = "Template Haskell Implementation of Egison Pattern Matching";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "mini-egison_1_0_0" = callPackage
     ({ mkDerivation, base, egison-pattern-src
      , egison-pattern-src-th-mode, haskell-src-exts, haskell-src-meta
      , hspec, mtl, primes, recursion-schemes, sort, template-haskell
@@ -166124,7 +169743,6 @@ self: {
        testHaskellDepends = [ base hspec primes ];
        description = "Template Haskell Implementation of Egison Pattern Matching";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "miniball" = callPackage
@@ -166211,6 +169829,28 @@ self: {
        broken = true;
      }) {};
 
+  "minilight-lua" = callPackage
+    ({ mkDerivation, base, bytestring, containers, exceptions, hslua
+     , lens, linear, minilight, mtl, sdl2, sdl2-ttf, text, unix-time
+     }:
+     mkDerivation {
+       pname = "minilight-lua";
+       version = "0.2.1.0";
+       sha256 = "0sxaj947qwbrlgph7byf8nxln0cmcg9sjyyp9pfn2lh7nkh8p75n";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bytestring containers exceptions hslua linear minilight mtl
+         sdl2 sdl2-ttf text unix-time
+       ];
+       executableHaskellDepends = [ base lens minilight mtl ];
+       description = "A binding library of minilight for Lua langauge";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "minimal-configuration" = callPackage
     ({ mkDerivation, base, containers, directory, filepath }:
      mkDerivation {
@@ -166239,6 +169879,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "minimorph_0_3_0_0" = callPackage
+    ({ mkDerivation, base, HUnit, test-framework, test-framework-hunit
+     , text
+     }:
+     mkDerivation {
+       pname = "minimorph";
+       version = "0.3.0.0";
+       sha256 = "1jq2yrvhknnbc4b44nk2k6ynivn6s2j43w8bq1vi8gix7k4sazf4";
+       libraryHaskellDepends = [ base text ];
+       testHaskellDepends = [
+         base HUnit test-framework test-framework-hunit text
+       ];
+       description = "English spelling functions with an emphasis on simplicity";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "minimung" = callPackage
     ({ mkDerivation, base, GLUT, haskell98, unix }:
      mkDerivation {
@@ -166402,7 +170059,7 @@ self: {
          base containers directory filepath monads-tf parsec pretty
          transformers xhtml
        ];
-       description = "an interpreter for an operational semantics for the STG machine.";
+       description = "an interpreter for an operational semantics for the STG machine";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -166439,6 +170096,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "miniutter_0_5_1_1" = callPackage
+    ({ mkDerivation, base, binary, containers, HUnit, minimorph
+     , test-framework, test-framework-hunit, text
+     }:
+     mkDerivation {
+       pname = "miniutter";
+       version = "0.5.1.1";
+       sha256 = "126gwbii4j8j778h7c8vwapn6dya8phbjja37pys4kly0p877mp4";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [ base binary containers minimorph text ];
+       testHaskellDepends = [
+         base containers HUnit test-framework test-framework-hunit text
+       ];
+       description = "Simple English clause creation from arbitrary words";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "minizinc-process" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, directory
      , hashable, process-extras, stringsearch, text
@@ -166559,6 +170234,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
@@ -166673,8 +170350,8 @@ self: {
      }:
      mkDerivation {
        pname = "miso";
-       version = "1.4.0.0";
-       sha256 = "067z49ial3dwkbcza54aivdh8r4yx54zmpyxmd6mpyqlv96dv8gc";
+       version = "1.6.0.0";
+       sha256 = "1mzsih2hga62sf33m4cwf1v0107p2ydc32wq7n3hsapzx69sm2j3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -166685,15 +170362,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "miso_1_5_1_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.5.1.0";
-       sha256 = "1vnpfqnkg89ax5znkppqnnp2dgmps2hwdyc05rph2xqvyg5wq9qd";
+       version = "1.7.1.0";
+       sha256 = "1hkfcinwymrff8mmvywhnlzbj5804hwkk4rhzxzhzsycdf4v7a41";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -166722,8 +170399,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "miso-examples";
-       version = "1.5.1.0";
-       sha256 = "14zbzrh3rvqhpn0gd02wd1jdd40inlpy8v4a1qv1aq1c39ip2csb";
+       version = "1.7.1.0";
+       sha256 = "1z6zcydai6k9hj1phws1axdcbvdplhxv833is7pzfv8sq9mfyfsc";
        isLibrary = false;
        isExecutable = true;
        description = "A tasty Haskell front-end framework";
@@ -166738,8 +170415,8 @@ self: {
      }:
      mkDerivation {
        pname = "miso-from-html";
-       version = "0.1.0.0";
-       sha256 = "1bsa0xy1s9xnjam3arq2ngi6am5a4fzrrp8vlyh0ijniwm174x5k";
+       version = "0.2.0.0";
+       sha256 = "191qszlmgakpjdzg6k54kxg7c8v05jib66sk3w1aqc98j74f4yix";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -166830,24 +170507,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;
      }) {};
 
@@ -166888,8 +170566,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
@@ -167051,6 +170729,8 @@ self: {
        pname = "mmark";
        version = "0.0.7.2";
        sha256 = "1wwszzba6fvg0r4q5z2dzashim0nkaxzx4rmjl216kdi08jkp7mm";
+       revision = "2";
+       editedCabalFile = "1wwcar2a5hdwac8r1c1wlqhk7dnidvq98qsgnxyhfh8iblpn81hb";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base case-insensitive containers deepseq dlist email-validate
@@ -167077,8 +170757,8 @@ self: {
        pname = "mmark-cli";
        version = "0.0.5.0";
        sha256 = "15qrp2q1flx9csqvj8zx9w1jqg8pwfi0v7wpia7n7vg09jgydhby";
-       revision = "2";
-       editedCabalFile = "1kpxrf3gwcl0l8jqq3dic49705p338rcvach95vp1g1jjpwd8kbj";
+       revision = "4";
+       editedCabalFile = "1z2jfbbjimcryb44g990cnx5xvmfipy5dx6z33v2aqgpjgjn2rr5";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -167099,8 +170779,8 @@ self: {
        pname = "mmark-ext";
        version = "0.2.1.2";
        sha256 = "1s44vznj8hkk7iymnzczbglxnw1q84gmm8q9yiwh0jkiw4kdi91c";
-       revision = "1";
-       editedCabalFile = "10dlh96l6fdbpl1slr8v022735z9zkdszd1aziid5ml3gf63ssd8";
+       revision = "2";
+       editedCabalFile = "0q633c7zv0liaz0a46llgy21x0snbfhl33qx9plh2sxhjvhvhmpj";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base foldl ghc-syntax-highlighter lucid microlens mmark modern-uri
@@ -167129,8 +170809,8 @@ self: {
     ({ mkDerivation, base, vector }:
      mkDerivation {
        pname = "mmsyn2";
-       version = "0.1.7.0";
-       sha256 = "1laskxwmylmg7mzm4h6z013s7rhfxf9y1mrvy4dp1cc80kq3scg0";
+       version = "0.1.8.0";
+       sha256 = "1qdbf89i5yx6ag9k4a9scc6wbm765b8zhq0gi12zx0bq75jjz3qz";
        libraryHaskellDepends = [ base vector ];
        description = "The library that can be used for multiple (Ord a) => a -> b transformations";
        license = stdenv.lib.licenses.mit;
@@ -167140,8 +170820,8 @@ self: {
     ({ mkDerivation, base, directory }:
      mkDerivation {
        pname = "mmsyn3";
-       version = "0.1.4.0";
-       sha256 = "1i93744jprkg94lwcas2hvb341m6j08ncn1lzlz6d8z2blpd5z4w";
+       version = "0.1.5.0";
+       sha256 = "0fpn0lzr93aaha9741spc7vmlg5c4x5wb3p4qvxzp57w85zqdwm3";
        libraryHaskellDepends = [ base directory ];
        description = "A small library to deal with executable endings";
        license = stdenv.lib.licenses.mit;
@@ -167152,10 +170832,13 @@ self: {
      }:
      mkDerivation {
        pname = "mmsyn4";
-       version = "0.1.6.0";
-       sha256 = "0kz7wpfpvfayb6jgd0wwrb3dljcigmqdiixb7b86vyh36nzxhcfj";
-       isLibrary = false;
+       version = "0.4.0.0";
+       sha256 = "0qfr2dlzigggbwgznh1sxxkp7qwvcba2rlhwdqs4rzaz53sx2xzj";
+       isLibrary = true;
        isExecutable = true;
+       libraryHaskellDepends = [
+         base directory mmsyn2 mmsyn3 process vector
+       ];
        executableHaskellDepends = [
          base directory mmsyn2 mmsyn3 process vector
        ];
@@ -167167,8 +170850,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "mmsyn5";
-       version = "0.4.3.0";
-       sha256 = "02ndmx1ndm87i2xlnaarw8yljjki1k7ak0jyb5s0c7hkvlrl7qax";
+       version = "0.4.4.0";
+       sha256 = "1yvsx82x7m5y2swxllhb7zzgspb3lfdhrbw6n5v3xsa9vxhwa35l";
        libraryHaskellDepends = [ base ];
        description = "Various additional operations on lists (some with intermediate Monads)";
        license = stdenv.lib.licenses.mit;
@@ -167180,8 +170863,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmsyn6ukr";
-       version = "0.6.3.1";
-       sha256 = "0iyyw02w4mw2g66dqs2ihd5qs4qrs4dcaql7y8gd3gc26mhn7svq";
+       version = "0.8.0.0";
+       sha256 = "0cs4mi9ia3l3v19hldbaygsywvjcfx66plbyh6311j2qzbrqaq93";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -167201,8 +170884,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmsyn7h";
-       version = "0.7.5.0";
-       sha256 = "17haan991lzs5qs4gzywhk4vpn9dvgasdm9ff8hzs5h6a0604sfn";
+       version = "0.8.0.0";
+       sha256 = "0mj96p3f96brv7cw3mkigngxnmqcn9r1yfghdx1jplrw5wycy80j";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -167218,16 +170901,20 @@ self: {
      }) {};
 
   "mmsyn7l" = callPackage
-    ({ mkDerivation, base, directory, mmsyn2, mmsyn7ukr, vector }:
+    ({ mkDerivation, base, directory, mmsyn2, mmsyn3, mmsyn7ukr
+     , process, vector
+     }:
      mkDerivation {
        pname = "mmsyn7l";
-       version = "0.4.2.0";
-       sha256 = "1dpilwaffrkihfgbpq7p1095qpx9qgcpzbs8q3kld948hliihix7";
+       version = "0.8.0.0";
+       sha256 = "0w1k89phzxyq2nwzr0vn313rlp0f7d62vhdvq113pqszbdbjh6gd";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base directory mmsyn2 mmsyn7ukr vector ];
+       libraryHaskellDepends = [
+         base directory mmsyn2 mmsyn3 mmsyn7ukr process vector
+       ];
        executableHaskellDepends = [
-         base directory mmsyn2 mmsyn7ukr vector
+         base directory mmsyn2 mmsyn3 mmsyn7ukr process vector
        ];
        description = "Modifies the amplitudes of the Ukrainian sounds representations created by mmsyn7ukr package";
        license = stdenv.lib.licenses.mit;
@@ -167237,8 +170924,8 @@ self: {
     ({ mkDerivation, base, mmsyn2, mmsyn5, mmsyn6ukr, vector }:
      mkDerivation {
        pname = "mmsyn7s";
-       version = "0.6.6.0";
-       sha256 = "0hmsf7l3p2b2zj5ydjzxzkgqsj53yjwn71vgw8qzhbxjihk5x6l2";
+       version = "0.8.0.0";
+       sha256 = "0brcmmlvdd294y35gby1qnb5b5h5mcn6xgwgvffxfmhif7nyxmc5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base mmsyn2 mmsyn5 mmsyn6ukr vector ];
@@ -167253,8 +170940,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmsyn7ukr";
-       version = "0.15.3.0";
-       sha256 = "02556sgfwi0fzlwj0x22hmyi9pgq0j7w4yfpjy2ni1px8vanwq5j";
+       version = "0.17.0.0";
+       sha256 = "069pyv8g9gdzzvnmdqmcrqnxf5zglrqbmcn2v6frfxj7ibd4awif";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -167349,6 +171036,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
@@ -167388,17 +171093,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";
@@ -167542,13 +171250,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.0";
+       sha256 = "1mwhjn315vgpvf95ay6rf77hwpb7hjfw9bcginnz4cb30nn8kvl9";
+       libraryHaskellDepends = [ base typelits-witnesses ];
+       testHaskellDepends = [ base doctest typelits-witnesses ];
        description = "A type for integers modulo some constant";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -167930,10 +171638,8 @@ self: {
      }:
      mkDerivation {
        pname = "monad-chronicle";
-       version = "1";
-       sha256 = "03x19683pm99zcw7gkipmdkrqwaspcyvy7yv68nlh6g4swl31a0l";
-       revision = "2";
-       editedCabalFile = "0ajjcv8h6104k2xlzlqkhvy7hmv6p4ldca3jdsa9ns38sxy8j6ld";
+       version = "1.0.0.1";
+       sha256 = "1p9w9f5sw4adxxrgfba0vxs5kdhl82ibnwfqal7nrrhp3v86imbg";
        libraryHaskellDepends = [
          base data-default-class mtl semigroupoids these transformers
          transformers-compat
@@ -168039,6 +171745,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
@@ -168060,18 +171781,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
@@ -168201,6 +171918,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
@@ -168300,8 +172031,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
@@ -168353,6 +172084,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
        ];
@@ -169110,6 +172843,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "monadic-recursion-schemes" = callPackage
+    ({ mkDerivation, base, comonad, containers, free, mtl
+     , recursion-schemes, transformers
+     }:
+     mkDerivation {
+       pname = "monadic-recursion-schemes";
+       version = "0.1.12.0";
+       sha256 = "0h5syc9p4imlf03qfb1rjsk4rq2kqry522zvw67x122q1xzdnwnw";
+       libraryHaskellDepends = [
+         base comonad containers free mtl recursion-schemes transformers
+       ];
+       testHaskellDepends = [ base ];
+       description = "Recursion Schemes for Monadic version";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "monadiccp" = callPackage
     ({ mkDerivation, base, containers, mtl, parsec, pretty, random
      , semigroups
@@ -169245,7 +172996,7 @@ self: {
        revision = "1";
        editedCabalFile = "11v5zdsb9mp1rxvgcrxcr2xnc610xi16krwa9r4i5d6njmphfbdp";
        libraryHaskellDepends = [ base ];
-       description = "Haskell98 partial maps and filters over MonadPlus.";
+       description = "Haskell98 partial maps and filters over MonadPlus";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -169517,8 +173268,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
@@ -169825,8 +173576,8 @@ self: {
        pname = "months";
        version = "0.1";
        sha256 = "000fqmd5j3pxmfa5bpyk5fd0hbn9iq3g5v1slk4hrjdjm8k19wa0";
-       revision = "2";
-       editedCabalFile = "030d693d4acc3zlha2rjzalrqn8i5pyqkw0zdp3i1hjr0694hwaf";
+       revision = "4";
+       editedCabalFile = "0rww4x5c4a9n1yrs6ll1irwn1c1fm8s9k1zri3n2n1d6x75brny5";
        libraryHaskellDepends = [
          aeson attoparsec base base-compat cassava deepseq hashable
          http-api-data intervals lens lucid QuickCheck swagger2 text
@@ -169983,59 +173734,43 @@ self: {
      }) {morfeusz = null;};
 
   "morley" = callPackage
-    ({ mkDerivation, aeson, aeson-casing, aeson-pretty, base-noprelude
-     , base16-bytestring, base58-bytestring, binary, bytestring
-     , constraints, containers, cryptonite, data-default, directory
-     , filepath, first-class-families, fmt, formatting, gauge, ghc-prim
-     , gitrev, hex-text, hspec, hspec-expectations, HUnit, interpolate
-     , lens, megaparsec, memory, morley-prelude, mtl, named
+    ({ mkDerivation, aeson, aeson-casing, aeson-pretty, base
+     , base58-bytestring, binary, bytestring, constraints, containers
+     , cryptonite, data-default, first-class-families, fmt
+     , generic-deriving, gitrev, haskeline, hex-text, interpolate, lens
+     , megaparsec, memory, morley-prelude, mtl, named
      , optparse-applicative, parser-combinators, pretty-simple
      , QuickCheck, quickcheck-arbitrary-adt, quickcheck-instances
-     , show-type, singletons, syb, tasty, tasty-ant-xml, tasty-discover
-     , tasty-hspec, tasty-hunit-compat, tasty-quickcheck
-     , template-haskell, text, tezos-bake-monitor-lib, th-lift
-     , th-lift-instances, time, timerep, transformers-compat
+     , 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.2.0";
-       sha256 = "1id9sqh105p9b35g7rnk6x43h3h2d4v71bg13mz4gk5ny186d512";
+       version = "1.5.0";
+       sha256 = "151idw4dhdlsw9ga8q0mp3vnv520ljmkr0wm2hhhd7k0xliy177a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson aeson-casing aeson-pretty base-noprelude base16-bytestring
-         base58-bytestring binary bytestring constraints containers
-         cryptonite data-default first-class-families fmt formatting
-         ghc-prim gitrev hex-text hspec hspec-expectations HUnit interpolate
-         lens megaparsec memory morley-prelude mtl named
+         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 show-type singletons
-         syb tasty tasty-ant-xml tasty-hunit-compat tasty-quickcheck
-         template-haskell text tezos-bake-monitor-lib th-lift
-         th-lift-instances time timerep transformers-compat
-         unordered-containers vector vinyl wl-pprint-text
+         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-noprelude fmt morley-prelude named optparse-applicative
-         pretty-simple
-       ];
-       testHaskellDepends = [
-         aeson base-noprelude bytestring containers data-default directory
-         filepath fmt formatting hex-text hspec hspec-expectations HUnit
-         lens megaparsec morley-prelude QuickCheck quickcheck-arbitrary-adt
-         quickcheck-instances singletons syb tasty tasty-hspec
-         tasty-hunit-compat tasty-quickcheck text unordered-containers
-       ];
-       testToolDepends = [ tasty-discover ];
-       benchmarkHaskellDepends = [
-         base-noprelude 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.agpl3Plus;
+       license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {tezos-bake-monitor-lib = null;};
+     }) {};
 
   "morley-prelude" = callPackage
     ({ mkDerivation, base-noprelude, universum }:
@@ -170069,48 +173804,48 @@ self: {
 
   "morpheus-graphql" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, megaparsec
-     , mtl, scientific, tasty, tasty-hunit, template-haskell, text
-     , th-lift-instances, transformers, unordered-containers, uuid
-     , vector, websockets
+     , morpheus-graphql-core, mtl, scientific, tasty, tasty-hunit
+     , template-haskell, text, transformers, unliftio-core
+     , unordered-containers, uuid, vector, websockets
      }:
      mkDerivation {
        pname = "morpheus-graphql";
-       version = "0.10.0";
-       sha256 = "1aan9afsljd83dm8zj3qg5hna80cp3iqzqrlhy0znr2xg9dlswg1";
+       version = "0.12.0";
+       sha256 = "11f0niq2rv6kyrscl0dgi75vcxrz4vhy4yka2jxhrmx6klzi908p";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson base bytestring containers megaparsec mtl scientific
-         template-haskell text th-lift-instances transformers
+         aeson base bytestring containers megaparsec morpheus-graphql-core
+         mtl scientific template-haskell text transformers unliftio-core
          unordered-containers uuid vector websockets
        ];
        testHaskellDepends = [
-         aeson base bytestring containers megaparsec mtl scientific tasty
-         tasty-hunit template-haskell text th-lift-instances transformers
-         unordered-containers uuid vector websockets
+         aeson base bytestring containers megaparsec morpheus-graphql-core
+         mtl scientific tasty tasty-hunit template-haskell text transformers
+         unliftio-core unordered-containers uuid vector websockets
        ];
        description = "Morpheus GraphQL";
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "morpheus-graphql_0_11_0" = callPackage
+  "morpheus-graphql_0_14_1" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, megaparsec
-     , mtl, scientific, tasty, tasty-hunit, template-haskell, text
-     , th-lift-instances, transformers, unliftio-core
+     , morpheus-graphql-core, mtl, scientific, tasty, tasty-hunit
+     , template-haskell, text, transformers, unliftio-core
      , unordered-containers, uuid, vector, websockets
      }:
      mkDerivation {
        pname = "morpheus-graphql";
-       version = "0.11.0";
-       sha256 = "1cwq1wa43df8d681x409ra9cnv9qfxb2wpbf6mm3fcbnkkaza351";
+       version = "0.14.1";
+       sha256 = "1vyb3jqnsmsjyl3zc0rh3c77ma3s5pgcqph4ijafhlm44fk6s82z";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson base bytestring containers megaparsec mtl scientific
-         template-haskell text th-lift-instances transformers unliftio-core
+         aeson base bytestring containers megaparsec morpheus-graphql-core
+         mtl scientific template-haskell text transformers unliftio-core
          unordered-containers uuid vector websockets
        ];
        testHaskellDepends = [
-         aeson base bytestring containers megaparsec mtl scientific tasty
-         tasty-hunit template-haskell text th-lift-instances transformers
+         aeson base bytestring containers megaparsec morpheus-graphql-core
+         mtl scientific tasty tasty-hunit template-haskell text transformers
          unliftio-core unordered-containers uuid vector websockets
        ];
        description = "Morpheus GraphQL";
@@ -170140,6 +173875,80 @@ self: {
        broken = true;
      }) {};
 
+  "morpheus-graphql-client" = callPackage
+    ({ 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.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;
+       broken = true;
+     }) {};
+
+  "morpheus-graphql-core" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, hashable, megaparsec
+     , scientific, tasty, tasty-hunit, template-haskell, text
+     , th-lift-instances, transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "morpheus-graphql-core";
+       version = "0.12.0";
+       sha256 = "1ay37r73sqs5c8ixaz9mr9x1ps58jg4sgrlw5dmq7hkzy9993ccv";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring hashable megaparsec scientific
+         template-haskell text th-lift-instances transformers
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring hashable megaparsec scientific tasty
+         tasty-hunit template-haskell text th-lift-instances transformers
+         unordered-containers vector
+       ];
+       description = "Morpheus GraphQL Core";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "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
+     , vector
+     }:
+     mkDerivation {
+       pname = "morpheus-graphql-core";
+       version = "0.14.1";
+       sha256 = "0xqam41z0i9f2bsa8z7gh3x2fhvy8qa02a1r4gix7dnymi69bbgj";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring hashable megaparsec mtl scientific
+         template-haskell text th-lift-instances transformers
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring directory hashable megaparsec mtl scientific
+         tasty tasty-hunit template-haskell text th-lift-instances
+         transformers unordered-containers vector
+       ];
+       description = "Morpheus GraphQL Core";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "morphisms" = callPackage
     ({ mkDerivation }:
      mkDerivation {
@@ -170274,19 +174083,19 @@ self: {
   "moto" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, containers
      , cryptohash-sha1, df1, di, di-core, di-df1, directory, filepath
-     , mtl, optparse-applicative, pipes, pipes-attoparsec
+     , mtl, optparse-applicative, pipes, pipes-aeson, pipes-attoparsec
      , pipes-bytestring, random, safe-exceptions, tasty, tasty-hunit
      , tasty-quickcheck, text, time, transformers
      }:
      mkDerivation {
        pname = "moto";
-       version = "0.0.3";
-       sha256 = "1grvw5dlg6gjf83rhz45hnh73p74v85kmyn9yfi2gwbxcs7fsmvx";
+       version = "0.0.4";
+       sha256 = "04i85y0h5dqaz6iy7wrirgrm4bncygnmjjb5ncjzdf9c0lvmnab9";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring containers cryptohash-sha1 df1
          di-core di-df1 directory filepath mtl optparse-applicative pipes
-         pipes-attoparsec pipes-bytestring safe-exceptions text time
-         transformers
+         pipes-aeson pipes-attoparsec pipes-bytestring safe-exceptions text
+         time transformers
        ];
        testHaskellDepends = [
          base bytestring containers di di-core directory filepath random
@@ -170299,15 +174108,16 @@ self: {
      }) {};
 
   "moto-postgresql" = callPackage
-    ({ mkDerivation, base, bytestring, moto, postgresql-simple
-     , safe-exceptions
+    ({ mkDerivation, base, bytestring, df1, di-df1, moto
+     , postgresql-simple, safe-exceptions, text
      }:
      mkDerivation {
        pname = "moto-postgresql";
-       version = "0.0.1";
-       sha256 = "0z5kxphsgywmnv33lf95by9gxlgr6i8y8lq7sqy495f87b1jv62d";
+       version = "0.0.2";
+       sha256 = "1n6xzcg6iqh9l4jkhq03hl11kh0614z41kv2pvw26bsknv4rp0cx";
        libraryHaskellDepends = [
-         base bytestring moto postgresql-simple safe-exceptions
+         base bytestring df1 di-df1 moto postgresql-simple safe-exceptions
+         text
        ];
        description = "PostgreSQL-based migrations registry for moto";
        license = stdenv.lib.licenses.asl20;
@@ -170512,8 +174322,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 ];
@@ -170621,6 +174431,26 @@ self: {
        broken = true;
      }) {};
 
+  "mprelude" = callPackage
+    ({ mkDerivation, base, devtools, source-constraints, text
+     , text-conversions
+     }:
+     mkDerivation {
+       pname = "mprelude";
+       version = "0.1.0";
+       sha256 = "0p7zx0b49dp2vd3mx3knfl9gqbh6sj2znc372bmh6ja57g1kv8ds";
+       libraryHaskellDepends = [
+         base source-constraints text text-conversions
+       ];
+       testHaskellDepends = [
+         base devtools source-constraints text text-conversions
+       ];
+       description = "A minimalish prelude";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "mpretty" = callPackage
     ({ mkDerivation, ansi-terminal, base, containers, data-lens-fd
      , data-lens-template, mtl, orders, text, transformers
@@ -170790,8 +174620,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";
@@ -171071,8 +174901,8 @@ self: {
      }:
      mkDerivation {
        pname = "mssql-simple";
-       version = "0.6.0.0";
-       sha256 = "1ijaxamabxwabyvh30blscxxgpbmr55far373nhn98w224b1jddy";
+       version = "0.6.0.1";
+       sha256 = "1qrbrvk4df7179zpjngq6r0xvy3jfv4r1vh88m7knzm75wkg77xx";
        libraryHaskellDepends = [
          base binary bytestring hostname ms-tds mtl network template-haskell
          text time tls uuid-types
@@ -171814,8 +175644,8 @@ self: {
      }:
      mkDerivation {
        pname = "multibase";
-       version = "0.1.0.0";
-       sha256 = "1gvbqq4kd94n7dmcbjb3k24z0qrv13qmi8lhs3yxwch3y13qv60m";
+       version = "0.1.1";
+       sha256 = "08r3imyvgi6ahgfqpjcxfr3xg4zj2cvw4g2lzqs04ncipzrw5rnf";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson base base16-bytestring base32-z-bytestring base58-bytestring
@@ -171916,6 +175746,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
@@ -172301,8 +176133,8 @@ self: {
      }:
      mkDerivation {
        pname = "multistate";
-       version = "0.8.0.2";
-       sha256 = "0hypksjacpjgpkgvjn76fd5rgdz7hi6ri36ihdy0bdhpi83jnhn5";
+       version = "0.8.0.3";
+       sha256 = "0sbrm28rjw4qgpn8p0974ljkgi30d4akbngjm58kf96x9zp7ln8g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -172450,15 +176282,17 @@ self: {
      }:
      mkDerivation {
        pname = "murmur3";
-       version = "1.0.3";
-       sha256 = "0ahzspjgiy8p594x0v45bsvf0k9z94nnvvfcpi8lyq5fwvh82b0h";
+       version = "1.0.4";
+       sha256 = "022sadxhnywbzx8crwkgky7kndxwpaddc89nq3ya4a4ikq3qvbhm";
+       revision = "1";
+       editedCabalFile = "130ign0n566nsrzfp4ipb2sy5hq1ymxdlmqb80zbpdc0rdkqh0x0";
        libraryHaskellDepends = [ base bytestring cereal ];
        testHaskellDepends = [
          base base16-bytestring bytestring HUnit QuickCheck test-framework
          test-framework-hunit test-framework-quickcheck2
        ];
        description = "Pure Haskell implementation of the MurmurHash3 x86_32 algorithm";
-       license = stdenv.lib.licenses.publicDomain;
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "murmurhash3" = callPackage
@@ -172740,25 +176574,26 @@ 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.2";
-       sha256 = "0xfjjmmf0w72x15dliaad00yi9x67xn4jfkijzdr310ppwr7j5bd";
+       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 ];
-       description = "Supply your tunes info without leaving your music player.";
+       description = "Supply your tunes info without leaving your music player";
        license = stdenv.lib.licenses.gpl3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -172806,8 +176641,8 @@ self: {
      }:
      mkDerivation {
        pname = "musicw";
-       version = "0.3.2";
-       sha256 = "1r4fp9bda4hn8alv5w95m0a1qp513zkq9a90fjipw1m6lr21xacw";
+       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
@@ -172930,17 +176765,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
@@ -172989,17 +176824,17 @@ self: {
      }) {};
 
   "mutable-lens" = callPackage
-    ({ mkDerivation, base, checkers, doctest, lens, primitive, stm
-     , tasty, tasty-hunit, tasty-quickcheck
+    ({ mkDerivation, base, containers, doctest, lens, primitive, stm
+     , tasty, tasty-hunit, transformers
      }:
      mkDerivation {
        pname = "mutable-lens";
-       version = "0.1.0.0";
-       sha256 = "12biaarl37n953bzq7rndfy49s70jmxhvraf4pm1zxgyz2skwgdc";
+       version = "0.4.0.0";
+       sha256 = "14mywx7lh3yw8gfqy8h2hml2vr3vjfnxnvfvcg37kfskkfyaf6lm";
        libraryHaskellDepends = [ base lens primitive stm ];
        testHaskellDepends = [
-         base checkers doctest lens primitive stm tasty tasty-hunit
-         tasty-quickcheck
+         base containers doctest lens primitive stm tasty tasty-hunit
+         transformers
        ];
        description = "Interoperate mutable references with regular lens";
        license = stdenv.lib.licenses.asl20;
@@ -173095,29 +176930,13 @@ self: {
      }:
      mkDerivation {
        pname = "mwc-probability";
-       version = "2.2.0";
-       sha256 = "11zfchdsipfik1vrrx53d8h1j6b8lzrndwnnyvcnz1dqlz0dgqdz";
-       libraryHaskellDepends = [
-         base containers mwc-random primitive transformers
-       ];
-       description = "Sampling function-based probability distributions";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "mwc-probability_2_3_0" = callPackage
-    ({ mkDerivation, base, containers, mwc-random, primitive
-     , transformers
-     }:
-     mkDerivation {
-       pname = "mwc-probability";
-       version = "2.3.0";
-       sha256 = "1rk5n015a24bv49m2qnc66iv5hcw99zk9zflqv99pxxbpia6kiyj";
+       version = "2.3.1";
+       sha256 = "15gpvx1rhr24zvj6pfgyy9g2vnhgym5crmz4py3nly2jcmy9k39z";
        libraryHaskellDepends = [
          base containers mwc-random primitive transformers
        ];
        description = "Sampling function-based probability distributions";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "mwc-probability-transition" = callPackage
@@ -173153,6 +176972,31 @@ 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 {
@@ -173666,17 +177510,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 ];
@@ -173988,6 +177835,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 {
@@ -174458,10 +178345,8 @@ self: {
      }:
      mkDerivation {
        pname = "natural";
-       version = "0.3.0.4";
-       sha256 = "0c5z5msb2nx648m07cjv9hwaycdhcwis9ac6n7qbyvhxsis84jlg";
-       revision = "1";
-       editedCabalFile = "1jn15nmrnkdwi1k76n5ghlazx3lqhacy5cxpkbqa8ypmwpx3i7jn";
+       version = "0.3.0.5";
+       sha256 = "0w137fa7qy70zi0a2r38bbczpyiafvqf2x7y91r3h0g1ajk9zfys";
        libraryHaskellDepends = [ base lens semigroupoids ];
        testHaskellDepends = [
          base checkers hedgehog lens QuickCheck tasty tasty-hedgehog
@@ -174545,8 +178430,8 @@ self: {
        pname = "natural-transformation";
        version = "0.4";
        sha256 = "1by8xwjc23l6pa9l4iv7zp82dykpll3vc3hgxk0pgva724n8xhma";
-       revision = "7";
-       editedCabalFile = "03nkhdrwki9j81clgfck4yl7ylv6dwa7gi77kknzq3s3nqlp728v";
+       revision = "8";
+       editedCabalFile = "007vgw2zaf2z9fyi9f0spmqn6fd8j438r3vnkgmazzvb43szmi0n";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base containers quickcheck-instances tasty tasty-quickcheck
@@ -174697,15 +178582,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "neat-interpolation_0_5_1" = callPackage
+  "neat-interpolation_0_5_1_1" = 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.1";
+       sha256 = "1bjl2k3b42kqwq15fsnjxxcadsch5dck9cwf8zvnh4gkyfmkbbx4";
        libraryHaskellDepends = [ base megaparsec template-haskell text ];
        testHaskellDepends = [
          QuickCheck quickcheck-instances rerebase tasty tasty-hunit
@@ -175081,8 +178966,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-mqtt";
-       version = "0.6.2.3";
-       sha256 = "1z7lwlp8wjmy384ranzl2n8gv80ckgsg9h50qmr45l9zshcbdr8j";
+       version = "0.7.0.1";
+       sha256 = "0gfym6fv92afbv1b126bnviw3qh4m9dim9q046kbh4h5sxah61ab";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -175105,14 +178990,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "net-mqtt-lens" = callPackage
+    ({ mkDerivation, base, HUnit, lens, net-mqtt, tasty, tasty-hunit
+     , tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "net-mqtt-lens";
+       version = "0.1.0.0";
+       sha256 = "1g0vvay4fdvr2n0hxi4w4av39wd70jgi3yixfx98xxydilw1v110";
+       libraryHaskellDepends = [ base lens net-mqtt ];
+       testHaskellDepends = [
+         base HUnit lens net-mqtt tasty tasty-hunit tasty-quickcheck
+       ];
+       description = "Optics for net-mqtt";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "net-mqtt-rpc" = callPackage
     ({ mkDerivation, base, bytestring, exceptions, net-mqtt
      , network-uri, optparse-applicative, random, stm, text, uuid
      }:
      mkDerivation {
        pname = "net-mqtt-rpc";
-       version = "0.1.2.0";
-       sha256 = "035ry63b432gy487bx9fsb7b9ql75a70ss74lrd7aby5iw8nhibl";
+       version = "0.1.2.1";
+       sha256 = "01qkix666jh7yvm0gl195brjbi8yw06nnp86iksahvch2bnsz9ax";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -175135,8 +179036,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-spider";
-       version = "0.4.3.1";
-       sha256 = "0r0l078ljhvpacay1pwql4zccwpj8646zdzdz0gazh0yj2zs8g01";
+       version = "0.4.3.4";
+       sha256 = "1whn8hkwbqx76vn1550j9fjkjhj7fxp295dcsv5jl25cvxpj5rml";
        libraryHaskellDepends = [
          aeson base containers data-interval extended-reals greskell
          greskell-websocket hashable monad-logger regex-applicative
@@ -175159,8 +179060,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-spider-cli";
-       version = "0.2.0.1";
-       sha256 = "06lzicfgqslnvm9vpw412d00p2mxjmxx3j2694mcgpqr57s3mhlc";
+       version = "0.2.0.4";
+       sha256 = "0g9p1l3pyd8c43fj1h4c29n44257n4awlsqb4g821a62s4mjypwf";
        libraryHaskellDepends = [
          aeson base greskell-core hashable net-spider optparse-applicative
          text
@@ -175180,8 +179081,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-spider-pangraph";
-       version = "0.2.0.1";
-       sha256 = "0n19hlyzb2r9kkkw1ivaify0msjv4iq69rv14cdak8x50dmvn4wq";
+       version = "0.2.0.2";
+       sha256 = "1i7prpj85mbmwqdhfi8q2lxk89a2vv3n4r886sq2nygka0pw0azc";
        libraryHaskellDepends = [
          base bytestring greskell net-spider pangraph text time
        ];
@@ -175201,8 +179102,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-spider-rpl";
-       version = "0.4.1.1";
-       sha256 = "09iwz5yrzcfb5rmlhskhzilyqbvf1al8j8qv7ag5jn6kq3pgipw3";
+       version = "0.4.1.3";
+       sha256 = "0sflq9sg4xnfgfbx2iikvkzrs44kb11s6v23h3q3zwy1kdxakhr8";
        libraryHaskellDepends = [
          aeson base conduit conduit-parse greskell hashable ip monad-logger
          mtl net-spider regex-applicative safe-exceptions text time
@@ -175225,8 +179126,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-spider-rpl-cli";
-       version = "0.1.3.1";
-       sha256 = "0y1bagnlazd7pj240ka1lf970qclf569qbsdxas27pj1pi91jb0r";
+       version = "0.1.3.2";
+       sha256 = "1nqhrfbii58rhh19nxhr9zaqm3pd0yvlshwdwl50xrw7hr0jjxfc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -175260,6 +179161,20 @@ self: {
        broken = true;
      }) {};
 
+  "netcode-io" = callPackage
+    ({ mkDerivation, base, bindings-DSL, libsodium }:
+     mkDerivation {
+       pname = "netcode-io";
+       version = "0.0.2";
+       sha256 = "0n66y9cxvljhsz4izbqlrxns5yv32lh6dnqs4ngr1bk5ms9wjps4";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base bindings-DSL ];
+       librarySystemDepends = [ libsodium ];
+       description = "Bindings to the low-level netcode.io library.";
+       license = stdenv.lib.licenses.bsd3;
+     }) {inherit (pkgs) libsodium;};
+
   "netcore" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, bimap, binary, binary-strict
      , bytestring, containers, fgl, HList, hslogger, HUnit, mtl
@@ -175451,8 +179366,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
@@ -175571,7 +179486,7 @@ self: {
        libraryHaskellDepends = [
          base containers directory filepath mtl nettle-openflow unix
        ];
-       description = "DSL for describing OpenFlow networks, and a compiler generating NetKit labs.";
+       description = "DSL for describing OpenFlow networks, and a compiler generating NetKit labs";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -175589,7 +179504,7 @@ self: {
          array base bimap binary binary-strict bytestring containers HList
          mtl network parsec syb
        ];
-       description = "OpenFlow protocol messages, binary formats, and servers.";
+       description = "OpenFlow protocol messages, binary formats, and servers";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -175728,6 +179643,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
@@ -175934,8 +179869,8 @@ self: {
     ({ mkDerivation, base, bytestring, doctest }:
      mkDerivation {
        pname = "network-byte-order";
-       version = "0.1.4.0";
-       sha256 = "1wm59kdvxcjhsl1y1ajmj8w8nq6qdvin6933n374za39lhkb13f9";
+       version = "0.1.5";
+       sha256 = "0480asy7acf1bdc4n0761rax7dijbkjkyrqfl9rdwqvmbr3viy6c";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [ base bytestring doctest ];
        description = "Network byte order utilities";
@@ -176395,8 +180330,8 @@ self: {
     ({ mkDerivation, base, bytestring, network }:
      mkDerivation {
        pname = "network-run";
-       version = "0.2.2";
-       sha256 = "1znf2pafcg1gcrb3yyc69h6y5mb8hilibr5khcwil09i5djsjyxx";
+       version = "0.2.4";
+       sha256 = "0w3dmwk03j4n01xkiq8m4sqa27bskh239mpw7m4ihjmkxqcwc5gl";
        libraryHaskellDepends = [ base bytestring network ];
        description = "Simple network runner library";
        license = stdenv.lib.licenses.bsd3;
@@ -176941,40 +180876,56 @@ self: {
      }) {inherit (pkgs) blas;};
 
   "neuron" = callPackage
-    ({ mkDerivation, aeson, algebraic-graphs, base, clay, containers
-     , dhall, directory, exceptions, file-embed, filepath, filepattern
-     , foldl, gitrev, hspec, lucid, mmark, mmark-ext, modern-uri
-     , optparse-applicative, pandoc, path, path-io, QuickCheck, relude
-     , rib, shake, text, time, unix, which, with-utf8
+    ({ mkDerivation, 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
      }:
      mkDerivation {
        pname = "neuron";
-       version = "0.2.0.0";
-       sha256 = "0f58yas3wmi2rv33lsxrj68yq3vvx8wl8gz5p93fd94zk7xgd46q";
+       version = "0.6.0.0";
+       sha256 = "1gqkypmlhv9hl0d3afjllv9a1ld0dw9qxnk9v1qlmgz65g22b6nr";
        isLibrary = true;
        isExecutable = true;
+       enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson algebraic-graphs base clay containers dhall directory
-         exceptions file-embed filepath filepattern foldl gitrev lucid mmark
-         mmark-ext modern-uri optparse-applicative pandoc path path-io
-         relude rib shake text time unix which
+         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 algebraic-graphs base clay containers dhall directory
-         exceptions file-embed filepath filepattern foldl gitrev lucid mmark
-         mmark-ext modern-uri optparse-applicative pandoc path path-io
-         relude rib shake text time unix 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 algebraic-graphs base clay containers dhall directory
-         exceptions file-embed filepath filepattern foldl gitrev hspec lucid
-         mmark mmark-ext modern-uri optparse-applicative pandoc path path-io
-         QuickCheck relude rib shake text time unix which
+         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;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
+       description = "Future-proof system for plain-text notes";
+       license = stdenv.lib.licenses.agpl3;
+       maintainers = with stdenv.lib.maintainers; [ maralorn ];
      }) {};
 
   "newhope" = callPackage
@@ -177117,6 +181068,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;
@@ -177333,21 +181286,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;
@@ -177550,7 +181503,7 @@ self: {
        revision = "1";
        editedCabalFile = "08hgvqbb13n2scs4shqjdyzm7kblgllndk0429pdiwdx21k5391q";
        libraryHaskellDepends = [ base bytestring http-conduit xml ];
-       description = "Haskell interface to the nist random beacon.";
+       description = "Haskell interface to the nist random beacon";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -177576,8 +181529,8 @@ self: {
      }:
      mkDerivation {
        pname = "niv";
-       version = "0.2.13";
-       sha256 = "11znn37j15gzwg6nh6z4k5ijxyyc7gbirnrwlhh4b8868d9axjfy";
+       version = "0.2.16";
+       sha256 = "0z2wws28nl7xd5fbc5za287y8ryvfrgha4qh7aahr3x1j9sywpyg";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -177650,8 +181603,8 @@ self: {
      }:
      mkDerivation {
        pname = "nix-derivation";
-       version = "1.1.0";
-       sha256 = "09r1818j838a6mzgsqsvf7a98l3h0v7vqrnmimvycaaxri3rxmhz";
+       version = "1.1.1";
+       sha256 = "1jcgq7c0x6q33ddq3ns4w69z23r31cvb2qxj04v2pyd5v8rwls9d";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -177664,6 +181617,7 @@ self: {
        benchmarkHaskellDepends = [ attoparsec base criterion text ];
        description = "Parse and render *.drv files";
        license = stdenv.lib.licenses.bsd3;
+       maintainers = with stdenv.lib.maintainers; [ sorki ];
      }) {};
 
   "nix-diff" = callPackage
@@ -177737,8 +181691,8 @@ self: {
      }:
      mkDerivation {
        pname = "nix-narinfo";
-       version = "0.1.0.0";
-       sha256 = "1jv7bwjfp2b2c63gfnlznmc1r4bnf6mvlkngcipvyhnxr0mwpxfy";
+       version = "0.1.0.1";
+       sha256 = "0bw5whywbhcj18y733wqq5cgci4yijrz648sby8r3qihn8man3ch";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ attoparsec base containers text ];
@@ -177748,8 +181702,7 @@ self: {
        ];
        description = "Parse and render .narinfo files";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
+       maintainers = with stdenv.lib.maintainers; [ sorki ];
      }) {};
 
   "nix-paths" = callPackage
@@ -177797,6 +181750,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.0.0";
+       sha256 = "0agj882mfnr53jlpn1cnds31b78qw3a13md1ap6jj2rnxs2zjcai";
+       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
@@ -178138,6 +182132,48 @@ 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
+     , hspec, hspec-discover, QuickCheck, syb, template-haskell
+     , TypeCompose, Unique
+     }:
+     mkDerivation {
+       pname = "nom";
+       version = "0.1.0.2";
+       sha256 = "18vgasg9szc88pa61gw6qpasx6l9jx0z9lm36xa96j4ml4vr3ddf";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         algebra base containers data-default extra finite-typelits flow
+         QuickCheck syb TypeCompose Unique
+       ];
+       testHaskellDepends = [
+         base base-compat data-default doctest hspec QuickCheck
+         template-haskell
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Name-binding & alpha-equivalence";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "nominal" = callPackage
     ({ mkDerivation, base, containers }:
      mkDerivation {
@@ -178403,17 +182439,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.0";
+       sha256 = "1np8gypq49j90clavh17wzxp9y6z23lngal815jsg4p35qc0h01l";
        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
@@ -178441,18 +182477,14 @@ self: {
 
   "nonempty-vector" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, deepseq, doctest
-     , primitive, semigroups, vector
+     , primitive, vector
      }:
      mkDerivation {
        pname = "nonempty-vector";
-       version = "0.2.0.1";
-       sha256 = "0qiwl58d5bvack33djhwqkblwk541w63a3hjqc7mik54y3j40s71";
-       revision = "1";
-       editedCabalFile = "1bkba3fbhf6bccqprlrz32hjfdhdg9gnlyhpqah0jw51hlj1ahsg";
+       version = "0.2.0.2";
+       sha256 = "1w7nmjqlrrymgpainzm7fx4fc6jfl45j7rx73xfcwjsdxl0fl3c2";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [
-         base deepseq primitive semigroups vector
-       ];
+       libraryHaskellDepends = [ base deepseq primitive vector ];
        testHaskellDepends = [ base doctest ];
        description = "Non-empty vectors";
        license = stdenv.lib.licenses.bsd3;
@@ -178563,8 +182595,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
        ];
@@ -178656,7 +182688,7 @@ self: {
        version = "0.1.1";
        sha256 = "1mm1j0l3h8qxpk0bis4g1f6zp5407rkq2z5ldyr036frbvfwqaj5";
        libraryHaskellDepends = [ base ];
-       description = "Useful utility functions that only depend on base.";
+       description = "Useful utility functions that only depend on base";
        license = "unknown";
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
@@ -178908,8 +182940,8 @@ self: {
      }:
      mkDerivation {
        pname = "nqe";
-       version = "0.6.1";
-       sha256 = "1l0dydhcqmgf6bamy29sgry8sjirvw3khzjkhpjlb12zl2y75xxd";
+       version = "0.6.3";
+       sha256 = "0wg9cfzgj36dj77m521pqcliqd43i3j6i1bvqgvb8npmzqijag7q";
        libraryHaskellDepends = [
          base conduit containers hashable mtl stm unique unliftio
        ];
@@ -178918,7 +182950,7 @@ self: {
          stm-conduit text unliftio
        ];
        description = "Concurrency library in the style of Erlang/OTP";
-       license = stdenv.lib.licenses.publicDomain;
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "nsis" = callPackage
@@ -179310,8 +183342,8 @@ self: {
      }:
      mkDerivation {
        pname = "numeric-prelude";
-       version = "0.4.3.1";
-       sha256 = "0531yjw1rzbv3snv1lc955350frgf8526slsxbx3ias71krbdr69";
+       version = "0.4.3.2";
+       sha256 = "1vd777ax2yvxknfxp9isgjk7cabjv3q86dgf3hybv78hc4ji5gmq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -179426,22 +183458,34 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "numhask_0_6_0_2" = callPackage
+    ({ mkDerivation, base, bifunctors, mmorph, protolude, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "numhask";
+       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;
+     }) {};
+
   "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.5.1";
-       sha256 = "1nrk6j4kw0l09b8f7k3sx47ri6i1vy5qygl9zbhhdz8z75s0fzn8";
+       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;
@@ -179454,8 +183498,8 @@ self: {
      }:
      mkDerivation {
        pname = "numhask-hedgehog";
-       version = "0.3.2";
-       sha256 = "1cfvkq5v88d8zhkj8bgn18hmlg52nsprvrmyan9ndxppyzljphan";
+       version = "0.4.0";
+       sha256 = "1h09mnabmvknlj568hhsnwdlqg7rwvwsc1vnmw2y500266x6gvg3";
        libraryHaskellDepends = [
          base hedgehog numhask numhask-prelude numhask-space
        ];
@@ -179488,8 +183532,8 @@ self: {
     ({ mkDerivation, base, doctest, numhask, protolude }:
      mkDerivation {
        pname = "numhask-prelude";
-       version = "0.3.3";
-       sha256 = "0r9qf3yrm0lf1jhiyhvgsfc8zyfsllc8xmjwdqx2vsn9vy15p7aw";
+       version = "0.5.0";
+       sha256 = "19g4jlnif6pz8giyygin8p1s5i0qzwjlr43qy6y8dv4j5dp5qri2";
        libraryHaskellDepends = [ base numhask protolude ];
        testHaskellDepends = [ doctest ];
        description = "A numeric prelude";
@@ -179522,17 +183566,17 @@ self: {
 
   "numhask-space" = callPackage
     ({ mkDerivation, adjunctions, base, containers, distributive
-     , doctest, foldl, lattices, semigroupoids, tdigest, text, time
+     , doctest, numhask, semigroupoids, tdigest, text, time
      }:
      mkDerivation {
        pname = "numhask-space";
-       version = "0.3.1";
-       sha256 = "0phvn46cnf2ffia703k3lsxv32n8mzcjx1szm9qic1nd6k8wrnv7";
+       version = "0.6.0";
+       sha256 = "0zm64spljv7pvl68b60y7hr46fa82i44j7yk8q6i33nhr78qv7wy";
        libraryHaskellDepends = [
-         adjunctions base containers distributive foldl lattices
-         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;
@@ -179654,8 +183698,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
@@ -179677,6 +183721,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
@@ -179700,6 +183746,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
@@ -179720,6 +183768,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
@@ -179839,6 +183889,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
@@ -180333,45 +184405,48 @@ self: {
   "odd-jobs" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers
      , direct-daemonize, directory, either, fast-logger, filepath
-     , foreign-store, friendly-time, hedgehog, hostname, lifted-async
-     , lifted-base, lucid, mmorph, monad-control, monad-logger, mtl
-     , optparse-applicative, postgresql-simple, random, resource-pool
-     , safe, servant, servant-lucid, servant-server, string-conv, tasty
+     , foreign-store, friendly-time, generic-deriving, hedgehog
+     , hostname, lifted-async, lifted-base, lucid, mmorph, monad-control
+     , monad-logger, mtl, optparse-applicative, postgresql-simple
+     , random, resource-pool, safe, servant, servant-lucid
+     , servant-server, servant-static-th, string-conv, tasty
      , tasty-discover, tasty-hedgehog, tasty-hunit, text
      , text-conversions, time, timing-convenience, unix, unliftio
-     , unliftio-core, unordered-containers, warp
+     , unliftio-core, unordered-containers, wai, warp
      }:
      mkDerivation {
        pname = "odd-jobs";
-       version = "0.1.0";
-       sha256 = "0l1b63j76a8rbhligj7s282bzrw2dgb7jv8cki1a7ss0v58k3c4s";
+       version = "0.2.2";
+       sha256 = "1l6nyyn27yjn2gkd6yvdxi5iai5af96srkxia24npl5rna2cngfp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base bytestring direct-daemonize directory either fast-logger
-         filepath friendly-time hostname lucid monad-control monad-logger
-         mtl optparse-applicative postgresql-simple resource-pool safe
-         servant servant-lucid servant-server string-conv text
-         text-conversions time timing-convenience unix unliftio
-         unliftio-core unordered-containers warp
+         filepath friendly-time generic-deriving hostname lucid
+         monad-control monad-logger mtl optparse-applicative
+         postgresql-simple resource-pool safe servant servant-lucid
+         servant-server servant-static-th string-conv text text-conversions
+         time timing-convenience unix unliftio unliftio-core
+         unordered-containers wai warp
        ];
        executableHaskellDepends = [
          aeson base bytestring direct-daemonize directory either fast-logger
-         filepath foreign-store friendly-time hostname lucid monad-control
-         monad-logger mtl optparse-applicative postgresql-simple
-         resource-pool safe servant servant-lucid servant-server string-conv
-         text text-conversions time timing-convenience unix unliftio
-         unliftio-core unordered-containers warp
+         filepath foreign-store friendly-time generic-deriving hostname
+         lucid monad-control monad-logger mtl optparse-applicative
+         postgresql-simple resource-pool safe servant servant-lucid
+         servant-server servant-static-th string-conv text text-conversions
+         time timing-convenience unix unliftio unliftio-core
+         unordered-containers wai warp
        ];
        testHaskellDepends = [
          aeson base bytestring containers direct-daemonize directory either
-         fast-logger filepath friendly-time hedgehog hostname lifted-async
-         lifted-base lucid mmorph monad-control monad-logger mtl
-         optparse-applicative postgresql-simple random resource-pool safe
-         servant servant-lucid servant-server string-conv tasty
-         tasty-discover tasty-hedgehog tasty-hunit text text-conversions
-         time timing-convenience unix unliftio unliftio-core
-         unordered-containers warp
+         fast-logger filepath friendly-time generic-deriving hedgehog
+         hostname lifted-async lifted-base lucid mmorph monad-control
+         monad-logger mtl optparse-applicative postgresql-simple random
+         resource-pool safe servant servant-lucid servant-server
+         servant-static-th string-conv tasty tasty-discover tasty-hedgehog
+         tasty-hunit text text-conversions time timing-convenience unix
+         unliftio unliftio-core unordered-containers wai warp
        ];
        testToolDepends = [ tasty-discover ];
        description = "A full-featured PostgreSQL-backed job queue (with an admin UI)";
@@ -180440,8 +184515,8 @@ self: {
      }:
      mkDerivation {
        pname = "oeis2";
-       version = "1.0.3";
-       sha256 = "04dbly6ggadmy1bi10x9bbsa6dvynb5g1m5hdrlzv3mpyfahxvwp";
+       version = "1.0.4";
+       sha256 = "1parmfwdxrmvzz81dy8mb9ry4bbp1bvsqsr593zld7hnfx6cvlh9";
        libraryHaskellDepends = [
          aeson base containers http-conduit lens lens-aeson text vector
        ];
@@ -180697,6 +184772,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
@@ -180965,19 +185057,25 @@ self: {
      }) {};
 
   "online" = callPackage
-    ({ mkDerivation, 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.4.0.0";
-       sha256 = "1vb9x90qzmqjydxjcn06gz5lfikwrx73jkkhmqdd5vxmzzj36spz";
+       version = "0.6.0";
+       sha256 = "1yr3jq4gpjmgfd9q95n3b0g9ib2xjccc56m8mxlzsjxhnqc149jy";
        libraryHaskellDepends = [
-         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
@@ -181074,8 +185172,8 @@ self: {
      }:
      mkDerivation {
        pname = "opaleye";
-       version = "0.6.7004.2";
-       sha256 = "0lmfpbrfy6l7nlkjn26smmv3n992b54xnplwm67jjpryaz7psdz1";
+       version = "0.6.7006.1";
+       sha256 = "0qg42qdk6gcziwfvjsjbwyj629grna2ay4pmh8myy3d1rznp6s93";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring case-insensitive
          contravariant postgresql-simple pretty product-profunctors
@@ -181083,9 +185181,9 @@ 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";
@@ -181372,6 +185470,42 @@ self: {
        broken = true;
      }) {};
 
+  "openapi3-code-generator" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, directory
+     , filepath, genvalidity, genvalidity-hspec, genvalidity-text
+     , hashmap, hspec, http-client, http-conduit, http-types, mtl
+     , options, QuickCheck, scientific, split, template-haskell, text
+     , time, transformers, unordered-containers, validity, validity-text
+     , vector, yaml
+     }:
+     mkDerivation {
+       pname = "openapi3-code-generator";
+       version = "0.1.0.6";
+       sha256 = "1nf7m27m5l56ms45lldbbqcwz3rcdw5jr3kk7si280h3153yhayc";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers hashmap http-client http-conduit
+         http-types mtl options scientific split template-haskell text time
+         transformers unordered-containers vector yaml
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring containers directory filepath hashmap
+         http-client http-conduit http-types mtl options scientific split
+         template-haskell text time transformers unordered-containers vector
+         yaml
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers genvalidity genvalidity-hspec
+         genvalidity-text hashmap hspec http-client http-conduit http-types
+         mtl options QuickCheck scientific split template-haskell text time
+         transformers unordered-containers validity validity-text vector
+         yaml
+       ];
+       description = "OpenAPI3 Haskell Client Code Generator";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "opench-meteo" = callPackage
     ({ mkDerivation, aeson, base, data-default, text, time }:
      mkDerivation {
@@ -181836,33 +185970,26 @@ self: {
      }) {};
 
   "opentelemetry" = callPackage
-    ({ mkDerivation, async, attoparsec, base, bytestring, clock
-     , exceptions, hashable, random, tasty, tasty-discover, tasty-hunit
-     , tasty-quickcheck, text, unordered-containers
-     }:
+    ({ mkDerivation, base, bytestring, exceptions }:
      mkDerivation {
        pname = "opentelemetry";
-       version = "0.0.0.2";
-       sha256 = "15x7swbr18xks8a9xf1hjwibgqxsjigcyrahbnk72p1n1gxkarjr";
-       libraryHaskellDepends = [
-         attoparsec base bytestring clock exceptions hashable random text
-         unordered-containers
-       ];
-       testHaskellDepends = [
-         async base bytestring tasty tasty-discover tasty-hunit
-         tasty-quickcheck
-       ];
-       testToolDepends = [ tasty-discover ];
+       version = "0.4.2";
+       sha256 = "12myg932dpf6zz38ahf9dmx449dkp9kf9pi79j8bdlz4v2fl3jzj";
+       libraryHaskellDepends = [ base bytestring exceptions ];
        license = stdenv.lib.licenses.asl20;
      }) {};
 
-  "opentelemetry_0_3_2" = callPackage
-    ({ mkDerivation, base, bytestring, exceptions }:
+  "opentelemetry_0_6_0" = callPackage
+    ({ mkDerivation, base, bytestring, exceptions, ghc-trace-events
+     , hashable
+     }:
      mkDerivation {
        pname = "opentelemetry";
-       version = "0.3.2";
-       sha256 = "0km45i5zv6v977ivv0rh7273nsnlqlwci79r5qnr9lhxwy8c0xsv";
-       libraryHaskellDepends = [ base bytestring exceptions ];
+       version = "0.6.0";
+       sha256 = "0gl3xax7gz89fc12lyw468qhailgja06skj6siscq9pip03gj6ck";
+       libraryHaskellDepends = [
+         base bytestring exceptions ghc-trace-events hashable
+       ];
        license = stdenv.lib.licenses.asl20;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
@@ -181870,31 +185997,72 @@ self: {
   "opentelemetry-extra" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, clock, containers
      , directory, exceptions, filepath, ghc-events, hashable
-     , http-client, http-client-tls, http-types, opentelemetry, random
-     , scientific, splitmix, stm, tasty, tasty-discover, tasty-hunit
-     , tasty-quickcheck, text, unordered-containers
+     , http-client, http-client-tls, http-types, opentelemetry
+     , optparse-applicative, process, QuickCheck, random, scientific
+     , splitmix, stm, tasty, tasty-discover, tasty-hunit
+     , tasty-quickcheck, text, text-show, typed-process
+     , unordered-containers
      }:
      mkDerivation {
        pname = "opentelemetry-extra";
-       version = "0.3.2";
-       sha256 = "1kkzi5cxv1mdb1i22bzrhr2vq4xb3kkkqs8smc6dps3pqswbxpyg";
+       version = "0.4.2";
+       sha256 = "1qr2pz08n7kqx5jcyxhfwrsqlw7lbkkjbrm0fdj5mxykwznqidb8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson async base bytestring clock containers directory exceptions
          filepath ghc-events hashable http-client http-client-tls http-types
-         opentelemetry random scientific splitmix stm text
+         opentelemetry random scientific splitmix stm text text-show
          unordered-containers
        ];
        executableHaskellDepends = [
          async base clock exceptions filepath http-client http-client-tls
-         opentelemetry text
+         opentelemetry optparse-applicative process text typed-process
        ];
        testHaskellDepends = [
-         base bytestring opentelemetry tasty tasty-discover tasty-hunit
-         tasty-quickcheck
+         base bytestring ghc-events hashable opentelemetry QuickCheck tasty
+         tasty-discover tasty-hunit tasty-quickcheck text text-show
+         unordered-containers
+       ];
+       testToolDepends = [ tasty-discover ];
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "opentelemetry-extra_0_6_0" = 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.0";
+       sha256 = "025fsryqzv0cfny1myrhs4bdrdg8sfp86rvxf671sbl8nli48x1a";
+       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;
@@ -181919,12 +186087,13 @@ self: {
     ({ 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, unordered-containers
+     , scientific, splitmix, stm, text, typed-process
+     , unordered-containers
      }:
      mkDerivation {
        pname = "opentelemetry-lightstep";
-       version = "0.3.2";
-       sha256 = "0zpp17dgblx8gl6xlban5gcs2y8qfy39k8c3spaif4gbw9qc21yv";
+       version = "0.4.2";
+       sha256 = "1srzm9d4sc9rgfgq2yyfn5avs9n8bjx9mhz124dhkn3j361sr5g2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -181935,7 +186104,35 @@ self: {
        executableHaskellDepends = [
          async base bytestring clock containers exceptions filepath
          ghc-events http-client http-types opentelemetry opentelemetry-extra
-         splitmix text unordered-containers
+         splitmix text typed-process unordered-containers
+       ];
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "opentelemetry-lightstep_0_6_0" = 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.0";
+       sha256 = "09xqda7hxx4dn85hs2zh7y3jjxvi7xprcpv8mmam38hzyhjw2rv7";
+       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;
@@ -181948,8 +186145,24 @@ self: {
      }:
      mkDerivation {
        pname = "opentelemetry-wai";
-       version = "0.3.2";
-       sha256 = "0l10bwrzpsn74l9xk6sdbdpjf49kf4ak9s3z95ib56vrhs0nrkz0";
+       version = "0.4.2";
+       sha256 = "01jim0634pzf49l18s7512y7a3dkjpif492k6a5j81jg1nylkm1a";
+       libraryHaskellDepends = [
+         base bytestring http-types opentelemetry text wai
+       ];
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "opentelemetry-wai_0_6_0" = callPackage
+    ({ mkDerivation, base, bytestring, http-types, opentelemetry, text
+     , wai
+     }:
+     mkDerivation {
+       pname = "opentelemetry-wai";
+       version = "0.6.0";
+       sha256 = "1bqq1fs7krckx43w2j4pvfncbyy60rrh6w8n1pcvb629dary5lwn";
        libraryHaskellDepends = [
          base bytestring http-types opentelemetry text wai
        ];
@@ -182213,20 +186426,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;
@@ -182319,25 +186534,25 @@ self: {
 
   "opml-conduit" = callPackage
     ({ mkDerivation, base, bytestring, case-insensitive, conduit
-     , conduit-combinators, containers, data-default, lens-simple
-     , monoid-subclasses, mtl, parsers, QuickCheck, quickcheck-instances
-     , refined, resourcet, safe-exceptions, semigroups, tasty
-     , tasty-hunit, tasty-quickcheck, text, time, timerep
-     , uri-bytestring, xml-conduit, xml-types
+     , conduit-combinators, containers, data-default, microlens
+     , microlens-th, monoid-subclasses, mtl, parsers, QuickCheck
+     , quickcheck-instances, refined, resourcet, safe-exceptions
+     , semigroups, tasty, tasty-hunit, tasty-quickcheck, text, time
+     , timerep, uri-bytestring, xml-conduit, xml-types
      }:
      mkDerivation {
        pname = "opml-conduit";
-       version = "0.7.0.0";
-       sha256 = "126w0fcvx59812001dypfhfzd0mglj0dccdi2k25mzf27vdwfwpf";
+       version = "0.9.0.0";
+       sha256 = "012cnq24dhsiz6dfm23i1kac2pya50x2gj42cvcdhr8navz7czcb";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base case-insensitive conduit conduit-combinators containers
-         lens-simple monoid-subclasses refined safe-exceptions semigroups
-         text time timerep uri-bytestring xml-conduit xml-types
+         microlens microlens-th monoid-subclasses refined safe-exceptions
+         semigroups text time timerep uri-bytestring xml-conduit xml-types
        ];
        testHaskellDepends = [
          base bytestring conduit conduit-combinators containers data-default
-         lens-simple mtl parsers QuickCheck quickcheck-instances refined
+         microlens mtl parsers QuickCheck quickcheck-instances refined
          resourcet semigroups tasty tasty-hunit tasty-quickcheck text time
          uri-bytestring xml-conduit
        ];
@@ -182439,14 +186654,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
        ];
@@ -182507,14 +186722,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
@@ -182562,8 +186777,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
@@ -182743,6 +186958,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
@@ -182765,8 +186997,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;
@@ -182804,6 +187036,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "optparse-generic_1_4_3" = callPackage
+    ({ mkDerivation, base, bytestring, Only, optparse-applicative
+     , system-filepath, text, time, transformers, void
+     }:
+     mkDerivation {
+       pname = "optparse-generic";
+       version = "1.4.3";
+       sha256 = "18ih1r28hlml9wysqrzljmgi6q90s3k6jaaa7a5i48vr9bl3prs8";
+       libraryHaskellDepends = [
+         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;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "optparse-helper" = callPackage
     ({ mkDerivation, base, optparse-applicative }:
      mkDerivation {
@@ -182837,6 +187086,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "optparse-simple_0_1_1_3" = callPackage
+    ({ mkDerivation, base, bytestring, directory, githash
+     , optparse-applicative, template-haskell, transformers
+     }:
+     mkDerivation {
+       pname = "optparse-simple";
+       version = "0.1.1.3";
+       sha256 = "1wymqhac2sngkka8w880gq6y1kk3xs0flbv4mrhfgzrplhax8r9k";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base githash optparse-applicative template-haskell transformers
+       ];
+       testHaskellDepends = [ base bytestring directory ];
+       description = "Simple interface to optparse-applicative";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "optparse-text" = callPackage
     ({ mkDerivation, base, hspec, optparse-applicative, text }:
      mkDerivation {
@@ -182859,6 +187127,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "orbits" = callPackage
+    ({ mkDerivation, ad, base, Cabal, cabal-doctest, checkers, doctest
+     , exact-real, QuickCheck, random, tagged, tasty, tasty-quickcheck
+     , tasty-th, units, units-defs
+     }:
+     mkDerivation {
+       pname = "orbits";
+       version = "0.3";
+       sha256 = "1hidsx5is68mi13l3yhvfidk9l1a4mcyj52im1bzqdp916ik05k1";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [ ad base exact-real units units-defs ];
+       testHaskellDepends = [
+         ad base checkers doctest exact-real QuickCheck random tagged tasty
+         tasty-quickcheck tasty-th units units-defs
+       ];
+       description = "Types and functions for Kepler orbits";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "orc" = callPackage
     ({ mkDerivation, base, deepseq, monadIO, mtl, process, random, stm
      }:
@@ -183112,8 +187401,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
        ];
@@ -183287,17 +187576,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.0.3.1";
-       sha256 = "0pvnswbxi09fddnn012sha3fbmm30yzlzh2x1asw9ahjk3a3bdlg";
-       revision = "1";
-       editedCabalFile = "1prm2lip6w9fg8gaywdnxqcf2bcikcmnb2gi46nma3dfniipzbnq";
+       version = "0.0.5.0";
+       sha256 = "1sf22silpj89sldd7wanlr34nsv77bq0cf4i0q1x2r20pz7s4w4m";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -183314,17 +187601,20 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A formatter for Haskell source code";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "ormolu_0_0_5_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
      }:
      mkDerivation {
        pname = "ormolu";
-       version = "0.0.5.0";
-       sha256 = "1sf22silpj89sldd7wanlr34nsv77bq0cf4i0q1x2r20pz7s4w4m";
+       version = "0.1.2.0";
+       sha256 = "14ndqfcbx0y71d3q5i7d0scbvg9nd5qr5pdn7qvylxlkgpbc77qp";
+       revision = "2";
+       editedCabalFile = "07p7342972b2ffi46ll8jgbnlx97g7imzpl819hzc0yd2pjn4jn9";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -183341,21 +187631,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;
@@ -183766,27 +188058,13 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "packcheck";
-       version = "0.4.2";
-       sha256 = "0za6ravq945g9gdm6sbxqklnkg56saap0kjg5ra42dabd1ma4iys";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base ];
-       benchmarkHaskellDepends = [ base ];
-       description = "Universal build and CI testing for Haskell packages";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "packcheck_0_5_0" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "packcheck";
-       version = "0.5.0";
-       sha256 = "1ch6q58sxzv6dld8dwpkcd7wkakh3swnv6sgsvw9ri8zgygpn4ck";
+       version = "0.5.1";
+       sha256 = "05hwcmg67vicrig7syfxkpbsaqfjzlik4jq8ijz2gdkh7v3czrvr";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        benchmarkHaskellDepends = [ base ];
        description = "Universal build and CI testing for Haskell packages";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "packdeps" = callPackage
@@ -183796,8 +188074,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 = [
@@ -183805,7 +188085,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;
@@ -183854,7 +188134,7 @@ self: {
          base binary criterion deepseq mtl unordered-containers vector
          vector-binary-instances
        ];
-       description = "Generation and traversal of highly compressed directed acyclic word graphs.";
+       description = "Generation and traversal of highly compressed directed acyclic word graphs";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -184222,8 +188502,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 ];
@@ -184276,60 +188556,6 @@ self: {
      }) {};
 
   "pandoc" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, attoparsec, base
-     , base64-bytestring, binary, blaze-html, blaze-markup, bytestring
-     , case-insensitive, cmark-gfm, 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, vector, weigh, xml, zip-archive, zlib
-     }:
-     mkDerivation {
-       pname = "pandoc";
-       version = "2.9.1.1";
-       sha256 = "0vc1ld57nv27gwq4mq0wdal8k2wxvsc0f3m2jwq9nkq7wbpwa8cx";
-       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 cmark-gfm
-         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 vector xml zip-archive zlib
-       ];
-       executableHaskellDepends = [ base ];
-       testHaskellDepends = [
-         base base64-bytestring bytestring containers Diff directory
-         doctemplates 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.gpl2;
-       maintainers = with stdenv.lib.maintainers; [ peti ];
-     }) {};
-
-  "pandoc_2_9_2_1" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base-compat
      , base-noprelude, base64-bytestring, binary, blaze-html
      , blaze-markup, bytestring, case-insensitive, cmark-gfm, containers
@@ -184383,6 +188609,63 @@ self: {
        '';
        description = "Conversion between markup formats";
        license = stdenv.lib.licenses.gpl2;
+       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;
        hydraPlatforms = stdenv.lib.platforms.none;
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
@@ -184397,8 +188680,10 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-citeproc";
-       version = "0.16.4.1";
-       sha256 = "1jbd6g82sn3546kimm0p6n7spfqr3b4dssjkr5v679jwb5w6hwmx";
+       version = "0.17.0.1";
+       sha256 = "0hi31h4jxamnyw0jsbwnbzy9gkp3a03mhsgwy9w73hi13lywxrgk";
+       revision = "1";
+       editedCabalFile = "0z1gnaagylsjx8f1i49bp4zhcx2hlkc3w9wkwzsvvjq0qcfgzis0";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -184422,7 +188707,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "pandoc-citeproc_0_17" = 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
@@ -184432,8 +188717,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-citeproc";
-       version = "0.17";
-       sha256 = "1cgmv8zdiqcbls7c6rqdd154z5r90p9wxrdy6nwmxma8qfmfgaa7";
+       version = "0.17.0.2";
+       sha256 = "1wp16zz740klyn5jr8qxn21zf1waym3pzzv5l6k08w2l6z54d20b";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -184464,8 +188749,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-citeproc-preamble";
-       version = "1.3";
-       sha256 = "1lnsklvqvi9569wxdkyk2qwc33mm5d3n28xj64847i8g9af2jqs9";
+       version = "1.6";
+       sha256 = "0xx2l0xjx0baaqmdnk29knxxhwfix1wrg7zysvgilf33zsvdc5a8";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -184484,8 +188769,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-crossref";
-       version = "0.3.6.2";
-       sha256 = "055dfbirs3n99crzg9bfnxs96bsfzz6hqjj743dkrvjqmq1qlqc5";
+       version = "0.3.7.0";
+       sha256 = "1mw5bcl0z1vps4xz72pznr1b9ag1g9sxhm2f51wm3236z9q28za6";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -184509,6 +188794,8 @@ self: {
        ];
        description = "Pandoc filter for cross-references";
        license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "pandoc-csv2table" = callPackage
@@ -184746,31 +189033,38 @@ self: {
      }) {};
 
   "pandoc-plot" = callPackage
-    ({ mkDerivation, base, containers, data-default-class, deepseq
-     , directory, filepath, hashable, hspec, hspec-expectations, mtl
-     , open-browser, optparse-applicative, pandoc, pandoc-types
-     , parallel-io, shakespeare, tasty, tasty-hspec, tasty-hunit
-     , template-haskell, temporary, text, turtle, typed-process, yaml
+    ({ mkDerivation, async, base, bytestring, containers, criterion
+     , data-default-class, deepseq, directory, filepath, githash
+     , hashable, hspec, hspec-expectations, mtl, open-browser
+     , optparse-applicative, pandoc, pandoc-types, shakespeare, tasty
+     , tasty-hspec, tasty-hunit, template-haskell, temporary, text
+     , turtle, typed-process, yaml
      }:
      mkDerivation {
        pname = "pandoc-plot";
-       version = "0.2.2.0";
-       sha256 = "15xs3rrqc7hygmmiylfykdqhqsr7giqdhw3hmmnff8s8k708qv33";
+       version = "0.6.1.0";
+       sha256 = "0jyhb1ab6h990r159a3gdw0cbxxvjrjsd35yyca5bd5rqxzlvnay";
+       revision = "1";
+       editedCabalFile = "1kn5k6xrjs1gh273hc8zrp85w8g72g3rz79v5n4qk33n0pg6ydvw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base containers data-default-class directory filepath hashable mtl
-         pandoc pandoc-types parallel-io shakespeare temporary text turtle
-         typed-process yaml
+         async base bytestring containers data-default-class directory
+         filepath hashable mtl pandoc pandoc-types shakespeare temporary
+         text turtle typed-process yaml
        ];
        executableHaskellDepends = [
-         base data-default-class deepseq directory filepath open-browser
+         base deepseq directory filepath githash open-browser
          optparse-applicative pandoc pandoc-types template-haskell temporary
          text
        ];
        testHaskellDepends = [
-         base data-default-class directory filepath hspec hspec-expectations
-         mtl pandoc-types tasty tasty-hspec tasty-hunit temporary text
+         base containers data-default-class directory filepath hspec
+         hspec-expectations mtl pandoc-types tasty tasty-hspec tasty-hunit
+         temporary text
+       ];
+       benchmarkHaskellDepends = [
+         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;
@@ -184778,35 +189072,37 @@ self: {
        broken = true;
      }) {};
 
-  "pandoc-plot_0_3_0_0" = callPackage
-    ({ mkDerivation, base, containers, data-default-class, deepseq
-     , directory, filepath, hashable, hspec, hspec-expectations, mtl
-     , open-browser, optparse-applicative, pandoc, pandoc-types
-     , parallel-io, shakespeare, tasty, tasty-hspec, tasty-hunit
-     , template-haskell, temporary, text, turtle, typed-process, yaml
+  "pandoc-plot_0_9_1_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.3.0.0";
-       sha256 = "143kr0s4p155apnspjjkv3xc7ffm6vl4bvifyr8rl72yk0lx81ac";
+       version = "0.9.1.0";
+       sha256 = "0vfcn0h5x9jsf3jjriqd6wfa9cpi7icz4k8pkqmhjz5sgs2yv7i4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base containers data-default-class directory filepath hashable mtl
-         pandoc pandoc-types parallel-io shakespeare temporary text turtle
+         base bytestring containers data-default directory filepath hashable
+         lifted-async mtl pandoc pandoc-types shakespeare tagsoup text
          typed-process yaml
        ];
        executableHaskellDepends = [
-         base data-default-class deepseq directory filepath open-browser
-         optparse-applicative pandoc pandoc-types template-haskell temporary
-         text
+         base containers directory filepath githash optparse-applicative
+         pandoc pandoc-types template-haskell text typed-process
        ];
        testHaskellDepends = [
-         base data-default-class directory filepath hspec hspec-expectations
-         mtl pandoc-types tasty tasty-hspec tasty-hunit temporary text
+         base containers directory filepath hspec hspec-expectations
+         pandoc-types tasty tasty-hspec tasty-hunit text
+       ];
+       benchmarkHaskellDepends = [
+         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;
      }) {};
@@ -184886,6 +189182,31 @@ 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
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers HUnit QuickCheck string-qq syb
+         test-framework test-framework-hunit test-framework-quickcheck2 text
+       ];
+       benchmarkHaskellDepends = [ base criterion text ];
+       description = "Types for representing a structured document";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "pandoc-types_1_21" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, criterion
+     , deepseq, ghc-prim, HUnit, QuickCheck, string-qq, syb
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     , text, transformers
+     }:
+     mkDerivation {
+       pname = "pandoc-types";
+       version = "1.21";
+       sha256 = "1wbb0hhjiw0b66kj1ck3qipwgdac5v7qvjaqszsz5fll3cqp4sna";
        libraryHaskellDepends = [
          aeson base bytestring containers deepseq ghc-prim QuickCheck syb
          text transformers
@@ -184897,6 +189218,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion text ];
        description = "Types for representing a structured document";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pandoc-unlit" = callPackage
@@ -184914,6 +189236,23 @@ self: {
        broken = true;
      }) {};
 
+  "pandoc-utils" = callPackage
+    ({ mkDerivation, base, containers, data-default, pandoc
+     , pandoc-types, tasty, tasty-hspec, text, transformers
+     }:
+     mkDerivation {
+       pname = "pandoc-utils";
+       version = "0.7.1";
+       sha256 = "1951zgn6bgkg4xpnz76g93y3hxxx0v1jav5gr0m84gb6nadjg17m";
+       libraryHaskellDepends = [ base pandoc-types text ];
+       testHaskellDepends = [
+         base containers data-default pandoc pandoc-types tasty tasty-hspec
+         text transformers
+       ];
+       description = "Utility functions to work with Pandoc in Haskell applications";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "pandoc-vimhl" = callPackage
     ({ mkDerivation, base, cond, directory, filepath, pandoc-types
      , process, regex-compat, temporary, text
@@ -184936,8 +189275,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "pandora";
-       version = "0.2.7";
-       sha256 = "1fagym17jg4df445d8jr2lc52rx9irmnz7kv4g236py311z7bmbq";
+       version = "0.2.9";
+       sha256 = "0gl5h4krn2aigxfqppa4fr8vir2s5xrh8s363frh82fgdxblhjgc";
        description = "A box of patterns and paradigms";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -184970,8 +189309,8 @@ self: {
      }:
      mkDerivation {
        pname = "pango";
-       version = "0.13.8.0";
-       sha256 = "1skyfj0phd5hzpk86lj7qx0g6n09b1cfijlf759p7v34f47g6w2s";
+       version = "0.13.8.1";
+       sha256 = "0by8ada93srgapdg78n8hyk5xsqb7n54mjacvplwwsbrd1b7m9j0";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal filepath gtk2hs-buildtools ];
        libraryHaskellDepends = [
@@ -185155,8 +189494,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
@@ -185182,7 +189521,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "pantry_0_5_0_0" = callPackage
+  "pantry_0_5_1_1" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, Cabal
      , casa-client, casa-types, conduit, conduit-extra, containers
      , cryptonite, cryptonite-conduit, digest, exceptions, filelock
@@ -185196,8 +189535,8 @@ self: {
      }:
      mkDerivation {
        pname = "pantry";
-       version = "0.5.0.0";
-       sha256 = "1v5nnmrg62phnwym8cw6bjld8impdmrkq9cwxmyrab48gjwds41l";
+       version = "0.5.1.1";
+       sha256 = "1q1q8jflhd5r70czsclkj27yqk4v8b1njdw8f4qb3xvf9c3gzl70";
        libraryHaskellDepends = [
          aeson ansi-terminal base bytestring Cabal casa-client casa-types
          conduit conduit-extra containers cryptonite cryptonite-conduit
@@ -185735,6 +190074,8 @@ self: {
        ];
        description = "ParDual class for Parallel <-> Sequential";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "par-traverse" = callPackage
@@ -185893,8 +190234,8 @@ self: {
      }:
      mkDerivation {
        pname = "parameterized-utils";
-       version = "2.0.2";
-       sha256 = "0xmml1jzxv7921dc5n3ppw8yf5vn58c19c95kcy8zaqn86vmj1iz";
+       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
@@ -185905,6 +190246,8 @@ self: {
        ];
        description = "Classes and data structures for working with data-kind indexed types";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "paramtree" = callPackage
@@ -186074,6 +190417,30 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "paripari_0_7_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, parser-combinators, random
+     , tasty, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "paripari";
+       version = "0.7.0.0";
+       sha256 = "0c5vgnzgmqcrcsaw1l5fy0lh20ns22ych8ydkq7yzb8wr3y4nvr5";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring parser-combinators text
+       ];
+       executableHaskellDepends = [
+         base bytestring parser-combinators text
+       ];
+       testHaskellDepends = [
+         base bytestring parser-combinators random tasty tasty-hunit text
+       ];
+       description = "Parser combinators with fast-path and slower fallback for error reporting";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "parport" = callPackage
     ({ mkDerivation, array, base }:
      mkDerivation {
@@ -186123,6 +190490,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
@@ -186402,8 +190788,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "parsek";
-       version = "1.0.1.3";
-       sha256 = "184cbw9gz3vv2jbr2wzkygv25y70jayxd8d76pgpvjcaps4qqxp7";
+       version = "1.0.2.0";
+       sha256 = "05hi14wn6pzhknahyvjkw4cg9qfy20krig2pkx00r4s095zmpqza";
        libraryHaskellDepends = [ base ];
        description = "Parallel Parsing Processes";
        license = stdenv.lib.licenses.gpl3;
@@ -186714,8 +191100,8 @@ self: {
     ({ mkDerivation, base, doctest, hedgehog }:
      mkDerivation {
        pname = "partial-semigroup";
-       version = "0.5.1.4";
-       sha256 = "1szzggr0j52cn6n7j288kh5rma6g8vpjr4dwfmwrhz2jsn4ag9hh";
+       version = "0.5.1.8";
+       sha256 = "1lxvgz0z04fkd67lnva902j8y5qxp6naga7gfnnazwafsb0s9kww";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base doctest hedgehog ];
        description = "A partial binary associative operator";
@@ -186728,8 +191114,8 @@ self: {
     ({ mkDerivation, base, hedgehog, partial-semigroup }:
      mkDerivation {
        pname = "partial-semigroup-hedgehog";
-       version = "0.6.0.4";
-       sha256 = "0ijmaj8zkcqikm2jr749n8pqcbf2g05bqpdmvljd1q18vydwxx6q";
+       version = "0.6.0.6";
+       sha256 = "0n0j8xlrz66mzkvrsa083b9057n3rgbir7pwqxqycwzgj18g68s6";
        libraryHaskellDepends = [ base hedgehog partial-semigroup ];
        description = "Property testing for partial semigroups using Hedgehog";
        license = stdenv.lib.licenses.asl20;
@@ -186882,23 +191268,6 @@ self: {
      }) {};
 
   "password" = callPackage
-    ({ mkDerivation, base, bytestring, doctest, QuickCheck
-     , quickcheck-instances, scrypt, tasty, tasty-quickcheck, text
-     }:
-     mkDerivation {
-       pname = "password";
-       version = "1.0.0.0";
-       sha256 = "08igga8jd7g0lnakmn8lq7ssyqwkknp0lbnlhbq4qwin9n8pzl0c";
-       libraryHaskellDepends = [ base scrypt text ];
-       testHaskellDepends = [
-         base bytestring doctest QuickCheck quickcheck-instances scrypt
-         tasty tasty-quickcheck text
-       ];
-       description = "plain-text password and hashed password datatypes and functions";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "password_2_0_0_1" = callPackage
     ({ mkDerivation, base, base-compat, base64, bytestring, Cabal
      , cabal-doctest, cryptonite, doctest, memory, QuickCheck
      , quickcheck-instances, scrypt, tasty, tasty-quickcheck
@@ -186906,8 +191275,10 @@ self: {
      }:
      mkDerivation {
        pname = "password";
-       version = "2.0.0.1";
-       sha256 = "1qxmmp0r8pkp6334213qai5y3wcg7w0jw9qp3m66mxaspjnfkpmw";
+       version = "2.0.1.1";
+       sha256 = "1fi39w79p7jaw85i5r8f4flw7s1n2ljxj5ci9gda6a556015w1p8";
+       revision = "1";
+       editedCabalFile = "1r27scxmkmvw8nbcg4x3k10ibq4qhrmpwgnqbnz32g1fvw7mlxg3";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base base64 bytestring cryptonite memory text
@@ -186919,28 +191290,9 @@ self: {
        ];
        description = "Hashing and checking of passwords";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "password-instances" = callPackage
-    ({ mkDerivation, aeson, base, doctest, http-api-data, password
-     , persistent, QuickCheck, quickcheck-instances
-     }:
-     mkDerivation {
-       pname = "password-instances";
-       version = "1.0.0.0";
-       sha256 = "0i87ij207i4zvmgji457dimhpmy8hs7ddwpqr86riyscdvzvml91";
-       libraryHaskellDepends = [
-         aeson base http-api-data password persistent
-       ];
-       testHaskellDepends = [
-         base doctest QuickCheck quickcheck-instances
-       ];
-       description = "typeclass instances for password package";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "password-instances_2_0_0_1" = callPackage
     ({ mkDerivation, aeson, base, base-compat, Cabal, cabal-doctest
      , doctest, http-api-data, password, persistent, QuickCheck
      , quickcheck-instances, tasty, tasty-hunit, tasty-quickcheck
@@ -186961,7 +191313,6 @@ self: {
        ];
        description = "typeclass instances for password package";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "passwords" = callPackage
@@ -187033,8 +191384,8 @@ self: {
      }:
      mkDerivation {
        pname = "patat";
-       version = "0.8.4.3";
-       sha256 = "1zz007l9ap9qlhgwr7jjavr6h5r1cnr9wflyxpvjmdzmn6ch74w4";
+       version = "0.8.5.0";
+       sha256 = "1b4g5m32dv7905q51p4f23c9d4sfy5jvwbq7wgwsa2mwl8hf5cds";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -187071,8 +191422,6 @@ self: {
        testHaskellDepends = [ base directory filemanip filepath hlint ];
        description = "Infrastructure for writing patches which act on other types";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "patch-combinators" = callPackage
@@ -187157,6 +191506,51 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "path_0_8_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, deepseq, exceptions
+     , filepath, genvalidity, genvalidity-hspec, genvalidity-property
+     , hashable, hspec, mtl, QuickCheck, template-haskell, text
+     , validity
+     }:
+     mkDerivation {
+       pname = "path";
+       version = "0.8.0";
+       sha256 = "0vzsa41q5sxs1ni72yv1vfpnc6r5mjdwnmdb6jrs6cszb2xlkjr4";
+       libraryHaskellDepends = [
+         aeson base deepseq exceptions filepath hashable template-haskell
+         text
+       ];
+       testHaskellDepends = [
+         aeson base bytestring filepath genvalidity genvalidity-hspec
+         genvalidity-property hspec mtl QuickCheck template-haskell validity
+       ];
+       description = "Support for well-typed paths";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "path-binary-instance" = callPackage
+    ({ mkDerivation, base, binary, path }:
+     mkDerivation {
+       pname = "path-binary-instance";
+       version = "0.1.0.0";
+       sha256 = "1mrmp58s7f88hyq493h39c1f19r92yh2qw1diml61iwhm765j7ir";
+       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.1.0";
+       sha256 = "0pvjb26arsj892addi9x26v8naislh87x6av70k8fjnsish3pnj5";
+       libraryHaskellDepends = [ base exceptions path ];
+       description = "Enumeration of common filetype extensions for use with the path library";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "path-extra" = callPackage
     ({ mkDerivation, attoparsec, base, path, QuickCheck
      , quickcheck-instances, tasty, tasty-quickcheck, text
@@ -187182,8 +191576,8 @@ self: {
        pname = "path-io";
        version = "1.6.0";
        sha256 = "0hcdxxwkhdhm59p6x74k1fsgsrqfa100c83cslm1h9ln0anj1r3k";
-       revision = "1";
-       editedCabalFile = "1kwrkpmwmar8nwaar02m3kfy24vl3kzm0m3iq0d4ryd84a6a0dax";
+       revision = "3";
+       editedCabalFile = "0rd7svl3jxzqnf8l2h4f7xwlv8av67y85bwmr40954disq714l74";
        libraryHaskellDepends = [
          base containers directory dlist exceptions filepath path temporary
          time transformers unix-compat
@@ -187196,6 +191590,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "path-like" = callPackage
+    ({ mkDerivation, base, path }:
+     mkDerivation {
+       pname = "path-like";
+       version = "0.2.0.1";
+       sha256 = "03d5kqs6xr22dl7gjydi1nlzy13wsc0dkmd93pwf37yp85y4bxrp";
+       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 {
@@ -187215,8 +191620,8 @@ self: {
     ({ mkDerivation, base, bytestring, path, safe-exceptions, text }:
      mkDerivation {
        pname = "path-text-utf8";
-       version = "0.0.1.4";
-       sha256 = "1nc9favrfr5xxk45rq77zf574m79p5qv3lrngl8yfxdzhbi4q8ld";
+       version = "0.0.1.6";
+       sha256 = "0zlmmfjzjgnhscy8852gi67hq8xl9j05c53faf599cqa6c71ry11";
        libraryHaskellDepends = [
          base bytestring path safe-exceptions text
        ];
@@ -187276,8 +191681,8 @@ self: {
        pname = "paths";
        version = "0.2.0.0";
        sha256 = "18pzjlnmx7w79riig7qzyhw13jla92lals9lwayl23qr02ndna4v";
-       revision = "2";
-       editedCabalFile = "0r5nm9qqqa4nkz6aymhh62lfmmkjip25a4lk441a108i1ngkjl5m";
+       revision = "3";
+       editedCabalFile = "15h5fqql4jj950lm5yddpxczcbslckq9sg2ygdgqlmahjw8mwnnf";
        libraryHaskellDepends = [
          base bytestring deepseq directory filepath template-haskell text
          time
@@ -187292,8 +191697,8 @@ self: {
      }:
      mkDerivation {
        pname = "pathtype";
-       version = "0.8.1";
-       sha256 = "03rlj8klzxqimjv44h07xbij0acr63pddxppq9yfjlyggmaxrrnm";
+       version = "0.8.1.1";
+       sha256 = "0322q8wd4mbp7q0cgym6mf2dxg2srp76r38kprxl9ik53s3y3p67";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -187387,10 +191792,8 @@ self: {
      }:
      mkDerivation {
        pname = "pattern-trie";
-       version = "0.1.0";
-       sha256 = "1ldy1b81sryngf4rlfsw3f2qw0cirjnbvddvw98wrl2m50wzdmlg";
-       revision = "1";
-       editedCabalFile = "1v9f28gpns5v646hdzn7xfimq2v0sx3rws56r7lfh1qgcfdavy9f";
+       version = "0.1.1";
+       sha256 = "1iyy500rdmfvw0n2k7v27w21i6hqk4hrmnxf7kq52s7g2mwl72di";
        libraryHaskellDepends = [
          base bytestring containers deepseq hashable text
          unordered-containers
@@ -187426,6 +191829,22 @@ self: {
        broken = true;
      }) {};
 
+  "pava" = callPackage
+    ({ mkDerivation, base, criterion, hspec, hspec-discover, mwc-random
+     , vector
+     }:
+     mkDerivation {
+       pname = "pava";
+       version = "0.1.0.0";
+       sha256 = "0pi8pgfha113064fxl9vmd72drxxlj6zld4fqrf3y2qwhyikka5v";
+       libraryHaskellDepends = [ base vector ];
+       testHaskellDepends = [ base hspec hspec-discover vector ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [ base criterion mwc-random vector ];
+       description = "Greatest convex majorants and least concave minorants";
+       license = stdenv.lib.licenses.gpl3Plus;
+     }) {};
+
   "paymill" = callPackage
     ({ mkDerivation, base, hspec }:
      mkDerivation {
@@ -188016,6 +192435,29 @@ self: {
        broken = true;
      }) {};
 
+  "pdftotext" = callPackage
+    ({ mkDerivation, aeson, ansi-wl-pprint, base, bytestring, hspec
+     , hspec-discover, optparse-applicative, poppler-cpp, range, text
+     }:
+     mkDerivation {
+       pname = "pdftotext";
+       version = "0.1.0.0";
+       sha256 = "01zdcggm5p52j7bwimfhk5x5mjnbpz4iz8g5jq3lnnc3ddd0ab6y";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base bytestring text ];
+       libraryPkgconfigDepends = [ poppler-cpp ];
+       executableHaskellDepends = [
+         aeson ansi-wl-pprint base optparse-applicative range text
+       ];
+       testHaskellDepends = [ base hspec text ];
+       testToolDepends = [ hspec-discover ];
+       description = "Extracts text from PDF using poppler";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {poppler-cpp = null;};
+
   "pdynload" = callPackage
     ({ mkDerivation, base, directory, filepath, ghc, ghc-paths
      , old-time, process
@@ -188263,17 +192705,18 @@ self: {
 
   "penntreebank-megaparsec" = callPackage
     ({ mkDerivation, base, containers, hspec, hspec-discover
-     , megaparsec, mtl, text, transformers
+     , megaparsec, mtl, template-haskell, text, transformers
      }:
      mkDerivation {
        pname = "penntreebank-megaparsec";
-       version = "0.1.0";
-       sha256 = "1wjwwpb1i10kasqxn9gkn34cpyjs83znmr6ps5sjr0zhqyg3dk3j";
+       version = "0.2.0";
+       sha256 = "1238y2wya0ryas58n0b0l4gjmsrzl0dwns0f4gx5m8q6aq4d33c9";
        libraryHaskellDepends = [
-         base containers megaparsec mtl transformers
+         base containers megaparsec mtl template-haskell transformers
        ];
        testHaskellDepends = [
-         base containers hspec megaparsec mtl text transformers
+         base containers hspec megaparsec mtl template-haskell text
+         transformers
        ];
        testToolDepends = [ hspec-discover ];
        description = "Parser combinators for trees in the Penn Treebank format";
@@ -188403,6 +192846,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 {
@@ -188437,6 +192899,8 @@ self: {
        pname = "perceptual-hash";
        version = "0.1.3.5";
        sha256 = "0f36sy9ixwbx55m3634lr0hrhllj68wv5jilzq0xik2171g3rx2p";
+       revision = "1";
+       editedCabalFile = "0s67w3sc480vrmdjr67y6gjyhfik6v2lrh99abcgj6ikgiwx2lbf";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -188507,12 +192971,12 @@ self: {
      }:
      mkDerivation {
        pname = "perf";
-       version = "0.5.0.0";
-       sha256 = "1qbsk523xq27fww7bzd6zcj117630sji9szw3g3d75pbw4x5i5nl";
+       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;
@@ -188520,22 +192984,22 @@ self: {
      }) {};
 
   "perf-analysis" = callPackage
-    ({ mkDerivation, base, containers, deepseq, formatting
-     , optparse-generic, perf, protolude, readme-lhs, scientific
-     , tdigest, text, vector
+    ({ mkDerivation, base, containers, deepseq, optparse-generic, perf
+     , protolude, readme-lhs, scientific, tdigest, text, text-format
+     , vector
      }:
      mkDerivation {
        pname = "perf-analysis";
-       version = "0.2.0.0";
-       sha256 = "1dnanink5j2dhqh91dmvrw42n7b1cfrbwglp7yikabwg9888nmax";
+       version = "0.3.0";
+       sha256 = "1c591c5i732ld3giip56b9rccgrfjlrnnx6zrxfmg33anhyjwsi6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base formatting perf protolude readme-lhs scientific tdigest text
+         base perf protolude readme-lhs scientific tdigest text text-format
        ];
        executableHaskellDepends = [
-         base containers deepseq formatting optparse-generic perf protolude
-         readme-lhs text vector
+         base containers deepseq optparse-generic perf protolude readme-lhs
+         text vector
        ];
        description = "analysis example using perf";
        license = stdenv.lib.licenses.bsd3;
@@ -188580,8 +193044,8 @@ self: {
        pname = "perfect-vector-shuffle";
        version = "0.1.1.1";
        sha256 = "1z4iv4sv9ld0gvdfa46ll5bsbxi9lckh69paip1c5ijcg78vy5y0";
-       revision = "3";
-       editedCabalFile = "1qqfab4jm304wcqgng2fmbwsckhyfyimkbwldc6nisxp7sfp2pz0";
+       revision = "4";
+       editedCabalFile = "14q0773vxmkh4nwskiq85ch175jq12xms2lypaddglciykqs6ml6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -188680,6 +193144,103 @@ 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 {
+       pname = "periodic-polynomials";
+       version = "0.2.0.0";
+       sha256 = "1y7hj8cjdy5zpp7sg7yfaafcid7ssf23g4az6fwk2hrcrk97sf2i";
+       libraryHaskellDepends = [ base vector ];
+       description = "A library for working with periodic polynomials (very basic functionality)";
+       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
@@ -188758,8 +193319,8 @@ self: {
      }:
      mkDerivation {
        pname = "persist";
-       version = "0.1.1.4";
-       sha256 = "0g15l5fqzw30hsrc58hmgz5vbw8bfbgin7gi2dwahc98k8i0gxd4";
+       version = "0.1.1.5";
+       sha256 = "19s0jpbcas6c64lzl9plhp1b3qk89g3jrqhj2ljxvkzk81dbr2r3";
        libraryHaskellDepends = [ base bytestring containers text ];
        testHaskellDepends = [
          base bytestring QuickCheck test-framework
@@ -188769,6 +193330,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "persist-state" = callPackage
+    ({ mkDerivation, base, bytestring, containers, ghc-prim, QuickCheck
+     , test-framework, test-framework-quickcheck2, text
+     }:
+     mkDerivation {
+       pname = "persist-state";
+       version = "0.2.0.0";
+       sha256 = "1jmrba3nmd9qvvgmm1zz0qrhikzjdcg6rc38f4q3gq6yw4rap4kj";
+       libraryHaskellDepends = [
+         base bytestring containers ghc-prim text
+       ];
+       testHaskellDepends = [
+         base bytestring QuickCheck test-framework
+         test-framework-quickcheck2 text
+       ];
+       description = "Serialization library with state and leb128 encoding";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "persist2er" = callPackage
     ({ mkDerivation, base, optparse-applicative, persistent, text }:
      mkDerivation {
@@ -188789,24 +193369,6 @@ self: {
   "persistable-record" = callPackage
     ({ mkDerivation, array, base, containers, dlist, names-th
      , product-isomorphic, quickcheck-simple, template-haskell
-     , th-data-compat, transformers
-     }:
-     mkDerivation {
-       pname = "persistable-record";
-       version = "0.6.0.4";
-       sha256 = "1ygqllybclw9mm0n05vh635wbz6qlsl2yhas3fxr3xhwsrrvwfkd";
-       libraryHaskellDepends = [
-         array base containers dlist names-th product-isomorphic
-         template-haskell th-data-compat transformers
-       ];
-       testHaskellDepends = [ base quickcheck-simple ];
-       description = "Binding between SQL database values and haskell records";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "persistable-record_0_6_0_5" = callPackage
-    ({ mkDerivation, array, base, containers, dlist, names-th
-     , product-isomorphic, quickcheck-simple, template-haskell
      , th-bang-compat, th-constraint-compat, th-data-compat
      , transformers
      }:
@@ -188822,7 +193384,6 @@ self: {
        testHaskellDepends = [ base quickcheck-simple ];
        description = "Binding between SQL database values and haskell records";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "persistable-types-HDBC-pg" = callPackage
@@ -189328,7 +193889,7 @@ self: {
        version = "0.3.0.0";
        sha256 = "05h7wlw82ljjic50qhzlldhidz344id1fpf0yaxrhqvx7wkgyi2m";
        libraryHaskellDepends = [ base time yesod ];
-       description = "A library for rate limiting activities with a persistent backend.";
+       description = "A library for rate limiting activities with a persistent backend";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -189509,7 +194070,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
@@ -189518,8 +194079,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
@@ -189932,6 +194493,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 {
@@ -190453,10 +195028,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;
@@ -190723,6 +195296,8 @@ self: {
        pname = "pinch";
        version = "0.3.5.0";
        sha256 = "0bw7pfywa9qr6mrs340znqgzhg9yy8brh6v833wvk87sxjs8psdv";
+       revision = "1";
+       editedCabalFile = "1pl6cymb93lpjqsll87y7avwrw2w5k237gyyhqr05yfcsrjky8rp";
        libraryHaskellDepends = [
          array base bytestring containers deepseq ghc-prim hashable
          semigroups text unordered-containers vector
@@ -190760,20 +195335,24 @@ self: {
      }) {};
 
   "pine" = callPackage
-    ({ mkDerivation, base, containers, sdl2, sdl2-image, stm, text }:
+    ({ mkDerivation, base, containers, linear, mtl, sdl2, sdl2-image
+     , stm, text
+     }:
      mkDerivation {
        pname = "pine";
-       version = "0.1.0.2";
-       sha256 = "0896l27g1cmrvkq2b1bdy7sfr6z0jg2pk1mvhwr1n3f0gwgiy36i";
+       version = "0.1.0.3";
+       sha256 = "08m5d4wvqbkw9db0v79yrhqv9pcncl6x6zpix1861lqbw613i4iw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base containers sdl2 sdl2-image stm text
+         base containers linear mtl sdl2 sdl2-image stm text
        ];
        executableHaskellDepends = [
-         base containers sdl2 sdl2-image stm text
+         base containers linear mtl sdl2 sdl2-image stm text
+       ];
+       testHaskellDepends = [
+         base containers linear mtl sdl2 sdl2-image stm text
        ];
-       testHaskellDepends = [ base containers sdl2 sdl2-image stm text ];
        description = "Functional 2D Game Framework";
        license = stdenv.lib.licenses.zlib;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -190943,15 +195522,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
@@ -191501,8 +196080,8 @@ self: {
        pname = "pipes-group";
        version = "1.0.12";
        sha256 = "1issfj3syi6lfbcdn3bhlbnlh86s92ldsb04c4ac69xipsgyhwqk";
-       revision = "2";
-       editedCabalFile = "1y7fh0vc6iknyxizp5hrgkkjzp2hl3ygjyxgsq6b9kh74h2hbbrp";
+       revision = "3";
+       editedCabalFile = "1mqqwv9w65c59lv97k9185rw8dvfcm4bk5n4z18hhgsrcjyr76n9";
        libraryHaskellDepends = [
          base free pipes pipes-parse transformers
        ];
@@ -191519,6 +196098,8 @@ self: {
        pname = "pipes-http";
        version = "1.0.6";
        sha256 = "00579dpb7mh8nli5gfr100w0mrn6nvqhbj50qzxc2m5cvw4gncd2";
+       revision = "1";
+       editedCabalFile = "1xaqygyzm0i7fg24mipngg4j258yqsrnp0wjgkl16syqsn387h8c";
        libraryHaskellDepends = [
          base bytestring http-client http-client-tls pipes
        ];
@@ -191549,6 +196130,8 @@ self: {
        pname = "pipes-interleave";
        version = "1.1.3";
        sha256 = "05g8kl88f55pxb3926fa81qd0a2lc1xdzv36jmm67sc68prr71za";
+       revision = "1";
+       editedCabalFile = "06vg9vlczmmlpvqnnwn12kyb9c741y50hl8ky0vvdlkwlb90zncq";
        libraryHaskellDepends = [ base containers heaps pipes ];
        description = "Interleave and merge streams of elements";
        license = stdenv.lib.licenses.bsd3;
@@ -191631,18 +196214,16 @@ self: {
      }) {};
 
   "pipes-lzma" = callPackage
-    ({ mkDerivation, base, bytestring, lzma, pipes, pipes-bytestring
-     , QuickCheck
+    ({ mkDerivation, base, bytestring, exceptions, lzma, pipes
+     , pipes-bytestring, QuickCheck
      }:
      mkDerivation {
        pname = "pipes-lzma";
-       version = "0.1.1.2";
-       sha256 = "0wx23wf1vr8d2nyapxgmpn1jk53hjbla1xss714vkmar7am37vrc";
-       revision = "1";
-       editedCabalFile = "13nyh3qqv3baifya0vwnnqh1yvr3k2yjrhjq7apigq0s584iyrka";
+       version = "0.2.0.0";
+       sha256 = "1b1xnjq1bvp14rl0lvzfxkckvwsihmq0j61wbmx1k0vqjy2b350m";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base bytestring lzma pipes ];
+       libraryHaskellDepends = [ base bytestring exceptions lzma pipes ];
        executableHaskellDepends = [ base pipes pipes-bytestring ];
        testHaskellDepends = [
          base bytestring pipes pipes-bytestring QuickCheck
@@ -192655,6 +197236,8 @@ self: {
        ];
        description = "run a subprocess, combining stdout and stderr";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "plist" = callPackage
@@ -192909,6 +197492,8 @@ self: {
        pname = "plots";
        version = "0.1.1.2";
        sha256 = "01w56qhyw8w6g8xffrvkp7d6k8l4w9as8v900v29jaq7gz680fhs";
+       revision = "1";
+       editedCabalFile = "1qipj4sf4rfpzbqyiwqsq822n27r7ksqyg8qw9zc4l6zcgq5bsa1";
        libraryHaskellDepends = [
          adjunctions base base-orphans colour containers data-default
          diagrams-core diagrams-lib directory distributive filepath
@@ -193062,23 +197647,18 @@ self: {
 
   "plzwrk" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, hashable
-     , haskell-src-meta, hspec, mtl, neat-interpolation, parsec, split
-     , template-haskell, text, transformers, unordered-containers
+     , haskell-src-meta, hspec, mtl, parsec, split, template-haskell
+     , text, transformers, unordered-containers
      }:
      mkDerivation {
        pname = "plzwrk";
-       version = "0.0.0.7";
-       sha256 = "0llag2lgdb5d61961b6sjvl2v0mxbyvnz84ikzs87bf5gjm4v32j";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.0.0.10";
+       sha256 = "1735dxhqyq0jf2vyh5zb7xwxiqqhx3jgys8fqj97j9m97g0ybdg3";
        libraryHaskellDepends = [
          aeson base bytestring containers hashable haskell-src-meta mtl
          parsec split template-haskell text transformers
          unordered-containers
        ];
-       executableHaskellDepends = [
-         base containers neat-interpolation text unordered-containers
-       ];
        testHaskellDepends = [ base hspec mtl text unordered-containers ];
        description = "A front-end framework";
        license = stdenv.lib.licenses.bsd3;
@@ -193147,16 +197727,15 @@ self: {
      }) {};
 
   "pocket" = callPackage
-    ({ mkDerivation, aeson, base, http-client, http-client-tls, servant
-     , servant-client, text, transformers
+    ({ mkDerivation, aeson, base, bytestring, exceptions, http-conduit
+     , http-types, text
      }:
      mkDerivation {
        pname = "pocket";
-       version = "0.2.0";
-       sha256 = "1ffn0k9a5g1y0wv1py8iwiv7qf7qkacayp87ybdakmmckbwpd72z";
+       version = "0.3.0";
+       sha256 = "0kpj6kicncq4irbkbpnaa2s53b4p2pj3ilbrawh7ymrj854vdf2h";
        libraryHaskellDepends = [
-         aeson base http-client http-client-tls servant servant-client text
-         transformers
+         aeson base bytestring exceptions http-conduit http-types text
        ];
        description = "Bindings for the Pocket API";
        license = stdenv.lib.licenses.mit;
@@ -193547,29 +198126,6 @@ self: {
      }) {};
 
   "poly" = callPackage
-    ({ mkDerivation, base, deepseq, gauge, primitive, QuickCheck
-     , quickcheck-classes, semirings, tasty, tasty-quickcheck, vector
-     , vector-algorithms
-     }:
-     mkDerivation {
-       pname = "poly";
-       version = "0.3.3.0";
-       sha256 = "1hj77nzyfipsycy77h8ccsx4iyy47ljjv0j8ckihxhaq36g0fpan";
-       revision = "1";
-       editedCabalFile = "0iv4363iq22hkwrkgsijgv8ykvj26q895rsbzrrzkydblf4psra9";
-       libraryHaskellDepends = [
-         base deepseq primitive semirings vector vector-algorithms
-       ];
-       testHaskellDepends = [
-         base QuickCheck quickcheck-classes semirings tasty tasty-quickcheck
-         vector
-       ];
-       benchmarkHaskellDepends = [ base deepseq gauge semirings vector ];
-       description = "Polynomials";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "poly_0_4_0_0" = callPackage
     ({ mkDerivation, base, deepseq, gauge, mod, primitive, QuickCheck
      , quickcheck-classes, semirings, tasty, tasty-quickcheck, vector
      , vector-algorithms
@@ -193588,7 +198144,6 @@ self: {
        benchmarkHaskellDepends = [ base deepseq gauge semirings vector ];
        description = "Polynomials";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "poly-arity" = callPackage
@@ -193626,6 +198181,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 {
@@ -193756,42 +198322,6 @@ self: {
   "polysemy" = callPackage
     ({ mkDerivation, async, base, Cabal, cabal-doctest, containers
      , criterion, doctest, first-class-families, free, freer-simple
-     , hspec, hspec-discover, inspection-testing, loopbreaker, mtl, stm
-     , syb, template-haskell, th-abstraction, transformers, type-errors
-     , type-errors-pretty, unagi-chan
-     }:
-     mkDerivation {
-       pname = "polysemy";
-       version = "1.2.3.0";
-       sha256 = "0vb0k3kmzsjw45p220nw780wlax1r7mv56j06vkzqclkf8s5jky3";
-       revision = "2";
-       editedCabalFile = "0dzmkna6jb2im9kdslp90z6ynk2qzzg2j495i3y933ywdavvci93";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [
-         async base containers first-class-families loopbreaker mtl stm syb
-         template-haskell th-abstraction transformers type-errors
-         type-errors-pretty unagi-chan
-       ];
-       testHaskellDepends = [
-         async base containers doctest first-class-families hspec
-         inspection-testing loopbreaker mtl stm syb template-haskell
-         th-abstraction transformers type-errors type-errors-pretty
-         unagi-chan
-       ];
-       testToolDepends = [ hspec-discover ];
-       benchmarkHaskellDepends = [
-         async base containers criterion first-class-families free
-         freer-simple loopbreaker mtl stm syb template-haskell
-         th-abstraction transformers type-errors type-errors-pretty
-         unagi-chan
-       ];
-       description = "Higher-order, low-boilerplate, zero-cost free monads";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "polysemy_1_3_0_0" = callPackage
-    ({ mkDerivation, async, base, Cabal, cabal-doctest, containers
-     , criterion, doctest, first-class-families, free, freer-simple
      , hspec, hspec-discover, inspection-testing, mtl, QuickCheck, stm
      , syb, template-haskell, th-abstraction, transformers, type-errors
      , type-errors-pretty, unagi-chan
@@ -193800,8 +198330,8 @@ self: {
        pname = "polysemy";
        version = "1.3.0.0";
        sha256 = "0p5g1n5b0dfkadqpqf2ka25dblimwqhxwx5ax0mxwixb0jwd0pvb";
-       revision = "1";
-       editedCabalFile = "02fkrfdn7pwslc9yffgx3fis8ag36m3dhigw67ns1s16gsf5a7dz";
+       revision = "2";
+       editedCabalFile = "1dn5897ggd6rf5ffl6k52x4ghncgv2ls14nppayw9l9zi1mfjxps";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          async base containers first-class-families mtl QuickCheck stm syb
@@ -193822,7 +198352,6 @@ self: {
        ];
        description = "Higher-order, low-boilerplate, zero-cost free monads";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "polysemy-RandomFu" = callPackage
@@ -193848,6 +198377,19 @@ self: {
        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
@@ -193871,6 +198413,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "polysemy-webserver" = callPackage
+    ({ mkDerivation, base, bytestring, hspec, http-conduit, http-types
+     , polysemy, polysemy-plugin, text, wai, wai-websockets, warp
+     , websockets
+     }:
+     mkDerivation {
+       pname = "polysemy-webserver";
+       version = "0.2.1.0";
+       sha256 = "1kzswc20c2a720r46krphwckp6bcgkinw59immjpwvixxdfd0bma";
+       libraryHaskellDepends = [
+         base bytestring http-types polysemy polysemy-plugin wai
+         wai-websockets warp websockets
+       ];
+       testHaskellDepends = [
+         base bytestring hspec http-conduit http-types polysemy
+         polysemy-plugin text wai wai-websockets warp websockets
+       ];
+       description = "Start web servers from within a Polysemy effect stack";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "polysemy-zoo" = callPackage
     ({ mkDerivation, async, base, compact, constraints, containers
      , contravariant, exceptions, ghc-prim, hspec, hspec-discover, mtl
@@ -194096,20 +198661,19 @@ self: {
     ({ mkDerivation, async, attoparsec, base, base64-bytestring, binary
      , bytestring, Cabal, conduit, configurator, containers, criterion
      , crypto-api, crypto-random, cryptohash, cryptohash-cryptoapi
-     , data-default, derive, directory, dns, doctest, exceptions
-     , filepath, hslogger, hspec, hspec-expectations, HUnit, iproute
-     , lens, lens-family, lifted-base, mtl, network, profunctors
-     , pureMD5, QuickCheck, quickcheck-instances, random, ranges
-     , resourcet, smallcheck, split, stm, stringprep, tasty, tasty-hspec
+     , data-default, derive, directory, dns, exceptions, filepath
+     , hslogger, hspec, hspec-expectations, HUnit, iproute, lens
+     , lens-family, lifted-base, mtl, network, profunctors, pureMD5
+     , QuickCheck, quickcheck-instances, random, ranges, resourcet
+     , smallcheck, split, stm, stringprep, tasty, tasty-hspec
      , tasty-hunit, tasty-quickcheck, tasty-th, template-haskell, text
      , tls, transformers, unbounded-delays, void, x509-system
      , xml-conduit, xml-picklers, xml-types
      }:
      mkDerivation {
        pname = "pontarius-xmpp";
-       version = "0.5.6";
-       sha256 = "0r4q8vsl4a51dgfqzgi3ljndiw9k9yr4561prck1nzxbcl2d7c70";
-       setupHaskellDepends = [ base Cabal filepath ];
+       version = "0.5.6.3";
+       sha256 = "0zfl6brikkb4pjgvl4lfvjjylmiq6gyv46mi21nrlk3vmdni9dd5";
        libraryHaskellDepends = [
          attoparsec base base64-bytestring binary bytestring conduit
          containers crypto-api crypto-random cryptohash cryptohash-cryptoapi
@@ -194121,11 +198685,10 @@ self: {
        ];
        testHaskellDepends = [
          async base Cabal conduit configurator containers data-default
-         derive directory doctest filepath hslogger hspec hspec-expectations
-         HUnit lens mtl network QuickCheck quickcheck-instances ranges
-         smallcheck stm stringprep tasty tasty-hspec tasty-hunit
-         tasty-quickcheck tasty-th text tls transformers xml-picklers
-         xml-types
+         derive directory filepath hslogger hspec hspec-expectations HUnit
+         lens mtl network QuickCheck quickcheck-instances ranges smallcheck
+         stm stringprep tasty tasty-hspec tasty-hunit tasty-quickcheck
+         tasty-th text tls transformers xml-picklers xml-types
        ];
        benchmarkHaskellDepends = [ base criterion ];
        description = "An XMPP client library";
@@ -194140,8 +198703,8 @@ self: {
      }:
      mkDerivation {
        pname = "pontarius-xmpp-extras";
-       version = "0.1.0.1";
-       sha256 = "04qaq8m2c8l8my89n0p6x2r3hqw9nmivk1mjkip0wgw2cj3ia7h6";
+       version = "0.1.0.4";
+       sha256 = "1mf65mdkykn0s0mqix82m9psj2vrz9rc7i8gzfdv1iarlxzz5qab";
        libraryHaskellDepends = [
          base data-default pontarius-xmpp text time xml-types
        ];
@@ -194262,20 +198825,22 @@ self: {
   "popkey" = callPackage
     ({ mkDerivation, base, bitvec, bytestring, containers, hspec
      , hspec-discover, hw-bits, hw-prim, hw-rankselect
-     , hw-rankselect-base, profunctors, QuickCheck, store, text, vector
+     , hw-rankselect-base, QuickCheck, store, text, vector
      }:
      mkDerivation {
        pname = "popkey";
-       version = "0.0.0.1";
-       sha256 = "1gplzbbj6whmxchxr78zv32ixlf79sjgdz950jixl7z9p5pdrki7";
+       version = "0.1.0.1";
+       sha256 = "1nlbd54q7npxm9hk4f289md6rch0sqnl236iimwsrwllpq6rbxbz";
        libraryHaskellDepends = [
          base bitvec bytestring containers hw-bits hw-prim hw-rankselect
-         hw-rankselect-base profunctors store text vector
+         hw-rankselect-base store text vector
        ];
-       testHaskellDepends = [ base containers hspec QuickCheck ];
+       testHaskellDepends = [ base containers hspec QuickCheck store ];
        testToolDepends = [ hspec-discover ];
        description = "Static key-value storage backed by poppy";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "poppler" = callPackage
@@ -194711,10 +199276,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 ];
@@ -194783,8 +199346,8 @@ self: {
      }:
      mkDerivation {
        pname = "posplyu";
-       version = "0.1.0";
-       sha256 = "1whdihlfcgjy4na86qhhhixa0l494005shfxs5ns61qsdw7mwflk";
+       version = "0.1.0.1";
+       sha256 = "09yafx5d82h4vsx2pp2hccwy74b7nhbys971g86qcg6yf24ha621";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -194892,34 +199455,32 @@ self: {
      }) {};
 
   "postgres-websockets" = callPackage
-    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
-     , containers, 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
+    ({ 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, 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.6.0.0";
-       sha256 = "0m9fypc216qcsx596sizgxjv30w08fpfpjglmcias88ri4n3ggy5";
+       version = "0.8.0.1";
+       sha256 = "0a56dpj90nmrinjgxaipgbsfl5ligx3iydcnijxpwy6vwbjijnmi";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson 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 = [
-         base base64-bytestring bytestring envparse hasql hasql-pool
-         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 containers hasql hasql-notifications hasql-pool hspec
-         hspec-wai hspec-wai-json http-types protolude stm
-         unordered-containers wai-extra
+         aeson base hasql hasql-notifications hasql-pool hspec hspec-wai
+         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;
@@ -194956,6 +199517,36 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "postgresql-binary_0_12_3" = callPackage
+    ({ mkDerivation, aeson, base, base-prelude, binary-parser
+     , bytestring, bytestring-strict-builder, containers, conversion
+     , conversion-bytestring, conversion-text, criterion, json-ast
+     , loch-th, network-ip, placeholders, postgresql-libpq, QuickCheck
+     , quickcheck-instances, rerebase, scientific, tasty, tasty-hunit
+     , tasty-quickcheck, text, time, transformers, unordered-containers
+     , uuid, vector
+     }:
+     mkDerivation {
+       pname = "postgresql-binary";
+       version = "0.12.3";
+       sha256 = "0z31d7bw7m43195maqw5pba3l2l98nnkck0gzaghk05id0p7rlmd";
+       libraryHaskellDepends = [
+         aeson base base-prelude binary-parser bytestring
+         bytestring-strict-builder containers loch-th network-ip
+         placeholders scientific text time transformers unordered-containers
+         uuid vector
+       ];
+       testHaskellDepends = [
+         aeson conversion conversion-bytestring conversion-text json-ast
+         loch-th network-ip placeholders postgresql-libpq QuickCheck
+         quickcheck-instances rerebase tasty tasty-hunit tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ criterion rerebase ];
+       description = "Encoders and decoders for the PostgreSQL's binary format";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "postgresql-common" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, postgresql-simple }:
      mkDerivation {
@@ -195072,6 +199663,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {inherit (pkgs) postgresql;};
 
+  "postgresql-libpq-notify" = callPackage
+    ({ mkDerivation, async, base, hspec, postgres-options
+     , postgresql-libpq, stm, text, tmp-postgres
+     }:
+     mkDerivation {
+       pname = "postgresql-libpq-notify";
+       version = "0.2.0.0";
+       sha256 = "06k63ix0d836w4x7q49m003wrxpbnnlvhmvbvk8mn9752xv55vkc";
+       libraryHaskellDepends = [ base postgresql-libpq stm ];
+       testHaskellDepends = [
+         async base hspec postgres-options postgresql-libpq text
+         tmp-postgres
+       ];
+       description = "Minimal dependency PostgreSQL notifications library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "postgresql-lo-stream" = callPackage
     ({ mkDerivation, base, bytestring, io-streams, lifted-base
      , monad-loops, mtl, postgresql-simple
@@ -195134,52 +199742,75 @@ self: {
        license = "GPL";
      }) {};
 
+  "postgresql-placeholder-converter" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, hspec
+     , hspec-discover, mtl, utf8-string
+     }:
+     mkDerivation {
+       pname = "postgresql-placeholder-converter";
+       version = "0.1.0.0";
+       sha256 = "1dprqv0r00nrx6m0byqfzpb91h5kz3nxd0w0m21150l68sj2d8ys";
+       revision = "1";
+       editedCabalFile = "0mla1cibyc13bz7gvv5b31il8nyp0vjfi8xqgpynbjfq7d4fjnnc";
+       libraryHaskellDepends = [
+         attoparsec base bytestring mtl utf8-string
+       ];
+       testHaskellDepends = [ base hspec ];
+       testToolDepends = [ hspec-discover ];
+       description = "Converter for question mark style and dollar sign style of PostgreSQL SQL";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "postgresql-pure" = callPackage
     ({ mkDerivation, attoparsec, base, base16-bytestring, bytestring
-     , cassava, clock, containers, convertible, cryptohash-md5
-     , data-default-class, deepseq, 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, postgres-wire
-     , postgresql-binary, postgresql-libpq, postgresql-simple
-     , postgresql-typed, pretty-hex, QuickCheck, random-shuffle
+     , Cabal, cassava, clock, containers, convertible, cryptohash-md5
+     , data-default-class, deepseq, directory, doctest
+     , double-conversion, filepath, HDBC, HDBC-postgresql, HDBC-session
+     , homotuple, hourglass, hspec, hspec-core, HUnit, list-tuple
+     , memory, mtl, network, old-time, OneTuple, Only
+     , optparse-applicative, persistable-record, postgresql-binary
+     , postgresql-libpq, postgresql-placeholder-converter
+     , postgresql-simple, pretty-hex, QuickCheck, random-shuffle
      , relational-query, relational-query-HDBC, relational-record
      , safe-exceptions, scientific, single-tuple, text, time
      , utf8-string, vector
      }:
      mkDerivation {
        pname = "postgresql-pure";
-       version = "0.1.2.0";
-       sha256 = "1dsjciaryxqizhg33axlcvj7i0h9xi4hz956kijqvmy0lb0bjscf";
+       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 postgres-wire postgresql-binary
-         postgresql-libpq postgresql-simple postgresql-typed 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;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {postgres-wire = null;};
+     }) {};
 
   "postgresql-query" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, blaze-builder, bytestring
@@ -195247,8 +199878,8 @@ self: {
        pname = "postgresql-simple";
        version = "0.6.2";
        sha256 = "15pkflx48mgv4fjmnagyfh06q065k8m8c98bysc3gm6m4srz5ypv";
-       revision = "3";
-       editedCabalFile = "0wngpd4187sfz2jhpnnrycfvpd1irz2m798p515mn1ryg1ywmhbr";
+       revision = "4";
+       editedCabalFile = "03s0cbwqgkvzr1wkan7icfjb9qlz95pbs3pqv2mkpf117m3y1yb0";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring bytestring-builder
          case-insensitive containers hashable Only postgresql-libpq
@@ -195354,8 +199985,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
@@ -195450,22 +200081,20 @@ self: {
      }) {};
 
   "postgresql-syntax" = callPackage
-    ({ mkDerivation, base, bytestring, case-insensitive, containers
-     , contravariant, fast-builder, foldl, hashable, headed-megaparsec
-     , hedgehog, megaparsec, parser-combinators, QuickCheck
-     , quickcheck-instances, rerebase, selective, tasty, tasty-hunit
-     , tasty-quickcheck, text, text-builder, unordered-containers, uuid
-     , vector
+    ({ mkDerivation, base, bytestring, case-insensitive, fast-builder
+     , hashable, headed-megaparsec, hedgehog, megaparsec
+     , parser-combinators, QuickCheck, quickcheck-instances, rerebase
+     , tasty, tasty-hunit, tasty-quickcheck, text, text-builder
+     , unordered-containers
      }:
      mkDerivation {
        pname = "postgresql-syntax";
-       version = "0.2.0.1";
-       sha256 = "0qp108cz7ch193hpfl03xffaxpn32zaaxhsv2fj5rbpvvyny3rx1";
+       version = "0.3.0.2";
+       sha256 = "1gl0k3idcgpnahh8mv01mjzhc4yx6i3f7shfa7mqhcgs6r1ccdhz";
        libraryHaskellDepends = [
-         base bytestring case-insensitive containers contravariant
-         fast-builder foldl hashable headed-megaparsec megaparsec
-         parser-combinators selective text text-builder unordered-containers
-         uuid vector
+         base bytestring case-insensitive fast-builder hashable
+         headed-megaparsec megaparsec parser-combinators text text-builder
+         unordered-containers
        ];
        testHaskellDepends = [
          hedgehog QuickCheck quickcheck-instances rerebase tasty tasty-hunit
@@ -195473,6 +200102,8 @@ self: {
        ];
        description = "PostgreSQL AST parsing and rendering";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "postgresql-transactional" = callPackage
@@ -195488,6 +200119,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
@@ -195497,8 +200202,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
@@ -195582,6 +200287,55 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "postgrest_7_0_1" = callPackage
+    ({ mkDerivation, aeson, aeson-qq, ansi-wl-pprint, async
+     , auto-update, base, base64-bytestring, bytestring
+     , case-insensitive, cassava, configurator-pg, containers
+     , contravariant, contravariant-extras, cookie, directory, either
+     , gitrev, hasql, hasql-pool, hasql-transaction, heredoc, hspec
+     , hspec-wai, hspec-wai-json, HTTP, http-types
+     , insert-ordered-containers, interpolatedstring-perl6, jose, lens
+     , lens-aeson, monad-control, network, network-uri
+     , optparse-applicative, parsec, process, protolude, Ranged-sets
+     , regex-tdfa, retry, scientific, swagger2, text, time
+     , transformers-base, unix, unordered-containers, vector, wai
+     , wai-cors, wai-extra, wai-middleware-static, warp
+     }:
+     mkDerivation {
+       pname = "postgrest";
+       version = "7.0.1";
+       sha256 = "1cn69dinfv3y8ymsa364b9b0ly3dg80and902gamymb9v89jpsgf";
+       revision = "2";
+       editedCabalFile = "061lr5hy3xf1nx7yqjpspxqdccmhvvfkyzd3qxzsg5s041hy4krs";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson ansi-wl-pprint base base64-bytestring bytestring
+         case-insensitive cassava configurator-pg containers contravariant
+         contravariant-extras cookie either gitrev hasql hasql-pool
+         hasql-transaction heredoc HTTP http-types insert-ordered-containers
+         interpolatedstring-perl6 jose lens lens-aeson network-uri
+         optparse-applicative parsec protolude Ranged-sets regex-tdfa
+         scientific swagger2 text time unordered-containers vector wai
+         wai-cors wai-extra wai-middleware-static
+       ];
+       executableHaskellDepends = [
+         auto-update base base64-bytestring bytestring directory either
+         hasql hasql-pool hasql-transaction network protolude retry text
+         time unix wai warp
+       ];
+       testHaskellDepends = [
+         aeson aeson-qq async auto-update base base64-bytestring bytestring
+         case-insensitive cassava containers contravariant hasql hasql-pool
+         hasql-transaction heredoc hspec hspec-wai hspec-wai-json http-types
+         lens lens-aeson monad-control process protolude regex-tdfa text
+         time transformers-base wai wai-extra
+       ];
+       description = "REST API for any Postgres database";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "postgrest-ws" = callPackage
     ({ mkDerivation, aeson, ansi-wl-pprint, base, base64-bytestring
      , bytestring, configurator, containers, contravariant, either
@@ -196033,10 +200787,8 @@ self: {
     ({ mkDerivation, base, deepseq, QuickCheck }:
      mkDerivation {
        pname = "pqueue";
-       version = "1.4.1.2";
-       sha256 = "1v4zhv2sc1zsw91hvnarkjhayx2dnf7ccxz6rrhsqpcs0szaranj";
-       revision = "1";
-       editedCabalFile = "1la186z2np3nv06p0485xwg342gyjp7a2ikg73qs7mbg086352zs";
+       version = "1.4.1.3";
+       sha256 = "1sz7hlnfd86hbwrgqxczmsjsl1ki0ryi9dgzscxlsgjkdgcdia2p";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [ base deepseq QuickCheck ];
        description = "Reliable, persistent, fast priority queues";
@@ -196248,27 +201000,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.0.1";
-       sha256 = "1izg98ql496qn8dvn3blz2654bhy8901x7hfh0dxqqzrm1gi5bf4";
+       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;
@@ -196622,8 +201376,8 @@ self: {
      }:
      mkDerivation {
        pname = "preql";
-       version = "0.2";
-       sha256 = "062px686v2rlpc2bplva900vk35k7hdvxrpjj9dfkj02knqmjxi7";
+       version = "0.3";
+       sha256 = "03zdkxlkvqyccvi682w0inxl70fvzi4l56kicp9qrb661jaqvy9q";
        libraryHaskellDepends = [
          aeson array base binary-parser bytestring bytestring-strict-builder
          contravariant free mtl postgresql-binary postgresql-libpq
@@ -196751,8 +201505,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
@@ -196931,8 +201685,32 @@ self: {
      }:
      mkDerivation {
        pname = "pretty-simple";
-       version = "3.2.2.0";
-       sha256 = "092vv0dvyab0vjchhw6cvc3x3wp7qb04q6n6ibjvpg472x3hnl3z";
+       version = "3.2.3.0";
+       sha256 = "1sr66sawacv0ks0znip0jxpz98lvjacara8sqfm53i0pqf8c0qla";
+       isLibrary = true;
+       isExecutable = true;
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         ansi-terminal base containers mtl text transformers
+       ];
+       testHaskellDepends = [
+         base doctest Glob QuickCheck template-haskell
+       ];
+       benchmarkHaskellDepends = [ base criterion text ];
+       description = "pretty printer for data types with a 'Show' instance";
+       license = stdenv.lib.licenses.bsd3;
+       maintainers = with stdenv.lib.maintainers; [ cdepillabout ];
+     }) {};
+
+  "pretty-simple_3_3_0_0" = callPackage
+    ({ mkDerivation, ansi-terminal, base, Cabal, cabal-doctest
+     , containers, criterion, doctest, Glob, mtl, QuickCheck
+     , template-haskell, text, transformers
+     }:
+     mkDerivation {
+       pname = "pretty-simple";
+       version = "3.3.0.0";
+       sha256 = "0g83958npqscqqz2lh5m0m666qp8ldwps4l5gvfip4b1zgy3f5nh";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -196945,6 +201723,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion text ];
        description = "pretty printer for data types with a 'Show' instance";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
        maintainers = with stdenv.lib.maintainers; [ cdepillabout ];
      }) {};
 
@@ -197024,7 +201803,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "prettyprinter" = callPackage
+  "prettyprinter_1_6_1" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, base-compat, bytestring
      , containers, deepseq, doctest, gauge, mtl, pgp-wordlist
      , QuickCheck, quickcheck-instances, random, tasty, tasty-hunit
@@ -197047,17 +201826,74 @@ self: {
        ];
        description = "A modern, easy to use, well-documented, extensible pretty-printer";
        license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "prettyprinter" = 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.6.2";
+       sha256 = "023hfz75xgvyymbipyph7xmaaki2d5qa6fh4lx9adl1h4s8g34yi";
+       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;
+     }) {};
+
+  "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;
      }) {};
@@ -197111,10 +201947,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
@@ -197128,15 +201962,26 @@ self: {
     ({ mkDerivation, base, graphviz, prettyprinter, text }:
      mkDerivation {
        pname = "prettyprinter-graphviz";
-       version = "0.1.1.1";
-       sha256 = "1cpzqvy9w8ims5hqhv5v18r0dgj3708gprdrjxbja13nfsb6bsg9";
+       version = "1.0.0.2";
+       sha256 = "1bbbnhdigh31hbsh2abmr65bk3q927cdbm8j2qsvy4472ksylzpl";
        libraryHaskellDepends = [ base graphviz prettyprinter text ];
-       description = "a prettyprinter backend for graphviz";
+       description = "A prettyprinter backend for graphviz";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        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;
+     }) {};
+
   "prettyprinter-vty" = callPackage
     ({ mkDerivation, base, prettyprinter, vty }:
      mkDerivation {
@@ -197321,6 +202166,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "primitive_0_7_1_0" = callPackage
+    ({ mkDerivation, base, base-orphans, deepseq, ghc-prim, QuickCheck
+     , quickcheck-classes-base, semigroups, tagged, tasty
+     , tasty-quickcheck, transformers, transformers-compat
+     }:
+     mkDerivation {
+       pname = "primitive";
+       version = "0.7.1.0";
+       sha256 = "1w53i4mk248g58xrffmksznr4nmn2bbbycajzpcqfxx5ybyyrsvb";
+       libraryHaskellDepends = [ base deepseq transformers ];
+       testHaskellDepends = [
+         base base-orphans ghc-prim QuickCheck quickcheck-classes-base
+         semigroups tagged tasty tasty-quickcheck transformers
+         transformers-compat
+       ];
+       description = "Primitive memory-related operations";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "primitive-addr" = callPackage
     ({ mkDerivation, base, primitive }:
      mkDerivation {
@@ -197793,9 +202658,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
        ];
@@ -197860,14 +202724,14 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "process_1_6_8_2" = callPackage
+  "process_1_6_10_0" = callPackage
     ({ mkDerivation, base, bytestring, deepseq, directory, filepath
      , unix
      }:
      mkDerivation {
        pname = "process";
-       version = "1.6.8.2";
-       sha256 = "1gdz227gmpax92xmwrvj9nrylybh4kk7m4yqr8qwa9i34dg1jzqx";
+       version = "1.6.10.0";
+       sha256 = "01c50qhrsvymbifa3lzyq6g4hmj6jl3awjp1jmbhdkmfdfaq3v16";
        libraryHaskellDepends = [ base deepseq directory filepath unix ];
        testHaskellDepends = [ base bytestring directory ];
        description = "Process libraries";
@@ -198028,7 +202892,7 @@ self: {
          semigroups tasty tasty-hunit text transformers transformers-compat
          void
        ];
-       description = "Streaming interface to system processes.";
+       description = "Streaming interface to system processes";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -198066,8 +202930,21 @@ self: {
          base data-default GLUT hsnoise NumInstances OpenGL random time
          transformers utf8-string vector-space
        ];
-       description = "Computer graphics for kids and artists with Processing implemented in Haskell.";
+       description = "Computer graphics for kids and artists with Processing implemented in Haskell";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "processmemory" = callPackage
+    ({ mkDerivation, base, binary, bytestring, process }:
+     mkDerivation {
+       pname = "processmemory";
+       version = "0.1.0.0";
+       sha256 = "12p7974x43w06jwaf7hlv2wxlgqnq9kb10mgjl9c4l7hbpbg3y0z";
+       libraryHaskellDepends = [ base binary bytestring process ];
+       description = "C bindings for the gnu-extension functions process_vm_readv and process_vm_writev";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "processor-creative-kit" = callPackage
@@ -198202,6 +203079,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 {
@@ -198511,8 +203406,8 @@ self: {
      }:
      mkDerivation {
        pname = "project-m36";
-       version = "0.7";
-       sha256 = "1ahvnyrg28r16rw982bpawrmiikc121z7358y3gxzqxnv2cc9y65";
+       version = "0.8";
+       sha256 = "0rc5vixyaakh9avsn4xwf1phqm1298z8d81xwxllas0wq5cbyvl3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -198571,10 +203466,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
@@ -198717,8 +203610,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
@@ -198735,8 +203628,8 @@ self: {
      }:
      mkDerivation {
        pname = "prometheus-client";
-       version = "1.0.0";
-       sha256 = "0i1kbc9hxqnqiqkvfygc6h5fmqmrqwlq1wbslq65md5d41bl37i7";
+       version = "1.0.1";
+       sha256 = "1gyclzl16dkq7yw84x0ppgmyav7scl4jvwq9b5ihzxy45crcdhin";
        libraryHaskellDepends = [
          atomic-primops base bytestring clock containers deepseq exceptions
          mtl stm text transformers transformers-compat utf8-string
@@ -198788,8 +203681,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
        ];
@@ -198804,8 +203697,8 @@ self: {
      }:
      mkDerivation {
        pname = "prometheus-proc";
-       version = "0.1.2.0";
-       sha256 = "0lia1r6bjh0m55s7nrfhn76v58yai8brlpi0q193wh0ypsg71j9l";
+       version = "0.1.3.0";
+       sha256 = "0pljmmas8wsigwd3m2ddjzn9mbsgsh0hbf1kz7301w8g5hnjfx03";
        libraryHaskellDepends = [
          base directory filepath prometheus-client regex-applicative text
          unix unix-memory
@@ -198814,6 +203707,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 {
@@ -198920,8 +203833,8 @@ self: {
      }:
      mkDerivation {
        pname = "propellor";
-       version = "5.10.2";
-       sha256 = "1yagzlpn6myj46ihcy8v43kxjf8kba42q5vahy22aanpwbp9lij8";
+       version = "5.11";
+       sha256 = "0jda99g9a818w1yisms40rlzx81dyvv16w2ms8iazs5b9h4fwb3a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -199142,30 +204055,6 @@ self: {
        broken = true;
      }) {};
 
-  "proto-lens_0_5_1_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, ghc-prim
-     , lens-family, parsec, pretty, primitive, profunctors, QuickCheck
-     , tagged, test-framework, test-framework-quickcheck2, text
-     , transformers, vector, void
-     }:
-     mkDerivation {
-       pname = "proto-lens";
-       version = "0.5.1.0";
-       sha256 = "1jv88j9spv3q679syq0fbpbq8xjggaww5644as31gmvihjfaxby1";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base bytestring containers deepseq ghc-prim lens-family parsec
-         pretty primitive profunctors tagged text transformers vector void
-       ];
-       testHaskellDepends = [
-         base bytestring QuickCheck test-framework
-         test-framework-quickcheck2 vector
-       ];
-       description = "A lens-based implementation of protocol buffers in Haskell";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
   "proto-lens" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, ghc-prim
      , lens-family, parsec, pretty, primitive, profunctors, QuickCheck
@@ -199173,8 +204062,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens";
-       version = "0.6.0.0";
-       sha256 = "0k2j5b8dxvjx2gxjw5r7pc7r0qiihc2a5j2y3q0hmqljn423zcx6";
+       version = "0.7.0.0";
+       sha256 = "1dg73jwc9mis7igxdj3chkb8fz9a25wxw3d6nz11r98z3ambd8rs";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers deepseq ghc-prim lens-family parsec
@@ -199193,8 +204082,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-arbitrary";
-       version = "0.1.2.8";
-       sha256 = "0jms2wldjnv455gc3mf232500nidh9vh8g07fw7sdc4m2clch043";
+       version = "0.1.2.9";
+       sha256 = "0ndh8jr9aybjpf1p6a6zs2qjci0z7h3c3v3i5hf28ls8w2g8zr4x";
        libraryHaskellDepends = [
          base bytestring containers lens-family proto-lens QuickCheck text
        ];
@@ -199249,22 +204138,24 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-jsonpb";
-       version = "0.2.0.0";
-       sha256 = "01m88qfi5lak15n14zlxb5yjyi67h5m47czkzirhi0a615v8bwbr";
+       version = "0.2.0.1";
+       sha256 = "0hsjn0iy0bbpb1sczk6vj2vah5f60w8cpm2gach5zlb9qpvkg4x4";
        libraryHaskellDepends = [
          aeson attoparsec base base64-bytestring bytestring
          proto-lens-runtime text vector
        ];
        description = "JSON protobuf encoding for proto-lens";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "proto-lens-optparse" = callPackage
     ({ mkDerivation, base, optparse-applicative, proto-lens, text }:
      mkDerivation {
        pname = "proto-lens-optparse";
-       version = "0.1.1.6";
-       sha256 = "105vrzx5qbcby3g1l7fd3alwlsaf0prjnhmy4i4cv9qrkg6qn34q";
+       version = "0.1.1.7";
+       sha256 = "0fskg0y66qp81z2x2r6jyvrisn7asmbynnq1zq2j97dn7003nqpa";
        libraryHaskellDepends = [
          base optparse-applicative proto-lens text
        ];
@@ -199272,24 +204163,6 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "proto-lens-protobuf-types_0_5_0_0" = callPackage
-    ({ mkDerivation, base, Cabal, lens-family, proto-lens
-     , proto-lens-runtime, proto-lens-setup, protobuf, text
-     }:
-     mkDerivation {
-       pname = "proto-lens-protobuf-types";
-       version = "0.5.0.0";
-       sha256 = "1j37g1w6b7hph61x7hrvvs7sp5kzl24slmbnlyn8a7z04kbhgr90";
-       setupHaskellDepends = [ base Cabal proto-lens-setup ];
-       libraryHaskellDepends = [
-         base lens-family proto-lens proto-lens-runtime text
-       ];
-       libraryToolDepends = [ protobuf ];
-       description = "Basic protocol buffer message types";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {inherit (pkgs) protobuf;};
-
   "proto-lens-protobuf-types" = callPackage
     ({ mkDerivation, base, Cabal, lens-family, proto-lens
      , proto-lens-protoc, proto-lens-runtime, proto-lens-setup, protobuf
@@ -199297,8 +204170,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-protobuf-types";
-       version = "0.6.0.0";
-       sha256 = "1mnd8v9wryv59qrc44r5xkibndr5jpa8b7lb1k7hnk5261dffmc7";
+       version = "0.7.0.0";
+       sha256 = "1db0z3394g1fzw80ilxldbvy7m3a4piks0fk2wmlaw5k6bza82c7";
        setupHaskellDepends = [ base Cabal proto-lens-setup ];
        libraryHaskellDepends = [
          base lens-family proto-lens proto-lens-runtime text
@@ -199308,29 +204181,6 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {inherit (pkgs) protobuf;};
 
-  "proto-lens-protoc_0_5_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, filepath
-     , haskell-src-exts, lens-family, pretty, proto-lens, protobuf, text
-     }:
-     mkDerivation {
-       pname = "proto-lens-protoc";
-       version = "0.5.0.0";
-       sha256 = "0r6il4gvvcggxxbz2hq1kkw1qwk1rspqcb2j04ngd06pmvicw78n";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base containers filepath haskell-src-exts lens-family pretty
-         proto-lens text
-       ];
-       libraryToolDepends = [ protobuf ];
-       executableHaskellDepends = [
-         base bytestring containers lens-family proto-lens text
-       ];
-       description = "Protocol buffer compiler for the proto-lens library";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {inherit (pkgs) protobuf;};
-
   "proto-lens-protoc" = callPackage
     ({ mkDerivation, base, bytestring, containers, filepath, ghc
      , ghc-paths, ghc-source-gen, lens-family, pretty, proto-lens
@@ -199338,8 +204188,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-protoc";
-       version = "0.6.0.0";
-       sha256 = "1gi7k48rpmzh3awgdki4b2cg2plh8n8fv397iv6h1ly8jh5p8imr";
+       version = "0.7.0.0";
+       sha256 = "1k060lr5d54mzj6c7d2k19vg2432mfnp66wr7gs1qcgpj19q9yvs";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base filepath ];
@@ -199352,31 +204202,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {inherit (pkgs) protobuf;};
 
-  "proto-lens-runtime_0_5_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, filepath
-     , lens-family, proto-lens, text, vector
-     }:
-     mkDerivation {
-       pname = "proto-lens-runtime";
-       version = "0.5.0.0";
-       sha256 = "0hd1hcrirnj92nkd15l1m081wvxas62az3zijg1cr4lf93rg9hgc";
-       libraryHaskellDepends = [
-         base bytestring containers deepseq filepath lens-family proto-lens
-         text vector
-       ];
-       doHaddock = false;
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
   "proto-lens-runtime" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, filepath
      , lens-family, proto-lens, text, vector
      }:
      mkDerivation {
        pname = "proto-lens-runtime";
-       version = "0.6.0.0";
-       sha256 = "0wxfa4q88i1d4zqv9nybw6hrh5lw84vmkzy5iqw2hzwjym0p3wcn";
+       version = "0.7.0.0";
+       sha256 = "0qxangmbldzdvm9qdvhw1cnjakx0zrxrq0nbscqvih2m2yzaxhad";
        libraryHaskellDepends = [
          base bytestring containers deepseq filepath lens-family proto-lens
          text vector
@@ -199385,31 +204218,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "proto-lens-setup_0_4_0_2" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, deepseq
-     , directory, filepath, process, proto-lens-protoc, temporary, text
-     }:
-     mkDerivation {
-       pname = "proto-lens-setup";
-       version = "0.4.0.2";
-       sha256 = "1zqlkkzdg9myfy2myv0y19zmsjsvcd5rcimf6f48gnijl3001i8v";
-       libraryHaskellDepends = [
-         base bytestring Cabal containers deepseq directory filepath process
-         proto-lens-protoc temporary text
-       ];
-       description = "Cabal support for codegen with proto-lens";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
   "proto-lens-setup" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, deepseq
      , directory, filepath, process, proto-lens-protoc, temporary, text
      }:
      mkDerivation {
        pname = "proto-lens-setup";
-       version = "0.4.0.3";
-       sha256 = "1di6nxx94d01rpclmcfc0gzf8x4qp61haw40mr2i9djxwczvrqbd";
+       version = "0.4.0.4";
+       sha256 = "09ka0x4ril0lw3ppx2q26zw2r9g2cszsyqrbwy0amw78g1kxma8v";
        libraryHaskellDepends = [
          base bytestring Cabal containers deepseq directory filepath process
          proto-lens-protoc temporary text
@@ -199426,14 +204242,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;
@@ -199442,8 +204257,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
@@ -199452,8 +204267,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;
@@ -199484,6 +204299,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
@@ -199555,6 +204394,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
@@ -199773,8 +204623,8 @@ self: {
      }:
      mkDerivation {
        pname = "provenience";
-       version = "0.1.0.1";
-       sha256 = "0z2lsyx59wk663y4p0xwl5sjrl1h3aqlqwig2xhvv9a1cf2bzzd3";
+       version = "0.1.0.2";
+       sha256 = "0wzja3vv21wgwxlmwcfc6vbkdr80jjkhxbxa41zz1i78j8cc3bri";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -199876,8 +204726,8 @@ self: {
        pname = "pseudo-boolean";
        version = "0.1.9.0";
        sha256 = "00n5mf7abprhr9xvh3k1mw40jn4l94wwxpc2h0546h0n9v7srb1b";
-       revision = "1";
-       editedCabalFile = "14lgfxazr83nmbcdprygx2add8233hsq1hpdsiffx5zprgvr78vv";
+       revision = "2";
+       editedCabalFile = "1njlypxh9p0dfqywgqgyzgx9h822d37jbnnd9zbl0ci99k1247g6";
        libraryHaskellDepends = [
          attoparsec base bytestring bytestring-builder containers deepseq
          dlist hashable megaparsec parsec void
@@ -200001,8 +204851,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
        ];
@@ -200040,8 +204890,8 @@ self: {
      }:
      mkDerivation {
        pname = "publicsuffix";
-       version = "0.20191003";
-       sha256 = "1birj2k23v93w89mcrn522mqyfipv3smrdhag6k6pgsi628gihx7";
+       version = "0.20200526";
+       sha256 = "0sipkr4mzhha5w4236jj6j8assy565yf085aqa3awwqi28674mbb";
        libraryHaskellDepends = [ base filepath template-haskell ];
        testHaskellDepends = [ base hspec ];
        benchmarkHaskellDepends = [ base criterion random ];
@@ -200095,8 +204945,8 @@ self: {
      }:
      mkDerivation {
        pname = "publish";
-       version = "2.1.0";
-       sha256 = "03fwk0ami5xxqacqb8gikqzxdp7cavvni5bmxd5bi1lvavk49sh7";
+       version = "2.1.3";
+       sha256 = "1d16pz8nlqdvlp4d1129k71vzdyql1szhk158b446k988akmgaq8";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -200531,8 +205381,8 @@ self: {
      }:
      mkDerivation {
        pname = "purebred-email";
-       version = "0.4.1";
-       sha256 = "0fkdmd0glp8p2dyzfpm3ah6nbfw4jqfzx7ai6yl2f9yrssb0ckp9";
+       version = "0.4.2";
+       sha256 = "18cjifncnxi4c3xxkgvvvay56h2a0zs83505xf1a9fkz5n8iwqby";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -200575,64 +205425,68 @@ self: {
   "purescript" = callPackage
     ({ mkDerivation, aeson, aeson-better-errors, aeson-pretty
      , ansi-terminal, ansi-wl-pprint, array, base, base-compat
-     , blaze-html, bower-json, boxes, bytestring, Cabal, cheapskate
-     , clock, containers, cryptonite, data-ordlist, deepseq, directory
-     , dlist, edit-distance, file-embed, filepath, fsnotify, gitrev
-     , Glob, happy, haskeline, hspec, hspec-discover, http-types, HUnit
-     , language-javascript, lifted-async, lifted-base, memory
+     , blaze-html, bower-json, boxes, bytestring, Cabal, cborg
+     , cheapskate, clock, containers, cryptonite, data-ordlist, deepseq
+     , directory, dlist, edit-distance, file-embed, filepath, fsnotify
+     , gitrev, Glob, happy, haskeline, hspec, hspec-discover, http-types
+     , HUnit, language-javascript, lifted-async, lifted-base, memory
      , microlens-platform, monad-control, monad-logger, mtl, network
      , optparse-applicative, parallel, parsec, pattern-arrows, process
      , protolude, regex-tdfa, safe, scientific, semialign, semigroups
-     , sourcemap, split, stm, stringsearch, syb, tasty, tasty-golden
-     , tasty-hspec, tasty-quickcheck, text, these, time, transformers
-     , transformers-base, transformers-compat, unordered-containers
-     , utf8-string, vector, wai, wai-websockets, warp, websockets
+     , serialise, sourcemap, split, stm, stringsearch, syb, tasty
+     , tasty-golden, tasty-hspec, tasty-quickcheck, text, these, time
+     , transformers, transformers-base, transformers-compat
+     , unordered-containers, utf8-string, vector, wai, wai-websockets
+     , warp, websockets
      }:
      mkDerivation {
        pname = "purescript";
-       version = "0.13.6";
-       sha256 = "1xss3wpv6wb38gsh9r635s09cxzmiz81hhssdxzdba2pw6ifzx8j";
+       version = "0.13.8";
+       sha256 = "0sh9z3ir3jiwmi5h95v9p7j746xxidg1hrxha89c0zl6vr4sq7vh";
+       revision = "1";
+       editedCabalFile = "1ilnqfxscwkr0jl09y1dwi2aabwnghd0l22lm32jgfyq04njpc2a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-better-errors aeson-pretty ansi-terminal array base
-         base-compat blaze-html bower-json boxes bytestring Cabal cheapskate
-         clock containers cryptonite data-ordlist deepseq directory dlist
-         edit-distance file-embed filepath fsnotify Glob haskeline
-         language-javascript lifted-async lifted-base memory
+         base-compat blaze-html bower-json boxes bytestring Cabal cborg
+         cheapskate clock containers cryptonite data-ordlist deepseq
+         directory dlist edit-distance file-embed filepath fsnotify Glob
+         haskeline language-javascript lifted-async lifted-base memory
          microlens-platform monad-control monad-logger mtl parallel parsec
          pattern-arrows process protolude regex-tdfa safe scientific
-         semialign semigroups sourcemap split stm stringsearch syb text
-         these time transformers transformers-base transformers-compat
+         semialign semigroups serialise sourcemap split stm stringsearch syb
+         text these time transformers transformers-base transformers-compat
          unordered-containers utf8-string vector
        ];
        libraryToolDepends = [ happy ];
        executableHaskellDepends = [
          aeson aeson-better-errors aeson-pretty ansi-terminal ansi-wl-pprint
          array base base-compat blaze-html bower-json boxes bytestring Cabal
-         cheapskate clock containers cryptonite data-ordlist deepseq
+         cborg cheapskate clock containers cryptonite data-ordlist deepseq
          directory dlist edit-distance file-embed filepath fsnotify gitrev
          Glob haskeline http-types language-javascript lifted-async
          lifted-base memory microlens-platform monad-control monad-logger
          mtl network optparse-applicative parallel parsec pattern-arrows
          process protolude regex-tdfa safe scientific semialign semigroups
-         sourcemap split stm stringsearch syb text these time transformers
-         transformers-base transformers-compat unordered-containers
-         utf8-string vector wai wai-websockets warp websockets
+         serialise sourcemap split stm stringsearch syb text these time
+         transformers transformers-base transformers-compat
+         unordered-containers utf8-string vector wai wai-websockets warp
+         websockets
        ];
        executableToolDepends = [ happy ];
        testHaskellDepends = [
          aeson aeson-better-errors aeson-pretty ansi-terminal array base
-         base-compat blaze-html bower-json boxes bytestring Cabal cheapskate
-         clock containers cryptonite data-ordlist deepseq directory dlist
-         edit-distance file-embed filepath fsnotify Glob haskeline hspec
-         hspec-discover HUnit language-javascript lifted-async lifted-base
-         memory microlens-platform monad-control monad-logger mtl parallel
-         parsec pattern-arrows process protolude regex-tdfa safe scientific
-         semialign semigroups sourcemap split stm stringsearch syb tasty
-         tasty-golden tasty-hspec tasty-quickcheck text these time
-         transformers transformers-base transformers-compat
-         unordered-containers utf8-string vector
+         base-compat blaze-html bower-json boxes bytestring Cabal cborg
+         cheapskate clock containers cryptonite data-ordlist deepseq
+         directory dlist edit-distance file-embed filepath fsnotify Glob
+         haskeline hspec hspec-discover HUnit language-javascript
+         lifted-async lifted-base memory microlens-platform monad-control
+         monad-logger mtl parallel parsec pattern-arrows process protolude
+         regex-tdfa safe scientific semialign semigroups serialise sourcemap
+         split stm stringsearch syb tasty tasty-golden tasty-hspec
+         tasty-quickcheck text these time transformers transformers-base
+         transformers-compat unordered-containers utf8-string vector
        ];
        testToolDepends = [ happy hspec-discover ];
        doCheck = false;
@@ -200649,26 +205503,6 @@ self: {
      }:
      mkDerivation {
        pname = "purescript-bridge";
-       version = "0.13.0.0";
-       sha256 = "0jai0vrfw997w7gjs168bk8n2xjw30hnhd82pch5n58w1sy6n6ib";
-       libraryHaskellDepends = [
-         base containers directory filepath generic-deriving lens mtl text
-         transformers
-       ];
-       testHaskellDepends = [
-         base containers hspec hspec-expectations-pretty-diff text
-       ];
-       description = "Generate PureScript data types from Haskell data types";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "purescript-bridge_0_14_0_0" = callPackage
-    ({ mkDerivation, base, containers, directory, filepath
-     , generic-deriving, hspec, hspec-expectations-pretty-diff, lens
-     , mtl, text, transformers
-     }:
-     mkDerivation {
-       pname = "purescript-bridge";
        version = "0.14.0.0";
        sha256 = "1gplvmkx2c8ksk25wdinhwwbmqa5czbd4nwdgn4sa9ci10f2i4a3";
        libraryHaskellDepends = [
@@ -200680,7 +205514,6 @@ self: {
        ];
        description = "Generate PureScript data types from Haskell data types";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "purescript-bundle-fast" = callPackage
@@ -200769,6 +205602,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
@@ -200943,8 +205778,8 @@ self: {
      }:
      mkDerivation {
        pname = "pusher-http-haskell";
-       version = "1.5.1.11";
-       sha256 = "02r6w64ll7gka1zgvv6yqalbzpjmw0rx2ji84fmbnk0f7c1793sq";
+       version = "1.5.1.14";
+       sha256 = "0gfn5rfyyhbrl6sq7b6qyg86afww60c9g8y65m0qci6c91jbrv3a";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring cryptonite hashable
          http-client http-types memory text time transformers
@@ -200955,7 +205790,7 @@ self: {
          http-client http-types QuickCheck scientific text time transformers
          unordered-containers vector
        ];
-       description = "Haskell client library for the Pusher HTTP API";
+       description = "Haskell client library for the Pusher Channels HTTP API";
        license = stdenv.lib.licenses.mit;
      }) {};
 
@@ -201417,6 +206252,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
@@ -201538,8 +206393,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
@@ -201554,8 +206409,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
@@ -201608,8 +206463,6 @@ self: {
        librarySystemDepends = [ qtbase ];
        description = "Qt bindings for Haskell - C++ library";
        license = stdenv.lib.licenses.lgpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs.qt5) qtbase;};
 
   "qtah-examples" = callPackage
@@ -201627,8 +206480,6 @@ self: {
        ];
        description = "Example programs for Qtah Qt bindings";
        license = stdenv.lib.licenses.lgpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "qtah-generator" = callPackage
@@ -201638,8 +206489,8 @@ self: {
      }:
      mkDerivation {
        pname = "qtah-generator";
-       version = "0.7.0";
-       sha256 = "1zh4ih8kfp82gs5rhns6pw1bljv3v0g3kk9lyvz9rkp4j4wh6dl7";
+       version = "0.7.1";
+       sha256 = "0iizb1af1j9g4lvdz81c2cl57r6ffv07kqgls6cl9pgp43ikrjjb";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal directory filepath ];
@@ -201651,8 +206502,6 @@ self: {
        doHaddock = false;
        description = "Generator for Qtah Qt bindings";
        license = stdenv.lib.licenses.lgpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "qtah-qt5" = callPackage
@@ -201672,8 +206521,6 @@ self: {
        testHaskellDepends = [ base hoppy-runtime HUnit ];
        description = "Qt bindings for Haskell";
        license = stdenv.lib.licenses.lgpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs.qt5) qtbase;};
 
   "quack" = callPackage
@@ -201839,6 +206686,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
@@ -202248,21 +207097,46 @@ self: {
   "quickcheck-instances" = callPackage
     ({ mkDerivation, array, base, base-compat, bytestring
      , case-insensitive, containers, hashable, old-time, QuickCheck
-     , scientific, splitmix, tagged, text, time, time-compat
+     , scientific, splitmix, tagged, text, these, time, time-compat
      , transformers, transformers-compat, unordered-containers
      , uuid-types, vector
      }:
      mkDerivation {
        pname = "quickcheck-instances";
-       version = "0.3.22";
-       sha256 = "14asr9r7da3w7p4hjj51w2yb002nz8x0np8hdz9z4yjvi60vyrax";
-       revision = "4";
-       editedCabalFile = "0wx4jcmiv6f3iwc92wf4l2j9025bv4997rn2ycl08ld585m1xlgv";
+       version = "0.3.23";
+       sha256 = "1gig5dwgsahpgdz0cm06wf9lbjnh0qmr5qrlk9bc3v72pa8knc0i";
+       revision = "1";
+       editedCabalFile = "1lir5ryv2b1hn5n5fbgs9syram71zv4p4chb9xzkxvbszl5inw8k";
        libraryHaskellDepends = [
          array base base-compat bytestring case-insensitive containers
-         hashable old-time QuickCheck scientific splitmix tagged text time
-         time-compat transformers transformers-compat unordered-containers
-         uuid-types vector
+         hashable old-time QuickCheck scientific splitmix 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;
+     }) {};
+
+  "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
@@ -202270,6 +207144,7 @@ self: {
        benchmarkHaskellDepends = [ base bytestring QuickCheck ];
        description = "Common quickcheck instances";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "quickcheck-io" = callPackage
@@ -202536,8 +207411,8 @@ self: {
     ({ mkDerivation, base, QuickCheck, random, transformers }:
      mkDerivation {
        pname = "quickcheck-transformer";
-       version = "0.3.1";
-       sha256 = "1jbn17gp2f5ppm83vs2gd3fcbkv3km45qfjgr6qz532ks1a8k0fl";
+       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;
@@ -202657,10 +207532,8 @@ self: {
      }:
      mkDerivation {
        pname = "quickspec";
-       version = "2.1.2";
-       sha256 = "0igqwa195qgps5vla2a4f83rq4vdq739i94kbzzmbnniylx9wgdw";
-       revision = "1";
-       editedCabalFile = "0r1jmxcm08mhfxz6gggnnpgcwm4zd3zm76p5lj37h04cvq6kyaa5";
+       version = "2.1.4";
+       sha256 = "0h07s2dk4kjqv3hspazjwqbr8p78g2n5ah75h0a6ywdfgdy2z621";
        libraryHaskellDepends = [
          base constraints containers data-lens-light dlist QuickCheck
          quickcheck-instances random spoon template-haskell transformers
@@ -203520,25 +208393,6 @@ self: {
      }:
      mkDerivation {
        pname = "rainbox";
-       version = "0.24.4.0";
-       sha256 = "13532qzpvlq976049bdfyqzhb4g843ij3b7w654xqb2ng9q4inwz";
-       libraryHaskellDepends = [
-         base bytestring containers lens rainbow text
-       ];
-       testHaskellDepends = [
-         base bytestring containers lens QuickCheck rainbow tasty
-         tasty-quickcheck text
-       ];
-       description = "Two-dimensional box pretty printing, with colors";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "rainbox_0_26_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, lens, QuickCheck
-     , rainbow, tasty, tasty-quickcheck, text
-     }:
-     mkDerivation {
-       pname = "rainbox";
        version = "0.26.0.0";
        sha256 = "07hh904p0mlc3iww184849yps80kwrhdna9nr840m2qyd81m37d1";
        libraryHaskellDepends = [
@@ -203550,7 +208404,6 @@ self: {
        ];
        description = "Two-dimensional box pretty printing, with colors";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "rake" = callPackage
@@ -203710,7 +208563,7 @@ self: {
        sha256 = "14fnk2q702qm0mh30r9kznbh4ikpv4fsd5mrnwphm5d06vmq6hq9";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base haskell98 ];
-       description = "'$' in reverse.";
+       description = "'$' in reverse";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -203737,8 +208590,8 @@ self: {
     ({ mkDerivation, base, criterion, hspec }:
      mkDerivation {
        pname = "rampart";
-       version = "1.1.0.0";
-       sha256 = "1bzgc5pij7i1c47b1jbyfsx7b3lk961fh5817qfmwlwx096g462f";
+       version = "1.1.0.1";
+       sha256 = "0b0c8qkkj2xqmdd53q198kwm0n7qvdyh6qxmp24mqkpjcrskh6vl";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec ];
        benchmarkHaskellDepends = [ base criterion ];
@@ -203823,6 +208676,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "random_1_2_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, doctest
+     , gauge, mtl, mwc-random, primitive, rdtsc, smallcheck, split
+     , splitmix, tasty, tasty-expected-failure, tasty-hunit
+     , tasty-smallcheck, time, unliftio, vector
+     }:
+     mkDerivation {
+       pname = "random";
+       version = "1.2.0";
+       sha256 = "1pmr7zbbqg58kihhhwj8figf5jdchhi7ik2apsyxbgsqq3vrqlg4";
+       libraryHaskellDepends = [ base bytestring deepseq mtl splitmix ];
+       testHaskellDepends = [
+         base bytestring containers doctest mwc-random primitive smallcheck
+         tasty tasty-expected-failure tasty-hunit tasty-smallcheck unliftio
+         vector
+       ];
+       benchmarkHaskellDepends = [
+         base gauge mtl rdtsc split splitmix time
+       ];
+       description = "Pseudo-random number generation";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "random-access-file" = callPackage
     ({ mkDerivation, base, bytestring, concurrent-extra, containers
      , criterion, directory, lrucaching, mwc-random, random, stm, unix
@@ -203939,23 +208816,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
@@ -203968,6 +208849,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
@@ -204018,14 +208901,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
@@ -204247,6 +209132,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
@@ -204290,15 +209177,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "rank2classes_1_4" = callPackage
+  "rank2classes_1_4_0_1" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, distributive, doctest
      , markdown-unlit, tasty, tasty-hunit, template-haskell
      , transformers
      }:
      mkDerivation {
        pname = "rank2classes";
-       version = "1.4";
-       sha256 = "0h8ysf32nw28aqhnnq2cckagwfrri4k44p3pzhhlp6lvhckvqnq1";
+       version = "1.4.0.1";
+       sha256 = "1r72z98jvnih16x074izb0wp9gwbsjs2ihvj8a72xxyakdad71r9";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base distributive template-haskell transformers
@@ -204630,16 +209517,13 @@ self: {
      }:
      mkDerivation {
        pname = "ratel";
-       version = "1.0.10";
-       sha256 = "0riawgz2nyy1c5n2a6s2cmay8q5hxcc86chflqqmbkjbm4vqxcq3";
+       version = "1.0.12";
+       sha256 = "00xhs04jrrbi1n2sx86v4pd3sggyk2682s3zxfmhb16zysh3hdx2";
        libraryHaskellDepends = [
          aeson base bytestring case-insensitive containers http-client
          http-client-tls http-types text uuid
        ];
-       testHaskellDepends = [
-         aeson base bytestring case-insensitive containers filepath hspec
-         http-client http-client-tls http-types text uuid
-       ];
+       testHaskellDepends = [ base filepath hspec ];
        description = "Notify Honeybadger about exceptions";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -204650,8 +209534,8 @@ self: {
      }:
      mkDerivation {
        pname = "ratel-wai";
-       version = "1.1.2";
-       sha256 = "1jcv32l1f610a78da77qrsknnyyqfj6khg2hlzsm4vlaz3hsss7q";
+       version = "1.1.3";
+       sha256 = "154zxrv9w904bgrgwb623zkqxzp200ivhwfpcwlb8r2903jmw7vq";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers http-client ratel wai
        ];
@@ -204728,21 +209612,34 @@ self: {
      }) {};
 
   "rattle" = callPackage
-    ({ mkDerivation, base, bytestring, cryptohash-sha256, deepseq
-     , directory, extra, filepath, filepattern, hashable, shake, time
-     , transformers, unordered-containers
+    ({ mkDerivation, async, base, bytestring, Cabal, cmdargs
+     , cryptohash-sha256, deepseq, directory, extra, filepath
+     , filepattern, hashable, heaps, js-dgtable, js-flot, js-jquery
+     , process, shake, template-haskell, terminal-size, time
+     , transformers, unix, unordered-containers, utf8-string
      }:
      mkDerivation {
        pname = "rattle";
-       version = "0.1";
-       sha256 = "10ra58lqhi9pn92rgyv6lkz7036kbq9gr6ly5w1lqdayla10fqhr";
-       revision = "1";
-       editedCabalFile = "1ppli9l28b4pg6h57kx7vvy0wqacn4vx86bvrgjcwwlvlir49scw";
+       version = "0.2";
+       sha256 = "1nd3knid238fa85rm2d0kavhyry6d6lilpk2p4ki9njgq2003bbk";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         base bytestring cryptohash-sha256 deepseq directory extra filepath
-         hashable shake time transformers unordered-containers
+         async base bytestring cryptohash-sha256 deepseq directory extra
+         filepath filepattern hashable heaps js-dgtable js-flot js-jquery
+         shake template-haskell terminal-size time transformers unix
+         unordered-containers utf8-string
+       ];
+       executableHaskellDepends = [
+         base bytestring cmdargs directory extra filepath process shake
+       ];
+       testHaskellDepends = [
+         async base bytestring Cabal cryptohash-sha256 deepseq directory
+         extra filepath filepattern hashable heaps js-dgtable js-flot
+         js-jquery shake template-haskell terminal-size time transformers
+         unix unordered-containers utf8-string
        ];
-       testHaskellDepends = [ base directory extra filepattern shake ];
        description = "Forward build system, with caching and speculation";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -204757,8 +209654,8 @@ self: {
      }:
      mkDerivation {
        pname = "rattletrap";
-       version = "9.1.1";
-       sha256 = "11q115yfjjafq2dyn88xc6xnynqw2i6yn7g9n8yy9qaa8jpgibzz";
+       version = "9.1.4";
+       sha256 = "189nyd8zbylmc2r65m4vag1h47d6gzcrvp6k81yhlci8bqcddncp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -204974,6 +209871,28 @@ self: {
        broken = true;
      }) {};
 
+  "rbst" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, doctest
+     , gauge, Glob, hspec, hspec-core, hspec-expectations
+     , mersenne-random-pure64, mwc-random, QuickCheck, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "rbst";
+       version = "0.0.0.1";
+       sha256 = "0f2pp1vqrwcn0lh0261acmhbwlcmc6sh2dkqhcl67xk2h62d9ipj";
+       libraryHaskellDepends = [
+         base bytestring containers deepseq mersenne-random-pure64 text
+         transformers
+       ];
+       testHaskellDepends = [
+         base doctest Glob hspec hspec-core hspec-expectations QuickCheck
+       ];
+       benchmarkHaskellDepends = [ base gauge mwc-random ];
+       description = "Randomized Binary Search Trees";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "rc" = callPackage
     ({ mkDerivation, base, dde, hmatrix, Learning, linear, random
      , vector
@@ -205026,6 +209945,8 @@ self: {
        pname = "rcu";
        version = "0.2.4";
        sha256 = "1zl6gl6b9x2ppxzrvb356216f7gi1kpwxsqb0w220f86wyzf9gbr";
+       revision = "1";
+       editedCabalFile = "07blx598aqwkfgicsl7g7i9gf49550ln8zz0gp4g3kyxq8pvmphb";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -205048,10 +209969,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
        ];
@@ -205065,22 +209984,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.0";
-       sha256 = "10436ff2pp3jxjkfaqg71d1hrn7xq6dpp5xd6gbkf22a1hq4g93b";
+       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 = [
@@ -205090,8 +210009,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion deepseq text ];
        description = "A library for RDF processing in Haskell";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "rdioh" = callPackage
@@ -205324,8 +210241,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
        ];
@@ -205359,8 +210276,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
        ];
@@ -205668,6 +210585,26 @@ self: {
        broken = true;
      }) {};
 
+  "readability" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, html-conduit
+     , http-conduit, optparse-applicative, text, xml-conduit
+     }:
+     mkDerivation {
+       pname = "readability";
+       version = "0.1.0.0";
+       sha256 = "1px8fjwglcrh6vp2j8jcbslc6izgaj8cnl0w7g997gps62jbqn34";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring containers html-conduit text xml-conduit
+       ];
+       executableHaskellDepends = [
+         aeson base http-conduit optparse-applicative text xml-conduit
+       ];
+       description = "Extracts text of main article from HTML document";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "readable" = callPackage
     ({ mkDerivation, base, bytestring, text }:
      mkDerivation {
@@ -205738,19 +210675,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.5.0";
-       sha256 = "01h1zaa14v1hfj7gzm7y1x1rf8mh2w10h1x8k3z3y05kgsfhaspa";
+       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;
@@ -205822,28 +210760,58 @@ self: {
      }) {};
 
   "reanimate" = callPackage
-    ({ mkDerivation, aeson, ansi-wl-pprint, attoparsec, base
-     , base64-bytestring, bytestring, cassava, chiphunk, colour
-     , containers, cubicbezier, directory, filepath, fsnotify, geojson
-     , hashable, here, JuicyPixels, lens, linear, matrix, mtl
-     , open-browser, optparse-applicative, parallel, process
-     , random-shuffle, reanimate-svg, temporary, text, time, vector
-     , websockets, xml
+    ({ mkDerivation, aeson, ansi-wl-pprint, array, attoparsec, base
+     , base64-bytestring, bytestring, cassava, cereal, chiphunk, colour
+     , containers, cubicbezier, directory, filepath, fingertree
+     , fsnotify, geojson, hashable, here, hmatrix, JuicyPixels, lens
+     , linear, matrix, mtl, open-browser, optparse-applicative, parallel
+     , process, random, random-shuffle, reanimate-svg, split, temporary
+     , text, time, vector, vector-space, websockets, xml
      }:
      mkDerivation {
        pname = "reanimate";
-       version = "0.2.0.2";
-       sha256 = "14912rzn8bgrz92q7nv3yjxyfdjcznfgs2x1rnw1mc6q8imrfppy";
+       version = "0.3.3.0";
+       sha256 = "0yyhspd13wws99kpb61cw3bc6yrvkxrq86y0p9w4sl66jdl1zbli";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson ansi-wl-pprint array attoparsec base base64-bytestring
+         bytestring cassava cereal chiphunk colour containers cubicbezier
+         directory filepath fingertree fsnotify geojson hashable here
+         hmatrix JuicyPixels lens linear matrix mtl open-browser
+         optparse-applicative parallel process random random-shuffle
+         reanimate-svg split temporary text time vector vector-space
+         websockets xml
+       ];
+       description = "Animation library based on SVGs";
+       license = stdenv.lib.licenses.publicDomain;
+     }) {};
+
+  "reanimate_0_4_1_0" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, array, attoparsec, base
+     , base64-bytestring, bytestring, cassava, cereal, chiphunk, colour
+     , containers, cubicbezier, directory, earcut, filepath, fsnotify
+     , geojson, hashable, hmatrix, 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
+     }:
+     mkDerivation {
+       pname = "reanimate";
+       version = "0.4.1.0";
+       sha256 = "12mql2i3433y3cj4x3rcilmvja4cnyk9y5cykw16sg30kbp1riki";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson ansi-wl-pprint attoparsec base base64-bytestring bytestring
-         cassava chiphunk colour containers cubicbezier directory filepath
-         fsnotify geojson hashable here JuicyPixels lens linear matrix mtl
-         open-browser optparse-applicative parallel process random-shuffle
-         reanimate-svg temporary text time vector websockets xml
+         aeson ansi-terminal array attoparsec base base64-bytestring
+         bytestring cassava cereal chiphunk colour containers cubicbezier
+         directory earcut filepath fsnotify geojson hashable hmatrix
+         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
        ];
        description = "Animation library based on SVGs";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "reanimate-svg" = callPackage
@@ -205866,6 +210834,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
@@ -205914,28 +210903,27 @@ self: {
      }) {};
 
   "rebase" = callPackage
-    ({ mkDerivation, base, base-prelude, bifunctors, bytestring
-     , comonad, containers, contravariant, contravariant-extras, deepseq
-     , dlist, either, fail, hashable, mtl, profunctors, scientific
-     , selective, semigroupoids, semigroups, stm, text, time
-     , transformers, unordered-containers, uuid, vector, void
+    ({ 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.4.1";
-       sha256 = "13fvhsxkzrghl6d2isjsxjkfkbkpnfgbdb20lc1z7izqjkvjj8rc";
+       version = "1.6.1";
+       sha256 = "020aw7wlgx8nqbq6ara13szgxw2q0n0hx3vrsn2lfp53b2jdsvax";
        libraryHaskellDepends = [
-         base base-prelude bifunctors bytestring comonad containers
-         contravariant contravariant-extras deepseq dlist either fail
-         hashable mtl profunctors scientific selective semigroupoids
-         semigroups stm text time transformers unordered-containers uuid
-         vector void
+         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;
      }) {};
 
-  "rebase_1_6_1" = callPackage
+  "rebase_1_7" = callPackage
     ({ mkDerivation, base, bifunctors, bytestring, comonad, containers
      , contravariant, contravariant-extras, deepseq, dlist, either
      , hashable, mtl, profunctors, scientific, selective, semigroupoids
@@ -205944,8 +210932,8 @@ self: {
      }:
      mkDerivation {
        pname = "rebase";
-       version = "1.6.1";
-       sha256 = "020aw7wlgx8nqbq6ara13szgxw2q0n0hx3vrsn2lfp53b2jdsvax";
+       version = "1.7";
+       sha256 = "1gqdqx2sbm7hn6pyqqi65g8mwz2igsq1lz7y3qdplv2aic6myla7";
        libraryHaskellDepends = [
          base bifunctors bytestring comonad containers contravariant
          contravariant-extras deepseq dlist either hashable mtl profunctors
@@ -205979,6 +210967,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.0.0";
+       sha256 = "14nw3ns52da4jlbwblbavchxzv1pjhc1zkjzcwfrqznxgsd5525p";
+       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
@@ -206020,25 +211023,8 @@ self: {
      }:
      mkDerivation {
        pname = "record-dot-preprocessor";
-       version = "0.2.3";
-       sha256 = "0pmy59xihjsn31ahq76cjsla779b4vidzf7m9g4j8z88pk65rk7z";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base extra ghc uniplate ];
-       executableHaskellDepends = [ base extra ];
-       testHaskellDepends = [ base extra filepath record-hasfield ];
-       description = "Preprocessor to allow record.field syntax";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "record-dot-preprocessor_0_2_5" = callPackage
-    ({ mkDerivation, base, extra, filepath, ghc, record-hasfield
-     , uniplate
-     }:
-     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 ];
@@ -206046,7 +211032,6 @@ self: {
        testHaskellDepends = [ base extra filepath record-hasfield ];
        description = "Preprocessor to allow record.field syntax";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "record-encode" = callPackage
@@ -206243,6 +211228,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
@@ -206315,8 +211318,8 @@ self: {
      }:
      mkDerivation {
        pname = "red-black-record";
-       version = "2.1.3.0";
-       sha256 = "0qaa7y4n4hv6mlipnmfkvfbsi9gd1zg9npaf14l9y6v9g39wx27x";
+       version = "2.1.4.0";
+       sha256 = "1yc5nfkfq40gkwmbi29077c3kl9zqzliw9srpp7qv1qgq6sppmfi";
        libraryHaskellDepends = [ base sop-core ];
        testHaskellDepends = [
          aeson base bytestring doctest profunctors sop-core tasty
@@ -206388,8 +211391,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
@@ -206628,6 +211631,22 @@ self: {
        broken = true;
      }) {};
 
+  "ref-extras" = callPackage
+    ({ mkDerivation, base, hashable, little-rio, microlens, stm
+     , unliftio, unliftio-core, unordered-containers
+     }:
+     mkDerivation {
+       pname = "ref-extras";
+       version = "0.1.1";
+       sha256 = "0cv8h2v7vp6gv2lslzc7rpagaa871bi5drzml3090wna1kqnd0nq";
+       libraryHaskellDepends = [
+         base hashable little-rio microlens stm unliftio unliftio-core
+         unordered-containers
+       ];
+       description = "Extra stuff for mutable references";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "ref-fd" = callPackage
     ({ mkDerivation, base, stm, transformers }:
      mkDerivation {
@@ -206752,18 +211771,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";
@@ -206779,6 +211796,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
@@ -206800,15 +211819,15 @@ self: {
      }) {};
 
   "reflection" = callPackage
-    ({ mkDerivation, base, hspec, hspec-discover, QuickCheck
-     , template-haskell
+    ({ mkDerivation, base, containers, hspec, hspec-discover
+     , QuickCheck, template-haskell
      }:
      mkDerivation {
        pname = "reflection";
-       version = "2.1.5";
-       sha256 = "0xr947nj1vww5b8fwqmypxm3y3j5sxl4z8wnf834f83jzfzyjbi7";
+       version = "2.1.6";
+       sha256 = "1kd6dgnp99dzbkxdnj01g81j03v7zq5cwg0sf19rlcmvgs8i8gmz";
        libraryHaskellDepends = [ base template-haskell ];
-       testHaskellDepends = [ base hspec QuickCheck ];
+       testHaskellDepends = [ base containers hspec QuickCheck ];
        testToolDepends = [ hspec-discover ];
        description = "Reifies arbitrary terms into types that can be reflected back into terms";
        license = stdenv.lib.licenses.bsd3;
@@ -206877,8 +211896,6 @@ self: {
        ];
        description = "Higher-order Functional Reactive Programming";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "reflex-animation" = callPackage
@@ -206956,8 +211973,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 = [
@@ -206976,8 +211993,8 @@ self: {
      }:
      mkDerivation {
        pname = "reflex-dom";
-       version = "0.5.3";
-       sha256 = "04xnalhrckz5idnx1d4d93nz8fnxnjsd03kciln36wwd895bcmrk";
+       version = "0.6.0.0";
+       sha256 = "1iimsk89akb7v2i1k1gaa6a6bhdyf2rsggac9k1xizxkylara5k4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -206985,7 +212002,7 @@ self: {
        ];
        description = "Functional Reactive Web Apps with Reflex";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
+       maintainers = with stdenv.lib.maintainers; [ maralorn ];
      }) {};
 
   "reflex-dom-colonnade" = callPackage
@@ -207025,32 +212042,33 @@ self: {
      }) {};
 
   "reflex-dom-core" = callPackage
-    ({ mkDerivation, aeson, base, bifunctors, bimap, blaze-builder
-     , bytestring, chrome-test-utils, constraints, constraints-extras
-     , containers, contravariant, data-default, dependent-map
-     , dependent-sum, dependent-sum-template, directory
-     , exception-transformers, exceptions, filepath, ghcjs-dom, hlint
-     , hspec, hspec-core, hspec-webdriver, http-types, HUnit, jsaddle
-     , jsaddle-warp, keycode, lens, lifted-base, monad-control, mtl
-     , network, network-uri, primitive, process, random, ref-tf, reflex
+    ({ mkDerivation, aeson, async, base, bifunctors, bimap
+     , blaze-builder, bytestring, case-insensitive, chrome-test-utils
+     , constraints, constraints-extras, containers, contravariant
+     , data-default, dependent-map, dependent-sum
+     , dependent-sum-template, directory, exception-transformers
+     , exceptions, filepath, ghcjs-dom, hlint, hspec, hspec-core
+     , hspec-webdriver, http-types, HUnit, jsaddle, jsaddle-warp
+     , keycode, lens, lifted-base, monad-control, mtl, network
+     , network-uri, primitive, process, random, ref-tf, reflex
      , semialign, semigroups, silently, stm, template-haskell, temporary
      , text, these, transformers, unix, wai, wai-websockets, warp
      , webdriver, websockets, which, zenc
      }:
      mkDerivation {
        pname = "reflex-dom-core";
-       version = "0.5.3";
-       sha256 = "0znymqld4d6fp8l14y0gn86nbffaw8b0ql0y7bj3vnx80crjc32j";
+       version = "0.6.0.0";
+       sha256 = "0819858z5p6847ac1rb1hsfr5ikn7x5xii8vgqbih4fg39mqfy14";
        libraryHaskellDepends = [
-         aeson base bifunctors bimap blaze-builder bytestring constraints
-         containers contravariant data-default dependent-map dependent-sum
-         dependent-sum-template directory exception-transformers ghcjs-dom
-         jsaddle keycode lens monad-control mtl network-uri primitive random
-         ref-tf reflex semialign semigroups stm template-haskell text these
-         transformers unix zenc
+         aeson base bifunctors bimap blaze-builder bytestring
+         case-insensitive constraints containers contravariant data-default
+         dependent-map dependent-sum dependent-sum-template directory
+         exception-transformers ghcjs-dom jsaddle keycode lens monad-control
+         mtl network-uri primitive random ref-tf reflex semialign semigroups
+         stm template-haskell text these transformers unix zenc
        ];
        testHaskellDepends = [
-         aeson base bytestring chrome-test-utils constraints
+         aeson async base bytestring chrome-test-utils constraints
          constraints-extras containers dependent-map dependent-sum
          dependent-sum-template directory exceptions filepath ghcjs-dom
          hlint hspec hspec-core hspec-webdriver http-types HUnit jsaddle
@@ -207100,17 +212118,35 @@ 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, reflex, reflex-dom
+    ({ mkDerivation, base, containers, jsaddle, mtl, ref-tf, reflex
+     , reflex-dom
      }:
      mkDerivation {
        pname = "reflex-dom-retractable";
-       version = "0.1.0.0";
-       sha256 = "0qdr3xrpg5dhfsbz6b2883jkhvc7nckmn05gyc844xn0fjlrlbda";
-       revision = "2";
-       editedCabalFile = "19l4apgi05q2hi145wfyp3f6nkmdj9njpqmjk5g6hjma3pgncpsc";
+       version = "0.1.3.0";
+       sha256 = "0l2nz78cjx0p03h0h9pflhfd59p2j4drsglsm9yxys0zglbxnqwl";
        libraryHaskellDepends = [
-         base containers jsaddle mtl reflex reflex-dom
+         base containers jsaddle mtl ref-tf reflex reflex-dom
        ];
        description = "Routing and retractable back button for reflex-dom";
        license = stdenv.lib.licenses.mit;
@@ -207165,8 +212201,8 @@ self: {
      }:
      mkDerivation {
        pname = "reflex-fsnotify";
-       version = "0.2.1.0";
-       sha256 = "1ym220myy521j4lm0wrjydg18ya5fw71j0mv3md35vmn18n6r0d4";
+       version = "0.2.1.1";
+       sha256 = "0r7fv01dgg5l45yspgj3n2gh6yq0qkjv19hj9vq6284x04vldnqj";
        libraryHaskellDepends = [
          base containers directory filepath fsnotify reflex
        ];
@@ -207184,8 +212220,8 @@ self: {
      }:
      mkDerivation {
        pname = "reflex-ghci";
-       version = "0.1.4.0";
-       sha256 = "16kd9slfm6kczgcmh4n42gyxpyykz6s6hafkgsh66lcd7a1d85s8";
+       version = "0.1.4.1";
+       sha256 = "0505glpxc6yf7nwkgz9l2m8diqm39sal7vg9h1g8f8i3x6ab1rw3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -207306,21 +212342,26 @@ self: {
      }) {};
 
   "reflex-process" = callPackage
-    ({ mkDerivation, base, bytestring, containers, data-default
-     , process, reflex, reflex-vty, text, unix, vty
+    ({ mkDerivation, async, base, bytestring, containers, data-default
+     , dependent-sum, hspec, mtl, primitive, process, ref-tf, reflex
+     , reflex-vty, text, unix, vty
      }:
      mkDerivation {
        pname = "reflex-process";
-       version = "0.2.1.0";
-       sha256 = "0q5l7vqdbgzrfyl8jzbx5f3c5xhnxjn3081p602drirnxy3js7yk";
+       version = "0.3.0.0";
+       sha256 = "1hfzp0hnqhpdcri6qqqbndl3nlf028hn78kmdc6h1mzwx5va7rh5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bytestring data-default process reflex unix
+         async base bytestring data-default process reflex unix
        ];
        executableHaskellDepends = [
          base containers data-default process reflex reflex-vty text vty
        ];
+       testHaskellDepends = [
+         async base bytestring containers dependent-sum hspec mtl primitive
+         process ref-tf reflex unix
+       ];
        description = "reflex-frp interface for running shell commands";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -207350,15 +212391,19 @@ self: {
 
   "reflex-test-host" = callPackage
     ({ mkDerivation, base, dependent-sum, hspec, hspec-contrib, HUnit
-     , ref-tf, reflex, these
+     , lens, mtl, primitive, ref-tf, reflex, these, transformers
      }:
      mkDerivation {
        pname = "reflex-test-host";
-       version = "0.1.0.0";
-       sha256 = "0yg1lg68xr5rs8l68i0znj5zp0z6rq7b515sfz3qvnmyv7qah946";
-       libraryHaskellDepends = [ base dependent-sum ref-tf reflex these ];
+       version = "0.1.2.1";
+       sha256 = "0hpvpf0628rc43cnh7k0b0adjb13cw9d8ykhhk0x4n2p7i9cp2zi";
+       libraryHaskellDepends = [
+         base dependent-sum lens mtl primitive ref-tf reflex these
+         transformers
+       ];
        testHaskellDepends = [
-         base dependent-sum hspec hspec-contrib HUnit ref-tf reflex these
+         base dependent-sum hspec hspec-contrib HUnit lens mtl primitive
+         ref-tf reflex these transformers
        ];
        description = "reflex host methods for testing without external events";
        license = stdenv.lib.licenses.bsd3;
@@ -207391,8 +212436,8 @@ self: {
      }:
      mkDerivation {
        pname = "reflex-vty";
-       version = "0.1.3.0";
-       sha256 = "1200svlgpy4zqdfarx1b8n64vgskb9jl00p548ya4pwi0bsv95y7";
+       version = "0.1.4.0";
+       sha256 = "0z4yca6hh5rwgybsf6ssklhvpl34ikvi9j6wq99df5y0hpy9185f";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -207668,6 +212713,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 {
@@ -208200,8 +213269,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;
@@ -208224,8 +213293,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
        ];
@@ -208392,8 +213461,37 @@ self: {
      }:
      mkDerivation {
        pname = "registry";
-       version = "0.1.7.1";
-       sha256 = "163mkxrd30hxhp4awd05b3qxhqrg18lzl4m9m5r74j82s0yhq7l0";
+       version = "0.1.9.1";
+       sha256 = "0vnx2sq3m6mqm1wcicknf7b8pfamx4pbn51hmzs6arwnvsq23vng";
+       libraryHaskellDepends = [
+         base containers exceptions hashable mmorph mtl protolude resourcet
+         semigroupoids semigroups template-haskell text transformers-base
+       ];
+       testHaskellDepends = [
+         async base bytestring containers directory exceptions generic-lens
+         hashable hedgehog io-memoize mmorph MonadRandom mtl multimap
+         protolude random resourcet semigroupoids semigroups tasty
+         tasty-discover tasty-hedgehog tasty-th template-haskell text
+         transformers-base universum
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "data structure for assembling components";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "registry_0_1_9_3" = callPackage
+    ({ mkDerivation, async, base, bytestring, containers, directory
+     , exceptions, generic-lens, hashable, hedgehog, io-memoize, mmorph
+     , MonadRandom, mtl, multimap, protolude, random, resourcet
+     , semigroupoids, semigroups, tasty, tasty-discover, tasty-hedgehog
+     , tasty-th, template-haskell, text, transformers-base, universum
+     }:
+     mkDerivation {
+       pname = "registry";
+       version = "0.1.9.3";
+       sha256 = "1x418lv2nnw5ryrinciq1dg7wgmz0zsvv8v3mfrp38rx5x88hbic";
        libraryHaskellDepends = [
          base containers exceptions hashable mmorph mtl protolude resourcet
          semigroupoids semigroups template-haskell text transformers-base
@@ -208694,28 +213792,6 @@ self: {
     ({ mkDerivation, array, base, bytestring, containers, dlist
      , names-th, persistable-record, product-isomorphic
      , quickcheck-simple, sql-words, template-haskell, text
-     , th-reify-compat, time, time-locale-compat, transformers
-     }:
-     mkDerivation {
-       pname = "relational-query";
-       version = "0.12.2.2";
-       sha256 = "0768cw6c5chzdcwshjjniysik5d1yj7zvhwncqnn0wgy4gp6kzjv";
-       libraryHaskellDepends = [
-         array base bytestring containers dlist names-th persistable-record
-         product-isomorphic sql-words template-haskell text th-reify-compat
-         time time-locale-compat transformers
-       ];
-       testHaskellDepends = [
-         base containers product-isomorphic quickcheck-simple transformers
-       ];
-       description = "Typeful, Modular, Relational, algebraic query engine";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "relational-query_0_12_2_3" = callPackage
-    ({ mkDerivation, array, base, bytestring, containers, dlist
-     , names-th, persistable-record, product-isomorphic
-     , quickcheck-simple, sql-words, template-haskell, text
      , th-constraint-compat, th-reify-compat, time, time-locale-compat
      , transformers
      }:
@@ -208734,7 +213810,6 @@ self: {
        ];
        description = "Typeful, Modular, Relational, algebraic query engine";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "relational-query-HDBC" = callPackage
@@ -208761,6 +213836,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
@@ -208849,6 +213952,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Automation of Haskell package release process";
        license = stdenv.lib.licenses.asl20;
+       maintainers = with stdenv.lib.maintainers; [ maralorn ];
      }) {};
 
   "relevant-time" = callPackage
@@ -208864,6 +213968,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 {
@@ -208914,24 +214031,22 @@ self: {
 
   "relude" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, doctest
-     , gauge, ghc-prim, Glob, hashable, hedgehog, mtl, QuickCheck, stm
-     , text, transformers, unordered-containers
+     , gauge, ghc-prim, Glob, hashable, hedgehog, mtl, stm, text
+     , transformers, unordered-containers
      }:
      mkDerivation {
        pname = "relude";
-       version = "0.6.0.0";
-       sha256 = "0idf1r6hv9aksvis08z5bmnzc03k713609zcpy33655qwyl28fic";
+       version = "0.7.0.0";
+       sha256 = "1gx1h3656wz80v72acqky88iv7a2shinfv6apzzyjxii8lc22jf7";
        libraryHaskellDepends = [
          base bytestring containers deepseq ghc-prim hashable mtl stm text
          transformers unordered-containers
        ];
        testHaskellDepends = [
-         base bytestring doctest Glob hedgehog QuickCheck text
-       ];
-       benchmarkHaskellDepends = [
-         base containers gauge unordered-containers
+         base bytestring containers doctest Glob hedgehog text
        ];
-       description = "Custom prelude from Kowainik";
+       benchmarkHaskellDepends = [ base gauge unordered-containers ];
+       description = "Safe, performant, user-friendly and lightweight Haskell Standard Library";
        license = stdenv.lib.licenses.mit;
      }) {};
 
@@ -209549,55 +214664,30 @@ self: {
      }:
      mkDerivation {
        pname = "replace-attoparsec";
-       version = "1.2.2.0";
-       sha256 = "1byrd62j7aafjn959xciam6s17zjvrisfi6q4y6ndvla77rg09cm";
-       libraryHaskellDepends = [ attoparsec base bytestring text ];
-       testHaskellDepends = [
-         attoparsec base bytestring Cabal parsers text
-       ];
-       description = "Find, replace, and edit text patterns with Attoparsec parsers (instead of regex)";
-       license = stdenv.lib.licenses.bsd2;
-     }) {};
-
-  "replace-attoparsec_1_4_0_0" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring, Cabal, parsers, text
-     }:
-     mkDerivation {
-       pname = "replace-attoparsec";
-       version = "1.4.0.0";
-       sha256 = "1w0dlwfipli94g3fbqh118pmwgyzgrcwp32s60sk7a78cbr5mic4";
+       version = "1.4.1.0";
+       sha256 = "0g913l7vvxz65pfl6cyni8827wri5iyj4jszvyrxzav58z4ybi20";
        libraryHaskellDepends = [ attoparsec base bytestring text ];
        testHaskellDepends = [
          attoparsec base bytestring Cabal parsers text
        ];
        description = "Find, replace, and split string patterns with Attoparsec parsers (instead of regex)";
        license = stdenv.lib.licenses.bsd2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "replace-megaparsec" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, megaparsec, text }:
-     mkDerivation {
-       pname = "replace-megaparsec";
-       version = "1.2.1.0";
-       sha256 = "1k00a6xqdk8fgcja0v0flydk3afrpdrn4cf1csin7waqkl2kwvrb";
-       libraryHaskellDepends = [ base bytestring megaparsec text ];
-       testHaskellDepends = [ base bytestring Cabal megaparsec text ];
-       description = "Find, replace, and edit text patterns with Megaparsec parsers";
-       license = stdenv.lib.licenses.bsd2;
-     }) {};
-
-  "replace-megaparsec_1_4_1_0" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, megaparsec, text }:
+    ({ mkDerivation, base, bytestring, Cabal, megaparsec
+     , parser-combinators, text
+     }:
      mkDerivation {
        pname = "replace-megaparsec";
-       version = "1.4.1.0";
-       sha256 = "0a51fsdmjq3iaamdnwslyrv99psh03qhqk8j0k3ikbjxqj3md3br";
-       libraryHaskellDepends = [ base bytestring megaparsec text ];
+       version = "1.4.2.0";
+       sha256 = "0d3p138aqyp1f9bhq85vgzw67vis3cqlp6k90hlfiyq14ry5ck6f";
+       libraryHaskellDepends = [
+         base bytestring megaparsec parser-combinators text
+       ];
        testHaskellDepends = [ base bytestring Cabal megaparsec text ];
        description = "Find, replace, and split string patterns with Megaparsec parsers (instead of regex)";
        license = stdenv.lib.licenses.bsd2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "replica" = callPackage
@@ -209685,6 +214775,23 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "repline_0_4_0_0" = callPackage
+    ({ mkDerivation, base, containers, exceptions, haskeline, mtl
+     , process
+     }:
+     mkDerivation {
+       pname = "repline";
+       version = "0.4.0.0";
+       sha256 = "1dspwi28krinkxdd7waq4y6plz0dfmzz72885p9pcqp1r14qrhj3";
+       libraryHaskellDepends = [
+         base containers exceptions haskeline mtl process
+       ];
+       testHaskellDepends = [ base containers mtl process ];
+       description = "Haskeline wrapper for GHCi-like REPL interfaces";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "repo-based-blog" = callPackage
     ({ mkDerivation, base, blaze-html, containers, data-default
      , directory, dyre, filepath, filestore, hspec, hspec-discover
@@ -209830,28 +214937,61 @@ self: {
      , 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
-     , text, time, transformers, transformers-base, unordered-containers
+     , template-haskell, text, time, transformers, transformers-base
+     , unordered-containers
      }:
      mkDerivation {
        pname = "req";
-       version = "3.1.0";
-       sha256 = "0j53bbhyhjy2q91lnvpwldjsck57p72y5l815c9mi0gzihchyksb";
+       version = "3.2.0";
+       sha256 = "1r6fkhn99v6vil8khd23pdai3j6wgn724cy00q5x20fn3jz88ksw";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson authenticate-oauth base blaze-builder bytestring
          case-insensitive connection http-api-data http-client
-         http-client-tls http-types modern-uri monad-control mtl retry text
-         time transformers transformers-base
+         http-client-tls http-types modern-uri monad-control mtl retry
+         template-haskell text time transformers transformers-base
+       ];
+       testHaskellDepends = [
+         aeson base blaze-builder bytestring case-insensitive hspec
+         hspec-core http-client http-types modern-uri monad-control mtl
+         QuickCheck retry template-haskell text time unordered-containers
+       ];
+       testToolDepends = [ hspec-discover ];
+       doCheck = false;
+       description = "Easy-to-use, type-safe, expandable, high-level HTTP client library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "req_3_5_0" = callPackage
+    ({ mkDerivation, aeson, authenticate-oauth, base, blaze-builder
+     , 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.5.0";
+       sha256 = "0ydz6m3d87apmkd8i55q4r57cqd65sssxz972p6vv77v3r471n26";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson authenticate-oauth base blaze-builder bytestring
+         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
          hspec-core http-client http-types modern-uri monad-control mtl
-         QuickCheck retry text time unordered-containers
+         QuickCheck retry template-haskell text time unordered-containers
        ];
        testToolDepends = [ hspec-discover ];
        doCheck = false;
        description = "Easy-to-use, type-safe, expandable, high-level HTTP client library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "req-conduit" = callPackage
@@ -209862,8 +215002,8 @@ self: {
        pname = "req-conduit";
        version = "1.0.0";
        sha256 = "193bv4jp7rrbpb1i9as9s2l978wz5kbz5kvr7ppllif5ppj699qx";
-       revision = "6";
-       editedCabalFile = "0wmzf62r5jawlccbndvsrr6cj4r0bdl4mqqwcnxz412cdq71w8hz";
+       revision = "7";
+       editedCabalFile = "08ynq0760hd2v1pmbfmc2n71vjr33qmv1cgnklbqn2ibzbg3mmx2";
        libraryHaskellDepends = [
          base bytestring conduit http-client req resourcet transformers
        ];
@@ -209983,6 +215123,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
@@ -210013,19 +215164,19 @@ self: {
     ({ mkDerivation, rebase }:
      mkDerivation {
        pname = "rerebase";
-       version = "1.4.1";
-       sha256 = "19a3pwi801kfaflnag9n7zzxapcjfpqpykr6rq8b6axhyqj3vxim";
+       version = "1.6.1";
+       sha256 = "0lyi925jk6jbi3qc5xmv61ag07ff9d3xxmf9hfjlblqw2y9fsy93";
        libraryHaskellDepends = [ rebase ];
        description = "Reexports from \"base\" with a bunch of other standard libraries";
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "rerebase_1_6_1" = callPackage
+  "rerebase_1_7" = callPackage
     ({ mkDerivation, rebase }:
      mkDerivation {
        pname = "rerebase";
-       version = "1.6.1";
-       sha256 = "0lyi925jk6jbi3qc5xmv61ag07ff9d3xxmf9hfjlblqw2y9fsy93";
+       version = "1.7";
+       sha256 = "0primlvckzkz72pdm3c1y32wjbz5wmxkdwfzvxs3yg08v01hrwb7";
        libraryHaskellDepends = [ rebase ];
        description = "Reexports from \"base\" with a bunch of other standard libraries";
        license = stdenv.lib.licenses.mit;
@@ -210058,6 +215209,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
@@ -210329,8 +215510,8 @@ self: {
      }:
      mkDerivation {
        pname = "resourcet";
-       version = "1.2.4";
-       sha256 = "017v0r9qk4d7dd04dc03ghghyk1d4qj82gligyzg5fdz2rkg8i8x";
+       version = "1.2.4.2";
+       sha256 = "11zb4figcs22hjaq6zsknf70kf9k2bxnw6w03ab9kl9s0i10iwhp";
        libraryHaskellDepends = [
          base containers exceptions mtl primitive transformers unliftio-core
        ];
@@ -210773,26 +215954,23 @@ self: {
      }:
      mkDerivation {
        pname = "retrie";
-       version = "0.1.0.1";
-       sha256 = "01giwrn6cxkpcjflarpphyvbz6japjq6xjilpg29wfq40c64nzyn";
+       version = "0.1.1.1";
+       sha256 = "1l6pcvmf95i4r4b370j8dwqbvj3971xn6097lbw93agyrf704qpi";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          ansi-terminal async base bytestring containers data-default
-         directory filepath ghc ghc-exactprint haskell-src-exts mtl
-         optparse-applicative process random-shuffle syb text transformers
-         unordered-containers
+         directory filepath ghc ghc-exactprint mtl optparse-applicative
+         process random-shuffle syb text transformers unordered-containers
        ];
-       executableHaskellDepends = [ base data-default ];
+       executableHaskellDepends = [ base haskell-src-exts ];
        testHaskellDepends = [
          base containers data-default deepseq directory filepath ghc
-         ghc-paths HUnit mtl optparse-applicative process syb tasty
-         tasty-hunit temporary text unordered-containers
+         ghc-paths haskell-src-exts HUnit mtl optparse-applicative process
+         syb tasty tasty-hunit temporary text unordered-containers
        ];
        description = "A powerful, easy-to-use codemodding tool for Haskell";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "retry" = callPackage
@@ -211175,14 +216353,14 @@ self: {
      }:
      mkDerivation {
        pname = "rfc1751";
-       version = "0.1.2";
-       sha256 = "1jls5g6lch4mdspbyzx1kgysa21i2cid68qpvk9z7ggz4lbfhid3";
+       version = "0.1.3";
+       sha256 = "1f68rss3y64g2s7dmzb635986vf682gb1yvv4x720b29gh65dahk";
        libraryHaskellDepends = [ base bytestring cereal vector ];
        testHaskellDepends = [
          base bytestring cereal hspec QuickCheck vector
        ];
        description = "RFC-1751 library for Haskell";
-       license = stdenv.lib.licenses.publicDomain;
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "rfc3339" = callPackage
@@ -211210,6 +216388,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
@@ -211255,8 +216446,24 @@ self: {
        ];
        description = "Functional Reactive Programming with type-level clocks";
        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;
-       broken = true;
      }) {};
 
   "rhine-gloss" = callPackage
@@ -211271,8 +216478,21 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Gloss backend for Rhine";
        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;
-       broken = true;
      }) {};
 
   "rhythm-game-tutorial" = callPackage
@@ -211369,26 +216589,31 @@ self: {
   "rib" = callPackage
     ({ mkDerivation, 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, path, path-io, relude, safe-exceptions, shake, text
+     , 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.8.0.0";
-       sha256 = "0chiqb2qg4wc37wby8srakr6yaja9hdrjy9jf13bxc91q2z9k82z";
+       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 path path-io relude
+         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 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 using Shake";
+       description = "Static site generator based on Shake";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ribbit" = callPackage
@@ -211636,12 +216861,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;
@@ -211666,24 +216896,25 @@ self: {
 
   "rio" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, directory
-     , exceptions, filepath, hashable, hspec, microlens, mtl, primitive
-     , process, QuickCheck, text, time, typed-process, unix, unliftio
-     , unliftio-core, unordered-containers, vector
+     , exceptions, filepath, hashable, hspec, microlens, microlens-mtl
+     , mtl, primitive, process, QuickCheck, text, time, typed-process
+     , unix, unliftio, unliftio-core, unordered-containers, vector
      }:
      mkDerivation {
        pname = "rio";
-       version = "0.1.15.1";
-       sha256 = "05mkxjwy9vp6ldzj5wci1frd2chvbg3l4vw1q8bpjdsj8svr2g5i";
+       version = "0.1.18.0";
+       sha256 = "11f1cxa9c90d7hgqn9bl08l499n2dzdj31f9pw9acb1nrlx5hik8";
        libraryHaskellDepends = [
          base bytestring containers deepseq directory exceptions filepath
-         hashable microlens mtl primitive process text time typed-process
-         unix unliftio unliftio-core unordered-containers vector
+         hashable microlens microlens-mtl mtl primitive process text time
+         typed-process unix unliftio unliftio-core unordered-containers
+         vector
        ];
        testHaskellDepends = [
          base bytestring containers deepseq directory exceptions filepath
-         hashable hspec microlens mtl primitive process QuickCheck text time
-         typed-process unix unliftio unliftio-core unordered-containers
-         vector
+         hashable hspec microlens microlens-mtl mtl primitive process
+         QuickCheck text time typed-process unix unliftio unliftio-core
+         unordered-containers vector
        ];
        description = "A standard library for Haskell";
        license = stdenv.lib.licenses.mit;
@@ -211715,10 +216946,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
@@ -212239,18 +217468,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;
@@ -212280,14 +217516,34 @@ 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
      }:
      mkDerivation {
        pname = "rocksdb-query";
-       version = "0.3.1";
-       sha256 = "072l4f5xb5prsbs7d7j12mwxy0rlrsnqf6w7g09xmq7n3mz0sv0f";
+       version = "0.3.2";
+       sha256 = "07bp96sfcj34f4vgi3bynxykrad672hlg9d8rsxc0xxai8iamzrm";
        libraryHaskellDepends = [
          base bytestring cereal conduit resourcet rocksdb-haskell unliftio
        ];
@@ -212295,7 +217551,28 @@ self: {
          base cereal data-default hspec rocksdb-haskell unliftio
        ];
        description = "RocksDB database querying library for Haskell";
-       license = stdenv.lib.licenses.publicDomain;
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       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;
      }) {};
@@ -212511,8 +217788,8 @@ self: {
      }:
      mkDerivation {
        pname = "ron";
-       version = "0.10";
-       sha256 = "1qw1kyrd3z5fag4a9w2nibcc3m68cr75jplp2pvwvkcmbl23alar";
+       version = "0.11";
+       sha256 = "1sdgjxz609m1ddcby29g5sd9bmh20wav3q4ab4bmsfl5ar2yq53i";
        libraryHaskellDepends = [
          aeson attoparsec base binary bytestring containers hashable
          integer-gmp mtl scientific template-haskell text time
@@ -212861,8 +218138,8 @@ self: {
      }:
      mkDerivation {
        pname = "rounded";
-       version = "1.0";
-       sha256 = "1vwy8sc457bxq3x8wzfsr5v01lp38ynwg8hp97likkckd13vkh7v";
+       version = "1.1";
+       sha256 = "0hja4ak3qd80zg996jwyi1kndj2vfsp10vwr4wyrcvppzl4gj4a0";
        libraryHaskellDepends = [
          base ghc-prim hgmp long-double reflection
        ];
@@ -212873,6 +218150,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {inherit (pkgs) gmp; inherit (pkgs) mpfr;};
 
+  "rounded-hw" = callPackage
+    ({ mkDerivation, array, base, Cabal, deepseq, doctest, gauge, hspec
+     , integer-logarithms, long-double, primitive, QuickCheck, random
+     , tagged, vector
+     }:
+     mkDerivation {
+       pname = "rounded-hw";
+       version = "0.1.0.0";
+       sha256 = "0kmbp7x7avadsn09zfcjd54x5b6vvc527ybmmmnaklvfdzf8r88x";
+       setupHaskellDepends = [ base Cabal ];
+       libraryHaskellDepends = [
+         array base deepseq integer-logarithms long-double primitive tagged
+         vector
+       ];
+       testHaskellDepends = [
+         array base deepseq doctest hspec integer-logarithms long-double
+         primitive QuickCheck random vector
+       ];
+       benchmarkHaskellDepends = [
+         array base deepseq gauge integer-logarithms primitive vector
+       ];
+       description = "Directed rounding for built-in floating types";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "rounding" = callPackage
     ({ mkDerivation, array, base, numeric-extras }:
      mkDerivation {
@@ -213019,8 +218321,8 @@ self: {
      }:
      mkDerivation {
        pname = "row-types";
-       version = "0.3.1.0";
-       sha256 = "0nwhv2hdl7176bysyqw0zvfqlck0k638cvnwm49lld4zyaxrkq5h";
+       version = "0.4.0.0";
+       sha256 = "146wcmy65wls6s8z333z9xqdb0m89dwjbfd9vshldkd1g9kgbck7";
        libraryHaskellDepends = [
          base constraints deepseq generic-lens hashable profunctors text
          unordered-containers
@@ -213148,8 +218450,8 @@ self: {
      }:
      mkDerivation {
        pname = "rpmbuild-order";
-       version = "0.3";
-       sha256 = "1w5c1nd1w75bk39payczbh4kwn5rizpv9dzgdwssa8d9f0na10lr";
+       version = "0.3.1";
+       sha256 = "1xa4crcqm4avkpdcksj610gpzk7crfkwa2pk2nn1qsmjsrixfc2b";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -213160,6 +218462,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
@@ -213277,27 +218604,29 @@ self: {
     ({ mkDerivation, atom-conduit, base, base-compat-batteries
      , blaze-builder, bytestring, conduit, conduit-combinators
      , containers, data-default, dublincore-xml-conduit, filepath
-     , lens-simple, mono-traversable, QuickCheck, quickcheck-instances
-     , resourcet, safe, safe-exceptions, tasty, tasty-golden
-     , tasty-hunit, tasty-quickcheck, text, time, timerep
-     , uri-bytestring, xml-conduit, xml-types
+     , microlens, microlens-th, mono-traversable, QuickCheck
+     , quickcheck-instances, resourcet, safe, safe-exceptions, tasty
+     , tasty-golden, tasty-hunit, tasty-quickcheck, template-haskell
+     , text, time, timerep, uri-bytestring, xml-conduit, xml-types
      }:
      mkDerivation {
        pname = "rss-conduit";
-       version = "0.5.1.0";
-       sha256 = "199l9ky1nb9ispl1gdn5wvn7c7sd89xa8qpk110w2k5nzi8hmsz5";
+       version = "0.6.0.0";
+       sha256 = "0crp7z6s5xch5jggyyg1a2jcijgl5cg17wiiqkcfmwjdkraz7ax9";
+       revision = "1";
+       editedCabalFile = "1xgqfn7dlzz79j4krmqg4d2xlybm6x4b0s8gklphn3lccwpicfy8";
        libraryHaskellDepends = [
          atom-conduit base base-compat-batteries conduit conduit-combinators
-         containers dublincore-xml-conduit lens-simple safe safe-exceptions
-         text time timerep uri-bytestring xml-conduit xml-types
+         containers dublincore-xml-conduit microlens microlens-th safe
+         safe-exceptions template-haskell text time timerep uri-bytestring
+         xml-conduit xml-types
        ];
        testHaskellDepends = [
          atom-conduit base base-compat-batteries blaze-builder bytestring
          conduit conduit-combinators data-default dublincore-xml-conduit
-         filepath lens-simple mono-traversable QuickCheck
-         quickcheck-instances resourcet safe-exceptions tasty tasty-golden
-         tasty-hunit tasty-quickcheck text time uri-bytestring xml-conduit
-         xml-types
+         filepath microlens mono-traversable QuickCheck quickcheck-instances
+         resourcet safe-exceptions tasty tasty-golden tasty-hunit
+         tasty-quickcheck text time uri-bytestring xml-conduit xml-types
        ];
        description = "Streaming parser/renderer for the RSS standard";
        license = stdenv.lib.licenses.cc0;
@@ -213501,18 +218830,18 @@ self: {
      }) {inherit (pkgs) rubberband;};
 
   "ruby-marshal" = callPackage
-    ({ mkDerivation, base, bytestring, cereal, containers, hspec, mtl
-     , string-conv, vector
+    ({ mkDerivation, base, bytestring, cereal, containers, fail, hspec
+     , mtl, string-conv, vector
      }:
      mkDerivation {
        pname = "ruby-marshal";
-       version = "0.1.3";
-       sha256 = "0syjd9fmp55cfkq1kb78pvx0vg9dk43s5w4q2a8ndd1fkg194jwx";
+       version = "0.2.0";
+       sha256 = "0cdw1m26hlpicd2wmk34zav4p4lxhnrj79s5vwqmqy9wkdj9ypdx";
        libraryHaskellDepends = [
-         base bytestring cereal containers mtl string-conv vector
+         base bytestring cereal containers fail mtl string-conv vector
        ];
        testHaskellDepends = [
-         base bytestring cereal containers hspec mtl string-conv vector
+         base bytestring cereal containers fail hspec mtl string-conv vector
        ];
        description = "Parse a subset of Ruby objects serialised with Marshal.dump.";
        license = stdenv.lib.licenses.mit;
@@ -213663,6 +218992,25 @@ 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;
+     }) {};
+
   "runmany" = callPackage
     ({ mkDerivation, async, base, bytestring, optparse-applicative
      , process, stm
@@ -213729,13 +219077,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
@@ -213839,10 +219189,8 @@ self: {
     ({ mkDerivation, base, deepseq, QuickCheck }:
      mkDerivation {
        pname = "safe";
-       version = "0.3.18";
-       sha256 = "1v8gxjlq5wz5adyrd8i3dax5hcxrqq0i54m85zpfwfzqibi5nxyp";
-       revision = "1";
-       editedCabalFile = "0zr1di94nbvs6848g1ng6azl7nwm7454kjig2c7gcf9sp4q7z8ba";
+       version = "0.3.19";
+       sha256 = "18pp6cn9np9jgs01x9mac6wk41k34g86fx5ibfarbapqr1138115";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base deepseq QuickCheck ];
        description = "Library of safe (exception free) functions";
@@ -214016,6 +219364,8 @@ self: {
        pname = "safe-json";
        version = "1.1.0";
        sha256 = "18zsf2dccgf755a8g4ar3zc7ilmampsrvqa6f9p27zrayl7j87hw";
+       revision = "3";
+       editedCabalFile = "12jjph25vffkj55ds468zv144qxwyrb6qmp2g1pb03732n6z9596";
        libraryHaskellDepends = [
          aeson base bytestring containers dlist hashable scientific tasty
          tasty-hunit tasty-quickcheck text time unordered-containers
@@ -214209,6 +219559,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
@@ -214439,20 +219804,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";
@@ -214491,8 +219856,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
@@ -214596,13 +219961,13 @@ self: {
      }) {inherit (pkgs) libsodium;};
 
   "salve" = callPackage
-    ({ mkDerivation, base, doctest }:
+    ({ mkDerivation, base, HUnit }:
      mkDerivation {
        pname = "salve";
-       version = "1.0.9";
-       sha256 = "1anh6v4dfvy1ymffz3y77rlj859mmjamf026f2fqlagmql2lbj73";
+       version = "1.0.10";
+       sha256 = "01i74s62kp9gbwj4jwphvn8z7gsbryczx5gn9a6cd92r29393bkm";
        libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base doctest ];
+       testHaskellDepends = [ base HUnit ];
        description = "Semantic version numbers and constraints";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -214760,10 +220125,8 @@ self: {
      }:
      mkDerivation {
        pname = "sampling";
-       version = "0.3.3";
-       sha256 = "038fl0mdim3r25jsj8bgvnmkd7iy00hpwbc0yqwijsqyss9xrgn8";
-       revision = "1";
-       editedCabalFile = "168k8ykppa8pikfxy1gmby63kfzr833vswh8wcchz8li9vkd4w2h";
+       version = "0.3.5";
+       sha256 = "13xkq8p656xybbpvkxp42qkkgc1majp18w384ap7l4sbxrxif7kv";
        libraryHaskellDepends = [
          base containers foldl mwc-random primitive vector
        ];
@@ -215204,19 +220567,19 @@ 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
+     , crackNum, deepseq, directory, doctest, filepath, gauge
+     , generic-deriving, 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.7";
+       sha256 = "0iipl3ra0ih6fjxfs4p554va5243rg1ddkllfdbs7y2sj697841l";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array async base containers crackNum deepseq directory filepath
-         generic-deriving ghc mtl pretty process QuickCheck random syb
+         generic-deriving mtl pretty process QuickCheck random syb
          template-haskell time transformers
        ];
        testHaskellDepends = [
@@ -215226,8 +220589,8 @@ self: {
        ];
        testSystemDepends = [ z3 ];
        benchmarkHaskellDepends = [
-         base containers crackNum criterion deepseq directory filepath mtl
-         process random syb
+         base containers crackNum deepseq directory filepath gauge mtl
+         process random silently syb
        ];
        description = "SMT Based Verification: Symbolic Haskell theorem prover using SMT solving";
        license = stdenv.lib.licenses.bsd3;
@@ -215471,6 +220834,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 {
@@ -215712,18 +221093,14 @@ 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
+    ({ mkDerivation, atomic-primops, base, deepseq, doctest, exceptions
+     , genvalidity-hspec, hspec, mwc-random, primitive, QuickCheck
      , template-haskell, unliftio, unliftio-core, vector
      }:
      mkDerivation {
        pname = "scheduler";
-       version = "1.4.2.2";
-       sha256 = "0mzwm7lr089hbv08c58l3ahiid8w1cysvjl9q6vb46x3wpa3fwia";
-       revision = "1";
-       editedCabalFile = "0a6xcidya383ygzmz76di3dj1c8xm6ra5zb8fp517lk50s3ly3kl";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "1.4.2.3";
+       sha256 = "0xf5gmla5h0k0a84f7b5xyk98xr72a9mygjlg5c913vc29i31ccx";
        libraryHaskellDepends = [
          atomic-primops base deepseq exceptions primitive unliftio-core
        ];
@@ -215731,9 +221108,6 @@ self: {
          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;
@@ -216224,30 +221598,68 @@ self: {
      }) {};
 
   "scotty" = callPackage
-    ({ mkDerivation, aeson, async, base, blaze-builder, bytestring
-     , case-insensitive, data-default-class, directory, exceptions, fail
-     , hspec, hspec-discover, hspec-wai, http-types, lifted-base
-     , monad-control, mtl, nats, network, regex-compat, text
-     , transformers, transformers-base, transformers-compat, wai
-     , wai-extra, warp
+    ({ mkDerivation, aeson, async, base, base-compat-batteries
+     , blaze-builder, bytestring, case-insensitive, data-default-class
+     , directory, exceptions, fail, hspec, hspec-discover, hspec-wai
+     , http-types, lifted-base, lucid, monad-control, mtl, nats, network
+     , regex-compat, text, transformers, transformers-base
+     , transformers-compat, wai, wai-extra, warp, weigh
      }:
      mkDerivation {
        pname = "scotty";
-       version = "0.11.5";
-       sha256 = "1pyj7j3zk80lv1c62ccna7nrsql5wf7pi5jscmypr2zd5xgfffvg";
+       version = "0.11.6";
+       sha256 = "0ghn41nvkr8vajlm6y12wz3jbbyf4vyklspx0bhyisn1mps53p57";
+       libraryHaskellDepends = [
+         aeson base base-compat-batteries blaze-builder bytestring
+         case-insensitive data-default-class exceptions fail http-types
+         monad-control mtl nats network regex-compat text transformers
+         transformers-base transformers-compat wai wai-extra warp
+       ];
+       testHaskellDepends = [
+         async base bytestring data-default-class directory hspec hspec-wai
+         http-types lifted-base network text wai
+       ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [
+         base bytestring data-default-class lucid mtl text transformers
+         weigh
+       ];
+       description = "Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "scotty_0_12" = callPackage
+    ({ mkDerivation, aeson, async, base, base-compat-batteries
+     , blaze-builder, bytestring, case-insensitive, data-default-class
+     , directory, exceptions, fail, hspec, hspec-discover, hspec-wai
+     , http-types, lifted-base, lucid, monad-control, mtl, nats, network
+     , regex-compat, text, transformers, transformers-base
+     , transformers-compat, wai, wai-extra, warp, weigh
+     }:
+     mkDerivation {
+       pname = "scotty";
+       version = "0.12";
+       sha256 = "1lpggpdzgjk23mq7aa64yylds5dbm4ynhcvbarqihjxabvh7xmz1";
+       revision = "1";
+       editedCabalFile = "1g1j4v3hvvbi48pn32d671x3vg41x2pjbpj9vgagiqlqmz9pkrn5";
        libraryHaskellDepends = [
-         aeson base blaze-builder bytestring case-insensitive
-         data-default-class exceptions fail http-types monad-control mtl
-         nats network regex-compat text transformers transformers-base
-         transformers-compat wai wai-extra warp
+         aeson base base-compat-batteries blaze-builder bytestring
+         case-insensitive data-default-class exceptions fail http-types
+         monad-control mtl nats network regex-compat text transformers
+         transformers-base transformers-compat wai wai-extra warp
        ];
        testHaskellDepends = [
          async base bytestring data-default-class directory hspec hspec-wai
          http-types lifted-base network text wai
        ];
        testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [
+         base bytestring data-default-class lucid mtl text transformers
+         weigh
+       ];
        description = "Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "scotty-binding-play" = callPackage
@@ -217031,24 +222443,24 @@ self: {
      }) {};
 
   "sdr" = callPackage
-    ({ mkDerivation, array, base, bytestring, cairo, cereal, Chart
-     , Chart-cairo, colour, containers, criterion, Decimal
-     , dynamic-graph, fftwRaw, GLFW-b, mwc-random, OpenGL
-     , optparse-applicative, pango, pipes, pipes-bytestring
+    ({ mkDerivation, array, base, bytestring, bytestring-to-vector
+     , cairo, cereal, Chart, Chart-cairo, colour, containers, criterion
+     , Decimal, dynamic-graph, fftwRaw, GLFW-b, mwc-random, network
+     , OpenGL, optparse-applicative, pango, pipes, pipes-bytestring
      , pipes-concurrency, primitive, pulse-simple, QuickCheck, rtlsdr
      , storable-complex, test-framework, test-framework-quickcheck2
      , time, transformers, tuple, vector
      }:
      mkDerivation {
        pname = "sdr";
-       version = "0.1.0.12";
-       sha256 = "0nikrpcyb5mihc70cfvxy24bl80jjnabc8dc8y056yx54759jkk8";
+       version = "0.1.0.13";
+       sha256 = "1ip89ddkzzfq2qvpm0ha321hhgx50lphf0s1yd84gw458fsw0ma7";
        libraryHaskellDepends = [
-         array base bytestring cairo cereal Chart Chart-cairo colour
-         containers Decimal dynamic-graph fftwRaw GLFW-b mwc-random OpenGL
-         optparse-applicative pango pipes pipes-bytestring pipes-concurrency
-         primitive pulse-simple rtlsdr storable-complex time transformers
-         tuple vector
+         array base bytestring bytestring-to-vector cairo cereal Chart
+         Chart-cairo colour containers Decimal dynamic-graph fftwRaw GLFW-b
+         mwc-random network OpenGL optparse-applicative pango pipes
+         pipes-bytestring pipes-concurrency primitive pulse-simple rtlsdr
+         storable-complex time transformers tuple vector
        ];
        testHaskellDepends = [
          base primitive QuickCheck storable-complex test-framework
@@ -217291,49 +222703,50 @@ self: {
   "secp256k1-haskell" = callPackage
     ({ mkDerivation, base, base16-bytestring, bytestring, cereal
      , deepseq, entropy, hashable, hspec, hspec-discover, HUnit
-     , libsecp256k1, mtl, QuickCheck, string-conversions
+     , monad-par, mtl, QuickCheck, secp256k1, string-conversions
      }:
      mkDerivation {
        pname = "secp256k1-haskell";
-       version = "0.1.8";
-       sha256 = "0ymmgcvlw4wrmnn0r6nmmpk0djihpappiywwfxvmnq8brqdkf3jk";
+       version = "0.2.5";
+       sha256 = "12hv8fi2acvv0pmk9scsw584sj2b9hfacr7bhbrry10sihrd4xv4";
        libraryHaskellDepends = [
          base base16-bytestring bytestring cereal deepseq entropy hashable
          QuickCheck string-conversions
        ];
-       libraryPkgconfigDepends = [ libsecp256k1 ];
+       libraryPkgconfigDepends = [ secp256k1 ];
        testHaskellDepends = [
          base base16-bytestring bytestring cereal deepseq entropy hashable
-         hspec HUnit mtl QuickCheck string-conversions
+         hspec HUnit monad-par mtl QuickCheck string-conversions
        ];
        testToolDepends = [ hspec-discover ];
-       description = "Bindings for secp256k1 library from Bitcoin Core";
-       license = stdenv.lib.licenses.publicDomain;
-     }) {libsecp256k1 = null;};
+       description = "Bindings for secp256k1";
+       license = stdenv.lib.licenses.mit;
+     }) {inherit (pkgs) secp256k1;};
 
-  "secp256k1-haskell_0_2_2" = callPackage
+  "secp256k1-haskell_0_4_0" = callPackage
     ({ mkDerivation, base, base16-bytestring, bytestring, cereal
      , deepseq, entropy, hashable, hspec, hspec-discover, HUnit
-     , libsecp256k1, mtl, QuickCheck, string-conversions
+     , monad-par, mtl, QuickCheck, secp256k1, string-conversions
+     , unliftio
      }:
      mkDerivation {
        pname = "secp256k1-haskell";
-       version = "0.2.2";
-       sha256 = "10yz62z5s23b0q4pla8047cv5ksrd78j9l8y156b0yjjnmlxd013";
+       version = "0.4.0";
+       sha256 = "07hgfrr98g42sia5bssch7lrajx7y6fz98f13ly5rjkm5brw0zba";
        libraryHaskellDepends = [
          base base16-bytestring bytestring cereal deepseq entropy hashable
-         QuickCheck string-conversions
+         QuickCheck string-conversions unliftio
        ];
-       libraryPkgconfigDepends = [ libsecp256k1 ];
+       libraryPkgconfigDepends = [ secp256k1 ];
        testHaskellDepends = [
          base base16-bytestring bytestring cereal deepseq entropy hashable
-         hspec HUnit mtl QuickCheck string-conversions
+         hspec HUnit monad-par mtl QuickCheck string-conversions unliftio
        ];
        testToolDepends = [ hspec-discover ];
-       description = "Bindings for secp256k1 library from Bitcoin Core";
-       license = stdenv.lib.licenses.publicDomain;
+       description = "Bindings for secp256k1";
+       license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {libsecp256k1 = null;};
+     }) {inherit (pkgs) secp256k1;};
 
   "secp256k1-legacy" = callPackage
     ({ mkDerivation, base, base16-bytestring, bytestring, Cabal, cereal
@@ -217388,14 +222801,14 @@ self: {
      }:
      mkDerivation {
        pname = "secret-sharing";
-       version = "1.0.1.0";
-       sha256 = "16j4xz4kkcicqfl9r8831il310ns02kxwj7mga8pvssfnhzv9zpv";
+       version = "1.0.1.2";
+       sha256 = "0965nbzaiia0jbx1r149liyg8fsix7z5nlxybpavrkkn0b4ncn89";
        libraryHaskellDepends = [
          base binary bytestring dice-entropy-conduit finite-field vector
        ];
        testHaskellDepends = [
-         base bytestring QuickCheck test-framework
-         test-framework-quickcheck2
+         base binary bytestring dice-entropy-conduit finite-field QuickCheck
+         test-framework test-framework-quickcheck2 vector
        ];
        description = "Information-theoretic secure secret sharing";
        license = stdenv.lib.licenses.lgpl21;
@@ -217479,6 +222892,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
@@ -217487,6 +222921,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
@@ -217501,6 +222937,8 @@ self: {
        pname = "selda-json";
        version = "0.1.1.0";
        sha256 = "1ai24qmz5nkpqx0zd24ix0ci5aqiccfy57fkf8f87swrv28101l8";
+       revision = "1";
+       editedCabalFile = "1gajzv8zhj8i3bxzjh81vjn8j2igh3nrawfpddvxg1ayb5l2d2y0";
        libraryHaskellDepends = [ aeson base bytestring selda text ];
        description = "JSON support for the Selda database library";
        license = stdenv.lib.licenses.mit;
@@ -217514,6 +222952,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
@@ -217530,6 +222970,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
@@ -217566,25 +223008,8 @@ self: {
      }:
      mkDerivation {
        pname = "selective";
-       version = "0.3";
-       sha256 = "135lq99h1iaip44d5kh7wpb3fcf8f6ypn5rxngm5agazy6ia42as";
-       libraryHaskellDepends = [ base containers transformers ];
-       testHaskellDepends = [
-         base containers mtl QuickCheck tasty tasty-expected-failure
-         tasty-quickcheck transformers
-       ];
-       description = "Selective applicative functors";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "selective_0_4_1" = callPackage
-    ({ mkDerivation, base, containers, mtl, QuickCheck, tasty
-     , tasty-expected-failure, tasty-quickcheck, transformers
-     }:
-     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
@@ -217592,7 +223017,6 @@ self: {
        ];
        description = "Selective applicative functors";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "selectors" = callPackage
@@ -217779,19 +223203,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 = "1";
-       editedCabalFile = "0rfnjzbzzclzh2a1m5wpzzsqf8hrkrqnc90pflshb40i7rwkm6xf";
+       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;
@@ -217813,6 +223234,8 @@ self: {
        testHaskellDepends = [ base doctest QuickCheck ];
        description = "Extra functions for working with Semialigns";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "semialign-indexed" = callPackage
@@ -217823,8 +223246,8 @@ self: {
        pname = "semialign-indexed";
        version = "1.1";
        sha256 = "1b6amfhwk968ah56w8vala3hbpzf9mfza2ajhdnvzcdiyqyxvwb0";
-       revision = "1";
-       editedCabalFile = "1g7b15xki938vljmkcwnz1hvqfp77ja39cxnfnwd5j507a0qp800";
+       revision = "2";
+       editedCabalFile = "0vmvmnmb79cc11rbl136z74yyb16klswpx38ayxal8m52lyggqpv";
        libraryHaskellDepends = [
          base containers hashable lens semialign these unordered-containers
          vector
@@ -217841,8 +223264,8 @@ self: {
        pname = "semialign-optics";
        version = "1.1";
        sha256 = "1ffibnk1hsdnny5jm85j07f05k81pzzai4jljlj12nn687rbb59y";
-       revision = "1";
-       editedCabalFile = "0l7wkq1s51k04dy815mqvwcf94r1l4a40ngzz958gi3vc07xyppx";
+       revision = "2";
+       editedCabalFile = "011kjr5ya0s7l1dic7gvzvgvps02rn033125v8c9r9dp2mlgyjam";
        libraryHaskellDepends = [
          base containers hashable optics-extra semialign these
          unordered-containers vector
@@ -217886,6 +223309,8 @@ self: {
        pname = "semigroupoids";
        version = "5.3.4";
        sha256 = "0r49qpbi803jk3v4i09jr1a98l6hcgnjhrv1a9fhmay3ff4y9lh0";
+       revision = "1";
+       editedCabalFile = "0051jan1q5nghw5wfzf13v07iba4hqd8wq5af4fd0j2k22k4ar1s";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base base-orphans bifunctors comonad containers contravariant
@@ -218015,15 +223440,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;
@@ -218357,8 +223783,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;
@@ -218380,8 +223806,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;
@@ -218479,6 +223905,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
@@ -218616,8 +224066,10 @@ self: {
      }:
      mkDerivation {
        pname = "serialise";
-       version = "0.2.2.0";
-       sha256 = "17m1xs3hdvbkba1b8qjcv58drhl2wgvjkp7a2m38mkwn6xxvpg1k";
+       version = "0.2.3.0";
+       sha256 = "0vp4wyxpximpx10pssfgdsir1pc23zb62fg3kj3iblpzqfrryy69";
+       revision = "1";
+       editedCabalFile = "1pg6hkim1qcrnkj2rqw8xz5mxkrh0jadlsgwm2v1xgkpgfi1dk1r";
        libraryHaskellDepends = [
          array base bytestring cborg containers ghc-prim half hashable
          primitive text time unordered-containers vector
@@ -218810,7 +224262,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
@@ -218819,8 +224271,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
@@ -219226,6 +224678,8 @@ self: {
        ];
        description = "Avro content type for Servant";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "servant-blaze" = callPackage
@@ -219367,7 +224821,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
@@ -219378,8 +224832,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
@@ -219421,7 +224875,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
@@ -219429,8 +224883,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
@@ -219725,19 +225179,23 @@ self: {
      }) {};
 
   "servant-errors" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, http-api-data, http-media
-     , http-types, markdown-unlit, scientific, servant, servant-server
-     , string-conversions, text, unordered-containers, wai, warp
+    ({ mkDerivation, aeson, base, base-compat, bytestring
+     , http-api-data, http-media, http-types, markdown-unlit, scientific
+     , servant, servant-server, string-conversions, text
+     , unordered-containers, wai, warp
      }:
      mkDerivation {
        pname = "servant-errors";
-       version = "0.1.4.0";
-       sha256 = "1qg8p69yhkkdqa51n4pp59y254a5q6rl255fh380z4kzh4vsdjcn";
+       version = "0.1.6.0";
+       sha256 = "0qap8wbchpl48aigwqgxrgb6v3d6h80fpxq319c399pwrrkzyh9v";
        libraryHaskellDepends = [
-         aeson base bytestring http-api-data http-media http-types
-         scientific servant string-conversions text unordered-containers wai
+         aeson base base-compat bytestring http-api-data http-media
+         http-types scientific servant string-conversions text
+         unordered-containers wai
+       ];
+       testHaskellDepends = [
+         aeson base base-compat servant-server text wai warp
        ];
-       testHaskellDepends = [ aeson base servant-server text wai warp ];
        testToolDepends = [ markdown-unlit ];
        description = "Servant Errors wai-middlware";
        license = stdenv.lib.licenses.mit;
@@ -220003,8 +225461,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
@@ -220097,8 +225555,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 = [
@@ -220117,11 +225575,11 @@ self: {
     ({ mkDerivation, aeson, base, servant }:
      mkDerivation {
        pname = "servant-jsonrpc";
-       version = "1.0.0";
-       sha256 = "0kqs2bnkkhakg5401ylv3ys00p3s5w5r11spylkxgzi77l1q2vli";
+       version = "1.1.0";
+       sha256 = "0qy2al8waycarh5973c43bdd9g4a9032waknjsbykhflwglvwmv5";
        libraryHaskellDepends = [ aeson base servant ];
        description = "JSON-RPC messages and endpoints";
-       license = stdenv.lib.licenses.isc;
+       license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -220132,30 +225590,30 @@ self: {
      }:
      mkDerivation {
        pname = "servant-jsonrpc-client";
-       version = "1.0.0";
-       sha256 = "0ir7lljaiczlfakzl95vpmzvx3z5n40agd0gwrscklqpdpc9n8lm";
+       version = "1.1.0";
+       sha256 = "0d18qajwpq6np0a61i5qm1z7iwvqrmgixg627diwr1xh4ws1ij8d";
        libraryHaskellDepends = [
          aeson base servant servant-client-core servant-jsonrpc
        ];
        description = "Generate JSON-RPC servant clients";
-       license = stdenv.lib.licenses.isc;
+       license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
   "servant-jsonrpc-server" = callPackage
-    ({ mkDerivation, aeson, base, mtl, servant, servant-jsonrpc
-     , servant-server
+    ({ mkDerivation, aeson, base, containers, mtl, servant
+     , servant-jsonrpc, servant-server
      }:
      mkDerivation {
        pname = "servant-jsonrpc-server";
-       version = "1.0.0";
-       sha256 = "13ryxq8y7mcmq70jnwd2gv3anq7k3p9vpi2vnp0kn4552332wpa4";
+       version = "2.1.0";
+       sha256 = "09byg58qm4r9kbcxzr6jbyg5ziih58p0za8ihq4y8w60mznpb055";
        libraryHaskellDepends = [
-         aeson base mtl servant servant-jsonrpc servant-server
+         aeson base containers mtl servant servant-jsonrpc servant-server
        ];
        description = "JSON-RPC servant servers";
-       license = stdenv.lib.licenses.isc;
+       license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -220306,7 +225764,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
@@ -220314,8 +225772,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-mock";
-       version = "0.8.6";
-       sha256 = "1cr5davd7ldcm2a4f33mi74rk6qlgdqg7vzzfpf8kgxrc97syrrd";
+       version = "0.8.7";
+       sha256 = "0j8c9wb1njrl77hp94frlnjpbk2axlkcgbcyax6s4pmf9v3c8j6x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -220337,24 +225795,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;
      }) {};
@@ -220554,29 +226018,6 @@ self: {
      }:
      mkDerivation {
        pname = "servant-purescript";
-       version = "0.9.0.4";
-       sha256 = "07h00hazz4hvhhslfa8hm2jqpxmj0kqz0yw7a4vk002r027daryi";
-       libraryHaskellDepends = [
-         aeson base bytestring containers directory filepath http-types lens
-         mainland-pretty purescript-bridge servant servant-foreign
-         servant-server servant-subscriber text
-       ];
-       testHaskellDepends = [
-         aeson base containers lens mainland-pretty purescript-bridge
-         servant servant-foreign servant-subscriber text
-       ];
-       description = "Generate PureScript accessor functions for you servant API";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "servant-purescript_0_10_0_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, directory
-     , filepath, http-types, lens, mainland-pretty, purescript-bridge
-     , servant, servant-foreign, servant-server, servant-subscriber
-     , text
-     }:
-     mkDerivation {
-       pname = "servant-purescript";
        version = "0.10.0.0";
        sha256 = "07q4nvdhhzyc3xkad130nkv7ckgmj6fmhrpryzpjdvddgq9320b4";
        libraryHaskellDepends = [
@@ -220590,7 +226031,6 @@ self: {
        ];
        description = "Generate PureScript accessor functions for you servant API";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "servant-pushbullet-client" = callPackage
@@ -220647,8 +226087,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
@@ -220695,6 +226135,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
@@ -220809,6 +226309,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
@@ -220848,7 +226370,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
@@ -220859,10 +226381,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 = [
@@ -220996,8 +226516,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-static-th";
-       version = "0.2.2.1";
-       sha256 = "15i5sgi30m5y8capc10k4hsaldzglvmknfq6sr1mrrzc9z9c3lrm";
+       version = "0.2.3.0";
+       sha256 = "0gyfjrrq7anhn4b613gnaa0r2xm8rkminx1nrrbpn6bw47axadj4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -221114,32 +226634,6 @@ self: {
      }:
      mkDerivation {
        pname = "servant-subscriber";
-       version = "0.6.0.3";
-       sha256 = "1h1nqjmnn129ir2k9dvc6izak3hh0bvz6rpqhdf55gvxl3dbbiqi";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson async attoparsec base blaze-builder bytestring
-         case-insensitive containers directory filepath http-types lens
-         lifted-base monad-control monad-logger network-uri servant
-         servant-foreign servant-server stm text time transformers wai
-         wai-websockets warp websockets
-       ];
-       executableHaskellDepends = [ base purescript-bridge ];
-       description = "When REST is not enough ...";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "servant-subscriber_0_7_0_0" = callPackage
-    ({ mkDerivation, aeson, async, attoparsec, base, blaze-builder
-     , bytestring, case-insensitive, containers, directory, filepath
-     , http-types, lens, lifted-base, monad-control, monad-logger
-     , network-uri, purescript-bridge, servant, servant-foreign
-     , servant-server, stm, text, time, transformers, wai
-     , wai-websockets, warp, websockets
-     }:
-     mkDerivation {
-       pname = "servant-subscriber";
        version = "0.7.0.0";
        sha256 = "1c1g6jx36n5n5qjw82854vkbg7mavmrj7vz97vc1zzk5w54wsj8k";
        isLibrary = true;
@@ -221154,7 +226648,6 @@ self: {
        executableHaskellDepends = [ base purescript-bridge ];
        description = "When REST is not enough ...";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "servant-swagger" = callPackage
@@ -221217,16 +226710,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;
@@ -221328,6 +226821,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
@@ -221386,6 +226881,24 @@ self: {
        broken = true;
      }) {};
 
+  "servant-wasm" = callPackage
+    ({ mkDerivation, base, bytestring, servant, servant-server
+     , transformers, warp
+     }:
+     mkDerivation {
+       pname = "servant-wasm";
+       version = "0.1.1.0";
+       sha256 = "0nd98s0h9f5z1nhsmcyij7h1ppgw0s9cn8yj53v9a67yaniqvcqj";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base bytestring servant ];
+       executableHaskellDepends = [
+         base bytestring servant servant-server transformers warp
+       ];
+       description = "Servant support for delivering WebAssembly";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "servant-websockets" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, conduit
      , exceptions, monad-control, resourcet, servant-server, text, wai
@@ -221550,41 +227063,41 @@ self: {
   "serverless-haskell" = callPackage
     ({ mkDerivation, aeson, aeson-casing, amazonka-core
      , amazonka-kinesis, amazonka-s3, base, bytestring, case-insensitive
-     , hspec, hspec-discover, http-types, iproute, lens, network
-     , network-simple, raw-strings-qq, text, time, unix
+     , hspec, hspec-discover, http-client, http-types, iproute, lens
+     , raw-strings-qq, safe-exceptions, text, time, unix
      , unordered-containers
      }:
      mkDerivation {
        pname = "serverless-haskell";
-       version = "0.10.5";
-       sha256 = "187pah3k88vp27k1imwj1mqxavd9zykms3is517xrp209ldx5kw1";
+       version = "0.11.3";
+       sha256 = "14jaykiwi5xzf9cvkkk35gqgk203yah1ln0skr7gi847bh95v7qf";
        libraryHaskellDepends = [
          aeson aeson-casing amazonka-core amazonka-kinesis amazonka-s3 base
-         bytestring case-insensitive http-types iproute lens network
-         network-simple text time unix unordered-containers
+         bytestring case-insensitive http-client http-types iproute lens
+         safe-exceptions text time unix unordered-containers
        ];
        testHaskellDepends = [
          aeson aeson-casing amazonka-core amazonka-kinesis amazonka-s3 base
-         bytestring case-insensitive hspec hspec-discover http-types iproute
-         lens network network-simple raw-strings-qq text time unix
-         unordered-containers
+         bytestring case-insensitive hspec hspec-discover http-client
+         http-types iproute lens raw-strings-qq safe-exceptions text time
+         unix unordered-containers
        ];
        testToolDepends = [ hspec-discover ];
        description = "Deploying Haskell code onto AWS Lambda using Serverless";
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "serverless-haskell_0_11_3" = callPackage
+  "serverless-haskell_0_12_1" = callPackage
     ({ mkDerivation, aeson, aeson-casing, amazonka-core
      , amazonka-kinesis, amazonka-s3, base, bytestring, case-insensitive
      , hspec, hspec-discover, http-client, http-types, iproute, lens
-     , raw-strings-qq, safe-exceptions, text, time, unix
+     , raw-strings-qq, safe-exceptions, text, time, transformers, unix
      , unordered-containers
      }:
      mkDerivation {
        pname = "serverless-haskell";
-       version = "0.11.3";
-       sha256 = "14jaykiwi5xzf9cvkkk35gqgk203yah1ln0skr7gi847bh95v7qf";
+       version = "0.12.1";
+       sha256 = "0a9df4mxl73wbyf9mvbrczmcn0vvf8yn3p4wb9ggf29x4ls22zg8";
        libraryHaskellDepends = [
          aeson aeson-casing amazonka-core amazonka-kinesis amazonka-s3 base
          bytestring case-insensitive http-client http-types iproute lens
@@ -221594,7 +227107,7 @@ self: {
          aeson aeson-casing amazonka-core amazonka-kinesis amazonka-s3 base
          bytestring case-insensitive hspec hspec-discover http-client
          http-types iproute lens raw-strings-qq safe-exceptions text time
-         unix unordered-containers
+         transformers unix unordered-containers
        ];
        testToolDepends = [ hspec-discover ];
        description = "Deploying Haskell code onto AWS Lambda using Serverless";
@@ -221611,6 +227124,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
@@ -221909,6 +227424,8 @@ self: {
        pname = "set-cover";
        version = "0.1.1";
        sha256 = "04jjcmjll0azz24rx91p0dp5b8ya5jc0qacr21764ri1dbkfflgw";
+       revision = "1";
+       editedCabalFile = "0x5hn43xcfsygjc048mvzk6g8dx51pr5csvvqr6pns8jmz5awkf8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -222036,8 +227553,8 @@ self: {
        pname = "setlocale";
        version = "1.0.0.9";
        sha256 = "18b6xafspzxrmz5m9r9nzy3z053crqi59xc8n8aqd4gw0pvqdcrv";
-       revision = "1";
-       editedCabalFile = "01i087l8v129q90jf09khaw5p4iqix5s17gzgfz2pbi030zhb82h";
+       revision = "2";
+       editedCabalFile = "0l0hlxhjspm05hxd06972ilw4c3ni72mnzcyljg3a01i8pxi53cl";
        libraryHaskellDepends = [ base ];
        description = "Haskell bindings to setlocale";
        license = stdenv.lib.licenses.bsd3;
@@ -222207,8 +227724,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
@@ -222466,6 +228010,8 @@ self: {
        ];
        description = "SHA-1 Hash";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "shade" = callPackage
@@ -222581,8 +228127,8 @@ self: {
      }:
      mkDerivation {
        pname = "shake";
-       version = "0.18.5";
-       sha256 = "03r4rapkcyy04wf7ljikjbsjc29fpydbv5zbrrkiy1dqadzvasjp";
+       version = "0.19.1";
+       sha256 = "14znwscqdhac421igz26r0p1im9p0zawxzmi3hh1lhmxc5fprk2n";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -222614,8 +228160,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
@@ -222645,8 +228191,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;
@@ -222696,6 +228242,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "shake-dhall" = callPackage
+    ({ mkDerivation, base, containers, dhall, directory, filepath
+     , shake, tasty, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "shake-dhall";
+       version = "0.1.1.2";
+       sha256 = "0jlbq9d6sjrbywd0afgsqqw1ffjlh5k4mr5v2bn45js29hipkivk";
+       libraryHaskellDepends = [
+         base containers dhall directory filepath shake text
+       ];
+       testHaskellDepends = [ base tasty tasty-hunit ];
+       description = "Dhall dependencies";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "shake-elm" = callPackage
     ({ mkDerivation, base, shake }:
      mkDerivation {
@@ -222735,6 +228297,20 @@ self: {
        broken = true;
      }) {};
 
+  "shake-futhark" = callPackage
+    ({ mkDerivation, base, containers, filepath, futhark, shake, text
+     }:
+     mkDerivation {
+       pname = "shake-futhark";
+       version = "0.1.0.0";
+       sha256 = "1wxp025dmlal1nm7f7s16pzgx42sawfcnz3lv6krilhr7ynb92ss";
+       libraryHaskellDepends = [
+         base containers filepath futhark shake text
+       ];
+       description = "Dependency tracking for Futhark";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "shake-google-closure-compiler" = callPackage
     ({ mkDerivation, base, directory, shake }:
      mkDerivation {
@@ -222849,42 +228425,83 @@ self: {
      }) {};
 
   "shake-plus" = callPackage
-    ({ mkDerivation, base, extra, path, rio, shake, within }:
+    ({ mkDerivation, aeson, base, comonad, extra, path, rio, shake
+     , within
+     }:
      mkDerivation {
        pname = "shake-plus";
-       version = "0.0.2.2";
-       sha256 = "0yvwp3wzyzm8v2qihs96nsqlglhp7w1ndig04nzd13nqa726m6nd";
-       libraryHaskellDepends = [ base extra path rio shake within ];
+       version = "0.1.10.0";
+       sha256 = "0jp0b593162y2m9mxrh4fhgvjiwyxx4zk5spmr46aby5hhrgdwcr";
+       libraryHaskellDepends = [
+         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_2_0" = callPackage
+    ({ mkDerivation, base, extra, path, rio, shake }:
+     mkDerivation {
+       pname = "shake-plus";
+       version = "0.3.2.0";
+       sha256 = "0cgn1hgxp3kly7yp4s8mx714p1gnf30jpp6vjl47l19vc21hfzj5";
+       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, base, comonad, extra, 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.3.0.0";
+       sha256 = "040g0h0a03wmwhbqn06jxwf5h0lwsiqfa1x1x9wzyw8m52f5ngn4";
+       libraryHaskellDepends = [
+         base comonad extra 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, base, comonad, doctemplates, extra, feed
-     , free, lens, lens-aeson, mustache, optparse-applicative, pandoc
-     , pandoc-types, path, relude, rio, shake, shake-plus, slick, split
-     , tasty, tasty-golden, text-time, within, 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.2.2.0";
-       sha256 = "19aa021sl9k2q5im3nfh73rhydald8f7f3z7c1ncnqszbfkhf8xh";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.11.0.0";
+       sha256 = "0h6pq3y7ll5l83a682mwk60zipsm91w0srgrigdgi7l4wdhn7qzb";
        libraryHaskellDepends = [
-         aeson base comonad doctemplates extra feed free lens lens-aeson
-         mustache pandoc pandoc-types path relude rio shake shake-plus slick
-         split text-time within zipper-extra
-       ];
-       executableHaskellDepends = [
-         aeson base comonad doctemplates extra feed free lens lens-aeson
-         mustache optparse-applicative pandoc pandoc-types path relude rio
-         shake shake-plus slick split text-time within 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 base comonad doctemplates extra feed free lens lens-aeson
-         mustache pandoc pandoc-types path relude rio shake shake-plus slick
-         split tasty tasty-golden text-time within 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;
@@ -222939,17 +228556,17 @@ self: {
   "shakespeare" = callPackage
     ({ mkDerivation, aeson, base, blaze-html, blaze-markup, bytestring
      , containers, directory, exceptions, ghc-prim, hspec, HUnit, parsec
-     , process, scientific, template-haskell, text, time, transformers
-     , unordered-containers, vector
+     , process, scientific, template-haskell, text, th-lift, time
+     , transformers, unordered-containers, vector
      }:
      mkDerivation {
        pname = "shakespeare";
-       version = "2.0.24";
-       sha256 = "1fpkq5av7xyffsgghj5b85i8pzpnmkfcyjawhfm5lyhqpq1g5wh3";
+       version = "2.0.24.1";
+       sha256 = "0r9msld629fh9h98iclhd30h1rbg1xqzjqxj64k0n1p39fkx4ndm";
        libraryHaskellDepends = [
          aeson base blaze-html blaze-markup bytestring containers directory
          exceptions ghc-prim parsec process scientific template-haskell text
-         time transformers unordered-containers vector
+         th-lift time transformers unordered-containers vector
        ];
        testHaskellDepends = [
          aeson base blaze-html blaze-markup bytestring containers directory
@@ -223057,17 +228674,20 @@ self: {
      }) {};
 
   "shannon-fano" = callPackage
-    ({ mkDerivation, base, bytestring, QuickCheck, split }:
+    ({ mkDerivation, base, bytestring, optparse-generic, QuickCheck }:
      mkDerivation {
        pname = "shannon-fano";
-       version = "0.1.0.1";
-       sha256 = "11xpz5mi1yk9zcy22fhn6j4xnyifxgn07nd6nrx588h1g6w8r2df";
-       revision = "1";
-       editedCabalFile = "1da8hsqrv7nz9nlkdlqvjcssfzf4r6fxdhv8lryz92d7jjjxyjcc";
-       libraryHaskellDepends = [ base bytestring split ];
-       testHaskellDepends = [ base QuickCheck ];
-       description = "Shannon-fano compression algorithm implementation in Haskell";
-       license = stdenv.lib.licenses.gpl3;
+       version = "1.0.0.0";
+       sha256 = "1p4n91ix3d00p6ygnksnwhkhha3lhl6hz5d1x7f7f6sbag9lxflb";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base bytestring optparse-generic ];
+       executableHaskellDepends = [ base bytestring optparse-generic ];
+       testHaskellDepends = [
+         base bytestring optparse-generic QuickCheck
+       ];
+       description = "Shannon-fano compression algorithm in Haskell";
+       license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -223319,6 +228939,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "shell-conduit_5_0_0" = callPackage
+    ({ mkDerivation, async, base, bytestring, conduit, conduit-extra
+     , directory, filepath, hspec, hspec-expectations, monads-tf
+     , process, resourcet, semigroups, split, template-haskell, text
+     , transformers, unix, unliftio
+     }:
+     mkDerivation {
+       pname = "shell-conduit";
+       version = "5.0.0";
+       sha256 = "02zilgrb64x0rk4b4bihprwq9fr5gydzj003y3fq8ryf7r60g41w";
+       libraryHaskellDepends = [
+         async base bytestring conduit conduit-extra directory filepath
+         monads-tf process resourcet semigroups split template-haskell text
+         transformers unix unliftio
+       ];
+       testHaskellDepends = [
+         base bytestring conduit conduit-extra hspec hspec-expectations
+         template-haskell
+       ];
+       description = "Write shell scripts with Conduit";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "shell-escape" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers, vector }:
      mkDerivation {
@@ -223364,23 +229008,11 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "shell-utility";
-       version = "0.0";
-       sha256 = "1s3482vxllmmjbcqbwsrql9ka6zng7qbbqk3kfjs6dvkcs710hbs";
-       libraryHaskellDepends = [ base ];
-       description = "Utility functions for writing command-line programs";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "shell-utility_0_1" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "shell-utility";
        version = "0.1";
        sha256 = "1n15v0avvkxvczmyjc6g4z9axr5c61n8jlpa1cm4xr3qk7spm1mi";
        libraryHaskellDepends = [ base ];
        description = "Utility functions for writing command-line programs";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "shellish" = callPackage
@@ -223442,23 +229074,6 @@ self: {
      }:
      mkDerivation {
        pname = "shellmet";
-       version = "0.0.3.0";
-       sha256 = "1i39zl8khsriadi7k28rn0w2y8wf6jmnz5x3nlkdd9spkdy1qz49";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base process text ];
-       executableHaskellDepends = [ base text ];
-       executableToolDepends = [ markdown-unlit ];
-       testHaskellDepends = [ base doctest Glob ];
-       description = "Out of the shell solution for scripting in Haskell";
-       license = stdenv.lib.licenses.mpl20;
-     }) {};
-
-  "shellmet_0_0_3_1" = callPackage
-    ({ mkDerivation, base, doctest, Glob, markdown-unlit, process, text
-     }:
-     mkDerivation {
-       pname = "shellmet";
        version = "0.0.3.1";
        sha256 = "099v8w3b6s66mz79igjh57v98b90il6zkqh5wnqi3rvagbs89w5r";
        isLibrary = true;
@@ -223469,7 +229084,6 @@ self: {
        testHaskellDepends = [ base doctest Glob ];
        description = "Out of the shell solution for scripting in Haskell";
        license = stdenv.lib.licenses.mpl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "shellout" = callPackage
@@ -223589,8 +229203,10 @@ self: {
      }:
      mkDerivation {
        pname = "shh";
-       version = "0.7.0.7";
-       sha256 = "07xj1l7pk6j072ry2mi6jp6r0ivs4m0fqvfvm62jvhm7vhlg3m8m";
+       version = "0.7.0.8";
+       sha256 = "1f8r8wymdbv8j2m3apdw75xqq2c1s4wr694qhxljvwa9r0s326wf";
+       revision = "1";
+       editedCabalFile = "03gvwv2hxrp8ncfmwhp7hn8xah5mx9fgm298s83l78grqjlzdbil";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -223607,8 +229223,7 @@ self: {
        testToolDepends = [ markdown-unlit ];
        description = "Simple shell scripting from Haskell";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
+       maintainers = with stdenv.lib.maintainers; [ maralorn ];
      }) {};
 
   "shh-extras" = callPackage
@@ -223617,12 +229232,12 @@ self: {
        pname = "shh-extras";
        version = "0.1.0.1";
        sha256 = "0w4ddjszs0lrpr4zcggcwb80bg3yd8lr628jngmh4a05ypv3hxkk";
+       revision = "1";
+       editedCabalFile = "0kcnk1f1jgaxaqsrnhv2s17firjsms9xvx8d7jvv6ys5iq4nynya";
        libraryHaskellDepends = [ base hostname shh time ];
        testHaskellDepends = [ base tasty ];
        description = "Utility functions for using shh";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "shift" = callPackage
@@ -223631,8 +229246,8 @@ self: {
      }:
      mkDerivation {
        pname = "shift";
-       version = "0.2.1.2";
-       sha256 = "1g3qvk3b6qiawrjvzxv6nbr71zxb8c5rsi4agjhq8d1d6g9m9f42";
+       version = "0.2.1.3";
+       sha256 = "1b0587db6qk3hrr9sfxxcwi86wqzwr2qy035q9vvcxfr8sh0i3xg";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -223862,20 +229477,6 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "show-combinators";
-       version = "0.1.1.0";
-       sha256 = "02h2fvmw22v1mpxlxn9c6p7as3xspvspdphybxapac4s50mvyfnm";
-       revision = "1";
-       editedCabalFile = "1zr6xw4fvgx187yiqy7n0r9mnasyv1hxg2q9xzw3lmsf4z3xz6y7";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base ];
-       description = "Combinators to write Show instances";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "show-combinators_0_2_0_0" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "show-combinators";
        version = "0.2.0.0";
        sha256 = "07ds87ldl9165hj3k5h84iawc6vqlbggni3dg1nhbxww1spxn0n9";
        revision = "1";
@@ -223884,7 +229485,6 @@ self: {
        testHaskellDepends = [ base ];
        description = "Combinators to write Show instances";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "show-please" = callPackage
@@ -224072,8 +229672,8 @@ self: {
      }:
      mkDerivation {
        pname = "shwifty";
-       version = "0.0.2.0";
-       sha256 = "0akzrba7kihcv4f1hv1hirkl2w1y7d04mzc8y21f6fqvqjnnqsq6";
+       version = "0.0.3.0";
+       sha256 = "1cb30rc45p59clrjdwxm98vbpp7vmnp1r5z82iii46x9dapymmi8";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers mtl primitive
          template-haskell text th-abstraction time unordered-containers
@@ -224132,7 +229732,7 @@ self: {
        version = "0.1.0.1";
        sha256 = "19zjwzh3i8ql5xz9rvmbz7n2l3z7dcq683ikrpvqx3wxnc06058m";
        libraryHaskellDepends = [ base ];
-       description = "Sieve is an implementation of the Sieve abstract data type.";
+       description = "Sieve is an implementation of the Sieve abstract data type";
        license = stdenv.lib.licenses.gpl2;
      }) {};
 
@@ -224277,6 +229877,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 {
@@ -224473,23 +230090,27 @@ self: {
      }) {};
 
   "simple-cabal" = callPackage
-    ({ mkDerivation, base, Cabal, directory, filepath }:
+    ({ mkDerivation, base, bytestring, Cabal, directory, filepath }:
      mkDerivation {
        pname = "simple-cabal";
-       version = "0.1.1";
-       sha256 = "116n9ks7d5qhz9lm38yq39dl2jw34lfgs3p8ncws8449v8v7q7kv";
-       libraryHaskellDepends = [ base Cabal directory filepath ];
+       version = "0.1.2";
+       sha256 = "1a834zrj58m7nqvwiwfvqi696dib7h69qlb96vh93zqjn9ndv6hz";
+       libraryHaskellDepends = [
+         base bytestring Cabal directory filepath
+       ];
        description = "Cabal file wrapper library";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
   "simple-cmd" = callPackage
-    ({ mkDerivation, base, directory, filepath, process, unix }:
+    ({ mkDerivation, base, directory, extra, filepath, process, unix }:
      mkDerivation {
        pname = "simple-cmd";
-       version = "0.2.1";
-       sha256 = "1b35hsxr63n3nbpjdf7ailsmp4yk6k8nscx8xxv453v0r3v89hss";
-       libraryHaskellDepends = [ base directory filepath process unix ];
+       version = "0.2.2";
+       sha256 = "0pf9nfh8xcz0y9l9w7hj305r8gqdaz6hmrjkd7h3yb7ql7j6538w";
+       libraryHaskellDepends = [
+         base directory extra filepath process unix
+       ];
        description = "Simple String-based process commands";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -224618,8 +230239,8 @@ self: {
     ({ mkDerivation, base, doctest, integer-gmp }:
      mkDerivation {
        pname = "simple-enumeration";
-       version = "0.2";
-       sha256 = "0792fcn7mxvhdvsqgc335lcyp89zcdk3fbfqyckz9fsmf6382hv4";
+       version = "0.2.1";
+       sha256 = "16m3i3703yb2921nq1hk4ap3s7yrxsyczw2anziv6wvy4xq252qr";
        libraryHaskellDepends = [ base integer-gmp ];
        testHaskellDepends = [ base doctest ];
        description = "Finite or countably infinite sequences of values";
@@ -224773,8 +230394,8 @@ self: {
     ({ mkDerivation, base, fast-logger, mtl, text }:
      mkDerivation {
        pname = "simple-logger";
-       version = "0.0.4";
-       sha256 = "0550in9vkgf78rxfkzcrna40mihmaqhlixysfz8n0rz0rhw0z9gk";
+       version = "0.1.0";
+       sha256 = "04qha59ymvxfigb0mpzi9ay297kfjv1i0jnsxxla6rk5imin2i58";
        libraryHaskellDepends = [ base fast-logger mtl text ];
        description = "A very simple but efficient logging framework";
        license = stdenv.lib.licenses.mit;
@@ -225038,10 +230659,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;
@@ -225131,24 +230750,6 @@ self: {
      }:
      mkDerivation {
        pname = "simple-templates";
-       version = "0.9.0.0";
-       sha256 = "09s81syr45dvrqski4gz96ynmv8gb3zwyy4n6a7frv49z843phda";
-       libraryHaskellDepends = [
-         aeson attoparsec base scientific text unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson attoparsec base hspec HUnit scientific vector
-       ];
-       description = "A basic template language for the Simple web framework";
-       license = stdenv.lib.licenses.lgpl3;
-     }) {};
-
-  "simple-templates_1_0_0" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, hspec, HUnit, scientific
-     , text, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "simple-templates";
        version = "1.0.0";
        sha256 = "0vm30fdjm5fydv4ns3z2cvmqadyxb47kvj8nzwkk5jff35jaglrf";
        libraryHaskellDepends = [
@@ -225159,7 +230760,6 @@ self: {
        ];
        description = "A basic template language for the Simple web framework";
        license = stdenv.lib.licenses.lgpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "simple-text-format" = callPackage
@@ -225216,8 +230816,8 @@ self: {
      }:
      mkDerivation {
        pname = "simple-vec3";
-       version = "0.6";
-       sha256 = "1vw03xlnf8hj6rlcgpblg3swcbvqj4qp04zdv3a9j2a47j780qhh";
+       version = "0.6.0.1";
+       sha256 = "0m1aa480gnw9bxzpx4hg6pa896lmc56cdfg33fvfkngvcfbfb13m";
        libraryHaskellDepends = [ base QuickCheck vector ];
        testHaskellDepends = [
          base doctest doctest-driver-gen tasty tasty-quickcheck
@@ -225451,17 +231051,6 @@ self: {
      }) {};
 
   "simplistic-generics" = callPackage
-    ({ mkDerivation, base, comonad, kind-apply }:
-     mkDerivation {
-       pname = "simplistic-generics";
-       version = "0.1.0.0";
-       sha256 = "11z02m4dr9p2y29xwhy6a3l2cz2np164c8cwp0a0b9vkhphw4y1j";
-       libraryHaskellDepends = [ base comonad kind-apply ];
-       description = "Generic programming without too many type classes";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "simplistic-generics_2_0_0" = callPackage
     ({ mkDerivation, base, containers, deepseq, kind-apply, mtl
      , template-haskell
      }:
@@ -225474,7 +231063,6 @@ self: {
        ];
        description = "Generic programming without too many type classes";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "simseq" = callPackage
@@ -225543,19 +231131,16 @@ self: {
      }) {inherit (pkgs.xorg) libXft;};
 
   "single-tuple" = callPackage
-    ({ mkDerivation, base, hspec, OneTuple, Only }:
+    ({ mkDerivation, base, hspec, hspec-discover, OneTuple, Only }:
      mkDerivation {
        pname = "single-tuple";
-       version = "0.1.0.0";
-       sha256 = "1sxpbnn1846c3pyq3gm8vx82br8w8dqxvigfr6s160jjlqj7f03b";
-       revision = "2";
-       editedCabalFile = "06xpski7mxbgmdy2mc4xd6a1y0mfdyskwjhlih4nzxgj7n8v9hfi";
+       version = "0.1.1.0";
+       sha256 = "1cviix5did4pm4bimg12v2qa9ms5icf19k3iz13g07d5q9jyiwji";
        libraryHaskellDepends = [ base OneTuple Only ];
        testHaskellDepends = [ base hspec OneTuple Only ];
+       testToolDepends = [ hspec-discover ];
        description = "a class for single tuple implementations";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "singlethongs" = callPackage
@@ -225673,8 +231258,8 @@ self: {
      }:
      mkDerivation {
        pname = "singletons-presburger";
-       version = "0.3.0.0";
-       sha256 = "06djkc6y5clv0q903i04gaq0vri3nkk307znb418y0rfdh6czzwx";
+       version = "0.3.0.1";
+       sha256 = "1j7azll9cjg5gcvpw8aq1hia1njg4bm8llwms1v941gwi7gk481m";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -225871,6 +231456,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "sixel" = callPackage
+    ({ mkDerivation, base, base64-bytestring, bytestring, JuicyPixels
+     , process, temporary, vector
+     }:
+     mkDerivation {
+       pname = "sixel";
+       version = "0.1.2.3";
+       sha256 = "0zpxx9fw2vdk2bi9arizas4acihgl17jfwcc7zgzr1579s837ps7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base base64-bytestring bytestring JuicyPixels process temporary
+         vector
+       ];
+       executableHaskellDepends = [ base ];
+       description = "Sixel library to show images in a terminal emulator";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "sixfiguregroup" = callPackage
     ({ mkDerivation, base, digit, directory, doctest, filepath, lens
      , parsec, parsers, QuickCheck, template-haskell
@@ -225936,6 +231540,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "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.6.0.0";
+       sha256 = "0441ip04gmnyd6wxs1kkmwgz0v936bw95gxc9x00c7z0byd3q6hg";
+       libraryHaskellDepends = [
+         base constraints containers deepseq equational-reasoning
+         ghc-typelits-presburger hashable lens ListLike mono-traversable
+         singletons type-natural vector
+       ];
+       description = "Sized sequence data-types";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "sized-grid" = callPackage
     ({ mkDerivation, adjunctions, aeson, ansi-terminal, base, comonad
      , constraints, distributive, generics-sop, HUnit, lens
@@ -226173,6 +231796,8 @@ self: {
        ];
        description = "A very quick-and-dirty WebSocket server";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "skip-list" = callPackage
@@ -226240,20 +231865,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_9" = callPackage
+    ({ mkDerivation, base, binary, blaze-html, bytestring, containers
+     , directory, filepath, pretty-show, skylighting-core, text
      }:
      mkDerivation {
        pname = "skylighting";
-       version = "0.8.3.4";
-       sha256 = "1fqjz2s8i9i235mrp4364ycidax2zl7xrgcahsqpbr4cx7vgy9qz";
+       version = "0.9";
+       sha256 = "1855k1xjh38r389zvlzga7dkc3scj65ip9frvvkagxa2ls1irfp1";
+       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
@@ -226266,8 +231919,8 @@ self: {
      }:
      mkDerivation {
        pname = "skylighting-core";
-       version = "0.8.3.4";
-       sha256 = "0jcryl83873jjn6lximl1pnshf84nlln1hdvrdcybhrpjyd56qdc";
+       version = "0.8.5";
+       sha256 = "1azcq7g8c4p18q4akk7rl0bczjvp0vl4mnqvsfmzcdf7sdjlg9f7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -226288,6 +231941,38 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "skylighting-core_0_9" = 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.9";
+       sha256 = "0gljyp007pcym2b0azg0sn654kmss9xwim84xw7hxc1q8rwvdxhr";
+       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
@@ -226437,8 +232122,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 = [
@@ -226659,6 +232344,28 @@ self: {
        broken = true;
      }) {};
 
+  "slip32" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bech32, binary, bip32
+     , bitcoin-keys, bytestring, hedgehog, tasty, tasty-hedgehog
+     , tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "slip32";
+       version = "0.2.1";
+       sha256 = "00ivmrdw79n543s7rb1bzpp9xn6i1gys8zbad20lams20f7a01fa";
+       libraryHaskellDepends = [
+         base bech32 binary bip32 bitcoin-keys bytestring text
+       ];
+       testHaskellDepends = [
+         base base16-bytestring bip32 bitcoin-keys bytestring hedgehog tasty
+         tasty-hedgehog tasty-hunit text
+       ];
+       description = "SLIP-0032: Extended serialization format for BIP-32 wallets";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "slist" = callPackage
     ({ mkDerivation, base, doctest, Glob }:
      mkDerivation {
@@ -226779,29 +232486,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.3.4";
+       sha256 = "1qyi231wvi62cgjanqy7n4ypddf1xr59914cghvglgjwrpz9fljp";
        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;
      }) {};
@@ -226816,6 +232519,8 @@ self: {
        doHaddock = false;
        description = "Serialize to bytes";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "smallarray" = callPackage
@@ -226854,16 +232559,26 @@ self: {
      }) {};
 
   "smallcheck" = callPackage
-    ({ mkDerivation, base, ghc-prim, logict, mtl, pretty }:
+    ({ mkDerivation, base, logict, mtl, pretty }:
      mkDerivation {
        pname = "smallcheck";
-       version = "1.1.5";
-       sha256 = "195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h";
-       revision = "1";
-       editedCabalFile = "1zhhmad21sv0201hd7fahq769xpmzcj352l0sfalcwqs4kbc3mg0";
-       libraryHaskellDepends = [ base ghc-prim logict mtl pretty ];
+       version = "1.1.7";
+       sha256 = "0dcnwg1mn1v57fbm9g5a94qfqwp9a6nzvxlwyxca4vf27qn9wpyh";
+       libraryHaskellDepends = [ base logict mtl pretty ];
+       description = "A property-based testing library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "smallcheck_1_2_0" = callPackage
+    ({ mkDerivation, base, logict, mtl, pretty }:
+     mkDerivation {
+       pname = "smallcheck";
+       version = "1.2.0";
+       sha256 = "1y6rh1g7pi99jqq32xdv79yli9hmbfwjqg8ix1z2i2qkqqkr5iyn";
+       libraryHaskellDepends = [ base logict mtl pretty ];
        description = "A property-based testing library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "smallcheck-kind-generics" = callPackage
@@ -227128,6 +232843,8 @@ self: {
        pname = "smash-aeson";
        version = "0.1.0.0";
        sha256 = "0vmazs3ypqxaw4zdywimxfzrsvidnyk5damx6fpy549ny9319rqs";
+       revision = "1";
+       editedCabalFile = "1y0k6gz9qlr98f543607zkx6a97fnzh3zrbi2b59rlljp0rjvdw8";
        libraryHaskellDepends = [ aeson base smash unordered-containers ];
        description = "Aeson support for the smash library";
        license = stdenv.lib.licenses.bsd3;
@@ -227157,6 +232874,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
@@ -227296,8 +233028,8 @@ self: {
     ({ mkDerivation, aeson, base, linear, text, vector }:
      mkDerivation {
        pname = "smoothie";
-       version = "0.4.2.10";
-       sha256 = "059r2igvqidganwn0d907f6zv9h7ggwa6hgaaxh2car3kyi7425l";
+       version = "0.4.2.11";
+       sha256 = "1jljw2ggfzmfds14zp00qwkqfmrd0f4fwfpdiz4qzwl6zvd07d8c";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ aeson base linear text vector ];
        description = "Smooth curves via several interpolation modes";
@@ -227452,18 +233184,17 @@ self: {
 
   "smtp-mail" = callPackage
     ({ mkDerivation, array, base, base16-bytestring, base64-bytestring
-     , bytestring, connection, cryptohash, filepath, mime-mail, network
-     , network-bsd, text
+     , bytestring, connection, cryptonite, filepath, memory, mime-mail
+     , network, network-bsd, text
      }:
      mkDerivation {
        pname = "smtp-mail";
-       version = "0.2.0.0";
-       sha256 = "0qazfkh03rnrijan037bjspskbsma5x04gcavmn0g744f7xldcaz";
-       revision = "1";
-       editedCabalFile = "1kv84kywyj8f7iypzdq6a32wwkk8318khhy4x3p9q6mlvgv8275r";
+       version = "0.3.0.0";
+       sha256 = "0q81m4mi43cd0f1azm6984xw3qw2s6ygszdn86j5z3g5sjj5dax4";
        libraryHaskellDepends = [
          array base base16-bytestring base64-bytestring bytestring
-         connection cryptohash filepath mime-mail network network-bsd text
+         connection cryptonite filepath memory mime-mail network network-bsd
+         text
        ];
        description = "Simple email sending via SMTP";
        license = stdenv.lib.licenses.bsd3;
@@ -227549,6 +233280,29 @@ self: {
        broken = true;
      }) {};
 
+  "smuggler2" = callPackage
+    ({ mkDerivation, base, containers, directory, filepath, ghc
+     , ghc-boot, ghc-exactprint, ghc-paths, split, syb, tasty
+     , tasty-golden, typed-process
+     }:
+     mkDerivation {
+       pname = "smuggler2";
+       version = "0.3.6.1";
+       sha256 = "1wr7qskz75dr0zzhg5gzpjci70rhlcwzlx3cavii7199kvm8axhd";
+       libraryHaskellDepends = [
+         base containers directory filepath ghc ghc-boot ghc-exactprint
+         split syb
+       ];
+       testHaskellDepends = [
+         base containers directory filepath ghc ghc-paths tasty tasty-golden
+         typed-process
+       ];
+       description = "GHC Source Plugin that helps to minimise imports and generate explicit exports";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "snake" = callPackage
     ({ mkDerivation, base, random, split, terminal-size }:
      mkDerivation {
@@ -227713,8 +233467,8 @@ self: {
      }:
      mkDerivation {
        pname = "snap-core";
-       version = "1.0.4.1";
-       sha256 = "19dmfqbsfyk1rkjnnrnajpjfam2xjxgmpfmx10yr5qffgza7gcf0";
+       version = "1.0.4.2";
+       sha256 = "0zxdhx4wk70bkn71574lyz3zhq79yy98rv05r4564rd100xw3fqs";
        libraryHaskellDepends = [
          attoparsec base bytestring bytestring-builder case-insensitive
          containers directory filepath hashable HUnit io-streams lifted-base
@@ -227919,10 +233673,8 @@ self: {
      }:
      mkDerivation {
        pname = "snap-server";
-       version = "1.1.1.1";
-       sha256 = "0lw475wp0lnrbgc3jcfif3qjjc3pmrh2k74d8cgpnc1304g6a2s5";
-       revision = "3";
-       editedCabalFile = "1xma33r1by1q79qqbb70lwf4d846qlqs0f22rzrd3cdzkzcf9qf5";
+       version = "1.1.1.2";
+       sha256 = "1qprlgn59n9layslshpkizzjbsbd87v5h35iylva58vfnwwlmz77";
        configureFlags = [ "-fopenssl" ];
        isLibrary = true;
        isExecutable = true;
@@ -227985,8 +233737,6 @@ self: {
        ];
        description = "Scaffolding CLI for the Snap Framework";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "snap-testing" = callPackage
@@ -228180,8 +233930,8 @@ self: {
        pname = "snaplet-customauth";
        version = "0.1.2";
        sha256 = "0y1a8c9j1q1pzby5v4ajnafm6dr9fvxvvkiynvscyjsf73gp2myb";
-       revision = "1";
-       editedCabalFile = "1dh8vmrnndg06l5yr3fbmxlzf164nvcy923mafc624bxcr6iip9f";
+       revision = "2";
+       editedCabalFile = "00wa07aqsyp1q8xrhi2xglwqwzm20qq0pxfb353idsja2qbvynfj";
        libraryHaskellDepends = [
          aeson base base64-bytestring binary binary-orphans bytestring
          configurator containers errors heist hoauth2 http-client
@@ -228499,8 +234249,8 @@ self: {
      }:
      mkDerivation {
        pname = "snaplet-persistent";
-       version = "0.6.0";
-       sha256 = "1gvnf4fkylazq8bjb8kcv70vcd2k1r2dw5l53r624d10p23fsa8k";
+       version = "0.6.1";
+       sha256 = "1s1ay1kzmjg3gh14ggnb24hpr2gjyk0ip0jbn55ly5zgfqdb422v";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring clientsession configurator errors heist lens
@@ -228524,6 +234274,8 @@ self: {
        pname = "snaplet-postgresql-simple";
        version = "1.2.0.0";
        sha256 = "0an9b72vfnb562k49bz5wh72s637r3vrbm4x9brwf483rrmlmvrf";
+       revision = "1";
+       editedCabalFile = "1zzidcr5j6i6xnzrlzxlmpj6fs60knkbkjbagawa3y1v1wg3vmq7";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -229308,8 +235060,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
@@ -229822,29 +235574,36 @@ self: {
      }) {};
 
   "souffle-haskell" = callPackage
-    ({ mkDerivation, base, deepseq, directory, filepath, hspec, mtl
-     , process, souffle, template-haskell, temporary, text
-     , type-errors-pretty, vector
+    ({ mkDerivation, array, base, containers, deepseq, directory, extra
+     , filepath, hedgehog, hspec, hspec-hedgehog, megaparsec, mtl
+     , process, template-haskell, temporary, text, type-errors-pretty
+     , vector
      }:
      mkDerivation {
        pname = "souffle-haskell";
-       version = "0.2.2";
-       sha256 = "1835yq0prh42x9yakfx963hv1lzkhizz02ba344z099rx4fx9fji";
+       version = "1.1.0";
+       sha256 = "0s8zl7f6v89m6a3yhlmji1lb8k3rfwzyyg307m3f35a9kms0988p";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
-         base deepseq directory filepath mtl process template-haskell
+         array base deepseq directory filepath mtl process template-haskell
          temporary text type-errors-pretty vector
        ];
-       libraryToolDepends = [ souffle ];
+       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
-         temporary text type-errors-pretty vector
+         array base deepseq directory filepath hedgehog hspec hspec-hedgehog
+         mtl process template-haskell temporary text type-errors-pretty
+         vector
        ];
-       testToolDepends = [ souffle ];
        description = "Souffle Datalog bindings for Haskell";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) souffle;};
+     }) {};
 
   "sound-collage" = callPackage
     ({ mkDerivation, array, base, Cabal, carray, containers, fft
@@ -229925,6 +235684,25 @@ self: {
        broken = true;
      }) {};
 
+  "source-constraints" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, filepath, ghc
+     , ghc-paths, heredoc, hspec, syb, text
+     }:
+     mkDerivation {
+       pname = "source-constraints";
+       version = "0.0.1";
+       sha256 = "0i9p63lbcmc78pp0bvym2zdfvrncrzchkw1xbak6idj3ikb1ljpx";
+       libraryHaskellDepends = [
+         attoparsec base bytestring filepath ghc syb text
+       ];
+       testHaskellDepends = [
+         attoparsec base bytestring filepath ghc ghc-paths heredoc hspec syb
+         text
+       ];
+       description = "Source constraints GHC plugin";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "sourcemap" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, criterion
      , process, random, text, unordered-containers, utf8-string
@@ -230051,8 +235829,8 @@ self: {
      }:
      mkDerivation {
        pname = "spacecookie";
-       version = "0.2.1.1";
-       sha256 = "0l3knzsqab58yyk6kafpxxh465ncgqr2gi388k89gxwrlcqkl8wr";
+       version = "0.2.1.2";
+       sha256 = "0cb51kji78vfg17mcnz3a5jlfbnyavh880x09b18y9syqwx4in7l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -230309,8 +236087,8 @@ self: {
      }:
      mkDerivation {
        pname = "sparse-tensor";
-       version = "0.2.1.3";
-       sha256 = "1fcckwp9k3ky669ai62x26pgz0irir4ngk0m6g1659fsn3f2gdc8";
+       version = "0.2.1.4";
+       sha256 = "10caf86g33hcccmpicxfjh0jq3z9d7vs4jafl0f8zhy09dirq8bn";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          ad base bytestring cereal containers deepseq ghc-typelits-knownnat
@@ -230489,7 +236267,7 @@ self: {
          aeson base blaze-markup bytestring cereal deepseq hashable
          mwc-random path-pieces primitive safecopy text uuid
        ];
-       description = "Simple data types that help me here and there.";
+       description = "Simple data types that help me here and there";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -230655,13 +236433,13 @@ self: {
      }:
      mkDerivation {
        pname = "speedy-slice";
-       version = "0.3.0";
-       sha256 = "16982nx9br5v37vzmww2di1vmj7y8g59myvhiw3l1fc1nq88mgzg";
+       version = "0.3.1";
+       sha256 = "0i139wp2c75q8a5q018z7ps1ghbqjkkd8nh6z6xfp0rqywq2bsnr";
        libraryHaskellDepends = [
          base kan-extensions lens mcmc-types mwc-probability pipes primitive
          transformers
        ];
-       testHaskellDepends = [ base containers mwc-probability ];
+       testHaskellDepends = [ base containers ];
        description = "Speedy slice sampling";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -230952,6 +236730,17 @@ self: {
        broken = true;
      }) {};
 
+  "splint" = callPackage
+    ({ mkDerivation, base, containers, ghc, hlint, stm }:
+     mkDerivation {
+       pname = "splint";
+       version = "1.0.1.1";
+       sha256 = "14rwj7dbzg01lv4abwrgxjianwnshnycsmxcckw1hhqc8wx9jdac";
+       libraryHaskellDepends = [ base containers ghc hlint stm ];
+       description = "HLint as a GHC source plugin";
+       license = stdenv.lib.licenses.isc;
+     }) {};
+
   "split_0_1_4_3" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -231031,24 +236820,50 @@ self: {
      }) {};
 
   "splitmix" = callPackage
-    ({ mkDerivation, async, base, base-compat-batteries, bytestring
-     , clock, containers, criterion, deepseq, HUnit, process, random
-     , tf-random, time, vector
+    ({ mkDerivation, async, base, base-compat, base-compat-batteries
+     , bytestring, clock, containers, criterion, deepseq, HUnit
+     , math-functions, process, random, test-framework
+     , test-framework-hunit, tf-random, time, vector
      }:
      mkDerivation {
        pname = "splitmix";
-       version = "0.0.4";
-       sha256 = "149hjjr8mh5cvbniyhx1aciczp5ciyx8bx57d5ynmz90acdb78da";
+       version = "0.0.5";
+       sha256 = "0lndnirkxc87c7hwlrjbnk5m4clcb0wncxvicdjkbj87lxxriwhr";
        libraryHaskellDepends = [ base deepseq random time ];
        testHaskellDepends = [
-         async base base-compat-batteries bytestring deepseq HUnit process
-         random tf-random vector
+         async base base-compat base-compat-batteries bytestring containers
+         deepseq HUnit math-functions process random test-framework
+         test-framework-hunit tf-random vector
+       ];
+       benchmarkHaskellDepends = [
+         base clock containers criterion random tf-random
+       ];
+       description = "Fast Splittable PRNG";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "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
+     , test-framework-hunit, tf-random, time, vector
+     }:
+     mkDerivation {
+       pname = "splitmix";
+       version = "0.1.0.1";
+       sha256 = "0ahr3zxx0n9pjxpldrphqx5rhanar6alq3km7qvszipa8r46jjsd";
+       libraryHaskellDepends = [ base deepseq time ];
+       testHaskellDepends = [
+         async base base-compat base-compat-batteries bytestring containers
+         deepseq HUnit math-functions process random test-framework
+         test-framework-hunit tf-random vector
        ];
        benchmarkHaskellDepends = [
          base clock containers criterion random tf-random
        ];
        description = "Fast Splittable PRNG";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "splitter" = callPackage
@@ -231085,8 +236900,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
@@ -231132,6 +236945,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
@@ -231598,6 +237422,21 @@ self: {
        broken = true;
      }) {};
 
+  "squares" = callPackage
+    ({ mkDerivation, adjunctions, base, bifunctors, comonad
+     , distributive, profunctors
+     }:
+     mkDerivation {
+       pname = "squares";
+       version = "0.1.1";
+       sha256 = "1lql2qzyiffs09y3iw1wi190agjg49nic95n57jhzcixavk91fgn";
+       libraryHaskellDepends = [
+         adjunctions base bifunctors comonad distributive profunctors
+       ];
+       description = "The double category of Hask functors and profunctors";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "squeal-postgresql" = callPackage
     ({ mkDerivation, aeson, async, base, binary, binary-parser
      , bytestring, bytestring-strict-builder, deepseq, doctest
@@ -231655,8 +237494,8 @@ self: {
      }:
      mkDerivation {
        pname = "squeeze";
-       version = "1.0.4.17";
-       sha256 = "10nm5jim5cw7qmkdr1j7665g646kay53w8n5rcsp1jz3lglpymdw";
+       version = "1.0.4.19";
+       sha256 = "0zb4nbgwlifzaw28g09qhvvjk8a795zww0b746bj98wgzyxp6a50";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -231670,30 +237509,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;
@@ -231807,6 +237648,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
@@ -232017,9 +237860,10 @@ self: {
     ({ mkDerivation, base, ghc-prim }:
      mkDerivation {
        pname = "stable-marriage";
-       version = "0.1.2.0";
-       sha256 = "1xm99zdgzdlaz48njpyl0ji9hmyxcf9zxjs0dg46si4lj64qavmz";
+       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;
@@ -232077,13 +237921,49 @@ self: {
        pname = "stache";
        version = "2.1.1";
        sha256 = "06pn7pm5vgk9f4bsh3m29cik514nv5w655ip04k7p5jv9xgmn4ld";
+       revision = "2";
+       editedCabalFile = "1a25mwi1x3yqq9clm9gz0dibpnppznbx392ixfwc21hnngn7kxsp";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers deepseq directory filepath
+         megaparsec mtl template-haskell text unordered-containers vector
+       ];
+       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;
+     }) {};
+
+  "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 = "1cs3pnbxmjpzizydncai7wr5aj454374wr1sc0h705c4cbxqlfs0";
+       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
@@ -232094,6 +237974,7 @@ self: {
        ];
        description = "Mustache templates for Haskell";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "stack" = callPackage
@@ -232118,8 +237999,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"
@@ -232899,6 +238780,53 @@ self: {
        broken = true;
      }) {};
 
+  "stackcollapse-ghc" = 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.2";
+       sha256 = "17ypxfscz9y7w6jh06133j779837dhdiq2a378mc73ji2m5fia1s";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring containers extra foldl recursion-schemes rosezipper
+         safe text transformers
+       ];
+       testHaskellDepends = [
+         base bytestring containers extra foldl hspec hspec-golden
+         recursion-schemes rosezipper safe text transformers utf8-string
+       ];
+       description = "Program to fold GHC prof files into flamegraph input";
+       license = stdenv.lib.licenses.gpl3;
+     }) {};
+
+  "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.3";
+       sha256 = "05271x47b2aik2msfm9f6jsazb174p667acwyd84vs73nygpbmdk";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring containers extra foldl recursion-schemes rosezipper
+         safe text transformers
+       ];
+       testHaskellDepends = [
+         base bytestring containers extra foldl hspec hspec-golden
+         recursion-schemes rosezipper safe text transformers utf8-string
+       ];
+       description = "Program to fold GHC prof files into flamegraph input";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "stacked-dag" = callPackage
     ({ mkDerivation, base, containers, doctest, graphviz
      , optparse-applicative, text
@@ -232953,6 +238881,39 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "stan" = callPackage
+    ({ 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, microaeson, optparse-applicative, pretty-simple
+     , process, relude, slist, text, tomland, trial
+     , trial-optparse-applicative, trial-tomland, unordered-containers
+     }:
+     mkDerivation {
+       pname = "stan";
+       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 microaeson optparse-applicative pretty-simple
+         process relude slist text tomland trial trial-optparse-applicative
+         trial-tomland unordered-containers
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base containers filepath ghc hedgehog hspec hspec-hedgehog
+         optparse-applicative relude text tomland trial unordered-containers
+       ];
+       doHaddock = false;
+       description = "Haskell STatic ANalyser";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "standalone-derive-topdown" = callPackage
     ({ mkDerivation, base, mtl, template-haskell }:
      mkDerivation {
@@ -233160,10 +239121,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 = [
@@ -233256,6 +239215,28 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) libstatgrab;};
 
+  "static" = callPackage
+    ({ mkDerivation, base, binary, bytestring, constraints, doctest
+     , mtl, serialise, singletons, tasty, tasty-hunit, template-haskell
+     , text, transformers
+     }:
+     mkDerivation {
+       pname = "static";
+       version = "0.1.0.1";
+       sha256 = "1w99kc32r0pfsi3l1bjy7sp5hga5j7fqv0ix8gszzhz600yzphlq";
+       libraryHaskellDepends = [
+         base binary bytestring constraints serialise singletons
+         template-haskell text
+       ];
+       testHaskellDepends = [
+         base doctest mtl tasty tasty-hunit transformers
+       ];
+       description = "Type-safe and interoperable static values and closures";
+       license = stdenv.lib.licenses.gpl3Plus;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "static-canvas" = callPackage
     ({ mkDerivation, base, double-conversion, free, mtl, text }:
      mkDerivation {
@@ -233353,8 +239334,8 @@ self: {
      }:
      mkDerivation {
        pname = "static-text";
-       version = "0.2.0.5";
-       sha256 = "1vxkavrfyjxjzmajxx8xfx8cyx0qwa8cxslkvv1hnkrw9brwhrrs";
+       version = "0.2.0.6";
+       sha256 = "14z6ib2b1n6m460c5li58wh0p5kwmb471zwpwjn0pmgsayp8vzzi";
        libraryHaskellDepends = [
          base bytestring template-haskell text vector
        ];
@@ -233604,8 +239585,8 @@ self: {
      }:
      mkDerivation {
        pname = "staversion";
-       version = "0.2.3.5";
-       sha256 = "1jm6cyql0zinw1bfs30986jpmb7ws4jmzfyxwmdfkdcz73bf1867";
+       version = "0.2.3.7";
+       sha256 = "0mrkm7gr6s27dngws7p3mcfyp9pdvyr25mg9nd3ygklaql74jmng";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -234267,6 +240248,8 @@ self: {
        testHaskellDepends = [ async base QuickCheck random Unique ];
        description = "STM wrapper around Control.Concurrent.Supply.";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "stm-tlist" = callPackage
@@ -234498,8 +240481,8 @@ self: {
      }:
      mkDerivation {
        pname = "storablevector";
-       version = "0.2.13";
-       sha256 = "1zmr738vwnhnyxbikayqnaz31ilv2qlmscp6iqgl7adcfbal4dzq";
+       version = "0.2.13.1";
+       sha256 = "06fgxbnc5vwmiv7dxywj7ncjhmxv0wjs0bys5hza6mrwn3sw5r2w";
        libraryHaskellDepends = [
          base deepseq non-negative QuickCheck semigroups syb transformers
          unsafe utility-ht
@@ -234546,63 +240529,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.6";
+       sha256 = "1gzax38chn57ybikvddk6g8msyv52y5s30yndpp64bdh3kqwlchq";
        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;
@@ -234615,8 +240595,8 @@ self: {
      }:
      mkDerivation {
        pname = "store-streaming";
-       version = "0.2.0.0";
-       sha256 = "0fhcv0lvmhdc53fx9y2dvvykvap7dz4asnajy95kpwhaz6z1xc2k";
+       version = "0.2.0.2";
+       sha256 = "1hnzpyw5l90nrm3vlrwbv8517iaaq0razfjj6m8a41jy2lkgf4gz";
        libraryHaskellDepends = [
          async base bytestring conduit free resourcet store store-core
          streaming-commons text transformers
@@ -234673,8 +240653,8 @@ self: {
      }:
      mkDerivation {
        pname = "stratosphere";
-       version = "0.49.0";
-       sha256 = "18qw7m0h9nlg0vicg3rr7dghmpdfnrpd0ayqyi60c1ifzk4ys4sf";
+       version = "0.53.0";
+       sha256 = "0842sfn7vspbq5kc6rx7i2mvmk6zap87233khybbmvrzzyrp0sp2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -234690,15 +240670,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "stratosphere_0_52_0" = callPackage
+  "stratosphere_0_57_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
      , hashable, hspec, hspec-discover, lens, template-haskell, text
      , unordered-containers
      }:
      mkDerivation {
        pname = "stratosphere";
-       version = "0.52.0";
-       sha256 = "1js5rb5f0p7ryja5slpxjpvqfq4f72bw9f66ysd70cjvw3zf3hbh";
+       version = "0.57.0";
+       sha256 = "1ksxy117bizi4bnj7skv5hq7rsw2gz0w5yg5b3xhc6ialkq9in4z";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -235014,14 +240994,14 @@ self: {
      }:
      mkDerivation {
        pname = "streaming-bracketed";
-       version = "0.1.0.1";
-       sha256 = "1czzx0xraxpdm9qffx435m64nhib66gvgpvf8ian6iqwzdf09z60";
+       version = "0.1.1.0";
+       sha256 = "0lrk2x7c90sw9l9d5vr0zsa8v9q8sg3qqziin46219694y0vy32h";
        libraryHaskellDepends = [ base streaming ];
        testHaskellDepends = [
          base containers directory doctest filepath streaming
          streaming-commons tasty tasty-hunit
        ];
-       description = "A resource management decorator for \"streaming\".";
+       description = "A resource management decorator for \"streaming\"";
        license = stdenv.lib.licenses.mit;
      }) {};
 
@@ -235098,8 +241078,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
@@ -235253,8 +241233,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
@@ -235318,8 +241298,8 @@ self: {
      }:
      mkDerivation {
        pname = "streaming-postgresql-simple";
-       version = "0.2.0.4";
-       sha256 = "1qdfqp1w7pszks4iqbvgqsxmr2c6bx81jgkyz9k8wfz7vajg6f67";
+       version = "0.2.0.5";
+       sha256 = "1gaj099hxdvyzmzz6z0s1kzv3qqv3py609jz7cp2j3f6497dhdqa";
        libraryHaskellDepends = [
          base bytestring exceptions postgresql-libpq postgresql-simple
          resourcet safe-exceptions streaming transformers
@@ -235439,6 +241419,8 @@ self: {
        pname = "streamly";
        version = "0.7.2";
        sha256 = "007i3rfza0v8zy34lq9ipq2biarg82prmd1vxr5f2zz5xln37wrm";
+       revision = "1";
+       editedCabalFile = "15fyfvf0g2l678426fz91fqf3qgi44dagqdxh6i6am3vh0nvvg1d";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -235454,6 +241436,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
@@ -235503,32 +241524,53 @@ self: {
      }) {};
 
   "streamly-fsnotify" = callPackage
-    ({ mkDerivation, base, fsnotify, paths, semirings, streamly, text
-     , time
+    ({ mkDerivation, base, filepath, fsnotify, semirings, streamly
+     , text, time
      }:
      mkDerivation {
        pname = "streamly-fsnotify";
-       version = "1.0.0.1";
-       sha256 = "0w81r0szdf4q8v6n389qlzwslhfwvjf0m9nihxsm1y0jgxbzy5cb";
+       version = "1.1.1.0";
+       sha256 = "1xcw4rsrysh96d91wjmyzb5s7cls3rf0ilpv8dn525iqzv11fl3l";
        libraryHaskellDepends = [
-         base fsnotify paths semirings streamly text time
+         base filepath fsnotify semirings streamly text time
        ];
        description = "Folder watching as a Streamly stream";
-       license = stdenv.lib.licenses.gpl3Plus;
+       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
-     , temporary, unix, word8
+     , temporary, transformers, unix, word8
      }:
      mkDerivation {
        pname = "streamly-posix";
-       version = "0.1.0.0";
-       sha256 = "0pjrmpsm0925jhxnhqka3rlwllcww9xinyh1dg0k2g6b4pxr9gbx";
+       version = "0.1.0.1";
+       sha256 = "1z6hmnhgglr5zwsaakn7c6d0cgq32pwcdds8fkn28y9p3yc89bvv";
        libraryHaskellDepends = [
          base bytestring hpath-posix safe-exceptions streamly
-         streamly-bytestring unix word8
+         streamly-bytestring transformers unix word8
        ];
        testHaskellDepends = [
          base filepath hpath-posix hspec hspec-discover temporary unix
@@ -235634,6 +241676,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 {
@@ -235663,6 +241722,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 {
@@ -235735,6 +241810,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
@@ -235752,18 +241840,48 @@ 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 {
        pname = "strict-tuple";
        version = "0.1.3";
        sha256 = "0dyiwgkbr1d97jbri7a2q4by7g0wiszpw3hgfgqv4rfp25lsv39j";
+       revision = "1";
+       editedCabalFile = "1bkizfki8v5p0n8sy59s4zqjmv1mnv3s45327cig9cr081ibv9yy";
        libraryHaskellDepends = [ base bifunctors deepseq hashable ];
        testHaskellDepends = [ base ];
        description = "Strict tuples";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "strict-tuple-lens" = callPackage
+    ({ mkDerivation, base, lens, strict-tuple }:
+     mkDerivation {
+       pname = "strict-tuple-lens";
+       version = "0.1.0.1";
+       sha256 = "1vvhbzbyfvkx76scygg8gwfp01cw6ks38hk0gb70xdl2lyzi80wg";
+       revision = "1";
+       editedCabalFile = "0875r7kva6ym17fdklh18vm4s04sd9pj0w55km8jv2kmbkmfja8k";
+       libraryHaskellDepends = [ base lens strict-tuple ];
+       description = "Optics for the `strict-tuple` library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "strict-types" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, deepseq
      , hashable, text, unordered-containers, vector
@@ -235909,51 +242027,54 @@ self: {
      }) {};
 
   "string-interpolate" = callPackage
-    ({ mkDerivation, base, bytestring, criterion, formatting
+    ({ mkDerivation, base, bytestring, criterion, deepseq, formatting
      , haskell-src-exts, haskell-src-meta, hspec, interpolate
      , neat-interpolation, QuickCheck, quickcheck-instances
-     , quickcheck-text, quickcheck-unicode, random-shuffle
-     , template-haskell, text, text-conversions, unordered-containers
-     , utf8-string
+     , quickcheck-text, quickcheck-unicode, split, template-haskell
+     , text, text-conversions, unordered-containers, utf8-string
      }:
      mkDerivation {
        pname = "string-interpolate";
-       version = "0.2.0.3";
-       sha256 = "0xmanjs8sgk3cm6f25wbpxsmzpgznf73pvviw0ig71mn2y2kx6bi";
+       version = "0.2.1.0";
+       sha256 = "0wply8lqfhc1xnqxq88xwygwqxbq86gjrwphygbn7nz66g2abgda";
+       revision = "2";
+       editedCabalFile = "00dsrl53aggn0d45cv3c7w6x82qhz3a059w957s9i3qdqfphbvx9";
        libraryHaskellDepends = [
-         base bytestring haskell-src-exts haskell-src-meta template-haskell
-         text text-conversions utf8-string
+         base bytestring haskell-src-exts haskell-src-meta split
+         template-haskell text text-conversions utf8-string
        ];
        testHaskellDepends = [
          base bytestring hspec QuickCheck quickcheck-instances
-         quickcheck-text quickcheck-unicode random-shuffle text
+         quickcheck-text quickcheck-unicode template-haskell text
          unordered-containers
        ];
        benchmarkHaskellDepends = [
-         base bytestring criterion formatting interpolate neat-interpolation
-         QuickCheck text
+         base bytestring criterion deepseq formatting interpolate
+         neat-interpolation QuickCheck text
        ];
        description = "Haskell string/text/bytestring interpolation that just works";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "string-interpolate_0_2_1_0" = callPackage
+  "string-interpolate_0_3_0_0" = callPackage
     ({ mkDerivation, base, bytestring, criterion, deepseq, formatting
-     , haskell-src-exts, haskell-src-meta, hspec, interpolate
-     , neat-interpolation, QuickCheck, quickcheck-instances
+     , 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.2.1.0";
-       sha256 = "0wply8lqfhc1xnqxq88xwygwqxbq86gjrwphygbn7nz66g2abgda";
+       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 QuickCheck quickcheck-instances
+         base bytestring hspec hspec-core QuickCheck quickcheck-instances
          quickcheck-text quickcheck-unicode template-haskell text
          unordered-containers
        ];
@@ -236027,8 +242148,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 = [
@@ -236238,8 +242359,8 @@ self: {
     ({ mkDerivation, base, bytestring, text }:
      mkDerivation {
        pname = "stripe-concepts";
-       version = "1.0.2.2";
-       sha256 = "18dqw3fkviysazx1iy2ljnk6ngpck83ld0msnn8pn68l4qvvhl4r";
+       version = "1.0.2.4";
+       sha256 = "0n4q3hsgqrqypmkkim8mcksdlljgldr908wqxlcz6k1wsv9klyc6";
        libraryHaskellDepends = [ base bytestring text ];
        description = "Types for the Stripe API";
        license = stdenv.lib.licenses.mit;
@@ -236325,8 +242446,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-scotty";
-       version = "1.0.0.2";
-       sha256 = "1dvmagbxgmlf7970rwf0cjdk8fcpxkl1isiki1bpq4zd07cjnsfv";
+       version = "1.0.0.4";
+       sha256 = "0gkagcq2brl4kav6ha333fyl9npgllwws4ixz0z6nas6xf2953pk";
        libraryHaskellDepends = [
          aeson base bytestring http-types scotty stripe-concepts
          stripe-signature text unordered-containers
@@ -236341,8 +242462,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-signature";
-       version = "1.0.0.2";
-       sha256 = "1jjn4znk22993dpzwdqndnsyn4k76v7zqgm7j7dhvlgiwak6yxh6";
+       version = "1.0.0.4";
+       sha256 = "1gsw1a1x4a46fiihwqsh2706nsrjy00mv881fmc1aab7ln2cmzkg";
        libraryHaskellDepends = [
          base base16-bytestring bytestring cryptonite memory stripe-concepts
          text
@@ -236377,8 +242498,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-wreq";
-       version = "1.0.1.2";
-       sha256 = "0hjk9d0xlg2a6nc2rmc19fmifcyrdj5m69100fy5xkq6brcqxjz1";
+       version = "1.0.1.4";
+       sha256 = "08c5jkxri3ix19m04w6md1mwc9wd8fgsqr7v3dxzab51ylfivdcr";
        libraryHaskellDepends = [
          aeson base bytestring lens stripe-concepts text
          unordered-containers wreq
@@ -236387,6 +242508,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "stripeapi" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, ghc-prim, http-client
+     , http-conduit, http-types, mtl, scientific, text, time
+     , transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "stripeapi";
+       version = "0.1.0.2";
+       sha256 = "1zls2k2bzrkwcqav8s416gjsc4rp6glb4rv0ljkjab55ym3fkbqq";
+       libraryHaskellDepends = [
+         aeson base bytestring ghc-prim http-client http-conduit http-types
+         mtl scientific text time transformers unordered-containers vector
+       ];
+       description = "Stripe-Library";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "strips" = callPackage
     ({ mkDerivation, base, containers, hspec, mtl }:
      mkDerivation {
@@ -236408,17 +242546,13 @@ self: {
      }:
      mkDerivation {
        pname = "strive";
-       version = "5.0.10";
-       sha256 = "0im35yqww85l9vkijhafdn4xp2ihxnis4g97m5sv79nbql3x0rfh";
+       version = "5.0.12";
+       sha256 = "1fdwmcpgfw7maw4lf4mw3qs8fiwxdsv518xjjmrp5w3hfjdlqgmz";
        libraryHaskellDepends = [
          aeson base bytestring data-default gpolyline http-client
          http-client-tls http-types template-haskell text time transformers
        ];
-       testHaskellDepends = [
-         aeson base bytestring data-default gpolyline http-client
-         http-client-tls http-types markdown-unlit template-haskell text
-         time transformers
-       ];
+       testHaskellDepends = [ base bytestring markdown-unlit time ];
        testToolDepends = [ markdown-unlit ];
        description = "A client for the Strava V3 API";
        license = stdenv.lib.licenses.mit;
@@ -236525,6 +242659,27 @@ self: {
        broken = true;
      }) {};
 
+  "structured" = callPackage
+    ({ mkDerivation, aeson, array, base, base16-bytestring, binary
+     , bytestring, containers, hashable, scientific, tagged, text
+     , time-compat, transformers, unordered-containers, uuid-types
+     , vector
+     }:
+     mkDerivation {
+       pname = "structured";
+       version = "0.1";
+       sha256 = "0xm0m7jxwrbz8jgcn2dl5vhlz0gcg7wxcbbgaqidm2msmnc6fqww";
+       revision = "1";
+       editedCabalFile = "067ljj4dfa9kvri944flcw489sy2fbyw75b2s9hz916zdqmzqjwd";
+       libraryHaskellDepends = [
+         aeson array base base16-bytestring binary bytestring containers
+         hashable scientific tagged text time-compat transformers
+         unordered-containers uuid-types vector
+       ];
+       description = "Structure (hash) of your data types";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "structured-cli" = callPackage
     ({ mkDerivation, base, data-default, haskeline, mtl, split
      , transformers
@@ -236764,42 +242919,12 @@ self: {
      , directory, file-embed, filepath, haskell-src-exts, HsYAML
      , HsYAML-aeson, HUnit, mtl, optparse-applicative, random
      , semigroups, strict, syb, test-framework, test-framework-hunit
-     }:
-     mkDerivation {
-       pname = "stylish-haskell";
-       version = "0.10.0.0";
-       sha256 = "1ribq5fnfg7bwzj7h8br2jnpjnw905dzr9yysx3h9nkw1593rw56";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base bytestring Cabal containers directory file-embed
-         filepath haskell-src-exts HsYAML HsYAML-aeson mtl semigroups syb
-       ];
-       executableHaskellDepends = [
-         aeson base bytestring Cabal containers directory file-embed
-         filepath haskell-src-exts HsYAML HsYAML-aeson mtl
-         optparse-applicative strict syb
-       ];
-       testHaskellDepends = [
-         aeson base bytestring Cabal containers directory file-embed
-         filepath haskell-src-exts HsYAML HsYAML-aeson HUnit mtl random syb
-         test-framework test-framework-hunit
-       ];
-       description = "Haskell code prettifier";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "stylish-haskell_0_11_0_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, Cabal, containers
-     , directory, file-embed, filepath, haskell-src-exts, HsYAML
-     , HsYAML-aeson, HUnit, mtl, optparse-applicative, random
-     , semigroups, strict, syb, test-framework, test-framework-hunit
      , text
      }:
      mkDerivation {
        pname = "stylish-haskell";
-       version = "0.11.0.0";
-       sha256 = "124dn46ddxfcjyrmwjwijqan0dd55zzx9nwckg1df8b6al6k0x3j";
+       version = "0.11.0.3";
+       sha256 = "10svl5q95n9i76rqvlxibi784qzvdyg8qfl1xwk7c32y84nyfibn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -236819,7 +242944,6 @@ self: {
        ];
        description = "Haskell code prettifier";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "stylist" = callPackage
@@ -236828,8 +242952,8 @@ self: {
      }:
      mkDerivation {
        pname = "stylist";
-       version = "2.0.0.0";
-       sha256 = "1xb2vl4xjbgd52nqm378r43z4xlgzscfy9a7mqp522av3b4v61x7";
+       version = "2.2.0.0";
+       sha256 = "0pmyjxdg7m0fh9m0nrimi02q4lqk47kfbws65mb22rj7ckm7gw68";
        libraryHaskellDepends = [
          async base css-syntax hashable network-uri text
          unordered-containers
@@ -237207,23 +243331,34 @@ 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, bytestring, colourista, containers
-     , directory, filepath, generic-data, gitrev, hedgehog, hspec
-     , hspec-hedgehog, neat-interpolation, optparse-applicative, process
-     , relude, shellmet, text, time, tomland, tree-diff
-     , validation-selective
+    ({ mkDerivation, aeson, base, colourista, containers, directory
+     , filepath, generic-data, gitrev, hedgehog, hspec, hspec-hedgehog
+     , neat-interpolation, optparse-applicative, process, relude
+     , shellmet, text, time, tomland, tree-diff, validation-selective
      }:
      mkDerivation {
        pname = "summoner";
-       version = "2.0.0.0";
-       sha256 = "0cphigybxmvh2ff62b100hywqgln6fhsl68yp2049g4wnmvfzgjf";
+       version = "2.0.1.1";
+       sha256 = "15n4dwhy4ri1vi446fa2k9i6cxvfrl79hjjgsdjhpyz290lfwvjv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base bytestring colourista containers directory filepath
-         generic-data gitrev neat-interpolation optparse-applicative process
-         relude shellmet text time tomland validation-selective
+         aeson base colourista containers directory filepath generic-data
+         gitrev neat-interpolation optparse-applicative process relude
+         shellmet text time tomland validation-selective
        ];
        executableHaskellDepends = [ base relude ];
        testHaskellDepends = [
@@ -237238,17 +243373,17 @@ self: {
      }) {};
 
   "summoner-tui" = callPackage
-    ({ mkDerivation, base, brick, directory, filepath, microlens
+    ({ mkDerivation, base, brick, colourista, directory, microlens
      , microlens-th, relude, summoner, text, validation-selective, vty
      }:
      mkDerivation {
        pname = "summoner-tui";
-       version = "2.0.0.0";
-       sha256 = "1cgwdfbw55xvmw3k8cbwlcf8773mz1rlsvnf1slsk8kn91irhs9g";
+       version = "2.0.1.1";
+       sha256 = "09rc3yyngma602yyd7bmc6cix9rcwmanfphcxnsv8m1cswjhz14z";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base brick directory filepath microlens microlens-th relude
+         base brick colourista directory microlens microlens-th relude
          summoner text validation-selective vty
        ];
        executableHaskellDepends = [ base relude ];
@@ -237583,8 +243718,8 @@ self: {
      }:
      mkDerivation {
        pname = "superrecord";
-       version = "0.5.0.1";
-       sha256 = "0l1zimami83701djj47nk3izb10m6jxszq52zwmb8411dbn9pclb";
+       version = "0.5.1.0";
+       sha256 = "0dg1h7213vinlm6vmdr73xh81j0ysvs7mqmphwr58d3ymn12mfqa";
        libraryHaskellDepends = [
          aeson base bytestring constraints deepseq ghc-prim mtl text
        ];
@@ -238089,6 +244224,8 @@ self: {
        pname = "swagger2";
        version = "2.6";
        sha256 = "0vkhikxf1gpspc9qjgnvz3glb01bd54bnc5kraac7dyn8cxzwak8";
+       revision = "2";
+       editedCabalFile = "1gdq1kiccn6qv05fnkb2dzsnsds2v3gri29gd8l1x9vx74mpbh0j";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson aeson-pretty base base-compat-batteries bytestring containers
@@ -238149,6 +244286,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 {
@@ -238186,8 +244345,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;
@@ -238200,10 +244359,25 @@ self: {
          base containers hashable HUnit network-uri old-locale semigroups
          test-framework test-framework-hunit text time
        ];
-       description = "A semantic web toolkit.";
+       description = "A semantic web toolkit";
        license = stdenv.lib.licenses.lgpl21;
      }) {};
 
+  "swiss-ephemeris" = callPackage
+    ({ mkDerivation, base, directory, hspec, hspec-discover }:
+     mkDerivation {
+       pname = "swiss-ephemeris";
+       version = "0.1.0.2";
+       sha256 = "0kjph3dy7ii767zpjdqi2ya08vgahhwkbf1fp48n26vfilcwppc9";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base directory hspec ];
+       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
@@ -238275,8 +244449,8 @@ self: {
      }:
      mkDerivation {
        pname = "syb-with-class";
-       version = "0.6.1.12";
-       sha256 = "1cxy0mph0kqdi3hzy5x3c754a3sjdn14x64ga4bkhvzi6iwbfcq0";
+       version = "0.6.1.13";
+       sha256 = "1w767im0a2qdi6br6lx4kh946yryibjwjx4a64cijxfrj7gbfxk5";
        libraryHaskellDepends = [
          array base bytestring containers template-haskell
        ];
@@ -238392,6 +244566,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
@@ -238593,25 +244801,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;
@@ -238738,6 +244946,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 {
@@ -239630,20 +245856,6 @@ self: {
     ({ mkDerivation, base, bytestring, network, transformers, unix }:
      mkDerivation {
        pname = "systemd";
-       version = "2.2.0";
-       sha256 = "18z0wc71k3wwxfighwk4y03aprf5sd94vadzbyjysrac2np1qz20";
-       libraryHaskellDepends = [
-         base bytestring network transformers unix
-       ];
-       testHaskellDepends = [ base network unix ];
-       description = "Systemd facilities (Socket activation, Notify)";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "systemd_2_3_0" = callPackage
-    ({ mkDerivation, base, bytestring, network, transformers, unix }:
-     mkDerivation {
-       pname = "systemd";
        version = "2.3.0";
        sha256 = "1fa65j996snrdq83kh3jzzs2dsf2ddsscx596p03ykgknz1q1f16";
        libraryHaskellDepends = [
@@ -239652,7 +245864,6 @@ self: {
        testHaskellDepends = [ base network unix ];
        description = "Systemd facilities (Socket activation, Notify)";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "systemstats" = callPackage
@@ -239766,7 +245977,7 @@ self: {
        libraryHaskellDepends = [
          base containers ghc-prim mtl Takusen template-haskell time
        ];
-       description = "Transito Abierto: convenience library when using Takusen and Oracle.";
+       description = "Transito Abierto: convenience library when using Takusen and Oracle";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -239809,8 +246020,8 @@ self: {
      }:
      mkDerivation {
        pname = "table-layout";
-       version = "0.9.0.0";
-       sha256 = "1dbh2j0520xfab6sn0zmi05xw8kv20pqqwk57b1h1xa01mh68xld";
+       version = "0.9.0.1";
+       sha256 = "09lj27z5jnnzj0piyr9g3g76j4i0wcmvz65zk839ssaqymmnl9cg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -239823,7 +246034,7 @@ self: {
          base data-default-class data-default-instances-base hspec HUnit
          QuickCheck
        ];
-       description = "Layout text as grid or table";
+       description = "Format tabular data as grid or table";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -240017,6 +246228,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
@@ -240420,8 +246633,8 @@ self: {
      }:
      mkDerivation {
        pname = "tagstream-conduit";
-       version = "0.5.5.3";
-       sha256 = "1arlf7qil9bzcqykda8yyrnncm29jsfjvz5kbcdrbbhqpbqfi5mj";
+       version = "0.5.6";
+       sha256 = "0d0yfq5fixggppdf05s0sw46lmfvb7q17005x720ah66zkcl05nc";
        libraryHaskellDepends = [
          attoparsec base blaze-builder bytestring case-insensitive conduit
          conduit-extra data-default resourcet text transformers xml-conduit
@@ -240787,6 +247000,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
@@ -240891,14 +247106,12 @@ self: {
      }:
      mkDerivation {
        pname = "tart";
-       version = "0.1.2";
-       sha256 = "1ik86xbai9513gr9k60m55xf5pj5bdw3wbjc0gd260j9k9j4p73k";
-       revision = "1";
-       editedCabalFile = "04xkrc0xfbx2kk6f8b41zf611s4k848ahczbbs85pd9lqqpkbhzj";
+       version = "0.2";
+       sha256 = "03pi46lr5b9qcc35ffwxwzv9ll51cyv526kjcvaags3ky917rxxn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         array base binary bytestring microlens-platform mtl vty
+         array base binary bytestring microlens-platform mtl text vty
        ];
        executableHaskellDepends = [
          base brick containers directory microlens-platform microlens-th mtl
@@ -240978,8 +247191,8 @@ self: {
      }:
      mkDerivation {
        pname = "taskell";
-       version = "1.9.3.0";
-       sha256 = "06pdfi5bw2ga0pizq01x35gp8f90c8gr4ivbm5k4a7xv6pwr8mf0";
+       version = "1.10.0";
+       sha256 = "14syiis60fds1r295d6nlvw0mn1d1d6ly0j69r9srbcbrbb2j7yw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -240996,8 +247209,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
@@ -241019,17 +247230,19 @@ self: {
      }) {};
 
   "taskwarrior" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, hspec, hspec-discover
-     , process, QuickCheck, quickcheck-instances, random, text, time
-     , unordered-containers, uuid
+    ({ mkDerivation, aeson, base, bytestring, containers, hspec
+     , hspec-discover, process, QuickCheck, quickcheck-instances, random
+     , text, time, unordered-containers, uuid
      }:
      mkDerivation {
        pname = "taskwarrior";
-       version = "0.2.1.0";
-       sha256 = "1ladijvlvr6w35y1qlxbp0y34bby58a9bfyhqiynn0s4m5bj55c6";
+       version = "0.3.0.0";
+       sha256 = "1h24d799q1s6b36hd40bxa4c9m1izkgh6j7p2jv1p6cxngz28ni0";
+       revision = "2";
+       editedCabalFile = "16ikncs4aail9ymd2nx9n67b5d64cwk7m6kcbwvji0iggbikmsiv";
        libraryHaskellDepends = [
-         aeson base bytestring process random text time unordered-containers
-         uuid
+         aeson base bytestring containers process random text time
+         unordered-containers uuid
        ];
        testHaskellDepends = [
          aeson base hspec QuickCheck quickcheck-instances text time
@@ -241038,6 +247251,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Types and aeson instances for taskwarrior tasks";
        license = stdenv.lib.licenses.agpl3Plus;
+       maintainers = with stdenv.lib.maintainers; [ maralorn ];
      }) {};
 
   "tasty" = callPackage
@@ -241057,6 +247271,24 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "tasty_1_3_1" = callPackage
+    ({ mkDerivation, ansi-terminal, async, base, clock, containers, mtl
+     , optparse-applicative, stm, tagged, unbounded-delays, unix
+     , wcwidth
+     }:
+     mkDerivation {
+       pname = "tasty";
+       version = "1.3.1";
+       sha256 = "1p8lq0yd1880knnygv4spgjj3j2mi8bawd018vcxy9rml7sdzm8w";
+       libraryHaskellDepends = [
+         ansi-terminal async base clock containers mtl optparse-applicative
+         stm tagged unbounded-delays unix wcwidth
+       ];
+       description = "Modern and extensible testing framework";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "tasty-ant-xml" = callPackage
     ({ mkDerivation, base, containers, directory, filepath
      , generic-deriving, ghc-prim, mtl, stm, tagged, tasty, transformers
@@ -241096,12 +247328,39 @@ self: {
        broken = true;
      }) {};
 
+  "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-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" = callPackage
     ({ mkDerivation, base, dejafu, random, tagged, tasty }:
      mkDerivation {
        pname = "tasty-dejafu";
-       version = "2.0.0.1";
-       sha256 = "19cgzr1gcy1khvw2a6bfd620zmrc4szkdwyf3rfyacxgbgqy1b1z";
+       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;
@@ -241146,6 +247405,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "tasty-expected-failure_0_12" = callPackage
+    ({ mkDerivation, base, hedgehog, tagged, tasty, tasty-golden
+     , tasty-hedgehog, tasty-hunit, unbounded-delays
+     }:
+     mkDerivation {
+       pname = "tasty-expected-failure";
+       version = "0.12";
+       sha256 = "1yhbgrbsghr3cxy4rxb7wfl9xbasm00xky3hrw4zyyl87r7gs6v6";
+       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
@@ -241186,6 +247462,30 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "tasty-golden_2_3_4" = callPackage
+    ({ mkDerivation, async, base, bytestring, containers, deepseq
+     , directory, filepath, mtl, optparse-applicative, process, tagged
+     , tasty, tasty-hunit, temporary, text, unix-compat
+     }:
+     mkDerivation {
+       pname = "tasty-golden";
+       version = "2.3.4";
+       sha256 = "1nskavqgfxx1cw7q6c0cmizlwj54rnlv93yhgssaa77gv1nbvwpn";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async base bytestring containers deepseq directory filepath mtl
+         optparse-applicative process tagged tasty temporary text
+         unix-compat
+       ];
+       testHaskellDepends = [
+         base directory filepath process tasty tasty-hunit temporary
+       ];
+       description = "Golden tests support for tasty";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "tasty-groundhog-converters" = callPackage
     ({ mkDerivation, aeson, base, bimap, bytestring, containers
      , groundhog, groundhog-converters, groundhog-sqlite, groundhog-th
@@ -241214,8 +247514,8 @@ self: {
        pname = "tasty-hedgehog";
        version = "1.0.0.2";
        sha256 = "1vsv3m6brhshpqm8qixz97m7h0nx67cj6ira4cngbk7mf5rqylv5";
-       revision = "1";
-       editedCabalFile = "0r4mijgy1z9rdi3as2a1a02xykwyqalhg5vahsjzgdgmf7bmmc6h";
+       revision = "4";
+       editedCabalFile = "0z47ssv9030px81sxivhw5jp7yfpr6r6anlf03slks31jkzvx4gl";
        libraryHaskellDepends = [ base hedgehog tagged tasty ];
        testHaskellDepends = [
          base hedgehog tasty tasty-expected-failure
@@ -241256,8 +247556,8 @@ self: {
        pname = "tasty-hspec";
        version = "1.1.5.1";
        sha256 = "0i9kdzjpk750sa078jj3iyhp72k0177zk7vxl131r6dkyz09x27y";
-       revision = "5";
-       editedCabalFile = "1ramy5jn7a6xvxc6s8bvn34m1vzniks05277s3i80cp4qprwx8ri";
+       revision = "6";
+       editedCabalFile = "0xa7h0p5r41m2a3l5r9ggmm4bc2a6wzgb4qvcqfl0dd2yb922bkz";
        libraryHaskellDepends = [
          base hspec hspec-core QuickCheck tasty tasty-quickcheck
          tasty-smallcheck
@@ -241456,8 +247756,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
        ];
@@ -241468,6 +247768,30 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "tasty-mgolden" = callPackage
+    ({ mkDerivation, base, Diff, filepath, hlint, tasty
+     , tasty-expected-failure, tasty-hunit, text, typed-process
+     }:
+     mkDerivation {
+       pname = "tasty-mgolden";
+       version = "0.0.1";
+       sha256 = "0ysx6gvaz1n1agyw721ay3k7n2l43p2l1p1mf4ppvs4wkg8aibmw";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base Diff filepath tasty text ];
+       executableHaskellDepends = [
+         base Diff filepath tasty tasty-expected-failure tasty-hunit text
+       ];
+       testHaskellDepends = [
+         base Diff filepath hlint tasty tasty-expected-failure tasty-hunit
+         text typed-process
+       ];
+       description = "Golden testing provider for tasty with muti-line diff output";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "tasty-program" = callPackage
     ({ mkDerivation, base, deepseq, directory, filepath, process, tasty
      }:
@@ -241511,6 +247835,8 @@ self: {
        testHaskellDepends = [ base QuickCheck tasty ];
        description = "Pre-built tasty trees for checking lawful class properties using QuickCheck";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "tasty-rerun" = callPackage
@@ -241521,8 +247847,8 @@ self: {
        pname = "tasty-rerun";
        version = "1.1.17";
        sha256 = "0hiafrknk700gi8rm675akz8q6abk8iwlmygwnlx1fy3znalkqad";
-       revision = "1";
-       editedCabalFile = "1j08802psflkj3wb5jhh4z5w1i852hw5fm9k5aczbvfx9873zyhc";
+       revision = "2";
+       editedCabalFile = "0jkkydcq8fx3ia92pn9dnbfhx18wz70366y7xlv9yj9zysqcr8yl";
        libraryHaskellDepends = [
          base containers mtl optparse-applicative split stm tagged tasty
          transformers
@@ -241539,8 +247865,8 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-silver";
-       version = "3.1.13";
-       sha256 = "1sd9xgjcvlnw338dn5rcy5la7gw15yvg4xl85ym7aav5fr97apfs";
+       version = "3.1.15";
+       sha256 = "07iiaw5q5jb6bxm5ys1s6bliw0qxsqp100awzxwkwfia03i1iz8z";
        libraryHaskellDepends = [
          ansi-terminal async base bytestring containers deepseq directory
          filepath mtl optparse-applicative process process-extras regex-tdfa
@@ -241683,8 +248009,8 @@ self: {
        pname = "tasty-wai";
        version = "0.1.1.0";
        sha256 = "1ix1ksibdkqrycrcnyi6vablp17kg3ajw5kghff1ia7wd2nb9fbk";
-       revision = "1";
-       editedCabalFile = "1zwfdad5kp3l1lysz9x5hxwp0yphsdbhgbp33yczw8c8sai3l7xb";
+       revision = "2";
+       editedCabalFile = "18p5lk4p1ppq5ascykf7b89sc8c8g013w5j5i4q74iwxmah1va2g";
        libraryHaskellDepends = [
          base bytestring http-types tasty wai wai-extra
        ];
@@ -241967,6 +248293,81 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "tdlib" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring-type, bytestring
+     , containers, monad-loops, polysemy, polysemy-plugin, QuickCheck
+     , quickcheck-text, stm, tdlib, tdlib-types, text
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "tdlib";
+       version = "0.3.0";
+       sha256 = "1aa7f6jb021gx9lidhbrnvaq01jyxhrr7bslq0n5b89wqwng9zfm";
+       revision = "1";
+       editedCabalFile = "1syyxdbq44wiw7lc86qyvrv5swc596b987xf0r7h77xz6dj6q601";
+       libraryHaskellDepends = [
+         aeson base bytestring containers monad-loops polysemy
+         polysemy-plugin stm tdlib-types text unordered-containers
+       ];
+       librarySystemDepends = [ tdlib ];
+       testHaskellDepends = [
+         aeson base base64-bytestring-type bytestring containers monad-loops
+         polysemy polysemy-plugin QuickCheck quickcheck-text stm tdlib-types
+         text unordered-containers
+       ];
+       testSystemDepends = [ tdlib ];
+       description = "complete binding to the Telegram Database Library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {inherit (pkgs) tdlib;};
+
+  "tdlib-gen" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring-type, containers
+     , generic-lens, language-tl, lens, megaparsec, pretty-simple
+     , prettyprinter, template-haskell, text
+     }:
+     mkDerivation {
+       pname = "tdlib-gen";
+       version = "0.4.0";
+       sha256 = "08p2zy8q114aklz5rcrddmwc1xd9hg1fwgb83j5cmck8p3w53h16";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base base64-bytestring-type containers generic-lens
+         language-tl lens megaparsec prettyprinter template-haskell text
+       ];
+       executableHaskellDepends = [
+         aeson base base64-bytestring-type containers generic-lens
+         language-tl lens megaparsec prettyprinter template-haskell text
+       ];
+       testHaskellDepends = [
+         aeson base base64-bytestring-type containers generic-lens
+         language-tl lens megaparsec pretty-simple prettyprinter
+         template-haskell text
+       ];
+       description = "Codegen for TDLib";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "tdlib-types" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring-type, bytestring
+     , language-tl, polysemy, polysemy-plugin, tdlib-gen, text
+     }:
+     mkDerivation {
+       pname = "tdlib-types";
+       version = "0.4.0";
+       sha256 = "0vb4pvmd40gwzx9a48c0ydj9q555r1mjlfsar9f0bq2kkzdx7d78";
+       libraryHaskellDepends = [
+         aeson base base64-bytestring-type bytestring language-tl polysemy
+         polysemy-plugin tdlib-gen text
+       ];
+       testHaskellDepends = [
+         aeson base base64-bytestring-type bytestring language-tl polysemy
+         polysemy-plugin tdlib-gen text
+       ];
+       description = "Types and Functions generated from tdlib api spec";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "tdoc" = callPackage
     ({ mkDerivation, base, bytestring, template-haskell, transformers
      , xhtml
@@ -242052,6 +248453,21 @@ self: {
        broken = true;
      }) {};
 
+  "tehepero" = callPackage
+    ({ mkDerivation, base, exceptions, fallible, prettyprinter
+     , prettyprinter-ansi-terminal
+     }:
+     mkDerivation {
+       pname = "tehepero";
+       version = "0";
+       sha256 = "0cmafcvjvxjpvk35057xb994xg5n5d797v98sshp4y6am5ac91ns";
+       libraryHaskellDepends = [
+         base exceptions fallible prettyprinter prettyprinter-ansi-terminal
+       ];
+       description = "Prettier error";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "telegram" = callPackage
     ({ mkDerivation, aeson, base, bytestring, data-default
      , http-conduit, url, utf8-string
@@ -242122,22 +248538,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
@@ -242184,8 +248601,8 @@ self: {
      }:
      mkDerivation {
        pname = "telegram-types";
-       version = "0.4.0";
-       sha256 = "1giv1d713rfdc8svcba2ws8mv6g957f7v1dm3qr9p8082nry2llm";
+       version = "0.4.1";
+       sha256 = "0zw5in801d7sxavjs28ra026xganca0b21qv4pwhk967vzsf12yy";
        libraryHaskellDepends = [
          aeson base bytestring deriving-aeson filepath generic-lens lens
          mime-types open-union servant servant-multipart text time
@@ -242835,6 +249252,8 @@ self: {
        ];
        description = "Code generation for TensorFlow operations";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "tensorflow-ops" = callPackage
@@ -242968,13 +249387,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;
@@ -243161,14 +249579,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.0";
-       sha256 = "15zh50v5hszvr4xz6hwmwaga2g1avrfhnjzzx9dmghjyggwkhfa2";
+       version = "4.0.0.1";
+       sha256 = "0axsmlly8qa5rpakkp1iryypgzswpqjphcl0mgvwa34dsh2hqmyn";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -243178,8 +249595,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 ];
@@ -243189,7 +249605,8 @@ self: {
        ];
        description = "Terminal emulator configurable in Haskell";
        license = stdenv.lib.licenses.bsd3;
-       maintainers = with stdenv.lib.maintainers; [ cdepillabout ];
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) gtk3; inherit (pkgs) pcre2; 
          vte_291 = pkgs.vte;};
 
@@ -243604,8 +250021,8 @@ self: {
      }:
      mkDerivation {
        pname = "test-lib";
-       version = "0.2.1";
-       sha256 = "1ahydivab6n4lm9fic6idvciihvy9siw89hdj2dgjjqmg9nmpv2r";
+       version = "0.2.2";
+       sha256 = "0bxrh7j10fadarg1kyrf8f0nmrmdfrgivxvv51xl9ykksrswhx2z";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -243813,6 +250230,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
@@ -244085,12 +250526,12 @@ self: {
      }) {};
 
   "text-ansi" = callPackage
-    ({ mkDerivation, base, text, text-builder }:
+    ({ mkDerivation, base, text }:
      mkDerivation {
        pname = "text-ansi";
-       version = "0.1.0";
-       sha256 = "08klbx8jwam3ngxh8kv6z83yh5sbsyb0glycsb1w4zdr8ijsyd3z";
-       libraryHaskellDepends = [ base text text-builder ];
+       version = "0.1.0.1";
+       sha256 = "1qy5qqwm41xcxc5bs0aicdm40vnz1rm8mgmxzfxvjnwc9p28pyb3";
+       libraryHaskellDepends = [ base text ];
        description = "Text styling for ANSI terminals";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -244730,8 +251171,8 @@ self: {
        pname = "text-show-instances";
        version = "3.8.3";
        sha256 = "11v335p3wzf9ijqlkls5mk4m16dfak8fckn4gj7mahs8c7l9lm5d";
-       revision = "5";
-       editedCabalFile = "1czi0gl7kxc64kk8v36xw2ln0vjj2pls3x9nmh754nvdg0616jfj";
+       revision = "6";
+       editedCabalFile = "1masflbb26zg8l0xiz2pzy6i9sh9pc3hqfd6y3vcvyxg0wg96cxf";
        libraryHaskellDepends = [
          base base-compat-batteries bifunctors binary containers directory
          ghc-boot-th haskeline hpc old-locale old-time pretty random
@@ -244774,8 +251215,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
@@ -244852,8 +251293,8 @@ self: {
     ({ mkDerivation, base, HTF, text }:
      mkDerivation {
        pname = "text-utils";
-       version = "0.1.0.0";
-       sha256 = "0qi64qznipg43x39ah3cnv6l8axj7az2fplcm6jr6xch52yf1dk3";
+       version = "0.1.1.0";
+       sha256 = "0ljf2r6mqlay9sj87wdnr25rrrbc80phl71i8wzpfn13zyn52w8m";
        libraryHaskellDepends = [ base text ];
        testHaskellDepends = [ base HTF text ];
        description = "Various text utilities";
@@ -245281,8 +251722,8 @@ self: {
     ({ mkDerivation, base, markdown-unlit, template-haskell }:
      mkDerivation {
        pname = "th-env";
-       version = "0.1.0.1";
-       sha256 = "0h3x6lwdqp889dnqcnycawf6wqvklh55mgfck37y6mng8ck3rqav";
+       version = "0.1.0.2";
+       sha256 = "13rs6p5mq92am9i80c829dcmsrpbihdq8ds6ad7rdl2d23i9pln0";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base markdown-unlit ];
        testToolDepends = [ markdown-unlit ];
@@ -245455,8 +251896,8 @@ self: {
      }:
      mkDerivation {
        pname = "th-lift-instances";
-       version = "0.1.16";
-       sha256 = "08ivlz37ir2xyl8ch5x4n2gb34rgk5ryaybfr2xbfc4ah4zfjfav";
+       version = "0.1.17";
+       sha256 = "0k59j460dcr9vidmww2has78g3zx2wl0cjlpqc1laqai9w8klda5";
        libraryHaskellDepends = [
          base bytestring containers template-haskell text th-lift
          transformers vector
@@ -245472,8 +251913,8 @@ self: {
     ({ mkDerivation, base, markdown-unlit, template-haskell, time }:
      mkDerivation {
        pname = "th-nowq";
-       version = "0.1.0.4";
-       sha256 = "0s0xsw4zq4sqg37cqs27hcfb9948zkfhh4yma655ankr7q3g6nhv";
+       version = "0.1.0.5";
+       sha256 = "090i4fmdvjjpr8zxiqh7qvdndls18312yi6z4lya2qyjgr0jgwci";
        libraryHaskellDepends = [ base template-haskell time ];
        testHaskellDepends = [ base markdown-unlit ];
        testToolDepends = [ markdown-unlit ];
@@ -245607,8 +252048,8 @@ self: {
      }:
      mkDerivation {
        pname = "th-test-utils";
-       version = "1.0.1";
-       sha256 = "1qbxj4zarw1nm0c2shrr4wrrkmqlxx2qdh9q3q9arkic4lwgsxcx";
+       version = "1.0.2";
+       sha256 = "1c0450d9q8ndk8zyj7x9ybl892jijrzn3pcxqm5igki9n8x3w37k";
        libraryHaskellDepends = [ base template-haskell transformers ];
        testHaskellDepends = [
          base tasty tasty-hunit template-haskell transformers
@@ -245718,15 +252159,15 @@ self: {
      }) {};
 
   "theatre" = callPackage
-    ({ mkDerivation, base, base-prelude, contravariant, semigroups
-     , slave-thread, unagi-chan
+    ({ mkDerivation, base, contravariant, semigroups, slave-thread
+     , unagi-chan
      }:
      mkDerivation {
        pname = "theatre";
-       version = "1";
-       sha256 = "1jwa4851rvac084gb70bqfwarwv6rjhqcs7b48md5kaad3zvgbd2";
+       version = "1.0.0.1";
+       sha256 = "0vcli8i0vrxv8fzjdyp684fvp7640xmwc3yawz12mfvxcpgrs2xq";
        libraryHaskellDepends = [
-         base base-prelude contravariant semigroups slave-thread unagi-chan
+         base contravariant semigroups slave-thread unagi-chan
        ];
        description = "Minimalistic actor library";
        license = stdenv.lib.licenses.mit;
@@ -245735,25 +252176,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;
@@ -245835,60 +252277,24 @@ self: {
        broken = true;
      }) {};
 
-  "these_0_7_6" = callPackage
-    ({ mkDerivation, aeson, base, base-compat, bifunctors, binary
-     , containers, data-default-class, deepseq, hashable, keys, lens
-     , mtl, QuickCheck, quickcheck-instances, semigroupoids, tasty
-     , tasty-quickcheck, transformers, transformers-compat
-     , unordered-containers, vector, vector-instances
-     }:
-     mkDerivation {
-       pname = "these";
-       version = "0.7.6";
-       sha256 = "0in77b1g73m224dmpfc9khgcs0ajgsknp0yri853c9p6k0yvhr4l";
-       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
-       ];
-       description = "An either-or-both data type & a generalized 'zip with padding' typeclass";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
   "these" = callPackage
-    ({ mkDerivation, aeson, assoc, base, base-compat, binary, deepseq
-     , hashable, QuickCheck, semigroupoids, unordered-containers
-     }:
+    ({ mkDerivation, assoc, base, binary, deepseq, hashable }:
      mkDerivation {
        pname = "these";
-       version = "1.0.1";
-       sha256 = "1k0pi65g7cm9hzdw6my6bzz2zvddkmj1qs45ymqmi316bpiixk3r";
-       revision = "3";
-       editedCabalFile = "1z6aqz41m1cdm5q5y4jj4fl9j1qcvi32d08r2a103x5ndhf8151q";
-       libraryHaskellDepends = [
-         aeson assoc base base-compat binary deepseq hashable QuickCheck
-         semigroupoids unordered-containers
-       ];
+       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 = "2";
-       editedCabalFile = "0krnf1arsr05ygqcpfd7p34k7319fwjbg59fqhilrjl6jzzpyaka";
-       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;
      }) {};
@@ -245899,8 +252305,8 @@ self: {
        pname = "these-optics";
        version = "1";
        sha256 = "0gmsykzcjx5h6dbfny4dw3jrm33ykcw6rpngf5awwdpg3a4cfgi7";
-       revision = "3";
-       editedCabalFile = "0nmn7gkq9gx1zfs6sbib3m7zrrjhndfhx2m6sw68nkmc1baipg33";
+       revision = "4";
+       editedCabalFile = "1wdh7l300ckmx72ky0qjgmfv075rnzj78zv5hlgna0f9df7ib3yw";
        libraryHaskellDepends = [ base optics-core these ];
        description = "Optics for These";
        license = stdenv.lib.licenses.bsd3;
@@ -245998,14 +252404,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;
      }) {};
 
@@ -246024,20 +252431,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
@@ -246215,8 +252643,8 @@ self: {
      }:
      mkDerivation {
        pname = "threepenny-gui";
-       version = "0.8.3.1";
-       sha256 = "08jmnyaskbfzwzyghs9ccmq6rdfxcgw0si7p6kc5ppi86gxdr5sl";
+       version = "0.9.0.0";
+       sha256 = "0mvx661xk3nzvvxcda4vdk2ka7mff8jbpib1x59n230w80bc5sja";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -246356,8 +252784,8 @@ self: {
        pname = "through-text";
        version = "0.1.0.0";
        sha256 = "1kdl36n98kajaa7v7js2sy8bi09p8rrxmlfcclcfc1l92bd2aclk";
-       revision = "4";
-       editedCabalFile = "1clc4g6rg5970654fd596ygly79axkhyzn773by1wi4grvhw96fi";
+       revision = "5";
+       editedCabalFile = "1fdy2wyczl2jncy9gg0asasb8bybcnif8aqnw9fq73sr1778kjpf";
        libraryHaskellDepends = [ base bytestring case-insensitive text ];
        description = "Convert textual types through Text without needing O(n^2) instances";
        license = stdenv.lib.licenses.bsd3;
@@ -246592,18 +253020,17 @@ self: {
 
   "tidal" = callPackage
     ({ mkDerivation, base, bifunctors, bytestring, clock, colour
-     , containers, criterion, deepseq, hosc, microspec, mwc-random
-     , network, parsec, primitive, random, text, transformers, vector
-     , weigh
+     , containers, criterion, deepseq, hosc, microspec, network, parsec
+     , primitive, random, text, transformers, vector, weigh
      }:
      mkDerivation {
        pname = "tidal";
-       version = "1.4.9";
-       sha256 = "0np32jnvqmnnqy166a17i367c5j5xc9mniqzr0x76wk7mb5zlwzj";
+       version = "1.5.2";
+       sha256 = "03y1hfwc5frbqhcwvvfr6ykas0sy6pw982sgdgkvd3l0wbmnhdrz";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bifunctors bytestring clock colour containers deepseq hosc
-         mwc-random network parsec primitive random text transformers vector
+         network parsec primitive random text transformers vector
        ];
        testHaskellDepends = [ base containers microspec parsec ];
        benchmarkHaskellDepends = [ base criterion weigh ];
@@ -246611,6 +253038,27 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "tidal_1_6_1" = callPackage
+    ({ mkDerivation, base, bifunctors, bytestring, clock, colour
+     , containers, criterion, deepseq, hosc, microspec, network, parsec
+     , primitive, random, text, transformers, vector, weigh
+     }:
+     mkDerivation {
+       pname = "tidal";
+       version = "1.6.1";
+       sha256 = "13n9s0s04bddl16xq86anz7a9fqcm7j3xfqn5y1mni5j1h7hn2k2";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bifunctors bytestring clock colour containers deepseq hosc
+         network parsec primitive random text transformers vector
+       ];
+       testHaskellDepends = [ base containers deepseq microspec parsec ];
+       benchmarkHaskellDepends = [ base criterion weigh ];
+       description = "Pattern language for improvised music";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "tidal-midi" = callPackage
     ({ mkDerivation, base, containers, PortMidi, tidal, time
      , transformers
@@ -247403,8 +253851,8 @@ self: {
      }:
      mkDerivation {
        pname = "timeplot";
-       version = "1.0.32";
-       sha256 = "0ijwday27b3irq6cclab4jlxmxxsjdl5d3gm9igay7fqyif0lmiv";
+       version = "1.0.33";
+       sha256 = "0jqmgxhvishmh5rh91501pmpbzhj1p7pp87z1wpls9ksscjs925f";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -247432,13 +253880,13 @@ self: {
      }) {};
 
   "timer-wheel" = callPackage
-    ({ mkDerivation, atomic-primops, base, psqueues, random, vector }:
+    ({ mkDerivation, atomic-primops, base, psqueues, vector }:
      mkDerivation {
        pname = "timer-wheel";
-       version = "0.2.0.1";
-       sha256 = "1m3bv095kbm4ksva3plhggkq2c0jf441wm994l57jfmlcng2i4xy";
+       version = "0.3.0";
+       sha256 = "16v663mcsj0h17x4jriq50dps3m3f8wqcsm19kl48vrs7f4mp07s";
        libraryHaskellDepends = [ atomic-primops base psqueues vector ];
-       testHaskellDepends = [ base random ];
+       testHaskellDepends = [ base ];
        description = "A timer wheel";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -247469,8 +253917,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
        ];
@@ -247526,8 +253974,8 @@ self: {
     ({ mkDerivation, base, time }:
      mkDerivation {
        pname = "timespan";
-       version = "0.3.0.0";
-       sha256 = "07w529iq0xql1adz7m54p8gljmc2jf61by2b1786avbp1lg1x9a6";
+       version = "0.4.0.0";
+       sha256 = "1gzrdwysyk3lj5pr53w63c8mk0i22rip4v2jp4h38f85lanzwb2b";
        libraryHaskellDepends = [ base time ];
        description = "Useful timespan datatype and functions";
        license = stdenv.lib.licenses.mit;
@@ -247603,21 +254051,6 @@ self: {
      }:
      mkDerivation {
        pname = "timezone-olson";
-       version = "0.1.9";
-       sha256 = "05abywx1nrcaz0nqzfy4zw62bc5qd7pdfnjvv4drxkwv084ha8rj";
-       libraryHaskellDepends = [
-         base binary bytestring extensible-exceptions time timezone-series
-       ];
-       description = "A pure Haskell parser and renderer for binary Olson timezone files";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "timezone-olson_0_2_0" = callPackage
-    ({ mkDerivation, base, binary, bytestring, extensible-exceptions
-     , time, timezone-series
-     }:
-     mkDerivation {
-       pname = "timezone-olson";
        version = "0.2.0";
        sha256 = "0b9vh27b9nz803yhd93d5z63bs370lvn4vkdajxaak9clxlw6mwg";
        libraryHaskellDepends = [
@@ -247625,7 +254058,6 @@ self: {
        ];
        description = "A pure Haskell parser and renderer for binary Olson timezone files";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "timezone-olson-th" = callPackage
@@ -247641,6 +254073,8 @@ self: {
        ];
        description = "Load TimeZoneSeries from an Olson file at compile time";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "timezone-series" = callPackage
@@ -247687,6 +254121,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
@@ -248014,7 +254464,7 @@ self: {
        sha256 = "1snw5cdkyqyninqqqwa6qfndfmwfr4lkdg0v94267g7xbwcqjj8h";
        libraryHaskellDepends = [ base containers network-uri text ];
        testHaskellDepends = [ base HUnit network-uri text ];
-       description = "This project separates subdomains, domains, and top-level-domains from URLs.";
+       description = "This project separates subdomains, domains, and top-level-domains from URLs";
        license = stdenv.lib.licenses.mit;
      }) {};
 
@@ -248043,6 +254493,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
@@ -248126,32 +254599,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.3.4";
+       sha256 = "10nn1043z5gzm0zrw5z0fxalwrh48wvxlwq65nanjajwb612w1p4";
        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;
      }) {};
@@ -248684,33 +255150,31 @@ self: {
 
   "tomland" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, directory
-     , hashable, hedgehog, hspec-megaparsec, markdown-unlit, megaparsec
-     , mtl, parser-combinators, tasty, tasty-discover, tasty-hedgehog
-     , tasty-hspec, tasty-silver, text, time, transformers
-     , unordered-containers
+     , hashable, hedgehog, hspec, hspec-golden, hspec-hedgehog
+     , hspec-megaparsec, markdown-unlit, megaparsec, mtl
+     , parser-combinators, text, time, transformers
+     , unordered-containers, validation-selective
      }:
      mkDerivation {
        pname = "tomland";
-       version = "1.2.1.0";
-       sha256 = "0bzwmk3zw2lzhppgr73b5v3i4qz0hxn1zag665vpakq6knssj7qy";
-       revision = "1";
-       editedCabalFile = "00lb4ivrqrj5yqnfz5ji3vjaa284img9xhkjvrzc291bs83vl4kr";
+       version = "1.3.0.0";
+       sha256 = "15bzq3frgpqxvvs9r6x8fc66w6rixh81d19ps1x0hr46gcj7b1i4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring containers deepseq hashable megaparsec mtl
          parser-combinators text time transformers unordered-containers
+         validation-selective
        ];
        executableHaskellDepends = [
-         base containers hashable text time unordered-containers
+         base bytestring containers hashable text time unordered-containers
        ];
        executableToolDepends = [ markdown-unlit ];
        testHaskellDepends = [
-         base bytestring containers directory hashable hedgehog
-         hspec-megaparsec megaparsec tasty tasty-hedgehog tasty-hspec
-         tasty-silver text time unordered-containers
+         base bytestring containers directory hashable hedgehog hspec
+         hspec-golden hspec-hedgehog hspec-megaparsec megaparsec text time
+         unordered-containers
        ];
-       testToolDepends = [ tasty-discover ];
        description = "Bidirectional TOML serialization";
        license = stdenv.lib.licenses.mpl20;
      }) {};
@@ -248777,8 +255241,8 @@ self: {
      }:
      mkDerivation {
        pname = "tonatona-google-server-api";
-       version = "0.1.2.0";
-       sha256 = "1pmpmmyqs41anm0b2cmf0fj75lz31w5s1bidjqjyqymznpna0i0j";
+       version = "0.1.3.0";
+       sha256 = "1kw2i4il75kzgxim53phdb07gd1axadh262k3g4639kakij7giif";
        libraryHaskellDepends = [
          base google-server-api monad-logger persistent persistent-sqlite
          resource-pool servant-client tonalude tonaparser tonatona
@@ -248887,8 +255351,8 @@ self: {
      }:
      mkDerivation {
        pname = "too-many-cells";
-       version = "0.2.2.1";
-       sha256 = "17g9pr25jhki9r3jfvgbx8avpjikcglb9hg45rfkvk9y50wxrk15";
+       version = "0.2.2.2";
+       sha256 = "091hqg4wxki8v7xkrzmnh1hpm81pif936pbmrzvr5p84sbbyyj91";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -248960,8 +255424,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
@@ -249086,8 +255550,8 @@ self: {
     ({ mkDerivation, base, void }:
      mkDerivation {
        pname = "total";
-       version = "1.0.5";
-       sha256 = "0kv9jb2d8mh4p9b91jg5367ar4p837xclzlwgjrjgvxl62z7h84j";
+       version = "1.0.6";
+       sha256 = "0zr3b83pwjbarxsl9kva6va3cp9b4npfp77yp0nh9q1za00344vk";
        libraryHaskellDepends = [ base void ];
        description = "Exhaustive pattern matching using lenses, traversals, and prisms";
        license = stdenv.lib.licenses.bsd3;
@@ -249521,6 +255985,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 {
@@ -249607,6 +256094,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
@@ -249825,8 +256346,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
@@ -250028,20 +256549,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;
@@ -250050,34 +256571,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;
@@ -250435,8 +256959,8 @@ self: {
        pname = "tree-diff";
        version = "0.1";
        sha256 = "1156nbqn0pn9lp4zjsy4vv5g5wmy4zxwmbqdgvq349rydynh3ng3";
-       revision = "2";
-       editedCabalFile = "081fcdkps3sc1pcfbcxs5f1ifnpx8hsk9ms2gafd793lia6whfsk";
+       revision = "4";
+       editedCabalFile = "0zl94ppd94szvmqa7vnpbcr2zfppbqm4k6isidzks2mz2ji9dc1i";
        libraryHaskellDepends = [
          aeson ansi-terminal ansi-wl-pprint base base-compat bytestring
          bytestring-builder containers hashable parsec parsers pretty
@@ -250489,17 +257013,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";
@@ -250510,8 +257033,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";
@@ -250522,8 +257045,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 ];
@@ -250535,8 +257058,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";
@@ -250547,8 +257070,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";
@@ -250559,8 +257082,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-php";
-       version = "0.4.0.0";
-       sha256 = "14qylmzcpn3zn35lbyimyy1sk5v34lqpdn2yn2ly3kg1cphkh50g";
+       version = "0.5.0.1";
+       sha256 = "05nfsw1mk27xiqr9ca8bky437xqin4zqb1mammcjpyi9qif9zzbh";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for PHP";
@@ -250571,8 +257094,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";
@@ -250583,8 +257106,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";
@@ -250595,20 +257118,32 @@ 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";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "tree-sitter-rust" = callPackage
+    ({ mkDerivation, base, tree-sitter }:
+     mkDerivation {
+       pname = "tree-sitter-rust";
+       version = "0.1.0.1";
+       sha256 = "0h8dbr4pn1qnqlg0fs1f6jxasjpfjs4j6x4h86dhz6sw3fih9g00";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [ base tree-sitter ];
+       description = "Tree-sitter grammar/parser for Rust";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "tree-sitter-tsx" = callPackage
     ({ 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";
@@ -250619,8 +257154,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";
@@ -250763,6 +257298,88 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "trek" = callPackage
+    ({ mkDerivation, base, logict, mtl }:
+     mkDerivation {
+       pname = "trek";
+       version = "0.0.1.0";
+       sha256 = "02rvyq11591d83rxhmb3c9bi7ahsh7lpwf2a7am2fd3625l5rq55";
+       libraryHaskellDepends = [ base logict mtl ];
+       testHaskellDepends = [ base logict mtl ];
+       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 {
+       pname = "trek-lens";
+       version = "0.0.1.0";
+       sha256 = "038qn30g82c2wzalhbgb6cglclld8kfmi6m1q76mr9yl9s2h6mf1";
+       libraryHaskellDepends = [ base lens logict mtl trek ];
+       testHaskellDepends = [ base lens logict mtl trek ];
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "tremulous-query" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, containers, deepseq
      , mtl, network
@@ -250792,6 +257409,44 @@ self: {
        broken = true;
      }) {};
 
+  "trial" = callPackage
+    ({ mkDerivation, base, colourista, dlist, doctest, hedgehog, hspec
+     , hspec-hedgehog, splitmix
+     }:
+     mkDerivation {
+       pname = "trial";
+       version = "0.0.0.0";
+       sha256 = "0lnq80983bg2cjim3fy8rwisn55f6acqwp67w7791kzfdwshxkww";
+       libraryHaskellDepends = [ base colourista dlist ];
+       testHaskellDepends = [
+         base dlist doctest hedgehog hspec hspec-hedgehog splitmix
+       ];
+       description = "Trial Data Structure";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
+  "trial-optparse-applicative" = callPackage
+    ({ mkDerivation, base, optparse-applicative, trial }:
+     mkDerivation {
+       pname = "trial-optparse-applicative";
+       version = "0.0.0.0";
+       sha256 = "1h8pfznf1dp9z3r2kl2ljgmxxkfp3va9yqba00fyvw85lna2aggn";
+       libraryHaskellDepends = [ base optparse-applicative trial ];
+       description = "Trial helper functions for optparse-applicative";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
+  "trial-tomland" = callPackage
+    ({ mkDerivation, base, text, tomland, trial }:
+     mkDerivation {
+       pname = "trial-tomland";
+       version = "0.0.0.0";
+       sha256 = "12klfq5ajn4bjrws633pfdc2zhpkwvwmrm7269xfh252fjwk1x23";
+       libraryHaskellDepends = [ base text tomland trial ];
+       description = "Trial helper functions for tomland";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
   "triangulation" = callPackage
     ({ mkDerivation, array, base, collada-types, haskell98, tuple
      , vector, vector-algorithms
@@ -250871,6 +257526,8 @@ self: {
        pname = "trifecta";
        version = "2.1";
        sha256 = "0fr326lzf38m20h2g4189nsyml9w3128924zbd3cd93cgfqcc9bs";
+       revision = "2";
+       editedCabalFile = "17b0wxwgf52xdm597x0ybq1g2yrvfihl32jpd989xsm6n7s7y21a";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          ansi-terminal array base blaze-builder blaze-html blaze-markup
@@ -251044,8 +257701,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";
@@ -251372,8 +258029,8 @@ self: {
      }:
      mkDerivation {
        pname = "ttc";
-       version = "0.2.0.0";
-       sha256 = "1vl3fp0d9v674gg6zbmafvrb97zqxcjlpp5j77msjn1kl7ki6xs7";
+       version = "0.2.2.0";
+       sha256 = "0ixkfjmjar4sv6a7n0fjrrpbmkb9143lzbmkrxxklf2r71qy9mcf";
        libraryHaskellDepends = [ base bytestring template-haskell text ];
        testHaskellDepends = [
          base bytestring tasty tasty-hunit template-haskell text
@@ -251420,6 +258077,7 @@ self: {
        ];
        description = "Things Tracker Network JSON Types";
        license = stdenv.lib.licenses.bsd3;
+       maintainers = with stdenv.lib.maintainers; [ sorki ];
      }) {};
 
   "ttn-client" = callPackage
@@ -251813,53 +258471,45 @@ 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.18";
-       sha256 = "0xdkn6vhmir7sxazi5sxrgvwsi8zqyqbcyvjnqvckz0ac5d8zj68";
+       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
-       ];
-       testHaskellDepends = [
-         base doctest fail system-filepath temporary
+         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;
      }) {};
 
-  "turtle_1_5_19" = callPackage
+  "turtle_1_5_21" = 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";
+       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 semigroups stm streaming-commons
-         system-fileio system-filepath temporary text time transformers unix
-         unix-compat
-       ];
-       testHaskellDepends = [
-         base doctest fail system-filepath temporary
+         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;
@@ -251924,6 +258574,8 @@ self: {
        ];
        description = "An equational theorem prover";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "twee-lib" = callPackage
@@ -252049,7 +258701,7 @@ self: {
        libraryHaskellDepends = [
          base twentefp-eventloop-graphics twentefp-number
        ];
-       description = "RoseTree type and show functions for lab assignment of University of Twente.";
+       description = "RoseTree type and show functions for lab assignment of University of Twente";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -252314,6 +258966,8 @@ self: {
        ];
        description = "Haskell twirp foundations";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "twisty" = callPackage
@@ -252790,6 +259444,8 @@ self: {
        pname = "type-errors";
        version = "0.2.0.0";
        sha256 = "1d1fi4ij18q39rpibc056mgvly75zqixkba4l8bn307c62f50k8p";
+       revision = "1";
+       editedCabalFile = "157fjnr98fn5943siqwk1rd2wwnzd7nlbkbkzvdqv7d723cmh126";
        libraryHaskellDepends = [
          base first-class-families syb template-haskell th-abstraction
        ];
@@ -252807,6 +259463,8 @@ self: {
        pname = "type-errors-pretty";
        version = "0.0.1.1";
        sha256 = "1z6rqah3qnvnlckcw3xhsp4yyfd21harw6kzqbz20y6k7a22jlf0";
+       revision = "1";
+       editedCabalFile = "1qfm0018ids9s7kdwf6d3r1cwnb5aqn55in4vdwklas3ydi8mmrx";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base doctest Glob ];
        description = "Combinators for writing pretty type errors easily";
@@ -253086,6 +259744,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "type-natural_0_9_0_0" = callPackage
+    ({ mkDerivation, base, constraints, equational-reasoning
+     , ghc-typelits-natnormalise, ghc-typelits-presburger, singletons
+     , singletons-presburger, template-haskell
+     }:
+     mkDerivation {
+       pname = "type-natural";
+       version = "0.9.0.0";
+       sha256 = "1jg8qqha60mxj7mrbi69jbcniayksyggi2s7fxy88ap4ay1hky3a";
+       libraryHaskellDepends = [
+         base constraints equational-reasoning ghc-typelits-natnormalise
+         ghc-typelits-presburger singletons singletons-presburger
+         template-haskell
+       ];
+       description = "Type-level natural and proofs of their properties";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "type-of-html" = callPackage
     ({ mkDerivation, base, blaze-html, bytestring, containers
      , criterion, deepseq, double-conversion, ghc, ghc-paths, ghc-prim
@@ -253398,16 +260075,19 @@ self: {
 
   "typed-encoding" = callPackage
     ({ mkDerivation, base, base64-bytestring, bytestring, doctest
-     , doctest-discover, QuickCheck, quickcheck-instances, text
+     , doctest-discover, hspec, QuickCheck, quickcheck-instances
+     , symbols, text
      }:
      mkDerivation {
        pname = "typed-encoding";
-       version = "0.2.0.0";
-       sha256 = "1h1bnvw9j72mw2r4qjxsq4hvq1p8jkax4fhnhglcyskngmaa7ri5";
-       libraryHaskellDepends = [ base base64-bytestring bytestring text ];
+       version = "0.5.0.0";
+       sha256 = "05hzcyp1lsf3dakdv3kqdl0hw6pz5mzh644d3k8lasrhrmx8l583";
+       libraryHaskellDepends = [
+         base base64-bytestring bytestring symbols text
+       ];
        testHaskellDepends = [
-         base base64-bytestring bytestring doctest doctest-discover
-         QuickCheck quickcheck-instances text
+         base base64-bytestring bytestring doctest doctest-discover hspec
+         QuickCheck quickcheck-instances symbols text
        ];
        description = "Type safe string transformations";
        license = stdenv.lib.licenses.bsd3;
@@ -253415,6 +260095,27 @@ self: {
        broken = true;
      }) {};
 
+  "typed-encoding-encoding" = callPackage
+    ({ mkDerivation, base, bytestring, doctest, doctest-discover
+     , encoding, hspec, QuickCheck, quickcheck-instances, typed-encoding
+     }:
+     mkDerivation {
+       pname = "typed-encoding-encoding";
+       version = "0.1.0.0";
+       sha256 = "10wxbmwg40d2053g4b07bd1b29kkz9ihkvaph19mknxr8ziwhfay";
+       libraryHaskellDepends = [
+         base bytestring encoding typed-encoding
+       ];
+       testHaskellDepends = [
+         base bytestring doctest doctest-discover encoding hspec QuickCheck
+         quickcheck-instances typed-encoding
+       ];
+       description = "Bridge between encoding and typed-encoding packages";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "typed-process" = callPackage
     ({ mkDerivation, async, base, base64-bytestring, bytestring, hspec
      , process, stm, temporary, transformers, unliftio-core
@@ -253492,6 +260193,24 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "typed-uuid_0_1_0_0" = callPackage
+    ({ mkDerivation, aeson, base, binary, bytestring, deepseq, hashable
+     , http-api-data, random, text, uuid, validity, validity-uuid
+     , yamlparse-applicative
+     }:
+     mkDerivation {
+       pname = "typed-uuid";
+       version = "0.1.0.0";
+       sha256 = "1smwrjn63wsvy7lickdapgfqbvndypvy1qlnfrn5iymi2mg1kyxi";
+       libraryHaskellDepends = [
+         aeson base binary bytestring deepseq hashable http-api-data random
+         text uuid validity validity-uuid yamlparse-applicative
+       ];
+       description = "Phantom-Typed version of UUID";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "typed-wire" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, directory
      , filepath, gitrev, HTF, http-types, mtl, optparse-applicative
@@ -253879,8 +260598,8 @@ self: {
      }:
      mkDerivation {
        pname = "tz";
-       version = "0.1.3.3";
-       sha256 = "1cnin3dlk6xmvk5cz1sjj88djdv1rq87hvwmhc2dj22hgbs3p3ni";
+       version = "0.1.3.4";
+       sha256 = "11sg11alwlibnl62bd9s3gvhha8c523625cn6y4x10avv6jv320y";
        libraryHaskellDepends = [
          base binary bytestring containers data-default deepseq
          template-haskell time tzdata vector
@@ -254090,14 +260809,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;
      }) {};
@@ -254292,6 +261011,8 @@ self: {
        pname = "uhttpc";
        version = "0.1.1.1";
        sha256 = "01plkj4n34s1xbdaky61xzqnc7z2zfx6dzqdlv21np8rk6lirr7d";
+       revision = "1";
+       editedCabalFile = "1kqb3dzxqhnhcwrdg8bsxkg9vya9zmflihmxxp8whmzb4k8vy9ph";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -254421,8 +261142,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;
@@ -254457,26 +261178,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
@@ -254484,6 +261197,8 @@ self: {
        doHaddock = false;
        description = "Opinionated Haskell Interoperability";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "unbound" = callPackage
@@ -254515,8 +261230,8 @@ self: {
      }:
      mkDerivation {
        pname = "unbound-generics";
-       version = "0.4.0";
-       sha256 = "04amv54wrabzdmlig1mxi51ikq1lmfcm504184y0nm0xjahfssmx";
+       version = "0.4.1";
+       sha256 = "02wwn78fccb37lx95jvr0v2n55kv35nilllb0gj75y8bplya5blb";
        libraryHaskellDepends = [
          ansi-wl-pprint base containers contravariant deepseq exceptions mtl
          profunctors template-haskell transformers transformers-compat
@@ -254714,8 +261429,8 @@ self: {
      }:
      mkDerivation {
        pname = "unexceptionalio";
-       version = "0.5.0";
-       sha256 = "04jrmv075cas6qs58m3j0q9h4w14kd4b87bp42k3x3v6hcl62xi9";
+       version = "0.5.1";
+       sha256 = "07py2nffdgxpz8sryvqcghzb2kiiagpdf5ja1dia4z0rpwi79smh";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base HUnit test-framework test-framework-hunit
@@ -254731,6 +261446,8 @@ self: {
        pname = "unexceptionalio-trans";
        version = "0.5.1";
        sha256 = "100sfbrpaldz37a176qpfkk1nx5acyh8pchjmb8g5vhzbhyrqniz";
+       revision = "1";
+       editedCabalFile = "0f15n8hqqczwjrcqxwjp2mrd9iycv53sylv407c95nb6d4hw93ci";
        libraryHaskellDepends = [ base transformers unexceptionalio ];
        description = "A wrapper around UnexceptionalIO using monad transformers";
        license = "unknown";
@@ -254758,8 +261475,8 @@ self: {
        pname = "unfoldable";
        version = "1.0";
        sha256 = "0ilzv4ks76f9fx12ilsam0v232fm2mvvsz6s50p0nllldwgkgm6a";
-       revision = "1";
-       editedCabalFile = "167jqv6cw9d1c9n0j2sxp5asaaqbh6ay3g8nyg8ndy96jnjb34zb";
+       revision = "2";
+       editedCabalFile = "0lnqjgh8nyq6w94swn0m7syl0bx6a2ml7s9sqp449inpdb8f8jaj";
        libraryHaskellDepends = [
          base containers ghc-prim one-liner QuickCheck random transformers
        ];
@@ -255029,16 +261746,39 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "unicode-transforms_0_3_7" = callPackage
+    ({ mkDerivation, base, bytestring, deepseq, filepath, gauge
+     , getopt-generics, ghc-prim, hspec, path, path-io, QuickCheck
+     , split, text
+     }:
+     mkDerivation {
+       pname = "unicode-transforms";
+       version = "0.3.7";
+       sha256 = "0pgxb4znvr39n0f7y5q0bdajc4l96zsih0a43n90qjlhj9084rp8";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base bytestring ghc-prim text ];
+       testHaskellDepends = [
+         base deepseq getopt-generics hspec QuickCheck split text
+       ];
+       benchmarkHaskellDepends = [
+         base deepseq filepath gauge path path-io text
+       ];
+       description = "Unicode normalization";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "unicode-tricks" = callPackage
     ({ mkDerivation, base, data-default, hspec, hspec-discover
      , QuickCheck, text
      }:
      mkDerivation {
        pname = "unicode-tricks";
-       version = "0.7.0.0";
-       sha256 = "0lwpdqzprm0s7dgn5pvb6plklr45s4qqa0cbash296zcx8195imx";
+       version = "0.8.0.0";
+       sha256 = "1ilbl1f5kigb09n1a8nkm484sjyvi7k3wnga6gj5jgss00xj4xfb";
        libraryHaskellDepends = [ base data-default QuickCheck text ];
-       testHaskellDepends = [ base hspec ];
+       testHaskellDepends = [ base hspec QuickCheck ];
        testToolDepends = [ hspec-discover ];
        description = "Functions to work with unicode blocks more convenient";
        license = stdenv.lib.licenses.bsd3;
@@ -255324,6 +262064,28 @@ 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;
+     }) {};
+
   "unit" = callPackage
     ({ mkDerivation, base, hspec }:
      mkDerivation {
@@ -255354,8 +262116,8 @@ self: {
      }:
      mkDerivation {
        pname = "units";
-       version = "2.4.1.2";
-       sha256 = "0ipjkwcawchgfbldm56y6xb31qs6ifj7lvw4xabl2jjb6j5f0sr6";
+       version = "2.4.1.3";
+       sha256 = "1ksrw65ci9j8qnqj6cxpdmdb9b3k4k9w8ld3j4h00r2vkcqgn9qg";
        libraryHaskellDepends = [
          base containers deepseq lens linear mtl multimap singletons syb
          template-haskell th-desugar units-parser vector-space
@@ -255390,8 +262152,8 @@ self: {
     ({ mkDerivation, base, template-haskell, units }:
      mkDerivation {
        pname = "units-defs";
-       version = "2.1.0.1";
-       sha256 = "1ck50r8mhcvjyfx3wdkn8s89rrzjkxpn439zarg5s2vqmqji7gyy";
+       version = "2.2";
+       sha256 = "1g55hnhd9bgqp649jgmq41s5i5j0gfpn3iwqaxvmikwaasyr69ki";
        libraryHaskellDepends = [ base template-haskell units ];
        description = "Definitions for use with the units package";
        license = stdenv.lib.licenses.bsd3;
@@ -255693,14 +262455,40 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "universum_1_7_0" = 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.0";
+       sha256 = "079sck4cfhvx4zda5qiz7vs3050l87ik9hx8yjc6bihrzlqvmgfb";
+       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 {
        pname = "unix";
        version = "2.7.2.2";
        sha256 = "1b6ygkasn5bvmdci8g3zjkahl34kfqhf5jrayibvnrcdnaqlxpcq";
-       revision = "3";
-       editedCabalFile = "1bbn41bx46b9h8hbri50rw69996h75nfhm9zgyvnr8lzgfhnk4p6";
+       revision = "4";
+       editedCabalFile = "092d2qzfk4wm7xaa5wjyxgb97knilsh86vhk420j8rd0qlygk4wy";
        libraryHaskellDepends = [ base bytestring time ];
        description = "POSIX functionality";
        license = stdenv.lib.licenses.bsd3;
@@ -255897,8 +262685,8 @@ self: {
      }:
      mkDerivation {
        pname = "unliftio";
-       version = "0.2.12.1";
-       sha256 = "18z8db7plbjdgl12p00zj5qd60v89wazgxqc356mwg295w2mydwc";
+       version = "0.2.13";
+       sha256 = "1wzrdrcclkbyfjchad60rs08r1b2d20mr7hcs55cx8x16962qmn2";
        libraryHaskellDepends = [
          async base bytestring deepseq directory filepath process stm time
          transformers unix unliftio-core
@@ -256040,6 +262828,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "unordered-containers_0_2_12_0" = callPackage
+    ({ mkDerivation, base, bytestring, ChasingBottoms, containers
+     , deepseq, gauge, hashable, hashmap, HUnit, mtl, QuickCheck, random
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     }:
+     mkDerivation {
+       pname = "unordered-containers";
+       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 gauge hashable hashmap mtl
+         random
+       ];
+       description = "Efficient hashing-based container types";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "unordered-containers-rematch" = callPackage
     ({ mkDerivation, base, hashable, hspec, HUnit, rematch
      , unordered-containers
@@ -256463,25 +263274,24 @@ self: {
      }) {};
 
   "update-nix-fetchgit" = callPackage
-    ({ mkDerivation, aeson, ansi-wl-pprint, async, base, bytestring
-     , data-fix, errors, hnix, process, text, time, transformers
-     , trifecta, uniplate, utf8-string
+    ({ mkDerivation, aeson, async, base, bytestring, data-fix, errors
+     , hnix, prettyprinter, process, text, time, transformers, trifecta
+     , uniplate, utf8-string
      }:
      mkDerivation {
        pname = "update-nix-fetchgit";
-       version = "0.1.0.0";
-       sha256 = "1chl1a4vjd9iqyd2kp67f9v8h260c6jlfzcr8m11x0w0h592ly52";
+       version = "0.1.1.0";
+       sha256 = "0zk4rgpdgn2wa6x4js7sgxpa9gfly2fwd1vws5m73kh61ja7286h";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson ansi-wl-pprint async base bytestring data-fix errors hnix
+         aeson async base bytestring data-fix errors hnix prettyprinter
          process text time transformers trifecta uniplate utf8-string
        ];
        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
@@ -256554,8 +263364,8 @@ self: {
      }:
      mkDerivation {
        pname = "urbit-hob";
-       version = "0.3.2";
-       sha256 = "0zs9gwnik7l587apf4giiii6jc4l6a7gj3ygfcab1gd58wfwwm6f";
+       version = "0.3.3";
+       sha256 = "1w38bsjis13lh6jry2rln3xbc9ap7lk3dhi6rb6kddashjyibfr0";
        libraryHaskellDepends = [ base bytestring murmur3 text vector ];
        testHaskellDepends = [ base hspec hspec-core QuickCheck text ];
        benchmarkHaskellDepends = [ base criterion deepseq ];
@@ -256655,8 +263465,8 @@ self: {
     ({ mkDerivation, aeson, base, bytestring, text, uri-bytestring }:
      mkDerivation {
        pname = "uri-bytestring-aeson";
-       version = "0.1.0.7";
-       sha256 = "16zg0fsxzdii72119jyhn2g2gy7j6pk7r8i7w5hk9a353kmvb43y";
+       version = "0.1.0.8";
+       sha256 = "02bm5r0i1anwy3wv2xdfhnsmmgllv5vs7npy01fpmp91x7dcqak1";
        libraryHaskellDepends = [
          aeson base bytestring text uri-bytestring
        ];
@@ -256688,8 +263498,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 = [
@@ -256699,6 +263509,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
@@ -257112,6 +263943,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
@@ -257120,8 +263953,8 @@ self: {
      }:
      mkDerivation {
        pname = "userid";
-       version = "0.1.3.4";
-       sha256 = "149c32v5fa4aqkknqwlamf1r06ki0g0q03nbsc0giaw5qsavf7x1";
+       version = "0.1.3.5";
+       sha256 = "0lk3a07sh7i5hh3b5d2734iw3qwz0q4dnf4b6j9br69vi35k64cw";
        libraryHaskellDepends = [
          aeson base boomerang cereal safecopy web-routes web-routes-th
        ];
@@ -257232,8 +264065,6 @@ self: {
        ];
        description = "A pragmatic time and date library";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "utf" = callPackage
@@ -257249,6 +264080,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "utf8-conversions" = callPackage
+    ({ mkDerivation, base, bytestring, charsetdetect-ae, hspec, text
+     , text-short, utf8-string
+     }:
+     mkDerivation {
+       pname = "utf8-conversions";
+       version = "0.1.0.4";
+       sha256 = "0j5jskj35njz5c9yqs3sc0a8zmmjmnil8996pwr8akghj282b4wz";
+       libraryHaskellDepends = [
+         base bytestring text text-short utf8-string
+       ];
+       testHaskellDepends = [
+         base bytestring charsetdetect-ae hspec text text-short utf8-string
+       ];
+       description = "A string conversion library that assumes utf8";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "utf8-env" = callPackage
     ({ mkDerivation, base, mtl, utf8-string }:
      mkDerivation {
@@ -257686,17 +264535,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
@@ -257704,6 +264552,8 @@ self: {
        ];
        description = "UUID parsing using byteverse packages";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "uuid-crypto" = callPackage
@@ -257770,8 +264620,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
        ];
@@ -258007,8 +264857,8 @@ self: {
      }:
      mkDerivation {
        pname = "vado";
-       version = "0.0.12";
-       sha256 = "0qirhdzbcx5mqlbgh24ckcmivi38hqr53im9g6cydzslnk7ys41w";
+       version = "0.0.13";
+       sha256 = "04cdzlbcx95r7x3nz0r676c376j0lfiidp0160maw651in2a3b5f";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -258139,6 +264989,8 @@ self: {
        pname = "validation-selective";
        version = "0.1.0.0";
        sha256 = "0ia3g2c1137pa0ns97yf8vbfvwmjhqnqhzn9lzgxvxwzchvwpnf7";
+       revision = "1";
+       editedCabalFile = "19pcv1i7xcrgg248dbgyl83zx3gn9zilrxqs3arlmkwdi0jdj4nv";
        libraryHaskellDepends = [ base deepseq selective ];
        testHaskellDepends = [
          base doctest hedgehog hspec hspec-hedgehog selective text
@@ -258205,44 +265057,15 @@ self: {
     ({ mkDerivation, base, hspec }:
      mkDerivation {
        pname = "validity";
-       version = "0.9.0.3";
-       sha256 = "1iqn07n1fv54waln0jj9hf3pivxiz138hzm38z0cdl8yj76qgx7x";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base hspec ];
-       description = "Validity typeclass";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "validity_0_11_0_0" = callPackage
-    ({ mkDerivation, base, hspec }:
-     mkDerivation {
-       pname = "validity";
        version = "0.11.0.0";
        sha256 = "1jawa7d37al29zp2b5hba9w348g926ckbxp51l9bprii5v47lyln";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec ];
        description = "Validity typeclass";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "validity-aeson" = callPackage
-    ({ mkDerivation, aeson, base, validity, validity-scientific
-     , validity-text, validity-unordered-containers, validity-vector
-     }:
-     mkDerivation {
-       pname = "validity-aeson";
-       version = "0.2.0.3";
-       sha256 = "0rvhlbnm27yfywavp46iyhvkbwxzcnwl8p82k8xpncy4gc2493b7";
-       libraryHaskellDepends = [
-         aeson base validity validity-scientific validity-text
-         validity-unordered-containers validity-vector
-       ];
-       description = "Validity instances for aeson";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "validity-aeson_0_2_0_4" = callPackage
     ({ mkDerivation, aeson, base, hspec, validity, validity-scientific
      , validity-text, validity-unordered-containers, validity-vector
      }:
@@ -258257,7 +265080,6 @@ self: {
        testHaskellDepends = [ aeson base hspec validity ];
        description = "Validity instances for aeson";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "validity-bytestring" = callPackage
@@ -258275,8 +265097,8 @@ self: {
     ({ mkDerivation, base, containers, validity }:
      mkDerivation {
        pname = "validity-containers";
-       version = "0.5.0.3";
-       sha256 = "064sd52y3cmfz9j1yhfz6wsm3993mnh9xgyzy6jzd4cdfmh19sdd";
+       version = "0.5.0.4";
+       sha256 = "1qw5p60dr54d2wh49y6x33hbks4d74m8pr5zygblzk0y70warqld";
        libraryHaskellDepends = [ base containers validity ];
        description = "Validity instances for containers";
        license = stdenv.lib.licenses.mit;
@@ -258342,6 +265164,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 {
@@ -259049,6 +265883,25 @@ self: {
        broken = true;
      }) {};
 
+  "vector-circular" = callPackage
+    ({ mkDerivation, base, hedgehog, hedgehog-classes, nonempty-vector
+     , primitive, semigroupoids, template-haskell, vector
+     }:
+     mkDerivation {
+       pname = "vector-circular";
+       version = "0.1";
+       sha256 = "1ha5hdl2g7shjssjhqx4s5sqp34y301l0f0dg8yshrw5srg1k90x";
+       libraryHaskellDepends = [
+         base nonempty-vector primitive semigroupoids template-haskell
+         vector
+       ];
+       testHaskellDepends = [ base hedgehog hedgehog-classes ];
+       description = "circular vectors";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "vector-clock" = callPackage
     ({ mkDerivation, array, base, binary, ghc-prim, hashable, HUnit
      , QuickCheck, test-framework, test-framework-hunit
@@ -259090,6 +265943,17 @@ self: {
        broken = true;
      }) {};
 
+  "vector-doublezip" = callPackage
+    ({ mkDerivation, base, vector }:
+     mkDerivation {
+       pname = "vector-doublezip";
+       version = "0.2.0.0";
+       sha256 = "0z98f0fjn90x3azdbsnjpx61r9lna9hb67bjnmmhvil9a7hpd65x";
+       libraryHaskellDepends = [ base vector ];
+       description = "Some special functions to work with Vector (with zip)";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "vector-endian" = callPackage
     ({ mkDerivation, base, cpu, deepseq, vector, zenhack-prelude }:
      mkDerivation {
@@ -259128,8 +265992,8 @@ self: {
        pname = "vector-fftw";
        version = "0.1.3.8";
        sha256 = "0xlr4566hh6lnpinzrk623a96jnb8mp8mq6cymlsl8y38qx36jp6";
-       revision = "2";
-       editedCabalFile = "16qbqswgrx48lc4h5fa8ccyxv448scad9f2p9qvgzsn66lmm7iqc";
+       revision = "3";
+       editedCabalFile = "0wh7sa71gl1ssqqd4axyvwxlmkfb0n3hm90imjvg0vsp7g2y7zs0";
        libraryHaskellDepends = [ base primitive storable-complex vector ];
        librarySystemDepends = [ fftw ];
        description = "A binding to the fftw library for one-dimensional vectors";
@@ -259269,8 +266133,8 @@ self: {
      }:
      mkDerivation {
        pname = "vector-sized";
-       version = "1.4.0.0";
-       sha256 = "1rh8jjbpw8c6mprwqzd8x7n1kcm5kld3ajrrsahnm91aaw9z1cy6";
+       version = "1.4.1.0";
+       sha256 = "14l6c8l8l29f6kdffknd70kkccfjcf105i1zd0kchgsgjnr9p6l1";
        libraryHaskellDepends = [
          adjunctions base binary comonad deepseq distributive
          finite-typelits hashable indexed-list-literals primitive vector
@@ -259279,15 +266143,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "vector-sized_1_4_1_0" = callPackage
+  "vector-sized_1_4_2" = callPackage
     ({ mkDerivation, adjunctions, base, binary, comonad, deepseq
      , distributive, finite-typelits, hashable, indexed-list-literals
      , primitive, vector
      }:
      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
@@ -259517,23 +266381,6 @@ self: {
      }) {};
 
   "verbosity" = callPackage
-    ({ mkDerivation, base, binary, data-default-class, deepseq, dhall
-     , generic-lens, serialise
-     }:
-     mkDerivation {
-       pname = "verbosity";
-       version = "0.3.0.0";
-       sha256 = "0wzhkzgd6yxzdkmd2n8hwhrfyh5n88xs0hkil9l98wjh3mnn1qja";
-       revision = "1";
-       editedCabalFile = "11nw7xwvfc4aqnl9wibgfx0adzpnfbz58cjhcanf04j8pjk609lf";
-       libraryHaskellDepends = [
-         base binary data-default-class deepseq dhall generic-lens serialise
-       ];
-       description = "Simple enum that encodes application verbosity";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "verbosity_0_4_0_0" = callPackage
     ({ mkDerivation, base, binary, deepseq, dhall, generic-lens
      , serialise
      }:
@@ -259546,7 +266393,6 @@ self: {
        ];
        description = "Simple enum that encodes application verbosity";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "verdict" = callPackage
@@ -259679,6 +266525,8 @@ self: {
        benchmarkHaskellDepends = [ base criterion lens ];
        description = "Random verilog generation and simulator testing";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "versioning" = callPackage
@@ -259718,18 +266566,17 @@ self: {
      }) {};
 
   "versions" = callPackage
-    ({ mkDerivation, base, base-prelude, checkers, deepseq, hashable
-     , megaparsec, microlens, QuickCheck, tasty, tasty-hunit
-     , tasty-quickcheck, text
+    ({ mkDerivation, base, deepseq, hashable, megaparsec, microlens
+     , QuickCheck, tasty, tasty-hunit, tasty-quickcheck, text
      }:
      mkDerivation {
        pname = "versions";
-       version = "3.5.3";
-       sha256 = "0i883v04i1a3sjn1vx15yb3bwi9pq41z650aq3zci72vyvbhr0n7";
+       version = "3.5.4";
+       sha256 = "1n6mayi2qinlv12bf83qskiazwzgl37d4nxvglmwmddb7lpyxbrw";
        libraryHaskellDepends = [ base deepseq hashable megaparsec text ];
        testHaskellDepends = [
-         base base-prelude checkers megaparsec microlens QuickCheck tasty
-         tasty-hunit tasty-quickcheck text
+         base megaparsec microlens QuickCheck tasty tasty-hunit
+         tasty-quickcheck text
        ];
        description = "Types and parsers for software version numbers";
        license = stdenv.lib.licenses.bsd3;
@@ -259951,7 +266798,7 @@ self: {
        version = "1.0";
        sha256 = "0kzwp58lki3jvx09n6w8rc97idhy947xqik72p2fqjyigkymv04h";
        libraryHaskellDepends = [ base mtl ];
-       description = "Views allow you to run a State monad on part of a state.";
+       description = "Views allow you to run a State monad on part of a state";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -260000,29 +266847,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
@@ -260086,8 +266935,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
@@ -260659,27 +267508,28 @@ self: {
      }) {inherit (pkgs) vte;};
 
   "vty" = callPackage
-    ({ mkDerivation, base, 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, 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.26";
-       sha256 = "03iznvkdm11blzx09il96262qpgc4mmi3qzarhl8grrijkgzxj4x";
+       version = "5.28.2";
+       sha256 = "0jfiha8hwpdpnz4i7d94dsgcrfd20y0kjp9crn3ds2jx8kln1prv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base blaze-builder bytestring containers deepseq directory filepath
-         hashable microlens microlens-mtl microlens-th mtl parallel parsec
-         stm terminfo text transformers unix utf8-string vector
+         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 microlens microlens-mtl mtl
+         base containers directory filepath microlens microlens-mtl mtl
        ];
        testHaskellDepends = [
          base blaze-builder bytestring Cabal containers deepseq HUnit
@@ -260692,7 +267542,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "vty_5_28_2" = callPackage
+  "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
@@ -260703,8 +267553,8 @@ self: {
      }:
      mkDerivation {
        pname = "vty";
-       version = "5.28.2";
-       sha256 = "0jfiha8hwpdpnz4i7d94dsgcrfd20y0kjp9crn3ds2jx8kln1prv";
+       version = "5.30";
+       sha256 = "1c2azy8pp39hn098dbssl6z8xf63hf52drdqgw7wl856ka2dsakj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -260805,14 +267655,12 @@ self: {
     ({ mkDerivation, base, bytestring, transformers, vector, vulkan }:
      mkDerivation {
        pname = "vulkan";
-       version = "3.3";
-       sha256 = "18xch9fs4xnknfvxx867yg3mbp2y9fv4lldrlk7nkqp8hlsgzh1k";
+       version = "3.6.5";
+       sha256 = "17r0rn2xs5l5x9vwa5vyc4q11gyw2v29qs7vqicla0qb4hh140fj";
        libraryHaskellDepends = [ base bytestring transformers vector ];
        librarySystemDepends = [ vulkan ];
        description = "Bindings to the Vulkan graphics API";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {vulkan = null;};
 
   "vulkan-api" = callPackage
@@ -261011,10 +267859,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 = [
@@ -261073,6 +267919,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
@@ -261199,8 +268061,8 @@ self: {
      }:
      mkDerivation {
        pname = "wai-extra";
-       version = "3.0.29.1";
-       sha256 = "1c5am6rnk4dwrvdv3cs01kcddbddg02hrw7h9114jwzcmglx84i7";
+       version = "3.0.29.2";
+       sha256 = "00r65l7xmvhc1jx5fq134q1sysx7ja5dzyhv5x55gmnxmqr0p107";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -261408,15 +268270,15 @@ self: {
      }) {};
 
   "wai-http2-extra" = callPackage
-    ({ mkDerivation, auto-update, base, bytestring, containers, doctest
-     , http-types, wai, warp, word8
+    ({ mkDerivation, base, bytestring, containers, doctest, http-types
+     , psqueues, wai, warp, word8
      }:
      mkDerivation {
        pname = "wai-http2-extra";
-       version = "0.1.2";
-       sha256 = "1f4ddgrprdnbpdbb6jj8n2ib206dlj5mgf8ar6r1ls2p90vpn6yr";
+       version = "0.1.3";
+       sha256 = "0nchb2jxaa687lksryhgpyr8s9p7g6z34rcwddan5lzr5khp0g2c";
        libraryHaskellDepends = [
-         auto-update base bytestring containers http-types wai warp word8
+         base bytestring containers http-types psqueues wai warp word8
        ];
        testHaskellDepends = [ base doctest ];
        description = "WAI utilities for HTTP/2";
@@ -261593,31 +268455,32 @@ self: {
      , blaze-builder, blaze-html, bytestring, case-insensitive, cereal
      , clientsession, cookie, exceptions, hedgehog, hoauth2, http-client
      , http-client-tls, http-conduit, http-reverse-proxy, http-types
-     , optparse-simple, regex-posix, safe-exceptions, shakespeare, text
-     , time, unix-compat, unordered-containers, uri-bytestring, vault
-     , wai, wai-app-static, wai-extra, warp, yaml
+     , jose, microlens, mtl, optparse-simple, regex-posix
+     , safe-exceptions, shakespeare, tasty, tasty-hedgehog, tasty-hunit
+     , text, time, unix-compat, unordered-containers, uri-bytestring
+     , vault, wai, wai-app-static, wai-extra, warp, yaml
      }:
      mkDerivation {
        pname = "wai-middleware-auth";
-       version = "0.2.1.0";
-       sha256 = "16gm0r4jlmzx5qd4s03whqlc8siy139fwrb6q26a053c85n5lw0f";
-       revision = "1";
-       editedCabalFile = "14aicx9vvp5p77hxmx0zqmqmz4qgv7adr7rsvxy76k0rszz8s8d6";
+       version = "0.2.3.1";
+       sha256 = "0i5zg6pyrr3f9g39jpk557h5rqzrm36279dav3v8n6lrj919x01m";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base base64-bytestring binary blaze-builder blaze-html
          bytestring case-insensitive cereal clientsession cookie exceptions
          hoauth2 http-client http-client-tls http-conduit http-reverse-proxy
-         http-types regex-posix safe-exceptions shakespeare text time
-         unix-compat unordered-containers uri-bytestring vault wai
-         wai-app-static wai-extra yaml
+         http-types jose microlens mtl regex-posix safe-exceptions
+         shakespeare text time unix-compat unordered-containers
+         uri-bytestring vault wai wai-app-static wai-extra yaml
        ];
        executableHaskellDepends = [
-         base bytestring cereal clientsession optparse-simple warp
+         base bytestring cereal clientsession optparse-simple wai-extra warp
        ];
        testHaskellDepends = [
-         base binary bytestring hedgehog hoauth2 text
+         aeson base binary bytestring clientsession cookie hedgehog hoauth2
+         http-types jose microlens mtl tasty tasty-hedgehog tasty-hunit text
+         time uri-bytestring wai wai-extra warp
        ];
        description = "Authentication middleware that secures WAI application";
        license = stdenv.lib.licenses.mit;
@@ -262393,6 +269256,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
@@ -262400,8 +269281,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 = [
@@ -262735,6 +269616,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
@@ -262802,8 +269701,8 @@ self: {
        pname = "warc";
        version = "1.0.4";
        sha256 = "1mxfm8kdvm0l1lnzma4n9mriz94ypckxqcz1f34fa3n1j3ckc45b";
-       revision = "3";
-       editedCabalFile = "1j51wz7l7vq3mdccn4gp40vlqri9g8fqsmlndgbd70drhq5a6mpw";
+       revision = "6";
+       editedCabalFile = "0s563lg70ks3s6plvwi79glq6vkrh7n769fh6l6b4pvj7vp604cj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -262832,8 +269731,8 @@ self: {
      }:
      mkDerivation {
        pname = "warp";
-       version = "3.3.10";
-       sha256 = "0i2pmcqni2j00jff634ajlngixfkz3fvdfhncwzzc4k2zqbnazpz";
+       version = "3.3.13";
+       sha256 = "1yqgfx7bsjk97dxcrqwddfhi8mdw0q6cbgs5abaxqjlxh3rhihdx";
        libraryHaskellDepends = [
          array async auto-update base bsb-http-chunked bytestring
          case-insensitive containers ghc-prim hashable http-date http-types
@@ -262916,8 +269815,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;
@@ -262931,14 +269830,31 @@ self: {
      }:
      mkDerivation {
        pname = "warp-tls";
-       version = "3.2.11";
-       sha256 = "05y0i0b84kssvgr2hb3rdlqk55wl2lfcbp9sbia8lqnbc6cp0606";
+       version = "3.2.12";
+       sha256 = "1d75zcacr835m7d1b0n7j19432sdf0qwgqxdf6az3f9brg849ajd";
+       libraryHaskellDepends = [
+         base bytestring cryptonite data-default-class network
+         streaming-commons tls tls-session-manager wai warp
+       ];
+       description = "HTTP over TLS support for Warp via the TLS package";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "warp-tls_3_3_0" = callPackage
+    ({ mkDerivation, base, bytestring, cryptonite, data-default-class
+     , network, streaming-commons, tls, tls-session-manager, wai, warp
+     }:
+     mkDerivation {
+       pname = "warp-tls";
+       version = "3.3.0";
+       sha256 = "03fwwggl6lhxs7swwylgpk9j8g5szq2h871nfbgs6xzr1b5hpas1";
        libraryHaskellDepends = [
          base bytestring cryptonite data-default-class network
          streaming-commons tls tls-session-manager wai warp
        ];
        description = "HTTP over TLS support for Warp via the TLS package";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "warp-tls-uid" = callPackage
@@ -263292,8 +270208,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
@@ -263380,18 +270296,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
@@ -263403,32 +270318,28 @@ self: {
      }) {};
 
   "web-rep" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bifunctors, box, clay
-     , doctest, foldl, generic-lens, interpolatedstring-perl6
-     , javascript-bridge, JuicyPixels, 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.3.2";
-       sha256 = "0an5vhqm62j0xrxqqf22kjzi7ch57j5nay5g98ngq3r0rvbk1lv3";
+       version = "0.7.0";
+       sha256 = "1045b19rjs1hgw92kq8z6wzm7jmx8k73ad9z4m2vzv1jwjhbgin4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson attoparsec base bifunctors box clay foldl generic-lens
-         interpolatedstring-perl6 javascript-bridge JuicyPixels
-         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;
@@ -263549,8 +270460,8 @@ self: {
      }:
      mkDerivation {
        pname = "web-routes-th";
-       version = "0.22.6.5";
-       sha256 = "1amzab59hhd723clg9skcn5nhwvlw1la1acc9qdbyg302a75s0l9";
+       version = "0.22.6.6";
+       sha256 = "0z5mcpnp38x6yzazdkdbj9z99837g9nlm4pp3lxzzsib7qs9a6sp";
        libraryHaskellDepends = [
          base parsec split template-haskell text web-routes
        ];
@@ -263609,35 +270520,41 @@ self: {
      }) {};
 
   "web3" = callPackage
-    ({ mkDerivation, aeson, async, base, basement, bytestring, cereal
-     , cryptonite, data-default, exceptions, generics-sop, hspec
-     , hspec-contrib, hspec-discover, hspec-expectations, http-client
-     , http-client-tls, machines, memory, microlens, microlens-aeson
-     , microlens-mtl, microlens-th, mtl, OneTuple, parsec, random
-     , relapse, split, stm, tagged, template-haskell, text, time
-     , transformers, uuid-types, vinyl
+    ({ mkDerivation, aeson, async, attoparsec, base, base58string
+     , basement, bitvec, bytestring, cereal, cryptonite, data-default
+     , errors, exceptions, generics-sop, hspec, hspec-contrib
+     , hspec-discover, hspec-expectations, http-client, http-client-tls
+     , http-media, http-types, machines, memory, microlens
+     , microlens-aeson, microlens-mtl, microlens-th, mtl, network
+     , OneTuple, parsec, random, relapse, servant, servant-client, split
+     , stm, tagged, tar, template-haskell, text, time, transformers
+     , unordered-containers, uuid-types, vector, vinyl, websockets
      }:
      mkDerivation {
        pname = "web3";
-       version = "0.8.4.0";
-       sha256 = "1sib2s0zkn8a26y4mfyyy7vjxj3b5x4nmanj27zijnh2aa8rr51c";
+       version = "0.9.1.0";
+       sha256 = "12nx9hgwx61yj44iym7na9jxf05jry3aa82j2s8l5rpw3qdv7dis";
        libraryHaskellDepends = [
-         aeson async base basement bytestring cereal cryptonite data-default
-         exceptions generics-sop http-client http-client-tls machines memory
-         microlens microlens-aeson microlens-mtl microlens-th mtl OneTuple
-         parsec relapse tagged template-haskell text transformers uuid-types
-         vinyl
+         aeson async attoparsec base base58string basement bitvec bytestring
+         cereal cryptonite data-default errors exceptions generics-sop hspec
+         http-client http-client-tls http-media http-types machines memory
+         microlens microlens-aeson microlens-mtl microlens-th mtl network
+         OneTuple parsec relapse servant servant-client tagged tar
+         template-haskell text transformers unordered-containers uuid-types
+         vector vinyl websockets
        ];
        testHaskellDepends = [
-         aeson async base basement bytestring cereal cryptonite data-default
-         exceptions generics-sop hspec hspec-contrib hspec-discover
-         hspec-expectations http-client http-client-tls machines memory
-         microlens microlens-aeson microlens-mtl microlens-th mtl OneTuple
-         parsec random relapse split stm tagged template-haskell text time
-         transformers uuid-types vinyl
+         aeson async attoparsec base base58string basement bitvec bytestring
+         cereal cryptonite data-default errors exceptions generics-sop hspec
+         hspec-contrib hspec-discover hspec-expectations http-client
+         http-client-tls http-media http-types machines memory microlens
+         microlens-aeson microlens-mtl microlens-th mtl network OneTuple
+         parsec random relapse servant servant-client split stm tagged tar
+         template-haskell text time transformers unordered-containers
+         uuid-types vector vinyl websockets
        ];
        testToolDepends = [ hspec-discover ];
-       description = "Ethereum API for Haskell";
+       description = "Web3 API for Haskell";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -263914,14 +270831,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 = [
@@ -263936,20 +270853,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 ];
@@ -263961,20 +270879,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 ];
@@ -263986,6 +270905,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;
      }) {};
@@ -264010,6 +270930,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
@@ -264090,8 +271033,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 ];
@@ -264222,40 +271165,6 @@ self: {
      }:
      mkDerivation {
        pname = "websockets";
-       version = "0.12.7.0";
-       sha256 = "11jz0d7hgbl449dvz789gyf85gdwm6h0klq05vilmplpdx61h4az";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         async attoparsec base base64-bytestring binary bytestring
-         bytestring-builder case-insensitive clock containers entropy
-         network random SHA streaming-commons text
-       ];
-       testHaskellDepends = [
-         async attoparsec base base64-bytestring binary bytestring
-         bytestring-builder case-insensitive clock containers entropy HUnit
-         network QuickCheck random SHA streaming-commons test-framework
-         test-framework-hunit test-framework-quickcheck2 text
-       ];
-       benchmarkHaskellDepends = [
-         async attoparsec base base64-bytestring binary bytestring
-         bytestring-builder case-insensitive clock containers criterion
-         entropy network random SHA text
-       ];
-       doCheck = false;
-       description = "A sensible and clean way to write WebSocket-capable servers in Haskell";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "websockets_0_12_7_1" = callPackage
-    ({ mkDerivation, async, attoparsec, base, base64-bytestring, binary
-     , bytestring, bytestring-builder, case-insensitive, clock
-     , containers, criterion, entropy, HUnit, network, QuickCheck
-     , random, SHA, streaming-commons, test-framework
-     , test-framework-hunit, test-framework-quickcheck2, text
-     }:
-     mkDerivation {
-       pname = "websockets";
        version = "0.12.7.1";
        sha256 = "1jqlvgw1ffw0236y4g7li188m9ac37a2yp07vkvcmbz63rmhfmnk";
        isLibrary = true;
@@ -264279,7 +271188,6 @@ self: {
        doCheck = false;
        description = "A sensible and clean way to write WebSocket-capable servers in Haskell";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "websockets-rpc" = callPackage
@@ -264418,18 +271326,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
@@ -264447,8 +271355,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;
@@ -264466,6 +271374,8 @@ self: {
        ];
        description = "A school-timetable problem-solver";
        license = "GPL";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "weigh" = callPackage
@@ -264608,6 +271518,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 {
@@ -264656,8 +271602,6 @@ self: {
        libraryHaskellDepends = [ base shelly template-haskell text ];
        description = "Determine the full path to an executable";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "while-lang-parser" = callPackage
@@ -264751,6 +271695,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
@@ -264866,8 +271812,8 @@ self: {
      }:
      mkDerivation {
        pname = "wild-bind";
-       version = "0.1.2.5";
-       sha256 = "14k1y5klxjvkdh0r041sd6a3jzmylb718azfmz45403lrnh96nq9";
+       version = "0.1.2.6";
+       sha256 = "1sfwz7qwlfhvdkw8f0xmywi7m3b3yd7p5hlrjndlqs8h2k8c7809";
        libraryHaskellDepends = [
          base containers semigroups text transformers
        ];
@@ -264920,8 +271866,8 @@ self: {
      }:
      mkDerivation {
        pname = "wild-bind-x11";
-       version = "0.2.0.9";
-       sha256 = "1x3qqnampyxi6bg6279xsw38324fs5gndy1mylp6dndlcf6pw30z";
+       version = "0.2.0.10";
+       sha256 = "0wq6jhaq2mh476mwjqc6ianqvvrywlvrkcwh7acdxznz2djkgjm5";
        libraryHaskellDepends = [
          base containers fold-debounce mtl semigroups stm text transformers
          wild-bind X11
@@ -265016,8 +271962,8 @@ self: {
      }:
      mkDerivation {
        pname = "winery";
-       version = "1.1.3";
-       sha256 = "1qh2i6fwwgncmx15gp4h3cg04plff3h8252x66rzxnd22g1sk3d9";
+       version = "1.2";
+       sha256 = "13ngxcvkixd4dpwkgmiz6w6rczj9jc4hhs39sgmln7y6cb3sfkih";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -265037,7 +271983,7 @@ self: {
        ];
        benchmarkHaskellDepends = [
          aeson base binary bytestring cereal deepseq directory gauge
-         serialise store text
+         serialise store text vector
        ];
        description = "A compact, well-typed seralisation format for Haskell values";
        license = stdenv.lib.licenses.bsd3;
@@ -265161,18 +272107,20 @@ self: {
      }) {};
 
   "with-utf8" = callPackage
-    ({ mkDerivation, base, deepseq, directory, hedgehog, HUnit
-     , safe-exceptions, tasty, tasty-discover, tasty-hedgehog
-     , tasty-hunit, temporary, text, unix
+    ({ mkDerivation, base, deepseq, directory, filepath, hedgehog
+     , HUnit, process, safe-exceptions, tasty, tasty-discover
+     , tasty-hedgehog, tasty-hunit, temporary, text, th-env, unix
      }:
      mkDerivation {
        pname = "with-utf8";
-       version = "1.0.1.0";
-       sha256 = "07b3zpdnaqvp7ipbjnq17is5a70l2bncjqxlnhixpq91bbsczlrp";
+       version = "1.0.2.1";
+       sha256 = "13zifhmhpdfwifw9bwyn9w5a29iph7h59jx13r0wiw5ry0g7qbif";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base safe-exceptions text ];
-       executableHaskellDepends = [ base directory ];
+       executableHaskellDepends = [
+         base directory filepath process safe-exceptions text th-env
+       ];
        testHaskellDepends = [
          base deepseq hedgehog HUnit safe-exceptions tasty tasty-hedgehog
          tasty-hunit temporary text unix
@@ -265233,16 +272181,34 @@ self: {
      }) {};
 
   "within" = callPackage
-    ({ mkDerivation, base, exceptions, hashable, path }:
+    ({ mkDerivation, base, comonad, exceptions, free, hashable, path }:
      mkDerivation {
        pname = "within";
-       version = "0.0.2.0";
-       sha256 = "08ddmh9zfb435q8ljsisszvd5hgjpsnxcv57kzadwcicy2wkj32b";
-       libraryHaskellDepends = [ base exceptions hashable path ];
-       description = "A path within another path";
+       version = "0.1.1.0";
+       sha256 = "107gi32zsp7srb2lgmbmrdzry2irgshnznkf81sw3f1n07qhci40";
+       libraryHaskellDepends = [
+         base comonad exceptions free hashable path
+       ];
+       description = "A value within another path";
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "within_0_2_0_0" = callPackage
+    ({ mkDerivation, base, comonad, exceptions, free, hashable, path
+     , path-like
+     }:
+     mkDerivation {
+       pname = "within";
+       version = "0.2.0.0";
+       sha256 = "1jvfxcxyavadcbslb50a6ad7bmnwz45d6zaxyc38y61kh0r82242";
+       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 {
@@ -266038,8 +273004,8 @@ self: {
      }:
      mkDerivation {
        pname = "world-peace";
-       version = "1.0.1.0";
-       sha256 = "1fx7y9h1yyjc5xn1mpbkwas6p6h06rivzndb545z1qnnp583vzwp";
+       version = "1.0.2.0";
+       sha256 = "05r4ils0imcv31sx6h82mwcwcrasrfs6kkip3frdsbf0aizgzcdb";
        libraryHaskellDepends = [ aeson base deepseq profunctors tagged ];
        testHaskellDepends = [
          base doctest Glob should-not-typecheck tasty tasty-hunit text
@@ -266048,6 +273014,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "worldturtle" = callPackage
+    ({ mkDerivation, base, containers, gloss, lens, matrix, mtl }:
+     mkDerivation {
+       pname = "worldturtle";
+       version = "0.2.0.0";
+       sha256 = "0h5r74ba0wjhyp8yl3clxgq5yfdr51fdkfn2xz4ahizxycyrx14f";
+       libraryHaskellDepends = [ base containers gloss lens matrix mtl ];
+       description = "Turtle graphics";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "wp-archivebot" = callPackage
     ({ mkDerivation, base, feed, HTTP, network, parallel, tagsoup }:
      mkDerivation {
@@ -266223,6 +273200,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
@@ -266625,6 +273617,8 @@ self: {
        testHaskellDepends = [ base bytestring envy hspec skews text ];
        description = "A-little-higher-level WebSocket client";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "wstunnel" = callPackage
@@ -266730,7 +273724,7 @@ self: {
        revision = "1";
        editedCabalFile = "1jszf2hdipr9iry6pcdhhk42aglcq6m3zvg9rgmnickfdzd4k71h";
        libraryHaskellDepends = [ base containers time vector-space ];
-       description = "Pure Haskell PostScript and SVG generation.";
+       description = "Pure Haskell PostScript and SVG generation";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -266793,8 +273787,8 @@ self: {
      }:
      mkDerivation {
        pname = "wuss";
-       version = "1.1.16";
-       sha256 = "1rhc0i4bkx09iv291531mawll9h89bp57xmpkwg0j3kfklilcavl";
+       version = "1.1.17";
+       sha256 = "03raxspm7k5byx2gg5a2avgf7c3idcjq0vd7jh01vpv1mamap712";
        libraryHaskellDepends = [
          base bytestring connection network websockets
        ];
@@ -267211,8 +274205,8 @@ self: {
      }:
      mkDerivation {
        pname = "xcffib";
-       version = "0.9.0";
-       sha256 = "0nxy4dfwz1wgj6dvg1jp3k4zblwpgiydmv7p20s5scyzgii8jsfk";
+       version = "0.10.0";
+       sha256 = "163fiyppb40xd4wibvjkya86630hlhn1ij0i5xlc547gazawhz4a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -267338,20 +274332,20 @@ self: {
      }) {};
 
   "xdot" = callPackage
-    ({ mkDerivation, base, cairo, graphviz, gtk3, mtl, polyparse, text
-     , transformers
+    ({ mkDerivation, base, cairo, deepseq, graphviz, gtk3, mtl
+     , polyparse, text, transformers
      }:
      mkDerivation {
        pname = "xdot";
-       version = "0.3.0.1";
-       sha256 = "0gdfaviib1hnsnkq65d71v90xl09rdyqm9n3wjkdplxz9rj5d6mh";
+       version = "0.3.0.2";
+       sha256 = "0k3lklghlj51nslv8pi8anj78hls2srmdr6hz5yibfhvycpib0c2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base cairo graphviz gtk3 mtl polyparse text
+         base cairo deepseq graphviz gtk3 mtl polyparse text
        ];
        executableHaskellDepends = [
-         base cairo graphviz gtk3 text transformers
+         base cairo deepseq graphviz gtk3 text transformers
        ];
        description = "Parse Graphviz xdot files and interactively view them using GTK and Cairo";
        license = stdenv.lib.licenses.bsd3;
@@ -267360,26 +274354,6 @@ self: {
      }) {};
 
   "xeno" = callPackage
-    ({ mkDerivation, array, base, bytestring, criterion, deepseq
-     , ghc-prim, hexml, hexpat, hspec, mtl, mutable-containers, vector
-     , weigh, xml
-     }:
-     mkDerivation {
-       pname = "xeno";
-       version = "0.3.5.2";
-       sha256 = "0xfhdi5d0y3rlsmzczdg8b896l9q31nify1vsq0vfqqhfn75pw8l";
-       libraryHaskellDepends = [
-         array base bytestring deepseq mtl mutable-containers vector
-       ];
-       testHaskellDepends = [ base bytestring hexml hspec ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion deepseq ghc-prim hexml hexpat weigh xml
-       ];
-       description = "A fast event-based XML parser in pure Haskell";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "xeno_0_4_1" = callPackage
     ({ mkDerivation, array, base, bytestring, bytestring-mmap, bzlib
      , criterion, deepseq, filepath, ghc-prim, hexml, hexpat, hspec, mtl
      , mutable-containers, time, vector, weigh, xml
@@ -267404,7 +274378,6 @@ self: {
        ];
        description = "A fast event-based XML parser in pure Haskell";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "xenstore" = callPackage
@@ -267708,13 +274681,13 @@ self: {
      }) {};
 
   "xls" = callPackage
-    ({ mkDerivation, base, conduit, filepath, getopt-generics
+    ({ mkDerivation, base, conduit, filepath, getopt-generics, hspec
      , resourcet, transformers
      }:
      mkDerivation {
        pname = "xls";
-       version = "0.1.2";
-       sha256 = "0gpfc973g6ha9w3fqm9dy59kgl21hw20l2b444rrz0lxs9ix1wyp";
+       version = "0.1.3";
+       sha256 = "1qjkmcy41yj5izcj24jjwj1jvlg4cfg4g96zgc3jv4rfyr1n1892";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -267723,7 +274696,7 @@ self: {
        executableHaskellDepends = [
          base conduit getopt-generics resourcet transformers
        ];
-       testHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec ];
        description = "Parse Microsoft Excel xls files (BIFF/Excel 97-2004)";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -267765,8 +274738,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
@@ -267829,8 +274802,8 @@ self: {
        pname = "xml";
        version = "1.3.14";
        sha256 = "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j";
-       revision = "1";
-       editedCabalFile = "130xwqmgmg9vp988mppm5ivz1r5qbivb270fz2rwl4q0x04czdzd";
+       revision = "2";
+       editedCabalFile = "15cxa19dp8nqvrrp0bmndkdas2jzg573x8ri75r6kiv8r4vkv8y7";
        libraryHaskellDepends = [ base bytestring text ];
        description = "A simple XML library";
        license = stdenv.lib.licenses.bsd3;
@@ -267992,8 +274965,10 @@ self: {
      }:
      mkDerivation {
        pname = "xml-conduit-stylist";
-       version = "2.1.0.0";
-       sha256 = "0x33v7nc6swnizdmqmf2gxwr9afyrnra5kyywzp34hbawimd4apr";
+       version = "2.2.0.0";
+       sha256 = "0zd7irwy8fl9zkpzj85lg9xv4m01cr4dzvlxyz8nh6l1rwvhqang";
+       revision = "2";
+       editedCabalFile = "0h20v462sfq4cli5b9d574qjhxs1vgzh5yb2spgj6w9pmf7ydf61";
        libraryHaskellDepends = [
          base containers css-syntax network-uri stylist text
          unordered-containers xml-conduit
@@ -268437,8 +275412,8 @@ self: {
     ({ mkDerivation, base, deepseq, text }:
      mkDerivation {
        pname = "xml-types";
-       version = "0.3.6";
-       sha256 = "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr";
+       version = "0.3.8";
+       sha256 = "102cm0nvfmf9gn8hvn5z8qvmg931laczs33wwd5iyz9bc37f9mfs";
        libraryHaskellDepends = [ base deepseq text ];
        description = "Basic types for representing XML";
        license = stdenv.lib.licenses.mit;
@@ -268674,16 +275649,16 @@ self: {
   "xmobar" = callPackage
     ({ mkDerivation, alsa-core, alsa-mixer, async, base, bytestring
      , containers, dbus, directory, extensible-exceptions, filepath
-     , hinotify, hspec, 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.33";
-       sha256 = "1hr3qqykc5givcpcwrr9f2y920jmiinmxm5mcy6qgpgymgwqb618";
+       version = "0.35.1";
+       sha256 = "1fizszhij2if9wxwzi728l93j9p5y9kfqnwnxk6nl66g64rsbp5x";
        configureFlags = [
          "-fwith_alsa" "-fwith_conduit" "-fwith_datezone" "-fwith_dbus"
          "-fwith_inotify" "-fwith_iwlib" "-fwith_mpd" "-fwith_mpris"
@@ -268694,10 +275669,10 @@ self: {
        isExecutable = true;
        libraryHaskellDepends = [
          alsa-core alsa-mixer async base bytestring containers dbus
-         directory extensible-exceptions filepath hinotify http-conduit
-         http-types iwlib libmpd mtl old-locale parsec parsec-numbers
-         process regex-compat stm time timezone-olson timezone-series
-         transformers unix utf8-string X11 X11-xft
+         directory extensible-exceptions filepath hinotify http-client-tls
+         http-conduit http-types iwlib libmpd mtl old-locale parsec
+         parsec-numbers process regex-compat stm time timezone-olson
+         timezone-series transformers unix utf8-string X11 X11-xft
        ];
        librarySystemDepends = [
          libXpm libXrandr libXrender wirelesstools
@@ -268710,6 +275685,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" ];
@@ -268996,6 +275972,28 @@ self: {
        broken = true;
      }) {};
 
+  "xor" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, ghc-byteorder
+     , QuickCheck, tasty, tasty-hunit, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "xor";
+       version = "0.0.1.0";
+       sha256 = "0v2xcyqzd973v8m4i6f02qifa2zq4whrnw3pw332q3rr1kd2pxxw";
+       libraryHaskellDepends = [ base bytestring ghc-byteorder ];
+       testHaskellDepends = [
+         base bytestring ghc-byteorder QuickCheck tasty tasty-hunit
+         tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion ghc-byteorder
+       ];
+       description = "Efficient XOR masking";
+       license = stdenv.lib.licenses.gpl2Plus;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "xorshift" = callPackage
     ({ mkDerivation, base, random, time }:
      mkDerivation {
@@ -269157,51 +276155,47 @@ self: {
      }) {};
 
   "xrefcheck" = callPackage
-    ({ mkDerivation, aeson, aeson-options, async, autoexporter
-     , base-noprelude, bytestring, cmark-gfm, containers, data-default
-     , deepseq, directory, directory-tree, filepath, fmt, Glob, hspec
-     , hspec-discover, http-client, http-types, lens, loot-prelude, mtl
-     , o-clock, optparse-applicative, pretty-terminal, QuickCheck, req
+    ({ 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, modern-uri, mtl, o-clock
+     , optparse-applicative, pretty-terminal, QuickCheck, req
      , roman-numerals, template-haskell, text, text-metrics
-     , th-lift-instances, th-utilities, yaml
+     , th-lift-instances, th-utilities, universum, with-utf8, yaml
      }:
      mkDerivation {
        pname = "xrefcheck";
-       version = "0.1.0.0";
-       sha256 = "1ap5pdgbvf9zjwbwi3i46jdizm1ggzpknpmmic22kbw8rdv2i9yr";
+       version = "0.1.2";
+       sha256 = "0m3cya6rfx7ypq4sp172z9fnnl6n11v98f6bj003phrapl6s0vnn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson aeson-options async base-noprelude bytestring cmark-gfm
-         containers data-default deepseq directory directory-tree filepath
-         fmt Glob http-client http-types lens loot-prelude mtl o-clock
+         aeson aeson-options async base bytestring cmark-gfm containers
+         data-default deepseq directory directory-tree filepath fmt Glob
+         http-client http-types lens modern-uri mtl o-clock
          optparse-applicative pretty-terminal req roman-numerals
          template-haskell text text-metrics th-lift-instances th-utilities
-         yaml
+         universum with-utf8 yaml
        ];
-       libraryToolDepends = [ autoexporter ];
        executableHaskellDepends = [
-         aeson aeson-options async base-noprelude bytestring cmark-gfm
-         containers data-default deepseq directory directory-tree filepath
-         fmt Glob http-client http-types lens loot-prelude mtl o-clock
+         aeson aeson-options async base bytestring cmark-gfm containers
+         data-default deepseq directory directory-tree filepath fmt Glob
+         http-client http-types lens modern-uri mtl o-clock
          optparse-applicative pretty-terminal req roman-numerals
          template-haskell text text-metrics th-lift-instances th-utilities
-         yaml
+         universum with-utf8 yaml
        ];
-       executableToolDepends = [ autoexporter ];
        testHaskellDepends = [
-         aeson aeson-options async base-noprelude bytestring cmark-gfm
-         containers data-default deepseq directory directory-tree filepath
-         fmt Glob hspec http-client http-types lens loot-prelude mtl o-clock
+         aeson aeson-options async base bytestring cmark-gfm containers
+         data-default deepseq directory directory-tree filepath fmt Glob
+         hspec http-client http-types lens modern-uri mtl o-clock
          optparse-applicative pretty-terminal QuickCheck req roman-numerals
          template-haskell text text-metrics th-lift-instances th-utilities
-         yaml
+         universum with-utf8 yaml
        ];
-       testToolDepends = [ autoexporter hspec-discover ];
+       testToolDepends = [ hspec-discover ];
        license = stdenv.lib.licenses.mpl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {loot-prelude = null;};
+     }) {};
 
   "xsact" = callPackage
     ({ mkDerivation, array, base, containers, directory, process
@@ -269819,8 +276813,8 @@ self: {
      }:
      mkDerivation {
        pname = "yaml";
-       version = "0.11.3.0";
-       sha256 = "01lafh83rp0v49f052vyv4gcbdgzcf42cmg0iqlykk6c586ksvh4";
+       version = "0.11.4.0";
+       sha256 = "0v69d10ni6ydj4g63ajcmnx6a2j3kbl91vpz678l7k5mkd3chkns";
        configureFlags = [ "-fsystem-libyaml" ];
        isLibrary = true;
        isExecutable = true;
@@ -269839,7 +276833,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "yaml_0_11_4_0" = callPackage
+  "yaml_0_11_5_0" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base-compat, bytestring
      , conduit, containers, directory, filepath, hspec, HUnit, libyaml
      , mockery, mtl, raw-strings-qq, resourcet, scientific
@@ -269848,8 +276842,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;
@@ -270069,26 +277063,29 @@ self: {
      }) {};
 
   "yamlparse-applicative" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, genvalidity-aeson
-     , genvalidity-hspec, genvalidity-scientific, genvalidity-text
-     , hspec, optparse-applicative, path, path-io, prettyprinter
-     , QuickCheck, scientific, text, unordered-containers, validity
-     , validity-text, vector, yaml
+    ({ mkDerivation, aeson, base, bytestring, containers
+     , genvalidity-aeson, genvalidity-containers, genvalidity-hspec
+     , genvalidity-scientific, genvalidity-text
+     , genvalidity-unordered-containers, hspec, optparse-applicative
+     , path, path-io, prettyprinter, QuickCheck, scientific, text
+     , unordered-containers, validity, validity-text, vector, yaml
      }:
      mkDerivation {
        pname = "yamlparse-applicative";
-       version = "0.0.0.0";
-       sha256 = "1n2mm542zl4mji8la5xpyjj6cab3rqihlwm1x4d0xgn7xzmng02g";
+       version = "0.1.0.1";
+       sha256 = "089s5f3i3yz833g7q2rd55v9hn93cdzprhniymw37qdmhv5jw960";
        libraryHaskellDepends = [
-         aeson base bytestring optparse-applicative path path-io
+         aeson base bytestring containers optparse-applicative path path-io
          prettyprinter scientific text unordered-containers validity
          validity-text vector yaml
        ];
        testHaskellDepends = [
-         aeson base genvalidity-aeson genvalidity-hspec
-         genvalidity-scientific genvalidity-text hspec QuickCheck scientific
-         text
+         aeson base containers genvalidity-aeson genvalidity-containers
+         genvalidity-hspec genvalidity-scientific genvalidity-text
+         genvalidity-unordered-containers hspec QuickCheck scientific text
+         unordered-containers
        ];
+       description = "Declaritive configuration parsing with free docs";
        license = stdenv.lib.licenses.mit;
      }) {};
 
@@ -270264,6 +277261,25 @@ self: {
        broken = true;
      }) {};
 
+  "yapb" = callPackage
+    ({ mkDerivation, base, bytestring, directory, hashable, network
+     , process, regex-tdfa
+     }:
+     mkDerivation {
+       pname = "yapb";
+       version = "0.1.1";
+       sha256 = "1zbk2whfi09wzx9ql4dhkbg50s7v45y309avxljypg7z9i9pvx3x";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         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;
+     }) {};
+
   "yarn-lock" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, containers, either
      , megaparsec, neat-interpolation, protolude, quickcheck-instances
@@ -270397,16 +277413,16 @@ self: {
   "yaya" = callPackage
     ({ mkDerivation, base, bifunctors, comonad, constraints, containers
      , distributive, either, errors, free, kan-extensions, lens
-     , profunctors, template-haskell, transformers
+     , profunctors, template-haskell, th-abstraction, transformers
      }:
      mkDerivation {
        pname = "yaya";
-       version = "0.2.1.2";
-       sha256 = "179mq32b5gjlwfpldm4msqnxv316gb2gj3s0kzhkcyk0l3i3y8fi";
+       version = "0.3.2.0";
+       sha256 = "186hph8qgvzx9qicy6f28qj4xdgjka3lbaibpj7zmkfaayl0l3bm";
        libraryHaskellDepends = [
          base bifunctors comonad constraints containers distributive either
          errors free kan-extensions lens profunctors template-haskell
-         transformers
+         th-abstraction transformers
        ];
        description = "Total recursion schemes";
        license = stdenv.lib.licenses.agpl3;
@@ -270416,21 +277432,40 @@ self: {
     ({ mkDerivation, base, deriving-compat, hedgehog, yaya }:
      mkDerivation {
        pname = "yaya-hedgehog";
-       version = "0.1.2.1";
-       sha256 = "18lyhb7fqdbp2p71y5jydcb8xzbahqzy1jmsnsb4hym8v8ax71cv";
+       version = "0.2.0.1";
+       sha256 = "0aw932d2yr3w84ia44y46w4w96bc8gdag63h66rhx3v7gwmkwdwg";
        libraryHaskellDepends = [ base deriving-compat hedgehog yaya ];
        description = "Hedgehog testing support for the Yaya recursion scheme library";
        license = stdenv.lib.licenses.agpl3;
      }) {};
 
+  "yaya-test" = callPackage
+    ({ mkDerivation, base, deriving-compat, hedgehog, yaya
+     , yaya-hedgehog
+     }:
+     mkDerivation {
+       pname = "yaya-test";
+       version = "0.3.1.0";
+       sha256 = "0kmdf5w8ly3vp0krmi2dy7bjw68z0hmy7i0dx0j7j8s3rzdf8dyh";
+       isLibrary = false;
+       isExecutable = false;
+       testHaskellDepends = [
+         base deriving-compat hedgehog yaya yaya-hedgehog
+       ];
+       description = "Test suites for `yaya`";
+       license = stdenv.lib.licenses.agpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "yaya-unsafe" = callPackage
     ({ mkDerivation, base, bifunctors, comonad, either, free, lens
      , yaya
      }:
      mkDerivation {
        pname = "yaya-unsafe";
-       version = "0.1.1.2";
-       sha256 = "0cvfrzqx5d56nld60p1n5qmwn4j4gbsvy7jf5lk4ar5da4w8a90c";
+       version = "0.2.0.1";
+       sha256 = "1wj9bgczp5pl85c9sa3fn5zzkccn440mdi8gfi0warc98iy9r2pd";
        libraryHaskellDepends = [
          base bifunctors comonad either free lens yaya
        ];
@@ -270438,6 +277473,24 @@ self: {
        license = stdenv.lib.licenses.agpl3;
      }) {};
 
+  "yaya-unsafe-test" = callPackage
+    ({ mkDerivation, base, hedgehog, yaya, yaya-hedgehog, yaya-unsafe
+     }:
+     mkDerivation {
+       pname = "yaya-unsafe-test";
+       version = "0.1.1.2";
+       sha256 = "0qfhgb3mzm6s04y4rxlba9yz2yr37z5qmqwp1p6hkdbr38z5z9p5";
+       isLibrary = false;
+       isExecutable = false;
+       testHaskellDepends = [
+         base hedgehog yaya yaya-hedgehog yaya-unsafe
+       ];
+       description = "Test suites for `yaya-unsafe`";
+       license = stdenv.lib.licenses.agpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "ycextra" = callPackage
     ({ mkDerivation, base, containers, csv, mtl, uniplate, yhccore }:
      mkDerivation {
@@ -270561,8 +277614,8 @@ self: {
     ({ mkDerivation, base, yeshql-core, yeshql-hdbc }:
      mkDerivation {
        pname = "yeshql";
-       version = "4.1.0.1";
-       sha256 = "1dlxq8vp18fagfymlzqa4j0ns174s31d7p1vi54wz0b55ml91if4";
+       version = "4.2.0.0";
+       sha256 = "07wbblsyc1f2kc47s2z4sg4s7qmgn44kvpvdvq9cf59g5nvm4wkd";
        libraryHaskellDepends = [ base yeshql-core yeshql-hdbc ];
        description = "YesQL-style SQL database abstraction (legacy compatibility wrapper)";
        license = stdenv.lib.licenses.mit;
@@ -270571,15 +277624,16 @@ self: {
      }) {};
 
   "yeshql-core" = callPackage
-    ({ mkDerivation, base, containers, convertible, filepath, parsec
-     , stm, tasty, tasty-hunit, tasty-quickcheck, template-haskell
+    ({ mkDerivation, base, containers, convertible, fail, filepath
+     , parsec, stm, tasty, tasty-hunit, tasty-quickcheck
+     , template-haskell
      }:
      mkDerivation {
        pname = "yeshql-core";
-       version = "4.1.0.2";
-       sha256 = "1zhpccdqy8y5ynyn2ax7p9l2lvz573f559iqkip26ijq84pjmny0";
+       version = "4.2.0.0";
+       sha256 = "1rh6pn182h4cjsca7gbbaq3s25y6lmbwcfzsbm7452m9hrwm0vlf";
        libraryHaskellDepends = [
-         base containers convertible filepath parsec template-haskell
+         base containers convertible fail filepath parsec template-haskell
        ];
        testHaskellDepends = [
          base containers stm tasty tasty-hunit tasty-quickcheck
@@ -270597,8 +277651,8 @@ self: {
      }:
      mkDerivation {
        pname = "yeshql-hdbc";
-       version = "4.1.0.2";
-       sha256 = "1p2j0fys7kdgb9882hiifnc1r4768c8jp7qy69ns1nbhd4f55b7l";
+       version = "4.2.0.0";
+       sha256 = "0j0himcx5wicynnckzzn5qfbvk68cd4lm8skdz1i9jkqa54vwq2z";
        libraryHaskellDepends = [
          base containers convertible filepath HDBC parsec template-haskell
          yeshql-core
@@ -270619,8 +277673,8 @@ self: {
      }:
      mkDerivation {
        pname = "yeshql-postgresql-simple";
-       version = "4.1.0.2";
-       sha256 = "0mpha4lwb8z89cqlqly6ipssx37abpq10wbrhl979gm25s9yp4ab";
+       version = "4.2.0.0";
+       sha256 = "1lmr7d6w68d10fkf43qdymm4qpy1lpyjmnqpd3nqv7v9vppc7zpm";
        libraryHaskellDepends = [
          base containers convertible filepath parsec postgresql-simple
          template-haskell yeshql-core
@@ -270661,18 +277715,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
        ];
@@ -270838,16 +277892,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;
@@ -271085,20 +278140,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";
@@ -271173,8 +278229,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 = [
@@ -271350,6 +278406,8 @@ self: {
        pname = "yesod-core";
        version = "1.6.18";
        sha256 = "1hm0frswqcj34scvapszdryjfmnrqq5fhf5hv7qcz8sj3qf46zkd";
+       revision = "1";
+       editedCabalFile = "14n8l28k6gykym9b3m9kw2j1m8dmiajxqgydpnrr7v75a64xqas9";
        libraryHaskellDepends = [
          aeson auto-update base blaze-html blaze-markup bytestring
          case-insensitive cereal clientsession conduit conduit-extra
@@ -271908,8 +278966,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-markdown";
-       version = "0.12.6.2";
-       sha256 = "0w9fmqk49b4c9g26dhrrmbwshrfcrnwcnsba97jyhb2m8bc4s1xj";
+       version = "0.12.6.3";
+       sha256 = "1q2zbb49248ppda5k5lxqnq8s5yf1mym05jwna59m0kfxp63xbj5";
        libraryHaskellDepends = [
          base blaze-html blaze-markup bytestring directory pandoc persistent
          shakespeare text xss-sanitize yesod-core yesod-form
@@ -271993,8 +279051,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-paginator";
-       version = "1.1.0.2";
-       sha256 = "0r0qprsr2nkhy2b44xixmys32hp3wwhp5x521jzpcrd1jc5x38s9";
+       version = "1.1.1.0";
+       sha256 = "06zbmklxpxlxy422k01phanj5zj940mm67gjn9vnz5lrs798q7cj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -272510,14 +279568,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
@@ -272530,8 +279588,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;
@@ -272647,8 +279706,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-test";
-       version = "1.6.9";
-       sha256 = "0v25lqq7hgd5lggnyfd9kamkzd4126rd7vlhc131n253n4by4yak";
+       version = "1.6.10";
+       sha256 = "0vw6yg5b22a6flbl822z23k0l23as5mmxjcdnj2zgjjv5i713yfx";
        libraryHaskellDepends = [
          aeson attoparsec base blaze-builder blaze-html bytestring
          case-insensitive conduit containers cookie hspec-core html-conduit
@@ -273926,6 +280985,39 @@ 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.1";
+       sha256 = "074iidhiwzajz207q4k7f8sdg6w4421qfwr2s905226jd2xm1680";
+       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;
+     }) {};
+
   "zenc" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -274002,8 +281094,8 @@ self: {
      }:
      mkDerivation {
        pname = "zeolite-lang";
-       version = "0.4.1.1";
-       sha256 = "0vhxlznprjmaf910j99s7yc0mjyk4jw6gdh49106v83xv3b5ak1m";
+       version = "0.8.0.0";
+       sha256 = "1ahr69w65hd70jc0jrc3dfz1gnjqxlg9w24djzm6826wskg31fa9";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -274021,38 +281113,34 @@ self: {
      }) {};
 
   "zephyr" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, ansi-wl-pprint, base
+    ({ mkDerivation, aeson, ansi-terminal, ansi-wl-pprint, async, base
      , base-compat, boxes, bytestring, containers, directory, filepath
      , formatting, Glob, hspec, hspec-core, HUnit, language-javascript
      , mtl, optparse-applicative, process, purescript, QuickCheck, safe
-     , text, transformers, transformers-base, transformers-compat
-     , utf8-string
+     , text, transformers, utf8-string
      }:
      mkDerivation {
        pname = "zephyr";
-       version = "0.2.1";
-       sha256 = "0yhpy1dwh1axbh3xgxn97vnh616pywz56r7gy6sfvqaxj9bqviha";
+       version = "0.3.2";
+       sha256 = "0p0n4p4792jdivgqdwf2brbkrw6b5rxfzfq9ph0sjw7h3gkj1was";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson ansi-terminal base base-compat boxes bytestring containers
-         directory filepath formatting Glob language-javascript mtl
-         optparse-applicative purescript safe text transformers
-         transformers-base transformers-compat utf8-string
+         aeson ansi-terminal base base-compat boxes containers formatting
+         language-javascript mtl purescript safe text
        ];
        executableHaskellDepends = [
-         aeson ansi-terminal ansi-wl-pprint base base-compat bytestring
-         containers directory filepath formatting Glob language-javascript
-         mtl optparse-applicative purescript text transformers
-         transformers-base transformers-compat utf8-string
+         aeson ansi-terminal ansi-wl-pprint async base bytestring containers
+         directory filepath formatting Glob language-javascript mtl
+         optparse-applicative purescript text transformers utf8-string
        ];
        testHaskellDepends = [
-         aeson ansi-terminal base base-compat bytestring containers
-         directory filepath hspec hspec-core HUnit language-javascript mtl
-         optparse-applicative process purescript QuickCheck text
-         transformers transformers-base transformers-compat utf8-string
+         aeson base base-compat containers directory hspec hspec-core HUnit
+         language-javascript mtl optparse-applicative process purescript
+         QuickCheck text transformers utf8-string
        ];
-       description = "Zephyr tree shaking for PureScript Language";
+       testToolDepends = [ purescript ];
+       description = "Zephyr, tree-shaking for the PureScript language";
        license = stdenv.lib.licenses.mpl20;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -274288,6 +281376,32 @@ self: {
        broken = true;
      }) {};
 
+  "zettelkast" = callPackage
+    ({ mkDerivation, base, containers, directory, filepath, lens, mtl
+     , optparse-generic, pandoc, pandoc-types, pointed, process, text
+     , time, transformers
+     }:
+     mkDerivation {
+       pname = "zettelkast";
+       version = "0.1.0.0";
+       sha256 = "111383ddpalaiwbq5plyi02v2givv21xnxb4j0fb31k8ssmkgbqj";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers directory filepath lens mtl pandoc pandoc-types
+         pointed process text time
+       ];
+       executableHaskellDepends = [
+         base containers directory lens optparse-generic process text time
+         transformers
+       ];
+       testHaskellDepends = [ base ];
+       description = "Command-line utility for working with zettelkast files";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "zifter" = callPackage
     ({ mkDerivation, ansi-terminal, async, base, colour, directory
      , exceptions, filepath, genvalidity, genvalidity-hspec
@@ -274461,6 +281575,8 @@ self: {
        pname = "zinza";
        version = "0.2";
        sha256 = "1sy4chm8zan0ixgvvq4vm3fzvhqykn315l333al84768nly9rjv8";
+       revision = "1";
+       editedCabalFile = "0pgrfx4vnc3m6rlmg5qj4skarq5y0ijz3swf3fyy57310lvifr0q";
        libraryHaskellDepends = [
          base containers parsec text transformers
        ];
@@ -274472,35 +281588,24 @@ self: {
        license = stdenv.lib.licenses.gpl2Plus;
      }) {};
 
-  "zip" = callPackage
-    ({ mkDerivation, base, bytestring, bzlib-conduit, case-insensitive
-     , cereal, conduit, conduit-extra, containers, digest, directory
-     , dlist, exceptions, filepath, hspec, monad-control, mtl
-     , QuickCheck, resourcet, temporary, text, time, transformers
-     , transformers-base
+  "zio" = callPackage
+    ({ mkDerivation, base, mtl, transformers, unexceptionalio
+     , unexceptionalio-trans
      }:
      mkDerivation {
-       pname = "zip";
-       version = "1.3.2";
-       sha256 = "0nmqp34w82wzlkip9zk05dy4yjnwy8dc2k7n1kq0rrdsb9zsc360";
-       isLibrary = true;
-       isExecutable = true;
+       pname = "zio";
+       version = "0.1.0.0";
+       sha256 = "001bkysr4n5azly7cmn7xbgw0bg00ib4yg83klz0k0b5217wg982";
        libraryHaskellDepends = [
-         base bytestring bzlib-conduit case-insensitive cereal conduit
-         conduit-extra containers digest directory dlist exceptions filepath
-         monad-control mtl resourcet text time transformers
-         transformers-base
+         base mtl transformers unexceptionalio unexceptionalio-trans
        ];
-       executableHaskellDepends = [ base filepath ];
        testHaskellDepends = [
-         base bytestring conduit containers directory dlist exceptions
-         filepath hspec QuickCheck temporary text time transformers
+         base mtl transformers unexceptionalio unexceptionalio-trans
        ];
-       description = "Operations on zip archives";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.mpl20;
      }) {};
 
-  "zip_1_5_0" = callPackage
+  "zip" = callPackage
     ({ mkDerivation, base, bytestring, bzlib-conduit, case-insensitive
      , cereal, conduit, conduit-extra, containers, digest, directory
      , dlist, exceptions, filepath, hspec, monad-control, mtl
@@ -274511,6 +281616,8 @@ self: {
        pname = "zip";
        version = "1.5.0";
        sha256 = "00lqf0bw6abxdj9rs658blbhabzr1fd1w9dh0qflyxqkd8fqj7h5";
+       revision = "1";
+       editedCabalFile = "08r12h84zp55lfqh53srmivf4xzyq2yyyiw12ja73ipnb0y2ag7i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -274526,7 +281633,6 @@ self: {
        ];
        description = "Operations on zip archives";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "zip-archive" = callPackage
@@ -274655,12 +281761,15 @@ self: {
      }) {};
 
   "zipper-extra" = callPackage
-    ({ mkDerivation, base, comonad, comonad-extras, split }:
+    ({ mkDerivation, base, comonad, comonad-extras, exceptions, split
+     }:
      mkDerivation {
        pname = "zipper-extra";
-       version = "0.1.0.1";
-       sha256 = "07bhmqjd743x2zjay0q29jfms8xlhk2awc38x75h0cym3agi1m5d";
-       libraryHaskellDepends = [ base comonad comonad-extras split ];
+       version = "0.1.3.1";
+       sha256 = "1n6amxaydfannxhgnbj5g315m96h5wvgrdw89n6761vii76csky4";
+       libraryHaskellDepends = [
+         base comonad comonad-extras exceptions split
+       ];
        description = "Zipper utils that weren't in Control.Comonad.Store.Zipper";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -274673,6 +281782,8 @@ self: {
        pname = "zippers";
        version = "0.3";
        sha256 = "0hrsgk8sh9g3438kl79131s6vjydhivgya04yxv3h70m7pky1dpm";
+       revision = "1";
+       editedCabalFile = "1pdlng2wnzqg2fbafp78mxp3whsy0683x14gzdnif7pmhpzs145f";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base fail lens profunctors semigroupoids semigroups
@@ -274746,10 +281857,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 = [
@@ -275039,36 +282148,36 @@ self: {
 
   "zre" = callPackage
     ({ mkDerivation, async, attoparsec, base, binary, bytestring
-     , config-ini, 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
+     , cereal, containers, data-default, directory, filepath
+     , 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.0.2";
-       sha256 = "09h1vsnm9p4yds8k4k7c5ixn8q6cikwkiw6wxf7srl9bbrwxhj9l";
+       version = "0.1.4.0";
+       sha256 = "1877q8qshp88sghnys6a52c6sjc9qxxg062j473fjyv0vc4cpy4d";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async attoparsec base binary bytestring config-ini containers
-         data-default directory filepath monad-control mtl network
-         network-bsd network-info network-multicast optparse-applicative
-         process random sockaddr stm text time transformers-base uuid
-         zeromq4-haskell
+         async attoparsec base binary bytestring cereal containers
+         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 repline stm
-         time
+         async base bytestring lifted-async monad-control mtl
+         optparse-applicative repline stm time
        ];
        testHaskellDepends = [
          base bytestring QuickCheck quickcheck-instances uuid
        ];
        description = "ZRE protocol implementation";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
+       maintainers = with stdenv.lib.maintainers; [ sorki ];
      }) {};
 
   "zsdd" = callPackage
@@ -275107,8 +282216,8 @@ self: {
      }:
      mkDerivation {
        pname = "zstd";
-       version = "0.1.1.2";
-       sha256 = "147s496zvw13akxqzg65mgfvk3bvhrcilxgf8n786prxg5cm4jz2";
+       version = "0.1.2.0";
+       sha256 = "0vjw8r11k9kj6c63sfkwz8akq0g32g1bv6n6clvs4g2j12zq1xk8";
        libraryHaskellDepends = [ base bytestring deepseq ghc-prim ];
        testHaskellDepends = [
          base bytestring QuickCheck test-framework
@@ -275145,8 +282254,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..8801f1f1ddd 100644
--- a/pkgs/development/haskell-modules/non-hackage-packages.nix
+++ b/pkgs/development/haskell-modules/non-hackage-packages.nix
@@ -10,10 +10,17 @@ 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 { };
 }
diff --git a/pkgs/development/haskell-modules/patches/proto-lens-0.5.1.0.patch b/pkgs/development/haskell-modules/patches/proto-lens-0.5.1.0.patch
deleted file mode 100644
index b50d3f1cdbf..00000000000
--- a/pkgs/development/haskell-modules/patches/proto-lens-0.5.1.0.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/src/Data/ProtoLens/Encoding/Parser/Internal.hs b/src/Data/ProtoLens/Encoding/Parser/Internal.hs
-index 30eeaad..f2703e7 100644
---- a/src/Data/ProtoLens/Encoding/Parser/Internal.hs
-+++ b/src/Data/ProtoLens/Encoding/Parser/Internal.hs
-@@ -1,4 +1,5 @@
- {-# LANGUAGE LambdaCase #-}
-+{-# LANGUAGE CPP #-}
- -- | Definition of the parsing monad, plus internal
- -- unsafe functions.
- module Data.ProtoLens.Encoding.Parser.Internal
-@@ -36,8 +37,11 @@ instance Applicative Parser where
-     (<*>) = ap
- 
- instance Monad Parser where
--    fail s = Parser $ \_ _ -> return $ ParseFailure s
-     return = pure
-     Parser f >>= g = Parser $ \end pos -> f end pos >>= \case
-         ParseSuccess pos' x -> unParser (g x) end pos'
-         ParseFailure s -> return $ ParseFailure s
-+#if MIN_VERSION_base(4,13,0)
-+instance MonadFail Parser where
-+#endif
-+    fail s = Parser $ \_ _ -> return $ ParseFailure s
diff --git a/pkgs/development/haskell-modules/patches/proto-lens-setup-0.4.0.2.patch b/pkgs/development/haskell-modules/patches/proto-lens-setup-0.4.0.2.patch
deleted file mode 100644
index a95df00e5db..00000000000
--- a/pkgs/development/haskell-modules/patches/proto-lens-setup-0.4.0.2.patch
+++ /dev/null
@@ -1,154 +0,0 @@
-diff --git a/src/Data/ProtoLens/Setup.hs b/src/Data/ProtoLens/Setup.hs
-index e68f32b..f381199 100644
---- a/src/Data/ProtoLens/Setup.hs
-+++ b/src/Data/ProtoLens/Setup.hs
-@@ -41,9 +41,6 @@ import Distribution.PackageDescription
-     , exeName
-     , exposedModules
-     , extraSrcFiles
--#if !MIN_VERSION_Cabal(2,0,0)
--    , hsSourceDirs
--#endif
- #if MIN_VERSION_Cabal(2,4,0)
-     , specVersion
- #endif
-@@ -53,7 +50,7 @@ import Distribution.PackageDescription
-     , testBuildInfo
-     , testName
-     )
--import qualified Distribution.Simple.BuildPaths as BuildPaths
-+import Distribution.Simple.BuildPaths (autogenComponentModulesDir)
- import Distribution.Simple.InstallDirs (datadir)
- import Distribution.Simple.LocalBuildInfo
-     ( LocalBuildInfo(..)
-@@ -61,9 +58,10 @@ import Distribution.Simple.LocalBuildInfo
-     , ComponentName(..)
-     , ComponentLocalBuildInfo
-     , componentPackageDeps
--#if MIN_VERSION_Cabal(2,0,0)
-     , allComponentsInBuildOrder
-     , componentNameMap
-+#if MIN_VERSION_Cabal(3,0,0)
-+    , LibraryName(..)
- #endif
-     )
- import qualified Distribution.Simple.PackageIndex as PackageIndex
-@@ -205,16 +203,6 @@ generatingSpecificProtos root getProtos hooks = hooks
-     { buildHook = \p l h f -> generate l >> buildHook hooks p l h f
-     , haddockHook = \p l h f -> generate l >> haddockHook hooks p l h f
-     , replHook = \p l h f args -> generate l >> replHook hooks p l h f args
--#if !MIN_VERSION_Cabal(2,0,0)
--    -- Older versions of Cabal don't support the autogen-modules field.
--    -- Work around it by manually generating the modules and putting them
--    -- in a place where `cabal sdist` will pick them up.
--    , sDistHook = \p maybe_l h f -> case maybe_l of
--            Nothing -> error "Can't run protoc; run 'cabal configure' first."
--            Just l -> do
--                        generate l
--                        sDistHook hooks (fudgePackageDesc l p) maybe_l h f
--#endif
-     , postCopy = \a flags pkg lbi -> do
-                   let verb = fromFlag $ copyVerbosity flags
-                   let destDir = datadir (absoluteInstallDirs pkg lbi
-@@ -316,39 +304,6 @@ copyProtosToDataDir verb root destDir files = do
- protoLensImportsPrefix :: FilePath
- protoLensImportsPrefix = "proto-lens-imports"
- 
--#if !MIN_VERSION_Cabal(2,0,0)
---- | Add the autogen directory to the hs-source-dirs of all the targets in the
---- .cabal file.  Used to fool 'sdist' by pointing it to the generated source
---- files.
--fudgePackageDesc :: LocalBuildInfo -> PackageDescription -> PackageDescription
--fudgePackageDesc lbi p = p
--    { library =
--        (\lib -> lib { libBuildInfo = fudgeBuildInfo CLibName $ libBuildInfo lib })
--            <$> library p
--    , executables =
--        (\exe -> exe { buildInfo = fudgeBuildInfo (CExeName $ exeName exe)
--                                        $ buildInfo exe })
--            <$> executables p
--    , testSuites =
--        (\test -> test { testBuildInfo = fudgeBuildInfo (CTestName $ testName test)
--                                            $ testBuildInfo test })
--            <$> testSuites p
--    , benchmarks =
--        (\bench -> bench { benchmarkBuildInfo =
--                              fudgeBuildInfo (CBenchName $ benchmarkName bench)
--                                  $ benchmarkBuildInfo bench })
--            <$> benchmarks p
--    }
--  where
--    comps = allComponents lbi
--    fudgeBuildInfo n bi
--        | Just compLBI <- Map.lookup n comps
--            = bi { hsSourceDirs = autogenComponentModulesDir lbi compLBI
--                                    : hsSourceDirs bi }
--        | otherwise = bi -- Could happen if a component isn't active; try
--                         -- anyway and see whether Cabal complains later on.
--#endif
--
- -- | Returns whether the @root@ is a parent folder of @f@.
- isSubdirectoryOf :: FilePath -> FilePath -> Bool
- isSubdirectoryOf root f
-@@ -423,15 +378,18 @@ collectActiveModules
- collectActiveModules l = map (\(n, c) -> (c, f n)) $ Map.toList $ allComponents l
-   where
-     p = localPkgDescr l
--    f CLibName = maybeToList (library p) >>=
-+#if MIN_VERSION_Cabal(3,0,0)
-+    f (CLibName LMainLibName)
-+#else
-+    f CLibName
-+#endif
-+        = maybeToList (library p) >>=
-                     \lib -> exposedModules lib
-                                 ++ otherModules (libBuildInfo lib)
-     f (CExeName n) = otherModules . buildInfo $ exes Map.! n
-     f (CTestName n) = otherModules . testBuildInfo $ tests Map.! n
-     f (CBenchName n) = otherModules . benchmarkBuildInfo $ benchs Map.! n
--#if MIN_VERSION_Cabal(2,0,0)
-     f _ = []  -- TODO: other lib kinds; for now just suppress the warning
--#endif
-     exes = Map.fromList [(exeName e, e) | e <- executables p]
-     tests = Map.fromList [(testName e, e) | e <- testSuites p]
-     benchs = Map.fromList [(benchmarkName e, e) | e <- benchmarks p]
-@@ -441,22 +399,14 @@ collectActiveModules l = map (\(n, c) -> (c, f n)) $ Map.toList $ allComponents
- 
- -- | List all the packages that this one depends on.
- collectDeps :: LocalBuildInfo -> [InstalledPackageInfo.InstalledPackageInfo]
--#if MIN_VERSION_Cabal(2,0,0)
- collectDeps l = do
-     c <- allComponentsInBuildOrder l
-     (i,_) <- componentPackageDeps c
-     Just p <- [PackageIndex.lookupUnitId (installedPkgs l) i]
-     return p
--#else
--collectDeps l = do
--    (_, c ,_) <- componentsConfigs l
--    (_, i) <- componentPackageDeps c
--    PackageIndex.lookupSourcePackageId (installedPkgs l) i
--#endif
- 
- -- | All the components that will be built by this Cabal command.
- allComponents :: LocalBuildInfo -> Map.Map ComponentName ComponentLocalBuildInfo
--#if MIN_VERSION_Cabal(2,0,0)
- allComponents l = fmap requireOne $ componentNameMap l
-   where
-     -- TODO: this doesn't support Backpack, which can have more than one
-@@ -464,16 +414,3 @@ allComponents l = fmap requireOne $ componentNameMap l
-     requireOne [x] = x
-     requireOne xs = error $ "Data.ProtoLens.Setup.allComponents: expected one "
-                           ++ "component per name, got " ++ show xs
--
--#else
--allComponents l = Map.fromList [(c, b) | (c, b, _) <- componentsConfigs l]
--#endif
--
---- | Get the component-level "autogen" directory where we're putting the
---- generated .hs files.  (For Cabal-1.0, use the shared 'BuildPaths.autogenModulesDir'.)
--autogenComponentModulesDir :: LocalBuildInfo -> ComponentLocalBuildInfo -> FilePath
--#if MIN_VERSION_Cabal(2,0,0)
--autogenComponentModulesDir = BuildPaths.autogenComponentModulesDir
--#else
--autogenComponentModulesDir lbi _ = BuildPaths.autogenModulesDir lbi
--#endif
diff --git a/pkgs/development/haskell-modules/with-packages-wrapper.nix b/pkgs/development/haskell-modules/with-packages-wrapper.nix
index 08119018874..dc105c845d7 100644
--- a/pkgs/development/haskell-modules/with-packages-wrapper.nix
+++ b/pkgs/development/haskell-modules/with-packages-wrapper.nix
@@ -105,6 +105,18 @@ symlinkJoin {
         --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
     fi
 
+    # 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
+    done
+
   '' + (lib.optionalString (stdenv.targetPlatform.isDarwin && !isGhcjs && !stdenv.targetPlatform.isiOS) ''
     # Work around a linker limit in macOS Sierra (see generic-builder.nix):
     local packageConfDir="$out/lib/${ghc.name}/package.conf.d";
@@ -113,7 +125,7 @@ symlinkJoin {
     # Clean up the old links that may have been (transitively) included by
     # symlinkJoin:
     rm -f $dynamicLinksDir/*
-    for d in $(grep dynamic-library-dirs $packageConfDir/*|awk '{print $2}'|sort -u); do
+    for d in $(grep -Poz "dynamic-library-dirs:\s*\K .+\n" $packageConfDir/*|awk '{print $2}'|sort -u); do
       ln -s $d/*.dylib $dynamicLinksDir
     done
     for f in $packageConfDir/*.conf; do
@@ -123,7 +135,7 @@ symlinkJoin {
       # $dynamicLinksDir
       cp $f $f-tmp
       rm $f
-      sed "s,dynamic-library-dirs: .*,dynamic-library-dirs: $dynamicLinksDir," $f-tmp > $f
+      sed "N;s,dynamic-library-dirs:\s*.*,dynamic-library-dirs: $dynamicLinksDir," $f-tmp > $f
       rm $f-tmp
     done
   '') + ''
diff --git a/pkgs/development/idris-modules/idris-wrapper.nix b/pkgs/development/idris-modules/idris-wrapper.nix
index 4e1d2f9c82e..68a1a0f267a 100644
--- a/pkgs/development/idris-modules/idris-wrapper.nix
+++ b/pkgs/development/idris-modules/idris-wrapper.nix
@@ -7,7 +7,7 @@ symlinkJoin {
   postBuild = ''
     wrapProgram $out/bin/idris \
       --run 'export IDRIS_CC=''${IDRIS_CC:-${stdenv.cc}/bin/cc}' \
-      --set NIX_CC_WRAPPER_${stdenv.cc.infixSalt}_TARGET_HOST 1 \
+      --set 'NIX_CC_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}' 1 \
       --prefix NIX_CFLAGS_COMPILE " " "-I${lib.getDev gmp}/include" \
       --prefix NIX_CFLAGS_LINK " " "-L${lib.getLib gmp}/lib"
   '';
diff --git a/pkgs/development/idris-modules/sdl2.nix b/pkgs/development/idris-modules/sdl2.nix
index 606b5a38a5f..2e1cdaa9be3 100644
--- a/pkgs/development/idris-modules/sdl2.nix
+++ b/pkgs/development/idris-modules/sdl2.nix
@@ -24,7 +24,7 @@ build-idris-package rec {
     owner = "steshaw";
     repo = "idris-sdl2";
     rev = version;
-    sha256 = "sha256:1jslnlzyw04dcvcd7xsdjqa7waxzkm5znddv76sv291jc94xhl4a";
+    sha256 = "0hqhg7l6wpkdbzrdjvrbqymmahziri07ba0hvbii7dd2p0h248fv";
   };
 
   meta = {
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/TDEPS-150.patch b/pkgs/development/interpreters/clojure/TDEPS-150.patch
deleted file mode 100644
index 611134e8e3f..00000000000
--- a/pkgs/development/interpreters/clojure/TDEPS-150.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- a/clojure
-+++ b/clojure
-@@ -317,17 +317,17 @@ if "$stale" || "$pom"; then
-     tools_args+=("--threads" "$threads")
-   fi
-   if "$trace"; then
-     tools_args+=("--trace")
-   fi
- fi
-
- # If stale, run make-classpath to refresh cached classpath
--if [[ "$stale" = true && "$describe" = false ]]; then
-+if [[ "$stale" = true && "$describe" = false && -z "$force_cp" ]]; then
-   if "$verbose"; then
-     echo "Refreshing classpath"
-   fi
-
-   "$JAVA_CMD" -classpath "$tools_cp" clojure.main -m clojure.tools.deps.alpha.script.make-classpath2 --config-user "$config_user" --config-project "$config_project" --libs-file "$libs_file" --cp-file "$cp_file" --jvm-file "$jvm_file" --main-file "$main_file" "${tools_args[@]}"
- fi
-
- if "$describe"; then
---
-2.25.0
diff --git a/pkgs/development/interpreters/clojure/babashka.nix b/pkgs/development/interpreters/clojure/babashka.nix
index 86c7938db04..c023aa65fda 100644
--- a/pkgs/development/interpreters/clojure/babashka.nix
+++ b/pkgs/development/interpreters/clojure/babashka.nix
@@ -3,17 +3,17 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "babashka";
-  version = "0.0.94";
+  version = "0.0.97";
 
   reflectionJson = fetchurl {
     name = "reflection.json";
     url = "https://github.com/borkdude/${pname}/releases/download/v${version}/${pname}-${version}-reflection.json";
-    sha256 = "103x5ih48rhhdipar66bp0s0j62fv4r3sszh8fwaivs7dvsvcvsd";
+    sha256 = "1gd9ih9l02n1j9qkbxb36d3cb5sddwvxiw8kkicgc4xig77lsa7z";
   };
 
   src = fetchurl {
     url = "https://github.com/borkdude/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
-    sha256 = "0fin80x898qzylzq91q6mp8pgwk0sciwwa9l71mdhahqasa90sri";
+    sha256 = "08py6bawfrhg90fbcnv2mq4c91g5wa1q2q6zdjy2i1b9q4x1654r";
   };
 
   dontUnpack = true;
@@ -53,14 +53,14 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "A Clojure babushka for the grey areas of Bash";
     longDescription = ''
-      The main idea behind babashka is to leverage Clojure in places where you 
+      The main idea behind babashka is to leverage Clojure in places where you
       would be using bash otherwise.
 
       As one user described it:
 
-          I’m quite at home in Bash most of the time, but there’s a substantial 
-          grey area of things that are too complicated to be simple in bash, but 
-          too simple to be worth writing a clj/s script for. Babashka really 
+          I’m quite at home in Bash most of the time, but there’s a substantial
+          grey area of things that are too complicated to be simple in bash, but
+          too simple to be worth writing a clj/s script for. Babashka really
           seems to hit the sweet spot for those cases.
 
     Goals:
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
     - Easy installation: grab the self-contained binary and run. No JVM needed.
     - Familiarity and portability:
       - Scripts should be compatible with JVM Clojure as much as possible
-      - Scripts should be platform-independent as much as possible. Babashka 
+      - Scripts should be platform-independent as much as possible. Babashka
         offers support for linux, macOS and Windows.
     - Allow interop with commonly used classes like java.io.File and System
     - Multi-threading support (pmap, future, core.async)
diff --git a/pkgs/development/interpreters/clojure/default.nix b/pkgs/development/interpreters/clojure/default.nix
index e8c3e7b098a..53cef387ae4 100644
--- a/pkgs/development/interpreters/clojure/default.nix
+++ b/pkgs/development/interpreters/clojure/default.nix
@@ -1,34 +1,38 @@
-{ stdenv, fetchurl, jdk11, rlwrap, makeWrapper }:
+{ stdenv, fetchurl, installShellFiles, jdk11, rlwrap, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "clojure";
-  version = "1.10.1.507";
+  version = "1.10.1.645";
 
   src = fetchurl {
     url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
-    sha256 = "1k0jwa3481g3mkalwlb9gkcz9aq9zjpwmzckv823fr2d8djp41cc";
+    sha256 = "1z6a9an8ls992y4japmzdxay7c5d2z9s2q1xl4g615r23jwpcsf9";
   };
 
-  patches = [ ./TDEPS-150.patch ];
-
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [
+    installShellFiles
+    makeWrapper
+  ];
 
   installPhase =
     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
+    '';
 
   doInstallCheck = true;
   installCheckPhase = ''
diff --git a/pkgs/development/interpreters/dhall/build-dhall-directory-package.nix b/pkgs/development/interpreters/dhall/build-dhall-directory-package.nix
new file mode 100644
index 00000000000..b4401a85d14
--- /dev/null
+++ b/pkgs/development/interpreters/dhall/build-dhall-directory-package.nix
@@ -0,0 +1,25 @@
+{ buildDhallPackage, lib }:
+
+# This is a minor variation on `buildDhallPackage` that splits the `code`
+# argument into `src` and `file` in such a way that you can easily override
+# the `file`
+#
+# This function is used by `dhall-to-nixpkgs` when given a directory
+lib.makeOverridable
+  ( { # Arguments passed through to `buildDhallPackage`
+      name
+    , dependencies ? []
+    , source ? false
+
+    , src
+    , # The file to import, relative to the root directory
+      file ? "package.dhall"
+    }:
+
+    buildDhallPackage {
+      inherit name dependencies source;
+
+      code = "${src}/${file}";
+    }
+  )
+
diff --git a/pkgs/development/interpreters/dhall/build-dhall-github-package.nix b/pkgs/development/interpreters/dhall/build-dhall-github-package.nix
new file mode 100644
index 00000000000..9289e9b656d
--- /dev/null
+++ b/pkgs/development/interpreters/dhall/build-dhall-github-package.nix
@@ -0,0 +1,50 @@
+{ buildDhallPackage, fetchFromGitHub, lib }:
+
+# This function is used by `dhall-to-nixpkgs` when given a GitHub repository
+lib.makeOverridable
+  ( { # Arguments passed through to `buildDhallPackage`
+      name
+    , dependencies ? []
+    , source ? false
+
+    , # The directory containing the Dhall files, if other than the root of the
+      # repository
+      directory ? ""
+    , # The file to import, relative to the above directory
+      file ? "package.dhall"
+
+      # Arguments passed through to `fetchFromGitHub`
+    , owner
+    , repo
+    , rev
+      # Extra arguments passed through to `fetchFromGitHub`, such as the hash
+      # or `fetchSubmodules`
+    , ...
+    }@args:
+
+    buildDhallPackage {
+      inherit name dependencies source;
+
+      code =
+        let
+          src = fetchFromGitHub ({
+            name = "${name}-source";
+
+            inherit owner repo rev;
+          } // removeAttrs args [
+            "name"
+            "dependencies"
+            "source"
+            "directory"
+            "file"
+            "owner"
+            "repo"
+            "rev"
+          ]);
+
+          prefix = lib.optionalString (directory != "") "${directory}/";
+
+        in
+          "${src}/${prefix}${file}";
+    }
+  )
diff --git a/pkgs/development/interpreters/eff/default.nix b/pkgs/development/interpreters/eff/default.nix
index c848ebc6047..cfd3bbbda4c 100644
--- a/pkgs/development/interpreters/eff/default.nix
+++ b/pkgs/development/interpreters/eff/default.nix
@@ -14,6 +14,10 @@ stdenv.mkDerivation {
     sha256 = "1fslfj5d7fhj3f7kh558b8mk5wllwyq4rnhfkyd96fpy144sdcka";
   };
 
+  postPatch = ''
+    substituteInPlace setup.ml --replace js_of_ocaml.ocamlbuild js_of_ocaml-ocamlbuild
+  '';
+
   buildInputs = [ which ] ++ (with ocamlPackages; [
     ocaml findlib ocamlbuild menhir js_of_ocaml js_of_ocaml-ocamlbuild
   ]);
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/gauche/default.nix b/pkgs/development/interpreters/gauche/default.nix
index 26a30ef2cd3..58653fae890 100644
--- a/pkgs/development/interpreters/gauche/default.nix
+++ b/pkgs/development/interpreters/gauche/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     "--with-iconv=${libiconv}"
     "--with-dbm=gdbm"
     "--with-zlib=${zlib}"
-    "--with-ca-bundle=$NIX_SSL_CERT_FILE"
+    "--with-ca-bundle=${cacert}/etc/ssl/certs/ca-bundle.crt"
     # TODO: Enable slib
     #       Current slib in nixpkgs is specialized to Guile
     # "--with-slib=${slibGuile}/lib/slib"
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 c3d5221d42a..8e6b434281e 100644
--- a/pkgs/development/interpreters/j/default.nix
+++ b/pkgs/development/interpreters/j/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchFromGitHub, readline, libedit, bc }:
+{ stdenv, fetchFromGitHub, readline, libedit, bc
+, avxSupport ? false
+}:
 
 stdenv.mkDerivation rec {
   pname = "j";
@@ -19,6 +21,9 @@ stdenv.mkDerivation rec {
     if stdenv.isLinux then "linux" else
     if stdenv.isDarwin then "darwin" else
     "unknown";
+  variant = if stdenv.isx86_64 && avxSupport then "avx" else "";
+
+  j64x="j${bits}${variant}";
 
   doCheck = true;
 
@@ -34,7 +39,7 @@ stdenv.mkDerivation rec {
     patchShebangs .
     sed -i $JLIB/bin/profile.ijs -e "s@'/usr/share/j/.*'@'$out/share/j'@;"
 
-    ./build_all.sh
+    j64x="${j64x}" ./build_all.sh
 
     cp $SOURCE_DIR/bin/${platform}/j${bits}*/* "$JLIB/bin"
   '';
diff --git a/pkgs/development/interpreters/janet/default.nix b/pkgs/development/interpreters/janet/default.nix
index 828cf3a7244..52d0b371915 100644
--- a/pkgs/development/interpreters/janet/default.nix
+++ b/pkgs/development/interpreters/janet/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "janet";
-  version = "1.8.1";
+  version = "1.10.1";
 
   src = fetchFromGitHub {
     owner = "janet-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1v2kgbx6w1ii83a1c9ridm1i52rmcjb0g1d23fhqn7hya5bwrhr6";
+    sha256 = "18k6dzxzr149p0bby4r0z6kybylig87rwj7gk3z6a98zf6k4xmsw";
   };
 
   nativeBuildInputs = [ meson ninja ];
diff --git a/pkgs/development/interpreters/joker/default.nix b/pkgs/development/interpreters/joker/default.nix
index 39588a0c363..7f773882d8f 100644
--- a/pkgs/development/interpreters/joker/default.nix
+++ b/pkgs/development/interpreters/joker/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "joker";
-  version = "0.15.3";
+  version = "0.15.6";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "candid82";
     repo = "joker";
-    sha256 = "1pxj6flyhf522zjab1dfvxfajyx3v3rzs7l8ma7ma6b8zmwp2wdn";
+    sha256 = "1yi9q8ibia6gz6s30i3bjrbmlhj6knrb3d73113dxrs8abi1mkbh";
   };
 
-  modSha256 = "165mjfjk4x95ckw7wg96bg9pzb3297sggnip38nz2jxxbqr0ff8b";
+  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 ];
   };
 }
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..e96a7c604c7 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-05";
+  rev = "2211f6f";
   isStable = true;
-  sha256 = "0k843z90s4hi0qhri6ixy8sv21nig8jwbznpqgqg845ji530kqj7";
+  sha256 = "01adxmknq2xyb3w9sn8ilnar8181h7ksd9i80yrsbwzix5lwkn6m";
   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..f08bbd0e972 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-05";
+  rev = "10ddae7";
   isStable = false;
-  sha256 = "1zw1yr0375d6jr5x20zvkvk76hkaqamjynbswpl604w6r6id070b";
+  sha256 = "1lmjs0gz9vgbhh5f45jvvibpj7f3sz81r8cz4maln9yhc67f2zmk";
 }
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 cc43a7d2f85..8f539d23392 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.2"; # Mar 21, 2020
+    crossVersion = "1.3.4"; # Jun 2, 2020
 
     perl-cross-src = fetchurl {
       url = "https://github.com/arsv/perl-cross/archive/${crossVersion}.tar.gz";
-      sha256 = "1283crdjsyi45mgdiak4jmy907mqn09frxzxp21b18hvxmfn4smq";
+      sha256 = "15wvlafhpsh9h66s3vazhx46hf8ik75473acrvf6722ijd1wpz45";
     };
 
     depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ];
@@ -194,23 +199,23 @@ in {
   perl528 = common {
     perl = pkgs.perl528;
     buildPerl = buildPackages.perl528;
-    version = "5.28.2";
-    sha256 = "1iynpsxdym4h76kgndmn3ykvwxhqz444xvaz8z2irsxkvmnlb5da";
+    version = "5.28.3";
+    sha256 = "052if351m81yhaab429i1kv77v9b15qm0g48kr6y2yjrc7bc3jdg";
   };
 
   # Maint version
   perl530 = common {
     perl = pkgs.perl530;
     buildPerl = buildPackages.perl530;
-    version = "5.30.2";
-    sha256 = "128nfdxcvxfn5kq55qcfrx2851ys8hv794dcdxbyny8rm7w7vnv6";
+    version = "5.30.3";
+    sha256 = "0vs0wwwlw47sswxaflkk4hw0y45cmc7arxx788kwpbminy5lrq1j";
   };
 
   # the latest Devel version
   perldevel = common {
     perl = pkgs.perldevel;
     buildPerl = buildPackages.perldevel;
-    version = "5.31.10";
-    sha256 = "1gvv5zs54gzb947x7ryjkaalm9rbqf8l8hwjwdm9lbfgkpg07kny";
+    version = "5.32.0-RC0";
+    sha256 = "02i6n1xa4j0ksp014yy8q0j7scjcy5mr0yd4iash2ryrrfv5yw5k";
   };
 }
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 8ccb0e54641..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
+    , systemd, system-sendmail, valgrind, xcbuild
 
     , version
     , sha256
@@ -42,7 +42,7 @@ let
         # consecutive calls to buildEnv and overrides to work as
         # expected.
         mkBuildEnv = prevArgs: prevExtensionFunctions: lib.makeOverridable (
-          { extensions ? ({...}: []), extraConfig ? "", ... }@innerArgs:
+          { extensions ? ({ enabled, ... }: enabled), extraConfig ? "", ... }@innerArgs:
             let
               allArgs = args // prevArgs // innerArgs;
               filteredArgs = builtins.removeAttrs allArgs [ "extensions" "extraConfig" ];
@@ -55,8 +55,8 @@ let
               allExtensionFunctions = prevExtensionFunctions ++ [ extensions ];
               enabledExtensions =
                 builtins.foldl'
-                  (state: f:
-                    f { enabled = state; all = php-packages.extensions; })
+                  (enabled: f:
+                    f { inherit enabled; all = php-packages.extensions; })
                   []
                   allExtensionFunctions;
 
@@ -143,7 +143,8 @@ let
 
           enableParallelBuilding = true;
 
-          nativeBuildInputs = [ autoconf automake bison flex libtool pkgconfig re2c ];
+          nativeBuildInputs = [ autoconf automake bison flex libtool pkgconfig re2c ]
+            ++ lib.optional stdenv.isDarwin xcbuild;
 
           buildInputs =
             # PCRE extension
@@ -177,7 +178,10 @@ let
             ++ lib.optional (!cliSupport) "--disable-cli"
             ++ lib.optional fpmSupport    "--enable-fpm"
             ++ lib.optional pearSupport [ "--with-pear=$(out)/lib/php/pear" "--enable-xml" "--with-libxml" ]
-            ++ lib.optional (pearSupport && (lib.versionOlder version "7.4")) "--enable-libxml"
+            ++ lib.optionals (pearSupport && (lib.versionOlder version "7.4")) [
+              "--enable-libxml"
+              "--with-libxml-dir=${libxml2.dev}"
+            ]
             ++ lib.optional pharSupport   "--enable-phar"
             ++ lib.optional phpdbgSupport "--enable-phpdbg"
 
@@ -191,13 +195,18 @@ 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" ];
 
-          preConfigure = ''
-            # Don't record the configure flags since this causes unnecessary
-            # runtime dependencies
+          preConfigure =
+          # Don't record the configure flags since this causes unnecessary
+          # runtime dependencies
+          ''
             for i in main/build-defs.h.in scripts/php-config.in; do
               substituteInPlace $i \
                 --replace '@CONFIGURE_COMMAND@' '(omitted)' \
@@ -206,7 +215,14 @@ let
             done
 
             export EXTENSION_DIR=$out/lib/php/extensions
-
+          ''
+          # PKG_CONFIG need not be a relative path
+          + lib.optionalString (! lib.versionAtLeast version "7.4") ''
+            for i in $(find . -type f -name "*.m4"); do
+              substituteInPlace $i \
+                --replace 'test -x "$PKG_CONFIG"' 'type -P "$PKG_CONFIG" >/dev/null'
+            done
+          '' + ''
             ./buildconf --copy --force
 
             if test -f $src/genfiles; then
@@ -255,25 +271,17 @@ let
           };
         };
 
-  php72base = callPackage generic (_args // {
-    version = "7.2.29";
-    sha256 = "08xry2fgqgg8s0ym1hh11wkbr36av3zq1bn4krbciw1b7x8gb8ga";
-
-    # https://bugs.php.net/bug.php?id=76826
-    extraPatches = lib.optional stdenv.isDarwin ./php72-darwin-isfinite.patch;
-  });
-
   php73base = callPackage generic (_args // {
-    version = "7.3.16";
-    sha256 = "0bh499v9dfgh9k51w4rird1slb9rh9whp5h37fb84c98d992s1xq";
+    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.4";
-    sha256 = "17w2m4phhpj76x5fx67vgjrlkcczqvky3f5in1kjg2pch90qz3ih";
+    version = "7.4.8";
+    sha256 = "0ql01sfg8l7y2bfwmnjxnfw9irpibnz57ssck24b00y00nkd6j3a";
   });
 
   defaultPhpExtensions = { all, ... }: with all; ([
@@ -289,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/php/zlib-darwin-tests.patch b/pkgs/development/interpreters/php/zlib-darwin-tests.patch
new file mode 100644
index 00000000000..ef61f0a8784
--- /dev/null
+++ b/pkgs/development/interpreters/php/zlib-darwin-tests.patch
@@ -0,0 +1,44 @@
+diff --git a/ext/zlib/tests/bug55544.phpt b/ext/zlib/tests/bug55544.phpt
+index a0d22f4fcebf4846da6781f424f87821626de5ea..e650fe6909f555d04834f4c08f7fd0d354b783e2 100644
+--- a/ext/zlib/tests/bug55544.phpt
++++ b/ext/zlib/tests/bug55544.phpt
+@@ -6,6 +6,9 @@ extension_loaded("zlib") or die("skip");
+ if (substr(PHP_OS, 0, 3) == 'WIN') {
+        die("skip not for windows");
+ }
++if (PHP_OS == "Darwin") {
++       die("skip not for darwin");
++}
+ ?>
+ --INI--
+ output_handler=ob_gzhandler
+diff --git a/ext/zlib/tests/gzencode_variation1.phpt b/ext/zlib/tests/gzencode_variation1.phpt
+index c966b2cbc5b7..2f953168fa22 100644
+--- a/ext/zlib/tests/gzencode_variation1.phpt
++++ b/ext/zlib/tests/gzencode_variation1.phpt
+@@ -10,6 +10,10 @@ if( substr(PHP_OS, 0, 3) == "WIN" ) {
+ if (!extension_loaded("zlib")) {
+ 	print "skip - ZLIB extension not loaded";
+ }
++
++if (PHP_OS == "Darwin") {
++    print "skip - OS is encoded in headers, tested header is non Darwin";
++}
+ ?>
+ --FILE--
+ <?php
+diff --git a/ext/zlib/tests/gzencode_variation2.phpt b/ext/zlib/tests/gzencode_variation2.phpt
+index 94ac42a5f1cd..9160cf519751 100644
+--- a/ext/zlib/tests/gzencode_variation2.phpt
++++ b/ext/zlib/tests/gzencode_variation2.phpt
+@@ -10,6 +10,10 @@ if( substr(PHP_OS, 0, 3) == "WIN" ) {
+ if (!extension_loaded("zlib")) {
+ 	print "skip - ZLIB extension not loaded";
+ }
++
++if (PHP_OS == "Darwin") {
++    print "skip - OS is encoded in headers, tested header is non Darwin";
++}
+ ?>
+ --FILE--
+ <?php
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 696be2136ec..2cfaa69a4c8 100644
--- a/pkgs/development/interpreters/python/cpython/2.7/default.nix
+++ b/pkgs/development/interpreters/python/cpython/2.7/default.nix
@@ -12,6 +12,7 @@
 , zlib
 , self
 , configd, coreutils
+, autoreconfHook
 , python-setup-hook
 # Some proprietary libs assume UCS2 unicode, especially on darwin :(
 , ucsEncoding ? 4
@@ -22,6 +23,7 @@
 , sha256
 , passthruFun
 , static ? false
+, enableOptimizations ? (!stdenv.isDarwin)
 }:
 
 assert x11Support -> tcl != null
@@ -85,6 +87,12 @@ let
       # backported in debian since 2013.
       # https://bugs.python.org/issue13146
       ./atomic_pyc.patch
+
+      # 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 [
@@ -134,7 +142,9 @@ let
         --replace 'os.popen(comm)' 'os.popen("${coreutils}/bin/nproc")'
     '';
 
-  configureFlags = [
+  configureFlags = optionals enableOptimizations [
+    "--enable-optimizations"
+  ] ++ [
     "--enable-shared"
     "--with-threads"
     "--enable-unicode=ucs${toString ucsEncoding}"
@@ -182,8 +192,9 @@ let
     ++ optionals x11Support [ tcl tk xlibsWrapper libX11 ]
     ++ optional (stdenv.isDarwin && configd != null) configd;
   nativeBuildInputs =
-    optionals (stdenv.hostPlatform != stdenv.buildPlatform)
-    [ buildPackages.stdenv.cc buildPackages.python ];
+    [ autoreconfHook ]
+    ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform)
+      [ buildPackages.stdenv.cc buildPackages.python ];
 
   mkPaths = paths: {
     C_INCLUDE_PATH = makeSearchPathOutput "dev" "include" paths;
diff --git a/pkgs/development/interpreters/python/cpython/2.7/profile-task.patch b/pkgs/development/interpreters/python/cpython/2.7/profile-task.patch
new file mode 100644
index 00000000000..9c085657ac9
--- /dev/null
+++ b/pkgs/development/interpreters/python/cpython/2.7/profile-task.patch
@@ -0,0 +1,21 @@
+Backport from CPython 3.8 of a good list of tests to run for PGO.
+
+Upstream commit:
+  https://github.com/python/cpython/commit/4e16a4a31
+
+Upstream discussion:
+  https://bugs.python.org/issue36044
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index 00fdd21ce..713dc1e53 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -259,7 +259,7 @@ TCLTK_LIBS=
+ # The task to run while instrumented when building the profile-opt target.
+ # We exclude unittests with -x that take a rediculious amount of time to
+ # run in the instrumented training build or do not provide much value.
+-PROFILE_TASK=-m test.regrtest --pgo -x test_asyncore test_gdb test_multiprocessing test_subprocess
++PROFILE_TASK=-m test.regrtest --pgo test_array test_base64 test_binascii test_binop test_bisect test_bytes test_bz2 test_cmath test_codecs test_collections test_complex test_dataclasses test_datetime test_decimal test_difflib test_embed test_float test_fstring test_functools test_generators test_hashlib test_heapq test_int test_itertools test_json test_long test_lzma test_math test_memoryview test_operator test_ordered_dict test_pickle test_pprint test_re test_set test_sqlite test_statistics test_struct test_tabnanny test_time test_unicode test_xml_etree test_xml_etree_c
+ 
+ # report files for gcov / lcov coverage report
+ COVERAGE_INFO= $(abs_builddir)/coverage.info
diff --git a/pkgs/development/interpreters/python/cpython/3.5/profile-task.patch b/pkgs/development/interpreters/python/cpython/3.5/profile-task.patch
new file mode 100644
index 00000000000..39d5587379c
--- /dev/null
+++ b/pkgs/development/interpreters/python/cpython/3.5/profile-task.patch
@@ -0,0 +1,21 @@
+Backport from CPython 3.8 of a good list of tests to run for PGO.
+
+Upstream commit:
+  https://github.com/python/cpython/commit/4e16a4a31
+
+Upstream discussion:
+  https://bugs.python.org/issue36044
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index 00fdd21ce..713dc1e53 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -259,7 +259,7 @@ TCLTK_LIBS=
+ # The task to run while instrumented when building the profile-opt target.
+ # We exclude unittests with -x that take a rediculious amount of time to
+ # run in the instrumented training build or do not provide much value.
+-PROFILE_TASK=-m test.regrtest --pgo -x test_asyncore test_gdb test_multiprocessing_fork test_multiprocessing_forkserver test_multiprocessing_main_handling test_multiprocessing_spawn test_subprocess
++PROFILE_TASK=-m test.regrtest --pgo test_array test_base64 test_binascii test_binop test_bisect test_bytes test_bz2 test_cmath test_codecs test_collections test_complex test_dataclasses test_datetime test_decimal test_difflib test_embed test_float test_fstring test_functools test_generators test_hashlib test_heapq test_int test_itertools test_json test_long test_lzma test_math test_memoryview test_operator test_ordered_dict test_pickle test_pprint test_re test_set test_sqlite test_statistics test_struct test_tabnanny test_time test_unicode test_xml_etree test_xml_etree_c
+ 
+ # report files for gcov / lcov coverage report
+ COVERAGE_INFO= $(abs_builddir)/coverage.info
diff --git a/pkgs/development/interpreters/python/cpython/3.6/profile-task.patch b/pkgs/development/interpreters/python/cpython/3.6/profile-task.patch
new file mode 100644
index 00000000000..df55da3a413
--- /dev/null
+++ b/pkgs/development/interpreters/python/cpython/3.6/profile-task.patch
@@ -0,0 +1,21 @@
+Backport from CPython 3.8 of a good list of tests to run for PGO.
+
+Upstream commit:
+  https://github.com/python/cpython/commit/4e16a4a31
+
+Upstream discussion:
+  https://bugs.python.org/issue36044
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index 00fdd21ce..713dc1e53 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -259,7 +259,7 @@ TCLTK_LIBS=
+ # The task to run while instrumented when building the profile-opt target.
+ # We exclude unittests with -x that take a rediculious amount of time to
+ # run in the instrumented training build or do not provide much value.
+-PROFILE_TASK=-m test.regrtest --pgo
++PROFILE_TASK=-m test.regrtest --pgo test_array test_base64 test_binascii test_binop test_bisect test_bytes test_bz2 test_cmath test_codecs test_collections test_complex test_dataclasses test_datetime test_decimal test_difflib test_embed test_float test_fstring test_functools test_generators test_hashlib test_heapq test_int test_itertools test_json test_long test_lzma test_math test_memoryview test_operator test_ordered_dict test_pickle test_pprint test_re test_set test_sqlite test_statistics test_struct test_tabnanny test_time test_unicode test_xml_etree test_xml_etree_c
+ 
+ # report files for gcov / lcov coverage report
+ COVERAGE_INFO= $(abs_builddir)/coverage.info
diff --git a/pkgs/development/interpreters/python/cpython/3.7/fix-hardcoded-path-checking-for-rpmbuild.patch b/pkgs/development/interpreters/python/cpython/3.7/fix-hardcoded-path-checking-for-rpmbuild.patch
new file mode 100644
index 00000000000..bb3d992612d
--- /dev/null
+++ b/pkgs/development/interpreters/python/cpython/3.7/fix-hardcoded-path-checking-for-rpmbuild.patch
@@ -0,0 +1,30 @@
+From a612c481f6116955d420db5ae1fe4c1eb93eb2f2 Mon Sep 17 00:00:00 2001
+From: Marcin Niemira <marcin.niemira@gmail.com>
+Date: Sun, 9 Jun 2019 07:05:06 +1000
+Subject: [PATCH] bpo-11122: fix hardcoded path checking for rpmbuild in
+ bdist_rpm.py (GH-10594) (cherry picked from commit
+ 45a14942c969ed508b35abd5e116cb18f84ce5b4)
+
+Co-authored-by: Marcin Niemira <marcin.niemira@gmail.com>
+---
+ Lib/distutils/command/bdist_rpm.py                           | 5 +----
+ .../next/Library/2018-11-12-19-08-50.bpo-11122.Gj7BQn.rst    | 1 +
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+ create mode 100644 Misc/NEWS.d/next/Library/2018-11-12-19-08-50.bpo-11122.Gj7BQn.rst
+
+diff --git a/Lib/distutils/command/bdist_rpm.py b/Lib/distutils/command/bdist_rpm.py
+index 20ca7ac6dcffa..74381cc69a6ce 100644
+--- a/Lib/distutils/command/bdist_rpm.py
++++ b/Lib/distutils/command/bdist_rpm.py
+@@ -309,10 +309,7 @@ def run(self):
+ 
+         # build package
+         log.info("building RPMs")
+-        rpm_cmd = ['rpm']
+-        if os.path.exists('/usr/bin/rpmbuild') or \
+-           os.path.exists('/bin/rpmbuild'):
+-            rpm_cmd = ['rpmbuild']
++        rpm_cmd = ['rpmbuild']
+ 
+         if self.source_only: # what kind of RPMs?
+             rpm_cmd.append('-bs')
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 43d635f3a33..b25d613eb7f 100644
--- a/pkgs/development/interpreters/python/cpython/default.nix
+++ b/pkgs/development/interpreters/python/cpython/default.nix
@@ -9,9 +9,11 @@
 , readline
 , sqlite
 , tcl ? null, tk ? null, tix ? null, libX11 ? null, xorgproto ? null, x11Support ? false
+, bluez ? null, bluezSupport ? false
 , zlib
 , self
 , configd
+, autoreconfHook
 , python-setup-hook
 , nukeReferences
 # For the Python package set
@@ -30,12 +32,23 @@
 , stripBytecode ? false
 , includeSiteCustomize ? true
 , static ? false
+# Not using optimizations on Darwin
+# configure: error: llvm-profdata is required for a --enable-optimizations build but could not be found.
+, 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
@@ -52,7 +65,9 @@ let
 
   version = with sourceVersion; "${major}.${minor}.${patch}${suffix}";
 
-  nativeBuildInputs = [
+  nativeBuildInputs = optionals (!stdenv.isDarwin) [
+    autoreconfHook
+  ] ++ [
     nukeReferences
   ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     buildPackages.stdenv.cc
@@ -62,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);
@@ -103,9 +119,21 @@ in with passthru; stdenv.mkDerivation {
   ] ++ optionals isPy35 [
     # Backports support for LD_LIBRARY_PATH from 3.6
     ./3.5/ld_library_path.patch
-  ] ++ optionals (isPy37 || isPy38) [
+  ] ++ optionals (isPy35 || isPy36 || isPy37) [
+    # Backport a fix for discovering `rpmbuild` command when doing `python setup.py bdist_rpm` to 3.5, 3.6, 3.7.
+    # See: https://bugs.python.org/issue11122
+    ./3.7/fix-hardcoded-path-checking-for-rpmbuild.patch
+  ] ++ optionals (isPy37 || isPy38 || isPy39) [
     # Fix darwin build https://bugs.python.org/issue34027
     ./3.7/darwin-libutil.patch
+  ] ++ optionals (pythonOlder "3.8") [
+    # Backport from CPython 3.8 of a good list of tests to run for PGO.
+    (
+      if isPy36 || isPy37 then
+        ./3.6/profile-task.patch
+      else
+        ./3.5/profile-task.patch
+    )
   ] ++ optionals (isPy3k && hasDistutilsCxxPatch) [
     # Fix for http://bugs.python.org/issue1222585
     # Upstream distutils is calling C compiler to compile C++ code, which
@@ -114,7 +142,7 @@ in with passthru; stdenv.mkDerivation {
     (
       if isPy35 then
         ./3.5/python-3.x-distutils-C++.patch
-      else if isPy37 || isPy38 then
+      else if isPy37 || isPy38 || isPy39 then
         ./3.7/python-3.x-distutils-C++.patch
       else
         fetchpatch {
@@ -122,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'"
   '';
@@ -138,10 +171,14 @@ in with passthru; stdenv.mkDerivation {
 
   configureFlags = [
     "--enable-shared"
-    "--with-threads"
     "--without-ensurepip"
     "--with-system-expat"
     "--with-system-ffi"
+  ] ++ optionals enableOptimizations [
+    "--enable-optimizations"
+  ] ++ optionals (pythonOlder "3.7") [
+    # This is unconditionally true starting in CPython 3.7.
+    "--with-threads"
   ] ++ optionals (sqlite != null && isPy3k) [
     "--enable-loadable-sqlite-extensions"
   ] ++ optionals (openssl != null) [
@@ -254,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) ''
@@ -271,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 2def54de12d..76963587c20 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 = "11";
       suffix = "";
     };
-    sha256 = "1pj0mz1xl27khi250p29c0y99vxg662js8zp71aprkf8i8wkr0qa";
+    sha256 = "dB69y8Tjk3pf8jUX3UVev31UPqn+9vXPb0blddbE/aQ=";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -94,10 +81,10 @@ in {
     sourceVersion = {
       major = "3";
       minor = "7";
-      patch = "7";
+      patch = "8";
       suffix = "";
     };
-    sha256 = "0di1y2cna823qgk6sd2lvpjdm3g2qikdd50i2bjd330dpzqsk806";
+    sha256 = "Q6VDQEs2PwA3+J34R48Z2y28DW8//uMQvCmX+nGFSmM=";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -107,10 +94,10 @@ in {
     sourceVersion = {
       major = "3";
       minor = "8";
-      patch = "2";
+      patch = "5";
       suffix = "";
     };
-    sha256 = "1ps5v323cp5czfshqjmbsqw7nvrdpcbk06f62jbzaqik4gfffii6";
+    sha256 = "1c43dbv9lvlp3ynqmgdi4rh8q94swanhqarqrdx62zmigpakw073";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -121,15 +108,15 @@ in {
       major = "3";
       minor = "9";
       patch = "0";
-      suffix = "a4";
+      suffix = "b5";
     };
-    sha256 = "0qzy0wlq0izxk8ii28gy70v138g6xnz9sgsxpyayls2j04l6b5vz";
+    sha256 = "0r0m82srq4z44dahczd1cv6wgmxcpqbn5dyd8czcpk2pp9ydgqbc";
     inherit (darwin) configd;
     inherit passthruFun;
   };
 
   # Minimal versions of Python (built without optional dependencies)
-  python3Minimal = (python37.override {
+  python3Minimal = (python38.override {
     self = python3Minimal;
     pythonForBuild = pkgs.buildPackages.python3Minimal;
     # strip down that python version as much as possible
@@ -146,6 +133,7 @@ in {
     rebuildBytecode = false;
     stripBytecode = true;
     includeSiteCustomize = false;
+    enableOptimizations = false;
   }).overrideAttrs(old: {
     pname = "python3-minimal";
     meta = old.meta // {
@@ -157,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;
@@ -173,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;
@@ -190,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 {
@@ -204,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/default.nix b/pkgs/development/interpreters/python/hooks/default.nix
index 4d736426f3b..d14eb9cbb09 100644
--- a/pkgs/development/interpreters/python/hooks/default.nix
+++ b/pkgs/development/interpreters/python/hooks/default.nix
@@ -1,5 +1,6 @@
 # Hooks for building Python packages.
 { python
+, lib
 , callPackage
 , makeSetupHook
 , disabledIf
@@ -97,6 +98,16 @@ in rec {
       };
     } ./python-namespaces-hook.sh) {};
 
+  pythonRecompileBytecodeHook = callPackage ({ }:
+    makeSetupHook {
+      name = "python-recompile-bytecode-hook";
+      substitutions = {
+        inherit pythonInterpreter pythonSitePackages;
+        compileArgs = lib.concatStringsSep " " (["-q" "-f" "-i -"] ++ lib.optionals isPy3k ["-j $NIX_BUILD_CORES"]);
+        bytecodeName = if isPy3k then "__pycache__" else "*.pyc";
+      };
+    } ./python-recompile-bytecode-hook.sh ) {};
+
   pythonRemoveBinBytecodeHook = callPackage ({ }:
     makeSetupHook {
       name = "python-remove-bin-bytecode-hook";
diff --git a/pkgs/development/interpreters/python/hooks/pip-build-hook.sh b/pkgs/development/interpreters/python/hooks/pip-build-hook.sh
index 292f13d3015..6dd384b4847 100644
--- a/pkgs/development/interpreters/python/hooks/pip-build-hook.sh
+++ b/pkgs/development/interpreters/python/hooks/pip-build-hook.sh
@@ -24,7 +24,8 @@ pipShellHook() {
       export PATH="$tmp_path/bin:$PATH"
       export PYTHONPATH="$tmp_path/@pythonSitePackages@:$PYTHONPATH"
       mkdir -p "$tmp_path/@pythonSitePackages@"
-      @pythonInterpreter@ -m pip install -e . --prefix "$tmp_path" >&2
+      @pythonInterpreter@ -m pip install -e . --prefix "$tmp_path" \
+         --no-build-isolation >&2
     fi
 
     runHook postShellHook
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/hooks/pytest-check-hook.sh b/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh
index 18f05b6d218..bfd2bfa7583 100644
--- a/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh
+++ b/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh
@@ -46,4 +46,16 @@ function pytestCheckPhase() {
 if [ -z "${dontUsePytestCheck-}" ] && [ -z "${installCheckPhase-}" ]; then
     echo "Using pytestCheckPhase"
     preDistPhases+=" pytestCheckPhase"
+
+    # It's almost always the case that setuptoolsCheckPhase should not be ran
+    # when the pytestCheckHook is being ran
+    if [ -z "${useSetuptoolsCheck-}" ]; then
+        dontUseSetuptoolsCheck=1
+
+        # Remove command if already injected into preDistPhases
+        if [[ "$preDistPhases" =~ "setuptoolsCheckPhase" ]]; then
+            echo "Removing setuptoolsCheckPhase"
+            preDistPhases=${preDistPhases/setuptoolsCheckPhase/}
+        fi
+    fi
 fi
diff --git a/pkgs/development/interpreters/python/hooks/python-recompile-bytecode-hook.sh b/pkgs/development/interpreters/python/hooks/python-recompile-bytecode-hook.sh
new file mode 100644
index 00000000000..649d0c17ea0
--- /dev/null
+++ b/pkgs/development/interpreters/python/hooks/python-recompile-bytecode-hook.sh
@@ -0,0 +1,24 @@
+# Setup hook for recompiling bytecode.
+# https://github.com/NixOS/nixpkgs/issues/81441
+echo "Sourcing python-recompile-bytecode-hook.sh"
+
+# Remove all bytecode from the $out output. Then, recompile only site packages folder
+# Note this effectively duplicates `python-remove-bin-bytecode`, but long-term
+# this hook should be removed again.
+
+pythonRecompileBytecodePhase () {
+    # TODO: consider other outputs than $out
+
+    items="$(find "$out" -name "@bytecodeName@")"
+    if [[ -n $items ]]; then
+        for pycache in $items; do
+            rm -rf "$pycache"
+        done
+    fi
+
+    find "$out"/@pythonSitePackages@ -name "*.py" -exec @pythonInterpreter@ -OO -m compileall @compileArgs@ {} +
+}
+
+if [ -z "${dontUsePythonRecompileBytecode-}" ]; then
+    postPhases+=" pythonRecompileBytecodePhase"
+fi
diff --git a/pkgs/development/interpreters/python/hooks/python-remove-bin-bytecode-hook.sh b/pkgs/development/interpreters/python/hooks/python-remove-bin-bytecode-hook.sh
index 2add23f2316..1180694294d 100644
--- a/pkgs/development/interpreters/python/hooks/python-remove-bin-bytecode-hook.sh
+++ b/pkgs/development/interpreters/python/hooks/python-remove-bin-bytecode-hook.sh
@@ -1,9 +1,9 @@
-# Setup hook for detecting conflicts in Python packages
+# Setup hook for removing bytecode from the bin folder
 echo "Sourcing python-remove-bin-bytecode-hook.sh"
 
-# Check if we have two packages with the same name in the closure and fail.
-# If this happens, something went wrong with the dependencies specs.
-# Intentionally kept in a subdirectory, see catch_conflicts/README.md.
+# The bin folder is added to $PATH and should only contain executables.
+# It may happen there are executables with a .py extension for which
+# bytecode is generated. This hook removes that bytecode.
 
 pythonRemoveBinBytecodePhase () {
     if [ -d "$out/bin" ]; then
diff --git a/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh b/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh
index 2aec9279382..311590425e6 100644
--- a/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh
+++ b/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh
@@ -29,7 +29,8 @@ setuptoolsShellHook() {
         export PATH="$tmp_path/bin:$PATH"
         export PYTHONPATH="$tmp_path/@pythonSitePackages@:$PYTHONPATH"
         mkdir -p "$tmp_path/@pythonSitePackages@"
-        eval "@pythonInterpreter@ -m pip install -e . --prefix $tmp_path >&2"
+        eval "@pythonInterpreter@ -m pip install -e . --prefix $tmp_path \
+          --no-build-isolation >&2"
     fi
 
     runHook postShellHook
diff --git a/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh b/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh
index 3185b1f9fae..1fcc0bbd4b1 100644
--- a/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh
+++ b/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh
@@ -4,12 +4,14 @@ venvShellHook() {
 
     if [ -d "${venvDir}" ]; then
       echo "Skipping venv creation, '${venvDir}' already exists"
+      source "${venvDir}/bin/activate"
     else
       echo "Creating new venv environment in path: '${venvDir}'"
       @pythonInterpreter@ -m venv "${venvDir}"
-    fi
 
-    source "${venvDir}/bin/activate"
+      source "${venvDir}/bin/activate"
+      runHook postVenvCreation
+    fi
 
     runHook postShellHook
     echo "Finished executing venvShellHook"
diff --git a/pkgs/development/interpreters/python/mk-python-derivation.nix b/pkgs/development/interpreters/python/mk-python-derivation.nix
index 22938a45585..df945c645a8 100644
--- a/pkgs/development/interpreters/python/mk-python-derivation.nix
+++ b/pkgs/development/interpreters/python/mk-python-derivation.nix
@@ -17,6 +17,7 @@
 , pythonCatchConflictsHook
 , pythonImportsCheckHook
 , pythonNamespacesHook
+, pythonRecompileBytecodeHook
 , pythonRemoveBinBytecodeHook
 , pythonRemoveTestsDirHook
 , setuptoolsBuildHook
@@ -104,77 +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, ...)?
-    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 ];
-
-  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 e782eb2fdee..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;
   };
 
@@ -53,6 +53,10 @@ in with passthru; stdenv.mkDerivation rec {
 
   hardeningDisable = optional stdenv.isi686 "pic";
 
+  # Remove bootstrap python from closure
+  dontPatchShebangs = true;
+  disallowedReferences = [ python ];
+
   C_INCLUDE_PATH = makeSearchPathOutput "dev" "include" buildInputs;
   LIBRARY_PATH = makeLibraryPath buildInputs;
   LD_LIBRARY_PATH = makeLibraryPath (filter (x : x.outPath != stdenv.cc.libc.outPath or "") buildInputs);
@@ -71,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
   '';
 
@@ -133,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/sitecustomize.py b/pkgs/development/interpreters/python/sitecustomize.py
index 72ce951328f..d79a4696d8e 100644
--- a/pkgs/development/interpreters/python/sitecustomize.py
+++ b/pkgs/development/interpreters/python/sitecustomize.py
@@ -21,9 +21,11 @@ paths = os.environ.pop('NIX_PYTHONPATH', None)
 if paths:
     functools.reduce(lambda k, p: site.addsitedir(p, k), paths.split(':'), site._init_pathinfo())
 
-# Check whether we are in a venv. 
-# Note Python 2 does not support base_prefix so we assume we are not in a venv.
-in_venv = sys.version_info.major == 3 and sys.prefix != sys.base_prefix
+# Check whether we are in a venv or virtualenv. 
+# For Python 3 we check whether our `base_prefix` is different from our current `prefix`.
+# For Python 2 we check whether the non-standard `real_prefix` is set.
+# https://stackoverflow.com/questions/1871549/determine-if-python-is-running-inside-virtualenv
+in_venv = (sys.version_info.major == 3 and sys.prefix != sys.base_prefix) or (sys.version_info.major == 2 and hasattr(sys, "real_prefix"))
 
 if not in_venv:
     executable = os.environ.pop('NIX_PYTHONEXECUTABLE', None)
@@ -32,8 +34,6 @@ if not in_venv:
     if 'PYTHONEXECUTABLE' not in os.environ and executable is not None:
         sys.executable = executable
     if prefix is not None:
-        # Because we cannot check with Python 2 whether we are in a venv, 
-        # creating a venv from a Nix env won't work as well with Python 2.
-        # Also, note that sysconfig does not like it when sys.prefix is set to None
+        # Sysconfig does not like it when sys.prefix is set to None
         sys.prefix = sys.exec_prefix = prefix
         site.PREFIXES.insert(0, prefix)
diff --git a/pkgs/development/interpreters/python/tests.nix b/pkgs/development/interpreters/python/tests.nix
index f7ec06ce4ff..03a3b953709 100644
--- a/pkgs/development/interpreters/python/tests.nix
+++ b/pkgs/development/interpreters/python/tests.nix
@@ -9,6 +9,7 @@ let
   envs = let
     inherit python;
     pythonEnv = python.withPackages(ps: with ps; [ ]);
+    pythonVirtualEnv = python.withPackages(ps: with ps; [ virtualenv ]);
   in {
     # Plain Python interpreter
     plain = rec {
@@ -16,6 +17,18 @@ let
       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)
@@ -24,6 +37,7 @@ let
       interpreter = env.interpreter;
       is_venv = "False";
       is_nixenv = "True";
+      is_virtualenv = "False";
     };
   } // lib.optionalAttrs (python.isPy3k && (!python.isPyPy)) rec {
     # Venv built using plain Python
@@ -36,6 +50,7 @@ let
       interpreter = "${env}/bin/${python.executable}";
       is_venv = "True";
       is_nixenv = "False";
+      is_virtualenv = "False";
     };
 
   } // lib.optionalAttrs (python.pythonAtLeast "3.8") {
@@ -49,6 +64,7 @@ let
       interpreter = "${env}/bin/${pythonEnv.executable}";
       is_venv = "True";
       is_nixenv = "True";
+      is_virtualenv = "False";
     };
   };
 
diff --git a/pkgs/development/interpreters/python/tests/test_python.py b/pkgs/development/interpreters/python/tests/test_python.py
index 011978c6254..0fc4b8a9e91 100644
--- a/pkgs/development/interpreters/python/tests/test_python.py
+++ b/pkgs/development/interpreters/python/tests/test_python.py
@@ -16,6 +16,7 @@ ENV = "@env@"
 INTERPRETER = "@interpreter@"
 PYTHON_VERSION = "@pythonVersion@"
 
+IS_VIRTUALENV = @is_virtualenv@
 IS_VENV = @is_venv@
 IS_NIXENV = @is_nixenv@
 IS_PYPY = platform.python_implementation() == "PyPy"
@@ -37,11 +38,15 @@ class TestCasePython(unittest.TestCase):
 
     @unittest.skipIf(IS_PYPY or sys.version_info.major==2, "Python 2 does not have base_prefix")
     def test_base_prefix(self):
-        if IS_VENV or IS_NIXENV:
+        if IS_VENV or IS_NIXENV or IS_VIRTUALENV:
             self.assertNotEqual(sys.prefix, sys.base_prefix)
         else:
             self.assertEqual(sys.prefix, sys.base_prefix)
 
+    @unittest.skipIf(sys.version_info.major==3, "sys.real_prefix is only set by virtualenv in case of Python 2.")
+    def test_real_prefix(self):
+        self.assertTrue(hasattr(sys, "real_prefix") == IS_VIRTUALENV)
+
     def test_python_version(self):
         self.assertTrue(platform.python_version().startswith(PYTHON_VERSION))
 
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 e4501d85238..fb33743dc9a 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.05";
+  version = "2020.08.1";
 
   src = fetchurl {
     url    = "https://www.rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
-    sha256 = "08d1591k8lhyw3kmxq53lf24wg6d61lg2xc81zzcglask9n9ilc6";
+    sha256 = "1jwlqppm2g6ivzpipkcyihsxzsii3qyx1f35n7wj5dsf99b3hkfm";
   };
 
   buildInputs = [ icu zlib gmp perl ];
diff --git a/pkgs/development/interpreters/rakudo/moarvm.nix b/pkgs/development/interpreters/rakudo/moarvm.nix
index a7b57c9287a..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.05";
+  version = "2020.08";
 
   src = fetchurl {
     url = "https://www.moarvm.org/releases/MoarVM-${version}.tar.gz";
-    sha256 = "0jw29846nky7gz129knjcx58qr7nbn8j7hs8k92i11zaj73d4s4k";
+    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 40133287f9e..93b42d2b8e1 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.05";
+  version = "2020.08.1";
 
   src = fetchurl {
     url    = "https://github.com/perl6/nqp/releases/download/${version}/nqp-${version}.tar.gz";
-    sha256 = "0xxm0vlra1g467cxc5v65p8pc46w7r9wkcddjl8nk2lnvgcr46r9";
+    sha256 = "0pxmg22dx6rhfgrxq4gbwqf6d2nahw6iprjvrg8brkbcbyj3ryhd";
   };
 
   buildInputs = [ perl ];
diff --git a/pkgs/development/interpreters/rakudo/zef.nix b/pkgs/development/interpreters/rakudo/zef.nix
index 5c8fe16408b..c8205344693 100644
--- a/pkgs/development/interpreters/rakudo/zef.nix
+++ b/pkgs/development/interpreters/rakudo/zef.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zef";
-  version = "0.8.4";
+  version = "0.8.5";
 
   src = fetchFromGitHub {
     owner = "ugexe";
     repo = "zef";
     rev = "v${version}";
-    sha256 = "02a3awnjr1mgb9275xvp3xms80vcxkq55ffi8sbjzxpwyadj5y5k";
+    sha256 = "17a5ns0ph8626q3b4wv9v2n0zqmhqbqyzjzxa387kr19qs933yy6";
   };
 
   buildInputs = [ rakudo makeWrapper ];
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/renpy/default.nix b/pkgs/development/interpreters/renpy/default.nix
index d09d150bd79..41cf4c221c6 100644
--- a/pkgs/development/interpreters/renpy/default.nix
+++ b/pkgs/development/interpreters/renpy/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, python2Packages, pkgconfig, SDL2
-, libpng, ffmpeg, freetype, glew, libGL, libGLU, fribidi, zlib
+, libpng, ffmpeg_3, freetype, glew, libGL, libGLU, fribidi, zlib
 , glib
 }:
 
@@ -32,13 +32,13 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
     python cython wrapPython tkinter
-    SDL2 libpng ffmpeg freetype glew libGLU libGL fribidi zlib pygame_sdl2 glib
+    SDL2 libpng ffmpeg_3 freetype glew libGLU libGL fribidi zlib pygame_sdl2 glib
   ];
 
   pythonPath = [ pygame_sdl2 tkinter ];
 
   RENPY_DEPS_INSTALL = stdenv.lib.concatStringsSep "::" (map (path: path) [
-    SDL2 SDL2.dev libpng ffmpeg ffmpeg.out freetype glew.dev glew.out libGLU libGL fribidi zlib
+    SDL2 SDL2.dev libpng ffmpeg_3 ffmpeg_3.out freetype glew.dev glew.out libGLU libGL fribidi zlib
   ]);
 
   buildPhase = ''
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 cad1aabf374..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.4.2";
+  version = "68.10.0";
 
   src = fetchurl {
     url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
-    sha256 = "1x1fglg1b85hb0srd6k7n5svl0nlgdm4njc8q13s2750v5ck4ljx";
+    sha256 = "0azdinwqjfv2q37gqpxmfvzsk86pvsi6cjaq1310zs26gric5j1f";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/interpreters/wasmer/default.nix b/pkgs/development/interpreters/wasmer/default.nix
index d3d9cf87207..c620b1686ea 100644
--- a/pkgs/development/interpreters/wasmer/default.nix
+++ b/pkgs/development/interpreters/wasmer/default.nix
@@ -8,17 +8,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmer";
-  version = "0.16.2";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "wasmerio";
     repo = pname;
     rev = version;
-    sha256 = "124zq772kz9a7n3qpxgmp4awqj41l8mhhwc0y3r77i1q02i1sy7z";
+    sha256 = "05g4h0xkqd14wnmijiiwmhk6l909fjxr6a2zplrjfxk5bypdalpm";
     fetchSubmodules = true;
   };
 
-  cargoSha256 = "1qqysvcviimpm2zhzsbn8vhy91rxzaknh9hv75y38xd5ggnnh9m6";
+  cargoSha256 = "1ssmgx9fjvkq7ycyzjanqmlm5b80akllq6qyv3mj0k5fvs659wcq";
 
   nativeBuildInputs = [ cmake pkg-config ];
 
@@ -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 67d54af7bb2..f7ef111bc66 100644
--- a/pkgs/development/interpreters/wasmtime/default.nix
+++ b/pkgs/development/interpreters/wasmtime/default.nix
@@ -2,26 +2,24 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmtime";
-  version = "0.15.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = "${pname}";
     rev = "v${version}";
-    sha256 = "1df99iak0psydlg9m8f8qq4zyh4wbi5l4qgsdjr2lm74ci3483xy";
+    sha256 = "0gb8xk27ych553b7knflbbks9q64m39v40sdirycm6prqfnfrnm8";
     fetchSubmodules = true;
   };
 
-  cargoSha256 = "170bz48jrc1k2ylfmd3bcry0xpcxx8p3rzzv9mprlfmrfpb0b28r";
+  cargoSha256 = "1dqaxpwfm234yjwrhglzvsqhh2fr5nsx7bpk7bmycyk6lml8vxy7";
 
   nativeBuildInputs = [ python cmake clang ];
   buildInputs = [ llvmPackages.libclang ] ++
    lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
   LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
 
-  # no test on darwin due to
-  # https://github.com/bytecodealliance/wasmtime/issues/1556
-  doCheck = !stdenv.isDarwin;
+  doCheck = true;
 
   meta = with lib; {
     description = "Standalone JIT-style runtime for WebAssembly, using Cranelift";
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/LASzip/LASzip2.nix b/pkgs/development/libraries/LASzip/LASzip2.nix
new file mode 100644
index 00000000000..2eb30963128
--- /dev/null
+++ b/pkgs/development/libraries/LASzip/LASzip2.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, cmake }:
+
+stdenv.mkDerivation rec {
+  version = "2.2.0";
+  pname = "LASzip";
+
+  src = fetchurl {
+    url = "https://github.com/LASzip/LASzip/archive/v${version}.tar.gz";
+    sha256 = "b8e8cc295f764b9d402bc587f3aac67c83ed8b39f1cb686b07c168579c61fbb2";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "Turn quickly bulky LAS files into compact LAZ files without information loss";
+    homepage = "https://laszip.org";
+    license = licenses.lgpl2;
+    maintainers = [ maintainers.michelk ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/LASzip/default.nix b/pkgs/development/libraries/LASzip/default.nix
index fb747dc9f33..0300aa37f0f 100644
--- a/pkgs/development/libraries/LASzip/default.nix
+++ b/pkgs/development/libraries/LASzip/default.nix
@@ -1,15 +1,19 @@
-{ stdenv, fetchurl, cmake }:
+{ stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
-  version = "2.2.0";
+  version = "3.4.3";
   pname = "LASzip";
 
-  src = fetchurl {
-    url = "https://github.com/LASzip/LASzip/archive/v${version}.tar.gz";
-    sha256 = "b8e8cc295f764b9d402bc587f3aac67c83ed8b39f1cb686b07c168579c61fbb2";
+  src = fetchFromGitHub {
+    owner = "LASzip";
+    repo = "LASzip";
+    rev = version;
+    sha256 = "09lcsgxwv0jq50fhsgfhx0npbf1zcwn3hbnq6q78fshqksbxmz7m";
   };
 
-  buildInputs = [cmake];
+  nativeBuildInputs = [
+    cmake
+  ];
 
   meta = {
     description = "Turn quickly bulky LAS files into compact LAZ files without information loss";
diff --git a/pkgs/development/libraries/SDL2/default.nix b/pkgs/development/libraries/SDL2/default.nix
index 93d708e7d31..31624bee2fb 100644
--- a/pkgs/development/libraries/SDL2/default.nix
+++ b/pkgs/development/libraries/SDL2/default.nix
@@ -15,6 +15,7 @@
 , libpulseaudio
 , AudioUnit, Cocoa, CoreAudio, CoreServices, ForceFeedback, OpenGL
 , audiofile, libiconv
+, withStatic ? false
 }:
 
 # NOTE: When editing this expression see if the same change applies to
@@ -30,7 +31,7 @@ stdenv.mkDerivation rec {
     url = "https://www.libsdl.org/release/${pname}-${version}.tar.gz";
     sha256 = "0qy8wbqvfkb5ps8kxgaaf2zzpkjqbsw712hlp74znbn0jpv6i4il";
   };
-
+  dontDisableStatic = withStatic;
   outputs = [ "out" "dev" ];
   outputBin = "dev"; # sdl-config
 
@@ -41,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/SDL2_mixer/default.nix b/pkgs/development/libraries/SDL2_mixer/default.nix
index 4fa9df617a6..c90c0fd08a8 100644
--- a/pkgs/development/libraries/SDL2_mixer/default.nix
+++ b/pkgs/development/libraries/SDL2_mixer/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, autoreconfHook, pkgconfig, which
-, SDL2, libogg, libvorbis, smpeg2, flac, libmodplug, opusfile
+, SDL2, libogg, libvorbis, smpeg2, flac, libmodplug, opusfile, mpg123
 , CoreServices, AudioUnit, AudioToolbox
 , enableNativeMidi ? false, fluidsynth ? null }:
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreServices AudioUnit AudioToolbox ];
 
-  propagatedBuildInputs = [ SDL2 libogg libvorbis fluidsynth smpeg2 flac libmodplug opusfile ];
+  propagatedBuildInputs = [ SDL2 libogg libvorbis fluidsynth smpeg2 flac libmodplug opusfile mpg123 ];
 
   configureFlags = [ "--disable-music-ogg-shared" ]
     ++ lib.optional enableNativeMidi "--enable-music-native-midi-gpl"
diff --git a/pkgs/development/libraries/accountsservice/default.nix b/pkgs/development/libraries/accountsservice/default.nix
index 85b23de0c1c..6bd76c62b97 100644
--- a/pkgs/development/libraries/accountsservice/default.nix
+++ b/pkgs/development/libraries/accountsservice/default.nix
@@ -54,6 +54,11 @@ stdenv.mkDerivation rec {
   '';
 
   patches = [
+    # https://gitlab.freedesktop.org/accountsservice/accountsservice/-/issues/55
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/accountsservice/accountsservice/-/merge_requests/58.patch";
+      sha256 = "1pnwq4ycnryb2kkgvnz44qzm71240ybqj6507wynlkdsw8180fdw";
+    })
     (substituteAll {
       src = ./fix-paths.patch;
       inherit shadow coreutils;
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-Sheaves/default.nix b/pkgs/development/libraries/agda/Agda-Sheaves/default.nix
deleted file mode 100644
index 513b79e6393..00000000000
--- a/pkgs/development/libraries/agda/Agda-Sheaves/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, agda, fetchgit }:
-
-agda.mkDerivation (self: rec {
-  version = "8a06162a8f0f7df308458db91d720cf8f7345d69";
-  name = "Agda-Sheaves-${version}";
-  src = fetchgit {
-    url = "https://github.com/jonsterling/Agda-Sheaves.git";
-    rev = version;
-    sha256 = "1gjffyyi4gk9z380yw2wm0jg0a01zy8dnw7jrcc7222swisk5s2d";
-  };
-
-  everythingFile = "sheaves.agda";
-  topSourceDirectories = [ "../$sourceRoot" ];
-  sourceDirectories = [];
-
-  meta = {
-    homepage = "https://github.com/jonsterling/Agda-Sheaves";
-    description = "Sheaves in Agda";
-    license = stdenv.lib.licenses.cc-by-40;
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ ];
-    broken = true;  # replaced by constructive-sheaf-semantics
-  };
-})
diff --git a/pkgs/development/libraries/agda/TotalParserCombinators/contextfile b/pkgs/development/libraries/agda/TotalParserCombinators/contextfile
deleted file mode 100644
index 46743cba3b6..00000000000
--- a/pkgs/development/libraries/agda/TotalParserCombinators/contextfile
+++ /dev/null
@@ -1,259 +0,0 @@
-
-Context:
-
-[Updated the code in response to changes to Agda.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20150319181310
- Ignore-this: 52b9ff613d7f10b0c8f45591a0759d07
-] 
-
-[Rolled back most of "Updated the code in response to changes to Agda".
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20150319101420
- Ignore-this: c2ea7bdf79848235fa3ea64ebda116eb
- * One of the Agda changes has been reverted.
-] 
-
-[Removed an outdated comment.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20150217162945
- Ignore-this: 3ff7732335750305fe220e65693f0cbf
-] 
-
-[Added the simplification "nonempty (return x) → fail".
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20150217161718
- Ignore-this: 56ad6a68c314446d8986a8c1b49655d0
-] 
-
-[Added Nonempty.nonempty-return.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20150217161629
- Ignore-this: 68829d3f9a248272c46848daa05ccfe3
-] 
-
-[Updated the copyright year range.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20150212154744
- Ignore-this: 3410a12ca1f9de825b00e692b136d500
-] 
-
-[Updated the code in response to changes to Agda.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20150212152207
- Ignore-this: 683b5eeca5fa9c8490bceaf68c23a204
-] 
-
-[Updated the copyright year range.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20141128223227
- Ignore-this: 31d3f5e4fdd6fbfad9758d9bfd0d3a3e
-] 
-
-[Updated the code in response to changes to Agda and the library.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20141128223205
- Ignore-this: 6392ec67aab2c534a7195abed55be47
-] 
-
-[Updated code to reflect changes to Agda.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20140425121055
- Ignore-this: 54d80fd647cb897eef85f57e9172f7db
-] 
-
-[Workaround for (possible) Agda bug.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20140228200347
- Ignore-this: b17884ad17a3bdb7faff678622365a8
-] 
-
-[Updated code to reflect changes to library API.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20130307134644
- Ignore-this: 50d070a22a6796b9acdf19d44ba5de16
-] 
-
-[Updated code to reflect changes to Agda and the library API.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20130228122951
- Ignore-this: 761dc4d85683a59cc3667a8706c88093
-] 
-
-[Turned _â—‡_ into a constructor.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20120316125431
- Ignore-this: 41b492c3106a575f28f146253f78a5ae
-] 
-
-[Updated code to reflect changes to Agda.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20120316125416
- Ignore-this: e77d817d8b391c3b4806119d10848eb3
-] 
-
-[Updated code to reflect changes to Agda.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20120215103344
- Ignore-this: 467716429d5553cd122722108ea82a08
-] 
-
-[Modified a comment.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20120215103319
- Ignore-this: e57d4911f692f8a96a80017d910efc5f
-] 
-
-[Updated code to reflect change to library API.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20111006160229
- Ignore-this: 5359da54e7e6e0f92983fa3ecaccebf3
-] 
-
-[Updated code to reflect changes to Agda and the library API.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20111003170117
- Ignore-this: cbdd35172e372779e12642985cf17268
-] 
-
-[Rolled back addition of inversion lemmas.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20110930150912
- Ignore-this: 9c9b083f0afcf95aaaa55a01d871274e
-] 
-
-[Added inversion lemmas, implemented other lemmas using these lemmas.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20110930150842
- Ignore-this: 19b832c3f9e14d1e713b5911c094a130
- + This change was a response to a change to Agda's pattern matching
-   machinery. Subsequently the machinery was made more liberal again,
-   making this change unnecessary.
-] 
-
-[Updated code to reflect changes to library API.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20110517220158
- Ignore-this: ea9771a5014a25cb20afc2118638f8b5
-] 
-
-[Updated code to reflect changes to Agda.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20110512124425
- Ignore-this: 97b154661679f574f6ab914583b14580
-] 
-
-[Proved that many constructions preserve various preorders.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20110313012617
- Ignore-this: 8008efaff967c228448baa33b82edb81
-] 
-
-[Updated code to reflect changes to library API.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20110313002106
- Ignore-this: 94799ba1ae411e59fd8c6c7eac3b8dfb
-] 
-
-[Simplified TotalRecognisers.LeftRecursion.MatchingParentheses.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20110118102159
- Ignore-this: 1e01a8092b0c0124979ffc5fe17a245c
-] 
-
-[Added TotalRecognisers.LeftRecursion.MatchingParentheses.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20110118102146
- Ignore-this: 13a3bc91425364e26c3047561655bb25
-] 
-
-[Added a simplifying backend.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101229012716
- Ignore-this: 9ac7ae21cd44c099633678a994fb9a3
-] 
-
-[Fixed another "bug" in the deep simplifier.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101229010854
- Ignore-this: e258adf963436ef715242db23c6808e
- + Sometimes the first layer of bind's right-hand argument was not
-   simplified.
-] 
-
-[Made simplifyâ‚ public and changed its type.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101228235603
- Ignore-this: d39b8453a15089126261e098080223c6
-] 
-
-[Deep simplification no longer adds casts.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101228192850
- Ignore-this: 2ba016825adfa3a1e36922869eabfd39
-] 
-
-[The first constructor in a simplified parser can no longer be a cast.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101228175822
- Ignore-this: ce3e38cc0b9a096aa436655c9013ae97
-] 
-
-[Modified the outline.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101228173414
- Ignore-this: f8866e69f6d1a344e79fb6f708dfa4c
-] 
-
-[Added an example: a right recursive expression grammar.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101228173159
- Ignore-this: 9a4d732b451cca08ba19aac5d115c678
-] 
-
-[Rearranged the code.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101228172209
- Ignore-this: 50fa29406d0f150669ff3feec4dbe513
-] 
-
-[Renamed same-bag/set to (initial-bag-)cong.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101228170706
- Ignore-this: dd3ce43d77dde74cc2428d2568dd2d30
-] 
-
-[Added TotalParserCombinators.Force.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101228153638
- Ignore-this: 3b6ff6ea20df0c1293494f06845d17eb
-] 
-
-[Proved that uses of subst can be erased.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101228153621
- Ignore-this: f503ba495b923ae521718b6957167128
-] 
-
-[The deep simplifier no longer skips layers.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101228141138
- Ignore-this: 733a4a4a9aa0f890ad1740ecfc6a599f
-] 
-
-[Documented that the deep simplifier misses every second layer.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101228121910
- Ignore-this: 8a0baf25b12f63f8748dbc1d16affacf
-] 
-
-[The simplifier now applies the token-bind rule more often.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101227165413
- Ignore-this: 40132fa6f19602886bbe29aadd8a683c
-] 
-
-[Switched back to deep simplification, now with a proper proof.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101227125434
- Ignore-this: ccc46e82f6f9c6c2a27ddb43d315f7dd
-] 
-
-[Simplified the soundness proof.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101227123839
- Ignore-this: fb6826dd9836e34fc3bfdce2928ba13d
-] 
-
-[Made some _≈[_]P_ constructors conditionally coinductive.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101227123827
- Ignore-this: f521f70475403697229051b62343a080
- + The structure of the soundness proof was also changed.
-] 
-
-[Unified And, AsymmetricChoice and Not.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101225103109
- Ignore-this: 5ae8b80e1505fe6e707bb2307d22688c
-] 
-
-[Modified some comments.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101225101051
- Ignore-this: e812d8c3e9720895c368f7a286f8315c
-] 
-
-[Modified a comment.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101223202647
- Ignore-this: 16ea5dc01a4cbe0fe38714b2e4b7ff6
-] 
-
-[Updated code to reflect changes to library API.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101107162658
- Ignore-this: 9e38a10a9997c9825ece6ad9f871b673
-] 
-
-[Added an alternative backend for TotalRecognisers.Simple.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20101020183743
- Ignore-this: a111a89e0c237e132b649561000f53d6
-] 
-
-[TAG Code corresponding to the paper "Total Parser Combinators" (4).
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20100928013815
- Ignore-this: 45ccc28373ed3974047315613eb14833
-] 
diff --git a/pkgs/development/libraries/agda/TotalParserCombinators/default.nix b/pkgs/development/libraries/agda/TotalParserCombinators/default.nix
deleted file mode 100644
index 97cceebc1b6..00000000000
--- a/pkgs/development/libraries/agda/TotalParserCombinators/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, agda, fetchdarcs, AgdaStdlib }:
-
-agda.mkDerivation (self: rec {
-  version = "2015-03-19";
-  name = "TotalParserCombinators-${version}";
-
-  src = fetchdarcs {
-    url = "http://www.cse.chalmers.se/~nad/repos/parser-combinators.code/";
-    context = ./contextfile;
-    sha256 = "0jlbz8yni6i7vb2qsd41bdkpchqirvc5pavckaf97z7p4gqi2mlj";
-  };
-
-  buildDepends = [ AgdaStdlib ];
-  everythingFile = "TotalParserCombinators.agda";
-  sourceDirectories = [];
-  topSourceDirectories = [ "../$sourceRoot" ];
-
-  meta = with stdenv.lib; {
-    homepage = "http://www.cse.chalmers.se/~nad/publications/danielsson-parser-combinators.html";
-    description = "A monadic parser combinator library which guarantees termination of parsing";
-    license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = with maintainers; [ ];
-    broken = true;
-  };
-})
diff --git a/pkgs/development/libraries/agda/agda-base/default.nix b/pkgs/development/libraries/agda/agda-base/default.nix
deleted file mode 100644
index 678b3a28dc7..00000000000
--- a/pkgs/development/libraries/agda/agda-base/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, agda, fetchurl }:
-
-agda.mkDerivation (self: rec {
-  version = "0.1";
-  name = "agda-base-${version}";
-
-  src = fetchurl {
-    url = "https://github.com/pcapriotti/agda-base/archive/v${version}.tar.gz";
-    sha256 = "124h06p7jdiqr2x6r46sfab9r0cgb0fznr2qs5i1psl5yf3z74h8";
-  };
-
-  sourceDirectories = [ "./." ];
-  everythingFile = "README.agda";
-
-  meta = {
-    homepage = "https://github.com/pcapriotti/agda-base";
-    description = "Base library for HoTT in Agda";
-    license = stdenv.lib.licenses.bsd3;
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ ];
-    broken = true;  # largely replaced by HoTT-Agda
-  };
-})
diff --git a/pkgs/development/libraries/agda/agda-categories/default.nix b/pkgs/development/libraries/agda/agda-categories/default.nix
new file mode 100644
index 00000000000..13ca6c52d71
--- /dev/null
+++ b/pkgs/development/libraries/agda/agda-categories/default.nix
@@ -0,0 +1,23 @@
+{ lib, mkDerivation, fetchFromGitHub, standard-library }:
+
+mkDerivation rec {
+  version = "0.1.3.1";
+  pname = "agda-categories";
+
+  src = fetchFromGitHub {
+    owner = "agda";
+    repo = "agda-categories";
+    rev = "v${version}";
+    sha256 = "08mc20qaz9vp5rhi60rh8wvjkg5aby3bgwwdhfnxha1663qf1q24";
+  };
+
+  buildInputs = [ standard-library ];
+
+  meta = with lib; {
+    inherit (src.meta) homepage;
+    description = "A new Categories library";
+    license = licenses.bsd3;
+    platforms = platforms.unix;
+    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 86f21ad9b19..f13cc698236 100644
--- a/pkgs/development/libraries/agda/agda-prelude/default.nix
+++ b/pkgs/development/libraries/agda/agda-prelude/default.nix
@@ -1,23 +1,28 @@
-{ stdenv, agda, fetchgit }:
+{ stdenv, mkDerivation, fetchFromGitHub }:
 
-agda.mkDerivation (self: rec {
-  version = "eacc961c2c312b7443109a7872f99d55557df317";
-  name = "agda-prelude-${version}";
+mkDerivation rec {
+  version = "compat-2.6.1";
+  pname = "agda-prelude";
 
-  src = fetchgit {
-    url = "https://github.com/UlfNorell/agda-prelude.git";
+  src = fetchFromGitHub {
+    owner = "UlfNorell";
+    repo = "agda-prelude";
     rev = version;
-    sha256 = "0iql67hb1q0fn8dwkcx07brkdkxqfqrsbwjy71ndir0k7qzw7qv2";
+    sha256 = "128rbhd32qlq2nq3wgqni4ih58zzwvs9pkn9j8236ycxxp6x81sl";
   };
 
-  topSourceDirectories = [ "src" ];
-  everythingFile = "src/Prelude.agda";
+  preConfigure = ''
+    cd test
+    make everything
+    mv Everything.agda ..
+    cd ..
+  '';
 
   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;
-    maintainers = with maintainers; [ mudri ];
+    maintainers = with maintainers; [ mudri alexarice turion ];
   };
-})
+}
diff --git a/pkgs/development/libraries/agda/bitvector/default.nix b/pkgs/development/libraries/agda/bitvector/default.nix
deleted file mode 100644
index bf9798557b1..00000000000
--- a/pkgs/development/libraries/agda/bitvector/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, agda, fetchgit, AgdaStdlib }:
-
-agda.mkDerivation (self: rec {
-  version = "f1c173313f2a41d95a8dc6053f9365a24690e18d";
-  name = "bitvector-${version}";
-
-  src = fetchgit {
-    url = "https://github.com/copumpkin/bitvector.git";
-    rev = version;
-    sha256 = "0jb421lxvyxz26sxa81qjmn1gfcxfh0fmbq128f0kslqhiiaqfrh";
-  };
-
-  buildDepends = [ AgdaStdlib ];
-  sourceDirectories = [ "Data" ];
-
-  meta = {
-    homepage = "https://github.com/copumpkin/bitvector";
-    description = "Sequences of bits and common operations on them";
-    license = stdenv.lib.licenses.bsd3;
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ ];
-    broken = true;
-  };
-})
diff --git a/pkgs/development/libraries/agda/categories/default.nix b/pkgs/development/libraries/agda/categories/default.nix
deleted file mode 100644
index fef01ee9be7..00000000000
--- a/pkgs/development/libraries/agda/categories/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, agda, fetchgit, AgdaStdlib }:
-
-agda.mkDerivation (self: rec {
-  version = "33409120d071656f5198c658145889ae2e86249c";
-  name = "categories-${version}";
-
-  src = fetchgit {
-    url = "https://github.com/copumpkin/categories.git";
-    rev = version;
-    sha256 = "15x834f7jn2s816b9vz8nm8p424ppzv6v9nayaawyl43qmaaaa5p";
-  };
-
-  buildDepends = [ AgdaStdlib ];
-  sourceDirectories = [ "Categories" "Graphs" ];
-
-  meta = {
-    homepage = "https://github.com/copumpkin/categories";
-    description = "Categories parametrized by morphism equality, in Agda";
-    license = stdenv.lib.licenses.bsd3;
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ ];
-    broken = true; # doesn't work due to new agdastdlib, see #9471
-  };
-})
diff --git a/pkgs/development/libraries/agda/cubical/default.nix b/pkgs/development/libraries/agda/cubical/default.nix
new file mode 100644
index 00000000000..241caf16d67
--- /dev/null
+++ b/pkgs/development/libraries/agda/cubical/default.nix
@@ -0,0 +1,33 @@
+{ lib, mkDerivation, fetchFromGitHub, ghc, glibcLocales }:
+
+mkDerivation rec {
+
+  # Version 0.2 is meant to be used with the Agda 2.6.1 compiler.
+  pname = "cubical";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "agda";
+    rev = "v${version}";
+    sha256 = "07qlp2f189jvzbn3aqvpqk2zxpkmkxhhkjsn62iq436kxqj3z6c2";
+  };
+
+  LC_ALL = "en_US.UTF-8";
+
+  # The cubical library has several `Everything.agda` files, which are
+  # compiled through the make file they provide.
+  nativeBuildInputs = [ ghc glibcLocales ];
+  buildPhase = ''
+    make
+  '';
+
+  meta = with lib; {
+    description =
+      "A cubical type theory library for use with the Agda compiler";
+    homepage = src.meta.homepage;
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ alexarice ryanorendorff ];
+  };
+}
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/agda/agda-iowa-stdlib/default.nix b/pkgs/development/libraries/agda/iowa-stdlib/default.nix
index 23013bfbc32..55cd6a742e5 100644
--- a/pkgs/development/libraries/agda/agda-iowa-stdlib/default.nix
+++ b/pkgs/development/libraries/agda/iowa-stdlib/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, agda, fetchFromGitHub }:
+{ stdenv, mkDerivation, fetchFromGitHub }:
 
-agda.mkDerivation (self: rec {
+mkDerivation (rec {
   version = "1.5.0";
-  name = "agda-iowa-stdlib-${version}";
+  pname = "iowa-stdlib";
 
   src = fetchFromGitHub {
     owner = "cedille";
@@ -11,17 +11,21 @@ agda.mkDerivation (self: rec {
     sha256 = "0dlis6v6nzbscf713cmwlx8h9n2gxghci8y21qak3hp18gkxdp0g";
   };
 
-  sourceDirectories = [ "./." ];
+  libraryFile = "";
+  libraryName = "IAL-1.3";
+
   buildPhase = ''
     patchShebangs find-deps.sh
     make
   '';
 
   meta = {
-    homepage = "https://svn.divms.uiowa.edu/repos/clc/projects/agda/lib/";
+    homepage = "https://github.com/cedille/ial";
     description = "Agda standard library developed at Iowa";
     license = stdenv.lib.licenses.free;
     platforms = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ ];
+    # broken since Agda 2.6.1
+    broken = true;
+    maintainers = with stdenv.lib.maintainers; [ alexarice turion ];
   };
 })
diff --git a/pkgs/development/libraries/agda/pretty/contextfile b/pkgs/development/libraries/agda/pretty/contextfile
deleted file mode 100644
index 2ea20153bbc..00000000000
--- a/pkgs/development/libraries/agda/pretty/contextfile
+++ /dev/null
@@ -1,43 +0,0 @@
-
-Context:
-
-[Updated the code in response to a change to Agda.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20150319181428
- Ignore-this: f83c3dccfe25a2a5b9d0437d1dce0ec0
-] 
-
-[Rolled back most of "Updated the code in response to changes to Agda".
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20150319101413
- Ignore-this: 5a26cf9cf83d0d146cca0c15c857d20c
- * One of the Agda changes has been reverted.
-] 
-
-[Updated the code in response to changes to Agda.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20150217101656
- Ignore-this: a12921aebbe0fb575ef391ba5789a391
-] 
-
-[Modified the copyright year range.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20150213144338
- Ignore-this: 1d1b22457dd6dadcb47f5d7f3eea062
-] 
-
-[Restored Grammar.Abstract and Grammar.Non-terminal.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20130727225031
- Ignore-this: ddccb15caa7a3c26e973997ffdb4eec1
-] 
-
-[Modified the copyright year range.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20141128164015
- Ignore-this: b9c6dddc965738aa2a7670c4c18da67f
-] 
-
-[Updated the code to reflect changes to the library API.
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20141128163950
- Ignore-this: 8094c47f23cef0fcc596ad0c18a92b56
-] 
-
-[TAG Correct-by-Construction Pretty-Printing (2013-07-28)
-Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20130727224432
- Ignore-this: 6aab9b2e6b638457767c8821f3c27cb4
-] 
diff --git a/pkgs/development/libraries/agda/pretty/default.nix b/pkgs/development/libraries/agda/pretty/default.nix
deleted file mode 100644
index de4cfaa6637..00000000000
--- a/pkgs/development/libraries/agda/pretty/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, agda, fetchdarcs, AgdaStdlib }:
-
-agda.mkDerivation (self: rec {
-  version = "2015-03-19";
-  name = "pretty-${version}";
-
-  src = fetchdarcs {
-    url = "http://www.cse.chalmers.se/~nad/repos/pretty/";
-    context = ./contextfile;
-    sha256 = "0zmwh9kln7ykpmkx1qhqz64qm2arq62b17vs5fswnxk7mqxsmrf0";
-  };
-
-  buildDepends = [ AgdaStdlib ];
-  everythingFile = "Pretty.agda";
-  sourceDirectories = [];
-  topSourceDirectories = [ "../$sourceRoot" ];
-
-  meta = with stdenv.lib; {
-    homepage = "http://www.cse.chalmers.se/~nad/publications/danielsson-correct-pretty.html";
-    description = "Correct-by-Construction Pretty-Printing";
-    license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = with maintainers; [ ];
-    broken = true; # 2018-04-11
-  };
-})
diff --git a/pkgs/development/libraries/agda/agda-stdlib/default.nix b/pkgs/development/libraries/agda/standard-library/default.nix
index 6647677f71c..4bff585ac3a 100644
--- a/pkgs/development/libraries/agda/agda-stdlib/default.nix
+++ b/pkgs/development/libraries/agda/standard-library/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, agda, fetchFromGitHub, ghcWithPackages }:
+{ stdenv, mkDerivation, fetchFromGitHub, ghcWithPackages }:
 
-agda.mkDerivation (self: rec {
-  version = "1.1";
-  name = "agda-stdlib-${version}";
+mkDerivation rec {
+  pname = "standard-library";
+  version = "1.3";
 
   src = fetchFromGitHub {
     repo = "agda-stdlib";
     owner = "agda";
     rev = "v${version}";
-    sha256 = "190bxsy92ffmvwpmyyg3lxs91vyss2z25rqz1w79gkj56484cy64";
+    sha256 = "18kl20z3bjfgx5m3nvrdj5776qmpi7jl2p12pqybsls2lf86m0d5";
   };
 
   nativeBuildInputs = [ (ghcWithPackages (self : [ self.filemanip ])) ];
@@ -16,13 +16,11 @@ agda.mkDerivation (self: rec {
     runhaskell GenerateEverything.hs
   '';
 
-  topSourceDirectories = [ "src" ];
-
   meta = with stdenv.lib; {
     homepage = "https://wiki.portal.chalmers.se/agda/pmwiki.php?n=Libraries.StandardLibrary";
     description = "A standard library for use with the Agda compiler";
     license = stdenv.lib.licenses.mit;
     platforms = stdenv.lib.platforms.unix;
-    maintainers = with maintainers; [ jwiegley mudri ];
+    maintainers = with maintainers; [ jwiegley mudri alexarice turion ];
   };
-})
+}
diff --git a/pkgs/development/libraries/alembic/default.nix b/pkgs/development/libraries/alembic/default.nix
index 0c3ba0abaa9..1157142e5b8 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.13";
 
   src = fetchFromGitHub {
     owner = "alembic";
     repo = "alembic";
     rev = version;
-    sha256 = "0a9icrv6pwh2b73lywq1aj7i19pmzpg59iy3ngal8vq4zdciylqc";
+    sha256 = "01j4fsq917jckdh16nvmc35xiy11j4g1sc17y6g8qxa00s2sfsa4";
   };
 
   outputs = [ "bin" "dev" "out" "lib" ];
diff --git a/pkgs/development/libraries/amdvlk/default.nix b/pkgs/development/libraries/amdvlk/default.nix
new file mode 100644
index 00000000000..73983dba050
--- /dev/null
+++ b/pkgs/development/libraries/amdvlk/default.nix
@@ -0,0 +1,86 @@
+{ stdenv
+, lib
+, fetchRepoProject
+, cmake
+, ninja
+, patchelf
+, perl
+, pkgconfig
+, python3
+, expat
+, libdrm
+, ncurses
+, openssl
+, wayland
+, xorg
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "amdvlk";
+  version = "2020.Q3.4";
+
+  src = fetchRepoProject {
+    name = "${pname}-src";
+    manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
+    rev = "refs/tags/v-${version}";
+    sha256 = "13yy1v43wyw2dbanl39sk1798344smmycgvl3gla61ipqls0qfgd";
+  };
+
+  buildInputs = [
+    expat
+    ncurses
+    openssl
+    wayland
+    xorg.libX11
+    xorg.libxcb
+    xorg.xcbproto
+    xorg.libXext
+    xorg.libXrandr
+    xorg.libXft
+    xorg.libxshmfence
+    zlib
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    ninja
+    patchelf
+    perl
+    pkgconfig
+    python3
+  ];
+
+  rpath = lib.makeLibraryPath [
+    libdrm
+    openssl
+    stdenv.cc.cc.lib
+    xorg.libX11
+    xorg.libxcb
+    xorg.libxshmfence
+  ];
+
+  cmakeDir = "../drivers/xgl";
+
+  installPhase = ''
+    install -Dm755 -t $out/lib icd/amdvlk64.so
+    install -Dm644 -t $out/share/vulkan/icd.d ../drivers/AMDVLK/json/Redhat/amd_icd64.json
+
+    substituteInPlace $out/share/vulkan/icd.d/amd_icd64.json --replace \
+      "/usr/lib64" "$out/lib"
+
+    patchelf --set-rpath "$rpath" $out/lib/amdvlk64.so
+  '';
+
+  # Keep the rpath, otherwise vulkaninfo and vkcube segfault
+  dontPatchELF = true;
+
+  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; [ 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/amtk/default.nix b/pkgs/development/libraries/amtk/default.nix
index 48b23079596..b33c45adb41 100644
--- a/pkgs/development/libraries/amtk/default.nix
+++ b/pkgs/development/libraries/amtk/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, gtk3
 , pkgconfig, gnome3, dbus, xvfb_run }:
 let
-  version = "5.0.2";
+  version = "5.1.1";
   pname = "amtk";
 in stdenv.mkDerivation {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i";
+    sha256 = "1wax6mim8dj0m21k8ima7ysm3bzzp54r00jganwbzakq8bfnnrgr";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/apache-activemq/default.nix b/pkgs/development/libraries/apache-activemq/default.nix
index b2323d62dfc..8490541546b 100644
--- a/pkgs/development/libraries/apache-activemq/default.nix
+++ b/pkgs/development/libraries/apache-activemq/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "apache-activemq";
-  version = "5.14.5";
+  version = "5.16.0";
 
   src = fetchurl {
-    sha256 = "0vm8z7rxb9n10xg5xjahy357704fw3q477hmpb83kd1zrc633g54";
+    sha256 = "0x68l4n0v2jqmbawdgpghmhnchpg1jsvxzskj6s4hjll6hdgb6fk";
     url = "mirror://apache/activemq/${version}/${pname}-${version}-bin.tar.gz";
   };
 
diff --git a/pkgs/development/libraries/appstream/default.nix b/pkgs/development/libraries/appstream/default.nix
index bffd281d0de..21bbf8c1bc7 100644
--- a/pkgs/development/libraries/appstream/default.nix
+++ b/pkgs/development/libraries/appstream/default.nix
@@ -47,6 +47,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 9b32d46b3b2..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.870.2";
+  version = "9.900.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
-    sha256 = "0mpp1iq4ws9yhcv0bnn0czzyim7whcan34c7a052sh8w9kp5y6sl";
+    sha256 = "01bdw8y2nhj296px6vfh0ibc4gpfa08qh1gb33vzgp9a8k4mi1np";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/arrow-cpp/default.nix b/pkgs/development/libraries/arrow-cpp/default.nix
index 50de0c88a5b..2c9bced4192 100644
--- a/pkgs/development/libraries/arrow-cpp/default.nix
+++ b/pkgs/development/libraries/arrow-cpp/default.nix
@@ -1,26 +1,32 @@
-{ stdenv, lib, fetchurl, fetchFromGitHub, fetchpatch, fixDarwinDylibNames, autoconf, boost
-, brotli, cmake, flatbuffers, gflags, glog, gtest, lz4, perl
-, python, 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";
-    rev = "46c9e977f58f6c5ef1b81f782f3746b3656e5a8c";
-    sha256 = "1z2s6zh58nf484s0yraw7b1aqgx66dn2wzp1bzv9ndq03msklwly";
+    rev = "bcd9ebcf9204a346df47204fe21b85c8d0498816";
+    sha256 = "0m16pqzbvxiaradq088q5ai6fwnz9srbap996397znwppvva479b";
   };
 
 in stdenv.mkDerivation rec {
   pname = "arrow-cpp";
-  version = "0.16.0";
+  version = "1.0.0";
 
   src = fetchurl {
     url =
       "mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz";
-    sha256 = "1xdp1yni9i1cpml326s78qql1g832m800h7zjlqmk89983g94696";
+    sha256 = "0hzjrhr4brqpmy9f8fbj9p5a482ya8kjhkycz6maa0w2nkzbkpc6";
   };
-
   sourceRoot = "apache-arrow-${version}/cpp";
 
   ARROW_JEMALLOC_URL = fetchurl {
@@ -28,24 +34,35 @@ in stdenv.mkDerivation rec {
     # ./cpp/cmake_modules/ThirdpartyToolchain.cmake
     # ./cpp/thirdparty/versions.txt
     url =
-      "https://github.com/jemalloc/jemalloc/releases/download/5.2.0/jemalloc-5.2.0.tar.bz2";
-    sha256 = "1d73a5c5qdrwck0fa5pxz0myizaf3s9alsvhiqwrjahdlr29zgkl";
+      "https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2";
+    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
-    # Adjust CMake target names to make -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON work.
-    # Remove this when updating to the next version.
+    # Properly exported static targets. Remove at the next version bump.
     (fetchpatch {
-      name = "arrow-use-upstream-cmake-target-names.patch";
-      url = "https://github.com/apache/arrow/commit/396861b38d2f4e805db7c2ecd2c96fff0ca2678b.patch";
-      sha256 = "0ki7nx858374anvwyi4szz5hgnnzv4fghdd05c38bzry9rfljgb1";
+      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 = [
@@ -64,22 +81,26 @@ in stdenv.mkDerivation rec {
     rapidjson
     snappy
     thrift
+    utf8proc
     zlib
     zstd
-    python.pkgs.python
-    python.pkgs.numpy
+  ] ++ lib.optionals enableShared [
+    python3.pkgs.python
+    python3.pkgs.numpy
   ];
 
   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,26 +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"
-    "-DTHRIFT_COMPILER=${thrift}/bin/thrift"
-    "-DTHRIFT_VERSION=${thrift.version}"
   ] ++ 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/asio/1.12.nix b/pkgs/development/libraries/asio/1.12.nix
deleted file mode 100644
index 94fe4c70367..00000000000
--- a/pkgs/development/libraries/asio/1.12.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{callPackage, ... } @ args:
-
-callPackage ./generic.nix (args // {
-  version = "1.12.1";
-  sha256 = "0nln45662kg799ykvqx5m9z9qcsmadmgg6r5najryls7x16in2d9";
-})
diff --git a/pkgs/development/libraries/asio/default.nix b/pkgs/development/libraries/asio/default.nix
new file mode 100644
index 00000000000..9c89b27d371
--- /dev/null
+++ b/pkgs/development/libraries/asio/default.nix
@@ -0,0 +1,6 @@
+{callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // {
+  version = "1.16.1";
+  sha256 = "1333ca6lnsdck4fsgjpbqf4lagxsnbg9970wxlsrinmwvdvdnwg2";
+})
diff --git a/pkgs/development/libraries/asio/generic.nix b/pkgs/development/libraries/asio/generic.nix
index f1ea8a08418..d83a48e61b8 100644
--- a/pkgs/development/libraries/asio/generic.nix
+++ b/pkgs/development/libraries/asio/generic.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
     homepage = "http://asio.sourceforge.net/";
     description = "Cross-platform C++ library for network and low-level I/O programming";
     license = licenses.boost;
-    broken = stdenv.isDarwin;  # test when updating to >=1.12.1
+    broken = stdenv.isDarwin && stdenv.lib.versionOlder version "1.16.1";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/aspell/dictionaries.nix b/pkgs/development/libraries/aspell/dictionaries.nix
index 1d7b7a6f98b..fac55b60651 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 {
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/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/libgme/default.nix b/pkgs/development/libraries/audio/libgme/default.nix
index bcd6070831b..3ac8293986d 100644
--- a/pkgs/development/libraries/audio/libgme/default.nix
+++ b/pkgs/development/libraries/audio/libgme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromBitbucket, cmake }:
+{ stdenv, fetchFromBitbucket, cmake, removeReferencesTo }:
 let
   version = "0.6.3";
 in stdenv.mkDerivation {
@@ -21,4 +21,14 @@ in stdenv.mkDerivation {
   };
 
   buildInputs = [ cmake ];
+
+  nativeBuildInputs = [ removeReferencesTo ];
+
+  # It used to reference it, in the past, but thanks to the postFixup hook, now
+  # it doesn't.
+  disallowedReferences = [ stdenv.cc.cc ];
+
+  postFixup = stdenv.lib.optionalString stdenv.isLinux ''
+    remove-references-to -t ${stdenv.cc.cc} "$(readlink -f $out/lib/libgme.so)"
+  '';
 }
diff --git a/pkgs/development/libraries/audio/libinstpatch/default.nix b/pkgs/development/libraries/audio/libinstpatch/default.nix
index e5f1080631e..3968794d2dc 100644
--- a/pkgs/development/libraries/audio/libinstpatch/default.nix
+++ b/pkgs/development/libraries/audio/libinstpatch/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libinstpatch";
-  version = "1.1.4";
+  version = "1.1.5";
 
   src = fetchFromGitHub {
     owner = "swami";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1v7mv43xxwrzi3agrc60agcw46jaidr8ql9kkm1w4jxkf4c6z6dz";
+    sha256 = "0psx4hc5yksfd3k2xqsc7c8lbz2d4yybikyddyd9hlkhq979cmjb";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/audio/libmysofa/default.nix b/pkgs/development/libraries/audio/libmysofa/default.nix
index df0eecfd0be..c2b2725c19c 100644
--- a/pkgs/development/libraries/audio/libmysofa/default.nix
+++ b/pkgs/development/libraries/audio/libmysofa/default.nix
@@ -2,19 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "libmysofa";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "hoene";
     repo = "libmysofa";
     rev = "v${version}";
-    sha256 = "053inxfl2n6wdgvnn02kf63m92r48ch4wqix9mqf3rgcf1bfkyfa";
+    sha256 = "12jzap5fh0a1fmfy4z8z4kjjlwi0qzdb9z59ijdlyqdzwxnzkccx";
   };
 
   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/lilv/default.nix b/pkgs/development/libraries/audio/lilv/default.nix
index 831cd8c2054..124828b0ff5 100644
--- a/pkgs/development/libraries/audio/lilv/default.nix
+++ b/pkgs/development/libraries/audio/lilv/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lilv";
-  version = "0.24.6";
+  version = "0.24.8";
 
   src = fetchurl {
     url = "https://download.drobilla.net/${pname}-${version}.tar.bz2";
-    sha256 = "1p3hafsxgs5d4za7n66lf5nz74qssfqpmk520cm7iq2njvvlqm2z";
+    sha256 = "0063i5zgf3d3accwmyx651hw0wh5ik7kji2hvfkcdbl1qia3dp6a";
   };
 
   patches = [ ./lilv-pkgconfig.patch ];
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/audio/qm-dsp/default.nix b/pkgs/development/libraries/audio/qm-dsp/default.nix
index d363a559042..a93b031a4d1 100644
--- a/pkgs/development/libraries/audio/qm-dsp/default.nix
+++ b/pkgs/development/libraries/audio/qm-dsp/default.nix
@@ -12,18 +12,18 @@ stdenv.mkDerivation rec {
     owner = "c4dm";
     repo = pname;
     rev = "v${version}";
-    sha256 = "e1PtCIzp7zIz+KKRxEGlAXTNqZ35vPgQ4opJKHIPa+4=";
+    sha256 = "1vkb1xr2hjcaw88gig7rknlwsx01lm0w94d2z0rk5vz9ih4fslvv";
   };
 
   patches = [
     # Make installable
     (fetchpatch {
       url = "https://src.fedoraproject.org/rpms/qm-dsp/raw/6eb385e2f970c4150f9c8eba73b558318475ed15/f/qm-dsp-install.patch";
-      sha256 = "7JDg9yOECWG7Ql5lIoC4L++R1gUlKfztvED5Ey4YLxw=";
+      sha256 = "071g30p17ya0pknzqa950pb93vrgp2024ray8axn22c44gvy147c";
     })
     (fetchpatch {
       url = "https://src.fedoraproject.org/rpms/qm-dsp/raw/6eb385e2f970c4150f9c8eba73b558318475ed15/f/qm-dsp-flags.patch";
-      sha256 = "2HRSbSFxC8DPXOgcflyBYeJI3NwO/1CFmyRdvYo09og=";
+      sha256 = "127n6j5bsp94kf2m1zqfvkf4iqk1h5f7w778bk7w02vi45nm4x6q";
       postFetch = ''
         sed -i 's~/Makefile~/build/linux/Makefile.linux32~g' "$out"
       '';
diff --git a/pkgs/development/libraries/audio/vamp-plugin-sdk/default.nix b/pkgs/development/libraries/audio/vamp-plugin-sdk/default.nix
index f980d42cd7d..0e49a626512 100644
--- a/pkgs/development/libraries/audio/vamp-plugin-sdk/default.nix
+++ b/pkgs/development/libraries/audio/vamp-plugin-sdk/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vamp-plugin-sdk";
-  version = "2.9";
+  version = "2.10";
 
   src = fetchFromGitHub {
     owner = "c4dm";
     repo = "vamp-plugin-sdk";
     rev = "vamp-plugin-sdk-v${version}";
-    sha256 = "1ay12gjqp2wzysg9k2qha3gd8sj5rjlfy4hsl923csi4ssiapsh1";
+    sha256 = "1lhmskcyk7qqfikmasiw7wjry74gc8g5q6a3j1iya84yd7ll0cz6";
   };
 
   nativeBuildInputs = [ pkgconfig ];
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/aws-checksums/default.nix b/pkgs/development/libraries/aws-checksums/default.nix
index de664af86e4..d4ba15e52db 100644
--- a/pkgs/development/libraries/aws-checksums/default.nix
+++ b/pkgs/development/libraries/aws-checksums/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-checksums";
-  version = "0.1.5";
+  version = "0.1.7";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "018fnpn0jc686jxp5wf8qxmjphk3z43l8n1mgcgaa9zw94i24jgk";
+    sha256 = "0am1hfzqir44zcx6y6c7jw74qvbsav8ppr9dahpdh3ac95cjf38a";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/ayatana-ido/default.nix b/pkgs/development/libraries/ayatana-ido/default.nix
new file mode 100644
index 00000000000..41e4c92e56b
--- /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.4.90";
+
+  src = fetchFromGitHub {
+    owner = "AyatanaIndicators";
+    repo = pname;
+    rev = version;
+    sha256 = "02vqjryni96zzrpkq5d7kvgw7nf252d2fm2xq8fklvvb2vz3fa0w";
+  };
+
+  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 dbf7afd596f..0b6c2ce064a 100644
--- a/pkgs/development/libraries/babl/default.nix
+++ b/pkgs/development/libraries/babl/default.nix
@@ -5,17 +5,18 @@
 , pkgconfig
 , gobject-introspection
 , lcms2
+, vala
 }:
 
 stdenv.mkDerivation rec {
   pname = "babl";
-  version = "0.1.74";
+  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 = "03nfcvy3453xkfvsfcnsfcjf2vg2pin09qnr9jlssdysa1lhnwcs";
+    sha256 = "13jgq2i1xkbqw9ijy8sy5iabf5jkviqi0wxlpjcm0n22mwwwqp7p";
   };
 
   nativeBuildInputs = [
@@ -23,6 +24,7 @@ stdenv.mkDerivation rec {
     ninja
     pkgconfig
     gobject-introspection
+    vala
   ];
 
   buildInputs = [
diff --git a/pkgs/development/libraries/bctoolbox/default.nix b/pkgs/development/libraries/bctoolbox/default.nix
index 22578dad38d..d99ee57ef9e 100644
--- a/pkgs/development/libraries/bctoolbox/default.nix
+++ b/pkgs/development/libraries/bctoolbox/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bctoolbox";
-  version = "4.3.1";
+  version = "4.4.0";
 
   nativeBuildInputs = [ cmake bcunit ];
   buildInputs = [ mbedtls ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "1y91jcrma4kjqpm6w5ahlygjsyvx7l8zjrjvq7g2n39jmw175cvs";
+    sha256 = "1r3ymwk10ry6mz4zd08q7l5msq7h15931l7f0clw2siqs8r81x7c";
   };
 
   # Do not build static libraries
diff --git a/pkgs/development/libraries/biblesync/default.nix b/pkgs/development/libraries/biblesync/default.nix
index 814ecf986e9..27c6637d9fe 100644
--- a/pkgs/development/libraries/biblesync/default.nix
+++ b/pkgs/development/libraries/biblesync/default.nix
@@ -3,20 +3,20 @@
 stdenv.mkDerivation rec {
 
   pname = "biblesync";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "karlkleinpaste";
     repo = "biblesync";
     rev = version;
-    sha256 = "1baq2fwf6132i514xrvq05p2gy98mkg1rn5whf9q5k475q81nrlr";
+    sha256 = "0prmd12jq2cjdhsph5v89y38j7hhd51dr3r1hivgkhczr3m5hf4s";
   };
 
   nativeBuildInputs = [ pkgconfig cmake ];
   buildInputs = [ libuuid ];
 
   meta = with stdenv.lib; {
-    homepage = "http://www.crosswire.org/wiki/BibleSync";
+    homepage = "https://wiki.crosswire.org/BibleSync";
     description = "A multicast protocol to Bible software shared conavigation";
     longDescription = ''
       BibleSync is a multicast protocol to support Bible software shared
diff --git a/pkgs/development/libraries/bzrtp/default.nix b/pkgs/development/libraries/bzrtp/default.nix
index 2eb5a2dfcff..d54539d9f25 100644
--- a/pkgs/development/libraries/bzrtp/default.nix
+++ b/pkgs/development/libraries/bzrtp/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bzrtp";
-  version = "4.3.1";
+  version = "4.4.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "14fqp6r9rf7z6j5phbsrdxlbjak03hs8kb94b6jgcrcdxrxhy3fy";
+    sha256 = "1yjmsbqmymzl4r7sba6w4a2yld8m6hzafr6jf7sj0syhwpnc3zv6";
   };
 
   buildInputs = [ bctoolbox sqlite ];
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 c1a75e7753e..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.4";
+  version = "0.17.6";
 
   src = fetchFromGitHub {
     owner = "actor-framework";
     repo = "actor-framework";
     rev = version;
-    sha256 = "04p3kgk1zadadl6n0prwc77nfxrbdasbwbqpws1y9y6f77lrcxdn";
+    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/capstone/default.nix b/pkgs/development/libraries/capstone/default.nix
index b8d00984cd6..5140205ebc8 100644
--- a/pkgs/development/libraries/capstone/default.nix
+++ b/pkgs/development/libraries/capstone/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "capstone";
-  version = "4.0.1";
+  version = "4.0.2";
 
   src = fetchurl {
     url    = "https://github.com/aquynh/capstone/archive/${version}.tar.gz";
-    sha256 = "1isxw2qwy1fi3m3w7igsr5klzczxc5cxndz0a78dfss6ps6ymfvr";
+    sha256 = "0sjjbqps48az4map0kmai7j7dak3gy0xcq0sgx8fg09g0acdg0bw";
   };
 
   # replace faulty macos detection
diff --git a/pkgs/development/libraries/catch2/default.nix b/pkgs/development/libraries/catch2/default.nix
index 960c07e29df..ec3c04856fe 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.1";
+  version = "2.12.2";
 
   src = fetchFromGitHub {
     owner = "catchorg";
     repo = "Catch2";
     rev = "v${version}";
-    sha256="163198lizcr84ify34xjj1955rcgsqhwn87dwifiwyamnggn445f";
+    sha256="17fr2k0jhdcrmmvvb9d8igmjbyads3hkdrakvmrpgc82srm78jcc";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/celt/0.5.1.nix b/pkgs/development/libraries/celt/0.5.1.nix
index e45d74345d4..759dd6254b4 100644
--- a/pkgs/development/libraries/celt/0.5.1.nix
+++ b/pkgs/development/libraries/celt/0.5.1.nix
@@ -1,6 +1,6 @@
 { callPackage, fetchurl, ... } @ args:
 
-callPackage ./generic.nix (args // rec{
+callPackage ./generic.nix (args // rec {
   version = "0.5.1.3";
 
   src = fetchurl {
diff --git a/pkgs/development/libraries/celt/0.7.nix b/pkgs/development/libraries/celt/0.7.nix
index a5dd401ec49..2092941dc76 100644
--- a/pkgs/development/libraries/celt/0.7.nix
+++ b/pkgs/development/libraries/celt/0.7.nix
@@ -1,6 +1,6 @@
 { callPackage, fetchurl, ... } @ args:
 
-callPackage ./generic.nix (args // rec{
+callPackage ./generic.nix (args // rec {
   version = "0.7.1";
 
   src = fetchurl {
diff --git a/pkgs/development/libraries/celt/default.nix b/pkgs/development/libraries/celt/default.nix
index 61352d5caf9..3071b5d7c6b 100644
--- a/pkgs/development/libraries/celt/default.nix
+++ b/pkgs/development/libraries/celt/default.nix
@@ -1,6 +1,6 @@
 { callPackage, fetchurl, ... } @ args:
 
-callPackage ./generic.nix (args // rec{
+callPackage ./generic.nix (args // rec {
   version = "0.11.3";
 
   src = fetchurl {
diff --git a/pkgs/development/libraries/cgui/default.nix b/pkgs/development/libraries/cgui/default.nix
index 39ed74d0075..d6c550a8da8 100644
--- a/pkgs/development/libraries/cgui/default.nix
+++ b/pkgs/development/libraries/cgui/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     description = "A multiplatform basic GUI library";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
+    license = licenses.free;
   };
 }
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/cimg/default.nix b/pkgs/development/libraries/cimg/default.nix
index 8a67ab09a19..312f927767d 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.0";
+  version = "2.9.1";
 
   src = fetchFromGitHub {
     owner = "dtschump";
     repo = "CImg";
     rev = "v.${version}";
-    sha256 = "1x43c1w2kzr6h3j7y3kwiwb7nba0iymck6bq9psvp53mh9xxrfd1";
+    sha256 = "0vl7dscbms4834gm1000sp17pr714pbqwicn40pbl85mxr3pnjp3";
   };
 
   installPhase = ''
diff --git a/pkgs/development/libraries/civetweb/default.nix b/pkgs/development/libraries/civetweb/default.nix
index 35f8f5e663a..4092a9c9c5b 100644
--- a/pkgs/development/libraries/civetweb/default.nix
+++ b/pkgs/development/libraries/civetweb/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256:1drnid6gs97cp9zpvsxz42yfj8djmgx98fg9p2993x9mpi547vzv";
+    sha256 = "1drnid6gs97cp9zpvsxz42yfj8djmgx98fg9p2993x9mpi547vzv";
   };
 
   makeFlags = [
diff --git a/pkgs/development/libraries/cm256cc/default.nix b/pkgs/development/libraries/cm256cc/default.nix
index aaf40998102..eaddcb86f54 100644
--- a/pkgs/development/libraries/cm256cc/default.nix
+++ b/pkgs/development/libraries/cm256cc/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/f4exb/cm256cc";
     platforms = platforms.linux;
     maintainers = with maintainers; [ alkeryn ];
+    license = licenses.gpl3;
   };
 }
diff --git a/pkgs/development/libraries/comedilib/default.nix b/pkgs/development/libraries/comedilib/default.nix
new file mode 100644
index 00000000000..f011c04d885
--- /dev/null
+++ b/pkgs/development/libraries/comedilib/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, flex
+, yacc
+, xmlto
+, docbook_xsl
+, docbook_xml_dtd_44
+, swig
+, perl
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "comedilib";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "Linux-Comedi";
+    repo = "comedilib";
+    rev = "r${stdenv.lib.replaceStrings [ "." ] [ "_" ] version}";
+    sha256 = "159sv4jdgmcaqz76vazkyxxb85ni7pg14p1qv7y94hib3kspc195";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    flex
+    yacc
+    swig
+    xmlto
+    docbook_xml_dtd_44
+    docbook_xsl
+    python3
+    perl
+  ];
+
+  preConfigure = ''
+    patchShebangs --build doc/mkref doc/mkdr perl/Comedi.pm
+  '';
+
+  configureFlags = [
+    "--with-udev-hotplug=${placeholder "out"}/lib"
+    "--sysconfdir=${placeholder "out"}/etc"
+  ];
+
+  outputs = [ "out" "dev" "man" "doc" ];
+
+  meta = with stdenv.lib; {
+    description = "The Linux Control and Measurement Device Interface Library";
+    homepage = "https://github.com/Linux-Comedi/comedilib";
+    license = licenses.lgpl21;
+    maintainers = [ maintainers.doronbehar ];
+    platforms = platforms.linux;
+  };
+}
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 dc742a5c051..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.1";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
-    sha256 = "0ar7q3rp46m01wvfa289bxnk9xma3ydc67by7i4nrpz8vamvhwc3";
+    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/cpputest/default.nix b/pkgs/development/libraries/cpputest/default.nix
index 52d6ce5214e..d219a8e0bec 100644
--- a/pkgs/development/libraries/cpputest/default.nix
+++ b/pkgs/development/libraries/cpputest/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  version = "3.8";
+  version = "4.0";
   pname = "cpputest";
 
   src = fetchurl {
     url = "https://github.com/cpputest/cpputest/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "0mk48xd3klyqi7wf3f4wn4zqxxzmvrhhl32r25jzrixzl72wq7f8";
+    sha256 = "1xslavlb1974y5xvs8n1j9zkk05dlw8imy4saasrjlmibl895ii1";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/curlcpp/default.nix b/pkgs/development/libraries/curlcpp/default.nix
index 274a657cb1a..ead4d1b76bd 100644
--- a/pkgs/development/libraries/curlcpp/default.nix
+++ b/pkgs/development/libraries/curlcpp/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "curlcpp";
-  version = "1.1";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "JosephP91";
     repo = "curlcpp";
     rev = version;
-    sha256 = "025qg5hym73xrvyhalv3jgbf9jqnnzkdjs3zwsgbpqx58zyd5bg5";
+    sha256 = "1zx76jcddqk4zkcdb6p7rsmkjbbjm2cj6drj0c8hdd61ms1d0f3n";
   };
 
   buildInputs = [ cmake curl ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     description = "Object oriented C++ wrapper for CURL";
     platforms = platforms.unix;
     license = licenses.mit;
-    maintainers = with maintainers; [ juliendehos rszibele ];
+    maintainers = with maintainers; [ rszibele ];
   };
 }
 
diff --git a/pkgs/development/libraries/cutelyst/default.nix b/pkgs/development/libraries/cutelyst/default.nix
index 65373547977..94d9776b54d 100644
--- a/pkgs/development/libraries/cutelyst/default.nix
+++ b/pkgs/development/libraries/cutelyst/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cutelyst";
-  version = "2.10.0";
+  version = "2.11.0";
 
   src = fetchFromGitHub {
     owner = "cutelyst";
     repo = "cutelyst";
     rev = "v${version}";
-    sha256 = "1k8pbpwll19l3i3s34l9yhkxj4yqxbrf393nm29jqwlhvi9nz8qm";
+    sha256 = "1c4cjzx6jkqlblcfc7pkx66py43576y6rky19j7rjiap724q2yk9";
   };
 
   nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
diff --git a/pkgs/development/libraries/dav1d/default.nix b/pkgs/development/libraries/dav1d/default.nix
index 6b238074fca..0889fdd0d8f 100644
--- a/pkgs/development/libraries/dav1d/default.nix
+++ b/pkgs/development/libraries/dav1d/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitLab, fetchpatch
+{ stdenv, fetchFromGitLab
 , meson, ninja, nasm, pkgconfig
 , withTools ? false # "dav1d" binary
 , withExamples ? false, SDL2 # "dav1dplay" binary
@@ -9,23 +9,16 @@ assert useVulkan -> withExamples;
 
 stdenv.mkDerivation rec {
   pname = "dav1d";
-  version = "0.6.0";
+  version = "0.7.1";
 
   src = fetchFromGitLab {
     domain = "code.videolan.org";
     owner = "videolan";
     repo = pname;
     rev = version;
-    sha256 = "1gr859xzbqrsp892v9zzzgrg8smnnzgc1jmb68qzl54a4g6jrxm0";
+    sha256 = "1yawrbaazj6a2rvvb58k6kh492fjxdwlm94bl6ipry0fqmz0rlnl";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://code.videolan.org/videolan/dav1d/-/commit/e04227c5f6729b460e0b8e5fb52eae2d5acd15ef.patch";
-      sha256 = "18mpvwviqx0x9k6av98vgpjqlzcjd89g8496zsbf57bw5dadij3l";
-    })
-  ];
-
   nativeBuildInputs = [ meson ninja nasm pkgconfig ];
   # TODO: doxygen (currently only HTML and not build by default).
   buildInputs = stdenv.lib.optional withExamples SDL2
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index a3e3c4ebd89..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.16";
+  version = "1.12.20";
 
   src = fetchurl {
     url = "https://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.gz";
-    sha256 = "107ckxaff1cv4q6kmfdi2fb1nlsv03312a7kf6lb4biglhpjv8jl";
+    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/dclib/default.nix b/pkgs/development/libraries/dclib/default.nix
index 6b42af05c11..a9929ea2add 100644
--- a/pkgs/development/libraries/dclib/default.nix
+++ b/pkgs/development/libraries/dclib/default.nix
@@ -10,7 +10,10 @@ stdenv.mkDerivation {
 
   buildInputs = [libxml2 openssl bzip2];
 
-  meta = {
-    platforms = stdenv.lib.platforms.linux;
+  meta = with stdenv.lib; {
+    description = "Peer-to-Peer file sharing client";
+    homepage = "http://dcgui.berlios.de";
+    platforms = platforms.linux;
+    license = [ licenses.openssl licenses.gpl2 ];
   };
 }
diff --git a/pkgs/development/libraries/dconf/default.nix b/pkgs/development/libraries/dconf/default.nix
index 1612b098600..444b1430dd5 100644
--- a/pkgs/development/libraries/dconf/default.nix
+++ b/pkgs/development/libraries/dconf/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     # https://gitlab.gnome.org/GNOME/dconf/merge_requests/58
     (fetchpatch {
       url = "https://gitlab.gnome.org/GNOME/dconf/commit/b3c9423c6151f3c28e526083ea2f04987a780fdf.patch";
-      sha256 = "zrIPKmgEpa1iIGUKv03+z+GNwJwgdf2hDATgP3i8qk0=";
+      sha256 = "0kdapiw3zq041jhzsx90kk08vqfgzr6vy2k541iav984d0m0zcnf";
     })
   ];
 
diff --git a/pkgs/development/libraries/dlib/default.nix b/pkgs/development/libraries/dlib/default.nix
index e7cc12e0db5..3f59368c278 100644
--- a/pkgs/development/libraries/dlib/default.nix
+++ b/pkgs/development/libraries/dlib/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dlib";
-  version = "19.19";
+  version = "19.21";
 
   src = fetchFromGitHub {
     owner = "davisking";
     repo = "dlib";
     rev ="v${version}";
-    sha256 = "0574p46zf85nx33cam4yqcg20g94kkmrvi5689r1xshprr0szghp";
+    sha256 = "00jwklnl21l3hlvb0bjc6rl3hgi88vxb41dsn4m0kh436c9v0rl3";
   };
 
   postPatch = ''
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/doctest/default.nix b/pkgs/development/libraries/doctest/default.nix
index ae7eca92712..5a256105687 100644
--- a/pkgs/development/libraries/doctest/default.nix
+++ b/pkgs/development/libraries/doctest/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "doctest";
-  version = "2.3.7";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "onqtam";
     repo = "doctest";
     rev = version;
-    sha256 = "134lx7pjnglrl4wdmyr9dz3rjb6d4ir6rvapg00gp52n44dbhnrq";
+    sha256 = "1yi95saqv8qb3ix6w8d7ffvs7qbwvqmq6wblckhxhicxxdxk85cd";
   };
 
   nativeBuildInputs = [ cmake ];
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
new file mode 100644
index 00000000000..05961bce89c
--- /dev/null
+++ b/pkgs/development/libraries/duckdb/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "duckdb";
+  version = "0.1.8";
+
+  src = fetchFromGitHub {
+    owner = "cwida";
+    repo = "duckdb";
+    rev = "v${version}";
+    sha256 = "15qn967q9v23l0sgb2jqb77z4qdkyn1zwdpj4b0rd9zk5h3fzj55";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/cwida/duckdb";
+    description = "DuckDB is an embeddable SQL OLAP Database Management System";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ costrouc ];
+  };
+}
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/exiv2/default.nix b/pkgs/development/libraries/exiv2/default.nix
index 8a6dfd1983e..02d3f1da3e6 100644
--- a/pkgs/development/libraries/exiv2/default.nix
+++ b/pkgs/development/libraries/exiv2/default.nix
@@ -98,7 +98,7 @@ stdenv.mkDerivation rec {
     (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 +108,14 @@ stdenv.mkDerivation rec {
     )
   '';
 
+  # Fix CMake export paths.
+  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 8973eda5d82..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.05";
+  pname = "faudio";
+  version = "20.08";
 
   src = fetchFromGitHub {
     owner = "FNA-XNA";
     repo = "FAudio";
     rev = version;
-    sha256 = "14i0s0m1n57wjwzy54v1czq0w38xplcdsfn4nz5v6fryaxzr5z60";
+    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/ffmpeg-full/default.nix b/pkgs/development/libraries/ffmpeg-full/default.nix
index 120a309b656..1cbcc5471e0 100644
--- a/pkgs/development/libraries/ffmpeg-full/default.nix
+++ b/pkgs/development/libraries/ffmpeg-full/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, pkgconfig, perl, texinfo, yasm
+{ stdenv, ffmpeg, addOpenGLRunpath, fetchurl, fetchpatch, pkgconfig, perl, texinfo, yasm
 /*
  *  Licensing options (yes some are listed twice, filters and such are not listed)
  */
@@ -82,6 +82,7 @@
 #, libnut ? null # NUT (de)muxer, native (de)muser exists
 , libogg ? null # Ogg container used by vorbis & theora
 , libopus ? null # Opus de/encoder
+, librsvg ? null # SVG protocol
 , libssh ? null # SFTP protocol
 , libtheora ? null # Theora encoder
 , libv4l ? null # Video 4 Linux support
@@ -117,6 +118,7 @@
 #, shine ? null # Fixed-point MP3 encoder
 , soxr ? null # Resampling via soxr
 , speex ? null # Speex de/encoder
+, srt ? null # Secure Reliable Transport (SRT) protocol
 #, twolame ? null # MP2 encoder
 #, utvideo ? null # Ut Video de/encoder
 , vid-stab ? null # Video stabilization
@@ -239,14 +241,7 @@ assert opensslExtlib -> gnutls == null && openssl != null && nonfreeLicensing;
 
 stdenv.mkDerivation rec {
   pname = "ffmpeg-full";
-  version = "4.2.2";
-
-  src = fetchurl {
-    url = "https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz";
-    sha256 = "176jn1lcdf0gk7sa5l2mv0faqp5dsqdhx1gqcrgymqhfmdal4xfb";
-  };
-
-  patches = [ ./prefer-libdav1d-over-libaom.patch ];
+  inherit (ffmpeg) src version;
 
   prePatch = ''
     patchShebangs .
@@ -360,6 +355,8 @@ stdenv.mkDerivation rec {
     (enableFeature (libmysofa != null) "libmysofa")
     #(enableFeature (libnut != null) "libnut")
     (enableFeature (libopus != null) "libopus")
+    (enableFeature (librsvg != null) "librsvg")
+    (enableFeature (srt != null) "libsrt")
     (enableFeature (libssh != null) "libssh")
     (enableFeature (libtheora != null) "libtheora")
     (enableFeature (if isLinux then libv4l != null else false) "libv4l2")
@@ -416,14 +413,14 @@ stdenv.mkDerivation rec {
     "--enable-cross-compile"
   ];
 
-  nativeBuildInputs = [ perl pkgconfig texinfo yasm ];
+  nativeBuildInputs = [ addOpenGLRunpath perl pkgconfig texinfo yasm ];
 
   buildInputs = [
     bzip2 celt dav1d fontconfig freetype frei0r fribidi game-music-emu gnutls gsm
     libjack2 ladspaH lame libaom libass libbluray libbs2b libcaca libdc1394 libmodplug libmysofa
-    libogg libopus libssh libtheora libvdpau libvorbis libvpx libwebp libX11
+    libogg libopus librsvg libssh libtheora libvdpau libvorbis libvpx libwebp libX11
     libxcb libXv libXext lzma openal openjpeg libpulseaudio rtmpdump opencore-amr
-    samba SDL2 soxr speex vid-stab vo-amrwbenc wavpack x264 x265 xavs xvidcore
+    samba SDL2 soxr speex srt vid-stab vo-amrwbenc wavpack x264 x265 xavs xvidcore
     zeromq4 zlib
   ] ++ optionals openglExtlib [ libGL libGLU ]
     ++ optionals nonfreeLicensing [ fdk_aac openssl ]
@@ -444,6 +441,13 @@ stdenv.mkDerivation rec {
     cp -a tools/qt-faststart $out/bin/
   '';
 
+  postFixup = optionalString stdenv.isLinux ''
+    # Set RUNPATH so that libnvcuvid and libcuda in /run/opengl-driver(-32)/lib can be found.
+    # See the explanation in addOpenGLRunpath.
+    addOpenGLRunpath $out/lib/libavcodec.so
+    addOpenGLRunpath $out/lib/libavutil.so
+  '';
+
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/ffmpeg-full/prefer-libdav1d-over-libaom.patch b/pkgs/development/libraries/ffmpeg-full/prefer-libdav1d-over-libaom.patch
deleted file mode 100644
index 789bfc2674f..00000000000
--- a/pkgs/development/libraries/ffmpeg-full/prefer-libdav1d-over-libaom.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
-index d2f9a39ce5..2342399a8e 100644
---- a/libavcodec/allcodecs.c
-+++ b/libavcodec/allcodecs.c
-@@ -679,13 +679,13 @@ extern AVCodec ff_pcm_mulaw_at_encoder;
- extern AVCodec ff_pcm_mulaw_at_decoder;
- extern AVCodec ff_qdmc_at_decoder;
- extern AVCodec ff_qdm2_at_decoder;
-+extern AVCodec ff_libdav1d_decoder;
- extern AVCodec ff_libaom_av1_decoder;
- extern AVCodec ff_libaom_av1_encoder;
- extern AVCodec ff_libaribb24_decoder;
- extern AVCodec ff_libcelt_decoder;
- extern AVCodec ff_libcodec2_encoder;
- extern AVCodec ff_libcodec2_decoder;
--extern AVCodec ff_libdav1d_decoder;
- extern AVCodec ff_libdavs2_decoder;
- extern AVCodec ff_libfdk_aac_encoder;
- extern AVCodec ff_libfdk_aac_decoder;
diff --git a/pkgs/development/libraries/ffmpeg/2.8.nix b/pkgs/development/libraries/ffmpeg/2.8.nix
index 3b3fc900ede..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}.15";
+  version = "${branch}.17";
   branch = "2.8";
-  sha256 = "08gf493a1ici1rn6gda6bxkcsk3fqbs6pdr0phcifjkd3xn7yr1m";
+  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 31cb0477c21..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.2.2";
-  branch = "4.2";
-  sha256 = "0p0f024rxrpk8pgmrprhfywq10rvdhrs0422wwcwlxkgqa3x285n";
+  version = "4.3.1";
+  branch = "4.3";
+  sha256 = "1nghcpm2r9ir2h6xpqfn9381jq6aiwlkwlnyplxywvkbjiisr97l";
   darwinFrameworks = [ Cocoa CoreMedia VideoToolbox ];
 } // args)
diff --git a/pkgs/development/libraries/ffmpeg/generic.nix b/pkgs/development/libraries/ffmpeg/generic.nix
index f56447668ea..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")
@@ -163,7 +164,6 @@ stdenv.mkDerivation rec {
   ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
       "--cross-prefix=${stdenv.cc.targetPrefix}"
       "--enable-cross-compile"
-      "--pkg-config=pkg-config" # Override ffmpeg's ./configure assumption that pkg-config is prefixed by the architecture. (e.g. aarch64-unknown-linux-gnu-pkg-config)
   ] ++ optional stdenv.cc.isClang "--cc=clang");
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -174,7 +174,7 @@ stdenv.mkDerivation rec {
     libvorbis lzma soxr x264 x265 xvidcore zlib libopus speex nv-codec-headers
   ] ++ optionals openglSupport [ libGL libGLU ]
     ++ optional libmfxSupport intel-media-sdk
-    ++ optional vpxSupport libaom
+    ++ optional libaomSupport libaom
     ++ optional vpxSupport libvpx
     ++ optionals (!isDarwin && !isAarch32) [ libpulseaudio ] # Need to be fixed on Darwin and ARM
     ++ optional ((isLinux || isFreeBSD) && !isAarch32) libva
@@ -199,9 +199,10 @@ stdenv.mkDerivation rec {
         --replace "includedir=$out" "includedir=''${!outputInclude}"
     done
   '' + optionalString stdenv.isLinux ''
-    # Set RUNPATH so that libnvcuvid in /run/opengl-driver(-32)/lib can be found.
+    # Set RUNPATH so that libnvcuvid and libcuda in /run/opengl-driver(-32)/lib can be found.
     # See the explanation in addOpenGLRunpath.
-    addOpenGLRunpath $out/lib/libavcodec.so*
+    addOpenGLRunpath $out/lib/libavcodec.so
+    addOpenGLRunpath $out/lib/libavutil.so
   '';
 
   installFlags = [ "install-man" ];
diff --git a/pkgs/development/libraries/ffmpegthumbnailer/default.nix b/pkgs/development/libraries/ffmpegthumbnailer/default.nix
index 82a30337348..4e3c10e8829 100644
--- a/pkgs/development/libraries/ffmpegthumbnailer/default.nix
+++ b/pkgs/development/libraries/ffmpegthumbnailer/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, stdenv, ffmpeg, cmake, libpng, pkgconfig, libjpeg
+{ fetchFromGitHub, stdenv, ffmpeg_3, cmake, libpng, pkgconfig, libjpeg
 }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
-  buildInputs = [ ffmpeg libpng libjpeg ];
+  buildInputs = [ ffmpeg_3 libpng libjpeg ];
 
   meta = with stdenv.lib;  {
     homepage = "https://github.com/dirkvdb/ffmpegthumbnailer";
diff --git a/pkgs/development/libraries/ffms/default.nix b/pkgs/development/libraries/ffms/default.nix
index 5a87402e0d9..ebbced19eb8 100644
--- a/pkgs/development/libraries/ffms/default.nix
+++ b/pkgs/development/libraries/ffms/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, zlib, ffmpeg, pkgconfig }:
+{ stdenv, fetchFromGitHub, zlib, ffmpeg_3, pkgconfig }:
 
 stdenv.mkDerivation rec {
   pname = "ffms";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = "-fPIC";
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ zlib ffmpeg ];
+  buildInputs = [ zlib ffmpeg_3 ];
 
   # ffms includes a built-in vapoursynth plugin, see:
   # https://github.com/FFMS/ffms2#avisynth-and-vapoursynth-plugin
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/fmt/default.nix b/pkgs/development/libraries/fmt/default.nix
index 4741a3d156a..be31997e5f9 100644
--- a/pkgs/development/libraries/fmt/default.nix
+++ b/pkgs/development/libraries/fmt/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "fmt";
-  version = "6.2.0";
+  version = "6.2.1";
 
   outputs = [ "out" "dev" ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "fmtlib";
     repo = "fmt";
     rev = version;
-    sha256 = "1vr08a8q94j66gas7ddbpdbq72b2ikd0mkgd5zd3l63610n8qajs";
+    sha256 = "1i6nfxazq4d05r3sxyc3ziwkqq7s8rdbv9p16afv66aqmsbqqqic";
   };
 
   patches = [
@@ -19,14 +19,20 @@ stdenv.mkDerivation rec {
     # https://github.com/fmtlib/fmt/issues/1620
     (fetchpatch {
       url = "https://github.com/fmtlib/fmt/commit/7d01859ef16e6b65bc023ad8bebfedecb088bf81.patch";
-      sha256 = "vdttRGgdltabeRAs4/z0BNtW2dLOhCxtXQFGVFKpEG0=";
+      sha256 = "0v8hm5958ih1bmnjr16fsbcmdnq4ykyf6b0hg6dxd5hxd126vnxx";
     })
 
     # Fix paths in pkg-config file
     # https://github.com/fmtlib/fmt/pull/1657
     (fetchpatch {
       url = "https://github.com/fmtlib/fmt/commit/78f041ab5b40a1145ba686aeb8013e8788b08cd2.patch";
-      sha256 = "hjE6Q/ubA4UhvuJXgcsA3wiGoDK031P19njQRL9JF8M=";
+      sha256 = "1hqp96zl9l3qyvsm7pxl6ah8c26z035q2mz2pqhqa0wvzd1klcc6";
+    })
+
+    # Fix cmake config paths.
+    (fetchpatch {
+      url = "https://github.com/fmtlib/fmt/pull/1702.patch";
+      sha256 = "18cadqi7nac37ymaz3ykxjqs46rvki396g6qkqwp4k00cmic23y3";
     })
   ];
 
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
index e86f08fb553..ddf7bc78180 100644
--- a/pkgs/development/libraries/fontconfig/config-compat.patch
+++ b/pkgs/development/libraries/fontconfig/config-compat.patch
@@ -1,17 +1,22 @@
-commit 05c6adf8104b4321d3a3716a7b9feb6bf223ed0c (HEAD, nixpkgs)
-Author: Vladimír Čunát <vcunat@gmail.com>
-Date:   Tue Nov 4 12:24:25 2014 +0100
+From 2ff9b53ce755be183ef9274f7dd3f9ac537173f6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
+Date: Tue, 4 Nov 2014 12:24:25 +0100
+Subject: [PATCH] add check for /etc/fonts/@configVersion@/fonts.conf
 
-    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.
+It's checked between FONTCONFIG_FILE and the in-package etc/fonts/fonts.conf.
+The latter is used so that on non-NixOS distributions, fontconfig works at least
+with upstream defaults, even when the global config is incompatible.
+
+Co-Authored-By: Jan Tojnar <jtojnar@gmail.com>
+---
+ src/fccfg.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
 
 diff --git a/src/fccfg.c b/src/fccfg.c
-index 6377fd7..e9eb10a 100644
+index 342c996..98a1324 100644
 --- a/src/fccfg.c
 +++ b/src/fccfg.c
-@@ -2070,8 +2070,13 @@ FcConfigFilename (const FcChar8 *url)
+@@ -2391,8 +2391,13 @@ FcConfigGetFilename (FcConfig      *config,
      if (!url || !*url)
      {
  	url = (FcChar8 *) getenv ("FONTCONFIG_FILE");
@@ -22,7 +27,10 @@ index 6377fd7..e9eb10a 100644
 +	}
  	if (!url)
 -	    url = (FcChar8 *) FONTCONFIG_FILE;
-+	    url = (FcChar8 *) "/etc/fonts/fonts.conf";
++	    url = (FcChar8 *) FONTCONFIG_PATH "/" FONTCONFIG_FILE;
      }
      file = 0;
  
+-- 
+2.26.2
+
diff --git a/pkgs/development/libraries/fontconfig/default.nix b/pkgs/development/libraries/fontconfig/default.nix
index 0518cb257ab..29d9e3289c1 100644
--- a/pkgs/development/libraries/fontconfig/default.nix
+++ b/pkgs/development/libraries/fontconfig/default.nix
@@ -1,12 +1,22 @@
-{ 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
+    $FONTCONFIG_FILE, /etc/fonts/${configVersion}/fonts.conf, ${fontconfig.out}/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.
+    and still use *global* font configuration at NixOS,
+    falling back to upstream defaults on 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.
@@ -18,11 +28,11 @@ let
 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 = [
@@ -31,15 +41,56 @@ stdenv.mkDerivation rec {
       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";
+    })
   ];
 
   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 = [
     "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}"
@@ -61,11 +112,20 @@ stdenv.mkDerivation rec {
   postInstall = ''
     cd "$out/etc/fonts"
     xsltproc --stringparam fontDirectories "${dejavu_fonts.minimal}" \
+      --stringparam fontconfig "$out" \
       --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
+
+    # Make it easier to remove user config in NixOS module.
+    mkdir -p $out/etc/fonts/conf.d.bak
+    mv $out/etc/fonts/conf.d/50-user.conf $out/etc/fonts/conf.d.bak
+
+    # update latest 51-local.conf path to look at the latest local.conf
+    substituteInPlace $out/etc/fonts/conf.d/51-local.conf \
+      --replace local.conf /etc/fonts/${configVersion}/local.conf
   '';
 
   passthru = {
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-conf.xsl b/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl
index dddbbe9e516..6ec2e7ab515 100644
--- a/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl
+++ b/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl
@@ -31,6 +31,9 @@
       <!-- versioned system-wide config -->
       <include ignore_missing="yes">/etc/fonts/<xsl:value-of select="$fontconfigConfigVersion" />/conf.d</include>
 
+      <!-- upstream config -->
+      <include><xsl:value-of select="$fontconfig" />/etc/fonts/conf.d</include>
+
       <dir prefix="xdg">fonts</dir>
       <xsl:for-each select="str:tokenize($fontDirectories)">
         <dir><xsl:value-of select="." /></dir>
@@ -40,6 +43,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/freeimage/default.nix b/pkgs/development/libraries/freeimage/default.nix
index 878299f725a..c31f858850c 100644
--- a/pkgs/development/libraries/freeimage/default.nix
+++ b/pkgs/development/libraries/freeimage/default.nix
@@ -1,5 +1,8 @@
 { lib, stdenv, fetchurl, unzip, darwin }:
 
+# TODO: consider unvendoring various dependencies (libpng, libjpeg,
+# libwebp, zlib, ...)
+
 stdenv.mkDerivation {
   name = "freeimage-3.18.0";
 
@@ -50,5 +53,7 @@ stdenv.mkDerivation {
     license = "GPL";
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; unix;
+    # see https://github.com/NixOS/nixpkgs/issues/77653
+    broken = stdenv.isAarch64;
   };
 }
diff --git a/pkgs/development/libraries/freenect/default.nix b/pkgs/development/libraries/freenect/default.nix
index 25a53f7601a..9021e78a5b6 100644
--- a/pkgs/development/libraries/freenect/default.nix
+++ b/pkgs/development/libraries/freenect/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "freenect";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "OpenKinect";
     repo = "libfreenect";
     rev = "v${version}";
-    sha256 = "1963xndbiwgj01q17zv6xbqlsbhfd236dkbdwkbjw4b0gr8kqzq9";
+    sha256 = "0was1va167rqshmpn382h36yyprpfi9cwillb6ylppmnfdrfrhrr";
   };
 
   buildInputs = [ libusb1 freeglut libGLU libGL libXi libXmu ]
diff --git a/pkgs/development/libraries/freetds/default.nix b/pkgs/development/libraries/freetds/default.nix
index 31ce6602963..c1b9318130c 100644
--- a/pkgs/development/libraries/freetds/default.nix
+++ b/pkgs/development/libraries/freetds/default.nix
@@ -8,11 +8,11 @@ assert odbcSupport -> unixODBC != null;
 
 stdenv.mkDerivation rec {
   pname = "freetds";
-  version = "1.1.33";
+  version = "1.1.42";
 
   src = fetchurl {
     url    = "https://www.freetds.org/files/stable/${pname}-${version}.tar.bz2";
-    sha256 = "1gq972ngpdmpb63mc6myxsd0rf3qph95qx542021xh9f2791qffi";
+    sha256 = "02phnk88zv4f8byx954784w8mh33knsslwvj266jfyrmxz6hxxxg";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/freetype/default.nix b/pkgs/development/libraries/freetype/default.nix
index 408578d9c93..24757af09e3 100644
--- a/pkgs/development/libraries/freetype/default.nix
+++ b/pkgs/development/libraries/freetype/default.nix
@@ -14,7 +14,7 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "freetype";
-  version = "2.10.1";
+  version = "2.10.2";
 
   meta = with stdenv.lib; {
     description = "A font rendering engine";
@@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://savannah/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0vx2dg1jh5kq34dd6ifpjywkpapp8a7p1bvyq9yq5zi1i94gmnqn";
+    sha256 = "12rd181yzz6952cyjqaa4253f5szam93cmhw18p33rnj4l8dchqm";
   };
 
   propagatedBuildInputs = [ zlib bzip2 libpng ]; # needed when linking against freetype
diff --git a/pkgs/development/libraries/gamin/default.nix b/pkgs/development/libraries/gamin/default.nix
index b1be17abf37..38451571d8b 100644
--- a/pkgs/development/libraries/gamin/default.nix
+++ b/pkgs/development/libraries/gamin/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation (rec {
     ++ stdenv.lib.optional stdenv.cc.isClang ./returnval.patch
     ++ stdenv.lib.optional stdenv.hostPlatform.isMusl (fetchpatch {
       name = "fix-pthread-mutex.patch";
-      url = "https://git.alpinelinux.org/cgit/aports/plain/main/gamin/fix-pthread-mutex.patch?h=3.4-stable&id=a1a836b089573752c1b0da7d144c0948b04e8ea8";
+      url = "https://git.alpinelinux.org/aports/plain/main/gamin/fix-pthread-mutex.patch?h=3.4-stable&id=a1a836b089573752c1b0da7d144c0948b04e8ea8";
       sha256 = "13igdbqsxb3sz0h417k6ifmq2n4siwqspj6slhc7fdl5wd1fxmdz";
     });
 
diff --git a/pkgs/development/libraries/gbenchmark/default.nix b/pkgs/development/libraries/gbenchmark/default.nix
index cafbe116b1c..e2734c6b199 100644
--- a/pkgs/development/libraries/gbenchmark/default.nix
+++ b/pkgs/development/libraries/gbenchmark/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gbenchmark";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "benchmark";
     rev = "v${version}";
-    sha256 = "0r9dbg4cbk47gwmayys31a83m3y67k0kh1f6pl8i869rbd609ndh";
+    sha256 = "16xlk8h4mfszl4rig22fgpj9kw312az22981ph6pmkf35xsvvv66";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/gcc/libgcc/default.nix b/pkgs/development/libraries/gcc/libgcc/default.nix
index d638c2bb278..f579da5f1d6 100644
--- a/pkgs/development/libraries/gcc/libgcc/default.nix
+++ b/pkgs/development/libraries/gcc/libgcc/default.nix
@@ -63,7 +63,7 @@ stdenvNoLibs.mkDerivation rec {
       export CPP_FOR_TARGET=${stdenvNoLibs.cc}/bin/$CPP
       export LD_FOR_TARGET=${stdenvNoLibs.cc.bintools}/bin/$LD
 
-      export NIX_BUILD_CFLAGS_COMPILE+=' -DGENERATOR_FILE=1'
+      export NIX_CFLAGS_COMPILE_FOR_BUILD+=' -DGENERATOR_FILE=1'
 
       "$sourceRoot/../gcc/configure" $gccConfigureFlags
 
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/gdcm/default.nix b/pkgs/development/libraries/gdcm/default.nix
index 165fe3a2528..a4b5752e887 100644
--- a/pkgs/development/libraries/gdcm/default.nix
+++ b/pkgs/development/libraries/gdcm/default.nix
@@ -1,29 +1,39 @@
-{ stdenv, fetchurl, cmake, vtk, darwin }:
+{ stdenv, fetchurl, cmake, vtk_7, darwin
+, enablePython ? false, python ? null,  swig ? null}:
 
 stdenv.mkDerivation rec {
-  version = "3.0.5";
+  version = "3.0.7";
   pname = "gdcm";
 
   src = fetchurl {
     url = "mirror://sourceforge/gdcm/${pname}-${version}.tar.bz2";
-    sha256 = "16d3sf81n4qhwbbx1d80jg6fhrla5paan384c4bbbqvbhm222yby";
+    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 ] ++ 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/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
index 82fbbc967ef..08b8f70b2d9 100644
--- a/pkgs/development/libraries/gdk-pixbuf/default.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -1,23 +1,43 @@
-{ stdenv, fetchurl, nixosTests, fixDarwinDylibNames, meson, ninja, pkgconfig, gettext, python3, libxml2, libxslt, docbook_xsl
-, docbook_xml_dtd_43, gtk-doc, glib, libtiff, libjpeg, libpng, libX11, gnome3
-, gobject-introspection, doCheck ? false, makeWrapper
+{ stdenv
+, fetchurl
+, nixosTests
+, fixDarwinDylibNames
+, meson
+, ninja
+, pkg-config
+, gettext
+, python3
+, libxml2
+, libxslt
+, docbook-xsl-nons
+, docbook_xml_dtd_43
+, gtk-doc
+, glib
+, libtiff
+, libjpeg
+, libpng
+, gnome3
+, gobject-introspection
+, doCheck ? false
+, makeWrapper
 , fetchpatch
 }:
 
-let
+stdenv.mkDerivation rec {
   pname = "gdk-pixbuf";
   version = "2.40.0";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
+
+  outputs = [ "out" "dev" "man" "devdoc" "installedTests" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "1rnlx9yfw970maxi2x6niaxmih5la11q1ilr7gzshz2kk585k0hm";
   };
 
   patches = [
     # Move installed tests to a separate output
     ./installed-tests-path.patch
+
     # Temporary until the fix is released.
     (fetchpatch {
       name = "tests-circular-table.patch";
@@ -26,24 +46,34 @@ in stdenv.mkDerivation rec {
     })
   ];
 
-  outputs = [ "out" "dev" "man" "devdoc" "installedTests" ];
-
-  setupHook = ./setup-hook.sh;
-
-  # !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
-  buildInputs = [ libX11 ];
-
   nativeBuildInputs = [
-    meson ninja pkgconfig gettext python3 libxml2 libxslt docbook_xsl docbook_xml_dtd_43
-    gtk-doc gobject-introspection makeWrapper glib
-  ]
-    ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+    meson
+    ninja
+    pkg-config
+    gettext
+    python3
+    libxml2
+    libxslt
+    docbook-xsl-nons
+    docbook_xml_dtd_43
+    gtk-doc
+    gobject-introspection
+    makeWrapper
+    glib
+  ] ++ stdenv.lib.optional stdenv.isDarwin [
+    fixDarwinDylibNames
+  ];
 
-  propagatedBuildInputs = [ glib libtiff libjpeg libpng ];
+  propagatedBuildInputs = [
+    glib
+    libtiff
+    libjpeg
+    libpng
+  ];
 
   mesonFlags = [
     "-Ddocs=true"
-    "-Dx11=true"
+    "-Dx11=false" # use gdk-pixbuf-xlib
     "-Dgir=${if gobject-introspection != null then "true" else "false"}"
     "-Dgio_sniffing=false"
   ];
@@ -87,6 +117,8 @@ in stdenv.mkDerivation rec {
   # The tests take an excessive amount of time (> 1.5 hours) and memory (> 6 GB).
   inherit doCheck;
 
+  setupHook = ./setup-hook.sh;
+
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = pname;
@@ -102,8 +134,8 @@ in stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "A library for image loading and manipulation";
-    homepage = "http://library.gnome.org/devel/gdk-pixbuf/";
-    maintainers = [ maintainers.eelco ];
+    homepage = "https://gitlab.gnome.org/GNOME/gdk-pixbuf";
+    maintainers = [ maintainers.eelco ] ++ teams.gnome.members;
     license = licenses.lgpl21;
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/gdk-pixbuf/xlib.nix b/pkgs/development/libraries/gdk-pixbuf/xlib.nix
new file mode 100644
index 00000000000..edc5ce52563
--- /dev/null
+++ b/pkgs/development/libraries/gdk-pixbuf/xlib.nix
@@ -0,0 +1,52 @@
+{ stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, docbook-xsl-nons
+, docbook_xml_dtd_43
+, gtk-doc
+, gdk-pixbuf
+, libX11
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gdk-pixbuf-xlib";
+  version = "2020-06-11-unstable";
+
+  outputs = [ "out" "dev" "devdoc" ];
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "Archive";
+    repo = "gdk-pixbuf-xlib";
+    rev = "3116b8ae55501cf48d16970aa2b50a5530e15223";
+    sha256 = "15wisf2xld3cr7lprnic8fvwpcmww4rydwc1bn2zilyi52vzl2zd";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    docbook-xsl-nons
+    docbook_xml_dtd_43
+    gtk-doc
+  ];
+
+  propagatedBuildInputs = [
+    gdk-pixbuf
+    libX11
+  ];
+
+  mesonFlags = [
+    "-Dgtk_doc=true"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Deprecated API for integrating GdkPixbuf with Xlib data types";
+    homepage = "https://gitlab.gnome.org/Archive/gdk-pixbuf-xlib";
+    maintainers = teams.gnome.members;
+    license = licenses.lgpl21Plus;
+    platforms = platforms.unix;
+  };
+}
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 4810390ac1b..66bbd55ec45 100644
--- a/pkgs/development/libraries/gegl/4.0.nix
+++ b/pkgs/development/libraries/gegl/4.0.nix
@@ -35,26 +35,16 @@
 
 stdenv.mkDerivation rec {
   pname = "gegl";
-  version = "0.4.22";
+  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 = "0q9cckf90fb82qc5d496fjz459f1xw4j4p3rff1f57yivx0yr20q";
+    sha256 = "097427icgpgvcx40019b3dm8m84cchz79pixzpz648drs8p1wdqg";
   };
 
-  patches = [
-    # Prevent deadlock making tests time-out
-    # https://gitlab.gnome.org/GNOME/gegl/issues/226
-    # https://gitlab.gnome.org/GNOME/glib/issues/1941
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gegl/commit/1d530816266b52c8788bbe1504c5b2d6eceba036.patch";
-      sha256 = "8PlUcLQkuskjDGCA2obUPDW3jE++A6B5YWVgvn+GFrU=";
-    })
-  ];
-
   nativeBuildInputs = [
     pkgconfig
     gettext
diff --git a/pkgs/development/libraries/gensio/default.nix b/pkgs/development/libraries/gensio/default.nix
index 20e2f6905ce..169506e66cc 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 = "1.3.3";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = "cminyard";
     repo = "${pname}";
     rev = "v${version}";
-    sha256 = "04yrm3kg8m77kh6z0b9yw4h43fm0d54wnyrd8lp5ddn487kawm5g";
+    sha256 = "0sdqv4j1jjjc2nxnd9h7r4w66bdjl5ksvfia4i4cjj7jfl0hhynl";
   };
 
   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-setup-hook.sh b/pkgs/development/libraries/gettext/gettext-setup-hook.sh
index 69020146f84..5cc9655a89b 100644
--- a/pkgs/development/libraries/gettext/gettext-setup-hook.sh
+++ b/pkgs/development/libraries/gettext/gettext-setup-hook.sh
@@ -13,5 +13,5 @@ addEnvHooks "$hostOffset" gettextDataDirsHook
 if [ -n "@gettextNeedsLdflags@" -a -z "${dontAddExtraLibs-}" ]; then
     # See pkgs/build-support/setup-hooks/role.bash
     getHostRole
-    export NIX_${role_pre}LDFLAGS+=" -lintl"
+    export NIX_LDFLAGS${role_post}+=" -lintl"
 fi
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/gexiv2/default.nix b/pkgs/development/libraries/gexiv2/default.nix
index 14b19bf5a09..9b72ca3524c 100644
--- a/pkgs/development/libraries/gexiv2/default.nix
+++ b/pkgs/development/libraries/gexiv2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gexiv2";
-  version = "0.12.0";
+  version = "0.12.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq";
+    sha256 = "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig gobject-introspection vala gtk-doc docbook_xsl docbook_xml_dtd_43 ];
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/gio-sharp/default.nix b/pkgs/development/libraries/gio-sharp/default.nix
index d7df4ab7212..a19febbfd66 100644
--- a/pkgs/development/libraries/gio-sharp/default.nix
+++ b/pkgs/development/libraries/gio-sharp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoconf, automake, which, pkgconfig, mono, gtk-sharp-2_0 }:
+{ stdenv, fetchFromGitHub, autoconf, automake, which, pkgconfig, mono, glib, gtk-sharp-2_0 }:
 
 stdenv.mkDerivation rec {
   pname = "gio-sharp";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig autoconf automake which ];
-  buildInputs = [ mono gtk-sharp-2_0 ];
+  buildInputs = [ mono glib gtk-sharp-2_0 ];
 
   dontStrip = true;
 
diff --git a/pkgs/development/libraries/gjs/default.nix b/pkgs/development/libraries/gjs/default.nix
index ee29c6a97a4..1cad5c0deb9 100644
--- a/pkgs/development/libraries/gjs/default.nix
+++ b/pkgs/development/libraries/gjs/default.nix
@@ -17,6 +17,7 @@
 , dbus
 , gdk-pixbuf
 , makeWrapper
+, which
 , xvfb_run
 , nixosTests
 }:
@@ -28,11 +29,11 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "gjs";
-  version = "1.64.2";
+  version = "1.64.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gjs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0ywrsfmkxaw11z83dnmb9yqkn6k3c1mkxw2mv6arbwad6x6q7zqm";
+    sha256 = "0k6l2qc2vkws34zrgdhl57qxf0jjkar2iziz6qn4n1w7va73mk53";
   };
 
   outputs = [ "out" "dev" "installedTests" ];
@@ -42,6 +43,7 @@ in stdenv.mkDerivation rec {
     ninja
     pkgconfig
     makeWrapper
+    which # for locale detection
     libxml2 # for xml-stripblanks
   ];
 
@@ -74,11 +76,10 @@ in stdenv.mkDerivation rec {
     ./installed-tests-path.patch
   ];
 
-  # Gio test is failing
-  # https://github.com/NixOS/nixpkgs/pull/81626#issuecomment-599325843
-  doCheck = false;
+  doCheck = true;
 
   postPatch = ''
+    patchShebangs build/choose-tests-locale.sh
     substituteInPlace installed-tests/debugger-test.sh --subst-var-by gjsConsole $out/bin/gjs-console
   '';
 
@@ -95,7 +96,15 @@ in stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
+    # TODO: make the glib setup hook handle this
+    installedTestsSchemaDatadir="$installedTests/share/gsettings-schemas/${pname}-${version}"
+    mkdir -p "$installedTestsSchemaDatadir"
+    mv "$installedTests/share/glib-2.0" "$installedTestsSchemaDatadir"
+  '';
+
+  postFixup = ''
     wrapProgram "$installedTests/libexec/gjs/installed-tests/minijasmine" \
+      --prefix XDG_DATA_DIRS : "$installedTestsSchemaDatadir" \
       --prefix GI_TYPELIB_PATH : "${stdenv.lib.makeSearchPath "lib/girepository-1.0" testDeps}"
   '';
 
diff --git a/pkgs/development/libraries/gjs/installed-tests-path.patch b/pkgs/development/libraries/gjs/installed-tests-path.patch
index 11a39b2dd9a..f9b1515b68e 100644
--- a/pkgs/development/libraries/gjs/installed-tests-path.patch
+++ b/pkgs/development/libraries/gjs/installed-tests-path.patch
@@ -1,5 +1,5 @@
 diff --git a/installed-tests/meson.build b/installed-tests/meson.build
-index 294d20c6..1e5029e0 100644
+index 7e842025..1e5029e0 100644
 --- a/installed-tests/meson.build
 +++ b/installed-tests/meson.build
 @@ -1,7 +1,7 @@
@@ -12,6 +12,19 @@ index 294d20c6..1e5029e0 100644
  
  # Simple shell script tests #
  
+diff --git a/meson.build b/meson.build
+index 084d5396..e5d73fcd 100644
+--- a/meson.build
++++ b/meson.build
+@@ -540,7 +540,7 @@ install_data('installed-tests/extra/lsan.supp',
+     install_dir: get_option('datadir') / api_name / 'lsan')
+ 
+ if get_option('installed_tests')
+-    schemadir = abs_datadir / 'glib-2.0' / 'schemas'
++    schemadir = get_option('installed_test_prefix') / 'share' / 'glib-2.0' / 'schemas'
+     install_data('installed-tests/js/org.gnome.GjsTest.gschema.xml', install_dir: schemadir)
+     meson.add_install_script('build/compile-gschemas.py', schemadir)
+ endif
 diff --git a/meson_options.txt b/meson_options.txt
 index 66f66024..008687cb 100644
 --- a/meson_options.txt
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-networking/default.nix b/pkgs/development/libraries/glib-networking/default.nix
index 882c9f8c3f5..59bf8485971 100644
--- a/pkgs/development/libraries/glib-networking/default.nix
+++ b/pkgs/development/libraries/glib-networking/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "glib-networking";
-  version = "2.64.2";
+  version = "2.64.3";
 
   outputs = [ "out" "installedTests" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "19wmyv7j355z1wk650fyygadbwwmmhqggr54845rn7smbiqz1pj5";
+    sha256 = "0s518l4bwvdvcp51lbjqcw8g0vq18bznpf5hq2zi6a054jqhcylk";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index d74bd0c4067..f7b0667741d 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -48,11 +48,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "glib";
-  version = "2.64.1";
+  version = "2.64.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/glib/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1ixvjmsrj45xq9bq3chhj98jhgcsqa08v627mjx6sjxlph1pd5hp";
+    sha256 = "0l6fggcgdnjif9kzy4crq7520f43bbrgzxz0c821ya3jn8jv7q7p";
   };
 
   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.30-cve-2020-1752.patch b/pkgs/development/libraries/glibc/2.30-cve-2020-1752.patch
new file mode 100644
index 00000000000..75d874b93d0
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.30-cve-2020-1752.patch
@@ -0,0 +1,62 @@
+From: Andreas Schwab <schwab@suse.de>
+Date: Wed, 19 Feb 2020 16:21:46 +0000 (+0100)
+Subject: Fix use-after-free in glob when expanding ~user (bug 25414)
+X-Git-Url: https://sourceware.org/git/?p=glibc.git;a=commitdiff_plain;h=da97c6b88eb03fb834e92964b0895c2ac8d61f63;hp=dd34bce38c822b67fcc42e73969bf6699d6874b6
+
+Fix use-after-free in glob when expanding ~user (bug 25414)
+
+The value of `end_name' points into the value of `dirname', thus don't
+deallocate the latter before the last use of the former.
+
+(cherry picked from commit ddc650e9b3dc916eab417ce9f79e67337b05035c)
+---
+
+diff --git a/posix/glob.c b/posix/glob.c
+index e73e35c510..c6cbd0eb43 100644
+--- a/posix/glob.c
++++ b/posix/glob.c
+@@ -827,31 +827,32 @@ __glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ 	      {
+ 		size_t home_len = strlen (p->pw_dir);
+ 		size_t rest_len = end_name == NULL ? 0 : strlen (end_name);
+-		char *d;
++		char *d, *newp;
++		bool use_alloca = glob_use_alloca (alloca_used,
++						   home_len + rest_len + 1);
+ 
+-		if (__glibc_unlikely (malloc_dirname))
+-		  free (dirname);
+-		malloc_dirname = 0;
+-
+-		if (glob_use_alloca (alloca_used, home_len + rest_len + 1))
+-		  dirname = alloca_account (home_len + rest_len + 1,
+-					    alloca_used);
++		if (use_alloca)
++		  newp = alloca_account (home_len + rest_len + 1, alloca_used);
+ 		else
+ 		  {
+-		    dirname = malloc (home_len + rest_len + 1);
+-		    if (dirname == NULL)
++		    newp = malloc (home_len + rest_len + 1);
++		    if (newp == NULL)
+ 		      {
+ 			scratch_buffer_free (&pwtmpbuf);
+ 			retval = GLOB_NOSPACE;
+ 			goto out;
+ 		      }
+-		    malloc_dirname = 1;
+ 		  }
+-		d = mempcpy (dirname, p->pw_dir, home_len);
++		d = mempcpy (newp, p->pw_dir, home_len);
+ 		if (end_name != NULL)
+ 		  d = mempcpy (d, end_name, rest_len);
+ 		*d = '\0';
+ 
++		if (__glibc_unlikely (malloc_dirname))
++		  free (dirname);
++		dirname = newp;
++		malloc_dirname = !use_alloca;
++
+ 		dirlen = home_len + rest_len;
+ 		dirname_modified = 1;
+ 	      }
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 0429c7295fb..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;
@@ -106,10 +111,10 @@ stdenv.mkDerivation ({
         url = "https://salsa.debian.org/glibc-team/glibc/raw/49767c9f7de4828220b691b29de0baf60d8a54ec/debian/patches/localedata/locale-C.diff";
         sha256 = "0irj60hs2i91ilwg5w7sqrxb695c93xg0ik7yhhq9irprd7fidn4";
       })
-    ]
-    ++ lib.optionals stdenv.isx86_64 [
+
       ./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/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/gmm/default.nix b/pkgs/development/libraries/gmm/default.nix
index eb23f5c82c2..278059465ec 100644
--- a/pkgs/development/libraries/gmm/default.nix
+++ b/pkgs/development/libraries/gmm/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gmm";
-  version = "5.3";
+  version = "5.4";
 
   src = fetchurl {
     url = "mirror://savannah/getfem/stable/${pname}-${version}.tar.gz";
-    sha256 = "0lkjd3n0298w1dli446z320sn7mqdap8h9q31nydkbw2k7b4db46";
+    sha256 = "0mhygfpsdyr0d4h3sn6g7nxn149yrlqv7r2h34yqkrpv1q4daqvi";
   };
 
   meta = with stdenv.lib; {
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/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix
index 6d0faa03a88..f75d107718d 100644
--- a/pkgs/development/libraries/gnutls/default.nix
+++ b/pkgs/development/libraries/gnutls/default.nix
@@ -8,7 +8,7 @@
 
 assert guileBindings -> guile != null;
 let
-  version = "3.6.13";
+  version = "3.6.14";
 
   # XXX: Gnulib's `test-select' fails on FreeBSD:
   # https://hydra.nixos.org/build/2962084/nixlog/1/raw .
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://gnupg/gnutls/v3.6/gnutls-${version}.tar.xz";
-    sha256 = "0f1gnm0756qms5cpx6yn6xb8d3imc2gkqmygf12n9x6r8zs1s11j";
+    sha256 = "0qwxsfizynly0ns537vnhnlm5lh03la4vbsmz675n0n7vqd7ac2n";
   };
 
   outputs = [ "bin" "dev" "out" "man" "devdoc" ];
diff --git a/pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch b/pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch
index 6e56d3fab41..775c2985530 100644
--- a/pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch
+++ b/pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch
@@ -140,3 +140,46 @@
  
  
  def extract_libtool(la_file):
+--- a/tests/scanner/test_shlibs.py
++++ b/tests/scanner/test_shlibs.py
+@@ -7,6 +7,30 @@ from giscanner.shlibs import resolve_from_ldd_output, sanitize_shlib_path
+ 
+ class TestLddParser(unittest.TestCase):
+ 
++    def test_resolve_from_ldd_output_nix(self):
++        output = '''\
++            libglib-2.0.so.0 => @nixStoreDir@/gmrf09y7sfxrr0mcx90dba7w41jj2kzk-glib-2.58.1/lib/libglib-2.0.so.0 (0x00007f0ee1b28000)
++            libgobject-2.0.so.0 => @nixStoreDir@/gmrf09y7sfxrr0mcx90dba7w41jj2kzk-glib-2.58.1/lib/libgobject-2.0.so.0 (0x00007f0ee18cf000)
++            libgio-2.0.so.0 => @nixStoreDir@/gmrf09y7sfxrr0mcx90dba7w41jj2kzk-glib-2.58.1/lib/libgio-2.0.so.0 (0x00007f0ee1502000)
++            libxml2.so.2 => @nixStoreDir@/72mxkk74cv266snkjpz1kwl1i2rg8rpc-libxml2-2.9.8/lib/libxml2.so.2 (0x00007f0ee119c000)
++            libsqlite3.so.0 => @nixStoreDir@/ck5ay23hsmlc67pg3m34kzd1k2hhvww0-sqlite-3.24.0/lib/libsqlite3.so.0 (0x00007f0ee0e98000)
++            libpsl.so.5 => @nixStoreDir@/qn3l2gn7m76f318676wflrs2z6d4rrkj-libpsl-0.20.2-list-2017-02-03/lib/libpsl.so.5 (0x00007f0ee0c88000)
++            libc.so.6 => @nixStoreDir@/g2yk54hifqlsjiha3szr4q3ccmdzyrdv-glibc-2.27/lib/libc.so.6 (0x00007f0ee08d4000)
++            libpcre.so.1 => @nixStoreDir@/hxbq8lpc53qsf1bc0dfcsm47wmcxzjvh-pcre-8.42/lib/libpcre.so.1 (0x00007f0ee0662000)
++            @nixStoreDir@/g2yk54hifqlsjiha3szr4q3ccmdzyrdv-glibc-2.27/lib64/ld-linux-x86-64.so.2 (0x00007f0ee20ff000)
++            libblkid.so.1 => @nixStoreDir@/q0kgnq21j0l2yd77gdlld371246cwghh-util-linux-2.32.1/lib/libblkid.so.1 (0x00007f0edd0cd000)
++            libuuid.so.1 => @nixStoreDir@/q0kgnq21j0l2yd77gdlld371246cwghh-util-linux-2.32.1/lib/libuuid.so.1 (0x00007f0edcec5000)
++            librt.so.1 => @nixStoreDir@/g2yk54hifqlsjiha3szr4q3ccmdzyrdv-glibc-2.27/lib/librt.so.1 (0x00007f0edccbd000)
++            libstdc++.so.6 => @nixStoreDir@/3v5r7fkrbkw2qajadvjbf6p6qriz9p1i-gcc-7.3.0-lib/lib/libstdc++.so.6 (0x00007f0edc936000)
++            libgcc_s.so.1 => @nixStoreDir@/g2yk54hifqlsjiha3szr4q3ccmdzyrdv-glibc-2.27/lib/libgcc_s.so.1 (0x00007f0edc720000)
++        '''
++        libraries = ['glib-2.0', 'gio-2.0']
++
++        self.assertEqual(
++            ['@nixStoreDir@/gmrf09y7sfxrr0mcx90dba7w41jj2kzk-glib-2.58.1/lib/libglib-2.0.so.0',
++             '@nixStoreDir@/gmrf09y7sfxrr0mcx90dba7w41jj2kzk-glib-2.58.1/lib/libgio-2.0.so.0'],
++            resolve_from_ldd_output(libraries, output))
++
+     def test_resolve_from_ldd_output(self):
+         output = '''\
+             libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fbe12d68000)
+@@ -40,7 +64,8 @@ class TestLddParser(unittest.TestCase):
+ 
+         self.assertEqual(
+             sanitize_shlib_path('/foo/bar'),
+-            '/foo/bar' if sys.platform == 'darwin' else 'bar')
++            # NixOS always want the absolute path
++            '/foo/bar')
+ 
+     def test_unresolved_library(self):
+         output = ''
diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix
index 0d514c3fd7d..03b0d1767d9 100644
--- a/pkgs/development/libraries/gobject-introspection/default.nix
+++ b/pkgs/development/libraries/gobject-introspection/default.nix
@@ -1,61 +1,97 @@
-{ stdenv, fetchurl, glib, flex, bison, meson, ninja, pkgconfig, libffi, python3
-, libintl, cctools, cairo, gnome3, glibcLocales
-, substituteAll, nixStoreDir ? builtins.storeDir
+{ stdenv
+, fetchurl
+, glib
+, flex
+, bison
+, meson
+, ninja
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_43
+, docbook_xml_dtd_45
+, pkg-config
+, libffi
+, python3
+, cctools
+, cairo
+, gnome3
+, substituteAll
+, nixStoreDir ? builtins.storeDir
 , x11Support ? true
 }:
+
 # now that gobject-introspection creates large .gir files (eg gtk3 case)
 # it may be worth thinking about using multiple derivation outputs
 # In that case its about 6MB which could be separated
 
-with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "gobject-introspection";
   version = "1.64.1";
 
+  # outputs TODO: share/gobject-introspection-1.0/tests is needed during build
+  # by pygobject3 (and maybe others), but it's only searched in $out
+  outputs = [ "out" "dev" "devdoc" "man" ];
+  outputBin = "dev";
+
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "19vz7vp10h0zj3f491yk72dp89bix6rgkzxg4qcm4d6151ksxgl0";
   };
 
-  outputs = [ "out" "dev" "man" ];
-  outputBin = "dev";
+  patches = [
+    # Make g-ir-scanner put absolute path to GIR files it generates
+    # so that programs can just dlopen them without having to muck
+    # with LD_LIBRARY_PATH environment variable.
+    (substituteAll {
+      src = ./absolute_shlib_path.patch;
+      inherit nixStoreDir;
+    })
+  ] ++ stdenv.lib.optionals x11Support [
+    # Hardcode the cairo shared library path in the Cairo gir shipped with this package.
+    # https://github.com/NixOS/nixpkgs/issues/34080
+    (substituteAll {
+      src = ./absolute_gir_path.patch;
+      cairoLib = "${stdenv.lib.getLib cairo}/lib";
+    })
+  ];
 
-  LC_ALL = "en_US.UTF-8"; # for tests
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    flex
+    bison
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_43 # FIXME: remove in next release
+    docbook_xml_dtd_45
+    python3
+    setupHook # move .gir files
+  ];
 
-  nativeBuildInputs = [ meson ninja pkgconfig libintl glibcLocales ];
-  buildInputs = [ flex bison python3 setupHook/*move .gir*/ ]
-    ++ stdenv.lib.optional stdenv.isDarwin cctools;
-  propagatedBuildInputs = [ libffi glib ];
+  buildInputs = [
+    python3
+  ];
+
+  checkInputs = stdenv.lib.optionals stdenv.isDarwin [
+    cctools # for otool
+  ];
+
+  propagatedBuildInputs = [
+    libffi
+    glib
+  ];
 
   mesonFlags = [
     "--datadir=${placeholder "dev"}/share"
     "-Ddoctool=disabled"
     "-Dcairo=disabled"
+    "-Dgtk_doc=true"
   ];
 
-  # outputs TODO: share/gobject-introspection-1.0/tests is needed during build
-  # by pygobject3 (and maybe others), but it's only searched in $out
-
-  setupHook = ./setup-hook.sh;
-
-  patches = [
-    (substituteAll {
-      src = ./test_shlibs.patch;
-      inherit nixStoreDir;
-    })
-    (substituteAll {
-      src = ./absolute_shlib_path.patch;
-      inherit nixStoreDir;
-    })
-  ] ++ stdenv.lib.optional x11Support # https://github.com/NixOS/nixpkgs/issues/34080
-    (substituteAll {
-      src = ./absolute_gir_path.patch;
-      cairoLib = "${getLib cairo}/lib";
-    });
-
   doCheck = !stdenv.isAarch64;
 
-  preBuild = ''
+  preCheck = ''
     # Our gobject-introspection patches make the shared library paths absolute
     # in the GIR files. When running tests, the library is not yet installed,
     # though, so we need to replace the absolute path with a local one during build.
@@ -64,10 +100,12 @@ stdenv.mkDerivation rec {
     ln -s $PWD/tests/scanner/libregress-1.0${stdenv.targetPlatform.extensions.sharedLibrary} $out/lib/libregress-1.0${stdenv.targetPlatform.extensions.sharedLibrary}
   '';
 
-  preInstall = ''
+  postCheck = ''
     rm $out/lib/libregress-1.0${stdenv.targetPlatform.extensions.sharedLibrary}
   '';
 
+  setupHook = ./setup-hook.sh;
+
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = pname;
@@ -76,9 +114,9 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "A middleware layer between C libraries and language bindings";
-    homepage    = "http://live.gnome.org/GObjectIntrospection";
-    maintainers = with maintainers; [ lovek323 lethalman ];
-    platforms   = platforms.unix;
+    homepage = "https://gi.readthedocs.io/";
+    maintainers = teams.gnome.members ++ (with maintainers; [ lovek323 ]);
+    platforms = platforms.unix;
     license = with licenses; [ gpl2 lgpl2 ];
 
     longDescription = ''
diff --git a/pkgs/development/libraries/gobject-introspection/test_shlibs.patch b/pkgs/development/libraries/gobject-introspection/test_shlibs.patch
deleted file mode 100644
index 65b5a1a13b9..00000000000
--- a/pkgs/development/libraries/gobject-introspection/test_shlibs.patch
+++ /dev/null
@@ -1,43 +0,0 @@
---- a/tests/scanner/test_shlibs.py
-+++ b/tests/scanner/test_shlibs.py
-@@ -7,6 +7,30 @@ from giscanner.shlibs import resolve_from_ldd_output, sanitize_shlib_path
- 
- class TestLddParser(unittest.TestCase):
- 
-+    def test_resolve_from_ldd_output_nix(self):
-+        output = '''\
-+            libglib-2.0.so.0 => @nixStoreDir@/gmrf09y7sfxrr0mcx90dba7w41jj2kzk-glib-2.58.1/lib/libglib-2.0.so.0 (0x00007f0ee1b28000)
-+            libgobject-2.0.so.0 => @nixStoreDir@/gmrf09y7sfxrr0mcx90dba7w41jj2kzk-glib-2.58.1/lib/libgobject-2.0.so.0 (0x00007f0ee18cf000)
-+            libgio-2.0.so.0 => @nixStoreDir@/gmrf09y7sfxrr0mcx90dba7w41jj2kzk-glib-2.58.1/lib/libgio-2.0.so.0 (0x00007f0ee1502000)
-+            libxml2.so.2 => @nixStoreDir@/72mxkk74cv266snkjpz1kwl1i2rg8rpc-libxml2-2.9.8/lib/libxml2.so.2 (0x00007f0ee119c000)
-+            libsqlite3.so.0 => @nixStoreDir@/ck5ay23hsmlc67pg3m34kzd1k2hhvww0-sqlite-3.24.0/lib/libsqlite3.so.0 (0x00007f0ee0e98000)
-+            libpsl.so.5 => @nixStoreDir@/qn3l2gn7m76f318676wflrs2z6d4rrkj-libpsl-0.20.2-list-2017-02-03/lib/libpsl.so.5 (0x00007f0ee0c88000)
-+            libc.so.6 => @nixStoreDir@/g2yk54hifqlsjiha3szr4q3ccmdzyrdv-glibc-2.27/lib/libc.so.6 (0x00007f0ee08d4000)
-+            libpcre.so.1 => @nixStoreDir@/hxbq8lpc53qsf1bc0dfcsm47wmcxzjvh-pcre-8.42/lib/libpcre.so.1 (0x00007f0ee0662000)
-+            @nixStoreDir@/g2yk54hifqlsjiha3szr4q3ccmdzyrdv-glibc-2.27/lib64/ld-linux-x86-64.so.2 (0x00007f0ee20ff000)
-+            libblkid.so.1 => @nixStoreDir@/q0kgnq21j0l2yd77gdlld371246cwghh-util-linux-2.32.1/lib/libblkid.so.1 (0x00007f0edd0cd000)
-+            libuuid.so.1 => @nixStoreDir@/q0kgnq21j0l2yd77gdlld371246cwghh-util-linux-2.32.1/lib/libuuid.so.1 (0x00007f0edcec5000)
-+            librt.so.1 => @nixStoreDir@/g2yk54hifqlsjiha3szr4q3ccmdzyrdv-glibc-2.27/lib/librt.so.1 (0x00007f0edccbd000)
-+            libstdc++.so.6 => @nixStoreDir@/3v5r7fkrbkw2qajadvjbf6p6qriz9p1i-gcc-7.3.0-lib/lib/libstdc++.so.6 (0x00007f0edc936000)
-+            libgcc_s.so.1 => @nixStoreDir@/g2yk54hifqlsjiha3szr4q3ccmdzyrdv-glibc-2.27/lib/libgcc_s.so.1 (0x00007f0edc720000)
-+        '''
-+        libraries = ['glib-2.0', 'gio-2.0']
-+
-+        self.assertEqual(
-+            ['@nixStoreDir@/gmrf09y7sfxrr0mcx90dba7w41jj2kzk-glib-2.58.1/lib/libglib-2.0.so.0',
-+             '@nixStoreDir@/gmrf09y7sfxrr0mcx90dba7w41jj2kzk-glib-2.58.1/lib/libgio-2.0.so.0'],
-+            resolve_from_ldd_output(libraries, output))
-+
-     def test_resolve_from_ldd_output(self):
-         output = '''\
-             libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fbe12d68000)
-@@ -40,7 +64,8 @@ class TestLddParser(unittest.TestCase):
- 
-         self.assertEqual(
-             sanitize_shlib_path('/foo/bar'),
--            '/foo/bar' if sys.platform == 'darwin' else 'bar')
-+            # NixOS always want the absolute path
-+            '/foo/bar')
- 
-     def test_unresolved_library(self):
-         output = ''
diff --git a/pkgs/development/libraries/goffice/default.nix b/pkgs/development/libraries/goffice/default.nix
index f41fa73a6ef..308a4db2800 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.46";
+  version = "0.10.47";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "058d6d3a40e1f60525682ec6b857c441d5deb50d0d30a76804f9f36f865a13a9";
+    sha256 = "0xmigfdzvmlpa0fw79mf3xwchmxc8rlidryn5syv8bz7msmrb215";
   };
 
   nativeBuildInputs = [ pkgconfig intltool ];
diff --git a/pkgs/development/libraries/gom/default.nix b/pkgs/development/libraries/gom/default.nix
index 7d3365f5631..753db22f4f9 100644
--- a/pkgs/development/libraries/gom/default.nix
+++ b/pkgs/development/libraries/gom/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "aNCABqqjtYFpznzxg5SY9FaG+6gRXwms7Lidd+EBip0=";
+    sha256 = "17ca07hpg7dqxjn0jpqim3xqcmplk2a87wbwrrlq3dd3m8381l38";
   };
 
   patches = [
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 39bb8d7571a..ed07d8ba058 100644
--- a/pkgs/development/libraries/gpgme/default.nix
+++ b/pkgs/development/libraries/gpgme/default.nix
@@ -14,25 +14,18 @@ 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 = "9vB2aTv3zeAQS3UxCDfkRjqUlng8lkcyJPgMzdm+Qzc=";
-    })
-    (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 = "pKL1tvUw7PB2w4FHSt2up4SvpFiprBH6TLdgKxYFC3g=";
+      sha256 = "0y0b0lb2nq5p9kx13b59b2jaz157mvflliw1qdvg1v1hynvgb8m4";
     })
     # https://lists.gnupg.org/pipermail/gnupg-devel/2020-April/034591.html
     (fetchpatch {
@@ -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/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/grib-api/default.nix b/pkgs/development/libraries/grib-api/default.nix
index 5a1620db30c..db884957d1e 100644
--- a/pkgs/development/libraries/grib-api/default.nix
+++ b/pkgs/development/libraries/grib-api/default.nix
@@ -2,7 +2,7 @@
   cmake, netcdf, gfortran, libpng, openjpeg,
   enablePython ? false, pythonPackages }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   pname = "grib-api";
   version = "1.28.0";
 
diff --git a/pkgs/development/libraries/grpc/default.nix b/pkgs/development/libraries/grpc/default.nix
index 8549eeffde6..b0fe149b6f0 100644
--- a/pkgs/development/libraries/grpc/default.nix
+++ b/pkgs/development/libraries/grpc/default.nix
@@ -1,25 +1,25 @@
 { stdenv, fetchFromGitHub, fetchpatch, cmake, zlib, c-ares, pkgconfig, openssl, protobuf, gflags, abseil-cpp }:
 
 stdenv.mkDerivation rec {
-  version = "1.28.1"; # N.B: if you change this, change pythonPackages.grpcio and 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 = "17p3xwz5izlqg5ijnim4asl40pr8yhg9wrrmws4g0dk37nkn1x6p";
+    sha256 = "1h7gmhkjijfkpqhz8vswhkz2gkphs638g10dlkayic8xg9xdl4gj";
     fetchSubmodules = true;
   };
   patches = [
     # Fix build on armv6l (https://github.com/grpc/grpc/pull/21341)
     (fetchpatch {
-      url = "https://github.com/grpc/grpc/commit/198d221e775cf73455eeb863672e7a6274d217f1.patch";
-      sha256 = "11k35w6ffvl192rgzzj2hzyzjhizdgk7i56zdkx6v60zxnyfn7yq";
+      url = "https://github.com/grpc/grpc/commit/2f4cf1d9265c8e10fb834f0794d0e4f3ec5ae10e.patch";
+      sha256 = "0ams3jmgh9yzwmxcg4ifb34znamr7pb4qm0609kvil9xqvkqz963";
     })
   ];
 
   nativeBuildInputs = [ cmake pkgconfig ];
-  buildInputs = [ zlib c-ares c-ares.cmake-config openssl protobuf gflags ];
+  buildInputs = [ zlib c-ares c-ares.cmake-config openssl protobuf gflags abseil-cpp ];
 
   cmakeFlags =
     [ "-DgRPC_ZLIB_PROVIDER=package"
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
       "-DgRPC_SSL_PROVIDER=package"
       "-DgRPC_PROTOBUF_PROVIDER=package"
       "-DgRPC_GFLAGS_PROVIDER=package"
+      "-DgRPC_ABSL_PROVIDER=package"
       "-DBUILD_SHARED_LIBS=ON"
       "-DCMAKE_SKIP_BUILD_RPATH=OFF"
     ];
diff --git a/pkgs/development/libraries/gsettings-qt/default.nix b/pkgs/development/libraries/gsettings-qt/default.nix
index 5f09f437f04..cbba9c5fcea 100644
--- a/pkgs/development/libraries/gsettings-qt/default.nix
+++ b/pkgs/development/libraries/gsettings-qt/default.nix
@@ -1,16 +1,19 @@
-{ stdenv, fetchbzr, pkgconfig
+{ stdenv, fetchFromGitLab, pkgconfig
 , qmake, qtbase, qtdeclarative, wrapQtAppsHook
 , glib, gobject-introspection
+, genericUpdater, common-updater-scripts
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "gsettings-qt";
-  version = "0.1.20170824";
+  version = "0.2";
 
-  src = fetchbzr {
-    url = "http://bazaar.launchpad.net/~system-settings-touch/gsettings-qt/trunk";
-    rev = "85";
-    sha256 = "1kcw0fgdyndx9c0dyha11wkj0gi05spdc1adf1609mrinbb4rnyi";
+  src = fetchFromGitLab {
+    group = "ubports";
+    owner = "core";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "14l8xphw4jd9ckqba13cyxq0i362x8lfsd0zlfawwi2z1q1vqm92";
   };
 
   nativeBuildInputs = [
@@ -52,9 +55,15 @@ stdenv.mkDerivation {
     done
   '';
 
+  passthru.updateScript = genericUpdater {
+    inherit pname version;
+    rev-prefix = "v";
+    versionLister = "${common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}";
+  };
+
   meta = with stdenv.lib; {
-    description = "Qt/QML bindings for GSettings";
-    homepage = "https://launchpad.net/gsettings-qt";
+    description = "Library to access GSettings from Qt";
+    homepage = "https://gitlab.com/ubports/core/gsettings-qt";
     license = licenses.lgpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
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/core/default.nix b/pkgs/development/libraries/gstreamer/core/default.nix
index 88bf77a638c..9c4f3ee0251 100644
--- a/pkgs/development/libraries/gstreamer/core/default.nix
+++ b/pkgs/development/libraries/gstreamer/core/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     # https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/436
     (fetchpatch {
       url = "https://gitlab.freedesktop.org/gstreamer/gstreamer/commit/dd2ec3681e2d38e13e01477efa36e851650690fb.patch";
-      sha256 = "CMYQF2MTsC5A0btMpLVLemkwsMtEbzhDXVE3u49xHB4=";
+      sha256 = "07hwf67vndsibm1khvs4rfq30sbs9fss8k5vs502xc0kccbi1ih8";
     })
   ];
 
@@ -99,7 +99,7 @@ stdenv.mkDerivation rec {
   postInstall = ''
     for prog in "$dev/bin/"*; do
         # We can't use --suffix here due to quoting so we craft the export command by hand
-        wrapProgram "$prog" --run "export GST_PLUGIN_SYSTEM_PATH=\$GST_PLUGIN_SYSTEM_PATH"$\{GST_PLUGIN_SYSTEM_PATH:+:\}"\$(unset _tmp; for profile in \$NIX_PROFILES; do _tmp="\$profile/lib/gstreamer-1.0''$\{_tmp:+:\}\$_tmp"; done; printf "\$_tmp")"
+        wrapProgram "$prog" --run 'export GST_PLUGIN_SYSTEM_PATH=$GST_PLUGIN_SYSTEM_PATH''${GST_PLUGIN_SYSTEM_PATH:+:}$(unset _tmp; for profile in $NIX_PROFILES; do _tmp="$profile/lib/gstreamer-1.0''${_tmp:+:}$_tmp"; done; printf '%s' "$_tmp")'
     done
   '';
 
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix
index ad978e903f8..a19e8ca6a5b 100644
--- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix
+++ b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix
@@ -56,5 +56,7 @@ stdenv.mkDerivation rec {
     license     = licenses.lgpl2Plus;
     maintainers = with maintainers; [ lovek323 ];
     platforms   = platforms.unix;
+    # https://github.com/NixOS/nixpkgs/pull/91090#issuecomment-653753497
+    broken = true;
   };
 }
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-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 1e618730cd8..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 = "Laxp9xbo0EunqVCRWJ4rquyV3KzpMssVg5Fj20ebHfM=";
+    sha256 = "0llgq2adzn9p3bfq9rv2dhscmvzs35jp3glrfvy3vs1mrpknmsmf";
   };
 
   patches = [
@@ -75,7 +75,7 @@ stdenv.mkDerivation rec {
     # https://gitlab.gnome.org/GNOME/gtk/merge_requests/1793
     (fetchpatch {
       url = "https://gitlab.gnome.org/GNOME/gtk/commit/6d9db8610eff8c12d594d53b7813d9eea1247801.patch";
-      sha256 = "QHseZWgPlZBDEM2dIVixUJkGZMCaYjahkLmSCqCcoWU=";
+      sha256 = "0rd1kjh0m4mrj2hkcqlsq1j0d6ahn5c237fd211r158gd1jiwys0";
     })
   ] ++ optionals stdenv.isDarwin [
     # X11 module requires <gio/gdesktopappinfo.h> which is not installed on Darwin
diff --git a/pkgs/development/libraries/gtkd/default.nix b/pkgs/development/libraries/gtkd/default.nix
index a03dc51f00c..5cef820db14 100644
--- a/pkgs/development/libraries/gtkd/default.nix
+++ b/pkgs/development/libraries/gtkd/default.nix
@@ -117,7 +117,7 @@ in stdenv.mkDerivation rec {
 
   makeFlags  = [
     "prefix=${placeholder "out"}"
-    "PKG_CONFIG=${pkgconfig}/bin/pkg-config"
+    "PKG_CONFIG=${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config"
   ];
 
   # The .pc files does not declare an `includedir=`, so the multiple
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 c2a924c7e02..d27021280a3 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -1,4 +1,5 @@
 { stdenv, fetchurl, pkgconfig, glib, freetype, cairo, libintl
+, gobject-introspection
 , icu, graphite2, harfbuzz # The icu variant uses and propagates the non-icu one.
 , ApplicationServices, CoreText
 , withCoreText ? false
@@ -8,7 +9,7 @@
 }:
 
 let
-  version = "2.6.4";
+  version = "2.6.7";
   inherit (stdenv.lib) optional optionals optionalString;
 in
 
@@ -17,7 +18,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${version}.tar.xz";
-    sha256 = "04iwq13w6zkdhljmsxrzgg4fyh04qnwfn57rgrl9kmijc7cvh4wl";
+    sha256 = "065jg6s8xix45s4msj0l2r0iycw5yyyjdylripv7pyfzdk883r29";
   };
 
   postPatch = ''
@@ -36,10 +37,16 @@ stdenv.mkDerivation {
     # not auto-detected by default
     "--with-graphite2=${if withGraphite2 then "yes" else "no"}"
     "--with-icu=${if withIcu then "yes" else "no"}"
+    "--with-gobject=yes"
+    "--enable-introspection=yes"
   ]
     ++ stdenv.lib.optional withCoreText "--with-coretext=yes";
 
-  nativeBuildInputs = [ pkgconfig libintl ];
+  nativeBuildInputs = [
+    gobject-introspection
+    libintl
+    pkgconfig
+  ];
 
   buildInputs = [ glib freetype cairo ] # recommended by upstream
     ++ stdenv.lib.optionals withCoreText [ ApplicationServices CoreText ];
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/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/hyperscan/default.nix b/pkgs/development/libraries/hyperscan/default.nix
index d389b69087b..6e0d351b8bc 100644
--- a/pkgs/development/libraries/hyperscan/default.nix
+++ b/pkgs/development/libraries/hyperscan/default.nix
@@ -11,12 +11,12 @@
 
 stdenv.mkDerivation rec {
   pname = "hyperscan";
-  version = "5.2.1";
+  version = "5.3.0";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = pname;
-    sha256 = "09dgvmjhdbrfgrsmjljl4wn06a8zlv9sd4d4l6h6bfbz57d35f95";
+    sha256 = "0psfkzmyhqfrs750b10d0xv37rcz6nwsw1mnc7zagijckwis2wvj";
     rev = "v${version}";
   };
 
diff --git a/pkgs/development/libraries/ignition-math/default.nix b/pkgs/development/libraries/ignition-math/default.nix
deleted file mode 100644
index df4c3230b96..00000000000
--- a/pkgs/development/libraries/ignition-math/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, fetchurl, cmake }:
-
-let
-  version = "2.6.0";
-in
-stdenv.mkDerivation {
-  pname = "ign-math2";
-  inherit version;
-
-  src = fetchurl {
-    url = "http://gazebosim.org/distributions/ign-math/releases/ignition-math2-${version}.tar.bz2";
-    sha256 = "1d4naq0zp704c7ckj2wwmhplxmwkvcs1jib8bklnnd09lhg9j92j";
-  };
-
-  buildInputs = [ cmake ];
-  preConfigure = ''
-    cmakeFlags="$cmakeFlags -DCMAKE_INSTALL_INCLUDEDIR=include -DCMAKE_INSTALL_LIBDIR=lib"
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "https://ignitionrobotics.org/libraries/math";
-    description = "Math library by Ingition Robotics, created for the Gazebo project";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ pxc ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/libraries/ignition-transport/0.9.0.nix b/pkgs/development/libraries/ignition-transport/0.9.0.nix
deleted file mode 100644
index 3452c72839f..00000000000
--- a/pkgs/development/libraries/ignition-transport/0.9.0.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ stdenv, fetchurl, callPackage, ... } @ args :
-
-callPackage ./generic.nix (args // rec {
-  version = "0.9.0";
-  src = fetchurl {
-    url = "http://gazebosim.org/distributions/ign-transport/releases/ignition-transport-${version}.tar.bz2";
-    sha256 = "15a8lkxri8q2gc7h0pj1dg2kivhy46v8d3mlxpjy90l77788bw1z";
-  };
-})
diff --git a/pkgs/development/libraries/ignition-transport/1.0.1.nix b/pkgs/development/libraries/ignition-transport/1.0.1.nix
deleted file mode 100644
index 2f9605a3a72..00000000000
--- a/pkgs/development/libraries/ignition-transport/1.0.1.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ stdenv, fetchurl, callPackage, ... } @ args :
-
-callPackage ./generic.nix (args // rec {
-  version = "1.0.1";
-  src = fetchurl {
-    url = "http://gazebosim.org/distributions/ign-transport/releases/ignition-transport-${version}.tar.bz2";
-    sha256 = "08qyd70vlymms1g4smblags9f057zsn62xxrx29rhd4wy8prnjsq";
-  };
-})
diff --git a/pkgs/development/libraries/ignition-transport/generic.nix b/pkgs/development/libraries/ignition-transport/generic.nix
deleted file mode 100644
index 2573c97aa09..00000000000
--- a/pkgs/development/libraries/ignition-transport/generic.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv, cmake, pkgconfig, utillinux,
-  protobuf, zeromq, cppzmq,
-  version, src    # parametrize version and src so we can easily have pkgs
-                  # for different versions
-  , ...
-}:
-
-stdenv.mkDerivation {
-  pname = "ign-transport";
-  inherit version;
-  inherit src;
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ cmake protobuf zeromq
-    utillinux # we need utillinux/e2fsprogs uuid/uuid.h
-  ];
-
-  propagatedBuildInputs = [ cppzmq ];
-
-  postPatch = ''
-    substituteInPlace cmake/ignition-config.cmake.in --replace "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_" "@CMAKE_INSTALL_"
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "https://ignitionrobotics.org/libraries/math";
-    description = "Math library by Ingition Robotics, created for the Gazebo project";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ pxc ];
-    platforms = platforms.all;
-    broken = true; # 2018-04-10
-  };
-}
diff --git a/pkgs/development/libraries/igraph/default.nix b/pkgs/development/libraries/igraph/default.nix
index fcb5e7918d9..6a55359e168 100644
--- a/pkgs/development/libraries/igraph/default.nix
+++ b/pkgs/development/libraries/igraph/default.nix
@@ -4,28 +4,34 @@
 
 stdenv.mkDerivation rec {
   pname = "igraph";
-  version = "0.7.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "igraph";
     repo = pname;
     rev = version;
-    sha256 = "1wsy0r511gk069il6iqjs27q8cjvqz20gf0a7inybx1bw84845z8";
+    sha256 = "015yh9s19lmxm7l1ld8adlsqh1lrmzicl801saixdwl9w05hfva4";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs = [ flex yacc zlib libxml2 ];
 
-  # This file is normally generated by igraph's bootstrap.sh, but we can do it
-  # ourselves. ~ C.
+  # Normally, igraph wants us to call bootstrap.sh, which will call
+  # tools/getversion.sh. Instead, we're going to put the version directly
+  # where igraph wants, and then let autoreconfHook do the rest of the
+  # bootstrap. ~ C.
   postPatch = ''
-    echo "${version}" > VERSION
+    echo "${version}" > IGRAPH_VERSION
   '';
 
+  doCheck = true;
+
   meta = {
     description = "The network analysis package";
     homepage = "https://igraph.org/";
     license = lib.licenses.gpl2;
+    # NB: Known to fail tests on aarch64.
+    platforms = [ "x86_64-linux" ] ++ lib.platforms.darwin;
     maintainers = [ lib.maintainers.MostAwesomeDude ];
   };
 }
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/impy/default.nix b/pkgs/development/libraries/impy/default.nix
new file mode 100644
index 00000000000..c865b25c000
--- /dev/null
+++ b/pkgs/development/libraries/impy/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, libpng
+, zlib
+, giflib
+, libjpeg
+, SDL2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "impy";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "bcampbell";
+    repo = "impy";
+    rev = "v${version}";
+    sha256 = "1h45xjms56radhknspyx17a12dpnm7xgqm1x1chy42aw5ic8b5qf";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    libpng
+    zlib
+    giflib
+    libjpeg
+    SDL2
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A simple library for loading/saving images and animations, written in C";
+    homepage = "https://github.com/bcampbell/impy";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/pkgs/development/libraries/intel-gmmlib/default.nix b/pkgs/development/libraries/intel-gmmlib/default.nix
index 23b26c9a890..c1e2fa5a6f6 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.3";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "gmmlib";
     rev    = "${pname}-${version}";
-    sha256 = "0k130yiq8n34ppddpgl7kwq5w2y7n49jxiyk7x52y773m97xd6y1";
+    sha256 = "1gsjcsad70pxafhw0jhxdrnfqwv8ffp5sawbgylvc009jlzxh5l8";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/intel-media-driver/default.nix b/pkgs/development/libraries/intel-media-driver/default.nix
index ac4bdb4b14c..c43787c29dd 100644
--- a/pkgs/development/libraries/intel-media-driver/default.nix
+++ b/pkgs/development/libraries/intel-media-driver/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchFromGitHub
-, cmake, pkgconfig
+, cmake, pkg-config
 , libva, libpciaccess, intel-gmmlib, libX11
 }:
 
 stdenv.mkDerivation rec {
   pname = "intel-media-driver";
-  version = "19.4.0r";
+  version = "20.2.0";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "media-driver";
     rev    = "intel-media-${version}";
-    sha256 = "0gnd82z0wgiw5my1hnqlk9hcjjqpsgasqq5xcdrbkfa40wpb132a";
+    sha256 = "02a9wm7cz0nkpyfwic4a0dfm9bx1d2sybgh5rv0c618pl41mla33";
   };
 
   cmakeFlags = [
@@ -21,15 +21,21 @@ stdenv.mkDerivation rec {
     "-DMEDIA_RUN_TEST_SUITE=OFF"
   ];
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkg-config ];
 
   buildInputs = [ libva libpciaccess intel-gmmlib libX11 ];
 
   meta = with stdenv.lib; {
+    description = "Intel Media Driver for VAAPI — Broadwell+ iGPUs";
+    longDescription = ''
+      The Intel Media Driver for VAAPI is a new VA-API (Video Acceleration API)
+      user mode driver supporting hardware accelerated decoding, encoding, and
+      video post processing for GEN based graphics hardware.
+    '';
     homepage = "https://github.com/intel/media-driver";
+    changelog = "https://github.com/intel/media-driver/releases/tag/intel-media-${version}";
     license = with licenses; [ bsd3 mit ];
-    description = "Intel Media Driver for VAAPI — Broadwell+ iGPUs";
     platforms = platforms.linux;
-    maintainers = with maintainers; [ jfrankenau ];
+    maintainers = with maintainers; [ primeos jfrankenau ];
   };
 }
diff --git a/pkgs/development/libraries/intel-media-sdk/default.nix b/pkgs/development/libraries/intel-media-sdk/default.nix
index 411cc227b30..83d901780c5 100644
--- a/pkgs/development/libraries/intel-media-sdk/default.nix
+++ b/pkgs/development/libraries/intel-media-sdk/default.nix
@@ -1,23 +1,28 @@
-{ stdenv, fetchurl, autoPatchelfHook, cmake, pkgconfig, libdrm, libpciaccess
-, libva , libX11, libXau, libXdmcp, libpthreadstubs
-}:
+{ stdenv, fetchurl, cmake, pkgconfig, gtest, libdrm, libpciaccess, libva, libX11
+, libXau, libXdmcp, libpthreadstubs }:
 
 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";
   };
 
-  # patchelf is needed for binaries in $out/share/samples
-  nativeBuildInputs = [ autoPatchelfHook cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
   buildInputs = [
     libdrm libva libpciaccess libX11 libXau libXdmcp libpthreadstubs
   ];
+  checkInputs = [ gtest ];
 
-  enableParallelBuild = true;
+  cmakeFlags = [
+    "-DBUILD_SAMPLES=OFF"
+    "-DBUILD_TESTS=${if doCheck then "ON" else "OFF"}"
+    "-DUSE_SYSTEM_GTEST=ON"
+  ];
+
+  doCheck = true;
 
   meta = with stdenv.lib; {
     description = "Intel Media SDK.";
diff --git a/pkgs/development/libraries/iso-codes/default.nix b/pkgs/development/libraries/iso-codes/default.nix
index 9ab25b410b4..8ba9ea31b80 100644
--- a/pkgs/development/libraries/iso-codes/default.nix
+++ b/pkgs/development/libraries/iso-codes/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "iso-codes";
-  version = "4.4";
+  version = "4.5.0";
 
   src = fetchurl {
     url = "https://salsa.debian.org/iso-codes-team/iso-codes/-/archive/${pname}-${version}/${pname}-${pname}-${version}.tar.bz2";
-    sha256 = "02x0wcz783ammkdrmrh31wsmww481xbkbz70vf766ivbnn5sfxn6";
+    sha256 = "17nnyx07q8vbyqsxbvp4m5s2nrc4fxl3dvgbgmkqww2wl4x1fv9y";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/libraries/itk/4.x.nix b/pkgs/development/libraries/itk/4.x.nix
index 833723d4d2d..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 }:
+{ 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 ];
+  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 6c0298c0f71..84dedfa0b3b 100644
--- a/pkgs/development/libraries/itk/default.nix
+++ b/pkgs/development/libraries/itk/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, cmake, makeWrapper
-, pkgconfig, libX11, libuuid, xz, vtk, Cocoa }:
+, pkgconfig, libX11, libuuid, xz, vtk_7, Cocoa }:
 
 stdenv.mkDerivation rec {
   pname = "itk";
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   nativeBuildInputs = [ cmake xz makeWrapper ];
-  buildInputs = [ libX11 libuuid vtk ] ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa ];
+  buildInputs = [ libX11 libuuid vtk_7 ] ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa ];
 
   postInstall = ''
     wrapProgram "$out/bin/h5c++" --prefix PATH ":" "${pkgconfig}/bin"
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/jansson/default.nix b/pkgs/development/libraries/jansson/default.nix
index c1653ea5d1b..7ecf7579a30 100644
--- a/pkgs/development/libraries/jansson/default.nix
+++ b/pkgs/development/libraries/jansson/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "jansson-2.12";
+  name = "jansson-2.13.1";
 
   src = fetchurl {
     url = "http://www.digip.org/jansson/releases/${name}.tar.gz";
-    sha256 = "1jfj4xq3rdgnkxval1x2gqwhaam34qdxbplsj5fsrvs8a1vfr3az";
+    sha256 = "0ks7gbs0j8p4dmmi2sq129mxy5gfg0z6220i1jk020mi2zd7gwzl";
   };
 
   meta = with stdenv.lib; {
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/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/jbig2dec/default.nix b/pkgs/development/libraries/jbig2dec/default.nix
index 8cc2ce00871..22d38a080ca 100644
--- a/pkgs/development/libraries/jbig2dec/default.nix
+++ b/pkgs/development/libraries/jbig2dec/default.nix
@@ -1,18 +1,19 @@
-{ stdenv, fetchurl, python3, autoconf }:
+{ stdenv, fetchurl, python3, autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  name = "jbig2dec-0.17";
+  pname = "jbig2dec";
+  version = "0.18";
 
   src = fetchurl {
-    url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs950/${name}.tar.gz";
-    sha256 = "0wpvslmwazia3z8gyk343kbq6yj47pxr4x5yjvx332v309qssazp";
+    url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs952/${pname}-${version}.tar.gz";
+    sha256 = "0pigfw2v0ppvr0lbysm69gx0zsa5q2q92yrb8af2j3im6x97f6cy";
   };
 
   postPatch = ''
     patchShebangs test_jbig2dec.py
   '';
 
-  buildInputs = [ autoconf ];
+  buildInputs = [ autoreconfHook ];
 
   checkInputs = [ python3 ];
   doCheck = true;
diff --git a/pkgs/development/libraries/json-c/default.nix b/pkgs/development/libraries/json-c/default.nix
index 81ebc7baeb0..164f7c44ba9 100644
--- a/pkgs/development/libraries/json-c/default.nix
+++ b/pkgs/development/libraries/json-c/default.nix
@@ -1,21 +1,31 @@
-{ stdenv, fetchurl, 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/5d6fa331418d49f1bd488553fd1cfa9ab023fabb.patch";
+      sha256 = "0aar7kgbycqxnhh0lrr61adfbb903nbapalhs5i6h8anxwy1ylcm";
+    })
+  ];
+
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ autoconf ];  # for autoheader
+  nativeBuildInputs = [ cmake ];
 
   meta = with stdenv.lib; {
     description = "A JSON implementation in C";
     homepage    = "https://github.com/json-c/json-c/wiki";
     maintainers = with maintainers; [ lovek323 ];
     platforms   = platforms.unix;
+    license = licenses.mit;
 
     longDescription = ''
       JSON-C implements a reference counting object model that allows you to
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/kde-frameworks/default.nix b/pkgs/development/libraries/kde-frameworks/default.nix
index 3d618f09e38..9ac3ed11b49 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;
           });
 
       };
@@ -105,8 +105,10 @@ let
       kdbusaddons = callPackage ./kdbusaddons.nix {};
       kdnssd = callPackage ./kdnssd.nix {};
       kguiaddons = callPackage ./kguiaddons.nix {};
+      kholidays = callPackage ./kholidays.nix {};
       ki18n = callPackage ./ki18n.nix {};
       kidletime = callPackage ./kidletime.nix {};
+      kirigami2 = callPackage ./kirigami2.nix {};
       kitemmodels = callPackage ./kitemmodels.nix {};
       kitemviews = callPackage ./kitemviews.nix {};
       kplotting = callPackage ./kplotting.nix {};
@@ -117,12 +119,11 @@ let
       networkmanager-qt = callPackage ./networkmanager-qt.nix {};
       oxygen-icons5 = callPackage ./oxygen-icons5.nix {};
       prison = callPackage ./prison.nix {};
+      qqc2-desktop-style = callPackage ./qqc2-desktop-style.nix {};
       solid = callPackage ./solid.nix {};
       sonnet = callPackage ./sonnet.nix {};
       syntax-highlighting = callPackage ./syntax-highlighting.nix {};
       threadweaver = callPackage ./threadweaver.nix {};
-      kirigami2 = callPackage ./kirigami2.nix {};
-      kholidays = callPackage ./kholidays.nix {};
 
     # TIER 2
       kactivities = callPackage ./kactivities.nix {};
diff --git a/pkgs/development/libraries/kde-frameworks/fetch.sh b/pkgs/development/libraries/kde-frameworks/fetch.sh
index b7e6d781471..81a755bd3ba 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.71/)
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..29689c789d3 100644
--- a/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
@@ -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/development/libraries/kde-frameworks/kfilemetadata/default.nix b/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
index c72cb5b71a4..90a7116f42a 100644
--- a/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib, copyPathsToStore,
   extra-cmake-modules,
-  attr, ebook_tools, exiv2, ffmpeg, karchive, kcoreaddons, ki18n, poppler, qtbase, qtmultimedia, taglib
+  attr, ebook_tools, exiv2, ffmpeg_3, karchive, kcoreaddons, ki18n, poppler, qtbase, qtmultimedia, taglib
 }:
 
 mkDerivation {
@@ -9,7 +9,7 @@ mkDerivation {
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
-    attr ebook_tools exiv2 ffmpeg karchive kcoreaddons ki18n poppler qtbase qtmultimedia
+    attr ebook_tools exiv2 ffmpeg_3 karchive kcoreaddons ki18n poppler qtbase qtmultimedia
     taglib
   ];
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
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/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/krunner.nix b/pkgs/development/libraries/kde-frameworks/krunner.nix
index 826999f2f9b..7dd91ffb247 100644
--- a/pkgs/development/libraries/kde-frameworks/krunner.nix
+++ b/pkgs/development/libraries/kde-frameworks/krunner.nix
@@ -1,17 +1,26 @@
 {
-  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 ]; };
+    patches = [
+      # Un-deprecate virtual method to restore binary compatibility.
+      (assert !(lib.versionOlder "5.72" self.version); fetchpatch {
+        url = "https://invent.kde.org/frameworks/krunner/-/commit/8f7ce559b84ee0c21de0256e6591793e4b95f411.diff";
+        sha256 = "124xqxpgmc5fdn1mcf8x1564pqc5y81j7lhzcirql2xcs0sbcyby";
+      })
+    ];
+    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/qqc2-desktop-style.nix b/pkgs/development/libraries/kde-frameworks/qqc2-desktop-style.nix
new file mode 100644
index 00000000000..ed372e01aeb
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/qqc2-desktop-style.nix
@@ -0,0 +1,15 @@
+{ mkDerivation, lib
+, extra-cmake-modules
+, qtquickcontrols2
+, qtx11extras
+, kconfig
+, kiconthemes
+, kirigami2
+}:
+
+mkDerivation {
+  name = "qqc2-desktop-style";
+  meta = { maintainers = with lib.maintainers; [ ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ qtx11extras qtquickcontrols2 kconfig kiconthemes kirigami2 ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/srcs.nix b/pkgs/development/libraries/kde-frameworks/srcs.nix
index ffea42c130f..8ac9d33c8de 100644
--- a/pkgs/development/libraries/kde-frameworks/srcs.nix
+++ b/pkgs/development/libraries/kde-frameworks/srcs.nix
@@ -4,659 +4,659 @@
 
 {
   attica = {
-    version = "5.68.0";
+    version = "5.71.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.71/attica-5.71.0.tar.xz";
+      sha256 = "9e24fd7f58c66879a05e056b781637196eea69d3276ed470643c505f9fd46d3d";
+      name = "attica-5.71.0.tar.xz";
     };
   };
   baloo = {
-    version = "5.68.0";
+    version = "5.71.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.71/baloo-5.71.0.tar.xz";
+      sha256 = "23378213d00ecf1f26eeb417987984f5a63bbd643359403dfd20638cbc1ec84b";
+      name = "baloo-5.71.0.tar.xz";
     };
   };
   bluez-qt = {
-    version = "5.68.0";
+    version = "5.71.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.71/bluez-qt-5.71.0.tar.xz";
+      sha256 = "7014e946f16db62218fe8e9af808999922d447034355f17b9e09b31321e53bad";
+      name = "bluez-qt-5.71.0.tar.xz";
     };
   };
   breeze-icons = {
-    version = "5.68.0";
+    version = "5.71.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.71/breeze-icons-5.71.0.tar.xz";
+      sha256 = "72217c46e071b204a80ff8064b1b7319c7a7f9f0b08e69d8add2065e5d301155";
+      name = "breeze-icons-5.71.0.tar.xz";
     };
   };
   extra-cmake-modules = {
-    version = "5.68.0";
+    version = "5.71.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.71/extra-cmake-modules-5.71.0.tar.xz";
+      sha256 = "64f41c0b4b3164c7be8fcab5c0181253d97d1e9d62455fd540cb463afd051878";
+      name = "extra-cmake-modules-5.71.0.tar.xz";
     };
   };
   frameworkintegration = {
-    version = "5.68.0";
+    version = "5.71.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.71/frameworkintegration-5.71.0.tar.xz";
+      sha256 = "f5ba2d5c363dcb09177424b82d9a59ce0f0a6b2dea372799dcba000452764961";
+      name = "frameworkintegration-5.71.0.tar.xz";
     };
   };
   kactivities = {
-    version = "5.68.0";
+    version = "5.71.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.71/kactivities-5.71.0.tar.xz";
+      sha256 = "b4e63fec6532e4bdc41470985cea46b0a88c1b2298b80286cbf0ed2d2139b66f";
+      name = "kactivities-5.71.0.tar.xz";
     };
   };
   kactivities-stats = {
-    version = "5.68.0";
+    version = "5.71.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.71/kactivities-stats-5.71.0.tar.xz";
+      sha256 = "79fe4f674d7bae457ce6af0357104a8691f5822963b0ef1f99cd5a43e3666978";
+      name = "kactivities-stats-5.71.0.tar.xz";
     };
   };
   kapidox = {
-    version = "5.68.0";
+    version = "5.71.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.71/kapidox-5.71.0.tar.xz";
+      sha256 = "da75660fc2808f38441ec0f59d3c58ce29fcfdcea29e251308a11a92546f1ed5";
+      name = "kapidox-5.71.0.tar.xz";
     };
   };
   karchive = {
-    version = "5.68.0";
+    version = "5.71.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.71/karchive-5.71.0.tar.xz";
+      sha256 = "cc81e856365dec2bcf3ec78aa01d42347ca390a2311ea12050f309dfbdb09624";
+      name = "karchive-5.71.0.tar.xz";
     };
   };
   kauth = {
-    version = "5.68.0";
+    version = "5.71.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.71/kauth-5.71.0.tar.xz";
+      sha256 = "a0de83bd662e20253011216ab8cba597f8db7429f8706237e7307580125025b5";
+      name = "kauth-5.71.0.tar.xz";
     };
   };
   kbookmarks = {
-    version = "5.68.0";
+    version = "5.71.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.71/kbookmarks-5.71.0.tar.xz";
+      sha256 = "e00db1e62a769863a1bf90bb508f108f2740298aa40173cad34ef34a1c23a01a";
+      name = "kbookmarks-5.71.0.tar.xz";
     };
   };
   kcalendarcore = {
-    version = "5.68.0";
+    version = "5.71.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.71/kcalendarcore-5.71.0.tar.xz";
+      sha256 = "d5138db971f6be606be8ae7d761bad778af3cacada8e85fb2f469190c347cd94";
+      name = "kcalendarcore-5.71.0.tar.xz";
     };
   };
   kcmutils = {
-    version = "5.68.0";
+    version = "5.71.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.71/kcmutils-5.71.0.tar.xz";
+      sha256 = "27743a81e9aa48baac12bb844e48d3098250699122ed6040b1e3c50a5e8f276d";
+      name = "kcmutils-5.71.0.tar.xz";
     };
   };
   kcodecs = {
-    version = "5.68.0";
+    version = "5.71.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.71/kcodecs-5.71.0.tar.xz";
+      sha256 = "3392c4df652e3a44a2b941ccb419dee9521642e503104de403ec1c6be9f43a28";
+      name = "kcodecs-5.71.0.tar.xz";
     };
   };
   kcompletion = {
-    version = "5.68.0";
+    version = "5.71.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.71/kcompletion-5.71.0.tar.xz";
+      sha256 = "bf0b6ce1ee133900f169662dbd35da6f766d3e4e02c0c102a9402e20450a22a4";
+      name = "kcompletion-5.71.0.tar.xz";
     };
   };
   kconfig = {
-    version = "5.68.0";
+    version = "5.71.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.71/kconfig-5.71.0.tar.xz";
+      sha256 = "618ff0d168abf8fb73dc83431b9a76f7859d522bea100ff07c7e1632e129e3f4";
+      name = "kconfig-5.71.0.tar.xz";
     };
   };
   kconfigwidgets = {
-    version = "5.68.0";
+    version = "5.71.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.71/kconfigwidgets-5.71.0.tar.xz";
+      sha256 = "5778523c49a5294e9376ce8ee6db1a51ffaa506418a19e8632f73287a596276f";
+      name = "kconfigwidgets-5.71.0.tar.xz";
     };
   };
   kcontacts = {
-    version = "5.68.0";
+    version = "5.71.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.71/kcontacts-5.71.0.tar.xz";
+      sha256 = "57f511a624406b27a7de25c83deb4104c95e851f9fda4f6d94450155ab08f4bd";
+      name = "kcontacts-5.71.0.tar.xz";
     };
   };
   kcoreaddons = {
-    version = "5.68.0";
+    version = "5.71.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.71/kcoreaddons-5.71.0.tar.xz";
+      sha256 = "e95008b032e299cf47f596739d9236701e2f55e507734f33b8ea497882fd130b";
+      name = "kcoreaddons-5.71.0.tar.xz";
     };
   };
   kcrash = {
-    version = "5.68.0";
+    version = "5.71.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.71/kcrash-5.71.0.tar.xz";
+      sha256 = "526242aa9fde7cff11ecaa88bf75d6fbbfc412f46bf19a7a9e185f2adb616005";
+      name = "kcrash-5.71.0.tar.xz";
     };
   };
   kdbusaddons = {
-    version = "5.68.0";
+    version = "5.71.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.71/kdbusaddons-5.71.0.tar.xz";
+      sha256 = "b441f525248d9d675333cebedf97ee0232a3a9b7aa9aff84d825dfcdb3bcd23c";
+      name = "kdbusaddons-5.71.0.tar.xz";
     };
   };
   kdeclarative = {
-    version = "5.68.0";
+    version = "5.71.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.71/kdeclarative-5.71.0.tar.xz";
+      sha256 = "ace0e52f561a9cfba1de4b77144a0a68037a1229530fb39070dc837da80ac8f8";
+      name = "kdeclarative-5.71.0.tar.xz";
     };
   };
   kded = {
-    version = "5.68.0";
+    version = "5.71.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.71/kded-5.71.0.tar.xz";
+      sha256 = "404c8caae0f4abe2ef85c2e82b5db2b14ae4b607fa30e4f16d15dad53c269fcc";
+      name = "kded-5.71.0.tar.xz";
     };
   };
   kdelibs4support = {
-    version = "5.68.0";
+    version = "5.71.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.71/portingAids/kdelibs4support-5.71.0.tar.xz";
+      sha256 = "1110ed68a29e38059d195817735d58df45e59b57fa9ac48ef2036c1037a23fb7";
+      name = "kdelibs4support-5.71.0.tar.xz";
     };
   };
   kdesignerplugin = {
-    version = "5.68.0";
+    version = "5.71.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.71/portingAids/kdesignerplugin-5.71.0.tar.xz";
+      sha256 = "e77a96c2a6cd518f3040e9366f013f0128200791b6c93c3c5b2310af16fb040b";
+      name = "kdesignerplugin-5.71.0.tar.xz";
     };
   };
   kdesu = {
-    version = "5.68.0";
+    version = "5.71.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.71/kdesu-5.71.0.tar.xz";
+      sha256 = "b183e67c089b02f984284b5eb3c05f7216d289bef7ae08a9e6c6f991b2a1a23a";
+      name = "kdesu-5.71.0.tar.xz";
     };
   };
   kdewebkit = {
-    version = "5.68.0";
+    version = "5.71.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.71/portingAids/kdewebkit-5.71.0.tar.xz";
+      sha256 = "04b8b90734ddf6d5e72ffa69707d473e1d1f8605ba06d4ceca83f4a1d195c65d";
+      name = "kdewebkit-5.71.0.tar.xz";
     };
   };
   kdnssd = {
-    version = "5.68.0";
+    version = "5.71.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.71/kdnssd-5.71.0.tar.xz";
+      sha256 = "bc269f0a74eee99d6c49550fc608450ced753a599cd03f77ea577af4c2e87958";
+      name = "kdnssd-5.71.0.tar.xz";
     };
   };
   kdoctools = {
-    version = "5.68.0";
+    version = "5.71.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.71/kdoctools-5.71.0.tar.xz";
+      sha256 = "1e2fcaa97a014e82f68c0c36591ce84568ead7abd59b66e534789103e162cd09";
+      name = "kdoctools-5.71.0.tar.xz";
     };
   };
   kemoticons = {
-    version = "5.68.0";
+    version = "5.71.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.71/kemoticons-5.71.0.tar.xz";
+      sha256 = "20bcb111971cc2e8c17b38a0c20aff7cf453174f885c4b4bcc5899141113e2fc";
+      name = "kemoticons-5.71.0.tar.xz";
     };
   };
   kfilemetadata = {
-    version = "5.68.0";
+    version = "5.71.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.71/kfilemetadata-5.71.0.tar.xz";
+      sha256 = "2e302958065157c1f9ea4a189bbca40b7dbed019767a3380e34e0b6a633c75fe";
+      name = "kfilemetadata-5.71.0.tar.xz";
     };
   };
   kglobalaccel = {
-    version = "5.68.0";
+    version = "5.71.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.71/kglobalaccel-5.71.0.tar.xz";
+      sha256 = "218d77aa4f6089d57932d627c4a46a8a4a5e964c2bfcee0d1c54338c25c7a06c";
+      name = "kglobalaccel-5.71.0.tar.xz";
     };
   };
   kguiaddons = {
-    version = "5.68.0";
+    version = "5.71.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.71/kguiaddons-5.71.0.tar.xz";
+      sha256 = "c1f7bf540a689319962275916c0434f47ba5ed8f7d46a78704393163e32eccd2";
+      name = "kguiaddons-5.71.0.tar.xz";
     };
   };
   kholidays = {
-    version = "5.68.0";
+    version = "5.71.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.71/kholidays-5.71.0.tar.xz";
+      sha256 = "5469718d6ede7edb2ab06bbaff8af01567ba77ffe2160c2c2d47c666cfebf417";
+      name = "kholidays-5.71.0.tar.xz";
     };
   };
   khtml = {
-    version = "5.68.0";
+    version = "5.71.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.71/portingAids/khtml-5.71.0.tar.xz";
+      sha256 = "df8d2a4776f98e1490a21e71e31a2ea7694bc7452da35f88623b19214b6e1c10";
+      name = "khtml-5.71.0.tar.xz";
     };
   };
   ki18n = {
-    version = "5.68.0";
+    version = "5.71.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.71/ki18n-5.71.0.tar.xz";
+      sha256 = "f2fc8c40c10576da8b74070b7dc8e752fdd04204cb2bfe522f37a0458fbaf881";
+      name = "ki18n-5.71.0.tar.xz";
     };
   };
   kiconthemes = {
-    version = "5.68.0";
+    version = "5.71.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.71/kiconthemes-5.71.0.tar.xz";
+      sha256 = "3fa986207e9d967840bd7a3f1af1e4d0105905012a0e4cf56f7ef1b3740b3496";
+      name = "kiconthemes-5.71.0.tar.xz";
     };
   };
   kidletime = {
-    version = "5.68.0";
+    version = "5.71.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.71/kidletime-5.71.0.tar.xz";
+      sha256 = "1bcacd6c9ec8d65f93434f51d865723a50609ec074f88da2890a8f37ea8d207d";
+      name = "kidletime-5.71.0.tar.xz";
     };
   };
   kimageformats = {
-    version = "5.68.0";
+    version = "5.71.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.71/kimageformats-5.71.0.tar.xz";
+      sha256 = "0d6d6a8664e4a01df27e9970ec9ec10a92c1d43a00a3e9ef0471d740b4c93d94";
+      name = "kimageformats-5.71.0.tar.xz";
     };
   };
   kinit = {
-    version = "5.68.0";
+    version = "5.71.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.71/kinit-5.71.0.tar.xz";
+      sha256 = "6ea625bced2c19b0f3e5bb504775dd6764358f02412364a16cbad731c5c299b6";
+      name = "kinit-5.71.0.tar.xz";
     };
   };
   kio = {
-    version = "5.68.0";
+    version = "5.71.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.71/kio-5.71.0.tar.xz";
+      sha256 = "b972c8dede50be3e89babb5a536054759db2a87003e6df770c598c7c1c94b8d6";
+      name = "kio-5.71.0.tar.xz";
     };
   };
   kirigami2 = {
-    version = "5.68.0";
+    version = "5.71.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.71/kirigami2-5.71.0.tar.xz";
+      sha256 = "f323efb96a809dc9e572a0e68e04c4f485fc27f9ae65ffa3988830e348151356";
+      name = "kirigami2-5.71.0.tar.xz";
     };
   };
   kitemmodels = {
-    version = "5.68.0";
+    version = "5.71.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.71/kitemmodels-5.71.0.tar.xz";
+      sha256 = "68205f09d63a916f236e2b3b729c0055377d852de48f7cf29fa7174ca97b84e7";
+      name = "kitemmodels-5.71.0.tar.xz";
     };
   };
   kitemviews = {
-    version = "5.68.0";
+    version = "5.71.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.71/kitemviews-5.71.0.tar.xz";
+      sha256 = "2843ef166ff5bf69c1132bbc09545b59ad208313c0acad71d0cd951fde1d33de";
+      name = "kitemviews-5.71.0.tar.xz";
     };
   };
   kjobwidgets = {
-    version = "5.68.0";
+    version = "5.71.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.71/kjobwidgets-5.71.0.tar.xz";
+      sha256 = "63f3b2fc1c062b1a485ff543e2d5afa68a9f9a918676bf3a6a5dc8f56f5f30e3";
+      name = "kjobwidgets-5.71.0.tar.xz";
     };
   };
   kjs = {
-    version = "5.68.0";
+    version = "5.71.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.71/portingAids/kjs-5.71.0.tar.xz";
+      sha256 = "702224482139e500da1ea4e0d2b5132bf762f87f426f294587a0f2f47b9a9734";
+      name = "kjs-5.71.0.tar.xz";
     };
   };
   kjsembed = {
-    version = "5.68.0";
+    version = "5.71.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.71/portingAids/kjsembed-5.71.0.tar.xz";
+      sha256 = "9352a31b5f735d71d6db4b09825ca01adb337e37f2b0cfce48c679e932238486";
+      name = "kjsembed-5.71.0.tar.xz";
     };
   };
   kmediaplayer = {
-    version = "5.68.0";
+    version = "5.71.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.71/portingAids/kmediaplayer-5.71.0.tar.xz";
+      sha256 = "72492a6c877dded4f2333f140c025fdc4a271a68695c635c0dbc09b08d832eca";
+      name = "kmediaplayer-5.71.0.tar.xz";
     };
   };
   knewstuff = {
-    version = "5.68.0";
+    version = "5.71.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.71/knewstuff-5.71.0.tar.xz";
+      sha256 = "aba867855d69641f73db30405e787fc9ea22e3386a45be9626ba84cbe208f855";
+      name = "knewstuff-5.71.0.tar.xz";
     };
   };
   knotifications = {
-    version = "5.68.0";
+    version = "5.71.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.71/knotifications-5.71.0.tar.xz";
+      sha256 = "b900146340621d54f6113600e85d287b28225d82515affb8690704433e5d0440";
+      name = "knotifications-5.71.0.tar.xz";
     };
   };
   knotifyconfig = {
-    version = "5.68.0";
+    version = "5.71.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.71/knotifyconfig-5.71.0.tar.xz";
+      sha256 = "226b7f956f7013027621c4018b4376b76129ea4195df67fc7df4435c54baf50e";
+      name = "knotifyconfig-5.71.0.tar.xz";
     };
   };
   kpackage = {
-    version = "5.68.0";
+    version = "5.71.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.71/kpackage-5.71.0.tar.xz";
+      sha256 = "c4b924e7c506cb75bdaaf68bd881e79a73999bd6436f29157f56c76f32b48cba";
+      name = "kpackage-5.71.0.tar.xz";
     };
   };
   kparts = {
-    version = "5.68.0";
+    version = "5.71.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.71/kparts-5.71.0.tar.xz";
+      sha256 = "d038f97dfdccdd85dbac09c0f64cf852191ec2e535fd7928740e03d4ffe63b90";
+      name = "kparts-5.71.0.tar.xz";
     };
   };
   kpeople = {
-    version = "5.68.0";
+    version = "5.71.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.71/kpeople-5.71.0.tar.xz";
+      sha256 = "d63d5f5cbbedc2e4ef85fa8c2ff4adcd5cb9e05d1d1ee0e7b2c2d151193f5403";
+      name = "kpeople-5.71.0.tar.xz";
     };
   };
   kplotting = {
-    version = "5.68.0";
+    version = "5.71.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.71/kplotting-5.71.0.tar.xz";
+      sha256 = "84bacfbd86105e454f3d97f4ac4062e2f992556fca66d2c73806d1d12095bec1";
+      name = "kplotting-5.71.0.tar.xz";
     };
   };
   kpty = {
-    version = "5.68.0";
+    version = "5.71.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.71/kpty-5.71.0.tar.xz";
+      sha256 = "7629d35ff783aff8fe801db30eb146efe50620f7500c4f7f1bf7d2619568c6b9";
+      name = "kpty-5.71.0.tar.xz";
     };
   };
   kquickcharts = {
-    version = "5.68.0";
+    version = "5.71.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.71/kquickcharts-5.71.0.tar.xz";
+      sha256 = "a1befe13903676a9779030b02b91da9889540e689e1f6a0afd54ff484109642a";
+      name = "kquickcharts-5.71.0.tar.xz";
     };
   };
   kross = {
-    version = "5.68.0";
+    version = "5.71.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.71/portingAids/kross-5.71.0.tar.xz";
+      sha256 = "ac42ed4ec39ddaea0a4668803271f6f5de513fcdd1243d02b296544ab601bb1c";
+      name = "kross-5.71.0.tar.xz";
     };
   };
   krunner = {
-    version = "5.68.0";
+    version = "5.71.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.71/krunner-5.71.0.tar.xz";
+      sha256 = "fb3ce4c587a1b114550487b5716f0aba53b775018b6eef2ae48b8d6fdda40952";
+      name = "krunner-5.71.0.tar.xz";
     };
   };
   kservice = {
-    version = "5.68.0";
+    version = "5.71.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.71/kservice-5.71.0.tar.xz";
+      sha256 = "6b7f4784cb514ec966f3cb01d26aa2dbdfd2425919efa57a4efa6117fcafc9ce";
+      name = "kservice-5.71.0.tar.xz";
     };
   };
   ktexteditor = {
-    version = "5.68.0";
+    version = "5.71.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.71/ktexteditor-5.71.0.tar.xz";
+      sha256 = "6e50b6669b288f8e624cba11bca53b78748faf6cb978628f02664038cfa294da";
+      name = "ktexteditor-5.71.0.tar.xz";
     };
   };
   ktextwidgets = {
-    version = "5.68.0";
+    version = "5.71.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.71/ktextwidgets-5.71.0.tar.xz";
+      sha256 = "0a7fae03d8b59ec8a4f7c49a228536ea4121bd3d8f19fb1ff9831ada428509f4";
+      name = "ktextwidgets-5.71.0.tar.xz";
     };
   };
   kunitconversion = {
-    version = "5.68.0";
+    version = "5.71.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.71/kunitconversion-5.71.0.tar.xz";
+      sha256 = "65bfba8e88e2cf6de40e06ce24fe5f48948cc92f16ce78eb8538de532dcf36cb";
+      name = "kunitconversion-5.71.0.tar.xz";
     };
   };
   kwallet = {
-    version = "5.68.0";
+    version = "5.71.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.71/kwallet-5.71.0.tar.xz";
+      sha256 = "d53b5bc4bbe054101b012d63672efc30af6a5aea58f467037cab4735b6ace9b5";
+      name = "kwallet-5.71.0.tar.xz";
     };
   };
   kwayland = {
-    version = "5.68.0";
+    version = "5.71.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.71/kwayland-5.71.0.tar.xz";
+      sha256 = "369ba54b485214687e719bc9216e3bb50849df3af9a3ec0e95cf5d5687c847c2";
+      name = "kwayland-5.71.0.tar.xz";
     };
   };
   kwidgetsaddons = {
-    version = "5.68.0";
+    version = "5.71.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.71/kwidgetsaddons-5.71.0.tar.xz";
+      sha256 = "897077995bcf4125d0f90d2964500e718d2a3fd5f117e1b7906177ad13a5082e";
+      name = "kwidgetsaddons-5.71.0.tar.xz";
     };
   };
   kwindowsystem = {
-    version = "5.68.0";
+    version = "5.71.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.71/kwindowsystem-5.71.0.tar.xz";
+      sha256 = "a3613aea6fa73ebc53f28c011a6bca31ed157e29f85df767e617c44399360cda";
+      name = "kwindowsystem-5.71.0.tar.xz";
     };
   };
   kxmlgui = {
-    version = "5.68.0";
+    version = "5.71.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.71/kxmlgui-5.71.0.tar.xz";
+      sha256 = "2e4b2563daeedf35a54d38002c05d7c39017a36c0b8a19c236ea87324eebf7cc";
+      name = "kxmlgui-5.71.0.tar.xz";
     };
   };
   kxmlrpcclient = {
-    version = "5.68.0";
+    version = "5.71.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.71/portingAids/kxmlrpcclient-5.71.0.tar.xz";
+      sha256 = "5947de8ec9cd57d8ccf6ea8a764066733d2633d93e11f94ecfb47a75e1e7a91f";
+      name = "kxmlrpcclient-5.71.0.tar.xz";
     };
   };
   modemmanager-qt = {
-    version = "5.68.0";
+    version = "5.71.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.71/modemmanager-qt-5.71.0.tar.xz";
+      sha256 = "b2e5e2a8b8fe2e9fb22bb7dc77177a975727991c6c0ee19d5a9b0a2ab513531d";
+      name = "modemmanager-qt-5.71.0.tar.xz";
     };
   };
   networkmanager-qt = {
-    version = "5.68.0";
+    version = "5.71.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.71/networkmanager-qt-5.71.0.tar.xz";
+      sha256 = "7fe6a0c9d9b25c434c6a200de19f722d942165252cc9161f1d8fcddf64147034";
+      name = "networkmanager-qt-5.71.0.tar.xz";
     };
   };
   oxygen-icons5 = {
-    version = "5.68.0";
+    version = "5.71.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.71/oxygen-icons5-5.71.0.tar.xz";
+      sha256 = "a75a82164e2af5b6f269a386762ff2abba052dbfca18c9aed8d738c9cd958b04";
+      name = "oxygen-icons5-5.71.0.tar.xz";
     };
   };
   plasma-framework = {
-    version = "5.68.0";
+    version = "5.71.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.71/plasma-framework-5.71.0.tar.xz";
+      sha256 = "a54c8603ca261c89609a3009536a9217ce3415a7fd63527ed36f266399613067";
+      name = "plasma-framework-5.71.0.tar.xz";
     };
   };
   prison = {
-    version = "5.68.0";
+    version = "5.71.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.71/prison-5.71.0.tar.xz";
+      sha256 = "44762ee7a3993bd7527f0b33ee09bacc1d5a518641b79932e5490a511ac7e87f";
+      name = "prison-5.71.0.tar.xz";
     };
   };
   purpose = {
-    version = "5.68.0";
+    version = "5.71.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.71/purpose-5.71.0.tar.xz";
+      sha256 = "de0531a84f671a15fe4a6348220e922a3230178554e26baf392a1f295044e4be";
+      name = "purpose-5.71.0.tar.xz";
     };
   };
   qqc2-desktop-style = {
-    version = "5.68.0";
+    version = "5.71.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.71/qqc2-desktop-style-5.71.0.tar.xz";
+      sha256 = "b968ce6fc7c1d111aa2c63584dddc0f74e9066a0b4ea26d1194e46e2f7b38700";
+      name = "qqc2-desktop-style-5.71.0.tar.xz";
     };
   };
   solid = {
-    version = "5.68.0";
+    version = "5.71.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.71/solid-5.71.0.tar.xz";
+      sha256 = "72a7bdd8306ec4cda5f504819e0ff3f8baca6530fa04e33f10b6b89dc010505b";
+      name = "solid-5.71.0.tar.xz";
     };
   };
   sonnet = {
-    version = "5.68.0";
+    version = "5.71.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.71/sonnet-5.71.0.tar.xz";
+      sha256 = "cd663b3e1b23aef58d85f72dfdc92aaae33f358b22ad1fc36fde6c66eb7f0e72";
+      name = "sonnet-5.71.0.tar.xz";
     };
   };
   syndication = {
-    version = "5.68.0";
+    version = "5.71.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.71/syndication-5.71.0.tar.xz";
+      sha256 = "c515fd48d3736b55c8e7990c72471bfddd55363c4bcb049713be741eaa7b07e0";
+      name = "syndication-5.71.0.tar.xz";
     };
   };
   syntax-highlighting = {
-    version = "5.68.0";
+    version = "5.71.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.71/syntax-highlighting-5.71.0.tar.xz";
+      sha256 = "845ae0c7b8523c23c3ad704a6c551260a358d96b0094a5c2b062879e58173f84";
+      name = "syntax-highlighting-5.71.0.tar.xz";
     };
   };
   threadweaver = {
-    version = "5.68.0";
+    version = "5.71.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.71/threadweaver-5.71.0.tar.xz";
+      sha256 = "039e73d70f38af38a63235cfb554111ee0d58a6ac168bff0745f0d029c5c528d";
+      name = "threadweaver-5.71.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/khronos-ocl-icd-loader/default.nix b/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
index 3704cbb7794..a42f1c0a513 100644
--- a/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
+++ b/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "khronos-ocl-icd-loader-${version}";
-  version = "2020.03.13";
+  version = "2020.06.16";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenCL-ICD-Loader";
     rev = "v${version}";
-    sha256 = "0zk6fyfrklx8a848613rfcx0y4yn0dsxkxzzl9pgdh9i6qdfjj9k";
+    sha256 = "0v2yi6d3g5qshzy6pjic09c5irwgds106yvr93q62f32psfblnmy";
   };
 
   patches = stdenv.lib.lists.optional withTracing ./tracing.patch;
diff --git a/pkgs/development/libraries/kissfft/default.nix b/pkgs/development/libraries/kissfft/default.nix
index 614a5237005..370f628ff7a 100644
--- a/pkgs/development/libraries/kissfft/default.nix
+++ b/pkgs/development/libraries/kissfft/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     owner = "mborgerding";
     repo = pname;
     rev = "v${version}";
-    sha256 = "4lmRyBzW4H5wXb0EpgAp/hbaE2SslB6rAJyyLLbCtSs=";
+    sha256 = "0axmqav2rclw02mix55cch9xl5py540ac15xbmq7xq6n3k492ng2";
   };
 
   patches = [
@@ -21,12 +21,12 @@ stdenv.mkDerivation rec {
     # Make datatype configurable
     (fetchpatch {
       url = "https://github.com/mborgerding/kissfft/pull/38.patch";
-      sha256 = "Rsrob1M+lxwEag6SV5FqaTeyiJaOpspZxVtkeihX4TI=";
+      sha256 = "0cp1awl7lr2vqmcwm9lfjs4b4dv9da8mg4hfd821r5ryadpyijj6";
     })
     # Install headers as well
     (fetchpatch {
       url = "https://github.com/mborgerding/kissfft/commit/71df949992d2dbbe15ce707cf56c3fa1e43b1080.patch";
-      sha256 = "9ap6ZWyioBiut9UQM3v6W1Uv+iP3Kmt27xWhIfWfBI4=";
+      sha256 = "13h4kzsj388mxxv6napp4gx2ymavz9xk646mnyp1i852dijpmapm";
     })
   ];
 
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/lcms2/default.nix b/pkgs/development/libraries/lcms2/default.nix
index 2de11a3bd40..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.9";
+  name = "lcms2-2.11";
 
   src = fetchurl {
     url = "mirror://sourceforge/lcms/${name}.tar.gz";
-    sha256 = "083xisy6z01zhm7p7rgk4bx9d6zlr8l20qkfv1g29ylnhgwzvij8";
+    sha256 = "0bkpf315925lhmd9i4mzjnkq5dh255r1lms0c0vzzkfpwk4bjjfw";
   };
 
   outputs = [ "bin" "dev" "out" ];
diff --git a/pkgs/development/libraries/ldb/default.nix b/pkgs/development/libraries/ldb/default.nix
index 702738fdfc0..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.2";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "mirror://samba/ldb/${pname}-${version}.tar.gz";
-    sha256 = "0x6yr14znp42b92i7br4wxfjri6i689dsifzz9kbyzvn558a16b4";
+    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/leveldb/default.nix b/pkgs/development/libraries/leveldb/default.nix
index b64b426a640..33eca603c26 100644
--- a/pkgs/development/libraries/leveldb/default.nix
+++ b/pkgs/development/libraries/leveldb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fixDarwinDylibNames }:
+{ stdenv, fetchFromGitHub, fixDarwinDylibNames, snappy }:
 
 stdenv.mkDerivation rec {
   pname = "leveldb";
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "01kxga1hv4wp94agx5vl3ybxfw5klqrdsrb6p6ywvnjmjxm8322y";
   };
 
+  buildInputs = [ snappy ];
+
   nativeBuildInputs = []
     ++ stdenv.lib.optional stdenv.isDarwin [ fixDarwinDylibNames ];
 
diff --git a/pkgs/development/libraries/libLAS/default.nix b/pkgs/development/libraries/libLAS/default.nix
index 818e2ad85b0..95569c0a813 100644
--- a/pkgs/development/libraries/libLAS/default.nix
+++ b/pkgs/development/libraries/libLAS/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, boost, cmake, gdal, libgeotiff, libtiff, LASzip, fixDarwinDylibNames }:
+{ stdenv, fetchurl, boost, cmake, gdal, libgeotiff, libtiff, LASzip2, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
   name = "libLAS-1.8.1";
@@ -9,13 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "0xjfxb3ydvr2258ji3spzyf81g9caap19ql2pk91wiivqsc4mnws";
   };
 
-  buildInputs = [ boost cmake gdal libgeotiff libtiff LASzip ]
+  buildInputs = [ boost cmake gdal libgeotiff libtiff LASzip2 ]
                 ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
 
   cmakeFlags = [
     "-DGDAL_CONFIG=${gdal}/bin/gdal-config"
     "-DWITH_LASZIP=ON"
-    "-DLASZIP_INCLUDE_DIR=${LASzip}/include"
+    # libLAS is currently not compatible with LASzip 3,
+    # see https://github.com/libLAS/libLAS/issues/144.
+    "-DLASZIP_INCLUDE_DIR=${LASzip2}/include"
     "-DCMAKE_EXE_LINKER_FLAGS=-pthread"
   ];
 
diff --git a/pkgs/development/libraries/libaom/default.nix b/pkgs/development/libraries/libaom/default.nix
index 04b1c810c08..2c67e6ac158 100644
--- a/pkgs/development/libraries/libaom/default.nix
+++ b/pkgs/development/libraries/libaom/default.nix
@@ -2,14 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "libaom";
-  version = "1.0.0-errata1";
+  version = "2.0.0";
 
   src = fetchgit {
     url = "https://aomedia.googlesource.com/aom";
     rev	= "v${version}";
-    sha256 = "090phh4jl9z6m2pwpfpwcjh6iyw0byngb2n112qxkg6a3gsaa62f";
+    sha256 = "1616xjhj6770ykn82ml741h8hx44v507iky3s9h7a5lnk9d4cxzy";
   };
 
+  patches = [ ./outputs.patch ];
+
   nativeBuildInputs = [
     yasm perl cmake pkgconfig python3
   ];
@@ -24,10 +26,30 @@ stdenv.mkDerivation rec {
     export PATH=$NIX_BUILD_TOP:$PATH
   '';
 
+  # Configuration options:
+  # https://aomedia.googlesource.com/aom/+/refs/heads/master/build/cmake/aom_config_defaults.cmake
+
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=ON"
+    "-DENABLE_TESTS=OFF"
+  ];
+
+  postFixup = ''
+    moveToOutput lib/libaom.a "$static"
+  '';
+
+  outputs = [ "out" "bin" "dev" "static" ];
+
   meta = with stdenv.lib; {
-    description = "AV1 Bitstream and Decoding Library";
+    description = "Alliance for Open Media AV1 codec library";
+    longDescription = ''
+      Libaom is the reference implementation of the AV1 codec from the Alliance
+      for Open Media. It contains an AV1 library as well as applications like
+      an encoder (aomenc) and a decoder (aomdec).
+    '';
     homepage    = "https://aomedia.org/av1-features/get-started/";
-    maintainers = with maintainers; [ kiloreux ];
+    changelog   = "https://aomedia.googlesource.com/aom/+/refs/tags/v${version}/CHANGELOG";
+    maintainers = with maintainers; [ primeos kiloreux ];
     platforms   = platforms.all;
     license = licenses.bsd2;
   };
diff --git a/pkgs/development/libraries/libaom/outputs.patch b/pkgs/development/libraries/libaom/outputs.patch
new file mode 100644
index 00000000000..7c0ff397dfe
--- /dev/null
+++ b/pkgs/development/libraries/libaom/outputs.patch
@@ -0,0 +1,45 @@
+--- a/build/cmake/aom_install.cmake
++++ b/build/cmake/aom_install.cmake
+@@ -45,2 +45,2 @@ macro(setup_aom_install_targets)
+-              -DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR}
+-              -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
++              -DCMAKE_INSTALL_FULL_INCLUDEDIR=${CMAKE_INSTALL_FULL_INCLUDEDIR}
++              -DCMAKE_INSTALL_FULL_LIBDIR=${CMAKE_INSTALL_FULL_LIBDIR}
+@@ -82,14 +82,14 @@ macro(setup_aom_install_targets)
+     install(
+       FILES ${AOM_INSTALL_INCS}
+-      DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/aom")
++      DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}/aom")
+     install(
+       FILES "${AOM_PKG_CONFIG_FILE}"
+-      DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/pkgconfig")
++      DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig")
+     install(TARGETS ${AOM_INSTALL_LIBS} DESTINATION
+-                    "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
++                    "${CMAKE_INSTALL_FULL_LIBDIR}")
+ 
+     if(ENABLE_EXAMPLES)
+       install(TARGETS ${AOM_INSTALL_BINS} DESTINATION
+-                      "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
++                      "${CMAKE_INSTALL_FULL_BINDIR}")
+     endif()
+   endif()
+--- a/build/cmake/pkg_config.cmake
++++ b/build/cmake/pkg_config.cmake
+@@ -14,2 +14,2 @@
+-                  "CMAKE_INSTALL_BINDIR" "CMAKE_INSTALL_INCLUDEDIR"
+-                  "CMAKE_INSTALL_LIBDIR" "CMAKE_PROJECT_NAME"
++                  "CMAKE_INSTALL_BINDIR" "CMAKE_INSTALL_FULL_INCLUDEDIR"
++                  "CMAKE_INSTALL_FULL_LIBDIR" "CMAKE_PROJECT_NAME"
+@@ -38,4 +38,4 @@ endif()
+-set(prefix "${CMAKE_INSTALL_PREFIX}")
+-set(bindir "${CMAKE_INSTALL_BINDIR}")
+-set(includedir "${CMAKE_INSTALL_INCLUDEDIR}")
+-set(libdir "${CMAKE_INSTALL_LIBDIR}")
++get_filename_component(prefix "${CMAKE_INSTALL_FULL_INCLUDEDIR}" DIRECTORY)
++get_filename_component(exec_prefix "${CMAKE_INSTALL_FULL_LIBDIR}" DIRECTORY)
++get_filename_component(includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}" NAME)
++get_filename_component(libdir "${CMAKE_INSTALL_FULL_LIBDIR}" NAME)
+@@ -46 +46 @@ file(APPEND "${pkgconfig_file}" "prefix=${prefix}\n")
+-file(APPEND "${pkgconfig_file}" "exec_prefix=\${prefix}\n")
++file(APPEND "${pkgconfig_file}" "exec_prefix=${exec_prefix}\n")
diff --git a/pkgs/development/libraries/libarchive/default.nix b/pkgs/development/libraries/libarchive/default.nix
index 0f6b196d150..d1917de37d6 100644
--- a/pkgs/development/libraries/libarchive/default.nix
+++ b/pkgs/development/libraries/libarchive/default.nix
@@ -1,6 +1,6 @@
 {
   fetchFromGitHub, stdenv, pkgconfig, autoreconfHook,
-  acl, attr, bzip2, e2fsprogs, libxml2, lzo, openssl, sharutils, xz, zlib,
+  acl, attr, bzip2, e2fsprogs, libxml2, lzo, openssl, sharutils, xz, zlib, zstd,
 
   # Optional but increases closure only negligibly.
   xarSupport ? true,
@@ -10,19 +10,19 @@ assert xarSupport -> libxml2 != null;
 
 stdenv.mkDerivation rec {
   pname = "libarchive";
-  version = "3.4.2";
+  version = "3.4.3";
 
   src = fetchFromGitHub {
     owner = "libarchive";
     repo = "libarchive";
     rev = "v${version}";
-    sha256 = "0mjm77wbqs8sbn9j44lj39nwbg6anmgz6pkyfxsww54a4rs0p3iz";
+    sha256 = "1y0v03p6zyv6plr2p0pid1qfgmk8hd427spj8xa93mcdmq5yc3s0";
   };
 
   outputs = [ "out" "lib" "dev" ];
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
-  buildInputs = [ sharutils zlib bzip2 openssl xz lzo ]
+  buildInputs = [ sharutils zlib bzip2 openssl xz lzo zstd ]
     ++ stdenv.lib.optionals stdenv.isLinux [ e2fsprogs attr acl ]
     ++ stdenv.lib.optional xarSupport libxml2;
 
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/libblockdev/default.nix b/pkgs/development/libraries/libblockdev/default.nix
index 4982157c3ba..7628212800f 100644
--- a/pkgs/development/libraries/libblockdev/default.nix
+++ b/pkgs/development/libraries/libblockdev/default.nix
@@ -6,13 +6,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "libblockdev";
-  version = "2.23";
+  version = "2.24";
 
   src = fetchFromGitHub {
     owner = "storaged-project";
     repo = "libblockdev";
     rev = "${version}-1";
-    sha256 = "09gp9h05vy3llhnrg98gny8g57kgwnbi8522qyzjwyv7nmhs4zhz";
+    sha256 = "1gzwlwdv0jyb3lh2n016limy2ngfdsa05x7jvg9llf2ls672nq89";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
diff --git a/pkgs/development/libraries/libblocksruntime/default.nix b/pkgs/development/libraries/libblocksruntime/default.nix
index 7863e596e1b..aff56994f49 100644
--- a/pkgs/development/libraries/libblocksruntime/default.nix
+++ b/pkgs/development/libraries/libblocksruntime/default.nix
@@ -24,4 +24,10 @@ stdenv.mkDerivation {
   doCheck = false; # hasdescriptor.c test fails, hrm.
 
   installPhase = ''prefix="/" DESTDIR=$out ./installlib'';
+
+  meta = with stdenv.lib; {
+    description = "Installs the BlocksRuntime library from the compiler-rt";
+    homepage = "https://github.com/mackyle/blocksruntime";
+    license = licenses.mit;
+  };
 }
diff --git a/pkgs/development/libraries/libbytesize/default.nix b/pkgs/development/libraries/libbytesize/default.nix
index 5e293c163a9..c93a59d462f 100644
--- a/pkgs/development/libraries/libbytesize/default.nix
+++ b/pkgs/development/libraries/libbytesize/default.nix
@@ -4,7 +4,7 @@
 }:
 
 let
-  version = "2.2";
+  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 = "0n4gmn68ypsk3gcw6akcghlgk3aj3wskwg3mlg93cw5y3a33nbhm";
+    sha256 = "1kq0hnw2yxjdmcrwvgp0x4j1arkka23k8vp2l6nqcw9lc15x18fp";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
diff --git a/pkgs/development/libraries/libchewing/default.nix b/pkgs/development/libraries/libchewing/default.nix
index 09d5d40f877..cd2df385f48 100644
--- a/pkgs/development/libraries/libchewing/default.nix
+++ b/pkgs/development/libraries/libchewing/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, sqlite }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   pname = "libchewing";
   version = "0.5.1";
 
diff --git a/pkgs/development/libraries/libcint/default.nix b/pkgs/development/libraries/libcint/default.nix
index 3191dc44467..4a83175f66b 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.19";
+  version = "3.0.20";
 
   src = fetchFromGitHub {
     owner = "sunqm";
     repo = "libcint";
     rev = "v${version}";
-    sha256 = "0x613f2hiqi2vbhp20fcl7rhxb07f2714lplzd0vkvv07phagip9";
+    sha256 = "0iqqq568q9sxppr08rvmpyjq0n82pm04x9rxhh3mf20x1ds7ngj5";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libcloudproviders/default.nix b/pkgs/development/libraries/libcloudproviders/default.nix
index f48ee9e5df0..87c86ea2fbe 100644
--- a/pkgs/development/libraries/libcloudproviders/default.nix
+++ b/pkgs/development/libraries/libcloudproviders/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libcloudproviders";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchurl {
     url = "https://gitlab.gnome.org/World/${pname}/repository/archive.tar.gz?ref=${version}";
-    sha256 = "1hby7vhxn6fw4ih3xbx6ab9vqp3a3dmlhr0z7mrwr73b7ankly0l";
+    sha256 = "0zazjhj3xbwxyzi2b2aws7qdnwn092zg9yrk9v3wd19m3mxq5na3";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
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/libdap/default.nix b/pkgs/development/libraries/libdap/default.nix
index 27084e54a82..bc05e774cd8 100644
--- a/pkgs/development/libraries/libdap/default.nix
+++ b/pkgs/development/libraries/libdap/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, bison, libuuid, curl, libxml2, flex }:
 
 stdenv.mkDerivation rec {
-  version = "3.20.5";
+  version = "3.20.6";
   pname = "libdap";
 
   nativeBuildInputs = [ bison flex ];
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://www.opendap.org/pub/source/${pname}-${version}.tar.gz";
-    sha256 = "15jysnsmdjs7q4iafb4qzq4b76cfyvmbxgcxnqg4sr0x4bplwfnb";
+    sha256 = "0jn5bi8k2lq6mmrsw7r1r5aviyf8gb39b2iy20v4kpkj5napzk1m";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libdeflate/default.nix b/pkgs/development/libraries/libdeflate/default.nix
index 26616078b46..25fa4db38f6 100644
--- a/pkgs/development/libraries/libdeflate/default.nix
+++ b/pkgs/development/libraries/libdeflate/default.nix
@@ -2,17 +2,17 @@
 
 stdenv.mkDerivation rec {
   pname = "libdeflate";
-  version = "1.5";
+  version = "1.6";
 
   src = fetchFromGitHub {
     owner = "ebiggers";
     repo = "libdeflate";
     rev = "v${version}";
-    sha256 = "1v0y7998p8a8wpblnpdyk5zzvpj8pbrpzxwxmv0b0axrhaarxrf3";
+    sha256 = "1rhichmalqz7p1hiwvn6y0isralpbf0w5nyjp4lg0asawkxy9cww";
   };
 
   postPatch = ''
-    substituteInPlace Makefile --replace /usr $out
+    substituteInPlace Makefile --replace /usr/local $out
   '';
 
   configurePhase = ''
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/libdigidocpp/default.nix b/pkgs/development/libraries/libdigidocpp/default.nix
index 4052f6e45d7..940093ed4ba 100644
--- a/pkgs/development/libraries/libdigidocpp/default.nix
+++ b/pkgs/development/libraries/libdigidocpp/default.nix
@@ -2,12 +2,12 @@
 , xercesc, xml-security-c, pkgconfig, xsd, zlib, xalanc, xxd }:
 
 stdenv.mkDerivation rec {
-  version = "3.14.2";
+  version = "3.14.3";
   pname = "libdigidocpp";
 
   src = fetchurl {
      url = "https://github.com/open-eid/libdigidocpp/releases/download/v${version}/libdigidocpp-${version}.tar.gz";
-     sha256 = "0d3p72gvnj00bxl6lzh6n5x1r37wj54mzzv700gngcvr3m62lkbv";
+     sha256 = "1hq1q2frqnm4wxcfr7vn8kqwyfdz3hx22w40kn69zh140pig6jc5";
   };
 
   nativeBuildInputs = [ cmake pkgconfig xxd ];
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/libe57format/default.nix b/pkgs/development/libraries/libe57format/default.nix
new file mode 100644
index 00000000000..6bb48c9530c
--- /dev/null
+++ b/pkgs/development/libraries/libe57format/default.nix
@@ -0,0 +1,55 @@
+{
+  stdenv,
+  cmake,
+  fetchFromGitHub,
+  boost,
+  xercesc,
+  icu,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libe57format";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner = "asmaloney";
+    repo = "libE57Format";
+    rev = "v${version}";
+    sha256 = "05z955q68wjbd9gc5fw32nqg69xc82n2x75j5vchxzkgnn3adcpi";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    boost
+    icu
+    xercesc
+  ];
+
+  # The build system by default builds ONLY static libraries, and with
+  # `-DE57_BUILD_SHARED=ON` builds ONLY shared libraries, see:
+  #     https://github.com/asmaloney/libE57Format/issues/48
+  #     https://github.com/asmaloney/libE57Format/blob/f657d470da5f0d185fe371c4c011683f6e30f0cb/CMakeLists.txt#L82-L89
+  # We support building both by building statically and then
+  # building an .so file here manually.
+  # The way this is written makes this Linux-only for now.
+  postInstall = ''
+    cd $out/lib
+    g++ -Wl,--no-undefined -shared -o libE57FormatShared.so -L. -Wl,-whole-archive -lE57Format -Wl,-no-whole-archive -lxerces-c
+    mv libE57FormatShared.so libE57Format.so
+
+    if [ "$dontDisableStatic" -ne "1" ]; then
+      rm libE57Format.a
+    fi
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Library for reading & writing the E57 file format (fork of E57RefImpl)";
+    homepage = "https://github.com/asmaloney/libE57Format";
+    license = licenses.boost;
+    maintainers = with maintainers; [ chpatrick nh2 ];
+    platforms = platforms.linux; # because of the .so buiding in `postInstall` above
+  };
+}
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/liberfa/default.nix b/pkgs/development/libraries/liberfa/default.nix
new file mode 100644
index 00000000000..097b0b85e3e
--- /dev/null
+++ b/pkgs/development/libraries/liberfa/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  pname = "erfa";
+  version = "1.7.0";
+
+  buildInputs = [ autoreconfHook ];
+
+  src = fetchFromGitHub {
+    owner = "liberfa";
+    repo = "erfa";
+    rev = "v${version}";
+    sha256 = "1z4k2phrw6wwi0kax6ac80jk9c036gi7pmhmg6gaf3lk81k6xz2r";
+  };
+
+  configureFlags = [ "--enable-shared" ];
+
+  meta = with stdenv.lib; {
+    description = "Essential Routines for Fundamental Astronomy";
+    homepage = "https://github.com/liberfa/erfa";
+    maintainers = with maintainers; [ mir06 ];
+    license = {
+      url = "https://github.com/liberfa/erfa/blob/master/LICENSE";
+      free = true;
+    };
+  };
+}
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/libexecinfo/default.nix b/pkgs/development/libraries/libexecinfo/default.nix
index cc1c4b48e78..9c649c223c1 100644
--- a/pkgs/development/libraries/libexecinfo/default.nix
+++ b/pkgs/development/libraries/libexecinfo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch }:
+{ stdenv, fetchurl, fetchpatch, enableStatic ? true, enableShared ? true }:
 
 stdenv.mkDerivation rec {
   pname = "libexecinfo";
@@ -12,29 +12,36 @@ stdenv.mkDerivation rec {
   patches = [
     (fetchpatch {
       name = "10-execinfo.patch";
-      url = "https://git.alpinelinux.org/cgit/aports/plain/main/libexecinfo/10-execinfo.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1";
+      url = "https://git.alpinelinux.org/aports/plain/main/libexecinfo/10-execinfo.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1";
       sha256 = "0lnphrad4vspyljnvmm62dyxj98vgp3wabj4w3vfzfph7j8piw7g";
     })
     (fetchpatch {
       name = "20-define-gnu-source.patch";
-      url = "https://git.alpinelinux.org/cgit/aports/plain/main/libexecinfo/20-define-gnu-source.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1";
+      url = "https://git.alpinelinux.org/aports/plain/main/libexecinfo/20-define-gnu-source.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1";
       sha256 = "1mp8mc639b0h2s69m5z6s2h3q3n1zl298j9j0plzj7f979j76302";
     })
     (fetchpatch {
       name = "30-linux-makefile.patch";
-      url = "https://git.alpinelinux.org/cgit/aports/plain/main/libexecinfo/30-linux-makefile.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1";
+      url = "https://git.alpinelinux.org/aports/plain/main/libexecinfo/30-linux-makefile.patch?id=730cdcef6901750f4029d4c3b8639ce02ee3ead1";
       sha256 = "1jwjz22z5cjy5h2bfghn62yl9ar8jiqhdvbwrcfavv17ihbhwcaf";
     })
   ];
 
   makeFlags = [ "CC:=$(CC)" "AR:=$(AR)" ];
 
+  buildFlags =
+      stdenv.lib.optional enableStatic "static"
+   ++ stdenv.lib.optional enableShared "dynamic";
+
   patchFlags = [ "-p0" ];
 
   installPhase = ''
     install -Dm644 execinfo.h stacktraverse.h -t $out/include
-    install -Dm755 libexecinfo.{a,so.1} -t $out/lib
+  '' + stdenv.lib.optionalString enableShared ''
+    install -Dm755 libexecinfo.so.1 -t $out/lib
     ln -s $out/lib/libexecinfo.so{.1,}
+  '' + stdenv.lib.optionalString enableStatic ''
+    install -Dm755 libexecinfo.a -t $out/lib
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libexif/default.nix b/pkgs/development/libraries/libexif/default.nix
index 090c6a2fff3..fd2ed39e34a 100644
--- a/pkgs/development/libraries/libexif/default.nix
+++ b/pkgs/development/libraries/libexif/default.nix
@@ -1,45 +1,24 @@
-{ stdenv, fetchurl, fetchpatch, gettext }:
+{ stdenv, fetchFromGitHub, autoreconfHook, gettext }:
 
 stdenv.mkDerivation rec {
-  name = "libexif-0.6.21";
+  pname = "libexif";
+  version = "0.6.22";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/libexif/${name}.tar.bz2";
-    sha256 = "06nlsibr3ylfwp28w8f5466l6drgrnydgxrm4jmxzrmk5svaxk8n";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "${pname}-${builtins.replaceStrings ["."] ["_"] version}-release";
+    sha256 = "0mzndakdi816zcs13z7yzp7hj031p2dcyfq2p391r63d9z21jmy1";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2017-7544.patch";
-      url = "https://github.com/libexif/libexif/commit/c39acd1692023b26290778a02a9232c873f9d71a.patch";
-      sha256 = "0xgx6ly2i4q05shb61mfx6njwf1yp347jkznm0ka4m85i41xm6sd";
-    })
-    (fetchpatch {
-      name = "CVE-2018-20030-1.patch";
-      url = "https://github.com/libexif/libexif/commit/5d28011c40ec86cf52cffad541093d37c263898a.patch";
-      sha256 = "1wv8s962wmbn2m2xypgirf12g6msrbplpsmd5bh86irfwhkcppj3";
-    })
-    (fetchpatch {
-      name = "CVE-2018-20030-2.patch";
-      url = "https://github.com/libexif/libexif/commit/6aa11df549114ebda520dde4cdaea2f9357b2c89.patch";
-      sha256 = "01aqvz63glwq6wg0wr7ykqqghb4abgq77ghvhizbzadg1k4h7drx";
-      excludes = [ "NEWS" ];
-    })
-    (fetchpatch {
-      name = "CVE-2019-9278.patch";
-      url = "https://github.com/libexif/libexif/commit/75aa73267fdb1e0ebfbc00369e7312bac43d0566.patch";
-      sha256 = "10ikg33mips5zq9as7l9xqnyzbg1wwr4sw17517nzf4hafjpasrj";
-    })
-  ];
+  nativeBuildInputs = [ autoreconfHook gettext ];
 
-  buildInputs = [ gettext ];
-
-  meta = {
+  meta = with stdenv.lib; {
     homepage = "https://libexif.github.io/";
     description = "A library to read and manipulate EXIF data in digital photographs";
-    license = stdenv.lib.licenses.lgpl21;
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.erictapen ];
+    license = licenses.lgpl21;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ erictapen ];
   };
 
 }
diff --git a/pkgs/development/libraries/libextractor/default.nix b/pkgs/development/libraries/libextractor/default.nix
index 3db0b056c0f..f7e9606bbe7 100644
--- a/pkgs/development/libraries/libextractor/default.nix
+++ b/pkgs/development/libraries/libextractor/default.nix
@@ -13,11 +13,11 @@
 # '';
 # See also <https://nixos.org/nixpkgs/manual/#sec-language-gnome>.
 , gtkSupport ? true, glib ? null, gtk3 ? null
-, videoSupport ? true, ffmpeg ? null, libmpeg2 ? null}:
+, videoSupport ? true, ffmpeg_3 ? null, libmpeg2 ? null}:
 
 assert gstreamerSupport -> gst_all_1 != null && builtins.isList (gstPlugins gst_all_1);
 assert gtkSupport -> glib != null && gtk3 != null;
-assert videoSupport -> ffmpeg != null && libmpeg2 != null;
+assert videoSupport -> ffmpeg_3 != null && libmpeg2 != null;
 
 stdenv.mkDerivation rec {
   name = "libextractor-1.9";
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
    ] ++ stdenv.lib.optionals gstreamerSupport
           ([ gst_all_1.gstreamer ] ++ gstPlugins gst_all_1)
      ++ stdenv.lib.optionals gtkSupport [ glib gtk3 ]
-     ++ stdenv.lib.optionals videoSupport [ ffmpeg libmpeg2 ];
+     ++ stdenv.lib.optionals videoSupport [ ffmpeg_3 libmpeg2 ];
 
   configureFlags = [
     "--disable-ltdl-install"
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/libfilezilla/default.nix b/pkgs/development/libraries/libfilezilla/default.nix
index 10f46a67e89..ed9de3aaa4c 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.21.0";
+  version = "0.23.0";
 
   src = fetchurl {
     url = "https://download.filezilla-project.org/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "1wjvxi3spkp58lay590bs5s2i8fn94lqkc7qvq4q7ns4l9k9z3av";
+    sha256 = "0lk84aw5ylrhpy26djdw3byhjbn9qrzx5k98r0i4nwfizckw3smd";
   };
 
   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/libfive/default.nix b/pkgs/development/libraries/libfive/default.nix
index fa275c0d780..2670f94fbc2 100644
--- a/pkgs/development/libraries/libfive/default.nix
+++ b/pkgs/development/libraries/libfive/default.nix
@@ -1,30 +1,41 @@
-{ stdenv, fetchFromGitHub, cmake, ninja, pkgconfig, eigen,
-zlib, libpng, boost, qt5, guile
+{ lib
+, mkDerivation
+, wrapQtAppsHook
+, fetchFromGitHub
+, cmake
+, ninja
+, pkgconfig
+, eigen
+, zlib
+, libpng
+, boost
+, guile
 }:
 
-stdenv.mkDerivation {
-  pname = "libfive";
-  version = "2018-07-01";
+mkDerivation {
+  pname = "libfive-unstable";
+  version = "2020-02-15";
 
   src = fetchFromGitHub {
-    owner  = "libfive";
-    repo   = "libfive";
-    rev    = "0f517dde9521d751310a22f85ee69b2c84690267";
-    sha256 = "0bfxysf5f4ripgcv546il8wnw5p0d4s75kdjlwvj32549537hlz0";
+    owner = "libfive";
+    repo = "libfive";
+    rev = "5b7717a25064478cd6bdb190683566eaf4c7afdd";
+    sha256 = "102zw2n3vzv84i323is4qrwwqqha8v1cniw54ss8f4bq6dmic0bg";
   };
-  nativeBuildInputs = [ cmake ninja pkgconfig ];
-  buildInputs = [ eigen zlib libpng boost qt5.qtimageformats guile ];
+
+  nativeBuildInputs = [ wrapQtAppsHook cmake ninja pkgconfig ];
+  buildInputs = [ eigen zlib libpng boost guile ];
 
   # Link "Studio" binary to "libfive-studio" to be more obvious:
   postFixup = ''
     ln -s "$out/bin/Studio" "$out/bin/libfive-studio"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Infrastructure for solid modeling with F-Reps in C, C++, and Guile";
     homepage = "https://libfive.com/";
-    maintainers = with maintainers; [ hodapp ];
-    license = licenses.lgpl2;
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ hodapp kovirobi ];
+    license = with licenses; [ mpl20 gpl2Plus ];
+    platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/development/libraries/libfprint/default.nix b/pkgs/development/libraries/libfprint/default.nix
index e886baa4797..7c6168c3d3e 100644
--- a/pkgs/development/libraries/libfprint/default.nix
+++ b/pkgs/development/libraries/libfprint/default.nix
@@ -1,41 +1,31 @@
-{ thinkpad ? false
-, stdenv
-, fetchFromGitHub
-, fetchurl
+{ stdenv
+, fetchFromGitLab
 , pkgconfig
 , meson
 , ninja
-, libusb1
+, gusb
 , pixman
 , glib
 , nss
-, gtk3
+, gobject-introspection
 , coreutils
 , gtk-doc
 , docbook_xsl
 , docbook_xml_dtd_43
-, openssl ? null
 }:
 
-assert thinkpad -> openssl != null;
-
 stdenv.mkDerivation rec {
-  pname = "libfprint" + stdenv.lib.optionalString thinkpad "-thinkpad";
-  version = "1.0";
-
-  src = {
-    libfprint-thinkpad =
-      fetchFromGitHub {
-        owner = "3v1n0";
-        repo = "libfprint";
-        rev = "2e2e3821717e9042e93a995bdbd3d00f2df0be9c";
-        sha256 = "1vps1wrp7hskf13f7jrv0dwry2fcid76x2w463wplngp63cj7b3b";
-      };
-    libfprint = fetchurl {
-      url = "https://gitlab.freedesktop.org/libfprint/libfprint/uploads/aff93e9921d1cff53d7c070944952ff9/libfprint-${version}.tar.xz";
-      sha256 = "0v84pd12v016m8iimhq39fgzamlarqccsr7d98cvrrwrzrgcixrd";
-    };
-  }.${pname};
+  pname = "libfprint";
+  version = "1.90.2";
+  outputs = [ "out" "devdoc" ];
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "libfprint";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0g890y49anqd7yfz86iyvywxgbfmfmj6813fy58m5n8jain7iy1b";
+  };
 
   nativeBuildInputs = [
     pkgconfig
@@ -44,28 +34,20 @@ stdenv.mkDerivation rec {
     gtk-doc
     docbook_xsl
     docbook_xml_dtd_43
+    gobject-introspection
   ];
 
   buildInputs = [
-    libusb1 # drop in 2.0 for gusb
+    gusb
     pixman
     glib
     nss
-    gtk3
-  ]
-  ++ stdenv.lib.optional thinkpad openssl
-  ;
+  ];
 
   mesonFlags = [
     "-Dudev_rules_dir=${placeholder "out"}/lib/udev/rules.d"
-    "-Dx11-examples=false"
   ];
 
-  postPatch = ''
-    substituteInPlace libfprint/meson.build \
-      --replace /bin/echo ${coreutils}/bin/echo
-  '';
-
   meta = with stdenv.lib; {
     homepage = "https://fprint.freedesktop.org/";
     description = "A library designed to make it easy to add support for consumer fingerprint readers";
diff --git a/pkgs/development/libraries/libfyaml/default.nix b/pkgs/development/libraries/libfyaml/default.nix
new file mode 100644
index 00000000000..5ce8cd6c6a1
--- /dev/null
+++ b/pkgs/development/libraries/libfyaml/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, gnum4 }:
+
+stdenv.mkDerivation rec {
+  pname = "libfyaml";
+  version = "0.5.7";
+
+  src = fetchurl {
+    url = "https://github.com/pantoniou/libfyaml/releases/download/v${version}/libfyaml-${version}.tar.gz";
+    sha256 = "143m30f006jsvhikk9nc050hxzqi8xg0sbd88kjrgfpyncdz689j";
+  };
+
+  nativeBuildInputs = [ gnum4 ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/pantoniou/libfyaml";
+    description = "Fully feature complete YAML parser and emitter, supporting the latest YAML spec and passing the full YAML testsuite";
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
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 a3d515c5047..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" ];
@@ -30,6 +30,10 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--with-libgpg-error-prefix=${libgpgerror.dev}" ]
    ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "--disable-asm";
 
+  # Necessary to generate correct assembly when compiling for aarch32 on
+  # aarch64
+  configurePlatforms = [ "host" "build" ];
+
   # Make sure libraries are correct for .pc and .la files
   # Also make sure includes are fixed for callers who don't use libgpgcrypt-config
   postFixup = ''
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/libgpg-error/default.nix b/pkgs/development/libraries/libgpg-error/default.nix
index e170e4931b8..972ca4c04a5 100644
--- a/pkgs/development/libraries/libgpg-error/default.nix
+++ b/pkgs/development/libraries/libgpg-error/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, buildPackages, fetchurl, gettext, fetchpatch
+{ stdenv, lib, buildPackages, fetchurl, gettext
 , genPosixLockObjOnly ? false
 }: let
   genPosixLockObjOnlyAttrs = lib.optionalAttrs genPosixLockObjOnly {
@@ -17,25 +17,14 @@
   };
 in stdenv.mkDerivation (rec {
   pname = "libgpg-error";
-  version = "1.36";
+  version = "1.38";
 
   src = fetchurl {
     url = "mirror://gnupg/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0z696dmhfxm2n6pmr8b857wwljq9h633yi99bhbn7h88f91rigds";
+    sha256 = "00px79xzyc5lj8aig7i4fhk29h1lkqp4840wjfgi9mv9m9sq566q";
   };
 
-  # Remove gawk buildfix on > 1.36
-  patches = [
-    (fetchpatch {
-      url = "https://dev.gnupg.org/rE7865041c77f4f7005282f10f9b6666b19072fbdf?diff=1";
-      sha256 = "0hs4rpwqq2afpsbqliq451jjaysq2iyzxvd9sx3992b4vnllgqqq";
-    })
-  ];
-
   postPatch = ''
-    # Remove on > 1.36 release: gawk upgrade fix didn't include Makefile regeneration
-    sed 's/-v namespace=errnos_/-v pkg_namespace=errnos_/' -i src/Makefile.in
-
     sed '/BUILD_TIMESTAMP=/s/=.*/=1970-01-01T00:01+0000/' -i ./configure
   '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.buildPlatform != stdenv.hostPlatform) ''
     ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-gnueabihf.h
@@ -45,6 +34,16 @@ in stdenv.mkDerivation (rec {
   '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.hostPlatform.isMusl) ''
     ln -s src/syscfg/lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.arm-unknown-linux-musleabihf.h
     ln -s src/syscfg/lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-musleabihf.h
+  ''
+  # This file was accidentally excluded from the sdist until
+  # 013720333c6ec1d38791689bc49ba039d98e16b3, post release.
+  # TODO make unconditional next mass rebuild
+  + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    cp ${fetchurl {
+      url = "https://raw.githubusercontent.com/gpg/libgpg-error/50e62b36ea01ed25d12c443088b85d4f41a2b3e1/src/gen-lock-obj.sh";
+      sha256 = "10cslipa6npalj869asaamj0w941dhmx0yjafpyyh69ypsg2m2c3";
+    }} ./src/gen-lock-obj.sh
+    chmod +x ./src/gen-lock-obj.sh
   '';
 
   outputs = [ "out" "dev" "info" ];
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/libhandy/default.nix b/pkgs/development/libraries/libhandy/default.nix
index 2a5ad06455d..2923f2da25d 100644
--- a/pkgs/development/libraries/libhandy/default.nix
+++ b/pkgs/development/libraries/libhandy/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitLab, meson, ninja, pkgconfig, gobject-introspection, vala
+{ stdenv, fetchFromGitLab, fetchpatch, meson, ninja, pkgconfig, gobject-introspection, vala
 , gtk-doc, docbook_xsl, docbook_xml_dtd_43
-, gtk3, gnome3
+, gtk3, gnome3, glade
 , dbus, xvfb_run, libxml2
 , hicolor-icon-theme
 }:
@@ -20,11 +20,21 @@ stdenv.mkDerivation rec {
     sha256 = "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5";
   };
 
+  patches = [
+    # Fix build with Glade 3.36.0
+    # https://source.puri.sm/Librem5/libhandy/merge_requests/451
+    (fetchpatch {
+      url = "https://source.puri.sm/Librem5/libhandy/commit/887beedb467984ab5c7b91830181645fadef7849.patch";
+      sha256 = "0qgh4i0l1028qxqmig4x2c10yj5s80skl70qnc5wnp71s45alvk5";
+      excludes = [ "glade/glade-hdy-header-bar.c" ];
+    })
+  ];
+
   nativeBuildInputs = [
     meson ninja pkgconfig gobject-introspection vala libxml2
     gtk-doc docbook_xsl docbook_xml_dtd_43
   ];
-  buildInputs = [ gnome3.gnome-desktop gtk3 gnome3.glade libxml2 ];
+  buildInputs = [ gnome3.gnome-desktop gtk3 glade libxml2 ];
   checkInputs = [ dbus xvfb_run hicolor-icon-theme ];
 
   mesonFlags = [
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 b5717034da0..d147820cff1 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.6.2";
+  version = "1.7.0";
 
   outputs = [ "bin" "out" "dev" "man" ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "strukturag";
     repo = "libheif";
     rev = "v${version}";
-    sha256 = "0ngbzban585hsgs6fb6fkhccc91kxn1n59qvqjp8bw41l24i3nr2";
+    sha256 = "0alri5h486ck9b5z6wwrmlpzydhz58l223z3zxkizqrzxlllhr6p";
   };
 
   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/libiconv/setup-hook.sh b/pkgs/development/libraries/libiconv/setup-hook.sh
index 120cf06c61b..3d9656ffe5d 100644
--- a/pkgs/development/libraries/libiconv/setup-hook.sh
+++ b/pkgs/development/libraries/libiconv/setup-hook.sh
@@ -4,5 +4,5 @@
 # See pkgs/build-support/setup-hooks/role.bash
 if [ -z "${dontAddExtraLibs-}" ]; then
     getHostRole
-    export NIX_${role_pre}LDFLAGS+=" -liconv"
+    export NIX_LDFLAGS${role_post}+=" -liconv"
 fi
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 03a907162b1..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.19";
+  version = "0.21";
+
+  outputs = [ "out" "lib" "dev" "python" ];
 
   src = fetchFromGitHub {
-    owner  = "analogdevicesinc";
-    repo   = "libiio";
-    rev    = "refs/tags/v${version}";
-    sha256 = "1r67h5mayx9krh3mmzs5vz20mvwb2lw04hpbyyisygl01ndc77kq";
+    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/libjcat/default.nix b/pkgs/development/libraries/libjcat/default.nix
index 54ab31e2702..bbf0db23382 100644
--- a/pkgs/development/libraries/libjcat/default.nix
+++ b/pkgs/development/libraries/libjcat/default.nix
@@ -19,7 +19,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libjcat";
-  version = "0.1.2";
+  version = "0.1.3";
 
   outputs = [ "bin" "out" "dev" "devdoc" "man" "installedTests" ];
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "hughsie";
     repo = "libjcat";
     rev = version;
-    sha256 = "zb9zKEvYUOSyo/j6hXTYZlQOSLdMkkT2I+Pe/0wMrWo=";
+    sha256 = "157bi1v9qqk45rkq7lg08l7g3bxwacl4h89vnr7msjmg0hri36kc";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/libjpeg-drop/default.nix b/pkgs/development/libraries/libjpeg-drop/default.nix
deleted file mode 100644
index 22cb1b13589..00000000000
--- a/pkgs/development/libraries/libjpeg-drop/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ stdenv, fetchurl, static ? true }:
-
-with stdenv.lib;
-
-stdenv.mkDerivation {
-  name = "libjpeg-drop-9b";
-
-  srcs = [
-    (fetchurl {
-      url = "http://www.ijg.org/files/jpegsrc.v9b.tar.gz";
-      sha256 = "0lnhpahgdwlrkd41lx6cr90r199f8mc6ydlh7jznj5klvacd63r4";
-    })
-    (fetchurl {
-      url = "http://jpegclub.org/droppatch.v9b.tar.gz";
-      sha256 = "022bnvpird7w5pwbfqpq7j7pwja5kp6x9k3sdypcy3g2nwwy2wwk";
-    })
-  ];
-
-  postUnpack = ''
-    rm jpegtran
-    mv jpegtran.c jpeg-9b/jpegtran.c
-    mv transupp.c jpeg-9b/transupp.c
-    mv transupp.h jpeg-9b/transupp.h
-  '';
-
-  configureFlags = []
-    ++ optionals static [ "--enable-static" "--disable-shared" ];
-
-  outputs = [ "bin" "dev" "out" "man" ];
-
-  meta = {
-    homepage = "http://jpegclub.org/jpegtran/";
-    description = "Experimental lossless crop 'n' drop (cut & paste) patches for libjpeg";
-    license = stdenv.lib.licenses.free;
-  };
-}
diff --git a/pkgs/development/libraries/libjpeg-turbo/default.nix b/pkgs/development/libraries/libjpeg-turbo/default.nix
index 72d8b967749..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 {
 
@@ -18,6 +18,12 @@ stdenv.mkDerivation rec {
         url = "https://github.com/libjpeg-turbo/libjpeg-turbo/commit/a2291b252de1413a13db61b21863ae7aea0946f3.patch";
         sha256 = "0nc5vcch5h52gpi07h08zf8br58q8x81q2hv871hrn0dinb53vym";
       })
+
+      (fetchpatch {
+        name = "cve-2020-13790.patch";
+        url = "https://github.com/libjpeg-turbo/libjpeg-turbo/commit/3de15e0c344d.diff";
+        sha256 = "0hm5i6qir5w3zxb0xvqdh4jyvbfg7xnd28arhyfsaclfz9wdb0pb";
+      })
     ] ++
     stdenv.lib.optional (stdenv.hostPlatform.libc or null == "msvcrt")
       ./mingw-boolean.patch;
@@ -28,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/libksba/default.nix b/pkgs/development/libraries/libksba/default.nix
index 2f0da5edf4e..d627bf81cba 100644
--- a/pkgs/development/libraries/libksba/default.nix
+++ b/pkgs/development/libraries/libksba/default.nix
@@ -1,11 +1,11 @@
 { buildPackages, stdenv, fetchurl, gettext, libgpgerror }:
 
 stdenv.mkDerivation rec {
-  name = "libksba-1.3.5";
+  name = "libksba-1.4.0";
 
   src = fetchurl {
     url = "mirror://gnupg/libksba/${name}.tar.bz2";
-    sha256 = "0h53q4sns1jz1pkmhcz5wp9qrfn9f5g9i3vjv6dafwzzlvblyi21";
+    sha256 = "1dj1razn35srkgadx3i30yr0q037cr0dn54m6a54vxgh3zlsirmz";
   };
 
   outputs = [ "out" "dev" "info" ];
diff --git a/pkgs/development/libraries/liblastfm/default.nix b/pkgs/development/libraries/liblastfm/default.nix
index 62409bb7f64..830e125685e 100644
--- a/pkgs/development/libraries/liblastfm/default.nix
+++ b/pkgs/development/libraries/liblastfm/default.nix
@@ -1,30 +1,34 @@
-{ stdenv, fetchurl, qt4, pkgconfig, libsamplerate, fftwSinglePrec, which, cmake
+{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, which, cmake
+, fftwSinglePrec, libsamplerate, qtbase
 , darwin }:
 
-let version = "1.1.0"; in
-
 stdenv.mkDerivation rec {
-  pname = "liblastfm";
-  inherit version;
+  pname = "liblastfm-unstable";
+  version = "2019-08-23";
 
-  # Upstream does not package git tags as tarballs. Get tarball from github.
-  src = fetchurl {
-    url = "https://github.com/lastfm/liblastfm/tarball/${version}";
-    name = "${pname}-${version}.tar.gz";
-    sha256 = "1j34xc30vg7sfszm2jx9mlz9hy7p1l929fka9wnfcpbib8gfi43x";
+  src = fetchFromGitHub {
+    owner = "lastfm";
+    repo = "liblastfm";
+    rev = "2ce2bfe1879227af8ffafddb82b218faff813db9";
+    sha256 = "1crih9xxf3rb109aqw12bjqv47z28lvlk2dpvyym5shf82nz6yd0";
   };
 
-  prefixKey = "--prefix ";
-  propagatedBuildInputs = [ qt4 libsamplerate fftwSinglePrec ];
+  patches = [(fetchpatch {
+    url = "https://github.com/lastfm/liblastfm/commit/9c5d072b55f2863310e40291677e6397e9cbc3c2.patch";
+    name = "0001-Remove-deprecated-staging-server-and-fix-test-for-QT5-at-Ubuntu-19.10.patch";
+    sha256 = "04r14prydxshjgfws3pjajjmp2msszhjjs1mjh8s66yg29vq620l";
+  })];
+
   nativeBuildInputs = [ pkgconfig which cmake ];
-  buildInputs = stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.SystemConfiguration;
+  buildInputs = [ fftwSinglePrec libsamplerate qtbase ]
+    ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.SystemConfiguration;
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/lastfm/liblastfm";
     repositories.git = "git://github.com/lastfm/liblastfm.git";
     description = "Official LastFM library";
-    inherit (qt4.meta) platforms;
-    maintainers =  [ maintainers.phreedom ];
+    platforms = platforms.unix;
+    maintainers = [ maintainers.phreedom ];
     license = licenses.gpl3;
   };
 }
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/liblinphone/default.nix b/pkgs/development/libraries/liblinphone/default.nix
index a0ee8fe0053..1c414b9dd86 100644
--- a/pkgs/development/libraries/liblinphone/default.nix
+++ b/pkgs/development/libraries/liblinphone/default.nix
@@ -11,7 +11,7 @@
 , doxygen
 , fetchFromGitLab
 , fetchurl
-, ffmpeg
+, ffmpeg_3
 , gdk-pixbuf
 , git
 , glib
@@ -101,7 +101,7 @@ stdenv.mkDerivation rec {
     bzrtp
     cairo
     cyrus_sasl
-    ffmpeg
+    ffmpeg_3
     gdk-pixbuf
     git
     glib
diff --git a/pkgs/development/libraries/liblouis/default.nix b/pkgs/development/libraries/liblouis/default.nix
index 83d08dc019b..5d0459b4f30 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.13.0";
+  version = "3.14.0";
 
   src = fetchFromGitHub {
     owner = "liblouis";
     repo = "liblouis";
     rev = "v${version}";
-    sha256 = "1srpafxdw4627lyv92cn8wd9zda3507qpp5s2z66bsln8jnb1mza";
+    sha256 = "0v6w8b9r994mkkbm2gqgd7k5yfmdhgbabh0j1gmn375nyvhy4qqh";
   };
 
   outputs = [ "out" "dev" "man" "info" "doc" ];
diff --git a/pkgs/development/libraries/libmanette/default.nix b/pkgs/development/libraries/libmanette/default.nix
index 67ee59b6107..eb3cbf4bfef 100644
--- a/pkgs/development/libraries/libmanette/default.nix
+++ b/pkgs/development/libraries/libmanette/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "T+Ckvta0w65ySdNBAxwnsy+Nng/7UzfXHLzscWA2LPc=";
+    sha256 = "1xrc6rh73v5w3kbkflzv1yg8sbxk4wf06hfk95raxhxlssza9q2g";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libmatroska/default.nix b/pkgs/development/libraries/libmatroska/default.nix
index 2d56a6db766..16cdf416b24 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.1";
 
   src = fetchFromGitHub {
     owner  = "Matroska-Org";
     repo   = "libmatroska";
     rev    = "release-${version}";
-    sha256 = "057iib6p62x31g1ikdjsjzmqzjlajqx6p74h7y4r524pzgb27fzy";
+    sha256 = "1ws07ldcm5gy8z8p627vknqcb8iw1hxdby24g0xi6hbfy66p6qxs";
   };
 
   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 9e40133170a..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.22.0";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/libmbim/${pname}-${version}.tar.xz";
-    sha256 = "0f0zmbvnhdsqbf3hw5bimq67n57mhd8yad1ia823cb6i3kmph1sw";
+    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/libmilter/darwin.patch b/pkgs/development/libraries/libmilter/darwin.patch
new file mode 100644
index 00000000000..be46662d6b3
--- /dev/null
+++ b/pkgs/development/libraries/libmilter/darwin.patch
@@ -0,0 +1,28 @@
+Fix build issues on Darwin.
+
+--- a/devtools/OS/Darwin	2014-03-05 01:59:45.000000000 +0100
++++ b/devtools/OS/Darwin	2020-05-18 14:47:57.000000000 +0200
+@@ -8,6 +8,8 @@
+ #    We look a lot more like 4.4BSD than NeXTStep or OpenStep.
+ #
+ define(`confCC', `cc -traditional-cpp -pipe ${Extra_CC_Flags}')
++define(`confCCOPTS_SO', `-fPIC')
++define(`confSOEXT', `dylib')
+ define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX -DNETINFO -DAUTO_NETINFO_ALIASES -DAUTO_NETINFO_HOSTS')
+ define(`confENVDEF', `-DDARWIN')
+ define(`confLDOPTS', `${Extra_LD_Flags}')
+--- a/sendmail/sendmail.h	2020-05-18 14:51:17.000000000 +0200
++++ b/sendmail/sendmail.h	2020-05-18 14:51:00.000000000 +0200
+@@ -104,7 +104,11 @@
+ # endif /* NETX25 */
+ 
+ # if NAMED_BIND
+-#  include <arpa/nameser.h>
++#  ifdef __APPLE__
++#   include <arpa/nameser_compat.h>
++#  else
++#   include <arpa/nameser.h>
++#  endif
+ #  ifdef NOERROR
+ #   undef NOERROR		/* avoid <sys/streams.h> conflict */
+ #  endif /* NOERROR */
diff --git a/pkgs/development/libraries/libmilter/default.nix b/pkgs/development/libraries/libmilter/default.nix
index 8d677d858de..f937d818a55 100644
--- a/pkgs/development/libraries/libmilter/default.nix
+++ b/pkgs/development/libraries/libmilter/default.nix
@@ -28,10 +28,11 @@ stdenv.mkDerivation rec {
       define(\`confLIBGRP', \`root')
       APPENDDEF(\`confENVDEF', \`-DNETINET6')
     EOF
+    export MILTER_SOVER=1
     sh Build -f ./a.m4
   '';
 
-  patches = [ ./install.patch ./sharedlib.patch ./glibc-2.30.patch ];
+  patches = [ ./install.patch ./sharedlib.patch ./glibc-2.30.patch ./darwin.patch ];
 
   nativeBuildInputs = [ m4 ];
 
diff --git a/pkgs/development/libraries/libmilter/sharedlib.patch b/pkgs/development/libraries/libmilter/sharedlib.patch
index bbc69a516ff..1e256c59ec3 100644
--- a/pkgs/development/libraries/libmilter/sharedlib.patch
+++ b/pkgs/development/libraries/libmilter/sharedlib.patch
@@ -16,28 +16,29 @@ diff -Nru sendmail-8.14.3.orig/devtools/M4/UNIX/milterlibrary.m4 sendmail-8.14.3
 +#
 +divert(0)dnl
 +include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/links.m4')dnl
++define(`confSOEXT', ifdef(`confSOEXT', `confSOEXT', `so'))dnl
 +bldLIST_PUSH_ITEM(`bldC_PRODUCTS', bldCURRENT_PRODUCT)dnl
-+bldPUSH_TARGET(bldCURRENT_PRODUCT`.so' bldCURRENT_PRODUCT`.a')dnl
++bldPUSH_TARGET(bldCURRENT_PRODUCT`.'confSOEXT bldCURRENT_PRODUCT`.a')dnl
 +bldPUSH_INSTALL_TARGET(`install-'bldCURRENT_PRODUCT)dnl
 +bldPUSH_CLEAN_TARGET(bldCURRENT_PRODUCT`-clean')dnl
 +
 +include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/defines.m4')
 +divert(bldTARGETS_SECTION)
-+bldCURRENT_PRODUCT.so: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
-+	${CCLINK} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.so -Wl,confSONAME,bldCURRENT_PRODUCT.so.${MILTER_SOVER} ${bldCURRENT_PRODUCT`OBJS'} -lc ${LIBS}
++bldCURRENT_PRODUCT`.'confSOEXT: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
++	${CCLINK} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.confSOEXT ifdef(`confSONAME',`-Wl,confSONAME,bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER}') ${bldCURRENT_PRODUCT`OBJS'} -lc ${LIBS}
 +bldCURRENT_PRODUCT.a: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
 +	${AR} ${AROPTS} bldCURRENT_PRODUCT.a ${bldCURRENT_PRODUCT`OBJS'}
 +	${RANLIB} ${RANLIBOPTS} bldCURRENT_PRODUCT.a
 +ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE_LINKS(bldLINK_SOURCES)')
 +
-+install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.so bldCURRENT_PRODUCT.a
++install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.confSOEXT bldCURRENT_PRODUCT.a
 +ifdef(`bldINSTALLABLE', `	ifdef(`confMKDIR', `if [ ! -d "${DESTDIR}${bldINSTALL_DIR`'LIBDIR}" ]; then confMKDIR -p "${DESTDIR}${bldINSTALL_DIR`'LIBDIR}"; else :; fi ')
-+	${INSTALL} -c bldCURRENT_PRODUCT.so "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.so.${MILTER_SOVER}"
-+	${LN} ${LNOPTS} bldCURRENT_PRODUCT.so.${MILTER_SOVER} "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.so"
-+	${INSTALL} -c bldCURRENT_PRODUCT.a "${DESTDIR}${LIBDIR}"')
++	${INSTALL} -c bldCURRENT_PRODUCT.confSOEXT "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER}"
++	${LN} ${LNOPTS} bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER} "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.confSOEXT"
++	${INSTALL} -c -m 644 bldCURRENT_PRODUCT.a "${DESTDIR}${LIBDIR}"')
 +
 +bldCURRENT_PRODUCT-clean:
-+	rm -f ${OBJS} bldCURRENT_PRODUCT.so bldCURRENT_PRODUCT.a ${MANPAGES}
++	rm -f ${OBJS} bldCURRENT_PRODUCT.confSOEXT bldCURRENT_PRODUCT.a ${MANPAGES}
 +
 +divert(0)
 +COPTS+= confCCOPTS_SO
diff --git a/pkgs/development/libraries/libmodulemd/1.nix b/pkgs/development/libraries/libmodulemd/1.nix
deleted file mode 100644
index 174296375e0..00000000000
--- a/pkgs/development/libraries/libmodulemd/1.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ libmodulemd, fetchurl }:
-
-libmodulemd.overrideAttrs(old: rec {
-  name = "libmodulemd-${version}";
-  version = "1.8.15";
-
-  # Removes py output since there's no overrides here
-  outputs = [ "out" "devdoc" ];
-
-  patches = [
-    # Checks for glib docs in glib's prefix
-    # but they're installed to another
-    ./dont-check-docs.patch
-  ];
-
-  src = fetchurl {
-    url = "https://github.com/fedora-modularity/libmodulemd/releases/download/${name}/modulemd-${version}.tar.xz";
-    sha256 = "0gz8p3qzji3cx0r57sy3gn4dhigg4k7pcxj3lmjcjn13vxh5rm7z";
-  };
-
-})
diff --git a/pkgs/development/libraries/libmodulemd/default.nix b/pkgs/development/libraries/libmodulemd/default.nix
index f296883b686..f79bc104fc8 100644
--- a/pkgs/development/libraries/libmodulemd/default.nix
+++ b/pkgs/development/libraries/libmodulemd/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "fedora-modularity";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "dm0uvzM5v1zDQVkonHbrT9l9ICnXZbCSiLRCMZRxhXY=";
+    sha256 = "0xl5f6a32hmli29b0rfp54h7vnagxdv9qa2r871mrgrr6fzjwvbn";
   };
 
   patches = [
@@ -41,11 +41,11 @@ stdenv.mkDerivation rec {
     # https://github.com/fedora-modularity/libmodulemd/pull/469
     (fetchpatch {
       url = "https://github.com/fedora-modularity/libmodulemd/commit/f72a4bea092f4d84cfc48a3e820eb10270e828d0.patch";
-      sha256 = "7/76N9ZQ7qv/DjsaMCL+YWPDzarH1JWW4Sg5HzBJLuc=";
+      sha256 = "1rrf94q1yf98w6b9bm67mb6w6qv1zqi306iv1vzspvjhsqvzmzpg";
     })
     (fetchpatch {
       url = "https://github.com/fedora-modularity/libmodulemd/commit/021ab08006b5cf601ce153174fdf403b910b8273.patch";
-      sha256 = "JibEmxMiTmu3ShhWLIWfMCtu3c30UcHqXmX9b+2VZXw=";
+      sha256 = "0z35jpnnzzb5bvmc2lglrpfnwarhky2jqmhq9avnnki22fdw89i6";
     })
   ];
 
diff --git a/pkgs/development/libraries/libmodulemd/dont-check-docs.patch b/pkgs/development/libraries/libmodulemd/dont-check-docs.patch
deleted file mode 100644
index 38ad5683692..00000000000
--- a/pkgs/development/libraries/libmodulemd/dont-check-docs.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/meson.build b/meson.build
-index 155c9e7..9125372 100644
---- a/meson.build
-+++ b/meson.build
-@@ -60,15 +60,15 @@ sh = find_program('sh')
- sed = find_program('sed')
- test = find_program('test')
- 
--ret = run_command ([test, '-e', join_paths(glib_docpath, 'glib/index.html')])
--if ret.returncode() != 0
--  error('Missing documentation for GLib.')
--endif
--
--ret = run_command ([test, '-e', join_paths(glib_docpath, 'gobject/index.html')])
--if ret.returncode() != 0
--  error('Missing documentation for GObject.')
--endif
-+# ret = run_command ([test, '-e', join_paths(glib_docpath, 'glib/index.html')])
-+# if ret.returncode() != 0
-+#   error('Missing documentation for GLib.')
-+# endif
-+
-+# ret = run_command ([test, '-e', join_paths(glib_docpath, 'gobject/index.html')])
-+# if ret.returncode() != 0
-+#   error('Missing documentation for GObject.')
-+# endif
- 
- python_name = get_option('python_name')
- 
diff --git a/pkgs/development/libraries/libmpack/default.nix b/pkgs/development/libraries/libmpack/default.nix
index cdc45956e7a..736474d29a5 100644
--- a/pkgs/development/libraries/libmpack/default.nix
+++ b/pkgs/development/libraries/libmpack/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   pname = "libmpack";
   version = "1.0.5";
   src = fetchFromGitHub {
-    owner = "tarruda";
+    owner = "libmpack";
     repo = "libmpack";
     rev = version;
     sha256 = "0rai5djdkjz7bsn025k5489in7r1amagw1pib0z4qns6b52kiar2";
diff --git a/pkgs/development/libraries/libmpc/default.nix b/pkgs/development/libraries/libmpc/default.nix
index 235474c0ca1..c0459e393fa 100644
--- a/pkgs/development/libraries/libmpc/default.nix
+++ b/pkgs/development/libraries/libmpc/default.nix
@@ -2,6 +2,11 @@
 , 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";
 in
diff --git a/pkgs/development/libraries/libmypaint/default.nix b/pkgs/development/libraries/libmypaint/default.nix
index 5cb971f5db8..074e3842933 100644
--- a/pkgs/development/libraries/libmypaint/default.nix
+++ b/pkgs/development/libraries/libmypaint/default.nix
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libmypaint";
-  version = "1.6.0";
+  version = "1.6.1";
 
   outputs = [ "out" "dev" ];
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     owner = "mypaint";
     repo = "libmypaint";
     rev = "v${version}";
-    sha256 = "1fdyywm915mmilfmzp7lz4rnmm05kkw0adrdqpqi4n8icp4d530g";
+    sha256 = "1ppgpmnhph9h8ayx9776f79a0bxbdszfw9c6bw7c3ffy2yk40178";
   };
 
   nativeBuildInputs = [
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/libnetfilter_queue/default.nix b/pkgs/development/libraries/libnetfilter_queue/default.nix
index 556db28f856..55e07c03b28 100644
--- a/pkgs/development/libraries/libnetfilter_queue/default.nix
+++ b/pkgs/development/libraries/libnetfilter_queue/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, pkgconfig, libmnl, libnfnetlink }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.3";
+  version = "1.0.4";
   pname = "libnetfilter_queue";
 
   src = fetchurl {
     url = "https://www.netfilter.org/projects/libnetfilter_queue/files/${pname}-${version}.tar.bz2";
-    sha256 = "0x77m1fvbqzz5z64jz59fb6j8dvv8b9pg4fmznqwax4x6imjcncq";
+    sha256 = "0w7s6g8bikch1m4hnxdakpkwgrkw64ikb6wb4v4zvgyiywrk5yai";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/libnftnl/default.nix b/pkgs/development/libraries/libnftnl/default.nix
index 4aac04a4d02..f9def04f99b 100644
--- a/pkgs/development/libraries/libnftnl/default.nix
+++ b/pkgs/development/libraries/libnftnl/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, pkgconfig, libmnl }:
 
 stdenv.mkDerivation rec {
-  version = "1.1.5";
+  version = "1.1.7";
   pname = "libnftnl";
 
   src = fetchurl {
     url = "https://netfilter.org/projects/${pname}/files/${pname}-${version}.tar.bz2";
-    sha256 = "1wqlxf76bkqf3qhka9sw32qhb2ni20q1k6rn3iril2kw482lvpk6";
+    sha256 = "13zd90bfrr0q3j0l0cbc8kiizccw6n8gp727kqnfljh024zw3nr0";
   };
 
   nativeBuildInputs = [ pkgconfig ];
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/libnotify/default.nix b/pkgs/development/libraries/libnotify/default.nix
index 01a89f16c2a..34d8d800c38 100644
--- a/pkgs/development/libraries/libnotify/default.nix
+++ b/pkgs/development/libraries/libnotify/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "ZsBRftFt968ljoMgj6r1Bpcn39ZplcS7xRwWlU1nR2E=";
+    sha256 = "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36";
   };
 
   mesonFlags = [
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/libosinfo/default.nix b/pkgs/development/libraries/libosinfo/default.nix
index 79bd53ab03b..6e751253594 100644
--- a/pkgs/development/libraries/libosinfo/default.nix
+++ b/pkgs/development/libraries/libosinfo/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libosinfo";
-  version = "1.7.1";
+  version = "1.8.0";
 
   src = fetchurl {
     url = "https://releases.pagure.org/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1s97sv24bybggjx6hgqba2qdqz3ivfpd4cmkh4zm5y59sim109mv";
+    sha256 = "1988l5rykpzvml1l7bi2hcax0gdc811vja0f92cnr7r01nz35zs9";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
@@ -68,10 +68,11 @@ stdenv.mkDerivation rec {
     "-Denable-gtk-doc=true"
   ];
 
-  # FIXME: fails two new tests added in 1.7.1:
-  # libosinfo:symbols / check-symfile
-  # 3/24 libosinfo:symbols / check-symsorting
-  doCheck = false;
+  preCheck = ''
+    patchShebangs ../osinfo/check-symfile.pl ../osinfo/check-symsorting.pl
+  '';
+
+  doCheck = true;
 
   meta = with stdenv.lib; {
     description = "GObject based library API for managing information about operating systems, hypervisors and the (virtual) hardware devices they can support";
diff --git a/pkgs/development/libraries/libosmium/default.nix b/pkgs/development/libraries/libosmium/default.nix
index 29edf37d80e..830465fb113 100644
--- a/pkgs/development/libraries/libosmium/default.nix
+++ b/pkgs/development/libraries/libosmium/default.nix
@@ -2,18 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "libosmium";
-  version = "2.15.5";
+  version = "2.15.6";
 
   src = fetchFromGitHub {
     owner = "osmcode";
     repo = "libosmium";
     rev = "v${version}";
-    sha256 = "1f21dzzkxzi74hv17fs9kb2w6indqvvm4lkxclz4j4x98k8q3n59";
+    sha256 = "0rqy18bbakp41f44y5id9ixh0ar2dby46z17p4115z8k1vv9znq2";
   };
 
   nativeBuildInputs = [ cmake ];
+
   buildInputs = [ protozero zlib bzip2 expat boost ];
 
+  doCheck = true;
 
   meta = with stdenv.lib; {
     description = "Fast and flexible C++ library for working with OpenStreetMap data";
diff --git a/pkgs/development/libraries/libpam-wrapper/default.nix b/pkgs/development/libraries/libpam-wrapper/default.nix
new file mode 100644
index 00000000000..f8359cded93
--- /dev/null
+++ b/pkgs/development/libraries/libpam-wrapper/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetchgit
+, cmake
+, linux-pam
+, enablePython ? false
+, python ? null
+}:
+
+assert enablePython -> python != null;
+
+stdenv.mkDerivation rec {
+  pname = "libpam-wrapper";
+  version = "1.1.3";
+
+  src = fetchgit {
+    url = "git://git.samba.org/pam_wrapper.git";
+    rev = "pam_wrapper-${version}";
+    sha256 = "00mqhsashx7njrvxz085d0b88nizhdy7m3x17ip5yhvwsl63km6p";
+  };
+
+  nativeBuildInputs = [ cmake ] ++ stdenv.lib.optional enablePython [ python ];
+
+  # We must use linux-pam, using openpam will result in broken fprintd.
+  buildInputs = [ linux-pam ];
+
+  meta = with stdenv.lib; {
+    description = "Wrapper for testing PAM modules";
+    homepage = "https://cwrap.org/pam_wrapper.html";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.elyhaka ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/libpcap/default.nix b/pkgs/development/libraries/libpcap/default.nix
index 123c2f2f067..604fd3ee446 100644
--- a/pkgs/development/libraries/libpcap/default.nix
+++ b/pkgs/development/libraries/libpcap/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, flex, bison }:
+{ stdenv, fetchurl, flex, bison, bluez, pkgconfig, withBluez ? false }:
+
+with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "libpcap";
@@ -9,26 +11,30 @@ stdenv.mkDerivation rec {
     sha256 = "153h1378diqyc27jjgz6gg5nxmb4ddk006d9xg69nqavgiikflk3";
   };
 
-  nativeBuildInputs = [ flex bison ];
+  nativeBuildInputs = [ flex bison ]
+    ++ 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";
       darwin = "bpf";
     }.${stdenv.hostPlatform.parsed.kernel.name})
-  ] ++ stdenv.lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [
-    "ac_cv_linux_vers=2"
-  ];
-
-  dontStrip = stdenv.hostPlatform != stdenv.buildPlatform;
+  ] ++ optionals (stdenv.hostPlatform == stdenv.buildPlatform)
+    [ "ac_cv_linux_vers=2" ];
 
-  prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
+  prePatch = optionalString stdenv.isDarwin ''
     substituteInPlace configure --replace " -arch i386" ""
   '';
 
-  meta = with stdenv.lib; {
+  postInstall = ''
+    if [ "$dontDisableStatic" -ne "1" ]; then
+      rm -f $out/lib/libpcap.a
+    fi
+  '';
+
+  meta = {
     homepage = "https://www.tcpdump.org";
     description = "Packet Capture Library";
     platforms = platforms.unix;
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/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/libqb/default.nix b/pkgs/development/libraries/libqb/default.nix
index 58eb64b0e48..244dcf0999b 100644
--- a/pkgs/development/libraries/libqb/default.nix
+++ b/pkgs/development/libraries/libqb/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   name = "libqb-0.17.2";
 
   src = fetchurl {
diff --git a/pkgs/development/libraries/libqmi/default.nix b/pkgs/development/libraries/libqmi/default.nix
index 33b4983b015..e8db7501534 100644
--- a/pkgs/development/libraries/libqmi/default.nix
+++ b/pkgs/development/libraries/libqmi/default.nix
@@ -1,22 +1,24 @@
-{ stdenv, fetchurl, pkgconfig, glib, python3, libgudev, libmbim }:
+{ stdenv, fetchurl, pkg-config, gobject-introspection, glib, python3, libgudev, libmbim }:
 
 stdenv.mkDerivation rec {
   pname = "libqmi";
-  version = "1.24.10";
+  version = "1.26.2";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/libqmi/${pname}-${version}.tar.xz";
-    sha256 = "1rzxapr6hb18ccvqh5fizx7zk63l47bs0p3gizycz2ysnm1i44n2";
+    sha256 = "00vvvfq74awg6mk0si1cdv79f6z6wqx11h47nl78a1h7zsr6fd0k";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
 
   configureFlags = [
     "--with-udev-base-dir=${placeholder "out"}/lib/udev"
+    "--enable-introspection"
   ];
 
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
+    gobject-introspection
     python3
   ];
 
diff --git a/pkgs/development/libraries/libqtav/default.nix b/pkgs/development/libraries/libqtav/default.nix
index 8d9cf381ff8..43489e8e850 100644
--- a/pkgs/development/libraries/libqtav/default.nix
+++ b/pkgs/development/libraries/libqtav/default.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, fetchFromGitHub, extra-cmake-modules
 , qtbase, qtmultimedia, qtquick1, qttools
 , libGL, libX11
-, libass, openal, ffmpeg, libuchardet
+, libass, openal, ffmpeg_3, libuchardet
 , alsaLib, libpulseaudio, libva
 }:
 
@@ -15,7 +15,7 @@ mkDerivation rec {
   buildInputs = [
     qtbase qtmultimedia qtquick1
     libGL libX11
-    libass openal ffmpeg libuchardet
+    libass openal ffmpeg_3 libuchardet
     alsaLib libpulseaudio libva
   ];
 
@@ -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/libraspberrypi/default.nix b/pkgs/development/libraries/libraspberrypi/default.nix
index 1cd1f5e62ac..bbe0b614550 100644
--- a/pkgs/development/libraries/libraspberrypi/default.nix
+++ b/pkgs/development/libraries/libraspberrypi/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   name = "libraspberrypi";
-  version = "2019-10-22";
+  version = "2020-05-28";
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "userland";
-    rev = "5070cb7fc150fc98f1ed64a7739c3356970d9f76";
-    sha256 = "08yfzwn9s7lhrblcsxyag9p5lj5vk3n66b1pv3f7r3hah7qcggyq";
+    rev = "f97b1af1b3e653f9da2c1a3643479bfd469e3b74";
+    sha256 = "1r7n05rv96hqjq0rn0qzchmfqs0j7vh3p8jalgh66s6l0vms5mwy";
   };
 
   cmakeFlags = if (stdenv.targetPlatform.system == "aarch64-linux")
diff --git a/pkgs/development/libraries/librealsense/default.nix b/pkgs/development/libraries/librealsense/default.nix
index a8924ca4782..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.33.1";
+  version = "2.38.0";
 
   outputs = [ "out" "dev" ];
 
@@ -10,11 +15,17 @@ stdenv.mkDerivation rec {
     owner = "IntelRealSense";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04macplj3k2sdpf1wdjm6gsghak5dzfhi2pmr47qldh2sy2zz0a3";
+    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/libressl/default.nix b/pkgs/development/libraries/libressl/default.nix
index 285d7b607e7..bb9fb777289 100644
--- a/pkgs/development/libraries/libressl/default.nix
+++ b/pkgs/development/libraries/libressl/default.nix
@@ -63,20 +63,13 @@ let
   };
 
 in {
-
-  libressl_2_9 = generic {
-    version = "2.9.2";
-    sha256 = "1m6mz515dcbrbnyz8hrpdfjzdmj1c15vbgnqxdxb89g3z9kq3iy4";
-    patches = stdenv.lib.optional stdenv.hostPlatform.isMusl [
-      (fetchpatch {
-        url = "https://github.com/libressl-portable/portable/pull/529/commits/a747aacc23607c993cc481378782b2c7dd5bc53b.patch";
-        sha256 = "0wbrcscdkjpk4mhh7f3saghi4smia4lhf7fl6la3ahhgx1krn5zm";
-      })
-    ];
-  };
-
   libressl_3_0 = generic {
     version = "3.0.2";
     sha256 = "13ir2lpxz8y1m151k7lrx306498nzfhwlvgkgv97v5cvywmifyyz";
   };
+
+  libressl_3_1 = generic {
+    version = "3.1.3";
+    sha256 = "184znscbkww65aavy2p4v4xncalp1ni19c2w5yvfq4pnmhb06sy7";
+  };
 }
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 afd1df51e5b..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.4";
+  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 = "0vlmgisf87dz4vcl1ypcw7g211wkyvhydv6ksf1p6mgdbkw3mdi8";
+    sha256 = "14i6xzghcidv64cyd3g0wdjbl82rph737yxn9s3x29nzpcjs707l";
   };
 
   outputs = [ "out" "dev" "installedTests" ];
diff --git a/pkgs/development/libraries/librsync/default.nix b/pkgs/development/libraries/librsync/default.nix
index d90106f89d8..9499be80f03 100644
--- a/pkgs/development/libraries/librsync/default.nix
+++ b/pkgs/development/libraries/librsync/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "librsync";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "librsync";
     repo = "librsync";
     rev = "v${version}";
-    sha256 = "18wwfbbggsjrd4w3dczxa2gv3zvx0fqp68b8h1zzvdbyn91f16mz";
+    sha256 = "131cd4asmpm4nskidzgiy8xibbnpibvvbq857a0pcky77min5g4z";
   };
 
   nativeBuildInputs = [ cmake ];
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/libsolv/default.nix b/pkgs/development/libraries/libsolv/default.nix
index 9443846acf1..d559efd3aab 100644
--- a/pkgs/development/libraries/libsolv/default.nix
+++ b/pkgs/development/libraries/libsolv/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, cmake, ninja, zlib, expat, rpm, db }:
 
 stdenv.mkDerivation rec {
-  version  = "0.7.13";
+  version  = "0.7.14";
   pname = "libsolv";
 
   src = fetchFromGitHub {
     owner  = "openSUSE";
     repo   = "libsolv";
     rev    = version;
-    sha256 = "1hjk7r7047i451xjgw72in62pya1h1436fvx945vxlvswl5s6iw8";
+    sha256 = "10klbgknl2njbjl4k0l50ii7afwqrl1691ar4ry3snmc8chb1z7g";
   };
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/libssh2/CVE-2019-17498.patch b/pkgs/development/libraries/libssh2/CVE-2019-17498.patch
new file mode 100644
index 00000000000..8681c3ef609
--- /dev/null
+++ b/pkgs/development/libraries/libssh2/CVE-2019-17498.patch
@@ -0,0 +1,210 @@
+From b9aa7c2495694d0527e4e7fd560a3f0f18556c72 Mon Sep 17 00:00:00 2001
+From: Will Cosgrove <will@panic.com>
+Date: Thu, 29 Aug 2019 15:14:19 -0700
+Subject: [PATCH 1/5] packet.c: improve parsing of packets
+
+file: packet.c
+
+notes:
+Use _libssh2_get_string API in SSH_MSG_DEBUG, additional uint32 bounds check in SSH_MSG_GLOBAL_REQUEST
+---
+ src/packet.c | 30 +++++++++++++++---------------
+ 1 file changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/src/packet.c b/src/packet.c
+index 38ab62944..ac69768cd 100644
+--- a/src/packet.c
++++ b/src/packet.c
+@@ -537,26 +537,26 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
+         case SSH_MSG_DEBUG:
+             if(datalen >= 2) {
+                 int always_display = data[1];
+-
++            
+                 if(datalen >= 6) {
+-                    message_len = _libssh2_ntohu32(data + 2);
+-
+-                    if(message_len <= (datalen - 10)) {
+-                        /* 6 = packet_type(1) + display(1) + message_len(4) */
+-                        message = (char *) data + 6;
+-                        language_len = _libssh2_ntohu32(data + 6 +
+-                                                        message_len);
+-
+-                        if(language_len <= (datalen - 10 - message_len))
+-                            language = (char *) data + 10 + message_len;
+-                    }
++                    struct string_buf buf;
++                    buf.data = (unsigned char *)data;
++                    buf.dataptr = buf.data;
++                    buf.len = datalen;
++                    buf.dataptr += 2; /* advance past type & always display */
++
++                    _libssh2_get_string(&buf, &message, &message_len);
++                    _libssh2_get_string(&buf, &language, &language_len);
+                 }
+ 
+                 if(session->ssh_msg_debug) {
+-                    LIBSSH2_DEBUG(session, always_display, message,
+-                                  message_len, language, language_len);
++                    LIBSSH2_DEBUG(session, always_display,
++                                  (const char *)message,
++                                  message_len, (const char *)language,
++                                  language_len);
+                 }
+             }
++
+             /*
+              * _libssh2_debug will actually truncate this for us so
+              * that it's not an inordinate about of data
+@@ -579,7 +579,7 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
+                 uint32_t len = 0;
+                 unsigned char want_reply = 0;
+                 len = _libssh2_ntohu32(data + 1);
+-                if(datalen >= (6 + len)) {
++                if((len <= (UINT_MAX - 6) && (datalen >= (6 + len))) {
+                     want_reply = data[5 + len];
+                     _libssh2_debug(session,
+                                    LIBSSH2_TRACE_CONN,
+
+From 8b3cf0b17c1b84a138bed9423a9e0743452b4de9 Mon Sep 17 00:00:00 2001
+From: Will Cosgrove <will@panic.com>
+Date: Thu, 29 Aug 2019 15:15:33 -0700
+Subject: [PATCH 2/5] stray whitespace
+
+---
+ src/packet.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/packet.c b/src/packet.c
+index ac69768cd..8908b2c5a 100644
+--- a/src/packet.c
++++ b/src/packet.c
+@@ -537,7 +537,7 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
+         case SSH_MSG_DEBUG:
+             if(datalen >= 2) {
+                 int always_display = data[1];
+-            
++
+                 if(datalen >= 6) {
+                     struct string_buf buf;
+                     buf.data = (unsigned char *)data;
+
+From 1c6fa92b77e34d089493fe6d3e2c6c8775858b94 Mon Sep 17 00:00:00 2001
+From: Will Cosgrove <will@panic.com>
+Date: Thu, 29 Aug 2019 15:24:22 -0700
+Subject: [PATCH 3/5] fixed type issue, updated SSH_MSG_DISCONNECT
+
+SSH_MSG_DISCONNECT now also uses  _libssh2_get API.
+---
+ src/packet.c | 40 +++++++++++++++-------------------------
+ 1 file changed, 15 insertions(+), 25 deletions(-)
+
+diff --git a/src/packet.c b/src/packet.c
+index 8908b2c5a..97f0cdd4b 100644
+--- a/src/packet.c
++++ b/src/packet.c
+@@ -419,8 +419,8 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
+                     size_t datalen, int macstate)
+ {
+     int rc = 0;
+-    char *message = NULL;
+-    char *language = NULL;
++    unsigned char *message = NULL;
++    unsigned char *language = NULL;
+     size_t message_len = 0;
+     size_t language_len = 0;
+     LIBSSH2_CHANNEL *channelp = NULL;
+@@ -472,33 +472,23 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
+ 
+         case SSH_MSG_DISCONNECT:
+             if(datalen >= 5) {
+-                size_t reason = _libssh2_ntohu32(data + 1);
++                uint32_t reason = 0;
++                struct string_buf buf;
++                buf.data = (unsigned char *)data;
++                buf.dataptr = buf.data;
++                buf.len = datalen;
++                buf.dataptr++; /* advance past type */
+ 
+-                if(datalen >= 9) {
+-                    message_len = _libssh2_ntohu32(data + 5);
++                _libssh2_get_u32(&buf, &reason);
++                _libssh2_get_string(&buf, &message, &message_len);
++                _libssh2_get_string(&buf, &language, &language_len);
+ 
+-                    if(message_len < datalen-13) {
+-                        /* 9 = packet_type(1) + reason(4) + message_len(4) */
+-                        message = (char *) data + 9;
+-
+-                        language_len =
+-                            _libssh2_ntohu32(data + 9 + message_len);
+-                        language = (char *) data + 9 + message_len + 4;
+-
+-                        if(language_len > (datalen-13-message_len)) {
+-                            /* bad input, clear info */
+-                            language = message = NULL;
+-                            language_len = message_len = 0;
+-                        }
+-                    }
+-                    else
+-                        /* bad size, clear it */
+-                        message_len = 0;
+-                }
+                 if(session->ssh_msg_disconnect) {
+-                    LIBSSH2_DISCONNECT(session, reason, message,
+-                                       message_len, language, language_len);
++                    LIBSSH2_DISCONNECT(session, reason, (const char *)message,
++                                       message_len, (const char *)language,
++                                       language_len);
+                 }
++
+                 _libssh2_debug(session, LIBSSH2_TRACE_TRANS,
+                                "Disconnect(%d): %s(%s)", reason,
+                                message, language);
+
+From 77616117cc9dbbdd0fe1157098435bff73a83a0f Mon Sep 17 00:00:00 2001
+From: Will Cosgrove <will@panic.com>
+Date: Thu, 29 Aug 2019 15:26:32 -0700
+Subject: [PATCH 4/5] fixed stray (
+
+bad paste
+---
+ src/packet.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/packet.c b/src/packet.c
+index 97f0cdd4b..bd4c39e46 100644
+--- a/src/packet.c
++++ b/src/packet.c
+@@ -569,7 +569,7 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
+                 uint32_t len = 0;
+                 unsigned char want_reply = 0;
+                 len = _libssh2_ntohu32(data + 1);
+-                if((len <= (UINT_MAX - 6) && (datalen >= (6 + len))) {
++                if(len <= (UINT_MAX - 6) && datalen >= (6 + len)) {
+                     want_reply = data[5 + len];
+                     _libssh2_debug(session,
+                                    LIBSSH2_TRACE_CONN,
+
+From 436c45dc143cadc8c59afac6c4255be332856581 Mon Sep 17 00:00:00 2001
+From: Will Cosgrove <will@panic.com>
+Date: Thu, 29 Aug 2019 15:29:00 -0700
+Subject: [PATCH 5/5] added additional parentheses for clarity
+
+---
+ src/packet.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/packet.c b/src/packet.c
+index bd4c39e46..2e01bfc5d 100644
+--- a/src/packet.c
++++ b/src/packet.c
+@@ -569,7 +569,7 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
+                 uint32_t len = 0;
+                 unsigned char want_reply = 0;
+                 len = _libssh2_ntohu32(data + 1);
+-                if(len <= (UINT_MAX - 6) && datalen >= (6 + len)) {
++                if((len <= (UINT_MAX - 6)) && (datalen >= (6 + len))) {
+                     want_reply = data[5 + len];
+                     _libssh2_debug(session,
+                                    LIBSSH2_TRACE_CONN,
diff --git a/pkgs/development/libraries/libssh2/default.nix b/pkgs/development/libraries/libssh2/default.nix
index 5cc0232e17d..8ce9c814df0 100644
--- a/pkgs/development/libraries/libssh2/default.nix
+++ b/pkgs/development/libraries/libssh2/default.nix
@@ -15,12 +15,8 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional stdenv.hostPlatform.isMinGW windows.mingw_w64;
 
   patches = [
-    # not able to use fetchpatch here: infinite recursion
-    (fetchurl {
-      name = "CVE-2019-17498.patch";
-      url = "https://github.com/libssh2/libssh2/pull/402.patch";
-      sha256 = "1n9s2mcz5dkw0xpm3c5x4hzj8bar4i6z0pr1rmqjplhfg888vdvc";
-    })
+    # Not able to use fetchpatch here: infinite recursion
+    ./CVE-2019-17498.patch
   ];
 
   meta = with stdenv.lib; {
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/libtap/default.nix b/pkgs/development/libraries/libtap/default.nix
index 1bb324b55f2..c1c506ef5e3 100644
--- a/pkgs/development/libraries/libtap/default.nix
+++ b/pkgs/development/libraries/libtap/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, pkgconfig, cmake, perl }:
 
 with stdenv.lib;
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
 
   pname = "libtap";
   version = "1.14.0";
diff --git a/pkgs/development/libraries/libtomcrypt/default.nix b/pkgs/development/libraries/libtomcrypt/default.nix
index d9e9df59324..4587701011d 100644
--- a/pkgs/development/libraries/libtomcrypt/default.nix
+++ b/pkgs/development/libraries/libtomcrypt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libtool }:
+{ stdenv, fetchurl, fetchpatch, libtool }:
 
 stdenv.mkDerivation rec {
   pname = "libtomcrypt";
@@ -9,6 +9,14 @@ stdenv.mkDerivation rec {
     sha256 = "113vfrgapyv72lalhd3nkw7jnks8az0gcb5wqn9hj19nhcxlrbcn";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2019-17362.patch";
+      url = "https://github.com/libtom/libtomcrypt/pull/508/commits/25c26a3b7a9ad8192ccc923e15cf62bf0108ef94.patch";
+      sha256 = "1bwsj0pwffxw648wd713z3xcyrbxc2z646psrzp38ys564fjh5zf";
+    })
+  ];
+
   nativeBuildInputs = [ libtool ];
 
   postPatch = ''
diff --git a/pkgs/development/libraries/libtoxcore/default.nix b/pkgs/development/libraries/libtoxcore/default.nix
index 996613d5ffc..6d170c798d0 100644
--- a/pkgs/development/libraries/libtoxcore/default.nix
+++ b/pkgs/development/libraries/libtoxcore/default.nix
@@ -55,7 +55,7 @@ in {
   };
 
   libtoxcore_0_2 = generic {
-    version = "0.2.10";
-    sha256 = "0r5j2s5n8ikayvr1zylvv3ai3smbhm2m0yhpa9lfcsxhvyn9phcn";
+    version = "0.2.12";
+    sha256 = "0a6sqpm00d2rn0nviqfz4gh9ck1wzci6rxgmqmcyryl5ca19ffvp";
   };
 }
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 3becd075b25..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,15 +9,20 @@ 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 ];
 
   doCheck = true;
 
-  postInstall = ''
-    install -D -t $out/lib/udev/rules.d 70-u2f.rules
-  '';
-
   meta = with stdenv.lib; {
     homepage = "https://developers.yubico.com/libu2f-host";
     description = "A C library and command-line tool that implements the host-side of the U2F protocol";
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/libuchardet/default.nix b/pkgs/development/libraries/libuchardet/default.nix
index 7b6a85cec07..43fa300f107 100644
--- a/pkgs/development/libraries/libuchardet/default.nix
+++ b/pkgs/development/libraries/libuchardet/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "uchardet";
-  version = "0.0.6";
+  version = "0.0.7";
 
   outputs = [ "bin" "out" "man" "dev" ];
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/${pname}/releases/${pname}-${version}.tar.xz";
-    sha256 = "0q9c02b6nmw41yfsiqsnphgc3f0yg3fj31wkccp47cmwvy634lc3";
+    sha256 = "1ca51sryhryqz82v4d0graaiqqq5w2f33a9gj83b910xmq499irz";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libucl/default.nix b/pkgs/development/libraries/libucl/default.nix
new file mode 100644
index 00000000000..b9b33453a4c
--- /dev/null
+++ b/pkgs/development/libraries/libucl/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, autoreconfHook
+, curl
+, lua
+, openssl
+, features ? {
+    urls = false;
+    # Upstream enables regex by default
+    regex = true;
+    # Signature support is broken with openssl 1.1.1: https://github.com/vstakhov/libucl/issues/203
+    signatures = false;
+    lua = false;
+    utils = false;
+  }
+}:
+
+let
+  featureDeps = {
+    urls = [ curl ];
+    signatures = [ openssl ];
+    lua = [ lua ];
+  };
+in
+stdenv.mkDerivation rec {
+  pname = "libucl";
+  version = "0.8.1";
+
+  src = fetchFromGitHub {
+    owner = "vstakhov";
+    repo = pname;
+    rev = version;
+    sha256 = "1h52ldxankyhbbm1qbqz1f2q0j03c1b4mig7343bs3mc6fpm18gf";
+  };
+
+  nativeBuildInputs = [ pkg-config autoreconfHook ];
+
+  buildInputs = with stdenv.lib;
+    concatLists (
+      mapAttrsToList (feat: enabled:
+        optionals enabled (featureDeps."${feat}" or [])
+      ) features
+    );
+
+  enableParallelBuilding = true;
+
+  configureFlags = with stdenv.lib;
+    mapAttrsToList (feat: enabled: strings.enableFeature enabled feat) features;
+
+  meta = with stdenv.lib; {
+    description = "Universal configuration library parser";
+    homepage = "https://github.com/vstakhov/libucl";
+    license = licenses.bsd2;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ jpotier ];
+  };
+}
diff --git a/pkgs/development/libraries/libunibreak/default.nix b/pkgs/development/libraries/libunibreak/default.nix
index 5b549176889..8c6650df3cb 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/liburcu/default.nix b/pkgs/development/libraries/liburcu/default.nix
index 5292ec9d7e0..6046bcf8eab 100644
--- a/pkgs/development/libraries/liburcu/default.nix
+++ b/pkgs/development/libraries/liburcu/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, perl }:
 
 stdenv.mkDerivation rec {
-  version = "0.11.1";
+  version = "0.12.1";
   pname = "liburcu";
 
   src = fetchurl {
     url = "https://lttng.org/files/urcu/userspace-rcu-${version}.tar.bz2";
-    sha256 = "0l1kxgzch4m8fxiz2hc8fwg56hrvzzspp7n0svnl7i7iycdrgfcj";
+    sha256 = "03nd1gy2c3fdb6xwdrd5lr1jcjxbzffqh3z91mzbjhjn6k8fmymv";
   };
 
   checkInputs = [ perl ];
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/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix
index 65023814171..5d6a20b13a4 100644
--- a/pkgs/development/libraries/libusb1/default.nix
+++ b/pkgs/development/libraries/libusb1/default.nix
@@ -33,7 +33,9 @@ stdenv.mkDerivation rec {
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
 
-  preFixup = stdenv.lib.optionalString stdenv.isLinux ''
+  configureFlags = stdenv.lib.optional (!enableSystemd) "--disable-udev";
+
+  preFixup = stdenv.lib.optionalString enableSystemd ''
     sed 's,-ludev,-L${stdenv.lib.getLib systemd}/lib -ludev,' -i $out/lib/libusb-1.0.la
   '';
 
diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix
index 9f6adeb65b0..cf73a64f675 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.37.0";
+  version = "1.38.1";
   pname = "libuv";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0iy25w4wy9f5y7i7aqidhqz93qi00lv7vhx6s521n0kphvaj8ijz";
+    sha256 = "0cvabjhi53qw94zyjkqamx0c607ayydfb4f3djx2gj8ab2p7s29n";
   };
 
   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"
diff --git a/pkgs/development/libraries/libva/default.nix b/pkgs/development/libraries/libva/default.nix
index 86c6a88b1ef..7f690f0997b 100644
--- a/pkgs/development/libraries/libva/default.nix
+++ b/pkgs/development/libraries/libva/default.nix
@@ -1,40 +1,33 @@
-{ stdenv, lib, fetchFromGitHub, autoreconfHook, pkgconfig
-, libXext, libdrm, libXfixes, wayland, libffi, libX11
-, libGL, mesa
+{ stdenv, lib, fetchFromGitHub, fetchpatch, meson, pkg-config, ninja, wayland
+, libdrm
 , minimal ? false, libva-minimal
-, buildPackages
+, libX11, libXext, libXfixes, libffi, libGL
+, mesa
 }:
 
 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";
   };
 
   outputs = [ "dev" "out" ];
 
-  nativeBuildInputs = [ autoreconfHook pkgconfig wayland ];
+  nativeBuildInputs = [ meson pkg-config ninja wayland ];
 
   buildInputs = [ libdrm ]
     ++ lib.optionals (!minimal) [ libva-minimal libX11 libXext libXfixes wayland libffi libGL ];
   # TODO: share libs between minimal and !minimal - perhaps just symlink them
 
-  enableParallelBuilding = true;
-
-  configureFlags = [
-    # Add FHS paths for non-NixOS applications.
-    "--with-drivers-path=${mesa.drivers.driverLink}/lib/dri:/usr/lib/dri:/usr/lib32/dri"
-    "ac_cv_path_WAYLAND_SCANNER=${buildPackages.wayland}/bin/wayland-scanner"
-  ] ++ lib.optionals (!minimal) [ "--enable-glx" ];
-
-  installFlags = [
-    "dummy_drv_video_ladir=$(out)/lib/dri"
+  mesonFlags = [
+    # Add FHS paths for non-NixOS applications:
+    "-Ddriverdir=${mesa.drivers.driverLink}/lib/dri:/usr/lib/dri:/usr/lib32/dri"
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libva-utils/default.nix b/pkgs/development/libraries/libva/utils.nix
index a4de995ada8..5b9f4cdd8aa 100644
--- a/pkgs/development/libraries/libva-utils/default.nix
+++ b/pkgs/development/libraries/libva/utils.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, pkgconfig
-, libdrm, libva, libX11, libXext, libXfixes, wayland, meson, ninja
+{ stdenv, fetchFromGitHub, meson, ninja, pkg-config
+, libdrm, libva, libX11, libXext, libXfixes, wayland
 }:
 
 stdenv.mkDerivation rec {
@@ -10,21 +10,13 @@ stdenv.mkDerivation rec {
     owner  = "intel";
     repo   = "libva-utils";
     rev    = version;
-    sha256 = "13a0dccphi4cpr2cx45kg4djxsssi3d1fcjrkx27b16xiayp5lx9";
+    sha256 = "081hw2jnj64bpqwh9p41n5caqzm6dnj1ggnvvc5wrf4m2z1h2bjb";
   };
 
-  nativeBuildInputs = [ meson ninja pkgconfig ];
+  nativeBuildInputs = [ meson ninja pkg-config ];
 
   buildInputs = [ libdrm libva libX11 libXext libXfixes wayland ];
 
-  mesonFlags = [
-    "-Ddrm=true"
-    "-Dx11=true"
-    "-Dwayland=true"
-  ];
-
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     description = "A collection of utilities and examples for VA-API";
     longDescription = ''
diff --git a/pkgs/development/libraries/libvdpau-va-gl/default.nix b/pkgs/development/libraries/libvdpau-va-gl/default.nix
index cfc74a8a759..98176cd41f1 100644
--- a/pkgs/development/libraries/libvdpau-va-gl/default.nix
+++ b/pkgs/development/libraries/libvdpau-va-gl/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, cmake, pkgconfig, libX11, libpthreadstubs, libXau, libXdmcp
-, libXext, libvdpau, glib, libva, ffmpeg, libGLU }:
+, libXext, libvdpau, glib, libva, ffmpeg_3, libGLU }:
 
 stdenv.mkDerivation rec {
   pname = "libvdpau-va-gl";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
-  buildInputs = [ libX11 libpthreadstubs libXau libXdmcp libXext libvdpau glib libva ffmpeg libGLU ];
+  buildInputs = [ libX11 libpthreadstubs libXau libXdmcp libXext libvdpau glib libva ffmpeg_3 libGLU ];
 
   doCheck = false; # fails. needs DRI access
 
diff --git a/pkgs/development/libraries/libversion/default.nix b/pkgs/development/libraries/libversion/default.nix
index e1dc591f8b5..cee04fa79e4 100644
--- a/pkgs/development/libraries/libversion/default.nix
+++ b/pkgs/development/libraries/libversion/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   preCheck = ''
-    export LD_LIBRARY_PATH=/build/source/build/libversion/:$LD_LIBRARY_PATH
+    export LD_LIBRARY_PATH=/build/source/build/libversion/''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
   '';
   doCheck = true;
   checkTarget = "test";
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index c1b34879eef..27f345a9c83 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -4,7 +4,7 @@
 , iproute, iptables, readline, lvm2, utillinux, systemd, libpciaccess, gettext
 , libtasn1, ebtables, libgcrypt, yajl, pmutils, libcap_ng, libapparmor
 , dnsmasq, libnl, libpcap, libxslt, xhtml1, numad, numactl, perlPackages
-, curl, libiconv, gmp, zfs, parted, bridge-utils, dmidecode
+, curl, libiconv, gmp, zfs, parted, bridge-utils, dmidecode, dbus
 , enableXen ? false, xen ? null
 , enableIscsi ? false, openiscsi
 , enableCeph ? false, ceph
@@ -17,26 +17,26 @@ 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;
       };
 
   nativeBuildInputs = [ makeWrapper pkgconfig docutils ] ++ optionals (!buildFromTarball) [ autoreconfHook ];
   buildInputs = [
     libxml2 gnutls perl python2 readline gettext libtasn1 libgcrypt yajl
-    libxslt xhtml1 perlPackages.XMLXPath curl libpcap glib
+    libxslt xhtml1 perlPackages.XMLXPath curl libpcap glib dbus
   ] ++ optionals stdenv.isLinux [
     libpciaccess lvm2 utillinux systemd libnl numad zfs
     libapparmor libcap_ng numactl attr parted
@@ -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"
@@ -74,6 +75,7 @@ in stdenv.mkDerivation rec {
     "--with-test"
     "--with-esx"
     "--with-remote"
+    "--with-polkit"
   ] ++ optionals stdenv.isLinux [
     "QEMU_BRIDGE_HELPER=/run/wrappers/bin/qemu-bridge-helper"
     "QEMU_PR_HELPER=/run/libvirt/nix-helpers/qemu-pr-helper"
@@ -96,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 fb494909c83..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.1";
+  version = "1.5.3";
 
   src = fetchFromGitHub {
     owner = "netflix";
     repo = "vmaf";
     rev = "v${version}";
-    sha256 = "10fw53k9k4aq4p2qi5qkfjfnhldw4p5bbmxggf8220gfa95nvyl3";
+    sha256 = "0x3l3g0hgrrjh3ygmxr1pd3rd5589s07c7id35nvj76ch5b7gy63";
   };
 
   sourceRoot = "source/libvmaf";
 
-  nativeBuildInputs = [ meson ninja ];
+  nativeBuildInputs = [ meson ninja nasm ];
   outputs = [ "out" "dev" ];
   doCheck = true;
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Netflix/vmaf";
     description = "Perceptual video quality assessment based on multi-method fusion (VMAF)";
     platforms = platforms.unix;
-    license = licenses.asl20;
+    license = licenses.bsd2Patent;
     maintainers = [ maintainers.cfsmp3 maintainers.marsam ];
   };
 
diff --git a/pkgs/development/libraries/libvncserver/default.nix b/pkgs/development/libraries/libvncserver/default.nix
index c9adad6f645..c4e82b1c326 100644
--- a/pkgs/development/libraries/libvncserver/default.nix
+++ b/pkgs/development/libraries/libvncserver/default.nix
@@ -7,9 +7,9 @@ let
   s = # Generated upstream information
   rec {
     pname = "libvncserver";
-    version = "0.9.12";
+    version = "0.9.13";
     url = "https://github.com/LibVNC/libvncserver/archive/LibVNCServer-${version}.tar.gz";
-    sha256 = "1226hb179l914919f5nm2mlf8rhaarqbf48aa649p4rwmghyx9vm"; # unpacked archive checksum
+    sha256 = "0zz0hslw8b1p3crnfy3xnmrljik359h83dpk64s697dqdcrzy141"; # unpacked archive checksum
   };
 in
 stdenv.mkDerivation {
@@ -17,18 +17,7 @@ stdenv.mkDerivation {
   src = fetchzip {
     inherit (s) url sha256;
   };
-  patches = [
-    (fetchpatch {
-      name = "CVE-2018-20750.patch";
-      url = "https://github.com/LibVNC/libvncserver/commit/09e8fc02f59f16e2583b34fe1a270c238bd9ffec.patch";
-      sha256 = "004h50786nvjl3y3yazpsi2b767vc9gqrwm1ralj3zgy47kwfhqm";
-    })
-    (fetchpatch {
-      name = "CVE-2019-15681.patch";
-      url = "https://github.com/LibVNC/libvncserver/commit/d01e1bb4246323ba6fcee3b82ef1faa9b1dac82a.patch";
-      sha256 = "0hf0ss7all2m50z2kan4mck51ws44yim4ymn8p0d991y465y6l9s";
-    })
-  ];
+
   nativeBuildInputs = [ cmake ];
   buildInputs = [
     libjpeg openssl libgcrypt libpng
diff --git a/pkgs/development/libraries/libwacom/default.nix b/pkgs/development/libraries/libwacom/default.nix
index c33317550b5..e762ead1923 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.4.1";
 
   outputs = [ "out" "dev" ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "linuxwacom";
     repo = "libwacom";
     rev = "libwacom-${version}";
-    sha256 = "12g8jb67wj6sgg9ar2w8kkw1m1431rn9nd0j64qkrd3vy9g4l0hk";
+    sha256 = "0m96zjj832l18rzg9l31ambm6rv9vnh2a1sfk8531da8m347z287";
   };
 
   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/libwnck/3.x.nix b/pkgs/development/libraries/libwnck/3.x.nix
index 9f60abd4f59..78aa231bda3 100644
--- a/pkgs/development/libraries/libwnck/3.x.nix
+++ b/pkgs/development/libraries/libwnck/3.x.nix
@@ -19,7 +19,7 @@
 , gnome3
 }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   pname = "libwnck";
   version = "3.36.0";
 
diff --git a/pkgs/development/libraries/libxls/default.nix b/pkgs/development/libraries/libxls/default.nix
index 2b28499864a..d555ecea06d 100644
--- a/pkgs/development/libraries/libxls/default.nix
+++ b/pkgs/development/libraries/libxls/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libxls";
-  version = "1.5.2";
+  version = "1.5.3";
 
   src = fetchurl {
     url = "https://github.com/libxls/libxls/releases/download/v${version}/libxls-${version}.tar.gz";
-    sha256 = "1akadsyl10rp101ccjmrxr7933c3v641k377bn74jv6cdkcm4zld";
+    sha256 = "0rl513wpq5qh7wkmdk4g9c68rzffv3mcbz48p4xyg4969zrx8lnm";
   };
 
   nativeBuildInputs = [ unzip ];
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/libxslt/default.nix b/pkgs/development/libraries/libxslt/default.nix
index a03fca12581..cf91d7656bf 100644
--- a/pkgs/development/libraries/libxslt/default.nix
+++ b/pkgs/development/libraries/libxslt/default.nix
@@ -1,10 +1,8 @@
-{ stdenv, fetchurl, fetchpatch, libxml2, findXMLCatalogs, python, libgcrypt
+{ stdenv, fetchurl, fetchpatch, libxml2, findXMLCatalogs, gettext, python, libgcrypt
 , cryptoSupport ? false
 , pythonSupport ? stdenv.buildPlatform == stdenv.hostPlatform
 }:
 
-with stdenv.lib;
-
 stdenv.mkDerivation rec {
   pname = "libxslt";
   version = "1.1.34";
@@ -17,6 +15,7 @@ stdenv.mkDerivation rec {
   outputs = [ "bin" "dev" "out" "man" "doc" ] ++ stdenv.lib.optional pythonSupport "py";
 
   buildInputs = [ libxml2.dev ]
+    ++ stdenv.lib.optional stdenv.isDarwin gettext
     ++ stdenv.lib.optionals pythonSupport [ libxml2.py python ]
     ++ stdenv.lib.optionals cryptoSupport [ libgcrypt ];
 
@@ -27,14 +26,14 @@ stdenv.mkDerivation rec {
     "--without-debug"
     "--without-mem-debug"
     "--without-debugger"
-  ] ++ optional pythonSupport "--with-python=${python}"
-    ++ optional (!cryptoSupport) "--without-crypto";
+  ] ++ stdenv.lib.optional pythonSupport "--with-python=${python}"
+    ++ stdenv.lib.optional (!cryptoSupport) "--without-crypto";
 
   postFixup = ''
     moveToOutput bin/xslt-config "$dev"
     moveToOutput lib/xsltConf.sh "$dev"
     moveToOutput share/man/man1 "$bin"
-  '' + optionalString pythonSupport ''
+  '' + stdenv.lib.optionalString pythonSupport ''
     mkdir -p $py/nix-support
     echo ${libxml2.py} >> $py/nix-support/propagated-build-inputs
     moveToOutput ${python.libPrefix} "$py"
diff --git a/pkgs/development/libraries/libxsmm/default.nix b/pkgs/development/libraries/libxsmm/default.nix
new file mode 100644
index 00000000000..25c85948608
--- /dev/null
+++ b/pkgs/development/libraries/libxsmm/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, coreutils, gfortran7, gnused
+, python27, utillinux, which, bash
+}:
+
+let
+  version = "1.15";
+in stdenv.mkDerivation {
+  pname = "libxsmm";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "hfp";
+    repo = "libxsmm";
+    rev = "refs/tags/${version}";
+    sha256 = "1406qk7k2k4qfqy4psqk55iihsrx91w8kjgsa82jxj50nl9nw5nj";
+  };
+
+  buildInputs = [
+    coreutils
+    gfortran7
+    gnused
+    python27
+    utillinux
+    which
+  ];
+
+  prePatch = ''
+    patchShebangs .
+  '';
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    description = "Library targeting Intel Architecture for specialized dense and sparse matrix operations, and deep learning primitives";
+    license = licenses.bsd3;
+    homepage = "https://github.com/hfp/libxsmm";
+    platforms = platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ chessai ];
+    inherit version;
+  };
+}
diff --git a/pkgs/development/libraries/libyaml/default.nix b/pkgs/development/libraries/libyaml/default.nix
index 7f723cf2ef8..37b8ebcc3ef 100644
--- a/pkgs/development/libraries/libyaml/default.nix
+++ b/pkgs/development/libraries/libyaml/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libyaml";
-  version = "0.2.4";
+  version = "0.2.5";
 
   src = fetchFromGitHub {
     owner = "yaml";
     repo = "libyaml";
     rev = version;
-    sha256 = "04z25mvw86jhzyrj0h8mlgisvj9glc5ww9g0cymzjfsd7z33gnmy";
+    sha256 = "18zsnsxc53pans4a01cs4401a2cjk3qi098hi440pj4zijifgcsb";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/development/libraries/lightstep-tracer-cpp/default.nix b/pkgs/development/libraries/lightstep-tracer-cpp/default.nix
index 5f5ffef2026..2e6b3644628 100644
--- a/pkgs/development/libraries/lightstep-tracer-cpp/default.nix
+++ b/pkgs/development/libraries/lightstep-tracer-cpp/default.nix
@@ -9,13 +9,13 @@ assert enableGrpc -> c-ares != null;
 
 stdenv.mkDerivation rec {
   pname = "lightstep-tracer-cpp";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "lightstep";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0zwj5r0rmfk6cm5ikay4kh7na455vskylc5yrxkhisn4n850d1l4";
+    sha256 = "0d7z9isf0n8s63mvp3j75949w0yv7jsva29i62lq8yxbym688fxb";
   };
 
   nativeBuildInputs = [
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/lmdb/default.nix b/pkgs/development/libraries/lmdb/default.nix
index 513e842edfa..64f6fccefa7 100644
--- a/pkgs/development/libraries/lmdb/default.nix
+++ b/pkgs/development/libraries/lmdb/default.nix
@@ -1,14 +1,13 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchgit }:
 
 stdenv.mkDerivation rec {
   pname = "lmdb";
-  version = "0.9.24";
+  version = "0.9.25";
 
-  src = fetchFromGitHub {
-    owner = "LMDB";
-    repo = "lmdb";
+  src = fetchgit {
+    url = "https://git.openldap.org/openldap/openldap.git";
     rev = "LMDB_${version}";
-    sha256 = "088q6m8fvr12w43s461h7cvpg5hj8csaqj6n9pci150dz7bk5lxm";
+    sha256 = "0i60zlca8r6fib23gdgl4c80gxpx24772ggpvz94yr7zaai4k11w";
   };
 
   postUnpack = "sourceRoot=\${sourceRoot}/libraries/liblmdb";
diff --git a/pkgs/development/libraries/lyra/default.nix b/pkgs/development/libraries/lyra/default.nix
index e7227ac6388..c0220e6e21d 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.3";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "bfgroup";
     repo = "lyra";
     rev = version;
-    sha256 = "0rpk1hadfcvjps5k307sddv23q73m2918wclfxfi6mj8l7gwkcn9";
+    sha256 = "08g6kqaj079aq7i6c1pwj778lrr3yk188wn1byxdd6zqpwrsv71q";
   };
 
   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 bf2ec772507..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 = "cP2l6nl6cuBQYwkmBj8APu/vH3jTeScXf3ffcuSfqlM=";
+    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 = "5PD/eJBw/8Uqcia7ena9mu45DgREBFj0zUJpcd0vQ+8=";
-    })
   ];
 
   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/marisa/default.nix b/pkgs/development/libraries/marisa/default.nix
index 9a4d178d3d2..99d82970fe0 100644
--- a/pkgs/development/libraries/marisa/default.nix
+++ b/pkgs/development/libraries/marisa/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "marisa";
-  version = "0.2.5";
+  version = "0.2.6";
 
   src = fetchFromGitHub {
     owner = "s-yata";
     repo = "marisa-trie";
     rev = "v${version}";
-    sha256 = "0z4bf55np08q3cbi6gvj3cpw3zp8kf2d0jq6k74pjk066m7rapbb";
+    sha256 = "1hy8hfksizk1af6kg8z3b9waiz6d5ggd73fiqcvmhfgra36dscyq";
   };
 
   enableParallelBuilding = true;
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/mediastreamer/default.nix b/pkgs/development/libraries/mediastreamer/default.nix
index 5f7daa83b2f..81c7c8fcacf 100644
--- a/pkgs/development/libraries/mediastreamer/default.nix
+++ b/pkgs/development/libraries/mediastreamer/default.nix
@@ -5,7 +5,7 @@
 , doxygen
 , fetchFromGitLab
 , fetchpatch
-, ffmpeg
+, ffmpeg_3
 , glew
 , gsm
 , intltool
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
     alsaLib
     bctoolbox
     bzrtp
-    ffmpeg
+    ffmpeg_3
     glew
     gsm
     libGL
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 7eb18dd31c1..f972e3f79a7 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -1,9 +1,10 @@
-{ stdenv, lib, fetchurl, fetchpatch
+{ stdenv, lib, fetchurl, fetchpatch, buildPackages
 , pkgconfig, intltool, ninja, meson
 , file, flex, bison, expat, libdrm, xorg, wayland, wayland-protocols, openssl
 , llvmPackages, libffi, libomxil-bellagio, libva-minimal
 , libelf, libvdpau, python3Packages
 , libglvnd
+, patchelf, autoreconfHook, fetchFromGitHub
 , enableRadv ? true
 , galliumDrivers ? ["auto"]
 , driDrivers ? ["auto"]
@@ -11,6 +12,8 @@
 , eglPlatforms ? [ "x11" "surfaceless" ] ++ lib.optionals stdenv.isLinux [ "wayland" "drm" ]
 , OpenGL, Xplugin
 , withValgrind ? stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32, valgrind-light
+, enableGalliumNine ? stdenv.isLinux
+, enableOSMesa ? stdenv.isLinux
 }:
 
 /** Packaging design:
@@ -27,7 +30,9 @@
 with stdenv.lib;
 
 let
-  version = "20.0.2";
+  # Release calendar: https://www.mesa3d.org/release-calendar.html
+  # Release frequency: https://www.mesa3d.org/releasing.html#schedule
+  version = "20.1.5";
   branch  = versions.major version;
 in
 
@@ -37,12 +42,12 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     urls = [
+      "https://mesa.freedesktop.org/archive/mesa-${version}.tar.xz"
       "ftp://ftp.freedesktop.org/pub/mesa/mesa-${version}.tar.xz"
       "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"
-      "https://mesa.freedesktop.org/archive/mesa-${version}.tar.xz"
     ];
-    sha256 = "0vz8k07d23qdwy67fnna9y0ynnni0m8lgswcmdm60l4mcv5z2m5a";
+    sha256 = "16y609zavqqhvxb55c06zwkg986qp6znvn7qjg4axw8bdqg8dhgs";
   };
 
   prePatch = "patchShebangs .";
@@ -54,7 +59,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";
@@ -73,7 +93,13 @@ stdenv.mkDerivation {
       })
     ];
 
-  outputs = [ "out" "dev" "drivers" "osmesa" ];
+  postPatch = ''
+    substituteInPlace meson.build --replace \
+      "find_program('pkg-config')" \
+      "find_program('${buildPackages.pkg-config.targetPrefix}pkg-config')"
+  '';
+
+  outputs = [ "out" "dev" "drivers" ] ++ lib.optional enableOSMesa "osmesa";
 
   # TODO: Figure out how to enable opencl without having a runtime dependency on clang
   mesonFlags = [
@@ -97,10 +123,10 @@ stdenv.mkDerivation {
     "-Domx-libs-path=${placeholder "drivers"}/lib/bellagio"
     "-Dva-libs-path=${placeholder "drivers"}/lib/dri"
     "-Dd3d-drivers-path=${placeholder "drivers"}/lib/d3d"
+    "-Dgallium-nine=${if enableGalliumNine then "true" else "false"}" # Direct3D in Wine
+    "-Dosmesa=${if enableOSMesa then "gallium" else "none"}" # used by wine
   ] ++ optionals stdenv.isLinux [
     "-Dglvnd=true"
-    "-Dosmesa=gallium" # used by wine
-    "-Dgallium-nine=true" # Direct3D in Wine
   ];
 
   buildInputs = with xorg; [
@@ -112,10 +138,24 @@ stdenv.mkDerivation {
     ++ lib.optionals stdenv.isLinux [ libomxil-bellagio libva-minimal ]
     ++ lib.optional withValgrind valgrind-light;
 
+  depsBuildBuild = [ pkgconfig ];
+
   nativeBuildInputs = [
+    (patchelf.overrideAttrs (pa: {
+      src = fetchFromGitHub {
+        owner = "NixOS";
+        repo = "patchelf";
+        rev = "61bc10176"; # current master; what matters is merge of #225
+        sha256 = "0cy77mn77w3mn64ggp20f4ygnbxfjmddhjjhfwkva53lsirg6w93";
+      };
+      nativeBuildInputs = pa.nativeBuildInputs or [] ++ [ autoreconfHook ];
+    }))
+  ] ++ [
     pkgconfig meson ninja
     intltool bison flex file
     python3Packages.python python3Packages.Mako
+  ] ++ lib.optionals (elem "wayland" eglPlatforms) [
+    wayland # For wayland-scanner during the build
   ];
 
   propagatedBuildInputs = with xorg; [
@@ -132,17 +172,17 @@ stdenv.mkDerivation {
   '' + optionalString stdenv.isLinux ''
     mkdir -p $drivers/lib
 
-    # move gallium-related stuff to $drivers, so $out doesn't depend on LLVM
-    mv -t $drivers/lib       \
-      $out/lib/libxatracker* \
-      $out/lib/libvulkan_*
+    if [ -n "$(shopt -s nullglob; echo "$out/lib/libxatracker"*)" -o -n "$(shopt -s nullglob; echo "$out/lib/libvulkan_"*)" ]; then
+      # move gallium-related stuff to $drivers, so $out doesn't depend on LLVM
+      mv -t $drivers/lib       \
+        $out/lib/libxatracker* \
+        $out/lib/libvulkan_*
+    fi
 
-    # Move other drivers to a separate output
-    mv $out/lib/lib*_mesa* $drivers/lib
-
-    # move libOSMesa to $osmesa, as it's relatively big
-    mkdir -p $osmesa/lib
-    mv -t $osmesa/lib/ $out/lib/libOSMesa*
+    if [ -n "$(shopt -s nullglob; echo "$out"/lib/lib*_mesa*)" ]; then
+      # Move other drivers to a separate output
+      mv $out/lib/lib*_mesa* $drivers/lib
+    fi
 
     # move vendor files
     mv $out/share/ $drivers/
@@ -157,6 +197,10 @@ stdenv.mkDerivation {
     for js in $drivers/share/vulkan/icd.d/*.json; do
       substituteInPlace "$js" --replace "$out" "$drivers"
     done
+  '' + lib.optionalString enableOSMesa ''
+    # move libOSMesa to $osmesa, as it's relatively big
+    mkdir -p $osmesa/lib
+    mv -t $osmesa/lib/ $out/lib/libOSMesa*
   '';
 
   # TODO:
@@ -171,7 +215,9 @@ stdenv.mkDerivation {
 
     # Update search path used by pkg-config
     for pc in $dev/lib/pkgconfig/{d3d,dri,xatracker}.pc; do
-      substituteInPlace "$pc" --replace $out $drivers
+      if [ -f "$pc" ]; then
+        substituteInPlace "$pc" --replace $out $drivers
+      fi
     done
 
     # add RPATH so the drivers can find the moved libgallium and libdricore9
@@ -205,6 +251,6 @@ stdenv.mkDerivation {
     changelog = "https://www.mesa3d.org/relnotes/${version}.html";
     license = licenses.mit; # X11 variant, in most files
     platforms = platforms.mesaPlatforms;
-    maintainers = with maintainers; [ vcunat ];
+    maintainers = with maintainers; [ primeos vcunat ]; # Help is welcome :)
   };
 }
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..e6182009ba8
--- /dev/null
+++ b/pkgs/development/libraries/mesa/link-radv-with-ld_args_build_id.patch
@@ -0,0 +1,26 @@
+From 00f3c6d1b771c11ecc08c3d8bd793a51d6e64166 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 efcf2dd6c89..590f286b8cb 100644
+--- a/src/amd/vulkan/meson.build
++++ b/src/amd/vulkan/meson.build
+@@ -173,7 +173,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],
++  link_args : [ld_args_build_id, ld_args_bsymbolic, ld_args_gc_sections],
+   install : true,
+ )
+ 
+-- 
+2.27.0
+
diff --git a/pkgs/development/libraries/mimalloc/default.nix b/pkgs/development/libraries/mimalloc/default.nix
index 03a1e77e7bf..bf6c5b1baf3 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.1";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner  = "microsoft";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "1zql498587wvb0gaavnzxj2zm535sgm22x0sjgl4ncfk7ragnv9c";
+    sha256 = "0hk30adrm0s1g5flfaqfr3lc72y3hlmhqnyrqd7p0y91rsaw86b9";
   };
 
   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/mm-common/default.nix b/pkgs/development/libraries/mm-common/default.nix
index 890ab6fca11..3c02e537d2a 100644
--- a/pkgs/development/libraries/mm-common/default.nix
+++ b/pkgs/development/libraries/mm-common/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mm-common";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1m4w33da9f4rx2d6kdj3ix3kl0gn16ml82v2mdn4hljr3q29nzdr";
+    sha256 = "1jasx9a9g7nqf7jcv3mrg4qh5cp9sq724jxjaz4wa1dzmxsxg8i8";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/mp4v2/default.nix b/pkgs/development/libraries/mp4v2/default.nix
index 8fe1477aa63..9601ae1eea3 100644
--- a/pkgs/development/libraries/mp4v2/default.nix
+++ b/pkgs/development/libraries/mp4v2/default.nix
@@ -1,39 +1,39 @@
-{ stdenv, lib, fetchurl }:
+{ stdenv, lib, fetchFromGitHub, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "mp4v2-2.0.0";
-
-  src = fetchurl {
-    url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/mp4v2/${name}.tar.bz2";
-    sha256 = "0f438bimimsvxjbdp4vsr8hjw2nwggmhaxgcw07g2z361fkbj683";
+  pname = "mp4v2";
+  version = "4.1.3";
+
+  src = fetchFromGitHub {
+    # 2020-06-20: THE current upstream, maintained and used in distros fork.
+    owner = "TechSmith";
+    repo = "mp4v2";
+    rev = "Release-ThirdParty-MP4v2-${version}";
+    sha256 = "053a0lgy819sbz92cfkq0vmkn2ky39bva554pj4ypky1j6vs04fv";
   };
 
   patches = [
     (fetchurl {
-      name = "gcc-7.patch";
-      url = "https://src.fedoraproject.org/cgit/rpms/libmp4v2.git/plain/"
-          + "0004-Fix-GCC7-build.patch?id=d7aeedabb";
+      # 2020-06-19: NOTE: # Fix build with C++11
+      # Close when https://github.com/TechSmith/mp4v2/pull/36 merged/closed.
+      url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/libmp4v2-c++11.patch?id=203f5a72bc97ffe089b424c47b07dd9eaea35713";
       sha256 = "0sbn0il7lmk77yrjyb4f0a3z3h8gsmdkscvz5n9hmrrrhrwf672w";
     })
   ];
 
-  buildFlags = [ "CXXFLAGS=-std=c++03" ];
-
   # `faac' expects `mp4.h'.
   postInstall = "ln -s mp4v2/mp4v2.h $out/include/mp4.h";
 
-  hardeningDisable = [ "format" ];
-
   enableParallelBuilding = true;
 
   meta = {
-    description = "Abandoned library. Provides functions to read, create, and modify mp4 files";
+    description = "Provides functions to read, create, and modify mp4 files";
     longDescription = ''
       MP4v2 library provides an API to work with mp4 files
       as defined by ISO-IEC:14496-1:2001 MPEG-4 Systems.
       This container format is derived from Apple's QuickTime format.
     '';
-    homepage = "https://code.google.com/archive/p/mp4v2/";
+    homepage = "https://github.com/TechSmith/mp4v2";
     maintainers = [ lib.maintainers.Anton-Latukha ];
     platforms = lib.platforms.unix;
     license = lib.licenses.mpl11;
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/mtxclient/default.nix b/pkgs/development/libraries/mtxclient/default.nix
index 22b66442305..842d144005d 100644
--- a/pkgs/development/libraries/mtxclient/default.nix
+++ b/pkgs/development/libraries/mtxclient/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mtxclient";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "Nheko-Reborn";
     repo = "mtxclient";
     rev = "v${version}";
-    sha256 = "0vf5xmn6yfi5lvskfgrdmnalvclzrapcrml92bj9qaa8vq8mfsf2";
+    sha256 = "1dg4dq20g0ah62j5s3gpsxqq4ny7lxkxdxa9q6g54hdwkrb9ms7x";
   };
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/multipart-parser-c/default.nix b/pkgs/development/libraries/multipart-parser-c/default.nix
index e641b404a86..b2bdf5d0447 100644
--- a/pkgs/development/libraries/multipart-parser-c/default.nix
+++ b/pkgs/development/libraries/multipart-parser-c/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "iafonov";
     repo = pname;
     rev = "772639cf10db6d9f5a655ee9b7eb20b815fab396";
-    sha256 = "sha256:056r63vj8f1rwf3wk7jmwhm8ba25l6h1gs6jnkh0schbwcvi56xl";
+    sha256 = "056r63vj8f1rwf3wk7jmwhm8ba25l6h1gs6jnkh0schbwcvi56xl";
   };
 
   buildPhase = ''
diff --git a/pkgs/development/libraries/mygui/default.nix b/pkgs/development/libraries/mygui/default.nix
index 94c578f6c26..894d35eb3d8 100644
--- a/pkgs/development/libraries/mygui/default.nix
+++ b/pkgs/development/libraries/mygui/default.nix
@@ -5,13 +5,13 @@ let
   renderSystem = if withOgre then "3" else "4";
 in stdenv.mkDerivation rec {
   pname = "mygui";
-  version = "3.2.2";
+  version = "3.4.0";
 
   src = fetchFromGitHub {
     owner = "MyGUI";
     repo = "mygui";
     rev = "MyGUI${version}";
-    sha256 = "1wk7jmwm55rhlqqcyvqsxdmwvl70bysl9azh4kd9n57qlmgk3zmw";
+    sha256 = "0a4zi8w18pjj813n7kmxldl1d9r1jp0iyhkw7pbqgl8f7qaq994w";
   };
 
   enableParallelBuilding = true;
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/nanopb/default.nix b/pkgs/development/libraries/nanopb/default.nix
new file mode 100644
index 00000000000..cafc5c85f21
--- /dev/null
+++ b/pkgs/development/libraries/nanopb/default.nix
@@ -0,0 +1,90 @@
+{ callPackage
+, cmake
+, fetchFromGitHub
+, lib
+, protobuf
+, python3
+, stdenv
+}:
+
+let
+  pythonRuntime = python3.withPackages(ps: [ ps.protobuf ]);
+in stdenv.mkDerivation rec {
+  pname = "nanopb";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "16zxk42wzn519bpxf4578qn97k0h1cnbkvqqkqvka9sl0n3lz2dp";
+  };
+
+  nativeBuildInputs = [ cmake python3 ];
+
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=ON" # generate $out/lib/libprotobuf-nanopb.so{.0,}
+    "-DBUILD_STATIC_LIBS=ON" # generate $out/lib/libprotobuf-nanopb.a
+    "-Dnanopb_PROTOC_PATH=${protobuf}/bin/protoc"
+  ];
+
+  # On a case-insensitive filesystem (such as on Darwin), CMake fails to create
+  # the build directory because of the existence of the BUILD file.
+  # TODO: This can be removed once https://github.com/nanopb/nanopb/pull/537 is merged.
+  preConfigure = "rm BUILD";
+
+  # install the generator which requires Python3 with the protobuf package. It
+  # also requires the nanopb module that's generated by CMake to be in a
+  # relative location to the generator itself so we move it out of the
+  # python.sitePackages into the shared generator folder.
+  postInstall = ''
+    mkdir -p $out/share/nanopb/generator/proto
+    cp ../generator/nanopb_generator.py $out/share/nanopb/generator/nanopb_generator.py
+    cp ../generator/proto/_utils.py $out/share/nanopb/generator/proto/_utils.py
+    cp ../generator/proto/nanopb.proto $out/share/nanopb/generator/proto/nanopb.proto
+    mv $out/${python3.sitePackages}/nanopb_pb2.py $out/share/nanopb/generator/proto
+    rm -rf $out/${python3.sitePackages}
+
+    mkdir $out/bin
+    substitute ${./protoc-gen-nanopb} $out/bin/protoc-gen-nanopb \
+      --subst-var-by python ${pythonRuntime}/bin/python \
+      --subst-var-by out $out
+    chmod +x $out/bin/protoc-gen-nanopb
+
+    cp ../pb_common.c ../pb_decode.c ../pb_encode.c $out/include/
+  '';
+
+  passthru.tests = {
+    simple-proto2 = callPackage ./test-simple-proto2 {};
+    simple-proto3 = callPackage ./test-simple-proto3 {};
+    message-with-annotations = callPackage ./test-message-with-annotations {};
+    message-with-options = callPackage ./test-message-with-options {};
+  };
+
+  meta = with lib; {
+    inherit (protobuf.meta) platforms;
+
+    description = "Protocol Buffers with small code size";
+    homepage = "https://jpa.kapsi.fi/nanopb/";
+    license = licenses.zlib;
+    maintainers = with maintainers; [ kalbasit ];
+
+    longDescription = ''
+      Nanopb is a small code-size Protocol Buffers implementation in ansi C. It
+      is especially suitable for use in microcontrollers, but fits any memory
+      restricted system.
+
+      - Homepage: jpa.kapsi.fi/nanopb
+      - Documentation: jpa.kapsi.fi/nanopb/docs
+      - Downloads: jpa.kapsi.fi/nanopb/download
+      - Forum: groups.google.com/forum/#!forum/nanopb
+
+      In order to use the nanopb options in your proto files, you'll need to
+      tell protoc where to find the nanopb.proto file.
+      You can do so with the --proto_path (-I) option to add the directory
+      ''${nanopb}/share/nanopb/generator/proto like so:
+
+      protoc --proto_path=. --proto_path=''${nanopb}/share/nanopb/generator/proto --plugin=protoc-gen-nanopb=''${nanopb}/bin/protoc-gen-nanopb --nanopb_out=out file.proto
+    '';
+  };
+}
diff --git a/pkgs/development/libraries/nanopb/protoc-gen-nanopb b/pkgs/development/libraries/nanopb/protoc-gen-nanopb
new file mode 100644
index 00000000000..764e6614b18
--- /dev/null
+++ b/pkgs/development/libraries/nanopb/protoc-gen-nanopb
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+
+exec @python@ @out@/share/nanopb/generator/nanopb_generator.py --protoc-plugin
diff --git a/pkgs/development/libraries/nanopb/test-message-with-annotations/default.nix b/pkgs/development/libraries/nanopb/test-message-with-annotations/default.nix
new file mode 100644
index 00000000000..618d7c521ce
--- /dev/null
+++ b/pkgs/development/libraries/nanopb/test-message-with-annotations/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, protobuf, nanopb }:
+
+stdenv.mkDerivation {
+  name = "nanopb-test-message-with-annotations";
+  meta.timeout = 60;
+  src = ./.;
+
+  # protoc requires any .proto file to be compiled to reside within it's
+  # proto_path. By default the current directory is automatically added to the
+  # proto_path. I tried using --proto_path ${./.} ${./simple.proto} and it did
+  # not work because they end up in the store at different locations.
+  installPhase = ":";
+  buildPhase = ''
+    mkdir $out
+
+    ${protobuf}/bin/protoc --proto_path=. --proto_path=${nanopb}/share/nanopb/generator/proto --plugin=protoc-gen-nanopb=${nanopb}/bin/protoc-gen-nanopb --nanopb_out=$out withannotations.proto
+  '';
+
+  docheck = true;
+  checkphase = ''
+    grep -q WithAnnotations $out/withannotations.pb.c || (echo "error: WithAnnotations not found in $out/withannotations.pb.c"; exit 1)
+    grep -q WithAnnotations $out/withannotations.pb.h || (echo "error: WithAnnotations not found in $out/withannotations.pb.h"; exit 1)
+    grep -q "pb_byte_t uuid\[16\]" $out/withannotations.pb.h || (echo "error: uuid is not of type pb_byte_t and of size 16 in $out/withannotations.pb.h"; exit 1)
+    grep -q "FIXED_LENGTH_BYTES, uuid" $out/withannotations.pb.h || (echo "error: uuid is not of fixed lenght bytes in $out/withannotations.pb.h"; exit 1)
+    grep -q "#define WithAnnotations_size" $out/withannotations.pb.h || (echo "error: the size of WithAnnotations is not known in $out/withannotations.pb.h"; exit 1)
+  '';
+}
diff --git a/pkgs/development/libraries/nanopb/test-message-with-annotations/withannotations.proto b/pkgs/development/libraries/nanopb/test-message-with-annotations/withannotations.proto
new file mode 100644
index 00000000000..d8109e877d6
--- /dev/null
+++ b/pkgs/development/libraries/nanopb/test-message-with-annotations/withannotations.proto
@@ -0,0 +1,7 @@
+syntax = "proto3";
+
+import "nanopb.proto";
+
+message WithAnnotations {
+  bytes uuid = 1 [(nanopb).max_size = 16, (nanopb).fixed_length = true];
+}
diff --git a/pkgs/development/libraries/nanopb/test-message-with-options/default.nix b/pkgs/development/libraries/nanopb/test-message-with-options/default.nix
new file mode 100644
index 00000000000..c15b51f7197
--- /dev/null
+++ b/pkgs/development/libraries/nanopb/test-message-with-options/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, protobuf, nanopb }:
+
+stdenv.mkDerivation {
+  name = "nanopb-test-message-with-options";
+  meta.timeout = 60;
+  src = ./.;
+
+  # protoc requires any .proto file to be compiled to reside within it's
+  # proto_path. By default the current directory is automatically added to the
+  # proto_path. I tried using --proto_path ${./.} ${./simple.proto} and it did
+  # not work because they end up in the store at different locations.
+  installPhase = ":";
+  buildPhase = ''
+    mkdir $out
+
+    ${protobuf}/bin/protoc --plugin=protoc-gen-nanopb=${nanopb}/bin/protoc-gen-nanopb --nanopb_out=$out withoptions.proto
+  '';
+
+  docheck = true;
+  checkphase = ''
+    grep -q WithOptions $out/withoptions.pb.c || (echo "error: WithOptions not found in $out/withoptions.pb.c"; exit 1)
+    grep -q WithOptions $out/withoptions.pb.h || (echo "error: WithOptions not found in $out/withoptions.pb.h"; exit 1)
+    grep -q "pb_byte_t uuid\[16\]" $out/withoptions.pb.h || (echo "error: uuid is not of type pb_byte_t and of size 16 in $out/withoptions.pb.h"; exit 1)
+    grep -q "FIXED_LENGTH_BYTES, uuid" $out/withoptions.pb.h || (echo "error: uuid is not of fixed lenght bytes in $out/withoptions.pb.h"; exit 1)
+    grep -q "#define WithOptions_size" $out/withoptions.pb.h || (echo "error: the size of WithOptions is not known in $out/withoptions.pb.h"; exit 1)
+  '';
+}
diff --git a/pkgs/development/libraries/nanopb/test-message-with-options/withoptions.options b/pkgs/development/libraries/nanopb/test-message-with-options/withoptions.options
new file mode 100644
index 00000000000..ecf98a21736
--- /dev/null
+++ b/pkgs/development/libraries/nanopb/test-message-with-options/withoptions.options
@@ -0,0 +1 @@
+ WithOptions.uuid max_size:16 fixed_length:true
diff --git a/pkgs/development/libraries/nanopb/test-message-with-options/withoptions.proto b/pkgs/development/libraries/nanopb/test-message-with-options/withoptions.proto
new file mode 100644
index 00000000000..5a5da3a1c97
--- /dev/null
+++ b/pkgs/development/libraries/nanopb/test-message-with-options/withoptions.proto
@@ -0,0 +1,5 @@
+syntax = "proto3";
+
+message WithOptions {
+  bytes uuid = 1;
+}
diff --git a/pkgs/development/libraries/nanopb/test-simple-proto2/default.nix b/pkgs/development/libraries/nanopb/test-simple-proto2/default.nix
new file mode 100644
index 00000000000..a915e778537
--- /dev/null
+++ b/pkgs/development/libraries/nanopb/test-simple-proto2/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, protobuf, nanopb }:
+
+stdenv.mkDerivation {
+  name = "nanopb-test-simple-proto2";
+  meta.timeout = 60;
+  src = ./.;
+
+  # protoc requires any .proto file to be compiled to reside within it's
+  # proto_path. By default the current directory is automatically added to the
+  # proto_path. I tried using --proto_path ${./.} ${./simple.proto} and it did
+  # not work because they end up in the store at different locations.
+  installPhase = ":";
+  buildPhase = ''
+    mkdir $out
+
+    ${protobuf}/bin/protoc --plugin=protoc-gen-nanopb=${nanopb}/bin/protoc-gen-nanopb --nanopb_out=$out simple.proto
+  '';
+
+  doCheck = true;
+  checkPhase = ''
+    grep -q SimpleMessage $out/simple.pb.c || (echo "ERROR: SimpleMessage not found in $out/simple.pb.c"; exit 1)
+    grep -q SimpleMessage $out/simple.pb.h || (echo "ERROR: SimpleMessage not found in $out/simple.pb.h"; exit 1)
+  '';
+}
diff --git a/pkgs/development/libraries/nanopb/test-simple-proto2/simple.proto b/pkgs/development/libraries/nanopb/test-simple-proto2/simple.proto
new file mode 100644
index 00000000000..b02936b1ae2
--- /dev/null
+++ b/pkgs/development/libraries/nanopb/test-simple-proto2/simple.proto
@@ -0,0 +1,5 @@
+syntax = "proto2";
+
+message SimpleMessage {
+  required int32 lucky_number = 1;
+}
diff --git a/pkgs/development/libraries/nanopb/test-simple-proto3/default.nix b/pkgs/development/libraries/nanopb/test-simple-proto3/default.nix
new file mode 100644
index 00000000000..3e2bba731b9
--- /dev/null
+++ b/pkgs/development/libraries/nanopb/test-simple-proto3/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, protobuf, nanopb }:
+
+stdenv.mkDerivation {
+  name = "nanopb-test-simple-proto3";
+  meta.timeout = 60;
+  src = ./.;
+
+  # protoc requires any .proto file to be compiled to reside within it's
+  # proto_path. By default the current directory is automatically added to the
+  # proto_path. I tried using --proto_path ${./.} ${./simple.proto} and it did
+  # not work because they end up in the store at different locations.
+  installPhase = ":";
+  buildPhase = ''
+    mkdir $out
+
+    ${protobuf}/bin/protoc --plugin=protoc-gen-nanopb=${nanopb}/bin/protoc-gen-nanopb --nanopb_out=$out simple.proto
+  '';
+
+  doCheck = true;
+  checkPhase = ''
+    grep -q SimpleMessage $out/simple.pb.c || (echo "ERROR: SimpleMessage not found in $out/simple.pb.c"; exit 1)
+    grep -q SimpleMessage $out/simple.pb.h || (echo "ERROR: SimpleMessage not found in $out/simple.pb.h"; exit 1)
+  '';
+}
diff --git a/pkgs/development/libraries/nanopb/test-simple-proto3/simple.proto b/pkgs/development/libraries/nanopb/test-simple-proto3/simple.proto
new file mode 100644
index 00000000000..6b99cdb5daa
--- /dev/null
+++ b/pkgs/development/libraries/nanopb/test-simple-proto3/simple.proto
@@ -0,0 +1,5 @@
+syntax = "proto3";
+
+message SimpleMessage {
+  int32 lucky_number = 1;
+}
diff --git a/pkgs/development/libraries/nco/default.nix b/pkgs/development/libraries/nco/default.nix
index 629c064404b..11fc8b0db70 100644
--- a/pkgs/development/libraries/nco/default.nix
+++ b/pkgs/development/libraries/nco/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchzip, netcdf, netcdfcxx4, gsl, udunits, antlr, which, curl, flex, coreutils }:
 
 stdenv.mkDerivation rec {
-  version = "4.9.2";
+  version = "4.9.3";
   pname = "nco";
 
   nativeBuildInputs = [ flex which ];
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url = "https://github.com/nco/nco/archive/${version}.tar.gz";
-    sha256 = "0nip9dmdx3d5nc30bz1d2w9his1dph136l53r160aa3bmb29xwqn";
+    sha256 = "0jpv2hw2as5wh06ac4hkhy7964w81pm7kp6nbwhmiyfzjzhwqhjy";
   };
 
   prePatch = ''
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..3294674e178 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;
diff --git a/pkgs/development/libraries/nspr/default.nix b/pkgs/development/libraries/nspr/default.nix
index 31a9f7f20d1..8a16803fd8b 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.27"; 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 = "16z82qc1l4cqn66p59ai0dy9ycllywn4jlxhip1a605bns952jbd";
   };
 
   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 d48b5a6ba73..a504aae6a98 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";
+  version = "3.55";
   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 = "0q8m9jf6zgkbhx71myjb7y0gcl5ib3gj6qkl9yvdqpd6vl6fn2ha";
+    sha256 = "0100hm7n1xrp144xy665z46s0wf1jpkqkncc6bk2w22snhyjwsgw";
   };
 
   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,50 +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
-    cpu = 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.optional (stdenv.hostPlatform != stdenv.buildPlatform) [
-    "OS_TEST=${cpu}"
-    "CPU_ARCH=${cpu}"
-    "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
 
@@ -133,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/nuspell/default.nix b/pkgs/development/libraries/nuspell/default.nix
index 57c47c79f84..7de16c7c119 100644
--- a/pkgs/development/libraries/nuspell/default.nix
+++ b/pkgs/development/libraries/nuspell/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nuspell";
-  version = "3.1.1";
+  version = "3.1.2";
 
   src = fetchFromGitHub {
     owner = "nuspell";
     repo = "nuspell";
     rev = "v${version}";
-    sha256 = "18zz3rdzlb3knzsd98vw8cfyb3iq0ilipnlz7rz10zgb5ail73s2";
+    sha256 = "0wbb6dwmzlsyy224y0liis0azgzwbjdvcyzc31pw1aw6vbp36na6";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ronn ];
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     description = "Free and open source C++ spell checking library";
     homepage = "https://nuspell.github.io/";
     maintainers = with maintainers; [ fpletz ];
+    license = licenses.gpl3;
   };
 }
diff --git a/pkgs/development/libraries/nv-codec-headers/default.nix b/pkgs/development/libraries/nv-codec-headers/default.nix
index f74030a02df..8d3c2179bff 100644
--- a/pkgs/development/libraries/nv-codec-headers/default.nix
+++ b/pkgs/development/libraries/nv-codec-headers/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "nv-codec-headers";
-  version = "9.0.18.1";
+  version = "9.1.23.1";
 
   src = fetchgit {
     url = "https://git.videolan.org/git/ffmpeg/nv-codec-headers.git";
     rev = "n${version}";
-    sha256 = "0354fivb92ix341jds7a7qn3mgwimrnxbganhlhr4vayj25c3hw5";
+    sha256 = "1xfvb3mhz6wfx9c732888xa82ivaig903lhvvrqqzs31qfznsplh";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/development/libraries/olm/default.nix b/pkgs/development/libraries/olm/default.nix
index c84e66608f2..66ed41e8ead 100644
--- a/pkgs/development/libraries/olm/default.nix
+++ b/pkgs/development/libraries/olm/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "olm";
-  version = "3.1.4";
+  version = "3.1.5";
 
   src = fetchurl {
     url = "https://matrix.org/git/olm/-/archive/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0f7azjxc77n4ib9nj3cwyk3vhk8r2dsyf7id6nvqyxqxwxn95a8w";
+    sha256 = "15l6cf029ghfk5bf8ii6nyy86gc90ji8n5hspjhj1xmzmk61xb4j";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Implements double cryptographic ratchet and Megolm ratchet";
     license = stdenv.lib.licenses.asl20;
-    homepage = "https://matrix.org/git/olm/about";
+    homepage = "https://gitlab.matrix.org/matrix-org/olm";
     platforms = with stdenv.lib.platforms; darwin ++ linux;
   };
 }
diff --git a/pkgs/development/libraries/oneDNN/default.nix b/pkgs/development/libraries/oneDNN/default.nix
index 7d9adca074c..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.4";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "oneapi-src";
     repo = "oneDNN";
     rev = "v${version}";
-    sha256 = "162fb0c7klahz2irchhyxympi4fq4yp284apc53cadbss41mzld9";
+    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 = [ "x86_64-linux" ];
+    platforms = platforms.all;
     maintainers = with maintainers; [ alexarice bhipple ];
   };
 }
diff --git a/pkgs/development/libraries/oniguruma/default.nix b/pkgs/development/libraries/oniguruma/default.nix
index ccbb1e3a665..54b725c9955 100644
--- a/pkgs/development/libraries/oniguruma/default.nix
+++ b/pkgs/development/libraries/oniguruma/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchFromGitHub, cmake }:
+{ stdenv, fetchFromGitHub, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "onig";
-  version = "6.9.4";
+  version = "6.9.5_rev1";
 
   src = fetchFromGitHub {
     owner = "kkos";
     repo = "oniguruma";
     rev = "v${version}";
-    sha256 = "11imbhj4p5w8lvrmcczccm1zq014h9j85r51z2ibb8jhf5p3lslh";
+    sha256 = "1sx683hbb58gbjvla69n5vxdzwqhjqisqbfkf9xi95wr7p9ycjhl";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ autoreconfHook ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/kkos/oniguruma";
diff --git a/pkgs/development/libraries/onnxruntime/default.nix b/pkgs/development/libraries/onnxruntime/default.nix
index 7d0a9342aa7..06d0d194cd5 100644
--- a/pkgs/development/libraries/onnxruntime/default.nix
+++ b/pkgs/development/libraries/onnxruntime/default.nix
@@ -4,17 +4,22 @@
 
 stdenv.mkDerivation rec {
   pname = "onnxruntime";
-  version = "1.2.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "onnxruntime";
     rev = "v${version}";
-    sha256 = "1alhb7nvlxrr9yf757gs4hkzksbk3mxyv5zcmmpl82ibl65vh55k";
+    sha256 = "0rbk1jbfc447x2wybz2hsba6w1ij0fq21996l52cqv39898lvy9d";
     # TODO: use nix-versions of grpc, onnx, eigen, googletest, etc.
     # submodules increase src size and compile times significantly
     # not currently feasible due to how integrated cmake build is with git
     fetchSubmodules = true;
+    # Remove unicode file names which leads to different checksums on HFS+
+    # vs. other filesystems because of unicode normalisation.
+    postFetch = ''
+      rm -rf $out/winml/test/collateral/models/UnicodePath/
+    '';
   };
 
   # TODO: build server, and move .so's to lib output
@@ -36,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-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/opencv/3.x.nix b/pkgs/development/libraries/opencv/3.x.nix
index 6f327ca396a..1597eb7913a 100644
--- a/pkgs/development/libraries/opencv/3.x.nix
+++ b/pkgs/development/libraries/opencv/3.x.nix
@@ -23,7 +23,7 @@
 , enableGtk2      ? false, gtk2
 , enableGtk3      ? false, gtk3
 , enableVtk       ? false, vtk
-, enableFfmpeg    ? false, ffmpeg
+, enableFfmpeg    ? false, ffmpeg_3
 , enableGStreamer ? false, gst_all_1
 , enableTesseract ? false, tesseract, leptonica
 , enableTbb       ? false, tbb
@@ -188,7 +188,7 @@ stdenv.mkDerivation {
     ++ lib.optional enableWebP libwebp
     ++ lib.optionals enableEXR [ openexr ilmbase ]
     ++ lib.optional enableJPEG2K jasper
-    ++ lib.optional enableFfmpeg ffmpeg
+    ++ lib.optional enableFfmpeg ffmpeg_3
     ++ lib.optionals (enableFfmpeg && stdenv.isDarwin)
                      [ VideoDecodeAcceleration bzip2 ]
     ++ lib.optionals enableGStreamer (with gst_all_1; [ gstreamer gst-plugins-base ])
diff --git a/pkgs/development/libraries/opencv/4.x.nix b/pkgs/development/libraries/opencv/4.x.nix
index 9dcb9956838..dd71b10728d 100644
--- a/pkgs/development/libraries/opencv/4.x.nix
+++ b/pkgs/development/libraries/opencv/4.x.nix
@@ -23,7 +23,7 @@
 , enableGtk2      ? false, gtk2
 , enableGtk3      ? false, gtk3
 , enableVtk       ? false, vtk
-, enableFfmpeg    ? false, ffmpeg
+, enableFfmpeg    ? false, ffmpeg_3
 , enableGStreamer ? false, gst_all_1
 , enableTesseract ? false, tesseract, leptonica
 , enableTbb       ? false, tbb
@@ -204,7 +204,7 @@ stdenv.mkDerivation {
     ++ lib.optional enableWebP libwebp
     ++ lib.optionals enableEXR [ openexr ilmbase ]
     ++ lib.optional enableJPEG2K jasper
-    ++ lib.optional enableFfmpeg ffmpeg
+    ++ lib.optional enableFfmpeg ffmpeg_3
     ++ lib.optionals (enableFfmpeg && stdenv.isDarwin)
                      [ VideoDecodeAcceleration bzip2 ]
     ++ lib.optionals enableGStreamer (with gst_all_1; [ gstreamer gst-plugins-base ])
diff --git a/pkgs/development/libraries/opencv/default.nix b/pkgs/development/libraries/opencv/default.nix
index f637e730179..06a3d5f194f 100644
--- a/pkgs/development/libraries/opencv/default.nix
+++ b/pkgs/development/libraries/opencv/default.nix
@@ -7,7 +7,7 @@
 , enableTIFF ? true, libtiff
 , enableEXR ? (!stdenv.isDarwin), openexr, ilmbase
 , enableJPEG2K ? false, jasper  # disable jasper by default (many CVE)
-, enableFfmpeg ? false, ffmpeg
+, enableFfmpeg ? false, ffmpeg_3
 , enableGStreamer ? false, gst_all_1
 , enableEigen ? true, eigen
 , Cocoa, QTKit
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional enableTIFF libtiff
     ++ lib.optionals enableEXR [ openexr ilmbase ]
     ++ lib.optional enableJPEG2K jasper
-    ++ lib.optional enableFfmpeg ffmpeg
+    ++ lib.optional enableFfmpeg ffmpeg_3
     ++ lib.optionals enableGStreamer (with gst_all_1; [ gstreamer gst-plugins-base ])
     ++ lib.optional enableEigen eigen
     ++ lib.optionals stdenv.isDarwin [ Cocoa QTKit ]
diff --git a/pkgs/development/libraries/opendht/default.nix b/pkgs/development/libraries/opendht/default.nix
index 82cfb5c3d06..f9b2e07fb42 100644
--- a/pkgs/development/libraries/opendht/default.nix
+++ b/pkgs/development/libraries/opendht/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opendht";
-  version = "2.0.0";
+  version = "2.1.4";
 
   src = fetchFromGitHub {
     owner = "savoirfairelinux";
     repo = "opendht";
     rev = version;
-    sha256 = "1q1fwk8wwk9r6bp0indpr60ql668lsk16ykslacyhrh7kg97kvhr";
+    sha256 = "1ax26ri1ifb6s8ppd28jmanka9yf8mw3np65q2h4djhhik0phhal";
   };
 
   nativeBuildInputs =
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 a8e65aebc45..f652c5ee7b7 100644
--- a/pkgs/development/libraries/openfst/default.nix
+++ b/pkgs/development/libraries/openfst/default.nix
@@ -1,14 +1,31 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "openfst";
-  version = "1.7.6";
+  version = "1.7.9";
 
   src = fetchurl {
     url = "http://www.openfst.org/twiki/pub/FST/FstDownload/${pname}-${version}.tar.gz";
-    sha256 = "03hs0196qbjfbviqn6nnb7igvv3cnpxyizlwlzmx88a6fhiq97bm";
+    sha256 = "1pmx1yhn2gknj0an0zwqmzgwjaycapi896244np50a8y3nrsw6ck";
   };
-  meta = {
+
+  configureFlags = [
+    "--enable-compact-fsts"
+    "--enable-compress"
+    "--enable-const-fsts"
+    "--enable-far"
+    "--enable-linear-fsts"
+    "--enable-lookahead-fsts"
+    "--enable-mpdt"
+    "--enable-ngram-fsts"
+    "--enable-pdt"
+  ];
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  meta = with stdenv.lib; {
     description = "Library for working with finite-state transducers";
     longDescription = ''
       Library for constructing, combining, optimizing, and searching weighted finite-state transducers (FSTs).
@@ -16,9 +33,8 @@ stdenv.mkDerivation rec {
       pattern matching, string processing, machine learning, information extraction and retrieval among others
     '';
     homepage = "http://www.openfst.org/twiki/bin/view/FST/WebHome";
-    license = stdenv.lib.licenses.asl20;
-    maintainers = [ stdenv.lib.maintainers.dfordivam ];
-    platforms = stdenv.lib.platforms.unix;
+    license = licenses.asl20;
+    maintainers = [ maintainers.dfordivam ];
+    platforms = platforms.unix;
   };
 }
-
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/openh264/default.nix b/pkgs/development/libraries/openh264/default.nix
index e038bb7f66d..ee430f800dd 100644
--- a/pkgs/development/libraries/openh264/default.nix
+++ b/pkgs/development/libraries/openh264/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openh264";
-  version = "2.1.0";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "cisco";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wba260n1932vafd5ni2jqv9kzc7lj6a1asm1cqk8jv690m6zvpi";
+    sha256 = "0ffav46pz3sbj92nipd62z03fibyqgclfq9w8lgr80s6za6zdk5s";
   };
 
   nativeBuildInputs = [ nasm ];
diff --git a/pkgs/development/libraries/openimagedenoise/default.nix b/pkgs/development/libraries/openimagedenoise/default.nix
index 5cecc33564e..2ac74c6c240 100644
--- a/pkgs/development/libraries/openimagedenoise/default.nix
+++ b/pkgs/development/libraries/openimagedenoise/default.nix
@@ -1,18 +1,16 @@
-{ stdenv, fetchFromGitHub, cmake, tbb, python }:
+{ stdenv, fetchzip, cmake, tbb, python, ispc }:
 
 stdenv.mkDerivation rec {
   pname = "openimagedenoise";
-  version = "1.1.0";
+  version = "1.2.2";
 
-  src = fetchFromGitHub {
-    owner = "OpenImageDenoise";
-    repo = "oidn";
-    rev = "v${version}";
-    sha256 = "032s7vablqnmrcc4xf2c94kwj0kbcd64bram10g0yc42fg0a3r9m";
-    fetchSubmodules = true;
+  # 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 = "0wyaarjxkzlvljmpnr7qm06ma2wl1aik3z664gwpzhizswygk6yp";
   };
 
-  nativeBuildInputs = [ cmake python ];
+  nativeBuildInputs = [ cmake python ispc ];
   buildInputs = [ tbb ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/openldap/default.nix b/pkgs/development/libraries/openldap/default.nix
index b5adc78c7ce..b60eb4fbaab 100644
--- a/pkgs/development/libraries/openldap/default.nix
+++ b/pkgs/development/libraries/openldap/default.nix
@@ -19,7 +19,12 @@ stdenv.mkDerivation rec {
 
   # Disable install stripping as it breaks cross-compiling.
   # We strip binaries anyway in fixupPhase.
-  makeFlags= [ "STRIP=" ];
+  makeFlags= [
+    "STRIP="
+    "prefix=$(out)"
+    "moduledir=$(out)/lib/modules"
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
 
   configureFlags = [
     "--enable-overlays"
@@ -35,9 +40,18 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional (cyrus_sasl == null) "--without-cyrus-sasl"
     ++ stdenv.lib.optional stdenv.isFreeBSD "--with-pic";
 
+  postBuild = ''
+    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
 
-  installFlags = [ "sysconfdir=$(out)/etc" "localstatedir=$(out)/var" ];
+  installFlags = [
+    "sysconfdir=$(out)/etc"
+    "localstatedir=$(out)/var"
+    "moduledir=$(out)/lib/modules"
+  ];
 
   # 1. Fixup broken libtool
   # 2. Libraries left in the build location confuse `patchelf --shrink-rpath`
@@ -51,9 +65,12 @@ stdenv.mkDerivation rec {
 
     rm -rf $out/var
     rm -r libraries/*/.libs
+    rm -r contrib/slapd-modules/passwd/*/.libs
   '';
 
   postInstall = ''
+    make $installFlags install -C contrib/slapd-modules/passwd/sha2
+    make $installFlags install -C contrib/slapd-modules/passwd/pbkdf2
     chmod +x "$out"/lib/*.{so,dylib}
   '';
 
diff --git a/pkgs/development/libraries/openmpi/default.nix b/pkgs/development/libraries/openmpi/default.nix
index 627ac68d68d..d6f23a9060f 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, pkgsTargetTarget, symlinkJoin
-, libpsm2, libfabric
+, rdma-core, zlib, numactl, libevent, hwloc, targetPackages, symlinkJoin
+, 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.3";
+  version = "4.0.4";
 
   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 = "00zxcw99gr5n693cmcmn4f6a47vx1ywna895p0x7p163v37gw0hl";
+    sha256 = "1i0slg2dxjdgw513aml1n9dsbdxn2fimi2b5712d5r9z4ar4xqj7";
   };
 
   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
@@ -75,16 +78,16 @@ in stdenv.mkDerivation rec {
     # default compilers should be indentical to the
     # compilers at build time
 
-    sed -i 's:compiler=.*:compiler=${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}cc:' \
+    sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' \
       $out/share/openmpi/mpicc-wrapper-data.txt
 
-    sed -i 's:compiler=.*:compiler=${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}cc:' \
+    sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' \
        $out/share/openmpi/ortecc-wrapper-data.txt
 
-    sed -i 's:compiler=.*:compiler=${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}c++:' \
+    sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}c++:' \
        $out/share/openmpi/mpic++-wrapper-data.txt
 
-    sed -i 's:compiler=.*:compiler=${pkgsTargetTarget.gfortran}/bin/${pkgsTargetTarget.gfortran.targetPrefix}gfortran:'  \
+    sed -i 's:compiler=.*:compiler=${gfortran}/bin/${gfortran.targetPrefix}gfortran:'  \
        $out/share/openmpi/mpifort-wrapper-data.txt
   '';
 
diff --git a/pkgs/development/libraries/openscenegraph/default.nix b/pkgs/development/libraries/openscenegraph/default.nix
index a209c950d48..a8617185216 100644
--- a/pkgs/development/libraries/openscenegraph/default.nix
+++ b/pkgs/development/libraries/openscenegraph/default.nix
@@ -11,7 +11,7 @@
   curlSupport ? true, curl,
   colladaSupport ? false, opencollada,
   opencascadeSupport ? false, opencascade,
-  ffmpegSupport ? false, ffmpeg,
+  ffmpegSupport ? false, ffmpeg_3,
   nvttSupport ? false, nvidia-texture-tools,
   freetypeSupport ? true, freetype,
   svgSupport ? false, librsvg,
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional curlSupport curl
     ++ lib.optional colladaSupport opencollada
     ++ lib.optional opencascadeSupport opencascade
-    ++ lib.optional ffmpegSupport ffmpeg
+    ++ lib.optional ffmpegSupport ffmpeg_3
     ++ lib.optional nvttSupport nvidia-texture-tools
     ++ lib.optional freetypeSupport freetype
     ++ lib.optional svgSupport librsvg
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/openvdb/default.nix b/pkgs/development/libraries/openvdb/default.nix
index 840da046170..38e50fb367e 100644
--- a/pkgs/development/libraries/openvdb/default.nix
+++ b/pkgs/development/libraries/openvdb/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec
 {
   pname = "openvdb";
-  version = "6.2.1";
+  version = "7.0.0";
 
   src = fetchFromGitHub {
     owner = "dreamworksanimation";
     repo = "openvdb";
     rev = "v${version}";
-    sha256 = "1ypkzdkgsbcczfvrqblnxfzm13w0mdkskgqmgvmbfi66vpaazdrf";
+    sha256 = "0hhs50f05hkgj1wni53cwbsx2bhn1aam6z65j133356gbid2carl";
   };
 
   outputs = [ "out" ];
diff --git a/pkgs/development/libraries/openwsman/default.nix b/pkgs/development/libraries/openwsman/default.nix
index 17df9eee84e..a16b8356e61 100644
--- a/pkgs/development/libraries/openwsman/default.nix
+++ b/pkgs/development/libraries/openwsman/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openwsman";
-  version = "2.6.11";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner  = "Openwsman";
     repo   = "openwsman";
     rev    = "v${version}";
-    sha256 = "0s8xdxrxnh1l0v41n5cw89b89rrlqlxn1yj14sw224230y8m70ka";
+    sha256 = "19dj38jyzhhhvk863cikcwk5awzlq3337pxmsaqqm4wrcygrkfmx";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/development/libraries/openxr-loader/default.nix b/pkgs/development/libraries/openxr-loader/default.nix
index 6ecdb30c1f2..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.8";
+  version = "1.0.11";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenXR-SDK-Source";
     rev = "release-${version}";
-    sha256 = "0p5i4360hc5y8rqhgpvg1f1yaxl7kay471868vfzkp44g8dybkvm";
+    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/packr/default.nix b/pkgs/development/libraries/packr/default.nix
index 6a53743a10e..017cb25a9d1 100644
--- a/pkgs/development/libraries/packr/default.nix
+++ b/pkgs/development/libraries/packr/default.nix
@@ -18,7 +18,9 @@ let p2 = buildGoModule rec {
 
   subPackages = [ "packr2" ];
 
-  modSha256 = "1xxqyn78074jna0iri7sks6b2l4sdnn5sg57n09vrrf6kh39h2y9";
+  vendorSha256 = "12yq121b0bn8z12091fyqhhz421kgx4z1nskrkvbxlhyc47bwyrp";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "The simple and easy way to embed static files into Go binaries";
@@ -40,7 +42,9 @@ p1 = buildGoModule rec {
 
   subPackages = [ "packr" ];
 
-  modSha256 = "045qfdi82yhpghjd0cimxhas4nkj7g30n9qyvkrl9ck01sahx76f";
+  vendorSha256 = "0m3yj8ww4a16j56p8d8w0sdnyx0g2bkd8zg0l4d8vb72mvg5asga";
+
+  doCheck = false;
 
   meta = with lib; {
     description = "The simple and easy way to embed static files into Go binaries";
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/pangolin/default.nix b/pkgs/development/libraries/pangolin/default.nix
index e9f55dd6145..3af1833fe49 100644
--- a/pkgs/development/libraries/pangolin/default.nix
+++ b/pkgs/development/libraries/pangolin/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, cmake, pkgconfig, doxygen, libGL, glew
-, xorg , ffmpeg, python3 , libjpeg, libpng, libtiff, eigen
+, xorg , ffmpeg_3, python3 , libjpeg, libpng, libtiff, eigen
 , Carbon ? null, Cocoa ? null
 }:
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
     libGL 
     glew 
     xorg.libX11 
-    ffmpeg 
+    ffmpeg_3 
     python3 
     libjpeg 
     libpng 
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 81da7332d0f..506c78aca8a 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.10.1";
+  name = "pcl-1.11.0";
 
   src = fetchFromGitHub {
     owner = "PointCloudLibrary";
     repo = "pcl";
     rev = name;
-    sha256 = "1i4zfcikvdl5z1s3lh0n46fgi42s9vbki4hfmy7656hamajfai0v";
+    sha256 = "0nr3j71gh1v8x6wjr7a7xyr0438sw7vf621a5kbw4lmsxbj55k8g";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/pcre2/default.nix b/pkgs/development/libraries/pcre2/default.nix
index 6c5d526d523..d39b91355b9 100644
--- a/pkgs/development/libraries/pcre2/default.nix
+++ b/pkgs/development/libraries/pcre2/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "pcre2";
-  version = "10.34";
+  version = "10.35";
   src = fetchurl {
     url = "https://ftp.pcre.org/pub/pcre/${pname}-${version}.tar.bz2";
-    sha256 = "1jlqnzcz2yi70dm40wyfa9w8is9z2kh4dl8zjnv3vqd9mgzp7i3l";
+    sha256 = "04s6kmk9qdd4rjz477h547j4bx7hfz0yalpvrm381rqc5ghaijww";
   };
 
   configureFlags = [
diff --git a/pkgs/development/libraries/pdal/default.nix b/pkgs/development/libraries/pdal/default.nix
new file mode 100644
index 00000000000..2059b4db7fb
--- /dev/null
+++ b/pkgs/development/libraries/pdal/default.nix
@@ -0,0 +1,98 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, pkg-config
+# , openscenegraph
+, curl
+, gdal
+, hdf5-cpp
+, LASzip
+, libe57format
+, libgeotiff
+, libxml2
+, postgresql
+, tiledb
+, xercesc
+, zlib
+, zstd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pdal";
+  version = "2.1.0";
+
+  src = fetchFromGitHub {
+    owner = "PDAL";
+    repo = "PDAL";
+    rev = version;
+    sha256 = "0zb3zjqgmjjryb648c1hmwh1nfa7893bjzbqpmr6shjxvzgnj9p6";
+  };
+
+  patches = [
+    # Fix duplicate paths like
+    #     /nix/store/7iafqfmjdlxqim922618wg87cclrpznr-PDAL-2.1.0//nix/store/7iafqfmjdlxqim922618wg87cclrpznr-PDAL-2.1.0/lib
+    # similar to https://github.com/NixOS/nixpkgs/pull/82654.
+    # TODO Remove on release > 2.1.0
+    (fetchpatch {
+      name = "pdal-Fixup-install-config.patch";
+      url = "https://github.com/PDAL/PDAL/commit/2f887ef624db50c6e20f091f34bb5d3e65b5c5c8.patch";
+      sha256 = "0pdw9v5ypq7w9i7qzgal110hjb9nqi386jvy3x2h4vf1dyalzid8";
+    })
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    # openscenegraph
+    curl
+    gdal
+    hdf5-cpp
+    LASzip
+    libe57format
+    libgeotiff
+    libxml2
+    postgresql
+    tiledb
+    xercesc
+    zlib
+    zstd
+  ];
+
+  cmakeFlags = [
+    "-DBUILD_PLUGIN_E57=ON"
+    "-DBUILD_PLUGIN_HDF=ON"
+    "-DBUILD_PLUGIN_PGPOINTCLOUD=ON"
+    "-DBUILD_PLUGIN_TILEDB=ON"
+
+    # Plugins that can probably be made working relatively easily:
+    # As of writing, seems to be incompatible (build error):
+    #     error: no matching function for call to 'osg::TriangleFunctor<pdal::CollectTriangles>::operator()(const Vec3&, const Vec3&, const Vec3&)'
+    "-DBUILD_PLUGIN_OPENSCENEGRAPH=OFF" # requires OpenGL
+
+    # Plugins can probably not be made work easily:
+    "-DBUILD_PLUGIN_CPD=OFF"
+    "-DBUILD_PLUGIN_FBX=OFF" # Autodesk FBX SDK is gratis+proprietary; not packaged in nixpkgs
+    "-DBUILD_PLUGIN_GEOWAVE=OFF"
+    "-DBUILD_PLUGIN_I3S=OFF"
+    "-DBUILD_PLUGIN_ICEBRIDGE=OFF"
+    "-DBUILD_PLUGIN_MATLAB=OFF"
+    "-DBUILD_PLUGIN_MBIO=OFF"
+    "-DBUILD_PLUGIN_MRSID=OFF"
+    "-DBUILD_PLUGIN_NITF=OFF"
+    "-DBUILD_PLUGIN_OCI=OFF"
+    "-DBUILD_PLUGIN_RDBLIB=OFF" # Riegl rdblib is proprietary; not packaged in nixpkgs
+    "-DBUILD_PLUGIN_RIVLIB=OFF"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "PDAL is Point Data Abstraction Library. GDAL for point cloud data.";
+    homepage = "https://pdal.io";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ nh2 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/pdf2xml/default.nix b/pkgs/development/libraries/pdf2xml/default.nix
index 08d57cda6c1..855df954eb1 100644
--- a/pkgs/development/libraries/pdf2xml/default.nix
+++ b/pkgs/development/libraries/pdf2xml/default.nix
@@ -32,7 +32,9 @@ stdenv.mkDerivation {
     cp exe/* $out/bin
   '';
 
-  meta = {
-    platforms = stdenv.lib.platforms.unix;
+  meta = with stdenv.lib; {
+    description = "PDF to XML converter";
+    platforms = platforms.unix;
+    license = licenses.gpl2;
   };
 }
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/cernlib/default.nix b/pkgs/development/libraries/physics/cernlib/default.nix
index c6a9835d13b..8c4d688b697 100644
--- a/pkgs/development/libraries/physics/cernlib/default.nix
+++ b/pkgs/development/libraries/physics/cernlib/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ gnumake imake makedepend ];
   sourceRoot = ".";
 
-  patches = [ ./patch ];
+  patches = [ ./patch.patch ];
 
   postPatch = ''
     substituteInPlace 2006/src/config/site.def \
diff --git a/pkgs/development/libraries/physics/cernlib/patch b/pkgs/development/libraries/physics/cernlib/patch.patch
index 2d75b6bf0f8..2d75b6bf0f8 100644
--- a/pkgs/development/libraries/physics/cernlib/patch
+++ b/pkgs/development/libraries/physics/cernlib/patch.patch
diff --git a/pkgs/development/libraries/physics/fastjet/default.nix b/pkgs/development/libraries/physics/fastjet/default.nix
index 3dfbaa96d31..b854fa88cd6 100644
--- a/pkgs/development/libraries/physics/fastjet/default.nix
+++ b/pkgs/development/libraries/physics/fastjet/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fastjet";
-  version = "3.3.3";
+  version = "3.3.4";
 
   src = fetchurl {
     url = "http://fastjet.fr/repo/fastjet-${version}.tar.gz";
-    sha256 = "0avkgn19plq593p872hirr0yj2vgjvsi88w68ngarbp55hla1c1h";
+    sha256 = "00zwvmnp2j79z95n9lgnq67q02bqfgirqla8j9y6jd8k3r052as3";
   };
 
   buildInputs = [ python2 ];
diff --git a/pkgs/development/libraries/physics/geant4/datasets.nix b/pkgs/development/libraries/physics/geant4/datasets.nix
index df44fa275f5..85ad11b79b1 100644
--- a/pkgs/development/libraries/physics/geant4/datasets.nix
+++ b/pkgs/development/libraries/physics/geant4/datasets.nix
@@ -109,4 +109,11 @@ in
       sha256 = "0l3gs0nlp10cjlwiln3f72zfch0av2g1r8m2ny9afgvwgbwiyj4h";
       envvar = "REALSURFACE";
     }
+
+    {
+      name = "G4TENDL";
+      version = "1.3.2";
+      sha256 = "0jdqmz3rz5a7yrq1mli6dj3bnmn73igf4fdxwfbl3rxywg38fa9v";
+      envvar = "PARTICLEHP";
+    }
   ])
diff --git a/pkgs/development/libraries/physics/geant4/default.nix b/pkgs/development/libraries/physics/geant4/default.nix
index 8c7ff230e01..97822d769dd 100644
--- a/pkgs/development/libraries/physics/geant4/default.nix
+++ b/pkgs/development/libraries/physics/geant4/default.nix
@@ -5,6 +5,7 @@
 , enableQT             ? false
 , enableXM             ? false
 , enableOpenGLX11      ? true
+, enablePython         ? false
 , enableRaytracerX11   ? false
 
 # Standard build environment with cmake.
@@ -33,17 +34,35 @@
 , libGLU, libGL
 , xlibsWrapper
 , libXmu
+
+# For enablePython
+, boost
+, python3
 }:
 
+let
+  boost_python = boost.override { enablePython = true; python = python3; };
+in
+
 stdenv.mkDerivation rec {
-  version = "10.6.1";
+  version = "10.6.2";
   pname = "geant4";
 
   src = fetchurl{
-    url = "https://geant4-data.web.cern.ch/geant4-data/releases/geant4.10.06.p01.tar.gz";
-    sha256 = "0ssxg7dd7vxljb3fdyb0llg7gsxack21qjfsb3n23k107a19yibk";
+    url = "https://geant4-data.web.cern.ch/geant4-data/releases/geant4.10.06.p02.tar.gz";
+    sha256 = "0vznm3pjlbihjy1wsxc4gj229k0dzc283wvil2xghyl08vwdpnpc";
   };
 
+  boost_python_lib = "python${builtins.replaceStrings ["."] [""] python3.pythonVersion}";
+  postPatch = ''
+    # Fix for boost 1.67+
+    substituteInPlace environments/g4py/CMakeLists.txt \
+      --replace "find_package(Boost REQUIRED python)" \
+                "find_package(Boost REQUIRED COMPONENTS $boost_python_lib)"
+    substituteInPlace environments/g4py/G4PythonHelpers.cmake \
+      --replace "Boost::python" "Boost::$boost_python_lib"
+  '';
+
   cmakeFlags = [
     "-DGEANT4_INSTALL_DATA=OFF"
     "-DGEANT4_USE_GDML=${if enableGDML then "ON" else "OFF"}"
@@ -52,11 +71,14 @@ stdenv.mkDerivation rec {
     "-DGEANT4_USE_XM=${if enableXM then "ON" else "OFF"}"
     "-DGEANT4_USE_OPENGL_X11=${if enableOpenGLX11 then "ON" else "OFF"}"
     "-DGEANT4_USE_INVENTOR=${if enableInventor then "ON" else "OFF"}"
+    "-DGEANT4_USE_PYTHON=${if enablePython then "ON" else "OFF"}"
     "-DGEANT4_USE_RAYTRACER_X11=${if enableRaytracerX11 then "ON" else "OFF"}"
     "-DGEANT4_USE_SYSTEM_CLHEP=${if clhep != null then "ON" else "OFF"}"
     "-DGEANT4_USE_SYSTEM_EXPAT=${if expat != null then "ON" else "OFF"}"
     "-DGEANT4_USE_SYSTEM_ZLIB=${if zlib != null then "ON" else "OFF"}"
     "-DGEANT4_BUILD_MULTITHREADED=${if enableMultiThreading then "ON" else "OFF"}"
+  ] ++ stdenv.lib.optionals (enableMultiThreading && enablePython) [
+    "-DGEANT4_BUILD_TLS_MODEL=global-dynamic"
   ] ++ stdenv.lib.optionals enableInventor [
     "-DINVENTOR_INCLUDE_DIR=${coin3d}/include"
     "-DINVENTOR_LIBRARY_RELEASE=${coin3d}/lib/libCoin.so"
@@ -66,7 +88,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs =  [ cmake ];
 
   buildInputs = [ libGLU xlibsWrapper libXmu ]
-    ++ stdenv.lib.optionals enableInventor [ libXpm coin3d soxt motif ];
+    ++ stdenv.lib.optionals enableInventor [ libXpm coin3d soxt motif ]
+    ++ stdenv.lib.optionals enablePython [ boost_python python3 ];
 
   propagatedBuildInputs = [ clhep expat zlib libGL ]
     ++ stdenv.lib.optionals enableGDML [ xercesc ]
diff --git a/pkgs/development/libraries/physics/geant4/g4py/default.nix b/pkgs/development/libraries/physics/geant4/g4py/default.nix
deleted file mode 100644
index 4937cc0eca9..00000000000
--- a/pkgs/development/libraries/physics/geant4/g4py/default.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ stdenv, cmake, xercesc
-
-# The target version of Geant4
-, geant4
-
-# Python (obviously) and boost::python for wrapping.
-, python
-, boost
-}:
-
-let
-  # g4py does not support MT and will fail to build against MT geant
-  geant4_nomt = geant4.override { enableMultiThreading = false; };
-  boost_python = boost.override { enablePython = true; inherit python; };
-in
-
-stdenv.mkDerivation {
-  inherit (geant4_nomt) version src;
-  pname = "g4py";
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ geant4_nomt xercesc boost_python python ];
-
-  GEANT4_INSTALL = geant4_nomt;
-
-  postPatch = ''
-    cd environments/g4py
-  '';
-
-  preConfigure = ''
-    # Fix for boost 1.67+
-    substituteInPlace CMakeLists.txt \
-    --replace "find_package(Boost)" "find_package(Boost 1.40 REQUIRED COMPONENTS python${builtins.replaceStrings ["."] [""] python.pythonVersion})"
-    for f in `find . -name CMakeLists.txt`; do
-      substituteInPlace "$f" \
-        --replace "boost_python" "\''${Boost_LIBRARIES}"
-    done
-  '';
-
-  enableParallelBuilding = true;
-
-  setupHook = ./setup-hook.sh;
-
-  # Make sure we set PYTHONPATH
-  shellHook = ''
-    source $out/nix-support/setup-hook
-  '';
-
-  meta = {
-    description = "Python bindings and utilities for Geant4";
-    longDescription = ''
-      Geant4 is a toolkit for the simulation of the passage of particles
-      through matter.  Its areas of application include high energy,
-      nuclear and accelerator physics, as well as studies in medical and
-      space science.  The two main reference papers for Geant4 are
-      published in Nuclear Instruments and Methods in Physics Research A
-      506 (2003) 250-303, and IEEE Transactions on Nuclear Science 53 No. 1
-      (2006) 270-278.
-    '';
-    homepage = "http://www.geant4.org";
-    license = stdenv.lib.licenses.g4sl;
-    maintainers = [ ];
-    platforms = stdenv.lib.platforms.all;
-  };
-}
diff --git a/pkgs/development/libraries/physics/geant4/g4py/setup-hook.sh b/pkgs/development/libraries/physics/geant4/g4py/setup-hook.sh
deleted file mode 100644
index 8abfb461fc0..00000000000
--- a/pkgs/development/libraries/physics/geant4/g4py/setup-hook.sh
+++ /dev/null
@@ -1 +0,0 @@
-export PYTHONPATH=$PYTHONPATH:@out@/lib
diff --git a/pkgs/development/libraries/physics/hepmc2/default.nix b/pkgs/development/libraries/physics/hepmc2/default.nix
index 41908e0383b..b27d947ea5c 100644
--- a/pkgs/development/libraries/physics/hepmc2/default.nix
+++ b/pkgs/development/libraries/physics/hepmc2/default.nix
@@ -2,28 +2,25 @@
 
 stdenv.mkDerivation rec {
   pname = "hepmc";
-  version = "2.06.10";
+  version = "2.06.11";
 
   src = fetchurl {
     url = "http://hepmc.web.cern.ch/hepmc/releases/HepMC-${version}.tar.gz";
-    sha256 = "190i9jlnwz1xpc495y0xc70s4zdqb9s2zdq1zkjy2ivl7ygdvpjs";
+    sha256 = "1pp89bs05nv60wjk1690ndwh4dsd5mk20bzsd4a2lklysdifvb6f";
   };
 
-  patches = [ ./in_source.patch ];
-  buildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   cmakeFlags = [
     "-Dmomentum:STRING=GEV"
     "-Dlength:STRING=MM"
   ];
 
-  enableParallelBuilding = true;
-
-  meta = {
+  meta = with stdenv.lib; {
     description = "The HepMC package is an object oriented event record written in C++ for High Energy Physics Monte Carlo Generators";
-    license     = stdenv.lib.licenses.gpl2;
+    license     = licenses.lgpl21;
     homepage    = "http://hepmc.web.cern.ch/hepmc/";
-    platforms   = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ veprbl ];
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/libraries/physics/hepmc2/in_source.patch b/pkgs/development/libraries/physics/hepmc2/in_source.patch
deleted file mode 100644
index 836a5655869..00000000000
--- a/pkgs/development/libraries/physics/hepmc2/in_source.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -37,21 +37,6 @@ message(STATUS "default momentum and length are ${HEPMC_DEFAULT_MOM_UNIT} ${HEPM
- # find the HepMC cmake modules
- set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules ${CMAKE_MODULE_PATH})
- 
--# make sure we are not building from within the source code directory
--string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" in_source)
--string( REGEX MATCH "${CMAKE_SOURCE_DIR}/" in_source_subdir
--"${CMAKE_BINARY_DIR}")
--if (in_source OR in_source_subdir)
--  message(FATAL_ERROR "
--ERROR: In source builds of this project are not allowed.
--A separate build directory is required.
--Please create one and run cmake from the build directory.
--Also note that cmake has just added files to your source code directory.
--We suggest getting a new copy of the source code.
--Otherwise, delete `CMakeCache.txt' and the directory `CMakeFiles'.
--  ")
--endif ()
--
- # build_docs is OFF (false) by default
- if ( build_docs )
-    message(STATUS "documents WILL be built and installed" )
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/physics/mcgrid/default.nix b/pkgs/development/libraries/physics/mcgrid/default.nix
deleted file mode 100644
index 27d8197a436..00000000000
--- a/pkgs/development/libraries/physics/mcgrid/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, fetchurl, fastnlo, rivet, pkgconfig }:
-
-stdenv.mkDerivation rec {
-  pname = "mcgrid";
-  version = "2.0.2";
-
-  src = fetchurl {
-    url = "https://www.hepforge.org/archive/mcgrid/${pname}-${version}.tar.gz";
-    sha256 = "1mw82x7zqbdchnd6shj3dirsav5i2cndp2hjwb8a8xdh4xh9zvfy";
-  };
-
-  buildInputs = [ fastnlo rivet ];
-  propagatedNativeBuildInputs = [ pkgconfig ];
-
-  preConfigure = ''
-    substituteInPlace mcgrid.pc.in \
-      --replace "Cflags:" "Cflags: -std=c++11"
-  '';
-
-  CXXFLAGS = "-std=c++11";
-  enableParallelBuilding = true;
-
-  meta = {
-    description = "A software package that provides access to the APPLgrid and fastNLO interpolation tools for Monte Carlo event generator codes, allowing for fast and flexible variations of scales, coupling parameters and PDFs in cutting edge leading- and next-to-leading-order QCD calculations";
-    license     = stdenv.lib.licenses.gpl3;
-    homepage    = "http://mcgrid.hepforge.org";
-    platforms   = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ veprbl ];
-  };
-}
diff --git a/pkgs/development/libraries/physics/rivet/default.nix b/pkgs/development/libraries/physics/rivet/default.nix
index 9870fadf6ef..abf37def8c3 100644
--- a/pkgs/development/libraries/physics/rivet/default.nix
+++ b/pkgs/development/libraries/physics/rivet/default.nix
@@ -1,20 +1,16 @@
-{ stdenv, fetchurl, fetchpatch, fastjet, ghostscript, gsl, hepmc2, imagemagick, less, python2, texlive, yoda, which, makeWrapper }:
+{ stdenv, fetchurl, fastjet, fastjet-contrib, ghostscript, gsl, hepmc, imagemagick, less, python3, rsync, texlive, yoda, which, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "rivet";
-  version = "2.7.2";
+  version = "3.1.2";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/rivet/Rivet-${version}.tar.bz2";
-    sha256 = "1bxcb99a3l5d2gl93zgfzgw6v95kx1ss5045mkz3ciyw8w5nmb9l";
+    sha256 = "0yjpx7n6ry3pfgkf7d7v7mcc3yv7681kf8nq2b1fgspl8jbd0hf0";
   };
 
   patches = [
     ./darwin.patch # configure relies on impure sw_vers to -Dunix
-    (fetchpatch {
-      url = "https://gitlab.com/hepcedar/rivet/commit/37bd34f52cce66946ebb311a8fe61bfc5f69cc00.diff";
-      sha256 = "0wj3ilpfq2gpc33bj3800l9vyvc9lrrlj1x9ss5qki0yiqd8i2aa";
-    })
   ];
 
   latex = texlive.combine { inherit (texlive)
@@ -32,26 +28,27 @@ stdenv.mkDerivation rec {
     xkeyval
     xstring
     ;};
-  buildInputs = [ hepmc2 imagemagick python2 latex makeWrapper ];
-  propagatedBuildInputs = [ fastjet ghostscript gsl yoda ];
+
+  nativeBuildInputs = [ rsync makeWrapper ];
+  buildInputs = [ hepmc imagemagick python3 latex python3.pkgs.yoda ];
+  propagatedBuildInputs = [ fastjet fastjet-contrib ];
 
   preConfigure = ''
-    substituteInPlace analyses/Makefile.in \
-      --replace "!(tmp)" ""
-    substituteInPlace bin/rivet-buildplugin.in \
+    substituteInPlace bin/rivet-build.in \
+      --replace 'num_jobs=$(getconf _NPROCESSORS_ONLN)' 'num_jobs=''${NIX_BUILD_CORES:-$(getconf _NPROCESSORS_ONLN)}' \
       --replace 'which' '"${which}/bin/which"' \
       --replace 'mycxx=' 'mycxx=${stdenv.cc}/bin/${if stdenv.cc.isClang or false then "clang++" else "g++"}  #' \
-      --replace 'mycxxflags="' "mycxxflags=\"-std=c++11 $NIX_CFLAGS_COMPILE $NIX_CXXSTDLIB_COMPILE $NIX_CFLAGS_LINK "
+      --replace 'mycxxflags="' "mycxxflags=\"$NIX_CFLAGS_COMPILE $NIX_CXXSTDLIB_COMPILE $NIX_CFLAGS_LINK "
   '';
 
   preInstall = ''
     substituteInPlace bin/make-plots \
       --replace '"which"' '"${which}/bin/which"' \
-      --replace '"latex"' '"${latex}/bin/latex"' \
-      --replace '"dvips"' '"${latex}/bin/dvips"' \
+      --replace '"latex"' '"'$latex'/bin/latex"' \
+      --replace '"dvips"' '"'$latex'/bin/dvips"' \
       --replace '"ps2pdf"' '"${ghostscript}/bin/ps2pdf"' \
       --replace '"ps2eps"' '"${ghostscript}/bin/ps2eps"' \
-      --replace '"kpsewhich"' '"${latex}/bin/kpsewhich"' \
+      --replace '"kpsewhich"' '"'$latex'/bin/kpsewhich"' \
       --replace '"convert"' '"${imagemagick.out}/bin/convert"'
     substituteInPlace bin/rivet \
       --replace '"less"' '"${less}/bin/less"'
@@ -62,9 +59,12 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-fastjet=${fastjet}"
-    "--with-hepmc=${hepmc2}"
     "--with-yoda=${yoda}"
-  ];
+  ] ++ (if stdenv.lib.versions.major hepmc.version == "3" then [
+    "--with-hepmc3=${hepmc}"
+  ] else [
+    "--with-hepmc=${hepmc}"
+  ]);
 
   enableParallelBuilding = true;
 
@@ -74,11 +74,11 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A framework for comparison of experimental measurements from high-energy particle colliders to theory predictions";
-    license     = stdenv.lib.licenses.gpl2;
+    license     = licenses.gpl3;
     homepage    = "https://rivet.hepforge.org";
-    platforms   = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ veprbl ];
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/libraries/physics/yoda/default.nix b/pkgs/development/libraries/physics/yoda/default.nix
index ad7bc7f52f5..1a8d5a6fd39 100644
--- a/pkgs/development/libraries/physics/yoda/default.nix
+++ b/pkgs/development/libraries/physics/yoda/default.nix
@@ -1,22 +1,14 @@
-{ stdenv, fetchurl, fetchpatch, python, root, makeWrapper, zlib, withRootSupport ? false }:
+{ stdenv, fetchurl, python, root, makeWrapper, zlib, withRootSupport ? false }:
 
 stdenv.mkDerivation rec {
   pname = "yoda";
-  version = "1.7.7";
+  version = "1.8.3";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/yoda/YODA-${version}.tar.bz2";
-    sha256 = "1ki88rscnym0vjxpfgql8m1lrc7vm1jb9w4jhw9lvv3rk84lpdng";
+    sha256 = "12msmjiajvy2xj2m64n2fxblai5xg06a829wi7scsc7nw2jhxpfr";
   };
 
-  patches = [
-    # fixes "TypeError: expected bytes, str found" in writeYODA()
-    (fetchpatch {
-      url = "https://gitlab.com/hepcedar/yoda/commit/d2bbbe92912457f8a29b440cbfa0b39daf28ec34.diff";
-      sha256 = "1x60piswpxwak61r2sdclsc8pzi1fshpkjnxlyflsa1iap77vkq8";
-    })
-  ];
-
   nativeBuildInputs = with python.pkgs; [ cython makeWrapper ];
   buildInputs = [ python ]
     ++ (with python.pkgs; [ numpy matplotlib ])
@@ -27,6 +19,7 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     touch pyext/yoda/*.{pyx,pxd}
+    patchShebangs .
   '';
 
   postInstall = ''
@@ -37,6 +30,9 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
+  doInstallCheck = true;
+  installCheckTarget = "check";
+
   meta = {
     description = "Provides small set of data analysis (specifically histogramming) classes";
     license     = stdenv.lib.licenses.gpl3;
diff --git a/pkgs/development/libraries/pipewire/2.nix b/pkgs/development/libraries/pipewire/0.2.nix
index e9656ee23ec..1dbfe0647f4 100644
--- a/pkgs/development/libraries/pipewire/2.nix
+++ b/pkgs/development/libraries/pipewire/0.2.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, meson, ninja, pkgconfig, doxygen, graphviz, valgrind
-, glib, dbus, gst_all_1, alsaLib, ffmpeg, libjack2, udev, libva, xorg
+, glib, dbus, gst_all_1, alsaLib, ffmpeg_3, libjack2, udev, libva, xorg
 , sbc, SDL2, makeFontsConf
 }:
 
@@ -25,7 +25,7 @@ in stdenv.mkDerivation rec {
   ];
   buildInputs = [
     glib dbus gst_all_1.gst-plugins-base gst_all_1.gstreamer
-    alsaLib ffmpeg libjack2 udev libva xorg.libX11 sbc SDL2
+    alsaLib ffmpeg_3 libjack2 udev libva xorg.libX11 sbc SDL2
   ];
 
   mesonFlags = [
diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix
index d873555c0fa..cb5073f50c1 100644
--- a/pkgs/development/libraries/pipewire/default.nix
+++ b/pkgs/development/libraries/pipewire/default.nix
@@ -11,7 +11,7 @@
 , dbus
 , gst_all_1
 , alsaLib
-, ffmpeg
+, ffmpeg_3
 , libjack2
 , udev
 , libva
@@ -33,7 +33,7 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "pipewire";
-  version = "0.3.2";
+  version = "0.3.7";
 
   outputs = [ "out" "lib" "dev" "doc" ];
 
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     owner = "pipewire";
     repo = "pipewire";
     rev = version;
-    sha256 = "U7lqvn2vMIxARNplzNX9H3Ztlfv1IH8LozJsq7JSEKs=";
+    sha256 = "04l66p0wj553gp2zf3vwwh6jbr1vkf6wrq4za9zlm9dn144am4j2";
   };
 
   nativeBuildInputs = [
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
     alsaLib
     bluez
     dbus
-    ffmpeg
+    ffmpeg_3
     glib
     gst_all_1.gst-plugins-base
     gst_all_1.gstreamer
@@ -73,13 +73,6 @@ stdenv.mkDerivation rec {
     vulkan-loader
     xorg.libX11
   ];
-  patches = [
-      # fix SIGILL in fmt-ops: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/227
-      (fetchpatch {
-        url = "https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/1b3aaba206f48e75bb34ff0cd00321bd3d6db2b4.patch";
-        sha256 = "08bmr9k2r0q4r7vhhm28k558nk3mz3jfnqswvq9mcj7p0srmfb4x";
-      })
-  ];
 
   mesonFlags = [
     "-Ddocs=true"
diff --git a/pkgs/development/libraries/pkger/default.nix b/pkgs/development/libraries/pkger/default.nix
new file mode 100644
index 00000000000..564efa31b60
--- /dev/null
+++ b/pkgs/development/libraries/pkger/default.nix
@@ -0,0 +1,29 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+, stdenv
+}:
+
+buildGoModule rec {
+  pname = "pkger";
+  version = "0.17.0";
+
+  src = fetchFromGitHub {
+    owner = "markbates";
+    repo = "pkger";
+    rev = "v${version}";
+    sha256 = "195ba1avkpm9ssgakngv8j72k7yq2xna3xmm5m8l6c5g7lf91kkp";
+  };
+
+  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";
+    changelog = "https://github.com/markbates/pkger/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ flokli ];
+  };
+}
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/poco/default.nix b/pkgs/development/libraries/poco/default.nix
index 72f2952914a..b2a4fb1b0c3 100644
--- a/pkgs/development/libraries/poco/default.nix
+++ b/pkgs/development/libraries/poco/default.nix
@@ -3,11 +3,11 @@
 stdenv.mkDerivation rec {
   pname = "poco";
 
-  version = "1.9.4";
+  version = "1.10.1";
 
   src = fetchurl {
     url = "https://pocoproject.org/releases/${pname}-${version}/${pname}-${version}-all.tar.gz";
-    sha256 = "0xzxi3r4v2076kcxhj7b1achma2lqy01spshxq8sfh0jn5bz4d7b";
+    sha256 = "1jilzh0h6ik5lr167nax7q6nrpzxl99p11pkl202ig06pgh32nbz";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index 93b49524dc1..cd39e61a0cb 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.88.0"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too!
+  version = "0.90.1"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too!
 
   src = fetchurl {
     url = "${meta.homepage}/poppler-${version}.tar.xz";
-    sha256 = "1isns9s484irq9ir4hbhpyqf6af2xzswh2pfrvk1k9d5x423hidl";
+    sha256 = "mE2C5y6RQY0oCIUpjIvchVov2SZl/VKhNFsnI14MccQ=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/precice/0001-Fix-the-install-target-dirs-to-use-the-CMAKE-flags.patch b/pkgs/development/libraries/precice/0001-Fix-the-install-target-dirs-to-use-the-CMAKE-flags.patch
deleted file mode 100644
index 52a4d0b5ccc..00000000000
--- a/pkgs/development/libraries/precice/0001-Fix-the-install-target-dirs-to-use-the-CMAKE-flags.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 078cc28a3ece0dcc4033961090a6e5d6e63b3ec5 Mon Sep 17 00:00:00 2001
-From: Scriptkiddi <fritz@otlinghaus.it>
-Date: Sat, 4 Jan 2020 17:59:32 +0100
-Subject: [PATCH] Fix the install target dirs to use the CMAKE flags
-
----
- CMakeLists.txt | 27 ++++++++++++++-------------
- 1 file changed, 14 insertions(+), 13 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 96b9d1b5..ff8191ae 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -5,7 +5,7 @@ project(preCICE VERSION 1.6.1 LANGUAGES CXX)
- 
- #
- # Overview of this configuration
--# 
-+#
- # PREAMBLE
- # Setup Options
- # Find Mandatory Dependencies
-@@ -30,6 +30,7 @@ include(CheckCXX11Library)
- include(CopyTargetProperty)
- include(XSDKMacros)
- include(Validation)
-+include(GNUInstallDirs)
- 
- # CMake Policies
- 
-@@ -197,7 +198,7 @@ if(CMAKE_VERSION VERSION_LESS "3.11")
-   endif()
- endif()
- 
--# Add precice as an empty target 
-+# Add precice as an empty target
- add_library(precice ${preCICE_DUMMY})
- set_target_properties(precice PROPERTIES
-   # precice is a C++11 project
-@@ -267,7 +268,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/cmake/DetectGitRevision.cmake)
- configure_file("${PROJECT_SOURCE_DIR}/src/precice/impl/versions.hpp.in" "${PROJECT_BINARY_DIR}/src/precice/impl/versions.hpp" @ONLY)
- 
- # Includes Configuration
--target_include_directories(precice PUBLIC 
-+target_include_directories(precice PUBLIC
-   $<BUILD_INTERFACE:${preCICE_SOURCE_DIR}/src>
-   $<BUILD_INTERFACE:${preCICE_BINARY_DIR}/src>
-   $<INSTALL_INTERFACE:include>
-@@ -282,7 +283,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/src/sources.cmake)
- #
- 
- add_executable(binprecice "src/drivers/main.cpp")
--target_link_libraries(binprecice 
-+target_link_libraries(binprecice
-   PRIVATE
-   Threads::Threads
-   precice
-@@ -365,18 +366,18 @@ include(${CMAKE_CURRENT_LIST_DIR}/src/tests.cmake)
- # binprecice - the precice binary
- install(TARGETS precice binprecice
-   EXPORT preciceTargets
--  LIBRARY DESTINATION lib
--  ARCHIVE DESTINATION lib
--  RUNTIME DESTINATION bin
--  PUBLIC_HEADER DESTINATION include/precice
--  INCLUDES DESTINATION include/precice
-+  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/static
-+  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-+  PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/precice
-+  INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/precice
-   )
- 
- if(PRECICE_InstallTest)
-   # Install the testprecice target
-   install(TARGETS testprecice
-     EXPORT preciceTargets
--    RUNTIME DESTINATION bin
-+    RUNTIME DESTINATION  ${CMAKE_INSTALL_BINDIR}
-     )
- 
-   # Install the resources necessary for the tests
-@@ -396,7 +397,7 @@ endif()
- install(EXPORT preciceTargets
-   FILE preciceTargets.cmake
-   NAMESPACE precice::
--  DESTINATION lib/cmake/precice
-+  DESTINATION  ${CMAKE_INSTALL_LIBDIR}/cmake/precice
-   )
- 
- # Generate a Package Config File for precice
-@@ -408,7 +409,7 @@ write_basic_package_version_file("preciceConfigVersion.cmake"
- 
- # Install the Config and the ConfigVersion files
- install(FILES "cmake/preciceConfig.cmake" "${preCICE_BINARY_DIR}/preciceConfigVersion.cmake"
--  DESTINATION lib/cmake/precice
-+  DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/precice
-   )
- 
- # Setup the config in the build directory
-@@ -477,7 +478,7 @@ configure_file(
-   "lib/pkgconfig/libprecice.pc"
-   @ONLY
-   )
--install(DIRECTORY "${preCICE_BINARY_DIR}/lib/pkgconfig" 
-+install(DIRECTORY "${preCICE_BINARY_DIR}/lib/pkgconfig"
-   DESTINATION lib
- )
- 
--- 
-2.23.1
-
diff --git a/pkgs/development/libraries/precice/default.nix b/pkgs/development/libraries/precice/default.nix
index a22df8c18e0..22726858a22 100644
--- a/pkgs/development/libraries/precice/default.nix
+++ b/pkgs/development/libraries/precice/default.nix
@@ -1,36 +1,28 @@
-{ lib, stdenv, fetchFromGitHub, cmake, gcc, boost, eigen, libxml2, openmpi, python3, python3Packages }:
+{ lib, stdenv, fetchFromGitHub, cmake, gcc, boost, eigen, libxml2, openmpi, python3, python3Packages, petsc }:
 
 stdenv.mkDerivation rec {
   pname = "precice";
-  version = "2020-01-20";
+  version = "2.0.2";
   # Todo next release switch back to versioning but for python3 support master is needed
 
   src = fetchFromGitHub {
     owner = "precice";
     repo = pname;
-    rev = "9f778290416416255fc73a495e962def301648b0";
-    sha256 = "1ij43qjbf1aq3lh91gqpviajc8lyl7qkxfccmj5md5vwf88vjaip";
+    rev = "v${version}";
+    sha256 = "1s41wv2077d2gqj0wsxls6wkgdk9cgzcbmk2q43ha08ccq5i3dav";
   };
 
   cmakeFlags = [
+    "-DPRECICE_PETScMapping=OFF"
     "-DBUILD_SHARED_LIBS=ON"
-    "-DPETSC=off"
     "-DPYTHON_LIBRARIES=${python3.libPrefix}"
     "-DPYTHON_INCLUDE_DIR=${python3}/include/${python3.libPrefix}m"
   ];
 
   nativeBuildInputs = [ cmake gcc ];
   buildInputs = [ boost eigen libxml2 openmpi python3 python3Packages.numpy ];
-  patches = [
-    ./0001-Fix-the-install-target-dirs-to-use-the-CMAKE-flags.patch # CMake Packaging is not perfect upstream, after this PR it is https://github.com/precice/precice/pull/577/files
-  ];
   enableParallelBuilding = true;
 
-  postInstall = ''
-      substituteInPlace "$out"/lib/cmake/precice/preciceTargets.cmake \
-      --replace 'INTERFACE_INCLUDE_DIRECTORIES "''${_IMPORT_PREFIX}/include;' 'INTERFACE_INCLUDE_DIRECTORIES "'$out/include';'
-  ''; # Check if this can be removed after upstream PR 577
-
   meta = {
     description = "preCICE stands for Precise Code Interaction Coupling Environment";
     license = with lib.licenses; [ gpl3 ];
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
new file mode 100644
index 00000000000..6ea64a02380
--- /dev/null
+++ b/pkgs/development/libraries/protobuf/3.12.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... }:
+
+callPackage ./generic-v3.nix {
+  version = "3.12.4";
+  sha256 = "1gzvnd0g5hmx5ln39w7p4z4qphw87ksgsa1fgbpvi8d0asmwab2p";
+}
diff --git a/pkgs/development/libraries/protobufc/1.3.nix b/pkgs/development/libraries/protobufc/1.3.nix
index 304f9d61f39..82126727282 100644
--- a/pkgs/development/libraries/protobufc/1.3.nix
+++ b/pkgs/development/libraries/protobufc/1.3.nix
@@ -1,12 +1,11 @@
 { callPackage, fetchFromGitHub, ... } @ args:
 
-callPackage ./generic.nix (args // {
-  version = "1.3.1";
+callPackage ./generic.nix (args // rec {
+  version = "1.3.3";
   src = fetchFromGitHub {
     owner = "protobuf-c";
     repo = "protobuf-c";
-    #rev = "v${version}";
-    rev = "9412830d0680150d429d2aa170b8d7218ab49397";
-    sha256 = "175cmaj5231iqzhf5a9sxw2y3i165chk3681m1b5mp8di927q5ai";
+    rev = "v${version}";
+    sha256 = "13948amsjj9xpa4yl6amlyk3ksr96bbd4ngshh2yzflwcslhg6gv";
   };
 })
diff --git a/pkgs/development/libraries/protolock/default.nix b/pkgs/development/libraries/protolock/default.nix
index f1eb3ae51f3..b923898cc99 100644
--- a/pkgs/development/libraries/protolock/default.nix
+++ b/pkgs/development/libraries/protolock/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "0qg26vcqdhgy91p6wiv16dq73ay0fymran3d8ylca9264zwi2vxw";
   };
 
-  modSha256 = "1q755ipqsfpr41s5fxzmx50lwcdqc5a7akwx6mzn789w2z07x8lg";
+  vendorSha256 = "0ap1iwcapvvvmwgdc4zbsp8mglrhbswkdgm4dw8baw8qk0nlci6y";
+
+  doCheck = false;
 
   postInstall = ''
     rm $out/bin/plugin*
diff --git a/pkgs/development/libraries/protozero/default.nix b/pkgs/development/libraries/protozero/default.nix
index 0bbfab62fcd..1c8e7e99313 100644
--- a/pkgs/development/libraries/protozero/default.nix
+++ b/pkgs/development/libraries/protozero/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "protozero";
-  version = "1.6.8";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "mapbox";
     repo = "protozero";
     rev = "v${version}";
-    sha256 = "1hfijpfylf1c71wa3mk70gjc88b6k1q7cxb87cwqdflw5q2x8ma6";
+    sha256 = "0fdihfl5j68wayjjxvpvhvnjq1anzcfnfl09f68wpzbkg3zmhblz";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/qgnomeplatform/default.nix b/pkgs/development/libraries/qgnomeplatform/default.nix
index 434b3ab84f9..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
@@ -14,13 +15,13 @@
 
 mkDerivation rec {
   pname = "qgnomeplatform";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "FedoraQt";
     repo = "QGnomePlatform";
     rev = version;
-    sha256 = "0fb1mzs6sx76bl7f0z2xhc0jq6y1c55jrw1v3na8577is6g5ji0a";
+    sha256 = "1mwqg2zk0sfjq54vz2jjahbgi5sxw8rb71h6mgg459wp99mhlqi0";
   };
 
   patches = [
@@ -52,7 +53,7 @@ mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/development/libraries/qscintilla/default.nix b/pkgs/development/libraries/qscintilla/default.nix
index 323eff6486d..abaeba51b45 100644
--- a/pkgs/development/libraries/qscintilla/default.nix
+++ b/pkgs/development/libraries/qscintilla/default.nix
@@ -5,12 +5,6 @@
 }:
 
 let
-  # Fix Xcode 8 compilation problem
-  xcodePatch = fetchurl {
-    url = "https://raw.githubusercontent.com/Homebrew/formula-patches/a651d71/qscintilla2/xcode-8.patch";
-    sha256 = "1a88309fdfd421f4458550b710a562c622d72d6e6fdd697107e4a43161d69bc9";
-  };
-
   pname = "qscintilla-qt${if withQt5 then "5" else "4"}";
   version = "2.11.2";
 
@@ -32,8 +26,7 @@ in stdenv.mkDerivation rec {
     ++ (if withQt5 then [ qmake ] else [ qmake4Hook ])
     ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
 
-  patches = (lib.optional (stdenv.isDarwin && withQt5) xcodePatch) ++
-            (lib.optional (!withQt5) ./fix-qt4-build.patch );
+  patches = lib.optional (!withQt5) ./fix-qt4-build.patch;
 
   # Make sure that libqscintilla2.so is available in $out/lib since it is expected
   # by some packages such as sqlitebrowser
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..8512806e455 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,9 @@
 , 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)
+, buildMultimedia ? false # ancient gstreamer is broken
+, alsaLib, gstreamer, gst-plugins-base
+, buildWebkit ? false
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , flashplayerFix ? false, gdk-pixbuf
 , gtkStyle ? stdenv.hostPlatform == stdenv.buildPlatform, gtk2
diff --git a/pkgs/development/libraries/qt-5/5.12/default.nix b/pkgs/development/libraries/qt-5/5.12/default.nix
index 78d711e969b..e89c0a8b403 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";
     };
   };
 
@@ -67,6 +67,11 @@ let
         ./qtbase.patch.d/0010-qtbase-qtpluginpath.patch
         ./qtbase.patch.d/0011-qtbase-assert.patch
         ./qtbase.patch.d/0012-fix-header_module.patch
+
+        # Ensure -I${includedir} is added to Cflags in pkg-config files.
+        # See https://github.com/NixOS/nixpkgs/issues/52457
+        ./qtbase.patch.d/0014-qtbase-pkg-config.patch
+
         # https://bugreports.qt.io/browse/QTBUG-81715
         # remove after updating to qt > 5.12.7
         (fetchpatch {
@@ -92,8 +97,10 @@ 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;
+    ] ++ optionals stdenv.isDarwin [
+      ./qtwebengine-darwin-no-platform-check.patch
+      ./qtwebengine-darwin-fix-failed-static-assertion.patch
+    ];
     qtwebkit = [ ./qtwebkit.patch ]
       ++ optionals stdenv.isDarwin [
         ./qtwebkit-darwin-no-readline.patch
@@ -139,6 +146,7 @@ let
       qtconnectivity = callPackage ../modules/qtconnectivity.nix {};
       qtdeclarative = callPackage ../modules/qtdeclarative.nix {};
       qtdoc = callPackage ../modules/qtdoc.nix {};
+      qtgamepad = callPackage ../modules/qtgamepad.nix {};
       qtgraphicaleffects = callPackage ../modules/qtgraphicaleffects.nix {};
       qtimageformats = callPackage ../modules/qtimageformats.nix {};
       qtlocation = callPackage ../modules/qtlocation.nix {};
@@ -152,6 +160,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 {};
@@ -171,7 +180,7 @@ let
 
       env = callPackage ../qt-env.nix {};
       full = env "qt-full-${qtbase.version}" ([
-        qtcharts qtconnectivity qtdeclarative qtdoc qtgraphicaleffects
+        qtcharts qtconnectivity qtdeclarative qtdoc qtgamepad qtgraphicaleffects
         qtimageformats qtlocation qtmultimedia qtquickcontrols qtquickcontrols2
         qtscript qtsensors qtserialport qtsvg qttools qttranslations
         qtvirtualkeyboard qtwebchannel qtwebengine qtwebkit qtwebsockets
diff --git a/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0014-qtbase-pkg-config.patch b/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0014-qtbase-pkg-config.patch
new file mode 100644
index 00000000000..90caaea1cf4
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0014-qtbase-pkg-config.patch
@@ -0,0 +1,14 @@
+diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
+--- a/qmake/generators/makefile.cpp
++++ b/qmake/generators/makefile.cpp
+@@ -3390,8 +3390,7 @@ MakefileGenerator::writePkgConfigFile()
+       << varGlue("QMAKE_PKGCONFIG_CFLAGS", "", " ", " ")
+         //      << varGlue("DEFINES","-D"," -D"," ")
+          ;
+-    if (!project->values("QMAKE_DEFAULT_INCDIRS").contains(includeDir))
+-        t << "-I${includedir}";
++    t << "-I${includedir}";
+     if (target_mode == TARG_MAC_MODE && project->isActiveConfig("lib_bundle")
+         && libDir != QLatin1String("/Library/Frameworks")) {
+             t << " -F${libdir}";
+
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..1a90c610a5b
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/default.nix
@@ -0,0 +1,176 @@
+/*
+
+# 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 = [ ./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/modules/qtgamepad.nix b/pkgs/development/libraries/qt-5/modules/qtgamepad.nix
new file mode 100644
index 00000000000..281f6e0b8ec
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/modules/qtgamepad.nix
@@ -0,0 +1,9 @@
+{ qtModule, qtbase, qtdeclarative, pkgconfig }:
+
+qtModule {
+  name = "qtgamepad";
+  qtInputs = [ qtbase qtdeclarative ];
+  buildInputs = [ ];
+  nativeBuildInputs = [ pkgconfig ];
+  outputs = [ "out" "dev" "bin" ];
+}
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 df444eee2eb..c0db5915b94 100644
--- a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
@@ -13,8 +13,8 @@
 , systemd
 , enableProprietaryCodecs ? true
 , gn
-, cups, darwin, openbsm, runCommand, xcbuild
-, ffmpeg ? null
+, cups, darwin, openbsm, runCommand, xcbuild, writeScriptBin
+, ffmpeg_3 ? null
 , lib, stdenv
 }:
 
@@ -51,6 +51,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 \
@@ -69,32 +76,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 +101,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
@@ -152,7 +142,7 @@ EOF
 
     libevent
   ] ++ optionals (stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) [
-    ffmpeg
+    ffmpeg_3
   ] ++ optionals (!stdenv.isDarwin) [
     dbus zlib minizip snappy nss protobuf jsoncpp
 
@@ -189,6 +179,7 @@ EOF
     CoreWLAN
     Quartz
     Cocoa
+    LocalAuthentication
 
     openbsm
     libunwind
@@ -197,6 +188,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/qtstyleplugin-kvantum-qt4/default.nix b/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix
index 7c2a99804c4..2120c693857 100644
--- a/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix
+++ b/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qtstyleplugin-kvantum-qt4";
-  version = "0.11.2";
+  version = "0.15.3";
 
   src = fetchFromGitHub {
     owner = "tsujan";
     repo = "Kvantum";
     rev = "V${version}";
-    sha256 = "1jcfv96ws6sm3kc2q8zriwqhry24qbq3zbp8gkqw75wssbv82rmc";
+    sha256 = "0jq3y63c36nr2rprg7im9ik112p5zvhj46vzgxfbnpvskmg0cchm";
   };
 
   nativeBuildInputs = [ qmake4Hook ];
diff --git a/pkgs/development/libraries/qtutilities/default.nix b/pkgs/development/libraries/qtutilities/default.nix
index 66a7b95e334..388665f5aab 100644
--- a/pkgs/development/libraries/qtutilities/default.nix
+++ b/pkgs/development/libraries/qtutilities/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qtutilities";
-  version = "6.0.5";
+  version = "6.0.6";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1f2nir1qb0d6r1ndpsg7vpskdw08szq82mqvbwm5bi160xkrqhjf";
+    sha256 = "0g3f18530w5f8dlzrh45k868hspga5p3m8qpz7pcg3nsdjda8cwz";
   };
 
   buildInputs = [ qtbase cpp-utilities ];
diff --git a/pkgs/development/libraries/quazip/default.nix b/pkgs/development/libraries/quazip/default.nix
index 13e3f15c842..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.8.1";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "stachenov";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1g473gnsbkvxpsv8lbsmhspn7jnq86b05zzgqh11r581v8ndvz5s";
+    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/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/rapidcheck/default.nix b/pkgs/development/libraries/rapidcheck/default.nix
index 92c42d19af6..bf96e8e76b8 100644
--- a/pkgs/development/libraries/rapidcheck/default.nix
+++ b/pkgs/development/libraries/rapidcheck/default.nix
@@ -1,6 +1,6 @@
 { stdenv, cmake, fetchFromGitHub }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   pname = "rapidcheck";
   version = "unstable-2018-09-27";
 
diff --git a/pkgs/development/libraries/rdkafka/default.nix b/pkgs/development/libraries/rdkafka/default.nix
index d8f20d74a0d..7539d45627f 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.0";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "edenhill";
     repo = "librdkafka";
     rev = "v${version}";
-    sha256 = "0axrzjmih1njjpxpwfb6pwjwkjy1b6s5s1sjf165m2cmd6x3vbap";
+    sha256 = "05mgrdzacn9kdpr68r5j0cvsvl54s52glnsc1ww9rcxx6p7hq1ly";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/readline/6.3.nix b/pkgs/development/libraries/readline/6.3.nix
index 3f3503bb2ba..2b0cf978d43 100644
--- a/pkgs/development/libraries/readline/6.3.nix
+++ b/pkgs/development/libraries/readline/6.3.nix
@@ -32,10 +32,6 @@ stdenv.mkDerivation {
      in
        import ./readline-6.3-patches.nix patch);
 
-  # Don't run the native `strip' when cross-compiling.
-  dontStrip = stdenv.hostPlatform != stdenv.buildPlatform;
-  bash_cv_func_sigsetjmp = if stdenv.isCygwin then "missing" else null;
-
   meta = with stdenv.lib; {
     description = "Library for interactive line editing";
 
diff --git a/pkgs/development/libraries/readline/7.0.nix b/pkgs/development/libraries/readline/7.0.nix
index c4bcda0110a..248ef55cce8 100644
--- a/pkgs/development/libraries/readline/7.0.nix
+++ b/pkgs/development/libraries/readline/7.0.nix
@@ -32,10 +32,6 @@ stdenv.mkDerivation rec {
     ]
     ++ upstreamPatches;
 
-  # Don't run the native `strip' when cross-compiling.
-  dontStrip = stdenv.hostPlatform != stdenv.buildPlatform;
-  bash_cv_func_sigsetjmp = if stdenv.isCygwin then "missing" else null;
-
   meta = with stdenv.lib; {
     description = "Library for interactive line editing";
 
diff --git a/pkgs/development/libraries/readline/8.0.nix b/pkgs/development/libraries/readline/8.0.nix
index 23075abd6f2..6e1182647c2 100644
--- a/pkgs/development/libraries/readline/8.0.nix
+++ b/pkgs/development/libraries/readline/8.0.nix
@@ -32,10 +32,6 @@ stdenv.mkDerivation rec {
     ]
     ++ upstreamPatches;
 
-  # Don't run the native `strip' when cross-compiling.
-  dontStrip = stdenv.hostPlatform != stdenv.buildPlatform;
-  bash_cv_func_sigsetjmp = if stdenv.isCygwin then "missing" else null;
-
   meta = with stdenv.lib; {
     description = "Library for interactive line editing";
 
diff --git a/pkgs/development/libraries/redkite/default.nix b/pkgs/development/libraries/redkite/default.nix
new file mode 100644
index 00000000000..63e5eea25a4
--- /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.1";
+
+  src = fetchFromGitLab {
+    owner = "iurie-sw";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1qd4r7ps0fg2m1vx3j48chfdh2c5909j4f9wip4af59inrid4w6a";
+  };
+
+  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/robin-map/default.nix b/pkgs/development/libraries/robin-map/default.nix
index 10b7510468e..9c0774f925b 100644
--- a/pkgs/development/libraries/robin-map/default.nix
+++ b/pkgs/development/libraries/robin-map/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "robin-map";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "Tessil";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0y532zg0aaqz3fpv785n2drwpnryaclr53drpqimnbf3cs0jw997";
+    sha256 = "1li70vwsksva9c4yly90hjafgqfixi1g6d52qq9p6r60vqc4pkjj";
   };
 
   nativeBuildInputs = [ cmake ];
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/rubberband/default.nix b/pkgs/development/libraries/rubberband/default.nix
index 13dcd57e2da..54bb57e2e66 100644
--- a/pkgs/development/libraries/rubberband/default.nix
+++ b/pkgs/development/libraries/rubberband/default.nix
@@ -1,20 +1,30 @@
-{ stdenv, fetchurl, pkgconfig, libsamplerate, libsndfile, fftw
+{ stdenv, fetchurl, fetchpatch,  pkgconfig, libsamplerate, libsndfile, fftw
 , vamp-plugin-sdk, ladspaH }:
 
-stdenv.mkDerivation {
-  name = "rubberband-1.8.1";
+stdenv.mkDerivation rec {
+  pname = "rubberband";
+  version = "1.8.2";
 
   src = fetchurl {
-    url = "http://code.breakfastquay.com/attachments/download/23/rubberband-1.8.1.tar.bz2";
-    sha256 = "0x9bm2nqd6w2f35w2sqcp7h5z34i4w7mdg53m0vzjhffnnq6637z";
+    url = "https://breakfastquay.com/files/releases/${pname}-${version}.tar.bz2";
+    sha256 = "1jn3ys16g4rz8j3yyj5np589lly0zhs3dr9asd0l9dhmf5mx1gl6";
   };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libsamplerate libsndfile fftw vamp-plugin-sdk ladspaH ];
 
+  # https://github.com/breakfastquay/rubberband/issues/17
+  # In master, but there hasn't been an official release
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/breakfastquay/rubberband/commit/419a9bcf7066473b0d31e9a8a81fe0b2a8e41fed.patch";
+      sha256 = "0drkfb2ahi31g4w1cawgsjjz26wszgg52yn3ih5l2ql1g25dqqn9";
+    })
+  ];
+
   meta = with stdenv.lib; {
     description = "High quality software library for audio time-stretching and pitch-shifting";
-    homepage = "https://www.breakfastquay.com/rubberband/index.html";
+    homepage = "https://breakfastquay.com/rubberband/";
     # commercial license available as well, see homepage. You'll get some more optimized routines
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.goibhniu maintainers.marcweber ];
diff --git a/pkgs/development/libraries/science/biology/bpp-core/default.nix b/pkgs/development/libraries/science/biology/bpp-core/default.nix
new file mode 100644
index 00000000000..cfbe19d724b
--- /dev/null
+++ b/pkgs/development/libraries/science/biology/bpp-core/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "bpp-core";
+  version = "2.4.1";
+
+  src = fetchFromGitHub { owner = "BioPP";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0ma2cl677l7s0n5sffh66cy9lxp5wycm50f121g8rx85p95vkgwv";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  preCheck = ''
+    export LD_LIBRARY_PATH=$(pwd)/src
+  '';
+
+  postFixup = ''
+    substituteInPlace $out/lib/cmake/bpp-core/bpp-core-targets.cmake  \
+      --replace 'set(_IMPORT_PREFIX' '#set(_IMPORT_PREFIX'
+  '';
+  # prevents cmake from exporting incorrect INTERFACE_INCLUDE_DIRECTORIES
+  # of form /nix/store/.../nix/store/.../include,
+  # probably due to relative vs absolute path issue
+
+  doCheck = !stdenv.isDarwin;
+
+  meta = with stdenv.lib; {
+    homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Main_Page";
+    changelog = "https://github.com/BioPP/bpp-core/blob/master/ChangeLog";
+    description = "C++ bioinformatics libraries and tools";
+    maintainers = with maintainers; [ bcdarwin ];
+    license = licenses.cecill20;
+  };
+}
diff --git a/pkgs/development/libraries/science/biology/bpp-phyl/default.nix b/pkgs/development/libraries/science/biology/bpp-phyl/default.nix
new file mode 100644
index 00000000000..8ff6ad433fb
--- /dev/null
+++ b/pkgs/development/libraries/science/biology/bpp-phyl/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, cmake, bpp-core, bpp-seq }:
+
+stdenv.mkDerivation rec {
+  pname = "bpp-phyl";
+
+  inherit (bpp-core) version;
+
+  src = fetchFromGitHub {
+    owner = "BioPP";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "192zks6wyk903n06c2lbsscdhkjnfwms8p7jblsmk3lvjhdipb20";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ bpp-core bpp-seq ];
+
+  preCheck = ''
+    export LD_LIBRARY_PATH=$(pwd)/src
+  '';
+
+  postFixup = ''
+    substituteInPlace $out/lib/cmake/${pname}/${pname}-targets.cmake  \
+      --replace 'set(_IMPORT_PREFIX' '#set(_IMPORT_PREFIX'
+  '';
+
+  doCheck = !stdenv.isDarwin;
+
+  meta = bpp-core.meta // {
+    changelog = "https://github.com/BioPP/bpp-phyl/blob/master/ChangeLog";
+  };
+}
diff --git a/pkgs/development/libraries/science/biology/bpp-popgen/default.nix b/pkgs/development/libraries/science/biology/bpp-popgen/default.nix
new file mode 100644
index 00000000000..af5d1d00d4d
--- /dev/null
+++ b/pkgs/development/libraries/science/biology/bpp-popgen/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, cmake, bpp-core, bpp-seq }:
+
+stdenv.mkDerivation rec {
+  pname = "bpp-popgen";
+
+  inherit (bpp-core) version;
+
+  src = fetchFromGitHub {
+    owner = "BioPP";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0bz0fhrq3dri6a0hvfc3zlvrns8mrzzlnicw5pyfa812gc1qwfvh";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ bpp-core bpp-seq ];
+
+  preCheck = ''
+    export LD_LIBRARY_PATH=$(pwd)/src
+  '';
+
+  postFixup = ''
+    substituteInPlace $out/lib/cmake/${pname}/${pname}-targets.cmake  \
+      --replace 'set(_IMPORT_PREFIX' '#set(_IMPORT_PREFIX'
+  '';
+  # prevents cmake from exporting incorrect INTERFACE_INCLUDE_DIRECTORIES
+  # of form /nix/store/.../nix/store/.../include,
+  # probably due to relative vs absolute path issue
+
+  doCheck = !stdenv.isDarwin;
+
+  meta = bpp-core.meta // {
+    changelog = "https://github.com/BioPP/bpp-popgen/blob/master/ChangeLog";
+  };
+}
diff --git a/pkgs/development/libraries/science/biology/bpp-seq/default.nix b/pkgs/development/libraries/science/biology/bpp-seq/default.nix
new file mode 100644
index 00000000000..79fd0fe6771
--- /dev/null
+++ b/pkgs/development/libraries/science/biology/bpp-seq/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, cmake, bpp-core }:
+
+stdenv.mkDerivation rec {
+  pname = "bpp-seq";
+
+  inherit (bpp-core) version;
+
+  src = fetchFromGitHub {
+    owner = "BioPP";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1mc09g8jswzsa4wgrfv59jxn15ys3q8s0227p1j838wkphlwn2qk";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ bpp-core ];
+
+  preCheck = ''
+    export LD_LIBRARY_PATH=$(pwd)/src
+  '';
+
+  postFixup = ''
+    substituteInPlace $out/lib/cmake/${pname}/${pname}-targets.cmake  \
+      --replace 'set(_IMPORT_PREFIX' '#set(_IMPORT_PREFIX'
+  '';
+  # prevents cmake from exporting incorrect INTERFACE_INCLUDE_DIRECTORIES
+  # of form /nix/store/.../nix/store/.../include,
+  # probably due to relative vs absolute path issue
+
+  doCheck = !stdenv.isDarwin;
+
+  meta = bpp-core.meta // { 
+    changelog = "https://github.com/BioPP/bpp-seq/blob/master/ChangeLog";
+  };
+}
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/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/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 2df39b330c4..11c5e42335b 100644
--- a/pkgs/development/libraries/science/math/mkl/default.nix
+++ b/pkgs/development/libraries/science/math/mkl/default.nix
@@ -1,4 +1,12 @@
-{ stdenvNoCC, fetchurl, rpmextract, undmg, darwin, enableStatic ? false }:
+{ stdenvNoCC
+, fetchurl
+, rpmextract
+, undmg
+, darwin
+, validatePkgConfig
+, enableStatic ? false
+}:
+
 /*
   For details on using mkl as a blas provider for python packages such as numpy,
   numexpr, scipy, etc., see the Python section of the NixPkgs manual.
@@ -11,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}";
 
@@ -34,15 +42,15 @@ 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 = if stdenvNoCC.isDarwin
+  nativeBuildInputs = [ validatePkgConfig ] ++ (if stdenvNoCC.isDarwin
     then
       [ undmg darwin.cctools ]
     else
-      [ rpmextract ];
+      [ rpmextract ]);
 
   buildPhase = if stdenvNoCC.isDarwin then ''
     for f in Contents/Resources/pkg/*.tgz; do
@@ -77,6 +85,7 @@ in stdenvNoCC.mkDerivation {
       bn=$(basename $f)
       substituteInPlace $f \
         --replace "prefix=<INSTALLDIR>/mkl" "prefix=$out" \
+        --replace $\{MKLROOT} "$out" \
         --replace "lib/intel64_lin" "lib"
     done
 
diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix
index 318922d7f25..89d88bdf564 100644
--- a/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/pkgs/development/libraries/science/math/openblas/default.nix
@@ -99,12 +99,12 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openblas";
-  version = "0.3.9";
+  version = "0.3.10";
   src = fetchFromGitHub {
     owner = "xianyi";
     repo = "OpenBLAS";
     rev = "v${version}";
-    sha256 = "0nq51j45shb32n6086xff3x374kx5qhr2cwjzvppx4s2z0ahflal";
+    sha256 = "174id98ga82bhz2v7sy9yj6pqy0h0088p3mkdikip69p9rh3d17b";
   };
 
   inherit blas64;
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..e3594d72eda 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.3";
 
   src = fetchurl {
     url = "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-${version}.tar.gz";
-    sha256 = "0pr604b9pnryl9q0q5arlhs0xdx7wslca0sbz0pzs9qylmz775qp";
+    sha256 = "0fhydhws57hvxv7mkldlicm2xmmnb9f4nhd8n16idxg4snck38vz";
   };
 
-  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 5a2c28d3c02..5244ccdb281 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.2.2";
+  version = "3.3.0";
 
   outputs = [ "out" "dev" ];
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     owner = "DrTimothyAldenDavis";
     repo = "GraphBLAS";
     rev = "v${version}";
-    sha256 = "04hprrgj0f44ml2f0w4jfwgrvy8l2s6ya0c9xc8gwlbmkc7a4c62";
+    sha256 = "1fin9741ild3dv7c9gk07kpizsnnx17ar9cv9lny8vl47pms940h";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/sdformat/3.nix b/pkgs/development/libraries/sdformat/3.nix
deleted file mode 100644
index b78f1d5624c..00000000000
--- a/pkgs/development/libraries/sdformat/3.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ stdenv, fetchurl, callPackage, ... } @ args:
-
-callPackage ./default.nix (args // {
-  version = "3.7.0";
-  srchash-sha256 = "07kn8bgvj9mwwinsp2cbmz11z7zw2lgnj61mi1gi1pjg7q9in98q";
-})
-
diff --git a/pkgs/development/libraries/sdformat/default.nix b/pkgs/development/libraries/sdformat/default.nix
deleted file mode 100644
index 66ad311387f..00000000000
--- a/pkgs/development/libraries/sdformat/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, fetchurl, cmake, boost, ruby, ignition, tinyxml
-  , name ? "sdformat-${version}"
-  , version ? "4.0.0" # versions known to work with this expression include 3.7.0
-  , srchash-sha256 ? "b0f94bb40b0d83e35ff250a7916fdfd6df5cdc1e60c47bc53dd2da5e2378163e"
-  , ...
-  }:
-
-stdenv.mkDerivation {
-  src = fetchurl { 
-      url = "http://osrf-distributions.s3.amazonaws.com/sdformat/releases/${name}.tar.bz2";
-      sha256 = srchash-sha256;
-  };
-
-  inherit name;
-
-  prePatch = ''
-    substituteInPlace cmake/sdf_config.cmake.in --replace "@CMAKE_INSTALL_PREFIX@/@LIB_INSTALL_DIR@" "@LIB_INSTALL_DIR@"
-  '';
-
-  enableParallelBuilding = true;
-  buildInputs = [
-    cmake boost ruby ignition.math2 tinyxml
-  ];
-
-  meta = {
-    broken = true;
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
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/sentencepiece/default.nix b/pkgs/development/libraries/sentencepiece/default.nix
index 52b39ddc25b..41226865421 100644
--- a/pkgs/development/libraries/sentencepiece/default.nix
+++ b/pkgs/development/libraries/sentencepiece/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sentencepiece";
-  version = "0.1.86";
+  version = "0.1.91";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0r4z5n3dx0bg1pm2kgfllyj65s7ljn2ny7i7c5bz618r7h8bax9p";
+    sha256 = "1yg55h240iigjaii0k70mjb4sh3mgg54rp2sz8bx5glnsjwys5s3";
   };
 
   nativeBuildInputs = [ cmake ] ++ lib.optional withGPerfTools gperftools;
diff --git a/pkgs/development/libraries/serd/default.nix b/pkgs/development/libraries/serd/default.nix
index 9e83bdae28e..88fd1ea82d3 100644
--- a/pkgs/development/libraries/serd/default.nix
+++ b/pkgs/development/libraries/serd/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "serd";
-  version = "0.30.2";
+  version = "0.30.4";
 
   src = fetchurl {
     url = "https://download.drobilla.net/${pname}-${version}.tar.bz2";
-    sha256 = "00kjjgs5a8r72khgpya14scvl3n58wqwl5927y14z03j25q04ccx";
+    sha256 = "168rn3m32c59qbar120f83ibcnnd987ij9p053kybgl7cmm6358c";
   };
 
   nativeBuildInputs = [ pkgconfig python3 wafHook ];
@@ -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/serialdv/default.nix b/pkgs/development/libraries/serialdv/default.nix
index 178cee5e69a..d711cd9fc80 100644
--- a/pkgs/development/libraries/serialdv/default.nix
+++ b/pkgs/development/libraries/serialdv/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/f4exb/serialdv";
     platforms = platforms.linux;
     maintainers = with maintainers; [ alkeryn ];
+    license = licenses.gpl3;
   };
 }
 
diff --git a/pkgs/development/libraries/simgear/default.nix b/pkgs/development/libraries/simgear/default.nix
index bdd8dd9d999..3a7c0b3c410 100644
--- a/pkgs/development/libraries/simgear/default.nix
+++ b/pkgs/development/libraries/simgear/default.nix
@@ -4,7 +4,7 @@
 , curl
 }:
 let
-  version = "2019.1.1";
+  version = "2020.1.3";
   shortVersion = builtins.substring 0 6 version;
 in
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2";
-    sha256 = "12sl18limlj61hlwl3bcv5ysfdpsjmd07cxchhf9xa8shk6d87i0";
+    sha256 = "1l8kiicm0klbx0b05994vqd8a8wj7k0djbbg41a6i3q5d17jrnk6";
   };
 
   nativeBuildInputs = [ cmake ];
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
new file mode 100644
index 00000000000..9d0b3bf76b3
--- /dev/null
+++ b/pkgs/development/libraries/sope/default.nix
@@ -0,0 +1,46 @@
+{ gnustep, lib, fetchFromGitHub , libxml2, openssl_1_1
+, openldap, mysql, libmysqlclient, postgresql }: with lib; gnustep.stdenv.mkDerivation rec {
+  pname = "sope";
+  version = "4.3.2";
+
+  src = fetchFromGitHub {
+    owner = "inverse-inc";
+    repo = pname;
+    rev = "SOPE-${version}";
+    sha256 = "0ny1ihx38gd25w8f3dfybyswvyjfljvb2fhfmkajgg6hhjrkfar2";
+  };
+
+  nativeBuildInputs = [ gnustep.make ];
+  buildInputs = flatten ([ gnustep.base libxml2 openssl_1_1 ]
+    ++ optional (openldap != null) openldap
+    ++ optionals (mysql != null) [ libmysqlclient mysql ]
+    ++ optional (postgresql != null) postgresql);
+
+  postPatch = ''
+    # Exclude NIX_ variables
+    sed -i 's/grep GNUSTEP_/grep ^GNUSTEP_/g' configure
+  '';
+
+  preConfigure = ''
+    export DESTDIR="$out"
+  '';
+
+  configureFlags = [ "--prefix=" "--disable-debug" "--enable-xml" "--with-ssl=ssl" ]
+    ++ optional (openldap != null) "--enable-openldap"
+    ++ optional (mysql != null) "--enable-mysql"
+    ++ optional (postgresql != null) "--enable-postgresql";
+
+  # Yes, this is ugly.
+  preFixup = ''
+    cp -rlPa $out/nix/store/*/* $out
+    rm -rf $out/nix/store
+  '';
+
+  meta = {
+    description = "SOPE is an extensive set of frameworks which form a complete Web application server environment";
+    license = licenses.publicDomain;
+    homepage = "https://github.com/inverse-inc/sope";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ ajs124 das_j ];
+  };
+}
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/spdk/default.nix b/pkgs/development/libraries/spdk/default.nix
index e8d4f3eb4e0..1b5abe16f37 100644
--- a/pkgs/development/libraries/spdk/default.nix
+++ b/pkgs/development/libraries/spdk/default.nix
@@ -1,24 +1,54 @@
-{ stdenv, fetchFromGitHub, python, cunit, dpdk, libaio, libbsd, libuuid, numactl, openssl }:
+{ stdenv
+, fetchurl
+, fetchFromGitHub
+, fetchpatch
+, ncurses
+, python3
+, cunit
+, dpdk
+, libaio
+, libbsd
+, libuuid
+, numactl
+, openssl
+}:
 
-stdenv.mkDerivation rec {
+let
+  dpdk-compat-patch = fetchurl {
+    url = "https://review.spdk.io/gerrit/plugins/gitiles/spdk/spdk/+/6acb9a58755856fb9316baf9dbbb7239dc6b9446%5E%21/?format=TEXT";
+    sha256 = "18q0956fkjw19r29hp16x4pygkfv01alj9cld2wlqqyfgp41nhn0";
+  };
+in stdenv.mkDerivation rec {
   pname = "spdk";
-  version = "20.01.1";
+  version = "20.04.1";
 
   src = fetchFromGitHub {
     owner = "spdk";
     repo = "spdk";
     rev = "v${version}";
-    sha256 = "1ci0kj0bv5jp5yipa8g0q0ah71qv6pjvvban1ad0v24f7lq4xh0w";
+    sha256 = "ApMyGamPrMalzZLbVkJlcwatiB8dOJmoxesdjkWZElk=";
   };
 
-  patches = [ ./spdk-dpdk-meson.patch ];
+  patches = [
+    ./spdk-dpdk-meson.patch
+    # https://review.spdk.io/gerrit/c/spdk/spdk/+/3134
+    (fetchpatch {
+      url = "https://github.com/spdk/spdk/commit/c954b5b722c5c163774d3598458ff726c48852ab.patch";
+      sha256 = "1n149hva5qxmpr0nmav10nya7zklafxi136f809clv8pag84g698";
+    })
+  ];
 
-  nativeBuildInputs = [ python ];
+  nativeBuildInputs = [
+    python3
+  ];
 
-  buildInputs = [ cunit dpdk libaio libbsd libuuid numactl openssl ];
+  buildInputs = [
+    cunit dpdk libaio libbsd libuuid numactl openssl ncurses
+  ];
 
   postPatch = ''
     patchShebangs .
+    base64 -d ${dpdk-compat-patch} | patch -p1
   '';
 
   configureFlags = [ "--with-dpdk=${dpdk}" ];
diff --git a/pkgs/development/libraries/spdlog/default.nix b/pkgs/development/libraries/spdlog/default.nix
index 1839bb7bff1..add1dcf10cb 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.4.2";
-    sha256 = "1qc3rphvik44136ms0gjq2wmkl6qglri4fqxlhr2l5jwm8zhr8fc";
+    version = "1.6.0";
+    sha256 = "15fn8nd9xj7wrxcg9n4fjffid790qg2m366rx2lq2fc9v9walrxs";
   };
 
   spdlog_0 = generic {
diff --git a/pkgs/development/libraries/speechd/default.nix b/pkgs/development/libraries/speechd/default.nix
index 6b8e42a7c19..eab6c1d446c 100644
--- a/pkgs/development/libraries/speechd/default.nix
+++ b/pkgs/development/libraries/speechd/default.nix
@@ -43,7 +43,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/brailcom/speechd/releases/download/${version}/${pname}-${version}.tar.gz";
-    hash = "sha256:16bg52hnkrsrs7kgbzanb34b9zb6fqxwj0a9bmsxmj1skkil1h1p";
+    sha256 = "16bg52hnkrsrs7kgbzanb34b9zb6fqxwj0a9bmsxmj1skkil1h1p";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/sqlcipher/default.nix b/pkgs/development/libraries/sqlcipher/default.nix
index 66d30e26a0d..f40c80391a2 100644
--- a/pkgs/development/libraries/sqlcipher/default.nix
+++ b/pkgs/development/libraries/sqlcipher/default.nix
@@ -1,18 +1,20 @@
-{ stdenv, lib, fetchFromGitHub, openssl, tcl, readline ? null, ncurses ? null }:
+{ stdenv, lib, fetchFromGitHub, openssl, tcl, installShellFiles, readline ? null, ncurses ? null }:
 
 assert readline != null -> ncurses != null;
 
 stdenv.mkDerivation rec {
   pname = "sqlcipher";
-  version = "4.3.0";
+  version = "4.4.0";
 
   src = fetchFromGitHub {
     owner = "sqlcipher";
     repo = "sqlcipher";
     rev = "v${version}";
-    sha256 = "0s1aiwl61nl3b4ym4v050wlbbx0iypknqsj3ar12dw5hljlzx6f8";
+    sha256 = "0mx0n5n3s39r25b31sdkrd4psxjqqgcv6rpm9d57w5rlk75g2fiv";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+
   buildInputs = [ readline ncurses openssl tcl ];
 
   configureFlags = [ "--enable-threadsafe" "--disable-tcl" ];
@@ -22,9 +24,13 @@ stdenv.mkDerivation rec {
 
   doCheck = false; # fails. requires tcl?
 
+  postInstall = ''
+    installManPage sqlcipher.1
+  '';
+
   meta = with stdenv.lib; {
-    homepage = "http://sqlcipher.net/";
-    description = "Full Database Encryption for SQLite";
+    homepage = "https://www.zetetic.net/sqlcipher/";
+    description = "SQLite extension that provides 256 bit AES encryption of database files";
     platforms = platforms.unix;
     license = licenses.bsd3;
   };
diff --git a/pkgs/development/libraries/sqlite/analyzer.nix b/pkgs/development/libraries/sqlite/analyzer.nix
index 4e37febbe75..5c65c84e54d 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.31.1";
+  version = "3.32.3";
 
   src = assert version == sqlite.version; fetchurl {
     url = "https://sqlite.org/2020/sqlite-src-${archiveVersion version}.zip";
-    sha256 = "0n7f3w59gr80s6k4l5a9bp2s97dlfapfbhb3qdhak6axhn127p7j";
+    sha256 = "1fgmslzf013ry3a7g2vms7zyg24gs53gfj308r6ki4inbn3g04lk";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index 245c55e9ea8..cd0042e722a 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.31.1";
+  version = "3.32.3";
 
   # 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 = "1bj936svd8i5g25xd1bj52hj4zca01fgl3sqkj86z9q5pkz4wa32";
+    sha256 = "0rlbaq177gcgk5dswd3akbhv2nvvzljrbhgy18hklbhw7h90f5d3";
   };
 
   outputs = [ "bin" "dev" "out" ];
diff --git a/pkgs/development/libraries/sundials/default.nix b/pkgs/development/libraries/sundials/default.nix
index 46cf437d72c..24980e9b709 100644
--- a/pkgs/development/libraries/sundials/default.nix
+++ b/pkgs/development/libraries/sundials/default.nix
@@ -11,14 +11,14 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "sundials";
-  version = "5.1.0";
+  version = "5.3.0";
 
   buildInputs = [ python ] ++ stdenv.lib.optionals (lapackSupport) [ gfortran blas lapack ];
   nativeBuildInputs = [ cmake ];
 
   src = fetchurl {
     url = "https://computation.llnl.gov/projects/${pname}/download/${pname}-${version}.tar.gz";
-    sha256 = "08cvzmbr2qc09ayq4f5j07lw97hl06q4dl26vh4kh822mm7x28pv";
+    sha256 = "19xwi7pz35s2nqgldm6r0jl2k0bs36zhbpnmmzc56s1n3bhzgpw8";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/swiften/build-fix.patch b/pkgs/development/libraries/swiften/build-fix.patch
new file mode 100644
index 00000000000..01814cadfbd
--- /dev/null
+++ b/pkgs/development/libraries/swiften/build-fix.patch
@@ -0,0 +1,32 @@
+diff -wbBur swift-4.0.2/Swift/QtUI/UserSearch/QtUserSearchWindow.h swift-4.0.2.my/Swift/QtUI/UserSearch/QtUserSearchWindow.h
+--- swift-4.0.2/Swift/QtUI/UserSearch/QtUserSearchWindow.h	2018-04-06 13:06:46.000000000 +0300
++++ swift-4.0.2.my/Swift/QtUI/UserSearch/QtUserSearchWindow.h	2019-10-08 20:52:23.171475337 +0300
+@@ -9,6 +9,7 @@
+ #include <set>
+ 
+ #include <QWizard>
++#include <QAbstractItemModel>
+ 
+ #include <Swiften/Base/Override.h>
+ 
+diff -wbBur swift-4.0.2/Swiften/Network/PlatformNATTraversalWorker.cpp swift-4.0.2.my/Swiften/Network/PlatformNATTraversalWorker.cpp
+--- swift-4.0.2/Swiften/Network/PlatformNATTraversalWorker.cpp	2018-04-06 13:06:46.000000000 +0300
++++ swift-4.0.2.my/Swiften/Network/PlatformNATTraversalWorker.cpp	2019-10-08 21:12:25.284754131 +0300
+@@ -157,7 +157,7 @@
+         miniUPnPInterface = new MiniUPnPInterface();
+         miniUPnPSupported = miniUPnPInterface->isAvailable();
+     }
+-    SWIFT_LOG(debug) << "UPnP NAT traversal supported: " << miniUPnPSupported << std::endl;
++//    SWIFT_LOG(debug) << "UPnP NAT traversal supported: " << miniUPnPSupported << std::endl;
+     if (miniUPnPSupported) {
+         return miniUPnPInterface;
+     }
+@@ -168,7 +168,7 @@
+         natPMPInterface = new NATPMPInterface();
+         natPMPSupported = natPMPInterface->isAvailable();
+     }
+-    SWIFT_LOG(debug) << "NAT-PMP NAT traversal supported: " << natPMPSupported << std::endl;
++//    SWIFT_LOG(debug) << "NAT-PMP NAT traversal supported: " << natPMPSupported << std::endl;
+     if (natPMPSupported) {
+         return natPMPInterface;
+     }
diff --git a/pkgs/development/libraries/swiften/default.nix b/pkgs/development/libraries/swiften/default.nix
index bdac55fe2ec..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 ];
 
@@ -12,17 +12,21 @@ stdenv.mkDerivation rec {
     sha256 = "0w0aiszjd58ynxpacwcgf052zpmbpcym4dhci64vbfgch6wryz0w";
   };
 
-  patches = [ ./scons.patch ];
+  patches = [ ./scons.patch ./build-fix.patch ];
 
   sconsFlags = [
     "openssl=${openssl.dev}"
     "boost_includedir=${boost.dev}/include"
     "boost_libdir=${boost.out}/lib"
     "boost_bundled_enable=false"
+    "max_jobs=1"
+    "optimize=1"
+    "debug=0"
+    "swiften_dll=1"
   ];
   preInstall = ''
     installTargets="$out"
-    installFlags+=" SWIFT_INSTALLDIR=$out"
+    installFlags+=" SWIFTEN_INSTALLDIR=$out"
   '';
 
   enableParallelBuilding = true;
@@ -33,6 +37,5 @@ stdenv.mkDerivation rec {
     license     = licenses.gpl2Plus;
     platforms   = platforms.linux;
     maintainers = [ maintainers.twey ];
-    broken = true; # Broken since 2019-11-20 (https://hydra.nixos.org/build/114681755)
   };
 }
diff --git a/pkgs/development/libraries/swiftshader/default.nix b/pkgs/development/libraries/swiftshader/default.nix
new file mode 100644
index 00000000000..3965f46bd8d
--- /dev/null
+++ b/pkgs/development/libraries/swiftshader/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchgit, python3, cmake, jq, libX11, libXext }:
+
+stdenv.mkDerivation rec {
+  pname = "swiftshader";
+  version = "2020-06-17";
+
+  src = fetchgit {
+    url = "https://swiftshader.googlesource.com/SwiftShader";
+    rev = "763957e6b4fc1aa360ab19c4109b8b26686783e8";
+    sha256 = "0sdh48swx0qyq2nfkv1nggs14am0qc7z239qrxb69p2ddqm76g1s";
+  };
+
+  nativeBuildInputs = [ cmake python3 jq ];
+  buildInputs = [ libX11 libXext ];
+
+  # Make sure we include the drivers and icd files in the output as the cmake
+  # generated install command only puts in the spirv-tools stuff.
+  installPhase = ''
+    runHook preInstall
+
+    #
+    # Vulkan driver
+    #
+    vk_so_path="$out/lib/libvk_swiftshader.so"
+    mkdir -p "$(dirname "$vk_so_path")"
+    mv Linux/libvk_swiftshader.so "$vk_so_path"
+
+    vk_icd_json="$out/share/vulkan/icd.d/vk_swiftshader_icd.json"
+    mkdir -p "$(dirname "$vk_icd_json")"
+    jq ".ICD.library_path = \"$vk_so_path\"" <Linux/vk_swiftshader_icd.json >"$vk_icd_json"
+
+    #
+    # GL driver
+    #
+    gl_so_path="$out/lib/libEGL.so"
+    mkdir -p "$(dirname "$gl_so_path")"
+    mv Linux/libEGL.so "$gl_so_path"
+
+    gl_icd_json="$out/share/glvnd/egl_vendor.d/swiftshader.json"
+    mkdir -p "$(dirname "$gl_icd_json")"
+    cat >"$gl_icd_json" <<EOF
+    {
+      "file_format_version" : "1.0.0",
+      "ICD" : {
+          "library_path" : "$gl_so_path"
+      }
+    }
+    EOF
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description =
+      "A high-performance CPU-based implementation of the Vulkan, OpenGL ES, and Direct3D 9 graphics APIs";
+    homepage = "https://opensource.google/projects/swiftshader";
+    license = licenses.asl20;
+    # Should be possible to support Darwin by changing the install phase with
+    # 's/Linux/Darwin/' and 's/so/dylib/' or something similar.
+    platforms = [ "i686-linux" "x86_64-linux" "armv7l-linux" "mipsel-linux" ];
+    maintainers = with maintainers; [ expipiplus1 ];
+  };
+}
diff --git a/pkgs/development/libraries/tachyon/default.nix b/pkgs/development/libraries/tachyon/default.nix
index 993cf663121..20dc80b253d 100644
--- a/pkgs/development/libraries/tachyon/default.nix
+++ b/pkgs/development/libraries/tachyon/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation rec {
     cp tachyon "$out"/bin
     cp libtachyon.* "$out/lib"
     cd ../..
+    cp src/*.h "$out/include/"
     cp Changes Copyright README "$out/share/doc/tachyon"
     cp -r scenes "$out/share/tachyon/scenes"
   '';
diff --git a/pkgs/development/libraries/telepathy/qt/default.nix b/pkgs/development/libraries/telepathy/qt/default.nix
index b8e438819db..2addb86246d 100644
--- a/pkgs/development/libraries/telepathy/qt/default.nix
+++ b/pkgs/development/libraries/telepathy/qt/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl, cmake, qtbase, pkgconfig, python2Packages, dbus-glib, dbus
+{ stdenv, fetchurl, cmake, qtbase, pkgconfig, python3Packages, dbus-glib, dbus
 , telepathy-farstream, telepathy-glib, fetchpatch }:
 
 let
-  inherit (python2Packages) python dbus-python;
+  inherit (python3Packages) python dbus-python;
 in stdenv.mkDerivation rec {
-  name = "telepathy-qt-0.9.7";
+  name = "telepathy-qt-0.9.8";
 
   src = fetchurl {
     url = "https://telepathy.freedesktop.org/releases/telepathy-qt/${name}.tar.gz";
-    sha256 = "0krxd4hhfx6r0ja19wh3848j7gn1rv8jrnakgmkbmi7bww5x7fi1";
+    sha256 = "bf8e2a09060addb80475a4938105b9b41d9e6837999b7a00e5351783857e18ad";
   };
 
   nativeBuildInputs = [ cmake pkgconfig python ];
@@ -16,14 +16,6 @@ in stdenv.mkDerivation rec {
   buildInputs = [ dbus-glib ];
   checkInputs = [ dbus.daemon dbus-python ];
 
-  patches = [
-    # https://github.com/TelepathyIM/telepathy-qt/issues/25
-    (fetchpatch {
-      url = "https://github.com/TelepathyIM/telepathy-qt/commit/d654dc70dbec7097e96e6d96ca74ab1b5b00ef8c.patch";
-      sha256 = "1jzd9b9rqh3c8xlq8dr7c0r8aabzf5ywv2gpkk6phh3xwngzrfbh";
-    })
-  ];
-
   # No point in building tests if they are not run
   # On 0.9.7, they do not even build with QT4
   cmakeFlags = stdenv.lib.optional (!doCheck) "-DENABLE_TESTS=OFF";
diff --git a/pkgs/development/libraries/tevent/default.nix b/pkgs/development/libraries/tevent/default.nix
index 66d65e63951..2d5fd0564ba 100644
--- a/pkgs/development/libraries/tevent/default.nix
+++ b/pkgs/development/libraries/tevent/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://samba/tevent/${pname}-${version}.tar.gz";
-    sha256 = "+EJ4IuWyh4+4so1vUNloSHNPPzEwYS+1dP3S0hSKZpY=";
+    sha256 = "15k6i8ad5lpxfjsjyq9h64zlyws8d3cm0vwdnaw8z1xjwli7hhpq";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/ticpp/default.nix b/pkgs/development/libraries/ticpp/default.nix
index 01fab29b674..37b093c8e2e 100644
--- a/pkgs/development/libraries/ticpp/default.nix
+++ b/pkgs/development/libraries/ticpp/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     owner = "wxFormBuilder";
     repo = "ticpp";
     rev = "eb79120ea16b847ce9f483a298a394050f463d6b";
-    sha256 = "sha256:0xk4cy0xbkr6326cqd1vd6b2x0rfsx4iz2sq8f5jz3yl3slxgjm2";
+    sha256 = "0xk4cy0xbkr6326cqd1vd6b2x0rfsx4iz2sq8f5jz3yl3slxgjm2";
   };
 
   nativeBuildInputs = [ cmake ];
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/tpm2-tss/default.nix b/pkgs/development/libraries/tpm2-tss/default.nix
index b264c3bc6c6..2421d3f8899 100644
--- a/pkgs/development/libraries/tpm2-tss/default.nix
+++ b/pkgs/development/libraries/tpm2-tss/default.nix
@@ -1,36 +1,32 @@
-{ stdenv, lib, fetchurl, fetchpatch
-, cmocka, doxygen, ibm-sw-tpm2, iproute, openssl, perl, pkgconfig, procps
-, uthash, which
+{ stdenv, lib, fetchFromGitHub
+, autoreconfHook, autoconf-archive, pkg-config, doxygen, perl
+, openssl, json_c, curl, libgcrypt
+, cmocka, uthash, ibm-sw-tpm2, iproute, procps, which
 }:
 
 stdenv.mkDerivation rec {
   pname = "tpm2-tss";
-  version = "2.3.2";
+  version = "2.4.1";
 
-  src = fetchurl {
-    url = "https://github.com/tpm2-software/${pname}/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "19jg09sxy3aj4dc1yv32jjv0m62cnmhjlw02jbh4d4pk2439m4l2";
+  src = fetchFromGitHub {
+    owner = "tpm2-software";
+    repo = pname;
+    rev = version;
+    sha256 = "09x5czaj4a8cyf8cxavcasx3yy1kik1s45a90c7zvxb7y1kfp9zs";
   };
 
-  patches = [
-    # Fix test failure. see https://github.com/tpm2-software/tpm2-tss/pull/1585
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/tpm2-software/tpm2-tss/pull/1585.patch";
-      sha256 = "0ak3l588ahzv3yx1gfa4sa6p74lsffxzkr23ppznm34wvlcci86n";
-    })
-  ];
-
   nativeBuildInputs = [
-    doxygen perl pkgconfig
-    # For unit tests and integration tests.
-    ibm-sw-tpm2 iproute procps which
+    autoreconfHook autoconf-archive pkg-config doxygen perl
   ];
-  buildInputs = [
-    openssl
-    # For unit tests and integration tests.
-    cmocka uthash
+  buildInputs = [ openssl json_c curl libgcrypt ];
+  checkInputs = [
+    cmocka uthash ibm-sw-tpm2 iproute procps which
   ];
 
+  preAutoreconf = "./bootstrap";
+
+  enableParallelBuilding = true;
+
   postPatch = "patchShebangs script";
 
   configureFlags = [
diff --git a/pkgs/development/libraries/tracker-miners/default.nix b/pkgs/development/libraries/tracker-miners/default.nix
index 04287282328..f93721bdfc1 100644
--- a/pkgs/development/libraries/tracker-miners/default.nix
+++ b/pkgs/development/libraries/tracker-miners/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "dHKqKNeGJiDTyiu+w7ED31R9cxnBLpWn96qfn23uSxk=";
+    sha256 = "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/tracker/default.nix b/pkgs/development/libraries/tracker/default.nix
index 50eb56ce2d1..fb111829c7e 100644
--- a/pkgs/development/libraries/tracker/default.nix
+++ b/pkgs/development/libraries/tracker/default.nix
@@ -1,8 +1,33 @@
-{ stdenv, fetchurl, gettext, meson, ninja, pkgconfig, gobject-introspection, python3
-, gtk-doc, docbook_xsl, docbook_xml_dtd_412, docbook_xml_dtd_43, glibcLocales
-, libxml2, upower, glib, wrapGAppsHook, vala, sqlite, libxslt, libstemmer
-, gnome3, icu, libuuid, networkmanager, libsoup, json-glib, systemd, dbus
-, substituteAll }:
+{ stdenv
+, fetchurl
+, gettext
+, meson
+, ninja
+, pkgconfig
+, gobject-introspection
+, python3
+, gtk-doc
+, docbook_xsl
+, docbook_xml_dtd_412
+, docbook_xml_dtd_43
+, docbook_xml_dtd_45
+, libxml2
+, glib
+, wrapGAppsHook
+, vala
+, sqlite
+, libxslt
+, libstemmer
+, gnome3
+, icu
+, libuuid
+, networkmanager
+, libsoup
+, json-glib
+, systemd
+, dbus
+, substituteAll
+}:
 
 stdenv.mkDerivation rec {
   pname = "tracker";
@@ -12,37 +37,83 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "V3lSJEq5d8eLC4ji9jxBl+q6FuTWa/9pK39YmT4GUW0=";
+    sha256 = "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap";
   };
 
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      gdbus = "${glib.bin}/bin/gdbus";
+    })
+  ];
+
   nativeBuildInputs = [
-    meson ninja vala pkgconfig gettext libxslt wrapGAppsHook gobject-introspection
-    gtk-doc docbook_xsl docbook_xml_dtd_412 docbook_xml_dtd_43 glibcLocales
+    meson
+    ninja
+    vala
+    pkgconfig
+    gettext
+    libxslt
+    wrapGAppsHook
+    gobject-introspection
+    gtk-doc
+    docbook_xsl
+    docbook_xml_dtd_412
+    docbook_xml_dtd_43
+    docbook_xml_dtd_45
     python3 # for data-generators
     systemd # used for checks to install systemd user service
     dbus # used for checks and pkgconfig to install dbus service/s
   ];
 
   buildInputs = [
-    glib libxml2 sqlite upower icu networkmanager libsoup libuuid json-glib libstemmer
+    glib
+    libxml2
+    sqlite
+    icu
+    networkmanager
+    libsoup
+    libuuid
+    json-glib
+    libstemmer
+  ];
+
+  checkInputs = [
+    python3.pkgs.pygobject3
   ];
 
   mesonFlags = [
     # TODO: figure out wrapping unit tests, some of them fail on missing gsettings-desktop-schemas
-    "-Dfunctional_tests=false"
+    # "-Dfunctional_tests=true"
     "-Ddocs=true"
   ];
 
-  patches = [
-    (substituteAll {
-      src = ./fix-paths.patch;
-      gdbus = "${glib.bin}/bin/gdbus";
-    })
-  ];
+  doCheck = true;
 
   postPatch = ''
     patchShebangs utils/g-ir-merge/g-ir-merge
     patchShebangs utils/data-generators/cc/generate
+    patchShebangs tests/functional-tests/test-runner.sh.in
+    patchShebangs tests/functional-tests/*.py
+  '';
+
+  preCheck = ''
+    # (tracker-store:6194): Tracker-CRITICAL **: 09:34:07.722: Cannot initialize database: Could not open sqlite3 database:'/homeless-shelter/.cache/tracker/meta.db': unable to open database file
+    export HOME=$(mktemp -d)
+
+    # Our gobject-introspection patches make the shared library paths absolute
+    # in the GIR files. When running functional tests, the library is not yet installed,
+    # though, so we need to replace the absolute path with a local one during build.
+    # We are using a symlink that will be overridden during installation.
+    mkdir -p $out/lib
+    ln -s $PWD/src/libtracker-sparql-backend/libtracker-sparql-2.0.so $out/lib/libtracker-sparql-2.0.so.0
+    ln -s $PWD/src/libtracker-miner/libtracker-miner-2.0.so $out/lib/libtracker-miner-2.0.so.0
+    ln -s $PWD/src/libtracker-data/libtracker-data.so $out/lib/libtracker-data.so
+  '';
+
+  postCheck = ''
+    # Clean up out symlinks
+    rm -r $out/lib
   '';
 
   postInstall = ''
@@ -60,7 +131,7 @@ stdenv.mkDerivation rec {
     homepage = "https://wiki.gnome.org/Projects/Tracker";
     description = "Desktop-neutral user information store, search tool and indexer";
     maintainers = teams.gnome.members;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/tremor/default.nix b/pkgs/development/libraries/tremor/default.nix
index c2cb8a836bf..722094f859c 100644
--- a/pkgs/development/libraries/tremor/default.nix
+++ b/pkgs/development/libraries/tremor/default.nix
@@ -1,10 +1,12 @@
-{ stdenv, fetchgit, autoreconfHook, pkgconfig, libogg }:
+{ stdenv, fetchFromGitLab, autoreconfHook, pkgconfig, libogg }:
 
 stdenv.mkDerivation {
   name = "tremor-unstable-2018-03-16";
 
-  src = fetchgit {
-    url = "https://git.xiph.org/tremor.git";
+  src = fetchFromGitLab {
+    owner = "xiph";
+    repo = "tremor";
+    domain = "gitlab.xiph.org";
     rev = "562307a4a7082e24553f3d2c55dab397a17c4b4f";
     sha256 = "0m07gq4zfgigsiz8b518xyb19v7qqp76qmp7lb262825vkqzl3zq";
   };
diff --git a/pkgs/development/libraries/trompeloeil/default.nix b/pkgs/development/libraries/trompeloeil/default.nix
index 782af4ab033..625b16cc99a 100644
--- a/pkgs/development/libraries/trompeloeil/default.nix
+++ b/pkgs/development/libraries/trompeloeil/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "trompeloeil";
-  version = "37";
+  version = "38";
 
   src = fetchFromGitHub {
     owner = "rollbear";
     repo = "trompeloeil";
     rev = "v${version}";
-    sha256 = "04f9vpzh4fc15w4ynirzs9ipm9r31dbggb2zilmk0fj4qr79am42";
+    sha256 = "068q4xx09vwjs7i89w47qzymdb4l6jqi27gx2jmd3yb6fp2k7nsb";
   };
 
   nativeBuildInputs = [ cmake ];
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/unixODBCDrivers/default.nix b/pkgs/development/libraries/unixODBCDrivers/default.nix
index 6de0aabe70c..04aa7e6c685 100644
--- a/pkgs/development/libraries/unixODBCDrivers/default.nix
+++ b/pkgs/development/libraries/unixODBCDrivers/default.nix
@@ -108,7 +108,7 @@
 
     buildInputs = [ unixODBC sqlite zlib libxml2 ];
 
-    configureFlags = [ "--with-odbc=${unixODBC}" ];
+    configureFlags = [ "--with-odbc=${unixODBC}" "--with-sqlite3=${sqlite.dev}" ];
 
     installTargets = [ "install-3" ];
 
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/uriparser/default.nix b/pkgs/development/libraries/uriparser/default.nix
index de621b30e24..a12f040bf49 100644
--- a/pkgs/development/libraries/uriparser/default.nix
+++ b/pkgs/development/libraries/uriparser/default.nix
@@ -2,22 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "uriparser";
-  version = "0.9.3";
+  version = "0.9.4";
 
   # Release tarball differs from source tarball
   src = fetchurl {
     url = "https://github.com/uriparser/uriparser/releases/download/${pname}-${version}/${pname}-${version}.tar.bz2";
-    sha256 = "13z234jdaqs9jj7i66gcv4q1rgsypjz6cighnlm1j4g80pdlmbr8";
+    sha256 = "0yzqp1j6sglyrmwcasgn7zlwg841p3nbxy0h78ngq20lc7jspkdp";
   };
 
-  patches = [
-    # fixes tests
-    (fetchpatch {
-      url = "https://github.com/uriparser/uriparser/commit/f870e6c68696a6018702caa5c8a2feba9b0f99fa.diff";
-      sha256 = "1nd6bhys9hwy6ippa42vm95zhw6hldm1s4xbdzmdjswc96as1ff5";
-    })
-  ];
-
   nativeBuildInputs = [ cmake ];
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/utf8cpp/default.nix b/pkgs/development/libraries/utf8cpp/default.nix
new file mode 100644
index 00000000000..a2aac1241cd
--- /dev/null
+++ b/pkgs/development/libraries/utf8cpp/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "utf8cpp";
+  version = "3.1.1";
+
+  src = fetchFromGitHub {
+    owner = "nemtrif";
+    repo = "utfcpp";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "1s2pda75488z7c3w3a6qv31bj239248696yk5j2a1drbg2x1dpfh";
+  };
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=None"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DINSTALL_GTEST=OFF"
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/nemtrif/utfcpp";
+    description = "UTF-8 with C++ in a Portable Way";
+    license = licenses.free;
+    maintainers = with maintainers; [ jobojeha ];
+    platforms = platforms.linux;
+  };
+}
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/vapoursynth-mvtools/default.nix b/pkgs/development/libraries/vapoursynth-mvtools/default.nix
index 5fa35751e24..1030aefc1a5 100644
--- a/pkgs/development/libraries/vapoursynth-mvtools/default.nix
+++ b/pkgs/development/libraries/vapoursynth-mvtools/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vapoursynth-mvtools";
-  version = "22";
+  version = "23";
 
   src = fetchFromGitHub {
     owner  = "dubhater";
     repo   = "vapoursynth-mvtools";
     rev    = "v${version}";
-    sha256 = "11al56liaahkr3819iynq83k8n42wvijfv2ja5fsjdl6j4zfzpbr";
+    sha256 = "0lngkvxnzn82rz558nvl96rvclrck07ja1pny7wcfixp9b68ppkn";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/vapoursynth/default.nix b/pkgs/development/libraries/vapoursynth/default.nix
index 043bfb007a3..87f35fbf60c 100644
--- a/pkgs/development/libraries/vapoursynth/default.nix
+++ b/pkgs/development/libraries/vapoursynth/default.nix
@@ -36,6 +36,14 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru = {
+    # If vapoursynth is added to the build inputs of mpv and then
+    # used in the wrapping of it, we want to know once inside the
+    # wrapper, what python3 version was used to build vapoursynth so
+    # the right python3.sitePackages will be used there.
+    inherit python3;
+  };
+
   postInstall = ''
     wrapProgram $out/bin/vspipe \
         --prefix PYTHONPATH : $out/${python3.sitePackages}
diff --git a/pkgs/development/libraries/vtk/7.x.nix b/pkgs/development/libraries/vtk/7.x.nix
new file mode 100644
index 00000000000..f3ec383fddf
--- /dev/null
+++ b/pkgs/development/libraries/vtk/7.x.nix
@@ -0,0 +1,74 @@
+{ stdenv, fetchurl, cmake, libGLU, libGL, libX11, xorgproto, libXt, libtiff
+, fetchpatch
+, qtLib ? null
+, 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 = "7.1";
+  minorVersion = "1";
+  version = "${majorVersion}.${minorVersion}";
+in
+
+stdenv.mkDerivation rec {
+  name = "vtk-${os (qtLib != null) "qvtk-"}${version}";
+  src = fetchurl {
+    url = "${meta.homepage}files/release/${majorVersion}/VTK-${version}.tar.gz";
+    sha256 = "0nm7xwwj7rnsxjdv2ssviys8nhci4n9iiiqm2y14s520hl2dsp1d";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://gitlab.kitware.com/vtk/vtk/-/commit/706f1b397df09a27ab8981ab9464547028d0c322.diff";
+      sha256 = "1q3pi5h40g05pzpbqp75xlgzvbfvyw8raza51svmi7d8dlslqybx";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ libtiff ]
+    ++ optional (qtLib != null) qtLib
+    ++ 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" ]
+    ++ optional (qtLib != null) [ "-DVTK_Group_Qt:BOOL=ON" ]
+    ++ optional stdenv.isDarwin [ "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks" ]
+    ++ optional enablePython [ "-DVTK_WRAP_PYTHON:BOOL=ON" ];
+
+  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 = {
+    description = "Open source libraries for 3D computer graphics, image processing and visualization";
+    homepage = "https://www.vtk.org/";
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = with stdenv.lib.maintainers; [ knedlsepp ];
+    platforms = with stdenv.lib.platforms; unix;
+  };
+}
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/vtk/default.nix b/pkgs/development/libraries/vtk/default.nix
index 1cc706f4eb7..4ef140a0999 100644
--- a/pkgs/development/libraries/vtk/default.nix
+++ b/pkgs/development/libraries/vtk/default.nix
@@ -10,8 +10,8 @@ with stdenv.lib;
 
 let
   os = stdenv.lib.optionalString;
-  majorVersion = "7.1";
-  minorVersion = "1";
+  majorVersion = "8.2";
+  minorVersion = "0";
   version = "${majorVersion}.${minorVersion}";
 in
 
@@ -19,20 +19,13 @@ stdenv.mkDerivation rec {
   name = "vtk-${os (qtLib != null) "qvtk-"}${version}";
   src = fetchurl {
     url = "${meta.homepage}files/release/${majorVersion}/VTK-${version}.tar.gz";
-    sha256 = "0nm7xwwj7rnsxjdv2ssviys8nhci4n9iiiqm2y14s520hl2dsp1d";
+    sha256 = "1fspgp8k0myr6p2a6wkc21ldcswb4bvmb484m12mxgk1a9vxrhrl";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://gitlab.kitware.com/vtk/vtk/-/commit/706f1b397df09a27ab8981ab9464547028d0c322.diff";
-      sha256 = "1q3pi5h40g05pzpbqp75xlgzvbfvyw8raza51svmi7d8dlslqybx";
-    })
-  ];
-
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [ libtiff ]
-    ++ optional (qtLib != null) qtLib
+    ++ optionals (qtLib != null) (with qtLib; [ qtbase qtx11extras qttools ])
     ++ optionals stdenv.isLinux [ libGLU libGL libX11 xorgproto libXt ]
     ++ optionals stdenv.isDarwin [ xpc Cocoa CoreServices DiskArbitration IOKit
                                    CFNetwork Security ApplicationServices CoreText
@@ -47,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   # Shared libraries don't work, because of rpath troubles with the current
-  # nixpkgs camke approach. It wants to call a binary at build time, just
+  # 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.
diff --git a/pkgs/development/libraries/wasilibc/default.nix b/pkgs/development/libraries/wasilibc/default.nix
index fb8c0e0fa21..bca025d622a 100644
--- a/pkgs/development/libraries/wasilibc/default.nix
+++ b/pkgs/development/libraries/wasilibc/default.nix
@@ -20,10 +20,11 @@ stdenv.mkDerivation {
     ln -s $out/share/wasm32-wasi/undefined-symbols.txt $out/lib/wasi.imports
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "WASI libc implementation for WebAssembly";
     homepage    = "https://wasi.dev";
-    platforms   = lib.platforms.wasi;
-    maintainers = [ lib.maintainers.matthewbauer ];
+    platforms   = platforms.wasi;
+    maintainers = [ maintainers.matthewbauer ];
+    license = with licenses; [ asl20 mit llvm-exception ];
   };
 }
diff --git a/pkgs/development/libraries/wavpack/default.nix b/pkgs/development/libraries/wavpack/default.nix
index 329de97d39e..78794430860 100644
--- a/pkgs/development/libraries/wavpack/default.nix
+++ b/pkgs/development/libraries/wavpack/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "wavpack";
-  version = "5.2.0";
+  version = "5.3.0";
 
   enableParallelBuilding = true;
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://www.wavpack.com/${pname}-${version}.tar.bz2";
-    sha256 = "062f97bvm466ygvix3z0kbgffvvrc5cg2ak568jaq8r56v28q8rw";
+    sha256 = "00baiag7rlkzc6545dqdp4p5sr7xc3n97n7qdkgx58c544x0pw5n";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/wayland/default.nix b/pkgs/development/libraries/wayland/default.nix
index e3b2941e8ee..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,20 +20,22 @@ in stdenv.mkDerivation rec {
     sha256 = "0k995rn96xkplrapz5k648j651wc43kq817xk1x8280h16gsfxa6";
   };
 
+  outputs = [ "out" ] ++ lib.optionals withDocumentation [ "doc" "man" ];
   separateDebugInfo = true;
 
   mesonFlags = [ "-Ddocumentation=${lib.boolToString withDocumentation}" ];
 
-  patches = lib.optional isCross ./fix-wayland-cross-compilation.patch;
-
   postPatch = lib.optionalString withDocumentation ''
     patchShebangs doc/doxygen/gen-doxygen.py
-  '' + lib.optionalString isCross ''
     substituteInPlace egl/meson.build --replace \
       "find_program('nm').path()" \
       "find_program('${stdenv.cc.targetPrefix}nm').path()"
   '';
 
+  depsBuildBuild = [
+    pkgconfig
+  ];
+
   nativeBuildInputs = [
     meson pkgconfig ninja
   ] ++ lib.optionals isCross [
diff --git a/pkgs/development/libraries/wayland/fix-wayland-cross-compilation.patch b/pkgs/development/libraries/wayland/fix-wayland-cross-compilation.patch
deleted file mode 100644
index 77639acb653..00000000000
--- a/pkgs/development/libraries/wayland/fix-wayland-cross-compilation.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/src/meson.build b/src/meson.build
-index 3e8c9bf..75241cb 100644
---- a/src/meson.build
-+++ b/src/meson.build
-@@ -55,8 +55,7 @@ pkgconfig.generate(
- )
- 
- if meson.is_cross_build()
--	scanner_dep = dependency('wayland-scanner', native: true, version: '>=1.14.0')
--	wayland_scanner_for_build = find_program(scanner_dep.get_pkgconfig_variable('wayland_scanner'))
-+	wayland_scanner_for_build = find_program('wayland-scanner', native: true, version: '>=1.14.0')
- else
- 	wayland_scanner_for_build = wayland_scanner
- endif
diff --git a/pkgs/development/libraries/waylandpp/default.nix b/pkgs/development/libraries/waylandpp/default.nix
index 5b02ce826ad..5fc466cec20 100644
--- a/pkgs/development/libraries/waylandpp/default.nix
+++ b/pkgs/development/libraries/waylandpp/default.nix
@@ -16,13 +16,13 @@ assert docSupport -> doxygen != null;
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "waylandpp";
-  version = "0.2.7";
+  version = "0.2.8";
 
   src = fetchFromGitHub {
     owner = "NilsBrause";
     repo = pname;
     rev = version;
-    sha256 = "1r4m0xhvwpcqxrqvp3hz1bzlkxqj2jiymd5r6hj8xjzz536hyprz";
+    sha256 = "1kxiqab48p0n97pwg8c2zx56wqq32m3rcq7qd2pjj33ipcanb3qq";
   };
 
   cmakeFlags = [ 
diff --git a/pkgs/development/libraries/wcslib/default.nix b/pkgs/development/libraries/wcslib/default.nix
index 0b57d099319..d13cdaff8c6 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";
   pname = "wcslib";
 
   buildInputs = [ flex ];
 
   src = fetchurl {
     url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/${pname}-${version}.tar.bz2";
-    sha256 ="0fbf6ypq7ag9dmjn65ja5vbfxswb6511bja8rbna25wmhns9x5b3";
+    sha256 ="0q99k61l2zh6irzkd5195aama37mlm0nivamz6j6r8l2ad1cy0ab";
   };
 
   prePatch = ''
diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix
index 4d968cc325e..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 = "udI1Jc/Y0iw3tdlkqf6ajOdYMEKi+NOSLnHmu8aMML0=";
+    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/wiiuse/default.nix b/pkgs/development/libraries/wiiuse/default.nix
new file mode 100644
index 00000000000..4dcc8a47105
--- /dev/null
+++ b/pkgs/development/libraries/wiiuse/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, bluez
+}:
+stdenv.mkDerivation rec {
+
+  pname = "WiiUse";
+  version = "0.15.5";
+
+  src = fetchFromGitHub {
+    owner = "wiiuse";
+    repo = "wiiuse";
+    rev = "${version}";
+    sha256 = "05gc3s0wxx7ga4g32yyibyxdh46rm9bbslblrc72ynrjxq98sg13";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ (lib.getDev bluez) ];
+
+  cmakeFlags = [ "-DBUILD_EXAMPLE_SDL=NO" ];
+
+  meta = with lib; {
+    description = "Feature complete cross-platform Wii Remote access library";
+    license = licenses.gpl3;
+    homepage = "https://github.com/wiiuse/wiiuse";
+    maintainers = with maintainers; [ shamilton ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/development/libraries/wlroots/default.nix b/pkgs/development/libraries/wlroots/default.nix
index a2a8f42be16..8e74f20b19d 100644
--- a/pkgs/development/libraries/wlroots/default.nix
+++ b/pkgs/development/libraries/wlroots/default.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland
 , libGL, wayland-protocols, libinput, libxkbcommon, pixman
 , xcbutilwm, libX11, libcap, xcbutilimage, xcbutilerrors, mesa
-, libpng, ffmpeg_4, linuxHeaders
+, libpng, ffmpeg, linuxHeaders
 }:
 
 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";
   };
 
   patches = [
@@ -26,16 +26,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_4 linuxHeaders
+    libpng ffmpeg linuxHeaders
   ];
 
-  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/wxSVG/default.nix b/pkgs/development/libraries/wxSVG/default.nix
index 602f3e670dd..9fa64be4d53 100644
--- a/pkgs/development/libraries/wxSVG/default.nix
+++ b/pkgs/development/libraries/wxSVG/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl
 , pkgconfig, wxGTK
-, ffmpeg, libexif
+, ffmpeg_3, libexif
 , cairo, pango }:
 
 stdenv.mkDerivation rec {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
 
-  propagatedBuildInputs = [ wxGTK ffmpeg libexif ];
+  propagatedBuildInputs = [ wxGTK ffmpeg_3 libexif ];
 
   buildInputs = [ cairo pango ];
 
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/3.0/default.nix b/pkgs/development/libraries/wxwidgets/3.0/default.nix
index 8de7f99fe5f..f125ac9dca0 100644
--- a/pkgs/development/libraries/wxwidgets/3.0/default.nix
+++ b/pkgs/development/libraries/wxwidgets/3.0/default.nix
@@ -1,8 +1,9 @@
 { stdenv, fetchFromGitHub, fetchurl, pkgconfig
-, gtk2, gtk3, libXinerama, libSM, libXxf86vm
-, xorgproto, gstreamer, gst-plugins-base, GConf, setfile
+, libXinerama, libSM, libXxf86vm
+, gtk2, GConf ? null, gtk3
+, xorgproto, gst_all_1, setfile
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
-, withMesa ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
+, withMesa ? libGLSupported
 , libGLU ? null, libGL ? null
 , compat24 ? false, compat26 ? true, unicode ? true
 , withGtk2 ? true
@@ -28,9 +29,10 @@ stdenv.mkDerivation rec {
     sha256 = "19mqglghjjqjgz4rbybn3qdgn2cz9xc511nq1pvvli9wx2k8syl1";
   };
 
-  buildInputs =
-    [ (if withGtk2 then gtk2 else gtk3) libXinerama libSM libXxf86vm xorgproto gstreamer
-      gst-plugins-base GConf ]
+  buildInputs = [
+    libXinerama libSM libXxf86vm xorgproto gst_all_1.gstreamer gst_all_1.gst-plugins-base
+  ] ++ optionals withGtk2 [ gtk2 GConf ]
+    ++ optional (!withGtk2) gtk3
     ++ optional withMesa libGLU
     ++ optional withWebKit webkitgtk
     ++ optionals stdenv.isDarwin [ setfile Carbon Cocoa Kernel QTKit ];
diff --git a/pkgs/development/libraries/wxwidgets/3.1/default.nix b/pkgs/development/libraries/wxwidgets/3.1/default.nix
index 99f86974cdb..0f30deb6c52 100644
--- a/pkgs/development/libraries/wxwidgets/3.1/default.nix
+++ b/pkgs/development/libraries/wxwidgets/3.1/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchFromGitHub, fetchurl, pkgconfig
-, gtk2, gtk3, libXinerama, libSM, libXxf86vm
-, xorgproto, gstreamer, gst-plugins-base, GConf, setfile
+, libXinerama, libSM, libXxf86vm
+, gtk2, GConf ? null, 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
@@ -17,19 +18,20 @@ 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 =
-    [ (if withGtk2 then gtk2 else gtk3) libXinerama libSM libXxf86vm xorgproto gstreamer
-      gst-plugins-base GConf ]
+  buildInputs = [
+    libXinerama libSM libXxf86vm xorgproto gst_all_1.gstreamer gst_all_1.gst-plugins-base
+  ] ++ optionals withGtk2 [ gtk2 GConf ]
+    ++ optional (!withGtk2) gtk3
     ++ optional withMesa libGLU
     ++ optional withWebKit webkitgtk
     ++ optionals stdenv.isDarwin [ setfile Carbon Cocoa Kernel QTKit ];
diff --git a/pkgs/development/libraries/x265/default.nix b/pkgs/development/libraries/x265/default.nix
index cfa19e5419f..ae3392aeb12 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,54 @@ 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"
+    "-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..33a4fb93cba 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.16" "4937f2f49ff27e39a42150e928c8b45877b0bf456510f0785f50159a5cb6bf70";
 }
diff --git a/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix b/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
index 994c2864e7f..90265d61c83 100644
--- a/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
+++ b/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal-gtk";
-  version = "1.6.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "flatpak";
     repo = pname;
     rev = version;
-    sha256 = "1gpbjkfkrpk96krc1zbccrq7sih282mg303ifxaaxbnj6d8drm5h";
+    sha256 = "183iha9dxmvprn99ymgz17jx1lyn1fj5jyj6ghxl716zn9mxmird";
   };
 
   nativeBuildInputs = [
@@ -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/xdg-desktop-portal-wlr/default.nix b/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix
new file mode 100644
index 00000000000..c6faa4fc017
--- /dev/null
+++ b/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub
+, meson, ninja, pkgconfig, wayland-protocols
+, pipewire, wayland, elogind, systemd, libdrm }:
+
+stdenv.mkDerivation rec {
+  pname = "xdg-desktop-portal-wlr";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "emersion";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "12k92h9dmn1fyn8nzxk69cyv0gnb7g9gj7a66mw5dcl5zqnl07nc";
+  };
+
+  nativeBuildInputs = [ meson ninja pkgconfig wayland-protocols ];
+  buildInputs = [ pipewire wayland elogind systemd libdrm ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/emersion/xdg-desktop-portal-wlr";
+    description = "xdg-desktop-portal backend for wlroots";
+    maintainers = with maintainers; [ minijackson ];
+    platforms = platforms.linux;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/libraries/xdg-desktop-portal/default.nix b/pkgs/development/libraries/xdg-desktop-portal/default.nix
index 02c039b8eab..b06edc63273 100644
--- a/pkgs/development/libraries/xdg-desktop-portal/default.nix
+++ b/pkgs/development/libraries/xdg-desktop-portal/default.nix
@@ -6,7 +6,7 @@
 , pkgconfig
 , libxml2
 , glib
-, pipewire_0_2
+, pipewire
 , fontconfig
 , flatpak
 , gsettings-desktop-schemas
@@ -21,7 +21,7 @@
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal";
-  version = "1.6.0";
+  version = "1.7.2";
 
   outputs = [ "out" "installedTests" ];
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     owner = "flatpak";
     repo = pname;
     rev = version;
-    sha256 = "0fbsfpilwbv7j6cimsmmz6g0r96bw0ziwyk9z4zg2rd1mfkmmp9a";
+    sha256 = "0rkwpsmbn3d3spkzc2zsd50l2r8pp4la390zcpsawaav8w7ql7xm";
   };
 
   patches = [
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib
-    pipewire_0_2
+    pipewire
     fontconfig
     flatpak
     acl
@@ -61,10 +61,6 @@ stdenv.mkDerivation rec {
     json-glib
   ];
 
-  # Seems to get stuck after "PASS: test-portals 39 /portal/inhibit/monitor"
-  # TODO: investigate!
-  doCheck = false;
-
   configureFlags = [
     "--enable-installed-tests"
   ];
diff --git a/pkgs/development/libraries/xercesc/default.nix b/pkgs/development/libraries/xercesc/default.nix
index 3873fe05e6b..8c7b1232014 100644
--- a/pkgs/development/libraries/xercesc/default.nix
+++ b/pkgs/development/libraries/xercesc/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xerces-c";
-  version = "3.2.2";
+  version = "3.2.3";
 
   src = fetchurl {
     url = "mirror://apache/xerces/c/3/sources/${pname}-${version}.tar.gz";
-    sha256 = "04q4c460wqzyzmprjm22igcm1d52xr20ajxnhr33nv95mbw92qfx";
+    sha256 = "0zicsydx6s7carwr7q0csgkg1xncibd6lfp5chg2v2gvn54zr5pv";
   };
 
   # Disable SSE2 extensions on platforms for which they are not enabled by default
diff --git a/pkgs/development/libraries/xine-lib/default.nix b/pkgs/development/libraries/xine-lib/default.nix
index aa9600085c0..4322278e2fd 100644
--- a/pkgs/development/libraries/xine-lib/default.nix
+++ b/pkgs/development/libraries/xine-lib/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, fetchpatch, pkgconfig, xorg, alsaLib, libGLU, libGL, aalib
-, libvorbis, libtheora, speex, zlib, perl, ffmpeg
+, libvorbis, libtheora, speex, zlib, perl, ffmpeg_3
 , flac, libcaca, libpulseaudio, libmng, libcdio, libv4l, vcdimager
 , libmpcdec
 }:
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     xorg.libX11 xorg.libXv xorg.libXinerama xorg.libxcb xorg.libXext
-    alsaLib libGLU libGL aalib libvorbis libtheora speex perl ffmpeg flac
+    alsaLib libGLU libGL aalib libvorbis libtheora speex perl ffmpeg_3 flac
     libcaca libpulseaudio libmng libcdio libv4l vcdimager libmpcdec
   ];
 
diff --git a/pkgs/development/libraries/xmlrpc-c/default.nix b/pkgs/development/libraries/xmlrpc-c/default.nix
index d9786d26a71..41cdbf0b4f1 100644
--- a/pkgs/development/libraries/xmlrpc-c/default.nix
+++ b/pkgs/development/libraries/xmlrpc-c/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, curl, libxml2 }:
 
 stdenv.mkDerivation rec {
-  name = "xmlrpc-c-1.39.12";
+  name = "xmlrpc-c-1.51.06";
 
   src = fetchurl {
     url = "mirror://sourceforge/xmlrpc-c/${name}.tgz";
-    sha256 = "026fh7w7y3q9pvxd09i5d4hq3l6gd81n9k19yq4zwbc398kg6c6q";
+    sha256 = "1l4zz22q10081vr06b8sii0l3krr64xyiywz6rcladw8kiyxip06";
   };
 
   buildInputs = [ curl libxml2 ];
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 9d2ed44cb4b..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.3";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "Cyan4973";
     repo = "xxHash";
     rev = "v${version}";
-    sha256 = "0bin0jch6lbzl4f8y052a7azfgq2n7iwqihzgqmcccv5vq4vcx5a";
+    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/libraries/zlog/default.nix b/pkgs/development/libraries/zlog/default.nix
index 4788613a3dc..f0ca99b7667 100644
--- a/pkgs/development/libraries/zlog/default.nix
+++ b/pkgs/development/libraries/zlog/default.nix
@@ -1,33 +1,23 @@
-{ stdenv, fetchzip }:
+{ stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "1.2.14";
+  version = "1.2.15";
   pname = "zlog";
 
-  src = fetchzip {
-    name = "${pname}-${version}-src";
-    url = "https://github.com/HardySimpson/zlog/archive/${version}.tar.gz";
-    sha256 = "1qcrfmh2vbarkx7ij3gwk174qmgmhm2j336bfaakln1ixd9lkxa5";
+  src = fetchFromGitHub {
+    owner = "HardySimpson";
+    repo = pname;
+    rev = version;
+    sha256 = "10hzifgpml7jm43y6v8c8q0cr9ziyx9qxznafxyw6glhnlqnb7pb";
   };
 
-  configurePhase = ''
-    sed -i 's;-Werror;;' src/makefile
-  '';
-
-  buildPhase = ''
-    mkdir -p $out
-    make PREFIX=$out
-  '';
-
-  installPhase = ''
-    make PREFIX=$out install
-  '';
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = with stdenv.lib; {
     description= "Reliable, high-performance, thread safe, flexible, clear-model, pure C logging library";
-    homepage = "http://hardysimpson.github.com/zlog";
+    homepage = "https://hardysimpson.github.io/zlog/";
     license = licenses.lgpl21;
-    platforms = platforms.linux; # cannot test on something else
+    platforms = platforms.unix;
     maintainers = [ maintainers.matthiasbeyer ];
   };
 
diff --git a/pkgs/development/libraries/zziplib/default.nix b/pkgs/development/libraries/zziplib/default.nix
index 8078a3c360c..228dfdcf77a 100644
--- a/pkgs/development/libraries/zziplib/default.nix
+++ b/pkgs/development/libraries/zziplib/default.nix
@@ -1,47 +1,62 @@
-{ docbook_xml_dtd_412, fetchurl, stdenv, perl, python2, zip, xmlto, zlib, fetchpatch }:
+{ stdenv
+, perl
+, pkg-config
+, fetchFromGitHub
+, fetchpatch
+, zip
+, unzip
+, python3
+, xmlto
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "zziplib";
-  version = "0.13.69";
+  version = "0.13.71";
 
-  src = fetchurl {
-    url = "https://github.com/gdraheim/zziplib/archive/v${version}.tar.gz";
-    sha256 = "0i052a7shww0fzsxrdp3rd7g4mbzx7324a8ysbc0br7frpblcql4";
+  src = fetchFromGitHub {
+    owner = "gdraheim";
+    repo = "zziplib";
+    rev = "v${version}";
+    sha256 = "P+7D57sc2oIABhk3k96aRILpGnsND5SLXHh2lqr9O4E=";
   };
 
   patches = [
+    # Install man pages
     (fetchpatch {
-      name = "CVE-2018-17828.patch";
-      url = "https://github.com/gdraheim/zziplib/commit/f609ae8971f3c0ce6.diff";
-      sha256 = "0jhiz4fgr93wzh6q03avn95b2nsf6402jaki6hxirxyhs5v9ahry";
+      url = "https://github.com/gdraheim/zziplib/commit/5583ccc7a247ee27556ede344e93d3ac1dc72e9b.patch";
+      sha256 = "wVExEZN8Ml1/3GicB0ZYsLVS3KJ8BSz8i4Gu46naz1Y=";
+      excludes = [ "GNUmakefile" ];
     })
 
+    # Fix man page formatting
     (fetchpatch {
-      name = "CVE-2018-16548-part1.patch";
-      url = "https://github.com/gdraheim/zziplib/commit/9411bde3e4a70a81ff3ffd256b71927b2d90dcbb.patch";
-      sha256 = "0cy8i182zbvcqzs5z2j13d5sl7hbh59pkgw4xkyg5yz739q4fp9b";
-    })
-    (fetchpatch {
-      name = "CVE-2018-16548-part2.patch";
-      url = "https://github.com/gdraheim/zziplib/commit/d2e5d5c53212e54a97ad64b793a4389193fec687.patch";
-      sha256 = "153wd4vab8xqj9avcpx8g2zw9qsp9nkaqi7yc65pz3r7xfcxwdla";
-    })
-    (fetchpatch {
-      name = "CVE-2018-16548-part3.patch";
-      url = "https://github.com/gdraheim/zziplib/commit/0e1dadb05c1473b9df2d7b8f298dab801778ef99.patch";
-      sha256 = "0fs6dns8l7dz5a900397g8b7x62z72b0pbpdmwk1hnx6vb7z5rz5";
+      url = "https://github.com/gdraheim/zziplib/commit/22ed64f13dc239f86664c60496261f544bce1088.patch";
+      sha256 = "ScFVWLc4LQPqkcHn9HK/VkLula4b5HzuYl0b5vi4Ikc=";
     })
   ];
-  postPatch = ''
-    sed -i -e s,--export-dynamic,, configure
-  '';
 
-  buildInputs = [ docbook_xml_dtd_412 perl python2 zip xmlto zlib ];
+  nativeBuildInputs = [
+    perl
+    pkg-config
+    zip
+    python3
+    xmlto
+  ];
+
+  buildInputs = [
+    zlib
+  ];
+
+  checkInputs = [
+    unzip
+  ];
 
   # tests are broken (https://github.com/gdraheim/zziplib/issues/20),
   # and test/zziptests.py requires network access
   # (https://github.com/gdraheim/zziplib/issues/24)
   doCheck = false;
+  checkTarget = "check";
 
   meta = with stdenv.lib; {
     description = "Library to extract data from files archived in a zip file";
@@ -60,6 +75,6 @@ stdenv.mkDerivation rec {
     homepage = "http://zziplib.sourceforge.net/";
 
     maintainers = [ ];
-    platforms = python2.meta.platforms;
+    platforms = python3.meta.platforms;
   };
 }
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 303689dce4a..bb14f562d70 100644
--- a/pkgs/development/lua-modules/generated-packages.nix
+++ b/pkgs/development/lua-modules/generated-packages.nix
@@ -15,7 +15,7 @@ alt-getopt = buildLuarocksPackage {
   version = "0.8.0-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/alt-getopt-0.8.0-1.src.rock";
+    url    = "mirror://luarocks/alt-getopt-0.8.0-1.src.rock";
     sha256 = "1mi97dqb97sf47vb6wrk12yf1yxcaz0asr9gbgwyngr5n1adh5i3";
   };
   disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
@@ -25,9 +25,7 @@ alt-getopt = buildLuarocksPackage {
     homepage = "https://github.com/cheusov/lua-alt-getopt";
     description = "Process application arguments the same way as getopt_long";
     maintainers = with maintainers; [ arobyn ];
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 ansicolors = buildLuarocksPackage {
@@ -35,7 +33,7 @@ ansicolors = buildLuarocksPackage {
   version = "1.0.2-3";
 
   src = fetchurl {
-    url    = "https://luarocks.org/ansicolors-1.0.2-3.src.rock";
+    url    = "mirror://luarocks/ansicolors-1.0.2-3.src.rock";
     sha256 = "1mhmr090y5394x1j8p44ws17sdwixn5a0r4i052bkfgk3982cqfz";
   };
   disabled = (luaOlder "5.1");
@@ -44,28 +42,24 @@ ansicolors = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/kikito/ansicolors.lua";
     description = "Library for color Manipulation.";
-    license = {
-      fullName = "MIT <http://opensource.org/licenses/MIT>";
-    };
+    license.fullName = "MIT <http://opensource.org/licenses/MIT>";
   };
 };
 argparse = buildLuarocksPackage {
   pname = "argparse";
-  version = "0.6.0-1";
+  version = "0.7.0-1";
 
   src = fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/argparse-0.6.0-1.src.rock";
-    sha256 = "10ic5wppyghd1lmgwgl0lb40pv8z9fi9i87080axxg8wsr19y0p4";
+    url    = "mirror://luarocks/argparse-0.7.0-1.src.rock";
+    sha256 = "1jvar543d21x7wq8rxxaaf7h1ricd7zvxc16xwjblwa9ffgcmcs7";
   };
   disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
   propagatedBuildInputs = [ lua ];
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/mpeterv/argparse";
+    homepage = "https://github.com/luarocks/argparse";
     description = "A feature-rich command-line argument parser";
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 basexx = buildLuarocksPackage {
@@ -73,7 +67,7 @@ basexx = buildLuarocksPackage {
   version = "0.4.1-1";
 
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/basexx-0.4.1-1.rockspec";
+    url    = "mirror://luarocks/basexx-0.4.1-1.rockspec";
     sha256 = "0kmydxm2wywl18cgj303apsx7hnfd68a9hx9yhq10fj7yfcxzv5f";
   }).outPath;
 
@@ -88,9 +82,7 @@ basexx = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/aiq/basexx";
     description = "A base2, base16, base32, base64 and base85 library for Lua";
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 binaryheap = buildLuarocksPackage {
@@ -98,7 +90,7 @@ binaryheap = buildLuarocksPackage {
   version = "0.4-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/binaryheap-0.4-1.src.rock";
+    url    = "mirror://luarocks/binaryheap-0.4-1.src.rock";
     sha256 = "11rd8r3bpinfla2965jgjdv1hilqdc1q6g1qla5978d7vzg19kpc";
   };
   disabled = (luaOlder "5.1");
@@ -108,9 +100,7 @@ binaryheap = buildLuarocksPackage {
     homepage = "https://github.com/Tieske/binaryheap.lua";
     description = "Binary heap implementation in pure Lua";
     maintainers = with maintainers; [ vcunat ];
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 bit32 = buildLuarocksPackage {
@@ -118,7 +108,7 @@ bit32 = buildLuarocksPackage {
   version = "5.3.0-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/bit32-5.3.0-1.src.rock";
+    url    = "mirror://luarocks/bit32-5.3.0-1.src.rock";
     sha256 = "19i7kc2pfg9hc6qjq4kka43q6qk71bkl2rzvrjaks6283q6wfyzy";
   };
   disabled = (luaOlder "5.1");
@@ -128,23 +118,21 @@ bit32 = buildLuarocksPackage {
     homepage = "http://www.lua.org/manual/5.2/manual.html#6.7";
     description = "Lua 5.2 bit manipulation library";
     maintainers = with maintainers; [ lblasc ];
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 busted = buildLuarocksPackage {
   pname = "busted";
-  version = "2.0.rc13-0";
+  version = "2.0.0-1";
 
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/busted-2.0.rc13-0.rockspec";
-    sha256 = "0hrvhg1324q5ra6cpjh1y3by6lrzs0ljah4jl48l8xlgw1z9z1q5";
+    url    = "mirror://luarocks/busted-2.0.0-1.rockspec";
+    sha256 = "0cbw95bjxl667n9apcgng2kr5hq6bc7gp3vryw4dzixmfabxkcbw";
   }).outPath;
 
   src = fetchurl {
-    url    = "https://github.com/Olivine-Labs/busted/archive/v2.0.rc13-0.tar.gz";
-    sha256 = "0m72bldn1r6j94ahcfmpaq1mmysrshf9qi9fjas7hpal0jp8ivvl";
+    url    = "https://github.com/Olivine-Labs/busted/archive/v2.0.0.tar.gz";
+    sha256 = "1ps7b3f4diawfj637mibznaw4x08gn567pyni0m2s50hrnw4v8zx";
   };
 
   disabled = (luaOlder "5.1");
@@ -153,9 +141,7 @@ busted = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "http://olivinelabs.com/busted/";
     description = "Elegant Lua unit testing.";
-    license = {
-      fullName = "MIT <http://opensource.org/licenses/MIT>";
-    };
+    license.fullName = "MIT <http://opensource.org/licenses/MIT>";
   };
 };
 cassowary = buildLuarocksPackage {
@@ -169,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";
   };
 };
@@ -180,18 +166,16 @@ cjson = buildLuarocksPackage {
   version = "2.1.0.6-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/lua-cjson-2.1.0.6-1.src.rock";
+    url    = "mirror://luarocks/lua-cjson-2.1.0.6-1.src.rock";
     sha256 = "0dqqkn0aygc780kiq2lbydb255r8is7raf7md0gxdjcagp8afps5";
   };
   disabled = (luaOlder "5.1");
   propagatedBuildInputs = [ lua ];
 
   meta = with stdenv.lib; {
-    homepage = "https://www.kyne.com.au/~mark/software/lua-cjson.php";
+    homepage = "http://www.kyne.com.au/~mark/software/lua-cjson.php";
     description = "A fast JSON encoding/parsing module";
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 compat53 = buildLuarocksPackage {
@@ -199,7 +183,7 @@ compat53 = buildLuarocksPackage {
   version = "0.7-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/compat53-0.7-1.src.rock";
+    url    = "mirror://luarocks/compat53-0.7-1.src.rock";
     sha256 = "0kpaxbpgrwjn4jjlb17fn29a09w6lw732d21bi0302kqcaixqpyb";
   };
   disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
@@ -209,9 +193,7 @@ compat53 = buildLuarocksPackage {
     homepage = "https://github.com/keplerproject/lua-compat-5.3";
     description = "Compatibility module providing Lua-5.3-style APIs for Lua 5.2 and 5.1";
     maintainers = with maintainers; [ vcunat ];
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 cosmo = buildLuarocksPackage {
@@ -236,25 +218,23 @@ coxpcall = buildLuarocksPackage {
   version = "1.17.0-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/coxpcall-1.17.0-1.src.rock";
+    url    = "mirror://luarocks/coxpcall-1.17.0-1.src.rock";
     sha256 = "0n1jmda4g7x06458596bamhzhcsly6x0p31yp6q3jz4j11zv1zhi";
   };
 
   meta = with stdenv.lib; {
     homepage = "http://keplerproject.github.io/coxpcall";
     description = "Coroutine safe xpcall and pcall";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 cqueues = buildLuarocksPackage {
   pname = "cqueues";
-  version = "20190731.52-0";
+  version = "20190813.52-0";
 
   src = fetchurl {
-    url    = "https://luarocks.org/cqueues-20190731.52-0.src.rock";
-    sha256 = "07rs34amsxf2bc5ccqdad0c63c70737r54316cbd9qh1a2wbvz8s";
+    url    = "mirror://luarocks/cqueues-20190813.52-0.src.rock";
+    sha256 = "1mfhana4xdfddzxmr7vkvm65679hx549f9k1rmsrz6is2gji5wvi";
   };
   disabled = (lua.luaversion != "5.2");
   propagatedBuildInputs = [ lua ];
@@ -263,9 +243,7 @@ cqueues = buildLuarocksPackage {
     homepage = "http://25thandclement.com/~william/projects/cqueues.html";
     description = "Continuation Queues: Embeddable asynchronous networking, threading, and notification framework for Lua on Unix.";
     maintainers = with maintainers; [ vcunat ];
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 cyrussasl = buildLuarocksPackage {
@@ -273,7 +251,7 @@ cyrussasl = buildLuarocksPackage {
   version = "1.1.0-1";
 
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/cyrussasl-1.1.0-1.rockspec";
+    url    = "mirror://luarocks/cyrussasl-1.1.0-1.rockspec";
     sha256 = "0zy9l00l7kr3sq8phdm52jqhlqy35vdv6rdmm8mhjihcbx1fsplc";
   }).outPath;
 
@@ -290,12 +268,10 @@ cyrussasl = buildLuarocksPackage {
   propagatedBuildInputs = [ lua ];
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/JorjBauer/lua-cyrussasl";
+    homepage = "http://github.com/JorjBauer/lua-cyrussasl";
     description = "Cyrus SASL library for Lua 5.1+";
     maintainers = with maintainers; [ vcunat ];
-    license = {
-      fullName = "BSD";
-    };
+    license.fullName = "BSD";
   };
 };
 digestif = buildLuarocksPackage {
@@ -312,9 +288,7 @@ digestif = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/astoff/digestif/";
     description = "A code analyzer for TeX";
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 dkjson = buildLuarocksPackage {
@@ -322,7 +296,7 @@ dkjson = buildLuarocksPackage {
   version = "2.5-2";
 
   src = fetchurl {
-    url    = "https://luarocks.org/dkjson-2.5-2.src.rock";
+    url    = "mirror://luarocks/dkjson-2.5-2.src.rock";
     sha256 = "1qy9bzqnb9pf9d48hik4iq8h68aw3270kmax7mmpvvpw7kkyp483";
   };
   disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
@@ -331,9 +305,7 @@ dkjson = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "http://dkolf.de/src/dkjson-lua.fsl/";
     description = "David Kolf's JSON module for Lua";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 fifo = buildLuarocksPackage {
@@ -341,7 +313,7 @@ fifo = buildLuarocksPackage {
   version = "0.2-0";
 
   src = fetchurl {
-    url    = "https://luarocks.org/fifo-0.2-0.src.rock";
+    url    = "mirror://luarocks/fifo-0.2-0.src.rock";
     sha256 = "082c5g1m8brnsqj5gnjs65bm7z50l6b05cfwah14lqaqsr5a5pjk";
   };
   propagatedBuildInputs = [ lua ];
@@ -349,9 +321,7 @@ fifo = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/daurnimator/fifo.lua";
     description = "A lua library/'class' that implements a FIFO";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 http = buildLuarocksPackage {
@@ -359,7 +329,7 @@ http = buildLuarocksPackage {
   version = "0.3-0";
 
   src = fetchurl {
-    url    = "https://luarocks.org/http-0.3-0.src.rock";
+    url    = "mirror://luarocks/http-0.3-0.src.rock";
     sha256 = "0vvl687bh3cvjjwbyp9cphqqccm3slv4g7y3h03scp3vpq9q4ccq";
   };
   disabled = (luaOlder "5.1");
@@ -369,9 +339,7 @@ http = buildLuarocksPackage {
     homepage = "https://github.com/daurnimator/lua-http";
     description = "HTTP library for Lua";
     maintainers = with maintainers; [ vcunat ];
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 inspect = buildLuarocksPackage {
@@ -379,7 +347,7 @@ inspect = buildLuarocksPackage {
   version = "3.1.1-0";
 
   src = fetchurl {
-    url    = "https://luarocks.org/inspect-3.1.1-0.src.rock";
+    url    = "mirror://luarocks/inspect-3.1.1-0.src.rock";
     sha256 = "0k4g9ahql83l4r2bykfs6sacf9l1wdpisav2i0z55fyfcdv387za";
   };
   disabled = (luaOlder "5.1");
@@ -388,9 +356,34 @@ inspect = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/kikito/inspect.lua";
     description = "Lua table visualizer, ideal for debugging";
-    license = {
-      fullName = "MIT <http://opensource.org/licenses/MIT>";
-    };
+    license.fullName = "MIT <http://opensource.org/licenses/MIT>";
+  };
+};
+ldbus = buildLuarocksPackage {
+  pname = "ldbus";
+  version = "scm-0";
+
+  knownRockspec = (fetchurl {
+    url    = "https://luarocks.org/dev/ldbus-scm-0.rockspec";
+    sha256 = "1yhkw5y8h1qf44vx31934k042cmnc7zcv2k0pv0g27wsmlxrlznx";
+  }).outPath;
+
+  src = fetchgit ( removeAttrs (builtins.fromJSON ''{
+  "url": "git://github.com/daurnimator/ldbus.git",
+  "rev": "9e176fe851006037a643610e6d8f3a8e597d4073",
+  "date": "2019-08-16T14:26:05+10:00",
+  "sha256": "06wcz4i5b7kphqbry274q3ivnsh331rxiyf7n4qk3zx2kvarq08s",
+  "fetchSubmodules": true
+}
+ '') ["date"]) ;
+
+  disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
+  propagatedBuildInputs = [ lua ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/daurnimator/ldbus";
+    description = "A Lua library to access dbus.";
+    license.fullName = "MIT/X11";
   };
 };
 ldoc = buildLuarocksPackage {
@@ -398,7 +391,7 @@ ldoc = buildLuarocksPackage {
   version = "1.4.6-2";
 
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/ldoc-1.4.6-2.rockspec";
+    url    = "mirror://luarocks/ldoc-1.4.6-2.rockspec";
     sha256 = "14yb0qihizby8ja0fa82vx72vk903mv6m7izn39mzfrgb8mha0pm";
   }).outPath;
 
@@ -412,9 +405,7 @@ ldoc = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "http://stevedonovan.github.com/ldoc";
     description = "A Lua Documentation Tool";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 lgi = buildLuarocksPackage {
@@ -422,18 +413,16 @@ lgi = buildLuarocksPackage {
   version = "0.9.2-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/lgi-0.9.2-1.src.rock";
+    url    = "mirror://luarocks/lgi-0.9.2-1.src.rock";
     sha256 = "07ajc5pdavp785mdyy82n0w6d592n96g95cvq025d6i0bcm2cypa";
   };
   disabled = (luaOlder "5.1");
   propagatedBuildInputs = [ lua ];
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/pavouk/lgi";
+    homepage = "http://github.com/pavouk/lgi";
     description = "Lua bindings to GObject libraries";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 linenoise = buildLuarocksPackage {
@@ -456,9 +445,7 @@ linenoise = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/hoelzro/lua-linenoise";
     description = "A binding for the linenoise command line library";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 ljsyscall = buildLuarocksPackage {
@@ -466,7 +453,7 @@ ljsyscall = buildLuarocksPackage {
   version = "0.12-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/ljsyscall-0.12-1.src.rock";
+    url    = "mirror://luarocks/ljsyscall-0.12-1.src.rock";
     sha256 = "12gs81lnzpxi5d409lbrvjfflld5l2xsdkfhkz93xg7v65sfhh2j";
   };
   disabled = (lua.luaversion != "5.1");
@@ -476,9 +463,7 @@ ljsyscall = buildLuarocksPackage {
     homepage = "http://www.myriabit.com/ljsyscall/";
     description = "LuaJIT Linux syscall FFI";
     maintainers = with maintainers; [ lblasc ];
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 lpeg = buildLuarocksPackage {
@@ -486,7 +471,7 @@ lpeg = buildLuarocksPackage {
   version = "1.0.2-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/lpeg-1.0.2-1.src.rock";
+    url    = "mirror://luarocks/lpeg-1.0.2-1.src.rock";
     sha256 = "1g5zmfh0x7drc6mg2n0vvlga2hdc08cyp3hnb22mh1kzi63xdl70";
   };
   disabled = (luaOlder "5.1");
@@ -496,9 +481,7 @@ lpeg = buildLuarocksPackage {
     homepage = "http://www.inf.puc-rio.br/~roberto/lpeg.html";
     description = "Parsing Expression Grammars For Lua";
     maintainers = with maintainers; [ vyp ];
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 lpeg_patterns = buildLuarocksPackage {
@@ -506,7 +489,7 @@ lpeg_patterns = buildLuarocksPackage {
   version = "0.5-0";
 
   src = fetchurl {
-    url    = "https://luarocks.org/lpeg_patterns-0.5-0.src.rock";
+    url    = "mirror://luarocks/lpeg_patterns-0.5-0.src.rock";
     sha256 = "0mlw4nayrsdxrh98i26avz5i4170a9brciybw88kks496ra36v8f";
   };
   propagatedBuildInputs = [ lua lpeg ];
@@ -514,18 +497,16 @@ lpeg_patterns = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/daurnimator/lpeg_patterns/archive/v0.5.zip";
     description = "a collection of LPEG patterns";
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 lpeglabel = buildLuarocksPackage {
   pname = "lpeglabel";
-  version = "1.5.0-1";
+  version = "1.6.0-1";
 
   src = fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/lpeglabel-1.5.0-1.src.rock";
-    sha256 = "068mwvwwn5n69pdm04qnk354391w9mk34jsczxql0xi5qgmz6w8j";
+    url    = "mirror://luarocks/lpeglabel-1.6.0-1.src.rock";
+    sha256 = "0mihrs0gcj40gsjbh4x9b5pm92w2vdwwd1f3fyibyd4a8r1h93r9";
   };
   disabled = (luaOlder "5.1");
   propagatedBuildInputs = [ lua ];
@@ -533,9 +514,7 @@ lpeglabel = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/sqmedeiros/lpeglabel/";
     description = "Parsing Expression Grammars For Lua with Labeled Failures";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 lpty = buildLuarocksPackage {
@@ -543,7 +522,7 @@ lpty = buildLuarocksPackage {
   version = "1.2.2-1";
 
   src = fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/lpty-1.2.2-1.src.rock";
+    url    = "mirror://luarocks/lpty-1.2.2-1.src.rock";
     sha256 = "1vxvsjgjfirl6ranz6k4q4y2dnxqh72bndbk400if22x8lqbkxzm";
   };
   disabled = (luaOlder "5.1");
@@ -552,9 +531,7 @@ lpty = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "http://www.tset.de/lpty/";
     description = "A simple facility for lua to control other programs via PTYs.";
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 lrexlib-gnu = buildLuarocksPackage {
@@ -562,18 +539,16 @@ lrexlib-gnu = buildLuarocksPackage {
   version = "2.9.0-1";
 
   src = fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/lrexlib-gnu-2.9.0-1.src.rock";
+    url    = "mirror://luarocks/lrexlib-gnu-2.9.0-1.src.rock";
     sha256 = "036rda4rji1pbnbxk1nzjy5zmigdsiacqbzrbvciwq3lrxa2j5s2";
   };
   disabled = (luaOlder "5.1");
   propagatedBuildInputs = [ lua ];
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/rrthomas/lrexlib";
+    homepage = "http://github.com/rrthomas/lrexlib";
     description = "Regular expression library binding (GNU flavour).";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 lrexlib-pcre = buildLuarocksPackage {
@@ -581,19 +556,17 @@ lrexlib-pcre = buildLuarocksPackage {
   version = "2.9.0-1";
 
   src = fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/lrexlib-pcre-2.9.0-1.src.rock";
+    url    = "mirror://luarocks/lrexlib-pcre-2.9.0-1.src.rock";
     sha256 = "1nqai27lbd85mcjf5cb05dbdfg460vmp8cr0lmb8dd63ivk8cbvx";
   };
   disabled = (luaOlder "5.1");
   propagatedBuildInputs = [ lua ];
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/rrthomas/lrexlib";
+    homepage = "http://github.com/rrthomas/lrexlib";
     description = "Regular expression library binding (PCRE flavour).";
     maintainers = with maintainers; [ vyp ];
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 lrexlib-posix = buildLuarocksPackage {
@@ -601,18 +574,16 @@ lrexlib-posix = buildLuarocksPackage {
   version = "2.9.0-1";
 
   src = fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/lrexlib-posix-2.9.0-1.src.rock";
+    url    = "mirror://luarocks/lrexlib-posix-2.9.0-1.src.rock";
     sha256 = "0ifpybf4m94g1nk70l0f5m45gph0rbp5wrxrl1hnw8ibv3mc1b1r";
   };
   disabled = (luaOlder "5.1");
   propagatedBuildInputs = [ lua ];
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/rrthomas/lrexlib";
+    homepage = "http://github.com/rrthomas/lrexlib";
     description = "Regular expression library binding (POSIX flavour).";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 ltermbox = buildLuarocksPackage {
@@ -620,7 +591,7 @@ ltermbox = buildLuarocksPackage {
   version = "0.2-1";
 
   src = fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/ltermbox-0.2-1.src.rock";
+    url    = "mirror://luarocks/ltermbox-0.2-1.src.rock";
     sha256 = "08jqlmmskbi1ml1i34dlmg6hxcs60nlm32dahpxhcrgjnfihmyn8";
   };
   disabled = (luaOlder "5.1");
@@ -629,9 +600,7 @@ ltermbox = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "http://code.google.com/p/termbox";
     description = "A termbox library package";
-    license = {
-      fullName = "New BSD License";
-    };
+    license.fullName = "New BSD License";
   };
 };
 lua-cmsgpack = buildLuarocksPackage {
@@ -639,7 +608,7 @@ lua-cmsgpack = buildLuarocksPackage {
   version = "0.4.0-0";
 
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/lua-cmsgpack-0.4.0-0.rockspec";
+    url    = "mirror://luarocks/lua-cmsgpack-0.4.0-0.rockspec";
     sha256 = "10cvr6knx3qvjcw1q9v05f2qy607mai7lbq321nx682aa0n1fzin";
   }).outPath;
 
@@ -656,11 +625,9 @@ lua-cmsgpack = buildLuarocksPackage {
   propagatedBuildInputs = [ lua ];
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/antirez/lua-cmsgpack";
+    homepage = "http://github.com/antirez/lua-cmsgpack";
     description = "MessagePack C implementation and bindings for Lua 5.1/5.2/5.3";
-    license = {
-      fullName = "Two-clause BSD";
-    };
+    license.fullName = "Two-clause BSD";
   };
 };
 lua-iconv = buildLuarocksPackage {
@@ -668,7 +635,7 @@ lua-iconv = buildLuarocksPackage {
   version = "7-3";
 
   src = fetchurl {
-    url    = "https://luarocks.org/lua-iconv-7-3.src.rock";
+    url    = "mirror://luarocks/lua-iconv-7-3.src.rock";
     sha256 = "03xibhcqwihyjhxnzv367q4bfmzmffxl49lmjsq77g0prw8v0q83";
   };
   disabled = (luaOlder "5.1");
@@ -677,9 +644,7 @@ lua-iconv = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "http://ittner.github.com/lua-iconv/";
     description = "Lua binding to the iconv";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 lua-lsp = buildLuarocksPackage {
@@ -687,15 +652,15 @@ lua-lsp = buildLuarocksPackage {
   version = "scm-2";
 
   knownRockspec = (fetchurl {
-    url    = "http://luarocks.org/dev/lua-lsp-scm-2.rockspec";
+    url    = "mirror://luarocks/lua-lsp-scm-2.rockspec";
     sha256 = "0qk3i6j0km4d1fs61fxhkmnbxmgpq24nygr8wknl6hbj2kya25rb";
   }).outPath;
 
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
   "url": "git://github.com/Alloyed/lua-lsp",
-  "rev": "0de511803ed616214333210a2d003cf05a64dc18",
-  "date": "2018-09-08T10:11:54-04:00",
-  "sha256": "15dnsyh5664vi7qn73y2r114rhs5l9lfi84pwqkq5cafkiiy49qa",
+  "rev": "905e71f9a97ea6366deb386503f9d976c87d9bab",
+  "date": "2019-09-22T09:46:00-04:00",
+  "sha256": "1mlgb2dp1ah76hjkbkwz0dp2y5mn491v5wf81nm086rb2fa3rzcg",
   "fetchSubmodules": true
 }
  '') ["date"]) ;
@@ -706,28 +671,24 @@ lua-lsp = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/Alloyed/lua-lsp";
     description = "No summary";
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 lua-messagepack = buildLuarocksPackage {
   pname = "lua-messagepack";
-  version = "0.5.1-2";
+  version = "0.5.2-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/lua-messagepack-0.5.1-2.src.rock";
-    sha256 = "0bsdzdd24p9z3j4z1avw7qaqx87baa1pm58v275pw4h6n72z492g";
+    url    = "mirror://luarocks/lua-messagepack-0.5.2-1.src.rock";
+    sha256 = "0hqahc84ncl8g4miif14sdkzyvnpqip48886sagz9drl52qvgcfb";
   };
   disabled = (luaOlder "5.1");
   propagatedBuildInputs = [ lua ];
 
   meta = with stdenv.lib; {
-    homepage = "http://fperrad.frama.io/lua-MessagePack/";
+    homepage = "https://fperrad.frama.io/lua-MessagePack/";
     description = "a pure Lua implementation of the MessagePack serialization format";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 lua-term = buildLuarocksPackage {
@@ -735,7 +696,7 @@ lua-term = buildLuarocksPackage {
   version = "0.7-1";
 
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/lua-term-0.7-1.rockspec";
+    url    = "mirror://luarocks/lua-term-0.7-1.rockspec";
     sha256 = "0r9g5jw7pqr1dyj6w58dqlr7y7l0jp077n8nnji4phf10biyrvg2";
   }).outPath;
 
@@ -748,9 +709,7 @@ lua-term = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/hoelzro/lua-term";
     description = "Terminal functions for Lua";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 lua-toml = buildLuarocksPackage {
@@ -758,7 +717,7 @@ lua-toml = buildLuarocksPackage {
   version = "2.0-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/lua-toml-2.0-1.src.rock";
+    url    = "mirror://luarocks/lua-toml-2.0-1.src.rock";
     sha256 = "0lyqlnydqbplq82brw9ipqy9gijin6hj1wc46plz994pg4i2c74m";
   };
   disabled = (luaOlder "5.1");
@@ -767,9 +726,7 @@ lua-toml = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/jonstoler/lua-toml";
     description = "toml decoder/encoder for Lua";
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 lua-zlib = buildLuarocksPackage {
@@ -777,7 +734,7 @@ lua-zlib = buildLuarocksPackage {
   version = "1.2-0";
 
   src = fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/lua-zlib-1.2-0.src.rock";
+    url    = "mirror://luarocks/lua-zlib-1.2-0.src.rock";
     sha256 = "0qa0vnx45nxdj6fqag6fr627zsnd2bmrr9bdbm8jv6lcnyi6nhs2";
   };
   disabled = (luaOlder "5.1");
@@ -787,9 +744,7 @@ lua-zlib = buildLuarocksPackage {
     homepage = "https://github.com/brimworks/lua-zlib";
     description = "Simple streaming interface to zlib for Lua.";
     maintainers = with maintainers; [ koral ];
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 lua_cliargs = buildLuarocksPackage {
@@ -797,7 +752,7 @@ lua_cliargs = buildLuarocksPackage {
   version = "3.0-2";
 
   src = fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/lua_cliargs-3.0-2.src.rock";
+    url    = "mirror://luarocks/lua_cliargs-3.0-2.src.rock";
     sha256 = "0qqdnw00r16xbyqn4w1xwwpg9i9ppc3c1dcypazjvdxaj899hy9w";
   };
   disabled = (luaOlder "5.1");
@@ -806,9 +761,7 @@ lua_cliargs = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/amireh/lua_cliargs";
     description = "A command-line argument parser.";
-    license = {
-      fullName = "MIT <http://opensource.org/licenses/MIT>";
-    };
+    license.fullName = "MIT <http://opensource.org/licenses/MIT>";
   };
 };
 luabitop = buildLuarocksPackage {
@@ -816,7 +769,7 @@ luabitop = buildLuarocksPackage {
   version = "1.0.2-3";
 
   knownRockspec = (fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/luabitop-1.0.2-3.rockspec";
+    url    = "mirror://luarocks/luabitop-1.0.2-3.rockspec";
     sha256 = "07y2h11hbxmby7kyhy3mda64w83p4a6p7y7rzrjqgc0r56yjxhcc";
   }).outPath;
 
@@ -835,9 +788,7 @@ luabitop = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "http://bitop.luajit.org/";
     description = "Lua Bit Operations Module";
-    license = {
-      fullName = "MIT/X license";
-    };
+    license.fullName = "MIT/X license";
   };
 };
 luacheck = buildLuarocksPackage {
@@ -845,7 +796,7 @@ luacheck = buildLuarocksPackage {
   version = "0.23.0-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/luacheck-0.23.0-1.src.rock";
+    url    = "mirror://luarocks/luacheck-0.23.0-1.src.rock";
     sha256 = "0akj61c7k1na2mggsckvfn9a3ljfp4agnmr9gp3mac4vin99a1cl";
   };
   disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
@@ -854,18 +805,16 @@ luacheck = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/mpeterv/luacheck";
     description = "A static analyzer and a linter for Lua";
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 luacov = buildLuarocksPackage {
   pname = "luacov";
-  version = "0.13.0-1";
+  version = "0.14.0-1";
 
   src = fetchurl {
-    url    = "mirror://luarocks/luacov-0.13.0-1.src.rock";
-    sha256 = "16am0adzr4y64n94f64d4yrz65in8rwa8mmjz1p0k8afm5p5759i";
+    url    = "mirror://luarocks/luacov-0.14.0-1.src.rock";
+    sha256 = "18wj4l55wxwvaimvmkg3g5c6amzz9czdpl57z56wmdb284454kca";
   };
   disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
   propagatedBuildInputs = [ lua ];
@@ -873,9 +822,7 @@ luacov = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://keplerproject.github.io/luacov/";
     description = "Coverage analysis tool for Lua scripts";
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 luadbi = buildLuarocksPackage {
@@ -883,7 +830,7 @@ luadbi = buildLuarocksPackage {
   version = "0.7.2-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/luadbi-0.7.2-1.src.rock";
+    url    = "mirror://luarocks/luadbi-0.7.2-1.src.rock";
     sha256 = "0mj9ggyb05l03gs38ds508620mqaw4fkrzz9861n4j0zxbsbmfwy";
   };
   disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
@@ -892,9 +839,7 @@ luadbi = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/mwild1/luadbi";
     description = "Database abstraction layer";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 luadbi-mysql = buildLuarocksPackage {
@@ -902,7 +847,7 @@ luadbi-mysql = buildLuarocksPackage {
   version = "0.7.2-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/luadbi-mysql-0.7.2-1.src.rock";
+    url    = "mirror://luarocks/luadbi-mysql-0.7.2-1.src.rock";
     sha256 = "1f8i5p66halws8qsa7g09110hwzg7pv29yi22mkqd8sjgjv42iq4";
   };
   disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
@@ -911,9 +856,7 @@ luadbi-mysql = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/mwild1/luadbi";
     description = "Database abstraction layer";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 luadbi-postgresql = buildLuarocksPackage {
@@ -921,7 +864,7 @@ luadbi-postgresql = buildLuarocksPackage {
   version = "0.7.2-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/luadbi-postgresql-0.7.2-1.src.rock";
+    url    = "mirror://luarocks/luadbi-postgresql-0.7.2-1.src.rock";
     sha256 = "0nmm1hdzl77wk8p6r6al6mpkh2n332a8r3iqsdi6v4nxamykdh28";
   };
   disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
@@ -930,9 +873,7 @@ luadbi-postgresql = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/mwild1/luadbi";
     description = "Database abstraction layer";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 luadbi-sqlite3 = buildLuarocksPackage {
@@ -940,7 +881,7 @@ luadbi-sqlite3 = buildLuarocksPackage {
   version = "0.7.2-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/luadbi-sqlite3-0.7.2-1.src.rock";
+    url    = "mirror://luarocks/luadbi-sqlite3-0.7.2-1.src.rock";
     sha256 = "17wd2djzk5x4l4pv2k3c7b8dcvl46s96kqyk8dp3q6ll8gdl7c65";
   };
   disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
@@ -949,9 +890,7 @@ luadbi-sqlite3 = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/mwild1/luadbi";
     description = "Database abstraction layer";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 luadoc = buildLuarocksPackage {
@@ -992,7 +931,7 @@ luaevent = buildLuarocksPackage {
   version = "0.4.6-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/luaevent-0.4.6-1.src.rock";
+    url    = "mirror://luarocks/luaevent-0.4.6-1.src.rock";
     sha256 = "0chq09nawiz00lxd6pkdqcb8v426gdifjw6js3ql0lx5vqdkb6dz";
   };
   disabled = (luaOlder "5.1");
@@ -1001,9 +940,7 @@ luaevent = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/harningt/luaevent";
     description = "libevent binding for Lua";
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 luaexpat = buildLuarocksPackage {
@@ -1011,7 +948,7 @@ luaexpat = buildLuarocksPackage {
   version = "1.3.0-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/luaexpat-1.3.0-1.src.rock";
+    url    = "mirror://luarocks/luaexpat-1.3.0-1.src.rock";
     sha256 = "15jqz5q12i9zvjyagzwz2lrpzya64mih8v1hxwr0wl2gsjh86y5a";
   };
   disabled = (luaOlder "5.1");
@@ -1021,9 +958,7 @@ luaexpat = buildLuarocksPackage {
     homepage = "http://www.keplerproject.org/luaexpat/";
     description = "XML Expat parsing";
     maintainers = with maintainers; [ arobyn flosse ];
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 luaffi = buildLuarocksPackage {
@@ -1031,7 +966,7 @@ luaffi = buildLuarocksPackage {
   version = "scm-1";
 
   src = fetchurl {
-    url    = "http://luarocks.org/dev/luaffi-scm-1.src.rock";
+    url    = "mirror://luarocks/luaffi-scm-1.src.rock";
     sha256 = "0dia66w8sgzw26bwy36gzyb2hyv7kh9n95lh5dl0158rqa6fsf26";
   };
   disabled = (luaOlder "5.1");
@@ -1040,9 +975,7 @@ luaffi = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/facebook/luaffifb";
     description = "FFI library for calling C functions from lua";
-    license = {
-      fullName = "BSD";
-    };
+    license.fullName = "BSD";
   };
 };
 luafilesystem = buildLuarocksPackage {
@@ -1050,7 +983,7 @@ luafilesystem = buildLuarocksPackage {
   version = "1.7.0-2";
 
   src = fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/luafilesystem-1.7.0-2.src.rock";
+    url    = "mirror://luarocks/luafilesystem-1.7.0-2.src.rock";
     sha256 = "0xhmd08zklsgpnpjr9rjipah35fbs8jd4v4va36xd8bpwlvx9rk5";
   };
   disabled = (luaOlder "5.1");
@@ -1060,9 +993,7 @@ luafilesystem = buildLuarocksPackage {
     homepage = "git://github.com/keplerproject/luafilesystem";
     description = "File System Library for the Lua Programming Language";
     maintainers = with maintainers; [ flosse vcunat ];
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 lualogging = buildLuarocksPackage {
@@ -1078,9 +1009,7 @@ lualogging = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/Neopallium/lualogging";
     description = "A simple API to use logging features";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 luaossl = buildLuarocksPackage {
@@ -1088,7 +1017,7 @@ luaossl = buildLuarocksPackage {
   version = "20190731-0";
 
   src = fetchurl {
-    url    = "https://luarocks.org/luaossl-20190731-0.src.rock";
+    url    = "mirror://luarocks/luaossl-20190731-0.src.rock";
     sha256 = "0gardlh547hah5w4kfsdg05jmxzrxr21macqigcmp5hw1l67jn5m";
   };
   propagatedBuildInputs = [ lua ];
@@ -1097,24 +1026,22 @@ luaossl = buildLuarocksPackage {
     homepage = "http://25thandclement.com/~william/projects/luaossl.html";
     description = "Most comprehensive OpenSSL module in the Lua universe.";
     maintainers = with maintainers; [ vcunat ];
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 luaposix = buildLuarocksPackage {
   pname = "luaposix";
-  version = "34.0.4-1";
+  version = "34.1.1-1";
 
   src = fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/luaposix-34.0.4-1.src.rock";
-    sha256 = "0yrm5cn2iyd0zjd4liyj27srphvy0gjrjx572swar6zqr4dwjqp2";
+    url    = "mirror://luarocks/luaposix-34.1.1-1.src.rock";
+    sha256 = "1l9pkn3g0nzlbmmfj12rhfwvkqb06c21ydqxqgmnmd3w9z4ck53w";
   };
   disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
-  propagatedBuildInputs = [ bit32 lua std_normalize ];
+  propagatedBuildInputs = [ bit32 lua ];
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/luaposix/luaposix/";
+    homepage = "http://github.com/luaposix/luaposix/";
     description = "Lua bindings for POSIX";
     maintainers = with maintainers; [ vyp lblasc ];
     license.fullName = "MIT/X11";
@@ -1145,11 +1072,11 @@ luarepl = buildLuarocksPackage {
 };
 luasec = buildLuarocksPackage {
   pname = "luasec";
-  version = "0.8-1";
+  version = "0.9-1";
 
   src = fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/luasec-0.8-1.src.rock";
-    sha256 = "063rgz0zdmaizirsm6jbcfijgkpdcrb8a2fvhvg3y2s8ixbaff13";
+    url    = "mirror://luarocks/luasec-0.9-1.src.rock";
+    sha256 = "00npxdwr3s4638i1jzmhyvss796rhbqk43zrzkb5lzzhqlxpsz5q";
   };
   disabled = (luaOlder "5.1");
   propagatedBuildInputs = [ lua luasocket ];
@@ -1158,9 +1085,7 @@ luasec = buildLuarocksPackage {
     homepage = "https://github.com/brunoos/luasec/wiki";
     description = "A binding for OpenSSL library to provide TLS/SSL communication over LuaSocket.";
     maintainers = with maintainers; [ flosse ];
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 luasocket = buildLuarocksPackage {
@@ -1168,7 +1093,7 @@ luasocket = buildLuarocksPackage {
   version = "3.0rc1-2";
 
   src = fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/luasocket-3.0rc1-2.src.rock";
+    url    = "mirror://luarocks/luasocket-3.0rc1-2.src.rock";
     sha256 = "1isin9m40ixpqng6ds47skwa4zxrc6w8blza8gmmq566w6hz50iq";
   };
   disabled = (luaOlder "5.1");
@@ -1177,19 +1102,27 @@ luasocket = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "http://luaforge.net/projects/luasocket/";
     description = "Network support for the Lua language";
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 luasql-sqlite3 = buildLuarocksPackage {
   pname = "luasql-sqlite3";
-  version = "2.4.0-1";
+  version = "2.5.0-1";
+
+  knownRockspec = (fetchurl {
+    url    = "mirror://luarocks/luasql-sqlite3-2.5.0-1.rockspec";
+    sha256 = "1r0x21i6n18x6915iaj9n309lqqqk1b30bg9h2a6y8jzk839hk09";
+  }).outPath;
+
+  src = fetchgit ( removeAttrs (builtins.fromJSON ''{
+  "url": "git://github.com/keplerproject/luasql.git",
+  "rev": "5496d60185db0c4578e8abe0c74343e99b799311",
+  "date": "2019-06-14T10:54:41-03:00",
+  "sha256": "1jdm1abj2ngklg7syq1ijj142ai9nmdl9370dk2bgamzlxc41pqm",
+  "fetchSubmodules": true
+}
+ '') ["date"]) ;
 
-  src = fetchurl {
-    url    = "https://luarocks.org/luasql-sqlite3-2.4.0-1.src.rock";
-    sha256 = "0pdk8c9iw0625imf5wdrhq60484jn475b85rvp0xgh86bsyalbsh";
-  };
   disabled = (luaOlder "5.1");
   propagatedBuildInputs = [ lua ];
 
@@ -1197,23 +1130,21 @@ luasql-sqlite3 = buildLuarocksPackage {
     homepage = "http://www.keplerproject.org/luasql/";
     description = "Database connectivity for Lua (SQLite3 driver)";
     maintainers = with maintainers; [ vyp ];
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 luassert = buildLuarocksPackage {
   pname = "luassert";
-  version = "1.7.11-0";
+  version = "1.8.0-0";
 
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/luassert-1.7.11-0.rockspec";
-    sha256 = "12zgybcv8acjzvjdbxd1764s1vxbksxdv9fkvsymcsdmppxkbd0s";
+    url    = "mirror://luarocks/luassert-1.8.0-0.rockspec";
+    sha256 = "1194y81nlkq4qmrrgl7z82i6vgvhqvp1p673kq0arjix8mv3zyz1";
   }).outPath;
 
   src = fetchurl {
-    url    = "https://github.com/Olivine-Labs/luassert/archive/v1.7.11.tar.gz";
-    sha256 = "1vwq3wqj9cjyz9lnf1n38yhpcglr2h40v3n9096i8vcpmyvdb3ka";
+    url    = "https://github.com/Olivine-Labs/luassert/archive/v1.8.0.tar.gz";
+    sha256 = "0xlwlb32215524bg33svp1ci8mdvh9wykchl8dkhihpxcd526mar";
   };
 
   disabled = (luaOlder "5.1");
@@ -1222,9 +1153,7 @@ luassert = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "http://olivinelabs.com/busted/";
     description = "Lua Assertions Extension";
-    license = {
-      fullName = "MIT <http://opensource.org/licenses/MIT>";
-    };
+    license.fullName = "MIT <http://opensource.org/licenses/MIT>";
   };
 };
 luasystem = buildLuarocksPackage {
@@ -1232,7 +1161,7 @@ luasystem = buildLuarocksPackage {
   version = "0.2.1-0";
 
   src = fetchurl {
-    url    = "https://luarocks.org/luasystem-0.2.1-0.src.rock";
+    url    = "mirror://luarocks/luasystem-0.2.1-0.src.rock";
     sha256 = "091xmp8cijgj0yzfsjrn7vljwznjnjn278ay7z9pjwpwiva0diyi";
   };
   disabled = (luaOlder "5.1");
@@ -1241,29 +1170,25 @@ luasystem = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "http://olivinelabs.com/luasystem/";
     description = "Platform independent system calls for Lua.";
-    license = {
-      fullName = "MIT <http://opensource.org/licenses/MIT>";
-    };
+    license.fullName = "MIT <http://opensource.org/licenses/MIT>";
   };
 };
 luautf8 = buildLuarocksPackage {
   pname = "luautf8";
-  version = "0.1.1-1";
+  version = "0.1.2-2";
 
   src = fetchurl {
-    url    = "https://luarocks.org/luautf8-0.1.1-1.src.rock";
-    sha256 = "1832ilrlddh4h7ayx4l9j7z1p8c2hk5yr96cpxjjrmirkld23aji";
+    url    = "mirror://luarocks/luautf8-0.1.2-2.src.rock";
+    sha256 = "1q0qpr87alfzwwx5x0v9cggnz5fqi20jlqdh1a3i5cijjaj6xwdn";
   };
   disabled = (luaOlder "5.1");
   propagatedBuildInputs = [ lua ];
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/starwing/luautf8";
+    homepage = "http://github.com/starwing/luautf8";
     description = "A UTF-8 support module for Lua";
     maintainers = with maintainers; [ pstn ];
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 luazip = buildLuarocksPackage {
@@ -1271,7 +1196,7 @@ luazip = buildLuarocksPackage {
   version = "1.2.7-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/luazip-1.2.7-1.src.rock";
+    url    = "mirror://luarocks/luazip-1.2.7-1.src.rock";
     sha256 = "1yprlr1ap6bhshhy88qfphmmyg9zp1py2hj2158iw6vsva0fk03l";
   };
   disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
@@ -1280,9 +1205,7 @@ luazip = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/mpeterv/luazip";
     description = "Library for reading files inside zip files";
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 lua-yajl = buildLuarocksPackage {
@@ -1290,19 +1213,17 @@ lua-yajl = buildLuarocksPackage {
   version = "2.0-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/lua-yajl-2.0-1.src.rock";
+    url    = "mirror://luarocks/lua-yajl-2.0-1.src.rock";
     sha256 = "0bsm519vs53rchcdf8g96ygzdx2bz6pa4vffqlvc7ap49bg5np4f";
   };
   disabled = (luaOlder "5.1");
   propagatedBuildInputs = [ lua ];
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/brimworks/lua-yajl";
+    homepage = "http://github.com/brimworks/lua-yajl";
     description = "Integrate the yajl JSON library with Lua.";
     maintainers = with maintainers; [ pstn ];
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 luuid = buildLuarocksPackage {
@@ -1310,7 +1231,7 @@ luuid = buildLuarocksPackage {
   version = "20120509-2";
 
   src = fetchurl {
-    url    = "https://luarocks.org/luuid-20120509-2.src.rock";
+    url    = "mirror://luarocks/luuid-20120509-2.src.rock";
     sha256 = "08q54x0m51w89np3n117h2a153wsgv3qayabd8cz6i55qm544hkg";
   };
   disabled = (luaOlder "5.2") || (luaAtLeast "5.4");
@@ -1319,9 +1240,7 @@ luuid = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "http://www.tecgraf.puc-rio.br/~lhf/ftp/lua/#luuid";
     description = "A library for UUID generation";
-    license = {
-      fullName = "Public domain";
-    };
+    license.fullName = "Public domain";
   };
 };
 luv = buildLuarocksPackage {
@@ -1338,9 +1257,25 @@ luv = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/luvit/luv";
     description = "Bare libuv bindings for lua";
-    license = {
-      fullName = "Apache 2.0";
-    };
+    license.fullName = "Apache 2.0";
+  };
+};
+lyaml = buildLuarocksPackage {
+  pname = "lyaml";
+  version = "6.2.5-1";
+
+  src = fetchurl {
+    url    = "mirror://luarocks/lyaml-6.2.5-1.src.rock";
+    sha256 = "00pnz27sqi84arwkzjabz9v7w37h7xvwb5njk690cfmaknb1dfz6";
+  };
+  disabled = (luaOlder "5.1") || (luaAtLeast "5.5");
+  propagatedBuildInputs = [ lua ];
+
+  meta = with stdenv.lib; {
+    homepage = "http://github.com/gvvaughan/lyaml";
+    description = "libYAML binding for Lua";
+    maintainers = with maintainers; [ lblasc ];
+    license.fullName = "MIT/X11";
   };
 };
 markdown = buildLuarocksPackage {
@@ -1348,7 +1283,7 @@ markdown = buildLuarocksPackage {
   version = "0.33-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/markdown-0.33-1.src.rock";
+    url    = "mirror://luarocks/markdown-0.33-1.src.rock";
     sha256 = "01xw4b4jvmrv1hz2gya02g3nphsj3hc94hsbc672ycj8pcql5n5y";
   };
   disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
@@ -1357,9 +1292,7 @@ markdown = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/mpeterv/markdown";
     description = "Markdown text-to-html markup system.";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 mediator_lua = buildLuarocksPackage {
@@ -1367,7 +1300,7 @@ mediator_lua = buildLuarocksPackage {
   version = "1.1.2-0";
 
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/mediator_lua-1.1.2-0.rockspec";
+    url    = "mirror://luarocks/mediator_lua-1.1.2-0.rockspec";
     sha256 = "0frzvf7i256260a1s8xh92crwa2m42972qxfq29zl05aw3pyn7bm";
   }).outPath;
 
@@ -1382,32 +1315,28 @@ mediator_lua = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "http://olivinelabs.com/mediator_lua/";
     description = "Event handling through channels";
-    license = {
-      fullName = "MIT <http://opensource.org/licenses/MIT>";
-    };
+    license.fullName = "MIT <http://opensource.org/licenses/MIT>";
   };
 };
 mpack = buildLuarocksPackage {
   pname = "mpack";
-  version = "1.0.7-0";
+  version = "1.0.8-0";
 
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/mpack-1.0.7-0.rockspec";
-    sha256 = "1sdw8qsni3g3fx9jnc5g64nxfw6v3n1rrw1xa3bkwc9wk815lqnz";
+    url    = "mirror://luarocks/mpack-1.0.8-0.rockspec";
+    sha256 = "0hhpamw2bydnfrild274faaan6v48918nhslnw3kvi9y36b4i5ha";
   }).outPath;
 
   src = fetchurl {
-    url    = "https://github.com/libmpack/libmpack-lua/releases/download/1.0.7/libmpack-lua-1.0.7.tar.gz";
-    sha256 = "1s4712ig3l4ds65pmlyg3r5zids2snn1rv8vsmmk27a4lf258mk8";
+    url    = "https://github.com/libmpack/libmpack-lua/releases/download/1.0.8/libmpack-lua-1.0.8.tar.gz";
+    sha256 = "1sf93ffx7a3y1waknc4994l2yrxilrlf3hcp2cj2cvxmpm5inszd";
   };
 
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/libmpack/libmpack-lua/releases/download/1.0.7/libmpack-lua-1.0.7.tar.gz";
+    homepage = "https://github.com/libmpack/libmpack-lua/releases/download/1.0.8/libmpack-lua-1.0.8.tar.gz";
     description = "Lua binding to libmpack";
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 moonscript = buildLuarocksPackage {
@@ -1415,7 +1344,7 @@ moonscript = buildLuarocksPackage {
   version = "0.5.0-1";
 
   src = fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/moonscript-0.5.0-1.src.rock";
+    url    = "mirror://luarocks/moonscript-0.5.0-1.src.rock";
     sha256 = "09vv3ayzg94bjnzv5fw50r683ma0x3lb7sym297145zig9aqb9q9";
   };
   disabled = (luaOlder "5.1");
@@ -1425,9 +1354,7 @@ moonscript = buildLuarocksPackage {
     homepage = "http://moonscript.org";
     description = "A programmer friendly language that compiles to Lua";
     maintainers = with maintainers; [ arobyn ];
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
   };
 };
 nvim-client = buildLuarocksPackage {
@@ -1435,51 +1362,42 @@ nvim-client = buildLuarocksPackage {
   version = "0.2.2-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/nvim-client-0.2.2-1.src.rock";
+    url    = "mirror://luarocks/nvim-client-0.2.2-1.src.rock";
     sha256 = "0bgx94ziiq0004zw9lz2zb349xaqs5pminqd8bwdrfdnfjnbp8x0";
   };
   disabled = (luaOlder "5.1");
   propagatedBuildInputs = [ lua mpack luv coxpcall ];
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/neovim/lua-client/archive/0.2.2-1.tar.gz";
+    homepage = "https://github.com/neovim/lua-client";
     description = "Lua client to Nvim";
-    license = {
-      fullName = "Apache";
-    };
+    license.fullName = "Apache";
   };
 };
 penlight = buildLuarocksPackage {
   pname = "penlight";
-  version = "1.5.4-1";
-
-  knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/penlight-1.5.4-1.rockspec";
-    sha256 = "07mhsk9kmdxg4i2w4mrnnd2zs34bgggi9gigfplakxin96sa6c0p";
-  }).outPath;
+  version = "1.8.0-1";
 
   src = fetchurl {
-    url    = "http://stevedonovan.github.io/files/penlight-1.5.4.zip";
-    sha256 = "138f921p6kdqkmf4pz115phhj0jsqf28g33avws80d2vq2ixqm8q";
+    url    = "mirror://luarocks/penlight-1.8.0-1.src.rock";
+    sha256 = "05x00dgsa79wzq187ww6i8j0s74nh2c852awni7xfshxgihwhc42";
   };
-
   propagatedBuildInputs = [ luafilesystem ];
 
   meta = with stdenv.lib; {
-    homepage = "http://stevedonovan.github.com/Penlight";
+    homepage = "http://tieske.github.io/Penlight";
     description = "Lua utility libraries loosely based on the Python standard libraries";
-    license = {
-      fullName = "MIT/X11";
-    };
+    maintainers = with maintainers; [ alerque ];
+    license.fullName = "MIT/X11";
   };
 };
 rapidjson = buildLuarocksPackage {
   pname = "rapidjson";
-  version = "0.5.2-1";
+  version = "0.6.1-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/rapidjson-0.5.2-1.src.rock";
-    sha256 = "17lgbzv9kairx49kwa0m8xwyly95mg6fw60jan2dpqwnnkf2m8y6";
+    url    = "mirror://luarocks/rapidjson-0.6.1-1.src.rock";
+    sha256 = "106zdkmqspwjw6ywzi7ya9zss52p9zggh53rg0i36sk19z0xmp6j";
   };
   disabled = (luaOlder "5.1");
   propagatedBuildInputs = [ lua ];
@@ -1487,9 +1405,24 @@ rapidjson = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/xpol/lua-rapidjson";
     description = "Json module based on the very fast RapidJSON.";
-    license = {
-      fullName = "MIT";
-    };
+    license.fullName = "MIT";
+  };
+};
+readline = buildLuarocksPackage {
+  pname = "readline";
+  version = "2.6-0";
+
+  src = fetchurl {
+    url    = mirror://luarocks/readline-2.6-0.src.rock;
+    sha256 = "1fvz7nqvkdazp30wn5n62n8i97qrfgznbykdpf8cnflqfpd1shms";
+  };
+  disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
+  propagatedBuildInputs = [ lua luaposix ];
+
+  meta = with stdenv.lib; {
+    homepage = "http://www.pjb.com.au/comp/lua/readline.html";
+    description = "Interface to the readline library";
+    license.fullName = "MIT/X11";
   };
 };
 say = buildLuarocksPackage {
@@ -1497,7 +1430,7 @@ say = buildLuarocksPackage {
   version = "1.3-1";
 
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/say-1.3-1.rockspec";
+    url    = "mirror://luarocks/say-1.3-1.rockspec";
     sha256 = "0bknglb0qwd6r703wp3hcb6z2xxd14kq4md3sg9al3b28fzxbhdv";
   }).outPath;
 
@@ -1512,9 +1445,7 @@ say = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "http://olivinelabs.com/busted/";
     description = "Lua String Hashing/Indexing Library";
-    license = {
-      fullName = "MIT <http://opensource.org/licenses/MIT>";
-    };
+    license.fullName = "MIT <http://opensource.org/licenses/MIT>";
   };
 };
 std__debug = buildLuarocksPackage {
@@ -1522,7 +1453,7 @@ std__debug = buildLuarocksPackage {
   version = "1.0.1-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/std._debug-1.0.1-1.src.rock";
+    url    = "mirror://luarocks/std._debug-1.0.1-1.src.rock";
     sha256 = "1qkcc5rph3ns9mzrfsa1671pb3hzbzfnaxvyw7zdly2b7ll88svz";
   };
   disabled = (luaOlder "5.1") || (luaAtLeast "5.5");
@@ -1531,28 +1462,24 @@ std__debug = buildLuarocksPackage {
   meta = with stdenv.lib; {
     homepage = "http://lua-stdlib.github.io/_debug";
     description = "Debug Hints Library";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 std_normalize = buildLuarocksPackage {
   pname = "std.normalize";
-  version = "2.0.2-1";
+  version = "2.0.3-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/std.normalize-2.0.2-1.src.rock";
-    sha256 = "0yn60zqnxflhhlv6xk6w0ifdfxk1qcg8gq1wnrrbwsxwpipsrfjh";
+    url    = "mirror://luarocks/std.normalize-2.0.3-1.src.rock";
+    sha256 = "00pq2y5w8i052gxmyhgri5ibijksnfmc24kya9y3d5rjlin0n11s";
   };
-  disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
+  disabled = (luaOlder "5.1") || (luaAtLeast "5.5");
   propagatedBuildInputs = [ lua std__debug ];
 
   meta = with stdenv.lib; {
     homepage = "https://lua-stdlib.github.io/normalize";
     description = "Normalized Lua Functions";
-    license = {
-      fullName = "MIT/X11";
-    };
+    license.fullName = "MIT/X11";
   };
 };
 stdlib = buildLuarocksPackage {
@@ -1560,7 +1487,7 @@ stdlib = buildLuarocksPackage {
   version = "41.2.2-1";
 
   src = fetchurl {
-    url    = "https://luarocks.org/stdlib-41.2.2-1.src.rock";
+    url    = "mirror://luarocks/stdlib-41.2.2-1.src.rock";
     sha256 = "1kricll40xy75j72lrbp2jpyxsj9v8b9d7qjf3m3fq1bpg6dmsk7";
   };
   disabled = (luaOlder "5.1") || (luaAtLeast "5.5");
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 cb429e59c92..6416d59a71e 100644
--- a/pkgs/development/lua-modules/overrides.nix
+++ b/pkgs/development/lua-modules/overrides.nix
@@ -40,11 +40,6 @@ with super;
       { name = "CRYPTO"; dep = pkgs.openssl; }
       { name = "OPENSSL"; dep = pkgs.openssl; }
     ];
-
-    # https://github.com/wahern/cqueues/issues/227
-    NIX_CFLAGS_COMPILE = with pkgs.stdenv; lib.optionalString hostPlatform.isDarwin
-      "-DCLOCK_MONOTONIC -DCLOCK_REALTIME";
-
     disabled = luaOlder "5.1" || luaAtLeast "5.4";
     # Upstream rockspec is pointlessly broken into separate rockspecs, per Lua
     # version, which doesn't work well for us, so modify it
@@ -81,6 +76,17 @@ with super;
     */
   });
 
+  ldbus = super.ldbus.override({
+    extraVariables = {
+      DBUS_DIR="${pkgs.dbus.lib}";
+      DBUS_ARCH_INCDIR="${pkgs.dbus.lib}/lib/dbus-1.0/include";
+      DBUS_INCDIR="${pkgs.dbus.dev}/include/dbus-1.0";
+    };
+    buildInputs = with pkgs; [
+      dbus
+    ];
+  });
+
   ljsyscall = super.ljsyscall.override(rec {
     version = "unstable-20180515";
     # package hasn't seen any release for a long time
@@ -145,6 +151,14 @@ with super;
     ];
   });
 
+  lua-lsp = super.lua-lsp.override({
+    # until Alloyed/lua-lsp#28
+    postConfigure = ''
+      substituteInPlace ''${rockspecFilename} \
+        --replace '"lpeglabel ~> 1.5",' '"lpeglabel >= 1.5",'
+    '';
+  });
+
   lua-zlib = super.lua-zlib.override({
     buildInputs = [
       pkgs.zlib.dev
@@ -190,6 +204,9 @@ with super;
     externalDeps = [
       { name = "EXPAT"; dep = pkgs.expat; }
     ];
+    patches = [
+      ./luaexpat.patch
+    ];
   });
 
   # TODO Somehow automatically amend buildInputs for things that need luaffi
@@ -294,6 +311,18 @@ with super;
     };
   });
 
+  lyaml = super.lyaml.override({
+    buildInputs = [
+      pkgs.libyaml
+    ];
+  });
+
+  mpack = super.mpack.override({
+    buildInputs = [ pkgs.libmpack ];
+    # the rockspec doesn't use the makefile so you may need to export more flags
+    USE_SYSTEM_LUA = "yes";
+    USE_SYSTEM_MPACK = "yes";
+  });
 
   rapidjson = super.rapidjson.override({
     preBuild = ''
@@ -301,4 +330,21 @@ with super;
       sed -i '/set(CMAKE_C_FLAGS/d' CMakeLists.txt
     '';
   });
+
+  readline = (super.readline.override ({
+    unpackCmd = ''
+      unzip "$curSrc"
+      tar xf *.tar.gz
+    '';
+    propagatedBuildInputs = super.readline.propagatedBuildInputs ++ [ pkgs.readline ];
+    extraVariables = rec {
+      READLINE_INCDIR = "${pkgs.readline.dev}/include";
+      HISTORY_INCDIR = READLINE_INCDIR;
+    };
+  })).overrideAttrs (old: {
+    # Without this, source root is wrongly set to ./readline-2.6/doc
+    setSourceRoot = ''
+      sourceRoot=./readline-2.6
+    '';
+  });
 }
diff --git a/pkgs/development/misc/google-clasp/node-packages.nix b/pkgs/development/misc/google-clasp/node-packages.nix
index 646729032cd..c73c122e572 100644
--- a/pkgs/development/misc/google-clasp/node-packages.nix
+++ b/pkgs/development/misc/google-clasp/node-packages.nix
@@ -10,7 +10,7 @@ let
       version = "2.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz";
-        sha512 = "eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==";
+        sha512 = "07zn0jp8b7nrrpkxwx715n68ncr51xiyz46j8g1fdvy07cr3s60npwhds1difzwdgz762zwirirppmc5dwl5pdqmww1m0zp15hv0sbq";
       };
     };
     "@nodelib/fs.stat-2.0.3" = {
@@ -19,7 +19,7 @@ let
       version = "2.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz";
-        sha512 = "bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==";
+        sha512 = "2n8008qx9kqgxsgsd22r2xrkm56nwsnwjfws9s4jjmbrk4gz8vfhdw7vp70kn59mqfihkdks6s0101javrpfi7hg8l0qk3nwjp4a03d";
       };
     };
     "@nodelib/fs.walk-1.2.4" = {
@@ -28,7 +28,7 @@ let
       version = "1.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz";
-        sha512 = "1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==";
+        sha512 = "2nsw6dfpkrkm8pxp2d9jlva5mnwqfzssj9r3xlyvrybb26xvjjkw7c0jvfilz08xvvgaanjxvqz6ycqh35avnqwg8mns39biqwmfpym";
       };
     };
     "@sindresorhus/is-0.14.0" = {
@@ -37,7 +37,7 @@ let
       version = "0.14.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz";
-        sha512 = "9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==";
+        sha512 = "0nvckjkw0vk0vs1c689m143ml2ibm8cd3h8pc5ncq4lnm0k6c7vki57paf57s16k4wf7xi2mg7a1qw3vsrjq9q6kq7s4d83bpvi7lgl";
       };
     };
     "@szmarczak/http-timer-1.1.2" = {
@@ -46,7 +46,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz";
-        sha512 = "XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==";
+        sha512 = "148vnx878hajsqb1aimsqg8wz9kja37pmfrf7ac501q2rci4v3cwwar8z3425pnd6pwvsinymy5qmc6gp2j1pw8g2idwk67pifpd02w";
       };
     };
     "@types/events-3.0.0" = {
@@ -55,7 +55,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz";
-        sha512 = "EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==";
+        sha512 = "3v6shgxnlkc7izsc00g8ilpxi1q2mpcmbjyfawyqcj8mwfhlx2cnkm3hj87gsd39yyq33pilb0dbb4cdc8wwhn7dcwj4srg0amrp8qi";
       };
     };
     "@types/glob-7.1.1" = {
@@ -64,7 +64,7 @@ let
       version = "7.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz";
-        sha512 = "1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==";
+        sha512 = "3dhbgdkzpgx010hfgkhndrb094kbd3z6s4waicihnl0rp3jk0f0gs8vvzi84xzissrhml1dfgvbdhahzbh75nny1g6429fnqvlp866l";
       };
     };
     "@types/minimatch-3.0.3" = {
@@ -73,7 +73,7 @@ let
       version = "3.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz";
-        sha512 = "tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==";
+        sha512 = "2ff7lcgph45bp2v5zsaxcy00rbh5n5h4njbicwhqilz66pd1lw7xfrpfl4i4ppfcx78zg9cp582b5fjif0dg7r18m44vxfksslvlyml";
       };
     };
     "@types/node-13.9.1" = {
@@ -82,7 +82,7 @@ let
       version = "13.9.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/node/-/node-13.9.1.tgz";
-        sha512 = "E6M6N0blf/jiZx8Q3nb0vNaswQeEyn0XlupO+xN6DtJ6r6IT4nXrTry7zhIfYvFCl3/8Cu6WIysmUBKiqV0bqQ==";
+        sha512 = "2linpd9l89509ib4fbfw2pwgybl5wb23w9cxfxw9vmpbqhklappmlhfg89znkpajqbpvjl40z0srmmwyivdw40zczighzz58qvkm8qk";
       };
     };
     "abort-controller-3.0.0" = {
@@ -91,7 +91,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz";
-        sha512 = "h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==";
+        sha512 = "1x70yq0brkpbwyss5m5z3q41f4w6wf2pp1xdy31q49kwshyvmxadwdzwb53vdhbx1sfkzrrf864xswgkc44wl7kvv8qjrcwsvr51jc7";
       };
     };
     "agent-base-6.0.0" = {
@@ -100,7 +100,7 @@ let
       version = "6.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz";
-        sha512 = "j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==";
+        sha512 = "2mlsi3nqlanwznzfz3dgmwv412vs83liaiifwqkh671z6j5s1qc7giv90s6dya7dmv9rrxsj0v3zkd9w2fgmpb0mqqf0dxa41qknm4g";
       };
     };
     "aggregate-error-3.0.1" = {
@@ -109,7 +109,7 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz";
-        sha512 = "quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==";
+        sha512 = "00ccx66xcda4wlic1naxckbz0vbzyp0wrcj1wd5dqlr08n264s7c00i4dbq41fnq9b6ip7w1j9n3qyg2kd8hwpfd76i5z3xqrg1msma";
       };
     };
     "ansi-escapes-3.2.0" = {
@@ -118,7 +118,7 @@ let
       version = "3.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
-        sha512 = "cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==";
+        sha512 = "12pp3q4c44hrzr2xl9vqjigwjn2wr1j0lhvshl75z5m6a97hqkd047sdcma1inzjvxhpkzk1qkvag7cw3sya32s9wsfasr6xsnnj63h";
       };
     };
     "ansi-regex-3.0.0" = {
@@ -136,7 +136,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
-        sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
+        sha512 = "1v2gfp292kslpvam0l0h1iba35yi0n7dc6qv6fmxsdyfcp6zakkl13vrh3hzsw4zgh50jrrsg7xb2q2hn4g8a0dmf947mfcylymxanm";
       };
     };
     "ansi-styles-3.2.1" = {
@@ -145,7 +145,7 @@ let
       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==";
+        sha512 = "2lgkskkj4c1fsnrksy0yffda0wss84p8lfiazdc7jli7iqnvrxkzbxjzpvx13lm28qw0zkawfxvz2bdiisc72ccy7hx8i8rm4iijgam";
       };
     };
     "array-differ-3.0.0" = {
@@ -154,7 +154,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz";
-        sha512 = "THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==";
+        sha512 = "0r28zgr6s5xc89py7m7slvhh08whrm0bg278byz4218hgw6gd11dc6hpirl0jgblv8n2h55vqixfpmsfqv2l8c0r0zw3d4a5rhmyysc";
       };
     };
     "array-union-2.1.0" = {
@@ -163,7 +163,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz";
-        sha512 = "HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==";
+        sha512 = "35whnhqnw23y121ilf8kl79pyqb9bjsg32gsazzlmww9zgk22c5jycf0vlkpsnp67rqw05hhw97hxw216hpnm6bxa620lyqwjhb2v0w";
       };
     };
     "arrify-2.0.1" = {
@@ -172,7 +172,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz";
-        sha512 = "3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==";
+        sha512 = "2xd8y87g4h0dfnifdci7lhbx35fjxaxrdmcb80kgxahcrqqpnykfkmxxgvpmrfjc7l4rxwk3k81l7n903gk1047idm4rwxwv3189nyx";
       };
     };
     "balanced-match-1.0.0" = {
@@ -190,7 +190,7 @@ let
       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==";
+        sha512 = "3mbfy80f2q6z8fwzch81hn7z0wjjsz6lwzz4jwrgr62pyql94mwi21k0l28xba2q1pydf8hf0jzzvr8w34rjmk135pjpmqfcj5kid4q";
       };
     };
     "bignumber.js-7.2.1" = {
@@ -199,7 +199,7 @@ let
       version = "7.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz";
-        sha512 = "S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==";
+        sha512 = "1sxpshc5qga6sjamj8h1jlswqv7fh7ixr77hbg9x07cwkr19n7vn7a76189gh2003d0p07i2iappgjyfg53bjxzf68iyc3c9q3g71ab";
       };
     };
     "brace-expansion-1.1.11" = {
@@ -208,7 +208,7 @@ let
       version = "1.1.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
-        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+        sha512 = "248cnpbbf0p32h53rd3g8wzpgrkaj4p078ra1g6l16f82i6bzkvmhwqan5rk88apbll9ly1476kngd7f7z27i3b3zxpbb3064f8yaw8";
       };
     };
     "braces-3.0.2" = {
@@ -217,7 +217,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
-        sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
+        sha512 = "38dmhgggv4r7xf3chli957yj4gzfv9xhif8zzaqjnxavkrs1qbmj9m84vxh42n1jl9sddy16ryp4g93l1p8dvrc1pbcvk2ippwadjvg";
       };
     };
     "buffer-equal-constant-time-1.0.1" = {
@@ -235,7 +235,7 @@ let
       version = "6.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz";
-        sha512 = "Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==";
+        sha512 = "214hpw087zbwnf1naz9184bbz0gn773j70jjvfj0vd7lll2i62j58606l281sz3dngjlhb2v5j00rnqy94y3yhwxmbyda62cc0dqg9s";
       };
     };
     "chalk-2.4.2" = {
@@ -244,7 +244,7 @@ let
       version = "2.4.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
-        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
+        sha512 = "2wr55z22i274wadq2cvpxga28a8igq9whc4m1q06sz5sn2hc4amradd5vd02wm92vyfg2qrb0bysd5drv7mfmlb2wqdf939v5zvxn1j";
       };
     };
     "chardet-0.7.0" = {
@@ -253,7 +253,7 @@ let
       version = "0.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz";
-        sha512 = "mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==";
+        sha512 = "1qg04aw34n3l68g6s6li7pfdspkj3zmb7qsqf096h19jwc34mv8sbhik4xcx9aazys1ycb5k736f4lql46s0rhl361pmlz1r86j4gwr";
       };
     };
     "clean-stack-2.2.0" = {
@@ -262,7 +262,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz";
-        sha512 = "4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==";
+        sha512 = "3a11z08fhd0c5rib496gi10xdi7al80hqy8y4r3zpckaqwgmm9iaarm5arkjr1rwlfg6yk8kics0h1qqqd0x8f5028y44wkfvs85n71";
       };
     };
     "cli-cursor-2.1.0" = {
@@ -280,7 +280,7 @@ let
       version = "0.2.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/cli-spinner/-/cli-spinner-0.2.10.tgz";
-        sha512 = "U0sSQ+JJvSLi1pAYuJykwiA8Dsr15uHEy85iCJ6A+0DjVxivr3d+N2Wjvodeg89uP5K6TswFkKBfAD7B3YSn/Q==";
+        sha512 = "3ysg16xq4z00px0j02wqkmsj8znxkw3bs3vx8v56xz7gbxg31by6h7vh2g0hqnfrg2f3rpmr873q862ljfbh64hsvi25ga9w91i4jsk";
       };
     };
     "cli-width-2.2.0" = {
@@ -307,7 +307,7 @@ let
       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==";
+        sha512 = "0d5pmdh1dh0qbpjrzdczwqkh0jwf8gxhq71mknwlxqz80h1q6kdrpghq4qfp0y4v650ia2jdihmzpb2n8hg00h72lnx05dgvysi9w21";
       };
     };
     "color-name-1.1.3" = {
@@ -325,7 +325,7 @@ let
       version = "2.20.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz";
-        sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==";
+        sha512 = "1qqrwy7z476gqa94kjjyyzyi3x49k28ji7znbc65plrp67yzmpa2yyslh6bl965yl4jqb2fwb2ljzhgcvv2xxj8ab86n5rgryc6958s";
       };
     };
     "concat-map-0.0.1" = {
@@ -343,7 +343,7 @@ let
       version = "4.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz";
-        sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==";
+        sha512 = "1kmf9j5pka2rsljg5x6shniwmgs9444ksgdn0d3fjmis7yghxxn2zj526s36ip8rmpfni9zpj8z74w7irax32a67j59xw38wk6hi055";
       };
     };
     "decompress-response-3.3.0" = {
@@ -361,7 +361,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz";
-        sha512 = "0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==";
+        sha512 = "1aidgab75g8sx8hi5491l2y5k4aag4j6f55kbmyapvyy4hmqdmvh0asr9p8bz2710awqak65jym8w00k6brb1a8v19zc7mcicv9v16h";
       };
     };
     "define-properties-1.1.3" = {
@@ -370,7 +370,7 @@ let
       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==";
+        sha512 = "1fsa8nx7qgi958fykj36cndsf8ygj3132if6k4a36mkf11bl2j2gn7dn2nz07mfsygkx0415yxrjpzx8j369z1767fvr57nm1h9zjnw";
       };
     };
     "del-5.1.0" = {
@@ -379,7 +379,7 @@ let
       version = "5.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/del/-/del-5.1.0.tgz";
-        sha512 = "wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==";
+        sha512 = "2fc139fcwy724dim9b5m6b6880q0s716r00ycmd8j13fhwasfrghks9w6mwzyqgvq0c4sgiadqixdv906pmp26xihyklwz7a4wp2zy0";
       };
     };
     "dir-glob-3.0.1" = {
@@ -388,7 +388,7 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz";
-        sha512 = "WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==";
+        sha512 = "0h761rklv8qk0vhv6ms98gsvdiyk8455iqqh6wh8dfal5xjx87gmmpyg7773zdrxwvhnzw58pan4rdqjfwkhcv653gsbq4is6kxcjjs";
       };
     };
     "dns-packet-5.2.1" = {
@@ -397,7 +397,7 @@ let
       version = "5.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/dns-packet/-/dns-packet-5.2.1.tgz";
-        sha512 = "JHj2yJeKOqlxzeuYpN1d56GfhzivAxavNwHj9co3qptECel27B1rLY5PifJAvubsInX5pGLDjAHuCfCUc2Zv/w==";
+        sha512 = "3znyrkkjkq0kvh1ik1n597rflifrrmy83r8jkwf5mmivv3nx44l96xa6z5gbqq16ypic0xg723rz8g7bpfs967brmqsjflajz4gcy14";
       };
     };
     "dns-socket-4.2.0" = {
@@ -406,7 +406,7 @@ let
       version = "4.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/dns-socket/-/dns-socket-4.2.0.tgz";
-        sha512 = "4XuD3z28jht3jvHbiom6fAipgG5LkjYeDLrX5OH8cbl0AtzTyUUAxGckcW8T7z0pLfBBV5qOiuC4wUEohk6FrQ==";
+        sha512 = "2nqakl6510w3f70ia79lms1y0njjggg2dpp2937qh04bjfkvh179fbizkhy9mxs1hg3d4jbds0aj23wpa4qmnziirvip3mw7pgq6yz1";
       };
     };
     "dotf-1.5.0" = {
@@ -415,7 +415,7 @@ let
       version = "1.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/dotf/-/dotf-1.5.0.tgz";
-        sha512 = "t0RzzkjSrc1jDxUde8cbD0q0mB9xk0Hdgt1joeMUwXcWiP9V+Ydw7gHjoeeuBN8aiJbnXAaCiM5/U1C2aN1F1g==";
+        sha512 = "3b4bpb8nr856zyfi210cp77js41mpq4mvks3qq1xrq8gyamzy41cxy12kis2qyxhbfl34vi3ycb8jhg3g3pn78m1xiwvbfj93776i5p";
       };
     };
     "duplexer3-0.1.4" = {
@@ -433,7 +433,7 @@ let
       version = "1.0.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz";
-        sha512 = "nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==";
+        sha512 = "1qianmi7icfcsfp04wpjqrf9fg9s0l3s8189a5s25494h9zvqf4mx72b7gwiynwpvv1yb3hrg5mklp8dn5287h9j7xdnv1b2vfjba4x";
       };
     };
     "ellipsize-0.1.0" = {
@@ -451,7 +451,7 @@ let
       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==";
+        sha512 = "3jyw0a0c7m1yxglwk7i5jh8zb3vvx7f9l4frbskxkgf9cyf4i8ww26p8bimnsryrh1dx7lwrxq64vbpjwfcv1svd4lg8m07fa53bv7s";
       };
     };
     "es-abstract-1.17.4" = {
@@ -460,7 +460,7 @@ let
       version = "1.17.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz";
-        sha512 = "Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==";
+        sha512 = "24sx605c7x5di53nzw0x2brrfvy4nw76ws0gsd1hskdifrcxafn8fwk0n11si002zxhfs9c8nba1acaj2zkrqrgp8k5vw0vz2dyxv81";
       };
     };
     "es-to-primitive-1.2.1" = {
@@ -469,7 +469,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
-        sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
+        sha512 = "2y6j97j2f10gc52kw7qin10gm24m5hz1qq7ph6jf89y8a9i8vb268f2q0z78qjmngc765y9v0f1ldc5qb10b638yqlabda90sbaa8s0";
       };
     };
     "escape-string-regexp-1.0.5" = {
@@ -487,7 +487,7 @@ let
       version = "5.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz";
-        sha512 = "i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==";
+        sha512 = "1czwwj9g33wdi578wfrx6cfs8fmh6yvjrpk620d415f4fiajm084fylyqywq45rc4mf7vrnrr6879c097akbgjf158yrzmkfip9gzcb";
       };
     };
     "exec-sh-0.2.2" = {
@@ -496,7 +496,7 @@ let
       version = "0.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz";
-        sha512 = "FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==";
+        sha512 = "01xwgxaanmd0h0i1pvqy0fk6sqxmab59mjww1mzj3dc25zzrw4z7n7rcl5wd1y7s38lvgcg815qc700kw36ipd42jsf8vji7lkh518l";
       };
     };
     "extend-3.0.2" = {
@@ -505,7 +505,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
-        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
+        sha512 = "3zad2109w3q3gh46s5msrnzfy2nl581sqpy20b52fs7v5pdjh3irpg7szl3xvh4sfy63218jy8ry6qlnir3baxbbfrb03swkw5swfky";
       };
     };
     "external-editor-3.1.0" = {
@@ -514,7 +514,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz";
-        sha512 = "hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==";
+        sha512 = "1xm0arqcf7jp9kgq1g67ss2jvj8kblzbb7dd7sj2gm1g8cj4ilcwnn8vwspz3rh83yjphbl1lvqdyivrji6ccmnp3k2rmk9gl4kii44";
       };
     };
     "fast-glob-3.2.2" = {
@@ -523,7 +523,7 @@ let
       version = "3.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz";
-        sha512 = "UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==";
+        sha512 = "3n0a23s3nq6f339d9hw9mw4plbzcdmglhzm09w7azz5fb34xiw60rhhhsvcvqw8c86h3ryfvmk1k624jlf36w3wrrijjhrfivd7qdah";
       };
     };
     "fast-text-encoding-1.0.1" = {
@@ -532,7 +532,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.1.tgz";
-        sha512 = "x4FEgaz3zNRtJfLFqJmHWxkMDDvXVtaznj2V9jiP8ACUJrUgist4bP9FmDL2Vew2Y9mEQI/tG4GqabaitYp9CQ==";
+        sha512 = "04pv2mmlav6kal13gnqyh44v5ikdv2myqr9higzdiwcp2i0nlk9807hiwwgd59xksrxcmnp7c60q6avhycsiigj4mnx9k7pmj0l90f7";
       };
     };
     "fastq-1.6.1" = {
@@ -541,7 +541,7 @@ let
       version = "1.6.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/fastq/-/fastq-1.6.1.tgz";
-        sha512 = "mpIH5sKYueh3YyeJwqtVo8sORi0CgtmkVbK6kZStpQlZBYQuTzG2CZ7idSiJuA7bY0SFCWUc5WIs+oYumGCQNw==";
+        sha512 = "0vr0q4q5s3glb32wlf6a2c58iixn3mqi4l7bqly16v32krfhh2mj2d5mna93fmjanjdk0h25m30xjx3anmw5297cdvyifcqqbk0g4ls";
       };
     };
     "figures-2.0.0" = {
@@ -559,7 +559,7 @@ let
       version = "7.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
-        sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
+        sha512 = "2jrai6ri6sni8xyi8yji49ai8vkczbbiw6pb3pd9bcdizb58ncgnhnfmghhw87flm8y96y2z16738lwdyshby665nv60ljcwwbkvsm8";
       };
     };
     "find-up-4.1.0" = {
@@ -568,7 +568,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz";
-        sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==";
+        sha512 = "2bi4wmj1qymhj4ap1nay5isn0w7x6ymxp30h5y1jv0hx7q0inmirmr09mn621h4alg0gpv2hjwl6ai2giw6pz7qvb85aqizsh0v14ry";
       };
     };
     "fs-extra-8.1.0" = {
@@ -577,7 +577,7 @@ let
       version = "8.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz";
-        sha512 = "yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==";
+        sha512 = "3i4dsx067a564yx62qy0gz15zvsihqybmmx56lqz4cbgh4fiv5ikrj53wa1rfcijlnkywx18az05m1541dm04gb51af57561s0506fa";
       };
     };
     "fs.realpath-1.0.0" = {
@@ -595,7 +595,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
-        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
+        sha512 = "38chm1mh077ksx6hy2sssfz4q29hf0ncb9k6ila7si54zqcpl5fxd1rh6wi82blqp7jcspf4aynr7jqhbsg2yc9y42xpqqp6c1jz2n8";
       };
     };
     "fuzzy-0.1.3" = {
@@ -613,7 +613,7 @@ let
       version = "2.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/gaxios/-/gaxios-2.3.2.tgz";
-        sha512 = "K/+py7UvKRDaEwEKlLiRKrFr+wjGjsMz5qH7Vs549QJS7cpSCOT/BbWL7pzqECflc46FcNPipjSfB+V1m8PAhw==";
+        sha512 = "23w1hwvfpjhg7rllvid6w45irrya9qhxaffx2xm0pzy822jrbnm40pmg375dyx1wqrw73n613xnpc9aj6w982h12gd10a9gnp5skzrb";
       };
     };
     "gcp-metadata-2.0.4" = {
@@ -622,7 +622,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-2.0.4.tgz";
-        sha512 = "p1lXhJvcKvJHWfQXhkd4Za1kyXRsGZA0JH7Cjs07W9hrg84d/j5tqQhbGewlSLx9gNyuQUid69uLux48YbggLg==";
+        sha512 = "0p21f317hgbp2yvxfflhhdfvj07vg284pn1jnq8m5nkxzhxrs1npn2v7g6qxhky4hs906bcfk4n9bb5g13qc5zlb53z4anwkf25fnd7";
       };
     };
     "get-stream-4.1.0" = {
@@ -631,7 +631,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz";
-        sha512 = "GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==";
+        sha512 = "3pwlllj9naaqzlc5axbxz4jqg3v533xd9jz945mjd3zmca3hh3pr1dpwc7416kjszw6igk060v6x2dgwpr7m1rd4djavmvr8bhavihq";
       };
     };
     "get-stream-5.1.0" = {
@@ -640,7 +640,7 @@ let
       version = "5.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz";
-        sha512 = "EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==";
+        sha512 = "21v525x0f3qrc6f343xp3wjwwrjf1l3x0lmp34hivvvmdcz0a681s0b9wx4k5r3r8jyhc5kd6dqrwqjhpbl285xg333gkgbxhagayhi";
       };
     };
     "glob-7.1.6" = {
@@ -649,7 +649,7 @@ let
       version = "7.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
-        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+        sha512 = "020qv13jbi1v4y5xavf6fw08h9svy4q9p67m4avkrrhgdjmk0c5k3h19bv7k6yn1vfxljpjw9kg81fbdg9v83cjplxvkn3v4v1v21ig";
       };
     };
     "glob-parent-5.1.0" = {
@@ -658,7 +658,7 @@ let
       version = "5.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz";
-        sha512 = "qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==";
+        sha512 = "23qivv79xv6rvb8fsi8hj0ic91ijfkw6dynzp8716bzafazq27dqc9ibxxlkfs7wqnhyzzimaa3xn8i22838ds157kyg60mfa152fxa";
       };
     };
     "globby-10.0.2" = {
@@ -667,7 +667,7 @@ let
       version = "10.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz";
-        sha512 = "7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==";
+        sha512 = "151032pigk461rknfg3y4n80dcxsl597vl4hqkz4ylb620zzbh45bn3zl4lc8brn0klvjpqs2lfi79p9gvs6zybdbqkz8f23gnj5mgd";
       };
     };
     "google-auth-library-4.2.6" = {
@@ -676,7 +676,7 @@ let
       version = "4.2.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/google-auth-library/-/google-auth-library-4.2.6.tgz";
-        sha512 = "oJ6tCA9rbsYeIVY+mcLPFHa2hatz3XO6idYIrlI/KhhlMxZrO3tKyU8O2Pxu5KnSBBP7Wj4HtbM1LLKngNFaFw==";
+        sha512 = "0bmmlc0lyr2qddknl3kwnpv2c2d5ag4dvydh3jgr557nfvb2qrna61a7x9aw26ni6x77pbkmf2vcxhlrz19jgjn44gccvkb1w4av7m0";
       };
     };
     "google-p12-pem-2.0.4" = {
@@ -685,7 +685,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.4.tgz";
-        sha512 = "S4blHBQWZRnEW44OcR7TL9WR+QCqByRvhNDZ/uuQfpxywfupikf/miba8js1jZi6ZOGv5slgSuoshCWh6EMDzg==";
+        sha512 = "3706hz8l4jq8b7a99hckrmgw5jbm64d6lxz5ni6kbzlg2m9zg0p573yj3mzxnfhhipj81xa03wr3m9gscg723lfbg21jr8n2hffb1jb";
       };
     };
     "googleapis-40.0.1" = {
@@ -694,7 +694,7 @@ let
       version = "40.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/googleapis/-/googleapis-40.0.1.tgz";
-        sha512 = "B6qZVCautOOspEhru9GZ814I+ztkGWyA4ZEUfaXwXHBruX/HAWqedbsuUEx1w3nCECywK/FLTNUdcbH9zpaMaw==";
+        sha512 = "1mqr5nfznqp27fm9i5z2axh5h8c4yf3fm650bmvfng6l0f7gywnnw2wy2jps54iw606q6b47gxhhppkk78vnss8ljnf7d5f4ra9kah7";
       };
     };
     "googleapis-common-2.0.4" = {
@@ -703,7 +703,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/googleapis-common/-/googleapis-common-2.0.4.tgz";
-        sha512 = "8RRkxr24v1jIKCC1onFWA8RGnwFV55m3Qpil9DLX1yLc9e5qvOJsRoDOhhD2e7jFRONYEhT/BzT8vJZANqSr9w==";
+        sha512 = "3vsp91n82bbrz1l0zzi84jqwd2cbf3vyq88dkl08rnf5g3axvsxq8npswrg99cq8avrkrsm06gldi03arqs5d905345igxqpp36857i";
       };
     };
     "got-9.6.0" = {
@@ -712,7 +712,7 @@ let
       version = "9.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/got/-/got-9.6.0.tgz";
-        sha512 = "R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==";
+        sha512 = "3whcjwqag287wncrji9r9bi3jv8ynkn1hpwdqghqdf8fms01xrjfsaf3z27k14kfjy55aa8gmfbx3nymxgpjd1vi9q8q6gfsnk9dds7";
       };
     };
     "graceful-fs-4.2.3" = {
@@ -721,7 +721,7 @@ let
       version = "4.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
-        sha512 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==";
+        sha512 = "12xdl6ai5jdxcpcavw2hk4zpiknz7g7f2cvgawzwlzv7cy7qf7riq8ymkgqdqxjkpl1mg627dxa65zc9b0yqhflsmqlfg5q3481azbb";
       };
     };
     "gtoken-3.0.2" = {
@@ -730,7 +730,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/gtoken/-/gtoken-3.0.2.tgz";
-        sha512 = "BOBi6Zz31JfxhSHRZBIDdbwIbOPyux10WxJHdx8wz/FMP1zyN1xFrsAWsgcLe5ww5v/OZu/MePUEZAjgJXSauA==";
+        sha512 = "2w9lx15w046817mg36fyrnfzzk3173v1c3v45n0mr2mqdzjbhzlrwfg60gpfiqjbds1vfzjwdn0ig3m0c969l91hpqrgm7pkkln5q04";
       };
     };
     "has-1.0.3" = {
@@ -739,7 +739,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
-        sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
+        sha512 = "37vh53c11hws66navka0w9xxm6rcr034bxpyvaldiqz1msafqf0jpi1aqxbaygs53arz9y510qg6dl6vrm285hrxniygs2l8lxnyrvz";
       };
     };
     "has-flag-3.0.0" = {
@@ -757,7 +757,7 @@ let
       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==";
+        sha512 = "0mb9d5yqvznqmq073hdc4wl7175niiqpkpb7iqqv8p0q6xgmrhfap9ni6iwrx44w8p9vyg8n3zsllil5pdflzlh462dkydymfi2rdrw";
       };
     };
     "http-cache-semantics-4.1.0" = {
@@ -766,7 +766,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz";
-        sha512 = "carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==";
+        sha512 = "1qvqr3inc283iggn9x9wwiv1zb634i5zmlh8dnl2c5n4czaf2yibs4dncrgxfg7zrdfkcali22mvys4pgyhmfqjb57b91qlay9czaki";
       };
     };
     "https-proxy-agent-5.0.0" = {
@@ -775,7 +775,7 @@ let
       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==";
+        sha512 = "1n8bc76isd6i45f468ydmgdl77xp7k226d38ij8z6d79b5xjm0fq07bqbsgd914wdd4ld2n4cz3wjm655qvglhwpffnhl0a2zj2cihj";
       };
     };
     "iconv-lite-0.4.24" = {
@@ -784,7 +784,7 @@ let
       version = "0.4.24";
       src = fetchurl {
         url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
-        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+        sha512 = "2n3ygx6km56rdcd5kq52bs2113xqm3vlw2kb9r7pnmxd2qhxrfahp2ngc4w7x8x76fyfpapnixnbjq1i24nc11mj6q7rghwj2fifwxz";
       };
     };
     "ignore-5.1.4" = {
@@ -793,7 +793,7 @@ let
       version = "5.1.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz";
-        sha512 = "MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==";
+        sha512 = "3q41bskh27g3dd95nqaf3lg1ck1iv1dbb6hhzg1jqlkk6j80q5sxb4i3n4k6rfw5nmnvrflaxvi281c7cv2ljlsxip6skb4m14x8dik";
       };
     };
     "indent-string-4.0.0" = {
@@ -802,7 +802,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz";
-        sha512 = "EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==";
+        sha512 = "3172bpzypayzfssbv1vi2anfh58k8bib049cd8m3fy1cvc480k43jnfq45i24acki0kbm54pfcn63pvqrngzsxj5f4frn00xrkc7l0i";
       };
     };
     "inflight-1.0.6" = {
@@ -829,7 +829,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
-        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+        sha512 = "30rw2i1k63pbf0n5dbwly05h95cdp1kj8c9r15gv1cwha141g61k56fx4qwsvhpm1ksnf7agch1wxirs3s0m31wbfvmcqizgrlwdywk";
       };
     };
     "inquirer-6.5.2" = {
@@ -838,7 +838,7 @@ let
       version = "6.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz";
-        sha512 = "cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==";
+        sha512 = "1qz47j4jjik343ic5fx92q3jv1mfspj9ka574l6jbxr0mh8w1as4945qnl70m5v6rrgxcw64lg0p27j4bx3mfgfp0i1vf11k03nayvj";
       };
     };
     "inquirer-autocomplete-prompt-1.0.1" = {
@@ -847,7 +847,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.0.1.tgz";
-        sha512 = "Y4V6ifAu9LNrNjcEtYq8YUKhrgmmufUn5fsDQqeWgHY8rEO6ZAQkNUiZtBm2kw2uUQlC9HdgrRCHDhTPPguH5A==";
+        sha512 = "3j8f2ryrwa0x1qhmmh7gx22158sw3cknqcv96a86lj08r5s8fn3qxl0jskl40zvwlkzbfd616pa2hk1pj5ba11p6rmv7x1fy24pm1b3";
       };
     };
     "ip-1.1.5" = {
@@ -865,7 +865,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ip-regex/-/ip-regex-4.1.0.tgz";
-        sha512 = "pKnZpbgCTfH/1NLIlOduP/V+WRXzC2MOz3Qo8xmxk8C5GudJLgK5QyLVXOSWy3ParAH7Eemurl3xjv/WXYFvMA==";
+        sha512 = "0q6z0axsvzqxwaxmspfj4gv06ndlwybjvj5rm928fwh4bj9wwdbkh4kn4cz6a3lrw7662zk2mcpxx9zdvkr9j6jskzz2k82p2jxkad4";
       };
     };
     "is-callable-1.1.5" = {
@@ -874,7 +874,7 @@ let
       version = "1.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz";
-        sha512 = "ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==";
+        sha512 = "3wmff73yzck45x5shydqswbww8zkl03i43yhy7mm6av9770yvd2gj7xfrc8f45fw2ncn7mwblxvxlcap5rngmklkjiis902qgkay8hi";
       };
     };
     "is-date-object-1.0.2" = {
@@ -883,7 +883,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz";
-        sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==";
+        sha512 = "39f971gzwirnxjw4b72c175nbn1hnmrn1wljvbzvxv69hw9vpialhjafh9nkh0g3p26a49zss3rr7pxfww1f6day4s89hmqkm7l6aai";
       };
     };
     "is-extglob-2.1.1" = {
@@ -910,7 +910,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
-        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
+        sha512 = "19c23n8r8rfbz5rgs5csbjbpwgxvwi7y6kpsvlylgs2v1r1z2zm18qzzz2g8vnnwaldn5c4qalpc6p88rl0gjrrm278j52ks0m2svg4";
       };
     };
     "is-ip-3.1.0" = {
@@ -919,7 +919,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz";
-        sha512 = "35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==";
+        sha512 = "3shj9n4j2lm2ls8bzxgfcj28jad9ci5bdy3pmdvgqr7zrbgpaiw9i03qg3p9l4myp3y4vnn42gidb3s07v7gqsknhib4fwwfzkdv6yz";
       };
     };
     "is-number-7.0.0" = {
@@ -928,7 +928,7 @@ let
       version = "7.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz";
-        sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
+        sha512 = "2g7332xqrb0cm36cn6rwdmgq7sllf9w19sf6jy4w0s4vgqdq1kngsnpz0z49i3vnknk8ms442yjllrdbqxbap9ajprc8yrs91za4l73";
       };
     };
     "is-online-8.2.1" = {
@@ -937,7 +937,7 @@ let
       version = "8.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-online/-/is-online-8.2.1.tgz";
-        sha512 = "853p45I2b//EDV7n1Rbk60f/fy1KQlp1IkTjV/K2EyAD/h8qXrIAxwIbZ8c4K5p5yDsQlTWUrxocgW/aBtNfYQ==";
+        sha512 = "1hmzlq6v9pq270smya3b58h7g47k6ib733nf6q2qw0b4pia3zz0680knvr5gqs449smlhja5mzzyizbwhbdbrsy1p2gyvrnjbiyk7gk";
       };
     };
     "is-path-cwd-2.2.0" = {
@@ -946,7 +946,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz";
-        sha512 = "w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==";
+        sha512 = "0aws7clcb9cyvvb4430df9fhfnpg9bl1n07ymzp7jdzia0bvjg25gyd39xp2xhgkgpkqazw8csglblifdql0rpj4kfwg1r26xnkdpn3";
       };
     };
     "is-path-inside-3.0.2" = {
@@ -955,7 +955,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz";
-        sha512 = "/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==";
+        sha512 = "1b02q8dp20gbph14ccd8fd9cm9kmxvqncp92j49c7bfnraidy0m27ic454xrza7iyhfz147d5jz1qwfqz8g0wabsqlardi650yhcrgz";
       };
     };
     "is-promise-2.1.0" = {
@@ -973,7 +973,7 @@ let
       version = "1.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz";
-        sha512 = "vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==";
+        sha512 = "1hqaalcf1yqll2yzm71a1axvid0x87jp41hyicw16rl12rrh6sp6srr9lk7wxm6a1vl3ypw8qyd0imbq8fl2h7yq8l8xawdnkbrclmy";
       };
     };
     "is-stream-2.0.0" = {
@@ -982,7 +982,7 @@ let
       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==";
+        sha512 = "09j5ybpil7bgiffzq9gw66svm3rrgx634aghkwyslbdx382iqpy991cf3kwfk2jh9bi8fjz5wa996wsjwmq21lzz5svgbsld7wk4ajw";
       };
     };
     "is-symbol-1.0.3" = {
@@ -991,7 +991,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz";
-        sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==";
+        sha512 = "1lmzzy2360gfg5639x8mzi5fpc1bgpdx0ffjlqaz9affd0lvvpi7yjwk15jsm1y1l8rf5jahyapv6rm2w3p86gxkghsp0jjlj2s621v";
       };
     };
     "is-wsl-1.1.0" = {
@@ -1036,7 +1036,7 @@ let
       version = "6.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz";
-        sha512 = "jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==";
+        sha512 = "038bg8hpg0xbzfcas7llqd4fn4mimcr0xfl7azcsi3kqrra3x0lbrn1dvq0nh082ik799mnj1z4i9hl5myc6znbp87g5nnxzvk9n7cd";
       };
     };
     "jwa-1.4.1" = {
@@ -1045,7 +1045,7 @@ let
       version = "1.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz";
-        sha512 = "qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==";
+        sha512 = "10ayxzbvjd8a52s9dzlxbvjqab1fchaq0vfvj7smqp0gyp0v4v731rdsapsbwvvxib4xjpk0ksg1kbs3c9qi1cy02a5442433zxf8ma";
       };
     };
     "jws-3.2.2" = {
@@ -1054,7 +1054,7 @@ let
       version = "3.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz";
-        sha512 = "YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==";
+        sha512 = "0fb9ijf27cljn3nlj1r7xvqjzz71pbrpavhxmvqapb219f31v7ikrdlphxbdxdbaw2fplmlqj5yqx35zxy3qlivb1jkjcd53q45jyb0";
       };
     };
     "keyv-3.1.0" = {
@@ -1063,7 +1063,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz";
-        sha512 = "9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==";
+        sha512 = "1a1q61z26z860lq8pvcbaz1fii1ipafnk7iab6zs7dqijwiq8mr83cnh1h30jird29s2q4345gszcs3fg48kv6g7i5gydwjivzhjagp";
       };
     };
     "locate-path-5.0.0" = {
@@ -1072,7 +1072,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz";
-        sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
+        sha512 = "3r6llra9imfvg31342986kfkzm34ficva43avn7cng5inb9f5xrnr64jm4pykjjjbjs9np0mhia370ysnf97w4m6jqgnniyjbv71f5p";
       };
     };
     "lodash-4.17.15" = {
@@ -1081,7 +1081,7 @@ let
       version = "4.17.15";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz";
-        sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==";
+        sha512 = "3a41cs1932x00vd7h32v6rfkaak3vhkwv4x0bg27ilhlmbpl95r3abc4vja21k42cdfprsy3sdfcp2xs02sfp1fflf7m3n2gd29q4zk";
       };
     };
     "lowercase-keys-1.0.1" = {
@@ -1090,7 +1090,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz";
-        sha512 = "G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==";
+        sha512 = "1a7qa1zn5zl1nf7i6w3299lc3biabfb0w2c30cl770l2dbldvi72nwvjdlinhx7j0ldip82sj710aprdjbmbg782i2pa3jpbgmy6qhv";
       };
     };
     "lowercase-keys-2.0.0" = {
@@ -1099,7 +1099,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz";
-        sha512 = "tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==";
+        sha512 = "2c8fy71cr597nqfq7savid5rdk1msa2pcvxkn504w8bksci9vpm7x3a9yy87zc1lb5chzqnii12rd1h0jpc8k3kxy2c787w5snmg8xn";
       };
     };
     "lru-cache-5.1.1" = {
@@ -1108,7 +1108,7 @@ let
       version = "5.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz";
-        sha512 = "KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==";
+        sha512 = "3vjhn04mjkxbkfb4fh7xnlghlgmqffqp5i1w2vg1ndgh5izv7nwvr8lq1n1hypfs5pm3bvbk7wf3fjm2pavld1hipz0n8rp012l14ra";
       };
     };
     "merge-1.2.1" = {
@@ -1117,7 +1117,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz";
-        sha512 = "VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==";
+        sha512 = "2yh381iph3hr5c720br83iwv18hncwqhqgp9ilnl3dgblm2s7p36skfcqlbv6xqkf6lmlf9h638gb75ds0b3wy2pvwdi1jnzvh6hcan";
       };
     };
     "merge2-1.3.0" = {
@@ -1126,7 +1126,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz";
-        sha512 = "2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==";
+        sha512 = "1inz1swib3crzbwlqrpy74dhmn520qgzg5lkfmm3k1334lpb98d0xjpa6ydpdgwnp013j1n5m2yqkac4r75w6lbcj94hfj1v40h6gns";
       };
     };
     "micromatch-4.0.2" = {
@@ -1135,7 +1135,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz";
-        sha512 = "y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==";
+        sha512 = "3jiz9pr94hycvjgzxbxi0jfz7n142n3z5w14im7i0088lymjpvj8xrapr8s66xcp13ylh374hbpm9ixp8rln55n7lrcll6c4qfnkcfb";
       };
     };
     "mime-2.4.4" = {
@@ -1144,7 +1144,7 @@ let
       version = "2.4.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz";
-        sha512 = "LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==";
+        sha512 = "0c4qs0w88nqz2v7441rw9bbsgrsh50cifwmqm2i7c96yz2ncdy35cb5g42zhr6z0wmqqcwq5la04nnf1n4y3zncvgyg8b721hvnc71d";
       };
     };
     "mimic-fn-1.2.0" = {
@@ -1153,7 +1153,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz";
-        sha512 = "jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==";
+        sha512 = "1clrrqw75rmpkw0x53axy8va2hq2gzynz9zb58m0xv1nh3lg81cv4dfdy7pk9vrlb9ydwmj6klpicwkv2bjx3m8aj4fi2ph3jxkizwd";
       };
     };
     "mimic-response-1.0.1" = {
@@ -1162,7 +1162,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz";
-        sha512 = "j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==";
+        sha512 = "32nwz24nh1f2nbpk8i638ff8hsg1ajmc6746abkssjr951z28362k5a92dd1cfr7bd1l9f507cn0pbam04ixfgsaygskv87g6v1r4cg";
       };
     };
     "minimatch-3.0.4" = {
@@ -1171,7 +1171,7 @@ let
       version = "3.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
-        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+        sha512 = "1879a3j85h92ypvb7lpv1dqpcxl49rqnbgs5la18zmj1yqhwl60c2m74254wbr5pp3znckqpkg9dvjyrz6hfz8b9vag5a3j910db4f8";
       };
     };
     "minimist-0.0.8" = {
@@ -1189,7 +1189,7 @@ let
       version = "1.2.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
-        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+        sha512 = "0pif0kjsr0cdm73cyicn9xdx9zkly45w4akmyfa39lkaf6lzysfr8kr145p54wjk26pbsk0w0qfdds3k4bxy4wl5l210i1b8qsngkql";
       };
     };
     "mkdirp-0.5.1" = {
@@ -1207,7 +1207,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
-        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+        sha512 = "3dqfiiw6nxvvi24fndbzlccnjcas99bsd1kz5m2r78lzgpp6vx57jzbmxq3k1m7bsw88rwra0n4848l720fxxn5x20djck3wp3hysdh";
       };
     };
     "multimatch-4.0.0" = {
@@ -1216,7 +1216,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz";
-        sha512 = "lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==";
+        sha512 = "02j464lazavd58a1qw29i6lj1g4rkilw7clssc5dp3pmkac528qpi95aazwdqqypsdk4338lqkz6mmbixh68x6w8jxsikxmvkpv2fcl";
       };
     };
     "mute-stream-0.0.7" = {
@@ -1234,7 +1234,7 @@ let
       version = "2.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz";
-        sha512 = "8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==";
+        sha512 = "0s2drvlvgsan0f7cs66kbxxhqj4c399kf35h0jaya2v5syck1afzsx0pbyrlvpncg6ch93r5m88gcz5s3bvp59rm1ig2zm3kcgvilgi";
       };
     };
     "node-forge-0.9.1" = {
@@ -1243,7 +1243,7 @@ let
       version = "0.9.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-forge/-/node-forge-0.9.1.tgz";
-        sha512 = "G6RlQt5Sb4GMBzXvhfkeFmbqR6MzhtnT7VTHuLadjkii3rdYHNdw0m8zA4BTxVIh68FicCQ2NSUANpsqkr9jvQ==";
+        sha512 = "2yn7gwj5adkc0156lv28w32q7mj2ln5af006cvgs9qdf72qnzga4j4fknvbiislxp9xk1ikld3ylrhn3vwqbvrm0y682vsjvr16b90v";
       };
     };
     "normalize-url-4.5.0" = {
@@ -1252,7 +1252,7 @@ let
       version = "4.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz";
-        sha512 = "2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==";
+        sha512 = "02k93b4vrh4rvz479dc5rjv43v54pzz5k5kn21cx6gl2b1c45s3sb29cy4cyifvfl9zqghs9m1f5kcv0hp4cwp8sigyqx9i6p5kpkns";
       };
     };
     "object-inspect-1.7.0" = {
@@ -1261,7 +1261,7 @@ let
       version = "1.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz";
-        sha512 = "a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==";
+        sha512 = "19lmsxagwl8zzqckw6p0bdjwjbq2bshicnw78az9ka40d0gjghmdm0ify1n3857fxadv43c6v0g27rk1dl514iwh40a5i3mv0fl9fkb";
       };
     };
     "object-keys-1.1.1" = {
@@ -1270,7 +1270,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
-        sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
+        sha512 = "0nf2rr25ncya39v7cq274x3w4drfbdrc3iqdwd017s1wndwh9plsjagbvhl6j6l6piipprdsvgfx4vfz8q2piz7bi4bjcll8d4h9q1n";
       };
     };
     "object.assign-4.1.0" = {
@@ -1279,7 +1279,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz";
-        sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==";
+        sha512 = "3krdp08gvbxvipalq64qy7bm86znxxdb7ap6bjki235qs17i9fsn6hqd22ga31sqyqa6iyy5xjfnnqc7lsck1kaybwsh154mrxcj4bv";
       };
     };
     "once-1.4.0" = {
@@ -1306,7 +1306,7 @@ let
       version = "6.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/open/-/open-6.4.0.tgz";
-        sha512 = "IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==";
+        sha512 = "0da91ydfkavxd733v8b3bvcrp681xirng4nyrazinl5bc2y3aacjd2g1bnapmzpp7g85bk42qh064hclbflj7jrkg94gvq5z1aafmr0";
       };
     };
     "os-tmpdir-1.0.2" = {
@@ -1324,7 +1324,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-any/-/p-any-2.1.0.tgz";
-        sha512 = "JAERcaMBLYKMq+voYw36+x5Dgh47+/o7yuv2oQYuSSUml4YeqJEFznBrY2UeEkoSHqBua6hz518n/PsowTYLLg==";
+        sha512 = "0p0ndn153xzq9szwxrshsvfl0g14jhj3rjn6svhrq2r3a0yhsbjc9a95q3a3xpbr8xzmyrv3s1467pvz86n7s7bmf684b81ldqi2094";
       };
     };
     "p-cancelable-1.1.0" = {
@@ -1333,7 +1333,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz";
-        sha512 = "s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==";
+        sha512 = "2bmkd9ncr81p8w6jy9v676ajg9q27znbjk80r723ydvf8gxk000q13693dhbd22dcagrmhwyjxblmm8w4xnfn6ng5srpkkqwv2dggdk";
       };
     };
     "p-cancelable-2.0.0" = {
@@ -1342,7 +1342,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz";
-        sha512 = "wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==";
+        sha512 = "0va49l2crhr6kr1lgbrjc69hz9scdrarzbrzpvddkfdb9wdr16bv48qajb2m0n6fjammxhvj68d4r35wyfy209rnajfv6nccq7dgwy2";
       };
     };
     "p-finally-1.0.0" = {
@@ -1360,7 +1360,7 @@ let
       version = "2.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz";
-        sha512 = "WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==";
+        sha512 = "36v4kvifp6msn6gaal1pgwy5qi56fbv8295221a6araml7nzxsnw2jfy7i6k7ybxy3dida9xxnyx447s8i8f15m27xklacwfz27wr2q";
       };
     };
     "p-locate-4.1.0" = {
@@ -1369,7 +1369,7 @@ let
       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==";
+        sha512 = "3n0ljmpk3p2j4aaz345w5gkqr128xkhflcb83k75fgns5ddd4bpx7l0q50w9kwy5792xb8d3dpf8bwgzif3463spf3140rhzmkmkgs7";
       };
     };
     "p-map-3.0.0" = {
@@ -1378,7 +1378,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz";
-        sha512 = "d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==";
+        sha512 = "32jjm4kiyqvq9n9z6x2zwd31ylcwil7qq1mzq7gcx7qf9n7jqs9b1zvh1c6rxhcjshqchchq2gpc1fbf1ph6yfj16zfbcvz65arfykp";
       };
     };
     "p-some-4.1.0" = {
@@ -1387,7 +1387,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-some/-/p-some-4.1.0.tgz";
-        sha512 = "MF/HIbq6GeBqTrTIl5OJubzkGU+qfFhAFi0gnTAK6rgEIJIknEiABHOTtQu4e6JiXjIwuMPMUFQzyHh5QjCl1g==";
+        sha512 = "3baac22g5wchcsla36c7f1h69g658kvp05vb4vk0j04i714j8h09f7a18q9s81d2r05hz5a9wcy9g5ri69rgj5l9rmf06dsp8hwfprh";
       };
     };
     "p-timeout-3.2.0" = {
@@ -1396,7 +1396,7 @@ let
       version = "3.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz";
-        sha512 = "rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==";
+        sha512 = "03cbpzps5mxhlp6hywp92mnnrj4b6ag82f8vdqyz59xrxsrpn58qbh8nzrpiix2asj2d333i81aq0pw9bhki4yw7yf05hr04x9k04mf";
       };
     };
     "p-try-2.2.0" = {
@@ -1405,7 +1405,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
-        sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
+        sha512 = "1skmb50xzdk3qzd1f9l5mw8xp29frkizl63bhb9l1amivqybqb23n2824906vx790hjlwyhhrfzpzr5xr6ilzvy1xyl0ly0ah0wz2a7";
       };
     };
     "path-0.12.7" = {
@@ -1423,7 +1423,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz";
-        sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
+        sha512 = "3zvnv1dp30y10br2qy98z8760jssvps6g9swamdclgxsmhm14dyq0yacrj0d4mk915qhr1z0yh8l3dyd68wn7h7bgv8d39vjk5m0kva";
       };
     };
     "path-is-absolute-1.0.1" = {
@@ -1441,7 +1441,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz";
-        sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
+        sha512 = "2zw0czk4p8vimrxap6mlnw17lbjrhisby3z1m2j0qdhjcnxlv9lk5d8yxirrqy4ax6ar5qx14rpshmbpvzg9b4mnpzy03aclvqrncl0";
       };
     };
     "picomatch-2.2.1" = {
@@ -1450,7 +1450,7 @@ let
       version = "2.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz";
-        sha512 = "ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==";
+        sha512 = "12a2jzmkj24c6k3x71z0knzflw9qqhqx0lk27nrryjs6m7gjmszvgz5pp29xx1h7h7xxaj8cl3i5h98hlx3mpif5h26qdjhrh1ml811";
       };
     };
     "pluralize-8.0.0" = {
@@ -1459,7 +1459,7 @@ let
       version = "8.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz";
-        sha512 = "Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==";
+        sha512 = "048n73397ya45yj4w1pkxy058nkpkzgqcfv89xb3nqs9fi2227kndyi2qhcqzs90zlmkq5jl86kp6iy09kskq5qgm9zkkc7ki7wik9m";
       };
     };
     "prepend-http-2.0.0" = {
@@ -1486,7 +1486,7 @@ let
       version = "3.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/public-ip/-/public-ip-3.2.0.tgz";
-        sha512 = "DBq4o955zhrhESG4z6GkLN9mtY9NT/JOjEV8pvnYy3bjVQOQF0J5lJNwWLbEWwNstyNFJlY7JxCPFq4bdXSabw==";
+        sha512 = "1prlx3m3fp1d3qh4wxmc9j54fvnq0svqjv5hw4kjiwl45wh0day6xnbv3wscz25ii7g4ksdiysndprcljhwzf1127himkkrvsivh6hc";
       };
     };
     "pump-3.0.0" = {
@@ -1495,7 +1495,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz";
-        sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==";
+        sha512 = "31n24fqakqmhzk2ch644gziskmysmrgiwclsdsr0rwk9spgikqpwickbnayap0rynfjlq72s7iny2p35n3qszypr97ws5njkpx741ig";
       };
     };
     "qs-6.9.1" = {
@@ -1504,7 +1504,7 @@ let
       version = "6.9.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz";
-        sha512 = "Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==";
+        sha512 = "343mpmbfcwx584cqi6siamc4m9z7ljzikmkvgsjm1kncmi1ci4b9k7k9li1gm2l694zxh38l216m0clzivcb4km61vzdjxz4kyvn68b";
       };
     };
     "recursive-readdir-2.2.2" = {
@@ -1513,7 +1513,7 @@ let
       version = "2.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz";
-        sha512 = "nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==";
+        sha512 = "0bb5d70l5lg02x515r2klvjhhz6xcxdb4ykbx16wq45l822bbsdd8sbki7vb28j17xr7181fmwlzhx3bizvr5xdq6cxpv53sidrq44x";
       };
     };
     "responselike-1.0.2" = {
@@ -1540,7 +1540,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz";
-        sha512 = "U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==";
+        sha512 = "37z410bxpvfjlxmd0rfrzmvd4dl33kqqgi51xp8hbbxxwzdddy5q1b20x9msvqhxvhj93w85fr2hlizsi7rfx91j3gcyzdpqvrwgnak";
       };
     };
     "rimraf-3.0.2" = {
@@ -1549,7 +1549,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz";
-        sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
+        sha512 = "0h97b8bvn1w87brifdhlnq9qnjxm0pmw87igc4fvvcfzx3h83shp3fszy2k09ff5q44zk1i1c34rjbcryamsak67x7m2600k4qhk695";
       };
     };
     "run-async-2.4.0" = {
@@ -1558,7 +1558,7 @@ let
       version = "2.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz";
-        sha512 = "xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==";
+        sha512 = "2k7xr99g0l8qvqzd66mpwp3wylfay2i27dh5ca3bmr92l5yixlk0dh53z9ljvyrm3mi7jz89il8gq55sgdv8d8p0v96wbkvyy3xp564";
       };
     };
     "run-parallel-1.1.9" = {
@@ -1567,7 +1567,7 @@ let
       version = "1.1.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz";
-        sha512 = "DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==";
+        sha512 = "3sl2kbxcwy92faw7zm0z4vql32622mag0bh6dv4bjk7cvc8a9sarvdclr9508hknhl0b7v8kzqvg3klvvff7psmvkfg9hy32i4sfjhc";
       };
     };
     "rxjs-6.5.4" = {
@@ -1576,7 +1576,7 @@ let
       version = "6.5.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz";
-        sha512 = "naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==";
+        sha512 = "3nzzg67sr57cc5n1065xsxjgrwa405bgbgqm9l8w01lnr660cy8zdjk99hm2n0did4kd75nwiz3843mfbrw7bs100n7g8q4r1fi18wx";
       };
     };
     "safe-buffer-5.2.0" = {
@@ -1585,7 +1585,7 @@ let
       version = "5.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==";
+        sha512 = "1pb164cfv1ip3s1rp008433rak88mdcch24q84cbfndg0dzky2ij8vjvsiyx2qf3rg4dgs82zk7vnrd9hkqqdcvp4lbk5ymcr8314bx";
       };
     };
     "safer-buffer-2.1.2" = {
@@ -1594,7 +1594,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+        sha512 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1";
       };
     };
     "signal-exit-3.0.2" = {
@@ -1612,7 +1612,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz";
-        sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==";
+        sha512 = "3cj4cvlh36f0h6f3dslbkwa3y9nnny8qmwbf4kw3xy8vfbg5mypknds3j2cdhf7xg82hm8smdl8cq88xn4nyw1b9677xjwvly2kbm43";
       };
     };
     "split-lines-2.0.0" = {
@@ -1621,7 +1621,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/split-lines/-/split-lines-2.0.0.tgz";
-        sha512 = "gaIdhbqxkB5/VflPXsJwZvEzh/kdwiRPF9iqpkxX4us+lzB8INedFwjCyo6vwuz5x2Ddlnav2zh270CEjCG8mA==";
+        sha512 = "2cbq8cchi0fyxiqvfppd5nxc33zkv62my7cmhh82yfxf83w62bkxsz2ax6adanq2x7j9hhxz63k7wb6f315wkzramzix45ipa2iv8l1";
       };
     };
     "string-width-2.1.1" = {
@@ -1630,7 +1630,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
-        sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
+        sha512 = "29s1fqgr4mnhfxwczgdghfmmc1f792m9hysvcjxw2h5lfj8ndf2b6gm02m96qk5m75g4aisijvng4pk618anwbr8i9ay2jyszkqgslw";
       };
     };
     "string.prototype.padend-3.1.0" = {
@@ -1639,7 +1639,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz";
-        sha512 = "3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA==";
+        sha512 = "1l02s91pznws3jzzip0dkcpj5vb41p716rcnw5msglxjyxg87ycmxjvj94bwiy0rklnmbgj4dk981m50q8w32y8iwcw39yxazq2z8nx";
       };
     };
     "string.prototype.trimleft-2.1.1" = {
@@ -1648,7 +1648,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz";
-        sha512 = "iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==";
+        sha512 = "013lf0f398s2xb9jhq9acspdnnk52k7whcga9am4b8a2wrgpc2w7xgkydg4sg4ah9z3i1syimzqs7dc89390xmwlx8zxf6gvlcq1vca";
       };
     };
     "string.prototype.trimright-2.1.1" = {
@@ -1657,7 +1657,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz";
-        sha512 = "qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==";
+        sha512 = "3x2qc2fc2fh9sj3vw9w45h246vspjfn88b0k356ldazylhap91vg825bppg73s9n63kwpql3gpw24lv8zx0b2arblcqhh7ygwpxcnx8";
       };
     };
     "strip-ansi-4.0.0" = {
@@ -1675,7 +1675,7 @@ let
       version = "5.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
-        sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
+        sha512 = "1cf4mpsr46nik5xxyb9wc4cz6c4yymi2ijpfx1nghnkl39l8pgq1sc7q19jzrjkwpn9i7hwg4q3rs4ny3vssrc6506an1lv0bb6rr0f";
       };
     };
     "strip-bom-4.0.0" = {
@@ -1684,7 +1684,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz";
-        sha512 = "3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==";
+        sha512 = "39mszh7y7d23gk9n6hz9h26hj7f0yr4gdgl5804gflghmz6qi56gqkzv51x65jhw1vyixfih8h09777d6dz0qknvyi0h4kdzqban6yz";
       };
     };
     "supports-color-5.5.0" = {
@@ -1693,7 +1693,7 @@ let
       version = "5.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
-        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+        sha512 = "2ihqi2z38fr1sq2jvwqgjqymncmkhxqz0x3bi97w4b4fn24wsdy71j139p95sb3nfrh3a449n0sqhm1z0jsi04860y8vdy8sp0n6da2";
       };
     };
     "through-2.3.8" = {
@@ -1711,7 +1711,7 @@ let
       version = "0.0.33";
       src = fetchurl {
         url = "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz";
-        sha512 = "jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==";
+        sha512 = "0drg2bck1cj8677rgs1l98v7vqaxawcqh6ja87qilwnd719l5y0lzv5ssn3pcwa37fdbg4188y6x15a90vkllyvfpd9v7fai2b8j44d";
       };
     };
     "to-readable-stream-1.0.0" = {
@@ -1720,7 +1720,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz";
-        sha512 = "Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==";
+        sha512 = "38v92prncngfq4yfdn3frpy3j9x6bslii3spk436f0fhs6ls7gydxp23lrwjkd3f21s7zkn4j1zzp8lqrajsrgqlikkxk3s3dfbkb92";
       };
     };
     "to-regex-range-5.0.1" = {
@@ -1729,7 +1729,7 @@ let
       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==";
+        sha512 = "2qkrna8q80arai14s6f17djc3cgwiilnhibfykwzkif4gs9ny3fmqmxqf56fvc7fjwyr01p97nk1ckd67s8476cslmj3rwp7s5zp4zb";
       };
     };
     "ts2gas-3.6.1" = {
@@ -1738,7 +1738,7 @@ let
       version = "3.6.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ts2gas/-/ts2gas-3.6.1.tgz";
-        sha512 = "B/4OZJKslQytpAtRE0Q0MoZ0h8fyXzJDmMu1CIPdP6q3iEAQJHxCFTxUsrZWOCNQMIuFlxsEX/PHn41g8TVSvg==";
+        sha512 = "2z54dgic26rzizkbw21p5w5icq508rqasvb4m1w2m17q90h824bgaizvn1hidfbk11k4pzjqy3p91ij6i216l8bljnhr5dcj9j0xzh7";
       };
     };
     "tslib-1.11.1" = {
@@ -1747,7 +1747,7 @@ let
       version = "1.11.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz";
-        sha512 = "aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==";
+        sha512 = "0c0k843zya7w9k5snfr3g76wz2vyl99q149safl5g364jjwq839h3qf8c17i8mahdcqc3zj3xgfv0nv9pcxfm8axva0d49w4vqvr5b9";
       };
     };
     "type-fest-0.3.1" = {
@@ -1756,7 +1756,7 @@ let
       version = "0.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz";
-        sha512 = "cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==";
+        sha512 = "1hy8c4b243psdw221rnqcsn8j4hd5ndyy8fw6mnhlaxyf98f61gxlfdf6wb0dcvhil0b45yjrx44lx5bg8si87hg3dj9qbb4yf8jhbi";
       };
     };
     "typescript-3.8.3" = {
@@ -1765,7 +1765,7 @@ let
       version = "3.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz";
-        sha512 = "MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==";
+        sha512 = "3rwcbg3l3w3l2zr5y9lszqs30s29jzvh1w594rbdljyr582yi6vajzs2fg04s9p79klh3iv0980b91mbr94sl77h9nb7b2mgrz4929i";
       };
     };
     "universalify-0.1.2" = {
@@ -1774,7 +1774,7 @@ let
       version = "0.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz";
-        sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
+        sha512 = "29d9b6i7rf460m0c5761z6xzzjdl2q81ri19x5qcnvi9l85jp71f7lbr7bdk7sx3k3sqwcp9vfpmlh7srgfnzlmssr5j0lpj0imw4mc";
       };
     };
     "universalify-1.0.0" = {
@@ -1783,7 +1783,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz";
-        sha512 = "rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==";
+        sha512 = "2x2m7gasg0x9mp1grwg5r1bvsp5r32xn7dm3i1zp7n02saxc18hj6jj8kmn0l1j5nycwxm2z14xmqzj244ycq008plxxwbrdparggmd";
       };
     };
     "url-parse-lax-3.0.0" = {
@@ -1810,7 +1810,7 @@ let
       version = "0.10.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/util/-/util-0.10.4.tgz";
-        sha512 = "0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==";
+        sha512 = "3sbbgsya51i86ih8bn3nfwi3f9556xlnwh32z4k54dwcpi0jibhfa5dpbfmpzyla63yh2zlxs9chl6wkhc8bqjmjxjyxc9p6j2vvyfh";
       };
     };
     "uuid-3.4.0" = {
@@ -1819,7 +1819,7 @@ let
       version = "3.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
-        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+        sha512 = "3y9pcli1v8nqryqd2c4pxj9kcv92mjc22z4smg08pdjzrbwda19xmjbzms1dwr04995h4carz9s8mldbiqb8708694lwr501r3q6d0y";
       };
     };
     "watch-1.0.2" = {
@@ -1846,7 +1846,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
-        sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
+        sha512 = "3ig31a6zfbdlrs3l77a8avpp17hajryhyq2xk4h3ayc4dmxch146rdk7q1s1jgx9qvmxq125r0xq2bvnq0rq63m75k9y7wglm0hd1bb";
       };
     };
   };
@@ -1858,7 +1858,7 @@ in
     version = "2.2.1";
     src = fetchurl {
       url = "https://registry.npmjs.org/@google/clasp/-/clasp-2.2.1.tgz";
-      sha512 = "dUdEBfwOuC1d95o1ntZ+4a60M65q2vwvHvgD22bPCx+OU0m+ZUBs5rZSloh/IGDjEVqFbDsHU6SLgM0x3MOhgA==";
+      sha512 = "20a3hyw676q12x4ac3knv45b88y6q10gy49clmnwrn40rdy959qw7qbrxkdn0zq3qpzrnkamqrv9bp1gvb9wdcsyxfjvf0fzh2l8ivm";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.3"
diff --git a/pkgs/development/misc/h3/default.nix b/pkgs/development/misc/h3/default.nix
index 2b82cc2c0ae..32f65c0925c 100644
--- a/pkgs/development/misc/h3/default.nix
+++ b/pkgs/development/misc/h3/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "h3";
-  version = "3.6.3";
+  version = "3.6.4";
 
   src = fetchFromGitHub {
     owner = "uber";
     repo = "h3";
     rev = "v${version}";
-    sha256 = "1zgq496m2pk2c1l0r1di0p39nxwza00kxzqa971qd4xgbrvd4w55";
+    sha256 = "1a4scs5n9srq6sjkz8d60ffzpc6aadkxmk1i3hdj081j0jzsrpf7";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/misc/msp430/mspdebug.nix b/pkgs/development/misc/msp430/mspdebug.nix
index 3c7ff00151a..471dd5b3122 100644
--- a/pkgs/development/misc/msp430/mspdebug.nix
+++ b/pkgs/development/misc/msp430/mspdebug.nix
@@ -1,10 +1,22 @@
-{ stdenv, fetchFromGitHub, libusb-compat-0_1, readline ? null }:
+{ stdenv
+, fetchFromGitHub
+, autoPatchelfHook
+, libusb-compat-0_1
+, readline ? null
+, enableReadline ? true
+, hidapi ? null
+, pkg-config ? null
+, mspds ? null
+, enableMspds ? false
+}:
 
-let
+assert stdenv.isDarwin -> hidapi != null && pkg-config != null;
+assert enableReadline -> readline != null;
+assert enableMspds -> mspds != null;
+
+stdenv.mkDerivation rec {
   version = "0.25";
-in stdenv.mkDerivation {
   pname = "mspdebug";
-  inherit version;
   src = fetchFromGitHub {
     owner = "dlbeer";
     repo = "mspdebug";
@@ -12,9 +24,34 @@ in stdenv.mkDerivation {
     sha256 = "0prgwb5vx6fd4bj12ss1bbb6axj2kjyriyjxqrzd58s5jyyy8d3c";
   };
 
-  buildInputs = [ libusb-compat-0_1 readline ];
-  makeFlags = [ "PREFIX=$(out)" "INSTALL=install" ] ++
-    (if readline == null then [ "WITHOUT_READLINE=1" ] else []);
+  enableParallelBuilding = true;
+  nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin pkg-config
+  ++ stdenv.lib.optional (enableMspds && stdenv.isLinux) autoPatchelfHook;
+  buildInputs = [ libusb-compat-0_1 ]
+  ++ stdenv.lib.optional stdenv.isDarwin hidapi
+  ++ stdenv.lib.optional enableReadline readline;
+
+  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    # TODO: remove once a new 0.26+ release is made
+    substituteInPlace drivers/tilib_api.c --replace .so ${stdenv.hostPlatform.extensions.sharedLibrary}
+
+    # Makefile only uses pkg-config if it detects homebrew
+    substituteInPlace Makefile --replace brew true
+  '';
+
+  # TODO: wrap with MSPDEBUG_TILIB_PATH env var instead of these rpath fixups in 0.26+
+  runtimeDependencies = stdenv.lib.optional enableMspds mspds;
+  postFixup = stdenv.lib.optionalString (enableMspds && stdenv.isDarwin) ''
+    # autoPatchelfHook only works on linux so...
+    for dep in $runtimeDependencies; do
+      install_name_tool -add_rpath $dep/lib $out/bin/$pname
+    done
+  '';
+
+  installFlags = [ "PREFIX=$(out)" "INSTALL=install" ];
+  makeFlags = [ "UNAME_S=$(unameS)" ] ++
+    stdenv.lib.optional (!enableReadline) "WITHOUT_READLINE=1";
+  unameS = stdenv.lib.optionalString stdenv.isDarwin "Darwin";
 
   meta = with stdenv.lib; {
     description = "A free programmer, debugger, and gdb proxy for MSP430 MCUs";
diff --git a/pkgs/development/misc/rpiboot/unstable.nix b/pkgs/development/misc/rpiboot/unstable.nix
index 1591a1efd17..a8f7e4795e7 100644
--- a/pkgs/development/misc/rpiboot/unstable.nix
+++ b/pkgs/development/misc/rpiboot/unstable.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, libusb1 }:
 
 let
-  version = "2018-03-27";
+  version = "2020-05-11";
   name = "rpiboot-unstable-${version}";
 in stdenv.mkDerivation {
   inherit name;
@@ -9,8 +9,8 @@ in stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "usbboot";
-    rev = "fb86716935f2e820333b037a2ff93a338ad9b695";
-    sha256 = "163g7iw7kf6ra71adx6lf1xzf3kv20bppva15ljwn54jlah5mv98";
+    rev = "c650cd747c1d0597487dcf319bf95b5ba775d78b";
+    sha256 = "17kapny79dh05vfmrniqdvz6xhpwnqnw0511ycfx4qcjh4krxh8n";
   };
 
   nativeBuildInputs = [ libusb1 ];
diff --git a/pkgs/development/mobile/adb-sync/default.nix b/pkgs/development/mobile/adb-sync/default.nix
index 5c0f0c07c21..98f69ed88b1 100644
--- a/pkgs/development/mobile/adb-sync/default.nix
+++ b/pkgs/development/mobile/adb-sync/default.nix
@@ -1,24 +1,35 @@
-{ stdenv, fetchgit, python3, platform-tools, makeWrapper }:
+{ stdenv, fetchFromGitHub, python3, platform-tools, makeWrapper
+, socat, go-mtpfs, adbfs-rootless
+}:
 
 stdenv.mkDerivation {
-  pname = "adb-sync";
-  version = "2016-08-31";
+  pname = "adb-sync-unstable";
+  version = "2019-01-01";
 
-  src = fetchgit {
-    url = "https://github.com/google/adb-sync";
-    rev = "7fc48ad1e15129ebe34e9f89b04bfbb68ced144d";
-    sha256 = "1y016bjky5sn58v91jyqfz7vw8qfqnfhb9s9jd32k8y29hy5vy4d";
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "adb-sync";
+    rev = "fb7c549753de7a5579ed3400dd9f8ac71f7bf1b1";
+    sha256 = "1kfpdqs8lmnh144jcm1qmfnmigzrbrz5lvwvqqb7021b2jlf69cl";
   };
 
-  buildInputs = [ python3 platform-tools makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ python3 ];
 
-  phases = "installPhase";
+  dontBuild = true;
+
+  installPhase = let
+    dependencies = stdenv.lib.makeBinPath [ platform-tools socat go-mtpfs adbfs-rootless ];
+  in ''
+    runHook preInstall
 
-  installPhase = ''
     mkdir -p $out/bin
-    cp $src/adb-channel $src/adb-sync $out/bin/
-    patchShebangs $out/bin
-    wrapProgram $out/bin/adb-sync --suffix PATH : ${platform-tools}/bin
+    cp adb-{sync,channel} $out/bin
+
+    wrapProgram $out/bin/adb-sync --suffix PATH : "${dependencies}"
+    wrapProgram $out/bin/adb-channel --suffix PATH : "${dependencies}"
+
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
@@ -27,6 +38,6 @@ stdenv.mkDerivation {
     license = licenses.asl20;
     platforms = platforms.unix;
     hydraPlatforms = [];
-    maintainers = with maintainers; [ scolobb ];
+    maintainers = with maintainers; [ scolobb ma27 ];
   };
 }
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/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/emulator.nix b/pkgs/development/mobile/androidenv/emulator.nix
index 2402d5433ed..5840598d1c3 100644
--- a/pkgs/development/mobile/androidenv/emulator.nix
+++ b/pkgs/development/mobile/androidenv/emulator.nix
@@ -36,9 +36,12 @@ deployAndroidPackage {
     addAutoPatchelfSearchPath ${pkgs.libuuid.out}/lib
     autoPatchelf $out
 
-    # Wrap emulator so that it can load libdbus-1.so at runtime and it no longer complains about XKB keymaps
+    # Wrap emulator so that it can load required libraries at runtime
     wrapProgram $out/libexec/android-sdk/emulator/emulator \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pkgs.dbus ]} \
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ 
+        pkgs.dbus
+        pkgs.systemd
+      ]} \
       --set QT_XKB_CONFIG_ROOT ${pkgs.xkeyboard_config}/share/X11/xkb \
       --set QTCOMPOSE ${pkgs.xorg.libX11.out}/share/X11/locale
   '';
diff --git a/pkgs/development/mobile/cocoapods/Gemfile-beta.lock b/pkgs/development/mobile/cocoapods/Gemfile-beta.lock
index 355608ca02e..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.1)
-      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.1)
+    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.1)
-      activesupport (>= 4.0.2, < 5)
+    cocoapods (1.10.0.beta.2)
+      addressable (~> 2.6)
       claide (>= 1.0.2, < 2.0)
-      cocoapods-core (= 1.9.1)
+      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.1)
-      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.4.1)
+    cocoapods-trunk (1.5.0)
       nap (>= 0.8, < 2.0)
       netrc (~> 0.11)
-    cocoapods-try (1.1.0)
+    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)
-    minitest (5.14.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.3.1)
+    typhoeus (1.4.0)
       ethon (>= 0.9.0)
-    tzinfo (1.2.6)
+    tzinfo (1.2.7)
       thread_safe (~> 0.1)
-    xcodeproj (1.15.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
@@ -87,4 +90,4 @@ DEPENDENCIES
   cocoapods (>= 1.7.0.beta.1)!
 
 BUNDLED WITH
-   1.17.3
+   2.1.4
diff --git a/pkgs/development/mobile/cocoapods/Gemfile.lock b/pkgs/development/mobile/cocoapods/Gemfile.lock
index b8db94ca06a..9e891569d92 100644
--- a/pkgs/development/mobile/cocoapods/Gemfile.lock
+++ b/pkgs/development/mobile/cocoapods/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.2)
       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)
@@ -45,10 +45,10 @@ GEM
       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.1.0)
+    cocoapods-try (1.2.0)
     colored2 (3.1.2)
     concurrent-ruby (1.1.6)
     escape (0.0.4)
@@ -62,18 +62,18 @@ GEM
     i18n (0.9.5)
       concurrent-ruby (~> 1.0)
     json (2.3.0)
-    minitest (5.14.0)
+    minitest (5.14.1)
     molinillo (0.6.6)
     nanaimo (0.2.6)
     nap (1.1.0)
     netrc (0.11.0)
     ruby-macho (1.4.0)
     thread_safe (0.3.6)
-    typhoeus (1.3.1)
+    typhoeus (1.4.0)
       ethon (>= 0.9.0)
-    tzinfo (1.2.6)
+    tzinfo (1.2.7)
       thread_safe (~> 0.1)
-    xcodeproj (1.15.0)
+    xcodeproj (1.16.0)
       CFPropertyList (>= 2.3.3, < 4.0)
       atomos (~> 0.1.3)
       claide (>= 1.0.2, < 2.0)
diff --git a/pkgs/development/mobile/cocoapods/gemset-beta.nix b/pkgs/development/mobile/cocoapods/gemset-beta.nix
index 1a5912b89e8..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 = "1vbq7a805bfvyik2q3kl9s3r418f5qzvysqbz2cwy4hr7m2q4ir6";
+      sha256 = "02fdawr3wyvpzpja3r7mvb8lmn2mm5jdw502bx3ncr2sy2nw1kx6";
       type = "gem";
     };
-    version = "4.2.11.1";
+    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 = "1ayg8j3819ay2d8618jv32ca16fh8qsgjsiq9j32yd016c170nkj";
+      sha256 = "1z94dnx0rljsfa3k24i1nc0vf1nfk3bbk89nqc6n1ax25h4fs5sw";
       type = "gem";
     };
-    version = "1.27.1";
+    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 = "0wxr81qy4jsbxl066nlfp8zlqk31i6fsmd7f01xmi9bv04990hrs";
+      sha256 = "0jf5q75h410b6gymy86j4zy9yhb6n28wa7hrk8p7y2dsafdzbric";
       type = "gem";
     };
-    version = "1.9.1";
+    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 = "0c1679fkyp06dwsh93r0ldzly9vc74g0br4jdngwvdl4g0j4fyzc";
+      sha256 = "0vrw6v5fp0m903ghvfwaw3mbxrr68x7hz9bj34rj4icirwp4ifyl";
       type = "gem";
     };
-    version = "1.9.1";
+    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,36 +125,26 @@
     };
     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"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vrwsgaq3nf7v3pwksgqy0mhswrp3ipczrc96vl3ii2pcc9ilwkw";
+      sha256 = "12c6028bmdwrbqcb49mr5qj1p3vcijnjqbsbzywfx1isp44j9mv5";
       type = "gem";
     };
-    version = "1.4.1";
+    version = "1.5.0";
   };
   cocoapods-try = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gf2zjmcjhh9psq15yfy82wz5jnlihf5bcw79f8hlv4cnqyspncj";
+      sha256 = "1znyp625rql37ivb5rk9fk9564cmax8icxfr041ysivpdrn98nql";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.0";
   };
   colored2 = {
     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,30 +243,30 @@
     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"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz";
+      sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
       type = "gem";
     };
-    version = "5.14.0";
+    version = "5.14.1";
   };
   molinillo = {
     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 = [];
@@ -333,10 +344,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"];
@@ -344,10 +355,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04f18jdv6z3zn3va50rqq35nj3izjpb72fnf21ixm7vanq6nc4fp";
+      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
       type = "gem";
     };
-    version = "1.2.6";
+    version = "1.2.7";
   };
   xcodeproj = {
     dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
@@ -355,9 +366,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ldb1jckfzkk9c74nv500z0q936nn25fn5mywzwrh7sjwgkaxp5z";
+      sha256 = "18idiqfbvyrcyflccwy4qw125psckrnqy7ggci33m8f3zs8h7hnm";
       type = "gem";
     };
-    version = "1.15.0";
+    version = "1.18.0";
   };
 }
\ No newline at end of file
diff --git a/pkgs/development/mobile/cocoapods/gemset.nix b/pkgs/development/mobile/cocoapods/gemset.nix
index 4d4979d5620..8ff1b2e118b 100644
--- a/pkgs/development/mobile/cocoapods/gemset.nix
+++ b/pkgs/development/mobile/cocoapods/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 = "1b3xk42ry6dlsqn379p884zdi4iyra67xh45rwl6vcrwmrnbq7f0";
       type = "gem";
     };
-    version = "1.27.1";
+    version = "1.27.2";
   };
   atomos = {
     source = {
@@ -55,10 +55,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"];
@@ -66,10 +66,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"];
@@ -124,18 +124,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vrwsgaq3nf7v3pwksgqy0mhswrp3ipczrc96vl3ii2pcc9ilwkw";
+      sha256 = "12c6028bmdwrbqcb49mr5qj1p3vcijnjqbsbzywfx1isp44j9mv5";
       type = "gem";
     };
-    version = "1.4.1";
+    version = "1.5.0";
   };
   cocoapods-try = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gf2zjmcjhh9psq15yfy82wz5jnlihf5bcw79f8hlv4cnqyspncj";
+      sha256 = "1znyp625rql37ivb5rk9fk9564cmax8icxfr041ysivpdrn98nql";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.0";
   };
   colored2 = {
     source = {
@@ -244,10 +246,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz";
+      sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
       type = "gem";
     };
-    version = "5.14.0";
+    version = "5.14.1";
   };
   molinillo = {
     source = {
@@ -305,10 +307,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"];
@@ -316,10 +318,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04f18jdv6z3zn3va50rqq35nj3izjpb72fnf21ixm7vanq6nc4fp";
+      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
       type = "gem";
     };
-    version = "1.2.6";
+    version = "1.2.7";
   };
   xcodeproj = {
     dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
@@ -327,9 +329,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ldb1jckfzkk9c74nv500z0q936nn25fn5mywzwrh7sjwgkaxp5z";
+      sha256 = "1bkk8y6lzd86w9yx72hd1nil3fkk5f0v3il9vm554gzpl6dhc2bi";
       type = "gem";
     };
-    version = "1.15.0";
+    version = "1.16.0";
   };
 }
\ No newline at end of file
diff --git a/pkgs/development/mobile/titaniumenv/default.nix b/pkgs/development/mobile/titaniumenv/default.nix
index 5e0f943a158..44ec91d7e59 100644
--- a/pkgs/development/mobile/titaniumenv/default.nix
+++ b/pkgs/development/mobile/titaniumenv/default.nix
@@ -13,7 +13,7 @@ rec {
 
   buildApp = import ./build-app.nix {
     inherit (pkgs) stdenv python which file jdk nodejs;
-    inherit (pkgs.nodePackages_10_x) alloy titanium;
+    inherit (pkgs.nodePackages) alloy titanium;
     inherit (androidenv) composeAndroidPackages;
     inherit (xcodeenv) composeXcodeWrapper;
     inherit titaniumsdk;
diff --git a/pkgs/development/node-packages/composition-v12.nix b/pkgs/development/node-packages/composition.nix
index a3a7bc25677..c970861a86f 100644
--- a/pkgs/development/node-packages/composition-v12.nix
+++ b/pkgs/development/node-packages/composition.nix
@@ -11,7 +11,7 @@ let
     libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
   };
 in
-import ./node-packages-v12.nix {
+import ./node-packages.nix {
   inherit (pkgs) fetchurl fetchgit;
   inherit nodeEnv;
 }
\ No newline at end of file
diff --git a/pkgs/development/node-packages/default-v10.nix b/pkgs/development/node-packages/default-v10.nix
deleted file mode 100644
index 9e9d8894f0d..00000000000
--- a/pkgs/development/node-packages/default-v10.nix
+++ /dev/null
@@ -1,132 +0,0 @@
-{ pkgs, nodejs, stdenv }:
-
-let
-  nodePackages = import ./composition-v10.nix {
-    inherit pkgs nodejs;
-    inherit (stdenv.hostPlatform) system;
-  };
-in
-nodePackages // {
-  "@angular/cli" = nodePackages."@angular/cli".override {
-    prePatch = ''
-      export NG_CLI_ANALYTICS=false
-    '';
-  };
-  bower2nix = nodePackages.bower2nix.override {
-    buildInputs = [ pkgs.makeWrapper ];
-    postInstall = ''
-      for prog in bower2nix fetch-bower; do
-        wrapProgram "$out/bin/$prog" --prefix PATH : ${stdenv.lib.makeBinPath [ pkgs.git pkgs.nix ]}
-      done
-    '';
-  };
-
-  jshint = nodePackages.jshint.override {
-    buildInputs = [ pkgs.phantomjs2 ];
-  };
-
-  dat = nodePackages.dat.override {
-    buildInputs = [ nodePackages.node-gyp-build pkgs.libtool pkgs.autoconf pkgs.automake ];
-  };
-
-  dnschain = nodePackages.dnschain.override {
-    buildInputs = [ pkgs.makeWrapper nodePackages.coffee-script ];
-    postInstall = ''
-      wrapProgram $out/bin/dnschain --suffix PATH : ${pkgs.openssl.bin}/bin
-    '';
-  };
-
-  bitwarden-cli = pkgs.lib.overrideDerivation nodePackages."@bitwarden/cli" (drv: {
-    name = "bitwarden-cli-${drv.version}";
-  });
-
-  ios-deploy = nodePackages.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"
-    '';
-  });
-
-  fast-cli = nodePackages."fast-cli-1.x".override {
-    preRebuild = ''
-      # Simply ignore the phantomjs --version check. It seems to need a display but it is safe to ignore
-      sed -i -e "s|console.error('Error verifying phantomjs, continuing', err)|console.error('Error verifying phantomjs, continuing', err); return true;|" node_modules/phantomjs-prebuilt/lib/util.js
-    '';
-    buildInputs = [ pkgs.phantomjs2 ];
-  };
-
-  git-ssb = nodePackages.git-ssb.override {
-    buildInputs = [ nodePackages.node-gyp-build ];
-  };
-
-  insect = nodePackages.insect.override (drv: {
-    nativeBuildInputs = drv.nativeBuildInputs or [] ++ [ pkgs.psc-package pkgs.purescript nodePackages.pulp ];
-  });
-
-  node-inspector = nodePackages.node-inspector.override {
-    buildInputs = [ nodePackages.node-pre-gyp ];
-  };
-
-  node2nix =  nodePackages.node2nix.override {
-    buildInputs = [ pkgs.makeWrapper ];
-    postInstall = ''
-      wrapProgram "$out/bin/node2nix" --prefix PATH : ${stdenv.lib.makeBinPath [ pkgs.nix ]}
-    '';
-  };
-
-  pnpm = nodePackages.pnpm.override {
-    nativeBuildInputs = [ pkgs.makeWrapper ];
-
-    preRebuild = ''
-      sed 's/"link:/"file:/g' --in-place package.json
-    '';
-
-    postInstall = let
-      pnpmLibPath = stdenv.lib.makeBinPath [
-        nodejs.passthru.python
-        nodejs
-      ];
-    in ''
-      for prog in $out/bin/*; do
-        wrapProgram "$prog" --prefix PATH : ${pnpmLibPath}
-      done
-    '';
-  };
-
-  ssb-server = nodePackages.ssb-server.override {
-    buildInputs = [ pkgs.automake pkgs.autoconf nodePackages.node-gyp-build ];
-  };
-
-  tedicross = nodePackages."tedicross-git+https://github.com/TediCross/TediCross.git#v0.8.7".override {
-    nativeBuildInputs = [ pkgs.makeWrapper ];
-    postInstall = ''
-      makeWrapper '${nodejs}/bin/node' "$out/bin/tedicross" \
-        --add-flags "$out/lib/node_modules/tedicross/main.js"
-    '';
-  };
-
-  webtorrent-cli = nodePackages.webtorrent-cli.override {
-    buildInputs = [ nodePackages.node-gyp-build ];
-  };
-
-  joplin = nodePackages.joplin.override {
-    nativeBuildInputs = [ pkgs.pkg-config ];
-    buildInputs = with pkgs; [
-      # required by sharp
-      # https://sharp.pixelplumbing.com/install
-      vips
-
-      nodePackages.node-pre-gyp
-    ];
-  };
-
-  thelounge = nodePackages.thelounge.override {
-    buildInputs = [ nodePackages.node-pre-gyp ];
-    postInstall = ''
-      echo /var/lib/thelounge > $out/lib/node_modules/thelounge/.thelounge_home
-    '';
-  };
-}
diff --git a/pkgs/development/node-packages/default-v12.nix b/pkgs/development/node-packages/default-v12.nix
deleted file mode 100644
index c5db060989e..00000000000
--- a/pkgs/development/node-packages/default-v12.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ pkgs, nodejs, stdenv }:
-
-let
-  nodePackages = import ./composition-v12.nix {
-    inherit pkgs nodejs;
-    inherit (stdenv.hostPlatform) system;
-  };
-in
-nodePackages // {
-  node2nix = nodePackages.node2nix.override {
-    buildInputs = [ pkgs.makeWrapper ];
-    postInstall = ''
-      wrapProgram "$out/bin/node2nix" --prefix PATH : ${stdenv.lib.makeBinPath [ pkgs.nix ]}
-    '';
-  };
-}
diff --git a/pkgs/development/node-packages/default-v13.nix b/pkgs/development/node-packages/default-v13.nix
deleted file mode 100644
index 242aaa70d66..00000000000
--- a/pkgs/development/node-packages/default-v13.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ pkgs, nodejs, stdenv }:
-
-let
-  nodePackages = import ./composition-v13.nix {
-    inherit pkgs nodejs;
-    inherit (stdenv.hostPlatform) system;
-  };
-in
-nodePackages // {
-  node2nix = nodePackages.node2nix.override {
-    buildInputs = [ pkgs.makeWrapper ];
-    postInstall = ''
-      wrapProgram "$out/bin/node2nix" --prefix PATH : ${stdenv.lib.makeBinPath [ pkgs.nix ]}
-    '';
-  };
-}
diff --git a/pkgs/development/node-packages/default.nix b/pkgs/development/node-packages/default.nix
new file mode 100644
index 00000000000..61581e1a430
--- /dev/null
+++ b/pkgs/development/node-packages/default.nix
@@ -0,0 +1,187 @@
+{ pkgs, nodejs, stdenv }:
+
+let
+  since = (version: pkgs.lib.versionAtLeast nodejs.version version);
+  before = (version: pkgs.lib.versionOlder nodejs.version version);
+  super = import ./composition.nix {
+    inherit pkgs nodejs;
+    inherit (stdenv.hostPlatform) system;
+  };
+  self = super // {
+    "@angular/cli" = super."@angular/cli".override {
+      prePatch = ''
+        export NG_CLI_ANALYTICS=false
+      '';
+    };
+    bower2nix = super.bower2nix.override {
+      buildInputs = [ pkgs.makeWrapper ];
+      postInstall = ''
+        for prog in bower2nix fetch-bower; do
+          wrapProgram "$out/bin/$prog" --prefix PATH : ${stdenv.lib.makeBinPath [ pkgs.git pkgs.nix ]}
+        done
+      '';
+    };
+
+    coc-imselect = super.coc-imselect.override {
+      meta.broken = since "10";
+    };
+
+    "fast-cli-1.x" = super."fast-cli-1.x".override {
+      meta.broken = since "10";
+    };
+
+    jshint = super.jshint.override {
+      buildInputs = [ pkgs.phantomjs2 ];
+    };
+
+    dat = super.dat.override {
+      buildInputs = [ self.node-gyp-build pkgs.libtool pkgs.autoconf pkgs.automake ];
+      meta.broken = since "12";
+    };
+
+    bitwarden-cli = pkgs.lib.overrideDerivation super."@bitwarden/cli" (drv: {
+      name = "bitwarden-cli-${drv.version}";
+    });
+
+    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
+        sed -i -e "s|console.error('Error verifying phantomjs, continuing', err)|console.error('Error verifying phantomjs, continuing', err); return true;|" node_modules/phantomjs-prebuilt/lib/util.js
+      '';
+      buildInputs = [ pkgs.phantomjs2 ];
+    };
+
+    git-ssb = super.git-ssb.override {
+      buildInputs = [ self.node-gyp-build ];
+      meta.broken = since "10";
+    };
+
+    insect = super.insect.override (drv: {
+      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";
+    };
+
+    node2nix = super.node2nix.override {
+      buildInputs = [ pkgs.makeWrapper ];
+      postInstall = ''
+        wrapProgram "$out/bin/node2nix" --prefix PATH : ${stdenv.lib.makeBinPath [ pkgs.nix ]}
+      '';
+    };
+
+    node-red = super.node-red.override {
+      meta.broken = since "10";
+    };
+
+    pnpm = super.pnpm.override {
+      nativeBuildInputs = [ pkgs.makeWrapper ];
+
+      preRebuild = ''
+        sed 's/"link:/"file:/g' --in-place package.json
+      '';
+
+      postInstall = let
+        pnpmLibPath = stdenv.lib.makeBinPath [
+          nodejs.passthru.python
+          nodejs
+        ];
+      in ''
+        for prog in $out/bin/*; do
+          wrapProgram "$prog" --prefix PATH : ${pnpmLibPath}
+        done
+      '';
+    };
+
+    pulp = super.pulp.override {
+      # tries to install purescript
+      npmFlags = "--ignore-scripts";
+
+      nativeBuildInputs = [ pkgs.makeWrapper ];
+      postInstall =  ''
+        wrapProgram "$out/bin/pulp" --suffix PATH : ${stdenv.lib.makeBinPath [
+          pkgs.purescript
+        ]}
+      '';
+    };
+
+    ssb-server = super.ssb-server.override {
+      buildInputs = [ pkgs.automake pkgs.autoconf self.node-gyp-build ];
+      meta.broken = since "10";
+    };
+
+    tedicross = super."tedicross-git+https://github.com/TediCross/TediCross.git#v0.8.7".override {
+      nativeBuildInputs = [ pkgs.makeWrapper ];
+      postInstall = ''
+        makeWrapper '${nodejs}/bin/node' "$out/bin/tedicross" \
+          --add-flags "$out/lib/node_modules/tedicross/main.js"
+      '';
+    };
+
+    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";
+    };
+
+    webtorrent-cli = super.webtorrent-cli.override {
+      buildInputs = [ self.node-gyp-build ];
+    };
+
+    joplin = super.joplin.override {
+      nativeBuildInputs = [ pkgs.pkg-config ];
+      buildInputs = with pkgs; [
+        # required by sharp
+        # https://sharp.pixelplumbing.com/install
+        vips
+
+        self.node-pre-gyp
+      ];
+    };
+
+    thelounge = super.thelounge.override {
+      buildInputs = [ self.node-pre-gyp ];
+      postInstall = ''
+        echo /var/lib/thelounge > $out/lib/node_modules/thelounge/.thelounge_home
+      '';
+    };
+  };
+in self
diff --git a/pkgs/development/node-packages/generate.sh b/pkgs/development/node-packages/generate.sh
index d25671b1a6d..5f9936c5124 100755
--- a/pkgs/development/node-packages/generate.sh
+++ b/pkgs/development/node-packages/generate.sh
@@ -6,6 +6,4 @@ node2nix=$(nix-build ../../.. --no-out-link -A nodePackages.node2nix)
 
 cd ${DIR}
 rm -f ./node-env.nix
-for version in 10 12 13; do
-  "${node2nix}/bin/node2nix" --nodejs-$version -i node-packages-v$version.json -o node-packages-v$version.nix -c composition-v$version.nix
-done
+${node2nix}/bin/node2nix -i node-packages.json -o node-packages.nix -c composition.nix
diff --git a/pkgs/development/node-packages/node-packages-v12.json b/pkgs/development/node-packages/node-packages-v12.json
deleted file mode 100644
index 01f36b015ca..00000000000
--- a/pkgs/development/node-packages/node-packages-v12.json
+++ /dev/null
@@ -1,9 +0,0 @@
-[
-  "coffee-script"
-, "grunt-cli"
-, "nijs"
-, "node2nix"
-, "node-gyp"
-, "node-gyp-build"
-, "node-pre-gyp"
-]
diff --git a/pkgs/development/node-packages/node-packages-v12.nix b/pkgs/development/node-packages/node-packages-v12.nix
deleted file mode 100644
index 52465b099a5..00000000000
--- a/pkgs/development/node-packages/node-packages-v12.nix
+++ /dev/null
@@ -1,3185 +0,0 @@
-# This file has been generated by node2nix 1.8.0. Do not edit!
-
-{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
-
-let
-  sources = {
-    "abbrev-1.1.1" = {
-      name = "abbrev";
-      packageName = "abbrev";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
-        sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
-      };
-    };
-    "ajv-6.12.0" = {
-      name = "ajv";
-      packageName = "ajv";
-      version = "6.12.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz";
-        sha512 = "D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "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-each-1.0.1" = {
-      name = "array-each";
-      packageName = "array-each";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz";
-        sha1 = "a794af0c05ab1752846ee753a1f211a05ba0c44f";
-      };
-    };
-    "array-slice-1.1.0" = {
-      name = "array-slice";
-      packageName = "array-slice";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz";
-        sha512 = "B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "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.9.1" = {
-      name = "aws4";
-      packageName = "aws4";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz";
-        sha512 = "wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "builtins-1.0.3" = {
-      name = "builtins";
-      packageName = "builtins";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz";
-        sha1 = "cb94faeb61c8696451db36534e1422f94f0aee88";
-      };
-    };
-    "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==";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "config-chain-1.1.12" = {
-      name = "config-chain";
-      packageName = "config-chain";
-      version = "1.1.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz";
-        sha512 = "a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==";
-      };
-    };
-    "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";
-      };
-    };
-    "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-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";
-      };
-    };
-    "dashdash-1.14.1" = {
-      name = "dashdash";
-      packageName = "dashdash";
-      version = "1.14.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
-        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
-      };
-    };
-    "debug-2.6.9" = {
-      name = "debug";
-      packageName = "debug";
-      version = "2.6.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
-        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
-      };
-    };
-    "debug-3.2.6" = {
-      name = "debug";
-      packageName = "debug";
-      version = "3.2.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
-        sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "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-file-1.0.0" = {
-      name = "detect-file";
-      packageName = "detect-file";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz";
-        sha1 = "f0d66d03672a825cb1b73bdb3fe62310c8e552b7";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "env-paths-2.2.0" = {
-      name = "env-paths";
-      packageName = "env-paths";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz";
-        sha512 = "6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==";
-      };
-    };
-    "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-tilde-2.0.2" = {
-      name = "expand-tilde";
-      packageName = "expand-tilde";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz";
-        sha1 = "97e801aa052df02454de46b02bf621642cdc8502";
-      };
-    };
-    "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.1" = {
-      name = "fast-deep-equal";
-      packageName = "fast-deep-equal";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
-        sha512 = "8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==";
-      };
-    };
-    "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==";
-      };
-    };
-    "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";
-      };
-    };
-    "findit-2.0.0" = {
-      name = "findit";
-      packageName = "findit";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/findit/-/findit-2.0.0.tgz";
-        sha1 = "6509f0126af4c178551cfa99394e032e13a4d56e";
-      };
-    };
-    "findup-sync-2.0.0" = {
-      name = "findup-sync";
-      packageName = "findup-sync";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz";
-        sha1 = "9326b1488c22d1a6088650a86901b2d9a90a2cbc";
-      };
-    };
-    "fined-1.2.0" = {
-      name = "fined";
-      packageName = "fined";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz";
-        sha512 = "ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==";
-      };
-    };
-    "flagged-respawn-1.0.1" = {
-      name = "flagged-respawn";
-      packageName = "flagged-respawn";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz";
-        sha512 = "lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==";
-      };
-    };
-    "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";
-      };
-    };
-    "for-own-1.0.0" = {
-      name = "for-own";
-      packageName = "for-own";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz";
-        sha1 = "c63332f415cedc4b04dbfe70cf836494c53cb44b";
-      };
-    };
-    "foreachasync-3.0.0" = {
-      name = "foreachasync";
-      packageName = "foreachasync";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz";
-        sha1 = "5502987dc8714be3392097f32e0071c9dee07cf6";
-      };
-    };
-    "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-extra-0.6.4" = {
-      name = "fs-extra";
-      packageName = "fs-extra";
-      version = "0.6.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-0.6.4.tgz";
-        sha1 = "f46f0c75b7841f8d200b3348cd4d691d5a099d15";
-      };
-    };
-    "fs-minipass-1.2.7" = {
-      name = "fs-minipass";
-      packageName = "fs-minipass";
-      version = "1.2.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz";
-        sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==";
-      };
-    };
-    "fs-minipass-2.1.0" = {
-      name = "fs-minipass";
-      packageName = "fs-minipass";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz";
-        sha512 = "V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==";
-      };
-    };
-    "fs.extra-1.3.2" = {
-      name = "fs.extra";
-      packageName = "fs.extra";
-      version = "1.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs.extra/-/fs.extra-1.3.2.tgz";
-        sha1 = "dd023f93013bee24531f1b33514c37b20fd93349";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "global-modules-1.0.0" = {
-      name = "global-modules";
-      packageName = "global-modules";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz";
-        sha512 = "sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==";
-      };
-    };
-    "global-prefix-1.0.2" = {
-      name = "global-prefix";
-      packageName = "global-prefix";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz";
-        sha1 = "dbf743c6c14992593c655568cb66ed32c0122ebe";
-      };
-    };
-    "graceful-fs-4.2.3" = {
-      name = "graceful-fs";
-      packageName = "graceful-fs";
-      version = "4.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
-        sha512 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==";
-      };
-    };
-    "grunt-known-options-1.1.1" = {
-      name = "grunt-known-options";
-      packageName = "grunt-known-options";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz";
-        sha512 = "cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==";
-      };
-    };
-    "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.3" = {
-      name = "har-validator";
-      packageName = "har-validator";
-      version = "5.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
-        sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
-      };
-    };
-    "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";
-      };
-    };
-    "homedir-polyfill-1.0.3" = {
-      name = "homedir-polyfill";
-      packageName = "homedir-polyfill";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz";
-        sha512 = "eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==";
-      };
-    };
-    "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==";
-      };
-    };
-    "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";
-      };
-    };
-    "iconv-lite-0.4.24" = {
-      name = "iconv-lite";
-      packageName = "iconv-lite";
-      version = "0.4.24";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
-        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
-      };
-    };
-    "ignore-walk-3.0.3" = {
-      name = "ignore-walk";
-      packageName = "ignore-walk";
-      version = "3.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz";
-        sha512 = "m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==";
-      };
-    };
-    "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.1.0" = {
-      name = "interpret";
-      packageName = "interpret";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz";
-        sha1 = "7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614";
-      };
-    };
-    "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-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-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-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-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-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-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-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-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==";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "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-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";
-      };
-    };
-    "jsonfile-1.0.1" = {
-      name = "jsonfile";
-      packageName = "jsonfile";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-1.0.1.tgz";
-        sha1 = "ea5efe40b83690b98667614a7392fc60e842c0dd";
-      };
-    };
-    "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==";
-      };
-    };
-    "liftoff-2.5.0" = {
-      name = "liftoff";
-      packageName = "liftoff";
-      version = "2.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz";
-        sha1 = "2009291bb31cea861bbf10a7c15a28caf75c31ec";
-      };
-    };
-    "make-iterator-1.0.1" = {
-      name = "make-iterator";
-      packageName = "make-iterator";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz";
-        sha512 = "pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "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-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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "minipass-2.9.0" = {
-      name = "minipass";
-      packageName = "minipass";
-      version = "2.9.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz";
-        sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==";
-      };
-    };
-    "minipass-3.1.1" = {
-      name = "minipass";
-      packageName = "minipass";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz";
-        sha512 = "UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==";
-      };
-    };
-    "minizlib-1.3.3" = {
-      name = "minizlib";
-      packageName = "minizlib";
-      version = "1.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz";
-        sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==";
-      };
-    };
-    "minizlib-2.1.0" = {
-      name = "minizlib";
-      packageName = "minizlib";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz";
-        sha512 = "EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==";
-      };
-    };
-    "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==";
-      };
-    };
-    "mkdirp-0.3.5" = {
-      name = "mkdirp";
-      packageName = "mkdirp";
-      version = "0.3.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz";
-        sha1 = "de3e5f8961c88c787ee1368df849ac4413eca8d7";
-      };
-    };
-    "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-1.0.4" = {
-      name = "mkdirp";
-      packageName = "mkdirp";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz";
-        sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==";
-      };
-    };
-    "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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "ncp-0.4.2" = {
-      name = "ncp";
-      packageName = "ncp";
-      version = "0.4.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz";
-        sha1 = "abcc6cbd3ec2ed2a729ff6e7c1fa8f01784a8574";
-      };
-    };
-    "needle-2.4.1" = {
-      name = "needle";
-      packageName = "needle";
-      version = "2.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/needle/-/needle-2.4.1.tgz";
-        sha512 = "x/gi6ijr4B7fwl6WYL9FwlCvRQKGlUNvnceho8wxkwXqN8jvVmmmATTmZPRRG7b/yC1eode26C2HO9jl78Du9g==";
-      };
-    };
-    "nijs-0.0.25" = {
-      name = "nijs";
-      packageName = "nijs";
-      version = "0.0.25";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nijs/-/nijs-0.0.25.tgz";
-        sha1 = "04b035cb530d46859d1018839a518c029133f676";
-      };
-    };
-    "nopt-3.0.6" = {
-      name = "nopt";
-      packageName = "nopt";
-      version = "3.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz";
-        sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
-      };
-    };
-    "nopt-4.0.3" = {
-      name = "nopt";
-      packageName = "nopt";
-      version = "4.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz";
-        sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==";
-      };
-    };
-    "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==";
-      };
-    };
-    "npm-bundled-1.1.1" = {
-      name = "npm-bundled";
-      packageName = "npm-bundled";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz";
-        sha512 = "gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==";
-      };
-    };
-    "npm-normalize-package-bin-1.0.1" = {
-      name = "npm-normalize-package-bin";
-      packageName = "npm-normalize-package-bin";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz";
-        sha512 = "EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==";
-      };
-    };
-    "npm-package-arg-6.1.1" = {
-      name = "npm-package-arg";
-      packageName = "npm-package-arg";
-      version = "6.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz";
-        sha512 = "qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==";
-      };
-    };
-    "npm-packlist-1.4.8" = {
-      name = "npm-packlist";
-      packageName = "npm-packlist";
-      version = "1.4.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz";
-        sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==";
-      };
-    };
-    "npm-registry-client-8.6.0" = {
-      name = "npm-registry-client";
-      packageName = "npm-registry-client";
-      version = "8.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.6.0.tgz";
-        sha512 = "Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==";
-      };
-    };
-    "npmconf-2.1.3" = {
-      name = "npmconf";
-      packageName = "npmconf";
-      version = "2.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npmconf/-/npmconf-2.1.3.tgz";
-        sha512 = "iTK+HI68GceCoGOHAQiJ/ik1iDfI7S+cgyG8A+PP18IU3X83kRhQIRhAUNj4Bp2JMx6Zrt5kCiozYa9uGWTjhA==";
-      };
-    };
-    "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";
-      };
-    };
-    "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-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-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.defaults-1.1.0" = {
-      name = "object.defaults";
-      packageName = "object.defaults";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz";
-        sha1 = "3a7f868334b407dea06da16d88d5cd29e435fecf";
-      };
-    };
-    "object.map-1.0.1" = {
-      name = "object.map";
-      packageName = "object.map";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz";
-        sha1 = "cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37";
-      };
-    };
-    "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.3.3" = {
-      name = "once";
-      packageName = "once";
-      version = "1.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/once/-/once-1.3.3.tgz";
-        sha1 = "b2e261557ce4c314ec8304f3fa82663e4297ca20";
-      };
-    };
-    "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";
-      };
-    };
-    "optparse-1.0.5" = {
-      name = "optparse";
-      packageName = "optparse";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/optparse/-/optparse-1.0.5.tgz";
-        sha1 = "75e75a96506611eb1c65ba89018ff08a981e2c16";
-      };
-    };
-    "os-homedir-1.0.2" = {
-      name = "os-homedir";
-      packageName = "os-homedir";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz";
-        sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
-      };
-    };
-    "os-tmpdir-1.0.2" = {
-      name = "os-tmpdir";
-      packageName = "os-tmpdir";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
-        sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
-      };
-    };
-    "osenv-0.1.5" = {
-      name = "osenv";
-      packageName = "osenv";
-      version = "0.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz";
-        sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
-      };
-    };
-    "parse-filepath-1.0.2" = {
-      name = "parse-filepath";
-      packageName = "parse-filepath";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz";
-        sha1 = "a632127f53aaf3d15876f5872f3ffac763d6c891";
-      };
-    };
-    "parse-passwd-1.0.0" = {
-      name = "parse-passwd";
-      packageName = "parse-passwd";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz";
-        sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6";
-      };
-    };
-    "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-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-parse-1.0.6" = {
-      name = "path-parse";
-      packageName = "path-parse";
-      version = "1.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
-        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
-      };
-    };
-    "path-root-0.1.1" = {
-      name = "path-root";
-      packageName = "path-root";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz";
-        sha1 = "9a4a6814cac1c0cd73360a95f32083c8ea4745b7";
-      };
-    };
-    "path-root-regex-0.1.2" = {
-      name = "path-root-regex";
-      packageName = "path-root-regex";
-      version = "0.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz";
-        sha1 = "bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "proto-list-1.2.4" = {
-      name = "proto-list";
-      packageName = "proto-list";
-      version = "1.2.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz";
-        sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849";
-      };
-    };
-    "psl-1.8.0" = {
-      name = "psl";
-      packageName = "psl";
-      version = "1.8.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
-        sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
-      };
-    };
-    "punycode-2.1.1" = {
-      name = "punycode";
-      packageName = "punycode";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
-        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
-      };
-    };
-    "qs-6.5.2" = {
-      name = "qs";
-      packageName = "qs";
-      version = "6.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
-        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
-      };
-    };
-    "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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "resolve-1.16.0" = {
-      name = "resolve";
-      packageName = "resolve";
-      version = "1.16.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.16.0.tgz";
-        sha512 = "LarL/PIKJvc09k1jaeT4kQb/8/7P+qV4qSnN2K80AES+OHdfZELAKVOBjxsvtToT/uLOfFbvYvKfZmV8cee7nA==";
-      };
-    };
-    "resolve-dir-1.0.1" = {
-      name = "resolve-dir";
-      packageName = "resolve-dir";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz";
-        sha1 = "79a40644c362be82f26effe739c9bb5382046f43";
-      };
-    };
-    "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==";
-      };
-    };
-    "retry-0.10.1" = {
-      name = "retry";
-      packageName = "retry";
-      version = "0.10.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz";
-        sha1 = "e76388d217992c252750241d3d3956fed98d8ff4";
-      };
-    };
-    "rimraf-2.2.8" = {
-      name = "rimraf";
-      packageName = "rimraf";
-      version = "2.2.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz";
-        sha1 = "e439be2aaee327321952730f99a8929e4fc50582";
-      };
-    };
-    "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-2.7.1" = {
-      name = "rimraf";
-      packageName = "rimraf";
-      version = "2.7.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
-        sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==";
-      };
-    };
-    "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.0" = {
-      name = "safe-buffer";
-      packageName = "safe-buffer";
-      version = "5.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==";
-      };
-    };
-    "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==";
-      };
-    };
-    "sax-1.2.4" = {
-      name = "sax";
-      packageName = "sax";
-      version = "1.2.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
-        sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==";
-      };
-    };
-    "semver-4.3.6" = {
-      name = "semver";
-      packageName = "semver";
-      version = "4.3.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz";
-        sha1 = "300bc6e0e86374f7ba61068b5b1ecd57fc6532da";
-      };
-    };
-    "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-7.1.3" = {
-      name = "semver";
-      packageName = "semver";
-      version = "7.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz";
-        sha512 = "ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==";
-      };
-    };
-    "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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "slasp-0.0.4" = {
-      name = "slasp";
-      packageName = "slasp";
-      version = "0.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/slasp/-/slasp-0.0.4.tgz";
-        sha1 = "9adc26ee729a0f95095851a5489f87a5258d57a9";
-      };
-    };
-    "slide-1.1.6" = {
-      name = "slide";
-      packageName = "slide";
-      version = "1.1.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz";
-        sha1 = "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707";
-      };
-    };
-    "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-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-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.0" = {
-      name = "spdx-correct";
-      packageName = "spdx-correct";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz";
-        sha512 = "lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==";
-      };
-    };
-    "spdx-exceptions-2.2.0" = {
-      name = "spdx-exceptions";
-      packageName = "spdx-exceptions";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
-        sha512 = "2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==";
-      };
-    };
-    "spdx-expression-parse-3.0.0" = {
-      name = "spdx-expression-parse";
-      packageName = "spdx-expression-parse";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
-        sha512 = "Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==";
-      };
-    };
-    "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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "ssri-5.3.0" = {
-      name = "ssri";
-      packageName = "ssri";
-      version = "5.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz";
-        sha512 = "XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==";
-      };
-    };
-    "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";
-      };
-    };
-    "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_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==";
-      };
-    };
-    "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-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";
-      };
-    };
-    "tar-4.4.13" = {
-      name = "tar";
-      packageName = "tar";
-      version = "4.4.13";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz";
-        sha512 = "w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==";
-      };
-    };
-    "tar-6.0.1" = {
-      name = "tar";
-      packageName = "tar";
-      version = "6.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz";
-        sha512 = "bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==";
-      };
-    };
-    "temp-0.9.1" = {
-      name = "temp";
-      packageName = "temp";
-      version = "0.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/temp/-/temp-0.9.1.tgz";
-        sha512 = "WMuOgiua1xb5R56lE0eH6ivpVmg/lq2OHm4+LtT/xtEtPQ+sz6N3bBM6WZ5FvO1lO4IKIOb43qnhoc4qxP5OeA==";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "uid-number-0.0.5" = {
-      name = "uid-number";
-      packageName = "uid-number";
-      version = "0.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uid-number/-/uid-number-0.0.5.tgz";
-        sha1 = "5a3db23ef5dbd55b81fce0ec9a2ac6fccdebb81e";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "v8flags-3.1.3" = {
-      name = "v8flags";
-      packageName = "v8flags";
-      version = "3.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz";
-        sha512 = "amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==";
-      };
-    };
-    "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==";
-      };
-    };
-    "validate-npm-package-name-3.0.0" = {
-      name = "validate-npm-package-name";
-      packageName = "validate-npm-package-name";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz";
-        sha1 = "5fa912d81eb7d0c74afc140de7317f0ca7df437e";
-      };
-    };
-    "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";
-      };
-    };
-    "walk-2.3.14" = {
-      name = "walk";
-      packageName = "walk";
-      version = "2.3.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/walk/-/walk-2.3.14.tgz";
-        sha512 = "5skcWAUmySj6hkBdH6B6+3ddMjVQYH5Qy9QGbPmN8kVmLteXk+yVXg+yfk1nbX30EYakahLrr8iPcCxJQSCBeg==";
-      };
-    };
-    "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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "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";
-      };
-    };
-    "yallist-3.1.1" = {
-      name = "yallist";
-      packageName = "yallist";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
-        sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
-      };
-    };
-    "yallist-4.0.0" = {
-      name = "yallist";
-      packageName = "yallist";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz";
-        sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
-      };
-    };
-  };
-in
-{
-  coffee-script = nodeEnv.buildNodePackage {
-    name = "coffee-script";
-    packageName = "coffee-script";
-    version = "1.12.7";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz";
-      sha512 = "fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==";
-    };
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "Unfancy JavaScript";
-      homepage = "http://coffeescript.org/";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  grunt-cli = nodeEnv.buildNodePackage {
-    name = "grunt-cli";
-    packageName = "grunt-cli";
-    version = "1.3.2";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.3.2.tgz";
-      sha512 = "8OHDiZZkcptxVXtMfDxJvmN7MVJNE8L/yIcPb4HB7TlyFD1kDvjHrb62uhySsU14wJx9ORMnTuhRMQ40lH/orQ==";
-    };
-    dependencies = [
-      sources."abbrev-1.1.1"
-      sources."arr-diff-4.0.0"
-      sources."arr-flatten-1.1.0"
-      sources."arr-union-3.1.0"
-      sources."array-each-1.0.1"
-      sources."array-slice-1.1.0"
-      sources."array-unique-0.3.2"
-      sources."assign-symbols-1.0.0"
-      sources."atob-2.1.2"
-      (sources."base-0.11.2" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      (sources."braces-2.3.2" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."cache-base-1.0.1"
-      (sources."class-utils-0.3.6" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      sources."collection-visit-1.0.0"
-      sources."component-emitter-1.3.0"
-      sources."copy-descriptor-0.1.1"
-      sources."debug-2.6.9"
-      sources."decode-uri-component-0.2.0"
-      sources."define-property-2.0.2"
-      sources."detect-file-1.0.0"
-      (sources."expand-brackets-2.1.4" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      sources."expand-tilde-2.0.2"
-      sources."extend-3.0.2"
-      (sources."extend-shallow-3.0.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
-      (sources."extglob-2.0.4" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      (sources."fill-range-4.0.0" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."findup-sync-2.0.0"
-      sources."fined-1.2.0"
-      sources."flagged-respawn-1.0.1"
-      sources."for-in-1.0.2"
-      sources."for-own-1.0.0"
-      sources."fragment-cache-0.2.1"
-      sources."get-value-2.0.6"
-      sources."global-modules-1.0.0"
-      sources."global-prefix-1.0.2"
-      sources."grunt-known-options-1.1.1"
-      sources."has-value-1.0.0"
-      (sources."has-values-1.0.0" // {
-        dependencies = [
-          sources."kind-of-4.0.0"
-        ];
-      })
-      sources."homedir-polyfill-1.0.3"
-      sources."ini-1.3.5"
-      sources."interpret-1.1.0"
-      sources."is-absolute-1.0.0"
-      sources."is-accessor-descriptor-1.0.0"
-      sources."is-buffer-1.1.6"
-      sources."is-data-descriptor-1.0.0"
-      sources."is-descriptor-1.0.2"
-      sources."is-extendable-0.1.1"
-      sources."is-extglob-2.1.1"
-      sources."is-glob-3.1.0"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."is-plain-object-2.0.4"
-      sources."is-relative-1.0.0"
-      sources."is-unc-path-1.0.0"
-      sources."is-windows-1.0.2"
-      sources."isarray-1.0.0"
-      sources."isexe-2.0.0"
-      sources."isobject-3.0.1"
-      sources."kind-of-6.0.3"
-      sources."liftoff-2.5.0"
-      sources."make-iterator-1.0.1"
-      sources."map-cache-0.2.2"
-      sources."map-visit-1.0.0"
-      sources."micromatch-3.1.10"
-      (sources."mixin-deep-1.3.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
-      sources."ms-2.0.0"
-      sources."nanomatch-1.2.13"
-      sources."nopt-4.0.3"
-      (sources."object-copy-0.1.0" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-accessor-descriptor-0.1.6"
-          sources."is-data-descriptor-0.1.4"
-          (sources."is-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-5.1.0"
-            ];
-          })
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."object-visit-1.0.1"
-      sources."object.defaults-1.1.0"
-      sources."object.map-1.0.1"
-      sources."object.pick-1.3.0"
-      sources."os-homedir-1.0.2"
-      sources."os-tmpdir-1.0.2"
-      sources."osenv-0.1.5"
-      sources."parse-filepath-1.0.2"
-      sources."parse-passwd-1.0.0"
-      sources."pascalcase-0.1.1"
-      sources."path-parse-1.0.6"
-      sources."path-root-0.1.1"
-      sources."path-root-regex-0.1.2"
-      sources."posix-character-classes-0.1.1"
-      sources."rechoir-0.6.2"
-      sources."regex-not-1.0.2"
-      sources."repeat-element-1.1.3"
-      sources."repeat-string-1.6.1"
-      sources."resolve-1.16.0"
-      sources."resolve-dir-1.0.1"
-      sources."resolve-url-0.2.1"
-      sources."ret-0.1.15"
-      sources."safe-regex-1.1.0"
-      (sources."set-value-2.0.1" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      (sources."snapdragon-0.8.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      (sources."snapdragon-node-2.1.1" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      (sources."snapdragon-util-3.0.1" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."source-map-0.5.7"
-      sources."source-map-resolve-0.5.3"
-      sources."source-map-url-0.4.0"
-      sources."split-string-3.1.0"
-      (sources."static-extend-0.1.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      (sources."to-object-path-0.3.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."to-regex-3.0.2"
-      sources."to-regex-range-2.1.1"
-      sources."unc-path-regex-0.1.2"
-      sources."union-value-1.0.1"
-      (sources."unset-value-1.0.0" // {
-        dependencies = [
-          (sources."has-value-0.3.1" // {
-            dependencies = [
-              sources."isobject-2.1.0"
-            ];
-          })
-          sources."has-values-0.1.4"
-        ];
-      })
-      sources."urix-0.1.0"
-      sources."use-3.1.1"
-      sources."v8flags-3.1.3"
-      sources."which-1.3.1"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "The grunt command line interface";
-      homepage = "https://github.com/gruntjs/grunt-cli#readme";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  nijs = nodeEnv.buildNodePackage {
-    name = "nijs";
-    packageName = "nijs";
-    version = "0.0.25";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/nijs/-/nijs-0.0.25.tgz";
-      sha1 = "04b035cb530d46859d1018839a518c029133f676";
-    };
-    dependencies = [
-      sources."optparse-1.0.5"
-      sources."slasp-0.0.4"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "An internal DSL for the Nix package manager in JavaScript";
-      homepage = "https://github.com/svanderburg/nijs#readme";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  node2nix = nodeEnv.buildNodePackage {
-    name = "node2nix";
-    packageName = "node2nix";
-    version = "1.8.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node2nix/-/node2nix-1.8.0.tgz";
-      sha512 = "v5QBcH6KxWVVRftbXdpGPIo3s0nPRcTJ56vLLbnmk0f1+32efqpI5t+fYekRys5yJPKFlXDRJCo6o8qnw581gQ==";
-    };
-    dependencies = [
-      sources."abbrev-1.1.1"
-      sources."ajv-6.12.0"
-      sources."ansi-regex-2.1.1"
-      sources."aproba-1.2.0"
-      sources."are-we-there-yet-1.1.5"
-      sources."asn1-0.2.4"
-      sources."assert-plus-1.0.0"
-      sources."asynckit-0.4.0"
-      sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
-      sources."balanced-match-1.0.0"
-      sources."base64-js-1.3.1"
-      sources."bcrypt-pbkdf-1.0.2"
-      sources."brace-expansion-1.1.11"
-      sources."buffer-from-1.1.1"
-      sources."builtins-1.0.3"
-      sources."caseless-0.12.0"
-      sources."chownr-1.1.4"
-      sources."code-point-at-1.1.0"
-      sources."combined-stream-1.0.8"
-      sources."concat-map-0.0.1"
-      sources."concat-stream-1.6.2"
-      sources."config-chain-1.1.12"
-      sources."console-control-strings-1.1.0"
-      sources."core-util-is-1.0.2"
-      sources."dashdash-1.14.1"
-      sources."delayed-stream-1.0.0"
-      sources."delegates-1.0.0"
-      sources."ecc-jsbn-0.1.2"
-      sources."extend-3.0.2"
-      sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
-      sources."fast-json-stable-stringify-2.1.0"
-      sources."findit-2.0.0"
-      sources."foreachasync-3.0.0"
-      sources."forever-agent-0.6.1"
-      sources."form-data-2.3.3"
-      (sources."fs-extra-0.6.4" // {
-        dependencies = [
-          sources."mkdirp-0.3.5"
-          sources."rimraf-2.2.8"
-        ];
-      })
-      sources."fs-minipass-2.1.0"
-      (sources."fs.extra-1.3.2" // {
-        dependencies = [
-          sources."mkdirp-0.3.5"
-        ];
-      })
-      sources."fs.realpath-1.0.0"
-      sources."gauge-2.7.4"
-      sources."getpass-0.1.7"
-      sources."glob-7.1.6"
-      sources."graceful-fs-4.2.3"
-      sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
-      sources."has-unicode-2.0.1"
-      sources."hosted-git-info-2.8.8"
-      sources."http-signature-1.2.0"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."ini-1.3.5"
-      sources."is-fullwidth-code-point-1.0.0"
-      sources."is-typedarray-1.0.0"
-      sources."isarray-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."jsonfile-1.0.1"
-      sources."jsprim-1.4.1"
-      sources."mime-db-1.43.0"
-      sources."mime-types-2.1.26"
-      sources."minimatch-3.0.4"
-      sources."minimist-1.2.5"
-      sources."minipass-3.1.1"
-      sources."minizlib-2.1.0"
-      sources."mkdirp-0.5.5"
-      sources."ncp-0.4.2"
-      sources."nijs-0.0.25"
-      sources."nopt-3.0.6"
-      (sources."normalize-package-data-2.5.0" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      (sources."npm-package-arg-6.1.1" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      (sources."npm-registry-client-8.6.0" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      (sources."npmconf-2.1.3" // {
-        dependencies = [
-          sources."once-1.3.3"
-          sources."semver-4.3.6"
-        ];
-      })
-      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."optparse-1.0.5"
-      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."path-parse-1.0.6"
-      sources."performance-now-2.1.0"
-      sources."process-nextick-args-2.0.1"
-      sources."proto-list-1.2.4"
-      sources."psl-1.8.0"
-      sources."punycode-2.1.1"
-      sources."qs-6.5.2"
-      (sources."readable-stream-2.3.7" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      sources."request-2.88.2"
-      sources."resolve-1.16.0"
-      sources."retry-0.10.1"
-      sources."rimraf-2.6.3"
-      sources."safe-buffer-5.2.0"
-      sources."safer-buffer-2.1.2"
-      sources."semver-7.1.3"
-      sources."set-blocking-2.0.0"
-      sources."signal-exit-3.0.3"
-      sources."slasp-0.0.4"
-      sources."slide-1.1.6"
-      sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
-      sources."spdx-expression-parse-3.0.0"
-      sources."spdx-license-ids-3.0.5"
-      sources."sshpk-1.16.1"
-      sources."ssri-5.3.0"
-      sources."string-width-1.0.2"
-      (sources."string_decoder-1.1.1" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      sources."strip-ansi-3.0.1"
-      (sources."tar-6.0.1" // {
-        dependencies = [
-          sources."mkdirp-1.0.4"
-        ];
-      })
-      sources."temp-0.9.1"
-      sources."tough-cookie-2.5.0"
-      sources."tunnel-agent-0.6.0"
-      sources."tweetnacl-0.14.5"
-      sources."typedarray-0.0.6"
-      sources."uid-number-0.0.5"
-      sources."uri-js-4.2.2"
-      sources."util-deprecate-1.0.2"
-      sources."uuid-3.4.0"
-      sources."validate-npm-package-license-3.0.4"
-      sources."validate-npm-package-name-3.0.0"
-      sources."verror-1.10.0"
-      sources."walk-2.3.14"
-      sources."wide-align-1.1.3"
-      sources."wrappy-1.0.2"
-      sources."yallist-4.0.0"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "Generate Nix expressions to build NPM packages";
-      homepage = "https://github.com/svanderburg/node2nix";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  node-gyp = nodeEnv.buildNodePackage {
-    name = "node-gyp";
-    packageName = "node-gyp";
-    version = "6.1.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-6.1.0.tgz";
-      sha512 = "h4A2zDlOujeeaaTx06r4Vy+8MZ1679lU+wbCKDS4ZtvY2A37DESo37oejIw0mtmR3+rvNwts5B6Kpt1KrNYdNw==";
-    };
-    dependencies = [
-      sources."abbrev-1.1.1"
-      sources."ajv-6.12.0"
-      sources."ansi-regex-2.1.1"
-      sources."aproba-1.2.0"
-      sources."are-we-there-yet-1.1.5"
-      sources."asn1-0.2.4"
-      sources."assert-plus-1.0.0"
-      sources."asynckit-0.4.0"
-      sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
-      sources."balanced-match-1.0.0"
-      sources."bcrypt-pbkdf-1.0.2"
-      sources."brace-expansion-1.1.11"
-      sources."caseless-0.12.0"
-      sources."chownr-1.1.4"
-      sources."code-point-at-1.1.0"
-      sources."combined-stream-1.0.8"
-      sources."concat-map-0.0.1"
-      sources."console-control-strings-1.1.0"
-      sources."core-util-is-1.0.2"
-      sources."dashdash-1.14.1"
-      sources."delayed-stream-1.0.0"
-      sources."delegates-1.0.0"
-      sources."ecc-jsbn-0.1.2"
-      sources."env-paths-2.2.0"
-      sources."extend-3.0.2"
-      sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
-      sources."fast-json-stable-stringify-2.1.0"
-      sources."forever-agent-0.6.1"
-      sources."form-data-2.3.3"
-      sources."fs-minipass-1.2.7"
-      sources."fs.realpath-1.0.0"
-      sources."gauge-2.7.4"
-      sources."getpass-0.1.7"
-      sources."glob-7.1.6"
-      sources."graceful-fs-4.2.3"
-      sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
-      sources."has-unicode-2.0.1"
-      sources."http-signature-1.2.0"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."is-fullwidth-code-point-1.0.0"
-      sources."is-typedarray-1.0.0"
-      sources."isarray-1.0.0"
-      sources."isexe-2.0.0"
-      sources."isstream-0.1.2"
-      sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
-      sources."json-schema-traverse-0.4.1"
-      sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
-      sources."mime-db-1.43.0"
-      sources."mime-types-2.1.26"
-      sources."minimatch-3.0.4"
-      sources."minimist-1.2.5"
-      sources."minipass-2.9.0"
-      sources."minizlib-1.3.3"
-      sources."mkdirp-0.5.5"
-      sources."nopt-4.0.3"
-      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."os-homedir-1.0.2"
-      sources."os-tmpdir-1.0.2"
-      sources."osenv-0.1.5"
-      sources."path-is-absolute-1.0.1"
-      sources."performance-now-2.1.0"
-      sources."process-nextick-args-2.0.1"
-      sources."psl-1.8.0"
-      sources."punycode-2.1.1"
-      sources."qs-6.5.2"
-      sources."readable-stream-2.3.7"
-      sources."request-2.88.2"
-      sources."rimraf-2.7.1"
-      sources."safe-buffer-5.1.2"
-      sources."safer-buffer-2.1.2"
-      sources."semver-5.7.1"
-      sources."set-blocking-2.0.0"
-      sources."signal-exit-3.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."tar-4.4.13"
-      sources."tough-cookie-2.5.0"
-      sources."tunnel-agent-0.6.0"
-      sources."tweetnacl-0.14.5"
-      sources."uri-js-4.2.2"
-      sources."util-deprecate-1.0.2"
-      sources."uuid-3.4.0"
-      sources."verror-1.10.0"
-      sources."which-1.3.1"
-      sources."wide-align-1.1.3"
-      sources."wrappy-1.0.2"
-      sources."yallist-3.1.1"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "Node.js native addon build tool";
-      homepage = "https://github.com/nodejs/node-gyp#readme";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  node-gyp-build = nodeEnv.buildNodePackage {
-    name = "node-gyp-build";
-    packageName = "node-gyp-build";
-    version = "4.2.1";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.1.tgz";
-      sha512 = "XyCKXsqZfLqHep1hhsMncoXuUNt/cXCjg1+8CLbu69V1TKuPiOeSGbL9n+k/ByKH8UT0p4rdIX8XkTRZV0i7Sw==";
-    };
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "Build tool and bindings loader for node-gyp that supports prebuilds";
-      homepage = "https://github.com/prebuild/node-gyp-build";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  node-pre-gyp = nodeEnv.buildNodePackage {
-    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==";
-    };
-    dependencies = [
-      sources."abbrev-1.1.1"
-      sources."ansi-regex-2.1.1"
-      sources."aproba-1.2.0"
-      sources."are-we-there-yet-1.1.5"
-      sources."balanced-match-1.0.0"
-      sources."brace-expansion-1.1.11"
-      sources."chownr-1.1.4"
-      sources."code-point-at-1.1.0"
-      sources."concat-map-0.0.1"
-      sources."console-control-strings-1.1.0"
-      sources."core-util-is-1.0.2"
-      sources."debug-3.2.6"
-      sources."deep-extend-0.6.0"
-      sources."delegates-1.0.0"
-      sources."detect-libc-1.0.3"
-      sources."fs-minipass-1.2.7"
-      sources."fs.realpath-1.0.0"
-      sources."gauge-2.7.4"
-      sources."glob-7.1.6"
-      sources."has-unicode-2.0.1"
-      sources."iconv-lite-0.4.24"
-      sources."ignore-walk-3.0.3"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."ini-1.3.5"
-      sources."is-fullwidth-code-point-1.0.0"
-      sources."isarray-1.0.0"
-      sources."minimatch-3.0.4"
-      sources."minimist-1.2.5"
-      sources."minipass-2.9.0"
-      sources."minizlib-1.3.3"
-      sources."mkdirp-0.5.5"
-      sources."ms-2.1.2"
-      sources."needle-2.4.1"
-      sources."nopt-4.0.3"
-      sources."npm-bundled-1.1.1"
-      sources."npm-normalize-package-bin-1.0.1"
-      sources."npm-packlist-1.4.8"
-      sources."npmlog-4.1.2"
-      sources."number-is-nan-1.0.1"
-      sources."object-assign-4.1.1"
-      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."process-nextick-args-2.0.1"
-      sources."rc-1.2.8"
-      sources."readable-stream-2.3.7"
-      sources."rimraf-2.7.1"
-      sources."safe-buffer-5.1.2"
-      sources."safer-buffer-2.1.2"
-      sources."sax-1.2.4"
-      sources."semver-5.7.1"
-      sources."set-blocking-2.0.0"
-      sources."signal-exit-3.0.3"
-      sources."string-width-1.0.2"
-      sources."string_decoder-1.1.1"
-      sources."strip-ansi-3.0.1"
-      sources."strip-json-comments-2.0.1"
-      sources."tar-4.4.13"
-      sources."util-deprecate-1.0.2"
-      sources."wide-align-1.1.3"
-      sources."wrappy-1.0.2"
-      sources."yallist-3.1.1"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "Node.js native addon binary install tool";
-      homepage = "https://github.com/mapbox/node-pre-gyp#readme";
-      license = "BSD-3-Clause";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-}
diff --git a/pkgs/development/node-packages/node-packages-v13.json b/pkgs/development/node-packages/node-packages-v13.json
deleted file mode 100644
index 1c7b22c3c7e..00000000000
--- a/pkgs/development/node-packages/node-packages-v13.json
+++ /dev/null
@@ -1,3 +0,0 @@
-[
-  "node2nix"
-]
diff --git a/pkgs/development/node-packages/node-packages-v13.nix b/pkgs/development/node-packages/node-packages-v13.nix
deleted file mode 100644
index 77517655c50..00000000000
--- a/pkgs/development/node-packages/node-packages-v13.nix
+++ /dev/null
@@ -1,1451 +0,0 @@
-# This file has been generated by node2nix 1.8.0. Do not edit!
-
-{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
-
-let
-  sources = {
-    "abbrev-1.1.1" = {
-      name = "abbrev";
-      packageName = "abbrev";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
-        sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
-      };
-    };
-    "ajv-6.12.0" = {
-      name = "ajv";
-      packageName = "ajv";
-      version = "6.12.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz";
-        sha512 = "D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "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";
-      };
-    };
-    "asynckit-0.4.0" = {
-      name = "asynckit";
-      packageName = "asynckit";
-      version = "0.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
-        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
-      };
-    };
-    "aws-sign2-0.7.0" = {
-      name = "aws-sign2";
-      packageName = "aws-sign2";
-      version = "0.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
-        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
-      };
-    };
-    "aws4-1.9.1" = {
-      name = "aws4";
-      packageName = "aws4";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz";
-        sha512 = "wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "builtins-1.0.3" = {
-      name = "builtins";
-      packageName = "builtins";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz";
-        sha1 = "cb94faeb61c8696451db36534e1422f94f0aee88";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "config-chain-1.1.12" = {
-      name = "config-chain";
-      packageName = "config-chain";
-      version = "1.1.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz";
-        sha512 = "a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "extend-3.0.2" = {
-      name = "extend";
-      packageName = "extend";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
-        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
-      };
-    };
-    "extsprintf-1.3.0" = {
-      name = "extsprintf";
-      packageName = "extsprintf";
-      version = "1.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz";
-        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
-      };
-    };
-    "fast-deep-equal-3.1.1" = {
-      name = "fast-deep-equal";
-      packageName = "fast-deep-equal";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
-        sha512 = "8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==";
-      };
-    };
-    "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==";
-      };
-    };
-    "findit-2.0.0" = {
-      name = "findit";
-      packageName = "findit";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/findit/-/findit-2.0.0.tgz";
-        sha1 = "6509f0126af4c178551cfa99394e032e13a4d56e";
-      };
-    };
-    "foreachasync-3.0.0" = {
-      name = "foreachasync";
-      packageName = "foreachasync";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz";
-        sha1 = "5502987dc8714be3392097f32e0071c9dee07cf6";
-      };
-    };
-    "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==";
-      };
-    };
-    "fs-extra-0.6.4" = {
-      name = "fs-extra";
-      packageName = "fs-extra";
-      version = "0.6.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-0.6.4.tgz";
-        sha1 = "f46f0c75b7841f8d200b3348cd4d691d5a099d15";
-      };
-    };
-    "fs-minipass-2.1.0" = {
-      name = "fs-minipass";
-      packageName = "fs-minipass";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz";
-        sha512 = "V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==";
-      };
-    };
-    "fs.extra-1.3.2" = {
-      name = "fs.extra";
-      packageName = "fs.extra";
-      version = "1.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs.extra/-/fs.extra-1.3.2.tgz";
-        sha1 = "dd023f93013bee24531f1b33514c37b20fd93349";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "getpass-0.1.7" = {
-      name = "getpass";
-      packageName = "getpass";
-      version = "0.1.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz";
-        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
-      };
-    };
-    "glob-7.1.6" = {
-      name = "glob";
-      packageName = "glob";
-      version = "7.1.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
-        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
-      };
-    };
-    "graceful-fs-4.2.3" = {
-      name = "graceful-fs";
-      packageName = "graceful-fs";
-      version = "4.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
-        sha512 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==";
-      };
-    };
-    "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.3" = {
-      name = "har-validator";
-      packageName = "har-validator";
-      version = "5.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
-        sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "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-typedarray-1.0.0" = {
-      name = "is-typedarray";
-      packageName = "is-typedarray";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
-        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
-      };
-    };
-    "isarray-1.0.0" = {
-      name = "isarray";
-      packageName = "isarray";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
-        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "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-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";
-      };
-    };
-    "jsonfile-1.0.1" = {
-      name = "jsonfile";
-      packageName = "jsonfile";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-1.0.1.tgz";
-        sha1 = "ea5efe40b83690b98667614a7392fc60e842c0dd";
-      };
-    };
-    "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";
-      };
-    };
-    "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-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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "minipass-3.1.1" = {
-      name = "minipass";
-      packageName = "minipass";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz";
-        sha512 = "UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==";
-      };
-    };
-    "minizlib-2.1.0" = {
-      name = "minizlib";
-      packageName = "minizlib";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz";
-        sha512 = "EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==";
-      };
-    };
-    "mkdirp-0.3.5" = {
-      name = "mkdirp";
-      packageName = "mkdirp";
-      version = "0.3.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz";
-        sha1 = "de3e5f8961c88c787ee1368df849ac4413eca8d7";
-      };
-    };
-    "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-1.0.4" = {
-      name = "mkdirp";
-      packageName = "mkdirp";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz";
-        sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==";
-      };
-    };
-    "ncp-0.4.2" = {
-      name = "ncp";
-      packageName = "ncp";
-      version = "0.4.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz";
-        sha1 = "abcc6cbd3ec2ed2a729ff6e7c1fa8f01784a8574";
-      };
-    };
-    "nijs-0.0.25" = {
-      name = "nijs";
-      packageName = "nijs";
-      version = "0.0.25";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nijs/-/nijs-0.0.25.tgz";
-        sha1 = "04b035cb530d46859d1018839a518c029133f676";
-      };
-    };
-    "nopt-3.0.6" = {
-      name = "nopt";
-      packageName = "nopt";
-      version = "3.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz";
-        sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
-      };
-    };
-    "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==";
-      };
-    };
-    "npm-package-arg-6.1.1" = {
-      name = "npm-package-arg";
-      packageName = "npm-package-arg";
-      version = "6.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz";
-        sha512 = "qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==";
-      };
-    };
-    "npm-registry-client-8.6.0" = {
-      name = "npm-registry-client";
-      packageName = "npm-registry-client";
-      version = "8.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.6.0.tgz";
-        sha512 = "Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==";
-      };
-    };
-    "npmconf-2.1.3" = {
-      name = "npmconf";
-      packageName = "npmconf";
-      version = "2.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npmconf/-/npmconf-2.1.3.tgz";
-        sha512 = "iTK+HI68GceCoGOHAQiJ/ik1iDfI7S+cgyG8A+PP18IU3X83kRhQIRhAUNj4Bp2JMx6Zrt5kCiozYa9uGWTjhA==";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "once-1.3.3" = {
-      name = "once";
-      packageName = "once";
-      version = "1.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/once/-/once-1.3.3.tgz";
-        sha1 = "b2e261557ce4c314ec8304f3fa82663e4297ca20";
-      };
-    };
-    "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";
-      };
-    };
-    "optparse-1.0.5" = {
-      name = "optparse";
-      packageName = "optparse";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/optparse/-/optparse-1.0.5.tgz";
-        sha1 = "75e75a96506611eb1c65ba89018ff08a981e2c16";
-      };
-    };
-    "os-homedir-1.0.2" = {
-      name = "os-homedir";
-      packageName = "os-homedir";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz";
-        sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
-      };
-    };
-    "os-tmpdir-1.0.2" = {
-      name = "os-tmpdir";
-      packageName = "os-tmpdir";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
-        sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
-      };
-    };
-    "osenv-0.1.5" = {
-      name = "osenv";
-      packageName = "osenv";
-      version = "0.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz";
-        sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
-      };
-    };
-    "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-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";
-      };
-    };
-    "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==";
-      };
-    };
-    "proto-list-1.2.4" = {
-      name = "proto-list";
-      packageName = "proto-list";
-      version = "1.2.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz";
-        sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849";
-      };
-    };
-    "psl-1.8.0" = {
-      name = "psl";
-      packageName = "psl";
-      version = "1.8.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
-        sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
-      };
-    };
-    "punycode-2.1.1" = {
-      name = "punycode";
-      packageName = "punycode";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
-        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
-      };
-    };
-    "qs-6.5.2" = {
-      name = "qs";
-      packageName = "qs";
-      version = "6.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
-        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
-      };
-    };
-    "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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "resolve-1.16.0" = {
-      name = "resolve";
-      packageName = "resolve";
-      version = "1.16.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.16.0.tgz";
-        sha512 = "LarL/PIKJvc09k1jaeT4kQb/8/7P+qV4qSnN2K80AES+OHdfZELAKVOBjxsvtToT/uLOfFbvYvKfZmV8cee7nA==";
-      };
-    };
-    "retry-0.10.1" = {
-      name = "retry";
-      packageName = "retry";
-      version = "0.10.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz";
-        sha1 = "e76388d217992c252750241d3d3956fed98d8ff4";
-      };
-    };
-    "rimraf-2.2.8" = {
-      name = "rimraf";
-      packageName = "rimraf";
-      version = "2.2.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz";
-        sha1 = "e439be2aaee327321952730f99a8929e4fc50582";
-      };
-    };
-    "rimraf-2.6.3" = {
-      name = "rimraf";
-      packageName = "rimraf";
-      version = "2.6.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz";
-        sha512 = "mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==";
-      };
-    };
-    "safe-buffer-5.1.2" = {
-      name = "safe-buffer";
-      packageName = "safe-buffer";
-      version = "5.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
-        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
-      };
-    };
-    "safe-buffer-5.2.0" = {
-      name = "safe-buffer";
-      packageName = "safe-buffer";
-      version = "5.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==";
-      };
-    };
-    "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==";
-      };
-    };
-    "semver-4.3.6" = {
-      name = "semver";
-      packageName = "semver";
-      version = "4.3.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz";
-        sha1 = "300bc6e0e86374f7ba61068b5b1ecd57fc6532da";
-      };
-    };
-    "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-7.1.3" = {
-      name = "semver";
-      packageName = "semver";
-      version = "7.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz";
-        sha512 = "ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==";
-      };
-    };
-    "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";
-      };
-    };
-    "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==";
-      };
-    };
-    "slasp-0.0.4" = {
-      name = "slasp";
-      packageName = "slasp";
-      version = "0.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/slasp/-/slasp-0.0.4.tgz";
-        sha1 = "9adc26ee729a0f95095851a5489f87a5258d57a9";
-      };
-    };
-    "slide-1.1.6" = {
-      name = "slide";
-      packageName = "slide";
-      version = "1.1.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz";
-        sha1 = "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707";
-      };
-    };
-    "spdx-correct-3.1.0" = {
-      name = "spdx-correct";
-      packageName = "spdx-correct";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz";
-        sha512 = "lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==";
-      };
-    };
-    "spdx-exceptions-2.2.0" = {
-      name = "spdx-exceptions";
-      packageName = "spdx-exceptions";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
-        sha512 = "2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==";
-      };
-    };
-    "spdx-expression-parse-3.0.0" = {
-      name = "spdx-expression-parse";
-      packageName = "spdx-expression-parse";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
-        sha512 = "Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==";
-      };
-    };
-    "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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "ssri-5.3.0" = {
-      name = "ssri";
-      packageName = "ssri";
-      version = "5.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz";
-        sha512 = "XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==";
-      };
-    };
-    "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_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==";
-      };
-    };
-    "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";
-      };
-    };
-    "tar-6.0.1" = {
-      name = "tar";
-      packageName = "tar";
-      version = "6.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz";
-        sha512 = "bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==";
-      };
-    };
-    "temp-0.9.1" = {
-      name = "temp";
-      packageName = "temp";
-      version = "0.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/temp/-/temp-0.9.1.tgz";
-        sha512 = "WMuOgiua1xb5R56lE0eH6ivpVmg/lq2OHm4+LtT/xtEtPQ+sz6N3bBM6WZ5FvO1lO4IKIOb43qnhoc4qxP5OeA==";
-      };
-    };
-    "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==";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "uid-number-0.0.5" = {
-      name = "uid-number";
-      packageName = "uid-number";
-      version = "0.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uid-number/-/uid-number-0.0.5.tgz";
-        sha1 = "5a3db23ef5dbd55b81fce0ec9a2ac6fccdebb81e";
-      };
-    };
-    "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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "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==";
-      };
-    };
-    "validate-npm-package-name-3.0.0" = {
-      name = "validate-npm-package-name";
-      packageName = "validate-npm-package-name";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz";
-        sha1 = "5fa912d81eb7d0c74afc140de7317f0ca7df437e";
-      };
-    };
-    "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";
-      };
-    };
-    "walk-2.3.14" = {
-      name = "walk";
-      packageName = "walk";
-      version = "2.3.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/walk/-/walk-2.3.14.tgz";
-        sha512 = "5skcWAUmySj6hkBdH6B6+3ddMjVQYH5Qy9QGbPmN8kVmLteXk+yVXg+yfk1nbX30EYakahLrr8iPcCxJQSCBeg==";
-      };
-    };
-    "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==";
-      };
-    };
-    "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";
-      };
-    };
-    "yallist-4.0.0" = {
-      name = "yallist";
-      packageName = "yallist";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz";
-        sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
-      };
-    };
-  };
-in
-{
-  node2nix = nodeEnv.buildNodePackage {
-    name = "node2nix";
-    packageName = "node2nix";
-    version = "1.8.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/node2nix/-/node2nix-1.8.0.tgz";
-      sha512 = "v5QBcH6KxWVVRftbXdpGPIo3s0nPRcTJ56vLLbnmk0f1+32efqpI5t+fYekRys5yJPKFlXDRJCo6o8qnw581gQ==";
-    };
-    dependencies = [
-      sources."abbrev-1.1.1"
-      sources."ajv-6.12.0"
-      sources."ansi-regex-2.1.1"
-      sources."aproba-1.2.0"
-      sources."are-we-there-yet-1.1.5"
-      sources."asn1-0.2.4"
-      sources."assert-plus-1.0.0"
-      sources."asynckit-0.4.0"
-      sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
-      sources."balanced-match-1.0.0"
-      sources."base64-js-1.3.1"
-      sources."bcrypt-pbkdf-1.0.2"
-      sources."brace-expansion-1.1.11"
-      sources."buffer-from-1.1.1"
-      sources."builtins-1.0.3"
-      sources."caseless-0.12.0"
-      sources."chownr-1.1.4"
-      sources."code-point-at-1.1.0"
-      sources."combined-stream-1.0.8"
-      sources."concat-map-0.0.1"
-      sources."concat-stream-1.6.2"
-      sources."config-chain-1.1.12"
-      sources."console-control-strings-1.1.0"
-      sources."core-util-is-1.0.2"
-      sources."dashdash-1.14.1"
-      sources."delayed-stream-1.0.0"
-      sources."delegates-1.0.0"
-      sources."ecc-jsbn-0.1.2"
-      sources."extend-3.0.2"
-      sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
-      sources."fast-json-stable-stringify-2.1.0"
-      sources."findit-2.0.0"
-      sources."foreachasync-3.0.0"
-      sources."forever-agent-0.6.1"
-      sources."form-data-2.3.3"
-      (sources."fs-extra-0.6.4" // {
-        dependencies = [
-          sources."mkdirp-0.3.5"
-          sources."rimraf-2.2.8"
-        ];
-      })
-      sources."fs-minipass-2.1.0"
-      (sources."fs.extra-1.3.2" // {
-        dependencies = [
-          sources."mkdirp-0.3.5"
-        ];
-      })
-      sources."fs.realpath-1.0.0"
-      sources."gauge-2.7.4"
-      sources."getpass-0.1.7"
-      sources."glob-7.1.6"
-      sources."graceful-fs-4.2.3"
-      sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
-      sources."has-unicode-2.0.1"
-      sources."hosted-git-info-2.8.8"
-      sources."http-signature-1.2.0"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."ini-1.3.5"
-      sources."is-fullwidth-code-point-1.0.0"
-      sources."is-typedarray-1.0.0"
-      sources."isarray-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."jsonfile-1.0.1"
-      sources."jsprim-1.4.1"
-      sources."mime-db-1.43.0"
-      sources."mime-types-2.1.26"
-      sources."minimatch-3.0.4"
-      sources."minimist-1.2.5"
-      sources."minipass-3.1.1"
-      sources."minizlib-2.1.0"
-      sources."mkdirp-0.5.5"
-      sources."ncp-0.4.2"
-      sources."nijs-0.0.25"
-      sources."nopt-3.0.6"
-      (sources."normalize-package-data-2.5.0" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      (sources."npm-package-arg-6.1.1" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      (sources."npm-registry-client-8.6.0" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      (sources."npmconf-2.1.3" // {
-        dependencies = [
-          sources."once-1.3.3"
-          sources."semver-4.3.6"
-        ];
-      })
-      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."optparse-1.0.5"
-      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."path-parse-1.0.6"
-      sources."performance-now-2.1.0"
-      sources."process-nextick-args-2.0.1"
-      sources."proto-list-1.2.4"
-      sources."psl-1.8.0"
-      sources."punycode-2.1.1"
-      sources."qs-6.5.2"
-      (sources."readable-stream-2.3.7" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      sources."request-2.88.2"
-      sources."resolve-1.16.0"
-      sources."retry-0.10.1"
-      sources."rimraf-2.6.3"
-      sources."safe-buffer-5.2.0"
-      sources."safer-buffer-2.1.2"
-      sources."semver-7.1.3"
-      sources."set-blocking-2.0.0"
-      sources."signal-exit-3.0.3"
-      sources."slasp-0.0.4"
-      sources."slide-1.1.6"
-      sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
-      sources."spdx-expression-parse-3.0.0"
-      sources."spdx-license-ids-3.0.5"
-      sources."sshpk-1.16.1"
-      sources."ssri-5.3.0"
-      sources."string-width-1.0.2"
-      (sources."string_decoder-1.1.1" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      sources."strip-ansi-3.0.1"
-      (sources."tar-6.0.1" // {
-        dependencies = [
-          sources."mkdirp-1.0.4"
-        ];
-      })
-      sources."temp-0.9.1"
-      sources."tough-cookie-2.5.0"
-      sources."tunnel-agent-0.6.0"
-      sources."tweetnacl-0.14.5"
-      sources."typedarray-0.0.6"
-      sources."uid-number-0.0.5"
-      sources."uri-js-4.2.2"
-      sources."util-deprecate-1.0.2"
-      sources."uuid-3.4.0"
-      sources."validate-npm-package-license-3.0.4"
-      sources."validate-npm-package-name-3.0.0"
-      sources."verror-1.10.0"
-      sources."walk-2.3.14"
-      sources."wide-align-1.1.3"
-      sources."wrappy-1.0.2"
-      sources."yallist-4.0.0"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "Generate Nix expressions to build NPM packages";
-      homepage = "https://github.com/svanderburg/node2nix";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-}
diff --git a/pkgs/development/node-packages/node-packages-v10.json b/pkgs/development/node-packages/node-packages.json
index 9ea5b2ec15d..babc8fbb1c8 100644
--- a/pkgs/development/node-packages/node-packages-v10.json
+++ b/pkgs/development/node-packages/node-packages.json
@@ -3,6 +3,7 @@
 , "@antora/cli"
 , "@antora/site-generator-default"
 , "@bitwarden/cli"
+, "@nestjs/cli"
 , "@vue/cli"
 , "@webassemblyjs/cli"
 , "@webassemblyjs/repl"
@@ -16,7 +17,7 @@
 , "bower2nix"
 , "browserify"
 , "castnow"
-, "clean-css"
+, "clean-css-cli"
 , "coc-css"
 , "coc-emmet"
 , "coc-eslint"
@@ -60,17 +61,18 @@
 , "csslint"
 , "dat"
 , "dhcp"
-, "dnschain"
 , "dockerfile-language-server-nodejs"
 , "elasticdump"
 , "elm-oracle"
 , "emoj"
 , "emojione"
+, "escape-string-regexp"
 , "eslint"
 , "eslint_d"
 , {"fast-cli": "1.x"}
 , "fkill-cli"
 , "forever"
+, "get-graphql-schema"
 , "git-run"
 , "git-ssb"
 , "git-standup"
@@ -80,6 +82,7 @@
 , "gtop"
 , "gulp"
 , "gulp-cli"
+, "he"
 , "html-minifier"
 , "htmlhint"
 , "http-server"
@@ -88,7 +91,6 @@
 , "indium"
 , "insect"
 , "ionic"
-, "ios-deploy"
 , { "iosevka-build-deps": "../../data/fonts/iosevka" }
 , "jake"
 , "javascript-typescript-langserver"
@@ -113,9 +115,10 @@
 , {"lumo-build-deps": "../interpreters/clojurescript/lumo" }
 , "madoko"
 , "markdown-link-check"
+, "mastodon-bot"
 , "mathjax"
 , "meat"
-, "meguca"
+, "mirakurun"
 , "mocha"
 , "multi-file-swagger"
 , "neovim"
@@ -140,10 +143,15 @@
 , "prettier"
 , "pscid"
 , "pulp"
+, "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" }
 , "s3http"
 , "semver"
@@ -187,6 +195,7 @@
 , "typescript-language-server"
 , "uglify-js"
 , "ungit"
+, "vim-language-server"
 , "vscode-css-languageserver-bin"
 , "vscode-html-languageserver-bin"
 , "vue-cli"
diff --git a/pkgs/development/node-packages/node-packages-v10.nix b/pkgs/development/node-packages/node-packages.nix
index 3096408963e..bd4c3cdb5cc 100644
--- a/pkgs/development/node-packages/node-packages-v10.nix
+++ b/pkgs/development/node-packages/node-packages.nix
@@ -22,67 +22,112 @@ let
         sha512 = "t4WmWoGV9gyzypwG3y3JlcK2t8fKLtvzBA7xEoFTj9SMPvOuLsf13uh4ikK0RRaaa9RPPWLgFUdOyIRaQvCpwQ==";
       };
     };
-    "@angular-devkit/architect-0.901.4" = {
+    "@angular-devkit/architect-0.1000.5" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.901.4";
+      version = "0.1000.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.4.tgz";
-        sha512 = "w4RMj7eLhUSh70HUy5tW4EXjLQFXk0Lfr9WiSy5gvPGp+zzYxknI+Wn4Xid1wU/WS+4tuMv5nJIaNaH2sABESQ==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1000.5.tgz";
+        sha512 = "BhNqB7fmmrDQwxoJ3zdw5FslFD+nYGgMTiC48ERVYJVuN3BK6xtt2OGA7vho3eJ13OE5cPGUi8crQDRROgxxQg==";
       };
     };
-    "@angular-devkit/core-9.1.4" = {
+    "@angular-devkit/core-10.0.5" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "9.1.4";
+      version = "10.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.4.tgz";
-        sha512 = "OPFQDmT4XabLMSRDgmnzedlOrc83DzQIgLcfoh/UhZ7aJKf/2Vq4l09p/DkMNI36vN5BRL0zDZt7TjvKNgyYgA==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.5.tgz";
+        sha512 = "ZaF1EYniIo+yRLvvaKnLrjYCdKeg2U3YtbA932M2AIfjgfFv/9mnAbH4jmZsBZhCstxZPz+ItwJesdR20h4Z1Q==";
       };
     };
-    "@angular-devkit/schematics-9.1.4" = {
+    "@angular-devkit/core-9.1.7" = {
+      name = "_at_angular-devkit_slash_core";
+      packageName = "@angular-devkit/core";
+      version = "9.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.7.tgz";
+        sha512 = "guvolu9Cl+qYMTtedLZD9wCqustJjdqzJ2psD2C1Sr1LrX9T0mprmDldR/YnhsitThveJEb6sM/0EvqWxoSvKw==";
+      };
+    };
+    "@angular-devkit/core-9.1.9" = {
+      name = "_at_angular-devkit_slash_core";
+      packageName = "@angular-devkit/core";
+      version = "9.1.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.9.tgz";
+        sha512 = "SWgBh4an/Vezjw2BZ5S+bKvuK5lH6gOtR8d5YjN9vxpJSZ0GimrGjfnLlWOkwWAsU8jfn4JzofECUHwX/7EW6Q==";
+      };
+    };
+    "@angular-devkit/schematics-10.0.5" = {
+      name = "_at_angular-devkit_slash_schematics";
+      packageName = "@angular-devkit/schematics";
+      version = "10.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.0.5.tgz";
+        sha512 = "UeeV8O0IydxCKj2oejygs80oIAQXPYrJHo0PQ/fa0RH6rtV3wZwirdy+yqq/BDGhtV/5VQSVCvu6uyAtGGMgNg==";
+      };
+    };
+    "@angular-devkit/schematics-9.1.7" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "9.1.4";
+      version = "9.1.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.4.tgz";
-        sha512 = "RAbdnUEZ3JTLmWSBiXT5trsVx8Fi72fxN9CiRaluM09Cytg6BUc1wC5XCO0YPvhI400+3Ro1nwjPXezjg7LXzQ==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.7.tgz";
+        sha512 = "oeHPJePBcPp/bd94jHQeFUnft93PGF5iJiKV9szxqS8WWC5OMZ5eK7icRY0PwvLyfenspAZxdZcNaqJqPMul5A==";
       };
     };
-    "@antora/asciidoc-loader-2.3.1" = {
+    "@angular-devkit/schematics-9.1.9" = {
+      name = "_at_angular-devkit_slash_schematics";
+      packageName = "@angular-devkit/schematics";
+      version = "9.1.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.9.tgz";
+        sha512 = "aKuMmS3wshOTl9+01jiB50ml09fRN1WfOOtoNqwvKTEi87DrT6Mn3l0eVQo8PJK/bIq/FBmPgsIl2nsETiBSxg==";
+      };
+    };
+    "@angular-devkit/schematics-cli-0.901.9" = {
+      name = "_at_angular-devkit_slash_schematics-cli";
+      packageName = "@angular-devkit/schematics-cli";
+      version = "0.901.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-0.901.9.tgz";
+        sha512 = "mkbN30u7/GvFOIOjj20w5OWi+vEOc/mdnpSrm3AxXvmha4AG56VL6uzF/kKHw9vyhfv8wLMt11OK/iSms9hSWw==";
+      };
+    };
+    "@antora/asciidoc-loader-2.3.3" = {
       name = "_at_antora_slash_asciidoc-loader";
       packageName = "@antora/asciidoc-loader";
-      version = "2.3.1";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-2.3.1.tgz";
-        sha512 = "YSf5oEExzrR+O7FizQAeIYyP/BAGvhGw9inACFF3Er3fzCR/sOvPadT6a/slW//tVGLF3eul0ARvw7QAvo6yHQ==";
+        url = "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-2.3.3.tgz";
+        sha512 = "4dPwCnpKUrME8PZLImOD3BBcyxpaA9tAtySPKACDJPkXc24GcfjI59QbSc+shG1fKptOGaDk68O2ZMu/Gpmlhw==";
       };
     };
-    "@antora/content-aggregator-2.3.1" = {
+    "@antora/content-aggregator-2.3.3" = {
       name = "_at_antora_slash_content-aggregator";
       packageName = "@antora/content-aggregator";
-      version = "2.3.1";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-2.3.1.tgz";
-        sha512 = "DKrM7FtK5ivWHmQjMkPYkn3S4jQ9Sy6QiNfKYcg/EcIee5k3VPRjYHn40nPY0gS+R4zElRJhru6bHOpnkGJYVA==";
+        url = "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-2.3.3.tgz";
+        sha512 = "ehr0VmPltRCmKuSIT5idSnI7S2sn/q9UHBdB85GsvxOqgfM08lnkZrxbdiVqmg+06rLi8qUUCLB3dI4RZ8+xvw==";
       };
     };
-    "@antora/content-classifier-2.3.1" = {
+    "@antora/content-classifier-2.3.3" = {
       name = "_at_antora_slash_content-classifier";
       packageName = "@antora/content-classifier";
-      version = "2.3.1";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-2.3.1.tgz";
-        sha512 = "d9vfhxcJY8DdU43h93cK96/Te2eKcJeA4pCljQrRUFpguZndMVrmWMxp8wzOYYSMIIukwcZVa3AISz86RNvrYA==";
+        url = "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-2.3.3.tgz";
+        sha512 = "VLnOIuL0uRasQsXJ8m2vjpAFdEkpWfs1L32OuVupQ1SwjpUAvJz46W3pVg9qxxEWRRjtidCvcc3KY0LI6X0Jvw==";
       };
     };
-    "@antora/document-converter-2.3.1" = {
+    "@antora/document-converter-2.3.3" = {
       name = "_at_antora_slash_document-converter";
       packageName = "@antora/document-converter";
-      version = "2.3.1";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/document-converter/-/document-converter-2.3.1.tgz";
-        sha512 = "5vnr3twkunAkv04NaqgLtXQTTlRNsvTo/jpVrUQ6DNQHE3l3Sr0z/6u4GWkueI95L/PFlFQ79WUNsBPLICfLrA==";
+        url = "https://registry.npmjs.org/@antora/document-converter/-/document-converter-2.3.3.tgz";
+        sha512 = "mGdDHRxYPts3QiT/thYVoQz1QgFXN6ZFU2jgjX0VmCzcIwKGK0TOgzbp+1A3V0o92VAISEmrjC812orbtHeKqA==";
       };
     };
     "@antora/expand-path-helper-1.0.0" = {
@@ -94,94 +139,94 @@ let
         sha512 = "hg3y6M3OvRTb7jtLAnwwloYDxafbyKYttcf16kGCXvP7Wqosh7c+Ag+ltaZ7VSebpzpphO/umb/BXdpU7rxapw==";
       };
     };
-    "@antora/navigation-builder-2.3.1" = {
+    "@antora/navigation-builder-2.3.3" = {
       name = "_at_antora_slash_navigation-builder";
       packageName = "@antora/navigation-builder";
-      version = "2.3.1";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-2.3.1.tgz";
-        sha512 = "kWsi/wn/+IEljBdR6dSE6TFrF+KUfOlDQTnq9YmMzdUCLJRk7Cvz36zsbDFRE8cgqkuunddfsA6oOECgXLQyrw==";
+        url = "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-2.3.3.tgz";
+        sha512 = "dx8PPFPvRBF+KInDXZU8k5dJ3sIVh1VvfsZhPUI27d5HMi+FRa0le8PK0OK5Hms4ixY/c1lXGcCAPFt0aH4Lxw==";
       };
     };
-    "@antora/page-composer-2.3.1" = {
+    "@antora/page-composer-2.3.3" = {
       name = "_at_antora_slash_page-composer";
       packageName = "@antora/page-composer";
-      version = "2.3.1";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/page-composer/-/page-composer-2.3.1.tgz";
-        sha512 = "HVZR5GgF+aA41Y0FVOmRHkI5Hn+ab4giJ5FvKwMZlqF10zd0u+rne6+0664kC08wYUIr40/OMayCRgIHPqEwuQ==";
+        url = "https://registry.npmjs.org/@antora/page-composer/-/page-composer-2.3.3.tgz";
+        sha512 = "yp1bHj5twD8TbBn8MHwe7488EB+xVmbyFJBvV2GLMyiWN7DnlCaW/AaCiw05vsU4mDAd+MQ8P+KeNhDRZnlU2w==";
       };
     };
-    "@antora/playbook-builder-2.3.1" = {
+    "@antora/playbook-builder-2.3.3" = {
       name = "_at_antora_slash_playbook-builder";
       packageName = "@antora/playbook-builder";
-      version = "2.3.1";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-2.3.1.tgz";
-        sha512 = "/gl4H/0ey/Uc80GaomZoz10c/f8TX4bQ70SR+BlKrwjwsHCskfffVa+jvMAjnOlP0SGEPwIGkifWPGQbTHdH7A==";
+        url = "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-2.3.3.tgz";
+        sha512 = "X9S38WgX2diZISNF4QKdF4ZfdND4ySsMlI26Iz4iybxf7xNlUJE1lAk9RM57Ooq543lEUNSnYHpECb1tog2BNw==";
       };
     };
-    "@antora/redirect-producer-2.3.1" = {
+    "@antora/redirect-producer-2.3.3" = {
       name = "_at_antora_slash_redirect-producer";
       packageName = "@antora/redirect-producer";
-      version = "2.3.1";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-2.3.1.tgz";
-        sha512 = "2iDYwygpZ5xHrSflnDIn+kzLt+9jXKOTRHXXqCQHYZuHANQVEYLI93yOXivvFZZvX/jaRzZBF7uTI3FGwg2Isw==";
+        url = "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-2.3.3.tgz";
+        sha512 = "69QtpB9wPVsg7/ykJq8zYUrHywSOtfgJEizxK+GmWharjZyrMReNB7IX1pg7Dk8qI6CGB0OOkhIYC41nGmuhmg==";
       };
     };
-    "@antora/site-mapper-2.3.1" = {
+    "@antora/site-mapper-2.3.3" = {
       name = "_at_antora_slash_site-mapper";
       packageName = "@antora/site-mapper";
-      version = "2.3.1";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-2.3.1.tgz";
-        sha512 = "EkHEEPz0CfLJuE8lx6s9b8+jEC8krFN29zAqK6WaOTi34Tqhv5H/W14mk7IJfy8nWjIjZgP/q/a8gJK9LegYaw==";
+        url = "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-2.3.3.tgz";
+        sha512 = "ERMGWl6s9B42crML7Tt4alPdJ/diSE6zQUSIMbbK7biI1EzjwxUCgKQ5lRJllUuGAdcXuYWQLGrpj/CWJzUXXA==";
       };
     };
-    "@antora/site-publisher-2.3.1" = {
+    "@antora/site-publisher-2.3.3" = {
       name = "_at_antora_slash_site-publisher";
       packageName = "@antora/site-publisher";
-      version = "2.3.1";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-2.3.1.tgz";
-        sha512 = "s42S+e3IF5qLgL7N42LpcGc2+UcsJBrY9B10fUP0WQFM51LsNWIwQmU3EheoSEUjo5JvQYi5vlQsHlb7j8TCPA==";
+        url = "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-2.3.3.tgz";
+        sha512 = "LAavxXd3wmH0hWqNkKMgQuj/fjE08BTO6zYR51KLBO798h0f7H0OgyBI+p8c7l/QANpAfjaWyBpbR1zOxnLCMQ==";
       };
     };
-    "@antora/ui-loader-2.3.1" = {
+    "@antora/ui-loader-2.3.3" = {
       name = "_at_antora_slash_ui-loader";
       packageName = "@antora/ui-loader";
-      version = "2.3.1";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-2.3.1.tgz";
-        sha512 = "0uZDixaamnMnGJvl1M5bqW2ac8+6W2KZcfOTwPBEJJCLTGiZe4GASB+zR7tXNyrUr51zLuCjxPNcEbzGEfRxAQ==";
+        url = "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-2.3.3.tgz";
+        sha512 = "bQVb6PE34iDmZj6wZZzYm3rLjguxoSqHZj4QReVQsOle/LdIwl48hV9Iz/Pivy9NtVCui9LL/lmSQzMt0G0jkw==";
       };
     };
-    "@apollo/federation-0.14.1" = {
+    "@apollo/federation-0.19.0" = {
       name = "_at_apollo_slash_federation";
       packageName = "@apollo/federation";
-      version = "0.14.1";
+      version = "0.19.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollo/federation/-/federation-0.14.1.tgz";
-        sha512 = "QuX2O3xO6mcTZdqttxHaMKWgq1v0nYRiDLe4k7DwAxVtb9nF8lsJDlup4Zicx3LBYhBCGQvumrYILuF/Amn6WQ==";
+        url = "https://registry.npmjs.org/@apollo/federation/-/federation-0.19.0.tgz";
+        sha512 = "8cd8ftHgqaseDTN7RJrROT6FT1xy8RV2Qb9BGhhqPVMHqf08GtidBqQTk6hv1UDR0qu/TRZA6J4Kh7oXeMrPQg==";
       };
     };
-    "@apollo/protobufjs-1.0.3" = {
+    "@apollo/protobufjs-1.0.4" = {
       name = "_at_apollo_slash_protobufjs";
       packageName = "@apollo/protobufjs";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.0.3.tgz";
-        sha512 = "gqeT810Ect9WIqsrgfUvr+ljSB5m1PyBae9HGdrRyQ3HjHjTcjVvxpsMYXlUk4rUHnrfUqyoGvLSy2yLlRGEOw==";
+        url = "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.0.4.tgz";
+        sha512 = "EE3zx+/D/wur/JiLp6VCiw1iYdyy1lCJMf8CGPkLeDt5QJrN4N8tKFx33Ah4V30AUQzMk7Uz4IXKZ1LOj124gA==";
       };
     };
-    "@apollographql/apollo-tools-0.4.7" = {
+    "@apollographql/apollo-tools-0.4.8" = {
       name = "_at_apollographql_slash_apollo-tools";
       packageName = "@apollographql/apollo-tools";
-      version = "0.4.7";
+      version = "0.4.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.7.tgz";
-        sha512 = "6QjZz6aLq6QXHgJ1AmSg4C4cBmhF5z3g7LPsk4g+zJoWKxiFuSIbrTe12ETtn6wgPq//e5p2agbXYydIjqs7gw==";
+        url = "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.8.tgz";
+        sha512 = "W2+HB8Y7ifowcf3YyPHgDI05izyRtOeZ4MqIr7LbTArtmJ0ZHULWpn84SGMW7NAvTV1tFExpHlveHhnXuJfuGA==";
       };
     };
     "@apollographql/graphql-language-service-interface-2.0.2" = {
@@ -220,13 +265,31 @@ let
         sha512 = "fDj5rWlTi/czvUS5t7V7I45Ai6bOO3Z7JARYj21Y2xxfbRGtJi6h8FvLX0N/EbzQgo/fiZc/HAhtfwn+OCjD7A==";
       };
     };
-    "@apollographql/graphql-playground-html-1.6.24" = {
+    "@apollographql/graphql-playground-html-1.6.26" = {
       name = "_at_apollographql_slash_graphql-playground-html";
       packageName = "@apollographql/graphql-playground-html";
-      version = "1.6.24";
+      version = "1.6.26";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.26.tgz";
+        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";
+      version = "0.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.24.tgz";
-        sha512 = "8GqG48m1XqyXh4mIZrtB5xOhUwSsh1WsrrsaZQOEYYql3YN9DEu9OOSg0ILzXHZo/h2Q74777YE4YzlArQzQEQ==";
+        url = "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.1.tgz";
+        sha512 = "UQ9BequOTIavs0pTHLMwQwKQF8tTV1oezY/H2O9chA+JNPFZSua55xpU5dPSjAU9/jLJ1VwU+HJuTVN8u7S6Fg==";
       };
     };
     "@azu/format-text-1.0.1" = {
@@ -247,301 +310,292 @@ let
         sha1 = "e70187f8a862e191b1bce6c0268f13acd3a56b20";
       };
     };
-    "@babel/code-frame-7.8.3" = {
+    "@babel/code-frame-7.10.4" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz";
-        sha512 = "a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==";
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz";
+        sha512 = "vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==";
       };
     };
-    "@babel/compat-data-7.9.6" = {
+    "@babel/compat-data-7.11.0" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
-      version = "7.9.6";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.6.tgz";
-        sha512 = "5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g==";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz";
+        sha512 = "TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==";
       };
     };
-    "@babel/core-7.9.6" = {
+    "@babel/core-7.11.1" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.9.6";
+      version = "7.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz";
-        sha512 = "nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz";
+        sha512 = "XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==";
       };
     };
-    "@babel/generator-7.0.0-beta.38" = {
+    "@babel/generator-7.11.0" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.0.0-beta.38";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.38.tgz";
-        sha512 = "aOHQPhsEyaB6p2n+AK981+onHoc+Ork9rcAQVSUJR33wUkGiWRpu6/C685knRyIZVsKeSdG5Q4xMiYeFUhuLzA==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz";
+        sha512 = "fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==";
       };
     };
-    "@babel/generator-7.9.5" = {
-      name = "_at_babel_slash_generator";
-      packageName = "@babel/generator";
-      version = "7.9.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz";
-        sha512 = "GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==";
-      };
-    };
-    "@babel/generator-7.9.6" = {
-      name = "_at_babel_slash_generator";
-      packageName = "@babel/generator";
-      version = "7.9.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz";
-        sha512 = "+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==";
-      };
-    };
-    "@babel/helper-annotate-as-pure-7.8.3" = {
+    "@babel/helper-annotate-as-pure-7.10.4" = {
       name = "_at_babel_slash_helper-annotate-as-pure";
       packageName = "@babel/helper-annotate-as-pure";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz";
-        sha512 = "6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==";
+        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.8.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.8.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.8.3.tgz";
-        sha512 = "5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==";
+        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.9.0" = {
+    "@babel/helper-builder-react-jsx-7.10.4" = {
       name = "_at_babel_slash_helper-builder-react-jsx";
       packageName = "@babel/helper-builder-react-jsx";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz";
-        sha512 = "weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw==";
+        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.9.5" = {
+    "@babel/helper-builder-react-jsx-experimental-7.10.5" = {
       name = "_at_babel_slash_helper-builder-react-jsx-experimental";
       packageName = "@babel/helper-builder-react-jsx-experimental";
-      version = "7.9.5";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.5.tgz";
-        sha512 = "HAagjAC93tk748jcXpZ7oYRZH485RCq/+yEv9SIWezHRPv9moZArTnkUNciUNzvwHUABmiWKlcxJvMcu59UwTg==";
+        url = "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz";
+        sha512 = "Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==";
       };
     };
-    "@babel/helper-compilation-targets-7.9.6" = {
+    "@babel/helper-compilation-targets-7.10.4" = {
       name = "_at_babel_slash_helper-compilation-targets";
       packageName = "@babel/helper-compilation-targets";
-      version = "7.9.6";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz";
-        sha512 = "x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw==";
+        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.9.6" = {
+    "@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.9.6";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.6.tgz";
-        sha512 = "6N9IeuyHvMBRyjNYOMJHrhwtu4WJMrYf8hVbEHD3pbbbmNOk1kmXSQs7bA4dYDUaIx4ZEzdnvo6NwC3WHd/Qow==";
+        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.8.8" = {
+    "@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.8.8";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz";
-        sha512 = "LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==";
+        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.8.3" = {
+    "@babel/helper-define-map-7.10.5" = {
       name = "_at_babel_slash_helper-define-map";
       packageName = "@babel/helper-define-map";
-      version = "7.8.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz";
-        sha512 = "PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==";
+        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.8.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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz";
-        sha512 = "N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==";
+        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.9.5" = {
+    "@babel/helper-function-name-7.10.4" = {
       name = "_at_babel_slash_helper-function-name";
       packageName = "@babel/helper-function-name";
-      version = "7.9.5";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz";
-        sha512 = "JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==";
+        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.8.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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz";
-        sha512 = "FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==";
+        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.8.3" = {
+    "@babel/helper-hoist-variables-7.10.4" = {
       name = "_at_babel_slash_helper-hoist-variables";
       packageName = "@babel/helper-hoist-variables";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz";
-        sha512 = "ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==";
+        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.8.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.8.3";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz";
-        sha512 = "fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==";
+        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.8.3" = {
+    "@babel/helper-module-imports-7.10.4" = {
       name = "_at_babel_slash_helper-module-imports";
       packageName = "@babel/helper-module-imports";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz";
-        sha512 = "R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==";
+        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.9.0" = {
+    "@babel/helper-module-transforms-7.11.0" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.9.0";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz";
-        sha512 = "0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==";
+        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.8.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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz";
-        sha512 = "Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==";
+        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.8.3" = {
+    "@babel/helper-plugin-utils-7.10.4" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz";
-        sha512 = "j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==";
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
+        sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==";
       };
     };
-    "@babel/helper-regex-7.8.3" = {
+    "@babel/helper-regex-7.10.5" = {
       name = "_at_babel_slash_helper-regex";
       packageName = "@babel/helper-regex";
-      version = "7.8.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz";
-        sha512 = "BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==";
+        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz";
+        sha512 = "68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==";
       };
     };
-    "@babel/helper-remap-async-to-generator-7.8.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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz";
-        sha512 = "kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==";
+        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.9.6" = {
+    "@babel/helper-replace-supers-7.10.4" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.9.6";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz";
-        sha512 = "qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==";
+        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.8.3" = {
+    "@babel/helper-simple-access-7.10.4" = {
       name = "_at_babel_slash_helper-simple-access";
       packageName = "@babel/helper-simple-access";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz";
-        sha512 = "VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==";
+        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.8.3" = {
+    "@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.8.3";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz";
-        sha512 = "3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==";
+        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.9.5" = {
+    "@babel/helper-validator-identifier-7.10.4" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.9.5";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz";
-        sha512 = "/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==";
+        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.8.3" = {
+    "@babel/helper-wrap-function-7.10.4" = {
       name = "_at_babel_slash_helper-wrap-function";
       packageName = "@babel/helper-wrap-function";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz";
-        sha512 = "LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==";
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz";
+        sha512 = "6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==";
       };
     };
-    "@babel/helpers-7.9.6" = {
+    "@babel/helpers-7.10.4" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.9.6";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz";
-        sha512 = "tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz";
+        sha512 = "L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==";
       };
     };
-    "@babel/highlight-7.9.0" = {
+    "@babel/highlight-7.10.4" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz";
-        sha512 = "lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz";
+        sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
       };
     };
-    "@babel/parser-7.9.6" = {
+    "@babel/parser-7.11.1" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.9.6";
+      version = "7.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz";
-        sha512 = "AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.11.1.tgz";
+        sha512 = "u9QMIRdKVF7hfEkb3nu2LgZDIzCQPv+yHD9Eg6ruoJLjkrQ9fFz4IBSlF/9XwoNri9+2F1IY+dYuOfZrXq8t3w==";
       };
     };
     "@babel/plugin-external-helpers-7.8.3" = {
@@ -553,94 +607,121 @@ let
         sha512 = "mx0WXDDiIl5DwzMtzWGRSPugXi9BxROS05GQrhLNbEamhBiicgn994ibwkyiBH+6png7bm/yA7AUsvHyCXi4Vw==";
       };
     };
-    "@babel/plugin-proposal-async-generator-functions-7.8.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.8.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz";
-        sha512 = "NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==";
+        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.8.3" = {
+    "@babel/plugin-proposal-class-properties-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-class-properties";
       packageName = "@babel/plugin-proposal-class-properties";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz";
-        sha512 = "EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==";
+        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.8.3" = {
+    "@babel/plugin-proposal-dynamic-import-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-dynamic-import";
       packageName = "@babel/plugin-proposal-dynamic-import";
-      version = "7.8.3";
+      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.8.3.tgz";
-        sha512 = "NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==";
+        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.8.3" = {
+    "@babel/plugin-proposal-json-strings-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-json-strings";
       packageName = "@babel/plugin-proposal-json-strings";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz";
-        sha512 = "KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==";
+        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.8.3" = {
+    "@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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz";
-        sha512 = "TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==";
+        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.8.3" = {
+    "@babel/plugin-proposal-numeric-separator-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-numeric-separator";
       packageName = "@babel/plugin-proposal-numeric-separator";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz";
-        sha512 = "jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==";
+        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.9.6" = {
+    "@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.9.6";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz";
-        sha512 = "Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==";
+        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.8.3" = {
+    "@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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz";
-        sha512 = "0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==";
+        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.9.0" = {
+    "@babel/plugin-proposal-optional-chaining-7.11.0" = {
       name = "_at_babel_slash_plugin-proposal-optional-chaining";
       packageName = "@babel/plugin-proposal-optional-chaining";
-      version = "7.9.0";
+      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-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz";
-        sha512 = "NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==";
+        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.8.8" = {
+    "@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.8.8";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz";
-        sha512 = "EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==";
+        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" = {
@@ -661,13 +742,13 @@ let
         sha512 = "wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==";
       };
     };
-    "@babel/plugin-syntax-class-properties-7.8.3" = {
+    "@babel/plugin-syntax-class-properties-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-class-properties";
       packageName = "@babel/plugin-syntax-class-properties";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz";
-        sha512 = "UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg==";
+        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" = {
@@ -679,13 +760,31 @@ let
         sha512 = "5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==";
       };
     };
-    "@babel/plugin-syntax-flow-7.8.3" = {
+    "@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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz";
-        sha512 = "innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg==";
+        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.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" = {
@@ -697,22 +796,22 @@ let
         sha512 = "lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==";
       };
     };
-    "@babel/plugin-syntax-jsx-7.8.3" = {
+    "@babel/plugin-syntax-jsx-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-jsx";
       packageName = "@babel/plugin-syntax-jsx";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz";
-        sha512 = "WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==";
+        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.8.3" = {
+    "@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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz";
-        sha512 = "Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg==";
+        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" = {
@@ -724,13 +823,13 @@ let
         sha512 = "aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==";
       };
     };
-    "@babel/plugin-syntax-numeric-separator-7.8.3" = {
+    "@babel/plugin-syntax-numeric-separator-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-numeric-separator";
       packageName = "@babel/plugin-syntax-numeric-separator";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz";
-        sha512 = "H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==";
+        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" = {
@@ -760,364 +859,373 @@ let
         sha512 = "KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==";
       };
     };
-    "@babel/plugin-syntax-top-level-await-7.8.3" = {
+    "@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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz";
-        sha512 = "kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==";
+        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.8.3" = {
+    "@babel/plugin-syntax-typescript-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-typescript";
       packageName = "@babel/plugin-syntax-typescript";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.8.3.tgz";
-        sha512 = "GO1MQ/SGGGoiEXY0e0bSpHimJvxqB7lktLLIq2pv8xG7WZ8IMEle74jIe1FhprHBWjwjZtXHkycDLZXIWM5Wfg==";
+        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.8.3" = {
+    "@babel/plugin-transform-arrow-functions-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-arrow-functions";
       packageName = "@babel/plugin-transform-arrow-functions";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz";
-        sha512 = "0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==";
+        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.8.3" = {
+    "@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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz";
-        sha512 = "imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==";
+        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.8.3" = {
+    "@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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz";
-        sha512 = "vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==";
+        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.8.3" = {
+    "@babel/plugin-transform-block-scoping-7.11.1" = {
       name = "_at_babel_slash_plugin-transform-block-scoping";
       packageName = "@babel/plugin-transform-block-scoping";
-      version = "7.8.3";
+      version = "7.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz";
-        sha512 = "pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==";
+        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.9.5" = {
+    "@babel/plugin-transform-classes-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.9.5";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz";
-        sha512 = "x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==";
+        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.8.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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz";
-        sha512 = "O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==";
+        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.9.5" = {
+    "@babel/plugin-transform-destructuring-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.9.5";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz";
-        sha512 = "j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==";
+        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.8.3" = {
+    "@babel/plugin-transform-dotall-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-dotall-regex";
       packageName = "@babel/plugin-transform-dotall-regex";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz";
-        sha512 = "kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==";
+        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.8.3" = {
+    "@babel/plugin-transform-duplicate-keys-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-duplicate-keys";
       packageName = "@babel/plugin-transform-duplicate-keys";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz";
-        sha512 = "s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==";
+        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.8.3" = {
+    "@babel/plugin-transform-exponentiation-operator-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-exponentiation-operator";
       packageName = "@babel/plugin-transform-exponentiation-operator";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz";
-        sha512 = "zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==";
+        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.9.0" = {
+    "@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.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz";
-        sha512 = "7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg==";
+        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.9.0" = {
+    "@babel/plugin-transform-for-of-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-for-of";
       packageName = "@babel/plugin-transform-for-of";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz";
-        sha512 = "lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==";
+        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.8.3" = {
+    "@babel/plugin-transform-function-name-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-function-name";
       packageName = "@babel/plugin-transform-function-name";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz";
-        sha512 = "rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==";
+        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.8.3" = {
+    "@babel/plugin-transform-literals-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-literals";
       packageName = "@babel/plugin-transform-literals";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz";
-        sha512 = "3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==";
+        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.8.3" = {
+    "@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.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz";
-        sha512 = "3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==";
+        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.9.6" = {
+    "@babel/plugin-transform-modules-amd-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-modules-amd";
       packageName = "@babel/plugin-transform-modules-amd";
-      version = "7.9.6";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz";
-        sha512 = "zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw==";
+        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.9.6" = {
+    "@babel/plugin-transform-modules-commonjs-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.9.6";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz";
-        sha512 = "7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ==";
+        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.9.6" = {
+    "@babel/plugin-transform-modules-systemjs-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-modules-systemjs";
       packageName = "@babel/plugin-transform-modules-systemjs";
-      version = "7.9.6";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz";
-        sha512 = "NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg==";
+        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.9.0" = {
+    "@babel/plugin-transform-modules-umd-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-modules-umd";
       packageName = "@babel/plugin-transform-modules-umd";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz";
-        sha512 = "uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==";
+        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.8.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.8.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.8.3.tgz";
-        sha512 = "f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==";
+        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.8.3" = {
+    "@babel/plugin-transform-new-target-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-new-target";
       packageName = "@babel/plugin-transform-new-target";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz";
-        sha512 = "QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==";
+        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.8.3" = {
+    "@babel/plugin-transform-object-super-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-object-super";
       packageName = "@babel/plugin-transform-object-super";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz";
-        sha512 = "57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==";
+        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.9.5" = {
+    "@babel/plugin-transform-parameters-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.9.5";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz";
-        sha512 = "0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==";
+        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.8.3" = {
+    "@babel/plugin-transform-property-literals-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-property-literals";
       packageName = "@babel/plugin-transform-property-literals";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz";
-        sha512 = "uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==";
+        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.9.4" = {
+    "@babel/plugin-transform-react-jsx-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-react-jsx";
       packageName = "@babel/plugin-transform-react-jsx";
-      version = "7.9.4";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz";
-        sha512 = "Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw==";
+        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.8.7" = {
+    "@babel/plugin-transform-regenerator-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-regenerator";
       packageName = "@babel/plugin-transform-regenerator";
-      version = "7.8.7";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz";
-        sha512 = "TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz";
+        sha512 = "3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==";
       };
     };
-    "@babel/plugin-transform-reserved-words-7.8.3" = {
+    "@babel/plugin-transform-reserved-words-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-reserved-words";
       packageName = "@babel/plugin-transform-reserved-words";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz";
-        sha512 = "mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==";
+        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" = {
+    "@babel/plugin-transform-runtime-7.11.0" = {
       name = "_at_babel_slash_plugin-transform-runtime";
       packageName = "@babel/plugin-transform-runtime";
-      version = "7.9.6";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.6.tgz";
-        sha512 = "qcmiECD0mYOjOIt8YHNsAP1SxPooC/rDmfmiSK9BNY72EitdSc7l44WTEklaWuFtbOEBjNhWWyph/kOImbNJ4w==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz";
+        sha512 = "LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw==";
       };
     };
-    "@babel/plugin-transform-shorthand-properties-7.8.3" = {
+    "@babel/plugin-transform-shorthand-properties-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-shorthand-properties";
       packageName = "@babel/plugin-transform-shorthand-properties";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz";
-        sha512 = "I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==";
+        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.8.3" = {
+    "@babel/plugin-transform-spread-7.11.0" = {
       name = "_at_babel_slash_plugin-transform-spread";
       packageName = "@babel/plugin-transform-spread";
-      version = "7.8.3";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz";
-        sha512 = "CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==";
+        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.8.3" = {
+    "@babel/plugin-transform-sticky-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-sticky-regex";
       packageName = "@babel/plugin-transform-sticky-regex";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz";
-        sha512 = "9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==";
+        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.8.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.8.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz";
-        sha512 = "820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==";
+        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.8.4" = {
+    "@babel/plugin-transform-typeof-symbol-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-typeof-symbol";
       packageName = "@babel/plugin-transform-typeof-symbol";
-      version = "7.8.4";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz";
-        sha512 = "2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==";
+        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.9.6" = {
+    "@babel/plugin-transform-typescript-7.11.0" = {
       name = "_at_babel_slash_plugin-transform-typescript";
       packageName = "@babel/plugin-transform-typescript";
-      version = "7.9.6";
+      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-typescript/-/plugin-transform-typescript-7.9.6.tgz";
-        sha512 = "8OvsRdvpt3Iesf2qsAn+YdlwAJD7zJ+vhFZmDCa4b8dTp7MmHtKk5FF2mCsGxjZwuwsy/yIIay/nLmxST1ctVQ==";
+        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.8.3" = {
+    "@babel/plugin-transform-unicode-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-unicode-regex";
       packageName = "@babel/plugin-transform-unicode-regex";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz";
-        sha512 = "+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==";
+        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.9.6" = {
+    "@babel/preset-env-7.11.0" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.9.6";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.6.tgz";
-        sha512 = "0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz";
+        sha512 = "2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==";
       };
     };
-    "@babel/preset-flow-7.9.0" = {
+    "@babel/preset-flow-7.10.4" = {
       name = "_at_babel_slash_preset-flow";
       packageName = "@babel/preset-flow";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.9.0.tgz";
-        sha512 = "88uSmlshIrlmPkNkEcx3UpSZ6b8n0UGBq0/0ZMZCF/uxAW0XIAUuDHBhIOAh0pvweafH4RxOwi/H3rWhtqOYPA==";
+        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.10.4.tgz";
+        sha512 = "XI6l1CptQCOBv+ZKYwynyswhtOKwpZZp5n0LG1QKCo8erRhqjoQV6nvx61Eg30JHpysWQSBwA2AWRU3pBbSY5g==";
       };
     };
     "@babel/preset-modules-0.1.3" = {
@@ -1138,103 +1246,76 @@ let
         sha512 = "dStnEQgejNYIHFNACdDCigK4BF7wgW6Zahv9Dc2un7rGjbeVtZhBfR3sy0I7ZJOhBexkFxVdMZ5hqmll7BFShw==";
       };
     };
-    "@babel/preset-typescript-7.9.0" = {
+    "@babel/preset-typescript-7.10.4" = {
       name = "_at_babel_slash_preset-typescript";
       packageName = "@babel/preset-typescript";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.9.0.tgz";
-        sha512 = "S4cueFnGrIbvYJgwsVFKdvOmpiL0XGw9MFW9D0vgRys5g36PBhZRL8NX8Gr2akz8XRtzq6HuDXPD/1nniagNUg==";
+        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.10.4.tgz";
+        sha512 = "SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ==";
       };
     };
-    "@babel/register-7.9.0" = {
+    "@babel/register-7.10.5" = {
       name = "_at_babel_slash_register";
       packageName = "@babel/register";
-      version = "7.9.0";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/register/-/register-7.9.0.tgz";
-        sha512 = "Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q==";
+        url = "https://registry.npmjs.org/@babel/register/-/register-7.10.5.tgz";
+        sha512 = "eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw==";
       };
     };
-    "@babel/runtime-7.7.7" = {
+    "@babel/runtime-7.10.5" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.7.7";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.7.tgz";
-        sha512 = "uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz";
+        sha512 = "otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==";
       };
     };
-    "@babel/runtime-7.9.2" = {
+    "@babel/runtime-7.11.1" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.9.2";
+      version = "7.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz";
-        sha512 = "NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.1.tgz";
+        sha512 = "nH5y8fLvVl3HAb+ezbgcgwrH8QbClWo8xzkOu7+oyqngo3EVorwpWJQaqXPjGRpfj7mQvsJCl/S8knkfkPWqrw==";
       };
     };
-    "@babel/runtime-7.9.6" = {
-      name = "_at_babel_slash_runtime";
-      packageName = "@babel/runtime";
-      version = "7.9.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz";
-        sha512 = "64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==";
-      };
-    };
-    "@babel/runtime-corejs3-7.9.6" = {
-      name = "_at_babel_slash_runtime-corejs3";
-      packageName = "@babel/runtime-corejs3";
-      version = "7.9.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.9.6.tgz";
-        sha512 = "6toWAfaALQjt3KMZQc6fABqZwUDDuWzz+cAfPhqyEnzxvdWOAkjwPNxgF8xlmo7OWLsSjaKjsskpKHRLaMArOA==";
-      };
-    };
-    "@babel/template-7.8.6" = {
+    "@babel/template-7.10.4" = {
       name = "_at_babel_slash_template";
       packageName = "@babel/template";
-      version = "7.8.6";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz";
-        sha512 = "zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==";
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz";
+        sha512 = "ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==";
       };
     };
-    "@babel/traverse-7.9.6" = {
+    "@babel/traverse-7.11.0" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.9.6";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz";
-        sha512 = "b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz";
+        sha512 = "ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==";
       };
     };
-    "@babel/types-7.0.0-beta.38" = {
+    "@babel/types-7.10.4" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.0.0-beta.38";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.38.tgz";
-        sha512 = "SAtyEjmA7KiEoL2eAOAUM6M9arQJGWxJKK0S9x0WyPOosHS420RXoxPhn57u/8orRnK8Kxm0nHQQNTX203cP1Q==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz";
+        sha512 = "UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==";
       };
     };
-    "@babel/types-7.9.5" = {
+    "@babel/types-7.11.0" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.9.5";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz";
-        sha512 = "XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==";
-      };
-    };
-    "@babel/types-7.9.6" = {
-      name = "_at_babel_slash_types";
-      packageName = "@babel/types";
-      version = "7.9.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz";
-        sha512 = "qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz";
+        sha512 = "O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==";
       };
     };
     "@chemzqm/neovim-5.1.9" = {
@@ -1282,13 +1363,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" = {
@@ -1345,6 +1426,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";
@@ -1354,13 +1444,112 @@ let
         sha512 = "Ce3xE2JvTSEbASFbRbA1gAIcMcZWdS2yUYRaQbeM0nbOzaZrUYfa3ePtcriYRZOZmr+CkKA+zbjhvTpIOAYVcw==";
       };
     };
-    "@endemolshinegroup/cosmiconfig-typescript-loader-1.0.1" = {
+    "@emotion/babel-utils-0.6.10" = {
+      name = "_at_emotion_slash_babel-utils";
+      packageName = "@emotion/babel-utils";
+      version = "0.6.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emotion/babel-utils/-/babel-utils-0.6.10.tgz";
+        sha512 = "/fnkM/LTEp3jKe++T0KyTszVGWNKPNOUJfjNKLO17BzQ6QPxgbg3whayom1Qr2oLFH3V92tDymU+dT5q676uow==";
+      };
+    };
+    "@emotion/hash-0.6.6" = {
+      name = "_at_emotion_slash_hash";
+      packageName = "@emotion/hash";
+      version = "0.6.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emotion/hash/-/hash-0.6.6.tgz";
+        sha512 = "ojhgxzUHZ7am3D2jHkMzPpsBAiB005GF5YU4ea+8DNPybMk01JJUM9V9YRlF/GE95tcOm8DxQvWA2jq19bGalQ==";
+      };
+    };
+    "@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.6.6" = {
+      name = "_at_emotion_slash_memoize";
+      packageName = "@emotion/memoize";
+      version = "0.6.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.6.6.tgz";
+        sha512 = "h4t4jFjtm1YV7UirAFuSuFGyLa+NNxjdkq6DpFLANNQY5rHueFZHVY+8Cu1HYVP6DrheB0kv4m5xPjo7eKT7yQ==";
+      };
+    };
+    "@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/serialize-0.9.1" = {
+      name = "_at_emotion_slash_serialize";
+      packageName = "@emotion/serialize";
+      version = "0.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.9.1.tgz";
+        sha512 = "zTuAFtyPvCctHBEL8KZ5lJuwBanGSutFEncqLn/m9T1a6a93smBStK+bZzcNPgj4QS8Rkw9VTwJGhRIUVO8zsQ==";
+      };
+    };
+    "@emotion/stylis-0.7.1" = {
+      name = "_at_emotion_slash_stylis";
+      packageName = "@emotion/stylis";
+      version = "0.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.7.1.tgz";
+        sha512 = "/SLmSIkN13M//53TtNxgxo57mcJk/UJIDFRKwOiLIBEyBHEcipgR6hNMQ/59Sl4VjCJ0Z/3zeAZyvnSLPG/1HQ==";
+      };
+    };
+    "@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.6.7" = {
+      name = "_at_emotion_slash_unitless";
+      packageName = "@emotion/unitless";
+      version = "0.6.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.6.7.tgz";
+        sha512 = "Arj1hncvEVqQ2p7Ega08uHLr1JuRYBuO5cIvcA+WWEQ5+VmkOE3ZXzl04NbQxeQpWX78G7u6MqxKuNX3wvYZxg==";
+      };
+    };
+    "@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==";
+      };
+    };
+    "@emotion/utils-0.8.2" = {
+      name = "_at_emotion_slash_utils";
+      packageName = "@emotion/utils";
+      version = "0.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emotion/utils/-/utils-0.8.2.tgz";
+        sha512 = "rLu3wcBWH4P5q1CGoSSH/i9hrXs7SlbRLkoq9IGuoPYNGQvDJ3pt/wmOM+XgYjIDRMVIdkUWt0RsfzF50JfnCw==";
+      };
+    };
+    "@endemolshinegroup/cosmiconfig-typescript-loader-1.0.2" = {
       name = "_at_endemolshinegroup_slash_cosmiconfig-typescript-loader";
       packageName = "@endemolshinegroup/cosmiconfig-typescript-loader";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.1.tgz";
-        sha512 = "bhUR9035PbgL6A/nfLayjoqKo4W7hCtzxqVxq2cgDB+Ndpsa3dGIr71/ymgY3vCTCQaufkFxAcEeoECyJ498CA==";
+        url = "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.2.tgz";
+        sha512 = "ZHkXKq2XFFmAUdmSZrmqUSIrRM4O9gtkdpxMmV+LQl7kScUnbo6pMnXu6+FTDgZ12aW6SDoZoOJfS56WD+Eu6A==";
       };
     };
     "@evocateur/libnpmaccess-3.1.2" = {
@@ -1399,6 +1588,159 @@ let
         sha512 = "EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w==";
       };
     };
+    "@fluentui/date-time-utilities-7.3.1" = {
+      name = "_at_fluentui_slash_date-time-utilities";
+      packageName = "@fluentui/date-time-utilities";
+      version = "7.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-7.3.1.tgz";
+        sha512 = "nC0ghnbJj8/9jM5Jn/Hg9RKKPn6ORS4sHrQk8iK/8R9A0EbYfPJS4wYlIrAhlgAbgkUTNcBgIM7M0q8dKfRTfw==";
+      };
+    };
+    "@fluentui/keyboard-key-0.2.8" = {
+      name = "_at_fluentui_slash_keyboard-key";
+      packageName = "@fluentui/keyboard-key";
+      version = "0.2.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.2.8.tgz";
+        sha512 = "GJW3NjDdigTddYuxoOuBGhOs5Egweqs6iPTDSUN+oAtXI/poYHVtgjxaFQx1OeAzD8wLXofGneAe/03ZW+TESA==";
+      };
+    };
+    "@fluentui/react-7.124.2" = {
+      name = "_at_fluentui_slash_react";
+      packageName = "@fluentui/react";
+      version = "7.124.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.124.2.tgz";
+        sha512 = "NFl5nHC68s3sDZMdjSnlasRR02Vb2KOTmtsLi8VX10T2jpt1G7VW3fcK5hh+lTO2jBN+GwF6DX/EIVF/wBLpMA==";
+      };
+    };
+    "@fluentui/react-focus-7.12.27" = {
+      name = "_at_fluentui_slash_react-focus";
+      packageName = "@fluentui/react-focus";
+      version = "7.12.27";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-7.12.27.tgz";
+        sha512 = "YIyqcoWhQ275STcrseqJ7vjlvYdLlMlaWpziMgqtidS7/yaMrCyCnB5zPzuKaePH8N8z2wtsqq10algj3UtwRw==";
+      };
+    };
+    "@fluentui/react-icons-0.1.42" = {
+      name = "_at_fluentui_slash_react-icons";
+      packageName = "@fluentui/react-icons";
+      version = "0.1.42";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/react-icons/-/react-icons-0.1.42.tgz";
+        sha512 = "/VHMiEl/MeEuRBqrYn9+zdpU5ay7qwpRZiGmXc6WecY9Olh/mV+Pfvf2lntOFf5IACWOhGY6EVaiV3pE5Uf5zg==";
+      };
+    };
+    "@graphql-cli/common-4.0.0" = {
+      name = "_at_graphql-cli_slash_common";
+      packageName = "@graphql-cli/common";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-cli/common/-/common-4.0.0.tgz";
+        sha512 = "1webMsg9tmVQX9YA1wYeCVxNdWNrCrgVmpD0JyzroSsSEjt5hrHZR2x2vzuHK5CthH9I99GdvRtuMixmd1S9bQ==";
+      };
+    };
+    "@graphql-cli/init-4.0.0" = {
+      name = "_at_graphql-cli_slash_init";
+      packageName = "@graphql-cli/init";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-cli/init/-/init-4.0.0.tgz";
+        sha512 = "oJZb4PScX25ZGObpw9n7/bJBE7R0oF6hJ4ABe+WvMqSCI3kxaReMTgJJNIrxpmbXscxWM8U1ndLefP5IjPcU7Q==";
+      };
+    };
+    "@graphql-tools/delegate-6.0.16" = {
+      name = "_at_graphql-tools_slash_delegate";
+      packageName = "@graphql-tools/delegate";
+      version = "6.0.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-6.0.16.tgz";
+        sha512 = "mq/vTHaBGOWxqKqjkj8KJpH+hg6Y096nZYTLpUZcPf6eX1OhxEIkdw5NDN99ii2/NGAyw7ApoY7BWFEEneiiTg==";
+      };
+    };
+    "@graphql-tools/graphql-file-loader-6.0.16" = {
+      name = "_at_graphql-tools_slash_graphql-file-loader";
+      packageName = "@graphql-tools/graphql-file-loader";
+      version = "6.0.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.0.16.tgz";
+        sha512 = "qgYplQhnY90CnQiRZpM2svCzyZ7FAXaca+liZ6hqA9jfWUWh4N9Tnmy//BqrTmULGVeanPM/m8MyhZEWvvRNIg==";
+      };
+    };
+    "@graphql-tools/import-6.0.16" = {
+      name = "_at_graphql-tools_slash_import";
+      packageName = "@graphql-tools/import";
+      version = "6.0.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.0.16.tgz";
+        sha512 = "zZRxJwAtUsyIckjfiscteFwpaIuEh3EjuhXEaNviMuwhOSrYT0oWmelcPgp/VHT6N4NZD1/y5jxQ4KHK4MrAfg==";
+      };
+    };
+    "@graphql-tools/json-file-loader-6.0.16" = {
+      name = "_at_graphql-tools_slash_json-file-loader";
+      packageName = "@graphql-tools/json-file-loader";
+      version = "6.0.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-6.0.16.tgz";
+        sha512 = "djkzPmGvVpD3YRypibYRNTgVUUfkae0JXcEWP/gn/8Y8+mnwyE2EiBfGZoW6Ejw5xTKQ7PgmOyWUIJgdEVMCJg==";
+      };
+    };
+    "@graphql-tools/load-6.0.16" = {
+      name = "_at_graphql-tools_slash_load";
+      packageName = "@graphql-tools/load";
+      version = "6.0.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-6.0.16.tgz";
+        sha512 = "7nJUrQqou8lQG5x6tJQAl0N/ONP2oYEgSmN0QwjSxv8iz0aRDoK/nHzGlVk6/Sot58iogF0E+qx/vDKNJh2piw==";
+      };
+    };
+    "@graphql-tools/merge-6.0.16" = {
+      name = "_at_graphql-tools_slash_merge";
+      packageName = "@graphql-tools/merge";
+      version = "6.0.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.0.16.tgz";
+        sha512 = "QWeTru5IAON9ruTqs48X3WndRjz4pamTfA90M/RICkgog1LsFbIFhHM2QF+hogoMqxhlhmjgfMjQl7xXtDT+9Q==";
+      };
+    };
+    "@graphql-tools/schema-6.0.16" = {
+      name = "_at_graphql-tools_slash_schema";
+      packageName = "@graphql-tools/schema";
+      version = "6.0.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-6.0.16.tgz";
+        sha512 = "e5jqE13L5eywCc0Uqlf2ThgScj1KgrCQmwvm+giVK0Dh9goMbwLZt/ciEJSr/LYn/vsH5sec9Qu5Jml6IX7zLA==";
+      };
+    };
+    "@graphql-tools/url-loader-6.0.16" = {
+      name = "_at_graphql-tools_slash_url-loader";
+      packageName = "@graphql-tools/url-loader";
+      version = "6.0.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.0.16.tgz";
+        sha512 = "b+dwCDTcWIGOCYNYUKr6nbkAi8uOmgYHCf1wXsG09gV8uchU74tL8ebxBoaIEU8C9GSqterK2Y7mNjWyw3UdQQ==";
+      };
+    };
+    "@graphql-tools/utils-6.0.16" = {
+      name = "_at_graphql-tools_slash_utils";
+      packageName = "@graphql-tools/utils";
+      version = "6.0.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.0.16.tgz";
+        sha512 = "WSYVqiIpda0CzXgHuKBJkqE0zZs4aruoVxn5KVMmqDoZbPVJ4f/pATVgKYyelOlBlx5gOfs8PCFpWcQhDB39LA==";
+      };
+    };
+    "@graphql-tools/wrap-6.0.16" = {
+      name = "_at_graphql-tools_slash_wrap";
+      packageName = "@graphql-tools/wrap";
+      version = "6.0.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-6.0.16.tgz";
+        sha512 = "Q1VECNmmRygX1qdlGEF6dimAiuX9rauqalJif2zL9Fa4uORSvPr3VxOA8A0+4ypz2QYL+PjqQ88rCATUZxpY9g==";
+      };
+    };
     "@gulp-sourcemaps/identity-map-1.0.2" = {
       name = "_at_gulp-sourcemaps_slash_identity-map";
       packageName = "@gulp-sourcemaps/identity-map";
@@ -1570,13 +1912,13 @@ let
         sha512 = "ODXbta2kvFNkMIEGwl7KX5gJTcZZHkzSLoBh3wND2H+EsG0KpIqOZKWMtkj+suuPut85wyLZ7fGfARnrNf7dtA==";
       };
     };
-    "@istanbuljs/load-nyc-config-1.0.0" = {
+    "@istanbuljs/load-nyc-config-1.1.0" = {
       name = "_at_istanbuljs_slash_load-nyc-config";
       packageName = "@istanbuljs/load-nyc-config";
-      version = "1.0.0";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz";
-        sha512 = "ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==";
+        url = "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz";
+        sha512 = "VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==";
       };
     };
     "@istanbuljs/schema-0.1.2" = {
@@ -1606,40 +1948,49 @@ let
         sha512 = "OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==";
       };
     };
-    "@kbrandwijk/swagger-to-graphql-2.4.3" = {
-      name = "_at_kbrandwijk_slash_swagger-to-graphql";
-      packageName = "@kbrandwijk/swagger-to-graphql";
-      version = "2.4.3";
+    "@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/@kbrandwijk/swagger-to-graphql/-/swagger-to-graphql-2.4.3.tgz";
-        sha512 = "CNVsCrMge/jq6DCT5buNZ8PACY9RTvPJbCNoIcndfkJOCsNxOx9dnc5qw4pHZdHi8GS6l3qlgkuFKp33iD8J2Q==";
+        url = "https://registry.npmjs.org/@josh-brown/vector/-/vector-3.4.0.tgz";
+        sha512 = "E2FcWwiAMXwr4MUv+SkxmtKsgwgaEaCNK7IlyCfQ1Rz1QzeaV36SooA8/GNkLh0WnlIda59WmDDSL7S1S73lUg==";
       };
     };
-    "@lerna/add-3.20.0" = {
+    "@kwsites/exec-p-0.4.0" = {
+      name = "_at_kwsites_slash_exec-p";
+      packageName = "@kwsites/exec-p";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@kwsites/exec-p/-/exec-p-0.4.0.tgz";
+        sha512 = "44DWNv5gDR9EwrCTVQ4ZC99yPqVS0VCWrYIBl45qNR8XQy+4lbl0IQG8kBDf6NHwj4Ib4c2z1Fq1IUJOCbkZcw==";
+      };
+    };
+    "@lerna/add-3.21.0" = {
       name = "_at_lerna_slash_add";
       packageName = "@lerna/add";
-      version = "3.20.0";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/add/-/add-3.20.0.tgz";
-        sha512 = "AnH1oRIEEg/VDa3SjYq4x1/UglEAvrZuV0WssHUMN81RTZgQk3we+Mv3qZNddrZ/fBcZu2IAdN/EQ3+ie2JxKQ==";
+        url = "https://registry.npmjs.org/@lerna/add/-/add-3.21.0.tgz";
+        sha512 = "vhUXXF6SpufBE1EkNEXwz1VLW03f177G9uMOFMQkp6OJ30/PWg4Ekifuz9/3YfgB2/GH8Tu4Lk3O51P2Hskg/A==";
       };
     };
-    "@lerna/bootstrap-3.20.0" = {
+    "@lerna/bootstrap-3.21.0" = {
       name = "_at_lerna_slash_bootstrap";
       packageName = "@lerna/bootstrap";
-      version = "3.20.0";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.20.0.tgz";
-        sha512 = "Wylullx3uthKE7r4izo09qeRGL20Y5yONlQEjPCfnbxCC2Elu+QcPu4RC6kqKQ7b+g7pdC3OOgcHZjngrwr5XQ==";
+        url = "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.21.0.tgz";
+        sha512 = "mtNHlXpmvJn6JTu0KcuTTPl2jLsDNud0QacV/h++qsaKbhAaJr/FElNZ5s7MwZFUM3XaDmvWzHKaszeBMHIbBw==";
       };
     };
-    "@lerna/changed-3.20.0" = {
+    "@lerna/changed-3.21.0" = {
       name = "_at_lerna_slash_changed";
       packageName = "@lerna/changed";
-      version = "3.20.0";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/changed/-/changed-3.20.0.tgz";
-        sha512 = "+hzMFSldbRPulZ0vbKk6RD9f36gaH3Osjx34wrrZ62VB4pKmjyuS/rxVYkCA3viPLHoiIw2F8zHM5BdYoDSbjw==";
+        url = "https://registry.npmjs.org/@lerna/changed/-/changed-3.21.0.tgz";
+        sha512 = "hzqoyf8MSHVjZp0gfJ7G8jaz+++mgXYiNs9iViQGA8JlN/dnWLI5sWDptEH3/B30Izo+fdVz0S0s7ydVE3pWIw==";
       };
     };
     "@lerna/check-working-tree-3.16.5" = {
@@ -1660,13 +2011,13 @@ let
         sha512 = "vdcI7mzei9ERRV4oO8Y1LHBZ3A5+ampRKg1wq5nutLsUA4mEBN6H7JqjWOMY9xZemv6+kATm2ofjJ3lW5TszQg==";
       };
     };
-    "@lerna/clean-3.20.0" = {
+    "@lerna/clean-3.21.0" = {
       name = "_at_lerna_slash_clean";
       packageName = "@lerna/clean";
-      version = "3.20.0";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/clean/-/clean-3.20.0.tgz";
-        sha512 = "9ZdYrrjQvR5wNXmHfDsfjWjp0foOkCwKe3hrckTzkAeQA1ibyz5llGwz5e1AeFrV12e2/OLajVqYfe+qdkZUgg==";
+        url = "https://registry.npmjs.org/@lerna/clean/-/clean-3.21.0.tgz";
+        sha512 = "b/L9l+MDgE/7oGbrav6rG8RTQvRiZLO1zTcG17zgJAAuhlsPxJExMlh2DFwJEVi2les70vMhHfST3Ue1IMMjpg==";
       };
     };
     "@lerna/cli-3.18.5" = {
@@ -1696,31 +2047,31 @@ let
         sha512 = "qBTVT5g4fupVhBFuY4nI/3FSJtQVcDh7/gEPOpRxoXB/yCSnT38MFHXWl+y4einLciCjt/+0x6/4AG80fjay2Q==";
       };
     };
-    "@lerna/command-3.18.5" = {
+    "@lerna/command-3.21.0" = {
       name = "_at_lerna_slash_command";
       packageName = "@lerna/command";
-      version = "3.18.5";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/command/-/command-3.18.5.tgz";
-        sha512 = "36EnqR59yaTU4HrR1C9XDFti2jRx0BgpIUBeWn129LZZB8kAB3ov1/dJNa1KcNRKp91DncoKHLY99FZ6zTNpMQ==";
+        url = "https://registry.npmjs.org/@lerna/command/-/command-3.21.0.tgz";
+        sha512 = "T2bu6R8R3KkH5YoCKdutKv123iUgUbW8efVjdGCDnCMthAQzoentOJfDeodBwn0P2OqCl3ohsiNVtSn9h78fyQ==";
       };
     };
-    "@lerna/conventional-commits-3.18.5" = {
+    "@lerna/conventional-commits-3.22.0" = {
       name = "_at_lerna_slash_conventional-commits";
       packageName = "@lerna/conventional-commits";
-      version = "3.18.5";
+      version = "3.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.18.5.tgz";
-        sha512 = "qcvXIEJ3qSgalxXnQ7Yxp5H9Ta5TVyai6vEor6AAEHc20WiO7UIdbLDCxBtiiHMdGdpH85dTYlsoYUwsCJu3HQ==";
+        url = "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.22.0.tgz";
+        sha512 = "z4ZZk1e8Mhz7+IS8NxHr64wyklHctCJyWpJKEZZPJiLFJ8yKto/x38O80R10pIzC0rr8Sy/OsjSH4bl0TbbgqA==";
       };
     };
-    "@lerna/create-3.18.5" = {
+    "@lerna/create-3.22.0" = {
       name = "_at_lerna_slash_create";
       packageName = "@lerna/create";
-      version = "3.18.5";
+      version = "3.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/create/-/create-3.18.5.tgz";
-        sha512 = "cHpjocbpKmLopCuZFI7cKEM3E/QY8y+yC7VtZ4FQRSaLU8D8i2xXtXmYaP1GOlVNavji0iwoXjuNpnRMInIr2g==";
+        url = "https://registry.npmjs.org/@lerna/create/-/create-3.22.0.tgz";
+        sha512 = "MdiQQzCcB4E9fBF1TyMOaAEz9lUjIHp1Ju9H7f3lXze5JK6Fl5NYkouAvsLgY6YSIhXMY8AHW2zzXeBDY4yWkw==";
       };
     };
     "@lerna/create-symlink-3.16.2" = {
@@ -1741,22 +2092,22 @@ let
         sha512 = "c01+4gUF0saOOtDBzbLMFOTJDHTKbDFNErEY6q6i9QaXuzy9LNN62z+Hw4acAAZuJQhrVWncVathcmkkjvSVGw==";
       };
     };
-    "@lerna/diff-3.18.5" = {
+    "@lerna/diff-3.21.0" = {
       name = "_at_lerna_slash_diff";
       packageName = "@lerna/diff";
-      version = "3.18.5";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/diff/-/diff-3.18.5.tgz";
-        sha512 = "u90lGs+B8DRA9Z/2xX4YaS3h9X6GbypmGV6ITzx9+1Ga12UWGTVlKaCXBgONMBjzJDzAQOK8qPTwLA57SeBLgA==";
+        url = "https://registry.npmjs.org/@lerna/diff/-/diff-3.21.0.tgz";
+        sha512 = "5viTR33QV3S7O+bjruo1SaR40m7F2aUHJaDAC7fL9Ca6xji+aw1KFkpCtVlISS0G8vikUREGMJh+c/VMSc8Usw==";
       };
     };
-    "@lerna/exec-3.20.0" = {
+    "@lerna/exec-3.21.0" = {
       name = "_at_lerna_slash_exec";
       packageName = "@lerna/exec";
-      version = "3.20.0";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/exec/-/exec-3.20.0.tgz";
-        sha512 = "pS1mmC7kzV668rHLWuv31ClngqeXjeHC8kJuM+W2D6IpUVMGQHLcCTYLudFgQsuKGVpl0DGNYG+sjLhAPiiu6A==";
+        url = "https://registry.npmjs.org/@lerna/exec/-/exec-3.21.0.tgz";
+        sha512 = "iLvDBrIE6rpdd4GIKTY9mkXyhwsJ2RvQdB9ZU+/NhR3okXfqKc6py/24tV111jqpXTtZUW6HNydT4dMao2hi1Q==";
       };
     };
     "@lerna/filter-options-3.20.0" = {
@@ -1795,13 +2146,13 @@ let
         sha512 = "AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw==";
       };
     };
-    "@lerna/github-client-3.16.5" = {
+    "@lerna/github-client-3.22.0" = {
       name = "_at_lerna_slash_github-client";
       packageName = "@lerna/github-client";
-      version = "3.16.5";
+      version = "3.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/github-client/-/github-client-3.16.5.tgz";
-        sha512 = "rHQdn8Dv/CJrO3VouOP66zAcJzrHsm+wFuZ4uGAai2At2NkgKH+tpNhQy2H1PSC0Ezj9LxvdaHYrUzULqVK5Hw==";
+        url = "https://registry.npmjs.org/@lerna/github-client/-/github-client-3.22.0.tgz";
+        sha512 = "O/GwPW+Gzr3Eb5bk+nTzTJ3uv+jh5jGho9BOqKlajXaOkMYGBELEAqV5+uARNGWZFvYAiF4PgqHb6aCUu7XdXg==";
       };
     };
     "@lerna/gitlab-client-3.15.0" = {
@@ -1831,49 +2182,49 @@ let
         sha512 = "WL7LycR9bkftyqbYop5rEGJ9sRFIV55tSGmbN1HLrF9idwOCD7CLrT64t235t3t4O5gehDnwKI5h2U3oxTrF8Q==";
       };
     };
-    "@lerna/import-3.18.5" = {
+    "@lerna/import-3.22.0" = {
       name = "_at_lerna_slash_import";
       packageName = "@lerna/import";
-      version = "3.18.5";
+      version = "3.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/import/-/import-3.18.5.tgz";
-        sha512 = "PH0WVLEgp+ORyNKbGGwUcrueW89K3Iuk/DDCz8mFyG2IG09l/jOF0vzckEyGyz6PO5CMcz4TI1al/qnp3FrahQ==";
+        url = "https://registry.npmjs.org/@lerna/import/-/import-3.22.0.tgz";
+        sha512 = "uWOlexasM5XR6tXi4YehODtH9Y3OZrFht3mGUFFT3OIl2s+V85xIGFfqFGMTipMPAGb2oF1UBLL48kR43hRsOg==";
       };
     };
-    "@lerna/info-3.20.0" = {
+    "@lerna/info-3.21.0" = {
       name = "_at_lerna_slash_info";
       packageName = "@lerna/info";
-      version = "3.20.0";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/info/-/info-3.20.0.tgz";
-        sha512 = "Rsz+KQF9mczbGUbPTrtOed1N0C+cA08Qz0eX/oI+NNjvsryZIju/o7uedG4I3P55MBiAioNrJI88fHH3eTgYug==";
+        url = "https://registry.npmjs.org/@lerna/info/-/info-3.21.0.tgz";
+        sha512 = "0XDqGYVBgWxUquFaIptW2bYSIu6jOs1BtkvRTWDDhw4zyEdp6q4eaMvqdSap1CG+7wM5jeLCi6z94wS0AuiuwA==";
       };
     };
-    "@lerna/init-3.18.5" = {
+    "@lerna/init-3.21.0" = {
       name = "_at_lerna_slash_init";
       packageName = "@lerna/init";
-      version = "3.18.5";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/init/-/init-3.18.5.tgz";
-        sha512 = "oCwipWrha98EcJAHm8AGd2YFFLNI7AW9AWi0/LbClj1+XY9ah+uifXIgYGfTk63LbgophDd8936ZEpHMxBsbAg==";
+        url = "https://registry.npmjs.org/@lerna/init/-/init-3.21.0.tgz";
+        sha512 = "6CM0z+EFUkFfurwdJCR+LQQF6MqHbYDCBPyhu/d086LRf58GtYZYj49J8mKG9ktayp/TOIxL/pKKjgLD8QBPOg==";
       };
     };
-    "@lerna/link-3.18.5" = {
+    "@lerna/link-3.21.0" = {
       name = "_at_lerna_slash_link";
       packageName = "@lerna/link";
-      version = "3.18.5";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/link/-/link-3.18.5.tgz";
-        sha512 = "xTN3vktJpkT7Nqc3QkZRtHO4bT5NvuLMtKNIBDkks0HpGxC9PRyyqwOoCoh1yOGbrWIuDezhfMg3Qow+6I69IQ==";
+        url = "https://registry.npmjs.org/@lerna/link/-/link-3.21.0.tgz";
+        sha512 = "tGu9GxrX7Ivs+Wl3w1+jrLi1nQ36kNI32dcOssij6bg0oZ2M2MDEFI9UF2gmoypTaN9uO5TSsjCFS7aR79HbdQ==";
       };
     };
-    "@lerna/list-3.20.0" = {
+    "@lerna/list-3.21.0" = {
       name = "_at_lerna_slash_list";
       packageName = "@lerna/list";
-      version = "3.20.0";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/list/-/list-3.20.0.tgz";
-        sha512 = "fXTicPrfioVnRzknyPawmYIVkzDRBaQqk9spejS1S3O1DOidkihK0xxNkr8HCVC0L22w6f92g83qWDp2BYRUbg==";
+        url = "https://registry.npmjs.org/@lerna/list/-/list-3.21.0.tgz";
+        sha512 = "KehRjE83B1VaAbRRkRy6jLX1Cin8ltsrQ7FHf2bhwhRHK0S54YuA6LOoBnY/NtA8bHDX/Z+G5sMY78X30NS9tg==";
       };
     };
     "@lerna/listable-3.18.5" = {
@@ -2002,13 +2353,13 @@ let
         sha512 = "bh8hKxAlm6yu8WEOvbLENm42i2v9SsR4WbrCWSbsmOElx3foRnMlYk7NkGECa+U5c3K4C6GeBbwgqs54PP7Ljg==";
       };
     };
-    "@lerna/project-3.18.0" = {
+    "@lerna/project-3.21.0" = {
       name = "_at_lerna_slash_project";
       packageName = "@lerna/project";
-      version = "3.18.0";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/project/-/project-3.18.0.tgz";
-        sha512 = "+LDwvdAp0BurOAWmeHE3uuticsq9hNxBI0+FMHiIai8jrygpJGahaQrBYWpwbshbQyVLeQgx3+YJdW2TbEdFWA==";
+        url = "https://registry.npmjs.org/@lerna/project/-/project-3.21.0.tgz";
+        sha512 = "xT1mrpET2BF11CY32uypV2GPtPVm6Hgtha7D81GQP9iAitk9EccrdNjYGt5UBYASl4CIDXBRxwmTTVGfrCx82A==";
       };
     };
     "@lerna/prompt-3.18.5" = {
@@ -2020,13 +2371,13 @@ let
         sha512 = "rkKj4nm1twSbBEb69+Em/2jAERK8htUuV8/xSjN0NPC+6UjzAwY52/x9n5cfmpa9lyKf/uItp7chCI7eDmNTKQ==";
       };
     };
-    "@lerna/publish-3.20.2" = {
+    "@lerna/publish-3.22.1" = {
       name = "_at_lerna_slash_publish";
       packageName = "@lerna/publish";
-      version = "3.20.2";
+      version = "3.22.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/publish/-/publish-3.20.2.tgz";
-        sha512 = "N7Y6PdhJ+tYQPdI1tZum8W25cDlTp4D6brvRacKZusweWexxaopbV8RprBaKexkEX/KIbncuADq7qjDBdQHzaA==";
+        url = "https://registry.npmjs.org/@lerna/publish/-/publish-3.22.1.tgz";
+        sha512 = "PG9CM9HUYDreb1FbJwFg90TCBQooGjj+n/pb3gw/eH5mEDq0p8wKdLFe0qkiqUkm/Ub5C8DbVFertIo0Vd0zcw==";
       };
     };
     "@lerna/pulse-till-done-3.13.0" = {
@@ -2065,13 +2416,13 @@ let
         sha512 = "bQlKmO0pXUsXoF8lOLknhyQjOZsCc0bosQDoX4lujBXSWxHVTg1VxURtWf2lUjz/ACsJVDfvHZbDm8kyBk5okA==";
       };
     };
-    "@lerna/run-3.20.0" = {
+    "@lerna/run-3.21.0" = {
       name = "_at_lerna_slash_run";
       packageName = "@lerna/run";
-      version = "3.20.0";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/run/-/run-3.20.0.tgz";
-        sha512 = "9U3AqeaCeB7KsGS9oyKNp62s9vYoULg/B4cqXTKZkc+OKL6QOEjYHYVSBcMK9lUXrMjCjDIuDSX3PnTCPxQ2Dw==";
+        url = "https://registry.npmjs.org/@lerna/run/-/run-3.21.0.tgz";
+        sha512 = "fJF68rT3veh+hkToFsBmUJ9MHc9yGXA7LSDvhziAojzOb0AI/jBDp6cEcDQyJ7dbnplba2Lj02IH61QUf9oW0Q==";
       };
     };
     "@lerna/run-lifecycle-3.16.2" = {
@@ -2128,13 +2479,13 @@ let
         sha512 = "SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA==";
       };
     };
-    "@lerna/version-3.20.2" = {
+    "@lerna/version-3.22.1" = {
       name = "_at_lerna_slash_version";
       packageName = "@lerna/version";
-      version = "3.20.2";
+      version = "3.22.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/version/-/version-3.20.2.tgz";
-        sha512 = "ckBJMaBWc+xJen0cMyCE7W67QXLLrc0ELvigPIn8p609qkfNM0L0CF803MKxjVOldJAjw84b8ucNWZLvJagP/Q==";
+        url = "https://registry.npmjs.org/@lerna/version/-/version-3.22.1.tgz";
+        sha512 = "PSGt/K1hVqreAFoi3zjD0VEDupQ2WZVlVIwesrE5GbrL2BjXowjCsTDPqblahDUPy0hp6h7E2kG855yLTp62+g==";
       };
     };
     "@lerna/write-log-file-3.13.0" = {
@@ -2146,6 +2497,15 @@ let
         sha512 = "RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A==";
       };
     };
+    "@microsoft/load-themed-styles-1.10.65" = {
+      name = "_at_microsoft_slash_load-themed-styles";
+      packageName = "@microsoft/load-themed-styles";
+      version = "1.10.65";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.65.tgz";
+        sha512 = "4sLbMM9aywtSMRHebh912/6n4/lC/go6QlTbbQfIBBtfy0oQJdDOW1KtfZfSGPggoPiNEzA7xnVsFCFyMnZyEg==";
+      };
+    };
     "@mrmlnc/readdir-enhanced-2.2.1" = {
       name = "_at_mrmlnc_slash_readdir-enhanced";
       packageName = "@mrmlnc/readdir-enhanced";
@@ -2155,67 +2515,85 @@ let
         sha512 = "bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==";
       };
     };
-    "@msgpack/msgpack-1.12.1" = {
+    "@msgpack/msgpack-1.12.2" = {
       name = "_at_msgpack_slash_msgpack";
       packageName = "@msgpack/msgpack";
-      version = "1.12.1";
+      version = "1.12.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-1.12.1.tgz";
-        sha512 = "nGwwmkdm3tuLdEkWMIwLBgFBfMFILILxcZIQY0dfqsdboN2iZdKfOYKUOKoa0wXw1FL1PL3yEYGPCXhwodQDTA==";
+        url = "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-1.12.2.tgz";
+        sha512 = "Vwhc3ObxmDZmA5hY8mfsau2rJ4vGPvzbj20QSZ2/E1GDPF61QVyjLfNHak9xmel6pW4heRt3v1fHa6np9Ehfeg==";
       };
     };
-    "@node-red/editor-api-1.0.6" = {
+    "@nestjs/schematics-7.0.1" = {
+      name = "_at_nestjs_slash_schematics";
+      packageName = "@nestjs/schematics";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nestjs/schematics/-/schematics-7.0.1.tgz";
+        sha512 = "MOnJPqKPpuwBHDdw96gHoshd/QEYrUlLPF92xQFXm6uIOo1EGISg8OOSoji2isEtp2gHpO+bL8p/h4oPG10Fqw==";
+      };
+    };
+    "@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==";
+      };
+    };
+    "@node-red/editor-api-1.1.2" = {
       name = "_at_node-red_slash_editor-api";
       packageName = "@node-red/editor-api";
-      version = "1.0.6";
+      version = "1.1.2";
       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.2.tgz";
+        sha512 = "yvA7sO9kqpnojwtnO+K03CsRfU9XBIVYTnPHJYcA94IhxF/sm+iCL1VlZPEMXTEt4VvMfTRKY9U1bHIVAKBtLA==";
       };
     };
-    "@node-red/editor-client-1.0.6" = {
+    "@node-red/editor-client-1.1.2" = {
       name = "_at_node-red_slash_editor-client";
       packageName = "@node-red/editor-client";
-      version = "1.0.6";
+      version = "1.1.2";
       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.2.tgz";
+        sha512 = "cHsRxs/0QWqSO8LtTlwIsbEdTADjy3N5KOB2V1E3pNhz4zPy3+6472bnDF93HmywRen1wOWVXxBQTAf5aOHfaQ==";
       };
     };
-    "@node-red/nodes-1.0.6" = {
+    "@node-red/nodes-1.1.2" = {
       name = "_at_node-red_slash_nodes";
       packageName = "@node-red/nodes";
-      version = "1.0.6";
+      version = "1.1.2";
       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.2.tgz";
+        sha512 = "sVwwrkCpT/padCcPMIQH4Yro4+qOYBBCkn85FnTY+7KlGLUPLhFQr4A30mWoJX5Wk+zTpe3nXqr9R0ccGrhWYg==";
       };
     };
-    "@node-red/registry-1.0.6" = {
+    "@node-red/registry-1.1.2" = {
       name = "_at_node-red_slash_registry";
       packageName = "@node-red/registry";
-      version = "1.0.6";
+      version = "1.1.2";
       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.2.tgz";
+        sha512 = "ApbQviP0q77zI1BREFhbMbNzP972RB4BtZHUOFbXGbcSLaQpX7QLt7+gNTkwTEg5VwHt1nQPNWbAVdP+Aq3RiA==";
       };
     };
-    "@node-red/runtime-1.0.6" = {
+    "@node-red/runtime-1.1.2" = {
       name = "_at_node-red_slash_runtime";
       packageName = "@node-red/runtime";
-      version = "1.0.6";
+      version = "1.1.2";
       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.2.tgz";
+        sha512 = "szt7L6/wWZax84VsgER8uZB3rnBHofjb2b1qQzRm4yG02O8YZ8elw1kKi0b6B6D+Xo5h3z29h/oJyYdBS8/9sA==";
       };
     };
-    "@node-red/util-1.0.6" = {
+    "@node-red/util-1.1.2" = {
       name = "_at_node-red_slash_util";
       packageName = "@node-red/util";
-      version = "1.0.6";
+      version = "1.1.2";
       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.2.tgz";
+        sha512 = "9G45g4W7HcCJ9IpIF76sCbDuqHWHmkAHI+lNE02TC8yvGzEOyb6VMvU0vph5JT499752WSlNQwk/g823VrqYLw==";
       };
     };
     "@nodelib/fs.scandir-2.1.3" = {
@@ -2254,22 +2632,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.3" = {
       name = "_at_npmcli_slash_git";
       packageName = "@npmcli/git";
-      version = "2.0.2";
+      version = "2.0.3";
       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.3.tgz";
+        sha512 = "c/ODsV5ppjB12VDXKc6hzVNgg6ZJX/etILUn3WgF5NLAYBhQLJ3fBq6uB2jQD4OwqOzJdPT1/xA3Xh3aaWGk5w==";
       };
     };
     "@npmcli/installed-package-contents-1.0.5" = {
@@ -2281,6 +2659,15 @@ let
         sha512 = "aKIwguaaqb6ViwSOFytniGvLPb9SMCUm39TgM3SfUo7n0TxUMbwoXfpwyvQ4blm10lzbAwTsvjr7QZ85LvTi4A==";
       };
     };
+    "@npmcli/move-file-1.0.1" = {
+      name = "_at_npmcli_slash_move-file";
+      packageName = "@npmcli/move-file";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz";
+        sha512 = "Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==";
+      };
+    };
     "@npmcli/promise-spawn-1.2.0" = {
       name = "_at_npmcli_slash_promise-spawn";
       packageName = "@npmcli/promise-spawn";
@@ -2290,49 +2677,49 @@ let
         sha512 = "nFtqjVETliApiRdjbYwKwhlSHx2ZMagyj5b9YbNt0BWeeOVxJd47ZVE2u16vxDHyTOZvk+YLV7INwfAE9a2uow==";
       };
     };
-    "@npmcli/run-script-1.3.1" = {
+    "@npmcli/run-script-1.4.0" = {
       name = "_at_npmcli_slash_run-script";
       packageName = "@npmcli/run-script";
-      version = "1.3.1";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.3.1.tgz";
-        sha512 = "9Ea57XJjNLtBFRAaiKqqdoqRrL2QkM0vvCbMjPecljhog5IHupStPtZULbl0CoGN00N3lhLWJ4PaIEC0MGjqJw==";
+        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.4.0.tgz";
+        sha512 = "evlD0Ur2ILGyTP7FfMYi90x80bto9+nEbGjoWzdF+gmIX3HuA1nW0Ghj91JFaTJAHiXnDEEduZS24oAve/aeOA==";
       };
     };
-    "@oclif/color-0.0.0" = {
+    "@oclif/color-0.1.2" = {
       name = "_at_oclif_slash_color";
       packageName = "@oclif/color";
-      version = "0.0.0";
+      version = "0.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/color/-/color-0.0.0.tgz";
-        sha512 = "KKd3W7eNwfNF061tr663oUNdt8EMnfuyf5Xv55SGWA1a0rjhWqS/32P7OeB7CbXcJUBdfVrPyR//1afaW12AWw==";
+        url = "https://registry.npmjs.org/@oclif/color/-/color-0.1.2.tgz";
+        sha512 = "M9o+DOrb8l603qvgz1FogJBUGLqcMFL1aFg2ZEL0FbXJofiNTLOWIeB4faeZTLwE6dt0xH9GpCVpzksMMzGbmA==";
       };
     };
-    "@oclif/command-1.5.19" = {
+    "@oclif/command-1.7.0" = {
       name = "_at_oclif_slash_command";
       packageName = "@oclif/command";
-      version = "1.5.19";
+      version = "1.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/command/-/command-1.5.19.tgz";
-        sha512 = "6+iaCMh/JXJaB2QWikqvGE9//wLEVYYwZd5sud8aLoLKog1Q75naZh2vlGVtg5Mq/NqpqGQvdIjJb3Bm+64AUQ==";
+        url = "https://registry.npmjs.org/@oclif/command/-/command-1.7.0.tgz";
+        sha512 = "TkknFtWcZI8te0E8sW+ohiblExrLx73rIcV4KdIzDX01u+oTZWZaap51F6TSGFnR/Gey0WctaDvJhZlt4xgKdA==";
       };
     };
-    "@oclif/config-1.15.1" = {
+    "@oclif/config-1.16.0" = {
       name = "_at_oclif_slash_config";
       packageName = "@oclif/config";
-      version = "1.15.1";
+      version = "1.16.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.16.0.tgz";
+        sha512 = "vOnMPQcHokC03WBCuLipTxksTwgZcmDOnH2H0UHqndfKKN9GVDzpZTH6zaFVQBdjTME5VtRzg9A2UaNmq6OXWw==";
       };
     };
-    "@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" = {
@@ -2344,22 +2731,22 @@ let
         sha512 = "Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw==";
       };
     };
-    "@oclif/parser-3.8.4" = {
+    "@oclif/parser-3.8.5" = {
       name = "_at_oclif_slash_parser";
       packageName = "@oclif/parser";
-      version = "3.8.4";
+      version = "3.8.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.4.tgz";
-        sha512 = "cyP1at3l42kQHZtqDS3KfTeyMvxITGwXwH1qk9ktBYvqgMp5h4vHT+cOD74ld3RqJUOZY/+Zi9lb4Tbza3BtuA==";
+        url = "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.5.tgz";
+        sha512 = "yojzeEfmSxjjkAvMRj0KzspXlMjCfBzNRPkWw8ZwOSoNWoJn+OCS/m/S+yfV6BvAM4u2lTzX9Y5rCbrFIgkJLg==";
       };
     };
-    "@oclif/plugin-autocomplete-0.1.5" = {
+    "@oclif/plugin-autocomplete-0.2.0" = {
       name = "_at_oclif_slash_plugin-autocomplete";
       packageName = "@oclif/plugin-autocomplete";
-      version = "0.1.5";
+      version = "0.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-autocomplete/-/plugin-autocomplete-0.1.5.tgz";
-        sha512 = "Afchpdd8FNfx9GaU/1D9IzyfiXvjfGybgzQ6G4GTFvPO0/hLdkXX3YyYq+SnxE6/bCrhg4pleiB+GuJACmmkEA==";
+        url = "https://registry.npmjs.org/@oclif/plugin-autocomplete/-/plugin-autocomplete-0.2.0.tgz";
+        sha512 = "pHbaE2PH7d9lHjCgFrrQ+ZIwvY+7OAQaGoaANqDbicBNDK/Rszt4N4oGj22dJT7sCQ8a/3Eh942rjxYIq9Mi9Q==";
       };
     };
     "@oclif/plugin-help-2.2.3" = {
@@ -2371,22 +2758,31 @@ let
         sha512 = "bGHUdo5e7DjPJ0vTeRBMIrfqTRDBfyR5w0MP41u0n3r7YG5p14lvMmiCXxi6WDaP2Hw5nqx3PnkAIntCKZZN7g==";
       };
     };
-    "@oclif/plugin-not-found-1.2.3" = {
+    "@oclif/plugin-help-3.2.0" = {
+      name = "_at_oclif_slash_plugin-help";
+      packageName = "@oclif/plugin-help";
+      version = "3.2.0";
+      src = fetchurl {
+        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" = {
       name = "_at_oclif_slash_plugin-not-found";
       packageName = "@oclif/plugin-not-found";
-      version = "1.2.3";
+      version = "1.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-1.2.3.tgz";
-        sha512 = "Igbw2T4gLrb/f28Llr730FeMXBSI2PXdky2YvQfsZeQGDsyBZmC4gprJJtmrMWQcjz0B51IInRBnZYERvwfIpw==";
+        url = "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-1.2.4.tgz";
+        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" = {
@@ -2407,31 +2803,31 @@ let
         sha512 = "60CHpq+eqnTxLZQ4PGHYNwUX572hgpMHGPtTWMjdTMsAvlm69lZV/4ly6O3sAYkomo4NggGcomrDpBe34rxUqw==";
       };
     };
-    "@octokit/auth-token-2.4.0" = {
+    "@octokit/auth-token-2.4.2" = {
       name = "_at_octokit_slash_auth-token";
       packageName = "@octokit/auth-token";
-      version = "2.4.0";
+      version = "2.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.0.tgz";
-        sha512 = "eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg==";
+        url = "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.2.tgz";
+        sha512 = "jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ==";
       };
     };
-    "@octokit/endpoint-6.0.1" = {
+    "@octokit/endpoint-6.0.5" = {
       name = "_at_octokit_slash_endpoint";
       packageName = "@octokit/endpoint";
-      version = "6.0.1";
+      version = "6.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.1.tgz";
-        sha512 = "pOPHaSz57SFT/m3R5P8MUu4wLPszokn5pXcB/pzavLTQf2jbU+6iayTvzaY6/BiotuRS0qyEUkx3QglT4U958A==";
+        url = "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.5.tgz";
+        sha512 = "70K5u6zd45ItOny6aHQAsea8HHQjlQq85yqOMe+Aj8dkhN2qSJ9T+Q3YjUjEYfPRBcuUWNgMn62DQnP/4LAIiQ==";
       };
     };
-    "@octokit/plugin-enterprise-rest-3.6.2" = {
+    "@octokit/plugin-enterprise-rest-6.0.1" = {
       name = "_at_octokit_slash_plugin-enterprise-rest";
       packageName = "@octokit/plugin-enterprise-rest";
-      version = "3.6.2";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-3.6.2.tgz";
-        sha512 = "3wF5eueS5OHQYuAEudkpN+xVeUsg8vYEMMenEzLphUZ7PRZ8OJtDcsreL3ad9zxXmBbaFWzLmFcdob5CLyZftA==";
+        url = "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz";
+        sha512 = "93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==";
       };
     };
     "@octokit/plugin-paginate-rest-1.1.2" = {
@@ -2461,13 +2857,13 @@ let
         sha512 = "EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==";
       };
     };
-    "@octokit/request-5.4.2" = {
+    "@octokit/request-5.4.7" = {
       name = "_at_octokit_slash_request";
       packageName = "@octokit/request";
-      version = "5.4.2";
+      version = "5.4.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/request/-/request-5.4.2.tgz";
-        sha512 = "zKdnGuQ2TQ2vFk9VU8awFT4+EYf92Z/v3OlzRaSh4RIP0H6cvW1BFPXq4XYvNez+TPQjqN+0uSkCYnMFFhcFrw==";
+        url = "https://registry.npmjs.org/@octokit/request/-/request-5.4.7.tgz";
+        sha512 = "FN22xUDP0i0uF38YMbOfx6TotpcENP5W8yJM1e/LieGXn6IoRxDMnBf7tx5RKSW4xuUZ/1P04NFZy5iY3Rax1A==";
       };
     };
     "@octokit/request-error-1.2.1" = {
@@ -2479,31 +2875,40 @@ let
         sha512 = "+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==";
       };
     };
-    "@octokit/request-error-2.0.0" = {
+    "@octokit/request-error-2.0.2" = {
       name = "_at_octokit_slash_request-error";
       packageName = "@octokit/request-error";
-      version = "2.0.0";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.0.tgz";
-        sha512 = "rtYicB4Absc60rUv74Rjpzek84UbVHGHJRu4fNVlZ1mCcyUPPuzFfG9Rn6sjHrd95DEsmjSt1Axlc699ZlbDkw==";
+        url = "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.2.tgz";
+        sha512 = "2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw==";
       };
     };
-    "@octokit/rest-16.43.1" = {
+    "@octokit/rest-16.43.2" = {
       name = "_at_octokit_slash_rest";
       packageName = "@octokit/rest";
-      version = "16.43.1";
+      version = "16.43.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.2.tgz";
+        sha512 = "ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==";
+      };
+    };
+    "@octokit/types-2.16.2" = {
+      name = "_at_octokit_slash_types";
+      packageName = "@octokit/types";
+      version = "2.16.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.1.tgz";
-        sha512 = "gfFKwRT/wFxq5qlNjnW2dh+qh74XgTQ2B179UX5K1HYCluioWj8Ndbgqw2PVqa1NnVJkGHp2ovMpVn/DImlmkw==";
+        url = "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz";
+        sha512 = "O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==";
       };
     };
-    "@octokit/types-2.12.2" = {
+    "@octokit/types-5.2.1" = {
       name = "_at_octokit_slash_types";
       packageName = "@octokit/types";
-      version = "2.12.2";
+      version = "5.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/types/-/types-2.12.2.tgz";
-        sha512 = "1GHLI/Jll3j6F0GbYyZPFTcHZMGjAiRfkTEoRUyaVVk2IWbDdwEiClAJvXzfXCDayuGSNCqAUH8lpjZtqW9GDw==";
+        url = "https://registry.npmjs.org/@octokit/types/-/types-5.2.1.tgz";
+        sha512 = "PugtgEw8u++zAyBpDpSkR8K1OsT2l8QWp3ECL6bZHFoq9PfHDoKeGFWSuX2Z+Ghy93k1fkKf8tsmqNBv+8dEfQ==";
       };
     };
     "@parcel/fs-1.11.0" = {
@@ -2551,13 +2956,13 @@ let
         sha512 = "USSjRAAQYsZFlv43FUPdD+jEGML5/8oLF0rUzPQTtK4q9kvaXr49F5ZplyLz5lox78cLZ0TxN2bIDQ1xhOkulQ==";
       };
     };
-    "@primer/octicons-9.6.0" = {
+    "@primer/octicons-10.0.0" = {
       name = "_at_primer_slash_octicons";
       packageName = "@primer/octicons";
-      version = "9.6.0";
+      version = "10.0.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.0.0.tgz";
+        sha512 = "iuQubq62zXZjPmaqrsfsCZUqIJgZhmA6W0tKzIKGRbkoLnff4TFFCL87hfIRATZ5qZPM4m8ioT8/bXI7WVa9WQ==";
       };
     };
     "@protobufjs/aspromise-1.1.2" = {
@@ -2650,31 +3055,31 @@ let
         sha1 = "a777360b5b39a1a2e5106f8e858f2fd2d060c570";
       };
     };
-    "@rollup/plugin-commonjs-11.1.0" = {
+    "@rollup/plugin-commonjs-13.0.2" = {
       name = "_at_rollup_slash_plugin-commonjs";
       packageName = "@rollup/plugin-commonjs";
-      version = "11.1.0";
+      version = "13.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz";
-        sha512 = "Ycr12N3ZPN96Fw2STurD21jMqzKwL9QuFhms3SD7KKRK7oaXUsBU9Zt0jL/rOPHiPYisI21/rXGO3jr9BnLHUA==";
+        url = "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-13.0.2.tgz";
+        sha512 = "9JXf2k8xqvMYfqmhgtB6eCgMN9fbxwF1XDF3mGKJc6pkAmt0jnsqurxQ0tC1akQKNSXCm7c3unQxa3zuxtZ7mQ==";
       };
     };
-    "@rollup/plugin-node-resolve-7.1.3" = {
+    "@rollup/plugin-node-resolve-8.4.0" = {
       name = "_at_rollup_slash_plugin-node-resolve";
       packageName = "@rollup/plugin-node-resolve";
-      version = "7.1.3";
+      version = "8.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz";
-        sha512 = "RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==";
+        url = "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz";
+        sha512 = "LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ==";
       };
     };
-    "@rollup/pluginutils-3.0.10" = {
+    "@rollup/pluginutils-3.1.0" = {
       name = "_at_rollup_slash_pluginutils";
       packageName = "@rollup/pluginutils";
-      version = "3.0.10";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.10.tgz";
-        sha512 = "d44M7t+PjmMrASHbhgpSbVgtL6EFyX7J4mYxwQ/c5eoaE6N2VgCgEcWVzNnwycIloti+/MpwFr8qfw+nRw00sw==";
+        url = "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz";
+        sha512 = "GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==";
       };
     };
     "@sailshq/lodash-3.10.4" = {
@@ -2695,31 +3100,40 @@ let
         sha512 = "MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==";
       };
     };
-    "@schematics/angular-9.1.4" = {
+    "@schematics/angular-10.0.5" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "9.1.4";
+      version = "10.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-10.0.5.tgz";
+        sha512 = "zg8QxgW3uLva/MSKMRYfV7dzj00SUki4nxYN4j1rw42VlwNPnFrPtzFVEilL6N7wFgoHP/6cZRgm4bfXYvLBvg==";
+      };
+    };
+    "@schematics/schematics-0.901.9" = {
+      name = "_at_schematics_slash_schematics";
+      packageName = "@schematics/schematics";
+      version = "0.901.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-9.1.4.tgz";
-        sha512 = "7nbiYBRgXc+f0sa5iXTcF6/VMy/Xq0wyKKnDFiLCb2aFYR7EXRHWF2GuwDIg2bvFugLuCBDoNnXeddLE1TXGWg==";
+        url = "https://registry.npmjs.org/@schematics/schematics/-/schematics-0.901.9.tgz";
+        sha512 = "Nca8Ig/mFFnhLmosbdWysX4N2HiwVOzA4gQj2TZnMCJ98Cftdebs388LstjsJwGtJyvAa2v4yoaPaUMIGVgQ9w==";
       };
     };
-    "@schematics/update-0.901.4" = {
+    "@schematics/update-0.1000.5" = {
       name = "_at_schematics_slash_update";
       packageName = "@schematics/update";
-      version = "0.901.4";
+      version = "0.1000.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/update/-/update-0.901.4.tgz";
-        sha512 = "jCtZY2Fbj502gKN5gdu1brnRy/ssyzTrWm69Ty73V+t8uL7nLr+/hny/VBJ8CiQnKQvxcgVl1xgvI1cXzpysVA==";
+        url = "https://registry.npmjs.org/@schematics/update/-/update-0.1000.5.tgz";
+        sha512 = "xodvq3X4B90u8myMEp9ESPnD2aC4YtNXj1FOcJ+BnguRA7q9rq9EL9Xqdef8sx3PObbSiKC0OFLyxgw76WuC3Q==";
       };
     };
-    "@serverless/cli-1.4.0" = {
+    "@serverless/cli-1.5.2" = {
       name = "_at_serverless_slash_cli";
       packageName = "@serverless/cli";
-      version = "1.4.0";
+      version = "1.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/cli/-/cli-1.4.0.tgz";
-        sha512 = "YqlCiYmRFeGksw6XJaXbigIDlktc7OfRuVpyPB7IZgkCJ9mUlBmvyWdwqJEQdkUz0xPTGsd4Jd/XSrwyiw1Brg==";
+        url = "https://registry.npmjs.org/@serverless/cli/-/cli-1.5.2.tgz";
+        sha512 = "FMACx0qPD6Uj8U+7jDmAxEe1tdF9DsuY5VsG45nvZ3olC9xYJe/PMwxWsjXfK3tg1HUNywYAGCsy7p5fdXhNzw==";
       };
     };
     "@serverless/component-metrics-1.0.8" = {
@@ -2731,13 +3145,13 @@ let
         sha512 = "lOUyRopNTKJYVEU9T6stp2irwlTDsYMmUKBOUjnMcwGveuUfIJqrCOtFLtIPPj3XJlbZy5F68l4KP9rZ8Ipang==";
       };
     };
-    "@serverless/components-2.30.5" = {
+    "@serverless/components-2.34.1" = {
       name = "_at_serverless_slash_components";
       packageName = "@serverless/components";
-      version = "2.30.5";
+      version = "2.34.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/components/-/components-2.30.5.tgz";
-        sha512 = "c/d60iqzS2NlmRGgIU0S4i6EryjXVwEWcW0bzJ04CwFDQBlvi5kSk8Q59lv0pQ5MwHk+Fw2zMnmMtBQbJxu2vw==";
+        url = "https://registry.npmjs.org/@serverless/components/-/components-2.34.1.tgz";
+        sha512 = "AmbGbeOufF0ZQN3yVbzh2MKxItdLgEaGhUNEKgw59xohMhwkzDHSW/FXulFQfunEEcCKCFnPE/Lzr/1GHnhVUQ==";
       };
     };
     "@serverless/core-1.1.2" = {
@@ -2749,13 +3163,13 @@ let
         sha512 = "PY7gH+7aQ+MltcUD7SRDuQODJ9Sav9HhFJsgOiyf8IVo7XVD6FxZIsSnpMI6paSkptOB7n+0Jz03gNlEkKetQQ==";
       };
     };
-    "@serverless/enterprise-plugin-3.6.9" = {
+    "@serverless/enterprise-plugin-3.7.0" = {
       name = "_at_serverless_slash_enterprise-plugin";
       packageName = "@serverless/enterprise-plugin";
-      version = "3.6.9";
+      version = "3.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/enterprise-plugin/-/enterprise-plugin-3.6.9.tgz";
-        sha512 = "ZiZlRbqGerqMuR/OmrJTjDzuccfpdS6YV+VbKu+DM/9tEA9z87n7VrtjZ320C0V20wC+vFNnHl2EE26lCePyxg==";
+        url = "https://registry.npmjs.org/@serverless/enterprise-plugin/-/enterprise-plugin-3.7.0.tgz";
+        sha512 = "KAGj1HO0zAoBN4thsD+8S18fnvCLyHXnNFBfNiJsgGAzDIOwtwKqkMUR3z2LeQjAKuFeNJ8+3erexK75j50iBw==";
       };
     };
     "@serverless/event-mocks-1.1.1" = {
@@ -2767,40 +3181,40 @@ let
         sha512 = "YAV5V/y+XIOfd+HEVeXfPWZb8C6QLruFk9tBivoX2roQLWVq145s4uxf8D0QioCueuRzkukHUS4JIj+KVoS34A==";
       };
     };
-    "@serverless/inquirer-1.1.0" = {
+    "@serverless/inquirer-1.1.2" = {
       name = "_at_serverless_slash_inquirer";
       packageName = "@serverless/inquirer";
-      version = "1.1.0";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/inquirer/-/inquirer-1.1.0.tgz";
-        sha512 = "MpNMmV0uADfmGF8jVQ3Vmw+cdh7vAc8Ga/N9LHDhlbWh+EVHkqlpTi6bb3Xv6WsaPlWrx55Wo389IwpbhA0nPQ==";
+        url = "https://registry.npmjs.org/@serverless/inquirer/-/inquirer-1.1.2.tgz";
+        sha512 = "2c5A6HSWwXluknPNJ2s+Z4WfBwP7Kn6kgsEKD+5xlXpDpBFsRku/xJyO9eqRCwxTM41stgHNC6TRsZ03+wH/rw==";
       };
     };
-    "@serverless/platform-client-0.25.7" = {
+    "@serverless/platform-client-1.1.1" = {
       name = "_at_serverless_slash_platform-client";
       packageName = "@serverless/platform-client";
-      version = "0.25.7";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-client/-/platform-client-0.25.7.tgz";
-        sha512 = "ZOKgT49qQPGjv0tDN46INO0gkc5syL2y5t0pau5ljQPtQpJzHrUL87xRlDj3BD+4Y9QFZV1UXXNsOQZsyCBsPw==";
+        url = "https://registry.npmjs.org/@serverless/platform-client/-/platform-client-1.1.1.tgz";
+        sha512 = "vvS8Mn/nKaAIcP4r5wagsU7YoDQ6u5V3DuSOYx6e7fJiZ9vUKPpUbdUovUDxIoANC+Jo4SzuRxfL6MrK8qfZDw==";
       };
     };
-    "@serverless/platform-client-china-1.0.9" = {
+    "@serverless/platform-client-china-1.0.32" = {
       name = "_at_serverless_slash_platform-client-china";
       packageName = "@serverless/platform-client-china";
-      version = "1.0.9";
+      version = "1.0.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-client-china/-/platform-client-china-1.0.9.tgz";
-        sha512 = "P2OXDa3S9meOOGJm2i4/d/9HlEjg8FwwfWl4Vq7jjJlA12cJaJnXy/mKgx16eA/YSYNtfW7i4NGyeADvIGNzmg==";
+        url = "https://registry.npmjs.org/@serverless/platform-client-china/-/platform-client-china-1.0.32.tgz";
+        sha512 = "fZDmBNcT1w4rUTd4w6Nt0ONeQAfpUni37/v3SEMFWV5hCmjdh2LUIaaF1OC/sZA4KeYzcLTViJezymYkHXBHIA==";
       };
     };
-    "@serverless/platform-sdk-2.3.0" = {
+    "@serverless/platform-sdk-2.3.1" = {
       name = "_at_serverless_slash_platform-sdk";
       packageName = "@serverless/platform-sdk";
-      version = "2.3.0";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-sdk/-/platform-sdk-2.3.0.tgz";
-        sha512 = "+9TiMYDVKJOyDWg9p/k0kmGVZ3+rjB8DXpACDxxyUChDSsRS55CTJnt321Yx7APfHctNRSnv3ubYmx7oGSTETQ==";
+        url = "https://registry.npmjs.org/@serverless/platform-sdk/-/platform-sdk-2.3.1.tgz";
+        sha512 = "EiSizya9bK0+5uae3GH9uXuWAchZplkLO0tWOAXtnU5QWSg5zicANL9jKCw0dyhjUOvbcO0ddhFlG8EGYvJFSA==";
       };
     };
     "@serverless/template-1.1.3" = {
@@ -2812,13 +3226,22 @@ let
         sha512 = "hcMiX523rkp6kHeKnM1x6/dXEY+d1UFSr901yVKeeCgpFy4u33UI9vlKaPweAZCF6Ahzqywf01IsFTuBVadCrQ==";
       };
     };
-    "@serverless/utils-china-0.1.7" = {
+    "@serverless/utils-1.2.0" = {
+      name = "_at_serverless_slash_utils";
+      packageName = "@serverless/utils";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serverless/utils/-/utils-1.2.0.tgz";
+        sha512 = "aI/cpGVUhWbJUR8QDMtPue28EU4ViG/L4/XKuZDfAN2uNQv3NRjwEFIBi/cxyfQnMTYVtMLe9wDjuwzOT4ENzA==";
+      };
+    };
+    "@serverless/utils-china-0.1.22" = {
       name = "_at_serverless_slash_utils-china";
       packageName = "@serverless/utils-china";
-      version = "0.1.7";
+      version = "0.1.22";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/utils-china/-/utils-china-0.1.7.tgz";
-        sha512 = "xpsokLjRK7PQtoNuA+1LxZ4whLlmAuJvtv9m9ARYtMaZhJkmlHD8cEh9Y0/uTcvzcA+pWtxRSHQ92TonpXqVow==";
+        url = "https://registry.npmjs.org/@serverless/utils-china/-/utils-china-0.1.22.tgz";
+        sha512 = "TYI1khc2Is3ESNwR2QrQx0fo8PfJto0IlDV3qgvfZ5ovCjPG6Ql1ziO8BpzDs5DgAO4TeNuwo28LJOUw/ANiKg==";
       };
     };
     "@sindresorhus/is-0.14.0" = {
@@ -2848,6 +3271,15 @@ let
         sha512 = "/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==";
       };
     };
+    "@sindresorhus/is-3.1.0" = {
+      name = "_at_sindresorhus_slash_is";
+      packageName = "@sindresorhus/is";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.0.tgz";
+        sha512 = "n4J+zu52VdY43kdi/XdI9DzuMr1Mur8zFL5ZRG2opCans9aiFwkPxHYFEb5Xgy7n1Z4K6WfI4FpqUqsh3E8BPQ==";
+      };
+    };
     "@slack/client-3.16.0" = {
       name = "_at_slack_slash_client";
       packageName = "@slack/client";
@@ -2866,15 +3298,6 @@ let
         sha512 = "+Qo+IO3YOXWgazlo+CKxOuWFLQQdaNCJ9cSfhFQd687/FuesaIxWdInaAdfpsLScq0c6M1ieZslXgiZELSzxbg==";
       };
     };
-    "@snyk/cli-interface-2.3.0" = {
-      name = "_at_snyk_slash_cli-interface";
-      packageName = "@snyk/cli-interface";
-      version = "2.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.3.0.tgz";
-        sha512 = "ecbylK5Ol2ySb/WbfPj0s0GuLQR+KWKFzUgVaoNHaSoN6371qRWwf2uVr+hPUP4gXqCai21Ug/RDArfOhlPwrQ==";
-      };
-    };
     "@snyk/cli-interface-2.3.2" = {
       name = "_at_snyk_slash_cli-interface";
       packageName = "@snyk/cli-interface";
@@ -2884,31 +3307,31 @@ let
         sha512 = "jmZyxVHqzYU1GfdnWCGdd68WY/lAzpPVyqalHazPj4tFJehrSfEFc82RMTYAMgXEJuvFRFIwhsvXh3sWUhIQmg==";
       };
     };
-    "@snyk/cli-interface-2.5.0" = {
+    "@snyk/cli-interface-2.8.0" = {
       name = "_at_snyk_slash_cli-interface";
       packageName = "@snyk/cli-interface";
-      version = "2.5.0";
+      version = "2.8.0";
       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.0.tgz";
+        sha512 = "St/G39iJG1zQK15L24kcVYM2gmFc/ylBCcBqU2DMZKJKwOPccKLUO6s+dWIUXMccQ+DFS6TuHPvuAKQNi9C4Yg==";
       };
     };
-    "@snyk/cli-interface-2.6.0" = {
+    "@snyk/cli-interface-2.8.1" = {
       name = "_at_snyk_slash_cli-interface";
       packageName = "@snyk/cli-interface";
-      version = "2.6.0";
+      version = "2.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.6.0.tgz";
-        sha512 = "jtk0gf80v4mFyDqaQNokD8GOPMTXpIUL35ewg6jtmuZw41xt56WF9kqCjiiViSRRRYA0RK+RuiVfmJA5pxvMUQ==";
+        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.8.1.tgz";
+        sha512 = "pALcfgoY0hAavy/pBlDIqEu+FFC5m+D4bMnCwlQ26mObL/zzxp2+Ohx+HykCIom62u2J94SzAtRLFdm/2TgoOw==";
       };
     };
-    "@snyk/cocoapods-lockfile-parser-3.2.0" = {
+    "@snyk/cocoapods-lockfile-parser-3.4.0" = {
       name = "_at_snyk_slash_cocoapods-lockfile-parser";
       packageName = "@snyk/cocoapods-lockfile-parser";
-      version = "3.2.0";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cocoapods-lockfile-parser/-/cocoapods-lockfile-parser-3.2.0.tgz";
-        sha512 = "DyFqZudOlGXHBOVneLnQnyQ97xZLq+PTF9PhWOmrEzH/tKcLyXhdW/WmDPVNJVyNvogyRZ4cXIj487xy/EeZEw==";
+        url = "https://registry.npmjs.org/@snyk/cocoapods-lockfile-parser/-/cocoapods-lockfile-parser-3.4.0.tgz";
+        sha512 = "mAWgKIHFv0QEGpRvocVMxLAdJx7BmXtVOyQN/VtsGBoGFKqhO0jbtKUUVJC4b0jyKfVmEF2puo94i+1Uqz5q6A==";
       };
     };
     "@snyk/composer-lockfile-parser-1.4.0" = {
@@ -2920,22 +3343,49 @@ let
         sha512 = "ga4YTRjJUuP0Ufr+t1IucwVjEFAv66JSBB/zVHP2zy/jmfA3l3ZjlGQSjsRC6Me9P2Z0esQ83AYNZvmIf9pq2w==";
       };
     };
-    "@snyk/configstore-3.2.0-rc1" = {
-      name = "_at_snyk_slash_configstore";
-      packageName = "@snyk/configstore";
-      version = "3.2.0-rc1";
+    "@snyk/dep-graph-1.18.3" = {
+      name = "_at_snyk_slash_dep-graph";
+      packageName = "@snyk/dep-graph";
+      version = "1.18.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.18.3.tgz";
+        sha512 = "7qWRTIJdZuc5VzDjdV2+03AHElyAZmhq7eV9BRu+jqrYjo9ohWBGEZgYslrTdvfqfJ8rkdrG3j0/0Aa25IxJcg==";
+      };
+    };
+    "@snyk/dep-graph-1.18.4" = {
+      name = "_at_snyk_slash_dep-graph";
+      packageName = "@snyk/dep-graph";
+      version = "1.18.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.18.4.tgz";
+        sha512 = "SePWsDyD7qrLxFifIieEl4GqyOODfOnP0hmUweTG5YcMroAV5nARGAUcjxREGzbXMcUpPfZhAaqFjYgzUDH8dQ==";
+      };
+    };
+    "@snyk/dep-graph-1.19.0" = {
+      name = "_at_snyk_slash_dep-graph";
+      packageName = "@snyk/dep-graph";
+      version = "1.19.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/configstore/-/configstore-3.2.0-rc1.tgz";
-        sha512 = "CV3QggFY8BY3u8PdSSlUGLibqbqCG1zJRmGM2DhnhcxQDRRPTGTP//l7vJphOVsUP1Oe23+UQsj7KRWpRUZiqg==";
+        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.2" = {
+    "@snyk/dep-graph-1.19.3" = {
       name = "_at_snyk_slash_dep-graph";
       packageName = "@snyk/dep-graph";
-      version = "1.18.2";
+      version = "1.19.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.18.2.tgz";
-        sha512 = "v7tIiCH4LmYOSc0xGHKSxSZ2PEDv8zDlYU7ZKSH+1Hk8Qvj3YYEFvtV1iFBHUEQFUen4kQA6lWxlwF8chsNw+w==";
+        url = "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.19.3.tgz";
+        sha512 = "WJLUFKBokoFK5imi0t8Dkyj+uqtS/5Ziuf4oE/OOFX30UqP1ffMDkv9/3sqBJQVQ9FjdgsX3Cm8JZMtMlYRc6w==";
+      };
+    };
+    "@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/docker-registry-v2-client/-/docker-registry-v2-client-1.13.5.tgz";
+        sha512 = "lgJiC071abCpFVLp47OnykU8MMrhdQe386Wt6QaDmjI0s2DQn/S58NfdLrPU7s6l4zoGT7UwRW9+7paozRgFTA==";
       };
     };
     "@snyk/gemfile-1.2.0" = {
@@ -2956,6 +3406,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";
@@ -2965,13 +3424,13 @@ let
         sha512 = "IUq5bHRL0vtVKtfvd4GOccAIaLYHbcertug2UVZzk5+yY6R/CxfYsnFUTho1h4BdkfNdin2tPjE/5jRF4SKSrw==";
       };
     };
-    "@snyk/java-call-graph-builder-1.8.0" = {
+    "@snyk/java-call-graph-builder-1.12.3" = {
       name = "_at_snyk_slash_java-call-graph-builder";
       packageName = "@snyk/java-call-graph-builder";
-      version = "1.8.0";
+      version = "1.12.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.8.0.tgz";
-        sha512 = "dD7hVdEKMMU9CP0jQLm6Q1+l6506rjW0dqQflJ3QOVohNzptYJtTv9pHKzgRu5+q/fgEc35oYi02A0WIQwSvpw==";
+        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.12.3.tgz";
+        sha512 = "eN32RcCq5J0Veo5NIbDUSb2KRNiVsZMt1w94bFYKxFt6F1tIoiv1CraXdTHSlgQosZ7tw93e8qdOKmQXOtK88Q==";
       };
     };
     "@snyk/lodash-4.17.15-patch" = {
@@ -2983,13 +3442,13 @@ let
         sha512 = "e4+t34bGyjjRnwXwI14hqye9J/nRbG9iwaqTgXWHskm5qC+iK0UrjgYdWXiHJCf3Plbpr+1rpW+4LPzZnCGMhQ==";
       };
     };
-    "@snyk/rpm-parser-1.1.0" = {
+    "@snyk/rpm-parser-2.0.0" = {
       name = "_at_snyk_slash_rpm-parser";
       packageName = "@snyk/rpm-parser";
-      version = "1.1.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/rpm-parser/-/rpm-parser-1.1.0.tgz";
-        sha512 = "+DyCagvnpyBjwYTxaPMQGLW4rkpKAw1Jrh8YbZCg7Ix172InBxdve/0zud18Lu2H6xWtDDdMvRDdfl82wlTBvA==";
+        url = "https://registry.npmjs.org/@snyk/rpm-parser/-/rpm-parser-2.0.0.tgz";
+        sha512 = "bWjQY5Xk3TcfVpeo8M5BhhSUEdPr2P19AWW13CHPu6sFZkckLWEcjQycnBsVD6RBmxGXecJ1YNui8dq6soHoYQ==";
       };
     };
     "@snyk/ruby-semver-2.2.0" = {
@@ -3001,22 +3460,22 @@ let
         sha512 = "FqUayoVjcyCsQFYPm3DcaCKdFR4xmapUkCGY+bcNBs3jqCUw687PoP9CPQ1Jvtaw5YpfBNl/62jyntsWCeciuA==";
       };
     };
-    "@snyk/snyk-cocoapods-plugin-2.2.0" = {
+    "@snyk/snyk-cocoapods-plugin-2.3.0" = {
       name = "_at_snyk_slash_snyk-cocoapods-plugin";
       packageName = "@snyk/snyk-cocoapods-plugin";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/snyk-cocoapods-plugin/-/snyk-cocoapods-plugin-2.2.0.tgz";
-        sha512 = "Ux7hXKawbk30niGBToGkKqHyKzhT3E7sCl0FNkPkHaaGZwPwhFCDyNFxBd4uGgWiQ+kT+RjtH5ahna+bSP69Yg==";
+        url = "https://registry.npmjs.org/@snyk/snyk-cocoapods-plugin/-/snyk-cocoapods-plugin-2.3.0.tgz";
+        sha512 = "4V1xJMqsK6J3jHu9UufKySorzA8O1vNLRIK1JgJf5KcXQCP44SJI5dk9Xr9iFGXXtGo8iI9gmokQcHlGpkPSJg==";
       };
     };
-    "@snyk/update-notifier-2.5.1-rc2" = {
-      name = "_at_snyk_slash_update-notifier";
-      packageName = "@snyk/update-notifier";
-      version = "2.5.1-rc2";
+    "@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/update-notifier/-/update-notifier-2.5.1-rc2.tgz";
-        sha512 = "dlled3mfpnAt3cQb5hxkFiqfPCj4Yk0xV8Yl5P8PeVv1pUmO7vI4Ka4Mjs4r6CYM5f9kZhviFPQQcWOIDlMRcw==";
+        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" = {
@@ -3136,139 +3595,139 @@ let
         sha512 = "PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==";
       };
     };
-    "@tencent-sdk/capi-0.2.15" = {
+    "@tencent-sdk/capi-0.2.17" = {
       name = "_at_tencent-sdk_slash_capi";
       packageName = "@tencent-sdk/capi";
-      version = "0.2.15";
+      version = "0.2.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@tencent-sdk/capi/-/capi-0.2.15.tgz";
-        sha512 = "5t94Mo/+Kdvr60tJR/+pylUCwIM+ipcBIkUi4M7dtV0yCpuykOXV4GYT1aWg/iWMXyIPnfOUk4Pr6OwDoAVehw==";
+        url = "https://registry.npmjs.org/@tencent-sdk/capi/-/capi-0.2.17.tgz";
+        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" = {
@@ -3298,31 +3757,31 @@ let
         sha512 = "jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==";
       };
     };
-    "@types/agent-base-4.2.0" = {
-      name = "_at_types_slash_agent-base";
-      packageName = "@types/agent-base";
-      version = "4.2.0";
+    "@types/anymatch-1.3.1" = {
+      name = "_at_types_slash_anymatch";
+      packageName = "@types/anymatch";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/agent-base/-/agent-base-4.2.0.tgz";
-        sha512 = "8mrhPstU+ZX0Ugya8tl5DsDZ1I5ZwQzbL/8PA0z8Gj0k9nql7nkaMzmPVLj+l/nixWaliXi+EBiLA8bptw3z7Q==";
+        url = "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz";
+        sha512 = "/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==";
       };
     };
-    "@types/babel-types-7.0.7" = {
+    "@types/babel-types-7.0.8" = {
       name = "_at_types_slash_babel-types";
       packageName = "@types/babel-types";
-      version = "7.0.7";
+      version = "7.0.8";
       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.8.tgz";
+        sha512 = "jvu8g4LR7+p6ao30RhTREnEhHxmP4/R9D9/rOR/Kq14FztORty9SKgtOZUNZNMB9CXLxZ54EWu4dArUE8WdTsw==";
       };
     };
-    "@types/babel__core-7.1.7" = {
+    "@types/babel__core-7.1.9" = {
       name = "_at_types_slash_babel__core";
       packageName = "@types/babel__core";
-      version = "7.1.7";
+      version = "7.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz";
-        sha512 = "RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw==";
+        url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz";
+        sha512 = "sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==";
       };
     };
     "@types/babel__generator-7.6.1" = {
@@ -3343,13 +3802,13 @@ let
         sha512 = "/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==";
       };
     };
-    "@types/babel__traverse-7.0.11" = {
+    "@types/babel__traverse-7.0.13" = {
       name = "_at_types_slash_babel__traverse";
       packageName = "@types/babel__traverse";
-      version = "7.0.11";
+      version = "7.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.11.tgz";
-        sha512 = "ddHK5icION5U6q11+tV2f9Mo6CZVuT8GJKld2q9LqHSZbvLbH34Kcu2yFGckZut453+eQU6btIA3RihmnRgI+Q==";
+        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.13.tgz";
+        sha512 = "i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ==";
       };
     };
     "@types/babylon-6.16.5" = {
@@ -3379,6 +3838,24 @@ let
         sha512 = "ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==";
       };
     };
+    "@types/caseless-0.12.2" = {
+      name = "_at_types_slash_caseless";
+      packageName = "@types/caseless";
+      version = "0.12.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz";
+        sha512 = "6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==";
+      };
+    };
+    "@types/chalk-2.2.0" = {
+      name = "_at_types_slash_chalk";
+      packageName = "@types/chalk";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/chalk/-/chalk-2.2.0.tgz";
+        sha512 = "1zzPV9FDe1I/WHhRkf9SNgqtRJWZqrBWgu7JGveuHmmyR9CnAPCie2N/x+iHrgnpYBIcCJWHBoMRv2TRWktsvw==";
+      };
+    };
     "@types/color-name-1.1.1" = {
       name = "_at_types_slash_color-name";
       packageName = "@types/color-name";
@@ -3424,13 +3901,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" = {
@@ -3442,6 +3919,15 @@ let
         sha512 = "Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==";
       };
     };
+    "@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";
@@ -3460,40 +3946,31 @@ let
         sha512 = "EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==";
       };
     };
-    "@types/estree-0.0.44" = {
+    "@types/estree-0.0.45" = {
       name = "_at_types_slash_estree";
       packageName = "@types/estree";
-      version = "0.0.44";
+      version = "0.0.45";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/estree/-/estree-0.0.44.tgz";
-        sha512 = "iaIVzr+w2ZJ5HkidlZ3EJM8VTZb2MJLCjw3V+505yVts0gRC4UMvjw0d1HPtGqI/HQC/KdsYtayfzl+AXY2R8g==";
+        url = "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz";
+        sha512 = "jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==";
       };
     };
-    "@types/events-3.0.0" = {
-      name = "_at_types_slash_events";
-      packageName = "@types/events";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz";
-        sha512 = "EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==";
-      };
-    };
-    "@types/express-4.17.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.5" = {
+    "@types/express-serve-static-core-4.17.9" = {
       name = "_at_types_slash_express-serve-static-core";
       packageName = "@types/express-serve-static-core";
-      version = "4.17.5";
+      version = "4.17.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.5.tgz";
-        sha512 = "578YH5Lt88AKoADy0b2jQGwJtrBxezXtVe/MBqWXKZpqx91SnC0pVkVCcxcytz3lWW+cHBYDi3Ysh0WXc+rAYw==";
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.9.tgz";
+        sha512 = "DG0BYg6yO+ePW+XoDENYz8zhNGC3jDDEpComMYn7WJc4mY1Us8Rw9ax2YhJXxpyk2SF47PQAoQ0YyVT1a0bEkA==";
       };
     };
     "@types/fs-capacitor-2.0.0" = {
@@ -3505,13 +3982,13 @@ let
         sha512 = "FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==";
       };
     };
-    "@types/glob-7.1.1" = {
+    "@types/glob-7.1.3" = {
       name = "_at_types_slash_glob";
       packageName = "@types/glob";
-      version = "7.1.1";
+      version = "7.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz";
-        sha512 = "1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==";
+        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz";
+        sha512 = "SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==";
       };
     };
     "@types/graceful-fs-4.1.3" = {
@@ -3532,6 +4009,15 @@ let
         sha512 = "hmLg9pCU/GmxBscg8GCr1vmSoEmbItNNxdD5YH2TJkXm//8atjwuprB+xJBK714JG1dkxbbhp5RHX+Pz1KsCMA==";
       };
     };
+    "@types/hosted-git-info-2.7.0" = {
+      name = "_at_types_slash_hosted-git-info";
+      packageName = "@types/hosted-git-info";
+      version = "2.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/hosted-git-info/-/hosted-git-info-2.7.0.tgz";
+        sha512 = "OW/D8GqCyQtH8F7xDdDxzPJTBgknZeZhlCakUcBCya2rYPRN53F+0YJVwSPyiyAhrknnjkl3P9qVk0oBI4S1qw==";
+      };
+    };
     "@types/http-assert-1.5.1" = {
       name = "_at_types_slash_http-assert";
       packageName = "@types/http-assert";
@@ -3550,13 +4036,13 @@ let
         sha512 = "c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==";
       };
     };
-    "@types/istanbul-lib-coverage-2.0.1" = {
+    "@types/istanbul-lib-coverage-2.0.3" = {
       name = "_at_types_slash_istanbul-lib-coverage";
       packageName = "@types/istanbul-lib-coverage";
-      version = "2.0.1";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz";
-        sha512 = "hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==";
+        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" = {
@@ -3568,40 +4054,49 @@ let
         sha512 = "plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==";
       };
     };
-    "@types/istanbul-reports-1.1.1" = {
+    "@types/istanbul-reports-1.1.2" = {
       name = "_at_types_slash_istanbul-reports";
       packageName = "@types/istanbul-reports";
-      version = "1.1.1";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz";
-        sha512 = "UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==";
+        url = "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz";
+        sha512 = "P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==";
       };
     };
-    "@types/jquery-3.3.37" = {
+    "@types/jquery-3.5.1" = {
       name = "_at_types_slash_jquery";
       packageName = "@types/jquery";
-      version = "3.3.37";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.37.tgz";
-        sha512 = "4MNntGYm6xdDiz2+B92xEmWcFN9mOeMXqS854lSe7LDpBhzscUjvXjCAl6JwPBtAkqmPZq+L4I5UyXXNDZyq4Q==";
+        url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.1.tgz";
+        sha512 = "Tyctjh56U7eX2b9udu3wG853ASYP0uagChJcQJXLUXEU6C/JiW5qt5dl8ao01VRj1i5pgXPAf8f1mq4+FDLRQg==";
       };
     };
-    "@types/js-yaml-3.12.3" = {
+    "@types/js-yaml-3.12.5" = {
       name = "_at_types_slash_js-yaml";
       packageName = "@types/js-yaml";
-      version = "3.12.3";
+      version = "3.12.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.3.tgz";
-        sha512 = "otRe77JNNWzoVGLKw8TCspKswRoQToys4tuL6XYVBFxjgeM0RUrx7m3jkaTdxILxeGry3zM8mGYkGXMeQ02guA==";
+        url = "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.5.tgz";
+        sha512 = "JCcp6J0GV66Y4ZMDAQCXot4xprYB+Zfd3meK9+INSJeVZwJmHAW30BBEEkPzXswMXuiyReUGOP3GxrADc9wPww==";
       };
     };
-    "@types/json-schema-7.0.4" = {
+    "@types/json-schema-7.0.5" = {
       name = "_at_types_slash_json-schema";
       packageName = "@types/json-schema";
-      version = "7.0.4";
+      version = "7.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz";
-        sha512 = "8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==";
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz";
+        sha512 = "7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==";
+      };
+    };
+    "@types/json5-0.0.29" = {
+      name = "_at_types_slash_json5";
+      packageName = "@types/json5";
+      version = "0.0.29";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz";
+        sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
       };
     };
     "@types/keygrip-1.0.2" = {
@@ -3640,13 +4135,13 @@ let
         sha512 = "B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==";
       };
     };
-    "@types/lodash-4.14.150" = {
+    "@types/lodash-4.14.158" = {
       name = "_at_types_slash_lodash";
       packageName = "@types/lodash";
-      version = "4.14.150";
+      version = "4.14.158";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.150.tgz";
-        sha512 = "kMNLM5JBcasgYscD9x/Gvr6lTAv2NVgsKtet/hm93qMyf/D1pt+7jeEZklKJKxMVmXjxbRVQQGfqDSfipYCO6w==";
+        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.158.tgz";
+        sha512 = "InCEXJNTv/59yO4VSfuvNrZHt7eeNtWQEgnieIA+mIC+MOWM9arOWG2eQ8Vhk6NbOre6/BidiXhkZYeDY9U35w==";
       };
     };
     "@types/long-4.0.1" = {
@@ -3658,13 +4153,13 @@ let
         sha512 = "5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==";
       };
     };
-    "@types/mime-2.0.1" = {
+    "@types/mime-2.0.3" = {
       name = "_at_types_slash_mime";
       packageName = "@types/mime";
-      version = "2.0.1";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz";
-        sha512 = "FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==";
+        url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz";
+        sha512 = "Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==";
       };
     };
     "@types/minimatch-3.0.3" = {
@@ -3685,31 +4180,49 @@ let
         sha1 = "69a23a3ad29caf0097f06eda59b361ee2f0639f6";
       };
     };
-    "@types/node-10.17.21" = {
+    "@types/mocha-7.0.2" = {
+      name = "_at_types_slash_mocha";
+      packageName = "@types/mocha";
+      version = "7.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz";
+        sha512 = "ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==";
+      };
+    };
+    "@types/node-10.17.28" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "10.17.21";
+      version = "10.17.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-10.17.21.tgz";
-        sha512 = "PQKsydPxYxF1DsAFWmunaxd3sOi3iMt6Zmx/tgaagHYmwJ/9cRH91hQkeJZaUGWbvn0K5HlSVEXkn5U/llWPpQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz";
+        sha512 = "dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==";
       };
     };
-    "@types/node-12.12.37" = {
+    "@types/node-12.7.12" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "12.12.37";
+      version = "12.7.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-12.12.37.tgz";
-        sha512 = "4mXKoDptrXAwZErQHrLzpe0FN/0Wmf5JRniSVIdwUrtDf9wnmEV1teCNLBo/TwuXhkK/bVegoEn/wmb+x0AuPg==";
+        url = "https://registry.npmjs.org/@types/node/-/node-12.7.12.tgz";
+        sha512 = "KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ==";
       };
     };
-    "@types/node-13.13.4" = {
+    "@types/node-13.13.15" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "13.13.4";
+      version = "13.13.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-13.13.4.tgz";
-        sha512 = "x26ur3dSXgv5AwKS0lNfbjpCakGIduWU1DU91Zz58ONRWrIKGunmZBNv4P7N+e27sJkiGDsw/3fT4AtsqQBrBA==";
+        url = "https://registry.npmjs.org/@types/node/-/node-13.13.15.tgz";
+        sha512 = "kwbcs0jySLxzLsa2nWUAGOd/s21WU1jebrEdtzhsj1D4Yps1EOuyI1Qcu+FD56dL7NRNIJtDDjcqIG22NwkgLw==";
+      };
+    };
+    "@types/node-14.0.27" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "14.0.27";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz";
+        sha512 = "kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==";
       };
     };
     "@types/node-6.14.10" = {
@@ -3721,15 +4234,6 @@ let
         sha512 = "pF4HjZGSog75kGq7B1InK/wt/N08BuPATo+7HRfv7gZUzccebwv/fmWVGs/j6LvSiLWpCuGGhql51M/wcQsNzA==";
       };
     };
-    "@types/node-fetch-2.5.6" = {
-      name = "_at_types_slash_node-fetch";
-      packageName = "@types/node-fetch";
-      version = "2.5.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.6.tgz";
-        sha512 = "2w0NTwMWF1d3NJMK0Uiq2UNN8htVCyOWOD0jIPjPgC5Ph/YP4dVhs9YxxcMcuLuwAslz0dVEcZQUaqkLs3IzOQ==";
-      };
-    };
     "@types/node-fetch-2.5.7" = {
       name = "_at_types_slash_node-fetch";
       packageName = "@types/node-fetch";
@@ -3748,22 +4252,40 @@ let
         sha512 = "f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==";
       };
     };
-    "@types/q-1.5.2" = {
+    "@types/object-assign-4.0.30" = {
+      name = "_at_types_slash_object-assign";
+      packageName = "@types/object-assign";
+      version = "4.0.30";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/object-assign/-/object-assign-4.0.30.tgz";
+        sha1 = "8949371d5a99f4381ee0f1df0a9b7a187e07e652";
+      };
+    };
+    "@types/parse-json-4.0.0" = {
+      name = "_at_types_slash_parse-json";
+      packageName = "@types/parse-json";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz";
+        sha512 = "//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==";
+      };
+    };
+    "@types/q-1.5.4" = {
       name = "_at_types_slash_q";
       packageName = "@types/q";
-      version = "1.5.2";
+      version = "1.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz";
-        sha512 = "ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==";
+        url = "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz";
+        sha512 = "1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==";
       };
     };
-    "@types/qs-6.9.1" = {
+    "@types/qs-6.9.4" = {
       name = "_at_types_slash_qs";
       packageName = "@types/qs";
-      version = "6.9.1";
+      version = "6.9.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.1.tgz";
-        sha512 = "lhbQXx9HKZAPgBkISrBcmAcMpZsmpe/Cd/hY7LGZS5OfkySUBItnPZHgQPssWYUET8elF+yCFBbP1Q0RZPTdaw==";
+        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.4.tgz";
+        sha512 = "+wYo+L6ZF6BMoEjtf8zB2esQsqdV6WsjRK/GP9WOgLPrq87PbNWgIxS76dS5uvl/QXtHGakZmwTznIfcPXcKlQ==";
       };
     };
     "@types/range-parser-1.2.3" = {
@@ -3775,6 +4297,24 @@ let
         sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==";
       };
     };
+    "@types/request-2.48.5" = {
+      name = "_at_types_slash_request";
+      packageName = "@types/request";
+      version = "2.48.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/request/-/request-2.48.5.tgz";
+        sha512 = "/LO7xRVnL3DxJ1WkPGDQrp4VTV1reX9RkC85mJ+Qzykj2Bdw+mG15aAfDahc76HtknjzE16SX/Yddn6MxVbmGQ==";
+      };
+    };
+    "@types/request-promise-native-1.0.17" = {
+      name = "_at_types_slash_request-promise-native";
+      packageName = "@types/request-promise-native";
+      version = "1.0.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/request-promise-native/-/request-promise-native-1.0.17.tgz";
+        sha512 = "05/d0WbmuwjtGMYEdHIBZ0tqMJJQ2AD9LG2F6rKNBGX1SSFR27XveajH//2N/XYtual8T9Axwl+4v7oBtPUZqg==";
+      };
+    };
     "@types/resolve-0.0.8" = {
       name = "_at_types_slash_resolve";
       packageName = "@types/resolve";
@@ -3784,6 +4324,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";
@@ -3802,13 +4351,13 @@ let
         sha512 = "41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==";
       };
     };
-    "@types/serve-static-1.13.3" = {
+    "@types/serve-static-1.13.5" = {
       name = "_at_types_slash_serve-static";
       packageName = "@types/serve-static";
-      version = "1.13.3";
+      version = "1.13.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz";
-        sha512 = "oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g==";
+        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.5.tgz";
+        sha512 = "6M64P58N+OXjU432WoLLBQxbA0LRGBCRm7aAGQJ+SMC1IMl0dgRVi9EFfoDcS2a7Xogygk/eGN94CfwU9UF7UQ==";
       };
     };
     "@types/sizzle-2.3.2" = {
@@ -3820,6 +4369,15 @@ let
         sha512 = "7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==";
       };
     };
+    "@types/source-list-map-0.1.2" = {
+      name = "_at_types_slash_source-list-map";
+      packageName = "@types/source-list-map";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz";
+        sha512 = "K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==";
+      };
+    };
     "@types/superagent-3.8.2" = {
       name = "_at_types_slash_superagent";
       packageName = "@types/superagent";
@@ -3829,6 +4387,33 @@ let
         sha512 = "kdU8ydio1weSvhIIh9rptZ6MdMiR2NQGFnlnZ5qQ7OiQS1ej79zK4GaJ9qX3naSTpOA7iWqwUnZCQpd7SpD1NA==";
       };
     };
+    "@types/tapable-1.0.6" = {
+      name = "_at_types_slash_tapable";
+      packageName = "@types/tapable";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz";
+        sha512 = "W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==";
+      };
+    };
+    "@types/tough-cookie-4.0.0" = {
+      name = "_at_types_slash_tough-cookie";
+      packageName = "@types/tough-cookie";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.0.tgz";
+        sha512 = "I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A==";
+      };
+    };
+    "@types/uglify-js-3.9.3" = {
+      name = "_at_types_slash_uglify-js";
+      packageName = "@types/uglify-js";
+      version = "3.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.3.tgz";
+        sha512 = "KswB5C7Kwduwjj04Ykz+AjvPcfgv/37Za24O2EDzYNbwyzOo8+ydtvzUfZ5UMguiVu29Gx44l1A6VsPPcmYu9w==";
+      };
+    };
     "@types/unist-2.0.3" = {
       name = "_at_types_slash_unist";
       packageName = "@types/unist";
@@ -3856,22 +4441,49 @@ let
         sha512 = "GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==";
       };
     };
-    "@types/vscode-1.44.0" = {
+    "@types/vscode-1.47.0" = {
       name = "_at_types_slash_vscode";
       packageName = "@types/vscode";
-      version = "1.44.0";
+      version = "1.47.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.47.0.tgz";
+        sha512 = "nJA37ykkz9FYA0ZOQUSc3OZnhuzEW2vUhUEo4MiduUo82jGwwcLfyvmgd/Q7b0WrZAAceojGhZybg319L24bTA==";
+      };
+    };
+    "@types/webpack-4.41.17" = {
+      name = "_at_types_slash_webpack";
+      packageName = "@types/webpack";
+      version = "4.41.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.44.0.tgz";
-        sha512 = "WJZtZlinE3meRdH+I7wTsIhpz/GLhqEQwmPGeh4s1irWLwMzCeTV8WZ+pgPTwrDXoafVUWwo1LiZ9HJVHFlJSQ==";
+        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.17.tgz";
+        sha512 = "6FfeCidTSHozwKI67gIVQQ5Mp0g4X96c2IXxX75hYEQJwST/i6NyZexP//zzMOBb+wG9jJ7oO8fk9yObP2HWAw==";
       };
     };
-    "@types/ws-7.2.4" = {
+    "@types/webpack-sources-1.4.2" = {
+      name = "_at_types_slash_webpack-sources";
+      packageName = "@types/webpack-sources";
+      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/websocket/-/websocket-1.0.1.tgz";
+        sha512 = "f5WLMpezwVxCLm1xQe/kdPpQIOmL0TXYx2O15VYfYzc7hTIdxiOoOvez+McSIw3b7z/1zGovew9YSL7+h4h7/Q==";
+      };
+    };
+    "@types/ws-7.2.6" = {
       name = "_at_types_slash_ws";
       packageName = "@types/ws";
-      version = "7.2.4";
+      version = "7.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/ws/-/ws-7.2.4.tgz";
-        sha512 = "9S6Ask71vujkVyeEXKxjBSUV8ZUB0mjL5la4IncBoheu04bDaYyUKErh1BQcY9+WzOUOiKqz/OnpJHYckbMfNg==";
+        url = "https://registry.npmjs.org/@types/ws/-/ws-7.2.6.tgz";
+        sha512 = "Q07IrQUSNpr+cXU4E4LtkSIBPie5GLZyyMC1QtQYRLWz701+XcoVygGUZgvLqElq1nU4ICldMYPnexlBsg3dqQ==";
       };
     };
     "@types/xml2js-0.4.5" = {
@@ -3883,13 +4495,13 @@ let
         sha512 = "yohU3zMn0fkhlape1nxXG2bLEGZRc1FeqF80RoHaYXJN7uibaauXfhzhOJr1Xh36sn+/tx21QAOf07b/xYVk1w==";
       };
     };
-    "@types/yargs-15.0.4" = {
+    "@types/yargs-15.0.5" = {
       name = "_at_types_slash_yargs";
       packageName = "@types/yargs";
-      version = "15.0.4";
+      version = "15.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz";
-        sha512 = "9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==";
+        url = "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz";
+        sha512 = "Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==";
       };
     };
     "@types/yargs-parser-15.0.0" = {
@@ -3901,13 +4513,13 @@ let
         sha512 = "FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==";
       };
     };
-    "@types/yoga-layout-1.9.1" = {
+    "@types/yoga-layout-1.9.2" = {
       name = "_at_types_slash_yoga-layout";
       packageName = "@types/yoga-layout";
-      version = "1.9.1";
+      version = "1.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.1.tgz";
-        sha512 = "OpfgQXWLZn5Dl7mOd8dBNcV8NywXbYYoHjUpa64vJ/RQABaxMzJ5bVicKLGIvIiMnQPtPgKNgXb5jkv9fkOQtw==";
+        url = "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz";
+        sha512 = "S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==";
       };
     };
     "@types/zen-observable-0.8.0" = {
@@ -3919,13 +4531,13 @@ let
         sha512 = "te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg==";
       };
     };
-    "@typescript-eslint/eslint-plugin-2.31.0" = {
+    "@typescript-eslint/eslint-plugin-3.8.0" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "2.31.0";
+      version = "3.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.31.0.tgz";
-        sha512 = "iIC0Pb8qDaoit+m80Ln/aaeu9zKQdOLF4SHcGLarSeY1gurW6aU4JsOPMjKQwXlw70MvWKZQc6S2NamA8SJ/gg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.8.0.tgz";
+        sha512 = "lFb4VCDleFSR+eo4Ew+HvrJ37ZH1Y9ZyE+qyP7EiwBpcCVxwmUc5PAqhShCQ8N8U5vqYydm74nss+a0wrrCErw==";
       };
     };
     "@typescript-eslint/experimental-utils-1.13.0" = {
@@ -3937,13 +4549,13 @@ let
         sha512 = "zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==";
       };
     };
-    "@typescript-eslint/experimental-utils-2.31.0" = {
+    "@typescript-eslint/experimental-utils-3.8.0" = {
       name = "_at_typescript-eslint_slash_experimental-utils";
       packageName = "@typescript-eslint/experimental-utils";
-      version = "2.31.0";
+      version = "3.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.31.0.tgz";
-        sha512 = "MI6IWkutLYQYTQgZ48IVnRXmLR/0Q6oAyJgiOror74arUMh7EWjJkADfirZhRsUMHeLJ85U2iySDwHTSnNi9vA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.8.0.tgz";
+        sha512 = "o8T1blo1lAJE0QDsW7nSyvZHbiDzQDjINJKyB44Z3sSL39qBy5L10ScI/XwDtaiunoyKGLiY9bzRk4YjsUZl8w==";
       };
     };
     "@typescript-eslint/parser-1.13.0" = {
@@ -3955,13 +4567,22 @@ let
         sha512 = "ITMBs52PCPgLb2nGPoeT4iU3HdQZHcPaZVw+7CsFagRJHUhyeTgorEwHXhFf3e7Evzi8oujKNpHc8TONth8AdQ==";
       };
     };
-    "@typescript-eslint/parser-2.31.0" = {
+    "@typescript-eslint/parser-3.8.0" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "2.31.0";
+      version = "3.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.8.0.tgz";
+        sha512 = "u5vjOBaCsnMVQOvkKCXAmmOhyyMmFFf5dbkM3TIbg3MZ2pyv5peE4gj81UAbTHwTOXEwf7eCQTUMKrDl/+qGnA==";
+      };
+    };
+    "@typescript-eslint/types-3.8.0" = {
+      name = "_at_typescript-eslint_slash_types";
+      packageName = "@typescript-eslint/types";
+      version = "3.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.31.0.tgz";
-        sha512 = "uph+w6xUOlyV2DLSC6o+fBDzZ5i7+3/TxAsH4h3eC64tlga57oMb96vVlXoMwjR/nN+xyWlsnxtbDkB46M2EPQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.8.0.tgz";
+        sha512 = "8kROmEQkv6ss9kdQ44vCN1dTrgu4Qxrd2kXr10kz2NP5T8/7JnEfYNxCpPkArbLIhhkGLZV3aVMplH1RXQRF7Q==";
       };
     };
     "@typescript-eslint/typescript-estree-1.13.0" = {
@@ -3973,49 +4594,121 @@ let
         sha512 = "b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==";
       };
     };
-    "@typescript-eslint/typescript-estree-2.31.0" = {
+    "@typescript-eslint/typescript-estree-3.8.0" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "2.31.0";
+      version = "3.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.8.0.tgz";
+        sha512 = "MTv9nPDhlKfclwnplRNDL44mP2SY96YmPGxmMbMy6x12I+pERcxpIUht7DXZaj4mOKKtet53wYYXU0ABaiXrLw==";
+      };
+    };
+    "@typescript-eslint/visitor-keys-3.8.0" = {
+      name = "_at_typescript-eslint_slash_visitor-keys";
+      packageName = "@typescript-eslint/visitor-keys";
+      version = "3.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.8.0.tgz";
+        sha512 = "gfqQWyVPpT9NpLREXNR820AYwgz+Kr1GuF3nf1wxpHD6hdxI62tq03ToomFnDxY0m3pUB39IF7sil7D5TQexLA==";
+      };
+    };
+    "@uifabric/foundation-7.7.41" = {
+      name = "_at_uifabric_slash_foundation";
+      packageName = "@uifabric/foundation";
+      version = "7.7.41";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/foundation/-/foundation-7.7.41.tgz";
+        sha512 = "Ts1yg58oMxCLT+hmJ9vfUpQm0zkj6lJUw+X9BhwL88DT8cUUEm43jqlnfC/d+3/gDaBV+YK6EalUrrB0EHrkDQ==";
+      };
+    };
+    "@uifabric/icons-7.3.67" = {
+      name = "_at_uifabric_slash_icons";
+      packageName = "@uifabric/icons";
+      version = "7.3.67";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/icons/-/icons-7.3.67.tgz";
+        sha512 = "wN31oh/5aq72uhCErrykXhOOe1AKrqkDbApnOcYSG/5xaCh3BPfwhynjHg2y1cLxM/CQRckMfsu5lZ7OKZCYIA==";
+      };
+    };
+    "@uifabric/merge-styles-7.16.4" = {
+      name = "_at_uifabric_slash_merge-styles";
+      packageName = "@uifabric/merge-styles";
+      version = "7.16.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/merge-styles/-/merge-styles-7.16.4.tgz";
+        sha512 = "OhOEtwYD74AARf4VZQJPan97QEvtTYcxBGVQfdE7YxFnvR1VdfMxOsV+9CAjAIFM+Xu5ibeKkEE/ZmJYnHkqsQ==";
+      };
+    };
+    "@uifabric/react-hooks-7.7.0" = {
+      name = "_at_uifabric_slash_react-hooks";
+      packageName = "@uifabric/react-hooks";
+      version = "7.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/react-hooks/-/react-hooks-7.7.0.tgz";
+        sha512 = "33iFd2mcS/XVGSQYyjBO5KKwFVq1WvG7KCio6vZXB/q2Rj9TWdkjLtsrM0C3YUDTS+vlKYSp1RuE/+tH00+8jQ==";
+      };
+    };
+    "@uifabric/set-version-7.0.19" = {
+      name = "_at_uifabric_slash_set-version";
+      packageName = "@uifabric/set-version";
+      version = "7.0.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.31.0.tgz";
-        sha512 = "vxW149bXFXXuBrAak0eKHOzbcu9cvi6iNcJDzEtOkRwGHxJG15chiAQAwhLOsk+86p9GTr/TziYvw+H9kMaIgA==";
+        url = "https://registry.npmjs.org/@uifabric/set-version/-/set-version-7.0.19.tgz";
+        sha512 = "p52z9Z5Kfl0kAU3DiPNPg+0vCdSAxlkRZEtEa+RwM6fh9XSo91n4C56FFdKDW7HJVuhGjMK7UEXuU6ELY1W7fg==";
       };
     };
-    "@vue/cli-shared-utils-4.3.1" = {
+    "@uifabric/styling-7.14.7" = {
+      name = "_at_uifabric_slash_styling";
+      packageName = "@uifabric/styling";
+      version = "7.14.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/styling/-/styling-7.14.7.tgz";
+        sha512 = "J4nYc9QM4eCW+jGgRBW6C+1CsbdLfP9RanPn121YRKWYgg4SHdflCwJDfnNAPHSlvpPkQweVfbFVyHeTNCwIbw==";
+      };
+    };
+    "@uifabric/utilities-7.25.0" = {
+      name = "_at_uifabric_slash_utilities";
+      packageName = "@uifabric/utilities";
+      version = "7.25.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/utilities/-/utilities-7.25.0.tgz";
+        sha512 = "11QJq2dyYojVRxT/QvocI1m5tqqyeoX5K9HmqSGaAq5AIJBqdAUeFAIUuXAn7Gze7X+aLTFVF4Yxthh/ebVthw==";
+      };
+    };
+    "@vue/cli-shared-utils-4.5.0" = {
       name = "_at_vue_slash_cli-shared-utils";
       packageName = "@vue/cli-shared-utils";
-      version = "4.3.1";
+      version = "4.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.3.1.tgz";
-        sha512 = "lcfRalou7Z9jZgIh9PeTIpwDK7RIjr9OxfLGwbdR8czUZYUeUa67zVEMJD0OPYh/CCoREtzNbVfLPb/IYYxWEA==";
+        url = "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.0.tgz";
+        sha512 = "sVIq0PvWW7W/CGuEm8LC+Ehod9yreaGaDva+oqVglTqE7lf0CtsAMRytFf37DgIwcM9TiMgdx8DCqdmotkhY9g==";
       };
     };
-    "@vue/cli-ui-4.3.1" = {
+    "@vue/cli-ui-4.5.0" = {
       name = "_at_vue_slash_cli-ui";
       packageName = "@vue/cli-ui";
-      version = "4.3.1";
+      version = "4.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui/-/cli-ui-4.3.1.tgz";
-        sha512 = "fHsVO62rCCmIFnufDzy9JeQXZ6ylyNFpGrjP4UJ8vkWTDLrmKRgS7LHLn5DAIhr1e1/34GsXBntqwIWneJW8mg==";
+        url = "https://registry.npmjs.org/@vue/cli-ui/-/cli-ui-4.5.0.tgz";
+        sha512 = "N0Dc/KUFzXCSAWlTAq4wHIlE1RFIpf1kVh8kyO2ADippLbr+EpnhuSt725mk7twjRKqJLnu4j7AqDC55Tc735A==";
       };
     };
-    "@vue/cli-ui-addon-webpack-4.3.1" = {
+    "@vue/cli-ui-addon-webpack-4.5.0" = {
       name = "_at_vue_slash_cli-ui-addon-webpack";
       packageName = "@vue/cli-ui-addon-webpack";
-      version = "4.3.1";
+      version = "4.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui-addon-webpack/-/cli-ui-addon-webpack-4.3.1.tgz";
-        sha512 = "Mrm4q5xxRmCos+nvRiZOwWvCnq6gWa2vsYVvb3mSA+hZhtRbLMASYsSAdsXTBySiaBQxvbKHLlnu3XV0bLlD3A==";
+        url = "https://registry.npmjs.org/@vue/cli-ui-addon-webpack/-/cli-ui-addon-webpack-4.5.0.tgz";
+        sha512 = "XGn9TtFI8leqNR0jSNeJMtkf81vNJn14RXHUQEDjF3jc2jQTiXbzy4I4YLBcq52vLv1qa0ucTY8HAb5sPf86Rg==";
       };
     };
-    "@vue/cli-ui-addon-widgets-4.3.1" = {
+    "@vue/cli-ui-addon-widgets-4.5.0" = {
       name = "_at_vue_slash_cli-ui-addon-widgets";
       packageName = "@vue/cli-ui-addon-widgets";
-      version = "4.3.1";
+      version = "4.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui-addon-widgets/-/cli-ui-addon-widgets-4.3.1.tgz";
-        sha512 = "0j6rUukhGGSRddSG5Ijol1uhTlDPx1/nU9gYeH1DKqoX9wR4Zfziqxfm2AulLNTbdFWZn4W0K0QaA2WZfkyRzw==";
+        url = "https://registry.npmjs.org/@vue/cli-ui-addon-widgets/-/cli-ui-addon-widgets-4.5.0.tgz";
+        sha512 = "8DDCGXQPHa6405/Qv0VXT17fhzhnm6XOpBVCJhKWWIP+uBhiEh+lg2hcNHC9ilW8R+N3jHzRSCoeUnjUKwSC1g==";
       };
     };
     "@webassemblyjs/ast-1.8.1" = {
@@ -4396,6 +5089,42 @@ let
         sha512 = "NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==";
       };
     };
+    "@yarnpkg/core-2.1.1" = {
+      name = "_at_yarnpkg_slash_core";
+      packageName = "@yarnpkg/core";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/core/-/core-2.1.1.tgz";
+        sha512 = "qeBxz8nHjKAbGTP2ZcXBnXGfM7+cN0A73mIai/24uru1ayvCIgfjWL1uIj/MM+m+K5lJX0Dcn94ZBHWits9JWQ==";
+      };
+    };
+    "@yarnpkg/fslib-2.1.0" = {
+      name = "_at_yarnpkg_slash_fslib";
+      packageName = "@yarnpkg/fslib";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.1.0.tgz";
+        sha512 = "E+f8w5yQZnTf1soyTWy7qdf+GmHsY+A0yEN4Di44/Txk6XRIMruyc1ShDi93mOI6ilnXxD87rNms18zJ8WnspA==";
+      };
+    };
+    "@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.1.0" = {
+      name = "_at_yarnpkg_slash_libzip";
+      packageName = "@yarnpkg/libzip";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/libzip/-/libzip-2.1.0.tgz";
+        sha512 = "39c7KuSWcYUqVxlBLZwfqdD/D6lS+jplNVWd6uAnk8EpnacaYGJRegvkqWyfw5c8KHukNMeEGF5JHrXPZYBM0w==";
+      };
+    };
     "@yarnpkg/lockfile-1.1.0" = {
       name = "_at_yarnpkg_slash_lockfile";
       packageName = "@yarnpkg/lockfile";
@@ -4405,6 +5134,33 @@ let
         sha512 = "GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==";
       };
     };
+    "@yarnpkg/parsers-2.1.0" = {
+      name = "_at_yarnpkg_slash_parsers";
+      packageName = "@yarnpkg/parsers";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-2.1.0.tgz";
+        sha512 = "75OYQ6PMs1C3zm+W+T1xhLyVDX78zXQGEVHpWd4o/QwpAbhneB3/5FXVGRzI3gjPPWWSb/pKOPB1S6p0xmQD2Q==";
+      };
+    };
+    "@yarnpkg/pnp-2.1.0" = {
+      name = "_at_yarnpkg_slash_pnp";
+      packageName = "@yarnpkg/pnp";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/pnp/-/pnp-2.1.0.tgz";
+        sha512 = "b8NlB71EFifv1jDX47nFaRXrykROxHcS7YuGb2dQ+Gp9gqJ0thIaZ3yB9+qWF8acdWtNcMpjCug4xkfAAR5Odw==";
+      };
+    };
+    "@yarnpkg/shell-2.1.0" = {
+      name = "_at_yarnpkg_slash_shell";
+      packageName = "@yarnpkg/shell";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/shell/-/shell-2.1.0.tgz";
+        sha512 = "9i9ZWqeKHGV0DOfdxTVq5zl73Li8Fg947v57uLBEaytNF+HywkDfouNkg/6HfgBrpI0WH8OJ9Pz/uDaE5cpctw==";
+      };
+    };
     "@zeit/schemas-2.6.0" = {
       name = "_at_zeit_slash_schemas";
       packageName = "@zeit/schemas";
@@ -4495,13 +5251,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" = {
@@ -4576,15 +5332,6 @@ let
         sha1 = "9a8eac8ff79866f3f9b4bb1443ca778f1598aeda";
       };
     };
-    "accepts-1.2.13" = {
-      name = "accepts";
-      packageName = "accepts";
-      version = "1.2.13";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz";
-        sha1 = "e5f1f3928c6d95fd96558c36ec3d9d0de4a6ecea";
-      };
-    };
     "accepts-1.3.7" = {
       name = "accepts";
       packageName = "accepts";
@@ -4657,13 +5404,13 @@ let
         sha512 = "ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==";
       };
     };
-    "acorn-7.1.1" = {
+    "acorn-7.4.0" = {
       name = "acorn";
       packageName = "acorn";
-      version = "7.1.1";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz";
-        sha512 = "add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==";
+        url = "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz";
+        sha512 = "+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==";
       };
     };
     "acorn-globals-1.0.9" = {
@@ -4738,13 +5485,13 @@ let
         sha512 = "7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==";
       };
     };
-    "acorn-walk-7.1.1" = {
+    "acorn-walk-7.2.0" = {
       name = "acorn-walk";
       packageName = "acorn-walk";
-      version = "7.1.1";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz";
-        sha512 = "wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==";
+        url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz";
+        sha512 = "OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==";
       };
     };
     "adbkit-2.11.1" = {
@@ -4783,13 +5530,13 @@ let
         sha1 = "f291be701a2efc567a63fc7aa6afcded31430be1";
       };
     };
-    "addons-linter-1.23.0" = {
+    "addons-linter-2.1.0" = {
       name = "addons-linter";
       packageName = "addons-linter";
-      version = "1.23.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-1.23.0.tgz";
-        sha512 = "4ozo5E+KnsU9h94J496WQs6NYSnofxtw5/Sy63PmeB5FJ3KWERx1S9D8A+ixMAIMgaSiexHpp5alp9yjE0t4gg==";
+        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" = {
@@ -4810,13 +5557,13 @@ let
         sha512 = "fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==";
       };
     };
-    "adm-zip-0.4.14" = {
+    "adm-zip-0.4.16" = {
       name = "adm-zip";
       packageName = "adm-zip";
-      version = "0.4.14";
+      version = "0.4.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.14.tgz";
-        sha512 = "/9aQCnQHF+0IiCl0qhXoK7qs//SwYE7zX8lsr/DNk1BRAHYxeLZPL4pguwK29gUEqasYQjqPtEpDRSWEkdHn9g==";
+        url = "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz";
+        sha512 = "TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==";
       };
     };
     "adverb-where-0.0.9" = {
@@ -4891,13 +5638,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" = {
@@ -4909,13 +5656,13 @@ let
         sha512 = "e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==";
       };
     };
-    "agentkeepalive-4.1.2" = {
+    "agentkeepalive-4.1.3" = {
       name = "agentkeepalive";
       packageName = "agentkeepalive";
-      version = "4.1.2";
+      version = "4.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.2.tgz";
-        sha512 = "waNHE7tQBBn+2qXucI8HY0o2Y0OBPWldWOWsZwY71JcCm4SvrPnWdceFfB5NIXSqE8Ewq6VR/Qt5b1i69P6KCQ==";
+        url = "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.3.tgz";
+        sha512 = "wn8fw19xKZwdGPO47jivonaHRTd+nGOMP1z11sgGeQzDy2xd5FG0R67dIMcKHDE2cJ5y+YXV30XVGUBPRSY7Hg==";
       };
     };
     "aggregate-error-3.0.1" = {
@@ -4990,13 +5737,13 @@ let
         sha512 = "D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==";
       };
     };
-    "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-6.5.3" = {
@@ -5035,13 +5782,13 @@ let
         sha1 = "617997fc5f60576894c435f940d819e135b80762";
       };
     };
-    "ajv-keywords-3.4.1" = {
+    "ajv-keywords-3.5.2" = {
       name = "ajv-keywords";
       packageName = "ajv-keywords";
-      version = "3.4.1";
+      version = "3.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz";
-        sha512 = "RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==";
+        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz";
+        sha512 = "5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==";
       };
     };
     "ajv-merge-patch-4.1.0" = {
@@ -5053,13 +5800,13 @@ let
         sha512 = "0mAYXMSauA8RZ7r+B4+EAOYcZEcO9OK5EiQCR7W7Cv4E44pJj56ZnkKLJ9/PAcOc0dT+LlV9fdDcq2TxVJfOYw==";
       };
     };
-    "alex-5.1.0" = {
+    "alex-8.2.0" = {
       name = "alex";
       packageName = "alex";
-      version = "5.1.0";
+      version = "8.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/alex/-/alex-5.1.0.tgz";
-        sha512 = "ouNJOHx7KKNwFsmX3WWXo8c2RTrsyhcX5QlFb6IM/cHCy9IkHr1k833jiIhcbwkUeGgACI2BJtp9LLvnFjbhbA==";
+        url = "https://registry.npmjs.org/alex/-/alex-8.2.0.tgz";
+        sha512 = "aJX/ZkyGruiXKr26NJkbrYd+Quc8i0cP7B7b9TIX2AoLxHsV+0SJ0ca+26h8sw63LyrWQMkT7lZQlvMMOBKxqA==";
       };
     };
     "align-text-0.1.4" = {
@@ -5152,15 +5899,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";
@@ -5476,220 +6214,148 @@ let
         sha512 = "sbLEIMQrkV7RkIruqTPXxeCMkAAycv4yzTkBzRgOR1BrR5UB7qZtupqxkersTJSf0HZ3sbaNRrNV80TnnM7cUw==";
       };
     };
-    "apollo-2.27.3" = {
+    "apollo-2.30.2" = {
       name = "apollo";
       packageName = "apollo";
-      version = "2.27.3";
+      version = "2.30.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo/-/apollo-2.27.3.tgz";
-        sha512 = "9GWIdwah0o4XiNTGcoc4JIflBYf+3+JflKeqS3YfJ8uOzUPGSaFIt0Z42p43TJ9ALvJqnlcYy/cBCizihne3Xg==";
+        url = "https://registry.npmjs.org/apollo/-/apollo-2.30.2.tgz";
+        sha512 = "CKQVvfjbeFPVew9q/dGuRNpohenK7oBTKNnwDs89ImEGoPDd7BpXRQUu/mNjUANoDpd2ztYRwO+ZxxVE8P4+sA==";
       };
     };
-    "apollo-cache-1.3.4" = {
+    "apollo-cache-1.3.5" = {
       name = "apollo-cache";
       packageName = "apollo-cache";
-      version = "1.3.4";
+      version = "1.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.3.4.tgz";
-        sha512 = "7X5aGbqaOWYG+SSkCzJNHTz2ZKDcyRwtmvW4mGVLRqdQs+HxfXS4dUS2CcwrAj449se6tZ6NLUMnjko4KMt3KA==";
+        url = "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.3.5.tgz";
+        sha512 = "1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA==";
       };
     };
-    "apollo-cache-control-0.10.0" = {
+    "apollo-cache-control-0.11.1" = {
       name = "apollo-cache-control";
       packageName = "apollo-cache-control";
-      version = "0.10.0";
+      version = "0.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.10.0.tgz";
-        sha512 = "UIcPlrPdRTOKrF7kc5/WD5i6EVkGEEqgOK/fMj92fnnxR1KnQDiN82lqaxu02eZJvWjFJjik0JVJNXKOJXVrpQ==";
+        url = "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.1.tgz";
+        sha512 = "6iHa8TkcKt4rx5SKRzDNjUIpCQX+7/FlZwD7vRh9JDnM4VH8SWhpj8fUR3CiEY8Kuc4ChXnOY8bCcMju5KPnIQ==";
       };
     };
-    "apollo-cache-inmemory-1.6.5" = {
+    "apollo-cache-inmemory-1.6.6" = {
       name = "apollo-cache-inmemory";
       packageName = "apollo-cache-inmemory";
-      version = "1.6.5";
+      version = "1.6.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.5.tgz";
-        sha512 = "koB76JUDJaycfejHmrXBbWIN9pRKM0Z9CJGQcBzIOtmte1JhEBSuzsOUu7NQgiXKYI4iGoMREcnaWffsosZynA==";
+        url = "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.6.tgz";
+        sha512 = "L8pToTW/+Xru2FFAhkZ1OA9q4V4nuvfoPecBM34DecAugUZEBhI2Hmpgnzq2hTKZ60LAMrlqiASm0aqAY6F8/A==";
       };
     };
-    "apollo-client-2.6.8" = {
+    "apollo-client-2.6.10" = {
       name = "apollo-client";
       packageName = "apollo-client";
-      version = "2.6.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-client/-/apollo-client-2.6.8.tgz";
-        sha512 = "0zvJtAcONiozpa5z5zgou83iEKkBaXhhSSXJebFHRXs100SecDojyUWKjwTtBPn9HbM6o5xrvC5mo9VQ5fgAjw==";
-      };
-    };
-    "apollo-codegen-0.20.2" = {
-      name = "apollo-codegen";
-      packageName = "apollo-codegen";
-      version = "0.20.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen/-/apollo-codegen-0.20.2.tgz";
-        sha512 = "f95fPGoQoj+XcR7JWgR35mUYrD7RWT4kHbtSLs3aHeRFOKUHEWW2nHUNTOtQbbIdLulRuxPQCTvSddT7fFwhrA==";
-      };
-    };
-    "apollo-codegen-core-0.20.1" = {
-      name = "apollo-codegen-core";
-      packageName = "apollo-codegen-core";
-      version = "0.20.1";
+      version = "2.6.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-core/-/apollo-codegen-core-0.20.1.tgz";
-        sha512 = "sanUIqXWyyDpxY3fYOVU+Hsxwxdj5fmn3Zcy6CcMGnWmh9o7tautQAuod2a63wrDs1jcNQcFq3EKIpeB+2xECw==";
+        url = "https://registry.npmjs.org/apollo-client/-/apollo-client-2.6.10.tgz";
+        sha512 = "jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA==";
       };
     };
-    "apollo-codegen-core-0.36.8" = {
+    "apollo-codegen-core-0.37.8" = {
       name = "apollo-codegen-core";
       packageName = "apollo-codegen-core";
-      version = "0.36.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-core/-/apollo-codegen-core-0.36.8.tgz";
-        sha512 = "T/JhiGIJHpqVw6YAbdxhDXUYqZjm5wqoGL4yc3rgpNH7Wo/TOFpiFu0FDQyncq2uU7za062Pj8lXj1jhC6uNzQ==";
-      };
-    };
-    "apollo-codegen-flow-0.20.0" = {
-      name = "apollo-codegen-flow";
-      packageName = "apollo-codegen-flow";
-      version = "0.20.0";
+      version = "0.37.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-flow/-/apollo-codegen-flow-0.20.0.tgz";
-        sha512 = "XgKE19B0Q74PBLVqHP/77NcCFrcvrN9wi3CcotH+FV8BeHTjvpHlilTsQMmd2STPt19cCvY2Qtz0EOeLXTUQ2Q==";
+        url = "https://registry.npmjs.org/apollo-codegen-core/-/apollo-codegen-core-0.37.8.tgz";
+        sha512 = "5mIF75iJCGaPXPvWthQjrWKb6YD7KRioODAM6OF5r+foN70Mli2S3g7wCsnmQ0J1TtstntHVnXykHsWClj4NIg==";
       };
     };
-    "apollo-codegen-flow-0.34.8" = {
+    "apollo-codegen-flow-0.35.8" = {
       name = "apollo-codegen-flow";
       packageName = "apollo-codegen-flow";
-      version = "0.34.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-flow/-/apollo-codegen-flow-0.34.8.tgz";
-        sha512 = "U81ZM2roWSSKrlZSqpltJfG5TRrDjqyyV+odC5GWzyYZUltYTqDqZjoleGeMguLBupDFOr21QUlM1LtJxeRAfQ==";
-      };
-    };
-    "apollo-codegen-flow-legacy-0.20.0" = {
-      name = "apollo-codegen-flow-legacy";
-      packageName = "apollo-codegen-flow-legacy";
-      version = "0.20.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-flow-legacy/-/apollo-codegen-flow-legacy-0.20.0.tgz";
-        sha512 = "kGjJNkkkob9gGYSIhwfdgOzkj0PuN4/QPhng4ckSaSCE+8E4Awyvk0P8LiYPKauHzHVjmJzxWLSG6kI0PQTNgA==";
-      };
-    };
-    "apollo-codegen-scala-0.20.0" = {
-      name = "apollo-codegen-scala";
-      packageName = "apollo-codegen-scala";
-      version = "0.20.0";
+      version = "0.35.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-scala/-/apollo-codegen-scala-0.20.0.tgz";
-        sha512 = "NbnMOfUXXovlTGRj4mIZGXB9HvidQhwKfAmdYHox5peHPkjjsqEzxGCIuWCSnubWiCF2uHZnQoIkg4sXWf0KLw==";
+        url = "https://registry.npmjs.org/apollo-codegen-flow/-/apollo-codegen-flow-0.35.8.tgz";
+        sha512 = "nqTIvqmidL3/k6k0HcJOQfr/vG6a3i2CCKa+w1UwAR9zRJn487lvT3QGSRNuYaohB/wBdGtNk3a1V2FvFyH/xg==";
       };
     };
-    "apollo-codegen-scala-0.35.8" = {
+    "apollo-codegen-scala-0.36.8" = {
       name = "apollo-codegen-scala";
       packageName = "apollo-codegen-scala";
-      version = "0.35.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-scala/-/apollo-codegen-scala-0.35.8.tgz";
-        sha512 = "c9g7+2MLzDG217cy4KFMCCXxw+kBTjvUxjXG9+PwzP5cEMchFxlCQdMbOazY+s03Q8Uy4uYh6f+Kw0x0YaPoWw==";
-      };
-    };
-    "apollo-codegen-swift-0.20.0" = {
-      name = "apollo-codegen-swift";
-      packageName = "apollo-codegen-swift";
-      version = "0.20.0";
+      version = "0.36.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-swift/-/apollo-codegen-swift-0.20.0.tgz";
-        sha512 = "L9Y4StbXw0t/nuF+miz0ybSt/io6tsLc063Yeh1A8GCvhFFQyXE/yK0Rf3nO1Bl5Z9UZ5o8Aae9kK4GSWYIGNQ==";
+        url = "https://registry.npmjs.org/apollo-codegen-scala/-/apollo-codegen-scala-0.36.8.tgz";
+        sha512 = "6/ulLUqlKUTac5mZNAaFtzYn5LnJbXeMLftCl1NL4dyzFRn4rj+gZjDRP5e74GfDCqLAMSPyVt/6OFBxFKrs7w==";
       };
     };
-    "apollo-codegen-swift-0.36.8" = {
+    "apollo-codegen-swift-0.37.8" = {
       name = "apollo-codegen-swift";
       packageName = "apollo-codegen-swift";
-      version = "0.36.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-swift/-/apollo-codegen-swift-0.36.8.tgz";
-        sha512 = "PTZtRGfSFi8UkE8T92W2/zMFZ8GI59KQdotVWqUphaprhFnzHnig3YZf8L05eBgkbQuDPDckjBoRnICporG5Cw==";
-      };
-    };
-    "apollo-codegen-typescript-0.20.0" = {
-      name = "apollo-codegen-typescript";
-      packageName = "apollo-codegen-typescript";
-      version = "0.20.0";
+      version = "0.37.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-typescript/-/apollo-codegen-typescript-0.20.0.tgz";
-        sha512 = "mzlIJXz+5WPwzeALqRHHR9aPPEf6IlhSrjCawpUHmFU1NK9hgwbguYCEYZv9mKkYBUUgDY+9cGFK1cafJX70AQ==";
+        url = "https://registry.npmjs.org/apollo-codegen-swift/-/apollo-codegen-swift-0.37.8.tgz";
+        sha512 = "qRqXZg2fLBm5OhJopVwh3Y3RLXeurwAj+bH3xcpxiAX05qci9MVOxwej05nmSu4GUv1csJSLDn93ZjQfByabkQ==";
       };
     };
-    "apollo-codegen-typescript-0.36.8" = {
+    "apollo-codegen-typescript-0.37.8" = {
       name = "apollo-codegen-typescript";
       packageName = "apollo-codegen-typescript";
-      version = "0.36.8";
+      version = "0.37.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-typescript/-/apollo-codegen-typescript-0.36.8.tgz";
-        sha512 = "IL0UaqXuByNUjbn3oxEpBidnCIKwiNmXYpwj+EqKnnQhOVwiV7wyXYRhBFp3LoUQVW5UKZ+qulYujlCvYvaj0w==";
+        url = "https://registry.npmjs.org/apollo-codegen-typescript/-/apollo-codegen-typescript-0.37.8.tgz";
+        sha512 = "cYysqRnW2h1xKFEZH0o636IeKvWBeeTDZmNZEyfMcl2TtyMRd0cOFUmA0gokX0JK/QzvJuTJgBKD9le9W8wV2w==";
       };
     };
-    "apollo-codegen-typescript-legacy-0.20.0" = {
-      name = "apollo-codegen-typescript-legacy";
-      packageName = "apollo-codegen-typescript-legacy";
-      version = "0.20.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-typescript-legacy/-/apollo-codegen-typescript-legacy-0.20.0.tgz";
-        sha512 = "0/h5hce2FIGn6Y4+EHMeMINQxFwcgjw1vU+xV3KGaaEgyEAEQ3/n9pyz43M8mOm/JVgg8Eb4CtM1AtCkRQuFGw==";
-      };
-    };
-    "apollo-datasource-0.7.0" = {
+    "apollo-datasource-0.7.2" = {
       name = "apollo-datasource";
       packageName = "apollo-datasource";
-      version = "0.7.0";
+      version = "0.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.0.tgz";
-        sha512 = "Yja12BgNQhzuFGG/5Nw2MQe0hkuQy2+9er09HxeEyAf2rUDIPnhPrn1MDoZTB8MU7UGfjwITC+1ofzKkkrZobA==";
+        url = "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.2.tgz";
+        sha512 = "ibnW+s4BMp4K2AgzLEtvzkjg7dJgCaw9M5b5N0YKNmeRZRnl/I/qBTQae648FsRKgMwTbRQIvBhQ0URUFAqFOw==";
       };
     };
-    "apollo-engine-reporting-1.8.0" = {
+    "apollo-engine-reporting-2.3.0" = {
       name = "apollo-engine-reporting";
       packageName = "apollo-engine-reporting";
-      version = "1.8.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-1.8.0.tgz";
-        sha512 = "VPVpIGW6lbYXga6sqq/fG8ZaPR70bFuxvCov6X0npuVQPXwgZrzBp50cHx9uIaBVxDDxD3leeznsQbmF37RAww==";
+        url = "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-2.3.0.tgz";
+        sha512 = "SbcPLFuUZcRqDEZ6mSs8uHM9Ftr8yyt2IEu0JA8c3LNBmYXSLM7MHqFe80SVcosYSTBgtMz8mLJO8orhYoSYZw==";
       };
     };
-    "apollo-engine-reporting-protobuf-0.5.0" = {
+    "apollo-engine-reporting-protobuf-0.5.2" = {
       name = "apollo-engine-reporting-protobuf";
       packageName = "apollo-engine-reporting-protobuf";
-      version = "0.5.0";
+      version = "0.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.5.0.tgz";
-        sha512 = "OgMwtLcuL+YAaO2xgkPbnRJnISLDSNE5F11p7oq+1ws+ws71CPfHAthDCxSObCPSALdhsLAGD0v3u3soBuNmMg==";
+        url = "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.5.2.tgz";
+        sha512 = "4wm9FR3B7UvJxcK/69rOiS5CAJPEYKufeRWb257ZLfX7NGFTMqvbc1hu4q8Ch7swB26rTpkzfsftLED9DqH9qg==";
       };
     };
-    "apollo-env-0.6.4" = {
+    "apollo-env-0.6.5" = {
       name = "apollo-env";
       packageName = "apollo-env";
-      version = "0.6.4";
+      version = "0.6.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.4.tgz";
-        sha512 = "8tGDMFv3sZLd76b/ZAo8GbdWU5Qt3VEUWSB+FLN41p/hVShZw0XIo2s/i8pVCTAhaWiEiD0Cr+d/zi0/h5UTxA==";
+        url = "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.5.tgz";
+        sha512 = "jeBUVsGymeTHYWp3me0R2CZRZrFeuSZeICZHCeRflHTfnQtlmbSXdy5E0pOyRM9CU4JfQkKDC98S1YglQj7Bzg==";
       };
     };
-    "apollo-graphql-0.4.3" = {
+    "apollo-graphql-0.5.0" = {
       name = "apollo-graphql";
       packageName = "apollo-graphql";
-      version = "0.4.3";
+      version = "0.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.4.3.tgz";
-        sha512 = "eAl8w6TeuY0Q3x7TVqBjt4JObA34vUyctuDn2lOmkdIqlu1EKxNAnTlRtXkjQM89qUt0rK0teU8No0a2lMNGuw==";
+        url = "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.5.0.tgz";
+        sha512 = "YSdF/BKPbsnQpxWpmCE53pBJX44aaoif31Y22I/qKpB6ZSGzYijV5YBoCL5Q15H2oA/v/02Oazh9lbp4ek3eig==";
       };
     };
-    "apollo-language-server-1.21.3" = {
+    "apollo-language-server-1.23.3" = {
       name = "apollo-language-server";
       packageName = "apollo-language-server";
-      version = "1.21.3";
+      version = "1.23.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-language-server/-/apollo-language-server-1.21.3.tgz";
-        sha512 = "PSPiOwR7Zd0alnZ0zeuUs7kEnWwV3jWIU01bsoy8eaF4Bi2fJD7AHnEyUOiu7V3V7xdJtnsJNTjyZy5MC0+Ohg==";
+        url = "https://registry.npmjs.org/apollo-language-server/-/apollo-language-server-1.23.3.tgz";
+        sha512 = "WbK5tlqDpyy5TKjo1tjLIAeeTjlpZpvXURB1Qlx7ZfTqaG1846u9lgYpKw6Ydx/+1Viy60K8z530/gOgI/KmvQ==";
       };
     };
     "apollo-link-1.2.14" = {
@@ -5764,76 +6430,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.13.0" = {
+    "apollo-server-core-2.16.1" = {
       name = "apollo-server-core";
       packageName = "apollo-server-core";
-      version = "2.13.0";
+      version = "2.16.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.13.0.tgz";
-        sha512 = "PqfsexbyObaQYb2jODs8v/XzrJcn+5mh0jA8ZfQCg5GENlua/CjeTZbRm2X0p3qpwc2E5jFAXSshrIWvhQAGZQ==";
+        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.16.1.tgz";
+        sha512 = "nuwn5ZBbmzPwDetb3FgiFFJlNK7ZBFg8kis/raymrjd3eBGdNcOyMTJDl6J9673X9Xqp+dXQmFYDW/G3G8S1YA==";
       };
     };
-    "apollo-server-env-2.4.3" = {
+    "apollo-server-env-2.4.5" = {
       name = "apollo-server-env";
       packageName = "apollo-server-env";
-      version = "2.4.3";
+      version = "2.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.3.tgz";
-        sha512 = "23R5Xo9OMYX0iyTu2/qT0EUb+AULCBriA9w8HDfMoChB8M+lFClqUkYtaTTHDfp6eoARLW8kDBhPOBavsvKAjA==";
+        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.13.0" = {
+    "apollo-server-express-2.16.1" = {
       name = "apollo-server-express";
       packageName = "apollo-server-express";
-      version = "2.13.0";
+      version = "2.16.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.13.0.tgz";
-        sha512 = "xDc+kRqWCXs4MeRjls37G45V6PmKYwo7OlpWCXyWDSPGgY9UD4E5A6rUBCyIhoNr7RnVYMkNuySOOqzX1QJ7EA==";
+        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.16.1.tgz";
+        sha512 = "Oq5YNcaMYnRk6jDmA9LWf8oSd2KHDVe7jQ4wtooAvG9FVUD+FaFBgSkytXHMvtifQh2wdF07Ri8uDLMz6IQjTw==";
       };
     };
-    "apollo-server-plugin-base-0.8.0" = {
+    "apollo-server-plugin-base-0.9.1" = {
       name = "apollo-server-plugin-base";
       packageName = "apollo-server-plugin-base";
-      version = "0.8.0";
+      version = "0.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.8.0.tgz";
-        sha512 = "H8sJlOVJrF0IhYIFMv7NOgB6BFgqobXSZrj1y9ju6dq13OotsqcZC4fJOYc9oWzb/+/mqg/odtVioE71mj68yg==";
+        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.4.0" = {
+    "apollo-server-types-0.5.1" = {
       name = "apollo-server-types";
       packageName = "apollo-server-types";
-      version = "0.4.0";
+      version = "0.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.4.0.tgz";
-        sha512 = "U+6qKCdrucVSMEVvLSqSwxIGr3VI6vcfbhpD86sdb8MgHHGH6egjNAcLrPVRk1AyXs8RV0Ysus+vlj8rpouBzA==";
+        url = "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.5.1.tgz";
+        sha512 = "my2cPw+DAb2qVnIuBcsRKGyS28uIc2vjFxa1NpRoJZe9gK0BWUBk7wzXnIzWy3HZ5Er11e/40MPTUesNfMYNVA==";
       };
     };
-    "apollo-tracing-0.10.0" = {
+    "apollo-tracing-0.11.1" = {
       name = "apollo-tracing";
       packageName = "apollo-tracing";
-      version = "0.10.0";
+      version = "0.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.10.0.tgz";
-        sha512 = "yuqA1KT0FQUfzVK3ZIk0hRIE8eUKx9Oklq83AGQxLtS/oafBj/VOCZAtJNJkyEqMJxXQT9uIBtbfO1789Gczkw==";
+        url = "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.11.1.tgz";
+        sha512 = "l7g+uILw7v32GA46IRXIx5XXbZhFI96BhSqrGK9yyvfq+NMcvVZrj3kIhRImPGhAjMdV+5biA/jztabElAbDjg==";
       };
     };
     "apollo-upload-client-11.0.0" = {
@@ -5845,13 +6511,13 @@ let
         sha512 = "JChTrBi1VSF8u6OPrkWUApJlyUvzwhw98kqRB3fSi7/CU6z0OUD42Mee9s5h8mfjKEfOanK6GNZhF4t2tIPXSw==";
       };
     };
-    "apollo-utilities-1.3.3" = {
+    "apollo-utilities-1.3.4" = {
       name = "apollo-utilities";
       packageName = "apollo-utilities";
-      version = "1.3.3";
+      version = "1.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.3.tgz";
-        sha512 = "F14aX2R/fKNYMvhuP2t9GD9fggID7zp5I96MF5QeKYWDWTrkRdHRp4+SVfXUVN+cXOaB/IebfvRtzPf25CM0zw==";
+        url = "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz";
+        sha512 = "pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==";
       };
     };
     "app-module-path-2.2.0" = {
@@ -5908,15 +6574,6 @@ let
         sha512 = "rPMUMkR8JjjPDDHHDZ/YeLO0KIbUGCrXgy921F6sBkEXBR9jYYxK8LUlwpZkUVi70cMR6r8uSmHZ/5HvtrntHg==";
       };
     };
-    "append-type-1.0.2" = {
-      name = "append-type";
-      packageName = "append-type";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/append-type/-/append-type-1.0.2.tgz";
-        sha512 = "hac740vT/SAbrFBLgLIWZqVT5PUAcGTWS5UkDDhr+OCizZSw90WKw6sWAEgGaYd2viIblggypMXwpjzHXOvAQg==";
-      };
-    };
     "appendable-cli-menu-2.0.0" = {
       name = "appendable-cli-menu";
       packageName = "appendable-cli-menu";
@@ -5944,13 +6601,13 @@ let
         sha512 = "lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==";
       };
     };
-    "arch-2.1.1" = {
+    "arch-2.1.2" = {
       name = "arch";
       packageName = "arch";
-      version = "2.1.1";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz";
-        sha512 = "BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==";
+        url = "https://registry.npmjs.org/arch/-/arch-2.1.2.tgz";
+        sha512 = "NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ==";
       };
     };
     "archive-type-4.0.0" = {
@@ -5962,15 +6619,6 @@ let
         sha1 = "f92e72233056dfc6969472749c267bdb046b1d70";
       };
     };
-    "archiver-1.3.0" = {
-      name = "archiver";
-      packageName = "archiver";
-      version = "1.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz";
-        sha1 = "4f2194d6d8f99df3f531e6881f14f15d55faaf22";
-      };
-    };
     "archiver-2.1.1" = {
       name = "archiver";
       packageName = "archiver";
@@ -5989,6 +6637,15 @@ let
         sha512 = "5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==";
       };
     };
+    "archiver-4.0.2" = {
+      name = "archiver";
+      packageName = "archiver";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/archiver/-/archiver-4.0.2.tgz";
+        sha512 = "B9IZjlGwaxF33UN4oPbfBkyA4V1SxNLeIhR1qY8sRXSsbdUkEHrrOvwlYFPx+8uQeCe9M+FG6KgO+imDmQ79CQ==";
+      };
+    };
     "archiver-utils-1.3.0" = {
       name = "archiver-utils";
       packageName = "archiver-utils";
@@ -6070,6 +6727,15 @@ let
         sha1 = "2b12247b933001971addcbfe4e67d20fd395bbf4";
       };
     };
+    "aribts-1.3.5" = {
+      name = "aribts";
+      packageName = "aribts";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aribts/-/aribts-1.3.5.tgz";
+        sha512 = "fvDR4iYpZkbMqMbTfKynPGfpXDhFTxzZWSS7C3c70xQ8ElmFkjwVrg/NLcEA+R3s4Jz6mVrz/1vOLEAI+ycrSQ==";
+      };
+    };
     "arr-diff-1.1.0" = {
       name = "arr-diff";
       packageName = "arr-diff";
@@ -6475,6 +7141,15 @@ let
         sha512 = "mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==";
       };
     };
+    "array.prototype.map-1.0.2" = {
+      name = "array.prototype.map";
+      packageName = "array.prototype.map";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz";
+        sha512 = "Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==";
+      };
+    };
     "arraybuffer.slice-0.0.6" = {
       name = "arraybuffer.slice";
       packageName = "arraybuffer.slice";
@@ -6574,13 +7249,13 @@ let
         sha512 = "p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==";
       };
     };
-    "asn1.js-5.3.0" = {
+    "asn1.js-5.4.1" = {
       name = "asn1.js";
       packageName = "asn1.js";
-      version = "5.3.0";
+      version = "5.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/asn1.js/-/asn1.js-5.3.0.tgz";
-        sha512 = "WHnQJFcOrIWT1RLOkFFBQkFVvyt9BPOOrH+Dp152Zk4R993rSzXUGPmkybIcUFhHE2d/iHH+nCaOWVCDbO8fgA==";
+        url = "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz";
+        sha512 = "+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==";
       };
     };
     "assert-1.5.0" = {
@@ -6646,15 +7321,6 @@ let
         sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
       };
     };
-    "ast-module-types-2.6.0" = {
-      name = "ast-module-types";
-      packageName = "ast-module-types";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ast-module-types/-/ast-module-types-2.6.0.tgz";
-        sha512 = "zXSoVaMrf2R+r+ISid5/9a8SXm1LLdkhHzh6pSRhj9jklzruOOl1hva1YmFT33wAstg/f9ZndJAlq1BSrFLSGA==";
-      };
-    };
     "ast-types-0.13.3" = {
       name = "ast-types";
       packageName = "ast-types";
@@ -6772,15 +7438,6 @@ let
         sha512 = "xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==";
       };
     };
-    "async-2.6.1" = {
-      name = "async";
-      packageName = "async";
-      version = "2.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-2.6.1.tgz";
-        sha512 = "fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==";
-      };
-    };
     "async-2.6.3" = {
       name = "async";
       packageName = "async";
@@ -6826,13 +7483,13 @@ let
         sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==";
       };
     };
-    "async-lock-1.2.2" = {
+    "async-lock-1.2.4" = {
       name = "async-lock";
       packageName = "async-lock";
-      version = "1.2.2";
+      version = "1.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async-lock/-/async-lock-1.2.2.tgz";
-        sha512 = "uczz62z2fMWOFbyo6rG4NlV2SdxugJT6sZA2QcfB1XaSjEiOh8CuOb/TttyMnYQCda6nkWecJe465tGQDPJiKw==";
+        url = "https://registry.npmjs.org/async-lock/-/async-lock-1.2.4.tgz";
+        sha512 = "UBQJC2pbeyGutIfYmErGc9RaJYnpZ1FHaxuKwb0ahvGiiCkPUf3p67Io+YLPmmv3RHY+mF6JEtNW8FlHsraAaA==";
       };
     };
     "async-mutex-0.1.4" = {
@@ -6871,15 +7528,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";
@@ -6997,13 +7645,13 @@ let
         sha512 = "Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==";
       };
     };
-    "autoprefixer-9.7.6" = {
+    "autoprefixer-9.8.6" = {
       name = "autoprefixer";
       packageName = "autoprefixer";
-      version = "9.7.6";
+      version = "9.8.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.6.tgz";
-        sha512 = "F7cYpbN7uVVhACZTeeIeealwdGM6wMtfWARVLTy5xmKtgVdBNJvbDRoCK3YO1orcs7gv/KwYlb3iXwu9Ug9BkQ==";
+        url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz";
+        sha512 = "XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==";
       };
     };
     "available-typed-arrays-1.0.2" = {
@@ -7042,13 +7690,13 @@ let
         sha1 = "00f35b2d27ac91b1f0d3ef2084c98cf1d1f0adc3";
       };
     };
-    "aws-sdk-2.669.0" = {
+    "aws-sdk-2.726.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.669.0";
+      version = "2.726.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.669.0.tgz";
-        sha512 = "kuVcSRpDzvkgmeSmMX6Q32eTOb8UeihhUdavMrvUOP6fzSU19cNWS9HAIkYOi/jrEDK85cCZxXjxqE3JGZIGcw==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.726.0.tgz";
+        sha512 = "QRQ7MaW5dprdr/T3vCTC+J8TeUfpM45yWsBuATPcCV/oO8afFHVySwygvGLY4oJuo5Mf4mJn3+JYTquo6CqiaA==";
       };
     };
     "aws-sign2-0.6.0" = {
@@ -7069,13 +7717,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 = "wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==";
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz";
+        sha512 = "3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==";
       };
     };
     "axios-0.18.1" = {
@@ -7222,6 +7870,15 @@ let
         sha512 = "jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==";
       };
     };
+    "babel-plugin-emotion-9.2.11" = {
+      name = "babel-plugin-emotion";
+      packageName = "babel-plugin-emotion";
+      version = "9.2.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-9.2.11.tgz";
+        sha512 = "dgCImifnOPPSeXod2znAmgc64NhaaOjGEHROR/M+lmStb3841yK1sgaDYAYMnlvWNz8GnpwIPN0VmNpbWYZ+VQ==";
+      };
+    };
     "babel-plugin-istanbul-6.0.0" = {
       name = "babel-plugin-istanbul";
       packageName = "babel-plugin-istanbul";
@@ -7240,6 +7897,15 @@ let
         sha512 = "u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==";
       };
     };
+    "babel-plugin-macros-2.8.0" = {
+      name = "babel-plugin-macros";
+      packageName = "babel-plugin-macros";
+      version = "2.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz";
+        sha512 = "SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==";
+      };
+    };
     "babel-plugin-minify-builtins-0.5.0" = {
       name = "babel-plugin-minify-builtins";
       packageName = "babel-plugin-minify-builtins";
@@ -7339,6 +8005,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";
@@ -7348,6 +8023,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";
@@ -7456,13 +8140,22 @@ let
         sha1 = "be241ca81404030678b748717322b89d0c8fe280";
       };
     };
-    "babel-preset-current-node-syntax-0.1.2" = {
+    "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";
-      version = "0.1.2";
+      version = "0.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz";
-        sha512 = "u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw==";
+        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-25.5.0" = {
@@ -7690,15 +8383,6 @@ let
         sha1 = "02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f";
       };
     };
-    "base64id-1.0.0" = {
-      name = "base64id";
-      packageName = "base64id";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz";
-        sha1 = "47688cb99bb6804f0e06d3e763b1c32e57d8e6b6";
-      };
-    };
     "base64id-2.0.0" = {
       name = "base64id";
       packageName = "base64id";
@@ -7762,6 +8446,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";
@@ -7843,6 +8536,15 @@ let
         sha512 = "2uhEl8FdjSBUyb69qDTgOEeeqDTa+n3yMQzLW0cOzNf1Ow5bwcg3idf+qsWisIKRH8Bk8oC7UXL8irRcPA8ZEQ==";
       };
     };
+    "better-ajv-errors-0.6.7" = {
+      name = "better-ajv-errors";
+      packageName = "better-ajv-errors";
+      version = "0.6.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/better-ajv-errors/-/better-ajv-errors-0.6.7.tgz";
+        sha512 = "PYgt/sCzR4aGpyNy5+ViSQ77ognMnWq7745zM+/flYO4/Yisdtp9wDQW2IKCyVYPUxQt3E/b5GBSwfhd1LPdlg==";
+      };
+    };
     "better-assert-1.0.2" = {
       name = "better-assert";
       packageName = "better-assert";
@@ -7852,24 +8554,6 @@ let
         sha1 = "40866b9e1b9e0b55b481894311e68faffaebc522";
       };
     };
-    "better-curry-1.6.0" = {
-      name = "better-curry";
-      packageName = "better-curry";
-      version = "1.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/better-curry/-/better-curry-1.6.0.tgz";
-        sha1 = "38f716b24c8cee07a262abc41c22c314e20e3869";
-      };
-    };
-    "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";
@@ -7942,13 +8626,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==";
       };
     };
     "binary-search-1.3.6" = {
@@ -7960,22 +8644,13 @@ let
         sha512 = "nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==";
       };
     };
-    "binaryextensions-2.2.0" = {
+    "binaryextensions-2.3.0" = {
       name = "binaryextensions";
       packageName = "binaryextensions";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.2.0.tgz";
-        sha512 = "bHhs98rj/7i/RZpCSJ3uk55pLXOItjIrh2sRQZSM6OoktScX+LxJzvlU+FELp9j3TdcddTmmYArLSGptCTwjuw==";
-      };
-    };
-    "binaryheap-0.0.3" = {
-      name = "binaryheap";
-      packageName = "binaryheap";
-      version = "0.0.3";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/binaryheap/-/binaryheap-0.0.3.tgz";
-        sha1 = "0d6136c84e9f1a5a90c0b97178c3e00df59820d6";
+        url = "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.3.0.tgz";
+        sha512 = "nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==";
       };
     };
     "bindings-1.2.1" = {
@@ -8023,6 +8698,15 @@ let
         sha512 = "wrDhHe7LUkqaytxgbsFXoemzHRv6e8FrVNWWsQCgUfmuVYW6ke44hoGc9VdpjgfIsJ/ejmCFA8wDtDqACNAvyw==";
       };
     };
+    "bittorrent-dht-10.0.0" = {
+      name = "bittorrent-dht";
+      packageName = "bittorrent-dht";
+      version = "10.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-10.0.0.tgz";
+        sha512 = "mrM18HMabvd3n/hQa4PYe942nWvBsJCBQb5PfT9kUJLlspNPGiulZYSCgWs7+XarS7nufYrGEp07f9eKTKIrgw==";
+      };
+    };
     "bittorrent-dht-6.4.2" = {
       name = "bittorrent-dht";
       packageName = "bittorrent-dht";
@@ -8041,22 +8725,13 @@ let
         sha512 = "fvb6M58Ceiv/S94nu6zeaiMoJvUYOeIqRbgaClm+kJTzCAqJPtAR/31pXNYB5iEReOoKqQB5zY33gY0W6ZRWQQ==";
       };
     };
-    "bittorrent-dht-9.0.3" = {
-      name = "bittorrent-dht";
-      packageName = "bittorrent-dht";
-      version = "9.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-9.0.3.tgz";
-        sha512 = "6FISjApL62THEMyptDm0kPTAnInBn8Sft3dK/JZcCI07LRIpIP+3Z6gle6xJUhyRVs6K5HmXAtaRatFsOEySOg==";
-      };
-    };
-    "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" = {
@@ -8077,13 +8752,13 @@ let
         sha1 = "ffd2eabc141d36ed5c1817df7e992f91fd7fc65c";
       };
     };
-    "bittorrent-tracker-9.14.5" = {
+    "bittorrent-tracker-9.15.0" = {
       name = "bittorrent-tracker";
       packageName = "bittorrent-tracker";
-      version = "9.14.5";
+      version = "9.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bittorrent-tracker/-/bittorrent-tracker-9.14.5.tgz";
-        sha512 = "Y1ng5r2qGCgDldjd9eYL8Mv1DjCo6eljqC+T6IMcwmYx0h20KNPKTxJkyNT5gaeJkAhM+p+jmhlV7/ty535Txg==";
+        url = "https://registry.npmjs.org/bittorrent-tracker/-/bittorrent-tracker-9.15.0.tgz";
+        sha512 = "5LhLQeGxdVFumJTbveJS16Rc+Vzh/nbC6o80UMj6ZRvSkiVkk+4L782OMYI0VG1JTfUxiRFP4f+CZBFyuclLBg==";
       };
     };
     "bl-0.8.2" = {
@@ -8230,15 +8905,6 @@ let
         sha1 = "2f7b4ec80216328a9fddebdf69c8d4942feff7d8";
       };
     };
-    "bluebird-2.9.9" = {
-      name = "bluebird";
-      packageName = "bluebird";
-      version = "2.9.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bluebird/-/bluebird-2.9.9.tgz";
-        sha1 = "61a26904d43d7f6b19dff7ed917dbc92452ad6d3";
-      };
-    };
     "bluebird-3.4.7" = {
       name = "bluebird";
       packageName = "bluebird";
@@ -8257,31 +8923,31 @@ let
         sha512 = "XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==";
       };
     };
-    "blueimp-md5-2.13.0" = {
+    "blueimp-md5-2.16.0" = {
       name = "blueimp-md5";
       packageName = "blueimp-md5";
-      version = "2.13.0";
+      version = "2.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.13.0.tgz";
-        sha512 = "lmp0m647R5e77ORduxLW5mISIDcvgJZa52vMBv5uVI3UmSWTQjkJsZVBfaFqQPw/QFogJwvY6e3Gl9nP+Loe+Q==";
+        url = "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.16.0.tgz";
+        sha512 = "j4nzWIqEFpLSbdhUApHRGDwfXbV8ALhqOn+FY5L6XBdKPAXU9BpGgFSbDsgqogfqPPR9R2WooseWCsfhfEC6uQ==";
       };
     };
-    "bn.js-4.11.8" = {
+    "bn.js-4.11.9" = {
       name = "bn.js";
       packageName = "bn.js";
-      version = "4.11.8";
+      version = "4.11.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz";
-        sha512 = "ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==";
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz";
+        sha512 = "E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==";
       };
     };
-    "bn.js-5.1.1" = {
+    "bn.js-5.1.2" = {
       name = "bn.js";
       packageName = "bn.js";
-      version = "5.1.1";
+      version = "5.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bn.js/-/bn.js-5.1.1.tgz";
-        sha512 = "IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA==";
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz";
+        sha512 = "40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==";
       };
     };
     "bncode-0.2.3" = {
@@ -8383,15 +9049,6 @@ let
         sha1 = "b4a0a5a839a406454af0fe05a8b91a7a766a54e2";
       };
     };
-    "bottleneck-1.5.3" = {
-      name = "bottleneck";
-      packageName = "bottleneck";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bottleneck/-/bottleneck-1.5.3.tgz";
-        sha1 = "55fa64920d9670087d44150404525d59f9511c20";
-      };
-    };
     "boundary-1.0.1" = {
       name = "boundary";
       packageName = "boundary";
@@ -8482,6 +9139,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";
@@ -8590,13 +9256,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" = {
@@ -8608,13 +9274,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" = {
@@ -8680,13 +9346,13 @@ let
         sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
       };
     };
-    "browserify-sign-4.0.4" = {
+    "browserify-sign-4.2.1" = {
       name = "browserify-sign";
       packageName = "browserify-sign";
-      version = "4.0.4";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz";
-        sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
+        url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz";
+        sha512 = "/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==";
       };
     };
     "browserify-zlib-0.1.4" = {
@@ -8716,13 +9382,13 @@ let
         sha512 = "yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==";
       };
     };
-    "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==";
       };
     };
     "bser-2.1.1" = {
@@ -8770,15 +9436,6 @@ let
         sha512 = "HniEmRONcLP8qKJEw/DXZGwyHfRedYX1HGqhNZ5N2zhn+xIrAjhptkAbXRBGV0GhPb+YTbzObGn3GlAHaBiVnQ==";
       };
     };
-    "buffer-4.9.1" = {
-      name = "buffer";
-      packageName = "buffer";
-      version = "4.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz";
-        sha1 = "6d1bb601b07a4efced97094132093027c95bc298";
-      };
-    };
     "buffer-4.9.2" = {
       name = "buffer";
       packageName = "buffer";
@@ -8932,15 +9589,6 @@ let
         sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
       };
     };
-    "buffercursor-0.0.12" = {
-      name = "buffercursor";
-      packageName = "buffercursor";
-      version = "0.0.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/buffercursor/-/buffercursor-0.0.12.tgz";
-        sha1 = "78a9a7f4343ae7d820a8999acc80de591e25a779";
-      };
-    };
     "buffers-0.1.1" = {
       name = "buffers";
       packageName = "buffers";
@@ -8959,6 +9607,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";
@@ -8995,15 +9652,6 @@ let
         sha512 = "jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ==";
       };
     };
-    "build-purescript-0.4.1" = {
-      name = "build-purescript";
-      packageName = "build-purescript";
-      version = "0.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/build-purescript/-/build-purescript-0.4.1.tgz";
-        sha512 = "wHoafIs4c1yDJspybVilXRQZUauaxdGPkZU0HdJdu968uei7O4yS/cp/h1O4zIMVDu9MN6/sYDCLnhQA3iLAYA==";
-      };
-    };
     "builtin-modules-1.1.1" = {
       name = "builtin-modules";
       packageName = "builtin-modules";
@@ -9067,6 +9715,15 @@ let
         sha1 = "f150f0f6748abdd72aeae84f04403be2ef113797";
       };
     };
+    "bunyan-1.8.14" = {
+      name = "bunyan";
+      packageName = "bunyan";
+      version = "1.8.14";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bunyan/-/bunyan-1.8.14.tgz";
+        sha512 = "LlahJUxXzZLuw/hetUQJmRgZ1LF6+cr5TPpRj6jf327AsiIq2jhYEH4oqUUkVKTor+9w2BT3oxVwhzE5lw9tcg==";
+      };
+    };
     "bunyan-syslog-udp-0.2.0" = {
       name = "bunyan-syslog-udp";
       packageName = "bunyan-syslog-udp";
@@ -9202,13 +9859,13 @@ let
         sha512 = "a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==";
       };
     };
-    "cacache-15.0.3" = {
+    "cacache-15.0.5" = {
       name = "cacache";
       packageName = "cacache";
-      version = "15.0.3";
+      version = "15.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cacache/-/cacache-15.0.3.tgz";
-        sha512 = "bc3jKYjqv7k4pWh7I/ixIjfcjPul4V4jme/WbjvwGS5LzoPL/GzXr4C5EgPNLO/QEZl9Oi61iGitYEdwcrwLCQ==";
+        url = "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz";
+        sha512 = "lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==";
       };
     };
     "cache-base-1.0.1" = {
@@ -9238,6 +9895,15 @@ let
         sha512 = "EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==";
       };
     };
+    "cacheable-lookup-5.0.3" = {
+      name = "cacheable-lookup";
+      packageName = "cacheable-lookup";
+      version = "5.0.3";
+      src = fetchurl {
+        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" = {
       name = "cacheable-request";
       packageName = "cacheable-request";
@@ -9382,6 +10048,15 @@ let
         sha1 = "ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73";
       };
     };
+    "camel-case-4.1.1" = {
+      name = "camel-case";
+      packageName = "camel-case";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz";
+        sha512 = "7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==";
+      };
+    };
     "camelcase-1.2.1" = {
       name = "camelcase";
       packageName = "camelcase";
@@ -9427,6 +10102,15 @@ let
         sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
       };
     };
+    "camelcase-6.0.0" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz";
+        sha512 = "8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==";
+      };
+    };
     "camelcase-keys-2.1.0" = {
       name = "camelcase-keys";
       packageName = "camelcase-keys";
@@ -9454,22 +10138,13 @@ let
         sha512 = "YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==";
       };
     };
-    "cancelable-pipeline-1.0.0" = {
-      name = "cancelable-pipeline";
-      packageName = "cancelable-pipeline";
+    "camelize-1.0.0" = {
+      name = "camelize";
+      packageName = "camelize";
       version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cancelable-pipeline/-/cancelable-pipeline-1.0.0.tgz";
-        sha512 = "vsimf+py0scGFJyZXsawF7h2ZJ6A1p5FXjieXjQ36kZyigWKYTDW3VjiYPTj+tFqdzQzYz+XV8J24Dtc88pmGQ==";
-      };
-    };
-    "cancelable-pump-0.4.0" = {
-      name = "cancelable-pump";
-      packageName = "cancelable-pump";
-      version = "0.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cancelable-pump/-/cancelable-pump-0.4.0.tgz";
-        sha512 = "7Yvp8ADC9exD0Kdq/Q35UD5wOiuXTTLp159gFHC+uMQvjRMllrsM6EUKnozmIe43yesLBiH/ni0KD69k07yzZQ==";
+        url = "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz";
+        sha1 = "164a5483e630fa4321e5af07020e531831b2609b";
       };
     };
     "caniuse-api-3.0.0" = {
@@ -9481,13 +10156,22 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001050" = {
+    "caniuse-lite-1.0.30001111" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001050";
+      version = "1.0.30001111";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001111.tgz";
+        sha512 = "xnDje2wchd/8mlJu8sXvWxOGvMgv+uT3iZ3bkIAynKOzToCssWCmkz/ZIkQBs/2pUB4uwnJKVORWQ31UkbVjOg==";
+      };
+    };
+    "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.30001050.tgz";
-        sha512 = "OvGZqalCwmapci76ISq5q4kuAskb1ebqF3FEQBv1LE1kWht0pojlDDqzFlmk5jgYkuZN7MNZ1n+ULwe/7MaDNQ==";
+        url = "https://registry.npmjs.org/capital-case/-/capital-case-1.0.3.tgz";
+        sha512 = "OlUSJpUr7SY0uZFOxcwnDOU7/MpHlKTZx2mqnDYQFrDudXLFm0JJ9wr/l4csB+rh2Ug0OPuoSO53PqiZBqno9A==";
       };
     };
     "capture-exit-2.0.0" = {
@@ -9517,15 +10201,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";
@@ -9616,6 +10291,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";
@@ -9652,15 +10336,6 @@ let
         sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
       };
     };
-    "chalk-2.3.1" = {
-      name = "chalk";
-      packageName = "chalk";
-      version = "2.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz";
-        sha512 = "QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==";
-      };
-    };
     "chalk-2.4.1" = {
       name = "chalk";
       packageName = "chalk";
@@ -9697,6 +10372,15 @@ let
         sha512 = "N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==";
       };
     };
+    "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==";
+      };
+    };
     "chance-1.0.18" = {
       name = "chance";
       packageName = "chance";
@@ -9706,13 +10390,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" = {
@@ -9868,6 +10552,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";
@@ -9913,15 +10606,6 @@ let
         sha512 = "Y5uI7Iq/Az6HgJEL6pdw7THVd7jbVOTPwsmcPOBjQL8e3N+pz872kzK5QxYGEy21iRys+iHWV0UZQXDFJo1hyA==";
       };
     };
-    "chokidar-1.5.2" = {
-      name = "chokidar";
-      packageName = "chokidar";
-      version = "1.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/chokidar/-/chokidar-1.5.2.tgz";
-        sha1 = "293e728640cc93dd8277424334b3c6d4ad3a348a";
-      };
-    };
     "chokidar-1.7.0" = {
       name = "chokidar";
       packageName = "chokidar";
@@ -9940,13 +10624,22 @@ let
         sha512 = "ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==";
       };
     };
-    "chokidar-3.3.0" = {
+    "chokidar-3.0.2" = {
       name = "chokidar";
       packageName = "chokidar";
-      version = "3.3.0";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz";
-        sha512 = "dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==";
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.0.2.tgz";
+        sha512 = "c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA==";
+      };
+    };
+    "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" = {
@@ -9958,6 +10651,15 @@ let
         sha512 = "aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==";
       };
     };
+    "chokidar-3.4.1" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "3.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz";
+        sha512 = "TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==";
+      };
+    };
     "chownr-0.0.2" = {
       name = "chownr";
       packageName = "chownr";
@@ -9994,13 +10696,13 @@ let
         sha512 = "uiRdh4ZZy+UTPSrAdp8hqEdVb1EllLtTHOt5TMaOjJUvi+O54/83Fc5K2ld1P+TJX+dw5B+8/sCgzI6eaur/lg==";
       };
     };
-    "chrome-dgram-3.0.4" = {
+    "chrome-dgram-3.0.5" = {
       name = "chrome-dgram";
       packageName = "chrome-dgram";
-      version = "3.0.4";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chrome-dgram/-/chrome-dgram-3.0.4.tgz";
-        sha512 = "G8rOANSvSRC4hGny/K/ec1gXtNuZGzryFeoev49u0J4g/qws7H25vMKQlbD9izuedFVHwXFTdKQG62Tf/7Cmwg==";
+        url = "https://registry.npmjs.org/chrome-dgram/-/chrome-dgram-3.0.5.tgz";
+        sha512 = "RcCR5Kpn+F7VGmtL3ex78ltB+cuuSTZdGBa4j3fQwUqz/90uOKd5t+WmnJp+QNv017oaHzn5GoMv1mCoRTmehQ==";
       };
     };
     "chrome-dns-1.0.1" = {
@@ -10012,22 +10714,22 @@ let
         sha512 = "HqsYJgIc8ljJJOqOzLphjAs79EUuWSX3nzZi2LNkzlw3GIzAeZbaSektC8iT/tKvLqZq8yl1GJu5o6doA4TRbg==";
       };
     };
-    "chrome-launcher-0.13.1" = {
+    "chrome-launcher-0.13.4" = {
       name = "chrome-launcher";
       packageName = "chrome-launcher";
-      version = "0.13.1";
+      version = "0.13.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.1.tgz";
-        sha512 = "q8UiCNAknw6kCUvCVBTAEw1BwT0vaxabCrSjN3B/NWohp12YBD9+DalymYElSoKRD4KpVSu4CCl0us4v/J81Sg==";
+        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.3" = {
+    "chrome-net-3.3.4" = {
       name = "chrome-net";
       packageName = "chrome-net";
-      version = "3.3.3";
+      version = "3.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chrome-net/-/chrome-net-3.3.3.tgz";
-        sha512 = "11jL8+Ogna8M5TEdyalE8IG6cpaFEU3YcaxAj3YjZKjRM/PeT70pZbrUY+xoGwqiEJZwJE4Td2CvGxUvS9ytKQ==";
+        url = "https://registry.npmjs.org/chrome-net/-/chrome-net-3.3.4.tgz";
+        sha512 = "Jzy2EnzmE+ligqIZUsmWnck9RBXLuUy6CaKyuNMtowFG3ZvLt8d+WBJCTPEludV0DHpIKjAOlwjFmTaEdfdWCw==";
       };
     };
     "chrome-remote-interface-0.27.2" = {
@@ -10084,13 +10786,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" = {
@@ -10165,6 +10867,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";
@@ -10210,22 +10930,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" = {
@@ -10336,13 +11056,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" = {
@@ -10399,13 +11119,13 @@ let
         sha512 = "/1owvF0SZ5Gn54cgrikJ0QskgTzeg30HGjkmjFoaHDJzAqFpuX1DBpFR8aLvsE1J5s9MgeYRENQK4BFwOag5VA==";
       };
     };
-    "cli-ux-5.4.5" = {
+    "cli-ux-5.4.9" = {
       name = "cli-ux";
       packageName = "cli-ux";
-      version = "5.4.5";
+      version = "5.4.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-ux/-/cli-ux-5.4.5.tgz";
-        sha512 = "5A6FuU0wPUlfCWUjtizUvNIbXElp6jN9QUJsDibs6F9cVX1kTgaMR3m6KT0R3iriEXpMrmPKV6yYS8XICNuQ6Q==";
+        url = "https://registry.npmjs.org/cli-ux/-/cli-ux-5.4.9.tgz";
+        sha512 = "4yCKJbFQqNQxf1v0E5T5aBJLt3SbW6dXc/R7zHp4ycdPMg9fAy5f2vhPsWgXEGCMQg+fgN0Sp7EYcZ1XGkFyUA==";
       };
     };
     "cli-width-1.1.1" = {
@@ -10426,6 +11146,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";
@@ -10453,6 +11182,15 @@ let
         sha1 = "a211e09c6a3de3ba1af27d049d301250d18812bc";
       };
     };
+    "clipanion-2.4.4" = {
+      name = "clipanion";
+      packageName = "clipanion";
+      version = "2.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clipanion/-/clipanion-2.4.4.tgz";
+        sha512 = "KjyCBz8xplftHjIK/nOqq/9b3hPlXbAAo/AxoITrO4yySpQ6a9QSJDAfOx9PfcRUHteeqbdNxZKSPfeFqQ7plg==";
+      };
+    };
     "clipboard-2.0.6" = {
       name = "clipboard";
       packageName = "clipboard";
@@ -10480,13 +11218,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" = {
@@ -10678,6 +11416,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";
@@ -10777,6 +11524,15 @@ let
         sha512 = "wwn3ca7iMKuH/a6NAV7HL95xkEK5DzrKJ1dWGKBs+HZHFLhzXVYhjA0RL8x8Xf62TBEQGhH1wlKtBxkluGd1oQ==";
       };
     };
+    "code-error-fragment-0.0.230" = {
+      name = "code-error-fragment";
+      packageName = "code-error-fragment";
+      version = "0.0.230";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/code-error-fragment/-/code-error-fragment-0.0.230.tgz";
+        sha512 = "cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==";
+      };
+    };
     "code-point-at-1.1.0" = {
       name = "code-point-at";
       packageName = "code-point-at";
@@ -10930,6 +11686,15 @@ let
         sha512 = "qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==";
       };
     };
+    "colorette-1.2.1" = {
+      name = "colorette";
+      packageName = "colorette";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz";
+        sha512 = "puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==";
+      };
+    };
     "colornames-1.1.1" = {
       name = "colornames";
       packageName = "colornames";
@@ -10966,15 +11731,6 @@ let
         sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b";
       };
     };
-    "colors-1.3.2" = {
-      name = "colors";
-      packageName = "colors";
-      version = "1.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/colors/-/colors-1.3.2.tgz";
-        sha512 = "rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ==";
-      };
-    };
     "colors-1.3.3" = {
       name = "colors";
       packageName = "colors";
@@ -11038,15 +11794,6 @@ let
         sha1 = "a58d0df042c186fcf822a8e8015f5450d2d79a8b";
       };
     };
-    "combined-stream-0.0.7" = {
-      name = "combined-stream";
-      packageName = "combined-stream";
-      version = "0.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz";
-        sha1 = "0137e657baa5a7541c57ac37ac5fc07d73b4dc1f";
-      };
-    };
     "combined-stream-1.0.6" = {
       name = "combined-stream";
       packageName = "combined-stream";
@@ -11236,6 +11983,15 @@ 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==";
+      };
+    };
     "commandpost-1.4.0" = {
       name = "commandpost";
       packageName = "commandpost";
@@ -11299,13 +12055,13 @@ let
         sha512 = "Ke1ejo/RZ+Hzku4gcW34uPMOR4Cpq87MAotELgV9mwiAzDN726cu+eWo0zWg1vRIfyf6yK5bW9uIW+c/SksQ5w==";
       };
     };
-    "compare-func-1.3.2" = {
+    "compare-func-2.0.0" = {
       name = "compare-func";
       packageName = "compare-func";
-      version = "1.3.2";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz";
-        sha1 = "99dd0ba457e1f9bc722b12c08ec33eeab31fa648";
+        url = "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz";
+        sha512 = "zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==";
       };
     };
     "compare-version-0.1.2" = {
@@ -11317,15 +12073,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";
@@ -11389,6 +12136,15 @@ let
         sha512 = "eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==";
       };
     };
+    "compress-commons-3.0.0" = {
+      name = "compress-commons";
+      packageName = "compress-commons";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/compress-commons/-/compress-commons-3.0.0.tgz";
+        sha512 = "FyDqr8TKX5/X0qo+aVfaZ+PVmNJHJeckFBlq8jZGSJOgnynhfifoyl24qaqdUdDIBe0EVTHByN6NAkqYvE/2Xg==";
+      };
+    };
     "compressible-2.0.18" = {
       name = "compressible";
       packageName = "compressible";
@@ -11623,13 +12379,13 @@ let
         sha1 = "5a25047bc76f73072667c8cb52c989888f494c63";
       };
     };
-    "constant-case-2.0.0" = {
+    "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" = {
@@ -11677,15 +12433,6 @@ let
         sha1 = "6874f1e935fca99d048caeaaad9a0aeb020bcce0";
       };
     };
-    "content-disposition-0.5.0" = {
-      name = "content-disposition";
-      packageName = "content-disposition";
-      version = "0.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz";
-        sha1 = "4284fe6ae0630874639e44e80a418c2934135e9e";
-      };
-    };
     "content-disposition-0.5.2" = {
       name = "content-disposition";
       packageName = "content-disposition";
@@ -11786,13 +12533,13 @@ let
         sha1 = "3243397ae93a71d655b3026834a51590b958b9e8";
       };
     };
-    "conventional-changelog-angular-5.0.6" = {
+    "conventional-changelog-angular-5.0.11" = {
       name = "conventional-changelog-angular";
       packageName = "conventional-changelog-angular";
-      version = "5.0.6";
+      version = "5.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.6.tgz";
-        sha512 = "QDEmLa+7qdhVIv8sFZfVxU1VSyVvnXPsxq8Vam49mKUcO1Z8VTLEJk9uI21uiJUsnmm0I4Hrsdc9TgkOQo9WSA==";
+        url = "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.11.tgz";
+        sha512 = "nSLypht/1yEflhuTogC03i7DX7sOrXGsRn14g131Potqi6cbGbGEE9PSDEHKldabB6N76HiSyw9Ph+kLmC04Qw==";
       };
     };
     "conventional-changelog-core-3.2.3" = {
@@ -11804,40 +12551,40 @@ let
         sha512 = "LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ==";
       };
     };
-    "conventional-changelog-preset-loader-2.3.0" = {
+    "conventional-changelog-preset-loader-2.3.4" = {
       name = "conventional-changelog-preset-loader";
       packageName = "conventional-changelog-preset-loader";
-      version = "2.3.0";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.0.tgz";
-        sha512 = "/rHb32J2EJnEXeK4NpDgMaAVTFZS3o1ExmjKMtYVgIC4MQn0vkNSbYpdGRotkfGGRWiqk3Ri3FBkiZGbAfIfOQ==";
+        url = "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz";
+        sha512 = "GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==";
       };
     };
-    "conventional-changelog-writer-4.0.11" = {
+    "conventional-changelog-writer-4.0.17" = {
       name = "conventional-changelog-writer";
       packageName = "conventional-changelog-writer";
-      version = "4.0.11";
+      version = "4.0.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.11.tgz";
-        sha512 = "g81GQOR392I+57Cw3IyP1f+f42ME6aEkbR+L7v1FBBWolB0xkjKTeCWVguzRrp6UiT1O6gBpJbEy2eq7AnV1rw==";
+        url = "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.17.tgz";
+        sha512 = "IKQuK3bib/n032KWaSb8YlBFds+aLmzENtnKtxJy3+HqDq5kohu3g/UdNbIHeJWygfnEbZjnCKFxAW0y7ArZAw==";
       };
     };
-    "conventional-commits-filter-2.0.2" = {
+    "conventional-commits-filter-2.0.6" = {
       name = "conventional-commits-filter";
       packageName = "conventional-commits-filter";
-      version = "2.0.2";
+      version = "2.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz";
-        sha512 = "WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ==";
+        url = "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.6.tgz";
+        sha512 = "4g+sw8+KA50/Qwzfr0hL5k5NWxqtrOVw4DDk3/h6L85a9Gz0/Eqp3oP+CWCNfesBvZZZEFHF7OTEbRe+yYSyKw==";
       };
     };
-    "conventional-commits-parser-3.0.8" = {
+    "conventional-commits-parser-3.1.0" = {
       name = "conventional-commits-parser";
       packageName = "conventional-commits-parser";
-      version = "3.0.8";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.8.tgz";
-        sha512 = "YcBSGkZbYp7d+Cr3NWUeXbPDFUN6g3SaSIzOybi8bjHL5IJ5225OSCxJJ4LgziyEJ7AaJtE9L2/EU6H7Nt/DDQ==";
+        url = "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.1.0.tgz";
+        sha512 = "RSo5S0WIwXZiRxUGTPuYFbqvrR4vpJ1BDdTlthFgvHt5kEdnd1+pdvwWphWn57/oIl4V72NMmOocFqqJ8mFFhA==";
       };
     };
     "conventional-recommended-bump-5.0.1" = {
@@ -11876,13 +12623,13 @@ let
         sha1 = "f67a4938c5233443564250479c67014bac878499";
       };
     };
-    "convict-5.2.0" = {
+    "convict-6.0.0" = {
       name = "convict";
       packageName = "convict";
-      version = "5.2.0";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/convict/-/convict-5.2.0.tgz";
-        sha512 = "C3cdUwo47cCikZNzu5Vv8AL0MuXVVeg9t/Gyr9qyK5ZpCjOkMPmJ85KUF3CowNeSfj4UtztHxS+hoO9wGRh6kg==";
+        url = "https://registry.npmjs.org/convict/-/convict-6.0.0.tgz";
+        sha512 = "osfPkv5yjVoZqrTWBXuh/ABGpFoaJplbt0WXr0CodR4CSWt8UnzY4PSUyRz/+5BX5YUtWcToG29Kr0B6xhdIMg==";
       };
     };
     "cookie-0.0.4" = {
@@ -11903,15 +12650,6 @@ let
         sha1 = "90eb469ddce905c866de687efc43131d8801f9d0";
       };
     };
-    "cookie-0.1.2" = {
-      name = "cookie";
-      packageName = "cookie";
-      version = "0.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz";
-        sha1 = "72fec3d24e48a3432073d90c12642005061004b1";
-      };
-    };
     "cookie-0.3.1" = {
       name = "cookie";
       packageName = "cookie";
@@ -11930,6 +12668,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";
@@ -11957,15 +12704,6 @@ let
         sha1 = "44e072148af01e6e8e24afbf12690d68ae698ecb";
       };
     };
-    "cookie-signature-1.0.5" = {
-      name = "cookie-signature";
-      packageName = "cookie-signature";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.5.tgz";
-        sha1 = "a122e3f1503eca0f5355795b0711bb2368d450f9";
-      };
-    };
     "cookie-signature-1.0.6" = {
       name = "cookie-signature";
       packageName = "cookie-signature";
@@ -11975,15 +12713,6 @@ let
         sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
       };
     };
-    "cookiejar-2.0.1" = {
-      name = "cookiejar";
-      packageName = "cookiejar";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cookiejar/-/cookiejar-2.0.1.tgz";
-        sha1 = "3d12752f6adf68a892f332433492bd5812bb668f";
-      };
-    };
     "cookiejar-2.0.6" = {
       name = "cookiejar";
       packageName = "cookiejar";
@@ -12038,67 +12767,58 @@ let
         sha512 = "7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==";
       };
     };
-    "cordova-app-hello-world-4.0.0" = {
+    "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";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cordova-serve/-/cordova-serve-3.0.0.tgz";
-        sha512 = "h479g/5a0PXn//yiFuMrD5MDEbB+mtihNkWcE6uD/aCh/6z0FRZ9sWH3NfZbHDB+Bp1yGLYsjbH8LZBL8KOQ0w==";
-      };
-    };
-    "core-js-2.3.0" = {
-      name = "core-js";
-      packageName = "core-js";
-      version = "2.3.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz";
-        sha1 = "fab83fbb0b2d8dc85fa636c4b9d34c75420c6d65";
+        url = "https://registry.npmjs.org/cordova-serve/-/cordova-serve-4.0.0.tgz";
+        sha512 = "gzTLeBQzNP8aM/nG0/7sSfICfNazUgwvEU2kiDaybbYXmxwioo2v96h4tzE0XOyA64beyYwAyRYEEqWA4AMZjw==";
       };
     };
     "core-js-2.6.11" = {
@@ -12110,15 +12830,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";
@@ -12137,15 +12848,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";
@@ -12155,13 +12857,13 @@ let
         sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
       };
     };
-    "core_d-1.0.1" = {
+    "core_d-2.0.0" = {
       name = "core_d";
       packageName = "core_d";
-      version = "1.0.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core_d/-/core_d-1.0.1.tgz";
-        sha512 = "Uge+GU4vDha5IEf0PxX/NdBZBMAE69t93OKasRfWlr+tylp5DDhRQSb7QDDFw/EySwgdS0HV9bsN9iFk6SBDHg==";
+        url = "https://registry.npmjs.org/core_d/-/core_d-2.0.0.tgz";
+        sha512 = "oIb3QJj/ayYNbg2WYTYM1h3d8XvKF/RBUFhNeVVOfXDskeQC43fypCwnvdGqgTK7rbJ/a8tvxeErCr8vJhJ4vA==";
       };
     };
     "cors-2.8.5" = {
@@ -12209,6 +12911,15 @@ let
         sha512 = "H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==";
       };
     };
+    "cosmiconfig-6.0.0" = {
+      name = "cosmiconfig";
+      packageName = "cosmiconfig";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz";
+        sha512 = "xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==";
+      };
+    };
     "couch-login-0.1.20" = {
       name = "couch-login";
       packageName = "couch-login";
@@ -12254,15 +12965,6 @@ let
         sha1 = "f4486b9bf0a12df83c3fca14e31e030fdabd9454";
       };
     };
-    "crc-3.2.1" = {
-      name = "crc";
-      packageName = "crc";
-      version = "3.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/crc/-/crc-3.2.1.tgz";
-        sha1 = "5d9c8fb77a245cd5eca291e5d2d005334bab0082";
-      };
-    };
     "crc-3.8.0" = {
       name = "crc";
       packageName = "crc";
@@ -12299,13 +13001,22 @@ 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-emotion-9.2.12" = {
+      name = "create-emotion";
+      packageName = "create-emotion";
+      version = "9.2.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/create-emotion/-/create-emotion-9.2.12.tgz";
+        sha512 = "P57uOF9NL2y98Xrbl2OuiDQUZ30GVmASsv5fbsjF4Hlraip2kyAvMm+2PoYUvFFw03Fhgtxk3RqZSm2/qHL9hA==";
       };
     };
     "create-error-class-3.0.2" = {
@@ -12335,22 +13046,13 @@ let
         sha512 = "MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==";
       };
     };
-    "create-torrent-4.4.1" = {
+    "create-torrent-4.4.2" = {
       name = "create-torrent";
       packageName = "create-torrent";
-      version = "4.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/create-torrent/-/create-torrent-4.4.1.tgz";
-        sha512 = "LuoXnCRMKEo3KR3jEbCRpP3Nu2TUhLTlb/axP9+rl+ouhBpxTaHaTTN1bdUS2x2VK3wWyCBl1OZHyHhlRBntWg==";
-      };
-    };
-    "creato-1.1.2" = {
-      name = "creato";
-      packageName = "creato";
-      version = "1.1.2";
+      version = "4.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/creato/-/creato-1.1.2.tgz";
-        sha512 = "BSna+qXnoIhNugGcUz9wnC6UtyRRKRm3QMQ/42BDw97/8eW0Y6b5Z5ecyaDbZdWMW6ipvvCbuj7H9NEkd1C0jA==";
+        url = "https://registry.npmjs.org/create-torrent/-/create-torrent-4.4.2.tgz";
+        sha512 = "FRxgYty6AF00xrYKMtpQ14ZJlst+i7mmUhcN4do7TTjktEntqAzfriaOIV6xk27t9GLTtraFnaTxsGgnyFA2eA==";
       };
     };
     "cron-1.7.2" = {
@@ -12380,13 +13082,22 @@ let
         sha512 = "rV6M9ldNgmwP7bx5u6rZsTbYidzwvrwIYZnT08hSGLcQCcggofgFW+sNe7IhA1SRauPS0QuLbbX+wdNtpqE5CQ==";
       };
     };
-    "cross-fetch-2.2.2" = {
+    "cross-fetch-3.0.4" = {
       name = "cross-fetch";
       packageName = "cross-fetch";
-      version = "2.2.2";
+      version = "3.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.2.tgz";
-        sha1 = "a47ff4f7fc712daba8f6a695a11c948440d45723";
+        url = "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.4.tgz";
+        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" = {
@@ -12425,13 +13136,13 @@ let
         sha512 = "u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==";
       };
     };
-    "cross-spawn-7.0.2" = {
+    "cross-spawn-7.0.3" = {
       name = "cross-spawn";
       packageName = "cross-spawn";
-      version = "7.0.2";
+      version = "7.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz";
-        sha512 = "PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==";
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz";
+        sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
       };
     };
     "cross-spawn-async-2.2.5" = {
@@ -12524,6 +13235,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";
@@ -12596,13 +13316,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.2.tgz";
-        sha512 = "yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==";
+        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-to-react-native/-/css-to-react-native-3.0.0.tgz";
+        sha512 = "Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==";
       };
     };
     "css-tree-1.0.0-alpha.37" = {
@@ -12632,13 +13361,13 @@ let
         sha512 = "a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==";
       };
     };
-    "css-what-3.2.1" = {
+    "css-what-3.3.0" = {
       name = "css-what";
       packageName = "css-what";
-      version = "3.2.1";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz";
-        sha512 = "WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==";
+        url = "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz";
+        sha512 = "pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==";
       };
     };
     "cssauron-1.4.0" = {
@@ -12659,13 +13388,13 @@ let
         sha512 = "/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==";
       };
     };
-    "csslint-1.0.5" = {
-      name = "csslint";
-      packageName = "csslint";
-      version = "1.0.5";
+    "cssfilter-0.0.10" = {
+      name = "cssfilter";
+      packageName = "cssfilter";
+      version = "0.0.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/csslint/-/csslint-1.0.5.tgz";
-        sha1 = "19cc3eda322160fd3f7232af1cb2a360e898a2e9";
+        url = "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz";
+        sha1 = "c6d2672632a2e5c83e013e6864a42ce8defd20ae";
       };
     };
     "cssnano-4.1.10" = {
@@ -12776,13 +13505,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" = {
@@ -12848,24 +13577,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";
-      };
-    };
-    "cucumber-html-reporter-3.0.4" = {
-      name = "cucumber-html-reporter";
-      packageName = "cucumber-html-reporter";
-      version = "3.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cucumber-html-reporter/-/cucumber-html-reporter-3.0.4.tgz";
-        sha512 = "uit68jymdI8Z6m+kJ5YnJPeHf5IdYXt2j52l5xLwgpcLBQRhCvr1peV9UODaCN5nLnRN9nqh1qaw4iNp1rTpvQ==";
-      };
-    };
     "currently-unhandled-0.4.1" = {
       name = "currently-unhandled";
       packageName = "currently-unhandled";
@@ -12875,13 +13586,13 @@ let
         sha1 = "988df33feab191ef799a61369dd76c17adf957ea";
       };
     };
-    "cuss-1.19.0" = {
+    "cuss-1.20.0" = {
       name = "cuss";
       packageName = "cuss";
-      version = "1.19.0";
+      version = "1.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cuss/-/cuss-1.19.0.tgz";
-        sha512 = "RGVhyJ5/9wfTOsVApjBtAvI8zV8+DZvJ5K72TLfMt+KqtmwlqsYkOVVdtuZkvvIMpx+Ctv4KsIKlhkXWoT1fiQ==";
+        url = "https://registry.npmjs.org/cuss/-/cuss-1.20.0.tgz";
+        sha512 = "ca6Z5roeWhHgXeDLn0g3SLrG68Cb9922MvHme7Q/dz4XfwuxcBLalW4RqFUyZOiczzAqKc2XVtR2Kof+sIfinQ==";
       };
     };
     "custom-error-instance-2.1.1" = {
@@ -13163,6 +13874,15 @@ let
         sha512 = "bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==";
       };
     };
+    "date-format-3.0.0" = {
+      name = "date-format";
+      packageName = "date-format";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz";
+        sha512 = "eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==";
+      };
+    };
     "date-now-0.1.4" = {
       name = "date-now";
       packageName = "date-now";
@@ -13190,13 +13910,13 @@ let
         sha512 = "jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==";
       };
     };
-    "dayjs-1.8.26" = {
+    "dayjs-1.8.32" = {
       name = "dayjs";
       packageName = "dayjs";
-      version = "1.8.26";
+      version = "1.8.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.8.26.tgz";
-        sha512 = "KqtAuIfdNfZR5sJY1Dixr2Is4ZvcCqhb0dZpCOt5dGEFiMzoIbjkTSzUb4QKTCsP+WNpGwUjAFIZrnZvUxxkhw==";
+        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.8.32.tgz";
+        sha512 = "V91aTRu5btP+uzGHaaOfodckEfBWhmi9foRP7cauAO1PTB8+tZ9o0Jec7q6TIIRY1N4q1IfiKsZunkB/AEWqMQ==";
       };
     };
     "de-indent-1.0.2" = {
@@ -13208,6 +13928,15 @@ let
         sha1 = "b2038e846dc33baa5796128d0804b455b8c1e21d";
       };
     };
+    "deasync-0.1.15" = {
+      name = "deasync";
+      packageName = "deasync";
+      version = "0.1.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deasync/-/deasync-0.1.15.tgz";
+        sha512 = "pxMaCYu8cQIbGkA4Y1R0PLSooPIpH1WgFBLeJ+zLxQgHfkZG86ViJSmZmONSjZJ/R3NjwkMcIWZAzpLB2G9/CA==";
+      };
+    };
     "deasync-0.1.20" = {
       name = "deasync";
       packageName = "deasync";
@@ -13280,24 +14009,6 @@ let
         sha1 = "06e1ea8082c2cb14e39806e22e2f6f757f92af39";
       };
     };
-    "debug-1.0.5" = {
-      name = "debug";
-      packageName = "debug";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-1.0.5.tgz";
-        sha1 = "f7241217430f99dec4c2b473eab92228e874c2ac";
-      };
-    };
-    "debug-2.1.3" = {
-      name = "debug";
-      packageName = "debug";
-      version = "2.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz";
-        sha1 = "ce8ab1b5ee8fbee2bfa3b633cab93d366b63418e";
-      };
-    };
     "debug-2.2.0" = {
       name = "debug";
       packageName = "debug";
@@ -13343,6 +14054,15 @@ let
         sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==";
       };
     };
+    "debug-4.2.0" = {
+      name = "debug";
+      packageName = "debug";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz";
+        sha512 = "IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==";
+      };
+    };
     "debug-fabulous-1.1.0" = {
       name = "debug-fabulous";
       packageName = "debug-fabulous";
@@ -13370,13 +14090,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" = {
@@ -13388,15 +14108,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";
@@ -13406,6 +14117,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";
@@ -13415,15 +14135,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";
@@ -13460,6 +14171,15 @@ let
         sha512 = "TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==";
       };
     };
+    "decompress-response-6.0.0" = {
+      name = "decompress-response";
+      packageName = "decompress-response";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz";
+        sha512 = "aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==";
+      };
+    };
     "decompress-tar-4.1.1" = {
       name = "decompress-tar";
       packageName = "decompress-tar";
@@ -13568,6 +14288,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";
@@ -13577,6 +14306,15 @@ let
         sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
       };
     };
+    "deep-freeze-0.0.1" = {
+      name = "deep-freeze";
+      packageName = "deep-freeze";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz";
+        sha1 = "3a0b0005de18672819dfd38cd31f91179c893e84";
+      };
+    };
     "deep-is-0.1.2" = {
       name = "deep-is";
       packageName = "deep-is";
@@ -13820,31 +14558,22 @@ let
         sha512 = "wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==";
       };
     };
-    "del-cli-3.0.0" = {
+    "del-cli-3.0.1" = {
       name = "del-cli";
       packageName = "del-cli";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/del-cli/-/del-cli-3.0.0.tgz";
-        sha512 = "J4HDC2mpcN5aopya4VdkyiFXZaqAoo7ua9VpKbciX3DDUSbtJbPMc3ivggJsAAgS6EqonmbenIiMhBGtJPW9FA==";
+        url = "https://registry.npmjs.org/del-cli/-/del-cli-3.0.1.tgz";
+        sha512 = "BLHItGr82rUbHhjMu41d+vw9Md49i81jmZSV00HdTq4t+RTHywmEht/23mNFpUl2YeLYJZJyGz4rdlMAyOxNeg==";
       };
     };
-    "delay-4.3.0" = {
+    "delay-4.4.0" = {
       name = "delay";
       packageName = "delay";
-      version = "4.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/delay/-/delay-4.3.0.tgz";
-        sha512 = "Lwaf3zVFDMBop1yDuFZ19F9WyGcZcGacsbdlZtWjQmM50tOcMntm1njF/Nb/Vjij3KaSvCF+sEYGKrrjObu2NA==";
-      };
-    };
-    "delayed-stream-0.0.5" = {
-      name = "delayed-stream";
-      packageName = "delayed-stream";
-      version = "0.0.5";
+      version = "4.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz";
-        sha1 = "d4b1f43a93e8296dfe02694f4680bc37a313c73f";
+        url = "https://registry.npmjs.org/delay/-/delay-4.4.0.tgz";
+        sha512 = "txgOrJu3OdtOfTiEOT2e76dJVfG/1dz2NZ4F0Pyt4UGZJryssMRp5vdM5wQoLwSOBNdrJv3F9PAhp/heqd7vrA==";
       };
     };
     "delayed-stream-1.0.0" = {
@@ -13937,15 +14666,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";
@@ -14000,15 +14720,6 @@ let
         sha512 = "Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==";
       };
     };
-    "destroy-1.0.3" = {
-      name = "destroy";
-      packageName = "destroy";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz";
-        sha1 = "b433b4724e71fd8551d9885174851c5fc377e2c9";
-      };
-    };
     "destroy-1.0.4" = {
       name = "destroy";
       packageName = "destroy";
@@ -14072,6 +14783,15 @@ let
         sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2";
       };
     };
+    "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==";
+      };
+    };
     "detect-node-2.0.4" = {
       name = "detect-node";
       packageName = "detect-node";
@@ -14099,87 +14819,6 @@ let
         sha512 = "6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==";
       };
     };
-    "detective-amd-3.0.0" = {
-      name = "detective-amd";
-      packageName = "detective-amd";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/detective-amd/-/detective-amd-3.0.0.tgz";
-        sha512 = "kOpKHyabdSKF9kj7PqYHLeHPw+TJT8q2u48tZYMkIcas28el1CYeLEJ42Nm+563/Fq060T5WknfwDhdX9+kkBQ==";
-      };
-    };
-    "detective-cjs-3.1.1" = {
-      name = "detective-cjs";
-      packageName = "detective-cjs";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/detective-cjs/-/detective-cjs-3.1.1.tgz";
-        sha512 = "JQtNTBgFY6h8uT6pgph5QpV3IyxDv+z3qPk/FZRDT9TlFfm5dnRtpH39WtQEr1khqsUxVqXzKjZHpdoQvQbllg==";
-      };
-    };
-    "detective-es6-2.1.0" = {
-      name = "detective-es6";
-      packageName = "detective-es6";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/detective-es6/-/detective-es6-2.1.0.tgz";
-        sha512 = "QSHqKGOp/YBIfmIqKXaXeq2rlL+bp3bcIQMfZ+0PvKzRlELSOSZxKRvpxVcxlLuocQv4QnOfuWGniGrmPbz8MQ==";
-      };
-    };
-    "detective-less-1.0.2" = {
-      name = "detective-less";
-      packageName = "detective-less";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/detective-less/-/detective-less-1.0.2.tgz";
-        sha512 = "Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA==";
-      };
-    };
-    "detective-postcss-3.0.1" = {
-      name = "detective-postcss";
-      packageName = "detective-postcss";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/detective-postcss/-/detective-postcss-3.0.1.tgz";
-        sha512 = "tfTS2GdpUal5NY0aCqI4dpEy8Xfr88AehYKB0iBIZvo8y2g3UsrcDnrp9PR2FbzoW7xD5Rip3NJW7eCSvtqdUw==";
-      };
-    };
-    "detective-sass-3.0.1" = {
-      name = "detective-sass";
-      packageName = "detective-sass";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/detective-sass/-/detective-sass-3.0.1.tgz";
-        sha512 = "oSbrBozRjJ+QFF4WJFbjPQKeakoaY1GiR380NPqwdbWYd5wfl5cLWv0l6LsJVqrgWfFN1bjFqSeo32Nxza8Lbw==";
-      };
-    };
-    "detective-scss-2.0.1" = {
-      name = "detective-scss";
-      packageName = "detective-scss";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/detective-scss/-/detective-scss-2.0.1.tgz";
-        sha512 = "VveyXW4WQE04s05KlJ8K0bG34jtHQVgTc9InspqoQxvnelj/rdgSAy7i2DXAazyQNFKlWSWbS+Ro2DWKFOKTPQ==";
-      };
-    };
-    "detective-stylus-1.0.0" = {
-      name = "detective-stylus";
-      packageName = "detective-stylus";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/detective-stylus/-/detective-stylus-1.0.0.tgz";
-        sha1 = "50aee7db8babb990381f010c63fabba5b58e54cd";
-      };
-    };
-    "detective-typescript-5.7.0" = {
-      name = "detective-typescript";
-      packageName = "detective-typescript";
-      version = "5.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/detective-typescript/-/detective-typescript-5.7.0.tgz";
-        sha512 = "4SQeACXWAjIOsd2kJykPL8gWC9nVA+z8w7KtAdtd/7BCpDfrpI2ZA7pdhsmHv/zxf3ofeqpYi72vCkZ65bAjtA==";
-      };
-    };
     "dezalgo-1.0.3" = {
       name = "dezalgo";
       packageName = "dezalgo";
@@ -14270,22 +14909,22 @@ let
         sha512 = "58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==";
       };
     };
-    "diff-match-patch-1.0.4" = {
+    "diff-match-patch-1.0.5" = {
       name = "diff-match-patch";
       packageName = "diff-match-patch";
-      version = "1.0.4";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.4.tgz";
-        sha512 = "Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg==";
+        url = "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz";
+        sha512 = "IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==";
       };
     };
-    "diff2html-3.1.6" = {
+    "diff2html-3.1.11" = {
       name = "diff2html";
       packageName = "diff2html";
-      version = "3.1.6";
+      version = "3.1.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.1.6.tgz";
-        sha512 = "XWceXI/tvT6YIHpO1kUY8y/fEDUdV3Du//0McAuK2/Fikc/MU2cyoFS5PXVuOFA5DO5otvPyeJmFan2iNUWkVg==";
+        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.1.11.tgz";
+        sha512 = "EtzNnfhT4XzxIUvIw5mhUGxGYDzce9lxkqtSHWq4yas+UrEjwzm5A2pYIaFOikupbFITd9RaHpu0ocErJ1myRw==";
       };
     };
     "diff3-0.0.3" = {
@@ -14324,6 +14963,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";
@@ -14414,22 +15062,13 @@ let
         sha512 = "vkg0bv+FUwSuPxBWzdNPQVNmXQlIbvz1Ygi+A1XefNUhEzfmM+RNndjtjlDgxD/ZUhFir9PX7Hw9iIDVujsOoA==";
       };
     };
-    "disparity-2.0.0" = {
-      name = "disparity";
-      packageName = "disparity";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/disparity/-/disparity-2.0.0.tgz";
-        sha1 = "57ddacb47324ae5f58d2cc0da886db4ce9eeb718";
-      };
-    };
-    "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" = {
@@ -14441,15 +15080,6 @@ let
         sha1 = "d9980493ae33beec36f4fec6f171ff218130cc12";
       };
     };
-    "dl-tar-0.8.1" = {
-      name = "dl-tar";
-      packageName = "dl-tar";
-      version = "0.8.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dl-tar/-/dl-tar-0.8.1.tgz";
-        sha512 = "1EdwnDJmqStX85PuVhcrqdeB3b7k4pn3WhMjPEL1lHuPEf0Mf8Cqdo76hgUPX60QWtCbPPTrDl8JFGrPMc1grw==";
-      };
-    };
     "dlnacasts-0.1.0" = {
       name = "dlnacasts";
       packageName = "dlnacasts";
@@ -14549,13 +15179,13 @@ let
         sha512 = "2FFKzmLGOnD+Y378bRKH+gTjRMuSpH7OKgPy31KjjfCoKZx7tU8Dmqfd/3fhG2d/4bppuN8/KtWMUZBAcUCRnQ==";
       };
     };
-    "dockerfile-ast-0.0.12" = {
-      name = "dockerfile-ast";
-      packageName = "dockerfile-ast";
-      version = "0.0.12";
+    "docker-modem-2.1.3" = {
+      name = "docker-modem";
+      packageName = "docker-modem";
+      version = "2.1.3";
       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/docker-modem/-/docker-modem-2.1.3.tgz";
+        sha512 = "cwaRptBmYZwu/FyhGcqBm2MzXA77W2/E6eVkpOZVDk6PkI9Bjj84xPrXiHMA+OWjzNy+DFjgKh8Q+1hMR7/OHg==";
       };
     };
     "dockerfile-ast-0.0.19" = {
@@ -14567,40 +15197,40 @@ let
         sha512 = "iDRNFeAB2j4rh/Ecc2gh3fjciVifCMsszfCfHlYF5Wv8yybjZLiRDZUBt/pS3xrAz8uWT8fCHLq4pOQMmwCDwA==";
       };
     };
-    "dockerfile-ast-0.0.25" = {
+    "dockerfile-ast-0.0.27" = {
       name = "dockerfile-ast";
       packageName = "dockerfile-ast";
-      version = "0.0.25";
+      version = "0.0.27";
       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.27.tgz";
+        sha512 = "U+1B6aA7qJw9hswL6rCg4/dHnXy+zmt1bwU6ONi+f+0w0AOSmrz4IcrZQu62g1RD+NoTO4dvJce3FjoXUHd9Dw==";
       };
     };
-    "dockerfile-language-service-0.0.12" = {
-      name = "dockerfile-language-service";
-      packageName = "dockerfile-language-service";
-      version = "0.0.12";
+    "dockerfile-ast-0.0.28" = {
+      name = "dockerfile-ast";
+      packageName = "dockerfile-ast";
+      version = "0.0.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-language-service/-/dockerfile-language-service-0.0.12.tgz";
-        sha512 = "73ZEQW8LCL/SIWzWekqqLdH41pZ8+N2BYD5K16cBQCQfsZPjFoJC04tv7jlTnEPypJZs3zV0hpBLVTi7zhRFfw==";
+        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.28.tgz";
+        sha512 = "221P0R4+tx5C1ra99alQxmdRvtfKMbBE7MkESN4VEBN5CX90wijrcIg+EiRaGTCCT5OPk5KBeKy+EIOnmEu4xA==";
       };
     };
-    "dockerfile-utils-0.0.11" = {
-      name = "dockerfile-utils";
-      packageName = "dockerfile-utils";
-      version = "0.0.11";
+    "dockerfile-language-service-0.1.0" = {
+      name = "dockerfile-language-service";
+      packageName = "dockerfile-language-service";
+      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" = {
@@ -14765,13 +15395,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-2.0.12" = {
+      name = "dompurify";
+      packageName = "dompurify";
+      version = "2.0.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dompurify/-/dompurify-2.0.12.tgz";
+        sha512 = "Fl8KseK1imyhErHypFPA8qpq9gPzlsJ/EukA6yk9o0gX23p1TzC+rh9LqNg1qvErRTc0UNMYlKxEGSfSh43NDg==";
       };
     };
     "domutils-1.4.3" = {
@@ -14801,31 +15440,22 @@ let
         sha512 = "Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==";
       };
     };
-    "domutils-2.0.0" = {
+    "domutils-2.1.0" = {
       name = "domutils";
       packageName = "domutils";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domutils/-/domutils-2.0.0.tgz";
-        sha512 = "n5SelJ1axbO636c2yUtOGia/IcJtVtlhQbFiVDBZHKV5ReJO1ViX7sFEemtuyoAnBxk5meNSYgA8V4s0271efg==";
+        url = "https://registry.npmjs.org/domutils/-/domutils-2.1.0.tgz";
+        sha512 = "CD9M0Dm1iaHfQ1R/TI+z3/JWp/pgub0j4jIQKH89ARR4ATAV2nbaOQS5XxU9maJP5jHaPdDDQSEHuE2UmpUTKg==";
       };
     };
-    "dot-case-2.1.1" = {
+    "dot-case-3.0.3" = {
       name = "dot-case";
       packageName = "dot-case";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz";
-        sha1 = "34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee";
-      };
-    };
-    "dot-prop-3.0.0" = {
-      name = "dot-prop";
-      packageName = "dot-prop";
-      version = "3.0.0";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz";
-        sha1 = "1b708af094a49c9a0e7dbcad790aba539dac1177";
+        url = "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz";
+        sha512 = "7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==";
       };
     };
     "dot-prop-4.2.0" = {
@@ -14855,15 +15485,6 @@ let
         sha1 = "d36517fe24b7cda61fce7a5026a0024afaf5a439";
       };
     };
-    "dotenv-4.0.0" = {
-      name = "dotenv";
-      packageName = "dotenv";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz";
-        sha1 = "864ef1379aced55ce6f95debecdce179f7a0cd1d";
-      };
-    };
     "dotenv-5.0.1" = {
       name = "dotenv";
       packageName = "dotenv";
@@ -14873,15 +15494,6 @@ let
         sha512 = "4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==";
       };
     };
-    "dotenv-6.2.0" = {
-      name = "dotenv";
-      packageName = "dotenv";
-      version = "6.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz";
-        sha512 = "HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==";
-      };
-    };
     "dotenv-8.2.0" = {
       name = "dotenv";
       packageName = "dotenv";
@@ -14963,33 +15575,6 @@ let
         sha512 = "N8hWXD4hXqmEcNoR8TBYFntaOcYvEQ7Bz90mgm3bZRTuteGQqwT32VDMnTyD0KTEvb8BWrMc1tVmzuV9u/WrAg==";
       };
     };
-    "download-or-build-purescript-0.3.4" = {
-      name = "download-or-build-purescript";
-      packageName = "download-or-build-purescript";
-      version = "0.3.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/download-or-build-purescript/-/download-or-build-purescript-0.3.4.tgz";
-        sha512 = "8P4vNgbLTZi07s3uRnUCI+kE7lAERyIexVYwAHsAw7AQhooFnVbypq/yiP1vSZVibQ4Fl74LdOWnJKbqe9Mnow==";
-      };
-    };
-    "download-purescript-0.8.5" = {
-      name = "download-purescript";
-      packageName = "download-purescript";
-      version = "0.8.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/download-purescript/-/download-purescript-0.8.5.tgz";
-        sha512 = "m2avp1YMDTxZW3mtlG7U09bmgCrLbBIsuBEglywew0uoG7VHVdtOwlTXEdvQQTqpW9iylrz8PokfPlqzc6AYiA==";
-      };
-    };
-    "download-purescript-source-0.6.5" = {
-      name = "download-purescript-source";
-      packageName = "download-purescript-source";
-      version = "0.6.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/download-purescript-source/-/download-purescript-source-0.6.5.tgz";
-        sha512 = "RyOSTL7B3qzrhCOfhgzxNrcZD1klFOAJcw2YG345AIB4su1KC4WSk6fzRz3xpg1tp/plr5v8aDlvZy+LDtf6uA==";
-      };
-    };
     "download-stats-0.3.4" = {
       name = "download-stats";
       packageName = "download-stats";
@@ -15134,13 +15719,13 @@ let
         sha512 = "1N+eCCrepIeK1+qtWrMEO1CV68Hn+TLbiR9c70VB3xnut3DmUxT+3T7sRHhb0mpK2F/74IfP+loQDriU2W9lkA==";
       };
     };
-    "e-prime-0.10.3" = {
+    "e-prime-0.10.4" = {
       name = "e-prime";
       packageName = "e-prime";
-      version = "0.10.3";
+      version = "0.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/e-prime/-/e-prime-0.10.3.tgz";
-        sha512 = "QGKWEWRVUfjUXSoio9AW43RzzMQzI23No8uyKQD9yZJm4Hbc+8ZRZhyEtWdnpAkY7dXFmTxtcFR4cM0T0U1jGw==";
+        url = "https://registry.npmjs.org/e-prime/-/e-prime-0.10.4.tgz";
+        sha512 = "tzBmM2mFSnAq5BuxPSyin6qXb3yMe1wufJN7L7ZPcEWS5S+jI2dhKQEoqHVEcSMMXo/j5lcWpX5jzA6wLSmX6w==";
       };
     };
     "each-props-1.3.2" = {
@@ -15206,13 +15791,13 @@ let
         sha1 = "94a44248bb87da35db0eff7af0aa576168117f59";
       };
     };
-    "editions-2.3.0" = {
+    "editions-2.3.1" = {
       name = "editions";
       packageName = "editions";
-      version = "2.3.0";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/editions/-/editions-2.3.0.tgz";
-        sha512 = "jeXYwHPKbitU1l14dWlsl5Nm+b1Hsm7VX73BsrQ4RVwEcAQQIPFHTZAbVtuIGxZBrpdT2FXd8lbtrNBrzZxIsA==";
+        url = "https://registry.npmjs.org/editions/-/editions-2.3.1.tgz";
+        sha512 = "ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==";
       };
     };
     "editor-1.0.0" = {
@@ -15278,13 +15863,22 @@ let
         sha512 = "7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==";
       };
     };
-    "electron-to-chromium-1.3.427" = {
+    "ejs-3.1.3" = {
+      name = "ejs";
+      packageName = "ejs";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ejs/-/ejs-3.1.3.tgz";
+        sha512 = "wmtrUGyfSC23GC/B1SMv2ogAUgbQEtDmTIhfqielrG5ExIM9TP4UoYdi90jLF1aTcsWCJNEO0UrgKzP0y3nTSg==";
+      };
+    };
+    "electron-to-chromium-1.3.520" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.427";
+      version = "1.3.520";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.427.tgz";
-        sha512 = "/rG5G7Opcw68/Yrb4qYkz07h3bESVRJjUl4X/FrKLXzoUJleKm6D7K7rTTz8V5LUWnd+BbTOyxJX2XprRqHD8A==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.520.tgz";
+        sha512 = "q6H9E1sXDCjRHP+X06vcP+N0ki8ZvYoRPZfKnDuiRX10WWXxEHzKFVf4O9rBFMpuPtR3M+2KAdJnugJoBBp3Rw==";
       };
     };
     "elegant-spinner-1.0.1" = {
@@ -15314,13 +15908,13 @@ let
         sha1 = "9ac91be6e52fb6e6244c4e54a4ac3ed8ae8e29c0";
       };
     };
-    "elliptic-6.5.2" = {
+    "elliptic-6.5.3" = {
       name = "elliptic";
       packageName = "elliptic";
-      version = "6.5.2";
+      version = "6.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz";
-        sha512 = "f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==";
+        url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz";
+        sha512 = "IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==";
       };
     };
     "email-validator-2.0.4" = {
@@ -15332,13 +15926,13 @@ let
         sha512 = "gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==";
       };
     };
-    "emitter-https://github.com/component/emitter/archive/1.0.1.tar.gz" = {
+    "emitter-http://github.com/component/emitter/archive/1.0.1.tar.gz" = {
       name = "emitter";
       packageName = "emitter";
       version = "1.0.1";
       src = fetchurl {
         name = "emitter-1.0.1.tar.gz";
-        url = "https://codeload.github.com/component/emitter/tar.gz/1.0.1";
+        url = https://codeload.github.com/component/emitter/tar.gz/1.0.1;
         sha256 = "0eae744826723877457f7a7ac7f31d68a5a060673b3a883f6a8e325bf48f313d";
       };
     };
@@ -15405,15 +15999,6 @@ let
         sha512 = "5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==";
       };
     };
-    "emojis-list-2.1.0" = {
-      name = "emojis-list";
-      packageName = "emojis-list";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz";
-        sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389";
-      };
-    };
     "emojis-list-3.0.0" = {
       name = "emojis-list";
       packageName = "emojis-list";
@@ -15423,6 +16008,15 @@ let
         sha512 = "/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==";
       };
     };
+    "emotion-9.2.12" = {
+      name = "emotion";
+      packageName = "emotion";
+      version = "9.2.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emotion/-/emotion-9.2.12.tgz";
+        sha512 = "hcx7jppaI8VoXxIWEhxpDW7I+B4kq9RNzQLmsrF6LY8BGKqe2N+gFAQr0EfuFucFlPs2A9HM4+xNj4NeqEWIOQ==";
+      };
+    };
     "emphasize-1.5.0" = {
       name = "emphasize";
       packageName = "emphasize";
@@ -15450,6 +16044,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";
@@ -15459,13 +16062,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" = {
@@ -15558,22 +16161,13 @@ let
         sha1 = "2d968308fffae5d17f5209b6775246e90d8a705e";
       };
     };
-    "engine.io-3.2.1" = {
+    "engine.io-3.4.2" = {
       name = "engine.io";
       packageName = "engine.io";
-      version = "3.2.1";
+      version = "3.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz";
-        sha512 = "+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==";
-      };
-    };
-    "engine.io-3.4.1" = {
-      name = "engine.io";
-      packageName = "engine.io";
-      version = "3.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io/-/engine.io-3.4.1.tgz";
-        sha512 = "8MfIfF1/IIfxuc2gv5K+XlFZczw/BpTvqBdl0E2fBLkYQp4miv4LuDTVtYt4yMyaIFLEr4vtaSgV4mjvll8Crw==";
+        url = "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz";
+        sha512 = "b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==";
       };
     };
     "engine.io-client-1.3.1" = {
@@ -15585,22 +16179,13 @@ let
         sha1 = "1c5a65d5c5af6d04b44c22c3dbcd95c39ed1c989";
       };
     };
-    "engine.io-client-3.2.1" = {
-      name = "engine.io-client";
-      packageName = "engine.io-client";
-      version = "3.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz";
-        sha512 = "y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==";
-      };
-    };
-    "engine.io-client-3.4.1" = {
+    "engine.io-client-3.4.3" = {
       name = "engine.io-client";
       packageName = "engine.io-client";
-      version = "3.4.1";
+      version = "3.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.1.tgz";
-        sha512 = "RJNmA+A9Js+8Aoq815xpGAsgWH1VoSYM//2VgIiu9lNOaHFfLpTjH4tOzktBpjIs5lvOfiNY1dwf+NuU6D38Mw==";
+        url = "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz";
+        sha512 = "0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==";
       };
     };
     "engine.io-parser-1.0.6" = {
@@ -15612,15 +16197,6 @@ let
         sha1 = "d38813143a411cb3b914132ab05bf99e6f7a248e";
       };
     };
-    "engine.io-parser-2.1.3" = {
-      name = "engine.io-parser";
-      packageName = "engine.io-parser";
-      version = "2.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz";
-        sha512 = "6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==";
-      };
-    };
     "engine.io-parser-2.2.0" = {
       name = "engine.io-parser";
       packageName = "engine.io-parser";
@@ -15639,22 +16215,22 @@ let
         sha1 = "a115c32504b6302e85a76269d7a57ccdd962e359";
       };
     };
-    "enhanced-resolve-4.1.0" = {
+    "enhanced-resolve-4.3.0" = {
       name = "enhanced-resolve";
       packageName = "enhanced-resolve";
-      version = "4.1.0";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz";
-        sha512 = "F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==";
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz";
+        sha512 = "3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==";
       };
     };
-    "enhanced-resolve-4.1.1" = {
-      name = "enhanced-resolve";
-      packageName = "enhanced-resolve";
-      version = "4.1.1";
+    "enquirer-2.3.6" = {
+      name = "enquirer";
+      packageName = "enquirer";
+      version = "2.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz";
-        sha512 = "98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==";
+        url = "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz";
+        sha512 = "yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==";
       };
     };
     "ensure-posix-path-1.1.1" = {
@@ -15693,13 +16269,13 @@ let
         sha512 = "f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==";
       };
     };
-    "entities-2.0.0" = {
+    "entities-2.0.3" = {
       name = "entities";
       packageName = "entities";
-      version = "2.0.0";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz";
-        sha512 = "D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==";
+        url = "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz";
+        sha512 = "MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==";
       };
     };
     "env-ci-3.2.2" = {
@@ -15747,13 +16323,13 @@ let
         sha512 = "jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ==";
       };
     };
-    "envinfo-7.5.1" = {
+    "envinfo-7.7.2" = {
       name = "envinfo";
       packageName = "envinfo";
-      version = "7.5.1";
+      version = "7.7.2";
       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.2.tgz";
+        sha512 = "k3Eh5bKuQnZjm49/L7H4cHzs2FlL5QjbTB3JrPxoTI8aJG7hVMe4uKyJxSYH4ahseby2waUwk5OaKX/nAsaYgg==";
       };
     };
     "epidemic-broadcast-trees-7.0.0" = {
@@ -15828,13 +16404,22 @@ let
         sha512 = "rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==";
       };
     };
-    "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.6.tgz";
+        sha512 = "Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==";
+      };
+    };
+    "es-array-method-boxes-properly-1.0.0" = {
+      name = "es-array-method-boxes-properly";
+      packageName = "es-array-method-boxes-properly";
+      version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz";
-        sha512 = "BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==";
+        url = "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz";
+        sha512 = "wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==";
       };
     };
     "es-get-iterator-1.1.0" = {
@@ -15873,15 +16458,6 @@ let
         sha1 = "aba8d9e1943a895ac96837a62a39b3f55ecd94ab";
       };
     };
-    "es5class-2.3.1" = {
-      name = "es5class";
-      packageName = "es5class";
-      version = "2.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es5class/-/es5class-2.3.1.tgz";
-        sha1 = "42c5c18a9016bcb0db28a4d340ebb831f55d1b66";
-      };
-    };
     "es6-error-4.1.1" = {
       name = "es6-error";
       packageName = "es6-error";
@@ -15918,15 +16494,6 @@ let
         sha1 = "96edb9f2fdb01995822b263dd8aadab6748181bc";
       };
     };
-    "es6-promise-3.0.2" = {
-      name = "es6-promise";
-      packageName = "es6-promise";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz";
-        sha1 = "010d5858423a5f118979665f46486a95c6ee2bb6";
-      };
-    };
     "es6-promise-3.3.1" = {
       name = "es6-promise";
       packageName = "es6-promise";
@@ -15963,24 +16530,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.0" = {
-      name = "es6-promisify";
-      packageName = "es6-promisify";
-      version = "6.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.0.tgz";
-        sha512 = "jCsk2fpfEFusVv1MDkF4Uf0hAzIKNDMgR6LyOIw6a3jwkN1sCgWzuwgnsHY9YSQ8n8P31HoncvE0LC44cpWTrw==";
-      };
-    };
     "es6-promisify-6.1.1" = {
       name = "es6-promisify";
       packageName = "es6-promisify";
@@ -16035,6 +16584,15 @@ let
         sha512 = "VHDcDg9AwFoeQU9ULPCJCw6P95gr9Er65M+bccefEVD/OOb+WMyQIYw58rpm0F+zcfRJNf394I+BMH8JeU97Hw==";
       };
     };
+    "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-goat-2.1.1" = {
       name = "escape-goat";
       packageName = "escape-goat";
@@ -16044,15 +16602,6 @@ let
         sha512 = "8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==";
       };
     };
-    "escape-html-1.0.1" = {
-      name = "escape-html";
-      packageName = "escape-html";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz";
-        sha1 = "181a286ead397a39a92857cfb1d43052e356bff0";
-      };
-    };
     "escape-html-1.0.3" = {
       name = "escape-html";
       packageName = "escape-html";
@@ -16062,15 +16611,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";
@@ -16107,13 +16647,22 @@ let
         sha512 = "UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==";
       };
     };
-    "escodegen-1.14.1" = {
+    "escape-string-regexp-4.0.0" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
+        sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
+      };
+    };
+    "escodegen-1.14.3" = {
       name = "escodegen";
       packageName = "escodegen";
-      version = "1.14.1";
+      version = "1.14.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz";
-        sha512 = "Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==";
+        url = "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz";
+        sha512 = "qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==";
       };
     };
     "escodegen-1.3.3" = {
@@ -16188,13 +16737,31 @@ let
         sha512 = "K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==";
       };
     };
-    "eslint-plugin-no-unsafe-innerhtml-1.0.16" = {
-      name = "eslint-plugin-no-unsafe-innerhtml";
-      packageName = "eslint-plugin-no-unsafe-innerhtml";
-      version = "1.0.16";
+    "eslint-7.5.0" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "7.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.5.0.tgz";
+        sha512 = "vlUP10xse9sWt9SGRtcr1LAC67BENcQMFeV+w5EvLEoFe3xJ8cF1Skd0msziRx/VMC+72B4DxreCE+OR12OA6Q==";
+      };
+    };
+    "eslint-7.6.0" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "7.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.6.0.tgz";
+        sha512 = "QlAManNtqr7sozWm5TF4wIH9gmUm2hE3vNRUvyoYAa4y1l5/jxD/PQStEjBMQtCqZmSep8UxrcecI60hOpe61w==";
+      };
+    };
+    "eslint-plugin-no-unsanitized-3.1.2" = {
+      name = "eslint-plugin-no-unsanitized";
+      packageName = "eslint-plugin-no-unsanitized";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-no-unsafe-innerhtml/-/eslint-plugin-no-unsafe-innerhtml-1.0.16.tgz";
-        sha1 = "7d02878c8e9bf7916b88836d5ac122b42f151932";
+        url = "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-3.1.2.tgz";
+        sha512 = "KPShfliA3Uy9qqwQx35P1fwIOeJjZkb0FbMMUFztRYRposzaynsM8JCEb952fqkidROl1kpqY80uSvn+TcWkQQ==";
       };
     };
     "eslint-plugin-vue-6.2.2" = {
@@ -16224,13 +16791,13 @@ let
         sha512 = "p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==";
       };
     };
-    "eslint-scope-5.0.0" = {
+    "eslint-scope-5.1.0" = {
       name = "eslint-scope";
       packageName = "eslint-scope";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz";
-        sha512 = "oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==";
+        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz";
+        sha512 = "iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==";
       };
     };
     "eslint-utils-1.4.3" = {
@@ -16242,22 +16809,22 @@ let
         sha512 = "fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==";
       };
     };
-    "eslint-utils-2.0.0" = {
+    "eslint-utils-2.1.0" = {
       name = "eslint-utils";
       packageName = "eslint-utils";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz";
-        sha512 = "0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==";
+        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz";
+        sha512 = "w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==";
       };
     };
-    "eslint-visitor-keys-1.1.0" = {
+    "eslint-visitor-keys-1.3.0" = {
       name = "eslint-visitor-keys";
       packageName = "eslint-visitor-keys";
-      version = "1.1.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz";
-        sha512 = "8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==";
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
+        sha512 = "6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==";
       };
     };
     "esm-3.2.25" = {
@@ -16314,6 +16881,15 @@ let
         sha512 = "ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==";
       };
     };
+    "espree-7.2.0" = {
+      name = "espree";
+      packageName = "espree";
+      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==";
+      };
+    };
     "esprima-1.1.1" = {
       name = "esprima";
       packageName = "esprima";
@@ -16476,15 +17052,6 @@ let
         sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
       };
     };
-    "etag-1.5.1" = {
-      name = "etag";
-      packageName = "etag";
-      version = "1.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/etag/-/etag-1.5.1.tgz";
-        sha1 = "54c50de04ee42695562925ac566588291be7e9ea";
-      };
-    };
     "etag-1.8.1" = {
       name = "etag";
       packageName = "etag";
@@ -16530,6 +17097,15 @@ let
         sha512 = "YVFs6dPpZIgH665kKckDktEVvSBccSYJmoZUfhNUdv5d3Xv+Q+SKF4Xis1jolq9aBzuW1ZZhQh/m/zU/TPdDhw==";
       };
     };
+    "event-loop-spinner-2.0.0" = {
+      name = "event-loop-spinner";
+      packageName = "event-loop-spinner";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/event-loop-spinner/-/event-loop-spinner-2.0.0.tgz";
+        sha512 = "1y4j/Mhttr8ordvHkbDsGzGrlQaSYJoXD/3YKUxiOXIk7myEn9UPfybEk/lLtrcU3D4QvCNmVUxVQaPtvAIaUw==";
+      };
+    };
     "event-pubsub-4.3.0" = {
       name = "event-pubsub";
       packageName = "event-pubsub";
@@ -16539,15 +17115,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";
@@ -16566,15 +17133,6 @@ let
         sha1 = "b4c540012d0fe1498420f3d8946008db6393c37a";
       };
     };
-    "event-stream-3.2.2" = {
-      name = "event-stream";
-      packageName = "event-stream";
-      version = "3.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/event-stream/-/event-stream-3.2.2.tgz";
-        sha1 = "f79f9984c07ee3fd9b44ffb3cd0422b13e24084d";
-      };
-    };
     "event-stream-3.3.4" = {
       name = "event-stream";
       packageName = "event-stream";
@@ -16611,15 +17169,6 @@ let
         sha1 = "8f61b75cde012b2e9eb284d4545583b5643b61ab";
       };
     };
-    "eventemitter3-0.1.6" = {
-      name = "eventemitter3";
-      packageName = "eventemitter3";
-      version = "0.1.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-0.1.6.tgz";
-        sha1 = "8c7ac44b87baab55cd50c828dc38778eac052ea5";
-      };
-    };
     "eventemitter3-1.2.0" = {
       name = "eventemitter3";
       packageName = "eventemitter3";
@@ -16647,13 +17196,13 @@ let
         sha512 = "tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==";
       };
     };
-    "eventemitter3-4.0.0" = {
+    "eventemitter3-4.0.4" = {
       name = "eventemitter3";
       packageName = "eventemitter3";
-      version = "4.0.0";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz";
-        sha512 = "qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==";
+        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz";
+        sha512 = "rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==";
       };
     };
     "events-1.1.1" = {
@@ -16674,13 +17223,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" = {
@@ -16791,13 +17340,13 @@ let
         sha512 = "r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==";
       };
     };
-    "execa-4.0.0" = {
+    "execa-4.0.3" = {
       name = "execa";
       packageName = "execa";
-      version = "4.0.0";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/execa/-/execa-4.0.0.tgz";
-        sha512 = "JbDUxwV3BoT5ZVXQrSVbAiaXhXUkIwvbhPIwZ0N13kX+5yCzOhUNdocxB/UQRuYOHRYYwAxKYwJYc0T4D12pDA==";
+        url = "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz";
+        sha512 = "WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==";
       };
     };
     "execall-1.0.0" = {
@@ -16827,15 +17376,6 @@ let
         sha512 = "8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==";
       };
     };
-    "executing-npm-path-1.0.0" = {
-      name = "executing-npm-path";
-      packageName = "executing-npm-path";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/executing-npm-path/-/executing-npm-path-1.0.0.tgz";
-        sha512 = "d/dZlFCLkKm8nwdzpfQ7JBL2BISg4Fu0bVpZ5nacuT3e6DIxYVb+8tx0eQ+jxquvV/8I+VjJ9g6aEAqjukogkw==";
-      };
-    };
     "exit-0.1.2" = {
       name = "exit";
       packageName = "exit";
@@ -16935,15 +17475,6 @@ let
         sha1 = "0b63ae626c96b71b78d13dfce079c10351635a86";
       };
     };
-    "express-4.11.2" = {
-      name = "express";
-      packageName = "express";
-      version = "4.11.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/express/-/express-4.11.2.tgz";
-        sha1 = "8df3d5a9ac848585f00a0777601823faecd3b148";
-      };
-    };
     "express-4.17.1" = {
       name = "express";
       packageName = "express";
@@ -16971,22 +17502,22 @@ let
         sha1 = "3a2ad27f7bebc90fc533d110d7c6d83097bcd057";
       };
     };
-    "express-request-proxy-2.2.2" = {
-      name = "express-request-proxy";
-      packageName = "express-request-proxy";
-      version = "2.2.2";
+    "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-request-proxy/-/express-request-proxy-2.2.2.tgz";
-        sha512 = "0Dzn6LQG0ohd2S+zJVMhsntwcDakEzm/uKJSZxH7B66ZBvTsB5LU/HvfO1dHG+RRiKuCg0aWfUa66PljnDjEdw==";
+        url = "https://registry.npmjs.org/express-normalize-query-params-middleware/-/express-normalize-query-params-middleware-0.5.1.tgz";
+        sha1 = "dbe1e8139aecb234fb6adb5c0059c75db9733d2a";
       };
     };
-    "express-session-1.17.0" = {
-      name = "express-session";
-      packageName = "express-session";
-      version = "1.17.0";
+    "express-openapi-6.0.0" = {
+      name = "express-openapi";
+      packageName = "express-openapi";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/express-session/-/express-session-1.17.0.tgz";
-        sha512 = "t4oX2z7uoSqATbMfsxWMbNjAL0T5zpvcJCk3Z9wnPPN7ibddhnmDZXHfEcoBMG2ojKXZoCyPMc5FbtK+G7SoDg==";
+        url = "https://registry.npmjs.org/express-openapi/-/express-openapi-6.0.0.tgz";
+        sha512 = "WQGmghzn+loQsIQUEnLZ0HVKCLhIBVcURvrAhyt6mOqsFsG2tBYhaNKX728EOz2aMXRhEQhkQ+RXQsIFpbS6IA==";
       };
     };
     "express-session-1.17.1" = {
@@ -16998,13 +17529,13 @@ let
         sha512 = "UbHwgqjxQZJiWRTMyhvWGvjBQduGCSBDhhZXYenziMFjxst5rMV+aJZ6hKPHZnPyHGsrqRICxtX8jtEbm/z36Q==";
       };
     };
-    "express-urlrewrite-1.2.0" = {
+    "express-urlrewrite-1.3.0" = {
       name = "express-urlrewrite";
       packageName = "express-urlrewrite";
-      version = "1.2.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/express-urlrewrite/-/express-urlrewrite-1.2.0.tgz";
-        sha1 = "8e667b7761ff1c7ffdb0efa05d64035387c823eb";
+        url = "https://registry.npmjs.org/express-urlrewrite/-/express-urlrewrite-1.3.0.tgz";
+        sha512 = "xy3WZqA9EIfb51FkL1R0EqW91Z8lMi9ohp/WrNxKukvQulybqvh7+OsGiw9JOD51NrGsSuWi2hqOv7GW+DGz1w==";
       };
     };
     "express-validator-2.21.0" = {
@@ -17052,15 +17583,6 @@ let
         sha512 = "yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==";
       };
     };
-    "extend-1.2.1" = {
-      name = "extend";
-      packageName = "extend";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/extend/-/extend-1.2.1.tgz";
-        sha1 = "a0f5fd6cfc83a5fe49ef698d60ec8a624dd4576c";
-      };
-    };
     "extend-3.0.0" = {
       name = "extend";
       packageName = "extend";
@@ -17178,6 +17700,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";
@@ -17295,13 +17826,13 @@ let
         sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
       };
     };
-    "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 = "8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==";
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
       };
     };
     "fast-diff-1.2.0" = {
@@ -17322,13 +17853,13 @@ let
         sha512 = "g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==";
       };
     };
-    "fast-glob-3.2.2" = {
+    "fast-glob-3.2.4" = {
       name = "fast-glob";
       packageName = "fast-glob";
-      version = "3.2.2";
+      version = "3.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz";
-        sha512 = "UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==";
+        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz";
+        sha512 = "kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==";
       };
     };
     "fast-json-parse-1.0.3" = {
@@ -17403,13 +17934,13 @@ let
         sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==";
       };
     };
-    "fast-text-encoding-1.0.2" = {
+    "fast-text-encoding-1.0.3" = {
       name = "fast-text-encoding";
       packageName = "fast-text-encoding";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.2.tgz";
-        sha512 = "5rQdinSsycpzvAoHga2EDn+LRX1d5xLFsuNG0Kg61JrAT/tASXcLL0nf/33v+sAxlQcfYmWbTURa1mmAf55jGw==";
+        url = "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz";
+        sha512 = "dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==";
       };
     };
     "fast-url-parser-1.1.3" = {
@@ -17430,13 +17961,13 @@ let
         sha512 = "483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==";
       };
     };
-    "fastq-1.7.0" = {
+    "fastq-1.8.0" = {
       name = "fastq";
       packageName = "fastq";
-      version = "1.7.0";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fastq/-/fastq-1.7.0.tgz";
-        sha512 = "YOadQRnHd5q6PogvAR/x62BGituF2ufiEA6s8aavQANw5YKHERI4AREboX6KotzP8oX2klxYF2wcV/7bn1clfQ==";
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz";
+        sha512 = "SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==";
       };
     };
     "fault-1.0.4" = {
@@ -17475,13 +18006,13 @@ let
         sha512 = "DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==";
       };
     };
-    "fd-lock-1.0.2" = {
+    "fd-lock-1.1.1" = {
       name = "fd-lock";
       packageName = "fd-lock";
-      version = "1.0.2";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fd-lock/-/fd-lock-1.0.2.tgz";
-        sha512 = "8O4zSv6rlNNghVfzVkj/p7LUIeBm7Xxk6QnhfmR1WJm/W4kwS8IyShy4X1peRnFUYZUYLlcwEMKXF8QWxJCMvg==";
+        url = "https://registry.npmjs.org/fd-lock/-/fd-lock-1.1.1.tgz";
+        sha512 = "Ng+IXbq6LPMDvvVb0Vr325NjqhPwqlLIvmf43ii7t3WQvo2sHU6V6jQY1cclflxPaPfvNUAuD5VdPuIO1sp50g==";
       };
     };
     "fd-read-stream-1.1.0" = {
@@ -17502,22 +18033,13 @@ let
         sha1 = "25c7c89cb1f9077f8891bbe61d8f390eae256f1e";
       };
     };
-    "fecha-2.3.3" = {
+    "fecha-4.2.0" = {
       name = "fecha";
       packageName = "fecha";
-      version = "2.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz";
-        sha512 = "lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==";
-      };
-    };
-    "feint-1.0.3" = {
-      name = "feint";
-      packageName = "feint";
-      version = "1.0.3";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/feint/-/feint-1.0.3.tgz";
-        sha512 = "BY1jwDlOx4uA9rtn2H9bZSuHT7yyOtSRDVwUwprRpRXvpm1F73gSGuHznEu50lT6epscULOknphOprG9ljoARg==";
+        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz";
+        sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==";
       };
     };
     "fields-0.1.24" = {
@@ -17592,24 +18114,6 @@ 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";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/file-exists-dazinatorfork/-/file-exists-dazinatorfork-1.0.2.tgz";
-        sha512 = "r70c72ln2YHzQINNfxDp02hAhbGkt1HffZ+Du8oetWDLjDtFja/Lm10lUaSh9e+wD+7VDvPee0b0C9SAy8pWZg==";
-      };
-    };
-    "file-to-npm-cache-0.1.0" = {
-      name = "file-to-npm-cache";
-      packageName = "file-to-npm-cache";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/file-to-npm-cache/-/file-to-npm-cache-0.1.0.tgz";
-        sha512 = "2/aq3BD1pkd6b4pafmTaO8EzRCiQKfFmJxg+zKAdDMAcqqJMC0nQYcuCU29say0ZTzXxafKXcJB50N+yb0WIoQ==";
-      };
-    };
     "file-type-10.11.0" = {
       name = "file-type";
       packageName = "file-type";
@@ -17736,15 +18240,6 @@ let
         sha512 = "7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==";
       };
     };
-    "filesize-4.2.1" = {
-      name = "filesize";
-      packageName = "filesize";
-      version = "4.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/filesize/-/filesize-4.2.1.tgz";
-        sha512 = "bP82Hi8VRZX/TUBKfE24iiUGsB/sfm2WUrwTQyAzQrhO3V9IhcBBNBXMyzLY5orACxRyYJ3d2HeRVX+eFv4lmA==";
-      };
-    };
     "filestream-5.0.0" = {
       name = "filestream";
       packageName = "filestream";
@@ -17754,15 +18249,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";
@@ -17799,15 +18285,6 @@ let
         sha512 = "yDEp513p7+iLdFHWBVdZFnRiOYwg8ZqmpaAiZCMjzqsbo7tCS4Qm4ulXOht337NGzkukKa9u3W4wqQ9tQPm3Ug==";
       };
     };
-    "finalhandler-0.3.3" = {
-      name = "finalhandler";
-      packageName = "finalhandler";
-      version = "0.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-0.3.3.tgz";
-        sha1 = "b1a09aa1e6a607b3541669b09bcb727f460cd426";
-      };
-    };
     "finalhandler-1.1.2" = {
       name = "finalhandler";
       packageName = "finalhandler";
@@ -17817,24 +18294,6 @@ let
         sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
       };
     };
-    "find-0.2.9" = {
-      name = "find";
-      packageName = "find";
-      version = "0.2.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/find/-/find-0.2.9.tgz";
-        sha1 = "4b73f1ff9e56ad91b76e716407fe5ffe6554bb8c";
-      };
-    };
-    "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";
@@ -17844,6 +18303,15 @@ let
         sha512 = "Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==";
       };
     };
+    "find-cache-dir-3.3.1" = {
+      name = "find-cache-dir";
+      packageName = "find-cache-dir";
+      version = "3.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz";
+        sha512 = "t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==";
+      };
+    };
     "find-index-0.1.1" = {
       name = "find-index";
       packageName = "find-index";
@@ -17853,15 +18321,6 @@ let
         sha1 = "675d358b2ca3892d795a1ab47232f8b6e2e0dde4";
       };
     };
-    "find-pkg-dir-1.0.1" = {
-      name = "find-pkg-dir";
-      packageName = "find-pkg-dir";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/find-pkg-dir/-/find-pkg-dir-1.0.1.tgz";
-        sha512 = "pIXIrZshXst3hpg5nXDYALHlN4ikh4IwoM0QRnMnYIALChamvpPCJS1Mpwp27GpXXTL/647LDS4JkH1yfAKctw==";
-      };
-    };
     "find-process-1.4.3" = {
       name = "find-process";
       packageName = "find-process";
@@ -17880,6 +18339,15 @@ let
         sha512 = "UME7hNwBfzeISSFQcBEDemEEskpOjI/shPrpJM5PI4DSdn6hX0dmz+2dL70blZER2z8tSnTRL+2rfzlYgtbBoQ==";
       };
     };
+    "find-root-1.1.0" = {
+      name = "find-root";
+      packageName = "find-root";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz";
+        sha512 = "NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==";
+      };
+    };
     "find-up-1.1.2" = {
       name = "find-up";
       packageName = "find-up";
@@ -17979,13 +18447,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";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/firefox-profile/-/firefox-profile-1.3.1.tgz";
-        sha512 = "8q7DnwVIXvuJuBm1shr5ivRh0Ih2ytWwOIMwHInDSlVyrjQVXy7Ik0frItDdWb/P5CIpQFcMk9fPsUwNqi2lyQ==";
+        url = "https://registry.npmjs.org/firefox-profile/-/firefox-profile-2.0.0.tgz";
+        sha512 = "BPfcUISOV6+UwF6uqo5QS8iuFL6XZvHCm+1iuynIJ7fe1zea69Is77/n/098fp0a9sZ94lvT8rpYB15S/riSaA==";
       };
     };
     "first-chunk-stream-1.0.0" = {
@@ -18015,6 +18483,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";
@@ -18132,15 +18609,6 @@ let
         sha1 = "554440766da0a0d603999f433453f6c2fc6a75c1";
       };
     };
-    "flatten-1.0.3" = {
-      name = "flatten";
-      packageName = "flatten";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz";
-        sha512 = "dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==";
-      };
-    };
     "flow-bin-0.118.0" = {
       name = "flow-bin";
       packageName = "flow-bin";
@@ -18150,13 +18618,13 @@ let
         sha512 = "jlbUu0XkbpXeXhan5xyTqVK1jmEKNxE8hpzznI3TThHTr76GiFwK0iRzhDo4KNy+S9h/KxHaqVhTP86vA6wHCg==";
       };
     };
-    "flow-parser-0.123.0" = {
+    "flow-parser-0.130.0" = {
       name = "flow-parser";
       packageName = "flow-parser";
-      version = "0.123.0";
+      version = "0.130.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.123.0.tgz";
-        sha512 = "scMjcsICxtHm141rFTfWgKnNbz9MUubgc9kNSh+0xvTYIA/L+9AzlPRK0FMcfNiqQTWjn0IMGqiwySLzMZVvtw==";
+        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.130.0.tgz";
+        sha512 = "h9NATB7QsKhj2ucgEH2XzB7p+5ubk8IZX5u/qHkN+oyQoECi1diq6mYfIuYBOyL35f3AhJf/YDkBYQBTqqYK+w==";
       };
     };
     "fluent-ffmpeg-2.1.2" = {
@@ -18195,13 +18663,13 @@ let
         sha1 = "ae049a714386bb83e342657a82924b70364a90d6";
       };
     };
-    "flumedb-1.1.0" = {
+    "flumedb-2.1.8" = {
       name = "flumedb";
       packageName = "flumedb";
-      version = "1.1.0";
+      version = "2.1.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flumedb/-/flumedb-1.1.0.tgz";
-        sha512 = "Bwol+72GU5z2DxZlnaxUA9A8qaRcQcdTprmRcgfqn2ldn147ByVh9Zyp90hVGPlo/oEN/yjOBUXcNkK3SYjbgA==";
+        url = "https://registry.npmjs.org/flumedb/-/flumedb-2.1.8.tgz";
+        sha512 = "MtBCZFjj9GuqOQP8Ld87FbXm8ztQyLkLeuiHuB5+aACFuVn1kunnCis75R03ujFZTqCFmkBwFz7E016b3DB0zA==";
       };
     };
     "flumelog-offset-3.4.4" = {
@@ -18231,31 +18699,40 @@ let
         sha512 = "Nl0gJOgrDGpJGZDkP6gvo6s1Q9WmRynbHUvI/JY3eQ81YgzUUa2FKLlfu6OHV5ho5NeXP+00F+0K1yBVaEgJOQ==";
       };
     };
-    "flumeview-query-6.3.0" = {
-      name = "flumeview-query";
-      packageName = "flumeview-query";
-      version = "6.3.0";
+    "flumeview-level-4.0.4" = {
+      name = "flumeview-level";
+      packageName = "flumeview-level";
+      version = "4.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flumeview-level/-/flumeview-level-4.0.4.tgz";
+        sha512 = "8C/o/oZU73ot1LMbxCyKeZJ0D3L5AGdxzIF5H2QtmznMSoZHVG1gT2IDjkOtesenVPlLQKnL95ewMKbE7cXWEw==";
+      };
+    };
+    "flumeview-links-1.0.1" = {
+      name = "flumeview-links";
+      packageName = "flumeview-links";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flumeview-query/-/flumeview-query-6.3.0.tgz";
-        sha512 = "8QBannTFLICARmflhHpXNeR5hh6IzIyJz4XhKTofzmxq/hXEn1un7aF6P6dRQkOwthENDTbSB07eWKqwnYDKtw==";
+        url = "https://registry.npmjs.org/flumeview-links/-/flumeview-links-1.0.1.tgz";
+        sha512 = "X7enLH2Ijoav3xA+EPoahf5e1RjMoRaHWQcG/RyHvpXbV/qlhEgH2zwIi8kg+Ezt90KTtnGxVygcSZ7RGpdkng==";
       };
     };
-    "flumeview-query-7.2.1" = {
+    "flumeview-query-8.0.0" = {
       name = "flumeview-query";
       packageName = "flumeview-query";
-      version = "7.2.1";
+      version = "8.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flumeview-query/-/flumeview-query-7.2.1.tgz";
-        sha512 = "iLr5S+BrGJIls30jR42L0g/gehSrJmAlYIQhcu0fNpUW5dOq7sfa8rOmJo0lpC2Ns5EIgGogR6uO8ze7qWFvLQ==";
+        url = "https://registry.npmjs.org/flumeview-query/-/flumeview-query-8.0.0.tgz";
+        sha512 = "uPTT5I26ePMc6Xhjebu1aiaHAd7P3EqyE9SZB6B9ZIvXtMXhFYNk7iO1yzh1ZXp3aYzdYmrI9k8mSz9urZ9gNQ==";
       };
     };
-    "flumeview-reduce-1.3.16" = {
+    "flumeview-reduce-1.3.17" = {
       name = "flumeview-reduce";
       packageName = "flumeview-reduce";
-      version = "1.3.16";
+      version = "1.3.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flumeview-reduce/-/flumeview-reduce-1.3.16.tgz";
-        sha512 = "4ATidV3QARML74eNdi+HPzGa4JtSZfnQpW6QQArlKZ6NRkjax3EFLt42hK2VJyADxnVnsVInt/ItqJL/4G1/5g==";
+        url = "https://registry.npmjs.org/flumeview-reduce/-/flumeview-reduce-1.3.17.tgz";
+        sha512 = "Li09TntlRpN51GtFKllIh5nDdBcyDazvi5a/yvbdUCS9xAFb8OA6H6uu32W9gG+4GyvfUi9AsOyN8RQ8OcREQA==";
       };
     };
     "flush-write-stream-1.1.1" = {
@@ -18276,13 +18753,22 @@ let
         sha1 = "5214d7537a4d06a4a301c0cc262feb84188002e7";
       };
     };
-    "follow-redirects-1.11.0" = {
+    "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.12.1" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.11.0";
+      version = "1.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.11.0.tgz";
-        sha512 = "KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.12.1.tgz";
+        sha512 = "tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg==";
       };
     };
     "follow-redirects-1.5.10" = {
@@ -18384,22 +18870,22 @@ let
         sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
       };
     };
-    "forever-monitor-2.0.0" = {
+    "forever-monitor-3.0.1" = {
       name = "forever-monitor";
       packageName = "forever-monitor";
-      version = "2.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/forever-monitor/-/forever-monitor-2.0.0.tgz";
-        sha512 = "5tMNrrDjeI2tkS+m+fxETWXaUIYEarY9Sy2pw9AOq9sVENA/8B7pl3xVAQTG0fND8ypet3rQhg+G4D4f+fVw2w==";
+        url = "https://registry.npmjs.org/forever-monitor/-/forever-monitor-3.0.1.tgz";
+        sha512 = "47VfT5AYpxn1bnsnH6UfpBWKpMVnSz42MZwH+hwz/wACd9THyUu/fRoCRIT758fzCAbRoHIlkVUAL+WmlxSKeg==";
       };
     };
-    "form-data-0.1.3" = {
-      name = "form-data";
-      packageName = "form-data";
-      version = "0.1.3";
+    "fork-ts-checker-webpack-plugin-5.0.4" = {
+      name = "fork-ts-checker-webpack-plugin";
+      packageName = "fork-ts-checker-webpack-plugin";
+      version = "5.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/form-data/-/form-data-0.1.3.tgz";
-        sha1 = "4ee4346e6eb5362e8344a02075bd8dbd8c7373ea";
+        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-5.0.4.tgz";
+        sha512 = "nSEqM3KhAjTf8VmuZym2k6WadIasvXybJExFegqMJDkTrOBOY8yGjsXG2FGFJls3DOHtXKzrr3Bv0ZD1LaM7cA==";
       };
     };
     "form-data-1.0.0-rc3" = {
@@ -18456,6 +18942,15 @@ let
         sha512 = "CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==";
       };
     };
+    "form-urlencoded-4.2.1" = {
+      name = "form-urlencoded";
+      packageName = "form-urlencoded";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-4.2.1.tgz";
+        sha512 = "0eFJroOH2qaqc/630d4YZpmsyKmh6sfq/1z3YMXvFab0O6teGnf8640C7gufikwbQJFaC6nPlG4d/GiYVN+Dcw==";
+      };
+    };
     "format-0.2.2" = {
       name = "format";
       packageName = "format";
@@ -18483,15 +18978,6 @@ let
         sha1 = "68f63325a035e644b6f7bb3d11243b9761de1b30";
       };
     };
-    "formidable-1.0.14" = {
-      name = "formidable";
-      packageName = "formidable";
-      version = "1.0.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/formidable/-/formidable-1.0.14.tgz";
-        sha1 = "2b3f4c411cbb5fdd695c44843e2a23514a43231a";
-      };
-    };
     "formidable-1.0.17" = {
       name = "formidable";
       packageName = "formidable";
@@ -18519,22 +19005,13 @@ let
         sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
       };
     };
-    "fp-ts-2.5.4" = {
+    "fp-ts-2.8.1" = {
       name = "fp-ts";
       packageName = "fp-ts";
-      version = "2.5.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.5.4.tgz";
-        sha512 = "cZlLeEneRYypc2dOzB9h8+bd9mQhJVyt2g0Dny2gKR7uWNgA4EmLSJyguLYsTU44nJSSG9EjurUalEc0wQqeKw==";
-      };
-    };
-    "fraction.js-4.0.12" = {
-      name = "fraction.js";
-      packageName = "fraction.js";
-      version = "4.0.12";
+      version = "2.8.1";
       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.1.tgz";
+        sha512 = "HuA/6roEliHoBgEOLCKmGRcM90e2trW/ITZZ9d9P/ra7PreqQagC3Jg6OzqWkai13KUbG90b8QO9rHPBGK/ckw==";
       };
     };
     "fragment-cache-0.2.1" = {
@@ -18573,15 +19050,6 @@ let
         sha1 = "bfd9402cf3df12c4a4c310c79f99a3dde13d34a7";
       };
     };
-    "fresh-0.2.4" = {
-      name = "fresh";
-      packageName = "fresh";
-      version = "0.2.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fresh/-/fresh-0.2.4.tgz";
-        sha1 = "3582499206c9723714190edd74b4604feb4a614c";
-      };
-    };
     "fresh-0.5.2" = {
       name = "fresh";
       packageName = "fresh";
@@ -18627,13 +19095,13 @@ let
         sha512 = "KhjJmZAs2eqfhCb6PdPx4RcZtheGTz86tpTC5JTvqBn/xda+Nb+0C7dCyjOSN7T76H6a56LvH0SVXQMchLXDRw==";
       };
     };
-    "fs-chunk-store-2.0.1" = {
+    "fs-chunk-store-2.0.2" = {
       name = "fs-chunk-store";
       packageName = "fs-chunk-store";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fs-chunk-store/-/fs-chunk-store-2.0.1.tgz";
-        sha512 = "V9PXz33rhq6E9lFmvmElmLyvEvnSeryU/TzfHnCEIpEU6Y/2Fyc4xEeeneV/pUgKG1mRAKSU+DBtHyO2GQ2EBA==";
+        url = "https://registry.npmjs.org/fs-chunk-store/-/fs-chunk-store-2.0.2.tgz";
+        sha512 = "4nSngo6KyoGguscb5sTxjcxOvtRiMxuQl4vFK9SnYYMjmy08Nm095ACoM3lxj1KmCuxO4JMnuo4EebMWHlagjQ==";
       };
     };
     "fs-constants-1.0.0" = {
@@ -18672,15 +19140,6 @@ let
         sha1 = "9ae1fdd94897798edab76d0918cf42d0c3184fa9";
       };
     };
-    "fs-extra-0.30.0" = {
-      name = "fs-extra";
-      packageName = "fs-extra";
-      version = "0.30.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz";
-        sha1 = "f233ffcc08d4da7d432daa449776989db1df93f0";
-      };
-    };
     "fs-extra-0.6.4" = {
       name = "fs-extra";
       packageName = "fs-extra";
@@ -18699,15 +19158,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";
@@ -18726,15 +19176,6 @@ let
         sha512 = "66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==";
       };
     };
-    "fs-extra-6.0.1" = {
-      name = "fs-extra";
-      packageName = "fs-extra";
-      version = "6.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz";
-        sha512 = "GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==";
-      };
-    };
     "fs-extra-7.0.1" = {
       name = "fs-extra";
       packageName = "fs-extra";
@@ -18762,6 +19203,15 @@ let
         sha512 = "pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==";
       };
     };
+    "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-minipass-1.2.7" = {
       name = "fs-minipass";
       packageName = "fs-minipass";
@@ -18789,6 +19239,24 @@ let
         sha1 = "0b7815fc3201c6a69e14db98ce098c16935259eb";
       };
     };
+    "fs-monkey-1.0.1" = {
+      name = "fs-monkey";
+      packageName = "fs-monkey";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.1.tgz";
+        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";
@@ -18834,22 +19302,13 @@ let
         sha512 = "HxOTRiFS3PqwAOmlp1mTwLA+xhQBdaP82b5aBamc/rHKFVyn4qL8YpngaAleD52PNMzBm6TsGOoU/Hq+bAfBhA==";
       };
     };
-    "fsevents-1.2.12" = {
-      name = "fsevents";
-      packageName = "fsevents";
-      version = "1.2.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz";
-        sha512 = "Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==";
-      };
-    };
-    "fsevents-2.1.2" = {
+    "fsevents-1.2.13" = {
       name = "fsevents";
       packageName = "fsevents";
-      version = "2.1.2";
+      version = "1.2.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz";
-        sha512 = "R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==";
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz";
+        sha512 = "oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==";
       };
     };
     "fsevents-2.1.3" = {
@@ -18960,13 +19419,13 @@ let
         sha1 = "979e22f9451b4b38f051f7937c919dbacc692958";
       };
     };
-    "fx-runner-1.0.11" = {
+    "fx-runner-1.0.13" = {
       name = "fx-runner";
       packageName = "fx-runner";
-      version = "1.0.11";
+      version = "1.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fx-runner/-/fx-runner-1.0.11.tgz";
-        sha512 = "igHogHf5wTqqaPPTOav18MMTVq/eoeTJiw/PvPUuwnzU8vbyZInFPgR66G9ZBwvwxC7e611nbtB4xSMcYVhlvg==";
+        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" = {
@@ -19077,15 +19536,6 @@ let
         sha512 = "r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==";
       };
     };
-    "get-amd-module-type-3.0.0" = {
-      name = "get-amd-module-type";
-      packageName = "get-amd-module-type";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-3.0.0.tgz";
-        sha512 = "99Q7COuACPfVt18zH9N4VAMyb81S6TUgJm2NgV6ERtkh9VIkAaByZkW530wl3lLN5KTtSrK9jVLxYsoP5hQKsw==";
-      };
-    };
     "get-assigned-identifiers-1.2.0" = {
       name = "get-assigned-identifiers";
       packageName = "get-assigned-identifiers";
@@ -19131,13 +19581,13 @@ 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";
+    "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-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz";
-        sha512 = "I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==";
+        url = "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz";
+        sha512 = "pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==";
       };
     };
     "get-pkg-repo-1.4.0" = {
@@ -19221,6 +19671,15 @@ let
         sha512 = "zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==";
       };
     };
+    "get-stdin-8.0.0" = {
+      name = "get-stdin";
+      packageName = "get-stdin";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz";
+        sha512 = "sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==";
+      };
+    };
     "get-stream-2.3.1" = {
       name = "get-stream";
       packageName = "get-stream";
@@ -19275,13 +19734,13 @@ let
         sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
       };
     };
-    "getmac-5.1.0" = {
+    "getmac-5.11.0" = {
       name = "getmac";
       packageName = "getmac";
-      version = "5.1.0";
+      version = "5.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/getmac/-/getmac-5.1.0.tgz";
-        sha512 = "hpZnhRQa2O2YbIPO1bX6vv7Zy7DyQXNH6tDpX/yfjhFl0AsAgEZZ1FqQ6e32CE+oKMykjp1yRJ5BQKMNEX5McQ==";
+        url = "https://registry.npmjs.org/getmac/-/getmac-5.11.0.tgz";
+        sha512 = "p3g41fJt9du5KKkIXaJm7bcUrwUxn8Jg/8AVBgUmBNdCCorczRJXHLqWSETJuib9dptwNuNcfbct/OoM/meiMA==";
       };
     };
     "getpass-0.1.6" = {
@@ -19554,15 +20013,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";
@@ -19653,13 +20103,13 @@ let
         sha1 = "b95b4a8df74b39c83298b0c05c978b4d9a3b710b";
       };
     };
-    "glob-watcher-5.0.3" = {
+    "glob-watcher-5.0.5" = {
       name = "glob-watcher";
       packageName = "glob-watcher";
-      version = "5.0.3";
+      version = "5.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz";
-        sha512 = "8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==";
+        url = "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz";
+        sha512 = "zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==";
       };
     };
     "glob2base-0.0.12" = {
@@ -19680,13 +20130,13 @@ let
         sha1 = "e76989268a6c74c38908b1305b10fc0e394e9d0f";
       };
     };
-    "global-agent-2.1.8" = {
+    "global-agent-2.1.12" = {
       name = "global-agent";
       packageName = "global-agent";
-      version = "2.1.8";
+      version = "2.1.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/global-agent/-/global-agent-2.1.8.tgz";
-        sha512 = "VpBe/rhY6Rw2VDOTszAMNambg+4Qv8j0yiTNDYEXXXxkUNGWLHp8A3ztK4YDBbFNcWF4rgsec6/5gPyryya/+A==";
+        url = "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz";
+        sha512 = "caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==";
       };
     };
     "global-dirs-0.1.1" = {
@@ -19713,7 +20163,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         name = "global-2.0.1.tar.gz";
-        url = "https://codeload.github.com/component/global/tar.gz/v2.0.1";
+        url = https://codeload.github.com/component/global/tar.gz/v2.0.1;
         sha256 = "42be02b7148745447f6ba21137c972ca82d2cad92d30d63bd4fc310623901785";
       };
     };
@@ -19843,13 +20293,13 @@ let
         sha512 = "7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==";
       };
     };
-    "globby-11.0.0" = {
+    "globby-11.0.1" = {
       name = "globby";
       packageName = "globby";
-      version = "11.0.0";
+      version = "11.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globby/-/globby-11.0.0.tgz";
-        sha512 = "iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg==";
+        url = "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz";
+        sha512 = "iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==";
       };
     };
     "globby-4.1.0" = {
@@ -19924,13 +20374,13 @@ let
         sha1 = "d9c8edde1da79d125a151b79533b978676346ae5";
       };
     };
-    "globule-1.3.1" = {
+    "globule-1.3.2" = {
       name = "globule";
       packageName = "globule";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz";
-        sha512 = "OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==";
+        url = "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz";
+        sha512 = "7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==";
       };
     };
     "glogg-1.0.2" = {
@@ -20014,6 +20464,15 @@ let
         sha512 = "aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==";
       };
     };
+    "got-11.5.1" = {
+      name = "got";
+      packageName = "got";
+      version = "11.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/got/-/got-11.5.1.tgz";
+        sha512 = "reQEZcEBMTGnujmQ+Wm97mJs/OK6INtO6HmLI+xt3+9CvnRwWjXutUvb2mqr+Ao4Lu05Rx6+udx9sOQAmExMxA==";
+      };
+    };
     "got-6.7.1" = {
       name = "got";
       packageName = "got";
@@ -20104,24 +20563,6 @@ let
         sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
       };
     };
-    "graphcool-json-schema-1.2.1" = {
-      name = "graphcool-json-schema";
-      packageName = "graphcool-json-schema";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphcool-json-schema/-/graphcool-json-schema-1.2.1.tgz";
-        sha1 = "6cefb6c8b50543615e6efa43bb54f9e3fbb281f3";
-      };
-    };
-    "graphcool-yml-0.4.15" = {
-      name = "graphcool-yml";
-      packageName = "graphcool-yml";
-      version = "0.4.15";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphcool-yml/-/graphcool-yml-0.4.15.tgz";
-        sha512 = "ZVbRfVI8l21+1JQkcG0XuRam9mgiVUh9/PIcluzCZca2+lZQg/e1WCDXpwsC69i2ZdPcZwpOCLFKQMg5rnulCA==";
-      };
-    };
     "grapheme-breaker-0.3.2" = {
       name = "grapheme-breaker";
       packageName = "grapheme-breaker";
@@ -20149,139 +20590,49 @@ let
         sha512 = "jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==";
       };
     };
-    "graphql-0.13.2" = {
+    "graphql-14.7.0" = {
       name = "graphql";
       packageName = "graphql";
-      version = "0.13.2";
+      version = "14.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql/-/graphql-0.13.2.tgz";
-        sha512 = "QZ5BL8ZO/B20VA8APauGBg3GyEgZ19eduvpLWoq5x7gMmWnHoy8rlQWPLmWgFvo1yNgjSEFMesmS4R6pPr7xog==";
+        url = "https://registry.npmjs.org/graphql/-/graphql-14.7.0.tgz";
+        sha512 = "l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA==";
       };
     };
-    "graphql-14.6.0" = {
+    "graphql-15.3.0" = {
       name = "graphql";
       packageName = "graphql";
-      version = "14.6.0";
+      version = "15.3.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-15.3.0.tgz";
+        sha512 = "GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w==";
       };
     };
-    "graphql-anywhere-4.2.6" = {
+    "graphql-anywhere-4.2.7" = {
       name = "graphql-anywhere";
       packageName = "graphql-anywhere";
-      version = "4.2.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-anywhere/-/graphql-anywhere-4.2.6.tgz";
-        sha512 = "re4fqaii3l0fCsC3qFKQrmwffephI9rinrwXAy+4EnWip2YkGlV8wC4en42eW8KI2nlWBh9lkJPfR/5TZf/l1w==";
-      };
-    };
-    "graphql-cli-prepare-1.4.19" = {
-      name = "graphql-cli-prepare";
-      packageName = "graphql-cli-prepare";
-      version = "1.4.19";
+      version = "4.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-cli-prepare/-/graphql-cli-prepare-1.4.19.tgz";
-        sha512 = "PJFm9/DvfZwKz3h2Wyn/5Sr/sX35XsYzNO3olfm5V8qqueNIONI0g7sVqpF7wYdvhEtt/8YA9DjgrGclCbpMfA==";
+        url = "https://registry.npmjs.org/graphql-anywhere/-/graphql-anywhere-4.2.7.tgz";
+        sha512 = "fJHvVywWVWjiHuPIMs16Nfjf4zdQUwSO1LKycwBJCWIPeoeQ8LqXK2BgYoZAHkhKEFktZZeYyzS4o/uIUG0z5A==";
       };
     };
-    "graphql-config-2.2.1" = {
+    "graphql-config-3.0.3" = {
       name = "graphql-config";
       packageName = "graphql-config";
-      version = "2.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-config/-/graphql-config-2.2.1.tgz";
-        sha512 = "U8+1IAhw9m6WkZRRcyj8ZarK96R6lQBQ0an4lp76Ps9FyhOXENC5YQOxOFGm5CxPrX2rD0g3Je4zG5xdNJjwzQ==";
-      };
-    };
-    "graphql-config-extension-graphcool-1.0.11" = {
-      name = "graphql-config-extension-graphcool";
-      packageName = "graphql-config-extension-graphcool";
-      version = "1.0.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-config-extension-graphcool/-/graphql-config-extension-graphcool-1.0.11.tgz";
-        sha512 = "uNhyMqj30M4KLkD/gGEEr6cPuVX/jtm0C9O5Bj9V2jFhN5IdHXWJx+fC/p/xxh82iOuR8uibKNCXzwA7R6F6IA==";
-      };
-    };
-    "graphql-config-extension-prisma-0.3.0" = {
-      name = "graphql-config-extension-prisma";
-      packageName = "graphql-config-extension-prisma";
-      version = "0.3.0";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-config-extension-prisma/-/graphql-config-extension-prisma-0.3.0.tgz";
-        sha512 = "bOufkkog0cSfHJ9gVD3Wy+KHmkSTHWcFfPaV/NVpIvfJx15gU0/CzuC6lcTjioWmn+UGzYdoqmP7OrJAWT57sw==";
+        url = "https://registry.npmjs.org/graphql-config/-/graphql-config-3.0.3.tgz";
+        sha512 = "MBY0wEjvcgJtZUyoqpPvOE1e5qPI0hJaa1gKTqjonSFiCsNHX2lykNjpOPcodmAgH1V06ELxhGnm9kcVzqvi/g==";
       };
     };
-    "graphql-extensions-0.12.0" = {
+    "graphql-extensions-0.12.4" = {
       name = "graphql-extensions";
       packageName = "graphql-extensions";
-      version = "0.12.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.0.tgz";
-        sha512 = "kBRLtNeknrFl0W/UQQYebj6qnvb1E1RpQ2+C7Y8pwMc6yV8+9pWFx5RP0HzfeEuScCmK93i3H5sdPedoQWwENw==";
-      };
-    };
-    "graphql-import-0.4.5" = {
-      name = "graphql-import";
-      packageName = "graphql-import";
-      version = "0.4.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-import/-/graphql-import-0.4.5.tgz";
-        sha512 = "G/+I08Qp6/QGTb9qapknCm3yPHV0ZL7wbaalWFpxsfR8ZhZoTBe//LsbsCKlbALQpcMegchpJhpTSKiJjhaVqQ==";
-      };
-    };
-    "graphql-import-0.7.1" = {
-      name = "graphql-import";
-      packageName = "graphql-import";
-      version = "0.7.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-import/-/graphql-import-0.7.1.tgz";
-        sha512 = "YpwpaPjRUVlw2SN3OPljpWbVRWAhMAyfSba5U47qGMOSsPLi2gYeJtngGpymjm9nk57RFWEpjqwh4+dpYuFAPw==";
-      };
-    };
-    "graphql-playground-html-1.6.12" = {
-      name = "graphql-playground-html";
-      packageName = "graphql-playground-html";
-      version = "1.6.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-playground-html/-/graphql-playground-html-1.6.12.tgz";
-        sha512 = "yOYFwwSMBL0MwufeL8bkrNDgRE7eF/kTHiwrqn9FiR9KLcNIl1xw9l9a+6yIRZM56JReQOHpbQFXTZn1IuSKRg==";
-      };
-    };
-    "graphql-playground-middleware-express-1.7.12" = {
-      name = "graphql-playground-middleware-express";
-      packageName = "graphql-playground-middleware-express";
-      version = "1.7.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.7.12.tgz";
-        sha512 = "17szgonnVSxWVrgblLRHHLjWnMUONfkULIwSunaMvYx8k5oG3yL86cyGCbHuDFUFkyr2swLhdfYl4mDfDXuvOA==";
-      };
-    };
-    "graphql-request-1.8.2" = {
-      name = "graphql-request";
-      packageName = "graphql-request";
-      version = "1.8.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-request/-/graphql-request-1.8.2.tgz";
-        sha512 = "dDX2M+VMsxXFCmUX0Vo0TopIZIX4ggzOtiCsThgtrKR4niiaagsGTDIHj3fsOMFETpa064vzovI+4YV4QnMbcg==";
-      };
-    };
-    "graphql-schema-linter-0.2.1" = {
-      name = "graphql-schema-linter";
-      packageName = "graphql-schema-linter";
-      version = "0.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-schema-linter/-/graphql-schema-linter-0.2.1.tgz";
-        sha512 = "Z0rKFkxvIXqktkd/4luMYgBXWZeVCp8VJysOKz3RtbcpqbiIpdwtH0J678xOQ+hJLwEfrdCrhKNxxvRpt6mCSg==";
-      };
-    };
-    "graphql-static-binding-0.9.3" = {
-      name = "graphql-static-binding";
-      packageName = "graphql-static-binding";
-      version = "0.9.3";
+      version = "0.12.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-static-binding/-/graphql-static-binding-0.9.3.tgz";
-        sha512 = "C8+EqwNCiQxUhbrWEokxN16oINAkhIDBzEpKHXeatBRaAyMczXm0J6HMaMSKOuQmk7P1PbDHIVW3FVZwXF2WJQ==";
+        url = "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.4.tgz";
+        sha512 = "GnR4LiWk3s2bGOqIh6V1JgnSXw2RCH4NOgbCFEWvB6JqWHXTlXnLZ8bRSkCiD4pltv7RHUPWqN/sGh8R6Ae/ag==";
       };
     };
     "graphql-subscriptions-1.1.0" = {
@@ -20293,13 +20644,22 @@ let
         sha512 = "6WzlBFC0lWmXJbIVE8OgFgXIP4RJi3OQgTPa0DVMsDXdpRDjTsM1K9wfl5HSYX7R87QAGlvcv2Y4BIZa/ItonA==";
       };
     };
-    "graphql-tag-2.10.3" = {
+    "graphql-tag-2.10.4" = {
       name = "graphql-tag";
       packageName = "graphql-tag";
-      version = "2.10.3";
+      version = "2.10.4";
       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.10.4.tgz";
+        sha512 = "O7vG5BT3w6Sotc26ybcvLKNTdfr4GfsIVMD+LdYqXCeJIYPRyp8BIsDOUtxw7S1PYvRw5vH3278J2EDezR6mfA==";
+      };
+    };
+    "graphql-tag-2.11.0" = {
+      name = "graphql-tag";
+      packageName = "graphql-tag";
+      version = "2.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.11.0.tgz";
+        sha512 = "VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA==";
       };
     };
     "graphql-tools-4.0.8" = {
@@ -20311,13 +20671,22 @@ let
         sha512 = "MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==";
       };
     };
-    "graphql-type-json-0.3.1" = {
+    "graphql-type-json-0.2.4" = {
       name = "graphql-type-json";
       packageName = "graphql-type-json";
-      version = "0.3.1";
+      version = "0.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.1.tgz";
-        sha512 = "1lPkUXQ2L8o+ERLzVAuc3rzc/E6pGF+6HnjihCVTK0VzR0jCuUd92FqNxoHdfILXqOn2L6b4y47TBxiPyieUVA==";
+        url = "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.2.4.tgz";
+        sha512 = "/tq02ayMQjrG4oDFDRLLrPk0KvJXue0nVXoItBe7uAdbNXjQUu+HYCBdAmPLQoseVzUKKMzrhq2P/sfI76ON6w==";
+      };
+    };
+    "graphql-type-json-0.3.2" = {
+      name = "graphql-type-json";
+      packageName = "graphql-type-json";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.2.tgz";
+        sha512 = "J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==";
       };
     };
     "graphql-upload-8.1.0" = {
@@ -20410,13 +20779,22 @@ let
         sha512 = "7Isf9Y690o/Q5MVjEylH1H7L8WeZ89woW7DnhD5unTintOdZb67KdOayRgp9trUFo+f9UyJtuatV42e/+kghPg==";
       };
     };
-    "gulp-cli-2.2.0" = {
+    "gulp-cli-2.3.0" = {
       name = "gulp-cli";
       packageName = "gulp-cli";
-      version = "2.2.0";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz";
+        sha512 = "zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==";
+      };
+    };
+    "gulp-eslint-3.0.1" = {
+      name = "gulp-eslint";
+      packageName = "gulp-eslint";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz";
-        sha512 = "rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==";
+        url = "https://registry.npmjs.org/gulp-eslint/-/gulp-eslint-3.0.1.tgz";
+        sha1 = "04e57e3e18c6974267c12cf6855dc717d4a313bd";
       };
     };
     "gulp-less-3.5.0" = {
@@ -20464,13 +20842,13 @@ let
         sha1 = "0054e1e744502e27c04c187c3ecc505dd54bbb4f";
       };
     };
-    "gulp-vinyl-zip-2.2.0" = {
+    "gulp-vinyl-zip-2.2.1" = {
       name = "gulp-vinyl-zip";
       packageName = "gulp-vinyl-zip";
-      version = "2.2.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.2.0.tgz";
-        sha512 = "7tKXptewHdKnOV0HGIyB/5+dvfmwmHq+hnolAQ64zz/pPomUXJcFPeYCkatRmOztkfZOn+14zoIFS2G39PkzIg==";
+        url = "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.2.1.tgz";
+        sha512 = "9lwCZUkrENzP649hVQB2r+8GgeGtVrqA2fEeVDX6aYr6+yJjdczWu0r1C6WvbZdzhXcA61MtR5MEyjR9a3D7cw==";
       };
     };
     "gulplog-1.0.0" = {
@@ -20545,13 +20923,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" = {
@@ -20842,6 +21220,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";
@@ -20860,6 +21247,15 @@ let
         sha512 = "0FfLHmfArWOizbdwjL+Rc9QIBzqP80juicNl4S4NEPq5OYWBCgYrtYDPUDoSyQQ9IQlBn9W7++fpYQNzZSq/wQ==";
       };
     };
+    "hast-util-from-parse5-5.0.3" = {
+      name = "hast-util-from-parse5";
+      packageName = "hast-util-from-parse5";
+      version = "5.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz";
+        sha512 = "gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==";
+      };
+    };
     "hast-util-has-property-1.0.4" = {
       name = "hast-util-has-property";
       packageName = "hast-util-has-property";
@@ -20869,13 +21265,13 @@ 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" = {
@@ -20896,13 +21292,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" = {
@@ -20914,6 +21328,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";
@@ -20950,13 +21373,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" = {
@@ -21022,6 +21445,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";
@@ -21040,13 +21472,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" = {
@@ -21058,15 +21490,6 @@ let
         sha1 = "7f529cb676884032b0756750556ce77123bec406";
       };
     };
-    "hiredis-0.4.1" = {
-      name = "hiredis";
-      packageName = "hiredis";
-      version = "0.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hiredis/-/hiredis-0.4.1.tgz";
-        sha1 = "aab4dcfd0fc4cbdb219d268005f2335a3c639e8f";
-      };
-    };
     "historic-readline-1.0.8" = {
       name = "historic-readline";
       packageName = "historic-readline";
@@ -21103,6 +21526,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";
@@ -21130,13 +21562,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" = {
@@ -21247,13 +21679,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" = {
@@ -21265,13 +21697,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" = {
@@ -21391,6 +21823,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";
@@ -21419,31 +21860,31 @@ let
         sha256 = "d7408d01b05fcbd5bb4fb44fd3d7d71463bafd5124d7e69c6f3e97cef8c65368";
       };
     };
-    "http-parser-js-0.4.10" = {
+    "http-parser-js-0.4.13" = {
       name = "http-parser-js";
       packageName = "http-parser-js";
-      version = "0.4.10";
+      version = "0.4.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz";
-        sha1 = "92c9c1374c35085f75db359ec56cc257cbb93fa4";
+        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz";
+        sha1 = "3bd6d6fde6e3172c9334c3b33b6c193d80fe1137";
       };
     };
-    "http-parser-js-0.4.13" = {
+    "http-parser-js-0.5.2" = {
       name = "http-parser-js";
       packageName = "http-parser-js";
-      version = "0.4.13";
+      version = "0.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz";
-        sha1 = "3bd6d6fde6e3172c9334c3b33b6c193d80fe1137";
+        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz";
+        sha512 = "opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==";
       };
     };
-    "http-proxy-1.18.0" = {
+    "http-proxy-1.18.1" = {
       name = "http-proxy";
       packageName = "http-proxy";
-      version = "1.18.0";
+      version = "1.18.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz";
-        sha512 = "84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==";
+        url = "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz";
+        sha512 = "7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==";
       };
     };
     "http-proxy-agent-2.1.0" = {
@@ -21509,6 +21950,33 @@ let
         sha512 = "CbG3io8gUSIxNNSgq+XMjgpTMzAeVRipxVXjuGrDhH5M1a2kZ03w20s8FCLR1NjnnJj10KbvabvckmtQcYNb9g==";
       };
     };
+    "http-status-1.4.2" = {
+      name = "http-status";
+      packageName = "http-status";
+      version = "1.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-status/-/http-status-1.4.2.tgz";
+        sha512 = "mBnIohUwRw9NyXMEMMv8/GANnzEYUj0Y8d3uL01zDWFkxUjYyZ6rgCaAI2zZ1Wb34Oqtbx/nFZolPRDc8Xlm5A==";
+      };
+    };
+    "http2-client-1.3.3" = {
+      name = "http2-client";
+      packageName = "http2-client";
+      version = "1.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http2-client/-/http2-client-1.3.3.tgz";
+        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";
@@ -21725,13 +22193,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" = {
@@ -21788,13 +22256,13 @@ let
         sha512 = "cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==";
       };
     };
-    "ignore-5.1.4" = {
+    "ignore-5.1.8" = {
       name = "ignore";
       packageName = "ignore";
-      version = "5.1.4";
+      version = "5.1.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz";
-        sha512 = "MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==";
+        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz";
+        sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==";
       };
     };
     "ignore-by-default-1.0.1" = {
@@ -21923,6 +22391,15 @@ let
         sha1 = "335db7f2a7affd53aaa471d4b8021dee36b7f3b1";
       };
     };
+    "import-from-3.0.0" = {
+      name = "import-from";
+      packageName = "import-from";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz";
+        sha512 = "CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==";
+      };
+    };
     "import-global-0.1.0" = {
       name = "import-global";
       packageName = "import-global";
@@ -21977,15 +22454,6 @@ let
         sha512 = "b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==";
       };
     };
-    "import-package-1.0.0" = {
-      name = "import-package";
-      packageName = "import-package";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/import-package/-/import-package-1.0.0.tgz";
-        sha512 = "EEDT2ucOWI/9z/h2mLTRkkusM30/pxSoBT6YvomYpEb/UGll6wOvdFagYraCSBHD+dZSKoVFNYCAgC3V7Nvf1Q==";
-      };
-    };
     "imurmurhash-0.1.4" = {
       name = "imurmurhash";
       packageName = "imurmurhash";
@@ -22166,13 +22634,13 @@ let
         sha512 = "s7lJuQDJEdjqtaIWhp3KYHl6WV3J04U9zoQ6wVc+Xoa06XM27SXUY57qC5DO46xkF0CfgXMKkKNcgvSu/SAEpA==";
       };
     };
-    "ink-text-input-3.2.2" = {
+    "ink-text-input-3.3.0" = {
       name = "ink-text-input";
       packageName = "ink-text-input";
-      version = "3.2.2";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ink-text-input/-/ink-text-input-3.2.2.tgz";
-        sha512 = "h4EEJYOO88uK16U1mhgmJBMYeEy8ZmkrdV6gybyluCbAOQtAyND/WuRQVIKhe7D2dtYd2wwYTC648nuAxwltPQ==";
+        url = "https://registry.npmjs.org/ink-text-input/-/ink-text-input-3.3.0.tgz";
+        sha512 = "gO4wrOf2ie3YuEARTIwGlw37lMjFn3Gk6CKIDrMlHb46WFMagZU7DplohjM24zynlqfnXA5UDEIfC2NBcvD8kg==";
       };
     };
     "inline-source-map-0.6.2" = {
@@ -22229,6 +22697,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";
@@ -22283,6 +22760,24 @@ let
         sha512 = "5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==";
       };
     };
+    "inquirer-7.2.0" = {
+      name = "inquirer";
+      packageName = "inquirer";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-7.2.0.tgz";
+        sha512 = "E0c4rPwr9ByePfNlTIB8z51kK1s2n6jrHuJeEHENl/sbq2G/S1auvibgEwNR4uSyiU+PiYHqSwsgGiXjG8p5ZQ==";
+      };
+    };
+    "inquirer-7.3.3" = {
+      name = "inquirer";
+      packageName = "inquirer";
+      version = "7.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz";
+        sha512 = "JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==";
+      };
+    };
     "inquirer-autocomplete-prompt-1.0.2" = {
       name = "inquirer-autocomplete-prompt";
       packageName = "inquirer-autocomplete-prompt";
@@ -22382,24 +22877,6 @@ let
         sha512 = "MAQUJuIo7Xqk8EVNP+6d3CKq9c80hi4tjIbIAT6lmGW9W6WzlHiu9PS8uSuUYU+Do+j1baiFp3H25XEVxDIG2g==";
       };
     };
-    "install-purescript-0.7.0" = {
-      name = "install-purescript";
-      packageName = "install-purescript";
-      version = "0.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/install-purescript/-/install-purescript-0.7.0.tgz";
-        sha512 = "AOmIq8rPEOLn5Bo8RQngvDXWeo6USKIt+28UhcAmQJNvj63MqdNBIQRTgNyypbsniv7d7VWjz53pw2+kTgh3mg==";
-      };
-    };
-    "install-purescript-cli-0.4.2" = {
-      name = "install-purescript-cli";
-      packageName = "install-purescript-cli";
-      version = "0.4.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/install-purescript-cli/-/install-purescript-cli-0.4.2.tgz";
-        sha512 = "y62GvwsMksz7aSJQsK2pPelmBByp0eDgpI+uFheEU05wpekM6WtCgq7WkTAc+Ar/nt+7Y5lYzGOqSOWnGAEIBQ==";
-      };
-    };
     "int53-1.0.0" = {
       name = "int53";
       packageName = "int53";
@@ -22445,13 +22922,13 @@ let
         sha1 = "7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614";
       };
     };
-    "interpret-1.2.0" = {
+    "interpret-1.4.0" = {
       name = "interpret";
       packageName = "interpret";
-      version = "1.2.0";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz";
-        sha512 = "mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==";
+        url = "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz";
+        sha512 = "agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==";
       };
     };
     "intersect-1.0.1" = {
@@ -22508,13 +22985,13 @@ let
         sha512 = "wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==";
       };
     };
-    "invert-kv-3.0.0" = {
+    "invert-kv-3.0.1" = {
       name = "invert-kv";
       packageName = "invert-kv";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/invert-kv/-/invert-kv-3.0.0.tgz";
-        sha512 = "JzF8q2BeZA1ZkE3XROwRpoMQ9ObMgTtp0JH8EXewlbkikuOj2GPLIpUipdO+VL8QsTr2teAJD02EFGGL5cO7uw==";
+        url = "https://registry.npmjs.org/invert-kv/-/invert-kv-3.0.1.tgz";
+        sha512 = "CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==";
       };
     };
     "iota-array-1.0.0" = {
@@ -22544,15 +23021,6 @@ let
         sha512 = "u9YYtb1p2fWSbzpKmZ/b3QXWA+diRYPxc2c4y5lFB/MMk5WZ7wNZv8S3CFcIGVJ5XtlaCAl/FQy/D3eQ2XtdOA==";
       };
     };
-    "ip-regex-1.0.3" = {
-      name = "ip-regex";
-      packageName = "ip-regex";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz";
-        sha1 = "dc589076f659f419c222039a33316f1c7387effd";
-      };
-    };
     "ip-regex-2.1.0" = {
       name = "ip-regex";
       packageName = "ip-regex";
@@ -22580,15 +23048,6 @@ let
         sha1 = "27a9ca37f148d2102b0ef191ccbf2c51a8f025c6";
       };
     };
-    "ipaddr.js-1.0.5" = {
-      name = "ipaddr.js";
-      packageName = "ipaddr.js";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz";
-        sha1 = "5fa78cf301b825c78abc3042d812723049ea23c7";
-      };
-    };
     "ipaddr.js-1.4.0" = {
       name = "ipaddr.js";
       packageName = "ipaddr.js";
@@ -22823,13 +23282,13 @@ let
         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 = "ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==";
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz";
+        sha512 = "pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==";
       };
     };
     "is-canonical-base64-1.1.1" = {
@@ -22940,6 +23399,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";
@@ -22958,13 +23426,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" = {
@@ -23210,15 +23678,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";
@@ -23255,13 +23714,13 @@ let
         sha512 = "gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==";
       };
     };
-    "is-my-json-valid-2.20.0" = {
+    "is-my-json-valid-2.20.5" = {
       name = "is-my-json-valid";
       packageName = "is-my-json-valid";
-      version = "2.20.0";
+      version = "2.20.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz";
-        sha512 = "XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==";
+        url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.5.tgz";
+        sha512 = "VTPuvvGQtxvCeghwspQu1rBgjYUT6FGxPlvFKbYuFtgc4ADsX3U5ihZOYN0qyU6u+d4X9xXb0IT5O6QpXKt87A==";
       };
     };
     "is-natural-number-4.0.1" = {
@@ -23453,6 +23912,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";
@@ -23462,13 +23930,13 @@ let
         sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==";
       };
     };
-    "is-plain-object-3.0.0" = {
+    "is-plain-object-4.1.1" = {
       name = "is-plain-object";
       packageName = "is-plain-object";
-      version = "3.0.0";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz";
-        sha512 = "tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==";
+        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" = {
@@ -23516,13 +23984,13 @@ let
         sha1 = "1d03dded53bd8db0f30c26e4f95d36fc7c87dc24";
       };
     };
-    "is-reference-1.1.4" = {
+    "is-reference-1.2.1" = {
       name = "is-reference";
       packageName = "is-reference";
-      version = "1.1.4";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-reference/-/is-reference-1.1.4.tgz";
-        sha512 = "uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw==";
+        url = "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz";
+        sha512 = "U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==";
       };
     };
     "is-regex-1.0.5" = {
@@ -23534,6 +24002,15 @@ let
         sha512 = "vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==";
       };
     };
+    "is-regex-1.1.1" = {
+      name = "is-regex";
+      packageName = "is-regex";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz";
+        sha512 = "1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==";
+      };
+    };
     "is-regexp-1.0.0" = {
       name = "is-regexp";
       packageName = "is-regexp";
@@ -23579,15 +24056,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";
@@ -23750,15 +24218,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";
@@ -23768,15 +24227,6 @@ let
         sha512 = "ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==";
       };
     };
-    "is-url-superb-2.0.0" = {
-      name = "is-url-superb";
-      packageName = "is-url-superb";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-url-superb/-/is-url-superb-2.0.0.tgz";
-        sha1 = "b728a18cf692e4d16da6b94c7408a811db0d0492";
-      };
-    };
     "is-utf8-0.2.1" = {
       name = "is-utf8";
       packageName = "is-utf8";
@@ -24065,13 +24515,13 @@ let
         sha512 = "UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==";
       };
     };
-    "istanbul-lib-instrument-4.0.1" = {
+    "istanbul-lib-instrument-4.0.3" = {
       name = "istanbul-lib-instrument";
       packageName = "istanbul-lib-instrument";
-      version = "4.0.1";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz";
-        sha512 = "imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==";
+        url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz";
+        sha512 = "BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==";
       };
     };
     "istextorbinary-2.6.0" = {
@@ -24110,13 +24560,31 @@ let
         sha512 = "QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==";
       };
     };
-    "iterare-1.2.0" = {
+    "iterare-1.2.1" = {
       name = "iterare";
       packageName = "iterare";
-      version = "1.2.0";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz";
+        sha512 = "RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==";
+      };
+    };
+    "iterate-iterator-1.0.1" = {
+      name = "iterate-iterator";
+      packageName = "iterate-iterator";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/iterare/-/iterare-1.2.0.tgz";
-        sha512 = "RxMV9p/UzdK0Iplnd8mVgRvNdXlsTOiuDrqMRnDi3wIhbT+JP4xDquAX9ay13R3CH72NBzQ91KWe0+C168QAyQ==";
+        url = "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz";
+        sha512 = "3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==";
+      };
+    };
+    "iterate-value-1.0.2" = {
+      name = "iterate-value";
+      packageName = "iterate-value";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz";
+        sha512 = "A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==";
       };
     };
     "iterators-0.1.0" = {
@@ -24155,6 +24623,15 @@ let
         sha512 = "xZ9WvZDWLkZFq7SObpLwu1asMCKCgBRNcDxxGSvK+ZQ7OZyJC5xPlU+rJa4+s/P6autPBVwHpqMGbOERFxWuuA==";
       };
     };
+    "jake-10.8.2" = {
+      name = "jake";
+      packageName = "jake";
+      version = "10.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz";
+        sha512 = "eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==";
+      };
+    };
     "java-properties-1.0.2" = {
       name = "java-properties";
       packageName = "java-properties";
@@ -24164,15 +24641,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";
@@ -24272,13 +24740,13 @@ let
         sha1 = "06d4912255093419477d425633606e0e90782967";
       };
     };
-    "joplin-turndown-4.0.27" = {
+    "joplin-turndown-4.0.29" = {
       name = "joplin-turndown";
       packageName = "joplin-turndown";
-      version = "4.0.27";
+      version = "4.0.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.27.tgz";
-        sha512 = "qwJEzpbsyXnfjYgCVXWbuf3BdbDAaP7edm5ubeVAaQ3RnaiSEB2xZLg3lubmuFOIxXnkMDMkGJC4G+qAbCW95w==";
+        url = "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.29.tgz";
+        sha512 = "rVGu8u4TpSRETo59/jiVW9iaXnpdxxpBHjb7nyCflkDfWhg1Kska4uagBQGw7cD2yxw7mB2YUIB/fAgtlIzcDQ==";
       };
     };
     "joplin-turndown-plugin-gfm-1.0.12" = {
@@ -24290,13 +24758,13 @@ let
         sha512 = "qL4+1iycQjZ1fs8zk3jSRk7cg3ROBUHk7GKtiLAQLFzLPKErnILUvz5DLszSQvz3s1sTjPbywLDISVUtBY6HaA==";
       };
     };
-    "jpeg-js-0.1.2" = {
+    "jpeg-js-0.4.1" = {
       name = "jpeg-js";
       packageName = "jpeg-js";
-      version = "0.1.2";
+      version = "0.4.1";
       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.1.tgz";
+        sha512 = "jA55yJiB5tCXEddos8JBbvW+IMrqY0y1tjjx9KNVtA+QPmu7ND5j0zkKopClpUTsaETL135uOM2XfcYG4XRjmw==";
       };
     };
     "jpeg-turbo-0.4.0" = {
@@ -24308,49 +24776,40 @@ let
         sha1 = "f6f9f099f9882bad84585c6b1004344d6fadb33c";
       };
     };
-    "jquery-3.4.1" = {
+    "jquery-3.5.1" = {
       name = "jquery";
       packageName = "jquery";
-      version = "3.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz";
-        sha512 = "36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==";
-      };
-    };
-    "jquery-3.5.0" = {
-      name = "jquery";
-      packageName = "jquery";
-      version = "3.5.0";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jquery/-/jquery-3.5.0.tgz";
-        sha512 = "Xb7SVYMvygPxbFMpTFQiHh1J7HClEaThguL15N/Gg37Lri/qKyhRGZYzHRyLH8Stq3Aow0LsHO2O2ci86fCrNQ==";
+        url = "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz";
+        sha512 = "XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==";
       };
     };
-    "jquery-ui-bundle-1.12.1" = {
-      name = "jquery-ui-bundle";
-      packageName = "jquery-ui-bundle";
+    "jquery-ui-1.12.1" = {
+      name = "jquery-ui";
+      packageName = "jquery-ui";
       version = "1.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jquery-ui-bundle/-/jquery-ui-bundle-1.12.1.tgz";
-        sha1 = "d6be2e4c377494e2378b1cae2920a91d1182d8c4";
+        url = "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.12.1.tgz";
+        sha1 = "bcb4045c8dd0539c134bc1488cdd3e768a7a9e51";
       };
     };
-    "jquery.terminal-2.15.4" = {
+    "jquery.terminal-2.17.6" = {
       name = "jquery.terminal";
       packageName = "jquery.terminal";
-      version = "2.15.4";
+      version = "2.17.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.15.4.tgz";
-        sha512 = "7XSLLjc2Il+1wtJQYQWkir8A5WnTMFEkwb1fGx3mASxQ+lp0Yu4Ua3iQTSKZGdYR3FINor9ToK107lJHEWOeYA==";
+        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.17.6.tgz";
+        sha512 = "NPAxHodxrs6hLXNW9VAfijYkBFtoL/pyzpDDu2vX2slUyLekkUD9JBM4V0NcAuOvhB2eW4hLFChoYD5B2uu9Sg==";
       };
     };
-    "js-base64-2.5.2" = {
+    "js-base64-2.6.4" = {
       name = "js-base64";
       packageName = "js-base64";
-      version = "2.5.2";
+      version = "2.6.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz";
-        sha512 = "Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==";
+        url = "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz";
+        sha512 = "pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==";
       };
     };
     "js-beautify-1.11.0" = {
@@ -24434,6 +24893,15 @@ let
         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==";
+      };
+    };
     "js-yaml-3.2.7" = {
       name = "js-yaml";
       packageName = "js-yaml";
@@ -24470,13 +24938,13 @@ let
         sha1 = "b01307cb29b618a1ed26ec79e911f803c4da0040";
       };
     };
-    "jscodeshift-0.7.1" = {
+    "jscodeshift-0.10.0" = {
       name = "jscodeshift";
       packageName = "jscodeshift";
-      version = "0.7.1";
+      version = "0.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.7.1.tgz";
-        sha512 = "YMkZSyoc8zg5woZL23cmWlnFLPH/mHilonGA7Qbzs7H6M4v4PH0Qsn4jeDyw+CHhVoAnm9UxQyB0Yw1OT+mktA==";
+        url = "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.10.0.tgz";
+        sha512 = "xpH2FVSEepXoNr6+cPlPHzPzBY1W9bPulufhCHOShzk8+CTCzAOQKytuOXT0b/9PvmO4biRi0g/ZIylVew815w==";
       };
     };
     "jsdom-11.12.0" = {
@@ -24542,15 +25010,6 @@ let
         sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==";
       };
     };
-    "jshint-2.11.0" = {
-      name = "jshint";
-      packageName = "jshint";
-      version = "2.11.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jshint/-/jshint-2.11.0.tgz";
-        sha512 = "ooaD/hrBPhu35xXW4gn+o3SOuzht73gdBuffgJzrZBJZPGgGiiTvJEgTyxFvBO2nz0+X1G6etF8SzUODTlLY6Q==";
-      };
-    };
     "json-buffer-2.0.11" = {
       name = "json-buffer";
       packageName = "json-buffer";
@@ -24587,6 +25046,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";
@@ -24623,6 +25091,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";
@@ -24641,15 +25118,6 @@ let
         sha512 = "0vOQd9eLNBL18EGl5yYaO44GhixmImes2wiYn9Z3sag3QnehWrYWlB9AFtMxCL2Bj3fyxgDYkxGFEU/chlYssw==";
       };
     };
-    "json-rpc2-0.8.1" = {
-      name = "json-rpc2";
-      packageName = "json-rpc2";
-      version = "0.8.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json-rpc2/-/json-rpc2-0.8.1.tgz";
-        sha1 = "efe8c9834605b556c488d1ed7bcf24ee381eeeb2";
-      };
-    };
     "json-schema-0.2.2" = {
       name = "json-schema";
       packageName = "json-schema";
@@ -24686,13 +25154,13 @@ let
         sha1 = "51d3ca48955d8fe734f591d747b72453be5a78f2";
       };
     };
-    "json-schema-ref-parser-3.3.1" = {
+    "json-schema-ref-parser-6.1.0" = {
       name = "json-schema-ref-parser";
       packageName = "json-schema-ref-parser";
-      version = "3.3.1";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-3.3.1.tgz";
-        sha512 = "stQTMhec2R/p2L9dH4XXRlpNCP0mY8QrLd/9Kl+8SHJQmwHtE1nDfXH4wbsSM+GkJMl8t92yZbI0OIol432CIQ==";
+        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" = {
@@ -24758,6 +25226,15 @@ let
         sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
       };
     };
+    "json-to-ast-2.1.0" = {
+      name = "json-to-ast";
+      packageName = "json-to-ast";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-to-ast/-/json-to-ast-2.1.0.tgz";
+        sha512 = "W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==";
+      };
+    };
     "json3-3.2.6" = {
       name = "json3";
       packageName = "json3";
@@ -24785,15 +25262,6 @@ let
         sha512 = "aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==";
       };
     };
-    "json5-2.1.0" = {
-      name = "json5";
-      packageName = "json5";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz";
-        sha512 = "8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==";
-      };
-    };
     "json5-2.1.3" = {
       name = "json5";
       packageName = "json5";
@@ -24821,13 +25289,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" = {
@@ -24848,15 +25316,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";
@@ -24902,15 +25361,6 @@ let
         sha1 = "330542ad3f0a654665b778f3eb2d9a9fa507ac64";
       };
     };
-    "jsonparse-0.0.6" = {
-      name = "jsonparse";
-      packageName = "jsonparse";
-      version = "0.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.6.tgz";
-        sha1 = "ab599f19324d4ae178fa21a930192ab11ab61a4e";
-      };
-    };
     "jsonparse-1.3.1" = {
       name = "jsonparse";
       packageName = "jsonparse";
@@ -24920,13 +25370,22 @@ let
         sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280";
       };
     };
-    "jsonpointer-4.0.1" = {
+    "jsonpath-plus-3.0.0" = {
+      name = "jsonpath-plus";
+      packageName = "jsonpath-plus";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-3.0.0.tgz";
+        sha512 = "WQwgWEBgn+SJU1tlDa/GiY5/ngRpa9yrSj8n4BYPHcwoxTDaMEaYCHMOn42hIHHDd3CrUoRr3+HpsK0hCKoxzA==";
+      };
+    };
+    "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" = {
@@ -25010,22 +25469,22 @@ let
         sha1 = "b88f3a7b2e67a2a048152982c7a3756d9c4828f0";
       };
     };
-    "jszip-3.1.5" = {
+    "jszip-3.3.0" = {
       name = "jszip";
       packageName = "jszip";
-      version = "3.1.5";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz";
-        sha512 = "5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==";
+        url = "https://registry.npmjs.org/jszip/-/jszip-3.3.0.tgz";
+        sha512 = "EJ9k766htB1ZWnsV5ZMDkKLgA+201r/ouFF8R2OigVjVdcm2rurcBrrdXaeqBJbqnUVMko512PYmlncBKE1Huw==";
       };
     };
-    "jszip-3.4.0" = {
+    "jszip-3.5.0" = {
       name = "jszip";
       packageName = "jszip";
-      version = "3.4.0";
+      version = "3.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jszip/-/jszip-3.4.0.tgz";
-        sha512 = "gZAOYuPl4EhPTXT0GjhI3o+ZAz3su6EhLrKUoAivcKqyqC7laS5JEv4XWZND9BgcDcF83vI85yGbDmDR6UhrIg==";
+        url = "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz";
+        sha512 = "WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==";
       };
     };
     "junk-3.1.0" = {
@@ -25200,13 +25659,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" = {
@@ -25263,6 +25722,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";
@@ -25281,13 +25749,13 @@ let
         sha512 = "9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==";
       };
     };
-    "keyv-4.0.0" = {
+    "keyv-4.0.1" = {
       name = "keyv";
       packageName = "keyv";
-      version = "4.0.0";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/keyv/-/keyv-4.0.0.tgz";
-        sha512 = "U7ioE8AimvRVLfw4LffyOIRhL2xVgmE8T22L6i0BucSnBUyv4w+I7VN/zVZwRKHOI6ZRUcdMdWHQ8KSUvGpEog==";
+        url = "https://registry.npmjs.org/keyv/-/keyv-4.0.1.tgz";
+        sha512 = "xz6Jv6oNkbhrFCvCP7HQa8AaII8y8LRpoSm661NOKLr4uHuBwhX4epXrPQgF3+xdJnN4Esm5X0xwY4bOlALOtw==";
       };
     };
     "killable-1.0.1" = {
@@ -25416,6 +25884,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";
@@ -25533,13 +26010,13 @@ let
         sha1 = "b9190a4f913354694840859f8a8f7084d8822264";
       };
     };
-    "lazyness-1.1.1" = {
+    "lazyness-1.2.0" = {
       name = "lazyness";
       packageName = "lazyness";
-      version = "1.1.1";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lazyness/-/lazyness-1.1.1.tgz";
-        sha512 = "rYHC6l6LeRlJSt5jxpqN8z/49gZ0CqLi89HAGzJjHahCFlqEjFGFN9O15hmzSzUGFl7zN/vOWduv/+0af3r/kQ==";
+        url = "https://registry.npmjs.org/lazyness/-/lazyness-1.2.0.tgz";
+        sha512 = "KenL6EFbwxBwRxG93t0gcUyi0Nw0Ub31FJKN1laA4UscdkL1K1AxUd0gYZdcLU3v+x+wcFi4uQKS5hL+fk500g==";
       };
     };
     "lazystream-1.0.0" = {
@@ -25668,6 +26145,15 @@ let
         sha512 = "wcak5OQeA4rURGacqS62R/xNHjCYnJSQDBOlm4KNUGJVE9bWv2B04TclqReYejN+oD65PzD4FsqeWoI5wNC5Lg==";
       };
     };
+    "level-6.0.1" = {
+      name = "level";
+      packageName = "level";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/level/-/level-6.0.1.tgz";
+        sha512 = "psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==";
+      };
+    };
     "level-codec-6.2.0" = {
       name = "level-codec";
       packageName = "level-codec";
@@ -25677,13 +26163,13 @@ let
         sha1 = "a4b5244bb6a4c2f723d68a1d64e980c53627d9d4";
       };
     };
-    "level-codec-9.0.1" = {
+    "level-codec-9.0.2" = {
       name = "level-codec";
       packageName = "level-codec";
-      version = "9.0.1";
+      version = "9.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/level-codec/-/level-codec-9.0.1.tgz";
-        sha512 = "ajFP0kJ+nyq4i6kptSM+mAvJKLOg1X5FiFPtLG9M5gCEZyBmgDi3FkDrvlMkEzrUn1cWxtvVmrvoS4ASyO/q+Q==";
+        url = "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz";
+        sha512 = "UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==";
       };
     };
     "level-concat-iterator-2.0.1" = {
@@ -25722,6 +26208,15 @@ let
         sha512 = "PeGjZsyMG4O89KHiez1zoMJxStnkM+oBIqgACjoo5PJqFiSUUm3GNod/KcbqN5ktyZa8jkG7I1T0P2u6HN9lIg==";
       };
     };
+    "level-js-5.0.2" = {
+      name = "level-js";
+      packageName = "level-js";
+      version = "5.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/level-js/-/level-js-5.0.2.tgz";
+        sha512 = "SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==";
+      };
+    };
     "level-packager-5.1.1" = {
       name = "level-packager";
       packageName = "level-packager";
@@ -25839,6 +26334,15 @@ let
         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==";
+      };
+    };
     "libnested-1.5.0" = {
       name = "libnested";
       packageName = "libnested";
@@ -25857,40 +26361,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";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/libspiro-js/-/libspiro-js-0.3.1.tgz";
-        sha1 = "86652b0009a6d84ea79a5320bdca5f00612ee439";
-      };
-    };
-    "lie-3.1.1" = {
-      name = "lie";
-      packageName = "lie";
-      version = "3.1.1";
+      version = "0.7.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz";
-        sha1 = "9a436b2cc7746ca59de7a41fa469b3efb76bd87e";
+        url = "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz";
+        sha512 = "PDhPWXBqd/SaqAFUBgH2Ux7b3VEEJgyD6BQB+VdNFJb9PbExGr/T/myc/MBoSvl8qLzfm0W0IVByOQS5L1MrCg==";
       };
     };
     "lie-3.3.0" = {
@@ -25992,6 +26478,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";
@@ -26028,15 +26523,6 @@ let
         sha512 = "04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==";
       };
     };
-    "load-from-cwd-or-npm-3.0.4" = {
-      name = "load-from-cwd-or-npm";
-      packageName = "load-from-cwd-or-npm";
-      version = "3.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/load-from-cwd-or-npm/-/load-from-cwd-or-npm-3.0.4.tgz";
-        sha512 = "tdDJgh1zVmxOV24gcj+AEagjTc30Jim9ywX2OxfABdOoTU4UK8b0B371ZNbpj27njP8LQ6U5FH1aNwC2+VRxQg==";
-      };
-    };
     "load-ip-set-2.1.0" = {
       name = "load-ip-set";
       packageName = "load-ip-set";
@@ -26055,15 +26541,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";
@@ -26091,15 +26568,6 @@ let
         sha512 = "dYB1lbwqHgPTrruy9glukCu8Ya9vzj6TMfouCtj2H/GuJ+8syioisgKTBPxnCi6m8K8jINKfTOxOHngFkUYqHw==";
       };
     };
-    "load-request-from-cwd-or-npm-3.0.0" = {
-      name = "load-request-from-cwd-or-npm";
-      packageName = "load-request-from-cwd-or-npm";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/load-request-from-cwd-or-npm/-/load-request-from-cwd-or-npm-3.0.0.tgz";
-        sha512 = "UsYAoXQV3UeL75Rl5IppBGOcKK5iKpvWooUPUHdxcQg9IKIkfg6PWpBQ4EhoRxTioIqrz587Ur2+c2uB/KGpng==";
-      };
-    };
     "loader-runner-2.4.0" = {
       name = "loader-runner";
       packageName = "loader-runner";
@@ -26109,22 +26577,22 @@ let
         sha512 = "Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==";
       };
     };
-    "loader-utils-1.2.3" = {
+    "loader-utils-1.4.0" = {
       name = "loader-utils";
       packageName = "loader-utils";
-      version = "1.2.3";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz";
-        sha512 = "fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==";
+        url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz";
+        sha512 = "qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==";
       };
     };
-    "loader-utils-1.4.0" = {
+    "loader-utils-2.0.0" = {
       name = "loader-utils";
       packageName = "loader-utils";
-      version = "1.4.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz";
-        sha512 = "qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==";
+        url = "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz";
+        sha512 = "rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==";
       };
     };
     "locate-java-home-1.1.2" = {
@@ -26199,15 +26667,6 @@ let
         sha1 = "fadd834b9683073da179b3eae6d9c0d15053f73e";
       };
     };
-    "lodash-3.1.0" = {
-      name = "lodash";
-      packageName = "lodash";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash/-/lodash-3.1.0.tgz";
-        sha1 = "d41b8b33530cb3be088853208ad30092d2c27961";
-      };
-    };
     "lodash-3.10.1" = {
       name = "lodash";
       packageName = "lodash";
@@ -26244,6 +26703,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-4.17.5" = {
       name = "lodash";
       packageName = "lodash";
@@ -26613,15 +27081,6 @@ let
         sha1 = "ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2";
       };
     };
-    "lodash.assigninwith-4.2.0" = {
-      name = "lodash.assigninwith";
-      packageName = "lodash.assigninwith";
-      version = "4.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.assigninwith/-/lodash.assigninwith-4.2.0.tgz";
-        sha1 = "af02c98432ac86d93da695b4be801401971736af";
-      };
-    };
     "lodash.bind-2.4.1" = {
       name = "lodash.bind";
       packageName = "lodash.bind";
@@ -26667,6 +27126,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";
@@ -26676,15 +27144,6 @@ let
         sha1 = "82d79bff30a67c4005ffd5e2515300ad9ca4d7af";
       };
     };
-    "lodash.defaults-4.0.1" = {
-      name = "lodash.defaults";
-      packageName = "lodash.defaults";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.0.1.tgz";
-        sha1 = "05678e612a9716c64b5bf2cecf045131ca3d3402";
-      };
-    };
     "lodash.defaults-4.2.0" = {
       name = "lodash.defaults";
       packageName = "lodash.defaults";
@@ -26721,6 +27180,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";
@@ -26775,6 +27243,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";
@@ -26838,6 +27315,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";
@@ -26847,6 +27333,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";
@@ -26865,6 +27360,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";
@@ -26919,6 +27423,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";
@@ -26946,6 +27459,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";
@@ -27090,15 +27612,6 @@ let
         sha1 = "fc7de8131d8c8ac07e4b49f74ffe829d1f2bec44";
       };
     };
-    "lodash.rest-4.0.5" = {
-      name = "lodash.rest";
-      packageName = "lodash.rest";
-      version = "4.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.5.tgz";
-        sha1 = "954ef75049262038c96d1fc98b28fdaf9f0772aa";
-      };
-    };
     "lodash.restparam-3.6.1" = {
       name = "lodash.restparam";
       packageName = "lodash.restparam";
@@ -27117,6 +27630,15 @@ 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.some-4.6.0" = {
       name = "lodash.some";
       packageName = "lodash.some";
@@ -27198,6 +27720,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";
@@ -27234,6 +27774,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";
@@ -27306,31 +27855,40 @@ let
         sha512 = "ILKe88NeMt4gmDvk/eb615U/IVn7K9KWGkoYbdatQ69Z65nj1ZzjM6fHXfcs0Uge+e+EGnMW7DY4T9yko8vWFg==";
       };
     };
-    "log4js-4.5.1" = {
+    "log4js-5.3.0" = {
       name = "log4js";
       packageName = "log4js";
-      version = "4.5.1";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz";
-        sha512 = "EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw==";
+        url = "https://registry.npmjs.org/log4js/-/log4js-5.3.0.tgz";
+        sha512 = "PZHXaXJKMKEscvQxSnTjM4UosQalSDlNpMw63eCKW+/DiAFKIZPW1jGyIPXZDjiEYFusMfiI7zzvnxeGozUcAw==";
       };
     };
-    "log4js-5.3.0" = {
+    "log4js-6.3.0" = {
       name = "log4js";
       packageName = "log4js";
-      version = "5.3.0";
+      version = "6.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/log4js/-/log4js-5.3.0.tgz";
-        sha512 = "PZHXaXJKMKEscvQxSnTjM4UosQalSDlNpMw63eCKW+/DiAFKIZPW1jGyIPXZDjiEYFusMfiI7zzvnxeGozUcAw==";
+        url = "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz";
+        sha512 = "Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==";
       };
     };
-    "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.2.0.tgz";
+        sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==";
+      };
+    };
+    "logic-solver-2.0.1" = {
+      name = "logic-solver";
+      packageName = "logic-solver";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz";
-        sha512 = "+lZh4OpERDBLqjiwDLpAWNQu6KMjnlXH2ByZwCuSqVPJletw0kTWJf5CgSNAUKn1KUkv3m2cUz/LK8zyEy7wzQ==";
+        url = "https://registry.npmjs.org/logic-solver/-/logic-solver-2.0.1.tgz";
+        sha1 = "e9fa47002eb5d8cda7616d41639b97552eb674be";
       };
     };
     "loglevel-1.6.8" = {
@@ -27450,13 +28008,13 @@ let
         sha512 = "lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==";
       };
     };
-    "lossless-json-1.0.3" = {
+    "lossless-json-1.0.4" = {
       name = "lossless-json";
       packageName = "lossless-json";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lossless-json/-/lossless-json-1.0.3.tgz";
-        sha512 = "r4w0WrhIHV1lOTVGbTg4Toqwso5x6C8pM7Q/Nto2vy4c7yUSdTYVYlj16uHVX3MT1StpSELDv8yrqGx41MBsDA==";
+        url = "https://registry.npmjs.org/lossless-json/-/lossless-json-1.0.4.tgz";
+        sha512 = "zEkWwELMSQQISdtOF44vk0bRJhN/PJ93qcgJLcodizQjxrJKdFrq2H1+Xv5QDe7v3dTYYbBI5hOsh4a9l0B2Ow==";
       };
     };
     "lossy-store-1.2.4" = {
@@ -27504,13 +28062,13 @@ let
         sha1 = "9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac";
       };
     };
-    "lower-case-first-1.0.2" = {
-      name = "lower-case-first";
-      packageName = "lower-case-first";
-      version = "1.0.2";
+    "lower-case-2.0.1" = {
+      name = "lower-case";
+      packageName = "lower-case";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz";
-        sha1 = "e5da7c26f29a7073be02d52bac9980e5922adfa1";
+        url = "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz";
+        sha512 = "LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==";
       };
     };
     "lowercase-keys-1.0.0" = {
@@ -27576,6 +28134,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";
@@ -27603,6 +28170,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";
@@ -27621,15 +28197,6 @@ let
         sha1 = "3b1ded0d1ba82e188b9bdaba9eee6486f864a434";
       };
     };
-    "lsmod-1.0.0" = {
-      name = "lsmod";
-      packageName = "lsmod";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lsmod/-/lsmod-1.0.0.tgz";
-        sha1 = "9a00f76dca36eb23fa05350afe1b585d4299e64b";
-      };
-    };
     "lstream-0.0.4" = {
       name = "lstream";
       packageName = "lstream";
@@ -27666,6 +28233,15 @@ let
         sha512 = "rlAEsgU9Bnavca2w1WJ6+6cdeHMXNyadcersyk3ZpuhgWb5HBNj8l4WwJz9PjksAhYDlpQffCVXPctOn+wCIVA==";
       };
     };
+    "lunr-2.3.8" = {
+      name = "lunr";
+      packageName = "lunr";
+      version = "2.3.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lunr/-/lunr-2.3.8.tgz";
+        sha512 = "oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg==";
+      };
+    };
     "lynx-0.2.0" = {
       name = "lynx";
       packageName = "lynx";
@@ -27711,13 +28287,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" = {
@@ -27774,13 +28350,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" = {
@@ -27837,13 +28413,13 @@ let
         sha512 = "07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==";
       };
     };
-    "make-fetch-happen-8.0.6" = {
+    "make-fetch-happen-8.0.9" = {
       name = "make-fetch-happen";
       packageName = "make-fetch-happen";
-      version = "8.0.6";
+      version = "8.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.6.tgz";
-        sha512 = "QJ4pB5VBY9H9e+3t/o+fPjsVUlPULpAllxuKertRo/7ii47TfxeEEnneM6NCmhyn4MQPTYL+M+RkiU9bR+hAfg==";
+        url = "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.9.tgz";
+        sha512 = "uHa4gv/NIdm9cUvfOhYb57nxrCY08iyMRXru0jbpaH57Q3NCge/ypY7fOvgCr8tPyucKrGbVndKhjXE0IX0VfQ==";
       };
     };
     "make-iterator-1.0.1" = {
@@ -27981,6 +28557,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";
@@ -27999,6 +28584,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";
@@ -28017,13 +28611,13 @@ let
         sha1 = "d66b5364521cbb3dd8aa59dadfba2fb6865c8fd8";
       };
     };
-    "markdown-it-anchor-5.2.7" = {
+    "markdown-it-anchor-5.3.0" = {
       name = "markdown-it-anchor";
       packageName = "markdown-it-anchor";
-      version = "5.2.7";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.2.7.tgz";
-        sha512 = "REFmIaSS6szaD1bye80DMbp7ePwsPNvLTR5HunsUcZ0SG0rWJQ+Pz24R4UlTKtjKBPhxo0v0tOBDYjZQQknW8Q==";
+        url = "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz";
+        sha512 = "/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==";
       };
     };
     "markdown-it-deflist-2.0.3" = {
@@ -28089,13 +28683,13 @@ let
         sha512 = "HqMWeKfMMOu4zBO0emmxsoMWmbf2cPKZY1wP6FsTbKmicFfp5y4L3KXAsNeO1rM6NTJVOrNlLKMPjWzriBGspw==";
       };
     };
-    "markdown-it-multimd-table-4.0.1" = {
+    "markdown-it-multimd-table-4.0.3" = {
       name = "markdown-it-multimd-table";
       packageName = "markdown-it-multimd-table";
-      version = "4.0.1";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-it-multimd-table/-/markdown-it-multimd-table-4.0.1.tgz";
-        sha512 = "ZgRV8LlGz6JXTZ5zd82yCL8IVG5MRastMWxxrc6hQC8aC8kq/7zpp+ksBqVqcdTmTdabnkuSo/7h3SyKM31YCA==";
+        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" = {
@@ -28215,6 +28809,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";
@@ -28251,6 +28854,15 @@ let
         sha512 = "o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==";
       };
     };
+    "matcher-3.0.0" = {
+      name = "matcher";
+      packageName = "matcher";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz";
+        sha512 = "OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==";
+      };
+    };
     "matcher-collection-1.1.2" = {
       name = "matcher-collection";
       packageName = "matcher-collection";
@@ -28269,15 +28881,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";
@@ -28296,6 +28899,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";
@@ -28305,6 +28917,15 @@ 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.js-1.3.5" = {
       name = "md5.js";
       packageName = "md5.js";
@@ -28350,13 +28971,13 @@ let
         sha1 = "c04891883c28c83602e1d06b05a11037e359b4c8";
       };
     };
-    "mdn-browser-compat-data-1.0.15" = {
+    "mdn-browser-compat-data-1.0.31" = {
       name = "mdn-browser-compat-data";
       packageName = "mdn-browser-compat-data";
-      version = "1.0.15";
+      version = "1.0.31";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mdn-browser-compat-data/-/mdn-browser-compat-data-1.0.15.tgz";
-        sha512 = "0jxT4ZqqCzJJfktX9d4NKgfRENy60kFzhVNV0mXNHvlnw8KrMe2cKOlEKs/Bz+odlgO0rRZAxU0OKiptqVhAXg==";
+        url = "https://registry.npmjs.org/mdn-browser-compat-data/-/mdn-browser-compat-data-1.0.31.tgz";
+        sha512 = "GVQQYWgoH3jbBaIy8M4hrg34qaNpPedtZvwAjUmkpHq4FXKKCea8Ji5rlS32YJSU9dt7TPvuWWX7Cce5mZyFPA==";
       };
     };
     "mdn-data-2.0.4" = {
@@ -28449,33 +29070,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";
@@ -28503,13 +29097,13 @@ let
         sha512 = "RlbnLQgRHk5lwqTtpEkBTQ2ll/CG/iB+J4Hy2Wh97PjgZgXgWJWrFF+XXujh3UUVLvR4OOTgZzcWMMwnehlEUg==";
       };
     };
-    "mem-fs-1.1.3" = {
+    "mem-fs-1.2.0" = {
       name = "mem-fs";
       packageName = "mem-fs";
-      version = "1.1.3";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz";
-        sha1 = "b8ae8d2e3fcb6f5d3f9165c12d4551a065d989cc";
+        url = "https://registry.npmjs.org/mem-fs/-/mem-fs-1.2.0.tgz";
+        sha512 = "b8g0jWKdl8pM0LqAPdK9i8ERL7nYrzmJfRhxMiWH2uYdfYnb7uXnmwVb0ZGe7xyEl4lj+nLIU3yf4zPUT+XsVQ==";
       };
     };
     "mem-fs-editor-6.0.0" = {
@@ -28521,6 +29115,42 @@ let
         sha512 = "e0WfJAMm8Gv1mP5fEq/Blzy6Lt1VbLg7gNnZmZak7nhrBTibs+c6nQ4SKs/ZyJYHS1mFgDJeopsLAv7Ow0FMFg==";
       };
     };
+    "mem-fs-editor-7.0.1" = {
+      name = "mem-fs-editor";
+      packageName = "mem-fs-editor";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-7.0.1.tgz";
+        sha512 = "eD8r4/d2ayp9HHIgBPHB6Ds0ggA8F9cf9HxcNtbqrwqJXfIDrOSMG5K4fV3+Ib3B+HIdrWqkeDDDvrO7i9EbvQ==";
+      };
+    };
+    "memfs-3.2.0" = {
+      name = "memfs";
+      packageName = "memfs";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/memfs/-/memfs-3.2.0.tgz";
+        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";
@@ -28656,6 +29286,15 @@ let
         sha512 = "3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==";
       };
     };
+    "meow-7.0.1" = {
+      name = "meow";
+      packageName = "meow";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/meow/-/meow-7.0.1.tgz";
+        sha512 = "tBKIQqVrAHqwit0vfuFPY3LlzJYkEOFyKa3bPgxzNl6q/RtN8KQ+ALYEASYuFayzSAsjlhXj/JZ10rH85Q6TUw==";
+      };
+    };
     "merge-1.2.1" = {
       name = "merge";
       packageName = "merge";
@@ -28665,15 +29304,6 @@ let
         sha512 = "VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==";
       };
     };
-    "merge-descriptors-0.0.2" = {
-      name = "merge-descriptors";
-      packageName = "merge-descriptors";
-      version = "0.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz";
-        sha1 = "c36a52a781437513c57275f39dd9d317514ac8c7";
-      };
-    };
     "merge-descriptors-1.0.1" = {
       name = "merge-descriptors";
       packageName = "merge-descriptors";
@@ -28701,13 +29331,13 @@ let
         sha512 = "abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==";
       };
     };
-    "merge2-1.3.0" = {
+    "merge2-1.4.1" = {
       name = "merge2";
       packageName = "merge2";
-      version = "1.3.0";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz";
-        sha512 = "2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==";
+        url = "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz";
+        sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==";
       };
     };
     "merkle-tree-stream-3.0.3" = {
@@ -28728,13 +29358,13 @@ let
         sha1 = "401fdec7ec21cdb9e03cd3d3021398da21b27085";
       };
     };
-    "metals-languageclient-0.2.1" = {
+    "metals-languageclient-0.2.8" = {
       name = "metals-languageclient";
       packageName = "metals-languageclient";
-      version = "0.2.1";
+      version = "0.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/metals-languageclient/-/metals-languageclient-0.2.1.tgz";
-        sha512 = "8iVF+wKKZVN7r1/9JSv4QCJO2lRyqQvxs6+kmTviKVj/pYsH0qBR8vo7ne+7MkKrvyz8lnZCX29siv6sOWf3Qw==";
+        url = "https://registry.npmjs.org/metals-languageclient/-/metals-languageclient-0.2.8.tgz";
+        sha512 = "RGy28w9iYwGt3im5Da6YjD9eF6GTKtrRvluWy8StfwbHvI/KsobF1zmyVX/fD0wvNUCY0am867rImkjs1paTzA==";
       };
     };
     "metalsmith-2.3.0" = {
@@ -28773,15 +29403,6 @@ let
         sha1 = "335d429eefd21b7bacf2e9c922a8d2bd14a30e4f";
       };
     };
-    "methods-1.0.1" = {
-      name = "methods";
-      packageName = "methods";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/methods/-/methods-1.0.1.tgz";
-        sha1 = "75bc91943dffd7da037cf3eeb0ed73a0037cd14b";
-      };
-    };
     "methods-1.1.2" = {
       name = "methods";
       packageName = "methods";
@@ -28899,31 +29520,13 @@ let
         sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
       };
     };
-    "mime-2.4.4" = {
+    "mime-2.4.6" = {
       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.5" = {
-      name = "mime";
-      packageName = "mime";
-      version = "2.4.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz";
-        sha512 = "3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w==";
-      };
-    };
-    "mime-db-1.12.0" = {
-      name = "mime-db";
-      packageName = "mime-db";
-      version = "1.12.0";
+      version = "2.4.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz";
-        sha1 = "3d0c63180f458eb10d325aaa37d7c58ae312e9d7";
+        url = "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz";
+        sha512 = "RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==";
       };
     };
     "mime-db-1.33.0" = {
@@ -28953,15 +29556,6 @@ let
         sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
       };
     };
-    "mime-types-2.0.14" = {
-      name = "mime-types";
-      packageName = "mime-types";
-      version = "2.0.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz";
-        sha1 = "310e159db23e077f8bb22b748dabfa4957140aa6";
-      };
-    };
     "mime-types-2.1.18" = {
       name = "mime-types";
       packageName = "mime-types";
@@ -29007,13 +29601,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" = {
@@ -29034,6 +29628,15 @@ let
         sha512 = "wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==";
       };
     };
+    "mimic-response-3.1.0" = {
+      name = "mimic-response";
+      packageName = "mimic-response";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz";
+        sha512 = "z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==";
+      };
+    };
     "min-document-2.19.0" = {
       name = "min-document";
       packageName = "min-document";
@@ -29043,13 +29646,13 @@ let
         sha1 = "7bd282e3f5842ed295bb748cdd9f1ffa2c824685";
       };
     };
-    "min-indent-1.0.0" = {
+    "min-indent-1.0.1" = {
       name = "min-indent";
       packageName = "min-indent";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz";
-        sha1 = "cfc45c37e9ec0d8f0a0ec3dd4ef7f7c3abe39256";
+        url = "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz";
+        sha512 = "I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==";
       };
     };
     "minicap-prebuilt-2.3.0" = {
@@ -29151,6 +29754,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";
@@ -29169,22 +29781,22 @@ let
         sha512 = "FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==";
       };
     };
-    "minimist-options-4.0.2" = {
+    "minimist-options-4.1.0" = {
       name = "minimist-options";
       packageName = "minimist-options";
-      version = "4.0.2";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minimist-options/-/minimist-options-4.0.2.tgz";
-        sha512 = "seq4hpWkYSUh1y7NXxzucwAN9yVlBc3Upgdjz8vLCP97jG8kaOmzYrVH/m7tQ1NYD1wdtZbSLfdy4zFmRWuc/w==";
+        url = "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz";
+        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" = {
@@ -29196,13 +29808,13 @@ let
         sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==";
       };
     };
-    "minipass-3.1.1" = {
+    "minipass-3.1.3" = {
       name = "minipass";
       packageName = "minipass";
-      version = "3.1.1";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz";
-        sha512 = "UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==";
+        url = "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz";
+        sha512 = "Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==";
       };
     };
     "minipass-collect-1.0.2" = {
@@ -29214,13 +29826,13 @@ let
         sha512 = "6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==";
       };
     };
-    "minipass-fetch-1.2.1" = {
+    "minipass-fetch-1.3.0" = {
       name = "minipass-fetch";
       packageName = "minipass-fetch";
-      version = "1.2.1";
+      version = "1.3.0";
       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.0.tgz";
+        sha512 = "Yb23ESZZ/8QxiBvSpJ4atbVMVDx2CXrerzrtQzQ67eLqKg+zFIkYFTagk3xh6fdo+e/FvDtVuCD4QcuYDRR3hw==";
       };
     };
     "minipass-flush-1.0.5" = {
@@ -29241,13 +29853,13 @@ let
         sha512 = "ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==";
       };
     };
-    "minipass-pipeline-1.2.2" = {
+    "minipass-pipeline-1.2.4" = {
       name = "minipass-pipeline";
       packageName = "minipass-pipeline";
-      version = "1.2.2";
+      version = "1.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz";
-        sha512 = "3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==";
+        url = "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz";
+        sha512 = "xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==";
       };
     };
     "minipass-sized-1.0.3" = {
@@ -29367,15 +29979,6 @@ let
         sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
       };
     };
-    "mkdirp-1.0.3" = {
-      name = "mkdirp";
-      packageName = "mkdirp";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz";
-        sha512 = "6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==";
-      };
-    };
     "mkdirp-1.0.4" = {
       name = "mkdirp";
       packageName = "mkdirp";
@@ -29412,6 +30015,33 @@ let
         sha1 = "ebb3a977e7af1c683ae6fda12b545a6ba6c5853d";
       };
     };
+    "mobx-4.15.4" = {
+      name = "mobx";
+      packageName = "mobx";
+      version = "4.15.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mobx/-/mobx-4.15.4.tgz";
+        sha512 = "nyuHPqmKnVOnbvkjR8OrijBtovxAHYC+JU8/qBqvBw4Dez/n+zzxqNHbZNFy7/07+wwc/Qz7JS9WSfy1LcYISA==";
+      };
+    };
+    "mobx-react-6.2.5" = {
+      name = "mobx-react";
+      packageName = "mobx-react";
+      version = "6.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mobx-react/-/mobx-react-6.2.5.tgz";
+        sha512 = "LxtXXW0GkOAO6VOIg2m/6WL6ZuKlzOWwESIFdrWelI0ZMIvtKCMZVUuulcO5GAWSDsH0ApaMkGLoaPqKjzyziQ==";
+      };
+    };
+    "mobx-react-lite-2.0.7" = {
+      name = "mobx-react-lite";
+      packageName = "mobx-react-lite";
+      version = "2.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-2.0.7.tgz";
+        sha512 = "YKAh2gThC6WooPnVZCoC+rV1bODAKFwkhxikzgH18wpBjkgTkkR9Sb0IesQAH5QrAEH/JQVmy47jcpQkf2Au3Q==";
+      };
+    };
     "mocha-2.5.3" = {
       name = "mocha";
       packageName = "mocha";
@@ -29421,6 +30051,15 @@ let
         sha1 = "161be5bdeb496771eb9b35745050b622b5aefc58";
       };
     };
+    "mocha-8.1.1" = {
+      name = "mocha";
+      packageName = "mocha";
+      version = "8.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mocha/-/mocha-8.1.1.tgz";
+        sha512 = "p7FuGlYH8t7gaiodlFreseLxEmxTgvyG9RgPHODFPySNhwUehu8NIb0vdSt3WFckSneswZ0Un5typYcWElk7HQ==";
+      };
+    };
     "mock-require-3.0.3" = {
       name = "mock-require";
       packageName = "mock-require";
@@ -29448,31 +30087,13 @@ let
         sha512 = "A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==";
       };
     };
-    "module-definition-3.3.0" = {
-      name = "module-definition";
-      packageName = "module-definition";
-      version = "3.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/module-definition/-/module-definition-3.3.0.tgz";
-        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";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/module-deps/-/module-deps-6.2.2.tgz";
-        sha512 = "a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==";
-      };
-    };
-    "module-lookup-amd-6.2.0" = {
-      name = "module-lookup-amd";
-      packageName = "module-lookup-amd";
-      version = "6.2.0";
+      version = "6.2.3";
       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/module-deps/-/module-deps-6.2.3.tgz";
+        sha512 = "fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==";
       };
     };
     "mold-source-map-0.4.0" = {
@@ -29493,22 +30114,13 @@ let
         sha512 = "Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==";
       };
     };
-    "moment-2.24.0" = {
+    "moment-2.27.0" = {
       name = "moment";
       packageName = "moment";
-      version = "2.24.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz";
-        sha512 = "bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==";
-      };
-    };
-    "moment-2.25.3" = {
-      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 = "PuYv0PHxZvzc15Sp8ybUCoQ+xpyPWvjOuK72a5ovzp2LI32rJXOiIfyoFoYvG3s6EwwrdkMyWuRiEHSZRLJNdg==";
+        url = "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz";
+        sha512 = "al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==";
       };
     };
     "moment-2.7.0" = {
@@ -29520,13 +30132,13 @@ let
         sha1 = "359a19ec634cda3c706c8709adda54c0329aaec4";
       };
     };
-    "moment-timezone-0.5.28" = {
+    "moment-timezone-0.5.31" = {
       name = "moment-timezone";
       packageName = "moment-timezone";
-      version = "0.5.28";
+      version = "0.5.31";
       src = fetchurl {
-        url = "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.28.tgz";
-        sha512 = "TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw==";
+        url = "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.31.tgz";
+        sha512 = "+GgHNg8xRhMXfEbv81iDtrVeTcWt0kWmTEY1XQK14dICTXnWJnT0dxdlPspwqF3keKMVPXwayEsk1DI0AA/jdA==";
       };
     };
     "monotonic-timestamp-0.0.9" = {
@@ -29583,15 +30195,6 @@ let
         sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92";
       };
     };
-    "move-file-2.0.0" = {
-      name = "move-file";
-      packageName = "move-file";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/move-file/-/move-file-2.0.0.tgz";
-        sha512 = "cdkdhNCgbP5dvS4tlGxZbD+nloio9GIimP57EjqFhwLcMjnU+XJKAZzlmg/TN/AK1LuNAdTSvm3CPPP4Xkv0iQ==";
-      };
-    };
     "mp4-box-encoding-1.4.1" = {
       name = "mp4-box-encoding";
       packageName = "mp4-box-encoding";
@@ -29637,15 +30240,6 @@ let
         sha512 = "eaF9rO2uFrIYEHomJxziuKTDkbWW5psLBaIGCazQSKqYsTaB3n4SpvJ1PexKaDBiPnMLPIFWBIiTYT3IfEJfww==";
       };
     };
-    "ms-0.7.0" = {
-      name = "ms";
-      packageName = "ms";
-      version = "0.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ms/-/ms-0.7.0.tgz";
-        sha1 = "865be94c2e7397ad8a57da6a633a6e2f30798b83";
-      };
-    };
     "ms-0.7.1" = {
       name = "ms";
       packageName = "ms";
@@ -29835,13 +30429,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" = {
@@ -29898,6 +30492,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";
@@ -30069,6 +30672,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";
@@ -30177,15 +30789,6 @@ let
         sha512 = "ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==";
       };
     };
-    "napi-macros-1.8.2" = {
-      name = "napi-macros";
-      packageName = "napi-macros";
-      version = "1.8.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/napi-macros/-/napi-macros-1.8.2.tgz";
-        sha512 = "Tr0DNY4RzTaBG2W2m3l7ZtFuJChTH6VZhXVhkGGjF/4cZTt+i8GcM9ozD+30Lmr4mDoZ5Xx34t2o4GJqYWDGcg==";
-      };
-    };
     "napi-macros-2.0.0" = {
       name = "napi-macros";
       packageName = "napi-macros";
@@ -30195,55 +30798,6 @@ let
         sha512 = "A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==";
       };
     };
-    "native-dns-cache-git+https://github.com/okTurtles/native-dns-cache.git#8714196bb9223cc9a4064a4fddf9e82ec50b7d4d" = {
-      name = "native-dns-cache";
-      packageName = "native-dns-cache";
-      version = "0.0.2";
-      src = fetchgit {
-        url = "https://github.com/okTurtles/native-dns-cache.git";
-        rev = "8714196bb9223cc9a4064a4fddf9e82ec50b7d4d";
-        sha256 = "3f06b2577afc3c1e428533baae3c51bad44a2e1e02fca147a1303943c214f841";
-      };
-    };
-    "native-dns-git+https://github.com/okTurtles/node-dns.git#08433ec98f517eed3c6d5e47bdf62603539cd402" = {
-      name = "native-dns";
-      packageName = "native-dns";
-      version = "0.6.1";
-      src = fetchgit {
-        url = "https://github.com/okTurtles/node-dns.git";
-        rev = "08433ec98f517eed3c6d5e47bdf62603539cd402";
-        sha256 = "a7342bfd4e952490a8a25a68efcb1d16ecc2391f1044109ebeace89ad284f7a2";
-      };
-    };
-    "native-dns-packet-0.1.1" = {
-      name = "native-dns-packet";
-      packageName = "native-dns-packet";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/native-dns-packet/-/native-dns-packet-0.1.1.tgz";
-        sha1 = "97da90570b8438a00194701ce24d011fd3cc109a";
-      };
-    };
-    "native-dns-packet-git+https://github.com/okTurtles/native-dns-packet.git#307e77a47ebba57a5ae9118a284e916e5ebb305a" = {
-      name = "native-dns-packet";
-      packageName = "native-dns-packet";
-      version = "0.0.3";
-      src = fetchgit {
-        url = "https://github.com/okTurtles/native-dns-packet.git";
-        rev = "307e77a47ebba57a5ae9118a284e916e5ebb305a";
-        sha256 = "f8aaa7bb3b2a652e52bfe5c13a6531c71d690f621ef4d86d0787838708a50358";
-      };
-    };
-    "native-dns-packet-git+https://github.com/okTurtles/native-dns-packet.git#8bf2714c318cfe7d31bca2006385882ccbf503e4" = {
-      name = "native-dns-packet";
-      packageName = "native-dns-packet";
-      version = "0.0.4";
-      src = fetchgit {
-        url = "https://github.com/okTurtles/native-dns-packet.git";
-        rev = "8bf2714c318cfe7d31bca2006385882ccbf503e4";
-        sha256 = "1f39a4bd88978a0b51d45c32c777fb7f75b12e220cf7d206aa5a12d1e4e80f9d";
-      };
-    };
     "native-promise-only-0.8.1" = {
       name = "native-promise-only";
       packageName = "native-promise-only";
@@ -30253,6 +30807,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";
@@ -30289,13 +30852,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" = {
@@ -30316,15 +30879,6 @@ let
         sha1 = "9570ef15ed6f9ae6b2b3c8d5e71b66d3193cd661";
       };
     };
-    "nconf-0.7.1" = {
-      name = "nconf";
-      packageName = "nconf";
-      version = "0.7.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nconf/-/nconf-0.7.1.tgz";
-        sha1 = "ee4b561dd979a3c58db122e38f196d49d61aeb5b";
-      };
-    };
     "ncp-0.4.2" = {
       name = "ncp";
       packageName = "ncp";
@@ -30379,13 +30933,13 @@ let
         sha1 = "ae603b36b134bcec347b452422b0bf98d5832ec8";
       };
     };
-    "nearley-2.19.3" = {
+    "nearley-2.19.5" = {
       name = "nearley";
       packageName = "nearley";
-      version = "2.19.3";
+      version = "2.19.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nearley/-/nearley-2.19.3.tgz";
-        sha512 = "FpAy1PmTsUpOtgxr23g4jRNvJHYzZEW2PixXeSzksLR/ykPfwKhAodc2+9wQhY+JneWLcvkDw6q7FJIsIdF/aQ==";
+        url = "https://registry.npmjs.org/nearley/-/nearley-2.19.5.tgz";
+        sha512 = "qoh1ZXXl0Kpn40tFhmgvffUAlbpRMcjLUagNVnT1JmliUIsB4tFabmCNhD97+tkf9FZ/SLhhYzNow0V3GitzDg==";
       };
     };
     "neat-csv-2.1.0" = {
@@ -30433,15 +30987,6 @@ let
         sha512 = "+T6UtYItDTE1L30g/nLRjP55dFlvldrzCRsn4CrcNHIbhg5JUe0hnOx1DHFViysUC7I1cevBQVjdGJ9ZftY9DA==";
       };
     };
-    "neat-stack-1.0.1" = {
-      name = "neat-stack";
-      packageName = "neat-stack";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/neat-stack/-/neat-stack-1.0.1.tgz";
-        sha512 = "nl0eft4etsbFowZVP+1lNqZsNKb2SIC+PnAr/ODBln6RNVaJh0YYu8P3j8Iuh4XeIAgyWn3xCSizbTobRjocIA==";
-      };
-    };
     "neat-tasks-1.1.1" = {
       name = "neat-tasks";
       packageName = "neat-tasks";
@@ -30460,13 +31005,13 @@ let
         sha1 = "f52a5858972121618e002f8e6384cadac22d624f";
       };
     };
-    "needle-2.4.1" = {
+    "needle-2.5.0" = {
       name = "needle";
       packageName = "needle";
-      version = "2.4.1";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/needle/-/needle-2.4.1.tgz";
-        sha512 = "x/gi6ijr4B7fwl6WYL9FwlCvRQKGlUNvnceho8wxkwXqN8jvVmmmATTmZPRRG7b/yC1eode26C2HO9jl78Du9g==";
+        url = "https://registry.npmjs.org/needle/-/needle-2.5.0.tgz";
+        sha512 = "o/qITSDR0JCyCKEQ1/1bnUXMmznxabbwi/Y4WwJElf+evwJNFNwIDMCCt5IigFVxgeGBJESLohGtIS9gEzo1fA==";
       };
     };
     "negotiator-0.3.0" = {
@@ -30506,13 +31051,13 @@ let
         sha256 = "243e90fbf6616ef39f3c71bbcd027799e35cbf2ef3f25203676f65b20f7f7394";
       };
     };
-    "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==";
       };
     };
     "nested-error-stacks-2.0.1" = {
@@ -30677,6 +31222,15 @@ let
         sha512 = "rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==";
       };
     };
+    "no-case-3.0.3" = {
+      name = "no-case";
+      packageName = "no-case";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz";
+        sha512 = "ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==";
+      };
+    };
     "no-cliches-0.1.1" = {
       name = "no-cliches";
       packageName = "no-cliches";
@@ -30695,31 +31249,22 @@ let
         sha512 = "iEOqDAOFl6uN5jZGRj39Jdo8qALzf2HPXtpFso8+BMaDylDrUMYMwhFbfYGgxdnMlsRnxYTwv68kaXEpsHIapg==";
       };
     };
-    "node-abi-2.16.0" = {
+    "node-abi-2.18.0" = {
       name = "node-abi";
       packageName = "node-abi";
-      version = "2.16.0";
+      version = "2.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.16.0.tgz";
-        sha512 = "+sa0XNlWDA6T+bDLmkCUYn6W5k5W6BPRL6mqzSCs6H/xUgtl4D5x2fORKDzopKiU6wsyn/+wXlRXwXeSp+mtoA==";
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.18.0.tgz";
+        sha512 = "yi05ZoiuNNEbyT/xXfSySZE+yVnQW6fxPZuFbLyS1s6b5Kw3HzV2PHOM4XR+nsjzkHxByK+2Wg+yCQbe35l8dw==";
       };
     };
-    "node-addon-api-1.7.1" = {
+    "node-addon-api-1.7.2" = {
       name = "node-addon-api";
       packageName = "node-addon-api";
-      version = "1.7.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.1.tgz";
-        sha512 = "2+DuKodWvwRTrCfKOeR24KIc5unKjOh8mz17NCzVnHWfjAdDqbfbjqh7gUT+BkXBRQM52+xCHciKWonJ3CbJMQ==";
-      };
-    };
-    "node-alias-1.0.4" = {
-      name = "node-alias";
-      packageName = "node-alias";
-      version = "1.0.4";
+      version = "1.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-alias/-/node-alias-1.0.4.tgz";
-        sha1 = "1f1b916b56b9ea241c0135f97ced6940f556f292";
+        url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz";
+        sha512 = "ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==";
       };
     };
     "node-appc-0.2.49" = {
@@ -30740,13 +31285,13 @@ let
         sha1 = "180eac7003e0c707618ef31368f62f84b2a69091";
       };
     };
-    "node-cache-5.1.0" = {
+    "node-cache-5.1.2" = {
       name = "node-cache";
       packageName = "node-cache";
-      version = "5.1.0";
+      version = "5.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-cache/-/node-cache-5.1.0.tgz";
-        sha512 = "gFQwYdoOztBuPlwg6DKQEf50G+gkK69aqLnw4djkmlHCzeVrLJfwvg9xl4RCAGviTIMUVoqcyoZ/V/wPEu/VVg==";
+        url = "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz";
+        sha512 = "t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==";
       };
     };
     "node-color-readline-1.0.1" = {
@@ -30786,13 +31331,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" = {
@@ -30804,15 +31349,6 @@ let
         sha512 = "NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==";
       };
     };
-    "node-fetch-2.1.2" = {
-      name = "node-fetch";
-      packageName = "node-fetch";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz";
-        sha1 = "ab884e8e7e57e38a944753cec706f788d1768bb5";
-      };
-    };
     "node-fetch-2.2.0" = {
       name = "node-fetch";
       packageName = "node-fetch";
@@ -30831,6 +31367,15 @@ let
         sha512 = "8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==";
       };
     };
+    "node-fetch-h2-2.3.0" = {
+      name = "node-fetch-h2";
+      packageName = "node-fetch-h2";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz";
+        sha512 = "ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==";
+      };
+    };
     "node-fetch-npm-2.0.4" = {
       name = "node-fetch-npm";
       packageName = "node-fetch-npm";
@@ -30867,22 +31412,22 @@ let
         sha512 = "7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==";
       };
     };
-    "node-gyp-3.8.0" = {
+    "node-gyp-4.0.0" = {
       name = "node-gyp";
       packageName = "node-gyp";
-      version = "3.8.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz";
-        sha512 = "3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==";
+        url = "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz";
+        sha512 = "2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA==";
       };
     };
-    "node-gyp-5.1.0" = {
+    "node-gyp-5.1.1" = {
       name = "node-gyp";
       packageName = "node-gyp";
-      version = "5.1.0";
+      version = "5.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.0.tgz";
-        sha512 = "OUTryc5bt/P8zVgNUmC6xdXiDJxLMAW8cF5tLQOT9E5sOQj+UeQxnnPy74K3CLCa/SOjjBlbuzDLR8ANwA+wmw==";
+        url = "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz";
+        sha512 = "WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw==";
       };
     };
     "node-gyp-6.1.0" = {
@@ -30921,13 +31466,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" = {
@@ -30975,6 +31520,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";
@@ -31020,6 +31574,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";
@@ -31029,13 +31592,31 @@ let
         sha512 = "OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==";
       };
     };
-    "node-red-node-rbe-0.2.8" = {
+    "node-readfiles-0.2.0" = {
+      name = "node-readfiles";
+      packageName = "node-readfiles";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz";
+        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";
-      version = "0.2.8";
+      version = "0.2.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-red-node-rbe/-/node-red-node-rbe-0.2.8.tgz";
-        sha512 = "v2pZOn/raE87JLB86l5fH2JkU7uthqzV3lLI9WcL+fA+vDlg5iN2p/eQfhUy1DhgEmqmGrLu03h5efv+Sly5Vg==";
+        url = "https://registry.npmjs.org/node-red-node-rbe/-/node-red-node-rbe-0.2.9.tgz";
+        sha512 = "9WNPHkhDhgvYsPyiGUs05AxWWEVVr2GeE8mFUANbZgW45L/awJfQEBq4h4HKfJb17duEmWWTrVZwnfIi3xLOlw==";
       };
     };
     "node-red-node-tail-0.1.1" = {
@@ -31047,31 +31628,13 @@ let
         sha512 = "j1g/VtSCI2tBrBnCD+u8iSo9tH0nvn70k1O1SxkHk3+qx7tHUyOKQc7wNc4rUs9J1PkGngUC3qEDd5cL7Z/klg==";
       };
     };
-    "node-releases-1.1.53" = {
+    "node-releases-1.1.60" = {
       name = "node-releases";
       packageName = "node-releases";
-      version = "1.1.53";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz";
-        sha512 = "wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==";
-      };
-    };
-    "node-request-by-swagger-1.1.4" = {
-      name = "node-request-by-swagger";
-      packageName = "node-request-by-swagger";
-      version = "1.1.4";
+      version = "1.1.60";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-request-by-swagger/-/node-request-by-swagger-1.1.4.tgz";
-        sha512 = "hwaTaFPUwNKns5qXwGJpLQM3Z5zRluYeAxpYy1L8fWmWdT/DjLmsnW8/oGlSN8Vo4R28c2znfUoBUiB/RlPptw==";
-      };
-    };
-    "node-source-walk-4.2.0" = {
-      name = "node-source-walk";
-      packageName = "node-source-walk";
-      version = "4.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.2.0.tgz";
-        sha512 = "hPs/QMe6zS94f5+jG3kk9E7TNm4P2SulrKiLWMzKszBfNZvL/V6wseHlTd7IvfW0NZWqPtK3+9yYNr+3USGteA==";
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz";
+        sha512 = "gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==";
       };
     };
     "node-ssdp-2.9.1" = {
@@ -31353,15 +31916,6 @@ let
         sha512 = "KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==";
       };
     };
-    "npcache-1.0.2" = {
-      name = "npcache";
-      packageName = "npcache";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npcache/-/npcache-1.0.2.tgz";
-        sha512 = "h42LqKZvSbykPoCyAwEKbJAXUpt1SZ7O8GvA0XRqb26VtWQuKLJtp+Rt4jqkq1Y+ZRErINdyeZ3Ijc5lDtqkSg==";
-      };
-    };
     "npm-2.15.12" = {
       name = "npm";
       packageName = "npm";
@@ -31389,51 +31943,6 @@ let
         sha512 = "gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==";
       };
     };
-    "npm-cache-env-2.0.0" = {
-      name = "npm-cache-env";
-      packageName = "npm-cache-env";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-cache-env/-/npm-cache-env-2.0.0.tgz";
-        sha512 = "t5cz/NY4IPmiKBRFry3U3M8Ypwdx4LJ3w7te/49LWB2R4wPf5QAAGB1zNoH9IbGtC/wiOeE8b/HsoG2lLAOYaQ==";
-      };
-    };
-    "npm-cache-path-2.0.0" = {
-      name = "npm-cache-path";
-      packageName = "npm-cache-path";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-cache-path/-/npm-cache-path-2.0.0.tgz";
-        sha512 = "7OJzaenruC1PffVJ7onG0u4aTQLaykT4gF5n61j9fot58J4ppoglkrv+pY4BsFR2drPWb6vbEpJH7/Xviv7h+Q==";
-      };
-    };
-    "npm-cli-dir-3.0.1" = {
-      name = "npm-cli-dir";
-      packageName = "npm-cli-dir";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-cli-dir/-/npm-cli-dir-3.0.1.tgz";
-        sha512 = "t9V9Gz/Q5a5KOSynLpKKnLxJzWLnHtAZvaLmNSbNeNR+qEpCmu/n5J74lyz4QQ/XIGEEYWIoVXR8scqbUWaMrQ==";
-      };
-    };
-    "npm-cli-path-3.1.2" = {
-      name = "npm-cli-path";
-      packageName = "npm-cli-path";
-      version = "3.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-cli-path/-/npm-cli-path-3.1.2.tgz";
-        sha512 = "JdiFz8kpCf9WD01zRx5u29EP5UYjKp9osSVMflPkamlplgsuaagkwqY3JpzDySl/VDpGUva8q8YoSG6AatFkIg==";
-      };
-    };
-    "npm-cli-version-1.0.0" = {
-      name = "npm-cli-version";
-      packageName = "npm-cli-version";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-cli-version/-/npm-cli-version-1.0.0.tgz";
-        sha512 = "VqqnMzMfcZ0UZFDki7ZR8E4U8Pz7VbTOGSMk8KJbQ+oUlJlon8IXhb6BIdMJClRArHn216useYM1kvqgZmDvtQ==";
-      };
-    };
     "npm-conf-1.1.3" = {
       name = "npm-conf";
       packageName = "npm-conf";
@@ -31506,31 +32015,13 @@ let
         sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==";
       };
     };
-    "npm-packlist-2.1.1" = {
+    "npm-packlist-2.1.2" = {
       name = "npm-packlist";
       packageName = "npm-packlist";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.1.1.tgz";
-        sha512 = "95TSDvGwujIhqfSpIiRRLodEF+y6mJMopuZdahoGzqtRDFZXGav46S0p6ngeWaiAkb5R72w6eVARhzej0HvZeQ==";
-      };
-    };
-    "npm-path-2.0.4" = {
-      name = "npm-path";
-      packageName = "npm-path";
-      version = "2.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz";
-        sha512 = "IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==";
-      };
-    };
-    "npm-paths-1.0.0" = {
-      name = "npm-paths";
-      packageName = "npm-paths";
-      version = "1.0.0";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-paths/-/npm-paths-1.0.0.tgz";
-        sha512 = "COlxSO5PK9UvZXIa7/sqJDZOlffWFx9+CKJJWkdbhUJMBwcf9sof2jxt4uiVsl+nY3sy0/XFGl4iGr8GoKfiXA==";
+        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.1.2.tgz";
+        sha512 = "eByPaP+wsKai0BJX5pmb58d3mfR0zUATcnyuvSxIudTEn+swCPFLxh7srCmqB4hr7i9V24/DPjjq5b2qUtbgXQ==";
       };
     };
     "npm-pick-manifest-3.0.2" = {
@@ -31542,15 +32033,6 @@ let
         sha512 = "wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==";
       };
     };
-    "npm-pick-manifest-6.0.0" = {
-      name = "npm-pick-manifest";
-      packageName = "npm-pick-manifest";
-      version = "6.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.0.0.tgz";
-        sha512 = "PdJpXMvjqt4nftNEDpCgjBUF8yI3Q3MyuAmVB9nemnnCg32F4BPL/JFBfdj8DubgHCYUFQhtLWmBPvdsFtjWMg==";
-      };
-    };
     "npm-pick-manifest-6.1.0" = {
       name = "npm-pick-manifest";
       packageName = "npm-pick-manifest";
@@ -31587,31 +32069,22 @@ let
         sha512 = "Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==";
       };
     };
-    "npm-registry-fetch-4.0.4" = {
+    "npm-registry-fetch-4.0.5" = {
       name = "npm-registry-fetch";
       packageName = "npm-registry-fetch";
-      version = "4.0.4";
+      version = "4.0.5";
       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.5.tgz";
+        sha512 = "yQ0/U4fYpCCqmueB2g8sc+89ckQ3eXpmU4+Yi2j5o/r0WkKvE2+Y0tK3DEILAtn2UaQTkjTHxIXe2/CSdit+/Q==";
       };
     };
-    "npm-registry-fetch-8.0.2" = {
+    "npm-registry-fetch-8.1.3" = {
       name = "npm-registry-fetch";
       packageName = "npm-registry-fetch";
-      version = "8.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.0.2.tgz";
-        sha512 = "/UteT/LQ+0eegPh96w2sVjpAJk2kuphWASp1SPBFBWtSyuPoUW5gf4utzQm5A5FLrZF3eZJGH59j4X6KBUa40g==";
-      };
-    };
-    "npm-run-4.1.2" = {
-      name = "npm-run";
-      packageName = "npm-run";
-      version = "4.1.2";
+      version = "8.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-run/-/npm-run-4.1.2.tgz";
-        sha1 = "1030e1ec56908c89fcc3fa366d03a2c2ba98eb99";
+        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.1.3.tgz";
+        sha512 = "xpBFcg13wkFR0SsscvemmrIe1Sxe1SPgGUOAb7+5Uo6fR8SIRMenMHeDSjfyulv1px66/y0Ib40rtKO20PcgPg==";
       };
     };
     "npm-run-path-2.0.2" = {
@@ -31641,24 +32114,6 @@ let
         sha512 = "S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==";
       };
     };
-    "npm-version-compare-1.0.1" = {
-      name = "npm-version-compare";
-      packageName = "npm-version-compare";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-version-compare/-/npm-version-compare-1.0.1.tgz";
-        sha512 = "X+/Oz2OkF6KzMqyFyNBV5MC1ScPxtl5bJTkUcIp9Bz5Wv2Yf8uqDIq+vu+/gy2DRb11Q2Z6jfHbav7Ux0t99JQ==";
-      };
-    };
-    "npm-which-3.0.1" = {
-      name = "npm-which";
-      packageName = "npm-which";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz";
-        sha1 = "9225f26ec3a285c209cae67c3b11a6b4ab7140aa";
-      };
-    };
     "npmconf-0.1.1" = {
       name = "npmconf";
       packageName = "npmconf";
@@ -31722,13 +32177,13 @@ let
         sha512 = "WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==";
       };
     };
-    "num-sort-2.0.0" = {
+    "num-sort-2.1.0" = {
       name = "num-sort";
       packageName = "num-sort";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/num-sort/-/num-sort-2.0.0.tgz";
-        sha512 = "tqzBd1/b4CPp94zlhOmWDEZ9kUue6Kmg6CpRp7RKJPZQKjNve8Ui3DkqOeZCIlmGrAzJDpdZP9ZEANC4EqYPsw==";
+        url = "https://registry.npmjs.org/num-sort/-/num-sort-2.1.0.tgz";
+        sha512 = "1MQz1Ed8z2yckoBeSfkQHHO9K1yDRxxtotKSJ9yvcTUUxSvfvzEq5GwBrjjHEpMlq/k5gvXdmJ1SbYxWtpNoVg==";
       };
     };
     "num2fraction-1.2.2" = {
@@ -31794,6 +32249,60 @@ let
         sha512 = "h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==";
       };
     };
+    "oas-kit-common-1.0.8" = {
+      name = "oas-kit-common";
+      packageName = "oas-kit-common";
+      version = "1.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz";
+        sha512 = "pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==";
+      };
+    };
+    "oas-linter-3.1.3" = {
+      name = "oas-linter";
+      packageName = "oas-linter";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/oas-linter/-/oas-linter-3.1.3.tgz";
+        sha512 = "jFWBHjSoqODGo7cKA/VWqqWSLbHNtnyCEpa2nMMS64SzCUbZDk63Oe7LqQZ2qJA0K2VRreYLt6cVkYy6MqNRDg==";
+      };
+    };
+    "oas-resolver-2.4.2" = {
+      name = "oas-resolver";
+      packageName = "oas-resolver";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.4.2.tgz";
+        sha512 = "iJo7wE/MhuCJefkcpCS/NlE8MunRgRvgPozpeLSZUg0zmU8PBkzUwdtzpmjGDd7QjEuUi0SZ/y1wIrFIH+FNiA==";
+      };
+    };
+    "oas-schema-walker-1.1.5" = {
+      name = "oas-schema-walker";
+      packageName = "oas-schema-walker";
+      version = "1.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz";
+        sha512 = "2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==";
+      };
+    };
+    "oas-validator-3.4.0" = {
+      name = "oas-validator";
+      packageName = "oas-validator";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/oas-validator/-/oas-validator-3.4.0.tgz";
+        sha512 = "l/SxykuACi2U51osSsBXTxdsFc8Fw41xI7AsZkzgVgWJAzoEFaaNptt35WgY9C3757RUclsm6ye5GvSyYoozLQ==";
+      };
+    };
+    "oas-validator-4.0.7" = {
+      name = "oas-validator";
+      packageName = "oas-validator";
+      version = "4.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/oas-validator/-/oas-validator-4.0.7.tgz";
+        sha512 = "ppSW68iIIhvzFwSvY51NJPLM0uFjkHKAdoXKO+Pq6Ej1qU5Nvi9I3dQt6W8y/B+UYIP8yXr9YTEuvzG7sQH/ww==";
+      };
+    };
     "oauth-0.9.15" = {
       name = "oauth";
       packageName = "oauth";
@@ -31809,7 +32318,7 @@ let
       version = "0.9.15";
       src = fetchurl {
         name = "oauth-0.9.15.tar.gz";
-        url = "https://codeload.github.com/ciaranj/node-oauth/legacy.tar.gz/master";
+        url = https://codeload.github.com/ciaranj/node-oauth/legacy.tar.gz/master;
         sha256 = "9341c28772841acde618c778e85e381976f425824b816100792f697e68aec947";
       };
     };
@@ -31930,6 +32439,15 @@ let
         sha512 = "a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==";
       };
     };
+    "object-inspect-1.8.0" = {
+      name = "object-inspect";
+      packageName = "object-inspect";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz";
+        sha512 = "jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==";
+      };
+    };
     "object-is-1.1.2" = {
       name = "object-is";
       packageName = "object-is";
@@ -31975,6 +32493,15 @@ let
         sha512 = "BfWfuAwuhdH1bhMG5EG90WE/eckkBhBvnke8eSEkCDXoLE9Jk5JwYGTbCx1ehGwV48HvBkn62VukPBdlMUOY9w==";
       };
     };
+    "object-treeify-1.1.26" = {
+      name = "object-treeify";
+      packageName = "object-treeify";
+      version = "1.1.26";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.26.tgz";
+        sha512 = "0WTfU7SGM8umY4YPpOg+oHXL66E6dPVCr+sMR6KitPmvg8CkVrHUUZYEFtx0+5Wb0HjFEsBwBYXyGRNeX7c/oQ==";
+      };
+    };
     "object-visit-1.0.1" = {
       name = "object-visit";
       packageName = "object-visit";
@@ -32101,6 +32628,15 @@ let
         sha1 = "cb236106341536f0dac4815e06708221cad7fb5e";
       };
     };
+    "obz-1.0.2" = {
+      name = "obz";
+      packageName = "obz";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/obz/-/obz-1.0.2.tgz";
+        sha512 = "c+EtVwT2IpXz5we2mR40aPLJ1s0eNOsxYeaYbaHhmsY6kWKo3IRkpwpBU5ck0aHfqfKUUEiKabC6rzsrG/hSHw==";
+      };
+    };
     "octokit-pagination-methods-1.1.0" = {
       name = "octokit-pagination-methods";
       packageName = "octokit-pagination-methods";
@@ -32110,6 +32646,15 @@ let
         sha512 = "fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==";
       };
     };
+    "office-ui-fabric-react-7.124.2" = {
+      name = "office-ui-fabric-react";
+      packageName = "office-ui-fabric-react";
+      version = "7.124.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.124.2.tgz";
+        sha512 = "c/6KlNWImaI0N9w9azzTlI3/svkUroNvdZrYBSKHlGVf5CU/GQPEUSmkuaLq6aPZeU7pmr2qUKlZq2sPyrLIOQ==";
+      };
+    };
     "omggif-1.0.10" = {
       name = "omggif";
       packageName = "omggif";
@@ -32227,6 +32772,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";
@@ -32245,13 +32799,13 @@ let
         sha1 = "067428230fd67443b2794b22bba528b6867962d4";
       };
     };
-    "onetime-5.1.0" = {
+    "onetime-5.1.1" = {
       name = "onetime";
       packageName = "onetime";
-      version = "5.1.0";
+      version = "5.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz";
-        sha512 = "5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==";
+        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.1.tgz";
+        sha512 = "ZpZpjcJeugQfWsfyQlshVoowIIQ1qBGSVll4rfDq6JJVO//fesjoX808hXWfBjY+ROZgpKDI5TRSRBSoJiZ8eg==";
       };
     };
     "ono-4.0.11" = {
@@ -32299,31 +32853,148 @@ 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.3" = {
+    "open-7.1.0" = {
       name = "open";
       packageName = "open";
-      version = "7.0.3";
+      version = "7.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/open/-/open-7.1.0.tgz";
+        sha512 = "lLPI5KgOwEYCDKXf4np7y1PBEkj7HYIyP2DY8mVDRnx0VIIu6bNrRB0R66TuO7Mack6EnTNLm4uvcl1UoklTpA==";
+      };
+    };
+    "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/open/-/open-7.0.3.tgz";
-        sha512 = "sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA==";
+        url = "https://registry.npmjs.org/openapi-request-validator/-/openapi-request-validator-4.2.0.tgz";
+        sha512 = "ukdX4T8heEI2GudiqDkk8hwfZhZP7zAz8zwngTyHtI0ZRUuU76+Zix8LVfrvSTZ2RpsPClKmYU2kDU4YZqdRHg==";
       };
     };
-    "opencollective-postinstall-2.0.2" = {
+    "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.16" = {
+      name = "openapi-sampler";
+      packageName = "openapi-sampler";
+      version = "1.0.0-beta.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.0.0-beta.16.tgz";
+        sha512 = "05+GvwMagTY7GxoDQoWJfmAUFlxfebciiEzqKmu4iq6+MqBEn62AMUkn0CTxyKhnUGIaR2KXjTeslxIeJwVIOw==";
+      };
+    };
+    "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" = {
+      name = "openapi-to-graphql";
+      packageName = "openapi-to-graphql";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-to-graphql/-/openapi-to-graphql-2.1.0.tgz";
+        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";
-      version = "2.0.2";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz";
-        sha512 = "pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==";
+        url = "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz";
+        sha512 = "8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==";
       };
     };
     "opener-1.5.1" = {
@@ -32353,6 +33024,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";
@@ -32416,15 +33096,6 @@ let
         sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686";
       };
     };
-    "optional-0.1.4" = {
-      name = "optional";
-      packageName = "optional";
-      version = "0.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz";
-        sha512 = "gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw==";
-      };
-    };
     "optionator-0.3.0" = {
       name = "optionator";
       packageName = "optionator";
@@ -32443,6 +33114,15 @@ let
         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==";
+      };
+    };
     "options-0.0.6" = {
       name = "options";
       packageName = "options";
@@ -32524,6 +33204,15 @@ let
         sha512 = "77iGeVU1cIdRhgFzCK8aw1fbtT1B/iZAvWjS+l/o1x0RShMgxHUZaD2yDpWsNCPwXg9z1ZA78Kbdvr8kBmG/Ww==";
       };
     };
+    "ora-4.0.5" = {
+      name = "ora";
+      packageName = "ora";
+      version = "4.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ora/-/ora-4.0.5.tgz";
+        sha512 = "jCDgm9DqvRcNIAEv2wZPrh7E5PcQiDUnbnWbAfu4NGAE2ZNqPFbDixmWldy1YG2QfLeQhuiu6/h5VRrk6cG50w==";
+      };
+    };
     "orchestrator-0.3.8" = {
       name = "orchestrator";
       packageName = "orchestrator";
@@ -32596,15 +33285,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";
@@ -32668,13 +33348,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" = {
@@ -32758,13 +33438,13 @@ let
         sha512 = "NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==";
       };
     };
-    "p-event-4.1.0" = {
+    "p-event-4.2.0" = {
       name = "p-event";
       packageName = "p-event";
-      version = "4.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-event/-/p-event-4.1.0.tgz";
-        sha512 = "4vAd06GCsgflX4wHN1JqrMzBh/8QZ4j+rzp0cd2scXRwuBEv+QR3wrVA5aLhWDLw4y2WgDKvzWF3CCLmVM1UgA==";
+        url = "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz";
+        sha512 = "KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==";
       };
     };
     "p-filter-2.1.0" = {
@@ -32830,6 +33510,15 @@ let
         sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
       };
     };
+    "p-limit-3.0.2" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz";
+        sha512 = "iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==";
+      };
+    };
     "p-locate-2.0.0" = {
       name = "p-locate";
       packageName = "p-locate";
@@ -32911,13 +33600,13 @@ let
         sha512 = "3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg==";
       };
     };
-    "p-queue-6.4.0" = {
+    "p-queue-6.6.0" = {
       name = "p-queue";
       packageName = "p-queue";
-      version = "6.4.0";
+      version = "6.6.0";
       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.0.tgz";
+        sha512 = "zPHXPNy9jZsiym0PpJjvnHQysx1fSd/QdaNVwiDRLU2KFChD6h9CkCB6b8i3U8lBwJyA+mHgNZCzcy77glUssQ==";
       };
     };
     "p-reduce-1.0.0" = {
@@ -33055,13 +33744,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" = {
@@ -33073,13 +33762,13 @@ let
         sha1 = "79b302fc144cdfbb4ab6feba7040e6a5d99c79c7";
       };
     };
-    "pacote-11.1.8" = {
+    "pacote-11.1.11" = {
       name = "pacote";
       packageName = "pacote";
-      version = "11.1.8";
+      version = "11.1.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pacote/-/pacote-11.1.8.tgz";
-        sha512 = "oBXbdsqA0pnk4lNmWDHMm20uSbZiYCjE0MHeSFG3esxw1mubhSJizVc1rKVI0KMkYTMz4M7OTEqY1h2lx+wbPw==";
+        url = "https://registry.npmjs.org/pacote/-/pacote-11.1.11.tgz";
+        sha512 = "r6PHtCEhkaGv+QPx1JdE/xRdkSkZUG7dE2oloNk/CGTPGNOtaJyYqZPFeN6d6UcUrTPRvZXFo3IBzJIBopPuSA==";
       };
     };
     "pacote-9.5.12" = {
@@ -33163,6 +33852,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";
@@ -33244,15 +33942,6 @@ 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";
@@ -33316,13 +34005,13 @@ 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.0.tgz";
-        sha512 = "OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==";
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz";
+        sha512 = "ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==";
       };
     };
     "parse-latin-4.2.1" = {
@@ -33334,6 +34023,15 @@ 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-node-version-1.0.1" = {
       name = "parse-node-version";
       packageName = "parse-node-version";
@@ -33343,13 +34041,13 @@ let
         sha512 = "3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==";
       };
     };
-    "parse-numeric-range-0.0.2" = {
+    "parse-numeric-range-1.2.0" = {
       name = "parse-numeric-range";
       packageName = "parse-numeric-range";
-      version = "0.0.2";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz";
-        sha1 = "b4f09d413c7adbcd987f6e9233c7b4b210c938e4";
+        url = "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.2.0.tgz";
+        sha512 = "1q2tXpAOplPxcl8vrIGPWz1dJxxfmdRkCFcpxxMBerDnGuuHalOWF/xj9L8Nn5XoTUoB/6F0CeQBp2fMgkOYFg==";
       };
     };
     "parse-passwd-1.0.0" = {
@@ -33397,13 +34095,13 @@ let
         sha512 = "yy7UTSmliOT/7Yl+P4hwwW2W7PbCTAMcD0lasaVG+k4/2laj42YWzLm468bLFGDoFPIb29g3BuwBcA3gLopKww==";
       };
     };
-    "parse-torrent-7.1.2" = {
+    "parse-torrent-7.1.3" = {
       name = "parse-torrent";
       packageName = "parse-torrent";
-      version = "7.1.2";
+      version = "7.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse-torrent/-/parse-torrent-7.1.2.tgz";
-        sha512 = "1boHRA+aV7aeZBIg0rMBYhtfizAd/BXCXOCh/klYrgVnSpUAuJUIzQrIGkCsb93U1KOVN6C3NZOgpNy8htmqgw==";
+        url = "https://registry.npmjs.org/parse-torrent/-/parse-torrent-7.1.3.tgz";
+        sha512 = "to8zT7+o6bVTyP35r2QgG1svuFGMFO1mE6ri1oWHgL9tlgnOtfjmfHmA3mOuP9HTIU/8OiZw0NG5zbyqVLxhvA==";
       };
     };
     "parse-torrent-file-2.1.4" = {
@@ -33460,6 +34158,15 @@ let
         sha512 = "fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==";
       };
     };
+    "parse5-5.1.1" = {
+      name = "parse5";
+      packageName = "parse5";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz";
+        sha512 = "ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==";
+      };
+    };
     "parsejson-0.0.1" = {
       name = "parsejson";
       packageName = "parsejson";
@@ -33523,13 +34230,13 @@ let
         sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
       };
     };
-    "pascal-case-2.0.1" = {
+    "pascal-case-3.1.1" = {
       name = "pascal-case";
       packageName = "pascal-case";
-      version = "2.0.1";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz";
-        sha1 = "2d578d3455f660da65eca18ef95b4e0de912761e";
+        url = "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz";
+        sha512 = "XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==";
       };
     };
     "pascalcase-0.1.1" = {
@@ -33541,6 +34248,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";
@@ -33667,13 +34383,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" = {
@@ -33712,15 +34428,6 @@ let
         sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
       };
     };
-    "path-is-absolute-1.0.0" = {
-      name = "path-is-absolute";
-      packageName = "path-is-absolute";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz";
-        sha1 = "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912";
-      };
-    };
     "path-is-absolute-1.0.1" = {
       name = "path-is-absolute";
       packageName = "path-is-absolute";
@@ -33730,15 +34437,6 @@ let
         sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
       };
     };
-    "path-is-absolute-2.0.0" = {
-      name = "path-is-absolute";
-      packageName = "path-is-absolute";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-2.0.0.tgz";
-        sha512 = "ajROpjq1SLxJZsgSVCcVIt+ZebVH+PwJtPnVESjfg6JKwJGwAgHRC3zIcjvI0LnecjIHCJhtfNZ/Y/RregqyXg==";
-      };
-    };
     "path-is-inside-1.0.2" = {
       name = "path-is-inside";
       packageName = "path-is-inside";
@@ -33820,15 +34518,6 @@ let
         sha1 = "473e6a3a292a9d13fbae3edccee72d3baba8c619";
       };
     };
-    "path-to-regexp-0.1.3" = {
-      name = "path-to-regexp";
-      packageName = "path-to-regexp";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.3.tgz";
-        sha1 = "21b9ab82274279de25b156ea08fd12ca51b8aecb";
-      };
-    };
     "path-to-regexp-0.1.7" = {
       name = "path-to-regexp";
       packageName = "path-to-regexp";
@@ -33865,15 +34554,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";
@@ -33928,24 +34608,6 @@ let
         sha1 = "1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d";
       };
     };
-    "pause-fn-1.0.0" = {
-      name = "pause-fn";
-      packageName = "pause-fn";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pause-fn/-/pause-fn-1.0.0.tgz";
-        sha512 = "23uUK11+go9zE7ij4Qh45HPvqanTt22viyNsHnWrRFVgcT5TV4MFtfMhx/wL2aMt0LYbqTsJJZgG3V4C57+NQw==";
-      };
-    };
-    "pause-methods-1.0.0" = {
-      name = "pause-methods";
-      packageName = "pause-methods";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pause-methods/-/pause-methods-1.0.0.tgz";
-        sha512 = "RA8T1+kt1wbD8p0y9/x0BuCMBwNRJzp08euseZ7ZSLGeBUSNHh4yLIsq9J+7fCSDAwnHTjQPSzShwoFnBj0QNQ==";
-      };
-    };
     "pause-stream-0.0.11" = {
       name = "pause-stream";
       packageName = "pause-stream";
@@ -33955,13 +34617,13 @@ let
         sha1 = "fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445";
       };
     };
-    "pbkdf2-3.0.17" = {
+    "pbkdf2-3.1.1" = {
       name = "pbkdf2";
       packageName = "pbkdf2";
-      version = "3.0.17";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz";
-        sha512 = "U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==";
+        url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz";
+        sha512 = "4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==";
       };
     };
     "peek-readable-3.1.0" = {
@@ -34027,6 +34689,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";
@@ -34126,6 +34797,15 @@ let
         sha512 = "uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==";
       };
     };
+    "pify-5.0.0" = {
+      name = "pify";
+      packageName = "pify";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz";
+        sha512 = "eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==";
+      };
+    };
     "pinkie-1.0.0" = {
       name = "pinkie";
       packageName = "pinkie";
@@ -34162,13 +34842,13 @@ let
         sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
       };
     };
-    "pino-6.0.0" = {
+    "pino-6.4.0" = {
       name = "pino";
       packageName = "pino";
-      version = "6.0.0";
+      version = "6.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pino/-/pino-6.0.0.tgz";
-        sha512 = "3RfX2L76o7v230FP1fZ3Fo/WX7Su+P1Ld+pvBm2j+MyUjtA/KqDYxMkzBqzcX3R00zbC7Gf/HqIzyuu3tgvi9Q==";
+        url = "https://registry.npmjs.org/pino/-/pino-6.4.0.tgz";
+        sha512 = "TRDp5fJKRBtVlxd4CTox3rJL+TzwQztB/VNmT5n87zFgKVU7ztnmZkcX1zypPP+3ZZcveOTYKJy74UXdVBaXFQ==";
       };
     };
     "pino-std-serializers-2.4.2" = {
@@ -34234,6 +34914,15 @@ let
         sha512 = "/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==";
       };
     };
+    "pkg-dir-4.2.0" = {
+      name = "pkg-dir";
+      packageName = "pkg-dir";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz";
+        sha512 = "HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==";
+      };
+    };
     "pkg-up-2.0.0" = {
       name = "pkg-up";
       packageName = "pkg-up";
@@ -34279,15 +34968,6 @@ let
         sha1 = "b5418ef0439de5425fc4995042dced14fb2a84ff";
       };
     };
-    "platform-name-1.0.0" = {
-      name = "platform-name";
-      packageName = "platform-name";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/platform-name/-/platform-name-1.0.0.tgz";
-        sha512 = "ZRbqJ30uRRKGKW2O1XnG/Ls1K/aBGlnyjq1Z0BbjqDPTNN+XZKFaugCsCm3/mq6XGR5DZNVdV75afpQEvNNY3Q==";
-      };
-    };
     "playerui-1.3.0" = {
       name = "playerui";
       packageName = "playerui";
@@ -34423,22 +35103,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-5.0.0.tgz";
+        sha512 = "40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==";
+      };
+    };
+    "polished-3.6.5" = {
+      name = "polished";
+      packageName = "polished";
+      version = "3.6.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pngjs/-/pngjs-2.3.1.tgz";
-        sha1 = "11d1e12b9cb64d63e30c143a330f4c1f567da85f";
+        url = "https://registry.npmjs.org/polished/-/polished-3.6.5.tgz";
+        sha512 = "VwhC9MlhW7O5dg/z7k32dabcAFW1VI2+7fSe8cE/kXcfL7mVdoa5UxciYGW2sJU78ldDLT6+ROEKIZKFNTnUXQ==";
       };
     };
-    "portfinder-1.0.26" = {
+    "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" = {
@@ -34487,22 +35176,13 @@ let
         sha512 = "soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==";
       };
     };
-    "postcss-7.0.27" = {
-      name = "postcss";
-      packageName = "postcss";
-      version = "7.0.27";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz";
-        sha512 = "WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==";
-      };
-    };
-    "postcss-7.0.29" = {
+    "postcss-7.0.32" = {
       name = "postcss";
       packageName = "postcss";
-      version = "7.0.29";
+      version = "7.0.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.29.tgz";
-        sha512 = "ba0ApvR3LxGvRMMiUa9n0WR4HjzcYm7tS+ht4/2Nd0NLtHpPIH77fuB9Xh1/yJVz9O/E/95Y/dn8ygWsyffXtw==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz";
+        sha512 = "03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==";
       };
     };
     "postcss-calc-7.0.2" = {
@@ -34910,13 +35590,13 @@ let
         sha512 = "4EFYGHcEw+H3E06PT/pQQri06u/1VIIPjeJQaM8skB80vZuXMhp4cSNV5azmdNkontnOID/XYWEvEEELLFB1ww==";
       };
     };
-    "postcss-scss-2.0.0" = {
+    "postcss-scss-2.1.1" = {
       name = "postcss-scss";
       packageName = "postcss-scss";
-      version = "2.0.0";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.0.0.tgz";
-        sha512 = "um9zdGKaDZirMm+kZFKKVsnKPF7zF7qBAtIfTSnZXD1jZ0JNZIxdB6TxQOjCnlSzLRInVl2v3YdBh/M881C4ug==";
+        url = "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz";
+        sha512 = "jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==";
       };
     };
     "postcss-selector-parser-3.1.2" = {
@@ -34982,15 +35662,6 @@ let
         sha512 = "97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==";
       };
     };
-    "postcss-values-parser-1.5.0" = {
-      name = "postcss-values-parser";
-      packageName = "postcss-values-parser";
-      version = "1.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-1.5.0.tgz";
-        sha512 = "3M3p+2gMp0AH3da530TlX8kiO1nxdTnc3C6vr8dMxRLIlh8UYkz0/wcwptSXjhtx2Fr0TySI7a+BHDQ8NL7LaQ==";
-      };
-    };
     "posthtml-0.11.6" = {
       name = "posthtml";
       packageName = "posthtml";
@@ -35000,13 +35671,13 @@ let
         sha512 = "C2hrAPzmRdpuL3iH0TDdQ6XCc9M7Dcc3zEW5BLerY65G4tWWszwv6nG/ksi6ul5i2mx22ubdljgktXCtNkydkw==";
       };
     };
-    "posthtml-0.12.3" = {
+    "posthtml-0.13.1" = {
       name = "posthtml";
       packageName = "posthtml";
-      version = "0.12.3";
+      version = "0.13.1";
       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.1.tgz";
+        sha512 = "8aJZ63WYL9YsAZVcrIn6U0dSYbna7hcTceZjnbH7dilg01t4t3JDx0UovbhGFscFJg/++qhECCjGEQuJAqD7dA==";
       };
     };
     "posthtml-parser-0.4.2" = {
@@ -35018,13 +35689,13 @@ let
         sha512 = "BUIorsYJTvS9UhXxPTzupIztOMVNPa/HtAm9KHni9z6qEfiJ1bpOBL5DfUOL9XAc3XkLIEzBzpph+Zbm4AdRAg==";
       };
     };
-    "posthtml-render-1.2.2" = {
+    "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.3" = {
@@ -35036,15 +35707,6 @@ let
         sha512 = "GV+nsUXuPW2p8Zy7SarF/2W/oiK8bFQgJcncoJ0d7kRpekEA0ftChjfEaF9/Y+QJEc/wFR7RAEa8lYByuUIe2g==";
       };
     };
-    "precinct-6.2.0" = {
-      name = "precinct";
-      packageName = "precinct";
-      version = "6.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/precinct/-/precinct-6.2.0.tgz";
-        sha512 = "BCAmnOxZzobF3H1/h/gq70pEyvX/BVLWCrzi8beFD22dqu5Z14qOghNUsI24Wg8oaTsGFcIjOGtFX5L9ttmjVg==";
-      };
-    };
     "precond-0.2.3" = {
       name = "precond";
       packageName = "precond";
@@ -35063,6 +35725,15 @@ let
         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==";
+      };
+    };
     "prepend-http-1.0.4" = {
       name = "prepend-http";
       packageName = "prepend-http";
@@ -35117,6 +35788,15 @@ let
         sha1 = "994b02aa46f699c50b6257b5faaa7fe2557e62d6";
       };
     };
+    "prettier-eslint-10.1.1" = {
+      name = "prettier-eslint";
+      packageName = "prettier-eslint";
+      version = "10.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-10.1.1.tgz";
+        sha512 = "TtYxuFUMVxudJTSnPScaBqHZm/48ndvX3KLFzhejJYbRzRybmM9RdBfn9YzgN0itfPrYxCesIZGJqyXXZJOR2w==";
+      };
+    };
     "prettier-eslint-8.8.2" = {
       name = "prettier-eslint";
       packageName = "prettier-eslint";
@@ -35126,13 +35806,13 @@ let
         sha512 = "2UzApPuxi2yRoyMlXMazgR6UcH9DKJhNgCviIwY3ixZ9THWSSrUww5vkiZ3C48WvpFl1M1y/oU63deSy1puWEA==";
       };
     };
-    "prettier-eslint-9.0.1" = {
+    "prettier-eslint-9.0.2" = {
       name = "prettier-eslint";
       packageName = "prettier-eslint";
-      version = "9.0.1";
+      version = "9.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-9.0.1.tgz";
-        sha512 = "KZT65QTosSAqBBqmrC+RpXbsMRe7Os2YSR9cAfFbDlyPAopzA/S5bioiZ3rpziNQNSJaOxmtXSx07EQ+o2Dlug==";
+        url = "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-9.0.2.tgz";
+        sha512 = "u6EQqxUhaGfra9gy9shcR7MT7r/2twwEfRGy1tfzyaJvLQwSg34M9IU5HuF7FsLW2QUgr5VIUc56EPWibw1pdw==";
       };
     };
     "prettier-stylelint-0.4.2" = {
@@ -35216,15 +35896,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";
@@ -35252,24 +35923,6 @@ let
         sha512 = "dG2w7WtovUa4SiYTdWn9H8Bd4JNdei2djtkP/Bk9fXq81j5Q15ZPHYSwhUVvBRbp5zMkGtu0Yk62HuMcly0pRw==";
       };
     };
-    "prisma-json-schema-0.1.3" = {
-      name = "prisma-json-schema";
-      packageName = "prisma-json-schema";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/prisma-json-schema/-/prisma-json-schema-0.1.3.tgz";
-        sha512 = "XZrf2080oR81mY8/OC8al68HiwBm0nXlFE727JIia0ZbNqwuV4MyRYk6E0+OIa6/9KEYxZrcAmoBs3EW1cCvnA==";
-      };
-    };
-    "prisma-yml-1.26.6" = {
-      name = "prisma-yml";
-      packageName = "prisma-yml";
-      version = "1.26.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/prisma-yml/-/prisma-yml-1.26.6.tgz";
-        sha512 = "dWBTeQbyWr/4d97ZKjxFPvIHytnNlBsNzgsJC1eew3qoZ9A8vtRIFhsnPiD3kYIf67w56i2QO2O5Infe2FzMww==";
-      };
-    };
     "prismjs-1.20.0" = {
       name = "prismjs";
       packageName = "prismjs";
@@ -35423,6 +36076,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";
@@ -35468,6 +36130,24 @@ let
         sha1 = "6739e968e3051da20ce6497fb2b50f6911df3d6d";
       };
     };
+    "promise.allsettled-1.0.2" = {
+      name = "promise.allsettled";
+      packageName = "promise.allsettled";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz";
+        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";
@@ -35477,13 +36157,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" = {
@@ -35549,15 +36229,6 @@ let
         sha1 = "159fb06193d32003f4b3691dd2ec1a634aa80d1d";
       };
     };
-    "properties-1.2.1" = {
-      name = "properties";
-      packageName = "properties";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/properties/-/properties-1.2.1.tgz";
-        sha1 = "0ee97a7fc020b1a2a55b8659eda4aa8d869094bd";
-      };
-    };
     "property-information-5.5.0" = {
       name = "property-information";
       packageName = "property-information";
@@ -35585,22 +36256,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==";
-      };
-    };
-    "protochain-1.0.5" = {
-      name = "protochain";
-      packageName = "protochain";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/protochain/-/protochain-1.0.5.tgz";
-        sha1 = "991c407e99de264aadf8f81504b5e7faf7bfa260";
+        url = "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.1.tgz";
+        sha512 = "pb8kTchL+1Ceg4lFd5XUpK8PdWacbvV5SK2ULH2ebrYtl4GjJmS24m6CKME67jzV53tbJxHlnNOSqQHbTsR9JQ==";
       };
     };
     "protocol-buffers-encodings-1.1.0" = {
@@ -35630,15 +36292,6 @@ let
         sha512 = "WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==";
       };
     };
-    "proxy-addr-1.0.10" = {
-      name = "proxy-addr";
-      packageName = "proxy-addr";
-      version = "1.0.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz";
-        sha1 = "0d40a82f801fc355567d2ecb65efe3f077f121c5";
-      };
-    };
     "proxy-addr-1.1.5" = {
       name = "proxy-addr";
       packageName = "proxy-addr";
@@ -35720,22 +36373,22 @@ let
         sha512 = "qau0czUSB0fzSlBOQt0bo+I2v6R+xiQdj78e1BR/Qjfl5OHWJ/urXi8+ilw1eHe+5hSeDI1wrwVTgDp2wst4oA==";
       };
     };
-    "ps-list-7.0.0" = {
+    "ps-list-7.2.0" = {
       name = "ps-list";
       packageName = "ps-list";
-      version = "7.0.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ps-list/-/ps-list-7.0.0.tgz";
-        sha512 = "ZDhdxqb+kE895BAvqIdGnWwfvB43h7KHMIcJC0hw7xLbbiJoprS+bqZxuGZ0jWdDxZEvB3jpnfgJyOn3lmsH+Q==";
+        url = "https://registry.npmjs.org/ps-list/-/ps-list-7.2.0.tgz";
+        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" = {
@@ -35756,13 +36409,13 @@ let
         sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
       };
     };
-    "pstree.remy-1.1.7" = {
+    "pstree.remy-1.1.8" = {
       name = "pstree.remy";
       packageName = "pstree.remy";
-      version = "1.1.7";
+      version = "1.1.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.7.tgz";
-        sha512 = "xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==";
+        url = "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz";
+        sha512 = "77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==";
       };
     };
     "public-encrypt-4.0.3" = {
@@ -35891,6 +36544,15 @@ let
         sha1 = "7017a984c3b834de77bac38c10b776f22dfc1843";
       };
     };
+    "pull-abortable-4.1.1" = {
+      name = "pull-abortable";
+      packageName = "pull-abortable";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pull-abortable/-/pull-abortable-4.1.1.tgz";
+        sha1 = "b3ad5aefb4116b25916d26db89393ac98d0dcea1";
+      };
+    };
     "pull-block-filter-1.0.0" = {
       name = "pull-block-filter";
       packageName = "pull-block-filter";
@@ -36467,22 +37129,13 @@ let
         sha512 = "hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==";
       };
     };
-    "purescript-0.12.5" = {
-      name = "purescript";
-      packageName = "purescript";
-      version = "0.12.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/purescript/-/purescript-0.12.5.tgz";
-        sha512 = "L0N0KrRgZm8pXYqT8Dc5m6BzjnYvkOaxx9Tms874NUivm8DYSs3oLtDrnNM8cVrjCCXCvS0g8l73CKNymaL6qw==";
-      };
-    };
-    "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" = {
@@ -36566,15 +37219,6 @@ let
         sha1 = "294b268e4b0d4250f6dde19b3b8b34935dff14ef";
       };
     };
-    "qs-1.2.0" = {
-      name = "qs";
-      packageName = "qs";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-1.2.0.tgz";
-        sha1 = "ed079be28682147e6fd9a34cc2b0c1e0ec6453ee";
-      };
-    };
     "qs-2.3.3" = {
       name = "qs";
       packageName = "qs";
@@ -36719,13 +37363,13 @@ let
         sha512 = "AMD7w5hRXcFSb8s9u38acBZ+309u6GsiibP4/0YacJeaurRshogB7v/ZcVPxP5gD5+zIw6ixRHdutiYUJfwKHw==";
       };
     };
-    "queue-microtask-1.1.2" = {
+    "queue-microtask-1.1.4" = {
       name = "queue-microtask";
       packageName = "queue-microtask";
-      version = "1.1.2";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.1.2.tgz";
-        sha512 = "F9wwNePtXrzZenAB3ax0Y8TSKGvuB7Qw16J30hspEUTbfUM+H827XyN3rlpwhVmtm5wuZtbKIHjOnwDn7MUxWQ==";
+        url = "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.1.4.tgz";
+        sha512 = "eY/4Obve9cE5FK8YvC1cJsm5cr7XvAurul8UtBDJ2PR1p5NmAwHtvAt5ftcLtwYRCUKNhxCneZZlxmUDFoSeKA==";
       };
     };
     "quick-format-unescaped-4.0.1" = {
@@ -36755,6 +37399,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";
@@ -36917,15 +37570,6 @@ let
         sha1 = "c0427ffef51c10acba0782a46c9602e744ff620b";
       };
     };
-    "range-parser-1.0.3" = {
-      name = "range-parser";
-      packageName = "range-parser";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz";
-        sha1 = "6872823535c692e2c2a0103826afd82c2e0ff175";
-      };
-    };
     "range-parser-1.2.0" = {
       name = "range-parser";
       packageName = "range-parser";
@@ -36953,24 +37597,6 @@ let
         sha512 = "PPYLwZ63lXi6Tv2EZ8w3M4FzC0rVqvxivaOVS8pXSp5FMIHFnvi4MWHL3UdFLhwSy50aNtJsgjY0mBC6oFL26Q==";
       };
     };
-    "rate-map-1.0.5" = {
-      name = "rate-map";
-      packageName = "rate-map";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rate-map/-/rate-map-1.0.5.tgz";
-        sha512 = "u/oBh01ZgCZM8Dqkm+xUh9mLl5t/9wxBNpVDZUSKjYvPSOOwYCeVheS5esvdyVnR0k3sLh+H9v16h1Z7FRy2Fw==";
-      };
-    };
-    "raven-1.2.1" = {
-      name = "raven";
-      packageName = "raven";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/raven/-/raven-1.2.1.tgz";
-        sha1 = "949c134db028a190b7bbf8f790aae541b7c020bd";
-      };
-    };
     "raven-js-3.27.2" = {
       name = "raven-js";
       packageName = "raven-js";
@@ -37061,6 +37687,24 @@ let
         sha512 = "YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==";
       };
     };
+    "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-aria-2.0.7" = {
+      name = "react-dropdown-aria";
+      packageName = "react-dropdown-aria";
+      version = "2.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-dropdown-aria/-/react-dropdown-aria-2.0.7.tgz";
+        sha512 = "wRjmmMUmA/q33ZugY0lTka4b6jY1ehp8qgHG2yeda64z5I0gTOtyxUVI/tA9ZBlBqysDN22hMGHNMnPb2sg+Qw==";
+      };
+    };
     "react-is-16.13.1" = {
       name = "react-is";
       packageName = "react-is";
@@ -37079,6 +37723,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";
@@ -37178,15 +37831,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";
@@ -37214,15 +37858,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";
@@ -37358,13 +37993,13 @@ let
         sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==";
       };
     };
-    "readdirp-3.2.0" = {
+    "readdirp-3.3.0" = {
       name = "readdirp";
       packageName = "readdirp";
-      version = "3.2.0";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz";
-        sha512 = "crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==";
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz";
+        sha512 = "zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==";
       };
     };
     "readdirp-3.4.0" = {
@@ -37376,6 +38011,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";
@@ -37502,13 +38146,13 @@ let
         sha1 = "8984b5815d99cb220469c99eeeffe38913e6cc0b";
       };
     };
-    "redis-0.12.1" = {
-      name = "redis";
-      packageName = "redis";
-      version = "0.12.1";
+    "redoc-2.0.0-rc.36" = {
+      name = "redoc";
+      packageName = "redoc";
+      version = "2.0.0-rc.36";
       src = fetchurl {
-        url = "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz";
-        sha1 = "64df76ad0fc8acebaebd2a0645e8a48fac49185e";
+        url = "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.36.tgz";
+        sha512 = "vTK1slMn1FcV4QwiBxFL6adIzYoOPzrkRsVyedGj4SrqjIJXuQ5HWVsxpMGoru45tgp3bs7Jy3TBOcEdOYjbbg==";
       };
     };
     "reduce-component-1.0.1" = {
@@ -37538,13 +38182,22 @@ let
         sha512 = "pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==";
       };
     };
-    "regenerate-1.4.0" = {
+    "reftools-1.1.4" = {
+      name = "reftools";
+      packageName = "reftools";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reftools/-/reftools-1.1.4.tgz";
+        sha512 = "Y8VEk3OXPwuU+ZAAPiR0YhYy9iBSO3NBRnXHGfqW6c2mo2V+fQ0cwRA38Ny6z9ZzcAo6HjmVvAri+wz3+8fsdQ==";
+      };
+    };
+    "regenerate-1.4.1" = {
       name = "regenerate";
       packageName = "regenerate";
-      version = "1.4.0";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz";
-        sha512 = "1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==";
+        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" = {
@@ -37556,6 +38209,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";
@@ -37565,22 +38227,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" = {
@@ -37664,13 +38326,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" = {
@@ -37691,13 +38353,13 @@ let
         sha512 = "8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==";
       };
     };
-    "regjsgen-0.5.1" = {
+    "regjsgen-0.5.2" = {
       name = "regjsgen";
       packageName = "regjsgen";
-      version = "0.5.1";
+      version = "0.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz";
-        sha512 = "5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==";
+        url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz";
+        sha512 = "OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==";
       };
     };
     "regjsparser-0.6.4" = {
@@ -37709,6 +38371,24 @@ let
         sha512 = "64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==";
       };
     };
+    "rehype-parse-6.0.2" = {
+      name = "rehype-parse";
+      packageName = "rehype-parse";
+      version = "6.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rehype-parse/-/rehype-parse-6.0.2.tgz";
+        sha512 = "0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug==";
+      };
+    };
+    "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";
@@ -37727,15 +38407,6 @@ let
         sha1 = "3361ecfa3ca6c18283380dd0bb9546f390f5ece7";
       };
     };
-    "reject-unsatisfied-npm-version-1.0.0" = {
-      name = "reject-unsatisfied-npm-version";
-      packageName = "reject-unsatisfied-npm-version";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/reject-unsatisfied-npm-version/-/reject-unsatisfied-npm-version-1.0.0.tgz";
-        sha512 = "8cl35x8i3W1+RubvIq9CM7fJkdMwBOdjne4b7eFBoo4vvN1QoXbgusQw6VVv2DBmm6NDyMhUmp9FBxaMWU9s7Q==";
-      };
-    };
     "relateurl-0.2.7" = {
       name = "relateurl";
       packageName = "relateurl";
@@ -37826,13 +38497,13 @@ let
         sha1 = "592a347bdd3d5881f4f080c98b5b152fb1407a92";
       };
     };
-    "remark-message-control-4.2.0" = {
+    "remark-message-control-5.0.0" = {
       name = "remark-message-control";
       packageName = "remark-message-control";
-      version = "4.2.0";
+      version = "5.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-5.0.0.tgz";
+        sha512 = "JQYGtMoMP2gUWzoR1rFU4GEr4HAieoDlD1jmwEYP82bnmHFPv2AK6ImVwFcrB4DcCFCM6bFBTOWMLzt06cz5vA==";
       };
     };
     "remark-parse-1.1.0" = {
@@ -37871,6 +38542,15 @@ let
         sha512 = "QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==";
       };
     };
+    "remark-parse-7.0.2" = {
+      name = "remark-parse";
+      packageName = "remark-parse";
+      version = "7.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-parse/-/remark-parse-7.0.2.tgz";
+        sha512 = "9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA==";
+      };
+    };
     "remark-retext-3.1.3" = {
       name = "remark-retext";
       packageName = "remark-retext";
@@ -37952,13 +38632,13 @@ let
         sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
       };
     };
-    "render-media-3.4.0" = {
+    "render-media-3.4.3" = {
       name = "render-media";
       packageName = "render-media";
-      version = "3.4.0";
+      version = "3.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/render-media/-/render-media-3.4.0.tgz";
-        sha512 = "0BTIvIBS4xdC/qPpoj8ZsdZ/YoQhn+DutUqBkur1yUs5SnDoruiAtaHFJhxle8pREnNN/kT8E8fkftgMkJ8Tvg==";
+        url = "https://registry.npmjs.org/render-media/-/render-media-3.4.3.tgz";
+        sha512 = "Gyk9CYWqGmG2W83ZfQnK8ZGZbmKkrxnHHHiWxF32vH5Afd19IIPZFZADtlmeXVA2petJgCB9L1EbPUc6dS8jDg==";
       };
     };
     "repeat-element-1.1.3" = {
@@ -38096,40 +38776,31 @@ let
         sha1 = "5d36bb57961c673aa5b788dbc8141fdf23b44e08";
       };
     };
-    "request-promise-4.2.5" = {
-      name = "request-promise";
-      packageName = "request-promise";
-      version = "4.2.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/request-promise/-/request-promise-4.2.5.tgz";
-        sha512 = "ZgnepCykFdmpq86fKGwqntyTiUrHycALuGggpyCZwMvGaZWgxW6yagT0FHkgo5LzYvOaCNvxYwWYIjevSH1EDg==";
-      };
-    };
-    "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.0" = {
+    "requestretry-4.1.1" = {
       name = "requestretry";
       packageName = "requestretry";
-      version = "4.1.0";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/requestretry/-/requestretry-4.1.0.tgz";
-        sha512 = "q3IT2vz5vkcMT6xgwB/BWzsmnu7N/27l9fW86U48gt9Mwrce5rSEyFvpAW7Il1/B78/NBUlYBvcCY1RzWUWy7w==";
+        url = "https://registry.npmjs.org/requestretry/-/requestretry-4.1.1.tgz";
+        sha512 = "sV2lkWitASDXpIK+m0scC7dHBkW42EKj5iao6Cp8GCXsXY7qS4Q/min6PP5YBuqgV9W38lsA7LUhEkOezl1/Og==";
       };
     };
     "require-directory-2.1.1" = {
@@ -38204,15 +38875,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";
@@ -38231,24 +38893,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.15.1" = {
-      name = "resolve";
-      packageName = "resolve";
-      version = "1.15.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz";
-        sha512 = "84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==";
-      };
-    };
     "resolve-1.17.0" = {
       name = "resolve";
       packageName = "resolve";
@@ -38267,6 +38911,15 @@ let
         sha512 = "c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==";
       };
     };
+    "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" = {
       name = "resolve-cwd";
       packageName = "resolve-cwd";
@@ -38276,15 +38929,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";
@@ -38339,15 +38983,6 @@ let
         sha512 = "qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==";
       };
     };
-    "resolve-from-npm-3.1.0" = {
-      name = "resolve-from-npm";
-      packageName = "resolve-from-npm";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve-from-npm/-/resolve-from-npm-3.1.0.tgz";
-        sha512 = "HVhEcznfeFWM7T3HWCT7vCjwkv0R1ruC4Ref5jTlTvz2X8GKeUZTqjvZWlefmKQvQfKYOJhQo90Yjhpcr8aclg==";
-      };
-    };
     "resolve-options-1.1.0" = {
       name = "resolve-options";
       packageName = "resolve-options";
@@ -38483,22 +39118,22 @@ let
         sha512 = "yr1PgaBDde+25aJXrnt3p1jvT8FVLVat2Bx8XeAWX13KXo8OT+3nWGU3HWxM4YFJvmfqvJYJZG2d7xxaO774gw==";
       };
     };
-    "retext-equality-3.2.0" = {
+    "retext-equality-4.3.0" = {
       name = "retext-equality";
       packageName = "retext-equality";
-      version = "3.2.0";
+      version = "4.3.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-4.3.0.tgz";
+        sha512 = "jW+6X5BrxVEaZ71qLIaqK6/Y+jqlxijVOcPH2SdHtNaMIHJWvBf5fd1IgHmEp0UREth0YQSI7KNtJurrSPQyMA==";
       };
     };
-    "retext-profanities-4.4.0" = {
+    "retext-profanities-5.0.0" = {
       name = "retext-profanities";
       packageName = "retext-profanities";
-      version = "4.4.0";
+      version = "5.0.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-5.0.0.tgz";
+        sha512 = "zaPCKtrMDLs0U/2yN3V3rpYn1VZ3hW+AsEZdovWIRlEYZPCaUmkChOSob45LOQYJUnM+YZIahXuU9zHPm+aTKQ==";
       };
     };
     "rethinkdb-2.4.2" = {
@@ -38744,13 +39379,13 @@ let
         sha512 = "/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==";
       };
     };
-    "rollup-2.7.6" = {
+    "rollup-2.23.0" = {
       name = "rollup";
       packageName = "rollup";
-      version = "2.7.6";
+      version = "2.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rollup/-/rollup-2.7.6.tgz";
-        sha512 = "AdHosxHBKyBsdtbT1/AqbWNQ87O4SSxS4N9iMwEpoCDAT6e4Du3uJSy83mp3ckgmCxly5VeXGx0WHsm21Djytg==";
+        url = "https://registry.npmjs.org/rollup/-/rollup-2.23.0.tgz";
+        sha512 = "vLNmZFUGVwrnqNAJ/BvuLk1MtWzu4IuoqsH9UWK5AIdO3rt8/CSiJNvPvCIvfzrbNsqKbNzPAG1V2O4eTe2XZg==";
       };
     };
     "rollup-plugin-babel-4.4.0" = {
@@ -38834,13 +39469,22 @@ let
         sha1 = "6f04063a2d04eba3303a1bbc6765eef63037cf3d";
       };
     };
-    "rss-parser-3.7.6" = {
+    "rss-parser-3.7.1" = {
+      name = "rss-parser";
+      packageName = "rss-parser";
+      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.7.6";
+      version = "3.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rss-parser/-/rss-parser-3.7.6.tgz";
-        sha512 = "wWWh3/pPLAPgWyfkCC9jB83jSBenU6VPMymfXiysi8wJxaN7KNkW4vU3Jm8jQxExAribFvXREy+RtaL3XQubeA==";
+        url = "https://registry.npmjs.org/rss-parser/-/rss-parser-3.9.0.tgz";
+        sha512 = "wlRSfGrotOXuWo19Dtl2KmQt7o9i5zzCExUrxpechE0O54BAx7JD+xhWyGumPPqiJj771ndflV3sE3bTHen0HQ==";
       };
     };
     "rsvp-3.6.2" = {
@@ -38897,15 +39541,6 @@ let
         sha512 = "tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==";
       };
     };
-    "run-in-dir-0.3.0" = {
-      name = "run-in-dir";
-      packageName = "run-in-dir";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/run-in-dir/-/run-in-dir-0.3.0.tgz";
-        sha512 = "5aPpxad3Jq9r6OK6rw+Gs5HVuZsEeQM/M4I9CdCWyThkstLAUCJSc3IRs8dT0p/z9mxAJgU5ELRQL2q/ddY6PQ==";
-      };
-    };
     "run-parallel-1.1.9" = {
       name = "run-parallel";
       packageName = "run-parallel";
@@ -39032,6 +39667,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";
@@ -39104,6 +39748,15 @@ let
         sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==";
       };
     };
+    "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-json-stringify-1.2.0" = {
       name = "safe-json-stringify";
       packageName = "safe-json-stringify";
@@ -39167,22 +39820,13 @@ let
         sha512 = "y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==";
       };
     };
-    "sass-formatter-0.4.5" = {
+    "sass-formatter-0.4.13" = {
       name = "sass-formatter";
       packageName = "sass-formatter";
-      version = "0.4.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.4.5.tgz";
-        sha512 = "hBDkbtTE020JwUaGKo5q+ELNXXji1kyajVMt3YLRYD1PAwUQYR5aAdfAUAcb88AmYgJpQRQrsqZj+YGmUCdgCw==";
-      };
-    };
-    "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" = {
@@ -39239,6 +39883,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";
@@ -39248,13 +39901,13 @@ let
         sha512 = "i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==";
       };
     };
-    "schema-utils-2.6.6" = {
+    "schema-utils-2.7.0" = {
       name = "schema-utils";
       packageName = "schema-utils";
-      version = "2.6.6";
+      version = "2.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz";
-        sha512 = "wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==";
+        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz";
+        sha512 = "0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==";
       };
     };
     "scoped-regex-1.0.0" = {
@@ -39266,15 +39919,6 @@ let
         sha1 = "a346bb1acd4207ae70bd7c0c7ca9e566b6baddb8";
       };
     };
-    "scuid-1.1.0" = {
-      name = "scuid";
-      packageName = "scuid";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/scuid/-/scuid-1.1.0.tgz";
-        sha512 = "MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==";
-      };
-    };
     "sec-1.0.0" = {
       name = "sec";
       packageName = "sec";
@@ -39320,22 +39964,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" = {
@@ -39563,6 +40198,15 @@ let
         sha1 = "92a4969065f9c70c694753d55248fc68f8f652c9";
       };
     };
+    "semver-regex-2.0.0" = {
+      name = "semver-regex";
+      packageName = "semver-regex";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz";
+        sha512 = "mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==";
+      };
+    };
     "semver-truncate-1.1.2" = {
       name = "semver-truncate";
       packageName = "semver-truncate";
@@ -39599,15 +40243,6 @@ let
         sha1 = "be70d8d1be01de61821af13780b50345a4f71abd";
       };
     };
-    "send-0.11.1" = {
-      name = "send";
-      packageName = "send";
-      version = "0.11.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/send/-/send-0.11.1.tgz";
-        sha1 = "1beabfd42f9e2709f99028af3078ac12b47092d5";
-      };
-    };
     "send-0.17.1" = {
       name = "send";
       packageName = "send";
@@ -39617,13 +40252,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" = {
@@ -39653,6 +40288,15 @@ let
         sha1 = "e433676932020454e3c14870c517ea1de56c2fa4";
       };
     };
+    "seq-0.3.5" = {
+      name = "seq";
+      packageName = "seq";
+      version = "0.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/seq/-/seq-0.3.5.tgz";
+        sha1 = "ae02af3a424793d8ccbf212d69174e0c54dffe38";
+      };
+    };
     "sequencify-0.0.7" = {
       name = "sequencify";
       packageName = "sequencify";
@@ -39662,22 +40306,31 @@ let
         sha1 = "90cff19d02e07027fd767f5ead3e7b95d1e7380c";
       };
     };
-    "serialize-error-5.0.0" = {
+    "serialize-error-7.0.1" = {
       name = "serialize-error";
       packageName = "serialize-error";
-      version = "5.0.0";
+      version = "7.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz";
-        sha512 = "/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==";
+        url = "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz";
+        sha512 = "8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==";
       };
     };
-    "serialize-javascript-2.1.2" = {
+    "serialize-javascript-3.1.0" = {
       name = "serialize-javascript";
       packageName = "serialize-javascript";
-      version = "2.1.2";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz";
-        sha512 = "rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==";
+        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz";
+        sha512 = "JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==";
+      };
+    };
+    "serialize-javascript-4.0.0" = {
+      name = "serialize-javascript";
+      packageName = "serialize-javascript";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz";
+        sha512 = "GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==";
       };
     };
     "serialize-to-js-3.1.1" = {
@@ -39689,15 +40342,6 @@ let
         sha512 = "F+NGU0UHMBO4Q965tjw7rvieNVjlH6Lqi2emq/Lc9LUURYJbiCzmpi4Cy1OOjjVPtxu0c+NE85LU6968Wko5ZA==";
       };
     };
-    "serializerr-1.0.3" = {
-      name = "serializerr";
-      packageName = "serializerr";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/serializerr/-/serializerr-1.0.3.tgz";
-        sha1 = "12d4c5aa1c3ffb8f6d1dc5f395aa9455569c3f91";
-      };
-    };
     "serve-favicon-2.5.0" = {
       name = "serve-favicon";
       packageName = "serve-favicon";
@@ -39707,13 +40351,13 @@ let
         sha1 = "935d240cdfe0f5805307fdfe967d88942a2cbcf0";
       };
     };
-    "serve-handler-6.1.2" = {
+    "serve-handler-6.1.3" = {
       name = "serve-handler";
       packageName = "serve-handler";
-      version = "6.1.2";
+      version = "6.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.2.tgz";
-        sha512 = "RFh49wX7zJmmOVDcIjiDSJnMH+ItQEvyuYLYuDBVoA/xmQSCuj+uRmk1cmBB5QQlI3qOiWKp6p4DUGY+Z5AB2A==";
+        url = "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz";
+        sha512 = "FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==";
       };
     };
     "serve-index-1.9.1" = {
@@ -39734,15 +40378,6 @@ let
         sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
       };
     };
-    "serve-static-1.8.1" = {
-      name = "serve-static";
-      packageName = "serve-static";
-      version = "1.8.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.8.1.tgz";
-        sha1 = "08fabd39999f050fc311443f46d5888a77ecfc7c";
-      };
-    };
     "server-destroy-1.0.1" = {
       name = "server-destroy";
       packageName = "server-destroy";
@@ -39752,13 +40387,13 @@ let
         sha1 = "f13bf928e42b9c3e79383e61cc3998b5d14e6cdd";
       };
     };
-    "service-runner-2.7.7" = {
+    "service-runner-2.7.8" = {
       name = "service-runner";
       packageName = "service-runner";
-      version = "2.7.7";
+      version = "2.7.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/service-runner/-/service-runner-2.7.7.tgz";
-        sha512 = "/fxWWDXThY+Jm6UEWY+DNqW41ahjrYYGLsUiMqqY2+lYJ1JtcwC5tzWD19MlwJESlUjCDYH8l7v/g+9MuASXAQ==";
+        url = "https://registry.npmjs.org/service-runner/-/service-runner-2.7.8.tgz";
+        sha512 = "YZBOj9wRzWEiBgIfrvq7OFVf9wr0u/llyeIsZjrd6tyrjJz2ywB9DiGpWb7/+MVswi970bgAw6+OUCq+9luyuw==";
       };
     };
     "set-blocking-1.0.0" = {
@@ -39833,6 +40468,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";
@@ -39878,6 +40522,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";
@@ -40022,6 +40675,60 @@ let
         sha512 = "5EaCy2mx2Jgc/Fdn9uuDuNIIfWBpzY4XIlhoqtXF6qsf+/+SGZ+FxDdX/ZsMZiWupIWNqAEmiNY4RC+LSmCeOw==";
       };
     };
+    "should-13.2.3" = {
+      name = "should";
+      packageName = "should";
+      version = "13.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/should/-/should-13.2.3.tgz";
+        sha512 = "ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==";
+      };
+    };
+    "should-equal-2.0.0" = {
+      name = "should-equal";
+      packageName = "should-equal";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz";
+        sha512 = "ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==";
+      };
+    };
+    "should-format-3.0.3" = {
+      name = "should-format";
+      packageName = "should-format";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz";
+        sha1 = "9bfc8f74fa39205c53d38c34d717303e277124f1";
+      };
+    };
+    "should-type-1.4.0" = {
+      name = "should-type";
+      packageName = "should-type";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz";
+        sha1 = "0756d8ce846dfd09843a6947719dfa0d4cff5cf3";
+      };
+    };
+    "should-type-adaptors-1.1.0" = {
+      name = "should-type-adaptors";
+      packageName = "should-type-adaptors";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz";
+        sha512 = "JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==";
+      };
+    };
+    "should-util-1.0.1" = {
+      name = "should-util";
+      packageName = "should-util";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz";
+        sha512 = "oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==";
+      };
+    };
     "shush-1.0.0" = {
       name = "shush";
       packageName = "shush";
@@ -40040,6 +40747,15 @@ let
         sha512 = "7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==";
       };
     };
+    "sift-7.0.1" = {
+      name = "sift";
+      packageName = "sift";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz";
+        sha512 = "oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==";
+      };
+    };
     "sigmund-1.0.1" = {
       name = "sigmund";
       packageName = "sigmund";
@@ -40049,13 +40765,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" = {
@@ -40085,22 +40801,13 @@ let
         sha1 = "50a9989da7c98c2c61dad119bc97470ef8528129";
       };
     };
-    "simple-concat-1.0.0" = {
+    "simple-concat-1.0.1" = {
       name = "simple-concat";
       packageName = "simple-concat";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz";
-        sha1 = "7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6";
-      };
-    };
-    "simple-errors-1.0.1" = {
-      name = "simple-errors";
-      packageName = "simple-errors";
       version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-errors/-/simple-errors-1.0.1.tgz";
-        sha1 = "b0bbecac1f1082f13b3962894b4a9e88f3a0c9ef";
+        url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz";
+        sha512 = "cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==";
       };
     };
     "simple-get-2.8.1" = {
@@ -40121,6 +40828,15 @@ let
         sha512 = "bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==";
       };
     };
+    "simple-get-4.0.0" = {
+      name = "simple-get";
+      packageName = "simple-get";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-get/-/simple-get-4.0.0.tgz";
+        sha512 = "ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ==";
+      };
+    };
     "simple-git-1.132.0" = {
       name = "simple-git";
       packageName = "simple-git";
@@ -40130,6 +40846,15 @@ let
         sha512 = "xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg==";
       };
     };
+    "simple-git-2.5.0" = {
+      name = "simple-git";
+      packageName = "simple-git";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-git/-/simple-git-2.5.0.tgz";
+        sha512 = "4gmtMqfIL9bsBNJDP/rDwZe3GsQL/tp85Qv5cmRc8iIDNOZJS4IX1oPfcqp9b7BGPc5bfuw4yd1i3lQacvuqDQ==";
+      };
+    };
     "simple-markdown-0.4.4" = {
       name = "simple-markdown";
       packageName = "simple-markdown";
@@ -40148,13 +40873,13 @@ let
         sha1 = "4e421f485ac7b13b08077a4476934d52c5ba3bb3";
       };
     };
-    "simple-peer-9.7.0" = {
+    "simple-peer-9.7.2" = {
       name = "simple-peer";
       packageName = "simple-peer";
-      version = "9.7.0";
+      version = "9.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-peer/-/simple-peer-9.7.0.tgz";
-        sha512 = "lZL/H/Znx7kai1kTrbxntVfbstGTnPF+w+hvnq2euBXoBg8m32mgEOpPmH9hS7ZOx0CMXcpgth/nNjZKp7aeow==";
+        url = "https://registry.npmjs.org/simple-peer/-/simple-peer-9.7.2.tgz";
+        sha512 = "xeMyxa9B4V0eA6mf17fVr8nm2QhAYFu+ZZv8zkSFFTjJETGF227CshwobrIYZuspJglMD63egcevQXGOrTIsuA==";
       };
     };
     "simple-sha1-2.1.2" = {
@@ -40247,15 +40972,6 @@ let
         sha512 = "bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==";
       };
     };
-    "size-rate-0.3.1" = {
-      name = "size-rate";
-      packageName = "size-rate";
-      version = "0.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/size-rate/-/size-rate-0.3.1.tgz";
-        sha512 = "gs1+6r1P1w00Qv00qC4Be2pbl70/cIVCtsZJPQhEzH3vNss8QbkGIVh6/SCC7atSlX7hkuwH93TyWL1iyXjurQ==";
-      };
-    };
     "skin-tone-1.0.0" = {
       name = "skin-tone";
       packageName = "skin-tone";
@@ -40373,6 +41089,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";
@@ -40418,13 +41143,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" = {
@@ -40490,40 +41215,40 @@ let
         sha512 = "3UlyogA67/9WOssJ7s4d7gqWQRWyO/LbgdBBNMhhmFDKa7eTUSW+A782CVHgyDSJZ2kNANcMWwMiOL+h3p6zQg==";
       };
     };
-    "snyk-docker-plugin-3.1.0" = {
+    "snyk-docker-plugin-3.16.0" = {
       name = "snyk-docker-plugin";
       packageName = "snyk-docker-plugin";
-      version = "3.1.0";
+      version = "3.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-3.1.0.tgz";
-        sha512 = "ggGTiiCuwLYGdlGW/UBuUXJ7omliH0EnbpLfdlTBoRKvmvgoUo1l4Menk18R1ZVXgcXTwwGK9jmuUpPH+X0VNw==";
+        url = "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-3.16.0.tgz";
+        sha512 = "i11WxMhsZxcFKn123LeA+u77NN7uWqWgPfQ6dvkACJnvouWHZidkOAxBOmYU49x8VS7dEQSe2Ym0bgr6EHn4cQ==";
       };
     };
-    "snyk-go-parser-1.4.0" = {
+    "snyk-go-parser-1.4.1" = {
       name = "snyk-go-parser";
       packageName = "snyk-go-parser";
-      version = "1.4.0";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-go-parser/-/snyk-go-parser-1.4.0.tgz";
-        sha512 = "zcLA8u/WreycCjFKBblYfxszg7Fmnemuu9Ug/CE/jqF0yBXsI5DCWMteUvFkoa8DRntfGTlgf98TRl2aTSc2MQ==";
+        url = "https://registry.npmjs.org/snyk-go-parser/-/snyk-go-parser-1.4.1.tgz";
+        sha512 = "StU3uHB85VMEkcgXta63M0Fgd+9cs5sMCjQXTBoYTdE4dxarPn7U67yCuwkRRdZdny1ZXtzfY8LKns9i0+dy9w==";
       };
     };
-    "snyk-go-plugin-1.14.0" = {
+    "snyk-go-plugin-1.16.0" = {
       name = "snyk-go-plugin";
       packageName = "snyk-go-plugin";
-      version = "1.14.0";
+      version = "1.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-go-plugin/-/snyk-go-plugin-1.14.0.tgz";
-        sha512 = "9L+76De8F6yXWb+O3DA8QUi7+eDF2mOzCOveEPUJGkqWIDmurIiFcVxHJoj0EStjcxb3dX367KKlDlfFx+HiyA==";
+        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.2.5" = {
+    "snyk-gradle-plugin-3.5.1" = {
       name = "snyk-gradle-plugin";
       packageName = "snyk-gradle-plugin";
-      version = "3.2.5";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.2.5.tgz";
-        sha512 = "XxPi/B16dGkV1USoyFbpn6LlSJ9SUC6Y6z/4lWuF4spLnKtWwpEb1bwTdBFsxnkUfqzIRtPr0+wcxxXvv9Rvcw==";
+        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.5.1.tgz";
+        sha512 = "8tZwQCqRbjp1azvc+bBRXSbn2AjbUpFAM6qoSpM/IZpfGl1RaOtz4/JTkGFxj+iBhTFoAkGxEunT66eO0pHZZw==";
       };
     };
     "snyk-module-1.9.1" = {
@@ -40535,13 +41260,31 @@ let
         sha512 = "A+CCyBSa4IKok5uEhqT+hV/35RO6APFNLqk9DRRHg7xW2/j//nPX8wTSZUPF8QeRNEk/sX+6df7M1y6PBHGSHA==";
       };
     };
-    "snyk-mvn-plugin-2.15.0" = {
+    "snyk-module-2.1.0" = {
+      name = "snyk-module";
+      packageName = "snyk-module";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snyk-module/-/snyk-module-2.1.0.tgz";
+        sha512 = "K5xeA39vLbm23Y/29wFEhKGvo7FwV4x9XhCP5gB22dBPyYiCCNiDERX4ofHQvtM6q96cL0hIroMdlbctv/0nPw==";
+      };
+    };
+    "snyk-module-3.1.0" = {
+      name = "snyk-module";
+      packageName = "snyk-module";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snyk-module/-/snyk-module-3.1.0.tgz";
+        sha512 = "HHuOYEAACpUpkFgU8HT57mmxmonaJ4O3YADoSkVhnhkmJ+AowqZyJOau703dYHNrq2DvQ7qYw81H7yyxS1Nfjw==";
+      };
+    };
+    "snyk-mvn-plugin-2.18.2" = {
       name = "snyk-mvn-plugin";
       packageName = "snyk-mvn-plugin";
-      version = "2.15.0";
+      version = "2.18.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-2.15.0.tgz";
-        sha512 = "24HWz27Hc5sw+iHtxtQFy0kltjyFZXJ3vfsPA0TTZAL0tOJXInIuZpWD6njC0Y3/sn9CH5kS2KM8GAM7FyKVig==";
+        url = "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-2.18.2.tgz";
+        sha512 = "A36YmfpeEXGsKoChm644DysKG40d5y5MZnldkpsbrLz37R3JMxkt4igMACZ9QJZAkiWjVs28hOKyyT1vuMPlHg==";
       };
     };
     "snyk-nodejs-lockfile-parser-1.22.0" = {
@@ -40553,13 +41296,22 @@ let
         sha512 = "l6jLoJxqcIIkQopSdQuAstXdMw5AIgLu+uGc5CYpHyw8fYqOwna8rawwofNeGuwJAAv4nEiNiexeYaR88OCq6Q==";
       };
     };
-    "snyk-nuget-plugin-1.17.0" = {
+    "snyk-nodejs-lockfile-parser-1.26.3" = {
+      name = "snyk-nodejs-lockfile-parser";
+      packageName = "snyk-nodejs-lockfile-parser";
+      version = "1.26.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.26.3.tgz";
+        sha512 = "mBQ6vhnXAeyMxlnl9amjJWpA+/3qqXwM8Sj/P+9uH2TByOFLxdGzMNQFcl3q/H2yUdcs/epVdXJp09A2dK2glA==";
+      };
+    };
+    "snyk-nuget-plugin-1.18.1" = {
       name = "snyk-nuget-plugin";
       packageName = "snyk-nuget-plugin";
-      version = "1.17.0";
+      version = "1.18.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-nuget-plugin/-/snyk-nuget-plugin-1.17.0.tgz";
-        sha512 = "t7iZ87LBhCK6P2/mJsQh7Dmk3J9zd+IHL4yoSK95Iyk/gP8r++DZijoRHEXy8BlS+eOtSAj1vgCYvv2eAmG28w==";
+        url = "https://registry.npmjs.org/snyk-nuget-plugin/-/snyk-nuget-plugin-1.18.1.tgz";
+        sha512 = "Bq+IzbyewxIrUhgdFaDKS5wCNixERC7QBitKsZGM3uCOr9fJM8rr5qg5SS9UIU7eyeKvzuVO/V1yDzjo1cKvUw==";
       };
     };
     "snyk-paket-parser-1.6.0" = {
@@ -40580,22 +41332,22 @@ let
         sha512 = "uORrEoC47dw0ITZYu5vKqQtmXnbbQs+ZkWeo5bRHGdf10W8e4rNr1S1R4bReiLrSbSisYhVHeFMkdOAiLIPJVQ==";
       };
     };
-    "snyk-policy-1.13.5" = {
+    "snyk-policy-1.14.1" = {
       name = "snyk-policy";
       packageName = "snyk-policy";
-      version = "1.13.5";
+      version = "1.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-policy/-/snyk-policy-1.13.5.tgz";
-        sha512 = "KI6GHt+Oj4fYKiCp7duhseUj5YhyL/zJOrrJg0u6r59Ux9w8gmkUYT92FHW27ihwuT6IPzdGNEuy06Yv2C9WaQ==";
+        url = "https://registry.npmjs.org/snyk-policy/-/snyk-policy-1.14.1.tgz";
+        sha512 = "C5vSkoBYxPnaqb218sm4m6N5s1BhIXlldpIX5xRNnZ0QkDwVj3dy/PfgwxRgVQh7QFGa1ajbvKmsGmm4RRsN8g==";
       };
     };
-    "snyk-python-plugin-1.17.0" = {
+    "snyk-python-plugin-1.17.1" = {
       name = "snyk-python-plugin";
       packageName = "snyk-python-plugin";
-      version = "1.17.0";
+      version = "1.17.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-python-plugin/-/snyk-python-plugin-1.17.0.tgz";
-        sha512 = "EKdVOUlvhiVpXA5TeW8vyxYVqbITAfT+2AbL2ZRiiUNLP5ae+WiNYaPy7aB5HAS9IKBKih+IH8Ag65Xu1IYSYA==";
+        url = "https://registry.npmjs.org/snyk-python-plugin/-/snyk-python-plugin-1.17.1.tgz";
+        sha512 = "KKklat9Hfbj4hw2y63LRhgmziYzmyRt+cSuzN5KDmBSAGYck0EAoPDtNpJXjrIs1kPNz28EXnE6NDnadXnOjiQ==";
       };
     };
     "snyk-resolve-1.0.1" = {
@@ -40652,15 +41404,6 @@ let
         sha1 = "b566532888dae3ac9058a12f294015ebdfa8084a";
       };
     };
-    "socket.io-2.1.1" = {
-      name = "socket.io";
-      packageName = "socket.io";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz";
-        sha512 = "rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==";
-      };
-    };
     "socket.io-2.3.0" = {
       name = "socket.io";
       packageName = "socket.io";
@@ -40697,15 +41440,6 @@ let
         sha1 = "c86cb3e507ab2f96da4500bd34fcf46a1e9dfe5e";
       };
     };
-    "socket.io-client-2.1.1" = {
-      name = "socket.io-client";
-      packageName = "socket.io-client";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz";
-        sha512 = "jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==";
-      };
-    };
     "socket.io-client-2.3.0" = {
       name = "socket.io-client";
       packageName = "socket.io-client";
@@ -40733,15 +41467,6 @@ let
         sha1 = "2609601f59e6a7fab436a53be3d333fbbfcbd30a";
       };
     };
-    "socket.io-parser-3.2.0" = {
-      name = "socket.io-parser";
-      packageName = "socket.io-parser";
-      version = "3.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz";
-        sha512 = "FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==";
-      };
-    };
     "socket.io-parser-3.3.0" = {
       name = "socket.io-parser";
       packageName = "socket.io-parser";
@@ -40751,31 +41476,22 @@ let
         sha512 = "hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==";
       };
     };
-    "socket.io-parser-3.4.0" = {
+    "socket.io-parser-3.4.1" = {
       name = "socket.io-parser";
       packageName = "socket.io-parser";
-      version = "3.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.0.tgz";
-        sha512 = "/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ==";
-      };
-    };
-    "socket.io-stream-0.9.1" = {
-      name = "socket.io-stream";
-      packageName = "socket.io-stream";
-      version = "0.9.1";
+      version = "3.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io-stream/-/socket.io-stream-0.9.1.tgz";
-        sha1 = "421258316288b83ac693b0d43efd09d6d43aba97";
+        url = "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz";
+        sha512 = "11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==";
       };
     };
-    "sockjs-0.3.19" = {
+    "sockjs-0.3.20" = {
       name = "sockjs";
       packageName = "sockjs";
-      version = "0.3.19";
+      version = "0.3.20";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz";
-        sha512 = "V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==";
+        url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz";
+        sha512 = "SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==";
       };
     };
     "sockjs-client-1.4.0" = {
@@ -40796,6 +41512,15 @@ let
         sha512 = "o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==";
       };
     };
+    "socks-2.4.1" = {
+      name = "socks";
+      packageName = "socks";
+      version = "2.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/socks/-/socks-2.4.1.tgz";
+        sha512 = "8mWHeYC1OA0500qzb+sqwm0Hzi8oBpeuI1JugoBVMEJtJvxSgco8xFSK+NRnZcHeeWjTbF82KUDo5sXH22TY5A==";
+      };
+    };
     "socks-proxy-agent-4.0.2" = {
       name = "socks-proxy-agent";
       packageName = "socks-proxy-agent";
@@ -40904,13 +41629,13 @@ let
         sha512 = "csdVyakzHJRyCevY4aZC2Eacda8paf+4nmRGF2N7KxCLKY2Ajn72JsExaQlJQ2BiXJncp44p3T+b80cU+2TTsg==";
       };
     };
-    "sonic-boom-1.0.1" = {
+    "sonic-boom-1.0.2" = {
       name = "sonic-boom";
       packageName = "sonic-boom";
-      version = "1.0.1";
+      version = "1.0.2";
       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.0.2.tgz";
+        sha512 = "sRMmXu7uFDXoniGvtLHuQk5KWovLWoi6WKASn7rw0ro41mPf0fOolkGp4NE6680CbxvNh26zWNyFQYYWXe33EA==";
       };
     };
     "sorcery-0.10.0" = {
@@ -41066,15 +41791,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";
@@ -41156,15 +41872,6 @@ let
         sha1 = "db338ec4cff63abc69f1d0e08cee9eb8bebd9d11";
       };
     };
-    "spawn-stack-0.7.0" = {
-      name = "spawn-stack";
-      packageName = "spawn-stack";
-      version = "0.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spawn-stack/-/spawn-stack-0.7.0.tgz";
-        sha512 = "lV3XTrZqR76y9voQq3g0NfCCd4dylXtgQW+xcoZkRYe/6IZJM20G//s2+4JYojJoHQQKKuoU+lUZkO5/tEJe4A==";
-      };
-    };
     "spawn-sync-1.0.15" = {
       name = "spawn-sync";
       packageName = "spawn-sync";
@@ -41183,13 +41890,13 @@ let
         sha1 = "96768b72739ac64ffa77c8ce2cbf98c2d21d8dbf";
       };
     };
-    "spdx-correct-3.1.0" = {
+    "spdx-correct-3.1.1" = {
       name = "spdx-correct";
       packageName = "spdx-correct";
-      version = "3.1.0";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz";
-        sha512 = "lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==";
+        url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz";
+        sha512 = "cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==";
       };
     };
     "spdx-exceptions-2.3.0" = {
@@ -41201,13 +41908,13 @@ let
         sha512 = "/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==";
       };
     };
-    "spdx-expression-parse-3.0.0" = {
+    "spdx-expression-parse-3.0.1" = {
       name = "spdx-expression-parse";
       packageName = "spdx-expression-parse";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
-        sha512 = "Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==";
+        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" = {
@@ -41291,6 +41998,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";
@@ -41327,6 +42043,15 @@ let
         sha1 = "b7e8e0ab51345158b72c1f6dbef2406d51f1d027";
       };
     };
+    "split-ca-1.0.1" = {
+      name = "split-ca";
+      packageName = "split-ca";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz";
+        sha1 = "6c83aff3692fa61256e0cd197e05e9de157691a6";
+      };
+    };
     "split-lines-2.0.0" = {
       name = "split-lines";
       packageName = "split-lines";
@@ -41507,13 +42232,13 @@ let
         sha512 = "J3fsWb5nS6PqObZLW2tclEz/bkRQ5pcF9goXanYGVsoH71F6W4f5sOnck9szeubI8srNaiL9pa0kPRv/lojHiw==";
       };
     };
-    "ssb-db-19.2.0" = {
+    "ssb-db-20.3.0" = {
       name = "ssb-db";
       packageName = "ssb-db";
-      version = "19.2.0";
+      version = "20.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-db/-/ssb-db-19.2.0.tgz";
-        sha512 = "pJAFizB6OcuJLX4RJJuU9HWyPwM2CqLi/vs08lhVIR3TGxacxpavvK5LzbxT+Y3iWkBchOTKS5hHCigA5aaung==";
+        url = "https://registry.npmjs.org/ssb-db/-/ssb-db-20.3.0.tgz";
+        sha512 = "JOXCrS6k3+/kuOcFmZwc9vxPN55Czb7McFs5KEYA+/phykPwQ6e3hwjMT5YrVzSirCf8ptPS/mpOsCDog5Z2dg==";
       };
     };
     "ssb-ebt-5.6.7" = {
@@ -41525,13 +42250,13 @@ let
         sha512 = "ifPgPNmDE8EKuuoqtXibwgYNtDZNry7sJL1epSUb3XgQr62bUV31N9R5LHKDsI2kx96OgWRwWY2PfZ7vf/hU8Q==";
       };
     };
-    "ssb-friends-4.1.4" = {
+    "ssb-friends-4.2.0" = {
       name = "ssb-friends";
       packageName = "ssb-friends";
-      version = "4.1.4";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-friends/-/ssb-friends-4.1.4.tgz";
-        sha512 = "rjQP2rLocqnUoiI+SSUehLQwMB4H5TKD13hfnweGVIgAWw4mylbl9bPOuXtTU23ubPkdbSNadlp3uivsCkWLxw==";
+        url = "https://registry.npmjs.org/ssb-friends/-/ssb-friends-4.2.0.tgz";
+        sha512 = "X8UewxMCZImUoYX9eNHdym6oFcfEA610iuyn2cGcHtYZre1J2WiKtCLBB2KIjwWZqlOs1mARE+mkVPYnduZy4Q==";
       };
     };
     "ssb-git-0.5.0" = {
@@ -41561,13 +42286,13 @@ let
         sha512 = "lbizlDBCtOOnbnz7zS81NOtnAyHnXu9E3gxrAJHZe7oyxINRI7IpQ8J79to9aXzkb8+2M32R8K4whmsAHGvJAg==";
       };
     };
-    "ssb-invite-2.1.4" = {
+    "ssb-invite-2.1.5" = {
       name = "ssb-invite";
       packageName = "ssb-invite";
-      version = "2.1.4";
+      version = "2.1.5";
       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.5.tgz";
+        sha512 = "nihgFMmw+OVz8X/ES47wcfY2at0E9MdSPjHm1yUpG8E5sgORLcdrtOXSRKs6Nd2EXk7FcP49EUr0trUt3G9cFw==";
       };
     };
     "ssb-issues-1.0.0" = {
@@ -41588,13 +42313,13 @@ let
         sha512 = "FPeyYU/3LpxcagnbmVWE+Q/qzg6keqeOBPbD7sEH9UKixUASeufPKiORDgh8nVX7J9Z+0vUaHt/WG999kGjvVQ==";
       };
     };
-    "ssb-links-3.0.8" = {
+    "ssb-links-3.0.9" = {
       name = "ssb-links";
       packageName = "ssb-links";
-      version = "3.0.8";
+      version = "3.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-links/-/ssb-links-3.0.8.tgz";
-        sha512 = "7b1PGn9Pmaf5FfW0xDNc+4w2uOR7JwIJSsbKA/DDP0ejMzBlc9H38iVaMrf4927X5Cdn73o82D6cv8vXGqC4AQ==";
+        url = "https://registry.npmjs.org/ssb-links/-/ssb-links-3.0.9.tgz";
+        sha512 = "jb1wqknz+AMqD9CxpjfDhII5Vz5JRVY9MakTrgKCrBFqLIPhqHq9bScei0zY0IBWjpSflI0juqOhpki38pWBHA==";
       };
     };
     "ssb-local-1.0.0" = {
@@ -41687,22 +42412,31 @@ let
         sha512 = "iRXjeI0sbRbgMwaKg+poqhHSH7GvUVgJ+8ysi8q7Hjj4wHkczLGAOyVjnyhjF+ErPDFn9kXN+46joneKqSgEDg==";
       };
     };
-    "ssb-ooo-1.3.2" = {
+    "ssb-ooo-1.3.3" = {
       name = "ssb-ooo";
       packageName = "ssb-ooo";
-      version = "1.3.2";
+      version = "1.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-ooo/-/ssb-ooo-1.3.2.tgz";
-        sha512 = "JBH0cDaqQ/WRZMfoyn/fNLDrbrs5w2xnSno/VUDWGhc+SX+3/h6zFK7VvCjdzEATlZ/D7VRkXMYrOedSIVIKwA==";
+        url = "https://registry.npmjs.org/ssb-ooo/-/ssb-ooo-1.3.3.tgz";
+        sha512 = "6yI5XBpBHkwFdAELpKwlf1C1V32Z0/AKEJYsoU7lk+Eh88blv8LKydo4a1DnjMiPy4ywn4lRU5oayQaPE5MRtQ==";
       };
     };
-    "ssb-plugins-1.0.0" = {
+    "ssb-plugins-1.0.4" = {
       name = "ssb-plugins";
       packageName = "ssb-plugins";
-      version = "1.0.0";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-plugins/-/ssb-plugins-1.0.0.tgz";
-        sha512 = "eM8vid+K8MhwZwzk/CDUhSNhUoS6wYgq9clJrrKaP0/Otdd3zZzcBQw54Xvm0olMcOgpTSlY3m2rT4iqjZPIBw==";
+        url = "https://registry.npmjs.org/ssb-plugins/-/ssb-plugins-1.0.4.tgz";
+        sha512 = "D48CcHdlkQwkFnaBmEQFt/rPDqHZ252JJ/dqAuFvdpFTnZ5ujYmdbIldOdBGcTm3Bn7GrRGmAGctOKwH/3X0dQ==";
+      };
+    };
+    "ssb-private1-1.0.1" = {
+      name = "ssb-private1";
+      packageName = "ssb-private1";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ssb-private1/-/ssb-private1-1.0.1.tgz";
+        sha512 = "x69YHNhjxCrknkK7XbEJyk2P0P3p52t6NF74I8ObHIrBdWnyRrO6iUH8K5b8CkaHawM4giXdZG5cyrOPzPN/Fg==";
       };
     };
     "ssb-pull-requests-1.0.0" = {
@@ -41714,22 +42448,22 @@ let
         sha1 = "dfd30cd50eecd8546bd4aa7f06e7c8f501c08118";
       };
     };
-    "ssb-query-2.4.3" = {
+    "ssb-query-2.4.5" = {
       name = "ssb-query";
       packageName = "ssb-query";
-      version = "2.4.3";
+      version = "2.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-query/-/ssb-query-2.4.3.tgz";
-        sha512 = "Ktuk6Bl3s70gueDH7FBXzI8KHsf+h+n82J6Id33NTwP80u5iSDV5vXK2f7/He/cmP3uUVUI5ogJda7ShmrDIug==";
+        url = "https://registry.npmjs.org/ssb-query/-/ssb-query-2.4.5.tgz";
+        sha512 = "/QX6+DJkghqq1ZTbgYpOvaI+gx2O7ee1TRUM9yiOlVjh1XAQBevcBj0zO+W3TsNllX86urqBrySd/AEfFfUpIw==";
       };
     };
-    "ssb-ref-2.13.9" = {
+    "ssb-ref-2.14.0" = {
       name = "ssb-ref";
       packageName = "ssb-ref";
-      version = "2.13.9";
+      version = "2.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-ref/-/ssb-ref-2.13.9.tgz";
-        sha512 = "TfatNqLvoP+eW/pMIbCmNcaoDq4R2k8jCtWkwDKx4AtluN/LwtyP931d5Mh+2gmzA04W7kxkr6f5ENGgdadMYg==";
+        url = "https://registry.npmjs.org/ssb-ref/-/ssb-ref-2.14.0.tgz";
+        sha512 = "RQfeGpgiRBuJePyG/1wRp2KrPXS9Ue0z/HU/svlECto+EVcQ77tFz9s/KYWKBt2Z7cem03uBrQ2GF/n2Ed+4Ig==";
       };
     };
     "ssb-replicate-1.3.2" = {
@@ -41750,13 +42484,13 @@ let
         sha512 = "Z4jBj917W+dKAiDglwxCpWm8vINOMtkpHQIgk50NQTb5jHqHI5Rcyiy7EO0uRcWwRWqXi1ZwOTEFVyLyyuittA==";
       };
     };
-    "ssb-validate-4.0.5" = {
+    "ssb-validate-4.1.1" = {
       name = "ssb-validate";
       packageName = "ssb-validate";
-      version = "4.0.5";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-validate/-/ssb-validate-4.0.5.tgz";
-        sha512 = "uniDFHD9eOMAK5D5ykpxlwyqTn0HxXTbO1icTkAmRcDR/qbghbtQ0muCgJj5hGHRZH7jYjPFjTbW2l4kzH/oag==";
+        url = "https://registry.npmjs.org/ssb-validate/-/ssb-validate-4.1.1.tgz";
+        sha512 = "3OsB6qTYlOMUqy4S1i0NuBtiqRW0s9z1Uf+Yqhjcqt7Zu8LTZk59HyhB1gfYmC3xzR/UnHeI7LkJZOt2+r//gA==";
       };
     };
     "ssb-ws-6.2.3" = {
@@ -41777,6 +42511,24 @@ let
         sha512 = "ZPO9rECxzs5JIQ6G/2EfL1I9ho/BVZkx9HRKn8+0af7QgwAmumQ7XBFP1ggMyPMo+/tUbmv0HFdv4qifdO/9JA==";
       };
     };
+    "ssh2-0.8.9" = {
+      name = "ssh2";
+      packageName = "ssh2";
+      version = "0.8.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ssh2/-/ssh2-0.8.9.tgz";
+        sha512 = "GmoNPxWDMkVpMFa9LVVzQZHF6EW3WKmBwL+4/GeILf2hFmix5Isxm7Amamo8o7bHiU0tC+wXsGcUXOxp8ChPaw==";
+      };
+    };
+    "ssh2-streams-0.4.10" = {
+      name = "ssh2-streams";
+      packageName = "ssh2-streams";
+      version = "0.4.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ssh2-streams/-/ssh2-streams-0.4.10.tgz";
+        sha512 = "8pnlMjvnIZJvmTzUIIA5nT4jr2ZWNNVHwyXfMGdRJbug9TpI3kd99ffglgfSWqujVv/0gxwMsDn9j9RVst8yhQ==";
+      };
+    };
     "sshpk-1.14.2" = {
       name = "sshpk";
       packageName = "sshpk";
@@ -41912,13 +42664,13 @@ let
         sha512 = "d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==";
       };
     };
-    "static-eval-2.0.5" = {
+    "static-eval-2.1.0" = {
       name = "static-eval";
       packageName = "static-eval";
-      version = "2.0.5";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/static-eval/-/static-eval-2.0.5.tgz";
-        sha512 = "nNbV6LbGtMBgv7e9LFkt5JV8RVlRsyJrphfAt9tOtBBW/SfnzZDf2KnS72an8e434A+9e/BmJuTxeGPvrAK7KA==";
+        url = "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz";
+        sha512 = "agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==";
       };
     };
     "static-extend-0.1.2" = {
@@ -42029,6 +42781,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";
@@ -42047,6 +42808,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";
@@ -42128,13 +42898,13 @@ let
         sha512 = "+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==";
       };
     };
-    "stream-http-3.1.0" = {
+    "stream-http-3.1.1" = {
       name = "stream-http";
       packageName = "stream-http";
-      version = "3.1.0";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stream-http/-/stream-http-3.1.0.tgz";
-        sha512 = "cuB6RgO7BqC4FBYzmnvhob5Do3wIdIsXAgGycHJnW+981gHqoYcYz9lqjJrk8WXRddbwPuqPYRl+bag6mYv4lw==";
+        url = "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz";
+        sha512 = "S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==";
       };
     };
     "stream-parser-0.3.1" = {
@@ -42182,22 +42952,22 @@ let
         sha1 = "bbf6b39f5f43ec30bc71babcb37557acecf34353";
       };
     };
-    "stream-to-blob-2.0.0" = {
+    "stream-to-blob-2.0.1" = {
       name = "stream-to-blob";
       packageName = "stream-to-blob";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stream-to-blob/-/stream-to-blob-2.0.0.tgz";
-        sha512 = "E+YitTtIHo7RQ4Cmgl+EzlMpqvLroTynRgt4t0pI4y5oz/piqlBQB8NFXLIWcjGOsKw+THnImrdpWcOCVxK25Q==";
+        url = "https://registry.npmjs.org/stream-to-blob/-/stream-to-blob-2.0.1.tgz";
+        sha512 = "GXlqXt3svqwIVWoICenix5Poxi4KbCF0BdXXUbpU1X4vq1V8wmjiEIU3aFJzCGNFpKxfbnG0uoowS3nKUgSPYg==";
       };
     };
-    "stream-to-blob-url-3.0.0" = {
+    "stream-to-blob-url-3.0.2" = {
       name = "stream-to-blob-url";
       packageName = "stream-to-blob-url";
-      version = "3.0.0";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stream-to-blob-url/-/stream-to-blob-url-3.0.0.tgz";
-        sha512 = "Mu1iPvbBkzdUPCZ+J+XBr/oagjOBfj4vpErHRIe08QzWeILSDtF5LXo6v44HeQFpx7dfqcBKjGUbSNCJ+38zqQ==";
+        url = "https://registry.npmjs.org/stream-to-blob-url/-/stream-to-blob-url-3.0.2.tgz";
+        sha512 = "PS6wT2ZyyR38Cy+lE6PBEI1ZmO2HdzZoLeDGG0zZbYikCZd0dh8FUoSeFzgWLItpBYw1WJmPVRLpykRV+lAWLQ==";
       };
     };
     "stream-to-promise-2.2.0" = {
@@ -42209,6 +42979,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";
@@ -42236,22 +43015,31 @@ 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==";
       };
     };
-    "streamroller-1.0.6" = {
-      name = "streamroller";
-      packageName = "streamroller";
-      version = "1.0.6";
+    "stream.finished-1.2.0" = {
+      name = "stream.finished";
+      packageName = "stream.finished";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream.finished/-/stream.finished-1.2.0.tgz";
+        sha512 = "xSp45f/glqd035qAtFUxAGvhotjY/EfqDNV+rQW8o7ffligiOjPaguTEvRzeQAhiQMCdkPEBrp5++S/rQyavWQ==";
+      };
+    };
+    "stream.pipeline-shim-1.1.0" = {
+      name = "stream.pipeline-shim";
+      packageName = "stream.pipeline-shim";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz";
-        sha512 = "3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==";
+        url = "https://registry.npmjs.org/stream.pipeline-shim/-/stream.pipeline-shim-1.1.0.tgz";
+        sha512 = "pSi/SZZDbSA5l3YYjSmJadCoD74/qSe79r9ZVR21lD4bpf+khn5Umi6AlfJrD8I0KQfGSqm/7Yp48dmithM+Vw==";
       };
     };
     "streamroller-2.2.4" = {
@@ -42299,15 +43087,6 @@ let
         sha1 = "eabe0956da7a8291c6de7486f7b35e58d031cd55";
       };
     };
-    "string-2.0.1" = {
-      name = "string";
-      packageName = "string";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string/-/string-2.0.1.tgz";
-        sha1 = "ef1473b3e11cb8158671856556959b9aff5fd759";
-      };
-    };
     "string-3.3.3" = {
       name = "string";
       packageName = "string";
@@ -42317,13 +43096,22 @@ let
         sha1 = "5ea211cd92d228e184294990a6cc97b366a77cb0";
       };
     };
-    "string-kit-0.11.7" = {
+    "string-env-interpolation-1.0.1" = {
+      name = "string-env-interpolation";
+      packageName = "string-env-interpolation";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz";
+        sha512 = "78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==";
+      };
+    };
+    "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" = {
@@ -42416,15 +43204,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";
@@ -42443,24 +43222,6 @@ let
         sha512 = "LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==";
       };
     };
-    "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 = "gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==";
-      };
-    };
-    "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 = "ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==";
-      };
-    };
     "string.prototype.trimstart-1.0.1" = {
       name = "string.prototype.trimstart";
       packageName = "string.prototype.trimstart";
@@ -42524,13 +43285,13 @@ let
         sha512 = "fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A==";
       };
     };
-    "stringify-object-3.3.0" = {
-      name = "stringify-object";
-      packageName = "stringify-object";
-      version = "3.3.0";
+    "stringify-package-1.0.1" = {
+      name = "stringify-package";
+      packageName = "stringify-package";
+      version = "1.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-package/-/stringify-package-1.0.1.tgz";
+        sha512 = "sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==";
       };
     };
     "stringify-parameters-0.0.4" = {
@@ -42677,15 +43438,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";
@@ -42803,6 +43555,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";
@@ -42839,13 +43600,13 @@ let
         sha1 = "0fdedc68e91addcfcb2e6be9c262581a6e8c28aa";
       };
     };
-    "strtok3-6.0.0" = {
+    "strtok3-6.0.4" = {
       name = "strtok3";
       packageName = "strtok3";
-      version = "6.0.0";
+      version = "6.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strtok3/-/strtok3-6.0.0.tgz";
-        sha512 = "ZXlmE22LZnIBvEU3n/kZGdh770fYFie65u5+2hLK9s74DoFtpkQIdBZVeYEzlolpGa+52G5IkzjUWn+iXynOEQ==";
+        url = "https://registry.npmjs.org/strtok3/-/strtok3-6.0.4.tgz";
+        sha512 = "rqWMKwsbN9APU47bQTMEYTPcwdpKDtmf1jVhHzNW2cL1WqAxaM9iBb9t5P2fj+RV2YsErUWgQzHD5JwV0uCTEQ==";
       };
     };
     "structured-source-3.0.2" = {
@@ -42866,6 +43627,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";
@@ -42911,40 +43681,49 @@ let
         sha512 = "Lqze501k5gMdCJg/InZV+TU7MgJyxu+gHLBQjQcTluoZRtMoWyJ4ywPCRpZdaHA2LAI1OCqJCEl93FMuZhA1/A==";
       };
     };
-    "stylint-1.5.9" = {
+    "stylint-2.0.0" = {
       name = "stylint";
       packageName = "stylint";
-      version = "1.5.9";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylint/-/stylint-1.5.9.tgz";
-        sha1 = "29f4dc129fa1ca22150cd867223cee2bed5ff6a2";
+        url = "https://registry.npmjs.org/stylint/-/stylint-2.0.0.tgz";
+        sha512 = "luHn2OAMGJouOnadm6Fim6WXodQ2AWDkWjYq0rMdyEwzO5PdE4LzoXAEn9LL2snmBAlwUp1URVOTF7lZR3KU+Q==";
       };
     };
-    "stylus-0.54.7" = {
-      name = "stylus";
-      packageName = "stylus";
-      version = "0.54.7";
+    "stylis-3.5.4" = {
+      name = "stylis";
+      packageName = "stylis";
+      version = "3.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylus/-/stylus-0.54.7.tgz";
-        sha512 = "Yw3WMTzVwevT6ZTrLCYNHAFmanMxdylelL3hkWNgPMeTCpMwpV3nXjpOHuBXtFv7aiO2xRuQS6OoAdgkNcSNug==";
+        url = "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz";
+        sha512 = "8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==";
       };
     };
-    "stylus-lookup-3.0.2" = {
-      name = "stylus-lookup";
-      packageName = "stylus-lookup";
-      version = "3.0.2";
+    "stylis-rule-sheet-0.0.10" = {
+      name = "stylis-rule-sheet";
+      packageName = "stylis-rule-sheet";
+      version = "0.0.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-3.0.2.tgz";
-        sha512 = "oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg==";
+        url = "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz";
+        sha512 = "nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==";
       };
     };
-    "stylus-supremacy-2.14.0" = {
+    "stylus-0.54.8" = {
+      name = "stylus";
+      packageName = "stylus";
+      version = "0.54.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz";
+        sha512 = "vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==";
+      };
+    };
+    "stylus-supremacy-2.14.5" = {
       name = "stylus-supremacy";
       packageName = "stylus-supremacy";
-      version = "2.14.0";
+      version = "2.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylus-supremacy/-/stylus-supremacy-2.14.0.tgz";
-        sha512 = "XeoMvDSTxgJnRPvnyVnIyTDLawLoKcZw1zoWc88p9oFZXxZbEDx8PGLjR4pSkLXVn/VqU5p5YILa7FqYaFakUA==";
+        url = "https://registry.npmjs.org/stylus-supremacy/-/stylus-supremacy-2.14.5.tgz";
+        sha512 = "JZjCn4GxPhghgAZ7cdYOKjbo9LIU42BcksNCeLgWQa2FtjyEz44mKKnaXVgUYw+AQIm+x/MblV+VJ04Yk5DSqw==";
       };
     };
     "subarg-1.0.0" = {
@@ -42965,13 +43744,13 @@ let
         sha512 = "cm7TQq9I8dA5LKUr+r8W7RzQlLsmTdCr6wXmjYueOoh/bQu55ODEw7GFhT42pUyoaLtO2rgmx1+8cSIjY9lR9g==";
       };
     };
-    "subscriptions-transport-ws-0.9.16" = {
+    "subscriptions-transport-ws-0.9.17" = {
       name = "subscriptions-transport-ws";
       packageName = "subscriptions-transport-ws";
-      version = "0.9.16";
+      version = "0.9.17";
       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.17.tgz";
+        sha512 = "hNHi2N80PBz4T0V0QhnnsMGvG3XDFDS9mS6BhZ3R12T6EBywC8d/uJscsga0cVO4DKtXCkCRrWm2sOYrbOdhEA==";
       };
     };
     "sudo-block-1.2.0" = {
@@ -43001,13 +43780,13 @@ let
         sha512 = "XiyPqLdiHJ3CMphADCJg/JVQYcj3JfO8NomlLubSdGYgppfzE+g/7Fyusza/Kr7lC919BdwbfIqFxK8VO7+l4w==";
       };
     };
-    "suf-regex-0.0.17" = {
+    "suf-regex-0.0.22" = {
       name = "suf-regex";
       packageName = "suf-regex";
-      version = "0.0.17";
+      version = "0.0.22";
       src = fetchurl {
-        url = "https://registry.npmjs.org/suf-regex/-/suf-regex-0.0.17.tgz";
-        sha512 = "/TIMx0G1iXCGHm5XbqHTV86tkdETO7OUOB8UAWHc04M2mMQnWAIZeO6M9GuSibRVM8ewRcHAV3fOFY2z1XtWaQ==";
+        url = "https://registry.npmjs.org/suf-regex/-/suf-regex-0.0.22.tgz";
+        sha512 = "6pArSj93hCItDrV+FC8tkf18M5p1tqWjf3T9b/LSYv/V9MeaN3JUqFPU/JMcBkUl2ny7BzTk+bJW4IGzORThNQ==";
       };
     };
     "sugarss-1.0.1" = {
@@ -43028,15 +43807,6 @@ let
         sha512 = "WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==";
       };
     };
-    "superagent-0.21.0" = {
-      name = "superagent";
-      packageName = "superagent";
-      version = "0.21.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/superagent/-/superagent-0.21.0.tgz";
-        sha1 = "fb15027984751ee7152200e6cd21cd6e19a5de87";
-      };
-    };
     "superagent-1.8.5" = {
       name = "superagent";
       packageName = "superagent";
@@ -43064,15 +43834,6 @@ let
         sha512 = "FT3QLMasz0YyCd4uIi5HNe+3t/onxMyEho7C3PSqmti3Twgy2rXT4fmkTz6wRL6bTF4uzPcfkUCa8u4JWHw8Ag==";
       };
     };
-    "superagent-5.2.2" = {
-      name = "superagent";
-      packageName = "superagent";
-      version = "5.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/superagent/-/superagent-5.2.2.tgz";
-        sha512 = "pMWBUnIllK4ZTw7p/UaobiQPwAO5w/1NRRTDpV0FTVNmECztsxKspj3ZWEordVEaqpZtmOQJJna4yTLyC/q7PQ==";
-      };
-    };
     "superagent-proxy-2.0.0" = {
       name = "superagent-proxy";
       packageName = "superagent-proxy";
@@ -43127,15 +43888,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";
@@ -43145,15 +43897,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";
@@ -43298,13 +44041,31 @@ let
         sha1 = "e39fae3d581d713682491e1926cd87bf2c209bfb";
       };
     };
-    "swap-case-1.1.2" = {
-      name = "swap-case";
-      packageName = "swap-case";
-      version = "1.1.2";
+    "swagger-ui-dist-3.31.1" = {
+      name = "swagger-ui-dist";
+      packageName = "swagger-ui-dist";
+      version = "3.31.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.31.1.tgz";
+        sha512 = "+IuIxXX8grZcDVLaC12WCGy62iHJ2v8kTptU4H4EgY/ue6tKeMu/jzIAs+pLFOuYwfG4+VQ+CrC9UeHR9oNKBw==";
+      };
+    };
+    "swagger2openapi-5.4.0" = {
+      name = "swagger2openapi";
+      packageName = "swagger2openapi";
+      version = "5.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-5.4.0.tgz";
+        sha512 = "f5QqfXawiVijhjMtYqWZ55ESHPZFqrPC8L9idhIiuSX8O2qsa1i4MVGtCM3TQF+Smzr/6WfT/7zBuzG3aTgPAA==";
+      };
+    };
+    "swagger2openapi-6.2.2" = {
+      name = "swagger2openapi";
+      packageName = "swagger2openapi";
+      version = "6.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz";
-        sha1 = "c39203a4587385fad3c850a0bd1bcafa081974e3";
+        url = "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-6.2.2.tgz";
+        sha512 = "A8RWwzkymhF/ZfO0AylEZ2eCaN2jvAJU3bdtXQzkW5QvuyBMUBcyfB2tkHMTpXWYDmt7uKHwPGRZ0doPejtARA==";
       };
     };
     "sway-1.0.0" = {
@@ -43370,15 +44131,6 @@ let
         sha512 = "9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==";
       };
     };
-    "sync-exec-0.6.2" = {
-      name = "sync-exec";
-      packageName = "sync-exec";
-      version = "0.6.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sync-exec/-/sync-exec-0.6.2.tgz";
-        sha1 = "717d22cc53f0ce1def5594362f3a89a2ebb91105";
-      };
-    };
     "syntax-error-1.4.0" = {
       name = "syntax-error";
       packageName = "syntax-error";
@@ -43388,13 +44140,13 @@ let
         sha512 = "YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==";
       };
     };
-    "systeminformation-4.24.1" = {
+    "systeminformation-4.26.10" = {
       name = "systeminformation";
       packageName = "systeminformation";
-      version = "4.24.1";
+      version = "4.26.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-4.24.1.tgz";
-        sha512 = "LRksOe2mBvtbD0Y1hZMsaICHpIglhjz758K5XKUiHKcTBc6BV4O7ozbExZc+5BcCYrniMI9ka7piXFeCaymRRQ==";
+        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-4.26.10.tgz";
+        sha512 = "bO4FIzrjESAfh4KHwkUJym3jvKtJ4oJ2PG0BBQGBmKa0pF2oanpkB7CF4ZsSX7vfp3+GKaLzioVwpV/3Tyk+lQ==";
       };
     };
     "syswide-cas-5.3.0" = {
@@ -43497,13 +44249,13 @@ let
         sha1 = "7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268";
       };
     };
-    "tail-2.0.3" = {
+    "tail-2.0.4" = {
       name = "tail";
       packageName = "tail";
-      version = "2.0.3";
+      version = "2.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tail/-/tail-2.0.3.tgz";
-        sha512 = "s9NOGkLqqiDEtBttQZI7acLS8ycYK5sTlDwNjGnpXG9c8AWj0cfAtwEIzo/hVRMMiC5EYz+bXaJWC1u1u0GPpQ==";
+        url = "https://registry.npmjs.org/tail/-/tail-2.0.4.tgz";
+        sha512 = "xHkZdNWIzO++g+V/rHGqVoHd2LRxz+8t8bj6FGelfb8FHBjg5yjkX7Su/8sQSBo5alIspYkRp/fU0A2SM5h+5A==";
       };
     };
     "taketalk-1.0.0" = {
@@ -43542,13 +44294,13 @@ let
         sha1 = "2e7ce0a31df09f8d6851664a71842e0ca5057af7";
       };
     };
-    "tape-4.13.2" = {
+    "tape-4.13.3" = {
       name = "tape";
       packageName = "tape";
-      version = "4.13.2";
+      version = "4.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tape/-/tape-4.13.2.tgz";
-        sha512 = "waWwC/OqYVE9TS6r1IynlP2sEdk4Lfo6jazlgkuNkPTHIbuG2BTABIaKdlQWwPeB6Oo4ksZ1j33Yt0NTOAlYMQ==";
+        url = "https://registry.npmjs.org/tape/-/tape-4.13.3.tgz";
+        sha512 = "0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw==";
       };
     };
     "tar-0.1.17" = {
@@ -43596,13 +44348,13 @@ let
         sha512 = "Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==";
       };
     };
-    "tar-fs-2.0.1" = {
+    "tar-fs-2.1.0" = {
       name = "tar-fs";
       packageName = "tar-fs";
-      version = "2.0.1";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz";
-        sha512 = "6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==";
+        url = "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz";
+        sha512 = "9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==";
       };
     };
     "tar-pack-3.4.1" = {
@@ -43623,13 +44375,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" = {
@@ -43794,13 +44546,13 @@ let
         sha512 = "a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==";
       };
     };
-    "terminal-kit-1.35.2" = {
+    "terminal-kit-1.42.0" = {
       name = "terminal-kit";
       packageName = "terminal-kit";
-      version = "1.35.2";
+      version = "1.42.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terminal-kit/-/terminal-kit-1.35.2.tgz";
-        sha512 = "PCNmMKjlcGQN/OlQ+nzdgPmrS0kmPcOqPCmHPrxCfOuvz0fQ1fZLiyivRIcwzY9bnm624VVsywUis+iPA3Hq5A==";
+        url = "https://registry.npmjs.org/terminal-kit/-/terminal-kit-1.42.0.tgz";
+        sha512 = "l9GCV47Gm+A+nshoOhvEpcUSQE27k0gRRSxowQodI2nc6uOw/RVr0U3zgj61zLQStCLDqQ6JVfV1vAdlF0lFjA==";
       };
     };
     "terser-3.17.0" = {
@@ -43812,22 +44564,22 @@ let
         sha512 = "/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==";
       };
     };
-    "terser-4.6.13" = {
+    "terser-4.8.0" = {
       name = "terser";
       packageName = "terser";
-      version = "4.6.13";
+      version = "4.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser/-/terser-4.6.13.tgz";
-        sha512 = "wMvqukYgVpQlymbnNbabVZbtM6PN63AzqexpwJL8tbh/mRT9LE5o+ruVduAGL7D6Fpjl+Q+06U5I9Ul82odAhw==";
+        url = "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz";
+        sha512 = "EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==";
       };
     };
-    "terser-webpack-plugin-1.4.3" = {
+    "terser-webpack-plugin-1.4.4" = {
       name = "terser-webpack-plugin";
       packageName = "terser-webpack-plugin";
-      version = "1.4.3";
+      version = "1.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz";
-        sha512 = "QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==";
+        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz";
+        sha512 = "U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==";
       };
     };
     "test-exclude-6.0.0" = {
@@ -43911,13 +44663,13 @@ let
         sha1 = "72f792dd9d31705a91ae19ebfcf8b3f968c81da2";
       };
     };
-    "thenify-3.3.0" = {
+    "thenify-3.3.1" = {
       name = "thenify";
       packageName = "thenify";
-      version = "3.3.0";
+      version = "3.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz";
-        sha1 = "e69e38a1babe969b0108207978b9f62b88604839";
+        url = "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz";
+        sha512 = "RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==";
       };
     };
     "thenify-all-1.6.0" = {
@@ -44037,13 +44789,13 @@ let
         sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==";
       };
     };
-    "through2-3.0.1" = {
+    "through2-3.0.2" = {
       name = "through2";
       packageName = "through2";
-      version = "3.0.1";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz";
-        sha512 = "M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==";
+        url = "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz";
+        sha512 = "enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==";
       };
     };
     "through2-filter-3.0.0" = {
@@ -44091,15 +44843,6 @@ let
         sha512 = "eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==";
       };
     };
-    "tilde-path-3.0.0" = {
-      name = "tilde-path";
-      packageName = "tilde-path";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tilde-path/-/tilde-path-3.0.0.tgz";
-        sha512 = "jHGx1beQCxoIuyg1LDKxqL3J0zNA57eGjlXsqtcjj6Q9EKXh4Sz895VxXW/psJW1PYIF79XViZEEWrvmhaZ61g==";
-      };
-    };
     "tildify-1.2.0" = {
       name = "tildify";
       packageName = "tildify";
@@ -44208,15 +44951,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";
@@ -44289,6 +45023,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";
@@ -44298,15 +45041,6 @@ let
         sha512 = "76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==";
       };
     };
-    "tmp-graphql-config-extension-openapi-1.0.7" = {
-      name = "tmp-graphql-config-extension-openapi";
-      packageName = "tmp-graphql-config-extension-openapi";
-      version = "1.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tmp-graphql-config-extension-openapi/-/tmp-graphql-config-extension-openapi-1.0.7.tgz";
-        sha512 = "NQPUaywaVC2hzWkBBsTX3sV2XfxU0mc409rJyrA7iCu5DSTjMLUqI+U4KJVSy/Ltp0zgbWMWua471R7zMql9Pw==";
-      };
-    };
     "tmpl-1.0.4" = {
       name = "tmpl";
       packageName = "tmpl";
@@ -44496,15 +45230,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";
@@ -44613,13 +45338,13 @@ let
         sha1 = "2d17d82cf669ada7f9dfe75db4b31f7034b71e29";
       };
     };
-    "torrent-discovery-9.2.1" = {
+    "torrent-discovery-9.3.0" = {
       name = "torrent-discovery";
       packageName = "torrent-discovery";
-      version = "9.2.1";
+      version = "9.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/torrent-discovery/-/torrent-discovery-9.2.1.tgz";
-        sha512 = "bjKkbTEkcoZTXF8nhcRu6UWqbkpUsehd/6umoZqjgj/dM8nD3O7wNkPZrmls+vVf+2LT9ejZMlNUvZCqSe8cqg==";
+        url = "https://registry.npmjs.org/torrent-discovery/-/torrent-discovery-9.3.0.tgz";
+        sha512 = "rdOfm+o6d+E+nRjeYiCzXGrM9ou7spkZpxu9xhnfKoTJgtWpSYEHXO4BT9hwVF1uoUpm+hOwNnwgkSfBZNMh7g==";
       };
     };
     "torrent-piece-1.1.2" = {
@@ -44658,6 +45383,15 @@ let
         sha1 = "42d88dd116618bcf00d6106dd5446f3427902ff1";
       };
     };
+    "touch-2.0.2" = {
+      name = "touch";
+      packageName = "touch";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/touch/-/touch-2.0.2.tgz";
+        sha512 = "qjNtvsFXTRq7IuMLweVgFxmEuQ6gLbRs2jQxL80TtZ31dEKWYIxRXquij6w6VimyDek5hD3PytljHmEtAs2u0A==";
+      };
+    };
     "touch-3.1.0" = {
       name = "touch";
       packageName = "touch";
@@ -44748,6 +45482,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";
@@ -44766,15 +45509,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";
@@ -44865,15 +45599,6 @@ let
         sha1 = "e3646a2ea4e891312bf7eace6cfb05380bc01c21";
       };
     };
-    "trim-right-1.0.1" = {
-      name = "trim-right";
-      packageName = "trim-right";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz";
-        sha1 = "cb2e1203067e0c8de1f614094b9fe45704ea6003";
-      };
-    };
     "trim-trailing-lines-1.1.3" = {
       name = "trim-trailing-lines";
       packageName = "trim-trailing-lines";
@@ -44946,13 +45671,22 @@ let
         sha512 = "uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==";
       };
     };
-    "ts-node-8.10.1" = {
+    "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";
-      version = "8.10.1";
+      version = "8.10.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ts-node/-/ts-node-8.10.1.tgz";
-        sha512 = "bdNz1L4ekHiJul6SHtZWs1ujEKERJnHs4HxN7rjTyyVOFf3HaJ6sLqe6aPG62XTzAB/63pKRh5jTSWL0D7bsvw==";
+        url = "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz";
+        sha512 = "ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==";
       };
     };
     "ts-process-promises-1.0.2" = {
@@ -44964,6 +45698,24 @@ let
         sha512 = "6qWWz2HdFbD2uAfgS5t65Dd6HQKYjfra+YXQzKzxIG+RKTpoeDi+x+TW85SEF3cWUI2UecrOXJobvD+04MiTZg==";
       };
     };
+    "tsconfig-paths-3.9.0" = {
+      name = "tsconfig-paths";
+      packageName = "tsconfig-paths";
+      version = "3.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz";
+        sha512 = "dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==";
+      };
+    };
+    "tsconfig-paths-webpack-plugin-3.2.0" = {
+      name = "tsconfig-paths-webpack-plugin";
+      packageName = "tsconfig-paths-webpack-plugin";
+      version = "3.2.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==";
+      };
+    };
     "tslib-1.11.1" = {
       name = "tslib";
       packageName = "tslib";
@@ -44973,13 +45725,22 @@ let
         sha512 = "aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==";
       };
     };
-    "tslib-1.9.3" = {
+    "tslib-1.13.0" = {
       name = "tslib";
       packageName = "tslib";
-      version = "1.9.3";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz";
-        sha512 = "4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==";
+        url = "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz";
+        sha512 = "i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==";
+      };
+    };
+    "tslib-2.0.0" = {
+      name = "tslib";
+      packageName = "tslib";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz";
+        sha512 = "lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==";
       };
     };
     "tslint-5.20.1" = {
@@ -45018,22 +45779,22 @@ let
         sha512 = "kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==";
       };
     };
-    "ttf2woff-2.0.1" = {
+    "ttf2woff-2.0.2" = {
       name = "ttf2woff";
       packageName = "ttf2woff";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ttf2woff/-/ttf2woff-2.0.1.tgz";
-        sha1 = "871832240024b09db9570904c7c1928b8057c969";
+        url = "https://registry.npmjs.org/ttf2woff/-/ttf2woff-2.0.2.tgz";
+        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" = {
@@ -45072,22 +45833,13 @@ let
         sha512 = "C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==";
       };
     };
-    "tty-truncate-1.0.5" = {
-      name = "tty-truncate";
-      packageName = "tty-truncate";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tty-truncate/-/tty-truncate-1.0.5.tgz";
-        sha512 = "ftM6dBJyEXLMspVSO2huTtGQapxsljpmQh5jYMaUFeCgETOWNT/KZcBGXtoBEYRBO2JRdxsSSHPloa6Fy/AWXw==";
-      };
-    };
-    "tty-width-frame-1.0.3" = {
-      name = "tty-width-frame";
-      packageName = "tty-width-frame";
-      version = "1.0.3";
+    "tumblr-0.4.1" = {
+      name = "tumblr";
+      packageName = "tumblr";
+      version = "0.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tty-width-frame/-/tty-width-frame-1.0.3.tgz";
-        sha512 = "k3DeWv+GnKYcFaFLK87Ecum4AWxySB0lfzQaonlHKaoum7A2DlTkWw8mfgWtz4o8Hoa4Ab/ZdDitR74LhbOK8A==";
+        url = "https://registry.npmjs.org/tumblr/-/tumblr-0.4.1.tgz";
+        sha1 = "ac9f4ba7bd04525d6bd8b087f85553c8ef19dc9e";
       };
     };
     "tunnel-0.0.4" = {
@@ -45171,6 +45923,15 @@ let
         sha512 = "SPGkUM0p7hjgo+y5Dlm/XCSuZe0G3kfcgRPrxkMFln5e8bvQbxDOsia8QEo8xqXfjLR1Emp9FGkVYHya2b8qdA==";
       };
     };
+    "twitter-1.7.1" = {
+      name = "twitter";
+      packageName = "twitter";
+      version = "1.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/twitter/-/twitter-1.7.1.tgz";
+        sha1 = "0762378f1dc1c050e48f666aca904e24b1a962f4";
+      };
+    };
     "txt-to-ast-3.0.3" = {
       name = "txt-to-ast";
       packageName = "txt-to-ast";
@@ -45207,6 +45968,15 @@ let
         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";
@@ -45270,15 +46040,6 @@ let
         sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==";
       };
     };
-    "type-is-1.5.7" = {
-      name = "type-is";
-      packageName = "type-is";
-      version = "1.5.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type-is/-/type-is-1.5.7.tgz";
-        sha1 = "b9368a593cc6ef7d0645e78b2f4c64cbecd05e90";
-      };
-    };
     "type-is-1.6.18" = {
       name = "type-is";
       packageName = "type-is";
@@ -45288,15 +46049,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";
@@ -45342,13 +46094,22 @@ let
         sha512 = "kk80vLW9iGtjMnIv11qyxLqZm20UklzuR2tL0QAnDIygIUIemcZMxlMWudl9OOt76H3ntVzcTiddQ1/pAAJMYg==";
       };
     };
-    "typescript-3.8.3" = {
+    "typescript-3.9.5" = {
       name = "typescript";
       packageName = "typescript";
-      version = "3.8.3";
+      version = "3.9.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz";
-        sha512 = "MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz";
+        sha512 = "hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==";
+      };
+    };
+    "typescript-3.9.7" = {
+      name = "typescript";
+      packageName = "typescript";
+      version = "3.9.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz";
+        sha512 = "BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==";
       };
     };
     "typescript-eslint-parser-16.0.1" = {
@@ -45414,13 +46175,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" = {
@@ -45450,31 +46211,31 @@ let
         sha1 = "29c5733148057bb4e1f75df35b7a9cb72e6a59dd";
       };
     };
-    "uglify-js-3.4.10" = {
+    "uglify-js-3.10.0" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.4.10";
+      version = "3.10.0";
       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.0.tgz";
+        sha512 = "Esj5HG5WAyrLIdYU74Z3JdG2PxdIusvj6IWHMtlyESxc7kcDz7zYlYjpnSokn1UbpV0d/QX9fan7gkCNd/9BQA==";
       };
     };
-    "uglify-js-3.8.1" = {
+    "uglify-js-3.10.1" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.8.1";
+      version = "3.10.1";
       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.10.1.tgz";
+        sha512 = "RjxApKkrPJB6kjJxQS3iZlf///REXWYxYJxO/MpmlQzVkDWVI3PSnCBWezMecmTU/TRkNxrl8bmsfFQCp+LO+Q==";
       };
     };
-    "uglify-js-3.9.2" = {
+    "uglify-js-3.4.10" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.9.2";
+      version = "3.4.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.2.tgz";
-        sha512 = "zGVwKslUAD/EeqOrD1nQaBmXIHl1Vw371we8cvS8I6mYK9rmgX5tv8AAeJdfsQ3Kk5mGax2SVV/AizxdNGhl7Q==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz";
+        sha512 = "Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==";
       };
     };
     "uglify-to-browserify-1.0.2" = {
@@ -45585,13 +46346,13 @@ let
         sha512 = "4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==";
       };
     };
-    "unbzip2-stream-1.4.2" = {
+    "unbzip2-stream-1.4.3" = {
       name = "unbzip2-stream";
       packageName = "unbzip2-stream";
-      version = "1.4.2";
+      version = "1.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.2.tgz";
-        sha512 = "pZMVAofMrrHX6Ik39hCk470kulCbmZ2SWfQLPmTWqfJV/oUm0gn1CblvHdUu4+54Je6Jq34x8kY6XjTy6dMkOg==";
+        url = "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz";
+        sha512 = "mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==";
       };
     };
     "unc-path-regex-0.1.2" = {
@@ -45720,6 +46481,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";
@@ -45774,6 +46544,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";
@@ -45810,22 +46589,22 @@ let
         sha512 = "lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==";
       };
     };
-    "unified-diff-1.0.2" = {
-      name = "unified-diff";
-      packageName = "unified-diff";
-      version = "1.0.2";
+    "unified-8.4.2" = {
+      name = "unified";
+      packageName = "unified";
+      version = "8.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified-diff/-/unified-diff-1.0.2.tgz";
-        sha1 = "920b33da9abae087dd444904372e7c3fbd367d85";
+        url = "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz";
+        sha512 = "JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==";
       };
     };
-    "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" = {
@@ -45837,13 +46616,22 @@ let
         sha512 = "iDJYH82TgcezQA4IZzhCNJQx7vBsGk4h9s4Q7Fscrb3qcPsxBqVrVNYez2W3sBVTxuU1bFAhyRpA6ba/R4j93A==";
       };
     };
-    "unified-message-control-1.0.4" = {
+    "unified-engine-7.0.0" = {
+      name = "unified-engine";
+      packageName = "unified-engine";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unified-engine/-/unified-engine-7.0.0.tgz";
+        sha512 = "zH/MvcISpWg3JZtCoY/GYBw1WnVHkhnPoMBWpmuvAifCPSS9mzT9EbtimesJp6t2nnr/ojI0mg3TmkO1CjIwVA==";
+      };
+    };
+    "unified-message-control-2.0.0" = {
       name = "unified-message-control";
       packageName = "unified-message-control";
-      version = "1.0.4";
+      version = "2.0.0";
       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-2.0.0.tgz";
+        sha512 = "6TE36M/YIQhUr+XlG+YKXDCCTC2FPtCgXIwtdJcHLnrRGR1ZjYwZMH2pnp7a4OaE7sST9GUqQPjVHM7TRTTlyQ==";
       };
     };
     "union-0.5.0" = {
@@ -46008,6 +46796,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";
@@ -46071,6 +46868,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";
@@ -46089,6 +46895,15 @@ let
         sha512 = "DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==";
       };
     };
+    "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.20" = {
       name = "universal-analytics";
       packageName = "universal-analytics";
@@ -46107,13 +46922,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" = {
@@ -46314,15 +47129,6 @@ let
         sha512 = "grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==";
       };
     };
-    "update-notifier-4.0.0" = {
-      name = "update-notifier";
-      packageName = "update-notifier";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/update-notifier/-/update-notifier-4.0.0.tgz";
-        sha512 = "p9zf71hWt5GVXM4iEBujpUgx8mK9AWiCCapEJm/O1z5ntCim83Z1ATqzZFBHFYqx03laMqv8LiDgs/7ikXjf/g==";
-      };
-    };
     "update-notifier-4.1.0" = {
       name = "update-notifier";
       packageName = "update-notifier";
@@ -46341,13 +47147,13 @@ let
         sha1 = "91f84705f2349bf89082855fff4e3006ac435337";
       };
     };
-    "upnp-mediarenderer-client-1.2.4" = {
+    "upnp-mediarenderer-client-1.4.0" = {
       name = "upnp-mediarenderer-client";
       packageName = "upnp-mediarenderer-client";
-      version = "1.2.4";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/upnp-mediarenderer-client/-/upnp-mediarenderer-client-1.2.4.tgz";
-        sha1 = "0c63a51802082b6b03b596c475cc64fc1e0877c8";
+        url = "https://registry.npmjs.org/upnp-mediarenderer-client/-/upnp-mediarenderer-client-1.4.0.tgz";
+        sha512 = "F+C3Yceoz0j3ZWEchz5tpaOEqkbpObRUmeuPGc9+2u2YvC1CDbXGQ6mjbM10MDhnUJ0tTWYTufpj6xsWctnULw==";
       };
     };
     "upper-case-1.1.3" = {
@@ -46359,13 +47165,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" = {
@@ -46449,15 +47264,6 @@ let
         sha1 = "5af22f18c052a000a48d7b82c5e9c2e2feeda728";
       };
     };
-    "url-join-4.0.0" = {
-      name = "url-join";
-      packageName = "url-join";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz";
-        sha1 = "4d3340e807d3773bda9991f8305acdcc2a665d2a";
-      };
-    };
     "url-join-4.0.1" = {
       name = "url-join";
       packageName = "url-join";
@@ -46494,13 +47300,13 @@ let
         sha1 = "16b5cafc07dbe3676c1b1999177823d6503acb0c";
       };
     };
-    "url-regex-3.2.0" = {
-      name = "url-regex";
-      packageName = "url-regex";
-      version = "3.2.0";
+    "url-template-2.0.8" = {
+      name = "url-template";
+      packageName = "url-template";
+      version = "2.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz";
-        sha1 = "dbad1e0c9e29e105dd0b1f09f6862f7fdb482724";
+        url = "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz";
+        sha1 = "fc565a3cccbff7730c775f5641f9555791439f21";
       };
     };
     "url-to-options-1.0.1" = {
@@ -46566,13 +47372,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" = {
@@ -46719,15 +47525,6 @@ let
         sha1 = "1352c340eb820e4d8ddba039a4fbfaa32ed4ef3a";
       };
     };
-    "utils-merge-1.0.0" = {
-      name = "utils-merge";
-      packageName = "utils-merge";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz";
-        sha1 = "0294fb922bb9375153541c4f7096231f287c8af8";
-      };
-    };
     "utils-merge-1.0.1" = {
       name = "utils-merge";
       packageName = "utils-merge";
@@ -46755,31 +47552,13 @@ let
         sha512 = "vRAKaS8WcYNgzbxyH2LdheqgL4sQLis8LXl7r/mN+O4mpWlUpoCsTtietxepLrft2q0TFA2gaIvSWN1iRkzW/w==";
       };
     };
-    "utp-native-2.1.10" = {
+    "utp-native-2.2.1" = {
       name = "utp-native";
       packageName = "utp-native";
-      version = "2.1.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/utp-native/-/utp-native-2.1.10.tgz";
-        sha512 = "VTjBvb/uE9gYqx2NGVPtAWhqv9itieW+wJceJg5G6Cl/2kBCnHDaFafw3fNgCvii7meTpC4AoZfy6OG0pnuQ/Q==";
-      };
-    };
-    "uuid-2.0.3" = {
-      name = "uuid";
-      packageName = "uuid";
-      version = "2.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz";
-        sha1 = "67e2e863797215530dff318e5bf9dcebfd47b21a";
-      };
-    };
-    "uuid-3.0.0" = {
-      name = "uuid";
-      packageName = "uuid";
-      version = "3.0.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-3.0.0.tgz";
-        sha1 = "6728fc0459c450d796a99c31837569bdf672d728";
+        url = "https://registry.npmjs.org/utp-native/-/utp-native-2.2.1.tgz";
+        sha512 = "7GvD4gjGyL1GaNtZAaBVHn8SeWgx9/xIVE1LufMR0m2pWUs1EVx5WiOCXrCHyt7e15+5SquBMoQfj888pJySxA==";
       };
     };
     "uuid-3.3.2" = {
@@ -46818,31 +47597,31 @@ let
         sha512 = "yqjRXZzSJm9Dbl84H2VDHpM3zMjzSJQ+hn6C4zqd5ilW+7P4ZmLEEqwho9LjP+tGuZlF4xrHQXT0h9QZUS/pWA==";
       };
     };
-    "uuid-7.0.2" = {
+    "uuid-8.1.0" = {
       name = "uuid";
       packageName = "uuid";
-      version = "7.0.2";
+      version = "8.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-7.0.2.tgz";
-        sha512 = "vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw==";
+        url = "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz";
+        sha512 = "CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==";
       };
     };
-    "v8-compile-cache-2.0.3" = {
-      name = "v8-compile-cache";
-      packageName = "v8-compile-cache";
-      version = "2.0.3";
+    "uuid-8.3.0" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "8.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz";
-        sha512 = "CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==";
+        url = "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz";
+        sha512 = "fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==";
       };
     };
-    "v8-compile-cache-2.1.0" = {
+    "v8-compile-cache-2.1.1" = {
       name = "v8-compile-cache";
       packageName = "v8-compile-cache";
-      version = "2.1.0";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz";
-        sha512 = "usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==";
+        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz";
+        sha512 = "8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==";
       };
     };
     "v8-debug-1.0.1" = {
@@ -46881,6 +47660,15 @@ let
         sha512 = "amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==";
       };
     };
+    "v8flags-3.2.0" = {
+      name = "v8flags";
+      packageName = "v8flags";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz";
+        sha512 = "mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==";
+      };
+    };
     "valid-identifier-0.0.2" = {
       name = "valid-identifier";
       packageName = "valid-identifier";
@@ -46926,15 +47714,6 @@ let
         sha512 = "X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==";
       };
     };
-    "validator-11.1.0" = {
-      name = "validator";
-      packageName = "validator";
-      version = "11.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/validator/-/validator-11.1.0.tgz";
-        sha512 = "qiQ5ktdO7CD6C/5/mYV4jku/7qnqzjrxb3C/Q5wR3vGGinHTgJZN/TdFT3ZX4vXhX2R1PXx42fB1cn5W+uJ4lg==";
-      };
-    };
     "validator-5.7.0" = {
       name = "validator";
       packageName = "validator";
@@ -46998,15 +47777,6 @@ let
         sha1 = "d826b89f7490732fabc0c0ed693ed475dcb29ebf";
       };
     };
-    "vary-1.0.1" = {
-      name = "vary";
-      packageName = "vary";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz";
-        sha1 = "99e4981566a286118dfb2b817357df7993376d10";
-      };
-    };
     "vary-1.1.2" = {
       name = "vary";
       packageName = "vary";
@@ -47070,13 +47840,13 @@ let
         sha512 = "/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==";
       };
     };
-    "verda-1.0.1" = {
+    "verda-1.1.0" = {
       name = "verda";
       packageName = "verda";
-      version = "1.0.1";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/verda/-/verda-1.0.1.tgz";
-        sha512 = "nScasxF9diGZS3udb/KkHMPqn+8lENPk1cK7GNWsxmhHqH0Bm4Pd7KnjoBWL68j1G0niaI13wWJluqQIex6fmA==";
+        url = "https://registry.npmjs.org/verda/-/verda-1.1.0.tgz";
+        sha512 = "6f3bwfXNkjDivAsPFIfCXtCstEh08Q15C6aGnF9wRNfaYhJCXuHRLh39V3b+vjCvvLOeFZ/MeBDZVx81f6dktg==";
       };
     };
     "verror-1.1.0" = {
@@ -47124,15 +47894,6 @@ let
         sha1 = "7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5";
       };
     };
-    "vertical-meter-1.0.0" = {
-      name = "vertical-meter";
-      packageName = "vertical-meter";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vertical-meter/-/vertical-meter-1.0.0.tgz";
-        sha512 = "xvtone0DHRBrWSBVF2p3+/KSz/mzHvDZ7+HYB3g68hBpqIC3tIF8J1maf5osHPKHB/45iq2B+T4ju/mfxArd/Q==";
-      };
-    };
     "vfile-1.4.0" = {
       name = "vfile";
       packageName = "vfile";
@@ -47160,13 +47921,13 @@ let
         sha512 = "y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==";
       };
     };
-    "vfile-4.1.0" = {
+    "vfile-4.2.0" = {
       name = "vfile";
       packageName = "vfile";
-      version = "4.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vfile/-/vfile-4.1.0.tgz";
-        sha512 = "BaTPalregj++64xbGK6uIlsurN3BCRNM/P2Pg8HezlGzKd1O9PrwIac6bd9Pdx2uTb0QHoioZ+rXKolbVXEgJg==";
+        url = "https://registry.npmjs.org/vfile/-/vfile-4.2.0.tgz";
+        sha512 = "a/alcwCvtuc8OX92rqqo7PflxiCgXRFjdyoGVuYV+qbgCb0GgZJRvIgCD4+U/Kl1yhaRsaTwksF88xbPyGsgpw==";
       };
     };
     "vfile-find-down-1.0.0" = {
@@ -47187,13 +47948,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" = {
@@ -47232,15 +47993,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";
@@ -47313,15 +48065,6 @@ let
         sha1 = "b0455b38fc5e0cf30d4325132e461970c2091cde";
       };
     };
-    "vinyl-1.2.0" = {
-      name = "vinyl";
-      packageName = "vinyl";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz";
-        sha1 = "5c88036cf565e5df05558bfc911f8656df218884";
-      };
-    };
     "vinyl-2.2.0" = {
       name = "vinyl";
       packageName = "vinyl";
@@ -47331,13 +48074,13 @@ let
         sha512 = "MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==";
       };
     };
-    "vinyl-file-2.0.0" = {
+    "vinyl-file-3.0.0" = {
       name = "vinyl-file";
       packageName = "vinyl-file";
-      version = "2.0.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz";
-        sha1 = "a7ebf5ffbefda1b7d18d140fcb07b223efb6751a";
+        url = "https://registry.npmjs.org/vinyl-file/-/vinyl-file-3.0.0.tgz";
+        sha1 = "b104d9e4409ffa325faadd520642d0a3b488b365";
       };
     };
     "vinyl-fs-0.3.14" = {
@@ -47430,13 +48173,13 @@ let
         sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec";
       };
     };
-    "vsce-1.75.0" = {
+    "vsce-1.77.0" = {
       name = "vsce";
       packageName = "vsce";
-      version = "1.75.0";
+      version = "1.77.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vsce/-/vsce-1.75.0.tgz";
-        sha512 = "qyAQTmolxKWc9bV1z0yBTSH4WEIWhDueBJMKB0GUFD6lM4MiaU1zJ9BtzekUORZu094YeNSKz0RmVVuxfqPq0g==";
+        url = "https://registry.npmjs.org/vsce/-/vsce-1.77.0.tgz";
+        sha512 = "8vOTCI3jGmOm0JJFu/BMAbqxpaSuka4S3hV9E6K5aWBUsDM1SGFExkIxHblnsI8sls43xP61DHorYT+K0F+GFA==";
       };
     };
     "vscode-css-languageservice-3.0.13" = {
@@ -47448,13 +48191,13 @@ let
         sha512 = "RWkO/c/A7iXhHEy3OuEqkCqavDjpD4NF2Ca8vjai+ZtEYNeHrm1ybTnBYLP4Ft1uXvvaaVtYA9HrDjD6+CUONg==";
       };
     };
-    "vscode-css-languageservice-4.1.2" = {
+    "vscode-css-languageservice-4.3.1" = {
       name = "vscode-css-languageservice";
       packageName = "vscode-css-languageservice";
-      version = "4.1.2";
+      version = "4.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-4.1.2.tgz";
-        sha512 = "clIjSS940NPBvtfubZokKT/YDNfE5ST9VDwsuwdCbQSkJAVZPAbmIgfmgrz/f/o8PawYQU/ooUBEuRIvIYq3ag==";
+        url = "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-4.3.1.tgz";
+        sha512 = "Vdz2cyoTP2tLWikhFdouK8dAQ3gVhLPxsFkIscM30Quh6rd/YejTeZEYC/W+b0iKumHYebDeo1GUFbf0ptySRw==";
       };
     };
     "vscode-emmet-helper-1.2.17" = {
@@ -47475,13 +48218,13 @@ let
         sha512 = "mIb5VMXM5jI97HzCk2eadI1K//rCEZXte0wBqA7PGXsyJH4KTyJUaYk9MR+mbfpUl2vMi3HZw9GUOLGYLc6l5w==";
       };
     };
-    "vscode-json-languageservice-3.6.0" = {
+    "vscode-json-languageservice-3.8.0" = {
       name = "vscode-json-languageservice";
       packageName = "vscode-json-languageservice";
-      version = "3.6.0";
+      version = "3.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.6.0.tgz";
-        sha512 = "dXzFywypUZ9T0tjr4fREZiknXDz6vAGx1zsxbQY1+9DOpjMfbz0VLP873KmcbuvL4K3nseKTxc4TKHu8kLXRMw==";
+        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.8.0.tgz";
+        sha512 = "sYz5JElJMIlPoqhrRfG3VKnDjnPinLdblIiEVsJgTz1kj2hWD2q5BSbo+evH/5/jKDXDLfA8kb0lHC4vd5g5zg==";
       };
     };
     "vscode-jsonrpc-3.6.0" = {
@@ -47664,13 +48407,13 @@ 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.6.0.tgz";
-        sha512 = "GSgQtGmtza4PoNH0+iHWylWg/1sw2DODezqYWRxbN910dPchI3CQaSJN76csKcQGv55wsWgX82T6n74q8mFSpw==";
+        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz";
+        sha512 = "QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==";
       };
     };
     "vscode-nls-3.2.5" = {
@@ -47691,6 +48434,15 @@ let
         sha512 = "7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw==";
       };
     };
+    "vscode-test-1.4.0" = {
+      name = "vscode-test";
+      packageName = "vscode-test";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-test/-/vscode-test-1.4.0.tgz";
+        sha512 = "Jt7HNGvSE0+++Tvtq5wc4hiXLIr2OjDShz/gbAfM/mahQpy4rKBnmOK33D+MR67ATWviQhl+vpmU3p/qwSH/Pg==";
+      };
+    };
     "vscode-textbuffer-1.0.0" = {
       name = "vscode-textbuffer";
       packageName = "vscode-textbuffer";
@@ -47727,22 +48479,22 @@ let
         sha512 = "obtSWTlbJ+a+TFRYGaUumtVwb+InIUVI0Lu0VBUAPmj2cU5JutEXg3xUE0c2J5Tcy7h2DEKVJBFi+Y9ZSFzzPQ==";
       };
     };
-    "vscode-uri-2.1.1" = {
+    "vscode-uri-2.1.2" = {
       name = "vscode-uri";
       packageName = "vscode-uri";
-      version = "2.1.1";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.1.tgz";
-        sha512 = "eY9jmGoEnVf8VE8xr5znSah7Qt1P/xsCdErz+g8HYZtJ7bZqKH5E3d+6oVNm1AC/c6IHUDokbmVXKOi4qPAC9A==";
+        url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz";
+        sha512 = "8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==";
       };
     };
-    "vscode-web-custom-data-0.1.3" = {
+    "vscode-web-custom-data-0.1.4" = {
       name = "vscode-web-custom-data";
       packageName = "vscode-web-custom-data";
-      version = "0.1.3";
+      version = "0.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-web-custom-data/-/vscode-web-custom-data-0.1.3.tgz";
-        sha512 = "u9RdZ3aIjx5f0WYSb8EIcmo7trgrJk+bVfGDfjyBSlfG59XWg8xw/JVfHNpO5AklustCez3vixnGLAOWzhPkZg==";
+        url = "https://registry.npmjs.org/vscode-web-custom-data/-/vscode-web-custom-data-0.1.4.tgz";
+        sha512 = "EFS8t2g3gMjvYY3sTknzHaURQ5AnemMcnKriZx43w97bsmEfEPaBJwJpuj/Zx9k4SwK+97dRtkKb2lvWQ2v0rw==";
       };
     };
     "vstream-0.1.0" = {
@@ -47790,22 +48542,22 @@ let
         sha512 = "Bvjlx7rH1Ulvus56KHeLXOjEi3JMOYTa1GAqZr9lBQhd8weK8mV7U7V2l85yokBZEWHJQjLn6X3nosY8TzkOKg==";
       };
     };
-    "vue-eslint-parser-7.0.0" = {
+    "vue-eslint-parser-7.1.0" = {
       name = "vue-eslint-parser";
       packageName = "vue-eslint-parser";
-      version = "7.0.0";
+      version = "7.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.0.0.tgz";
-        sha512 = "yR0dLxsTT7JfD2YQo9BhnQ6bUTLsZouuzt9SKRP7XNaZJV459gvlsJo4vT2nhZ/2dH9j3c53bIx9dnqU2prM9g==";
+        url = "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.1.0.tgz";
+        sha512 = "Kr21uPfthDc63nDl27AGQEhtt9VrZ9nkYk/NTftJ2ws9XiJwzJJCnCr3AITQ2jpRMA0XPGDECxYH8E027qMK9Q==";
       };
     };
-    "vue-jscodeshift-adapter-2.0.3" = {
+    "vue-jscodeshift-adapter-2.1.0" = {
       name = "vue-jscodeshift-adapter";
       packageName = "vue-jscodeshift-adapter";
-      version = "2.0.3";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue-jscodeshift-adapter/-/vue-jscodeshift-adapter-2.0.3.tgz";
-        sha512 = "RXv0lrDG2CAx3yAQCoD9beU8nAoT3rhh/fgb+xlYM0Qlm+cpkWSLTdfOt1x2j2wHI08uEsi0q7x6rjhn54EbNA==";
+        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" = {
@@ -47871,15 +48623,6 @@ let
         sha512 = "ttGcuHA/OBnN2pcM6johpYlEms7XpO5/fyKIr48541xXedan4roO8cS1Q2S/zbbjGH/BarYDAMeS2Mi9HE5Tig==";
       };
     };
-    "walkdir-0.0.11" = {
-      name = "walkdir";
-      packageName = "walkdir";
-      version = "0.0.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz";
-        sha1 = "a16d025eb931bd03b52f308caed0f40fcebe9532";
-      };
-    };
     "walker-1.0.7" = {
       name = "walker";
       packageName = "walker";
@@ -47907,13 +48650,22 @@ let
         sha1 = "340a717bde765726fa0aa07d721e0147a551df0c";
       };
     };
-    "watchpack-1.6.1" = {
+    "watchpack-1.7.4" = {
       name = "watchpack";
       packageName = "watchpack";
-      version = "1.6.1";
+      version = "1.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz";
+        sha512 = "aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==";
+      };
+    };
+    "watchpack-chokidar2-2.0.0" = {
+      name = "watchpack-chokidar2";
+      packageName = "watchpack-chokidar2";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz";
-        sha512 = "+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==";
+        url = "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz";
+        sha512 = "9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==";
       };
     };
     "watershed-0.3.4" = {
@@ -47952,6 +48704,15 @@ let
         sha1 = "7137946585c73fe44882013853bd000c5d687a4e";
       };
     };
+    "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.3" = {
       name = "web-push";
       packageName = "web-push";
@@ -47961,13 +48722,13 @@ let
         sha512 = "nt/hRSlfRDTwvem//7jle1+cy62lBoxFshad8ai2Q4SlHZS00oHnrw5Dul3jSWXR+bOcnZkwnRs3tW+daNTuyA==";
       };
     };
-    "web-tree-sitter-0.16.2" = {
+    "web-tree-sitter-0.16.4" = {
       name = "web-tree-sitter";
       packageName = "web-tree-sitter";
-      version = "0.16.2";
+      version = "0.16.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.16.2.tgz";
-        sha512 = "vxZHqu4nItCARmE+oGvTgjFBrMbhEuGI9PWYSgF4ET/nLuW3K11KQQIVhAsoGtYvTI9jdbjc/THj38P7nhYwow==";
+        url = "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.16.4.tgz";
+        sha512 = "n1CfuJcJ+dynIx/fmavB6haPx37N3GZvY5HIGIselymDiSwNRC+8pAxOzoB4eVwUBJnbP3+aA8vWttrAZbgs7A==";
       };
     };
     "webassemblyjs-1.9.0" = {
@@ -48015,13 +48776,22 @@ let
         sha512 = "GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==";
       };
     };
-    "webpack-cli-3.3.11" = {
+    "webpack-4.44.1" = {
+      name = "webpack";
+      packageName = "webpack";
+      version = "4.44.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz";
+        sha512 = "4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==";
+      };
+    };
+    "webpack-cli-3.3.12" = {
       name = "webpack-cli";
       packageName = "webpack-cli";
-      version = "3.3.11";
+      version = "3.3.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz";
-        sha512 = "dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==";
+        url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz";
+        sha512 = "NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==";
       };
     };
     "webpack-core-0.6.9" = {
@@ -48051,6 +48821,15 @@ let
         sha512 = "cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==";
       };
     };
+    "webpack-node-externals-1.7.2" = {
+      name = "webpack-node-externals";
+      packageName = "webpack-node-externals";
+      version = "1.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz";
+        sha512 = "ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg==";
+      };
+    };
     "webpack-sources-1.4.3" = {
       name = "webpack-sources";
       packageName = "webpack-sources";
@@ -48060,22 +48839,40 @@ let
         sha512 = "lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==";
       };
     };
-    "websocket-driver-0.7.3" = {
+    "websocket-1.0.31" = {
+      name = "websocket";
+      packageName = "websocket";
+      version = "1.0.31";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz";
+        sha512 = "VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==";
+      };
+    };
+    "websocket-driver-0.6.5" = {
       name = "websocket-driver";
       packageName = "websocket-driver";
-      version = "0.7.3";
+      version = "0.6.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz";
-        sha512 = "bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==";
+        url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz";
+        sha1 = "5cb2556ceb85f4373c6d8238aa691c8454e13a36";
       };
     };
-    "websocket-extensions-0.1.3" = {
+    "websocket-driver-0.7.4" = {
+      name = "websocket-driver";
+      packageName = "websocket-driver";
+      version = "0.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz";
+        sha512 = "b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==";
+      };
+    };
+    "websocket-extensions-0.1.4" = {
       name = "websocket-extensions";
       packageName = "websocket-extensions";
-      version = "0.1.3";
+      version = "0.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz";
-        sha512 = "nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==";
+        url = "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz";
+        sha512 = "OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==";
       };
     };
     "websocket-stream-5.5.2" = {
@@ -48087,13 +48884,13 @@ let
         sha512 = "8z49MKIHbGk3C4HtuHWDtYX8mYej1wWabjthC/RupM9ngeukU4IWoM46dgth1UOS/T4/IqgEdCDJuMe2039OQQ==";
       };
     };
-    "webtorrent-0.108.1" = {
+    "webtorrent-0.108.6" = {
       name = "webtorrent";
       packageName = "webtorrent";
-      version = "0.108.1";
+      version = "0.108.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webtorrent/-/webtorrent-0.108.1.tgz";
-        sha512 = "+w6JaqGKZBZHVrYLmG2VDuRLZlUhQrkLXw0/nw3VKV4aloICWGwBKzjLclXmexUhnqeVzZjCRIQgSZ8+YmgJUQ==";
+        url = "https://registry.npmjs.org/webtorrent/-/webtorrent-0.108.6.tgz";
+        sha512 = "hkwjMQTbBiwdJn3vEVjOyNwKZISp6r4GEl/J0N6Ukw2oeaETIylvAlf7G0o+a9FcFMThBIle0iCPYLTwumCOaQ==";
       };
     };
     "whatwg-encoding-1.0.5" = {
@@ -48105,22 +48902,22 @@ let
         sha512 = "b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==";
       };
     };
-    "whatwg-fetch-2.0.4" = {
+    "whatwg-fetch-3.0.0" = {
       name = "whatwg-fetch";
       packageName = "whatwg-fetch";
-      version = "2.0.4";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz";
-        sha512 = "dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==";
+        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz";
+        sha512 = "9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==";
       };
     };
-    "whatwg-fetch-3.0.0" = {
+    "whatwg-fetch-3.3.1" = {
       name = "whatwg-fetch";
       packageName = "whatwg-fetch";
-      version = "3.0.0";
+      version = "3.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz";
-        sha512 = "9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==";
+        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.3.1.tgz";
+        sha512 = "faXTmGDcLuEPBpJwb5LQfyxvubKiE+RlbmmweFGKjvIPFj4uHTTfdtTIkdTRhC6OSH9S9eyYbx8kZ0UEaQqYTA==";
       };
     };
     "whatwg-mimetype-2.3.0" = {
@@ -48150,13 +48947,13 @@ let
         sha512 = "WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==";
       };
     };
-    "whatwg-url-8.0.0" = {
+    "whatwg-url-8.1.0" = {
       name = "whatwg-url";
       packageName = "whatwg-url";
-      version = "8.0.0";
+      version = "8.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.0.0.tgz";
-        sha512 = "41ou2Dugpij8/LPO5Pq64K5q++MnRCBpEHvQr26/mArEKTkCV5aoXIqyhuYtE0pkqScXwhf2JP57rkRTYM29lQ==";
+        url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.1.0.tgz";
+        sha512 = "vEIkwNi9Hqt4TV9RdnaBPNt+E2Sgmo3gePebCRgZ1R7g6d23+53zCTnuB0amKI4AXq6VM8jj2DUAa0S1vjJxkw==";
       };
     };
     "whatwg-url-compat-0.6.5" = {
@@ -48339,15 +49136,6 @@ let
         sha1 = "8f58e0656fca00adc8c86a2b89e3cd2d6a2d5e5e";
       };
     };
-    "win-user-installed-npm-cli-path-3.0.1" = {
-      name = "win-user-installed-npm-cli-path";
-      packageName = "win-user-installed-npm-cli-path";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/win-user-installed-npm-cli-path/-/win-user-installed-npm-cli-path-3.0.1.tgz";
-        sha512 = "Us1ZlMmWDInXihJ+SWP8/L0ArqsLqPtWK9Q67x6+q+z7C2c22viVgCmbH+x0BeMsosmPS9OKHvka519XbO51Rw==";
-      };
-    };
     "window-size-0.1.0" = {
       name = "window-size";
       packageName = "window-size";
@@ -48384,13 +49172,13 @@ let
         sha1 = "91e5129088330a0fe248520cee12d1ad6bb4ddfb";
       };
     };
-    "windows-release-3.3.0" = {
+    "windows-release-3.3.1" = {
       name = "windows-release";
       packageName = "windows-release";
-      version = "3.3.0";
+      version = "3.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/windows-release/-/windows-release-3.3.0.tgz";
-        sha512 = "2HetyTg1Y+R+rUgrKeUEhAG/ZuOmTrI1NBb3ZyAGQMYmOJjBBPe4MTodghRkmLJZHwkuPi02anbeGP+Zf401LQ==";
+        url = "https://registry.npmjs.org/windows-release/-/windows-release-3.3.1.tgz";
+        sha512 = "Pngk/RDCaI/DkuHPlGTdIkDiTAnAkyMjoQMZqRsxydNl1qGXNIoZrB7RK8g53F2tEgQBMqQJHQdYZuQEEAu54A==";
       };
     };
     "winreg-0.0.12" = {
@@ -48456,13 +49244,13 @@ let
         sha1 = "3c9349d196207fd1bdff9d4bc43ef72510e3a12e";
       };
     };
-    "winston-2.4.4" = {
+    "winston-2.4.5" = {
       name = "winston";
       packageName = "winston";
-      version = "2.4.4";
+      version = "2.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston/-/winston-2.4.4.tgz";
-        sha512 = "NBo2Pepn4hK4V01UfcWcDlmiVTs7VTB1h7bgnB0rgP146bYhMxX0ypCz3lBOfNxCO4Zuek7yeT+y/zM1OfMw4Q==";
+        url = "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz";
+        sha512 = "TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==";
       };
     };
     "winston-3.2.1" = {
@@ -48474,13 +49262,22 @@ let
         sha512 = "zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==";
       };
     };
-    "winston-transport-4.3.0" = {
+    "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";
-      version = "4.3.0";
+      version = "4.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.3.0.tgz";
-        sha512 = "B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A==";
+        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz";
+        sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==";
       };
     };
     "with-5.1.1" = {
@@ -48555,6 +49352,15 @@ let
         sha512 = "rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==";
       };
     };
+    "workerpool-6.0.0" = {
+      name = "workerpool";
+      packageName = "workerpool";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz";
+        sha512 = "fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==";
+      };
+    };
     "wrap-ansi-2.1.0" = {
       name = "wrap-ansi";
       packageName = "wrap-ansi";
@@ -48600,6 +49406,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";
@@ -48753,22 +49568,13 @@ let
         sha512 = "GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==";
       };
     };
-    "ws-7.2.3" = {
+    "ws-7.3.1" = {
       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.2.5" = {
-      name = "ws";
-      packageName = "ws";
-      version = "7.2.5";
+      version = "7.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.2.5.tgz";
-        sha512 = "C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA==";
+        url = "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz";
+        sha512 = "D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==";
       };
     };
     "x-default-browser-0.3.1" = {
@@ -48789,15 +49595,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";
@@ -49050,6 +49847,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";
@@ -49065,7 +49871,7 @@ let
       version = "1.5.0";
       src = fetchurl {
         name = "xmlhttprequest-1.5.0.tar.gz";
-        url = "https://codeload.github.com/LearnBoost/node-XMLHttpRequest/tar.gz/0f36d0b5ebc03d85f860d42a64ae9791e1daa433";
+        url = https://codeload.github.com/LearnBoost/node-XMLHttpRequest/tar.gz/0f36d0b5ebc03d85f860d42a64ae9791e1daa433;
         sha256 = "28dd0394d85befe8be4e9cd9f6803102780c62cbb09298cb174b52ff9777624f";
       };
     };
@@ -49087,6 +49893,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";
@@ -49114,15 +49929,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";
@@ -49141,13 +49947,22 @@ let
         sha1 = "f164263325ae671f53836fb210c7ddbcfda46598";
       };
     };
-    "xstream-11.11.0" = {
+    "xss-1.0.8" = {
+      name = "xss";
+      packageName = "xss";
+      version = "1.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xss/-/xss-1.0.8.tgz";
+        sha512 = "3MgPdaXV8rfQ/pNn16Eio6VXYPTkqwa0vc7GkiymmY/DqR1SE/7VPAAVZz1GJsJFrllMYO3RHfEaiUGjab6TNw==";
+      };
+    };
+    "xstream-11.12.0" = {
       name = "xstream";
       packageName = "xstream";
-      version = "11.11.0";
+      version = "11.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xstream/-/xstream-11.11.0.tgz";
-        sha512 = "0zF3PLsHrmbToPBgX1jYZFNw+t5octSFJgVRH44HGlGBBjY7gscvDQOZvty8IQV15Snia1RcLPECWDfEaE4aXg==";
+        url = "https://registry.npmjs.org/xstream/-/xstream-11.12.0.tgz";
+        sha512 = "rceZqhyRPJdmDNh8hyFEnOacNrL4pTVkNZzoLvFqOVaIZHbM3bS15ycqI5V9eJXCRMfgEapwzcNzPjkIRUkv2Q==";
       };
     };
     "xtend-2.1.2" = {
@@ -49195,6 +50010,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";
@@ -49222,13 +50046,13 @@ let
         sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
       };
     };
-    "yaml-ast-parser-0.0.40" = {
-      name = "yaml-ast-parser";
-      packageName = "yaml-ast-parser";
-      version = "0.0.40";
+    "yaml-1.10.0" = {
+      name = "yaml";
+      packageName = "yaml";
+      version = "1.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.40.tgz";
-        sha1 = "08536d4e73d322b1c9ce207ab8dd70e04d20ae6e";
+        url = "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz";
+        sha512 = "yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==";
       };
     };
     "yaml-ast-parser-0.0.43" = {
@@ -49294,15 +50118,6 @@ let
         sha1 = "054de8b61f22eefdb7207059eaef9d6b83fb931a";
       };
     };
-    "yargs-10.1.2" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "10.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz";
-        sha512 = "ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==";
-      };
-    };
     "yargs-11.1.1" = {
       name = "yargs";
       packageName = "yargs";
@@ -49330,15 +50145,6 @@ let
         sha512 = "Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==";
       };
     };
-    "yargs-13.2.4" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "13.2.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz";
-        sha512 = "HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==";
-      };
-    };
     "yargs-13.3.2" = {
       name = "yargs";
       packageName = "yargs";
@@ -49357,22 +50163,22 @@ let
         sha512 = "ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==";
       };
     };
-    "yargs-15.1.0" = {
+    "yargs-15.3.1" = {
       name = "yargs";
       packageName = "yargs";
-      version = "15.1.0";
+      version = "15.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-15.1.0.tgz";
-        sha512 = "T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg==";
+        url = "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz";
+        sha512 = "92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==";
       };
     };
-    "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" = {
@@ -49411,22 +50217,13 @@ let
         sha1 = "782ec21ef403345f830a808ca3d513af56065208";
       };
     };
-    "yargs-7.1.0" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "7.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz";
-        sha1 = "6ba318eb16961727f5d284f8ea003e8d6154d0c8";
-      };
-    };
-    "yargs-8.0.2" = {
+    "yargs-7.1.1" = {
       name = "yargs";
       packageName = "yargs";
-      version = "8.0.2";
+      version = "7.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz";
-        sha1 = "6299a9055b1cefc969ff7e79c1d918dceb22c360";
+        url = "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz";
+        sha512 = "huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==";
       };
     };
     "yargs-parser-10.1.0" = {
@@ -49447,15 +50244,6 @@ let
         sha512 = "C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==";
       };
     };
-    "yargs-parser-13.0.0" = {
-      name = "yargs-parser";
-      packageName = "yargs-parser";
-      version = "13.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz";
-        sha512 = "w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==";
-      };
-    };
     "yargs-parser-13.1.2" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
@@ -49474,15 +50262,6 @@ let
         sha512 = "0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==";
       };
     };
-    "yargs-parser-16.1.0" = {
-      name = "yargs-parser";
-      packageName = "yargs-parser";
-      version = "16.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz";
-        sha512 = "H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==";
-      };
-    };
     "yargs-parser-18.1.3" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
@@ -49510,13 +50289,13 @@ let
         sha1 = "29cceac0dc4f03c6c87b4a9f217dd18c9f74871c";
       };
     };
-    "yargs-parser-5.0.0" = {
+    "yargs-parser-5.0.0-security.0" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
-      version = "5.0.0";
+      version = "5.0.0-security.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz";
-        sha1 = "275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a";
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz";
+        sha512 = "T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==";
       };
     };
     "yargs-parser-7.0.0" = {
@@ -49528,15 +50307,6 @@ let
         sha1 = "8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9";
       };
     };
-    "yargs-parser-8.1.0" = {
-      name = "yargs-parser";
-      packageName = "yargs-parser";
-      version = "8.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz";
-        sha512 = "yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==";
-      };
-    };
     "yargs-parser-9.0.2" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
@@ -49546,13 +50316,13 @@ 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" = {
@@ -49618,22 +50388,22 @@ let
         sha512 = "CP0fwGk5Y+jel+A0AQbyqnIFZRRpkKOeYUibiTSmlgV9PcgNFFVwn86VcUIpDLOqVjF+9v+O9FWQMo+IUcV2mA==";
       };
     };
-    "yeoman-environment-2.10.0" = {
+    "yeoman-environment-2.10.3" = {
       name = "yeoman-environment";
       packageName = "yeoman-environment";
-      version = "2.10.0";
+      version = "2.10.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.10.0.tgz";
-        sha512 = "dn754zZm1kTWS94V5riNLNjs9Wn6Zjl+9jgbQ37EmHEhcRR30fY1sgBnhYZyTpa+zK7ipFI6dMH9Sg0SAMW3hw==";
+        url = "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.10.3.tgz";
+        sha512 = "pLIhhU9z/G+kjOXmJ2bPFm3nejfbH+f1fjYRSOteEXDBrv1EoJE/e+kuHixSXfCYfTkxjYsvRaDX+1QykLCnpQ==";
       };
     };
-    "yeoman-generator-4.10.0" = {
+    "yeoman-generator-4.11.0" = {
       name = "yeoman-generator";
       packageName = "yeoman-generator";
-      version = "4.10.0";
+      version = "4.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.10.0.tgz";
-        sha512 = "NuY9bt7r6kvjvWjAVcujZwHux5xXy4Vdmz3uabyjioh679ry97+dl+MgtlAkgdSQ7kGI0Iz1GC92tZ33XdxaDw==";
+        url = "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.11.0.tgz";
+        sha512 = "++t6t2Z6HjL5F1/UM7+uNvGknKmQdF8tstJx8WKzsUSEpB+19kLVtapSfQIh9uWqm0L59fLWDzUui//WXoynPw==";
       };
     };
     "yn-3.1.1" = {
@@ -49645,13 +50415,13 @@ let
         sha512 = "Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==";
       };
     };
-    "yoga-layout-prebuilt-1.9.5" = {
+    "yoga-layout-prebuilt-1.9.6" = {
       name = "yoga-layout-prebuilt";
       packageName = "yoga-layout-prebuilt";
-      version = "1.9.5";
+      version = "1.9.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yoga-layout-prebuilt/-/yoga-layout-prebuilt-1.9.5.tgz";
-        sha512 = "+G5Ojl4/sG78mk5masCL3SRaZtkKXRBhMGf5c+4C1j32jN9KpS4lxVFdYyBi15EHN4gMeK5sIRf83T33TOaDkA==";
+        url = "https://registry.npmjs.org/yoga-layout-prebuilt/-/yoga-layout-prebuilt-1.9.6.tgz";
+        sha512 = "Wursw6uqLXLMjBAO4SEShuzj8+EJXhCF71/rJ7YndHTkRAYSU0GY3OghRqfAk9HPUAAFMuqp3U1Wl+01vmGRQQ==";
       };
     };
     "yosay-2.0.2" = {
@@ -49735,6 +50505,15 @@ let
         sha512 = "EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==";
       };
     };
+    "zip-stream-3.0.1" = {
+      name = "zip-stream";
+      packageName = "zip-stream";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/zip-stream/-/zip-stream-3.0.1.tgz";
+        sha512 = "r+JdDipt93ttDjsOVPU5zaq5bAyY+3H19bDrThkvuVxC0xMQzU1PJcS6D+KrP3u96gH9XLomcHPb+2skoDjulQ==";
+      };
+    };
     "zmq-2.15.3" = {
       name = "zmq";
       packageName = "zmq";
@@ -49759,23 +50538,23 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "9.1.4";
+    version = "10.0.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-9.1.4.tgz";
-      sha512 = "H9MqoT4zyIv+Yo3cvRVkzafWGHsqt7jUvtvGwMHIDMTfEX+Q8yiYlDLL6WM3Eb6/hDmLcRGC/GI495sKS1z5qA==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-10.0.5.tgz";
+      sha512 = "Qsa90IGPApJS9HL6Ih7Z8S8mIdriWYEintsT9cfI0WMVYyjvSNZQBf1SvnNU3IEboV4RFnpfXJNmQz1Q4KsRFQ==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.901.4"
-      sources."@angular-devkit/core-9.1.4"
-      sources."@angular-devkit/schematics-9.1.4"
-      sources."@schematics/angular-9.1.4"
-      sources."@schematics/update-0.901.4"
+      sources."@angular-devkit/architect-0.1000.5"
+      sources."@angular-devkit/core-10.0.5"
+      sources."@angular-devkit/schematics-10.0.5"
+      sources."@schematics/angular-10.0.5"
+      sources."@schematics/update-0.1000.5"
       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.0"
+      sources."ajv-6.12.3"
       sources."ansi-colors-4.1.1"
       sources."ansi-escapes-4.3.1"
       sources."ansi-regex-5.0.0"
@@ -49786,7 +50565,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bluebird-3.7.2"
@@ -49795,7 +50574,9 @@ 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"
@@ -49803,7 +50584,7 @@ in
       sources."chardet-0.7.0"
       sources."chownr-1.1.4"
       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."clone-1.0.4"
       sources."color-convert-2.0.1"
@@ -49828,10 +50609,14 @@ 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.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
@@ -49839,7 +50624,7 @@ in
       sources."extend-3.0.2"
       sources."external-editor-3.1.0"
       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."figgy-pudding-3.5.2"
       sources."figures-3.2.0"
@@ -49857,11 +50642,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 = [
@@ -49886,12 +50671,12 @@ in
       sources."ini-1.3.5"
       sources."inquirer-7.1.0"
       sources."ip-1.1.5"
-      sources."is-callable-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.0.5"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
       sources."is-wsl-2.2.0"
@@ -49905,7 +50690,7 @@ 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.19"
       (sources."log-symbols-3.0.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -49916,15 +50701,24 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."lru-cache-5.1.1"
+      sources."lru-cache-6.0.0"
       sources."magic-string-0.25.7"
-      sources."make-fetch-happen-5.0.2"
+      (sources."make-fetch-happen-5.0.2" // {
+        dependencies = [
+          sources."lru-cache-5.1.1"
+          sources."yallist-3.1.1"
+        ];
+      })
       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"
@@ -49947,33 +50741,37 @@ in
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-package-arg-8.0.1"
       sources."npm-packlist-1.4.8"
-      sources."npm-pick-manifest-6.0.0"
-      (sources."npm-registry-fetch-4.0.4" // {
+      sources."npm-pick-manifest-6.1.0"
+      (sources."npm-registry-fetch-4.0.5" // {
         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"
-      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."once-1.4.0"
-      sources."onetime-5.1.0"
-      sources."open-7.0.3"
-      sources."ora-4.0.3"
+      sources."onetime-5.1.1"
+      sources."open-7.0.4"
+      sources."ora-4.0.4"
       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"
@@ -50012,10 +50810,10 @@ in
       sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
       sources."run-queue-1.0.3"
-      sources."rxjs-6.5.4"
-      sources."safe-buffer-5.2.0"
+      sources."rxjs-6.5.5"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.1.3"
+      sources."semver-7.3.2"
       (sources."semver-intersect-1.4.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -50031,9 +50829,9 @@ in
       })
       sources."source-map-0.7.3"
       sources."sourcemap-codec-1.4.8"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."sshpk-1.16.1"
       sources."ssri-6.0.1"
@@ -50041,8 +50839,6 @@ in
       sources."stream-shift-1.0.1"
       sources."string-width-4.2.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.1.1" // {
         dependencies = [
@@ -50052,12 +50848,16 @@ in
       sources."strip-ansi-6.0.0"
       sources."supports-color-7.1.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"
       sources."tough-cookie-2.5.0"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-fest-0.11.0"
@@ -50073,7 +50873,7 @@ in
       sources."uri-js-4.2.2"
       sources."util-deprecate-1.0.2"
       sources."util-promisify-2.1.0"
-      sources."uuid-7.0.2"
+      sources."uuid-8.1.0"
       sources."validate-npm-package-license-3.0.4"
       sources."validate-npm-package-name-3.0.0"
       sources."verror-1.10.0"
@@ -50082,12 +50882,12 @@ 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 = {
       description = "CLI tool for Angular";
-      homepage = "https://github.com/angular/angular-cli";
+      homepage = https://github.com/angular/angular-cli;
       license = "MIT";
     };
     production = true;
@@ -50097,40 +50897,34 @@ in
   "@antora/cli" = nodeEnv.buildNodePackage {
     name = "_at_antora_slash_cli";
     packageName = "@antora/cli";
-    version = "2.3.1";
+    version = "2.3.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@antora/cli/-/cli-2.3.1.tgz";
-      sha512 = "AtqlCYdlvwfRUtqaSzjR3Ji4WpCHq/AyD+rcagD3lg/WGiZdwgppiy4Oj36s7rUfR0SDl5GIIWmA5zdDSBRNvw==";
+      url = "https://registry.npmjs.org/@antora/cli/-/cli-2.3.3.tgz";
+      sha512 = "mWxMMWKzTmhmTgAeAVestZf4CRcC4lBD5l521J2fsdGpGx9dQGiwqQZqNcwROJDE+Lg0YfXYYqP1UUKhZwYz6Q==";
     };
     dependencies = [
-      sources."@antora/playbook-builder-2.3.1"
+      sources."@antora/playbook-builder-2.3.3"
       sources."@iarna/toml-2.2.5"
       sources."argparse-1.0.10"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
       sources."commander-5.1.0"
-      (sources."convict-5.2.0" // {
-        dependencies = [
-          sources."json5-2.1.0"
-        ];
-      })
+      sources."convict-6.0.0"
       sources."decamelize-1.2.0"
       sources."esprima-4.0.1"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."json5-2.1.3"
       sources."lodash.clonedeep-4.5.0"
       sources."map-obj-4.1.0"
       sources."minimist-1.2.5"
-      sources."moment-2.24.0"
       sources."quick-lru-4.0.1"
       sources."sprintf-js-1.0.3"
-      sources."validator-11.1.0"
-      sources."yargs-parser-13.0.0"
+      sources."yargs-parser-18.1.3"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "The command line interface for Antora.";
-      homepage = "https://antora.org/";
+      homepage = https://antora.org/;
       license = "MPL-2.0";
     };
     production = true;
@@ -50140,31 +50934,31 @@ in
   "@antora/site-generator-default" = nodeEnv.buildNodePackage {
     name = "_at_antora_slash_site-generator-default";
     packageName = "@antora/site-generator-default";
-    version = "2.3.1";
+    version = "2.3.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@antora/site-generator-default/-/site-generator-default-2.3.1.tgz";
-      sha512 = "uAt6pCfMfTs2m+IUZjcivN4fDmt2D3C2lI9dfWAkAe2P9vIY7oZuVqCuBQfAwnkJg8mOTk0J2gLEyspbRDsK7w==";
+      url = "https://registry.npmjs.org/@antora/site-generator-default/-/site-generator-default-2.3.3.tgz";
+      sha512 = "kY2j2gsBo1U4Jn+WqK09chsFgXbbUvafgqGo3SzFDdjpsG/NvIylLK3g+bbZ0X9N7FysXytlAhyAYlOJDvXjGw==";
     };
     dependencies = [
-      sources."@antora/asciidoc-loader-2.3.1"
-      sources."@antora/content-aggregator-2.3.1"
-      sources."@antora/content-classifier-2.3.1"
-      sources."@antora/document-converter-2.3.1"
+      sources."@antora/asciidoc-loader-2.3.3"
+      sources."@antora/content-aggregator-2.3.3"
+      sources."@antora/content-classifier-2.3.3"
+      sources."@antora/document-converter-2.3.3"
       sources."@antora/expand-path-helper-1.0.0"
-      sources."@antora/navigation-builder-2.3.1"
-      sources."@antora/page-composer-2.3.1"
-      sources."@antora/playbook-builder-2.3.1"
-      sources."@antora/redirect-producer-2.3.1"
-      sources."@antora/site-mapper-2.3.1"
-      sources."@antora/site-publisher-2.3.1"
-      sources."@antora/ui-loader-2.3.1"
+      sources."@antora/navigation-builder-2.3.3"
+      sources."@antora/page-composer-2.3.3"
+      sources."@antora/playbook-builder-2.3.3"
+      sources."@antora/redirect-producer-2.3.3"
+      sources."@antora/site-mapper-2.3.3"
+      sources."@antora/site-publisher-2.3.3"
+      sources."@antora/ui-loader-2.3.3"
       sources."@iarna/toml-2.2.5"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."append-buffer-1.0.2"
       sources."argparse-1.0.10"
       sources."asciidoctor.js-1.5.9"
-      sources."async-lock-1.2.2"
+      sources."async-lock-1.2.4"
       sources."balanced-match-1.0.0"
       sources."base64-js-0.0.2"
       sources."bl-4.0.2"
@@ -50204,18 +50998,13 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."commander-2.20.3"
       sources."concat-map-0.0.1"
       (sources."convert-source-map-1.7.0" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
         ];
       })
-      (sources."convict-5.2.0" // {
-        dependencies = [
-          sources."json5-2.1.0"
-        ];
-      })
+      sources."convict-6.0.0"
       sources."core-util-is-1.0.2"
       sources."crc-32-1.2.0"
       sources."decamelize-1.2.0"
@@ -50281,7 +51070,7 @@ in
         ];
       })
       sources."graceful-fs-4.2.4"
-      (sources."gulp-vinyl-zip-2.2.0" // {
+      (sources."gulp-vinyl-zip-2.2.1" // {
         dependencies = [
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
@@ -50293,7 +51082,7 @@ in
       sources."has-symbols-1.0.1"
       sources."http-cache-semantics-4.1.0"
       sources."ieee754-1.1.13"
-      sources."ignore-5.1.4"
+      sources."ignore-5.1.8"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-absolute-1.0.0"
@@ -50309,7 +51098,7 @@ in
       sources."is-windows-1.0.2"
       sources."isarray-1.0.0"
       sources."isomorphic-git-0.78.5"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."json-buffer-3.0.0"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."json5-2.1.3"
@@ -50334,10 +51123,9 @@ in
       sources."minimatch-3.0.4"
       sources."minimatch-all-1.1.0"
       sources."minimist-1.2.5"
-      sources."minimisted-2.0.0"
-      sources."moment-2.24.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"
@@ -50389,16 +51177,16 @@ in
       sources."require-from-string-2.0.2"
       sources."resolve-options-1.1.0"
       sources."responselike-1.0.2"
-      sources."safe-buffer-5.2.0"
+      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"
       sources."stream-shift-1.0.1"
       sources."string_decoder-1.3.0"
       sources."through-2.3.8"
-      sources."through2-3.0.1"
+      sources."through2-3.0.2"
       (sources."through2-filter-3.0.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
@@ -50419,13 +51207,12 @@ in
         ];
       })
       sources."to-utf8-0.0.1"
-      sources."uglify-js-3.9.2"
+      sources."uglify-js-3.10.1"
       sources."unc-path-regex-0.1.2"
       sources."unique-stream-2.3.1"
       sources."universalify-0.1.2"
       sources."url-parse-lax-3.0.0"
       sources."util-deprecate-1.0.2"
-      sources."validator-11.1.0"
       sources."value-or-function-3.0.0"
       sources."varint-0.0.3"
       sources."vinyl-2.2.0"
@@ -50443,14 +51230,14 @@ in
       sources."xdg-basedir-3.0.0"
       sources."xmlhttprequest-1.8.0"
       sources."xtend-4.0.2"
-      sources."yargs-parser-13.0.0"
+      sources."yargs-parser-18.1.3"
       sources."yauzl-2.10.0"
       sources."yazl-2.5.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "The default site generator pipeline for producing and publishing static documentation sites with Antora.";
-      homepage = "https://antora.org/";
+      homepage = https://antora.org/;
       license = "MPL-2.0";
     };
     production = true;
@@ -50460,18 +51247,18 @@ in
   "@bitwarden/cli" = nodeEnv.buildNodePackage {
     name = "_at_bitwarden_slash_cli";
     packageName = "@bitwarden/cli";
-    version = "1.9.1";
+    version = "1.11.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@bitwarden/cli/-/cli-1.9.1.tgz";
-      sha512 = "M/6JQyL9s0xVFhRNTdSShifja5ZTDtgjyR3byAg0/KiIjmrCdTonl3CM85JcJtjJVqnsbJLhU4kOxL/XA458Wg==";
+      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.3"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
@@ -50481,7 +51268,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."bcrypt-pbkdf-1.0.2"
       sources."big-integer-1.6.36"
       sources."browser-process-hrtime-1.0.0"
@@ -50499,20 +51286,20 @@ in
       sources."cssstyle-1.4.0"
       sources."dashdash-1.14.1"
       sources."data-urls-1.1.0"
-      sources."debug-4.1.1"
+      sources."debug-4.2.0"
       sources."deep-is-0.1.3"
       sources."delayed-stream-1.0.0"
       sources."domexception-1.0.1"
       sources."ecc-jsbn-0.1.2"
       sources."escape-string-regexp-1.0.5"
-      sources."escodegen-1.14.1"
+      sources."escodegen-1.14.3"
       sources."esprima-4.0.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."extend-3.0.2"
       sources."external-editor-3.1.0"
       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-levenshtein-2.0.6"
       sources."figures-2.0.0"
@@ -50521,7 +51308,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"
@@ -50539,7 +51326,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.19"
       sources."lodash.sortby-4.7.0"
       sources."lowdb-1.0.0"
       sources."lunr-2.3.3"
@@ -50565,12 +51352,12 @@ 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."safe-buffer-5.2.0"
+      sources."rxjs-6.6.2"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."saxes-3.1.11"
       sources."signal-exit-3.0.3"
@@ -50591,7 +51378,7 @@ in
       sources."tmp-0.0.33"
       sources."tough-cookie-2.5.0"
       sources."tr46-1.0.1"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
@@ -50613,230 +51400,942 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "A secure and free password manager for all of your devices.";
-      homepage = "https://bitwarden.com/";
+      homepage = https://bitwarden.com/;
       license = "GPL-3.0";
     };
     production = true;
     bypassCache = true;
     reconstructLock = true;
   };
-  "@vue/cli" = nodeEnv.buildNodePackage {
-    name = "_at_vue_slash_cli";
-    packageName = "@vue/cli";
-    version = "4.3.1";
+  "@nestjs/cli" = nodeEnv.buildNodePackage {
+    name = "_at_nestjs_slash_cli";
+    packageName = "@nestjs/cli";
+    version = "7.4.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@vue/cli/-/cli-4.3.1.tgz";
-      sha512 = "K4oxL3/RLKrS53r9hr7mvtDDURCnuiMIaoOPa65TU8kVmEXohdebMAKUmHebk/yENPtBIdpQ9YankV/TWjRMhQ==";
+      url = "https://registry.npmjs.org/@nestjs/cli/-/cli-7.4.1.tgz";
+      sha512 = "90IWWqDIPX3M0vwkmnZ0Ct/EY2b75DYbsw2ZbVxaj57ASdbajhS7Pxhc7MC/L+07nBge+xMRHvQRoKdcfWHd0w==";
     };
     dependencies = [
-      sources."@akryum/winattr-3.0.0"
-      sources."@apollo/federation-0.14.1"
-      (sources."@apollo/protobufjs-1.0.3" // {
+      sources."@angular-devkit/core-9.1.9"
+      (sources."@angular-devkit/schematics-9.1.9" // {
         dependencies = [
-          sources."@types/node-10.17.21"
+          sources."ora-4.0.3"
         ];
       })
-      sources."@apollographql/apollo-tools-0.4.7"
-      sources."@apollographql/graphql-language-service-interface-2.0.2"
-      sources."@apollographql/graphql-language-service-parser-2.0.2"
-      sources."@apollographql/graphql-language-service-types-2.0.2"
-      sources."@apollographql/graphql-language-service-utils-2.0.2"
-      sources."@apollographql/graphql-playground-html-1.6.24"
-      sources."@babel/code-frame-7.8.3"
-      (sources."@babel/compat-data-7.9.6" // {
+      (sources."@angular-devkit/schematics-cli-0.901.9" // {
         dependencies = [
-          sources."semver-5.7.1"
+          sources."inquirer-7.1.0"
         ];
       })
-      (sources."@babel/core-7.9.6" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
-          sources."@babel/generator-7.9.6"
-          sources."@babel/types-7.9.6"
-          sources."semver-5.7.1"
+          sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/generator-7.9.5"
-      sources."@babel/helper-annotate-as-pure-7.8.3"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.8.3"
-      (sources."@babel/helper-compilation-targets-7.9.6" // {
+      (sources."@nestjs/schematics-7.0.1" // {
         dependencies = [
-          sources."semver-5.7.1"
+          sources."@angular-devkit/core-9.1.7"
+          sources."@angular-devkit/schematics-9.1.7"
+          sources."ora-4.0.3"
+        ];
+      })
+      sources."@schematics/schematics-0.901.9"
+      sources."@types/anymatch-1.3.1"
+      sources."@types/color-name-1.1.1"
+      sources."@types/json5-0.0.29"
+      sources."@types/node-14.0.27"
+      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.3" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."@types/webpack-4.41.17" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      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"
+      sources."@webassemblyjs/helper-buffer-1.9.0"
+      sources."@webassemblyjs/helper-code-frame-1.9.0"
+      sources."@webassemblyjs/helper-fsm-1.9.0"
+      sources."@webassemblyjs/helper-module-context-1.9.0"
+      sources."@webassemblyjs/helper-wasm-bytecode-1.9.0"
+      sources."@webassemblyjs/helper-wasm-section-1.9.0"
+      sources."@webassemblyjs/ieee754-1.9.0"
+      sources."@webassemblyjs/leb128-1.9.0"
+      sources."@webassemblyjs/utf8-1.9.0"
+      sources."@webassemblyjs/wasm-edit-1.9.0"
+      sources."@webassemblyjs/wasm-gen-1.9.0"
+      sources."@webassemblyjs/wasm-opt-1.9.0"
+      sources."@webassemblyjs/wasm-parser-1.9.0"
+      sources."@webassemblyjs/wast-parser-1.9.0"
+      sources."@webassemblyjs/wast-printer-1.9.0"
+      sources."@xtuc/ieee754-1.2.0"
+      sources."@xtuc/long-4.2.2"
+      sources."acorn-6.4.1"
+      sources."ajv-6.12.0"
+      sources."ajv-errors-1.0.1"
+      sources."ajv-keywords-3.5.2"
+      sources."ansi-escapes-4.3.1"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-3.2.1"
+      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" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (sources."assert-1.5.0" // {
+        dependencies = [
+          sources."inherits-2.0.1"
+          sources."util-0.10.3"
+        ];
+      })
+      sources."assign-symbols-1.0.0"
+      sources."async-each-1.0.3"
+      sources."at-least-node-1.0.0"
+      sources."atob-2.1.2"
+      sources."balanced-match-1.0.0"
+      (sources."base-0.11.2" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+        ];
+      })
+      sources."base64-js-1.3.1"
+      sources."big.js-5.2.2"
+      sources."binary-extensions-2.1.0"
+      sources."bindings-1.5.0"
+      sources."bluebird-3.7.2"
+      sources."bn.js-5.1.2"
+      sources."brace-expansion-1.1.11"
+      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."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      sources."browserify-zlib-0.2.0"
+      sources."buffer-4.9.2"
+      sources."buffer-from-1.1.1"
+      sources."buffer-xor-1.0.3"
+      sources."builtin-status-codes-3.0.0"
+      (sources."cacache-12.0.4" // {
+        dependencies = [
+          sources."rimraf-2.7.1"
         ];
       })
-      sources."@babel/helper-create-class-features-plugin-7.9.6"
-      sources."@babel/helper-create-regexp-features-plugin-7.8.8"
-      sources."@babel/helper-define-map-7.8.3"
-      sources."@babel/helper-explode-assignable-expression-7.8.3"
-      sources."@babel/helper-function-name-7.9.5"
-      sources."@babel/helper-get-function-arity-7.8.3"
-      sources."@babel/helper-hoist-variables-7.8.3"
-      sources."@babel/helper-member-expression-to-functions-7.8.3"
-      sources."@babel/helper-module-imports-7.8.3"
-      sources."@babel/helper-module-transforms-7.9.0"
-      sources."@babel/helper-optimise-call-expression-7.8.3"
-      sources."@babel/helper-plugin-utils-7.8.3"
-      sources."@babel/helper-regex-7.8.3"
-      sources."@babel/helper-remap-async-to-generator-7.8.3"
-      (sources."@babel/helper-replace-supers-7.9.6" // {
-        dependencies = [
-          sources."@babel/types-7.9.6"
-        ];
-      })
-      sources."@babel/helper-simple-access-7.8.3"
-      sources."@babel/helper-split-export-declaration-7.8.3"
-      sources."@babel/helper-validator-identifier-7.9.5"
-      sources."@babel/helper-wrap-function-7.8.3"
-      (sources."@babel/helpers-7.9.6" // {
-        dependencies = [
-          sources."@babel/types-7.9.6"
-        ];
-      })
-      sources."@babel/highlight-7.9.0"
-      sources."@babel/parser-7.9.6"
-      sources."@babel/plugin-proposal-async-generator-functions-7.8.3"
-      sources."@babel/plugin-proposal-class-properties-7.8.3"
-      sources."@babel/plugin-proposal-dynamic-import-7.8.3"
-      sources."@babel/plugin-proposal-json-strings-7.8.3"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.8.3"
-      sources."@babel/plugin-proposal-numeric-separator-7.8.3"
-      sources."@babel/plugin-proposal-object-rest-spread-7.9.6"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.8.3"
-      sources."@babel/plugin-proposal-optional-chaining-7.9.0"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.8.8"
+      sources."cache-base-1.0.1"
+      sources."callsites-3.1.0"
+      (sources."chalk-3.0.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.1.0"
+        ];
+      })
+      sources."chardet-0.7.0"
+      sources."chokidar-3.4.0"
+      sources."chownr-1.1.4"
+      sources."chrome-trace-event-1.0.2"
+      sources."cipher-base-1.0.4"
+      (sources."class-utils-0.3.6" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."cli-cursor-3.1.0"
+      sources."cli-spinners-2.4.0"
+      (sources."cli-table3-0.5.1" // {
+        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."cli-width-2.2.1"
+      sources."clone-1.0.4"
+      sources."collection-visit-1.0.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."colors-1.4.0"
+      sources."commander-4.1.1"
+      sources."commondir-1.0.1"
+      sources."component-emitter-1.3.0"
+      sources."concat-map-0.0.1"
+      sources."concat-stream-1.6.2"
+      sources."console-browserify-1.2.0"
+      sources."constants-browserify-1.0.0"
+      (sources."copy-concurrently-1.0.5" // {
+        dependencies = [
+          sources."rimraf-2.7.1"
+        ];
+      })
+      sources."copy-descriptor-0.1.1"
+      sources."core-util-is-1.0.2"
+      sources."cosmiconfig-6.0.0"
+      (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."cyclist-1.0.1"
+      sources."debug-2.6.9"
+      sources."decode-uri-component-0.2.0"
+      sources."deepmerge-4.2.2"
+      sources."defaults-1.0.3"
+      sources."define-property-2.0.2"
+      sources."des.js-1.0.1"
+      (sources."diffie-hellman-5.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."domain-browser-1.2.0"
+      sources."duplexify-3.7.1"
+      (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."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."estraverse-4.3.0"
+      sources."events-3.2.0"
+      sources."evp_bytestokey-1.0.3"
+      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."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."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."figgy-pudding-3.5.2"
+      sources."figures-3.2.0"
+      sources."file-uri-to-path-1.0.0"
+      sources."fill-range-7.0.1"
+      sources."find-cache-dir-2.1.0"
+      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" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
+      sources."fragment-cache-0.2.1"
+      sources."from2-2.3.0"
+      sources."fs-extra-9.0.0"
+      sources."fs-monkey-1.0.1"
+      sources."fs-write-stream-atomic-1.0.10"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-2.1.3"
+      sources."get-stream-4.1.0"
+      sources."get-value-2.0.6"
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.1"
+      sources."graceful-fs-4.2.4"
+      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."hash-base-3.1.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      sources."hash.js-1.1.7"
+      sources."hmac-drbg-1.0.1"
+      sources."https-browserify-1.0.0"
+      sources."iconv-lite-0.4.24"
+      sources."ieee754-1.1.13"
+      sources."iferr-0.1.5"
+      sources."import-fresh-3.2.1"
+      sources."imurmurhash-0.1.4"
+      sources."infer-owner-1.0.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."inquirer-7.2.0"
+      sources."interpret-1.4.0"
+      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-data-descriptor-1.0.0"
+      sources."is-descriptor-1.0.2"
+      sources."is-extendable-0.1.1"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-interactive-1.0.0"
+      sources."is-number-7.0.0"
+      sources."is-plain-object-2.0.4"
+      sources."is-stream-1.1.0"
+      sources."is-windows-1.0.2"
+      sources."is-wsl-1.1.0"
+      sources."isarray-1.0.0"
+      sources."isexe-2.0.0"
+      sources."isobject-3.0.1"
+      sources."js-tokens-4.0.0"
+      sources."json-parse-better-errors-1.0.2"
+      sources."json-schema-traverse-0.4.1"
+      sources."json5-1.0.1"
+      sources."jsonfile-6.0.1"
+      sources."kind-of-6.0.3"
+      sources."lines-and-columns-1.1.6"
+      sources."loader-runner-2.4.0"
+      sources."loader-utils-1.4.0"
+      sources."locate-path-3.0.0"
+      sources."lodash-4.17.19"
+      sources."lodash.toarray-4.4.0"
+      (sources."log-symbols-3.0.0" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
+      sources."lru-cache-5.1.1"
+      sources."macos-release-2.4.1"
+      sources."magic-string-0.25.7"
+      sources."make-dir-2.1.0"
+      sources."map-cache-0.2.2"
+      sources."map-visit-1.0.0"
+      sources."md5.js-1.3.5"
+      sources."memfs-3.2.0"
+      sources."memory-fs-0.5.0"
+      (sources."micromatch-3.1.10" // {
+        dependencies = [
+          (sources."braces-2.3.2" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          (sources."fill-range-4.0.0" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."to-regex-range-2.1.1"
+        ];
+      })
+      (sources."miller-rabin-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."mimic-fn-2.1.0"
+      sources."minimalistic-assert-1.0.1"
+      sources."minimalistic-crypto-utils-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mississippi-3.0.0"
+      (sources."mixin-deep-1.3.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      sources."mkdirp-0.5.5"
+      (sources."move-concurrently-1.0.1" // {
+        dependencies = [
+          sources."rimraf-2.7.1"
+        ];
+      })
+      sources."ms-2.0.0"
+      sources."mute-stream-0.0.8"
+      sources."nan-2.14.1"
+      sources."nanomatch-1.2.13"
+      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" // {
+        dependencies = [
+          sources."punycode-1.4.1"
+        ];
+      })
+      sources."normalize-path-3.0.0"
+      sources."npm-run-path-2.0.2"
+      sources."object-assign-4.1.1"
+      (sources."object-copy-0.1.0" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."is-accessor-descriptor-0.1.6"
+          sources."is-data-descriptor-0.1.4"
+          (sources."is-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-5.1.0"
+            ];
+          })
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."object-visit-1.0.1"
+      sources."object.pick-1.3.0"
+      sources."once-1.4.0"
+      sources."onetime-5.1.1"
+      sources."ora-4.0.4"
+      sources."os-browserify-0.3.0"
+      sources."os-name-3.1.0"
+      sources."os-tmpdir-1.0.2"
+      sources."p-finally-1.0.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."parallel-transform-1.2.0"
+      sources."parent-module-1.0.1"
+      sources."parse-asn1-5.1.5"
+      sources."parse-json-5.0.1"
+      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"
+      sources."path-type-4.0.0"
+      sources."pbkdf2-3.1.1"
+      sources."picomatch-2.2.2"
+      sources."pify-4.0.1"
+      sources."pkg-dir-3.0.0"
+      sources."posix-character-classes-0.1.1"
+      sources."process-0.11.10"
+      sources."process-nextick-args-2.0.1"
+      sources."promise-inflight-1.0.1"
+      sources."prr-1.0.1"
+      (sources."public-encrypt-4.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."pump-3.0.0"
+      (sources."pumpify-1.5.1" // {
+        dependencies = [
+          sources."pump-2.0.1"
+        ];
+      })
+      sources."punycode-2.1.1"
+      sources."querystring-0.2.0"
+      sources."querystring-es3-0.2.1"
+      sources."randombytes-2.1.0"
+      sources."randomfill-1.0.4"
+      sources."readable-stream-2.3.7"
+      sources."readdirp-3.4.0"
+      sources."rechoir-0.6.2"
+      sources."regex-not-1.0.2"
+      sources."remove-trailing-separator-1.1.0"
+      sources."repeat-element-1.1.3"
+      sources."repeat-string-1.6.1"
+      sources."resolve-1.17.0"
+      sources."resolve-from-4.0.0"
+      sources."resolve-url-0.2.1"
+      sources."restore-cursor-3.1.0"
+      sources."ret-0.1.15"
+      sources."rimraf-3.0.2"
+      sources."ripemd160-2.0.2"
+      sources."run-async-2.4.1"
+      sources."run-queue-1.0.3"
+      sources."rxjs-6.5.4"
+      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."set-value-2.0.1" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."setimmediate-1.0.5"
+      sources."sha.js-2.4.11"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."shelljs-0.8.4"
+      sources."signal-exit-3.0.3"
+      (sources."snapdragon-0.8.2" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."snapdragon-node-2.1.1" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+        ];
+      })
+      (sources."snapdragon-util-3.0.1" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."source-list-map-2.0.1"
+      sources."source-map-0.7.3"
+      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."sourcemap-codec-1.4.8"
+      sources."split-string-3.1.0"
+      sources."ssri-6.0.1"
+      (sources."static-extend-0.1.2" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."stream-browserify-2.0.2"
+      sources."stream-each-1.2.3"
+      sources."stream-http-2.8.3"
+      sources."stream-shift-1.0.1"
+      sources."string-width-4.2.0"
+      sources."string_decoder-1.1.1"
+      sources."strip-ansi-6.0.0"
+      sources."strip-bom-3.0.0"
+      sources."strip-eof-1.0.0"
+      sources."supports-color-5.5.0"
+      sources."symbol-observable-1.2.0"
+      sources."tapable-1.1.3"
+      (sources."terser-4.8.0" // {
+        dependencies = [
+          sources."commander-2.20.3"
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."terser-webpack-plugin-1.4.4" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."through-2.3.8"
+      sources."through2-2.0.5"
+      sources."timers-browserify-2.0.11"
+      sources."tmp-0.0.33"
+      sources."to-arraybuffer-1.0.1"
+      (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."tree-kill-1.2.2"
+      sources."tsconfig-paths-3.9.0"
+      (sources."tsconfig-paths-webpack-plugin-3.2.0" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
+      sources."tslib-1.13.0"
+      sources."tty-browserify-0.0.0"
+      sources."type-fest-0.11.0"
+      sources."typedarray-0.0.6"
+      sources."typescript-3.9.7"
+      sources."union-value-1.0.1"
+      sources."unique-filename-1.1.1"
+      sources."unique-slug-2.0.2"
+      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."url-0.11.0" // {
+        dependencies = [
+          sources."punycode-1.3.2"
+        ];
+      })
+      sources."use-3.1.1"
+      (sources."util-0.11.1" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."util-deprecate-1.0.2"
+      sources."vm-browserify-1.1.2"
+      (sources."watchpack-1.7.4" // {
+        dependencies = [
+          sources."chokidar-3.4.1"
+        ];
+      })
+      (sources."watchpack-chokidar2-2.0.0" // {
+        dependencies = [
+          sources."anymatch-2.0.0"
+          sources."binary-extensions-1.13.1"
+          sources."braces-2.3.2"
+          sources."chokidar-2.1.8"
+          sources."extend-shallow-2.0.1"
+          sources."fill-range-4.0.0"
+          sources."fsevents-1.2.13"
+          sources."glob-parent-3.1.0"
+          sources."is-binary-path-1.0.1"
+          sources."is-glob-3.1.0"
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."normalize-path-2.1.1"
+          sources."readdirp-2.2.1"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
+      sources."wcwidth-1.0.1"
+      (sources."webpack-4.43.0" // {
+        dependencies = [
+          sources."memory-fs-0.4.1"
+        ];
+      })
+      sources."webpack-node-externals-1.7.2"
+      (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."worker-farm-1.7.0"
+      sources."wrappy-1.0.2"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.0"
+      sources."yallist-3.1.1"
+      sources."yaml-1.10.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Nest - modern, fast, powerful node.js web framework (@cli)";
+      homepage = "https://github.com/nestjs/nest-cli#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  "@vue/cli" = nodeEnv.buildNodePackage {
+    name = "_at_vue_slash_cli";
+    packageName = "@vue/cli";
+    version = "4.4.6";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/@vue/cli/-/cli-4.4.6.tgz";
+      sha512 = "IaLrnZ80BrBLPAkBup8bn363S1NHfNf8jfCJLWoXad598cUm6byMqntWtDFeTq0c3KohXcsIbT+nqLc5S9vz0w==";
+    };
+    dependencies = [
+      sources."@akryum/winattr-3.0.0"
+      sources."@apollo/federation-0.19.0"
+      (sources."@apollo/protobufjs-1.0.4" // {
+        dependencies = [
+          sources."@types/node-10.17.28"
+        ];
+      })
+      sources."@apollographql/apollo-tools-0.4.8"
+      sources."@apollographql/graphql-language-service-interface-2.0.2"
+      sources."@apollographql/graphql-language-service-parser-2.0.2"
+      sources."@apollographql/graphql-language-service-types-2.0.2"
+      sources."@apollographql/graphql-language-service-utils-2.0.2"
+      sources."@apollographql/graphql-playground-html-1.6.26"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/compat-data-7.11.0"
+      sources."@babel/core-7.11.1"
+      sources."@babel/generator-7.11.0"
+      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.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.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.10.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.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-class-properties-7.10.4"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
-      sources."@babel/plugin-syntax-flow-7.8.3"
+      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.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.8.3"
-      sources."@babel/plugin-syntax-typescript-7.8.3"
-      sources."@babel/plugin-transform-arrow-functions-7.8.3"
-      sources."@babel/plugin-transform-async-to-generator-7.8.3"
-      sources."@babel/plugin-transform-block-scoped-functions-7.8.3"
-      sources."@babel/plugin-transform-block-scoping-7.8.3"
-      sources."@babel/plugin-transform-classes-7.9.5"
-      sources."@babel/plugin-transform-computed-properties-7.8.3"
-      sources."@babel/plugin-transform-destructuring-7.9.5"
-      sources."@babel/plugin-transform-dotall-regex-7.8.3"
-      sources."@babel/plugin-transform-duplicate-keys-7.8.3"
-      sources."@babel/plugin-transform-exponentiation-operator-7.8.3"
-      sources."@babel/plugin-transform-flow-strip-types-7.9.0"
-      sources."@babel/plugin-transform-for-of-7.9.0"
-      sources."@babel/plugin-transform-function-name-7.8.3"
-      sources."@babel/plugin-transform-literals-7.8.3"
-      sources."@babel/plugin-transform-member-expression-literals-7.8.3"
-      sources."@babel/plugin-transform-modules-amd-7.9.6"
-      sources."@babel/plugin-transform-modules-commonjs-7.9.6"
-      sources."@babel/plugin-transform-modules-systemjs-7.9.6"
-      sources."@babel/plugin-transform-modules-umd-7.9.0"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.8.3"
-      sources."@babel/plugin-transform-new-target-7.8.3"
-      sources."@babel/plugin-transform-object-super-7.8.3"
-      sources."@babel/plugin-transform-parameters-7.9.5"
-      sources."@babel/plugin-transform-property-literals-7.8.3"
-      sources."@babel/plugin-transform-regenerator-7.8.7"
-      sources."@babel/plugin-transform-reserved-words-7.8.3"
-      sources."@babel/plugin-transform-shorthand-properties-7.8.3"
-      sources."@babel/plugin-transform-spread-7.8.3"
-      sources."@babel/plugin-transform-sticky-regex-7.8.3"
-      sources."@babel/plugin-transform-template-literals-7.8.3"
-      sources."@babel/plugin-transform-typeof-symbol-7.8.4"
-      sources."@babel/plugin-transform-typescript-7.9.6"
-      sources."@babel/plugin-transform-unicode-regex-7.8.3"
-      (sources."@babel/preset-env-7.9.6" // {
-        dependencies = [
-          sources."@babel/types-7.9.6"
-          sources."semver-5.7.1"
-        ];
-      })
-      sources."@babel/preset-flow-7.9.0"
+      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.0"
+      sources."@babel/preset-flow-7.10.4"
       sources."@babel/preset-modules-0.1.3"
-      sources."@babel/preset-typescript-7.9.0"
-      (sources."@babel/register-7.9.0" // {
+      sources."@babel/preset-typescript-7.10.4"
+      (sources."@babel/register-7.10.5" // {
         dependencies = [
           sources."make-dir-2.1.0"
           sources."pify-4.0.1"
-          sources."semver-5.7.1"
-        ];
-      })
-      sources."@babel/runtime-7.9.6"
-      sources."@babel/template-7.8.6"
-      (sources."@babel/traverse-7.9.6" // {
-        dependencies = [
-          sources."@babel/generator-7.9.6"
-          sources."@babel/types-7.9.6"
         ];
       })
-      sources."@babel/types-7.9.5"
-      sources."@endemolshinegroup/cosmiconfig-typescript-loader-1.0.1"
+      sources."@babel/runtime-7.11.1"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.0"
+      sources."@babel/types-7.11.0"
+      sources."@endemolshinegroup/cosmiconfig-typescript-loader-1.0.2"
       sources."@hapi/address-2.1.4"
       sources."@hapi/bourne-1.3.2"
       sources."@hapi/hoek-8.5.1"
       sources."@hapi/joi-15.1.1"
       sources."@hapi/topo-3.1.6"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
-      sources."@nodelib/fs.stat-1.1.3"
-      sources."@oclif/color-0.0.0"
-      (sources."@oclif/command-1.5.19" // {
+      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."semver-5.7.1"
+          (sources."chalk-3.0.0" // {
+            dependencies = [
+              sources."ansi-styles-4.2.1"
+              sources."supports-color-7.1.0"
+            ];
+          })
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."strip-ansi-5.2.0"
         ];
       })
-      sources."@oclif/config-1.15.1"
-      (sources."@oclif/errors-1.2.2" // {
+      (sources."@oclif/command-1.7.0" // {
         dependencies = [
-          sources."clean-stack-1.3.0"
-          sources."indent-string-3.2.0"
-          sources."strip-ansi-5.2.0"
+          sources."@oclif/plugin-help-3.2.0"
         ];
       })
-      sources."@oclif/linewrap-1.0.0"
-      sources."@oclif/parser-3.8.4"
-      (sources."@oclif/plugin-autocomplete-0.1.5" // {
+      (sources."@oclif/config-1.16.0" // {
         dependencies = [
-          (sources."cli-ux-4.9.3" // {
-            dependencies = [
-              sources."fs-extra-7.0.1"
-            ];
-          })
-          sources."debug-3.2.6"
-          sources."fs-extra-6.0.1"
-          sources."indent-string-3.2.0"
-          sources."ms-2.1.2"
-          sources."semver-5.7.1"
-          sources."strip-ansi-5.2.0"
+          sources."globby-11.0.1"
+          sources."is-wsl-2.2.0"
         ];
       })
+      (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"
+      sources."@oclif/parser-3.8.5"
+      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.3" // {
+      (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."npm-run-path-3.1.0"
           sources."path-key-3.1.1"
-          sources."semver-5.7.1"
-        ];
-      })
-      (sources."@oclif/plugin-warn-if-update-available-1.7.0" // {
-        dependencies = [
-          sources."semver-5.7.1"
+          sources."semver-7.3.2"
+          sources."tslib-2.0.0"
         ];
       })
+      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"
@@ -50856,47 +52355,57 @@ 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/events-3.0.0"
-      sources."@types/express-4.17.4"
-      sources."@types/express-serve-static-core-4.17.5"
+      sources."@types/cors-2.8.7"
+      sources."@types/express-4.17.7"
+      sources."@types/express-serve-static-core-4.17.9"
       sources."@types/fs-capacitor-2.0.0"
-      sources."@types/glob-7.1.1"
+      sources."@types/glob-7.1.3"
       sources."@types/graphql-upload-8.0.3"
       sources."@types/http-assert-1.5.1"
       sources."@types/keygrip-1.0.2"
       sources."@types/koa-2.11.3"
       sources."@types/koa-compose-3.2.5"
       sources."@types/long-4.0.1"
-      sources."@types/mime-2.0.1"
+      sources."@types/mime-2.0.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.13.4"
-      (sources."@types/node-fetch-2.5.6" // {
+      sources."@types/node-14.0.27"
+      (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.1"
+      sources."@types/qs-6.9.4"
       sources."@types/range-parser-1.2.3"
-      sources."@types/serve-static-1.13.3"
-      sources."@types/ws-7.2.4"
+      sources."@types/serve-static-1.13.5"
+      sources."@types/ws-7.2.6"
       sources."@types/zen-observable-0.8.0"
-      sources."@vue/cli-shared-utils-4.3.1"
-      (sources."@vue/cli-ui-4.3.1" // {
+      (sources."@vue/cli-shared-utils-4.5.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      (sources."@vue/cli-ui-4.5.0" // {
         dependencies = [
           sources."clone-2.1.2"
         ];
       })
-      sources."@vue/cli-ui-addon-webpack-4.3.1"
-      sources."@vue/cli-ui-addon-widgets-4.3.1"
+      sources."@vue/cli-ui-addon-webpack-4.5.0"
+      sources."@vue/cli-ui-addon-widgets-4.5.0"
       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."ansi-align-2.0.0"
+      sources."ajv-6.12.3"
+      (sources."ansi-align-2.0.0" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
@@ -50904,34 +52413,67 @@ 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.27.3" // {
+      (sources."apollo-2.30.2" // {
         dependencies = [
+          sources."graphql-tag-2.10.4"
           sources."strip-ansi-5.2.0"
         ];
       })
-      sources."apollo-cache-1.3.4"
-      sources."apollo-cache-control-0.10.0"
-      sources."apollo-cache-inmemory-1.6.5"
-      sources."apollo-client-2.6.8"
-      (sources."apollo-codegen-core-0.36.8" // {
+      sources."apollo-cache-1.3.5"
+      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.8" // {
         dependencies = [
+          sources."@babel/types-7.10.4"
           sources."recast-0.19.1"
           sources."source-map-0.6.1"
         ];
       })
-      sources."apollo-codegen-flow-0.34.8"
-      sources."apollo-codegen-scala-0.35.8"
-      sources."apollo-codegen-swift-0.36.8"
-      sources."apollo-codegen-typescript-0.36.8"
-      sources."apollo-datasource-0.7.0"
-      sources."apollo-engine-reporting-1.8.0"
-      sources."apollo-engine-reporting-protobuf-0.5.0"
-      sources."apollo-env-0.6.4"
-      sources."apollo-graphql-0.4.3"
-      sources."apollo-language-server-1.21.3"
+      (sources."apollo-codegen-flow-0.35.8" // {
+        dependencies = [
+          sources."@babel/types-7.10.4"
+        ];
+      })
+      sources."apollo-codegen-scala-0.36.8"
+      sources."apollo-codegen-swift-0.37.8"
+      (sources."apollo-codegen-typescript-0.37.8" // {
+        dependencies = [
+          sources."@babel/types-7.10.4"
+        ];
+      })
+      sources."apollo-datasource-0.7.2"
+      (sources."apollo-engine-reporting-2.3.0" // {
+        dependencies = [
+          sources."uuid-8.3.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.3"
       sources."apollo-link-1.2.14"
       sources."apollo-link-context-1.0.20"
       sources."apollo-link-error-1.1.13"
@@ -50940,16 +52482,16 @@ 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.13.0"
-      sources."apollo-server-env-2.4.3"
-      sources."apollo-server-errors-2.4.1"
-      sources."apollo-server-express-2.13.0"
-      sources."apollo-server-plugin-base-0.8.0"
-      sources."apollo-server-types-0.4.0"
-      sources."apollo-tracing-0.10.0"
+      sources."apollo-server-caching-0.5.2"
+      sources."apollo-server-core-2.16.1"
+      sources."apollo-server-env-2.4.5"
+      sources."apollo-server-errors-2.4.2"
+      sources."apollo-server-express-2.16.1"
+      sources."apollo-server-plugin-base-0.9.1"
+      sources."apollo-server-types-0.5.1"
+      sources."apollo-tracing-0.11.1"
       sources."apollo-upload-client-11.0.0"
-      sources."apollo-utilities-1.3.3"
+      sources."apollo-utilities-1.3.4"
       (sources."archive-type-4.0.0" // {
         dependencies = [
           sources."file-type-4.4.0"
@@ -50961,7 +52503,7 @@ 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"
@@ -50975,10 +52517,11 @@ in
       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.9.1"
+      sources."aws4-1.10.0"
       sources."babel-core-7.0.0-bridge.0"
       sources."babel-plugin-dynamic-import-node-2.3.3"
       sources."backo2-1.0.2"
@@ -50999,6 +52542,7 @@ in
           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"
@@ -51009,31 +52553,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."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."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.0"
+      sources."braces-3.0.2"
+      sources."browserslist-4.13.0"
       sources."buffer-5.6.0"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -51049,24 +52586,45 @@ in
         dependencies = [
           sources."get-stream-3.0.0"
           sources."lowercase-keys-1.0.0"
+          sources."normalize-url-2.0.1"
+          sources."prepend-http-2.0.0"
+          sources."sort-keys-2.0.0"
         ];
       })
       sources."call-me-maybe-1.0.1"
       sources."caller-callsite-2.0.0"
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
-      sources."camel-case-3.0.0"
+      sources."camel-case-4.1.1"
       sources."camelcase-4.1.0"
-      sources."caniuse-lite-1.0.30001050"
+      sources."caniuse-lite-1.0.30001111"
+      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."cheerio-1.0.0-rc.3" // {
+        dependencies = [
+          sources."entities-1.1.2"
+        ];
+      })
+      (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 = [
@@ -51088,14 +52646,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"
@@ -51104,14 +52656,26 @@ in
           sources."strip-ansi-3.0.1"
         ];
       })
-      (sources."cli-ux-5.4.5" // {
+      (sources."cli-ux-5.4.9" // {
         dependencies = [
-          sources."semver-5.7.1"
-          sources."string-width-3.1.0"
+          sources."ansi-escapes-4.3.1"
+          sources."ansi-styles-4.2.1"
+          sources."chalk-3.0.0"
+          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."extract-stack-2.0.0"
+          sources."fs-extra-9.0.1"
+          sources."has-flag-4.0.0"
+          sources."is-wsl-2.2.0"
           sources."strip-ansi-5.2.0"
+          sources."supports-color-7.1.0"
+          sources."tslib-2.0.0"
+          sources."type-fest-0.11.0"
         ];
       })
-      sources."cli-width-2.2.1"
+      sources."cli-width-3.0.0"
       sources."clipboard-2.0.6"
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
@@ -51129,7 +52693,7 @@ in
       sources."concat-map-0.0.1"
       sources."config-chain-1.1.12"
       sources."configstore-3.1.2"
-      sources."constant-case-2.0.0"
+      sources."constant-case-3.0.3"
       (sources."content-disposition-0.5.3" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
@@ -51158,19 +52722,16 @@ in
         ];
       })
       sources."create-error-class-3.0.2"
-      (sources."cross-spawn-6.0.5" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
+      sources."cross-spawn-6.0.5"
       sources."crypto-random-string-1.0.0"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
+      sources."cssfilter-0.0.10"
       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.1.1" // {
+      (sources."debug-4.2.0" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -51217,12 +52778,16 @@ in
       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."dir-glob-3.0.1"
+      (sources."dom-serializer-0.1.1" // {
+        dependencies = [
+          sources."entities-1.1.2"
+        ];
+      })
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.5.1"
-      sources."dot-case-2.1.1"
+      sources."dot-case-3.0.3"
       sources."dot-prop-4.2.0"
       sources."dotenv-8.2.0"
       (sources."download-7.1.0" // {
@@ -51240,17 +52805,18 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.3.427"
+      sources."electron-to-chromium-1.3.520"
       sources."elegant-spinner-1.0.1"
-      sources."emoji-regex-7.0.3"
+      sources."emoji-regex-8.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.2"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.17.5"
+      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-1.0.5"
       sources."esm-3.2.25"
@@ -51285,6 +52851,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"
@@ -51301,17 +52868,18 @@ in
       sources."extract-files-5.0.1"
       sources."extract-stack-1.0.0"
       sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
-      sources."fast-glob-2.2.7"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
+      sources."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"
@@ -51321,12 +52889,11 @@ in
         dependencies = [
           sources."make-dir-2.1.0"
           sources."pify-4.0.1"
-          sources."semver-5.7.1"
         ];
       })
-      sources."find-up-2.1.0"
+      sources."find-up-3.0.0"
       sources."fkill-6.2.0"
-      sources."flow-parser-0.123.0"
+      sources."flow-parser-0.130.0"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
@@ -51337,9 +52904,14 @@ 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.12"
+      sources."fsevents-1.2.13"
       sources."fswin-2.17.1227"
       sources."function-bind-1.1.1"
       sources."gaze-1.1.3"
@@ -51358,22 +52930,48 @@ in
           sources."graceful-fs-4.1.15"
         ];
       })
+      sources."git-up-4.0.1"
+      sources."git-url-parse-11.1.2"
       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.1"
+      sources."globule-1.3.2"
       sources."good-listener-1.2.2"
       (sources."got-6.7.1" // {
         dependencies = [
@@ -51381,22 +52979,21 @@ in
         ];
       })
       sources."graceful-fs-4.2.4"
-      sources."graceful-readlink-1.0.1"
-      sources."graphql-14.6.0"
-      (sources."graphql-anywhere-4.2.6" // {
+      sources."graphql-14.7.0"
+      (sources."graphql-anywhere-4.2.7" // {
         dependencies = [
           sources."ts-invariant-0.3.3"
         ];
       })
-      sources."graphql-extensions-0.12.0"
+      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.1"
+      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 = [
@@ -51410,16 +53007,22 @@ 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.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."entities-1.1.2"
           sources."readable-stream-3.6.0"
         ];
       })
@@ -51430,13 +53033,13 @@ 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."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"
@@ -51447,27 +53050,24 @@ 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" // {
         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.1"
           sources."restore-cursor-3.1.0"
-          sources."string-width-4.2.0"
           sources."supports-color-7.1.0"
           sources."type-fest-0.11.0"
         ];
       })
-      sources."interpret-1.2.0"
+      sources."interpret-1.4.0"
       sources."into-stream-2.0.1"
       sources."invariant-2.2.4"
       sources."ipaddr.js-1.9.1"
@@ -51475,26 +53075,21 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.1.5"
+      sources."is-callable-1.2.0"
       sources."is-ci-1.2.1"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
       sources."is-directory-0.3.1"
-      sources."is-docker-2.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"
@@ -51504,12 +53099,12 @@ in
       sources."is-promise-2.2.2"
       sources."is-property-1.0.2"
       sources."is-redirect-1.0.0"
-      sources."is-regex-1.0.5"
+      sources."is-regex-1.1.1"
       sources."is-retry-allowed-1.2.0"
+      sources."is-ssh-1.3.1"
       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"
@@ -51524,9 +53119,28 @@ in
       sources."js-message-1.0.5"
       sources."js-queue-2.0.0"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
-      sources."jscodeshift-0.7.1"
+      (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"
@@ -51534,7 +53148,7 @@ in
       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"
@@ -51568,8 +53182,8 @@ in
           sources."type-fest-0.3.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.clonedeep-4.5.0"
       sources."lodash.debounce-4.0.8"
@@ -51585,6 +53199,8 @@ 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"
         ];
@@ -51593,8 +53209,7 @@ in
       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 = [
@@ -51609,14 +53224,9 @@ in
       sources."merge-1.2.1"
       sources."merge-descriptors-1.0.1"
       sources."merge-stream-2.0.0"
-      sources."merge2-1.3.0"
+      sources."merge2-1.4.1"
       sources."methods-1.1.2"
-      (sources."micromatch-3.1.10" // {
-        dependencies = [
-          sources."extend-shallow-3.0.2"
-          sources."is-extendable-1.0.1"
-        ];
-      })
+      sources."micromatch-4.0.2"
       sources."mime-1.6.0"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
@@ -51631,7 +53241,7 @@ in
         ];
       })
       sources."mkdirp-0.5.5"
-      sources."moment-2.24.0"
+      sources."moment-2.27.0"
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
       sources."nan-2.14.1"
@@ -51650,9 +53260,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"
@@ -51660,29 +53270,20 @@ in
       (sources."node-notifier-6.0.0" // {
         dependencies = [
           sources."is-wsl-2.2.0"
+          sources."semver-6.3.0"
         ];
       })
-      sources."node-releases-1.1.53"
+      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" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
+      sources."normalize-package-data-2.5.0"
       sources."normalize-path-3.0.0"
-      (sources."normalize-url-2.0.1" // {
-        dependencies = [
-          sources."prepend-http-2.0.0"
-          sources."sort-keys-2.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"
@@ -51702,9 +53303,10 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
       sources."object-path-0.11.4"
+      sources."object-treeify-1.1.26"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.0"
       sources."object.getownpropertydescriptors-2.1.0"
@@ -51724,26 +53326,24 @@ in
       sources."p-event-2.3.1"
       sources."p-finally-1.0.0"
       sources."p-is-promise-1.1.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-timeout-2.0.1"
-      sources."p-try-1.0.0"
-      (sources."package-json-4.0.1" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      sources."param-case-2.1.1"
+      sources."p-try-2.2.0"
+      sources."package-json-4.0.1"
+      sources."param-case-3.0.3"
       sources."parse-git-config-2.0.3"
-      sources."parse-json-5.0.0"
+      sources."parse-json-5.0.1"
       sources."parse-passwd-1.0.0"
+      sources."parse-path-4.0.1"
+      sources."parse-url-5.0.1"
       sources."parse5-3.0.3"
       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"
@@ -51751,9 +53351,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"
@@ -51766,17 +53367,8 @@ in
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
       sources."pirates-4.0.1"
-      (sources."pkg-dir-3.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."pkg-up-2.0.0"
-      (sources."portfinder-1.0.26" // {
+      sources."pkg-dir-3.0.0"
+      (sources."portfinder-1.0.28" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."ms-2.1.2"
@@ -51789,11 +53381,12 @@ in
       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."proxy-addr-2.0.6"
       sources."ps-list-4.1.0"
       sources."pseudomap-1.0.2"
       sources."psl-1.8.0"
-      sources."pstree.remy-1.1.7"
+      sources."pstree.remy-1.1.8"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
@@ -51803,6 +53396,7 @@ in
         dependencies = [
           sources."http-errors-1.7.2"
           sources."inherits-2.0.3"
+          sources."setprototypeof-1.1.1"
         ];
       })
       sources."rc-1.2.8"
@@ -51812,7 +53406,26 @@ 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."source-map-0.6.1"
@@ -51820,10 +53433,10 @@ in
       })
       sources."rechoir-0.6.2"
       sources."redeyed-2.1.1"
-      sources."regenerate-1.4.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" // {
         dependencies = [
           sources."extend-shallow-3.0.2"
@@ -51833,7 +53446,7 @@ in
       sources."regexpu-core-4.7.0"
       sources."registry-auth-token-3.4.0"
       sources."registry-url-3.1.0"
-      sources."regjsgen-0.5.1"
+      sources."regjsgen-0.5.2"
       (sources."regjsparser-0.6.4" // {
         dependencies = [
           sources."jsesc-0.5.0"
@@ -51843,8 +53456,6 @@ 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."resolve-1.17.0"
       sources."resolve-from-3.0.0"
       sources."resolve-url-0.2.1"
@@ -51852,27 +53463,21 @@ 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.7.6"
+      sources."rss-parser-3.9.0"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
-      sources."safe-buffer-5.2.0"
+      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" // {
-        dependencies = [
-          sources."commander-2.8.1"
-        ];
-      })
+      sources."seek-bzip-1.0.6"
       sources."select-1.1.2"
-      sources."semver-6.3.0"
-      (sources."semver-diff-2.1.0" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
+      sources."semver-5.7.1"
+      sources."semver-diff-2.1.0"
       (sources."send-0.17.1" // {
         dependencies = [
           (sources."debug-2.6.9" // {
@@ -51880,13 +53485,15 @@ 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-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"
@@ -51897,7 +53504,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"
@@ -51936,9 +53543,9 @@ in
         ];
       })
       sources."source-map-url-0.4.0"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       (sources."split-string-3.1.0" // {
         dependencies = [
@@ -51967,19 +53574,11 @@ in
         ];
       })
       sources."statuses-1.5.0"
-      sources."stealthy-require-1.1.1"
       sources."steno-0.4.4"
       sources."streamsearch-0.1.2"
       sources."strict-uri-encode-1.1.0"
-      (sources."string-width-2.1.1" // {
-        dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."strip-ansi-4.0.0"
-        ];
-      })
+      sources."string-width-4.2.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.1.1" // {
         dependencies = [
@@ -51997,7 +53596,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.17" // {
         dependencies = [
           sources."ws-5.2.2"
         ];
@@ -52008,10 +53607,11 @@ 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"
@@ -52020,13 +53620,13 @@ in
       sources."tar-stream-1.6.2"
       (sources."taskkill-3.1.0" // {
         dependencies = [
-          sources."cross-spawn-7.0.2"
+          sources."cross-spawn-7.0.3"
           sources."execa-3.4.0"
           sources."get-stream-5.1.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.1"
           sources."p-finally-2.0.1"
           sources."path-key-3.1.1"
           sources."shebang-command-2.0.0"
@@ -52056,7 +53656,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"
@@ -52071,22 +53670,22 @@ 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"
       sources."treeify-1.1.0"
       sources."trim-repeated-1.0.0"
       sources."ts-invariant-0.4.4"
-      sources."ts-node-8.10.1"
-      sources."tslib-1.11.1"
+      sources."ts-node-8.10.2"
+      sources."tslib-1.13.0"
       sources."tty-1.0.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-fest-0.6.0"
       sources."type-is-1.6.18"
-      sources."typescript-3.8.3"
-      sources."unbzip2-stream-1.4.2"
+      sources."typescript-3.9.7"
+      sources."unbzip2-stream-1.4.3"
       (sources."undefsafe-2.0.3" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -52098,7 +53697,7 @@ in
       sources."unicode-property-aliases-ecmascript-1.1.0"
       sources."union-value-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 = [
@@ -52114,11 +53713,16 @@ in
       sources."upath-1.2.0"
       (sources."update-notifier-2.5.0" // {
         dependencies = [
+          sources."ansi-regex-3.0.0"
           sources."boxen-1.3.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
+          sources."widest-line-2.0.1"
         ];
       })
-      sources."upper-case-1.1.3"
-      sources."upper-case-first-1.1.2"
+      sources."upper-case-2.0.1"
+      sources."upper-case-first-2.0.1"
       sources."uri-js-4.2.2"
       sources."urix-0.1.0"
       sources."url-parse-lax-1.0.0"
@@ -52140,22 +53744,24 @@ in
       sources."vue-2.6.11"
       (sources."vue-cli-plugin-apollo-0.21.3" // {
         dependencies = [
-          sources."cross-spawn-7.0.2"
+          sources."cross-spawn-7.0.3"
           sources."execa-3.4.0"
           sources."fs-extra-8.1.0"
           sources."get-stream-5.1.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.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."universalify-0.1.2"
           sources."which-2.0.2"
         ];
       })
-      sources."vue-jscodeshift-adapter-2.0.3"
+      sources."vue-jscodeshift-adapter-2.1.0"
       (sources."vue-sfc-descriptor-to-string-1.0.0" // {
         dependencies = [
           sources."indent-string-3.2.0"
@@ -52165,10 +53771,12 @@ in
       sources."watch-1.0.2"
       sources."wcwidth-1.0.1"
       sources."which-1.3.1"
-      sources."widest-line-2.0.1"
+      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"
         ];
       })
@@ -52178,6 +53786,7 @@ in
       sources."xdg-basedir-3.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
+      sources."xss-1.0.8"
       sources."xtend-4.0.2"
       sources."yallist-2.1.2"
       (sources."yaml-front-matter-3.4.1" // {
@@ -52194,7 +53803,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Command line interface for rapid Vue.js development";
-      homepage = "https://cli.vuejs.org/";
+      homepage = https://cli.vuejs.org/;
       license = "MIT";
     };
     production = true;
@@ -52325,13 +53934,13 @@ in
       sha512 = "O+nGHNGmkxo6g0X8BgsN5pSTi+iaYJ0noo28Vwwqgugdelcy6FNZmGWXR68KDQdnMXSjwD3eQVJTz21PCN9Qng==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.8.3"
-      sources."@babel/generator-7.9.6"
-      sources."@babel/helper-validator-identifier-7.9.5"
-      sources."@babel/highlight-7.9.0"
-      sources."@babel/parser-7.9.6"
-      sources."@babel/template-7.8.6"
-      sources."@babel/types-7.9.6"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/generator-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.1"
+      sources."@babel/template-7.10.4"
+      sources."@babel/types-7.11.0"
       sources."@webassemblyjs/ast-1.9.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
       sources."@webassemblyjs/helper-api-error-1.9.0"
@@ -52356,7 +53965,7 @@ in
       sources."has-flag-3.0.0"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."source-map-0.5.7"
       sources."supports-color-5.5.0"
       sources."to-fast-properties-2.0.0"
@@ -52410,33 +54019,33 @@ in
       sha512 = "M+DxWKG35yfUrJj58i6ohTrf8EaRkk9mFj/QSXxUvmqsyYrBmpQT1RnITzk7HY0QVxW1Oiw9zjxGVrQeozJL/w==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.8.3"
-      (sources."@babel/core-7.9.6" // {
+      sources."@babel/code-frame-7.10.4"
+      (sources."@babel/core-7.11.1" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.9.6" // {
+      (sources."@babel/generator-7.11.0" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      sources."@babel/helper-function-name-7.9.5"
-      sources."@babel/helper-get-function-arity-7.8.3"
-      sources."@babel/helper-member-expression-to-functions-7.8.3"
-      sources."@babel/helper-module-imports-7.8.3"
-      sources."@babel/helper-module-transforms-7.9.0"
-      sources."@babel/helper-optimise-call-expression-7.8.3"
-      sources."@babel/helper-replace-supers-7.9.6"
-      sources."@babel/helper-simple-access-7.8.3"
-      sources."@babel/helper-split-export-declaration-7.8.3"
-      sources."@babel/helper-validator-identifier-7.9.5"
-      sources."@babel/helpers-7.9.6"
-      sources."@babel/highlight-7.9.0"
-      sources."@babel/parser-7.9.6"
-      sources."@babel/template-7.8.6"
-      sources."@babel/traverse-7.9.6"
-      sources."@babel/types-7.9.6"
+      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.1"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.0"
+      sources."@babel/types-7.11.0"
       sources."JSV-4.0.2"
       sources."ansi-styles-3.2.1"
       sources."array-unique-0.3.2"
@@ -52451,7 +54060,7 @@ in
       sources."commander-2.20.3"
       sources."concat-map-0.0.1"
       sources."convert-source-map-1.7.0"
-      sources."debug-4.1.1"
+      sources."debug-4.2.0"
       sources."ejs-2.5.7"
       sources."ensure-posix-path-1.1.1"
       sources."escape-string-regexp-1.0.5"
@@ -52484,7 +54093,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.19"
       sources."matcher-collection-1.1.2"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -52535,10 +54144,9 @@ in
       sha512 = "k7zd+KoR+n8pl71PvgElcoKHrVNiSXtw7odKbyNpmgKe7EGRF9Pnu3uLOukD37EvavKwVFxOUpqXTIZC5B5Pmw==";
     };
     dependencies = [
-      sources."@types/events-3.0.0"
-      sources."@types/glob-7.1.1"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.13.4"
+      sources."@types/node-14.0.27"
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."chromium-pickle-js-0.2.0"
@@ -52556,7 +54164,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Creating Electron app packages";
-      homepage = "https://github.com/electron/asar";
+      homepage = https://github.com/electron/asar;
       license = "MIT";
     };
     production = true;
@@ -52566,13 +54174,13 @@ in
   bash-language-server = nodeEnv.buildNodePackage {
     name = "bash-language-server";
     packageName = "bash-language-server";
-    version = "1.13.1";
+    version = "1.16.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-1.13.1.tgz";
-      sha512 = "9JbJ5i+wD6stYi2U2QF9xPrd1c+g5V2puLRet1y5UXOsqYhvYQt4E/JohRCYuHltbMX48dz8lx5RUcurkffZ7g==";
+      url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-1.16.1.tgz";
+      sha512 = "IS1Ix7qyRq7GTMXqhHUF44yY89i/1Ucn5KFLimEfDpwU1f3GvbV9VnDpqpG6kedJsl2LigEthSnoVlzaOwgt0g==";
     };
     dependencies = [
-      sources."abab-2.0.3"
+      sources."abab-2.0.4"
       sources."acorn-5.7.4"
       (sources."acorn-globals-4.3.4" // {
         dependencies = [
@@ -52580,14 +54188,14 @@ in
         ];
       })
       sources."acorn-walk-6.2.0"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       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.9.1"
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
@@ -52608,13 +54216,13 @@ in
       sources."delayed-stream-1.0.0"
       sources."domexception-1.0.1"
       sources."ecc-jsbn-0.1.2"
-      sources."escodegen-1.14.1"
+      sources."escodegen-1.14.3"
       sources."esprima-4.0.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       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-levenshtein-2.0.6"
       sources."forever-agent-0.6.1"
@@ -52624,7 +54232,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"
@@ -52640,7 +54248,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.19"
       sources."lodash.sortby-4.7.0"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
@@ -52658,9 +54266,9 @@ 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."safe-buffer-5.2.0"
+      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"
       sources."source-map-0.6.1"
@@ -52683,7 +54291,7 @@ in
       sources."vscode-languageserver-textdocument-1.0.1"
       sources."vscode-languageserver-types-3.15.1"
       sources."w3c-hr-time-1.0.2"
-      sources."web-tree-sitter-0.16.2"
+      sources."web-tree-sitter-0.16.4"
       sources."webidl-conversions-4.0.2"
       sources."whatwg-encoding-1.0.5"
       sources."whatwg-mimetype-2.3.0"
@@ -52714,7 +54322,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "The browser package manager";
-      homepage = "https://bower.io/";
+      homepage = http://bower.io/;
       license = "MIT";
     };
     production = true;
@@ -52825,9 +54433,9 @@ in
       sources."signal-exit-3.0.3"
       sources."sort-keys-1.1.2"
       sources."sort-keys-length-1.0.1"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."sprintf-js-1.0.3"
       sources."strip-bom-2.0.0"
@@ -52844,7 +54452,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Generate nix expressions to fetch bower dependencies";
-      homepage = "https://github.com/rvl/bower2nix";
+      homepage = https://github.com/rvl/bower2nix;
       license = "GPL-3.0";
     };
     production = true;
@@ -52854,17 +54462,21 @@ 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.1.1"
+      sources."acorn-7.4.0"
       sources."acorn-node-1.8.2"
-      sources."acorn-walk-7.1.1"
-      sources."asn1.js-4.10.1"
+      sources."acorn-walk-7.2.0"
+      (sources."asn1.js-4.10.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       (sources."assert-1.5.0" // {
         dependencies = [
           sources."inherits-2.0.1"
@@ -52873,20 +54485,24 @@ in
       })
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
-      sources."bn.js-4.11.8"
+      sources."bn.js-5.1.2"
       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"
-      sources."browserify-rsa-4.0.1"
-      sources."browserify-sign-4.0.4"
+      (sources."browserify-rsa-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (sources."browserify-sign-4.2.1" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
       sources."browserify-zlib-0.2.0"
       sources."buffer-5.2.1"
       sources."buffer-from-1.1.1"
@@ -52901,7 +54517,11 @@ 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"
+        ];
+      })
       sources."create-hash-1.2.0"
       sources."create-hmac-1.1.7"
       sources."crypto-browserify-3.12.0"
@@ -52910,10 +54530,18 @@ in
       sources."deps-sort-2.0.1"
       sources."des.js-1.0.1"
       sources."detective-5.2.0"
-      sources."diffie-hellman-5.0.3"
+      (sources."diffie-hellman-5.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."domain-browser-1.2.0"
       sources."duplexer2-0.1.4"
-      sources."elliptic-6.5.2"
+      (sources."elliptic-6.5.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."events-2.1.0"
       sources."evp_bytestokey-1.0.3"
       sources."fast-safe-stringify-2.0.7"
@@ -52944,13 +54572,17 @@ in
       sources."labeled-stream-splicer-2.0.2"
       sources."lodash.memoize-3.0.4"
       sources."md5.js-1.3.5"
-      sources."miller-rabin-4.0.1"
+      (sources."miller-rabin-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
       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"
@@ -52961,10 +54593,14 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.6"
       sources."path-platform-0.11.15"
-      sources."pbkdf2-3.0.17"
+      sources."pbkdf2-3.1.1"
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
-      sources."public-encrypt-4.0.3"
+      (sources."public-encrypt-4.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."punycode-1.4.1"
       sources."querystring-0.2.0"
       sources."querystring-es3-0.2.1"
@@ -52979,16 +54615,16 @@ in
       })
       sources."resolve-1.17.0"
       sources."ripemd160-2.0.2"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.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."source-map-0.5.7"
       sources."stream-browserify-2.0.2"
       sources."stream-combiner2-1.1.1"
-      (sources."stream-http-3.1.0" // {
+      (sources."stream-http-3.1.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
         ];
@@ -53049,10 +54685,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.4"
+      sources."@types/node-13.13.15"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.2.16"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."ansi-regex-1.1.1"
       sources."ansi-styles-2.2.1"
       sources."append-0.1.1"
@@ -53064,7 +54700,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
@@ -53081,7 +54717,7 @@ in
         ];
       })
       sources."blob-to-buffer-1.2.8"
-      sources."bn.js-4.11.8"
+      sources."bn.js-4.11.9"
       sources."bncode-0.5.3"
       sources."brace-expansion-1.1.11"
       sources."buffer-alloc-1.2.0"
@@ -53095,14 +54731,14 @@ in
       sources."caseless-0.12.0"
       (sources."castv2-0.1.10" // {
         dependencies = [
-          sources."debug-4.1.1"
+          sources."debug-4.2.0"
         ];
       })
       sources."castv2-client-1.2.0"
       sources."chalk-1.0.0"
-      sources."chrome-dgram-3.0.4"
+      sources."chrome-dgram-3.0.5"
       sources."chrome-dns-1.0.1"
-      sources."chrome-net-3.3.3"
+      sources."chrome-net-3.3.4"
       sources."chromecast-player-0.2.3"
       sources."chromecast-scanner-0.5.0"
       sources."cli-width-1.1.1"
@@ -53110,7 +54746,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.0.0"
       sources."compact2string-1.4.1"
       sources."concat-map-0.0.1"
       (sources."concat-stream-2.0.0" // {
@@ -53146,7 +54782,7 @@ in
       sources."exit-on-epipe-1.0.1"
       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."fifo-0.1.4"
       (sources."figures-1.7.0" // {
@@ -53172,7 +54808,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"
@@ -53211,7 +54847,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 = [
@@ -53290,7 +54926,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 = [
@@ -53337,12 +54973,12 @@ in
       sources."run-series-1.1.8"
       sources."rusha-0.8.13"
       sources."rx-2.5.3"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       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 = [
@@ -53367,9 +55003,9 @@ in
         ];
       })
       sources."single-line-log-0.4.1"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."speedometer-0.1.4"
       sources."srt2vtt-1.3.1"
@@ -53443,21 +55079,34 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  clean-css = nodeEnv.buildNodePackage {
-    name = "clean-css";
-    packageName = "clean-css";
-    version = "4.2.3";
+  clean-css-cli = nodeEnv.buildNodePackage {
+    name = "clean-css-cli";
+    packageName = "clean-css-cli";
+    version = "4.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz";
-      sha512 = "VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==";
+      url = "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-4.3.0.tgz";
+      sha512 = "8GHZfr+mG3zB/Lgqrr27qHBFsPSn0fyEI3f2rIZpxPxUbn2J6A8xyyeBRVTW8duDuXigN0s80vsXiXJOEFIO5Q==";
     };
     dependencies = [
+      sources."balanced-match-1.0.0"
+      sources."brace-expansion-1.1.11"
+      sources."clean-css-4.2.3"
+      sources."commander-2.20.3"
+      sources."concat-map-0.0.1"
+      sources."fs.realpath-1.0.0"
+      sources."glob-7.1.6"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."minimatch-3.0.4"
+      sources."once-1.4.0"
+      sources."path-is-absolute-1.0.1"
       sources."source-map-0.6.1"
+      sources."wrappy-1.0.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
-      description = "A well-tested CSS minifier";
-      homepage = "https://github.com/jakubpawlowicz/clean-css";
+      description = "A command-line interface to clean-css CSS optimization library";
+      homepage = "https://github.com/jakubpawlowicz/clean-css-cli#readme";
       license = "MIT";
     };
     production = true;
@@ -53467,10 +55116,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 = {
@@ -53484,10 +55133,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"
@@ -53507,10 +55156,10 @@ in
   coc-eslint = nodeEnv.buildNodePackage {
     name = "coc-eslint";
     packageName = "coc-eslint";
-    version = "1.2.6";
+    version = "1.2.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-eslint/-/coc-eslint-1.2.6.tgz";
-      sha512 = "2vOL35E7kIig1evMUj/bIij9AjtEdTI35sshaf1VeLSqTnFc9Owbd4glHVeY4q76t0EsTyLkuqm7Q1QsGR/7iw==";
+      url = "https://registry.npmjs.org/coc-eslint/-/coc-eslint-1.2.7.tgz";
+      sha512 = "an8yOGLe0t7RT3LFSSDYP7oEqeYmQHTDU9yEeaVXy42W+4MYVsf771F2t1BMvjg3AjkpF9WA7ztM9lKck6DBMA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53524,10 +55173,10 @@ in
   coc-git = nodeEnv.buildNodePackage {
     name = "coc-git";
     packageName = "coc-git";
-    version = "1.7.11";
+    version = "1.8.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-git/-/coc-git-1.7.11.tgz";
-      sha512 = "4fifGZfy4vLhoKV1riYb3FhOuOUyd98KNCeUg2vG6f9qjbL+VXE8rJgigHMuGWBIJMbJf6NTLbPFRjuUewu0LQ==";
+      url = "https://registry.npmjs.org/coc-git/-/coc-git-1.8.1.tgz";
+      sha512 = "C9un9MiSk9rZ2ATOdBeTTH/39sHzQJf5rJnuVqNNyjTECIdzsL0Hbb8/CffFrB82z4tDfru2dncjd5fnz/OTOQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53542,14 +55191,15 @@ in
   coc-go = nodeEnv.buildNodePackage {
     name = "coc-go";
     packageName = "coc-go";
-    version = "0.7.0";
+    version = "0.9.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-go/-/coc-go-0.7.0.tgz";
-      sha512 = "ntDgRtLshBtxUuUXkkxH2S+xUWZW86ptrLO0pe74MzeS6m/Z744QvwSor+abHUTHO370nrUEUtGaQDUEh9p2BA==";
+      url = "https://registry.npmjs.org/coc-go/-/coc-go-0.9.2.tgz";
+      sha512 = "2w3kFR0SG4zBJ1mEd4eaCXB+LIdbZxkaSpivojRbiwNBc6Z6gfcqcAl841lGxr9Ry4R4jPGjnGH0N+08Ectg1Q==";
     };
     dependencies = [
       sources."isexe-2.0.0"
-      sources."tslib-1.11.1"
+      sources."node-fetch-2.6.0"
+      sources."tslib-2.0.0"
       sources."which-2.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -53587,7 +55237,7 @@ in
       sha512 = "gr0GBKeew88n8hcn4fkzIcBruhih7YAqBd7ldsYjoG2qZhjPEj/arYESFOYgooX1jYuxCpQYH526EXXzs4BGRQ==";
     };
     dependencies = [
-      sources."typescript-3.8.3"
+      sources."typescript-3.9.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -53619,10 +55269,10 @@ in
   coc-java = nodeEnv.buildNodePackage {
     name = "coc-java";
     packageName = "coc-java";
-    version = "1.4.10";
+    version = "1.4.11";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-java/-/coc-java-1.4.10.tgz";
-      sha512 = "WgJuqBpxWM0c1DHDl+UZyDzdD1vdcGInWOMs4bB+dVfCbXktTUEweFty2HViue6G9Clql5hu2+6VB2K3Jx+0Yg==";
+      url = "https://registry.npmjs.org/coc-java/-/coc-java-1.4.11.tgz";
+      sha512 = "Dh6q45+NKNqFxWXWOMD5eq74Egr0iuWq9nO6T/+L3yd4FL+b+whFFSdWiehifJQwx83lAGQ3TjdEjLnUT29+/Q==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53655,10 +55305,10 @@ in
   coc-json = nodeEnv.buildNodePackage {
     name = "coc-json";
     packageName = "coc-json";
-    version = "1.2.5";
+    version = "1.2.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-json/-/coc-json-1.2.5.tgz";
-      sha512 = "j8EAdxXxKxc5zHwCzdGAcnXzDXjtfbL6fNb9QIlBi2CkMIoARFyU4uZsIkMoROTMPaffHDFyzyAW2UJpbIJ0WQ==";
+      url = "https://registry.npmjs.org/coc-json/-/coc-json-1.2.6.tgz";
+      sha512 = "PAytSZ30TWoEHOfi2V3Y944u5q1WHNVhjsKyNnggm8CcgYAulWJiCzxSsmKBLw+DbRLqygGUdO3cOIbQeJCm5A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53672,10 +55322,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 = {
@@ -53690,13 +55340,12 @@ in
   coc-metals = nodeEnv.buildNodePackage {
     name = "coc-metals";
     packageName = "coc-metals";
-    version = "0.8.1";
+    version = "0.9.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-metals/-/coc-metals-0.8.1.tgz";
-      sha512 = "69jOo9oD2JJUo5bMeoV5lcgaAJzMWO7KzWllckc+ZOGB46dE2Qev4MogRnwE/94GI6qc8Cx4RiMoRRLXYIWhyg==";
+      url = "https://registry.npmjs.org/coc-metals/-/coc-metals-0.9.1.tgz";
+      sha512 = "BMM8RIPR7HPAqOeQ+tqf+emtuUFATz5Kam9TUN3I4g1URFrI3pthnx6N5s6h/sdtRiwdCLo8vPie58y+Bhx4EQ==";
     };
     dependencies = [
-      sources."@babel/runtime-7.9.6"
       sources."@chemzqm/neovim-5.1.9"
       sources."async-2.6.3"
       sources."await-semaphore-0.1.3"
@@ -53708,14 +55357,14 @@ in
       sources."concat-map-0.0.1"
       sources."date-format-2.1.0"
       sources."debounce-1.2.0"
-      sources."debug-3.2.6"
+      sources."debug-4.2.0"
       sources."deep-extend-0.6.0"
       sources."event-lite-0.1.2"
       sources."fast-diff-1.2.0"
       sources."fb-watchman-2.0.1"
       sources."flatted-2.0.2"
-      sources."follow-redirects-1.11.0"
-      sources."fp-ts-2.5.4"
+      sources."follow-redirects-1.12.1"
+      sources."fp-ts-2.8.1"
       sources."fs-extra-8.1.0"
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
@@ -53729,20 +55378,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."log4js-5.3.0" // {
-        dependencies = [
-          sources."debug-4.1.1"
-        ];
-      })
-      (sources."metals-languageclient-0.2.1" // {
+      sources."lodash-4.17.19"
+      sources."log4js-5.3.0"
+      (sources."metals-languageclient-0.2.8" // {
         dependencies = [
           sources."mkdirp-1.0.4"
           sources."semver-7.3.2"
@@ -53766,30 +55411,25 @@ 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"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."semver-6.3.0"
       sources."shell-quote-1.7.2"
-      (sources."streamroller-2.2.4" // {
-        dependencies = [
-          sources."debug-4.1.1"
-        ];
-      })
+      sources."streamroller-2.2.4"
       sources."strip-json-comments-2.0.1"
       sources."tar-4.4.13"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."tunnel-0.0.6"
       sources."universalify-0.1.2"
       sources."uuid-3.4.0"
       sources."vscode-jsonrpc-5.0.1"
       sources."vscode-languageserver-protocol-3.15.3"
       sources."vscode-languageserver-types-3.15.1"
-      sources."vscode-uri-2.1.1"
+      sources."vscode-uri-2.1.2"
       sources."which-1.3.1"
       sources."wrappy-1.0.2"
       sources."yallist-3.1.1"
@@ -53824,29 +55464,43 @@ in
   coc-prettier = nodeEnv.buildNodePackage {
     name = "coc-prettier";
     packageName = "coc-prettier";
-    version = "1.1.12";
+    version = "1.1.17";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-prettier/-/coc-prettier-1.1.12.tgz";
-      sha512 = "NHEbnnWjVoWCi9B6o6pzOLiXyntqG0ywvfSWuaBiJZP8eNPl/MP+LlwhGEcfR0f7PVCLjZzb/2a/3giYBXYpEQ==";
+      url = "https://registry.npmjs.org/coc-prettier/-/coc-prettier-1.1.17.tgz";
+      sha512 = "KwHA9HvRs4W6OKd+aVa7/R2YzyVSogWpPUVX8wJ8vBEp5U2VHqfjwhyvN9BFEo1FEkyigXG6DI44jtq47eE5YQ==";
     };
     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.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.4"
-      sources."@typescript-eslint/experimental-utils-1.13.0"
-      sources."@typescript-eslint/parser-1.13.0"
-      sources."@typescript-eslint/typescript-estree-1.13.0"
-      sources."acorn-6.4.1"
+      sources."@types/json-schema-7.0.5"
+      sources."@typescript-eslint/experimental-utils-3.8.0"
+      sources."@typescript-eslint/parser-3.8.0"
+      sources."@typescript-eslint/types-3.8.0"
+      sources."@typescript-eslint/typescript-estree-3.8.0"
+      sources."@typescript-eslint/visitor-keys-3.8.0"
+      sources."acorn-7.4.0"
       sources."acorn-jsx-5.2.0"
-      sources."ajv-6.12.2"
-      sources."ajv-keywords-3.4.1"
-      sources."ansi-align-2.0.0"
-      sources."ansi-escapes-3.2.0"
-      sources."ansi-regex-4.1.0"
+      sources."ajv-6.12.3"
+      sources."ajv-keywords-3.5.2"
+      (sources."ansi-align-2.0.0" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
+      (sources."ansi-escapes-4.3.1" // {
+        dependencies = [
+          sources."type-fest-0.11.0"
+        ];
+      })
+      sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
       sources."arr-diff-2.0.0"
@@ -53871,7 +55525,11 @@ in
       })
       (sources."boxen-1.3.0" // {
         dependencies = [
+          sources."ansi-regex-3.0.0"
           sources."camelcase-4.1.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
         ];
       })
       sources."brace-expansion-1.1.11"
@@ -53887,7 +55545,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-2.1.1"
       sources."camelcase-keys-2.1.0"
-      sources."caniuse-lite-1.0.30001050"
+      sources."caniuse-lite-1.0.30001111"
       sources."capture-stack-trace-1.0.1"
       sources."ccount-1.0.5"
       sources."chalk-2.4.2"
@@ -53917,9 +55575,16 @@ in
         ];
       })
       sources."cli-boxes-1.0.0"
-      sources."cli-cursor-2.1.0"
-      sources."cli-width-2.2.1"
-      sources."cliui-4.1.0"
+      sources."cli-cursor-3.1.0"
+      sources."cli-width-3.0.0"
+      (sources."cliui-4.1.0" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
       sources."clone-regexp-1.0.1"
       sources."code-point-at-1.1.0"
       sources."collapse-white-space-1.0.6"
@@ -53940,10 +55605,14 @@ in
       sources."core-js-3.6.5"
       sources."cosmiconfig-3.1.0"
       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."currently-unhandled-0.4.1"
-      sources."debug-4.1.1"
+      sources."debug-4.2.0"
       sources."decamelize-1.2.0"
       sources."decamelize-keys-1.1.0"
       sources."decode-uri-component-0.2.0"
@@ -53965,7 +55634,7 @@ in
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
           sources."domelementtype-2.0.1"
-          sources."entities-2.0.0"
+          sources."entities-2.0.3"
         ];
       })
       sources."domelementtype-1.3.1"
@@ -53973,21 +55642,22 @@ in
       sources."domutils-1.7.0"
       sources."dot-prop-5.2.0"
       sources."duplexer3-0.1.4"
-      sources."electron-to-chromium-1.3.427"
-      sources."emoji-regex-7.0.3"
+      sources."electron-to-chromium-1.3.520"
+      sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-5.16.0" // {
+      (sources."eslint-6.8.0" // {
         dependencies = [
-          sources."semver-5.7.1"
+          sources."eslint-utils-1.4.3"
+          sources."semver-6.3.0"
         ];
       })
-      sources."eslint-scope-4.0.3"
-      sources."eslint-utils-1.4.3"
-      sources."eslint-visitor-keys-1.1.0"
-      sources."espree-5.0.1"
+      sources."eslint-scope-5.1.0"
+      sources."eslint-utils-2.1.0"
+      sources."eslint-visitor-keys-1.3.0"
+      sources."espree-6.2.1"
       sources."esprima-4.0.1"
       (sources."esquery-1.3.1" // {
         dependencies = [
@@ -54012,8 +55682,12 @@ in
         ];
       })
       sources."external-editor-3.1.0"
-      sources."extglob-0.3.2"
-      sources."fast-deep-equal-3.1.1"
+      (sources."extglob-0.3.2" // {
+        dependencies = [
+          sources."is-extglob-1.0.0"
+        ];
+      })
+      sources."fast-deep-equal-3.1.3"
       (sources."fast-glob-2.2.7" // {
         dependencies = [
           sources."arr-diff-4.0.0"
@@ -54061,8 +55735,6 @@ in
               sources."kind-of-5.1.0"
             ];
           })
-          sources."is-extglob-2.1.1"
-          sources."is-glob-4.0.1"
           (sources."is-number-3.0.0" // {
             dependencies = [
               sources."kind-of-3.2.2"
@@ -54076,7 +55748,7 @@ in
       })
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."figures-2.0.0"
+      sources."figures-3.2.0"
       sources."file-entry-cache-5.0.1"
       sources."filename-regex-2.0.1"
       sources."fill-range-2.2.4"
@@ -54093,11 +55765,17 @@ in
       sources."get-stream-3.0.0"
       sources."get-value-2.0.6"
       sources."glob-7.1.6"
-      sources."glob-base-0.3.0"
-      sources."glob-parent-2.0.0"
+      (sources."glob-base-0.3.0" // {
+        dependencies = [
+          sources."glob-parent-2.0.0"
+          sources."is-extglob-1.0.0"
+          sources."is-glob-2.0.1"
+        ];
+      })
+      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."globals-12.4.0"
       (sources."globby-6.1.0" // {
         dependencies = [
           sources."pify-2.3.0"
@@ -54142,9 +55820,15 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      (sources."inquirer-6.5.2" // {
+      (sources."inquirer-7.3.3" // {
         dependencies = [
-          sources."strip-ansi-5.2.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."strip-ansi-6.0.0"
+          sources."supports-color-7.1.0"
         ];
       })
       sources."invert-kv-2.0.0"
@@ -54174,10 +55858,10 @@ in
       sources."is-dotfile-1.0.3"
       sources."is-equal-shallow-0.1.3"
       sources."is-extendable-0.1.1"
-      sources."is-extglob-1.0.0"
+      sources."is-extglob-2.1.1"
       sources."is-finite-1.1.0"
-      sources."is-fullwidth-code-point-2.0.0"
-      sources."is-glob-2.0.1"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-glob-4.0.1"
       sources."is-hexadecimal-1.0.4"
       sources."is-installed-globally-0.1.0"
       sources."is-npm-1.0.0"
@@ -54204,9 +55888,9 @@ in
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-2.1.0"
-      sources."js-base64-2.5.2"
+      sources."js-base64-2.6.4"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
@@ -54222,9 +55906,8 @@ in
         ];
       })
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."lodash.merge-4.6.2"
-      sources."lodash.unescape-4.0.1"
       sources."log-symbols-2.2.0"
       sources."loglevel-1.6.8"
       (sources."loglevel-colored-level-prefix-1.0.0" // {
@@ -54250,15 +55933,16 @@ in
       sources."math-random-1.0.4"
       sources."mathml-tag-names-2.1.3"
       sources."mdast-util-compact-1.0.4"
-      (sources."mem-4.3.0" // {
+      sources."mem-4.3.0"
+      sources."meow-3.7.0"
+      sources."merge2-1.4.1"
+      (sources."micromatch-2.3.11" // {
         dependencies = [
-          sources."mimic-fn-2.1.0"
+          sources."is-extglob-1.0.0"
+          sources."is-glob-2.0.1"
         ];
       })
-      sources."meow-3.7.0"
-      sources."merge2-1.3.0"
-      sources."micromatch-2.3.11"
-      sources."mimic-fn-1.2.0"
+      sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minimist-options-3.0.2"
@@ -54269,7 +55953,7 @@ in
       })
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
-      sources."mute-stream-0.0.7"
+      sources."mute-stream-0.0.8"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
           sources."arr-diff-4.0.0"
@@ -54279,7 +55963,11 @@ in
       })
       sources."natural-compare-1.4.0"
       sources."nice-try-1.0.5"
-      sources."normalize-package-data-2.5.0"
+      (sources."normalize-package-data-2.5.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
       sources."normalize-path-2.1.1"
       sources."normalize-range-0.1.2"
       sources."normalize-selector-0.2.0"
@@ -54311,7 +55999,7 @@ in
         ];
       })
       sources."once-1.4.0"
-      sources."onetime-2.0.1"
+      sources."onetime-5.1.1"
       sources."optionator-0.8.3"
       (sources."os-locale-3.1.0" // {
         dependencies = [
@@ -54326,10 +56014,19 @@ in
       sources."p-limit-1.3.0"
       sources."p-locate-2.0.0"
       sources."p-try-1.0.0"
-      sources."package-json-4.0.1"
+      (sources."package-json-4.0.1" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
       sources."parent-module-1.0.1"
       sources."parse-entities-1.2.2"
-      sources."parse-glob-3.0.4"
+      (sources."parse-glob-3.0.4" // {
+        dependencies = [
+          sources."is-extglob-1.0.0"
+          sources."is-glob-2.0.1"
+        ];
+      })
       sources."parse-json-3.0.0"
       sources."pascalcase-0.1.1"
       sources."path-dirname-1.0.2"
@@ -54378,7 +56075,7 @@ in
       sources."prepend-http-1.0.4"
       sources."preserve-0.2.0"
       sources."prettier-2.0.5"
-      (sources."prettier-eslint-9.0.1" // {
+      (sources."prettier-eslint-10.1.1" // {
         dependencies = [
           sources."prettier-1.19.1"
         ];
@@ -54414,7 +56111,11 @@ in
           sources."kind-of-6.0.3"
         ];
       })
-      sources."rc-1.2.8"
+      (sources."rc-1.2.8" // {
+        dependencies = [
+          sources."strip-json-comments-2.0.1"
+        ];
+      })
       sources."read-pkg-1.1.0"
       (sources."read-pkg-up-1.0.1" // {
         dependencies = [
@@ -54453,16 +56154,20 @@ in
       })
       sources."resolve-from-4.0.0"
       sources."resolve-url-0.2.1"
-      sources."restore-cursor-2.0.0"
+      sources."restore-cursor-3.1.0"
       sources."ret-0.1.15"
       sources."rimraf-2.6.3"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
-      sources."safe-buffer-5.2.0"
+      sources."rxjs-6.6.2"
+      sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."semver-5.5.0"
-      sources."semver-diff-2.1.0"
+      sources."semver-7.3.2"
+      (sources."semver-diff-2.1.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
       sources."set-blocking-2.0.0"
       (sources."set-value-2.0.1" // {
         dependencies = [
@@ -54473,7 +56178,11 @@ in
       sources."shebang-regex-1.0.0"
       sources."signal-exit-3.0.3"
       sources."slash-1.0.0"
-      sources."slice-ansi-2.1.0"
+      (sources."slice-ansi-2.1.0" // {
+        dependencies = [
+          sources."is-fullwidth-code-point-2.0.0"
+        ];
+      })
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -54505,9 +56214,9 @@ in
       sources."source-map-0.6.1"
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."specificity-0.3.2"
       sources."split-string-3.1.0"
@@ -54530,12 +56239,16 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."string-width-2.1.1"
+      (sources."string-width-4.2.0" // {
+        dependencies = [
+          sources."strip-ansi-6.0.0"
+        ];
+      })
       sources."string_decoder-1.3.0"
       sources."stringify-entities-1.3.2"
-      (sources."strip-ansi-4.0.0" // {
+      (sources."strip-ansi-5.2.0" // {
         dependencies = [
-          sources."ansi-regex-3.0.0"
+          sources."ansi-regex-4.1.0"
         ];
       })
       sources."strip-bom-2.0.0"
@@ -54545,10 +56258,11 @@ in
           sources."get-stdin-4.0.1"
         ];
       })
-      sources."strip-json-comments-2.0.1"
+      sources."strip-json-comments-3.1.1"
       sources."style-search-0.1.0"
       (sources."stylelint-8.4.0" // {
         dependencies = [
+          sources."ansi-regex-3.0.0"
           sources."camelcase-4.1.0"
           sources."camelcase-keys-4.2.0"
           sources."debug-3.2.6"
@@ -54557,6 +56271,7 @@ in
           sources."globby-7.1.1"
           sources."ignore-3.3.10"
           sources."indent-string-3.2.0"
+          sources."is-fullwidth-code-point-2.0.0"
           sources."load-json-file-4.0.0"
           sources."map-obj-2.0.0"
           sources."meow-4.0.1"
@@ -54566,6 +56281,8 @@ in
           sources."read-pkg-up-3.0.0"
           sources."redent-2.0.0"
           sources."slice-ansi-1.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
           sources."strip-bom-3.0.0"
           sources."strip-indent-2.0.0"
           sources."table-4.0.3"
@@ -54578,8 +56295,9 @@ in
       sources."svg-tags-1.0.0"
       (sources."table-5.4.6" // {
         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."temp-dir-1.0.0"
@@ -54601,11 +56319,17 @@ in
       sources."trim-newlines-1.0.0"
       sources."trim-trailing-lines-1.1.3"
       sources."trough-1.0.5"
-      sources."tslib-1.11.1"
-      sources."tslint-5.20.1"
-      sources."tsutils-2.29.0"
+      sources."tslib-1.13.0"
+      (sources."tslint-5.20.1" // {
+        dependencies = [
+          sources."semver-5.7.1"
+          sources."tsutils-2.29.0"
+        ];
+      })
+      sources."tsutils-3.17.1"
       sources."type-check-0.3.2"
-      sources."typescript-3.8.3"
+      sources."type-fest-0.8.1"
+      sources."typescript-3.9.7"
       sources."unherit-1.1.3"
       sources."unified-6.2.0"
       sources."union-value-1.0.1"
@@ -54636,26 +56360,22 @@ in
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
+      sources."v8-compile-cache-2.1.1"
       sources."validate-npm-package-license-3.0.4"
       sources."vfile-2.3.0"
       sources."vfile-location-2.0.6"
       sources."vfile-message-1.1.1"
-      (sources."vue-eslint-parser-2.0.3" // {
+      sources."vue-eslint-parser-7.1.0"
+      sources."which-1.3.1"
+      sources."which-module-2.0.0"
+      (sources."widest-line-2.0.1" // {
         dependencies = [
-          sources."acorn-5.7.4"
-          (sources."acorn-jsx-3.0.1" // {
-            dependencies = [
-              sources."acorn-3.3.0"
-            ];
-          })
-          sources."debug-3.2.6"
-          sources."eslint-scope-3.7.3"
-          sources."espree-3.5.4"
+          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."which-1.3.1"
-      sources."which-module-2.0.0"
-      sources."widest-line-2.0.1"
       sources."word-wrap-1.2.3"
       (sources."wrap-ansi-2.1.0" // {
         dependencies = [
@@ -54673,7 +56393,14 @@ in
       sources."xtend-4.0.2"
       sources."y18n-3.2.1"
       sources."yallist-2.1.2"
-      sources."yargs-11.1.1"
+      (sources."yargs-11.1.1" // {
+        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."yargs-parser-9.0.2" // {
         dependencies = [
           sources."camelcase-4.1.0"
@@ -54727,10 +56454,10 @@ in
   coc-rls = nodeEnv.buildNodePackage {
     name = "coc-rls";
     packageName = "coc-rls";
-    version = "1.1.5";
+    version = "1.1.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-rls/-/coc-rls-1.1.5.tgz";
-      sha512 = "JXM7iLC1rlu7IsnGp7Rwt4sCtnaAQdQQ+brC/HhAWApOZjazPclSs+/IwPqot9fwcitjE0me7BiEyErx07qyFw==";
+      url = "https://registry.npmjs.org/coc-rls/-/coc-rls-1.1.6.tgz";
+      sha512 = "/XUM5UjOtnVBHghxBtwHz6C2lWnWgF8kX2+uocc356c2Bn8msQa6mrN0lijhlpDlsomSMPkGpZiY4zS1tNakMw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -54745,10 +56472,10 @@ in
   coc-rust-analyzer = nodeEnv.buildNodePackage {
     name = "coc-rust-analyzer";
     packageName = "coc-rust-analyzer";
-    version = "0.6.1";
+    version = "0.7.14";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.6.1.tgz";
-      sha512 = "zyD0N3RBjBCx3KiBMaT3wwo3p+9VpANIXxhnSy/iByxN8UkgHlH6vawaL3hQu3sEGnhNrlql+A7qZx1qM3fjsg==";
+      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.7.14.tgz";
+      sha512 = "nTS7mcGTbo+5bLdhod4GOVTODb/wDdnKgVNLpU75q//kwQuf0psUPp3t/XFcYXxzbskMwAcaEXyC27cGek7+Cw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -54781,10 +56508,10 @@ in
   coc-snippets = nodeEnv.buildNodePackage {
     name = "coc-snippets";
     packageName = "coc-snippets";
-    version = "2.1.26";
+    version = "2.1.28";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-snippets/-/coc-snippets-2.1.26.tgz";
-      sha512 = "4/XHrxJV5kN0aCrW/Kkw6s19ORs/V26zzZzQ/jFP8BT+HWZegbqPZIP9c+xB9nwknCwa9Tovx3mzcUMq0w0KMw==";
+      url = "https://registry.npmjs.org/coc-snippets/-/coc-snippets-2.1.28.tgz";
+      sha512 = "okVbjhKbFH6iTPeTpjxhtYtBBTFy5neOQYtn1H9CrbPpjnjodWzBDq3izoXCsC4BMMyBRzOwmwmJ0eA65S6JnQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -54821,35 +56548,34 @@ in
       sha512 = "+dVV5p9OBXyBGKFPQAS5a1SFvikSbYtYXyzPCkvYqYAqDiJlmFVEyi1aP+FI17Y/094u7mFeDQJlSd7IXVgO7w==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.8.3"
-      sources."@babel/core-7.9.6"
-      sources."@babel/generator-7.9.6"
-      sources."@babel/helper-function-name-7.9.5"
-      sources."@babel/helper-get-function-arity-7.8.3"
-      sources."@babel/helper-member-expression-to-functions-7.8.3"
-      sources."@babel/helper-module-imports-7.8.3"
-      sources."@babel/helper-module-transforms-7.9.0"
-      sources."@babel/helper-optimise-call-expression-7.8.3"
-      sources."@babel/helper-replace-supers-7.9.6"
-      sources."@babel/helper-simple-access-7.8.3"
-      sources."@babel/helper-split-export-declaration-7.8.3"
-      sources."@babel/helper-validator-identifier-7.9.5"
-      sources."@babel/helpers-7.9.6"
-      sources."@babel/highlight-7.9.0"
-      sources."@babel/parser-7.9.6"
-      sources."@babel/template-7.8.6"
-      sources."@babel/traverse-7.9.6"
-      sources."@babel/types-7.9.6"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/core-7.11.1"
+      sources."@babel/generator-7.11.0"
+      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.1"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.0"
+      sources."@babel/types-7.11.0"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
-      sources."@types/events-3.0.0"
-      sources."@types/glob-7.1.1"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.13.4"
+      sources."@types/node-14.0.27"
       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.3"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -54870,7 +56596,7 @@ in
       sources."assign-symbols-1.0.0"
       sources."astral-regex-1.0.0"
       sources."atob-2.1.2"
-      (sources."autoprefixer-9.7.6" // {
+      (sources."autoprefixer-9.8.6" // {
         dependencies = [
           sources."postcss-value-parser-4.1.0"
         ];
@@ -54888,7 +56614,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."browserslist-4.12.0"
+      sources."browserslist-4.13.0"
       sources."cache-base-1.0.1"
       sources."call-me-maybe-1.0.1"
       sources."caller-callsite-2.0.0"
@@ -54896,7 +56622,7 @@ in
       sources."callsites-2.0.0"
       sources."camelcase-4.1.0"
       sources."camelcase-keys-4.2.0"
-      sources."caniuse-lite-1.0.30001050"
+      sources."caniuse-lite-1.0.30001111"
       sources."ccount-1.0.5"
       sources."chalk-2.4.2"
       sources."character-entities-1.2.4"
@@ -54925,6 +56651,7 @@ in
       sources."collection-visit-1.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
+      sources."colorette-1.2.1"
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       (sources."convert-source-map-1.7.0" // {
@@ -54935,7 +56662,7 @@ in
       sources."copy-descriptor-0.1.1"
       sources."cosmiconfig-5.2.1"
       sources."currently-unhandled-0.4.1"
-      sources."debug-4.1.1"
+      sources."debug-4.2.0"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -54948,17 +56675,18 @@ in
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
           sources."domelementtype-2.0.1"
-          sources."entities-2.0.0"
+          sources."entities-2.0.3"
         ];
       })
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
       sources."dot-prop-5.2.0"
-      sources."electron-to-chromium-1.3.427"
+      sources."electron-to-chromium-1.3.520"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
+      sources."escalade-3.0.2"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
       sources."execall-2.0.0"
@@ -54994,7 +56722,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       (sources."fast-glob-2.2.7" // {
         dependencies = [
           sources."micromatch-3.1.10"
@@ -55045,7 +56773,7 @@ in
       sources."hosted-git-info-2.8.8"
       sources."html-tags-3.1.0"
       sources."htmlparser2-3.10.1"
-      sources."ignore-5.1.4"
+      sources."ignore-5.1.8"
       (sources."import-fresh-2.0.0" // {
         dependencies = [
           sources."resolve-from-3.0.0"
@@ -55090,7 +56818,7 @@ in
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."jsesc-2.5.2"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-traverse-0.4.1"
@@ -55104,7 +56832,7 @@ in
         ];
       })
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."log-symbols-3.0.0"
       sources."longest-streak-2.0.4"
       sources."loud-rejection-1.6.0"
@@ -55116,7 +56844,7 @@ in
       sources."mathml-tag-names-2.1.3"
       sources."mdast-util-compact-1.0.4"
       sources."meow-5.0.0"
-      sources."merge2-1.3.0"
+      sources."merge2-1.4.1"
       (sources."micromatch-4.0.2" // {
         dependencies = [
           sources."braces-3.0.2"
@@ -55136,7 +56864,7 @@ in
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
       sources."nanomatch-1.2.13"
-      sources."node-releases-1.1.53"
+      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"
@@ -55174,9 +56902,8 @@ in
       })
       sources."picomatch-2.2.2"
       sources."pify-4.0.1"
-      sources."pkg-up-2.0.0"
       sources."posix-character-classes-0.1.1"
-      (sources."postcss-7.0.29" // {
+      (sources."postcss-7.0.32" // {
         dependencies = [
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
@@ -55195,7 +56922,7 @@ in
       sources."postcss-resolve-nested-selector-0.1.1"
       sources."postcss-safe-parser-4.0.2"
       sources."postcss-sass-0.3.5"
-      sources."postcss-scss-2.0.0"
+      sources."postcss-scss-2.1.1"
       sources."postcss-selector-parser-3.1.2"
       sources."postcss-syntax-0.36.2"
       sources."postcss-value-parser-3.3.1"
@@ -55217,7 +56944,7 @@ in
       sources."resolve-url-0.2.1"
       sources."ret-0.1.15"
       sources."rimraf-2.6.3"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."semver-5.7.1"
       (sources."set-value-2.0.1" // {
@@ -55265,9 +56992,9 @@ in
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."specificity-0.4.1"
       sources."split-string-3.1.0"
@@ -55415,9 +57142,9 @@ in
       sha512 = "5Zxv2Adtb6Mlpv2YdKErhf8ntxiBl1UyrbEqo7gR9nFIAfi3o0Ue6TJTpZfOhQViFQxLjJAS65IQVRaNlbhkxw==";
     };
     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.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"
@@ -55437,7 +57164,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -55448,10 +57175,10 @@ in
       sources."semver-5.7.1"
       sources."sprintf-js-1.0.3"
       sources."supports-color-5.5.0"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."tslint-5.20.1"
       sources."tsutils-2.29.0"
-      sources."typescript-3.8.3"
+      sources."typescript-3.9.7"
       sources."wrappy-1.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -55500,13 +57227,13 @@ in
   coc-tsserver = nodeEnv.buildNodePackage {
     name = "coc-tsserver";
     packageName = "coc-tsserver";
-    version = "1.5.1";
+    version = "1.5.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-1.5.1.tgz";
-      sha512 = "33mkWOHgvB7hS/mfhCt4PfHAepnLQaTMvvsCWN3daks7yYnOdeMFplD5UORRRvvcJoOEdQBtXXu960I/Xe4MCg==";
+      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-1.5.3.tgz";
+      sha512 = "8izLeNvlIted2ilje94KmEh/yGX4pTHajWuPBjP9GeM4JZI0RK7VS+SlkRSJB6IjJkubs7VvTnp3ahVYJecZvw==";
     };
     dependencies = [
-      sources."typescript-3.8.3"
+      sources."typescript-3.9.5"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -55521,15 +57248,15 @@ in
   coc-vetur = nodeEnv.buildNodePackage {
     name = "coc-vetur";
     packageName = "coc-vetur";
-    version = "1.1.10";
+    version = "1.1.11";
     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.11.tgz";
+      sha512 = "a1yV0MtIe6uV0hIhIVUonFTqrykV5wmio8NRlIPYxYgmYq05t0glBK1P8AOPkHi9o4K0kJB4XGLiOJXnTOBNig==";
     };
     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.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.scandir-2.1.3" // {
@@ -55554,11 +57281,11 @@ 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/events-3.0.0"
-      sources."@types/glob-7.1.1"
-      sources."@types/json-schema-7.0.4"
+      sources."@types/glob-7.1.3"
+      sources."@types/json-schema-7.0.5"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.13.4"
+      sources."@types/minimist-1.2.0"
+      sources."@types/node-14.0.27"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
@@ -55575,14 +57302,14 @@ in
         ];
       })
       sources."abbrev-1.1.1"
-      sources."acorn-7.1.1"
+      sources."acorn-7.4.0"
       sources."acorn-jsx-5.2.0"
       (sources."aggregate-error-3.0.1" // {
         dependencies = [
           sources."indent-string-4.0.0"
         ];
       })
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -55597,20 +57324,7 @@ in
       })
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
-      (sources."anymatch-1.3.2" // {
-        dependencies = [
-          sources."arr-diff-2.0.0"
-          sources."array-unique-0.2.1"
-          sources."braces-1.8.5"
-          sources."expand-brackets-0.1.5"
-          sources."extglob-0.3.2"
-          sources."is-buffer-1.1.6"
-          sources."is-extglob-1.0.0"
-          sources."is-glob-2.0.1"
-          sources."kind-of-3.2.2"
-          sources."micromatch-2.3.11"
-        ];
-      })
+      sources."anymatch-3.1.1"
       sources."argparse-1.0.10"
       sources."arr-diff-4.0.0"
       sources."arr-flatten-1.1.0"
@@ -55624,7 +57338,6 @@ in
       sources."assign-symbols-1.0.0"
       sources."astral-regex-1.0.0"
       sources."async-1.5.2"
-      sources."async-each-1.0.3"
       sources."atob-2.1.2"
       sources."bail-1.0.5"
       sources."balanced-match-1.0.0"
@@ -55633,8 +57346,7 @@ in
           sources."define-property-1.0.0"
         ];
       })
-      sources."binary-extensions-1.13.1"
-      sources."bindings-1.5.0"
+      sources."binary-extensions-2.1.0"
       sources."bootstrap-vue-helper-json-1.1.1"
       (sources."boxen-3.2.0" // {
         dependencies = [
@@ -55671,11 +57383,12 @@ in
       sources."character-entities-legacy-1.1.4"
       sources."character-reference-invalid-1.1.4"
       sources."chardet-0.7.0"
-      (sources."chokidar-1.5.2" // {
+      (sources."chokidar-3.0.2" // {
         dependencies = [
-          sources."glob-parent-2.0.0"
-          sources."is-extglob-1.0.0"
-          sources."is-glob-2.0.1"
+          sources."braces-3.0.2"
+          sources."fill-range-7.0.1"
+          sources."is-number-7.0.0"
+          sources."to-regex-range-5.0.1"
         ];
       })
       sources."ci-info-2.0.0"
@@ -55700,7 +57413,7 @@ in
       sources."clean-stack-2.2.0"
       sources."cli-boxes-2.2.0"
       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"
@@ -55734,9 +57447,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.1.1"
+      sources."debug-3.2.6"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -55756,10 +57469,10 @@ in
           sources."array-union-2.1.0"
           sources."braces-3.0.2"
           sources."dir-glob-3.0.1"
-          sources."fast-glob-3.2.2"
+          sources."fast-glob-3.2.4"
           sources."fill-range-7.0.1"
           sources."globby-10.0.2"
-          sources."ignore-5.1.4"
+          sources."ignore-5.1.8"
           sources."is-number-7.0.0"
           sources."is-path-inside-3.0.2"
           sources."micromatch-4.0.2"
@@ -55769,7 +57482,22 @@ in
           sources."to-regex-range-5.0.1"
         ];
       })
-      sources."del-cli-3.0.0"
+      (sources."del-cli-3.0.1" // {
+        dependencies = [
+          sources."camelcase-5.3.1"
+          sources."camelcase-keys-6.2.2"
+          sources."indent-string-4.0.0"
+          sources."map-obj-4.1.0"
+          sources."meow-6.1.1"
+          sources."minimist-options-4.1.0"
+          sources."quick-lru-4.0.1"
+          sources."redent-3.0.0"
+          sources."strip-indent-3.0.0"
+          sources."trim-newlines-3.0.0"
+          sources."type-fest-0.13.1"
+          sources."yargs-parser-18.1.3"
+        ];
+      })
       sources."diff-4.0.2"
       sources."dir-glob-2.0.0"
       sources."dlv-1.1.3"
@@ -55790,16 +57518,17 @@ in
               sources."semver-5.7.1"
             ];
           })
+          sources."debug-4.2.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."strip-json-comments-3.1.1"
         ];
       })
       sources."eslint-plugin-vue-6.2.2"
-      sources."eslint-scope-5.0.0"
+      sources."eslint-scope-5.1.0"
       sources."eslint-utils-1.4.3"
-      sources."eslint-visitor-keys-1.1.0"
+      sources."eslint-visitor-keys-1.3.0"
       sources."espree-6.2.1"
       sources."esprima-4.0.1"
       (sources."esquery-1.3.1" // {
@@ -55832,15 +57561,6 @@ in
           sources."ms-2.0.0"
         ];
       })
-      (sources."expand-range-1.8.2" // {
-        dependencies = [
-          sources."fill-range-2.2.4"
-          sources."is-buffer-1.1.6"
-          sources."is-number-2.1.0"
-          sources."isobject-2.1.0"
-          sources."kind-of-3.2.2"
-        ];
-      })
       sources."extend-3.0.2"
       (sources."extend-shallow-3.0.2" // {
         dependencies = [
@@ -55854,7 +57574,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       (sources."fast-glob-2.2.7" // {
         dependencies = [
           (sources."glob-parent-3.1.0" // {
@@ -55866,12 +57586,10 @@ in
       })
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."fastq-1.7.0"
+      sources."fastq-1.8.0"
       sources."fault-1.0.4"
       sources."figures-3.2.0"
       sources."file-entry-cache-5.0.1"
-      sources."file-uri-to-path-1.0.0"
-      sources."filename-regex-2.0.1"
       (sources."fill-range-4.0.0" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -55882,24 +57600,16 @@ in
       sources."flatted-2.0.2"
       sources."fn-name-2.0.1"
       sources."for-in-1.0.2"
-      sources."for-own-0.1.5"
       sources."format-0.2.2"
       sources."fragment-cache-0.2.1"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-1.2.12"
+      sources."fsevents-2.1.3"
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
       sources."get-caller-file-1.0.3"
       sources."get-stream-3.0.0"
       sources."get-value-2.0.6"
       sources."glob-7.1.6"
-      (sources."glob-base-0.3.0" // {
-        dependencies = [
-          sources."glob-parent-2.0.0"
-          sources."is-extglob-1.0.0"
-          sources."is-glob-2.0.1"
-        ];
-      })
       sources."glob-parent-5.1.1"
       sources."glob-to-regexp-0.3.0"
       sources."global-dirs-0.1.1"
@@ -55916,6 +57626,7 @@ in
       })
       sources."graceful-fs-4.2.4"
       sources."gridsome-helper-json-1.0.3"
+      sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       (sources."has-ansi-2.0.0" // {
         dependencies = [
@@ -55933,14 +57644,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-body-ok-link-1.0.4"
       sources."hast-util-is-element-1.0.4"
       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"
@@ -55955,11 +57666,11 @@ 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" // {
         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"
@@ -55975,15 +57686,13 @@ in
       sources."is-alphabetical-1.0.4"
       sources."is-alphanumerical-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-2.0.4"
       sources."is-ci-2.0.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-decimal-1.0.4"
       sources."is-descriptor-1.0.2"
-      sources."is-dotfile-1.0.3"
       sources."is-empty-1.2.0"
-      sources."is-equal-shallow-0.1.3"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
@@ -56004,8 +57713,6 @@ in
       sources."is-path-inside-1.0.1"
       sources."is-plain-obj-1.1.0"
       sources."is-plain-object-2.0.4"
-      sources."is-posix-bracket-0.1.1"
-      sources."is-primitive-2.0.0"
       sources."is-stream-1.1.0"
       sources."is-utf8-0.2.1"
       sources."is-windows-1.0.2"
@@ -56019,7 +57726,7 @@ in
         ];
       })
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."json-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-traverse-0.4.1"
@@ -56035,13 +57742,11 @@ 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.19"
       sources."lodash.assign-4.2.0"
-      sources."lodash.assigninwith-4.2.0"
-      sources."lodash.defaults-4.0.1"
+      sources."lodash.defaults-4.2.0"
       sources."lodash.iteratee-4.7.0"
       sources."lodash.merge-4.6.2"
-      sources."lodash.rest-4.0.5"
       sources."lodash.unescape-4.0.1"
       sources."loglevel-1.6.8"
       (sources."loglevel-colored-level-prefix-1.0.0" // {
@@ -56063,17 +57768,17 @@ in
       sources."map-obj-2.0.0"
       sources."map-visit-1.0.0"
       sources."markdown-table-0.4.0"
-      sources."math-random-1.0.4"
       sources."mem-4.3.0"
       (sources."meow-5.0.0" // {
         dependencies = [
           sources."read-pkg-up-3.0.0"
         ];
       })
-      sources."merge2-1.3.0"
+      sources."merge2-1.4.1"
       sources."micromatch-3.1.10"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
+      sources."min-indent-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minimist-options-3.0.2"
@@ -56086,14 +57791,13 @@ in
       sources."mout-0.5.0"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
-      sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."natural-compare-1.4.0"
       sources."nice-try-1.0.5"
       sources."node-fetch-2.6.0"
       sources."nopt-4.0.3"
       sources."normalize-package-data-2.5.0"
-      sources."normalize-path-2.1.1"
+      sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.0"
       sources."npm-prefix-1.2.0"
       sources."npm-run-path-2.0.2"
@@ -56115,10 +57819,9 @@ in
         ];
       })
       sources."object-visit-1.0.1"
-      sources."object.omit-2.0.1"
       sources."object.pick-1.3.0"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
+      sources."onetime-5.1.1"
       sources."optionator-0.8.3"
       sources."os-homedir-1.0.2"
       (sources."os-locale-3.1.0" // {
@@ -56146,12 +57849,6 @@ in
       sources."parent-module-1.0.1"
       sources."parse-entities-1.2.2"
       sources."parse-gitignore-1.0.1"
-      (sources."parse-glob-3.0.4" // {
-        dependencies = [
-          sources."is-extglob-1.0.0"
-          sources."is-glob-2.0.1"
-        ];
-      })
       sources."parse-json-4.0.0"
       sources."pascalcase-0.1.1"
       sources."path-dirname-1.0.2"
@@ -56178,9 +57875,8 @@ in
       sources."posix-character-classes-0.1.1"
       sources."prelude-ls-1.1.2"
       sources."prepend-http-2.0.0"
-      sources."preserve-0.2.0"
       sources."prettier-1.19.1"
-      (sources."prettier-eslint-9.0.1" // {
+      (sources."prettier-eslint-9.0.2" // {
         dependencies = [
           sources."acorn-6.4.1"
           (sources."acorn-jsx-3.0.1" // {
@@ -56191,8 +57887,9 @@ in
           sources."ansi-escapes-3.2.0"
           sources."ansi-regex-4.1.0"
           sources."cli-cursor-2.1.0"
+          sources."cli-width-2.2.1"
           sources."cross-spawn-6.0.5"
-          sources."debug-3.2.6"
+          sources."debug-4.2.0"
           sources."eslint-5.16.0"
           sources."eslint-scope-4.0.3"
           sources."espree-5.0.1"
@@ -56209,6 +57906,7 @@ in
           (sources."vue-eslint-parser-2.0.3" // {
             dependencies = [
               sources."acorn-5.7.4"
+              sources."debug-3.2.6"
               sources."eslint-scope-3.7.3"
               sources."espree-3.5.4"
             ];
@@ -56225,11 +57923,6 @@ in
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."quick-lru-1.1.0"
-      (sources."randomatic-3.1.1" // {
-        dependencies = [
-          sources."is-number-4.0.0"
-        ];
-      })
       sources."rc-1.2.8"
       sources."read-pkg-3.0.0"
       (sources."read-pkg-up-7.0.1" // {
@@ -56239,7 +57932,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.0.1"
           sources."path-exists-4.0.0"
           (sources."read-pkg-5.2.0" // {
             dependencies = [
@@ -56250,12 +57943,11 @@ in
         ];
       })
       sources."readable-stream-2.3.7"
-      sources."readdirp-2.2.1"
+      sources."readdirp-3.4.0"
       sources."redent-2.0.0"
-      sources."regex-cache-0.4.4"
       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" // {
@@ -56270,7 +57962,6 @@ in
           sources."stringify-entities-1.3.2"
         ];
       })
-      sources."remove-trailing-separator-1.1.0"
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
       sources."replace-ext-1.0.0"
@@ -56287,12 +57978,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.5"
+      sources."sass-formatter-0.4.13"
       sources."sax-1.2.4"
       sources."semver-5.7.1"
       sources."semver-diff-2.1.0"
@@ -56345,9 +58036,9 @@ in
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
       sources."space-separated-tokens-1.1.5"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.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"
@@ -56378,7 +58069,7 @@ in
       sources."strip-eof-1.0.0"
       sources."strip-indent-2.0.0"
       sources."strip-json-comments-2.0.1"
-      (sources."stylint-1.5.9" // {
+      (sources."stylint-2.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
           sources."ansi-styles-2.2.1"
@@ -56394,7 +58085,6 @@ in
           sources."os-locale-1.4.0"
           sources."parse-json-2.2.0"
           sources."path-exists-2.1.0"
-          sources."path-is-absolute-1.0.0"
           sources."path-type-1.1.0"
           sources."pify-2.3.0"
           sources."read-pkg-1.1.0"
@@ -56408,18 +58098,19 @@ 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"
         ];
       })
-      sources."stylus-supremacy-2.14.0"
+      sources."stylus-supremacy-2.14.5"
       sources."suf-cli-0.1.1"
       sources."suf-node-1.1.1"
-      sources."suf-regex-0.0.17"
+      sources."suf-regex-0.0.22"
       sources."supports-color-5.5.0"
       sources."symbol-0.2.3"
       (sources."table-5.4.6" // {
@@ -56447,13 +58138,13 @@ in
       sources."trim-newlines-2.0.0"
       sources."trim-trailing-lines-1.1.3"
       sources."trough-1.0.5"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."tslint-5.20.1"
       sources."tsutils-2.29.0"
       sources."type-check-0.3.2"
       sources."type-fest-0.3.1"
       sources."typedarray-0.0.6"
-      sources."typescript-3.8.3"
+      sources."typescript-3.9.7"
       sources."unherit-1.1.3"
       (sources."unified-7.1.0" // {
         dependencies = [
@@ -56464,7 +58155,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"
@@ -56508,9 +58198,9 @@ in
       sources."use-3.1.1"
       sources."user-home-2.0.0"
       sources."util-deprecate-1.0.2"
-      sources."v8-compile-cache-2.1.0"
+      sources."v8-compile-cache-2.1.1"
       sources."validate-npm-package-license-3.0.4"
-      sources."vfile-4.1.0"
+      sources."vfile-4.2.0"
       sources."vfile-location-2.0.6"
       sources."vfile-message-2.0.4"
       (sources."vfile-reporter-6.0.1" // {
@@ -56526,9 +58216,10 @@ in
       sources."vfile-sort-2.2.2"
       sources."vfile-statistics-1.1.4"
       sources."vls-0.2.0"
-      (sources."vscode-css-languageservice-4.1.2" // {
+      (sources."vscode-css-languageservice-4.3.1" // {
         dependencies = [
-          sources."vscode-uri-2.1.1"
+          sources."vscode-languageserver-types-3.16.0-next.2"
+          sources."vscode-uri-2.1.2"
         ];
       })
       sources."vscode-emmet-helper-1.2.17"
@@ -56539,8 +58230,12 @@ in
       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.3"
-      sources."vue-eslint-parser-7.0.0"
+      sources."vscode-web-custom-data-0.1.4"
+      (sources."vue-eslint-parser-7.1.0" // {
+        dependencies = [
+          sources."debug-4.2.0"
+        ];
+      })
       sources."vue-onsenui-helper-json-1.0.2"
       sources."wcwidth-1.0.1"
       sources."which-1.3.1"
@@ -56584,10 +58279,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 = {
@@ -56633,13 +58328,13 @@ in
       sources."esprima-4.0.1"
       sources."http-proxy-agent-2.1.0"
       sources."https-proxy-agent-2.2.4"
-      sources."js-yaml-3.13.1"
-      sources."jsonc-parser-2.2.1"
+      sources."js-yaml-3.14.0"
+      sources."jsonc-parser-2.3.0"
       sources."ms-2.0.0"
       sources."prettier-1.19.1"
       sources."request-light-0.2.5"
       sources."sprintf-js-1.0.3"
-      sources."vscode-json-languageservice-3.6.0"
+      sources."vscode-json-languageservice-3.8.0"
       sources."vscode-jsonrpc-4.0.0"
       (sources."vscode-languageserver-5.2.1" // {
         dependencies = [
@@ -56654,7 +58349,7 @@ in
       sources."vscode-languageserver-textdocument-1.0.1"
       sources."vscode-languageserver-types-3.15.1"
       sources."vscode-nls-4.1.2"
-      sources."vscode-uri-2.1.1"
+      sources."vscode-uri-2.1.2"
       sources."yaml-ast-parser-custom-tags-0.0.43"
       sources."yaml-language-server-0.7.2"
     ];
@@ -56696,7 +58391,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Unfancy JavaScript";
-      homepage = "https://coffeescript.org/";
+      homepage = http://coffeescript.org/;
       license = "MIT";
     };
     production = true;
@@ -56769,22 +58464,21 @@ in
       sources."colorspace-1.1.2"
       sources."commander-4.1.1"
       sources."core-util-is-1.0.2"
-      sources."debug-3.2.6"
       sources."diagnostics-1.1.1"
       sources."enabled-1.0.2"
       sources."env-variable-0.0.6"
-      sources."eventemitter3-4.0.0"
+      sources."eventemitter3-4.0.4"
       sources."fast-safe-stringify-2.0.7"
-      sources."fecha-2.3.3"
-      sources."follow-redirects-1.11.0"
-      sources."http-proxy-1.18.0"
+      sources."fecha-4.2.0"
+      sources."follow-redirects-1.12.1"
+      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."logform-2.1.2"
+      sources."lodash-4.17.19"
+      sources."logform-2.2.0"
       sources."lynx-0.2.0"
       sources."mersenne-0.0.4"
       sources."ms-2.1.2"
@@ -56792,7 +58486,7 @@ in
       sources."process-nextick-args-2.0.1"
       sources."readable-stream-3.6.0"
       sources."requires-port-1.0.0"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."simple-swizzle-0.2.2"
       sources."stack-trace-0.0.10"
       sources."statsd-parser-0.0.4"
@@ -56802,7 +58496,7 @@ in
       sources."triple-beam-1.3.0"
       sources."util-deprecate-1.0.2"
       sources."winston-3.2.1"
-      (sources."winston-transport-4.3.0" // {
+      (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
@@ -56823,48 +58517,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/events-3.0.0"
-      sources."@types/glob-7.1.1"
-      sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.13.4"
+      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.3"
       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.9.1"
+      sources."aws4-1.10.0"
       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"
@@ -56873,90 +58561,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.0"
       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.0"
+          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 = [
@@ -56965,233 +58642,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."fast-deep-equal-3.1.1"
-      sources."fast-glob-2.2.7"
+      sources."extsprintf-1.4.0"
+      sources."fast-deep-equal-3.1.3"
+      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.1.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-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
       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.19"
       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."merge2-1.3.0"
+      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.1"
+      sources."open-7.1.0"
       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 = [
@@ -57200,30 +58839,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"
@@ -57234,17 +58875,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-chunk-3.2.0"
       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."registry-auth-token-4.2.0"
+      sources."registry-url-5.1.0"
       (sources."request-2.88.2" // {
         dependencies = [
           sources."qs-6.5.2"
@@ -57253,150 +58887,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."spdx-correct-3.1.0"
+      sources."slash-3.0.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.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.1.0"
+      sources."systeminformation-4.26.10"
+      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.11.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."typedarray-to-buffer-3.1.5"
       sources."underscore-1.10.2"
-      sources."union-value-1.0.1"
-      sources."unique-string-1.0.0"
-      sources."universalify-0.1.2"
+      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."update-notifier-4.1.0"
       sources."uri-js-4.2.2"
-      sources."urix-0.1.0"
-      sources."url-parse-lax-1.0.0"
-      sources."use-3.1.1"
+      sources."url-parse-lax-3.0.0"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
       sources."valid-identifier-0.0.2"
@@ -57404,20 +58969,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.0"
-      (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.1" // {
+        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 = {
@@ -57438,16 +59020,15 @@ in
       sha512 = "HCpNdBkQy3rw+uARLuIf0YurqsMXYzBa9ihhSAuxYJcNIrqrSq3BstPfr0cQN38AdMrQiO9Dp4hYy7GtGJsLPg==";
     };
     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.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/events-3.0.0"
-      sources."@types/glob-7.1.1"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
       sources."@types/minimist-1.2.0"
-      sources."@types/node-13.13.4"
+      sources."@types/node-14.0.27"
       sources."@types/normalize-package-data-2.4.0"
       sources."aggregate-error-3.0.1"
       sources."ansi-styles-3.2.1"
@@ -57611,11 +59192,11 @@ in
       sources."map-obj-4.1.0"
       sources."map-visit-1.0.0"
       sources."meow-6.1.1"
-      sources."merge2-1.3.0"
+      sources."merge2-1.4.1"
       sources."micromatch-3.1.10"
-      sources."min-indent-1.0.0"
+      sources."min-indent-1.0.1"
       sources."minimatch-3.0.4"
-      (sources."minimist-options-4.0.2" // {
+      (sources."minimist-options-4.1.0" // {
         dependencies = [
           sources."arrify-1.0.1"
         ];
@@ -57654,7 +59235,7 @@ in
           sources."p-map-2.1.0"
         ];
       })
-      sources."p-event-4.1.0"
+      sources."p-event-4.2.0"
       (sources."p-filter-2.1.0" // {
         dependencies = [
           sources."p-map-2.1.0"
@@ -57664,9 +59245,9 @@ in
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-map-3.0.0"
-      sources."p-timeout-2.0.1"
+      sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
-      sources."parse-json-5.0.0"
+      sources."parse-json-5.0.1"
       sources."pascalcase-0.1.1"
       sources."path-dirname-1.0.2"
       sources."path-exists-4.0.0"
@@ -57736,9 +59317,9 @@ in
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."split-string-3.1.0"
       (sources."static-extend-0.1.2" // {
@@ -57815,7 +59396,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.1"
-      sources."@types/node-13.13.4"
+      sources."@types/node-14.0.27"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -57878,7 +59459,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.19"
       sources."lodash._baseiteratee-4.7.0"
       sources."lodash._basetostring-4.12.0"
       sources."lodash._baseuniq-4.6.0"
@@ -57940,7 +59521,7 @@ in
         ];
       })
       sources."which-1.3.1"
-      sources."xstream-11.11.0"
+      sources."xstream-11.12.0"
       sources."yallist-2.1.2"
     ];
     buildInputs = globalBuildInputs;
@@ -58017,7 +59598,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.19"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -58025,7 +59606,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.1"
       sources."os-tmpdir-1.0.2"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
@@ -58034,7 +59615,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"
@@ -58068,7 +59649,7 @@ in
         ];
       })
       sources."tmp-0.1.0"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."type-fest-0.11.0"
       sources."uid-number-0.0.6"
       sources."universalify-0.1.2"
@@ -58091,15 +59672,15 @@ in
   create-react-native-app = nodeEnv.buildNodePackage {
     name = "create-react-native-app";
     packageName = "create-react-native-app";
-    version = "3.1.1";
+    version = "3.5.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/create-react-native-app/-/create-react-native-app-3.1.1.tgz";
-      sha512 = "l4f3E7chtJp4QxiPBxEAE6gFSSF/gm+RxTfyQzxsl3nTGe1wHUU9AYUQgXQ86zfyq7n8gGmRd3MS5wYLodKo8g==";
+      url = "https://registry.npmjs.org/create-react-native-app/-/create-react-native-app-3.5.0.tgz";
+      sha512 = "Q/V11lyflnkhWEkMImgTvG0iRx9q2K2c1Ko/NnP7XOl63JvQ/hlvaoyxYE85vM0fIJyWXO8qTSf2Uen+8oUTTA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
       description = "Create React Native apps with no build configuration.";
-      homepage = "https://github.com/expo/create-react-native-app";
+      homepage = https://github.com/expo/create-react-native-app;
       license = "BSD-3-Clause";
     };
     production = true;
@@ -58121,7 +59702,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "CSSLint";
-      homepage = "http://csslint.net/"; # https is broken
+      homepage = http://csslint.net/;
       license = "MIT";
     };
     production = true;
@@ -58138,7 +59719,7 @@ in
     };
     dependencies = [
       sources."abstract-random-access-1.1.2"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."ansi-align-2.0.0"
       sources."ansi-diff-1.1.1"
       sources."ansi-regex-3.0.0"
@@ -58165,7 +59746,7 @@ in
       sources."atob-2.1.2"
       sources."atomic-batcher-1.0.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -58207,9 +59788,9 @@ in
       sources."capture-stack-trace-1.0.1"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
-      sources."chrome-dgram-3.0.4"
+      sources."chrome-dgram-3.0.5"
       sources."chrome-dns-1.0.1"
-      sources."chrome-net-3.3.3"
+      sources."chrome-net-3.3.4"
       sources."ci-info-1.6.0"
       sources."circular-append-file-1.0.1"
       (sources."class-utils-0.3.6" // {
@@ -58270,7 +59851,7 @@ in
       sources."dat-secret-storage-4.0.1"
       sources."dat-storage-1.1.1"
       sources."dat-swarm-defaults-1.0.2"
-      sources."debug-4.1.1"
+      sources."debug-4.2.0"
       sources."decode-uri-component-0.2.0"
       sources."decompress-response-4.2.1"
       sources."deep-equal-0.2.2"
@@ -58343,11 +59924,11 @@ in
       sources."extsprintf-1.3.0"
       sources."eyes-0.1.8"
       sources."fast-bitfield-1.2.2"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
-      (sources."fd-lock-1.0.2" // {
+      (sources."fd-lock-1.1.1" // {
         dependencies = [
-          sources."napi-macros-1.8.2"
+          sources."node-gyp-build-4.2.3"
         ];
       })
       sources."fd-read-stream-1.1.0"
@@ -58373,7 +59954,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" // {
@@ -58472,7 +60053,7 @@ in
       sources."menu-string-1.3.0"
       sources."merkle-tree-stream-3.0.3"
       sources."micromatch-3.1.10"
-      sources."mime-2.4.5"
+      sources."mime-2.4.6"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."mimic-response-2.1.0"
@@ -58584,7 +60165,7 @@ in
       sources."rimraf-2.7.1"
       sources."run-series-1.1.8"
       sources."rusha-0.8.13"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."semver-5.7.1"
@@ -58602,7 +60183,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"
@@ -58640,7 +60221,7 @@ 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"
@@ -58746,9 +60327,9 @@ in
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
       sources."utile-0.3.0"
-      (sources."utp-native-2.1.10" // {
+      (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"
         ];
@@ -58776,7 +60357,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Dat is the package manager for data. Easily share and version control data.";
-      homepage = "https://datproject.org/";
+      homepage = https://datproject.org/;
       license = "BSD-3-Clause";
     };
     production = true;
@@ -58797,181 +60378,27 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "A DHCP server written in JavaScript";
-      homepage = "https://github.com/infusion/node-dhcp";
+      homepage = https://github.com/infusion/node-dhcp;
       license = "MIT OR GPL-2.0";
     };
     production = true;
     bypassCache = true;
     reconstructLock = true;
   };
-  dnschain = nodeEnv.buildNodePackage {
-    name = "dnschain";
-    packageName = "dnschain";
-    version = "0.5.3";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/dnschain/-/dnschain-0.5.3.tgz";
-      sha1 = "9b21d9ac5e203295f372ac37df470e9f0854c470";
-    };
-    dependencies = [
-      sources."accepts-1.2.13"
-      sources."assert-plus-1.0.0"
-      sources."async-0.9.2"
-      sources."better-curry-1.6.0"
-      sources."binaryheap-0.0.3"
-      sources."bindings-1.5.0"
-      sources."bluebird-2.9.9"
-      sources."bottleneck-1.5.3"
-      sources."buffercursor-0.0.12"
-      sources."colors-0.6.2"
-      sources."combined-stream-0.0.7"
-      sources."component-emitter-1.1.2"
-      sources."content-disposition-0.5.0"
-      sources."cookie-0.1.2"
-      sources."cookie-signature-1.0.5"
-      sources."cookiejar-2.0.1"
-      sources."core-util-is-1.0.2"
-      sources."crc-3.2.1"
-      sources."cycle-1.0.3"
-      sources."debug-2.1.3"
-      sources."delayed-stream-0.0.5"
-      sources."depd-1.0.1"
-      sources."destroy-1.0.3"
-      sources."duplexer-0.1.1"
-      sources."ee-first-1.1.0"
-      sources."es5class-2.3.1"
-      sources."escape-html-1.0.1"
-      sources."etag-1.5.1"
-      sources."event-stream-3.2.2"
-      sources."eventemitter3-0.1.6"
-      sources."express-4.11.2"
-      sources."extend-1.2.1"
-      sources."extsprintf-1.4.0"
-      sources."eyes-0.1.8"
-      sources."faye-websocket-0.11.3"
-      sources."file-uri-to-path-1.0.0"
-      sources."finalhandler-0.3.3"
-      sources."form-data-0.1.3"
-      sources."formidable-1.0.14"
-      sources."forwarded-0.1.2"
-      sources."fresh-0.2.4"
-      sources."from-0.1.7"
-      sources."hiredis-0.4.1"
-      sources."http-parser-js-0.4.10"
-      sources."inherits-2.0.4"
-      sources."ini-1.3.5"
-      sources."ipaddr.js-1.0.5"
-      sources."isarray-0.0.1"
-      (sources."json-rpc2-0.8.1" // {
-        dependencies = [
-          sources."debug-1.0.5"
-          sources."lodash-2.4.2"
-          sources."ms-2.0.0"
-        ];
-      })
-      sources."jsonparse-0.0.6"
-      sources."lodash-3.1.0"
-      sources."map-stream-0.1.0"
-      sources."media-typer-0.3.0"
-      sources."merge-descriptors-0.0.2"
-      sources."methods-1.1.2"
-      sources."mime-1.2.11"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
-      sources."minimist-0.0.10"
-      sources."ms-0.7.0"
-      sources."nan-2.14.1"
-      (sources."native-dns-git+https://github.com/okTurtles/node-dns.git#08433ec98f517eed3c6d5e47bdf62603539cd402" // {
-        dependencies = [
-          sources."native-dns-packet-git+https://github.com/okTurtles/native-dns-packet.git#8bf2714c318cfe7d31bca2006385882ccbf503e4"
-        ];
-      })
-      (sources."native-dns-cache-git+https://github.com/okTurtles/native-dns-cache.git#8714196bb9223cc9a4064a4fddf9e82ec50b7d4d" // {
-        dependencies = [
-          sources."native-dns-packet-git+https://github.com/okTurtles/native-dns-packet.git#307e77a47ebba57a5ae9118a284e916e5ebb305a"
-        ];
-      })
-      sources."native-dns-packet-0.1.1"
-      sources."nconf-0.7.1"
-      sources."negotiator-0.5.3"
-      sources."on-finished-2.2.1"
-      sources."optimist-0.6.1"
-      sources."parseurl-1.3.3"
-      sources."path-to-regexp-0.1.3"
-      sources."pause-stream-0.0.11"
-      sources."pkginfo-0.3.1"
-      sources."properties-1.2.1"
-      sources."proxy-addr-1.0.10"
-      sources."qs-2.3.3"
-      sources."range-parser-1.0.3"
-      sources."readable-stream-1.0.27-1"
-      sources."redis-0.12.1"
-      sources."reduce-component-1.0.1"
-      sources."safe-buffer-5.2.0"
-      sources."send-0.11.1"
-      sources."serve-static-1.8.1"
-      sources."split-0.3.3"
-      sources."stack-trace-0.0.10"
-      sources."stream-combiner-0.0.4"
-      sources."string-2.0.1"
-      sources."string_decoder-0.10.31"
-      (sources."superagent-0.21.0" // {
-        dependencies = [
-          sources."methods-1.0.1"
-          sources."qs-1.2.0"
-        ];
-      })
-      sources."through-2.3.8"
-      (sources."type-is-1.5.7" // {
-        dependencies = [
-          sources."mime-db-1.12.0"
-          sources."mime-types-2.0.14"
-        ];
-      })
-      sources."utils-merge-1.0.0"
-      sources."vary-1.0.1"
-      sources."verror-1.10.0"
-      sources."websocket-driver-0.7.3"
-      sources."websocket-extensions-0.1.3"
-      (sources."winston-0.8.0" // {
-        dependencies = [
-          sources."async-0.2.10"
-        ];
-      })
-      sources."wordwrap-0.0.3"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "A blockchain-based DNS + HTTPS server that fixes HTTPS security, and more!";
-      homepage = "https://github.com/okTurtles/dnschain";
-      license = "MPL-2.0";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
   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"
@@ -58992,47 +60419,47 @@ in
   elasticdump = nodeEnv.buildNodePackage {
     name = "elasticdump";
     packageName = "elasticdump";
-    version = "6.28.0";
+    version = "6.33.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.28.0.tgz";
-      sha512 = "JVT1VyJqRdSqg9xFy7FQtdcHlWfBLiW08DUtJZaRRsU/4mEvLtUXU1y+h6n3nRtoe5HplVMsP/Dlwj0jUMSPug==";
+      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.33.2.tgz";
+      sha512 = "zdVxNUeI3Ywj3ls8K+NcssOn4KjfJ5QdSyTsgIf9AsOlDCioGh5//qE5/c4HH0Bn14J/WETEcSW62YJKlMFN0w==";
     };
     dependencies = [
       sources."JSONStream-1.3.5"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       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.669.0"
+      sources."aws-sdk-2.726.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."buffer-4.9.1"
+      sources."big.js-5.2.2"
+      sources."buffer-4.9.2"
       sources."buffer-queue-1.0.0"
       sources."bytes-3.1.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.8"
       sources."core-util-is-1.0.2"
       sources."dashdash-1.14.1"
-      sources."decimal.js-10.2.0"
-      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.0"
+      sources."eventemitter3-4.0.4"
       sources."events-1.1.1"
       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."forever-agent-0.6.1"
       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"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
@@ -59051,20 +60478,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."lossless-json-1.0.3"
+      sources."lodash-4.17.19"
+      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.0"
       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"
@@ -59074,11 +60499,11 @@ in
         ];
       })
       sources."request-2.88.2"
-      sources."requestretry-4.1.0"
+      sources."requestretry-4.1.1"
       sources."s3-stream-upload-2.0.2"
       sources."s3signed-0.1.0"
       sources."s3urls-1.5.2"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.1"
       sources."socks5-client-1.2.8"
@@ -59109,14 +60534,13 @@ 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"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "import and export tools for elasticsearch";
-      homepage = "https://github.com/taskrabbit/elasticsearch-dump#readme";
+      homepage = "https://github.com/elasticsearch-dump/elasticsearch-dump#readme";
       license = "Apache-2.0";
     };
     production = true;
@@ -59150,35 +60574,35 @@ in
       sha512 = "ZZfCT5/+XXomHI7O+frUJfKeqEnxXYq8SL45s0uR6KMRZpFlckzMlLpyBFKVUNd+VWjgVwmc9d/fe/YhU1N5Ng==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.8.3"
-      sources."@babel/core-7.9.6"
-      sources."@babel/generator-7.9.6"
-      sources."@babel/helper-annotate-as-pure-7.8.3"
-      sources."@babel/helper-builder-react-jsx-7.9.0"
-      sources."@babel/helper-builder-react-jsx-experimental-7.9.5"
-      sources."@babel/helper-function-name-7.9.5"
-      sources."@babel/helper-get-function-arity-7.8.3"
-      sources."@babel/helper-member-expression-to-functions-7.8.3"
-      sources."@babel/helper-module-imports-7.8.3"
-      sources."@babel/helper-module-transforms-7.9.0"
-      sources."@babel/helper-optimise-call-expression-7.8.3"
-      sources."@babel/helper-plugin-utils-7.8.3"
-      sources."@babel/helper-replace-supers-7.9.6"
-      sources."@babel/helper-simple-access-7.8.3"
-      sources."@babel/helper-split-export-declaration-7.8.3"
-      sources."@babel/helper-validator-identifier-7.9.5"
-      sources."@babel/helpers-7.9.6"
-      sources."@babel/highlight-7.9.0"
-      sources."@babel/parser-7.9.6"
-      sources."@babel/plugin-proposal-object-rest-spread-7.9.6"
-      sources."@babel/plugin-syntax-jsx-7.8.3"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/core-7.11.1"
+      sources."@babel/generator-7.11.0"
+      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.10.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.1"
+      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.9.5"
-      sources."@babel/plugin-transform-parameters-7.9.5"
-      sources."@babel/plugin-transform-react-jsx-7.9.4"
-      sources."@babel/template-7.8.6"
-      sources."@babel/traverse-7.9.6"
-      sources."@babel/types-7.9.6"
+      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.0"
+      sources."@babel/types-7.11.0"
       sources."@sindresorhus/is-2.1.1"
       sources."@szmarczak/http-timer-4.0.5"
       sources."@types/cacheable-request-6.0.1"
@@ -59186,11 +60610,11 @@ in
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
       sources."@types/minimist-1.2.0"
-      sources."@types/node-13.13.4"
+      sources."@types/node-14.0.27"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/responselike-1.0.0"
-      sources."@types/yoga-layout-1.9.1"
-      sources."ajv-6.12.2"
+      sources."@types/yoga-layout-1.9.2"
+      sources."ajv-6.12.3"
       (sources."ansi-escapes-4.3.1" // {
         dependencies = [
           sources."type-fest-0.11.0"
@@ -59198,7 +60622,7 @@ in
       })
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
-      sources."arch-2.1.1"
+      sources."arch-2.1.2"
       sources."arrify-2.0.1"
       sources."astral-regex-2.0.0"
       sources."auto-bind-4.0.0"
@@ -59233,7 +60657,7 @@ in
       sources."convert-source-map-1.7.0"
       sources."cross-spawn-6.0.5"
       sources."debounce-fn-3.0.1"
-      sources."debug-4.1.1"
+      sources."debug-4.2.0"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -59251,7 +60675,7 @@ in
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
       sources."execa-1.0.0"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."find-up-3.0.0"
       sources."gensync-1.0.0-beta.1"
@@ -59279,7 +60703,7 @@ in
           sources."supports-color-7.1.0"
         ];
       })
-      (sources."ink-text-input-3.2.2" // {
+      (sources."ink-text-input-3.3.0" // {
         dependencies = [
           sources."ansi-styles-4.2.1"
           sources."chalk-3.0.0"
@@ -59291,7 +60715,7 @@ in
       })
       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"
@@ -59306,10 +60730,11 @@ in
       sources."json-schema-traverse-0.4.1"
       sources."json-schema-typed-7.0.3"
       sources."json5-2.1.3"
-      sources."keyv-4.0.0"
+      sources."keyv-4.0.1"
+      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-4.17.19"
       sources."lodash.debounce-4.0.8"
       sources."lodash.throttle-4.1.1"
       (sources."log-update-3.4.0" // {
@@ -59338,7 +60763,7 @@ in
       sources."map-obj-4.1.0"
       (sources."mem-6.1.0" // {
         dependencies = [
-          sources."mimic-fn-3.0.0"
+          sources."mimic-fn-3.1.0"
         ];
       })
       (sources."meow-6.1.1" // {
@@ -59348,9 +60773,9 @@ in
       })
       sources."mimic-fn-2.1.0"
       sources."mimic-response-2.1.0"
-      sources."min-indent-1.0.0"
+      sources."min-indent-1.0.1"
       sources."minimist-1.2.5"
-      (sources."minimist-options-4.0.2" // {
+      (sources."minimist-options-4.1.0" // {
         dependencies = [
           sources."arrify-1.0.1"
         ];
@@ -59362,16 +60787,16 @@ 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.1"
       sources."p-cancelable-2.0.0"
       sources."p-defer-1.0.0"
-      sources."p-event-4.1.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-2.0.1"
+      sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
-      sources."parse-json-5.0.0"
+      sources."parse-json-5.0.1"
       sources."path-exists-3.0.0"
       sources."path-key-2.0.1"
       sources."path-parse-1.0.6"
@@ -59417,9 +60842,9 @@ in
         ];
       })
       sources."source-map-0.5.7"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       (sources."string-length-3.1.0" // {
         dependencies = [
@@ -59453,7 +60878,7 @@ in
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
       sources."yargs-parser-18.1.3"
-      sources."yoga-layout-prebuilt-1.9.5"
+      sources."yoga-layout-prebuilt-1.9.6"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -59476,7 +60901,25 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "EmojiOne is a complete set of emojis designed for the web. It includes libraries to easily convert unicode characters to shortnames (:smile:) and shortnames to our custom emoji images. PNG formats provided for the emoji images.";
-      homepage = "https://www.emojione.com/";
+      homepage = https://www.emojione.com/;
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  escape-string-regexp = nodeEnv.buildNodePackage {
+    name = "escape-string-regexp";
+    packageName = "escape-string-regexp";
+    version = "4.0.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
+      sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Escape RegExp special characters";
+      homepage = "https://github.com/sindresorhus/escape-string-regexp#readme";
+      license = "MIT";
     };
     production = true;
     bypassCache = true;
@@ -59485,24 +60928,24 @@ in
   eslint = nodeEnv.buildNodePackage {
     name = "eslint";
     packageName = "eslint";
-    version = "6.8.0";
+    version = "7.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz";
-      sha512 = "K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==";
+      url = "https://registry.npmjs.org/eslint/-/eslint-7.6.0.tgz";
+      sha512 = "QlAManNtqr7sozWm5TF4wIH9gmUm2hE3vNRUvyoYAa4y1l5/jxD/PQStEjBMQtCqZmSep8UxrcecI60hOpe61w==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.8.3"
-      sources."@babel/helper-validator-identifier-7.9.5"
-      sources."@babel/highlight-7.9.0"
-      sources."@types/color-name-1.1.1"
-      sources."acorn-7.1.1"
-      sources."acorn-jsx-5.2.0"
-      sources."ajv-6.12.2"
-      (sources."ansi-escapes-4.3.1" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
-          sources."type-fest-0.11.0"
+          sources."chalk-2.4.2"
         ];
       })
+      sources."@types/color-name-1.1.1"
+      sources."acorn-7.4.0"
+      sources."acorn-jsx-5.2.0"
+      sources."ajv-6.12.3"
+      sources."ansi-colors-4.1.1"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -59510,27 +60953,29 @@ in
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."callsites-3.1.0"
-      sources."chalk-2.4.2"
-      sources."chardet-0.7.0"
-      sources."cli-cursor-3.1.0"
-      sources."cli-width-2.2.1"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."concat-map-0.0.1"
-      (sources."cross-spawn-6.0.5" // {
+      (sources."chalk-4.1.0" // {
         dependencies = [
-          sources."semver-5.7.1"
+          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.1.0"
         ];
       })
-      sources."debug-4.1.1"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."concat-map-0.0.1"
+      sources."cross-spawn-7.0.3"
+      sources."debug-4.2.0"
       sources."deep-is-0.1.3"
       sources."doctrine-3.0.0"
-      sources."emoji-regex-8.0.0"
+      sources."emoji-regex-7.0.3"
+      sources."enquirer-2.3.6"
       sources."escape-string-regexp-1.0.5"
-      sources."eslint-scope-5.0.0"
-      sources."eslint-utils-1.4.3"
-      sources."eslint-visitor-keys-1.1.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 = [
@@ -59540,11 +60985,9 @@ in
       sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
-      sources."external-editor-3.1.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-levenshtein-2.0.6"
-      sources."figures-3.2.0"
       sources."file-entry-cache-5.0.1"
       sources."flat-cache-2.0.1"
       sources."flatted-2.0.2"
@@ -59554,96 +60997,58 @@ in
       sources."glob-parent-5.1.1"
       sources."globals-12.4.0"
       sources."has-flag-3.0.0"
-      sources."iconv-lite-0.4.24"
       sources."ignore-4.0.6"
       sources."import-fresh-3.2.1"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      (sources."inquirer-7.1.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."strip-ansi-6.0.0"
-          sources."supports-color-7.1.0"
-        ];
-      })
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
-      sources."levn-0.3.0"
-      sources."lodash-4.17.15"
-      sources."mimic-fn-2.1.0"
+      sources."levn-0.4.1"
+      sources."lodash-4.17.19"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
-      sources."mute-stream-0.0.8"
       sources."natural-compare-1.4.0"
-      sources."nice-try-1.0.5"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
-      sources."optionator-0.8.3"
-      sources."os-tmpdir-1.0.2"
+      sources."optionator-0.9.1"
       sources."parent-module-1.0.1"
       sources."path-is-absolute-1.0.1"
-      sources."path-key-2.0.1"
-      sources."prelude-ls-1.1.2"
+      sources."path-key-3.1.1"
+      sources."prelude-ls-1.2.1"
       sources."progress-2.0.3"
       sources."punycode-2.1.1"
-      sources."regexpp-2.0.1"
+      sources."regexpp-3.1.0"
       sources."resolve-from-4.0.0"
-      sources."restore-cursor-3.1.0"
       sources."rimraf-2.6.3"
-      sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
-      sources."safer-buffer-2.1.2"
-      sources."semver-6.3.0"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.3"
-      (sources."slice-ansi-2.1.0" // {
-        dependencies = [
-          sources."is-fullwidth-code-point-2.0.0"
-        ];
-      })
+      sources."semver-7.3.2"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."slice-ansi-2.1.0"
       sources."sprintf-js-1.0.3"
-      (sources."string-width-4.2.0" // {
-        dependencies = [
-          sources."strip-ansi-6.0.0"
-        ];
-      })
-      (sources."strip-ansi-5.2.0" // {
+      (sources."string-width-3.1.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
+          sources."strip-ansi-5.2.0"
         ];
       })
-      sources."strip-json-comments-3.1.0"
+      sources."strip-ansi-6.0.0"
+      sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-5.4.6" // {
-        dependencies = [
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
-        ];
-      })
+      sources."table-5.4.6"
       sources."text-table-0.2.0"
-      sources."through-2.3.8"
-      sources."tmp-0.0.33"
-      sources."tslib-1.11.1"
-      sources."type-check-0.3.2"
+      sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
       sources."uri-js-4.2.2"
-      sources."v8-compile-cache-2.1.0"
-      sources."which-1.3.1"
+      sources."v8-compile-cache-2.1.1"
+      sources."which-2.0.2"
       sources."word-wrap-1.2.3"
       sources."wrappy-1.0.2"
       sources."write-1.0.3"
@@ -59651,7 +61056,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "An AST-based pattern checker for JavaScript.";
-      homepage = "https://eslint.org/";
+      homepage = https://eslint.org/;
       license = "MIT";
     };
     production = true;
@@ -59661,24 +61066,24 @@ in
   eslint_d = nodeEnv.buildNodePackage {
     name = "eslint_d";
     packageName = "eslint_d";
-    version = "8.1.1";
+    version = "9.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint_d/-/eslint_d-8.1.1.tgz";
-      sha512 = "eYr8vOwCQynnI8b5e5R07D2JI6jCItT9QZzWKGZnqMs9lKN+z0bvn1ULCNKp0u4mz1V+lLRglIDiSGIkIDDcLw==";
+      url = "https://registry.npmjs.org/eslint_d/-/eslint_d-9.1.1.tgz";
+      sha512 = "+y3ULQemuvoxWgfV/VGzlYJS84V9GmvyzIxZFGUA3kgUpaJkuqXn/nm21Z/nYYNmfiySXy6RU1ery0A8cztZRw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.8.3"
-      sources."@babel/helper-validator-identifier-7.9.5"
-      sources."@babel/highlight-7.9.0"
-      sources."@types/color-name-1.1.1"
-      sources."acorn-7.1.1"
-      sources."acorn-jsx-5.2.0"
-      sources."ajv-6.12.2"
-      (sources."ansi-escapes-4.3.1" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
-          sources."type-fest-0.11.0"
+          sources."chalk-2.4.2"
         ];
       })
+      sources."@types/color-name-1.1.1"
+      sources."acorn-7.4.0"
+      sources."acorn-jsx-5.2.0"
+      sources."ajv-6.12.3"
+      sources."ansi-colors-4.1.1"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -59686,29 +61091,31 @@ in
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."callsites-3.1.0"
-      sources."chalk-2.4.2"
-      sources."chardet-0.7.0"
-      sources."cli-cursor-3.1.0"
-      sources."cli-width-2.2.1"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."concat-map-0.0.1"
-      sources."core_d-1.0.1"
-      (sources."cross-spawn-6.0.5" // {
+      (sources."chalk-4.1.0" // {
         dependencies = [
-          sources."semver-5.7.1"
+          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.1.0"
         ];
       })
-      sources."debug-4.1.1"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."concat-map-0.0.1"
+      sources."core_d-2.0.0"
+      sources."cross-spawn-7.0.3"
+      sources."debug-4.2.0"
       sources."deep-is-0.1.3"
       sources."doctrine-3.0.0"
-      sources."emoji-regex-8.0.0"
+      sources."emoji-regex-7.0.3"
+      sources."enquirer-2.3.6"
       sources."escape-string-regexp-1.0.5"
-      sources."eslint-6.8.0"
-      sources."eslint-scope-5.0.0"
-      sources."eslint-utils-1.4.3"
-      sources."eslint-visitor-keys-1.1.0"
-      sources."espree-6.2.1"
+      sources."eslint-7.6.0"
+      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 = [
@@ -59718,11 +61125,9 @@ in
       sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
-      sources."external-editor-3.1.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-levenshtein-2.0.6"
-      sources."figures-3.2.0"
       sources."file-entry-cache-5.0.1"
       sources."flat-cache-2.0.1"
       sources."flatted-2.0.2"
@@ -59732,99 +61137,59 @@ in
       sources."glob-parent-5.1.1"
       sources."globals-12.4.0"
       sources."has-flag-3.0.0"
-      sources."iconv-lite-0.4.24"
       sources."ignore-4.0.6"
       sources."import-fresh-3.2.1"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      (sources."inquirer-7.1.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."strip-ansi-6.0.0"
-          sources."supports-color-7.1.0"
-        ];
-      })
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
-      sources."levn-0.3.0"
-      sources."lodash-4.17.15"
-      sources."mimic-fn-2.1.0"
+      sources."levn-0.4.1"
+      sources."lodash-4.17.19"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
-      sources."mute-stream-0.0.8"
       sources."nanolru-1.0.0"
       sources."natural-compare-1.4.0"
-      sources."nice-try-1.0.5"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
-      sources."optionator-0.8.3"
-      sources."os-tmpdir-1.0.2"
+      sources."optionator-0.9.1"
       sources."parent-module-1.0.1"
       sources."path-is-absolute-1.0.1"
-      sources."path-key-2.0.1"
-      sources."path-parse-1.0.6"
-      sources."prelude-ls-1.1.2"
+      sources."path-key-3.1.1"
+      sources."prelude-ls-1.2.1"
       sources."progress-2.0.3"
       sources."punycode-2.1.1"
-      sources."regexpp-2.0.1"
-      sources."resolve-1.17.0"
+      sources."regexpp-3.1.0"
       sources."resolve-from-4.0.0"
-      sources."restore-cursor-3.1.0"
       sources."rimraf-2.6.3"
-      sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
-      sources."safer-buffer-2.1.2"
-      sources."semver-6.3.0"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.3"
-      (sources."slice-ansi-2.1.0" // {
-        dependencies = [
-          sources."is-fullwidth-code-point-2.0.0"
-        ];
-      })
+      sources."semver-7.3.2"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."slice-ansi-2.1.0"
       sources."sprintf-js-1.0.3"
-      (sources."string-width-4.2.0" // {
-        dependencies = [
-          sources."strip-ansi-6.0.0"
-        ];
-      })
-      (sources."strip-ansi-5.2.0" // {
+      (sources."string-width-3.1.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
+          sources."strip-ansi-5.2.0"
         ];
       })
-      sources."strip-json-comments-3.1.0"
+      sources."strip-ansi-6.0.0"
+      sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-5.4.6" // {
-        dependencies = [
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
-        ];
-      })
+      sources."table-5.4.6"
       sources."text-table-0.2.0"
-      sources."through-2.3.8"
-      sources."tmp-0.0.33"
-      sources."tslib-1.11.1"
-      sources."type-check-0.3.2"
+      sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
       sources."uri-js-4.2.2"
-      sources."v8-compile-cache-2.1.0"
-      sources."which-1.3.1"
+      sources."v8-compile-cache-2.1.1"
+      sources."which-2.0.2"
       sources."word-wrap-1.2.3"
       sources."wrappy-1.0.2"
       sources."write-1.0.3"
@@ -59832,7 +61197,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Makes eslint the fastest linter on the planet";
-      homepage = "https://github.com/mantoni/eslint_d.js";
+      homepage = https://github.com/mantoni/eslint_d.js;
       license = "MIT";
     };
     production = true;
@@ -59848,7 +61213,7 @@ in
       sha1 = "81f5f98043cc2517053f96ba5d61ef5db430c010";
     };
     dependencies = [
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."ansi-escapes-1.4.0"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
@@ -59857,7 +61222,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."buffer-crc32-0.2.13"
       sources."buffer-from-1.1.1"
@@ -59886,7 +61251,7 @@ in
       sources."extend-3.0.2"
       sources."extract-zip-1.7.0"
       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."fd-slicer-1.1.0"
       sources."find-up-1.1.2"
@@ -59897,7 +61262,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"
@@ -59985,9 +61350,9 @@ in
       sources."safer-buffer-2.1.2"
       sources."semver-5.7.1"
       sources."signal-exit-3.0.3"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."sshpk-1.16.1"
       sources."string_decoder-1.1.1"
@@ -60030,9 +61395,9 @@ in
       sha512 = "eJdNdyHofekXmSGI76E2A4GBJ7FAvuAgLV7rAgL6uZXV9+ZKwNoBjt/2hxHWmDZZ9x0EEWM3wHb2b0J7UNGbBw==";
     };
     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.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"
@@ -60058,10 +61423,10 @@ 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.2"
+      sources."cross-spawn-7.0.3"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -60073,13 +61438,13 @@ in
       sources."error-ex-1.3.2"
       sources."esc-exit-2.0.2"
       sources."escape-string-regexp-1.0.5"
-      sources."execa-4.0.0"
+      sources."execa-4.0.3"
       sources."external-editor-3.1.0"
       sources."figures-3.2.0"
       sources."find-up-4.1.0"
       (sources."fkill-7.0.1" // {
         dependencies = [
-          sources."ps-list-7.0.0"
+          sources."ps-list-7.2.0"
         ];
       })
       sources."get-stream-5.1.0"
@@ -60089,7 +61454,11 @@ in
       sources."human-signals-1.1.1"
       sources."iconv-lite-0.4.24"
       sources."indent-string-4.0.0"
-      sources."inquirer-7.1.0"
+      (sources."inquirer-7.3.3" // {
+        dependencies = [
+          sources."chalk-4.1.0"
+        ];
+      })
       (sources."inquirer-autocomplete-prompt-1.0.2" // {
         dependencies = [
           sources."ansi-escapes-3.2.0"
@@ -60109,9 +61478,10 @@ in
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."json-parse-better-errors-1.0.2"
+      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.19"
       sources."lru-cache-4.1.5"
       sources."map-obj-4.1.0"
       (sources."meow-6.1.1" // {
@@ -60121,8 +61491,8 @@ in
       })
       sources."merge-stream-2.0.0"
       sources."mimic-fn-2.1.0"
-      sources."min-indent-1.0.0"
-      (sources."minimist-options-4.0.2" // {
+      sources."min-indent-1.0.1"
+      (sources."minimist-options-4.1.0" // {
         dependencies = [
           sources."arrify-1.0.1"
         ];
@@ -60130,15 +61500,15 @@ in
       sources."mute-stream-0.0.8"
       sources."normalize-package-data-2.5.0"
       sources."npm-run-path-4.0.1"
-      sources."num-sort-2.0.0"
+      sources."num-sort-2.1.0"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
+      sources."onetime-5.1.1"
       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.0.1"
       sources."path-exists-4.0.0"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.6"
@@ -60175,16 +61545,16 @@ 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"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.3"
       sources."slice-ansi-3.0.0"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."string-width-4.2.0"
       sources."strip-ansi-6.0.0"
@@ -60200,7 +61570,7 @@ in
       sources."through-2.3.8"
       sources."tmp-0.0.33"
       sources."trim-newlines-3.0.0"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."type-fest-0.11.0"
       sources."validate-npm-package-license-3.0.4"
       sources."which-2.0.2"
@@ -60221,10 +61591,10 @@ in
   forever = nodeEnv.buildNodePackage {
     name = "forever";
     packageName = "forever";
-    version = "2.0.0";
+    version = "3.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/forever/-/forever-2.0.0.tgz";
-      sha512 = "lPq2AJackIVZT7Zey7XmRgv6vLShadqf4GYAkdS1+BxI+yTor/xiy1CzGPMWYF98lBs5dFClIn4PJ/EtqScBcQ==";
+      url = "https://registry.npmjs.org/forever/-/forever-3.0.0.tgz";
+      sha512 = "jA3zD1pl57cwBlhF6V6lZIOk6//77nQyQ3UGkxxYr4X9+F8nI6SGGan69hdohtmsPZCG3vMlqdtBhwlqEn4thA==";
     };
     dependencies = [
       sources."ansi-regex-2.1.1"
@@ -60236,13 +61606,11 @@ in
       sources."arr-diff-4.0.0"
       sources."arr-flatten-1.1.0"
       sources."arr-union-3.1.0"
-      sources."array-filter-1.0.0"
       sources."array-unique-0.3.2"
       sources."assign-symbols-1.0.0"
       sources."async-1.5.2"
       sources."async-each-1.0.3"
       sources."atob-2.1.2"
-      sources."available-typed-arrays-1.0.2"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -60271,11 +61639,7 @@ in
       sources."cache-base-1.0.1"
       sources."caller-0.0.1"
       sources."camelcase-2.1.1"
-      (sources."chokidar-2.1.8" // {
-        dependencies = [
-          sources."path-is-absolute-1.0.1"
-        ];
-      })
+      sources."chokidar-2.1.8"
       (sources."class-utils-0.3.6" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -60311,19 +61675,15 @@ in
       sources."debug-2.6.9"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
-      sources."deep-equal-2.0.3"
+      sources."deep-equal-1.1.1"
       sources."define-properties-1.1.3"
       sources."define-property-2.0.2"
       sources."defined-0.0.0"
       sources."director-1.2.7"
-      sources."es-abstract-1.17.5"
-      sources."es-get-iterator-1.1.0"
+      sources."duplexer-0.1.1"
+      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 = [
@@ -60366,18 +61726,14 @@ in
         ];
       })
       sources."for-in-1.0.2"
-      sources."foreach-2.0.5"
-      sources."forever-monitor-2.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.12"
+      sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
       sources."get-value-2.0.6"
-      (sources."glob-7.1.6" // {
-        dependencies = [
-          sources."path-is-absolute-1.0.1"
-        ];
-      })
+      sources."glob-7.1.6"
       (sources."glob-parent-3.1.0" // {
         dependencies = [
           sources."is-glob-3.1.0"
@@ -60399,11 +61755,9 @@ in
       sources."invert-kv-1.0.0"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arguments-1.0.4"
-      sources."is-bigint-1.0.0"
       sources."is-binary-path-1.0.1"
-      sources."is-boolean-object-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.1.5"
+      sources."is-callable-1.2.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
@@ -60411,23 +61765,16 @@ in
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-4.0.1"
-      sources."is-map-2.0.1"
       (sources."is-number-3.0.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
         ];
       })
-      sources."is-number-object-1.0.4"
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.0.5"
-      sources."is-set-2.0.1"
-      sources."is-string-1.0.5"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
-      sources."is-typed-array-1.1.3"
-      sources."is-weakmap-2.0.1"
-      sources."is-weakset-2.0.1"
       sources."is-windows-1.0.2"
-      sources."isarray-2.0.5"
+      sources."isarray-1.0.0"
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
       sources."jsonify-0.0.0"
@@ -60435,6 +61782,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"
@@ -60468,7 +61816,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-is-1.1.2"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
@@ -60479,7 +61827,8 @@ in
       sources."os-locale-1.4.0"
       sources."pascalcase-0.1.1"
       sources."path-dirname-1.0.2"
-      sources."path-is-absolute-2.0.0"
+      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" // {
@@ -60495,13 +61844,9 @@ 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" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-        ];
-      })
+      sources."readable-stream-2.3.7"
       sources."readdirp-2.2.1"
       sources."regex-not-1.0.2"
       sources."regexp.prototype.flags-1.3.0"
@@ -60523,7 +61868,6 @@ in
         ];
       })
       sources."shush-1.0.0"
-      sources."side-channel-1.0.2"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -60556,6 +61900,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" // {
@@ -60575,10 +61920,9 @@ 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.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-3.0.1"
@@ -60609,7 +61953,6 @@ in
             ];
           })
           sources."has-values-0.1.4"
-          sources."isarray-1.0.0"
         ];
       })
       sources."upath-1.2.0"
@@ -60623,9 +61966,6 @@ in
           sources."ncp-1.0.1"
         ];
       })
-      sources."which-boxed-primitive-1.0.1"
-      sources."which-collection-1.0.1"
-      sources."which-typed-array-1.1.2"
       sources."window-size-0.1.4"
       (sources."winston-0.8.3" // {
         dependencies = [
@@ -60648,6 +61988,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";
@@ -60658,8 +62029,8 @@ in
     };
     dependencies = [
       sources."async-2.6.3"
-      sources."debug-4.1.1"
-      sources."lodash-4.17.15"
+      sources."debug-4.2.0"
+      sources."lodash-4.17.19"
       sources."lodash.groupby-4.6.0"
       sources."microee-0.0.6"
       sources."minilog-3.1.0"
@@ -60690,7 +62061,7 @@ in
       sources."chloride-2.2.14"
       sources."chloride-test-1.2.4"
       sources."commander-2.20.3"
-      sources."debug-4.1.1"
+      sources."debug-4.2.0"
       sources."deep-extend-0.6.0"
       sources."diff-3.5.0"
       sources."discontinuous-range-1.0.0"
@@ -60703,7 +62074,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"
@@ -60711,15 +62082,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.0"
+      sources."is-my-json-valid-2.20.5"
       sources."is-property-1.0.2"
       sources."is-valid-domain-0.0.14"
       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"
@@ -60727,7 +62098,7 @@ in
       sources."mime-types-2.1.27"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
-      sources."moment-2.25.3"
+      sources."moment-2.27.0"
       sources."moo-0.5.1"
       sources."ms-2.1.2"
       sources."multicb-1.2.2"
@@ -60736,13 +62107,13 @@ in
       sources."multiserver-scopes-1.0.0"
       sources."muxrpc-6.5.0"
       sources."nan-2.14.1"
-      sources."nearley-2.19.3"
-      sources."node-gyp-build-4.2.2"
+      sources."nearley-2.19.5"
+      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"
@@ -60797,13 +62168,13 @@ in
       sources."relative-url-1.0.2"
       sources."remove-markdown-0.1.0"
       sources."ret-0.1.15"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."secret-handshake-1.1.20"
       sources."semver-5.7.1"
       sources."separator-escape-0.0.0"
       sources."sha.js-2.4.5"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.3.3"
+      sources."socks-2.4.1"
       sources."sodium-browserify-1.3.0"
       (sources."sodium-browserify-tweetnacl-0.2.6" // {
         dependencies = [
@@ -60839,7 +62210,7 @@ in
       })
       sources."ssb-msgs-5.2.0"
       sources."ssb-pull-requests-1.0.0"
-      sources."ssb-ref-2.13.9"
+      sources."ssb-ref-2.14.0"
       (sources."stream-to-pull-stream-1.7.3" // {
         dependencies = [
           sources."looper-3.0.0"
@@ -60856,7 +62227,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "git hosting on secure-scuttlebutt (ssb)";
-      homepage = "https://git-ssb.celehner.com/%25n92DiQh7ietE%2BR%2BX%2FI403LQoyf2DtR3WQfCkDKlheQU%3D.sha256";
+      homepage = https://git-ssb.celehner.com/%25n92DiQh7ietE%2BR%2BX%2FI403LQoyf2DtR3WQfCkDKlheQU%3D.sha256;
       license = "Fair";
     };
     production = true;
@@ -60884,15 +62255,15 @@ in
   gitmoji-cli = nodeEnv.buildNodePackage {
     name = "gitmoji-cli";
     packageName = "gitmoji-cli";
-    version = "3.2.4";
+    version = "3.2.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-3.2.4.tgz";
-      sha512 = "rf0NbwZobW2Kwwomf41Ooas7rm7yg1z68fyKgrKaUs/VaaNtwIYMp/J11iQxcFu5p6i73huCytzmmo/8v4usDA==";
+      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-3.2.6.tgz";
+      sha512 = "Mzb3SGlcrFSwVu4R8Y2sGxK+d7VP6CRC6rw3S4mOPbxfW3qNrOLYEPDJM7h1GNUjOL22JQHx1qsn8sRODqAygQ==";
     };
     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.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"
@@ -60907,7 +62278,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.3"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -60923,6 +62294,7 @@ in
       sources."arrify-1.0.1"
       (sources."boxen-4.2.0" // {
         dependencies = [
+          sources."chalk-3.0.0"
           sources."type-fest-0.8.1"
         ];
       })
@@ -60933,20 +62305,20 @@ in
       })
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."chalk-3.0.0"
+      sources."chalk-4.1.0"
       sources."chardet-0.7.0"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.0"
       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."configstore-5.0.1"
-      sources."cross-spawn-7.0.2"
+      sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
       sources."debounce-fn-3.0.1"
       sources."decamelize-1.2.0"
@@ -60967,9 +62339,9 @@ in
       sources."error-ex-1.3.2"
       sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
-      sources."execa-4.0.0"
+      sources."execa-4.0.3"
       sources."external-editor-3.1.0"
-      sources."fast-deep-equal-3.1.1"
+      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"
@@ -60993,7 +62365,7 @@ in
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
       sources."ini-1.3.5"
-      sources."inquirer-7.1.0"
+      sources."inquirer-7.3.3"
       (sources."inquirer-autocomplete-prompt-1.0.2" // {
         dependencies = [
           sources."ansi-escapes-3.2.0"
@@ -61025,10 +62397,11 @@ in
       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."lodash-4.17.19"
       (sources."log-symbols-3.0.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -61050,9 +62423,9 @@ in
       sources."merge-stream-2.0.0"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
-      sources."min-indent-1.0.0"
+      sources."min-indent-1.0.1"
       sources."minimist-1.2.5"
-      sources."minimist-options-4.0.2"
+      sources."minimist-options-4.1.0"
       sources."mute-stream-0.0.8"
       sources."node-fetch-2.6.0"
       (sources."normalize-package-data-2.5.0" // {
@@ -61063,15 +62436,19 @@ 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.1"
+      (sources."ora-4.0.5" // {
+        dependencies = [
+          sources."chalk-3.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."parse-json-5.0.1"
       sources."path-exists-3.0.0"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.6"
@@ -61097,22 +62474,22 @@ in
         ];
       })
       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."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.3"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."string-width-4.2.0"
       sources."strip-ansi-6.0.0"
@@ -61125,11 +62502,15 @@ in
       sources."tmp-0.0.33"
       sources."to-readable-stream-1.0.0"
       sources."trim-newlines-3.0.0"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       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.0" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
       sources."uri-js-4.2.2"
       sources."url-parse-lax-3.0.0"
       sources."validate-npm-package-license-3.0.4"
@@ -61154,88 +62535,99 @@ in
   graphql-cli = nodeEnv.buildNodePackage {
     name = "graphql-cli";
     packageName = "graphql-cli";
-    version = "3.0.14";
+    version = "4.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/graphql-cli/-/graphql-cli-3.0.14.tgz";
-      sha512 = "YNLHnZsePE2rJycM4E79sE4dx9G1S3rRbKdSbQEFEjOr1wHMEVzvZ3mL4Er6yqIYNWNC95HpQjxfCbjBBxRyng==";
+      url = "https://registry.npmjs.org/graphql-cli/-/graphql-cli-4.0.0.tgz";
+      sha512 = "O3UHyNJ3nYBNfgC+R5hvJPADiZztZHgWoYfdX0vAtXf0yWyqNgtJQzkcY3RufW1Yi+Bq2Yo8ptyYr2i573GPTQ==";
     };
     dependencies = [
-      sources."@babel/generator-7.0.0-beta.38"
-      sources."@babel/types-7.0.0-beta.38"
-      (sources."@kbrandwijk/swagger-to-graphql-2.4.3" // {
+      sources."@ardatan/aggregate-error-0.0.1"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
-          sources."ansi-regex-2.1.1"
-          sources."cliui-3.2.0"
-          sources."string-width-1.0.2"
-          sources."strip-ansi-3.0.1"
-          sources."yargs-8.0.2"
-          sources."yargs-parser-7.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."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
         ];
       })
-      sources."@sindresorhus/is-0.14.0"
-      sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/color-name-1.1.1"
-      sources."accepts-1.3.7"
-      sources."agent-base-4.3.0"
-      sources."ajv-6.12.2"
-      (sources."ansi-align-3.0.0" // {
+      sources."@babel/runtime-7.11.1"
+      sources."@graphql-cli/common-4.0.0"
+      sources."@graphql-cli/init-4.0.0"
+      sources."@graphql-tools/delegate-6.0.16"
+      (sources."@graphql-tools/graphql-file-loader-6.0.16" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."fs-extra-9.0.1"
         ];
       })
-      sources."ansi-escapes-4.3.1"
-      sources."ansi-regex-3.0.0"
-      sources."ansi-styles-3.2.1"
-      (sources."apollo-codegen-0.20.2" // {
+      (sources."@graphql-tools/import-6.0.16" // {
         dependencies = [
-          sources."graphql-0.13.2"
-          sources."node-fetch-1.7.3"
-          sources."yargs-10.1.2"
+          sources."fs-extra-9.0.1"
+        ];
+      })
+      (sources."@graphql-tools/json-file-loader-6.0.16" // {
+        dependencies = [
+          sources."fs-extra-9.0.1"
+        ];
+      })
+      sources."@graphql-tools/load-6.0.16"
+      sources."@graphql-tools/merge-6.0.16"
+      sources."@graphql-tools/schema-6.0.16"
+      (sources."@graphql-tools/url-loader-6.0.16" // {
+        dependencies = [
+          sources."cross-fetch-3.0.5"
         ];
       })
-      sources."apollo-codegen-core-0.20.1"
-      sources."apollo-codegen-flow-0.20.0"
-      sources."apollo-codegen-flow-legacy-0.20.0"
-      sources."apollo-codegen-scala-0.20.0"
-      sources."apollo-codegen-swift-0.20.0"
-      sources."apollo-codegen-typescript-0.20.0"
-      sources."apollo-codegen-typescript-legacy-0.20.0"
+      sources."@graphql-tools/utils-6.0.16"
+      sources."@graphql-tools/wrap-6.0.16"
+      sources."@kwsites/exec-p-0.4.0"
+      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."@types/node-14.0.27"
+      sources."@types/parse-json-4.0.0"
+      sources."@types/websocket-1.0.1"
+      sources."aggregate-error-3.0.1"
+      sources."ajv-5.5.2"
+      (sources."ansi-escapes-4.3.1" // {
+        dependencies = [
+          sources."type-fest-0.11.0"
+        ];
+      })
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-4.2.1"
       sources."argparse-1.0.10"
-      sources."array-flatten-1.1.1"
+      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-2.6.3"
+      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.9.1"
-      sources."babel-runtime-6.26.0"
+      sources."aws4-1.10.0"
+      sources."backo2-1.0.2"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."bluebird-3.7.2"
-      (sources."body-parser-1.19.0" // {
-        dependencies = [
-          sources."qs-6.7.0"
-        ];
-      })
-      (sources."boxen-3.2.0" // {
+      (sources."better-ajv-errors-0.6.7" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."camelcase-5.3.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."type-fest-0.3.1"
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
         ];
       })
       sources."brace-expansion-1.1.11"
-      sources."buffer-equal-constant-time-1.0.1"
-      sources."buffer-from-1.1.1"
-      sources."bytes-3.1.0"
+      sources."braces-3.0.2"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."get-stream-5.1.0"
@@ -61243,148 +62635,73 @@ in
         ];
       })
       sources."call-me-maybe-1.0.1"
-      sources."caller-callsite-2.0.0"
-      sources."caller-path-2.0.0"
-      sources."callsites-2.0.0"
-      sources."camel-case-3.0.0"
-      sources."camelcase-4.1.0"
-      sources."capture-stack-trace-1.0.1"
+      sources."callsites-3.1.0"
+      (sources."camel-case-4.1.1" // {
+        dependencies = [
+          sources."tslib-1.13.0"
+        ];
+      })
+      sources."camelcase-5.3.1"
       sources."caseless-0.12.0"
-      sources."chalk-2.4.2"
-      sources."change-case-3.1.0"
+      sources."chalk-4.0.0"
       sources."chardet-0.7.0"
-      sources."chownr-2.0.0"
-      sources."ci-info-2.0.0"
-      sources."cli-boxes-2.2.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"
+      (sources."cliui-4.1.0" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
       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."columnify-1.5.4" // {
-        dependencies = [
-          sources."ansi-regex-2.1.1"
-          sources."strip-ansi-3.0.1"
-        ];
-      })
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."combined-stream-1.0.8"
-      sources."command-exists-1.2.9"
-      sources."commander-2.20.3"
-      sources."common-tags-1.8.0"
       sources."concat-map-0.0.1"
-      sources."configstore-4.0.0"
-      sources."constant-case-2.0.0"
-      (sources."content-disposition-0.5.3" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      sources."content-type-1.0.4"
-      sources."cookie-0.4.0"
-      sources."cookie-signature-1.0.6"
-      sources."core-js-2.6.11"
+      sources."core-js-3.6.5"
       sources."core-util-is-1.0.2"
-      sources."cosmiconfig-5.2.1"
-      sources."create-error-class-3.0.2"
-      (sources."creato-1.1.2" // {
-        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."has-flag-4.0.0"
-          (sources."inquirer-7.1.0" // {
-            dependencies = [
-              sources."chalk-3.0.0"
-            ];
-          })
-          sources."is-fullwidth-code-point-3.0.0"
-          (sources."ora-4.0.4" // {
-            dependencies = [
-              sources."chalk-3.0.0"
-            ];
-          })
-          sources."string-width-4.2.0"
-          sources."strip-ansi-6.0.0"
-          sources."supports-color-7.1.0"
-          sources."update-notifier-3.0.1"
-        ];
-      })
-      (sources."cross-fetch-2.2.2" // {
-        dependencies = [
-          sources."node-fetch-2.1.2"
-        ];
-      })
-      (sources."cross-spawn-6.0.5" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      sources."crypto-random-string-1.0.0"
-      (sources."cucumber-html-reporter-3.0.4" // {
-        dependencies = [
-          sources."fs-extra-3.0.1"
-          sources."jsonfile-3.0.1"
-        ];
-      })
+      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."debug-2.6.9"
+      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."defaults-1.0.3"
       sources."defer-to-connect-1.1.3"
+      sources."define-properties-1.1.3"
       sources."delayed-stream-1.0.0"
-      sources."depd-1.1.2"
-      sources."destroy-1.0.4"
-      sources."diff-1.4.0"
-      (sources."disparity-2.0.0" // {
-        dependencies = [
-          sources."ansi-styles-2.2.1"
-        ];
-      })
-      sources."dot-case-2.1.1"
-      sources."dot-prop-4.2.0"
-      sources."dotenv-6.2.0"
+      sources."dir-glob-3.0.1"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
-      sources."ecdsa-sig-formatter-1.0.11"
-      sources."ee-first-1.1.1"
       sources."emoji-regex-8.0.0"
-      sources."encodeurl-1.0.2"
-      sources."encoding-0.1.12"
       sources."end-of-stream-1.4.4"
-      sources."errno-0.1.7"
       sources."error-ex-1.3.2"
-      sources."es6-promise-4.2.8"
-      sources."es6-promisify-5.0.0"
-      sources."escape-html-1.0.3"
+      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."esutils-2.0.3"
-      sources."etag-1.8.1"
-      (sources."execa-0.7.0" // {
-        dependencies = [
-          sources."cross-spawn-5.1.0"
-        ];
-      })
-      sources."expand-tilde-2.0.2"
-      (sources."express-4.17.1" // {
-        dependencies = [
-          sources."qs-6.7.0"
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      (sources."express-request-proxy-2.2.2" // {
+      sources."eventemitter3-3.1.2"
+      sources."execa-1.0.0"
+      (sources."ext-1.4.0" // {
         dependencies = [
-          sources."debug-3.2.6"
-          sources."ms-2.1.2"
-          sources."path-to-regexp-1.8.0"
+          sources."type-2.0.0"
         ];
       })
       sources."extend-3.0.2"
@@ -61394,506 +62711,349 @@ in
         ];
       })
       sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-1.1.0"
+      sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-safe-stringify-2.0.7"
+      sources."fastq-1.8.0"
       sources."figures-3.2.0"
-      sources."finalhandler-1.1.2"
-      sources."find-0.2.9"
-      sources."find-up-2.1.0"
+      sources."fill-range-7.0.1"
+      sources."filter-obj-2.0.1"
+      sources."find-up-3.0.0"
+      sources."foreach-2.0.5"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."format-util-1.0.5"
-      sources."forwarded-0.1.2"
-      sources."fresh-0.5.2"
-      sources."fs-extra-5.0.0"
-      sources."fs-minipass-2.1.0"
+      sources."form-urlencoded-4.2.1"
+      sources."fs-extra-9.0.0"
       sources."fs.realpath-1.0.0"
+      sources."fullname-4.0.1"
+      sources."function-bind-1.1.1"
       sources."get-caller-file-1.0.3"
-      sources."get-stream-3.0.0"
+      sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      sources."global-dirs-0.1.1"
-      sources."global-modules-1.0.0"
-      sources."global-prefix-1.0.2"
+      sources."glob-parent-5.1.1"
+      sources."globby-11.0.1"
       (sources."got-9.6.0" // {
         dependencies = [
-          sources."get-stream-4.1.0"
+          sources."p-cancelable-1.1.0"
         ];
       })
       sources."graceful-fs-4.2.4"
-      sources."graphcool-json-schema-1.2.1"
-      (sources."graphcool-yml-0.4.15" // {
-        dependencies = [
-          sources."ajv-5.5.2"
-          sources."debug-3.2.6"
-          sources."dotenv-4.0.0"
-          sources."fast-deep-equal-1.1.0"
-          sources."fs-extra-4.0.3"
-          sources."json-schema-traverse-0.3.1"
-          sources."ms-2.1.2"
-        ];
-      })
-      sources."graphql-14.6.0"
-      (sources."graphql-cli-prepare-1.4.19" // {
-        dependencies = [
-          sources."chalk-2.3.1"
-          sources."lodash-4.17.5"
-        ];
-      })
-      (sources."graphql-config-2.2.1" // {
-        dependencies = [
-          sources."graphql-import-0.7.1"
-        ];
-      })
-      sources."graphql-config-extension-graphcool-1.0.11"
-      sources."graphql-config-extension-prisma-0.3.0"
-      sources."graphql-import-0.4.5"
-      sources."graphql-playground-html-1.6.12"
-      sources."graphql-playground-middleware-express-1.7.12"
-      sources."graphql-request-1.8.2"
-      sources."graphql-schema-linter-0.2.1"
-      sources."graphql-static-binding-0.9.3"
+      sources."grapheme-splitter-1.0.4"
+      sources."graphql-15.3.0"
+      sources."graphql-config-3.0.3"
+      sources."graphql-subscriptions-1.1.0"
+      sources."graphql-type-json-0.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
-      sources."has-flag-3.0.0"
-      sources."has-yarn-2.1.0"
-      sources."header-case-1.0.1"
-      sources."homedir-polyfill-1.0.3"
-      sources."hosted-git-info-2.8.8"
-      sources."http-cache-semantics-4.1.0"
-      (sources."http-errors-1.7.2" // {
+      (sources."har-validator-5.1.5" // {
         dependencies = [
-          sources."inherits-2.0.3"
-        ];
-      })
-      (sources."http-proxy-agent-2.1.0" // {
-        dependencies = [
-          sources."debug-3.1.0"
+          sources."ajv-6.12.3"
+          sources."fast-deep-equal-3.1.3"
+          sources."json-schema-traverse-0.4.1"
         ];
       })
+      sources."has-1.0.3"
+      sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.1"
+      sources."http-cache-semantics-4.1.0"
       sources."http-signature-1.2.0"
-      (sources."https-proxy-agent-2.2.4" // {
-        dependencies = [
-          sources."debug-3.2.6"
-          sources."ms-2.1.2"
-        ];
-      })
+      sources."http2-client-1.3.3"
       sources."iconv-lite-0.4.24"
-      (sources."import-fresh-2.0.0" // {
+      sources."ignore-5.1.8"
+      (sources."import-fresh-3.2.1" // {
         dependencies = [
-          sources."resolve-from-3.0.0"
+          sources."resolve-from-4.0.0"
         ];
       })
-      sources."import-lazy-2.1.0"
-      sources."imurmurhash-0.1.4"
-      sources."inflected-2.0.4"
+      sources."import-from-3.0.0"
+      sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      (sources."inquirer-6.2.0" // {
+      (sources."inquirer-7.1.0" // {
         dependencies = [
-          sources."ansi-escapes-3.2.0"
-          sources."cli-cursor-2.1.0"
-          sources."figures-2.0.0"
-          sources."mute-stream-0.0.7"
-          sources."onetime-2.0.1"
-          sources."restore-cursor-2.0.0"
+          sources."chalk-3.0.0"
         ];
       })
-      sources."invert-kv-1.0.0"
-      sources."ip-regex-1.0.3"
-      sources."ipaddr.js-1.9.1"
+      sources."invert-kv-2.0.0"
+      sources."is-arguments-1.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-ci-2.0.0"
-      sources."is-directory-0.3.1"
-      sources."is-fullwidth-code-point-1.0.0"
-      sources."is-installed-globally-0.1.0"
+      sources."is-bigint-1.0.0"
+      sources."is-boolean-object-1.0.1"
+      sources."is-callable-1.2.0"
+      sources."is-date-object-1.0.2"
+      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-lower-case-1.1.3"
-      sources."is-npm-3.0.0"
-      sources."is-obj-1.0.1"
-      sources."is-path-inside-1.0.1"
-      sources."is-redirect-1.0.0"
-      sources."is-retry-allowed-1.2.0"
+      sources."is-map-2.0.1"
+      sources."is-number-7.0.0"
+      sources."is-number-object-1.0.4"
+      sources."is-regex-1.1.1"
+      sources."is-set-2.0.1"
       sources."is-stream-1.1.0"
+      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-upper-case-1.1.2"
-      sources."is-url-superb-2.0.0"
-      sources."is-windows-1.0.2"
-      sources."is-wsl-1.1.0"
-      sources."is-yarn-global-0.3.0"
-      sources."isarray-0.0.1"
+      sources."is-weakmap-2.0.1"
+      sources."is-weakset-2.0.1"
+      sources."is-wsl-2.2.0"
+      sources."isarray-2.0.5"
       sources."isexe-2.0.0"
-      (sources."isomorphic-fetch-2.2.1" // {
-        dependencies = [
-          sources."node-fetch-1.7.3"
-        ];
-      })
       sources."isstream-0.1.2"
       sources."iterall-1.3.0"
-      sources."js-base64-2.5.2"
-      sources."js-yaml-3.13.1"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
-      sources."jsesc-2.5.2"
       sources."json-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-0.2.3"
-      (sources."json-schema-ref-parser-3.3.1" // {
-        dependencies = [
-          sources."debug-3.2.6"
-          sources."ms-2.1.2"
-        ];
-      })
-      sources."json-schema-traverse-0.4.1"
-      sources."json-stable-stringify-1.0.1"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsonfile-4.0.0"
-      sources."jsonify-0.0.0"
-      (sources."jsonwebtoken-8.5.1" // {
-        dependencies = [
-          sources."ms-2.1.2"
-          sources."semver-5.7.1"
-        ];
-      })
+      sources."json-to-ast-2.1.0"
+      sources."jsonfile-6.0.1"
+      sources."jsonpath-plus-3.0.0"
+      sources."jsonpointer-4.1.0"
       sources."jsprim-1.4.1"
-      sources."jwa-1.4.1"
-      sources."jws-3.2.2"
       sources."keyv-3.1.0"
       sources."latest-version-5.1.0"
-      sources."lcid-1.0.0"
-      (sources."load-json-file-2.0.0" // {
+      sources."lcid-2.0.0"
+      sources."leven-3.1.0"
+      sources."lines-and-columns-1.1.6"
+      sources."locate-path-3.0.0"
+      sources."lodash-4.17.19"
+      (sources."log-symbols-3.0.0" // {
         dependencies = [
-          sources."parse-json-2.2.0"
-          sources."pify-2.3.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."supports-color-5.5.0"
+        ];
+      })
+      (sources."lower-case-2.0.1" // {
+        dependencies = [
+          sources."tslib-1.13.0"
         ];
       })
-      sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
-      sources."lodash.get-4.4.2"
-      sources."lodash.includes-4.3.0"
-      sources."lodash.isboolean-3.0.3"
-      sources."lodash.isequal-4.5.0"
-      sources."lodash.isinteger-4.0.4"
-      sources."lodash.isnumber-3.0.3"
-      sources."lodash.isplainobject-4.0.6"
-      sources."lodash.isstring-4.0.1"
-      sources."lodash.once-4.1.1"
-      sources."log-symbols-3.0.0"
-      sources."lower-case-1.1.4"
-      sources."lower-case-first-1.0.2"
       sources."lowercase-keys-1.0.1"
-      sources."lru-cache-4.1.5"
-      sources."make-dir-1.3.0"
       sources."map-age-cleaner-0.1.3"
-      sources."media-typer-0.3.0"
-      sources."mem-1.1.0"
-      sources."merge-descriptors-1.0.1"
-      sources."methods-1.1.2"
-      sources."mime-1.6.0"
+      sources."mem-5.1.1"
+      sources."merge2-1.4.1"
+      sources."micromatch-4.0.2"
       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."minipass-3.1.1" // {
-        dependencies = [
-          sources."yallist-4.0.0"
-        ];
-      })
-      (sources."minizlib-2.1.0" // {
-        dependencies = [
-          sources."yallist-4.0.0"
-        ];
-      })
-      sources."mkdirp-0.5.5"
-      sources."ms-2.0.0"
+      sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
-      sources."negotiator-0.6.2"
+      sources."nan-2.14.1"
+      sources."next-tick-1.0.0"
       sources."nice-try-1.0.5"
-      sources."no-case-2.3.2"
-      sources."node-fetch-2.6.0"
-      sources."node-request-by-swagger-1.1.4"
-      (sources."normalize-package-data-2.5.0" // {
+      (sources."no-case-3.0.3" // {
         dependencies = [
-          sources."semver-5.7.1"
+          sources."tslib-1.13.0"
         ];
       })
+      sources."node-fetch-2.6.0"
+      sources."node-fetch-h2-2.3.0"
+      sources."node-readfiles-0.2.0"
+      sources."normalize-path-2.1.1"
       sources."normalize-url-4.5.0"
-      sources."npm-path-2.0.4"
-      sources."npm-paths-1.0.0"
-      (sources."npm-run-4.1.2" // {
-        dependencies = [
-          sources."cross-spawn-5.1.0"
-        ];
-      })
       sources."npm-run-path-2.0.2"
-      sources."npm-which-3.0.1"
       sources."number-is-nan-1.0.1"
+      sources."oas-kit-common-1.0.8"
+      sources."oas-linter-3.1.3"
+      sources."oas-resolver-2.4.2"
+      sources."oas-schema-walker-1.1.5"
+      sources."oas-validator-3.4.0"
       sources."oauth-sign-0.9.0"
-      sources."on-finished-2.3.0"
+      sources."object-inspect-1.8.0"
+      sources."object-is-1.1.2"
+      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.1"
+      sources."open-7.0.4"
+      sources."openapi-to-graphql-2.1.0"
+      (sources."ora-4.0.4" // {
         dependencies = [
-          sources."mimic-fn-2.1.0"
+          sources."chalk-3.0.0"
         ];
       })
-      sources."ono-4.0.11"
-      sources."open-0.0.5"
-      sources."opn-5.5.0"
-      (sources."ora-3.4.0" // {
+      (sources."os-locale-3.1.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."cli-cursor-2.1.0"
-          sources."log-symbols-2.2.0"
-          sources."onetime-2.0.1"
-          sources."restore-cursor-2.0.0"
-          sources."strip-ansi-5.2.0"
+          sources."mem-4.3.0"
         ];
       })
-      sources."os-locale-2.1.0"
       sources."os-tmpdir-1.0.2"
-      sources."p-cancelable-1.1.0"
+      sources."p-any-2.1.0"
+      sources."p-cancelable-2.0.0"
       sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
       sources."p-is-promise-2.1.0"
-      sources."p-limit-1.3.0"
-      sources."p-locate-2.0.0"
-      sources."p-try-1.0.0"
-      sources."package-json-6.5.0"
-      sources."param-case-2.1.1"
-      sources."parse-github-url-1.0.2"
-      sources."parse-json-4.0.0"
-      sources."parse-passwd-1.0.0"
-      sources."parseurl-1.3.3"
-      sources."pascal-case-2.0.1"
-      sources."path-case-2.1.1"
-      sources."path-exists-3.0.0"
-      sources."path-is-absolute-1.0.1"
-      sources."path-is-inside-1.0.2"
-      sources."path-key-2.0.1"
-      sources."path-parse-1.0.6"
-      sources."path-to-regexp-0.1.7"
-      (sources."path-type-2.0.0" // {
+      sources."p-limit-3.0.2"
+      (sources."p-locate-3.0.0" // {
         dependencies = [
-          sources."pify-2.3.0"
+          sources."p-limit-2.3.0"
         ];
       })
-      sources."performance-now-2.1.0"
-      sources."pify-3.0.0"
-      sources."prepend-http-2.0.0"
-      sources."prisma-json-schema-0.1.3"
-      (sources."prisma-yml-1.26.6" // {
+      sources."p-some-4.1.0"
+      sources."p-try-2.2.0"
+      (sources."package-json-6.5.0" // {
         dependencies = [
-          sources."ajv-5.5.2"
-          sources."debug-3.2.6"
-          sources."dotenv-4.0.0"
-          sources."fast-deep-equal-1.1.0"
-          sources."fs-extra-7.0.1"
-          sources."json-schema-traverse-0.3.1"
-          sources."ms-2.1.2"
+          sources."semver-6.3.0"
         ];
       })
-      sources."process-nextick-args-2.0.1"
-      sources."protochain-1.0.5"
-      sources."proxy-addr-2.0.6"
-      sources."prr-1.0.1"
-      sources."pseudomap-1.0.2"
+      sources."parent-module-1.0.1"
+      sources."parse-json-5.0.1"
+      (sources."pascal-case-3.1.1" // {
+        dependencies = [
+          sources."tslib-1.13.0"
+        ];
+      })
+      sources."passwd-user-3.0.0"
+      sources."path-exists-3.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-key-2.0.1"
+      sources."path-type-4.0.0"
+      sources."performance-now-2.1.0"
+      sources."picomatch-2.2.2"
+      sources."pluralize-8.0.0"
+      sources."prepend-http-2.0.0"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
-      sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
       sources."rc-1.2.8"
-      sources."read-pkg-2.0.0"
-      sources."read-pkg-up-2.0.0"
-      (sources."readable-stream-2.3.7" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      sources."regenerator-runtime-0.11.1"
-      sources."registry-auth-token-4.1.1"
+      sources."reftools-1.1.4"
+      sources."regenerator-runtime-0.13.7"
+      sources."regexp.prototype.flags-1.3.0"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
-      sources."replaceall-0.1.6"
+      sources."remove-trailing-separator-1.1.0"
       sources."request-2.88.2"
-      sources."request-promise-4.2.5"
-      sources."request-promise-core-1.1.3"
       sources."require-directory-2.1.1"
       sources."require-main-filename-1.0.1"
-      sources."resolve-1.17.0"
-      sources."resolve-dir-1.0.1"
-      sources."resolve-from-4.0.0"
+      sources."resolve-from-5.0.0"
       sources."responselike-1.0.2"
       sources."restore-cursor-3.1.0"
-      sources."rimraf-2.7.1"
+      sources."reusify-1.0.4"
+      sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
-      sources."safe-buffer-5.2.0"
-      sources."safer-buffer-2.1.2"
-      sources."scuid-1.1.0"
-      sources."semver-6.3.0"
-      (sources."semver-diff-2.1.0" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      (sources."send-0.17.1" // {
+      sources."run-parallel-1.1.9"
+      (sources."rxjs-6.6.2" // {
         dependencies = [
-          sources."ms-2.1.1"
+          sources."tslib-1.13.0"
         ];
       })
-      sources."sentence-case-2.1.1"
-      sources."serializerr-1.0.3"
-      sources."serve-static-1.14.1"
+      sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
+      sources."semver-5.7.1"
       sources."set-blocking-2.0.0"
-      sources."setprototypeof-1.1.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
+      sources."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."side-channel-1.0.2"
       sources."signal-exit-3.0.3"
-      sources."simple-errors-1.0.1"
-      sources."snake-case-2.1.0"
-      sources."source-map-0.5.7"
-      (sources."source-map-support-0.5.19" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
-      sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
-      sources."spdx-license-ids-3.0.5"
+      sources."simple-git-2.5.0"
+      sources."slash-3.0.0"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
-      sources."statuses-1.5.0"
-      sources."stealthy-require-1.1.1"
-      (sources."string-width-2.1.1" // {
-        dependencies = [
-          sources."is-fullwidth-code-point-2.0.0"
-        ];
-      })
-      (sources."string_decoder-1.1.1" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      sources."strip-ansi-4.0.0"
-      sources."strip-bom-3.0.0"
+      sources."string-env-interpolation-1.0.1"
+      sources."string-width-4.2.0"
+      sources."string.prototype.trimend-1.0.1"
+      sources."string.prototype.trimstart-1.0.1"
+      sources."strip-ansi-6.0.0"
       sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-5.5.0"
-      sources."swap-case-1.1.2"
-      sources."sync-exec-0.6.2"
-      (sources."tar-6.0.2" // {
+      sources."subscriptions-transport-ws-0.9.17"
+      sources."supports-color-7.1.0"
+      (sources."swagger2openapi-5.4.0" // {
         dependencies = [
-          sources."mkdirp-1.0.4"
-          sources."yallist-4.0.0"
+          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."yargs-12.0.5"
         ];
       })
-      sources."term-size-1.2.0"
+      sources."symbol-observable-1.2.0"
       sources."through-2.3.8"
-      sources."through2-2.0.5"
-      sources."timed-out-4.0.1"
-      sources."title-case-2.1.1"
-      (sources."tmp-0.2.1" // {
-        dependencies = [
-          sources."rimraf-3.0.2"
-        ];
-      })
-      sources."tmp-graphql-config-extension-openapi-1.0.7"
-      sources."to-fast-properties-2.0.0"
+      sources."tmp-0.2.1"
       sources."to-readable-stream-1.0.0"
-      sources."toidentifier-1.0.0"
+      sources."to-regex-range-5.0.1"
       sources."tough-cookie-2.5.0"
-      sources."traverse-chain-0.1.0"
-      sources."trim-right-1.0.1"
-      sources."tslib-1.11.1"
+      sources."tslib-2.0.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."type-fest-0.11.0"
-      sources."type-is-1.6.18"
-      sources."unique-string-1.0.0"
-      sources."universalify-0.1.2"
-      sources."unpipe-1.0.0"
-      sources."unzip-response-2.0.1"
-      (sources."update-notifier-2.5.0" // {
-        dependencies = [
-          sources."ansi-align-2.0.0"
-          sources."boxen-1.3.0"
-          sources."ci-info-1.6.0"
-          sources."cli-boxes-1.0.0"
-          sources."configstore-3.1.2"
-          sources."got-6.7.1"
-          sources."is-ci-1.2.1"
-          sources."is-npm-1.0.0"
-          sources."latest-version-3.1.0"
-          sources."package-json-4.0.1"
-          sources."prepend-http-1.0.4"
-          sources."registry-auth-token-3.4.0"
-          sources."registry-url-3.1.0"
-          sources."semver-5.7.1"
-          sources."url-parse-lax-1.0.0"
-        ];
-      })
-      sources."upper-case-1.1.3"
-      sources."upper-case-first-1.1.2"
+      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."url-join-4.0.0"
       sources."url-parse-lax-3.0.0"
-      sources."url-regex-3.2.0"
-      sources."util-deprecate-1.0.2"
-      sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
-      sources."validate-npm-package-license-3.0.4"
-      sources."validator-10.11.0"
-      sources."vary-1.1.2"
+      sources."valid-url-1.0.9"
       sources."verror-1.10.0"
       sources."wcwidth-1.0.1"
-      sources."whatwg-fetch-2.0.4"
+      (sources."websocket-1.0.31" // {
+        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"
+      sources."which-collection-1.0.1"
       sources."which-module-2.0.0"
-      sources."widest-line-2.0.1"
+      sources."which-typed-array-1.1.2"
       (sources."wrap-ansi-2.1.0" // {
         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."wrappy-1.0.2"
-      sources."write-file-atomic-2.4.3"
-      sources."xdg-basedir-3.0.0"
-      sources."xtend-4.0.2"
-      sources."y18n-3.2.1"
-      sources."yallist-2.1.2"
-      sources."yaml-ast-parser-0.0.40"
-      (sources."yargs-12.0.5" // {
+      sources."ws-5.2.2"
+      sources."y18n-4.0.0"
+      sources."yaeti-0.0.6"
+      sources."yaml-1.10.0"
+      (sources."yargs-15.4.1" // {
         dependencies = [
-          sources."camelcase-5.3.1"
-          sources."execa-1.0.0"
-          sources."find-up-3.0.0"
-          sources."get-stream-4.1.0"
-          sources."invert-kv-2.0.0"
-          sources."lcid-2.0.0"
-          sources."locate-path-3.0.0"
-          sources."mem-4.3.0"
-          sources."mimic-fn-2.1.0"
-          sources."os-locale-3.1.0"
+          sources."cliui-6.0.0"
+          sources."find-up-4.1.0"
+          sources."get-caller-file-2.0.5"
+          sources."locate-path-5.0.0"
           sources."p-limit-2.3.0"
-          sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
-          sources."yargs-parser-11.1.1"
+          sources."p-locate-4.1.0"
+          sources."path-exists-4.0.0"
+          sources."require-main-filename-2.0.0"
+          sources."wrap-ansi-6.2.0"
+          sources."yargs-parser-18.1.3"
         ];
       })
-      sources."yargs-parser-8.1.0"
-      sources."z-schema-3.25.1"
+      sources."yargs-parser-11.1.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
-      description = "GraphQL CLI";
-      homepage = "https://github.com/graphql-cli/graphql-cli#readme";
+      description = "Command line tool for common GraphQL development workflows";
+      homepage = "https://github.com/Urigo/graphql-cli#readme";
       license = "MIT";
     };
     production = true;
@@ -62209,14 +63369,14 @@ 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.19"
       sources."lodash.toarray-4.4.0"
       sources."map-canvas-0.1.5"
       sources."marked-0.7.0"
       (sources."marked-terminal-4.1.0" // {
         dependencies = [
           sources."ansi-styles-4.2.1"
-          sources."chalk-4.0.0"
+          sources."chalk-4.1.0"
           sources."supports-color-7.1.0"
         ];
       })
@@ -62239,7 +63399,7 @@ in
           sources."supports-color-7.1.0"
         ];
       })
-      sources."systeminformation-4.24.1"
+      sources."systeminformation-4.26.10"
       sources."term-canvas-0.0.5"
       sources."type-fest-0.11.0"
       sources."wordwrap-0.0.3"
@@ -62270,7 +63430,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"
@@ -62320,11 +63484,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"
@@ -62432,7 +63592,7 @@ in
       sources."fragment-cache-0.2.1"
       sources."fs-mkdirp-stream-1.0.0"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-1.2.12"
+      sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
       sources."get-caller-file-1.0.3"
       sources."get-value-2.0.6"
@@ -62443,12 +63603,12 @@ 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"
       sources."graceful-fs-4.2.4"
-      sources."gulp-cli-2.2.0"
+      sources."gulp-cli-2.3.0"
       sources."gulplog-1.0.0"
       sources."has-symbols-1.0.1"
       sources."has-value-1.0.0"
@@ -62462,7 +63622,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      sources."interpret-1.2.0"
+      sources."interpret-1.4.0"
       sources."invert-kv-1.0.0"
       sources."is-absolute-1.0.0"
       sources."is-accessor-descriptor-1.0.0"
@@ -62521,7 +63681,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" // {
@@ -62629,9 +63789,9 @@ in
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
       sources."sparkles-1.0.1"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."split-string-3.1.0"
       sources."stack-trace-0.0.10"
@@ -62692,25 +63852,29 @@ in
       sources."urix-0.1.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
-      sources."v8flags-3.1.3"
+      sources."v8flags-3.2.0"
       sources."validate-npm-package-license-3.0.4"
       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"
       sources."wrappy-1.0.2"
       sources."xtend-4.0.2"
       sources."y18n-3.2.1"
-      sources."yargs-7.1.0"
-      sources."yargs-parser-5.0.0"
+      sources."yargs-7.1.1"
+      sources."yargs-parser-5.0.0-security.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "The streaming build system.";
-      homepage = "https://gulpjs.com/";
+      homepage = https://gulpjs.com/;
       license = "MIT";
     };
     production = true;
@@ -62720,10 +63884,10 @@ in
   gulp-cli = nodeEnv.buildNodePackage {
     name = "gulp-cli";
     packageName = "gulp-cli";
-    version = "2.2.0";
+    version = "2.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz";
-      sha512 = "rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==";
+      url = "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz";
+      sha512 = "zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==";
     };
     dependencies = [
       sources."ansi-colors-1.1.0"
@@ -62776,6 +63940,7 @@ in
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       sources."default-compare-1.0.0"
+      sources."define-properties-1.1.3"
       sources."define-property-2.0.2"
       sources."detect-file-1.0.0"
       sources."each-props-1.3.2"
@@ -62824,6 +63989,7 @@ in
       sources."for-in-1.0.2"
       sources."for-own-1.0.0"
       sources."fragment-cache-0.2.1"
+      sources."function-bind-1.1.1"
       sources."get-caller-file-1.0.3"
       sources."get-value-2.0.6"
       sources."global-modules-1.0.0"
@@ -62831,6 +63997,7 @@ in
       sources."glogg-1.0.2"
       sources."graceful-fs-4.2.4"
       sources."gulplog-1.0.0"
+      sources."has-symbols-1.0.1"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
@@ -62841,7 +64008,7 @@ in
       sources."hosted-git-info-2.8.8"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      sources."interpret-1.2.0"
+      sources."interpret-1.4.0"
       sources."invert-kv-1.0.0"
       sources."is-absolute-1.0.0"
       (sources."is-accessor-descriptor-1.0.0" // {
@@ -62928,7 +64095,9 @@ in
           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.defaults-1.1.0"
       sources."object.map-1.0.1"
       sources."object.pick-1.3.0"
@@ -62998,9 +64167,9 @@ in
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
       sources."sparkles-1.0.1"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."split-string-3.1.0"
       sources."stack-trace-0.0.10"
@@ -63043,19 +64212,37 @@ in
       sources."urix-0.1.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
-      sources."v8flags-3.1.3"
+      sources."v8flags-3.2.0"
       sources."validate-npm-package-license-3.0.4"
       sources."which-1.3.1"
       sources."which-module-1.0.0"
       sources."wrap-ansi-2.1.0"
       sources."y18n-3.2.1"
-      sources."yargs-7.1.0"
-      sources."yargs-parser-5.0.0"
+      sources."yargs-7.1.1"
+      sources."yargs-parser-5.0.0-security.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "Command line interface for gulp";
-      homepage = "https://gulpjs.com/";
+      homepage = https://gulpjs.com/;
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  he = nodeEnv.buildNodePackage {
+    name = "he";
+    packageName = "he";
+    version = "1.2.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz";
+      sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "A robust HTML entities encoder/decoder with full Unicode support.";
+      homepage = https://mths.be/he;
       license = "MIT";
     };
     production = true;
@@ -63080,13 +64267,13 @@ in
       sources."param-case-2.1.1"
       sources."relateurl-0.2.7"
       sources."source-map-0.6.1"
-      sources."uglify-js-3.9.2"
+      sources."uglify-js-3.10.1"
       sources."upper-case-1.1.3"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "Highly configurable, well-tested, JavaScript-based HTML minifier.";
-      homepage = "https://kangax.github.io/html-minifier/";
+      homepage = https://kangax.github.io/html-minifier/;
       license = "MIT";
     };
     production = true;
@@ -63096,61 +64283,49 @@ in
   htmlhint = nodeEnv.buildNodePackage {
     name = "htmlhint";
     packageName = "htmlhint";
-    version = "0.11.0";
+    version = "0.14.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/htmlhint/-/htmlhint-0.11.0.tgz";
-      sha512 = "uXuRyVhQa0HlNmZg5LJ1BRJvRq5f7IJL/34tItHhZr9re15pwaqAuLUAIcqtwd1bLUCE++7HVPtR+NSReFW0iA==";
+      url = "https://registry.npmjs.org/htmlhint/-/htmlhint-0.14.1.tgz";
+      sha512 = "VWKrljlwF8tEKH48YPfC30zYKhrsMqm70d7vXswivEqd3DSva8ZlIzfeCa3YWFEFRIIhiXKgKurlqEpCtYMCAA==";
     };
     dependencies = [
-      sources."ajv-6.12.2"
+      sources."@types/color-name-1.1.1"
+      sources."ajv-6.12.3"
+      sources."ansi-styles-4.2.1"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
-      sources."async-2.6.1"
+      sources."async-3.2.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."caseless-0.12.0"
-      sources."cli-1.0.1"
-      sources."clone-2.1.2"
-      sources."colors-1.3.2"
+      sources."chalk-4.0.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."combined-stream-1.0.8"
-      sources."commander-2.17.1"
+      sources."commander-5.1.0"
       sources."concat-map-0.0.1"
-      sources."console-browserify-1.1.0"
       sources."core-util-is-1.0.2"
-      sources."csslint-1.0.5"
       sources."dashdash-1.14.1"
-      sources."date-now-0.1.4"
       sources."delayed-stream-1.0.0"
-      (sources."dom-serializer-0.2.2" // {
-        dependencies = [
-          sources."domelementtype-2.0.1"
-          sources."entities-2.0.0"
-        ];
-      })
-      sources."domelementtype-1.3.1"
-      sources."domhandler-2.3.0"
-      sources."domutils-1.5.1"
       sources."ecc-jsbn-0.1.2"
-      sources."entities-1.0.0"
-      sources."exit-0.1.2"
       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."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."fs.realpath-1.0.0"
       sources."getpass-0.1.7"
-      sources."glob-7.1.3"
+      sources."glob-7.1.6"
       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."htmlparser2-3.8.3"
+      sources."har-validator-5.1.5"
+      sources."has-flag-4.0.0"
       sources."http-signature-1.2.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -63158,45 +64333,30 @@ in
       sources."is-extglob-1.0.0"
       sources."is-glob-2.0.1"
       sources."is-typedarray-1.0.0"
-      sources."isarray-0.0.1"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      (sources."jshint-2.11.0" // {
-        dependencies = [
-          sources."strip-json-comments-1.0.4"
-        ];
-      })
       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."lodash-4.17.15"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."minimatch-3.0.4"
       sources."oauth-sign-0.9.0"
       sources."once-1.4.0"
       sources."parse-glob-3.0.4"
-      sources."parserlib-1.1.1"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
       sources."performance-now-2.1.0"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
-      sources."readable-stream-1.1.14"
-      sources."request-2.88.0"
-      sources."safe-buffer-5.2.0"
+      sources."request-2.88.2"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."shelljs-0.3.0"
       sources."sshpk-1.16.1"
-      sources."string_decoder-0.10.31"
-      sources."strip-json-comments-2.0.1"
-      (sources."tough-cookie-2.4.3" // {
-        dependencies = [
-          sources."punycode-1.4.1"
-        ];
-      })
+      sources."strip-json-comments-3.1.0"
+      sources."supports-color-7.1.0"
+      sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."uri-js-4.2.2"
@@ -63208,7 +64368,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "The Static Code Analysis Tool for your HTML";
-      homepage = "https://github.com/thedaviddias/HTMLHint#readme";
+      homepage = https://htmlhint.com/;
       license = "MIT";
     };
     production = true;
@@ -63230,17 +64390,17 @@ in
       sources."corser-2.0.1"
       sources."debug-3.2.6"
       sources."ecstatic-3.3.2"
-      sources."eventemitter3-4.0.0"
-      sources."follow-redirects-1.11.0"
+      sources."eventemitter3-4.0.4"
+      sources."follow-redirects-1.12.1"
       sources."he-1.2.0"
-      sources."http-proxy-1.18.0"
-      sources."lodash-4.17.15"
+      sources."http-proxy-1.18.1"
+      sources."lodash-4.17.19"
       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."portfinder-1.0.28"
       sources."qs-6.9.4"
       sources."requires-port-1.0.0"
       sources."secure-compare-3.0.1"
@@ -63294,7 +64454,7 @@ in
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
       sources."readable-stream-3.6.0"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."sprintf-js-1.0.3"
       sources."string_decoder-1.3.0"
       sources."tabula-1.10.0"
@@ -63325,7 +64485,7 @@ in
       sources."async-0.2.10"
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
-      sources."bunyan-1.8.12"
+      sources."bunyan-1.8.14"
       sources."colors-0.6.2"
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.2"
@@ -63345,7 +64505,7 @@ in
           sources."minimist-1.2.5"
         ];
       })
-      sources."moment-2.25.3"
+      sources."moment-2.27.0"
       sources."mv-2.1.1"
       sources."nan-2.14.1"
       sources."ncp-2.0.0"
@@ -63412,7 +64572,7 @@ in
       sha512 = "l4g7U75E+WgrgNGH774djfTyp5Aw+2jJokYe9iCunSAbi/w+nRGHqTJfwbODLwiJQTnbXkM42FxgPRA29Ce7Bg==";
     };
     dependencies = [
-      sources."@types/jquery-3.3.37"
+      sources."@types/jquery-3.5.1"
       sources."@types/sizzle-2.3.2"
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
@@ -63430,8 +64590,8 @@ in
       sources."historic-readline-1.0.8"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."jquery-3.5.0"
-      sources."jquery.terminal-2.15.4"
+      sources."jquery-3.5.1"
+      sources."jquery.terminal-2.17.6"
       sources."jsonfile-2.4.0"
       sources."keyboardevent-key-polyfill-1.1.0"
       sources."line-reader-0.4.0"
@@ -63450,7 +64610,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "High precision scientific calculator with support for physical units";
-      homepage = "https://github.com/sharkdp/insect";
+      homepage = https://github.com/sharkdp/insect;
       license = "MIT";
     };
     production = true;
@@ -63498,7 +64658,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"
@@ -63507,9 +64667,9 @@ in
       sources."concat-map-0.0.1"
       sources."cookiejar-2.1.2"
       sources."core-util-is-1.0.2"
-      sources."cross-spawn-7.0.2"
+      sources."cross-spawn-7.0.3"
       sources."data-uri-to-buffer-1.2.0"
-      sources."debug-4.1.1"
+      sources."debug-4.2.0"
       sources."deep-is-0.1.3"
       sources."degenerator-1.0.4"
       sources."delayed-stream-1.0.0"
@@ -63528,7 +64688,7 @@ in
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
       sources."escape-string-regexp-1.0.5"
-      (sources."escodegen-1.14.1" // {
+      (sources."escodegen-1.14.3" // {
         dependencies = [
           sources."esprima-4.0.1"
         ];
@@ -63592,17 +64752,21 @@ in
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      (sources."inquirer-7.1.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.1"
           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"
@@ -63617,7 +64781,7 @@ in
         ];
       })
       sources."levn-0.3.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."lodash._baseassign-3.2.0"
       sources."lodash._basecopy-3.0.1"
       sources."lodash._bindcallback-3.0.1"
@@ -63637,9 +64801,9 @@ 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.5"
+      sources."mime-2.4.6"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."mimic-fn-1.2.0"
@@ -63659,7 +64823,7 @@ in
       })
       sources."once-1.4.0"
       sources."onetime-2.0.1"
-      sources."open-7.0.3"
+      sources."open-7.1.0"
       sources."optionator-0.8.3"
       sources."os-name-3.1.0"
       sources."os-tmpdir-1.0.2"
@@ -63680,8 +64844,8 @@ in
       sources."rimraf-3.0.2"
       sources."rsvp-3.6.2"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
-      sources."safe-buffer-5.2.0"
+      sources."rxjs-6.6.2"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.1.4"
       sources."semver-6.3.0"
@@ -63737,12 +64901,12 @@ in
       sources."supports-color-7.1.0"
       sources."tar-4.4.13"
       sources."through-2.3.8"
-      sources."through2-3.0.1"
+      sources."through2-3.0.2"
       sources."thunkify-2.1.2"
       sources."tmp-0.0.33"
       sources."toidentifier-1.0.0"
       sources."tree-kill-1.2.2"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."type-check-0.3.2"
       sources."type-fest-0.11.0"
       sources."typedarray-to-buffer-3.1.5"
@@ -63752,7 +64916,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."which-2.0.2"
-      sources."windows-release-3.3.0"
+      sources."windows-release-3.3.1"
       sources."word-wrap-1.2.3"
       (sources."wrap-ansi-6.2.0" // {
         dependencies = [
@@ -63763,108 +64927,90 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.2.5"
+      sources."ws-7.3.1"
       sources."xregexp-2.0.0"
       sources."yallist-3.1.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "A tool for creating and developing Ionic Framework mobile apps.";
-      homepage = "https://ionicframework.com/";
+      homepage = https://ionicframework.com/;
       license = "MIT";
     };
     production = true;
     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.3"
       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.9.1"
+      sources."aws4-1.10.0"
       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-3.0.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.3"
       sources."emoji-regex-8.0.0"
       sources."error-ex-1.3.2"
-      sources."escape-latex-1.2.0"
-      sources."escodegen-1.14.1"
+      sources."escape-string-regexp-1.0.5"
+      sources."escodegen-1.14.3"
       (sources."escope-1.0.3" // {
         dependencies = [
           sources."estraverse-2.0.0"
@@ -63890,163 +65036,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.1"
+      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.1"
       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.0.5"
       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"
@@ -64055,133 +65195,101 @@ 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"
       sources."source-map-url-0.4.0"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.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."ttf2woff-2.0.1"
-      sources."ttf2woff2-2.0.3"
+      sources."tslib-1.13.0"
+      sources."ttf2woff-2.0.2"
+      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."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.0.1" // {
+      (sources."verda-1.1.0" // {
         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.0"
-          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.11.1"
-          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.1.0"
         ];
       })
       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 = {
@@ -64193,10 +65301,10 @@ in
   jake = nodeEnv.buildNodePackage {
     name = "jake";
     packageName = "jake";
-    version = "10.6.1";
+    version = "10.8.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/jake/-/jake-10.6.1.tgz";
-      sha512 = "pHUK3+V0BjOb1XSi95rbBksrMdIqLVC9bJqDnshVyleYsET3H0XAq+3VB2E3notcYvv4wRdRHn13p7vobG+wfQ==";
+      url = "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz";
+      sha512 = "eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==";
     };
     dependencies = [
       sources."ansi-styles-3.2.1"
@@ -64259,9 +65367,9 @@ in
       sources."hexer-1.5.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."iterare-1.2.0"
+      sources."iterare-1.2.1"
       sources."jaeger-client-3.18.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."long-2.4.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -64280,7 +65388,7 @@ in
       sources."string-template-0.2.1"
       sources."supports-color-5.5.0"
       sources."symbol-observable-1.0.1"
-      sources."thenify-3.3.0"
+      sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."thriftrw-3.12.0"
       sources."type-detect-4.0.8"
@@ -64302,7 +65410,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Implementation of the Language Server Protocol for JavaScript and TypeScript";
-      homepage = "https://github.com/sourcegraph/javascript-typescript-langserver";
+      homepage = https://github.com/sourcegraph/javascript-typescript-langserver;
       license = "Apache-2.0";
     };
     production = true;
@@ -64312,24 +65420,24 @@ in
   joplin = nodeEnv.buildNodePackage {
     name = "joplin";
     packageName = "joplin";
-    version = "1.0.163";
+    version = "1.0.166";
     src = fetchurl {
-      url = "https://registry.npmjs.org/joplin/-/joplin-1.0.163.tgz";
-      sha512 = "0ZlG4SZgjMCoRBEyuJrQUFWWYgqE51XZlILA6Ex3rD4QXJOlZv/+8GqM1fUO+Ytu2NI6xPKmuHmfmP9+qPiRbQ==";
+      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.1.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.3"
       (sources."ansi-escape-sequences-4.1.0" // {
         dependencies = [
           sources."array-back-3.1.0"
@@ -64364,8 +65472,15 @@ in
       sources."async-mutex-0.1.4"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
+      (sources."aws-sdk-2.726.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.9.1"
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -64376,7 +65491,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.2" // {
+        dependencies = [
+          sources."buffer-5.6.0"
+        ];
+      })
       sources."brace-expansion-1.1.11"
       (sources."braces-2.3.2" // {
         dependencies = [
@@ -64384,7 +65503,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"
@@ -64435,7 +65554,7 @@ in
       sources."core-util-is-1.0.2"
       (sources."cross-env-6.0.3" // {
         dependencies = [
-          sources."cross-spawn-7.0.2"
+          sources."cross-spawn-7.0.3"
           sources."path-key-3.1.1"
           sources."shebang-command-2.0.0"
           sources."shebang-regex-3.0.0"
@@ -64454,7 +65573,7 @@ in
       sources."cwise-compiler-1.1.3"
       sources."dashdash-1.14.1"
       sources."data-urls-1.1.0"
-      sources."debug-3.2.6"
+      sources."debug-2.6.9"
       sources."decode-uri-component-0.2.0"
       sources."decompress-response-4.2.1"
       sources."deep-extend-0.6.0"
@@ -64466,11 +65585,11 @@ in
       sources."depd-1.1.2"
       sources."detect-libc-1.0.3"
       sources."diacritics-1.3.0"
-      sources."diff-match-patch-1.0.4"
+      sources."diff-match-patch-1.0.5"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
           sources."domelementtype-2.0.1"
-          sources."entities-2.0.0"
+          sources."entities-2.0.3"
         ];
       })
       sources."domelementtype-1.3.1"
@@ -64487,18 +65606,22 @@ 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"
       sources."escape-string-regexp-1.0.5"
-      sources."escodegen-1.14.1"
+      sources."escodegen-1.14.3"
       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."debug-2.6.9"
           sources."define-property-0.2.5"
           sources."extend-shallow-2.0.1"
           (sources."is-accessor-descriptor-0.1.6" // {
@@ -64513,7 +65636,6 @@ in
           })
           sources."is-descriptor-0.1.6"
           sources."kind-of-5.1.0"
-          sources."ms-2.0.0"
         ];
       })
       sources."expand-template-2.0.3"
@@ -64530,11 +65652,10 @@ in
         ];
       })
       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-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" // {
@@ -64548,7 +65669,7 @@ in
           sources."fs-extra-4.0.3"
         ];
       })
-      sources."follow-redirects-1.11.0"
+      sources."follow-redirects-1.12.1"
       sources."font-awesome-filetypes-2.1.0"
       sources."for-each-property-0.0.4"
       sources."for-each-property-deep-0.0.3"
@@ -64574,7 +65695,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"
@@ -64585,7 +65706,7 @@ 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"
@@ -64593,11 +65714,11 @@ in
         dependencies = [
           sources."domelementtype-2.0.1"
           sources."domhandler-3.0.0"
-          sources."domutils-2.0.0"
-          sources."entities-2.0.0"
+          sources."domutils-2.1.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"
@@ -64669,9 +65790,10 @@ in
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
-      sources."joplin-turndown-4.0.27"
+      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.1"
       sources."js-tokens-4.0.0"
       sources."jsbn-0.1.1"
       sources."jsdom-15.2.1"
@@ -64681,20 +65803,21 @@ 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"
-      sources."lazyness-1.1.1"
+      sources."lazyness-1.2.0"
       sources."levenshtein-1.0.5"
       sources."levn-0.3.0"
       sources."linkify-it-2.2.0"
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."lodash-es-4.17.15"
       sources."lodash.padend-4.6.1"
       sources."lodash.repeat-4.1.0"
@@ -64712,37 +65835,39 @@ in
       sources."map-visit-1.0.0"
       (sources."markdown-it-10.0.0" // {
         dependencies = [
-          sources."entities-2.0.0"
+          sources."entities-2.0.3"
         ];
       })
       sources."markdown-it-abbr-1.0.4"
-      sources."markdown-it-anchor-5.2.7"
+      sources."markdown-it-anchor-5.3.0"
       sources."markdown-it-deflist-2.0.3"
       sources."markdown-it-emoji-1.4.0"
       sources."markdown-it-expand-tabs-1.0.13"
       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.1" // {
+      (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"
       sources."micromatch-3.1.10"
-      sources."mime-2.4.5"
+      sources."mime-2.4.6"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."mimic-response-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-3.1.1"
+      sources."minipass-3.1.3"
       sources."minizlib-2.1.0"
       (sources."mixin-deep-1.3.2" // {
         dependencies = [
@@ -64751,13 +65876,9 @@ in
       })
       sources."mkdirp-0.5.5"
       sources."mkdirp-classic-0.5.3"
-      sources."moment-2.25.3"
-      sources."ms-2.1.2"
-      (sources."multiparty-4.2.1" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."moment-2.27.0"
+      sources."ms-2.0.0"
+      sources."multiparty-4.2.2"
       sources."nan-2.14.1"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
@@ -64767,11 +65888,16 @@ in
       sources."napi-build-utils-1.0.2"
       sources."ndarray-1.0.19"
       sources."ndarray-pack-1.2.1"
-      sources."needle-2.4.1"
+      (sources."needle-2.5.0" // {
+        dependencies = [
+          sources."debug-3.2.6"
+          sources."ms-2.1.2"
+        ];
+      })
       sources."nextgen-events-1.3.0"
       sources."nice-try-1.0.5"
       sources."no-case-2.3.2"
-      sources."node-abi-2.16.0"
+      sources."node-abi-2.18.0"
       sources."node-bitmap-0.0.1"
       sources."node-emoji-1.10.0"
       sources."node-fetch-1.7.3"
@@ -64828,12 +65954,11 @@ 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.3"
       sources."prelude-ls-1.1.2"
@@ -64842,10 +65967,11 @@ in
       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."querystring-0.2.0"
       sources."querystringify-2.1.1"
       sources."random-bytes-1.0.0"
       sources."rc-1.2.8"
@@ -64865,12 +65991,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"
         ];
       })
@@ -64879,7 +66007,7 @@ in
       sources."ret-0.1.15"
       sources."retry-0.10.1"
       sources."rimraf-2.7.1"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
@@ -64893,7 +66021,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 = [
@@ -64904,7 +66032,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"
@@ -64915,7 +66043,6 @@ in
       })
       (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" // {
@@ -64930,7 +66057,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"
         ];
       })
@@ -64972,7 +66098,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 = [
@@ -65011,15 +66137,15 @@ in
           sources."yallist-3.1.1"
         ];
       })
-      sources."tar-fs-2.0.1"
-      sources."tar-stream-2.1.2"
+      sources."tar-fs-2.1.0"
+      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.2"
+      sources."terminal-kit-1.42.0"
       (sources."tkwidgets-0.5.26" // {
         dependencies = [
           sources."is-fullwidth-code-point-2.0.0"
@@ -65036,8 +66162,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"
@@ -65067,8 +66201,13 @@ in
         ];
       })
       sources."upper-case-1.1.3"
-      sources."uri-js-4.2.2"
+      (sources."uri-js-4.2.2" // {
+        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"
@@ -65094,10 +66233,14 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.2.5"
+      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"
@@ -65152,7 +66295,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "beautifier.io for node";
-      homepage = "https://beautifier.io/";
+      homepage = https://beautifier.io/;
       license = "MIT";
     };
     production = true;
@@ -65162,10 +66305,10 @@ in
   js-yaml = nodeEnv.buildNodePackage {
     name = "js-yaml";
     packageName = "js-yaml";
-    version = "3.13.1";
+    version = "3.14.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
-      sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==";
+      url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz";
+      sha512 = "/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==";
     };
     dependencies = [
       sources."argparse-1.0.10"
@@ -65175,7 +66318,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "YAML 1.2 parser and serializer";
-      homepage = "https://github.com/nodeca/js-yaml";
+      homepage = https://github.com/nodeca/js-yaml;
       license = "MIT";
     };
     production = true;
@@ -65185,31 +66328,31 @@ 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.9.6"
+      sources."@babel/parser-7.11.1"
       sources."argparse-1.0.10"
       sources."bluebird-3.7.2"
       sources."catharsis-0.8.11"
-      sources."entities-2.0.0"
+      sources."entities-2.0.3"
       sources."escape-string-regexp-2.0.0"
       sources."graceful-fs-4.2.4"
       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.19"
       sources."markdown-it-10.0.0"
-      sources."markdown-it-anchor-5.2.7"
+      sources."markdown-it-anchor-5.3.0"
       sources."marked-0.8.2"
       sources."mdurl-1.0.1"
       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"
@@ -65228,10 +66371,10 @@ in
   jshint = nodeEnv.buildNodePackage {
     name = "jshint";
     packageName = "jshint";
-    version = "2.11.0";
+    version = "2.12.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/jshint/-/jshint-2.11.0.tgz";
-      sha512 = "ooaD/hrBPhu35xXW4gn+o3SOuzht73gdBuffgJzrZBJZPGgGiiTvJEgTyxFvBO2nz0+X1G6etF8SzUODTlLY6Q==";
+      url = "https://registry.npmjs.org/jshint/-/jshint-2.12.0.tgz";
+      sha512 = "TwuuaUDmra0JMkuqvqy+WGo2xGHSNjv1BA1nTIgtH2K5z1jHuAEeAgp7laaR+hLRmajRjcrM71+vByBDanCyYA==";
     };
     dependencies = [
       sources."balanced-match-1.0.0"
@@ -65244,7 +66387,7 @@ in
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
           sources."domelementtype-2.0.1"
-          sources."entities-2.0.0"
+          sources."entities-2.0.3"
         ];
       })
       sources."domelementtype-1.3.1"
@@ -65258,7 +66401,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.19"
       sources."minimatch-3.0.4"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
@@ -65271,8 +66414,8 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Static analysis tool for JavaScript";
-      homepage = "https://jshint.com/";
-      license = "(MIT AND JSON)";
+      homepage = http://jshint.com/;
+      license = "MIT";
     };
     production = true;
     bypassCache = true;
@@ -65314,7 +66457,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "JSON diff";
-      homepage = "https://github.com/andreyvit/json-diff";
+      homepage = https://github.com/andreyvit/json-diff;
     };
     production = true;
     bypassCache = true;
@@ -65345,8 +66488,8 @@ in
       sources."graphlib-2.1.8"
       sources."inherits-2.0.4"
       sources."isarray-1.0.0"
-      sources."js-yaml-3.13.1"
-      sources."lodash-4.17.15"
+      sources."js-yaml-3.14.0"
+      sources."lodash-4.17.19"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
       sources."mime-db-1.44.0"
@@ -65368,8 +66511,8 @@ in
     ];
     buildInputs = globalBuildInputs;
     meta = {
-      description = "Various utilities for JSON References (https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03).";
-      homepage = "https://github.com/whitlockjc/json-refs";
+      description = "Various utilities for JSON References (http://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03).";
+      homepage = https://github.com/whitlockjc/json-refs;
       license = "MIT";
     };
     production = true;
@@ -65389,7 +66532,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.3"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."string-width-3.1.0"
@@ -65402,7 +66545,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."basic-auth-2.0.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."body-parser-1.19.0"
@@ -65465,14 +66608,14 @@ in
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
       sources."express-4.17.1"
-      (sources."express-urlrewrite-1.2.0" // {
+      (sources."express-urlrewrite-1.3.0" // {
         dependencies = [
           sources."path-to-regexp-1.8.0"
         ];
       })
       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."finalhandler-1.1.2"
       sources."find-up-4.1.0"
@@ -65487,7 +66630,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"
@@ -65521,7 +66664,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.19"
       sources."lodash-id-0.14.0"
       sources."lowdb-1.0.0"
       sources."lowercase-keys-1.0.1"
@@ -65575,7 +66718,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 = [
@@ -65644,13 +66787,13 @@ 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;
     meta = {
       description = "Get a full fake REST API with zero coding in less than 30 seconds";
-      homepage = "https://github.com/typicode/json-server";
+      homepage = https://github.com/typicode/json-server;
       license = "MIT";
     };
     production = true;
@@ -65677,7 +66820,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Validate JSON";
-      homepage = "https://zaa.ch/jsonlint/";
+      homepage = http://zaach.github.com/jsonlint/;
     };
     production = true;
     bypassCache = true;
@@ -65686,10 +66829,10 @@ in
   karma = nodeEnv.buildNodePackage {
     name = "karma";
     packageName = "karma";
-    version = "5.0.4";
+    version = "5.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/karma/-/karma-5.0.4.tgz";
-      sha512 = "UGqTe2LBiGQBXRN+Fygeiq63tbfOX45639SKSbPkLpARwnxROWJZg+froGkpHxr84FXCe8UGCf+1PITM6frT5w==";
+      url = "https://registry.npmjs.org/karma/-/karma-5.1.1.tgz";
+      sha512 = "xAlOr5PMqUbiKXSv5PCniHWV3aiwj6wIZ0gUVcwpTCPVQm/qH2WAMFWxtnpM6KJqhkRWrIpovR4Rb0rn8GtJzQ==";
     };
     dependencies = [
       sources."@types/color-name-1.1.1"
@@ -65699,14 +66842,13 @@ in
       sources."ansi-styles-4.2.1"
       sources."anymatch-3.1.1"
       sources."arraybuffer.slice-0.0.7"
-      sources."async-2.6.3"
       sources."async-limiter-1.0.1"
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.0"
       sources."base64-arraybuffer-0.1.5"
-      sources."base64id-1.0.0"
+      sources."base64id-2.0.0"
       sources."better-assert-1.0.2"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."blob-0.0.5"
       sources."body-parser-1.19.0"
       sources."brace-expansion-1.1.11"
@@ -65714,7 +66856,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.1"
       sources."cliui-6.0.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
@@ -65727,7 +66869,7 @@ in
       sources."content-type-1.0.4"
       sources."cookie-0.3.1"
       sources."custom-event-1.0.1"
-      sources."date-format-2.1.0"
+      sources."date-format-3.0.0"
       sources."debug-2.6.9"
       sources."decamelize-1.2.0"
       sources."depd-1.1.2"
@@ -65736,32 +66878,31 @@ in
       sources."ee-first-1.1.1"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
-      (sources."engine.io-3.2.1" // {
+      (sources."engine.io-3.4.2" // {
         dependencies = [
-          sources."debug-3.1.0"
+          sources."debug-4.1.1"
+          sources."ms-2.1.2"
         ];
       })
-      (sources."engine.io-client-3.2.1" // {
+      (sources."engine.io-client-3.4.3" // {
         dependencies = [
-          sources."debug-3.1.0"
+          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.1.3"
+      sources."engine.io-parser-2.2.0"
       sources."ent-2.2.0"
       sources."escape-html-1.0.3"
-      sources."eventemitter3-4.0.0"
+      sources."eventemitter3-4.0.4"
       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.11.0" // {
-        dependencies = [
-          sources."debug-3.2.6"
-          sources."ms-2.1.2"
-        ];
-      })
-      sources."fs-extra-7.0.1"
+      sources."follow-redirects-1.12.1"
+      sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.1.3"
       sources."get-caller-file-2.0.5"
@@ -65771,7 +66912,7 @@ in
       sources."has-binary2-1.0.3"
       sources."has-cors-1.1.0"
       sources."http-errors-1.7.2"
-      sources."http-proxy-1.18.0"
+      sources."http-proxy-1.18.1"
       sources."iconv-lite-0.4.24"
       sources."indexof-0.0.1"
       sources."inflight-1.0.6"
@@ -65785,15 +66926,15 @@ in
       sources."isbinaryfile-4.0.6"
       sources."jsonfile-4.0.0"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
-      (sources."log4js-4.5.1" // {
+      sources."lodash-4.17.19"
+      (sources."log4js-6.3.0" // {
         dependencies = [
-          sources."debug-4.1.1"
+          sources."debug-4.2.0"
           sources."ms-2.1.2"
         ];
       })
       sources."media-typer-0.3.0"
-      sources."mime-2.4.5"
+      sources."mime-2.4.6"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."minimatch-3.0.4"
@@ -65803,7 +66944,6 @@ in
       sources."object-component-0.0.3"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
-      sources."os-tmpdir-1.0.2"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
@@ -65822,44 +66962,52 @@ in
       sources."require-main-filename-2.0.0"
       sources."requires-port-1.0.0"
       sources."rfdc-1.1.4"
-      sources."rimraf-2.7.1"
-      sources."safe-buffer-5.1.2"
+      sources."rimraf-3.0.2"
       sources."safer-buffer-2.1.2"
       sources."set-blocking-2.0.0"
       sources."setprototypeof-1.1.1"
-      (sources."socket.io-2.1.1" // {
+      (sources."socket.io-2.3.0" // {
         dependencies = [
-          sources."debug-3.1.0"
+          sources."debug-4.1.1"
+          sources."ms-2.1.2"
         ];
       })
       sources."socket.io-adapter-1.1.2"
-      (sources."socket.io-client-2.1.1" // {
+      (sources."socket.io-client-2.3.0" // {
         dependencies = [
-          sources."debug-3.1.0"
+          sources."debug-4.1.1"
+          sources."ms-2.1.2"
+          (sources."socket.io-parser-3.3.0" // {
+            dependencies = [
+              sources."debug-3.1.0"
+              sources."ms-2.0.0"
+            ];
+          })
         ];
       })
-      (sources."socket.io-parser-3.2.0" // {
+      (sources."socket.io-parser-3.4.1" // {
         dependencies = [
-          sources."debug-3.1.0"
+          sources."debug-4.1.1"
+          sources."ms-2.1.2"
         ];
       })
       sources."source-map-0.6.1"
       sources."statuses-1.5.0"
-      (sources."streamroller-1.0.6" // {
+      (sources."streamroller-2.2.4" // {
         dependencies = [
-          sources."debug-3.2.6"
+          sources."date-format-2.1.0"
+          sources."debug-4.2.0"
           sources."ms-2.1.2"
         ];
       })
       sources."string-width-4.2.0"
       sources."strip-ansi-6.0.0"
-      sources."tmp-0.0.33"
+      sources."tmp-0.2.1"
       sources."to-array-0.1.4"
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
       sources."type-is-1.6.18"
       sources."ua-parser-js-0.7.21"
-      sources."ultron-1.1.1"
       sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
       sources."utils-merge-1.0.1"
@@ -65867,17 +67015,17 @@ in
       sources."which-module-2.0.0"
       sources."wrap-ansi-6.2.0"
       sources."wrappy-1.0.2"
-      sources."ws-3.3.3"
+      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"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "Spectacular Test Runner for JavaScript.";
-      homepage = "https://karma-runner.github.io/";
+      homepage = http://karma-runner.github.io/;
       license = "MIT";
     };
     production = true;
@@ -65971,7 +67119,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Merges multiple lcov results into one";
-      homepage = "https://github.com/mweibel/lcov-result-merger";
+      homepage = https://github.com/mweibel/lcov-result-merger;
       license = "MIT";
     };
     production = true;
@@ -65990,7 +67138,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.3"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-3.2.1"
       sources."asn1-0.2.4"
@@ -65998,7 +67146,7 @@ in
       sources."async-1.5.2"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."boolbase-1.0.0"
@@ -66038,7 +67186,7 @@ in
       sources."end-of-stream-1.4.4"
       sources."entities-1.1.2"
       sources."escape-string-regexp-1.0.5"
-      sources."escodegen-1.14.1"
+      sources."escodegen-1.14.3"
       sources."esprima-4.0.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
@@ -66046,7 +67194,7 @@ in
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
       sources."eyes-0.1.8"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."find-up-3.0.0"
@@ -66058,7 +67206,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" // {
@@ -66087,7 +67235,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.19"
       sources."log-symbols-2.2.0"
       sources."map-age-cleaner-0.1.3"
       (sources."mem-4.3.0" // {
@@ -66101,7 +67249,7 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-0.0.8"
       sources."mkdirp-0.5.1"
-      sources."moment-2.25.3"
+      sources."moment-2.27.0"
       sources."mute-stream-0.0.8"
       (sources."nconf-0.10.0" // {
         dependencies = [
@@ -66156,7 +67304,7 @@ in
       sources."restore-cursor-2.0.0"
       sources."revalidator-0.1.8"
       sources."rimraf-2.7.1"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
       sources."secure-keys-1.0.0"
@@ -66238,12 +67386,15 @@ in
   lerna = nodeEnv.buildNodePackage {
     name = "lerna";
     packageName = "lerna";
-    version = "3.20.2";
+    version = "3.22.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/lerna/-/lerna-3.20.2.tgz";
-      sha512 = "bjdL7hPLpU3Y8CBnw/1ys3ynQMUjiK6l9iDWnEGwFtDy48Xh5JboR9ZJwmKGCz9A/sarVVIGwf1tlRNKUG9etA==";
+      url = "https://registry.npmjs.org/lerna/-/lerna-3.22.1.tgz";
+      sha512 = "vk1lfVRFm+UuEFA7wkLKeSF7Iz13W+N/vFd48aW2yuS7Kv0RbNm2/qcDPV863056LMfkRlsEe+QYOw3palj5Lg==";
     };
     dependencies = [
+      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"
@@ -66261,43 +67412,43 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."@lerna/add-3.20.0"
-      sources."@lerna/bootstrap-3.20.0"
-      sources."@lerna/changed-3.20.0"
+      sources."@lerna/add-3.21.0"
+      sources."@lerna/bootstrap-3.21.0"
+      sources."@lerna/changed-3.21.0"
       sources."@lerna/check-working-tree-3.16.5"
       sources."@lerna/child-process-3.16.5"
-      sources."@lerna/clean-3.20.0"
+      sources."@lerna/clean-3.21.0"
       sources."@lerna/cli-3.18.5"
       sources."@lerna/collect-uncommitted-3.16.5"
       sources."@lerna/collect-updates-3.20.0"
-      sources."@lerna/command-3.18.5"
-      (sources."@lerna/conventional-commits-3.18.5" // {
+      sources."@lerna/command-3.21.0"
+      (sources."@lerna/conventional-commits-3.22.0" // {
         dependencies = [
           sources."pify-4.0.1"
         ];
       })
-      (sources."@lerna/create-3.18.5" // {
+      (sources."@lerna/create-3.22.0" // {
         dependencies = [
           sources."pify-4.0.1"
         ];
       })
       sources."@lerna/create-symlink-3.16.2"
       sources."@lerna/describe-ref-3.16.5"
-      sources."@lerna/diff-3.18.5"
-      sources."@lerna/exec-3.20.0"
+      sources."@lerna/diff-3.21.0"
+      sources."@lerna/exec-3.21.0"
       sources."@lerna/filter-options-3.20.0"
       sources."@lerna/filter-packages-3.18.0"
       sources."@lerna/get-npm-exec-opts-3.13.0"
       sources."@lerna/get-packed-3.16.0"
-      sources."@lerna/github-client-3.16.5"
+      sources."@lerna/github-client-3.22.0"
       sources."@lerna/gitlab-client-3.15.0"
       sources."@lerna/global-options-3.13.0"
       sources."@lerna/has-npm-version-3.16.5"
-      sources."@lerna/import-3.18.5"
-      sources."@lerna/info-3.20.0"
-      sources."@lerna/init-3.18.5"
-      sources."@lerna/link-3.18.5"
-      sources."@lerna/list-3.20.0"
+      sources."@lerna/import-3.22.0"
+      sources."@lerna/info-3.21.0"
+      sources."@lerna/init-3.21.0"
+      sources."@lerna/link-3.21.0"
+      sources."@lerna/list-3.21.0"
       sources."@lerna/listable-3.18.5"
       sources."@lerna/log-packed-3.16.0"
       (sources."@lerna/npm-conf-3.16.0" // {
@@ -66320,57 +67471,68 @@ in
       sources."@lerna/package-graph-3.18.5"
       sources."@lerna/prerelease-id-from-version-3.16.0"
       sources."@lerna/profiler-3.20.0"
-      sources."@lerna/project-3.18.0"
+      sources."@lerna/project-3.21.0"
       sources."@lerna/prompt-3.18.5"
-      sources."@lerna/publish-3.20.2"
+      sources."@lerna/publish-3.22.1"
       sources."@lerna/pulse-till-done-3.13.0"
       sources."@lerna/query-graph-3.18.5"
       sources."@lerna/resolve-symlink-3.16.0"
       sources."@lerna/rimraf-dir-3.16.5"
-      sources."@lerna/run-3.20.0"
+      sources."@lerna/run-3.21.0"
       sources."@lerna/run-lifecycle-3.16.2"
       sources."@lerna/run-topologically-3.18.5"
       sources."@lerna/symlink-binary-3.17.0"
       sources."@lerna/symlink-dependencies-3.17.0"
       sources."@lerna/timer-3.13.0"
       sources."@lerna/validation-error-3.13.0"
-      sources."@lerna/version-3.20.2"
+      sources."@lerna/version-3.22.1"
       sources."@lerna/write-log-file-3.13.0"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
-      sources."@octokit/auth-token-2.4.0"
-      (sources."@octokit/endpoint-6.0.1" // {
+      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-enterprise-rest-6.0.1"
+      (sources."@octokit/plugin-paginate-rest-1.1.2" // {
         dependencies = [
-          sources."is-plain-object-3.0.0"
-          sources."isobject-4.0.0"
-          sources."universal-user-agent-5.0.0"
+          sources."@octokit/types-2.16.2"
         ];
       })
-      sources."@octokit/plugin-enterprise-rest-3.6.2"
-      sources."@octokit/plugin-paginate-rest-1.1.2"
       sources."@octokit/plugin-request-log-1.0.0"
-      sources."@octokit/plugin-rest-endpoint-methods-2.4.0"
-      (sources."@octokit/request-5.4.2" // {
+      (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/request-error-2.0.0"
-          sources."is-plain-object-3.0.0"
-          sources."isobject-4.0.0"
-          sources."universal-user-agent-5.0.0"
+          sources."@octokit/types-2.16.2"
         ];
       })
-      sources."@octokit/request-error-1.2.1"
-      sources."@octokit/rest-16.43.1"
-      sources."@octokit/types-2.12.2"
-      sources."@types/events-3.0.0"
-      sources."@types/glob-7.1.1"
+      sources."@octokit/rest-16.43.2"
+      sources."@octokit/types-5.2.1"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.13.4"
+      sources."@types/minimist-1.2.0"
+      sources."@types/node-14.0.27"
+      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.3"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-3.2.1"
@@ -66396,7 +67558,7 @@ in
       sources."atob-2.1.2"
       sources."atob-lite-2.0.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -66424,11 +67586,7 @@ in
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."camelcase-5.3.1"
-      (sources."camelcase-keys-4.2.0" // {
-        dependencies = [
-          sources."camelcase-4.1.0"
-        ];
-      })
+      sources."camelcase-keys-6.2.2"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chardet-0.7.0"
@@ -66468,10 +67626,10 @@ in
       sources."color-name-1.1.3"
       sources."columnify-1.5.4"
       sources."combined-stream-1.0.8"
-      sources."commander-2.20.3"
-      (sources."compare-func-1.3.2" // {
+      (sources."compare-func-2.0.0" // {
         dependencies = [
-          sources."dot-prop-3.0.0"
+          sources."dot-prop-5.2.0"
+          sources."is-obj-2.0.0"
         ];
       })
       sources."component-emitter-1.3.0"
@@ -66479,29 +67637,38 @@ in
       sources."concat-stream-1.6.2"
       sources."config-chain-1.1.12"
       sources."console-control-strings-1.1.0"
-      sources."conventional-changelog-angular-5.0.6"
+      sources."conventional-changelog-angular-5.0.11"
       (sources."conventional-changelog-core-3.2.3" // {
         dependencies = [
-          sources."through2-3.0.1"
+          sources."through2-3.0.2"
         ];
       })
-      sources."conventional-changelog-preset-loader-2.3.0"
-      (sources."conventional-changelog-writer-4.0.11" // {
+      sources."conventional-changelog-preset-loader-2.3.4"
+      (sources."conventional-changelog-writer-4.0.17" // {
         dependencies = [
-          sources."through2-3.0.1"
+          sources."through2-3.0.2"
         ];
       })
-      sources."conventional-commits-filter-2.0.2"
-      (sources."conventional-commits-parser-3.0.8" // {
+      sources."conventional-commits-filter-2.0.6"
+      (sources."conventional-commits-parser-3.1.0" // {
         dependencies = [
-          sources."through2-3.0.1"
+          sources."through2-3.0.2"
         ];
       })
       (sources."conventional-recommended-bump-5.0.1" // {
         dependencies = [
+          sources."camelcase-4.1.0"
+          sources."camelcase-keys-4.2.0"
           sources."concat-stream-2.0.0"
+          sources."indent-string-3.2.0"
+          sources."map-obj-2.0.0"
           sources."meow-4.0.1"
+          sources."minimist-options-3.0.2"
+          sources."quick-lru-1.1.0"
           sources."readable-stream-3.6.0"
+          sources."redent-2.0.0"
+          sources."strip-indent-2.0.0"
+          sources."trim-newlines-2.0.0"
         ];
       })
       sources."copy-concurrently-1.0.5"
@@ -66546,13 +67713,13 @@ in
       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.2"
       sources."err-code-1.1.2"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
@@ -66586,7 +67753,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"
@@ -66594,7 +67765,7 @@ in
         ];
       })
       sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       (sources."fast-glob-2.2.7" // {
         dependencies = [
           (sources."glob-parent-3.1.0" // {
@@ -66660,7 +67831,16 @@ in
       sources."getpass-0.1.7"
       (sources."git-raw-commits-2.0.0" // {
         dependencies = [
+          sources."camelcase-4.1.0"
+          sources."camelcase-keys-4.2.0"
+          sources."indent-string-3.2.0"
+          sources."map-obj-2.0.0"
           sources."meow-4.0.1"
+          sources."minimist-options-3.0.2"
+          sources."quick-lru-1.1.0"
+          sources."redent-2.0.0"
+          sources."strip-indent-2.0.0"
+          sources."trim-newlines-2.0.0"
         ];
       })
       (sources."git-remote-origin-url-2.0.0" // {
@@ -66670,7 +67850,16 @@ in
       })
       (sources."git-semver-tags-2.0.3" // {
         dependencies = [
+          sources."camelcase-4.1.0"
+          sources."camelcase-keys-4.2.0"
+          sources."indent-string-3.2.0"
+          sources."map-obj-2.0.0"
           sources."meow-4.0.1"
+          sources."minimist-options-3.0.2"
+          sources."quick-lru-1.1.0"
+          sources."redent-2.0.0"
+          sources."strip-indent-2.0.0"
+          sources."trim-newlines-2.0.0"
         ];
       })
       sources."git-up-4.0.1"
@@ -66691,7 +67880,8 @@ 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"
       sources."has-symbols-1.0.1"
@@ -66708,7 +67898,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"
@@ -66719,7 +67909,7 @@ in
       })
       sources."import-local-2.0.0"
       sources."imurmurhash-0.1.4"
-      sources."indent-string-3.2.0"
+      sources."indent-string-4.0.0"
       sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -66739,7 +67929,7 @@ in
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.1.5"
+      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"
@@ -66758,7 +67948,7 @@ 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.0.5"
+      sources."is-regex-1.1.1"
       sources."is-ssh-1.3.1"
       sources."is-stream-1.1.0"
       sources."is-symbol-1.0.3"
@@ -66770,7 +67960,8 @@ in
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
-      sources."js-yaml-3.13.1"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-0.2.3"
@@ -66780,13 +67971,14 @@ in
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
       sources."kind-of-6.0.3"
+      sources."lines-and-columns-1.1.6"
       (sources."load-json-file-5.3.0" // {
         dependencies = [
           sources."pify-4.0.1"
         ];
       })
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."lodash._reinterpolate-3.0.0"
       sources."lodash.clonedeep-4.5.0"
       sources."lodash.get-4.4.2"
@@ -66798,26 +67990,48 @@ 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-2.0.0"
+      sources."map-obj-4.1.0"
       sources."map-visit-1.0.0"
-      (sources."meow-5.0.0" // {
+      (sources."meow-7.0.1" // {
         dependencies = [
-          sources."camelcase-4.1.0"
-          sources."yargs-parser-10.1.0"
+          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.1"
+          sources."path-exists-4.0.0"
+          (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."type-fest-0.13.1"
+          (sources."yargs-parser-18.1.3" // {
+            dependencies = [
+              sources."camelcase-5.3.1"
+            ];
+          })
         ];
       })
-      sources."merge2-1.3.0"
+      sources."merge2-1.4.1"
       sources."micromatch-3.1.10"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."mimic-fn-1.2.0"
+      sources."min-indent-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minimist-options-3.0.2"
+      sources."minimist-options-4.1.0"
       sources."minipass-2.9.0"
       sources."minizlib-1.3.3"
       sources."mississippi-3.0.0"
@@ -66835,11 +68049,11 @@ 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"
-      (sources."node-gyp-5.1.0" // {
+      (sources."node-gyp-5.1.1" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
@@ -66883,7 +68097,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.0"
@@ -66941,7 +68155,7 @@ in
       sources."punycode-2.1.1"
       sources."q-1.5.1"
       sources."qs-6.5.2"
-      sources."quick-lru-1.1.0"
+      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"
@@ -66966,7 +68180,7 @@ in
         ];
       })
       sources."readdir-scoped-modules-1.1.0"
-      sources."redent-2.0.0"
+      sources."redent-3.0.0"
       sources."regex-not-1.0.2"
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
@@ -66988,8 +68202,8 @@ in
       sources."rimraf-2.7.1"
       sources."run-async-2.4.1"
       sources."run-queue-1.0.3"
-      sources."rxjs-6.5.5"
-      sources."safe-buffer-5.2.0"
+      sources."rxjs-6.6.2"
+      sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."semver-6.3.0"
@@ -67046,9 +68260,9 @@ in
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."split-1.0.1"
       sources."split-string-3.1.0"
@@ -67082,8 +68296,6 @@ in
         ];
       })
       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.1.1" // {
         dependencies = [
@@ -67093,14 +68305,14 @@ in
       sources."strip-ansi-3.0.1"
       sources."strip-bom-3.0.0"
       sources."strip-eof-1.0.0"
-      sources."strip-indent-2.0.0"
+      sources."strip-indent-3.0.0"
       sources."strong-log-transformer-2.1.0"
       sources."supports-color-5.5.0"
       sources."tar-4.4.13"
       sources."temp-dir-1.0.0"
       sources."temp-write-3.4.0"
       sources."text-extensions-1.9.0"
-      sources."thenify-3.3.0"
+      sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."through-2.3.8"
       sources."through2-2.0.5"
@@ -67114,14 +68326,14 @@ in
       sources."to-regex-range-2.1.1"
       sources."tough-cookie-2.5.0"
       sources."tr46-1.0.1"
-      sources."trim-newlines-2.0.0"
+      sources."trim-newlines-3.0.0"
       sources."trim-off-newlines-1.0.1"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-fest-0.3.1"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.9.2"
+      sources."uglify-js-3.10.1"
       sources."uid-number-0.0.6"
       sources."umask-1.1.0"
       sources."union-value-1.0.1"
@@ -67155,7 +68367,7 @@ in
       sources."which-1.3.1"
       sources."which-module-2.0.0"
       sources."wide-align-1.1.3"
-      sources."windows-release-3.3.0"
+      sources."windows-release-3.3.1"
       sources."wordwrap-1.0.0"
       (sources."wrap-ansi-5.1.0" // {
         dependencies = [
@@ -67203,76 +68415,28 @@ in
   less = nodeEnv.buildNodePackage {
     name = "less";
     packageName = "less";
-    version = "3.11.1";
+    version = "3.12.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/less/-/less-3.11.1.tgz";
-      sha512 = "tlWX341RECuTOvoDIvtFqXsKj072hm3+9ymRBe76/mD6O5ZZecnlAOVDlWAleF2+aohFrxNidXhv2773f6kY7g==";
+      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.9.1"
-      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.1"
-      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."minimist-1.2.5"
-      sources."mkdirp-0.5.5"
-      sources."oauth-sign-0.9.0"
-      sources."performance-now-2.1.0"
-      sources."promise-7.3.1"
+      sources."native-request-1.0.7"
+      sources."pify-4.0.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.0"
-      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.11.1"
-      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"
+      sources."tslib-1.13.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "Leaner CSS";
-      homepage = "http://lesscss.org/"; # https is broken
+      homepage = http://lesscss.org/;
       license = "Apache-2.0";
     };
     production = true;
@@ -67297,7 +68461,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "clean-css plugin for less.js";
-      homepage = "http://lesscss.org/"; # https is broken
+      homepage = http://lesscss.org/;
     };
     production = true;
     bypassCache = true;
@@ -67420,7 +68584,7 @@ in
       sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
       sources."from-0.1.7"
-      sources."fsevents-1.2.12"
+      sources."fsevents-1.2.13"
       sources."get-value-2.0.6"
       (sources."glob-parent-3.1.0" // {
         dependencies = [
@@ -67440,7 +68604,7 @@ in
           sources."depd-1.1.2"
         ];
       })
-      sources."http-parser-js-0.4.10"
+      sources."http-parser-js-0.5.2"
       sources."inherits-2.0.4"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-binary-path-1.0.1"
@@ -67621,8 +68785,8 @@ in
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
       sources."vary-1.1.2"
-      sources."websocket-driver-0.7.3"
-      sources."websocket-extensions-0.1.3"
+      sources."websocket-driver-0.7.4"
+      sources."websocket-extensions-0.1.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -67645,7 +68809,7 @@ in
     dependencies = [
       sources."accepts-1.3.7"
       sources."after-0.8.2"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."anymatch-1.3.2"
       sources."argparse-1.0.10"
       sources."arr-diff-2.0.0"
@@ -67662,7 +68826,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."backo2-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -67732,16 +68896,15 @@ in
       sources."ee-first-1.1.1"
       sources."emoji-regex-6.1.1"
       sources."encodeurl-1.0.2"
-      (sources."engine.io-3.4.1" // {
+      (sources."engine.io-3.4.2" // {
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
           sources."ms-2.1.2"
         ];
       })
-      (sources."engine.io-client-3.4.1" // {
+      (sources."engine.io-client-3.4.3" // {
         dependencies = [
-          sources."component-emitter-1.2.1"
           sources."debug-4.1.1"
           sources."ms-2.1.2"
           sources."ws-6.1.4"
@@ -67762,7 +68925,7 @@ in
       })
       sources."extglob-0.3.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."file-uri-to-path-1.0.0"
       sources."filename-regex-2.0.1"
@@ -67775,7 +68938,7 @@ in
       sources."forwarded-0.1.2"
       sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
-      sources."fsevents-1.2.12"
+      sources."fsevents-1.2.13"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
       sources."github-slugger-1.3.0"
@@ -67783,7 +68946,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"
@@ -68063,7 +69226,7 @@ in
           })
         ];
       })
-      (sources."socket.io-parser-3.4.0" // {
+      (sources."socket.io-parser-3.4.1" // {
         dependencies = [
           sources."component-emitter-1.2.1"
           sources."debug-4.1.1"
@@ -68131,14 +69294,14 @@ in
       sources."uuid-3.4.0"
       sources."vary-1.1.2"
       sources."verror-1.10.0"
-      sources."ws-7.2.5"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."yeast-0.1.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "Live Markdown previews for your favourite editor.";
-      homepage = "https://github.com/shime/livedown";
+      homepage = https://github.com/shime/livedown;
       license = "MIT";
     };
     production = true;
@@ -68151,113 +69314,111 @@ in
     version = "1.10.1";
     src = ../interpreters/clojurescript/lumo;
     dependencies = [
-      sources."@babel/code-frame-7.8.3"
-      sources."@babel/compat-data-7.9.6"
-      sources."@babel/core-7.9.6"
-      sources."@babel/generator-7.9.6"
-      sources."@babel/helper-annotate-as-pure-7.8.3"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.8.3"
-      sources."@babel/helper-compilation-targets-7.9.6"
-      sources."@babel/helper-create-class-features-plugin-7.9.6"
-      sources."@babel/helper-create-regexp-features-plugin-7.8.8"
-      sources."@babel/helper-define-map-7.8.3"
-      sources."@babel/helper-explode-assignable-expression-7.8.3"
-      sources."@babel/helper-function-name-7.9.5"
-      sources."@babel/helper-get-function-arity-7.8.3"
-      sources."@babel/helper-hoist-variables-7.8.3"
-      sources."@babel/helper-member-expression-to-functions-7.8.3"
-      sources."@babel/helper-module-imports-7.8.3"
-      sources."@babel/helper-module-transforms-7.9.0"
-      sources."@babel/helper-optimise-call-expression-7.8.3"
-      sources."@babel/helper-plugin-utils-7.8.3"
-      sources."@babel/helper-regex-7.8.3"
-      sources."@babel/helper-remap-async-to-generator-7.8.3"
-      sources."@babel/helper-replace-supers-7.9.6"
-      sources."@babel/helper-simple-access-7.8.3"
-      sources."@babel/helper-split-export-declaration-7.8.3"
-      sources."@babel/helper-validator-identifier-7.9.5"
-      sources."@babel/helper-wrap-function-7.8.3"
-      sources."@babel/helpers-7.9.6"
-      (sources."@babel/highlight-7.9.0" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/compat-data-7.11.0"
+      sources."@babel/core-7.11.1"
+      sources."@babel/generator-7.11.0"
+      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.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.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.10.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.9.6"
+      sources."@babel/parser-7.11.1"
       sources."@babel/plugin-external-helpers-7.8.3"
-      sources."@babel/plugin-proposal-async-generator-functions-7.8.3"
-      sources."@babel/plugin-proposal-class-properties-7.8.3"
-      sources."@babel/plugin-proposal-dynamic-import-7.8.3"
-      sources."@babel/plugin-proposal-json-strings-7.8.3"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.8.3"
-      sources."@babel/plugin-proposal-numeric-separator-7.8.3"
-      sources."@babel/plugin-proposal-object-rest-spread-7.9.6"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.8.3"
-      sources."@babel/plugin-proposal-optional-chaining-7.9.0"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.8.8"
+      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.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.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.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.8.3"
-      sources."@babel/plugin-transform-arrow-functions-7.8.3"
-      sources."@babel/plugin-transform-async-to-generator-7.8.3"
-      sources."@babel/plugin-transform-block-scoped-functions-7.8.3"
-      sources."@babel/plugin-transform-block-scoping-7.8.3"
-      sources."@babel/plugin-transform-classes-7.9.5"
-      sources."@babel/plugin-transform-computed-properties-7.8.3"
-      sources."@babel/plugin-transform-destructuring-7.9.5"
-      sources."@babel/plugin-transform-dotall-regex-7.8.3"
-      sources."@babel/plugin-transform-duplicate-keys-7.8.3"
-      sources."@babel/plugin-transform-exponentiation-operator-7.8.3"
-      sources."@babel/plugin-transform-for-of-7.9.0"
-      sources."@babel/plugin-transform-function-name-7.8.3"
-      sources."@babel/plugin-transform-literals-7.8.3"
-      sources."@babel/plugin-transform-member-expression-literals-7.8.3"
-      sources."@babel/plugin-transform-modules-amd-7.9.6"
-      sources."@babel/plugin-transform-modules-commonjs-7.9.6"
-      sources."@babel/plugin-transform-modules-systemjs-7.9.6"
-      sources."@babel/plugin-transform-modules-umd-7.9.0"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.8.3"
-      sources."@babel/plugin-transform-new-target-7.8.3"
-      sources."@babel/plugin-transform-object-super-7.8.3"
-      sources."@babel/plugin-transform-parameters-7.9.5"
-      sources."@babel/plugin-transform-property-literals-7.8.3"
-      sources."@babel/plugin-transform-regenerator-7.8.7"
-      sources."@babel/plugin-transform-reserved-words-7.8.3"
-      sources."@babel/plugin-transform-runtime-7.9.6"
-      sources."@babel/plugin-transform-shorthand-properties-7.8.3"
-      sources."@babel/plugin-transform-spread-7.8.3"
-      sources."@babel/plugin-transform-sticky-regex-7.8.3"
-      sources."@babel/plugin-transform-template-literals-7.8.3"
-      sources."@babel/plugin-transform-typeof-symbol-7.8.4"
-      sources."@babel/plugin-transform-unicode-regex-7.8.3"
-      sources."@babel/preset-env-7.9.6"
+      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.0"
+      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.0"
       sources."@babel/preset-modules-0.1.3"
       sources."@babel/preset-stage-2-7.8.3"
-      sources."@babel/runtime-7.9.6"
-      sources."@babel/template-7.8.6"
-      sources."@babel/traverse-7.9.6"
-      sources."@babel/types-7.9.6"
+      sources."@babel/runtime-7.11.1"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.0"
+      sources."@babel/types-7.11.0"
       sources."@cnakazawa/watch-1.0.4"
       sources."@comandeer/babel-plugin-banner-5.0.0"
-      (sources."@istanbuljs/load-nyc-config-1.0.0" // {
-        dependencies = [
-          sources."find-up-4.1.0"
-          sources."locate-path-5.0.0"
-          sources."p-limit-2.3.0"
-          sources."p-locate-4.1.0"
-          sources."p-try-2.2.0"
-          sources."path-exists-4.0.0"
-        ];
-      })
+      sources."@istanbuljs/load-nyc-config-1.1.0"
       sources."@istanbuljs/schema-0.1.2"
       (sources."@jest/transform-25.5.1" // {
         dependencies = [
@@ -68265,20 +69426,21 @@ in
         ];
       })
       sources."@jest/types-25.5.0"
-      sources."@types/babel__core-7.1.7"
+      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.11"
+      sources."@types/babel__traverse-7.0.13"
       sources."@types/color-name-1.1.1"
-      sources."@types/estree-0.0.44"
+      sources."@types/estree-0.0.45"
       sources."@types/graceful-fs-4.1.3"
-      sources."@types/istanbul-lib-coverage-2.0.1"
+      sources."@types/istanbul-lib-coverage-2.0.3"
       sources."@types/istanbul-lib-report-3.0.0"
-      sources."@types/istanbul-reports-1.1.1"
-      sources."@types/node-13.13.4"
+      sources."@types/istanbul-reports-1.1.2"
+      sources."@types/json-schema-7.0.5"
+      sources."@types/node-14.0.27"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/resolve-0.0.8"
-      sources."@types/yargs-15.0.4"
+      sources."@types/yargs-15.0.5"
       sources."@types/yargs-parser-15.0.0"
       sources."@webassemblyjs/ast-1.9.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
@@ -68302,12 +69464,12 @@ in
       sources."@xtuc/long-4.2.2"
       sources."JSONStream-1.3.5"
       sources."ace.improved-0.2.1"
-      sources."acorn-7.1.1"
+      sources."acorn-7.4.0"
       sources."acorn-node-1.8.2"
-      sources."acorn-walk-7.1.1"
-      sources."ajv-6.12.2"
+      sources."acorn-walk-7.2.0"
+      sources."ajv-6.12.3"
       sources."ajv-errors-1.0.1"
-      sources."ajv-keywords-3.4.1"
+      sources."ajv-keywords-3.5.2"
       sources."amdefine-1.0.1"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
@@ -68319,7 +69481,11 @@ 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-4.10.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       (sources."assert-1.5.0" // {
         dependencies = [
           sources."inherits-2.0.1"
@@ -68334,7 +69500,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."babel-core-7.0.0-bridge.0"
       sources."babel-eslint-10.0.3"
       sources."babel-helper-evaluate-path-0.5.0"
@@ -68377,7 +69543,7 @@ in
       sources."babel-plugin-transform-remove-undefined-0.5.0"
       sources."babel-plugin-transform-simplify-comparison-operators-6.9.4"
       sources."babel-plugin-transform-undefined-to-void-6.9.4"
-      sources."babel-preset-current-node-syntax-0.1.2"
+      sources."babel-preset-current-node-syntax-0.1.3"
       sources."babel-preset-jest-25.5.0"
       sources."babel-preset-minify-0.5.1"
       (sources."babel-runtime-6.26.0" // {
@@ -68394,7 +69560,7 @@ 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."binary-extensions-2.1.0"
       sources."bindings-1.5.0"
       (sources."bl-4.0.2" // {
         dependencies = [
@@ -68403,7 +69569,7 @@ in
         ];
       })
       sources."bluebird-3.7.2"
-      sources."bn.js-4.11.8"
+      sources."bn.js-5.1.2"
       sources."brace-expansion-1.1.11"
       (sources."braces-2.3.2" // {
         dependencies = [
@@ -68412,12 +69578,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"
         ];
@@ -68425,10 +69587,19 @@ in
       sources."browserify-aes-1.2.0"
       sources."browserify-cipher-1.0.1"
       sources."browserify-des-1.0.2"
-      sources."browserify-rsa-4.0.1"
-      sources."browserify-sign-4.0.4"
+      (sources."browserify-rsa-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (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.0"
+      sources."browserslist-4.13.0"
       sources."bser-2.1.1"
       sources."buffer-5.2.1"
       sources."buffer-from-1.1.1"
@@ -68443,7 +69614,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.30001050"
+      sources."caniuse-lite-1.0.30001111"
       sources."capture-exit-2.0.0"
       sources."caseless-0.12.0"
       (sources."chalk-3.0.0" // {
@@ -68455,15 +69626,12 @@ in
           sources."supports-color-7.1.0"
         ];
       })
-      (sources."chokidar-2.1.8" // {
+      (sources."chokidar-3.4.1" // {
         dependencies = [
-          (sources."anymatch-2.0.0" // {
-            dependencies = [
-              sources."normalize-path-2.1.1"
-            ];
-          })
-          sources."fsevents-1.2.12"
-          sources."micromatch-3.1.10"
+          sources."braces-3.0.2"
+          sources."fill-range-7.0.1"
+          sources."is-number-7.0.0"
+          sources."to-regex-range-5.0.1"
         ];
       })
       sources."chownr-1.1.4"
@@ -68523,12 +69691,16 @@ 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"
+        ];
+      })
       sources."create-hash-1.2.0"
       sources."create-hmac-1.1.7"
       (sources."cross-env-7.0.0" // {
         dependencies = [
-          sources."cross-spawn-7.0.2"
+          sources."cross-spawn-7.0.3"
           sources."path-key-3.1.1"
           sources."shebang-command-2.0.0"
           sources."shebang-regex-3.0.0"
@@ -68544,7 +69716,7 @@ in
       sources."dash-ast-1.0.0"
       sources."dashdash-1.14.1"
       sources."death-1.1.0"
-      sources."debug-4.1.1"
+      sources."debug-4.2.0"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       sources."define-properties-1.1.3"
@@ -68555,26 +69727,35 @@ in
       sources."des.js-1.0.1"
       sources."detect-file-1.0.0"
       sources."detective-5.2.0"
-      sources."diffie-hellman-5.0.3"
+      (sources."diffie-hellman-5.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."domain-browser-1.2.0"
       sources."duplexer2-0.1.4"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.3.427"
-      sources."elliptic-6.5.2"
+      sources."electron-to-chromium-1.3.520"
+      (sources."elliptic-6.5.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."emoji-regex-7.0.3"
       sources."emojis-list-3.0.0"
       sources."end-of-stream-1.4.4"
-      (sources."enhanced-resolve-4.1.1" // {
+      (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.2"
       sources."escape-string-regexp-1.0.5"
       sources."eslint-scope-4.0.3"
-      sources."eslint-visitor-keys-1.1.0"
+      sources."eslint-visitor-keys-1.3.0"
       sources."esprima-4.0.1"
       sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
@@ -68618,7 +69799,7 @@ in
         ];
       })
       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."fb-watchman-2.0.1"
@@ -68634,7 +69815,7 @@ in
           sources."make-dir-2.1.0"
         ];
       })
-      sources."find-up-2.1.0"
+      sources."find-up-4.1.0"
       (sources."findup-sync-3.0.0" // {
         dependencies = [
           sources."micromatch-3.1.10"
@@ -68655,15 +69836,12 @@ in
       sources."gensync-1.0.0-beta.1"
       sources."get-assigned-identifiers-1.2.0"
       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-3.1.0" // {
-        dependencies = [
-          sources."is-glob-3.1.0"
-        ];
-      })
+      sources."glob-parent-5.1.1"
       (sources."global-modules-2.0.0" // {
         dependencies = [
           sources."global-prefix-3.0.0"
@@ -68685,7 +69863,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"
@@ -68698,7 +69876,7 @@ in
       (sources."hash-base-3.1.0" // {
         dependencies = [
           sources."readable-stream-3.6.0"
-          sources."safe-buffer-5.2.0"
+          sources."safe-buffer-5.2.1"
         ];
       })
       sources."hash.js-1.1.7"
@@ -68718,12 +69896,11 @@ in
       sources."ini-1.3.5"
       sources."inline-source-map-0.6.2"
       sources."insert-module-globals-7.2.0"
-      sources."interpret-1.2.0"
+      sources."interpret-1.4.0"
       sources."invariant-2.2.4"
-      sources."invert-kv-2.0.0"
       sources."is-accessor-descriptor-1.0.0"
       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-ci-2.0.0"
       sources."is-data-descriptor-1.0.0"
@@ -68741,11 +69918,7 @@ in
         ];
       })
       sources."is-plain-object-2.0.4"
-      (sources."is-reference-1.1.4" // {
-        dependencies = [
-          sources."@types/estree-0.0.39"
-        ];
-      })
+      sources."is-reference-1.2.1"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
       sources."is-windows-1.0.2"
@@ -68755,7 +69928,7 @@ in
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
       sources."istanbul-lib-coverage-3.0.0"
-      (sources."istanbul-lib-instrument-4.0.1" // {
+      (sources."istanbul-lib-instrument-4.0.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -68771,7 +69944,7 @@ in
         ];
       })
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
       sources."jsesc-2.5.2"
       sources."json-parse-better-errors-1.0.2"
@@ -68786,7 +69959,6 @@ in
       sources."jszip-2.6.1"
       sources."kind-of-6.0.3"
       sources."labeled-stream-splicer-2.0.2"
-      sources."lcid-2.0.0"
       sources."leven-3.1.0"
       sources."levenary-1.1.1"
       sources."lines-and-columns-1.1.6"
@@ -68796,8 +69968,8 @@ in
           sources."json5-1.0.1"
         ];
       })
-      sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.19"
       sources."lodash.memoize-3.0.4"
       sources."loose-envify-1.4.0"
       sources."lru-cache-5.1.1"
@@ -68808,11 +69980,9 @@ in
         ];
       })
       sources."makeerror-1.0.11"
-      sources."map-age-cleaner-0.1.3"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."md5.js-1.3.5"
-      sources."mem-4.3.0"
       sources."memory-fs-0.4.1"
       sources."merge-stream-2.0.0"
       (sources."micromatch-4.0.2" // {
@@ -68823,10 +69993,13 @@ in
           sources."to-regex-range-5.0.1"
         ];
       })
-      sources."miller-rabin-4.0.1"
+      (sources."miller-rabin-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
-      sources."mimic-fn-2.1.0"
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
       sources."minimatch-3.0.4"
@@ -68839,7 +70012,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"
@@ -68849,14 +70022,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"
@@ -68866,7 +70039,7 @@ in
         ];
       })
       sources."node-modules-regexp-1.0.0"
-      sources."node-releases-1.1.53"
+      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"
@@ -68891,29 +70064,26 @@ in
       sources."object.pick-1.3.0"
       sources."once-1.4.0"
       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-1.3.0"
-      sources."p-locate-2.0.0"
-      sources."p-try-1.0.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
       sources."pako-1.0.11"
       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-json-5.0.1"
       sources."parse-passwd-1.0.0"
       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-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-platform-0.11.15"
-      sources."pbkdf2-3.0.17"
+      sources."pbkdf2-3.1.1"
       sources."peek-stream-1.1.3"
       sources."performance-now-2.1.0"
       sources."picomatch-2.2.2"
@@ -68925,23 +70095,24 @@ 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."p-try-2.2.0"
+          sources."path-exists-3.0.0"
         ];
       })
-      sources."pkg-up-2.0.0"
       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"
       sources."promise-inflight-1.0.1"
       sources."prr-1.0.1"
       sources."psl-1.8.0"
-      sources."public-encrypt-4.0.3"
+      (sources."public-encrypt-4.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."pump-3.0.0"
       (sources."pumpify-1.5.1" // {
         dependencies = [
@@ -68961,19 +70132,15 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      (sources."readdirp-2.2.1" // {
-        dependencies = [
-          sources."micromatch-3.1.10"
-        ];
-      })
+      sources."readdirp-3.4.0"
       sources."realpath-native-2.0.0"
-      sources."regenerate-1.4.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.1"
+      sources."regjsgen-0.5.2"
       (sources."regjsparser-0.6.4" // {
         dependencies = [
           sources."jsesc-0.5.0"
@@ -69022,9 +70189,9 @@ in
           sources."normalize-path-2.1.1"
         ];
       })
-      sources."schema-utils-2.6.6"
+      sources."schema-utils-2.7.0"
       sources."semver-5.7.1"
-      sources."serialize-javascript-2.1.2"
+      sources."serialize-javascript-3.1.0"
       sources."set-blocking-2.0.0"
       (sources."set-value-2.0.1" // {
         dependencies = [
@@ -69039,7 +70206,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 = [
@@ -69081,9 +70248,9 @@ in
       })
       sources."source-map-url-0.4.0"
       sources."sourcemap-codec-1.4.8"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.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"
@@ -69109,7 +70276,7 @@ in
       sources."stream-browserify-2.0.2"
       sources."stream-combiner2-1.1.1"
       sources."stream-each-1.2.3"
-      (sources."stream-http-3.1.0" // {
+      (sources."stream-http-3.1.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
         ];
@@ -69119,7 +70286,7 @@ in
       sources."string-width-3.1.0"
       (sources."string_decoder-1.3.0" // {
         dependencies = [
-          sources."safe-buffer-5.2.0"
+          sources."safe-buffer-5.2.1"
         ];
       })
       sources."strip-ansi-5.2.0"
@@ -69128,17 +70295,17 @@ 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.6.13" // {
+      (sources."terser-4.8.0" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      (sources."terser-webpack-plugin-1.4.3" // {
+      (sources."terser-webpack-plugin-1.4.4" // {
         dependencies = [
           sources."schema-utils-1.0.0"
           sources."source-map-0.6.1"
@@ -69159,7 +70326,7 @@ in
       sources."to-regex-3.0.2"
       sources."to-regex-range-2.1.1"
       sources."tough-cookie-2.5.0"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."tty-browserify-0.0.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
@@ -69201,14 +70368,28 @@ in
       })
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
-      sources."v8-compile-cache-2.0.3"
+      sources."v8-compile-cache-2.1.1"
       sources."validate-npm-package-license-3.0.4"
       sources."verror-1.10.0"
       sources."vinyl-2.2.0"
       sources."vm-browserify-1.1.2"
       sources."walker-1.0.7"
-      sources."watchpack-1.6.1"
-      (sources."webpack-4.43.0" // {
+      sources."watchpack-1.7.4"
+      (sources."watchpack-chokidar2-2.0.0" // {
+        dependencies = [
+          sources."anymatch-2.0.0"
+          sources."binary-extensions-1.13.1"
+          sources."chokidar-2.1.8"
+          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."micromatch-3.1.10"
+          sources."normalize-path-2.1.1"
+          sources."readdirp-2.2.1"
+        ];
+      })
+      (sources."webpack-4.44.1" // {
         dependencies = [
           sources."acorn-6.4.1"
           sources."micromatch-3.1.10"
@@ -69216,17 +70397,13 @@ in
           sources."schema-utils-1.0.0"
         ];
       })
-      (sources."webpack-cli-3.3.11" // {
+      (sources."webpack-cli-3.3.12" // {
         dependencies = [
           (sources."chalk-2.4.2" // {
             dependencies = [
               sources."supports-color-5.5.0"
             ];
           })
-          sources."emojis-list-2.1.0"
-          sources."enhanced-resolve-4.1.0"
-          sources."json5-1.0.1"
-          sources."loader-utils-1.2.3"
           sources."supports-color-6.1.0"
         ];
       })
@@ -69256,13 +70433,12 @@ in
       sources."xtend-4.0.2"
       sources."y18n-4.0.0"
       sources."yallist-3.1.1"
-      (sources."yargs-13.2.4" // {
+      (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."p-try-2.2.0"
+          sources."path-exists-3.0.0"
         ];
       })
       sources."yargs-parser-13.1.2"
@@ -69302,7 +70478,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Madoko is a fast scholarly Markdown processor written in Koka";
-      homepage = "https://madoko.codeplex.com/";
+      homepage = http://madoko.codeplex.com/;
     };
     production = true;
     bypassCache = true;
@@ -69318,17 +70494,17 @@ 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."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.9.1"
+      sources."aws4-1.10.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."caseless-0.12.0"
-      sources."chalk-4.0.0"
+      sources."chalk-4.1.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."combined-stream-1.0.8"
@@ -69339,13 +70515,13 @@ in
       sources."ecc-jsbn-0.1.2"
       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."forever-agent-0.6.1"
       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"
@@ -69359,7 +70535,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.19"
       sources."markdown-link-extractor-1.2.3"
       sources."marked-0.8.2"
       sources."mime-db-1.44.0"
@@ -69372,7 +70548,7 @@ in
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
       sources."request-2.88.2"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sshpk-1.16.1"
       sources."supports-color-7.1.0"
@@ -69393,6 +70569,293 @@ 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.0"
+      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.1.0"
+        ];
+      })
+      sources."esrecurse-4.2.1"
+      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.0.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.3"
+        ];
+      })
+      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.19"
+      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.2.2"
+      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";
@@ -69442,7 +70905,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Meeting room kiosk app for displaying meeting room schedules and booking rooms in your organization. Built against Google Apps, but other sources can be defined.";
-      homepage = "https://bitbucket.org/aahmed/meat";
+      homepage = https://bitbucket.org/aahmed/meat;
     };
     production = true;
     bypassCache = true;
@@ -69512,7 +70975,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.6.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -69570,7 +71033,6 @@ in
       sources."collection-visit-1.0.0"
       sources."color-support-1.1.3"
       sources."combined-stream-1.0.8"
-      sources."commander-2.20.3"
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       sources."convert-source-map-1.7.0"
@@ -69817,7 +71279,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      sources."interpret-1.2.0"
+      sources."interpret-1.4.0"
       sources."is-absolute-1.0.0"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-buffer-1.1.6"
@@ -70106,8 +71568,8 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-1.2.0"
-      sources."typescript-3.8.3"
-      sources."uglify-js-3.9.2"
+      sources."typescript-3.9.7"
+      sources."uglify-js-3.10.1"
       sources."uglify-to-browserify-1.0.2"
       sources."unc-path-regex-0.1.2"
       sources."union-value-1.0.1"
@@ -70167,22 +71629,299 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  mirakurun = nodeEnv.buildNodePackage {
+    name = "mirakurun";
+    packageName = "mirakurun";
+    version = "3.3.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/mirakurun/-/mirakurun-3.3.0.tgz";
+      sha512 = "FL0S+TpQLy1qfaX3BISUp3AC4D8o392WpTWXqOAku6QDnPrB/NYK30dTxGXt3p6+SB9j8jnHEhRX12AuTREsdg==";
+    };
+    dependencies = [
+      sources."@fluentui/date-time-utilities-7.3.1"
+      sources."@fluentui/keyboard-key-0.2.8"
+      sources."@fluentui/react-7.124.2"
+      sources."@fluentui/react-focus-7.12.27"
+      sources."@fluentui/react-icons-0.1.42"
+      sources."@microsoft/load-themed-styles-1.10.65"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@uifabric/foundation-7.7.41"
+      sources."@uifabric/icons-7.3.67"
+      sources."@uifabric/merge-styles-7.16.4"
+      sources."@uifabric/react-hooks-7.7.0"
+      sources."@uifabric/set-version-7.0.19"
+      sources."@uifabric/styling-7.14.7"
+      sources."@uifabric/utilities-7.25.0"
+      sources."accepts-1.3.7"
+      sources."ajv-6.12.3"
+      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."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.1.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.4"
+      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.19"
+      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.124.2"
+      sources."on-finished-2.3.0"
+      sources."on-headers-1.0.2"
+      sources."once-1.4.0"
+      sources."onetime-2.0.1"
+      sources."openapi-default-setter-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.31.1"
+      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.2.2"
+      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 = "7.1.2";
+    version = "8.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/mocha/-/mocha-7.1.2.tgz";
-      sha512 = "o96kdRKMKI3E8U0bjnfqW4QMk12MwZ4mhdBTf+B5a1q9+aq2HRnj+3ZdJu0B/ZhJeK78MgYuv6L8d/rA5AeBJA==";
+      url = "https://registry.npmjs.org/mocha/-/mocha-8.1.1.tgz";
+      sha512 = "p7FuGlYH8t7gaiodlFreseLxEmxTgvyG9RgPHODFPySNhwUehu8NIb0vdSt3WFckSneswZ0Un5typYcWElk7HQ==";
     };
     dependencies = [
-      sources."ansi-colors-3.2.3"
+      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.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"
@@ -70192,7 +71931,7 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."chokidar-3.3.0"
+      sources."chokidar-3.3.1"
       (sources."cliui-5.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -70206,20 +71945,22 @@ in
       sources."debug-3.2.6"
       sources."decamelize-1.2.0"
       sources."define-properties-1.1.3"
-      sources."diff-3.5.0"
+      sources."diff-4.0.2"
       sources."emoji-regex-7.0.3"
-      sources."es-abstract-1.17.5"
+      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-3.0.0"
+      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.3"
+      sources."glob-7.1.6"
       sources."glob-parent-5.1.1"
       sources."growl-1.10.5"
       sources."has-1.0.3"
@@ -70228,56 +71969,65 @@ in
       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.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"
       sources."is-glob-4.0.1"
+      sources."is-map-2.0.1"
       sources."is-number-7.0.0"
-      sources."is-regex-1.0.5"
+      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.13.1"
-      sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."locate-path-5.0.0"
       sources."log-symbols-3.0.0"
       sources."minimatch-3.0.4"
-      sources."minimist-1.2.5"
-      sources."mkdirp-0.5.5"
-      sources."ms-2.1.1"
-      sources."node-environment-flags-1.0.6"
+      sources."ms-2.1.2"
       sources."normalize-path-3.0.0"
-      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."once-1.4.0"
       sources."p-limit-2.3.0"
-      sources."p-locate-3.0.0"
+      sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
-      sources."path-exists-3.0.0"
+      sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."picomatch-2.2.2"
-      sources."readdirp-3.2.0"
+      sources."promise.allsettled-1.0.2"
+      sources."randombytes-2.1.0"
+      sources."readdirp-3.3.0"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
-      sources."semver-5.7.1"
+      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.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       sources."strip-ansi-4.0.0"
-      sources."strip-json-comments-2.0.1"
-      sources."supports-color-6.0.0"
+      sources."strip-json-comments-3.0.1"
+      (sources."supports-color-7.1.0" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+        ];
+      })
       sources."to-regex-range-5.0.1"
-      sources."which-1.3.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"
@@ -70290,17 +72040,33 @@ in
       (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-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.0"
+      (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-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"
+        ];
+      })
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "simple, flexible, fun test framework";
-      homepage = "https://mochajs.org/";
+      homepage = https://mochajs.org/;
       license = "MIT";
     };
     production = true;
@@ -70332,13 +72098,13 @@ in
       sources."graphlib-2.1.8"
       sources."inherits-2.0.4"
       sources."isarray-1.0.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       (sources."json-refs-3.0.15" // {
         dependencies = [
           sources."commander-4.1.1"
         ];
       })
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
       sources."mime-db-1.44.0"
@@ -70370,13 +72136,13 @@ in
   neovim = nodeEnv.buildNodePackage {
     name = "neovim";
     packageName = "neovim";
-    version = "4.8.0";
+    version = "4.9.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/neovim/-/neovim-4.8.0.tgz";
-      sha512 = "gGiVq/r9iIrp2XCdDXb3fBEW4e3H6zMLxgTGuG5e6MaxiLzLnUZj2ersr4r+Ij8qnbRFxCqCrOw5d7lyrGPcWg==";
+      url = "https://registry.npmjs.org/neovim/-/neovim-4.9.0.tgz";
+      sha512 = "48hDy0Dheo5qFF+cwhj7qaWoXfbiKOQ0CLNE0/aiA41rhn/Z1m0OKQqlp9SqbSMr/PnY5QdiLdbs0xh2UudEfA==";
     };
     dependencies = [
-      sources."@msgpack/msgpack-1.12.1"
+      sources."@msgpack/msgpack-1.12.2"
       sources."async-2.6.3"
       sources."color-3.0.0"
       sources."color-convert-1.9.3"
@@ -70390,21 +72156,21 @@ in
       sources."enabled-1.0.2"
       sources."env-variable-0.0.6"
       sources."fast-safe-stringify-2.0.7"
-      sources."fecha-2.3.3"
+      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-4.17.19"
       sources."lodash.defaults-4.2.0"
       sources."lodash.omit-4.5.0"
-      sources."logform-2.1.2"
+      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.0"
+      sources."safe-buffer-5.2.1"
       sources."semver-7.3.2"
       sources."simple-swizzle-0.2.2"
       sources."stack-trace-0.0.10"
@@ -70413,7 +72179,7 @@ in
       sources."triple-beam-1.3.0"
       sources."util-deprecate-1.0.2"
       sources."winston-3.2.1"
-      (sources."winston-transport-4.3.0" // {
+      (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
@@ -70424,7 +72190,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Neovim client API and neovim remote plugin provider";
-      homepage = "https://github.com/neovim/node-client";
+      homepage = https://github.com/neovim/node-client;
       license = "MIT";
     };
     production = true;
@@ -70456,14 +72222,14 @@ in
   node-gyp = nodeEnv.buildNodePackage {
     name = "node-gyp";
     packageName = "node-gyp";
-    version = "6.1.0";
+    version = "7.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-6.1.0.tgz";
-      sha512 = "h4A2zDlOujeeaaTx06r4Vy+8MZ1679lU+wbCKDS4ZtvY2A37DESo37oejIw0mtmR3+rvNwts5B6Kpt1KrNYdNw==";
+      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-7.0.0.tgz";
+      sha512 = "ZW34qA3CJSPKDz2SJBHKRvyNQN0yWO5EGKKksJc+jElu9VA468gwJTyTArC1iOXU7rN3Wtfg/CMt/dBAOFIjvg==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."ansi-regex-2.1.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
@@ -70471,12 +72237,12 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."caseless-0.12.0"
-      sources."chownr-1.1.4"
+      sources."chownr-2.0.0"
       sources."code-point-at-1.1.0"
       sources."combined-stream-1.0.8"
       sources."concat-map-0.0.1"
@@ -70489,18 +72255,18 @@ in
       sources."env-paths-2.2.0"
       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."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."fs-minipass-1.2.7"
+      sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."gauge-2.7.4"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.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"
@@ -70518,10 +72284,9 @@ in
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."minimatch-3.0.4"
-      sources."minimist-1.2.5"
-      sources."minipass-2.9.0"
-      sources."minizlib-1.3.3"
-      sources."mkdirp-0.5.5"
+      sources."minipass-3.1.3"
+      sources."minizlib-2.1.0"
+      sources."mkdirp-1.0.4"
       sources."nopt-4.0.3"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
@@ -70542,14 +72307,14 @@ in
       sources."rimraf-2.7.1"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      sources."semver-5.7.1"
+      sources."semver-7.3.2"
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.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."tar-4.4.13"
+      sources."tar-6.0.2"
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
@@ -70557,10 +72322,10 @@ in
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
-      sources."which-1.3.1"
+      sources."which-2.0.2"
       sources."wide-align-1.1.3"
       sources."wrappy-1.0.2"
-      sources."yallist-3.1.1"
+      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -70575,15 +72340,15 @@ 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 = {
       description = "Build tool and bindings loader for node-gyp that supports prebuilds";
-      homepage = "https://github.com/prebuild/node-gyp-build";
+      homepage = https://github.com/prebuild/node-gyp-build;
       license = "MIT";
     };
     production = true;
@@ -70613,7 +72378,7 @@ in
       sources."async-0.9.2"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.6.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       sources."base64-js-0.0.8"
       sources."bcrypt-pbkdf-1.0.2"
@@ -70805,9 +72570,9 @@ in
       sources."setprototypeof-1.1.1"
       sources."signal-exit-3.0.3"
       sources."sntp-1.0.9"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       (sources."sshpk-1.16.1" // {
         dependencies = [
@@ -70879,7 +72644,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Web Inspector based nodeJS debugger";
-      homepage = "https://github.com/node-inspector/node-inspector";
+      homepage = http://github.com/node-inspector/node-inspector;
     };
     production = true;
     bypassCache = true;
@@ -70888,10 +72653,10 @@ in
   node-pre-gyp = nodeEnv.buildNodePackage {
     name = "node-pre-gyp";
     packageName = "node-pre-gyp";
-    version = "0.14.0";
+    version = "0.15.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz";
-      sha512 = "+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==";
+      url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz";
+      sha512 = "7QcZa8/fpaU/BKenjcaeFF9hLz2+7S9AqyXFhlH/rilsQ/hPZKK32RtR5EQHJElgu+q5RfbJ34KriI79UWaorA==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
@@ -70927,7 +72692,7 @@ in
       sources."minizlib-1.3.3"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
-      sources."needle-2.4.1"
+      sources."needle-2.5.0"
       sources."nopt-4.0.3"
       sources."npm-bundled-1.1.1"
       sources."npm-normalize-package-bin-1.0.1"
@@ -70973,19 +72738,20 @@ in
   node-red = nodeEnv.buildNodePackage {
     name = "node-red";
     packageName = "node-red";
-    version = "1.0.6";
+    version = "1.1.2";
     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.2.tgz";
+      sha512 = "In2GzDLER2Bm5SkuEQVrekrSFtPljpkMaEYcZxNkbTomYixI63PrCm1IJEZjEBjSkFaK5zY1t3sfEHKdAla+MQ==";
     };
     dependencies = [
-      sources."@babel/runtime-7.9.6"
-      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.1"
+      sources."@node-red/editor-api-1.1.2"
+      sources."@node-red/editor-client-1.1.2"
+      (sources."@node-red/nodes-1.1.2" // {
         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" // {
@@ -70995,18 +72761,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.2"
+      sources."@node-red/runtime-1.1.2"
+      sources."@node-red/util-1.1.2"
       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.1.1"
+          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"
@@ -71025,14 +72791,21 @@ 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."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" // {
@@ -71071,10 +72844,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" // {
@@ -71150,7 +72924,7 @@ 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"
         ];
@@ -71162,9 +72936,14 @@ 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."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"
@@ -71186,7 +72965,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"
@@ -71195,7 +72974,7 @@ in
       sources."http-signature-1.2.0"
       (sources."https-proxy-agent-5.0.0" // {
         dependencies = [
-          sources."debug-4.1.1"
+          sources."debug-4.2.0"
           sources."ms-2.1.2"
         ];
       })
@@ -71218,7 +72997,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"
@@ -71230,6 +73009,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"
@@ -71249,7 +73029,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"
@@ -71261,8 +73041,8 @@ in
       })
       sources."minizlib-1.3.3"
       sources."mkdirp-0.5.5"
-      sources."moment-2.25.3"
-      sources."moment-timezone-0.5.28"
+      sources."moment-2.27.0"
+      sources."moment-timezone-0.5.31"
       (sources."mqtt-2.18.8" // {
         dependencies = [
           sources."readable-stream-2.3.7"
@@ -71274,8 +73054,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.4.1" // {
+      sources."mute-stream-0.0.8"
+      sources."nan-2.14.0"
+      (sources."needle-2.5.0" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."ms-2.1.2"
@@ -71283,12 +73064,17 @@ 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-node-rbe-0.2.8"
+      (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"
       sources."npm-bundled-1.1.1"
@@ -71339,8 +73125,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" // {
@@ -71364,7 +73151,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"
@@ -71375,7 +73161,7 @@ in
       sources."string_decoder-1.3.0"
       sources."strip-ansi-3.0.1"
       sources."strip-json-comments-2.0.1"
-      sources."tail-2.0.3"
+      sources."tail-2.0.4"
       (sources."tar-4.4.13" // {
         dependencies = [
           sources."yallist-3.1.1"
@@ -71401,7 +73187,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"
@@ -71446,7 +73232,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Low-code programming for event-driven applications";
-      homepage = "https://nodered.org/";
+      homepage = http://nodered.org/;
       license = "Apache-2.0";
     };
     production = true;
@@ -71463,7 +73249,7 @@ in
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."ansi-regex-2.1.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
@@ -71471,7 +73257,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
@@ -71493,7 +73279,7 @@ in
       sources."ecc-jsbn-0.1.2"
       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."findit-2.0.0"
       sources."foreachasync-3.0.0"
@@ -71517,7 +73303,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"
@@ -71538,7 +73324,7 @@ in
       sources."mime-types-2.1.27"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-3.1.1"
+      sources."minipass-3.1.3"
       sources."minizlib-2.1.0"
       sources."mkdirp-0.5.5"
       sources."ncp-0.4.2"
@@ -71591,16 +73377,16 @@ in
       sources."resolve-1.17.0"
       sources."retry-0.10.1"
       sources."rimraf-2.6.3"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-7.1.3"
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.0.3"
       sources."slasp-0.0.4"
       sources."slide-1.1.6"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."sshpk-1.16.1"
       sources."ssri-5.3.0"
@@ -71636,7 +73422,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Generate Nix expressions to build NPM packages";
-      homepage = "https://github.com/svanderburg/node2nix";
+      homepage = https://github.com/svanderburg/node2nix;
       license = "MIT";
     };
     production = true;
@@ -71646,10 +73432,10 @@ in
   nodemon = nodeEnv.buildNodePackage {
     name = "nodemon";
     packageName = "nodemon";
-    version = "2.0.3";
+    version = "2.0.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/nodemon/-/nodemon-2.0.3.tgz";
-      sha512 = "lLQLPS90Lqwc99IHe0U94rDgvjo+G9I4uEIxRG3evSLROcqQ9hwc0AxlSHKS4T1JW/IMj/7N5mthiN58NL/5kw==";
+      url = "https://registry.npmjs.org/nodemon/-/nodemon-2.0.4.tgz";
+      sha512 = "Ltced+hIfTmaS28Zjv1BM552oQ3dbwPqI4+zI0SLgq+wpJhSyqgYude/aZa/3i31VCQWMfXJVxvu86abcam3uQ==";
     };
     dependencies = [
       sources."@sindresorhus/is-0.14.0"
@@ -71665,7 +73451,7 @@ in
       sources."ansi-styles-4.2.1"
       sources."anymatch-3.1.1"
       sources."balanced-match-1.0.0"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."boxen-4.2.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
@@ -71682,7 +73468,7 @@ in
           sources."supports-color-7.1.0"
         ];
       })
-      sources."chokidar-3.4.0"
+      sources."chokidar-3.4.1"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.0"
       sources."clone-response-1.0.2"
@@ -71751,12 +73537,12 @@ in
       })
       sources."picomatch-2.2.2"
       sources."prepend-http-2.0.0"
-      sources."pstree.remy-1.1.7"
+      sources."pstree.remy-1.1.8"
       sources."pump-3.0.0"
       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"
@@ -71800,7 +73586,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Simple monitor script for use during development of a node.js app.";
-      homepage = "https://nodemon.io/";
+      homepage = http://nodemon.io/;
       license = "MIT";
     };
     production = true;
@@ -71810,15 +73596,15 @@ in
   npm = nodeEnv.buildNodePackage {
     name = "npm";
     packageName = "npm";
-    version = "6.14.5";
+    version = "6.14.7";
     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.7.tgz";
+      sha512 = "swhsdpNpyXg4GbM6LpOQ6qaloQuIKizZ+Zh6JPXJQc59ka49100Js0WvZx594iaKSoFgkFq2s8uXFHS3/Xy2WQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
       description = "a package manager for JavaScript";
-      homepage = "https://docs.npmjs.com/";
+      homepage = https://docs.npmjs.com/;
       license = "Artistic-2.0";
     };
     production = true;
@@ -71828,26 +73614,27 @@ in
   npm-check-updates = nodeEnv.buildNodePackage {
     name = "npm-check-updates";
     packageName = "npm-check-updates";
-    version = "4.1.2";
+    version = "7.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-4.1.2.tgz";
-      sha512 = "CRO20Z12fygKL/ow4j4pnpyxevda/PuFbWpsF5E9sFW0B+M3d32A1dD+fTHLDjgderhKXr64W8qQ6M/Gq8OLiw==";
+      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-7.0.2.tgz";
+      sha512 = "MyH17fUCFbYShuIyxZj6yqB6YZ47+AjPCgXQiH1oqNe3vElBoJ0toY7nwy88qJbfXnFqjTFigzs9lsoKSK0iUw==";
     };
     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.3"
       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.4.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."agentkeepalive-4.1.2"
+      sources."agent-base-6.0.1"
+      sources."agentkeepalive-4.1.3"
       sources."aggregate-error-3.0.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -71866,12 +73653,13 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       (sources."boxen-4.2.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
+          sources."chalk-3.0.0"
           sources."emoji-regex-8.0.0"
           sources."is-fullwidth-code-point-3.0.0"
           sources."string-width-4.2.0"
@@ -71880,7 +73668,7 @@ in
       })
       sources."brace-expansion-1.1.11"
       sources."builtins-1.0.3"
-      sources."cacache-15.0.3"
+      sources."cacache-15.0.5"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."get-stream-5.1.0"
@@ -71889,7 +73677,7 @@ in
       })
       sources."camelcase-5.3.1"
       sources."caseless-0.12.0"
-      sources."chalk-3.0.0"
+      sources."chalk-4.1.0"
       sources."chownr-2.0.0"
       sources."ci-info-2.0.0"
       sources."cint-8.2.1"
@@ -71909,7 +73697,7 @@ in
       sources."core-util-is-1.0.2"
       sources."crypto-random-string-2.0.0"
       sources."dashdash-1.14.1"
-      sources."debug-4.1.1"
+      sources."debug-4.2.0"
       sources."debuglog-1.0.1"
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
@@ -71922,17 +73710,15 @@ 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"
       sources."escape-goat-2.1.1"
-      sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
-      sources."fast-diff-1.2.0"
+      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"
@@ -71941,7 +73727,7 @@ in
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."gauge-2.7.4"
-      sources."get-stdin-7.0.0"
+      sources."get-stdin-8.0.0"
       sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
@@ -71949,18 +73735,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."has-ansi-2.0.0"
+      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"
@@ -71983,7 +73768,7 @@ in
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
       sources."jju-1.4.0"
-      sources."js-yaml-3.13.1"
+      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"
@@ -72006,52 +73791,40 @@ in
         ];
       })
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       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.6"
+      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.1" // {
-        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.0" // {
         dependencies = [
           sources."minizlib-2.1.0"
-          sources."yallist-4.0.0"
         ];
       })
       sources."minipass-flush-1.0.5"
       sources."minipass-json-stream-1.0.1"
-      sources."minipass-pipeline-1.2.2"
+      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."move-file-2.0.0"
       sources."ms-2.1.2"
       sources."nested-error-stacks-2.0.1"
-      (sources."node-alias-1.0.4" // {
-        dependencies = [
-          sources."ansi-styles-2.2.1"
-          sources."chalk-1.1.3"
-          sources."supports-color-2.0.0"
-        ];
-      })
       (sources."node-gyp-6.1.0" // {
         dependencies = [
           sources."chownr-1.1.4"
@@ -72062,6 +73835,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"
@@ -72070,12 +73844,11 @@ in
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-package-arg-8.0.1"
-      sources."npm-packlist-2.1.1"
+      sources."npm-packlist-2.1.2"
       sources."npm-pick-manifest-6.1.0"
-      (sources."npm-registry-fetch-8.0.2" // {
+      (sources."npm-registry-fetch-8.1.3" // {
         dependencies = [
           sources."minizlib-2.1.0"
-          sources."yallist-4.0.0"
         ];
       })
       sources."npmlog-4.1.2"
@@ -72096,7 +73869,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."pacote-11.1.8"
+      sources."pacote-11.1.11"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.6"
@@ -72117,7 +73890,7 @@ in
       sources."read-package-json-fast-1.1.3"
       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."request-2.88.2"
       sources."require-from-string-2.0.2"
@@ -72139,7 +73912,7 @@ in
       sources."signal-exit-3.0.3"
       sources."sisteransi-1.0.5"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.3.3"
+      sources."socks-2.4.1"
       sources."socks-proxy-agent-5.0.0"
       sources."spawn-please-0.3.0"
       sources."sprintf-js-1.0.3"
@@ -72153,7 +73926,6 @@ in
       (sources."tar-6.0.2" // {
         dependencies = [
           sources."minizlib-2.1.0"
-          sources."yallist-4.0.0"
         ];
       })
       sources."term-size-2.2.0"
@@ -72166,7 +73938,11 @@ 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.0" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
       sources."uri-js-4.2.2"
       sources."url-parse-lax-3.0.0"
       sources."util-deprecate-1.0.2"
@@ -72187,12 +73963,12 @@ 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 = {
-      description = "Find newer versions of dependencies than what your package.json or bower.json allows";
-      homepage = "https://github.com/tjunnone/npm-check-updates";
+      description = "Find newer versions of dependencies than what your package.json allows";
+      homepage = https://github.com/raineorshine/npm-check-updates;
       license = "Apache-2.0";
     };
     production = true;
@@ -72210,7 +73986,7 @@ in
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."ansi-regex-2.1.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
@@ -72219,7 +73995,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."block-stream-0.0.9"
@@ -72244,7 +74020,7 @@ in
       sources."ecc-jsbn-0.1.2"
       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."findit-1.2.0"
       sources."foreachasync-3.0.0"
@@ -72268,7 +74044,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"
@@ -72325,7 +74101,7 @@ in
       sources."request-2.88.2"
       sources."retry-0.6.0"
       sources."rimraf-2.7.1"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-4.3.6"
       sources."set-blocking-2.0.0"
@@ -72366,7 +74142,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Generate nix expressions to build npm packages";
-      homepage = "https://github.com/NixOS/npm2nix";
+      homepage = https://github.com/NixOS/npm2nix;
     };
     production = true;
     bypassCache = true;
@@ -72407,7 +74183,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "OCaml language server";
-      homepage = "https://github.com/freebroccolo/ocaml-language-server";
+      homepage = https://github.com/freebroccolo/ocaml-language-server;
       license = "Apache-2.0";
     };
     production = true;
@@ -72423,104 +74199,114 @@ in
       sha512 = "G+iZGGiPEXcRzw0fiRxWYCKxdt/F7l9a0xkiU4XbcVRJCSlBnioWEwJMutOCCpoQmaQtjB4RBHDGIHN85AIhLQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.8.3"
-      sources."@babel/compat-data-7.9.6"
-      (sources."@babel/core-7.9.6" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/compat-data-7.11.0"
+      (sources."@babel/core-7.11.1" // {
         dependencies = [
           sources."json5-2.1.3"
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.9.6" // {
+      (sources."@babel/generator-7.11.0" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      sources."@babel/helper-annotate-as-pure-7.8.3"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.8.3"
-      sources."@babel/helper-builder-react-jsx-7.9.0"
-      sources."@babel/helper-builder-react-jsx-experimental-7.9.5"
-      sources."@babel/helper-compilation-targets-7.9.6"
-      sources."@babel/helper-create-regexp-features-plugin-7.8.8"
-      sources."@babel/helper-define-map-7.8.3"
-      sources."@babel/helper-explode-assignable-expression-7.8.3"
-      sources."@babel/helper-function-name-7.9.5"
-      sources."@babel/helper-get-function-arity-7.8.3"
-      sources."@babel/helper-hoist-variables-7.8.3"
-      sources."@babel/helper-member-expression-to-functions-7.8.3"
-      sources."@babel/helper-module-imports-7.8.3"
-      sources."@babel/helper-module-transforms-7.9.0"
-      sources."@babel/helper-optimise-call-expression-7.8.3"
-      sources."@babel/helper-plugin-utils-7.8.3"
-      sources."@babel/helper-regex-7.8.3"
-      sources."@babel/helper-remap-async-to-generator-7.8.3"
-      sources."@babel/helper-replace-supers-7.9.6"
-      sources."@babel/helper-simple-access-7.8.3"
-      sources."@babel/helper-split-export-declaration-7.8.3"
-      sources."@babel/helper-validator-identifier-7.9.5"
-      sources."@babel/helper-wrap-function-7.8.3"
-      sources."@babel/helpers-7.9.6"
-      sources."@babel/highlight-7.9.0"
-      sources."@babel/parser-7.9.6"
-      sources."@babel/plugin-proposal-async-generator-functions-7.8.3"
-      sources."@babel/plugin-proposal-dynamic-import-7.8.3"
-      sources."@babel/plugin-proposal-json-strings-7.8.3"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.8.3"
-      sources."@babel/plugin-proposal-numeric-separator-7.8.3"
-      sources."@babel/plugin-proposal-object-rest-spread-7.9.6"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.8.3"
-      sources."@babel/plugin-proposal-optional-chaining-7.9.0"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.8.8"
+      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.10.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.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.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.10.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.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-class-properties-7.10.4"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
-      sources."@babel/plugin-syntax-flow-7.8.3"
+      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.8.3"
+      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.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.8.3"
-      sources."@babel/plugin-transform-arrow-functions-7.8.3"
-      sources."@babel/plugin-transform-async-to-generator-7.8.3"
-      sources."@babel/plugin-transform-block-scoped-functions-7.8.3"
-      sources."@babel/plugin-transform-block-scoping-7.8.3"
-      sources."@babel/plugin-transform-classes-7.9.5"
-      sources."@babel/plugin-transform-computed-properties-7.8.3"
-      sources."@babel/plugin-transform-destructuring-7.9.5"
-      sources."@babel/plugin-transform-dotall-regex-7.8.3"
-      sources."@babel/plugin-transform-duplicate-keys-7.8.3"
-      sources."@babel/plugin-transform-exponentiation-operator-7.8.3"
-      sources."@babel/plugin-transform-flow-strip-types-7.9.0"
-      sources."@babel/plugin-transform-for-of-7.9.0"
-      sources."@babel/plugin-transform-function-name-7.8.3"
-      sources."@babel/plugin-transform-literals-7.8.3"
-      sources."@babel/plugin-transform-member-expression-literals-7.8.3"
-      sources."@babel/plugin-transform-modules-amd-7.9.6"
-      sources."@babel/plugin-transform-modules-commonjs-7.9.6"
-      sources."@babel/plugin-transform-modules-systemjs-7.9.6"
-      sources."@babel/plugin-transform-modules-umd-7.9.0"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.8.3"
-      sources."@babel/plugin-transform-new-target-7.8.3"
-      sources."@babel/plugin-transform-object-super-7.8.3"
-      sources."@babel/plugin-transform-parameters-7.9.5"
-      sources."@babel/plugin-transform-property-literals-7.8.3"
-      sources."@babel/plugin-transform-react-jsx-7.9.4"
-      sources."@babel/plugin-transform-regenerator-7.8.7"
-      sources."@babel/plugin-transform-reserved-words-7.8.3"
-      sources."@babel/plugin-transform-shorthand-properties-7.8.3"
-      sources."@babel/plugin-transform-spread-7.8.3"
-      sources."@babel/plugin-transform-sticky-regex-7.8.3"
-      sources."@babel/plugin-transform-template-literals-7.8.3"
-      sources."@babel/plugin-transform-typeof-symbol-7.8.4"
-      sources."@babel/plugin-transform-unicode-regex-7.8.3"
-      sources."@babel/preset-env-7.9.6"
+      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.0"
       sources."@babel/preset-modules-0.1.3"
-      sources."@babel/runtime-7.9.6"
-      sources."@babel/template-7.8.6"
-      sources."@babel/traverse-7.9.6"
-      sources."@babel/types-7.9.6"
+      sources."@babel/runtime-7.11.1"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.0"
+      sources."@babel/types-7.11.0"
       sources."@iarna/toml-2.2.5"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
@@ -72529,16 +74315,16 @@ in
       sources."@parcel/utils-1.11.0"
       sources."@parcel/watcher-1.12.1"
       sources."@parcel/workers-1.11.0"
-      sources."@types/q-1.5.2"
-      sources."abab-2.0.3"
-      sources."acorn-7.1.1"
+      sources."@types/q-1.5.4"
+      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.3"
       sources."alphanum-sort-1.0.2"
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
@@ -72555,7 +74341,11 @@ 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-4.10.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       (sources."assert-1.5.0" // {
         dependencies = [
           sources."inherits-2.0.1"
@@ -72569,7 +74359,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."babel-plugin-dynamic-import-node-2.3.3"
       (sources."babel-runtime-6.26.0" // {
         dependencies = [
@@ -72592,7 +74382,7 @@ in
       sources."bcrypt-pbkdf-1.0.2"
       sources."binary-extensions-1.13.1"
       sources."bindings-1.5.0"
-      sources."bn.js-4.11.8"
+      sources."bn.js-5.1.2"
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."braces-2.3.2"
@@ -72602,14 +74392,23 @@ in
       sources."browserify-aes-1.2.0"
       sources."browserify-cipher-1.0.1"
       sources."browserify-des-1.0.2"
-      sources."browserify-rsa-4.0.1"
-      sources."browserify-sign-4.0.4"
+      (sources."browserify-rsa-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (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" // {
         dependencies = [
           sources."pako-1.0.11"
         ];
       })
-      sources."browserslist-4.12.0"
+      sources."browserslist-4.13.0"
       (sources."buffer-4.9.2" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -72624,9 +74423,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.30001050"
+      sources."caniuse-lite-1.0.30001111"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
@@ -72634,12 +74432,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"
@@ -72665,7 +74457,11 @@ 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"
+        ];
+      })
       sources."create-hash-1.2.0"
       sources."create-hmac-1.1.7"
       sources."cross-spawn-6.0.5"
@@ -72690,9 +74486,9 @@ 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.2.1"
+      sources."css-what-3.3.0"
       sources."cssesc-3.0.0"
       sources."cssnano-4.1.10"
       sources."cssnano-preset-default-4.0.7"
@@ -72711,8 +74507,7 @@ in
       sources."dashdash-1.14.1"
       sources."data-urls-1.1.0"
       sources."deasync-0.1.20"
-      sources."debug-4.1.1"
-      sources."decamelize-1.2.0"
+      sources."debug-4.2.0"
       sources."decode-uri-component-0.2.0"
       sources."deep-is-0.1.3"
       (sources."defaults-1.0.3" // {
@@ -72741,11 +74536,15 @@ in
       sources."depd-1.1.2"
       sources."des.js-1.0.1"
       sources."destroy-1.0.4"
-      sources."diffie-hellman-5.0.3"
+      (sources."diffie-hellman-5.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
           sources."domelementtype-2.0.1"
-          sources."entities-2.0.0"
+          sources."entities-2.0.3"
         ];
       })
       sources."domain-browser-1.2.0"
@@ -72759,19 +74558,23 @@ in
       sources."duplexer2-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.427"
-      sources."elliptic-6.5.2"
-      sources."emoji-regex-7.0.3"
+      sources."electron-to-chromium-1.3.520"
+      (sources."elliptic-6.5.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."encodeurl-1.0.2"
       sources."entities-1.1.2"
-      sources."envinfo-7.5.1"
+      sources."envinfo-7.7.2"
       sources."error-ex-1.3.2"
-      (sources."es-abstract-1.17.5" // {
+      (sources."es-abstract-1.17.6" // {
         dependencies = [
-          sources."object-inspect-1.7.0"
+          sources."object-inspect-1.8.0"
         ];
       })
       sources."es-to-primitive-1.2.1"
+      sources."escalade-3.0.2"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
       sources."escodegen-1.9.1"
@@ -72779,7 +74582,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 = [
@@ -72796,7 +74599,7 @@ in
       })
       sources."extsprintf-1.3.0"
       sources."falafel-2.2.4"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-glob-2.2.7"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
@@ -72804,7 +74607,6 @@ in
       sources."file-uri-to-path-1.0.0"
       sources."filesize-3.6.1"
       sources."fill-range-4.0.0"
-      sources."find-up-2.1.0"
       sources."for-in-1.0.2"
       sources."foreach-2.0.5"
       sources."forever-agent-0.6.1"
@@ -72812,10 +74614,9 @@ in
       sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-1.2.12"
+      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"
@@ -72830,7 +74631,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 = [
@@ -72848,7 +74649,7 @@ in
       (sources."hash-base-3.1.0" // {
         dependencies = [
           sources."readable-stream-3.6.0"
-          sources."safe-buffer-5.2.0"
+          sources."safe-buffer-5.2.1"
         ];
       })
       sources."hash.js-1.1.7"
@@ -72859,10 +74660,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."terser-4.6.13"
+          sources."posthtml-0.13.1"
+          sources."terser-4.8.0"
         ];
       })
       (sources."htmlparser2-3.10.1" // {
@@ -72890,7 +74691,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.1.5"
+      sources."is-callable-1.2.0"
       sources."is-color-stop-1.1.0"
       (sources."is-data-descriptor-1.0.0" // {
         dependencies = [
@@ -72906,13 +74707,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.0.5"
+      sources."is-regex-1.1.1"
       sources."is-resolvable-1.1.0"
       sources."is-svg-3.0.0"
       sources."is-symbol-1.0.3"
@@ -72925,7 +74725,7 @@ in
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
       sources."js-tokens-4.0.0"
-      (sources."js-yaml-3.13.1" // {
+      (sources."js-yaml-3.14.0" // {
         dependencies = [
           sources."esprima-4.0.1"
         ];
@@ -72934,7 +74734,7 @@ in
       (sources."jsdom-14.1.0" // {
         dependencies = [
           sources."acorn-6.4.1"
-          sources."escodegen-1.14.1"
+          sources."escodegen-1.14.3"
           sources."esprima-4.0.1"
           sources."ws-6.2.1"
         ];
@@ -72950,8 +74750,7 @@ in
       sources."leven-3.1.0"
       sources."levenary-1.1.1"
       sources."levn-0.3.0"
-      sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."lodash.clone-4.5.0"
       sources."lodash.memoize-4.1.2"
       sources."lodash.sortby-4.7.0"
@@ -72968,7 +74767,7 @@ in
           sources."source-map-0.5.7"
         ];
       })
-      sources."merge2-1.3.0"
+      sources."merge2-1.4.1"
       (sources."micromatch-3.1.10" // {
         dependencies = [
           sources."define-property-2.0.2"
@@ -72977,7 +74776,11 @@ in
           sources."kind-of-6.0.3"
         ];
       })
-      sources."miller-rabin-4.0.1"
+      (sources."miller-rabin-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."mime-1.6.0"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
@@ -73003,14 +74806,14 @@ in
         ];
       })
       sources."nice-try-1.0.5"
-      sources."node-addon-api-1.7.1"
+      sources."node-addon-api-1.7.2"
       sources."node-forge-0.7.6"
       (sources."node-libs-browser-2.2.1" // {
         dependencies = [
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-releases-1.1.53"
+      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"
@@ -73033,9 +74836,6 @@ in
       sources."optionator-0.8.3"
       sources."ora-2.1.0"
       sources."os-browserify-0.3.0"
-      sources."p-limit-1.3.0"
-      sources."p-locate-2.0.0"
-      sources."p-try-1.0.0"
       sources."pako-0.2.9"
       sources."parse-asn1-5.1.5"
       sources."parse-json-4.0.0"
@@ -73044,17 +74844,15 @@ in
       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"
-      sources."pbkdf2-3.0.17"
+      sources."pbkdf2-3.1.1"
       sources."performance-now-2.1.0"
       sources."physical-cpu-count-2.0.0"
-      sources."pkg-up-2.0.0"
       sources."pn-1.1.0"
       sources."posix-character-classes-0.1.1"
-      (sources."postcss-7.0.29" // {
+      (sources."postcss-7.0.32" // {
         dependencies = [
           sources."supports-color-6.1.0"
         ];
@@ -73122,15 +74920,22 @@ 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"
-      sources."public-encrypt-4.0.3"
+      (sources."public-encrypt-4.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       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"
@@ -73145,10 +74950,10 @@ in
         ];
       })
       sources."readdirp-2.2.1"
-      sources."regenerate-1.4.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" // {
         dependencies = [
           sources."extend-shallow-3.0.2"
@@ -73156,7 +74961,7 @@ in
         ];
       })
       sources."regexpu-core-4.7.0"
-      sources."regjsgen-0.5.1"
+      sources."regjsgen-0.5.2"
       (sources."regjsparser-0.6.4" // {
         dependencies = [
           sources."jsesc-0.5.0"
@@ -73166,10 +74971,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"
@@ -73197,7 +75000,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"
@@ -73237,9 +75039,9 @@ in
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
       sources."stable-0.1.8"
-      (sources."static-eval-2.0.5" // {
+      (sources."static-eval-2.1.0" // {
         dependencies = [
-          sources."escodegen-1.14.1"
+          sources."escodegen-1.14.3"
           sources."esprima-4.0.1"
         ];
       })
@@ -73249,15 +75051,7 @@ 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.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-4.0.0"
@@ -73335,7 +75129,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."util.promisify-1.0.1"
       sources."uuid-3.4.0"
-      sources."v8-compile-cache-2.1.0"
+      sources."v8-compile-cache-2.1.1"
       sources."vendors-1.0.4"
       sources."verror-1.10.0"
       sources."vlq-0.2.3"
@@ -73348,30 +75142,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" // {
-        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."yargs-parser-15.0.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -73397,7 +75173,7 @@ in
           sources."negotiator-0.6.2"
         ];
       })
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -73408,7 +75184,7 @@ in
       sources."async-0.9.2"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."babybird-0.0.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
@@ -73422,7 +75198,7 @@ in
         ];
       })
       sources."brace-expansion-1.1.11"
-      sources."bunyan-1.8.12"
+      sources."bunyan-1.8.14"
       sources."bunyan-syslog-udp-0.2.0"
       sources."busboy-0.3.1"
       sources."bytes-3.0.0"
@@ -73434,7 +75210,6 @@ in
       sources."color-name-1.1.3"
       sources."colors-1.4.0"
       sources."combined-stream-1.0.8"
-      sources."commander-2.20.3"
       sources."compressible-2.0.18"
       sources."compression-1.7.4"
       sources."concat-map-0.0.1"
@@ -73455,7 +75230,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"
@@ -73474,7 +75249,7 @@ in
       sources."express-handlebars-3.1.0"
       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."file-uri-to-path-1.0.0"
       sources."finalhandler-1.1.2"
@@ -73494,7 +75269,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"
@@ -73510,7 +75285,7 @@ in
       sources."is-typedarray-1.0.0"
       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"
@@ -73526,7 +75301,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.19"
       sources."lodash.clone-4.5.0"
       sources."media-typer-0.3.0"
       sources."mediawiki-title-0.6.5"
@@ -73539,14 +75314,14 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
-      sources."moment-2.25.3"
+      sources."moment-2.27.0"
       sources."ms-2.0.0"
       sources."msgpack5-3.6.0"
       sources."mv-2.1.1"
       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"
@@ -73605,7 +75380,7 @@ in
         ];
       })
       sources."serve-static-1.14.1"
-      (sources."service-runner-2.7.7" // {
+      (sources."service-runner-2.7.8" // {
         dependencies = [
           sources."semver-7.3.2"
           sources."yargs-14.2.3"
@@ -73627,7 +75402,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
-      sources."uglify-js-3.9.2"
+      sources."uglify-js-3.10.1"
       sources."unix-dgram-2.0.4"
       sources."unpipe-1.0.0"
       sources."uri-js-4.2.2"
@@ -73699,7 +75474,7 @@ in
         ];
       })
       sources."blob-to-buffer-1.2.8"
-      sources."bn.js-4.11.8"
+      sources."bn.js-4.11.9"
       sources."bncode-0.5.3"
       sources."bonjour-3.5.0"
       sources."bplist-creator-0.0.6"
@@ -73716,9 +75491,9 @@ in
       sources."camelcase-keys-2.1.0"
       sources."chalk-1.1.3"
       sources."chardet-0.4.2"
-      sources."chrome-dgram-3.0.4"
+      sources."chrome-dgram-3.0.5"
       sources."chrome-dns-1.0.1"
-      sources."chrome-net-3.3.3"
+      sources."chrome-net-3.3.4"
       sources."cli-cursor-2.1.0"
       sources."cli-width-2.2.1"
       sources."clivas-0.2.0"
@@ -73744,7 +75519,7 @@ in
       sources."dns-txt-2.0.2"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."escape-string-regexp-1.0.5"
       sources."external-editor-2.2.0"
@@ -73782,7 +75557,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.19"
           sources."string-width-2.1.1"
           sources."strip-ansi-4.0.0"
           sources."supports-color-5.5.0"
@@ -73794,11 +75569,11 @@ in
       sources."ipaddr.js-1.9.1"
       sources."is-arguments-1.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-callable-1.1.5"
+      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.0.5"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."is-utf8-0.2.1"
       sources."isarray-1.0.0"
@@ -73814,10 +75589,10 @@ 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.5"
+      sources."mime-2.4.6"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -73834,7 +75609,7 @@ in
       sources."number-is-nan-1.0.1"
       sources."numeral-2.0.6"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-is-1.1.2"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.0"
@@ -73905,7 +75680,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"
@@ -73916,16 +75691,14 @@ in
         ];
       })
       sources."single-line-log-1.1.2"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."speedometer-0.1.4"
       sources."stream-buffers-2.2.0"
       sources."string-width-1.0.2"
       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."string2compact-1.3.0"
       sources."string_decoder-1.1.1"
@@ -73972,7 +75745,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Streaming torrent client for Node.js";
-      homepage = "https://github.com/mafintosh/peerflix";
+      homepage = https://github.com/mafintosh/peerflix;
       license = "MIT";
     };
     production = true;
@@ -73991,7 +75764,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.3"
       sources."archiver-3.1.1"
       (sources."archiver-utils-2.1.0" // {
         dependencies = [
@@ -74006,7 +75779,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."backo2-1.0.2"
       sources."balanced-match-1.0.0"
       sources."base64-arraybuffer-0.1.5"
@@ -74027,7 +75800,7 @@ in
       })
       sources."bl-4.0.2"
       sources."blob-0.0.5"
-      sources."bn.js-4.11.8"
+      sources."bn.js-4.11.9"
       sources."bncode-0.5.3"
       sources."body-parser-1.19.0"
       sources."brace-expansion-1.1.11"
@@ -74042,9 +75815,9 @@ in
       sources."bytes-3.1.0"
       sources."callsite-1.0.0"
       sources."caseless-0.12.0"
-      sources."chrome-dgram-3.0.4"
+      sources."chrome-dgram-3.0.5"
       sources."chrome-dns-1.0.1"
-      sources."chrome-net-3.3.3"
+      sources."chrome-net-3.3.4"
       sources."combined-stream-1.0.8"
       sources."compact2string-1.4.1"
       sources."component-bind-1.0.0"
@@ -74079,15 +75852,16 @@ in
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-3.4.1" // {
+      (sources."engine.io-3.4.2" // {
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
           sources."ms-2.1.2"
         ];
       })
-      (sources."engine.io-client-3.4.1" // {
+      (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"
@@ -74099,9 +75873,8 @@ in
       sources."express-4.17.1"
       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."fd-slicer-1.1.0"
       sources."fifo-0.1.4"
       sources."finalhandler-1.1.2"
       sources."flatten-0.0.1"
@@ -74118,7 +75891,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"
@@ -74166,7 +75939,7 @@ in
           sources."readable-stream-2.3.7"
         ];
       })
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."lodash.defaults-4.2.0"
       sources."lodash.difference-4.5.0"
       sources."lodash.flatten-4.4.0"
@@ -74191,7 +75964,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"
@@ -74220,7 +75999,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"
@@ -74256,7 +76034,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 = [
@@ -74291,7 +76069,7 @@ in
           })
         ];
       })
-      (sources."socket.io-parser-3.4.0" // {
+      (sources."socket.io-parser-3.4.1" // {
         dependencies = [
           sources."debug-4.1.1"
           sources."isarray-2.0.1"
@@ -74303,7 +76081,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"
@@ -74334,7 +76112,7 @@ in
       sources."verror-1.10.0"
       sources."which-1.3.1"
       sources."wrappy-1.0.2"
-      sources."ws-7.2.5"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."xtend-4.0.2"
       sources."yeast-0.1.2"
@@ -74353,15 +76131,15 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "4.14.2";
+    version = "5.4.12";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-4.14.2.tgz";
-      sha512 = "srFTvu4mm2tzo+bt1QkahH3JJnBDXPbjboYOPSZRwocoyGcTxYgGr0aUHg6non0i8eFzbhUFqQiqG+iCJ5spbA==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-5.4.12.tgz";
+      sha512 = "//Oru9g26OvTCe6bID3AJNiJ8B5SRd0vQBRH1gpoWxDh5kdPPpV4pge4B6ncWJUIl0yAVB9sSmDqDDheJP5+xQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
       description = "Fast, disk space efficient package manager";
-      homepage = "https://pnpm.js.org/";
+      homepage = https://pnpm.js.org/;
       license = "MIT";
     };
     production = true;
@@ -74387,14 +76165,14 @@ in
       sources."argparse-1.0.10"
       sources."array-union-2.1.0"
       sources."at-least-node-1.0.0"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."braces-3.0.2"
       sources."caller-callsite-2.0.0"
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."camelcase-5.3.1"
-      sources."chalk-4.0.0"
-      sources."chokidar-3.4.0"
+      sources."chalk-4.1.0"
+      sources."chokidar-3.4.1"
       sources."cliui-6.0.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
@@ -74406,19 +76184,19 @@ in
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
-      sources."fast-glob-3.2.2"
-      sources."fastq-1.7.0"
+      sources."fast-glob-3.2.4"
+      sources."fastq-1.8.0"
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
-      sources."fs-extra-9.0.0"
+      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."glob-parent-5.1.1"
-      sources."globby-11.0.0"
+      sources."globby-11.0.1"
       sources."graceful-fs-4.2.4"
       sources."has-flag-4.0.0"
-      sources."ignore-5.1.4"
+      sources."ignore-5.1.8"
       sources."import-cwd-2.1.0"
       sources."import-fresh-2.0.0"
       sources."import-from-2.1.0"
@@ -74429,11 +76207,11 @@ in
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-number-7.0.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       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.19"
       (sources."log-symbols-2.2.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -74444,7 +76222,7 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."merge2-1.3.0"
+      sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
       sources."normalize-path-3.0.0"
       sources."p-limit-2.3.0"
@@ -74455,7 +76233,7 @@ in
       sources."path-type-4.0.0"
       sources."picomatch-2.2.2"
       sources."pify-2.3.0"
-      (sources."postcss-7.0.29" // {
+      (sources."postcss-7.0.32" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           (sources."chalk-2.4.2" // {
@@ -74500,7 +76278,7 @@ in
       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;
@@ -74524,7 +76302,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Prettier is an opinionated code formatter";
-      homepage = "https://prettier.io/";
+      homepage = https://prettier.io/;
       license = "MIT";
     };
     production = true;
@@ -74534,10 +76312,10 @@ in
   pscid = nodeEnv.buildNodePackage {
     name = "pscid";
     packageName = "pscid";
-    version = "2.9.0";
+    version = "2.9.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pscid/-/pscid-2.9.0.tgz";
-      sha512 = "YktAYj/QmnJ12jh3smI/XkhBJyYF8wNjdLRdR3FcU8MRQE0ryrYM23vri9hTIBoA5Fv3AXt3l2bcpAZ8Ota3aA==";
+      url = "https://registry.npmjs.org/pscid/-/pscid-2.9.3.tgz";
+      sha512 = "6N4chHbL38Km4kTrC7a9UJ4fpPsFV6BDwO3yZetdExN7agC+YGYLpVhLflFUlsZJ9VnUT9UToitwC/DqGnGSjA==";
     };
     dependencies = [
       sources."balanced-match-1.0.0"
@@ -74546,12 +76324,12 @@ in
       sources."fs.realpath-1.0.0"
       sources."gaze-1.1.3"
       sources."glob-7.1.6"
-      sources."globule-1.3.1"
+      sources."globule-1.3.2"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."isexe-2.0.0"
       sources."keypress-0.2.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."minimatch-3.0.4"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
@@ -74571,42 +76349,36 @@ in
   pulp = nodeEnv.buildNodePackage {
     name = "pulp";
     packageName = "pulp";
-    version = "14.0.0";
+    version = "15.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pulp/-/pulp-14.0.0.tgz";
-      sha512 = "K/s/BRG+AJpp+D3VES/c08kdxzMRKJYdZHIBnC27+6NS+3htwPPGRNTpPig+Sd6WKd5uZH3NASrBX+zgR5SQ6Q==";
+      url = "https://registry.npmjs.org/pulp/-/pulp-15.0.0.tgz";
+      sha512 = "JPzDiSjxwySAFOFnpevZO7YzzDgGdJP/SQap1UJbK0rsrfUVQC+zOHDkm7A8T3gR/0el4ft6KwB6fcDl2bTzVw==";
     };
     dependencies = [
       sources."JSONStream-1.3.5"
-      sources."acorn-7.1.1"
+      sources."acorn-7.4.0"
       sources."acorn-node-1.8.2"
-      sources."acorn-walk-7.1.1"
-      sources."ansi-escapes-3.2.0"
-      sources."ansi-regex-4.1.0"
-      sources."ansi-styles-3.2.1"
-      sources."append-type-1.0.2"
-      sources."arch-2.1.1"
-      sources."asn1.js-4.10.1"
+      sources."acorn-walk-7.2.0"
+      (sources."asn1.js-4.10.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       (sources."assert-1.5.0" // {
         dependencies = [
           sources."inherits-2.0.1"
           sources."util-0.10.3"
         ];
       })
-      sources."astral-regex-1.0.0"
       sources."async-1.5.2"
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
-      sources."bn.js-4.11.8"
+      sources."bn.js-5.1.2"
       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"
         ];
@@ -74621,29 +76393,26 @@ in
           sources."jsonparse-0.0.5"
         ];
       })
-      sources."browserify-rsa-4.0.1"
-      sources."browserify-sign-4.0.4"
+      (sources."browserify-rsa-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (sources."browserify-sign-4.2.1" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
       sources."browserify-zlib-0.2.0"
       sources."buffer-5.2.1"
       sources."buffer-crc32-0.2.13"
       sources."buffer-from-1.1.1"
       sources."buffer-xor-1.0.3"
-      sources."build-purescript-0.4.1"
       sources."builtin-status-codes-3.0.0"
-      sources."byline-5.0.0"
       sources."cached-path-relative-1.0.2"
-      sources."cancelable-pipeline-1.0.0"
-      sources."cancelable-pump-0.4.0"
-      sources."chalk-2.4.2"
-      sources."chownr-1.1.4"
       sources."cipher-base-1.0.4"
-      sources."clean-stack-2.2.0"
-      sources."cli-cursor-2.1.0"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
       sources."colors-1.4.0"
       sources."combine-source-map-0.8.0"
-      sources."commander-2.20.3"
       sources."concat-map-0.0.1"
       (sources."concat-stream-2.0.0" // {
         dependencies = [
@@ -74654,48 +76423,43 @@ 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"
+        ];
+      })
       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."dash-ast-1.0.0"
       sources."defined-1.0.0"
       sources."deps-sort-2.0.1"
       sources."des.js-1.0.1"
       sources."detective-5.2.0"
-      sources."diffie-hellman-5.0.3"
-      sources."dl-tar-0.8.1"
+      (sources."diffie-hellman-5.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."domain-browser-1.2.0"
-      sources."download-or-build-purescript-0.3.4"
-      sources."download-purescript-0.8.5"
-      sources."download-purescript-source-0.6.5"
       sources."duplexer2-0.1.4"
-      sources."elliptic-6.5.2"
-      sources."emoji-regex-7.0.3"
-      sources."end-of-stream-1.4.4"
+      (sources."elliptic-6.5.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."es6-promise-3.3.1"
-      sources."escape-string-regexp-1.0.5"
       sources."events-2.1.0"
       sources."evp_bytestokey-1.0.3"
-      sources."execa-1.0.0"
-      sources."executing-npm-path-1.0.0"
       sources."fast-safe-stringify-2.0.7"
-      sources."feint-1.0.3"
-      sources."file-to-npm-cache-0.1.0"
-      sources."filesize-4.2.1"
-      sources."find-pkg-dir-1.0.1"
-      sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."gaze-1.1.3"
       sources."get-assigned-identifiers-1.2.0"
-      sources."get-stream-4.1.0"
       sources."glob-7.1.6"
-      sources."globule-1.3.1"
+      sources."globule-1.3.2"
       sources."graceful-fs-4.2.4"
       sources."has-1.0.3"
-      sources."has-flag-3.0.0"
       (sources."hash-base-3.1.0" // {
         dependencies = [
           sources."readable-stream-3.6.0"
@@ -74706,7 +76470,6 @@ in
       sources."htmlescape-1.1.1"
       sources."https-browserify-1.0.0"
       sources."ieee754-1.1.13"
-      sources."import-package-1.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."inline-source-map-0.6.2"
@@ -74715,39 +76478,29 @@ in
           sources."concat-stream-1.6.2"
         ];
       })
-      sources."inspect-with-kind-1.0.5"
-      sources."install-purescript-0.7.0"
-      sources."install-purescript-cli-0.4.2"
       sources."is-buffer-1.1.6"
-      sources."is-fullwidth-code-point-2.0.0"
-      sources."is-plain-obj-1.1.0"
-      sources."is-stream-1.1.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."json-stable-stringify-0.0.1"
       sources."jsonify-0.0.0"
       sources."jsonparse-1.3.1"
-      sources."kind-of-6.0.3"
       sources."labeled-stream-splicer-2.0.2"
-      sources."load-from-cwd-or-npm-3.0.4"
-      sources."load-request-from-cwd-or-npm-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."lodash.memoize-3.0.4"
-      sources."log-symbols-3.0.0"
-      sources."log-update-3.4.0"
       sources."md5.js-1.3.5"
-      sources."miller-rabin-4.0.1"
+      (sources."miller-rabin-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."mime-1.6.0"
-      sources."mimic-fn-1.2.0"
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-2.9.0"
-      sources."minizlib-1.3.3"
       sources."mkdirp-0.5.5"
       sources."mkdirp-classic-0.5.3"
-      (sources."module-deps-6.2.2" // {
+      (sources."module-deps-6.2.3" // {
         dependencies = [
           sources."concat-stream-1.6.2"
         ];
@@ -74757,54 +76510,37 @@ in
           sources."through-2.2.7"
         ];
       })
-      sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
-      sources."neat-stack-1.0.1"
-      sources."nice-try-1.0.5"
       sources."node-static-0.7.11"
-      sources."npcache-1.0.2"
-      sources."npm-cache-env-2.0.0"
-      sources."npm-cache-path-2.0.0"
-      sources."npm-cli-dir-3.0.1"
-      sources."npm-cli-path-3.1.2"
-      sources."npm-cli-version-1.0.0"
-      sources."npm-run-path-2.0.2"
-      sources."npm-version-compare-1.0.1"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
-      sources."onetime-2.0.1"
       (sources."optimist-0.6.1" // {
         dependencies = [
           sources."minimist-0.0.10"
           sources."wordwrap-0.0.3"
         ];
       })
-      sources."optional-0.1.4"
       sources."os-browserify-0.3.0"
-      sources."p-finally-1.0.0"
       sources."pako-1.0.11"
       sources."parents-1.0.1"
       sources."parse-asn1-5.1.5"
       sources."path-browserify-0.0.1"
       sources."path-is-absolute-1.0.1"
-      sources."path-key-2.0.1"
       sources."path-parse-1.0.6"
       sources."path-platform-0.11.15"
-      sources."pause-fn-1.0.0"
-      sources."pause-methods-1.0.0"
-      sources."pbkdf2-3.0.17"
-      sources."platform-name-1.0.0"
+      sources."pbkdf2-3.1.1"
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
-      sources."public-encrypt-4.0.3"
-      sources."pump-3.0.0"
+      (sources."public-encrypt-4.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."punycode-1.4.1"
-      sources."purescript-0.12.5"
       sources."querystring-0.2.0"
       sources."querystring-es3-0.2.1"
       sources."randombytes-2.1.0"
       sources."randomfill-1.0.4"
-      sources."rate-map-1.0.5"
       sources."read-1.0.7"
       sources."read-only-stream-2.0.0"
       (sources."readable-stream-2.3.7" // {
@@ -74813,80 +76549,40 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."reject-unsatisfied-npm-version-1.0.0"
       sources."resolve-1.17.0"
-      sources."resolve-from-npm-3.1.0"
-      sources."restore-cursor-2.0.0"
       sources."rimraf-2.7.1"
       sources."ripemd160-2.0.2"
-      sources."run-in-dir-0.3.0"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."sander-0.5.1"
-      sources."semver-5.7.1"
       sources."sha.js-2.4.11"
       sources."shasum-1.0.2"
       sources."shasum-object-1.0.0"
-      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."simple-concat-1.0.0"
-      sources."size-rate-0.3.1"
-      sources."slice-ansi-2.1.0"
+      sources."simple-concat-1.0.1"
       sources."sorcery-0.10.0"
       sources."source-map-0.5.7"
-      (sources."source-map-support-0.5.19" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
       sources."sourcemap-codec-1.4.8"
-      sources."spawn-stack-0.7.0"
       sources."stream-browserify-2.0.2"
       sources."stream-combiner2-1.1.1"
-      (sources."stream-http-3.1.0" // {
+      (sources."stream-http-3.1.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
         ];
       })
       sources."stream-splicer-2.0.1"
-      sources."string-width-3.1.0"
       sources."string_decoder-1.3.0"
-      sources."strip-ansi-5.2.0"
-      sources."strip-eof-1.0.0"
       sources."subarg-1.0.0"
-      sources."supports-color-5.5.0"
       sources."syntax-error-1.4.0"
-      sources."tar-4.4.13"
       (sources."temp-0.9.1" // {
         dependencies = [
           sources."rimraf-2.6.3"
         ];
       })
-      (sources."terser-4.6.13" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
       sources."through-2.3.8"
       sources."through2-2.0.5"
-      sources."tilde-path-3.0.0"
       sources."timers-browserify-1.4.2"
       sources."tree-kill-1.2.2"
       sources."tty-browserify-0.0.1"
-      (sources."tty-truncate-1.0.5" // {
-        dependencies = [
-          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" // {
-            dependencies = [
-              sources."ansi-regex-5.0.0"
-            ];
-          })
-        ];
-      })
-      sources."tty-width-frame-1.0.3"
       sources."typedarray-0.0.6"
       sources."umd-3.0.3"
       sources."undeclared-identifiers-1.1.3"
@@ -74901,27 +76597,50 @@ in
         ];
       })
       sources."util-deprecate-1.0.2"
-      sources."vertical-meter-1.0.0"
       sources."vm-browserify-1.1.2"
       sources."which-1.3.1"
-      sources."win-user-installed-npm-cli-path-3.0.1"
       sources."wordwrap-1.0.0"
-      sources."wrap-ansi-5.1.0"
       sources."wrappy-1.0.2"
       sources."xtend-4.0.2"
-      sources."yallist-3.1.1"
-      sources."zen-observable-0.8.15"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "A build system for PureScript projects";
-      homepage = "https://github.com/purescript-contrib/pulp";
+      homepage = https://github.com/purescript-contrib/pulp;
       license = "LGPL-3.0+";
     };
     production = true;
     bypassCache = true;
     reconstructLock = true;
   };
+  purescript-language-server = nodeEnv.buildNodePackage {
+    name = "purescript-language-server";
+    packageName = "purescript-language-server";
+    version = "0.13.6";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/purescript-language-server/-/purescript-language-server-0.13.6.tgz";
+      sha512 = "0e7oA1gveyd8XLkBYcPWRC27PAFGTxpf6aVJWUfA79Q3lCCOP9BQBkr9a42FutP3q6GMc9TVW4mQ+xSEfhwOzA==";
+    };
+    dependencies = [
+      sources."isexe-2.0.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"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Language Server Protocol server for PureScript wrapping purs ide server functionality";
+      homepage = https://github.com/nwolverson/purescript-language-server;
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   purescript-psa = nodeEnv.buildNodePackage {
     name = "purescript-psa";
     packageName = "purescript-psa";
@@ -74940,6 +76659,42 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  purty = nodeEnv.buildNodePackage {
+    name = "purty";
+    packageName = "purty";
+    version = "6.2.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/purty/-/purty-6.2.0.tgz";
+      sha512 = "JfT8kJHSyxuOFQtRiH2x55SiPxXZsSdedQlZap8JehQ7KzB49B5C9cWwVybtSB36BdADQcxPvtw8D52z4EPnBw==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "PureScript pretty printer";
+      homepage = "https://gitlab.com/joneshf/purty#README";
+      license = "BSD-3-Clause";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  pyright = nodeEnv.buildNodePackage {
+    name = "pyright";
+    packageName = "pyright";
+    version = "1.1.59";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.59.tgz";
+      sha512 = "34PysYgl5bDdV7H4y5dv4fonKsJvI2H/YSDY6jvVtt0XI7Ld0k6lHzBZcVDO4kNLdJt0ekhwqC8w42oJyPYnWg==";
+    };
+    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";
@@ -74962,7 +76717,7 @@ in
       sources."cycle-1.0.3"
       sources."deep-equal-2.0.3"
       sources."define-properties-1.1.3"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-get-iterator-1.1.0"
       sources."es-to-primitive-1.2.1"
       sources."escape-string-regexp-1.0.5"
@@ -74980,11 +76735,11 @@ in
       sources."is-arguments-1.0.4"
       sources."is-bigint-1.0.0"
       sources."is-boolean-object-1.0.1"
-      sources."is-callable-1.1.5"
+      sources."is-callable-1.2.0"
       sources."is-date-object-1.0.2"
       sources."is-map-2.0.1"
       sources."is-number-object-1.0.4"
-      sources."is-regex-1.0.5"
+      sources."is-regex-1.1.1"
       sources."is-set-2.0.1"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
@@ -74998,7 +76753,7 @@ in
       sources."mkdirp-0.5.5"
       sources."mute-stream-0.0.8"
       sources."ncp-0.4.2"
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-is-1.1.2"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.0"
@@ -75014,8 +76769,6 @@ in
       sources."side-channel-1.0.2"
       sources."stack-trace-0.0.10"
       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."strip-ansi-3.0.1"
       sources."supports-color-2.0.0"
@@ -75087,25 +76840,427 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "A set of complementary tools to React, including the JSX transformer.";
-      homepage = "https://facebook.github.io/react";
+      homepage = https://facebook.github.io/react;
       license = "BSD-3-Clause";
     };
     production = true;
     bypassCache = true;
     reconstructLock = true;
   };
+  redoc-cli = nodeEnv.buildNodePackage {
+    name = "redoc-cli";
+    packageName = "redoc-cli";
+    version = "0.9.10";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.9.10.tgz";
+      sha512 = "2rfbQp8uNpQEw/4hRYes3fVrOAYfgK7jYw3t/A9R4EpMSF6jtzJLA/sl1SQh2zWaF5z1ckXEvUW9B8c+NDc//g==";
+    };
+    dependencies = [
+      sources."@babel/code-frame-7.10.4"
+      (sources."@babel/generator-7.11.0" // {
+        dependencies = [
+          sources."source-map-0.5.7"
+        ];
+      })
+      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.1"
+      sources."@babel/runtime-7.11.1"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.0"
+      sources."@babel/types-7.11.0"
+      (sources."@emotion/babel-utils-0.6.10" // {
+        dependencies = [
+          sources."source-map-0.7.3"
+        ];
+      })
+      sources."@emotion/hash-0.6.6"
+      (sources."@emotion/is-prop-valid-0.8.8" // {
+        dependencies = [
+          sources."@emotion/memoize-0.7.4"
+        ];
+      })
+      sources."@emotion/memoize-0.6.6"
+      sources."@emotion/serialize-0.9.1"
+      sources."@emotion/stylis-0.7.1"
+      sources."@emotion/unitless-0.6.7"
+      sources."@emotion/utils-0.8.2"
+      sources."@types/color-name-1.1.1"
+      sources."@types/node-13.13.15"
+      sources."@types/parse-json-4.0.0"
+      sources."abbrev-1.1.1"
+      sources."ajv-5.5.2"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-3.2.1"
+      sources."anymatch-3.1.1"
+      sources."argparse-1.0.10"
+      (sources."asn1.js-4.10.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (sources."assert-1.5.0" // {
+        dependencies = [
+          sources."util-0.10.3"
+        ];
+      })
+      (sources."babel-plugin-emotion-9.2.11" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+          sources."source-map-0.5.7"
+        ];
+      })
+      sources."babel-plugin-macros-2.8.0"
+      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."binary-extensions-2.1.0"
+      sources."bn.js-5.1.2"
+      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."callsites-3.1.0"
+      sources."camelcase-5.3.1"
+      sources."camelize-1.0.0"
+      sources."chalk-2.4.2"
+      sources."chokidar-3.4.1"
+      sources."cipher-base-1.0.4"
+      sources."classnames-2.2.6"
+      sources."clipboard-2.0.6"
+      sources."cliui-6.0.0"
+      sources."clsx-1.1.1"
+      sources."co-4.6.0"
+      sources."code-error-fragment-0.0.230"
+      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."convert-source-map-1.7.0" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."core-js-3.6.5"
+      sources."core-util-is-1.0.2"
+      sources."cosmiconfig-6.0.0"
+      (sources."create-ecdh-4.0.4" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."create-emotion-9.2.12"
+      sources."create-hash-1.2.0"
+      sources."create-hmac-1.1.7"
+      sources."crypto-browserify-3.12.0"
+      sources."css-color-keywords-1.0.0"
+      sources."css-to-react-native-3.0.0"
+      sources."csstype-2.6.13"
+      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."domain-browser-1.2.0"
+      sources."dompurify-2.0.12"
+      (sources."elliptic-6.5.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."emoji-regex-8.0.0"
+      sources."emotion-9.2.12"
+      sources."error-ex-1.3.2"
+      sources."es6-promise-3.3.1"
+      sources."escape-string-regexp-1.0.5"
+      sources."esprima-4.0.1"
+      sources."eventemitter3-4.0.4"
+      sources."events-3.2.0"
+      sources."evp_bytestokey-1.0.3"
+      sources."fast-deep-equal-1.1.0"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-safe-stringify-2.0.7"
+      sources."fill-range-7.0.1"
+      sources."find-root-1.1.0"
+      sources."find-up-4.1.0"
+      sources."foreach-2.0.5"
+      sources."format-util-1.0.5"
+      sources."fsevents-2.1.3"
+      sources."get-caller-file-2.0.5"
+      sources."glob-parent-5.1.1"
+      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."import-fresh-3.2.1"
+      sources."inherits-2.0.1"
+      sources."is-arrayish-0.2.1"
+      sources."is-binary-path-2.1.0"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-number-7.0.0"
+      sources."isarray-2.0.5"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.0"
+      sources."jsesc-2.5.2"
+      sources."json-parse-better-errors-1.0.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."jsonpointer-4.1.0"
+      sources."leven-3.1.0"
+      sources."lines-and-columns-1.1.6"
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.19"
+      sources."loose-envify-1.4.0"
+      sources."lunr-2.3.8"
+      sources."mark.js-8.11.1"
+      sources."marked-0.7.0"
+      sources."md5.js-1.3.5"
+      sources."memoize-one-5.1.1"
+      (sources."miller-rabin-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      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.4"
+      sources."mobx-react-6.2.5"
+      sources."mobx-react-lite-2.0.7"
+      sources."ms-2.1.2"
+      sources."neo-async-2.6.2"
+      sources."node-fetch-h2-2.3.0"
+      sources."node-libs-browser-2.2.1"
+      sources."node-readfiles-0.2.0"
+      sources."nopt-1.0.10"
+      sources."normalize-path-3.0.0"
+      sources."oas-kit-common-1.0.8"
+      sources."oas-linter-3.1.3"
+      sources."oas-resolver-2.4.2"
+      sources."oas-schema-walker-1.1.5"
+      sources."oas-validator-4.0.7"
+      sources."object-assign-4.1.1"
+      sources."ono-4.0.11"
+      sources."openapi-sampler-1.0.0-beta.16"
+      sources."os-browserify-0.3.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
+      sources."pako-1.0.11"
+      sources."parent-module-1.0.1"
+      sources."parse-asn1-5.1.5"
+      sources."parse-json-5.0.1"
+      sources."path-browserify-0.0.1"
+      sources."path-exists-4.0.0"
+      sources."path-parse-1.0.6"
+      sources."path-type-4.0.0"
+      sources."pbkdf2-3.1.1"
+      sources."perfect-scrollbar-1.5.0"
+      sources."picomatch-2.2.2"
+      sources."polished-3.6.5"
+      sources."postcss-value-parser-4.1.0"
+      sources."prismjs-1.20.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."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-aria-2.0.7"
+      sources."react-is-16.13.1"
+      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.36"
+      sources."reftools-1.1.4"
+      sources."regenerator-runtime-0.13.7"
+      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."ripemd160-2.0.2"
+      sources."safe-buffer-5.2.1"
+      sources."scheduler-0.19.1"
+      sources."select-1.1.2"
+      sources."set-blocking-2.0.0"
+      sources."setimmediate-1.0.5"
+      sources."sha.js-2.4.11"
+      sources."shallowequal-1.1.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."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-4.2.0"
+      sources."string_decoder-1.3.0"
+      sources."strip-ansi-6.0.0"
+      (sources."styled-components-5.1.1" // {
+        dependencies = [
+          sources."@emotion/stylis-0.8.5"
+          sources."@emotion/unitless-0.7.5"
+        ];
+      })
+      sources."stylis-3.5.4"
+      sources."stylis-rule-sheet-0.0.10"
+      sources."supports-color-5.5.0"
+      sources."swagger2openapi-6.2.2"
+      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."touch-2.0.2"
+      sources."tslib-2.0.0"
+      sources."tty-browserify-0.0.0"
+      sources."uglify-js-3.10.1"
+      (sources."url-0.11.0" // {
+        dependencies = [
+          sources."punycode-1.3.2"
+        ];
+      })
+      sources."url-template-2.0.8"
+      (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-module-2.0.0"
+      sources."wordwrap-1.0.0"
+      (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."xtend-4.0.2"
+      sources."y18n-4.0.0"
+      sources."yaml-1.10.0"
+      sources."yargs-15.4.1"
+      sources."yargs-parser-18.1.3"
+    ];
+    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";
-    version = "3.9.2";
+    version = "4.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/reveal.js/-/reveal.js-3.9.2.tgz";
-      sha512 = "Dvv2oA9FrtOHE2DWj5js8pMRfwq++Wmvsn1EyAdYLC80lBjTphns+tPsB652Bnvep9AVviuVS/b4XoVY9rXHLA==";
+      url = "https://registry.npmjs.org/reveal.js/-/reveal.js-4.0.2.tgz";
+      sha512 = "LWZSUenufF1gpD7npxJ7KfoQQFKgc1D6XrLTFgKlwWNP1BQ74hT48KONFWMAw+8R/QUeaScCLCLrBVHDfFIEiw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
       description = "The HTML Presentation Framework";
-      homepage = "https://revealjs.com/";
+      homepage = https://revealjs.com/;
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  rollup = nodeEnv.buildNodePackage {
+    name = "rollup";
+    packageName = "rollup";
+    version = "2.23.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/rollup/-/rollup-2.23.0.tgz";
+      sha512 = "vLNmZFUGVwrnqNAJ/BvuLk1MtWzu4IuoqsH9UWK5AIdO3rt8/CSiJNvPvCIvfzrbNsqKbNzPAG1V2O4eTe2XZg==";
+    };
+    dependencies = [
+      sources."fsevents-2.1.3"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Next-generation ES module bundler";
+      homepage = https://rollupjs.org/;
       license = "MIT";
     };
     production = true;
@@ -75118,49 +77273,81 @@ in
     version = "0.4.0-dev";
     src = ../../misc/vscode-extensions/rust-analyzer/build-deps;
     dependencies = [
-      sources."@babel/code-frame-7.8.3"
-      sources."@babel/helper-validator-identifier-7.9.5"
-      sources."@babel/highlight-7.9.0"
-      sources."@rollup/plugin-commonjs-11.1.0"
-      sources."@rollup/plugin-node-resolve-7.1.3"
-      sources."@rollup/pluginutils-3.0.10"
+      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-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/json-schema-7.0.4"
-      sources."@types/node-12.12.37"
+      sources."@types/glob-7.1.3"
+      sources."@types/json-schema-7.0.5"
+      sources."@types/minimatch-3.0.3"
+      sources."@types/mocha-7.0.2"
+      sources."@types/node-12.7.12"
       sources."@types/node-fetch-2.5.7"
-      sources."@types/resolve-0.0.8"
-      sources."@types/vscode-1.44.0"
-      sources."@typescript-eslint/eslint-plugin-2.31.0"
-      sources."@typescript-eslint/experimental-utils-2.31.0"
-      sources."@typescript-eslint/parser-2.31.0"
-      sources."@typescript-eslint/typescript-estree-2.31.0"
-      sources."acorn-7.1.1"
-      sources."acorn-jsx-5.2.0"
-      sources."ajv-6.12.2"
-      (sources."ansi-escapes-4.3.1" // {
+      sources."@types/resolve-1.17.1"
+      sources."@types/vscode-1.47.0"
+      (sources."@typescript-eslint/eslint-plugin-3.8.0" // {
         dependencies = [
-          sources."type-fest-0.11.0"
+          sources."semver-7.3.2"
         ];
       })
+      sources."@typescript-eslint/experimental-utils-3.8.0"
+      sources."@typescript-eslint/parser-3.8.0"
+      sources."@typescript-eslint/types-3.8.0"
+      (sources."@typescript-eslint/typescript-estree-3.8.0" // {
+        dependencies = [
+          sources."semver-7.3.2"
+        ];
+      })
+      sources."@typescript-eslint/visitor-keys-3.8.0"
+      sources."acorn-7.4.0"
+      sources."acorn-jsx-5.2.0"
+      sources."agent-base-4.3.0"
+      sources."ajv-6.12.3"
+      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"
       sources."balanced-match-1.0.0"
+      sources."binary-extensions-2.1.0"
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."browser-stdout-1.3.1"
       sources."buffer-crc32-0.2.13"
       sources."builtin-modules-3.1.0"
       sources."callsites-3.1.0"
-      sources."chalk-2.4.2"
-      sources."chardet-0.7.0"
+      sources."camelcase-5.3.1"
+      (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.1.0"
+        ];
+      })
       sources."cheerio-1.0.0-rc.3"
-      sources."cli-cursor-3.1.0"
-      sources."cli-width-2.2.1"
+      sources."chokidar-3.3.1"
+      (sources."cliui-5.0.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."combined-stream-1.0.8"
@@ -75168,17 +77355,18 @@ in
       sources."commandpost-1.4.0"
       sources."commondir-1.0.1"
       sources."concat-map-0.0.1"
-      (sources."cross-spawn-6.0.5" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
+      sources."cross-spawn-7.0.3"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
-      sources."debug-4.1.1"
+      sources."debug-4.2.0"
+      sources."decamelize-1.2.0"
+      sources."deep-freeze-0.0.1"
       sources."deep-is-0.1.3"
+      sources."deepmerge-4.2.2"
+      sources."define-properties-1.1.3"
       sources."delayed-stream-1.0.0"
       sources."denodeify-1.2.1"
+      sources."diff-4.0.2"
       sources."doctrine-3.0.0"
       sources."dom-serializer-0.1.1"
       sources."domelementtype-1.3.1"
@@ -75189,19 +77377,25 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."emoji-regex-8.0.0"
+      sources."emoji-regex-7.0.3"
+      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-6.8.0" // {
+      (sources."eslint-7.6.0" // {
         dependencies = [
-          sources."eslint-utils-1.4.3"
-          sources."regexpp-2.0.1"
+          sources."semver-7.3.2"
         ];
       })
-      sources."eslint-scope-5.0.0"
-      sources."eslint-utils-2.0.0"
-      sources."eslint-visitor-keys-1.1.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 = [
@@ -75212,84 +77406,123 @@ in
       sources."estraverse-4.3.0"
       sources."estree-walker-1.0.1"
       sources."esutils-2.0.3"
-      sources."external-editor-3.1.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-levenshtein-2.0.6"
       sources."fd-slicer-1.1.0"
-      sources."figures-3.2.0"
       sources."file-entry-cache-5.0.1"
+      sources."fill-range-7.0.1"
+      sources."find-up-4.1.0"
+      sources."flat-4.1.0"
       sources."flat-cache-2.0.1"
       sources."flatted-2.0.2"
       sources."form-data-3.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."get-caller-file-2.0.5"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.1"
       sources."globals-12.4.0"
+      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."htmlparser2-3.10.1"
-      sources."iconv-lite-0.4.24"
+      (sources."http-proxy-agent-2.1.0" // {
+        dependencies = [
+          sources."debug-3.1.0"
+          sources."ms-2.0.0"
+        ];
+      })
+      (sources."https-proxy-agent-2.2.4" // {
+        dependencies = [
+          sources."debug-3.2.6"
+        ];
+      })
       sources."ignore-4.0.6"
       sources."import-fresh-3.2.1"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      (sources."inquirer-7.1.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."strip-ansi-6.0.0"
-          sources."supports-color-7.1.0"
-        ];
-      })
+      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-3.0.0"
+      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-reference-1.1.4"
+      sources."is-number-7.0.0"
+      sources."is-plain-obj-1.1.0"
+      sources."is-reference-1.2.1"
+      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.13.1"
+      sources."js-yaml-3.14.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
-      sources."jsonc-parser-2.2.1"
       sources."leven-3.1.0"
-      sources."levn-0.3.0"
+      sources."levn-0.4.1"
       sources."linkify-it-2.2.0"
-      sources."lodash-4.17.15"
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.19"
+      (sources."log-symbols-3.0.0" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
       sources."lru-cache-4.1.5"
       sources."magic-string-0.25.7"
       (sources."markdown-it-10.0.0" // {
         dependencies = [
-          sources."entities-2.0.0"
+          sources."entities-2.0.3"
         ];
       })
       sources."mdurl-1.0.1"
       sources."mime-1.6.0"
       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."mkdirp-0.5.5"
+      (sources."mocha-8.1.1" // {
+        dependencies = [
+          sources."debug-3.2.6"
+          sources."has-flag-4.0.0"
+          sources."js-yaml-3.13.1"
+          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."nice-try-1.0.5"
       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."once-1.4.0"
-      sources."onetime-5.1.0"
-      sources."optionator-0.8.3"
+      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-4.1.0"
+      sources."p-try-2.2.0"
       sources."parent-module-1.0.1"
       (sources."parse-semver-1.1.1" // {
         dependencies = [
@@ -75297,91 +77530,123 @@ in
         ];
       })
       sources."parse5-3.0.3"
+      sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-key-2.0.1"
+      sources."path-key-3.1.1"
       sources."path-parse-1.0.6"
       sources."pend-1.2.0"
       sources."picomatch-2.2.2"
-      sources."prelude-ls-1.1.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.3.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."restore-cursor-3.1.0"
       sources."rimraf-2.6.3"
-      sources."rollup-2.7.6"
-      sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
-      sources."safe-buffer-5.2.0"
-      sources."safer-buffer-2.1.2"
+      sources."rollup-2.23.0"
+      sources."safe-buffer-5.2.1"
       sources."semver-6.3.0"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.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"
       sources."sigmund-1.0.1"
-      sources."signal-exit-3.0.3"
-      (sources."slice-ansi-2.1.0" // {
-        dependencies = [
-          sources."is-fullwidth-code-point-2.0.0"
-        ];
-      })
+      sources."slice-ansi-2.1.0"
       sources."sourcemap-codec-1.4.8"
       sources."sprintf-js-1.0.3"
-      (sources."string-width-4.2.0" // {
-        dependencies = [
-          sources."strip-ansi-6.0.0"
-        ];
-      })
-      sources."string_decoder-1.3.0"
-      (sources."strip-ansi-5.2.0" // {
+      (sources."string-width-3.1.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
+          sources."strip-ansi-5.2.0"
         ];
       })
-      sources."strip-json-comments-3.1.0"
+      sources."string.prototype.trimend-1.0.1"
+      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.1"
       sources."supports-color-5.5.0"
-      (sources."table-5.4.6" // {
+      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."tsutils-3.17.1" // {
         dependencies = [
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
+          sources."tslib-1.13.0"
         ];
       })
-      sources."text-table-0.2.0"
-      sources."through-2.3.8"
-      sources."tmp-0.0.33"
-      sources."tslib-1.11.1"
-      sources."tsutils-3.17.1"
       sources."tunnel-0.0.4"
-      sources."type-check-0.3.2"
+      sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
       sources."typed-rest-client-1.2.0"
-      sources."typescript-3.8.3"
+      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."url-join-1.1.0"
       sources."util-deprecate-1.0.2"
-      sources."v8-compile-cache-2.1.0"
-      (sources."vsce-1.75.0" // {
+      sources."v8-compile-cache-2.1.1"
+      (sources."vsce-1.77.0" // {
         dependencies = [
+          sources."chalk-2.4.2"
           sources."semver-5.7.1"
-          sources."tmp-0.0.29"
         ];
       })
       sources."vscode-jsonrpc-5.1.0-next.1"
       sources."vscode-languageclient-7.0.0-next.1"
       sources."vscode-languageserver-protocol-3.16.0-next.2"
       sources."vscode-languageserver-types-3.16.0-next.1"
-      sources."which-1.3.1"
+      sources."vscode-test-1.4.0"
+      sources."which-2.0.2"
+      sources."which-module-2.0.0"
+      (sources."wide-align-1.1.3" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
       sources."word-wrap-1.2.3"
+      sources."workerpool-6.0.0"
+      (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."write-1.0.3"
+      sources."y18n-4.0.0"
       sources."yallist-2.1.2"
+      (sources."yargs-13.3.2" // {
+        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."yargs-parser-13.1.2"
+      (sources."yargs-unparser-1.6.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."yargs-14.2.3"
+          sources."yargs-parser-15.0.1"
+        ];
+      })
       sources."yauzl-2.10.0"
       sources."yazl-2.5.1"
     ];
@@ -75401,13 +77666,13 @@ in
       sha1 = "c8fa1fffb8258ce68adf75df73f90fbb6f23d198";
     };
     dependencies = [
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       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.9.1"
+      sources."aws4-1.10.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."buffer-crc32-0.2.1"
       sources."bytes-0.2.1"
@@ -75426,7 +77691,7 @@ in
       sources."crc-0.2.0"
       sources."crypto-0.0.3"
       sources."dashdash-1.14.1"
-      sources."debug-4.1.1"
+      sources."debug-4.2.0"
       sources."delayed-stream-1.0.0"
       sources."ecc-jsbn-0.1.2"
       sources."events.node-0.4.9"
@@ -75449,7 +77714,7 @@ 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."forever-agent-0.6.1"
       sources."form-data-2.3.3"
@@ -75457,7 +77722,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"
@@ -75498,7 +77763,7 @@ in
       sources."raw-body-0.0.3"
       sources."readable-stream-1.1.14"
       sources."request-2.9.203"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
       sources."send-0.1.4"
@@ -75545,10 +77810,10 @@ in
   serve = nodeEnv.buildNodePackage {
     name = "serve";
     packageName = "serve";
-    version = "11.3.0";
+    version = "11.3.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/serve/-/serve-11.3.0.tgz";
-      sha512 = "AU0g50Q1y5EVFX56bl0YX5OtVjUX1N737/Htj93dQGKuHiuLvVB45PD8Muar70W6Kpdlz8aNJfoUqTyAq9EE/A==";
+      url = "https://registry.npmjs.org/serve/-/serve-11.3.2.tgz";
+      sha512 = "yKWQfI3xbj/f7X1lTBg91fXBP0FqjJ4TEi+ilES5yzH0iKJpN5LjNb1YzIfQg9Rqn4ECUS2SOf2+Kmepogoa5w==";
     };
     dependencies = [
       sources."@zeit/schemas-2.6.0"
@@ -75557,7 +77822,7 @@ in
       sources."ansi-align-2.0.0"
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
-      sources."arch-2.1.1"
+      sources."arch-2.1.2"
       sources."arg-2.0.0"
       sources."balanced-match-1.0.0"
       sources."boxen-1.3.0"
@@ -75616,7 +77881,7 @@ in
       sources."registry-auth-token-3.3.2"
       sources."registry-url-3.1.0"
       sources."safe-buffer-5.1.2"
-      (sources."serve-handler-6.1.2" // {
+      (sources."serve-handler-6.1.3" // {
         dependencies = [
           sources."mime-db-1.33.0"
           sources."mime-types-2.1.18"
@@ -75651,135 +77916,119 @@ in
   serverless = nodeEnv.buildNodePackage {
     name = "serverless";
     packageName = "serverless";
-    version = "1.69.0";
+    version = "1.78.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/serverless/-/serverless-1.69.0.tgz";
-      sha512 = "af4gBZeto9JCkObSErzSXI+UcxoGNxUP4oQq7b/+QoCFa0NYjO4lCtW66MD6ONYg0YxDEukTQwzgkbD9VmunWg==";
+      url = "https://registry.npmjs.org/serverless/-/serverless-1.78.1.tgz";
+      sha512 = "Dw3x2+fnZ+Tgb3nGTYfGe78AIT/AOda8gttwKAoCUPScNDoF8Hjy8YvLuqLQg/o7daWouFUCHQ9Mv0ehN/Qazg==";
     };
     dependencies = [
       sources."2-thenable-1.0.0"
-      sources."@babel/parser-7.9.6"
+      sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.scandir-2.1.3"
       sources."@nodelib/fs.stat-2.0.3"
       sources."@nodelib/fs.walk-1.2.4"
-      sources."@serverless/cli-1.4.0"
-      (sources."@serverless/component-metrics-1.0.8" // {
-        dependencies = [
-          sources."node-fetch-2.6.0"
-        ];
-      })
-      (sources."@serverless/components-2.30.5" // {
+      sources."@protobufjs/aspromise-1.1.2"
+      sources."@protobufjs/base64-1.1.2"
+      sources."@protobufjs/codegen-2.0.4"
+      sources."@protobufjs/eventemitter-1.1.0"
+      sources."@protobufjs/fetch-1.1.0"
+      sources."@protobufjs/float-1.0.2"
+      sources."@protobufjs/inquire-1.1.0"
+      sources."@protobufjs/path-1.1.2"
+      sources."@protobufjs/pool-1.1.0"
+      sources."@protobufjs/utf8-1.1.0"
+      sources."@serverless/cli-1.5.2"
+      sources."@serverless/component-metrics-1.0.8"
+      (sources."@serverless/components-2.34.1" // {
         dependencies = [
-          sources."fs-extra-8.1.0"
           sources."globby-10.0.2"
-          sources."uuid-3.4.0"
+          sources."semver-7.3.2"
         ];
       })
       (sources."@serverless/core-1.1.2" // {
         dependencies = [
           sources."fs-extra-7.0.1"
-          sources."semver-6.3.0"
-        ];
-      })
-      (sources."@serverless/enterprise-plugin-3.6.9" // {
-        dependencies = [
-          sources."fs-extra-8.1.0"
-          sources."node-fetch-2.6.0"
-          sources."semver-6.3.0"
-          sources."uuid-3.4.0"
         ];
       })
+      sources."@serverless/enterprise-plugin-3.7.0"
       sources."@serverless/event-mocks-1.1.1"
-      (sources."@serverless/inquirer-1.1.0" // {
-        dependencies = [
-          sources."ansi-regex-5.0.0"
-          sources."chalk-3.0.0"
-          sources."inquirer-7.1.0"
-          sources."strip-ansi-6.0.0"
-        ];
-      })
-      (sources."@serverless/platform-client-0.25.7" // {
-        dependencies = [
-          sources."https-proxy-agent-5.0.0"
-        ];
-      })
-      (sources."@serverless/platform-client-china-1.0.9" // {
+      sources."@serverless/inquirer-1.1.2"
+      sources."@serverless/platform-client-1.1.1"
+      (sources."@serverless/platform-client-china-1.0.32" // {
         dependencies = [
-          sources."https-proxy-agent-5.0.0"
+          sources."archiver-4.0.2"
+          sources."async-3.2.0"
         ];
       })
-      (sources."@serverless/platform-sdk-2.3.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."uuid-3.4.0"
           sources."ws-6.2.1"
         ];
       })
       sources."@serverless/template-1.1.3"
-      (sources."@serverless/utils-china-0.1.7" // {
-        dependencies = [
-          sources."https-proxy-agent-5.0.0"
-        ];
-      })
+      sources."@serverless/utils-1.2.0"
+      sources."@serverless/utils-china-0.1.22"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@tencent-sdk/capi-0.2.15"
-      sources."@types/color-name-1.1.1"
-      sources."@types/events-3.0.0"
-      sources."@types/glob-7.1.1"
-      sources."@types/lodash-4.14.150"
+      sources."@tencent-sdk/capi-0.2.17"
+      sources."@types/caseless-0.12.2"
+      sources."@types/chalk-2.2.0"
+      sources."@types/glob-7.1.3"
+      sources."@types/lodash-4.14.158"
+      sources."@types/long-4.0.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.13.4"
-      (sources."@typescript-eslint/typescript-estree-2.31.0" // {
-        dependencies = [
-          sources."semver-6.3.0"
-        ];
-      })
-      sources."adm-zip-0.4.14"
+      sources."@types/node-14.0.27"
+      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."adm-zip-0.4.16"
       sources."after-0.8.2"
-      sources."agent-base-6.0.0"
-      sources."ajv-6.12.2"
+      sources."agent-base-5.1.1"
+      sources."ajv-6.12.3"
       (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."ansi-escapes-4.3.1"
       sources."ansi-regex-4.1.0"
-      sources."ansi-styles-4.2.1"
+      sources."ansi-styles-3.2.1"
       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"
         ];
       })
-      (sources."archiver-1.3.0" // {
+      (sources."archiver-3.1.1" // {
         dependencies = [
           sources."async-2.6.3"
+          (sources."compress-commons-2.1.1" // {
+            dependencies = [
+              sources."readable-stream-2.3.7"
+            ];
+          })
           sources."isarray-1.0.0"
-          sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
           sources."string_decoder-1.1.1"
+          sources."zip-stream-2.1.3"
         ];
       })
-      (sources."archiver-utils-1.3.0" // {
+      (sources."archiver-utils-2.1.0" // {
         dependencies = [
           sources."isarray-1.0.0"
-          sources."normalize-path-2.1.1"
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
           sources."string_decoder-1.1.1"
         ];
       })
-      (sources."argparse-1.0.10" // {
-        dependencies = [
-          sources."sprintf-js-1.0.3"
-        ];
-      })
+      sources."argparse-1.0.10"
       sources."arr-diff-4.0.0"
+      sources."arr-flatten-1.1.0"
       sources."arr-union-3.1.0"
       sources."array-union-2.1.0"
       sources."array-uniq-1.0.3"
@@ -75788,20 +78037,19 @@ 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-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.669.0" // {
+      (sources."aws-sdk-2.726.0" // {
         dependencies = [
-          sources."buffer-4.9.1"
+          sources."buffer-4.9.2"
           sources."isarray-1.0.0"
           sources."uuid-3.3.2"
         ];
       })
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."axios-0.19.2"
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.0"
@@ -75814,29 +78062,12 @@ in
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."better-assert-1.0.2"
-      sources."binary-extensions-2.0.0"
-      (sources."bl-1.2.2" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-          (sources."readable-stream-2.3.7" // {
-            dependencies = [
-              sources."safe-buffer-5.1.2"
-            ];
-          })
-          (sources."string_decoder-1.1.1" // {
-            dependencies = [
-              sources."safe-buffer-5.1.2"
-            ];
-          })
-        ];
-      })
+      sources."binary-extensions-2.1.0"
+      sources."bl-4.0.2"
       sources."blob-0.0.5"
       sources."bluebird-3.7.2"
-      sources."boolean-3.0.1"
       (sources."boxen-3.2.0" // {
         dependencies = [
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-3.1.0"
           sources."type-fest-0.3.1"
         ];
@@ -75858,27 +78089,21 @@ in
         ];
       })
       sources."cachedir-2.3.0"
+      sources."call-me-maybe-1.0.1"
       sources."callsite-1.0.0"
       sources."camelcase-5.3.1"
       sources."capture-stack-trace-1.0.1"
       sources."caseless-0.12.0"
       sources."caw-2.0.1"
-      (sources."chalk-2.4.2" // {
-        dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
-        ];
-      })
+      sources."chalk-2.4.2"
       sources."chardet-0.7.0"
       (sources."child-process-ext-2.1.1" // {
         dependencies = [
           sources."cross-spawn-6.0.5"
+          sources."semver-5.7.1"
         ];
       })
-      sources."chokidar-3.4.0"
+      sources."chokidar-3.4.1"
       sources."ci-info-1.6.0"
       (sources."class-utils-0.3.6" // {
         dependencies = [
@@ -75904,18 +78129,13 @@ in
           sources."ansi-regex-2.1.1"
         ];
       })
-      sources."cli-cursor-3.1.0"
+      sources."cli-cursor-2.1.0"
       sources."cli-width-2.2.1"
       sources."clone-response-1.0.2"
       sources."collection-visit-1.0.0"
-      (sources."color-3.0.0" // {
-        dependencies = [
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-        ];
-      })
-      sources."color-convert-2.0.1"
-      sources."color-name-1.1.4"
+      sources."color-3.0.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
       sources."color-string-1.5.3"
       sources."colornames-1.1.1"
       sources."colors-1.3.3"
@@ -75925,10 +78145,9 @@ in
       sources."component-bind-1.0.0"
       sources."component-emitter-1.2.1"
       sources."component-inherit-0.0.3"
-      (sources."compress-commons-1.2.2" // {
+      (sources."compress-commons-3.0.0" // {
         dependencies = [
           sources."isarray-1.0.0"
-          sources."normalize-path-2.1.1"
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
           sources."string_decoder-1.1.1"
@@ -75936,31 +78155,17 @@ 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.2"
       (sources."content-disposition-0.5.3" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."cookie-0.3.1"
       sources."cookiejar-2.1.2"
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.6.5"
       sources."core-util-is-1.0.2"
       sources."crc-3.8.0"
-      (sources."crc32-stream-2.0.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."crc32-stream-3.0.1"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-5.1.0"
       sources."crypto-random-string-1.0.0"
@@ -75970,23 +78175,26 @@ in
         ];
       })
       sources."dashdash-1.14.1"
-      sources."dayjs-1.8.26"
-      sources."debug-4.1.1"
+      sources."dayjs-1.8.32"
+      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"
+      (sources."decompress-tar-4.1.1" // {
+        dependencies = [
+          sources."bl-1.2.2"
+          sources."isarray-1.0.0"
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+          sources."tar-stream-1.6.2"
+        ];
+      })
       (sources."decompress-tarbz2-4.1.1" // {
         dependencies = [
           sources."file-type-6.2.0"
@@ -76001,23 +78209,11 @@ 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."detect-node-2.0.4"
-      sources."detective-amd-3.0.0"
-      sources."detective-cjs-3.1.1"
-      sources."detective-es6-2.1.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.7.0"
       sources."diagnostics-1.1.1"
       sources."dijkstrajs-1.0.1"
       sources."dir-glob-3.0.1"
@@ -76034,7 +78230,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"
@@ -76045,21 +78240,25 @@ in
       sources."duplexify-4.1.1"
       sources."duration-0.2.2"
       sources."ecc-jsbn-0.1.2"
-      sources."emoji-regex-8.0.0"
+      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.1" // {
+      (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.1.1"
       sources."env-variable-0.0.6"
-      sources."errno-0.1.7"
       sources."es5-ext-0.10.53"
-      sources."es6-error-4.1.1"
       sources."es6-iterator-2.0.3"
       sources."es6-promisify-6.1.1"
       (sources."es6-set-0.1.5" // {
@@ -76070,13 +78269,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.1"
-      sources."eslint-visitor-keys-1.1.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" // {
@@ -76084,48 +78279,68 @@ in
           sources."get-stream-3.0.0"
         ];
       })
+      (sources."expand-brackets-2.1.4" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-buffer-1.1.6"
+          (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."ext-1.4.0"
       sources."ext-list-2.2.2"
       sources."ext-name-5.0.0"
       sources."extend-3.0.2"
-      sources."extend-shallow-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" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+          sources."extend-shallow-2.0.1"
+        ];
+      })
       sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
-      sources."fast-glob-3.2.2"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fast-safe-stringify-2.0.7"
-      sources."fastq-1.7.0"
+      sources."fastq-1.8.0"
       sources."fd-slicer-1.1.0"
-      sources."fecha-2.3.3"
+      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."follow-redirects-1.5.10"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.3.3"
+      sources."form-data-2.5.1"
       sources."formidable-1.2.2"
       sources."fragment-cache-0.2.1"
       (sources."from2-2.3.0" // {
@@ -76137,46 +78352,64 @@ in
         ];
       })
       sources."fs-constants-1.0.0"
-      (sources."fs-extra-0.30.0" // {
-        dependencies = [
-          sources."jsonfile-2.4.0"
-        ];
-      })
+      sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
       sources."fs2-0.3.8"
       sources."fsevents-2.1.3"
-      sources."get-amd-module-type-3.0.0"
-      sources."get-own-enumerable-property-symbols-3.0.2"
+      sources."function-bind-1.1.1"
       sources."get-proxy-2.1.0"
-      sources."get-stdin-5.0.1"
+      sources."get-stdin-6.0.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."global-agent-2.1.8" // {
-        dependencies = [
-          sources."semver-7.3.2"
-        ];
-      })
+      sources."glob-to-regexp-0.3.0"
       sources."global-dirs-0.1.1"
-      sources."globalthis-1.0.1"
-      (sources."globby-6.1.0" // {
+      (sources."globby-9.2.0" // {
         dependencies = [
+          sources."@nodelib/fs.stat-1.1.3"
           sources."array-union-1.0.2"
-          sources."pify-2.3.0"
+          (sources."braces-2.3.2" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."dir-glob-2.2.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-buffer-1.1.6"
+          sources."is-glob-3.1.0"
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              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."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-4.0.0"
+      sources."has-flag-3.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"
@@ -76193,18 +78426,19 @@ in
       })
       sources."http-cache-semantics-4.1.0"
       sources."http-signature-1.2.0"
-      (sources."https-proxy-agent-4.0.0" // {
+      (sources."https-proxy-agent-5.0.0" // {
         dependencies = [
-          sources."agent-base-5.1.1"
+          sources."agent-base-6.0.1"
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
         ];
       })
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.1.13"
-      sources."ignore-5.1.4"
+      sources."ignore-5.1.8"
       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"
@@ -76212,19 +78446,13 @@ in
       (sources."inquirer-6.5.2" // {
         dependencies = [
           sources."ansi-escapes-3.2.0"
-          sources."ansi-regex-3.0.0"
-          sources."cli-cursor-2.1.0"
           sources."figures-2.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."mimic-fn-1.2.0"
-          sources."mute-stream-0.0.7"
-          sources."onetime-2.0.1"
-          sources."restore-cursor-2.0.0"
-          (sources."string-width-2.1.1" // {
-            dependencies = [
-              sources."strip-ansi-4.0.0"
-            ];
-          })
+        ];
+      })
+      (sources."inquirer-autocomplete-prompt-1.0.2" // {
+        dependencies = [
+          sources."ansi-escapes-3.2.0"
+          sources."figures-2.0.0"
         ];
       })
       sources."into-stream-3.1.0"
@@ -76236,9 +78464,9 @@ in
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-docker-1.1.0"
-      sources."is-extendable-1.0.1"
+      sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
       sources."is-installed-globally-0.1.0"
       sources."is-natural-number-4.0.1"
@@ -76251,35 +78479,35 @@ 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"
       sources."isexe-2.0.0"
       sources."iso8601-duration-1.2.0"
       sources."isobject-3.0.1"
-      sources."isomorphic-fetch-2.2.1"
+      (sources."isomorphic-fetch-2.2.1" // {
+        dependencies = [
+          sources."node-fetch-1.7.3"
+        ];
+      })
       sources."isomorphic-ws-4.0.1"
       sources."isstream-0.1.2"
       sources."isurl-1.0.0"
       sources."jmespath-0.15.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
       sources."json-cycle-1.3.0"
-      (sources."json-refs-2.1.7" // {
+      (sources."json-refs-3.0.15" // {
         dependencies = [
-          sources."slash-1.0.0"
-          sources."uri-js-3.0.2"
+          sources."commander-4.1.1"
         ];
       })
       sources."json-schema-0.2.3"
@@ -76288,7 +78516,7 @@ in
       sources."jsonata-1.8.3"
       sources."jsonfile-4.0.0"
       sources."jsprim-1.4.1"
-      (sources."jszip-3.4.0" // {
+      (sources."jszip-3.5.0" // {
         dependencies = [
           sources."isarray-1.0.0"
           sources."readable-stream-2.3.7"
@@ -76299,7 +78527,6 @@ in
       sources."jwt-decode-2.2.0"
       sources."keyv-3.1.0"
       sources."kind-of-6.0.3"
-      sources."klaw-1.3.1"
       sources."kuler-1.0.1"
       (sources."latest-version-3.1.0" // {
         dependencies = [
@@ -76309,6 +78536,7 @@ in
           sources."prepend-http-1.0.4"
           sources."registry-auth-token-3.4.0"
           sources."registry-url-3.1.0"
+          sources."semver-5.7.1"
           sources."url-parse-lax-1.0.0"
         ];
       })
@@ -76320,62 +78548,62 @@ 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.19"
+      sources."lodash.defaults-4.2.0"
+      sources."lodash.difference-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.isplainobject-4.0.6"
+      sources."lodash.union-4.6.0"
       (sources."log-6.0.0" // {
         dependencies = [
           sources."type-1.2.0"
         ];
       })
-      sources."logform-2.1.2"
+      (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."lsmod-1.0.0"
-      sources."make-dir-2.1.0"
-      sources."map-cache-0.2.2"
-      sources."map-visit-1.0.0"
-      (sources."matcher-2.1.0" // {
+      (sources."make-dir-1.3.0" // {
         dependencies = [
-          sources."escape-string-regexp-2.0.0"
+          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.3.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"
-      sources."mimic-fn-2.1.0"
+      sources."mimic-fn-1.2.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-0.5.5"
-      sources."module-definition-3.3.0"
-      sources."module-lookup-amd-6.2.0"
-      sources."moment-2.25.3"
-      sources."ms-2.1.2"
-      sources."mute-stream-0.0.8"
+      sources."moment-2.27.0"
+      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-1.7.3"
-      sources."node-source-walk-4.2.0"
+      sources."node-fetch-2.6.0"
       sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.0"
       (sources."npm-conf-1.1.3" // {
@@ -76407,10 +78635,10 @@ in
       sources."object.pick-1.3.0"
       sources."once-1.4.0"
       sources."one-time-0.0.4"
-      sources."onetime-5.1.0"
-      (sources."open-7.0.3" // {
+      sources."onetime-2.0.1"
+      (sources."open-7.1.0" // {
         dependencies = [
-          sources."is-docker-2.0.0"
+          sources."is-docker-2.1.1"
         ];
       })
       (sources."opn-5.5.0" // {
@@ -76418,7 +78646,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"
@@ -76427,42 +78654,34 @@ in
       sources."p-limit-2.3.0"
       sources."p-timeout-2.0.1"
       sources."p-try-2.2.0"
-      (sources."package-json-6.5.0" // {
-        dependencies = [
-          sources."semver-6.3.0"
-        ];
-      })
+      sources."package-json-6.5.0"
       sources."pako-1.0.11"
       sources."parseqs-0.0.5"
       sources."parseuri-0.0.5"
       sources."pascalcase-0.1.1"
+      sources."path-dirname-1.0.2"
       sources."path-is-absolute-1.0.1"
       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"
       sources."picomatch-2.2.2"
-      sources."pify-4.0.1"
+      sources."pify-5.0.0"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
-      (sources."postcss-7.0.29" // {
-        dependencies = [
-          sources."has-flag-3.0.0"
-          sources."supports-color-6.1.0"
-        ];
-      })
-      sources."postcss-values-parser-1.5.0"
-      sources."precinct-6.2.0"
-      sources."prelude-ls-1.1.2"
+      sources."posix-character-classes-0.1.1"
       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."prr-1.0.1"
+      (sources."protobufjs-6.10.1" // {
+        dependencies = [
+          sources."@types/node-13.13.15"
+        ];
+      })
       sources."pseudomap-1.0.2"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
@@ -76471,73 +78690,59 @@ in
       sources."query-string-5.1.1"
       sources."querystring-0.2.0"
       sources."ramda-0.26.1"
-      (sources."raven-1.2.1" // {
-        dependencies = [
-          sources."stack-trace-0.0.9"
-          sources."uuid-3.0.0"
-        ];
-      })
       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."remove-trailing-separator-1.1.0"
+      sources."repeat-element-1.1.3"
+      sources."repeat-string-1.6.1"
       sources."replaceall-0.1.6"
       (sources."request-2.88.2" // {
         dependencies = [
-          sources."uuid-3.4.0"
+          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-3.1.0"
+      sources."restore-cursor-2.0.0"
       sources."ret-0.1.15"
       sources."reusify-1.0.4"
-      sources."rimraf-2.7.1"
-      sources."roarr-2.15.3"
       sources."run-async-2.4.1"
       sources."run-parallel-1.1.9"
-      sources."rxjs-6.5.5"
-      sources."safe-buffer-5.2.0"
+      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."semver-5.7.1"
-      sources."semver-compare-1.0.0"
-      sources."semver-diff-2.1.0"
-      sources."semver-regex-1.0.0"
-      (sources."serialize-error-5.0.0" // {
+      sources."seek-bzip-1.0.6"
+      sources."semver-6.3.0"
+      (sources."semver-diff-2.1.0" // {
         dependencies = [
-          sources."type-fest-0.8.1"
+          sources."semver-5.7.1"
         ];
       })
+      sources."semver-regex-2.0.0"
       sources."set-immediate-shim-1.0.1"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
-          sources."is-extendable-0.1.1"
         ];
       })
       sources."shebang-command-1.2.0"
       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" // {
@@ -76557,25 +78762,28 @@ in
             ];
           })
           sources."is-descriptor-0.1.6"
-          sources."is-extendable-0.1.1"
           sources."kind-of-5.1.0"
-          sources."ms-2.0.0"
           sources."source-map-0.5.7"
         ];
       })
-      sources."socket.io-client-2.3.0"
-      (sources."socket.io-parser-3.3.0" // {
+      (sources."snapdragon-node-2.1.1" // {
         dependencies = [
-          sources."debug-3.1.0"
-          sources."ms-2.0.0"
+          sources."define-property-1.0.0"
         ];
       })
-      (sources."socket.io-stream-0.9.1" // {
+      (sources."snapdragon-util-3.0.1" // {
         dependencies = [
-          sources."debug-2.2.0"
-          sources."ms-0.7.1"
+          sources."is-buffer-1.1.6"
+          sources."kind-of-3.2.2"
         ];
       })
+      (sources."socket.io-client-2.3.0" // {
+        dependencies = [
+          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"
@@ -76584,7 +78792,7 @@ in
       sources."source-map-url-0.4.0"
       sources."split-string-3.1.0"
       sources."split2-3.1.1"
-      sources."sprintf-js-1.1.2"
+      sources."sprintf-js-1.0.3"
       sources."sprintf-kit-2.0.0"
       sources."sshpk-1.16.1"
       sources."stack-trace-0.0.10"
@@ -76609,41 +78817,37 @@ in
       sources."stealthy-require-1.1.1"
       sources."stream-promise-3.2.0"
       sources."stream-shift-1.0.1"
+      sources."stream.finished-1.2.0"
+      sources."stream.pipeline-shim-1.1.0"
       sources."strict-uri-encode-1.1.0"
-      (sources."string-width-4.2.0" // {
+      (sources."string-width-2.1.1" // {
         dependencies = [
-          sources."ansi-regex-5.0.0"
-          sources."strip-ansi-6.0.0"
+          sources."ansi-regex-3.0.0"
+          sources."strip-ansi-4.0.0"
         ];
       })
       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-7.1.0"
-      sources."tabtab-3.0.2"
-      sources."tapable-1.1.3"
-      (sources."tar-stream-1.6.2" // {
+      sources."supports-color-5.5.0"
+      (sources."tabtab-3.0.2" // {
         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."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"
@@ -76663,24 +78867,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.11.1"
-      sources."tsutils-3.17.1"
+      sources."tslib-1.13.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-2.0.0"
-      sources."type-check-0.3.2"
       sources."type-fest-0.11.0"
-      sources."typescript-3.8.3"
-      sources."unbzip2-stream-1.4.2"
-      (sources."union-value-1.0.1" // {
-        dependencies = [
-          sources."is-extendable-0.1.1"
-        ];
-      })
-      sources."uniq-1.0.1"
+      sources."unbzip2-stream-1.4.3"
+      sources."union-value-1.0.1"
       sources."unique-string-1.0.0"
       sources."universalify-0.1.2"
       (sources."unset-value-1.0.0" // {
@@ -76699,13 +78894,9 @@ in
       (sources."update-notifier-2.5.0" // {
         dependencies = [
           sources."ansi-align-2.0.0"
-          sources."ansi-regex-3.0.0"
           sources."boxen-1.3.0"
           sources."camelcase-4.1.0"
           sources."cli-boxes-1.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-2.1.1"
-          sources."strip-ansi-4.0.0"
         ];
       })
       sources."uri-js-4.2.2"
@@ -76720,25 +78911,17 @@ in
       sources."urlencode-1.1.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
-      sources."uuid-2.0.3"
+      sources."uuid-3.4.0"
       sources."verror-1.10.0"
-      sources."walkdir-0.0.11"
-      sources."whatwg-fetch-3.0.0"
+      sources."whatwg-fetch-3.3.1"
       sources."which-1.3.1"
-      (sources."widest-line-2.0.1" // {
-        dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-2.1.1"
-          sources."strip-ansi-4.0.0"
-        ];
-      })
+      sources."widest-line-2.0.1"
       (sources."winston-3.2.1" // {
         dependencies = [
           sources."async-2.6.3"
         ];
       })
-      (sources."winston-transport-4.3.0" // {
+      (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."isarray-1.0.0"
           sources."readable-stream-2.3.7"
@@ -76746,10 +78929,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.2.5"
+      sources."ws-7.3.1"
       sources."xdg-basedir-3.0.0"
       sources."xml2js-0.4.19"
       sources."xmlbuilder-9.0.7"
@@ -76758,22 +78940,15 @@ in
       sources."yallist-2.1.2"
       sources."yaml-ast-parser-0.0.43"
       sources."yamljs-0.3.0"
-      sources."yargs-parser-16.1.0"
+      sources."yargs-parser-18.1.3"
       sources."yauzl-2.10.0"
       sources."yeast-0.1.2"
-      (sources."zip-stream-1.2.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."zip-stream-3.0.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "Serverless Framework - Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more";
-      homepage = "https://serverless.com/framework/docs/";
+      homepage = https://serverless.com/framework/docs/;
       license = "MIT";
     };
     production = true;
@@ -76793,14 +78968,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.3"
       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.9.1"
+      sources."aws4-1.10.0"
       sources."base64-arraybuffer-0.1.2"
       sources."base64id-0.1.0"
       sources."bcrypt-nodejs-0.0.3"
@@ -76838,7 +79013,7 @@ in
       sources."duplexer-0.1.1"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."emitter-https://github.com/component/emitter/archive/1.0.1.tar.gz"
+      sources."emitter-http://github.com/component/emitter/archive/1.0.1.tar.gz"
       sources."encodeurl-1.0.2"
       (sources."engine.io-1.3.1" // {
         dependencies = [
@@ -76858,7 +79033,7 @@ in
       sources."express-4.17.1"
       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."finalhandler-1.1.2"
       sources."forever-agent-0.6.1"
@@ -76869,7 +79044,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" // {
@@ -76961,7 +79136,7 @@ in
       (sources."socket.io-adapter-0.2.0" // {
         dependencies = [
           sources."debug-0.7.4"
-          sources."emitter-https://github.com/component/emitter/archive/1.0.1.tar.gz"
+          sources."emitter-http://github.com/component/emitter/archive/1.0.1.tar.gz"
           sources."socket.io-parser-2.1.2"
         ];
       })
@@ -77127,7 +79302,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.19"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."micromatch-3.1.10"
@@ -77407,77 +79582,177 @@ in
   snyk = nodeEnv.buildNodePackage {
     name = "snyk";
     packageName = "snyk";
-    version = "1.317.0";
+    version = "1.369.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/snyk/-/snyk-1.317.0.tgz";
-      sha512 = "zNUvvT50Ii5TpHEo9YmDo+j5tqO1b8jXQK9XygfgiuXPRUwxf6PMSqDM5hKkfzuBhaBYZ4IbZWQFQPbMkprj0w==";
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.369.3.tgz";
+      sha512 = "I54pQeG7i/fLQfBQYK+hL/Yr3g9FPuSnVWKroRFdEaB6vfNSRBA2nd3cKPz9iTVm8v72dSZvixsvR6s+7iDi6g==";
     };
     dependencies = [
-      sources."@snyk/cli-interface-2.6.0"
-      sources."@snyk/cocoapods-lockfile-parser-3.2.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-3.1.0"
+      (sources."@snyk/cli-interface-2.8.1" // {
+        dependencies = [
+          (sources."@snyk/dep-graph-1.19.0" // {
+            dependencies = [
+              sources."tslib-2.0.0"
+            ];
+          })
+        ];
+      })
+      (sources."@snyk/cocoapods-lockfile-parser-3.4.0" // {
+        dependencies = [
+          sources."@snyk/dep-graph-1.18.4"
+          sources."semver-7.3.2"
+        ];
+      })
       sources."@snyk/composer-lockfile-parser-1.4.0"
-      sources."@snyk/configstore-3.2.0-rc1"
-      sources."@snyk/dep-graph-1.18.2"
+      (sources."@snyk/dep-graph-1.18.3" // {
+        dependencies = [
+          sources."semver-7.3.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.8.0" // {
+      sources."@snyk/java-call-graph-builder-1.12.3"
+      sources."@snyk/lodash-4.17.15-patch"
+      sources."@snyk/rpm-parser-2.0.0"
+      sources."@snyk/ruby-semver-2.2.0"
+      (sources."@snyk/snyk-cocoapods-plugin-2.3.0" // {
         dependencies = [
-          sources."ci-info-2.0.0"
-          sources."debug-4.1.1"
+          (sources."@snyk/cli-interface-1.5.0" // {
+            dependencies = [
+              sources."tslib-1.13.0"
+            ];
+          })
+          sources."tslib-2.0.0"
         ];
       })
-      sources."@snyk/lodash-4.17.15-patch"
-      sources."@snyk/rpm-parser-1.1.0"
-      sources."@snyk/ruby-semver-2.2.0"
-      (sources."@snyk/snyk-cocoapods-plugin-2.2.0" // {
+      (sources."@snyk/snyk-docker-pull-3.2.0" // {
         dependencies = [
-          sources."@snyk/cli-interface-1.5.0"
+          sources."tmp-0.1.0"
         ];
       })
-      sources."@snyk/update-notifier-2.5.1-rc2"
-      sources."@types/agent-base-4.2.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/events-3.0.0"
-      sources."@types/js-yaml-3.12.3"
-      sources."@types/node-13.13.4"
+      sources."@types/emscripten-1.39.4"
+      sources."@types/glob-7.1.3"
+      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/keyv-3.1.1"
+      sources."@types/minimatch-3.0.3"
+      sources."@types/node-13.13.15"
+      sources."@types/responselike-1.0.0"
       sources."@types/semver-5.5.0"
       sources."@types/xml2js-0.4.5"
+      (sources."@yarnpkg/core-2.1.1" // {
+        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.1.0"
+          sources."which-2.0.2"
+        ];
+      })
+      sources."@yarnpkg/fslib-2.1.0"
+      sources."@yarnpkg/json-proxy-2.1.0"
+      sources."@yarnpkg/libzip-2.1.0"
       sources."@yarnpkg/lockfile-1.1.0"
+      sources."@yarnpkg/parsers-2.1.0"
+      sources."@yarnpkg/pnp-2.1.0"
+      (sources."@yarnpkg/shell-2.1.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-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."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."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" // {
         dependencies = [
           sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
           sources."string_decoder-1.3.0"
         ];
       })
-      sources."boxen-1.3.0"
+      (sources."boxen-4.2.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          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."emoji-regex-8.0.0"
+          sources."has-flag-4.0.0"
+          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."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."camelcase-4.1.0"
-      sources."capture-stack-trace-1.0.1"
+      sources."cacheable-lookup-5.0.3"
+      (sources."cacheable-request-7.0.1" // {
+        dependencies = [
+          sources."get-stream-5.1.0"
+        ];
+      })
+      sources."camelcase-2.1.1"
       sources."chalk-2.4.2"
       sources."chardet-0.7.0"
-      sources."ci-info-1.6.0"
-      sources."cli-boxes-1.0.0"
+      sources."child-process-1.0.2"
+      sources."chownr-1.1.4"
+      sources."ci-info-2.0.0"
+      sources."cli-boxes-2.2.0"
       sources."cli-cursor-2.1.0"
       sources."cli-spinner-0.2.10"
       sources."cli-width-2.2.1"
+      sources."clipanion-2.4.4"
       (sources."cliui-3.2.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -77487,21 +79762,32 @@ in
           sources."wrap-ansi-2.1.0"
         ];
       })
+      sources."clone-response-1.0.2"
       sources."co-4.6.0"
       sources."code-point-at-1.1.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."concat-map-0.0.1"
-      sources."core-js-3.6.5"
+      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."cross-spawn-6.0.5" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."crypto-random-string-2.0.0"
       sources."data-uri-to-buffer-1.2.0"
-      sources."debug-3.2.6"
+      sources."debug-4.2.0"
       sources."decamelize-1.2.0"
+      (sources."decompress-response-6.0.0" // {
+        dependencies = [
+          sources."mimic-response-3.1.0"
+        ];
+      })
       sources."deep-extend-0.6.0"
       sources."deep-is-0.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"
@@ -77509,49 +79795,75 @@ 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"
+          sources."safe-buffer-5.2.1"
+          sources."string_decoder-1.3.0"
+        ];
+      })
       sources."dockerfile-ast-0.0.19"
       sources."dot-prop-5.2.0"
       sources."dotnet-deps-parser-4.10.0"
       sources."duplexer3-0.1.4"
+      sources."duplexify-3.7.1"
       sources."email-validator-2.0.4"
       sources."emoji-regex-7.0.3"
       sources."end-of-stream-1.4.4"
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
+      sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
-      sources."escodegen-1.14.1"
+      sources."escodegen-1.14.3"
       sources."esprima-4.0.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
-      sources."event-loop-spinner-1.1.0"
-      sources."execa-0.7.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-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
       (sources."ftp-0.3.10" // {
         dependencies = [
           sources."readable-stream-1.1.14"
         ];
       })
-      sources."get-stream-3.0.0"
+      sources."function-bind-1.1.1"
+      sources."get-stream-4.1.0"
       (sources."get-uri-2.0.4" // {
         dependencies = [
           sources."debug-2.6.9"
           sources."ms-2.0.0"
         ];
       })
-      sources."git-up-4.0.1"
-      sources."git-url-parse-11.1.2"
       sources."glob-7.1.6"
-      sources."global-dirs-0.1.1"
-      sources."got-6.7.1"
+      sources."glob-parent-5.1.1"
+      sources."global-dirs-2.0.1"
+      sources."globby-10.0.2"
+      sources."got-11.5.1"
       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."hosted-git-info-2.8.8"
+      sources."has-symbols-1.0.1"
+      sources."has-yarn-2.1.0"
+      (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" // {
         dependencies = [
@@ -77559,9 +79871,15 @@ in
           sources."ms-2.0.0"
         ];
       })
-      sources."https-proxy-agent-3.0.1"
+      sources."http2-wrapper-1.0.0-beta.5.2"
+      (sources."https-proxy-agent-3.0.1" // {
+        dependencies = [
+          sources."debug-3.2.6"
+        ];
+      })
       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"
@@ -77570,23 +79888,36 @@ in
       sources."ini-1.3.5"
       sources."invert-kv-1.0.0"
       sources."ip-1.1.5"
-      sources."is-ci-1.2.1"
-      sources."is-docker-2.0.0"
+      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.1.1"
+      sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
-      sources."is-installed-globally-0.1.0"
-      sources."is-npm-1.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-1.0.1"
-      sources."is-redirect-1.0.0"
-      sources."is-retry-allowed-1.2.0"
-      sources."is-ssh-1.3.1"
+      sources."is-path-inside-3.0.2"
       sources."is-stream-1.1.0"
+      sources."is-typedarray-1.0.0"
       sources."is-wsl-2.2.0"
+      sources."is-yarn-global-0.3.0"
       sources."isarray-0.0.1"
       sources."isexe-2.0.0"
-      sources."js-yaml-3.13.1"
-      sources."jszip-3.4.0"
-      sources."latest-version-3.1.0"
+      sources."js-yaml-3.14.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-4.0.1"
+      sources."latest-version-5.1.0"
       sources."lcid-1.0.0"
       sources."levn-0.3.0"
       sources."lie-3.3.0"
@@ -77594,167 +79925,261 @@ in
       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.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."lru-cache-4.1.5"
-      sources."macos-release-2.3.0"
-      sources."make-dir-1.3.0"
+      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.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.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."minipass-2.9.0"
+      sources."minizlib-1.3.3"
+      sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.7"
       sources."nconf-0.10.0"
-      sources."needle-2.4.1"
+      (sources."needle-2.5.0" // {
+        dependencies = [
+          sources."debug-3.2.6"
+        ];
+      })
       sources."netmask-1.0.6"
       sources."nice-try-1.0.5"
-      sources."normalize-url-3.3.0"
+      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-1.3.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.3"
+      sources."open-7.1.0"
       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-2.0.0"
       sources."p-finally-1.0.0"
+      sources."p-limit-2.3.0"
       sources."p-map-2.1.0"
-      (sources."pac-proxy-agent-3.0.1" // {
-        dependencies = [
-          sources."debug-4.1.1"
-        ];
-      })
+      sources."p-try-2.2.0"
+      sources."pac-proxy-agent-3.0.1"
       sources."pac-resolver-3.0.0"
-      (sources."package-json-4.0.1" // {
+      (sources."package-json-6.5.0" // {
         dependencies = [
-          sources."semver-5.7.1"
+          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.1.0"
+          sources."got-9.6.0"
+          sources."json-buffer-3.0.0"
+          sources."keyv-3.1.0"
+          sources."lowercase-keys-1.0.1"
+          sources."p-cancelable-1.1.0"
+          sources."responselike-1.0.2"
         ];
       })
-      sources."pako-1.0.11"
-      sources."parse-path-4.0.1"
-      sources."parse-url-5.0.1"
+      sources."pako-0.2.9"
+      sources."parse-link-header-1.0.1"
       sources."path-is-absolute-1.0.1"
-      sources."path-is-inside-1.0.2"
       sources."path-key-2.0.1"
-      sources."pify-3.0.0"
+      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-1.0.4"
-      sources."prettier-1.19.1"
+      sources."prepend-http-2.0.0"
+      sources."pretty-bytes-5.3.0"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."promise-7.3.1"
-      sources."protocols-1.4.7"
-      (sources."proxy-agent-3.1.1" // {
-        dependencies = [
-          sources."debug-4.1.1"
-          sources."lru-cache-5.1.1"
-          sources."yallist-3.1.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"
       sources."pump-3.0.0"
+      (sources."pumpify-1.5.1" // {
+        dependencies = [
+          sources."pump-2.0.1"
+        ];
+      })
+      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" // {
         dependencies = [
           sources."isarray-1.0.0"
-          sources."safe-buffer-5.1.2"
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."registry-auth-token-3.4.0"
-      sources."registry-url-3.1.0"
+      sources."registry-auth-token-4.2.0"
+      sources."registry-url-5.1.0"
+      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."safe-buffer-5.2.0"
+      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"
       sources."secure-keys-1.0.0"
       sources."semver-6.3.0"
-      (sources."semver-diff-2.1.0" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
+      sources."semver-diff-3.1.1"
       sources."set-immediate-shim-1.0.1"
       sources."setprototypeof-1.1.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."signal-exit-3.0.3"
+      sources."slash-3.0.0"
       sources."smart-buffer-4.1.0"
-      (sources."snyk-config-3.1.0" // {
-        dependencies = [
-          sources."debug-4.1.1"
-        ];
-      })
-      (sources."snyk-docker-plugin-3.1.0" // {
+      sources."snyk-config-3.1.0"
+      (sources."snyk-docker-plugin-3.16.0" // {
         dependencies = [
-          sources."debug-4.1.1"
+          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.0"
-      (sources."snyk-go-plugin-1.14.0" // {
+      sources."snyk-go-parser-1.4.1"
+      (sources."snyk-go-plugin-1.16.0" // {
         dependencies = [
-          sources."debug-4.1.1"
-          sources."tmp-0.1.0"
+          (sources."@snyk/dep-graph-1.19.3" // {
+            dependencies = [
+              sources."@snyk/graphlib-2.1.9-patch.2"
+            ];
+          })
+          sources."rimraf-3.0.2"
+          sources."tmp-0.2.0"
         ];
       })
-      (sources."snyk-gradle-plugin-3.2.5" // {
+      (sources."snyk-gradle-plugin-3.5.1" // {
         dependencies = [
-          sources."@snyk/cli-interface-2.3.0"
-          sources."debug-4.1.1"
+          (sources."@snyk/cli-interface-2.8.0" // {
+            dependencies = [
+              (sources."@snyk/dep-graph-1.19.0" // {
+                dependencies = [
+                  sources."tslib-2.0.0"
+                ];
+              })
+              sources."tslib-1.13.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."rimraf-3.0.2"
+          sources."supports-color-7.1.0"
+          sources."tmp-0.2.1"
+          sources."tslib-2.0.0"
         ];
       })
-      sources."snyk-module-1.9.1"
-      (sources."snyk-mvn-plugin-2.15.0" // {
+      sources."snyk-module-3.1.0"
+      (sources."snyk-mvn-plugin-2.18.2" // {
         dependencies = [
-          sources."@snyk/cli-interface-2.5.0"
-          sources."debug-4.1.1"
           sources."tmp-0.1.0"
+          sources."tslib-1.11.1"
         ];
       })
-      sources."snyk-nodejs-lockfile-parser-1.22.0"
-      (sources."snyk-nuget-plugin-1.17.0" // {
+      sources."snyk-nodejs-lockfile-parser-1.26.3"
+      (sources."snyk-nuget-plugin-1.18.1" // {
         dependencies = [
-          sources."core-js-2.3.0"
-          sources."es6-promise-3.0.2"
-          sources."isarray-1.0.0"
-          sources."jszip-3.1.5"
-          sources."lie-3.1.1"
-          sources."process-nextick-args-1.0.7"
-          sources."readable-stream-2.0.6"
+          sources."jszip-3.3.0"
+          sources."pako-1.0.11"
         ];
       })
       sources."snyk-paket-parser-1.6.0"
       (sources."snyk-php-plugin-1.9.0" // {
         dependencies = [
           sources."@snyk/cli-interface-2.3.2"
+          sources."tslib-1.11.1"
+        ];
+      })
+      (sources."snyk-policy-1.14.1" // {
+        dependencies = [
+          sources."@types/node-6.14.10"
+          sources."hosted-git-info-2.8.8"
+          (sources."snyk-module-2.1.0" // {
+            dependencies = [
+              sources."debug-3.2.6"
+            ];
+          })
+        ];
+      })
+      sources."snyk-python-plugin-1.17.1"
+      (sources."snyk-resolve-1.0.1" // {
+        dependencies = [
+          sources."debug-3.2.6"
         ];
       })
-      sources."snyk-policy-1.13.5"
-      sources."snyk-python-plugin-1.17.0"
-      sources."snyk-resolve-1.0.1"
       (sources."snyk-resolve-deps-4.4.0" // {
         dependencies = [
           sources."@types/node-6.14.10"
+          sources."debug-3.2.6"
+          sources."hosted-git-info-2.8.8"
+          sources."lru-cache-4.1.5"
           sources."semver-5.7.1"
+          sources."snyk-module-1.9.1"
+          sources."yallist-2.1.2"
         ];
       })
       (sources."snyk-sbt-plugin-2.11.0" // {
         dependencies = [
-          sources."debug-4.1.1"
           sources."tmp-0.1.0"
         ];
       })
       sources."snyk-tree-1.0.0"
-      sources."snyk-try-require-1.3.1"
+      (sources."snyk-try-require-1.3.1" // {
+        dependencies = [
+          sources."debug-3.2.6"
+          sources."lru-cache-4.1.5"
+          sources."yallist-2.1.2"
+        ];
+      })
       sources."socks-2.3.3"
       (sources."socks-proxy-agent-4.0.2" // {
         dependencies = [
@@ -77763,8 +80188,21 @@ in
       })
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.19"
+      sources."split-ca-1.0.1"
       sources."sprintf-js-1.0.3"
+      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 = [
           sources."strip-ansi-4.0.0"
@@ -77779,9 +80217,15 @@ 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-4.4.13" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+        ];
+      })
+      (sources."tar-stream-2.1.3" // {
         dependencies = [
           sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
           sources."string_decoder-1.3.0"
         ];
       })
@@ -77791,36 +80235,52 @@ in
           sources."temp-dir-1.0.0"
         ];
       })
-      sources."term-size-1.2.0"
+      sources."term-size-2.2.0"
       sources."then-fs-2.0.0"
       sources."through-2.3.8"
+      sources."through2-2.0.5"
       sources."thunkify-2.1.2"
-      sources."timed-out-4.0.1"
       sources."tmp-0.0.33"
+      sources."to-readable-stream-1.0.0"
+      sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
       sources."toml-3.0.0"
       sources."tree-kill-1.2.2"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
+      sources."tunnel-0.0.6"
+      sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
-      sources."typescript-3.8.3"
-      sources."unique-string-1.0.0"
+      sources."type-fest-0.8.1"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."underscore-1.10.2"
+      sources."unique-string-2.0.0"
       sources."unpipe-1.0.0"
-      sources."unzip-response-2.0.1"
-      sources."url-parse-lax-1.0.0"
+      (sources."update-notifier-4.1.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.1.0"
+        ];
+      })
+      sources."url-parse-lax-3.0.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."vscode-languageserver-types-3.15.1"
       sources."which-1.3.1"
-      sources."widest-line-2.0.1"
-      sources."window-size-0.1.4"
-      (sources."windows-release-3.3.0" // {
+      (sources."widest-line-3.1.0" // {
         dependencies = [
-          sources."cross-spawn-6.0.5"
-          sources."execa-1.0.0"
-          sources."get-stream-4.1.0"
-          sources."semver-5.7.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."window-size-0.1.4"
+      sources."windows-release-3.3.1"
       sources."word-wrap-1.2.3"
       (sources."wrap-ansi-5.1.0" // {
         dependencies = [
@@ -77828,17 +80288,18 @@ in
         ];
       })
       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."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
       sources."xregexp-2.0.0"
+      sources."xtend-4.0.2"
       sources."y18n-3.2.1"
-      sources."yallist-2.1.2"
+      sources."yallist-3.1.1"
+      sources."yaml-1.10.0"
       (sources."yargs-3.32.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
-          sources."camelcase-2.1.1"
           sources."is-fullwidth-code-point-1.0.0"
           sources."string-width-1.0.2"
           sources."strip-ansi-3.0.1"
@@ -77879,9 +80340,10 @@ in
       sources."component-inherit-0.0.3"
       sources."cookie-0.3.1"
       sources."debug-4.1.1"
-      sources."engine.io-3.4.1"
-      (sources."engine.io-client-3.4.1" // {
+      sources."engine.io-3.4.2"
+      (sources."engine.io-client-3.4.3" // {
         dependencies = [
+          sources."component-emitter-1.3.0"
           sources."ws-6.1.4"
         ];
       })
@@ -77908,9 +80370,9 @@ in
           })
         ];
       })
-      sources."socket.io-parser-3.4.0"
+      sources."socket.io-parser-3.4.1"
       sources."to-array-0.1.4"
-      sources."ws-7.2.5"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."yeast-0.1.2"
     ];
@@ -77948,7 +80410,7 @@ 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"
@@ -78048,16 +80510,16 @@ in
       sources."resolve-1.17.0"
       sources."restore-cursor-2.0.0"
       sources."round-to-3.0.0"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."sax-1.2.4"
       sources."semver-5.7.1"
       sources."semver-diff-2.1.0"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."signal-exit-3.0.3"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."speedtest-net-1.6.2"
       sources."string-width-2.1.1"
@@ -78099,10 +80561,10 @@ in
   ssb-server = nodeEnv.buildNodePackage {
     name = "ssb-server";
     packageName = "ssb-server";
-    version = "15.2.0";
+    version = "16.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/ssb-server/-/ssb-server-15.2.0.tgz";
-      sha512 = "iOzvg1HSRuT7k56AdKbeVnqeyc8iTZNMqIcbOv+zc4GBZODc37vtxtv688EnyNVCWuLnBsQBH3HlAYrcolQE7g==";
+      url = "https://registry.npmjs.org/ssb-server/-/ssb-server-16.0.1.tgz";
+      sha512 = "cast7wQRxqUSiRVyFoaTtymeukwSh5nlfDj5ShHmdnh0qmfi4uQnvPuBA5BBgC3WEtI/ozgNjAc1/vqJFgILig==";
     };
     dependencies = [
       sources."abstract-leveldown-6.0.3"
@@ -78115,6 +80577,7 @@ in
       sources."arr-diff-2.0.0"
       sources."arr-flatten-1.1.0"
       sources."arr-union-3.1.0"
+      sources."array-filter-1.0.0"
       sources."array-union-1.0.2"
       sources."array-uniq-1.0.3"
       sources."array-unique-0.2.1"
@@ -78122,10 +80585,15 @@ 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-1.1.5"
+      (sources."atomic-file-2.0.1" // {
+        dependencies = [
+          sources."flumecodec-0.0.1"
+          sources."level-codec-6.2.0"
+        ];
+      })
       sources."attach-ware-1.1.1"
+      sources."available-typed-arrays-1.0.2"
       sources."bail-1.0.5"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
@@ -78216,7 +80684,7 @@ in
       sources."copy-descriptor-0.1.1"
       sources."core-util-is-1.0.2"
       sources."cross-spawn-6.0.5"
-      sources."debug-4.1.1"
+      sources."debug-4.2.0"
       sources."decode-uri-component-0.2.0"
       sources."deep-equal-1.1.1"
       sources."deep-extend-0.6.0"
@@ -78247,7 +80715,12 @@ in
       })
       sources."epidemic-broadcast-trees-7.0.0"
       sources."errno-0.1.7"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
+      (sources."es-get-iterator-1.1.0" // {
+        dependencies = [
+          sources."isarray-2.0.5"
+        ];
+      })
       sources."es-to-primitive-1.2.1"
       sources."escape-string-regexp-1.0.5"
       sources."exit-hook-1.1.1"
@@ -78270,31 +80743,46 @@ in
           sources."level-codec-6.2.0"
         ];
       })
-      sources."flumedb-1.1.0"
+      (sources."flumedb-2.1.8" // {
+        dependencies = [
+          sources."pull-abortable-4.1.1"
+        ];
+      })
       sources."flumelog-offset-3.4.4"
-      sources."flumeview-hashtable-1.1.1"
-      sources."flumeview-level-3.0.14"
-      (sources."flumeview-query-6.3.0" // {
+      (sources."flumeview-hashtable-1.1.1" // {
         dependencies = [
+          sources."atomic-file-1.1.5"
+        ];
+      })
+      (sources."flumeview-level-4.0.4" // {
+        dependencies = [
+          sources."abstract-leveldown-6.2.3"
+          sources."level-6.0.1"
+          sources."level-js-5.0.2"
+          sources."mkdirp-1.0.4"
+        ];
+      })
+      (sources."flumeview-links-1.0.1" // {
+        dependencies = [
+          sources."deep-equal-2.0.3"
+          sources."flumeview-level-3.0.14"
+          sources."isarray-2.0.5"
           sources."map-filter-reduce-3.2.2"
         ];
       })
-      (sources."flumeview-reduce-1.3.16" // {
+      (sources."flumeview-query-8.0.0" // {
         dependencies = [
-          (sources."atomic-file-2.0.1" // {
-            dependencies = [
-              sources."flumecodec-0.0.1"
-            ];
-          })
-          sources."level-codec-6.2.0"
+          sources."map-filter-reduce-3.2.2"
         ];
       })
+      sources."flumeview-reduce-1.3.17"
       sources."for-each-0.3.3"
       sources."for-in-1.0.2"
       sources."for-own-0.1.5"
+      sources."foreach-2.0.5"
       sources."fragment-cache-0.2.1"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-1.2.12"
+      sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
       sources."get-value-2.0.6"
       sources."glob-6.0.4"
@@ -78344,9 +80832,11 @@ in
       sources."is-alphabetical-1.0.4"
       sources."is-alphanumerical-1.0.4"
       sources."is-arguments-1.0.4"
+      sources."is-bigint-1.0.0"
       sources."is-binary-path-1.0.1"
+      sources."is-boolean-object-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.1.5"
+      sources."is-callable-1.2.0"
       sources."is-canonical-base64-1.1.1"
       (sources."is-data-descriptor-1.0.0" // {
         dependencies = [
@@ -78368,7 +80858,9 @@ in
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-2.0.1"
       sources."is-hexadecimal-1.0.4"
+      sources."is-map-2.0.1"
       sources."is-number-2.1.0"
+      sources."is-number-object-1.0.4"
       (sources."is-plain-object-2.0.4" // {
         dependencies = [
           sources."isobject-3.0.1"
@@ -78376,10 +80868,15 @@ in
       })
       sources."is-posix-bracket-0.1.1"
       sources."is-primitive-2.0.0"
-      sources."is-regex-1.0.5"
+      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-weakmap-2.0.1"
+      sources."is-weakset-2.0.1"
       sources."is-windows-1.0.2"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
@@ -78388,7 +80885,7 @@ in
       sources."kind-of-3.2.2"
       sources."layered-graph-1.1.3"
       sources."level-5.0.1"
-      sources."level-codec-9.0.1"
+      sources."level-codec-9.0.2"
       sources."level-concat-iterator-2.0.1"
       sources."level-errors-2.0.1"
       (sources."level-iterator-stream-4.0.2" // {
@@ -78429,8 +80926,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"
@@ -78482,9 +80980,9 @@ in
       })
       sources."napi-macros-2.0.0"
       sources."ncp-2.0.0"
-      sources."nearley-2.19.3"
+      sources."nearley-2.19.5"
       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"
@@ -78503,7 +81001,7 @@ in
           })
         ];
       })
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-is-1.1.2"
       sources."object-keys-1.1.1"
       (sources."object-visit-1.0.1" // {
@@ -78521,16 +81019,17 @@ in
       sources."observ-0.2.0"
       sources."observ-debounce-1.1.1"
       sources."obv-0.0.1"
+      sources."obz-1.0.2"
       sources."on-change-network-0.0.2"
       sources."on-wakeup-1.0.1"
       sources."once-1.4.0"
       sources."onetime-1.1.0"
-      sources."opencollective-postinstall-2.0.2"
+      sources."opencollective-postinstall-2.0.3"
       sources."options-0.0.6"
       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"
@@ -78681,7 +81180,7 @@ in
       sources."remove-trailing-separator-1.1.0"
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
-      sources."resolve-1.15.1"
+      sources."resolve-1.17.0"
       sources."resolve-url-0.2.1"
       sources."restore-cursor-1.0.1"
       sources."resumer-0.0.0"
@@ -78709,6 +81208,7 @@ 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."smart-buffer-4.1.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -78737,7 +81237,7 @@ in
         ];
       })
       sources."snapdragon-util-3.0.1"
-      sources."socks-2.3.3"
+      sources."socks-2.4.1"
       sources."sodium-browserify-1.3.0"
       (sources."sodium-browserify-tweetnacl-0.2.6" // {
         dependencies = [
@@ -78756,36 +81256,48 @@ in
       sources."ssb-caps-1.1.0"
       sources."ssb-client-4.9.0"
       sources."ssb-config-3.4.4"
-      sources."ssb-db-19.2.0"
+      (sources."ssb-db-20.3.0" // {
+        dependencies = [
+          sources."glob-7.1.6"
+          sources."mkdirp-1.0.4"
+          sources."rimraf-3.0.2"
+        ];
+      })
       sources."ssb-ebt-5.6.7"
-      sources."ssb-friends-4.1.4"
-      sources."ssb-gossip-1.1.1"
-      sources."ssb-invite-2.1.4"
+      sources."ssb-friends-4.2.0"
+      (sources."ssb-gossip-1.1.1" // {
+        dependencies = [
+          sources."atomic-file-1.1.5"
+        ];
+      })
+      (sources."ssb-invite-2.1.5" // {
+        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.8"
+      sources."ssb-links-3.0.9"
       sources."ssb-local-1.0.0"
       sources."ssb-logging-1.0.0"
       sources."ssb-master-1.0.3"
       sources."ssb-msgs-5.2.0"
       sources."ssb-no-auth-1.0.0"
       sources."ssb-onion-1.0.0"
-      (sources."ssb-ooo-1.3.2" // {
+      (sources."ssb-ooo-1.3.3" // {
         dependencies = [
           sources."flumecodec-0.0.1"
           sources."level-codec-6.2.0"
         ];
       })
-      sources."ssb-plugins-1.0.0"
-      (sources."ssb-query-2.4.3" // {
-        dependencies = [
-          sources."flumeview-query-7.2.1"
-          sources."map-filter-reduce-3.2.2"
-        ];
-      })
-      sources."ssb-ref-2.13.9"
+      sources."ssb-plugins-1.0.4"
+      sources."ssb-private1-1.0.1"
+      sources."ssb-query-2.4.5"
+      sources."ssb-ref-2.14.0"
       sources."ssb-replicate-1.3.2"
       sources."ssb-unix-socket-1.0.0"
-      sources."ssb-validate-4.0.5"
+      sources."ssb-validate-4.1.1"
       sources."ssb-ws-6.2.3"
       sources."stack-0.1.0"
       (sources."static-extend-0.1.2" // {
@@ -78814,17 +81326,17 @@ in
       sources."string-width-1.0.2"
       sources."string.prototype.trim-1.2.1"
       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.1.1"
       sources."stringify-entities-1.3.2"
       sources."strip-ansi-3.0.1"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-2.0.0"
-      (sources."tape-4.13.2" // {
+      (sources."tape-4.13.3" // {
         dependencies = [
           sources."glob-7.1.6"
+          sources."is-regex-1.0.5"
+          sources."object-inspect-1.7.0"
         ];
       })
       sources."text-table-0.2.0"
@@ -78881,6 +81393,9 @@ in
       sources."vfile-sort-1.0.0"
       sources."ware-1.3.0"
       sources."which-1.3.1"
+      sources."which-boxed-primitive-1.0.1"
+      sources."which-collection-1.0.1"
+      sources."which-typed-array-1.1.2"
       sources."word-wrap-1.2.3"
       sources."wrap-fn-0.1.5"
       sources."wrappy-1.0.2"
@@ -78891,7 +81406,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "network protocol layer for secure-scuttlebutt";
-      homepage = "https://github.com/ssbc/ssb-server";
+      homepage = https://github.com/ssbc/ssb-server;
       license = "MIT";
     };
     production = true;
@@ -78909,7 +81424,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Send metric data from statsd to Stackdriver";
-      homepage = "https://www.stackdriver.com/";
+      homepage = https://www.stackdriver.com/;
       license = "MIT";
     };
     production = true;
@@ -78934,7 +81449,7 @@ in
           sources."ws-1.1.5"
         ];
       })
-      sources."@types/babel-types-7.0.7"
+      sources."@types/babel-types-7.0.8"
       sources."@types/babylon-6.16.5"
       sources."accepts-1.3.7"
       sources."acorn-3.3.0"
@@ -78967,7 +81482,7 @@ in
           sources."semver-5.0.3"
         ];
       })
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."align-text-0.1.4"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
@@ -78984,13 +81499,13 @@ in
       sources."async-1.5.2"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
-      (sources."aws-sdk-2.669.0" // {
+      (sources."aws-sdk-2.726.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
       })
       sources."aws-sign2-0.6.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."babel-runtime-6.26.0"
       sources."babel-types-6.26.0"
       sources."babylon-6.18.0"
@@ -79019,13 +81534,13 @@ in
       })
       sources."boom-2.10.1"
       sources."brace-expansion-1.1.11"
-      sources."buffer-4.9.1"
+      sources."buffer-4.9.2"
       sources."buffer-crc32-0.2.13"
       sources."buffer-equal-constant-time-1.0.1"
       sources."buffer-from-1.1.1"
       sources."bufferutil-1.3.0"
       sources."bufferview-1.0.1"
-      sources."bunyan-1.8.12"
+      sources."bunyan-1.8.14"
       sources."busboy-0.2.14"
       sources."bytebuffer-3.5.5"
       sources."bytes-3.1.0"
@@ -79120,15 +81635,16 @@ in
       sources."ejs-0.8.8"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-3.4.1" // {
+      (sources."engine.io-3.4.2" // {
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
-          sources."ws-7.2.5"
+          sources."ws-7.3.1"
         ];
       })
-      (sources."engine.io-client-3.4.1" // {
+      (sources."engine.io-client-3.4.3" // {
         dependencies = [
+          sources."component-emitter-1.3.0"
           sources."debug-4.1.1"
           sources."ws-6.1.4"
         ];
@@ -79163,23 +81679,18 @@ in
       sources."extsprintf-1.3.0"
       sources."eyes-0.1.8"
       sources."faker-3.1.0"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fd-slicer-1.1.0"
       sources."finalhandler-1.1.2"
       sources."find-up-3.0.0"
-      (sources."follow-redirects-1.11.0" // {
-        dependencies = [
-          sources."debug-3.2.6"
-        ];
-      })
+      sources."follow-redirects-1.12.1"
       sources."forever-agent-0.6.1"
       sources."form-data-2.1.4"
       sources."formidable-1.2.2"
       sources."forwarded-0.1.2"
       sources."fresh-0.5.2"
       sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.1"
       sources."generate-function-2.3.1"
       sources."generate-object-property-1.2.0"
       sources."get-caller-file-1.0.3"
@@ -79199,7 +81710,6 @@ in
       sources."graphlib-2.1.8"
       sources."har-schema-2.0.0"
       sources."har-validator-2.0.6"
-      sources."has-1.0.3"
       sources."has-ansi-2.0.0"
       (sources."has-binary2-1.0.3" // {
         dependencies = [
@@ -79207,6 +81717,7 @@ in
         ];
       })
       sources."has-cors-1.1.0"
+      sources."has-symbols-1.0.1"
       sources."hawk-3.1.3"
       sources."highlight.js-8.2.0"
       (sources."hipchatter-0.3.2" // {
@@ -79221,9 +81732,9 @@ in
           sources."inherits-2.0.3"
         ];
       })
-      (sources."http-proxy-1.18.0" // {
+      (sources."http-proxy-1.18.1" // {
         dependencies = [
-          sources."eventemitter3-4.0.0"
+          sources."eventemitter3-4.0.4"
         ];
       })
       sources."http-signature-1.1.1"
@@ -79245,10 +81756,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.0"
+      sources."is-my-json-valid-2.20.5"
       sources."is-promise-2.2.2"
       sources."is-property-1.0.2"
-      sources."is-regex-1.0.5"
+      sources."is-regex-1.1.1"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
@@ -79257,14 +81768,14 @@ in
       sources."isstream-0.1.2"
       sources."jmespath-0.15.0"
       sources."jpeg-turbo-0.4.0"
-      sources."js-base64-2.5.2"
+      sources."js-base64-2.6.4"
       sources."js-stringify-1.0.2"
       sources."js-yaml-3.2.7"
       sources."jsbn-0.1.1"
       (sources."json-refs-2.1.7" // {
         dependencies = [
           sources."esprima-4.0.1"
-          sources."js-yaml-3.13.1"
+          sources."js-yaml-3.14.0"
           sources."punycode-2.1.1"
           sources."uri-js-3.0.2"
         ];
@@ -79274,7 +81785,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 = [
@@ -79301,7 +81812,7 @@ in
       })
       sources."load-json-file-1.1.0"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."lodash.get-4.4.2"
       sources."lodash.isequal-4.5.0"
       sources."long-2.4.0"
@@ -79349,7 +81860,7 @@ in
       sources."minimist-1.2.5"
       sources."minitouch-prebuilt-1.2.0"
       sources."mkdirp-0.5.5"
-      sources."moment-2.25.3"
+      sources."moment-2.27.0"
       sources."ms-2.1.2"
       sources."multer-1.4.2"
       sources."mustache-2.3.2"
@@ -79465,7 +81976,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"
@@ -79532,16 +82043,16 @@ in
           })
         ];
       })
-      (sources."socket.io-parser-3.4.0" // {
+      (sources."socket.io-parser-3.4.1" // {
         dependencies = [
           sources."debug-4.1.1"
           sources."isarray-2.0.1"
         ];
       })
       sources."source-map-0.6.1"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."split-1.0.1"
       sources."sprintf-js-1.0.3"
@@ -79590,7 +82101,7 @@ in
       (sources."swagger-node-runner-0.7.3" // {
         dependencies = [
           sources."esprima-4.0.1"
-          sources."js-yaml-3.13.1"
+          sources."js-yaml-3.14.0"
           sources."lodash-3.10.1"
           sources."qs-6.9.4"
         ];
@@ -79600,7 +82111,7 @@ in
         dependencies = [
           sources."esprima-4.0.1"
           sources."isarray-0.0.1"
-          sources."js-yaml-3.13.1"
+          sources."js-yaml-3.14.0"
           sources."path-to-regexp-1.8.0"
         ];
       })
@@ -79675,7 +82186,7 @@ in
       sources."which-1.3.1"
       sources."which-module-2.0.0"
       sources."window-size-0.1.0"
-      (sources."winston-2.4.4" // {
+      (sources."winston-2.4.5" // {
         dependencies = [
           sources."async-1.0.0"
         ];
@@ -79763,7 +82274,7 @@ in
       sha512 = "yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==";
     };
     dependencies = [
-      sources."@types/q-1.5.2"
+      sources."@types/q-1.5.4"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
       sources."boolbase-1.0.0"
@@ -79774,7 +82285,7 @@ in
       sources."css-select-2.1.0"
       sources."css-select-base-adapter-0.1.1"
       sources."css-tree-1.0.0-alpha.37"
-      sources."css-what-3.2.1"
+      sources."css-what-3.3.0"
       (sources."csso-4.0.3" // {
         dependencies = [
           sources."css-tree-1.0.0-alpha.39"
@@ -79789,8 +82300,8 @@ in
       })
       sources."domelementtype-1.3.1"
       sources."domutils-1.7.0"
-      sources."entities-2.0.0"
-      sources."es-abstract-1.17.5"
+      sources."entities-2.0.3"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
@@ -79798,16 +82309,16 @@ in
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."has-symbols-1.0.1"
-      sources."is-callable-1.1.5"
+      sources."is-callable-1.2.0"
       sources."is-date-object-1.0.2"
-      sources."is-regex-1.0.5"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."mdn-data-2.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."nth-check-1.0.2"
-      sources."object-inspect-1.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"
@@ -79818,8 +82329,6 @@ in
       sources."sprintf-js-1.0.3"
       sources."stable-0.1.8"
       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."supports-color-5.5.0"
       sources."unquote-1.1.1"
@@ -79828,7 +82337,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Nodejs-based tool for optimizing SVG vector graphics files";
-      homepage = "https://github.com/svg/svgo";
+      homepage = https://github.com/svg/svgo;
       license = "MIT";
     };
     production = true;
@@ -80029,7 +82538,7 @@ in
       sources."fresh-0.5.2"
       sources."fs-extra-0.24.0"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-1.2.12"
+      sources."fsevents-1.2.13"
       sources."get-stream-3.0.0"
       sources."get-value-2.0.6"
       sources."glob-7.1.6"
@@ -80043,7 +82552,7 @@ in
       sources."graceful-fs-4.2.4"
       (sources."graphlib-2.1.8" // {
         dependencies = [
-          sources."lodash-4.17.15"
+          sources."lodash-4.17.19"
         ];
       })
       sources."growl-1.9.2"
@@ -80111,11 +82620,11 @@ in
         ];
       })
       sources."js-string-escape-1.0.1"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."json-refs-2.1.7"
       (sources."json-schema-deref-sync-0.6.0" // {
         dependencies = [
-          sources."lodash-4.17.15"
+          sources."lodash-4.17.19"
         ];
       })
       sources."jsonfile-2.4.0"
@@ -80187,7 +82696,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"
@@ -80244,7 +82753,7 @@ in
       sources."prepend-http-1.0.4"
       sources."process-nextick-args-2.0.1"
       sources."pseudomap-1.0.2"
-      sources."pstree.remy-1.1.7"
+      sources."pstree.remy-1.1.8"
       sources."punycode-2.1.1"
       sources."qs-4.0.0"
       sources."range-parser-1.2.1"
@@ -80382,7 +82891,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.19"
         ];
       })
       (sources."swagger-tools-0.9.16" // {
@@ -80407,7 +82916,7 @@ in
       sources."truncate-utf8-bytes-1.0.2"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.9.2"
+      sources."uglify-js-3.10.1"
       sources."undefsafe-2.0.3"
       (sources."union-value-1.0.1" // {
         dependencies = [
@@ -80474,7 +82983,7 @@ in
       sha256 = "886069ecc5eedf0371b948e8ff66e7f2943c85fe7cfdaa7183e1a3572d55852b";
     };
     dependencies = [
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -80483,7 +82992,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."bcrypt-pbkdf-1.0.2" // {
         dependencies = [
           sources."tweetnacl-0.14.5"
@@ -80497,7 +83006,7 @@ in
       sources."combined-stream-1.0.8"
       sources."core-util-is-1.0.2"
       sources."dashdash-1.14.1"
-      sources."debug-4.1.1"
+      sources."debug-4.2.0"
       sources."decamelize-1.2.0"
       sources."delayed-stream-1.0.0"
       sources."discord.js-11.6.4"
@@ -80506,7 +83015,7 @@ in
       sources."esprima-4.0.1"
       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."find-up-3.0.0"
       sources."forever-agent-0.6.1"
@@ -80514,12 +83023,12 @@ 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"
       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"
@@ -80527,12 +83036,12 @@ in
       sources."jsprim-1.4.1"
       sources."locate-path-3.0.0"
       sources."long-4.0.0"
-      sources."mime-2.4.5"
+      sources."mime-2.4.6"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."minimist-1.2.5"
       sources."module-alias-2.2.2"
-      sources."moment-2.25.3"
+      sources."moment-2.27.0"
       sources."ms-2.1.2"
       sources."node-fetch-2.6.0"
       sources."oauth-sign-0.9.0"
@@ -80549,7 +83058,7 @@ in
       sources."request-2.88.2"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sandwich-stream-2.0.2"
       sources."set-blocking-2.0.0"
@@ -80639,28 +83148,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"
@@ -80687,13 +83196,13 @@ in
       sources."concat-stream-1.6.2"
       sources."core-util-is-1.0.2"
       sources."crypt-0.0.2"
-      sources."debug-4.1.1"
+      sources."debug-4.2.0"
       sources."deep-equal-1.1.1"
       sources."deep-is-0.1.3"
       sources."define-properties-1.1.3"
       sources."diff-4.0.2"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
@@ -80721,20 +83230,20 @@ in
       sources."is-arguments-1.0.4"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.1.5"
+      sources."is-callable-1.2.0"
       sources."is-date-object-1.0.2"
       sources."is-decimal-1.0.4"
       sources."is-file-1.0.0"
       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.0.5"
+      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"
       sources."is-word-character-1.0.4"
       sources."isarray-1.0.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."json-parse-better-errors-1.0.2"
       sources."json-stable-stringify-1.0.1"
       sources."json5-2.1.3"
@@ -80742,18 +83251,18 @@ 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.19"
       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"
       sources."ms-2.1.2"
       sources."normalize-package-data-2.5.0"
       sources."number-is-nan-1.0.1"
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-is-1.1.2"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.0"
@@ -80799,9 +83308,9 @@ in
       sources."safe-buffer-5.1.2"
       sources."semver-5.7.1"
       sources."slice-ansi-0.0.4"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."sprintf-js-1.0.3"
       sources."state-toggle-1.0.3"
@@ -80810,10 +83319,7 @@ in
           sources."strip-ansi-3.0.1"
         ];
       })
-      sources."string.prototype.padstart-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.1.1"
       (sources."strip-ansi-6.0.0" // {
@@ -80863,7 +83369,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "The pluggable linting tool for text and markdown.";
-      homepage = "https://github.com/textlint/textlint/";
+      homepage = https://github.com/textlint/textlint/;
       license = "MIT";
     };
     production = true;
@@ -80879,13 +83385,13 @@ 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;
     meta = {
       description = "Latex plugin for [textlint](https://github.com/textlint/textlint &#34;textlint&#34;).";
-      homepage = "https://github.com/elzup/textlint-plugin-latex";
+      homepage = https://github.com/elzup/textlint-plugin-latex;
       license = "MIT";
     };
     production = true;
@@ -80902,29 +83408,27 @@ in
     };
     dependencies = [
       sources."define-properties-1.1.3"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
       sources."has-1.0.3"
       sources."has-symbols-1.0.1"
-      sources."is-callable-1.1.5"
+      sources."is-callable-1.2.0"
       sources."is-date-object-1.0.2"
-      sources."is-regex-1.0.5"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."match-index-1.0.3"
-      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."regexp.prototype.flags-1.3.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"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "textlint rule check that abbreviations within parentheses.";
-      homepage = "https://github.com/azu/textlint-rule-abbr-within-parentheses";
+      homepage = https://github.com/azu/textlint-rule-abbr-within-parentheses;
       license = "MIT";
     };
     production = true;
@@ -80934,67 +83438,92 @@ in
   textlint-rule-alex = nodeEnv.buildNodePackage {
     name = "textlint-rule-alex";
     packageName = "textlint-rule-alex";
-    version = "1.3.1";
+    version = "2.1.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-2.1.0.tgz";
+      sha512 = "+ctxNHWJNfO7IXMj+D4XOBHL1Gj7/vnroCjw8wByPxpCngfr/fmMYyaJ5H5v9dIQjY+WuPmpAp3xM4zkZqjHJQ==";
     };
     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/minimist-1.2.0"
+      sources."@types/normalize-package-data-2.4.0"
+      sources."@types/unist-2.0.3"
+      sources."alex-8.2.0"
+      sources."ansi-align-3.0.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-2.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-3.2.0" // {
         dependencies = [
-          sources."camelcase-4.1.0"
+          sources."camelcase-5.3.1"
+          sources."type-fest-0.3.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.1.0"
+          sources."lowercase-keys-2.0.0"
+          sources."pump-3.0.0"
+        ];
+      })
+      sources."camelcase-6.0.0"
+      (sources."camelcase-keys-6.2.2" // {
+        dependencies = [
+          sources."camelcase-5.3.1"
+        ];
+      })
+      sources."ccount-1.0.5"
       sources."chalk-2.4.2"
       sources."character-entities-1.2.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.0"
+      sources."clone-response-1.0.2"
       sources."collapse-white-space-1.0.6"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
+      sources."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-4.0.0"
       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.19.0"
-      sources."debug-4.1.1"
+      sources."cuss-1.20.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."defer-to-connect-1.1.3"
       sources."dot-prop-4.2.0"
       sources."duplexer-0.1.1"
       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-string-regexp-1.0.5"
@@ -81003,132 +83532,179 @@ in
       sources."execa-0.7.0"
       sources."extend-3.0.2"
       sources."fault-1.0.4"
-      sources."find-up-1.1.2"
+      sources."figures-3.2.0"
+      sources."find-up-4.1.0"
       sources."fn-name-2.0.1"
       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."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."got-9.6.0" // {
+        dependencies = [
+          sources."get-stream-4.1.0"
+          sources."pump-3.0.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-5.0.3"
+      sources."hast-util-has-property-1.0.4"
+      sources."hast-util-is-body-ok-link-1.0.4"
+      sources."hast-util-is-element-1.0.4"
+      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-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-npm-3.0.0"
       sources."is-obj-1.0.1"
       sources."is-object-1.0.1"
       sources."is-path-inside-1.0.1"
       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-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-yaml-3.13.1"
-      sources."latest-version-3.1.0"
+      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."keyv-3.1.0"
+      sources."kind-of-6.0.3"
+      sources."latest-version-5.1.0"
       sources."limit-spawn-0.0.3"
-      sources."load-json-file-1.1.0"
+      sources."lines-and-columns-1.1.6"
       sources."load-plugin-2.3.1"
+      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."lowercase-keys-1.0.1"
       sources."lru-cache-4.1.5"
-      (sources."make-dir-1.3.0" // {
-        dependencies = [
-          sources."pify-3.0.0"
-        ];
-      })
-      sources."map-obj-1.0.1"
+      sources."make-dir-1.3.0"
+      sources."map-obj-4.1.0"
       sources."map-stream-0.1.0"
       sources."markdown-escapes-1.0.4"
       sources."mdast-comment-marker-1.1.2"
       sources."mdast-util-to-nlcst-3.2.3"
-      sources."meow-3.7.0"
+      sources."meow-7.0.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" // {
+        dependencies = [
+          sources."arrify-1.0.1"
+        ];
+      })
       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-to-string-2.0.4"
       sources."normalize-package-data-2.5.0"
+      sources."normalize-url-4.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."object-keys-1.1.1"
       sources."once-1.4.0"
       sources."os-homedir-1.0.2"
+      sources."p-cancelable-1.1.0"
       sources."p-finally-1.0.0"
-      sources."package-json-4.0.1"
+      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-json-5.0.1"
       sources."parse-latin-4.2.1"
-      sources."path-exists-2.1.0"
+      sources."parse5-5.1.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."pify-3.0.0"
+      sources."pluralize-8.0.0"
+      sources."prepend-http-2.0.0"
       sources."process-nextick-args-1.0.7"
+      sources."property-information-5.5.0"
       sources."pseudomap-1.0.2"
       sources."pump-1.0.3"
       sources."pump-chain-1.0.0"
+      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."redent-3.0.0"
+      sources."registry-auth-token-4.2.0"
+      sources."registry-url-5.1.0"
+      sources."rehype-parse-6.0.2"
+      sources."rehype-retext-2.0.4"
       sources."remark-frontmatter-1.3.3"
-      sources."remark-message-control-4.2.0"
-      sources."remark-parse-4.0.0"
+      sources."remark-message-control-5.0.0"
+      sources."remark-parse-7.0.2"
       sources."remark-retext-3.1.3"
       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-4.3.0" // {
+        dependencies = [
+          sources."unist-util-is-4.0.2"
+          sources."unist-util-visit-2.0.3"
+          sources."unist-util-visit-parents-3.1.0"
+        ];
+      })
+      sources."retext-profanities-5.0.0"
+      sources."safe-buffer-5.2.1"
       sources."semver-5.7.1"
       sources."semver-diff-2.1.0"
       sources."shebang-command-1.2.0"
@@ -81136,6 +83712,7 @@ in
       sources."shellsubstitute-1.2.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"
@@ -81143,9 +83720,9 @@ in
           sources."xtend-2.1.2"
         ];
       })
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
       sources."split-0.2.10"
       (sources."split-transform-stream-0.1.1" // {
@@ -81159,12 +83736,11 @@ 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-3.1.0"
       sources."string_decoder-0.10.31"
-      sources."strip-ansi-4.0.0"
-      sources."strip-bom-2.0.0"
+      sources."strip-ansi-5.2.0"
       sources."strip-eof-1.0.0"
-      sources."strip-indent-1.0.1"
+      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"
@@ -81177,68 +83753,83 @@ 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."unherit-1.1.3"
-      sources."unified-6.2.0"
-      sources."unified-diff-1.0.2"
-      (sources."unified-engine-4.0.1" // {
+      (sources."unified-8.4.2" // {
         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."unified-diff-3.0.1"
+      (sources."unified-engine-7.0.0" // {
+        dependencies = [
+          sources."parse-json-4.0.0"
+        ];
+      })
+      sources."unified-message-control-2.0.0"
       sources."unique-string-1.0.0"
+      sources."unist-util-inspect-4.1.4"
       sources."unist-util-is-3.0.0"
       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-stringify-position-2.0.3"
       sources."unist-util-visit-1.4.1"
       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."update-notifier-3.0.1"
+      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."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."supports-color-6.1.0"
         ];
       })
       sources."vfile-sort-2.2.2"
       sources."vfile-statistics-1.1.4"
+      sources."web-namespaces-1.1.4"
       sources."which-1.3.1"
-      sources."widest-line-2.0.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."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."xtend-4.0.2"
       sources."yallist-2.1.2"
+      (sources."yargs-parser-18.1.3" // {
+        dependencies = [
+          sources."camelcase-5.3.1"
+        ];
+      })
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "textlint rule for alex";
-      homepage = "https://github.com/textlint-rule/textlint-rule-alex";
+      homepage = https://github.com/textlint-rule/textlint-rule-alex;
       license = "MIT";
     };
     production = true;
@@ -81263,7 +83854,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "textlint rule to check common misspellings";
-      homepage = "https://github.com/io-monad/textlint-rule-common-misspellings";
+      homepage = https://github.com/io-monad/textlint-rule-common-misspellings;
       license = "GPL-3.0";
     };
     production = true;
@@ -81280,12 +83871,12 @@ 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 = {
       description = "Textlint rule to check correct usage of diacritics";
-      homepage = "https://github.com/sapegin/textlint-rule-diacritics";
+      homepage = https://github.com/sapegin/textlint-rule-diacritics;
       license = "MIT";
     };
     production = true;
@@ -81322,7 +83913,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "textlint rule that specify the maximum word count of a sentence.";
-      homepage = "https://github.com/azu/textlint-rule-en-max-word-count";
+      homepage = https://github.com/azu/textlint-rule-en-max-word-count;
       license = "MIT";
     };
     production = true;
@@ -81375,33 +83966,31 @@ 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"
       sources."define-properties-1.1.3"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
       sources."has-1.0.3"
       sources."has-symbols-1.0.1"
       sources."inherits-2.0.4"
-      sources."is-callable-1.1.5"
+      sources."is-callable-1.2.0"
       sources."is-date-object-1.0.2"
-      sources."is-regex-1.0.5"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."object-assign-4.1.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.values-1.1.1"
       sources."readable-stream-3.6.0"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."sentence-splitter-3.2.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"
       sources."structured-source-3.0.2"
@@ -81415,7 +84004,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "textlint rule that check no start with duplicated conjunction.";
-      homepage = "https://github.com/textlint-rule/textlint-rule-no-start-duplicated-conjunction";
+      homepage = https://github.com/textlint-rule/textlint-rule-no-start-duplicated-conjunction;
       license = "MIT";
     };
     production = true;
@@ -81436,27 +84025,25 @@ in
       sources."define-properties-1.1.3"
       sources."emoji-regex-6.5.1"
       sources."end-with-1.0.2"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
       sources."has-1.0.3"
       sources."has-symbols-1.0.1"
-      sources."is-callable-1.1.5"
+      sources."is-callable-1.2.0"
       sources."is-date-object-1.0.2"
-      sources."is-regex-1.0.5"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
-      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."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"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "textlint rule that check with or without period in list item.";
-      homepage = "https://github.com/textlint-rule/textlint-rule-period-in-list-item";
+      homepage = https://github.com/textlint-rule/textlint-rule-period-in-list-item;
       license = "MIT";
     };
     production = true;
@@ -81466,16 +84053,16 @@ in
   textlint-rule-stop-words = nodeEnv.buildNodePackage {
     name = "textlint-rule-stop-words";
     packageName = "textlint-rule-stop-words";
-    version = "2.0.3";
+    version = "2.0.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-stop-words/-/textlint-rule-stop-words-2.0.3.tgz";
-      sha512 = "IcTe7w+j5w/7+EKyKOUABDnXvF5qpmceMPmsE8dsrkHJsRZ9vZILMQRLElTHsB7mWoAI8R3fXelQY1w517VTCQ==";
+      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.19"
       sources."split-lines-2.0.0"
       sources."structured-source-3.0.2"
       sources."textlint-rule-helper-2.1.1"
@@ -81486,7 +84073,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Textlint rule to find filler words, buzzwords and chiches";
-      homepage = "https://github.com/sapegin/textlint-rule-stop-words";
+      homepage = https://github.com/sapegin/textlint-rule-stop-words;
       license = "MIT";
     };
     production = true;
@@ -81502,11 +84089,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.19"
+      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"
@@ -81516,7 +84103,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "TextLint rule to check correct terms spelling";
-      homepage = "https://github.com/sapegin/textlint-rule-terminology";
+      homepage = https://github.com/sapegin/textlint-rule-terminology;
       license = "MIT";
     };
     production = true;
@@ -81534,29 +84121,27 @@ in
     dependencies = [
       sources."array-includes-3.1.1"
       sources."define-properties-1.1.3"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
       sources."has-1.0.3"
       sources."has-symbols-1.0.1"
-      sources."is-callable-1.1.5"
+      sources."is-callable-1.2.0"
       sources."is-capitalized-1.0.0"
       sources."is-date-object-1.0.2"
-      sources."is-regex-1.0.5"
+      sources."is-regex-1.1.1"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
-      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."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"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "textlint rule that check unexpanded acronym word.";
-      homepage = "https://github.com/textlint-rule/textlint-rule-unexpanded-acronym";
+      homepage = https://github.com/textlint-rule/textlint-rule-unexpanded-acronym;
       license = "MIT";
     };
     production = true;
@@ -81572,12 +84157,12 @@ 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"
-      sources."e-prime-0.10.3"
+      sources."e-prime-0.10.4"
       sources."function-bind-1.1.1"
       sources."has-symbols-1.0.1"
       sources."no-cliches-0.1.1"
@@ -81596,7 +84181,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "textlint rule to check your English style with write good";
-      homepage = "https://github.com/textlint-rule/textlint-rule-write-good";
+      homepage = https://github.com/textlint-rule/textlint-rule-write-good;
       license = "MIT";
     };
     production = true;
@@ -81620,14 +84205,14 @@ in
       sources."@types/debug-4.1.5"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
-      sources."@types/node-13.13.4"
+      sources."@types/node-14.0.27"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-1.0.0"
       sources."accepts-1.3.7"
       sources."after-0.8.2"
       sources."agent-base-4.3.0"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-4.2.1"
       sources."aproba-1.2.0"
@@ -81642,12 +84227,12 @@ in
       sources."array-flatten-1.1.1"
       sources."arraybuffer.slice-0.0.7"
       sources."asn1-0.2.4"
-      sources."asn1.js-5.3.0"
+      sources."asn1.js-5.4.1"
       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.9.1"
+      sources."aws4-1.10.0"
       sources."backo2-1.0.2"
       sources."backoff-2.5.0"
       sources."balanced-match-1.0.0"
@@ -81657,7 +84242,7 @@ in
       sources."bcryptjs-2.4.3"
       sources."better-assert-1.0.2"
       sources."blob-0.0.5"
-      sources."bn.js-4.11.8"
+      sources."bn.js-4.11.9"
       sources."body-parser-1.19.0"
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
@@ -81719,15 +84304,16 @@ in
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-3.4.1" // {
+      (sources."engine.io-3.4.2" // {
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
           sources."ms-2.1.2"
         ];
       })
-      (sources."engine.io-client-3.4.1" // {
+      (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"
@@ -81748,9 +84334,9 @@ in
       })
       sources."extend-3.0.2"
       sources."extsprintf-1.4.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-text-encoding-1.0.2"
+      sources."fast-text-encoding-1.0.3"
       sources."file-type-14.1.3"
       sources."filename-reserved-regex-2.0.0"
       sources."filenamify-4.1.0"
@@ -81770,7 +84356,7 @@ in
       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"
@@ -81818,7 +84404,7 @@ in
       })
       sources."jwa-1.4.1"
       sources."jws-3.2.2"
-      sources."keyv-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"
@@ -81841,7 +84427,7 @@ in
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
       sources."nan-2.14.1"
-      (sources."needle-2.4.1" // {
+      (sources."needle-2.5.0" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."ms-2.1.2"
@@ -81870,9 +84456,9 @@ in
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
       sources."p-cancelable-2.0.0"
-      sources."p-event-4.1.0"
+      sources."p-event-4.2.0"
       sources."p-finally-1.0.0"
-      sources."p-timeout-2.0.1"
+      sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
@@ -81922,8 +84508,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 = [
@@ -81933,7 +84519,7 @@ in
       })
       sources."responselike-2.0.0"
       sources."rimraf-2.7.1"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
       sources."semver-7.1.3"
@@ -81965,7 +84551,7 @@ in
           })
         ];
       })
-      (sources."socket.io-parser-3.4.0" // {
+      (sources."socket.io-parser-3.4.1" // {
         dependencies = [
           sources."debug-4.1.1"
           sources."ms-2.1.2"
@@ -81985,12 +84571,7 @@ in
       sources."strip-ansi-3.0.1"
       sources."strip-json-comments-2.0.1"
       sources."strip-outer-1.0.1"
-      (sources."strtok3-6.0.0" // {
-        dependencies = [
-          sources."debug-4.1.1"
-          sources."ms-2.1.2"
-        ];
-      })
+      sources."strtok3-6.0.4"
       sources."supports-color-7.1.0"
       sources."tar-4.4.13"
       sources."tlds-1.207.0"
@@ -82022,7 +84603,7 @@ in
       sources."wide-align-1.1.3"
       sources."with-open-file-0.1.7"
       sources."wrappy-1.0.2"
-      sources."ws-7.2.5"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."yallist-3.1.1"
       sources."yarn-1.22.0"
@@ -82031,7 +84612,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "The self-hosted Web IRC client";
-      homepage = "https://thelounge.chat/";
+      homepage = https://thelounge.chat/;
       license = "MIT";
     };
     production = true;
@@ -82041,15 +84622,15 @@ in
   three = nodeEnv.buildNodePackage {
     name = "three";
     packageName = "three";
-    version = "0.116.1";
+    version = "0.119.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/three/-/three-0.116.1.tgz";
-      sha512 = "l2JCMiA/lVZAuSrLWRYMalvpR+0j8hbIhCpfs4V6JFnw2+JQEQJ5HltNpfFr+9TDpQts1BhtcISehWf/xBGPvQ==";
+      url = "https://registry.npmjs.org/three/-/three-0.119.1.tgz";
+      sha512 = "GHyh/RiUfQ5VTiWIVRRTANYoXc1PFB1y+jDVRTb649nif1uX1F06PT1TKU3k2+F/MN4UJ3PWvQB53fY2OqKqKw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
       description = "JavaScript 3D library";
-      homepage = "https://threejs.org/";
+      homepage = https://threejs.org/;
       license = "MIT";
     };
     production = true;
@@ -82084,13 +84665,13 @@ in
     };
     dependencies = [
       sources."adm-zip-0.4.13"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       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.9.1"
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
@@ -82108,7 +84689,7 @@ in
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
       sources."eyes-0.1.8"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       (sources."fields-0.1.24" // {
         dependencies = [
@@ -82123,7 +84704,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"
@@ -82137,12 +84718,12 @@ 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.19"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."minimatch-3.0.4"
       sources."minimist-0.0.10"
-      sources."moment-2.25.3"
+      sources."moment-2.27.0"
       (sources."node-appc-0.2.49" // {
         dependencies = [
           sources."temp-0.8.4"
@@ -82159,7 +84740,7 @@ in
       sources."qs-6.5.2"
       sources."request-2.88.0"
       sources."rimraf-2.6.3"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-5.5.1"
       sources."source-map-0.6.1"
@@ -82202,10 +84783,10 @@ in
   triton = nodeEnv.buildNodePackage {
     name = "triton";
     packageName = "triton";
-    version = "7.9.0";
+    version = "7.10.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.10.0.tgz";
+      sha512 = "IcnXbISVdJtwhTDpbO+LAfOF37G4uflrZMSnf4VPX1aMygOutXvFQcLz3ST0/1EmaZuPOHHyUxnaDuPGSU93pA==";
     };
     dependencies = [
       sources."asn1-0.2.4"
@@ -82261,7 +84842,7 @@ in
         ];
       })
       sources."keep-alive-agent-0.0.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       (sources."lomstream-1.1.0" // {
         dependencies = [
           sources."assert-plus-0.1.5"
@@ -82274,7 +84855,7 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-0.0.8"
       sources."mkdirp-0.5.1"
-      sources."moment-2.25.3"
+      sources."moment-2.27.0"
       sources."mooremachine-2.3.0"
       sources."mute-stream-0.0.8"
       sources."mv-2.1.1"
@@ -82309,7 +84890,7 @@ in
         ];
       })
       sources."rimraf-2.4.4"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safe-json-stringify-1.2.0"
       sources."safer-buffer-2.1.2"
       sources."semver-5.1.0"
@@ -82390,7 +84971,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Joyent Triton CLI and client (https://www.joyent.com/triton)";
-      homepage = "https://github.com/joyent/node-triton";
+      homepage = https://github.com/joyent/node-triton;
       license = "MPL-2.0";
     };
     production = true;
@@ -82432,14 +85013,14 @@ in
       sources."strip-ansi-3.0.1"
       sources."supports-color-2.0.0"
       sources."temp-0.8.4"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."wordwrap-0.0.3"
       sources."wrappy-1.0.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "TSUN: a repl for TypeScript Upgraded Node";
-      homepage = "https://github.com/HerringtonDarkholme/typescript-repl";
+      homepage = https://github.com/HerringtonDarkholme/typescript-repl;
       license = "MIT";
     };
     production = true;
@@ -82472,15 +85053,15 @@ in
   typescript = nodeEnv.buildNodePackage {
     name = "typescript";
     packageName = "typescript";
-    version = "3.8.3";
+    version = "3.9.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz";
-      sha512 = "MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==";
+      url = "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz";
+      sha512 = "BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
       description = "TypeScript is a language for application scale JavaScript development";
-      homepage = "https://www.typescriptlang.org/";
+      homepage = https://www.typescriptlang.org/;
       license = "Apache-2.0";
     };
     production = true;
@@ -82526,18 +85107,15 @@ in
   uglify-js = nodeEnv.buildNodePackage {
     name = "uglify-js";
     packageName = "uglify-js";
-    version = "3.9.2";
+    version = "3.10.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.2.tgz";
-      sha512 = "zGVwKslUAD/EeqOrD1nQaBmXIHl1Vw371we8cvS8I6mYK9rmgX5tv8AAeJdfsQ3Kk5mGax2SVV/AizxdNGhl7Q==";
+      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.1.tgz";
+      sha512 = "RjxApKkrPJB6kjJxQS3iZlf///REXWYxYJxO/MpmlQzVkDWVI3PSnCBWezMecmTU/TRkNxrl8bmsfFQCp+LO+Q==";
     };
-    dependencies = [
-      sources."commander-2.20.3"
-    ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "JavaScript parser, mangler/compressor and beautifier toolkit";
-      homepage = "https://github.com/mishoo/UglifyJS2#readme";
+      homepage = "https://github.com/mishoo/UglifyJS#readme";
       license = "BSD-2-Clause";
     };
     production = true;
@@ -82547,17 +85125,18 @@ in
   ungit = nodeEnv.buildNodePackage {
     name = "ungit";
     packageName = "ungit";
-    version = "1.5.6";
+    version = "1.5.9";
     src = fetchurl {
-      url = "https://registry.npmjs.org/ungit/-/ungit-1.5.6.tgz";
-      sha512 = "cOXsZn+vjtqT8UU74DeKseLgMBl3i8I0/pYAP6kCCqZOcoi8qtxiCwkzbkWV4bMAR2VQx3N1AkemPxbQIqRteg==";
+      url = "https://registry.npmjs.org/ungit/-/ungit-1.5.9.tgz";
+      sha512 = "H+CLr9LrO0xZ0UbDz8K3KK//oBc3XDuj4he86Xnw/zjIPJlknOuiHdmPRYTlgo7/0zGEmvVgxZ+m3aqUMIpIhQ==";
     };
     dependencies = [
-      sources."@primer/octicons-9.6.0"
+      sources."@dabh/diagnostics-2.0.2"
+      sources."@primer/octicons-10.0.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.4"
+      sources."@types/node-14.0.27"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."after-0.8.2"
@@ -82570,17 +85149,15 @@ 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."asynckit-0.4.0"
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.0"
       sources."base64-arraybuffer-0.1.5"
       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.13.0"
+      sources."blueimp-md5-2.16.0"
       sources."body-parser-1.19.0"
       sources."brace-expansion-1.1.11"
       sources."bytes-3.1.0"
@@ -82595,18 +85172,12 @@ in
       sources."cliui-6.0.0"
       sources."clone-2.1.2"
       sources."clone-response-1.0.2"
-      sources."color-3.1.2"
+      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" // {
-        dependencies = [
-          sources."color-3.0.0"
-        ];
-      })
-      sources."combined-stream-1.0.8"
+      sources."colorspace-1.1.2"
       sources."component-bind-1.0.0"
       sources."component-emitter-1.2.1"
       sources."component-inherit-0.0.3"
@@ -82616,44 +85187,40 @@ in
       sources."cookie-0.4.0"
       sources."cookie-parser-1.4.5"
       sources."cookie-signature-1.0.6"
-      sources."cookiejar-2.1.2"
       sources."core-util-is-1.0.2"
       sources."crossroads-0.12.2"
       sources."debug-2.6.9"
       sources."decamelize-1.2.0"
       sources."decompress-response-3.3.0"
-      sources."dedent-0.7.0"
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-1.1.3"
-      sources."delayed-stream-1.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."diagnostics-1.1.1"
       sources."diff-4.0.2"
-      sources."diff2html-3.1.6"
+      sources."diff2html-3.1.11"
       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.1" // {
+      (sources."engine.io-3.4.2" // {
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
           sources."ms-2.1.2"
         ];
       })
-      (sources."engine.io-client-3.4.1" // {
+      (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."env-variable-0.0.6"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
       sources."eve-0.5.4"
@@ -82665,17 +85232,16 @@ in
         ];
       })
       sources."fast-safe-stringify-2.0.7"
-      sources."fecha-2.3.3"
+      sources."fecha-4.2.0"
       sources."finalhandler-1.1.2"
       sources."find-up-4.1.0"
-      sources."form-data-3.0.0"
-      sources."formidable-1.2.2"
+      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.1.0"
+      sources."getmac-5.11.0"
       sources."glob-7.1.6"
       sources."got-9.6.0"
       sources."has-binary2-1.0.3"
@@ -82689,30 +85255,30 @@ in
       sources."http-cache-semantics-4.1.0"
       sources."http-errors-1.7.2"
       sources."iconv-lite-0.4.24"
-      sources."ignore-5.1.4"
+      sources."ignore-5.1.8"
       sources."indexof-0.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.3"
       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.4.1"
-      sources."jquery-ui-bundle-1.12.1"
+      sources."jquery-3.5.1"
+      sources."jquery-ui-1.12.1"
       sources."json-buffer-3.0.0"
       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."logform-2.1.2" // {
+      sources."lodash-4.17.19"
+      (sources."logform-2.2.0" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -82734,10 +85300,10 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-1.0.4"
-      sources."moment-2.24.0"
+      sources."moment-2.27.0"
       sources."ms-2.0.0"
       sources."negotiator-0.6.2"
-      sources."node-cache-5.1.0"
+      sources."node-cache-5.1.2"
       sources."nopt-1.0.10"
       sources."normalize-url-4.5.0"
       sources."nprogress-0.2.0"
@@ -82746,8 +85312,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.3"
+      sources."one-time-1.0.0"
+      sources."open-7.0.4"
       sources."p-cancelable-1.1.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
@@ -82779,7 +85345,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"
@@ -82787,7 +85353,7 @@ in
       sources."rimraf-3.0.2"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.1.3"
+      sources."semver-7.3.2"
       (sources."send-0.17.1" // {
         dependencies = [
           sources."ms-2.1.1"
@@ -82818,7 +85384,7 @@ in
           })
         ];
       })
-      (sources."socket.io-parser-3.4.0" // {
+      (sources."socket.io-parser-3.4.1" // {
         dependencies = [
           sources."debug-4.1.1"
           sources."ms-2.1.2"
@@ -82829,21 +85395,11 @@ in
       sources."string-width-4.2.0"
       (sources."string_decoder-1.3.0" // {
         dependencies = [
-          sources."safe-buffer-5.2.0"
+          sources."safe-buffer-5.2.1"
         ];
       })
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-2.0.1"
-      (sources."superagent-5.2.2" // {
-        dependencies = [
-          sources."component-emitter-1.3.0"
-          sources."debug-4.1.1"
-          sources."mime-2.4.5"
-          sources."ms-2.1.2"
-          sources."qs-6.9.4"
-          sources."semver-6.3.0"
-        ];
-      })
       (sources."temp-0.9.1" // {
         dependencies = [
           sources."rimraf-2.6.3"
@@ -82862,8 +85418,8 @@ 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-transport-4.3.0" // {
+      sources."winston-3.3.3"
+      (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."isarray-1.0.0"
           sources."readable-stream-2.3.7"
@@ -82872,7 +85428,7 @@ in
       })
       sources."wrap-ansi-6.2.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.2.5"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."y18n-4.0.0"
       sources."yallist-2.1.2"
@@ -82890,6 +85446,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";
@@ -82966,7 +85540,7 @@ in
     };
     dependencies = [
       sources."absolute-0.0.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."ansi-escapes-3.2.0"
       sources."ansi-red-0.1.1"
       sources."ansi-regex-3.0.0"
@@ -82982,7 +85556,7 @@ in
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
@@ -83046,7 +85620,7 @@ in
       sources."extend-shallow-2.0.1"
       sources."external-editor-3.1.0"
       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."fd-slicer-1.1.0"
       sources."figures-2.0.0"
@@ -83065,11 +85639,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"
@@ -83099,7 +85672,7 @@ in
       sources."isarray-1.0.0"
       sources."isstream-0.1.2"
       sources."isurl-1.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"
@@ -83107,7 +85680,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.19"
       sources."log-symbols-2.2.0"
       sources."lowercase-keys-1.0.1"
       (sources."make-dir-1.3.0" // {
@@ -83132,7 +85705,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"
@@ -83168,14 +85741,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."safe-buffer-5.2.0"
+      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"
@@ -83211,12 +85780,12 @@ in
       sources."toml-2.3.6"
       sources."tough-cookie-2.5.0"
       sources."trim-repeated-1.0.0"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uglify-js-3.9.2"
+      sources."uglify-js-3.10.1"
       sources."uid-0.0.2"
-      sources."unbzip2-stream-1.4.2"
+      sources."unbzip2-stream-1.4.3"
       sources."unyield-0.0.1"
       sources."unzip-response-2.0.1"
       sources."uri-js-4.2.2"
@@ -83255,9 +85824,9 @@ in
       sha512 = "/dd2bJLxOmX8Ie0EPTlmU+F8cxAekn/1m8K9OAFoijm4fc8SdHznFUUEKuz2RMMhsaL5+rccj8xLFAJELYNbaA==";
     };
     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.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"
@@ -83273,14 +85842,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-13.13.4"
+      sources."@types/node-14.0.27"
       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.3"
       sources."ajv-keywords-2.1.1"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
@@ -83292,20 +85861,7 @@ in
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
-      (sources."anymatch-1.3.2" // {
-        dependencies = [
-          sources."arr-diff-2.0.0"
-          sources."array-unique-0.2.1"
-          sources."braces-1.8.5"
-          sources."expand-brackets-0.1.5"
-          sources."extglob-0.3.2"
-          sources."is-buffer-1.1.6"
-          sources."is-extglob-1.0.0"
-          sources."is-glob-2.0.1"
-          sources."kind-of-3.2.2"
-          sources."micromatch-2.3.11"
-        ];
-      })
+      sources."anymatch-3.1.1"
       sources."argparse-1.0.10"
       sources."arr-diff-4.0.0"
       sources."arr-flatten-1.1.0"
@@ -83319,7 +85875,6 @@ in
       sources."assign-symbols-1.0.0"
       sources."astral-regex-1.0.0"
       sources."async-1.5.2"
-      sources."async-each-1.0.3"
       sources."atob-2.1.2"
       (sources."babel-code-frame-6.26.0" // {
         dependencies = [
@@ -83339,8 +85894,7 @@ in
           sources."define-property-1.0.0"
         ];
       })
-      sources."binary-extensions-1.13.1"
-      sources."bindings-1.5.0"
+      sources."binary-extensions-2.1.0"
       sources."bootstrap-vue-helper-json-1.1.1"
       (sources."boxen-3.2.0" // {
         dependencies = [
@@ -83382,11 +85936,13 @@ in
       sources."character-entities-legacy-1.1.4"
       sources."character-reference-invalid-1.1.4"
       sources."chardet-0.7.0"
-      (sources."chokidar-1.5.2" // {
+      (sources."chokidar-3.0.2" // {
         dependencies = [
-          sources."glob-parent-2.0.0"
-          sources."is-extglob-1.0.0"
-          sources."is-glob-2.0.1"
+          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"
@@ -83476,22 +86032,22 @@ in
       (sources."eslint-5.16.0" // {
         dependencies = [
           sources."cross-spawn-6.0.5"
-          sources."debug-4.1.1"
+          sources."debug-4.2.0"
           sources."ignore-4.0.6"
         ];
       })
       (sources."eslint-plugin-vue-6.2.2" // {
         dependencies = [
-          sources."acorn-7.1.1"
-          sources."debug-4.1.1"
-          sources."eslint-scope-5.0.0"
+          sources."acorn-7.4.0"
+          sources."debug-4.2.0"
+          sources."eslint-scope-5.1.0"
           sources."espree-6.2.1"
-          sources."vue-eslint-parser-7.0.0"
+          sources."vue-eslint-parser-7.1.0"
         ];
       })
       sources."eslint-scope-4.0.3"
       sources."eslint-utils-1.4.3"
-      sources."eslint-visitor-keys-1.1.0"
+      sources."eslint-visitor-keys-1.3.0"
       sources."espree-5.0.1"
       sources."esprima-4.0.1"
       (sources."esquery-1.3.1" // {
@@ -83524,15 +86080,6 @@ in
           sources."ms-2.0.0"
         ];
       })
-      (sources."expand-range-1.8.2" // {
-        dependencies = [
-          sources."fill-range-2.2.4"
-          sources."is-buffer-1.1.6"
-          sources."is-number-2.1.0"
-          sources."isobject-2.1.0"
-          sources."kind-of-3.2.2"
-        ];
-      })
       sources."extend-3.0.2"
       (sources."extend-shallow-3.0.2" // {
         dependencies = [
@@ -83546,15 +86093,13 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-glob-2.2.7"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fault-1.0.4"
       sources."figures-2.0.0"
       sources."file-entry-cache-5.0.1"
-      sources."file-uri-to-path-1.0.0"
-      sources."filename-regex-2.0.1"
       (sources."fill-range-4.0.0" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -83565,24 +86110,16 @@ in
       sources."flatted-2.0.2"
       sources."fn-name-2.0.1"
       sources."for-in-1.0.2"
-      sources."for-own-0.1.5"
       sources."format-0.2.2"
       sources."fragment-cache-0.2.1"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-1.2.12"
+      sources."fsevents-2.1.3"
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
       sources."get-caller-file-1.0.3"
       sources."get-stream-3.0.0"
       sources."get-value-2.0.6"
       sources."glob-7.1.6"
-      (sources."glob-base-0.3.0" // {
-        dependencies = [
-          sources."glob-parent-2.0.0"
-          sources."is-extglob-1.0.0"
-          sources."is-glob-2.0.1"
-        ];
-      })
       (sources."glob-parent-3.1.0" // {
         dependencies = [
           sources."is-glob-3.1.0"
@@ -83616,14 +86153,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-body-ok-link-1.0.4"
       sources."hast-util-is-element-1.0.4"
       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"
@@ -83649,15 +86186,13 @@ in
       sources."is-alphabetical-1.0.4"
       sources."is-alphanumerical-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-2.0.4"
       sources."is-ci-2.0.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-decimal-1.0.4"
       sources."is-descriptor-1.0.2"
-      sources."is-dotfile-1.0.3"
       sources."is-empty-1.2.0"
-      sources."is-equal-shallow-0.1.3"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
@@ -83677,8 +86212,6 @@ in
       sources."is-path-inside-1.0.1"
       sources."is-plain-obj-1.1.0"
       sources."is-plain-object-2.0.4"
-      sources."is-posix-bracket-0.1.1"
-      sources."is-primitive-2.0.0"
       sources."is-resolvable-1.1.0"
       sources."is-stream-1.1.0"
       sources."is-utf8-0.2.1"
@@ -83693,7 +86226,7 @@ in
         ];
       })
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."json-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-traverse-0.4.1"
@@ -83708,13 +86241,11 @@ 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.19"
       sources."lodash.assign-4.2.0"
-      sources."lodash.assigninwith-4.2.0"
-      sources."lodash.defaults-4.0.1"
+      sources."lodash.defaults-4.2.0"
       sources."lodash.iteratee-4.7.0"
       sources."lodash.merge-4.6.2"
-      sources."lodash.rest-4.0.5"
       sources."lodash.unescape-4.0.1"
       sources."loglevel-1.6.8"
       (sources."loglevel-colored-level-prefix-1.0.0" // {
@@ -83736,7 +86267,6 @@ in
       sources."map-obj-2.0.0"
       sources."map-visit-1.0.0"
       sources."markdown-table-0.4.0"
-      sources."math-random-1.0.4"
       (sources."mem-4.3.0" // {
         dependencies = [
           sources."mimic-fn-2.1.0"
@@ -83747,7 +86277,7 @@ in
           sources."read-pkg-up-3.0.0"
         ];
       })
-      sources."merge2-1.3.0"
+      sources."merge2-1.4.1"
       sources."micromatch-3.1.10"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
@@ -83763,13 +86293,12 @@ in
       sources."mout-0.5.0"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.7"
-      sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."natural-compare-1.4.0"
       sources."nice-try-1.0.5"
       sources."nopt-4.0.3"
       sources."normalize-package-data-2.5.0"
-      sources."normalize-path-2.1.1"
+      sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.0"
       sources."npm-prefix-1.2.0"
       sources."npm-run-path-2.0.2"
@@ -83791,7 +86320,6 @@ in
         ];
       })
       sources."object-visit-1.0.1"
-      sources."object.omit-2.0.1"
       sources."object.pick-1.3.0"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
@@ -83821,12 +86349,6 @@ in
       sources."parent-module-1.0.1"
       sources."parse-entities-1.2.2"
       sources."parse-gitignore-1.0.1"
-      (sources."parse-glob-3.0.4" // {
-        dependencies = [
-          sources."is-extglob-1.0.0"
-          sources."is-glob-2.0.1"
-        ];
-      })
       sources."parse-json-4.0.0"
       sources."pascalcase-0.1.1"
       sources."path-dirname-1.0.2"
@@ -83836,6 +86358,7 @@ in
       sources."path-key-2.0.1"
       sources."path-parse-1.0.6"
       sources."path-type-3.0.0"
+      sources."picomatch-2.2.2"
       sources."pify-3.0.0"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
@@ -83853,7 +86376,6 @@ in
       sources."posix-character-classes-0.1.1"
       sources."prelude-ls-1.1.2"
       sources."prepend-http-2.0.0"
-      sources."preserve-0.2.0"
       sources."prettier-1.19.1"
       (sources."prettier-eslint-8.8.2" // {
         dependencies = [
@@ -83893,11 +86415,6 @@ in
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."quick-lru-1.1.0"
-      (sources."randomatic-3.1.1" // {
-        dependencies = [
-          sources."is-number-4.0.0"
-        ];
-      })
       sources."rc-1.2.8"
       sources."read-pkg-3.0.0"
       (sources."read-pkg-up-4.0.0" // {
@@ -83910,13 +86427,12 @@ in
         ];
       })
       sources."readable-stream-2.3.7"
-      sources."readdirp-2.2.1"
+      sources."readdirp-3.4.0"
       sources."redent-2.0.0"
       sources."regenerator-runtime-0.11.1"
-      sources."regex-cache-0.4.4"
       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" // {
@@ -83931,7 +86447,6 @@ in
           sources."stringify-entities-1.3.2"
         ];
       })
-      sources."remove-trailing-separator-1.1.0"
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
       sources."replace-ext-1.0.0"
@@ -83953,7 +86468,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"
@@ -84009,9 +86524,9 @@ in
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
       sources."space-separated-tokens-1.1.5"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.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"
@@ -84042,7 +86557,7 @@ in
       sources."strip-eof-1.0.0"
       sources."strip-indent-2.0.0"
       sources."strip-json-comments-2.0.1"
-      (sources."stylint-1.5.9" // {
+      (sources."stylint-2.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
           sources."ansi-styles-2.2.1"
@@ -84058,7 +86573,6 @@ in
           sources."os-locale-1.4.0"
           sources."parse-json-2.2.0"
           sources."path-exists-2.1.0"
-          sources."path-is-absolute-1.0.0"
           sources."path-type-1.1.0"
           sources."pify-2.3.0"
           sources."read-pkg-1.1.0"
@@ -84072,15 +86586,16 @@ 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"
         ];
       })
-      sources."stylus-supremacy-2.14.0"
+      sources."stylus-supremacy-2.14.5"
       sources."supports-color-5.5.0"
       sources."symbol-0.2.3"
       (sources."table-5.4.6" // {
@@ -84108,13 +86623,13 @@ in
       sources."trim-newlines-2.0.0"
       sources."trim-trailing-lines-1.1.3"
       sources."trough-1.0.5"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."tslint-5.20.1"
       sources."tsutils-2.29.0"
       sources."type-check-0.3.2"
       sources."type-fest-0.3.1"
       sources."typedarray-0.0.6"
-      sources."typescript-3.8.3"
+      sources."typescript-3.9.7"
       (sources."typescript-eslint-parser-16.0.1" // {
         dependencies = [
           sources."semver-5.5.0"
@@ -84174,7 +86689,7 @@ in
       sources."user-home-2.0.0"
       sources."util-deprecate-1.0.2"
       sources."validate-npm-package-license-3.0.4"
-      sources."vfile-4.1.0"
+      sources."vfile-4.2.0"
       sources."vfile-location-2.0.6"
       sources."vfile-message-2.0.4"
       (sources."vfile-reporter-6.0.1" // {
@@ -84189,9 +86704,10 @@ in
       })
       sources."vfile-sort-2.2.2"
       sources."vfile-statistics-1.1.4"
-      (sources."vscode-css-languageservice-4.1.2" // {
+      (sources."vscode-css-languageservice-4.3.1" // {
         dependencies = [
-          sources."vscode-uri-2.1.1"
+          sources."vscode-languageserver-types-3.16.0-next.2"
+          sources."vscode-uri-2.1.2"
         ];
       })
       sources."vscode-emmet-helper-1.2.17"
@@ -84205,7 +86721,7 @@ in
       sources."vscode-uri-1.0.8"
       (sources."vue-eslint-parser-6.0.5" // {
         dependencies = [
-          sources."debug-4.1.1"
+          sources."debug-4.2.0"
         ];
       })
       sources."vue-onsenui-helper-json-1.0.2"
@@ -84242,7 +86758,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "vue-language-server";
-      homepage = "https://github.com/vuejs/vetur/tree/master/server";
+      homepage = https://github.com/vuejs/vetur/tree/master/server;
       license = "MIT";
     };
     production = true;
@@ -84252,15 +86768,15 @@ in
   web-ext = nodeEnv.buildNodePackage {
     name = "web-ext";
     packageName = "web-ext";
-    version = "4.2.0";
+    version = "5.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/web-ext/-/web-ext-4.2.0.tgz";
-      sha512 = "WM03BEeC7CVw4PV8lwXKO6ag00MYdwMMe1SAJJfxz0uNMbTu7cYoH6Ia+e2DnAzpeOJLKCeL1IXvgxZSwVp4/Q==";
+      url = "https://registry.npmjs.org/web-ext/-/web-ext-5.0.0.tgz";
+      sha512 = "K5rzVijxNbOjxv+au1Sj7J82s1/CCyBQ9bhJE9TWdOD3OLELhC3bWJHyNJ1u2sT+kf8guaJjFvPnd6WG67PHtw==";
     };
     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.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"
@@ -84270,47 +86786,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.9.6"
+      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-13.13.4"
+      sources."@types/node-14.0.27"
       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.23.0" // {
-        dependencies = [
-          sources."@babel/runtime-7.9.2"
-          sources."decamelize-1.2.0"
-          sources."yargs-15.3.1"
-        ];
-      })
-      sources."adm-zip-0.4.14"
-      sources."ajv-6.12.0"
-      sources."ajv-keywords-1.5.1"
+      sources."addons-linter-2.1.0"
+      sources."adm-zip-0.4.16"
+      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."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-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"
@@ -84344,18 +86848,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.9.1"
-      (sources."babel-code-frame-6.26.0" // {
-        dependencies = [
-          sources."ansi-styles-2.2.1"
-          sources."chalk-1.1.3"
-          sources."js-tokens-3.0.2"
-          sources."supports-color-2.0.0"
-        ];
-      })
+      sources."aws4-1.10.0"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -84364,7 +86861,7 @@ 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" // {
         dependencies = [
@@ -84382,14 +86879,19 @@ in
       })
       sources."bluebird-2.9.34"
       sources."boolbase-1.0.0"
-      sources."boxen-4.2.0"
-      sources."brace-expansion-1.1.11"
-      (sources."braces-2.3.2" // {
+      (sources."boxen-4.2.0" // {
         dependencies = [
-          sources."extend-shallow-2.0.1"
-          sources."is-extendable-0.1.1"
+          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"
+          sources."string-width-4.2.0"
+          sources."strip-ansi-6.0.0"
         ];
       })
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
       sources."buffer-5.6.0"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -84397,34 +86899,30 @@ 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 = [
           sources."lowercase-keys-2.0.0"
         ];
       })
-      sources."caller-path-0.1.0"
-      sources."callsites-0.2.0"
-      sources."camelcase-5.3.1"
+      sources."callsites-3.1.0"
+      sources."camelcase-6.0.0"
       sources."caseless-0.12.0"
-      sources."chalk-3.0.0"
-      sources."chardet-0.7.0"
+      sources."chalk-4.1.0"
       sources."cheerio-1.0.0-rc.3"
-      (sources."chokidar-2.1.8" // {
+      (sources."chokidar-3.4.1" // {
         dependencies = [
-          sources."fsevents-1.2.12"
           sources."normalize-path-3.0.0"
         ];
       })
-      (sources."chrome-launcher-0.13.1" // {
+      (sources."chrome-launcher-0.13.4" // {
         dependencies = [
           sources."mkdirp-0.5.5"
           sources."rimraf-3.0.2"
         ];
       })
       sources."ci-info-2.0.0"
-      sources."circular-json-0.3.3"
       (sources."class-utils-0.3.6" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -84443,18 +86941,17 @@ in
         ];
       })
       sources."cli-boxes-2.2.0"
-      sources."cli-cursor-2.1.0"
-      sources."cli-width-2.2.1"
       (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."clone-1.0.4"
       sources."clone-response-1.0.2"
-      sources."co-4.6.0"
-      sources."code-point-at-1.1.0"
       sources."collection-visit-1.0.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
@@ -84482,7 +86979,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" // {
@@ -84492,19 +86988,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."d-1.0.1"
       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"
@@ -84517,11 +87008,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."decamelize-1.2.0"
-          sources."yargs-15.3.1"
         ];
       })
       sources."doctrine-3.0.0"
@@ -84534,97 +87023,31 @@ in
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ecdsa-sig-formatter-1.0.11"
-      sources."emoji-regex-8.0.0"
+      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.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
-      sources."es5-ext-0.10.53"
       sources."es6-error-4.1.1"
-      sources."es6-iterator-2.0.3"
-      sources."es6-map-0.1.5"
       sources."es6-promise-2.3.0"
-      sources."es6-promisify-6.1.0"
-      (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."es6-promisify-6.1.1"
+      sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
-      sources."escope-3.6.0"
-      (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."debug-4.1.1"
-          sources."espree-5.0.1"
-          sources."has-flag-3.0.0"
-          sources."mkdirp-0.5.5"
+          sources."ansi-regex-5.0.0"
+          sources."debug-4.2.0"
           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."eslint-plugin-no-unsafe-innerhtml-1.0.16" // {
-        dependencies = [
-          sources."acorn-5.7.4"
-          (sources."acorn-jsx-3.0.1" // {
-            dependencies = [
-              sources."acorn-3.3.0"
-            ];
-          })
-          sources."ajv-4.11.8"
-          sources."ansi-escapes-1.4.0"
-          sources."ansi-regex-3.0.0"
-          sources."ansi-styles-2.2.1"
-          sources."chalk-1.1.3"
-          sources."cli-cursor-1.0.2"
-          sources."doctrine-2.1.0"
-          sources."eslint-3.19.0"
-          sources."espree-3.5.4"
-          sources."figures-1.7.0"
-          sources."file-entry-cache-2.0.0"
-          sources."flat-cache-1.3.4"
-          sources."globals-9.18.0"
-          sources."ignore-3.3.10"
-          sources."inquirer-0.12.0"
-          sources."is-fullwidth-code-point-1.0.0"
-          sources."mkdirp-0.5.5"
-          sources."onetime-1.1.0"
-          sources."progress-1.1.8"
-          sources."restore-cursor-1.0.1"
-          sources."run-async-0.1.0"
-          sources."slice-ansi-0.0.4"
-          sources."string-width-1.0.2"
-          sources."strip-ansi-4.0.0"
-          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."is-fullwidth-code-point-2.0.0"
-              sources."string-width-2.1.1"
-            ];
-          })
-          sources."write-0.2.1"
-        ];
-      })
-      sources."eslint-scope-4.0.3"
-      sources."eslint-utils-1.4.3"
-      sources."eslint-visitor-keys-1.1.0"
-      (sources."espree-6.2.1" // {
-        dependencies = [
-          sources."acorn-7.1.1"
+          sources."strip-ansi-6.0.0"
         ];
       })
+      sources."eslint-plugin-no-unsanitized-3.1.2"
+      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 = [
@@ -84634,20 +87057,8 @@ in
       sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
-      sources."event-emitter-0.3.5"
       sources."event-to-promise-0.8.0"
-      (sources."execa-4.0.0" // {
-        dependencies = [
-          sources."cross-spawn-7.0.2"
-          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."exit-hook-1.1.1"
+      sources."execa-4.0.3"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -84663,31 +87074,23 @@ in
             ];
           })
           sources."is-descriptor-0.1.6"
-          sources."is-extendable-0.1.1"
           sources."kind-of-5.1.0"
         ];
       })
-      (sources."ext-1.4.0" // {
-        dependencies = [
-          sources."type-2.0.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"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       (sources."fast-json-patch-2.2.1" // {
         dependencies = [
           sources."fast-deep-equal-2.0.1"
@@ -84698,22 +87101,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"
@@ -84723,38 +87121,31 @@ 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.2"
+      sources."fsevents-2.1.3"
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
-      (sources."fx-runner-1.0.11" // {
+      (sources."fx-runner-1.0.13" // {
         dependencies = [
           sources."commander-2.9.0"
           sources."isexe-1.1.2"
           sources."which-1.2.4"
         ];
       })
-      sources."generate-function-2.3.1"
-      sources."generate-object-property-1.2.0"
       sources."get-caller-file-2.0.5"
       sources."get-stream-5.1.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."shelljs-0.7.7"
-        ];
-      })
       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"
@@ -84764,14 +87155,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-ansi-2.0.0"
       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"
         ];
       })
@@ -84780,76 +87175,40 @@ 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" // {
-        dependencies = [
-          sources."resolve-from-4.0.0"
-        ];
-      })
+      sources."import-fresh-3.2.1"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      (sources."inquirer-6.5.2" // {
-        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."has-flag-3.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          (sources."string-width-2.1.1" // {
-            dependencies = [
-              sources."strip-ansi-4.0.0"
-            ];
-          })
-          (sources."strip-ansi-5.2.0" // {
-            dependencies = [
-              sources."ansi-regex-4.1.0"
-            ];
-          })
-          sources."supports-color-5.5.0"
-        ];
-      })
-      sources."interpret-1.2.0"
-      sources."invert-kv-3.0.0"
+      sources."invert-kv-3.0.1"
       sources."is-absolute-0.1.7"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arguments-1.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.1.5"
+      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-3.0.0"
+      sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
       sources."is-installed-globally-0.3.2"
       sources."is-mergeable-object-1.1.1"
-      sources."is-my-ip-valid-1.0.0"
-      sources."is-my-json-valid-2.20.0"
       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-property-1.0.2"
-      sources."is-regex-1.0.5"
+      sources."is-regex-1.1.1"
       sources."is-relative-0.1.3"
-      sources."is-resolvable-1.1.0"
       sources."is-stream-2.0.0"
       sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
@@ -84865,19 +87224,17 @@ in
       sources."jetpack-id-1.0.0"
       sources."js-select-0.6.0"
       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-buffer-3.0.0"
       sources."json-merge-patch-0.2.3"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
-      sources."json-stable-stringify-1.0.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-4.0.0"
       sources."jsonify-0.0.0"
-      sources."jsonpointer-4.0.1"
       (sources."jsonwebtoken-8.5.1" // {
         dependencies = [
           sources."ms-2.1.2"
@@ -84899,11 +87256,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.19"
       sources."lodash.includes-4.3.0"
       sources."lodash.isboolean-3.0.3"
       sources."lodash.isinteger-4.0.4"
@@ -84922,26 +87279,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.15"
-      (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."mkdirp-1.0.3"
-      sources."moment-2.25.3"
+      (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"
@@ -84955,24 +87330,18 @@ 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."next-tick-1.0.0"
-      sources."nice-try-1.0.5"
+      sources."neo-async-2.6.2"
+      sources."next-tick-1.1.0"
       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."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       (sources."object-copy-0.1.0" // {
@@ -84988,20 +87357,18 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-is-1.1.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-2.0.1"
-      sources."open-7.0.0"
-      sources."optionator-0.8.3"
-      sources."os-homedir-1.0.2"
+      sources."onetime-5.1.1"
+      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"
@@ -85014,27 +87381,21 @@ in
         ];
       })
       sources."pako-1.0.11"
-      (sources."parent-module-1.0.1" // {
-        dependencies = [
-          sources."callsites-3.1.0"
-        ];
-      })
-      sources."parse-json-5.0.0"
+      sources."parent-module-1.0.1"
+      sources."parse-json-5.0.1"
       sources."parse5-3.0.3"
       sources."pascalcase-0.1.1"
       sources."path-dirname-1.0.2"
       sources."path-exists-4.0.0"
       sources."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.0.0"
+      sources."picomatch-2.2.2"
+      sources."pino-6.4.0"
       sources."pino-std-serializers-2.4.2"
-      sources."pluralize-1.2.1"
       sources."posix-character-classes-0.1.1"
-      (sources."postcss-7.0.27" // {
+      (sources."postcss-7.0.32" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           (sources."chalk-2.4.2" // {
@@ -85048,7 +87409,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"
@@ -85056,6 +87417,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" // {
@@ -85064,25 +87426,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."readline2-1.0.1" // {
-        dependencies = [
-          sources."is-fullwidth-code-point-1.0.0"
-          sources."mute-stream-0.0.5"
-        ];
-      })
-      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 = [
@@ -85100,23 +87449,17 @@ in
       sources."request-2.88.2"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
-      sources."require-uncached-1.0.3"
-      sources."resolve-1.17.0"
-      sources."resolve-from-1.0.1"
+      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."rx-lite-3.1.2"
-      sources."rxjs-6.5.5"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safe-json-stringify-1.2.0"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      sources."semver-7.1.3"
+      sources."semver-7.3.2"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -85126,22 +87469,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.8"
       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."tough-cookie-2.4.3"
+          sources."core-js-3.6.5"
         ];
       })
       sources."signal-exit-3.0.3"
@@ -85150,7 +87487,6 @@ in
           sources."ansi-styles-3.2.1"
           sources."color-convert-1.9.3"
           sources."color-name-1.1.3"
-          sources."is-fullwidth-code-point-2.0.0"
         ];
       })
       (sources."snapdragon-0.8.2" // {
@@ -85168,7 +87504,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"
         ];
@@ -85183,10 +87518,10 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."sonic-boom-1.0.1"
+      sources."sonic-boom-1.0.2"
       sources."source-map-0.6.1"
       sources."source-map-resolve-0.5.3"
-      sources."source-map-support-0.5.16"
+      sources."source-map-support-0.5.19"
       sources."source-map-url-0.4.0"
       sources."spawn-sync-1.0.15"
       sources."split-0.3.3"
@@ -85212,39 +87547,28 @@ 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-4.2.0" // {
+      sources."stream-to-promise-3.0.0"
+      (sources."string-width-3.1.0" // {
         dependencies = [
-          sources."ansi-regex-5.0.0"
-          sources."strip-ansi-6.0.0"
+          sources."ansi-regex-4.1.0"
+          sources."strip-ansi-5.2.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"
       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."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."first-chunk-stream-3.0.0"
         ];
       })
+      sources."strip-final-newline-2.0.0"
+      sources."strip-json-comments-3.1.1"
+      sources."supports-color-7.1.0"
+      sources."table-5.4.6"
       (sources."tar-stream-1.6.2" // {
         dependencies = [
           sources."readable-stream-2.3.7"
@@ -85254,10 +87578,14 @@ in
       })
       sources."term-size-2.2.0"
       sources."text-table-0.2.0"
-      sources."thenify-3.3.0"
+      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 = [
@@ -85266,25 +87594,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.11.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."type-1.2.0"
-      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" // {
@@ -85298,28 +87620,69 @@ 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."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."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.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"
+      (sources."widest-line-3.1.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."winreg-0.0.12"
       sources."word-wrap-1.2.3"
       (sources."wrap-ansi-6.2.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"
         ];
       })
@@ -85330,21 +87693,25 @@ 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.1.0" // {
+      (sources."yargs-15.4.1" // {
         dependencies = [
+          sources."ansi-regex-5.0.0"
           sources."decamelize-1.2.0"
-          sources."yargs-parser-16.1.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" // {
         dependencies = [
+          sources."camelcase-5.3.1"
           sources."decamelize-1.2.0"
         ];
       })
@@ -85365,7 +87732,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "A command line tool to help build, run, and test web extensions";
-      homepage = "https://github.com/mozilla/web-ext";
+      homepage = https://github.com/mozilla/web-ext;
       license = "MPL-2.0";
     };
     production = true;
@@ -85375,10 +87742,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"
@@ -85402,20 +87769,20 @@ 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.3"
       sources."ajv-errors-1.0.1"
-      sources."ajv-keywords-3.4.1"
-      (sources."anymatch-2.0.0" // {
-        dependencies = [
-          sources."normalize-path-2.1.1"
-        ];
-      })
+      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-4.10.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       (sources."assert-1.5.0" // {
         dependencies = [
           sources."inherits-2.0.1"
@@ -85433,10 +87800,10 @@ in
       })
       sources."base64-js-1.3.1"
       sources."big.js-5.2.2"
-      sources."binary-extensions-1.13.1"
+      sources."binary-extensions-2.1.0"
       sources."bindings-1.5.0"
       sources."bluebird-3.7.2"
-      sources."bn.js-4.11.8"
+      sources."bn.js-5.1.2"
       sources."brace-expansion-1.1.11"
       (sources."braces-2.3.2" // {
         dependencies = [
@@ -85447,8 +87814,17 @@ in
       sources."browserify-aes-1.2.0"
       sources."browserify-cipher-1.0.1"
       sources."browserify-des-1.0.2"
-      sources."browserify-rsa-4.0.1"
-      sources."browserify-sign-4.0.4"
+      (sources."browserify-rsa-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (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."buffer-4.9.2"
       sources."buffer-from-1.1.1"
@@ -85456,7 +87832,14 @@ in
       sources."builtin-status-codes-3.0.0"
       sources."cacache-12.0.4"
       sources."cache-base-1.0.1"
-      sources."chokidar-2.1.8"
+      (sources."chokidar-3.4.1" // {
+        dependencies = [
+          sources."braces-3.0.2"
+          sources."fill-range-7.0.1"
+          sources."is-number-7.0.0"
+          sources."to-regex-range-5.0.1"
+        ];
+      })
       sources."chownr-1.1.4"
       sources."chrome-trace-event-1.0.2"
       sources."cipher-base-1.0.4"
@@ -85488,7 +87871,11 @@ 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"
+        ];
+      })
       sources."create-hash-1.2.0"
       sources."create-hmac-1.1.7"
       sources."crypto-browserify-3.12.0"
@@ -85497,13 +87884,21 @@ in
       sources."decode-uri-component-0.2.0"
       sources."define-property-2.0.2"
       sources."des.js-1.0.1"
-      sources."diffie-hellman-5.0.3"
+      (sources."diffie-hellman-5.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."domain-browser-1.2.0"
       sources."duplexify-3.7.1"
-      sources."elliptic-6.5.2"
+      (sources."elliptic-6.5.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."emojis-list-3.0.0"
       sources."end-of-stream-1.4.4"
-      (sources."enhanced-resolve-4.1.1" // {
+      (sources."enhanced-resolve-4.3.0" // {
         dependencies = [
           sources."memory-fs-0.5.0"
         ];
@@ -85512,7 +87907,7 @@ in
       sources."eslint-scope-4.0.3"
       sources."esrecurse-4.2.1"
       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 = [
@@ -85543,7 +87938,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."figgy-pudding-3.5.2"
       sources."file-uri-to-path-1.0.0"
@@ -85560,14 +87955,10 @@ in
       sources."from2-2.3.0"
       sources."fs-write-stream-atomic-1.0.10"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-1.2.12"
+      sources."fsevents-2.1.3"
       sources."get-value-2.0.6"
       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."graceful-fs-4.2.4"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
@@ -85578,7 +87969,7 @@ in
       (sources."hash-base-3.1.0" // {
         dependencies = [
           sources."readable-stream-3.6.0"
-          sources."safe-buffer-5.2.0"
+          sources."safe-buffer-5.2.1"
         ];
       })
       sources."hash.js-1.1.7"
@@ -85591,7 +87982,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-accessor-descriptor-1.0.0"
-      sources."is-binary-path-1.0.1"
+      sources."is-binary-path-2.1.0"
       sources."is-buffer-1.1.6"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
@@ -85622,7 +88013,11 @@ in
       sources."md5.js-1.3.5"
       sources."memory-fs-0.4.1"
       sources."micromatch-3.1.10"
-      sources."miller-rabin-4.0.1"
+      (sources."miller-rabin-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
       sources."minimatch-3.0.4"
@@ -85638,7 +88033,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"
@@ -85674,7 +88069,8 @@ in
       sources."path-dirname-1.0.2"
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."pbkdf2-3.0.17"
+      sources."pbkdf2-3.1.1"
+      sources."picomatch-2.2.2"
       sources."pify-4.0.1"
       sources."pkg-dir-3.0.0"
       sources."posix-character-classes-0.1.1"
@@ -85682,7 +88078,11 @@ in
       sources."process-nextick-args-2.0.1"
       sources."promise-inflight-1.0.1"
       sources."prr-1.0.1"
-      sources."public-encrypt-4.0.3"
+      (sources."public-encrypt-4.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."pump-3.0.0"
       (sources."pumpify-1.5.1" // {
         dependencies = [
@@ -85695,7 +88095,7 @@ in
       sources."randombytes-2.1.0"
       sources."randomfill-1.0.4"
       sources."readable-stream-2.3.7"
-      sources."readdirp-2.2.1"
+      sources."readdirp-3.4.0"
       sources."regex-not-1.0.2"
       sources."remove-trailing-separator-1.1.0"
       sources."repeat-element-1.1.3"
@@ -85709,7 +88109,7 @@ in
       sources."safe-regex-1.1.0"
       sources."schema-utils-1.0.0"
       sources."semver-5.7.1"
-      sources."serialize-javascript-2.1.2"
+      sources."serialize-javascript-3.1.0"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -85779,12 +88179,12 @@ in
       sources."stream-shift-1.0.1"
       sources."string_decoder-1.1.1"
       sources."tapable-1.1.3"
-      (sources."terser-4.6.13" // {
+      (sources."terser-4.8.0" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      (sources."terser-webpack-plugin-1.4.3" // {
+      (sources."terser-webpack-plugin-1.4.4" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -85799,7 +88199,7 @@ in
       })
       sources."to-regex-3.0.2"
       sources."to-regex-range-2.1.1"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."tty-browserify-0.0.0"
       sources."typedarray-0.0.6"
       sources."union-value-1.0.1"
@@ -85831,7 +88231,20 @@ in
       })
       sources."util-deprecate-1.0.2"
       sources."vm-browserify-1.1.2"
-      sources."watchpack-1.6.1"
+      sources."watchpack-1.7.4"
+      (sources."watchpack-chokidar2-2.0.0" // {
+        dependencies = [
+          sources."anymatch-2.0.0"
+          sources."binary-extensions-1.13.1"
+          sources."chokidar-2.1.8"
+          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."normalize-path-2.1.1"
+          sources."readdirp-2.2.1"
+        ];
+      })
       (sources."webpack-sources-1.4.3" // {
         dependencies = [
           sources."source-map-0.6.1"
@@ -85846,7 +88259,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Packs CommonJs/AMD modules for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand. Support loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.";
-      homepage = "https://github.com/webpack/webpack";
+      homepage = https://github.com/webpack/webpack;
       license = "MIT";
     };
     production = true;
@@ -85856,10 +88269,10 @@ in
   webpack-cli = nodeEnv.buildNodePackage {
     name = "webpack-cli";
     packageName = "webpack-cli";
-    version = "3.3.11";
+    version = "3.3.12";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz";
-      sha512 = "dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==";
+      url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz";
+      sha512 = "NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==";
     };
     dependencies = [
       sources."ansi-regex-4.1.0"
@@ -85919,12 +88332,10 @@ in
       sources."define-property-2.0.2"
       sources."detect-file-1.0.0"
       sources."emoji-regex-7.0.3"
-      sources."emojis-list-2.1.0"
-      sources."end-of-stream-1.4.4"
-      sources."enhanced-resolve-4.1.0"
+      sources."emojis-list-3.0.0"
+      sources."enhanced-resolve-4.3.0"
       sources."errno-0.1.7"
       sources."escape-string-regexp-1.0.5"
-      sources."execa-1.0.0"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -85965,7 +88376,6 @@ in
       sources."for-in-1.0.2"
       sources."fragment-cache-0.2.1"
       sources."get-caller-file-2.0.5"
-      sources."get-stream-4.1.0"
       sources."get-value-2.0.6"
       (sources."global-modules-2.0.0" // {
         dependencies = [
@@ -85985,8 +88395,7 @@ in
       sources."import-local-2.0.0"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      sources."interpret-1.2.0"
-      sources."invert-kv-2.0.0"
+      sources."interpret-1.4.0"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-buffer-1.1.6"
       sources."is-data-descriptor-1.0.0"
@@ -86001,23 +88410,18 @@ in
         ];
       })
       sources."is-plain-object-2.0.4"
-      sources."is-stream-1.1.0"
       sources."is-windows-1.0.2"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
       sources."json5-1.0.1"
       sources."kind-of-6.0.3"
-      sources."lcid-2.0.0"
-      sources."loader-utils-1.2.3"
+      sources."loader-utils-1.4.0"
       sources."locate-path-3.0.0"
-      sources."map-age-cleaner-0.1.3"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
-      sources."mem-4.3.0"
-      sources."memory-fs-0.4.1"
+      sources."memory-fs-0.5.0"
       sources."micromatch-3.1.10"
-      sources."mimic-fn-2.1.0"
       sources."minimist-1.2.5"
       (sources."mixin-deep-1.3.2" // {
         dependencies = [
@@ -86027,7 +88431,6 @@ in
       sources."ms-2.0.0"
       sources."nanomatch-1.2.13"
       sources."nice-try-1.0.5"
-      sources."npm-run-path-2.0.2"
       (sources."object-copy-0.1.0" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -86043,11 +88446,6 @@ in
       })
       sources."object-visit-1.0.1"
       sources."object.pick-1.3.0"
-      sources."once-1.4.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"
@@ -86059,7 +88457,6 @@ in
       sources."posix-character-classes-0.1.1"
       sources."process-nextick-args-2.0.1"
       sources."prr-1.0.1"
-      sources."pump-3.0.0"
       sources."readable-stream-2.3.7"
       sources."regex-not-1.0.2"
       sources."repeat-element-1.1.3"
@@ -86086,7 +88483,6 @@ in
       })
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.3"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -86139,7 +88535,6 @@ in
       sources."string-width-3.1.0"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-5.2.0"
-      sources."strip-eof-1.0.0"
       sources."supports-color-6.1.0"
       sources."tapable-1.1.3"
       (sources."to-object-path-0.3.0" // {
@@ -86163,13 +88558,12 @@ in
       sources."urix-0.1.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
-      sources."v8-compile-cache-2.0.3"
+      sources."v8-compile-cache-2.1.1"
       sources."which-1.3.1"
       sources."which-module-2.0.0"
       sources."wrap-ansi-5.1.0"
-      sources."wrappy-1.0.2"
       sources."y18n-4.0.0"
-      sources."yargs-13.2.4"
+      sources."yargs-13.3.2"
       sources."yargs-parser-13.1.2"
     ];
     buildInputs = globalBuildInputs;
@@ -86185,23 +88579,23 @@ in
   webpack-dev-server = nodeEnv.buildNodePackage {
     name = "webpack-dev-server";
     packageName = "webpack-dev-server";
-    version = "3.10.3";
+    version = "3.11.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz";
-      sha512 = "e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ==";
+      url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz";
+      sha512 = "PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==";
     };
     dependencies = [
-      sources."@types/events-3.0.0"
-      sources."@types/glob-7.1.1"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.13.4"
+      sources."@types/node-14.0.27"
       sources."accepts-1.3.7"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."ajv-errors-1.0.1"
-      sources."ajv-keywords-3.4.1"
+      sources."ajv-keywords-3.5.2"
       sources."ansi-colors-3.2.4"
       sources."ansi-html-0.0.7"
       sources."ansi-regex-2.1.1"
+      sources."ansi-styles-3.2.1"
       (sources."anymatch-2.0.0" // {
         dependencies = [
           sources."normalize-path-2.1.1"
@@ -86264,14 +88658,15 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      (sources."cliui-4.1.0" // {
+      (sources."cliui-5.0.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."code-point-at-1.1.0"
       sources."collection-visit-1.0.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
       sources."component-emitter-1.3.0"
       sources."compressible-2.0.18"
       (sources."compression-1.7.4" // {
@@ -86297,7 +88692,7 @@ in
           sources."semver-5.7.1"
         ];
       })
-      (sources."debug-4.1.1" // {
+      (sources."debug-4.2.0" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -86316,14 +88711,15 @@ in
       sources."dns-packet-1.3.1"
       sources."dns-txt-2.0.2"
       sources."ee-first-1.1.1"
+      sources."emoji-regex-7.0.3"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."errno-0.1.7"
-      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."etag-1.8.1"
-      sources."eventemitter3-4.0.0"
+      sources."eventemitter3-4.0.4"
       sources."eventsource-1.0.7"
       sources."execa-1.0.0"
       (sources."expand-brackets-2.1.4" // {
@@ -86361,7 +88757,7 @@ in
           sources."is-extendable-0.1.1"
         ];
       })
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."faye-websocket-0.10.0"
       sources."file-uri-to-path-1.0.0"
@@ -86377,20 +88773,15 @@ in
         ];
       })
       sources."find-up-3.0.0"
-      (sources."follow-redirects-1.11.0" // {
-        dependencies = [
-          sources."debug-3.2.6"
-          sources."ms-2.1.2"
-        ];
-      })
+      sources."follow-redirects-1.12.1"
       sources."for-in-1.0.2"
       sources."forwarded-0.1.2"
       sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-1.2.12"
+      sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
-      sources."get-caller-file-1.0.3"
+      sources."get-caller-file-2.0.5"
       sources."get-stream-4.1.0"
       sources."get-value-2.0.6"
       sources."glob-7.1.6"
@@ -86423,15 +88814,13 @@ in
           sources."inherits-2.0.3"
         ];
       })
-      sources."http-parser-js-0.4.10"
-      sources."http-proxy-1.18.0"
+      sources."http-proxy-1.18.1"
       sources."http-proxy-middleware-0.19.1"
       sources."iconv-lite-0.4.24"
       sources."import-local-2.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."internal-ip-4.3.0"
-      sources."invert-kv-2.0.0"
       sources."ip-1.1.5"
       sources."ip-regex-2.1.0"
       sources."ipaddr.js-1.9.1"
@@ -86440,13 +88829,13 @@ in
       sources."is-arguments-1.0.4"
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.1.5"
+      sources."is-callable-1.2.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
       sources."is-extendable-1.0.1"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
       (sources."is-number-3.0.0" // {
         dependencies = [
@@ -86457,7 +88846,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.0.5"
+      sources."is-regex-1.1.1"
       sources."is-stream-1.1.0"
       sources."is-symbol-1.0.3"
       sources."is-windows-1.0.2"
@@ -86469,15 +88858,12 @@ in
       sources."json3-3.3.3"
       sources."killable-1.0.1"
       sources."kind-of-6.0.3"
-      sources."lcid-2.0.0"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."loglevel-1.6.8"
-      sources."map-age-cleaner-0.1.3"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."media-typer-0.3.0"
-      sources."mem-4.3.0"
       sources."memory-fs-0.4.1"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
@@ -86485,7 +88871,6 @@ in
       sources."mime-1.6.0"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
-      sources."mimic-fn-2.1.0"
       sources."minimalistic-assert-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -86501,7 +88886,6 @@ in
       sources."node-forge-0.9.0"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-2.0.2"
-      sources."number-is-nan-1.0.1"
       sources."object-assign-4.1.1"
       (sources."object-copy-0.1.0" // {
         dependencies = [
@@ -86516,7 +88900,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-is-1.1.2"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
@@ -86528,10 +88912,7 @@ in
       sources."once-1.4.0"
       sources."opn-5.5.0"
       sources."original-1.0.2"
-      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-map-2.1.0"
@@ -86549,7 +88930,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"
@@ -86582,7 +88963,7 @@ in
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
       sources."require-directory-2.1.1"
-      sources."require-main-filename-1.0.1"
+      sources."require-main-filename-2.0.0"
       sources."requires-port-1.0.0"
       sources."resolve-cwd-2.0.0"
       sources."resolve-from-3.0.0"
@@ -86590,7 +88971,7 @@ in
       sources."ret-0.1.15"
       sources."retry-0.12.0"
       sources."rimraf-2.7.1"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."schema-utils-1.0.0"
@@ -86657,7 +89038,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."sockjs-0.3.19"
+      sources."sockjs-0.3.20"
       (sources."sockjs-client-1.4.0" // {
         dependencies = [
           sources."debug-3.2.6"
@@ -86693,16 +89074,13 @@ in
         ];
       })
       sources."statuses-1.5.0"
-      (sources."string-width-2.1.1" // {
+      (sources."string-width-3.1.0" // {
         dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."is-fullwidth-code-point-2.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"
-      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.1.1" // {
         dependencies = [
@@ -86755,24 +89133,25 @@ in
       sources."wbuf-1.7.3"
       (sources."webpack-dev-middleware-3.7.2" // {
         dependencies = [
-          sources."mime-2.4.5"
+          sources."mime-2.4.6"
         ];
       })
       sources."webpack-log-2.0.0"
-      sources."websocket-driver-0.7.3"
-      sources."websocket-extensions-0.1.3"
+      sources."websocket-driver-0.6.5"
+      sources."websocket-extensions-0.1.4"
       sources."which-1.3.1"
       sources."which-module-2.0.0"
-      (sources."wrap-ansi-2.1.0" // {
+      (sources."wrap-ansi-5.1.0" // {
         dependencies = [
-          sources."string-width-1.0.2"
+          sources."ansi-regex-4.1.0"
+          sources."strip-ansi-5.2.0"
         ];
       })
       sources."wrappy-1.0.2"
       sources."ws-6.2.1"
       sources."y18n-4.0.0"
-      sources."yargs-12.0.5"
-      sources."yargs-parser-11.1.1"
+      sources."yargs-13.3.2"
+      sources."yargs-parser-13.1.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -86787,131 +89166,111 @@ in
   copy-webpack-plugin = nodeEnv.buildNodePackage {
     name = "copy-webpack-plugin";
     packageName = "copy-webpack-plugin";
-    version = "5.1.1";
+    version = "6.0.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz";
-      sha512 = "P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg==";
+      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz";
+      sha512 = "q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==";
     };
     dependencies = [
-      sources."ajv-6.12.2"
-      sources."ajv-errors-1.0.1"
-      sources."ajv-keywords-3.4.1"
-      sources."ansi-colors-3.2.4"
-      sources."aproba-1.2.0"
-      sources."array-union-1.0.2"
-      sources."array-uniq-1.0.3"
+      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.3"
+      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."bluebird-3.7.2"
       sources."brace-expansion-1.1.11"
-      sources."buffer-from-1.1.1"
-      sources."cacache-12.0.4"
-      sources."chownr-1.1.4"
+      sources."braces-3.0.2"
+      sources."cacache-15.0.5"
+      sources."chownr-2.0.0"
+      sources."clean-stack-2.2.0"
       sources."commondir-1.0.1"
       sources."concat-map-0.0.1"
-      sources."concat-stream-1.6.2"
-      sources."copy-concurrently-1.0.5"
-      sources."core-util-is-1.0.2"
-      sources."cyclist-1.0.1"
-      sources."dir-glob-2.2.2"
-      sources."duplexify-3.7.1"
+      sources."dir-glob-3.0.1"
       sources."emojis-list-3.0.0"
-      sources."end-of-stream-1.4.4"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."figgy-pudding-3.5.2"
-      sources."find-cache-dir-2.1.0"
-      sources."find-up-3.0.0"
-      sources."flush-write-stream-1.1.1"
-      sources."from2-2.3.0"
-      sources."fs-write-stream-atomic-1.0.10"
+      sources."fastq-1.8.0"
+      sources."fill-range-7.0.1"
+      sources."find-cache-dir-3.3.1"
+      sources."find-up-4.1.0"
+      sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."glob-7.1.6"
-      (sources."glob-parent-3.1.0" // {
-        dependencies = [
-          sources."is-glob-3.1.0"
-        ];
-      })
-      (sources."globby-7.1.1" // {
-        dependencies = [
-          sources."pify-3.0.0"
-        ];
-      })
-      sources."graceful-fs-4.2.4"
-      sources."iferr-0.1.5"
-      sources."ignore-3.3.10"
+      sources."glob-parent-5.1.1"
+      sources."globby-11.0.1"
+      sources."ignore-5.1.8"
       sources."imurmurhash-0.1.4"
+      sources."indent-string-4.0.0"
       sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.1"
-      sources."isarray-1.0.0"
+      sources."is-number-7.0.0"
       sources."json-schema-traverse-0.4.1"
-      sources."json5-1.0.1"
-      sources."loader-utils-1.4.0"
-      sources."locate-path-3.0.0"
-      sources."lru-cache-5.1.1"
-      sources."make-dir-2.1.0"
+      sources."json5-2.1.3"
+      sources."loader-utils-2.0.0"
+      sources."locate-path-5.0.0"
+      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."mississippi-3.0.0"
-      sources."mkdirp-0.5.5"
-      sources."move-concurrently-1.0.1"
+      sources."minipass-3.1.3"
+      sources."minipass-collect-1.0.2"
+      sources."minipass-flush-1.0.5"
+      sources."minipass-pipeline-1.2.4"
+      sources."minizlib-2.1.0"
+      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-3.0.0"
-      sources."p-try-2.2.0"
-      sources."parallel-transform-1.2.0"
-      sources."path-dirname-1.0.2"
-      sources."path-exists-3.0.0"
-      sources."path-is-absolute-1.0.1"
-      (sources."path-type-3.0.0" // {
+      sources."p-limit-3.0.2"
+      (sources."p-locate-4.1.0" // {
         dependencies = [
-          sources."pify-3.0.0"
+          sources."p-limit-2.3.0"
         ];
       })
-      sources."pify-4.0.1"
-      sources."pkg-dir-3.0.0"
-      sources."process-nextick-args-2.0.1"
+      sources."p-map-4.0.0"
+      sources."p-try-2.2.0"
+      sources."path-exists-4.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-type-4.0.0"
+      sources."picomatch-2.2.2"
+      sources."pkg-dir-4.2.0"
       sources."promise-inflight-1.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."rimraf-2.7.1"
-      sources."run-queue-1.0.3"
-      sources."safe-buffer-5.1.2"
-      sources."schema-utils-1.0.0"
-      sources."semver-5.7.1"
-      sources."serialize-javascript-2.1.2"
-      sources."slash-1.0.0"
-      sources."ssri-6.0.1"
-      sources."stream-each-1.2.3"
-      sources."stream-shift-1.0.1"
-      sources."string_decoder-1.1.1"
-      sources."through2-2.0.5"
-      sources."typedarray-0.0.6"
+      sources."randombytes-2.1.0"
+      sources."reusify-1.0.4"
+      sources."rimraf-3.0.2"
+      sources."run-parallel-1.1.9"
+      sources."safe-buffer-5.2.1"
+      sources."schema-utils-2.7.0"
+      sources."semver-6.3.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"
+      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."util-deprecate-1.0.2"
-      sources."uuid-3.4.0"
-      sources."webpack-log-2.0.0"
+      sources."webpack-sources-1.4.3"
       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 = {
       description = "Copy files && directories with webpack";
-      homepage = "https://github.com/webpack-contrib/copy-webpack-plugin";
+      homepage = https://github.com/webpack-contrib/copy-webpack-plugin;
       license = "MIT";
     };
     production = true;
@@ -86921,10 +89280,10 @@ in
   webtorrent-cli = nodeEnv.buildNodePackage {
     name = "webtorrent-cli";
     packageName = "webtorrent-cli";
-    version = "3.0.5";
+    version = "3.0.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webtorrent-cli/-/webtorrent-cli-3.0.5.tgz";
-      sha512 = "+CZvxl0xfjAtWXvJhhcX0W/do/j97KnJCbUwvKPJHQDqfHYAsJE6PZGGLqOlumFvSes+Q7ptVOoA1205lVJfTw==";
+      url = "https://registry.npmjs.org/webtorrent-cli/-/webtorrent-cli-3.0.7.tgz";
+      sha512 = "7psSgPvy+nL4hQ8zIv1RW1pdFZVrxB6jHnIEwmDU6xP6zst/t5pgerrdnZerzgQBzlGjpRQQ9fQtZoHxK7zgtw==";
     };
     dependencies = [
       sources."@protobufjs/aspromise-1.1.2"
@@ -86938,38 +89297,38 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-13.13.4"
+      sources."@types/node-13.13.15"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.3.0"
       sources."balanced-match-1.0.0"
       sources."bencode-2.0.1"
       sources."binary-search-1.3.6"
       sources."bitfield-3.0.0"
-      (sources."bittorrent-dht-9.0.3" // {
+      (sources."bittorrent-dht-10.0.0" // {
         dependencies = [
-          sources."debug-4.1.1"
+          sources."debug-4.2.0"
           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.1.1"
+          sources."debug-4.2.0"
           sources."ms-2.1.2"
         ];
       })
-      (sources."bittorrent-tracker-9.14.5" // {
+      (sources."bittorrent-tracker-9.15.0" // {
         dependencies = [
-          sources."debug-4.1.1"
-          sources."decompress-response-4.2.1"
-          sources."mimic-response-2.1.0"
+          sources."debug-4.2.0"
+          sources."decompress-response-6.0.0"
+          sources."mimic-response-3.1.0"
           sources."ms-2.1.2"
-          sources."simple-get-3.1.0"
+          sources."simple-get-4.0.0"
         ];
       })
       sources."blob-to-buffer-1.2.8"
       sources."block-stream2-2.0.0"
-      sources."bn.js-5.1.1"
+      sources."bn.js-5.1.2"
       sources."brace-expansion-1.1.11"
       sources."browserify-package-json-1.0.1"
       sources."buffer-alloc-1.2.0"
@@ -86980,21 +89339,21 @@ in
       sources."bufferutil-4.0.1"
       (sources."castv2-0.1.10" // {
         dependencies = [
-          sources."debug-4.1.1"
+          sources."debug-4.2.0"
           sources."ms-2.1.2"
         ];
       })
       sources."castv2-client-1.2.0"
       sources."charset-1.0.1"
-      sources."chrome-dgram-3.0.4"
+      sources."chrome-dgram-3.0.5"
       sources."chrome-dns-1.0.1"
-      sources."chrome-net-3.3.3"
+      sources."chrome-net-3.3.4"
       (sources."chromecasts-1.9.1" // {
         dependencies = [
           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"
@@ -87007,7 +89366,7 @@ in
         ];
       })
       sources."core-util-is-1.0.2"
-      sources."create-torrent-4.4.1"
+      sources."create-torrent-4.4.2"
       sources."debug-2.6.9"
       sources."decompress-response-3.3.0"
       (sources."dlnacasts-0.1.0" // {
@@ -87025,7 +89384,7 @@ in
       sources."executable-4.1.1"
       sources."filestream-5.0.0"
       sources."freelist-1.0.3"
-      (sources."fs-chunk-store-2.0.1" // {
+      (sources."fs-chunk-store-2.0.2" // {
         dependencies = [
           sources."thunky-1.1.0"
         ];
@@ -87044,7 +89403,7 @@ in
       sources."ip-set-1.0.2"
       sources."ipaddr.js-1.9.1"
       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"
@@ -87063,17 +89422,17 @@ 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"
       sources."memory-chunk-store-1.3.0"
-      sources."mime-2.4.5"
+      sources."mime-2.4.6"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-classic-0.5.3"
-      sources."moment-2.25.3"
+      sources."moment-2.27.0"
       sources."mp4-box-encoding-1.4.1"
       sources."mp4-stream-3.1.0"
       sources."ms-2.0.0"
@@ -87091,10 +89450,10 @@ in
       sources."nodebmc-0.0.7"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
-      sources."open-7.0.3"
+      sources."open-7.1.0"
       sources."package-json-versionify-1.0.4"
-      sources."parse-numeric-range-0.0.2"
-      (sources."parse-torrent-7.1.2" // {
+      sources."parse-numeric-range-1.2.0"
+      (sources."parse-torrent-7.1.3" // {
         dependencies = [
           sources."decompress-response-4.2.1"
           sources."mimic-response-2.1.0"
@@ -87111,10 +89470,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.2"
+      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"
@@ -87123,9 +89482,9 @@ in
       sources."range-slice-stream-2.0.0"
       sources."readable-stream-3.6.0"
       sources."record-cache-1.1.0"
-      (sources."render-media-3.4.0" // {
+      (sources."render-media-3.4.3" // {
         dependencies = [
-          sources."debug-4.1.1"
+          sources."debug-4.2.0"
           sources."ms-2.1.2"
         ];
       })
@@ -87134,38 +89493,38 @@ in
       sources."run-parallel-limit-1.0.5"
       sources."run-series-1.1.8"
       sources."rusha-0.8.13"
-      sources."safe-buffer-5.2.0"
+      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.0" // {
+      (sources."simple-peer-9.7.2" // {
         dependencies = [
-          sources."debug-4.1.1"
+          sources."debug-4.2.0"
           sources."ms-2.1.2"
         ];
       })
       sources."simple-sha1-3.0.1"
       (sources."simple-websocket-8.1.1" // {
         dependencies = [
-          sources."debug-4.1.1"
+          sources."debug-4.2.0"
           sources."ms-2.1.2"
         ];
       })
       sources."speedometer-1.1.0"
       sources."split-1.0.1"
-      sources."stream-to-blob-2.0.0"
-      sources."stream-to-blob-url-3.0.0"
-      sources."stream-with-known-length-to-buffer-1.0.3"
+      sources."stream-to-blob-2.0.1"
+      sources."stream-to-blob-url-3.0.2"
+      sources."stream-with-known-length-to-buffer-1.0.4"
       sources."string2compact-1.3.0"
       sources."string_decoder-1.3.0"
       sources."thirty-two-1.0.2"
       sources."through-2.3.8"
       sources."thunky-0.1.0"
       sources."to-arraybuffer-1.0.1"
-      (sources."torrent-discovery-9.2.1" // {
+      (sources."torrent-discovery-9.3.0" // {
         dependencies = [
-          sources."debug-4.1.1"
+          sources."debug-4.2.0"
           sources."ms-2.1.2"
         ];
       })
@@ -87173,14 +89532,13 @@ 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.2.4"
+      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.1.1"
+          sources."debug-4.2.0"
           sources."ms-2.1.2"
         ];
       })
@@ -87189,9 +89547,9 @@ in
       sources."util-deprecate-1.0.2"
       sources."videostream-3.2.1"
       sources."vlc-command-1.2.0"
-      (sources."webtorrent-0.108.1" // {
+      (sources."webtorrent-0.108.6" // {
         dependencies = [
-          sources."debug-4.1.1"
+          sources."debug-4.2.0"
           sources."decompress-response-4.2.1"
           sources."mimic-response-2.1.0"
           sources."ms-2.1.2"
@@ -87200,7 +89558,7 @@ in
       })
       sources."winreg-1.2.4"
       sources."wrappy-1.0.2"
-      sources."ws-7.2.5"
+      sources."ws-7.3.1"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
       sources."xmldom-0.1.31"
@@ -87208,7 +89566,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "WebTorrent, the streaming torrent client. For the command line.";
-      homepage = "https://webtorrent.io/";
+      homepage = https://webtorrent.io/;
       license = "MIT";
     };
     production = true;
@@ -87244,7 +89602,7 @@ in
     dependencies = [
       sources."adverb-where-0.2.1"
       sources."commander-2.20.3"
-      sources."e-prime-0.10.3"
+      sources."e-prime-0.10.4"
       sources."no-cliches-0.2.2"
       sources."passive-voice-0.1.0"
       sources."too-wordy-0.2.2"
@@ -87263,10 +89621,10 @@ in
   yaml-language-server = nodeEnv.buildNodePackage {
     name = "yaml-language-server";
     packageName = "yaml-language-server";
-    version = "0.7.2";
+    version = "0.9.0";
     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.9.0.tgz";
+      sha512 = "nRExM5NfJXzxTKlFmHKr/ZtoxZCddH1kuuWNfHRvTLCEHzexIn/YvI/DBZHxKLh/ym9f4Q4j4zW76vB6J18lUQ==";
     };
     dependencies = [
       sources."agent-base-4.3.0"
@@ -87277,13 +89635,13 @@ in
       sources."esprima-4.0.1"
       sources."http-proxy-agent-2.1.0"
       sources."https-proxy-agent-2.2.4"
-      sources."js-yaml-3.13.1"
-      sources."jsonc-parser-2.2.1"
+      sources."js-yaml-3.14.0"
+      sources."jsonc-parser-2.3.0"
       sources."ms-2.0.0"
       sources."prettier-1.19.1"
       sources."request-light-0.2.5"
       sources."sprintf-js-1.0.3"
-      sources."vscode-json-languageservice-3.6.0"
+      sources."vscode-json-languageservice-3.8.0"
       sources."vscode-jsonrpc-4.0.0"
       (sources."vscode-languageserver-5.2.1" // {
         dependencies = [
@@ -87298,7 +89656,7 @@ in
       sources."vscode-languageserver-textdocument-1.0.1"
       sources."vscode-languageserver-types-3.15.1"
       sources."vscode-nls-4.1.2"
-      sources."vscode-uri-2.1.1"
+      sources."vscode-uri-2.1.2"
       sources."yaml-ast-parser-custom-tags-0.0.43"
     ];
     buildInputs = globalBuildInputs;
@@ -87338,22 +89696,21 @@ in
       sha512 = "GFg4QC1xi3gkbHGGUFme8/8XPg3kDISu/qJfx56X207yuv1FSevGY/eKuym7kh0bniCB4n3rseWW+QZXPH8LIw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.8.3"
-      sources."@babel/helper-validator-identifier-7.9.5"
-      sources."@babel/highlight-7.9.0"
-      sources."@babel/runtime-7.9.6"
+      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.1"
       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/events-3.0.0"
-      sources."@types/glob-7.1.1"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.13.4"
+      sources."@types/node-14.0.27"
       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."ajv-6.12.3"
       sources."ansi-0.3.1"
       sources."ansi-align-2.0.0"
       sources."ansi-escapes-3.2.0"
@@ -87377,7 +89734,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       (sources."axios-0.18.1" // {
         dependencies = [
           sources."is-buffer-2.0.4"
@@ -87396,7 +89753,7 @@ in
         ];
       })
       sources."bin-version-check-3.0.0"
-      sources."binaryextensions-2.2.0"
+      sources."binaryextensions-2.3.0"
       sources."boolean-3.0.1"
       (sources."boxen-1.3.0" // {
         dependencies = [
@@ -87448,12 +89805,12 @@ in
       sources."cli-list-0.2.0"
       sources."cli-table-0.3.1"
       sources."cli-width-2.2.1"
-      sources."clone-1.0.4"
+      sources."clone-2.1.2"
       sources."clone-buffer-1.0.0"
       sources."clone-deep-4.0.1"
       sources."clone-regexp-1.0.1"
       sources."clone-response-1.0.2"
-      sources."clone-stats-0.0.1"
+      sources."clone-stats-1.0.0"
       sources."cloneable-readable-1.1.3"
       sources."code-point-at-1.1.0"
       sources."collection-visit-1.0.0"
@@ -87501,7 +89858,7 @@ in
       sources."download-stats-0.3.4"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
-      (sources."editions-2.3.0" // {
+      (sources."editions-2.3.1" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -87552,10 +89909,11 @@ in
         ];
       })
       sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-glob-2.2.7"
       sources."fast-json-stable-stringify-2.1.0"
       sources."figures-2.0.0"
+      sources."filelist-1.0.1"
       (sources."fill-range-4.0.0" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -87599,7 +89957,7 @@ in
         ];
       })
       sources."glob-to-regexp-0.3.0"
-      (sources."global-agent-2.1.8" // {
+      (sources."global-agent-2.1.12" // {
         dependencies = [
           sources."semver-7.3.2"
         ];
@@ -87617,7 +89975,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"
@@ -87648,7 +90006,7 @@ in
       sources."ini-1.3.5"
       sources."inquirer-6.5.2"
       sources."insight-0.10.3"
-      sources."interpret-1.2.0"
+      sources."interpret-1.4.0"
       (sources."into-stream-3.1.0" // {
         dependencies = [
           sources."p-is-promise-1.1.0"
@@ -87697,6 +90055,11 @@ in
       sources."isstream-0.1.2"
       sources."istextorbinary-2.6.0"
       sources."isurl-1.0.0"
+      (sources."jake-10.8.2" // {
+        dependencies = [
+          sources."async-0.9.2"
+        ];
+      })
       sources."js-tokens-4.0.0"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
@@ -87726,7 +90089,7 @@ in
       })
       sources."locate-path-2.0.0"
       sources."locutus-2.0.11"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."lodash.debounce-4.0.8"
       sources."lodash.pad-4.5.1"
       sources."lodash.padend-4.6.1"
@@ -87735,23 +90098,21 @@ 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"
       sources."map-obj-1.0.1"
       sources."map-visit-1.0.0"
-      (sources."matcher-2.1.0" // {
+      (sources."matcher-3.0.0" // {
         dependencies = [
-          sources."escape-string-regexp-2.0.0"
+          sources."escape-string-regexp-4.0.0"
         ];
       })
       sources."mem-5.1.1"
-      sources."mem-fs-1.1.3"
+      sources."mem-fs-1.2.0"
       (sources."mem-fs-editor-6.0.0" // {
         dependencies = [
-          sources."clone-2.1.2"
-          sources."clone-stats-1.0.0"
           sources."dir-glob-2.2.2"
           sources."globby-9.2.0"
           sources."ignore-4.0.6"
@@ -87761,10 +90122,7 @@ in
             ];
           })
           sources."pify-4.0.1"
-          sources."replace-ext-1.0.1"
           sources."slash-2.0.0"
-          sources."through2-3.0.1"
-          sources."vinyl-2.2.0"
         ];
       })
       (sources."meow-3.7.0" // {
@@ -87775,7 +90133,7 @@ in
         ];
       })
       sources."merge-stream-2.0.0"
-      sources."merge2-1.3.0"
+      sources."merge2-1.4.1"
       sources."micromatch-3.1.10"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
@@ -87789,7 +90147,7 @@ in
         ];
       })
       sources."mkdirp-0.5.5"
-      sources."moment-2.25.3"
+      sources."moment-2.27.0"
       sources."ms-2.0.0"
       (sources."multimatch-4.0.0" // {
         dependencies = [
@@ -87922,7 +90280,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"
@@ -87930,7 +90288,7 @@ in
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
       sources."repeating-2.0.1"
-      sources."replace-ext-0.0.1"
+      sources."replace-ext-1.0.1"
       (sources."request-2.88.2" // {
         dependencies = [
           sources."tough-cookie-2.5.0"
@@ -87946,8 +90304,8 @@ in
       sources."root-check-1.0.0"
       sources."run-async-2.4.1"
       sources."rx-4.1.0"
-      sources."rxjs-6.5.5"
-      sources."safe-buffer-5.2.0"
+      sources."rxjs-6.6.2"
+      sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."scoped-regex-1.0.0"
@@ -87956,9 +90314,9 @@ in
       sources."semver-diff-2.1.0"
       sources."semver-regex-1.0.0"
       sources."semver-truncate-1.1.2"
-      (sources."serialize-error-5.0.0" // {
+      (sources."serialize-error-7.0.1" // {
         dependencies = [
-          sources."type-fest-0.8.1"
+          sources."type-fest-0.13.1"
         ];
       })
       sources."set-getter-0.1.0"
@@ -88007,9 +90365,9 @@ in
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
       sources."spawn-sync-1.0.15"
-      sources."spdx-correct-3.1.0"
+      sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
-      sources."spdx-expression-parse-3.0.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.1.2"
@@ -88054,6 +90412,7 @@ in
         ];
       })
       sources."strip-bom-2.0.0"
+      sources."strip-bom-buf-1.0.0"
       sources."strip-bom-stream-2.0.0"
       sources."strip-eof-1.0.0"
       sources."strip-final-newline-2.0.0"
@@ -88100,7 +90459,7 @@ in
       sources."text-table-0.2.0"
       sources."textextensions-2.6.0"
       sources."through-2.3.8"
-      sources."through2-2.0.5"
+      sources."through2-3.0.2"
       sources."timed-out-4.0.1"
       sources."titleize-1.0.1"
       sources."tmp-0.0.33"
@@ -88113,7 +90472,7 @@ in
       sources."to-regex-range-2.1.1"
       sources."tough-cookie-3.0.1"
       sources."trim-newlines-1.0.0"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."tunnel-0.0.6"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
@@ -88145,8 +90504,8 @@ in
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
       sources."verror-1.10.0"
-      sources."vinyl-1.2.0"
-      (sources."vinyl-file-2.0.0" // {
+      sources."vinyl-2.2.0"
+      (sources."vinyl-file-3.0.0" // {
         dependencies = [
           sources."pify-2.3.0"
         ];
@@ -88154,7 +90513,7 @@ in
       sources."walk-2.3.14"
       sources."which-1.3.1"
       sources."widest-line-2.0.1"
-      sources."windows-release-3.3.0"
+      sources."windows-release-3.3.1"
       (sources."with-open-file-0.1.7" // {
         dependencies = [
           sources."p-try-2.2.0"
@@ -88172,7 +90531,6 @@ in
       sources."wrappy-1.0.2"
       sources."write-file-atomic-2.4.3"
       sources."xdg-basedir-3.0.0"
-      sources."xtend-4.0.2"
       sources."yallist-2.1.2"
       (sources."yeoman-character-1.1.0" // {
         dependencies = [
@@ -88181,23 +90539,24 @@ in
         ];
       })
       sources."yeoman-doctor-4.0.0"
-      (sources."yeoman-environment-2.10.0" // {
+      (sources."yeoman-environment-2.10.3" // {
         dependencies = [
           sources."ansi-escapes-4.3.1"
           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.2"
+          sources."cross-spawn-7.0.3"
           sources."debug-3.2.6"
-          sources."execa-4.0.0"
+          sources."execa-4.0.3"
           sources."figures-3.2.0"
           sources."get-stream-5.1.0"
           sources."has-flag-4.0.0"
-          (sources."inquirer-7.1.0" // {
+          (sources."inquirer-7.3.3" // {
             dependencies = [
-              sources."chalk-3.0.0"
+              sources."chalk-4.1.0"
               sources."strip-ansi-6.0.0"
             ];
           })
@@ -88206,7 +90565,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.1"
           sources."path-key-3.1.1"
           sources."restore-cursor-3.1.0"
           sources."semver-7.3.2"
@@ -88227,26 +90586,42 @@ in
           sources."which-2.0.2"
         ];
       })
-      (sources."yeoman-generator-4.10.0" // {
+      (sources."yeoman-generator-4.11.0" // {
         dependencies = [
-          sources."debug-4.1.1"
+          sources."debug-4.2.0"
           sources."diff-4.0.2"
+          sources."dir-glob-2.2.2"
+          sources."ejs-3.1.3"
           sources."find-up-3.0.0"
+          sources."globby-9.2.0"
+          sources."ignore-4.0.6"
           sources."locate-path-3.0.0"
           (sources."make-dir-3.1.0" // {
             dependencies = [
               sources."semver-6.3.0"
             ];
           })
+          (sources."mem-fs-editor-7.0.1" // {
+            dependencies = [
+              sources."rimraf-3.0.2"
+            ];
+          })
+          sources."mkdirp-1.0.4"
           sources."ms-2.1.2"
           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.0.1"
+          (sources."path-type-3.0.0" // {
+            dependencies = [
+              sources."pify-3.0.0"
+            ];
+          })
+          sources."pify-4.0.1"
           sources."read-pkg-5.2.0"
           sources."read-pkg-up-5.0.0"
           sources."semver-7.3.2"
-          sources."through2-3.0.1"
+          sources."slash-2.0.0"
           sources."type-fest-0.6.0"
         ];
       })
@@ -88266,11 +90641,11 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "CLI tool for running Yeoman generators";
-      homepage = "https://yeoman.io/";
+      homepage = http://yeoman.io/;
       license = "BSD-2-Clause";
     };
     production = true;
     bypassCache = true;
     reconstructLock = true;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/ocaml-modules/afl-persistent/default.nix b/pkgs/development/ocaml-modules/afl-persistent/default.nix
new file mode 100644
index 00000000000..5ac352e0762
--- /dev/null
+++ b/pkgs/development/ocaml-modules/afl-persistent/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, ocaml, findlib, opaline }:
+
+stdenv.mkDerivation rec {
+  pname = "afl-persistent";
+  version = "1.3";
+  name = "ocaml${ocaml.version}-${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "stedolan";
+    repo   = "ocaml-${pname}";
+    rev    = "v${version}";
+    sha256 = "06yyds2vcwlfr2nd3gvyrazlijjcrd1abnvkfpkaadgwdw3qam1i";
+  };
+
+  buildInputs = [ ocaml findlib ];
+
+  # don't run tests in buildPhase
+  # don't overwrite test binary
+  postPatch = ''
+    sed -i 's/ && \.\/test$//' build.sh
+    sed -i '/^ocamlopt.*test.ml -o test$/ s/$/2/' build.sh
+    patchShebangs build.sh
+  '';
+
+  buildPhase = "./build.sh";
+  installPhase = ''
+    ${opaline}/bin/opaline -prefix $out -libdir $out/lib/ocaml/${ocaml.version}/site-lib/ ${pname}.install
+  '';
+
+  doCheck = true;
+  checkPhase = "./_build/test && ./_build/test2";
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/stedolan/ocaml-afl-persistent";
+    description = "persistent-mode afl-fuzz for ocaml";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/angstrom/default.nix b/pkgs/development/ocaml-modules/angstrom/default.nix
index b05190ed491..3aecfde8a7d 100644
--- a/pkgs/development/ocaml-modules/angstrom/default.nix
+++ b/pkgs/development/ocaml-modules/angstrom/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "angstrom";
-  version = "0.13.0";
+  version = "0.14.1";
 
   minimumOCamlVersion = "4.04";
 
@@ -10,7 +10,7 @@ buildDunePackage rec {
     owner  = "inhabitedtype";
     repo   = pname;
     rev    = version;
-    sha256 = "0vzbwd8j34iv7n6gwqq2mf25q7rqpnpxnifb9ssxhq55p5dd1kp4";
+    sha256 = "1l69y0qspgi7kgrphyh7718hjb2sml1a9lljkp65bkqmmmi6ybly";
   };
 
   checkInputs = [ alcotest ];
diff --git a/pkgs/development/ocaml-modules/async_extra/default.nix b/pkgs/development/ocaml-modules/async_extra/default.nix
deleted file mode 100644
index 53be875f4f3..00000000000
--- a/pkgs/development/ocaml-modules/async_extra/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{stdenv, buildOcaml, fetchurl, async_kernel_p4, async_unix_p4,
- bin_prot_p4, core_p4, custom_printf, fieldslib_p4, herelib, pa_ounit,
- pipebang, pa_test, sexplib_p4}:
-
-buildOcaml rec {
-  name = "async_extra";
-  version = "112.24.00";
-
-  minimumSupportedOcamlVersion = "4.02";
-
-  src = fetchurl {
-    url = "https://github.com/janestreet/async_extra/archive/${version}.tar.gz";
-    sha256 = "51f6f67a9ad56fe5dcf09faeeca6ec2fea53a7a975a72bc80504b90841212e28";
-  };
-
-  buildInputs = [ pa_test pa_ounit ];
-  propagatedBuildInputs = [ async_kernel_p4 async_unix_p4 core_p4 bin_prot_p4 custom_printf
-                            fieldslib_p4 herelib pipebang sexplib_p4 ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/janestreet/async_extra";
-    description = "Jane Street Capital's asynchronous execution library (extra)";
-    license = licenses.asl20;
-    maintainers = [ maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/async_kernel/default.nix b/pkgs/development/ocaml-modules/async_kernel/default.nix
deleted file mode 100644
index 19b4d6213e4..00000000000
--- a/pkgs/development/ocaml-modules/async_kernel/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{stdenv, buildOcaml, fetchurl, core_kernel_p4,
- bin_prot_p4, fieldslib_p4, pa_ounit, pa_test,
- sexplib_p4, herelib}:
-
-buildOcaml rec {
-  name = "async_kernel";
-  version = "112.24.00";
-
-  minimumSupportedOcamlVersion = "4.02";
-
-  src = fetchurl {
-    url = "https://github.com/janestreet/async_kernel/archive/${version}.tar.gz";
-    sha256 = "95caf4249b55c5a6b38da56e314845e9ea9a0876eedd4cf0ddcb6c8dd660c6a0";
-  };
-
-  buildInputs = [ pa_test pa_ounit ];
-  propagatedBuildInputs = [ core_kernel_p4 bin_prot_p4 fieldslib_p4 herelib sexplib_p4 ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/janestreet/async_kernel";
-    description = "Jane Street Capital's asynchronous execution library (core) ";
-    license = licenses.asl20;
-    maintainers = [ maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/async_unix/default.nix b/pkgs/development/ocaml-modules/async_unix/default.nix
deleted file mode 100644
index 13dfbcf3790..00000000000
--- a/pkgs/development/ocaml-modules/async_unix/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{stdenv, buildOcaml, fetchurl, async_kernel_p4,
- bin_prot_p4, comparelib, core_p4, fieldslib_p4, herelib, pa_ounit,
- pipebang, pa_test, sexplib_p4}:
-
-buildOcaml rec {
-  name = "async_unix";
-  version = "112.24.00";
-
-  minimumSupportedOcamlVersion = "4.02";
-
-  src = fetchurl {
-    url = "https://github.com/janestreet/async_unix/archive/${version}.tar.gz";
-    sha256 = "d490b1dc42f0987a131fa9695b55f215ad90cdaffbfac35b7f9f88f3834337ab";
-  };
-
-  hasSharedObjects = true;
-  buildInputs = [ pa_ounit ];
-  propagatedBuildInputs = [ async_kernel_p4 core_p4 bin_prot_p4 comparelib
-                            fieldslib_p4 herelib pipebang pa_test sexplib_p4 ];
-
-   meta = with stdenv.lib; {
-    homepage = "https://github.com/janestreet/async_unix";
-    description = "Jane Street Capital's asynchronous execution library (unix)";
-    license = licenses.asl20;
-    maintainers = [ maintainers.ericbmerritt ];
-   };
-}
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/base64/2.0.nix b/pkgs/development/ocaml-modules/base64/2.0.nix
deleted file mode 100644
index a49e0e8a778..00000000000
--- a/pkgs/development/ocaml-modules/base64/2.0.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, fetchzip, ocaml, findlib, ocamlbuild }:
-
-let version = "2.0.0"; in
-
-stdenv.mkDerivation {
-  pname = "ocaml-base64";
-  inherit version;
-
-  src = fetchzip {
-    url = "https://github.com/mirage/ocaml-base64/archive/v${version}.tar.gz";
-    sha256 = "1nv55gwq5vaxmrcz9ja2s165b1p9fhcxszc1l76043gpa56qm4fs";
-  };
-
-  buildInputs = [ ocaml findlib ocamlbuild ];
-
-  createFindlibDestdir = true;
-
-  meta = {
-    homepage = "https://github.com/mirage/ocaml-base64";
-    platforms = ocaml.meta.platforms or [];
-    description = "Base64 encoding and decoding in OCaml";
-    license = stdenv.lib.licenses.isc;
-    maintainers = with stdenv.lib.maintainers; [ vbgl ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/batteries/default.nix b/pkgs/development/ocaml-modules/batteries/default.nix
index 2ed697d42df..3032df7b8fd 100644
--- a/pkgs/development/ocaml-modules/batteries/default.nix
+++ b/pkgs/development/ocaml-modules/batteries/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, qtest, num }:
+{ stdenv, fetchurl, fetchpatch, ocaml, findlib, ocamlbuild, qtest, num }:
 
 let version = "3.0.0"; in
 
@@ -10,6 +10,12 @@ stdenv.mkDerivation {
     sha256 = "0d833amm4p0pczgl7wriv99f3r5r6345p5gi9d97sm0hqx27vzwi";
   };
 
+  # Fixes tests with OCaml 4.10
+  patches = [(fetchpatch {
+    url = "https://github.com/ocaml-batteries-team/batteries-included/commit/6d8d67f9fb48181be3d527b32df15899b00cd5dd.patch";
+    sha256 = "0msk8c5bjm6gm011i75b1rza332i1r4adj58qzli6gyjlvfj1hx4";
+  })];
+
   buildInputs = [ ocaml findlib ocamlbuild qtest ];
   propagatedBuildInputs = [ num ];
 
diff --git a/pkgs/development/ocaml-modules/bigarray-overlap/default.nix b/pkgs/development/ocaml-modules/bigarray-overlap/default.nix
new file mode 100644
index 00000000000..e02b1159a9c
--- /dev/null
+++ b/pkgs/development/ocaml-modules/bigarray-overlap/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildDunePackage, fetchurl
+, bigarray-compat, alcotest, astring, fpath, bos, findlib, pkg-config
+}:
+
+buildDunePackage rec {
+  pname = "bigarray-overlap";
+  version = "0.2.0";
+
+  src = fetchurl {
+    url = "https://github.com/dinosaure/overlap/releases/download/v${version}/bigarray-overlap-v${version}.tbz";
+    sha256 = "1v86avafsbyxjccy0y9gny31s2jzb0kd42v3mhcalklx5f044lcy";
+  };
+
+  minimumOCamlVersion = "4.07";
+  useDune2 = true;
+
+  propagatedBuildInputs = [ bigarray-compat ];
+
+  checkInputs = [ alcotest astring fpath bos findlib pkg-config ];
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/dinosaure/overlap";
+    description = "A minimal library to know that 2 bigarray share physically the same memory or not";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/biocaml/default.nix b/pkgs/development/ocaml-modules/biocaml/default.nix
index de54c24b774..be62a1c6d2c 100644
--- a/pkgs/development/ocaml-modules/biocaml/default.nix
+++ b/pkgs/development/ocaml-modules/biocaml/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildDunePackage, fetchFromGitHub
+{ stdenv, buildDunePackage, fetchFromGitHub, fetchpatch
 , ounit, async, base64, camlzip, cfstream
 , core, ppx_jane, ppx_sexp_conv, rresult, uri, xmlm }:
 
@@ -17,6 +17,12 @@ buildDunePackage rec {
     sha256 = "1f19nc8ld0iv45jjnsvaah3ddj88s2n9wj8mrz726kzg85cfr8xj";
   };
 
+  # fix compilation without and disable -unsafe-string, needed for Ocaml 4.10:
+  patches = [ (fetchpatch {
+      url = "https://github.com/biocaml/biocaml/commit/597fa7b0d203684e45ffe03f56c74335b6173ffc.patch";
+      sha256 = "0b8jdg215cv2k4y3ww7vak2ag5v6v9w8b76qjivr5d1qxz47mqxv";
+  }) ];
+
   buildInputs = [ ppx_jane ppx_sexp_conv ];
   checkInputs = [ ounit ];
   propagatedBuildInputs = [ async base64 camlzip cfstream core rresult uri xmlm ];
diff --git a/pkgs/development/ocaml-modules/cairo2/default.nix b/pkgs/development/ocaml-modules/cairo2/default.nix
index 22d000a5fd3..bf129c7bc44 100644
--- a/pkgs/development/ocaml-modules/cairo2/default.nix
+++ b/pkgs/development/ocaml-modules/cairo2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, buildDunePackage
+{ stdenv, lib, fetchurl, buildDunePackage, ocaml
 , pkgconfig, cairo
 }:
 
@@ -14,7 +14,9 @@ buildDunePackage rec {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ cairo ];
 
-  doCheck = !stdenv.isDarwin;
+  doCheck = !(stdenv.isDarwin
+  # https://github.com/Chris00/ocaml-cairo/issues/19
+  || lib.versionAtLeast ocaml.version "4.10");
 
   meta = {
     homepage = "https://github.com/Chris00/ocaml-cairo";
diff --git a/pkgs/development/ocaml-modules/cohttp/default.nix b/pkgs/development/ocaml-modules/cohttp/default.nix
index 22a4e6371a9..6cb802e437d 100644
--- a/pkgs/development/ocaml-modules/cohttp/default.nix
+++ b/pkgs/development/ocaml-modules/cohttp/default.nix
@@ -1,27 +1,27 @@
-{ lib, fetchFromGitHub, buildDunePackage
-, ppx_fields_conv, ppx_sexp_conv
+{ lib, fetchurl, buildDunePackage
+, ppx_fields_conv, ppx_sexp_conv, stdlib-shims
 , base64, fieldslib, jsonm, re, stringext, uri-sexp
 }:
 
 buildDunePackage rec {
-  pname = "cohttp";
-	version = "2.1.3";
+	pname = "cohttp";
+	version = "2.5.4";
 
-	src = fetchFromGitHub {
-		owner = "mirage";
-		repo = "ocaml-cohttp";
-		rev = "v${version}";
-		sha256 = "16k4ldmz6ljryhr139adlma130frb5wh13qswkrwc5gxx6d2wh8d";
+	minimumOCamlVersion = "4.04.1";
+
+	src = fetchurl {
+		url = "https://github.com/mirage/ocaml-cohttp/releases/download/v${version}/cohttp-v${version}.tbz";
+		sha256 = "1q04spmki5zis5p5m1vs77i3k7ijm134j62g61071vblwx25z17a";
 	};
 
 	buildInputs = [ jsonm ppx_fields_conv ppx_sexp_conv ];
 
-	propagatedBuildInputs = [ base64 fieldslib re stringext uri-sexp ];
+	propagatedBuildInputs = [ base64 fieldslib re stringext uri-sexp stdlib-shims ];
 
 	meta = {
 		description = "HTTP(S) library for Lwt, Async and Mirage";
 		license = lib.licenses.isc;
 		maintainers = [ lib.maintainers.vbgl ];
-		inherit (src.meta) homepage;
+		homepage = "https://github.com/mirage/ocaml-cohttp";
 	};
 }
diff --git a/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix b/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix
index 588ba6711cb..3a99ed9536f 100644
--- a/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix
+++ b/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix
@@ -11,6 +11,8 @@ buildDunePackage {
 	pname = "cohttp-lwt-unix";
 	inherit (cohttp-lwt) version src meta;
 
+	useDune2 = true;
+
 	buildInputs = [ cmdliner ppx_sexp_conv ];
 
 	propagatedBuildInputs = [ cohttp-lwt conduit-lwt-unix fmt magic-mime ];
diff --git a/pkgs/development/ocaml-modules/cohttp/lwt.nix b/pkgs/development/ocaml-modules/cohttp/lwt.nix
index 748b970477e..1f261be6202 100644
--- a/pkgs/development/ocaml-modules/cohttp/lwt.nix
+++ b/pkgs/development/ocaml-modules/cohttp/lwt.nix
@@ -2,6 +2,8 @@
 
 if !stdenv.lib.versionAtLeast cohttp.version "0.99"
 then cohttp
+else if !stdenv.lib.versionAtLeast ppx_sexp_conv.version "0.13"
+then throw "cohttp-lwt is not available for ppx_sexp_conv version ${ppx_sexp_conv.version}"
 else
 
 buildDunePackage {
diff --git a/pkgs/development/ocaml-modules/conduit/default.nix b/pkgs/development/ocaml-modules/conduit/default.nix
index 22538b87f6a..7fbeefb3926 100644
--- a/pkgs/development/ocaml-modules/conduit/default.nix
+++ b/pkgs/development/ocaml-modules/conduit/default.nix
@@ -1,26 +1,26 @@
-{ stdenv, fetchFromGitHub, buildDunePackage
-, ppx_sexp_conv, sexplib
-, astring, ipaddr, macaddr, uri,
+{ stdenv, fetchurl, buildDunePackage
+, ppx_sexp_conv, sexplib, astring, uri, logs
+, ipaddr, ipaddr-sexp
 }:
 
 buildDunePackage rec {
   pname = "conduit";
-  version = "1.4.0";
+  version = "2.2.2";
 
-  src = fetchFromGitHub {
-    owner = "mirage";
-    repo = "ocaml-conduit";
-    rev = "v${version}";
-    sha256 = "1qzamqcmf9ywz04bkwrv17mz9j6zq2w9h1xmnjvp11pnwrs2xq8l";
+  minimumOCamlVersion = "4.07";
+
+  src = fetchurl {
+    url = "https://github.com/mirage/ocaml-conduit/releases/download/v2.2.2/conduit-v2.2.2.tbz";
+    sha256 = "1zb83w2pq9c8xrappfxa6y5q93772f5dj22x78camsm77a2c2z55";
   };
 
   buildInputs = [ ppx_sexp_conv ];
-  propagatedBuildInputs = [ astring ipaddr macaddr sexplib uri ];
+  propagatedBuildInputs = [ astring ipaddr ipaddr-sexp sexplib uri ];
 
   meta = {
     description = "Network connection library for TCP and SSL";
     license = stdenv.lib.licenses.isc;
     maintainers = with stdenv.lib.maintainers; [ alexfmpe vbgl ];
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/mirage/ocaml-conduit";
   };
 }
diff --git a/pkgs/development/ocaml-modules/conduit/lwt-unix.nix b/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
index 51fb369e66f..b3c7e7fa86f 100644
--- a/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
+++ b/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
@@ -1,16 +1,20 @@
-{ stdenv, buildDunePackage, conduit-lwt
-, logs, ppx_sexp_conv, lwt_ssl
+{ stdenv, buildDunePackage
+, conduit-lwt, ppx_sexp_conv, ocaml_lwt, uri, ipaddr, ipaddr-sexp
+, lwt_ssl, tls
 }:
 
-if !stdenv.lib.versionAtLeast conduit-lwt.version "1.0"
-then conduit-lwt
-else
-
 buildDunePackage {
 	pname = "conduit-lwt-unix";
-	inherit (conduit-lwt) version src meta;
+	inherit (conduit-lwt) version src minimumOCamlVersion;
+
+	useDune2 = true;
 
 	buildInputs = [ ppx_sexp_conv ];
 
-	propagatedBuildInputs = [ conduit-lwt logs lwt_ssl ];
+	propagatedBuildInputs =
+		[ conduit-lwt ocaml_lwt uri ipaddr ipaddr-sexp tls lwt_ssl ];
+
+	meta = conduit-lwt.meta // {
+		description = "A network connection establishment library for Lwt_unix";
+	};
 }
diff --git a/pkgs/development/ocaml-modules/conduit/lwt.nix b/pkgs/development/ocaml-modules/conduit/lwt.nix
index 2eb225d88b6..9bcd98e06a4 100644
--- a/pkgs/development/ocaml-modules/conduit/lwt.nix
+++ b/pkgs/development/ocaml-modules/conduit/lwt.nix
@@ -1,14 +1,14 @@
-{ stdenv, buildDunePackage, ppx_sexp_conv, conduit, ocaml_lwt }:
-
-if !stdenv.lib.versionAtLeast conduit.version "1.0"
-then conduit
-else
+{ stdenv, buildDunePackage, ppx_sexp_conv, conduit, ocaml_lwt, sexplib }:
 
 buildDunePackage {
 	pname = "conduit-lwt";
-	inherit (conduit) version src meta;
+	inherit (conduit) version src minimumOCamlVersion;
 
 	buildInputs = [ ppx_sexp_conv ];
 
-	propagatedBuildInputs = [ conduit ocaml_lwt ];
+	propagatedBuildInputs = [ conduit ocaml_lwt sexplib ];
+
+	meta = conduit.meta // {
+		description = "A network connection establishment library for Lwt";
+	};
 }
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/core/default.nix b/pkgs/development/ocaml-modules/core/default.nix
deleted file mode 100644
index a808975d250..00000000000
--- a/pkgs/development/ocaml-modules/core/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{stdenv, buildOcaml, fetchurl, type_conv,
- core_kernel_p4, bin_prot_p4, comparelib, custom_printf, enumerate,
- fieldslib_p4, herelib, pa_bench, pa_test, pa_ounit,
- pipebang, sexplib_p4, typerep_p4, variantslib_p4}:
-
-buildOcaml rec {
-  name = "core";
-  version = "112.24.01";
-
-  minimumSupportedOcamlVersion = "4.02";
-
-  src = fetchurl {
-    url = "https://github.com/janestreet/core/archive/${version}.tar.gz";
-    sha256 = "be5d53ebd4fd04ef23ebf9b3b2840c7aeced6bc4cc6cd3f5e89f71c9949000f4";
-  };
-
-  hasSharedObjects = true;
-
-  buildInputs = [ pa_bench pa_test pa_ounit ];
-  propagatedBuildInputs = [ type_conv core_kernel_p4 bin_prot_p4 comparelib
-                            custom_printf enumerate fieldslib_p4 herelib
-                            pipebang sexplib_p4 typerep_p4 variantslib_p4 ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/janestreet/core";
-    description = "Jane Street Capital's standard library overlay";
-    license = licenses.asl20;
-    maintainers = [ maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/core_kernel/default.nix b/pkgs/development/ocaml-modules/core_kernel/default.nix
deleted file mode 100644
index f51f60f25f1..00000000000
--- a/pkgs/development/ocaml-modules/core_kernel/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{stdenv, buildOcaml, fetchurl, type_conv,
- bin_prot_p4, comparelib, custom_printf, enumerate,
- fieldslib_p4, herelib, pa_bench, pa_test, pa_ounit,
- pipebang, sexplib_p4, typerep_p4, variantslib_p4}:
-
-buildOcaml rec {
-  name = "core_kernel";
-  version = "112.24.00";
-
-  minimumSupportedOcamlVersion = "4.02";
-
-  src = fetchurl {
-    url = "https://github.com/janestreet/core_kernel/archive/${version}.tar.gz";
-    sha256 = "93e1f21e35ade98a2bfbe45ba76eef4a8ad3fed97cdc0769f96e0fcc86d6a761";
-  };
-
-  hasSharedObjects = true;
-
-  buildInputs = [ pa_test pa_ounit ];
-  propagatedBuildInputs = [ type_conv pa_bench bin_prot_p4 comparelib custom_printf
-                            enumerate fieldslib_p4 herelib pipebang sexplib_p4
-                            typerep_p4 variantslib_p4 ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/janestreet/core_kernel";
-    description = "Jane Street Capital's standard library overlay (kernel)";
-    license = licenses.asl20;
-    maintainers = [ maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/crowbar/default.nix b/pkgs/development/ocaml-modules/crowbar/default.nix
new file mode 100644
index 00000000000..0189026e346
--- /dev/null
+++ b/pkgs/development/ocaml-modules/crowbar/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, buildDunePackage, fetchFromGitHub, ocplib-endian, cmdliner, afl-persistent
+, calendar, fpath, pprint, uutf, uunf, uucp }:
+
+buildDunePackage rec {
+  pname = "crowbar";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner  = "stedolan";
+    repo   = pname;
+    rev    = "v${version}";
+    sha256 = "0wjfc9irvirfkic32ivvj6qb7r838w08b0d3vmngigbjpjyc9b14";
+  };
+
+  minimumOCamlVersion = "4.08";
+
+  # disable xmldiff tests, so we don't need to package unmaintained and legacy pkgs
+  postPatch = "rm -rf examples/xmldiff";
+
+  propagatedBuildInputs = [ ocplib-endian cmdliner afl-persistent ];
+  checkInputs = [ calendar fpath pprint uutf uunf uucp ];
+  # uunf is broken on aarch64
+  doCheck = !stdenv.isAarch64;
+
+  meta = with stdenv.lib; {
+    description = "Property fuzzing for OCaml";
+    homepage = "https://github.com/stedolan/crowbar";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/curly/default.nix b/pkgs/development/ocaml-modules/curly/default.nix
new file mode 100644
index 00000000000..a17ea72140f
--- /dev/null
+++ b/pkgs/development/ocaml-modules/curly/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildDunePackage, fetchFromGitHub, ocaml
+, result, alcotest, cohttp-lwt-unix, odoc, curl }:
+
+buildDunePackage rec {
+  pname = "curly";
+  version = "unstable-2019-11-14";
+
+  minimumOCamlVersion = "4.02";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner  = "rgrinberg";
+    repo   = pname;
+    rev    = "33a538c89ef8279d4591454a7f699a4183dde5d0";
+    sha256 = "10pxbvf5xrsajaxrccxh2lqhgp3yaf61z9w03rvb2mq44nc2dggz";
+  };
+
+  propagatedBuildInputs = [ result ];
+  checkInputs = [ alcotest cohttp-lwt-unix ];
+  # test dependencies are only available for >= 4.05
+  doCheck = lib.versionAtLeast ocaml.version "4.05";
+
+  postPatch = ''
+    substituteInPlace src/curly.ml \
+      --replace "exe=\"curl\"" "exe=\"${curl}/bin/curl\""
+    '';
+}
+
diff --git a/pkgs/development/ocaml-modules/custom_printf/default.nix b/pkgs/development/ocaml-modules/custom_printf/default.nix
deleted file mode 100644
index 8f8a0a5c886..00000000000
--- a/pkgs/development/ocaml-modules/custom_printf/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{stdenv, buildOcaml, fetchurl, type_conv, sexplib_p4, pa_ounit}:
-
-buildOcaml rec {
-  name = "custom_printf";
-  version = "112.24.00";
-
-  minimumSupportedOcamlVersion = "4.02";
-
-  src = fetchurl {
-    url = "https://github.com/janestreet/custom_printf/archive/${version}.tar.gz";
-    sha256 = "dad3aface92c53e8fbcc12cc9358c4767cb1cb09857d4819a10ed98eccaca8f9";
-  };
-
-  buildInputs = [ pa_ounit ];
-  propagatedBuildInputs = [ type_conv sexplib_p4 ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/janestreet/custom_printf";
-    description = "Syntax extension for printf format strings";
-    license = licenses.asl20;
-    maintainers = [ maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/dns/client.nix b/pkgs/development/ocaml-modules/dns/client.nix
index 0dd0541138c..a6dc40de24e 100644
--- a/pkgs/development/ocaml-modules/dns/client.nix
+++ b/pkgs/development/ocaml-modules/dns/client.nix
@@ -1,5 +1,6 @@
 { lib, buildDunePackage, dns, ocaml_lwt, mirage-clock, mirage-time
-, mirage-random, mirage-stack, mirage-crypto-rng, mtime, randomconv }:
+, mirage-random, mirage-stack, mirage-crypto-rng, mtime, randomconv
+, cstruct, fmt, logs, rresult, domain-name, ipaddr, alcotest }:
 
 buildDunePackage {
   pname = "dns-client";
@@ -7,8 +8,11 @@ buildDunePackage {
 
   useDune2 = true;
 
-  propagatedBuildInputs = [ dns mtime ocaml_lwt randomconv mirage-clock mirage-time
-                            mirage-random mirage-stack mirage-crypto-rng ];
+  propagatedBuildInputs = [ cstruct fmt logs dns rresult randomconv domain-name ipaddr
+                            ocaml_lwt mirage-stack mirage-random mirage-time mirage-clock
+                            mtime mirage-crypto-rng ];
+  checkInputs = [ alcotest ];
+  doCheck = true;
 
   meta = dns.meta // {
     description = "Pure DNS resolver API";
diff --git a/pkgs/development/ocaml-modules/dns/default.nix b/pkgs/development/ocaml-modules/dns/default.nix
index 01bbffd40b9..09753c14b35 100644
--- a/pkgs/development/ocaml-modules/dns/default.nix
+++ b/pkgs/development/ocaml-modules/dns/default.nix
@@ -1,19 +1,19 @@
 { lib, buildDunePackage, fetchurl, alcotest
-, cstruct, domain-name, duration, gmap, ipaddr, logs, lru, metrics, ptime, rresult
+, cstruct, domain-name, duration, gmap, ipaddr, logs, lru, metrics, ptime, rresult, astring, fmt
 }:
 
 buildDunePackage rec {
   pname = "dns";
-  version = "4.5.0";
+  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 = "10jrnnxvp06rvzk285wibyi9hn15qhjnqjy9xsfbwl8yhmzzqnq0";
+    sha256 = "0prypr5c589vay4alri78g0sarh06z35did26wn3s3di17d5761q";
   };
 
-  propagatedBuildInputs = [ cstruct domain-name duration gmap ipaddr logs lru metrics ptime rresult ];
+  propagatedBuildInputs = [ rresult astring fmt logs ptime domain-name gmap cstruct ipaddr lru duration metrics ];
 
   doCheck = true;
   checkInputs = lib.optional doCheck alcotest;
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..fcb93aac799
--- /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;
+
+  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-glob/default.nix b/pkgs/development/ocaml-modules/dune-glob/default.nix
new file mode 100644
index 00000000000..34b79068c11
--- /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;
+
+  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 14059070c9a..9eb253f02e5 100644
--- a/pkgs/development/ocaml-modules/dune-private-libs/default.nix
+++ b/pkgs/development/ocaml-modules/dune-private-libs/default.nix
@@ -7,6 +7,8 @@ buildDunePackage rec {
 
   inherit (dune_2) src version;
 
+  minimumOCamlVersion = "4.08";
+
   dontAddPrefix = true;
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/eliom/default.nix b/pkgs/development/ocaml-modules/eliom/default.nix
index 559c21cecac..4ce502af19f 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.10.1";
+  version = "6.12.0";
 
   src = fetchzip {
     url = "https://github.com/ocsigen/eliom/archive/${version}.tar.gz";
-    sha256 = "006722wcmhsfhyzv3qbgrrn53fbv9v4i31z52a0pznb6cll45nkm";
+    sha256 = "015jh72v6ch9h9czd8sn5kjz3pv6lsnvvnhdjgrplwj443dn1xp8";
   };
 
   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 1c71f7fceb7..93e29d3d34a 100644
--- a/pkgs/development/ocaml-modules/elpi/default.nix
+++ b/pkgs/development/ocaml-modules/elpi/default.nix
@@ -1,17 +1,15 @@
-{ lib, fetchFromGitHub, buildDunePackage, camlp5
+{ lib, fetchzip, buildDunePackage, camlp5
 , ppx_tools_versioned, ppx_deriving, re
 }:
 
 buildDunePackage rec {
   pname = "elpi";
-  version = "1.10.2";
+  version = "1.11.2";
 
-  src = fetchFromGitHub {
-    owner = "LPCIC";
-    repo = "elpi";
-    rev = "v${version}";
-    sha256 = "0w5z0pxyshqawq7w5rw3nqii49y88rizvwqf202pl11xqi14icsn";
-  };
+   src = fetchzip {
+     url = "https://github.com/LPCIC/elpi/releases/download/v${version}/elpi-v${version}.tbz";
+     sha256 = "15hamy9ifr05kczadwh3yj2gmr12a9z1jwppmp5yrns0vykjbj76";
+   };
 
   minimumOCamlVersion = "4.04";
 
@@ -23,6 +21,8 @@ buildDunePackage rec {
     description = "Embeddable λProlog Interpreter";
     license = lib.licenses.lgpl21Plus;
     maintainers = [ lib.maintainers.vbgl ];
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/LPCIC/elpi";
   };
+
+  useDune2 = true;
 }
diff --git a/pkgs/development/ocaml-modules/encore/default.nix b/pkgs/development/ocaml-modules/encore/default.nix
index ab91117ac08..dd05982c3ca 100644
--- a/pkgs/development/ocaml-modules/encore/default.nix
+++ b/pkgs/development/ocaml-modules/encore/default.nix
@@ -1,15 +1,21 @@
-{ lib, buildDunePackage, fetchurl, ocaml, alcotest, angstrom, ke }:
+{ lib, buildDunePackage, fetchurl, ocaml
+, fmt, bigstringaf, bigarray-compat
+, bigarray-overlap, angstrom, ke, alcotest }:
 
 buildDunePackage rec {
   pname = "encore";
-  version = "0.3";
+  version = "0.5";
+
   src = fetchurl {
     url = "https://github.com/mirage/encore/releases/download/v${version}/encore-v${version}.tbz";
-    sha256 = "05nv6yms5axsmq9cspr7884rz5kirj50izx3vdm89q4yl186qykl";
+    sha256 = "15n0dla149k9h7migs76wap08z5402qcvxyqxzl887ha6isj3p9n";
   };
-  propagatedBuildInputs = [ angstrom ke ];
-  checkInputs = lib.optional doCheck alcotest;
-  doCheck = lib.versions.majorMinor ocaml.version != "4.07";
+
+  useDune2 = true;
+
+  propagatedBuildInputs = [ angstrom ke fmt bigstringaf bigarray-compat bigarray-overlap ];
+  checkInputs = [ alcotest ];
+  doCheck = true;
 
   meta = {
     homepage = "https://github.com/mirage/encore";
diff --git a/pkgs/development/ocaml-modules/eqaf/default.nix b/pkgs/development/ocaml-modules/eqaf/default.nix
index 13d691f71cc..d86dc01dcb7 100644
--- a/pkgs/development/ocaml-modules/eqaf/default.nix
+++ b/pkgs/development/ocaml-modules/eqaf/default.nix
@@ -3,11 +3,11 @@
 buildDunePackage rec {
   minimumOCamlVersion = "4.03";
   pname = "eqaf";
-  version = "0.6";
+  version = "0.7";
 
   src = fetchurl {
     url = "https://github.com/mirage/eqaf/releases/download/v${version}/eqaf-v${version}.tbz";
-    sha256 = "068r231ia87mpqpaqzqb9sjfj6yaqrwvcls2p173aa4qg38xvsq9";
+    sha256 = "1q09pwhs121vpficl2af1yzs4y7dd9bc1lcxbqyfc4x4m6p6drhh";
   };
 
   propagatedBuildInputs = [ cstruct bigarray-compat ];
diff --git a/pkgs/development/ocaml-modules/functoria/default.nix b/pkgs/development/ocaml-modules/functoria/default.nix
index 3a4f7d46b6e..330ab26e8e6 100644
--- a/pkgs/development/ocaml-modules/functoria/default.nix
+++ b/pkgs/development/ocaml-modules/functoria/default.nix
@@ -4,13 +4,13 @@
 
 buildDunePackage rec {
   pname   = "functoria";
-  version = "3.0.3";
+  version = "3.1.0";
 
   minimumOCamlVersion = "4.04";
 
   src = fetchurl {
     url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
-    sha256 = "08wv2890gz7ci1fa2b3z4cvqf98nqb09f89y08kcmnsirlbbzlfh";
+    sha256 = "15jdqdj1vfi0x9gjydrrnbwzwbzw34w1iir032jrji820xlblky2";
   };
 
   propagatedBuildInputs = [ cmdliner rresult astring fmt ocamlgraph logs bos fpath ptime ];
diff --git a/pkgs/development/ocaml-modules/functoria/runtime.nix b/pkgs/development/ocaml-modules/functoria/runtime.nix
new file mode 100644
index 00000000000..806ae82b6ef
--- /dev/null
+++ b/pkgs/development/ocaml-modules/functoria/runtime.nix
@@ -0,0 +1,17 @@
+{ lib, buildDunePackage, functoria, cmdliner, fmt, alcotest }:
+
+buildDunePackage {
+  pname = "functoria-runtime";
+
+  inherit (functoria) version src;
+
+  propagatedBuildInputs = [ cmdliner fmt ];
+  checkInputs = [ alcotest functoria];
+  doCheck = true;
+
+  meta = with lib; {
+    inherit (functoria.meta) homepage license;
+    description = "Runtime support library for functoria-generated code";
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
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/git-http/default.nix b/pkgs/development/ocaml-modules/git-http/default.nix
index 89a1803b520..3b127c65006 100644
--- a/pkgs/development/ocaml-modules/git-http/default.nix
+++ b/pkgs/development/ocaml-modules/git-http/default.nix
@@ -1,12 +1,12 @@
-{ buildDunePackage, git, cohttp-lwt, alcotest, mtime, nocrypto }:
+{ buildDunePackage, git, cohttp, cohttp-lwt }:
 
 buildDunePackage {
 	pname = "git-http";
-	inherit (git) version src;
+	inherit (git) version src minimumOCamlVersion;
 
-	buildInputs = [ alcotest mtime nocrypto ];
-	propagatedBuildInputs = [ git cohttp-lwt ];
-	doCheck = true;
+	useDune2 = true;
+
+	propagatedBuildInputs = [ git cohttp cohttp-lwt ];
 
 	meta = {
 		description = "Client implementation of the “Smart†HTTP Git protocol in pure OCaml";
diff --git a/pkgs/development/ocaml-modules/git-unix/default.nix b/pkgs/development/ocaml-modules/git-unix/default.nix
index 50e6f1d3bce..0633b8af8f0 100644
--- a/pkgs/development/ocaml-modules/git-unix/default.nix
+++ b/pkgs/development/ocaml-modules/git-unix/default.nix
@@ -1,11 +1,17 @@
-{ buildDunePackage, git-http, cohttp-lwt-unix, tls, cmdliner, mtime }:
+{ stdenv, buildDunePackage, git-http, cohttp, cohttp-lwt-unix
+, mmap, cmdliner, mtime, alcotest, mirage-crypto-rng, tls
+, io-page, git-binary
+}:
 
 buildDunePackage {
 	pname = "git-unix";
-	inherit (git-http) version src;
+	inherit (git-http) version src minimumOCamlVersion;
 
-	buildInputs = [ cmdliner mtime ];
-	propagatedBuildInputs = [ cohttp-lwt-unix git-http tls ];
+	useDune2 = true;
+
+	propagatedBuildInputs = [ mmap cmdliner git-http cohttp cohttp-lwt-unix mtime ];
+	checkInputs = [ alcotest mirage-crypto-rng tls io-page git-binary ];
+	doCheck = !stdenv.isAarch64;
 
 	meta = {
 		description = "Unix backend for the Git protocol(s)";
diff --git a/pkgs/development/ocaml-modules/git/default.nix b/pkgs/development/ocaml-modules/git/default.nix
index 741e004979c..d28e8ef2e7b 100644
--- a/pkgs/development/ocaml-modules/git/default.nix
+++ b/pkgs/development/ocaml-modules/git/default.nix
@@ -1,23 +1,30 @@
-{ lib, fetchurl, buildDunePackage
-, alcotest, git, mtime, nocrypto
-, angstrom, astring, cstruct, decompress, digestif, encore, duff, fmt
+{ stdenv, fetchurl, buildDunePackage
+, alcotest, mtime, mirage-crypto-rng, tls, git-binary
+, angstrom, astring, cstruct, decompress, digestif, encore, duff, fmt, checkseum
 , fpath, hex, ke, logs, lru, ocaml_lwt, ocamlgraph, ocplib-endian, uri, rresult
+, stdlib-shims
 }:
 
 buildDunePackage rec {
-  pname = "git";
-	version = "2.1.2";
+	pname = "git";
+	version = "2.1.3";
+
+	minimumOCamlVersion = "4.07";
+	useDune2 = true;
 
 	src = fetchurl {
 		url = "https://github.com/mirage/ocaml-git/releases/download/${version}/git-${version}.tbz";
-		sha256 = "0yyclsh255k7pvc2fcsdi8k2fcrr0by2nz6g3sqnwlimjyp7mz5j";
+		sha256 = "1ppllv65vrkfrmx46aiq5879isffcjmg92z9rv2kh92a83h4lqax";
 	};
 
-	propagatedBuildInputs = [ angstrom astring cstruct decompress digestif encore duff fmt fpath hex ke logs lru ocaml_lwt ocamlgraph ocplib-endian uri rresult ];
-	checkInputs = lib.optionals doCheck [ alcotest git mtime nocrypto ];
-	doCheck = true;
+	propagatedBuildInputs = [
+		angstrom astring checkseum cstruct decompress digestif encore duff fmt fpath
+		hex ke logs lru ocaml_lwt ocamlgraph ocplib-endian uri rresult stdlib-shims
+	];
+	checkInputs = [ alcotest mtime mirage-crypto-rng tls git-binary ];
+	doCheck = !stdenv.isAarch64;
 
-	meta = {
+	meta = with stdenv; {
 		description = "Git format and protocol in pure OCaml";
 		license = lib.licenses.isc;
 		maintainers = [ lib.maintainers.vbgl ];
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/graphql/cohttp.nix b/pkgs/development/ocaml-modules/graphql/cohttp.nix
index c6e85da77f3..09f4757041a 100644
--- a/pkgs/development/ocaml-modules/graphql/cohttp.nix
+++ b/pkgs/development/ocaml-modules/graphql/cohttp.nix
@@ -8,6 +8,8 @@ buildDunePackage rec {
 
   inherit (graphql) version src;
 
+  useDune2 = true;
+
   nativeBuildInputs = [ ocaml-crunch ];
   propagatedBuildInputs = [ astring cohttp digestif graphql ocplib-endian ];
 
diff --git a/pkgs/development/ocaml-modules/graphql_ppx/default.nix b/pkgs/development/ocaml-modules/graphql_ppx/default.nix
new file mode 100644
index 00000000000..59e832291f6
--- /dev/null
+++ b/pkgs/development/ocaml-modules/graphql_ppx/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildDunePackage, fetchFromGitHub, alcotest, cppo
+, ocaml-migrate-parsetree, ppx_tools_versioned, reason, result, yojson }:
+
+buildDunePackage rec {
+  pname = "graphql_ppx";
+  version = "0.7.1";
+
+  minimumOCamlVersion = "4.06";
+
+  src = fetchFromGitHub {
+    owner = "reasonml-community";
+    repo = "graphql_ppx";
+    rev = "v${version}";
+    sha256 = "0gpzwcnss9c82whncyxfm6gwlkgh9hy90329hrazny32ybb470zh";
+  };
+
+  propagatedBuildInputs =
+    [ cppo ocaml-migrate-parsetree ppx_tools_versioned reason result yojson ];
+
+  checkInputs = lib.optional doCheck alcotest;
+
+  doCheck = false;
+
+  meta = {
+    homepage = "https://github.com/reasonml-community/graphql_ppx";
+    description = "GraphQL PPX rewriter for Bucklescript/ReasonML";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ Zimmi48 jtcoolen ];
+  };
+}
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/index/default.nix b/pkgs/development/ocaml-modules/index/default.nix
index d0857f7ef0a..f4b1844d684 100644
--- a/pkgs/development/ocaml-modules/index/default.nix
+++ b/pkgs/development/ocaml-modules/index/default.nix
@@ -1,18 +1,18 @@
-{ lib, fetchurl, buildDunePackage, fmt, logs, stdlib-shims }:
+{ lib, fetchurl, buildDunePackage, fmt, logs, mtime, stdlib-shims }:
 
 buildDunePackage rec {
   pname = "index";
-  version = "1.2.0";
+  version = "1.2.1";
 
   minimumOCamlVersion = "4.07";
 
   src = fetchurl {
     url = "https://github.com/mirage/index/releases/download/${version}/index-${version}.tbz";
-    sha256 = "0d44s1d2mpxvpg0zh57c928wf1w1wd33l1fw5r62al5zmi710ff6";
+    sha256 = "1a9b6rsazrjy07syxl9ix5002i95mlvx5vk7nl2x9cs6s0zw906d";
   };
 
   buildInputs = [ stdlib-shims ];
-  propagatedBuildInputs = [ fmt logs ];
+  propagatedBuildInputs = [ fmt logs mtime ];
 
   meta = {
     homepage = "https://github.com/mirage/index";
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/io-page/default.nix b/pkgs/development/ocaml-modules/io-page/default.nix
index d9e4c8cdf81..06bd01fefac 100644
--- a/pkgs/development/ocaml-modules/io-page/default.nix
+++ b/pkgs/development/ocaml-modules/io-page/default.nix
@@ -1,16 +1,19 @@
-{ stdenv, fetchzip, buildDunePackage, configurator, cstruct }:
+{ stdenv, fetchurl, buildDunePackage, configurator, cstruct, bigarray-compat, ounit }:
 
 buildDunePackage rec {
   pname = "io-page";
-  version = "2.0.1";
+  version = "2.3.0";
 
-  src = fetchzip {
-    url = "https://github.com/mirage/${pname}/archive/${version}.tar.gz";
-    sha256 = "1rw04dwrlx5hah5dkjf7d63iff82j9cifr8ifjis5pdwhgwcff8i";
+  minimumOCamlVersion = "4.02.3";
+
+  src = fetchurl {
+    url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
+    sha256 = "1hx27pwf419hrhwaw9cphbnl8akz8yy73hqj49l15g2k7shah1cn";
   };
 
-  buildInputs = [ configurator ];
-  propagatedBuildInputs = [ cstruct ];
+  propagatedBuildInputs = [ cstruct bigarray-compat ];
+  checkInputs = [ ounit ];
+  doCheck = true;
 
   meta = {
     homepage = "https://github.com/mirage/io-page";
diff --git a/pkgs/development/ocaml-modules/io-page/unix.nix b/pkgs/development/ocaml-modules/io-page/unix.nix
new file mode 100644
index 00000000000..b3f7f878b27
--- /dev/null
+++ b/pkgs/development/ocaml-modules/io-page/unix.nix
@@ -0,0 +1,17 @@
+{ lib, buildDunePackage, io-page, cstruct, ounit }:
+
+buildDunePackage {
+  pname = "io-page-unix";
+
+  inherit (io-page) version src minimumOCamlVersion;
+
+  propagatedBuildInputs = [ cstruct io-page ];
+  checkInputs = [ ounit ];
+  doCheck = true;
+
+  meta = with lib; {
+    inherit (io-page.meta) homepage license;
+    description = "Support for efficient handling of I/O memory pages on Unix";
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ipaddr/2.6.1.nix b/pkgs/development/ocaml-modules/ipaddr/2.6.1.nix
deleted file mode 100644
index a602393e920..00000000000
--- a/pkgs/development/ocaml-modules/ipaddr/2.6.1.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{stdenv, buildOcaml, fetchurl, sexplib_p4}:
-
-buildOcaml rec {
-  name = "ipaddr";
-  version = "2.6.1";
-
-  src = fetchurl {
-    url = "https://github.com/mirage/ocaml-ipaddr/archive/${version}.tar.gz";
-    sha256 = "7051013d8f58abff433187d70cd7ddd7a6b49a6fbe6cad1893f571f65b8ed3d0";
-  };
-
-  propagatedBuildInputs = [ sexplib_p4 ];
-
-  configurePhase = ''
-   ocaml setup.ml -configure --prefix $out
-  '';
-
-  buildPhase =  ''
-  make build
-  '';
-
-  installPhase =  ''
-  make install
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/mirage/ocaml-ipaddr";
-    description = "A library for manipulation of IP (and MAC) address representations ";
-    license = licenses.mit;
-    maintainers = [ maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/ipaddr/cstruct.nix b/pkgs/development/ocaml-modules/ipaddr/cstruct.nix
new file mode 100644
index 00000000000..b6240d39ebd
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ipaddr/cstruct.nix
@@ -0,0 +1,17 @@
+{ lib, buildDunePackage
+, ipaddr, cstruct
+}:
+
+buildDunePackage rec {
+  pname = "ipaddr-cstruct";
+
+  inherit (ipaddr) version src minimumOCamlVersion;
+
+  propagatedBuildInputs = [ ipaddr cstruct ];
+
+  doCheck = true;
+
+  meta = ipaddr.meta // {
+    description = "A library for manipulation of IP address representations using Cstructs";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ipaddr/default.nix b/pkgs/development/ocaml-modules/ipaddr/default.nix
index d7009fdf553..a4a6f9fc7a1 100644
--- a/pkgs/development/ocaml-modules/ipaddr/default.nix
+++ b/pkgs/development/ocaml-modules/ipaddr/default.nix
@@ -1,22 +1,20 @@
 { lib, buildDunePackage
-, macaddr, ounit
+, macaddr, domain-name, stdlib-shims
+, ounit, ppx_sexp_conv
 }:
 
 buildDunePackage rec {
   pname = "ipaddr";
 
-  inherit (macaddr) version src;
+  inherit (macaddr) version src minimumOCamlVersion;
 
-  buildInputs = [ ounit ];
-
-  propagatedBuildInputs = [ macaddr ];
+  propagatedBuildInputs = [ macaddr domain-name stdlib-shims ];
 
+  checkInputs = [ ppx_sexp_conv ounit ];
   doCheck = true;
 
-  meta = with lib; {
-    homepage = "https://github.com/mirage/ocaml-ipaddr";
+  meta = macaddr.meta // {
     description = "A library for manipulation of IP (and MAC) address representations ";
-    license = licenses.isc;
-    maintainers = with maintainers; [ alexfmpe ericbmerritt ];
+    maintainers = with lib.maintainers; [ alexfmpe ericbmerritt ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/ipaddr/sexp.nix b/pkgs/development/ocaml-modules/ipaddr/sexp.nix
new file mode 100644
index 00000000000..8d6186d6338
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ipaddr/sexp.nix
@@ -0,0 +1,18 @@
+{ lib, buildDunePackage
+, ipaddr, ipaddr-cstruct, ounit, ppx_sexp_conv
+}:
+
+buildDunePackage rec {
+  pname = "ipaddr-sexp";
+
+  inherit (ipaddr) version src minimumOCamlVersion;
+
+  propagatedBuildInputs = [ ipaddr ];
+
+  checkInputs = [ ipaddr-cstruct ounit ppx_sexp_conv ];
+  doCheck = true;
+
+  meta = ipaddr.meta // {
+    description = "A library for manipulation of IP address representations usnig sexp";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/irmin/default.nix b/pkgs/development/ocaml-modules/irmin/default.nix
index cba67759167..2e3e27df7ff 100644
--- a/pkgs/development/ocaml-modules/irmin/default.nix
+++ b/pkgs/development/ocaml-modules/irmin/default.nix
@@ -1,31 +1,22 @@
 { lib, fetchurl, buildDunePackage
 , astring, base64, digestif, fmt, jsonm, logs, ocaml_lwt, ocamlgraph, uri
-, alcotest, hex
+, alcotest, hex, ppx_irmin
 }:
 
-buildDunePackage rec {
-
+buildDunePackage {
   pname = "irmin";
-  version = "2.1.0";
 
-  minimumOCamlVersion = "4.07";
+  inherit (ppx_irmin) src version;
 
-  src = fetchurl {
-    url = "https://github.com/mirage/irmin/releases/download/${version}/irmin-${version}.tbz";
-    sha256 = "1ji8r7zbdmhbk8r8w2hskd9z7pnvirzbhincfxndxgdaxbfkff5g";
-  };
+  useDune2 = true;
+  minimumOCamlVersion = "4.07";
 
   propagatedBuildInputs = [ astring base64 digestif fmt jsonm logs ocaml_lwt ocamlgraph uri ];
 
-  checkInputs = lib.optionals doCheck [ alcotest hex ];
-
+  checkInputs = [ alcotest hex ppx_irmin ];
   doCheck = true;
 
-  meta = {
-    homepage = "https://irmin.org/";
+  meta = ppx_irmin.meta // {
     description = "A distributed database built on the same principles as Git";
-    license = lib.licenses.isc;
-    maintainers = [ lib.maintainers.vbgl ];
   };
-
 }
diff --git a/pkgs/development/ocaml-modules/irmin/fs.nix b/pkgs/development/ocaml-modules/irmin/fs.nix
index b1987aa7cbc..0e9596751b8 100644
--- a/pkgs/development/ocaml-modules/irmin/fs.nix
+++ b/pkgs/development/ocaml-modules/irmin/fs.nix
@@ -8,6 +8,8 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ irmin ];
 
+  useDune2 = true;
+
   checkInputs = lib.optional doCheck irmin-test;
 
   doCheck = true;
diff --git a/pkgs/development/ocaml-modules/irmin/git.nix b/pkgs/development/ocaml-modules/irmin/git.nix
index bb28042a1f6..b222bc53e3a 100644
--- a/pkgs/development/ocaml-modules/irmin/git.nix
+++ b/pkgs/development/ocaml-modules/irmin/git.nix
@@ -6,6 +6,8 @@ buildDunePackage rec {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ git irmin ];
 
   checkInputs = lib.optionals doCheck [ git-unix irmin-mem irmin-test ];
diff --git a/pkgs/development/ocaml-modules/irmin/graphql.nix b/pkgs/development/ocaml-modules/irmin/graphql.nix
index abcdc3d58dd..6e4598dd986 100644
--- a/pkgs/development/ocaml-modules/irmin/graphql.nix
+++ b/pkgs/development/ocaml-modules/irmin/graphql.nix
@@ -6,9 +6,12 @@ buildDunePackage rec {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ cohttp-lwt graphql-cohttp graphql-lwt irmin ];
 
-  doCheck = true;
+  # test requires network
+  doCheck = false;
 
   meta = irmin.meta // {
     description = "GraphQL server for Irmin";
diff --git a/pkgs/development/ocaml-modules/irmin/http.nix b/pkgs/development/ocaml-modules/irmin/http.nix
index c8db6d563c9..24e9f52aa08 100644
--- a/pkgs/development/ocaml-modules/irmin/http.nix
+++ b/pkgs/development/ocaml-modules/irmin/http.nix
@@ -8,6 +8,8 @@ buildDunePackage rec {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ cohttp-lwt irmin webmachine ];
 
   checkInputs = lib.optionals doCheck [ checkseum git-unix irmin-git irmin-mem irmin-test ];
diff --git a/pkgs/development/ocaml-modules/irmin/mem.nix b/pkgs/development/ocaml-modules/irmin/mem.nix
index b7040b9db0d..1b8947849a9 100644
--- a/pkgs/development/ocaml-modules/irmin/mem.nix
+++ b/pkgs/development/ocaml-modules/irmin/mem.nix
@@ -6,6 +6,8 @@ buildDunePackage rec {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ irmin ];
 
   checkInputs = lib.optional doCheck irmin-test;
diff --git a/pkgs/development/ocaml-modules/irmin/pack.nix b/pkgs/development/ocaml-modules/irmin/pack.nix
index c374b1a2275..b0081eb366e 100644
--- a/pkgs/development/ocaml-modules/irmin/pack.nix
+++ b/pkgs/development/ocaml-modules/irmin/pack.nix
@@ -7,6 +7,8 @@ buildDunePackage rec {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ index irmin ocaml_lwt ];
 
   checkInputs = lib.optionals doCheck [ alcotest-lwt irmin-test ];
diff --git a/pkgs/development/ocaml-modules/irmin/ppx.nix b/pkgs/development/ocaml-modules/irmin/ppx.nix
index c28532b49a9..35aa659fbc8 100644
--- a/pkgs/development/ocaml-modules/irmin/ppx.nix
+++ b/pkgs/development/ocaml-modules/irmin/ppx.nix
@@ -1,14 +1,29 @@
-{ lib, buildDunePackage, ppxlib, ocaml-syntax-shims, irmin }:
+{ lib, fetchurl, buildDunePackage, ppxlib, ocaml-syntax-shims }:
 
-buildDunePackage {
+buildDunePackage rec {
   pname = "ppx_irmin";
+  version = "2.2.0";
 
-  inherit (irmin) version src minimumOCamlVersion;
+  src = fetchurl {
+    url = "https://github.com/mirage/irmin/releases/download/${version}/irmin-${version}.tbz";
+    sha256 = "0gzw918b661qkvd140hilww9jsc49rxsxz1k4iihyvikjn202km4";
+  };
+
+  minimumOCamlVersion = "4.06";
+
+  useDune2 = true;
 
   buildInputs = [ ocaml-syntax-shims ];
   propagatedBuildInputs = [ ppxlib ];
 
-  meta = irmin.meta // {
+  # tests depend on irmin, would create mutual dependency
+  # opt to test irmin instead of ppx_irmin
+  doCheck = false;
+
+  meta = {
+    homepage = "https://irmin.org/";
     description = "PPX deriver for Irmin generics";
+    license = lib.licenses.isc;
+    maintainers = [ lib.maintainers.vbgl ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/irmin/test.nix b/pkgs/development/ocaml-modules/irmin/test.nix
index 57e33e2db8a..b8a3f3ae245 100644
--- a/pkgs/development/ocaml-modules/irmin/test.nix
+++ b/pkgs/development/ocaml-modules/irmin/test.nix
@@ -6,6 +6,8 @@ buildDunePackage {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ alcotest cmdliner irmin metrics-unix mtime ];
 
   meta = irmin.meta // {
diff --git a/pkgs/development/ocaml-modules/irmin/unix.nix b/pkgs/development/ocaml-modules/irmin/unix.nix
index 5793678bfcf..7a09eaabd3e 100644
--- a/pkgs/development/ocaml-modules/irmin/unix.nix
+++ b/pkgs/development/ocaml-modules/irmin/unix.nix
@@ -10,6 +10,8 @@ buildDunePackage rec {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ checkseum cmdliner git-unix yaml
     irmin irmin-fs irmin-git irmin-graphql irmin-http irmin-mem irmin-pack irmin-watcher
   ];
diff --git a/pkgs/development/ocaml-modules/janestreet/0.13.nix b/pkgs/development/ocaml-modules/janestreet/0.13.nix
index 4682a744d6f..d16ceefd04c 100644
--- a/pkgs/development/ocaml-modules/janestreet/0.13.nix
+++ b/pkgs/development/ocaml-modules/janestreet/0.13.nix
@@ -357,7 +357,8 @@ rec {
 
   async_unix = janePackage {
     pname = "async_unix";
-    hash = "0n3jz3qjlphyhkqgnbjbwf2fqxaksws82dx1mk4m4wnw3275gdi5";
+    version = "0.13.1";
+    hash = "1sb8grbj4bv6ih3yfdihxhn5c9rqczr56b5bhl85wy2mi92m17xv";
     meta.description = "Monadic concurrency library";
     propagatedBuildInputs = [ async_kernel core ];
   };
diff --git a/pkgs/development/ocaml-modules/janestreet/async-extra.nix b/pkgs/development/ocaml-modules/janestreet/async-extra.nix
deleted file mode 100644
index 3de02437dd9..00000000000
--- a/pkgs/development/ocaml-modules/janestreet/async-extra.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{stdenv, buildOcamlJane, async_kernel, async_unix,
- bin_prot, core, ppx_custom_printf, fieldslib, herelib,
- pipebang, sexplib, async_rpc_kernel}:
-
-buildOcamlJane {
-  name = "async_extra";
-  hash = "1xdwab19fycr4cdm3dh9vmx42f8lvf9s4f9pjgdydxfrm7yzyrfh";
-  propagatedBuildInputs = [ async_kernel async_unix core bin_prot ppx_custom_printf
-                            fieldslib herelib pipebang sexplib async_rpc_kernel ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/janestreet/async_extra";
-    description = "Jane Street Capital's asynchronous execution library (extra)";
-    license = licenses.asl20;
-    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/async-kernel.nix b/pkgs/development/ocaml-modules/janestreet/async-kernel.nix
deleted file mode 100644
index 6e8a5cae635..00000000000
--- a/pkgs/development/ocaml-modules/janestreet/async-kernel.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{stdenv, buildOcamlJane, core_kernel,
- bin_prot, fieldslib,
- sexplib, herelib}:
-
-buildOcamlJane {
-  name = "async_kernel";
-  hash = "1n6ifbrq6q6hq8bxh6b9vhg11mv9r6jgp1b7vfw7mh5s2nrd4b60";
-  propagatedBuildInputs = [ core_kernel bin_prot fieldslib herelib sexplib ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/janestreet/async_kernel";
-    description = "Jane Street Capital's asynchronous execution library (core) ";
-    license = licenses.asl20;
-    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/async-unix.nix b/pkgs/development/ocaml-modules/janestreet/async-unix.nix
deleted file mode 100644
index 5678d95a131..00000000000
--- a/pkgs/development/ocaml-modules/janestreet/async-unix.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{stdenv, buildOcamlJane, async_kernel,
- bin_prot, comparelib, core, fieldslib, herelib,
- pipebang, sexplib}:
-
-buildOcamlJane {
-  name = "async_unix";
-  hash = "03ng7f0s22wwzspakiqj442vs1a7yf834109jcj9r3g1awwfhcy7";
-  propagatedBuildInputs = [ async_kernel core bin_prot comparelib
-                            fieldslib herelib pipebang sexplib ];
-
-  meta = with stdenv.lib; {
-   homepage = "https://github.com/janestreet/async_unix";
-   description = "Jane Street Capital's asynchronous execution library (unix)";
-   license = licenses.asl20;
-   maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/core.nix b/pkgs/development/ocaml-modules/janestreet/core.nix
deleted file mode 100644
index ac62bc51b07..00000000000
--- a/pkgs/development/ocaml-modules/janestreet/core.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{stdenv, buildOcamlJane,
- core_kernel,
- bin_prot, fieldslib, sexplib, typerep, variantslib,
- ppx_assert, ppx_bench, ppx_driver, ppx_expect, ppx_inline_test, ppx_jane}:
-
-buildOcamlJane {
-  name = "core";
-  hash = "0nz6d5glgymbpchvcpw77yis9jgi2bll32knzy9vx99wn83zdrmd";
-  propagatedBuildInputs =
-    [ core_kernel bin_prot fieldslib sexplib typerep variantslib
-      ppx_assert ppx_bench ppx_driver ppx_expect ppx_inline_test ppx_jane ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/janestreet/core";
-    description = "Jane Street Capital's standard library overlay";
-    license = licenses.asl20;
-    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/core_kernel.nix b/pkgs/development/ocaml-modules/janestreet/core_kernel.nix
deleted file mode 100644
index b2f0661e768..00000000000
--- a/pkgs/development/ocaml-modules/janestreet/core_kernel.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{stdenv, buildOcamlJane,
- bin_prot, fieldslib, sexplib, typerep, variantslib,
- ppx_assert, ppx_bench, ppx_driver, ppx_expect, ppx_inline_test, ppx_jane}:
-
-buildOcamlJane {
-  name = "core_kernel";
-  hash = "13gamj056nlib04l7yh80lqpdx0pnswzlb52fkqa01awwp5nf3z6";
-  propagatedBuildInputs =
-    [ bin_prot fieldslib sexplib typerep variantslib
-      ppx_assert ppx_bench ppx_driver ppx_expect ppx_inline_test ppx_jane ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/janestreet/core_kernel";
-    description = "Jane Street Capital's standard library overlay (kernel)";
-    license = licenses.asl20;
-    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/default.nix b/pkgs/development/ocaml-modules/janestreet/default.nix
index ff93d65357a..69f4e6f61d8 100644
--- a/pkgs/development/ocaml-modules/janestreet/default.nix
+++ b/pkgs/development/ocaml-modules/janestreet/default.nix
@@ -533,6 +533,7 @@ rec {
     pname = "email_message";
     hash = "131jd72k4s8cdbgg6gyg7w5v8mphdlvdx4fgvh8d9a1m7kkvbxfg";
     propagatedBuildInputs = [ async angstrom core_extended cryptokit magic-mime ounit ];
+    patches = [ ./email-message-angstrom-0.14.patch ];
     meta.description = "E-mail message parser";
   };
 
diff --git a/pkgs/development/ocaml-modules/janestreet/email-message-angstrom-0.14.patch b/pkgs/development/ocaml-modules/janestreet/email-message-angstrom-0.14.patch
new file mode 100644
index 00000000000..624a3e5334b
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/email-message-angstrom-0.14.patch
@@ -0,0 +1,22 @@
+diff --git a/email_address/src/email_address.ml b/email_address/src/email_address.ml
+index 7470273..d070465 100644
+--- a/email_address/src/email_address.ml
++++ b/email_address/src/email_address.ml
+@@ -38,7 +38,7 @@ module Stable = struct
+       let of_string ?default_domain input_str =
+         let open Core_kernel in
+         let open! Int.Replace_polymorphic_compare in
+-        match Angstrom.parse_string Email_address_parser_stable_v1.email_only input_str with
++        match Angstrom.parse_string ~consume:Prefix Email_address_parser_stable_v1.email_only input_str with
+         | Error error ->
+           Or_error.error_s [%message
+             "Failed to parse email address"
+@@ -104,7 +104,7 @@ module T = Stable.V1.With_comparator
+ include T
+ 
+ let list_of_string ?default_domain input_str =
+-  match Angstrom.parse_string Email_address_parser_stable_v1.email_list_only input_str with
++  match Angstrom.parse_string ~consume:Prefix Email_address_parser_stable_v1.email_list_only input_str with
+   | Error error ->
+     Or_error.error_s [%message
+       "Failed to parse email address(es)"
diff --git a/pkgs/development/ocaml-modules/janestreet/textutils.nix b/pkgs/development/ocaml-modules/janestreet/textutils.nix
deleted file mode 100644
index e6d74b52f0b..00000000000
--- a/pkgs/development/ocaml-modules/janestreet/textutils.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{stdenv, buildOcamlJane,
- bin_prot, core, fieldslib, sexplib, typerep, variantslib,
- ppx_assert, ppx_bench, ppx_driver, ppx_expect, ppx_inline_test, ppx_jane}:
-
-buildOcamlJane {
-  name = "textutils";
-  hash = "0mkjm9b3k7db7zzrq4403v8qbkgqgkjlz120vcbqh6z7d7ql65vb";
-  propagatedBuildInputs =
-    [ bin_prot core fieldslib sexplib typerep variantslib
-      ppx_assert ppx_bench ppx_driver ppx_expect ppx_inline_test ppx_jane ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/janestreet/textutils";
-    description = "Text output utilities";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/jingoo/default.nix b/pkgs/development/ocaml-modules/jingoo/default.nix
index bf1e59c2f22..7e693c4bf02 100644
--- a/pkgs/development/ocaml-modules/jingoo/default.nix
+++ b/pkgs/development/ocaml-modules/jingoo/default.nix
@@ -1,26 +1,26 @@
-{ stdenv, fetchFromGitHub, ocaml, findlib, pcre, uutf }:
+{ lib, buildDunePackage, fetchFromGitHub
+, menhir, ppx_deriving, re, uutf, uucp, ounit2 }:
 
-if !stdenv.lib.versionAtLeast ocaml.version "4.02"
-then throw "jingoo is not available for OCaml ${ocaml.version}"
-else
+buildDunePackage rec {
+  pname = "jingoo";
+  version = "1.3.4";
 
-stdenv.mkDerivation rec {
-  name = "ocaml${ocaml.version}-jingoo-${version}";
-  version = "1.2.18";
+  minimumOCamlVersion = "4.04";
 
   src = fetchFromGitHub {
     owner = "tategakibunko";
     repo = "jingoo";
     rev = "v${version}";
-    sha256 = "0gciiysrjy5r4yiisc41k4h0p530yawzqnr364xg8fdkk444fgkn";
+    sha256 = "0fsmm6wxa3axwbcgwdidik3drg754wyh2vxri2w12d662221m98s";
   };
 
-  buildInputs = [ ocaml findlib ];
-  propagatedBuildInputs = [ pcre uutf ];
+  buildInputs = [ menhir ];
+  propagatedBuildInputs = [ ppx_deriving re uutf uucp ];
+  checkInputs = [ ounit2 ];
+  doCheck = true;
 
-  createFindlibDestdir = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/tategakibunko/jingoo";
     description = "OCaml template engine almost compatible with jinja2";
     license = licenses.mit;
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/lablgtk/default.nix b/pkgs/development/ocaml-modules/lablgtk/default.nix
index e9ad3104d3f..2b6c3028fd6 100644
--- a/pkgs/development/ocaml-modules/lablgtk/default.nix
+++ b/pkgs/development/ocaml-modules/lablgtk/default.nix
@@ -1,25 +1,27 @@
-{ stdenv, fetchurl, ocaml, findlib, pkgconfig, gtk2, libgnomecanvas, libglade, gtksourceview }:
+{ stdenv, fetchurl, fetchFromGitHub, ocaml, findlib, pkgconfig, gtk2, libgnomecanvas, libglade, gtksourceview }:
 
 let param =
   let check = stdenv.lib.versionAtLeast ocaml.version; in
-  if check "4.06" then {
-    version = "2.18.8";
-    url = "https://github.com/garrigue/lablgtk/releases/download/lablgtk2188/lablgtk-2.18.8.tar.gz";
-    sha256 = "1qsd9nv96fxddc8zayqiqxw9hcyf29axckqg100fm2brs2prpxci";
+  if check "4.06" then rec {
+    version = "2.18.10";
+    src = fetchFromGitHub {
+      owner = "garrigue";
+      repo = "lablgtk";
+      rev = version;
+      sha256 = "0w8cdfcv2wc19sd3qzj3qq77qc6rbnbynsz02gzbl15kgrvgrfxi";
+    };
   } else if check "3.12" then {
     version = "2.18.5";
-    url = "https://forge.ocamlcore.org/frs/download.php/1627/lablgtk-2.18.5.tar.gz";
-    sha256 = "0cyj6sfdvzx8hw7553lhgwc0krlgvlza0ph3dk9gsxy047dm3wib";
+    src = fetchurl {
+      url = "https://forge.ocamlcore.org/frs/download.php/1627/lablgtk-2.18.5.tar.gz";
+      sha256 = "0cyj6sfdvzx8hw7553lhgwc0krlgvlza0ph3dk9gsxy047dm3wib";
+    };
   } else throw "lablgtk is not available for OCaml ${ocaml.version}";
 in
 
 stdenv.mkDerivation {
   pname = "lablgtk";
-  inherit (param) version;
-
-  src = fetchurl {
-    inherit (param) url sha256;
-  };
+  inherit (param) version src;
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ ocaml findlib gtk2 libgnomecanvas libglade gtksourceview ];
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/lablgtkmathview/default.nix b/pkgs/development/ocaml-modules/lablgtkmathview/default.nix
deleted file mode 100644
index b91e9268475..00000000000
--- a/pkgs/development/ocaml-modules/lablgtkmathview/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{stdenv, fetchurl, pkgconfig, ocaml, findlib, gmetadom, gtkmathview, lablgtk }:
-
-let
-  pname = "lablgtkmathview";
-in
-
-stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-  version = "0.7.2";
-
-  src = fetchurl {
-    url = "http://helm.cs.unibo.it/mml-widget/sources/${pname}-${version}.tar.gz";
-    sha256 = "0rgrpgwrgphw106l1xawxir002b7rmzc23rcxhv8ib6rymp1divx";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ ocaml findlib gmetadom gtkmathview lablgtk];
-
-  createFindlibDestdir = true;
-
-  propagatedBuildInputs = [gtkmathview];
-
-  prePatch = ''
-    substituteInPlace Makefile.in --replace "PROPCC = @OCAML_LIB_DIR@" "PROPCC = ${lablgtk}/lib/ocaml/${ocaml.version}/site-lib"
-  '';
-
-  buildPhase = ''
-    mkdir -p .test
-    make
-    make opt
-  '';
-
-  meta = {
-    homepage = "http://helm.cs.unibo.it/mml-widget/";
-    description = "OCaml bindings for gtkmathview";
-    license = stdenv.lib.licenses.lgpl2Plus;
-    maintainers = [ stdenv.lib.maintainers.roconnor ];
-    broken = true;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/labltk/default.nix b/pkgs/development/ocaml-modules/labltk/default.nix
index 0677202fab9..e7b68b90713 100644
--- a/pkgs/development/ocaml-modules/labltk/default.nix
+++ b/pkgs/development/ocaml-modules/labltk/default.nix
@@ -7,13 +7,13 @@ then throw "labltk is not available for OCaml ${ocaml.version}"
 else
 
 let param =
-if OCamlVersionAtLeast "4.08" then rec {
-  version = "8.06.7";
-  src = fetchzip {
-    url = "https://github.com/garrigue/labltk/archive/${version}.tar.gz";
-    sha256 = "1cqnxjv2dvw9csiz4iqqyx6rck04jgylpglk8f69kgybf7k7xk2h";
-  };
-} else
+  let mkNewParam = { version, sha256 }: {
+    inherit version;
+    src = fetchzip {
+      url = "https://github.com/garrigue/labltk/archive/${version}.tar.gz";
+      inherit sha256;
+    };
+  }; in
   let mkOldParam = { version, key, sha256 }: {
     src = fetchurl {
       url = "https://forge.ocamlcore.org/frs/download.php/${key}/labltk-${version}.tar.gz";
@@ -21,7 +21,7 @@ if OCamlVersionAtLeast "4.08" then rec {
     };
     inherit version;
   }; in
- {
+ rec {
   "4.04" = mkOldParam {
     version = "8.06.2";
     key = "1628";
@@ -42,6 +42,16 @@ if OCamlVersionAtLeast "4.08" then rec {
     key = "1764";
     sha256 = "0wgx65y1wkgf22ihpqmspqfp95fqbj3pldhp1p3b1mi8rmc37zwj";
   };
+  _8_06_7 = mkNewParam {
+    version = "8.06.7";
+    sha256 = "1cqnxjv2dvw9csiz4iqqyx6rck04jgylpglk8f69kgybf7k7xk2h";
+  };
+  "4.08" = _8_06_7;
+  "4.09" = _8_06_7;
+  "4.10" = mkNewParam {
+    version = "8.06.8";
+    sha256 = "0lfjc7lscq81ibqb3fcybdzs2r1i2xl7rsgi7linq46a0pcpkinw";
+  };
 }.${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/lens/default.nix b/pkgs/development/ocaml-modules/lens/default.nix
index 4a9706b4ba8..c26b3dbe737 100644
--- a/pkgs/development/ocaml-modules/lens/default.nix
+++ b/pkgs/development/ocaml-modules/lens/default.nix
@@ -1,4 +1,8 @@
-{ lib, fetchzip, ppx_deriving, ppxfind, buildDunePackage }:
+{ lib, ocaml, fetchzip, ppx_deriving, ppxfind, buildDunePackage }:
+
+if lib.versionAtLeast ocaml.version "4.10"
+then throw "lens is not available for OCaml ${ocaml.version}"
+else
 
 buildDunePackage rec {
   pname = "lens";
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/4.x.nix b/pkgs/development/ocaml-modules/lwt/default.nix
index a809e68000f..759f0deedf1 100644
--- a/pkgs/development/ocaml-modules/lwt/4.x.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/legacy.nix b/pkgs/development/ocaml-modules/lwt/legacy.nix
deleted file mode 100644
index 795baa0467e..00000000000
--- a/pkgs/development/ocaml-modules/lwt/legacy.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ stdenv, buildOcaml, fetchzip, which, cryptopp, ocaml, findlib, ocamlbuild, camlp4
-, react, ssl, libev, pkgconfig, ncurses, glib
-, ppx_tools, result, cppo
-, ppxSupport ? stdenv.lib.versionAtLeast ocaml.version "4.02"
-, version ? if stdenv.lib.versionAtLeast ocaml.version "4.02" then "2.7.1" else "2.6.0"
-}:
-
-if !stdenv.lib.versionAtLeast ocaml.version "4"
- || stdenv.lib.versionAtLeast ocaml.version "4.06"
-then throw "lwt is not available for OCaml ${ocaml.version}"
-else
-
-let sha256 = {
-  "3.0.0" = "0wwhnl9hppixcsdisinj1wmffx0nv6hkpm01z9qvkngkrazi3i88";
-  "2.7.1" = "0w7f59havrl2fsnvs84lm7wlqpsrldg80gy5afpnpr21zkw22g8w";
-  "2.6.0" = "0f1h83zh60rspm4fxd96z9h5bkhq1n1q968hgq92sq4a6bfi1c2w";
-}.${version}; in
-
-let optionals = stdenv.lib.optionals (!stdenv.lib.versionAtLeast version "3"); in
-
-buildOcaml {
-  name = "lwt";
-  inherit version;
-
-  src = fetchzip {
-    url = "https://github.com/ocsigen/lwt/archive/${version}.tar.gz";
-    inherit sha256;
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ which cryptopp ocaml findlib ocamlbuild glib ncurses camlp4 cppo ]
-  ++ stdenv.lib.optional ppxSupport ppx_tools;
-
-  propagatedBuildInputs = [ result ]
-  ++ optionals [ react ssl ]
-  ++ [ libev ];
-
-  configureScript = "ocaml setup.ml -configure";
-  prefixKey = "--prefix ";
-  configureFlags =
-  optionals [ "--enable-glib" "--enable-ssl" "--enable-react" ]
-  ++ [ "--enable-camlp4" ]
-  ++ [ (if ppxSupport then "--enable-ppx" else "--disable-ppx") ];
-
-  createFindlibDestdir = true;
-
-  hasSharedObjects = true;
-
-  meta = with stdenv.lib; {
-    homepage = "http://ocsigen.org/lwt";
-    description = "Lightweight thread library for Objective Caml";
-    license = licenses.lgpl21;
-    platforms = ocaml.meta.platforms or [];
-    maintainers = with maintainers; [
-      maggesi vbgl gal_bolle
-    ];
-  };
-}
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/macaddr/cstruct.nix b/pkgs/development/ocaml-modules/macaddr/cstruct.nix
new file mode 100644
index 00000000000..991a77a6ba2
--- /dev/null
+++ b/pkgs/development/ocaml-modules/macaddr/cstruct.nix
@@ -0,0 +1,17 @@
+{ lib, buildDunePackage
+, macaddr, cstruct
+}:
+
+buildDunePackage {
+  pname = "macaddr-cstruct";
+
+  inherit (macaddr) version src minimumOCamlVersion;
+
+  propagatedBuildInputs = [ macaddr cstruct ];
+
+  doCheck = true;
+
+  meta = macaddr.meta // {
+    description = "A library for manipulation of MAC address representations using Cstructs";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/macaddr/default.nix b/pkgs/development/ocaml-modules/macaddr/default.nix
index 1332c541354..76ced1d753c 100644
--- a/pkgs/development/ocaml-modules/macaddr/default.nix
+++ b/pkgs/development/ocaml-modules/macaddr/default.nix
@@ -1,21 +1,20 @@
 { lib, fetchurl, buildDunePackage
-, ppx_sexp_conv
+, ppx_sexp_conv, ounit
 }:
 
 buildDunePackage rec {
   pname = "macaddr";
-  version = "3.1.0";
+  version = "5.0.0";
 
   minimumOCamlVersion = "4.04";
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-ipaddr/archive/v${version}.tar.gz";
-    sha256 = "1hi3v5dzg6h4qb268ch3h6v61gsc8bv21ajhb35z37v5nsdmyzbh";
+    sha256 = "1j2m2v64g3d81sixxq3g57j1iyk6042ivsszml18akrqvwfpxy66";
   };
 
-  propagatedBuildInputs = [ ppx_sexp_conv ];
-
-  doCheck = false; # ipaddr and macaddr tests are together, which requires mutual dependency
+  checkInputs = [ ppx_sexp_conv ounit ];
+  doCheck = true;
 
   meta = with lib; {
     homepage = "https://github.com/mirage/ocaml-ipaddr";
diff --git a/pkgs/development/ocaml-modules/macaddr/sexp.nix b/pkgs/development/ocaml-modules/macaddr/sexp.nix
new file mode 100644
index 00000000000..3d0305c4be3
--- /dev/null
+++ b/pkgs/development/ocaml-modules/macaddr/sexp.nix
@@ -0,0 +1,18 @@
+{ lib, buildDunePackage
+, macaddr, ppx_sexp_conv, macaddr-cstruct, ounit
+}:
+
+buildDunePackage {
+  pname = "macaddr-sexp";
+
+  inherit (macaddr) version src minimumOCamlVersion;
+
+  propagatedBuildInputs = [ ppx_sexp_conv ];
+
+  checkInputs = [ macaddr-cstruct ounit ];
+  doCheck = true;
+
+  meta = macaddr.meta // {
+    description = "A library for manipulation of MAC address representations using sexp";
+  };
+}
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 2ca41800baf..71c044a8cc1 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/default.nix
@@ -1,28 +1,23 @@
-{ lib, fetchurl, buildDunePackage, ounit, cstruct, ocplib-endian
-, cpuid, dune-configurator, cpuAcceleration ? false }:
+{ lib, fetchurl, buildDunePackage, ounit, cstruct, dune-configurator, eqaf, pkg-config }:
 
 buildDunePackage rec {
-  minimumOCamlVersion = "4.07";
+  minimumOCamlVersion = "4.08";
 
   pname = "mirage-crypto";
-  version = "0.6.2";
+  version = "0.8.4";
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage-crypto/releases/download/v${version}/mirage-crypto-v${version}.tbz";
-    sha256 = "08xq49cxn66yi0gfajzi8czcxfx24rd191rvf7s10wfkz304sa72";
+    sha256 = "1w09wllls4rp1abq0awffxf69dn0xciy6hsqz413ing5r151wjxr";
   };
 
   useDune2 = true;
 
-  preBuild = ''
-    MIRAGE_CRYPTO_ACCELERATE=${lib.boolToString cpuAcceleration}
-  '';
-
   doCheck = true;
   checkInputs = [ ounit ];
 
-  nativeBuildInputs = [ cpuid dune-configurator ];
-  propagatedBuildInputs = [ cstruct ocplib-endian ];
+  nativeBuildInputs = [ dune-configurator pkg-config ];
+  propagatedBuildInputs = [ cstruct eqaf ];
 
   meta = with lib; {
     homepage = "https://github.com/mirage/mirage-crypto";
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix b/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix
new file mode 100644
index 00000000000..473704d7ea2
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix
@@ -0,0 +1,18 @@
+{ buildDunePackage, mirage-crypto-rng, duration, cstruct, mirage-runtime
+, mirage-time, mirage-clock, mirage-unix, mirage-time-unix, mirage-clock-unix }:
+
+buildDunePackage {
+  pname = "mirage-crypto-rng-mirage";
+
+  inherit (mirage-crypto-rng) version src useDune2 minimumOCamlVersion;
+
+  doCheck = true;
+  checkInputs = [ mirage-unix mirage-clock-unix mirage-time-unix ];
+
+  propagatedBuildInputs = [ duration cstruct mirage-crypto-rng mirage-runtime
+                            mirage-time mirage-clock ];
+
+  meta = mirage-crypto-rng.meta // {
+    description = "Entropy collection for a cryptographically secure PRNG";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/rng.nix b/pkgs/development/ocaml-modules/mirage-crypto/rng.nix
index b70a4d37d0d..b4da0681635 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/rng.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/rng.nix
@@ -1,14 +1,16 @@
-{ buildDunePackage, mirage-crypto, ounit, randomconv, cstruct }:
+{ buildDunePackage, mirage-crypto, ounit, randomconv, dune-configurator
+, cstruct, duration, logs, mtime, ocaml_lwt }:
 
 buildDunePackage {
   pname = "mirage-crypto-rng";
 
-  inherit (mirage-crypto) version src nativeBuildInputs useDune2 minimumOCamlVersion;
+  inherit (mirage-crypto) version src useDune2 minimumOCamlVersion;
 
   doCheck = true;
   checkInputs = [ ounit randomconv ];
 
-  propagatedBuildInputs = [ cstruct mirage-crypto ];
+  nativeBuildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ cstruct mirage-crypto duration logs mtime ocaml_lwt ];
 
   meta = mirage-crypto.meta // {
     description = "A cryptographically secure PRNG";
diff --git a/pkgs/development/ocaml-modules/mirage-unix/default.nix b/pkgs/development/ocaml-modules/mirage-unix/default.nix
new file mode 100644
index 00000000000..696181f7f60
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mirage-unix/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildDunePackage, fetchurl, ocaml_lwt, duration, mirage-runtime, io-page-unix }:
+
+buildDunePackage rec {
+  pname = "mirage-unix";
+  version = "4.0.0";
+
+  src = fetchurl {
+    url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
+    sha256 = "0kyd83bkpjhn382b4mw3a4325xr8vms78znxqvifpcyfvfnlx7hj";
+  };
+
+  propagatedBuildInputs = [ ocaml_lwt duration mirage-runtime io-page-unix ];
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/mirage/mirage-unix";
+    description = "Unix core platform libraries for MirageOS";
+    license = licenses.isc;
+    maintainers = with maintainers; [ sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/mirage/runtime.nix b/pkgs/development/ocaml-modules/mirage/runtime.nix
new file mode 100644
index 00000000000..ea346479a0c
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mirage/runtime.nix
@@ -0,0 +1,25 @@
+{ lib, buildDunePackage, fetchurl, ipaddr, functoria-runtime
+, fmt, logs, ocaml_lwt, alcotest }:
+
+buildDunePackage rec {
+  pname = "mirage-runtime";
+  version = "3.8.0";
+
+  minimumOCamlVersion = "4.06";
+
+  src = fetchurl {
+    url = "https://github.com/mirage/mirage/releases/download/v${version}/mirage-v${version}.tbz";
+    sha256 = "18v37arzy7gkz5qcy34k0l8g69146nysjv0h1jcym0h4xxy0bxir";
+  };
+
+  propagatedBuildInputs = [ ipaddr functoria-runtime fmt logs ocaml_lwt ];
+  checkInputs = [ alcotest ];
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/mirage/mirage";
+    description = "The base MirageOS runtime library, part of every MirageOS unikernel";
+    license = licenses.isc;
+    maintainers = with maintainers; [ sternenseemann ];
+  };
+}
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/ocaml-gettext/default.nix b/pkgs/development/ocaml-modules/ocaml-gettext/default.nix
index 547fa77ae6e..ba571b32084 100644
--- a/pkgs/development/ocaml-modules/ocaml-gettext/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-gettext/default.nix
@@ -1,21 +1,23 @@
-{ lib, fetchurl, buildDunePackage, gettext, fileutils, ounit }:
+{ lib, fetchurl, buildDunePackage, cppo, gettext, fileutils, ounit }:
 
 buildDunePackage rec {
   pname = "gettext";
-  version = "0.4.1";
+  version = "0.4.2";
 
   minimumOCamlVersion = "4.03";
 
   src = fetchurl {
     url = "https://github.com/gildor478/ocaml-gettext/releases/download/v${version}/gettext-v${version}.tbz";
-    sha256 = "0pwy6ym5fd77mdbgyas8x86vbrri9cgk79g8wxdjplhyi7zhh158";
+    sha256 = "19ynsldb21r539fiwz1f43apsdnx7hj2a2d9qr9wg2hva9y2qrwb";
   };
 
+  buildInputs = [ cppo ];
+
   propagatedBuildInputs = [ gettext fileutils ];
 
   doCheck = true;
 
-  checkInputs = lib.optional doCheck ounit;
+  checkInputs = [ ounit ];
 
   dontStrip = true;
 
diff --git a/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix b/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix
index f633d17252c..bcd0a519899 100644
--- a/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix
@@ -2,13 +2,13 @@
 
 buildDunePackage rec {
    pname = "ocaml-migrate-parsetree";
-   version = "1.5.0";
+   version = "1.7.3";
 
    src = fetchFromGitHub {
      owner = "ocaml-ppx";
      repo = pname;
      rev = "v${version}";
-     sha256 = "0ms7nx7x16nkbm9rln3sycbzg6ad8swz8jw6bjndrill8bg3fipv";
+     sha256 = "0336vz0galjnsazbmkxjwdv1qvdqsx2rgrvp778xgq2fzasz45cx";
    };
 
    propagatedBuildInputs = [ ppx_derivers result ];
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/ocplib-json-typed/browser.nix b/pkgs/development/ocaml-modules/ocplib-json-typed/browser.nix
index af3341e7e59..8db892f325e 100644
--- a/pkgs/development/ocaml-modules/ocplib-json-typed/browser.nix
+++ b/pkgs/development/ocaml-modules/ocplib-json-typed/browser.nix
@@ -3,6 +3,7 @@
 buildDunePackage {
   pname = "ocplib-json-typed-browser";
   inherit (ocplib-json-typed) version src;
+  useDune2 = true;
 
   propagatedBuildInputs = [ ocplib-json-typed js_of_ocaml ];
 
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/ocsigen-start/default.nix b/pkgs/development/ocaml-modules/ocsigen-start/default.nix
index cc6650df157..637c06e98dc 100644
--- a/pkgs/development/ocaml-modules/ocsigen-start/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-start/default.nix
@@ -5,7 +5,7 @@
 
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-ocsigen-start-${version}";
-  version = "2.16.1";
+  version = "2.18.0";
 
   buildInputs = [ ocaml findlib ];
   propagatedBuildInputs = [ pgocaml_ppx safepass ocsigen-toolkit yojson resource-pooling cohttp-lwt-unix ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "ocsigen";
     repo = "ocsigen-start";
     rev = version;
-    sha256 = "1pzpyrd3vbhc7zvzh6bv44793ikx5bglpd5p4wk5jj65v1w39jwd";
+    sha256 = "0wvh4c26g6qd6i1fryilcqz9giz7v6pnhc90sknhxh6jmwrbjl50";
   };
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix b/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix
index 4dfca784dfa..a0f3136de22 100644
--- a/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix
@@ -5,7 +5,7 @@
 stdenv.mkDerivation rec {
  pname = "ocsigen-toolkit";
  name = "ocaml${ocaml.version}-${pname}-${version}";
- version = "2.5.0";
+ version = "2.7.0";
 
  propagatedBuildInputs = [ calendar js_of_ocaml-ppx_deriving_json eliom ];
  buildInputs = [ ocaml findlib opaline ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     owner = "ocsigen";
     repo = pname;
     rev = version;
-    sha256 = "0hll8qr363pbb65jnr2w36zcbplbwn08xb7826ayiwigakj783p9";
+    sha256 = "0jan5779nc0jf993hmvfii15ralcs20sm4mcnqwqrnhjbq6f6zpk";
   };
 
   createFindlibDestdir = true;
diff --git a/pkgs/development/ocaml-modules/ocurl/default.nix b/pkgs/development/ocaml-modules/ocurl/default.nix
index a1e524a8642..4c2e4ee6a30 100644
--- a/pkgs/development/ocaml-modules/ocurl/default.nix
+++ b/pkgs/development/ocaml-modules/ocurl/default.nix
@@ -5,10 +5,10 @@ then throw "ocurl is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
-  name = "ocurl-0.9.0";
+  name = "ocurl-0.9.1";
   src = fetchurl {
     url = "http://ygrek.org.ua/p/release/ocurl/${name}.tar.gz";
-    sha256 = "0v5qzfazaynjv1xy3ds2z5iz0np5mz8g831l91l1mrqz6fr1ah0f";
+    sha256 = "0n621cxb9012pj280c7821qqsdhypj8qy9qgrah79dkh6a8h2py6";
   };
 
   buildInputs = [ pkgconfig ocaml findlib ncurses ];
diff --git a/pkgs/development/ocaml-modules/odoc/default.nix b/pkgs/development/ocaml-modules/odoc/default.nix
index 3e8ac82add4..8dde7ba56ff 100644
--- a/pkgs/development/ocaml-modules/odoc/default.nix
+++ b/pkgs/development/ocaml-modules/odoc/default.nix
@@ -4,13 +4,13 @@
 
 buildDunePackage rec {
   pname = "odoc";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "ocaml";
     repo = pname;
     rev = version;
-    sha256 = "14ilq2glcvda8mfhj27jqqwx3392q8ssp9bq9agz7k1k6ilp9dai";
+    sha256 = "0z2nisg1vb5xlk41hqw8drvj90v52wli7zvnih6a844cg6xsvvj2";
   };
 
   buildInputs = [ astring cmdliner cppo fpath result tyxml ];
diff --git a/pkgs/development/ocaml-modules/opam-core/default.nix b/pkgs/development/ocaml-modules/opam-core/default.nix
new file mode 100644
index 00000000000..22c1ecdf703
--- /dev/null
+++ b/pkgs/development/ocaml-modules/opam-core/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildDunePackage, unzip
+, opam, ocamlgraph, re, cppo }:
+
+buildDunePackage rec {
+  pname = "opam-core";
+
+  inherit (opam) src version;
+
+  nativeBuildInputs = [ unzip cppo ];
+  propagatedBuildInputs = [ ocamlgraph re ];
+
+  # get rid of check for curl at configure time
+  # opam-core does not call curl at run time
+  configureFlags = [ "--disable-checks" ];
+
+  meta = opam.meta // {
+    description = "Small standard library extensions, and generic system interaction modules used by opam";
+    maintainers = with lib.maintainers; [ sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/opam-format/default.nix b/pkgs/development/ocaml-modules/opam-format/default.nix
new file mode 100644
index 00000000000..422729e6d0d
--- /dev/null
+++ b/pkgs/development/ocaml-modules/opam-format/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildDunePackage, unzip, opam-core, opam-file-format }:
+
+buildDunePackage rec {
+  pname = "opam-format";
+
+  inherit (opam-core) src version;
+
+  minimumOCamlVersion = "4.02.3";
+
+  # get rid of check for curl at configure time
+  # opam-format does not call curl at run time
+  configureFlags = [ "--disable-checks" ];
+
+  nativeBuildInputs = [ unzip ];
+  propagatedBuildInputs = [ opam-core opam-file-format ];
+
+  meta = opam-core.meta // {
+    description = "Definition of opam datastructures and its file interface";
+    maintainers = with lib.maintainers; [ sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/opam-repository/default.nix b/pkgs/development/ocaml-modules/opam-repository/default.nix
new file mode 100644
index 00000000000..1801a9e1c86
--- /dev/null
+++ b/pkgs/development/ocaml-modules/opam-repository/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildDunePackage, unzip, opam-format, curl }:
+
+buildDunePackage rec {
+  pname = "opam-repository";
+
+  minimumOCamlVersion = "4.02";
+
+  inherit (opam-format) src version;
+
+  patches = [ ./download-tool.patch ];
+  postPatch = ''
+    substituteInPlace src/repository/opamRepositoryConfig.ml \
+      --replace "SUBSTITUTE_NIXOS_CURL_PATH" "\"${curl}/bin/curl\""
+  '';
+
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ curl ];
+  propagatedBuildInputs = [ opam-format ];
+
+  meta = opam-format.meta // {
+    description = "OPAM repository and remote sources handling, including curl/wget, rsync, git, mercurial, darcs backends";
+    maintainers = with lib.maintainers; [ sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/opam-repository/download-tool.patch b/pkgs/development/ocaml-modules/opam-repository/download-tool.patch
new file mode 100644
index 00000000000..5af720adca9
--- /dev/null
+++ b/pkgs/development/ocaml-modules/opam-repository/download-tool.patch
@@ -0,0 +1,29 @@
+diff --git a/src/repository/opamRepositoryConfig.ml b/src/repository/opamRepositoryConfig.ml
+index c2954c1d..528fc621 100644
+--- a/src/repository/opamRepositoryConfig.ml
++++ b/src/repository/opamRepositoryConfig.ml
+@@ -27,23 +27,7 @@ type 'a options_fun =
+   'a
+ 
+ let default = {
+-  download_tool = lazy (
+-    try
+-      let tools =
+-        if OpamStd.Sys.(os () = Darwin)
+-        then ["wget", `Default; "curl", `Curl]
+-        else ["curl", `Curl; "wget", `Default]
+-      in
+-      let cmd, kind =
+-        List.find (fun (c,_) -> OpamSystem.resolve_command c <> None) tools
+-      in
+-      [ CIdent cmd, None ], kind
+-    with Not_found ->
+-      OpamConsole.error_and_exit `Configuration_error
+-        "Could not find a suitable download command. Please make sure you \
+-         have either \"curl\" or \"wget\" installed, or specify a custom \
+-         command through variable OPAMFETCH."
+-  );
++  download_tool = lazy ([ CIdent SUBSTITUTE_NIXOS_CURL_PATH, None ], `Curl);
+   validation_hook = None;
+   retries = 3;
+   force_checksums = None;
diff --git a/pkgs/development/ocaml-modules/opam-state/default.nix b/pkgs/development/ocaml-modules/opam-state/default.nix
new file mode 100644
index 00000000000..156976a4a5a
--- /dev/null
+++ b/pkgs/development/ocaml-modules/opam-state/default.nix
@@ -0,0 +1,19 @@
+{ lib, buildDunePackage, unzip, opam, opam-repository }:
+
+buildDunePackage rec {
+  pname = "opam-state";
+
+  inherit (opam) src version;
+
+  # get rid of check for curl at configure time
+  # opam-state does not call curl at run time
+  configureFlags = [ "--disable-checks" ];
+
+  nativeBuildInputs = [ unzip ];
+  propagatedBuildInputs = [ opam-repository ];
+
+  meta = opam.meta // {
+    description = "OPAM development library handling the ~/.opam hierarchy, repository and switch states";
+    maintainers = with lib.maintainers; [ sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/opium/default.nix b/pkgs/development/ocaml-modules/opium/default.nix
index cbd3a14541f..2681cc609d0 100644
--- a/pkgs/development/ocaml-modules/opium/default.nix
+++ b/pkgs/development/ocaml-modules/opium/default.nix
@@ -17,6 +17,8 @@ buildDunePackage {
 	pname = "opium";
 	inherit (opium_kernel) version src meta minimumOCamlVersion;
 
+  useDune2 = true;
+
   doCheck = true;
 
 	buildInputs = [
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/owl-base/default.nix b/pkgs/development/ocaml-modules/owl-base/default.nix
index 9d2bf74a3ac..3e1eb09faad 100644
--- a/pkgs/development/ocaml-modules/owl-base/default.nix
+++ b/pkgs/development/ocaml-modules/owl-base/default.nix
@@ -2,24 +2,25 @@
 
 buildDunePackage rec {
   pname = "owl-base";
-  version = "0.8.0";
+  version = "0.9.0";
 
   useDune2 = true;
 
   src = fetchFromGitHub {
-    owner  = "owlbarn";
-    repo   = "owl";
-    rev    = version;
-    sha256 = "1j3xmr4izfznmv8lbn8vkx9c77py2xr6fqyn6ypjlf5k9b8g4mmw";
+    owner = "owlbarn";
+    repo = "owl";
+    rev  = version;
+    sha256 = "0xxchsymmdbwszs6barqq8x4vqz5hbap64yxq82c2la9sdxgk0vv";
   };
 
   propagatedBuildInputs = [ stdlib-shims ];
 
-  minimumOCamlVersion = "4.06";
+  minimumOCamlVersion = "4.10";
 
   meta = with stdenv.lib; {
     description = "Numerical computing library for Ocaml";
     homepage = "https://ocaml.xyz";
+    changelog = "https://github.com/owlbarn/owl/releases";
     platforms = platforms.x86_64;
     maintainers = [ maintainers.bcdarwin ];
     license = licenses.mit;
diff --git a/pkgs/development/ocaml-modules/pa_test/default.nix b/pkgs/development/ocaml-modules/pa_test/default.nix
deleted file mode 100644
index 6a90561c682..00000000000
--- a/pkgs/development/ocaml-modules/pa_test/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{stdenv, buildOcaml, fetchurl, type_conv, pa_ounit, sexplib_p4, herelib}:
-
-buildOcaml rec {
-  name = "pa_test";
-  version = "112.24.00";
-
-  minimumSupportedOcamlVersion = "4.00";
-
-  src = fetchurl {
-    url = "https://github.com/janestreet/pa_test/archive/${version}.tar.gz";
-    sha256 = "b03d13c2bc9fa9a4b1c507d7108d965202160f83e9781d430d3b53a1993e30d6";
-  };
-
-  buildInputs = [ pa_ounit ];
-  propagatedBuildInputs = [ type_conv sexplib_p4 herelib ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/janestreet/pa_test";
-    description = "Syntax to reduce boiler plate in testing";
-    license = licenses.asl20;
-    maintainers = [ maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/piqi/default.nix b/pkgs/development/ocaml-modules/piqi/default.nix
index c492035f4f9..f3c489723b2 100644
--- a/pkgs/development/ocaml-modules/piqi/default.nix
+++ b/pkgs/development/ocaml-modules/piqi/default.nix
@@ -1,16 +1,19 @@
-{ stdenv, fetchurl, ocaml, findlib, which, ulex, easy-format, ocaml_optcomp, xmlm, base64 }:
+{ stdenv, fetchFromGitHub, ocaml, findlib, which, sedlex_2, easy-format, xmlm, base64 }:
 
 stdenv.mkDerivation rec {
-  version = "0.6.14";
+  version = "0.6.15";
   pname = "piqi";
+  name = "ocaml${ocaml.version}-${pname}-${version}";
  
-  src = fetchurl {
-    url = "https://github.com/alavrik/piqi/archive/v${version}.tar.gz";
-    sha256 = "1ssccnwqzfyf7syfq2fv4zyhwayxwd75rhq9y28mvq1w6qbww4l7";
+  src = fetchFromGitHub {
+    owner = "alavrik";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0v04hs85xv6d4ysqxyv1dik34dx49yab9shpi4x7iv19qlzl7csb";
   };
 
-  buildInputs = [ ocaml findlib which ocaml_optcomp ];
-  propagatedBuildInputs = [ulex xmlm easy-format base64];
+  buildInputs = [ ocaml findlib which ];
+  propagatedBuildInputs = [ sedlex_2 xmlm easy-format base64 ];
 
   patches = [ ./no-ocamlpath-override.patch ];
 
diff --git a/pkgs/development/ocaml-modules/ppx_deriving/default.nix b/pkgs/development/ocaml-modules/ppx_deriving/default.nix
index 612a12bb418..37a3a55229d 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving/default.nix
@@ -4,11 +4,11 @@
 
 buildDunePackage rec {
   pname = "ppx_deriving";
-  version = "4.4.1";
+  version = "4.5";
 
   src = fetchzip {
     url = "https://github.com/ocaml-ppx/ppx_deriving/archive/v${version}.tar.gz";
-    sha256 = "1map50w2a35y83bcd19p9yakdkhp04z5as2j2wlygi0b6s0a9vba";
+    sha256 = "1v2xldag54n0xk69vv3j4nln9bzkkpq3rildq118sydzsc9v239z";
   };
 
   buildInputs = [ ppxfind cppo ounit ];
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/ppxfind/default.nix b/pkgs/development/ocaml-modules/ppxfind/default.nix
index 75d1e57765e..1008dfe62a9 100644
--- a/pkgs/development/ocaml-modules/ppxfind/default.nix
+++ b/pkgs/development/ocaml-modules/ppxfind/default.nix
@@ -2,13 +2,14 @@
 
 buildDunePackage (rec {
 	pname = "ppxfind";
-	version = "1.3";
+	version = "1.4";
 	src = fetchurl {
 		url = "https://github.com/diml/ppxfind/releases/download/${version}/ppxfind-${version}.tbz";
-		sha256 = "1r4jp0516378js62ss50a9s8ql2pm8lfdd3mnk214hp7s0kb17fl";
+		sha256 = "0wa9vcrc26kirc2cqqs6kmarbi8gqy3dgdfiv9y7nzsgy1liqacq";
 	};
 
 	minimumOCamlVersion = "4.03";
+	useDune2 = true;
 
 	buildInputs = [ ocaml-migrate-parsetree ];
 
diff --git a/pkgs/development/ocaml-modules/ppxlib/default.nix b/pkgs/development/ocaml-modules/ppxlib/default.nix
index bbaf9e27cf4..8821e562129 100644
--- a/pkgs/development/ocaml-modules/ppxlib/default.nix
+++ b/pkgs/development/ocaml-modules/ppxlib/default.nix
@@ -1,23 +1,30 @@
-{ stdenv, fetchFromGitHub, buildDunePackage
-, version ? "0.8.1"
+{ lib, fetchFromGitHub, buildDunePackage, ocaml
+, legacy ? false
 , ocaml-compiler-libs, ocaml-migrate-parsetree, ppx_derivers, stdio
 }:
 
-let sha256 =
-  { "0.8.1" = "0vm0jajmg8135scbg0x60ivyy5gzv4abwnl7zls2mrw23ac6kml6";
-    "0.12.0" = "1cg0is23c05k1rc94zcdz452p9zn11dpqxm1pnifwx5iygz3w0a1";
-  }."${version}"
-; in
+let param =
+  if legacy then {
+    version = "0.8.1";
+    sha256 = "0vm0jajmg8135scbg0x60ivyy5gzv4abwnl7zls2mrw23ac6kml6";
+  } else {
+    version = "0.12.0";
+    sha256 = "1cg0is23c05k1rc94zcdz452p9zn11dpqxm1pnifwx5iygz3w0a1";
+  }; in
+
+if lib.versionAtLeast ocaml.version "4.10" && legacy
+then throw "ppxlib-${param.version} is not available for OCaml ${ocaml.version}"
+else
 
 buildDunePackage rec {
   pname = "ppxlib";
-  inherit version;
+  inherit (param) version;
 
   src = fetchFromGitHub {
     owner = "ocaml-ppx";
     repo = pname;
     rev = version;
-    inherit sha256;
+    inherit (param) sha256;
   };
 
   propagatedBuildInputs = [
@@ -26,8 +33,8 @@ buildDunePackage rec {
 
   meta = {
     description = "Comprehensive ppx tool set";
-    license = stdenv.lib.licenses.mit;
-    maintainers = [ stdenv.lib.maintainers.vbgl ];
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.vbgl ];
     inherit (src.meta) homepage;
   };
 }
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/sexplib/108.08.00.nix b/pkgs/development/ocaml-modules/sexplib/108.08.00.nix
deleted file mode 100644
index 349dffcf47b..00000000000
--- a/pkgs/development/ocaml-modules/sexplib/108.08.00.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{stdenv, fetchurl, ocaml, findlib, type_conv, camlp4}:
-
-if !stdenv.lib.versionAtLeast ocaml.version "3.12"
-|| stdenv.lib.versionAtLeast ocaml.version "4.03"
-then throw "sexlib-108.08.00 is not available for OCaml ${ocaml.version}" else
-
-stdenv.mkDerivation {
-  name = "ocaml-sexplib-108.08.00";
-
-  src = fetchurl {
-    url = "https://ocaml.janestreet.com/ocaml-core/108.08.00/individual/sexplib-108.08.00.tar.gz";
-    sha256 = "11z1k1d7dbb5m957klgalimpr0r602xp5zkkbgbffib1bphasarg";
-  };
-
-  buildInputs = [ocaml findlib];
-  propagatedBuildInputs = [type_conv camlp4];
-
-  createFindlibDestdir = true;
-
-  meta = with stdenv.lib; {
-    branch = "108";
-    homepage = "https://ocaml.janestreet.com/";
-    description = "Library for serializing OCaml values to and from S-expressions";
-    license = licenses.asl20;
-    maintainers = [ maintainers.vbgl ];
-    platforms = ocaml.meta.platforms or [];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/sexplib/111.25.00.nix b/pkgs/development/ocaml-modules/sexplib/111.25.00.nix
deleted file mode 100644
index adf878bca03..00000000000
--- a/pkgs/development/ocaml-modules/sexplib/111.25.00.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{stdenv, fetchurl, ocaml, findlib, type_conv, camlp4}:
-
-if !stdenv.lib.versionAtLeast ocaml.version "4.00"
-|| stdenv.lib.versionAtLeast ocaml.version "4.03"
-then throw "sexlib-111.25.00 is not available for OCaml ${ocaml.version}" else
-
-
-stdenv.mkDerivation {
-  name = "ocaml-sexplib-111.25.00";
-
-  src = fetchurl {
-    url = "https://ocaml.janestreet.com/ocaml-core/111.25.00/individual/sexplib-111.25.00.tar.gz";
-    sha256 = "0qh0zqp5nakqpmmhh4x7cg03vqj3j2bj4zj0nqdlksai188p9ila";
-  };
-
-  buildInputs = [ocaml findlib];
-  propagatedBuildInputs = [type_conv camlp4];
-
-  createFindlibDestdir = true;
-
-  meta = with stdenv.lib; {
-    homepage = "https://ocaml.janestreet.com/";
-    description = "Library for serializing OCaml values to and from S-expressions";
-    license = licenses.asl20;
-    maintainers = [ maintainers.vbgl maintainers.ericbmerritt ];
-    platforms = ocaml.meta.platforms or [];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/sexplib/112.24.01.nix b/pkgs/development/ocaml-modules/sexplib/112.24.01.nix
deleted file mode 100644
index fe7b9020dae..00000000000
--- a/pkgs/development/ocaml-modules/sexplib/112.24.01.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, buildOcaml, fetchurl, ocaml, type_conv, camlp4 }:
-
-if !stdenv.lib.versionAtLeast ocaml.version "4.02"
-|| stdenv.lib.versionAtLeast ocaml.version "4.03"
-then throw "sexlib-112.24.01 is not available for OCaml ${ocaml.version}" else
-
-buildOcaml rec {
-  minimumSupportedOcamlVersion = "4.02";
-  name = "sexplib";
-  version = "112.24.01";
-
-  src = fetchurl {
-    url = "https://github.com/janestreet/sexplib/archive/${version}.tar.gz";
-    sha256 = "5f776aee295cc51c952aecd4b74b52dd2b850c665cc25b3d69bc42014d3ba073";
-  };
-
-  propagatedBuildInputs = [ type_conv camlp4 ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://ocaml.janestreet.com/";
-    description = "Library for serializing OCaml values to and from S-expressions";
-    license = licenses.asl20;
-    maintainers = [ maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/sodium/default.nix b/pkgs/development/ocaml-modules/sodium/default.nix
index ee9b90d4603..5d815456580 100644
--- a/pkgs/development/ocaml-modules/sodium/default.nix
+++ b/pkgs/development/ocaml-modules/sodium/default.nix
@@ -1,5 +1,9 @@
 { stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, ctypes, libsodium }:
 
+if stdenv.lib.versionAtLeast ocaml.version "4.10"
+then throw "sodium is not available for OCaml ${ocaml.version}"
+else
+
 stdenv.mkDerivation rec {
   pname = "ocaml${ocaml.version}-sodium";
   version = "0.6.0";
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/textutils/default.nix b/pkgs/development/ocaml-modules/textutils/default.nix
deleted file mode 100644
index 6f0ca82a453..00000000000
--- a/pkgs/development/ocaml-modules/textutils/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{stdenv, buildOcaml, fetchurl, core_p4, pa_ounit, pa_test, sexplib_p4}:
-
-buildOcaml rec {
-  name = "textutils";
-  version = "112.17.00";
-
-  minimalSupportedOcamlVersion = "4.02";
-
-  src = fetchurl {
-    url = "https://github.com/janestreet/textutils/archive/${version}.tar.gz";
-    sha256 = "605d9fde66dc2d777721c936aa521e17169c143efaf9ff29619a7f273a7d0052";
-  };
-
-  buildInputs = [ pa_test ];
-  propagatedBuildInputs = [ core_p4 pa_ounit sexplib_p4 ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/janestreet/textutils";
-    description = "";
-    license = stdenv.lib.licenses.asl20;
-    maintainers = [ maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/tls/default.nix b/pkgs/development/ocaml-modules/tls/default.nix
index dea03f2b38a..807fb022e97 100644
--- a/pkgs/development/ocaml-modules/tls/default.nix
+++ b/pkgs/development/ocaml-modules/tls/default.nix
@@ -4,14 +4,14 @@
 , hacl_x25519, fiat-p256, hkdf, logs, alcotest }:
 
 buildDunePackage rec {
-  minimumOCamlVersion = "4.07";
+  minimumOCamlVersion = "4.08";
 
-  version = "0.12.0";
+  version = "0.12.4";
   pname = "tls";
 
   src = fetchurl {
     url = "https://github.com/mirleft/ocaml-tls/releases/download/v${version}/tls-v${version}.tbz";
-    sha256 = "0fy38qmy7rcld1b4qzz4ycl1fr0v1wa7qd24125lpd6hly86fn57";
+    sha256 = "1m6ci98xg8axk1swrjx0q33ixinyjg8vzr7vwr65k9wljfgy10s9";
   };
 
   useDune2 = true;
diff --git a/pkgs/development/ocaml-modules/torch/default.nix b/pkgs/development/ocaml-modules/torch/default.nix
new file mode 100644
index 00000000000..0e2bdf7311c
--- /dev/null
+++ b/pkgs/development/ocaml-modules/torch/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, buildDunePackage
+, fetchFromGitHub
+, cmdliner
+, ctypes
+, npy
+, ocaml-compiler-libs
+, ppx_custom_printf
+, ppx_expect
+, ppx_sexp_conv
+, sexplib
+, stdio
+, pytorch
+}:
+
+buildDunePackage rec {
+  pname = "torch";
+  version = "0.10";
+
+  minimumOCamlVersion = "4.07";
+
+  src = fetchFromGitHub {
+    owner = "LaurentMazare";
+    repo   = "ocaml-${pname}";
+    rev    = version;
+    sha256 = "1rqrv6hbical8chk0bl2nf60q6m4b5d1gab9fc5q03vkz2987f9b";
+  };
+
+  propagatedBuildInputs = [
+    cmdliner
+    ctypes
+    npy
+    ocaml-compiler-libs
+    pytorch
+    pytorch.dev
+    ppx_custom_printf
+    ppx_expect
+    ppx_sexp_conv
+    sexplib
+    stdio
+  ];
+
+  preBuild = ''export LIBTORCH=${pytorch.dev}/'';
+
+  doCheck = !stdenv.isAarch64;
+  checkPhase = "dune runtest";
+
+  meta = with lib; {
+    inherit (src.meta) homepage;
+    description = "Ocaml bindings to Pytorch";
+    maintainers = [ maintainers.bcdarwin ];
+    license = licenses.asl20;
+  };
+}
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/tuntap/default.nix b/pkgs/development/ocaml-modules/tuntap/default.nix
index 8e8eaf5fd5e..a4536316ba4 100644
--- a/pkgs/development/ocaml-modules/tuntap/default.nix
+++ b/pkgs/development/ocaml-modules/tuntap/default.nix
@@ -1,25 +1,27 @@
-{ stdenv, fetchzip, ocaml, findlib, ocamlbuild, ipaddr }:
+{ lib, buildDunePackage, fetchurl
+, ipaddr, macaddr, cmdliner
+}:
 
-assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4.01";
+buildDunePackage rec {
+  pname = "tuntap";
+  version = "2.0.0";
 
-stdenv.mkDerivation {
-  name = "ocaml-tuntap-1.3.0";
+  minimumOCamlVersion = "4.04.2";
 
-  src = fetchzip {
-    url = "https://github.com/mirage/ocaml-tuntap/archive/v1.3.0.tar.gz";
-    sha256 = "1cmd4kky875ks02gm2nb8yr80hmlfcnjdfyc63hvkh49acssy3d5";
+  src = fetchurl {
+    url = "https://github.com/mirage/ocaml-tuntap/releases/download/v${version}/tuntap-v${version}.tbz";
+    sha256 = "12wmls28h3jzikwyfw08d5f7ycsc9njwzbhd3qk2l8jnf5rakfsa";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild ];
-  propagatedBuildInputs = [ ipaddr ];
+  propagatedBuildInputs = [ ipaddr macaddr cmdliner ];
 
-  createFindlibDestdir = true;
+  # tests manipulate network devices and use network
+  # also depend on LWT 5
+  doCheck = false;
 
   meta = {
     description = "Bindings to the UNIX tuntap facility";
-    license = stdenv.lib.licenses.isc;
+    license = lib.licenses.isc;
     homepage = "https://github.com/mirage/ocaml-tuntap";
-    inherit (ocaml.meta) platforms;
   };
-
 }
diff --git a/pkgs/development/ocaml-modules/tyxml/default.nix b/pkgs/development/ocaml-modules/tyxml/default.nix
index 0d0d43229f8..5d5e7dedd23 100644
--- a/pkgs/development/ocaml-modules/tyxml/default.nix
+++ b/pkgs/development/ocaml-modules/tyxml/default.nix
@@ -2,11 +2,11 @@
 
 buildDunePackage rec {
   pname = "tyxml";
-  version = "4.3.0";
+  version = "4.4.0";
 
   src = fetchurl {
     url = "https://github.com/ocsigen/tyxml/releases/download/${version}/tyxml-${version}.tbz";
-    sha256 = "1hxzppfvsdls2y8qiwvz31hmffzh2hgglf01am1vzf2f31mxf6vf";
+    sha256 = "0c150h2f4c4id73ickkdqkir3jya66m6c7f5jxlp4caw9bfr8qsi";
   };
 
   propagatedBuildInputs = [ uutf re ];
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/vg/default.nix b/pkgs/development/ocaml-modules/vg/default.nix
index 0a127e49fdc..d33f03a0d34 100644
--- a/pkgs/development/ocaml-modules/vg/default.nix
+++ b/pkgs/development/ocaml-modules/vg/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl, ocaml, findlib, ocamlbuild, topkg
 , uchar, result, gg, uutf, otfm
-, js_of_ocaml, js_of_ocaml-ocamlbuild, js_of_ocaml-ppx,
+, js_of_ocaml, js_of_ocaml-ppx,
   pdfBackend ? true, # depends on uutf and otfm
   htmlcBackend ? true # depends on js_of_ocaml
 }:
@@ -11,7 +11,7 @@ let
   inherit (stdenv.lib) optionals versionAtLeast;
 
   pname = "vg";
-  version = "0.9.3";
+  version = "0.9.4";
   webpage = "https://erratique.ch/software/${pname}";
 in
 
@@ -25,14 +25,14 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "${webpage}/releases/${pname}-${version}.tbz";
-    sha256 = "0jj5hrqxdb6yyplnz0r7am4mbjzgcn876qp7sqs2x93a97fk6lwd";
+    sha256 = "181sz6l5xrj5jvwg4m2yqsjzwp2s5h8v0mwhjcwbam90kdfx2nak";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild topkg ];
 
   propagatedBuildInputs = [ uchar result gg ]
                           ++ optionals pdfBackend [ uutf otfm ]
-                          ++ optionals htmlcBackend [ js_of_ocaml js_of_ocaml-ocamlbuild js_of_ocaml-ppx ];
+                          ++ optionals htmlcBackend [ js_of_ocaml js_of_ocaml-ppx ];
 
   buildPhase = topkg.buildPhase
     + " --with-uutf ${boolToString pdfBackend}"
diff --git a/pkgs/development/ocaml-modules/webmachine/default.nix b/pkgs/development/ocaml-modules/webmachine/default.nix
index 79e36b66d11..3bf163607cd 100644
--- a/pkgs/development/ocaml-modules/webmachine/default.nix
+++ b/pkgs/development/ocaml-modules/webmachine/default.nix
@@ -5,7 +5,7 @@
 
 buildDunePackage rec {
   pname = "webmachine";
-  version = "0.6.1";
+  version = "0.6.2";
 
   minimumOCamlVersion = "4.04";
 
@@ -13,7 +13,7 @@ buildDunePackage rec {
     owner = "inhabitedtype";
     repo = "ocaml-webmachine";
     rev = "${version}";
-    sha256 = "0kpbxsvjzylbxmxag77k1c8m8mwn4f4xscqk2i7fc591llgq9fp3";
+    sha256 = "1zi1vsm589y2njwzsqkmdbxvs9s4xlgbd62xqw2scp60mccp09nk";
   };
 
   propagatedBuildInputs = [ cohttp dispatch ptime ];
diff --git a/pkgs/development/ocaml-modules/x509/default.nix b/pkgs/development/ocaml-modules/x509/default.nix
index eae40d4dfae..289a3891c78 100644
--- a/pkgs/development/ocaml-modules/x509/default.nix
+++ b/pkgs/development/ocaml-modules/x509/default.nix
@@ -8,11 +8,11 @@ buildDunePackage rec {
   minimumOCamlVersion = "4.07";
 
   pname = "x509";
-  version = "0.11.1";
+  version = "0.11.2";
 
   src = fetchurl {
     url = "https://github.com/mirleft/ocaml-x509/releases/download/v${version}/x509-v${version}.tbz";
-    sha256 = "1vmjqwmxf7zz157rlp3wp3zp88kw62m4f22i0xmxhinssd0dvr9c";
+    sha256 = "1b4lcphmlyjhdgqi0brakgjp3diwmrj1y9hx87svi5xklw3zik22";
   };
 
   useDune2 = true;
diff --git a/pkgs/development/ocaml-modules/xtmpl/default.nix b/pkgs/development/ocaml-modules/xtmpl/default.nix
index 2c4cf4928db..2264f0dedbf 100644
--- a/pkgs/development/ocaml-modules/xtmpl/default.nix
+++ b/pkgs/development/ocaml-modules/xtmpl/default.nix
@@ -17,6 +17,10 @@ stdenv.mkDerivation rec {
 
   patches = [ ./jsoo.patch ];
 
+  postPatch = ''
+    substituteInPlace Makefile --replace js_of_ocaml.ppx js_of_ocaml-ppx
+  '';
+
   buildInputs = [ ocaml findlib ppx_tools js_of_ocaml js_of_ocaml-ppx ];
   propagatedBuildInputs = [ iri re ];
 
diff --git a/pkgs/development/perl-modules/Percona-Toolkit/default.nix b/pkgs/development/perl-modules/Percona-Toolkit/default.nix
index 58ccd2bc8be..b2c5437e380 100644
--- a/pkgs/development/perl-modules/Percona-Toolkit/default.nix
+++ b/pkgs/development/perl-modules/Percona-Toolkit/default.nix
@@ -1,20 +1,32 @@
-{ lib, fetchFromGitHub, buildPerlPackage, DBDmysql, DBI, IOSocketSSL, TermReadKey }:
+{ 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 ];
-  meta = {
+
+  postInstall = ''
+    shortenPerlShebang $(grep -l "/bin/env perl" $out/bin/*)
+  '';
+
+  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/3to2/default.nix b/pkgs/development/python-modules/3to2/default.nix
index ff64a6d1a47..8870388c284 100644
--- a/pkgs/development/python-modules/3to2/default.nix
+++ b/pkgs/development/python-modules/3to2/default.nix
@@ -24,6 +24,8 @@ buildPythonPackage rec {
   # Test failing due to upstream issue (https://bitbucket.org/amentajo/lib3to2/issues/50/testsuite-fails-with-new-python-35)
   doCheck = false;
 
+  dontUsePythonRecompileBytecode = true;
+
   meta = {
     homepage = "https://bitbucket.org/amentajo/lib3to2";
     description = "Refactors valid 3.x syntax into valid 2.x syntax, if a syntactical conversion is possible";
diff --git a/pkgs/development/python-modules/Cython/default.nix b/pkgs/development/python-modules/Cython/default.nix
index 2d987abb3e4..84f54fd7af6 100644
--- a/pkgs/development/python-modules/Cython/default.nix
+++ b/pkgs/development/python-modules/Cython/default.nix
@@ -5,7 +5,7 @@
 , fetchpatch
 , python
 , glibcLocales
-, pkgconfig
+, pkg-config
 , gdb
 , numpy
 , ncurses
@@ -26,15 +26,15 @@ let
 
 in buildPythonPackage rec {
   pname = "Cython";
-  version = "0.29.14";
+  version = "0.29.21";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e4d6bb8703d0319eb04b7319b12ea41580df44fd84d83ccda13ea463c6801414";
+    sha256 = "1bcwpra7c6k30yvic3sw2v3rq2dr40ypc4zqif6kr52mpn4wnyp5";
   };
 
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
   ];
   checkInputs = [
     numpy ncurses
diff --git a/pkgs/development/python-modules/GitPython/default.nix b/pkgs/development/python-modules/GitPython/default.nix
index b15b5ebf344..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.0";
+  version = "3.1.7";
   pname = "GitPython";
   disabled = isPy27; # no longer supported
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jzllsy9lwc9yibccgv7h9naxisazx2n3zmpy21c8n5xhysw69p4";
+    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/HTSeq/default.nix b/pkgs/development/python-modules/HTSeq/default.nix
index 8158c675898..abb0c8520dd 100644
--- a/pkgs/development/python-modules/HTSeq/default.nix
+++ b/pkgs/development/python-modules/HTSeq/default.nix
@@ -1,12 +1,12 @@
 { stdenv, buildPythonPackage, fetchPypi, cython, numpy, pysam, matplotlib
 }:
 buildPythonPackage rec {
-  version = "0.11.4";
+  version = "0.12.4";
   pname = "HTSeq";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ncn30yvc18aiv1qsa0bvcbjwqy21s0a0kv3v0vghzsn8vbfzq7h";
+    sha256 = "e3980bb4f12899442b4fa6f24f0ba149090f71cedb1eaf7128249afe4eb921ff";
   };
 
   buildInputs = [ cython numpy pysam ];
diff --git a/pkgs/development/python-modules/JPype1/default.nix b/pkgs/development/python-modules/JPype1/default.nix
index ef034b0f627..ca30631a68e 100644
--- a/pkgs/development/python-modules/JPype1/default.nix
+++ b/pkgs/development/python-modules/JPype1/default.nix
@@ -1,16 +1,18 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , pytest
 }:
 
 buildPythonPackage rec {
   pname = "JPype1";
-  version = "0.7.1";
+  version = "0.7.5";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c16d01cde9c2c955d76d45675e64b06c3255784d49cea4147024e99a01fbbb18";
+    sha256 = "7bbd25453dc04704d77d854c80acb5537ecb18b9de8a5572e5f22649a2160aaf";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/JayDeBeApi/default.nix b/pkgs/development/python-modules/JayDeBeApi/default.nix
index 738419e8c5c..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.1.1";
+  version = "1.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0a189xs9zw81jvwwglvf2qyqnk6ra0biljssx9n4ffayqn9glbds";
+    sha256 = "f25e9307fbb5960cb035394c26e37731b64cc465b197c4344cee85ec450ab92f";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/Mako/default.nix b/pkgs/development/python-modules/Mako/default.nix
index 8d22094526d..375a0296864 100644
--- a/pkgs/development/python-modules/Mako/default.nix
+++ b/pkgs/development/python-modules/Mako/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "Mako";
-  version = "1.1.1";
+  version = "1.1.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2984a6733e1d472796ceef37ad48c26f4a984bb18119bb2dbc37a44d8f6e75a4";
+    sha256 = "8195c8c1400ceb53496064314c6736719c6f25e7479cd24c77be3d9361cddc27";
   };
 
   checkInputs = [ markupsafe nose mock ];
diff --git a/pkgs/development/python-modules/Nikola/default.nix b/pkgs/development/python-modules/Nikola/default.nix
index d3b6fa58750..31915383275 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.3";
+  version = "8.0.4";
 
   # 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 = "a53470be082fce1843fb73002be2504828f9abc49a84eab5d1effc06ae2a5ddc";
+    sha256 = "2e5c8305ec4423b56af2223336c3309e5c9b8c96df0d6fde46d26cff4c5d6f1a";
   };
 
   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/Pygments/2_5.nix b/pkgs/development/python-modules/Pygments/2_5.nix
new file mode 100644
index 00000000000..a0c40550c9a
--- /dev/null
+++ b/pkgs/development/python-modules/Pygments/2_5.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, docutils
+}:
+
+buildPythonPackage rec {
+  pname = "Pygments";
+  version = "2.5.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "98c8aa5a9f778fcd1026a17361ddaf7330d1b7c62ae97c3bb0ae73e0b9b6b0fe";
+  };
+
+  propagatedBuildInputs = [ docutils ];
+
+  # Circular dependency with sphinx
+  doCheck = false;
+
+  meta = {
+    homepage = "https://pygments.org/";
+    description = "A generic syntax highlighter";
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/Pygments/default.nix b/pkgs/development/python-modules/Pygments/default.nix
index a0c40550c9a..e0c5539299d 100644
--- a/pkgs/development/python-modules/Pygments/default.nix
+++ b/pkgs/development/python-modules/Pygments/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "Pygments";
-  version = "2.5.2";
+  version = "2.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "98c8aa5a9f778fcd1026a17361ddaf7330d1b7c62ae97c3bb0ae73e0b9b6b0fe";
+    sha256 = "647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44";
   };
 
   propagatedBuildInputs = [ docutils ];
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/WSME/default.nix b/pkgs/development/python-modules/WSME/default.nix
index ac04861b41d..f587d186bfd 100644
--- a/pkgs/development/python-modules/WSME/default.nix
+++ b/pkgs/development/python-modules/WSME/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "WSME";
-  version = "0.9.3";
+  version = "0.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e24fcff24392a0b176e560ffc6591b1f658342bbc992f84e0e8a3c53fd92580a";
+    sha256 = "965b9ce48161e5c50d84aedcf50dca698f05bf07e9d489201bccaec3141cd304";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/Wand/default.nix b/pkgs/development/python-modules/Wand/default.nix
index 872cda33b59..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.5.9";
+  version = "0.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0a4v5cwnwsjxril7514ssvdqxsad227v5w7hcfqjkqzvaf7agb3f";
+    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 07805c470c3..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.2.0";
+  version = "0.3.2";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e27ca7eed8a1bde2e6e040f8f3ee94a5d7522f42c4360756c9ec8931cf13ca98";
+    sha256 = "be5c8c9ef2f83c9eeddac85463879957c87a93b257a6202a76ad6b43080b32f9";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/acoustics/default.nix b/pkgs/development/python-modules/acoustics/default.nix
index 05f0e29f4e2..7b62c6791cb 100644
--- a/pkgs/development/python-modules/acoustics/default.nix
+++ b/pkgs/development/python-modules/acoustics/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "acoustics";
-  version = "0.2.4";
+  version = "0.2.4.post0";
 
   checkInputs = [ pytest ];
   propagatedBuildInputs = [ numpy scipy matplotlib pandas tabulate ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8ccb68ac258ba81a0b9064523e85eae013f9bfce7244d01db42d7d2d21d712cc";
+    sha256 = "a162625e5e70ed830fab8fab0ddcfe35333cb390cd24b0a827bcefc5bbcae97d";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/adal/default.nix b/pkgs/development/python-modules/adal/default.nix
index 4b8bd814934..58a8ce72cb9 100644
--- a/pkgs/development/python-modules/adal/default.nix
+++ b/pkgs/development/python-modules/adal/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "adal";
-  version = "1.2.2";
+  version = "1.2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5a7f1e037c6290c6d7609cab33a9e5e988c2fbec5c51d1c4c649ee3faff37eaf";
+    sha256 = "7a15d22b1ee7ce1be92441199958748982feba6b7dec35fbf60f9b607bad1bc0";
   };
 
   propagatedBuildInputs =  [ requests pyjwt dateutil ];
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/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/aiofiles/default.nix b/pkgs/development/python-modules/aiofiles/default.nix
index 917e3914c10..7db56622759 100644
--- a/pkgs/development/python-modules/aiofiles/default.nix
+++ b/pkgs/development/python-modules/aiofiles/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "aiofiles";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "021ea0ba314a86027c166ecc4b4c07f2d40fc0f4b3a950d1868a0f2571c2bbee";
+    sha256 = "98e6bcfd1b50f97db4980e182ddd509b7cc35909e903a8fe50d8849e02d815af";
   };
 
   disabled = pythonOlder "3.3";
diff --git a/pkgs/development/python-modules/aioftp/default.nix b/pkgs/development/python-modules/aioftp/default.nix
index 91dbdc05a9e..522d6c2ed38 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.13.0";
+  version = "0.16.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5711c03433b510c101e9337069033133cca19b508b5162b414bed24320de6c18";
+    sha256 = "0rqzg4w86zch0cjslkndv02gmpi0r27lsy1qi1irpa8hqfhh23ja";
   };
 
   checkInputs = [
@@ -27,10 +27,13 @@ buildPythonPackage rec {
     async-timeout
   ];
 
+  doCheck = false; # requires siosocks, not packaged yet
   checkPhase = ''
     pytest
   '';
 
+  pythonImportsCheck = [ "aioftp" ];
+
   meta = with lib; {
     description = "Ftp client/server for asyncio";
     homepage = "https://github.com/aio-libs/aioftp";
diff --git a/pkgs/development/python-modules/aioharmony/default.nix b/pkgs/development/python-modules/aioharmony/default.nix
index 13769bbeaed..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.1";
+  version = "0.2.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8c8f6e3b776e4e7eba5a1d2ae739aac6a1dd558a7f15951c34ffe0ee28f7f538";
+    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 7d164cf5e4f..9dcd34c1d1b 100644
--- a/pkgs/development/python-modules/aiohttp/default.nix
+++ b/pkgs/development/python-modules/aiohttp/default.nix
@@ -3,7 +3,6 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
-, pythonAtLeast
 , attrs
 , chardet
 , multidict
@@ -12,9 +11,8 @@
 , idna-ssl
 , typing-extensions
 , pytestrunner
-, pytest
+, pytestCheckHook
 , gunicorn
-, pytest-timeout
 , async_generator
 , pytest_xdist
 , pytestcov
@@ -22,13 +20,14 @@
 , trustme
 , brotlipy
 , freezegun
+, isPy38
 }:
 
 buildPythonPackage rec {
   pname = "aiohttp";
   version = "3.6.2";
   # https://github.com/aio-libs/aiohttp/issues/4525 python3.8 failures
-  disabled = pythonOlder "3.5" || pythonAtLeast "3.8";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
@@ -36,28 +35,41 @@ buildPythonPackage rec {
   };
 
   checkInputs = [
-    pytestrunner pytest gunicorn async_generator pytest_xdist
+    pytestrunner pytestCheckHook gunicorn async_generator pytest_xdist
     pytest-mock pytestcov trustme brotlipy freezegun
   ];
 
   propagatedBuildInputs = [ attrs chardet multidict async-timeout yarl ]
     ++ lib.optionals (pythonOlder "3.7") [ idna-ssl typing-extensions ];
 
-  # disable tests which attempt to do loopback connections
-  checkPhase = ''
+  disabledTests = [
+    # disable tests which attempt to do loopback connections
+    "get_valid_log_format_exc"
+    "test_access_logger_atoms"
+    "aiohttp_request_coroutine"
+    "server_close_keepalive_connection"
+    "connector"
+    "client_disconnect"
+    "handle_keepalive_on_closed_connection"
+    "proxy_https_bad_response"
+    "partially_applied_handler"
+    "middleware"
+  ] ++ lib.optionals stdenv.is32bit [
+    "test_cookiejar"
+  ] ++ lib.optionals isPy38 [
+    # Python 3.8  https://github.com/aio-libs/aiohttp/issues/4525
+    "test_read_boundary_with_incomplete_chunk"
+    "test_read_incomplete_chunk"
+    "test_request_tracing_exception"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "test_addresses"  # https://github.com/aio-libs/aiohttp/issues/3572
+    "test_close"
+  ];
+
+  # aiohttp in current folder shadows installed version
+  # Probably because we run `python -m pytest` instead of `pytest` in the hook.
+  preCheck = ''
     cd tests
-    pytest -k "not get_valid_log_format_exc \
-               and not test_access_logger_atoms \
-               and not aiohttp_request_coroutine \
-               and not server_close_keepalive_connection \
-               and not connector \
-               and not client_disconnect \
-               and not handle_keepalive_on_closed_connection \
-               and not proxy_https_bad_response \
-               and not partially_applied_handler \
-               ${lib.optionalString stdenv.is32bit "and not test_cookiejar"} \
-               and not middleware" \
-      --ignore=test_connector.py
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/aiohue/default.nix b/pkgs/development/python-modules/aiohue/default.nix
index 91c059497fc..68354cee0b2 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 = "1.10.1";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d95e51f15c442d769004774e7b4220155e32dc6c8ae834b035a2f0d8ff783ff0";
+    sha256 = "bdd08ad65505057b9dc8fc1b5558250bd13aeba681a493080f710ffffc4260a3";
   };
 
   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/aiolifx/default.nix b/pkgs/development/python-modules/aiolifx/default.nix
index c40f8d3b447..7b33b1c508f 100644
--- a/pkgs/development/python-modules/aiolifx/default.nix
+++ b/pkgs/development/python-modules/aiolifx/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "aiolifx";
-  version = "0.6.7";
+  version = "0.6.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cf53c9faea6eee25a466e73eef1753b82a75c7497648149c19c15342df2678f2";
+    sha256 = "9f9055bc2a9a72c5eab17e0ce5522edecd6de07e21cf347bf0cffabdabe5570e";
   };
 
   # tests are not implemented
diff --git a/pkgs/development/python-modules/aioresponses/default.nix b/pkgs/development/python-modules/aioresponses/default.nix
index bbeca1c3150..7b12cefc8c7 100644
--- a/pkgs/development/python-modules/aioresponses/default.nix
+++ b/pkgs/development/python-modules/aioresponses/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "aioresponses";
-  version = "0.6.3";
+  version = "0.6.4";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06w15iyr07s861hkzqfdclzxkpvgg83sx8f235mz8k2490hnyqvv";
+    sha256 = "4397ca736238a1ada8c7f47e557dda05e9ecfdd467b9f6b83871efd365af7e9f";
   };
 
   nativeBuildInputs = [
@@ -35,7 +35,7 @@ buildPythonPackage rec {
 
   # Skip a test which makes requests to httpbin.org
   checkPhase = ''
-    pytest -k "not test_address_as_instance_of_url_combined_with_pass_through"
+    pytest -k "not (test_address_as_instance_of_url_combined_with_pass_through or test_pass_through_with_origin_params)"
   '';
 
   meta = {
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 e6a9afcc2c9..589ebc08ef4 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 = "11";
+  version = "22";
 
   disabled = ! isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e751cfd002f54dda76dfd498dcc53cb6fab6bff79773ca7d18c9c7b392046b12";
+    sha256 = "ad2625c8a62e28781d50644f4a4df5a97a32174b965cd3b329820ae85e2dfcc3";
   };
 
   propagatedBuildInputs = [ aiohttp ];
diff --git a/pkgs/development/python-modules/alembic/default.nix b/pkgs/development/python-modules/alembic/default.nix
index 0a22f7aa289..18a56936d9d 100644
--- a/pkgs/development/python-modules/alembic/default.nix
+++ b/pkgs/development/python-modules/alembic/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "alembic";
-  version = "1.3.2";
+  version = "1.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3b0cb1948833e062f4048992fbc97ecfaaaac24aaa0d83a1202a99fb58af8c6d";
+    sha256 = "035ab00497217628bf5d0be82d664d8713ab13d37b630084da8e1f98facf4dbf";
   };
 
   buildInputs = [ pytest pytestcov mock coverage ];
diff --git a/pkgs/development/python-modules/alerta-server/default.nix b/pkgs/development/python-modules/alerta-server/default.nix
index 55d6a5c6bdf..b9fb265f252 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.4.1";
+  version = "7.5.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a6f7740c97f2ae552a4b50bfb709596eabb01bf73715685c9b93ea9fec1821f3";
+    sha256 = "507abdb64c8b83c8ff0c21e39b03a21ccd7884ca3ce31afacea2d97e4d39f2e8";
   };
 
   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 c75ad2d14f9..cdfea1f4c30 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.4.0";
+  version = "7.5.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2c8d9cf174d7f66401a5deb104b96375f3877b6c768568705f700faf3adbf448";
+    sha256 = "849966c05e9899ac72af23991e9f17271c42bba89035c49d257a9dd96b54695b";
   };
 
   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 d15d1ea0110..c3b624a7bce 100644
--- a/pkgs/development/python-modules/alot/default.nix
+++ b/pkgs/development/python-modules/alot/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "alot";
-  version = "0.9";
+  version = "0.9.1";
   outputs = [ "out" ] ++ lib.optional withManpage "man";
 
   disabled = !isPy3k;
@@ -16,17 +16,12 @@ buildPythonPackage rec {
     owner = "pazz";
     repo = "alot";
     rev = version;
-    sha256 = "sha256-WUwOJcq8JE7YO8sFeZwYikCRhpufO0pL6MKu54ZYsHI=";
+    sha256 = "0s94m17yph1gq9f2svipb3bbwbw1s4j3zf2xkg5h91006v8286r6";
   };
 
-  patches = [
-    # can't compose email if signature is set: https://github.com/pazz/alot/issues/1468
-    (fetchpatch {
-      name = "envelope-body.patch";
-      url = "https://github.com/pazz/alot/commit/28a4296c7f556c251d71d9502681980d46d9fa55.patch";
-      sha256 = "1iwvmjyz4mh1g08vr85ywhah2xarcqg8dazagygk19icgsn45w06";
-    })
-  ];
+  postPatch = ''
+    substituteInPlace alot/settings/manager.py --replace /usr/share "$out/share"
+  '';
 
   nativeBuildInputs = lib.optional withManpage sphinx;
 
@@ -70,6 +65,6 @@ buildPythonPackage rec {
     description = "Terminal MUA using notmuch mail";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ edibopp ];
   };
 }
diff --git a/pkgs/development/python-modules/amqp/default.nix b/pkgs/development/python-modules/amqp/default.nix
index bfd3cd7055e..f9b1e62caa3 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.5.2";
+  version = "2.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "77f1aef9410698d20eaeac5b73a87817365f457a507d82edf292e12cbb83b08d";
+    sha256 = "24dbaff8ce4f30566bb88976b398e8c4e77637171af3af6f1b9650f48890e60b";
   };
 
-  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-runner/default.nix b/pkgs/development/python-modules/ansible-runner/default.nix
index 27188246b53..7f29bb5695c 100644
--- a/pkgs/development/python-modules/ansible-runner/default.nix
+++ b/pkgs/development/python-modules/ansible-runner/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "ansible-runner";
-  version = "1.4.4";
+  version = "1.4.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e6ccb7ccf9bab9c49a391db37e0d399ba0e73f969801ae35ff74020bfd4fc346";
+    sha256 = "53605de32f7d3d3442a6deb8937bf1d9c1f91c785e3f71003d22c3e63f85c71d";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/ansible/default.nix b/pkgs/development/python-modules/ansible/default.nix
index b9c710e6888..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.7";
+  version = "2.9.12";
 
   src = fetchFromGitHub {
     owner = "ansible";
     repo = "ansible";
     rev = "v${version}";
-    sha256 = "0miid7h720i630qljcjdmgdblflhrl2pwqjgiq5wm8jr61c3ld6s";
+    sha256 = "0c794k0cyl54807sh9in0l942ah6g6wlz5kf3qvy5lhd581zlgyb";
   };
 
   prePatch = ''
@@ -51,7 +51,7 @@ buildPythonPackage rec {
     homepage = "http://www.ansible.com";
     description = "Radically simple IT automation";
     license = [ licenses.gpl3 ] ;
-    maintainers = with maintainers; [ joamaki costrouc ];
+    maintainers = with maintainers; [ joamaki costrouc hexa ];
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/python-modules/anytree/default.nix b/pkgs/development/python-modules/anytree/default.nix
index b07b585573d..6b25952493b 100644
--- a/pkgs/development/python-modules/anytree/default.nix
+++ b/pkgs/development/python-modules/anytree/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "anytree";
-  version = "2.7.3";
+  version = "2.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05736hamjv4f38jw6z9y4wckc7mz18ivbizm1s3pb0n6fp1sy4zk";
+    sha256 = "3f0f93f355a91bc3e6245319bf4c1d50e3416cc7a35cc1133c1ff38306bbccab";
   };
 
   patches = lib.optionals withGraphviz [
diff --git a/pkgs/development/python-modules/apache-airflow/default.nix b/pkgs/development/python-modules/apache-airflow/default.nix
index 706648f56a3..ca2cb03f967 100644
--- a/pkgs/development/python-modules/apache-airflow/default.nix
+++ b/pkgs/development/python-modules/apache-airflow/default.nix
@@ -46,19 +46,21 @@
 , thrift
 , tzlocal
 , unicodecsv
-, werkzeug
 , zope_deprecation
 , enum34
 , typing
 , nose
 , python
-, isPy3k
+, pythonOlder
+, pythonAtLeast
 }:
 
 buildPythonPackage rec {
   pname = "apache-airflow";
   version = "1.10.5";
-  disabled = (!isPy3k);
+  # Upstream does not yet support python 3.8
+  # https://github.com/apache/airflow/issues/8674
+  disabled = pythonOlder "3.5" || pythonAtLeast "3.8";
 
   src = fetchFromGitHub rec {
     owner = "apache";
@@ -124,7 +126,6 @@ buildPythonPackage rec {
     thrift
     tzlocal
     unicodecsv
-    werkzeug
     zope_deprecation
   ];
 
@@ -140,24 +141,25 @@ buildPythonPackage rec {
       --replace "pandas>=0.17.1, <1.0.0" "pandas" \
       --replace "flask-caching>=1.3.3, <1.4.0" "flask-caching" \
       --replace "flask-appbuilder>=1.12.5, <2.0.0" "flask-appbuilder" \
+      --replace "flask-admin==1.5.3" "flask-admin" \
+      --replace "flask-login>=0.3, <0.5" "flask-login" \
       --replace "pendulum==1.4.4" "pendulum" \
       --replace "cached_property~=1.5" "cached_property" \
       --replace "dill>=0.2.2, <0.3" "dill" \
       --replace "configparser>=3.5.0, <3.6.0" "configparser" \
-      --replace "jinja2>=2.7.3, <=2.10.0" "jinja2" \
+      --replace "jinja2>=2.10.1, <2.11.0" "jinja2" \
       --replace "colorlog==4.0.2" "colorlog" \
       --replace "funcsigs==1.0.0" "funcsigs" \
       --replace "flask-swagger==0.2.13" "flask-swagger" \
       --replace "python-daemon>=2.1.1, <2.2" "python-daemon" \
-      --replace "alembic>=0.9, <1.0" "alembic" \
+      --replace "alembic>=1.0, <2.0" "alembic" \
       --replace "markdown>=2.5.2, <3.0" "markdown" \
       --replace "future>=0.16.0, <0.17" "future" \
       --replace "tenacity==4.12.0" "tenacity" \
       --replace "text-unidecode==1.2" "text-unidecode" \
       --replace "tzlocal>=1.4,<2.0.0" "tzlocal" \
       --replace "sqlalchemy~=1.3" "sqlalchemy" \
-      --replace "gunicorn>=19.5.0, <20.0" "gunicorn" \
-      --replace "werkzeug>=0.14.1, <0.15.0" "werkzeug"
+      --replace "gunicorn>=19.5.0, <20.0" "gunicorn"
 
     # dumb-init is only needed for CI and Docker, not relevant for NixOS.
     substituteInPlace setup.py \
@@ -189,6 +191,6 @@ buildPythonPackage rec {
     description = "Programmatically author, schedule and monitor data pipelines";
     homepage = "http://airflow.apache.org/";
     license = licenses.asl20;
-    maintainers = with maintainers; [ costrouc ingenieroariel ];
+    maintainers = with maintainers; [ bhipple costrouc ingenieroariel ];
   };
 }
diff --git a/pkgs/development/python-modules/apispec/default.nix b/pkgs/development/python-modules/apispec/default.nix
index fa8b14853aa..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.1.1";
+  version = "3.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "24b8490c22310b0779a058ccb24ec2fef33d571bb5aba1f525ab5963b0eabcdd";
+    sha256 = "f5244ccca33f7a81309f6b3c9d458e33e869050c2d861b9f8cee24b3ad739d2b";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/appdirs/default.nix b/pkgs/development/python-modules/appdirs/default.nix
index 2f7f2ae0281..22fa3dc98fb 100644
--- a/pkgs/development/python-modules/appdirs/default.nix
+++ b/pkgs/development/python-modules/appdirs/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "appdirs";
-  version = "1.4.3";
+  version = "1.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92";
+    sha256 = "7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/apprise/default.nix b/pkgs/development/python-modules/apprise/default.nix
index 69926bec8f5..313383f4261 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.4";
+  version = "0.8.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15kwnvs2ka6sg1gq65bbf9lk0jp104br813y6wvrbwipiz8kkjn1";
+    sha256 = "695f9b98b7eb273901d9d28a026a69a028a57ab7d666bdf146ecc215c80b5041";
   };
 
   nativeBuildInputs = [ Babel ];
diff --git a/pkgs/development/python-modules/apsw/default.nix b/pkgs/development/python-modules/apsw/default.nix
index cd6e40c119c..48aa68f3054 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.30.1-r1";
+  version = "3.32.2-r1";
 
   disabled = isPyPy;
 
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     owner = "rogerbinns";
     repo = "apsw";
     rev = version;
-    sha256 = "1zp38gj44bmzfxxpvgd7nixkp8vs2fpl839ag8vrh9z70dax22f0";
+    sha256 = "0gwhcvklrgng8gg6in42h0aj2bsq522bhhs2pp3cqdrmypkjdm59";
   };
 
   buildInputs = [ sqlite ];
diff --git a/pkgs/development/python-modules/aresponses/default.nix b/pkgs/development/python-modules/aresponses/default.nix
index 472911340ad..c790f480410 100644
--- a/pkgs/development/python-modules/aresponses/default.nix
+++ b/pkgs/development/python-modules/aresponses/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "aresponses";
-  version = "1.1.2";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "20a63536d86af6f31f9b0720c561bdc595b6bfe071940e347ab58b11caff9e1b";
+    sha256 = "58693a6b715edfa830a20903ee1d1b2a791251923f311b3bebf113e8ff07bb35";
   };
 
   propagatedBuildInputs = [
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/arrow/default.nix b/pkgs/development/python-modules/arrow/default.nix
index 141ce20fdcb..bc3de37526a 100644
--- a/pkgs/development/python-modules/arrow/default.nix
+++ b/pkgs/development/python-modules/arrow/default.nix
@@ -1,30 +1,39 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ stdenv, lib, buildPythonPackage, fetchPypi, isPy27
 , nose, chai, simplejson, backports_functools_lru_cache
-, dateutil, pytz, mock, dateparser
+, python-dateutil, pytz, pytest-mock, sphinx, dateparser, pytestcov
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "arrow";
-  version = "0.15.5";
+  version = "0.15.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0yq2bld2bjxddmg9zg4ll80pb32rkki7xyhgnrqnkxy5w9jf942k";
+    sha256 = "edc31dc051db12c95da9bac0271cd1027b8e36912daf6d4580af53b23e62721a";
   };
 
-  checkPhase = ''
-    nosetests --cover-package=arrow
-  '';
+  propagatedBuildInputs = [ python-dateutil ]
+    ++ lib.optionals isPy27 [ backports_functools_lru_cache ];
 
-  checkInputs = [ nose chai simplejson pytz ];
-  propagatedBuildInputs = [ dateutil backports_functools_lru_cache mock dateparser];
+  checkInputs = [
+    dateparser
+    pytestCheckHook
+    pytestcov
+    pytest-mock
+    pytz
+    simplejson
+    sphinx
+  ];
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "==1.2.1" ""
-  '';
+  # ParserError: Could not parse timezone expression "America/Nuuk"
+  disabledTests = [
+    "test_parse_tz_name_zzz"
+  ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Python library for date manipulation";
+    homepage = "https://github.com/crsmithdev/arrow";
     license = licenses.asl20;
     maintainers = with maintainers; [ thoughtpolice ];
   };
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/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/astral/default.nix b/pkgs/development/python-modules/astral/default.nix
index 84ce4d1d5b7..6c4afec6352 100644
--- a/pkgs/development/python-modules/astral/default.nix
+++ b/pkgs/development/python-modules/astral/default.nix
@@ -1,15 +1,16 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytz, requests, pytest }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy27, pytz, requests, pytest, freezegun }:
 
 buildPythonPackage rec {
   pname = "astral";
-  version = "1.10.1";
+  version = "2.2";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d2a67243c4503131c856cafb1b1276de52a86e5b8a1d507b7e08bee51cb67bf1";
+    sha256 = "e41d9967d5c48be421346552f0f4dedad43ff39a83574f5ff2ad32b6627b6fbe";
   };
 
-  propagatedBuildInputs = [ pytz requests ];
+  propagatedBuildInputs = [ pytz requests freezegun ];
 
   checkInputs = [ pytest ];
   checkPhase = ''
diff --git a/pkgs/development/python-modules/astroid/default.nix b/pkgs/development/python-modules/astroid/default.nix
index 2084065c8d5..927e6a6d5a6 100644
--- a/pkgs/development/python-modules/astroid/default.nix
+++ b/pkgs/development/python-modules/astroid/default.nix
@@ -5,15 +5,19 @@
 
 buildPythonPackage rec {
   pname = "astroid";
-  version = "2.3.3";
+  version = "2.4.2";
 
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "71ea07f44df9568a75d0f354c49143a4575d90645e9fead6dfb52c26a85ed13a";
+    sha256 = "2f4078c2a41bf377eea06d71c9d2ba4eb8f6b1af2135bec27bbbb7d8f12bb703";
   };
 
+  postPatch = ''
+    substituteInPlace astroid/__pkginfo__.py --replace "lazy_object_proxy==1.4.*" "lazy_object_proxy"
+  '';
+
   # From astroid/__pkginfo__.py
   propagatedBuildInputs = [ lazy-object-proxy six wrapt ]
     ++ lib.optional (pythonOlder "3.5") typing
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..794e0fa5242 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 = "0gw665737pr9b0lmmxlnwgmw1sbwv00xp8jdxws1xxi6nc72mjsk";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/asyncssh/default.nix b/pkgs/development/python-modules/asyncssh/default.nix
index ab647935364..ad7612259df 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.1.0";
+  version = "2.2.1";
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19d0b4c65115d09b42ed21c748884157babfb3055a6e130ea349dfdcbcef3380";
+    sha256 = "baf9f1aa397a104a0c3923bae927796ca57063ce62330767131b418cd833338e";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/asynctest/default.nix b/pkgs/development/python-modules/asynctest/default.nix
index d08f4137ba4..dda3d35f6ad 100644
--- a/pkgs/development/python-modules/asynctest/default.nix
+++ b/pkgs/development/python-modules/asynctest/default.nix
@@ -17,6 +17,9 @@ buildPythonPackage rec {
       --replace "test_events_watched_outside_test_are_ignored" "xtest_events_watched_outside_test_are_ignored"
   '';
 
+  # https://github.com/Martiusweb/asynctest/issues/132
+  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 e58fa446f81..57e54d24ae3 100755
--- a/pkgs/development/python-modules/atlassian-python-api/default.nix
+++ b/pkgs/development/python-modules/atlassian-python-api/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "atlassian-python-api";
-  version = "1.15.6";
+  version = "1.16.0";
   
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0nn3g2sb0pqfacsqcw94n8v9jbn4ip0pvhvczasfvks2w9q9sij7";
+    sha256 = "1sp036192vdl5nqifcswg2j838vf8i9k8bfd0w4qh1vz4f0pjz7y";
   };
   
   checkInputs = [ pytestrunner pytest ];
diff --git a/pkgs/development/python-modules/atom/default.nix b/pkgs/development/python-modules/atom/default.nix
index 465681a71f3..60fa12d4a66 100644
--- a/pkgs/development/python-modules/atom/default.nix
+++ b/pkgs/development/python-modules/atom/default.nix
@@ -1,14 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, future }:
+{ lib, buildPythonPackage, fetchPypi, future, cppy }:
 
 buildPythonPackage rec {
   pname = "atom";
-  version = "0.4.3";
+  version = "0.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ce96fb50326a3bfa084463dbde1cf2e02c92735e5bc324d836355c25af87e0ae";
+    sha256 = "99b4c94b833aafffc0b34ab8f98b697f575be3230bff38ebf863d065403333e0";
   };
 
+  buildInputs = [ cppy ];
   propagatedBuildInputs = [ future ];
 
   # Tests not released to pypi
diff --git a/pkgs/development/python-modules/atomicwrites/default.nix b/pkgs/development/python-modules/atomicwrites/default.nix
index 019dcbe9bed..03401f226a2 100644
--- a/pkgs/development/python-modules/atomicwrites/default.nix
+++ b/pkgs/development/python-modules/atomicwrites/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "atomicwrites";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6";
+    sha256 = "ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a";
   };
 
   # Tests depend on pytest but atomicwrites is a dependency of pytest
diff --git a/pkgs/development/python-modules/audio-metadata/default.nix b/pkgs/development/python-modules/audio-metadata/default.nix
index d4f97dd4ce5..1adee4403b9 100644
--- a/pkgs/development/python-modules/audio-metadata/default.nix
+++ b/pkgs/development/python-modules/audio-metadata/default.nix
@@ -9,17 +9,18 @@
 
 buildPythonPackage rec {
   pname = "audio-metadata";
-  version = "0.9.0";
+  version = "0.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1v7ww3csyxrhnpvpynla64hfn1wp37vbw7srh9343n4wc02mh65l";
+    sha256 = "9e7ba79d49cf048a911d5f7d55bb2715c10be5c127fe5db0987c5fe1aa7335eb";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
       --replace "bidict>=0.17,<0.18" "bidict" \
-      --replace "more-itertools>=4.0,<8.0" "more-itertools"
+      --replace "more-itertools>=4.0,<8.0" "more-itertools" \
+      --replace "pendulum>=2.0,<=3.0,!=2.0.5,!=2.1.0" "pendulum>=2.0,<=3.0"
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/auth0-python/default.nix b/pkgs/development/python-modules/auth0-python/default.nix
index 7e2b09cca68..fed673453d1 100644
--- a/pkgs/development/python-modules/auth0-python/default.nix
+++ b/pkgs/development/python-modules/auth0-python/default.nix
@@ -3,15 +3,16 @@
 , fetchPypi
 , requests
 , mock
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "auth0-python";
-  version = "3.9.1";
+  version = "3.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c2fdc3ff230638a2776d2b3761e787ca93dc33a26f841504fc260f947256f453";
+    sha256 = "e02525fd60d4b1e7e08bdc539b536db635da28ee25cc882412be4296802d0281";
   };
 
   propagatedBuildInputs = [
@@ -20,6 +21,17 @@ buildPythonPackage rec {
 
   checkInputs = [
     mock
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    # jwt package is not available in nixpkgs
+    "--ignore=auth0/v3/test/authentication/test_token_verifier.py"
+  ];
+
+  # tries to ping websites (e.g. google.com)
+  disabledTests = [
+    "can_timeout"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/authheaders/default.nix b/pkgs/development/python-modules/authheaders/default.nix
index a2f2742ee88..a1d049ebb15 100644
--- a/pkgs/development/python-modules/authheaders/default.nix
+++ b/pkgs/development/python-modules/authheaders/default.nix
@@ -1,17 +1,17 @@
 { buildPythonPackage, fetchPypi, isPy27, lib
-, authres, dnspython, dkimpy, ipaddress, publicsuffix
+, authres, dnspython, dkimpy, ipaddress, publicsuffix2
 }:
 
 buildPythonPackage rec {
   pname = "authheaders";
-  version = "0.12.1";
+  version = "0.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0hf1p6ws3jma608pmcb5qsl58xg33wz2s51qqzi9zix0llcnyc97";
+    sha256 = "935726b784cc636cbcfed2c977f1a6887dc60056806da4eff60db932c5896692";
   };
 
-  propagatedBuildInputs = [ authres dnspython dkimpy publicsuffix ]
+  propagatedBuildInputs = [ authres dnspython dkimpy publicsuffix2 ]
                           ++ lib.optional isPy27 ipaddress;
 
   meta = {
diff --git a/pkgs/development/python-modules/authlib/default.nix b/pkgs/development/python-modules/authlib/default.nix
index cbbf64524f5..bf82d106598 100644
--- a/pkgs/development/python-modules/authlib/default.nix
+++ b/pkgs/development/python-modules/authlib/default.nix
@@ -8,14 +8,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.14.1";
+  version = "0.14.3";
   pname = "authlib";
 
   src = fetchFromGitHub {
     owner = "lepture";
     repo = "authlib";
     rev = "v${version}";
-    sha256 = "0z56r5s8z8pfp0p8zrf1chgzan4q25zg0awgc7bgkvkwgxbhzx4m";
+    sha256 = "0ph97j94i40jj7nc5ya8pfq0ccx023zbqpcs5hrxmib53g64k5xy";
   };
 
   propagatedBuildInputs = [ cryptography requests ];
diff --git a/pkgs/development/python-modules/autobahn/default.nix b/pkgs/development/python-modules/autobahn/default.nix
index c3d95f8915c..4ad97ebc93f 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 = "19.11.1";
+  version = "20.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "201b9879b49c6e259d4126dbafe9e3c73807de0c242d50065fbebc62c6ccb181";
+    sha256 = "c6fe745d52ba9f9eecf791cd31f558df42aebfc4f9ee558a8f1d18c707e1ae1f";
   };
 
   propagatedBuildInputs = [ six txaio twisted zope_interface cffi cryptography pynacl ] ++
diff --git a/pkgs/development/python-modules/automat/default.nix b/pkgs/development/python-modules/automat/default.nix
index 8a9f85b54fd..78a3259a287 100644
--- a/pkgs/development/python-modules/automat/default.nix
+++ b/pkgs/development/python-modules/automat/default.nix
@@ -2,12 +2,12 @@
   m2r, setuptools_scm, six, attrs }:
 
 buildPythonPackage rec {
-  version = "0.8.0";
+  version = "20.2.0";
   pname = "Automat";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "269a09dfb063a3b078983f4976d83f0a0d3e6e7aaf8e27d8df1095e09dc4a484";
+    sha256 = "7979803c74610e11ef0c0d68a2942b152df52da55336e0c9d58daf1831cbdf33";
   };
 
   buildInputs = [ m2r setuptools_scm ];
diff --git a/pkgs/development/python-modules/autopep8/default.nix b/pkgs/development/python-modules/autopep8/default.nix
index 715e4da8f44..1b40aa9c140 100644
--- a/pkgs/development/python-modules/autopep8/default.nix
+++ b/pkgs/development/python-modules/autopep8/default.nix
@@ -1,15 +1,17 @@
-{ stdenv, fetchPypi, buildPythonPackage, pycodestyle, glibcLocales }:
+{ stdenv, fetchPypi, buildPythonPackage, pycodestyle, glibcLocales
+, toml
+}:
 
 buildPythonPackage rec {
   pname = "autopep8";
-  version = "1.5.2";
+  version = "1.5.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0m29ndgrcgrzi3y1fsxmdl421x6n4gn02l70hsz8486h8zzdhbqm";
+    sha256 = "d21d3901cb0da6ebd1e83fc9b0dfbde8b46afc2ede4fe32fbda0c7c6118ca094";
   };
 
-  propagatedBuildInputs = [ pycodestyle ];
+  propagatedBuildInputs = [ pycodestyle toml ];
 
   # One test fails:
   # FAIL: test_recursive_should_not_crash_on_unicode_filename (test.test_autopep8.CommandLineTests)
diff --git a/pkgs/development/python-modules/av/default.nix b/pkgs/development/python-modules/av/default.nix
index 7ccc569a87e..594ac42018b 100644
--- a/pkgs/development/python-modules/av/default.nix
+++ b/pkgs/development/python-modules/av/default.nix
@@ -1,24 +1,26 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , numpy
-, ffmpeg_4
+, ffmpeg
 , pkgconfig
 }:
 
 buildPythonPackage rec {
   pname = "av";
-  version = "7.0.1";
+  version = "8.0.2";
+  disabled = isPy27; # setup.py no longer compatible
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10qav9dryly9h6n8vypx5m334v2lh88fsvgfg0zjy4bxjslay4zv";
+    sha256 = "a3bba6bf68766b8a1a057f28869c7078cf0a1ec3207c7788c2ce8fe6f6bd8267";
   };
 
   checkInputs = [ numpy ];
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ ffmpeg_4 ];
+  buildInputs = [ ffmpeg ];
 
   # Tests require downloading files from internet
   doCheck = false;
diff --git a/pkgs/development/python-modules/avro-python3/default.nix b/pkgs/development/python-modules/avro-python3/default.nix
index 3efb1dd0069..1ec3d296222 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.1";
+  version = "1.9.2.1";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "daab2cea71b942a1eb57d700d4a729e9d6cd93284d4dd4d65a378b9f958aa0d2";
+    sha256 = "ca1e77a3da5ac98e8833588f71fb2e170b38e34787ee0e04920de0e9470b7d32";
   };
 
   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 d4d14ce9744..fbda87404f6 100644
--- a/pkgs/development/python-modules/avro/default.nix
+++ b/pkgs/development/python-modules/avro/default.nix
@@ -1,17 +1,30 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k }:
+{ stdenv, buildPythonPackage, isPy3k, fetchPypi, pycodestyle, isort }:
 
 buildPythonPackage rec {
   pname = "avro";
-  version = "1.9.1";
-  disabled = isPy3k;
+  version = "1.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16pvgdv5pqx4zgjj0a4v5fz4brfjcrfx72mcmyvb2xqqp7q6ph4z";
+    sha256 = "00rg1nn9szwm0p1lcda0w3iyqy9mx2y9zv0hdwaz6k0bsagziydv";
   };
 
+  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 bd933205f6a..bff57f554d7 100644
--- a/pkgs/development/python-modules/awkward/default.nix
+++ b/pkgs/development/python-modules/awkward/default.nix
@@ -3,7 +3,6 @@
 , fetchPypi
 , numpy
 , pandas
-, pyarrow
 , pytestrunner
 , pytest
 , h5py
@@ -11,15 +10,15 @@
 
 buildPythonPackage rec {
   pname = "awkward";
-  version = "0.12.20";
+  version = "0.12.22";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13494pnzz68qfnx17975h4c5l15idgg7wxl9r86q7jp5s1pphvb3";
+    sha256 = "185d93588c4cc150b2426b2764cdf2370f1807c607c1b4b057c66b2a08720c43";
   };
 
   nativeBuildInputs = [ pytestrunner ];
-  checkInputs = [ pandas pyarrow pytest h5py ];
+  checkInputs = [ pandas pytest h5py ];
   propagatedBuildInputs = [ numpy ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/awkward1/default.nix b/pkgs/development/python-modules/awkward1/default.nix
index ce0d5e747c0..1e4958f37e6 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.12";
+  version = "0.2.33";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a87d89c218151d840c032be4cba6801801683ea00e91dc17fd7bc527ad8eb09b";
+    sha256 = "bf3de210d0a88fb14a97c296f54ed2d5b686a785bb5fd7a31277f22b8daa9513";
   };
 
   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 13bc3cdbbbb..a9b8834be26 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.21.0";
+  version = "1.24.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0diyqiwas9fhkj7p5hm08lvkd5h9yn9zqilwww2av04mclfk82ij";
+    sha256 = "f6b67545a87ec1e276bd5bf06abcc84332c4eb9dfa2fd415113e07a908fe55bb";
   };
 
   # 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 6e12a1bcb31..607118564c5 100644
--- a/pkgs/development/python-modules/aws-xray-sdk/default.nix
+++ b/pkgs/development/python-modules/aws-xray-sdk/default.nix
@@ -1,6 +1,8 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
+, importlib-metadata
 , jsonpickle
 , wrapt
 , requests
@@ -10,15 +12,17 @@
 
 buildPythonPackage rec {
   pname = "aws-xray-sdk";
-  version = "2.4.3";
+  version = "2.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "263a38f3920d9dc625e3acb92e6f6d300f4250b70f538bd009ce6e485676ab74";
+    sha256 = "8dfa785305fc8dc720d8d4c2ec6a58e85e467ddc3a53b1506a2ed8b5801c8fc7";
   };
 
   propagatedBuildInputs = [
     jsonpickle wrapt requests future botocore
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
   ];
 
   meta = {
diff --git a/pkgs/development/python-modules/azure-core/default.nix b/pkgs/development/python-modules/azure-core/default.nix
index dc31669f718..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.5.0";
+  version = "1.8.0";
   pname = "azure-core";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "181iyigm11y56lf1kwv7pcdyppavpwjb1b6k3qp3jnbqaypad9mg";
+    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..e5879bd4e8c 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.5.0";
   pname = "azure-mgmt-appconfiguration";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1dn5585nsizszjivx6lp677ka0mrg0ayqgag4yzfdz9ml8mj1xl5";
+    sha256 = "211527511d7616a383cc196956eaf2b7ee016f2367d367924b3715f2a41106da";
     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-batch/default.nix b/pkgs/development/python-modules/azure-mgmt-batch/default.nix
index 91936af014f..5a1b7600ecf 100644
--- a/pkgs/development/python-modules/azure-mgmt-batch/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-batch/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-batch";
-  version = "7.0.0";
+  version = "9.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "18dwgbwk1kc0pdqa85hbsm9312l50rf8ymb60fia1c9rni9bdi8n";
+    sha256 = "03417eecfa1fac906e674cb1cb43ed7da27a96277277b091d7c389ba39f6c3fe";
   };
 
   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-cognitiveservices/default.nix b/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
index c1681476098..98ca58e4340 100644
--- a/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cognitiveservices";
-  version = "6.1.0";
+  version = "6.2.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "e0c4bbe656ababb942d708ee04f3f3305a2023e322a8b3fb1d8503aa682f59c4";
+    sha256 = "93503507ba87c18fe24cd3dfcd54e6e69a4daf7636f38b7537e09cee9a4c13ce";
   };
 
   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..8e186da6d88 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.2.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "7e4459679bdba4aa67a4b5848e63d94e965a304a7418ef7607eb7a9ce295d886";
+    sha256 = "e7904b60c42a153b64b1604f3c698602686b38787bebdaed6e808cd43b6e5967";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-core/default.nix b/pkgs/development/python-modules/azure-mgmt-core/default.nix
index 54b48427475..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.0.0";
+  version = "1.2.0";
   pname = "azure-mgmt-core";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0pm565v05480f672l0n8z2sg6zk6iqyi91n0dhscibhdl54sy3si";
+    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 66c4e52e23b..ecffc5b2a21 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.13.0";
+  version = "0.16.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "e83d21462f9d5b02e90f5590c4247ab73e0ff85fc4ac1fba32be119a15b10c98";
+    sha256 = "308aeabdff61bf35ceb7a3d6dd19f1ab69a041bd92c85ee24d98a624968697f3";
   };
 
   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 c780d07c7ce..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.0.0";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "05c6isg13dslds94kv28v6navxj4bp4c5lsd9df0g3ndsxvpdrxp";
+    sha256 = "1qisnwn0gqfsa3h5x0fdbsgdjwn92hdbg71gdijrja0kryb328k5";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix b/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix
index c23ebfc2ce9..fd0c527344c 100644
--- a/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-hanaonazure";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "cc4058174e371a0b68b305cd5a082fcca47f3446dd9aefd9ada72da4bd637da9";
+    sha256 = "7f8b912ca62431c1697b4914c12cc5f8123e60ee6c65d123591f937744d204e0";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix b/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
index 4b8aef08f1c..ded4531b48a 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.4.0";
+  version = "1.6.0";
   pname = "azure-mgmt-hdinsight";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zmmfj7z1zrayjqwqybcn3bwm47d2ngyxm1g6fh2iw5c2f9czycv";
+    sha256 = "b1d06279307c41da5e0a5c9722aa6b36ce3b2c212534a54767210639451b9800";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-imagebuilder/default.nix b/pkgs/development/python-modules/azure-mgmt-imagebuilder/default.nix
index f5b04c36b0d..404caf4ebf5 100644
--- a/pkgs/development/python-modules/azure-mgmt-imagebuilder/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-imagebuilder/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.3.0";
+  version = "0.4.0";
   pname = "azure-mgmt-imagebuilder";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0r4sxr3pbcci5qif1ip1lrix3cryj0b3asqch3zds4q705jiakc4";
+    sha256 = "4c9291bf16b40b043637e5e4f15650f71418ac237393e62219cab478a7951733";
     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-iothub/default.nix b/pkgs/development/python-modules/azure-mgmt-iothub/default.nix
index 57ec64f3d56..1e13919f340 100644
--- a/pkgs/development/python-modules/azure-mgmt-iothub/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-iothub/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-iothub";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "f6fbb87d9bf29ce325543c9a3a125fbe45f4797f3a7f260c6c21ca60dc3f0885";
+    sha256 = "da20ee2b9b9a2c2f89be9037c3ee5421152e7f6d718eafbf50a91dbf0a07ffa0";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-kusto/default.nix b/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
index 08a9b6b507e..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.7.0";
+  version = "0.9.0";
   pname = "azure-mgmt-kusto";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "40f8e62db145d31731018b83baf2d1a78b585514c373dd3c095f1f6835d17d23";
+    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 eb4772ce543..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.5.0";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "16f4c4f676ea718b7e1c59bd9a516fcfc796f1aff844b183a7ce9afe69fb214d";
+    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 82aa1d6fa01..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.1.0";
+  version = "11.0.0";
   pname = "azure-mgmt-network";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "e5ac0ee14b71ab57035c45bef15d3698b0b6026ecafb8320a7c704eb3f6fba3a";
+    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-resource/default.nix b/pkgs/development/python-modules/azure-mgmt-resource/default.nix
index 81f8e15953d..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 = "9.0.0";
+  version = "10.2.0";
   pname = "azure-mgmt-resource";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "00bmdbr7hdwb3ibr9sfbgbmmr6626qlz19cdi84d87rcisczf4nw";
+    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 5a9d8849f8d..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.3.0";
+  version = "0.4.1";
   pname = "azure-mgmt-security";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0z766424783a6y5dp5ybxssb0bfzqb8kpa6zra8ccnbfg4fn478v";
+    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-signalr/default.nix b/pkgs/development/python-modules/azure-mgmt-signalr/default.nix
index 2ccb773c105..8192064626e 100644
--- a/pkgs/development/python-modules/azure-mgmt-signalr/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-signalr/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-signalr";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "08b2i6wz9n13h77ahay1hvmg8abk2vvs7kn4y7xip9gi6ij8fv0a";
+    sha256 = "6503ddda9d6f4b634dfeb8eb4bcd14ede5e0900585f6c83bf9010cf82215c126";
   };
 
   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 e786731dcd0..8e101ef051a 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 = "9.0.0";
+  version = "11.1.0";
   pname = "azure-mgmt-storage";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "198r51av2rd1mr3q9j8jibhd14w0v8k59ipc3czsm4g1n44adgkl";
+    sha256 = "ef23587c1b6dc0866ebf0e91e83ba05d7f7e4fea7951b704781b9cd9f5f27f1c";
   };
 
   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-web/default.nix b/pkgs/development/python-modules/azure-mgmt-web/default.nix
index 48f7296d999..727311cc09a 100644
--- a/pkgs/development/python-modules/azure-mgmt-web/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-web/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-web";
-  version = "0.46.0";
+  version = "0.47.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "e1988aa2b91e6b5aa84e48ac02d5546945bdc2d8331744869e923ba15066c4a6";
+    sha256 = "1s6c477q2kpyiqkisw6l70ydyjkv3ay6zjjj4jl4ipv05a7356kq";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-multiapi-storage/default.nix b/pkgs/development/python-modules/azure-multiapi-storage/default.nix
index 677b8bbeb12..2d1ff4c2916 100644
--- a/pkgs/development/python-modules/azure-multiapi-storage/default.nix
+++ b/pkgs/development/python-modules/azure-multiapi-storage/default.nix
@@ -1,20 +1,37 @@
 { lib, python, buildPythonPackage, fetchPypi, isPy27
+, fetchpatch
 , azure-common
+, azure-core
 , msrest
 , msrestazure
+, requests
 }:
 
 buildPythonPackage rec {
-  version = "0.2.4";
+  version = "0.3.5";
   pname = "azure-multiapi-storage";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zqapc4dx6qd9bcim5fjykk3n1j84p85nwqyb876nb7qmqx9spig";
+    sha256 = "71c238c785786a159b3ffd587a5e7fa1d9a517b66b592ae277fed73a9fbfa2b0";
   };
 
-  propagatedBuildInputs = [ azure-common msrest msrestazure ];
+  propagatedBuildInputs = [
+    azure-common
+    azure-core
+    msrest
+    msrestazure
+    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-servicebus/default.nix b/pkgs/development/python-modules/azure-servicebus/default.nix
index 02460b27952..2a3552d1fb5 100644
--- a/pkgs/development/python-modules/azure-servicebus/default.nix
+++ b/pkgs/development/python-modules/azure-servicebus/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-servicebus";
-  version = "0.50.2";
+  version = "0.50.3";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "836649d510aa2b7467bc87d8dab18f2db917b63aa2fe8f3e5d0bb44011e465f5";
+    sha256 = "2b1e60c81fcf5b6a5bb3ceddb27f24543f479912e39a4706a390a16d8c0a71f4";
   };
 
   buildInputs = [
@@ -29,6 +29,9 @@ buildPythonPackage rec {
   # has no tests
   doCheck = false;
 
+  # python2 will fail due to pep 420
+  pythonImportsCheck = lib.optionals isPy3k [ "azure.servicebus" ];
+
   meta = with lib; {
     description = "This is the Microsoft Azure Service Bus Client Library";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
diff --git a/pkgs/development/python-modules/azure-servicefabric/default.nix b/pkgs/development/python-modules/azure-servicefabric/default.nix
index 19420b0526d..ad89f23c3c2 100644
--- a/pkgs/development/python-modules/azure-servicefabric/default.nix
+++ b/pkgs/development/python-modules/azure-servicefabric/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "azure-servicefabric";
-  version = "7.0.0.0";
+  version = "7.1.0.45";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "27712658fed7f5db6965d1035bbc0f3b16964fc88d6f3ad3e86cf4fae2b01bb9";
+    sha256 = "8dd0eb419ca62f2436c31982f6d236868f15f65bb062c4e5a98e50b16298dcda";
   };
 
   propagatedBuildInputs = [
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/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 8f26a3340a7..42f848aa846 100644
--- a/pkgs/development/python-modules/base58/default.nix
+++ b/pkgs/development/python-modules/base58/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, fetchPypi, buildPythonPackage, pytest, pyhamcrest }:
+{ stdenv, fetchPypi, buildPythonPackage, isPy27, pytest, pyhamcrest }:
 
 buildPythonPackage rec {
   pname = "base58";
-  version = "1.0.3";
+  version = "2.0.1";
+  disabled = isPy27; # python 2 abandoned upstream
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9a793c599979c497800eb414c852b80866f28daaed5494703fc129592cc83e60";
+    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 63aa7883e3a..bfc52c99ef5 100644
--- a/pkgs/development/python-modules/batchgenerators/default.nix
+++ b/pkgs/development/python-modules/batchgenerators/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , isPy27
 , fetchFromGitHub
+, fetchpatch
 , pytest
 , unittest2
 , future
@@ -27,6 +28,13 @@ buildPythonPackage rec {
     
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/MIC-DKFZ/batchgenerators/pull/59.patch";
+      sha256 = "171b3dm40yn0wi91m9s2nq3j565s1w39jpdf1mvc03rn75i8vdp0";
+    })
+  ];
+
   propagatedBuildInputs = [
     future numpy pillow scipy scikitlearn scikitimage threadpoolctl
   ];
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/beancount/default.nix b/pkgs/development/python-modules/beancount/default.nix
index 045dd14da0d..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.2.3";
+  version = "2.3.1";
   pname = "beancount";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0pcfl2rx2ng06i4f9izdpnlnb1k0rdzsckbzzn4cn4ixfzyssm0m";
+    sha256 = "e12abfe0a6b38ce3525adb471ca5b8e3fa4056ff712108de48da53405c518a11";
   };
 
   # Tests require files not included in the PyPI archive.
diff --git a/pkgs/development/python-modules/beancount_docverif/default.nix b/pkgs/development/python-modules/beancount_docverif/default.nix
new file mode 100644
index 00000000000..0067716b626
--- /dev/null
+++ b/pkgs/development/python-modules/beancount_docverif/default.nix
@@ -0,0 +1,46 @@
+{ lib, buildPythonPackage, fetchPypi, isPy3k
+, beancount
+, pytest, sh
+}:
+
+buildPythonPackage rec {
+  version = "1.0.0";
+  pname = "beancount_docverif";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1kjc0axrxpvm828lqq5m2ikq0ls8xksbmm7312zw867gdx56x5aj";
+  };
+
+  propagatedBuildInputs = [
+    beancount
+  ];
+
+  checkInputs = [
+    pytest
+    sh
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/siriobalmelli/beancount_docverif";
+    description = "Document verification plugin for Beancount";
+    longDescription = ''
+        Docverif is the "Document Verification" plugin for beancount, fulfilling the following functions:
+
+        - Require that every transaction touching an account have an accompanying document on disk.
+        - Explictly declare the name of a document accompanying a transaction.
+        - Explicitly declare that a transaction is expected not to have an accompanying document.
+        - Look for an "implicit" PDF document matching transaction data.
+        - Associate (and require) a document with any type of entry, including open entries themselves.
+        - Guarantee integrity: verify that every document declared does in fact exist on disk.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ siriobalmelli ];
+  };
+}
diff --git a/pkgs/development/python-modules/beautifulsoup4/default.nix b/pkgs/development/python-modules/beautifulsoup4/default.nix
index fc07c4ae96e..f804ea9b282 100644
--- a/pkgs/development/python-modules/beautifulsoup4/default.nix
+++ b/pkgs/development/python-modules/beautifulsoup4/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "beautifulsoup4";
-  version = "4.8.2";
+  version = "4.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05fd825eb01c290877657a56df4c6e4c311b3965bda790c613a3d6fb01a5462a";
+    sha256 = "73cc4d115b96f79c7d77c1c7f7a0a8d4c57860d1041df407dd1aae7f07a77fd7";
   };
 
   checkInputs = [ pytest ];
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..32ac3e8bd19
--- /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.17.0";
+
+in buildPythonPackage rec {
+  inherit pname version;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "03gckhrxji8lgjsi6xr8yql405kfanii5hjrmakk1328bmq9g5f6";
+  };
+
+  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 7949675d651..cb6dbcf0d9c 100644
--- a/pkgs/development/python-modules/bespon/default.nix
+++ b/pkgs/development/python-modules/bespon/default.nix
@@ -4,12 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.3.0";
+  version = "0.4.0";
   pname = "BespON";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0698vx1kh8c84f5qfhl4grdlyn1lljvdih8yczdz0pql8wkn8i7v";
+    sha256 = "4acfa3f918d416654beccd4db69290f498edb78bf39941287dcbc068b9a7ce2f";
   };
 
   propagatedBuildInputs = [ ];
diff --git a/pkgs/development/python-modules/bidict/default.nix b/pkgs/development/python-modules/bidict/default.nix
index e29263a6b4f..ec0440b9e44 100644
--- a/pkgs/development/python-modules/bidict/default.nix
+++ b/pkgs/development/python-modules/bidict/default.nix
@@ -23,6 +23,12 @@ buildPythonPackage rec {
   nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ sphinx ];
 
+  # this can be removed >0.19.0
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "setuptools_scm < 4" "setuptools_scm"
+  '';
+
   checkInputs = [
     hypothesis
     py
diff --git a/pkgs/development/python-modules/bids-validator/default.nix b/pkgs/development/python-modules/bids-validator/default.nix
index 6b7bad58bc4..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.3.12";
+  version = "1.5.4";
   pname = "bids-validator";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7a244b09adfd083292ed1f7ff335676a1e2effbbffe62b02a4abaf377d33ef86";
+    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 e8a20b6df47..0970cc18249 100644
--- a/pkgs/development/python-modules/binwalk/default.nix
+++ b/pkgs/development/python-modules/binwalk/default.nix
@@ -7,14 +7,18 @@
 , gzip
 , bzip2
 , 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 {
@@ -28,8 +32,8 @@ buildPythonPackage {
     sha256 = "1bxgj569fzwv6jhcbl864nmlsi9x1k1r20aywjxc8b9b1zgqrlvc";
   };
 
-  propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar 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/biopython/default.nix b/pkgs/development/python-modules/biopython/default.nix
index 76de4c39054..f96b8447e8a 100644
--- a/pkgs/development/python-modules/biopython/default.nix
+++ b/pkgs/development/python-modules/biopython/default.nix
@@ -2,17 +2,20 @@
 , buildPythonPackage
 , fetchPypi
 , numpy
+, isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "biopython";
-  version = "1.76";
+  version = "1.77";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wlch9xpa0fpgjzyxi6jsfca6iakaq9a05927xg8vqnmvaccnwrq";
+    sha256 = "fb1936e9ca9e7af8de1050e84375f23328e04b801063edf0ad73733494d8ec42";
   };
 
+  disabled = !isPy3k;
+
   propagatedBuildInputs = [ numpy ];
   # Checks try to write to $HOME, which does not work with nix
   doCheck = false;
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..ff4fae389cd
--- /dev/null
+++ b/pkgs/development/python-modules/bip_utils/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, ecdsa
+, pysha3
+}:
+
+buildPythonPackage rec {
+  pname = "bip_utils";
+  version = "1.0.5";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "e8397a315c2f656ccf37ff1c43f5e0d496a10ea692c614fdf9bae1a3d5de3558";
+  };
+
+  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 06329c8ab90..c6a82d8ec42 100644
--- a/pkgs/development/python-modules/bitarray/default.nix
+++ b/pkgs/development/python-modules/bitarray/default.nix
@@ -1,17 +1,18 @@
 { lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
-  version = "1.2.1";
   pname = "bitarray";
+  version = "1.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1kxrlxfj9nrx512sfwifwl9z4v6ky3qschl0zmk3s3dvc3s7bmif";
+    sha256 = "45bba08bc142781ec7e18a847735219390808f9b6279c356252edddaee1f5fcd";
   };
 
   meta = with lib; {
     description = "Efficient arrays of booleans";
     homepage = "https://github.com/ilanschnell/bitarray";
+    changelog = "https://github.com/ilanschnell/bitarray/blob/master/CHANGE_LOG";
     license = licenses.psfl;
     maintainers = [ maintainers.bhipple ];
   };
diff --git a/pkgs/development/python-modules/bitcoinlib/default.nix b/pkgs/development/python-modules/bitcoinlib/default.nix
index dd85789c59e..71b032a34e4 100644
--- a/pkgs/development/python-modules/bitcoinlib/default.nix
+++ b/pkgs/development/python-modules/bitcoinlib/default.nix
@@ -1,15 +1,17 @@
-{ stdenv, lib, buildPythonPackage, fetchFromGitHub, openssl }:
+{ stdenv, lib, buildPythonPackage, isPy3k, fetchFromGitHub, openssl }:
 
 let ext = if stdenv.isDarwin then "dylib" else "so";
 in buildPythonPackage rec {
   pname = "bitcoinlib";
-  version = "0.9.0";
+  version = "0.11.0";
+
+  disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner  = "petertodd";
-    rev    = "7a8a47ec6b722339de1d0a8144e55b400216f90f";
     repo   = "python-bitcoinlib";
-    sha256 = "1s1jm2nid7ab7yiwlp1n2v3was9i4q76xmm07wvzpd2zvn5zb91z";
+    rev    = "python-${pname}-v${version}";
+    sha256 = "0pwypd966zzivb37fvg4l6yr7ihplqnr1jwz9zm3biip7x89bdzm";
   };
 
   postPatch = ''
@@ -21,7 +23,7 @@ in buildPythonPackage rec {
   meta = {
     homepage = src.meta.homepage;
     description = "Easy interface to the Bitcoin data structures and protocol";
-    license = with lib.licenses; [ gpl3 ];
+    license = with lib.licenses; [ lgpl3 ];
     maintainers = with lib.maintainers; [ jb55 ];
   };
 }
diff --git a/pkgs/development/python-modules/bitstruct/default.nix b/pkgs/development/python-modules/bitstruct/default.nix
index aff3f70cb88..6134d926226 100644
--- a/pkgs/development/python-modules/bitstruct/default.nix
+++ b/pkgs/development/python-modules/bitstruct/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "bitstruct";
-  version = "8.10.0";
+  version = "8.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0dncll29a0lx8hn1xlhr32abkvj1rh8xa6gc0aas8wnqzh7bvqqm";
+    sha256 = "0p9d5242pkzag7ac5b5zdjyfqwxvj2jisyjghp6yhjbbwz1z44rb";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/blaze/default.nix b/pkgs/development/python-modules/blaze/default.nix
deleted file mode 100644
index 0707c431f1b..00000000000
--- a/pkgs/development/python-modules/blaze/default.nix
+++ /dev/null
@@ -1,71 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, contextlib2
-, cytoolz
-, dask
-, datashape
-, flask
-, flask-cors
-, h5py
-, multipledispatch
-, numba
-, numpy
-, odo
-, pandas
-, psutil
-, pymongo
-, pyyaml
-, requests
-, sqlalchemy
-, tables
-, toolz
-}:
-
-buildPythonPackage rec {
-  pname = "blaze";
-  version = "0.11.3";
-
-  src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
-    rev = version;
-    sha256 = "0w916k125058p40cf7i090f75pgv3cqdb8vwjzqhb9r482fa6717";
-  };
-
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [
-    contextlib2
-    cytoolz
-    dask
-    datashape
-    flask
-    flask-cors
-    h5py
-    multipledispatch
-    numba
-    numpy
-    odo
-    pandas
-    psutil
-    pymongo
-    pyyaml
-    requests
-    sqlalchemy
-    tables
-    toolz
-  ];
-
-  checkPhase = ''
-    rm pytest.ini # Not interested in coverage
-    py.test blaze/tests
-  '';
-
-  meta = {
-    homepage = "https://github.com/ContinuumIO/blaze";
-    description = "Allows Python users a familiar interface to query data living in other data storage systems";
-    license = lib.licenses.bsdOriginal;
-    maintainers = with lib.maintainers; [ fridh ];
-  };
-}
diff --git a/pkgs/development/python-modules/bleach/default.nix b/pkgs/development/python-modules/bleach/default.nix
index d8760d2e128..9b27ae25490 100644
--- a/pkgs/development/python-modules/bleach/default.nix
+++ b/pkgs/development/python-modules/bleach/default.nix
@@ -6,23 +6,20 @@
 , six
 , html5lib
 , setuptools
+, packaging
 }:
 
 buildPythonPackage rec {
   pname = "bleach";
-  version = "3.1.0";
+  version = "3.1.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3fdf7f77adcf649c9911387df51254b813185e32b2c6619f690b593a617e19fa";
+    sha256 = "3c4c520fdb9db59ef139915a5db79f8b51bc2a7257ea0389f30c846883430a4b";
   };
 
   checkInputs = [ pytest pytestrunner ];
-  propagatedBuildInputs = [ six html5lib setuptools ];
-
-  postPatch = ''
-    substituteInPlace setup.py --replace ",<3dev" ""
-  '';
+  propagatedBuildInputs = [ packaging six html5lib setuptools ];
 
   # Disable network tests
   checkPhase = ''
diff --git a/pkgs/development/python-modules/bleak/default.nix b/pkgs/development/python-modules/bleak/default.nix
new file mode 100644
index 00000000000..63f1319f567
--- /dev/null
+++ b/pkgs/development/python-modules/bleak/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, buildPythonPackage, isPy3k, fetchPypi, bluez, txdbus, pytest, pytestcov }:
+
+buildPythonPackage rec {
+  pname = "bleak";
+  version = "0.6.4";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1dc32899d0700c5b5ed9abf642dfee28ac62b1fb5d7be5fa5a6db104dec9a03c";
+  };
+
+  postPatch = ''
+    # bleak checks BlueZ's version with a call to `bluetoothctl -v` twice
+    substituteInPlace bleak/__init__.py \
+      --replace \"bluetoothctl\" \"${bluez}/bin/bluetoothctl\"
+    substituteInPlace bleak/backends/bluezdbus/client.py \
+      --replace \"bluetoothctl\" \"${bluez}/bin/bluetoothctl\"
+  '';
+
+  propagatedBuildInputs = [ txdbus ];
+  checkInputs = [ pytest pytestcov ];
+
+  checkPhase = "AGENT_OS=linux py.test";
+
+  meta = with stdenv.lib; {
+    description = "Bluetooth Low Energy platform Agnostic Klient for Python";
+    homepage = "https://github.com/hbldh/bleak";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ oxzi ];
+  };
+}
diff --git a/pkgs/development/python-modules/blis/default.nix b/pkgs/development/python-modules/blis/default.nix
index 596545093a9..596579f8148 100644
--- a/pkgs/development/python-modules/blis/default.nix
+++ b/pkgs/development/python-modules/blis/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "blis";
-  version = "0.4.1";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d69257d317e86f34a7f230a2fd1f021fd2a1b944137f40d8cdbb23bd334cd0c4";
+    sha256 = "014771a0f753a64ef5610c5b3d4a090b263073bdd59b8ad0d872ce1e06e7315a";
   };
 
   nativeBuildInputs = [
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 f80c8a8c145..270e1617448 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.10";
+  version = "1.1.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ba2e750085d9da4d1567932f3f719974fdc3f02649ee0d5c2f85fce592208723";
+    sha256 = "b87b753fe8d2812c3534be025f85ed97d1a00e8fe49c03fe9ad09d71860d672d";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/bokeh/default.nix b/pkgs/development/python-modules/bokeh/default.nix
index 7157cf14096..850070b1c00 100644
--- a/pkgs/development/python-modules/bokeh/default.nix
+++ b/pkgs/development/python-modules/bokeh/default.nix
@@ -10,6 +10,7 @@
 , nodejs
 , packaging
 , pillow
+#, pytestCheckHook#
 , pytest
 , python
 , python-dateutil
@@ -18,15 +19,25 @@
 , six
 , substituteAll
 , tornado
+, typing-extensions
+, pytz
+, flaky
+, networkx
+, beautifulsoup4
+, requests
+, nbconvert
+, icalendar
+, pandas
+, pythonImportsCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "bokeh";
-  version = "1.4.0";
+  version = "2.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rywd6c6hi0c6yg18j5zxssjd07a5hafcd21xr3q2yvp3aj3h3f6";
+    sha256 = "2dfabf228f55676b88acc464f416e2b13ee06470a8ad1dd3e609bb789425fbad";
   };
 
   patches = [
@@ -37,13 +48,29 @@ buildPythonPackage rec {
     })
   ];
 
-  disabled = isPyPy;
+  disabled = isPyPy || isPy27;
+
+  nativeBuildInputs = [
+    pythonImportsCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "bokeh"
+  ];
 
   checkInputs = [
     mock
     pytest
     pillow
     selenium
+    pytz
+    flaky
+    networkx
+    beautifulsoup4
+    requests
+    nbconvert
+    icalendar
+    pandas
   ];
 
   propagatedBuildInputs = [
@@ -55,14 +82,14 @@ buildPythonPackage rec {
     tornado
     numpy
     packaging
+    typing-extensions
   ]
   ++ lib.optionals ( isPy27 ) [
     futures
   ];
 
-  checkPhase = ''
-    ${python.interpreter} -m unittest discover -s bokeh/tests
-  '';
+  # This test suite is a complete pain. Somehow it can't find its fixtures.
+  doCheck = false;
 
   meta = {
     description = "Statistical and novel interactive HTML plots for Python";
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 d89cf3c615d..e1b9bc16521 100644
--- a/pkgs/development/python-modules/boltztrap2/default.nix
+++ b/pkgs/development/python-modules/boltztrap2/default.nix
@@ -14,13 +14,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "19.11.1";
+  version = "20.2.1";
   pname = "BoltzTraP2";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3927ae782b7329dede2bf85ff5ff328c88f0514ecb592267e28912340f395d3e";
+    sha256 = "1cbf17c5479eec82efd1e8a26202c3320b1986597a08706cafa46bfb80cc3001";
   };
 
   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/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix
index 4bbb98d6a29..59fc878b2c0 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.11.13"; # N.B: if you change this, change botocore too
+  version = "1.14.32"; # N.B: if you change this, change botocore too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09eccb6cd41381c4ff1d626c3a19884b5b1f1424d15a96004d077b532ef393d1";
+    sha256 = "d494a23295b2db9920e85391dc8106dc08d91dd40eeba5c05002771fe10f8853";
   };
 
   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 b7061eb0a1d..e8f0684456f 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.14.13"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.17.32"; # N.B: if you change this, change boto3 and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6478d9207db6dbcb5106fd4db2cdd5194d0b2dc0b73776019d56877ab802fe87";
+    sha256 = "52a80cb721160b687179bd7077e63d775130455a678bf4280fb37c524c2bd67d";
   };
 
   propagatedBuildInputs = [
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   ];
 
   postPatch = ''
-    substituteInPlace setup.py --replace ",<0.16" ""
+    substituteInPlace setup.py --replace "docutils>=0.10,<0.16" "docutils>=0.10"
   '';
 
   checkInputs = [ mock nose ];
diff --git a/pkgs/development/python-modules/bottleneck/default.nix b/pkgs/development/python-modules/bottleneck/default.nix
index f45eea2c5df..f7e7dc7c390 100644
--- a/pkgs/development/python-modules/bottleneck/default.nix
+++ b/pkgs/development/python-modules/bottleneck/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "Bottleneck";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0a2a94zahl3kqld2n9dm58fvazz9s52sa16nd8yn5jv20hvqc5a5";
+    sha256 = "20179f0b66359792ea283b69aa16366419132f3b6cf3adadc0c48e2e8118e573";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/pkgs/development/python-modules/bpython/clipboard-make-which-substitutable.patch b/pkgs/development/python-modules/bpython/clipboard-make-which-substitutable.patch
new file mode 100644
index 00000000000..685d34228a1
--- /dev/null
+++ b/pkgs/development/python-modules/bpython/clipboard-make-which-substitutable.patch
@@ -0,0 +1,27 @@
+From 6f544a5bd43446859754cb80e012af933b843db9 Mon Sep 17 00:00:00 2001
+From: Florian Klink <flokli@flokli.de>
+Date: Wed, 3 Jun 2020 22:05:34 +0200
+Subject: [PATCH] clipboard: make which substitutable
+
+This is used to detect the presence of xclip and other clipboard
+handling tools.
+---
+ bpython/clipboard.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bpython/clipboard.py b/bpython/clipboard.py
+index aee429b..f346429 100644
+--- a/bpython/clipboard.py
++++ b/bpython/clipboard.py
+@@ -58,7 +58,7 @@ class OSXClipboard(object):
+ 
+ def command_exists(command):
+     process = subprocess.Popen(
+-        ["which", command], stderr=subprocess.STDOUT, stdout=subprocess.PIPE
++        ["@which@", command], stderr=subprocess.STDOUT, stdout=subprocess.PIPE
+     )
+     process.communicate()
+ 
+-- 
+2.26.2
+
diff --git a/pkgs/development/python-modules/bpython/default.nix b/pkgs/development/python-modules/bpython/default.nix
index 73ce843cf01..ad7322cbf66 100644
--- a/pkgs/development/python-modules/bpython/default.nix
+++ b/pkgs/development/python-modules/bpython/default.nix
@@ -1,4 +1,14 @@
-{ stdenv, buildPythonPackage, fetchPypi, pygments, greenlet, curtsies, urwid, requests, mock }:
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, curtsies
+, greenlet
+, mock
+, pygments
+, requests
+, substituteAll
+, urwid
+, which }:
 
 buildPythonPackage rec {
   pname = "bpython";
@@ -9,6 +19,11 @@ buildPythonPackage rec {
     sha256 = "1764ikgj24jjq46s50apwkydqvy5a13adb2nbszk8kbci6df0v27";
   };
 
+  patches = [ (substituteAll {
+    src = ./clipboard-make-which-substitutable.patch;
+    which = "${which}/bin/which";
+  })];
+
   propagatedBuildInputs = [ curtsies greenlet pygments requests urwid ];
 
   postInstall = ''
diff --git a/pkgs/development/python-modules/braintree/default.nix b/pkgs/development/python-modules/braintree/default.nix
index f4d09ca5e5e..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.0.0";
+  version = "4.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1m8z0ig40xmgcnmf508nflyy1w4qmff4kqxarrpg7rvsfj4pjsmh";
+    sha256 = "d2b5ead45dbfe98b6099d387c7f12b7d2994ae0efb60679e6bb0929a06027e16";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/branca/default.nix b/pkgs/development/python-modules/branca/default.nix
index 95ba6d537c3..7884ff65f28 100644
--- a/pkgs/development/python-modules/branca/default.nix
+++ b/pkgs/development/python-modules/branca/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "branca";
-  version = "0.3.1";
+  version = "0.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3e762c9bdf40725f3d05ea1fda8fae9b470bfada6474e43a1242c8204a7bb15e";
+    sha256 = "1f7drarwiw8fh17hpq8b3p4mfqgjbh3k045dvpx5z12d3a0zg7ca";
   };
 
   checkInputs = [ pytest selenium ];
diff --git a/pkgs/development/python-modules/bravia-tv/default.nix b/pkgs/development/python-modules/bravia-tv/default.nix
index 2df937f4232..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.1";
+  version = "1.0.6";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "dcnielsen90";
     repo = "python-bravia-tv";
     rev = "v${version}";
-    sha256 = "0jlrin5qw3ny2r961y5divd5xa9giprxhhxdc84rjlq9qdmnsk68";
+    sha256 = "07i1j3y04w2jwylff8w1aimmy4fj1g42wq8iz83an7dl4cz3rap9";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/breathe/default.nix b/pkgs/development/python-modules/breathe/default.nix
index 842c8289f77..d6fd70031aa 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.14.2";
+  version = "4.19.2";
   pname = "breathe";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vj2yylff07hh4l3sh3srhpnrk1q6pxznvwqzgmbplhn8gf5rimb";
+    sha256 = "1mzcggfr61lqkn6sghg842ah9slfjr0ikc776vbx60iqqw9l1gvn";
   };
 
   propagatedBuildInputs = [ docutils six sphinx ];
diff --git a/pkgs/development/python-modules/broadlink/default.nix b/pkgs/development/python-modules/broadlink/default.nix
index 971b56d8b88..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.12.0";
+  version = "0.14.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6448327f8f1cd0c103971a724a3e60629ccb5e8c302e7fdcbde6464e8edef2d8";
+    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/browser-cookie3/default.nix b/pkgs/development/python-modules/browser-cookie3/default.nix
index 909641a9ffd..61e50246a13 100644
--- a/pkgs/development/python-modules/browser-cookie3/default.nix
+++ b/pkgs/development/python-modules/browser-cookie3/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchPypi, buildPythonPackage, isPy3k, keyring, pbkdf2, pyaes}:
 buildPythonPackage rec {
   pname = "browser-cookie3";
-  version = "0.9.1";
+  version = "0.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "42e73e0276083ff162080860cd039138760921a56a0f316775cecee37d444c3f";
+    sha256 = "5d1f825fc9cc6f98fe0ee3f97cdb4947c22d59ac8a11643da5837ebd8c873f05";
   };
 
   disabled = !isPy3k;
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/btrees/default.nix b/pkgs/development/python-modules/btrees/default.nix
index e51d0e75a0b..08f2c1eeb2f 100644
--- a/pkgs/development/python-modules/btrees/default.nix
+++ b/pkgs/development/python-modules/btrees/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "BTrees";
-  version = "4.6.1";
+  version = "4.7.2";
 
   buildInputs = [ transaction ];
   propagatedBuildInputs = [ persistent zope_interface ];
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b3a0e1d073800bf7bcca6cbb97a6b3c9ec485a4ba3ee0b354da1ed076cfb9f30";
+    sha256 = "7ce4a5eb5c135bcb5c06b5bd1ca6fd7fd39d8631306182307ed8bc30d3033846";
   };
 
   meta = with stdenv.lib; {
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 2f0e67683d9..612ab13c193 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.0";
+  version = "3.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17cjh7g8gbr0gb22nzybkw7vq9x5wfa5ln94hhzijbz934bw1f37";
+    sha256 = "8878437aa44ec485cecb255742035b3b98a6c7e7d167a943b5fbe597b2f8f7f9";
   };
 
   propagatedBuildInputs = [ six webob ];
diff --git a/pkgs/development/python-modules/build/default.nix b/pkgs/development/python-modules/build/default.nix
new file mode 100644
index 00000000000..baf583c45e0
--- /dev/null
+++ b/pkgs/development/python-modules/build/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, flit-core
+, toml
+, pep517
+, packaging
+, isPy3k
+, typing
+, pythonOlder
+, importlib-metadata
+}:
+
+buildPythonPackage rec {
+  pname = "build";
+  version = "0.0.3.1";
+
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "757b5542168326b6f1898a1ce1131bb2cf306ee4c7e54e39c815c5be217ff87d";
+  };
+
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  propagatedBuildInputs = [
+    toml
+    pep517
+    packaging
+  ] ++ lib.optionals (!isPy3k) [
+    typing
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = {
+    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 b088480f5de..9a49be777b0 100644
--- a/pkgs/development/python-modules/buildbot/default.nix
+++ b/pkgs/development/python-modules/buildbot/default.nix
@@ -25,11 +25,11 @@ let
 
   package = buildPythonPackage rec {
     pname = "buildbot";
-    version = "2.7.0";
+    version = "2.8.2";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0jj8fh611n7xc3vsfbgpqsllp38cfj3spkr2kz3ara2x7jvh3406";
+      sha256 = "0rdrz2zkd6xaf9kb5l41xmbfzq618sz498w23irshih4c802pdv5";
     };
 
     propagatedBuildInputs = [
@@ -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/buildbot/pkg.nix b/pkgs/development/python-modules/buildbot/pkg.nix
index cb3124ec7e3..4bb8613afea 100644
--- a/pkgs/development/python-modules/buildbot/pkg.nix
+++ b/pkgs/development/python-modules/buildbot/pkg.nix
@@ -1,12 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k }:
+{ lib, buildPythonPackage, fetchPypi, isPy3k, buildbot }:
 
 buildPythonPackage rec {
   pname = "buildbot-pkg";
-  version = "2.7.0";
+  inherit (buildbot) version;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03zb09r8w8dvd9qas7h6gdwlqc7q482ikph6h3708lpnkn72xdkb";
+    sha256 = "1yz3k6dg15q4911x8kjy396dccfgrs50mjz278l09p6zmm71llax";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/buildbot/plugins.nix b/pkgs/development/python-modules/buildbot/plugins.nix
index cd35f14fb37..4c5aa374562 100644
--- a/pkgs/development/python-modules/buildbot/plugins.nix
+++ b/pkgs/development/python-modules/buildbot/plugins.nix
@@ -7,7 +7,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1d8xdk4rq4p3fw03cvz7d1pmpjjbyrnzzjifzv46q88vk7jakgxi";
+      sha256 = "19qwr0h6qavznx8rfjq6zjccyd2y7x4nc8asldvay3b44xfsr385";
     };
 
     # Remove unneccessary circular dependency on buildbot
@@ -34,7 +34,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "03pl75avi6cmmhjvfn0a0b4drn35yv37kvgn04zjdwa3m6p3haa8";
+      sha256 = "1wfhwmb1d32k8isk7k8525pmkfih8hlvy53zsj19l3gvjm0da9gw";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -56,7 +56,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0rzjk3qmlvid8qag3r00zaszchncl1nl8l2yapvc1zqh2dqlln58";
+      sha256 = "0g62v0maz3b9bmjvvjcin6ayg0f5k0n8m93zk75lagyr69g5vaka";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -78,7 +78,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1n4j73y9kwfqk7dz1fh1bpan68vlpnbz7idxpmsphyay8w8y9dd4";
+      sha256 = "0dlq8pchgccc66gfdlssydacisia5fbwc8b4gd8f9gcbish8jmf7";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -100,7 +100,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1babkcgxczs6zfk2b6jmsy2vwbrgdydrp2px1mfwa3wmv8fwlssg";
+      sha256 = "193nni55py6yzw730yyp5va2n4313sjf6a7jmi0xs9bivvvzg5w9";
     };
 
     buildInputs = [ buildbot-pkg ];
diff --git a/pkgs/development/python-modules/buildbot/worker.nix b/pkgs/development/python-modules/buildbot/worker.nix
index 365ca0bcf14..05938e43ad6 100644
--- a/pkgs/development/python-modules/buildbot/worker.nix
+++ b/pkgs/development/python-modules/buildbot/worker.nix
@@ -1,13 +1,13 @@
-{ lib, buildPythonPackage, fetchPypi, setuptoolsTrial, mock, twisted, future,
-  coreutils }:
+{ lib, buildPythonPackage, fetchPypi, buildbot, setuptoolsTrial, mock, twisted,
+  future, coreutils }:
 
 buildPythonPackage (rec {
   pname = "buildbot-worker";
-  version = "2.7.0";
+  inherit (buildbot) version;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vwy46acvczgk1hhpsqdwpcw55j4hm5pkw6j01f92axiga8r5jk6";
+    sha256 = "0p1w6ailp6xpa6ckl5prj413ilxx5s3lga5mzqxj9nn00vni8ik2";
   };
 
   propagatedBuildInputs = [ twisted future ];
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 30f0d9132bb..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.0.0";
+  version = "4.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9a52dd97a85f257f4e4127f15818e71a0c7899f121b34591fcc1173ea79a0198";
+    sha256 = "bbaa39c3dede00175df2dc2b03d0cf18dd2d32a7de7beb68072d13043c9edb20";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/cadquery/default.nix b/pkgs/development/python-modules/cadquery/default.nix
index 6f3632f743b..886224d1691 100644
--- a/pkgs/development/python-modules/cadquery/default.nix
+++ b/pkgs/development/python-modules/cadquery/default.nix
@@ -2,6 +2,7 @@
   , buildPythonPackage
   , isPy3k
   , pythonOlder
+  , pythonAtLeast
   , fetchFromGitHub
   , pyparsing
   , opencascade
@@ -16,9 +17,12 @@
   , libGLU
   , libX11
   , six
+  , pytest
+  , makeFontsConf
+  , freefont_ttf
 }:
 
-let 
+let
   pythonocc-core-cadquery = stdenv.mkDerivation {
     pname = "pythonocc-core-cadquery";
     version = "0.18.2";
@@ -31,7 +35,7 @@ let
       sha256 = "07zmiiw74dyj4v0ar5vqkvk30wzcpjjzbi04nsdk5mnlzslmyi6c";
     };
 
-    nativeBuildInputs = [ 
+    nativeBuildInputs = [
       cmake
       swig
       ninja
@@ -63,27 +67,34 @@ let
 in
   buildPythonPackage rec {
     pname = "cadquery";
-    version = "2.0RC0";
-  
+    version = "2.0";
+
     src = fetchFromGitHub {
       owner = "CadQuery";
       repo = pname;
       rev = version;
-      sha256 = "1xgd00rih0gjcnlrf9s6r5a7ypjkzgf2xij2b6436i76h89wmir3";
+      sha256 = "1n63b6cjjrdwdfmwq0zx1xabjnhndk9mgfkm4w7z9ardcfpvg84l";
     };
-  
+
     buildInputs = [
       opencascade
     ];
-  
+
     propagatedBuildInputs = [
       pyparsing
       pythonocc-core-cadquery
     ];
-  
-    # Build errors on 2.7 and >=3.8 (officially only supports 3.6 and 3.7).
-    disabled = !(isPy3k && (pythonOlder "3.8"));
-  
+
+    FONTCONFIG_FILE = makeFontsConf {
+      fontDirectories = [ freefont_ttf ];
+    };
+
+    checkInputs = [
+      pytest
+    ];
+
+    disabled = pythonOlder "3.6" || pythonAtLeast "3.8";
+
     meta = with lib; {
       description = "Parametric scripting language for creating and traversing CAD models";
       homepage = "https://github.com/CadQuery/cadquery";
diff --git a/pkgs/development/python-modules/caldav/default.nix b/pkgs/development/python-modules/caldav/default.nix
index 7a7a175362a..0d96372abfc 100644
--- a/pkgs/development/python-modules/caldav/default.nix
+++ b/pkgs/development/python-modules/caldav/default.nix
@@ -1,34 +1,51 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, tzlocal
-, requests
-, vobject
+, fetchFromGitHub
+, pythonOlder
+, icalendar
 , lxml
 , nose
+, pytz
+, requests
+, six
+, tzlocal
+, vobject
 }:
 
 buildPythonPackage rec {
   pname = "caldav";
-  version = "0.6.2";
-
-  propagatedBuildInputs = [ tzlocal requests vobject lxml nose ];
+  version = "0.7.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "80c33b143539da3a471148ac89512f67d9df3a5286fae5a023e2ad3923246c0d";
+  src = fetchFromGitHub {
+    owner = "python-caldav";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0m64maiqp3k8fsgkkvdx1dlfhkc70pqig4dclq6w8ajz82czrq83";
   };
 
-  # xandikos is only a optional test dependency, not available for python3
+  propagatedBuildInputs = [ six requests vobject lxml ]
+    ++ lib.optionals (pythonOlder "3.6") [ pytz tzlocal ];
+
+  checkInputs = [
+    icalendar
+    nose
+    tzlocal
+  ];
+
+  # xandikos and radicale is only a optional test dependency, not available for python3
   postPatch = ''
     substituteInPlace setup.py \
-      --replace ", 'xandikos'" ""
+      --replace ", 'xandikos'" "" \
+      --replace ", 'radicale'" ""
   '';
 
+  pythonImportsCheck = [ "caldav" ];
+
   meta = with lib; {
     description = "This project is a CalDAV (RFC4791) client library for Python.";
     homepage = "https://pythonhosted.org/caldav/";
     license = licenses.asl20;
     maintainers = with maintainers; [ marenz ];
+    #broken = true; # requires radicale which is not packaged yet
   };
 }
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/can/default.nix b/pkgs/development/python-modules/can/default.nix
index 3629e0097ed..0a7e58ac800 100644
--- a/pkgs/development/python-modules/can/default.nix
+++ b/pkgs/development/python-modules/can/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "python-can";
-  version = "3.3.2";
+  version = "3.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5fefb5c1e7e7f07faefc02c6eac79f9b58376f007048a04d8e7f325d48ec6b2e";
+    sha256 = "ecd69cf6b2f0235345ebe607a15325cf1384c85b24ffbe1d68c3754357f87488";
   };
 
   propagatedBuildInputs = [ wrapt pyserial aenum ] ++ lib.optional (pythonOlder "3.5") typing;
diff --git a/pkgs/development/python-modules/canmatrix/default.nix b/pkgs/development/python-modules/canmatrix/default.nix
index b9a61af8b48..6e487b58cff 100644
--- a/pkgs/development/python-modules/canmatrix/default.nix
+++ b/pkgs/development/python-modules/canmatrix/default.nix
@@ -4,6 +4,7 @@
 , pythonOlder
 , attrs
 , bitstruct
+, click
 , future
 , pathlib2
 , typing
@@ -17,20 +18,21 @@
 
 buildPythonPackage rec {
   pname = "canmatrix";
-  version = "0.8";
+  version = "0.9.1";
 
   # uses fetchFromGitHub as PyPi release misses test/ dir
   src = fetchFromGitHub {
     owner = "ebroecker";
     repo = pname;
     rev = version;
-    sha256 = "1wzflapyj2j4xsi7d7gfmznmxbgr658n092xyq9nac46rbhpcphg";
+    sha256 = "129lcchq45h8wqjvvn0rwpbmih4m0igass2cx7a21z94li97hcia";
   };
 
   propagatedBuildInputs = [
     # required
     attrs
     bitstruct
+    click
     future
     pathlib2
     # optional
@@ -41,12 +43,18 @@ buildPythonPackage rec {
     pyyaml
   ] ++ lib.optional (pythonOlder "3.5") typing;
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "version = versioneer.get_version()" "version = \"${version}\""
+  '';
+
   checkInputs = [
     pytest
   ];
 
+  # long_envvar_name_imports requires stable key value pair ordering
   checkPhase = ''
-    pytest -s src/canmatrix
+    pytest -s src/canmatrix -k 'not long_envvar_name_imports'
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/canonicaljson/default.nix b/pkgs/development/python-modules/canonicaljson/default.nix
index 24cccc3aa77..34d75d77a9c 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 = "0v2b72n28fi763xxv9vrf4qc61anl2ys9njy7hlm719fdaq3sxml";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/canopen/default.nix b/pkgs/development/python-modules/canopen/default.nix
index 83dd1f006fc..c064fd62fd9 100644
--- a/pkgs/development/python-modules/canopen/default.nix
+++ b/pkgs/development/python-modules/canopen/default.nix
@@ -1,33 +1,19 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
+, fetchPypi
 , nose
 , can
 , canmatrix }:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "canopen";
-  version = "0.5.1";
+  version = "1.1.0";
 
-  # use fetchFromGitHub until version containing test/sample.eds
-  # is available on PyPi
-  # https://github.com/christiansandberg/canopen/pull/57
-
-  src = fetchFromGitHub {
-    owner = "christiansandberg";
-    repo = "canopen";
-    rev = "b20575d84c3aef790fe7c38c5fc77601bade0ea4";
-    sha256 = "1qg47qrkyvyxiwi13sickrkk89jp9s91sly2y90bz0jhws2bxh64";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0fqa4p3qg7800fykib1x264gizhhmb6dz2hajgwr0hxf5xa19wdl";
   };
 
-  #src = fetchPypi {
-  #  inherit pname version;
-  #  sha256 = "0806cykarpjb9ili3mf82hsd9gdydbks8532nxgz93qzg4zdbv2g";
-  #};
-
-  # test_pdo failure https://github.com/christiansandberg/canopen/issues/58
-  doCheck = false;
-
   propagatedBuildInputs =
     [ can
       canmatrix
diff --git a/pkgs/development/python-modules/capturer/default.nix b/pkgs/development/python-modules/capturer/default.nix
index 2dcd075ec0e..821561c0555 100644
--- a/pkgs/development/python-modules/capturer/default.nix
+++ b/pkgs/development/python-modules/capturer/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "capturer";
-  version = "2.4";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner = "xolox";
     repo = "python-capturer";
     rev = version;
-    sha256 = "07zy264xd0g7pz9sxjqcpwmrck334xcbb7wfss26lmvgdr5nhcb9";
+    sha256 = "0fwrxa049gzin5dck7fvwhdp1856jrn0d7mcjcjsd7ndqvhgvjj1";
   };
 
   propagatedBuildInputs = [ humanfriendly ];
diff --git a/pkgs/development/python-modules/cassandra-driver/default.nix b/pkgs/development/python-modules/cassandra-driver/default.nix
index 6fe80e16e12..7829afa83f9 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.20.2";
+  version = "3.23.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03nycyn5nd1pnrg6fffq3wcjqnw13lgja137zq5zszx68mc15wnl";
+    sha256 = "a3b075bfd36677024b1dcf55a561fac161fc4f4065f01557b21a0b02ebad05c2";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/catalogue/default.nix b/pkgs/development/python-modules/catalogue/default.nix
index 2b46368381c..eb1aec37c63 100644
--- a/pkgs/development/python-modules/catalogue/default.nix
+++ b/pkgs/development/python-modules/catalogue/default.nix
@@ -1,16 +1,19 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , importlib-metadata
 }:
 
 buildPythonPackage rec {
   pname = "catalogue";
-  version = "0.2.0";
+  version = "2.0.0";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zha0gzqfkazc9da0cyjys5ghf20ihyhkgd1h5zxkxlf8zhz03s3";
+    sha256 = "34f8416ec5e7ed08e55c10414416e67c3f4d66edf83bc67320c3290775293816";
   };
 
   propagatedBuildInputs = [ importlib-metadata ];
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 d0d4f2e69fb..83ecf49436c 100644
--- a/pkgs/development/python-modules/celery/default.nix
+++ b/pkgs/development/python-modules/celery/default.nix
@@ -1,17 +1,19 @@
 { 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.2";
+  version = "4.4.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ps1c6ill7q0m5kzb87hisgshdk3kzpa6cvcjch1d1wa07whp2hh";
+    sha256 = "1ni5c3qgbhb7871b3i55wc306m3g2n0qxp92g5gszdxiicjf8xzx";
   };
 
   postPatch = ''
+    substituteInPlace requirements/default.txt \
+      --replace "kombu>=4.6.10,<4.7" "kombu"
     substituteInPlace requirements/test.txt \
       --replace "moto==1.3.7" moto \
       --replace "pytest>=4.3.1,<4.4.0" pytest
@@ -20,14 +22,18 @@ buildPythonPackage rec {
   # ignore test that's incompatible with pytest5
   # test_eventlet touches network
   # test_mongodb requires pymongo
+  # test_multi tries to create directories under /var
   checkPhase = ''
-    pytest -k 'not restore_current_app_fallback and not msgpack and not on_apply' \
+    pytest -k 'not restore_current_app_fallback and not msgpack and not on_apply and not pytest' \
+      --ignore=t/unit/contrib/test_pytest.py \
       --ignore=t/unit/concurrency/test_eventlet.py \
+      --ignore=t/unit/bin/test_multi.py \
+      --ignore=t/unit/apps/test_multi.py \
       --ignore=t/unit/backends/test_mongodb.py
   '';
 
   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..79e5c3288b7 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.6.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1nzp1l63f64qqp89y1vyd4lgfhykfp5dkr6iwfiyf273y7sjwpsa";
+    sha256 = "1y0m5qm853i6pcpb2mrf8kjkr9wr80mdrx1qmck38ayvr2v2p5lc";
   };
 
-  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..9e2bbc5c88d 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.4.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06b5gfs7wmmipln8f3z928d2mmx2j4b3x7pnqmj6cvmyfh8v7z2i";
+    sha256 = "5ad7e9a056d25ffa5082862e36f119f7f7cec6457fa07ee2f8c339814b80c9b1";
   };
 
   pythonImportsCheck = [ "certifi" ];
diff --git a/pkgs/development/python-modules/cffi/default.nix b/pkgs/development/python-modules/cffi/default.nix
index 85dcd72a934..a8862010c47 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.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1dn279gw5ql8i5n3s5v4rnv96rhhjjfn7xq729qbl5bs2954yf1d";
+    sha256 = "b2a2b0d276a136146e012154baefaea2758ef1f56ae9f4e01c612b0831e0bd2f";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/python-modules/cfgv/default.nix b/pkgs/development/python-modules/cfgv/default.nix
index a58669e58a8..ab9a97729a1 100644
--- a/pkgs/development/python-modules/cfgv/default.nix
+++ b/pkgs/development/python-modules/cfgv/default.nix
@@ -1,12 +1,13 @@
-{ lib, buildPythonPackage, fetchPypi, six }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, six }:
 
 buildPythonPackage rec {
   pname = "cfgv";
-  version = "2.0.1";
+  version = "3.2.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0i1iam461bd6bphd402r7payr2m71xivy5zp6k2gjnv67fa8gczd";
+    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 c632bb6a68c..1b940fa2c4e 100644
--- a/pkgs/development/python-modules/cfn-lint/default.nix
+++ b/pkgs/development/python-modules/cfn-lint/default.nix
@@ -12,15 +12,17 @@
 , jsonschema
 , pathlib2
 , setuptools
+, junit-xml
+, networkx
 }:
 
 buildPythonPackage rec {
   pname = "cfn-lint";
-  version = "0.26.2";
+  version = "0.33.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5449313b5f176024bd5fd6ebe69ce986a2d9b8a9d6a147b2d442c8d9fa99a6c5";
+    sha256 = "b74bb89a3d0da4a744179b07bc186b9fbc4800f929bf635bb6246e80fb91a953";
   };
 
   propagatedBuildInputs = [
@@ -32,6 +34,8 @@ buildPythonPackage rec {
     jsonschema
     pathlib2
     setuptools
+    junit-xml
+    networkx
   ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata importlib-resources ];
 
   # No tests included in archive
diff --git a/pkgs/development/python-modules/cftime/default.nix b/pkgs/development/python-modules/cftime/default.nix
index 60946d23a1e..7638695ff2d 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.2";
+  version = "1.1.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17w9myl8mg4isv4lb1nv64zim53ishi32f6m5m0s00q9a6v5qfb0";
+    sha256 = "1w2iakkzxfhyrqrspn40am8x7bzdp5qqdqbm1asbj7fa3mivi17x";
   };
 
   checkInputs = [ pytest coveralls pytestcov ];
diff --git a/pkgs/development/python-modules/cgen/default.nix b/pkgs/development/python-modules/cgen/default.nix
index 30ecb8d1b33..06beebc2f32 100644
--- a/pkgs/development/python-modules/cgen/default.nix
+++ b/pkgs/development/python-modules/cgen/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "cgen";
-  version = "2019.1";
+  version = "2020.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04gxzfjy2f9qsg3scg1sx4q4rhw5p036dyqngxyfsai0wvj5ya6m";
+    sha256 = "4ec99d0c832d9f95f5e51dd18a629ad50df0b5464ce557ef42c6e0cd9478bfcf";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/chalice/default.nix b/pkgs/development/python-modules/chalice/default.nix
index f99905950c9..cb5fab46140 100644
--- a/pkgs/development/python-modules/chalice/default.nix
+++ b/pkgs/development/python-modules/chalice/default.nix
@@ -19,11 +19,11 @@
 
 buildPythonPackage rec {
   pname = "chalice";
-  version = "1.13.0";
+  version = "1.14.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07xzpbz7znr853xm6p27lkrcgdib3ym5dlwys0n4zvkjm5x7jn2a";
+    sha256 = "457e71fd84951574ccbe72d1389d9c89aaf5e69a552b01d1f1585faa63459c26";
   };
 
   checkInputs = [ watchdog pytest hypothesis mock ];
diff --git a/pkgs/development/python-modules/chameleon/default.nix b/pkgs/development/python-modules/chameleon/default.nix
index c2a3db6820d..96bd1aa8aaa 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.6.2";
+  version = "3.7.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0aw6cqnychmsxjjgihwr7df92xw6ac1wr4x70mvq28z3iq35x7ls";
+    sha256 = "37c01c9af720bc80a0097ebc07eb41e802917ad0006c9a77dc158479c087664b";
   };
 
   meta = with stdenv.lib; {
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 3de542a8bb0..5a3296d71c8 100644
--- a/pkgs/development/python-modules/check-manifest/default.nix
+++ b/pkgs/development/python-modules/check-manifest/default.nix
@@ -1,17 +1,22 @@
-{ stdenv, buildPythonPackage, fetchPypi, toml }:
+{ stdenv, buildPythonPackage, fetchPypi, pep517, toml, mock, breezy, git }:
 
 buildPythonPackage rec {
   pname = "check-manifest";
-  version = "0.40";
+  version = "0.42";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "42de6eaab4ed149e60c9b367ada54f01a3b1e4d6846784f9b9710e770ff5572c";
+    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";
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 54c502b815c..6ea7c8dd8ca 100644
--- a/pkgs/development/python-modules/cheroot/default.nix
+++ b/pkgs/development/python-modules/cheroot/default.nix
@@ -1,39 +1,72 @@
-{ stdenv, fetchPypi, buildPythonPackage, pythonAtLeast, isPy3k
-, more-itertools, six, setuptools_scm, setuptools-scm-git-archive
-, pytest, pytestcov, portend, pytest-testmon, pytest-mock
-, backports_unittest-mock, pyopenssl, requests, trustme, requests-unixsocket
-, backports_functools_lru_cache }:
-
-let inherit (stdenv) lib; in
+{ lib, stdenv, fetchPypi, buildPythonPackage, isPy3k
+, jaraco_text
+, more-itertools
+, portend
+, pyopenssl
+, pytestCheckHook
+, pytestcov
+, pytest-mock
+, pytest-testmon
+, requests
+, requests-toolbelt
+, requests-unixsocket
+, setuptools_scm
+, setuptools-scm-git-archive
+, six
+, trustme
+}:
 
 buildPythonPackage rec {
   pname = "cheroot";
-  version = "8.2.1";
+  version = "8.3.1";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5b525b3e4a755adf78070ab54c1821fb860d4255a9317dba2b88eb2df2441cff";
+    sha256 = "7076d5845f64d729e4155ec2650ad24ee70209340d11b9e619a82e9210a579b8";
   };
 
   nativeBuildInputs = [ setuptools_scm setuptools-scm-git-archive ];
 
-  propagatedBuildInputs = [ more-itertools six backports_functools_lru_cache ];
+  propagatedBuildInputs = [ more-itertools six ];
+
+  checkInputs = [
+    jaraco_text
+    portend
+    pyopenssl
+    pytestCheckHook
+    pytestcov
+    pytest-mock
+    pytest-testmon
+    requests
+    requests-toolbelt
+    requests-unixsocket
+    trustme
+  ];
 
-  checkInputs = [ pytest pytestcov portend backports_unittest-mock pytest-mock pytest-testmon pyopenssl requests trustme requests-unixsocket ];
+  # 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
   # Deselect test_http_over_https_error on darwin because builtin cert fails
   # Disable warnings-as-errors because of deprecation warnings from socks on python 3.7
-  checkPhase = ''
-    substituteInPlace pytest.ini --replace "--doctest-modules" "" --replace "-n auto" ""
-    ${lib.optionalString (pythonAtLeast "3.7") "sed -i '/warnings/,+2d' pytest.ini"}
-    pytest -k 'not tls' ${lib.optionalString stdenv.isDarwin "--deselect=cheroot/test/test_ssl.py::test_http_over_https_error --deselect=cheroot/test/test_server.py::test_bind_addr_unix"}
+  # adds many other pytest utilities which aren't necessary like linting
+  preCheck = ''
+    rm pytest.ini
   '';
 
+  disabledTests= [
+    "tls" # touches network
+    "peercreds_unix_sock" # test urls no longer allowed
+  ] ++ lib.optionals stdenv.isDarwin [
+    "http_over_https_error"
+    "bind_addr_unix"
+  ];
+
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/cherrypy/default.nix b/pkgs/development/python-modules/cherrypy/default.nix
index 778f57e0f9b..99d21c130da 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
   ];
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 18c1e7f8c0d..83fc0d371c1 100644
--- a/pkgs/development/python-modules/cirq/default.nix
+++ b/pkgs/development/python-modules/cirq/default.nix
@@ -3,12 +3,14 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
-, google_api_python_client
+, fetchpatch
+, freezegun
+, google_api_core
 , matplotlib
 , networkx
 , numpy
 , pandas
-, pythonProtobuf  # pythonPackages.protobuf
+, protobuf
 , requests
 , scipy
 , sortedcontainers
@@ -16,6 +18,7 @@
 , typing-extensions
   # test inputs
 , pytestCheckHook
+, pytest-asyncio
 , pytest-benchmark
 , ply
 , pydot
@@ -25,38 +28,34 @@
 
 buildPythonPackage rec {
   pname = "cirq";
-  version = "0.6.1";
+  version = "0.8.2";
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "quantumlib";
     repo = "cirq";
     rev = "v${version}";
-    sha256 = "0lhr2dka7vpz9xd6akxphrcv2b3ni2cgjywpc1r7qpqa5mrq1q7f";
+    sha256 = "0xs46s19idh8smf80zhgraxwh3lphcdbljdrhxwhi5xcc41dfsmf";
   };
 
-  # Cirq 0.6 requires networkx==2.3 only for optional qiskit dependency/test, disable this to avoid networkx version conflicts. https://github.com/quantumlib/Cirq/issues/2368
-  # 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 "networkx==2.3" "networkx" \
-      --replace "protobuf==3.8.0" "protobuf"
-
-    # Fix sympy 1.5 test failures. Should be fixed in v0.7
-    substituteInPlace cirq/optimizers/eject_phased_paulis_test.py --replace "phase_exponent=0.125 + x / 8" "phase_exponent=0.125 + x * 0.125"
-    substituteInPlace cirq/contrib/quirk/cells/parse_test.py --replace "parse_formula('5t') == 5 * t" "parse_formula('5t') == 5.0 * t"
-
-    # Fix pandas >= 1.0 error, #2886
-    substituteInPlace cirq/experiments/t1_decay_experiment.py --replace "del tab.columns.name" 'tab.rename_axis(None, axis="columns", inplace=True)'
-  '';
+  patches = [
+    (fetchpatch {
+      # Fixes serialization issues on certain versions of protobuf & numpy.
+      name = "cirq-pr-2986-protobuf-bools.patch";
+      url = "https://github.com/quantumlib/Cirq/commit/78ddfb574c0f3936f713613bf4ba102163efb7b3.patch";
+      sha256 = "0hmad9ndsqf5ci7shvd924d2rv4k9pzx2r2cl1bm5w91arzz9m18";
+    })
+  ];
 
   propagatedBuildInputs = [
-    google_api_python_client
+    freezegun
+    google_api_core
     numpy
     matplotlib
     networkx
     pandas
-    pythonProtobuf
+    protobuf
     requests
     scipy
     sortedcontainers
@@ -69,19 +68,26 @@ buildPythonPackage rec {
   dontUseSetuptoolsCheck = true;
   checkInputs = [
     pytestCheckHook
+    pytest-asyncio
     pytest-benchmark
     ply
     pydot
     pyyaml
     pygraphviz
   ];
-  # TODO: enable op_serializer_test. Error is type checking, for some reason wants bool instead of numpy.bool_. Not sure if protobuf or internal issue
+
   pytestFlagsArray = [
     "--ignore=dev_tools"  # Only needed when developing new code, which is out-of-scope
-    "--ignore=cirq/google/op_serializer_test.py"  # investigating in https://github.com/quantumlib/Cirq/issues/2727
   ];
   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"
   ] ++ lib.optionals stdenv.isAarch64 [
     # Seem to fail due to math issues on aarch64?
     "expectation_from_wavefunction"
diff --git a/pkgs/development/python-modules/citeproc-py/default.nix b/pkgs/development/python-modules/citeproc-py/default.nix
new file mode 100644
index 00000000000..bd1ae0c563a
--- /dev/null
+++ b/pkgs/development/python-modules/citeproc-py/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, nose
+, git
+, lxml
+, rnc2rng
+}:
+
+buildPythonPackage rec {
+  pname = "citeproc-py";
+  version = "0.5.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "00aaff50jy4j0nakdzq9258z1gzrac9baarli2ymgspj88jg5968";
+  };
+
+  buildInputs = [ rnc2rng ];
+
+  propagatedBuildInputs = [ lxml ];
+
+  checkInputs = [ nose git ];
+  checkPhase = "nosetests tests";
+  doCheck = false;  # seems to want a Git repository, but fetchgit with leaveDotGit also fails
+  pythonImportsCheck = [ "citeproc" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/brechtm/citeproc-py";
+    description = "Citation Style Language (CSL) parser for Python";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/cjson/default.nix b/pkgs/development/python-modules/cjson/default.nix
index 5ceb26bfeb6..1ecd43fccde 100644
--- a/pkgs/development/python-modules/cjson/default.nix
+++ b/pkgs/development/python-modules/cjson/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "python-cjson";
-  version = "1.2.1";
+  version = "1.2.2";
   disabled = isPy3k || isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "52db2745264624768bfd9b604acb38f631bde5c2ec9b23861677d747e4558626";
+    sha256 = "3006c2c218297be3448dc793218e0b15d20fe9839775521bfc294fc6aa24972b";
   };
 
   meta = with stdenv.lib; {
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/cleo/default.nix b/pkgs/development/python-modules/cleo/default.nix
index 2809fb33e92..3e46b900dc7 100644
--- a/pkgs/development/python-modules/cleo/default.nix
+++ b/pkgs/development/python-modules/cleo/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "cleo";
-  version = "0.7.6";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "99cf342406f3499cec43270fcfaf93c126c5164092eca201dfef0f623360b409";
+    sha256 = "3d0e22d30117851b45970b6c14aca4ab0b18b1b53c8af57bed13208147e4069f";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cli-helpers/default.nix b/pkgs/development/python-modules/cli-helpers/default.nix
index ba7ca3d5b20..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 = "1.2.1";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0rd194l06aw4612j09b44pgh8b8l4cwmz7xgwsgdj9v8m3m25nwq";
+    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/click/default.nix b/pkgs/development/python-modules/click/default.nix
index ac96ef32618..fcbd4d0981a 100644
--- a/pkgs/development/python-modules/click/default.nix
+++ b/pkgs/development/python-modules/click/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "click";
-  version = "7.1.1";
+  version = "7.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1k60i2fvxf8rxazlv04mnsmlsjrj5i5sda3x1ifhr0nqi7mb864a";
+    sha256 = "d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/clickclick/default.nix b/pkgs/development/python-modules/clickclick/default.nix
index d35c356c822..b2e23dc55bd 100644
--- a/pkgs/development/python-modules/clickclick/default.nix
+++ b/pkgs/development/python-modules/clickclick/default.nix
@@ -14,8 +14,10 @@ buildPythonPackage rec {
   checkInputs = [ pytestCheckHook pytestcov ];
   propagatedBuildInputs = [ flake8 click pyyaml six ];
 
-  disabledTests = lib.optionals isPy36 [
+  # test_cli asserts on exact quoting style of output
+  disabledTests = [
     "test_cli"
+  ] ++ lib.optionals isPy36 [
     "test_choice_default"
   ];
 
diff --git a/pkgs/development/python-modules/clifford/default.nix b/pkgs/development/python-modules/clifford/default.nix
index 71b9c4899ab..b7ed70f8460 100644
--- a/pkgs/development/python-modules/clifford/default.nix
+++ b/pkgs/development/python-modules/clifford/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "clifford";
-  version = "1.2.0";
+  version = "1.3.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b27fdec70574ac928c91fe333a70ece153d75cd0499cce09acea5980ae349bee";
+    sha256 = "ade11b20d0631dfc9c2f18ce0149f1e61e4baf114108b27cfd68e5c1619ecc0c";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/clikit/default.nix b/pkgs/development/python-modules/clikit/default.nix
index 98533f95f92..7b07b094591 100644
--- a/pkgs/development/python-modules/clikit/default.nix
+++ b/pkgs/development/python-modules/clikit/default.nix
@@ -1,19 +1,21 @@
 { lib, buildPythonPackage, fetchPypi
-, isPy27
-, pylev, pastel, typing, enum34 }:
+, isPy27, pythonAtLeast
+, pylev, pastel, typing, enum34, crashtest }:
 
 buildPythonPackage rec {
   pname = "clikit";
-  version = "0.4.3";
+  version = "0.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0glppxx0pyppjcigzs8h16srlbxb6nci0282xfy3ayvwbq8pwbbf";
+    sha256 = "0ngdkmb73gkp5y00q7r9k1cdlfn0wyzws2wrqlshc4hlkbdyabj4";
   };
 
   propagatedBuildInputs = [
     pylev pastel
-  ] ++ lib.optionals isPy27 [ typing enum34 ];
+  ]
+    ++ 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 02454b74efa..802235d674b 100644
--- a/pkgs/development/python-modules/cloudflare/default.nix
+++ b/pkgs/development/python-modules/cloudflare/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "cloudflare";
-  version = "2.6.5";
+  version = "2.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4463d5f2927338384169315f34c2a8ac0840075b59489f8d1d773b91caba6c39";
+    sha256 = "0w8ihj9gram2d4wkbki8f6gr8hsd950b3wzfi1qqqm17lqfk8k7h";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cloudpickle/default.nix b/pkgs/development/python-modules/cloudpickle/default.nix
index 279571c157c..551dd06f630 100644
--- a/pkgs/development/python-modules/cloudpickle/default.nix
+++ b/pkgs/development/python-modules/cloudpickle/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, mock }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy27, pytest, mock }:
 
 buildPythonPackage rec {
   pname = "cloudpickle";
-  version = "1.2.2";
+  version = "1.4.1";
+  disabled = isPy27; # abandoned upstream
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "922401d7140e133253ff5fab4faa4a1166416066453a783b00b507dca93f8859";
+    sha256 = "0b6258a20a143603d53b037a20983016d4e978f554ec4f36b3d0895b947099ae";
   };
 
   buildInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/cnvkit/default.nix b/pkgs/development/python-modules/cnvkit/default.nix
index 054e302dfe7..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
@@ -18,17 +19,18 @@
 
 buildPythonPackage rec {
   pname = "CNVkit";
-  version = "0.9.6";
+  version = "0.9.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1hj8c98s538i0hg5mrz4bw4v07qmcl51rhxq611rj2nglnc9r25y";
+    sha256 = "d68adc0121e17c61a3aa28c0a9ba6526510a5a0df0f0a6eb1818bab71b7e927a";
   };
 
   propagatedBuildInputs = [
     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 6ebdefedeaf..ad753c18942 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.0.15";
+  version = "2.1.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8ed8b7c6791010d359baed66f84f061bba5bd41174bf324c31311e8737602788";
+    sha256 = "0be9cd6358cc6a3c01a1586134b0fb524dfa65ccbec3a40e9f28d5f976676ba2";
   };
 
   checkInputs = [ unittest2 ]; # Tests only
diff --git a/pkgs/development/python-modules/codespell/default.nix b/pkgs/development/python-modules/codespell/default.nix
index dc531c77fb5..70c63473763 100644
--- a/pkgs/development/python-modules/codespell/default.nix
+++ b/pkgs/development/python-modules/codespell/default.nix
@@ -1,11 +1,11 @@
 { lib, buildPythonApplication, fetchPypi, pytest, chardet }:
 buildPythonApplication rec {
   pname = "codespell";
-  version = "1.16.0";
+  version = "1.17.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1s9dl07ib77gq0iq26mrdpl1c46nkfm7nlhqwxpx5vvs6a1pqfxz";
+    sha256 = "08ydpw8pim7rhg1x2n711hxf2y6553nx0c0aqhfi3p4wdgcfr8i5";
   };
 
   checkInputs = [ pytest chardet ];
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
new file mode 100644
index 00000000000..038ee49d2c6
--- /dev/null
+++ b/pkgs/development/python-modules/configparser/4.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildPythonPackage, fetchPypi, setuptools_scm }:
+
+buildPythonPackage rec {
+  pname = "configparser";
+  version = "4.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c7d282687a5308319bf3d2e7706e575c635b0a470342641c93bea0ea3b5331df";
+  };
+
+  # No tests available
+  doCheck = false;
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  preConfigure = ''
+    export LC_ALL=${if stdenv.isDarwin then "en_US" else "C"}.UTF-8
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Updated configparser from Python 3.7 for Python 2.6+.";
+    license = licenses.mit;
+    homepage = "https://github.com/jaraco/configparser";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/configparser/default.nix b/pkgs/development/python-modules/configparser/default.nix
index 9c6c631d9c2..7322a6891cd 100644
--- a/pkgs/development/python-modules/configparser/default.nix
+++ b/pkgs/development/python-modules/configparser/default.nix
@@ -1,18 +1,20 @@
-{ stdenv, buildPythonPackage, fetchPypi, setuptools_scm }:
+{ stdenv, buildPythonPackage, fetchPypi, setuptools_scm
+, toml
+}:
 
 buildPythonPackage rec {
   pname = "configparser";
-  version = "4.0.2";
+  version = "5.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c7d282687a5308319bf3d2e7706e575c635b0a470342641c93bea0ea3b5331df";
+    sha256 = "2ca44140ee259b5e3d8aaf47c79c36a7ab0d5e94d70bd4105c03ede7a20ea5a1";
   };
 
   # No tests available
   doCheck = false;
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools_scm toml ];
 
   preConfigure = ''
     export LC_ALL=${if stdenv.isDarwin then "en_US" else "C"}.UTF-8
diff --git a/pkgs/development/python-modules/confluent-kafka/default.nix b/pkgs/development/python-modules/confluent-kafka/default.nix
index 029171fea2f..6aab0f45b38 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.3.0";
+  version = "1.4.2";
   pname = "confluent-kafka";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4025ccddbc79443a4e2342de0d770f669558eb737fca2e7851558cd45f78ef78";
+    sha256 = "c2660807e5c1ecd723e280f76918794c3fd84595000c1e8de1f254f5d89a785c";
   };
 
   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/convertdate/default.nix b/pkgs/development/python-modules/convertdate/default.nix
index 5a8608c5037..c60d4778012 100644
--- a/pkgs/development/python-modules/convertdate/default.nix
+++ b/pkgs/development/python-modules/convertdate/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "convertdate";
-  version = "2.2.0";
+  version = "2.2.1";
 
   # Tests are not available in the PyPI tarball so use GitHub instead.
   src = fetchFromGitHub {
     owner = "fitnr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04j8k7a9qndmawy3m345py74y18hw7lb6gc0qp0mr8d68x99xjq0";
+    sha256 = "1xgi7x9b9kxm0q51bqnmwdm5lp8vwhx5yk4d1b23r37spz9dbhw5";
   };
 
   propagatedBuildInputs = [ pymeeus pytz ];
diff --git a/pkgs/development/python-modules/cookiecutter/default.nix b/pkgs/development/python-modules/cookiecutter/default.nix
index c11ee6798a3..873cbe142d9 100644
--- a/pkgs/development/python-modules/cookiecutter/default.nix
+++ b/pkgs/development/python-modules/cookiecutter/default.nix
@@ -1,22 +1,23 @@
 { stdenv, buildPythonPackage, fetchPypi, isPyPy
 , pytest, pytestcov, pytest-mock, freezegun
-, jinja2, future, binaryornot, click, whichcraft, poyo, jinja2_time, requests }:
+, jinja2, future, binaryornot, click, whichcraft, poyo, jinja2_time, requests
+, python-slugify }:
 
 buildPythonPackage rec {
   pname = "cookiecutter";
-  version = "1.7.0";
+  version = "1.7.2";
 
   # not sure why this is broken
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bh4vf45q9nanmgwnw7m0gxirndih9yyz5s0y2xbnlbcqbhrg6a7";
+    sha256 = "efb6b2d4780feda8908a873e38f0e61778c23f6a2ea58215723bcceb5b515dac";
   };
 
   checkInputs = [ pytest pytestcov pytest-mock freezegun ];
   propagatedBuildInputs = [
-    jinja2 future binaryornot click whichcraft poyo jinja2_time requests
+    jinja2 future binaryornot click whichcraft poyo jinja2_time requests python-slugify
   ];
   
   # requires network access for cloning git repos
diff --git a/pkgs/development/python-modules/cornice/default.nix b/pkgs/development/python-modules/cornice/default.nix
index 4307b3f6f4f..442a06061ec 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 = "4.0.1";
+  version = "5.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d083832e9db65da4784436deabd7d37959de88c3b8ba51d539fa1e1f8313439d";
+    sha256 = "4efa77a0d0402f1b92481a53853d65936956a568d64a4f6a703b62feb5b8cf62";
   };
 
   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 04c469204d7..a22009ac9db 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 = "4.5.4";
+  version = "5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e07d9f1a23e9e93ab5c62902833bf3e4b1f65502927379148b6622686223125c";
+    sha256 = "0ll0hr8g3szbxa4al6khhzi6l92a3vwyldj0085whl44s55gq2zr";
   };
 
   # No tests in archive
diff --git a/pkgs/development/python-modules/coveralls/default.nix b/pkgs/development/python-modules/coveralls/default.nix
index 96f3782ab8d..c81cd3c666a 100644
--- a/pkgs/development/python-modules/coveralls/default.nix
+++ b/pkgs/development/python-modules/coveralls/default.nix
@@ -1,6 +1,7 @@
 { buildPythonPackage
 , lib
 , fetchPypi
+, isPy27
 , mock
 , pytest
 , pytestrunner
@@ -15,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "coveralls";
-  name = "${pname}-python-${version}";
-  version = "1.9.2";
+  version = "2.0.0";
+  disabled = isPy27;
 
   # wanted by tests
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8e3315e8620bb6b3c6f3179a75f498e7179c93b3ddc440352404f941b1f70524";
+    sha256 = "d213f5edd49053d03f0db316ccabfe17725f2758147afc9a37eaca9d8e8602b5";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/cppy/default.nix b/pkgs/development/python-modules/cppy/default.nix
new file mode 100644
index 00000000000..c6477c15533
--- /dev/null
+++ b/pkgs/development/python-modules/cppy/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "cppy";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4eda6f1952054a270f32dc11df7c5e24b259a09fddf7bfaa5f33df9fb4a29642";
+  };
+
+  # Headers-only library, no tests
+  doCheck = false;
+
+  # Not supported
+  disabled = !isPy3k;
+
+  meta = {
+    description = "C++ headers for C extension development";
+    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
new file mode 100644
index 00000000000..9981b56f2c0
--- /dev/null
+++ b/pkgs/development/python-modules/crashtest/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchFromGitHub, fetchPypi, pythonAtLeast, pytest }:
+
+buildPythonPackage rec {
+  pname = "crashtest";
+  version = "0.3.1";
+  disabled = !(pythonAtLeast "3.6");
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "42ca7b6ce88b6c7433e2ce47ea884e91ec93104a4b754998be498a8e6c3d37dd";
+  };
+
+  # has tests, but only on GitHub, however the pyproject build fails for me
+  pythonImportsCheck = [
+    "crashtest.frame"
+    "crashtest.inspector"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/sdispater/crashtest";
+    description = "Manage Python errors with ease";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
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 75ab8b739d8..07547b280f5 100644
--- a/pkgs/development/python-modules/credstash/default.nix
+++ b/pkgs/development/python-modules/credstash/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "credstash";
-  version = "1.16.2";
+  version = "1.17.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1l3g76dm9csmx0z8s7zd75wfzw9dcyvrq0a81gfzwxk0c0w8c79r";
+    sha256 = "6c04e8734ef556ab459018da142dd0b244093ef176b3be5583e582e9a797a120";
   };
 
   # The install phase puts an executable and a copy of the library it imports in
diff --git a/pkgs/development/python-modules/croniter/default.nix b/pkgs/development/python-modules/croniter/default.nix
index 90334fd4225..05e855b12dc 100644
--- a/pkgs/development/python-modules/croniter/default.nix
+++ b/pkgs/development/python-modules/croniter/default.nix
@@ -4,24 +4,28 @@
 , python-dateutil
 , pytest
 , pytz
+, natsort
+, tzlocal
 }:
 
 buildPythonPackage rec {
   pname = "croniter";
-  version = "0.3.31";
+  version = "0.3.34";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15riw8sl8jzzkvvjlz3i3p7jcx423zipxhff5ddvki6zgnrb9149";
+    sha256 = "7186b9b464f45cf3d3c83a18bc2344cc101d7b9fd35a05f2878437b14967e964";
   };
 
   propagatedBuildInputs = [
     python-dateutil
+    natsort
   ];
 
   checkInputs = [
     pytest
     pytz
+    tzlocal
   ];
 
   checkPhase = ''
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 ba807cc99fd..9f7bb3f1adb 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.1"; # Also update the hash in vectors.nix
+  version = "3.0"; # Also update the hash in vectors.nix
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13inbbc3vqv0vpfww65f8pj3isghbcrd3m63xfyd8swl9f5xc2yf";
+    sha256 = "0lr06a9317n2iwfqwz9mpalqm99acqwk1478arvyj1jj0ay4v4lf";
   };
 
   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 520e44cccc7..02a3f44bb09 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 = "1ydkrj67jf26ys8v5qflqsnlj3hd4494ym44120dpvk7b7v037ci";
+    sha256 = "0fa26ggksyhknb43cja1g0jwp35qkdbavivdq6yynj1igd2z1vsj";
   };
 
   # No tests included
diff --git a/pkgs/development/python-modules/csscompressor/default.nix b/pkgs/development/python-modules/csscompressor/default.nix
index 50f20164f64..a7256a54e3b 100644
--- a/pkgs/development/python-modules/csscompressor/default.nix
+++ b/pkgs/development/python-modules/csscompressor/default.nix
@@ -14,6 +14,6 @@ buildPythonPackage rec {
     description = "A python port of YUI CSS Compressor";
     homepage = "https://pypi.python.org/pypi/csscompressor";
     license = stdenv.lib.licenses.bsd3;
-    maintainers = [stdenv.lib.maintainers.ahmedtd];
+    maintainers = [];
   };
 }
diff --git a/pkgs/development/python-modules/cssselect2/default.nix b/pkgs/development/python-modules/cssselect2/default.nix
index dfa08dfe0b0..5eb65ce2fca 100644
--- a/pkgs/development/python-modules/cssselect2/default.nix
+++ b/pkgs/development/python-modules/cssselect2/default.nix
@@ -1,29 +1,28 @@
-{ lib, buildPythonPackage, fetchPypi, tinycss2, pytest, pytestrunner }:
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, tinycss2
+, pytest
+, pytestrunner
+, pytestcov
+, pytest-flake8
+, pytest-isort
+}:
 
 buildPythonPackage rec {
   pname = "cssselect2";
-  version = "0.2.2";
+  version = "0.3.0";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0skymzb4ncrm2zdsy80f53vi0arf776lvbp51hzh4ayp1il5lj3h";
+    sha256 = "5c2716f06b5de93f701d5755a9666f2ee22cbcd8b4da8adddfc30095ffea3abc";
   };
 
-  # We're not interested in code quality tests
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "pytest-cov" "" \
-      --replace "pytest-flake8" "" \
-      --replace "pytest-isort" ""
-    substituteInPlace setup.cfg \
-      --replace "--cov=cssselect2" "" \
-      --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 d2db8dcd9ee..94ec349e038 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.0.0";
+  version = "7.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7230b25052b2b9074cc338b44338b4bd43575a48ad7b9c2ce7f36d7e0d117012";
+    sha256 = "243254a1607e19ca55191c4cca4c0f2b143e1d5914e2a1bc9e3f715e7ccafc41";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/curio/default.nix b/pkgs/development/python-modules/curio/default.nix
index 31dc8327fc4..5852f518ab5 100644
--- a/pkgs/development/python-modules/curio/default.nix
+++ b/pkgs/development/python-modules/curio/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "curio";
-  version = "0.9";
+  version = "1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "51d1a7b49b4f8dd1486ac785c72d522962e93ccfdcfc1f818f5c7553a307b5ef";
+    sha256 = "90f320fafb3f5b791f25ffafa7b561cc980376de173afd575a2114380de7939b";
   };
 
   disabled = !isPy3k;
@@ -24,9 +24,7 @@ buildPythonPackage rec {
   # test_aside_basic times out,
   # test_aside_cancel fails because modifies PYTHONPATH and cant find pytest
   checkPhase = ''
-    # __pycache__ was packaged accidentally, https://github.com/dabeaz/curio/issues/301
-    rm -r tests/__pycache__
-    pytest --deselect tests/test_task.py::test_aside_basic --deselect tests/test_task.py::test_aside_cancel
+    pytest --deselect tests/test_task.py::test_aside_basic --deselect tests/test_task.py::test_aside_cancel -k "not test_ssl_outgoing"
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/cvxpy/default.nix b/pkgs/development/python-modules/cvxpy/default.nix
index b0bab9c7ee0..8d2b6398c4b 100644
--- a/pkgs/development/python-modules/cvxpy/default.nix
+++ b/pkgs/development/python-modules/cvxpy/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "cvxpy";
-  version = "1.0.31";
+  version = "1.1.4";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17g6xcy99icrdcmb4pa793kqvzchbzl5lsw00xms9slwkr7pb65k";
+    sha256 = "1f37da2f891508ebc2bbb2b75c46a2076be39a60a45c8a88261e000e8aabeef2";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cx_freeze/default.nix b/pkgs/development/python-modules/cx_freeze/default.nix
index dae3e032a39..98d3460d757 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.0";
+  version = "6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "067bgkgx7i3kw31vaviwysbb1lk91cjw9q90vklsr7nsygjxi0fa";
+    sha256 = "a0181bdb0ed16b292f4cfb8cd3afc84e956fc187431f25392bd981460dd73da0";
   };
 
   propagatedBuildInputs = [ ncurses ];
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 b4af53cb296..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.9.1";
+  version = "1.10.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mi608d4q4clx5ikblqni5v67k051k894q0w5asa3jj1v0agawpa";
+    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 348deba7123..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.3.0";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07nyajjc3209ha2nbvk43sh5bnslwb2hs9wn8q5dpfngsc96wr9g";
+    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 3ea04666249..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.6.2";
+  version = "4.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1hn1yjz5ig2kzkk0wkr75q3l4lrfbnsh0kxzlld9sfn69d1vvsjw";
+    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 83632ff6db6..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.10.0";
+  version = "1.14.0";
 
   src = fetchFromGitHub {
     owner = "plotly";
     repo = pname;
     rev = "v${version}";
-    sha256 = "18rrysfhmjfzb5b3n8fjbwk755p4slbb8fh9myq4qp76v00lfpnh";
+    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-jobqueue/default.nix b/pkgs/development/python-modules/dask-jobqueue/default.nix
index b651dca7265..52e22a09331 100644
--- a/pkgs/development/python-modules/dask-jobqueue/default.nix
+++ b/pkgs/development/python-modules/dask-jobqueue/default.nix
@@ -8,12 +8,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.7.0";
+  version = "0.7.1";
   pname = "dask-jobqueue";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "660cd4cd052ada872fd6413f224a2d9221026dd55a8a29a9a7d52b262bec67e7";
+    sha256 = "d32ddf3e3c7db29ace102037fa5f61c8db2d945176454dc316a6ffdb8bbfe88b";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/dask-ml/default.nix b/pkgs/development/python-modules/dask-ml/default.nix
index f47515d5543..7aca68b396c 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.2.0";
+  version = "1.5.0";
   pname = "dask-ml";
   disabled = pythonOlder "3.6"; # >= 3.6
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ppg8licvkxz1af2q87cxms2p6ss2r5d4fdkbcivph56r0v0ci2k";
+    sha256 = "8a9879b7d1642ed8cd48115d81f92a246eb7ffeadc42748053c5339a56f569b4";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dask-xgboost/default.nix b/pkgs/development/python-modules/dask-xgboost/default.nix
index e5a94b491da..9b9388e56c7 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.9";
+  version = "0.1.10";
   pname = "dask-xgboost";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6faeeed044112151e28770b69fb1ad06b026597726ce8dc185fd3ae45363d0c0";
+    sha256 = "454c47ccf64315d35beeca32c7cedf20d8a8d42471d5e6ce0c51f4af0a6e021e";
   };
 
   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-cli/default.nix b/pkgs/development/python-modules/databricks-cli/default.nix
index 3ed52a28287..952f0723c7c 100644
--- a/pkgs/development/python-modules/databricks-cli/default.nix
+++ b/pkgs/development/python-modules/databricks-cli/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "databricks-cli";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1w0my86r9fl0xqlczaqyp7v9rg7mpc42kp9swhids4qk4r5ncr2i";
+    sha256 = "b3c7205dd8cb9935c475794ebd41b53aba79a53e028d3cf6b5871eec83c89ec0";
   };
 
   checkInputs = [
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 d08d0903886..807ed5f9a3d 100644
--- a/pkgs/development/python-modules/datadog/default.nix
+++ b/pkgs/development/python-modules/datadog/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "datadog";
-  version = "0.35.0";
+  version = "0.36.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0qpy6mg9gfjxvjms0aaglzayhmdds4agv0lh05g2mkfw620nm8zl";
+    sha256 = "1kkbsrzxc2a6k319lh98qkinn99dzcqz8h4fm25q17dlgmc9gq9z";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/datasette/default.nix b/pkgs/development/python-modules/datasette/default.nix
index 06e611c8cbf..b5d9c3dfad6 100644
--- a/pkgs/development/python-modules/datasette/default.nix
+++ b/pkgs/development/python-modules/datasette/default.nix
@@ -18,6 +18,7 @@
 , aiohttp
 , beautifulsoup4
 , asgiref
+, setuptools
 }:
 
 buildPythonPackage rec {
@@ -43,6 +44,7 @@ buildPythonPackage rec {
     pint
     pluggy
     uvicorn
+    setuptools
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/datashader/default.nix b/pkgs/development/python-modules/datashader/default.nix
index 6f7925a4998..b5ae4a4c437 100644
--- a/pkgs/development/python-modules/datashader/default.nix
+++ b/pkgs/development/python-modules/datashader/default.nix
@@ -25,15 +25,16 @@
 , fastparquet
 , testpath
 , nbconvert
+, pytest_xdist
 }:
 
 buildPythonPackage rec {
   pname = "datashader";
-  version = "0.9.0";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3a423d61014ae8d2668848edab6c12a6244be6f249570bd7811dd5698d5ff633";
+    sha256 = "05p81aff7x70yj8llclclgz6klvfzqixwxfng6awn3y5scv18w40";
   };
 
   propagatedBuildInputs = [
@@ -60,6 +61,7 @@ buildPythonPackage rec {
   checkInputs = [
     pytest
     pytest-benchmark
+    pytest_xdist # not needed
     flake8
     nbsmoke
     fastparquet
@@ -69,11 +71,11 @@ buildPythonPackage rec {
 
   postConfigure = ''
     substituteInPlace setup.py \
-      --replace "'testpath<0.4'" "'testpath'"
+      --replace "'numba >=0.37.0,<0.49'" "'numba'"
   '';
 
   checkPhase = ''
-    pytest datashader
+    pytest -n $NIX_BUILD_CORES datashader
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/datatable/default.nix b/pkgs/development/python-modules/datatable/default.nix
index 81a53ac15f4..345903932bd 100644
--- a/pkgs/development/python-modules/datatable/default.nix
+++ b/pkgs/development/python-modules/datatable/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "datatable";
-  version = "0.9.0";
+  version = "0.10.1";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1shwjkm9nyaj6asn57vwdd74pn13pggh14r6dzv729lzxm7nm65f";
+    sha256 = "3ce5257c0c4afa96e2b14ca47a0aaf73add195b11de48f4adda50b5ede927436";
   };
 
   patches = lib.optionals stdenv.isDarwin [
diff --git a/pkgs/development/python-modules/dateparser/default.nix b/pkgs/development/python-modules/dateparser/default.nix
index f8810c95464..729827317c1 100644
--- a/pkgs/development/python-modules/dateparser/default.nix
+++ b/pkgs/development/python-modules/dateparser/default.nix
@@ -2,6 +2,7 @@
 , nose
 , parameterized
 , mock
+, flake8
 , glibcLocales
 , six
 , jdatetime
@@ -10,23 +11,41 @@
 , pytz
 , tzlocal
 , regex
-, ruamel_yaml }:
+, ruamel_yaml
+, python
+, isPy3k
+}:
 
 buildPythonPackage rec {
   pname = "dateparser";
-  version = "0.7.2";
+  version = "0.7.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e1eac8ef28de69a554d5fcdb60b172d526d61924b1a40afbbb08df459a36006b";
+    sha256 = "e875efd8c57c85c2d02b238239878db59ff1971f5a823457fcc69e493bf6ebfa";
   };
 
-  checkInputs = [ nose mock parameterized six glibcLocales ];
+  checkInputs = [
+    flake8
+    nose
+    mock
+    parameterized
+    six
+    glibcLocales
+  ];
   preCheck =''
     # skip because of missing convertdate module, which is an extra requirement
     rm tests/test_jalali.py
   '';
 
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover -s tests
+  '';
+
+  # Strange
+  # AttributeError: 'module' object has no attribute 'config'
+  doCheck = false;
+
   propagatedBuildInputs = [
     # install_requires
     dateutil pytz regex tzlocal
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/ddt/default.nix b/pkgs/development/python-modules/ddt/default.nix
index a660aaafca8..f993c3844b8 100644
--- a/pkgs/development/python-modules/ddt/default.nix
+++ b/pkgs/development/python-modules/ddt/default.nix
@@ -1,25 +1,28 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchPypi
-, nose, six, pyyaml, mock
+, six, pyyaml, mock
+, pytestCheckHook
+, enum34
+, isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "ddt";
-  version = "1.2.2";
+  version = "1.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9f79cf234064cf9b43492b72da35c473de3f03163d37bd13cec5bd8d200dda6b";
+    sha256 = "0595e70d074e5777771a45709e99e9d215552fb1076443a25fad6b23d8bf38da";
   };
 
-  checkInputs = [ nose six pyyaml mock ];
+  checkInputs = [ six pyyaml mock pytestCheckHook ];
 
-  checkPhase = ''
-    nosetests -s
-  '';
+  propagatedBuildInputs = lib.optionals (!isPy3k) [
+    enum34
+  ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Data-Driven/Decorated Tests, a library to multiply test cases";
     homepage = "https://github.com/txels/ddt";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/debian/default.nix b/pkgs/development/python-modules/debian/default.nix
index 4399e6bc83e..dec6fc2dadd 100644
--- a/pkgs/development/python-modules/debian/default.nix
+++ b/pkgs/development/python-modules/debian/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "python-debian";
-  version = "0.1.36";
+  version = "0.1.37";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c953bb0c54e96887badd2324cc66e1887bf2734f301882cd4fe847a844b518a6";
+    sha256 = "ab04f535155810c46c8abf3f7d46364b67b034c49ff8690cdb510092eee56750";
   };
 
   propagatedBuildInputs = [ chardet six ];
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 64d82e17466..228d5a78239 100644
--- a/pkgs/development/python-modules/deepdiff/default.nix
+++ b/pkgs/development/python-modules/deepdiff/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "deepdiff";
-  version = "4.0.9";
+  version = "4.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5e2343398e90538edaa59c0c99207e996a3a834fdc878c666376f632a760c35a";
+    sha256 = "91360be1d9d93b1d9c13ae9c5048fa83d9cff17a88eb30afaa0d7ff2d0fee17d";
   };
 
   # # Extra packages (may not be necessary)
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/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/deluge-client/default.nix b/pkgs/development/python-modules/deluge-client/default.nix
index 127fe07f373..8a2bdee1d92 100644
--- a/pkgs/development/python-modules/deluge-client/default.nix
+++ b/pkgs/development/python-modules/deluge-client/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "deluge-client";
-  version = "1.8.0";
+  version = "1.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4eac169b4b08008cacf4e5e26e82302a7ccd43c07846d1a1228f3e271a128de2";
+    sha256 = "0d2f12108a147d44590c8df63997fcb32f8b2fbc18f8cbb221f0136e2e372b85";
   };
 
   # it will try to connect to a running instance
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 121175c5085..63fad6467c2 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.14.12";
+  version = "3.15.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c0b593d30a9dcafd71459075fac14ccf52fcefa2094d5062dfc2e174c469dc03";
+    sha256 = "fcca1464f567d902983bff507b9e2e3fda0f932ee009e36f74ed5b8c348d17f4";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/deprecated/default.nix b/pkgs/development/python-modules/deprecated/default.nix
index 3411247599e..d6e5acdeaf8 100644
--- a/pkgs/development/python-modules/deprecated/default.nix
+++ b/pkgs/development/python-modules/deprecated/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "Deprecated";
-  version = "1.2.9";
+  version = "1.2.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1k7c5kkh8jxxqdm0cbcvmhn3mwj0rcjwapwbzmm5r04n78lpvwqc";
+    sha256 = "0x3zkmykcyjn8k57g8lcf89fxw8q7hvvcj6xkwb0f2zrnmpscnsj";
   };
 
   propagatedBuildInputs = [ wrapt ];
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/devpi-common/default.nix b/pkgs/development/python-modules/devpi-common/default.nix
index 25d9353e155..ac83c0dd938 100644
--- a/pkgs/development/python-modules/devpi-common/default.nix
+++ b/pkgs/development/python-modules/devpi-common/default.nix
@@ -3,18 +3,23 @@
 , py
 , pytest
 , pytest-flake8
+, lazy
 }:
 
 buildPythonPackage rec {
   pname = "devpi-common";
-  version = "3.4.0";
+  version = "3.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1pfl29pnfn120rqv3zwxc22i1hyywwg60rcck9hzxsllbhmfbjqh";
+    sha256 = "4f1eb1bf85a5dabd4f4ecc11ad99588e01cc204989a9f424c2dbe5809c6c3745";
   };
 
-  propagatedBuildInputs = [ requests py ];
+  propagatedBuildInputs = [
+    requests
+    py
+    lazy
+  ];
   checkInputs = [ pytest pytest-flake8 ];
 
   checkPhase = ''
diff --git a/pkgs/tools/security/diceware/default.nix b/pkgs/development/python-modules/diceware/default.nix
index f32d63cfc10..8e35eabfb0d 100644
--- a/pkgs/tools/security/diceware/default.nix
+++ b/pkgs/development/python-modules/diceware/default.nix
@@ -1,10 +1,10 @@
-{ lib
-, python3Packages
+{ lib, buildPythonPackage, fetchPypi
+, pytestrunner
+, setuptools
+, coverage, pytest
 }:
 
-with python3Packages;
-
-buildPythonApplication rec {
+buildPythonPackage rec {
   pname = "diceware";
   version = "0.9.6";
 
diff --git a/pkgs/development/python-modules/dictionaries/default.nix b/pkgs/development/python-modules/dictionaries/default.nix
index 0deab276255..2a3e752c206 100644
--- a/pkgs/development/python-modules/dictionaries/default.nix
+++ b/pkgs/development/python-modules/dictionaries/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "dictionaries";
-  version = "0.0.1";
+  version = "0.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jx2ph509sk4l7spslz16y8l6xn97d13nspn4ds2lxn5ward9ihy";
+    sha256 = "8fa92745eb7c707b8588888875234f2f0a61b67936d8deb91b2b7b4c32366112";
   };
 
   buildInputs = [ six ];
diff --git a/pkgs/development/python-modules/diff_cover/default.nix b/pkgs/development/python-modules/diff_cover/default.nix
index 3058f3e4009..9f96c7644df 100644
--- a/pkgs/development/python-modules/diff_cover/default.nix
+++ b/pkgs/development/python-modules/diff_cover/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "diff_cover";
-  version = "2.6.1";
+  version = "3.0.1";
 
   preCheck = ''
     export LC_ALL=en_US.UTF-8;
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0a6ylkfqr95awp6za0var0nysmnbgwn46np8cmi1bkldil2407lz";
+    sha256 = "13768c8bc755dd8e1184ce79b95bbc8115ea566282f4b06efbeca72a4d00427b";
   };
 
   propagatedBuildInputs = [ jinja2 jinja2_pluralize pygments six inflect ];
diff --git a/pkgs/development/python-modules/discogs_client/default.nix b/pkgs/development/python-modules/discogs_client/default.nix
index c39bede9e09..8d8fb12d4d9 100644
--- a/pkgs/development/python-modules/discogs_client/default.nix
+++ b/pkgs/development/python-modules/discogs_client/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "discogs-client";
-  version = "2.2.2";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1n23xy33fdp3dq0hhfdg0lx4z7rhdi74ik8v1mc7rql1jbxl7bmf";
+    sha256 = "cc979fcbb5283f74d388c7111c8ed6bef920b01614a014d6b1c5d6fbb554bfc3";
   };
 
   propagatedBuildInputs = [ requests oauthlib ];
diff --git a/pkgs/development/python-modules/discordpy/default.nix b/pkgs/development/python-modules/discordpy/default.nix
index 971b811a221..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.2.5";
+  version = "1.3.4";
   disabled = pythonOlder "3.5.3";
 
   # only distributes wheels on pypi now
@@ -18,14 +18,14 @@ buildPythonPackage rec {
     owner = "Rapptz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "17l6mlfi9ikqndpmi4pwlvb53g132cycyfm9nzdyiqr96k8ly4ig";
+    sha256 = "1i4h6vq681x8s05wi0n3ykavsxjh9hxdxn6banwjcqzhxzkyhsxi";
   };
 
   propagatedBuildInputs = [ aiohttp websockets ];
   patchPhase = ''
     substituteInPlace "requirements.txt" \
-      --replace "aiohttp>=3.3.0,<3.6.0" "aiohttp~=3.3" \
-      --replace "websockets>=6.0,<7.0" "websockets>=6"
+      --replace "aiohttp>=3.6.0,<3.7.0" "aiohttp~=3.6.0" \
+      --replace "websockets>=6.0,!=7.0,!=8.0,!=8.0.1,<9.0" "websockets>=6"
   '' + lib.optionalString withVoice ''
     substituteInPlace "discord/opus.py" \
       --replace "ctypes.util.find_library('opus')" "'${libopus}/lib/libopus.so.0'"
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 d85b4496e22..ba115121441 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.9.1";
+  version = "2.18.0";
 
   # get full repository need conftest.py to run tests
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d37a5c5be992f3b16db24b54d2801cbe370990fbc63089c6e7ef40d6f03cf5dd";
+    sha256 = "902f098fb7558f035333804a5aeba2fb26a2a715388808205a17cbb2e02e0558";
   };
 
   checkInputs = [ pytest pytest-repeat pytest-timeout mock joblib ];
diff --git a/pkgs/development/python-modules/distro/default.nix b/pkgs/development/python-modules/distro/default.nix
index 8880ec7235d..cee4e6deb38 100644
--- a/pkgs/development/python-modules/distro/default.nix
+++ b/pkgs/development/python-modules/distro/default.nix
@@ -1,23 +1,18 @@
-{ stdenv, fetchPypi, buildPythonPackage, pytest, pytestcov }:
+{ stdenv, fetchPypi, buildPythonPackage }:
 
 buildPythonPackage rec {
   pname = "distro";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mrg75w4ap7mdzyga75yaid9n8bgb345ih5mwjp3plj6v1jxwb9n";
+    sha256 = "0e58756ae38fbd8fc3020d54badb8eae17c5b9dcbed388b17bb55b8a5928df92";
   };
 
-  # TODO: Enable more tests on NixOS (20 out of 173 are failing, 10 due to the
-  # missing lsb_release binary):
-  patches = [ ./nixos.patch ];
+  # tests are very targeted at individual linux distributions
+  doCheck = false;
 
-  checkInputs = [ pytest pytestcov ];
-
-  checkPhase = ''
-    py.test
-  '';
+  pythonImportcheck = [ "distro" ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/nir0s/distro";
diff --git a/pkgs/development/python-modules/distro/nixos.patch b/pkgs/development/python-modules/distro/nixos.patch
deleted file mode 100644
index 21aa4827b63..00000000000
--- a/pkgs/development/python-modules/distro/nixos.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/tests/test_distro.py b/tests/test_distro.py
-index 5521068..4e1bab8 100644
---- a/tests/test_distro.py
-+++ b/tests/test_distro.py
-@@ -432,7 +432,7 @@ class TestOSRelease:
-         self._test_outcome(desired_outcome)
- 
- 
--@pytest.mark.skipif(not IS_LINUX, reason='Irrelevant on non-linux')
-+@pytest.mark.skip(reason='lsb_release is not available and would return exit code 3')
- class TestLSBRelease(DistroTestCase):
- 
-     def setup_method(self, test_method):
-@@ -919,7 +919,7 @@ class TestDistroRelease:
-         self._test_outcome(desired_outcome, 'cloudlinux', '7', 'redhat')
- 
- 
--@pytest.mark.skipif(not IS_LINUX, reason='Irrelevant on non-linux')
-+@pytest.mark.skip(reason='Unknown (TODO)')
- class TestOverall(DistroTestCase):
-     """Test a LinuxDistribution object created with default arguments.
- 
-@@ -1618,7 +1618,7 @@ def _bad_os_listdir(path='.'):
-     raise OSError()
- 
- 
--@pytest.mark.skipIf(not IS_LINUX, reason='Irrelevant on non-linx')
-+@pytest.mark.skip(reason='Unknown (TODO)')
- class TestOverallWithEtcNotReadable(TestOverall):
-     def setup_method(self, test_method):
-         self._old_listdir = os.listdir
diff --git a/pkgs/development/python-modules/dj-email-url/default.nix b/pkgs/development/python-modules/dj-email-url/default.nix
index cd01ddf1e82..711eee059ca 100644
--- a/pkgs/development/python-modules/dj-email-url/default.nix
+++ b/pkgs/development/python-modules/dj-email-url/default.nix
@@ -5,12 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.2.0";
+  version = "1.0.1";
   pname = "dj-email-url";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0362e390c17cc377f03bcbf6daf3f671797c929c1bf78a9f439d78f215ebe3fd";
+    sha256 = "32dc567c5cc3d4106710ec36dd645c8c1b20e2d8f588a17ab88bcc23e347d00a";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/django-auth-ldap/default.nix b/pkgs/development/python-modules/django-auth-ldap/default.nix
index 9f50a7ea22b..c419fff7902 100644
--- a/pkgs/development/python-modules/django-auth-ldap/default.nix
+++ b/pkgs/development/python-modules/django-auth-ldap/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "django-auth-ldap";
-  version = "2.1.1";
+  version = "2.2.0";
   disabled = isPy27;
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1j1fwinbkr4khn9i869r22jfdgw2kli0jqrz5shyd36jllsvrfzs";
+    sha256 = "11af1773b08613339d2c3a0cec1308a4d563518f17b1719c3759994d0b4d04bf";
   };
 
   propagatedBuildInputs = [ ldap django ]; 
diff --git a/pkgs/development/python-modules/django-cache-url/default.nix b/pkgs/development/python-modules/django-cache-url/default.nix
index 6c5ac103912..6abe92c43f7 100644
--- a/pkgs/development/python-modules/django-cache-url/default.nix
+++ b/pkgs/development/python-modules/django-cache-url/default.nix
@@ -5,12 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.0.0";
+  version = "3.1.2";
   pname = "django-cache-url";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "235950e2d7cb16164082167c2974301e2f0fb2313d40bfacc9d24f5b09c3514b";
+    sha256 = "d0ee0d6c5daab92787bff47a4a6f5a6cf97c3c80d81a990820b2af16e12ad65a";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/django-cleanup/default.nix b/pkgs/development/python-modules/django-cleanup/default.nix
index 37b0959b6b7..1f5e313c39c 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 = "4.0.1";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "195hkany3iwg4wb4cbdrdmanxcahjl87n8v03dbamanx2ya3yb21";
+    sha256 = "4d0fd9ad3117a219e4cb3e35dd32f39c764a860ce56b820abb88ad3ec063ffd7";
   };
 
   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 6e699391705..11c935df996 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.2.0";
+  version = "3.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "84933651fbbde8f2bc084bef2f077b79db1ec1389432f21dd661eaae6b3d6a95";
+    sha256 = "73d654950b5f5e7e4f67c05183d2169d4f7518ceb87734eb0d68f9e43be59f1c";
   };
 
   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 5d50c628920..d472a595568 100644
--- a/pkgs/development/python-modules/django-dynamic-preferences/default.nix
+++ b/pkgs/development/python-modules/django-dynamic-preferences/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "django-dynamic-preferences";
-  version = "1.8";
+  version = "1.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1v7mf48gb2qmmks3ifnhkh0vfd7hpvx5v81ypc9cqy35n3ir0q4a";
+    sha256 = "407db27bf55d391c4c8a4944e0521f35eff82c2f2fd5a2fc843fb1b4cc1a31f4";
   };
 
   propagatedBuildInputs = [ six django persisting-theory ]; 
diff --git a/pkgs/development/python-modules/django-filter/default.nix b/pkgs/development/python-modules/django-filter/default.nix
index 496ccd268f9..2079d336737 100644
--- a/pkgs/development/python-modules/django-filter/default.nix
+++ b/pkgs/development/python-modules/django-filter/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "django-filter";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "057xiijig8r2nxrd9gj1nki168422rsh8ap5vkbr9zyp1mzvbpn3";
+    sha256 = "11e63dd759835d9ba7a763926ffb2662cf8a6dcb4c7971a95064de34dbc7e5af";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/pkgs/development/python-modules/django-jinja2/default.nix b/pkgs/development/python-modules/django-jinja2/default.nix
index 7b49ddb5399..97a9608cff7 100644
--- a/pkgs/development/python-modules/django-jinja2/default.nix
+++ b/pkgs/development/python-modules/django-jinja2/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "django-jinja";
-  version = "2.4.1";
+  version = "2.6.0";
 
   meta = {
     description = "Simple and nonobstructive jinja2 integration with Django";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8a49d73de616a12075eee14c6d3bbab936261a463457d40348d8b8e2995cfbed";
+    sha256 = "7459985c25ddb6584c6bab345761c8c5557713448e6fbb322af1b6dd7f5512bd";
   };
 
   buildInputs = [ django pytz tox ];
diff --git a/pkgs/development/python-modules/django-mailman3/default.nix b/pkgs/development/python-modules/django-mailman3/default.nix
index bcb39633f7e..afa504f1bc7 100644
--- a/pkgs/development/python-modules/django-mailman3/default.nix
+++ b/pkgs/development/python-modules/django-mailman3/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "django-mailman3";
-  version = "1.3.2";
+  version = "1.3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vq5qa136h4rz4hjznnk6y8l443i41yh4w4wxg20f9b059xrsld1";
+    sha256 = "7e37b68bb47e9ae196ca19018f576e2c8c90189c5bd82d4e549d0c2f2f3f35fb";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/django-picklefield/default.nix b/pkgs/development/python-modules/django-picklefield/default.nix
index 90772b503af..a9a03e9066c 100644
--- a/pkgs/development/python-modules/django-picklefield/default.nix
+++ b/pkgs/development/python-modules/django-picklefield/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "django-picklefield";
-  version = "2.1.1";
+  version = "3.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0imncys5s3vsy2q79nn7k5d670da1xgmcr9gmhn06fry6ibf39b7";
+    sha256 = "15ccba592ca953b9edf9532e64640329cd47b136b7f8f10f2939caa5f9ce4287";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/pkgs/development/python-modules/django-q/default.nix b/pkgs/development/python-modules/django-q/default.nix
index 89a88348244..9c19903a3f5 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.0.2";
+  version = "1.2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "70081f58c6d78748d8664acbf028fb641687c36df38d3d31e9f1b6fcfac1079f";
+    sha256 = "6838e6dda377ab6bd31f5721a66aa6d19ad9a88ca9c03cbb464b2321d3c4c979";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/django-raster/default.nix b/pkgs/development/python-modules/django-raster/default.nix
index 03310afa027..056f8dffdcf 100644
--- a/pkgs/development/python-modules/django-raster/default.nix
+++ b/pkgs/development/python-modules/django-raster/default.nix
@@ -6,14 +6,14 @@ if stdenv.lib.versionOlder django.version "2.0"
 then throw "django-raster requires Django >= 2.0. Consider overiding the python package set to use django_2."
 else
 buildPythonPackage rec {
-  version = "0.7";
+  version = "0.8";
   pname = "django-raster";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d23089d56f5f435c01a001af6f8ff7905636f87085b13035b4c5b3ace203d98a";
+    sha256 = "9417d8a17930dffee4719f79a38c6ab5d20ac7145d4edf88df0abcb5a360de51";
   };
 
   # Tests require a postgresql + postgis server
diff --git a/pkgs/development/python-modules/django-sampledatahelper/default.nix b/pkgs/development/python-modules/django-sampledatahelper/default.nix
index edeb914946e..faad550d439 100644
--- a/pkgs/development/python-modules/django-sampledatahelper/default.nix
+++ b/pkgs/development/python-modules/django-sampledatahelper/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "django-sampledatahelper";
-  version = "0.4.1";
+  version = "0.5";
 
   meta = {
     description = "Helper class for generate sample data for django apps development";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1795zg73lajcsfyd8i8cprb2v93d4csifjnld6bfnya90ncsbl4n";
+    sha256 = "3fbc5533f1055f9d1944097f6271e8b18fcf4ed5cc582b518616445145300015";
   };
 
   buildInputs = [ django nose pillow sampledata six versiontools ];
diff --git a/pkgs/development/python-modules/django-simple-captcha/default.nix b/pkgs/development/python-modules/django-simple-captcha/default.nix
index 67977caf9ec..51c5b26bdf2 100644
--- a/pkgs/development/python-modules/django-simple-captcha/default.nix
+++ b/pkgs/development/python-modules/django-simple-captcha/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256:1g92sdgcb81r3il34pg0z210cz6wm14k00b558nshai8br1g09gw";
+    sha256 = "1g92sdgcb81r3il34pg0z210cz6wm14k00b558nshai8br1g09gw";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/django-versatileimagefield/default.nix b/pkgs/development/python-modules/django-versatileimagefield/default.nix
index 90993db4c5b..de5854192d2 100644
--- a/pkgs/development/python-modules/django-versatileimagefield/default.nix
+++ b/pkgs/development/python-modules/django-versatileimagefield/default.nix
@@ -4,17 +4,18 @@
 , django
 , python
 , pillow
+, python_magic
 }:
 
 buildPythonPackage rec {
   pname = "django-versatileimagefield";
-  version = "1.11";
+  version = "2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8322ee9d7bf5ffa5360990320d2cc2efc7017feff35422636d49f625721edf82";
+    sha256 = "b197e7066f23bb73b001a61525f2b1cae3dd654bf208a944a7ff5a3fe6107b51";
   };
-  propagatedBuildInputs = [ pillow ];
+  propagatedBuildInputs = [ pillow python_magic ];
 
   checkInputs = [ django ];
 
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/2_2.nix b/pkgs/development/python-modules/django/2_2.nix
index 70cba819e92..fa5be71095b 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.11";
+  version = "2.2.14";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0l0gndky4nwc1jk68b31m583a9g0fhmll903p0xislyyddz3iqk5";
+    sha256 = "14b1w00hrf4n7hla6d6nf2p5r4k6jh3fcmv7bd1v04vpcpvfrw7d";
   };
 
   patches = stdenv.lib.optional withGdal
diff --git a/pkgs/development/python-modules/django_guardian/default.nix b/pkgs/development/python-modules/django_guardian/default.nix
index e276c6b656b..b03524aa590 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.1.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8cf4efd67a863eb32beafd4335a38ffb083630f8ab2045212d27f8f9c3abe5a6";
+    sha256 = "8cacf49ebcc1e545f0a8997971eec0fe109f5ed31fc2a569a7bf5615453696e2";
   };
 
   checkInputs = [ pytest pytestrunner pytest-django django_environ mock ];
diff --git a/pkgs/development/python-modules/django_modelcluster/default.nix b/pkgs/development/python-modules/django_modelcluster/default.nix
index 27060e18ae2..4ded69bc325 100644
--- a/pkgs/development/python-modules/django_modelcluster/default.nix
+++ b/pkgs/development/python-modules/django_modelcluster/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "django-modelcluster";
-  version = "5.0.1";
+  version = "5.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1fk7fh30i0fzi0hjd841vxh25iryvgp4lirmxfpq428w4nq7p1bg";
+    sha256 = "c7a42cf9b93d1161a10bf59919f7ee52d996a523a4134b2a136f6fe1eba7a2fa";
   };
 
   disabled = pythonOlder "3.5";
diff --git a/pkgs/development/python-modules/django_redis/default.nix b/pkgs/development/python-modules/django_redis/default.nix
index 26fb504e0e9..114962477fd 100644
--- a/pkgs/development/python-modules/django_redis/default.nix
+++ b/pkgs/development/python-modules/django_redis/default.nix
@@ -2,11 +2,11 @@
   mock, django, redis, msgpack }:
 buildPythonPackage rec {
   pname = "django-redis";
-  version = "4.11.0";
+  version = "4.12.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a5b1e3ffd3198735e6c529d9bdf38ca3fcb3155515249b98dc4d966b8ddf9d2b";
+    sha256 = "306589c7021e6468b2656edc89f62b8ba67e8d5a1c8877e2688042263daa7a63";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/django_reversion/default.nix b/pkgs/development/python-modules/django_reversion/default.nix
index 8b536a40ebc..9c61cfdfe86 100644
--- a/pkgs/development/python-modules/django_reversion/default.nix
+++ b/pkgs/development/python-modules/django_reversion/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "django-reversion";
-  version = "3.0.5";
+  version = "3.0.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1add55bb05311f4acd26683dd71af60729d4f33dfe42c608da8e15e679a32009";
+    sha256 = "72fc53580a6b538f0cfff10f27f42333f67d79c406399289c94ec5a193cfb3e1";
   };
 
   # tests assume the availability of a mysql/postgresql database
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/django_tagging/default.nix b/pkgs/development/python-modules/django_tagging/default.nix
index b54186b4fa2..4bcaa549a12 100644
--- a/pkgs/development/python-modules/django_tagging/default.nix
+++ b/pkgs/development/python-modules/django_tagging/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "django-tagging";
-  version = "0.4.6";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "210b32af8372b8f68f261fdb7394075669222608d1e6a3bbf2031d59c826eb68";
+    sha256 = "28d68fa4831705e51ad7d1e845ed6dd9e354f9b6f8a5f63b655a430646ef4e8d";
   };
 
   # error: invalid command 'test'
diff --git a/pkgs/development/python-modules/django_taggit/default.nix b/pkgs/development/python-modules/django_taggit/default.nix
index d7359626914..80ee899b183 100644
--- a/pkgs/development/python-modules/django_taggit/default.nix
+++ b/pkgs/development/python-modules/django_taggit/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "django-taggit";
-  version = "1.2.0";
+  version = "1.3.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4186a6ce1e1e9af5e2db8dd3479c5d31fa11a87d216a2ce5089ba3afde24a2c5";
+    sha256 = "4a833bf71f4c2deddd9745924eee53be1c075d7f0020a06f12e29fa3d752732d";
   };
 
   propagatedBuildInputs = [ isort django ];
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/djmail/default.nix b/pkgs/development/python-modules/djmail/default.nix
index 516a2163f44..8efb9788e12 100644
--- a/pkgs/development/python-modules/djmail/default.nix
+++ b/pkgs/development/python-modules/djmail/default.nix
@@ -5,7 +5,7 @@
 
 buildPythonPackage rec {
   pname = "djmail";
-  version = "1.1.0";
+  version = "2.0.0";
 
   meta = {
     description = "Simple, powerfull and nonobstructive django email middleware";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "87d2a8b4bdf67ae9b312e127ccc873a53116cf297ec786460d782ce82eaa76b5";
+    sha256 = "cf3ce7626305d218a8bf2b6a219266ef8061aceeefc1c70a54170f4105465202";
   };
 
   nativeBuildInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/dkimpy/default.nix b/pkgs/development/python-modules/dkimpy/default.nix
index 5d045e5108a..9147435076d 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";
+    hash = "sha256:088iz5cqjqh4c7141d94pvn13bh25aizqlrifwv6fs5g16zj094s";
 };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/dm-sonnet/default.nix b/pkgs/development/python-modules/dm-sonnet/default.nix
index 4205d32d495..627f8eedaeb 100644
--- a/pkgs/development/python-modules/dm-sonnet/default.nix
+++ b/pkgs/development/python-modules/dm-sonnet/default.nix
@@ -36,7 +36,7 @@ let
     bazelTarget = ":install";
 
     fetchAttrs = {
-      sha256 = "0jlgmwcanfkhkwvh4vxibpi0zyyl6xkjzcz2xqn7raympqscq81a";
+      sha256 = "1dka5nap3d28n18pn3wp5xsi4x3z02h1j8rcjdvi3y6dbqjwdw0v";
     };
 
     bazelFlags = [
diff --git a/pkgs/development/python-modules/dnslib/default.nix b/pkgs/development/python-modules/dnslib/default.nix
index fafa4c5cbf5..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.12";
+  version = "0.9.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c206f09948f3ad17884adffdb552b700072c6022fa59744a0f0606114c475e19";
+    sha256 = "1yz63cgiv910wkx90if09bql1n63lq6hy4wfpqink0q4sxy0mlpv";
   };
 
   checkPhase = "VERSIONS=${python.interpreter} ./run_tests.sh";
diff --git a/pkgs/development/python-modules/doc8/default.nix b/pkgs/development/python-modules/doc8/default.nix
index f7e620f491c..c2a7df098f4 100644
--- a/pkgs/development/python-modules/doc8/default.nix
+++ b/pkgs/development/python-modules/doc8/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "doc8";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2df89f9c1a5abfb98ab55d0175fed633cae0cf45025b8b1e0ee5ea772be28543";
+    sha256 = "4d1df12598807cf08ffa9a1d5ef42d229ee0de42519da01b768ff27211082c12";
   };
 
   buildInputs = [ pbr ];
diff --git a/pkgs/development/python-modules/docker/default.nix b/pkgs/development/python-modules/docker/default.nix
index a31ba7c69c0..fd43e8cf77c 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.0";
+  version = "4.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0bkj1xfp6mnvk1i9hl5awsmwi07q6iwwsjznd7kvrx5m19i6dbnx";
+    sha256 = "0m4vgk2831yfdjy8vqyvvfnmwv270a44z358frdzb672wzfbmvi6";
   };
 
   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 5c3e517a494..580945656b4 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.15";
+  version = "0.0.18";
   pname = "dockerfile-parse";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1s05s1hc834yk6qxj2yv3fh7grj3q52d6jjy0sv1p05938baprfm";
+    sha256 = "a09eae6871b7b314f8a8bddb67b6c5002708b22247511906cf2a9a45564b83db";
   };
 
   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 42f1270dc1b..d79aec5b8d1 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.12.182";
+  version = "2.14.186";
 
   # No source available from official repo
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aaf150b06d44f07639aca48be1fca69c7732d57507e6adc4e8451c7a93489116";
+    sha256 = "ba78897869e938c9ad1cb58e7d82bcf693f5e9a0dfa5e2dbfcee2ae5ea5e87f8";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dogpile.cache/default.nix b/pkgs/development/python-modules/dogpile.cache/default.nix
index af811903505..cdc244bc1b4 100644
--- a/pkgs/development/python-modules/dogpile.cache/default.nix
+++ b/pkgs/development/python-modules/dogpile.cache/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "dogpile.cache";
-  version = "0.9.0";
+  version = "0.9.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0sr1fn6b4k5bh0cscd9yi8csqxvj4ngzildav58x5p694mc86j5k";
+    sha256 = "bc9dde1ffa5de0179efbcdc73773ef0553921130ad01955422f2932be35c059e";
   };
 
   # Disable concurrency tests that often fail,
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/dot2tex/default.nix b/pkgs/development/python-modules/dot2tex/default.nix
index f671cdc9642..03445f79117 100644
--- a/pkgs/development/python-modules/dot2tex/default.nix
+++ b/pkgs/development/python-modules/dot2tex/default.nix
@@ -1,8 +1,11 @@
 { stdenv
+, python
 , buildPythonPackage
 , fetchPypi
-, isPy3k
+, substituteAll
 , pyparsing
+, graphviz
+, texlive
 }:
 
 buildPythonPackage rec {
@@ -14,11 +17,26 @@ buildPythonPackage rec {
     sha256 = "1kp77wiv7b5qib82i3y3sn9r49rym43aaqm5aw1bwnzfbbq2m6i9";
   };
 
-  # Tests fail with 3.x. Furthermore, package is no longer maintained.
-  disabled = isPy3k;
+  patches = [
+    (substituteAll {
+      src = ./path.patch;
+      inherit graphviz;
+    })
+    ./test.patch # https://github.com/kjellmf/dot2tex/issues/5
+  ];
 
   propagatedBuildInputs = [ pyparsing ];
 
+  checkInputs = [
+    (texlive.combine {
+      inherit (texlive) scheme-small preview pstricks;
+    })
+  ];
+
+  checkPhase = ''
+    ${python.interpreter} tests/test_dot2tex.py
+  '';
+
   meta = with stdenv.lib; {
     description = "Convert graphs generated by Graphviz to LaTeX friendly formats";
     homepage = "https://github.com/kjellmf/dot2tex";
diff --git a/pkgs/development/python-modules/dot2tex/path.patch b/pkgs/development/python-modules/dot2tex/path.patch
new file mode 100644
index 00000000000..4e05b7a8dff
--- /dev/null
+++ b/pkgs/development/python-modules/dot2tex/path.patch
@@ -0,0 +1,104 @@
+diff --git a/dot2tex/dotparsing.py b/dot2tex/dotparsing.py
+index 391b5dc..6dc77a3 100644
+--- a/dot2tex/dotparsing.py
++++ b/dot2tex/dotparsing.py
+@@ -180,18 +180,8 @@ def __find_executables(path):
+ def find_graphviz():
+     """Locate Graphviz's executables in the system.
+ 
+-    Tries three methods:
+-
+-    First: Windows Registry (Windows only)
+-    This requires Mark Hammond's pywin32 is installed.
+-
+-    Secondly: Search the path
+-    It will look for 'dot', 'twopi' and 'neato' in all the directories
+-    specified in the PATH environment variable.
+-
+-    Thirdly: Default install location (Windows only)
+-    It will look for 'dot', 'twopi' and 'neato' in the default install
+-    location under the "Program Files" directory.
++    It will look for 'dot', 'twopi' and 'neato' in
++    @graphviz@/bin.
+ 
+     It will return a dictionary containing the program names as keys
+     and their paths as values.
+@@ -199,75 +189,9 @@ def find_graphviz():
+     If this fails, it returns None.
+     """
+ 
+-    # Method 1 (Windows only)
+-    #
+-    if os.sys.platform == 'win32':
+-        try:
+-            import win32api, win32con
+-
+-            # Get the GraphViz install path from the registry
+-            #
+-            hkey = win32api.RegOpenKeyEx(win32con.HKEY_LOCAL_MACHINE,
+-                                         "SOFTWARE\AT&T Research Labs\Graphviz", 0, win32con.KEY_QUERY_VALUE)
+-
+-            path = win32api.RegQueryValueEx(hkey, "InstallPath")[0]
+-            win32api.RegCloseKey(hkey)
+-
+-            # Now append the "bin" subdirectory:
+-            #
+-            path = os.path.join(path, "bin")
+-            progs = __find_executables(path)
+-            if progs is not None:
+-                # print("Used Windows registry")
+-                return progs
+-
+-        except ImportError:
+-            # Print a messaged suggesting they install these?
+-            #
+-            log.debug('The win32api is not installed')
+-            pass
+-        except:
+-            log.debug('Failed to access the registry key')
+-
+-    # Method 2 (Linux, Windows etc)
+-    #
+-    if 'PATH' in os.environ:
+-        for path in os.environ['PATH'].split(os.pathsep):
+-            progs = __find_executables(path)
+-            if progs is not None:
+-                return progs
+-
+-    # Method 3 (Windows only)
+-    #
+-    if os.sys.platform == 'win32':
+-        # Try and work out the equivalent of "C:\Program Files" on this
+-        # machine (might be on drive D:, or in a different language)
+-        #
+-        if 'PROGRAMFILES' in os.environ:
+-            # Note, we could also use the win32api to get this
+-            # information, but win32api may not be installed.
+-
+-            path = os.path.join(os.environ['PROGRAMFILES'], 'ATT', 'GraphViz', 'bin')
+-
+-        else:
+-            # Just in case, try the default...
+-            path = r"C:\Program Files\att\Graphviz\bin"
+-
+-        progs = __find_executables(path)
+-
+-        if progs is not None:
+-            # print("Used default install location")
+-            return progs
+-
+-    for path in (
+-            '/usr/bin', '/usr/local/bin',
+-            '/opt/local/bin',
+-            '/opt/bin', '/sw/bin', '/usr/share',
+-            '/Applications/Graphviz.app/Contents/MacOS/'):
+-        progs = __find_executables(path)
+-        if progs is not None:
+-            # print("Used path")
+-            return progs
++    progs = __find_executables('@graphviz@/bin')
++    if progs is not None:
++        return progs
+ 
+     # Failed to find GraphViz
+     #
diff --git a/pkgs/development/python-modules/dot2tex/test.patch b/pkgs/development/python-modules/dot2tex/test.patch
new file mode 100644
index 00000000000..9ead8ac5ee5
--- /dev/null
+++ b/pkgs/development/python-modules/dot2tex/test.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/test_dot2tex.py b/tests/test_dot2tex.py
+index 74b01ed..7be9aba 100644
+--- a/tests/test_dot2tex.py
++++ b/tests/test_dot2tex.py
+@@ -147,6 +147,7 @@ class NeedsQuotesTests(unittest.TestCase):
+ 
+ class MultipleStatements(unittest.TestCase):
+     # https://github.com/kjellmf/dot2tex/issues/5
++    @unittest.skip('fails upstream')
+     def test_semicolon(self):
+         """Test for issue 5"""
+         testgraph1 = """
diff --git a/pkgs/development/python-modules/dpath/default.nix b/pkgs/development/python-modules/dpath/default.nix
index c526d9aedc6..548bd516838 100644
--- a/pkgs/development/python-modules/dpath/default.nix
+++ b/pkgs/development/python-modules/dpath/default.nix
@@ -1,20 +1,19 @@
-{ stdenv, fetchPypi, buildPythonPackage
-, mock, nose
+{ stdenv, fetchPypi, buildPythonPackage, isPy27
+, mock, pytestCheckHook, nose, hypothesis
 }:
 
 buildPythonPackage rec {
   pname = "dpath";
-  version = "1.4.2";
+  version = "2.0.1";
+  disabled = isPy27; # uses python3 imports
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0gr7816pnzbyh9h1ia0qz0q1f9zfzacwb8dc36js8hw8x14myqqg";
+    sha256 = "bea06b5f4ff620a28dfc9848cf4d6b2bfeed34238edeb8ebe815c433b54eb1fa";
   };
 
-  checkInputs = [ mock nose ];
-  checkPhase = ''
-    nosetests
-  '';
+  # use pytest as nosetests hangs
+  checkInputs = [ mock nose pytestCheckHook hypothesis ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/akesterson/dpath-python";
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/drf-yasg/default.nix b/pkgs/development/python-modules/drf-yasg/default.nix
index d1a349d79a2..0f5f0bc56e0 100644
--- a/pkgs/development/python-modules/drf-yasg/default.nix
+++ b/pkgs/development/python-modules/drf-yasg/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "drf-yasg";
-  version = "1.16.1";
+  version = "1.17.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ri5h5xsacm99c6gvb4ldwisbqgiv2vq8qbn7vrh6vplzlpyvzb8";
+    sha256 = "5572e9d5baab9f6b49318169df9789f7399d0e3c7bdac8fdb8dfccf1d5d2b1ca";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dropbox/default.nix b/pkgs/development/python-modules/dropbox/default.nix
index 3ca9d59e27f..f271411a285 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 = "9.5.0";
+  version = "10.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0iz9hg1j7q9chka6fyzgpzqg2v4nbjx61xfvn9ixprxrdhvhr2hi";
+    sha256 = "082ylb6xn8xzix61lv2n8ya1k0gd494kr9vr2ys8ldbwxq9nyaaz";
   };
 
   # Set DROPBOX_TOKEN environment variable to a valid token.
diff --git a/pkgs/development/python-modules/duckdb/default.nix b/pkgs/development/python-modules/duckdb/default.nix
new file mode 100644
index 00000000000..c839dea3d1a
--- /dev/null
+++ b/pkgs/development/python-modules/duckdb/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, duckdb
+, numpy
+, pandas
+, pybind11
+, setuptools_scm
+, pytestrunner
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "duckdb";
+  inherit (duckdb) version src;
+
+  postConfigure = ''
+    cd tools/pythonpkg
+    export SETUPTOOLS_SCM_PRETEND_VERSION=${version}
+  '';
+
+  nativeBuildInputs = [
+    pybind11
+    setuptools_scm
+    pytestrunner
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+    pandas
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "DuckDB is an embeddable SQL OLAP Database Management System";
+    homepage = "https://pypi.python.org/pypi/duckdb";
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/duecredit/default.nix b/pkgs/development/python-modules/duecredit/default.nix
new file mode 100644
index 00000000000..28aaf8ee47c
--- /dev/null
+++ b/pkgs/development/python-modules/duecredit/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, contextlib2
+, pytest
+, pytestCheckHook
+, vcrpy
+, citeproc-py
+, requests
+, setuptools
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "duecredit";
+  version = "0.8.0";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1yxd8579pakrfhq0hls0iy37nxllsm8y33na220g08znibrp7ix0";
+  };
+
+  # bin/duecredit requires setuptools at runtime
+  propagatedBuildInputs = [ citeproc-py requests setuptools six ];
+
+  checkInputs = [ contextlib2 pytest pytestCheckHook vcrpy ];
+  disabledTests = [ "test_io" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/duecredit/duecredit";
+    description = "Simple framework to embed references in code";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/dulwich/0_19.nix b/pkgs/development/python-modules/dulwich/0_19.nix
new file mode 100644
index 00000000000..82b9bed492c
--- /dev/null
+++ b/pkgs/development/python-modules/dulwich/0_19.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, urllib3, certifi
+, gevent, geventhttpclient, mock, fastimport
+, git, glibcLocales }:
+
+buildPythonPackage rec {
+  version = "0.19.16";
+  pname = "dulwich";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "f74561c448bfb6f04c07de731c1181ae4280017f759b0bb04fa5770aa84ca850";
+  };
+
+  LC_ALL = "en_US.UTF-8";
+
+  propagatedBuildInputs = [ urllib3 certifi ];
+
+  # Only test dependencies
+  checkInputs = [ git glibcLocales gevent geventhttpclient mock fastimport ];
+
+  doCheck = !stdenv.isDarwin;
+
+  meta = with stdenv.lib; {
+    description = "Simple Python implementation of the Git file formats and protocols";
+    homepage = "https://samba.org/~jelmer/dulwich/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ koral ];
+  };
+}
diff --git a/pkgs/development/python-modules/dulwich/default.nix b/pkgs/development/python-modules/dulwich/default.nix
index 01ad71883ce..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.19.14";
+  version = "0.20.5";
   pname = "dulwich";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d1320232c859ab086fff79eee8fa6ddbcbcbe01ff0c64c9bed48eca470b00b46";
+    sha256 = "98484ede022da663c96b54bc8dcdb4407072cb50efd5d20d58ca4e7779931305";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/python-modules/easyprocess/default.nix b/pkgs/development/python-modules/easyprocess/default.nix
index 878b882810f..3dda2c91455 100644
--- a/pkgs/development/python-modules/easyprocess/default.nix
+++ b/pkgs/development/python-modules/easyprocess/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "EasyProcess";
-  version = "0.2.10";
+  version = "0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06zaxydyqvb5mk5kxs6y3pjbq5nm6lmi3h5g3y41xpic48q5wsv3";
+    sha256 = "115rzzr0hx4af4m6krf7dxn8851n4l8jfxahjzjc2r0zq2m8v57v";
   };
 
   # No tests
diff --git a/pkgs/development/python-modules/ecdsa/default.nix b/pkgs/development/python-modules/ecdsa/default.nix
index aa69b7e2fcd..0f224bd8ab0 100644
--- a/pkgs/development/python-modules/ecdsa/default.nix
+++ b/pkgs/development/python-modules/ecdsa/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "ecdsa";
-  version = "0.14.1";
+  version = "0.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "64c613005f13efec6541bb0a33290d0d03c27abab5f15fbab20fb0ee162bdd8e";
+    sha256 = "8f12ac317f8a1318efa75757ef0a651abe12e51fc1af8838fb91079445227277";
   };
 
   propagatedBuildInputs = [ six ];
@@ -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/ecpy/default.nix b/pkgs/development/python-modules/ecpy/default.nix
index c6109d5c084..153fcd08d25 100644
--- a/pkgs/development/python-modules/ecpy/default.nix
+++ b/pkgs/development/python-modules/ecpy/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ECPy";
-  version = "0.10.0";
+  version = "1.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8889122d3a8bc1a08b4bda42c073dd22305d770b7876356de806ff91748983bd";
+    sha256 = "6dd09f8cda5a1d673228ff9ef41aea8f036ee5ef3183198de83c14957d68c3e0";
   };
 
   propagatedBuildInputs = lib.optional (!isPy3k) future;
diff --git a/pkgs/development/python-modules/elasticsearch-dsl/default.nix b/pkgs/development/python-modules/elasticsearch-dsl/default.nix
index deef21985c6..68d658f4989 100644
--- a/pkgs/development/python-modules/elasticsearch-dsl/default.nix
+++ b/pkgs/development/python-modules/elasticsearch-dsl/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "elasticsearch-dsl";
-  version = "7.1.0";
+  version = "7.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3f860e0304d703f63b458fea3782f09a823ab07da7ee84ae4bff1aa63e22aedb";
+    sha256 = "1e345535164cb684de4b825e1d0daf81b75554b30d3905446584a9e4af0cc3e7";
   };
 
   propagatedBuildInputs = [ elasticsearch python-dateutil six ]
diff --git a/pkgs/development/python-modules/elasticsearch/default.nix b/pkgs/development/python-modules/elasticsearch/default.nix
index 8c6d0bb543a..e060b819a55 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.6.0";
+  version = "7.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1j499w9hbpyx0v83xnn1vrm45amx5lbnhlik65v5z1n0gb9v4a6j";
+    sha256 = "92b534931865a186906873f75ae0b91808ff5036b0f2b9269eb5f6dc09644b55";
   };
 
   # 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 09d4cc6024e..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.4";
+  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 = "1z7403ykfdb2zy6g4qcbjm87ibpi0k59dgmz1px7z7wy5p2vknxw";
+    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/email-validator/default.nix b/pkgs/development/python-modules/email-validator/default.nix
index 3ad0c34685b..215584aa8cd 100644
--- a/pkgs/development/python-modules/email-validator/default.nix
+++ b/pkgs/development/python-modules/email-validator/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "email_validator";
-  version = "1.0.2";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ja9149l9ck5n45a72h3is7v476hjny5ybxbcamx1nw6iplsm7k6";
+    sha256 = "63094045c3e802c3d3d575b18b004a531c36243ca8d1cec785ff6bfcb04185bb";
   };
 
   doCheck = false;
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 8dc28f823e1..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.10";
+  version = "1.1.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "080qkvkmfw4004cl721l5bvpg001xz8vs6q59dg797kqxfrwk5kw";
+    sha256 = "d1fc9d128ce05837d7e149413fbec71bcf84d9ca510accea56761d3f4bd0a021";
   };
 
   # The versions of `sanic` and `websockets` in nixpkgs only support 3.6 or later
diff --git a/pkgs/development/python-modules/enum34/default.nix b/pkgs/development/python-modules/enum34/default.nix
index 9d9af3c6447..1f0d1094276 100644
--- a/pkgs/development/python-modules/enum34/default.nix
+++ b/pkgs/development/python-modules/enum34/default.nix
@@ -7,11 +7,11 @@
 
 if pythonAtLeast "3.4" then null else buildPythonPackage rec {
   pname = "enum34";
-  version = "1.1.6";
+  version = "1.1.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1";
+    sha256 = "cce6a7477ed816bd2542d03d53db9f0db935dd013b70f336a95c73979289f248";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/ephem/default.nix b/pkgs/development/python-modules/ephem/default.nix
index 87d719a7af3..32fe91cb72d 100644
--- a/pkgs/development/python-modules/ephem/default.nix
+++ b/pkgs/development/python-modules/ephem/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "ephem";
-  version = "3.7.7.0";
+  version = "3.7.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0dj4kk325b01s7q1zkwpm9rrzl7n1jf7fr92wcajjhc5kx14hwb0";
+    sha256 = "36b51a8dc7cfdeb456dd6b8ab811accab8341b2d562ee3c6f4c86f6d3dbb984e";
   };
 
   patchFlags = [ "-p0" ];
diff --git a/pkgs/development/python-modules/escapism/default.nix b/pkgs/development/python-modules/escapism/default.nix
index b2ac3658235..6093e16d4b5 100644
--- a/pkgs/development/python-modules/escapism/default.nix
+++ b/pkgs/development/python-modules/escapism/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "escapism";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5f1cc1fa04a95f5b85b3da194750f8a71846d493ea332f62e8798949f10c9b86";
+    sha256 = "73256bdfb4f22230f0428fc6efecee61cdc4fad531b6f98b849cb9c80711e4ec";
   };
 
   # No tests distributed
diff --git a/pkgs/development/python-modules/etelemetry/default.nix b/pkgs/development/python-modules/etelemetry/default.nix
index 2323a4dcd57..869c6ccba92 100644
--- a/pkgs/development/python-modules/etelemetry/default.nix
+++ b/pkgs/development/python-modules/etelemetry/default.nix
@@ -1,15 +1,16 @@
-{ lib, buildPythonPackage, fetchPypi, requests, pytest }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, ci-info, ci-py, requests, pytest }:
 
 buildPythonPackage rec {
-  version = "0.1.2";
+  version = "0.2.1";
   pname = "etelemetry";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0m3dqvs3xbckmjiwppy366qmgzx0z917j1d7dadfl3bprgipy51j";
+    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/evdev/default.nix b/pkgs/development/python-modules/evdev/default.nix
index ab169fe679d..305ada89552 100644
--- a/pkgs/development/python-modules/evdev/default.nix
+++ b/pkgs/development/python-modules/evdev/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "evdev";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b03f5e1be5b4a5327494a981b831d251a142b09e8778eda1a8b53eba91100166";
+    sha256 = "0kb3636yaw9l8xi8s184w0r0n9ic5dw3b8hx048jf9fpzss4kimi";
   };
 
   buildInputs = [ linuxHeaders ];
diff --git a/pkgs/development/python-modules/eve/default.nix b/pkgs/development/python-modules/eve/default.nix
index 7a74de03d52..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";
+  version = "1.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1a7i7x77p5wjqfzmgn30m9sz2mcz06k4qf5af6a45109lafcq0bv";
+    sha256 = "a8a1216ef1d3f1a4c4fc5a7bd315eca5a3ef7dfc6b78807cdf19ddfeecafcc3e";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/eventlet/default.nix b/pkgs/development/python-modules/eventlet/default.nix
index 9a006c08772..14c5cfcb390 100644
--- a/pkgs/development/python-modules/eventlet/default.nix
+++ b/pkgs/development/python-modules/eventlet/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "eventlet";
-  version = "0.25.1";
+  version = "0.25.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6c9c625af48424c4680d89314dbe45a76cc990cf002489f9469ff214b044ffc1";
+    sha256 = "4c8ab42c51bff55204fef43cff32616558bedbc7538d876bb6a96ce820c7f9ed";
   };
 
   checkInputs = [ nose ];
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/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/extension-helpers/default.nix b/pkgs/development/python-modules/extension-helpers/default.nix
new file mode 100644
index 00000000000..0c23a69a89c
--- /dev/null
+++ b/pkgs/development/python-modules/extension-helpers/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, pytestCheckHook
+, setuptools_scm
+}:
+
+buildPythonPackage rec {
+  pname = "extension-helpers";
+  version = "0.1";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "10iqjzmya2h4sk765dlm1pbqypwlqyh8rw59a5m9i63d3klnz2mc";
+  };
+
+  nativeBuildInputs = [
+    setuptools_scm
+  ];
+
+  propagatedBuildInputs = [
+    pytestCheckHook
+  ];
+
+  # avoid importing local module
+  preCheck = ''
+    cd extension_helpers
+  '';
+
+  # assumes setup.py is in pwd
+  disabledTests = [ "compiler_module" ];
+
+  meta = with lib; {
+    description = "Helpers to assist with building packages with compiled C/Cython extensions";
+    homepage = "https://github.com/astropy/extension-helpers";
+    license = licenses.bsd3;
+    maintainers = [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/eyed3/default.nix b/pkgs/development/python-modules/eyed3/default.nix
index ee0c426bded..321c26542d1 100644
--- a/pkgs/development/python-modules/eyed3/default.nix
+++ b/pkgs/development/python-modules/eyed3/default.nix
@@ -1,39 +1,33 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
-, pythonAtLeast
 , pythonOlder
-, paver
 , python
 , isPyPy
 , six
-, pathlib
-, python_magic
 , lib
+, filetype
+, deprecation
+, dataclasses
 }:
 
 buildPythonPackage rec {
-  version = "0.8.12";
+  version = "0.9.5";
   pname    = "eyeD3";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e54eec0a03fb8e7e9e8b509546c6d92efbc871ea7597611fe2c16f03e1c94b6d";
+    sha256 = "faf5806197f2093e82c2830d41f2378f07b3a9da07a16fafb14fc6fbdebac50a";
   };
 
-  # https://github.com/nicfit/eyeD3/pull/284
-  postPatch = lib.optionalString (pythonAtLeast "3.4") ''
-    sed -ie '/pathlib/d' requirements/requirements.yml
-  '';
-
-  buildInputs = [ paver ];
-
   # requires special test data:
   # https://github.com/nicfit/eyeD3/blob/103198e265e3279384f35304e8218be6717c2976/Makefile#L97
   doCheck = false;
 
-  propagatedBuildInputs = [ six python_magic ] ++ lib.optional (pythonOlder "3.4") pathlib;
+  propagatedBuildInputs = [
+    six filetype deprecation
+  ] ++ lib.optional (pythonOlder "3.7") dataclasses;
 
   postInstall = ''
     for prog in "$out/bin/"*; do
@@ -55,5 +49,4 @@ buildPythonPackage rec {
       and v2.3/v2.4.
     '';
   };
-
 }
diff --git a/pkgs/development/python-modules/face/default.nix b/pkgs/development/python-modules/face/default.nix
index 34d91ceda98..71fbca91610 100644
--- a/pkgs/development/python-modules/face/default.nix
+++ b/pkgs/development/python-modules/face/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "face";
-  version = "19.1.2";
+  version = "20.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "38c94ec17a4d6f9628f094b697faca0f802f4028071ce8cbdb3116d4cde772a3";
+    sha256 = "7d59ca5ba341316e58cf72c6aff85cca2541cf5056c4af45cb63af9a814bed3e";
   };
 
   propagatedBuildInputs = [ boltons ];
diff --git a/pkgs/development/python-modules/fake-useragent/default.nix b/pkgs/development/python-modules/fake-useragent/default.nix
new file mode 100644
index 00000000000..fb85408dd3d
--- /dev/null
+++ b/pkgs/development/python-modules/fake-useragent/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchPypi, buildPythonPackage, six, pytest }:
+
+buildPythonPackage rec {
+  pname = "fake-useragent";
+  version = "0.1.11";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0dfz3bpmjmaxlhda6hfgsac7afb65pljibi8zkp9gc0ffn5rj161";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  checkInputs = [ pytest ];
+
+  meta = with stdenv.lib; {
+    description = "Up to date simple useragent faker with real world database";
+    homepage = "https://github.com/hellysmile/fake-useragent";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ evanjs ];
+  };
+}
diff --git a/pkgs/development/python-modules/faker/default.nix b/pkgs/development/python-modules/faker/default.nix
index 89415237714..ced4744d93f 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 = "3.0.0";
+  version = "4.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "92c84a10bec81217d9cb554ee12b3838c8986ce0b5d45f72f769da22e4bb5432";
+    sha256 = "c006b3664c270a2cfd4785c5e41ff263d48101c4e920b5961cf9c237131d8418";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/pkgs/development/python-modules/fastapi/default.nix b/pkgs/development/python-modules/fastapi/default.nix
index 3513f57cdbe..32ebd6a0307 100644
--- a/pkgs/development/python-modules/fastapi/default.nix
+++ b/pkgs/development/python-modules/fastapi/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "fastapi";
-  version = "0.54.1";
+  version = "0.55.1";
   format = "flit";
   disabled = !isPy3k;
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "tiangolo";
     repo = "fastapi";
     rev = version;
-    sha256 = "0k0lss8x6lzf0szcli48v28r269fsx1jdkr9q78liz47dz5x03d8";
+    sha256 = "1515nhwari48v0angyl5z3cfpvwn4al2nvqh0cjd9xgxzvm310s8";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/fastparquet/default.nix b/pkgs/development/python-modules/fastparquet/default.nix
index e8ad6e13644..46c6cfb06ca 100644
--- a/pkgs/development/python-modules/fastparquet/default.nix
+++ b/pkgs/development/python-modules/fastparquet/default.nix
@@ -1,15 +1,15 @@
 { lib, buildPythonPackage, fetchFromGitHub, numba, numpy, pandas, pytestrunner,
-thrift, pytest, python-snappy, lz4 }:
+thrift, pytest, python-snappy, lz4, zstd }:
 
 buildPythonPackage rec {
   pname = "fastparquet";
-  version = "0.3.3";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "dask";
     repo = pname;
     rev = version;
-    sha256 = "1vnxr4r0bia2zi9csjw342l507nic6an4hr5xb3a36ggqlbaa0g5";
+    sha256 = "0y89gmcfylxqm8rs1fbirwjzmhcvlfx8fhvkm3ssbj1ivfd5mdlr";
   };
 
   postPatch = ''
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ pytestrunner ];
   propagatedBuildInputs = [ numba numpy pandas thrift ];
-  checkInputs = [ pytest python-snappy lz4 ];
+  checkInputs = [ pytest python-snappy lz4 zstd ];
 
   meta = with lib; {
     description = "A python implementation of the parquet format";
diff --git a/pkgs/development/python-modules/fastrlock/default.nix b/pkgs/development/python-modules/fastrlock/default.nix
index 8271bec090b..e44639942a0 100644
--- a/pkgs/development/python-modules/fastrlock/default.nix
+++ b/pkgs/development/python-modules/fastrlock/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "fastrlock";
-  version = "0.4";
+  version = "0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6abdbb35205792e2d2a8c441aaa41a613d43ee2d88b3af4fd9735ae7a5f7db6b";
+    sha256 = "9ae1a31f6e069b5f0f28ba63c594d0c952065de0a375f7b491d21ebaccc5166f";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/ffmpeg-python/default.nix b/pkgs/development/python-modules/ffmpeg-python/default.nix
index ae7dc43020b..51b0060cb2d 100644
--- a/pkgs/development/python-modules/ffmpeg-python/default.nix
+++ b/pkgs/development/python-modules/ffmpeg-python/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , substituteAll
-, ffmpeg
+, ffmpeg_3
 , future
 , pytest
 , pytestrunner
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     (
       substituteAll {
         src = ./ffmpeg-location.patch;
-        inherit ffmpeg;
+        ffmpeg = ffmpeg_3;
       }
     )
   ];
diff --git a/pkgs/development/python-modules/filemagic/default.nix b/pkgs/development/python-modules/filemagic/default.nix
index 2feda678f74..ef8f6933e8f 100644
--- a/pkgs/development/python-modules/filemagic/default.nix
+++ b/pkgs/development/python-modules/filemagic/default.nix
@@ -4,6 +4,7 @@
 buildPythonPackage {
   pname = "filemagic";
   version = "1.6";
+  disabled = !isPy3k; # asserts on ResourceWarning
 
   # Don't use the PyPI source because it's missing files required for testing
   src = fetchFromGitHub {
@@ -18,7 +19,7 @@ buildPythonPackage {
       "'${file}/lib/libmagic${stdenv.hostPlatform.extensions.sharedLibrary}'"
   '';
 
-  checkInputs = [ (if isPy3k then mock else unittest2) ];
+  checkInputs = [ mock ] ++ lib.optionals (!isPy3k) [ unittest2 ];
 
   meta = with lib; {
     description = "File type identification using libmagic";
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/flake8-debugger/default.nix b/pkgs/development/python-modules/flake8-debugger/default.nix
index 1f41c0a6849..81b903621b5 100644
--- a/pkgs/development/python-modules/flake8-debugger/default.nix
+++ b/pkgs/development/python-modules/flake8-debugger/default.nix
@@ -1,4 +1,10 @@
-{ lib, fetchPypi, buildPythonPackage, flake8, pycodestyle, pytestrunner, pytest }:
+{ lib, fetchPypi, buildPythonPackage, pythonOlder
+, flake8
+, importlib-metadata
+, pycodestyle
+, pytestrunner
+, pytest
+}:
 
 buildPythonPackage rec {
   pname = "flake8-debugger";
@@ -11,7 +17,8 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ pytestrunner ];
 
-  propagatedBuildInputs = [ flake8 pycodestyle ];
+  propagatedBuildInputs = [ flake8 pycodestyle ]
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   checkInputs = [ pytest ];
 
diff --git a/pkgs/development/python-modules/flake8-future-import/default.nix b/pkgs/development/python-modules/flake8-future-import/default.nix
index 0a60761b943..e819422c572 100644
--- a/pkgs/development/python-modules/flake8-future-import/default.nix
+++ b/pkgs/development/python-modules/flake8-future-import/default.nix
@@ -1,4 +1,4 @@
-{ lib, isPy27, fetchFromGitHub, buildPythonPackage, fetchpatch, flake8, six }:
+{ lib, isPy27, fetchFromGitHub, buildPythonPackage, pythonOlder, fetchpatch, flake8, importlib-metadata, six }:
 
 buildPythonPackage rec {
   pname = "flake8-future-import";
@@ -12,7 +12,10 @@ buildPythonPackage rec {
     sha256 = "00q8n15xdnvqj454arn7xxksyrzh0dw996kjyy7g9rdk0rf8x82z";
   };
 
-  propagatedBuildInputs = [ flake8 six ];
+  propagatedBuildInputs = [ flake8 six ]
+    ++ lib.optionals (pythonOlder "3.8") [
+      importlib-metadata
+    ];
 
   # Upstream disables this test case naturally on python 3, but it also fails
   # inside NixPkgs for python 2. Since it's going to be deleted, we just skip it
diff --git a/pkgs/development/python-modules/flake8/default.nix b/pkgs/development/python-modules/flake8/default.nix
index c6cf1bf2ab1..761690ba9c0 100644
--- a/pkgs/development/python-modules/flake8/default.nix
+++ b/pkgs/development/python-modules/flake8/default.nix
@@ -1,22 +1,23 @@
 { stdenv, buildPythonPackage, fetchPypi, pythonOlder
 , mock, pytest, pytestrunner
-, configparser, enum34, mccabe, pycodestyle, pyflakes, entrypoints, functools32, typing
+, configparser, enum34, mccabe, pycodestyle, pyflakes, functools32, typing, importlib-metadata
 }:
 
 buildPythonPackage rec {
   pname = "flake8";
-  version = "3.7.9";
+  version = "3.8.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "45681a117ecc81e870cbf1262835ae4af5e7a8b08e40b944a8a6e6b895914cfb";
+    sha256 = "f04b9fcbac03b0a3e58c0ab3a0ecc462e023a9faf046d57794184028123aa208";
   };
 
   checkInputs = [ pytest mock pytestrunner ];
-  propagatedBuildInputs = [ entrypoints pyflakes pycodestyle mccabe ]
+  propagatedBuildInputs = [ pyflakes pycodestyle mccabe ]
     ++ stdenv.lib.optionals (pythonOlder "3.2") [ configparser functools32 ]
     ++ stdenv.lib.optionals (pythonOlder "3.4") [ enum34 ]
-    ++ stdenv.lib.optionals (pythonOlder "3.5") [ typing ];
+    ++ stdenv.lib.optionals (pythonOlder "3.5") [ typing ]
+    ++ stdenv.lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   checkPhase = ''
     py.test tests
diff --git a/pkgs/development/python-modules/flammkuchen/default.nix b/pkgs/development/python-modules/flammkuchen/default.nix
index 3a3d82cd8bb..a5525d97f60 100644
--- a/pkgs/development/python-modules/flammkuchen/default.nix
+++ b/pkgs/development/python-modules/flammkuchen/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "flammkuchen";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e9aab9b229ace70d879b85618a9ce0e88dd6ce35d4dbcdfd60c6b61c33a1b4fb";
+    sha256 = "f249fe5bf85f717d3836e0db6fa9443a8a43101ce07704715b42251c44fc968e";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/flask-admin/default.nix b/pkgs/development/python-modules/flask-admin/default.nix
index 5803d8ea2c7..dc1e795054f 100644
--- a/pkgs/development/python-modules/flask-admin/default.nix
+++ b/pkgs/development/python-modules/flask-admin/default.nix
@@ -8,12 +8,16 @@
 , wtf-peewee
 , sqlalchemy
 , sqlalchemy-citext
+, sqlalchemy-utils
 , flask-mongoengine
 , flask_sqlalchemy
 , flask-babelex
 , shapely
 , geoalchemy2
 , psycopg2
+, arrow
+, colour
+, email_validator
 , flask
 , wtforms
 , isPy27
@@ -22,12 +26,12 @@
 
 buildPythonPackage rec {
   pname = "flask-admin";
-  version = "1.5.3";
+  version = "1.5.6";
 
   src = fetchPypi {
     pname = "Flask-Admin";
     inherit version;
-    sha256 = "ca0be6ec11a6913b73f656c65c444ae5be416c57c75638dd3199376ce6bc7422";
+    sha256 = "1f31vzc0p2xni5mh1wvjk9jxf4ddlx2fj4r0f3vv2n9db3c63iv8";
   };
 
   checkInputs = [
@@ -38,12 +42,16 @@ buildPythonPackage rec {
     wtf-peewee
     sqlalchemy
     sqlalchemy-citext
+    sqlalchemy-utils
     flask-mongoengine
     flask_sqlalchemy
     flask-babelex
     shapely
     geoalchemy2
     psycopg2
+    arrow
+    colour
+    email_validator
   ];
 
   propagatedBuildInputs = [
@@ -52,13 +60,14 @@ buildPythonPackage rec {
   ] ++ lib.optionals isPy27 [ enum34 ];
 
   checkPhase = ''
-    # disable tests that require mongodb, postresql
+    # disable tests that require mongodb, postresql, or network
     nosetests \
      -e "mongoengine" \
      -e "pymongo" \
      -e "test_form_upload" \
      -e "test_postgres" \
      -e "geoa" \
+     -e "test_ajax_fk" \
      flask_admin/tests
   '';
 
diff --git a/pkgs/development/python-modules/flask-appbuilder/default.nix b/pkgs/development/python-modules/flask-appbuilder/default.nix
index 01bd180a5ae..5119d3c39ac 100644
--- a/pkgs/development/python-modules/flask-appbuilder/default.nix
+++ b/pkgs/development/python-modules/flask-appbuilder/default.nix
@@ -66,7 +66,8 @@ buildPythonPackage rec {
       --replace "marshmallow>=2.18.0, <4.0.0" "marshmallow" \
       --replace "PyJWT>=1.7.1" "PyJWT" \
       --replace "Flask-SQLAlchemy>=2.4, <3" "Flask-SQLAlchemy" \
-      --replace "Flask-JWT-Extended>=3.18, <4" "Flask-JWT-Extended"
+      --replace "Flask-JWT-Extended>=3.18, <4" "Flask-JWT-Extended" \
+      --replace "Flask-Login>=0.3, <0.5" "Flask-Login"
   '';
 
   # majority of tests require network access or mongo
diff --git a/pkgs/development/python-modules/flask-assets/default.nix b/pkgs/development/python-modules/flask-assets/default.nix
index 2fbfb17def4..390657e9c82 100644
--- a/pkgs/development/python-modules/flask-assets/default.nix
+++ b/pkgs/development/python-modules/flask-assets/default.nix
@@ -2,15 +2,17 @@
 
 buildPythonPackage rec {
   pname = "Flask-Assets";
-  version = "0.12";
+  version = "2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ivqsihk994rxw58vdgzrx4d77d7lpzjm4qxb38hjdgvi5xm4cb0";
+    sha256 = "1dfdea35e40744d46aada72831f7613d67bf38e8b20ccaaa9e91fdc37aa3b8c2";
   };
 
   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-autoindex/default.nix b/pkgs/development/python-modules/flask-autoindex/default.nix
index ae1be1ae54c..26b6977116f 100644
--- a/pkgs/development/python-modules/flask-autoindex/default.nix
+++ b/pkgs/development/python-modules/flask-autoindex/default.nix
@@ -1,27 +1,31 @@
-{ stdenv
+{ lib
 , buildPythonPackage
+, pythonOlder
 , fetchPypi
 , flask
 , flask-silk
 , future
+, pathlib
 }:
 
 buildPythonPackage rec {
   pname = "Flask-AutoIndex";
-  version = "0.6.2";
+  version = "0.6.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "af2cdb34eefe6edbf43ce19200880829e8c2df3598000e75dc63c9b7e3478706";
+    sha256 = "ea319f7ccadf68ddf98d940002066278c779323644f9944b300066d50e2effc7";
   };
 
   propagatedBuildInputs = [
     flask
     flask-silk
     future
+  ] ++ lib.optionals (pythonOlder "3.4") [
+    pathlib
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "The mod_autoindex for Flask";
     longDescription = ''
       Flask-AutoIndex generates an index page for your Flask application automatically.
diff --git a/pkgs/development/python-modules/flask-caching/default.nix b/pkgs/development/python-modules/flask-caching/default.nix
index 64c3e3384dc..57c95cf8800 100644
--- a/pkgs/development/python-modules/flask-caching/default.nix
+++ b/pkgs/development/python-modules/flask-caching/default.nix
@@ -1,12 +1,13 @@
-{ lib, buildPythonPackage, fetchPypi, flask, pytest, pytestcov, pytest-xprocess, pytestcache }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, flask, pytest, pytestcov, pytest-xprocess, pytestcache }:
 
 buildPythonPackage rec {
   pname = "Flask-Caching";
-  version = "1.8.0";
+  version = "1.9.0";
+  disabled = isPy27; # invalid python2 syntax
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3d0bd13c448c1640334131ed4163a12aff7df2155e73860f07fc9e5e75de7126";
+    sha256 = "a0356ad868b1d8ec2d0e675a6fe891c41303128f8904d5d79e180d8b3f952aff";
   };
 
   propagatedBuildInputs = [ flask ];
diff --git a/pkgs/development/python-modules/flask-compress/default.nix b/pkgs/development/python-modules/flask-compress/default.nix
index b602fcfd494..cf9abdc596a 100644
--- a/pkgs/development/python-modules/flask-compress/default.nix
+++ b/pkgs/development/python-modules/flask-compress/default.nix
@@ -1,15 +1,17 @@
-{ stdenv, fetchPypi, buildPythonPackage, flask }:
+{ stdenv, fetchPypi, buildPythonPackage, flask
+, brotli
+}:
 
 buildPythonPackage rec {
-  version = "1.4.0";
+  version = "1.5.0";
   pname = "Flask-Compress";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1cxdbdiyxkspg7vkchfmaqr7c6q79gwvakna3fjcc6nivps971j6";
+    sha256 = "f367b2b46003dd62be34f7fb1379938032656dca56377a9bc90e7188e4289a7c";
   };
 
-  propagatedBuildInputs = [ flask ];
+  propagatedBuildInputs = [ flask brotli ];
 
   meta = with stdenv.lib; {
     description = "Compress responses in your Flask app with gzip";
diff --git a/pkgs/development/python-modules/flask-httpauth/default.nix b/pkgs/development/python-modules/flask-httpauth/default.nix
index 051b83d1c3d..ad3e42876d0 100644
--- a/pkgs/development/python-modules/flask-httpauth/default.nix
+++ b/pkgs/development/python-modules/flask-httpauth/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-HTTPAuth";
-  version = "3.3.0";
+  version = "4.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1fb1kr1iw6inkwfv160rpjx54vv1q9b90psdyyghyy1f6dhvgy3f";
+    sha256 = "9e028e4375039a49031eb9ecc40be4761f0540476040f6eff329a31dabd4d000";
   };
 
   propagatedBuildInputs = [ flask ];
@@ -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-limiter/default.nix b/pkgs/development/python-modules/flask-limiter/default.nix
index 041935e28e3..c3db5094aef 100644
--- a/pkgs/development/python-modules/flask-limiter/default.nix
+++ b/pkgs/development/python-modules/flask-limiter/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-Limiter";
-  version = "1.1.0";
+  version = "1.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "905c35cd87bf60c92fd87922ae23fe27aa5fb31980bab31fc00807adee9f5a55";
+    sha256 = "08d6d7534a847c532fd36d0df978f93908d8616813085941c862bbcfcf6811aa";
   };
 
   propagatedBuildInputs = [ flask limits ];
diff --git a/pkgs/development/python-modules/flask-login/default.nix b/pkgs/development/python-modules/flask-login/default.nix
index 8a48bbdd7da..a4cd86ee69d 100644
--- a/pkgs/development/python-modules/flask-login/default.nix
+++ b/pkgs/development/python-modules/flask-login/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-Login";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1v2j8zd558xfmgn3rfbw0xz4vizjcnk8kqw52q4f4d9ygfnc25f8";
+    sha256 = "6d33aef15b5bcead780acc339464aae8a6e28f13c90d8b1cf9de8b549d1c0b4b";
   };
 
   checkInputs = [ nose mock semantic-version ];
diff --git a/pkgs/development/python-modules/flask-marshmallow/default.nix b/pkgs/development/python-modules/flask-marshmallow/default.nix
index b03f3307d08..bd28280a47a 100644
--- a/pkgs/development/python-modules/flask-marshmallow/default.nix
+++ b/pkgs/development/python-modules/flask-marshmallow/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "flask-marshmallow";
-  version = "0.10.1";
+  version = "0.12.0";
 
   meta = {
     homepage = "https://github.com/marshmallow-code/flask-marshmallow";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0hbp0lrdlzpcdjv1jn2hk98z9gg624nswcm0hi48k4rk28x9xsb9";
+    sha256 = "6e6aec171b8e092e0eafaf035ff5b8637bf3a58ab46f568c4c1bab02f2a3c196";
   };
 
   propagatedBuildInputs = [ flask marshmallow ];
diff --git a/pkgs/development/python-modules/flask-migrate/default.nix b/pkgs/development/python-modules/flask-migrate/default.nix
index ef2b3a40705..24ed04437a0 100644
--- a/pkgs/development/python-modules/flask-migrate/default.nix
+++ b/pkgs/development/python-modules/flask-migrate/default.nix
@@ -4,11 +4,11 @@ with stdenv.lib;
 
 buildPythonPackage rec {
   pname = "Flask-Migrate";
-  version = "2.5.2";
+  version = "2.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00nm76w4xymsiih6hq8y46wp026v7zkzq15cx39hp929ba3z2vx9";
+    sha256 = "a69d508c2e09d289f6e55a417b3b8c7bfe70e640f53d2d9deb0d056a384f37ee";
   };
 
   checkInputs = [ flask_script ] ++ optional isPy3k glibcLocales;
diff --git a/pkgs/development/python-modules/flask-restful/default.nix b/pkgs/development/python-modules/flask-restful/default.nix
index 17c63f326ea..d5b48fd0428 100644
--- a/pkgs/development/python-modules/flask-restful/default.nix
+++ b/pkgs/development/python-modules/flask-restful/default.nix
@@ -1,36 +1,26 @@
 { lib, buildPythonPackage, fetchPypi, fetchpatch, isPy3k
-, nose, mock, blinker
+, nose, mock, blinker, pytest
 , flask, six, pytz, aniso8601, pycrypto
 }:
 
 buildPythonPackage rec {
   pname = "Flask-RESTful";
-  version = "0.3.6";
+  version = "0.3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01rlvl2iq074ciyn4schmjip7cyplkwkysbb8f610zil06am35ap";
+    sha256 = "05b9lzx5yc3wgml2bcq50lq35h66m8zpj6dc9advcb5z3acsbaay";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/flask-restful/flask-restful/commit/54979f0a49b2217babc53c5b65b5df10b6de8e05.patch";
-      sha256 = "11s6ag6l42g61ccg5jw9j1f26hwgjfa3sp890cbl5r4hy5ycpyr5";
-    })
-    (fetchpatch {
-      url = "https://github.com/flask-restful/flask-restful/commit/f45e81a45ed03922fd225afe27006315811077e6.patch";
-      sha256 = "16avd369j5r08d1l23mwbba26zjwnmfqvfvnfz02am3gr5l6p3gl";
-    })
-  ];
-
-  postPatch = lib.optionalString isPy3k ''
-    # TypeError: Only byte strings can be passed to C code
-    rm tests/test_crypto.py tests/test_paging.py
-  '';
+  propagatedBuildInputs = [ flask six pytz aniso8601 pycrypto ];
 
-  checkInputs = [ nose mock blinker ];
+  checkInputs = [ pytest nose mock blinker ];
 
-  propagatedBuildInputs = [ flask six pytz aniso8601 pycrypto ];
+  # test_reqparse.py: werkzeug move Multidict location (only imported in tests)
+  # handle_non_api_error isn't updated for addition encoding argument
+  checkPhase = ''
+    pytest --ignore=tests/test_reqparse.py -k 'not handle_non_api_error'
+  '';
 
   meta = with lib; {
     homepage = "https://flask-restful.readthedocs.io/";
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-reverse-proxy-fix/default.nix b/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix
index d6912de6fe8..f8001bc2aff 100644
--- a/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix
+++ b/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , isPy3k
 , flask
+, werkzeug
 }:
 
 buildPythonPackage rec {
@@ -20,8 +21,13 @@ buildPythonPackage rec {
 
   disabled = !isPy3k;
 
+  postPatch = ''
+    sed -i 's@werkzeug.contrib.fixers@werkzeug.middleware.proxy_fix@g' flask_reverse_proxy_fix/middleware/__init__.py
+  '';
+
   propagatedBuildInputs = [
     flask
+    werkzeug
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/flask-socketio/default.nix b/pkgs/development/python-modules/flask-socketio/default.nix
index e0e56aa6e92..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.2.1";
+  version = "4.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2172dff1e42415ba480cee02c30c2fc833671ff326f1598ee3d69aa02cf768ec";
+    sha256 = "36c1d5765010d1f4e4f05b4cc9c20c289d9dc70698c88d1addd0afcfedc5b062";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/flask-sqlalchemy/default.nix b/pkgs/development/python-modules/flask-sqlalchemy/default.nix
index 2453bb50766..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.1";
+  version = "2.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6974785d913666587949f7c2946f7001e4fa2cb2d19f4e69ead02e4b8f50b33d";
+    sha256 = "1rgsj49gnx361hnb3vn6c1h17497qh22yc3r70l1r6w0mw71bixz";
   };
 
   propagatedBuildInputs = [ flask sqlalchemy ];
diff --git a/pkgs/development/python-modules/flask-swagger-ui/default.nix b/pkgs/development/python-modules/flask-swagger-ui/default.nix
index a281864117b..f2908f43b00 100644
--- a/pkgs/development/python-modules/flask-swagger-ui/default.nix
+++ b/pkgs/development/python-modules/flask-swagger-ui/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "flask-swagger-ui";
-  version = "3.20.9";
+  version = "3.25.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3282c770764c8053360f33b2fc120e1d169ecca2138537d0e6e1135b1f9d4ff2";
+    sha256 = "42d098997e06b04f992609c4945cc990738b269c153d8388fc59a91a5dfcee9e";
   };
 
   doCheck = false;  # there are no tests
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/flask-versioned/default.nix b/pkgs/development/python-modules/flask-versioned/default.nix
new file mode 100644
index 00000000000..3bd5ef98b32
--- /dev/null
+++ b/pkgs/development/python-modules/flask-versioned/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub, flask }:
+
+buildPythonPackage rec {
+  pname = "Flask-Versioned";
+  version = "0.9.4-20101221";
+
+  src = fetchFromGitHub {
+    owner = "pilt";
+    repo = "flask-versioned";
+    rev = "38046fb53a09060de437c90a5f7370a6b94ffc31"; # no tags
+    sha256 = "1wim9hvx7lxzfg35c0nc7p34j4vw9mzisgijlz4ibgykah4g1y37";
+  };
+
+  propagatedBuildInputs = [ flask ];
+
+  meta = with stdenv.lib; {
+    description = "Flask plugin to rewrite file paths to add version info";
+    homepage = "https://github.com/pilt/flask-versioned";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ globin ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/flask/default.nix b/pkgs/development/python-modules/flask/default.nix
index ffbebf96ee9..bbac89406fc 100644
--- a/pkgs/development/python-modules/flask/default.nix
+++ b/pkgs/development/python-modules/flask/default.nix
@@ -2,12 +2,12 @@
 , itsdangerous, click, werkzeug, jinja2, pytest }:
 
 buildPythonPackage rec {
-  version = "1.1.1";
+  version = "1.1.2";
   pname = "Flask";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52";
+    sha256 = "4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/flit-core/default.nix b/pkgs/development/python-modules/flit-core/default.nix
new file mode 100644
index 00000000000..441084da97f
--- /dev/null
+++ b/pkgs/development/python-modules/flit-core/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, flit
+, isPy3k
+, pytoml
+}:
+
+buildPythonPackage rec {
+  pname = "flit-core";
+  version = "2.3.0";
+  disabled = !isPy3k;
+
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "flit_core";
+    sha256 = "a50bcd8bf5785e3a7d95434244f30ba693e794c5204ac1ee908fc07c4acdbf80";
+  };
+
+  propagatedBuildInputs = [
+    pytoml
+  ];
+
+  passthru.tests = {
+    inherit flit;
+  };
+
+  meta = {
+    description = "Distribution-building parts of Flit. See flit package for more information";
+    homepage = "https://github.com/takluyver/flit";
+    license = lib.licenses.bsd3;
+    maintainers = [ lib.maintainers.fridh ];
+  };
+}
diff --git a/pkgs/development/python-modules/flit/default.nix b/pkgs/development/python-modules/flit/default.nix
index 72957a94afa..88a4028aa6d 100644
--- a/pkgs/development/python-modules/flit/default.nix
+++ b/pkgs/development/python-modules/flit/default.nix
@@ -11,6 +11,7 @@
 , testpath
 , responses
 , pytoml
+, flit-core
 }:
 
 # Flit is actually an application to build universal wheels.
@@ -20,16 +21,23 @@
 
 buildPythonPackage rec {
   pname = "flit";
-  version = "1.3";
+  version = "2.3.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6f6f0fb83c51ffa3a150fa41b5ac118df9ea4a87c2c06dff4ebf9adbe7b52b36";
+    sha256 = "017012b809ec489918afd68af7a70bd7c8c770c87b60159d875c126866e97a4b";
   };
 
-  propagatedBuildInputs = [ docutils requests requests_download pytoml ]
-    ++ lib.optional (pythonOlder "3.6") zipfile36;
+  propagatedBuildInputs = [
+    docutils
+    requests
+    requests_download
+    pytoml
+    flit-core
+  ] ++ lib.optionals (pythonOlder "3.6") [
+    zipfile36
+  ];
 
   checkInputs = [ pytest_4 testpath responses ];
 
diff --git a/pkgs/development/python-modules/flower/default.nix b/pkgs/development/python-modules/flower/default.nix
index 74273e62945..b31cbc7424d 100644
--- a/pkgs/development/python-modules/flower/default.nix
+++ b/pkgs/development/python-modules/flower/default.nix
@@ -1,22 +1,43 @@
-{ lib, buildPythonPackage, fetchPypi, Babel, celery, importlib-metadata, pytz, tornado, mock }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, celery
+, humanize
+, mock
+, pytz
+, tornado
+, prometheus_client
+}:
 
 buildPythonPackage rec {
   pname = "flower";
-  version = "0.9.3";
-  
+  version = "0.9.5";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7f45acb297ab7cf3dd40140816143a2588f6938dbd70b8c46b59c7d8d1e93d55";
+    sha256 = "171zckhk9ni14f1d82wf62hhciy0gx13fd02sr9m9qlj50fnv4an";
   };
 
-  propagatedBuildInputs = [ Babel celery importlib-metadata pytz tornado ];
-  
+  postPatch = ''
+    # rely on using example programs (flowers/examples/tasks.py) which
+    # are not part of the distribution
+    rm tests/load.py
+  '';
+
+  propagatedBuildInputs = [
+    celery
+    pytz
+    tornado
+    humanize
+    prometheus_client
+  ];
+
   checkInputs = [ mock ];
-  
+
   meta = with lib; {
     description = "Celery Flower";
     homepage = "https://github.com/mher/flower";
-    license = licenses.bsdOriginal;    
+    license = licenses.bsdOriginal;
     maintainers = [ maintainers.arnoldfarkas ];
   };
 }
diff --git a/pkgs/development/python-modules/flowlogs_reader/default.nix b/pkgs/development/python-modules/flowlogs_reader/default.nix
index 38faa5f12db..44f347edb8e 100644
--- a/pkgs/development/python-modules/flowlogs_reader/default.nix
+++ b/pkgs/development/python-modules/flowlogs_reader/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "flowlogs_reader";
-  version = "2.0.0";
+  version = "2.2.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "256c67afabc1783e8a378c7589877f76660c6a645aa6dfe1759e26f4a93a22d0";
+    sha256 = "7c24156a3d6887b641ceb37b57d91805bee6c3352e8a3ca97a3274217ead9294";
   };
 
   propagatedBuildInputs = [ botocore boto3 docutils ];
diff --git a/pkgs/development/python-modules/fluent-logger/default.nix b/pkgs/development/python-modules/fluent-logger/default.nix
index a1202b5586d..d47465c9723 100644
--- a/pkgs/development/python-modules/fluent-logger/default.nix
+++ b/pkgs/development/python-modules/fluent-logger/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "fluent-logger";
-  version = "0.9.4";
+  version = "0.9.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "814cb51892c620a00c5a6129fffaa09eeeb0c8822c9bcb4f96232ae3cbc4d8b3";
+    sha256 = "a7d47eae4d2a11c8cb0df10ae3d034d95b0b8cef9d060e59e7519ad1f82ffa73";
   };
 
   propagatedBuildInputs = [ msgpack ];
diff --git a/pkgs/development/python-modules/fluidasserts/default.nix b/pkgs/development/python-modules/fluidasserts/default.nix
deleted file mode 100644
index 13e6f14d9d0..00000000000
--- a/pkgs/development/python-modules/fluidasserts/default.nix
+++ /dev/null
@@ -1,210 +0,0 @@
-{ buildPythonPackage
-, fetchPypi
-, isPy37
-, lib
-
-# pythonPackages
-, aiohttp
-, androguard
-, azure-identity
-, azure-keyvault
-, azure-mgmt-compute
-, azure-mgmt-keyvault
-, azure-mgmt-network
-, azure-mgmt-resource
-, azure-mgmt-security
-, azure-mgmt-storage
-, azure-mgmt-sql
-, azure-mgmt-web
-, azure-storage
-, bandit
-, bcrypt
-, beautifulsoup4
-, boto3
-, cfn-flip
-, cython
-, dnspython
-, colorama
-, configobj
-, defusedxml
-, GitPython
-, google_api_python_client
-, kubernetes
-, ldap3
-, mixpanel
-, mysql-connector
-, names
-, ntplib
-, oyaml
-, paramiko
-, pillow
-, psycopg2
-, pycrypto
-, pygments
-, pyhcl
-, pyjks
-, pynacl
-, pyodbc
-, pyopenssl
-, pypdf2
-, pysmb
-, pytesseract
-, python_magic
-, pytz
-, pywinrm
-, requirements-detector
-, selenium
-, tlslite-ng
-, viewstate
-
-# pythonPackages to test the derivation
-, pytest
-, flask
-, flask-httpauth
-, docker
-}:
-
-buildPythonPackage rec {
-  pname = "fluidasserts";
-  version = "20.2.30165";
-  disabled = !isPy37;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0wcplzfx89d3c6hvdgag860sl3infqmymy6ly6y6ah77pkc98x15";
-  };
-
-  patchPhase = ''
-    # Release packages from their hard pinned versions
-    sed -i -E "s/(.*)==.*/\1/g" requirements.txt
-
-    # Functionality that will be not present for the momment
-    #   but that we'll work to add in the future
-    # Just a minimal portion of fluidasserts use this
-    substituteInPlace ./requirements.txt \
-      --replace "mitmproxy" "" \
-
-  '';
-
-  propagatedBuildInputs = [
-    # pythonPackages
-    aiohttp
-    androguard
-    azure-identity
-    azure-keyvault
-    azure-mgmt-compute
-    azure-mgmt-keyvault
-    azure-mgmt-network
-    azure-mgmt-resource
-    azure-mgmt-security
-    azure-mgmt-storage
-    azure-mgmt-sql
-    azure-mgmt-web
-    azure-storage
-    bandit
-    bcrypt
-    beautifulsoup4
-    boto3
-    cfn-flip
-    cython
-    dnspython
-    colorama
-    configobj
-    defusedxml
-    GitPython
-    google_api_python_client
-    kubernetes
-    ldap3
-    mixpanel
-    mysql-connector
-    names
-    ntplib
-    oyaml
-    paramiko
-    pillow
-    psycopg2
-    pycrypto
-    pygments
-    pyhcl
-    pyjks
-    pynacl
-    pyodbc
-    pyopenssl
-    pypdf2
-    pysmb
-    pytesseract
-    python_magic
-    pytz
-    pywinrm
-    requirements-detector
-    selenium
-    tlslite-ng
-    viewstate
-  ];
-
-  configurePhase = ''
-    mkdir -p build/config
-    touch build/config/README.rst
-  '';
-
-  checkInputs = [
-    docker
-    flask
-    flask-httpauth
-    pytest
-  ];
-
-  checkPhase = ''
-    # This tests require BWAPP Docker Container
-    sed -ie 's/test_a[0-9]//g' ./test/test_proto_http_open.py
-    sed -ie 's/test_a[0-9]//g' ./test/test_proto_http_close.py
-
-    # This tests require network connectivity
-    sed -ie 's/test_is_date_unsyncd//g' ./test/test_proto_http_open.py
-    sed -ie 's/test_is_date_unsyncd//g' ./test/test_proto_http_close.py
-
-    # Remove impurities
-    substituteInPlace ./test/conftest.py \
-      --replace "import wait" "" \
-      --replace "if not os.path.exists(name):" "if os.path.exists(name):" \
-      --replace "from test.mock import graphql_server" "" \
-      --replace "(graphql_server.start, 'MockGraphQLServer', ['proto_graphql'])," "" \
-
-    pytest --asserts-module 'iot' \
-      test/test_iot_phone.py
-
-    pytest --asserts-module 'ot' \
-      test/test_ot_powerlogic.py
-
-    pytest --asserts-module 'proto_http' \
-      test/test_proto_{http_close,http_open}.py
-
-    pytest --asserts-module 'proto_rest' \
-      test/test_proto_rest.py
-
-    # This file launches mock docker containers and servers
-    #   let's remove it to create a custom test environment
-    rm test/conftest.py
-
-    pytest \
-      test/test_cloud_aws_terraform_{cloudfront,dynamodb,ebs,ec2,elb}.py \
-      test/test_cloud_aws_terraform_{fsx,iam,kms,rds,s3}.py \
-      test/test_cloud_aws_cloudformation_{cloudfront,dynamodb,ec2,elb,elb2}.py \
-      test/test_cloud_aws_cloudformation_{fsx,iam,kms,rds,s3,secretsmanager}.py \
-      test/test_format_{apk,jks,jwt,pdf,pkcs12,string}.py \
-      test/test_helper_{asynchronous,crypto}.py \
-      test/test_lang_{javascript,java}.py \
-      test/test_lang_{core,csharp,docker,dotnetconfig,html,php,python,rpgle}.py \
-      test/test_utils_generic.py
-  '';
-
-  meta = with lib; {
-    description = "Assertion Library for Security Assumptions";
-    homepage = "https://gitlab.com/fluidattacks/asserts";
-    license = licenses.mpl20;
-    maintainers = with maintainers; [
-      kamadorueda
-    ];
-    broken = true; # dependency tree is too fragile for nixpkgs
-  };
-}
diff --git a/pkgs/development/python-modules/folium/default.nix b/pkgs/development/python-modules/folium/default.nix
index 9a89c9a8e00..800ece5261d 100644
--- a/pkgs/development/python-modules/folium/default.nix
+++ b/pkgs/development/python-modules/folium/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "folium";
-  version = "0.10.1";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0gcc267wxwxr57ry86pqpbiyfvl0g48hfvgy0f2mz9s58g87kgzd";
+    sha256 = "540789abc21872469e52c59ac3962c61259a8df557feadd6514eb23eb0a64ca7";
   };
 
   disabled = pythonOlder "3.5";
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index 45d39410137..8aae67443ae 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "fonttools";
-  version = "4.2.2";
+  version = "4.11.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "66bb3dfe7efe5972b0145339c063ffaf9539e973f7ff8791df84366eafc65804";
+    sha256 = "7fe5937206099ef284055b8c94798782e0993a740eed87f0dd262ed9870788aa";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/foxdot/default.nix b/pkgs/development/python-modules/foxdot/default.nix
index dc59fb6db3e..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.7";
+  version = "0.8.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0c5iqdn17ip6lkf26xb1cwjvcly0448gvqmkbkvhnqy4birc8cf5";
+    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/freezegun/default.nix b/pkgs/development/python-modules/freezegun/default.nix
index 3f0fd31d8a1..92254b94dee 100644
--- a/pkgs/development/python-modules/freezegun/default.nix
+++ b/pkgs/development/python-modules/freezegun/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , dateutil
 , six
 , mock
@@ -10,15 +11,17 @@
 
 buildPythonPackage rec {
   pname = "freezegun";
-  version = "0.3.12";
+  version = "0.3.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2a4d9c8cd3c04a201e20c313caf8b6338f1cfa4cda43f46a94cc4a9fd13ea5e7";
+    sha256 = "e2062f2c7f95cc276a834c22f1a17179467176b624cc6f936e8bc3be5535ad1b";
   };
 
   propagatedBuildInputs = [ dateutil six ];
   checkInputs = [ mock nose pytest ];
+  # contains python3 specific code
+  doCheck = !isPy27;
 
   meta = with stdenv.lib; {
     description = "FreezeGun: Let your Python tests travel through time";
diff --git a/pkgs/development/python-modules/fritzconnection/default.nix b/pkgs/development/python-modules/fritzconnection/default.nix
index d8f1a52d465..d55941bd5b4 100644
--- a/pkgs/development/python-modules/fritzconnection/default.nix
+++ b/pkgs/development/python-modules/fritzconnection/default.nix
@@ -8,7 +8,7 @@ buildPythonPackage rec {
     owner = "kbr";
     repo = pname;
     rev = version;
-    hash = "sha256:17z4shs56ci9mxmilppv5xy9gbnbp6p1h2ms6x55nkvwndacrp7x";
+    sha256 = "17z4shs56ci9mxmilppv5xy9gbnbp6p1h2ms6x55nkvwndacrp7x";
   };
 
   disabled = pythonOlder "3.5";
diff --git a/pkgs/development/python-modules/fsspec/default.nix b/pkgs/development/python-modules/fsspec/default.nix
index 8f2c11f4265..a20b00087b7 100644
--- a/pkgs/development/python-modules/fsspec/default.nix
+++ b/pkgs/development/python-modules/fsspec/default.nix
@@ -2,28 +2,32 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
-, pytest
+, pytestCheckHook
+, numpy
 }:
 
 buildPythonPackage rec {
   pname = "fsspec";
-  version = "0.6.2";
+  version = "0.7.4";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "intake";
     repo = "filesystem_spec";
     rev = version;
-    sha256 = "1y3d6xw14rcldz9779ir6mjaff4rk82ch6ahn4y9mya0qglpc31i";
+    sha256 = "0ylslmkzc803050yh8dl6cagabb9vrygz6w2zsmglzn4v9sz6jgd";
   };
 
   checkInputs = [
-    pytest
+    pytestCheckHook
+    numpy
   ];
 
-  checkPhase = ''
-    pytest
-  '';
+  disabledTests = [
+    # Test assumes user name is part of $HOME
+    # AssertionError: assert 'nixbld' in '/homeless-shelter/foo/bar'
+    "test_strip_protocol_expanduser"
+  ];
 
   meta = with lib; {
     description = "A specification that python filesystems should adhere to";
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/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 b0f90f7ce17..3d073df843d 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.2";
+  version =  "0.3.3";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5c7617f1f6c8b8b426819642b16b9016727ddaecd16af9a07753e537eba8a3a5";
+    sha256 = "b881ef288a49aa81440d2c5eb8aeefd4c2bb8993d5f50edae7413a85bfdb3b57";
   };
   checkInputs = [ astunparse ] ;
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/gdown/default.nix b/pkgs/development/python-modules/gdown/default.nix
new file mode 100644
index 00000000000..74eb5de4865
--- /dev/null
+++ b/pkgs/development/python-modules/gdown/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, filelock
+, requests
+, tqdm
+, setuptools
+}:
+
+buildPythonApplication rec {
+  pname = "gdown";
+  version = "3.11.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1p023812hh7w7d08njjsfn0xzldl4m73yx8p243yb2q49ypjl6nz";
+  };
+
+  propagatedBuildInputs = [ filelock requests tqdm setuptools ];
+
+  checkPhase = ''
+    $out/bin/gdown --help > /dev/null
+  '';
+
+  meta = with lib; {
+    description = "A CLI tool for downloading large files from Google Drive";
+    homepage = "https://github.com/wkentaro/gdown";
+    license = licenses.mit;
+    maintainers = with maintainers; [ breakds ];
+  };
+}
diff --git a/pkgs/development/python-modules/genzshcomp/default.nix b/pkgs/development/python-modules/genzshcomp/default.nix
index 99d89e79d12..5917d71c440 100644
--- a/pkgs/development/python-modules/genzshcomp/default.nix
+++ b/pkgs/development/python-modules/genzshcomp/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "genzshcomp";
-  version = "0.5.2";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d28ae62b1b2727f32dc7606bc58201b8c12894ad3d1d4fdb40e1f951e3ae8f85";
+    sha256 = "b582910d36f9ad0992756d7e9ccbe3e5cf811934b1002b51f25b99d3dda9d573";
   };
 
   buildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/geoalchemy2/default.nix b/pkgs/development/python-modules/geoalchemy2/default.nix
index ae2df2ce607..e96c67b044d 100644
--- a/pkgs/development/python-modules/geoalchemy2/default.nix
+++ b/pkgs/development/python-modules/geoalchemy2/default.nix
@@ -3,19 +3,25 @@
 , fetchPypi
 , sqlalchemy
 , shapely
+, setuptools_scm
+, pytest
 }:
 
 buildPythonPackage rec {
   pname = "GeoAlchemy2";
-  version = "0.7.0";
+  version = "0.8.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0lnmj9jky9pz227scmjxgvd8243higl24ndc0cc668mm36cnwapc";
+    sha256 = "02jbad9vbnjx8bmfvxg77z18nymrry6li8hy9pwi0yiyvwbnycyr";
   };
 
+  nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ sqlalchemy shapely ];
 
+  # https://github.com/geoalchemy/geoalchemy2/blob/e05a676350b11f0e73609379dae5625c5de2e868/TEST.rst
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage =  "http://geoalchemy.org/";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/geoip2/default.nix b/pkgs/development/python-modules/geoip2/default.nix
index 1f03b1dd725..fea7d226a1c 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 = "06q9r5sdmncj4yaxrdf0mls05jb5n6pwhf8j8r74825cks4mvysa";
   };
 
-  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/geopy/2.nix b/pkgs/development/python-modules/geopy/2.nix
index 484c049da35..2863d30f468 100644
--- a/pkgs/development/python-modules/geopy/2.nix
+++ b/pkgs/development/python-modules/geopy/2.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "geopy";
-  version = "1.21.0";
+  version = "1.22.0";
 
   disabled = !isPy27; # only Python 2.7
   doCheck = false; # Needs network access
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p1sgy2p59j0297bp7c82b45bx4d3i1p4kvbgf89c9i0llyb80nw";
+    sha256 = "0jypkaqlbyr8icqypwm23lzsvq7flakp3a3nqr8ib5fmd0fzsq7q";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/gevent/default.nix b/pkgs/development/python-modules/gevent/default.nix
index 56467523a17..4eb5c7cdbb9 100644
--- a/pkgs/development/python-modules/gevent/default.nix
+++ b/pkgs/development/python-modules/gevent/default.nix
@@ -1,16 +1,21 @@
-{ stdenv, fetchPypi, buildPythonPackage, isPyPy, python, libev, greenlet }:
+{ stdenv, fetchPypi, buildPythonPackage, isPyPy, python, libev, greenlet
+, zope_interface
+}:
 
 buildPythonPackage rec {
   pname = "gevent";
-  version = "1.4.0";
+  version = "20.5.2";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1eb7fa3b9bd9174dfe9c3b59b7a09b768ecd496debfc4976a9530a3e15c990d1";
+    sha256 = "2756de36f56b33c46f6cc7146a74ba65afcd1471922c95b6771ce87b279d689c";
   };
 
   buildInputs = [ libev ];
-  propagatedBuildInputs = stdenv.lib.optionals (!isPyPy) [ greenlet ];
+  propagatedBuildInputs = [
+    zope_interface
+  ] ++ stdenv.lib.optionals (!isPyPy) [ greenlet ];
 
   checkPhase = ''
     cd greentest
diff --git a/pkgs/development/python-modules/geventhttpclient/default.nix b/pkgs/development/python-modules/geventhttpclient/default.nix
index 59b11e0f6ac..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.3.1";
+  version = "1.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bd87af8854f5fb05738916c8973671f7035568aec69b7c842887d6faf9c0a01d";
+    sha256 = "f59e5153f22e4a0be27b48aece8e45e19c1da294f8c49442b1c9e4d152c5c4c3";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/gidgethub/default.nix b/pkgs/development/python-modules/gidgethub/default.nix
index 634d7c2ddc0..f3b3c8d5df3 100644
--- a/pkgs/development/python-modules/gidgethub/default.nix
+++ b/pkgs/development/python-modules/gidgethub/default.nix
@@ -11,22 +11,26 @@
 , tornado
 , aiohttp
 , uritemplate
+, pyjwt
 }:
 
 buildPythonPackage rec {
   pname = "gidgethub";
-  version = "3.2.0";
+  version = "4.1.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8f4b69063a256994d38243cc0eba4e1453017b5b8b04a173216d02d47ffc3989";
+    sha256 = "cfabfa696d422ee91eaf1e3f01ea75e576721233cc3ea8badc7d86c30061df8e";
   };
 
   nativeBuildInputs = [ setuptools pytestrunner ];
   checkInputs = [ pytest pytest-asyncio twisted treq tornado aiohttp ];
-  propagatedBuildInputs = [ uritemplate ];
+  propagatedBuildInputs = [
+    uritemplate
+    pyjwt
+  ];
 
   postPatch = ''
     substituteInPlace setup.py \
diff --git a/pkgs/development/python-modules/gin-config/default.nix b/pkgs/development/python-modules/gin-config/default.nix
index 39a64781c8f..412b0c15949 100644
--- a/pkgs/development/python-modules/gin-config/default.nix
+++ b/pkgs/development/python-modules/gin-config/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "gin-config";
-  version = "0.2.1";
+  version = "0.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6305325d5afe470fa5a7130883035e51950478b317750205a1532e5413d4ba4c";
+    sha256 = "6a83b7639ae76c276c0380d71d583f151b327a7c37978add314180ec1280a6cc";
 
   };
 
diff --git a/pkgs/development/python-modules/gipc/default.nix b/pkgs/development/python-modules/gipc/default.nix
index df1bd590d37..3fe26f4a934 100644
--- a/pkgs/development/python-modules/gipc/default.nix
+++ b/pkgs/development/python-modules/gipc/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "gipc";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1zg5bm30lqqd8x0jqbvr4yi8i4rzzk2hdnh280qnj2bwm5nqpghi";
+    sha256 = "06116628e9cb7b2c34c8f248d0e4859fa5943e1e07381ad2b234ae9c7ed6f4cc";
   };
 
   propagatedBuildInputs = [ gevent ];
diff --git a/pkgs/development/python-modules/git-revise/default.nix b/pkgs/development/python-modules/git-revise/default.nix
index b4de6077529..a6dd3ecb7c8 100644
--- a/pkgs/development/python-modules/git-revise/default.nix
+++ b/pkgs/development/python-modules/git-revise/default.nix
@@ -1,30 +1,26 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , pythonOlder
-, tox
-, pytest
-, pylint
-, mypy
-, black
+, git
+, fetchFromGitHub
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "git-revise";
-  version = "0.5.1";
+  version = "0.6.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0l3xhg00106p7ysg4gl9dna2zcrax58mzmm0ajjaxw58jfn8wsf1";
+  # Missing tests on PyPI
+  src = fetchFromGitHub {
+    owner = "mystor";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "03v791yhips9cxz9hr07rhsgxfhwyqq17rzi7ayjhwvy65s4hzs9";
   };
 
   disabled = pythonOlder "3.6";
 
-  checkInputs = [ tox pytest pylint mypy black ];
-
-  checkPhase = ''
-    tox
-  '';
+  checkInputs = [ git pytestCheckHook ];
 
   meta = with lib; {
     description = "Efficiently update, split, and rearrange git commits";
diff --git a/pkgs/development/python-modules/gitdb/default.nix b/pkgs/development/python-modules/gitdb/default.nix
index b76ee4394c6..5c3bd4ac43f 100644
--- a/pkgs/development/python-modules/gitdb/default.nix
+++ b/pkgs/development/python-modules/gitdb/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "gitdb";
-  version = "4.0.2";
+  version = "4.0.5";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0l113fphn6msjl3cl3kyf332b6lal7daxdd0nfma0x9ipfb013jr";
+    sha256 = "c9e1f2d0db7ddb9a704c2a0217be31214e91a4fe1dea1efad19ae42ba0c285c9";
   };
 
   propagatedBuildInputs = [ smmap ];
diff --git a/pkgs/development/python-modules/github-webhook/default.nix b/pkgs/development/python-modules/github-webhook/default.nix
index c9814b94d82..32b86896fdd 100644
--- a/pkgs/development/python-modules/github-webhook/default.nix
+++ b/pkgs/development/python-modules/github-webhook/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "github-webhook";
-  version = "1.0.2";
+  version = "1.0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04jdf595gv97s4br0ym8izca3i6d1nfwcrpi4s26hkvn3czz84sv";
+    sha256 = "b2444dbfd03deda35792bd00ebd1692597c2605c61445da79da6322afaca7a8d";
   };
 
   propagatedBuildInputs = [ flask six ];
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/glom/default.nix b/pkgs/development/python-modules/glom/default.nix
index cc73b26d797..4188bdccf91 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 = "19.10.0";
+  version = "20.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c8a50cb9fcf0c84807836c6a73cf61285557834b9050d7bde7732b936aceb7dd";
+    sha256 = "e753d2e8d16647ffcd9f0f99ac85d3db523ff0a1f097cf0a154a60702bca7e42";
   };
 
   propagatedBuildInputs = [ boltons attrs face ];
diff --git a/pkgs/development/python-modules/gnutls/default.nix b/pkgs/development/python-modules/gnutls/default.nix
index 9b5cb905666..f26791fdbe9 100644
--- a/pkgs/development/python-modules/gnutls/default.nix
+++ b/pkgs/development/python-modules/gnutls/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "python-gnutls";
-  version = "3.1.2";
+  version = "3.1.3";
 
   # https://github.com/AGProjects/python-gnutls/issues/2
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "28748e02a8035c31826152944e41217ebcc58ab7793ae5a22850cd23d3cfbbbe";
+    sha256 = "79f94017e6472ac665c85bc16d68aa2e6681f53b6a9e74516557b49b6fc6a651";
   };
 
   propagatedBuildInputs = [ pkgs.gnutls ];
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 ac7bcb5cd52..2a7f7629704 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.8.2";
+  version = "1.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09g7v6yrf8p0kgmjnzy9d0fx9p1zngk2pmprf0bx19j1zc9jqj5z";
+    sha256 = "01zzlr21rgl1skl7ayppp0qwn6s883i50xcvxs8jxzr4c5zz097s";
   };
 
   # 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-music-proto/default.nix b/pkgs/development/python-modules/google-music-proto/default.nix
index 2645c4efad8..16363192c81 100644
--- a/pkgs/development/python-modules/google-music-proto/default.nix
+++ b/pkgs/development/python-modules/google-music-proto/default.nix
@@ -9,16 +9,18 @@
 
 buildPythonPackage rec {
   pname = "google-music-proto";
-  version = "2.8.0";
+  version = "2.10.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10qraipdr18pwnr1dz6ai5vxs9lmww5wbavbh1xyg4lsggmlsrqb";
+    sha256 = "91b78c0de4f59b1e5503fd6d49cb3fec029d9199cca0794c87667e643342e987";
   };
 
   postPatch = ''
     sed -i -e "/audio-metadata/c\'audio-metadata'," -e "/marshmallow/c\'marshmallow'," setup.py
+    substituteInPlace setup.py \
+      --replace "pendulum>=2.0,<=3.0,!=2.0.5,!=2.1.0" "pendulum>=2.0,<=3.0"
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-music/default.nix b/pkgs/development/python-modules/google-music/default.nix
index f6b53aeebea..9d2f0def99b 100644
--- a/pkgs/development/python-modules/google-music/default.nix
+++ b/pkgs/development/python-modules/google-music/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-music";
-  version = "3.5.0";
+  version = "3.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1agqsbnn72gx88sk736k1pzdn2j8fi7flwqhj5g2qhz3wvkx90yq";
+    sha256 = "b79956cc0df86345c74436ae6213b700345403c91d51947288806b174322573b";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/google-pasta/default.nix b/pkgs/development/python-modules/google-pasta/default.nix
index 2b6394ae6ba..608ab9ccd1b 100644
--- a/pkgs/development/python-modules/google-pasta/default.nix
+++ b/pkgs/development/python-modules/google-pasta/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "google-pasta";
-  version = "0.1.8";
+  version = "0.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "713813a9f7d6589e5defdaf21e80e4392eb124662f8bd829acd51a4f8735c0cb";
+    sha256 = "0vm1r1jlaiagj0l9yf7j6zn9w3733dr2169911c0svgrr3gwiwn9";
   };
 
   propagatedBuildInputs = [
@@ -20,6 +20,8 @@ buildPythonPackage rec {
   meta = {
     description = "An AST-based Python refactoring library";
     homepage    = "https://github.com/google/pasta";
+    # Usually the tag message contains a one-line summary of the changes.
+    changelog   = "https://github.com/google/pasta/releases/tag/v${version}";
     license     = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ timokau ];
   };
diff --git a/pkgs/development/python-modules/google_api_core/default.nix b/pkgs/development/python-modules/google_api_core/default.nix
index f3209c2d520..9033f320425 100644
--- a/pkgs/development/python-modules/google_api_core/default.nix
+++ b/pkgs/development/python-modules/google_api_core/default.nix
@@ -1,14 +1,16 @@
 { lib, buildPythonPackage, fetchPypi, pythonOlder, isPy27
-, google_auth, protobuf, googleapis_common_protos, requests, setuptools, grpcio, mock }:
+, google_auth, protobuf, googleapis_common_protos, requests, setuptools, grpcio
+, mock
+}:
 
 buildPythonPackage rec {
   pname = "google-api-core";
-  version = "1.16.0";
+  version = "1.20.1";
   disabled = isPy27; # google namespace no longer works on python2
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1qh30ji399gngv2j1czzvi3h0mgx3lfdx2n8qp8vii7ihyh65scj";
+    sha256 = "6b757736bbc699db858794e9b71e2bbf17996075773a40551ef5e6b0fad2a2f9";
   };
 
   propagatedBuildInputs = [
@@ -27,8 +29,13 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "This library is not meant to stand-alone. Instead it defines common helpers used by all Google API clients.";
-    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
+    description = "Core Library for Google Client Libraries";
+    longDescription = ''
+      This library is not meant to stand-alone. Instead it defines common
+      helpers used by all Google API clients.
+    '';
+    homepage = "https://github.com/googleapis/python-api-core";
+    changelog = "https://github.com/googleapis/python-api-core/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/google_auth/default.nix b/pkgs/development/python-modules/google_auth/default.nix
index d8c6a12aeaa..43c2ff8aa48 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.11.3";
+  version = "1.17.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05av4clwv7kdk1v55ibcv8aim6dwfg1mi4wy0vv91fr6wq3205zc";
+    sha256 = "e634b649967d83c02dd386ecae9ce4a571528d59d51a4228757e45f5404a060b";
   };
 
   propagatedBuildInputs = [ six pyasn1-modules cachetools rsa setuptools ];
@@ -43,8 +43,14 @@ buildPythonPackage rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "This library simplifies using Google’s various server-to-server authentication mechanisms to access Google APIs.";
-    homepage = "https://google-auth.readthedocs.io/en/latest/";
+    description = "Google Auth Python Library";
+    longDescription = ''
+      This library simplifies using Google’s various server-to-server
+      authentication mechanisms to access Google APIs.
+    '';
+    homepage = "https://github.com/googleapis/google-auth-library-python";
+    changelog = "https://github.com/googleapis/google-auth-library-python/blob/v${version}/CHANGELOG.md";
+    # Documentation: https://googleapis.dev/python/google-auth/latest/index.html
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/google_cloud_asset/default.nix b/pkgs/development/python-modules/google_cloud_asset/default.nix
index 6c565d0f820..5d4328ead52 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.6.0";
+  version = "0.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "35eeb50c101968b4b5eecc840002a6f83af6789b6a947f27f0b2787e30cc1835";
+    sha256 = "d25ab222daaa0b827b00dae8c76e4c1b13ba5c687f0acdfd66529b805d41b7f3";
   };
 
   checkInputs = [ pytest mock ];
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 ef76c1e0aae..dc5098fd67a 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 = "0.4.1";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9ef431c0747d92dd5d5d4038aab96215dfd20c59235ece99a96d8329792cbcdb";
+    sha256 = "6eae79e6950f70d48b0578ae95f93530b4eac28216b96e2279cb2f94c5f2ba33";
   };
 
   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 5afaf97cfaa..e79a3ac56fe 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.4.0";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07zjwwliz8wx83l3bv7244qzrv0s3fchp8kgsy5xy41kmkg79a2d";
+    sha256 = "9dd4523291401d8d872f89a87fa5a1d2bcbf6b8ceb1ec0659098fec37d9250e4";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_dataproc/default.nix b/pkgs/development/python-modules/google_cloud_dataproc/default.nix
index b4eed7e5493..9c6067b50ed 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.6.1";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "302bc448e77f1de958ba7413fb85819eda911043f219d8fc030a356848bc6f31";
+    sha256 = "1ff15c9a06fd7b0402a2549142146f951ca92ebcf5f70f4c96dc9b9397d5279d";
   };
 
   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 859e2271824..6305da93d8c 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.11.0";
+  version = "1.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p0ifkhj48fa3m1y5990412s8msnn6mbz5p5g8ffln7jq7dvn57j";
+    sha256 = "c98690833ee2e6341a4b802f278ba17d582ce58eb2e73152516ebc77522d82d7";
   };
 
   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 5c285ca0b1b..b0d3aa5a634 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.13.0";
+  version = "0.15.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "844f5e63597c2a15561eec68397ee5f425e9be7728d2d7072f50f983fab31b9a";
+    sha256 = "9abef093fb344ec556a94e5466b480046c18b8bb0a12f1d202f06c43f3e01f7d";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_error_reporting/default.nix b/pkgs/development/python-modules/google_cloud_error_reporting/default.nix
index 724539c55a0..72502a4f4ad 100644
--- a/pkgs/development/python-modules/google_cloud_error_reporting/default.nix
+++ b/pkgs/development/python-modules/google_cloud_error_reporting/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-error-reporting";
-  version = "0.33.0";
+  version = "0.34.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "845c4d7252f21403a5634a4047c3d77a645df92f6724911a5faf6f5e1bba51fd";
+    sha256 = "34edd11601b17c87a89c2e1cefdc27d975e1e9243a88ba3c0c48bfe6a05c404f";
   };
 
   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 5d8f4b53539..abb849f63a8 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.6.0";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7fec7b523ab5e1f87721ca61181114818579bb4d17de768a3993811c9d2aacfe";
+    sha256 = "afd986bc4bb5a92d6ebe02977cc1d5dc56bf401590d1df43c07609dbec21155d";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/google_cloud_iot/default.nix b/pkgs/development/python-modules/google_cloud_iot/default.nix
index fb2d2bf4a68..8f14f7eeb87 100644
--- a/pkgs/development/python-modules/google_cloud_iot/default.nix
+++ b/pkgs/development/python-modules/google_cloud_iot/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-iot";
-  version = "0.3.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6ead560b0701cf1fe11fe15fae68f09460f0d04fbafa0965fb6bd9e60775437c";
+    sha256 = "bfd1511a7bcc7d23c2ea30253dd86b2b2247576d1345d895d7153dc0b262f06e";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_kms/default.nix b/pkgs/development/python-modules/google_cloud_kms/default.nix
index e9f8275deb9..c333a1fa137 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.2.1";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bb2cf9bff554df05f32c9a51cc50cdd0d6fbabcdc20526460df5306ea28547ff";
+    sha256 = "9d108b2754cb2c6ccc60604d27855c7139dad4b2455342e1e7bfffc27c5193bd";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_monitoring/default.nix b/pkgs/development/python-modules/google_cloud_monitoring/default.nix
index c29b31eb50d..8815d8246d1 100644
--- a/pkgs/development/python-modules/google_cloud_monitoring/default.nix
+++ b/pkgs/development/python-modules/google_cloud_monitoring/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-monitoring";
-  version = "0.34.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "75370af645dd815c234561e7b356fa5d99b0ee6448c0e5d013455c72af961d0b";
+    sha256 = "2feee2cc56b60ed1316175af0974668041c6480803542d3711e4365882dc79cd";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_pubsub/default.nix b/pkgs/development/python-modules/google_cloud_pubsub/default.nix
index 683f5807a0c..e5d62dd8f46 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.1.0";
+  version = "1.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bdead87e40eba93043c6704578e946cf2794366312f936da0a2b3754234dde29";
+    sha256 = "d396ae1938e966e1ac3b981d14db7b0f9fabab553b0876c3202e187e4b477ab6";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_redis/default.nix b/pkgs/development/python-modules/google_cloud_redis/default.nix
index d3c12d29f2b..92f2027bf4e 100644
--- a/pkgs/development/python-modules/google_cloud_redis/default.nix
+++ b/pkgs/development/python-modules/google_cloud_redis/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-redis";
-  version = "0.3.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e24a5eeb126a3e8fcf990806c7a853a27bb9b830c2f03fda42a499894b7614c6";
+    sha256 = "73057750d6afcfc90c224ee4ffa3262b5e85e866b4db676f74a07b49713f2c3a";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_resource_manager/default.nix b/pkgs/development/python-modules/google_cloud_resource_manager/default.nix
index d1d4217b3cc..84fac88bcfa 100644
--- a/pkgs/development/python-modules/google_cloud_resource_manager/default.nix
+++ b/pkgs/development/python-modules/google_cloud_resource_manager/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-resource-manager";
-  version = "0.30.1";
+  version = "0.30.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03n9ahf4qiyamblh217m5bjc8n57gh09xz87l2iw84c81xxdfcpg";
+    sha256 = "de7eba5235df61deee2291a2fe70b904154df613a334109488afdea7a4c0011f";
   };
 
   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 f8962e6fa5d..c953407af8f 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.30.0";
+  version = "0.31.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02075724535b3d6e1d9a6df8a2340190e195faea2f9e91f48d6ae9006993d636";
+    sha256 = "3e0218abc438f2f43605db27189fa7a48c3ca3defc45054dac01835527058a4c";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_secret_manager/default.nix b/pkgs/development/python-modules/google_cloud_secret_manager/default.nix
new file mode 100644
index 00000000000..513b76bafa4
--- /dev/null
+++ b/pkgs/development/python-modules/google_cloud_secret_manager/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildPythonPackage, fetchPypi
+, grpc_google_iam_v1, google_api_core
+, pytest, mock
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-secret-manager";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1cm3xqacxnbpv2706bd2jl86mvcsphpjlvhzngz2k2p48a0jjx8r";
+  };
+
+  propagatedBuildInputs = [
+    google_api_core
+    grpc_google_iam_v1
+  ];
+
+  checkInputs = [
+    mock
+    pytest
+  ];
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "Secret Manager API: Stores, manages, and secures access to application secrets";
+    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ siriobalmelli ];
+  };
+}
diff --git a/pkgs/development/python-modules/google_cloud_securitycenter/default.nix b/pkgs/development/python-modules/google_cloud_securitycenter/default.nix
index 42dccd60805..e6b0fe5f221 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.3.0";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6a0a878db990d657b88ac34942b0a66df24da4643aa181274e602ac337de5d0c";
+    sha256 = "e2c14e01697e54aef9d755bd8abff01af748f42f4e3559efcbb3b0db659f66ac";
   };
 
   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 f6c54be1279..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.15.0";
+  version = "1.17.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ra1cim9kcs680yrhvfn5hjx8y1sccp3lw7id5j5pj53sshdng8h";
+    sha256 = "3240a04eaa6496e9d8bf4929f4ff04de1652621fd49555eb83b743c48ed9ca04";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_speech/default.nix b/pkgs/development/python-modules/google_cloud_speech/default.nix
index bdf8031970f..5ffaafdbd6f 100644
--- a/pkgs/development/python-modules/google_cloud_speech/default.nix
+++ b/pkgs/development/python-modules/google_cloud_speech/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-speech";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "21b597b18ee2b9b9a5e2e05a7a1d47173f8f3adeada36b5bdf6cb816114430bf";
+    sha256 = "2e5adbc0e88f296b1bc8667f1dcf26ca4ea2db6596f07cb0a39e7b1b8ef14656";
   };
 
   propagatedBuildInputs = [ google_api_core ];
diff --git a/pkgs/development/python-modules/google_cloud_storage/default.nix b/pkgs/development/python-modules/google_cloud_storage/default.nix
index b253a4c71ed..9446200b657 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.26.0";
+  version = "1.29.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0caxqf6vda89cmc81fxhmfk3n61aypqz2sswnbsylzf436rsxpzz";
+    sha256 = "07lsdrxypz5i21x99m1zkxwiax89q80v0av6ak0k4fkys48spj0m";
   };
 
   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_tasks/default.nix b/pkgs/development/python-modules/google_cloud_tasks/default.nix
index b4dc1e83ca8..b7f827dd480 100644
--- a/pkgs/development/python-modules/google_cloud_tasks/default.nix
+++ b/pkgs/development/python-modules/google_cloud_tasks/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-tasks";
-  version = "1.3.0";
+  version = "1.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "221388d1dd4bf21ba46ead499bbb3dfba9151b852c4fdca70935ba36e5c3631a";
+    sha256 = "d751b97c1e84980a1646702d3fc1b45bab3284bc3388181f1dc9ba3d204b5a39";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_texttospeech/default.nix b/pkgs/development/python-modules/google_cloud_texttospeech/default.nix
index 0f448440ca4..2c3ef0d39fe 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 = "0.5.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "75562a8db2b0268f57c64e448d697fe82c0ffa889f09be8cbc6ba5369c9a0c59";
+    sha256 = "4ed3d9f17fa7b8d53dbc4992d976f72d845266786a81938444315e5a7b194b53";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_videointelligence/default.nix b/pkgs/development/python-modules/google_cloud_videointelligence/default.nix
index 38ecb8bcc21..07fb02ea595 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.12.1";
+  version = "1.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "66d0a63d27e83656b1b4e0205d32725e4c58db174118badba164bb7d05a66981";
+    sha256 = "c91f605d00926416bcd4d32d6ca195e0e5bd6fb794bc67b09910a19ee2ca6570";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_vision/default.nix b/pkgs/development/python-modules/google_cloud_vision/default.nix
index c2bdc652c7c..585abc8cc48 100644
--- a/pkgs/development/python-modules/google_cloud_vision/default.nix
+++ b/pkgs/development/python-modules/google_cloud_vision/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-vision";
-  version = "0.41.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fd7adcfd8f1bddc19797b25ba3287a4f0cf42e208f330fffb7f1cd125e4d6cd3";
+    sha256 = "18e78b190c81d200ae4f6a46d4af57422d68b3b05b0540d5cd1806e3874142bf";
   };
 
   checkInputs = [ mock ];
diff --git a/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix b/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix
index a68bd9df570..55c370717e1 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.3.0";
+  version = "0.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "26a29657e20fda4302275b92c84c16228381998797e203f85d612f93d4c62358";
+    sha256 = "1c8031e6eec59ee3e2d4af88090ba36521ceb67d79cb297d3c128d2a16af0798";
   };
 
   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 e9c7eecbc3a..40c8f2596bb 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.0";
+  version = "0.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2a8fd188afe1cbfd5998bf20602f76b0336aa892de88fe842a806b9a3ed78d2a";
+    sha256 = "97155236971970382b738921f978a6f86a7b5a0b0311703d991e065d3cb55773";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/googleapis_common_protos/default.nix b/pkgs/development/python-modules/googleapis_common_protos/default.nix
index 08d31b6920b..507c3ba229a 100644
--- a/pkgs/development/python-modules/googleapis_common_protos/default.nix
+++ b/pkgs/development/python-modules/googleapis_common_protos/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "googleapis-common-protos";
-  version = "1.51.0";
+  version = "1.52.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0vi2kr0daivx2q1692lp3y61bfnvdw471xsfwi8924br89q92g01";
+    sha256 = "560716c807117394da12cecb0a54da5a451b5cf9866f1d37e9a5e2329a665351";
   };
 
   propagatedBuildInputs = [ protobuf setuptools ];
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/graph_nets/default.nix b/pkgs/development/python-modules/graph_nets/default.nix
index 4e83be64d03..4f7b8c52e9e 100644
--- a/pkgs/development/python-modules/graph_nets/default.nix
+++ b/pkgs/development/python-modules/graph_nets/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "graph_nets";
-  version = "1.0.5";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "73e98a5930c6c7b609257ada2cf4523db70810343e0593bf0fa710b77e991933";
+    sha256 = "278a040674bef295aaf8bb5b0d1b3f207144dc68f0bcfe3f14912b9b85eb0927";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/graphite-web/default.nix b/pkgs/development/python-modules/graphite-web/default.nix
index 9499a9a6fe2..16341e71808 100644
--- a/pkgs/development/python-modules/graphite-web/default.nix
+++ b/pkgs/development/python-modules/graphite-web/default.nix
@@ -3,11 +3,11 @@
 }:
 buildPythonPackage rec {
   pname = "graphite-web";
-  version = "1.1.6";
+  version = "1.1.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f4c293008ad588456397cd125cdad7f47f4bab5b6dd82b5fb69f5467e7346a2a";
+    sha256 = "b3cb3b9affe1b9e3777aab046416b3d545390ceea4d35d55c753b1e4732eaad0";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/graphite-web/update-django-tagging.patch b/pkgs/development/python-modules/graphite-web/update-django-tagging.patch
index 48d16d50f42..9774f7e70a7 100644
--- a/pkgs/development/python-modules/graphite-web/update-django-tagging.patch
+++ b/pkgs/development/python-modules/graphite-web/update-django-tagging.patch
@@ -1,12 +1,13 @@
-diff -Nur a/setup.py b/setup.py
---- a/setup.py	2020-03-12 18:45:34.654296302 +0100
-+++ b/setup.py	2020-03-12 18:46:17.476893828 +0100
-@@ -115,7 +115,7 @@
+diff --git a/setup.py b/setup.py
+index a1a21f1..f0d1051 100644
+--- a/setup.py
++++ b/setup.py
+@@ -117,7 +117,7 @@ try:
          ['templates/*', 'local_settings.py.example']},
        scripts=glob('bin/*'),
        data_files=list(webapp_content.items()) + storage_dirs + conf_files + examples,
--      install_requires=['Django>=1.8,<2.3', 'django-tagging==0.4.3', 'pytz', 'pyparsing', 'cairocffi', 'urllib3', 'scandir', 'six'],
-+      install_requires=['Django>=1.8,<2.3', 'django-tagging==0.4.6', 'pytz', 'pyparsing', 'cairocffi', 'urllib3', 'scandir', 'six'],
+-      install_requires=['Django>=1.8,<3.1', 'django-tagging==0.4.3', 'pytz',
++      install_requires=['Django>=1.8,<3.1', 'django-tagging==0.5.0', 'pytz',
+                         'pyparsing', 'cairocffi', 'urllib3', 'scandir', 'six'],
        classifiers=[
            'Intended Audience :: Developers',
-           'Natural Language :: English',
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/green/default.nix b/pkgs/development/python-modules/green/default.nix
index 1bf59a24dd4..de1831e3317 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.0.0";
+  version = "3.1.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17cfgq0s02p5cjrsvcicqxiq6kflahjsd9pm03f054x7lpvqi5cv";
+    sha256 = "65f87e4c0d2aca63eb32b01c78233e6f920a58ebabc4f85dd9d8f1c6a92a5184";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/greenlet/default.nix b/pkgs/development/python-modules/greenlet/default.nix
index f6cff7411d2..c325c965249 100644
--- a/pkgs/development/python-modules/greenlet/default.nix
+++ b/pkgs/development/python-modules/greenlet/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "greenlet";
-  version = "0.4.15";
+  version = "0.4.16";
   disabled = isPyPy;  # builtin for pypy
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9416443e219356e3c31f1f918a91badf2e37acf297e2fa13d24d1cc2380f8fbc";
+    sha256 = "6e06eac722676797e8fce4adb8ad3dc57a1bb3adfb0dd3fdf8306c055a38456c";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/grpcio-tools/default.nix b/pkgs/development/python-modules/grpcio-tools/default.nix
index f3eb93cd060..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.28.1";
+  version = "1.31.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "adf089aaf6e21358b12e39d9fa7c28611340d8399a918c0b72ff122ce9b7e0af";
+    sha256 = "3b08cbd3f4d5b60e3bff8f859e6e03db739967a684268164abc940415e23ca51";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/python-modules/gspread/default.nix b/pkgs/development/python-modules/gspread/default.nix
index 5a25d81d017..5fd73541dd4 100644
--- a/pkgs/development/python-modules/gspread/default.nix
+++ b/pkgs/development/python-modules/gspread/default.nix
@@ -2,18 +2,20 @@
 , buildPythonPackage
 , fetchPypi
 , requests
+, google_auth
+, google-auth-oauthlib
 }:
 
 buildPythonPackage rec {
-  version = "3.3.1";
+  version = "3.6.0";
   pname = "gspread";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mpvhndr38hb5x95xk2mqqasvcy6pa7ck8801bvpg5y3lwn5nka0";
+    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/gst-python/default.nix b/pkgs/development/python-modules/gst-python/default.nix
index 11080d3fbc8..00d05e18912 100644
--- a/pkgs/development/python-modules/gst-python/default.nix
+++ b/pkgs/development/python-modules/gst-python/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-python/${pname}-${version}.tar.xz";
-    sha256 = "II3zFI1z2fQW0BZWRzdYXY6nY9kSAXMtRLX+aIxiiKg=";
+    sha256 = "1a48ca66izmm8hnp608jv5isg3jxb0vlfmhns0bg9nbkilag7390";
   };
 
   nativeBuildInputs = [
@@ -45,6 +45,13 @@ buildPythonPackage rec {
       url = "https://github.com/GStreamer/gst-python/commit/f98c206bdf01529f8ea395a719b10baf2bdf717f.patch";
       sha256 = "04n4zrnfivgr7iaqw4sjlbd882s8halc2bbbhfxqf0sg2lqwmrxg";
     })
+  ] ++ [
+    # Fix linking against Python 3.8
+    # https://gitlab.freedesktop.org/gstreamer/gst-python/merge_requests/30
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/gstreamer/gst-python/commit/22f28155d86e27c4134de4ed2861264003fcfd23.patch";
+      sha256 = "Y70qVguHUBmmRVMFBKAP0d6anBQw5W0TKyu2bAwxbQg=";
+    })
   ];
 
   mesonFlags = [
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/gym/default.nix b/pkgs/development/python-modules/gym/default.nix
index fd08f71aa2b..7588135e33c 100644
--- a/pkgs/development/python-modules/gym/default.nix
+++ b/pkgs/development/python-modules/gym/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "gym";
-  version = "0.16.0";
+  version = "0.17.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06h5b639nmzhmy4m1j3vigm86iv5pv7k8jy6xpldyd4jdlf37nn5";
+    sha256 = "bb495aa56995b01274a2213423bf5ba05b8f4fd51c6dc61e9d4abddd1189718e";
   };
 
   postPatch = ''
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 d98a053c418..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.4.3";
+  version = "3.6.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07dlqpr1r4kzb3gci395plpss8gxvvrij40l6w0mylyg7fkab4m2";
+    sha256 = "416e35d736ef6ec9c1f73b9d4a9d5c696cc2a7561811f8bcfa08c8c4912f2289";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/h5netcdf/default.nix b/pkgs/development/python-modules/h5netcdf/default.nix
new file mode 100644
index 00000000000..3d66291aed8
--- /dev/null
+++ b/pkgs/development/python-modules/h5netcdf/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, h5py
+, pytestCheckHook
+, netcdf4
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "h5netcdf";
+  version = "0.8.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09bbnpsvwksb07wijn7flyyza56h5b2g2cw0hb3slmwxz6cgcjmr";
+  };
+
+  propagatedBuildInputs = [
+    h5py
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    netcdf4
+  ];
+
+  disabled = pythonOlder "3.6";
+
+  dontUseSetuptoolsCheck = true;
+
+  meta = {
+    description = "netCDF4 via h5py";
+    homepage = "https://github.com/shoyer/h5netcdf";
+    license = lib.licenses.bsd3;
+  };
+
+}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/ha-ffmpeg/default.nix b/pkgs/development/python-modules/ha-ffmpeg/default.nix
index d6438c6a5b8..cf119c1dec5 100644
--- a/pkgs/development/python-modules/ha-ffmpeg/default.nix
+++ b/pkgs/development/python-modules/ha-ffmpeg/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPythonPackage, fetchPypi, isPy3k
-, ffmpeg, async-timeout }:
+, ffmpeg_3, async-timeout }:
 
 buildPythonPackage rec {
   pname = "ha-ffmpeg";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "230f2fa990c9caaff1c67c2227b64756062248083849651a9bec7d599e519a42";
   };
 
-  buildInputs = [ ffmpeg ];
+  buildInputs = [ ffmpeg_3 ];
 
   propagatedBuildInputs = [ async-timeout ];
 
diff --git a/pkgs/development/python-modules/hass-nabucasa/default.nix b/pkgs/development/python-modules/hass-nabucasa/default.nix
index e13cae33960..61c63b28ab6 100644
--- a/pkgs/development/python-modules/hass-nabucasa/default.nix
+++ b/pkgs/development/python-modules/hass-nabucasa/default.nix
@@ -1,28 +1,41 @@
 { lib, buildPythonPackage, fetchFromGitHub, fetchpatch
 , acme, aiohttp, snitun, attrs, pycognito, warrant
-, pytest-aiohttp, asynctest, pytest  }:
+, pytest-aiohttp, asynctest, atomicwrites, pytest, pythonOlder }:
 
 buildPythonPackage rec {
   pname = "hass-nabucasa";
-  version = "0.32.2";
+  version = "0.34.6";
 
   src = fetchFromGitHub {
     owner = "nabucasa";
     repo = pname;
     rev = version;
-    sha256 = "1hfi5q222kgbgrj5yvr4lbhca49hcs6sc2yhxc4pjxqsc12bv1f1";
+    sha256 = "1lkqwj58qr0vn7zf5mhrhaz973ahj9wjp4mgzvyja1gcdh6amv34";
   };
 
-  # upstreamed in https://github.com/NabuCasa/hass-nabucasa/pull/119
   postPatch = ''
-    sed -i 's/"acme.*/"acme>=0.40.0,<2.0"/' setup.py
-    cat setup.py
+    sed -i 's/"acme.*"/"acme"/' setup.py
+    sed -i 's/"cryptography.*"/"cryptography"/' setup.py
   '';
 
-  propagatedBuildInputs = [ acme aiohttp snitun attrs warrant pycognito ];
+  patches = [
+    # relax pytz dependency
+    (fetchpatch {
+      url = "https://github.com/NabuCasa/hass-nabucasa/commit/419e80feddc36c68384c032feda0057515b53eaa.patch";
+      sha256 = "14dgwci8615cwcf27hg7b42s7da50xhyjys3yx446q7ipk8zw4x6";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    acme aiohttp atomicwrites snitun attrs warrant pycognito
+  ];
 
   checkInputs = [ pytest pytest-aiohttp asynctest ];
 
+  # Asynctest's mocking is broken with python3.8
+  # https://github.com/Martiusweb/asynctest/issues/132
+  doCheck = pythonOlder "3.8";
+
   checkPhase = ''
     pytest tests/
   '';
diff --git a/pkgs/development/python-modules/hcloud/default.nix b/pkgs/development/python-modules/hcloud/default.nix
index bb57c0fbf96..7886746e31e 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.6.3";
+  version = "1.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0idm73k144lk4aw07r8gwxlb0281j09d6l16a0nrn82r36lwq9fy";
+    sha256 = "0dk30ga59lhqba1facram6ls52z45sld6b81gy5cl63q67smy08f";
   };
 
   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 5977ec3aee2..c4caf0e46ad 100644
--- a/pkgs/development/python-modules/helpdev/default.nix
+++ b/pkgs/development/python-modules/helpdev/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "helpdev";
-  version = "0.6.10";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9e61d24458b7506809670222ca656b139e67d46c530cd227a899780152d7b44e";
+    sha256 = "0gfvj28i82va7c264jl2p4cdsl3lpf9fpb9cyjnis55crfdafqmv";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/hg-evolve/default.nix b/pkgs/development/python-modules/hg-evolve/default.nix
index 6ec62f25a59..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 = "9.3.1";
+  version = "10.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0d3gd8k0p6n2flcf7kny1zjvrbbrwbbq4lq82ah6gvnbvllxm4hj";
+    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..179830f8b5f 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 = "3.4.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "026r6yg3amsi8k8plzsbw5rnifym6sc17y011daqyvcpb7mfs94b";
+    sha256 = "09e73029dc6c122f483fca4313a27cc483534145961e4786e65d60895054d940";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/hidapi/default.nix b/pkgs/development/python-modules/hidapi/default.nix
index cd70a7ba2ff..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.7.99.post21";
+  version = "0.9.0.post3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e0be1aa6566979266a8fc845ab0e18613f4918cf2c977fe67050f5dc7e2a9a97";
+    sha256 = "5a2442928f17ba742d9c53073f48b152051c5747d758d2fefd937543da5ab2e5";
   };
 
   propagatedBuildInputs =
diff --git a/pkgs/development/python-modules/hiyapyco/default.nix b/pkgs/development/python-modules/hiyapyco/default.nix
new file mode 100644
index 00000000000..f443c58723e
--- /dev/null
+++ b/pkgs/development/python-modules/hiyapyco/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pyyaml
+, jinja2
+}:
+
+buildPythonPackage rec {
+  pname = "HiYaPyCo";
+  version = "0.4.16";
+
+  src = fetchFromGitHub {
+    owner = "zerwes";
+    repo = pname;
+    rev = "release-${version}";
+    sha256 = "1ams9dp05yhgbg6255wrjgchl2mqg0s34d8b8prvql9lsh59s1fj";
+  };
+
+  propagatedBuildInputs = [ pyyaml jinja2 ];
+
+  checkPhase = ''
+    set -e
+    find test -name 'test_*.py' -exec python {} \;
+  '';
+
+  meta = with lib; {
+    description = "A simple python lib allowing hierarchical overlay of config files in YAML syntax, offering different merge methods and variable interpolation based on jinja2.";
+    homepage = "https://github.com/zerwes/hiyapyco";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ veehaitch ];
+  };
+}
diff --git a/pkgs/development/python-modules/holidays/default.nix b/pkgs/development/python-modules/holidays/default.nix
index eeaf449971b..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.1";
+  version = "0.10.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1dx39krafb6cdnd7h5vgwmw4y075s6k3d31a6vhwvqhmdig3294h";
+    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/homeassistant-pyozw/default.nix b/pkgs/development/python-modules/homeassistant-pyozw/default.nix
index e8aec6781fa..a4ecb0d7ba3 100644
--- a/pkgs/development/python-modules/homeassistant-pyozw/default.nix
+++ b/pkgs/development/python-modules/homeassistant-pyozw/default.nix
@@ -2,12 +2,12 @@
 
 python_openzwave.overridePythonAttrs (oldAttrs: rec {
   pname = "homeassistant_pyozw";
-  version = "0.1.7";
+  version = "0.1.10";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "2d500638270ee4f0e7e9e114d9b4402c94c232f314116cdcf88d7c1dc9a44427";
+    sha256 = "47c1abd8f3dc287760471c6c7b5fad222ead64763c4cb25e37d0599ea3b26952";
   };
 
   patches = [];
diff --git a/pkgs/development/python-modules/hsaudiotag3k/default.nix b/pkgs/development/python-modules/hsaudiotag3k/default.nix
index 28fa42b70f0..d12d3bc8c83 100644
--- a/pkgs/development/python-modules/hsaudiotag3k/default.nix
+++ b/pkgs/development/python-modules/hsaudiotag3k/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "hsaudiotag3k";
-  version = "1.1.3";
+  version = "1.1.3.post1";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0bv5k5594byr2bmhh77xv10fkdpckcmxg3w380yp30aqf83rcsx3";
+    sha256 = "ef60e9210d4727e82f0095a686cb07b676d055918f0c59c5bfa8598da03e59d1";
   };
 
   # no tests
diff --git a/pkgs/development/python-modules/hstspreload/default.nix b/pkgs/development/python-modules/hstspreload/default.nix
index e75894611a1..99612882814 100644
--- a/pkgs/development/python-modules/hstspreload/default.nix
+++ b/pkgs/development/python-modules/hstspreload/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "hstspreload";
-  version = "2020.5.5";
+  version = "2020.6.9";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "sethmlarson";
     repo = pname;
     rev = version;
-    sha256 = "0n3wp2ihjaxlq002rv141766cx4wgk0amg1cb6v30zp0m4054w7d";
+    sha256 = "12js2xcj4979jklc19hjmv5p2b6689p18p4w9swhjc6cgcwm4jy2";
   };
 
   # tests require network connection
diff --git a/pkgs/development/python-modules/html-sanitizer/default.nix b/pkgs/development/python-modules/html-sanitizer/default.nix
new file mode 100644
index 00000000000..17783f38d1f
--- /dev/null
+++ b/pkgs/development/python-modules/html-sanitizer/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonPackage, fetchFromGitHub, lxml, beautifulsoup4, pytest, pytestrunner }:
+
+buildPythonPackage rec {
+  pname = "html-sanitizer";
+  version = "1.9.1";
+
+  src = fetchFromGitHub {
+    owner = "matthiask";
+    repo = pname;
+    rev = version;
+    sha256 = "0nnv34924r0yn01rwlk749j5ijy7yxyj302s1i57yjrkqr3zlvas";
+  };
+
+  propagatedBuildInputs = [ lxml beautifulsoup4 ];
+
+  meta = with lib; {
+    description = "An  allowlist-based and very opinionated HTML sanitizer that can be used both for untrusted and trusted sources.";
+    homepage = "https://github.com/matthiask/html-sanitizer";
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/htmllaundry/default.nix b/pkgs/development/python-modules/htmllaundry/default.nix
index df3bdb216a4..33d3691e85a 100644
--- a/pkgs/development/python-modules/htmllaundry/default.nix
+++ b/pkgs/development/python-modules/htmllaundry/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "htmllaundry";
-  version = "2.0";
+  version = "2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e428cba78d5a965e959f5dac2eb7d5f7d627dd889990d5efa8d4e03f3dd768d9";
+    sha256 = "9124f067d3c06ef2613e2cc246b2fde2299802280a8b0e60dc504137085f0334";
   };
 
   buildInputs = [ nose ];
diff --git a/pkgs/development/python-modules/htmlmin/default.nix b/pkgs/development/python-modules/htmlmin/default.nix
index ee8a83a098c..ccbc157837c 100644
--- a/pkgs/development/python-modules/htmlmin/default.nix
+++ b/pkgs/development/python-modules/htmlmin/default.nix
@@ -14,6 +14,6 @@ buildPythonPackage rec {
     description = "A configurable HTML Minifier with safety features";
     homepage = "https://pypi.python.org/pypi/htmlmin";
     license = stdenv.lib.licenses.bsd3;
-    maintainers = [stdenv.lib.maintainers.ahmedtd];
+    maintainers = [];
   };
 }
diff --git a/pkgs/development/python-modules/http-ece/default.nix b/pkgs/development/python-modules/http-ece/default.nix
index eafa429b439..638191ee7fc 100644
--- a/pkgs/development/python-modules/http-ece/default.nix
+++ b/pkgs/development/python-modules/http-ece/default.nix
@@ -1,5 +1,5 @@
-{ lib, fetchPypi, buildPythonPackage
-, coverage, flake8, mock, nose
+{ lib, fetchPypi, buildPythonPackage, pythonOlder
+, coverage, flake8, mock, nose, importlib-metadata
 , cryptography }:
 
 buildPythonPackage rec {
@@ -11,7 +11,8 @@ buildPythonPackage rec {
     sha256 = "1y5ln09ji4dwpzhxr77cggk02kghq7lql60a6969a5n2lwpvqblk";
   };
 
-  propagatedBuildInputs = [ cryptography ];
+  propagatedBuildInputs = [ cryptography ]
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   checkInputs = [ coverage flake8 mock nose ];
 
diff --git a/pkgs/development/python-modules/httplib2/default.nix b/pkgs/development/python-modules/httplib2/default.nix
index 719a6a966c6..b23d501f1e5 100644
--- a/pkgs/development/python-modules/httplib2/default.nix
+++ b/pkgs/development/python-modules/httplib2/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "httplib2";
-  version = "0.17.0";
+  version = "0.18.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0qc2vn98a4icp3h04pdhiykddz5q6wfi905f19zfxl26kyjd15ny";
+    sha256 = "8af66c1c52c7ffe1aa5dc4bcd7c769885254b0756e6e69f953c7f0ab49a70ba3";
   };
 
   # Needs setting up
diff --git a/pkgs/development/python-modules/httpretty/0.nix b/pkgs/development/python-modules/httpretty/0.nix
new file mode 100644
index 00000000000..ee0e598a9ac
--- /dev/null
+++ b/pkgs/development/python-modules/httpretty/0.nix
@@ -0,0 +1,52 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, tornado
+, requests
+, httplib2
+, sure
+, nose
+, nose-exclude
+, coverage
+, rednose
+, nose-randomly
+, six
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "httpretty";
+  version = "0.9.7";
+
+  # drop this for version > 0.9.7
+  # Flaky tests: https://github.com/gabrielfalcao/HTTPretty/pull/394
+  doCheck = stdenv.lib.versionAtLeast version "0.9.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "66216f26b9d2c52e81808f3e674a6fb65d4bf719721394a1a9be926177e55fbe";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  checkInputs = [ nose sure coverage mock rednose
+    # Following not declared in setup.py
+    nose-randomly requests tornado httplib2 nose-exclude
+  ];
+
+  __darwinAllowLocalNetworking = true;
+
+  # Those flaky tests are failing intermittently on all platforms
+  NOSE_EXCLUDE = stdenv.lib.concatStringsSep "," [
+    "tests.functional.test_httplib2.test_callback_response"
+    "tests.functional.test_requests.test_streaming_responses"
+    "tests.functional.test_httplib2.test_callback_response"
+    "tests.functional.test_requests.test_httpretty_should_allow_adding_and_overwritting_by_kwargs_u2"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://httpretty.readthedocs.org/";
+    description = "HTTP client request mocking tool";
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/httpretty/default.nix b/pkgs/development/python-modules/httpretty/default.nix
index ee0e598a9ac..895a28356ee 100644
--- a/pkgs/development/python-modules/httpretty/default.nix
+++ b/pkgs/development/python-modules/httpretty/default.nix
@@ -12,11 +12,14 @@
 , nose-randomly
 , six
 , mock
+, eventlet
+, pytest
+, freezegun
 }:
 
 buildPythonPackage rec {
   pname = "httpretty";
-  version = "0.9.7";
+  version = "1.0.2";
 
   # drop this for version > 0.9.7
   # Flaky tests: https://github.com/gabrielfalcao/HTTPretty/pull/394
@@ -24,16 +27,20 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "66216f26b9d2c52e81808f3e674a6fb65d4bf719721394a1a9be926177e55fbe";
+    sha256 = "24a6fd2fe1c76e94801b74db8f52c0fb42718dc4a199a861b305b1a492b9d868";
   };
 
   propagatedBuildInputs = [ six ];
 
-  checkInputs = [ nose sure coverage mock rednose
+  checkInputs = [ nose sure coverage mock rednose pytest
     # Following not declared in setup.py
-    nose-randomly requests tornado httplib2 nose-exclude
+    nose-randomly requests tornado httplib2 nose-exclude freezegun
   ];
 
+  checkPhase = ''
+    nosetests tests/unit # functional tests cause trouble requiring /etc/protocol
+  '';
+
   __darwinAllowLocalNetworking = true;
 
   # Those flaky tests are failing intermittently on all platforms
diff --git a/pkgs/development/python-modules/httptools/default.nix b/pkgs/development/python-modules/httptools/default.nix
index b5d7f8cdb10..ed25195e3f2 100644
--- a/pkgs/development/python-modules/httptools/default.nix
+++ b/pkgs/development/python-modules/httptools/default.nix
@@ -1,17 +1,24 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "httptools";
-  version = "0.0.13";
+  version = "0.1.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e00cbd7ba01ff748e494248183abc6e153f49181169d8a3d41bb49132ca01dfc";
+    sha256 = "41b573cf33f64a8f8f3400d0a7faf48e1888582b6f6e02b82b9bd4f0bf7497ce";
   };
 
+  # tests are not included in pypi tarball
+  doCheck = false;
+
+  pythonImportsCheck = [ "httptools" ];
+
   meta = with lib; {
     description = "A collection of framework independent HTTP protocol utils";
     homepage = "https://github.com/MagicStack/httptools";
diff --git a/pkgs/development/python-modules/huey/default.nix b/pkgs/development/python-modules/huey/default.nix
new file mode 100644
index 00000000000..28a801de71a
--- /dev/null
+++ b/pkgs/development/python-modules/huey/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchFromGitHub, redis }:
+
+buildPythonPackage rec {
+  pname = "huey";
+  version = "2.2.0";
+
+  src = fetchFromGitHub {
+    owner = "coleifer";
+    repo = pname;
+    rev = version;
+    sha256 = "1hgic7qrmb1kxvfgf2qqiw39nqyknf17pjvli8jfzvd9mv7cb7hh";
+  };
+
+  propagatedBuildInputs = [ redis ];
+
+  # connects to redis
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A little task queue for python";
+    homepage = "https://github.com/coleifer/huey";
+    license = licenses.mit;
+    maintainers = [ maintainers.globin ];
+  };
+}
diff --git a/pkgs/development/python-modules/humanfriendly/default.nix b/pkgs/development/python-modules/humanfriendly/default.nix
index 8674231bc30..49cb31b7d03 100644
--- a/pkgs/development/python-modules/humanfriendly/default.nix
+++ b/pkgs/development/python-modules/humanfriendly/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "humanfriendly";
-  version = "4.18";
+  version = "8.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "33ee8ceb63f1db61cce8b5c800c531e1a61023ac5488ccde2ba574a85be00a85";
+    sha256 = "bf52ec91244819c780341a3438d5d7b09f431d3f113a475147ac9b7b167a3d12";
   };
 
   propagatedBuildInputs = lib.optional (pythonOlder "3.3") monotonic;
diff --git a/pkgs/development/python-modules/humanize/default.nix b/pkgs/development/python-modules/humanize/default.nix
index d54c932ae32..70489cc3bfc 100644
--- a/pkgs/development/python-modules/humanize/default.nix
+++ b/pkgs/development/python-modules/humanize/default.nix
@@ -1,19 +1,23 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , mock
+, setuptools_scm
 }:
 
 buildPythonPackage rec {
-  version = "0.5.1";
+  version = "2.4.1";
   pname = "humanize";
+  disabled = isPy27; # setup.py no longer compatible
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a43f57115831ac7c70de098e6ac46ac13be00d69abbf60bdcac251344785bb19";
+    sha256 = "4b4ce2fc1c9d79c63f68009ddf5a12ad238aa78e2fceb256b5aa921763551422";
   };
 
-  buildInputs = [ mock ];
+  nativeBuildInputs = [ setuptools_scm ];
+  checkInputs = [ mock ];
 
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/hupper/default.nix b/pkgs/development/python-modules/hupper/default.nix
index 33f76f0a248..b70202138d4 100644
--- a/pkgs/development/python-modules/hupper/default.nix
+++ b/pkgs/development/python-modules/hupper/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "hupper";
-  version = "1.9.1";
+  version = "1.10.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3b1c2222ec7b8159e7ad059e4493c6cc634c86184af0bf2ce5aba6edd241cf5f";
+    sha256 = "3818f53dabc24da66f65cf4878c1c7a9b5df0c46b813e014abdd7c569eb9a02a";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/hvac/default.nix b/pkgs/development/python-modules/hvac/default.nix
index a783246ee5c..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.1";
+  version = "0.10.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1fcd2psvkfsqy45iygm59rzhb7qkbgv3c1dk3x3jvhy6a1ls4kkq";
+    sha256 = "87dc2a3183c1d4595990203e752b430155d7582a60850dfe0756189a233d4b57";
   };
 
   propagatedBuildInputs = [ requests six ];
diff --git a/pkgs/development/python-modules/hvplot/default.nix b/pkgs/development/python-modules/hvplot/default.nix
index 0bf09419c0c..d787b611335 100644
--- a/pkgs/development/python-modules/hvplot/default.nix
+++ b/pkgs/development/python-modules/hvplot/default.nix
@@ -13,17 +13,22 @@
 , networkx
 , streamz
 , colorcet
+, pythonImportsCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "hvplot";
-  version = "0.5.2";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "408a7756b980df148d1f2fd59cd690ad4870d7e3c3c5e46c6b5c2e71fc6a097c";
+    sha256 = "8fcf2f251bd9d4b0390d9c272c992aa75e11174829e416a22de8fba38acc1ce9";
   };
 
+  nativeBuildInputs = [
+    pythonImportsCheckHook
+  ];
+
   checkInputs = [ pytest parameterized nbsmoke flake8 coveralls xarray networkx streamz ];
   propagatedBuildInputs = [
     bokeh
@@ -39,6 +44,10 @@ buildPythonPackage rec {
   # many tests require a network connection
   doCheck = false;
 
+  pythonImportsCheck = [
+    "hvplot.pandas"
+  ];
+
   meta = with lib; {
     description = "A high-level plotting API for the PyData ecosystem built on HoloViews";
     homepage = "https://hvplot.pyviz.org";
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/hypothesis/2.nix b/pkgs/development/python-modules/hypothesis/2.nix
new file mode 100644
index 00000000000..5b086d5f1a7
--- /dev/null
+++ b/pkgs/development/python-modules/hypothesis/2.nix
@@ -0,0 +1,45 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, isPy3k, attrs, coverage, enum34, pexpect
+, doCheck ? true, pytest, pytest_xdist, flaky, mock
+, sortedcontainers
+}:
+buildPythonPackage rec {
+  # https://hypothesis.readthedocs.org/en/latest/packaging.html
+
+  # Hypothesis has optional dependencies on the following libraries
+  # pytz fake_factory django numpy pytest
+  # If you need these, you can just add them to your environment.
+
+  version = "4.57.1";
+  pname = "hypothesis";
+
+  # Use github tarballs that includes tests
+  src = fetchFromGitHub {
+    owner = "HypothesisWorks";
+    repo = "hypothesis-python";
+    rev = "hypothesis-python-${version}";
+    sha256 = "1qcpcrk6892hzyjsdr581pw6i4fj9035nv89mcjrcrzcmycdlfds";
+  };
+
+  postUnpack = "sourceRoot=$sourceRoot/hypothesis-python";
+
+  propagatedBuildInputs = [
+    attrs
+    coverage
+    sortedcontainers
+  ] ++ lib.optional (!isPy3k) enum34;
+
+  checkInputs = [ pytest pytest_xdist flaky mock pexpect ];
+  inherit doCheck;
+
+  checkPhase = ''
+    rm tox.ini # This file changes how py.test runs and breaks it
+    py.test tests/cover
+  '';
+
+  meta = with lib; {
+    description = "A Python library for property based testing";
+    homepage = "https://github.com/HypothesisWorks/hypothesis";
+    license = licenses.mpl20;
+  };
+}
diff --git a/pkgs/development/python-modules/hypothesis/default.nix b/pkgs/development/python-modules/hypothesis/default.nix
index 834f1039fd7..f79fe028203 100644
--- a/pkgs/development/python-modules/hypothesis/default.nix
+++ b/pkgs/development/python-modules/hypothesis/default.nix
@@ -1,6 +1,7 @@
 { lib, buildPythonPackage, fetchFromGitHub
 , isPy3k, attrs, coverage, enum34, pexpect
 , doCheck ? true, pytest, pytest_xdist, flaky, mock
+, sortedcontainers
 }:
 buildPythonPackage rec {
   # https://hypothesis.readthedocs.org/en/latest/packaging.html
@@ -9,7 +10,7 @@ buildPythonPackage rec {
   # pytz fake_factory django numpy pytest
   # If you need these, you can just add them to your environment.
 
-  version = "4.41.0";
+  version = "5.11.0";
   pname = "hypothesis";
 
   # Use github tarballs that includes tests
@@ -17,12 +18,16 @@ buildPythonPackage rec {
     owner = "HypothesisWorks";
     repo = "hypothesis-python";
     rev = "hypothesis-python-${version}";
-    sha256 = "09bpwp4kdywkmzci969m57w0yy8c31kzwg60vg4mvrmmgyi2cfzv";
+    sha256 = "1ca2dwih65s4r8vazwqm963ywngdr3v854ldnfyny7bvx1v28m8k";
   };
 
   postUnpack = "sourceRoot=$sourceRoot/hypothesis-python";
 
-  propagatedBuildInputs = [ attrs coverage ] ++ lib.optional (!isPy3k) enum34;
+  propagatedBuildInputs = [
+    attrs
+    coverage
+    sortedcontainers
+  ] ++ lib.optional (!isPy3k) enum34;
 
   checkInputs = [ pytest pytest_xdist flaky mock pexpect ];
   inherit doCheck;
diff --git a/pkgs/development/python-modules/i3ipc/default.nix b/pkgs/development/python-modules/i3ipc/default.nix
index f5a8fc1e46c..4cc8574c842 100644
--- a/pkgs/development/python-modules/i3ipc/default.nix
+++ b/pkgs/development/python-modules/i3ipc/default.nix
@@ -1,20 +1,19 @@
 { stdenv, buildPythonPackage, fetchFromGitHub
-, enum-compat
 , xorgserver, pytest, pytest-xvfb, pytest-asyncio, i3, python, xlib, xdpyinfo
 , makeFontsConf, coreutils
 }:
 
 buildPythonPackage rec {
   pname = "i3ipc";
-  version = "2.1.1";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner  = "acrisci";
     repo   = "i3ipc-python";
     rev    = "v${version}";
-    sha256 = "10zpbiw1gcndn439g1vxcdkxllwp02qcmaal4w7hi2rzgaw1xkdk";
+    sha256 = "13bzs9dcv27czpnnbgz7a037lm8h991c8gk0qzzk5mq5yak24715";
   };
-  propagatedBuildInputs = [ enum-compat xlib ];
+  propagatedBuildInputs = [ xlib ];
 
   fontsConf = makeFontsConf {
     fontDirectories = [ ];
diff --git a/pkgs/development/python-modules/iapws/default.nix b/pkgs/development/python-modules/iapws/default.nix
index 3bffcfb914b..3605e88edd3 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";
+  version = "1.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3d7a7a17343157dacd3f654b7f82d1974492209756c4de99332d4f6b375227e6";
+    sha256 = "d65c813bb6b100a8d1ed79e00148832a0321b3063e9632a990344890acb02493";
   };
 
   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 e66509fbae5..6aba70d3a50 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.15";
+  version = "1.4.25";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1w6vy3nk28xhnamnmh7ddawprmb1ri2yw5s9lphmpq2hpfbqvh93";
+    sha256 = "110ed090fec6bce1aabe3c72d9258a9de82207adeaa5a05cd75c635880312f9a";
   };
 
   # 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 5e5d623ff10..13e8fb43bb2 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.8";
+  version = "2.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407";
+    sha256 = "7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb";
   };
 
   meta = {
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 9374d8939c3..4bcbe6a061a 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 = "2.6.1";
+  version = "3.0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1l034zq23315icym2n0zppa5lwpdll3mvavmyjbiryxb4c5wdsvm";
+    sha256 = "6e25448318cda55e82a5de52beb6813b003cb8e4a7b5753305912a30055a29f8";
   };
 
   doCheck = false; # something about yajl
diff --git a/pkgs/development/python-modules/imageio-ffmpeg/default.nix b/pkgs/development/python-modules/imageio-ffmpeg/default.nix
index e3a6e3bfd8d..d9991ee7845 100644
--- a/pkgs/development/python-modules/imageio-ffmpeg/default.nix
+++ b/pkgs/development/python-modules/imageio-ffmpeg/default.nix
@@ -6,10 +6,10 @@
 
 buildPythonPackage rec {
   pname = "imageio-ffmpeg";
-  version = "0.3.0";
+  version = "0.4.2";
 
   src = fetchPypi {
-    sha256 = "1hnn00xz9jyksnx1g0r1icv6ynbdnxq4cfnmb58ikg6ymi20al18";
+    sha256 = "13b05b17a941a9f4a90b16910b1ffac159448cff051a153da8ba4b4343ffa195";
     inherit pname version;
   };
 
diff --git a/pkgs/development/python-modules/imageio/default.nix b/pkgs/development/python-modules/imageio/default.nix
index 5433e1ea9e4..4868f3ae371 100644
--- a/pkgs/development/python-modules/imageio/default.nix
+++ b/pkgs/development/python-modules/imageio/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , buildPythonPackage
+, isPy27
 , pathlib
 , fetchPypi
 , pillow
@@ -8,28 +9,25 @@
 , pytest
 , numpy
 , isPy3k
-, ffmpeg
+, ffmpeg_3
 , futures
 , enum34
 }:
 
 buildPythonPackage rec {
   pname = "imageio";
-  version = "2.6.1";
+  version = "2.8.0";
+  disabled = isPy27;
 
   src = fetchPypi {
-    sha256 = "1bk7pijmrspdfj9nnlbnw1yiww9w1kyjvlpzy9s5hj6zp4qv4kpl";
+    sha256 = "fb5fd6d3d17126bbaac9af29fe340e2c97a196eb9416d4f28c0e543744a152cf";
     inherit pname version;
   };
 
   checkInputs = [ pytest psutil ] ++ stdenv.lib.optionals isPy3k [
-    imageio-ffmpeg ffmpeg
+    imageio-ffmpeg ffmpeg_3
     ];
-  propagatedBuildInputs = [ numpy pillow ] ++ stdenv.lib.optionals (!isPy3k) [
-    futures
-    enum34
-    pathlib
-  ];
+  propagatedBuildInputs = [ numpy pillow ];
 
   checkPhase = ''
     export IMAGEIO_USERDIR="$TMP"
diff --git a/pkgs/development/python-modules/imagesize/default.nix b/pkgs/development/python-modules/imagesize/default.nix
index aa7f1ea4724..ab3ee46c1b8 100644
--- a/pkgs/development/python-modules/imagesize/default.nix
+++ b/pkgs/development/python-modules/imagesize/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "imagesize";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f3832918bc3c66617f92e35f5d70729187676313caa60c187eb0f28b8fe5e3b5";
+    sha256 = "b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/imbalanced-learn/default.nix b/pkgs/development/python-modules/imbalanced-learn/default.nix
index b2d15d5faa5..49a98d675e5 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.1";
+  version = "0.6.2";
   disabled = isPy27; # scikit-learn>=0.21 doesn't work on python2
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "94f846ff8d19ee9ea42ba6feddfbc85d5b42098bd3b62318f8d3bc5c7133b274";
+    sha256 = "942b9a7f2e1df831097fbee587c5c90a4cc6afa6105b23d3e30d8798f1a9b17d";
   };
 
   propagatedBuildInputs = [ scikitlearn ];
diff --git a/pkgs/applications/misc/img2pdf/default.nix b/pkgs/development/python-modules/img2pdf/default.nix
index 972e3b7e7b6..2fa46c2ed9d 100644
--- a/pkgs/applications/misc/img2pdf/default.nix
+++ b/pkgs/development/python-modules/img2pdf/default.nix
@@ -1,23 +1,20 @@
-{ stdenv, python3Packages }:
+{ lib, pillow, fetchPypi, buildPythonPackage, isPy27 }:
 
-with python3Packages;
-
-buildPythonApplication rec {
+buildPythonPackage rec {
   pname = "img2pdf";
-  version = "0.3.4";
+  version = "0.3.6";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0jgfk191vvxn2r6bbdknvw5v510mx9g0xrgnmcghaxkv65zjnj0b";
+    sha256 = "1yx0ljbg7phpix507wq584qvspp2jgax7flpp1148pxpc2d51mcc";
   };
 
-  doCheck = false; # needs pdfrw
-
   propagatedBuildInputs = [
     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/immutables/default.nix b/pkgs/development/python-modules/immutables/default.nix
index 7de40cdfe5b..41dcc6b2c11 100644
--- a/pkgs/development/python-modules/immutables/default.nix
+++ b/pkgs/development/python-modules/immutables/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "immutables";
-  version = "0.12";
+  version = "0.14";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12i8r5z0y6ya850fwl2r4hig5hyli8skvjmgylapxa4zbr13fqmc";
+    sha256 = "0y0aqw29g525frdnmv9paljzacpp4s21sadfbca5b137iciwr8d0";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/impacket/default.nix b/pkgs/development/python-modules/impacket/default.nix
index 1d71b15137c..e973175b26a 100644
--- a/pkgs/development/python-modules/impacket/default.nix
+++ b/pkgs/development/python-modules/impacket/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "impacket";
-  version = "0.9.20";
+  version = "0.9.21";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "43ebdb62e179113a55ccd4297316532582be71857b85d85ba187cd6146757397";
+    sha256 = "912f812564e87c31a162cfe0626f3a6cbc5b6864deedbfefc31f6d321859ade3";
   };
 
   disabled = isPy3k;
diff --git a/pkgs/development/python-modules/importlib-metadata/default.nix b/pkgs/development/python-modules/importlib-metadata/default.nix
index 76545edcbeb..5a313792247 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.5.0";
+  version = "1.6.0";
 
   src = fetchPypi {
     pname = "importlib_metadata";
     inherit version;
-    sha256 = "00ikdj4gjhankdljnz7g5ggak4k9lql2926x0x117ir9j2lv7x86";
+    sha256 = "07icyggasn38yv2swdrd8z6i0plazmc9adavsdkbqqj91j53ll9l";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ zipp ]
     ++ lib.optionals (!isPy3k) [ pathlib2 contextlib2 configparser ];
 
-  checkInputs = [ importlib-resources packaging ];
+  doCheck = false; # Cyclic dependencies.
 
   # removing test_main.py - it requires 'pyflakefs'
   # and adding `pyflakefs` to `checkInputs` causes infinite recursion.
diff --git a/pkgs/development/python-modules/importlib-resources/default.nix b/pkgs/development/python-modules/importlib-resources/default.nix
index 6fba0a703e1..7faefd4c0e1 100644
--- a/pkgs/development/python-modules/importlib-resources/default.nix
+++ b/pkgs/development/python-modules/importlib-resources/default.nix
@@ -1,24 +1,28 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pathlib2
+, setuptools_scm
+, toml
+, importlib-metadata
 , typing
-, isPy3k
+, singledispatch
 , pythonOlder
 , python
 }:
 
 buildPythonPackage rec {
   pname = "importlib_resources";
-  version = "1.0.2";
+  version = "1.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d3279fd0f6f847cced9f7acc19bd3e5df54d34f93a2e7bb5f238f81545787078";
+    sha256 = "1jilyxyb2z7hzcjhx1ddni52mq00i728wqh8f5k4469yhdkdz1vg";
   };
 
+  nativeBuildInputs = [ setuptools_scm toml ];
   propagatedBuildInputs = [
-  ] ++ lib.optional (!isPy3k) pathlib2
+    importlib-metadata
+  ] ++ lib.optional (pythonOlder "3.4") singledispatch
     ++ lib.optional (pythonOlder "3.5") typing
   ;
 
diff --git a/pkgs/development/python-modules/inflect/default.nix b/pkgs/development/python-modules/inflect/default.nix
index 2b856b35f7c..b7fbe41f691 100644
--- a/pkgs/development/python-modules/inflect/default.nix
+++ b/pkgs/development/python-modules/inflect/default.nix
@@ -1,15 +1,16 @@
-{ buildPythonPackage, fetchPypi, setuptools_scm, nose, six, importlib-metadata }:
+{ buildPythonPackage, fetchPypi, isPy27, setuptools_scm, nose, six, importlib-metadata, toml }:
 
 buildPythonPackage rec {
   pname = "inflect";
-  version = "3.0.2";
+  version = "4.1.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ee7c9b7c3376d06828b205460afb3c447b5d25dd653171db249a238f3fc2c18a";
+    sha256 = "def6f3791be9181f0c01e0bf5949304007ec6e04c6674fbef7cc49c657b8a9a5";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools_scm toml ];
   propagatedBuildInputs = [ six importlib-metadata ];
   checkInputs = [ nose ];
 }
diff --git a/pkgs/development/python-modules/inflection/default.nix b/pkgs/development/python-modules/inflection/default.nix
index bc2a24abe59..bf370d7ebf3 100644
--- a/pkgs/development/python-modules/inflection/default.nix
+++ b/pkgs/development/python-modules/inflection/default.nix
@@ -1,12 +1,13 @@
-{ lib, fetchPypi, buildPythonPackage, pytest } :
+{ lib, fetchPypi, buildPythonPackage, isPy27, pytest } :
 
 buildPythonPackage rec {
   pname = "inflection";
-  version = "0.3.1";
+  version = "0.4.0";
+  disabled = isPy27;
 
   src = fetchPypi {
    inherit pname version;
-   sha256 = "1jhnxgnw8y3mbzjssixh6qkc7a3afc4fygajhqrqalnilyvpzshq";
+   sha256 = "32a5c3341d9583ec319548b9015b7fbdf8c429cbcb575d326c33ae3a0e90d52c";
   };
 
   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/influxdb/default.nix b/pkgs/development/python-modules/influxdb/default.nix
index cb86e18eb6e..650235b2940 100644
--- a/pkgs/development/python-modules/influxdb/default.nix
+++ b/pkgs/development/python-modules/influxdb/default.nix
@@ -5,20 +5,29 @@
 , dateutil
 , pytz
 , six
+, msgpack
+, fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "influxdb";
-  version = "5.2.3";
+  version = "5.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0dlddhbmd37qsdfyqn9w3xx4v07hladj6fvk9i15jxmz0iz6q9rh";
+    sha256 = "9bcaafd57ac152b9824ab12ed19f204206ef5df8af68404770554c5b55b475f6";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/influxdata/influxdb-python/commit/cc41e290f690c4eb67f75c98fa9f027bdb6eb16b.patch";
+      sha256 = "1fb9qrq1kp24pixjwvzhdy67z3h0wnj92aj0jw0a25fd0rdxdvg4";
+    })
+  ];
+
   # ImportError: No module named tests
   doCheck = false;
-  propagatedBuildInputs = [ requests dateutil pytz six ];
+  propagatedBuildInputs = [ requests dateutil pytz six msgpack ];
 
   meta = with stdenv.lib; {
     description = "Python client for InfluxDB";
diff --git a/pkgs/development/python-modules/infoqscraper/default.nix b/pkgs/development/python-modules/infoqscraper/default.nix
index ce265d01378..4a154308343 100644
--- a/pkgs/development/python-modules/infoqscraper/default.nix
+++ b/pkgs/development/python-modules/infoqscraper/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   buildInputs = [ html5lib ];
-  propagatedBuildInputs = [ six beautifulsoup4 pkgs.ffmpeg pkgs.swftools pkgs.rtmpdump ];
+  propagatedBuildInputs = [ six beautifulsoup4 pkgs.ffmpeg_3 pkgs.swftools pkgs.rtmpdump ];
 
   meta = with stdenv.lib; {
     description = "Discover presentations and/or create a movie consisting of slides and audio track from an infoq url";
diff --git a/pkgs/development/python-modules/iniparse/default.nix b/pkgs/development/python-modules/iniparse/default.nix
index 1fdae967a42..e240b0863c2 100644
--- a/pkgs/development/python-modules/iniparse/default.nix
+++ b/pkgs/development/python-modules/iniparse/default.nix
@@ -2,21 +2,24 @@
 , buildPythonPackage
 , fetchPypi
 , python
+, six
 }:
 
 buildPythonPackage rec {
   pname = "iniparse";
-  version = "0.4";
+  version = "0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0m60k46vr03x68jckachzsipav0bwhhnqb8715hm1cngs89fxhdb";
+    sha256 = "932e5239d526e7acb504017bb707be67019ac428a6932368e6851691093aa842";
   };
 
   checkPhase = ''
     ${python.interpreter} runtests.py
   '';
 
+  propagatedBuildInputs = [ six ];
+
   # Does not install tests
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/intake/default.nix b/pkgs/development/python-modules/intake/default.nix
index ca22dc4a9f9..91c779c292a 100644
--- a/pkgs/development/python-modules/intake/default.nix
+++ b/pkgs/development/python-modules/intake/default.nix
@@ -23,13 +23,13 @@
 
 buildPythonPackage rec {
   pname = "intake";
-  version = "0.5.5";
+  version = "0.6.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ypgf0046hln27gjcy7gjh4diblgmivkf7kxbcy1mjvwka55bdmw";
+    sha256 = "0c284abeb74927a7366dcab6cefc010c4d050365b8af61c37326a2473a490a4e";
   };
 
   checkInputs = [ pyarrow pytest ];
diff --git a/pkgs/development/python-modules/internetarchive/default.nix b/pkgs/development/python-modules/internetarchive/default.nix
index d862e3d2abb..ecf39000661 100644
--- a/pkgs/development/python-modules/internetarchive/default.nix
+++ b/pkgs/development/python-modules/internetarchive/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "internetarchive";
-  version = "1.9.3";
+  version = "1.9.4";
 
   # Can't use pypi, data files for tests missing
   src = fetchFromGitHub {
     owner = "jjjake";
     repo = "internetarchive";
     rev = "v${version}";
-    sha256 = "19av6cpps2qldfl3wb9mcirs1a48a4466m1v9k9yhdznqi4zb0ji";
+    sha256 = "10xlblj21hanahsmw6lfggbrbpw08pdmvdgds1p58l8xd4fazli8";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/invoke/default.nix b/pkgs/development/python-modules/invoke/default.nix
index a07dd9e727c..7189727cf3a 100644
--- a/pkgs/development/python-modules/invoke/default.nix
+++ b/pkgs/development/python-modules/invoke/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "invoke";
-  version = "1.3.0";
+  version = "1.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nn7gad0rvy492acpyhkrp01zsk86acf34qhsvq4xmm6x39788n5";
+    sha256 = "de3f23bfe669e3db1085789fd859eb8ca8e0c5d9c20811e2407fa042e8a5e15d";
   };
 
   patchPhase = ''
@@ -20,6 +20,9 @@ buildPythonPackage rec {
   # errors with vendored libs
   doCheck = false;
 
+  # has vendored python2 code
+  dontUsePythonRecompileBytecode = true;
+
   meta = {
     description = "Pythonic task execution";
     license = lib.licenses.bsd2;
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/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/ipyparallel/default.nix b/pkgs/development/python-modules/ipyparallel/default.nix
index 578dfd306b1..297b87d5745 100644
--- a/pkgs/development/python-modules/ipyparallel/default.nix
+++ b/pkgs/development/python-modules/ipyparallel/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "ipyparallel";
-  version = "6.2.4";
+  version = "6.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0rf0dbpxf5z82bw8lsjj45r3wdd4wc74anz4wiiaf2rbjqlb1ivn";
+    sha256 = "0a97b276c62db633e9e97a816282bdd166f9df74e28204f0c8fa54b71944cfdc";
   };
 
   buildInputs = [ nose ];
@@ -31,6 +31,8 @@ buildPythonPackage rec {
   # Requires access to cluster
   doCheck = false;
 
+  disabled = !isPy3k;
+
   meta = {
     description = "Interactive Parallel Computing with IPython";
     homepage = "http://ipython.org/";
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 4c8086def33..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 fridh ];
-  };
-}
diff --git a/pkgs/development/python-modules/ipython/default.nix b/pkgs/development/python-modules/ipython/default.nix
index 9d6624a7df4..9700737f485 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.13.0";
+  version = "7.16.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ca478e52ae1f88da0102360e57e528b92f3ae4316aabac80a2cd7f7ab2efb48a";
+    sha256 = "9f4fcb31d3b2c533333893b9172264e4821c1ac91839500f31bd43f2c59b3ccf";
   };
 
   prePatch = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/python-modules/ipyvue/default.nix b/pkgs/development/python-modules/ipyvue/default.nix
index 2b03fd368d9..8507dfc7e60 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.1";
+  version = "1.3.4";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01kp7d8iyz04d0m4njhv8rg72daqmgd93bdljwyffzxg71pwq92a";
+    sha256 = "009815638f33e67f0fd9cc4fa2087b2faa438e32703877ca14ecf9826508b724";
   };
 
   propagatedBuildInputs = [ ipywidgets ];
diff --git a/pkgs/development/python-modules/ipyvuetify/default.nix b/pkgs/development/python-modules/ipyvuetify/default.nix
index dc9df34c0d0..45d18085cc4 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.2.2";
+  version = "1.4.1";
 
   # GitHub version tries to run npm (Node JS)
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0vg3sdkdhba917xs6gyzwpp10gi2gszihf45cw2llwsfgb7kpfw8";
+    sha256 = "eb940d89fb7c877a3d42e08e7ae1d5cf8a501e059db165007687fdf648598b06";
   };
 
   propagatedBuildInputs = [ ipyvue ];
diff --git a/pkgs/development/python-modules/irc/default.nix b/pkgs/development/python-modules/irc/default.nix
index 5828ada7a61..b04ab3febdb 100644
--- a/pkgs/development/python-modules/irc/default.nix
+++ b/pkgs/development/python-modules/irc/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchPypi, isPy3k
+{ lib, buildPythonPackage, fetchPypi, isPy3k
 , six, jaraco_logging, jaraco_text, jaraco_stream, pytz, jaraco_itertools
 , setuptools_scm, jaraco_collections, importlib-metadata
 }:
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  buildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [
     six
     importlib-metadata
@@ -27,4 +27,11 @@ buildPythonPackage rec {
     jaraco_itertools
     jaraco_collections
   ];
+
+  meta = with lib; {
+    description = "IRC (Internet Relay Chat) protocol library for Python";
+    homepage = "https://github.com/jaraco/irc";
+    license = licenses.mit;
+    maintainers = [];
+  };
 }
diff --git a/pkgs/development/python-modules/isbnlib/default.nix b/pkgs/development/python-modules/isbnlib/default.nix
index 6b238163cb5..2c454fd9ce0 100644
--- a/pkgs/development/python-modules/isbnlib/default.nix
+++ b/pkgs/development/python-modules/isbnlib/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "isbnlib";
-  version = "3.10.0";
+  version = "3.10.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p7iaa6ykvhalpv09svxs50hnp25j5nv1zzp42n5r7a7rw70wlf8";
+    sha256 = "2295c01465fe19776b1f9432fd99fd24e61230d146ded2752e0d980ef6f4101f";
   };
 
   checkInputs = [
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
new file mode 100644
index 00000000000..33504323802
--- /dev/null
+++ b/pkgs/development/python-modules/iterm2/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi
+, protobuf
+, websockets
+}:
+
+buildPythonPackage rec {
+  pname = "iterm2";
+  version = "1.14";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "089pln3c41n6dyh91hw9gy6mpm9s663lpmdc4gamig3g6pfmbsk4";
+  };
+
+  propagatedBuildInputs = [ protobuf websockets ];
+
+  # The tests require pyobjc. We can't use pyobjc because at
+  # time of writing the pyobjc derivation is disabled on python 3.
+  # iterm2 won't build on python 2 because it depends on websockets
+  # which is disabled below python 3.3.
+  doCheck = false;
+
+  pythonImportsCheck = [ "iterm2" ];
+
+  meta = with lib; {
+    description = "Python interface to iTerm2's scripting API";
+    homepage = "http://github.com/gnachman/iTerm2";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ jeremyschlatter ];
+  };
+}
diff --git a/pkgs/development/python-modules/janus/default.nix b/pkgs/development/python-modules/janus/default.nix
index da0f43811f2..1999a625e4b 100644
--- a/pkgs/development/python-modules/janus/default.nix
+++ b/pkgs/development/python-modules/janus/default.nix
@@ -1,17 +1,20 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, pythonOlder }:
+{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder, pytest-asyncio }:
 
 buildPythonPackage rec {
   pname = "janus";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cfc221683160b91b35bae1917e2957b78dad10a2e634f4f8ed119ed72e2a88ef";
+    sha256 = "0700f5537d076521851d19b7625545c5e76f6d5792ab17984f28230adcc3b34c";
   };
 
   disabled = pythonOlder "3.6";
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest-asyncio pytestCheckHook ];
+
+  # also fails upstream: https://github.com/aio-libs/janus/pull/258
+  disabledTests = [ "test_format" ];
 
   meta = with lib; {
     description = "Mixed sync-async queue";
diff --git a/pkgs/development/python-modules/jaraco_collections/default.nix b/pkgs/development/python-modules/jaraco_collections/default.nix
index ceaa46a7847..9f6e6e2aa7e 100644
--- a/pkgs/development/python-modules/jaraco_collections/default.nix
+++ b/pkgs/development/python-modules/jaraco_collections/default.nix
@@ -4,10 +4,10 @@
 
 buildPythonPackage rec {
   pname = "jaraco.collections";
-  version = "2.1";
+  version = "3.0.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0z1kmgf8jahx42bmflmj030wl8yrksw5b5ghcpayrqd5221jfk0f";
+    sha256 = "be570ef4f2e7290b757449395238fa63d70a9255574624e73c5ff9f1ee554721";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/jaraco_functools/2.nix b/pkgs/development/python-modules/jaraco_functools/2.nix
new file mode 100644
index 00000000000..e0bbde47d25
--- /dev/null
+++ b/pkgs/development/python-modules/jaraco_functools/2.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi
+, setuptools_scm
+, more-itertools, backports_functools_lru_cache }:
+
+buildPythonPackage rec {
+  pname = "jaraco.functools";
+  version = "2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ickpwvvdrlbm477gdzfjfcbgmfia9ksm9a3i3pbx9xia97r9fim";
+  };
+
+  propagatedBuildInputs = [ more-itertools backports_functools_lru_cache ];
+
+  doCheck = false;
+
+  buildInputs = [ setuptools_scm ];
+
+  meta = with lib; {
+    description = "Additional functools in the spirit of stdlib's functools";
+    homepage = "https://github.com/jaraco/jaraco.functools";
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/jaraco_functools/default.nix b/pkgs/development/python-modules/jaraco_functools/default.nix
index ac6eb936e62..6ee4c241710 100644
--- a/pkgs/development/python-modules/jaraco_functools/default.nix
+++ b/pkgs/development/python-modules/jaraco_functools/default.nix
@@ -1,22 +1,22 @@
 { lib, buildPythonPackage, fetchPypi
-, setuptools_scm
+, setuptools_scm, toml
 , more-itertools, backports_functools_lru_cache }:
 
 buildPythonPackage rec {
   pname = "jaraco.functools";
-  version = "2.0";
+  version = "3.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "35ba944f52b1a7beee8843a5aa6752d1d5b79893eeb7770ea98be6b637bf9345";
+    sha256 = "9fedc4be3117512ca3e03e1b2ffa7a6a6ffa589bfb7d02bfb324e55d493b94f4";
   };
 
+  nativeBuildInputs = [ setuptools_scm toml ];
+
   propagatedBuildInputs = [ more-itertools backports_functools_lru_cache ];
 
   doCheck = false;
 
-  buildInputs = [ setuptools_scm ];
-
   meta = with lib; {
     description = "Additional functools in the spirit of stdlib's functools";
     homepage = "https://github.com/jaraco/jaraco.functools";
diff --git a/pkgs/development/python-modules/jaraco_itertools/0001-Don-t-run-flake8-checks-during-the-build.patch b/pkgs/development/python-modules/jaraco_itertools/0001-Don-t-run-flake8-checks-during-the-build.patch
index 43530fcc328..2dcf7d64862 100644
--- a/pkgs/development/python-modules/jaraco_itertools/0001-Don-t-run-flake8-checks-during-the-build.patch
+++ b/pkgs/development/python-modules/jaraco_itertools/0001-Don-t-run-flake8-checks-during-the-build.patch
@@ -1,38 +1,27 @@
-From fcffcc61e432e5250e7fbfb1ecbe0f1cac3006cf Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Sun, 10 Mar 2019 13:10:18 +0100
-Subject: [PATCH] Don't run flake8 checks during the build
+From fd56b0d85393d684bd3bf99f33d8638da884282f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
+Date: Thu, 25 Jun 2020 09:52:11 +0100
+Subject: [PATCH] disable flake8/black8/coverage from tests
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
 
-If the code simply violates their code style, the Nix package shouldn't fail.
+Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
 ---
  pytest.ini | 2 +-
- setup.cfg  | 1 -
- 2 files changed, 1 insertion(+), 2 deletions(-)
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/pytest.ini b/pytest.ini
-index d165e5e..d8e4694 100644
+index 5027d34..4e2a2d2 100644
 --- a/pytest.ini
 +++ b/pytest.ini
-@@ -1,6 +1,6 @@
+@@ -1,5 +1,5 @@
  [pytest]
  norecursedirs=dist build .tox .eggs
--addopts=--doctest-modules --flake8
+-addopts=--doctest-modules --flake8 --black --cov
 +addopts=--doctest-modules
  doctest_optionflags=ALLOW_UNICODE ELLIPSIS ALLOW_BYTES
  filterwarnings=
- 	ignore:Possible nested set::pycodestyle:113
-diff --git a/setup.cfg b/setup.cfg
-index 9f3517f..c9033ec 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -30,7 +30,6 @@ setup_requires = setuptools_scm >= 1.15.0
- testing = 
- 	pytest >= 3.5, !=3.7.3
- 	pytest-checkdocs
--	pytest-flake8
- docs = 
- 	sphinx
- 	jaraco.packaging >= 3.2
 -- 
-2.18.1
+2.27.0
 
diff --git a/pkgs/development/python-modules/jaraco_itertools/default.nix b/pkgs/development/python-modules/jaraco_itertools/default.nix
index 446a3874c48..5df70b6da97 100644
--- a/pkgs/development/python-modules/jaraco_itertools/default.nix
+++ b/pkgs/development/python-modules/jaraco_itertools/default.nix
@@ -4,23 +4,30 @@
 
 buildPythonPackage rec {
   pname = "jaraco.itertools";
-  version = "4.4.2";
+  version = "5.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zxx8ffk5ycapy2d41dfgzskl5jfwjc10hsd91jsrax5alkhrh7x";
+    sha256 = "6447d567f57efe5efea386265c7864652e9530830a1b80f43e60b4f222b9ab84";
   };
 
-  patches = [ ./0001-Don-t-run-flake8-checks-during-the-build.patch ];
+  nativeBuildInputs = [ setuptools_scm ];
+
+  patches = [
+    ./0001-Don-t-run-flake8-checks-during-the-build.patch
+  ];
 
-  buildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ inflect more-itertools six ];
   checkInputs = [ pytest ];
 
+  # tests no longer available through pypi
+  doCheck = false;
   checkPhase = ''
     pytest
   '';
 
+  pythonImportsCheck = [ "jaraco.itertools" ];
+
   meta = with lib; {
     description = "Tools for working with iterables";
     homepage = "https://github.com/jaraco/jaraco.itertools";
diff --git a/pkgs/development/python-modules/jaraco_logging/0001-Don-t-run-flake8-checks-during-the-build.patch b/pkgs/development/python-modules/jaraco_logging/0001-Don-t-run-flake8-checks-during-the-build.patch
deleted file mode 100644
index aab9604b9ce..00000000000
--- a/pkgs/development/python-modules/jaraco_logging/0001-Don-t-run-flake8-checks-during-the-build.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 4b9801d9bbe535fd6719933b96278915573e3595 Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Sun, 10 Mar 2019 16:42:21 +0100
-Subject: [PATCH] Don't run flake8 checks during the build
-
-If the code simply violates their code style, the Nix package shouldn't fail.
----
- pytest.ini | 2 +-
- setup.cfg  | 1 -
- 2 files changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/pytest.ini b/pytest.ini
-index 9b3c1ec..a5189c1 100644
---- a/pytest.ini
-+++ b/pytest.ini
-@@ -1,6 +1,6 @@
- [pytest]
- norecursedirs=dist build .tox .eggs
--addopts=--doctest-modules --flake8
-+addopts=--doctest-modules
- doctest_optionflags=ALLOW_UNICODE ELLIPSIS
- filterwarnings=
- 	ignore:Possible nested set::pycodestyle:113
-diff --git a/setup.cfg b/setup.cfg
-index 3e7bbed..5cac7a2 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -29,7 +29,6 @@ setup_requires = setuptools_scm >= 1.15.0
- testing = 
- 	pytest >= 3.5, !=3.7.3
- 	pytest-checkdocs
--	pytest-flake8
- docs = 
- 	sphinx
- 	jaraco.packaging >= 3.2
--- 
-2.18.1
-
diff --git a/pkgs/development/python-modules/jaraco_logging/default.nix b/pkgs/development/python-modules/jaraco_logging/default.nix
index 1ac7b48c0fa..3f9fa4d67ca 100644
--- a/pkgs/development/python-modules/jaraco_logging/default.nix
+++ b/pkgs/development/python-modules/jaraco_logging/default.nix
@@ -1,25 +1,23 @@
 { lib, buildPythonPackage, fetchPypi, setuptools_scm
-, tempora, six, pytest
+, tempora, six
 }:
 
 buildPythonPackage rec {
   pname = "jaraco.logging";
-  version = "2.0";
+  version = "3.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1lb846j7qs1hgqwkyifv51nhl3f8jimbc4lk8yn9nkaynw0vyzcg";
+    sha256 = "31716fe84d3d5df39d95572942513bd4bf8ae0a478f64031eff4c2ea9e83434e";
   };
 
-  patches = [ ./0001-Don-t-run-flake8-checks-during-the-build.patch ];
-
-  buildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ tempora six ];
-  checkInputs = [ pytest ];
 
-  checkPhase = ''
-    PYTHONPATH=".:$PYTHONPATH" pytest
-  '';
+  # test no longer packaged with pypi
+  doCheck = false;
+
+  pythonImportsCheck = [ "jaraco.logging" ];
 
   meta = with lib; {
     description = "Support for Python logging facility";
diff --git a/pkgs/development/python-modules/jaraco_stream/2.nix b/pkgs/development/python-modules/jaraco_stream/2.nix
new file mode 100644
index 00000000000..e1737083c86
--- /dev/null
+++ b/pkgs/development/python-modules/jaraco_stream/2.nix
@@ -0,0 +1,13 @@
+{ buildPythonPackage, fetchPypi, setuptools_scm, six }:
+
+buildPythonPackage rec {
+  pname = "jaraco.stream";
+  version = "2.0";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "196synw4g76yagcflmavi7wakf5cdgsflmvbj7zs616gv03xbsf2";
+  };
+  doCheck = false;
+  buildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ six ];
+}
diff --git a/pkgs/development/python-modules/javaobj-py3/default.nix b/pkgs/development/python-modules/javaobj-py3/default.nix
index 54656e1ea99..fae3c2f3958 100644
--- a/pkgs/development/python-modules/javaobj-py3/default.nix
+++ b/pkgs/development/python-modules/javaobj-py3/default.nix
@@ -1,15 +1,17 @@
 { buildPythonPackage
 , fetchPypi
+, isPy27
 , lib
 }:
 
 buildPythonPackage rec {
   pname = "javaobj-py3";
-  version = "0.3.0";
+  version = "0.4.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0j9532i7bnjd0v4a8c36mjj9rsdnbmckk65dh9sbmvnhy3j6jx55";
+    sha256 = "419ff99543469e68149f875abb0db5251cecd350c03d2bfb4c94a5796f1cbc14";
   };
 
   # Tests assume network connectivity
diff --git a/pkgs/development/python-modules/jc/default.nix b/pkgs/development/python-modules/jc/default.nix
index 7ab5d230782..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.10.10";
+  version = "1.13.4";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "kellyjonbrazil";
     repo = "jc";
     rev = "v${version}";
-    sha256 = "1rkgk1d1gijic6l6rsvz5mpfhdj8l7qc60aqafj27s4yi5bbqrc7";
+    sha256 = "0rwvyyrdnw43pixp8h51rncq2inc9pbbj1j2191y5si00pjw34zr";
   };
 
   propagatedBuildInputs = [ ruamel_yaml xmltodict pygments ];
diff --git a/pkgs/development/python-modules/jedi/default.nix b/pkgs/development/python-modules/jedi/default.nix
index 3a8da882d12..59c22caf314 100644
--- a/pkgs/development/python-modules/jedi/default.nix
+++ b/pkgs/development/python-modules/jedi/default.nix
@@ -2,17 +2,13 @@
 
 buildPythonPackage rec {
   pname = "jedi";
-  version = "0.15.2";
+  version = "0.17.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e909527104a903606dd63bea6e8e888833f0ef087057829b89a18364a856f807";
+    sha256 = "86ed7d9b750603e4ba582ea8edc678657fb4007894a12bcf6f4bb97892f31d20";
   };
 
-  postPatch = ''
-    substituteInPlace requirements.txt --replace "parso==0.1.0" "parso"
-  '';
-
   checkInputs = [ pytest glibcLocales tox pytestcov ];
 
   propagatedBuildInputs = [ parso ];
diff --git a/pkgs/development/python-modules/jeepney/default.nix b/pkgs/development/python-modules/jeepney/default.nix
index f937b2b1252..1813ce8cac1 100644
--- a/pkgs/development/python-modules/jeepney/default.nix
+++ b/pkgs/development/python-modules/jeepney/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "jeepney";
-  version = "0.4.1";
+  version = "0.4.3";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13806f91a96e9b2623fd2a81b950d763ee471454aafd9eb6d75dbe7afce428fb";
+    sha256 = "3479b861cc2b6407de5188695fa1a8d57e5072d7059322469b62628869b8e36e";
   };
 
   propagatedBuildInputs = [
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/jellyfish/default.nix b/pkgs/development/python-modules/jellyfish/default.nix
index 45f427017fc..9f4b57ba897 100644
--- a/pkgs/development/python-modules/jellyfish/default.nix
+++ b/pkgs/development/python-modules/jellyfish/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "jellyfish";
-  version = "0.7.2";
+  version = "0.8.2";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11jja4wlzcr2pwvp3blj1jg6570zr0mpcm3nzhkbkdrbgq6wa2fb";
+    sha256 = "02q3d9b933hf8lyvg7w7lgmhij8bjs748vjmsfxhabai04a796d4";
   };
 
   checkInputs = [ pytest unicodecsv ];
diff --git a/pkgs/development/python-modules/jenkins-job-builder/default.nix b/pkgs/development/python-modules/jenkins-job-builder/default.nix
index 26b7ab5d622..e5f4fae63d3 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.3.0";
+  version = "3.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0znnw1vnvnm8a6gfrk479s2b9hzlxi4qy57c9a47qphvx3mklm8x";
+    sha256 = "80a7e8d3bebb1e792ff347e9dd072879ce105424224fe804e6671c32a2e8e4bf";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/jinja2/default.nix b/pkgs/development/python-modules/jinja2/default.nix
index 87c44d11a8c..42e45d162ba 100644
--- a/pkgs/development/python-modules/jinja2/default.nix
+++ b/pkgs/development/python-modules/jinja2/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "Jinja2";
-  version = "2.11.1";
+  version = "2.11.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "93187ffbc7808079673ef52771baa950426fd664d3aad1d0fa3e95644360e250";
+    sha256 = "89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/jmespath/default.nix b/pkgs/development/python-modules/jmespath/default.nix
index ebea3546d9e..993955f2a03 100644
--- a/pkgs/development/python-modules/jmespath/default.nix
+++ b/pkgs/development/python-modules/jmespath/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "jmespath";
-  version = "0.9.5";
+  version = "0.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nf2ipzvigspy17r16dpkhzn1bqdmlak162rm8dy4wri2n6mr9fc";
+    sha256 = "b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9";
   };
 
   buildInputs = [ nose ];
diff --git a/pkgs/development/python-modules/joblib/default.nix b/pkgs/development/python-modules/joblib/default.nix
index d0c875cfa3b..da6e53fa129 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.14.1";
+  version = "0.15.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0630eea4f5664c463f23fbf5dcfc54a2bc6168902719fa8e19daf033022786c8";
+    sha256 = "61e49189c84b3c5d99a969d314853f4d1d263316cc694bec17548ebaa9c47b6e";
   };
 
   checkInputs = [ sphinx numpydoc pytest ];
diff --git a/pkgs/development/python-modules/jq/default.nix b/pkgs/development/python-modules/jq/default.nix
index adcdd2b9d82..3f1941b2a2b 100644
--- a/pkgs/development/python-modules/jq/default.nix
+++ b/pkgs/development/python-modules/jq/default.nix
@@ -4,7 +4,7 @@ buildPythonPackage rec {
   pname = "jq";
   version = "0.1.6";
 
-  srcs = fetchPypi {
+  src = fetchPypi {
     inherit pname version;
     sha256 = "34bdf9f9e49e522e1790afc03f3584c6b57329215ea0567fb2157867d6d6f602";
   };
diff --git a/pkgs/development/python-modules/jsbeautifier/default.nix b/pkgs/development/python-modules/jsbeautifier/default.nix
index b30d2ee7e0f..225fa48c72c 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.10.3";
+  version = "1.11.0";
 
   propagatedBuildInputs = [ six editorconfig ];
   checkInputs = [ pytest ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0aaxi56qm2wmccsdj4v1lc158625c2g6ikqq950yv43i0pyyi3lp";
+    sha256 = "4f670c6f4f8d4caca9a348271010742f494becb96fe0a9be6ffac8b3d46350ca";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/jsonpatch/default.nix b/pkgs/development/python-modules/jsonpatch/default.nix
index 7345c8f723a..82ef58bab5d 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.24";
+  version = "1.25";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cbb72f8bf35260628aea6b508a107245f757d1ec839a19c34349985e2c05645a";
+    sha256 = "ddc0f7628b8bfdd62e3cbfbc24ca6671b0b6265b50d186c2cf3659dc0f78fd6a";
   };
 
   # test files are missing
diff --git a/pkgs/development/python-modules/jsonpickle/default.nix b/pkgs/development/python-modules/jsonpickle/default.nix
index 528287028a2..66e7d62aa83 100644
--- a/pkgs/development/python-modules/jsonpickle/default.nix
+++ b/pkgs/development/python-modules/jsonpickle/default.nix
@@ -2,20 +2,35 @@
 , buildPythonPackage
 , fetchPypi
 , pytest
+, setuptools_scm
+, toml
+, importlib-metadata
 }:
 
 buildPythonPackage rec {
   pname = "jsonpickle";
-  version = "1.2";
+  version = "1.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16xj4r31pnd90slax5mmd5wps5s73wp9mn6sy9nhkl5ih7bj5sfk";
+    sha256 = "e8d4b7cd0bd6826001a74377df1079a76ad8bae0f909282de2554164c837c8ba";
   };
 
   checkInputs = [ pytest ];
 
-  checkPhase = "pytest tests/jsonpickle_test.py";
+  nativeBuildInputs = [
+    setuptools_scm
+    toml
+  ];
+
+  propagatedBuildInputs = [
+    importlib-metadata
+  ];
+
+  checkPhase = ''
+    rm pytest.ini
+    pytest tests/jsonpickle_test.py
+  '';
 
   meta = {
     description = "Python library for serializing any arbitrary object graph into JSON";
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 7c5ffc9fad5..c7133c206d8 100644
--- a/pkgs/development/python-modules/junit-xml/default.nix
+++ b/pkgs/development/python-modules/junit-xml/default.nix
@@ -1,27 +1,26 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , six
-, pytest
-, pytest-sugar
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "junit-xml";
-  version = "1.8";
+  version = "1.9";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "08fw86azza6d3l3nx34kq69cpwmmfqpn7xrb8pdlxmhr1941qbv0";
+  # Only a wheel on PyPI
+  src = fetchFromGitHub {
+    owner = "kyrus";
+    repo = "python-junit-xml";
+    # No tags...sigh
+    rev = "856414648cbab3f64e69b856bc25cea8b9aa0377";
+    sha256 = "1sg03mv7dk3x4mjxjg127vqjmx0ms7v3a5aibxrclxlhmdqcgvb2";
   };
 
   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 9c98895a8b2..1f92045c41a 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.3.1";
+  version = "2.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f8c4763fe2281979bc00350b93d510368992dbae0dae4fea0bafee5904a7e68";
+    sha256 = "8f3ecf06ab4d630f27e7ed7a7b605122ee5c5e5386b1f5186f6cb52810750b18";
   };
 
 
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-repo2docker/default.nix b/pkgs/development/python-modules/jupyter-repo2docker/default.nix
index 2a5e1a988da..4dc878e2670 100644
--- a/pkgs/development/python-modules/jupyter-repo2docker/default.nix
+++ b/pkgs/development/python-modules/jupyter-repo2docker/default.nix
@@ -12,13 +12,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.10.0";
+  version = "0.11.0";
   pname = "jupyter-repo2docker";
   disabled = !(pythonAtLeast "3.4");
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7965262913be6be60e64c8016f5f3d4bf93701f2787209215859d73b2adbc05a";
+    sha256 = "7fc2edf0cda1e46f2e7553bfb84a47e6d141b8dac393268ef01ee3504ca6ad94";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyter-sphinx/default.nix b/pkgs/development/python-modules/jupyter-sphinx/default.nix
new file mode 100644
index 00000000000..9f2143e2f20
--- /dev/null
+++ b/pkgs/development/python-modules/jupyter-sphinx/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, nbformat
+, sphinx
+, ipywidgets
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "jupyter-sphinx";
+  version = "0.2.4";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "jupyter_sphinx";
+    sha256 = "b5ba1efdd1488b385de0068036a665932ed93998e40ce3a342c60f0926781fd9";
+  };
+
+  propagatedBuildInputs = [ nbformat sphinx ipywidgets ];
+
+  doCheck = false;
+
+  disabled = pythonOlder "3.5";
+
+  meta = with lib; {
+    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 4855663ebc7..8ce8150cbd4 100644
--- a/pkgs/development/python-modules/jupyter_client/5.nix
+++ b/pkgs/development/python-modules/jupyter_client/5.nix
@@ -34,6 +34,6 @@ buildPythonPackage rec {
     description = "Jupyter protocol implementation and client libraries";
     homepage = "https://jupyter.org/";
     license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ fridh ];
+    maintainers = with lib.maintainers; [  ];
   };
 }
diff --git a/pkgs/development/python-modules/jupyter_client/default.nix b/pkgs/development/python-modules/jupyter_client/default.nix
index 008a74dfb3e..39f8c71a4df 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.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3a32fa4d0b16d1c626b30c3002a62dfd86d6863ed39eaba3f537fade197bb756";
+    sha256 = "b360f8d4638bc577a4656e93f86298db755f915098dc763f6fc05da0c5d7a595";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix b/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix
index d6c505c4a17..9d5d2a4c23f 100644
--- a/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix
+++ b/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "jupyterhub-ldapauthenticator";
-  version = "1.2.2";
+  version = "1.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5bba2ee246834130c9f86c13d39585b1af21563b814fa03aacb26b6696dd7e20";
+    sha256 = "920b115babdc32e7b159fc497a0a794bb0f57b222ce2c26c74a23594892f9d3c";
   };
 
   # No tests implemented
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/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/default.nix b/pkgs/development/python-modules/jupyterlab/default.nix
index d3b67ba87bc..0aab09117e7 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.0";
+  version = "2.1.5";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10fwpgsi996nk2hcva14k8x6znczxgfmydvfsfrs1fpmmfmrl8wc";
+    sha256 = "162jn51cg36fsn4l2zhnb5n4nbkhm9wlv974ggcnmdij3i4r4yya";
   };
 
   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 db9fd195ae5..c101ae8e2e1 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.0";
+  version = "1.2.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0cqpyy4jr3023c47ij08djkpx526gmz8fab45mcnws0glhp7xhms";
+    sha256 = "132xby7531rbrjg9bqvsx86birr1blynjxy8gi5kcnb6x7fxjcal";
   };
 
   checkInputs = [ requests pytest ];
diff --git a/pkgs/development/python-modules/jupytext/default.nix b/pkgs/development/python-modules/jupytext/default.nix
index 8b2d56277ce..cee21edd243 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.1";
+  version = "1.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "126lmz702hbk7gyr4i6gkicmycx7zgsgjf47a6izq2d17bs0a9ji";
+    sha256 = "58b4c6bf48ba2e18bfc2d8358e852b6e3538ff664843398be09157c184ee1a27";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/kafka-python/default.nix b/pkgs/development/python-modules/kafka-python/default.nix
index 953a5895034..1c85fbd29af 100644
--- a/pkgs/development/python-modules/kafka-python/default.nix
+++ b/pkgs/development/python-modules/kafka-python/default.nix
@@ -1,12 +1,12 @@
 { stdenv, buildPythonPackage, fetchPypi, pytest, six, mock }:
 
 buildPythonPackage rec {
-  version = "1.4.7";
+  version = "2.0.1";
   pname = "kafka-python";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2f29baad4b3efe05a2bb81ac268855aa01cbc68397f15bac77b494ffd7e2cada";
+    sha256 = "1y7ny81rihnhc8lj921d76ir4kf4aj5iy35szgim8zccxhnx96p5";
   };
 
   checkInputs = [ pytest six mock ];
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/keras-preprocessing/default.nix b/pkgs/development/python-modules/keras-preprocessing/default.nix
index cb4b6d249b6..d62a179136f 100644
--- a/pkgs/development/python-modules/keras-preprocessing/default.nix
+++ b/pkgs/development/python-modules/keras-preprocessing/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Keras_Preprocessing";
-  version = "1.1.0";
+  version = "1.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1r98nm4k1svsqjyaqkfk23i31bl1kcfcyp7094yyj3c43phfp3as";
+    sha256 = "add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/keyring/default.nix b/pkgs/development/python-modules/keyring/default.nix
index 8f7ae56de04..9495245ea6c 100644
--- a/pkgs/development/python-modules/keyring/default.nix
+++ b/pkgs/development/python-modules/keyring/default.nix
@@ -6,19 +6,23 @@
 , pytest-flake8
 , secretstorage
 , setuptools_scm
+, toml
 }:
 
 buildPythonPackage rec {
   pname = "keyring";
-  version = "20.0.1";
+  version = "21.2.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "963bfa7f090269d30bdc5e25589e5fd9dad2cf2a7c6f176a7f2386910e5d0d8d";
+    sha256 = "c53e0e5ccde3ad34284a40ce7976b5b3a3d6de70344c3f8ee44364cc340976ec";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [
+    setuptools_scm
+    toml
+  ];
 
   checkInputs = [ pytest pytest-flake8 ];
 
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/1_1.nix b/pkgs/development/python-modules/kiwisolver/1_1.nix
new file mode 100644
index 00000000000..f4621c9c54d
--- /dev/null
+++ b/pkgs/development/python-modules/kiwisolver/1_1.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, stdenv
+, libcxx
+}:
+
+buildPythonPackage rec {
+  pname = "kiwisolver";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "53eaed412477c836e1b9522c19858a8557d6e595077830146182225613b11a75";
+  };
+
+  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
+
+  # Does not include tests
+  doCheck = false;
+
+  meta = {
+    description = "A fast implementation of the Cassowary constraint solver";
+    homepage = "https://github.com/nucleic/kiwi";
+    license = lib.licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/kiwisolver/default.nix b/pkgs/development/python-modules/kiwisolver/default.nix
index c54cad1987a..23cff218e83 100644
--- a/pkgs/development/python-modules/kiwisolver/default.nix
+++ b/pkgs/development/python-modules/kiwisolver/default.nix
@@ -3,19 +3,24 @@
 , fetchPypi
 , stdenv
 , libcxx
+, cppy
 }:
 
 buildPythonPackage rec {
   pname = "kiwisolver";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "53eaed412477c836e1b9522c19858a8557d6e595077830146182225613b11a75";
+    sha256 = "247800260cd38160c362d211dcaf4ed0f7816afb5efe56544748b21d6ad6d17f";
   };
   
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
   
+  nativeBuildInputs = [
+    cppy
+  ];
+
   # Does not include tests
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/knack/default.nix b/pkgs/development/python-modules/knack/default.nix
index fc65361b35c..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.6.3";
+  version = "0.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08g15kwfppdr7vhbsg6qclpqbf11d9k3hwgrmvhh5fa1jrk95b5i";
+    sha256 = "dfc6aef6760ea9a9620577e01540617678d78cab3111a0f03e8b9f987d0f08ca";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/kombu/default.nix b/pkgs/development/python-modules/kombu/default.nix
index 437f0327670..560cd4383b1 100644
--- a/pkgs/development/python-modules/kombu/default.nix
+++ b/pkgs/development/python-modules/kombu/default.nix
@@ -1,5 +1,6 @@
 { lib, buildPythonPackage, fetchPypi
 , amqp
+, botocore
 , case
 , Pyro4
 , pytest
@@ -11,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "kombu";
-  version = "4.6.8";
+  version = "4.6.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0xlv1rsfc3vn22l35csaj939zygd15nzmxbz3bcl981685vxl71d";
+    sha256 = "ca1b45faac8c0b18493d02a8571792f3c40291cf2bcf1f55afed3d8f3aa7ba74";
   };
 
   postPatch = ''
@@ -31,7 +32,7 @@ buildPythonPackage rec {
     importlib-metadata
   ];
 
-  checkInputs = [ pytest case pytz Pyro4 sqlalchemy ];
+  checkInputs = [ botocore pytest case pytz Pyro4 sqlalchemy ];
   # test_redis requires fakeredis, which isn't trivial to package
   checkPhase = ''
     pytest --ignore t/unit/transport/test_redis.py
diff --git a/pkgs/development/python-modules/kubernetes/default.nix b/pkgs/development/python-modules/kubernetes/default.nix
index 62b74516971..15c8a8144c6 100644
--- a/pkgs/development/python-modules/kubernetes/default.nix
+++ b/pkgs/development/python-modules/kubernetes/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "kubernetes";
-  version = "10.0.1";
+  version = "11.0.0";
 
   prePatch = ''
     sed -e 's/sphinx>=1.2.1,!=1.3b1,<1.4 # BSD/sphinx/' -i test-requirements.txt
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14l5mj0yjmqsq084pdh8g8hlagvvjkdylpk6xwfsv5ikcsba8w1p";
+    sha256 = "1a2472f8b01bc6aa87e3a34781f859bded5a5c8ff791a53d889a8bd6cc550430";
   };
 
   checkInputs = [ isort coverage pytest mock sphinx autopep8 pep8 codecov recommonmark nose ];
diff --git a/pkgs/development/python-modules/labelbox/default.nix b/pkgs/development/python-modules/labelbox/default.nix
index 783faa7b5f6..ffc393ab452 100644
--- a/pkgs/development/python-modules/labelbox/default.nix
+++ b/pkgs/development/python-modules/labelbox/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "labelbox";
-  version = "2.3";
+  version = "2.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6b515dc29329e8a3adac9d6b4fef84d80c513743be57ae66b54bcb30060172c6";
+    sha256 = "1d7a7304fe6a33c1345ab569e70019f7fa11c97d49948e4fc4bf3bbc1f202703";
   };
 
   propagatedBuildInputs = [ jinja2 requests pillow rasterio shapely ];
diff --git a/pkgs/development/python-modules/lark-parser/default.nix b/pkgs/development/python-modules/lark-parser/default.nix
index 41c16548032..a95a8907422 100644
--- a/pkgs/development/python-modules/lark-parser/default.nix
+++ b/pkgs/development/python-modules/lark-parser/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonPackage rec {
   pname = "lark-parser";
-  version = "0.8.5";
+  version = "0.8.8";
 
   src = fetchFromGitHub {
     owner = "lark-parser";
     repo = "lark";
     rev = version;
-    sha256 = "1rfybmr0rlljhc0dpd9npbw8x7r6dvnn2wvclz93rmgkzhmd3zah";
+    sha256 = "1q2dvkkfx9dvag5v5ps0ki4avh7i003gn9sj30jy1rsv1bg4y2mb";
   };
 
   # tests of Nearley support require js2py
diff --git a/pkgs/development/python-modules/latexcodec/default.nix b/pkgs/development/python-modules/latexcodec/default.nix
index 2873c8f9622..77b75193ca4 100644
--- a/pkgs/development/python-modules/latexcodec/default.nix
+++ b/pkgs/development/python-modules/latexcodec/default.nix
@@ -1,16 +1,22 @@
-{ stdenv, buildPythonPackage, fetchPypi, six }:
+{ stdenv, buildPythonPackage, fetchPypi, six, pytest }:
 
 buildPythonPackage rec {
   pname = "latexcodec";
-  version = "1.0.7";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wnp3yqcgx0rpy8dz51vh75lbp2qif67da19zi7m3ca98n887hgb";
+    sha256 = "16pynfnn8y8xp55yp06i721fccv5dlx9ba6k5bzcwq9j6wf5b8ia";
   };
 
   propagatedBuildInputs = [ six ];
 
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    pytest
+  '';
+
   meta = {
     homepage = "https://github.com/mcmtroffaes/latexcodec";
     description = "Lexer and codec to work with LaTeX code in Python";
diff --git a/pkgs/development/python-modules/launchpadlib/default.nix b/pkgs/development/python-modules/launchpadlib/default.nix
index 72e3c7f1cf7..6c5112312bb 100644
--- a/pkgs/development/python-modules/launchpadlib/default.nix
+++ b/pkgs/development/python-modules/launchpadlib/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "launchpadlib";
-  version = "1.10.10";
+  version = "1.10.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "740580d72611452804ad7735c9af6944ed4a14fc1a2fcbcddba3fc719b5317f3";
+    sha256 = "5804d68ec93247194449d17d187e949086da0a4d044f12155fad269ef8515435";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/lazr-uri/default.nix b/pkgs/development/python-modules/lazr-uri/default.nix
index d6b3cc29324..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.3";
+  version = "1.0.5";
 
   disabled = isPy27; # namespace is broken for python2
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5c620b5993c8c6a73084176bfc51de64972b8373620476ed841931a49752dc8b";
+    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 043e3e1123e..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.4.3";
+  version = "1.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0";
+    sha256 = "9723364577b79ad9958a68851fe2acb94da6fd25170c595516a8289e6a129043";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/lazy/default.nix b/pkgs/development/python-modules/lazy/default.nix
new file mode 100644
index 00000000000..ff967d62dc6
--- /dev/null
+++ b/pkgs/development/python-modules/lazy/default.nix
@@ -0,0 +1,21 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "lazy";
+  version = "1.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2c6d27a5ab130fb85435320651a47403adcb37ecbcc501b0c6606391f65f5b43";
+    extension = "zip";
+  };
+
+  meta = {
+    description = "Lazy attributes for Python objects";
+    license = lib.licenses.bsd2;
+    homepage = "https://github.com/stefanholek/lazy";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/lazy_import/default.nix b/pkgs/development/python-modules/lazy_import/default.nix
new file mode 100644
index 00000000000..743604d539b
--- /dev/null
+++ b/pkgs/development/python-modules/lazy_import/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, pytest
+, pytest_xdist
+, six }:
+
+buildPythonPackage rec {
+  pname = "lazy_import";
+  version = "0.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0gca9xj60qr3aprj9qdc66crr4r7hl8wzv6gc9y40nclazwawj91";
+  };
+
+  checkInputs = [
+    pytest
+    pytest_xdist
+  ];
+
+  propagatedBuildInputs = [
+    six
+  ];
+
+  checkPhase = ''
+    cd lazy_import
+    pytest --boxed
+  '';
+
+  meta = with stdenv.lib; {
+    description = "lazy_import provides a set of functions that load modules, and related attributes, in a lazy fashion.";
+    homepage = https://github.com/mnmelo/lazy_import;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.marenz ];
+  };
+}
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/libagent/default.nix b/pkgs/development/python-modules/libagent/default.nix
index 7fb3d873e74..4bc07e96933 100644
--- a/pkgs/development/python-modules/libagent/default.nix
+++ b/pkgs/development/python-modules/libagent/default.nix
@@ -1,14 +1,16 @@
-{ stdenv, fetchPypi, buildPythonPackage, ed25519, ecdsa , semver, mnemonic,
+{ stdenv, fetchFromGitHub, buildPythonPackage, ed25519, ecdsa , semver, mnemonic,
   unidecode, mock, pytest , backports-shutil-which, ConfigArgParse,
   python-daemon, pymsgbox }:
 
 buildPythonPackage rec {
   pname = "libagent";
-  version = "0.13.1";
+  version = "0.14.1";
 
-  src = fetchPypi{
-    inherit pname version;
-    sha256 = "b9afa0851f668612702fcd648cee47af4dc7cfe4f86d4c4a84b1a6b4a4960b41";
+  src = fetchFromGitHub {
+    owner = "romanz";
+    repo = "trezor-agent";
+    rev = "v${version}";
+    sha256 = "16y1y9ahcv3wj7f0v4mfiwzkmn2hz1iv7y13cgr57sxa3ymyqx6c";
   };
 
   propagatedBuildInputs = [ unidecode backports-shutil-which ConfigArgParse
diff --git a/pkgs/development/python-modules/libcloud/2.nix b/pkgs/development/python-modules/libcloud/2.nix
new file mode 100644
index 00000000000..e680e45391f
--- /dev/null
+++ b/pkgs/development/python-modules/libcloud/2.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, mock
+, pycrypto
+, requests
+, pytestrunner
+, pytest
+, requests-mock
+, typing
+, backports_ssl_match_hostname
+}:
+
+buildPythonPackage rec {
+  pname = "apache-libcloud";
+  version = "2.8.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wvm8vixhcapkfv5k6xaf8c8w647kx2rdifarg6j0s34r4jzblfg";
+  };
+
+  checkInputs = [ mock pytest pytestrunner requests-mock ];
+  propagatedBuildInputs = [ pycrypto requests ]
+    ++ lib.optionals isPy27 [ typing backports_ssl_match_hostname ];
+
+  preConfigure = "cp libcloud/test/secrets.py-dist libcloud/test/secrets.py";
+
+  # requires a certificates file
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A unified interface to many cloud providers";
+    homepage = "http://incubator.apache.org/libcloud/";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/libcloud/default.nix b/pkgs/development/python-modules/libcloud/default.nix
index f78501b8ced..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 = "2.7.0";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "29ee7d13b9b12d1335e752a489c01eed0c270940147f418cfff89ab66faf1305";
+    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
new file mode 100644
index 00000000000..a17612c79cb
--- /dev/null
+++ b/pkgs/development/python-modules/libevdev/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, isPy27
+, fetchPypi
+, substituteAll
+, pkgs
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "libevdev";
+  version = "0.9";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17agnigmzscmdjqmrylg1lza03hwjhgxbpf4l705s6i7p7ndaqrs";
+  };
+
+  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";
+    homepage = "https://gitlab.freedesktop.org/libevdev/python-libevdev";
+    license = licenses.mit;
+    maintainers = with maintainers; [ nickhu ];
+  };
+}
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 6bd917a69e3..ade83d6721a 100644
--- a/pkgs/development/python-modules/librosa/default.nix
+++ b/pkgs/development/python-modules/librosa/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "librosa";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cca58a2d9a47e35be63a3ce36482d241453bfe9b14bde2005430f969bd7d013a";
+    sha256 = "656bbda80e98e6330db1ead79cd084b13a762284834d7603fcf7cf7c0dc65f3c";
   };
 
   propagatedBuildInputs = [ joblib matplotlib six scikitlearn decorator audioread resampy soundfile ];
diff --git a/pkgs/development/python-modules/libthumbor/default.nix b/pkgs/development/python-modules/libthumbor/default.nix
index c8fab079715..e8b7c45417a 100644
--- a/pkgs/development/python-modules/libthumbor/default.nix
+++ b/pkgs/development/python-modules/libthumbor/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "libthumbor";
-  version = "1.3.2";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vjhszsf8wl9k16wyg2rfjycjnawzl7z8j39bhiysbz5x4lqg91b";
+    sha256 = "ed4fe5f27f8f90e7285b7e6dce99c1b67d43a140bf370e989080b43d80ce25f0";
   };
 
   buildInputs = [ django ];
diff --git a/pkgs/development/python-modules/libusb1/default.nix b/pkgs/development/python-modules/libusb1/default.nix
index 2d943837459..396f8c5b5c5 100644
--- a/pkgs/development/python-modules/libusb1/default.nix
+++ b/pkgs/development/python-modules/libusb1/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "libusb1";
-  version = "1.7.1";
+  version = "1.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "adf64a4f3f5c94643a1286f8153bcf4bc787c348b38934aacd7fe17fbeebc571";
+    sha256 = "240f65ac70ba3fab77749ec84a412e4e89624804cb80d6c9d394eef5af8878d6";
   };
 
   postPatch = ''
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/limits/default.nix b/pkgs/development/python-modules/limits/default.nix
index 5d0b1aacb55..22bd6607fb6 100644
--- a/pkgs/development/python-modules/limits/default.nix
+++ b/pkgs/development/python-modules/limits/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "limits";
-  version = "1.4.1";
+  version = "1.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c071295307c447f85aaa3c3ab3ce058e29d67010f4fabf278a8e163916e4deab";
+    sha256 = "f0c3319f032c4bfad68438ed1325c0fac86dac64582c7c25cddc87a0b658fa20";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/limnoria/default.nix b/pkgs/development/python-modules/limnoria/default.nix
index 7cd3ef85822..4a5e1386730 100644
--- a/pkgs/development/python-modules/limnoria/default.nix
+++ b/pkgs/development/python-modules/limnoria/default.nix
@@ -1,16 +1,18 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , pkgs
 }:
 
 buildPythonPackage rec {
   pname = "limnoria";
-  version = "2019.11.22";
+  version = "2020.07.01";
+  disabled = isPy27; # abandoned upstream
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6ccc6906fd644444a1edd0984d10bddf5abf4dd91c94eeeaa4660f7dc3eca320";
+    sha256 = "08q8krq8dqlvzz3wjgnki3n8d8qmk99pn7n3lfsim5rnrnx1jchb";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/line_profiler/default.nix b/pkgs/development/python-modules/line_profiler/default.nix
index 027e6b0d134..4275732881c 100644
--- a/pkgs/development/python-modules/line_profiler/default.nix
+++ b/pkgs/development/python-modules/line_profiler/default.nix
@@ -5,6 +5,8 @@
 , isPyPy
 , ipython
 , python
+, scikit-build
+, cmake
 }:
 
 buildPythonPackage rec {
@@ -16,11 +18,17 @@ buildPythonPackage rec {
     sha256 = "7218ad6bd81f8649b211974bf108933910f016d66b49651effe7bbf63667d141";
   };
 
-  patches = [ ./python37.patch ];
+  nativeBuildInputs = [
+    cython
+    cmake
+    scikit-build
+  ];
 
-  buildInputs = [ cython ];
+  dontUseCmakeConfigure = true;
 
-  propagatedBuildInputs = [ ipython ];
+  propagatedBuildInputs = [
+    ipython
+  ];
 
   disabled = isPyPy;
 
@@ -28,8 +36,12 @@ buildPythonPackage rec {
     rm -f _line_profiler.c
   '';
 
+  checkInputs = [
+    ipython
+  ];
+
   checkPhase = ''
-    ${python.interpreter} -m unittest discover -s tests
+    PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH cd tests && ${python.interpreter} -m unittest discover -s .
   '';
 
   meta = {
diff --git a/pkgs/development/python-modules/line_profiler/python37.patch b/pkgs/development/python-modules/line_profiler/python37.patch
deleted file mode 100644
index 0b6e93732c4..00000000000
--- a/pkgs/development/python-modules/line_profiler/python37.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 542baf59f3b2eada13bde48e8a89e484c2cfeeef Mon Sep 17 00:00:00 2001
-From: Hanaasagi <ambiguous404@gmail.com>
-Date: Wed, 17 Apr 2019 06:46:03 +0000
-Subject: [PATCH] Support Python 3.7 Generator (PEP 479)
-
----
- kernprof.py      | 2 ++
- line_profiler.py | 2 ++
- 2 files changed, 4 insertions(+)
-
-diff --git a/kernprof.py b/kernprof.py
-index 108d36e..6461cf6 100755
---- a/kernprof.py
-+++ b/kernprof.py
-@@ -102,6 +102,8 @@ def wrapper(*args, **kwds):
-                 self.enable_by_count()
-                 try:
-                     item = g.send(input)
-+                except StopIteration:
-+                    return
-                 finally:
-                     self.disable_by_count()
-                 input = (yield item)
-diff --git a/line_profiler.py b/line_profiler.py
-index a481dd2..5744d05 100755
---- a/line_profiler.py
-+++ b/line_profiler.py
-@@ -100,6 +100,8 @@ def wrapper(*args, **kwds):
-                 self.enable_by_count()
-                 try:
-                     item = g.send(input)
-+                except StopIteration:
-+                    return
-                 finally:
-                     self.disable_by_count()
-                 input = (yield item)
diff --git a/pkgs/development/python-modules/linecache2/default.nix b/pkgs/development/python-modules/linecache2/default.nix
index 9890d382742..a2c7080e270 100644
--- a/pkgs/development/python-modules/linecache2/default.nix
+++ b/pkgs/development/python-modules/linecache2/default.nix
@@ -2,9 +2,10 @@
 , buildPythonPackage
 , fetchPypi
 , pbr
+, isPy3k
 }:
 
-buildPythonPackage rec {
+buildPythonPackage (rec {
   pname = "linecache2";
   version = "1.0.0";
 
@@ -22,5 +23,8 @@ buildPythonPackage rec {
     homepage = "https://github.com/testing-cabal/linecache2";
     license = licenses.psfl;
   };
-
-}
+# TODO: move into main set, this was to avoid a rebuild
+} // stdenv.lib.optionalAttrs (!isPy3k ) {
+  # syntax error in tests. Tests are likely Python 3 only.
+  dontUsePythonRecompileBytecode = !isPy3k;
+})
diff --git a/pkgs/development/python-modules/livelossplot/default.nix b/pkgs/development/python-modules/livelossplot/default.nix
new file mode 100644
index 00000000000..c58a18dffe8
--- /dev/null
+++ b/pkgs/development/python-modules/livelossplot/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, pytest
+, bokeh
+, ipython
+, matplotlib
+, numpy
+, nbconvert
+, nbformat
+}:
+
+buildPythonPackage rec {
+  pname = "livelossplot";
+  version = "0.5.0";
+
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner  = "stared";
+    repo   = pname;
+    rev    = "v${version}";
+    sha256 = "164v65qglgyg38q9ajnas99rp14mvrk5hn8x76b8iy81vszmx1c0";
+  };
+
+  propagatedBuildInputs = [ bokeh ipython matplotlib numpy ];
+
+  checkInputs = [ pytest nbconvert nbformat ];
+  checkPhase = ''
+    pytest tests tests/external_test_examples.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Live training loss plot in Jupyter for Keras, PyTorch, and others";
+    homepage = "https://github.com/stared/livelossplot";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/llvmlite/default.nix b/pkgs/development/python-modules/llvmlite/default.nix
index 0878424abb6..c96975412b9 100644
--- a/pkgs/development/python-modules/llvmlite/default.nix
+++ b/pkgs/development/python-modules/llvmlite/default.nix
@@ -6,17 +6,18 @@
 , pythonOlder
 , isPyPy
 , enum34
+, isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "llvmlite";
-  version = "0.31.0";
+  version = "0.33.0";
 
-  disabled = isPyPy;
+  disabled = isPyPy || !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "22ab2b9d7ec79fab66ac8b3d2133347de86addc2e2df1b3793e523ac84baa3c8";
+    sha256 = "9c8aae96f7fba10d9ac864b443d1e8c7ee4765c31569a2b201b3d0b67d8fc596";
   };
 
   nativeBuildInputs = [ llvm ];
diff --git a/pkgs/development/python-modules/loguru/default.nix b/pkgs/development/python-modules/loguru/default.nix
index 410ca27c8aa..fbda4989a24 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.4.1";
+  version = "0.5.1";
   
   disabled = isPy27;
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a6101fd435ac89ba5205a105a26a6ede9e4ddbb4408a6e167852efca47806d11";
+    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/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/maestral/default.nix b/pkgs/development/python-modules/maestral/default.nix
new file mode 100644
index 00000000000..c7a4fc3f423
--- /dev/null
+++ b/pkgs/development/python-modules/maestral/default.nix
@@ -0,0 +1,57 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, python
+, blinker, bugsnag, click, dropbox, fasteners, keyring, keyrings-alt, pathspec, Pyro5, requests, u-msgpack-python, watchdog
+, sdnotify
+, systemd
+}:
+
+buildPythonPackage rec {
+  pname = "maestral";
+  version = "1.1.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "SamSchott";
+    repo = "maestral";
+    rev = "v${version}";
+    sha256 = "0d1pxbg69ll07w4bbpzs7zz1yn82qyrym95b0mqmhrrg2ysxjngg";
+  };
+
+  propagatedBuildInputs = [
+    blinker
+    bugsnag
+    click
+    dropbox
+    fasteners
+    keyring
+    keyrings-alt
+    pathspec
+    Pyro5
+    requests
+    u-msgpack-python
+    watchdog
+  ] ++ stdenv.lib.optionals stdenv.isLinux [
+    sdnotify
+    systemd
+  ];
+
+  makeWrapperArgs = [
+    # Add the installed directories to the python path so the daemon can find them
+    "--prefix" "PYTHONPATH" ":" "${stdenv.lib.concatStringsSep ":" (map (p: p + "/lib/${python.libPrefix}/site-packages") (python.pkgs.requiredPythonModules propagatedBuildInputs))}"
+    "--prefix" "PYTHONPATH" ":" "$out/lib/${python.libPrefix}/site-packages"
+  ];
+
+  # no tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Open-source Dropbox client for macOS and Linux";
+    license = licenses.mit;
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms = platforms.unix;
+    inherit (src.meta) homepage;
+  };
+}
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/mailmanclient/default.nix b/pkgs/development/python-modules/mailmanclient/default.nix
index 247a7ed1b00..45dfc55ae9a 100644
--- a/pkgs/development/python-modules/mailmanclient/default.nix
+++ b/pkgs/development/python-modules/mailmanclient/default.nix
@@ -2,20 +2,16 @@
 
 buildPythonPackage rec {
   pname = "mailmanclient";
-  version = "3.3.0";
+  version = "3.3.1";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c8736cbe152ae1bd58b46ccfbcafb6a1e301513530772e7fda89f91d1e5c1ae9";
+    sha256 = "0pjgzpvhdb6ql8asb20xr8d01m646zpghmcp9fmscks0n1k4di4g";
   };
 
   propagatedBuildInputs = [ six httplib2 requests ];
 
-  # no tests with Pypi tar ball, checkPhase removes setup.py which invalidates import check
-  doCheck = false;
-  pythonImportsCheck = [ "mailmanclient" ];
-
   meta = with stdenv.lib; {
     homepage = "https://www.gnu.org/software/mailman/";
     description = "REST client for driving Mailman 3";
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/mozfile.nix b/pkgs/development/python-modules/marionette-harness/mozfile.nix
index 829e909535a..2cce0a22124 100644
--- a/pkgs/development/python-modules/marionette-harness/mozfile.nix
+++ b/pkgs/development/python-modules/marionette-harness/mozfile.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy27
 , six
 }:
 
@@ -14,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "e5dc835582ea150e35ecd57e9d86cb707d3aa3b2505679db7332326dd49fd6b8";
   };
 
-  propagatedBuildInputs = lib.optional isPy27 six;
+  propagatedBuildInputs = [ six ];
 
   # mozhttpd -> moznetwork -> mozinfo -> mozfile
   doCheck = false;
diff --git a/pkgs/development/python-modules/markdown/3_1.nix b/pkgs/development/python-modules/markdown/3_1.nix
new file mode 100644
index 00000000000..b07d36e22c7
--- /dev/null
+++ b/pkgs/development/python-modules/markdown/3_1.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, nose
+, pyyaml
+, pythonOlder
+, importlib-metadata
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "Markdown";
+  version = "3.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a";
+  };
+
+  propagatedBuildInputs = [ 
+    setuptools 
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
+
+  checkInputs = [ nose pyyaml ];
+
+  meta = {
+    description = "A Python implementation of John Gruber's Markdown with Extension support";
+    homepage = "https://github.com/Python-Markdown/markdown";
+    license = lib.licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/markdown/default.nix b/pkgs/development/python-modules/markdown/default.nix
index 1438391dc40..aa076cddadc 100644
--- a/pkgs/development/python-modules/markdown/default.nix
+++ b/pkgs/development/python-modules/markdown/default.nix
@@ -4,18 +4,27 @@
 , setuptools
 , nose
 , pyyaml
+, pythonOlder
+, importlib-metadata
+, isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "Markdown";
-  version = "3.1.1";
+  version = "3.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a";
+    sha256 = "1fafe3f1ecabfb514a5285fca634a53c1b32a81cb0feb154264d55bf2ff22c17";
   };
 
-  propagatedBuildInputs = [ setuptools ];
+  propagatedBuildInputs = [ 
+    setuptools 
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
+
+  disabled = !isPy3k;
 
   checkInputs = [ nose pyyaml ];
 
diff --git a/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix b/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
index 2f85c33e757..60a2704894b 100644
--- a/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "marshmallow-sqlalchemy";
-  version = "0.21.0";
+  version = "0.23.1";
 
   meta = {
     homepage = "https://github.com/marshmallow-code/marshmallow-sqlalchemy";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "93fd8fad2b33d92a1ae58328eeb0f39ed174858d82f9e7084a174df7b41fd3a4";
+    sha256 = "0ef59c8da8da2e18e808e3880158049e9d72f3031c84cc804b6c533a0eb668a9";
   };
 
   propagatedBuildInputs = [ marshmallow sqlalchemy ];
diff --git a/pkgs/development/python-modules/marshmallow/default.nix b/pkgs/development/python-modules/marshmallow/default.nix
index 7b7cadc9889..4dd2ac8bcaa 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.3.0";
+  version = "3.6.1";
   disabled = isPy27;
 
   meta = {
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ba81b6da4ae69eb229b74b3c741ff13fe04fb899824377b1aff5aaa1a9fd46e";
+    sha256 = "35ee2fb188f0bd9fc1cf9ac35e45fd394bd1c153cee430745a465ea435514bd5";
   };
 
   propagatedBuildInputs = [ dateutil simplejson ];
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/matplotlib/default.nix b/pkgs/development/python-modules/matplotlib/default.nix
index 03afcfe75ae..774fbc28793 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
+, 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.0";
   pname = "matplotlib";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ffe2f9cdcea1086fc414e82f42271ecf1976700b8edd16ca9d376189c6d93aee";
+    sha256 = "24e8db94948019d531ce0bcd637ac24b1c8f6744ac86d2aa0eb6dbaeb1386f82";
   };
 
   XDG_RUNTIME_DIR = "/tmp";
@@ -39,7 +40,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs =
     [ cycler dateutil numpy pyparsing tornado freetype kiwisolver
-      libpng mock pytz ]
+      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 ff4f6198aa5..890518658a2 100644
--- a/pkgs/development/python-modules/matrix-nio/default.nix
+++ b/pkgs/development/python-modules/matrix-nio/default.nix
@@ -19,14 +19,14 @@
 }:
 
 buildPythonPackage rec {
-  pname = "nio";
-  version = "0.10.0";
+  pname = "matrix-nio";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "poljar";
     repo = "matrix-nio";
     rev = version;
-    sha256 = "04ryf9lrm0820hqij46hav6mgplabnyl9dfj46iwvxasn06fh2j8";
+    sha256 = "0mgb9m3298jvw3wa051zn7vp1m8qriys3ps0qn3sq54fndljgg5k";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mautrix/default.nix b/pkgs/development/python-modules/mautrix/default.nix
index a9310af1432..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.4.2";
+  version = "0.5.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f8pzi7ip82p7hn6d9xrgp5wsl4s3w6gmjsgb8gjy2606f7czqyg";
+    sha256 = "1hqg32n7pmjhap0ybfcf05zgfcyyirb4fm1m7gf44dwh40da6qz0";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/maxminddb/default.nix b/pkgs/development/python-modules/maxminddb/default.nix
index 6556ade818a..f92b96c9ada 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.2";
+  version = "2.0.2";
   pname = "maxminddb";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d0ce131d901eb11669996b49a59f410efd3da2c6dbe2c0094fe2fef8d85b6336";
+    sha256 = "15z5557rn4yvrhnpdm9l4kczr151qv9px736hd361rlr2z98wpdr";
   };
 
+  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/mdp/default.nix b/pkgs/development/python-modules/mdp/default.nix
index 854622f2064..a93b00a0f91 100644
--- a/pkgs/development/python-modules/mdp/default.nix
+++ b/pkgs/development/python-modules/mdp/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "MDP";
-  version = "3.5";
+  version = "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0aw1zxmyvx6gfmmnixbqmdaah28jl7rmqkzhxv53091asc23iw9k";
+    sha256 = "ac52a652ccbaed1857ff1209862f03bf9b06d093b12606fb410787da3aa65a0e";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/mecab-python3/default.nix b/pkgs/development/python-modules/mecab-python3/default.nix
index 893dfb0251d..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.3";
+  version = "1.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1cedc968ef5bcbb2a6ece3bb4eb26e9569d89f3277dc2066ea0ce1341ab7d3b9";
+    sha256 = "0246wxfk8v1js75nv8jl15cwpf4rvv4xndi4gbzjrrqbsgj2fvfm";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/meinheld/default.nix b/pkgs/development/python-modules/meinheld/default.nix
index 247523a9a83..2941505184d 100644
--- a/pkgs/development/python-modules/meinheld/default.nix
+++ b/pkgs/development/python-modules/meinheld/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "meinheld";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "447de7189e4dc9c1f425aa1b9c8210aab492fda4d86f73a24059264e7d8b0134";
+    sha256 = "008c76937ac2117cc69e032dc69cea9f85fc605de9bac1417f447c41c16a56d6";
   };
 
   propagatedBuildInputs = [ greenlet ];
diff --git a/pkgs/development/python-modules/meld3/default.nix b/pkgs/development/python-modules/meld3/default.nix
index 013bd56aa3d..b2f51462331 100644
--- a/pkgs/development/python-modules/meld3/default.nix
+++ b/pkgs/development/python-modules/meld3/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "meld3";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1fbyafwi0d54394hkmp65nf6vk0qm4kipf5z60pdp4244rvadz8y";
+    sha256 = "3ea266994f1aa83507679a67b493b852c232a7905e29440a6b868558cad5e775";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/meshlabxml/default.nix b/pkgs/development/python-modules/meshlabxml/default.nix
new file mode 100644
index 00000000000..c1091296d2e
--- /dev/null
+++ b/pkgs/development/python-modules/meshlabxml/default.nix
@@ -0,0 +1,29 @@
+{
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  lib,
+}:
+
+buildPythonPackage rec {
+  pname = "MeshLabXML";
+  version = "2018.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1villmg46hqby5jjkkpxr5bxydr72y5b3cbfngwpyxxdljn091w8";
+  };
+
+  propagatedBuildInputs = [ ];
+
+  doCheck = false; # Upstream not currently have any tests.
+
+  pythonImportsCheck = [ "meshlabxml" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/3DLIRIOUS/MeshLabXML";
+    description = "Create and run MeshLab XML scripts with Python";
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ nh2 ];
+  };
+}
diff --git a/pkgs/development/python-modules/mido/default.nix b/pkgs/development/python-modules/mido/default.nix
new file mode 100644
index 00000000000..8312ea783cb
--- /dev/null
+++ b/pkgs/development/python-modules/mido/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, buildPythonPackage, fetchPypi, substituteAll
+, portmidi, pygame, python-rtmidi, rtmidi-python
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "mido";
+  version = "1.2.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1k3sgkxc7j49bapib3b5jnircb1yhyyd8mi0mbfd78zgix9db9y4";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./libportmidi-cdll.patch;
+      libportmidi = "${portmidi.out}/lib/libportmidi${stdenv.targetPlatform.extensions.sharedLibrary}";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    pygame
+    python-rtmidi
+    rtmidi-python
+  ];
+
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    py.test . -rs -q
+  '';
+
+  meta = with lib; {
+    description = "MIDI Objects for Python";
+    homepage = "https://mido.readthedocs.io";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/mido/libportmidi-cdll.patch b/pkgs/development/python-modules/mido/libportmidi-cdll.patch
new file mode 100644
index 00000000000..455064f12b9
--- /dev/null
+++ b/pkgs/development/python-modules/mido/libportmidi-cdll.patch
@@ -0,0 +1,19 @@
+diff --git a/mido/backends/portmidi_init.py b/mido/backends/portmidi_init.py
+index 84bb128..5efcdaa 100644
+--- a/mido/backends/portmidi_init.py
++++ b/mido/backends/portmidi_init.py
+@@ -10,13 +10,7 @@ from ctypes import (CDLL, CFUNCTYPE, POINTER, Structure, c_char_p,
+                     create_string_buffer, byref)
+ import ctypes.util
+ 
+-dll_name = ''
+-if sys.platform == 'darwin':
+-    dll_name = ctypes.util.find_library('libportmidi.dylib')
+-elif sys.platform in ('win32', 'cygwin'):
+-    dll_name = 'portmidi.dll'
+-else:
+-    dll_name = 'libportmidi.so'
++dll_name = '@libportmidi@'
+ 
+ lib = CDLL(dll_name)
+ 
diff --git a/pkgs/development/python-modules/minidb/default.nix b/pkgs/development/python-modules/minidb/default.nix
index a324c8d7d08..dbe9597ea0c 100644
--- a/pkgs/development/python-modules/minidb/default.nix
+++ b/pkgs/development/python-modules/minidb/default.nix
@@ -5,14 +5,14 @@
 
 buildPythonPackage rec {
   pname = "minidb";
-  version = "2.0.3";
+  version = "2.0.4";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "thp";
     repo = "minidb";
     rev = version;
-    sha256 = "0c6y3x957pc5sxkl34lymhkwpn4nlsfw07fcv4y9p2zdb7kjd1gc";
+    sha256 = "0i607rkfx0rkyllcx4vf3w2z0wxzs1gqigfw87q90pjrbbh2q4sb";
   };
 
   # module imports are incompatible with python2
diff --git a/pkgs/development/python-modules/minio/default.nix b/pkgs/development/python-modules/minio/default.nix
index a3d6cb8879e..6fdc962cdb4 100644
--- a/pkgs/development/python-modules/minio/default.nix
+++ b/pkgs/development/python-modules/minio/default.nix
@@ -1,19 +1,34 @@
 { lib, buildPythonPackage, isPy3k, fetchPypi
-, urllib3, future, python-dateutil , pytz, faker, mock, nose }:
+, configparser
+, faker
+, future
+, mock
+, nose
+, python-dateutil
+, pytz
+, pytestCheckHook
+, urllib3
+}:
 
 buildPythonPackage rec {
   pname = "minio";
-  version = "5.0.6";
+  version = "5.0.10";
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p6gnbapwzpg7h0wv52fn4dd3dlhxl5qziadkiqjl8xaz8yp3vys";
+    sha256 = "6ecb7637a35f806733e9d112eacfa599a58d7c3d4698fda2b5c86fff5d34b417";
   };
 
-  disabled = !isPy3k;
+  propagatedBuildInputs = [
+    configparser
+    future
+    python-dateutil
+    pytz
+    urllib3
+  ];
 
-  checkInputs = [ faker mock nose ];
-  propagatedBuildInputs = [ urllib3 python-dateutil pytz future ];
+  checkInputs = [ faker mock nose pytestCheckHook ];
 
   meta = with lib; {
     description = "Simple APIs to access any Amazon S3 compatible object storage server";
diff --git a/pkgs/development/python-modules/mlflow/default.nix b/pkgs/development/python-modules/mlflow/default.nix
index 5aaeb09b894..4d65d7fce43 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.4.0";
+  version = "1.8.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9116d82be380c32fa465049d14b217c4c200ad11614f4c6674e6b524b2935206";
+    sha256 = "bab1b95da17ffb1856fec35fc1a0bc9d16e1811e41610a97c2c955884eb6ac53";
   };
 
   # 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/mock/2.nix b/pkgs/development/python-modules/mock/2.nix
new file mode 100644
index 00000000000..9ab8de1ba50
--- /dev/null
+++ b/pkgs/development/python-modules/mock/2.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, funcsigs
+, six
+, pbr
+, python
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "mock";
+  version = "3.0.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "83657d894c90d5681d62155c82bda9c1187827525880eda8ff5df4ec813437c3";
+  };
+
+  propagatedBuildInputs = [ six pbr ] ++ lib.optionals isPy27 [ funcsigs ];
+
+  # On PyPy for Python 2.7 in particular, Mock's tests have a known failure.
+  # Mock upstream has a decoration to disable the failing test and make
+  # everything pass, but it is not yet released. The commit:
+  # https://github.com/testing-cabal/mock/commit/73bfd51b7185#diff-354f30a63fb0907d4ad57269548329e3L12
+  #doCheck = !(python.isPyPy && python.isPy27);
+  doCheck = false; # Infinite recursion pytest
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover
+  '';
+
+  checkInputs = [
+    pytest
+  ];
+
+  meta = with lib; {
+    description = "Mock objects for Python";
+    homepage = "http://python-mock.sourceforge.net/";
+    license = licenses.bsd2;
+  };
+
+}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/mock/default.nix b/pkgs/development/python-modules/mock/default.nix
index de1ff58243e..e905add00f5 100644
--- a/pkgs/development/python-modules/mock/default.nix
+++ b/pkgs/development/python-modules/mock/default.nix
@@ -6,15 +6,16 @@
 , six
 , pbr
 , python
+, pytest
 }:
 
 buildPythonPackage rec {
   pname = "mock";
-  version = "3.0.5";
+  version = "4.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "83657d894c90d5681d62155c82bda9c1187827525880eda8ff5df4ec813437c3";
+    sha256 = "dd33eb70232b6118298d516bbcecd26704689c386594f0f3c4f13867b2c56f72";
   };
 
   propagatedBuildInputs = [ six pbr ] ++ lib.optionals isPy27 [ funcsigs ];
@@ -23,12 +24,17 @@ buildPythonPackage rec {
   # Mock upstream has a decoration to disable the failing test and make
   # everything pass, but it is not yet released. The commit:
   # https://github.com/testing-cabal/mock/commit/73bfd51b7185#diff-354f30a63fb0907d4ad57269548329e3L12
-  doCheck = !(python.isPyPy && python.isPy27);
+  #doCheck = !(python.isPyPy && python.isPy27);
+  doCheck = false; # Infinite recursion pytest
 
   checkPhase = ''
     ${python.interpreter} -m unittest discover
   '';
 
+  checkInputs = [
+    pytest
+  ];
+
   meta = with lib; {
     description = "Mock objects for Python";
     homepage = "http://python-mock.sourceforge.net/";
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 cd128fb2164..8806bdf11cf 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.0.2";
+  version = "8.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b84b238cce0d9adad5ed87e745778d20a3f8487d0f0cb8b8a586816c7496458d";
+    sha256 = "558bb897a2232f5e4f8e2399089e35aecb746e1f9191b6584a151647e89267be";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/mortgage/default.nix b/pkgs/development/python-modules/mortgage/default.nix
index 8861a19811f..dc395a87a56 100644
--- a/pkgs/development/python-modules/mortgage/default.nix
+++ b/pkgs/development/python-modules/mortgage/default.nix
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit version pname;
-    hash = "sha256:18fcb356c631e9cc27fa7019f6ff6021707e34b9ce3a3b7dc815661288709921";
+    sha256 = "18fcb356c631e9cc27fa7019f6ff6021707e34b9ce3a3b7dc815661288709921";
   };
 
   checkInputs = [
@@ -27,4 +27,4 @@ buildPythonPackage rec {
     license = lib.licenses.mit;
   };
 
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/moto/default.nix b/pkgs/development/python-modules/moto/default.nix
index 0d45103a295..3efc09bc001 100644
--- a/pkgs/development/python-modules/moto/default.nix
+++ b/pkgs/development/python-modules/moto/default.nix
@@ -23,6 +23,7 @@
 , werkzeug
 , xmltodict
 , parameterized
+, idna
 }:
 
 buildPythonPackage rec {
@@ -40,6 +41,14 @@ buildPythonPackage rec {
     sed -i '/datetime/d' setup.py # should be taken care of by std library
   '';
 
+  patches = [
+    # loosen idna upper limit
+    (fetchpatch {
+      url = "https://github.com/spulec/moto/commit/649b497f71cce95a6474a3ff6f3c9c3339efb68f.patch";
+      sha256 = "03qdybzlskgbdadmlcg6ayxfp821b5iaa8q2542cwkcq7msqbbqc";
+    })
+  ];
+
   propagatedBuildInputs = [
     aws-xray-sdk
     boto
@@ -60,6 +69,7 @@ buildPythonPackage rec {
     sshpubkeys
     werkzeug
     xmltodict
+    idna
   ] ++ lib.optionals isPy27 [ backports_tempfile ];
 
   checkInputs = [ boto3 freezegun nose sure parameterized ];
diff --git a/pkgs/development/python-modules/moviepy/default.nix b/pkgs/development/python-modules/moviepy/default.nix
index 2daabf22d9e..1e08d5dc3af 100644
--- a/pkgs/development/python-modules/moviepy/default.nix
+++ b/pkgs/development/python-modules/moviepy/default.nix
@@ -25,13 +25,13 @@ assert advancedProcessing -> (
 
 buildPythonPackage rec {
   pname = "moviepy";
-  version = "1.0.2";
+  version = "1.0.3";
 
   disabled = !(pythonAtLeast "3.4");
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ajw2xmcd962qw2kxxnbp08l5vgk5k78sls9bb227lw8aa51ln80";
+    sha256 = "2884e35d1788077db3ff89e763c5ba7bfddbd7ae9108c9bc809e7ba58fa433f5";
   };
 
   # No tests, require network connection
diff --git a/pkgs/development/python-modules/mox3/default.nix b/pkgs/development/python-modules/mox3/default.nix
index bdbccc790cf..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
@@ -13,11 +14,12 @@
 
 buildPythonPackage rec {
   pname = "mox3";
-  version = "0.28.0";
+  version = "1.1.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17d4vglb71s96hhi6d30vnkr7g1pahv95igc4sjv857qf278d540";
+    sha256 = "8a526b7b9b6341f541a9aef3e08c93fd84a5373fe89d4cc51dd571f085b2363c";
   };
 
   buildInputs = [ subunit testrepository testtools six ];
diff --git a/pkgs/development/python-modules/mpv/default.nix b/pkgs/development/python-modules/mpv/default.nix
index a74150f971b..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.5";
+  version = "0.4.7";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "jaseg";
     repo = "python-mpv";
     rev = "v${version}";
-    sha256 = "1y80c2k4s42lzvm5dz8wi186i7rsn1vs1wn30hp6v6vs62fb91fi";
+    sha256 = "1gq2ynzbpmc7bv066ddv2f4rnmvfsi7034vhf9ffp7yzbixf6ys8";
   };
 
   buildInputs = [ mpv ];
diff --git a/pkgs/development/python-modules/msal-extensions/default.nix b/pkgs/development/python-modules/msal-extensions/default.nix
index c866382b103..6f3a8b89245 100644
--- a/pkgs/development/python-modules/msal-extensions/default.nix
+++ b/pkgs/development/python-modules/msal-extensions/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "msal-extensions";
-  version = "0.1.3";
+  version = "0.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p05cbfksnhijx1il7s24js2ydzgxbpiasf607qdpb5sljlp3qar";
+    sha256 = "31414753c484679bb3b6c6401623eb4c3ccab630af215f2f78c1d5c4f8e1d1a9";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/msal/default.nix b/pkgs/development/python-modules/msal/default.nix
index 705ae9b61cc..e07be20b264 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.2.0";
+  version = "1.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0pqprfgcsns89gmlm284zcvqnlsn3a5c46n1p33kdk53gyyym66y";
+    sha256 = "5442a3a9d006506e653d3c4daff40538bdf067bf07b6b73b32d1b231d5e77a92";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/msgpack-numpy/default.nix b/pkgs/development/python-modules/msgpack-numpy/default.nix
index d646c1ed15f..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.5";
+  version = "0.4.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0z3ls52iamqv6fbn1ljnd5nnnzaiakczciry5c3vym5r77wgc9mg";
+    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 c41b472a693..01abd718c75 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.19.0";
+  version = "4.21.0";
   pname = "mt-940";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5d109e8dc4b490a4b92ec0153713710eb067b36b350ce1ff60c406afddc7d3cd";
+    sha256 = "7cbd88fd7252d5a2694593633b31f819eb302423058fecb9f9959e74c01c2b86";
   };
 
   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/multidict/default.nix b/pkgs/development/python-modules/multidict/default.nix
index 16fea2898dd..d818a63cd5d 100644
--- a/pkgs/development/python-modules/multidict/default.nix
+++ b/pkgs/development/python-modules/multidict/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "multidict";
-  version = "4.7.4";
+  version = "4.7.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d7d428488c67b09b26928950a395e41cc72bb9c3d5abfe9f0521940ee4f796d4";
+    sha256 = "fbb77a75e529021e7c4a8d4e823d88ef4d23674a202be4f5addffc72cbb91430";
   };
 
   checkInputs = [ pytest pytestrunner pytestcov ];
diff --git a/pkgs/development/python-modules/mutagen/1.43.nix b/pkgs/development/python-modules/mutagen/1.43.nix
new file mode 100644
index 00000000000..3947dc05fa4
--- /dev/null
+++ b/pkgs/development/python-modules/mutagen/1.43.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, hypothesis
+, pycodestyle
+, pyflakes
+, pytest
+, setuptools
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "mutagen";
+  version = "1.43.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "125m0pkiw5lsffc0236xdlxfhwpr8csvxpmg6855405qy4wjv61s";
+  };
+
+  propagatedBuildInputs = [ setuptools ];
+  checkInputs = [
+    pkgs.faad2 pkgs.flac pkgs.vorbis-tools pkgs.liboggz
+    pkgs.glibcLocales pycodestyle pyflakes pytest hypothesis
+  ];
+  LC_ALL = "en_US.UTF-8";
+
+  meta = with lib; {
+    description = "Python multimedia tagging library";
+    homepage = "https://mutagen.readthedocs.io";
+    license = licenses.lgpl2Plus;
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/python-modules/mutagen/default.nix b/pkgs/development/python-modules/mutagen/default.nix
index 304aeead76f..9494d2c84a6 100644
--- a/pkgs/development/python-modules/mutagen/default.nix
+++ b/pkgs/development/python-modules/mutagen/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , fetchpatch
 , hypothesis
 , pycodestyle
@@ -12,11 +13,12 @@
 
 buildPythonPackage rec {
   pname = "mutagen";
-  version = "1.43.0";
+  version = "1.44.0";
+  disabled = isPy27; # abandoned
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3a982d39f1b800520a32afdebe3543f972e83a6ddd0c0198739a161ee705b588";
+    sha256 = "56065d8a9ca0bc64610a4d0f37e2bd4453381dde3226b8835ee656faa3287be4";
   };
 
   propagatedBuildInputs = [ setuptools ];
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/myfitnesspal/default.nix b/pkgs/development/python-modules/myfitnesspal/default.nix
index 14834923954..a4a937d18d2 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.13.4";
+  version = "1.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "552cc696e170f12f75fd12b1447be01fa2d0bfd85e14da5928afd9aab2277b98";
+    sha256 = "66bf61c3d782cd80f380d3856da5f635f5b8de032e62d916c26d48dc322846a6";
   };
 
   # 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 5cc192313ac..5eda75d9c7f 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.20";
+  version = "1.21";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03j2i9vhpdxbvwlqg6zghlzzq46s1x2jbx20fwninb6kss0ps3rg";
+    sha256 = "0eb8db49b014d1082f370a39eeaf272d1cc9978f728b64ee6fcc822d00a8793c";
   };
 
   propagatedBuildInputs = [ protobuf ];
diff --git a/pkgs/development/python-modules/mypy/default.nix b/pkgs/development/python-modules/mypy/default.nix
index bcd0ab4a6c6..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.770";
+  version = "0.782";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bm40nx9g1n4nj1309cijnh0ns4qbhym3agyl537nc4vxw3paqla";
+    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/nassl/default.nix b/pkgs/development/python-modules/nassl/default.nix
new file mode 100644
index 00000000000..08cfb66408d
--- /dev/null
+++ b/pkgs/development/python-modules/nassl/default.nix
@@ -0,0 +1,120 @@
+{ lib
+, fetchFromGitHub
+, fetchurl
+, buildPythonPackage
+, pkgsStatic
+, openssl
+, invoke
+, pytest
+, tls-parser
+, cacert
+}:
+
+let
+  zlibStatic = pkgsStatic.zlib;
+  nasslOpensslArgs = {
+    static = true;
+    enableSSL2 = true;
+  };
+  nasslOpensslFlagsCommon = [
+    "zlib"
+    "no-zlib-dynamic"
+    "no-shared"
+    "--with-zlib-lib=${zlibStatic.out}/lib"
+    "--with-zlib-include=${zlibStatic.out.dev}/include"
+    "enable-rc5"
+    "enable-md2"
+    "enable-gost"
+    "enable-cast"
+    "enable-idea"
+    "enable-ripemd"
+    "enable-mdc2"
+    "-fPIC"
+  ];
+  opensslStatic = (openssl.override nasslOpensslArgs).overrideAttrs (
+    oldAttrs: rec {
+      name = "openssl-${version}";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://www.openssl.org/source/${name}.tar.gz";
+        sha256 = "0gbab2fjgms1kx5xjvqx8bxhr98k4r8l2fa8vw7kvh491xd8fdi8";
+      };
+      configureFlags = oldAttrs.configureFlags ++ nasslOpensslFlagsCommon ++ [
+        "enable-weak-ssl-ciphers"
+        "enable-tls1_3"
+        "no-async"
+      ];
+      patches = [ ./nix-ssl-cert-file.patch ];
+      buildInputs = oldAttrs.buildInputs ++ [ zlibStatic cacert ];
+    }
+  );
+  opensslLegacyStatic = (openssl.override nasslOpensslArgs).overrideAttrs (
+    oldAttrs: rec {
+      name = "openssl-${version}";
+      version = "1.0.2e";
+      src = fetchurl {
+        url = "https://www.openssl.org/source/${name}.tar.gz";
+        sha256 = "1zqb1rff1wikc62a7vj5qxd1k191m8qif5d05mwdxz2wnzywlg72";
+      };
+      configureFlags = oldAttrs.configureFlags ++ nasslOpensslFlagsCommon;
+      patches = [ ];
+      buildInputs = oldAttrs.buildInputs ++ [ zlibStatic ];
+      # openssl_1_0_2 needs `withDocs = false`
+      outputs = lib.remove "doc" oldAttrs.outputs;
+    }
+  );
+in
+buildPythonPackage rec {
+  pname = "nassl";
+  version = "3.0.0";
+
+  src = fetchFromGitHub {
+    owner = "nabla-c0d3";
+    repo = pname;
+    rev = version;
+    sha256 = "1dhgkpldadq9hg5isb6mrab7z80sy5bvzad2fb54pihnknfwhp8z";
+  };
+
+  postPatch = ''
+    mkdir -p deps/openssl-OpenSSL_1_0_2e/
+    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.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.bin}/bin deps/openssl-OpenSSL_1_1_1/apps
+
+    mkdir -p deps/zlib-1.2.11/
+    cp ${zlibStatic.out}/lib/libz.a deps/zlib-1.2.11/
+  '';
+
+  propagatedBuildInputs = [ tls-parser ];
+
+  nativeBuildInputs = [ invoke ];
+
+  buildPhase = ''
+    invoke build.nassl
+    invoke package.wheel
+  '';
+
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    # Skip online tests
+    pytest -k 'not Online'
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/nabla-c0d3/nassl";
+    description = "Low-level OpenSSL wrapper for Python 3.7+";
+    platforms = with platforms; linux ++ darwin;
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ veehaitch ];
+  };
+}
diff --git a/pkgs/development/python-modules/nassl/nix-ssl-cert-file.patch b/pkgs/development/python-modules/nassl/nix-ssl-cert-file.patch
new file mode 100644
index 00000000000..893fb3eb664
--- /dev/null
+++ b/pkgs/development/python-modules/nassl/nix-ssl-cert-file.patch
@@ -0,0 +1,14 @@
+diff -ru -x '*~' openssl-1.0.2j-orig/crypto/x509/by_file.c openssl-1.0.2j/crypto/x509/by_file.c
+--- openssl-1.0.2j-orig/crypto/x509/by_file.c	2016-09-26 11:49:07.000000000 +0200
++++ openssl-1.0.2j/crypto/x509/by_file.c	2016-10-13 16:54:31.400288302 +0200
+@@ -97,7 +97,9 @@
+     switch (cmd) {
+     case X509_L_FILE_LOAD:
+         if (argl == X509_FILETYPE_DEFAULT) {
+-            file = getenv(X509_get_default_cert_file_env());
++            file = getenv("NIX_SSL_CERT_FILE");
++            if (!file)
++                file = getenv(X509_get_default_cert_file_env());
+             if (file)
+                 ok = (X509_load_cert_crl_file(ctx, file,
+                                               X509_FILETYPE_PEM) != 0);
diff --git a/pkgs/development/python-modules/natsort/default.nix b/pkgs/development/python-modules/natsort/default.nix
index 918d491083d..bfe486e1a54 100644
--- a/pkgs/development/python-modules/natsort/default.nix
+++ b/pkgs/development/python-modules/natsort/default.nix
@@ -8,11 +8,12 @@
 , hypothesis
 , glibcLocales
 , pathlib ? null
+, isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "natsort";
-  version = "6.2.0";
+  version = "7.0.1";
 
   checkInputs = [
     pytest
@@ -26,9 +27,12 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "58c6fb2f355117e88a19808394ec1ed30a2ff881bdd2c81c436952caebd30668";
+    sha256 = "a633464dc3a22b305df0f27abcb3e83515898aa1fd0ed2f9726c3571a27258cf";
   };
 
+  # Does not support Python 2
+  disabled = !isPy3k;
+
   # testing based on project's tox.ini
   # natsort_keygen has pytest mock issues
   checkPhase = ''
diff --git a/pkgs/development/python-modules/nbclient/default.nix b/pkgs/development/python-modules/nbclient/default.nix
new file mode 100644
index 00000000000..990854b1098
--- /dev/null
+++ b/pkgs/development/python-modules/nbclient/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi, pythonOlder,
+  async_generator, traitlets, nbformat, nest-asyncio, jupyter_client,
+  pytest, xmltodict, nbconvert, ipywidgets
+}:
+
+buildPythonPackage rec {
+  pname = "nbclient";
+  version = "0.4.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "31fdb4bd45ebcd98eeda01e2c38fb391eae8a8480bdddbebb6cfd088486948a7";
+  };
+
+  checkInputs = [ pytest xmltodict nbconvert ipywidgets ];
+  propagatedBuildInputs = [ async_generator traitlets nbformat nest-asyncio jupyter_client ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/jupyter/nbclient";
+    description = "A client library for executing notebooks";
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/nbformat/2.nix b/pkgs/development/python-modules/nbformat/2.nix
index faf2cee2b00..06d02520b20 100644
--- a/pkgs/development/python-modules/nbformat/2.nix
+++ b/pkgs/development/python-modules/nbformat/2.nix
@@ -36,6 +36,6 @@ buildPythonPackage rec {
     description = "The Jupyter Notebook format";
     homepage = "https://jupyter.org/";
     license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ fridh globin ];
+    maintainers = with lib.maintainers; [ globin ];
   };
 }
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/nbsmoke/default.nix b/pkgs/development/python-modules/nbsmoke/default.nix
index 46d47fd1679..8f263246893 100644
--- a/pkgs/development/python-modules/nbsmoke/default.nix
+++ b/pkgs/development/python-modules/nbsmoke/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "nbsmoke";
-  version = "0.3.0";
+  version = "0.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "070e999db3902a0c62a94d76de8fb98da21eaee22d9e90eb42f1636c87e1b805";
+    sha256 = "06as8vh17m0nkp3fpkp42m990a5zjfl2iaa17da99ksh7886mjpc";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/nbsphinx/default.nix b/pkgs/development/python-modules/nbsphinx/default.nix
index 06a210db6c4..f46322954f3 100644
--- a/pkgs/development/python-modules/nbsphinx/default.nix
+++ b/pkgs/development/python-modules/nbsphinx/default.nix
@@ -8,15 +8,16 @@
 , sphinx
 , traitlets
 , python
+, isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "nbsphinx";
-  version = "0.5.1";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0kh0d83xavpffdp4xp4hq8xy43l6lyv3d1a25rnc15jcbdf1nghw";
+    sha256 = "0j56bxdj08vn3q1804qwb1ywhga1mdg1awgm7i64wfpfwi8df2zm";
   };
 
   propagatedBuildInputs = [
@@ -32,6 +33,8 @@ buildPythonPackage rec {
     ${python.interpreter} -m nbsphinx
   '';
 
+  disabled = !isPy3k;
+
   meta = with lib; {
     description = "Jupyter Notebook Tools for Sphinx";
     homepage = "https://nbsphinx.readthedocs.io/";
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/nest-asyncio/default.nix b/pkgs/development/python-modules/nest-asyncio/default.nix
index 1934317a112..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.2";
+  version = "1.4.0";
   pname = "nest_asyncio";
   disabled = !(pythonAtLeast "3.5");
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0l43k0lx7r6izancfhhg68x82mvws2di1a9w2y12l1a446vr9q8l";
+    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 b5353a5842d..3d5c1520d31 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.6.0";
+  version = "2.7.1";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2b3aca14a1807712a053f11fd80dc251dd821ee4899aefece515287981817762";
+    sha256 = "0rkaz9377f4ldxcqxcmcc9hwdv5dda8nl7vrnp2pj3ppivq5629w";
   };
 
   propagatedBuildInputs = [ requests zeroconf netifaces ];
diff --git a/pkgs/development/python-modules/nibabel/default.nix b/pkgs/development/python-modules/nibabel/default.nix
index 751cc139548..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.0.1";
+  version = "3.1.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08nlny8vzkpjpyb0q943cq57m2s4wndm86chvd3d5qvar9z6b36k";
+    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/nilearn/default.nix b/pkgs/development/python-modules/nilearn/default.nix
index 1e58aee503b..c01715470f6 100644
--- a/pkgs/development/python-modules/nilearn/default.nix
+++ b/pkgs/development/python-modules/nilearn/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "nilearn";
-  version = "0.6.0";
+  version = "0.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07eb764f2b7b39b487f806a067e394d8ebffff21f57cd1ecdb5c4030b7210210";
+    sha256 = "cfc6cfda59a6f4247189f8ccf92e364de450460a15c0ec21bdb857c420dd198c";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/nine/default.nix b/pkgs/development/python-modules/nine/default.nix
index 8882b6ae745..e0d1cb173ea 100644
--- a/pkgs/development/python-modules/nine/default.nix
+++ b/pkgs/development/python-modules/nine/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "nine";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3064fbeb512e756a415606a1399f49c22de867d5ac7e2b6c91c35e757d3af42d";
+    sha256 = "e8a96b6326341637d25ca9c257c1d2af4033c957946438d9d37bf6eb798d3bbe";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/nipype/default.nix b/pkgs/development/python-modules/nipype/default.nix
index 06c6f9cb0c1..4e47a4a9314 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.4.2";
+  version = "1.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nr0z0k4xx1vswkp03g1lf8141mr4j2fbwd7wmpay4vz46qcp786";
+    sha256 = "8c837eafdaa68e85d911aca20c8a2cd9210e4fffabbcbc5bd2eb6e26f8553da9";
   };
 
   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 17e4669b6be..6ee4d937cfb 100644
--- a/pkgs/development/python-modules/nix-prefetch-github/default.nix
+++ b/pkgs/development/python-modules/nix-prefetch-github/default.nix
@@ -1,21 +1,31 @@
 { fetchPypi
 , lib
 , buildPythonPackage
+, pythonOlder
 , attrs
 , click
 , effect
 , jinja2
+, git
+, pytestCheckHook
+, pytest-black
+, pytestcov
+, pytest-isort
 }:
 
 buildPythonPackage rec {
   pname = "nix-prefetch-github";
-  version = "2.3.2";
+  version = "2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18xj618zjs13ib7f996fnl0xiqig0w48yns45nvy3xab55wximdx";
+    sha256 = "sha256-PVB/cL0NVB5pHxRMjg8TLatvIvHjfCvaRWBanVHYT+E=";
   };
 
+  # 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
@@ -23,6 +33,12 @@ buildPythonPackage rec {
     jinja2
   ];
 
+  checkInputs = [ pytestCheckHook pytest-black pytestcov pytest-isort git ];
+
+  # latest version of isort will cause tests to fail
+  # ignore tests which are impure
+  disabledTests = [ "isort" "life" "outputs" "fetch_submodules" ];
+
   meta = with lib; {
     description = "Prefetch sources from github";
     homepage = "https://github.com/seppeljordan/nix-prefetch-github";
diff --git a/pkgs/development/python-modules/nltk/default.nix b/pkgs/development/python-modules/nltk/default.nix
index 4f0a90a36af..298b32ed8b8 100644
--- a/pkgs/development/python-modules/nltk/default.nix
+++ b/pkgs/development/python-modules/nltk/default.nix
@@ -1,16 +1,26 @@
-{ fetchPypi, buildPythonPackage, lib, six, singledispatch, isPy3k }:
+{ fetchPypi, buildPythonPackage, lib, six, singledispatch, isPy3k
+, click
+, joblib
+, regex
+, tqdm
+}:
 
 buildPythonPackage rec {
-  version = "3.4.5";
+  version = "3.5";
   pname = "nltk";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "153x2clrnigs74jdgnn3qmljdjj4gprmvpdvh49i18ls4m8mbm5y";
+    sha256 = "845365449cd8c5f9731f7cb9f8bd6fd0767553b9d53af9eb1b3abf7700936b35";
   };
 
-  propagatedBuildInputs = [ six ] ++ lib.optional (!isPy3k) singledispatch;
+  propagatedBuildInputs = [
+    click
+    joblib
+    regex
+    tqdm
+  ] ++ lib.optional (!isPy3k) singledispatch;
 
   # Tests require some data, the downloading of which is impure. It would
   # probably make sense to make the data another derivation, but then feeding
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 f3f1c2b86c1..14a67fe54ae 100644
--- a/pkgs/development/python-modules/nodeenv/default.nix
+++ b/pkgs/development/python-modules/nodeenv/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib, buildPythonPackage, fetchPypi, setuptools }:
 
 buildPythonPackage rec {
   pname = "nodeenv";
@@ -9,6 +9,10 @@ buildPythonPackage rec {
     sha256 = "ad8259494cf1c9034539f6cced78a1da4840a4b157e23640bc4a0c0546b0cb7a";
   };
 
+  propagatedBuildInputs = [
+    setuptools
+  ];
+
   # Tests not included in PyPI tarball
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/notebook/2.nix b/pkgs/development/python-modules/notebook/2.nix
index 8b8cce2f824..37f39c44967 100644
--- a/pkgs/development/python-modules/notebook/2.nix
+++ b/pkgs/development/python-modules/notebook/2.nix
@@ -71,6 +71,6 @@ buildPythonPackage rec {
     description = "The Jupyter HTML notebook is a web-based notebook environment for interactive computing";
     homepage = "https://jupyter.org/";
     license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ fridh ];
+    maintainers = with lib.maintainers; [ ];
   };
 }
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 5eef92a2879..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.7";
+  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 = "09mrm7iz2wdrd7y2csbcidg6bkskjignx2pnifh4i8zlh0vm61bg";
+    sha256 = "0awhwksnmqmbciimqmd11wygp7bnq57khcg4n9r4ld53s147rmqm";
   };
 
   checkInputs = [ vmprof pyqt4 ];
diff --git a/pkgs/development/python-modules/numba/default.nix b/pkgs/development/python-modules/numba/default.nix
index 71e8eec3941..f34301a5d70 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.48.0";
+  version = "0.50.1";
   pname = "numba";
   # uses f-strings
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9d21bc77e67006b5723052840c88cc59248e079a907cc68f1a1a264e1eaba017";
+    sha256 = "89e81b51b880f9b18c82b7095beaccc6856fcf84ba29c4f0ced42e4e5748a3a7";
   };
 
   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..af419c5e0a4
--- /dev/null
+++ b/pkgs/development/python-modules/numpy/1.16.nix
@@ -0,0 +1,94 @@
+{ 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";
+        libraries = "lapack,lapacke,blas,cblas";
+      };
+      lapack = {
+        include_dirs = "${lib.getDev lapack}/include";
+        library_dirs = "${lapack}/lib";
+      };
+      blas = {
+        include_dirs = "${lib.getDev blas}/include";
+        library_dirs = "${blas}/lib";
+      };
+    });
+  };
+in buildPythonPackage rec {
+  pname = "numpy";
+  version = "1.16.5";
+  format = "pyproject.toml";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "8bb452d94e964b312205b0de1238dd7209da452343653ab214b5d681780e7a0c";
+  };
+
+  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 29f01387dd2..98ba0b5c688 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
@@ -35,13 +36,13 @@ let
   };
 in buildPythonPackage rec {
   pname = "numpy";
-  version = "1.18.3";
+  version = "1.19.1";
   format = "pyproject.toml";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "e46e2384209c91996d5ec16744234d1c906ab79a701ce1a26155c9ec890b8dc8";
+    sha256 = "b8456987b637232602ceb4d663cb34106f7eb780e247d51a260b84760fd8f491";
   };
 
   nativeBuildInputs = [ gfortran pytest cython setuptoolsBuildHook ];
@@ -67,6 +68,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 fb3b9af76f6..725d1f9968b 100644
--- a/pkgs/development/python-modules/numpydoc/default.nix
+++ b/pkgs/development/python-modules/numpydoc/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "numpydoc";
-  version = "0.9.2";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname;
     inherit version;
-    sha256 = "9140669e6b915f42c6ce7fef704483ba9b0aaa9ac8e425ea89c76fe40478f642";
+    sha256 = "e481c0799dfda208b6a2c2cb28757fa6b6cbc4d6e43722173697996cf556df7f";
   };
 
   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..96247c93000
--- /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.0";
+  disabled = pythonOlder "3.5"; # only python>=3.5 is supported
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ycnxrw2qgm7kdapsnhz80jsqkghgvb5giqwapn0m30rplwc3s36";
+  };
+
+  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 9046a75260a..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.5";
+  version = "1.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0973f7c3ea5ad65fb19837e8915882a9f2c2f21f5c2589005478697391fea2fd";
+    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 d3617f25a9a..56c9eece4e8 100644
--- a/pkgs/development/python-modules/oauthenticator/default.nix
+++ b/pkgs/development/python-modules/oauthenticator/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "oauthenticator";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cb4e23fcfe8dc9099c4ca005f8991b0f605b03a3e1cf4fed654b2470f6065bdf";
+    sha256 = "ff1b4ba2458a6ee460c3c4161d780a12e94811b2daaa5d13acdb354fa21a9916";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/oauthlib/3.1.nix b/pkgs/development/python-modules/oauthlib/3.1.nix
new file mode 100644
index 00000000000..185ef974863
--- /dev/null
+++ b/pkgs/development/python-modules/oauthlib/3.1.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, mock
+, pytest
+, cryptography
+, blinker
+, pyjwt
+}:
+
+buildPythonPackage rec {
+  pname = "oauthlib";
+  version = "3.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889";
+  };
+
+  checkInputs = [ mock pytest ];
+  propagatedBuildInputs = [ cryptography blinker pyjwt ];
+
+  checkPhase = ''
+    py.test tests/
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/idan/oauthlib";
+    description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic";
+    maintainers = with maintainers; [ prikhi ];
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/oauthlib/default.nix b/pkgs/development/python-modules/oauthlib/default.nix
index 6c6ddc29de9..bc2c8c1094c 100644
--- a/pkgs/development/python-modules/oauthlib/default.nix
+++ b/pkgs/development/python-modules/oauthlib/default.nix
@@ -1,6 +1,6 @@
 { stdenv
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , mock
 , pytest
 , cryptography
@@ -9,12 +9,15 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.1.0";
   pname = "oauthlib";
+  version = "unstable-2020-05-08";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889";
+  # master supports pyjwt==1.7.1
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "46647402896db5f0d979eba9594623e889739060";
+    sha256 = "1wrdjdvlfcd74lckcgascnasrffg8sip0z673si4ag5kv4afiz3l";
   };
 
   checkInputs = [ mock pytest ];
diff --git a/pkgs/development/python-modules/odo/default.nix b/pkgs/development/python-modules/odo/default.nix
deleted file mode 100644
index 4badad33a08..00000000000
--- a/pkgs/development/python-modules/odo/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, datashape
-, numpy
-, pandas
-, toolz
-, multipledispatch
-, networkx
-, dask
-}:
-
-buildPythonPackage rec {
-  pname = "odo";
-  version= "unstable-2018-09-21";
-
-  src = fetchFromGitHub {
-    owner = "blaze";
-    repo = pname;
-    rev = "9fce6690b3666160681833540de6c55e922de5eb";
-    sha256 = "0givkd5agr05wrf72fbghdaav6gplx7c069ngs1ip385v72ifsl9";
-  };
-
-  checkInputs = [
-    pytest
-    dask
-  ];
-
-  propagatedBuildInputs = [
-    datashape
-    numpy
-    pandas
-    toolz
-    multipledispatch
-    networkx
-  ];
-
-  postConfigure = ''
-    substituteInPlace setup.py \
-      --replace "versioneer.get_version()" "'0.5.1'"
-  '';
-
-  # disable 6/315 tests
-  checkPhase = ''
-    pytest odo -k "not test_insert_to_ooc \
-               and not test_datetime_index \
-               and not test_different_encoding \
-               and not test_numpy_asserts_type_after_dataframe"
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/ContinuumIO/odo";
-    description = "Data migration utilities";
-    license = licenses.bsdOriginal;
-    maintainers = with maintainers; [ fridh costrouc ];
-    broken = true; # no longer compatible with dask>=2.0
-  };
-}
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 ce6a909a5bf..72205f8727f 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.2";
+  version = "3.0.4";
   disabled = isPy27; # 2.6.4 was final python2 release
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "eb68c08a72ac6d9812df181e88ebece3a68436364353eb6eda3bed863e3d73a6";
+    sha256 = "d88dd1480668019684c66cfff3e52a5de4ed41e9df5dd52e008cbf27af0dbf87";
   };
 
   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/opentimestamps/default.nix b/pkgs/development/python-modules/opentimestamps/default.nix
index e9dce6b2322..f132614d1ca 100644
--- a/pkgs/development/python-modules/opentimestamps/default.nix
+++ b/pkgs/development/python-modules/opentimestamps/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy3k
+{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, isPy3k
 , bitcoinlib, GitPython, pysha3, git }:
 
 buildPythonPackage rec {
@@ -15,6 +15,14 @@ buildPythonPackage rec {
     sha256 = "0c45ij8absfgwizq6dfgg81siq3y8605sgg184vazp292w8nqmqr";
   };
 
+  patches = [
+    # build against bitcoinlib-0.11
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/opentimestamps/python-opentimestamps/pull/43.patch";
+      sha256 = "0bxzk4pzpqk7zrk2x7vn2bj2n3pc5whf8ijbd225s6674q450zbg";
+    })
+  ];
+
   # Remove a failing test which expects the test source file to reside in the
   # project's Git repo
   postPatch = ''
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 85753ffa071..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.1.0";
+  version = "3.3.0";
   pname = "opt_einsum";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "edfada4b1d0b3b782ace8bc14e80618ff629abf53143e1e6bbf9bd00b11ece77";
+    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 924a2d31b76..7546566cb3a 100644
--- a/pkgs/development/python-modules/ordered-set/default.nix
+++ b/pkgs/development/python-modules/ordered-set/default.nix
@@ -1,14 +1,15 @@
-{ buildPythonPackage, fetchPypi, lib, pytest }:
+{ buildPythonPackage, fetchPypi, lib, isPy27, pytest }:
 
 buildPythonPackage rec {
   pname = "ordered-set";
-  version = "3.1.1";
+  version = "4.0.2";
+  disabled = isPy27;
 
   checkInputs = [ pytest ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "094pww79pawgmjgwi47r0fji9irb7sr4xc9xwjbb0wwcficaigx7";
+    sha256 = "159syfbqnwqnivzjfn3x7ak3xwrxmnzbji7c2qhj1jjv0pgv54xs";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/orderedmultidict/default.nix b/pkgs/development/python-modules/orderedmultidict/default.nix
index 82c08d65535..1a3ab347945 100644
--- a/pkgs/development/python-modules/orderedmultidict/default.nix
+++ b/pkgs/development/python-modules/orderedmultidict/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, flake8, six }:
+{ stdenv, buildPythonPackage, fetchPypi, flake8, six, pythonOlder, importlib-metadata }:
 
 buildPythonPackage rec {
   pname = "orderedmultidict";
@@ -11,7 +11,10 @@ buildPythonPackage rec {
 
   checkInputs = [ flake8 ];
 
-  propagatedBuildInputs = [ six ];
+  propagatedBuildInputs = [ six ]
+    ++ stdenv.lib.optionals (pythonOlder "3.8") [
+      importlib-metadata
+    ];
 
   meta = with stdenv.lib; {
     description = "Ordered Multivalue Dictionary.";
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/owslib/default.nix b/pkgs/development/python-modules/owslib/default.nix
index 93adf764597..c82668008ea 100644
--- a/pkgs/development/python-modules/owslib/default.nix
+++ b/pkgs/development/python-modules/owslib/default.nix
@@ -1,15 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, dateutil, requests, pytz, pyproj , pytest } :
+{ lib, buildPythonPackage, fetchPypi, dateutil, requests, pytz, pyproj , pytest, pyyaml } :
 buildPythonPackage rec {
   pname = "OWSLib";
-  version = "0.19.0";
+  version = "0.20.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0rdhymayyc6w1izlv1bf2wgx2dfxbp4k1vll5s1364isw60rjj8x";
+    sha256 = "334988857b260c8cdf1f6698d07eab61839c51acb52ee10eed1275439200a40e";
   };
 
   buildInputs = [ pytest ];
-  propagatedBuildInputs = [ dateutil pyproj pytz requests ];
+  propagatedBuildInputs = [ dateutil pyproj pytz requests pyyaml ];
 
   # 'tests' dir not included in pypy distribution archive.
   doCheck = false;
diff --git a/pkgs/development/python-modules/packaging/default.nix b/pkgs/development/python-modules/packaging/default.nix
index ce6836f9f2b..abe58d03ef3 100644
--- a/pkgs/development/python-modules/packaging/default.nix
+++ b/pkgs/development/python-modules/packaging/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "packaging";
-  version = "20.1";
+  version = "20.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e665345f9eef0c621aa0bf2f8d78cf6d21904eef16a93f020240b704a57f1334";
+    sha256 = "4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8";
   };
 
   propagatedBuildInputs = [ pyparsing six ];
diff --git a/pkgs/development/python-modules/packet-python/default.nix b/pkgs/development/python-modules/packet-python/default.nix
index 2c56372c2fa..747b4c14cd2 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.41.0";
+  version = "1.42.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "685021502293f6b2e733376bcd0fef3f082c1a66c27072d92f483e27e387ad43";
+    sha256 = "c3342085b2b96591b9d214d10fe39d85e1a2487c5b0883a90ff0bf6123086f07";
   };
   nativeBuildInputs = [ pytestrunner ];
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/pandas/default.nix b/pkgs/development/python-modules/pandas/default.nix
index 0f4a3542086..7b246a38cb9 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.3";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11j5s6hz29yh3rwa2rjgric0knbhp9shphd4i7hx00xr5wr2xx1j";
+    sha256 = "b39508562ad0bb3f384b0db24da7d68a2608b9ddc85b1d931ccaaa92d5e45273";
   };
 
   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/pandocfilters/default.nix b/pkgs/development/python-modules/pandocfilters/default.nix
index 5b87593e0c6..f688d97c91d 100644
--- a/pkgs/development/python-modules/pandocfilters/default.nix
+++ b/pkgs/development/python-modules/pandocfilters/default.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 }:
 
-buildPythonPackage rec{
+buildPythonPackage rec {
   version = "1.4.2";
   pname = "pandocfilters";
 
diff --git a/pkgs/development/python-modules/panel/default.nix b/pkgs/development/python-modules/panel/default.nix
index fe401d9483e..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.8.3";
+  version = "0.9.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0iz20k7mqn0560r4358yrzvrrfn00h8s6dim7p7y4icpgjw2mjnb";
+    sha256 = "2e86d82bdd5e7664bf49558eedad62b664d5403ec9e422e5ddfcf69e3bd77318";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/papermill/default.nix b/pkgs/development/python-modules/papermill/default.nix
index baa2ae7e449..43c13c2606a 100644
--- a/pkgs/development/python-modules/papermill/default.nix
+++ b/pkgs/development/python-modules/papermill/default.nix
@@ -7,6 +7,7 @@
 , pyyaml
 , nbformat
 , nbconvert
+, nbclient
 , six
 , tqdm
 , jupyter_client
@@ -14,6 +15,7 @@
 , entrypoints
 , tenacity
 , futures
+, black
 , backports_tempfile
 , isPy27
 , pytest
@@ -23,11 +25,11 @@
 
 buildPythonPackage rec {
   pname = "papermill";
-  version = "1.2.1";
+  version = "2.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04dadaabdeb129c7414079f77b9f9a4a08f1322549aa99e20e4a12700ee23509";
+    sha256 = "aadc23f0ae2eaa75868e4359f1ea7d75ff46bc8cb1988651f3f3fd5d4ec44679";
   };
 
   propagatedBuildInputs = [
@@ -37,12 +39,14 @@ buildPythonPackage rec {
     pyyaml
     nbformat
     nbconvert
+    nbclient
     six
     tqdm
     jupyter_client
     requests
     entrypoints
     tenacity
+    black
   ] ++ lib.optionals isPy27 [
     futures
     backports_tempfile
diff --git a/pkgs/development/python-modules/papis/default.nix b/pkgs/development/python-modules/papis/default.nix
index 39b324dd55c..a97c075d30f 100644
--- a/pkgs/development/python-modules/papis/default.nix
+++ b/pkgs/development/python-modules/papis/default.nix
@@ -1,9 +1,9 @@
 { lib, buildPythonPackage, fetchFromGitHub, xdg_utils
 , requests, filetype, pyparsing, configparser, arxiv2bib
 , pyyaml, chardet, beautifulsoup4, colorama, bibtexparser
-, pylibgen, click, python-slugify, habanero, isbnlib
+, click, python-slugify, habanero, isbnlib, typing-extensions
 , prompt_toolkit, pygments, stevedore, tqdm, lxml
-, python-doi, isPy3k, pythonOlder
+, python-doi, isPy3k, pythonOlder, pytestcov
 #, optional, dependencies
 , whoosh, pytest
 , stdenv
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "papis";
-  version = "0.9";
+  version = "0.10";
   disabled = !isPy3k;
 
   # Missing tests on Pypi
@@ -19,14 +19,14 @@ buildPythonPackage rec {
     owner = "papis";
     repo = pname;
     rev = "v${version}";
-    sha256 = "kzA8nlglbjHDPEB7HRAY2dza1Umn/OYUu+ydbA1OJ5Y=";
+    sha256 = "0fmrvxs6ixfwjlp96b69db7fpvyqfy2n3c23kdz8yr0vhnp82l93";
   };
 
   propagatedBuildInputs = [
     requests filetype pyparsing configparser arxiv2bib
     pyyaml chardet beautifulsoup4 colorama bibtexparser
-    pylibgen click python-slugify habanero isbnlib
-    prompt_toolkit pygments
+    click python-slugify habanero isbnlib
+    prompt_toolkit pygments typing-extensions
     stevedore tqdm lxml
     python-doi
     # optional dependencies
@@ -36,6 +36,7 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace setup.py \
       --replace "lxml<=4.3.5" "lxml~=4.3" \
+      --replace "isbnlib>=3.9.1,<3.10" "isbnlib~=3.9" \
       --replace "python-slugify>=1.2.6,<4" "python-slugify"
   '';
 
@@ -43,7 +44,7 @@ buildPythonPackage rec {
   doCheck = !stdenv.isDarwin && pythonOlder "3.8";
 
   checkInputs = ([
-    pytest
+    pytest pytestcov
   ]) ++ [
     xdg_utils
   ];
@@ -54,7 +55,7 @@ buildPythonPackage rec {
   checkPhase = ''
     HOME=$(mktemp -d) pytest papis tests --ignore tests/downloaders \
       -k "not test_get_data and not test_doi_to_data and not test_general and not get_document_url \
-      and not test_validate_arxivid and not test_downloader_getter"
+      and not test_validate_arxivid and not test_downloader_getter and not match"
   '';
 
   meta = {
diff --git a/pkgs/development/python-modules/parameterized/default.nix b/pkgs/development/python-modules/parameterized/default.nix
index fb921bb2938..77529c059af 100644
--- a/pkgs/development/python-modules/parameterized/default.nix
+++ b/pkgs/development/python-modules/parameterized/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "parameterized";
-  version = "0.7.1";
+  version = "0.7.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6a94dbea30c6abde99fd4c2f2042c1bf7f980e48908bf92ead62394f93cf57ed";
+    sha256 = "190f8cc7230eee0b56b30d7f074fd4d165f7c45e6077582d0813c8557e738490";
   };
 
   # Tests require some python3-isms but code works without.
diff --git a/pkgs/development/python-modules/paramiko/default.nix b/pkgs/development/python-modules/paramiko/default.nix
index 2fefbde7448..6c490cb344b 100644
--- a/pkgs/development/python-modules/paramiko/default.nix
+++ b/pkgs/development/python-modules/paramiko/default.nix
@@ -37,7 +37,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 225ee12e51a..7ce02fb96ab 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.0.0";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15dc8466922c8fb1f814d3f7c3f3656191ac17b38fd7cc3350b9bf726e144ebb";
+    sha256 = "faa60c34dfbd080f011c1af0587f932874dcdf602d0336227d540899dbc41b50";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/parsedatetime/default.nix b/pkgs/development/python-modules/parsedatetime/default.nix
index 914d5e2680f..413955c6a36 100644
--- a/pkgs/development/python-modules/parsedatetime/default.nix
+++ b/pkgs/development/python-modules/parsedatetime/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "parsedatetime";
-  version = "2.5";
+  version = "2.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d2e9ddb1e463de871d32088a3f3cea3dc8282b1b2800e081bd0ef86900451667";
+    sha256 = "4cb368fbb18a0b7231f4d76119165451c8d2e35951455dfee97c62a87b04d455";
   };
 
   buildInputs = [ pytest pytestrunner ];
diff --git a/pkgs/development/python-modules/parsel/default.nix b/pkgs/development/python-modules/parsel/default.nix
index daaf845cdf0..319f83f7275 100644
--- a/pkgs/development/python-modules/parsel/default.nix
+++ b/pkgs/development/python-modules/parsel/default.nix
@@ -8,19 +8,20 @@
 , w3lib
 , lxml
 , cssselect
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "parsel";
-  version = "1.5.2";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08v76s6s4li7asnyz8a7gbp9vz522rv5apranyv76mb0lhmjd92d";
+    sha256 = "0yawf9r3r863lwxj0n89i7h3n8xjbsl5b7n6xg76r68scl5yzvvh";
   };
 
   checkInputs = [ pytest pytestrunner ];
-  propagatedBuildInputs = [ functools32 six w3lib lxml cssselect ];
+  propagatedBuildInputs = [ six w3lib lxml cssselect ] ++ lib.optionals isPy27 [ functools32 ];
 
   checkPhase = ''
     py.test
diff --git a/pkgs/development/python-modules/parso/default.nix b/pkgs/development/python-modules/parso/default.nix
index c6a15b8c99f..4406524bdaa 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.5.2";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "55cf25df1a35fd88b878715874d2c4dc1ad3f0eebd1e0266a67e1f55efccfbe1";
+    sha256 = "caba44724b994a8a5e086460bb212abc5a8bc46951bf4a9a1210745953622eb9";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/parsy/default.nix b/pkgs/development/python-modules/parsy/default.nix
index 156da088547..ab4aeba84b6 100644
--- a/pkgs/development/python-modules/parsy/default.nix
+++ b/pkgs/development/python-modules/parsy/default.nix
@@ -21,6 +21,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/python-parsy/parsy";
     description = "Easy-to-use parser combinators, for parsing in pure Python";
     license = [ licenses.mit ];
-    maintainers = with maintainers; [ aepsil0n ];
+    maintainers = with maintainers; [ edibopp ];
   };
 }
diff --git a/pkgs/development/python-modules/paste/default.nix b/pkgs/development/python-modules/paste/default.nix
index a9c86513fe8..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.2.2";
+  version = "3.4.1";
 
   src = fetchPypi {
     pname = "Paste";
     inherit version;
-    sha256 = "15p95br9x7zjy0cckdy6xmhfg61cg49rhi75jd00svrnz234s7qb";
+    sha256 = "1csqn7g9b05hp3fgd82355k4pb5rv12k9x6p2mdw2v01m385171p";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/pastedeploy/default.nix b/pkgs/development/python-modules/pastedeploy/default.nix
index d2ca8d445e4..b82192267d0 100644
--- a/pkgs/development/python-modules/pastedeploy/default.nix
+++ b/pkgs/development/python-modules/pastedeploy/default.nix
@@ -6,12 +6,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.0.1";
+  version = "2.1.0";
   pname = "PasteDeploy";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d423fb9d51fdcf853aa4ff43ac7ec469b643ea19590f67488122d6d0d772350a";
+    sha256 = "e7559878b6e92023041484be9bcb6d767cf4492fc3de7257a5dae76a7cc11a9b";
   };
 
   buildInputs = [ pytestrunner ];
diff --git a/pkgs/development/python-modules/pathspec/default.nix b/pkgs/development/python-modules/pathspec/default.nix
index caef384d279..1cba07ba6bc 100644
--- a/pkgs/development/python-modules/pathspec/default.nix
+++ b/pkgs/development/python-modules/pathspec/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname   = "pathspec";
-  version = "0.6.0";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0p7ab7jx3wgg7xdj2q8yk99cz3xv2a5p1r8q9kfylnvqn34cr1g2";
+    sha256 = "da45173eb3a6f2a5a487efba21f050af2b41948be6ab52b6a1e3ff22bb8b7061";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/pbr/default.nix b/pkgs/development/python-modules/pbr/default.nix
index 4180d1069e4..5e0be5fb62b 100644
--- a/pkgs/development/python-modules/pbr/default.nix
+++ b/pkgs/development/python-modules/pbr/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pbr";
-  version = "5.4.4";
+  version = "5.4.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "139d2625547dbfa5fb0b81daebb39601c478c21956dc57e2e07b74450a8c506b";
+    sha256 = "07f558fece33b05caf857474a366dfcc00562bca13dd8b47b2b3e22d9f9bf55c";
   };
 
   # circular dependencies with fixtures
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/pdf2image/default.nix b/pkgs/development/python-modules/pdf2image/default.nix
index def036d271c..5fc61f64423 100644
--- a/pkgs/development/python-modules/pdf2image/default.nix
+++ b/pkgs/development/python-modules/pdf2image/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pdf2image";
-  version = "1.10.0";
+  version = "1.13.1";
 
   propagatedBuildInputs = [ pillow poppler_utils ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0bpprn5wcz414pqpvwjpd5cc0838shkw2cfvrwfiilhr09bhxbhb";
+    sha256 = "1l3jic687vnji952f4dp66jwiprpxskja9v4ffw3bpr6gxgq4syz";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/pdfminer_six/default.nix b/pkgs/development/python-modules/pdfminer_six/default.nix
index ace2b618ef2..41459a8f4a1 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, fetchpatch }:
+{ stdenv, buildPythonPackage, fetchFromGitHub, isPy3k, cryptography, chardet, nose, sortedcontainers }:
 
 buildPythonPackage rec {
   pname = "pdfminer_six";
-  version = "20200402";
+  version = "20200720";
 
   disabled = !isPy3k;
 
@@ -11,19 +11,10 @@ buildPythonPackage rec {
     owner = "pdfminer";
     repo = "pdfminer.six";
     rev = version;
-    sha256 = "1wl64r3ifpwi7mm5pcxc0ji7w380nxcq3zrv66n95lglm4zqkf26";
+    sha256 = "19cnl1b6mrk9i18a1k4vdl5k85ww8yhfq89w3fxh6rb0fla5d71i";
   };
 
-  patches = [
-    # Add shebang line to scripts. See: https://github.com/pdfminer/pdfminer.six/pull/408
-    (fetchpatch {
-      url = "https://github.com/pdfminer/pdfminer.six/commit/0c2f44b6de064d9a3cea99bde5b8e9c6a525a69c.patch";
-      sha256 = "1vml66grnvg4g26mya24kiyxsz809d4mr7wz8qmawjbn4ss65y21";
-      excludes = [ "CHANGELOG.md" ];
-    })
-  ];
-
-  propagatedBuildInputs = [ chardet pycryptodome sortedcontainers ];
+  propagatedBuildInputs = [ chardet cryptography sortedcontainers ];
 
   checkInputs = [ nose ];
   checkPhase = ''
@@ -37,4 +28,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ psyanticy marsam ];
   };
 }
-
diff --git a/pkgs/development/python-modules/peewee/default.nix b/pkgs/development/python-modules/peewee/default.nix
index 3cc5c3eec49..ee3d08a173c 100644
--- a/pkgs/development/python-modules/peewee/default.nix
+++ b/pkgs/development/python-modules/peewee/default.nix
@@ -10,14 +10,14 @@
 buildPythonPackage rec {
 
   pname = "peewee";
-  version = "3.11.2";
+  version = "3.13.3";
 
   # pypi release does not provide tests
   src = fetchFromGitHub {
     owner = "coleifer";
     repo = pname;
     rev = version;
-    sha256 = "097cafqgk46bf0innwm7xnmsfs6z37hv3alyvrfz6d0iy4scshm5";
+    sha256 = "1r67hxb9m6v0xbnbqfnsw6dahmdr94pf81b4x51jfw6x9sa4izi4";
   };
 
 
@@ -38,6 +38,8 @@ buildPythonPackage rec {
   ] ++ (lib.optional withPostgres psycopg2)
     ++ (lib.optional withMysql mysql-connector);
 
+  doCheck = withPostgres;
+
   meta = with stdenv.lib;{
     description = "a small, expressive orm";
     homepage    = "http://peewee-orm.com";
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 77217d1c38d..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.0.5";
+  version = "2.1.2";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d3078e007315a959989c41cee5cfd63cfeeca21dd3d8295f4bc24199489e9b6c";
+    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
new file mode 100644
index 00000000000..1eb2895068a
--- /dev/null
+++ b/pkgs/development/python-modules/pep517/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, flit-core
+, toml
+, pythonOlder
+, importlib-metadata
+, zipp
+, pytestCheckHook
+, testpath
+, mock
+, pip
+}:
+
+buildPythonPackage rec {
+  pname = "pep517";
+  version = "0.8.2";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "8e6199cf1288d48a0c44057f112acf18aa5ebabbf73faa242f598fbe145ba29e";
+  };
+
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  propagatedBuildInputs = [
+    toml
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata zipp
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    testpath
+    mock
+    pip
+  ];
+
+  preCheck = ''
+    rm pytest.ini # wants flake8
+    rm tests/test_meta.py # wants to run pip
+  '';
+
+  meta = {
+    description = "Wrappers to build Python packages using PEP 517 hooks";
+    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 4b85ba47ab3..5f6ef894d8f 100644
--- a/pkgs/development/python-modules/pep8-naming/default.nix
+++ b/pkgs/development/python-modules/pep8-naming/default.nix
@@ -1,17 +1,21 @@
-{ lib, fetchPypi, buildPythonPackage
-, flake8-polyfill }:
+{ lib, fetchPypi, buildPythonPackage, pythonOlder
+, flake8-polyfill
+, importlib-metadata
+}:
 
 buildPythonPackage rec {
   pname = "pep8-naming";
-  version = "0.10.0";
+  version = "0.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fmzccbmr0jn9ynamdb9ly2ai8qs5qfk8alfgnzr3fbjvpwsbd7k";
+    sha256 = "0937rnk3c2z1jkdmbw9hfm80p5k467q7rqhn6slfiprs4kflgpd1";
   };
 
   propagatedBuildInputs = [
     flake8-polyfill
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/periodictable/default.nix b/pkgs/development/python-modules/periodictable/default.nix
index e3536232680..acbfc06850e 100644
--- a/pkgs/development/python-modules/periodictable/default.nix
+++ b/pkgs/development/python-modules/periodictable/default.nix
@@ -1,6 +1,6 @@
 {lib, fetchPypi, buildPythonPackage, numpy, pyparsing}:
 
-buildPythonPackage rec{
+buildPythonPackage rec {
   pname = "periodictable";
   version = "1.5.2";
 
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/persistent/default.nix b/pkgs/development/python-modules/persistent/default.nix
index 76d5441c048..07ba3ecd1cf 100644
--- a/pkgs/development/python-modules/persistent/default.nix
+++ b/pkgs/development/python-modules/persistent/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "persistent";
-  version = "4.5.1";
+  version = "4.6.4";
 
   nativeBuildInputs = [ sphinx manuel ];
   propagatedBuildInputs = [ zope_interface cffi ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "73862779577cb8637f2b68e7edee9a9b95cf33d0b83cb6e762f0f3fc12897aa6";
+    sha256 = "f83f54355a44cf8ec38c29ce47b378a8c70444e9a745581dbb13d201a24cb546";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/pex/default.nix b/pkgs/development/python-modules/pex/default.nix
index 10001d1d602..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.0.3";
+  version = "2.1.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a8a35e7eb212616b2964d70d8a134d41d16649c943ab206b90c749c005e60999";
+    sha256 = "e1092ae52cfdef41c22d98fa98f9225ac21936a7d096131777ca3a7940fe1b2d";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pexpect/default.nix b/pkgs/development/python-modules/pexpect/default.nix
index 4c287cfc37c..aead62913c7 100644
--- a/pkgs/development/python-modules/pexpect/default.nix
+++ b/pkgs/development/python-modules/pexpect/default.nix
@@ -2,15 +2,16 @@
 , buildPythonPackage
 , fetchPypi
 , ptyprocess
+, isPy3k
 }:
 
-buildPythonPackage rec {
+buildPythonPackage (rec {
   pname = "pexpect";
-  version = "4.7.0";
+  version = "4.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9e2c1fd0e6ee3a49b28f95d4b33bc389c89b20af6a1255906e90ff1262ce62eb";
+    sha256 = "fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c";
   };
 
   # Wants to run pythonin a subprocess
@@ -40,4 +41,8 @@ buildPythonPackage rec {
       any platform that supports the standard Python pty module.
     '';
   };
-}
+# TODO: move into main set, this was to avoid a rebuild
+} // lib.optionalAttrs (!isPy3k ) {
+  # syntax error in _async module, likely intended only for Python 3.
+  dontUsePythonRecompileBytecode = !isPy3k;
+})
diff --git a/pkgs/development/python-modules/pg8000/default.nix b/pkgs/development/python-modules/pg8000/default.nix
index 9131d8adaa2..0212e7ea425 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.13.2";
+  version = "1.15.3";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "eebcb4176a7e407987e525a07454882f611985e0becb2b73f76efb93bbdc0aab";
+    sha256 = "af97353076b8e5d271d91c64c8ca806e2157d11b7862c90ff6f0e23be0fc217d";
   };
 
   propagatedBuildInputs = [ passlib ];
diff --git a/pkgs/development/python-modules/pglast/default.nix b/pkgs/development/python-modules/pglast/default.nix
index 1165157fecc..1668cd94ade 100644
--- a/pkgs/development/python-modules/pglast/default.nix
+++ b/pkgs/development/python-modules/pglast/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , isPy3k
 , pythonOlder
+, setuptools
 , aenum
 , pytest
 , pytestcov
@@ -10,16 +11,16 @@
 
 buildPythonPackage rec {
   pname = "pglast";
-  version = "1.10";
+  version = "1.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a26ba77127b363446955e8a5317b3194defb1c1bb9d2ed5e7d4830fd4f066d97";
+    sha256 = "8463d60b9065daf26e3c0fa6e7515d2a4594847ab417be018858832a475105f1";
   };
 
   disabled = !isPy3k;
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.6") [ aenum ];
+  propagatedBuildInputs = [ setuptools ] ++ lib.optionals (pythonOlder "3.6") [ aenum ];
 
   checkInputs = [ pytest pytestcov ];
 
diff --git a/pkgs/development/python-modules/phik/default.nix b/pkgs/development/python-modules/phik/default.nix
index ecfaf3c9078..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
@@ -15,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "phik";
-  version = "0.9.8";
+  version = "0.10.0";
   format = "wheel";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version format;
     python = "py3";
-    sha256 = "c398452c5c1eea153905666b289c6a153712cf3d58811fa41e2bbbd27a65d678";
+    sha256 = "b745313c5ff9d6a3092eefa97f83fa4dbed178c9ce69161b655e95497cb2f38b";
   };
 
   checkInputs = [
@@ -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 42621493d24..e3e23fa8e88 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.2";
+  version = "8.12.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "000vhxjlgvs0w3vywlgx1kq8wj0wk07ybnsdn1qwbamd06msvbb1";
+    sha256 = "652c418f8e97c8438f227a524ddf8d7d325c4a47e4924ce865b827c24ec3194d";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/piccata/default.nix b/pkgs/development/python-modules/piccata/default.nix
index f1cfb362a80..bbb4fcf1993 100644
--- a/pkgs/development/python-modules/piccata/default.nix
+++ b/pkgs/development/python-modules/piccata/default.nix
@@ -1,16 +1,22 @@
-{ buildPythonPackage, fetchPypi, lib, ipaddress, isPy3k }:
+{ buildPythonPackage, isPy27, fetchFromGitHub, lib, ipaddress }:
 
 buildPythonPackage rec {
   pname = "piccata";
-  version = "1.0.1";
-  disabled = isPy3k;
+  version = "2.0.0";
+  disabled = isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "45f6c98c2ea809d445040888117f99bc3ee843490d86fecc5805ff5ea41508f7";
+  src = fetchFromGitHub {
+    owner = "NordicSemiconductor";
+    repo = pname;
+    rev = version;
+    sha256 = "0pn842jcf2czjks5dphivgp1s7wiifqiv93s0a89h0wxafd6pbsr";
   };
 
-  propagatedBuildInputs = [ ipaddress ];
+  propagatedBuildInputs = [
+    ipaddress
+  ];
+
+  pythonImportsCheck = [ "piccata" ];
 
   meta = {
     description = "Simple CoAP (RFC7252) toolkit";
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 f28ea5b24a6..e3498923856 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.11.2";
+  version = "1.14.0";
   disabled = ! isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03y6xkkqz6rsk23304gg0mn4vgdb0mh1wi9xzrk5vz2ma2wyp8i6";
+    sha256 = "5b371c71b0da42d87371ed39973f07c7eb67d939ca5031f0c1637cfb3a2d79f5";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pillow/6.nix b/pkgs/development/python-modules/pillow/6.nix
new file mode 100644
index 00000000000..64f162c24eb
--- /dev/null
+++ b/pkgs/development/python-modules/pillow/6.nix
@@ -0,0 +1,82 @@
+{ stdenv, buildPythonPackage, fetchPypi, isPyPy
+, olefile
+, freetype, libjpeg, zlib, libtiff, libwebp, tcl, lcms2, tk, libX11
+, openjpeg, libimagequant
+, pytest, pytestrunner, pyroma, numpy
+}:
+
+buildPythonPackage rec {
+  pname = "Pillow";
+  version = "6.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0l5rv8jkdrb5q846v60v03mcq64yrhklidjkgwv6s1pda71g17yv";
+  };
+
+  # Disable imagefont tests, because they don't work well with infinality:
+  # https://github.com/python-pillow/Pillow/issues/1259
+  postPatch = ''
+    rm Tests/test_imagefont.py
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+    python -m pytest -v -x -W always${stdenv.lib.optionalString stdenv.isDarwin " --deselect=Tests/test_file_icns.py::TestFileIcns::test_save --deselect=Tests/test_imagegrab.py::TestImageGrab::test_grab"}
+    runHook postCheck
+  '';
+
+  propagatedBuildInputs = [ olefile ];
+
+  checkInputs = [ pytest pytestrunner pyroma numpy ];
+
+  buildInputs = [
+    freetype libjpeg openjpeg libimagequant zlib libtiff libwebp tcl lcms2 ]
+    ++ stdenv.lib.optionals (isPyPy) [ tk libX11 ];
+
+  # NOTE: we use LCMS_ROOT as WEBP root since there is not other setting for webp.
+  # NOTE: The Pillow install script will, by default, add paths like /usr/lib
+  # and /usr/include to the search paths. This can break things when building
+  # on a non-NixOS system that has some libraries installed that are not
+  # installed in Nix (for example, Arch Linux has jpeg2000 but Nix doesn't
+  # build Pillow with this support). We patch the `disable_platform_guessing`
+  # setting here, instead of passing the `--disable-platform-guessing`
+  # command-line option, since the command-line option doesn't work when we run
+  # tests.
+  preConfigure = let
+    libinclude' = pkg: ''"${pkg.out}/lib", "${pkg.out}/include"'';
+    libinclude = pkg: ''"${pkg.out}/lib", "${pkg.dev}/include"'';
+  in ''
+    sed -i "setup.py" \
+        -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = ${libinclude freetype}|g ;
+            s|^JPEG_ROOT =.*$|JPEG_ROOT = ${libinclude libjpeg}|g ;
+            s|^JPEG2K_ROOT =.*$|JPEG2K_ROOT = ${libinclude openjpeg}|g ;
+            s|^IMAGEQUANT_ROOT =.*$|IMAGEQUANT_ROOT = ${libinclude' libimagequant}|g ;
+            s|^ZLIB_ROOT =.*$|ZLIB_ROOT = ${libinclude zlib}|g ;
+            s|^LCMS_ROOT =.*$|LCMS_ROOT = ${libinclude lcms2}|g ;
+            s|^TIFF_ROOT =.*$|TIFF_ROOT = ${libinclude libtiff}|g ;
+            s|^TCL_ROOT=.*$|TCL_ROOT = ${libinclude' tcl}|g ;
+            s|self\.disable_platform_guessing = None|self.disable_platform_guessing = True|g ;'
+    export LDFLAGS="-L${libwebp}/lib"
+    export CFLAGS="-I${libwebp}/include"
+  ''
+  # Remove impurities
+  + stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace setup.py \
+      --replace '"/Library/Frameworks",' "" \
+      --replace '"/System/Library/Frameworks"' ""
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://python-pillow.github.io/";
+    description = "Fork of The Python Imaging Library (PIL)";
+    longDescription = ''
+      The Python Imaging Library (PIL) adds image processing
+      capabilities to your Python interpreter.  This library
+      supports many file formats, and provides powerful image
+      processing and graphics capabilities.
+    '';
+    license = "http://www.pythonware.com/products/pil/license.htm";
+    maintainers = with maintainers; [ goibhniu prikhi ];
+  };
+}
diff --git a/pkgs/development/python-modules/pillow/default.nix b/pkgs/development/python-modules/pillow/default.nix
index bdc1351be93..cc9a77be782 100644
--- a/pkgs/development/python-modules/pillow/default.nix
+++ b/pkgs/development/python-modules/pillow/default.nix
@@ -1,32 +1,37 @@
 { stdenv, buildPythonPackage, fetchPypi, isPyPy
 , olefile
 , freetype, libjpeg, zlib, libtiff, libwebp, tcl, lcms2, tk, libX11
-, pytestrunner
-, pytest
+, openjpeg, libimagequant
+, pyroma, numpy, pytestCheckHook
+, isPy3k
 }:
+
 buildPythonPackage rec {
   pname = "Pillow";
-  version = "6.2.1";
+  version = "7.1.2";
+
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bf4e972a88f8841d8fdc6db1a75e0f8d763e66e3754b03006cbc3854d89f1cb1";
+    sha256 = "1pdh1zzdwxilvsjg6rnl4q810pc2p2y16q6lx9gzzihb25h9kd50";
   };
 
-  doCheck = !stdenv.isDarwin && !isPyPy;
-
   # Disable imagefont tests, because they don't work well with infinality:
   # https://github.com/python-pillow/Pillow/issues/1259
   postPatch = ''
     rm Tests/test_imagefont.py
   '';
 
+  # Disable darwin tests which require executables: `iconutil` and `screencapture`
+  disabledTests = stdenv.lib.optionals stdenv.isDarwin [ "test_save" "test_grab" "test_grabclipboard" ];
+
   propagatedBuildInputs = [ olefile ];
 
-  checkInputs = [ pytest pytestrunner ];
+  checkInputs = [ pytestCheckHook pyroma numpy ];
 
   buildInputs = [
-    freetype libjpeg zlib libtiff libwebp tcl lcms2 ]
+    freetype libjpeg openjpeg libimagequant zlib libtiff libwebp tcl lcms2 ]
     ++ stdenv.lib.optionals (isPyPy) [ tk libX11 ];
 
   # NOTE: we use LCMS_ROOT as WEBP root since there is not other setting for webp.
@@ -45,6 +50,8 @@ buildPythonPackage rec {
     sed -i "setup.py" \
         -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = ${libinclude freetype}|g ;
             s|^JPEG_ROOT =.*$|JPEG_ROOT = ${libinclude libjpeg}|g ;
+            s|^JPEG2K_ROOT =.*$|JPEG2K_ROOT = ${libinclude openjpeg}|g ;
+            s|^IMAGEQUANT_ROOT =.*$|IMAGEQUANT_ROOT = ${libinclude' libimagequant}|g ;
             s|^ZLIB_ROOT =.*$|ZLIB_ROOT = ${libinclude zlib}|g ;
             s|^LCMS_ROOT =.*$|LCMS_ROOT = ${libinclude lcms2}|g ;
             s|^TIFF_ROOT =.*$|TIFF_ROOT = ${libinclude libtiff}|g ;
@@ -61,8 +68,8 @@ buildPythonPackage rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = "https://python-pillow.github.io/";
-    description = "Fork of The Python Imaging Library (PIL)";
+    homepage = "https://python-pillow.org/";
+    description = "The friendly PIL fork (Python Imaging Library)";
     longDescription = ''
       The Python Imaging Library (PIL) adds image processing
       capabilities to your Python interpreter.  This library
diff --git a/pkgs/development/python-modules/pint/default.nix b/pkgs/development/python-modules/pint/default.nix
index 532d9d0ede8..939eeafd9b9 100644
--- a/pkgs/development/python-modules/pint/default.nix
+++ b/pkgs/development/python-modules/pint/default.nix
@@ -14,12 +14,12 @@
 
 buildPythonPackage rec {
   pname = "pint";
-  version = "0.11";
+  version = "0.14";
 
   src = fetchPypi {
     inherit version;
     pname = "Pint";
-    sha256 = "0kfgnmcs6z9ndhzvwg2xzhpwxgyyagdsdz5dns1jy40fa1q113rh";
+    sha256 = "0wkzb7g20wzpqr3xaqpq96dlfv6irw202icsz81ys8npp7mm194s";
   };
 
   disabled = pythonOlder "3.6";
diff --git a/pkgs/development/python-modules/pip-tools/default.nix b/pkgs/development/python-modules/pip-tools/default.nix
index 02e6edfffce..e9d3159382e 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 = "4.5.1";
+  version = "5.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "166crncd9zrk9wgk9dss9968mx2c1dzj80sjnaqrcmw7a7j30gv9";
+    sha256 = "5b4b6e7b6e66357685c73e856296b4792b2d159ff6074729e250e291834bfd9d";
   };
 
   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 f4107dba8f3..fa566c8951a 100644
--- a/pkgs/development/python-modules/pip/default.nix
+++ b/pkgs/development/python-modules/pip/default.nix
@@ -14,17 +14,21 @@
 
 buildPythonPackage rec {
   pname = "pip";
-  version = "20.0.2";
+  version = "20.1.1";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "pypa";
     repo = pname;
     rev = version;
-    sha256 = "1jj0qa47d7pqn2r379p434hxk14ij2qgmr83x65w9ib9l8092fhg";
+    sha256 = "01wq01ysv0ijcrg8a4mj72zb8al15b8vw8g3ywhxq53kbsyhfxn4";
     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/pipdate/default.nix b/pkgs/development/python-modules/pipdate/default.nix
index 8dff0965579..c0a34d1d8a3 100644
--- a/pkgs/development/python-modules/pipdate/default.nix
+++ b/pkgs/development/python-modules/pipdate/default.nix
@@ -1,25 +1,37 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
+, isPy27
 , appdirs
+, importlib-metadata
 , requests
 , pytest
 }:
 
 buildPythonPackage rec {
   pname = "pipdate";
-  version = "0.3.5";
+  version = "0.5.2";
+  disabled = isPy27; # abandoned
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "240c0f270ddb7470ad7b8c8fba4106e3dbd8817a370624fd8c32cf19155c9547";
+    sha256 = "507065231f2d50b6319d483432cba82aadad78be21b7a2969b5881ed8dee9ab4";
   };
 
   propagatedBuildInputs = [
     appdirs
     requests
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
   ];
 
+  # can be removed when https://github.com/nschloe/pipdate/pull/41 gets merged
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "importlib_metadata" "importlib_metadata; python_version < \"3.8\""
+  '';
+
   checkInputs = [
     pytest
   ];
diff --git a/pkgs/development/python-modules/pkgconfig/default.nix b/pkgs/development/python-modules/pkgconfig/default.nix
index 2e6fb7c4705..05f13e8878a 100644
--- a/pkgs/development/python-modules/pkgconfig/default.nix
+++ b/pkgs/development/python-modules/pkgconfig/default.nix
@@ -4,7 +4,13 @@ buildPythonPackage rec {
   pname = "pkgconfig";
   version = "1.5.1";
 
-  setupHook = pkgconfig.setupHook;
+  inherit (pkgconfig)
+    setupHooks
+    wrapperName
+    suffixSalt
+    targetPrefix
+    baseBinName
+  ;
 
   src = fetchPypi {
     inherit pname version;
@@ -21,7 +27,7 @@ buildPythonPackage rec {
 
   patches = [ ./executable.patch ];
   postPatch = ''
-    substituteInPlace pkgconfig/pkgconfig.py --replace 'PKG_CONFIG_EXE = "pkg-config"' 'PKG_CONFIG_EXE = "${pkgconfig}/bin/pkg-config"'
+    substituteInPlace pkgconfig/pkgconfig.py --replace 'PKG_CONFIG_EXE = "pkg-config"' 'PKG_CONFIG_EXE = "${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config"'
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pkuseg/default.nix b/pkgs/development/python-modules/pkuseg/default.nix
new file mode 100644
index 00000000000..3b1c2bd5bce
--- /dev/null
+++ b/pkgs/development/python-modules/pkuseg/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, cython
+, numpy
+}:
+
+buildPythonPackage rec {
+  pname = "pkuseg";
+  version = "0.0.25";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "148yp0l7h8cflxag62pc1iwj5b5liyljnaxwfjaiqwl96vwjn0fx";
+  };
+
+  # Does not seem to have actual tests, but unittest discover
+  # recognizes some non-tests as tests and fails.
+  doCheck = false;
+
+  nativeBuildInputs = [ cython ];
+
+  propagatedBuildInputs = [ numpy ];
+
+  pythonImportsCheck = [ "pkuseg" ];
+
+  meta = with stdenv.lib; {
+    description = "Toolkit for multi-domain Chinese word segmentation";
+    homepage = "https://github.com/lancopku/pkuseg-python";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
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/plac/default.nix b/pkgs/development/python-modules/plac/default.nix
index 789f1ca1ff2..dbcd7f21300 100644
--- a/pkgs/development/python-modules/plac/default.nix
+++ b/pkgs/development/python-modules/plac/default.nix
@@ -5,11 +5,11 @@
 }:
 buildPythonPackage rec {
   pname = "plac";
-  version = "1.1.3";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "398cb947c60c4c25e275e1f1dadf027e7096858fb260b8ece3b33bcff90d985f";
+    sha256 = "ca03587234e5bdd2a3fa96f19a04a01ebb5b0cd66d48ecb5a54d42bc9b287320";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/plaid-python/default.nix b/pkgs/development/python-modules/plaid-python/default.nix
index a41265165c7..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 = "3.4.0";
+  version = "6.0.0";
   pname = "plaid-python";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bbfad84b8c827a14bc5b0ab93e1e5c7117908e5fa4cdecaa44a037298a20b7de";
+    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/playsound/default.nix b/pkgs/development/python-modules/playsound/default.nix
new file mode 100644
index 00000000000..589a8f3db81
--- /dev/null
+++ b/pkgs/development/python-modules/playsound/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "playsound";
+  version = "1.2.2";
+
+  src = fetchFromGitHub {
+    owner = "TaylorSMarks";
+    repo = "playsound";
+    rev = "907f1fe73375a2156f7e0900c4b42c0a60fa1d00";
+    sha256 = "1fh3m115h0c57lj2pfhhqhmsh5awzblb7csi1xc5a6f6slhl059k";
+  };
+
+  doCheck = false;
+
+  pythonImportsCheck = [ "playsound" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/TaylorSMarks/playsound";
+    description = "Pure Python, cross platform, single function module with no dependencies for playing sounds";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ luc65r ];
+  };
+}
diff --git a/pkgs/development/python-modules/plexapi/default.nix b/pkgs/development/python-modules/plexapi/default.nix
index ed95de9ffde..c41aaf6b4d3 100644
--- a/pkgs/development/python-modules/plexapi/default.nix
+++ b/pkgs/development/python-modules/plexapi/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "PlexAPI";
-  version = "3.2.0";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "pkkid";
     repo = "python-plexapi";
     rev = version;
-    sha256 = "1rzy018zcsws56mcghnphhzwj650pwj7qg6nh9z1kjvgwwjfmghf";
+    sha256 = "1lzp3367hmcpqwbkp4ckdv6hv37knwnwya88jicwl1smznpmjdfv";
   };
 
   propagatedBuildInputs = [ requests tqdm websocket_client ];
diff --git a/pkgs/development/python-modules/plone-testing/default.nix b/pkgs/development/python-modules/plone-testing/default.nix
index 45e22a8788e..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 = "7.0.3";
+  version = "8.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "160f130f641578fbede2e47686f1b58179efa9ff98ccdd1ad198b5d0c7e02474";
+    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 2d14488c4ee..a9a46bfc9e2 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.6.0";
+  version = "4.8.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0br996lqbyq1prq9hhrzkgpicz5fgvxamzjrrpms20a2y1alkwv1";
+    sha256 = "ce55e1a9669ea7455574ddbfe2fb52636eb63a6c29387ee0c0a929ed2325f916";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/plyfile/default.nix b/pkgs/development/python-modules/plyfile/default.nix
index 08a562c0133..b0936a50baa 100644
--- a/pkgs/development/python-modules/plyfile/default.nix
+++ b/pkgs/development/python-modules/plyfile/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "plyfile";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b119705dec157314cf504e9d2d6f7d5a76606495a778b673c2864ac92895dced";
+    sha256 = "59a25845d00a51098e6c9147c3c96ce89ad97395e256a4fabb4aed7cf7db5541";
   };
 
   propagatedBuildInputs = [ numpy ];
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 46be9bc92a2..a81e1e52aea 100644
--- a/pkgs/development/python-modules/poetry/default.nix
+++ b/pkgs/development/python-modules/poetry/default.nix
@@ -1,74 +1,74 @@
-{ lib, buildPythonPackage, fetchPypi, callPackage
-, isPy27
-, pythonOlder
-, cleo
-, requests
-, cachy
-, requests-toolbelt
-, pyrsistent
-, pyparsing
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27, pythonOlder
 , cachecontrol
-, pkginfo
-, html5lib
-, shellingham
-, subprocess32
-, tomlkit
-, typing
-, pathlib2
-, virtualenv
-, functools32
+, cachy
+, cleo
 , clikit
-, keyring
-, pexpect
+, html5lib
+, httpretty
 , importlib-metadata
-, pytest
-, jsonschema
 , intreehooks
+, jsonschema
+, keyring
 , lockfile
+, pexpect
+, pkginfo
+, pygments
+, pyparsing
+, pyrsistent
+, pytestCheckHook
+, pytestcov
+, pytest-mock
+, requests
+, requests-toolbelt
+, shellingham
+, tomlkit
 }:
 
-let
-  glob2 = callPackage ./glob2.nix { };
-
-in buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "poetry";
-  version = "1.0.5";
+  version = "1.0.10";
   format = "pyproject";
+  disabled = isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "02h387k0xssvv78yy82pcpknpq4w5ym2in1zl8cg9r5wljl5w6cf";
+  src = fetchFromGitHub {
+    owner = "python-poetry";
+    repo = pname;
+    rev = version;
+    sha256 = "00qfzjjs6clh93gfl1px3ma9km8qxl3f4z819nmyl58zc8ni3zyv";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-     --replace "pyrsistent = \"^0.14.2\"" "pyrsistent = \"^0.15.0\"" \
-     --replace "requests-toolbelt = \"^0.8.0\"" "requests-toolbelt = \"^0.9.0\"" \
+     --replace "pyrsistent = \"^0.14.2\"" "pyrsistent = \"^0.16.0\"" \
+     --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"}'
+       'importlib-metadata = {version = ">=1.3,<2", python = "<3.8"}' \
+     --replace "tomlkit = \"^0.5.11\"" "tomlkit = \"^0.6.0\"" \
+     --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\""
   '';
 
   nativeBuildInputs = [ intreehooks ];
 
   propagatedBuildInputs = [
+    cachecontrol
+    cachy
     cleo
     clikit
-    requests
-    cachy
-    requests-toolbelt
+    html5lib
     jsonschema
-    pyrsistent
-    pyparsing
-    cachecontrol
+    keyring
+    lockfile
+    pexpect
     pkginfo
-    html5lib
+    pyparsing
+    pyrsistent
+    requests
+    requests-toolbelt
     shellingham
     tomlkit
-    pexpect
-    keyring
-    lockfile
-  ] ++ lib.optionals isPy27 [ typing pathlib2 glob2 virtualenv functools32 subprocess32 ]
-    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   postInstall = ''
     mkdir -p "$out/share/bash-completion/completions"
@@ -79,12 +79,18 @@ in buildPythonPackage rec {
     "$out/bin/poetry" completions fish > "$out/share/fish/vendor_completions.d/poetry.fish"
   '';
 
-  # No tests in Pypi tarball
-  doCheck = false;
-  checkInputs = [ pytest ];
-  checkPhase = ''
-    pytest tests
-  '';
+  checkInputs = [ pytestCheckHook httpretty pytest-mock pygments pytestcov ];
+  preCheck = "export HOME=$TMPDIR";
+  disabledTests = [
+    # touches network
+    "git"
+    "solver"
+    "load"
+    "vcs"
+    "prereleases_if_they_are_compatible"
+    # requires git history to work correctly
+    "default_with_excluded_data"
+  ];
 
   meta = with lib; {
     homepage = "https://python-poetry.org/";
diff --git a/pkgs/development/python-modules/poetry/glob2.nix b/pkgs/development/python-modules/poetry/glob2.nix
deleted file mode 100644
index ca7d203492d..00000000000
--- a/pkgs/development/python-modules/poetry/glob2.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ buildPythonPackage, fetchPypi }:
-
-buildPythonPackage rec {
-  pname = "glob2";
-  version = "0.6";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1miyz0pjyji4gqrzl04xsxcylk3h2v9fvi7hsg221y11zy3adc7m";
-  };
-}
diff --git a/pkgs/development/python-modules/ponywhoosh/default.nix b/pkgs/development/python-modules/ponywhoosh/default.nix
new file mode 100644
index 00000000000..589be17b016
--- /dev/null
+++ b/pkgs/development/python-modules/ponywhoosh/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi, pony, whoosh }:
+
+buildPythonPackage rec {
+  pname = "ponywhoosh";
+  version = "1.7.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1mggj9d265hra4z67qyla686qvl0cf79655cszi136gh9hqlibv9";
+  };
+
+  propagatedBuildInputs = [
+    pony
+    whoosh
+  ];
+
+  meta = with lib; {
+    homepage = "https://pythonhosted.org/ponywhoosh/";
+    description = "Make your database over PonyORM searchable";
+    license = licenses.mit;
+    maintainers = with maintainers; [ alexarice ];
+  };
+}
diff --git a/pkgs/development/python-modules/portalocker/default.nix b/pkgs/development/python-modules/portalocker/default.nix
index 82ac16e4027..d79f6201b6f 100644
--- a/pkgs/development/python-modules/portalocker/default.nix
+++ b/pkgs/development/python-modules/portalocker/default.nix
@@ -1,31 +1,34 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, fetchpatch
+{ lib, buildPythonPackage, fetchPypi, fetchpatch
 , sphinx
-, flake8
 , pytest
 , pytestcov
-, pytest-flakes
-, pytestpep8
+, pytest-flake8
 }:
 
 buildPythonPackage rec {
-  version = "1.5.2";
+  version = "1.7.0";
   pname = "portalocker";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17rfgmgwyxyng8q7bvn369cncadqws2wgkg45q6v8337wm9jxins";
+    sha256 = "1p32v16va780mjjdbyp3v702aqg5s618khlila7bdyynis1n84q9";
   };
 
+  patches = [
+    # remove pytest-flakes from test dependencies
+    # merged into master, remove > 1.7.0 release
+    (fetchpatch {
+      url = "https://github.com/WoLpH/portalocker/commit/42e4c0a16bbc987c7e33b5cbc7676a63a164ceb5.patch";
+      sha256 = "01mlr41nhh7mh3qhqy5fhp3br4nps745iy4ns9fjcnm5xhabg5rr";
+      excludes = [ "pytest.ini" ];
+    })
+  ];
+
   checkInputs = [
     sphinx
-    flake8
     pytest
     pytestcov
-    pytest-flakes
-    pytestpep8
+    pytest-flake8
   ];
 
   meta = with lib; {
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..1227a674988
--- /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.1";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "9e2c0195488263902ebc9da8df6c82bebe4ee32c79d9ecd0cdc2945afbf7ad32";
+  };
+
+  # 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 efa12433c8a..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.17.0";
+  version = "0.19.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a128d0d5f639a6a19eefedd787a6ce9603634c3908927b1215653e4a8375195f";
+    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 71f34b6ec4d..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.0.1";
+  version = "1.5.0";
+  disabled = isPy27; # see https://github.com/praw-dev/prawcore/pull/101
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ab5558efb438aa73fc66c4178bfc809194dea3ce2addf4dec873de7e2fd2824e";
+    sha256 = "1f1eafc8a65d671f9892354f73142014fbb5d3a9ee621568c662d0a354e0578b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pre-commit/default.nix b/pkgs/development/python-modules/pre-commit/default.nix
index 27673b15111..c0f536480da 100644
--- a/pkgs/development/python-modules/pre-commit/default.nix
+++ b/pkgs/development/python-modules/pre-commit/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchPypi, buildPythonApplication, pythonOlder
+{ lib, fetchPypi, buildPythonPackage, pythonOlder
 , aspy-yaml
 , cached-property
 , cfgv
@@ -6,6 +6,7 @@
 , identify
 , importlib-metadata
 , importlib-resources
+, isPy27
 , nodeenv
 , python
 , six
@@ -13,18 +14,20 @@
 , virtualenv
 }:
 
-buildPythonApplication rec {
+buildPythonPackage rec {
   pname = "pre-commit";
-  version = "1.21.0";
+  version = "2.6.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit version;
     pname = "pre_commit";
-    sha256 = "0l5qg1cw4a0670m96s0ryy5mqz5aslfrrnwpriqgmrnsgdixhj4g";
+    sha256 = "05d9635v0yzrj2848m2hn9axbvds0dymv49rlyj238v3vlzncmqn";
   };
 
   patches = [
     ./hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch
+    ./languages-use-the-hardcoded-path-to-python-binaries.patch
   ];
 
   propagatedBuildInputs = [
@@ -36,9 +39,8 @@ buildPythonApplication rec {
     six
     toml
     virtualenv
-    importlib-metadata
-  ] ++ lib.optional (pythonOlder "3.7") importlib-resources
-    ++ lib.optional (pythonOlder "3.2") futures;
+  ] ++ lib.optional (pythonOlder "3.8") importlib-metadata
+    ++ lib.optional (pythonOlder "3.7") importlib-resources;
 
   # slow and impure
   doCheck = false;
@@ -46,6 +48,10 @@ buildPythonApplication rec {
   preFixup = ''
     substituteInPlace $out/${python.sitePackages}/pre_commit/resources/hook-tmpl \
       --subst-var-by pre-commit $out
+    substituteInPlace $out/${python.sitePackages}/pre_commit/languages/python.py \
+      --subst-var-by virtualenv ${virtualenv}
+    substituteInPlace $out/${python.sitePackages}/pre_commit/languages/node.py \
+      --subst-var-by nodeenv ${nodeenv}
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch b/pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch
index 23115bbbd20..4c1b6421e09 100644
--- a/pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch
+++ b/pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch
@@ -1,25 +1,15 @@
-From d9e6999e32112602ec276634cb004eda3ca64ec3 Mon Sep 17 00:00:00 2001
-From: "Wael M. Nasreddine" <wael.nasreddine@gmail.com>
-Date: Mon, 13 Jan 2020 11:04:58 -0800
-Subject: [PATCH] hook-tmpl: use the hardcoded path to pre-commit, if found
-
----
- pre_commit/resources/hook-tmpl | 2 ++
- 1 file changed, 2 insertions(+)
-
 diff --git a/pre_commit/resources/hook-tmpl b/pre_commit/resources/hook-tmpl
-index 213d16e..3a99211 100755
+index 299144e..6d12543 100755
 --- a/pre_commit/resources/hook-tmpl
 +++ b/pre_commit/resources/hook-tmpl
-@@ -107,6 +107,8 @@ def _exe() -> Tuple[str, ...]:
-             except OSError:
-                 pass
- 
-+    if os.path.isfile('@pre-commit@/bin/pre-commit') and os.access('@pre-commit@/bin/pre-commit', os.X_OK):
-+        return ('@pre-commit@/bin/pre-commit', 'run')
-     if distutils.spawn.find_executable('pre-commit'):
-         return ('pre-commit', 'run')
- 
--- 
-2.23.1
+@@ -25,8 +25,8 @@ ARGS.append('--')
+ ARGS.extend(sys.argv[1:])
 
+ DNE = '`pre-commit` not found.  Did you forget to activate your virtualenv?'
+-if os.access(INSTALL_PYTHON, os.X_OK):
+-    CMD = [INSTALL_PYTHON, '-mpre_commit']
++if os.access('@pre-commit@/bin/pre-commit', os.X_OK):
++    CMD = ['@pre-commit@/bin/pre-commit']
+ elif which('pre-commit'):
+     CMD = ['pre-commit']
+ else:
diff --git a/pkgs/development/python-modules/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch b/pkgs/development/python-modules/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch
new file mode 100644
index 00000000000..c1bead48b34
--- /dev/null
+++ b/pkgs/development/python-modules/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch
@@ -0,0 +1,26 @@
+diff --git a/pre_commit/languages/node.py b/pre_commit/languages/node.py
+index 26f4919..4885ec1 100644
+--- a/pre_commit/languages/node.py
++++ b/pre_commit/languages/node.py
+@@ -82,7 +82,7 @@ def install_environment(
+         envdir = fr'\\?\{os.path.normpath(envdir)}'
+     with clean_path_on_failure(envdir):
+         cmd = [
+-            sys.executable, '-mnodeenv', '--prebuilt', '--clean-src', envdir,
++            '@nodeenv@/bin/nodeenv', '--prebuilt', '--clean-src', envdir,
+         ]
+         if version != C.DEFAULT:
+             cmd.extend(['-n', version])
+diff --git a/pre_commit/languages/python.py b/pre_commit/languages/python.py
+index e17376e..0c1d2ab 100644
+--- a/pre_commit/languages/python.py
++++ b/pre_commit/languages/python.py
+@@ -204,7 +204,7 @@ def install_environment(
+ ) -> None:
+     envdir = prefix.path(helpers.environment_dir(ENVIRONMENT_DIR, version))
+     python = norm_version(version)
+-    venv_cmd = (sys.executable, '-mvirtualenv', envdir, '-p', python)
++    venv_cmd = ('@virtualenv@/bin/virtualenv', envdir, '-p', python)
+     install_cmd = ('python', '-mpip', 'install', '.', *additional_dependencies)
+
+     with clean_path_on_failure(envdir):
diff --git a/pkgs/development/python-modules/premailer/default.nix b/pkgs/development/python-modules/premailer/default.nix
index 184f01c4592..ec0e959c7a5 100644
--- a/pkgs/development/python-modules/premailer/default.nix
+++ b/pkgs/development/python-modules/premailer/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "premailer";
-  version = "3.6.1";
+  version = "3.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08pshx7a110k4ll20x0xhpvyn3kkipkrbgxjjn7ncdxs54ihdhgw";
+    sha256 = "5eec9603e84cee583a390de69c75192e50d76e38ef0292b027bd64923766aca7";
   };
 
   buildInputs = [ mock nose ];
diff --git a/pkgs/development/python-modules/privacyidea/default.nix b/pkgs/development/python-modules/privacyidea/default.nix
new file mode 100644
index 00000000000..84cc4530b34
--- /dev/null
+++ b/pkgs/development/python-modules/privacyidea/default.nix
@@ -0,0 +1,51 @@
+{ lib, buildPythonPackage, fetchFromGitHub, cacert, openssl, python
+
+, cryptography, pyrad, pymysql, python-dateutil, flask-versioned, flask_script
+, defusedxml, croniter, flask_migrate, pyjwt, configobj, sqlsoup, pillow
+, python-gnupg, passlib, pyopenssl, beautifulsoup4, smpplib, flask-babel
+, ldap3, huey, pyyaml, qrcode, oauth2client, requests, lxml, cbor2, psycopg2
+
+, mock, pytest, responses, testfixtures
+}:
+
+buildPythonPackage rec {
+  pname = "privacyIDEA";
+  version = "3.3";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "188ki924dig899wlih45xfsm0s7mjkya56vii26bg02h91izrb4b";
+  };
+
+  propagatedBuildInputs = [
+    cryptography pyrad pymysql python-dateutil flask-versioned flask_script
+    defusedxml croniter flask_migrate pyjwt configobj sqlsoup pillow
+    python-gnupg passlib pyopenssl beautifulsoup4 smpplib flask-babel
+    ldap3 huey pyyaml qrcode oauth2client requests lxml cbor2 psycopg2
+  ];
+
+  checkInputs = [ openssl mock pytest responses testfixtures ];
+  # issues with hardware token tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "privacyidea" ];
+
+  postPatch = ''
+    substituteInPlace privacyidea/lib/resolvers/LDAPIdResolver.py --replace \
+      "/etc/privacyidea/ldap-ca.crt" \
+      "${cacert}/etc/ssl/certs/ca-bundle.crt"
+  '';
+
+  postInstall = ''
+    rm -rf $out/${python.sitePackages}/tests
+  '';
+
+  meta = with lib; {
+    description = "Multi factor authentication system (2FA, MFA, OTP Server)";
+    license = licenses.agpl3Plus;
+    homepage = "http://www.privacyidea.org";
+    maintainers = [ maintainers.globin ];
+  };
+}
diff --git a/pkgs/development/python-modules/privacyidea/ldap-proxy.nix b/pkgs/development/python-modules/privacyidea/ldap-proxy.nix
new file mode 100644
index 00000000000..ec87186a4fd
--- /dev/null
+++ b/pkgs/development/python-modules/privacyidea/ldap-proxy.nix
@@ -0,0 +1,27 @@
+{ lib, buildPythonPackage, fetchFromGitHub, twisted, ldaptor, configobj }:
+
+buildPythonPackage rec {
+  pname = "privacyidea-ldap-proxy";
+  version = "0.6.1";
+
+  src = fetchFromGitHub {
+    owner = "privacyidea";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1kc1n9wr1a66xd5zvl6dq78xnkqkn5574jpzashc99pvm62dr24j";
+  };
+
+  propagatedBuildInputs = [ twisted ldaptor configobj ];
+
+  # python 2 zope.interface test import path issues
+  doCheck = false;
+
+  pythonImportsCheck = [ "pi_ldapproxy" ];
+
+  meta = with lib; {
+    description = "LDAP Proxy to intercept LDAP binds and authenticate against privacyIDEA";
+    homepage = "https://github.com/privacyidea/privacyidea-ldap-proxy";
+    license = licenses.agpl3;
+    maintainers = [ maintainers.globin ];
+  };
+}
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/progressbar2/default.nix b/pkgs/development/python-modules/progressbar2/default.nix
index 69200d54571..5136cf20104 100644
--- a/pkgs/development/python-modules/progressbar2/default.nix
+++ b/pkgs/development/python-modules/progressbar2/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "progressbar2";
-  version = "3.47.0";
+  version = "3.51.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7538d02045a1fd3aa2b2834bfda463da8755bd3ff050edc6c5ddff3bc616215f";
+    sha256 = "0dnfw8mdrz78gck4ibnv64cinbp5f7kw349wjgpwv53z6p7jiwhk";
   };
 
   propagatedBuildInputs = [ python-utils ];
@@ -29,10 +29,10 @@ buildPythonPackage rec {
     pytest sphinx flake8 pytestpep8 pytest-flakes pytestcov
     pytestcache freezegun
   ];
-  # ignore tests on the nix wrapped setup.py and don't flake .eggs directory
+  # ignore tests on the nix wrapped setup.py
   checkPhase = ''
     runHook preCheck
-    ${python.interpreter} setup.py test --addopts "--ignore=.eggs"
+    ${python.interpreter} setup.py test
     runHook postCheck
   '';
 
@@ -40,6 +40,6 @@ buildPythonPackage rec {
     homepage = "https://progressbar-2.readthedocs.io/en/latest/";
     description = "Text progressbar library for python";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ashgillman ];
+    maintainers = with maintainers; [ ashgillman turion ];
   };
 }
diff --git a/pkgs/development/python-modules/prometheus_client/default.nix b/pkgs/development/python-modules/prometheus_client/default.nix
index 2c6bef0c201..8f608666d72 100644
--- a/pkgs/development/python-modules/prometheus_client/default.nix
+++ b/pkgs/development/python-modules/prometheus_client/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "prometheus_client";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "71cd24a2b3eb335cb800c7159f423df1bd4dcd5171b234be15e3f31ec9f622da";
+    sha256 = "c6e6b706833a6bd1fd51711299edee907857be10ece535126a158f911ee80915";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/prompt_toolkit/default.nix b/pkgs/development/python-modules/prompt_toolkit/default.nix
index 6932cd515c7..9d969b5d341 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.4";
+  version = "3.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10wpsbl1mmnvm8q63zs40633kbq93bidx4vz1p2q92w8ijqb3rpb";
+    sha256 = "563d1a4140b63ff9dd587bda9557cffb2fe73650205ab6f4383092fb882e7dc8";
   };
   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/psd-tools/default.nix b/pkgs/development/python-modules/psd-tools/default.nix
index c66e1e2b40e..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.8.35";
+  version = "1.9.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "379211cf98ebafbe129088a5c92f575e1ccd7987c40bad9520c209e51008df00";
+    sha256 = "23b545d91c784fcaf27fbf4c69abe21ac1ea10d25b5b8c61dcd8f0e03ccff786";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/psutil/default.nix b/pkgs/development/python-modules/psutil/default.nix
index 8e479dfaca2..89797c4802c 100644
--- a/pkgs/development/python-modules/psutil/default.nix
+++ b/pkgs/development/python-modules/psutil/default.nix
@@ -3,22 +3,23 @@
 , 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;
+  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
diff --git a/pkgs/development/python-modules/psycopg2/default.nix b/pkgs/development/python-modules/psycopg2/default.nix
index 2c78a66d86a..5e1f578d901 100644
--- a/pkgs/development/python-modules/psycopg2/default.nix
+++ b/pkgs/development/python-modules/psycopg2/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "psycopg2";
-  version = "2.8.4";
+  version = "2.8.5";
 
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f898e5cc0a662a9e12bde6f931263a1bbd350cfb18e1d5336a12927851825bb6";
+    sha256 = "f7d46240f7a1ae1dd95aab38bd74f7428d46531f69219954266d669da60c0818";
   };
 
   buildInputs = lib.optional stdenv.isDarwin openssl;
diff --git a/pkgs/development/python-modules/ptpython/default.nix b/pkgs/development/python-modules/ptpython/default.nix
index f5a37dda630..47fd2b33458 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.1";
+  version = "3.0.3";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a69cce0aa04f0075e2e65287a0ee2f3a928c0591b301ce22aa2e498af1ebcb4b";
+    sha256 = "9ac4e4047ca3a03133702a353a93cf56ca1ec1162bc7ecaff087a91c03e3827b";
   };
 
-  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 049d8720f45..ab6fda9d3d4 100644
--- a/pkgs/development/python-modules/pulp/default.nix
+++ b/pkgs/development/python-modules/pulp/default.nix
@@ -1,18 +1,23 @@
-{ stdenv, fetchPypi, buildPythonPackage, pyparsing }:
+{ stdenv
+, fetchPypi
+, buildPythonPackage
+, pyparsing
+}:
 
 buildPythonPackage rec {
   pname = "PuLP";
-  version = "2.0";
+  version = "2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fb0b0e8073aa82f3459c4241b9625e0ccd26c0838ad8253c6bc67e041901b765";
+    sha256 = "06swbi7wygh7y0kxc85q1pdhzk662375d9a5jnahgr76hkwwkybn";
   };
 
   propagatedBuildInputs = [ pyparsing ];
 
   # only one test that requires an extra
   doCheck = false;
+  pythonImportsCheck = [ "pulp" ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/coin-or/pulp";
diff --git a/pkgs/development/python-modules/pulsectl/default.nix b/pkgs/development/python-modules/pulsectl/default.nix
index dec80abda15..2a66357f849 100644
--- a/pkgs/development/python-modules/pulsectl/default.nix
+++ b/pkgs/development/python-modules/pulsectl/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pulsectl";
-  version = "20.4.3";
+  version = "20.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1m5fz740r4rk2i8qsnblsn16hai7givqxbx21swhpflan1yzvzzm";
+    sha256 = "39b0a0e7974a7d6468d826a838822f78b00ac9c3803f0d7bfa9b1cad08ee22db";
   };
 
   patches = [
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 e03543fb520..f9d97c21105 100644
--- a/pkgs/development/python-modules/pvlib/default.nix
+++ b/pkgs/development/python-modules/pvlib/default.nix
@@ -1,29 +1,49 @@
-{ 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";
-  version = "0.7.1";
+  version = "0.7.2";
 
   # Support for Python <3.5 dropped in 0.6.3 on June 1, 2019.
   disabled = pythonOlder "3.5";
 
   src = fetchPypi{
     inherit pname version;
-    sha256 = "1kqwnkbkdv4m3r68pd39va6wqvhr34a6hx4d6q5lfkibclg35c3d";
+    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 72ab1b5c405..c7aae24f1dd 100644
--- a/pkgs/development/python-modules/pwntools/default.nix
+++ b/pkgs/development/python-modules/pwntools/default.nix
@@ -1,19 +1,60 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
-, Mako, packaging, pysocks, pygments, ROPGadget
-, capstone, paramiko, pip, psutil
-, pyelftools, pyserial, dateutil
-, requests, tox, unicorn, intervaltree, fetchpatch }:
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, Mako
+, packaging
+, pysocks
+, pygments
+, ROPGadget
+, capstone
+, paramiko
+, pip
+, psutil
+, pyelftools
+, pyserial
+, dateutil
+, requests
+, tox
+, unicorn
+, intervaltree
+, fetchpatch
+}:
 
 buildPythonPackage rec {
-  version = "4.0.0b0";
+  version = "4.2.1";
   pname = "pwntools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11f7x7rjad1nawn3r524lzxgz3nk89c6s3xycrscn3n86hh0zgid";
+    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
 
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-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..edc35bb134e 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.8.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa";
+    sha256 = "f3b3a4c36512a4c4f024041ab51866f11761cc169670204b235f6b20523d4e6b";
   };
 
   # Circular dependency on pytest
diff --git a/pkgs/development/python-modules/py3status/default.nix b/pkgs/development/python-modules/py3status/default.nix
index fda91e8a305..a99dacf6204 100644
--- a/pkgs/development/python-modules/py3status/default.nix
+++ b/pkgs/development/python-modules/py3status/default.nix
@@ -24,11 +24,11 @@
 
 buildPythonPackage rec {
   pname = "py3status";
-  version = "3.22";
+  version = "3.28";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5e9884dde128e1bd82f8746e8f8806c8d7d89d95ce9ed7bacf7cc5fdb094aa21";
+    sha256 = "103c63f43ddfd86e5a3f0bebb34b0f2eaaf6dbd58281d25c8a16937eb8e7f194";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/py4j/default.nix b/pkgs/development/python-modules/py4j/default.nix
index 3724687463c..db117e04d12 100644
--- a/pkgs/development/python-modules/py4j/default.nix
+++ b/pkgs/development/python-modules/py4j/default.nix
@@ -3,12 +3,11 @@
 buildPythonPackage rec {
   pname = "py4j";
 
-  version = "0.10.8.1";
+  version = "0.10.9";
 
   src = fetchPypi {
     inherit pname version;
-    extension= "zip";
-    sha256 = "0x52rjn2s44mbpk9p497p3yba9xnpl6hcaiacklppwqcd8avnac3";
+    sha256 = "36ec57f43ff8ced260a18aa9a4e46c3500a730cac8860e259cbaa546c2b9db2f";
   };
 
   # No tests in archive
diff --git a/pkgs/development/python-modules/pyGithub/default.nix b/pkgs/development/python-modules/pyGithub/default.nix
index cf0784024f1..c82f18d377d 100644
--- a/pkgs/development/python-modules/pyGithub/default.nix
+++ b/pkgs/development/python-modules/pyGithub/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "PyGithub";
     repo = "PyGithub";
     rev = "v${version}";
-    hash = "sha256-8uQCFiw1ByPOX8ZRUlSLYPIibjmd19r/JtTnmQdz5cM=";
+    sha256 = "1hz5fc3rkryl4vzxmmwx75p25wk0ida54lf6bz7261rm5hb05r7j";
   };
 
   checkInputs = [ httpretty parameterized pytestCheckHook ];
diff --git a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
index e07db8ec726..9434944a1f7 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.6.7";
+  version = "3.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0spn3gjbppyl4b7kqnc8g30qss72dcb1d6ap2bizyam5wn591z8f";
+    sha256 = "1jbd2npa942f3bqwpvc6kb3b9jxk7ksczd4grrdimfb6w7binzv4";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/py_scrypt/default.nix b/pkgs/development/python-modules/py_scrypt/default.nix
index 056a0299670..31e56e6c0ae 100644
--- a/pkgs/development/python-modules/py_scrypt/default.nix
+++ b/pkgs/development/python-modules/py_scrypt/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "scrypt";
-  version = "0.8.13";
+  version = "0.8.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1377b1adc98c4152694bf5d7e93b41a9d2e9060af69b747cfad8c93ac426f9ea";
+    sha256 = "0643fwj8vl96bsl30jx091zicmwyi0gglza66xqhqizqyqjq0ag6";
   };
 
   buildInputs = [ openssl ];
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   meta = with stdenv.lib; {
     description = "Bindings for scrypt key derivation function library";
     homepage = "https://pypi.python.org/pypi/scrypt";
-    maintainers = with maintainers; [ asymmetric ];
+    maintainers = [];
     license = licenses.bsd2;
   };
 }
diff --git a/pkgs/development/python-modules/pyacoustid/default.nix b/pkgs/development/python-modules/pyacoustid/default.nix
index 29cdfbc6599..75b0964e259 100644
--- a/pkgs/development/python-modules/pyacoustid/default.nix
+++ b/pkgs/development/python-modules/pyacoustid/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pyacoustid";
-  version = "1.1.7";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07394a8ae84625a0a6fef2d891d19687ff59cd955caaf48097da2826043356fd";
+    sha256 = "0c3dsnfyldnsmyzczp5s5aqvbzcn360s0h4l3gm3k53lg57f762z";
   };
 
   propagatedBuildInputs = [ requests audioread ];
diff --git a/pkgs/development/python-modules/pyaml/default.nix b/pkgs/development/python-modules/pyaml/default.nix
index 1d0168b6bfa..524d34c68d4 100644
--- a/pkgs/development/python-modules/pyaml/default.nix
+++ b/pkgs/development/python-modules/pyaml/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pyaml";
-  version = "19.12.0";
+  version = "20.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b3f636b467864319d7ded1558f86bb305b8612a274f5d443a62dc5eceb1b7176";
+    sha256 = "29a5c2a68660a799103d6949167bd6c7953d031449d08802386372de1db6ad71";
   };
 
   propagatedBuildInputs = [ pyyaml ];
diff --git a/pkgs/development/python-modules/pyarrow/default.nix b/pkgs/development/python-modules/pyarrow/default.nix
index e24ca0fa78e..82f8f5da3d9 100644
--- a/pkgs/development/python-modules/pyarrow/default.nix
+++ b/pkgs/development/python-modules/pyarrow/default.nix
@@ -1,28 +1,19 @@
-{ lib, fetchpatch, buildPythonPackage, python, isPy3k, arrow-cpp, cmake, cython, futures, hypothesis, numpy, pandas, pytestCheckHook, pytest-lazy-fixture, pkgconfig, setuptools_scm, six }:
+{ lib, buildPythonPackage, python, isPy3k, arrow-cpp, cmake, cython, futures, hypothesis, numpy, pandas, pytestCheckHook, pytest-lazy-fixture, pkgconfig, setuptools_scm, six }:
 
 let
-  _arrow-cpp = arrow-cpp.override { inherit python; };
+  _arrow-cpp = arrow-cpp.override { python3 = python; };
 in
 
 buildPythonPackage rec {
   pname = "pyarrow";
+  disabled = !isPy3k;
 
   inherit (_arrow-cpp) version src;
 
-  patches = [
-    # Remove when updating pkgs.arrow-cpp to 0.17
-    (fetchpatch {
-      name = "ARROW-8106-fix-conversion-test";
-      url = "https://github.com/apache/arrow/commit/af20bbff30adc560d7e57dd921345d00cc8b870c.patch";
-      sha256 = "0ihpw589vh35va31ajzy5zpx3bqd9gdn3342rghi03r245kch9zd";
-      stripLen = 1;
-    })
-  ];
-
   sourceRoot = "apache-arrow-${version}/python";
 
   nativeBuildInputs = [ cmake cython pkgconfig setuptools_scm ];
-  propagatedBuildInputs = [ numpy six ] ++ lib.optionals (!isPy3k) [ futures ];
+  propagatedBuildInputs = [ numpy six ];
   checkInputs = [ hypothesis pandas pytestCheckHook pytest-lazy-fixture ];
 
   PYARROW_BUILD_TYPE = "release";
diff --git a/pkgs/development/python-modules/pyasn1-modules/default.nix b/pkgs/development/python-modules/pyasn1-modules/default.nix
index 83cb8f654e2..87e72e1ae5b 100644
--- a/pkgs/development/python-modules/pyasn1-modules/default.nix
+++ b/pkgs/development/python-modules/pyasn1-modules/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pyasn1-modules";
-  version = "0.2.7";
+  version = "0.2.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0c35a52e00b672f832e5846826f1fb7507907f7d52fba6faa9e3c4cbe874fe4b";
+    sha256 = "905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e";
   };
 
   propagatedBuildInputs = [ pyasn1 ];
diff --git a/pkgs/development/python-modules/pyatmo/default.nix b/pkgs/development/python-modules/pyatmo/default.nix
index d9f602aa7e2..cb628561fda 100644
--- a/pkgs/development/python-modules/pyatmo/default.nix
+++ b/pkgs/development/python-modules/pyatmo/default.nix
@@ -1,19 +1,21 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, oauthlib
 , requests
+, requests_oauthlib
 }:
 
 buildPythonPackage rec {
   pname = "pyatmo";
-  version = "3.1.0";
+  version = "3.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8fbcc3a88f8c51d190b697c80515e67530143de71f89cc6ecf99bbf2cbf3ef30";
+    sha256 = "9949338833a27b6c3251b52bf70b73aa99c43c56153541338cb63001afafdd1e";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [ oauthlib requests requests_oauthlib ];
 
   # Upstream provides no unit tests.
   doCheck = false;
diff --git a/pkgs/development/python-modules/pyatspi/default.nix b/pkgs/development/python-modules/pyatspi/default.nix
index b704e54321b..74b9f7dfdeb 100644
--- a/pkgs/development/python-modules/pyatspi/default.nix
+++ b/pkgs/development/python-modules/pyatspi/default.nix
@@ -7,7 +7,7 @@ buildPythonPackage rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "UTbBv5GeEB1OyQGiduhupg5Ygaj/d2PjVvGYQOX/4d0=";
+    sha256 = "1pg1zzjl167iavin6xzzm20mh3m6dvl7d8h1r571s44yj6zw2dji";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/python-modules/pyatv/default.nix b/pkgs/development/python-modules/pyatv/default.nix
index 19aa73bec59..b8a607f4d45 100644
--- a/pkgs/development/python-modules/pyatv/default.nix
+++ b/pkgs/development/python-modules/pyatv/default.nix
@@ -1,19 +1,49 @@
-{ stdenv, buildPythonPackage, fetchPypi, srptools, aiohttp, zeroconf
-, ed25519, cryptography, curve25519-donna, pytest, pytestrunner
-, netifaces, asynctest, virtualenv, toml, filelock, tox }:
+{ stdenv, buildPythonPackage, fetchPypi
+, aiohttp
+, aiozeroconf
+, asynctest
+, cryptography
+, deepdiff
+, netifaces
+, protobuf
+, pytest
+, pytest-aiohttp
+, pytest-asyncio
+, pytestrunner
+, srptools
+}:
 
 buildPythonPackage rec {
   pname = "pyatv";
-  version = "0.3.13";
+  version = "0.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8fc1a903a9d666e4109127410d35a83458559a86bc0de3fe1ffb3f15d2d653b3";
+    sha256 = "0f9wj1ggllwpjd9nh6nsrck7m4gbz29q6vqbrhbkc2kz6waqkgwc";
   };
 
-  propagatedBuildInputs = [ srptools aiohttp zeroconf ed25519 cryptography curve25519-donna tox ];
+  nativeBuildInputs = [ pytestrunner];
 
-  checkInputs = [ pytest pytestrunner netifaces asynctest virtualenv toml filelock ];
+  propagatedBuildInputs = [
+    aiozeroconf
+    srptools
+    aiohttp
+    protobuf
+    cryptography
+    netifaces
+  ];
+
+  checkInputs = [
+    deepdiff
+    pytest
+    pytest-aiohttp
+    pytest-asyncio
+  ];
+
+  # just run vanilla pytest to avoid inclusion of coverage reports and xdist
+  checkPhase = ''
+    pytest
+  '';
 
   meta = with stdenv.lib; {
     description = "A python client library for the Apple TV";
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 1a06a699c32..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.0";
+  version = "0.12.0";
   pname = "pybids";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b37ba89eb7407bbfdf8e26e1230b6ef452da3d986df5eed21aab96be61b6e844";
+    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/pybindgen/default.nix b/pkgs/development/python-modules/pybindgen/default.nix
index ee880fda398..136917c6837 100644
--- a/pkgs/development/python-modules/pybindgen/default.nix
+++ b/pkgs/development/python-modules/pybindgen/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchPypi, buildPythonPackage, isPy3k, setuptools_scm, pygccxml }:
 buildPythonPackage rec {
   pname = "PyBindGen";
-  version = "0.20.1";
+  version = "0.21.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5615f6b5d9b8aec86d69acedd050ecb5eb7d1338436c3667e345f800a2658f9f";
+    sha256 = "4501aa3954fdac7bb4c049894f8aa1f0f4e1c1f50cc2303feef9bbe3aecfe364";
   };
 
   buildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/pybullet/default.nix b/pkgs/development/python-modules/pybullet/default.nix
index dfd29ce8bd5..588b865a354 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.6.6";
+  version = "2.8.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1lsvjqij1vb9w8j6lvnq7lppflc7svz4cj37n74q67mb46gq3dxr";
+    sha256 = "39fb2ae8ef99c7096295a368e232224b68bf209059c1977d7189c28ec833d043";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pycares/default.nix b/pkgs/development/python-modules/pycares/default.nix
index f44aa2e8f8e..e233d8d7088 100644
--- a/pkgs/development/python-modules/pycares/default.nix
+++ b/pkgs/development/python-modules/pycares/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pycares";
-  version = "3.1.0";
+  version = "3.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "663c000625725d3a63466a674df4ee7f62bf8ca1ae8a0b87a6411eb811e0e794";
+    sha256 = "18dfd4fd300f570d6c4536c1d987b7b7673b2a9d14346592c5d6ed716df0d104";
   };
 
   buildInputs = [ c-ares ];
diff --git a/pkgs/development/python-modules/pychromecast/default.nix b/pkgs/development/python-modules/pychromecast/default.nix
index cc69bbc9ee7..72a527b8073 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 = "4.2.3";
+  version = "7.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nqy9zvzxzncfmmbsj4ccb36gymh4pp1n1l9fdhv8fi0ai9b7dyp";
+    sha256 = "adcf478d7fc539e9decde59b2db7b6a4b1d679c4cf78d515d880adb1c4bc1c30";
   };
 
   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/pycodestyle/default.nix b/pkgs/development/python-modules/pycodestyle/default.nix
index 289332eb7c4..e1d21a6a2eb 100644
--- a/pkgs/development/python-modules/pycodestyle/default.nix
+++ b/pkgs/development/python-modules/pycodestyle/default.nix
@@ -1,23 +1,26 @@
 { buildPythonPackage
 , fetchPypi
 , lib
+, python
 }:
 
 buildPythonPackage rec {
   pname = "pycodestyle";
-  version = "2.5.0";
+  version = "2.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0v4prb05n21bm8650v0a01k1nyqjdmkrsm3zycfxh2j5k9n962p4";
+    sha256 = "c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e";
   };
 
+  dontUseSetuptoolsCheck = true;
+
   # https://github.com/PyCQA/pycodestyle/blob/2.5.0/tox.ini#L14
   checkPhase = ''
-    python pycodestyle.py --max-doc-length=72 --testsuite testsuite
-    python pycodestyle.py --statistics pycodestyle.py
-    python pycodestyle.py --max-doc-length=72 --doctest
-    python setup.py test
+    ${python.interpreter} pycodestyle.py --max-doc-length=72 --testsuite testsuite
+    ${python.interpreter} pycodestyle.py --statistics pycodestyle.py
+    ${python.interpreter} pycodestyle.py --max-doc-length=72 --doctest
+    ${python.interpreter} -m unittest discover testsuite -vv
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pycognito/default.nix b/pkgs/development/python-modules/pycognito/default.nix
index afc607baa40..8101b76b62c 100644
--- a/pkgs/development/python-modules/pycognito/default.nix
+++ b/pkgs/development/python-modules/pycognito/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "pycognito";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "pvizeli";
     repo = "pycognito";
     rev = version;
-    sha256 = "01zns522awm5yp5cbk1y7k7px534i5akiivip709i1naph3hvnfk";
+    sha256 = "0wy6d274xda7v6dazv10h2vwig2avfyz8mh2lpd1a5k7i06r335r";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pycoin/default.nix b/pkgs/development/python-modules/pycoin/default.nix
new file mode 100644
index 00000000000..a0b743bb8b5
--- /dev/null
+++ b/pkgs/development/python-modules/pycoin/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, fetchPypi
+, buildPythonPackage
+, gnupg
+, setuptools
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pycoin";
+  version = "0.90.20200322";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c8af579e86c118deb64d39e0d844d53a065cdd8227ddd632112e5667370b53a3";
+  };
+
+  propagatedBuildInputs = [ setuptools ];
+
+  postPatch = ''
+    substituteInPlace ./pycoin/cmds/tx.py --replace '"gpg"' '"${gnupg}/bin/gpg"'
+  '';
+
+  checkInputs = [ pytestCheckHook ];
+
+  dontUseSetuptoolsCheck = true;
+
+  # Disable tests depending on online services
+  disabledTests = [
+    "ServicesTest"
+    "test_tx_pay_to_opcode_list_txt"
+    "test_tx_fetch_unspent"
+    "test_tx_with_gpg"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Utilities for Bitcoin and altcoin addresses and transaction manipulation";
+    homepage = "https://github.com/richardkiss/pycoin";
+    license = licenses.mit;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
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/pycparser/default.nix b/pkgs/development/python-modules/pycparser/default.nix
index ea7caba5eb4..f3fa6f883fb 100644
--- a/pkgs/development/python-modules/pycparser/default.nix
+++ b/pkgs/development/python-modules/pycparser/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pycparser";
-  version = "2.19";
+  version = "2.20";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3";
+    sha256 = "2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/pycryptodome/default.nix b/pkgs/development/python-modules/pycryptodome/default.nix
index cf88c6722a6..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.4";
+  version = "3.9.8";
   pname = "pycryptodome";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a168e73879619b467072509a223282a02c8047d932a48b74fbd498f27224aa04";
+    sha256 = "0e24171cf01021bc5dc17d6a9d4f33a048f09d62cc3f62541e95ef104588bda4";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/pycryptodomex/default.nix b/pkgs/development/python-modules/pycryptodomex/default.nix
index 5cc4446c5a3..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.4";
+  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 = "22d970cee5c096b9123415e183ae03702b2cd4d3ba3f0ced25c4e1aba3967167";
+    sha256 = "48cc2cfc251f04a6142badeb666d1ff49ca6fdfc303fd72579f62b768aaa52b9";
   };
 }
diff --git a/pkgs/development/python-modules/pycuda/default.nix b/pkgs/development/python-modules/pycuda/default.nix
index a03662aa961..b9a75734b8e 100644
--- a/pkgs/development/python-modules/pycuda/default.nix
+++ b/pkgs/development/python-modules/pycuda/default.nix
@@ -13,7 +13,6 @@
 , python
 , mkDerivation
 , stdenv
-, isPy3k
 }:
 let
   compyte = import ./compyte.nix {
@@ -29,11 +28,12 @@ buildPythonPackage rec {
     sha256 = "ada56ce98a41f9f95fe18809f38afbae473a5c62d346cfa126a2d5477f24cc8a";
   };
 
-  preConfigure = ''
+  preConfigure = with stdenv.lib.versions; ''
     ${python.interpreter} configure.py --boost-inc-dir=${boost.dev}/include \
                           --boost-lib-dir=${boost}/lib \
                           --no-use-shipped-boost \
-                          --boost-python-libname=boost_python${stdenv.lib.optionalString isPy3k "3"}
+                          --boost-python-libname=boost_python${major python.version}${minor python.version} \
+                          --cuda-root=${cudatoolkit}
   '';
 
   postInstall = ''
diff --git a/pkgs/development/python-modules/pycurl/default.nix b/pkgs/development/python-modules/pycurl/default.nix
index 44ff6b7f084..7531bb8f7bb 100644
--- a/pkgs/development/python-modules/pycurl/default.nix
+++ b/pkgs/development/python-modules/pycurl/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "pycurl";
-  version = "7.43.0.3";
+  version = "7.43.0.5";
   disabled = isPyPy; # https://github.com/pycurl/pycurl/issues/208
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13nsvqhvnmnvfk75s8iynqsgszyv06cjp4drd3psi7zpbh63623g";
+    sha256 = "ec7dd291545842295b7b56c12c90ffad2976cc7070c98d7b1517b7b6cd5994b3";
   };
 
   buildInputs = [
@@ -36,6 +36,8 @@ buildPythonPackage rec {
   ];
 
   # skip impure or flakey tests
+  # See also:
+  #   * https://github.com/NixOS/nixpkgs/issues/77304
   checkPhase = ''
     HOME=$TMPDIR pytest tests -k "not test_ssl_in_static_libs \
                      and not test_keyfunction \
@@ -44,7 +46,9 @@ buildPythonPackage rec {
                      and not test_libcurl_ssl_nss \
                      and not test_libcurl_ssl_openssl" \
                  --ignore=tests/getinfo_test.py \
-                 --ignore=tests/memory_mgmt_test.py
+                 --ignore=tests/memory_mgmt_test.py \
+                 --ignore=tests/multi_memory_mgmt_test.py \
+                 --ignore=tests/multi_timer_test.py
   '';
 
   preConfigure = ''
diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix
index ef33b6fb2bd..371bfba2f0f 100644
--- a/pkgs/development/python-modules/pydantic/default.nix
+++ b/pkgs/development/python-modules/pydantic/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , ujson
 , email_validator
 , typing-extensions
@@ -22,6 +23,14 @@ buildPythonPackage rec {
     sha256 = "0fwrx7p6d5vskg9ibganahiz9y9299idvdmzhjw62jy84gn1vrb4";
   };
 
+  # fix tests, remove on next version bump
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/samuelcolvin/pydantic/commit/a5b0e741e585040a0ab8b0be94dd9dc2dd3afcc7.patch";
+      sha256 = "0v91ac3dw23rm73370s2ns84vi0xqbfzpvj84zb7xdiicx8fhmf1";
+    })
+  ];
+
   propagatedBuildInputs = [
     ujson
     email_validator
diff --git a/pkgs/development/python-modules/pydicom/default.nix b/pkgs/development/python-modules/pydicom/default.nix
index 6f4e4c97fd1..e6602ba9da2 100644
--- a/pkgs/development/python-modules/pydicom/default.nix
+++ b/pkgs/development/python-modules/pydicom/default.nix
@@ -1,23 +1,29 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , pytest
 , pytestrunner
+, pytestCheckHook
 , numpy
 , pillow
 }:
 
 buildPythonPackage rec {
-  version = "1.4.2";
+  version = "2.0.0";
   pname = "pydicom";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1483hv74fhfk4q18r4rda7yixqqdxrd1djzp3492s81ykxd4k24l";
+    sha256 = "594c91f715c415ef439f498351ae68fb770c776fc5aa72f3c87eb500dc2a7470";
   };
 
   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/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 669d798312b..8499db31e02 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.23.1";
+  version = "0.24.0";
   # pypi version doesn't include required data files for tests
   src = fetchFromGitHub {
     owner = "jiaaro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1v0bghy4j2nnkgf1r8rbz4s7war872asyy08pc0x1iy1qs275i7s";
+    sha256 = "0cnhkk44cn3wa4fmd1rwzdx2zgrn87qg25pbcp9wsisdlpn4bj6d";
   };
 
 
diff --git a/pkgs/development/python-modules/pyenchant/default.nix b/pkgs/development/python-modules/pyenchant/default.nix
index 91626bd5e55..1c82f7c9d63 100644
--- a/pkgs/development/python-modules/pyenchant/default.nix
+++ b/pkgs/development/python-modules/pyenchant/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "pyenchant";
-  version = "3.0.1";
+  version = "3.1.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0nfmckqm45fbfz795qw5hgvygdxgxchdiwp3kmm1k05z99j6mlhv";
+    sha256 = "ce0915d7acd771fde6e8c2dce8ad0cb0e6f7c4fa8430cc96e3e7134e99aeb12f";
   };
 
   propagatedBuildInputs = [ enchant2 ];
diff --git a/pkgs/development/python-modules/pyface/default.nix b/pkgs/development/python-modules/pyface/default.nix
index db0ee541e09..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 = "6.1.2";
+  version = "7.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1g2g3za64rfffbivlihbf5njrqbv63ln62rv9d8fi1gcrgaw6akw";
+    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 d5e093ce866..14c69fd799a 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 = "3.7.1";
+  version = "4.0.2";
   pname = "pyfakefs";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1eb68bb250cc14310a6e33c197cbe2c8d93832b543f534e29b58286712f7e2b2";
+    sha256 = "c415e1c737e3aa72b92af41832a7e0a2c325eb8d3a72a210750714e00fcaeace";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyflakes/default.nix b/pkgs/development/python-modules/pyflakes/default.nix
index 85176d9ccca..d8cc4511948 100644
--- a/pkgs/development/python-modules/pyflakes/default.nix
+++ b/pkgs/development/python-modules/pyflakes/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyflakes";
-  version = "2.1.1";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d976835886f8c5b31d47970ed689944a0262b5f3afa00a5a7b4dc81e5449f8a2";
+    sha256 = "35b2d75ee967ea93b55750aa9edbbf72813e06a66ba54438df2cfac9e3c27fc8";
   };
 
   checkInputs = [ unittest2 ];
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/pyftdi/default.nix b/pkgs/development/python-modules/pyftdi/default.nix
index d73ee24f584..4cb6138d5eb 100644
--- a/pkgs/development/python-modules/pyftdi/default.nix
+++ b/pkgs/development/python-modules/pyftdi/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "pyftdi";
-  version = "0.49.0";
+  version = "0.51.2";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "eblot";
     repo = pname;
     rev = "v${version}";
-    sha256 = "063kwvgw7g4nn09pyqwqy72vnhzw0aajg23bi32vr0k49g8fx27s";
+    sha256 = "14mkwk44bgm6s4kqagz7nm6p6gsygmksl2628jaqh7ppblxca9as";
   };
 
   propagatedBuildInputs = [ pyusb pyserial ];
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/pygdbmi/default.nix b/pkgs/development/python-modules/pygdbmi/default.nix
index 447fbdfcdc4..b3d1fb3d26d 100644
--- a/pkgs/development/python-modules/pygdbmi/default.nix
+++ b/pkgs/development/python-modules/pygdbmi/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ stdenv
+, lib
 , buildPythonPackage
 , fetchFromGitHub
 , gdb
@@ -19,6 +20,9 @@ buildPythonPackage rec {
 
   checkInputs = [ gdb ];
 
+  # tests require gcc for some reason
+  doCheck = !stdenv.hostPlatform.isDarwin;
+
   postPatch = ''
     # tries to execute flake8,
     # which is likely to break on flake8 updates
diff --git a/pkgs/development/python-modules/pygls/default.nix b/pkgs/development/python-modules/pygls/default.nix
new file mode 100644
index 00000000000..d563fa27669
--- /dev/null
+++ b/pkgs/development/python-modules/pygls/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildPythonPackage, isPy3k, fetchFromGitHub
+, mock, pytest, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "pygls";
+  version = "0.9.0";
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "openlawlibrary";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1wfp4hjin1mb6nkzhpfh5v8q8rwvn9zh0mwwj4dlxkqx5lp272hl";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pytest==4.5.0" "pytest"
+  '';
+
+  checkInputs = [ mock pytest pytest-asyncio ];
+  checkPhase = "pytest";
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/openlawlibrary/pygls";
+    description = "Pythonic generic implementation of the Language Server Protocol";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ metadark ];
+  };
+}
diff --git a/pkgs/development/python-modules/pygments-better-html/default.nix b/pkgs/development/python-modules/pygments-better-html/default.nix
new file mode 100644
index 00000000000..87b8e0b3ffb
--- /dev/null
+++ b/pkgs/development/python-modules/pygments-better-html/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pygments
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pygments_better_html";
+  version = "0.1.4";
+  disabled = ! isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "028szd3k295yhz943bj19i4kx6f0pfh1fd2q14id0g84dl4i49dm";
+  };
+
+  propagatedBuildInputs = [ pygments ];
+
+  # has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pygments_better_html" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/Kwpolska/pygments_better_html";
+    description = "Improved line numbering for Pygments’ HTML formatter.";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/pygobject/3.nix b/pkgs/development/python-modules/pygobject/3.nix
index 2a1b8bcb410..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 = "hoPS37W6qeUBqaZO66XCwRF+rbeBqxzXqdJVg0r22u8=";
+    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/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/pyhamcrest/1.nix b/pkgs/development/python-modules/pyhamcrest/1.nix
new file mode 100644
index 00000000000..592172c6550
--- /dev/null
+++ b/pkgs/development/python-modules/pyhamcrest/1.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, mock, pytest
+, six
+}:
+buildPythonPackage rec {
+  pname = "PyHamcrest";
+  version = "1.10.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0x08lfcnsak7pkym32xrdn0sn3wcf26n1jff3d11mwbizpfikbpp";
+  };
+
+  checkInputs = [ mock pytest ];
+  propagatedBuildInputs = [ six ];
+
+  doCheck = false;  # pypi tarball does not include tests
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/hamcrest/PyHamcrest";
+    description = "Hamcrest framework for matcher objects";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [
+      alunduil
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyhamcrest/default.nix b/pkgs/development/python-modules/pyhamcrest/default.nix
index 98ef4afacc1..40469bd0deb 100644
--- a/pkgs/development/python-modules/pyhamcrest/default.nix
+++ b/pkgs/development/python-modules/pyhamcrest/default.nix
@@ -4,11 +4,11 @@
 }:
 buildPythonPackage rec {
   pname = "PyHamcrest";
-  version = "1.9.0";
+  version = "2.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8ffaa0a53da57e89de14ced7185ac746227a8894dbd5a3c718bf05ddbd1d56cd";
+    sha256 = "412e00137858f04bde0729913874a48485665f2d36fe9ee449f26be864af9316";
   };
 
   checkInputs = [ mock pytest ];
diff --git a/pkgs/development/python-modules/pyhaversion/default.nix b/pkgs/development/python-modules/pyhaversion/default.nix
index 7717706561d..381ec45388b 100644
--- a/pkgs/development/python-modules/pyhaversion/default.nix
+++ b/pkgs/development/python-modules/pyhaversion/default.nix
@@ -13,11 +13,11 @@
 }:
 buildPythonPackage rec {
   pname = "pyhaversion";
-  version = "3.1.0";
+  version = "3.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1d4smpzlaw0sqfgkgvhxsn8h7bmwj8h9gj98sdzvkzhp5vhd96b2";
+    sha256 = "376a1b232a26035bc82d64affa1c4f312d782234fe5453e8d0f9e1350a97be5b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyhomematic/default.nix b/pkgs/development/python-modules/pyhomematic/default.nix
index 7d8fa826b0e..14bf1cfe7be 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.65";
+  version = "0.1.67";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0a562dqxs2j9q0xyywrh43dlbpdqr3mhvrrk8abdpmgj6gl33zac";
+    sha256 = "2d18e0059367e9e32d6472023322113fce431bcc72187b4a6eb7402fe5d2794b";
   };
 
   # 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/pyicloud/default.nix b/pkgs/development/python-modules/pyicloud/default.nix
index d579d3e96fb..6e808a01058 100644
--- a/pkgs/development/python-modules/pyicloud/default.nix
+++ b/pkgs/development/python-modules/pyicloud/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "pyicloud";
-  version = "0.9.5";
+  version = "0.9.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c8sdlqcmpajcpf6jfpi6amncibm9c3zrl1860r0vfimps50m34h";
+    sha256 = "dcebb32e474bc28aa77b944a0a64949ef3b5b852cbef6256fbc95347a04e777c";
   };
 
   propagatedBuildInputs = [
@@ -38,9 +38,10 @@ buildPythonPackage rec {
 
   postPatch = ''
     sed -i \
-      -e 's!click>=6.0,<7.0!click!' \
-      -e 's!keyring>=8.0,<9.0!keyring!' \
-      -e 's!keyrings.alt>=1.0,<2.0!keyrings.alt!' \
+      -e 's!click>=.*!click!' \
+      -e 's!keyring>=.*!keyring!' \
+      -e 's!keyrings.alt>=.*!keyrings.alt!' \
+      -e 's!tzlocal==.*!tzlocal!' \
       requirements.txt
   '';
 
diff --git a/pkgs/development/python-modules/pyipp/default.nix b/pkgs/development/python-modules/pyipp/default.nix
new file mode 100644
index 00000000000..cf6b67c548b
--- /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.10.1";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+   owner = "ctalkington";
+   repo = "python-ipp";
+   rev = version;
+   sha256 = "0y9mkrx66f4m77jzfgdgmvlqismvimb6hm61j2va7zapm8dyabvr";
+  };
+
+  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/pyjet/default.nix b/pkgs/development/python-modules/pyjet/default.nix
index 4a20b5142b6..c535ddad108 100644
--- a/pkgs/development/python-modules/pyjet/default.nix
+++ b/pkgs/development/python-modules/pyjet/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyjet";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b334fb9a01854165629d49a2df43c81c880fc231a8a27c156beccf42f223fe47";
+    sha256 = "ab6e63f8a8fd73bbd76ef2a384eea69bc1c201f2ce876faa4151ade6c0b20615";
   };
 
   # fix for python37
diff --git a/pkgs/development/python-modules/pyjks/default.nix b/pkgs/development/python-modules/pyjks/default.nix
index d9e2074fb28..a05dcadeb84 100644
--- a/pkgs/development/python-modules/pyjks/default.nix
+++ b/pkgs/development/python-modules/pyjks/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "pyjks";
-  version = "19.0.0";
+  version = "20.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06h1cybsdj2wi0jf7igbr722xfm87crqn4g7m3bgrpxwi41b9rcw";
+    sha256 = "0378cec15fb11b2ed27ba54dad9fd987d48e6f62f49fcff138f5f7a8b312b044";
   };
 
   propagatedBuildInputs = [
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 6a6853e5599..10449717ea4 100644
--- a/pkgs/development/python-modules/pylast/default.nix
+++ b/pkgs/development/python-modules/pylast/default.nix
@@ -1,16 +1,19 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, certifi, six }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k, certifi, six
+, setuptools_scm
+}:
 
 buildPythonPackage rec {
   pname = "pylast";
-  version = "3.1.0";
+  version = "3.3.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0sk08l8dq0r4xgmqkxq6jzlbam34k95adaw468n0bh6cps18ddby";
+    sha256 = "1wqd23bbk5si2mcmswsi486zqnydjjf8g7924gcz6cc1x036lasd";
   };
 
+  nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ certifi six ];
 
   # tests require last.fm credentials
diff --git a/pkgs/development/python-modules/pylibgen/default.nix b/pkgs/development/python-modules/pylibgen/default.nix
deleted file mode 100644
index 9dc6689e900..00000000000
--- a/pkgs/development/python-modules/pylibgen/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, pythonOlder
-, requests
-, pytest
-, pre-commit
-}:
-
-buildPythonPackage rec {
-  pname = "pylibgen";
-  version = "2.0.2";
-  disabled = pythonOlder "3.6";
-
-  src = fetchFromGitHub {
-    owner = "joshuarli";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1a9vhkgnkiwkicr2s287254mrkpnw9jq5r63q820dp3h74ba4kl1";
-  };
-
-  propagatedBuildInputs = [ requests ];
-
-  checkInputs = [ pytest pre-commit ];
-
-  # literally every tests does a network call
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Python interface to Library Genesis";
-    homepage = "https://pypi.org/project/pylibgen/";
-    license = licenses.mit;
-    maintainers = [ maintainers.nico202 ];
-  };
-}
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-plugin-utils/default.nix b/pkgs/development/python-modules/pylint-plugin-utils/default.nix
index 2d48ef7fea7..f2bbef2cc8c 100644
--- a/pkgs/development/python-modules/pylint-plugin-utils/default.nix
+++ b/pkgs/development/python-modules/pylint-plugin-utils/default.nix
@@ -5,6 +5,7 @@
 
 # pythonPackages
 , pylint
+, toml
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    pylint
+    pylint toml
   ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/pylint/1.9.nix b/pkgs/development/python-modules/pylint/1.9.nix
index 568d85b7e1b..e283cc10d16 100644
--- a/pkgs/development/python-modules/pylint/1.9.nix
+++ b/pkgs/development/python-modules/pylint/1.9.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, buildPythonPackage, fetchPypi, astroid, six, isort,
   mccabe, configparser, backports_functools_lru_cache, singledispatch,
-  pytest, pytestrunner, pyenchant, setuptools }:
+  pytest, pytestrunner, setuptools }:
 
 buildPythonPackage rec {
   pname = "pylint";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "004kfapkqxqy2s85pmddqv0fabxdxywxrlbi549p0v237pr2v94p";
   };
 
-  checkInputs = [ pytest pytestrunner pyenchant ];
+  checkInputs = [ pytest pytestrunner ];
 
   propagatedBuildInputs = [ astroid six isort mccabe configparser backports_functools_lru_cache singledispatch setuptools ];
 
diff --git a/pkgs/development/python-modules/pylint/default.nix b/pkgs/development/python-modules/pylint/default.nix
index c596b4042cc..6babcb15ba4 100644
--- a/pkgs/development/python-modules/pylint/default.nix
+++ b/pkgs/development/python-modules/pylint/default.nix
@@ -1,22 +1,22 @@
 { stdenv, lib, buildPythonPackage, fetchPypi, pythonOlder, astroid,
-  isort, mccabe, pytestCheckHook, pytestrunner }:
+  isort, mccabe, pytestCheckHook, pytest-benchmark, pytestrunner, toml }:
 
 buildPythonPackage rec {
   pname = "pylint";
-  version = "2.4.4";
+  version = "2.5.3";
 
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3db5468ad013380e987410a8d6956226963aed94ecb5f9d3a28acca6d9ac36cd";
+    sha256 = "7dd78437f2d8d019717dbf287772d0b2dbdfd13fc016aa7faa08d67bccc46adc";
   };
 
   nativeBuildInputs = [ pytestrunner ];
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [ pytestCheckHook pytest-benchmark ];
 
-  propagatedBuildInputs = [ astroid isort mccabe ];
+  propagatedBuildInputs = [ astroid isort mccabe toml ];
 
   postPatch = lib.optionalString stdenv.isDarwin ''
     # Remove broken darwin test
@@ -26,11 +26,18 @@ buildPythonPackage rec {
   disabledTests = [
     # https://github.com/PyCQA/pylint/issues/3198
     "test_by_module_statement_value"
+    # has issues with local directories
+    "test_version"
    ] ++ lib.optionals stdenv.isDarwin [
       "test_parallel_execution"
       "test_py3k_jobs_option"
    ];
 
+  # calls executable in one of the tests
+  preCheck = ''
+    export PATH=$PATH:$out/bin
+  '';
+
   dontUseSetuptoolsCheck = true;
 
   postInstall = ''
diff --git a/pkgs/development/python-modules/pyls-black/default.nix b/pkgs/development/python-modules/pyls-black/default.nix
index d21002f9160..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;
diff --git a/pkgs/development/python-modules/pyls-mypy/default.nix b/pkgs/development/python-modules/pyls-mypy/default.nix
index b4fd98607d8..b9cf9738ed4 100644
--- a/pkgs/development/python-modules/pyls-mypy/default.nix
+++ b/pkgs/development/python-modules/pyls-mypy/default.nix
@@ -1,29 +1,45 @@
-{ lib, buildPythonPackage, fetchFromGitHub
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27
 , future, python-language-server, mypy, configparser
-, pytest, mock, isPy3k, pytestcov, coverage
+, pytestCheckHook, mock, isPy3k, pytestcov, coverage
+, fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "pyls-mypy";
-  version = "0.1.6";
+  version = "0.1.8";
 
   src = fetchFromGitHub {
     owner = "tomv564";
     repo = "pyls-mypy";
     rev = version;
-    sha256 = "0c1111m9h6f05frkyj6i757q9y2lijpbv8nxmwgp3nqbpkvfnmrk";
+    sha256 = "14giyvcrq4w3asm1nyablw70zkakkcsr76chk5a41alxlk4l2alb";
   };
 
-  disabled = !isPy3k;
+  # presumably tests don't find typehints ?
+  doCheck = false;
 
-  checkPhase = ''
-    HOME=$TEMPDIR pytest
+  disabledTests = [
+    "test_parse_line_without_line"
+  ];
+
+  preCheck = ''
+    export HOME=$TEMPDIR
   '';
 
-  checkInputs = [ pytest mock pytestcov coverage ];
+  patches = [
+    # makes future optional
+    (fetchpatch {
+      url = "https://github.com/tomv564/pyls-mypy/commit/2949582ff5f39b1de51eacc92de6cfacf1b5ab75.patch";
+      sha256 = "0bqkvdy5mxyi46nhq5ryynf465f68b6ffy84hmhxrigkapz085g5";
+    })
+  ];
+
+  checkInputs = [ mock pytestcov coverage pytestCheckHook ];
 
   propagatedBuildInputs = [
-    mypy python-language-server future configparser
+    mypy python-language-server configparser
+  ] ++ lib.optional (isPy27) [
+    future
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pymatgen/default.nix b/pkgs/development/python-modules/pymatgen/default.nix
index f9869cc2c7f..2cd0a0a020f 100644
--- a/pkgs/development/python-modules/pymatgen/default.nix
+++ b/pkgs/development/python-modules/pymatgen/default.nix
@@ -1,16 +1,35 @@
-{ stdenv, buildPythonPackage, fetchPypi, glibcLocales, numpy, pydispatcher, sympy, requests, monty, ruamel_yaml, six, scipy, tabulate, enum34, matplotlib, palettable, spglib, pandas, networkx }:
+{ stdenv, buildPythonPackage, fetchPypi, glibcLocales, numpy, pydispatcher, sympy, requests, monty, ruamel_yaml, six, scipy, tabulate, enum34, matplotlib, palettable, spglib, pandas, plotly, networkx }:
 
 buildPythonPackage rec {
   pname = "pymatgen";
-  version = "2019.12.22";
+  version = "2020.4.29";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ffc6efcc2ba15bff22cca29c07b93b01fac400f649c41d5dd01bfff7915f80b";
+    sha256 = "cf9c89f2c742acf524f3a778cd269164abf582e87ab5f297cd83802fe00c309d";
   };
 
   nativeBuildInputs = [ glibcLocales ];
-  propagatedBuildInputs = [ numpy pydispatcher sympy requests monty ruamel_yaml six scipy tabulate enum34 matplotlib palettable spglib pandas networkx ];
+
+
+  propagatedBuildInputs = [
+    enum34
+    matplotlib
+    monty
+    networkx
+    numpy
+    palettable
+    pandas
+    plotly
+    pydispatcher
+    requests
+    ruamel_yaml
+    scipy
+    six
+    spglib
+    sympy
+    tabulate
+  ];
 
   # No tests in pypi tarball.
   doCheck = false;
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/pymbolic/default.nix b/pkgs/development/python-modules/pymbolic/default.nix
index 85379949729..23c88ca28d4 100644
--- a/pkgs/development/python-modules/pymbolic/default.nix
+++ b/pkgs/development/python-modules/pymbolic/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pymbolic";
-  version = "2019.2";
+  version = "2020.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a7507864a76574d72bf5732497b247661c6ad73bb277cd9c8aae09e90a62e05a";
+    sha256 = "ca029399f9480f6d51fbac0349fddbb42d937620deb03befa0ba94ac08895e6b";
   };
 
   postConfigure = ''
diff --git a/pkgs/development/python-modules/pymetno/default.nix b/pkgs/development/python-modules/pymetno/default.nix
index 129ec21e05c..1e4b0d2adae 100644
--- a/pkgs/development/python-modules/pymetno/default.nix
+++ b/pkgs/development/python-modules/pymetno/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "PyMetno";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "Danielhiversen";
     rev = version;
-    sha256 = "00v2r3nn48svni9rbmbf0a4ylgfcf93gk2wg7qnm1fv1qrkgscvg";
+    sha256 = "1ihq1lzgzcxbg916izakx9jp0kp1vdrcdwcwwwsws838wc08ax6m";
   };
 
   propagatedBuildInputs = [ aiohttp async-timeout pytz xmltodict ];
diff --git a/pkgs/development/python-modules/pymongo/default.nix b/pkgs/development/python-modules/pymongo/default.nix
index 35fb4673ef5..b7da796d3bb 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.0";
+  version = "3.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c43879fe427ea6aa6e84dae9fbdc5aa14428a4cfe613fe0fee2cc004bf3f307c";
+    sha256 = "993257f6ca3cde55332af1f62af3e04ca89ce63c08b56a387cdd46136c72f2fa";
   };
 
   # 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 1625b15f2ee..a1fbe4b8dc7 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.16.18";
+  version = "1.17.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0gpcmmcjgwc6x4rn6nm3akiijdkpa9nahsw2x8a0i7z7kzj4firk";
+    sha256 = "e04421ac7e9e892ea482d0bbf8b590ae7a4f82858faa6fd24943b037122971c0";
   };
 
   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/pynacl/default.nix b/pkgs/development/python-modules/pynacl/default.nix
index be24815ba13..78fe9672a8b 100644
--- a/pkgs/development/python-modules/pynacl/default.nix
+++ b/pkgs/development/python-modules/pynacl/default.nix
@@ -5,7 +5,7 @@
 , libsodium
 , cffi
 , six
-, hypothesis
+, hypothesis_4
 }:
 
 buildPythonPackage rec {
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     sha256 = "0c6100edd16fefd1557da078c7a31e7b7d7a52ce39fdca2bec29d4f7b6e7600c";
   };
 
-  checkInputs = [ pytest hypothesis ];
+  checkInputs = [ pytest hypothesis_4 ];
   buildInputs = [ libsodium ];
   propagatedBuildInputs = [ cffi six ];
 
diff --git a/pkgs/development/python-modules/pynamodb/default.nix b/pkgs/development/python-modules/pynamodb/default.nix
index 5016cfb741c..7e83976cc4d 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.2.0";
+  version = "4.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0njbh3h6696nq5palqa0b8s0fbsvhbawpzl923dnfsa9kgq5m294";
+    sha256 = "58bd62089741ef689f845d6ca826ab50e39b9a0a8ae3bd7a84dc167c1a4ec8fa";
   };
 
   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/pynput/default.nix b/pkgs/development/python-modules/pynput/default.nix
new file mode 100644
index 00000000000..2b83f4c1223
--- /dev/null
+++ b/pkgs/development/python-modules/pynput/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildPythonPackage, fetchPypi, sphinx, setuptools-lint, xlib }:
+
+buildPythonPackage rec {
+  pname = "pynput";
+  version = "1.6.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "16h4wn7f54rw30jrya7rmqkx3f51pxn8cplid95v880md8yqdhb8";
+  };
+
+  nativeBuildInputs = [ sphinx ];
+
+  propagatedBuildInputs = [ setuptools-lint xlib ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A library to control and monitor input devices";
+    homepage = "https://github.com/moses-palmer/pynput";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ nickhu ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/pyobjc/default.nix b/pkgs/development/python-modules/pyobjc/default.nix
index 8b35ef4b3da..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.1";
+  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 = "53ae86caaedc48350c6e93d6e778a0c5044e802340b6d6a679e55014758be540";
+    sha256 = "d5b87e9fa4cc9b51bf37f9a461887e2d8b9ae7e6bb45675f8edbe35ea6770455";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/pyopencl/default.nix b/pkgs/development/python-modules/pyopencl/default.nix
index ed8c4c4a090..766952ee267 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 = "2019.1.2";
+  version = "2020.2";
 
   checkInputs = [ pytest ];
   buildInputs = [ opencl-headers ocl-icd pybind11 ];
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7803f3128dbd28ae6f5b851a80ef586a35b9575406ea7bb068b8e1516f8043f0";
+    sha256 = "afd9f22547bcd879b9e54252fc885b45034ebfd1890e630827f1afb408a03d23";
   };
 
   # py.test is not needed during runtime, so remove it from `install_requires`
diff --git a/pkgs/development/python-modules/pyowm/default.nix b/pkgs/development/python-modules/pyowm/default.nix
index 731bba046e8..04e683ee6e0 100644
--- a/pkgs/development/python-modules/pyowm/default.nix
+++ b/pkgs/development/python-modules/pyowm/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pyowm";
-  version = "2.10.0";
+  version = "3.0.0";
 
   disabled = pythonOlder "3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8fd41a18536f4d6c432bc6d9ea69994efb1ea9b43688cf19523659b6f4d86cf7";
+    sha256 = "f06ac5f2356f0964f088b1f840a6d382499054bd18539ffb1e7c84f29c2c39b6";
   };
 
   propagatedBuildInputs = [ requests geojson ];
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/pyperclip/default.nix b/pkgs/development/python-modules/pyperclip/default.nix
index 9709aea1d18..2c3b3e56a93 100644
--- a/pkgs/development/python-modules/pyperclip/default.nix
+++ b/pkgs/development/python-modules/pyperclip/default.nix
@@ -1,12 +1,12 @@
 { lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
-  version = "1.7.0";
+  version = "1.8.0";
   pname = "pyperclip";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "979325468ccf682104d5dcaf753f869868100631301d3e72f47babdea5700d1c";
+    sha256 = "b75b975160428d84608c26edba2dec146e7799566aea42c1fe1b32e72b6028f2";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/pyperf/default.nix b/pkgs/development/python-modules/pyperf/default.nix
index 4b14e2e5cc6..f17f83bd17b 100644
--- a/pkgs/development/python-modules/pyperf/default.nix
+++ b/pkgs/development/python-modules/pyperf/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "pyperf";
-  version = "1.7.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0d214aa65e085d3e4108a36152cb12f7cd0f4e7fda93b5134b43a9687c975786";
+    sha256 = "2189fbc4af08d519f85468e70e32c902eab0f1341b2c41028b94b2832d3169a7";
   };
 
   checkInputs = [ nose psutil ] ++
diff --git a/pkgs/development/python-modules/pyphotonfile/default.nix b/pkgs/development/python-modules/pyphotonfile/default.nix
new file mode 100644
index 00000000000..dd8d643f6bb
--- /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/pyqt/5.x.nix b/pkgs/development/python-modules/pyqt/5.x.nix
index 52b27638ac7..ece9ad5b4a3 100644
--- a/pkgs/development/python-modules/pyqt/5.x.nix
+++ b/pkgs/development/python-modules/pyqt/5.x.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, pythonPackages, pkgconfig
+{ lib, pythonPackages, pkgconfig
 , dbus
 , qmake, lndir
 , qtbase
@@ -29,13 +29,13 @@ let
   });
 
 in buildPythonPackage rec {
-  pname = "pyqt";
-  version = "5.13.0";
+  pname = "PyQt5";
+  version = "5.14.2";
   format = "other";
 
-  src = fetchurl {
-    url = "https://www.riverbankcomputing.com/static/Downloads/PyQt5/${version}/PyQt5_gpl-${version}.tar.gz";
-    sha256 = "1ydgdz28f1v17qqz3skyv26k5l0w63fr4dncc5xm49jr2gjzznqc";
+  src = pythonPackages.fetchPypi {
+    inherit pname version;
+    sha256 = "1c4y4qi1l540gd125ikj0al00k5pg65kmqaixcfbzslrsrphq8xx";
   };
 
   outputs = [ "out" "dev" ];
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 22e7f076910..ff511103e55 100644
--- a/pkgs/development/python-modules/pyqtwebengine/default.nix
+++ b/pkgs/development/python-modules/pyqtwebengine/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, pythonPackages, pkgconfig
+{ lib, pythonPackages, pkgconfig
 , qmake, qtbase, qtsvg, qtwebengine
 , wrapQtAppsHook
 }:
@@ -9,15 +9,20 @@ let
   inherit (pyqt5) sip;
 
 in buildPythonPackage rec {
-  pname = "pyqtwebengine";
-  version = "5.12.1";
+  pname = "PyQtWebEngine";
+  version = "5.15.0";
   format = "other";
 
-  src = fetchurl {
-    url = "https://www.riverbankcomputing.com/static/Downloads/PyQtWebEngine/${version}/PyQtWebEngine_gpl-${version}.tar.gz";
-    sha256 = "0wylkd7fh2g27y3710rpxmj9wx0wpi3z7qbv6khiddm15rkh81w6";
+  src = pythonPackages.fetchPypi {
+    inherit pname version;
+    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/pyrad/default.nix b/pkgs/development/python-modules/pyrad/default.nix
new file mode 100644
index 00000000000..31cbf77d94e
--- /dev/null
+++ b/pkgs/development/python-modules/pyrad/default.nix
@@ -0,0 +1,27 @@
+{ buildPythonPackage, fetchFromGitHub, lib, netaddr, six, nose }:
+
+buildPythonPackage rec {
+  pname = "pyrad";
+  version = "2.3";
+
+  src = fetchFromGitHub {
+    owner = "pyradius";
+    repo = pname;
+    rev = version;
+    sha256 = "0hy7999av47s8100afbhxfjb8phbmrqcv530xlvskndby4a8w94k";
+  };
+
+  propagatedBuildInputs = [ netaddr six ];
+  checkInputs = [ nose ];
+
+  checkPhase = ''
+    nosetests -e testBind
+  '';
+
+  meta = with lib; {
+    description = "Python RADIUS Implementation";
+    homepage = "https://bitbucket.org/zzzeek/sqlsoup";
+    license = licenses.mit;
+    maintainers = [ maintainers.globin ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyro-ppl/default.nix b/pkgs/development/python-modules/pyro-ppl/default.nix
index a11c2cad928..81d4c47652a 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.1.0";
+  version = "1.3.1";
   pname = "pyro-ppl";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "5ca2fd19276fcfcf52babb48d22892a41d6238d7a6c65e63f704b070a3816479";
+    sha256 = "a034d9311d4715a2e8e127e0a4dd2996cbd34c4b85ac57b02b277c176b0a62ff";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyro4/default.nix b/pkgs/development/python-modules/pyro4/default.nix
index 64f1aa56546..3cf9d3f3143 100644
--- a/pkgs/development/python-modules/pyro4/default.nix
+++ b/pkgs/development/python-modules/pyro4/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "Pyro4";
-  version = "4.77";
+  version = "4.80";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2bfe12a22f396474b0e57c898c7e2c561a8f850bf2055d8cf0f7119f0c7a523f";
+    sha256 = "46847ca703de3f483fbd0b2d22622f36eff03e6ef7ec7704d4ecaa3964cb2220";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyro5/default.nix b/pkgs/development/python-modules/pyro5/default.nix
index 36559a03239..bb3c2c895b3 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.7";
+  version = "5.10";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08n9jqm81pjw9hvzk6kgxwqvh29q3glgccf77kxih5nn77pwdnni";
+    sha256 = "e518e2a3375bc04c073f7c8c82509d314b00fa2f65cead9f134ebe42a922b360";
   };
 
   propagatedBuildInputs = [ serpent ];
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   checkInputs = [ pytestCheckHook ];
 
   # ignore network related tests, which fail in sandbox
-  disabledTests = [ "StartNSfunc" "Broadcast" "GetIP" ];
+  disabledTests = [ "StartNSfunc" "Broadcast" "GetIP" "TestNameServer" "TestBCSetup" ];
 
   meta = with lib; {
     description = "Distributed object middleware for Python (RPC)";
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/pyrsistent/default.nix b/pkgs/development/python-modules/pyrsistent/default.nix
index 28b804470ff..edc1bb73f5a 100644
--- a/pkgs/development/python-modules/pyrsistent/default.nix
+++ b/pkgs/development/python-modules/pyrsistent/default.nix
@@ -3,22 +3,22 @@
 , fetchPypi
 , six
 , pytest_4
-, hypothesis
+, hypothesis_4
 , pytestrunner
 }:
 
 buildPythonPackage rec {
   pname = "pyrsistent";
-  version = "0.15.6";
+  version = "0.16.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f3b280d030afb652f79d67c5586157c5c1355c9a58dfc7940566e28d28f3df1b";
+    sha256 = "28669905fe725965daa16184933676547c5bb40a5153055a8dee2a4bd7933ad3";
   };
 
   propagatedBuildInputs = [ six ];
 
-  checkInputs = [ pytestrunner pytest_4 hypothesis ];
+  checkInputs = [ pytestrunner pytest_4 hypothesis_4 ];
 
   postPatch = ''
     substituteInPlace setup.py --replace 'pytest<5' 'pytest'
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/pyscreenshot/default.nix b/pkgs/development/python-modules/pyscreenshot/default.nix
index 2865380076a..23aa092641f 100644
--- a/pkgs/development/python-modules/pyscreenshot/default.nix
+++ b/pkgs/development/python-modules/pyscreenshot/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyscreenshot";
-  version = "0.6";
+  version = "2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7322ad9454652b1702a3689646ce53ef01ed2b14869ea557030bd4e03a06fc0e";
+    sha256 = "dec8517cb18faf4f983dd2ee6636924e472a5644da1480ae871786dfcac244e9";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyscss/default.nix b/pkgs/development/python-modules/pyscss/default.nix
index f268566fb54..30b5205050d 100644
--- a/pkgs/development/python-modules/pyscss/default.nix
+++ b/pkgs/development/python-modules/pyscss/default.nix
@@ -9,15 +9,15 @@
 , pythonOlder
 }:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "pyScss";
-  version = "1.3.5";
+  version = "1.3.7";
 
   src = fetchFromGitHub {
-    sha256 = "0lfsan74vcw6dypb196gmbprvlbran8p7w6czy8hyl2b1l728mhz";
-    rev = "v1.3.5";
     repo = "pyScss";
     owner = "Kronuz";
+    rev = version;
+    sha256 = "0701hziiiw67blafgpmjhzspmrss8mfvif7fw0rs8fikddwwc9g6";
   };
 
   checkInputs = [ pytest ];
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 afa48569e2a..f9d07be5796 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.14.2";
 
   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 = "1cwjpv8qmjksi7cj4naw54h2afphw44chrf1pmfjamyyj8vz6ykw";
   };
 
   patches = [
@@ -23,11 +23,12 @@ stdenv.mkDerivation rec {
     "-DPYTHON_EXECUTABLE=${python.interpreter}"
   ];
 
-  nativeBuildInputs = [ cmake ninja qt5.qmake shiboken2 python ];
+  nativeBuildInputs = [ cmake ninja qt5.qmake python ];
   buildInputs = with qt5; [
     qtbase qtxmlpatterns qtmultimedia qttools qtx11extras qtlocation qtscript
     qtwebsockets qtwebengine qtwebchannel qtcharts qtsensors qtsvg
   ];
+  propagatedBuildInputs = [ shiboken2 ];
 
   meta = with stdenv.lib; {
     description = "LGPL-licensed Python bindings for Qt";
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/pysmb/default.nix b/pkgs/development/python-modules/pysmb/default.nix
index 07de522f796..605c13c0c9c 100644
--- a/pkgs/development/python-modules/pysmb/default.nix
+++ b/pkgs/development/python-modules/pysmb/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "pysmb";
-  version = "1.1.28";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
     format = "setuptools";
     extension = "zip";
-    sha256 = "0x44yq440c1j3xnl7qigz2fpfzhx68n9mbj7ps7rd0kj0plcmr2q";
+    sha256 = "1gkh28m74rf0ic51cxahiyw4sfz3sp3dz0iggsksi917ryyinwmb";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pysnooper/default.nix b/pkgs/development/python-modules/pysnooper/default.nix
index 347daa6cec0..61e1de20acf 100644
--- a/pkgs/development/python-modules/pysnooper/default.nix
+++ b/pkgs/development/python-modules/pysnooper/default.nix
@@ -1,26 +1,24 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, python-toolbox
 , pytest
 , isPy27
 }:
 
 buildPythonPackage rec {
-  version = "0.3.0";
+  version = "0.4.1";
   pname = "pysnooper";
 
   src = fetchPypi {
     inherit version;
     pname = "PySnooper";
-    sha256 = "14vcxrzfmfhsmdck1cb56a6lbfga15qfhlkap9mh47fgspcq8xkx";
+    sha256 = "1xngly13x3ylwwcdml2ns8skpxip2myzavp3b9ff2dpqaalf0hdl";
   };
 
   # test dependency python-toolbox fails with py27
   doCheck = !isPy27;
 
   checkInputs = [
-    python-toolbox
     pytest
   ];
 
diff --git a/pkgs/development/python-modules/pysnow/default.nix b/pkgs/development/python-modules/pysnow/default.nix
index db02f0f390e..ef7fcd20e78 100644
--- a/pkgs/development/python-modules/pysnow/default.nix
+++ b/pkgs/development/python-modules/pysnow/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "pysnow";
-  version = "0.7.14";
+  version = "0.7.16";
   
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0a6ce8b5f247fbfe5a53829c2f22391161e88646742283f861bce32bfe1626f1";
+    sha256 = "5df61091470e48b5b3a6ea75637f69d3aacae20041487ea457a9a0e3093fba8c";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pysonos/default.nix b/pkgs/development/python-modules/pysonos/default.nix
index 83d1a606658..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.24";
+  version = "0.0.32";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "294ffce5394a3e0da6a6f4e23f84031f06d9eb76eaa362507c0b1033ffbf69b4";
+    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 8de0bd02b51..8c7e0f64c1f 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.4";
+  version = "2.4.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13655eb113b8cf5f3f85b24fd92f86c4668a723723bd68949d028fa0df2cf694";
+    sha256 = "b4b319a3ffd187a3019f654ae1c8ac38048bcec2940f8cecdef829302d166feb";
   };
 
   # 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 990e2b28bd8..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.0a3";
+  version = "unstable-2020-06-19";  # no versioned release since 2018
+  disabled = isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0914a662d57a14bce9df21f22711b5c9b2fef37cf461be54ed35c6e229060fd4";
+  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/pyspread/default.nix b/pkgs/development/python-modules/pyspread/default.nix
index 14abe9ff02d..16f1e2c215e 100644
--- a/pkgs/development/python-modules/pyspread/default.nix
+++ b/pkgs/development/python-modules/pyspread/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "pyspread";
-  version = "1.1.3";
+  version = "1.99.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6e5d0eb49750eed7734852e15727e190270880c75dcc5f6c8fb1bfdaa59c48fc";
+    sha256 = "117268cbeb225e0aca4c59381b7bdf5333bf95ca85c1db410a326a887a74f3da";
   };
 
   propagatedBuildInputs = [ numpy wxPython matplotlib pycairo python-gnupg xlrd xlwt jedi pyenchant basemap pygtk ];
diff --git a/pkgs/development/python-modules/pysptk/default.nix b/pkgs/development/python-modules/pysptk/default.nix
index a4a293ec1b0..478595c1bfc 100644
--- a/pkgs/development/python-modules/pysptk/default.nix
+++ b/pkgs/development/python-modules/pysptk/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "pysptk";
-  version = "0.1.17";
+  version = "0.1.18";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aa8bd2ae84bfe72e9015ccb69eb3b687bc64fad6139ae0b327fe07918e1e28ff";
+    sha256 = "34c5ccc40c9e177cfd764daa9f7635c4c1e648e14ce78ba975537dae5a14c4e4";
   };
 
   PYSPTK_BUILD_VERSION = 0;
diff --git a/pkgs/development/python-modules/pystemmer/default.nix b/pkgs/development/python-modules/pystemmer/default.nix
index 1d3df7dfc34..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 = "1.3.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d1ac14eb64978c1697fcfba76e3ac7ebe24357c9428e775390f634648947cb91";
+    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-astropy-header/default.nix b/pkgs/development/python-modules/pytest-astropy-header/default.nix
new file mode 100644
index 00000000000..05c6135a4b9
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-astropy-header/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pytestcov
+, pytestCheckHook
+, numpy
+, astropy
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-astropy-header";
+  version = "0.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1y87agr324p6x5gvhziymxjlw54pyn4gqnd49papbl941djpkp5g";
+  };
+
+  propagatedBuildInputs = [
+    pytest
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytestcov
+    numpy
+    astropy
+  ];
+
+  meta = with lib; {
+    description = "Plugin to add diagnostic information to the header of the test output";
+    homepage = "https://astropy.org";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-astropy/default.nix b/pkgs/development/python-modules/pytest-astropy/default.nix
index 1365c43b03a..ae3bc04d0b4 100644
--- a/pkgs/development/python-modules/pytest-astropy/default.nix
+++ b/pkgs/development/python-modules/pytest-astropy/default.nix
@@ -1,32 +1,43 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, hypothesis
 , pytest
+, pytest-astropy-header
 , pytest-doctestplus
+, pytest-filter-subpackage
 , pytest-remotedata
 , pytest-openfiles
 , pytest-arraydiff
+, setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "pytest-astropy";
-  version = "0.5.0";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6f28fb81dcdfa745f423b8f6d0303d97357d775b4128bcc2b3668f1602fd5a0b";
+    sha256 = "619800eb2cbf64548fbea25268efe7c6f6ae206cb4825f34abd36f27bcf946a2";
   };
 
+  nativeBuildInputs = [
+    setuptools_scm
+  ];
+
   propagatedBuildInputs = [
+    hypothesis
     pytest
+    pytest-astropy-header
     pytest-doctestplus
+    pytest-filter-subpackage
     pytest-remotedata
     pytest-openfiles
     pytest-arraydiff
   ];
 
   # pytest-astropy is a meta package and has no tests
-  doCheck = false;
+  checkPhase = ":";
 
   meta = with lib; {
     description = "Meta-package containing dependencies for testing";
diff --git a/pkgs/development/python-modules/pytest-asyncio/default.nix b/pkgs/development/python-modules/pytest-asyncio/default.nix
index 1484432c045..c4a9b6fdd1e 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.10.0";
+  version = "0.12.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9fac5100fd716cbecf6ef89233e8590a4ad61d729d1732e0a96b84182df1daaf";
+    sha256 = "1lpb1q297rly685yl23mni3mmv6vmyx3qsv5ccj1vh8bvkrx4ns7";
   };
 
   buildInputs = [ pytest ]
diff --git a/pkgs/development/python-modules/pytest-black/default.nix b/pkgs/development/python-modules/pytest-black/default.nix
index 1f01e7fb65f..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.8";
+  version = "0.3.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04lppqydxm0f3f3x0l8hj7v0j6d8syj34jc37yzqwqcyqsnaga81";
+    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-check/default.nix b/pkgs/development/python-modules/pytest-check/default.nix
index 104a2ae6490..9636d20c73b 100644
--- a/pkgs/development/python-modules/pytest-check/default.nix
+++ b/pkgs/development/python-modules/pytest-check/default.nix
@@ -1,24 +1,22 @@
 { stdenv
 , buildPythonPackage
-, fetchFromGitHub
+, fetchPypi
 , pytest
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pytest-check";
-  version = "0.3.5";
+  version = "0.3.9";
 
-  src = fetchFromGitHub {
-    owner = "okken";
-    repo = "pytest-check";
-    rev = version;
-    sha256 = "11wb4f4sp4cr5mzqdakrbycwgfr2p1sx1l91fa6525wnfvgc0qy3";
+  src = fetchPypi {
+    pname = "pytest_check";
+    inherit version;
+    sha256 = "0asrrz0fgk6wqffsz1ffd6z9xyw314fwh5bwjzcq75w8w1g4ass9";
   };
 
-  buildInputs = [ pytest ];
-
-  checkInputs = [ pytest pytestCheckHook ];
+  propagatedBuildInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
   meta = with stdenv.lib; {
     description = "pytest plugin allowing multiple failures per test";
diff --git a/pkgs/development/python-modules/pytest-cov/default.nix b/pkgs/development/python-modules/pytest-cov/default.nix
index 420afd3c555..5affa8ae35b 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.8.1";
+  version = "2.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cc6742d8bac45070217169f5f72ceee1e0e55b0221f54bcf24845972d3a47f2b";
+    sha256 = "b6a814b8ed6247bd81ff47f038511b57fe1ce7f4cc25b9106f1a4b106f1d9322";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/pytest-datadir/default.nix b/pkgs/development/python-modules/pytest-datadir/default.nix
new file mode 100644
index 00000000000..6ce78441920
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-datadir/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub
+, setuptools_scm, pytest, cmake
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-datadir";
+  version = "1.3.1";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "gabrielcnr";
+    repo = pname;
+    rev = version;
+    sha256 = "0kwgp6sqnqnmww5r0dkmyfpi0lmw0iwxz3fnwn2fs8w6bvixzznf";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  preBuild = ''
+    export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
+  '';
+
+  checkInputs = [ pytest ];
+  checkPhase = "pytest";
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/gabrielcnr/pytest-datadir";
+    description = "pytest plugin for manipulating test data directories and files";
+    license = licenses.mit;
+    maintainers = with maintainers; [ metadark ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-dependency/default.nix b/pkgs/development/python-modules/pytest-dependency/default.nix
index 13806781125..9e570a801f9 100644
--- a/pkgs/development/python-modules/pytest-dependency/default.nix
+++ b/pkgs/development/python-modules/pytest-dependency/default.nix
@@ -1,23 +1,14 @@
 { stdenv, buildPythonPackage, fetchPypi, fetchpatch, pytest }:
 
 buildPythonPackage rec {
-  version = "0.4.0";
+  version = "0.5.1";
   pname = "pytest-dependency";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bda0ef48e6a44c091399b12ab4a7e580d2dd8294c222b301f88d7d57f47ba142";
+    sha256 = "c2a892906192663f85030a6ab91304e508e546cddfe557d692d61ec57a1d946b";
   };
 
-  patches = [
-    # Fix tests for pytest>=4.2.0. Remove with the next release
-    (fetchpatch {
-      url = "https://github.com/RKrahl/pytest-dependency/commit/089395bf77e629ee789666361ee12395d840252c.patch";
-      sha256 = "1nkha2gndrr3mx11kx2ipxhphqd6wr25hvkrfwzyrispqfhgl0wm";
-      excludes = [ "doc/src/changelog.rst" ];
-    })
-  ];
-
   propagatedBuildInputs = [ pytest ];
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/pytest-django/default.nix b/pkgs/development/python-modules/pytest-django/default.nix
index 2417bdd4ac0..9763e074cee 100644
--- a/pkgs/development/python-modules/pytest-django/default.nix
+++ b/pkgs/development/python-modules/pytest-django/default.nix
@@ -10,11 +10,11 @@
 }:
 buildPythonPackage rec {
   pname = "pytest-django";
-  version = "3.7.0";
+  version = "3.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17592f06d51c2ef4b7a0fb24aa32c8b6998506a03c8439606cb96db160106659";
+    sha256 = "664e5f42242e5e182519388f01b9f25d824a9feb7cd17d8f863c8d776f38baf9";
   };
 
   nativeBuildInputs = [ pytest setuptools_scm ];
diff --git a/pkgs/development/python-modules/pytest-doctestplus/default.nix b/pkgs/development/python-modules/pytest-doctestplus/default.nix
index ed71592361c..421cca33984 100644
--- a/pkgs/development/python-modules/pytest-doctestplus/default.nix
+++ b/pkgs/development/python-modules/pytest-doctestplus/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , six
 , pytest
 , numpy
@@ -8,11 +9,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-doctestplus";
-  version = "0.5.0";
+  version = "0.7.0";
+  disabled = isPy27; # abandoned upstream
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "41386187b9261cd59a3ffe4cf9df58d517288a1d3f11d96749b39b4e38b0a02c";
+    sha256 = "ed440f43e33191f09aed7bbc4f60db3dfb8f295ab33e04c59302af7eda9e29aa";
   };
 
   propagatedBuildInputs = [
@@ -25,8 +27,9 @@ buildPythonPackage rec {
     pytest
   ];
 
+  # check_distribution incorrectly pulls pytest version
   checkPhase = ''
-    pytest
+    pytest -k 'not check_distribution'
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pytest-factoryboy/default.nix b/pkgs/development/python-modules/pytest-factoryboy/default.nix
new file mode 100644
index 00000000000..44a59730146
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-factoryboy/default.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, fetchFromGitHub
+, buildPythonPackage
+, pytestCheckHook
+, pytest
+, inflection
+, factory_boy
+, pytestcache
+, pytestcov
+, pytestpep8
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-factoryboy";
+  version = "2.0.3";
+
+  src = fetchFromGitHub {
+    owner = "pytest-dev";
+    repo = "pytest-factoryboy";
+    rev = version;
+    sha256 = "0m1snyybq2k51khlydhisq300vzys897vdbsicph628iran950hn";
+  };
+
+  propagatedBuildInputs = [ factory_boy inflection pytest ];
+
+  # The project uses tox, which we can't. So we simply run pytest manually.
+  checkInputs = [
+    mock
+    pytestCheckHook
+    pytestcache
+    pytestcov
+    pytestpep8
+  ];
+  pytestFlagsArray = [ "--ignore=docs" ];
+
+  meta = with stdenv.lib; {
+    description = "Integration of factory_boy into the pytest runner.";
+    homepage = "https://pytest-factoryboy.readthedocs.io/en/latest/";
+    maintainers = with maintainers; [ winpat ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-filter-subpackage/default.nix b/pkgs/development/python-modules/pytest-filter-subpackage/default.nix
new file mode 100644
index 00000000000..6caf4d9c772
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-filter-subpackage/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pytestcov
+, pytest-doctestplus
+, pytestCheckHook
+, setuptools_scm
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-filter-subpackage";
+  version = "0.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1s4s2kd31yc65rfvl4xhy8xx806xhy59kc7668h6b6wq88xgrn5p";
+  };
+
+  nativeBuildInputs = [
+    setuptools_scm
+  ];
+
+  propagatedBuildInputs = [
+    pytest
+    pytest-doctestplus
+    pytestcov
+    pytestCheckHook
+  ];
+
+  # missing some files
+  disabledTests = [ "with_rst" ];
+
+  meta = with lib; {
+    description = "Meta-package containing dependencies for testing";
+    homepage = "https://astropy.org";
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-flake8/default.nix b/pkgs/development/python-modules/pytest-flake8/default.nix
index 88f5cc0e188..a5ed447acea 100644
--- a/pkgs/development/python-modules/pytest-flake8/default.nix
+++ b/pkgs/development/python-modules/pytest-flake8/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "pytest-flake8";
-  version = "1.0.4";
+  version = "1.0.6";
 
   # although pytest is a runtime dependency, do not add it as
   # propagatedBuildInputs in order to allow packages depend on another version
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4d225c13e787471502ff94409dcf6f7927049b2ec251c63b764a4b17447b60c0";
+    sha256 = "1b82bb58c88eb1db40524018d3fcfd0424575029703b4e2d8e3ee873f2b17027";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/pytest-flakes/default.nix b/pkgs/development/python-modules/pytest-flakes/default.nix
index d1f06b03a8d..39eb56ce76e 100644
--- a/pkgs/development/python-modules/pytest-flakes/default.nix
+++ b/pkgs/development/python-modules/pytest-flakes/default.nix
@@ -2,18 +2,22 @@
 , pytestpep8, pytest, pyflakes }:
 
 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 ];
-  nativeBuildInputs = [ pytest ];
-  propagatedBuildInputs = [ pyflakes ];
+  propagatedBuildInputs = [ pytest pyflakes ];
 
+  # no longer passes
+  doCheck = false;
+  pythonImportsCheck = [ "pytest_flakes" ];
   # disable one test case that looks broken
   checkPhase = ''
     py.test test_flakes.py -k 'not test_syntax_error'
diff --git a/pkgs/development/python-modules/pytest-flask/default.nix b/pkgs/development/python-modules/pytest-flask/default.nix
index 0ad85844440..047b06d9792 100644
--- a/pkgs/development/python-modules/pytest-flask/default.nix
+++ b/pkgs/development/python-modules/pytest-flask/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-flask";
-  version = "0.15.1";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ri3p3hibb1r2wcblpvs64s4jz40ci4jki4s2nf3xf7iz2wwbn6b";
+    sha256 = "4d5678a045c07317618d80223ea124e21e8acc89dae109542dd1fdf6783d96c2";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/pytest-freezegun/default.nix b/pkgs/development/python-modules/pytest-freezegun/default.nix
new file mode 100644
index 00000000000..424d8fde232
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-freezegun/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, freezegun
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-freezegun";
+  version = "0.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "19c82d5633751bf3ec92caa481fb5cffaac1787bd485f0df6436fd6242176949";
+  };
+
+  propagatedBuildInputs = [
+    freezegun
+    pytest
+  ];
+
+  meta = with lib; {
+    description = "Wrap tests with fixtures in freeze_time";
+    homepage = "https://github.com/ktosiek/pytest-freezegun";
+    license = licenses.mit;
+    maintainers = [ maintainers.mic92 ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-isort/default.nix b/pkgs/development/python-modules/pytest-isort/default.nix
index 9aa4410ec03..869466c6500 100644
--- a/pkgs/development/python-modules/pytest-isort/default.nix
+++ b/pkgs/development/python-modules/pytest-isort/default.nix
@@ -1,17 +1,18 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, isort }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, mock, pytest, isort }:
 
 buildPythonPackage rec {
   pname = "pytest-isort";
-  version = "0.3.1";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4bfee60dad1870b51700d55a85f5ceda766bd9d3d2878c1bbabee80e61b1be1a";
+    sha256 = "01j0sx8yxd7sbmvwky68mvnwrxxs5bjkvi61043jzff1ga92kg9h";
   };
 
   propagatedBuildInputs = [ isort ];
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest ]
+    ++ lib.optionals isPy27 [ mock ];
 
   checkPhase = ''
     py.test -vs --cache-clear
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/2.nix b/pkgs/development/python-modules/pytest-mock/2.nix
new file mode 100644
index 00000000000..3764a05af05
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-mock/2.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, isPy3k
+, pytest
+, mock
+, setuptools_scm
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-mock";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b35eb281e93aafed138db25c8772b95d3756108b601947f89af503f8c629413f";
+  };
+
+  propagatedBuildInputs = lib.optional (!isPy3k) mock;
+
+  nativeBuildInputs = [
+   setuptools_scm
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "Thin-wrapper around the mock package for easier use with py.test.";
+    homepage    = "https://github.com/pytest-dev/pytest-mock";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ nand0p ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-mock/default.nix b/pkgs/development/python-modules/pytest-mock/default.nix
index c65e617b795..ff08efc12be 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 = "1.13.0";
+  version = "3.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e24a911ec96773022ebcc7030059b57cd3480b56d4f5d19b7c370ec635e6aed5";
+    sha256 = "636e792f7dd9e2c80657e174c04bf7aa92672350090736d82e97e92ce8f68737";
   };
 
   propagatedBuildInputs = lib.optional (!isPy3k) mock;
diff --git a/pkgs/development/python-modules/pytest-mypy/default.nix b/pkgs/development/python-modules/pytest-mypy/default.nix
index 2e1bd1b626d..368d13a9139 100644
--- a/pkgs/development/python-modules/pytest-mypy/default.nix
+++ b/pkgs/development/python-modules/pytest-mypy/default.nix
@@ -1,20 +1,23 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, filelock
 , pytest
 , mypy
+, setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "pytest-mypy";
-  version = "0.4.2";
+  version = "0.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5a5338cecff17f005b181546a13e282761754b481225df37f33d37f86ac5b304";
+    sha256 = "2560a9b27d59bb17810d12ec3402dfc7c8e100e40539a70d2814bcbb27240f27";
   };
 
-  propagatedBuildInputs = [ pytest mypy ];
+  nativeBuildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ pytest mypy filelock ];
 
   meta = with lib; {
     description = "Mypy static type checker plugin for Pytest";
diff --git a/pkgs/development/python-modules/pytest-openfiles/default.nix b/pkgs/development/python-modules/pytest-openfiles/default.nix
index daa55f91cd2..bb7bdf03d00 100644
--- a/pkgs/development/python-modules/pytest-openfiles/default.nix
+++ b/pkgs/development/python-modules/pytest-openfiles/default.nix
@@ -1,37 +1,31 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , pytest
+, pytestCheckHook
 , psutil
+, setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "pytest-openfiles";
-  version = "0.4.0";
+  version = "0.5.0";
+  disabled = isPy27; # abandoned
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "af591422f2bfa95f7690d83aeb8d76bd5421cb8b1dcaf085d58cd92e8d92058d";
+    sha256 = "179c2911d8aee3441fee051aba08e0d9b4dab61b829ae4811906d5c49a3b0a58";
   };
 
+  nativeBuildInputs = [ setuptools_scm ];
+
   propagatedBuildInputs = [
     pytest
     psutil
   ];
 
-  checkInputs = [
-    pytest
-  ];
-
-  postConfigure = ''
-    # remove on next release
-    substituteInPlace setup.cfg \
-      --replace "[pytest]" "[tool:pytest]"
-  '';
-
-  checkPhase = ''
-    pytest
-  '';
+  checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Pytest plugin for detecting inadvertent open file handles";
diff --git a/pkgs/development/python-modules/pytest-pylint/default.nix b/pkgs/development/python-modules/pytest-pylint/default.nix
index 40ab69c5735..f7a9a314306 100644
--- a/pkgs/development/python-modules/pytest-pylint/default.nix
+++ b/pkgs/development/python-modules/pytest-pylint/default.nix
@@ -6,24 +6,26 @@
 , pylint
 , six
 , pytestrunner
+, toml
 }:
 
 buildPythonPackage rec {
   pname = "pytest-pylint";
-  version = "0.15.1";
+  version = "0.17.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0sbmnw3bly4pry5lp6q6g0r8xzaxwbdlf0k19k8pygkhllnj6gnx";
+    sha256 = "b0c177d63f6e3f5b82fa2720a6570dd2ecff1616c26ed6d02d0cbf75fd98ddf9";
   };
 
-  buildInputs = [ pytestrunner ];
+  nativeBuildInputs = [ pytestrunner ];
 
   propagatedBuildInputs = [
     pytest
     pylint
     six
+    toml
   ];
 
   # tests not included with release
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 1e8a49f90be..ec78329ff8d 100644
--- a/pkgs/development/python-modules/pytest-quickcheck/default.nix
+++ b/pkgs/development/python-modules/pytest-quickcheck/default.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPythonPackage, fetchPypi, pytest, pytest-flakes, pytestpep8, tox }:
 buildPythonPackage rec {
   pname = "pytest-quickcheck";
-  version = "0.8.3";
+  version = "0.8.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17vly6fg0s95lbg620g9dp9jjf12sj4hpbi7cg579kswabl6304g";
+    sha256 = "e368390c9e3fd48eb3edec0c4eef08d7332f1143ad7b7190d32376b2fd2e62ff";
   };
 
   buildInputs = [ pytest ];
@@ -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-rerunfailures/default.nix b/pkgs/development/python-modules/pytest-rerunfailures/default.nix
index f772fb131d8..c15320867cb 100644
--- a/pkgs/development/python-modules/pytest-rerunfailures/default.nix
+++ b/pkgs/development/python-modules/pytest-rerunfailures/default.nix
@@ -1,12 +1,14 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, mock }:
+{ stdenv, buildPythonPackage, pythonOlder, fetchPypi, pytest, mock }:
 
 buildPythonPackage rec {
   pname = "pytest-rerunfailures";
-  version = "8.0";
+  version = "9.0";
+
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04p8rfvv7yi3gsdm1dw1mfhjwg6507rhgj7nbm5gfqw4kxmj7h8p";
+    sha256 = "1r5qnkkhkfvx1jbi1wfyxpyggwyr32w6h5z3i93a03bc92kc4nl9";
   };
 
   checkInputs = [ mock pytest ];
@@ -21,6 +23,6 @@ buildPythonPackage rec {
     description = "pytest plugin to re-run tests to eliminate flaky failures";
     homepage = "https://github.com/pytest-dev/pytest-rerunfailures";
     license = licenses.mpl20;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ das-g ];
   };
 }
diff --git a/pkgs/development/python-modules/pytest-sanic/default.nix b/pkgs/development/python-modules/pytest-sanic/default.nix
index 68f8fd4fcee..147ce6a1959 100644
--- a/pkgs/development/python-modules/pytest-sanic/default.nix
+++ b/pkgs/development/python-modules/pytest-sanic/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-sanic";
-  version = "1.1.2";
+  version = "1.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "61a60e1b0456b2ceaeeb7173783f3450332c3609017fb6b18176b307f7186d3a";
+    sha256 = "99e02c28cfa18a0a9af0cd151dddf0eca373279b9bac808733746f7ed7030ecc";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-sugar/default.nix b/pkgs/development/python-modules/pytest-sugar/default.nix
index 2ff6f40e344..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.2";
+  version = "0.9.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fcd87a74b2bce5386d244b49ad60549bfbc4602527797fac167da147983f58ab";
+    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 b8535da4c7a..9d9add16782 100644
--- a/pkgs/development/python-modules/pytest-testmon/default.nix
+++ b/pkgs/development/python-modules/pytest-testmon/default.nix
@@ -1,17 +1,19 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , coverage
 , pytest
 }:
 
 buildPythonPackage rec {
   pname = "pytest-testmon";
-  version = "1.0.1";
+  version = "1.0.2";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b823b03faf5778d1e15fb9f52e104df4da9c1021daeb313b339fccbbfb8dbd5f";
+    sha256 = "fdb016d953036051d1ef0e36569b7168cefa4914014789a65a4ffefc87f85ac5";
   };
 
   propagatedBuildInputs = [ coverage ];
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..53bdbdf1f44
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-trio/default.nix
@@ -0,0 +1,39 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, trio, async_generator, hypothesis, outcome, pytest, pytestcov }:
+
+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
+    pytestcov
+    hypothesis
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  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/default.nix b/pkgs/development/python-modules/pytest-xdist/default.nix
index d71d28612ee..d5fc8ce25b1 100644
--- a/pkgs/development/python-modules/pytest-xdist/default.nix
+++ b/pkgs/development/python-modules/pytest-xdist/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-xdist";
-  version = "1.30.0";
+  version = "1.32.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5d1b1d4461518a6023d56dab62fb63670d6f7537f23e2708459a557329accf48";
+    sha256 = "1d4166dcac69adb38eeaedb88c8fada8588348258a3492ab49ba9161f2971129";
   };
 
   nativeBuildInputs = [ setuptools_scm pytest ];
diff --git a/pkgs/development/python-modules/pytest-xprocess/default.nix b/pkgs/development/python-modules/pytest-xprocess/default.nix
index 840a096a085..8548dba8d8c 100644
--- a/pkgs/development/python-modules/pytest-xprocess/default.nix
+++ b/pkgs/development/python-modules/pytest-xprocess/default.nix
@@ -1,17 +1,19 @@
 { lib, buildPythonPackage, fetchPypi
 , psutil
 , pytest
+, setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "pytest-xprocess";
-  version = "0.12.1";
+  version = "0.13.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06w2acg0shy0vxrmnxpqclimhgfjys5ql5kmmzr7r1lai46x1q2h";
+    sha256 = "779aeca517cd9c996d1544bdc510cb3cff40c48136d94bbce6148e27f30a93ff";
   };
 
+  nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ psutil pytest ];
 
   # Remove test QoL package from install_requires
diff --git a/pkgs/development/python-modules/pytest-xvfb/default.nix b/pkgs/development/python-modules/pytest-xvfb/default.nix
index b9ae9be428d..64078d68a8b 100644
--- a/pkgs/development/python-modules/pytest-xvfb/default.nix
+++ b/pkgs/development/python-modules/pytest-xvfb/default.nix
@@ -3,15 +3,17 @@
 , fetchPypi
 , pytest
 , virtual-display
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "pytest-xvfb";
-  version = "1.2.0";
+  version = "2.0.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a7544ca8d0c7c40db4b40d7a417a7b071c68d6ef6bdf9700872d7a167302f979";
+    sha256 = "1kyq5rg27dsnj7dc6x9y7r8vwf8rc88y2ppnnw6r96alw0nn9fn4";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest/4.nix b/pkgs/development/python-modules/pytest/4.nix
index d77e52ab7f6..4fe588f6456 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.8";
+  version = "4.6.9";
   pname = "pytest";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6192875be8af57b694b7c4904e909680102befcb99e610ef3d9f786952f795aa";
+    sha256 = "0fgkmpc31nzy97fxfrkqbzycigdwxwwmninx3qhkzp81migggs0r";
   };
 
   checkInputs = [ hypothesis mock ];
diff --git a/pkgs/development/python-modules/pytest/default.nix b/pkgs/development/python-modules/pytest/default.nix
index 8f86e41be3b..daf43961ea6 100644
--- a/pkgs/development/python-modules/pytest/default.nix
+++ b/pkgs/development/python-modules/pytest/default.nix
@@ -1,9 +1,25 @@
-{ stdenv, buildPythonPackage, pythonOlder, fetchPypi, attrs, hypothesis, py
-, setuptools_scm, setuptools, six, pluggy, funcsigs, isPy3k, more-itertools
-, atomicwrites, mock, writeText, pathlib2, wcwidth, packaging, isPyPy, python
+{ stdenv, buildPythonPackage, pythonOlder, fetchPypi, isPy3k, isPyPy
+, atomicwrites
+, attrs
+, funcsigs
+, hypothesis
+, mock
+, more-itertools
+, packaging
+, pathlib2
+, pluggy
+, py
+, pygments
+, python
+, setuptools
+, setuptools_scm
+, six
+, wcwidth
+, writeText
 }:
+
 buildPythonPackage rec {
-  version = "5.3.5";
+  version = "5.4.3";
   pname = "pytest";
 
   disabled = !isPy3k;
@@ -15,10 +31,10 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0d5fe9189a148acc3c3eb2ac8e1ac0742cb7618c084f3d228baaec0c254b318d";
+    sha256 = "7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8";
   };
 
-  checkInputs = [ hypothesis mock ];
+  checkInputs = [ hypothesis pygments ];
   nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ attrs py setuptools six pluggy more-itertools atomicwrites wcwidth packaging ]
     ++ stdenv.lib.optionals (pythonOlder "3.6") [ pathlib2 ];
diff --git a/pkgs/development/python-modules/python-binance/default.nix b/pkgs/development/python-modules/python-binance/default.nix
index b4857d7abef..1ad3a5128be 100644
--- a/pkgs/development/python-modules/python-binance/default.nix
+++ b/pkgs/development/python-modules/python-binance/default.nix
@@ -3,12 +3,12 @@
 , autobahn, certifi, chardet, cryptography, dateparser, pyopenssl, requests, service-identity, twisted }:
 
 buildPythonPackage rec {
-  version = "0.7.4";
+  version = "0.7.5";
   pname = "python-binance";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7d0b81a9d395fd071581d275af09a31f0c5ae3ecb25a3f47faaaf1eff779de3f";
+    sha256 = "d6a96c0e55fc78d45279944515d385b3971300f35c2380ddb82689d676712053";
   };
 
   doCheck = false;  # Tries to test multiple interpreters with tox
diff --git a/pkgs/development/python-modules/python-daemon/default.nix b/pkgs/development/python-modules/python-daemon/default.nix
index e33aee6c1c9..d8b501d62e5 100644
--- a/pkgs/development/python-modules/python-daemon/default.nix
+++ b/pkgs/development/python-modules/python-daemon/default.nix
@@ -2,7 +2,7 @@
 , docutils
 , lockfile
 , mock
-, pytest
+, pytest_4
 , testscenarios
 , twine
 }:
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [ twine ];
   propagatedBuildInputs = [ docutils lockfile ];
 
-  checkInputs = [ pytest mock testscenarios ];
+  checkInputs = [ pytest_4 mock testscenarios ];
   checkPhase = ''
     pytest -k 'not detaches_process_context \
                 and not standard_stream_file_descriptors'
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 bc71a662f3e..dd9191835a4 100644
--- a/pkgs/development/python-modules/python-dotenv/default.nix
+++ b/pkgs/development/python-modules/python-dotenv/default.nix
@@ -4,20 +4,21 @@
 , pytest
 , sh
 , typing
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "python-dotenv";
-  version = "0.10.5";
+  version = "0.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p6xk0f1yj1s4n8wjs9m8xqilc5bcwvfzsy9nv5lrmkhr78bym7j";
+    sha256 = "0gf3r4xvqk9ai1k3ka8c4dlblqhs7286zbd1b20adn953fdcj44c";
   };
 
   propagatedBuildInputs = [ click ] ++ lib.optionals isPy27 [ typing ];
 
-  checkInputs = [ ipython pytest sh ];
+  checkInputs = [ ipython mock pytest sh ];
 
   # cli tests are impure
   checkPhase = ''
diff --git a/pkgs/development/python-modules/python-engineio/default.nix b/pkgs/development/python-modules/python-engineio/default.nix
index 128fb8961d4..1c48cfa6c66 100644
--- a/pkgs/development/python-modules/python-engineio/default.nix
+++ b/pkgs/development/python-modules/python-engineio/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "python-engineio";
-  version = "3.10.0";
+  version = "3.13.0";
 
   src = fetchFromGitHub {
     owner = "miguelgrinberg";
     repo = "python-engineio";
     rev = "v${version}";
-    sha256 = "1495r55177c38wq88pb28l50dfd4213iyxwq1k5rmsgp66vww09s";
+    sha256 = "1fgfrgcvjg3fyza5lhl1l9cfq073xrwwhh3xs178csrjz4s8s378";
   };
 
   propagatedBuildInputs = [
@@ -47,7 +47,6 @@ buildPythonPackage rec {
     description = "Engine.IO server";
     homepage = "https://github.com/miguelgrinberg/python-engineio/";
     license = licenses.mit;
-    platforms = platforms.linux;
     maintainers = [ maintainers.mic92 ];
   };
 }
diff --git a/pkgs/development/python-modules/python-gnupg/default.nix b/pkgs/development/python-modules/python-gnupg/default.nix
index 17deff412cb..3dd44a72ea4 100644
--- a/pkgs/development/python-modules/python-gnupg/default.nix
+++ b/pkgs/development/python-modules/python-gnupg/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname   = "python-gnupg";
-  version = "0.4.5";
+  version = "0.4.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01gckjhvsmr6kfwfk4qdxm5jz8nq8zilbjhzpzpiab6d96cyalrk";
+    sha256 = "3aa0884b3bd414652c2385b9df39e7b87272c2eca1b8fcc3089bc9e58652019a";
   };
 
   # Let's make the library default to our gpg binary
diff --git a/pkgs/development/python-modules/python-hosts/default.nix b/pkgs/development/python-modules/python-hosts/default.nix
index e7dbaa1d64e..cf1314e0d4c 100644
--- a/pkgs/development/python-modules/python-hosts/default.nix
+++ b/pkgs/development/python-modules/python-hosts/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-hosts";
-  version = "0.4.7";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0jdpihj8ajn6pqqa9viw0043l5wvbzgk81rnyk2134iyzhg06z80";
+    sha256 = "850998704ba9025ce4c8ffd45dc4fbea2b5e30247bf3b574872ac5df90426b4d";
   };
 
   # win_inet_pton is required for windows support
diff --git a/pkgs/development/python-modules/python-igraph/default.nix b/pkgs/development/python-modules/python-igraph/default.nix
index 0f20a01e0b2..d67ec59f3ac 100644
--- a/pkgs/development/python-modules/python-igraph/default.nix
+++ b/pkgs/development/python-modules/python-igraph/default.nix
@@ -1,18 +1,26 @@
 { buildPythonPackage, fetchPypi, lib, isPy3k
-, pkgconfig, igraph }:
+, pkgconfig, igraph
+, texttable }:
 
 buildPythonPackage rec {
   pname = "python-igraph";
-  version = "0.7.1.post6";
+  version = "0.8.2";
+  disabled = !isPy3k; # fails to build
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ igraph ];
+  propagatedBuildInputs = [ texttable ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0xp61zz710qlzhmzbfr65d5flvsi8zf2xy78s6rsszh719wl5sm5";
+    sha256 = "4601638d7d22eae7608cdf793efac75e6c039770ec4bd2cecf76378c84ce7d72";
   };
 
+  # NB: We want to use our igraph, not vendored igraph, but even with
+  # pkg-config on the PATH, their custom setup.py still needs to be explicitly
+  # told to do it. ~ C.
+  setupPyGlobalFlags = [ "--use-pkg-config" ];
+
   doCheck = !isPy3k;
 
   meta = {
diff --git a/pkgs/development/python-modules/python-jose/default.nix b/pkgs/development/python-modules/python-jose/default.nix
index d6986f06975..09a42458311 100644
--- a/pkgs/development/python-modules/python-jose/default.nix
+++ b/pkgs/development/python-modules/python-jose/default.nix
@@ -1,6 +1,7 @@
 { stdenv, buildPythonPackage, fetchFromGitHub
 , future, six, ecdsa, rsa
-, pycrypto, pytest, pytestcov, pytestrunner, cryptography
+, pycrypto, pytestcov, pytestrunner, cryptography
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -16,17 +17,16 @@ buildPythonPackage rec {
 
   checkInputs = [
     pycrypto
-    pytest
+    pytestCheckHook
     pytestcov
     pytestrunner
     cryptography # optional dependency, but needed in tests
   ];
-  checkPhase = ''
-    py.test
-  '';
 
-  # https://github.com/mpdavis/python-jose/issues/149
-  PYTEST_ADDOPTS = "-k 'not test_invalid_claims_json and not test_invalid_claims'";
+  disabledTests = [
+    # https://github.com/mpdavis/python-jose/issues/176
+    "test_key_too_short"
+  ];
 
   propagatedBuildInputs = [ future six ecdsa rsa ];
 
diff --git a/pkgs/development/python-modules/python-jsonrpc-server/default.nix b/pkgs/development/python-modules/python-jsonrpc-server/default.nix
index 16c53cd7cab..12ad5170a7c 100644
--- a/pkgs/development/python-modules/python-jsonrpc-server/default.nix
+++ b/pkgs/development/python-modules/python-jsonrpc-server/default.nix
@@ -1,6 +1,7 @@
 { stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
 , pytest, mock, pytestcov, coverage
 , future, futures, ujson, isPy38
+, fetchpatch
 }:
 
 buildPythonPackage rec {
@@ -11,11 +12,13 @@ buildPythonPackage rec {
     owner = "palantir";
     repo = "python-jsonrpc-server";
     rev = version;
-    sha256 = "sha256:027sx5pv4i9a192kr00bjjcxxprh2xyr8q5372q8ghff3xryk9dd";
+    sha256 = "027sx5pv4i9a192kr00bjjcxxprh2xyr8q5372q8ghff3xryk9dd";
   };
 
   postPatch = ''
     sed -i 's/version=versioneer.get_version(),/version="${version}",/g' setup.py
+    # https://github.com/palantir/python-jsonrpc-server/issues/36
+    sed -iEe "s!'ujson.*\$!'ujson',!" setup.py
   '';
 
   checkInputs = [
@@ -26,7 +29,16 @@ buildPythonPackage rec {
     pytest
   '';
 
-  disabled = isPy38;
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/palantir/python-jsonrpc-server/commit/0a04cc4e9d44233b1038b12d63cd3bd437c2374e.patch";
+      sha256 = "177zdnp1808r2pg189bvzab44l8i2alsgv04kmrlhhnv40h66qyg";
+    })
+    (fetchpatch {
+      url = "https://github.com/palantir/python-jsonrpc-server/commit/5af6e43d0c1fb9a6a29b96d38cfd6dbeec85d0ea.patch";
+      sha256 = "1gx7lc1jxar1ngqqfkdn21s46y1mfnjf7ky2886ydk53nkaba91m";
+    })
+  ];
 
   propagatedBuildInputs = [ future ujson ]
     ++ stdenv.lib.optional (pythonOlder "3.2") futures;
diff --git a/pkgs/development/python-modules/python-language-server/default.nix b/pkgs/development/python-modules/python-language-server/default.nix
index 9f42839960d..c223ccb89b8 100644
--- a/pkgs/development/python-modules/python-language-server/default.nix
+++ b/pkgs/development/python-modules/python-language-server/default.nix
@@ -21,15 +21,20 @@ in
 
 buildPythonPackage rec {
   pname = "python-language-server";
-  version = "0.31.9";
+  version = "0.33.1";
 
   src = fetchFromGitHub {
     owner = "palantir";
     repo = "python-language-server";
     rev = version;
-    sha256 = "06hd6a1hhd57hrq4vbwfs0saplkhsrz2krv8kq9kw4fz4hx7zj74";
+    sha256 = "064ck4ikrrrhq8wjpbs5k6hzkrjvfg91pd6351471xpsij0kj16f";
   };
 
+  postPatch = ''
+    # https://github.com/palantir/python-jsonrpc-server/issues/36
+    sed -i -e 's!ujson<=!ujson>=!' setup.py
+  '';
+
   # The tests require all the providers, disable otherwise.
   doCheck = providers == ["*"];
 
@@ -53,10 +58,8 @@ buildPythonPackage rec {
     "test_pandas_completions"
     "test_matplotlib_completions"
     "test_snippet_parsing"
+    "test_numpy_hover"
   ] ++ stdenv.lib.optional isPy27 "test_flake8_lint";
-  # checkPhase = ''
-  #   HOME=$TEMPDIR pytest -k "not test_pyqt_completion and not 
-  # '';
 
   propagatedBuildInputs = [ setuptools jedi pluggy future python-jsonrpc-server flake8 ujson ]
     ++ stdenv.lib.optional (withProvider "autopep8") autopep8
diff --git a/pkgs/development/python-modules/python-lz4/default.nix b/pkgs/development/python-modules/python-lz4/default.nix
index 4c66ed02cfc..e9317d3f7c6 100644
--- a/pkgs/development/python-modules/python-lz4/default.nix
+++ b/pkgs/development/python-modules/python-lz4/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     sha256 = "02cadqfdmw4vc94px18dh4hcybpsa2lr6jz6j5phwc0jjaavh3wr";
   };
 
-  buildInputs = [ setuptools_scm pkgconfig pytestrunner ];
+  nativeBuildInputs = [ setuptools_scm pkgconfig pytestrunner ];
   checkInputs = [ pytest pytestcov psutil ];
   propagatedBuildInputs = lib.optionals (!isPy3k) [ future ];
 
diff --git a/pkgs/development/python-modules/python-magic/default.nix b/pkgs/development/python-modules/python-magic/default.nix
index 7ba794716bf..61a7dd315df 100644
--- a/pkgs/development/python-modules/python-magic/default.nix
+++ b/pkgs/development/python-modules/python-magic/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-magic";
-  version = "0.4.15";
+  version = "0.4.18";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f3765c0f582d2dfc72c15f3b5a82aecfae9498bd29ca840d72f37d7bd38bfcd5";
+    sha256 = "b757db2a5289ea3f1ced9e60f072965243ea43a2221430048fd8cacab17be0ce";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/python-miio/default.nix b/pkgs/development/python-modules/python-miio/default.nix
index 5b8c140df67..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.0.1";
+  version = "0.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fa9c318256945ad4a8623fdf921ce81c466a7aea18b04a6711efb662f520b195";
+    sha256 = "3be5275b569844dfa267c80a1e23dc0957411dd501cae0ed3cccf43467031ceb";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/python-mnist/default.nix b/pkgs/development/python-modules/python-mnist/default.nix
index 3b0ecf23770..0004c297b61 100644
--- a/pkgs/development/python-modules/python-mnist/default.nix
+++ b/pkgs/development/python-modules/python-mnist/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-mnist";
-  version = "0.6";
+  version = "0.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5d59a44335eccb4b310efb2ebb76f44e8588a1732cfb4923f4a502b61d8b653a";
+    sha256 = "a0cced01e83b5b844cff86109280df7a672a8e4e38fc19fa68999a17f8a9fbd8";
   };
 
   meta = with stdenv.lib; {
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-pam/default.nix b/pkgs/development/python-modules/python-pam/default.nix
new file mode 100644
index 00000000000..4065cd7c014
--- /dev/null
+++ b/pkgs/development/python-modules/python-pam/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildPythonPackage, fetchPypi, pam }:
+
+buildPythonPackage rec {
+  pname = "python-pam";
+  version = "1.8.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "16whhc0vr7gxsbzvsnq65nq8fs3wwmx755cavm8kkczdkz4djmn8";
+  };
+
+  postPatch = ''
+    substituteInPlace pam.py --replace 'find_library("pam")' \
+      '"${pam}/lib/libpam${stdenv.hostPlatform.extensions.sharedLibrary}"'
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Python PAM module using ctypes";
+    homepage = "https://github.com/FirefighterBlu3/python-pam";
+    maintainers = with maintainers; [ abbradar ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/python-periphery/default.nix b/pkgs/development/python-modules/python-periphery/default.nix
index d1f5de83a4c..298fbaed0f8 100644
--- a/pkgs/development/python-modules/python-periphery/default.nix
+++ b/pkgs/development/python-modules/python-periphery/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-periphery";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1v0qpv0i2kqhjvl6wvvvy29hazjdcym7nn14qzv4r5zq1zsdb92x";
+    sha256 = "57baa82e6bc59b67747317d16ad0cf9626826e8d43233af13bce924660500bd6";
   };
 
   # Some tests require physical probing and additional physical setup
diff --git a/pkgs/development/python-modules/python-ptrace/default.nix b/pkgs/development/python-modules/python-ptrace/default.nix
index 9ca1affed88..f116ec556de 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.4";
+  version = "0.9.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9885e9003e4a99c90b3bca1be9306181c9b40a33fc6e17b81027709be5e5cb87";
+    sha256 = "c46287ae611e3041bbd0572221cd1f121100dfc98d1d6c9ad6dd97e35f62501a";
   };
 
   # 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 8aad5a1a7d2..f3e58a1a621 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.4.0";
+  version = "3.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8e3ef458b9424daf35d587e69b63416a0c55ac46303f3aaff1bab4fe5a8f1e92";
+    sha256 = "06f28f63bf4ea3d739ff5c472e76563e24aa5c887002a85cbdb7a5b13aa05897";
   };
 
   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
new file mode 100644
index 00000000000..34b2c1fd74e
--- /dev/null
+++ b/pkgs/development/python-modules/python-rtmidi/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, pkg-config, alsaLib, libjack2, tox, flake8, alabaster
+}:
+
+buildPythonPackage rec {
+  pname = "python-rtmidi";
+  version = "1.4.2";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "3721ed3643f407cd96ad377cff0c2e28f2e8df0abbbe15a8a9668daae0b2b743";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ alsaLib libjack2 ];
+  checkInputs = [
+    tox
+    flake8
+    alabaster
+  ];
+
+  meta = with lib; {
+    description = "A Python binding for the RtMidi C++ library implemented using Cython";
+    homepage = "https://chrisarndt.de/projects/python-rtmidi/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
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-socketio/default.nix b/pkgs/development/python-modules/python-socketio/default.nix
index 23c806c3bab..cbddc023a15 100644
--- a/pkgs/development/python-modules/python-socketio/default.nix
+++ b/pkgs/development/python-modules/python-socketio/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "python-socketio";
-  version = "4.4.0";
+  version = "4.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "48cba5b827ac665dbf923a4f5ec590812aed5299a831fc43576a9af346272534";
+    sha256 = "358d8fbbc029c4538ea25bcaa283e47f375be0017fcba829de8a3a731c9df25a";
   };
 
   propagatedBuildInputs = [
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-toolbox/default.nix b/pkgs/development/python-modules/python-toolbox/default.nix
index 57085b04cf9..bdf09fdf2c7 100644
--- a/pkgs/development/python-modules/python-toolbox/default.nix
+++ b/pkgs/development/python-modules/python-toolbox/default.nix
@@ -4,10 +4,11 @@
 , fetchFromGitHub
 , isPy27
 , nose
+, pytest
 }:
 
 buildPythonPackage rec {
-  version = "0.9.4";
+  version = "1.0.10";
   pname = "python_toolbox";
   disabled = isPy27;
 
@@ -15,12 +16,12 @@ buildPythonPackage rec {
     owner = "cool-RR";
     repo = pname;
     rev = version;
-    sha256 = "1qy2sfqfrkgxixmd22v5lkrdykdfiymsd2s3xa7ndlvg084cgj6r";
+    sha256 = "1hpls1hwisdjx1g15cq052bdn9fvh43r120llws8bvgvj9ivnaha";
   };
 
   checkInputs = [
     docutils
-    nose
+    pytest
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/python-utils/default.nix b/pkgs/development/python-modules/python-utils/default.nix
index 67fbd4e24eb..936a1eb2e3e 100644
--- a/pkgs/development/python-modules/python-utils/default.nix
+++ b/pkgs/development/python-modules/python-utils/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-utils";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "34aaf26b39b0b86628008f2ae0ac001b30e7986a8d303b61e1357dfcdad4f6d3";
+    sha256 = "12c0glzkm81ljgf6pwh0d4rmdm1r7vvgg3ifzp8yp9cfyngw07zj";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/python-vipaccess/default.nix b/pkgs/development/python-modules/python-vipaccess/default.nix
index ca82f8aa187..cdafd3cd2a0 100644
--- a/pkgs/development/python-modules/python-vipaccess/default.nix
+++ b/pkgs/development/python-modules/python-vipaccess/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "python-vipaccess";
-  version = "0.12";
+  version = "0.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0g6mmf896wp036263zkkvi3ff59zcrzssjsw7csfmbisiszgdnrj";
+    sha256 = "f148d4534e3a4dda9050a6a038868594c1216ea2413f2144ca6697e0e20c9cad";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-vlc/default.nix b/pkgs/development/python-modules/python-vlc/default.nix
index 2bf59a63341..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.7110";
+  version = "3.0.11115";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ydnqwwgpwq1kz1pjrc7629ljzdd30izymjylsbzzyq8pq6wl6w2";
+    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/python_fedora/default.nix b/pkgs/development/python-modules/python_fedora/default.nix
index ca4aa726d50..8c9cac75761 100644
--- a/pkgs/development/python-modules/python_fedora/default.nix
+++ b/pkgs/development/python-modules/python_fedora/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "python-fedora";
-  version = "0.10.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5516b8c066bb2eb5d604ae8e84c3d31e27753795c5d84f6a792979363756405c";
+    sha256 = "efb675929ebf588c2deffa2058ff407e65d1889bca1b545a58f525135367c9e4";
   };
   propagatedBuildInputs = [ kitchen requests bunch paver lockfile
     six munch urllib3 beautifulsoup4 openidc-client ];
diff --git a/pkgs/applications/graphics/PythonMagick/default.nix b/pkgs/development/python-modules/pythonmagick/default.nix
index 487648d07ca..a647fa1005b 100644
--- a/pkgs/applications/graphics/PythonMagick/default.nix
+++ b/pkgs/development/python-modules/pythonmagick/default.nix
@@ -1,10 +1,19 @@
-# This expression provides Python bindings to ImageMagick. Python libraries are supposed to be called via `python-packages.nix`.
+{ lib
+, buildPythonPackage
+, fetchurl
+, python
+, pkg-config
+, imagemagick
+, autoreconfHook
+, boost
+, isPy3k
+, pythonImportsCheckHook
+}:
 
-{ stdenv, fetchurl, python, pkgconfig, imagemagick, autoreconfHook }:
-
-stdenv.mkDerivation rec {
+buildPythonPackage rec {
   pname = "pythonmagick";
   version = "0.9.16";
+  format = "other";
 
   src = fetchurl {
     url = "mirror://imagemagick/python/releases/PythonMagick-${version}.tar.xz";
@@ -15,12 +24,18 @@ stdenv.mkDerivation rec {
     rm configure
   '';
 
-  configureFlags = [ "--with-boost=${python.pkgs.boost}" ];
+  configureFlags = [ "--with-boost=${boost}" ];
+
+  nativeBuildInputs = [ pkg-config autoreconfHook pythonImportsCheckHook ];
+  buildInputs = [ python boost imagemagick ];
+
+  pythonImportsCheck = [
+    "PythonMagick"
+  ];
 
-  nativeBuildInputs = [ pkgconfig autoreconfHook ];
-  buildInputs = [ python python.pkgs.boost imagemagick ];
+  disabled = isPy3k;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://www.imagemagick.org/script/api.php";
     license = licenses.imagemagick;
     description = "PythonMagick provides object oriented bindings for the ImageMagick Library.";
diff --git a/pkgs/development/python-modules/pythonnet/default.nix b/pkgs/development/python-modules/pythonnet/default.nix
index 0027c8d32a6..82ddb8c810b 100644
--- a/pkgs/development/python-modules/pythonnet/default.nix
+++ b/pkgs/development/python-modules/pythonnet/default.nix
@@ -9,6 +9,7 @@
 , pkgconfig
 , dotnetbuildhelpers
 , clang
+, glib
 , mono
 }:
 
@@ -63,6 +64,7 @@ buildPythonPackage rec {
   ];
 
   buildInputs = [
+    glib
     mono
     psutil # needed for memory leak tests
   ];
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 7321fbef0d6..965f7f35088 100644
--- a/pkgs/development/python-modules/pytools/default.nix
+++ b/pkgs/development/python-modules/pytools/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "pytools";
-  version = "2019.1.1";
+  version = "2020.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ce2d702ae4ef10a70197b00b93141461140d00578f2a862fa946ca1446a300db";
+    sha256 = "3cacefed54148aafb07502c7c907cae8d9327ea35df16e3366c883a706ed5601";
   };
 
   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..152fa6a92e5
--- /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-metric-learning/default.nix b/pkgs/development/python-modules/pytorch-metric-learning/default.nix
new file mode 100644
index 00000000000..daf6accb893
--- /dev/null
+++ b/pkgs/development/python-modules/pytorch-metric-learning/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, numpy
+, scikitlearn
+, pytorch
+, torchvision
+, tqdm
+}:
+
+buildPythonPackage rec {
+  pname   = "pytorch-metric-learning";
+  version = "0.9.81";
+
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "KevinMusgrave";
+    repo = pname;
+    rev = "cb23328aba64f7f4658374cc2920ef5d56cda5c8";  # no version tag
+    sha256 = "0c2dyi4qi7clln43481xq66f6r4fadrz84jphjc5phz97bp33ds8";
+  };
+
+  propagatedBuildInputs = [
+    numpy
+    pytorch
+    scikitlearn
+    torchvision
+    tqdm
+  ];
+
+  meta = {
+    description = "Metric learning library for PyTorch";
+    homepage = "https://github.com/KevinMusgrave/pytorch-metric-learning";
+    changelog = "https://github.com/KevinMusgrave/pytorch-metric-learning/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytorch/default.nix b/pkgs/development/python-modules/pytorch/default.nix
index 2318738411f..0aea3b38b5a 100644
--- a/pkgs/development/python-modules/pytorch/default.nix
+++ b/pkgs/development/python-modules/pytorch/default.nix
@@ -104,13 +104,14 @@ let
     "LD_LIBRARY_PATH=${cudaStub}\${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH ";
 
 in buildPythonPackage rec {
-  version = "1.4.1";
+  version = "1.6.0";
   pname = "pytorch";
   disabled = !isPy3k;
 
   outputs = [
     "out"   # output standard python package
-    "dev"   # output libtorch only
+    "dev"   # output libtorch headers
+    "lib"   # output libtorch libraries
   ];
 
   src = fetchFromGitHub {
@@ -118,9 +119,31 @@ in buildPythonPackage rec {
     repo   = "pytorch";
     rev    = "v${version}";
     fetchSubmodules = true;
-    sha256 = "1aa1il4f98pswfj20cv27yfb91l1jcq4515i7mvq7sh5647yzwms";
+    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++
@@ -128,24 +151,6 @@ in buildPythonPackage rec {
     export CUDNN_INCLUDE_DIR=${cudnn}/include
   '';
 
-  patches = [
-    # Prevents a race condition which would be introduced by pull 30333.
-    # See https://github.com/pytorch/pytorch/issues/32277
-    # Can be removed >1.5.0.
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/pytorch/pytorch/pull/30332.patch";
-      sha256 = "1v9dwbhz3rdxcx6sz8y8j9n3bj6nqs78b1r8yg89yc15n6l4cqx2";
-    })
-
-    # Fixes errors with gcc-9 compilation. Cherry-picked on advice from ezyang.
-    # See https://github.com/pytorch/pytorch/issues/32277
-    # Can be removed >1.5.0.
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/pytorch/pytorch/pull/30333.patch";
-      sha256 = "139413fl37h2fnil0cv99a67mqqnsh02k74b92by1qyr6pcfyg3q";
-    })
-  ];
-
   # Use pytorch's custom configurations
   dontUseCmakeConfigure = true;
 
@@ -242,33 +247,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 db7f781c5bf..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
@@ -8,11 +9,12 @@
 
 buildPythonPackage rec {
   pname = "pytrends";
-  version = "4.7.2";
+  version = "4.7.3";
+  disabled = isPy27; # python2 pandas is too old
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1cf80573276b3a93c4fb2ff296c260fa86e7ab43709473ce34f3bad3841f06df";
+    sha256 = "8ccb06c57c31fa157b978a0d810de7718ee46583d28cf818250d45f36abd2faa";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/pytz/default.nix b/pkgs/development/python-modules/pytz/default.nix
index e7ce3b62b5b..8680a4f8e1d 100644
--- a/pkgs/development/python-modules/pytz/default.nix
+++ b/pkgs/development/python-modules/pytz/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytz";
-  version = "2019.3";
+  version = "2020.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b02c06db6cf09c12dd25137e563b31700d3b80fcc4ad23abb7a315f2789819be";
+    sha256 = "c35965d010ce31b23eeb663ed3cc8c906275d6be1a34393a1d73a41febf4a048";
   };
 
   checkPhase = ''
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..0c78b305959
--- /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..c0a401a1b2a 100644
--- a/pkgs/development/python-modules/pyudev/default.nix
+++ b/pkgs/development/python-modules/pyudev/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     '';
 
   checkInputs = [ pytest mock hypothesis docutils ];
-  propagatedBuildInputs = [ systemd six ];
+  propagatedBuildInputs = [ six ];
 
   checkPhase = ''
     py.test
diff --git a/pkgs/development/python-modules/pyunifi/default.nix b/pkgs/development/python-modules/pyunifi/default.nix
index ea9cedeeae1..ed2dd4cc256 100644
--- a/pkgs/development/python-modules/pyunifi/default.nix
+++ b/pkgs/development/python-modules/pyunifi/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pyunifi";
-  version = "2.19.0";
+  version = "2.20.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f022eb2135b88a9d391f4553fac1bf90f3808d660fd0058203f6f9e57214626b";
+    sha256 = "b52d1b0d87365fcfed8572b5dbd8d675bffece4ab3484bf083863f278c727d3d";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/pyvcd/default.nix b/pkgs/development/python-modules/pyvcd/default.nix
index ae41d196543..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.1.7";
+  version = "0.2.3";
   pname = "pyvcd";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ixpdl0qiads81h8s9h9r9z0cyc9dlmvi01nfjggxixvbb17305y";
+    sha256 = "c0fd7321143e821033f59dd41fc6b0350d1533ddccd4c8fc1d1f76e21cd667de";
   };
 
   buildInputs = [ setuptools_scm ];
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 82370faf7ef..74626c38eb1 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.15.0";
+  version = "0.17.4";
 
   # Support added in master https://github.com/pywbem/pywbem/commit/b2f2f1a151a30355bbc6652dca69a7b30bfe941e awaiting release
   disabled = isPy37;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6f4304518b2ba89a97bd4f5f0decc8ad382b38a9303032ae17a1a601d95d24b8";
+    sha256 = "5b54b65a5434bb16432415743c0d154feee0c6d7a8a2fee208719c67d6d24c97";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pywebpush/default.nix b/pkgs/development/python-modules/pywebpush/default.nix
index b8a453e99ed..5bb8989506f 100644
--- a/pkgs/development/python-modules/pywebpush/default.nix
+++ b/pkgs/development/python-modules/pywebpush/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "pywebpush";
-  version = "1.10.1";
+  version = "1.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e80ae0ea978b2e3b7860d2a9ae836528f5fa2e13936673e0b6613589965937ee";
+    sha256 = "596c74020f9cbabc99f7964127ab0bb6cc045fcfe781b7c73cffb3ea45947820";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pywebview/default.nix b/pkgs/development/python-modules/pywebview/default.nix
index f12d943aad7..545fb236732 100644
--- a/pkgs/development/python-modules/pywebview/default.nix
+++ b/pkgs/development/python-modules/pywebview/default.nix
@@ -1,23 +1,32 @@
-{ lib, buildPythonPackage, fetchFromGitHub }:
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, importlib-resources, pytest, xvfb_run }:
 
 buildPythonPackage rec {
   pname = "pywebview";
-  version = "3.2";
+  version = "3.3.1";
+  disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "r0x0r";
     repo = "pywebview";
     rev = version;
-    sha256 = "0anwm6s0pp7xmgylr4m52v7lw825sdby7fajcl929l099n757gq7";
+    sha256 = "015z7n0hdgkzn0p7aw1xsv6lwc260p8q67jx0zyd1zghnwyj8k79";
   };
 
-  # disabled due to error in loading unittest
-  # don't know how to make test from: None
-  doCheck = false;
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.7") [ importlib-resources ];
+
+  checkInputs = [ pytest xvfb_run ];
+
+  checkPhase = ''
+    pushd tests
+    patchShebangs run.sh
+    xvfb-run -s '-screen 0 800x600x24' ./run.sh
+    popd
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/r0x0r/pywebview";
-    description = "Lightweight cross-platform wrapper around a webview.";
+    description = "Lightweight cross-platform wrapper around a webview";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jojosch ];
   };
diff --git a/pkgs/development/python-modules/pyx/default.nix b/pkgs/development/python-modules/pyx/default.nix
index 8b5e3633e25..339fa9029b7 100644
--- a/pkgs/development/python-modules/pyx/default.nix
+++ b/pkgs/development/python-modules/pyx/default.nix
@@ -7,14 +7,14 @@
 buildPythonPackage rec {
   pname = "pyx";
   version = "0.15";
+  disabled = !isPy3k;
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "0fc3b00c5e7fb6f4aefbf63b95f624297dde47700a82b8b5ad6ebb346b5e4977";
+    pname = "PyX";
+    inherit version;
+    sha256 = "0xs9brmk9fvfmnsvi0haf13xwz994kv9afznzfpg9dkzbq6b1hqg";
   };
 
-  disabled = !isPy3k;
-
   # No tests in archive
   doCheck = false;
 
@@ -23,5 +23,4 @@ buildPythonPackage rec {
     homepage = "http://pyx.sourceforge.net/";
     license = with licenses; [ gpl2 ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pyxdg/default.nix b/pkgs/development/python-modules/pyxdg/default.nix
index a5cb694b4c1..65cb4389583 100644
--- a/pkgs/development/python-modules/pyxdg/default.nix
+++ b/pkgs/development/python-modules/pyxdg/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 }:
 
 buildPythonPackage rec {
@@ -15,6 +16,14 @@ buildPythonPackage rec {
   # error: invalid command 'test'
   doCheck = false;
 
+  patches = [ 
+    # see: https://gitlab.freedesktop.org/xdg/pyxdg/-/merge_requests/5 
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/xdg/pyxdg/-/commit/78405aaa34463db2c6f33ca28ae2293dd3bb1e91.patch";
+      sha256 = "17cjax546rkqv5kvwczjqjdd6vmlvcxjanz0296dlfq23j2wbx63";
+    })
+  ];
+
   meta = with stdenv.lib; {
     homepage = "http://freedesktop.org/wiki/Software/pyxdg";
     description = "Contains implementations of freedesktop.org standards";
diff --git a/pkgs/development/python-modules/pyxl3/default.nix b/pkgs/development/python-modules/pyxl3/default.nix
index 2fa5ef76669..8cdfe6436e3 100644
--- a/pkgs/development/python-modules/pyxl3/default.nix
+++ b/pkgs/development/python-modules/pyxl3/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "pyxl3";
-  version = "1.3";
+  version = "1.4";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "23831c6d60b2ce3fbb39966f6fb21a5e053d6ce0bd08b00bb50fa388631b69ee";
+    sha256 = "ad4cc56bf4b35def33783e6d4783882702111fe8f9a781c63228e2114067c065";
   };
 
   checkInputs = [ unittest2 ];
diff --git a/pkgs/development/python-modules/pyyaml/default.nix b/pkgs/development/python-modules/pyyaml/default.nix
index 4d1d16b0f12..95ceeab3a04 100644
--- a/pkgs/development/python-modules/pyyaml/default.nix
+++ b/pkgs/development/python-modules/pyyaml/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "PyYAML";
-  version = "5.2";
+  version = "5.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c0ee8eca2c582d29c3c2ec6e2c4f703d1b7f1fb10bc72317355a746057e7346c";
+    sha256 = "0pb4zvkfxfijkpgd1b86xjsqql97ssf1knbd1v53wkg1qm9cgsmq";
   };
 
   # force regeneration using Cython
diff --git a/pkgs/development/python-modules/pyzmq/default.nix b/pkgs/development/python-modules/pyzmq/default.nix
index f1ecdf7c4f4..96c100ace88 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 = "18.1.1";
+  version = "19.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8c69a6cbfa94da29a34f6b16193e7c15f5d3220cb772d6d17425ff3faa063a6d";
+    sha256 = "13a5638ab24d628a6ade8f794195e1a1acd573496c3b85af2f1183603b7bf5e0";
   };
 
   checkInputs = [  pytest tornado ];
@@ -30,7 +30,8 @@ buildPythonPackage rec {
       and not test_callable_check \
       and not test_on_recv_basic \
       and not test_on_recv_wake \
-      and not test_monitor"
+      and not test_monitor \
+      and not test_cython"
   '';
 
   # Some of the tests use localhost networking.
diff --git a/pkgs/development/python-modules/qasm2image/default.nix b/pkgs/development/python-modules/qasm2image/default.nix
index 9748e3e4348..962ba62f509 100644
--- a/pkgs/development/python-modules/qasm2image/default.nix
+++ b/pkgs/development/python-modules/qasm2image/default.nix
@@ -48,5 +48,6 @@ buildPythonPackage {
     maintainers = with lib.maintainers; [
       pandaman
     ];
+    broken = true;  # last update Oct 2018, failed tests don't error the build, and out-of-date with latest python3Packages.qiskit
   };
 }
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/qimage2ndarray/default.nix b/pkgs/development/python-modules/qimage2ndarray/default.nix
index 646d326fede..a7c0fa3ff4a 100644
--- a/pkgs/development/python-modules/qimage2ndarray/default.nix
+++ b/pkgs/development/python-modules/qimage2ndarray/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "qimage2ndarray";
-  version = "1.8.2";
+  version = "1.8.3";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f792693a0f1cd5f93fbf73bc3fb2d511fb9cceed3c9308bfb200f38c19a5545";
+    sha256 = "b02bd2dc7de774f954544312ec1020cf2d7e03fdd23ec9eb79901da55ccb3365";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/qiskit-aer/default.nix b/pkgs/development/python-modules/qiskit-aer/default.nix
index 7c74ddab2b1..3f0439efc7a 100644
--- a/pkgs/development/python-modules/qiskit-aer/default.nix
+++ b/pkgs/development/python-modules/qiskit-aer/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aer";
-  version = "0.5.1";
+  version = "0.5.2";
 
   disabled = pythonOlder "3.5";
 
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     repo = "qiskit-aer";
     rev = version;
     fetchSubmodules = true; # fetch muparserx and other required libraries
-    sha256 = "0pbi8ldz8f1zm7pf2n5229g6kccriq21f24q9cb7bd4j5gdky5sk";
+    sha256 = "0vw6b69h8pvzxhaz3k8sg9ac792gz3kklfv0izs6ra83y1dfwhjz";
   };
 
   nativeBuildInputs = [
@@ -48,14 +48,6 @@ buildPythonPackage rec {
     pybind11
   ];
 
-  patches = [
-    (fetchpatch{
-      name = "qiskit-aer-pr-727-fix-random-unitary-test.patch";
-      url = "https://github.com/Qiskit/qiskit-aer/commit/09afb3b6b0710042ab65d88e863363f2c843dcb0.patch";
-      sha256 = "0521b7i4fpc5brqs08w381g3c655f9cbn6my1740jnk7dv5lhsv9";
-    })
-  ];
-
   postPatch = ''
     # remove dependency on PyPi cmake package, which isn't in Nixpkgs
     substituteInPlace setup.py --replace "'cmake!=3.17,!=3.17.0'" ""
@@ -85,6 +77,11 @@ 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
diff --git a/pkgs/development/python-modules/qiskit-aqua/default.nix b/pkgs/development/python-modules/qiskit-aqua/default.nix
index 8037d28f82c..fe90ee63e00 100644
--- a/pkgs/development/python-modules/qiskit-aqua/default.nix
+++ b/pkgs/development/python-modules/qiskit-aqua/default.nix
@@ -3,7 +3,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 # , cplex
-, cvxopt
+, cvxpy
 , dlx
 , docplex
 , fastdtw
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aqua";
-  version = "0.7.0";
+  version = "0.7.3";
 
   disabled = pythonOlder "3.5";
 
@@ -33,13 +33,13 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-aqua";
     rev = version;
-    sha256 = "0yykw6k1rb3f2ihcp0y9pb0695mcmy29nyqlj89qs4da0503vxvh";
+    sha256 = "04zcnrc0vi6dfjahp1019h2ngdgi7l7jvfs9aw0y306nd9g6qgjc";
   };
 
   # Optional packages: pyscf (see below NOTE) & pytorch. Can install via pip/nix if needed.
   propagatedBuildInputs = [
     # cplex
-    cvxopt
+    cvxpy
     docplex
     dlx # Python Dancing Links package
     fastdtw
@@ -81,7 +81,6 @@ buildPythonPackage rec {
         "You must install it yourself via pip or add it to your environment from the Nix User Repository." \
         "', ImportWarning)\n" \
       >> qiskit/optimization/__init__.py
-
   '';
 
   postInstall = "rm -rf $out/${python.sitePackages}/docs";  # Remove docs dir b/c it can cause conflicts.
@@ -106,6 +105,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
+
     # Disabling slow tests > 10 seconds
     "TestVQE"
     "TestVQC"
@@ -127,9 +129,15 @@ buildPythonPackage rec {
     "test_shor_no_factors_1_5"
     "test_shor_no_factors_2_7"
     "test_evolve_2___suzuki___1__3_"
-    "test_delta_4"
+    "test_delta"
     "test_swaprz"
     "test_deprecated_algo_result"
+    "test_unsorted_grouping"
+    "test_ad_hoc_data"
+    "test_nft"
+    "test_oh"
+    "test_confidence_intervals_00001"
+    "test_eoh"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
index 5f8f0d94e4f..02cdb8397cb 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.0";
+  version = "0.7.2";
 
   disabled = pythonOlder "3.6";
 
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "1n13jjx1cx5gswwk8rpxfjqyk97cwx1n2hwsabkcbi7fksw3c5jk";
+    sha256 = "11h1ca4v11pajzn1cxqhim1hfziqzj27xzakwln13g8zmiqx3csp";
   };
 
   propagatedBuildInputs = [
@@ -57,7 +57,7 @@ buildPythonPackage rec {
   ];
 
   # websockets seems to be pinned b/c in v8+ it drops py3.5 support. Not an issue here (usually py3.7+, and disabled for older py3.6)
-  prePatch = ''
+  postPatch = ''
     substituteInPlace requirements.txt --replace "websockets>=7,<8" "websockets"
     substituteInPlace setup.py --replace "websockets>=7,<8" "websockets"
   '';
diff --git a/pkgs/development/python-modules/qiskit-ignis/default.nix b/pkgs/development/python-modules/qiskit-ignis/default.nix
index 79998a84325..bfd2bffbf47 100644
--- a/pkgs/development/python-modules/qiskit-ignis/default.nix
+++ b/pkgs/development/python-modules/qiskit-ignis/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-ignis";
-  version = "0.3.0";
+  version = "0.3.3";
 
   disabled = pythonOlder "3.6";
 
@@ -25,14 +25,9 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-ignis";
     rev = version;
-    sha256 = "16h04n9hxw669nq2ii16l6h75x8afisvp3j062n4c62kcqci0x4x";
+    sha256 = "0sy9qpw0jqirsk9y61j5kr18jrw1wa812n7y98fjj6w668rrv560";
   };
 
-  # Fixed qiskit-ignis PR #385, figured this is easier than fetchpatch
-  postPatch = ''
-    substituteInPlace qiskit/ignis/logging/ignis_logging.py --replace "self.configure_logger" "self._configure_logger"
-  '';
-
   propagatedBuildInputs = [
     numpy
     qiskit-terra
diff --git a/pkgs/development/python-modules/qiskit-terra/default.nix b/pkgs/development/python-modules/qiskit-terra/default.nix
index 78c28a282cb..c1c0dd92837 100644
--- a/pkgs/development/python-modules/qiskit-terra/default.nix
+++ b/pkgs/development/python-modules/qiskit-terra/default.nix
@@ -36,7 +36,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-terra";
-  version = "0.14.1";
+  version = "0.14.2";
 
   disabled = pythonOlder "3.5";
 
@@ -44,7 +44,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "0pd7x2jrqy7q1s38ychqw9bayjn2rvi6rq7c2c0kd160rwj1l2sc";
+    sha256 = "0p5wapjvy81pnks100xbb23kbs2wyys9ykyc8z4968wl487lq4g5";
   };
 
   nativeBuildInputs = [ cython ];
@@ -94,6 +94,9 @@ 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
   ];
diff --git a/pkgs/development/python-modules/qiskit/default.nix b/pkgs/development/python-modules/qiskit/default.nix
index ded9c68e6fe..81468da30fb 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.1";
+  version = "0.19.6";
 
   disabled = pythonOlder "3.5";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit";
     rev = version;
-    sha256 = "0p1sahgf6qgbkvxb067mnyj6ya8nv7y57yyiiaadhjw242sjkjy5";
+    sha256 = "0liby6ffgrla6wr4k742qkg8m80im372p6hmr4gkz47nmc76zy1i";
   };
 
   propagatedBuildInputs = [
@@ -37,7 +37,7 @@ 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.terra" "qiskit.ignis" "qiskit.aer" "qiskit.aqua" ];
+  pythonImportsCheck = [ "qiskit" "qiskit.circuit" "qiskit.ignis" "qiskit.providers.aer" "qiskit.aqua" ];
 
   meta = {
     description = "Software for developing quantum computing programs";
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/qtawesome/default.nix b/pkgs/development/python-modules/qtawesome/default.nix
index 2cf88805b79..7175986bd76 100644
--- a/pkgs/development/python-modules/qtawesome/default.nix
+++ b/pkgs/development/python-modules/qtawesome/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "QtAwesome";
-  version = "0.7.0";
+  version = "0.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1k9nn6z8lhaznas509h9cjy434haggz2n1mhs29bycmds716k7j8";
+    sha256 = "ca9719c82d41707f62c340811b23bcab95336e73edd88b7eab7fd951d2e27fab";
   };
 
   propagatedBuildInputs = [ qtpy six ];
diff --git a/pkgs/development/python-modules/qtconsole/default.nix b/pkgs/development/python-modules/qtconsole/default.nix
index 0a932729ff3..ca6a19220d5 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.3";
+  version = "4.7.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8f5ae5571f0e921db9f2d12613ed667c350ee22c7db598d9bbbe143e8533f932";
+    sha256 = "f5cb275d30fc8085e2d1d18bc363e5ba0ce6e559bf37d7d6727b773134298754";
   };
 
   checkInputs = [ nose ] ++ lib.optionals isPy27 [mock];
diff --git a/pkgs/development/python-modules/quandl/default.nix b/pkgs/development/python-modules/quandl/default.nix
index 2d78b626092..33fc54241d9 100644
--- a/pkgs/development/python-modules/quandl/default.nix
+++ b/pkgs/development/python-modules/quandl/default.nix
@@ -1,7 +1,7 @@
 {
-  lib, fetchPypi, buildPythonPackage, isPy3k,
+  lib, fetchPypi, buildPythonPackage, isPy3k, pythonOlder,
   # runtime dependencies
-  pandas, numpy, requests, inflection, python-dateutil, six, more-itertools,
+  pandas, numpy, requests, inflection, python-dateutil, six, more-itertools, importlib-metadata,
   # test suite dependencies
   nose, unittest2, flake8, httpretty, mock, jsondate, parameterized, faker, factory_boy,
   # additional runtime dependencies are required on Python 2.x
@@ -45,6 +45,8 @@ buildPythonPackage rec {
     pyOpenSSL
     ndg-httpsclient
     pyasn1
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
   ];
 
   meta = with lib; {
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 0916695ed43..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.3";
+  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 = "0i081bkmv7qw24ivmdh92ma6x0hnjlf8jgj6rp2c3rb8hjzmi452";
+    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/readme_renderer/default.nix b/pkgs/development/python-modules/readme_renderer/default.nix
index 8d36df3d980..9ffb986b9f5 100644
--- a/pkgs/development/python-modules/readme_renderer/default.nix
+++ b/pkgs/development/python-modules/readme_renderer/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "readme_renderer";
-  version = "24.0";
+  version = "26.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0br0562lnvj339f1nwz4nfl4ay49rw05xkqacigzf9wz4mdza5mv";
+    sha256 = "cbe9db71defedd2428a1589cdc545f9bd98e59297449f69d721ef8f1cfced68d";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix b/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
index e9245d426f0..68ccf676f29 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.1";
+  version = "1.0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c920d8129752ee3f339c8cf3dfeba800a25730249d6ab43dc9b3c384312d1d32";
+    sha256 = "33dbb135373d539233f7fbdb5e8dcfa07d41254300ee23719eb9caa8c68a40ae";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/rebulk/default.nix b/pkgs/development/python-modules/rebulk/default.nix
index 2d3d3cd23fd..f1591e4df74 100644
--- a/pkgs/development/python-modules/rebulk/default.nix
+++ b/pkgs/development/python-modules/rebulk/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "rebulk";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1b0d526859ef3e8647f37c606d7ae7c32259e370b3f1519e4219a3ba72740aec";
+    sha256 = "320ded3cc456347d828f95e9aa5f8bab77ac01943cad024c06012069fe19690a";
   };
 
   # Some kind of trickery with imports that doesn't work.
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/redis/default.nix b/pkgs/development/python-modules/redis/default.nix
index 2da7470a838..35109e836fa 100644
--- a/pkgs/development/python-modules/redis/default.nix
+++ b/pkgs/development/python-modules/redis/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "redis";
-  version = "3.3.11";
+  version = "3.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8d0fc278d3f5e1249967cba2eb4a5632d19e45ce5c09442b8422d15ee2c22cc2";
+    sha256 = "0e7e0cfca8660dea8b7d5cd8c4f6c5e29e11f31158c0b0ae91a397f00e5a05a2";
   };
 
   # tests require a running redis
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 a9456ac963c..038d6d2c90a 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 = "2019.12.20";
+  version = "2020.5.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "106e25a841921d8259dcef2a42786caae35bc750fb996f830065b3dfaa67b77e";
+    sha256 = "ce450ffbfec93821ab1fea94779a8440e10cf63819be6e176eb1973a6017aff5";
   };
 
   postCheck = ''
diff --git a/pkgs/development/python-modules/reportlab/default.nix b/pkgs/development/python-modules/reportlab/default.nix
index e37a8f57e9e..a7c96ef2e6e 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.34";
+  version = "3.5.47";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9675a26d01ec141cb717091bb139b6227bfb3794f521943101da50327bff4825";
+    sha256 = "0gw0902yjszwxk0air69in7nk4h2q36r96ga3r4bz0p0cnmagcj5";
   };
 
   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/repoze_who/default.nix b/pkgs/development/python-modules/repoze_who/default.nix
index 20001ff7ef8..7f4a89f3d24 100644
--- a/pkgs/development/python-modules/repoze_who/default.nix
+++ b/pkgs/development/python-modules/repoze_who/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "repoze.who";
-  version = "2.3";
+  version = "2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b95dadc1242acc55950115a629cfb1352669774b46d22def51400ca683efea28";
+    sha256 = "cf97450de3c8eb5c03b4037be75b018db91befab1094204e452a0b1c0f7a94a6";
   };
 
   propagatedBuildInputs = [ zope_interface webob ];
diff --git a/pkgs/development/python-modules/reproject/default.nix b/pkgs/development/python-modules/reproject/default.nix
index 43fd7fe67de..ccc76734461 100644
--- a/pkgs/development/python-modules/reproject/default.nix
+++ b/pkgs/development/python-modules/reproject/default.nix
@@ -6,30 +6,26 @@
 , astropy
 , astropy-healpix
 , astropy-helpers
+, extension-helpers
 , scipy
 , pytest
 , pytest-astropy
+, setuptools_scm
 , cython
 }:
 
 buildPythonPackage rec {
   pname = "reproject";
-  version = "0.6";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "484fde86d70d972d703038f138d7c2966ddf51171a6e79bd84e82ea270e27af3";
+    sha256 = "1jsc3ad518vyys5987fr1achq8qvnz8rm80zp5an9qxlwr4zmh4m";
   };
 
   propagatedBuildInputs = [ numpy astropy astropy-healpix astropy-helpers scipy ];
 
-  nativeBuildInputs = [ astropy-helpers cython ];
-
-  # Fix tests
-  patches = [ (fetchpatch {
-    url = "https://github.com/astropy/reproject/pull/218/commits/4661e075137424813ed77f1ebcbc251fee1b8467.patch";
-    sha256 = "13g3h824pqn2lgypzg1b87vkd44y7m302lhw3kh4rfww1dkzhm9v";
-  }) ];
+  nativeBuildInputs = [ astropy-helpers cython extension-helpers setuptools_scm ];
 
   # Disable automatic update of the astropy-helper module
   postPatch = ''
diff --git a/pkgs/development/python-modules/requests-file/default.nix b/pkgs/development/python-modules/requests-file/default.nix
index 6c94144ef15..374627a1bb9 100644
--- a/pkgs/development/python-modules/requests-file/default.nix
+++ b/pkgs/development/python-modules/requests-file/default.nix
@@ -1,16 +1,18 @@
-{ lib, fetchPypi, buildPythonPackage, requests, six }:
+{ lib, fetchPypi, buildPythonPackage, pytestCheckHook, requests, six }:
 
 buildPythonPackage rec {
   pname   = "requests-file";
-  version = "1.4.3";
+  version = "1.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1yp2jaxg3v86pia0q512dg3hz6s9y5vzdivsgrba1kds05ial14g";
+    sha256 = "07d74208d3389d01c38ab89ef403af0cfec63957d53a0081d8eca738d0247d8e";
   };
 
   propagatedBuildInputs = [ requests six ];
 
+  checkInputs = [ pytestCheckHook ];
+
   meta = {
     homepage = "https://github.com/dashea/requests-file";
     description = "Transport adapter for fetching file:// URLs with the requests python library";
diff --git a/pkgs/development/python-modules/requests-mock/default.nix b/pkgs/development/python-modules/requests-mock/default.nix
index 9728639e0ef..5e85ba7d38b 100644
--- a/pkgs/development/python-modules/requests-mock/default.nix
+++ b/pkgs/development/python-modules/requests-mock/default.nix
@@ -5,15 +5,16 @@
 , six
 , testrepository
 , testtools
+, pytest
 }:
 
 buildPythonPackage rec {
   pname = "requests-mock";
-  version = "1.7.0";
+  version = "1.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ij6ir5cy0gpy5xw4sykxz320ndi26np6flx9yg9mimkv0nl1lw8";
+    sha256 = "e68f46844e4cee9d447150343c9ae875f99fa8037c6dcf5f15bf1fe9ab43d226";
   };
 
   patchPhase = ''
@@ -22,7 +23,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests six ];
 
-  checkInputs = [ mock purl testrepository testtools ];
+  checkInputs = [ mock purl testrepository testtools pytest ];
 
   meta = with lib; {
     description = "Mock out responses from the requests package";
diff --git a/pkgs/development/python-modules/requests/default.nix b/pkgs/development/python-modules/requests/default.nix
index 3d216e4bc44..9b443df4be4 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.22.0";
+  version = "2.23.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4";
+    sha256 = "1rhpg0jb08v0gd7f19jjiwlcdnxpmqi1fhvw7r4s9avddi4kvx5k";
   };
 
   nativeBuildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/responses/default.nix b/pkgs/development/python-modules/responses/default.nix
index e98aad824b6..0b24b7b62fc 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.9";
+  version = "0.10.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8ce8cb4e7e1ad89336f8865af152e0563d2e7f0e0b86d2cf75f015f819409243";
+    sha256 = "7bb697a5fedeb41d81e8b87f152d453d5cab42dcd1691b6a7d6097e94d33f373";
   };
 
   propagatedBuildInputs = [ cookies mock requests six ];
diff --git a/pkgs/development/python-modules/restructuredtext_lint/default.nix b/pkgs/development/python-modules/restructuredtext_lint/default.nix
index 4f62d232ab5..17bf5fbf297 100644
--- a/pkgs/development/python-modules/restructuredtext_lint/default.nix
+++ b/pkgs/development/python-modules/restructuredtext_lint/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "restructuredtext_lint";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "97b3da356d5b3a8514d8f1f9098febd8b41463bed6a1d9f126cf0a048b6fd908";
+    sha256 = "470e53b64817211a42805c3a104d2216f6f5834b22fe7adb637d1de4d6501fb8";
   };
 
   checkInputs = [ nose testtools ];
diff --git a/pkgs/development/python-modules/restview/default.nix b/pkgs/development/python-modules/restview/default.nix
index 715a4cfb43f..acce48c45d0 100644
--- a/pkgs/development/python-modules/restview/default.nix
+++ b/pkgs/development/python-modules/restview/default.nix
@@ -4,6 +4,7 @@
 , fetchpatch
 , docutils
 , readme_renderer
+, packaging
 , pygments
 , mock
 }:
@@ -17,7 +18,7 @@ buildPythonPackage rec {
     sha256 = "de87c84f19526bd4a76505f6d40b51b7bb03ca43b6067c93f82f1c7237ac9e84";
   };
 
-  propagatedBuildInputs = [ docutils readme_renderer pygments ];
+  propagatedBuildInputs = [ docutils readme_renderer packaging pygments ];
   checkInputs = [ mock ];
 
   patches = [
diff --git a/pkgs/development/python-modules/rethinkdb/default.nix b/pkgs/development/python-modules/rethinkdb/default.nix
index 7eea5d2c39f..616cabc29a0 100644
--- a/pkgs/development/python-modules/rethinkdb/default.nix
+++ b/pkgs/development/python-modules/rethinkdb/default.nix
@@ -1,23 +1,28 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, six
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "rethinkdb";
-  version = "2.4.4.post1";
+  version = "2.4.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e1c1f8ad93bc1c6f2aaa73afc333c57d505d8cc08c437d78a5c1eb8dc4b7e8c2";
+    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/retry_decorator/default.nix b/pkgs/development/python-modules/retry_decorator/default.nix
index ea6a214691e..c1e495f56a9 100644
--- a/pkgs/development/python-modules/retry_decorator/default.nix
+++ b/pkgs/development/python-modules/retry_decorator/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "retry_decorator";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b7723b83730a09a5a884f2d1c422c9556d20324b7a0f5b129ad94fd07baba36d";
+    sha256 = "e1e8ad02e518fe11073f2ea7d80b6b8be19daa27a60a1838aff7c731ddcf2ebe";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/retworkx/default.nix b/pkgs/development/python-modules/retworkx/default.nix
index 531edab2746..309f3532cfc 100644
--- a/pkgs/development/python-modules/retworkx/default.nix
+++ b/pkgs/development/python-modules/retworkx/default.nix
@@ -2,27 +2,30 @@
 , buildPythonPackage
 , pythonOlder
 , pythonAtLeast
-, isPy37
-, isPy38
+, python
 , fetchFromGitHub
 , fetchPypi
   # Check inputs
 , pytestCheckHook
 }:
-
 let
-  rx-version = "0.3.3";
-  wheel-args = if isPy37 then
-      { python = "cp37"; sha256 = "1gbz7sh9i4h41xs9c40lixfdigmvfykkgxgzwsrs8v0smx20dczy"; }
-    else if isPy38 then
-      { python = "cp38"; sha256 = "09xxgp4ac4q6mfkj6lsqqfrzz1cb02vxy7wlv0bq3z2hd0jcanxk"; }
-    else throw "python version & hash not included. Override attribute `wheel-args` with version & hash at https://pypi.org/project/retworkx";
+  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");
 
   github-source = fetchFromGitHub {
     owner = "Qiskit";
     repo = "retworkx";
     rev = rx-version;
-    sha256 = "160w5vkzrl5rzcrdwhjq820i5lmc527m6hg0kxx0k6n2bz9qn26g";
+    sha256 = "0cd3x64y49q9a3jrkiknlfkiccxkxgl624x5pqk7gm34s1lnzl8h";
   };
 in
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/rnc2rng/default.nix b/pkgs/development/python-modules/rnc2rng/default.nix
new file mode 100644
index 00000000000..8e42baf8ff7
--- /dev/null
+++ b/pkgs/development/python-modules/rnc2rng/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, python
+, rply
+}:
+
+buildPythonPackage rec {
+  pname = "rnc2rng";
+  version = "2.6.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1kmp3iwxxyzjsd47j2sprd47ihhkwhb3yydih3af5bbfq0ibh1w8";
+  };
+
+  propagatedBuildInputs = [ rply ];
+
+  checkPhase = "${python.interpreter} test.py";
+
+  meta = with lib; {
+    homepage = "https://github.com/djc/rnc2rng";
+    description = "Compact to regular syntax conversion library for RELAX NG schemata";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/robotframework-requests/default.nix b/pkgs/development/python-modules/robotframework-requests/default.nix
index b0cb616dbde..e62087628a0 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.6.3";
+  version = "0.7.0";
   pname = "robotframework-requests";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f29844eee373775fd590b80f80a7d5a4325094a4f0a3c48e972d24712dbd2ce4";
+    sha256 = "da7bf998f9cbf8261199db7c96b95be1bf29d1db7f59dfbc77c435761698dc75";
   };
 
   buildInputs = [ unittest2 ];
diff --git a/pkgs/development/python-modules/robotframework/default.nix b/pkgs/development/python-modules/robotframework/default.nix
index a1251fa0093..cf9f4ea86f9 100644
--- a/pkgs/development/python-modules/robotframework/default.nix
+++ b/pkgs/development/python-modules/robotframework/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "robotframework";
-  version = "3.1.2";
+  version = "3.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f10dd7c0c8c7962a4f80dd1e026b5db731b9391bc6e1f9ebb96d685eb1230dbc";
+    sha256 = "d693e6d06b17f48669e2a8c4cb6c1f0d56e5f1a74835d18b8ea2118da7bf2d79";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/robotsuite/default.nix b/pkgs/development/python-modules/robotsuite/default.nix
index 75b7fac0cfc..e9d4ddbed11 100644
--- a/pkgs/development/python-modules/robotsuite/default.nix
+++ b/pkgs/development/python-modules/robotsuite/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "robotsuite";
-  version = "2.0.0";
+  version = "2.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15iw7g6gspf1ill0mzjrj71dirqfc86f1j14wphdvs2lazv8d50z";
+    sha256 = "8764e01990ac6774e0c983579bcb9cb79f44373a61ad47fbae9a1dc7eedbdd61";
   };
 
   buildInputs = [ unittest2 ];
diff --git a/pkgs/development/python-modules/rope/default.nix b/pkgs/development/python-modules/rope/default.nix
index 6bcc05fb34d..fd7bf55ad52 100644
--- a/pkgs/development/python-modules/rope/default.nix
+++ b/pkgs/development/python-modules/rope/default.nix
@@ -2,13 +2,11 @@
 
 buildPythonPackage rec {
   pname = "rope";
-  version = "0.16.0";
-
-  disabled = pythonAtLeast "3.8";  # 0.17 should support Python 3.8
+  version = "0.17.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1zlxdrs6ww2hm41izz67h67z9dkm0rlgw8m04vygaip0q91030yj";
+    sha256 = "658ad6705f43dcf3d6df379da9486529cf30e02d9ea14c5682aa80eb33b649e1";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/rq/default.nix b/pkgs/development/python-modules/rq/default.nix
index 9f57fb486d9..23d8444c506 100644
--- a/pkgs/development/python-modules/rq/default.nix
+++ b/pkgs/development/python-modules/rq/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, fetchPypi, buildPythonPackage, click, redis }:
+{ stdenv, fetchPypi, buildPythonPackage, isPy27, click, redis }:
 
 buildPythonPackage rec {
   pname = "rq";
-  version = "1.3.0";
+  version = "1.4.3";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0xr38j35iqmhx0f2l8ix34vjs9flpqv2y17k33crh7rhm6gi9ja9";
+    sha256 = "60509898c9ebc40e4155fde8bf88a204ed1914cc9e1cde3d19188b1c5bd5efbd";
   };
 
   # test require a running redis rerver, which is something we can't do yet
diff --git a/pkgs/development/python-modules/rsa/4_0.nix b/pkgs/development/python-modules/rsa/4_0.nix
new file mode 100644
index 00000000000..459ca043796
--- /dev/null
+++ b/pkgs/development/python-modules/rsa/4_0.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, unittest2
+, pyasn1
+, mock
+, isPy3k
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "rsa";
+  version = "4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1a836406405730121ae9823e19c6e806c62bbad73f890574fff50efa4122c487";
+  };
+
+  checkInputs = [ unittest2 mock ];
+  propagatedBuildInputs = [ pyasn1 ];
+
+  preConfigure = stdenv.lib.optionalString (isPy3k && pythonOlder "3.7") ''
+    substituteInPlace setup.py --replace "open('README.md')" "open('README.md',encoding='utf-8')"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://stuvel.eu/rsa";
+    license = licenses.asl20;
+    description = "A pure-Python RSA implementation";
+  };
+
+}
diff --git a/pkgs/development/python-modules/rsa/default.nix b/pkgs/development/python-modules/rsa/default.nix
index 459ca043796..41bb4f17a1d 100644
--- a/pkgs/development/python-modules/rsa/default.nix
+++ b/pkgs/development/python-modules/rsa/default.nix
@@ -6,15 +6,16 @@
 , mock
 , isPy3k
 , pythonOlder
+, poetry
 }:
 
 buildPythonPackage rec {
   pname = "rsa";
-  version = "4.0";
+  version = "4.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1a836406405730121ae9823e19c6e806c62bbad73f890574fff50efa4122c487";
+    sha256 = "1a7245638fa914ed6196b5e88fa5064cd95c7e65df800ec5d4f288e2b19fb4af";
   };
 
   checkInputs = [ unittest2 mock ];
@@ -24,6 +25,9 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "open('README.md')" "open('README.md',encoding='utf-8')"
   '';
 
+  # No tests in archive
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = "https://stuvel.eu/rsa";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/rtmidi-python/default.nix b/pkgs/development/python-modules/rtmidi-python/default.nix
new file mode 100644
index 00000000000..68927cc9ca0
--- /dev/null
+++ b/pkgs/development/python-modules/rtmidi-python/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchPypi
+, alsaLib
+}:
+
+buildPythonPackage rec {
+  pname = "rtmidi-python";
+  version = "0.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wpcaxfpbmsjc78g8841kpixr0a3v6zn0ak058s3mm25kcysp4m0";
+  };
+
+  buildInputs = [ alsaLib ];
+
+  # package has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "rtmidi_python"
+  ];
+
+  meta = with lib; {
+    description = "Python wrapper for RtMidi";
+    homepage = "https://github.com/superquadratic/rtmidi-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/ruamel_yaml/default.nix b/pkgs/development/python-modules/ruamel_yaml/default.nix
index bdfde326d76..9e32f9212cf 100644
--- a/pkgs/development/python-modules/ruamel_yaml/default.nix
+++ b/pkgs/development/python-modules/ruamel_yaml/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "ruamel.yaml";
-  version = "0.16.5";
+  version = "0.16.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "412a6f5cfdc0525dee6a27c08f5415c7fd832a7afcb7a0ed7319628aed23d408";
+    sha256 = "099c644a778bf72ffa00524f78dd0b6476bca94a1da344130f4bf3381ce5b954";
   };
 
   # Tests use relative paths
diff --git a/pkgs/development/python-modules/runway-python/default.nix b/pkgs/development/python-modules/runway-python/default.nix
index d2d63b2b5c4..23455ae8940 100644
--- a/pkgs/development/python-modules/runway-python/default.nix
+++ b/pkgs/development/python-modules/runway-python/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "runway-python";
-  version = "0.5.9";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1d75c44008275213034977c75bc2dc6f419e7f11d087984e3faea1e0cf6da69d";
+    sha256 = "695d78f8edeb6a7ca98d8351adb36948d56cceeffe8a84896c9fbfd349fc4cb8";
   };
 
   propagatedBuildInputs = [ flask flask-compress flask-cors flask-sockets numpy scipy pillow gevent wget six colorcet unidecode urllib3 ];
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/s3fs/default.nix b/pkgs/development/python-modules/s3fs/default.nix
index c6241e88ef9..535f8efec91 100644
--- a/pkgs/development/python-modules/s3fs/default.nix
+++ b/pkgs/development/python-modules/s3fs/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "s3fs";
-  version = "0.4.0";
+  version = "0.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "504a41ecb9edf0bd7798847b61839954e50508c5235ec7ee48c539ce46b4fa18";
+    sha256 = "2ca5de8dc18ad7ad350c0bd01aef0406aa5d0fff78a561f0f710f9d9858abdd0";
   };
 
   buildInputs = [ docutils ];
diff --git a/pkgs/development/python-modules/sabyenc3/default.nix b/pkgs/development/python-modules/sabyenc3/default.nix
new file mode 100644
index 00000000000..05b667fedc1
--- /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.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0zfj1k4zij8ph8jwkq4d6i6axym8cil16yijxshqla5163d1031z";
+  };
+
+  # 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/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/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/schema/default.nix b/pkgs/development/python-modules/schema/default.nix
index d4d45e8bd3b..2214bc2da52 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.1";
+  version = "0.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c9dc8f4624e287c7d1435f8fd758f6a0aabbb7eff442db9192cd46f0e2b6d959";
+    sha256 = "b536f2375b49fdf56f36279addae98bd86a8afbd58b3c32ce363c464bed5fc1c";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/python-modules/scikit-bio/default.nix b/pkgs/development/python-modules/scikit-bio/default.nix
index 6391e833114..650a6770991 100644
--- a/pkgs/development/python-modules/scikit-bio/default.nix
+++ b/pkgs/development/python-modules/scikit-bio/default.nix
@@ -19,13 +19,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.5.5";
+  version = "0.5.6";
   pname = "scikit-bio";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9fa813be66e88a994f7b7a68b8ba2216e205c525caa8585386ebdeebed6428df";
+    sha256 = "48b73ec53ce0ff2c2e3e05f3cfcf93527c1525a8d3e9dd4ae317b4219c37f0ea";
   };
 
   buildInputs = [ cython ];
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/scikit-image/default.nix b/pkgs/development/python-modules/scikit-image/default.nix
index 41f2609df78..44d2c240ce5 100644
--- a/pkgs/development/python-modules/scikit-image/default.nix
+++ b/pkgs/development/python-modules/scikit-image/default.nix
@@ -13,20 +13,33 @@
 , cloudpickle
 , pytest
 , imageio
+, tifffile
 }:
 
 buildPythonPackage rec {
   pname = "scikit-image";
-  version = "0.16.2";
+  version = "0.17.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dd7fbd32da74d4e9967dc15845f731f16e7966cee61f5dc0e12e2abb1305068c";
+    sha256 = "bd954c0588f0f7e81d9763dc95e06950e68247d540476e06cb77bcbcd8c2d8b3";
   };
 
-  buildInputs = [ cython ];
+  nativeBuildInputs = [ cython ];
 
-  propagatedBuildInputs = [ numpy scipy matplotlib networkx six pillow pywavelets dask cloudpickle imageio ];
+  propagatedBuildInputs = [
+    cloudpickle
+    dask
+    imageio
+    matplotlib
+    networkx
+    numpy
+    pillow
+    pywavelets
+    scipy
+    six
+    tifffile
+  ];
 
   checkInputs = [ pytest ];
 
diff --git a/pkgs/development/python-modules/scikitlearn/default.nix b/pkgs/development/python-modules/scikitlearn/default.nix
index 454e631634b..a9bbad04ea7 100644
--- a/pkgs/development/python-modules/scikitlearn/default.nix
+++ b/pkgs/development/python-modules/scikitlearn/default.nix
@@ -8,17 +8,18 @@
 , cython
 , joblib
 , llvmPackages
+, threadpoolctl
 }:
 
 buildPythonPackage rec {
   pname = "scikit-learn";
-  version = "0.22.2.post1";
+  version = "0.23.1";
   # 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 = "0z81n13dxvd6qwq5lsnzw2machmxbirhdhr73v90fi55ic9qslsp";
+    sha256 = "e3fec1c8831f8f93ad85581ca29ca1bb88e2da377fb097cf8322aa89c21bc9b8";
   };
 
   buildInputs = [
@@ -38,6 +39,7 @@ buildPythonPackage rec {
     scipy
     numpy.blas
     joblib
+    threadpoolctl
   ];
   checkInputs = [ pytest ];
 
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/scrapy-deltafetch/default.nix b/pkgs/development/python-modules/scrapy-deltafetch/default.nix
new file mode 100644
index 00000000000..cf6f8a01071
--- /dev/null
+++ b/pkgs/development/python-modules/scrapy-deltafetch/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchPypi, buildPythonPackage, pytest, scrapy, bsddb3 }:
+
+buildPythonPackage rec {
+  pname = "scrapy-deltafetch";
+  version = "1.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1m511psddvlapg492ny36l8rzy7z4i39yx6a1agxzfz6s9b83fq8";
+  };
+
+  propagatedBuildInputs = [ bsddb3 scrapy ];
+
+  checkInputs = [ pytest ];
+
+  meta = with stdenv.lib; {
+    description = "Scrapy spider middleware to ignore requests to pages containing items seen in previous crawls";
+    homepage = "https://github.com/scrapy-plugins/scrapy-deltafetch";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ evanjs ];
+  };
+}
diff --git a/pkgs/development/python-modules/scrapy-fake-useragent/default.nix b/pkgs/development/python-modules/scrapy-fake-useragent/default.nix
new file mode 100644
index 00000000000..26e142434c5
--- /dev/null
+++ b/pkgs/development/python-modules/scrapy-fake-useragent/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchPypi, buildPythonPackage, pytest, fake-useragent, scrapy }:
+
+buildPythonPackage rec {
+  pname = "scrapy-fake-useragent";
+  version = "1.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "02mayk804vdl15wjpx7jcjkc4zgrra4izf6iv00mcxq4fd4ck03l";
+  };
+
+  propagatedBuildInputs = [ fake-useragent ];
+
+  checkInputs = [ pytest scrapy ];
+
+  meta = with stdenv.lib; {
+    description = "Random User-Agent middleware based on fake-useragent";
+    homepage = "https://github.com/alecxe/scrapy-fake-useragent";
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/scrapy-splash/default.nix b/pkgs/development/python-modules/scrapy-splash/default.nix
new file mode 100644
index 00000000000..7799186d621
--- /dev/null
+++ b/pkgs/development/python-modules/scrapy-splash/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchPypi, buildPythonPackage, pytest, hypothesis, scrapy }:
+
+buildPythonPackage rec {
+  pname = "scrapy-splash";
+  version = "0.7.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1dg7csdza2hzqskd9b9gx0v3saqsch4f0fwdp0a3p0822aqqi488";
+  };
+
+  checkInputs = [ pytest hypothesis scrapy ];
+
+  meta = with stdenv.lib; {
+    description = "Scrapy+Splash for JavaScript integration";
+    homepage = "https://github.com/scrapy-plugins/scrapy-splash";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ evanjs ];
+  };
+}
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/screeninfo/default.nix b/pkgs/development/python-modules/screeninfo/default.nix
new file mode 100644
index 00000000000..9ee04cb50a8
--- /dev/null
+++ b/pkgs/development/python-modules/screeninfo/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, buildPythonApplication, fetchPypi, isPy36, dataclasses, libX11, libXinerama, libXrandr }:
+
+buildPythonApplication rec {
+  pname = "screeninfo";
+  version = "0.6.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0vcw54crdgmbzwlrfg80kd1a8p9i10yks8k0szzi0k5q80zhp8xz";
+  };
+
+  # dataclasses is a compatibility shim for python 3.6 ONLY
+  patchPhase = if isPy36 then "" else ''
+    substituteInPlace setup.py \
+      --replace "\"dataclasses\"," ""
+  '' + ''
+    substituteInPlace screeninfo/enumerators/xinerama.py \
+      --replace "load_library(\"X11\")" "ctypes.cdll.LoadLibrary(\"${libX11}/lib/libX11.so\")" \
+      --replace "load_library(\"Xinerama\")" "ctypes.cdll.LoadLibrary(\"${libXinerama}/lib/libXinerama.so\")"
+    substituteInPlace screeninfo/enumerators/xrandr.py \
+      --replace "load_library(\"X11\")" "ctypes.cdll.LoadLibrary(\"${libX11}/lib/libX11.so\")" \
+      --replace "load_library(\"Xrandr\")" "ctypes.cdll.LoadLibrary(\"${libXrandr}/lib/libXrandr.so\")"
+  '';
+
+  propagatedBuildInputs = stdenv.lib.optional isPy36 dataclasses;
+
+  buildInputs = [ libX11 libXinerama libXrandr];
+
+  meta = with stdenv.lib; {
+    description = "Fetch location and size of physical screens";
+    homepage = "https://github.com/rr-/screeninfo";
+    license = licenses.mit;
+    maintainers = [ maintainers.nickhu ];
+  };
+}
diff --git a/pkgs/development/python-modules/seaborn/default.nix b/pkgs/development/python-modules/seaborn/default.nix
index 5532a8afa9b..c68224c401d 100644
--- a/pkgs/development/python-modules/seaborn/default.nix
+++ b/pkgs/development/python-modules/seaborn/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "seaborn";
-  version = "0.10.0";
+  version = "0.10.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "59fe414e138d7d5ea08b0feb01b86caf4682e36fa748e3987730523a89aecbb9";
+    sha256 = "2d1a0c9d6bd1bc3cadb0364b8f06540f51322a670cf8438d0fde1c1c7317adc0";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/secp256k1/default.nix b/pkgs/development/python-modules/secp256k1/default.nix
index 2cd7590b83d..3cd6b2fe3cc 100644
--- a/pkgs/development/python-modules/secp256k1/default.nix
+++ b/pkgs/development/python-modules/secp256k1/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
   '';
 
   postPatch = ''
+    sed -i '38,45d' setup.py
     substituteInPlace setup.py --replace ", 'pytest-runner==2.6.2'" ""
   '';
 
diff --git a/pkgs/development/python-modules/seekpath/default.nix b/pkgs/development/python-modules/seekpath/default.nix
index fc2763be1f0..e387f27c673 100644
--- a/pkgs/development/python-modules/seekpath/default.nix
+++ b/pkgs/development/python-modules/seekpath/default.nix
@@ -1,17 +1,20 @@
-{ stdenv, buildPythonPackage, fetchPypi, numpy, future, spglib, glibcLocales, pytest }:
+{ stdenv, buildPythonPackage, fetchFromGitHub, numpy, future, spglib, glibcLocales, pytest, scipy }:
 
 buildPythonPackage rec {
   pname = "seekpath";
-  version = "1.9.3";
+  version = "2.0.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "abc806479f11e7f71c4475a292d849baf15dfa1cbc89ecc602d78415de322c83";
+  src = fetchFromGitHub {
+    owner = "giovannipizzi";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0x592650ynacmx5n5bilj5lja4iw0gf1nfypy82cmy5z363qhqxn";
   };
 
   LC_ALL = "en_US.utf-8";
 
-  propagatedBuildInputs = [ numpy spglib future ];
+  # scipy isn't listed in install_requires, but used in package
+  propagatedBuildInputs = [ numpy spglib future scipy ];
 
   nativeBuildInputs = [ glibcLocales ];
 
diff --git a/pkgs/development/python-modules/selectors2/default.nix b/pkgs/development/python-modules/selectors2/default.nix
index 159047eafd7..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 ];
@@ -17,7 +17,8 @@ buildPythonPackage rec {
     # Trick to disable certain tests that depend on timing which
     # will always fail on hydra
     export TRAVIS=""
-    nosetests tests/test_selectors2.py
+    nosetests tests/test_selectors2.py \
+      --exclude=test_above_fd_setsize
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/semantic-version/default.nix b/pkgs/development/python-modules/semantic-version/default.nix
index f2df3c99b2a..e939142fd82 100644
--- a/pkgs/development/python-modules/semantic-version/default.nix
+++ b/pkgs/development/python-modules/semantic-version/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "semantic_version";
-  version = "2.8.4";
+  version = "2.8.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "352459f640f3db86551d8054d1288608b29a96e880c7746f0a59c92879d412a3";
+    sha256 = "d2cb2de0558762934679b9a104e82eca7af448c9f4974d1f3eeccff651df8a54";
   };
 
   # ModuleNotFoundError: No module named 'tests'
diff --git a/pkgs/development/python-modules/semver/default.nix b/pkgs/development/python-modules/semver/default.nix
index bc0262a89c9..5aca34b52f1 100644
--- a/pkgs/development/python-modules/semver/default.nix
+++ b/pkgs/development/python-modules/semver/default.nix
@@ -1,24 +1,27 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, pytest }:
+{ stdenv
+, fetchFromGitHub
+, buildPythonPackage
+, pytestCheckHook
+, pytestcov
+}:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "semver";
-  version = "2.8.1";
+  version = "2.10.2";
 
   src = fetchFromGitHub {
-    owner = "k-bx";
+    owner = "python-semver";
     repo = "python-semver";
-    rev = "41775dd5f143dfa6ca94885056c9ef5b3ed4e6e1"; # not tagged in repository
-    sha256 = "1rqaakha4sw06k9h0h4g1wmk66zkmhpq92y2rw0kyfpp6xk1zbk2";
+    rev = version;
+    sha256 = "0yxjmcgk5iwp53l9z1cg0ajrj18i09ircs11ifpdrggzm8n1blf3";
   };
 
-  checkInputs = [ pytest ];
-  checkPhase = ''
-    py.test
-  '';
+  preCheck = "rm -rf dist"; # confuses source vs dist imports in pytest
+  checkInputs = [ pytestCheckHook pytestcov ];
 
   meta = with stdenv.lib; {
     description = "Python package to work with Semantic Versioning (http://semver.org/)";
-    homepage = "https://github.com/k-bx/python-semver";
+    homepage = "https://python-semver.readthedocs.io/en/latest/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ np ];
   };
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index d556dcb74cf..3018cabd025 100644
--- a/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -17,18 +17,20 @@
 , stdenv
 , tornado
 , urllib3
+, trytond
+, werkzeug
 }:
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "0.13.5";
+  version = "0.14.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6b919623e488134a728f16326c6f0bcdab7e3f59e7f4c472a90eea4d6d8fe82";
+    sha256 = "0e5e947d0f7a969314aa23669a94a9712be5a688ff069ff7b9fc36c66adc160c";
   };
 
-  checkInputs = [ django flask tornado bottle rq falcon sqlalchemy ]
+  checkInputs = [ django flask tornado bottle rq falcon sqlalchemy werkzeug trytond ]
   ++ stdenv.lib.optionals isPy3k [ celery pyramid sanic aiohttp ];
 
   propagatedBuildInputs = [ urllib3 certifi ];
diff --git a/pkgs/development/python-modules/serpent/default.nix b/pkgs/development/python-modules/serpent/default.nix
index 701de520046..cfb734e5475 100644
--- a/pkgs/development/python-modules/serpent/default.nix
+++ b/pkgs/development/python-modules/serpent/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "serpent";
-  version = "1.28";
+  version = "1.30.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1arnckykpkvv2qrp49l1k7q5mr5pisswl0rvdx98x8wsl1n361pk";
+    sha256 = "72753820246a7d8486e8b385353e3bbf769abfceec2e850fa527a288b084ff7a";
   };
 
   propagatedBuildInputs = lib.optionals isPy27 [ enum34 ];
diff --git a/pkgs/development/python-modules/setuptools-lint/default.nix b/pkgs/development/python-modules/setuptools-lint/default.nix
new file mode 100644
index 00000000000..fbe1528c4c3
--- /dev/null
+++ b/pkgs/development/python-modules/setuptools-lint/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildPythonPackage, fetchPypi, pylint }:
+
+buildPythonPackage rec {
+  pname = "setuptools-lint";
+  version = "0.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "16a1ac5n7k7sx15cnk03gw3fmslab3a7m74dc45rgpldgiff3577";
+  };
+
+  propagatedBuildInputs = [ pylint ];
+
+  meta = with stdenv.lib; {
+    description = "Package to expose pylint as a lint command into setup.py";
+    homepage = "https://github.com/johnnoone/setuptools-pylint";
+    license = licenses.bsdOriginal;
+    maintainers = with maintainers; [ nickhu ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix
index c4ff18697e5..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 = "45.2.0";
+  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 = "003iflm3ifjab3g1bnmhpwx1v3vpl4w90vwcvn8jf9449302d0md";
+      sha256 = "0sy3p4ibgqx67hzn1f254jh8070a8kl9g2la62p3c74k2x7p0r7f";
       name = "${pname}-${version}-source";
     };
 
diff --git a/pkgs/development/python-modules/setuptools_scm/default.nix b/pkgs/development/python-modules/setuptools_scm/default.nix
index 54622c36e6b..fb527a1336d 100644
--- a/pkgs/development/python-modules/setuptools_scm/default.nix
+++ b/pkgs/development/python-modules/setuptools_scm/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "setuptools_scm";
-  version = "3.4.3";
+  version = "4.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "26b8a108783cd88f4b15ff1f0f347d6b476db25d0c226159b835d713f9487320";
+    sha256 = "a8994582e716ec690f33fec70cca0f85bd23ec974e3f783233e4879090a7faa8";
   };
 
   # Requires pytest, circular dependency
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 13a946aeafd..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 = [ maintainers."1000101" ];
+    maintainers = with maintainers; [ _1000101 ];
   };
 }
diff --git a/pkgs/development/python-modules/shellingham/default.nix b/pkgs/development/python-modules/shellingham/default.nix
index 8bf73209ad8..238d394ee11 100644
--- a/pkgs/development/python-modules/shellingham/default.nix
+++ b/pkgs/development/python-modules/shellingham/default.nix
@@ -3,11 +3,12 @@
 
 buildPythonPackage rec {
   pname = "shellingham";
-  version = "1.3.1";
+  version = "1.3.2";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1q7kws7w4x2hji3g7y0ni9ddk4sd676ylrb3db54gbpys6xj6nwq";
+    sha256 = "576c1982bea0ba82fb46c36feb951319d7f42214a82634233f58b40d858a751e";
   };
 
   meta = with stdenv.lib; {
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/shortuuid/default.nix b/pkgs/development/python-modules/shortuuid/default.nix
index fc2a25dab5c..4798bc4ff7e 100644
--- a/pkgs/development/python-modules/shortuuid/default.nix
+++ b/pkgs/development/python-modules/shortuuid/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "shortuuid";
-  version = "0.5.0";
+  version = "1.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d08fd398f40f8baf87e15eef8355e92fa541bca4eb8465fefab7ee22f92711b9";
+    sha256 = "3c11d2007b915c43bee3e10625f068d8a349e04f0d81f08f5fa08507427ebf1f";
   };
 
   buildInputs = [pep8];
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/simpy/default.nix b/pkgs/development/python-modules/simpy/default.nix
index 348dd51599f..f718b3655f6 100644
--- a/pkgs/development/python-modules/simpy/default.nix
+++ b/pkgs/development/python-modules/simpy/default.nix
@@ -1,18 +1,27 @@
-{ buildPythonPackage, fetchPypi, lib }:
+{ buildPythonPackage, fetchPypi, isPy27, lib, setuptools, setuptools_scm
+, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "simpy";
-  version = "3.0.11";
+  version = "4.0.1";
+
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0hqgxk3lggf21jq9lh8838cdl24mdkdnpzh0w4m28d0zn2wjb5nh";
+    sha256 = "b36542e2faab612f861c5ef4da17220ac1553f5892b3583c67281dbe4faad404";
   };
 
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [ setuptools ];
+
+  checkInputs = [ pytestCheckHook ];
+
   meta = with lib; {
-    homepage = "https://simpy.readthedocs.io/en/latest/";
-    description = "A process-based discrete-event simulation framework based on standard Python.";
+    homepage = "https://simpy.readthedocs.io/en/${version}/";
+    description = "Process-based discrete-event simulation framework based on standard Python";
     license = [ licenses.mit ];
-    maintainers = with maintainers; [ shlevy ];
+    maintainers = with maintainers; [ dmrauh shlevy ];
   };
 }
diff --git a/pkgs/development/python-modules/sip/default.nix b/pkgs/development/python-modules/sip/default.nix
index cb1575f9349..2bc8b70e4ca 100644
--- a/pkgs/development/python-modules/sip/default.nix
+++ b/pkgs/development/python-modules/sip/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = sip-module;
-  version = "4.19.18";
+  version = "4.19.22";
   format = "other";
 
   disabled = isPyPy;
 
   src = fetchurl {
     url = "https://www.riverbankcomputing.com/static/Downloads/sip/${version}/sip-${version}.tar.gz";
-    sha256 = "07kyd56xgbb40ljb022rq82shgxprlbl0z27mpf1b6zd00w8dgf0";
+    sha256 = "0idywc326l8v1m3maprg1aq2gph67mmnnsskvlwfx8n19s16idz1";
   };
 
   configurePhase = ''
diff --git a/pkgs/development/python-modules/sipsimple/default.nix b/pkgs/development/python-modules/sipsimple/default.nix
index 76820b6ebc6..d7791fcf96c 100644
--- a/pkgs/development/python-modules/sipsimple/default.nix
+++ b/pkgs/development/python-modules/sipsimple/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   '';
 
   nativeBuildInputs = [ pkgs.pkgconfig ];
-  buildInputs = with pkgs; [ alsaLib ffmpeg libv4l sqlite libvpx ];
+  buildInputs = with pkgs; [ alsaLib ffmpeg_3 libv4l sqlite libvpx ];
   propagatedBuildInputs = [ cython pkgs.openssl dnspython dateutil xcaplib msrplib lxml python-otr ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/six/default.nix b/pkgs/development/python-modules/six/default.nix
index 46f7f6d38b6..8d8cd790cde 100644
--- a/pkgs/development/python-modules/six/default.nix
+++ b/pkgs/development/python-modules/six/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "six";
-  version = "1.14.0";
+  version = "1.15.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a";
+    sha256 = "30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/skein/default.nix b/pkgs/development/python-modules/skein/default.nix
new file mode 100644
index 00000000000..630c4370a87
--- /dev/null
+++ b/pkgs/development/python-modules/skein/default.nix
@@ -0,0 +1,39 @@
+{ buildPythonPackage
+, callPackage
+, fetchPypi
+, isPy27
+, jre
+, lib
+, pythonPackages
+, stdenv
+}:
+
+let
+  pname = "skein";
+  version = "0.8.0";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0nb64p1hzshgi1kfc2jx1v9vn8b0wzs50460wfra3fsxh0ap66ab";
+  };
+  skeinJar = callPackage ./skeinjar.nix { inherit src version; };
+in
+buildPythonPackage rec {
+  inherit pname version src;
+  disabled = isPy27;
+
+  propagatedBuildInputs = with pythonPackages; [ cryptography grpcio grpcio-tools jupyter pytest pyyaml requests jre ];
+
+  preBuild = ''
+    # Ensure skein.jar exists skips the maven build in setup.py
+    mkdir -p skein/java
+    ln -s ${skeinJar} skein/java/skein.jar
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://jcristharif.com/skein";
+    description = "A tool and library for easily deploying applications on Apache YARN";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ alexbiehl ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/skein/skeinjar.nix b/pkgs/development/python-modules/skein/skeinjar.nix
new file mode 100644
index 00000000000..c1a0d8a5751
--- /dev/null
+++ b/pkgs/development/python-modules/skein/skeinjar.nix
@@ -0,0 +1,21 @@
+{ callPackage, stdenv, maven, src, version }:
+
+let
+  skeinRepo = callPackage ./skeinrepo.nix { inherit src version; };
+in
+stdenv.mkDerivation rec {
+  name = "skein-${version}.jar";
+
+  inherit src;
+
+  nativeBuildInputs = [ maven ];
+
+  buildPhase = ''
+    mvn --offline -f java/pom.xml package -Dmaven.repo.local="${skeinRepo}" -Dskein.version=${version} -Dversion=${version}
+  '';
+
+  installPhase = ''
+    # Making sure skein.jar exists skips the maven build in setup.py
+    mv java/target/skein-*.jar $out
+  '';
+}
diff --git a/pkgs/development/python-modules/skein/skeinrepo.nix b/pkgs/development/python-modules/skein/skeinrepo.nix
new file mode 100644
index 00000000000..85b4f19c8f7
--- /dev/null
+++ b/pkgs/development/python-modules/skein/skeinrepo.nix
@@ -0,0 +1,46 @@
+{ autoPatchelfHook, lib, maven, stdenv, src, version }:
+
+stdenv.mkDerivation rec {
+  name = "skein-${version}-maven-repo";
+
+  inherit src;
+
+  nativeBuildInputs = [ maven ] ++ lib.optional stdenv.isLinux autoPatchelfHook;
+
+  doBuild = false;
+
+  installPhase = ''
+    mkdir -p $out
+
+    archs="${
+      if stdenv.isLinux
+      then "linux-x86_32 linux-x86_64"
+      else "osx-x86_64"
+    }"
+
+    for arch in $archs
+    do
+      mvn -Dmaven.repo.local=$out dependency:get -Dartifact=com.google.protobuf:protoc:3.0.0:exe:$arch
+      mvn -Dmaven.repo.local=$out dependency:get -Dartifact=io.grpc:protoc-gen-grpc-java:1.16.0:exe:$arch
+    done
+
+    if ${ lib.boolToString stdenv.isLinux }
+    then
+      autoPatchelf $out
+    fi
+
+    # We have to use maven package here as dependency:go-offline doesn't
+    # fetch every required jar.
+    mvn -f java/pom.xml -Dmaven.repo.local=$out package
+
+    rm $(find $out -name _remote.repositories)
+    rm $(find $out -name resolver-status.properties)
+  '';
+
+  outputHashMode = "recursive";
+  outputHashAlgo = "sha256";
+  outputHash = if stdenv.isLinux
+    then "12f0q3444qw6y4f6qsa9540a0fz4cgi844zzi8z1phqn3k4dnl6v"
+    else "0bjbwiv17cary1isxca0m2hsvgs1i5fh18z247h1hky73lnhbrz8";
+
+} // lib.optionalAttrs stdenv.isLinux { dontAutoPatchelf = true; }
diff --git a/pkgs/development/python-modules/skorch/default.nix b/pkgs/development/python-modules/skorch/default.nix
new file mode 100644
index 00000000000..8e3fcc12f55
--- /dev/null
+++ b/pkgs/development/python-modules/skorch/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pytest
+, pytestcov
+, flaky
+, numpy
+, pandas
+, pytorch
+, scikitlearn
+, scipy
+, tabulate
+, tqdm
+}:
+
+buildPythonPackage rec {
+  pname = "skorch";
+  version = "0.8.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1l576dws9drjakfsn0pfpbr48b21vpxv3vd3dz8lkbn8q71zs22r";
+  };
+
+  propagatedBuildInputs = [ numpy pytorch scikitlearn scipy tabulate tqdm ];
+  checkInputs = [ pytest pytestcov flaky pandas pytestCheckHook ];
+
+  # on CPU, these expect artifacts from previous GPU run
+  disabledTests = [
+    "test_load_cuda_params_to_cpu"
+    "test_pickle_load"
+  ];
+
+  meta = with lib; {
+    description = "Scikit-learn compatible neural net library using Pytorch";
+    homepage = "https://skorch.readthedocs.io";
+    changelog = "https://github.com/skorch-dev/skorch/blob/master/CHANGES.md";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/slither-analyzer/default.nix b/pkgs/development/python-modules/slither-analyzer/default.nix
index 379a7e1b01c..d4f332b4475 100644
--- a/pkgs/development/python-modules/slither-analyzer/default.nix
+++ b/pkgs/development/python-modules/slither-analyzer/default.nix
@@ -6,7 +6,7 @@
 
 buildPythonPackage rec {
   pname = "slither-analyzer";
-  version = "0.6.9";
+  version = "0.6.12";
 
   disabled = pythonOlder "3.6";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fb057eb7f5416ac76b6ab03bb5c20c39cb7b97c7689ce1e7244c9088bd28f513";
+    sha256 = "9773cf48754341d03bb2e65c07897fc9c00a8727487ab2820ed89eb85f546506";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/python-modules/slixmpp/default.nix b/pkgs/development/python-modules/slixmpp/default.nix
index b5315549119..2fd7d92e3d7 100644
--- a/pkgs/development/python-modules/slixmpp/default.nix
+++ b/pkgs/development/python-modules/slixmpp/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "slixmpp";
-  version = "1.4.2";
+  version = "1.5.2";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0rqpmscxjznxyz3dyxpc56gib319k01vl837r8g8w57dinz4y863";
+    sha256 = "0c5g4r5c6zm5fgvk6dd0dbx9gl3ws2swajc5knlacnpfykwzp5b4";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/smart_open/default.nix b/pkgs/development/python-modules/smart_open/default.nix
index 6244ea62333..c3cac404d10 100644
--- a/pkgs/development/python-modules/smart_open/default.nix
+++ b/pkgs/development/python-modules/smart_open/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "smart_open";
-  version = "1.11.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1692h0j6jbxmm0acy1lbbbf4j34l0idi1vpzk6b5ixm0akzcfgl1";
+    sha256 = "555962abf982faff8a8aeb65e0695474e3091f604826055782beffa8400e4e4e";
   };
 
   # nixpkgs version of moto is >=1.2.0, remove version pin to fix build
diff --git a/pkgs/development/python-modules/smmap/default.nix b/pkgs/development/python-modules/smmap/default.nix
index 469c892a903..04b86ad5f6f 100644
--- a/pkgs/development/python-modules/smmap/default.nix
+++ b/pkgs/development/python-modules/smmap/default.nix
@@ -2,10 +2,10 @@
 
 buildPythonPackage rec {
   pname = "smmap";
-  version = "3.0.1";
+  version = "3.0.4";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ijlnv60y8f41py1wnn5n1a1i81cxd9dfpdhr0k3cgkrcbz8850p";
+    sha256 = "9c98bbd1f9786d22f14b3d4126894d56befb835ec90cef151af566c7e19b5d24";
   };
 
   checkInputs = [ nosexcover ];
diff --git a/pkgs/development/python-modules/smpplib/default.nix b/pkgs/development/python-modules/smpplib/default.nix
new file mode 100644
index 00000000000..fe22f121efb
--- /dev/null
+++ b/pkgs/development/python-modules/smpplib/default.nix
@@ -0,0 +1,29 @@
+{ buildPythonPackage, fetchPypi, lib, python, six, tox, mock, pytest }:
+
+buildPythonPackage rec {
+  pname = "smpplib";
+  version = "2.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0jzxlfwf0861ilh4xyd70hmkdbvdki52aalglm1bnpxkg6i3jhfz";
+  };
+
+  propagatedBuildInputs = [ six ];
+  checkInputs = [ tox mock pytest ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  postInstall = ''
+    rm -rf $out/${python.sitePackages}/tests
+  '';
+
+  meta = with lib; {
+    description = "SMPP library for Python";
+    homepage = "https://github.com/python-smpplib/python-smpplib";
+    license = licenses.lgpl3Plus;
+    maintainers = [ maintainers.globin ];
+  };
+}
diff --git a/pkgs/development/python-modules/snapcast/default.nix b/pkgs/development/python-modules/snapcast/default.nix
index 6e319a18341..93d7d1d9d9c 100644
--- a/pkgs/development/python-modules/snapcast/default.nix
+++ b/pkgs/development/python-modules/snapcast/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "snapcast";
-  version = "2.1.0";
+  version = "2.1.1";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1z3c9p22pm3823jzh917c3rryv02mhigrjkjf9wlhzmjwx5vmjqf";
+    sha256 = "c3ecd63d997fbcf6e5322dc47c1f02615f1d9611cba01ec18e9c9f8c14ed824b";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/snowflake-connector-python/default.nix b/pkgs/development/python-modules/snowflake-connector-python/default.nix
index 1d83edbc722..08b4f249709 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.2";
+  version = "2.2.9";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1qqlqypxj3j5qz8jjzil7250alf0w4bx8k8ndyj2ymp8kq2z1v0j";
+    sha256 = "c880f86514008555afa62562def1e975f23c61ff4b3fc1991932ed692ac61a6d";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix b/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
index d8c557eddc7..4a44c320705 100644
--- a/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "snowflake-sqlalchemy";
-  version = "1.1.17";
+  version = "1.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1pmmwkw29944zh044azwbc1gf4s04fm55920d9if2a3zpjm6c5d7";
+    sha256 = "2c598ef37623ef4d035a827f1e84725b3239a47f4366417d089de88f72fc4ac9";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/snscrape/default.nix b/pkgs/development/python-modules/snscrape/default.nix
index 9f0b805a19d..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.1";
+  version = "0.3.4";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11jv5mv3l11qjlsjihd74gc1jafq0i7360cksqjkx1wv2hcc32rf";
+    sha256 = "36ba7f95c8bf5202749189f760e591952f19c849379c35ff598aafafe5d0cfef";
   };
 
   # There are no tests; make sure the executable works.
diff --git a/pkgs/development/python-modules/sockjs-tornado/default.nix b/pkgs/development/python-modules/sockjs-tornado/default.nix
index a74c40486fc..c7235468370 100644
--- a/pkgs/development/python-modules/sockjs-tornado/default.nix
+++ b/pkgs/development/python-modules/sockjs-tornado/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "sockjs-tornado";
-  version = "1.0.6";
+  version = "1.0.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ec12b0c37723b0aac56610fb9b6aa68390720d0c9c2a10461df030c3a1d9af95";
+    sha256 = "02ff25466b3a46b1a7dbe477340b042770ac078de7ea475a6285a28a75eb1fab";
   };
 
   propagatedBuildInputs = [ tornado ];
diff --git a/pkgs/development/python-modules/soco/default.nix b/pkgs/development/python-modules/soco/default.nix
index 0af09cc01ce..b56e43e1321 100644
--- a/pkgs/development/python-modules/soco/default.nix
+++ b/pkgs/development/python-modules/soco/default.nix
@@ -1,4 +1,5 @@
 { lib, buildPythonPackage, fetchPypi, xmltodict, requests
+, toml
 
 # Test dependencies
 , pytest, pytestcov, coveralls, pylint, flake8, graphviz, mock, sphinx
@@ -14,13 +15,7 @@ buildPythonPackage rec {
     sha256 = "0dgca286vhrabm4r4jj545k895z6w2c70ars06vrjhf9cpgg7qck";
   };
 
-  postPatch = ''
-    # https://github.com/SoCo/SoCo/pull/670
-    substituteInPlace requirements-dev.txt \
-      --replace "pytest-cov>=2.4.0,<2.6" "pytest-cov>=2.4.0"
-  '';
-
-  propagatedBuildInputs = [ xmltodict requests ];
+  propagatedBuildInputs = [ xmltodict requests toml ];
   checkInputs = [
     pytest pytestcov coveralls pylint flake8 graphviz mock sphinx
     sphinx_rtd_theme
diff --git a/pkgs/development/python-modules/somajo/default.nix b/pkgs/development/python-modules/somajo/default.nix
index 306737c4002..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.0.5";
+  version = "2.1.1";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "tsproisl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "01zvmqilnndh2b257z7bhcc7av5vhjm1g8gmdiiw15gcd2xfmqjs";
+    sha256 = "0yj3yb0qvfdv4wh7nzcsh9in8nzk7b59dvjj0x02rsmlv4kw9ah1";
   };
 
   propagatedBuildInputs = [ regex ];
diff --git a/pkgs/development/python-modules/sopel/default.nix b/pkgs/development/python-modules/sopel/default.nix
index d01fd722ab8..61a0414a998 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 = "6.6.9";
+  version = "7.0.6";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1arldn3p2yp09wnn2cw50r5ri303d5jdsjnf6lgfl82jhfmk49a2";
+    sha256 = "0f0aixwjh5nax0hzar4993rg9yn1x23rksz5jl5gj8g2jyblsfay";
   };
 
   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 1979daf85be..f62af59c4ed 100644
--- a/pkgs/development/python-modules/sorl_thumbnail/default.nix
+++ b/pkgs/development/python-modules/sorl_thumbnail/default.nix
@@ -1,17 +1,21 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
+, setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "sorl-thumbnail";
-  version = "12.5.0";
+  version = "12.6.3";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8dfe5fda91a5047d1d35a0b9effe7b000764a01d648e15ca076f44e9c34b6dbd";
+    sha256 = "66771521f3c0ed771e1ce8e1aaf1639ebff18f7f5a40cfd3083da8f0fe6c7c99";
   };
 
+  nativeBuildInputs = [ setuptools_scm ];
   # Disabled due to an improper configuration error when tested against django. This looks like something broken in the test cases for sorl.
   doCheck = false;
 
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/sounddevice/default.nix b/pkgs/development/python-modules/sounddevice/default.nix
index 9a6baf80f04..21dd487aafe 100644
--- a/pkgs/development/python-modules/sounddevice/default.nix
+++ b/pkgs/development/python-modules/sounddevice/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "sounddevice";
-  version = "0.3.15";
+  version = "0.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "028f6e5df83027f4bfba5d6d61e6d46eb8689f9e647825e09f539920dee17d2c";
+    sha256 = "007cfef077c447eebbdbca3d510ca4365c211c2c6c4d2912d6eec43c8cbcbc02";
   };
 
   propagatedBuildInputs = [ cffi numpy portaudio ];
diff --git a/pkgs/development/python-modules/soupsieve/1.nix b/pkgs/development/python-modules/soupsieve/1.nix
new file mode 100644
index 00000000000..bb5ecbc839c
--- /dev/null
+++ b/pkgs/development/python-modules/soupsieve/1.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+, beautifulsoup4
+, isPy3k
+, backports_functools_lru_cache
+}:
+
+buildPythonPackage rec {
+  pname = "soupsieve";
+  version = "1.9.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "7985bacc98c34923a439967c1a602dc4f1e15f923b6fcf02344184f86cc7efaa";
+  };
+
+  checkPhase = ''
+    py.test
+  '';
+
+  checkInputs = [ pytest beautifulsoup4 ];
+
+  propagatedBuildInputs = lib.optional (!isPy3k) backports_functools_lru_cache;
+
+  # Circular test dependency on beautifulsoup4
+  doCheck = false;
+
+  meta = {
+    description = "A CSS4 selector implementation for Beautiful Soup";
+    license = lib.licenses.mit;
+    homepage = "https://github.com/facelessuser/soupsieve";
+  };
+
+}
diff --git a/pkgs/development/python-modules/soupsieve/default.nix b/pkgs/development/python-modules/soupsieve/default.nix
index b8cdd63cbde..22d1926d8bb 100644
--- a/pkgs/development/python-modules/soupsieve/default.nix
+++ b/pkgs/development/python-modules/soupsieve/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "soupsieve";
-  version = "1.9.5";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e2c1c5dee4a1c36bcb790e0fabd5492d874b8ebd4617622c4f6a731701060dda";
+    sha256 = "a59dc181727e95d25f781f0eb4fd1825ff45590ec8ff49eadfd7f1a537cc0232";
   };
 
   checkPhase = ''
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 0c990962268..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.2.4";
+  version = "2.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1fgm1zlw8mjhmk64skxs79ymhcningml13y9c9fy7rj1b1yadwzh";
+    sha256 = "07zf7kivj4r1n6xwisld7n90bpi095bqbc9xpv668grq1rpf53c1";
   };
 
   propagatedBuildInputs = [
@@ -53,10 +54,23 @@ buildPythonPackage rec {
   #   ${python.interpreter} -m pytest spacy/tests --vectors --models --slow
   # '';
 
+  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" \
+      --replace "thinc==7.4.1" "thinc>=7.4.1,<8"
+  '';
+
+  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";
     license = licenses.mit;
     maintainers = with maintainers; [ danieldk sdll ];
-    };
+  };
 }
diff --git a/pkgs/development/python-modules/spacy/models.json b/pkgs/development/python-modules/spacy/models.json
index 1f1558b23c3..3a427f8932a 100644
--- a/pkgs/development/python-modules/spacy/models.json
+++ b/pkgs/development/python-modules/spacy/models.json
@@ -1,108 +1,264 @@
 [{
-  "pname": "de_core_news_md",
-  "version": "2.2.5",
-  "sha256": "1jkc4r0f1916k5qpmpnwawsbnrbscq250q7b1llgxi70f2xyw9gk",
+  "pname": "da_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "18y1jany1ha27jkwb9563haxsbylm0axkh5c8009lsfxc8y2w9hr",
   "license": "cc-by-sa-40"
 },
 {
-  "pname": "de_core_news_sm",
-  "version": "2.2.5",
-  "sha256": "10z30hirfwa692m0zp6wk60ccvqj84i5vjaiyyzd21innysb5y3g",
+  "pname": "da_core_news_md",
+  "version": "2.3.0",
+  "sha256": "06nm5grj5jdx0rja7vw1f91vvd69p6vhafrwpfr1npqk24j6cacb",
   "license": "cc-by-sa-40"
 },
 {
-  "pname": "el_core_news_md",
-  "version": "2.2.5",
-  "sha256": "1jjmf6rf1hjgqswhpqq2l5w7s351k4kk93c7rr85iv2754f71h36",
+  "pname": "da_core_news_sm",
+  "version": "2.3.0",
+  "sha256": "00byhlrcbg4wxplr473g9b3126pvk4vwy0q34xg0zx4994qb6rgn",
   "license": "cc-by-sa-40"
 },
 {
+  "pname": "de_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "0rixhgdz4z7sq6f2b1w3n5cn1645cr37g40hbd9xzlvdzdf5cg6d",
+  "license": "mit"
+},
+{
+  "pname": "de_core_news_md",
+  "version": "2.3.0",
+  "sha256": "0kxir1w000r5fn1kpa38m7688xinkn2mk1m82aiwqlck3r72jdi6",
+  "license": "mit"
+},
+{
+  "pname": "de_core_news_sm",
+  "version": "2.3.0",
+  "sha256": "00cbmrf4njg28laysapdnp4rv4lw4yw03rxkynw1ain5fwb0izl7",
+  "license": "mit"
+},
+{
+  "pname": "el_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "001c19dd1kirlvzbdv2i89zw8nf6c4icv2w0chm7rd6x9m3i13gd",
+  "license": "cc-by-nc-sa-30"
+},
+{
+  "pname": "el_core_news_md",
+  "version": "2.3.0",
+  "sha256": "170x8bzm5nf02mhkxyxjk58yk2639hsjb5b9prcc69500c0vmnp0",
+  "license": "cc-by-nc-sa-30"
+},
+{
   "pname": "el_core_news_sm",
-  "version": "2.2.5",
-  "sha256": "00h55fc27d3jfm3knyidz7a4rasiz7qs4wfs3sl0ndq815yvag0l",
-  "license": "cc-by-sa-40"
+  "version": "2.3.0",
+  "sha256": "10mh3za4jvr07rawzk8ps642rp11s3smraj9xvrxflik4fqkz18b",
+  "license": "cc-by-nc-sa-30"
 },
 {
   "pname": "en_core_web_lg",
-  "version": "2.2.5",
-  "sha256": "1shd4gkshr4a92fhvrjhzn1abywnrcf548cv3dz8dhmi0wxa4klr",
-  "license": "cc-by-sa-40"
+  "version": "2.3.0",
+  "sha256": "0mfa5wz31ya295jhyj489gb4qy806zmpq1zc11bvv5alv2m35if2",
+  "license": "mit"
 },
 {
   "pname": "en_core_web_md",
-  "version": "2.2.5",
-  "sha256": "1x32vl2a75ps2iyhysjvdygd366zs546s82yzqwj2m7jcsdszrxy",
-  "license": "cc-by-sa-40"
+  "version": "2.3.0",
+  "sha256": "1ys8sqkhiap1mq6mhbkbq8bc07lvl68xngbx725xkwvirzl5gabh",
+  "license": "mit"
 },
 {
   "pname": "en_core_web_sm",
-  "version": "2.2.5",
-  "sha256": "1vna6zik7863hahxdgz0s80kbbfyw42h4c1k5jby9lkzr5jr1dk0",
-  "license": "cc-by-sa-40"
+  "version": "2.3.0",
+  "sha256": "04icv9qf4pj53ll8vqxcjl2a723q1k00i7lifk8wx5saif28g37a",
+  "license": "mit"
 },
 {
   "pname": "en_vectors_web_lg",
-  "version": "2.1.0",
-  "sha256": "1sq41pr70215f2s8k35x5ni4w0i4xhbzbfg3iyxgbp1b35gizg94",
-  "license": "cc-by-sa-40"
+  "version": "2.3.0",
+  "sha256": "13g012rwh0bcxx3ii5mmygqzyryah1y3zd000zhidnacc1x1g743",
+  "license": "cc-by-sa-30"
+},
+{
+  "pname": "es_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "1r0pr0lzs3j9w7rd5z9nw87iayjm36v7f7gamvaiiphs6bc5p7ls",
+  "license": "gpl3"
 },
 {
   "pname": "es_core_news_md",
-  "version": "2.2.5",
-  "sha256": "0b50gd2mx1klr6ss0fsj58qmw2wpbawwv015pr9vq3j7jq805scl",
-  "license": "cc-by-sa-40"
+  "version": "2.3.0",
+  "sha256": "0nz33bmpr3rxqbnv6vb1id8pkfsvh8ii8vqplwgb3b8772kmpzy2",
+  "license": "gpl3"
 },
 {
   "pname": "es_core_news_sm",
-  "version": "2.2.5",
-  "sha256": "19hrpxg1a5bvf9j9wlm03rkxfkgrldky7alsgl8bdwnwq3vpbgfi",
-  "license": "cc-by-sa-40"
+  "version": "2.3.0",
+  "sha256": "02xqhg4m0gg5r9yibvl02zixkll6w0nsmbdhp07y5yyaqjarc90d",
+  "license": "gpl3"
+},
+{
+  "pname": "fr_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "1yliamws8nqqjhpk9gr2dzlk0dms2mr958zbj21biv8fimbq60ik",
+  "license": "lgpllr"
 },
 {
   "pname": "fr_core_news_md",
-  "version": "2.2.5",
-  "sha256": "1y4dqbcwa7gg6z8q84n0j4my7gyia7a2z7pln71sqa78pin06r9b",
-  "license": "cc-by-sa-40"
+  "version": "2.3.0",
+  "sha256": "04fk212ksac3bp9dj7dmzsdcnbqmbsgymsic6ddcv9zbfdv5d0db",
+  "license": "lgpllr"
 },
 {
   "pname": "fr_core_news_sm",
-  "version": "2.2.5",
-  "sha256": "1q2kvznbylyz4frxy5rbvpm5jvm7bfin8g3dks0c1k9hhdymv35y",
-  "license": "cc-by-sa-40"
+  "version": "2.3.0",
+  "sha256": "0kldww855z67qfc9maa9z1lsvdf5vj5vc8gj0x3h68kv5n1xr4h0",
+  "license": "lgpllr"
+},
+{
+  "pname": "it_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "192rdmqnwl3ajxzhnw4r1cqv5bkziv0yc2bbzckmzqss64wk7k70",
+  "license": "cc-by-nc-sa-30"
+},
+{
+  "pname": "it_core_news_md",
+  "version": "2.3.0",
+  "sha256": "019ih4vwq1w6j38j0wc8pyyg1an6yy37wxq2w4amwppynmmcnd5w",
+  "license": "cc-by-nc-sa-30"
 },
 {
   "pname": "it_core_news_sm",
-  "version": "2.2.5",
-  "sha256": "02r3x308s5kn62xpa2cizxfw7cyjk48zm9i6r4vhs8kycmp9z0px",
+  "version": "2.3.0",
+  "sha256": "1c3ywqa8li0j7cyvd1xqbb096y61978hd6qv7rc6cxxjdhmkrrds",
+  "license": "cc-by-nc-sa-40"
+},
+{
+  "pname": "lt_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "0hn5w8n7mgv33i6gvnaxl1j44n9gz4j86gg1a9jjlgdw5z98n0p2",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "lt_core_news_md",
+  "version": "2.3.0",
+  "sha256": "1xya79cz2xd5vgzg6qg0ww5j2bmv7kppdk3mdjf6zpwrlzwdbk5d",
   "license": "cc-by-sa-40"
 },
 {
   "pname": "lt_core_news_sm",
-  "version": "2.2.5",
-  "sha256": "0vy0cff1fw33srqyi93vj03rnzqr8f62p1hwi565b0sb8v3n4p08",
+  "version": "2.3.0",
+  "sha256": "0r3rbqgz4897wyhz5jli30lryb45039f4rlvn4q0364cg1pm92g9",
   "license": "cc-by-sa-40"
 },
 {
+  "pname": "nb_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "18mblypw3c82004qz5w1p3262iqwn99wl9b781dq7aqwxskr02d6",
+  "license": "mit"
+},
+{
+  "pname": "nb_core_news_md",
+  "version": "2.3.0",
+  "sha256": "0iw97k9glxbar8mrpvnmmcb1nffgdhb83akn99p53pwmqbzxy9p3",
+  "license": "mit"
+},
+{
   "pname": "nb_core_news_sm",
-  "version": "2.2.5",
-  "sha256": "1kdn3qwlmmd52sjrvi97aiv7xp260bka009jjal79l3qrz4czrw1",
+  "version": "2.3.0",
+  "sha256": "07b7xri2q3m7fvn9a2gjc1044a3f14231vr32hrw96h7k6vg95h7",
   "license": "mit"
 },
 {
+  "pname": "nl_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "016166kzpgi0p3m0x3k308a0r60a28yz7npagjvmpl1dfm9lzhnv",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "nl_core_news_md",
+  "version": "2.3.0",
+  "sha256": "1anfhig531k9k14s0cbgsvmvifp3h50qi1h8dhx894kjmq10k2lg",
+  "license": "cc-by-sa-40"
+},
+{
   "pname": "nl_core_news_sm",
-  "version": "2.2.1",
-  "sha256": "0gw9a1j3v4f15cxcz7zr7dz7mqi2a3541b04q6kj74gg397li4ny",
+  "version": "2.3.0",
+  "sha256": "0alvz7pn7cj0yax8h5gp71vrdblh3mcsmyhzgiddsd44ry35nxnj",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "pl_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "1acchp8pv1h4c6cwvxz07lh4ychn6aw809zfg3mbbsxgsgd2ahjr",
+  "license": "gpl3"
+},
+{
+  "pname": "pl_core_news_md",
+  "version": "2.3.0",
+  "sha256": "19jjjjvbys3ayibkm3cx497b4bh63ll39hfq04wx116rj4ajpwwg",
+  "license": "gpl3"
+},
+{
+  "pname": "pl_core_news_sm",
+  "version": "2.3.0",
+  "sha256": "166mqlfkgiszcc6hwg2mr6sir9y88y22nd81a1nidq0fiif5lfji",
+  "license": "gpl3"
+},
+{
+  "pname": "pt_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "18gvdmfwyy2sbq6206imglhghyagd6a4gb6wcfkwhm7lzbnq714d",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "pt_core_news_md",
+  "version": "2.3.0",
+  "sha256": "1yxnpwby2aq6ydvd35lylc4fs141fisfnzlx8pl88pp2b2gxijvl",
   "license": "cc-by-sa-40"
 },
 {
   "pname": "pt_core_news_sm",
-  "version": "2.2.5",
-  "sha256": "02p617ybh6wqmq1scch9dgim44rhhj0k81sbw8nysv20pc6wb89a",
+  "version": "2.3.0",
+  "sha256": "1vcvzdg9f93x0vaafkk9l9xhpmaavfj0cf0l3p06c5kx2d76f9ph",
   "license": "cc-by-sa-40"
 },
 {
-  "pname": "xx_ent_wiki_sm",
-  "version": "2.2.0",
-  "sha256": "0niwnd1mdaji92yp2dqsbmr0w420gpaybb1ppbqr1rmk6bwgyhsb",
+  "pname": "ro_core_news_sm",
+  "version": "2.3.0",
+  "sha256": "0lsmbdwsaczv37y5sa1vvgwszy2hs8jp24a0nvc5qm8vb71rxj8w",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "ro_core_news_md",
+  "version": "2.3.0",
+  "sha256": "1igwkz3yd1117gi2g78yilh9ln8n5yrdimas4prfxjgzwid3q8bc",
   "license": "cc-by-sa-40"
+},
+{
+  "pname": "ro_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "0id1y32kjfans7llh1i55rgr4n2x6xn208y4qf6yl3pbc17i0n9z",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "xx_ent_wiki_sm",
+  "version": "2.3.0",
+  "sha256": "0x3zmmybl5kh4dn5prkfmr4q5j9bh13p40qc3rhdfi0i3jxc11pn",
+  "license": "mit"
+},
+{
+  "pname": "zh_core_web_lg",
+  "version": "2.3.1",
+  "sha256": "17zxk7cz47k07yb3qaigc3sx4dj4zwilr1lsn2jq6w7jc8k2h1ll",
+  "license": "mit"
+},
+{
+  "pname": "zh_core_web_md",
+  "version": "2.3.1",
+  "sha256": "1n4iwxyam4ykn0f9jdzwkhczack8r9c3kkbyga3c4h6iwqsflzcj",
+  "license": "mit"
+},
+{
+  "pname": "zh_core_web_sm",
+  "version": "2.3.1",
+  "sha256": "1lj5nwhx38cpwnvajwxlfkf84dr1xx2h6wwbg3scycsh459i9fpc",
+  "license": "mit"
 }]
diff --git a/pkgs/development/python-modules/spacy/models.nix b/pkgs/development/python-modules/spacy/models.nix
index b091c3b7d56..c4a314ea474 100644
--- a/pkgs/development/python-modules/spacy/models.nix
+++ b/pkgs/development/python-modules/spacy/models.nix
@@ -1,6 +1,9 @@
-{ stdenv, buildPythonPackage, fetchurl, spacy }:
+{ stdenv, lib, buildPythonPackage, fetchurl, jieba, pkuseg, spacy }:
 let
-  buildModelPackage = { pname, version, sha256, license }: buildPythonPackage {
+  buildModelPackage = { pname, version, sha256, license }:
+  let
+    lang = builtins.substring 0 2 pname;
+  in buildPythonPackage {
     inherit pname version;
 
     src = fetchurl {
@@ -8,7 +11,10 @@ let
       inherit sha256;
     };
 
-    propagatedBuildInputs = [ spacy ];
+    propagatedBuildInputs = [ spacy ]
+      ++ lib.optionals (lang == "zh") [ jieba pkuseg ];
+
+    pythonImportsCheck = [ pname ];
 
     meta = with stdenv.lib; {
       description = "Models for the spaCy NLP library";
diff --git a/pkgs/development/python-modules/sparse/default.nix b/pkgs/development/python-modules/sparse/default.nix
index 355453ed26e..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
@@ -10,16 +11,16 @@
 
 buildPythonPackage rec {
   pname = "sparse";
-  version = "0.9.1";
+  version = "0.10.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04gfwm1y9knryx992biniqa3978n3chr38iy3y4i2b8wy52fzy3d";
+    sha256 = "ffbca00a53f938e4f04230f582b210440efb54d74d60af1d1ced3864f61677ac";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest dask ];
   propagatedBuildInputs = [
     numpy
     scipy
diff --git a/pkgs/development/python-modules/spectral-cube/default.nix b/pkgs/development/python-modules/spectral-cube/default.nix
index 3e520919f33..b0b3e4b8f65 100644
--- a/pkgs/development/python-modules/spectral-cube/default.nix
+++ b/pkgs/development/python-modules/spectral-cube/default.nix
@@ -1,6 +1,7 @@
 { lib
 , fetchFromGitHub
 , buildPythonPackage
+, aplpy
 , astropy
 , radio_beam
 , pytest
@@ -24,7 +25,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ astropy-helpers ];
 
-  checkInputs = [ pytest pytest-astropy ];
+  checkInputs = [ aplpy pytest pytest-astropy ];
 
   # Disable automatic update of the astropy-helper module
   postPatch = ''
diff --git a/pkgs/development/python-modules/spglib/default.nix b/pkgs/development/python-modules/spglib/default.nix
index 02155483b20..2044e379937 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.14.1.post0";
+  version = "1.15.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0kmllcch5p20ylxirqiqzls567jr2808rbld9i8f1kf0205al8qq";
+    sha256 = "0c1nbpd5wy361xga8lw36xwc9yyz7rylsjr0z7aw7bn3s35bnkbx";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/pkgs/development/python-modules/sphfile/default.nix b/pkgs/development/python-modules/sphfile/default.nix
index b10552bf093..79f7aa0739c 100644
--- a/pkgs/development/python-modules/sphfile/default.nix
+++ b/pkgs/development/python-modules/sphfile/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "sphfile";
-  version = "1.0.1";
+  version = "1.0.3";
 
   src = fetchurl {
     url = "mirror://pypi/s/sphfile/${pname}-${version}.tar.gz";
-    sha256 = "422b0704107b02ef3ca10e55ccdc80b0bb5ad8e2613b6442f8e2ea372c7cf5d8";
+    sha256 = "1596d801facc2b03a40a1bc67a839701f068a41597059feb82fc9378420c52c0";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/pkgs/development/python-modules/sphinx/default.nix b/pkgs/development/python-modules/sphinx/default.nix
index 9c7d699d20f..b4cbd3bff9a 100644
--- a/pkgs/development/python-modules/sphinx/default.nix
+++ b/pkgs/development/python-modules/sphinx/default.nix
@@ -32,11 +32,11 @@
 
 buildPythonPackage rec {
   pname = "sphinx";
-  version = "2.3.1";
+  version = "3.0.3";
   src = fetchPypi {
     pname = "Sphinx";
     inherit version;
-    sha256 = "19a28nsb0w4bs6k8rdfyk6vzrcwdpvhs2wq77rgpmww59yvndrz6";
+    sha256 = "0wpmqfx4mxv5kv9xxd6wyfsm8vcnp8p99h14q7b6if2mv69gvvb2";
   };
   LC_ALL = "en_US.UTF-8";
 
@@ -70,12 +70,6 @@ buildPythonPackage rec {
   # Lots of tests. Needs network as well at some point.
   doCheck = false;
 
-  # https://github.com/NixOS/nixpkgs/issues/22501
-  # Do not run `python sphinx-build arguments` but `sphinx-build arguments`.
-  postPatch = ''
-    substituteInPlace sphinx/make_mode.py --replace "sys.executable, " ""
-  '';
-
   meta = {
     description = "A tool that makes it easy to create intelligent and beautiful documentation for Python projects";
     homepage = "http://sphinx.pocoo.org/";
diff --git a/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix b/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
index 5644834b281..95aa0c5fdeb 100644
--- a/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
@@ -1,15 +1,17 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-applehelp";
-  version = "1.0.1";
+  version = "1.0.2";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "edaa0ab2b2bc74403149cb0209d6775c96de797dfd5b5e2a71981309efab3897";
+    sha256 = "a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58";
   };
 
 
diff --git a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
index 36fb29fde59..bc9a90efcf2 100644
--- a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k
 , oset, pybtex, pybtex-docutils, sphinx
 }:
 
@@ -6,6 +6,8 @@ buildPythonPackage rec {
   version = "1.0.0";
   pname = "sphinxcontrib-bibtex";
 
+  disabled = !isPy3k;
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "629612b001f86784669d65e662377a482052decfd9a0a17c46860878eef7b9e0";
diff --git a/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix b/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix
index fca1856863b..01d34dd0ae6 100644
--- a/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-devhelp";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6c64b077937330a9128a4da74586e8c2130262f014689b4b89e2d08ee7294a34";
+    sha256 = "ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4";
   };
 
 
diff --git a/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix b/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
index 42a6046a1fb..8eec8ab3267 100644
--- a/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
@@ -1,15 +1,17 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-htmlhelp";
-  version = "1.0.2";
+  version = "1.0.3";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4670f99f8951bd78cd4ad2ab962f798f5618b17675c35c5ac3b2132a14ea8422";
+    sha256 = "e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b";
   };
 
 
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-katex/default.nix b/pkgs/development/python-modules/sphinxcontrib-katex/default.nix
index d3c9fe15280..95bd4b59201 100644
--- a/pkgs/development/python-modules/sphinxcontrib-katex/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-katex/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-katex";
-  version = "0.6.0";
+  version = "0.6.1";
 
   # pkgutil namespaces are broken in nixpkgs (because they can't scan multiple
   # directories). But python2 is EOL, so not supporting it should be ok.
@@ -10,7 +10,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1692q3f3z1rsd3nyxd8wrv0vscwcq2gqjbv79c8ws402y3m7y5ni";
+    sha256 = "88320b2780f350d67f84a5424973ce24aee65701e8e163a7f5856c5df3353188";
   };
 
   propagatedBuildInputs = [ sphinx ];
diff --git a/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix b/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
index a60a36413ac..7c5c95d6ad4 100644
--- a/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-openapi";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02pkzcmxikcfvkvcfsclnhymzl1lc84jz6vmdaslbgh4j5vlp5ym";
+    sha256 = "1c1bd10d7653912c59a42f727c62cbb7b75f7905ddd9ccc477ebfd1bc69f0cf3";
   };
 
   propagatedBuildInputs = [setuptools_scm pyyaml jsonschema sphinxcontrib_httpdomain];
diff --git a/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix b/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
index 358ad771c5d..f8e826adf1f 100644
--- a/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
@@ -1,15 +1,17 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-qthelp";
-  version = "1.0.2";
+  version = "1.0.3";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "79465ce11ae5694ff165becda529a600c754f4bc459778778c7017374d4d406f";
+    sha256 = "4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72";
   };
 
 
diff --git a/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix b/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
index 04b19aef8bf..05f2749c49d 100644
--- a/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
@@ -1,15 +1,17 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-serializinghtml";
-  version = "1.1.3";
+  version = "1.1.4";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c0efb33f8052c04fd7a26c0a07f1678e8512e0faec19f4aa8f2473a8b81d5227";
+    sha256 = "eaa0eccc86e982a9b939b2b82d12cc5d013385ba5eadcc7e4fed23f4405f77bc";
   };
 
 
diff --git a/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix b/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
index 79b2aa42e36..c0efaec4be3 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 = "4.3.0";
+  version = "5.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0304dac9286378f9c608af8d885a08fe03a9c62b3ebfa8802008018d92371c19";
+    sha256 = "7f220647f1d9270bd90f0a42146b75a03c51a60184ced6584a9e5ef8f385b5a1";
   };
 
   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/1_1.nix b/pkgs/development/python-modules/sphinxcontrib-websupport/1_1.nix
new file mode 100644
index 00000000000..b1bdf6a0dff
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxcontrib-websupport/1_1.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-websupport";
+  version = "1.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1501befb0fdf1d1c29a800fdbf4ef5dc5369377300ddbdd16d2cd40e54c6eefc";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  doCheck = false;
+
+  meta = {
+    description = "Sphinx API for Web Apps";
+    homepage = "http://sphinx-doc.org/";
+    license = lib.licenses.bsd2;
+  };
+}
diff --git a/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix b/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix
index b1bdf6a0dff..1ca4db40263 100644
--- a/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-websupport";
-  version = "1.1.2";
+  version = "1.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1501befb0fdf1d1c29a800fdbf4ef5dc5369377300ddbdd16d2cd40e54c6eefc";
+    sha256 = "ee1d43e6e0332558a66fcb4005b9ba7313ad9764d0df0e6703ae869a028e451f";
   };
 
   propagatedBuildInputs = [ six ];
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/spotipy/default.nix b/pkgs/development/python-modules/spotipy/default.nix
index 74ab81c2f08..fb1c8474695 100644
--- a/pkgs/development/python-modules/spotipy/default.nix
+++ b/pkgs/development/python-modules/spotipy/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "spotipy";
-  version = "2.10.0";
+  version = "2.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0s2f9yxhfkfipbb06965gfjq4lg0khp5vcykijrx6dzxyh20vggm";
+    sha256 = "f3a08edd516ffaf0731d40fdb7943445fe7b1b412700d042cbd168a726685222";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/spyder-kernels/default.nix b/pkgs/development/python-modules/spyder-kernels/default.nix
index 1f9455c8087..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.0";
+  version = "1.9.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1sqjagabqccrc73a423smfjmiph7lfjzj26r6hn3j3vf3drm3rpj";
+    sha256 = "877109d0691376f8ffb380ec1daf9b867958231065660277dbc5ccf0b4bf87d0";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/spyder/default.nix b/pkgs/development/python-modules/spyder/default.nix
index 82c45f3cb64..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.2";
+  version = "4.1.4";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0qyisrs9xkzx4hbyin9nasvl10qk7jlxrmyasxycz4zwnvzfvxzf";
+    sha256 = "6946b2128afaf1b64e878a74d33f9abd60c91f75949b3d05f305b3c3f5fec1e2";
   };
 
   nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     comment = "Scientific Python Development Environment";
     desktopName = "Spyder";
     genericName = "Python IDE";
-    categories = "Application;Development;IDE;";
+    categories = "Development;IDE;";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/sqlalchemy-citext/default.nix b/pkgs/development/python-modules/sqlalchemy-citext/default.nix
index 1f0dd5eb7ea..300941e2617 100644
--- a/pkgs/development/python-modules/sqlalchemy-citext/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-citext/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "sqlalchemy-citext";
-  version = "1.3-0";
+  version = "1.6.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7d7343037a35153d6f94c3c2f6baf391f88a57651c3bde5d6749d216859ae4c5";
+    sha256 = "1d66e7d49826fec28a9ce69053fdf82d3a5ff397968c5bf38a0d83dcb4bf2303";
   };
 
   propagatedBuildInputs = [
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 db23e2ab7db..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.3";
+  version = "0.36.6";
 
   src = fetchPypi {
     inherit version;
     pname = "SQLAlchemy-Utils";
-    sha256 = "0fj9qiz5hq8gf9pnir077sl58chry7jz63fnj1vgx5rmq1dsys7j";
+    sha256 = "0srs5w486wp5zydjs70igi5ypgxhm6h73grb85jz03fqpqaanzvs";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sqlalchemy/default.nix b/pkgs/development/python-modules/sqlalchemy/default.nix
index b536059bed1..dac38c55b7d 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.13";
+  version = "1.3.18";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "64a7b71846db6423807e96820993fa12a03b89127d278290ca25c0b11ed7b4fb";
+    sha256 = "da2fb75f64792c1fc64c82313a00c728a7c301efe6a60b7a9fe35b16b4368ce7";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/sqlmap/default.nix b/pkgs/development/python-modules/sqlmap/default.nix
index e6227e4ced3..8ccfaca1793 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.4";
+  version = "1.4.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0chnb421g4bsshbkx6d1xnhsda4250jsn8zyklg5p1vqyr12mhik";
+    sha256 = "0096vrdnax467vl0xl4m0z9pqddl9dhvk6gyryx6gvaslrvn2j26";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/sqlparse/default.nix b/pkgs/development/python-modules/sqlparse/default.nix
index 4e1ced22beb..b6aee633e0e 100644
--- a/pkgs/development/python-modules/sqlparse/default.nix
+++ b/pkgs/development/python-modules/sqlparse/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "sqlparse";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wxqrm9fpn4phz6rqm7kfd1wwkwzx376gs27nnalwx12q0lwlgbw";
+    sha256 = "e162203737712307dfe78860cc56c8da8a852ab2ee33750e33aeadf38d12c548";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/sqlsoup/default.nix b/pkgs/development/python-modules/sqlsoup/default.nix
new file mode 100644
index 00000000000..a6ffd3227cd
--- /dev/null
+++ b/pkgs/development/python-modules/sqlsoup/default.nix
@@ -0,0 +1,21 @@
+{ buildPythonPackage, fetchPypi, lib, sqlalchemy, nose }:
+
+buildPythonPackage rec {
+  pname = "sqlsoup";
+  version = "0.9.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1mj00fhxj75ac3i8xk9jmm7hvcjz9p4x2r3yndcwsgb659rvgbrg";
+  };
+
+  propagatedBuildInputs = [ sqlalchemy ];
+  checkInputs = [ nose ];
+
+  meta = with lib; {
+    description = "A one step database access tool, built on the SQLAlchemy ORM";
+    homepage = "https://bitbucket.org/zzzeek/sqlsoup";
+    license = licenses.mit;
+    maintainers = [ maintainers.globin ];
+  };
+}
diff --git a/pkgs/development/python-modules/srp/default.nix b/pkgs/development/python-modules/srp/default.nix
index 77644f6aa69..2afbb22d64e 100644
--- a/pkgs/development/python-modules/srp/default.nix
+++ b/pkgs/development/python-modules/srp/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "srp";
-  version = "1.0.15";
+  version = "1.0.16";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d5b8ed6dc7d3ae2845a16590ef37763bbf15d6049848b85a8c96dfb8a83c984a";
+    sha256 = "c943b7181322a2bdd50d20e1244536c404916e546131dc1fae10a7cb99a013e9";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/srsly/default.nix b/pkgs/development/python-modules/srsly/default.nix
index 39765f06a50..d1de78788d8 100644
--- a/pkgs/development/python-modules/srsly/default.nix
+++ b/pkgs/development/python-modules/srsly/default.nix
@@ -3,6 +3,7 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, cython
 , mock
 , numpy
 , pathlib
@@ -12,14 +13,16 @@
 
 buildPythonPackage rec {
   pname = "srsly";
-  version = "1.0.2";
+  version = "2.2.0";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1n0f9kbbz5akpbiqqz4j3p7zqai3zasw8cqai9zj1pv7sn0qn9ar";
+    sha256 = "1h246zvh2wsqyjlw3a3bwmd1zwrkgpflk4z4i9k3sqp2j1jika54";
   };
 
-  propagatedBuildInputs = lib.optional (pythonOlder "3.4") pathlib;
+  nativeBuildInputs = [ cython ];
 
   checkInputs = [
     mock
@@ -32,6 +35,8 @@ buildPythonPackage rec {
   # Possibly because of sandbox restrictions.
   doCheck = false;
 
+  pythonImportsCheck = [ "srsly" ];
+
   meta = with stdenv.lib; {
     description = "Modern high-performance serialization utilities for Python";
     homepage = "https://github.com/explosion/srsly";
diff --git a/pkgs/development/python-modules/srvlookup/default.nix b/pkgs/development/python-modules/srvlookup/default.nix
new file mode 100644
index 00000000000..6cbdc81ef86
--- /dev/null
+++ b/pkgs/development/python-modules/srvlookup/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchPypi, buildPythonPackage
+, dnspython
+, mock, nose
+}:
+
+buildPythonPackage rec {
+  pname = "srvlookup";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1zf1v04zd5phabyqh0nhplr5a8vxskzfrzdh4akljnz1yk2n2a0b";
+  };
+
+  propagatedBuildInputs = [ dnspython ];
+  checkInputs = [ mock nose ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/gmr/srvlookup";
+    license = [ licenses.bsd3 ];
+    description = "A small wrapper for dnspython to return SRV records for a given host, protocol, and domain name as a list of namedtuples.";
+    maintainers = [ maintainers.mmlb ];
+  };
+}
diff --git a/pkgs/development/python-modules/sseclient/default.nix b/pkgs/development/python-modules/sseclient/default.nix
index fb0c013ef08..8ba678ed575 100644
--- a/pkgs/development/python-modules/sseclient/default.nix
+++ b/pkgs/development/python-modules/sseclient/default.nix
@@ -1,19 +1,22 @@
 { stdenv, buildPythonPackage, fetchPypi
 , requests, six
-, backports_unittest-mock, pytest, pytestrunner }:
+, backports_unittest-mock, pytestCheckHook, pytestrunner }:
 
 buildPythonPackage rec {
   pname = "sseclient";
-  version = "0.0.24";
+  version = "0.0.26";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1b4c5119b9381cb6ddaf3236f3f7e1437a14e488d1ed61336873a839788481b0";
+    sha256 = "33f45ab71bb6369025d6a1014e15f12774f7ea25b7e80eeb00bd73668d5fefad";
   };
 
   propagatedBuildInputs = [ requests six ];
 
-  checkInputs = [ backports_unittest-mock pytest pytestrunner ];
+  checkInputs = [ backports_unittest-mock pytestCheckHook pytestrunner ];
+
+  # tries to open connection to wikipedia
+  disabledTests = [ "event_stream" ];
 
   meta = with stdenv.lib; {
     description = "Client library for reading Server Sent Event streams";
diff --git a/pkgs/development/python-modules/sslyze/default.nix b/pkgs/development/python-modules/sslyze/default.nix
new file mode 100644
index 00000000000..c127f6ea2e5
--- /dev/null
+++ b/pkgs/development/python-modules/sslyze/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, fetchFromGitHub
+, pytest
+, buildPythonPackage
+, nassl
+, cryptography
+, typing-extensions
+, faker
+}:
+
+buildPythonPackage rec {
+  pname = "sslyze";
+  version = "3.0.8";
+
+  src = fetchFromGitHub {
+    owner = "nabla-c0d3";
+    repo = pname;
+    rev = version;
+    sha256 = "06mwzxw6xaqin2gwzcqb9r7qhbyx3k7zcxygxywi2bpxyjv9lq32";
+  };
+
+  patchPhase = ''
+    substituteInPlace setup.py \
+      --replace "cryptography>=2.6,<=2.9" "cryptography>=2.6,<=3"
+  '';
+
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    # Most of the tests are online; hence, applicable tests are listed
+    # explicitly here
+    pytest \
+      tests/test_main.py \
+      tests/test_scanner.py \
+      tests/cli_tests/test_console_output.py \
+      tests/cli_tests/test_json_output.py \
+      tests/cli_tests/test_server_string_parser.py \
+      tests/plugins_tests/test_scan_commands.py \
+      tests/plugins_tests/certificate_info/test_certificate_utils.py \
+      -k "not (TestScanner and test_client_certificate_missing)"
+  '';
+
+  propagatedBuildInputs = [ nassl cryptography typing-extensions faker ];
+
+  meta = with lib; {
+    homepage = "https://github.com/nabla-c0d3/sslyze";
+    description = "Fast and powerful SSL/TLS scanning library";
+    platforms = platforms.linux ++ platforms.darwin;
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ veehaitch ];
+  };
+}
diff --git a/pkgs/development/python-modules/starfish/default.nix b/pkgs/development/python-modules/starfish/default.nix
index 1affd797c13..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.1.10";
+  version = "0.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0340e37b732e184081b150f21bbbd4eed3643ab49f74633b9c4d827bda663235";
+    sha256 = "d635ef7b412b5781d6f98cd080b45098de6f3c7f7303e929b07c88b49d98ff12";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/starlette/default.nix b/pkgs/development/python-modules/starlette/default.nix
index 842622e56f8..130a098a23f 100644
--- a/pkgs/development/python-modules/starlette/default.nix
+++ b/pkgs/development/python-modules/starlette/default.nix
@@ -26,14 +26,14 @@ buildPythonPackage rec {
   # 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.6";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "1rk20rj62iigkkikb80bmalriyg1j3g28s25l8z2gijagv1v5c7l";
+    sha256 = "08d1d4qdwhi1xxag4am5ijingdyn0mbyqajs9ql5shxnybyjv321";
   };
 
   propagatedBuildInputs = [
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 d6ec10579f9..51edec4dc89 100644
--- a/pkgs/development/python-modules/stevedore/default.nix
+++ b/pkgs/development/python-modules/stevedore/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, buildPythonPackage, fetchPypi, pbr, setuptools, six }:
+{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, pbr, setuptools, six }:
 
 buildPythonPackage rec {
   pname = "stevedore";
-  version = "1.31.0";
+  version = "2.0.1";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "054apq55yg7058pmbnyc8jhrcpi9clmi0sm7znhwg0d676brywz0";
+    sha256 = "609912b87df5ad338ff8e44d13eaad4f4170a65b79ae9cb0aa5632598994a1b7";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/streamz/default.nix b/pkgs/development/python-modules/streamz/default.nix
index 9bbc312b183..88feccc86c0 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 = "0r83z3233pfwjw31bkmdldjqlx533f27iimayadfgcn5jr3xwykq";
   };
 
-  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..e2d8e12fd45 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 = "1jj20fwcpvqzp7rnzk3mc3xm94wz3gy3zi3787nj7c3syzadn1vb";
   };
 
   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 109a5f6c769..ea48474045a 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.47.0";
+  version = "2.49.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 = "14skddrf2nl25bvcyys0bgibjqkcivvfdywzldqjzyqvbwr4mkal";
+    sha256 = "10dgll0x709n91p8m9qmifsdhx2sc2920xxhqzd335l4z20iwcw9";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/structlog/default.nix b/pkgs/development/python-modules/structlog/default.nix
index 2156c7f2802..8f7e73a454a 100644
--- a/pkgs/development/python-modules/structlog/default.nix
+++ b/pkgs/development/python-modules/structlog/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pytest
+, pytest-asyncio
 , python-rapidjson
 , pretend
 , freezegun
@@ -13,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "structlog";
-  version = "19.2.0";
+  version = "20.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4287058cf4ce1a59bc5dea290d6386d37f29a37529c9a51cdf7387e51710152b";
+    sha256 = "7a48375db6274ed1d0ae6123c486472aa1d0890b08d314d2b016f3aa7f35990b";
   };
 
-  checkInputs = [ pytest pretend freezegun simplejson twisted ]
+  checkInputs = [ pytest pytest-asyncio pretend freezegun simplejson twisted ]
     ++ lib.optionals (pythonAtLeast "3.6") [ python-rapidjson ];
   propagatedBuildInputs = [ six ];
 
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 a564798c58a..88adbe4f7d9 100644
--- a/pkgs/development/python-modules/stytra/default.nix
+++ b/pkgs/development/python-modules/stytra/default.nix
@@ -8,7 +8,7 @@
 , pandas
 , tables
 , git
-, ffmpeg
+, ffmpeg_3
 , scikitimage
 , matplotlib
 , qdarkstyle
@@ -30,12 +30,12 @@
 
 buildPythonPackage rec {
   pname = "stytra";
-  version = "0.8.26";
+  version = "0.8.34";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "81842a957e3114230c2d628f64325cd89d166913b68c3f802c89282f40918587";
+    sha256 = "aab9d07575ef599a9c0ae505656e3c03ec753462df3c15742f1f768f2b578f0a";
   };
   doCheck = false;
   checkInputs = [
@@ -55,7 +55,7 @@ buildPythonPackage rec {
     pandas
     tables
     git
-    ffmpeg
+    ffmpeg_3
     scikitimage
     matplotlib
     qdarkstyle
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 93dc91b4d10..cee258dbd3a 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.1.0";
+  version = "4.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2dc86fe0476e945e61483d614ceb2cf4f93b95282eb243bdf792621994360383";
+    sha256 = "64082ebedf6d36ff409ab2878f1aad5c9035f916c5f15a9a1ec7dffc6dfbbed8";
   };
 
+  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/svglib/default.nix b/pkgs/development/python-modules/svglib/default.nix
new file mode 100644
index 00000000000..c986b9108b0
--- /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.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b17d4a6352f6c25ca3718d2b66a2f1ecfcdf558b1f6646c37f5c191b655979f1";
+  };
+
+  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/svgwrite/default.nix b/pkgs/development/python-modules/svgwrite/default.nix
index 08c3f6e52ca..7799583f8dc 100644
--- a/pkgs/development/python-modules/svgwrite/default.nix
+++ b/pkgs/development/python-modules/svgwrite/default.nix
@@ -1,24 +1,24 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pyparsing
+, isPy3k
+, pythonOlder
 , pytest
 }:
 
 buildPythonPackage rec {
   pname = "svgwrite";
-  version = "1.3.1";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "mozman";
     repo = "svgwrite";
     rev = "v${version}";
-    sha256 = "14wz0y118a5wwfzin6cirr9254p4y825lnrnackihdbpw22gcw11";
+    sha256 = "15xjz5b4dw1sg3a5k4wmzky4h5v1n937id8vl6hha1a2xj42z2s5";
   };
 
-  propagatedBuildInputs = [
-    pyparsing
-  ];
+  # svgwrite requires Python 3.6 or newer
+  disabled = pythonOlder "3.6";
 
   checkInputs = [
     pytest
diff --git a/pkgs/development/python-modules/sybil/default.nix b/pkgs/development/python-modules/sybil/default.nix
index 358c70d3425..630a6600199 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.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0x34mzxvxj1kkld7sz9n90pdcinxcan56jg6cnnwkv87v7s1vna6";
+    sha256 = "54dfac7b3c043dbf484b832512ad2103089f347b5b12307c63ffb4c287742382";
   };
 
   checkInputs = [ pytest nose ];
diff --git a/pkgs/development/python-modules/sympy/1_5.nix b/pkgs/development/python-modules/sympy/1_5.nix
new file mode 100644
index 00000000000..3a03fae154d
--- /dev/null
+++ b/pkgs/development/python-modules/sympy/1_5.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, glibcLocales
+, mpmath
+}:
+
+buildPythonPackage rec {
+  pname = "sympy";
+  version = "1.5.1"; # Upgrades may break sage. Please test or ping @timokau.
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d77901d748287d15281f5ffe5b0fef62dd38f357c2b827c44ff07f35695f4e7e";
+  };
+
+  checkInputs = [ glibcLocales ];
+
+  propagatedBuildInputs = [ mpmath ];
+
+  # tests take ~1h
+  doCheck = false;
+  pythonImportsCheck = [ "sympy" ];
+
+  preCheck = ''
+    export LANG="en_US.UTF-8"
+  '';
+
+  meta = with lib; {
+    description = "A Python library for symbolic mathematics";
+    homepage    = "https://www.sympy.org/";
+    license     = licenses.bsd3;
+    maintainers = with maintainers; [ lovek323 timokau ];
+  };
+}
diff --git a/pkgs/development/python-modules/sympy/default.nix b/pkgs/development/python-modules/sympy/default.nix
index 3a03fae154d..4e8f9ca857b 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.5.1"; # Upgrades may break sage. Please test or ping @timokau.
+  version = "1.6.1"; # Upgrades may break sage. Please test or ping @timokau.
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d77901d748287d15281f5ffe5b0fef62dd38f357c2b827c44ff07f35695f4e7e";
+    sha256 = "7386dba4f7e162e90766b5ea7cab5938c2fe3c620b310518c8ff504b283cb15b";
   };
 
   checkInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/tablib/default.nix b/pkgs/development/python-modules/tablib/default.nix
index a4933f1b206..b1427a81331 100644
--- a/pkgs/development/python-modules/tablib/default.nix
+++ b/pkgs/development/python-modules/tablib/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "tablib";
-  version = "1.1.0";
+  version = "2.0.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19wvx40lgm1d1zqscznwjklchczcmv07cqfigalmpj7i7ym0j6ad";
+    sha256 = "1rvvdchdva7j9b29ay0sg8y33pjhpmzynl38wz2rl89pph8gmhlc";
   };
 
   propagatedBuildInputs = [ xlwt openpyxl pyyaml xlrd odfpy ];
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 9e37df17bf2..a49ba37e91a 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 = "1.3.0";
+  version = "2.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19yra86g3wz2xgk22dnrjjh3gla969vb8jrps5rf0cdmsm9qqisv";
+    sha256 = "e2cfe5073b9d30c564e6c547fdb0f45eb66da5d4d138c20fb87d549315892f2c";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/tblib/default.nix b/pkgs/development/python-modules/tblib/default.nix
index e7cbb7848f4..86d1cdc8873 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 = "0b48bx1h720rmmd9nmw50y5cq9vhdppnl0bn9yfl2yza0rrxg6q5";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/tbm-utils/default.nix b/pkgs/development/python-modules/tbm-utils/default.nix
index 5c63121812a..2d0efeceda0 100644
--- a/pkgs/development/python-modules/tbm-utils/default.nix
+++ b/pkgs/development/python-modules/tbm-utils/default.nix
@@ -10,16 +10,23 @@
 
 buildPythonPackage rec {
   pname = "tbm-utils";
-  version = "2.5.0";
+  version = "2.6.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02bmra9f0p1irhbrklxk9nhkvgwkn8042hx7z6c00qlhac1wlba2";
+    sha256 = "235748cceeb22c042e32d2fdfd4d710021bac9b938c4f2c35e1fce1cfd58f7ec";
   };
 
   propagatedBuildInputs = [ attrs pendulum pprintpp wrapt ];
 
+  # this versioning was done to prevent normal pip users from encountering
+  # issues with package failing to build from source, but nixpkgs is better
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pendulum>=2.0,<=3.0,!=2.0.5,!=2.1.0" "pendulum>=2.0,<=3.0"
+  '';
+
   # No tests in archive.
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/telethon/default.nix b/pkgs/development/python-modules/telethon/default.nix
index a125cfd9bff..f8c0661f0cd 100644
--- a/pkgs/development/python-modules/telethon/default.nix
+++ b/pkgs/development/python-modules/telethon/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "telethon";
-  version = "1.10.10";
+  version = "1.14.0";
 
   src = fetchPypi {
     inherit version;
     pname = "Telethon";
-    sha256 = "0zm3577f1l5g0i0gcxr3s0nrqy0i81ppr6vp31p550vvnlnkjsqj";
+    sha256 = "1fg12gcg6ca7rjh7m3g48m30cx4aaw5g09855nlyz2sa1kw3gfyq";
   };
 
   propagatedBuildInputs = [
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
new file mode 100644
index 00000000000..f807a6d2515
--- /dev/null
+++ b/pkgs/development/python-modules/tempora/0001-pytest-remove-flake8-black-coverage.patch
@@ -0,0 +1,28 @@
+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 ebc79212c25..d4139ce7621 100644
--- a/pkgs/development/python-modules/tempora/default.nix
+++ b/pkgs/development/python-modules/tempora/default.nix
@@ -1,24 +1,31 @@
 { lib, buildPythonPackage, fetchPypi
-, setuptools_scm, pytest, freezegun, backports_unittest-mock
-, six, pytz, jaraco_functools }:
+, setuptools_scm, pytest, pytest-freezegun, freezegun, backports_unittest-mock
+, six, pytz, jaraco_functools, pythonOlder }:
 
 buildPythonPackage rec {
   pname = "tempora";
-  version = "1.14.1";
+  version = "3.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cb60b1d2b1664104e307f8e5269d7f4acdb077c82e35cd57246ae14a3427d2d6";
+    sha256 = "e370d822cf48f5356aab0734ea45807250f5120e291c76712a1d766b49ae34f8";
   };
 
-  buildInputs = [ setuptools_scm ];
+  disabled = pythonOlder "3.2";
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  patches = [
+    ./0001-pytest-remove-flake8-black-coverage.patch
+  ];
 
   propagatedBuildInputs = [ six pytz jaraco_functools ];
 
-  checkInputs = [ pytest freezegun backports_unittest-mock ];
+  checkInputs = [
+    pytest-freezegun pytest freezegun backports_unittest-mock
+  ];
 
   checkPhase = ''
-    substituteInPlace pytest.ini --replace "--flake8" ""
     pytest
   '';
 
diff --git a/pkgs/development/python-modules/tenacity/default.nix b/pkgs/development/python-modules/tenacity/default.nix
index 17ce469dc1c..18570c90c00 100644
--- a/pkgs/development/python-modules/tenacity/default.nix
+++ b/pkgs/development/python-modules/tenacity/default.nix
@@ -1,22 +1,23 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, pbr, six, futures, monotonic, setuptools_scm
-, pytest, sphinx, tornado
+{ lib, buildPythonPackage, fetchPypi, isPy27, isPy3k
+, pbr, six, futures, monotonic, typing, setuptools_scm
+, pytest, sphinx, tornado, typeguard
 }:
 
 buildPythonPackage rec {
   pname = "tenacity";
-  version = "6.0.0";
+  version = "6.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "72f397c2bb1887e048726603f3f629ea16f88cb3e61e4ed3c57e98582b8e3571";
+    sha256 = "16ikf6n6dw1kzncs6vjc4iccl76f9arln59jhiiai27lzbkr1bi9";
   };
 
   nativeBuildInputs = [ pbr setuptools_scm ];
   propagatedBuildInputs = [ six ]
-    ++ lib.optionals isPy27 [ futures monotonic ];
+    ++ lib.optionals isPy27 [ futures monotonic typing ];
 
-  checkInputs = [ pytest sphinx tornado ];
+  checkInputs = [ pytest sphinx tornado ]
+    ++ lib.optionals isPy3k [ typeguard ];
   checkPhase = if isPy27 then ''
     pytest --ignore='tenacity/tests/test_asyncio.py'
   '' else ''
diff --git a/pkgs/development/python-modules/tensorboardx/default.nix b/pkgs/development/python-modules/tensorboardx/default.nix
new file mode 100644
index 00000000000..d2532777d00
--- /dev/null
+++ b/pkgs/development/python-modules/tensorboardx/default.nix
@@ -0,0 +1,31 @@
+{ boto3, buildPythonPackage, crc32c, fetchFromGitHub, lib, matplotlib, moto
+, numpy, pillow, pytorch, protobuf, six, pytestCheckHook
+, tensorflow-tensorboard, torchvision }:
+
+buildPythonPackage rec {
+  pname = "tensorboardx";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "lanpa";
+    repo = "tensorboardX";
+    rev = "v${version}";
+    sha256 = "0qqalq0fhbx0wnd8wdwhyhkkv2brvj9qbk3373vk3wjxbribf5c7";
+  };
+
+  checkInputs = [
+    pytestCheckHook boto3 crc32c matplotlib moto pillow pytorch tensorflow-tensorboard torchvision
+  ];
+
+  propagatedBuildInputs = [ numpy protobuf six ];
+
+  disabledTests = [ "test_TorchVis"  "test_onnx_graph" ];
+
+  meta = with lib; {
+    description = "Library for writing tensorboard-compatible logs";
+    homepage = "https://github.com/lanpa/tensorboardX";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lebastr akamaus ];
+    platforms = platforms.all;
+  };
+}
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-probability/default.nix b/pkgs/development/python-modules/tensorflow-probability/default.nix
index 9ae3464f3f8..76367919059 100644
--- a/pkgs/development/python-modules/tensorflow-probability/default.nix
+++ b/pkgs/development/python-modules/tensorflow-probability/default.nix
@@ -61,7 +61,7 @@ let
     bazelTarget = ":pip_pkg";
 
     fetchAttrs = {
-      sha256 = "0nmk7sbgl1ag20333v9r7l5cka6wapbskikfhi3y5a8l9f6hxkl3";
+      sha256 = "1qw7vkwnxy45z4vm94isq5m96xiz35sigag7vjg1xb2sklbymxh8";
     };
 
     buildAttrs = {
diff --git a/pkgs/development/python-modules/tensorflow/1/default.nix b/pkgs/development/python-modules/tensorflow/1/default.nix
index 7c628a0789b..4dc5c57070d 100644
--- a/pkgs/development/python-modules/tensorflow/1/default.nix
+++ b/pkgs/development/python-modules/tensorflow/1/default.nix
@@ -430,7 +430,10 @@ in buildPythonPackage {
     EOF
   '';
 
-  passthru.libtensorflow = bazel-build.out;
+  passthru = {
+    deps = bazel-build.deps;
+    libtensorflow = bazel-build.out;
+  };
 
   inherit (bazel-build) meta;
 }
diff --git a/pkgs/development/python-modules/tensorflow/2/default.nix b/pkgs/development/python-modules/tensorflow/2/default.nix
index 3b4f45f3176..4dd378d1410 100644
--- a/pkgs/development/python-modules/tensorflow/2/default.nix
+++ b/pkgs/development/python-modules/tensorflow/2/default.nix
@@ -421,7 +421,10 @@ in buildPythonPackage {
   '';
   # Regression test for #77626 removed because not more `tensorflow.contrib`.
 
-  passthru.libtensorflow = bazel-build.out;
+  passthru = {
+    deps = bazel-build.deps;
+    libtensorflow = bazel-build.out;
+  };
 
   inherit (bazel-build) meta;
 }
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/testtools/default.nix b/pkgs/development/python-modules/testtools/default.nix
index 8264314c96a..8ef3d9c4320 100644
--- a/pkgs/development/python-modules/testtools/default.nix
+++ b/pkgs/development/python-modules/testtools/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "testtools";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5827ec6cf8233e0f29f51025addd713ca010061204fdea77484a2934690a0559";
+    sha256 = "64c974a6cca4385d05f4bbfa2deca1c39ce88ede31c3448bee86a7259a9a61c8";
   };
 
   propagatedBuildInputs = [ pbr python_mimeparse extras unittest2 ];
diff --git a/pkgs/development/python-modules/textacy/default.nix b/pkgs/development/python-modules/textacy/default.nix
index 9d44ce98898..2079dc1b943 100644
--- a/pkgs/development/python-modules/textacy/default.nix
+++ b/pkgs/development/python-modules/textacy/default.nix
@@ -17,12 +17,12 @@
 
 buildPythonPackage rec {
   pname = "textacy";
-  version = "0.9.1";
+  version = "0.10.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jhj02g6kh5vc0z4az7n547siav3gj5571bqpzdryskj6bsma2z1";
+    sha256 = "0a824333f53d19d24ca864c92da52f3fecd412f4ef3e1448864c45f06189fd6d";
   };
 
   propagatedBuildInputs = [
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 6f1eaa80495..9272e25a1ba 100644
--- a/pkgs/development/python-modules/thinc/default.nix
+++ b/pkgs/development/python-modules/thinc/default.nix
@@ -23,11 +23,11 @@
 
 buildPythonPackage rec {
   pname = "thinc";
-  version = "7.4.0";
+  version = "7.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1f2qpjb8nfdklqp3vf6m36bklydlnr8y8v207p8d2gmapzhrngjj";
+    sha256 = "17lampllwq50yjl2djs9bs5rp29xw55gqj762npqi3cvvj2glf81";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
@@ -58,10 +58,20 @@ buildPythonPackage rec {
   # Cannot find cython modules.
   doCheck = false;
 
+  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"
+  '';
+
   checkPhase = ''
     pytest thinc/tests
   '';
 
+  pythonImportsCheck = [ "thinc" ];
+
   meta = with stdenv.lib; {
     description = "Practical Machine Learning for NLP in Python";
     homepage = "https://github.com/explosion/thinc";
diff --git a/pkgs/development/python-modules/thumbor/default.nix b/pkgs/development/python-modules/thumbor/default.nix
index ee805ce6300..86a2dd20011 100644
--- a/pkgs/development/python-modules/thumbor/default.nix
+++ b/pkgs/development/python-modules/thumbor/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
       gifsicle = "${pkgs.gifsicle}/bin/gifsicle";
       exiftool = "${pkgs.exiftool}/bin/exiftool";
       jpegtran = "${pkgs.libjpeg}/bin/jpegtran";
-      ffmpeg = "${pkgs.ffmpeg}/bin/ffmpeg";
+      ffmpeg = "${pkgs.ffmpeg_3}/bin/ffmpeg";
     })
   ];
 
diff --git a/pkgs/development/python-modules/tifffile/default.nix b/pkgs/development/python-modules/tifffile/default.nix
index fbf36b4ef97..6317f12e8a8 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 = "2019.7.26.2";
+  version = "2020.6.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2abb91c3a23a61593c5635ac1a19f67e732b46291c305fcee0eeaad41181a13f";
+    sha256 = "e79403a8b98b0df7ade8d43469151b959fd56239001471fac62beabca6f56377";
   };
 
   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..808a6c54825 100644
--- a/pkgs/development/python-modules/tiledb/default.nix
+++ b/pkgs/development/python-modules/tiledb/default.nix
@@ -51,10 +51,15 @@ 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"
+    substituteInPlace tiledb/tests/test_metadata.py --replace \
+      "test_metadata_consecutive" "dont_test_metadata_consecutive"
   '';
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/timezonefinder/default.nix b/pkgs/development/python-modules/timezonefinder/default.nix
index f4339bbce4a..895ebd130ea 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.2.0";
+  version = "4.4.0";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0q8nd279labn03dz17s4xrglk1d31q9y8wcx99l51i5cxx53zsap";
+    sha256 = "ccb7ee58f5da4b05eae2154eb615eb791487d3cfeaa2a690877737a898580a9e";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/tinycss2/default.nix b/pkgs/development/python-modules/tinycss2/default.nix
index 2d8581cfb90..6f4eb927f3a 100644
--- a/pkgs/development/python-modules/tinycss2/default.nix
+++ b/pkgs/development/python-modules/tinycss2/default.nix
@@ -1,6 +1,16 @@
-{ lib, buildPythonPackage, pythonOlder, fetchPypi
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, fetchpatch
 , webencodings
-, pytest, pytestrunner, pytestcov, pytest-flake8, pytest-isort }:
+# Check inputs
+, pytest
+, pytestrunner
+, pytestcov
+, pytest-flake8
+, pytest-isort
+}:
 
 buildPythonPackage rec {
   pname = "tinycss2";
@@ -12,7 +22,15 @@ buildPythonPackage rec {
     sha256 = "1kw84y09lggji4krkc58jyhsfj31w8npwhznr7lf19d0zbix09v4";
   };
 
-  patches = [ ./remove-redundant-dependency.patch ];
+  patches = [
+    (
+      fetchpatch {
+        name = "tinycss2-fix-pytest-flake8-fail.patch";
+        url = "https://github.com/Kozea/tinycss2/commit/6556604fb98c2153412384d6f0f705db2da1aa60.patch";
+        sha256 = "1srvdzg1bak65fawd611rlskcgn5abmwmyjnk8qrrrasr554bc59";
+      }
+    )
+  ];
 
   propagatedBuildInputs = [ webencodings ];
 
diff --git a/pkgs/development/python-modules/tinycss2/remove-redundant-dependency.patch b/pkgs/development/python-modules/tinycss2/remove-redundant-dependency.patch
deleted file mode 100644
index 27ec511c55f..00000000000
--- a/pkgs/development/python-modules/tinycss2/remove-redundant-dependency.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/setup.cfg b/setup.cfg
-index b3b3c2d..480f3e6 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -33,7 +33,6 @@ project_urls =
- 
- [options]
- packages = find:
--setup_requires = pytest-runner
- install_requires = 
- 	setuptools >= 39.2.0
- 	webencodings >= 0.4
diff --git a/pkgs/development/python-modules/tld/default.nix b/pkgs/development/python-modules/tld/default.nix
index dff50c78cf6..a8d00d07514 100644
--- a/pkgs/development/python-modules/tld/default.nix
+++ b/pkgs/development/python-modules/tld/default.nix
@@ -2,11 +2,11 @@
 
 python.pkgs.buildPythonPackage rec {
   pname   = "tld";
-  version = "0.11.9";
+  version = "0.12.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c5fe79df74b68ebc33406dfadc69f6484dee8005035a129fdb40b8fabfd06e9f";
+    sha256 = "cf8410a7ed7b9477f563fa158dabef5117d8374cba55f65142ba0af6dcd15d4d";
   };
 
   propagatedBuildInputs = with python.pkgs; [ six ];
diff --git a/pkgs/development/python-modules/tls-parser/default.nix b/pkgs/development/python-modules/tls-parser/default.nix
new file mode 100644
index 00000000000..5b6bfe6a0e2
--- /dev/null
+++ b/pkgs/development/python-modules/tls-parser/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, isPy27
+, fetchFromGitHub
+, buildPythonPackage
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "tls-parser";
+  version = "1.2.2";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "nabla-c0d3";
+    repo = "tls_parser";
+    rev = version;
+    sha256 = "12qj3vg02r5a51w6gbgb1gcxicqc10lbbsdi57jkkfvbqiindbd0";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    homepage = "https://github.com/nabla-c0d3/tls_parser";
+    description = "Small library to parse TLS records";
+    platforms = with platforms; linux ++ darwin;
+    license = licenses.mit;
+    maintainers = with maintainers; [ veehaitch ];
+  };
+}
diff --git a/pkgs/development/python-modules/toggl-cli/default.nix b/pkgs/development/python-modules/toggl-cli/default.nix
index 62d3f2dde24..29715dd2f53 100644
--- a/pkgs/development/python-modules/toggl-cli/default.nix
+++ b/pkgs/development/python-modules/toggl-cli/default.nix
@@ -1,13 +1,26 @@
-{ stdenv, buildPythonPackage, fetchPypi, twine, pbr, click, click-completion, validate-email,
-pendulum, ptable, requests, inquirer, pythonOlder, pytest, pytestcov, pytest-mock, faker, factory_boy,
-setuptools }:
+{ stdenv, buildPythonPackage, fetchPypi, pythonAtLeast, pythonOlder
+, click
+, click-completion
+, factory_boy
+, faker
+, inquirer
+, pbr
+, pendulum
+, ptable
+, pytest
+, pytestcov
+, pytest-mock
+, requests
+, setuptools
+, twine
+, validate-email
+}:
 
 
 buildPythonPackage rec {
   pname = "toggl-cli";
   version = "2.1.0";
-
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.5" || pythonAtLeast "3.8";
 
   src = fetchPypi {
     pname = "togglCli";
diff --git a/pkgs/development/python-modules/tokenizers/default.nix b/pkgs/development/python-modules/tokenizers/default.nix
new file mode 100644
index 00000000000..d650f350bd2
--- /dev/null
+++ b/pkgs/development/python-modules/tokenizers/default.nix
@@ -0,0 +1,129 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, fetchurl
+, maturin
+, pipInstallHook
+, pytest
+, python
+, requests
+}:
+
+let
+  robertaVocab = fetchurl {
+    url = "https://s3.amazonaws.com/models.huggingface.co/bert/roberta-base-vocab.json";
+    sha256 = "0m86wpkfb2gdh9x9i9ng2fvwk1rva4p0s98xw996nrjxs7166zwy";
+  };
+  robertaMerges = fetchurl {
+    url = "https://s3.amazonaws.com/models.huggingface.co/bert/roberta-base-merges.txt";
+    sha256 = "1idd4rvkpqqbks51i2vjbd928inw7slij9l4r063w3y5fd3ndq8w";
+  };
+  bertVocab = fetchurl {
+    url = "https://s3.amazonaws.com/models.huggingface.co/bert/bert-base-uncased-vocab.txt";
+    sha256 = "18rq42cmqa8zanydsbzrb34xwy4l6cz1y900r4kls57cbhvyvv07";
+  };
+  openaiVocab = fetchurl {
+    url = "https://s3.amazonaws.com/models.huggingface.co/bert/openai-gpt-vocab.json";
+    sha256 = "0y40gc9bixj5rxv674br1rxmxkd3ly29p80x1596h8yywwcrpx7x";
+  };
+  openaiMerges = fetchurl {
+    url = "https://s3.amazonaws.com/models.huggingface.co/bert/openai-gpt-merges.txt";
+    sha256 = "09a754pm4djjglv3x5pkgwd6f79i2rq8ydg0f7c3q1wmwqdbba8f";
+  };
+in rustPlatform.buildRustPackage rec {
+  pname = "tokenizers";
+  version = "0.8.1";
+
+  src = fetchFromGitHub {
+    owner = "huggingface";
+    repo = pname;
+    rev = "python-v${version}";
+    sha256 = "0sxdwx05hr87j2z32rk4rgwn6a26w9r7m5fgj6ah1sgagiiyxbjw";
+  };
+
+  # 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";
+
+  nativeBuildInputs = [
+    maturin
+    pipInstallHook
+  ];
+
+  propagatedBuildInputs = [
+    python
+  ];
+
+  # tokenizers uses pyo3, which requires Rust nightly.
+  RUSTC_BOOTSTRAP = 1;
+
+  doCheck = false;
+  doInstallCheck = true;
+
+  postUnpack = ''
+    # Add data files for tests, otherwise tests attempt network access.
+    mkdir $sourceRoot/tests/data
+    ( cd $sourceRoot/tests/data
+      ln -s ${robertaVocab} roberta-base-vocab.json
+      ln -s ${robertaMerges} roberta-base-merges.txt
+      ln -s ${bertVocab} bert-base-uncased-vocab.txt
+      ln -s ${openaiVocab} openai-gpt-vocab.json
+      ln -s ${openaiMerges} openai-gpt-merges.txt )
+  '';
+
+  postPatch = ''
+    # pyo3's build check verifies that Rust is a nightly
+    # version. Disable this check.
+    substituteInPlace $NIX_BUILD_TOP/$cargoDepsCopy/pyo3/build.rs \
+      --replace "check_rustc_version()?;" ""
+
+    # Patching the vendored dependency invalidates the file
+    # checksums, so remove them. This should be safe, since
+    # this is just a copy of the vendored dependencies and
+    # the integrity of the vendored dependencies is validated
+    # by cargoSha256.
+    sed -r -i 's|"files":\{[^}]+\}|"files":{}|' \
+      $NIX_BUILD_TOP/$cargoDepsCopy/pyo3/.cargo-checksum.json
+
+    # Maturin uses the crate name as the wheel name.
+    substituteInPlace Cargo.toml \
+      --replace "tokenizers-python" "tokenizers"
+  '';
+
+  buildPhase = ''
+    maturin build --release --manylinux off
+  '';
+
+  installPhase = ''
+    # Put the wheels where the pip install hook can find them.
+    install -Dm644 -t dist target/wheels/*.whl
+    pipInstallPhase
+  '';
+
+  installCheckInputs = [
+    pytest
+    requests
+  ];
+
+  installCheckPhase = ''
+    # Append paths, or the binding's tokenizer module will be
+    # used, since the test directories have __init__.py
+    pytest --import-mode=append
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/huggingface/tokenizers";
+    description = "Fast State-of-the-Art Tokenizers optimized for Research and Production";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
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/toml/default.nix b/pkgs/development/python-modules/toml/default.nix
index 29d0a4c692f..8e96efcdf44 100644
--- a/pkgs/development/python-modules/toml/default.nix
+++ b/pkgs/development/python-modules/toml/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "toml";
-  version = "0.10.0";
+  version = "0.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0p1xww2mzkhqvxkfvmfzm58bbfj812zhdz4rwdjiv94ifz2q37r2";
+    sha256 = "926b612be1e5ce0634a2ca03470f95169cf16f939018233a670519cb4ac58b0f";
   };
 
   # This package has a test script (built for Travis) that involves a)
diff --git a/pkgs/development/python-modules/tomlkit/default.nix b/pkgs/development/python-modules/tomlkit/default.nix
index deff7769dfb..2e3a50bfd94 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.5.11";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1kq1663iqxgwrmb883n55ypi5axnixla2hrby9g2x227asifsi7h";
+    sha256 = "74f976908030ff164c0aa1edabe3bf83ea004b3daa5b0940b9c86a060c004e9a";
   };
 
   propagatedBuildInputs =
diff --git a/pkgs/development/python-modules/toolz/default.nix b/pkgs/development/python-modules/toolz/default.nix
index cb635d227f7..e0039057d82 100644
--- a/pkgs/development/python-modules/toolz/default.nix
+++ b/pkgs/development/python-modules/toolz/default.nix
@@ -4,7 +4,7 @@
 , nose
 }:
 
-buildPythonPackage rec{
+buildPythonPackage rec {
   pname = "toolz";
   version = "0.10.0";
 
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 d6bc9ea7f39..cac97d92b2a 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.14.3";
+  version = "3.15.2";
 
   buildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ packaging pluggy py six virtualenv toml filelock ];
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06ba73b149bf838d5cd25dc30c2dd2671ae5b2757cf98e5c41a35fe449f131b3";
+    sha256 = "c696d36cd7c6a28ada2da780400e44851b20ee19ef08cfe73344a1dcebbbe9f3";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/tqdm/default.nix b/pkgs/development/python-modules/tqdm/default.nix
index c00eac75ee0..d3f83cec481 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.45.0";
+  version = "4.48.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00339634a22c10a7a22476ee946bbde2dbe48d042ded784e4d88e0236eca5d81";
+    sha256 = "6baa75a88582b1db6d34ce4690da5501d2a1cb65c34664840a456b2c9f794d29";
   };
 
   checkInputs = [ nose coverage glibcLocales flake8 ];
diff --git a/pkgs/development/python-modules/traits/default.nix b/pkgs/development/python-modules/traits/default.nix
index 5bd84990835..789ba7a1691 100644
--- a/pkgs/development/python-modules/traits/default.nix
+++ b/pkgs/development/python-modules/traits/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , python
 , pytest
 , numpy
@@ -8,11 +9,12 @@
 
 buildPythonPackage rec {
   pname = "traits";
-  version = "5.2.0";
+  version = "6.1.1";
+  disabled = isPy27; # setup.py no longer py3 compat
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1b71vp0l4523428aw098xw6rmkl8vlcy2aag40akijbyz1nnk541";
+    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 617ba227c41..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 = "6.1.3";
+  version = "7.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0kw1xy5ax6l0lzmk7pfzjw6qs0idv78k3118my7cbvw1n5iiff28";
+    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 09ebf739d7d..eb7c1c2aa48 100644
--- a/pkgs/development/python-modules/transformers/default.nix
+++ b/pkgs/development/python-modules/transformers/default.nix
@@ -1,41 +1,81 @@
 { buildPythonPackage
 , stdenv
 , fetchFromGitHub
-, sacremoses
-, requests
-, sentencepiece
 , boto3
-, tqdm
+, filelock
 , regex
+, requests
 , numpy
-, pytest
+, sacremoses
+, sentencepiece
+, timeout-decorator
+, tokenizers
+, tqdm
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "transformers";
-  version = "2.2.1";
+  version = "3.0.2";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1p8p3lhhiyk1xl9gpgq4vbchyz57v3w7hhvsj1r90zs3cckindl8";
+    sha256 = "0rdlikh2qilwd0s9f3zif51p1q7sp3amxaccqic8p5qm6dqpfpz6";
   };
 
-  propagatedBuildInputs = [ numpy sacremoses requests sentencepiece boto3 tqdm regex ];
+  propagatedBuildInputs = [
+    boto3
+    filelock
+    numpy
+    regex
+    requests
+    sacremoses
+    sentencepiece
+    tokenizers
+    tqdm
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    timeout-decorator
+  ];
 
-  checkInputs = [ pytest ];
-  # pretrained tries to download from s3
-  checkPhase = ''
-    cd transformers # avoid importing local files
-    HOME=$TMPDIR pytest -k 'not pretrained_tokenizers'
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "tokenizers == 0.8.1.rc1" "tokenizers>=0.8"
   '';
 
+  preCheck = ''
+    export HOME="$TMPDIR"
+    cd tests
+  '';
+
+  # Disable tests that require network access.
+  disabledTests = [
+    "test_all_tokenizers"
+    "test_batch_encoding_is_fast"
+    "test_batch_encoding_pickle"
+    "test_config_from_model_shortcut"
+    "test_config_model_type_from_model_identifier"
+    "test_from_pretrained_use_fast_toggle"
+    "test_hf_api"
+    "test_outputs_can_be_shorter"
+    "test_outputs_not_longer_than_maxlen"
+    "test_pretokenized_tokenizers"
+    "test_tokenizer_equivalence_en_de"
+    "test_tokenizer_from_model_type"
+    "test_tokenizer_from_model_type"
+    "test_tokenizer_from_pretrained"
+    "test_tokenizer_identifier_with_correct_config"
+  ];
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/huggingface/transformers";
     description = "State-of-the-art Natural Language Processing for TensorFlow 2.0 and PyTorch";
     license = licenses.asl20;
-    platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ pashashocky ];
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ danieldk pashashocky ];
   };
 }
diff --git a/pkgs/development/python-modules/transitions/default.nix b/pkgs/development/python-modules/transitions/default.nix
index 4ab3e11acb1..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.7.1";
+  version = "0.8.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b73015080833b753cbb4a10f51f8234924ddfbdbaf33539fee4e4f3abfff454d";
+    sha256 = "0j3pswbckrhd6plblb0bwzsbvk50nqmxq6dvjclvcr5cljzs7xvg";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/trezor/default.nix b/pkgs/development/python-modules/trezor/default.nix
index e7bec00863a..3d1bb053cd4 100644
--- a/pkgs/development/python-modules/trezor/default.nix
+++ b/pkgs/development/python-modules/trezor/default.nix
@@ -12,19 +12,22 @@
 , rlp
 , shamir-mnemonic
 , trezor-udev-rules
+, installShellFiles
 }:
 
 buildPythonPackage rec {
   pname = "trezor";
-  version = "0.12.0";
+  version = "0.12.1";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ycmpwjv5xp25993divjhaq5j766zgcy22xx39xfc1pcvldq5g7n";
+    sha256 = "1w19m9lws55k9sjhras47hpfpqwq1jm5vy135nj65yhkblygqg19";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+
   propagatedBuildInputs = [ typing-extensions protobuf hidapi ecdsa mnemonic requests pyblake2 click construct libusb1 rlp shamir-mnemonic trezor-udev-rules ];
 
   checkInputs = [
@@ -38,10 +41,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";
     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/trezor_agent/default.nix b/pkgs/development/python-modules/trezor_agent/default.nix
index ad4a30d97c5..82cb14b31cb 100644
--- a/pkgs/development/python-modules/trezor_agent/default.nix
+++ b/pkgs/development/python-modules/trezor_agent/default.nix
@@ -13,13 +13,13 @@
 , pinentry
 }:
 
-buildPythonPackage rec{
+buildPythonPackage rec {
   pname = "trezor_agent";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e82bf000c1178b1a7612f2a90487eb34c6234d2edb15dc8e310ad875d8298690";
+    sha256 = "139d917d6495bf290bcc21da457f84ccd2e74c78b4d59a649e0cdde4288cd20c";
   };
 
   propagatedBuildInputs = [ setuptools trezor libagent ecdsa ed25519 mnemonic keepkey semver wheel pinentry ];
diff --git a/pkgs/development/python-modules/trimesh/default.nix b/pkgs/development/python-modules/trimesh/default.nix
index a65ea1e98ba..7d749ea4a9b 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.36";
+  version = "3.7.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1m8dqqyzazrjk4d32cqn4d8gvbfcwgs2qbmgvpi2f2mi5vnp6d85";
+    sha256 = "bd3d88fc179d6dfd6d47f63dec4bb8da204c070e78cb2b483f86b33886bf627b";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/pkgs/development/python-modules/trio/default.nix b/pkgs/development/python-modules/trio/default.nix
index 135142529a9..9a63850e53e 100644
--- a/pkgs/development/python-modules/trio/default.nix
+++ b/pkgs/development/python-modules/trio/default.nix
@@ -18,12 +18,12 @@
 
 buildPythonPackage rec {
   pname = "trio";
-  version = "0.13.0";
+  version = "0.15.1";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f1cf00054ad974c86d9b7afa187a65d79fd5995340abe01e8e4784d86f4acb30";
+    sha256 = "3010864ab8d8b2ae44d3bc97b0e8924d8f5170bf32f07c7638a930a129687f33";
   };
 
   checkInputs = [ astor pytest pyopenssl trustme jedi pylint yapf ];
diff --git a/pkgs/applications/office/trytond/default.nix b/pkgs/development/python-modules/trytond/default.nix
index c45562a0c8d..21e1ac13ca6 100644
--- a/pkgs/applications/office/trytond/default.nix
+++ b/pkgs/development/python-modules/trytond/default.nix
@@ -1,40 +1,65 @@
-{ stdenv, python2Packages
-, withPostgresql ? true }:
+{ stdenv
+, buildPythonApplication
+, fetchPypi
+, mock
+, lxml
+, relatorio
+, genshi
+, dateutil
+, polib
+, python-sql
+, werkzeug
+, wrapt
+, passlib
+, bcrypt
+, pydot
+, python-Levenshtein
+, simplejson
+, html2text
+, psycopg2
+, withPostgresql ? true
+}:
 
 with stdenv.lib;
 
-python2Packages.buildPythonApplication rec {
+buildPythonApplication rec {
   pname = "trytond";
-  version = "4.8.4";
-  src = python2Packages.fetchPypi {
+  version = "5.6.4";
+  src = fetchPypi {
     inherit pname version;
-    sha256 = "1935045b1b4674de602b4279a9cfd0a14431624a28ccb490234cffecb81fbca7";
+    sha256 = "d89da52a9a0a9bcbbc316fc72eea8810bac64307d22c90ab2d70a4b0cd9b1a9c";
   };
 
   # Tells the tests which database to use
   DB_NAME = ":memory:";
 
-  buildInputs = with python2Packages; [
+  buildInputs = [
     mock
   ];
-  propagatedBuildInputs = with python2Packages; ([
-    dateutil
+  propagatedBuildInputs = [
     lxml
+    relatorio
+    genshi
+    dateutil
     polib
     python-sql
-    relatorio
     werkzeug
     wrapt
-    ipaddress
+    passlib
 
     # extra dependencies
     bcrypt
     pydot
     python-Levenshtein
     simplejson
-    cdecimal
     html2text
-  ] ++ stdenv.lib.optional withPostgresql psycopg2);
+  ] ++ stdenv.lib.optional withPostgresql psycopg2;
+
+  # If unset, trytond will try to mkdir /homeless-shelter
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
   meta = {
     description = "The server of the Tryton application platform";
     longDescription = ''
diff --git a/pkgs/development/python-modules/tvdb_api/default.nix b/pkgs/development/python-modules/tvdb_api/default.nix
index 6c298dce7c7..beabc8c2310 100644
--- a/pkgs/development/python-modules/tvdb_api/default.nix
+++ b/pkgs/development/python-modules/tvdb_api/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "tvdb_api";
-  version = "2.0";
+  version = "3.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b1de28a5100121d91b1f6a8ec7e86f2c4bdf48fb22fab3c6fe21e7fb7346bf8f";
+    sha256 = "6a0135815cb680da38d78121d4d659d8e54a25f4db2816cd86d62916b92f23b2";
   };
 
   propagatedBuildInputs = [ requests-cache ];
diff --git a/pkgs/development/python-modules/tvnamer/default.nix b/pkgs/development/python-modules/tvnamer/default.nix
index b0df4008992..dc525901775 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 = "0szg3k9zcnba7a8fw1fz3hr72lwlysfbm7hkabkaik69vra77bh0";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/twiggy/default.nix b/pkgs/development/python-modules/twiggy/default.nix
index 6c502ebe011..fdff4a90f9e 100644
--- a/pkgs/development/python-modules/twiggy/default.nix
+++ b/pkgs/development/python-modules/twiggy/default.nix
@@ -1,17 +1,19 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, six
 }:
 
 buildPythonPackage rec {
   pname = "Twiggy";
-  version = "0.4.7";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "44d8aa51110efaab0712b5ec2b015149ad4f28e28f729004aac45d0ad8e19be0";
+    sha256 = "259ae96cb22e80c49e75c37dc2f7497028c5dc19018958f05fa00ec08fc2569f";
   };
 
+  propagatedBuildInputs = [ six ];
   doCheck = false;
 
   meta = with stdenv.lib; {
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 e11d7392e1c..a717ab2bc9d 100644
--- a/pkgs/development/python-modules/twill/default.nix
+++ b/pkgs/development/python-modules/twill/default.nix
@@ -1,21 +1,29 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, nose }:
+{ lib, buildPythonPackage, fetchPypi, isPy3k, nose
+, lxml
+, requests
+, pyparsing
+}:
 buildPythonPackage rec {
   pname = "twill";
-  version = "1.8.0";
-
-  disabled = isPy3k;
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d63e8b09aa4f6645571c70cd3ba47a911abbae4d7baa4b38fc7eb72f6cfda188";
+    sha256 = "85bc45bc34e3d4116123e3021c07d3a86b5e67be1ee01bc8062288eb83ae7799";
   };
 
   checkInputs = [ nose ];
 
+  propagatedBuildInputs = [
+    lxml
+    requests
+    pyparsing
+  ];
+
   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/txaio/default.nix b/pkgs/development/python-modules/txaio/default.nix
index 7fb1b9e5b5c..7e87a2d59ea 100644
--- a/pkgs/development/python-modules/txaio/default.nix
+++ b/pkgs/development/python-modules/txaio/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, mock, six, twisted,isPy37 }:
+{ stdenv, buildPythonPackage, fetchPypi, pytest, mock, six, twisted, isPy37, isPy27 }:
 
 buildPythonPackage rec {
   pname = "txaio";
-  version = "18.8.1";
+  version = "20.4.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "67e360ac73b12c52058219bb5f8b3ed4105d2636707a36a7cdafb56fe06db7fe";
+    sha256 = "17938f2bca4a9cabce61346758e482ca4e600160cbc28e861493eac74a19539d";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/txdbus/default.nix b/pkgs/development/python-modules/txdbus/default.nix
new file mode 100644
index 00000000000..636e19b39ba
--- /dev/null
+++ b/pkgs/development/python-modules/txdbus/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildPythonPackage, fetchPypi, six, twisted }:
+
+buildPythonPackage rec {
+  pname = "txdbus";
+  version = "1.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "eefcffa4efbf82ba11222f17f5989fe1b2b6ef57226ef896c4a7084c990ba217";
+  };
+
+  propagatedBuildInputs = [ six twisted ];
+  pythonImportsCheck = [ "txdbus" ];
+
+  meta = with stdenv.lib; {
+    description = "Native Python implementation of DBus for Twisted";
+    homepage = "https://github.com/cocagne/txdbus";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    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 042bd2e7654..2f0617731e1 100644
--- a/pkgs/development/python-modules/typeguard/default.nix
+++ b/pkgs/development/python-modules/typeguard/default.nix
@@ -4,16 +4,17 @@
 , stdenv
 , setuptools_scm
 , pytest
+, typing-extensions
 , glibcLocales
 }:
 
 buildPythonPackage rec {
   pname = "typeguard";
-  version = "2.7.1";
+  version = "2.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2d545c71e9439c21bcd7c28f5f55b3606e6106f7031ab58375656a1aed483ef2";
+    sha256 = "123jnq7igm26a5347jf2j60bww9g84l80f208dzlbk49h7cg77jj";
   };
 
   buildInputs = [ setuptools_scm ];
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     substituteInPlace setup.cfg --replace " --cov" ""
   '';
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest typing-extensions ];
 
   checkPhase = ''
     py.test .
diff --git a/pkgs/development/python-modules/typing-extensions/default.nix b/pkgs/development/python-modules/typing-extensions/default.nix
index 1d8929e3d7e..d6ae7cefc39 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.1";
+  version = "3.7.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "091ecc894d5e908ac75209f10d5b4f118fbdb2eb1ede6a63544054bb1edb41f2";
+    sha256 = "79ee589a3caca649a9bfd2a8de4709837400dfa00b6cc81962a1e6a1815969ae";
   };
 
   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/tzlocal/default.nix b/pkgs/development/python-modules/tzlocal/default.nix
index f10f76d53cf..e5ab1159530 100644
--- a/pkgs/development/python-modules/tzlocal/default.nix
+++ b/pkgs/development/python-modules/tzlocal/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "tzlocal";
-  version = "2.0.0";
+  version = "2.1";
 
   propagatedBuildInputs = [ pytz ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "949b9dd5ba4be17190a80c0268167d7e6c92c62b30026cf9764caf3e308e5590";
+    sha256 = "643c97c5294aedc737780a49d9df30889321cbe1204eac2c2ec6134035a92e44";
   };
 
   # test fail (timezone test fail)
diff --git a/pkgs/development/python-modules/u-msgpack-python/default.nix b/pkgs/development/python-modules/u-msgpack-python/default.nix
index 93cd1a21a94..a41351916b7 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.5.2";
+  version = "2.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09c85a8af77376034396681e76bf30c249a4fd8e5ebb239f8a468d3655f210d0";
+    sha256 = "754edb07eaee39a9686a99823892e3a1be4e0948d9cc5c717946750c27643c9c";
   };
 
   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 e11088048c3..71a38c88d29 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.6";
+  version = "1.2.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1pzgj85c6g8vr3dq215cd1y2pn8pxc6wa7mjd9m0zrglr1qwwhdz";
+    sha256 = "1gqccakzivga3lb9sh4aniamqpnlbbwxfbkhrb6833k1zha01w8j";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/uarray/default.nix b/pkgs/development/python-modules/uarray/default.nix
index 7e03017ce56..37ba1ab25e2 100644
--- a/pkgs/development/python-modules/uarray/default.nix
+++ b/pkgs/development/python-modules/uarray/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "uarray";
-  version = "0.5.1";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0j2pin54pwm1vdgza8irxcjb2za7h41c0ils04afssdn59cixslx";
+    sha256 = "fa63ae7034833a99bc1628d3cd5501d4d00f2e6437b6cbe73f710dcf212a6bea";
   };
 
   doCheck = false; # currently has circular dependency module import, remove when bumping to >0.5.1
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/ujson/default.nix b/pkgs/development/python-modules/ujson/default.nix
index d60ec743032..295d6febf33 100644
--- a/pkgs/development/python-modules/ujson/default.nix
+++ b/pkgs/development/python-modules/ujson/default.nix
@@ -1,19 +1,23 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy3k
 , isPyPy
+, setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "ujson";
-  version = "1.35";
-  disabled = isPyPy;
+  version = "3.0.0";
+  disabled = isPyPy || (!isPy3k);
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11jz5wi7mbgqcsz52iqhpyykiaasila4lq8cmc2d54bfa3jp6q7n";
+    sha256 = "e0199849d61cc6418f94d52a314c6a27524d65e82174d2a043fb718f73d1520d";
   };
 
+  nativeBuildInputs = [ setuptools_scm ];
+
   meta = with stdenv.lib; {
     homepage = "https://pypi.python.org/pypi/ujson";
     description = "Ultra fast JSON encoder and decoder for Python";
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 a598591b0f0..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.6.2";
+  version = "3.7.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aac071daef4b6cf95143ef08cd35d762a2bf2ea8249119a9371a91149c9996e7";
+    sha256 = "a45f98f40edb47c2a0e2786ffe7d68fc2cb4ad05b2efcb50e95c337f6ecae353";
   };
 
   checkInputs = [ nose pytest hypothesis six ];
diff --git a/pkgs/development/python-modules/unidiff/default.nix b/pkgs/development/python-modules/unidiff/default.nix
index 25ea689e9a2..d1e18111db3 100644
--- a/pkgs/development/python-modules/unidiff/default.nix
+++ b/pkgs/development/python-modules/unidiff/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "unidiff";
-  version = "0.5.5";
+  version = "0.6.0";
 
   # PyPI tarball doesn't ship tests
   src = fetchFromGitHub {
     owner = "matiasb";
     repo = "python-unidiff";
     rev = "v${version}";
-    sha256 = "1nvi7s1nn5p7j6aql1nkn2kiadnfby98yla5m3jq8xwsx0aplwdm";
+    sha256 = "0farwkw0nbb5h4369pq3i6pp4047hav0h88ba55rzz5k7mr25rgi";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/unittest-xml-reporting/default.nix b/pkgs/development/python-modules/unittest-xml-reporting/default.nix
index f39876d6396..113f5535f60 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 = "2.5.2";
+  version = "3.0.2";
+  disabled = isPy27;
 
   propagatedBuildInputs = [six];
 
@@ -11,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9d28ddf6524cf0ff9293f61bd12e792de298f8561a5c945acea63fb437789e0e";
+    sha256 = "e09b8ae70cce9904cdd331f53bf929150962869a5324ab7ff3dd6c8b87e01f7d";
   };
   meta = with lib; {
     homepage = "https://github.com/xmlrunner/unittest-xml-reporting/tree/master/";
diff --git a/pkgs/development/python-modules/unrpa/default.nix b/pkgs/development/python-modules/unrpa/default.nix
new file mode 100644
index 00000000000..aad23c6fdf9
--- /dev/null
+++ b/pkgs/development/python-modules/unrpa/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, uncompyle6, isPy27 }:
+
+buildPythonPackage rec {
+  pname = "unrpa";
+  version = "2.3.0";
+
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0yl4qdwp3in170ks98qnldqz3r2iyzil5g1775ccg98qkh95s724";
+  };
+
+  propagatedBuildInputs = [ uncompyle6 ];
+
+  pythonImportsCheck = [ "unrpa" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/Lattyware/unrpa";
+    description = "A program to extract files from the RPA archive format";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ leo60228 ];
+  };
+}
diff --git a/pkgs/development/python-modules/update_checker/default.nix b/pkgs/development/python-modules/update_checker/default.nix
index 913c8903e9e..e319422ce7b 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.16";
+  version = "0.17";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1f38l40d32dm0avcidf3dmikma8z0la84yngj88v4xygzi399qvh";
+    sha256 = "0qhfn5fjjab50gbnj2053wdfppzkydqgapfz35ymrm1vysvqvvrd";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/uproot-methods/default.nix b/pkgs/development/python-modules/uproot-methods/default.nix
index 47fc285a546..298f6c96d58 100644
--- a/pkgs/development/python-modules/uproot-methods/default.nix
+++ b/pkgs/development/python-modules/uproot-methods/default.nix
@@ -6,12 +6,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.7.3";
+  version = "0.7.4";
   pname = "uproot-methods";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01x7raa2l75g96y6fsi6h2fjpjm0swlnw0j9vn8mlahridycrjss";
+    sha256 = "7f110208a3a2aa9b4d6da11233fd0f206ea039b52bca4bfe312f1b9dcf788476";
   };
 
   propagatedBuildInputs = [ numpy awkward ];
diff --git a/pkgs/development/python-modules/uproot/default.nix b/pkgs/development/python-modules/uproot/default.nix
index b7322b0f179..3d472a604d6 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.3";
+  version = "3.11.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19rvkxv015lkx0g01sb54y6agdbqbmkpxlyka4z1zf9dx2lx1iq5";
+    sha256 = "3fbf9dfe5ce996ffda3a49d16eba804b95fb05bc041fc4e7bc05317a03bf6cba";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/pkgs/development/python-modules/urllib3/default.nix b/pkgs/development/python-modules/urllib3/default.nix
index 5abf99670c1..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.8";
+  version = "1.25.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "87716c2d2a7121198ebcb7ce7cccf6ce5e9ba539041cfbaeecfb641dc0bf6acc";
+    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..01d9523539c 100644
--- a/pkgs/development/python-modules/urwid/default.nix
+++ b/pkgs/development/python-modules/urwid/default.nix
@@ -1,18 +1,23 @@
-{ stdenv, buildPythonPackage, fetchPypi, glibcLocales }:
+{ stdenv, buildPythonPackage, isPy3k, fetchPypi, glibcLocales }:
 
 buildPythonPackage rec {
   pname = "urwid";
-  version = "2.1.0";
+  version = "2.1.1";
 
   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/us/default.nix b/pkgs/development/python-modules/us/default.nix
index 307f6fd7524..4e7d97068f2 100644
--- a/pkgs/development/python-modules/us/default.nix
+++ b/pkgs/development/python-modules/us/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "us";
-  version = "1.0.0";
+  version = "2.0.2";
 
   propagatedBuildInputs = [ jellyfish ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1niglalkp7pinibzbxjdz9mxx9qmwkrh8884dag3kr72cfkrpp09";
+    sha256 = "cb11ad0d43deff3a1c3690c74f0c731cff5b862c73339df2edd91133e1496fbc";
   };
 
   # Upstream requires jellyfish==0.5.6 but we have 0.6.1
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/uvicorn/default.nix b/pkgs/development/python-modules/uvicorn/default.nix
index d839c421ea0..ddf98d2d492 100644
--- a/pkgs/development/python-modules/uvicorn/default.nix
+++ b/pkgs/development/python-modules/uvicorn/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "uvicorn";
-  version = "0.11.2";
+  version = "0.11.5";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "145c569j4511zw3wglyv9qgd7g1757ypi2blcckpcmahqw11l5p2";
+    sha256 = "0cf0vw6kzxwlkvk5gw85wv3kg1kdil0wkq3s7rmxpvrk6gjk8jvq";
   };
 
   propagatedBuildInputs = [
@@ -35,18 +35,14 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "h11==0.8.*" "h11"
+      --replace "h11==0.8.*" "h11" \
+      --replace "httptools==0.0.13" "httptools"
   '';
 
   checkInputs = [ pytest requests ];
+  # watchgod required the watchgod package, which isn't available in nixpkgs
   checkPhase = ''
-    pytest
-  '';
-
-  # LICENCE.md gets propagated without this, causing collisions
-  # see https://github.com/encode/uvicorn/issues/392
-  postInstall = ''
-    rm $out/LICENSE.md
+    pytest --ignore=tests/supervisors/test_watchgodreload.py
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/uvloop/default.nix b/pkgs/development/python-modules/uvloop/default.nix
index 109d8d8efab..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
@@ -48,13 +49,16 @@ buildPythonPackage rec {
 
   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 = ''
     export TEST_DIR=$(mktemp -d)
     cp -r tests $TEST_DIR
     pushd $TEST_DIR
+  '' + lib.optionalString stdenv.isDarwin ''
+    # Some tests fail on Darwin
+    rm tests/test_[stu]*.py
   '';
   postCheck = ''
     popd
diff --git a/pkgs/development/python-modules/validators/default.nix b/pkgs/development/python-modules/validators/default.nix
index c6dee84da30..dbed55725bc 100644
--- a/pkgs/development/python-modules/validators/default.nix
+++ b/pkgs/development/python-modules/validators/default.nix
@@ -1,20 +1,21 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , six
 , decorator
-, pytest
+, pytestCheckHook
 , isort
 , flake8
 }:
 
 buildPythonPackage rec {
   pname = "validators";
-  version = "0.14.1";
+  version = "0.15.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0bfe836a1af37bb266d71ec1e98b530c38ce11bc7fbe0c4c96ef7b1532d019e5";
+    sha256 = "31e8bb01b48b48940a021b8a9576b840f98fa06b91762ef921d02cb96d38727a";
   };
 
   propagatedBuildInputs = [
@@ -23,14 +24,12 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
     flake8
     isort
   ];
 
-  checkPhase = ''
-    pytest
-  '';
+  disabledTests = lib.optionals isPy27 [ "url" ];
 
   meta = with lib; {
     description = "Python Data Validation for Humansâ„¢";
diff --git a/pkgs/development/python-modules/vcrpy/default.nix b/pkgs/development/python-modules/vcrpy/default.nix
index ddd4015aad1..0dd88ba1979 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 = "3.0.0";
+  version = "4.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "21168d5ae14263a833d4b71acfd8278d8841114f24be1b4ab4a5719d0c7f07bc";
+    sha256 = "9740c5b1b63626ec55cefb415259a2c77ce00751e97b0f7f214037baaf13c7bf";
   };
 
   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/tools/misc/vdirsyncer/default.nix b/pkgs/development/python-modules/vdirsyncer/default.nix
index 61c9b9df877..1a5494634bb 100644
--- a/pkgs/tools/misc/vdirsyncer/default.nix
+++ b/pkgs/development/python-modules/vdirsyncer/default.nix
@@ -1,11 +1,36 @@
-{ stdenv, python3Packages, fetchFromGitHub, fetchpatch, rustPlatform, pkgconfig, openssl, CoreServices, Security }:
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, fetchpatch
+, rustPlatform
+, pkg-config
+, openssl
+, CoreServices
+, Security
+, click
+, click-log
+, click-threading
+, requests_toolbelt
+, requests
+, requests_oauthlib # required for google oauth sync
+, atomicwrites
+, milksnake
+, shippai
+, hypothesis
+, pytest
+, pytest-localserver
+, pytest-subtesthack
+, setuptools_scm
+}:
 
 # Packaging documentation at:
 # https://github.com/untitaker/vdirsyncer/blob/master/docs/packaging.rst
-python3Packages.buildPythonApplication rec {
+buildPythonPackage rec {
   version = "unstable-2018-08-05";
   pname = "vdirsyncer";
   name = "${pname}-${version}";
+  disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "spk";
@@ -20,11 +45,11 @@ python3Packages.buildPythonApplication rec {
     inherit src;
     sourceRoot = "source/rust";
     cargoSha256 = "0cqy0s55pkg6hww86h7qip4xaidh6g8lcypdj84n2x374jq38c5d";
-    nativeBuildInputs = [ pkgconfig ];
+    nativeBuildInputs = [ pkg-config ];
     buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices Security ];
   };
 
-  propagatedBuildInputs = with python3Packages; [
+  propagatedBuildInputs = [
     click click-log click-threading
     requests_toolbelt
     requests
@@ -34,9 +59,16 @@ python3Packages.buildPythonApplication rec {
     shippai
   ];
 
-  nativeBuildInputs = with python3Packages; [ setuptools_scm ];
+  nativeBuildInputs = [
+    setuptools_scm
+  ];
 
-  checkInputs = with python3Packages; [ hypothesis pytest pytest-localserver pytest-subtesthack ];
+  checkInputs = [
+    hypothesis
+    pytest
+    pytest-localserver
+    pytest-subtesthack
+  ];
 
   patches = [
     (fetchpatch {
diff --git a/pkgs/development/python-modules/vdirsyncer/stable.nix b/pkgs/development/python-modules/vdirsyncer/stable.nix
new file mode 100644
index 00000000000..6e1dc982567
--- /dev/null
+++ b/pkgs/development/python-modules/vdirsyncer/stable.nix
@@ -0,0 +1,64 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, click
+, click-log
+, click-threading
+, requests_toolbelt
+, requests
+, requests_oauthlib # required for google oauth sync
+, atomicwrites
+, hypothesis
+, pytestCheckHook
+, pytest-localserver
+, pytest-subtesthack
+, setuptools_scm
+}:
+
+buildPythonPackage rec {
+  version = "0.16.8";
+  pname = "vdirsyncer";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "bfdb422f52e1d4d60bd0635d203fb59fa7f613397d079661eb48e79464ba13c5";
+  };
+
+  propagatedBuildInputs = [
+    click click-log click-threading
+    requests_toolbelt
+    requests
+    requests_oauthlib # required for google oauth sync
+    atomicwrites
+  ];
+
+  nativeBuildInputs = [
+    setuptools_scm
+  ];
+
+  checkInputs = [
+    hypothesis
+    pytestCheckHook
+    pytest-localserver
+    pytest-subtesthack
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "click>=5.0,<6.0" "click"
+  '';
+
+  preCheck = ''
+    export DETERMINISTIC_TESTS=true
+  '';
+
+  disabledTests = [ "test_verbosity" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/pimutils/vdirsyncer";
+    description = "Synchronize calendars and contacts";
+    license = licenses.mit;
+    maintainers = with maintainers; [ loewenheim ];
+  };
+}
diff --git a/pkgs/development/python-modules/vega/default.nix b/pkgs/development/python-modules/vega/default.nix
index 4bd3f1b9931..b81481b0774 100644
--- a/pkgs/development/python-modules/vega/default.nix
+++ b/pkgs/development/python-modules/vega/default.nix
@@ -1,17 +1,22 @@
-{ stdenv, buildPythonPackage , fetchPypi
-, pytest, jupyter_core, pandas, ipywidgets }:
+{ stdenv, buildPythonPackage , fetchPypi, pythonOlder
+, pytest, jupyter_core, pandas, ipywidgets, jupyter, altair }:
 
 buildPythonPackage rec {
   pname = "vega";
-  version = "2.6.0";
+  version = "3.4.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c66354d6d164cc3d7254bcd129d8d861daf4a9e9cb8738b1724791777f6c29f0";
+    sha256 = "f343ceb11add58d24cd320d69e410b111a56c98c9069ebb4ef89c608c4c1950d";
   };
 
   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 24af3599869..8beb39b26d9 100644
--- a/pkgs/development/python-modules/vertica-python/default.nix
+++ b/pkgs/development/python-modules/vertica-python/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "vertica-python";
-  version = "0.10.2";
+  version = "0.10.4";
   
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c35d0e7ac8da2af47a65efc72d5d8351caa93e4829e549f229aa7e375593f896";
+    sha256 = "570525d0371806993874bd2ee0f47cc5d68994abb5aa382e964e53e0b81160b2";
   };
   
   propagatedBuildInputs = [ future dateutil six ];
diff --git a/pkgs/development/python-modules/vidstab/default.nix b/pkgs/development/python-modules/vidstab/default.nix
index 895699df954..f43fe542677 100644
--- a/pkgs/development/python-modules/vidstab/default.nix
+++ b/pkgs/development/python-modules/vidstab/default.nix
@@ -10,12 +10,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.7.2";
+  version = "1.7.3";
   pname = "vidstab";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "24cb7a25a6ed9a474f4d23c9deecf9163691fcde2559de10897f593ba849266b";
+    sha256 = "649a77a0c1b670d13a1bf411451945d7da439364dc0c33ee3636a23f1d82b456";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/virtual-display/default.nix b/pkgs/development/python-modules/virtual-display/default.nix
index 1b56f046610..958f8a01704 100644
--- a/pkgs/development/python-modules/virtual-display/default.nix
+++ b/pkgs/development/python-modules/virtual-display/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "PyVirtualDisplay";
-  version = "0.2.5";
+  version = "1.3.2";
 
   propagatedBuildInputs = [ EasyProcess ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5b267c8ffc98fcbd084ba852ab4caef3f22e9362bc5d117e1697e767553eaf41";
+    sha256 = "3fa85a6e490e45eab64e6be19841e0ab15ec8054c97f162079a061da6a93eba0";
   };
 
   # requires X server
diff --git a/pkgs/development/python-modules/virtualenv/0001-Check-base_prefix-and-base_exec_prefix-for-Python-2.patch b/pkgs/development/python-modules/virtualenv/0001-Check-base_prefix-and-base_exec_prefix-for-Python-2.patch
new file mode 100644
index 00000000000..2b34da289e2
--- /dev/null
+++ b/pkgs/development/python-modules/virtualenv/0001-Check-base_prefix-and-base_exec_prefix-for-Python-2.patch
@@ -0,0 +1,37 @@
+From 21563405d6e2348ee457187f7fb61beb102bb367 Mon Sep 17 00:00:00 2001
+From: Frederik Rietdijk <fridh@fridh.nl>
+Date: Sun, 24 May 2020 09:33:13 +0200
+Subject: [PATCH] Check base_prefix and base_exec_prefix for Python 2
+
+This is a Nixpkgs-specific change so it can support virtualenvs from Nix envs.
+---
+ src/virtualenv/discovery/py_info.py | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/src/virtualenv/discovery/py_info.py b/src/virtualenv/discovery/py_info.py
+index 6f12128..74e9218 100644
+--- a/src/virtualenv/discovery/py_info.py
++++ b/src/virtualenv/discovery/py_info.py
+@@ -51,13 +51,17 @@ class PythonInfo(object):
+         self.version = u(sys.version)
+         self.os = u(os.name)
+ 
++        config_vars = {} if sys.version_info.major is not 2 else sysconfig._CONFIG_VARS
++        base_prefix = config_vars.get("prefix")
++        base_exec_prefix = config_vars.get("exec_prefix")
++
+         # information about the prefix - determines python home
+         self.prefix = u(abs_path(getattr(sys, "prefix", None)))  # prefix we think
+-        self.base_prefix = u(abs_path(getattr(sys, "base_prefix", None)))  # venv
++        self.base_prefix = u(abs_path(getattr(sys, "base_prefix", base_prefix)))  # venv
+         self.real_prefix = u(abs_path(getattr(sys, "real_prefix", None)))  # old virtualenv
+ 
+         # information about the exec prefix - dynamic stdlib modules
+-        self.base_exec_prefix = u(abs_path(getattr(sys, "base_exec_prefix", None)))
++        self.base_exec_prefix = u(abs_path(getattr(sys, "base_exec_prefix", base_exec_prefix)))
+         self.exec_prefix = u(abs_path(getattr(sys, "exec_prefix", None)))
+ 
+         self.executable = u(abs_path(sys.executable))  # the executable we were invoked via
+-- 
+2.25.1
+
diff --git a/pkgs/development/python-modules/virtualenv/default.nix b/pkgs/development/python-modules/virtualenv/default.nix
index 70be4a05f69..8be6bb146f5 100644
--- a/pkgs/development/python-modules/virtualenv/default.nix
+++ b/pkgs/development/python-modules/virtualenv/default.nix
@@ -1,25 +1,51 @@
 { buildPythonPackage
 , fetchPypi
 , lib
-, recursivePthLoader
+, stdenv
+, pythonOlder
+, isPy27
+, appdirs
+, contextlib2
+, distlib
+, filelock
+, importlib-metadata
+, importlib-resources
+, pathlib2
+, setuptools_scm
+, six
 }:
 
 buildPythonPackage rec {
   pname = "virtualenv";
-  version = "16.7.9";
+  version = "20.0.28";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0d62c70883c0342d59c11d0ddac0d954d0431321a41ab20851facf2b222598f3";
+    sha256 = "688a61d7976d82b92f7906c367e83bb4b3f0af96f8f75bfcd3da95608fe8ac6c";
   };
 
-  # Doubt this is needed - FRidh 2017-07-07
-  pythonPath = [ recursivePthLoader ];
+  nativeBuildInputs = [
+    setuptools_scm
+  ];
 
-  patches = [ ./virtualenv-change-prefix.patch ];
+  propagatedBuildInputs = [
+    appdirs
+    distlib
+    filelock
+    six
+  ] ++ lib.optionals isPy27 [
+    contextlib2
+  ] ++ lib.optionals (isPy27 && !stdenv.hostPlatform.isWindows) [
+    pathlib2
+  ] ++ lib.optionals (pythonOlder "3.7") [
+    importlib-resources
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
 
-  # Tarball doesn't contain tests
-  doCheck = false;
+  patches = lib.optionals (isPy27) [
+    ./0001-Check-base_prefix-and-base_exec_prefix-for-Python-2.patch
+  ];
 
   meta = {
     description = "A tool to create isolated Python environments";
diff --git a/pkgs/development/python-modules/virtualenv/virtualenv-change-prefix.patch b/pkgs/development/python-modules/virtualenv/virtualenv-change-prefix.patch
deleted file mode 100644
index f3e8ea854f6..00000000000
--- a/pkgs/development/python-modules/virtualenv/virtualenv-change-prefix.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Without this patch `virtualenv --python=python2.7 .` fails with an
-error because it notices that the python readline.so is not in the
-same path as python2.7. I assume this is to avoid copying the wrong
-file on systems where it is possible to find incompatible libraries by
-accident. Adding "/nix/store" to the prefix fixes this problem.
-
-A sitecustomize.py is created in the virtualenv which makes libraries
-from the python specified by the --python argument available to the
-virtualenv. For example, this makes readline and sqlite3 available
-when a wrapped python is specified. If no --python argument is passed,
-it will only add the path to the python used when building
-`virtualenv`, which is the unwrapped python, so sqlite3 won't be
-available.
-
-
-diff --git a/virtualenv.py b/virtualenv.py
-index bcf3225..3530997 100755
---- a/virtualenv.py
-+++ b/virtualenv.py
-@@ -1163,20 +1163,7 @@ def path_locations(home_dir, dry_run=False):
- 
- 
- def change_prefix(filename, dst_prefix):
--    prefixes = [sys.prefix]
--
--    if IS_DARWIN:
--        prefixes.extend(
--            (
--                os.path.join("/Library/Python", VERSION, "site-packages"),
--                os.path.join(sys.prefix, "Extras", "lib", "python"),
--                os.path.join("~", "Library", "Python", VERSION, "site-packages"),
--                # Python 2.6 no-frameworks
--                os.path.join("~", ".local", "lib", "python", VERSION, "site-packages"),
--                # System Python 2.7 on OSX Mountain Lion
--                os.path.join("~", "Library", "Python", VERSION, "lib", "python", "site-packages"),
--            )
--        )
-+    prefixes = ["/nix/store", sys.prefix]
- 
-     if hasattr(sys, "real_prefix"):
-         prefixes.append(sys.real_prefix)
-@@ -1199,6 +1186,8 @@ def change_prefix(filename, dst_prefix):
-             if src_prefix != os.sep:  # sys.prefix == "/"
-                 assert relative_path[0] == os.sep
-                 relative_path = relative_path[1:]
-+                if src_prefix == "/nix/store":
-+                    relative_path = "/".join(relative_path.split("/")[1:])
-             return join(dst_prefix, relative_path)
-     assert False, "Filename {} does not start with any of these prefixes: {}".format(filename, prefixes)
- 
-@@ -1375,6 +1364,11 @@ def install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages, clear, sy
-     site_filename_dst = change_prefix(site_filename, home_dir)
-     site_dir = os.path.dirname(site_filename_dst)
-     writefile(site_filename_dst, SITE_PY)
-+    wrapper_path = join(prefix, "lib", PY_VERSION, "site-packages")
-+    writefile(
-+        join(site_dir, 'sitecustomize.py',),
-+        "import sys; sys.path.append('%s')" % wrapper_path
-+    )
-     writefile(join(site_dir, "orig-prefix.txt"), prefix)
-     site_packages_filename = join(site_dir, "no-global-site-packages.txt")
-     if not site_packages:
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/vmprof/default.nix b/pkgs/development/python-modules/vmprof/default.nix
index 70e7dbeba69..149efb753e2 100644
--- a/pkgs/development/python-modules/vmprof/default.nix
+++ b/pkgs/development/python-modules/vmprof/default.nix
@@ -1,6 +1,9 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, colorama
+, libunwind
+, pytz
 , requests
 , six
 }:
@@ -14,16 +17,16 @@ buildPythonPackage rec {
     sha256 = "a2d872a40196404386d1e0d960e97b37c86c3f72a4f9d5a2b5f9ca1adaff5b62";
   };
 
-  propagatedBuildInputs = [ requests six];
+  buildInputs = [ libunwind ];
+  propagatedBuildInputs = [ colorama requests six pytz ];
 
   # No tests included
   doCheck = false;
+  pythonImportsCheck = [ "vmprof" ];
 
   meta = with stdenv.lib; {
     description = "A vmprof client";
     license = licenses.mit;
     homepage = "https://vmprof.readthedocs.org/";
-    broken = true;
   };
-
 }
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..06f3265d424
--- /dev/null
+++ b/pkgs/development/python-modules/vulture/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildPythonPackage, fetchPypi, coverage, pytest, pytestcov }:
+
+buildPythonPackage rec {
+  pname = "vulture";
+  version = "1.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1sbwbwkpk3s7iwnwsdrvj1ydw9lgbn3xqhji7f8y5y6vvr77i53v";
+  };
+
+  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/w3lib/default.nix b/pkgs/development/python-modules/w3lib/default.nix
index c0d2d744f09..a37f786c018 100644
--- a/pkgs/development/python-modules/w3lib/default.nix
+++ b/pkgs/development/python-modules/w3lib/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "w3lib";
-  version = "1.21.0";
+  version = "1.22.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05a3fxi4f43n0dc87lizsy2h84dxvqjy0q6rhkyabdbhypz5864b";
+    sha256 = "1pv02lvvmgz2qb61vz1jkjc04fgm4hpfvaj5zm4i3mjp64hd1mha";
   };
 
   buildInputs = [ six pytest ];
diff --git a/pkgs/development/python-modules/wadllib/default.nix b/pkgs/development/python-modules/wadllib/default.nix
index 87555fe774b..45b5a473456 100644
--- a/pkgs/development/python-modules/wadllib/default.nix
+++ b/pkgs/development/python-modules/wadllib/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "wadllib";
-  version = "1.3.3";
+  version = "1.3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1234cfe81e2cf223e56816f86df3aa18801d1770261865d93337b8b603be366e";
+    sha256 = "e995691713d3c795d2b36278de8e212241870f46bec6ecba91794ea3cc5bd67d";
   };
 
   propagatedBuildInputs = [ setuptools lazr-uri ];
diff --git a/pkgs/development/python-modules/waitress/default.nix b/pkgs/development/python-modules/waitress/default.nix
index 72da3204a64..3812ed06b60 100644
--- a/pkgs/development/python-modules/waitress/default.nix
+++ b/pkgs/development/python-modules/waitress/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "waitress";
-  version = "1.3.1";
+  version = "1.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "278e09d6849acc1365404bbf7d790d0423b159802e850c726e8cd0a126a2dac7";
+    sha256 = "1bb436508a7487ac6cb097ae7a7fe5413aefca610550baf58f0940e51ecfb261";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/wasabi/default.nix b/pkgs/development/python-modules/wasabi/default.nix
index 1865b5792b1..a545a9510b8 100644
--- a/pkgs/development/python-modules/wasabi/default.nix
+++ b/pkgs/development/python-modules/wasabi/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "wasabi";
-  version = "0.6.0";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0qv0zpr6kwjwygx9k8jgafiil5wh2zsyryvbxghzv4yn7jb3xpdq";
+    sha256 = "ee3809f4ce00e1e7f424b1572c753cff0dcaca2ca684e67e31f985033a9f070b";
   };
 
   checkInputs = [
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 4b604bd2c6a..7d5cbc69eca 100644
--- a/pkgs/development/python-modules/wcwidth/default.nix
+++ b/pkgs/development/python-modules/wcwidth/default.nix
@@ -1,23 +1,27 @@
-{ lib, fetchPypi, buildPythonPackage, pytest }:
+{ lib, fetchPypi, buildPythonPackage, pytestCheckHook
+, isPy3k
+, backports_functools_lru_cache
+, setuptools
+}:
 
 buildPythonPackage rec {
   pname = "wcwidth";
-  version = "0.1.7";
+  version = "0.2.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0pn6dflzm609m4r3i8ik5ni9ijjbb5fa3vg1n7hn6vkd49r77wrx";
+    sha256 = "c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
+
+  propagatedBuildInputs = [ setuptools ] ++ lib.optionals (!isPy3k) [
+    backports_functools_lru_cache
+  ];
 
   # To prevent infinite recursion with pytest
   doCheck = false;
 
-  checkPhase = ''
-    pytest
-  '';
-
   meta = with lib; {
     description = "Measures number of Terminal column cells of wide-character codes";
     longDescription = ''
diff --git a/pkgs/development/python-modules/web/default.nix b/pkgs/development/python-modules/web/default.nix
index ea1ffc7826f..6749ed2b838 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.40";
+  version = "0.51";
   pname = "web.py";
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dc5e42ffbc42d77d07f75b7acca9975a3368ae609774e49ddebb497a784131f3";
+    sha256 = "b50343941360984d37270186453bb897d13630028a739394fedf38f9cde2fd07";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/webcolors/default.nix b/pkgs/development/python-modules/webcolors/default.nix
index e0e2f97501b..273cd7ac5d1 100644
--- a/pkgs/development/python-modules/webcolors/default.nix
+++ b/pkgs/development/python-modules/webcolors/default.nix
@@ -1,17 +1,19 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , python
 , six
 }:
 
 buildPythonPackage rec {
   pname = "webcolors";
-  version = "1.10";
+  version = "1.11.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7b11194c414dcf4b9bd8fb5ceaafc9da183b27430883c62f620589eb79b91b6e";
+    sha256 = "76f360636957d1c976db7466bc71dcb713bb95ac8911944dffc55c01cb516de6";
   };
 
   propagatedBuildInputs = [ six ];
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/webob/default.nix b/pkgs/development/python-modules/webob/default.nix
index 77e91feebac..17b20ecd34d 100644
--- a/pkgs/development/python-modules/webob/default.nix
+++ b/pkgs/development/python-modules/webob/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "WebOb";
-  version = "1.8.5";
+  version = "1.8.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05aaab7975e0ee8af2026325d656e5ce14a71f1883c52276181821d6d5bf7086";
+    sha256 = "aa3a917ed752ba3e0b242234b2a373f9c4e2a75d35291dcbe977649bd21fd108";
   };
 
   propagatedBuildInputs = [ nose pytest ];
diff --git a/pkgs/development/python-modules/websocket_client/default.nix b/pkgs/development/python-modules/websocket_client/default.nix
index ad830a0890a..dacae3e81e1 100644
--- a/pkgs/development/python-modules/websocket_client/default.nix
+++ b/pkgs/development/python-modules/websocket_client/default.nix
@@ -4,12 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.56.0";
+  version = "0.57.0";
   pname = "websocket_client";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fpxjyr74klnyis3yf6m54askl0h5dchxcwbfjsq92xng0455m8z";
+    sha256 = "d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/werkzeug/default.nix b/pkgs/development/python-modules/werkzeug/default.nix
index 5e0d6df0af0..a4146d4d3b1 100644
--- a/pkgs/development/python-modules/werkzeug/default.nix
+++ b/pkgs/development/python-modules/werkzeug/default.nix
@@ -1,24 +1,28 @@
 { stdenv, buildPythonPackage, fetchPypi
 , itsdangerous, hypothesis
-, pytest, requests
+, pytestCheckHook, requests
 , pytest-timeout
+, isPy3k
  }:
 
 buildPythonPackage rec {
   pname = "Werkzeug";
-  version = "0.16.1";
+  version = "1.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b353856d37dec59d6511359f97f6a4b2468442e454bd1c98298ddce53cac1f04";
+    sha256 = "6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c";
   };
 
   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..3d4427f492d
--- /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.2";
+  pname = "west";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "11dbzlcg48fymddqjrrs60pr7y33qjjv0y5zrfjc56gkc190gmz6";
+  };
+
+  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 9ef4fd14979..cf24f7fb1d3 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.0.1";
+  version = "5.1.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f9137f74bd95fa54329ace88d8dc695fbe895369a632e35f7a136e003e41d73";
+    sha256 = "60154b976a13901414a25b0273a841145f77eb34a141f9ae032a0ace3e4d5b27";
   };
 
   # 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/word2vec/default.nix b/pkgs/development/python-modules/word2vec/default.nix
index 706ee732402..367c299a70c 100644
--- a/pkgs/development/python-modules/word2vec/default.nix
+++ b/pkgs/development/python-modules/word2vec/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "word2vec";
-  version = "0.10.2";
+  version = "0.11.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "40f6f30a5f113ffbfc24c5ad5de23bfac897f4c1210fb93685b7fca5c4dee7db";
+    sha256 = "222d8ffb47f385c43eba45e3f308e605fc9736b2b7137d74979adf1a31e7c8b4";
   };
 
   propagatedBuildInputs = [ cython numpy scikitlearn six ];
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/wptserve/default.nix b/pkgs/development/python-modules/wptserve/default.nix
index 65e3669734f..7caf36fa6b2 100644
--- a/pkgs/development/python-modules/wptserve/default.nix
+++ b/pkgs/development/python-modules/wptserve/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "wptserve";
-  version = "2.0";
+  version = "3.0";
 
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9d0c6adc279748abea81ac12b7a2cac97ebbdd87826dc11f6dbd85b781e9442a";
+    sha256 = "11990a92b07e4535c2723c34a88bd905c66acec9cda6efa7a7b61371bfe8d87a";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/wrapt/default.nix b/pkgs/development/python-modules/wrapt/default.nix
index a380e6ac379..0d5376e1004 100644
--- a/pkgs/development/python-modules/wrapt/default.nix
+++ b/pkgs/development/python-modules/wrapt/default.nix
@@ -5,14 +5,14 @@
 
 buildPythonPackage rec {
   pname = "wrapt";
-  version = "1.11.2";
+  version = "1.12.1";
 
   # No tests in archive
   doCheck = false;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1";
+    sha256 = "b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7";
   };
 
   meta = {
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 98c3b1be93b..66667c74ef3 100644
--- a/pkgs/development/python-modules/wtforms/default.nix
+++ b/pkgs/development/python-modules/wtforms/default.nix
@@ -1,29 +1,29 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
-, Babel
+, markupsafe
 }:
 
 buildPythonPackage rec {
-  version = "2.1";
-  pname = "wtforms";
+  version = "2.3.3";
+  pname = "WTForms";
 
   src = fetchPypi {
     inherit pname version;
-    extension = "zip";
-    sha256 = "0vyl26y9cg409cfyj8rhqxazsdnd0jipgjw06civhrd53yyi1pzz";
+    sha256 = "81195de0ac94fbc8368abbaf9197b88c4f3ffd6c2719b5bf5fc9da744f3d829c";
   };
 
+  propagatedBuildInputs = [ markupsafe ];
+
   # Django tests are broken "django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet."
-  # This is fixed in master I believe but not yet in 2.1;
   doCheck = false;
 
-  propagatedBuildInputs = [ Babel ];
-
   meta = with stdenv.lib; {
-    homepage = "https://github.com/wtforms/wtforms";
     description = "A flexible forms validation and rendering library for Python";
+    homepage = "https://github.com/wtforms/wtforms";
+    changelog = "https://github.com/wtforms/wtforms/blob/${version}/CHANGES.rst";
     license = licenses.bsd3;
+    maintainers = [ maintainers.bhipple ];
   };
 
 }
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/x11_hash/default.nix b/pkgs/development/python-modules/x11_hash/default.nix
index 7cc921047ac..22ce5917e2a 100644
--- a/pkgs/development/python-modules/x11_hash/default.nix
+++ b/pkgs/development/python-modules/x11_hash/default.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 }:
 
-buildPythonPackage rec{
+buildPythonPackage rec {
   version = "1.4";
   pname = "x11_hash";
 
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/xhtml2pdf/default.nix b/pkgs/development/python-modules/xhtml2pdf/default.nix
index 466b72696f3..e10c8e93ab5 100644
--- a/pkgs/development/python-modules/xhtml2pdf/default.nix
+++ b/pkgs/development/python-modules/xhtml2pdf/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "xhtml2pdf";
-  version = "0.2.3";
+  version = "0.2.4";
 
   propagatedBuildInputs = [pillow html5lib pypdf2 reportlab six];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10kg8cmn7zgql2lb6cfmqj94sa0jkraksv3lc4kvpn58sxw7x8w6";
+    sha256 = "6793fbbdcb6bb8a4a70132966d8d95e95ea3498cdf0e82252d2b8e9aae34fcb5";
   };
 
   meta = with stdenv.lib; {
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 b2bd5af56c8..7dc6cf2896f 100644
--- a/pkgs/development/python-modules/xml2rfc/default.nix
+++ b/pkgs/development/python-modules/xml2rfc/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "xml2rfc";
-  version = "2.41.0";
+  version = "2.45.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0xmhgn62a8a7282yd003zz63mrgyajb6sg29bfyllx3mxmdlb0iz";
+    sha256 = "e083195efc07f84fb22da9e74d5d9f857d3c82a3947995b0d4f3ff9b11a1a7c5";
   };
 
   propagatedBuildInputs = [
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..60c96582ea6
--- /dev/null
+++ b/pkgs/development/python-modules/xpybutil/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchFromGitHub, xcffib, pillow }:
+
+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 ];
+
+  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..ee385e483b2 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 = "1.4.4";
   pname = "xxhash";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8b6b1afe7731d7d9cbb0398b4a811ebb5e6be5c174f72c68abf81f919a435de9";
+    sha256 = "0impn5fbs9h8qjnbvn7j2v25lh20z8gbcx5xi9dhhzcp2z9gjvbx";
   };
 
   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/yapf/default.nix b/pkgs/development/python-modules/yapf/default.nix
index f4e154f2cbc..65a4e9abcb2 100644
--- a/pkgs/development/python-modules/yapf/default.nix
+++ b/pkgs/development/python-modules/yapf/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "yapf";
-  version = "0.29.0";
+  version = "0.30.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "712e23c468506bf12cadd10169f852572ecc61b266258422d45aaf4ad7ef43de";
+    sha256 = "3000abee4c28daebad55da6c85f3cd07b8062ce48e2e9943c8da1b9667d48427";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/yappi/default.nix b/pkgs/development/python-modules/yappi/default.nix
index 6ab776d2307..e0be34a2d31 100644
--- a/pkgs/development/python-modules/yappi/default.nix
+++ b/pkgs/development/python-modules/yappi/default.nix
@@ -1,12 +1,13 @@
-{ lib, buildPythonPackage, fetchPypi, nose }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, nose }:
 
 buildPythonPackage rec {
   pname = "yappi";
-  version = "1.2.3";
+  version = "1.2.5";
+  disabled = isPy27; # invalid syntax
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b8db9bc607610d6da4e27e87ec828ebddec4bdaac89ca07ebfe9a153b0641580";
+    sha256 = "ad5fa4caf2859e480ffc4ec3e85615a6f7dea852c8f035f2db723f824ed4ba11";
   };
 
   patches = [ ./tests.patch ];
diff --git a/pkgs/development/python-modules/yattag/default.nix b/pkgs/development/python-modules/yattag/default.nix
index 32b378ddd57..f9b597e9f78 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.12.2";
+  version = "1.13.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1g0zhf09vs8cq0l5lx10dnqpimvg5mzh9k0z12n6nnfsw11cila7";
+    sha256 = "41c1182f81e69bc53d8763c5bb9d27f54ae05ce581ee4e41c7931cc2f2479262";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/yenc/default.nix b/pkgs/development/python-modules/yenc/default.nix
index 13c8d53f19b..453f3113853 100644
--- a/pkgs/development/python-modules/yenc/default.nix
+++ b/pkgs/development/python-modules/yenc/default.nix
@@ -6,7 +6,7 @@
 , isPy3k
 }:
 
-buildPythonPackage rec{
+buildPythonPackage rec {
   pname = "yenc";
   version = "0.4.0";
   src = fetchurl {
diff --git a/pkgs/development/python-modules/yt/default.nix b/pkgs/development/python-modules/yt/default.nix
index ce89ec0fd3d..353400120f3 100644
--- a/pkgs/development/python-modules/yt/default.nix
+++ b/pkgs/development/python-modules/yt/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "yt";
-  version = "3.5.1";
+  version = "3.6.0";
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c8ef8eceb934dc189d63dc336109fad3002140a9a32b19f38d1812d5d5a30d71";
+    sha256 = "effb00536f19fd2bdc18f67dacd5550b82066a6adce5b928f27a01d7505109ec";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/yubico-client/default.nix b/pkgs/development/python-modules/yubico-client/default.nix
index f679c54f96c..e8457055c18 100644
--- a/pkgs/development/python-modules/yubico-client/default.nix
+++ b/pkgs/development/python-modules/yubico-client/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "yubico-client";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1d74c6341210c94b639f7c7c8930550e73d5c1be60402e418e9dc95e038f8527";
+    sha256 = "e3b86cd2a123105edfacad40551c7b26e9c1193d81ffe168ee704ebfd3d11162";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/zarr/default.nix b/pkgs/development/python-modules/zarr/default.nix
index ac7c2b6af01..d7d1df5993b 100644
--- a/pkgs/development/python-modules/zarr/default.nix
+++ b/pkgs/development/python-modules/zarr/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "zarr";
-  version = "2.3.2";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c62d0158fb287151c978904935a177b3d2d318dea3057cfbeac8541915dfa105";
+    sha256 = "53aa21b989a47ddc5e916eaff6115b824c0864444b1c6f3aaf4f6cf9a51ed608";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/zconfig/default.nix b/pkgs/development/python-modules/zconfig/default.nix
index 75f8647730c..ef4754504dd 100644
--- a/pkgs/development/python-modules/zconfig/default.nix
+++ b/pkgs/development/python-modules/zconfig/default.nix
@@ -1,9 +1,11 @@
 { stdenv
 , fetchPypi
+, fetchpatch
 , buildPythonPackage
 , zope_testrunner
 , manuel
 , docutils
+, pythonAtLeast
 }:
 
 buildPythonPackage rec {
@@ -15,7 +17,13 @@ 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 ];
diff --git a/pkgs/development/python-modules/zeroc-ice/default.nix b/pkgs/development/python-modules/zeroc-ice/default.nix
index ccc34b42afb..16bf5b7855c 100644
--- a/pkgs/development/python-modules/zeroc-ice/default.nix
+++ b/pkgs/development/python-modules/zeroc-ice/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "zeroc-ice";
-  version = "3.7.3";
+  version = "3.7.4";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "1adec3b54c77c46acfc8a99d6336ce9a0223a7016852666358133cbe37d99744";
+    sha256 = "dc79a1eaad1d1cd1cf8cfe636e1bc413c60645e3e87a5a8e9b97ce882690e0e4";
   };
 
   buildInputs = [ openssl bzip2 ];
diff --git a/pkgs/development/python-modules/zeroconf/default.nix b/pkgs/development/python-modules/zeroconf/default.nix
index 0985da20802..1e51db1ab52 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.26.0";
+  version = "0.27.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "029wxa50dwf4hsi7w0d8wmywh125aaaa7l4g024z1cyi511iy5h1";
+    sha256 = "51a8bc581036cabcf82523c81b72f6a11b2c7913eb7eb418b6dad60cd40f9ef2";
   };
 
   propagatedBuildInputs = [ ifaddr ]
diff --git a/pkgs/development/python-modules/zha-quirks/default.nix b/pkgs/development/python-modules/zha-quirks/default.nix
index d819a881f9f..abb7354db03 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.30";
+  version = "0.0.42";
 
   nativeBuildInputs = [ pytest ];
   buildInputs = [ aiohttp zigpy ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00731a9b9c58c4e59f6765ac0cec5e2301bdda28ef19e00e2ba752be457a61b9";
+    sha256 = "7b9c6217054b9c49bfe249fa38d993490e901ab29f198022d569e3505e6c7f20";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/zict/default.nix b/pkgs/development/python-modules/zict/default.nix
index 9208b54981b..0aa379322ee 100644
--- a/pkgs/development/python-modules/zict/default.nix
+++ b/pkgs/development/python-modules/zict/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "zict";
-  version = "1.0.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04532600mnsvzv43l2jvjrn7sflg0wkjqzy7nj7m3vvxm5gd4kg3";
+    sha256 = "8e2969797627c8a663575c2fc6fcb53a05e37cdb83ee65f341fc6e0c3d0ced16";
   };
 
   buildInputs = [ pytest ];
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..7223800caa9
--- /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.4.4";
+
+  propagatedBuildInputs = [ pyserial pyserial-asyncio zigpy ];
+  checkInputs = [ asynctest pytest pytest-asyncio ];
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "117a9xak4y5nksfk9rgvzd6l7hscvzspl1wf3gydyq2lc7b3ggnl";
+  };
+
+  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 c9df7824093..af52e942530 100644
--- a/pkgs/development/python-modules/zigpy-deconz/default.nix
+++ b/pkgs/development/python-modules/zigpy-deconz/default.nix
@@ -1,25 +1,24 @@
 { 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.7.0";
+  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;
-    sha256 = "049k6lvgf6yjkinbbzm7gqrzqljk2ky9kfw8n53x8kjyfmfp71i2";
+    sha256 = "f4256136d714c00d22f6d2abf975438e2bc080cc43b8afef0decb80ed8066ef6";
   };
 
   meta = with stdenv.lib; {
     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 726f1fde4e6..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.11.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 = "021wg9yhz8dsif60r8s5621mf63bsayjjb2bimhq0am03ql0fysl";
+    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/zimports/default.nix b/pkgs/development/python-modules/zimports/default.nix
index 43588361ca7..338dd93150b 100644
--- a/pkgs/development/python-modules/zimports/default.nix
+++ b/pkgs/development/python-modules/zimports/default.nix
@@ -5,6 +5,7 @@
 , flake8-import-order
 , pyflakes
 , mock
+, setuptools
 }:
 
 buildPythonPackage rec {
@@ -23,12 +24,19 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     pyflakes
     flake8-import-order
+    setuptools
   ];
 
   checkInputs = [
     mock
   ];
 
+  checkPhase = ''
+    runHook preInstallCheck
+    PYTHONPATH= $out/bin/zimports --help >/dev/null
+    runHook postInstallCheck
+  '';
+
   meta = with lib; {
     description = "Python import rewriter";
     homepage = "https://github.com/sqlalchemyorg/zimports";
diff --git a/pkgs/development/python-modules/zipp/1.nix b/pkgs/development/python-modules/zipp/1.nix
new file mode 100644
index 00000000000..d7447a26159
--- /dev/null
+++ b/pkgs/development/python-modules/zipp/1.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools_scm
+, pytest
+, pytest-flake8
+, more-itertools
+, toml
+}:
+
+buildPythonPackage rec {
+  pname = "zipp";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0v3qayhqv7vyzydpydwcp51bqciw8p2ajddw68x5k8zppc0vx3yk";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [ more-itertools ];
+
+  checkInputs = [ pytest pytest-flake8 ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  # Prevent infinite recursion with pytest
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Pathlib-compatible object wrapper for zip files";
+    homepage = "https://github.com/jaraco/zipp";
+    license = licenses.mit;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/zipp/default.nix b/pkgs/development/python-modules/zipp/default.nix
index 13cb2131a4d..5d4bc589d36 100644
--- a/pkgs/development/python-modules/zipp/default.nix
+++ b/pkgs/development/python-modules/zipp/default.nix
@@ -5,18 +5,19 @@
 , pytest
 , pytest-flake8
 , more-itertools
+, toml
 }:
 
 buildPythonPackage rec {
   pname = "zipp";
-  version = "0.6.0";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3718b1cbcd963c7d4c5511a8240812904164b7f381b647143a89d3b98f9bcd8e";
+    sha256 = "c599e4d75c98f6798c509911d08a22e6c021d074469042177c8c86fb92eefd96";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools_scm toml ];
 
   propagatedBuildInputs = [ more-itertools ];
 
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-hookable/default.nix b/pkgs/development/python-modules/zope-hookable/default.nix
index c9e6311cf32..6c19ffbec02 100644
--- a/pkgs/development/python-modules/zope-hookable/default.nix
+++ b/pkgs/development/python-modules/zope-hookable/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "zope-hookable";
-  version = "4.2.0";
+  version = "5.0.1";
 
   src = fetchPypi {
     pname = "zope.hookable";
     inherit version;
-    sha256 = "c1df3929a3666fc5a0c80d60a0c1e6f6ef97c7f6ed2f1b7cf49f3e6f3d4dde15";
+    sha256 = "0hc82lfr7bk53nvbxvjkibkarngyrzgfk2i6bg8wshl0ly0pdl19";
   };
 
   checkInputs = [ zope_testing ];
diff --git a/pkgs/development/python-modules/zope_component/default.nix b/pkgs/development/python-modules/zope_component/default.nix
index fc63f3d1ebf..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";
+  version = "4.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ec2afc5bbe611dcace98bb39822c122d44743d635dafc7315b9aef25097db9e6";
+    sha256 = "91628918218b3e6f6323de2a7b845e09ddc5cae131c034896c051b084bba3c92";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/zope_configuration/default.nix b/pkgs/development/python-modules/zope_configuration/default.nix
index 664aa0af6e8..587cbf60d88 100644
--- a/pkgs/development/python-modules/zope_configuration/default.nix
+++ b/pkgs/development/python-modules/zope_configuration/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "zope.configuration";
-  version = "4.3.1";
+  version = "4.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6e16747f9fd6b9d8f09d78edf2a6f539cad0fa4ad49d8deb9cf63447cc4168e1";
+    sha256 = "e9f02bac44405ad1526399d6574b91d792f9694f9c67df8b64e91fe10fcddb3c";
   };
 
   checkInputs = [ zope_testrunner manuel ];
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_filerepresentation/default.nix b/pkgs/development/python-modules/zope_filerepresentation/default.nix
index 0a7e959e11f..82a981402eb 100644
--- a/pkgs/development/python-modules/zope_filerepresentation/default.nix
+++ b/pkgs/development/python-modules/zope_filerepresentation/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "zope.filerepresentation";
-  version = "4.2.0";
+  version = "5.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c9bff2b2492b2fe716ee54538441a98d6145d1de87dd921eaa44ac834fbb63b6";
+    sha256 = "3fbca4730c871d8e37b9730763c42b69ba44117cf6d0848014495bb301cae2d6";
   };
 
   propagatedBuildInputs = [ zope_schema ];
diff --git a/pkgs/development/python-modules/zope_i18nmessageid/default.nix b/pkgs/development/python-modules/zope_i18nmessageid/default.nix
index bf1dc7e0b6b..ca5f818cd62 100644
--- a/pkgs/development/python-modules/zope_i18nmessageid/default.nix
+++ b/pkgs/development/python-modules/zope_i18nmessageid/default.nix
@@ -2,19 +2,23 @@
 , buildPythonPackage
 , fetchPypi
 , six
+, coverage
+, zope_testrunner
 }:
 
 buildPythonPackage rec {
   pname = "zope.i18nmessageid";
-  version = "5.0.0";
+  version = "5.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03318270df5320c57b3416744f9cb2a85160a8d00345c07ac35d2b7ac01ff50c";
+    sha256 = "9534142b684c986f5303f469573978e5a340f05ba2eee4f872933f1c38b1b059";
   };
 
   propagatedBuildInputs = [ six ];
 
+  checkInputs = [ coverage zope_testrunner ];
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/zopefoundation/zope.i18nmessageid";
     description = "Message Identifiers for internationalization";
diff --git a/pkgs/development/python-modules/zope_interface/default.nix b/pkgs/development/python-modules/zope_interface/default.nix
index 0388c1041ed..5e7086191cc 100644
--- a/pkgs/development/python-modules/zope_interface/default.nix
+++ b/pkgs/development/python-modules/zope_interface/default.nix
@@ -6,15 +6,17 @@
 
 buildPythonPackage rec {
   pname = "zope.interface";
-  version = "4.7.1";
-  
+  version = "5.1.0";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4bb937e998be9d5e345f486693e477ba79e4344674484001a0b646be1d530487";
+    sha256 = "03nrl6b8cb600dnnh46y149awvrm0gxyqgwq5hdw3lvys8mw9r20";
   };
 
   propagatedBuildInputs = [ zope_event ];
 
+  doCheck = false; # Circular deps.
+
   meta = with stdenv.lib; {
     description = "Zope.Interface";
     homepage = "http://zope.org/Products/ZopeInterface";
diff --git a/pkgs/development/python-modules/zope_lifecycleevent/default.nix b/pkgs/development/python-modules/zope_lifecycleevent/default.nix
index 2beabc8a61c..6494aa7a71a 100644
--- a/pkgs/development/python-modules/zope_lifecycleevent/default.nix
+++ b/pkgs/development/python-modules/zope_lifecycleevent/default.nix
@@ -1,8 +1,10 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy3k
 , zope_event
 , zope_component
+, zope_interface
 }:
 
 buildPythonPackage rec {
@@ -16,6 +18,15 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ zope_event zope_component ];
 
+  # namespace colides with local directory
+  doCheck = false;
+
+  # zope uses pep 420 namespaces for python3, doesn't work with nix + python2
+  pythonImportsCheck = stdenv.lib.optionals isPy3k [
+    "zope.lifecycleevent"
+    "zope.interface"
+  ];
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/zopefoundation/zope.lifecycleevent";
     description = "Object life-cycle events";
diff --git a/pkgs/development/python-modules/zope_proxy/default.nix b/pkgs/development/python-modules/zope_proxy/default.nix
index 361095bf180..7092f750870 100644
--- a/pkgs/development/python-modules/zope_proxy/default.nix
+++ b/pkgs/development/python-modules/zope_proxy/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "zope.proxy";
-  version = "4.3.3";
+  version = "4.3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dac4279aa05055d3897ab5e5ee5a7b39db121f91df65a530f8b1ac7f9bd93119";
+    sha256 = "a66a0d94e5b081d5d695e66d6667e91e74d79e273eee95c1747717ba9cb70792";
   };
 
   propagatedBuildInputs = [ zope_interface ];
diff --git a/pkgs/development/python-modules/zope_schema/default.nix b/pkgs/development/python-modules/zope_schema/default.nix
index 8ecbf0a9907..d32fb05ef94 100644
--- a/pkgs/development/python-modules/zope_schema/default.nix
+++ b/pkgs/development/python-modules/zope_schema/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "zope.schema";
-  version = "4.9.3";
+  version = "6.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2d971da8707cab47b1916534b9929dcd9d7f23aed790e6b4cbe3103d5b18069d";
+    sha256 = "20fbbce8a0726ba34f0e3958676498feebb818f06575193254e139d8d7214f26";
   };
 
   propagatedBuildInputs = [ zope_location zope_event zope_interface zope_testing ];
diff --git a/pkgs/development/python-modules/zstandard/default.nix b/pkgs/development/python-modules/zstandard/default.nix
index bcac246e8f6..a0c7ccd438d 100755
--- a/pkgs/development/python-modules/zstandard/default.nix
+++ b/pkgs/development/python-modules/zstandard/default.nix
@@ -3,19 +3,18 @@
 , fetchPypi
 , cffi
 , hypothesis
-, zstd
 }:
 
 buildPythonPackage rec {
   pname = "zstandard";
-  version = "0.13.0";
+  version = "0.14.0";
   
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e5cbd8b751bd498f275b0582f449f92f14e64f4e03b5bf51c571240d40d43561";
+    sha256 = "0lkn7n3bfp7zip6hkqwkqwc8pxmhhs4rr699k77h51rfln6kjllh";
   };
   
-  propagatedBuildInputs = [ cffi zstd ];
+  propagatedBuildInputs = [ cffi ];
   
   checkInputs = [ hypothesis ];
     
diff --git a/pkgs/development/python-modules/zstd/default.nix b/pkgs/development/python-modules/zstd/default.nix
index 75856a88b7e..8f61f2ffc66 100644
--- a/pkgs/development/python-modules/zstd/default.nix
+++ b/pkgs/development/python-modules/zstd/default.nix
@@ -3,16 +3,16 @@
 
 buildPythonPackage rec {
   pname = "zstd";
-  version = "1.4.4.0";
+  version = "1.4.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "33f2c1fd8d3f9ac8e35fb3e199896afc54cceb68878570c6d4b72985dc6584a5";
+    sha256 = "2a1806d625bd2d8944ead4b3018fc6444a31467fa09935e9c1d4296275f024c6";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "/usr/bin/pkg-config" "${pkgconfig}/bin/pkg-config"
+      --replace "/usr/bin/pkg-config" "${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config"
   '';
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index 9ebd0e2b1d7..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 ];
@@ -445,6 +445,7 @@ let
     ucminf = [ pkgs.libiconv ];
     glmnet = [ pkgs.libiconv ];
     mvtnorm = [ pkgs.libiconv ];
+    statmod = [ pkgs.libiconv ];
   };
 
   packagesRequireingX = [
@@ -704,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/agda-pkg/default.nix b/pkgs/development/tools/agda-pkg/default.nix
new file mode 100644
index 00000000000..0d93694b50f
--- /dev/null
+++ b/pkgs/development/tools/agda-pkg/default.nix
@@ -0,0 +1,44 @@
+{ lib, python3Packages }:
+
+with python3Packages;
+
+buildPythonApplication rec {
+  pname = "agda-pkg";
+  version = "0.1.50";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0wpw90kw3danw91m3jzfdn7zmclimmiz74f77mpij9b1w6wvhm11";
+  };
+
+  # Checks need internet access, so we just check the program executes
+  # At the moment the help page needs to write to $HOME, this can
+  # be removed if https://github.com/agda/agda-pkg/issues/40 is fixed
+  checkPhase = ''
+    HOME=$NIX_BUILD_TOP $out/bin/apkg --help > /dev/null
+  '';
+
+  propagatedBuildInputs = [
+    click
+    GitPython
+    pony
+    whoosh
+    natsort
+    click-log
+    requests
+    humanize
+    distlib
+    jinja2
+    pyyaml
+    ponywhoosh
+  ];
+
+  meta = with lib; {
+    homepage = "https://agda.github.io/agda-pkg/";
+    description = "Package manager for Agda";
+    license = licenses.mit;
+    maintainers = with maintainers; [ alexarice ];
+  };
+}
diff --git a/pkgs/development/tools/ameba/default.nix b/pkgs/development/tools/ameba/default.nix
index a2d829f85c2..0ac36c4c200 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.12.1";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "crystal-ameba";
     repo = "ameba";
     rev = "v${version}";
-    sha256 = "0c2j2qki0czkpsqxv75qg95pk9f0w4rqa5ln07rs4bj9dk2lrr3l";
+    sha256 = "0myy11g62pa1yh9szj03v2lhc5s9xwzr76v4x6hznidpq1b67jn8";
   };
 
   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
new file mode 100644
index 00000000000..b8797c3dfe2
--- /dev/null
+++ b/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
@@ -0,0 +1,30 @@
+{ lib, pkgconfig, rustPlatform, fetchFromGitHub, openssl }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-tarpaulin";
+  version = "0.14.2";
+
+  src = fetchFromGitHub {
+    owner = "xd009642";
+    repo = "tarpaulin";
+    rev = "${version}";
+    sha256 = "1skiaiz3xyi6cf62fkg7i7ahncm7vcg3aq4s4a5lrls30gr0n288";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+  ];
+  buildInputs = [ openssl ];
+
+  cargoSha256 = "1klmdwpqk995pdyms40x7gk4l2mf4ncj7cgknl91kmyvpn4j1y4g";
+  #checkFlags = [ "--test-threads" "1" ];
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A code coverage tool for Rust projects";
+    homepage = "https://github.com/xd009642/tarpaulin";
+    license = with licenses; [ mit /* or */ asl20 ];
+    maintainers = with maintainers; [ hugoreeves ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix
index 3367588bb3b..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.32";
+  version = "8.35";
   pname = "checkstyle";
 
   src = fetchurl {
     url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
-    sha256 = "18ahdphxfcfi2vghl11kmj089hyh9iawll3cwxrqsdqak0748ijs";
+    sha256 = "1jvm49cbwyqxmz8zb9f6wim4rnna2dg1yk95123h46vl6s5cxcc0";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/analysis/codeql/default.nix b/pkgs/development/tools/analysis/codeql/default.nix
index c6b97f21bde..cc73e146909 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.1.1";
+  version = "2.2.4";
 
   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 = "0yaxv89p5pdj1qymc5bnz0mphrypil9dnijvp3ml9hk1vxw6lfvb";
+    sha256 = "0vrl9q7rm8bjxbb5076qx2cbva1wp1gp6z0pjwpg70z90gp49n2p";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/analysis/coz/default.nix b/pkgs/development/tools/analysis/coz/default.nix
index e745f7fe6e5..09bb44dc55f 100644
--- a/pkgs/development/tools/analysis/coz/default.nix
+++ b/pkgs/development/tools/analysis/coz/default.nix
@@ -3,6 +3,7 @@
 , libelfin
 , ncurses
 , python3
+, python3Packages
 , makeWrapper
 }:
 stdenv.mkDerivation rec {
@@ -28,6 +29,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     ncurses
     makeWrapper
+    python3Packages.wrapPython
   ];
 
   buildInputs = [
@@ -42,9 +44,7 @@ stdenv.mkDerivation rec {
     # fix executable includes
     chmod -x $out/include/coz.h
 
-    # make sure that PYTHONPATH doesn't leak from the environment
-    wrapProgram $out/bin/coz \
-      --unset PYTHONPATH
+    wrapPythonPrograms
   '';
 
   meta = {
diff --git a/pkgs/development/tools/analysis/cppcheck/default.nix b/pkgs/development/tools/analysis/cppcheck/default.nix
index 6642a833cf1..8e2c28336cf 100644
--- a/pkgs/development/tools/analysis/cppcheck/default.nix
+++ b/pkgs/development/tools/analysis/cppcheck/default.nix
@@ -1,18 +1,19 @@
-{ stdenv, fetchurl, libxslt, docbook_xsl, docbook_xml_dtd_45, pcre }:
+{ stdenv, fetchurl, libxslt, docbook_xsl, docbook_xml_dtd_45, pcre, withZ3 ? true, z3 }:
 
 stdenv.mkDerivation rec {
   pname = "cppcheck";
-  version = "1.90";
+  version = "2.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "10qqyvx44llbchwqjyipra0nzqqkb9majpp582ac55imc5b8sxa3";
+    sha256 = "1xx5i6z9a36h7k4ipikrk2zidk7jcjv8ryqyq2m5hnwy0gpyw9mb";
   };
 
-  buildInputs = [ pcre ];
+  buildInputs = [ pcre ] ++ stdenv.lib.optionals withZ3 [ z3 ];
   nativeBuildInputs = [ libxslt docbook_xsl docbook_xml_dtd_45 ];
 
-  makeFlags = [ "PREFIX=$(out)" "FILESDIR=$(out)/cfg" "HAVE_RULES=yes" ];
+  makeFlags = [ "PREFIX=$(out)" "FILESDIR=$(out)/cfg" "HAVE_RULES=yes" ]
+   ++ stdenv.lib.optionals withZ3 [ "USE_Z3=yes" "CPPFLAGS=-DNEW_Z3=1" ];
 
   outputs = [ "out" "man" ];
 
diff --git a/pkgs/development/tools/analysis/cpplint/default.nix b/pkgs/development/tools/analysis/cpplint/default.nix
index 577a09e8de9..61aee215031 100644
--- a/pkgs/development/tools/analysis/cpplint/default.nix
+++ b/pkgs/development/tools/analysis/cpplint/default.nix
@@ -2,20 +2,21 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "cpplint";
-  version = "1.3.0";
+  version = "1.5.1";
 
   # Fetch from github instead of pypi, since the test cases are not in the pypi archive
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "107v7bp35kxbv9v7wl79h7115z1m4b48rhasp0cnivql1grd277i";
+    sha256 = "0k927mycj1k4l3fbxrk597bhcjl2nrpaas1imbjgk64cyq8dv7lh";
   };
 
   postPatch = ''
     patchShebangs cpplint_unittest.py
   '';
 
+  checkInputs = with python3Packages; [ pytest pytestrunner ];
   checkPhase = ''
     ./cpplint_unittest.py
   '';
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 c9c5dd873de..60a7499c72d 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.124.0";
+  version = "0.131.0";
 
   src = fetchFromGitHub {
     owner  = "facebook";
     repo   = "flow";
     rev    = "refs/tags/v${version}";
-    sha256 = "1isy67fx0lrszvkf3bw3pp8mzvcyab4qnssmv4kvvz32vls8gh25";
+    sha256 = "13a7gfsnfyssyi3b48s0d9k34rim493rarxd2rdyxyr4ir7jnb1p";
   };
 
   installPhase = ''
diff --git a/pkgs/development/tools/analysis/frama-c/default.nix b/pkgs/development/tools/analysis/frama-c/default.nix
index c7ac2986fd6..179a74c56d5 100644
--- a/pkgs/development/tools/analysis/frama-c/default.nix
+++ b/pkgs/development/tools/analysis/frama-c/default.nix
@@ -23,12 +23,12 @@ in
 
 stdenv.mkDerivation rec {
   pname = "frama-c";
-  version = "20.0";
-  slang   = "Calcium";
+  version = "21.1";
+  slang   = "Scandium";
 
   src = fetchurl {
     url    = "http://frama-c.com/download/frama-c-${version}-${slang}.tar.gz";
-    sha256 = "03dvn162djylj2skmk6vv75gh87mm4s5cspkzcrlm5x0rlla2yqn";
+    sha256 = "0qq0d08dzr0dmdjysiimdqmwlzgnn932vp5kf8lfn3nl45ai09dy";
   };
 
   preConfigure = lib.optionalString stdenv.cc.isClang "configureFlagsArray=(\"--with-cpp=clang -E -C\")";
diff --git a/pkgs/development/tools/analysis/hopper/default.nix b/pkgs/development/tools/analysis/hopper/default.nix
index d854065d601..68f12dac70f 100644
--- a/pkgs/development/tools/analysis/hopper/default.nix
+++ b/pkgs/development/tools/analysis/hopper/default.nix
@@ -12,12 +12,12 @@
 }:
 stdenv.mkDerivation rec {
   pname = "hopper";
-  version = "4.5.25";
+  version = "4.5.29";
   rev = "v${lib.versions.major version}";
 
   src = fetchurl {
     url = "https://d2ap6ypl1xbe4k.cloudfront.net/Hopper-${rev}-${version}-Linux.pkg.tar.xz";
-    sha256 = "1xv4q41kz7a4cqkkdfgwaw2kgi81z62r9l7hmm8qmsnnlbk4xd5j";
+    sha256 = "1v1pff5fiv41khvrnlpdks2vddjnvziyn14qqj6v26snyhwi86zh";
   };
 
   sourceRoot = ".";
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 3f3731e2ac8..f91cdbead82 100644
--- a/pkgs/development/tools/analysis/pmd/default.nix
+++ b/pkgs/development/tools/analysis/pmd/default.nix
@@ -1,20 +1,21 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchurl, unzip, makeWrapper, openjdk }:
 
 stdenv.mkDerivation rec {
   pname = "pmd";
-  version = "6.17.0";
-
-  nativeBuildInputs = [ unzip ];
+  version = "6.26.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/pmd/pmd-bin-${version}.zip";
-    sha256 = "0000w28dg5z8gs7cxhx7d0fv10ry0yxamk5my28ncqqsg7a4qy8w";
+    sha256 = "1vlqwrbqk2cbp8kgxkm61c4blai81ib35yjf6wms16w0hvbqf2b4";
   };
 
+  nativeBuildInputs = [ unzip makeWrapper ];
+
   installPhase = ''
     runHook preInstall
     mkdir -p $out
     cp -R {bin,lib} $out
+    wrapProgram $out/bin/run.sh --prefix PATH : ${openjdk.jre}/bin
     runHook postInstall
   '';
 
diff --git a/pkgs/development/tools/analysis/radare2/cutter.nix b/pkgs/development/tools/analysis/radare2/cutter.nix
index 3f90e5f7343..ff6d7765ead 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.0";
 
   src = fetchFromGitHub {
     owner = "radareorg";
     repo = "cutter";
     rev = "v${version}";
-    sha256 = "0qj8jyij02nif4jpirl09ygwnv8a9zi3vkb5sf5s8mg7qwlpnvyk";
+    sha256 = "1xvdap7hpkjz6rg0ngnql1p18p93b8w9gv130g818nwcjsh9i2y5";
   };
 
   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..7d42b772234 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 = "25005";
+    gittap = "4.5.0";
+    gittip = "9d7eda5ec7367d1682e489e92d1be8e37e459296";
+    rev = "4.5.0";
+    version = "4.5.0";
+    sha256 = "1vnvfgg48bccm41pdyjsql6fy1pymmfnip4w2w56b45d7rqcc3v8";
+    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 = "25024";
+    gittap = "4.5.0";
+    gittip = "9d7eda5ec7367d1682e489e92d1be8e37e459296";
+    rev = "9d7eda5ec7367d1682e489e92d1be8e37e459296";
+    version = "2020-07-17";
+    sha256 = "1vnvfgg48bccm41pdyjsql6fy1pymmfnip4w2w56b45d7rqcc3v8";
+    cs_ver = "4.0.2";
+    cs_sha256 = "0y5g74yjyliciawpn16zhdwya7bd3d7b1cccpcccc2wg8vni1k2w";
   };
   #</generated>
 }
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/tflint/default.nix b/pkgs/development/tools/analysis/tflint/default.nix
index 8ad237bd1d2..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.15.5";
+  version = "0.19.1";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0mdxs019vzpfxaqkw4nb79p3rydril0ihbn55n4yyh0fznv6zzxi";
+    sha256 = "1nj36xxl8zg7wdc36lakzdyr9hk82qwkwrvrw19bqach697y57nf";
   };
 
-  modSha256 = "0ksblhra7ln4ryggr2x8fzl8a7ljz5zdjgdxz82c75wd7wdbw8f5";
+  vendorSha256 = "0bzd58ry5k100mjgvl1mxz7aysm75s4vkilcykrqy1s5sc0h3ng5";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/analysis/tfsec/default.nix b/pkgs/development/tools/analysis/tfsec/default.nix
index 49009570e57..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.19.0";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "liamg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ddyvkv0949p0b6m1rwai5r87mca5xwyjwsjq7gbyqz9h10bv7nf";
+    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 d3b917b0d5d..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,12 @@ 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"
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/tools/azcopy/default.nix b/pkgs/development/tools/azcopy/default.nix
index 87e732e8dc7..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 = [ "." ];
 
-  modSha256 = "02c668bp1pfrd994lhg6z3hm1qg3530nk9aw1cahiwj549vxxfhm";
+  vendorSha256 = "10sxkb2dh1il4ps15dlvq0xsry8hax27imb5qg3khdmjhb4yaj7k";
+
+  doCheck = false;
 
   postInstall = ''
     ln -rs "$out/bin/azure-storage-azcopy" "$out/bin/azcopy"
diff --git a/pkgs/development/tools/bazel-gazelle/default.nix b/pkgs/development/tools/bazel-gazelle/default.nix
index ca2a0ec1e68..a3838283c5e 100644
--- a/pkgs/development/tools/bazel-gazelle/default.nix
+++ b/pkgs/development/tools/bazel-gazelle/default.nix
@@ -5,16 +5,18 @@
 
 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";
   };
 
-  modSha256 = "0bfhy0ig8apxb5qzxjdj6q7jr2i6rdq0ffby0pha8viadah8v2rm";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   subPackages = [ "cmd/gazelle" ];
 
diff --git a/pkgs/development/tools/bazel-kazel/default.nix b/pkgs/development/tools/bazel-kazel/default.nix
new file mode 100644
index 00000000000..4ae2a3e68f9
--- /dev/null
+++ b/pkgs/development/tools/bazel-kazel/default.nix
@@ -0,0 +1,26 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "bazel-kazel";
+  version = "0.0.12";
+
+  src = fetchFromGitHub {
+    owner = "kubernetes";
+    repo = "repo-infra";
+    rev = "v${version}";
+    sha256 = "1mnyp116q54xy7flml4cdcsbczhyyqnpyn2pnqrzy49aahbhpn5z";
+  };
+
+  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/bazel-watcher/default.nix b/pkgs/development/tools/bazel-watcher/default.nix
index 2d9b99a35f8..fae1310bd58 100644
--- a/pkgs/development/tools/bazel-watcher/default.nix
+++ b/pkgs/development/tools/bazel-watcher/default.nix
@@ -1,13 +1,9 @@
 { buildBazelPackage
 , fetchFromGitHub
-, fetchpatch
 , git
 , go
 , python
 , stdenv
-, iana-etc
-, mailcap
-, tzdata
 }:
 
 let
@@ -17,13 +13,13 @@ let
 in
 buildBazelPackage rec {
   name = "bazel-watcher-${version}";
-  version = "0.13.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = "bazel-watcher";
     rev = "v${version}";
-    sha256 = "1fc3sp79znbbq1yjap56lham72n7cap8yfghpzrzmpl5brybjkvm";
+    sha256 = "0n28q27510ymg5d455hrbk7z8wawszgjmqjjhb4zximqhvxks7kh";
   };
 
   nativeBuildInputs = [ go git python ];
@@ -60,7 +56,7 @@ buildBazelPackage rec {
       sed -e '/^FILE:@bazel_gazelle_go_repository_tools.*/d' -i $bazelOut/external/\@*.marker
     '';
 
-    sha256 = "0ili0123xcl0mjcrn4r1r1q9d7a8a3bbh9r3zhlshl39awfm4r2d";
+    sha256 = "0rfdwss8aahydiybwhi3j0qw12j1l91k9lbn1vaip0bmnq5qfwh9";
   };
 
   buildAttrs = {
diff --git a/pkgs/development/tools/bazelisk/default.nix b/pkgs/development/tools/bazelisk/default.nix
index 80ec4c4f448..e639c7ab314 100644
--- a/pkgs/development/tools/bazelisk/default.nix
+++ b/pkgs/development/tools/bazelisk/default.nix
@@ -2,16 +2,20 @@
 
 buildGoModule rec {
   pname = "bazelisk";
-  version = "1.4.0";
+  version = "1.6.1";
+
+  patches = [ ./gomod.patch ];
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14zp0bi0p1rfbx1pxi5y28ndxwbqbvfx0pvy3jh1mnx5qsii1gcq";
+    sha256 = "0g5zwdk7p1snqcbm4w3hsi3fm7sbsijrfj4ajxg7mifywqpmzm2l";
   };
 
-  modSha256 = "1w8k659ifapcxbbim0nf7wd7w10bhlagc33q08izh84gcgsh0yyz";
+  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
new file mode 100644
index 00000000000..0c35004b294
--- /dev/null
+++ b/pkgs/development/tools/bazelisk/gomod.patch
@@ -0,0 +1,12 @@
+diff --git a/go.mod b/go.mod
+index 8eef134..54382cb 100644
+--- a/go.mod
++++ b/go.mod
+@@ -3,6 +3,7 @@ module github.com/bazelbuild/bazelisk
+ go 1.14
+ 
+ require (
++	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/apache-maven/builder.sh b/pkgs/development/tools/build-managers/apache-maven/builder.sh
index 2760bb95fcf..dcc38b9ec74 100644
--- a/pkgs/development/tools/build-managers/apache-maven/builder.sh
+++ b/pkgs/development/tools/build-managers/apache-maven/builder.sh
@@ -6,6 +6,7 @@ mkdir -p $out/maven
 cp -r $name/* $out/maven
 
 makeWrapper $out/maven/bin/mvn $out/bin/mvn --set-default JAVA_HOME "$jdk"
+makeWrapper $out/maven/bin/mvnDebug $out/bin/mvnDebug --set-default JAVA_HOME "$jdk"
 
 # Add the maven-axis and JIRA plugin by default when using maven 1.x
 if [ -e $out/maven/bin/maven ]
diff --git a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
index 6b8269584bd..9910256afc0 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
@@ -64,7 +64,7 @@ buildBazelPackage rec {
       sed -e '/^FILE:@bazel_gazelle_go_repository_tools.*/d' -i $bazelOut/external/\@*.marker
     '';
 
-    sha256 = "1hzb84zxav68ysdwkimaaz0b9rq95k3bgifw01m644v7idabrz50";
+    sha256 = "1m7fmb03lirffxx04ck73bn5zwaji7zdwhlqq8s1c6pgp755d3vi";
   };
 
   buildAttrs = {
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_2/src-deps.json b/pkgs/development/tools/build-managers/bazel/bazel_2/src-deps.json
deleted file mode 100644
index 7517a8c1b95..00000000000
--- a/pkgs/development/tools/build-managers/bazel/bazel_2/src-deps.json
+++ /dev/null
@@ -1,506 +0,0 @@
-{
-    "0.16.2.zip": {
-        "name": "0.16.2.zip",
-        "sha256": "9b72bb0aea72d7cbcfc82a01b1e25bf3d85f791e790ddec16c65e2d906382ee0",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip",
-            "https://github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip"
-        ]
-    },
-    "0.28.3.tar.gz": {
-        "name": "0.28.3.tar.gz",
-        "sha256": "d8c2f20deb2f6143bac792d210db1a4872102d81529fe0ea3476c1696addd7ff",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/0.28.3.tar.gz",
-            "https://github.com/bazelbuild/bazel-toolchains/archive/0.28.3.tar.gz"
-        ]
-    },
-    "46993efdd33b73649796c5fc5c9efb193ae19d51.zip": {
-        "name": "46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
-        "sha256": "66184688debeeefcc2a16a2f80b03f514deac8346fe888fb7e691a52c023dd88",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
-            "https://github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip"
-        ]
-    },
-    "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": {
-        "name": "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
-        "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
-            "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
-        ]
-    },
-    "8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip": {
-        "name": "8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip",
-        "sha256": "1d4dbbd1e1e9b57d40bb0ade51c9e882da7658d5bfbf22bbd15b68e7879d761f",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip",
-            "https://github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip"
-        ]
-    },
-    "8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz": {
-        "name": "8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz",
-        "sha256": "d868ce50d592ef4aad7dec4dd32ae68d2151261913450fac8390b3fd474bb898",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz",
-            "https://github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz"
-        ]
-    },
-    "97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz": {
-        "name": "97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
-        "sha256": "602e7161d9195e50246177e7c55b2f39950a9cf7366f74ed5f22fd45750cd208",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
-            "https://github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz"
-        ]
-    },
-    "android_tools_pkg-0.13.tar.gz": {
-        "name": "android_tools_pkg-0.13.tar.gz",
-        "sha256": "3ca6a5e6576a9cda7c59f5fd33b1fe096725730712057c5893589ac15b019407",
-        "urls": [
-            "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.13.tar.gz"
-        ]
-    },
-    "bazel_j2objc": {
-        "name": "bazel_j2objc",
-        "sha256": "8d3403b5b7db57e347c943d214577f6879e5b175c2b59b7e075c0b6453330e9b",
-        "strip_prefix": "j2objc-2.5",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip",
-            "https://github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip"
-        ]
-    },
-    "bazel_skylib": {
-        "name": "bazel_skylib",
-        "sha256": "ba5d15ca230efca96320085d8e4d58da826d1f81b444ef8afccd8b23e0799b52",
-        "strip_prefix": "bazel-skylib-f83cb8dd6f5658bc574ccd873e25197055265d1c",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz",
-            "https://github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz"
-        ]
-    },
-    "bazel_toolchains": {
-        "name": "bazel_toolchains",
-        "sha256": "d8c2f20deb2f6143bac792d210db1a4872102d81529fe0ea3476c1696addd7ff",
-        "strip_prefix": "bazel-toolchains-0.28.3",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/0.28.3.tar.gz",
-            "https://github.com/bazelbuild/bazel-toolchains/archive/0.28.3.tar.gz"
-        ]
-    },
-    "build_bazel_rules_nodejs": {
-        "name": "build_bazel_rules_nodejs",
-        "sha256": "9b72bb0aea72d7cbcfc82a01b1e25bf3d85f791e790ddec16c65e2d906382ee0",
-        "strip_prefix": "rules_nodejs-0.16.2",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip",
-            "https://github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip"
-        ]
-    },
-    "c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz": {
-        "name": "c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz",
-        "sha256": "e6a76586b264f30679688f65f7e71ac112d1446681010a13bf22d9ca071f34b7",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz",
-            "https://github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz"
-        ]
-    },
-    "com_google_googletest": {
-        "name": "com_google_googletest",
-        "sha256": "9dc9157a9a1551ec7a7e43daea9a694a0bb5fb8bec81235d8a1e6ef64c716dcb",
-        "strip_prefix": "googletest-release-1.10.0",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/googletest/archive/release-1.10.0.tar.gz",
-            "https://github.com/google/googletest/archive/release-1.10.0.tar.gz"
-        ]
-    },
-    "coverage_output_generator-v2.1.zip": {
-        "name": "coverage_output_generator-v2.1.zip",
-        "sha256": "96ac6bc9b9fbc67b532bcae562da1642409791e6a4b8e522f04946ee5cc3ff8e",
-        "urls": [
-            "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.1.zip"
-        ]
-    },
-    "desugar_jdk_libs": {
-        "name": "desugar_jdk_libs",
-        "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
-        "strip_prefix": "desugar_jdk_libs-e0b0291b2c51fbe5a7cfa14473a1ae850f94f021",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
-            "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
-        ]
-    },
-    "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip": {
-        "name": "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
-        "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
-            "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
-        ]
-    },
-    "f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz": {
-        "name": "f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz",
-        "sha256": "ba5d15ca230efca96320085d8e4d58da826d1f81b444ef8afccd8b23e0799b52",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz",
-            "https://github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz"
-        ]
-    },
-    "io_bazel_rules_sass": {
-        "name": "io_bazel_rules_sass",
-        "sha256": "d868ce50d592ef4aad7dec4dd32ae68d2151261913450fac8390b3fd474bb898",
-        "strip_prefix": "rules_sass-8ccf4f1c351928b55d5dddf3672e3667f6978d60",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz",
-            "https://github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz"
-        ]
-    },
-    "io_bazel_skydoc": {
-        "name": "io_bazel_skydoc",
-        "sha256": "e6a76586b264f30679688f65f7e71ac112d1446681010a13bf22d9ca071f34b7",
-        "strip_prefix": "skydoc-c7bbde2950769aac9a99364b0926230060a3ce04",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz",
-            "https://github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz"
-        ]
-    },
-    "java_tools_javac11_darwin-v7.0.zip": {
-        "name": "java_tools_javac11_darwin-v7.0.zip",
-        "sha256": "373a4226906ae9ba908550da16e133c4cd1f01b8973af82b9a2eb6903cb4d645",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v7.0/java_tools_javac11_darwin-v7.0.zip"
-        ]
-    },
-    "java_tools_javac11_linux-v7.0.zip": {
-        "name": "java_tools_javac11_linux-v7.0.zip",
-        "sha256": "3ff465e82954a70f49982610dd63f6f651beaa83c707dd637870b0e41cdcd2f0",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v7.0/java_tools_javac11_linux-v7.0.zip"
-        ]
-    },
-    "java_tools_javac11_windows-v7.0.zip": {
-        "name": "java_tools_javac11_windows-v7.0.zip",
-        "sha256": "11d90a147919e74d11870cdd58c4ee5de3062c08d11b16aa72d3f3bbfa9497a0",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v7.0/java_tools_javac11_windows-v7.0.zip"
-        ]
-    },
-    "java_tools_langtools_javac10": {
-        "name": "java_tools_langtools_javac10",
-        "sha256": "0e9c9ac5ef17869de3cb8c3497c4c0d31836ef7b63efe1690506f53783adb212",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk10_v2.zip"
-        ]
-    },
-    "java_tools_langtools_javac11": {
-        "name": "java_tools_langtools_javac11",
-        "sha256": "cf0814fa002ef3d794582bb086516d8c9ed0958f83f19799cdb08949019fe4c7",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk11_v2.zip"
-        ]
-    },
-    "java_tools_langtools_javac12": {
-        "name": "java_tools_langtools_javac12",
-        "sha256": "99b107105165a91df82cd7cf82a8efb930d803fb7de1663cf7f780142104cd14",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk12.zip"
-        ]
-    },
-    "java_tools_langtools_javac9": {
-        "name": "java_tools_langtools_javac9",
-        "sha256": "d94befcfb325a9a62aebc2052e631fde2322b4df5c82a19ed260b38ba12a0ad1",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk9_v2.zip"
-        ]
-    },
-    "jdk10-server-release-1804.tar.xz": {
-        "name": "jdk10-server-release-1804.tar.xz",
-        "sha256": "b7098b7aaf6ee1ffd4a2d0371a0be26c5a5c87f6aebbe46fe9a92c90583a84be",
-        "urls": [
-            "https://mirror.bazel.build/openjdk.linaro.org/releases/jdk10-server-release-1804.tar.xz"
-        ]
-    },
-    "jdk9-server-release-1708.tar.xz": {
-        "name": "jdk9-server-release-1708.tar.xz",
-        "sha256": "72e7843902b0395e2d30e1e9ad2a5f05f36a4bc62529828bcbc698d54aec6022",
-        "urls": [
-            "https://mirror.bazel.build/openjdk.linaro.org/releases/jdk9-server-release-1708.tar.xz"
-        ]
-    },
-    "openjdk10_linux_archive": {
-        "build_file_content": "java_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])",
-        "name": "openjdk10_linux_archive",
-        "sha256": "b3c2d762091a615b0c1424ebbd05d75cc114da3bf4f25a0dec5c51ea7e84146f",
-        "strip_prefix": "zulu10.2+3-jdk10.0.1-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk11_linux_archive": {
-        "build_file_content": "java_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])",
-        "name": "openjdk11_linux_archive",
-        "sha256": "ddb0fd4526089cf1ce2db36282c282263f587a9e8be373fa02f511a12923cc48",
-        "strip_prefix": "zulu11.31.11-ca-jdk11.0.3-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.31.11-ca-jdk11.0.3/zulu11.31.11-ca-jdk11.0.3-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk12_linux_archive": {
-        "build_file_content": "java_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])",
-        "name": "openjdk12_linux_archive",
-        "sha256": "529c99841d69e11a85aea967ccfb9d0fd40b98c5b68dbe1d059002655e0a9c13",
-        "strip_prefix": "zulu12.2.3-ca-jdk12.0.1-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu12.2.3-ca-jdk12.0.1/zulu12.2.3-ca-jdk12.0.1-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk9_linux_archive": {
-        "build_file_content": "java_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])",
-        "name": "openjdk9_linux_archive",
-        "sha256": "45f2dfbee93b91b1468cf81d843fc6d9a47fef1f831c0b7ceff4f1eb6e6851c8",
-        "strip_prefix": "zulu9.0.7.1-jdk9.0.7-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk_linux": {
-        "downloaded_file_path": "zulu-linux.tar.gz",
-        "name": "openjdk_linux",
-        "sha256": "460d8a4f0c0204160b48086e341b22943c9cca471b195340e75b38ae9eb33c1c",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64-allmodules-90755145cb6e6418584d8603cd5fa9afbb30aecc-1549209950.tar.gz"
-        ]
-    },
-    "openjdk_linux_aarch64": {
-        "downloaded_file_path": "zulu-linux-aarch64.tar.gz",
-        "name": "openjdk_linux_aarch64",
-        "sha256": "23c37c0c3a8fdcbc68e96e70ff5c5c020c14db76deaae9b547849afda4586e5e",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.31.15-ca-jdk11.0.3/zulu11.31.15-ca-jdk11.0.3-linux_aarch64-allmodules-c82eb4878c7dc829455caeb915affe36c89df06f-1561630858.tar.gz"
-        ]
-    },
-    "openjdk_linux_aarch64_minimal": {
-        "downloaded_file_path": "zulu-linux-aarch64-minimal.tar.gz",
-        "name": "openjdk_linux_aarch64_minimal",
-        "sha256": "7af2583fe5ef0a781d4a9dca0c0160d42e7db1305ec1b66f98aa44c91cc875df",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.31.15-ca-jdk11.0.3/zulu11.31.15-ca-jdk11.0.3-linux_aarch64-minimal-c82eb4878c7dc829455caeb915affe36c89df06f-1561630858.tar.gz"
-        ]
-    },
-    "openjdk_linux_aarch64_vanilla": {
-        "downloaded_file_path": "zulu-linux-aarch64-vanilla.tar.gz",
-        "name": "openjdk_linux_aarch64_vanilla",
-        "sha256": "3b0d91611b1bdc4d409afcf9eab4f0e7f4ae09f88fc01bd9f2b48954882ae69b",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.31.15-ca-jdk11.0.3/zulu11.31.15-ca-jdk11.0.3-linux_aarch64.tar.gz"
-        ]
-    },
-    "openjdk_linux_minimal": {
-        "downloaded_file_path": "zulu-linux-minimal.tar.gz",
-        "name": "openjdk_linux_minimal",
-        "sha256": "5123bc8dd21886761d1fd9ca0fb1898b3372d7243064a070ec81ca9c9d1a6791",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64-minimal-524ae2ca2a782c9f15e00f08bd35b3f8ceacbd7f-1556011926.tar.gz"
-        ]
-    },
-    "openjdk_linux_vanilla": {
-        "downloaded_file_path": "zulu-linux-vanilla.tar.gz",
-        "name": "openjdk_linux_vanilla",
-        "sha256": "f3f44b6235508e87b760bf37a49e186cc1fa4e9cd28384c4dbf5a33991921e08",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk_macos": {
-        "downloaded_file_path": "zulu-macos.tar.gz",
-        "name": "openjdk_macos",
-        "sha256": "8fa61d85ca6f657d646fdb50cfc8634987f8f7d8a3250ed39fb7364647633252",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64-allmodules-90755145cb6e6418584d8603cd5fa9afbb30aecc-1549209951.tar.gz"
-        ]
-    },
-    "openjdk_macos_minimal": {
-        "downloaded_file_path": "zulu-macos-minimal.tar.gz",
-        "name": "openjdk_macos_minimal",
-        "sha256": "ac56e44db46fd56ac78b39b6823daed4faa74a2677ac340c7d217f863884ec0f",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64-minimal-524ae2ca2a782c9f15e00f08bd35b3f8ceacbd7f-1556003114.tar.gz"
-        ]
-    },
-    "openjdk_macos_vanilla": {
-        "downloaded_file_path": "zulu-macos-vanilla.tar.gz",
-        "name": "openjdk_macos_vanilla",
-        "sha256": "059f8e3484bf07b63a8f2820d5f528f473eff1befdb1896ee4f8ff06be3b8d8f",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip"
-        ]
-    },
-    "openjdk_win": {
-        "downloaded_file_path": "zulu-win.zip",
-        "name": "openjdk_win",
-        "sha256": "e6ddb361309f8e84eb5fb5ad8b0f5cc031ba3679910139262c31efd8f7579d05",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64-allmodules-90755145cb6e6418584d8603cd5fa9afbb30aecc-1549209972.zip"
-        ]
-    },
-    "openjdk_win_minimal": {
-        "downloaded_file_path": "zulu-win-minimal.zip",
-        "name": "openjdk_win_minimal",
-        "sha256": "8e5dada6e9ebcc9ce29b4d051449bb95d3ee1e620e166da862224bbf15211f8b",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64-minimal-524ae2ca2a782c9f15e00f08bd35b3f8ceacbd7f-1556003136.zip"
-        ]
-    },
-    "openjdk_win_vanilla": {
-        "downloaded_file_path": "zulu-win-vanilla.zip",
-        "name": "openjdk_win_vanilla",
-        "sha256": "e1f5b4ce1b9148140fae2fcfb8a96d1c9b7eac5b8df0e13fbcad9b8561284880",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64.zip"
-        ]
-    },
-    "platforms": {
-        "name": "platforms",
-        "sha256": "66184688debeeefcc2a16a2f80b03f514deac8346fe888fb7e691a52c023dd88",
-        "strip_prefix": "platforms-46993efdd33b73649796c5fc5c9efb193ae19d51",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
-            "https://github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip"
-        ]
-    },
-    "rules_cc": {
-        "name": "rules_cc",
-        "sha256": "1d4dbbd1e1e9b57d40bb0ade51c9e882da7658d5bfbf22bbd15b68e7879d761f",
-        "strip_prefix": "rules_cc-8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip",
-            "https://github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip"
-        ]
-    },
-    "rules_java": {
-        "name": "rules_java",
-        "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
-        "strip_prefix": "rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
-            "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
-        ]
-    },
-    "rules_pkg": {
-        "name": "rules_pkg",
-        "sha256": "5bdc04987af79bd27bc5b00fe30f59a858f77ffa0bd2d8143d5b31ad8b1bd71c",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/rules_pkg-0.2.0.tar.gz",
-            "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.0/rules_pkg-0.2.0.tar.gz"
-        ]
-    },
-    "rules_pkg-0.2.0.tar.gz": {
-        "name": "rules_pkg-0.2.0.tar.gz",
-        "sha256": "5bdc04987af79bd27bc5b00fe30f59a858f77ffa0bd2d8143d5b31ad8b1bd71c",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/rules_pkg-0.2.0.tar.gz",
-            "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.0/rules_pkg-0.2.0.tar.gz"
-        ]
-    },
-    "rules_proto": {
-        "name": "rules_proto",
-        "sha256": "602e7161d9195e50246177e7c55b2f39950a9cf7366f74ed5f22fd45750cd208",
-        "strip_prefix": "rules_proto-97d8af4dc474595af3900dd85cb3a29ad28cc313",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
-            "https://github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz"
-        ]
-    },
-    "zulu10.2+3-jdk10.0.1-linux_x64-allmodules.tar.gz": {
-        "name": "zulu10.2+3-jdk10.0.1-linux_x64-allmodules.tar.gz",
-        "sha256": "57fad3602e74c79587901d6966d3b54ef32cb811829a2552163185d5064fe9b5",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-linux_x64-allmodules.tar.gz"
-        ]
-    },
-    "zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz": {
-        "name": "zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz",
-        "sha256": "e669c9a897413d855b550b4e39d79614392e6fb96f494e8ef99a34297d9d85d3",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz"
-        ]
-    },
-    "zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip": {
-        "name": "zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip",
-        "sha256": "c39e7700a8d41794d60985df5a20352435196e78ecbc6a2b30df7be8637bffd5",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip"
-        ]
-    },
-    "zulu11.2.3-jdk11.0.1-linux_x64.tar.gz": {
-        "name": "zulu11.2.3-jdk11.0.1-linux_x64.tar.gz",
-        "sha256": "232b1c3511f0d26e92582b7c3cc363be7ac633e371854ca2f2e9f2b50eb72a75",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.2.3-jdk11.0.1/zulu11.2.3-jdk11.0.1-linux_x64.tar.gz"
-        ]
-    },
-    "zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz": {
-        "name": "zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz",
-        "sha256": "1edf366ee821e5db8e348152fcb337b28dfd6bf0f97943c270dcc6747cedb6cb",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.2.3-jdk11.0.1/zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz"
-        ]
-    },
-    "zulu11.2.3-jdk11.0.1-win_x64.zip": {
-        "name": "zulu11.2.3-jdk11.0.1-win_x64.zip",
-        "sha256": "8e1e2b8347de6746f3fd1538840dd643201533ab113abc4ed93678e342d28aa3",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.2.3-jdk11.0.1/zulu11.2.3-jdk11.0.1-win_x64.zip"
-        ]
-    },
-    "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz": {
-        "name": "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz",
-        "sha256": "f3f44b6235508e87b760bf37a49e186cc1fa4e9cd28384c4dbf5a33991921e08",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz"
-        ]
-    },
-    "zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip": {
-        "name": "zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip",
-        "sha256": "059f8e3484bf07b63a8f2820d5f528f473eff1befdb1896ee4f8ff06be3b8d8f",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip"
-        ]
-    },
-    "zulu11.29.3-ca-jdk11.0.2-win_x64.zip": {
-        "name": "zulu11.29.3-ca-jdk11.0.2-win_x64.zip",
-        "sha256": "e1f5b4ce1b9148140fae2fcfb8a96d1c9b7eac5b8df0e13fbcad9b8561284880",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64.zip"
-        ]
-    },
-    "zulu11.31.15-ca-jdk11.0.3-linux_aarch64.tar.gz": {
-        "name": "zulu11.31.15-ca-jdk11.0.3-linux_aarch64.tar.gz",
-        "sha256": "3b0d91611b1bdc4d409afcf9eab4f0e7f4ae09f88fc01bd9f2b48954882ae69b",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.31.15-ca-jdk11.0.3/zulu11.31.15-ca-jdk11.0.3-linux_aarch64.tar.gz"
-        ]
-    },
-    "zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz": {
-        "name": "zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz",
-        "sha256": "f27cb933de4f9e7fe9a703486cf44c84bc8e9f138be0c270c9e5716a32367e87",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz"
-        ]
-    },
-    "zulu9.0.7.1-jdk9.0.7-macosx_x64-allmodules.tar.gz": {
-        "name": "zulu9.0.7.1-jdk9.0.7-macosx_x64-allmodules.tar.gz",
-        "sha256": "404e7058ff91f956612f47705efbee8e175a38b505fb1b52d8c1ea98718683de",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-macosx_x64-allmodules.tar.gz"
-        ]
-    },
-    "zulu9.0.7.1-jdk9.0.7-win_x64-allmodules.zip": {
-        "name": "zulu9.0.7.1-jdk9.0.7-win_x64-allmodules.zip",
-        "sha256": "e738829017f107e7a7cd5069db979398ec3c3f03ef56122f89ba38e7374f63ed",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-win_x64-allmodules.zip"
-        ]
-    }
-}
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_2/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
index edda48c4b99..845469e1c7d 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_2/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
@@ -25,11 +25,11 @@
 }:
 
 let
-  version = "2.1.0";
+  version = "3.3.1";
 
   src = fetchurl {
     url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
-    sha256 = "0ijz9lxralyw18r5ra2h79jnafk5521ncr3knaip74cqa28csw9k";
+    sha256 = "0ir796kl8r9hpr3li26qsdy1z2lx2bv82zmk4a2s7q64clyg9wg0";
   };
 
   # Update with `eval $(nix-build -A bazel.updater)`,
@@ -49,12 +49,12 @@ let
       srcs.io_bazel_rules_sass
       srcs.platforms
       (if stdenv.hostPlatform.isDarwin
-       then srcs."java_tools_javac11_darwin-v7.0.zip"
-       else srcs."java_tools_javac11_linux-v7.0.zip")
+       then srcs."java_tools_javac11_darwin-v8.0.zip"
+       else srcs."java_tools_javac11_linux-v8.0.zip")
       srcs."coverage_output_generator-v2.1.zip"
       srcs.build_bazel_rules_nodejs
-      srcs."android_tools_pkg-0.13.tar.gz"
-      srcs."0.28.3.tar.gz"
+      srcs."android_tools_pkg-0.19.0rc1.tar.gz"
+      srcs."bazel-toolchains-3.1.0.tar.gz"
       srcs.rules_pkg
       srcs.rules_cc
       srcs.rules_java
@@ -111,7 +111,7 @@ let
   remote_java_tools = stdenv.mkDerivation {
     name = "remote_java_tools_${system}";
 
-    src = srcDepsSet."java_tools_javac11_${system}-v7.0.zip";
+    src = srcDepsSet."java_tools_javac11_${system}-v8.0.zip";
 
     nativeBuildInputs = [ autoPatchelfHook unzip ];
     buildInputs = [ gcc-unwrapped ];
@@ -157,6 +157,8 @@ stdenv.mkDerivation rec {
   sourceRoot = ".";
 
   patches = [
+    ./python-shebang.patch
+
     # On Darwin, the last argument to gcc is coming up as an empty string. i.e: ''
     # This is breaking the build of any C target. This patch removes the last
     # argument if it's found to be an empty string.
@@ -383,6 +385,10 @@ stdenv.mkDerivation rec {
       sed -i 's|/sbin/md5|md5sum|' \
         src/BUILD
 
+      # replace initial value of pythonShebang variable in BazelPythonSemantics.java
+      substituteInPlace src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java \
+        --replace '"#!/usr/bin/env " + pythonExecutableName' "\"#!${python3}/bin/python\""
+
       # substituteInPlace is rather slow, so prefilter the files with grep
       grep -rlZ /bin src/main/java/com/google/devtools | while IFS="" read -r -d "" path; do
         # If you add more replacements here, you must change the grep above!
@@ -413,6 +419,12 @@ 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')"
@@ -459,6 +471,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
@@ -501,9 +514,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/bazel_3/python-shebang.patch b/pkgs/development/tools/build-managers/bazel/bazel_3/python-shebang.patch
new file mode 100644
index 00000000000..75547264fcc
--- /dev/null
+++ b/pkgs/development/tools/build-managers/bazel/bazel_3/python-shebang.patch
@@ -0,0 +1,20 @@
+--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java	2020-05-25 14:46:01.608403087 +0200
++++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java	2020-05-25 14:50:52.881398320 +0200
+@@ -238,14 +238,15 @@
+         // TODO(#8685): Remove this special-case handling as part of making the proper shebang a
+         // property of the Python toolchain configuration.
+         String pythonExecutableName = OS.getCurrent() == OS.OPENBSD ? "python3" : "python";
++        String pythonShebang = "#!/usr/bin/env " + pythonExecutableName;
+         ruleContext.registerAction(
+             new SpawnAction.Builder()
+                 .addInput(zipFile)
+                 .addOutput(executable)
+                 .setShellCommand(
+                     shExecutable,
+-                    "echo '#!/usr/bin/env "
+-                        + pythonExecutableName
++                    "echo '"
++                        + pythonShebang
+                         + "' | cat - "
+                         + zipFile.getExecPathString()
+                         + " > "
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json b/pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json
new file mode 100644
index 00000000000..4007a77b065
--- /dev/null
+++ b/pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json
@@ -0,0 +1,781 @@
+{
+    "1.25.0.zip": {
+        "name": "1.25.0.zip",
+        "sha256": "c78be58f5e0a29a04686b628cf54faaee0094322ae0ac99da5a8a8afca59a647",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/1.25.0.zip",
+            "https://github.com/bazelbuild/rules_sass/archive/1.25.0.zip"
+        ]
+    },
+    "1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz": {
+        "name": "1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz",
+        "sha256": "5a725b777976b77aa122b707d1b6f0f39b6020f66cd427bb111a585599c857b1",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz",
+            "https://github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz"
+        ]
+    },
+    "2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz": {
+        "name": "2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz",
+        "sha256": "c00ceec469dbcf7929972e3c79f20c14033824538038a554952f5c31d8832f96",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/archive/2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz",
+            "https://github.com/bazelbuild/bazel-skylib/archive/2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz"
+        ]
+    },
+    "46993efdd33b73649796c5fc5c9efb193ae19d51.zip": {
+        "name": "46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
+        "sha256": "66184688debeeefcc2a16a2f80b03f514deac8346fe888fb7e691a52c023dd88",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
+            "https://github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip"
+        ]
+    },
+    "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": {
+        "name": "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+        "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+            "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
+        ]
+    },
+    "8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip": {
+        "name": "8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip",
+        "sha256": "1d4dbbd1e1e9b57d40bb0ade51c9e882da7658d5bfbf22bbd15b68e7879d761f",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip",
+            "https://github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip"
+        ]
+    },
+    "97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz": {
+        "name": "97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
+        "sha256": "602e7161d9195e50246177e7c55b2f39950a9cf7366f74ed5f22fd45750cd208",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
+            "https://github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz"
+        ]
+    },
+    "android_tools_for_testing": {
+        "name": "android_tools_for_testing",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "761e997a9055fe5e2b70aba8d64e78d4c2113feafaa8ac81909cb63e403f3087",
+        "url": "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.19.0rc1.tar.gz"
+    },
+    "android_tools_pkg-0.19.0rc1.tar.gz": {
+        "name": "android_tools_pkg-0.19.0rc1.tar.gz",
+        "sha256": "761e997a9055fe5e2b70aba8d64e78d4c2113feafaa8ac81909cb63e403f3087",
+        "urls": [
+            "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.19.0rc1.tar.gz"
+        ]
+    },
+    "bazel-toolchains-3.1.0.tar.gz": {
+        "name": "bazel-toolchains-3.1.0.tar.gz",
+        "sha256": "726b5423e1c7a3866a3a6d68e7123b4a955e9fcbe912a51e0f737e6dab1d0af2",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz",
+            "https://github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz"
+        ]
+    },
+    "bazel_j2objc": {
+        "name": "bazel_j2objc",
+        "sha256": "8d3403b5b7db57e347c943d214577f6879e5b175c2b59b7e075c0b6453330e9b",
+        "strip_prefix": "j2objc-2.5",
+        "urls": [
+            "https://mirror.bazel.build/github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip",
+            "https://github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip"
+        ]
+    },
+    "bazel_skylib": {
+        "name": "bazel_skylib",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "c00ceec469dbcf7929972e3c79f20c14033824538038a554952f5c31d8832f96",
+        "strip_prefix": "bazel-skylib-2d4c9528e0f453b5950eeaeac11d8d09f5a504d4",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/archive/2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz",
+            "https://github.com/bazelbuild/bazel-skylib/archive/2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz"
+        ]
+    },
+    "bazel_toolchains": {
+        "name": "bazel_toolchains",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "726b5423e1c7a3866a3a6d68e7123b4a955e9fcbe912a51e0f737e6dab1d0af2",
+        "strip_prefix": "bazel-toolchains-3.1.0",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz",
+            "https://github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz"
+        ]
+    },
+    "bazel_website": {
+        "build_file_content": "\nexports_files([\"_sass/style.scss\"])\n",
+        "name": "bazel_website",
+        "sha256": "a5f531dd1d62e6947dcfc279656ffc2fdf6f447c163914c5eabf7961b4cb6eb4",
+        "strip_prefix": "bazel-website-c174fa288aa079b68416d2ce2cc97268fa172f42",
+        "urls": [
+            "https://github.com/bazelbuild/bazel-website/archive/c174fa288aa079b68416d2ce2cc97268fa172f42.tar.gz"
+        ]
+    },
+    "build_bazel_rules_nodejs": {
+        "name": "build_bazel_rules_nodejs",
+        "sha256": "b6670f9f43faa66e3009488bbd909bc7bc46a5a9661a33f6bc578068d1837f37",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/releases/download/1.3.0/rules_nodejs-1.3.0.tar.gz",
+            "https://github.com/bazelbuild/rules_nodejs/releases/download/1.3.0/rules_nodejs-1.3.0.tar.gz"
+        ]
+    },
+    "com_google_googletest": {
+        "name": "com_google_googletest",
+        "sha256": "9dc9157a9a1551ec7a7e43daea9a694a0bb5fb8bec81235d8a1e6ef64c716dcb",
+        "strip_prefix": "googletest-release-1.10.0",
+        "urls": [
+            "https://mirror.bazel.build/github.com/google/googletest/archive/release-1.10.0.tar.gz",
+            "https://github.com/google/googletest/archive/release-1.10.0.tar.gz"
+        ]
+    },
+    "com_google_protobuf": {
+        "name": "com_google_protobuf",
+        "patch_args": [
+            "-p1"
+        ],
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "patches": [
+            "//third_party/protobuf:3.11.3.patch"
+        ],
+        "sha256": "cf754718b0aa945b00550ed7962ddc167167bd922b842199eeb6505e6f344852",
+        "strip_prefix": "protobuf-3.11.3",
+        "urls": [
+            "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.11.3.tar.gz",
+            "https://github.com/protocolbuffers/protobuf/archive/v3.11.3.tar.gz"
+        ]
+    },
+    "coverage_output_generator-v2.1.zip": {
+        "name": "coverage_output_generator-v2.1.zip",
+        "sha256": "96ac6bc9b9fbc67b532bcae562da1642409791e6a4b8e522f04946ee5cc3ff8e",
+        "urls": [
+            "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.1.zip"
+        ]
+    },
+    "desugar_jdk_libs": {
+        "name": "desugar_jdk_libs",
+        "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
+        "strip_prefix": "desugar_jdk_libs-e0b0291b2c51fbe5a7cfa14473a1ae850f94f021",
+        "urls": [
+            "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
+            "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
+        ]
+    },
+    "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip": {
+        "name": "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
+        "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
+        "urls": [
+            "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
+            "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
+        ]
+    },
+    "io_bazel_rules_sass": {
+        "name": "io_bazel_rules_sass",
+        "sha256": "c78be58f5e0a29a04686b628cf54faaee0094322ae0ac99da5a8a8afca59a647",
+        "strip_prefix": "rules_sass-1.25.0",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/1.25.0.zip",
+            "https://github.com/bazelbuild/rules_sass/archive/1.25.0.zip"
+        ]
+    },
+    "io_bazel_skydoc": {
+        "name": "io_bazel_skydoc",
+        "sha256": "5a725b777976b77aa122b707d1b6f0f39b6020f66cd427bb111a585599c857b1",
+        "strip_prefix": "stardoc-1ef781ced3b1443dca3ed05dec1989eca1a4e1cd",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz",
+            "https://github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz"
+        ]
+    },
+    "java_tools_javac11_darwin-v8.0.zip": {
+        "name": "java_tools_javac11_darwin-v8.0.zip",
+        "sha256": "e0291e8956ac295143da4a673ca50727f7376665ee82b649a4ee810b64ff76c1",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_darwin-v8.0.zip"
+        ]
+    },
+    "java_tools_javac11_linux-v8.0.zip": {
+        "name": "java_tools_javac11_linux-v8.0.zip",
+        "sha256": "c24aef916cc5a8e9f6d53db1f93c54fe5790a58996a1099592e1dfe992acc81e",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_linux-v8.0.zip"
+        ]
+    },
+    "java_tools_javac11_windows-v8.0.zip": {
+        "name": "java_tools_javac11_windows-v8.0.zip",
+        "sha256": "444c391977e50af4e10549a28d021069d2ca7745a0e7b9b968a7b153fe3ea430",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_windows-v8.0.zip"
+        ]
+    },
+    "java_tools_langtools_javac11": {
+        "name": "java_tools_langtools_javac11",
+        "sha256": "cf0814fa002ef3d794582bb086516d8c9ed0958f83f19799cdb08949019fe4c7",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk11_v2.zip"
+        ]
+    },
+    "java_tools_langtools_javac12": {
+        "name": "java_tools_langtools_javac12",
+        "sha256": "99b107105165a91df82cd7cf82a8efb930d803fb7de1663cf7f780142104cd14",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk12.zip"
+        ]
+    },
+    "openjdk11_darwin_archive": {
+        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+        "name": "openjdk11_darwin_archive",
+        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
+        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-macosx_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
+        ]
+    },
+    "openjdk11_linux_archive": {
+        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+        "name": "openjdk11_linux_archive",
+        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
+        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-linux_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
+        ]
+    },
+    "openjdk11_windows_archive": {
+        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+        "name": "openjdk11_windows_archive",
+        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
+        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-win_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
+        ]
+    },
+    "openjdk12_darwin_archive": {
+        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+        "name": "openjdk12_darwin_archive",
+        "sha256": "67ca9d285056132ebb19fa237a14affda52132142e1171fe1c20e18974b3b8a5",
+        "strip_prefix": "zulu12.2.3-ca-jdk12.0.1-macosx_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu12.2.3-ca-jdk12.0.1/zulu12.2.3-ca-jdk12.0.1-macosx_x64.tar.gz"
+        ]
+    },
+    "openjdk12_linux_archive": {
+        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+        "name": "openjdk12_linux_archive",
+        "sha256": "529c99841d69e11a85aea967ccfb9d0fd40b98c5b68dbe1d059002655e0a9c13",
+        "strip_prefix": "zulu12.2.3-ca-jdk12.0.1-linux_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu12.2.3-ca-jdk12.0.1/zulu12.2.3-ca-jdk12.0.1-linux_x64.tar.gz"
+        ]
+    },
+    "openjdk12_windows_archive": {
+        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+        "name": "openjdk12_windows_archive",
+        "sha256": "cf28404c23c3aa1115363ba6e796c30580a768e1d7d6681a7d053e516008e00d",
+        "strip_prefix": "zulu12.2.3-ca-jdk12.0.1-win_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu12.2.3-ca-jdk12.0.1/zulu12.2.3-ca-jdk12.0.1-win_x64.zip"
+        ]
+    },
+    "openjdk_linux": {
+        "downloaded_file_path": "zulu-linux.tar.gz",
+        "name": "openjdk_linux",
+        "sha256": "65bfe4e0ffa74a680ee4410db46b17e30cd9397b664a92a886599fe1f3530969",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64-linux_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689070.tar.gz"
+        ]
+    },
+    "openjdk_linux_aarch64": {
+        "downloaded_file_path": "zulu-linux-aarch64.tar.gz",
+        "name": "openjdk_linux_aarch64",
+        "sha256": "6b245793087300db3ee82ab0d165614f193a73a60f2f011e347756c1e6ca5bac",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581690750.tar.gz"
+        ]
+    },
+    "openjdk_linux_aarch64_minimal": {
+        "downloaded_file_path": "zulu-linux-aarch64-minimal.tar.gz",
+        "name": "openjdk_linux_aarch64_minimal",
+        "sha256": "06f6520a877704c77614bcfc4f846cc7cbcbf5eaad149bf7f19f4f16e285c9de",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581690750.tar.gz"
+        ]
+    },
+    "openjdk_linux_aarch64_vanilla": {
+        "downloaded_file_path": "zulu-linux-aarch64-vanilla.tar.gz",
+        "name": "openjdk_linux_aarch64_vanilla",
+        "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
+        ]
+    },
+    "openjdk_linux_minimal": {
+        "downloaded_file_path": "zulu-linux-minimal.tar.gz",
+        "name": "openjdk_linux_minimal",
+        "sha256": "91f7d52f695c681d4e21499b4319d548aadef249a6b3053e306308992e1e29ae",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689068.tar.gz"
+        ]
+    },
+    "openjdk_linux_ppc64le_vanilla": {
+        "downloaded_file_path": "adoptopenjdk-ppc64le-vanilla.tar.gz",
+        "name": "openjdk_linux_ppc64le_vanilla",
+        "sha256": "a417db0295b1f4b538ecbaf7c774f3a177fab9657a665940170936c0eca4e71a",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz",
+            "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz"
+        ]
+    },
+    "openjdk_linux_vanilla": {
+        "downloaded_file_path": "zulu-linux-vanilla.tar.gz",
+        "name": "openjdk_linux_vanilla",
+        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
+        ]
+    },
+    "openjdk_macos": {
+        "downloaded_file_path": "zulu-macos.tar.gz",
+        "name": "openjdk_macos",
+        "sha256": "8e283cfd23c7555be8e17295ed76eb8f00324c88ab904b8de37bbe08f90e569b",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689066.tar.gz"
+        ]
+    },
+    "openjdk_macos_minimal": {
+        "downloaded_file_path": "zulu-macos-minimal.tar.gz",
+        "name": "openjdk_macos_minimal",
+        "sha256": "1bacb1c07035d4066d79f0b65b4ea0ebd1954f3662bdfe3618da382ac8fd23a6",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689063.tar.gz"
+        ]
+    },
+    "openjdk_macos_vanilla": {
+        "downloaded_file_path": "zulu-macos-vanilla.tar.gz",
+        "name": "openjdk_macos_vanilla",
+        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
+        ]
+    },
+    "openjdk_win": {
+        "downloaded_file_path": "zulu-win.zip",
+        "name": "openjdk_win",
+        "sha256": "8e1604b3a27dcf639bc6d1a73103f1211848139e4cceb081d0a74a99e1e6f995",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689080.zip"
+        ]
+    },
+    "openjdk_win_minimal": {
+        "downloaded_file_path": "zulu-win-minimal.zip",
+        "name": "openjdk_win_minimal",
+        "sha256": "b90a713c9c2d9ea23cad44d2c2dfcc9af22faba9bde55dedc1c3bb9f556ac1ae",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689080.zip"
+        ]
+    },
+    "openjdk_win_vanilla": {
+        "downloaded_file_path": "zulu-win-vanilla.zip",
+        "name": "openjdk_win_vanilla",
+        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
+        ]
+    },
+    "platforms": {
+        "name": "platforms",
+        "sha256": "66184688debeeefcc2a16a2f80b03f514deac8346fe888fb7e691a52c023dd88",
+        "strip_prefix": "platforms-46993efdd33b73649796c5fc5c9efb193ae19d51",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
+            "https://github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip"
+        ]
+    },
+    "remote_coverage_tools_for_testing": {
+        "name": "remote_coverage_tools_for_testing",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "96ac6bc9b9fbc67b532bcae562da1642409791e6a4b8e522f04946ee5cc3ff8e",
+        "urls": [
+            "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.1.zip"
+        ]
+    },
+    "remote_java_tools_darwin_for_testing": {
+        "name": "remote_java_tools_darwin_for_testing",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "e0291e8956ac295143da4a673ca50727f7376665ee82b649a4ee810b64ff76c1",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_darwin-v8.0.zip",
+            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v8.0/java_tools_javac11_darwin-v8.0.zip"
+        ]
+    },
+    "remote_java_tools_javac11_test_darwin": {
+        "name": "remote_java_tools_javac11_test_darwin",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "e0291e8956ac295143da4a673ca50727f7376665ee82b649a4ee810b64ff76c1",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_darwin-v8.0.zip"
+        ]
+    },
+    "remote_java_tools_javac11_test_linux": {
+        "name": "remote_java_tools_javac11_test_linux",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "c24aef916cc5a8e9f6d53db1f93c54fe5790a58996a1099592e1dfe992acc81e",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_linux-v8.0.zip"
+        ]
+    },
+    "remote_java_tools_javac11_test_windows": {
+        "name": "remote_java_tools_javac11_test_windows",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "444c391977e50af4e10549a28d021069d2ca7745a0e7b9b968a7b153fe3ea430",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_windows-v8.0.zip"
+        ]
+    },
+    "remote_java_tools_javac12_test_darwin": {
+        "name": "remote_java_tools_javac12_test_darwin",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "54df966e7583bafe659e39b4103a4ce934201d969de638d071ada07d8e0c1a3a",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac12/v3.0/java_tools_javac12_darwin-v3.0.zip"
+        ]
+    },
+    "remote_java_tools_javac12_test_linux": {
+        "name": "remote_java_tools_javac12_test_linux",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "3997ee9a57b095748f1c0d084839fab2fbc72504aeb7b37b1f71c31738d330e3",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac12/v3.0/java_tools_javac12_linux-v3.0.zip"
+        ]
+    },
+    "remote_java_tools_javac12_test_windows": {
+        "name": "remote_java_tools_javac12_test_windows",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "cfad1718dad1fed12816748eed27ab30b9ea1268c8ce9940acf3b5b7d82d483d",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac12/v3.0/java_tools_javac12_windows-v3.0.zip"
+        ]
+    },
+    "remote_java_tools_linux_for_testing": {
+        "name": "remote_java_tools_linux_for_testing",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "c24aef916cc5a8e9f6d53db1f93c54fe5790a58996a1099592e1dfe992acc81e",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_linux-v8.0.zip",
+            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v8.0/java_tools_javac11_linux-v8.0.zip"
+        ]
+    },
+    "remote_java_tools_windows_for_testing": {
+        "name": "remote_java_tools_windows_for_testing",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "444c391977e50af4e10549a28d021069d2ca7745a0e7b9b968a7b153fe3ea430",
+        "urls": [
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_windows-v8.0.zip",
+            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v8.0/java_tools_javac11_windows-v8.0.zip"
+        ]
+    },
+    "remotejdk11_linux_aarch64_for_testing": {
+        "build_file": "@local_jdk//:BUILD.bazel",
+        "name": "remotejdk11_linux_aarch64_for_testing",
+        "patch_cmds": [
+            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+            "echo >> BUILD.bazel",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
+        "strip_prefix": "zulu11.37.48-ca-jdk11.0.6-linux_aarch64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
+        ]
+    },
+    "remotejdk11_linux_for_testing": {
+        "build_file": "@local_jdk//:BUILD.bazel",
+        "name": "remotejdk11_linux_for_testing",
+        "patch_cmds": [
+            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+            "echo >> BUILD.bazel",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
+        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-linux_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
+        ]
+    },
+    "remotejdk11_linux_ppc64le_for_testing": {
+        "build_file": "@local_jdk//:BUILD.bazel",
+        "name": "remotejdk11_linux_ppc64le_for_testing",
+        "patch_cmds": [
+            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+            "echo >> BUILD.bazel",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "a417db0295b1f4b538ecbaf7c774f3a177fab9657a665940170936c0eca4e71a",
+        "strip_prefix": "jdk-11.0.7+10",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz",
+            "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz"
+        ]
+    },
+    "remotejdk11_macos_for_testing": {
+        "build_file": "@local_jdk//:BUILD.bazel",
+        "name": "remotejdk11_macos_for_testing",
+        "patch_cmds": [
+            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+            "echo >> BUILD.bazel",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
+        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-macosx_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
+        ]
+    },
+    "remotejdk11_win_for_testing": {
+        "build_file": "@local_jdk//:BUILD.bazel",
+        "name": "remotejdk11_win_for_testing",
+        "patch_cmds": [
+            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+            "echo >> BUILD.bazel",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
+        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-win_x64",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
+        ]
+    },
+    "rules_cc": {
+        "name": "rules_cc",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "1d4dbbd1e1e9b57d40bb0ade51c9e882da7658d5bfbf22bbd15b68e7879d761f",
+        "strip_prefix": "rules_cc-8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip",
+            "https://github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip"
+        ]
+    },
+    "rules_java": {
+        "name": "rules_java",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
+        "strip_prefix": "rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+            "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
+        ]
+    },
+    "rules_nodejs-1.3.0.tar.gz": {
+        "name": "rules_nodejs-1.3.0.tar.gz",
+        "sha256": "b6670f9f43faa66e3009488bbd909bc7bc46a5a9661a33f6bc578068d1837f37",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/releases/download/1.3.0/rules_nodejs-1.3.0.tar.gz",
+            "https://github.com/bazelbuild/rules_nodejs/releases/download/1.3.0/rules_nodejs-1.3.0.tar.gz"
+        ]
+    },
+    "rules_pkg": {
+        "name": "rules_pkg",
+        "patch_cmds": [
+            "test -f BUILD && chmod u+w BUILD || true",
+            "echo >> BUILD",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "4ba8f4ab0ff85f2484287ab06c0d871dcb31cc54d439457d28fd4ae14b18450a",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz",
+            "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz"
+        ]
+    },
+    "rules_pkg-0.2.4.tar.gz": {
+        "name": "rules_pkg-0.2.4.tar.gz",
+        "sha256": "4ba8f4ab0ff85f2484287ab06c0d871dcb31cc54d439457d28fd4ae14b18450a",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz",
+            "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz"
+        ]
+    },
+    "rules_proto": {
+        "name": "rules_proto",
+        "patch_cmds": [
+            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+            "echo >> BUILD.bazel",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "602e7161d9195e50246177e7c55b2f39950a9cf7366f74ed5f22fd45750cd208",
+        "strip_prefix": "rules_proto-97d8af4dc474595af3900dd85cb3a29ad28cc313",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
+            "https://github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz"
+        ]
+    },
+    "v3.11.3.tar.gz": {
+        "name": "v3.11.3.tar.gz",
+        "sha256": "cf754718b0aa945b00550ed7962ddc167167bd922b842199eeb6505e6f344852",
+        "urls": [
+            "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.11.3.tar.gz",
+            "https://github.com/protocolbuffers/protobuf/archive/v3.11.3.tar.gz"
+        ]
+    },
+    "zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz": {
+        "name": "zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz",
+        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
+        ]
+    },
+    "zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz": {
+        "name": "zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz",
+        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
+        ]
+    },
+    "zulu11.37.17-ca-jdk11.0.6-win_x64.zip": {
+        "name": "zulu11.37.17-ca-jdk11.0.6-win_x64.zip",
+        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
+        ]
+    },
+    "zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz": {
+        "name": "zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz",
+        "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
+        ]
+    }
+}
diff --git a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
index 004d0f732ff..dd9bc4016f5 100644
--- a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "bazel-buildtools";
-  version = "2.2.1";
+  version = "3.3.0";
 
   goPackagePath = "github.com/bazelbuild/buildtools";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "bazelbuild";
     repo = "buildtools";
     rev = version;
-    sha256 = "165jvn7r7bxivb8mpvp6dni5a5ns9a3vm6y5clyxdbjhfkll8wra";
+    sha256 = "0g411gjbm02qd5b50iy6kk81kx2n5zw5x1m6i6g7nrmh38p3pn9k";
   };
 
   goDeps = ./deps.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/bazel/update-srcDeps.py b/pkgs/development/tools/build-managers/bazel/update-srcDeps.py
index 504a227b958..52d40e0f94e 100755
--- a/pkgs/development/tools/build-managers/bazel/update-srcDeps.py
+++ b/pkgs/development/tools/build-managers/bazel/update-srcDeps.py
@@ -35,6 +35,7 @@ def list_source_repository(**kw): pass
 def new_local_repository(**kw): pass
 def local_repository(**kw): pass
 DOC_VERSIONS = []
+def stardoc_repositories(**kw): pass
 def skydoc_repositories(**kw): pass
 def rules_sass_dependencies(**kw): pass
 def node_repositories(**kw): pass
@@ -45,6 +46,7 @@ def rules_pkg_dependencies(*args, **kw): pass
 def winsdk_configure(*args, **kw): pass
 def register_local_rc_exe_toolchains(*args, **kw): pass
 def register_toolchains(*args, **kw): pass
+def debian_deps(): pass
 
 # execute the WORKSPACE like it was python code in this module,
 # using all the function stubs from above.
diff --git a/pkgs/development/tools/build-managers/bloop/default.nix b/pkgs/development/tools/build-managers/bloop/default.nix
index 51ca62d0520..dd1342a37de 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.3";
+
+  bloop-coursier-channel = fetchurl {
+    url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-coursier.json";
+    sha256 = "0abl91l2sb08pwr98mw910zibzwk6lss9r62h2s3g7qnnxp3z59r";
+  };
 
-    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 "1ncl34f39mvk0zb5jl1l77cwjdg3xfnhjxbzz11pdfqw0d7wqywj"
+                     else if stdenv.isDarwin && stdenv.isx86_64 then "06c885w088yvh8l1r1jbrz0549gx2xvc8xr6rlxy6y27jk5655p2"
+                     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 7550068274c..219bd6e30e3 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 = "20200402";
+  version = "20200710";
 
   src = fetchurl {
     url    = "http://www.crufty.net/ftp/pub/sjg/${pname}-${version}.tar.gz";
-    sha256 = "0a49pfmbqb3g1h2r2vwbcb4hdyygq1g9n5y7qab37slfml2g45fg";
+    sha256 = "0v5paqdc0wnqlw4dy45mnydkmabsky33nvd7viwd2ygg351zqf35";
   };
 
   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 756e0cf7100..be9645453e3 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.2";
+  version = "3.18.1";
 
   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 = "199srp8yfai51pcbpmfyc4s8vzrmh2dm91bp582hj2l29x634xzw";
+    sha256 = "0215srmc9l7ygwdpfms8yx0wbd96qgz2d58ykmdiarvysf5k7qy0";
   };
 
   patches = [
@@ -37,6 +37,12 @@ stdenv.mkDerivation rec {
     # Derived from https://github.com/libuv/libuv/commit/1a5d4f08238dd532c3718e210078de1186a5920d
     ./libuv-application-services.patch
 
+    # TODO: Remove this patch for a regression once CMake 3.18.2 is out:
+    (fetchpatch { # PCH: Avoid Apple-specific architecture flags on other platforms
+      url = "https://gitlab.kitware.com/cmake/cmake/-/commit/70ce1ad64a04a244bb1c03753da0752c61fc3a37.patch";
+      sha256 = "0jcdgv48j0dd4nlhyy3j0s3h6bcbrq2yg1mdhpgfqrb2y3p91fky";
+    })
+
   ] ++ lib.optional stdenv.isCygwin ./3.2.2-cygwin.patch;
 
   outputs = [ "out" ];
@@ -63,14 +69,21 @@ stdenv.mkDerivation rec {
       --subst-var-by libc_lib ${lib.getLib stdenv.cc.libc}
     substituteInPlace Modules/FindCxxTest.cmake \
       --replace "$""{PYTHON_EXECUTABLE}" ${stdenv.shell}
-    # BUILD_CC and BUILD_CXX are used to bootstrap cmake
-    configureFlags="--parallel=''${NIX_BUILD_CORES:-1} CC=$BUILD_CC CXX=$BUILD_CXX $configureFlags"
+  ''
+  # CC_FOR_BUILD and CXX_FOR_BUILD are used to bootstrap cmake
+  + ''
+    configureFlags="--parallel=''${NIX_BUILD_CORES:-1} CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD $configureFlags"
   '';
 
   configureFlags = [
     "--docdir=share/doc/${pname}${version}"
   ] ++ (if useSharedLibraries then [ "--no-system-jsoncpp" "--system-libs" ] else [ "--no-system-libs" ]) # FIXME: cleanup
     ++ lib.optional (useQt4 || withQt5) "--qt-gui"
+    # Workaround https://gitlab.kitware.com/cmake/cmake/-/issues/20568
+    ++ lib.optionals stdenv.hostPlatform.is32bit [
+      "CFLAGS=-D_FILE_OFFSET_BITS=64"
+      "CXXFLAGS=-D_FILE_OFFSET_BITS=64"
+    ]
     ++ [
     "--"
     # We should set the proper `CMAKE_SYSTEM_NAME`.
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..6ae560c5645 100755
--- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
@@ -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/colormake/default.nix b/pkgs/development/tools/build-managers/colormake/default.nix
index 99ed58324af..7eed8806955 100644
--- a/pkgs/development/tools/build-managers/colormake/default.nix
+++ b/pkgs/development/tools/build-managers/colormake/default.nix
@@ -1,13 +1,14 @@
-{stdenv, fetchgit, perl}:
+{ stdenv, fetchFromGitHub, perl }:
 
 stdenv.mkDerivation {
   pname = "colormake";
   version = "2.1.0";
 
-  buildInputs = [perl];
+  buildInputs = [ perl ];
 
-  src = fetchgit {
-    url = "https://github.com/pagekite/Colormake.git";
+  src = fetchFromGitHub {
+    owner = "pagekite";
+    repo = "Colormake";
     rev = "66544f40d";
     sha256 = "8e714c5540305d169989d9387dbac47b8b9fb2cfb424af7bcd412bfe684dc6d7";
   };
@@ -17,9 +18,11 @@ stdenv.mkDerivation {
     cp -fa colormake.pl colormake colormake-short clmake clmake-short $out/bin
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Simple wrapper around make to colorize the output";
-    license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.unix;
+    homepage = "https://bre.klaki.net/programs/colormake/";
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ bhipple ];
   };
 }
diff --git a/pkgs/development/tools/build-managers/conan/default.nix b/pkgs/development/tools/build-managers/conan/default.nix
index d7aec3527b3..e09277e498d 100644
--- a/pkgs/development/tools/build-managers/conan/default.nix
+++ b/pkgs/development/tools/build-managers/conan/default.nix
@@ -1,4 +1,4 @@
-{ lib, python3, git, pkgconfig }:
+{ lib, python3, fetchFromGitHub, git, pkgconfig }:
 
 # Note:
 # Conan has specific dependency demands; check
@@ -39,12 +39,14 @@ let newPython = python3.override {
 };
 
 in newPython.pkgs.buildPythonApplication rec {
-  version = "1.25.0";
+  version = "1.27.0";
   pname = "conan";
 
-  src = newPython.pkgs.fetchPypi {
-    inherit pname version;
-    sha256 = "1wgmx6s4h5m6zixb3wlaicy56rsqcy2srzmvii80xdx9g5wvi9pv";
+  src = fetchFromGitHub {
+    owner = "conan-io";
+    repo = "conan";
+    rev = version;
+    sha256 = "0ncqs1p4g23fmzgdmwppgxr8w275h38hgjdzs456cgivz8xs9rjl";
   };
 
   propagatedBuildInputs = with newPython.pkgs; [
@@ -75,23 +77,20 @@ in newPython.pkgs.buildPythonApplication rec {
   ] ++ (with newPython.pkgs; [
     codecov
     mock
-    pytest
-    node-semver
     nose
     parameterized
     webtest
   ]);
 
-  # Conan 1.14.0 has removed all tests from the Pypi source dist:
-  #     https://github.com/conan-io/conan/pull/4713
-  # We have recommended they be added back:
-  #     https://github.com/conan-io/conan/issues/4563#issuecomment-602225083
+  # TODO: reenable tests now that we fetch tests w/ the source from GitHub.
+  # Not enabled right now due to time constraints/failing tests that I didn't have time to track down
   doCheck = false;
 
   postPatch = ''
     substituteInPlace conans/requirements.txt \
       --replace "PyYAML>=3.11, <3.14.0" "PyYAML" \
-      --replace "deprecation>=2.0, <2.1" "deprecation"
+      --replace "deprecation>=2.0, <2.1" "deprecation" \
+      --replace "six>=1.10.0,<=1.14.0" "six"
   '';
 
   meta = with lib; {
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 37cea6adb1a..6c9d8bfc838 100644
--- a/pkgs/development/tools/build-managers/mage/default.nix
+++ b/pkgs/development/tools/build-managers/mage/default.nix
@@ -2,16 +2,18 @@
 
 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";
   };
 
-  modSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
+  vendorSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
+
+  doCheck = false;
 
   buildFlagsArray = [
     "-ldflags="
@@ -25,6 +27,5 @@ buildGoModule rec {
     homepage = "https://magefile.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ swdunlop ];
-    platforms = platforms.all;
   };
 }
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..0a52fe60e9d
--- /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 77ac03d66..d12f77592 100644
+--- a/mesonbuild/scripts/depfixer.py
++++ b/mesonbuild/scripts/depfixer.py
+@@ -337,6 +337,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 a2dc1424d65..a1c94fa1fce 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.1";
+  version = "0.55.0";
 
-  src = python3Packages.fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "L3b7RXJ2K+E+5HkpJhAJG0UJr1eIvM6zkf4iK80Cltw=";
+    sha256 = "Chriv+KuFKxHWTU3+TKQ+3npt3XFW0xTwoK8PKN0WzU=";
   };
 
-  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;
@@ -63,11 +67,27 @@ python3Packages.buildPythonApplication rec {
   # workaround until https://github.com/mesonbuild/meson/pull/6512 lands.
   depsHostHostPropagated = [ pkgsHostHost.stdenv.cc ];
 
+  pythonPath = [
+    python3.pkgs.setuptools # for pkg_resources
+  ];
+
   # 0.45 update enabled tests but they are failing
   doCheck = false;
   # 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..c98506fcd9b 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
+@@ -453,6 +453,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')
+         for arg in args:
+             if arg.startswith('-Wl,-rpath='):
+                 for dir in arg.replace('-Wl,-rpath=','').split(':'):
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 a8f860f03cc..6326f5ec3cf 100644
--- a/pkgs/development/tools/build-managers/meson/more-env-vars.patch
+++ b/pkgs/development/tools/build-managers/meson/more-env-vars.patch
@@ -1,16 +1,13 @@
 diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
-index ac13a710..e0d07c51 100644
+index 17058df6b..7a68b7f15 100644
 --- a/mesonbuild/envconfig.py
 +++ b/mesonbuild/envconfig.py
-@@ -119,9 +119,9 @@ def get_env_var_pair(for_machine: MachineChoice,
+@@ -120,7 +120,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.
 -        ([var_name + '_FOR_BUILD'] if is_cross else [var_name]),
 +        [var_name + '_FOR_BUILD'] + ([] if is_cross else [var_name]),
          # Always just the unprefixed host verions
--        ([] if is_cross else [var_name]),
-+        [var_name],
+         [var_name]
      )[for_machine]
-     for var in candidates:
-         value = os.environ.get(var)
diff --git a/pkgs/development/tools/build-managers/mill/default.nix b/pkgs/development/tools/build-managers/mill/default.nix
index 0e7a4f3d979..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.6.2";
+  version = "0.8.0";
 
   src = fetchurl {
     url = "https://github.com/lihaoyi/mill/releases/download/${version}/${version}";
-    sha256 = "1s2ndry0mpjs8hy8rrxnyarkzqjz7zzh5h541v3fkzgc9rsd6ifb";
+    sha256 = "04pf76iyrbq2h2hksx0r2fmnd0d9mi6an24zvfv7k79rch11cql1";
   };
 
   nativeBuildInputs = [ makeWrapper ];
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/sbt-extras/default.nix b/pkgs/development/tools/build-managers/sbt-extras/default.nix
index 105012d1c8f..968907c0d51 100644
--- a/pkgs/development/tools/build-managers/sbt-extras/default.nix
+++ b/pkgs/development/tools/build-managers/sbt-extras/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub, which, curl, makeWrapper, jdk }:
 
 let
-  rev = "f0669e9b6745b65fae3ec58c2d6a2bef133db456";
-  version = "2019-10-21";
+  rev = "fa06c268993aa72fc094dce06a71182827aad395";
+  version = "2020-06-01";
 in
 stdenv.mkDerivation {
   name = "sbt-extras-${version}";
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     owner = "paulp";
     repo = "sbt-extras";
     inherit rev;
-    sha256 = "1pc8l78qp51ixa26z0n1djwmazpxw1p4j4w4njil7ywxl9xvr92i";
+    sha256 = "0a4dxpvw21yi3pji1s31pp17xplmczn2f2yijn58an9m2angw83j";
   };
 
   dontBuild = true;
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index 64a2cedd1c9..2eb36434406 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "sbt";
-  version = "1.3.10";
+  version = "1.3.13";
 
   src = fetchurl {
     urls = [
       "https://piccolo.link/sbt-${version}.tgz"
       "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz"
     ];
-    sha256 = "1023qcbdbwl40l7mgyd3j0ggr6paz1zs2q787ym52dhrcibhcq1h";
+    sha256 = "08mx84kzpm750zjxm225nh9wqm7js5y2k6hgb8xw3n574zg58hc5";
   };
 
   patchPhase = ''
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/build-managers/tup/default.nix b/pkgs/development/tools/build-managers/tup/default.nix
index 709528b2ad3..80ee38105ca 100644
--- a/pkgs/development/tools/build-managers/tup/default.nix
+++ b/pkgs/development/tools/build-managers/tup/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tup";
-  version = "0.7.8";
+  version = "0.7.9";
 
   src = fetchFromGitHub {
     owner = "gittup";
     repo = "tup";
     rev = "v${version}";
-    sha256 = "07dmz712zbs5kayf98kywp7blssgh0y2gc1623jbsynmqwi77mcb";
+    sha256 = "1b9rllwfdmjvfmwvzqfbqfi1flf4y9zzjmyp0dizq23gpkvhi42f";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -37,6 +37,8 @@ stdenv.mkDerivation rec {
     cp tup.1 $out/share/man/man1/
   '';
 
+  setupHook = ./setup-hook.sh;
+
   meta = with stdenv.lib; {
     description = "A fast, file-based build system";
     longDescription = ''
@@ -49,6 +51,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://gittup.org/tup/";
     license = licenses.gpl2;
+    maintainers = with maintainers; [ ehmry ];
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/tools/build-managers/tup/setup-hook.sh b/pkgs/development/tools/build-managers/tup/setup-hook.sh
new file mode 100644
index 00000000000..5bf64ae59d3
--- /dev/null
+++ b/pkgs/development/tools/build-managers/tup/setup-hook.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+tupConfigurePhase() {
+	runHook preConfigure
+
+	echo -n CONFIG_TUP_ARCH= >> tup.config
+	case "$system" in
+	"i686-*")      echo i386 >> tup.config;;
+	"x86_64-*")    echo x86_64 >> tup.config;;
+	"powerpc-*")   echo powerpc >> tup.config;;
+	"powerpc64-*") echo powerpc64 >> tup.config;;
+	"ia64-*")      echo ia64 >> tup.config;;
+	"alpha-*")     echo alpha >> tup.config;;
+	"sparc-*")     echo sparc >> tup.config;;
+	"aarch64-*")   echo arm64 >> tup.config;;
+	"arm*")        echo arm >> tup.config;;
+	esac
+
+	echo "${tupConfig-}" >> tup.config
+
+	tup init
+	tup generate tupBuild.sh
+
+	runHook postConfigure
+}
+
+if [ -z "${dontUseTupConfigure-}" -a -z "${configurePhase-}" ]; then
+    configurePhase=tupConfigurePhase
+fi
+
+
+tupBuildPhase() {
+	runHook preBuild
+
+	pushd .
+	. tupBuild.sh
+	popd
+
+	runHook postBuild
+}
+
+if [ -z "${dontUseTupBuild-}" -a -z "${buildPhase-}" ]; then
+    buildPhase=tupBuildPhase
+fi
diff --git a/pkgs/development/tools/buildah/default.nix b/pkgs/development/tools/buildah/default.nix
index 3aab8f24da1..95e38e3a0f5 100644
--- a/pkgs/development/tools/buildah/default.nix
+++ b/pkgs/development/tools/buildah/default.nix
@@ -1,38 +1,46 @@
 { stdenv
-, buildGoPackage
+, buildGoModule
 , fetchFromGitHub
 , installShellFiles
 , pkg-config
 , gpgme
-, libgpgerror
 , lvm2
 , btrfs-progs
+, libapparmor
 , libselinux
 , libseccomp
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "buildah";
-  version = "1.14.9";
+  version = "1.15.1";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "buildah";
     rev = "v${version}";
-    sha256 = "1vp59xp374wr7sbx89aikz4rv8fdg0a40v06saryxww9iqyvk8wp";
+    sha256 = "15pnyi6gay287vkcrgsirsyyps3ya2lsih1ljkcsqdxzr596mcv3";
   };
 
   outputs = [ "out" "man" ];
 
-  goPackagePath = "github.com/containers/buildah";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
-  buildInputs = [ gpgme libgpgerror lvm2 btrfs-progs libselinux libseccomp ];
 
-  patches = [ ./disable-go-module-mode.patch ];
+  buildInputs = [
+    btrfs-progs
+    gpgme
+    libapparmor
+    libseccomp
+    libselinux
+    lvm2
+  ];
 
   buildPhase = ''
-    pushd go/src/${goPackagePath}
+    patchShebangs .
     make GIT_COMMIT="unknown"
     make -C docs
   '';
diff --git a/pkgs/development/tools/buildah/disable-go-module-mode.patch b/pkgs/development/tools/buildah/disable-go-module-mode.patch
deleted file mode 100644
index 86ca9132529..00000000000
--- a/pkgs/development/tools/buildah/disable-go-module-mode.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From e2d12e52b3638a320a8d69ea4b392b60f44ea57f Mon Sep 17 00:00:00 2001
-From: Mario Rodas <marsam@users.noreply.github.com>
-Date: Wed, 4 Dec 2019 21:07:33 -0500
-Subject: [PATCH] Do not check Go module-mode availability
-
-Since buildah vendorizes its dependencies we use buildGoPackage which
-does not uses Go module-mode.  The module-mode check will be true
-because nixpkgs uses Go 1.13 by default, and building go modules with
-buildGoPackage may lead to inconsistencies.
----
- Makefile | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 07724ce4..6383646e 100644
---- a/Makefile
-+++ b/Makefile
-@@ -15,14 +15,8 @@ BUILDAH := buildah
- GO := go
- GO110 := 1.10
- GOVERSION := $(findstring $(GO110),$(shell go version))
--# test for go module support
--ifeq ($(shell go help mod >/dev/null 2>&1 && echo true), true)
--export GO_BUILD=GO111MODULE=on $(GO) build -mod=vendor
--export GO_TEST=GO111MODULE=on $(GO) test -mod=vendor
--else
- export GO_BUILD=$(GO) build
- export GO_TEST=$(GO) test
--endif
-
- GIT_COMMIT ?= $(if $(shell git rev-parse --short HEAD),$(shell git rev-parse --short HEAD),$(error "git failed"))
- SOURCE_DATE_EPOCH ?= $(if $(shell date +%s),$(shell date +%s),$(error "date failed"))
diff --git a/pkgs/development/tools/buildah/wrapper.nix b/pkgs/development/tools/buildah/wrapper.nix
new file mode 100644
index 00000000000..bdc48bd6b1f
--- /dev/null
+++ b/pkgs/development/tools/buildah/wrapper.nix
@@ -0,0 +1,52 @@
+{ buildah-unwrapped
+, runCommand
+, makeWrapper
+, lib
+, extraPackages ? []
+, buildah
+, runc # Default container runtime
+, crun # Container runtime (default with cgroups v2 for podman/buildah)
+, conmon # Container runtime monitor
+, slirp4netns # User-mode networking for unprivileged namespaces
+, fuse-overlayfs # CoW for images, much faster than default vfs
+, utillinux # nsenter
+, cni-plugins # not added to path
+, iptables
+}:
+
+let
+  buildah = buildah-unwrapped;
+
+  binPath = lib.makeBinPath ([
+    runc
+    crun
+    conmon
+    slirp4netns
+    fuse-overlayfs
+    utillinux
+    iptables
+  ] ++ extraPackages);
+
+in runCommand buildah.name {
+  name = "${buildah.pname}-wrapper-${buildah.version}";
+  inherit (buildah) pname version;
+
+  meta = builtins.removeAttrs buildah.meta [ "outputsToInstall" ];
+
+  outputs = [
+    "out"
+    "man"
+  ];
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+} ''
+  ln -s ${buildah.man} $man
+
+  mkdir -p $out/bin
+  ln -s ${buildah-unwrapped}/share $out/share
+  makeWrapper ${buildah-unwrapped}/bin/buildah $out/bin/buildah \
+    --prefix PATH : ${binPath}
+''
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 26dd3a895ae..feaa3c312f4 100644
--- a/pkgs/development/tools/cargo-flamegraph/default.nix
+++ b/pkgs/development/tools/cargo-flamegraph/default.nix
@@ -4,16 +4,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-flamegraph";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "flamegraph-rs";
     repo = "flamegraph";
     rev = "v${version}";
-    sha256 = "1avjq36wnm0gd5zkkv1c8hj8j51ah1prlifadjhpaf788rsng9w1";
+    sha256 = "0d6k2qr76p93na39j4zbcpc9kaswd806wrqhcwisqxdrcxrjbwhk";
   };
 
-  cargoSha256 = "10cw3qgc39id8rzziamvgm5s3yf8vgqrnx9v15dw9miapz88amcy";
+  cargoSha256 = "1qz4a1b58j3bv3akqvc3bcgvqq4bi8cbm3gzws6a52dz7ycrgq46";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ];
   buildInputs = lib.optionals stdenv.isDarwin [
@@ -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/casperjs/default.nix b/pkgs/development/tools/casperjs/default.nix
deleted file mode 100644
index 80786a10f5f..00000000000
--- a/pkgs/development/tools/casperjs/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ stdenv, fetchFromGitHub, fontsConf, phantomjs2, python, nodePackages }:
-
-let version = "1.1.1";
-
-in stdenv.mkDerivation {
-
-  pname = "casperjs";
-  inherit version;
-
-  src = fetchFromGitHub {
-    owner = "casperjs";
-    repo = "casperjs";
-    rev = version;
-    sha256 = "187prrm728xpn0nx9kxfxa4fwd7w25z78nsxfk6a6kl7c5656jpz";
-  };
-
-  buildInputs = [ phantomjs2 python nodePackages.eslint ];
-
-  patchPhase = ''
-    substituteInPlace bin/casperjs --replace "/usr/bin/env python" "${python}/bin/python" \
-                                   --replace "'phantomjs'" "'${phantomjs2}/bin/phantomjs'"
-  '';
-
-  dontBuild = true;
-
-  doCheck = true;
-  checkPhase = ''
-    export FONTCONFIG_FILE=${fontsConf}
-    make test
-  '';
-
-  installPhase = ''
-    cp -r . $out
-  '';
-
-  meta = {
-
-    description = ''
-      Navigation scripting & testing utility for PhantomJS and SlimerJS
-    '';
-
-    longDescription = ''
-      CasperJS is a navigation scripting & testing utility for PhantomJS and
-      SlimerJS (still experimental). It eases the process of defining a full
-      navigation scenario and provides useful high-level functions, methods &
-      syntactic sugar for doing common tasks.
-    '';
-
-    homepage = "http://casperjs.org";
-    license = stdenv.lib.licenses.mit;
-
-    maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
-    platforms = stdenv.lib.platforms.linux;
-    broken = true;
-  };
-}
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/clj-kondo/default.nix b/pkgs/development/tools/clj-kondo/default.nix
index b809d550097..b7eec641b4b 100644
--- a/pkgs/development/tools/clj-kondo/default.nix
+++ b/pkgs/development/tools/clj-kondo/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, graalvm8, fetchurl }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   pname = "clj-kondo";
   version = "2020.04.05";
 
diff --git a/pkgs/development/tools/cloudflare-wrangler/default.nix b/pkgs/development/tools/cloudflare-wrangler/default.nix
deleted file mode 100644
index 5a05b7ca7c0..00000000000
--- a/pkgs/development/tools/cloudflare-wrangler/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, curl, darwin }:
-
-rustPlatform.buildRustPackage rec {
-  pname = "cloudflare-wrangler";
-  version = "1.8.4";
-
-  src = fetchFromGitHub {
-    owner = "cloudflare";
-    repo = "wrangler";
-    rev = "v${version}";
-    sha256 = "1lllam0zgr26fbg04hnw1sy35grwrs4br8cx4r9vqjf113cyr80x";
-  };
-
-  cargoSha256 = "0yvnqp15iqv142vcgsmcad07r5nnp417c0iqa9qgyzn39ssgpn0r";
-
-  nativeBuildInputs = [ pkg-config ];
-
-  buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [
-                  curl
-                  darwin.apple_sdk.frameworks.Security
-                  darwin.apple_sdk.frameworks.CoreServices
-                  darwin.apple_sdk.frameworks.CoreFoundation
-                ];
-
-  # tries to use "/homeless-shelter" and fails
-  doCheck = false;
-
-  meta = with stdenv.lib; {
-    description = "A CLI tool designed for folks who are interested in using Cloudflare Workers";
-    homepage = "https://github.com/cloudflare/wrangler";
-    license = with licenses; [ asl20 /* or */ mit ];
-    maintainers = with maintainers; [ ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/tools/cloudfoundry-cli/default.nix b/pkgs/development/tools/cloudfoundry-cli/default.nix
index 1fa45a32c05..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.46.1";
+  version = "7.0.1";
 
   goPackagePath = "code.cloudfoundry.org/cli";
 
@@ -12,7 +12,14 @@ buildGoPackage rec {
     owner = "cloudfoundry";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "0dqrkimwhw016icgyf4cyipzy6vdz5jgickm33xxd9018dh3ibwq";
+    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..b0e97de5500 100644
--- a/pkgs/development/tools/cmake-format/default.nix
+++ b/pkgs/development/tools/cmake-format/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonApplication rec {
   pname = "cmake-format";
-  version = "0.6.10";
+  version = "0.6.11";
 
   src = fetchPypi {
     inherit version;
     pname = "cmake_format";
-    sha256 = "14ypplkjah4hcb1ad8978xip4vvzxy1nkysvyi1wn9b24cbfzw42";
+    sha256 = "1wvmv8242xjkxgr266dkn4vrn5wm94fwn333pn7sxm5warhhwgda";
   };
 
   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
new file mode 100644
index 00000000000..628bb31fbe9
--- /dev/null
+++ b/pkgs/development/tools/cmake-language-server/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub
+, poetry, pygls, pyparsing
+, cmake, pytest, pytest-datadir
+, fetchpatch
+}:
+
+buildPythonApplication rec {
+  pname = "cmake-language-server";
+  version = "0.1.2";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "regen100";
+    repo = pname;
+    rev = "v${version}";
+    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 ];
+
+  checkInputs = [ cmake pytest pytest-datadir ];
+  dontUseCmakeConfigure = true;
+  checkPhase = "pytest";
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/regen100/cmake-language-server";
+    description = "CMake LSP Implementation";
+    license = licenses.mit;
+    maintainers = with maintainers; [ metadark ];
+  };
+}
diff --git a/pkgs/development/tools/conftest/default.nix b/pkgs/development/tools/conftest/default.nix
index 2d7c2c03cea..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.18.2";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
-    owner = "instrumenta";
+    owner = "open-policy-agent";
     repo = "conftest";
     rev = "v${version}";
-    sha256 = "15xzldcmnpfg1hd5zr5i7x2zjrgkwnp4nylxbn9kfic2dpjp1a38";
+    sha256 = "0v9cya3x0v1fqpqswayskmm0xzbvfn4hbhz2k6b3j6fzcq2dnzj3";
   };
 
-  modSha256 = "0nwmxmh1pmism5r9zzghfrzizr1fbyc8d4jljrbzjjq1l449r2ja";
+  vendorSha256 = "1nxl00f8dbdiykwa54qm9r0cv16zcab880ay8mlmxba7srysvb1y";
+
+  doCheck = false;
 
   buildFlagsArray = ''
     -ldflags=
@@ -20,9 +22,8 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Write tests against structured configuration data";
-    homepage = "https://github.com/instrumenta/conftest";
+    inherit (src.meta) homepage;
     license = licenses.asl20;
     maintainers = with maintainers; [ yurrriq ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/container-linux-config-transpiler/default.nix b/pkgs/development/tools/container-linux-config-transpiler/default.nix
index 005c5d55b79..b5200e22cad 100644
--- a/pkgs/development/tools/container-linux-config-transpiler/default.nix
+++ b/pkgs/development/tools/container-linux-config-transpiler/default.nix
@@ -4,7 +4,7 @@ with lib;
 
 buildGoPackage rec {
   pname = "ct";
-  version = "0.7.0";
+  version = "0.9.0";
 
   goPackagePath = "github.com/coreos/container-linux-config-transpiler";
 
@@ -12,7 +12,7 @@ buildGoPackage rec {
     owner = "coreos";
     repo = "container-linux-config-transpiler";
     rev = "v${version}";
-    sha256="058zjk9yqgdli55gc6y48455il6wjpslyz2r2ckk2ki9c5qc8b7c";
+    sha256="1w6nvgrl5qp3ci9igflk9dlk3020psv5m4f3p57f3qcx9vrcl4lw";
   };
 
   buildFlagsArray = ''
diff --git a/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix b/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
new file mode 100644
index 00000000000..aee2a4e2341
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "buildkite-cli";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "buildkite";
+    repo = "cli";
+    rev = "v${version}";
+    sha256 = "05hz59qzadkk4ji5icv5sxih31pnn0abnmiwcyfa2mr3l5jaqjnd";
+  };
+
+  vendorSha256 = "0jxh3yhh0sdvaykhinxngpipk369hw8z1y3g2z4c1115m5rjp2bb";
+
+  doCheck = false;
+
+  subPackages = [ "cmd/bk" ];
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ];
+
+  meta = with lib; {
+    description = "A command line interface for Buildkite";
+    homepage = "https://github.com/buildkite/cli";
+    license = licenses.mit;
+    maintainers = with maintainers; [ groodt ];
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/drone-cli/default.nix b/pkgs/development/tools/continuous-integration/drone-cli/default.nix
index a3df81d2605..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";
 
-  modSha256 = "0g0vq4vm2hy00r2gjsrhg57xv9sldlqix3wzimiqdli085bcz46b";
+  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; {
diff --git a/pkgs/development/tools/continuous-integration/drone/default.nix b/pkgs/development/tools/continuous-integration/drone/default.nix
index 05257f65af5..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";
 
-  modSha256 = "1fyb9218s52w8c6c3v6rgivbyzy5hz4q4z8r75ng2yrmjmmiv2gr";
+  vendorSha256 = "0idf11sr417lxcjryplgb87affr6lgzxazzlyvk0y40hp8zbhwsx";
+
+  doCheck = false;
 
   src = fetchFromGitHub {
     owner = "drone";
     repo = "drone";
     rev = "v${version}";
-    sha256 = "05cgd72qyss836fby0adhrm5p8g7639psk2yslhg6pmz0cqfbq9m";
+    sha256 = "1lsyd245fr1f74rpccvvw41h5g75b79afrb8g589bj13ggjav0xy";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/continuous-integration/fly/default.nix b/pkgs/development/tools/continuous-integration/fly/default.nix
index 483b8e6b30c..34d30e08c50 100644
--- a/pkgs/development/tools/continuous-integration/fly/default.nix
+++ b/pkgs/development/tools/continuous-integration/fly/default.nix
@@ -1,17 +1,19 @@
-{ buildGoModule, fetchFromGitHub, lib, writeText }:
+{ buildGoModule, fetchFromGitHub, stdenv, lib, writeText }:
 
 buildGoModule rec {
   pname = "fly";
-  version = "6.0.0";
+  version = "6.5.0";
 
   src = fetchFromGitHub {
     owner = "concourse";
     repo = "concourse";
     rev = "v${version}";
-    sha256 = "0chavwymyh5kv4fkvdjvf3p5jjx4yn9aavq66333xnsl5pn7q9dq";
+    sha256 = "0x8q1l56h24mmq01j3hib2qg0g44z82mxhmmljy8yv5s2iir0sfh";
   };
 
-  modSha256 = "1wiyfii4rmj3rp8ls0ill0sjpnpjz7l3q5fzrscm8ap1qn90gvzg";
+  vendorSha256 = "1fxbxkg7disndlmb065abnfn7sn79qclkcbizmrq49f064w1ijr4";
+
+  doCheck = false;
 
   subPackages = [ "fly" ];
 
@@ -20,12 +22,10 @@ buildGoModule rec {
       -X github.com/concourse/concourse.Version=${version}
   '';
 
-  # The fly.bash file included with this derivation can be replaced by a
-  # call to `fly completion bash` once the `completion` subcommand has
-  # made it into a release. Similarly, `fly completion zsh` will provide
-  # zsh completions. https://github.com/concourse/concourse/pull/4012
-  postInstall = ''
-    install -D -m 444 ${./fly.bash} $out/share/bash-completion/completions/fly
+  postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
+    mkdir -p $out/share/{bash-completion/completions,zsh/site-functions}
+    $out/bin/fly completion --shell bash > $out/share/bash-completion/completions/fly
+    $out/bin/fly completion --shell zsh > $out/share/zsh/site-functions/_fly
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/tools/continuous-integration/fly/fly.bash b/pkgs/development/tools/continuous-integration/fly/fly.bash
deleted file mode 100644
index a9acc5f70a4..00000000000
--- a/pkgs/development/tools/continuous-integration/fly/fly.bash
+++ /dev/null
@@ -1,10 +0,0 @@
-# credits:
-# https://godoc.org/github.com/jessevdk/go-flags#hdr-Completion
-# https://github.com/concourse/concourse/issues/1309#issuecomment-452893900
-_fly_compl() {
-    args=("${COMP_WORDS[@]:1:$COMP_CWORD}")
-    local IFS=$'\n'
-    COMPREPLY=($(GO_FLAGS_COMPLETION=1 ${COMP_WORDS[0]} "${args[@]}"))
-    return 0
-}
-complete -F _fly_compl fly
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index 4aadb981081..890c561cadc 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,22 +1,23 @@
 { lib, buildGoPackage, fetchFromGitLab, fetchurl }:
 
 let
-  version = "12.10.2";
+  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 = "1lw0f3svzsvcw1rkc8z60nrl2jqjj8ciqlw5icazf6ikqbqmf660";
+    sha256 = "0pi33mgcmw1n5myyczg1nx1s8rqx6b4vr7s09jsjd6z81irhc87c";
   };
 
   docker_arm = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
-    sha256 = "1hawdihnwk9p06fa3ym5q6b4sv6pp9095nimdy5myi6y88yj1rv2";
+    sha256 = "071bsfnkasdj7lfidfhwcklycan2zpyalqia3rmbwd93m5rwqgrd";
   };
 in
 buildGoPackage rec {
   inherit version;
   pname = "gitlab-runner";
   goPackagePath = "gitlab.com/gitlab-org/gitlab-runner";
+  subPackages = [ "." ];
   commonPackagePath = "${goPackagePath}/common";
   buildFlagsArray = ''
     -ldflags=
@@ -29,13 +30,12 @@ buildGoPackage rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "1r82xj4krdd51540bhr2wjhp6sdr5c2favnnw8nl26vnmwiqpd3k";
+    sha256 = "0idbj8jmycrh61bvkzjl5xffhvv9jnjqv9q0ivl457sn2jii9bhi";
   };
 
   patches = [ ./fix-shell-path.patch ];
 
   postInstall = ''
-    touch $out/bin/hello
     install -d $out/bin/helper-images
     ln -sf ${docker_x86_64} $out/bin/helper-images/prebuilt-x86_64.tar.xz
     ln -sf ${docker_arm} $out/bin/helper-images/prebuilt-arm.tar.xz
diff --git a/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix b/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix
new file mode 100644
index 00000000000..c8316f4bb57
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix
@@ -0,0 +1,21 @@
+{ gnutar, gzip, git, haskell, haskellPackages, lib, makeWrapper }:
+let
+  inherit (haskell.lib) overrideCabal addBuildDepends;
+  inherit (lib) makeBinPath;
+  pkg =
+    # justStaticExecutables is needed due to https://github.com/NixOS/nix/issues/2990
+    overrideCabal
+      (addBuildDepends (haskell.lib.justStaticExecutables haskellPackages.hercules-ci-agent) [ makeWrapper ])
+      (o: {
+        postInstall = ''
+          ${o.postInstall or ""}
+          mkdir -p $out/libexec
+          mv $out/bin/hercules-ci-agent $out/libexec
+          makeWrapper $out/libexec/hercules-ci-agent $out/bin/hercules-ci-agent --prefix PATH : ${makeBinPath [ gnutar gzip git ]}
+        '';
+      });
+in pkg // {
+    meta = pkg.meta // {
+      position = toString ./default.nix + ":1";
+    };
+  }
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index c40572a4f2a..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.222.3";
+  version = "2.235.5";
 
   src = fetchurl {
     url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
-    sha256 = "1087rih5cb4ici538rcgkrfhcqckbs9i2mpzd59zcx4yw91dca8m";
+    sha256 = "02zpnqhdkhg8p8cddkqklgihjpwcbnybkcw5rspipz6kiyqzg1n7";
   };
 
   buildCommand = ''
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 18f543b3435..b54a831e955 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-4";
+  version = "2.0.0-RC6-18";
 
   src = fetchurl {
     url = "https://github.com/coursier/coursier/releases/download/v${version}/coursier";
-    sha256 = "0i8jvs5l7f2xzkdlxk784mx5h86hq7xh5ffzb4zalczw9bzmmds1";
+    sha256 = "0vym99fyn0g8l5y2zvhf73ww17wywrh503wg5aw4nilj8w1ncvn2";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/cue/default.nix b/pkgs/development/tools/cue/default.nix
index 69e95f0484a..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.1.1";
+  version = "0.2.2";
 
   src = fetchgit {
     url = "https://cue.googlesource.com/cue";
     rev = "v${version}";
-    sha256 = "1qbnm3qb8jz9bljw2gb5bb9g41s5lbq4xvcaj3zgi4fc3708hlji";
+    sha256 = "1crl5fldczc3jkwf7gvwvghckr6gfinfslzca4ps1098lbq83zcq";
   };
 
-  modSha256 = "0n9idgishlp4gaq12kngi42rq9rnkas7g6cj7jpkk8p30c74ki6z";
+  vendorSha256 = "0l6slaji9nh16jqp1nvib95h2db1xyjh6knk5hj2zaa1rks4b092";
+
+  doCheck = false;
 
   subPackages = [ "cmd/cue" ];
 
diff --git a/pkgs/development/tools/dapper/default.nix b/pkgs/development/tools/dapper/default.nix
index d5c7d309e98..c2dadeb6a93 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.4.1";
+  version = "0.5.1";
 
   goPackagePath = "github.com/rancher/dapper";
 
@@ -13,7 +13,7 @@ buildGoPackage rec {
     owner = "rancher";
     repo = "dapper";
     rev = "v${version}";
-    sha256 = "03rmkmlvhmfwcln5v1rqww1kirxm0d1p58h6pj8f5fnhk9spb162";
+    sha256 = "0sf56ii4sn2wdq5kiyl02sgvq0lvynzgiq8v5wrkkabj5107fiqw";
   };
    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 c710aeaa516..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.8.0";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "amacneil";
     repo = "dbmate";
     rev = "v${version}";
-    sha256 = "16grd03r41n0vj5fs7j6jk395zs2q0i878p9nh1ycicy64nzmxky";
+    sha256 = "09zb7r8f6m1w9ax9ayaxjzwmqcgx5f6x4lclfi1wdn6f6qaans4w";
   };
 
-  modSha256 = "1ky6cxpmw93nrk26vyrxz8kqa7247axzaxilm6ciypxf30ad0vdq";
+  vendorSha256 = "012kgdvw7hj3m40v3nnpg916n02nxv19zid07h8g4qwprzg49iq2";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Database migration tool";
diff --git a/pkgs/development/tools/database/liquibase/default.nix b/pkgs/development/tools/database/liquibase/default.nix
index f246a0a806d..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.8.9";
+  version = "3.10.2";
 
   src = fetchurl {
     url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "13qpva81y98gp84zbcx6b4wsfgpsbv18aj5ihkw6l9ndbxfcrxdl";
+    sha256 = "19wdflkp4n0pds4lkliagg8l5kf9db5f5bn39akhwasc4yj0g7j2";
   };
 
   buildInputs = [ jre makeWrapper ];
diff --git a/pkgs/development/tools/database/sqldeveloper/default.nix b/pkgs/development/tools/database/sqldeveloper/default.nix
index 1e40bc52b4f..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";
@@ -10,7 +10,7 @@ let
     desktopName = "Oracle SQL Developer";
     genericName = "Oracle SQL Developer";
     comment = "Oracle's Oracle DB GUI client";
-    categories = "Application;Development;";
+    categories = "Development;";
   };
 in
   stdenv.mkDerivation {
@@ -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/sqlitebrowser/default.nix b/pkgs/development/tools/database/sqlitebrowser/default.nix
index f8a8ee70e9d..7fcdbd1a6ad 100644
--- a/pkgs/development/tools/database/sqlitebrowser/default.nix
+++ b/pkgs/development/tools/database/sqlitebrowser/default.nix
@@ -1,30 +1,30 @@
 { mkDerivation, lib, fetchFromGitHub, cmake, antlr
-, qtbase, qttools, qscintilla, sqlite }:
+, qtbase, qttools, sqlite }:
 
 mkDerivation rec {
   pname = "sqlitebrowser";
-  version = "3.11.2";
+  version = "3.12.0";
 
   src = fetchFromGitHub {
-    owner  = pname;
-    repo   = pname;
-    rev    = "v${version}";
-    sha256 = "0ydd5fg76d5d23byac1f7f8mzx3brmd0cnnkd58qpmlzi7p9hcvx";
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "1arv4rzl8s1vjjqzz35l2b1rfzr2b8b23v97fdw1kdxpwvs63l99";
   };
 
-  buildInputs = [ antlr qtbase qscintilla sqlite ];
+  # We should be using qscintilla from nixpkgs instead of the vendored version,
+  # but qscintilla is currently in a bit of a mess as some consumers expect a
+  # -qt4 or -qt5 prefix while others do not.
+  # We *really* should get that cleaned up.
+  buildInputs = [ antlr qtbase sqlite ];
 
   nativeBuildInputs = [ cmake qttools ];
 
-  NIX_LDFLAGS = "-lQt5PrintSupport";
-
-  enableParallelBuilding = true;
-
   meta = with lib; {
     description = "DB Browser for SQLite";
     homepage = "https://sqlitebrowser.org/";
     license = licenses.gpl3;
-    maintainers = with maintainers; [  ];
+    maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/database/squirrel-sql/default.nix b/pkgs/development/tools/database/squirrel-sql/default.nix
index 024615a7f65..924a82bfd85 100644
--- a/pkgs/development/tools/database/squirrel-sql/default.nix
+++ b/pkgs/development/tools/database/squirrel-sql/default.nix
@@ -5,14 +5,14 @@
 , drivers ? []
 }:
 let
-  version = "4.0.0";
+  version = "4.1.0";
 in stdenv.mkDerivation rec {
   pname = "squirrel-sql";
   inherit version;
 
   src = fetchurl {
     url = "mirror://sourceforge/project/squirrel-sql/1-stable/${version}-plainzip/squirrelsql-${version}-standard.zip";
-    sha256 = "06njdp2248zxm7zlcpyawx1s7j6hffp5a9mwam3cb53gsmzcz126";
+    sha256 = "0ni7cva0acrin5bkcfkiiv28sf58dzz7xsbl3y4536hmph0g68k6";
   };
 
   nativeBuildInputs = [ 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 fd705c4fc1b..ec22252cbe0 100644
--- a/pkgs/development/tools/database/webdis/default.nix
+++ b/pkgs/development/tools/database/webdis/default.nix
@@ -2,23 +2,15 @@
 
 stdenv.mkDerivation rec {
   pname = "webdis";
-  version = "0.1.9";
+  version = "0.1.11";
 
   src = fetchFromGitHub {
     owner = "nicolasff";
     repo = pname;
     rev = version;
-    sha256 = "1kglzbs1sw3w05i678qr3lv4pxia20k2a8s3pjhfcxdlnlcy23sk";
+    sha256 = "162xbx4dhfx4a6sksm7x60gr7ylyila4vidmdf0bn7xlvglggazf";
   };
 
-  patches = [
-    # Do not use DESTDIR. See: https://github.com/nicolasff/webdis/pull/172
-    (fetchpatch {
-      url = "https://github.com/nicolasff/webdis/commit/a44a2964a59f2e583f4945eeb65cd19235059270.patch";
-      sha256 = "0i41p98gc201vpp5ppjc9gxdyb1bpimr0qrvibaf3iq3sy4jr1gb";
-    })
-  ];
-
   buildInputs = [ hiredis http-parser jansson libevent ];
 
   makeFlags = [
diff --git a/pkgs/development/tools/delve/default.nix b/pkgs/development/tools/delve/default.nix
index 33eda13b604..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.2.0";
+  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 = "1xz1xm0lb1arwm3w2ydq5y5xglq60fc0q46x9xndr3i9j0rm8bxh";
+    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/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/devpi-client/default.nix b/pkgs/development/tools/devpi-client/default.nix
index 50cc41cd50f..1a0fdf40308 100644
--- a/pkgs/development/tools/devpi-client/default.nix
+++ b/pkgs/development/tools/devpi-client/default.nix
@@ -21,15 +21,15 @@
 , wheel
 , git
 , mercurial
-} :
+}:
 
 buildPythonApplication rec {
   pname = "devpi-client";
-  version = "5.0.0";
+  version = "5.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0hyj3xc5c6658slk5wgcr9rh7hwi5r3hzxk1p6by61sqx5r38v3q";
+    sha256 = "1y8r1pjav0gyrbnyqjnc202sa962n1gasi8233xj7jc39lv3iq40";
   };
 
   buildInputs = [ glibcLocales pkginfo check-manifest ];
@@ -42,21 +42,9 @@ buildPythonApplication rec {
     sphinx wheel git mercurial
   ];
 
+  # --fast skips tests which try to start a devpi-server improperly
   checkPhase = ''
-    export PATH=$PATH:$out/bin
-    export HOME=$TMPDIR # fix tests failing in sandbox due to "/homeless-shelter"
-
-    # test_pypi_index_attributes: tries to connect to upstream pypi
-    # test_test: setuptools does not get propagated into the tox call (cannot import setuptools), also no detox
-    # test_index: hangs forever
-    # test_upload: fails multiple times with
-    # > assert args[0], args
-    # F AssertionError: [None, local('/build/pytest-of-nixbld/pytest-0/test_export_attributes_git_set0/repo2/setupdir/setup.py'), '--name']
-
-    py.test -k 'not test_pypi_index_attributes \
-                and not test_test \
-                and not test_index \
-                and not test_upload' testing
+    HOME=$TMPDIR py.test --fast
   '';
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/tools/devpi-server/default.nix b/pkgs/development/tools/devpi-server/default.nix
index 59a4a6d0030..4b5499b87bc 100644
--- a/pkgs/development/tools/devpi-server/default.nix
+++ b/pkgs/development/tools/devpi-server/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "devpi-server";
-  version = "5.2.0";
+  version = "5.5.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "1dapd0bis7pb4fzq5yva7spby5amcsgl1970z5nq1rlprf6qbydg";
+    sha256 = "0lily4a0k13bygx07x2f2q4nkwny0fj34hpac9i6mc70ysdn1hhi";
   };
 
   propagatedBuildInputs = with python3Packages; [
@@ -32,12 +32,17 @@ python3Packages.buildPythonApplication rec {
     webtest
   ] ++ stdenv.lib.optionals isPy27 [ mock ];
 
-  # test_genconfig.py needs devpi-server on PATH
   # root_passwd_hash tries to write to store
+  # TestMirrorIndexThings tries to write to /var through ngnix
+  # nginx tests try to write to /var
   checkPhase = ''
     PATH=$PATH:$out/bin HOME=$TMPDIR pytest \
       ./test_devpi_server --slow -rfsxX \
-      -k 'not root_passwd_hash_option'
+      --ignore=test_devpi_server/test_nginx_replica.py \
+      --ignore=test_devpi_server/test_streaming_nginx.py \
+      --ignore=test_devpi_server/test_streaming_replica_nginx.py \
+      -k 'not root_passwd_hash_option \
+          and not TestMirrorIndexThings'
   '';
 
   meta = with stdenv.lib;{
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 b942e0c9199..3cb050df036 100644
--- a/pkgs/development/tools/dive/default.nix
+++ b/pkgs/development/tools/dive/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "1v69xbkjmyzm5g4wi9amjk65fs4qgxkqc0dvq55vqjigzrranp22";
   };
 
-  modSha256 = "1y8mqxlzbizra2m9aayp6w07s39gddvm5igdaw9kwxwjwvd1dbfc";
+  vendorSha256 = "0219q9zjc0i6fbdngqh0wjpmq8wj5bjiz5dls0c1aam0lh4vwkhc";
+
+  doCheck = false;
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/doctl/default.nix b/pkgs/development/tools/doctl/default.nix
index f9c55555536..45795b67ea4 100644
--- a/pkgs/development/tools/doctl/default.nix
+++ b/pkgs/development/tools/doctl/default.nix
@@ -1,19 +1,21 @@
-{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "doctl";
-  version = "1.40.0";
+  version = "1.46.0";
 
-  goPackagePath = "github.com/digitalocean/doctl";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   subPackages = [ "cmd/doctl" ];
 
-  buildFlagsArray = ''
+  buildFlagsArray = let t = "github.com/digitalocean/doctl"; in ''
     -ldflags=
-    -X ${goPackagePath}.Major=${lib.versions.major version}
-    -X ${goPackagePath}.Minor=${lib.versions.minor version}
-    -X ${goPackagePath}.Patch=${lib.versions.patch version}
-    -X ${goPackagePath}.Label=release
+    -X ${t}.Major=${lib.versions.major version}
+    -X ${t}.Minor=${lib.versions.minor version}
+    -X ${t}.Patch=${lib.versions.patch version}
+    -X ${t}.Label=release
   '';
 
   nativeBuildInputs = [ installShellFiles ];
@@ -30,14 +32,13 @@ buildGoPackage rec {
     owner = "digitalocean";
     repo = "doctl";
     rev = "v${version}";
-    sha256 = "1x8rr3707mmbfnjn3ck0953xkkrfq5r8zflbxpkqlfz9k978z835";
+    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/antora/default.nix b/pkgs/development/tools/documentation/antora/default.nix
index 6427fa461dd..781fee2bb26 100644
--- a/pkgs/development/tools/documentation/antora/default.nix
+++ b/pkgs/development/tools/documentation/antora/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, nodePackages_10_x }:
+{ stdenv, nodePackages }:
 
 let
   linkNodeDeps = ({ pkg, deps, name ? "" }:
     let
       targetModule = if name != "" then name else stdenv.lib.getName pkg;
-    in nodePackages_10_x.${pkg}.override (oldAttrs: {
+    in nodePackages.${pkg}.override (oldAttrs: {
       postInstall = ''
         mkdir -p $out/lib/node_modules/${targetModule}/node_modules
         ${stdenv.lib.concatStringsSep "\n" (map (dep: ''
-          ln -s ${nodePackages_10_x.${dep}}/lib/node_modules/${stdenv.lib.getName dep} \
+          ln -s ${nodePackages.${dep}}/lib/node_modules/${stdenv.lib.getName dep} \
             $out/lib/node_modules/${targetModule}/node_modules/${stdenv.lib.getName dep}
         '') deps
         )}
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/gtk-doc/default.nix b/pkgs/development/tools/documentation/gtk-doc/default.nix
index 3c0b0cff548..c93ee954cea 100644
--- a/pkgs/development/tools/documentation/gtk-doc/default.nix
+++ b/pkgs/development/tools/documentation/gtk-doc/default.nix
@@ -68,6 +68,10 @@ python3.pkgs.buildPythonApplication rec {
       --replace "${python3}" ""
   '';
 
+  # find: ‘...-gtk-doc-1.32/lib/python3.8/site-packages’: No such file or directory
+  # https://github.com/NixOS/nixpkgs/pull/90208#issuecomment-644051108
+  dontUsePythonRecompileBytecode = true;
+
   passthru = {
     # Consumers are expected to copy the m4 files to their source tree, let them reuse the patch
     respect_xml_catalog_files_var_patch = ./respect-xml-catalog-files-var.patch;
diff --git a/pkgs/development/tools/documentation/mdsh/default.nix b/pkgs/development/tools/documentation/mdsh/default.nix
index e5d9143f61c..5ab74a4b95f 100644
--- a/pkgs/development/tools/documentation/mdsh/default.nix
+++ b/pkgs/development/tools/documentation/mdsh/default.nix
@@ -8,16 +8,15 @@ rustPlatform.buildRustPackage rec {
     owner = "zimbatm";
     repo = "mdsh";
     rev = "v${version}";
-    sha256 = "sha256-VF6GZxWZbrJNixE3wItF4CtVpj9NuKjdotNXrYujugs=";
+    sha256 = "02xslf5ssmyklbfsif2d7yk5aaz08n5w0dqiid6v4vlr2mkqcpjl";
   };
 
-  cargoSha256 = "sha256-b8xXaWACDJ143i8UV3DJDjqu8HiXdO4fe6YDR/GcHoU=";
+  cargoSha256 = "118ykkqlf0x6gcgywx4pg3qawfhfr5q5f51gvrw9s302c1lmgk3g";
 
   meta = with stdenv.lib; {
     description = "Markdown shell pre-processor";
     homepage = "https://github.com/zimbatm/mdsh";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ zimbatm ];
-    platforms = platforms.all;
   };
 }
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/eclipse-mat/default.nix b/pkgs/development/tools/eclipse-mat/default.nix
new file mode 100644
index 00000000000..44411d0db72
--- /dev/null
+++ b/pkgs/development/tools/eclipse-mat/default.nix
@@ -0,0 +1,119 @@
+{ buildEnv
+, fetchurl
+, fontconfig
+, freetype
+, glib
+, gsettings-desktop-schemas
+, gtk3
+, jdk11
+, lib
+, libX11
+, libXrender
+, libXtst
+, makeDesktopItem
+, makeWrapper
+, shared-mime-info
+, stdenv
+, unzip
+, webkitgtk
+, zlib
+}:
+
+with lib;
+let
+  pVersion = "1.10.0.20200225";
+  pVersionTriple = splitVersion pVersion;
+  majorVersion = elemAt pVersionTriple 0;
+  minorVersion = elemAt pVersionTriple 1;
+  patchVersion = elemAt pVersionTriple 2;
+  baseVersion = "${majorVersion}.${minorVersion}.${patchVersion}";
+  jdk = jdk11;
+in
+stdenv.mkDerivation rec {
+  pname = "eclipse-mat";
+  version = "${pVersion}";
+
+  src = fetchurl {
+    url = "http://ftp.halifax.rwth-aachen.de/eclipse//mat/${baseVersion}/rcp/MemoryAnalyzer-${version}-linux.gtk.x86_64.zip";
+    sha256 = "11cg01gjjvlm6lr6z6rwqs1r31xx5pxddnz55ca0s33lrnywf9fx";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "eclipse-mat";
+    exec = "eclipse-mat";
+    icon = "eclipse";
+    comment = "Eclipse Memory Analyzer";
+    desktopName = "Eclipse MAT";
+    genericName = "Java Memory Analyzer";
+    categories = "Development;";
+  };
+
+  unpackPhase = ''
+    unzip $src
+  '';
+
+  buildCommand = ''
+    mkdir -p $out
+    unzip $src
+    mv mat $out
+
+    # Patch binaries.
+    interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
+    libCairo=$out/eclipse/libcairo-swt.so
+    patchelf --set-interpreter $interpreter $out/mat/MemoryAnalyzer
+    [ -f $libCairo ] && patchelf --set-rpath ${
+      stdenv.lib.makeLibraryPath [ freetype fontconfig libX11 libXrender zlib ]
+    } $libCairo
+
+    # Create wrapper script.  Pass -configuration to store settings in ~/.eclipse-mat/<version>
+    makeWrapper $out/mat/MemoryAnalyzer $out/bin/eclipse-mat \
+      --prefix PATH : ${jdk}/bin \
+      --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath ([ glib gtk3 libXtst webkitgtk ])} \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
+      --add-flags "-configuration \$HOME/.eclipse-mat/''${version}/configuration"
+
+    # Create desktop item.
+    mkdir -p $out/share/applications
+    cp ${desktopItem}/share/applications/* $out/share/applications
+    mkdir -p $out/share/pixmaps
+    find $out/mat/plugins -name 'eclipse*.png' -type f -exec cp {} $out/share/pixmaps \;
+    mv $out/share/pixmaps/eclipse64.png $out/share/pixmaps/eclipse.png
+  '';
+
+  buildInputs = [
+    fontconfig
+    freetype
+    glib
+    gsettings-desktop-schemas
+    gtk3
+    jdk
+    libX11
+    libXrender
+    libXtst
+    makeWrapper
+    zlib
+    unzip
+    shared-mime-info
+    webkitgtk
+  ];
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  meta = with stdenv.lib; {
+    description = "Fast and feature-rich Java heap analyzer";
+    longDescription = ''
+      The Eclipse Memory Analyzer is a tool that helps you find memory
+      leaks and reduce memory consumption. Use the Memory Analyzer to
+      analyze productive heap dumps with hundreds of millions of
+      objects, quickly calculate the retained sizes of objects, see
+      who is preventing the Garbage Collector from collecting objects,
+      run a report to automatically extract leak suspects.
+    '';
+    homepage = "https://www.eclipse.org/mat";
+    license = licenses.epl20;
+    maintainers = [ maintainers.ktor ];
+    platforms = [ "x86_64-linux" ];
+  };
+
+}
diff --git a/pkgs/development/tools/electron/3.x.nix b/pkgs/development/tools/electron/3.x.nix
deleted file mode 100644
index ee4b69ddca3..00000000000
--- a/pkgs/development/tools/electron/3.x.nix
+++ /dev/null
@@ -1,77 +0,0 @@
-{ stdenv, libXScrnSaver, makeWrapper, fetchurl, unzip, atomEnv, gtk2, at-spi2-atk }:
-
-let
-  version = "3.1.13";
-  name = "electron-${version}";
-
-  throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
-
-  meta = with stdenv.lib; {
-    description = "Cross platform desktop application shell";
-    homepage = "https://github.com/electron/electron";
-    license = licenses.mit;
-    maintainers = with maintainers; [ travisbhartwell manveru ];
-    platforms = [ "x86_64-darwin" "x86_64-linux" "i686-linux" "armv7l-linux" "aarch64-linux" ];
-  };
-
-  linux = {
-    inherit name version meta;
-    src = {
-      i686-linux = fetchurl {
-        url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-linux-ia32.zip";
-        sha256 = "04i0rcp4ajp4nf4arcl5crcc7a85sf0ixqd8jx07k2b1irv4dc23";
-      };
-      x86_64-linux = fetchurl {
-        url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-linux-x64.zip";
-        sha256 = "1psmbplz6jhnnf6hmfhxbmmhn4n1dpnhzbc12pxn645xhfpk9ark";
-      };
-      armv7l-linux = fetchurl {
-        url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-linux-armv7l.zip";
-        sha256 = "1pzs2cj12xw18jwab0mb8xhndwd95lbsj5ml5xdw2mb0ip5jsvsa";
-      };
-      aarch64-linux = fetchurl {
-        url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-linux-arm64.zip";
-        sha256 = "13pc7xn0dkb8i31vg9zplqcvb7r9r7q3inmr3419b5p9bl0687x8";
-      };
-    }.${stdenv.hostPlatform.system} or throwSystem;
-
-    buildInputs = [ unzip makeWrapper ];
-
-    buildCommand = ''
-      mkdir -p $out/lib/electron $out/bin
-      unzip -d $out/lib/electron $src
-      ln -s $out/lib/electron/electron $out/bin
-
-      fixupPhase
-
-      patchelf \
-        --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-        --set-rpath "${atomEnv.libPath}:${gtk2}/lib:${at-spi2-atk}/lib:$out/lib/electron" \
-        $out/lib/electron/electron
-
-      wrapProgram $out/lib/electron/electron \
-        --prefix LD_PRELOAD : ${stdenv.lib.makeLibraryPath [ libXScrnSaver ]}/libXss.so.1
-    '';
-  };
-
-  darwin = {
-    inherit name version meta;
-
-    src = fetchurl {
-      url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-darwin-x64.zip";
-      sha256 = "1vvjm4jifzjqvbs2kjlwg1h9p2czr2b5imjr9hld1j8nyfrzb0dx";
-    };
-
-    buildInputs = [ unzip ];
-
-    buildCommand = ''
-      mkdir -p $out/Applications
-      unzip $src
-      mv Electron.app $out/Applications
-      mkdir -p $out/bin
-      ln -s $out/Applications/Electron.app/Contents/MacOS/Electron $out/bin/electron
-    '';
-  };
-in
-
-  stdenv.mkDerivation (if stdenv.isDarwin then darwin else linux)
diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix
index 9897405d06f..14f9c209537 100644
--- a/pkgs/development/tools/electron/default.nix
+++ b/pkgs/development/tools/electron/default.nix
@@ -1,9 +1,17 @@
-{ stdenv, libXScrnSaver, makeWrapper, fetchurl, wrapGAppsHook, glib, gtk3, unzip, atomEnv, libuuid, at-spi2-atk, at-spi2-core }@args:
+{ stdenv, libXScrnSaver, makeWrapper, fetchurl, wrapGAppsHook, glib, gtk3, unzip, atomEnv, libuuid, at-spi2-atk, at-spi2-core, libdrm, mesa }@args:
 
 let
   mkElectron = import ./generic.nix args;
 in
 {
+  electron_3 = mkElectron "3.1.13" {
+    x86_64-linux = "1psmbplz6jhnnf6hmfhxbmmhn4n1dpnhzbc12pxn645xhfpk9ark";
+    x86_64-darwin = "1vvjm4jifzjqvbs2kjlwg1h9p2czr2b5imjr9hld1j8nyfrzb0dx";
+    i686-linux = "04i0rcp4ajp4nf4arcl5crcc7a85sf0ixqd8jx07k2b1irv4dc23";
+    armv7l-linux = "1pzs2cj12xw18jwab0mb8xhndwd95lbsj5ml5xdw2mb0ip5jsvsa";
+    aarch64-linux = "13pc7xn0dkb8i31vg9zplqcvb7r9r7q3inmr3419b5p9bl0687x8";
+  };
+
   electron_4 = mkElectron "4.2.12" {
     x86_64-linux = "72c5319c92baa7101bea3254a036c0cd3bcf257f4a03a0bb153668b7292ee2dd";
     x86_64-darwin = "89b0e16bb9b7072ed7ed1906fccd08540acdd9f42dd8a29c97fa17d811b8c5e5";
@@ -20,27 +28,35 @@ in
     aarch64-linux = "01f0fd313b060fb28a1022d68fb224d415fa22986e2a8f4aded6424b65e35add";
   };
 
-  electron_6 = mkElectron "6.1.7" {
-    x86_64-linux = "7fe94fc1edebe2f5645056a4300fc642c04155e55da8dd4ee058a0c0ef835ae8";
-    x86_64-darwin = "1c790a4cbda05f1c136d18fa6a09bdb09a1941f521207466756a3e95e343c485";
-    i686-linux = "1afd8ea79acb2b4782fb459e084549ed4cd4ead779764829b1d862148359eae5";
-    armv7l-linux = "14f2ea0459f0dda8c566b0fa4a2fe755f4220bbae313ea0c453861ac2f803196";
-    aarch64-linux = "80e05c1a0b51c335483666e959c1631a089246986b7fc3a4f9ee1288a57a602a";
+  electron_6 = mkElectron "6.1.12" {
+    x86_64-linux = "dc628216588a896e72991d46071d06ef11aed2cdeca18d11d472c29cfbf12349";
+    x86_64-darwin = "6c7244319fdfb90899a48ffd0f426e36dba7c3fc5e29b28a4d29fdca7fb924d3";
+    i686-linux = "4e61dc4aed1c1b933b233e02833948f3b17f81f3444f02e9108a78c0540159ab";
+    armv7l-linux = "06071b4dc59a6773ff604550ed9e7a7ae8722b5343cbb5d4b94942fe537211dc";
+    aarch64-linux = "4ae23b75be821044f7e5878fe8e56ab3109cbd403ecd88221effa6abf850260b";
+  };
+
+  electron_7 = mkElectron "7.3.1" {
+    x86_64-linux = "66f37aadf65c0274cc6e46b09e52c38b2c8c5b2d6bbf1cd8196cd69b9f9ab737";
+    x86_64-darwin = "351b30cab32539752ce5f9b53d2345352df922d57a152643c4eeb636a8941d23";
+    i686-linux = "f80b8a684da13736d7614ca4ad5704812d12537111cb45010e5f42e7e4403554";
+    armv7l-linux = "ef054696f4138e261b1310522d57bbdc5336e34488b3e273a8a794f8c26509c7";
+    aarch64-linux = "f32376ca85c9017b7ab399e58fa176d882baacb048dd69d816831f8dde9054bb";
   };
 
-  electron_7 = mkElectron "7.1.10" {
-    x86_64-linux = "296f034ac9a00afa4dc99ed145410c015af3f59cd7e9becc7709d70a4f8a9ebf";
-    x86_64-darwin = "10eb453c2b19948777a6f404fbdbdd48464a4cd63db16bd3ce66b60dda016724";
-    i686-linux = "681b6440d4f0f7ffa29a34610ef41103d72937d6e524d81fd2d0fa8d9eb67936";
-    armv7l-linux = "2c09e9a77f1da152d766dc2e43719e2852b70f917229466a2ac457416d1374f7";
-    aarch64-linux = "1dad780b872bbc069eb1cac9ff4ec8f0b8d200153ab7f51397e27219094db1f0";
+  electron_8 = mkElectron "8.3.1" {
+    x86_64-linux = "d5ad2bd32f7bf88f869a401017b35be0ea71e6fc7798fe2397b21602573e2639";
+    x86_64-darwin = "abe864d9e6327d499120f328e699f4819110d4245bce2f92b84e19d8cdc1c771";
+    i686-linux = "e75692c062b15c7f664cf3ff30832a526f3f66080469f7f93befaa4e0860c011";
+    armv7l-linux = "cfa0a14225b617492a311c21ad973f24708bc4013a992271368006cdb12ed488";
+    aarch64-linux = "1b9cd3ed7eb53ed914ac04c82d736c2677af807e553c87f0698890c2a3dcfd57";
   };
 
-  electron_8 = mkElectron "8.0.0" {
-    x86_64-linux = "b457a2ece83bb8a2efea42e75403740cbba051a64e325288760046b8999dd1c9";
-    x86_64-darwin = "3f96dfa1d4e0313d11b9e5c66e2df161cfdb30685ee9dadcc779bcad2fb3876e";
-    i686-linux = "0633ac2b6b6d00302e0e5df224d0e808e4ea9ecc14643e8534027e49b20436fb";
-    armv7l-linux = "8d1f3daa86c77e7aceb8c8e4491c094e789951c7d475fc536b85fe7d279794bf";
-    aarch64-linux = "484c04204478e8594d66f8bd332529c0c5eecfd71ee1705cc0478fa59c6818ee";
+  electron_9 = mkElectron "9.0.2" {
+    x86_64-linux = "08326f505692010d6c92f444a25f450cf19323cd98c5d94cab1057e80601caa1";
+    x86_64-darwin = "8ab5b48f873582a9231bc85b0f73d9735fabca51364b8c505da8f8238d658da5";
+    i686-linux = "2e950e4ab91453f7611fcfedbe90eff844677dbcc7df87a6fe0889bd3d82daaa";
+    armv7l-linux = "cc098caebbed5022f26d12f9b5dc316a35dbae0bcf62b9fc72c3b385f93a32d5";
+    aarch64-linux = "ee39854d8e9ee06e9b94c457a52b0556f570316bbd755d7022e3eade4b5974d5";
   };
 }
diff --git a/pkgs/development/tools/electron/generic.nix b/pkgs/development/tools/electron/generic.nix
index 018625da456..92dd72533ae 100644
--- a/pkgs/development/tools/electron/generic.nix
+++ b/pkgs/development/tools/electron/generic.nix
@@ -1,4 +1,4 @@
-{ stdenv, libXScrnSaver, makeWrapper, fetchurl, wrapGAppsHook, glib, gtk3, unzip, atomEnv, libuuid, at-spi2-atk, at-spi2-core}:
+{ stdenv, libXScrnSaver, makeWrapper, fetchurl, wrapGAppsHook, glib, gtk3, unzip, atomEnv, libuuid, at-spi2-atk, at-spi2-core, libdrm, mesa }:
 
 version: hashes:
 let
@@ -8,8 +8,9 @@ let
     description = "Cross platform desktop application shell";
     homepage = "https://github.com/electron/electron";
     license = licenses.mit;
-    maintainers = with maintainers; [ travisbhartwell manveru ];
+    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 {
@@ -33,6 +34,8 @@ let
     src = fetcher version (get tags platform) (get hashes platform);
   };
 
+  electronLibPath = stdenv.lib.makeLibraryPath ([ libuuid at-spi2-atk at-spi2-core ] ++ stdenv.lib.optionals (version > "9") [ libdrm mesa ]);
+
   linux = {
     buildInputs = [ glib gtk3 ];
 
@@ -56,7 +59,7 @@ let
     postFixup = ''
       patchelf \
         --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-        --set-rpath "${atomEnv.libPath}:${stdenv.lib.makeLibraryPath [ libuuid at-spi2-atk at-spi2-core ]}:$out/lib/electron" \
+        --set-rpath "${atomEnv.libPath}:${electronLibPath}:$out/lib/electron" \
         $out/lib/electron/electron
 
       wrapProgram $out/lib/electron/electron \
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 b83070296aa..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.6";
+  version = "1.1.9";
   pname = "fdroidserver";
 
   src = fetchFromGitLab {
     owner = "fdroid";
     repo = "fdroidserver";
     rev = version;
-    sha256 = "0bz3pb34bkdg3l6dvpzynnfhblv18x88a5bh2dm8v31g5f9agh7r";
+    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
new file mode 100644
index 00000000000..7ff7af7d18e
--- /dev/null
+++ b/pkgs/development/tools/fedora-coreos-config-transpiler/default.nix
@@ -0,0 +1,37 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+with lib;
+
+buildGoModule rec {
+  pname = "fcct";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "coreos";
+    repo = "fcct";
+    rev = "v${version}";
+    sha256 = "18hmnip1s0smp58q500p8dfbrmi4i3nsyq22ri5cs53wbvz3ih1l";
+  };
+
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  subPackages = [ "internal" ];
+
+  buildFlagsArray = ''
+    -ldflags=-X github.com/coreos/fcct/internal/version.Raw=v${version}
+  '';
+
+  postInstall = ''
+    mv $out/bin/{internal,fcct}
+  '';
+
+  meta = {
+    description = "Translates Fedora CoreOS configs into Ignition configs";
+    license = licenses.asl20;
+    homepage = "https://github.com/coreos/fcct";
+    maintainers = with maintainers; [ elijahcaine ruuda ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/flatpak-builder/default.nix b/pkgs/development/tools/flatpak-builder/default.nix
index 32519594e4f..79c8236a065 100644
--- a/pkgs/development/tools/flatpak-builder/default.nix
+++ b/pkgs/development/tools/flatpak-builder/default.nix
@@ -15,7 +15,7 @@
 , xmlto
 
 , acl
-, bazaar
+, breezy
 , binutils
 , bzip2
 , coreutils
@@ -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 = "${bazaar}/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 2d639467910..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.1";
+    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 = "00vm2p4xn8jnldjxcj0djpjjx2hppq0ii8367abhbswq7xfhy2d2";
+        sha256 = "1ga4qhydswalz02hz32p764zipn1lw63nhqlwqq96vjj9cwj1wii";
       };
       nativeBuildInputs = [ makeWrapper ];
       dontBuild = true;
diff --git a/pkgs/development/tools/gauge/default.nix b/pkgs/development/tools/gauge/default.nix
index c9df63cabb7..c9a462f1832 100644
--- a/pkgs/development/tools/gauge/default.nix
+++ b/pkgs/development/tools/gauge/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "gauge";
-  version = "1.0.4";
+  version = "1.1.1";
 
   goPackagePath = "github.com/getgauge/gauge";
   excludedPackages = ''\(build\|man\)'';
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "getgauge";
     repo = "gauge";
     rev = "v${version}";
-    sha256 = "1b52kpv5561pyjvqi8xmidarqp6lcyyy4sjsl4qjx4cr7hmk8kc7";
+    sha256 = "01x4838jljhhhcwfh6zbhy3g7l7nqvypv3g0ch9n2amsf2s16s3l";
   };
 
   meta = with stdenv.lib; {
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..d3907718e9d
--- /dev/null
+++ b/pkgs/development/tools/ginkgo/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "ginkgo";
+  version = "1.14.0";
+
+  src = fetchFromGitHub {
+    owner = "onsi";
+    repo = "ginkgo";
+    rev = "v${version}";
+    sha256 = "0nwvz0pqk2jqscq88fhppad4flrr8avkxfgbci4xklbar4g8i32v";
+  };
+  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 1532f64c246..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.0.16";
+  version = "2.1.4";
+
   src = fetchFromGitHub {
     repo = "git-quick-stats";
     owner = "arzzen";
     rev = version;
-    sha256 = "03v06r6gbn8bhya1ig9wdc92hh2ip7072syxkam3sjv150ld80cn";
+    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/glade/default.nix b/pkgs/development/tools/glade/default.nix
new file mode 100644
index 00000000000..85bc037b197
--- /dev/null
+++ b/pkgs/development/tools/glade/default.nix
@@ -0,0 +1,65 @@
+{ stdenv
+, gettext
+, fetchurl
+, python3
+, pkg-config
+, gtk3
+, glib
+, gobject-introspection
+, wrapGAppsHook
+, itstool
+, libxml2
+, docbook-xsl-nons
+, gnome3
+, gdk-pixbuf
+, libxslt
+, gsettings-desktop-schemas
+}:
+
+stdenv.mkDerivation rec {
+  pname = "glade";
+  version = "3.36.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/glade/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    gettext
+    itstool
+    wrapGAppsHook
+    docbook-xsl-nons
+    libxslt
+    libxml2
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    gtk3
+    glib
+    libxml2
+    python3
+    python3.pkgs.pygobject3
+    gsettings-desktop-schemas
+    gdk-pixbuf
+    gnome3.adwaita-icon-theme
+  ];
+
+  enableParallelBuilding = true;
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with stdenv.lib; {
+    homepage = "https://wiki.gnome.org/Apps/Glade";
+    description = "User interface designer for GTK applications";
+    maintainers = teams.gnome.members;
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/tools/gllvm/default.nix b/pkgs/development/tools/gllvm/default.nix
index c0c39892635..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.3";
+  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 = "12kdgsma62nzksvw266qm3ivkbz62ma93dd25wy0p19789v4fi7s";
+    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/glpaper/default.nix b/pkgs/development/tools/glpaper/default.nix
new file mode 100644
index 00000000000..94d140552a1
--- /dev/null
+++ b/pkgs/development/tools/glpaper/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchhg, meson, ninja, pkg-config, wlroots, wayland, wayland-protocols
+, libX11, libGL }:
+
+stdenv.mkDerivation {
+  name = "glpaper";
+  version = "unstable-2020-03-30";
+
+  src = fetchhg {
+    url = "https://hg.sr.ht/~scoopta/glpaper";
+    rev = "a95db77088dfb5636a87f3743fc9b5eca70c1ae2";
+    sha256 = "04y12910wvhy4aqx2sa63dy9l6nbs7b77yqpdhc96x2b3mgzgjfs";
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config ];
+  buildInputs = [
+    wayland
+    libX11 # required by libglvnd
+    libGL
+  ];
+
+  meta = with stdenv.lib; {
+    description =
+      "Wallpaper program for wlroots based Wayland compositors such as sway that allows you to render glsl shaders as your wallpaper";
+    homepage = "https://hg.sr.ht/~scoopta/glpaper";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ ccellado ];
+  };
+}
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 4d07939bd7c..9256fab43bf 100644
--- a/pkgs/development/tools/go-bindata/default.nix
+++ b/pkgs/development/tools/go-bindata/default.nix
@@ -1,25 +1,24 @@
-{ stdenv, buildGoPackage, fetchgit }:
+{ stdenv, buildGoPackage, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoPackage {
   pname = "go-bindata";
-  version = "20151023-${stdenv.lib.strings.substring 0 7 rev}";
-  rev = "a0ff2567cfb70903282db057e799fd826784d41d";
-  
+  version = "unstable-2015-10-23";
+
   goPackagePath = "github.com/jteeuwen/go-bindata";
 
-  src = fetchgit {
-    inherit rev;
-    url = "https://github.com/jteeuwen/go-bindata";
+  src = fetchFromGitHub {
+    owner = "jteeuwen";
+    repo = "go-bindata";
+    rev = "a0ff2567cfb70903282db057e799fd826784d41d";
     sha256 = "0d6zxv0hgh938rf59p1k5lj0ymrb8kcps2vfrb9kaarxsvg7y69v";
   };
 
   excludedPackages = "testdata";
 
   meta = with stdenv.lib; {
-    homepage    = "https://github.com/jteeuwen/go-bindata";
+    homepage = "https://github.com/jteeuwen/go-bindata";
     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;
+    license = licenses.cc0;
   };
 }
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..2864308c14d
--- /dev/null
+++ b/pkgs/development/tools/go-migrate/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "go-migrate";
+  version = "4.11.0";
+
+  src = fetchFromGitHub {
+    owner = "golang-migrate";
+    repo = "migrate";
+    rev = "v${version}";
+    sha256 = "Dw+TiuksgOfFBCzNc9rsxyQCoXES+fpr4wTrZfqohGM=";
+  };
+
+  vendorSha256 = "CezVFRZ/cknvK4t/MjyP46zJACGkzj4CZ5JVQ502Ihw=";
+
+  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 febf71657eb..28d429c6432 100644
--- a/pkgs/development/tools/go-protobuf/default.nix
+++ b/pkgs/development/tools/go-protobuf/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "go-protobuf";
-  version = "1.3.2";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "golang";
     repo = "protobuf";
     rev = "v${version}";
-    sha256 = "1k1wb4zr0qbwgpvz9q5ws9zhlal8hq7dmq62pwxxriksayl6hzym";
+    sha256 = "0m5z81im4nsyfgarjhppayk4hqnrwswr3nix9mj8pff8x9jvcjqw";
   };
 
-  modSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
+  vendorSha256 = "04w9vhkrwb2zfqk73xmhignjyvjqmz1j93slkqp7v8jj2dhyla54";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     homepage    = "https://github.com/golang/protobuf";
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
new file mode 100644
index 00000000000..7f0a1a50b6d
--- /dev/null
+++ b/pkgs/development/tools/go-swagger/default.nix
@@ -0,0 +1,28 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "go-swagger";
+  version = "0.25.0";
+
+  src = fetchFromGitHub {
+    owner = "go-swagger";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "05zyja58ff0k4fsfmb1j8q5p7lysi78m7jklrzz2xv8ianifkfbg";
+  };
+
+  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";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
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-toml/default.nix b/pkgs/development/tools/go-toml/default.nix
new file mode 100644
index 00000000000..0cb16354b21
--- /dev/null
+++ b/pkgs/development/tools/go-toml/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "go-toml";
+  version = "1.8.0";
+
+  src = fetchFromGitHub {
+    owner = "pelletier";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0fxmjm85c9h43lvqz71wr93fcc63bhj82nwby80222xx8ja63g7y";
+  };
+
+  goPackagePath = "github.com/pelletier/go-toml";
+
+  excludedPackages = [ "cmd/tomltestgen" ];
+
+  meta = with lib; {
+    description = "Go library for the TOML language";
+    homepage = "https://github.com/pelletier/go-toml";
+    maintainers = [ maintainers.marsam ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/tools/go-tools/default.nix b/pkgs/development/tools/go-tools/default.nix
index 2035408de3b..ec4b1ee66b3 100644
--- a/pkgs/development/tools/go-tools/default.nix
+++ b/pkgs/development/tools/go-tools/default.nix
@@ -5,18 +5,18 @@
 
 buildGoModule rec {
   pname = "go-tools";
-  version = "2020.1.3";
-
-  excludedPackages = ''\(simple\|ssa\|ssa/ssautil\|lint\|staticcheck\|stylecheck\|unused\)/testdata'';
+  version = "2020.1.5";
 
   src = fetchFromGitHub {
     owner = "dominikh";
     repo = "go-tools";
     rev = version;
-    sha256 = "0pvi1mzhy6zgx4zfgdypbl4zhvgg11hl5qv7blf2qs0a96j2djhf";
+    sha256 = "1ry3ywncc9qkmh8ihh67v6k8nmqhq2gvfyrl1ykl4z6s56b7f9za";
   };
 
-  modSha256 = "03560xjr2531xj87paskfx2zs364fz6y4kpsid8x08s1syq9nq7p";
+  vendorSha256 = "0nbbngsphklzhcmqafrw1im2l1vnfcma9sb4vskdpdrsadv5ss5r";
+
+  doCheck = false;
 
   meta = with lib; {
     description = "A collection of tools and libraries for working with Go code, including linters and static analysis";
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 5cf51599272..c8149ecc82d 100644
--- a/pkgs/development/tools/godef/default.nix
+++ b/pkgs/development/tools/godef/default.nix
@@ -5,10 +5,11 @@ buildGoModule rec {
   version = "1.1.2";
   rev = "v${version}";
 
-  goPackagePath = "github.com/rogpeppe/godef";
   subPackages = [ "." ];
 
-  modSha256 = "06mi8f2qs54gk2anxqcf70h96s63a99xhnlm294djyv37wy1yffi";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   src = fetchFromGitHub {
     inherit rev;
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 c5e27289615..080f4bd3305 100644
--- a/pkgs/development/tools/gofumpt/default.nix
+++ b/pkgs/development/tools/gofumpt/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "1cw9mmavxz8gxzzwsllvf5lwb2wwi19jbc7hcwxsi4ywp7a84gh0";
   };
 
-  modSha256 = "1ladpxhr90awnms2qmlm2lz91wyh92fl3rqbfr54qngrkpkpbhr2";
+  vendorSha256 = "14a3p163xy861xb6x160wy15hzjc75n36jdyzaxl877i17shba8z";
+
+  doCheck = false;
 
   meta = with lib; {
     description = "A stricter gofmt";
diff --git a/pkgs/development/tools/gogetdoc/default.nix b/pkgs/development/tools/gogetdoc/default.nix
index 744ff0b6073..2a111a8d1ab 100644
--- a/pkgs/development/tools/gogetdoc/default.nix
+++ b/pkgs/development/tools/gogetdoc/default.nix
@@ -8,9 +8,10 @@ buildGoModule rec {
   version = "2019-02-28";
   rev = "b37376c5da6aeb900611837098f40f81972e63e4";
 
-  modSha256 = "0j6a2b8hx54cnjz1ya65v9czg9ygqj6zwg52ffpz7cqkx0pgl9q4";
+  vendorSha256 = null;
+
+  doCheck = false;
 
-  goPackagePath = "github.com/zmb3/gogetdoc";
   excludedPackages = "\\(testdata\\)";
 
   src = fetchFromGitHub {
@@ -21,8 +22,6 @@ buildGoModule rec {
     sha256 = "1v74zd0x2xh10603p8raazssacv3y0x0lr9apkpsdk0bfp5jj0lr";
   };
 
-  goDeps = ./deps.nix;
-
   meta = with lib; {
     description = "Gets documentation for items in Go source code";
     homepage = "https://github.com/zmb3/gogetdoc";
diff --git a/pkgs/development/tools/gogetdoc/deps.nix b/pkgs/development/tools/gogetdoc/deps.nix
deleted file mode 100644
index d770057d1d7..00000000000
--- a/pkgs/development/tools/gogetdoc/deps.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "6adeb8aab2de";
-      sha256 = "0kylkki0ksdm12ppl37fghzbma9hmgqwph0nwngv08v4blk6li6k";
-    };
-  }
-]
diff --git a/pkgs/development/tools/golangci-lint/default.nix b/pkgs/development/tools/golangci-lint/default.nix
index be582047157..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.26.0";
+  version = "1.30.0";
 
   src = fetchFromGitHub {
     owner = "golangci";
     repo = "golangci-lint";
     rev = "v${version}";
-    sha256 = "1xw6m4ps6yw8gnkwy8v7rrz2b8c8n72cd7vkpx481dkd36vccpkc";
+    sha256 = "1a2dmjg7mlm908zlh5vibqv17dpn6hvdn8rx14pdm9kw1q51iish";
   };
 
-  modSha256 = "0xgnimr1jydrgwhbyjaz710kx3m3505nhy5cs10p501qxbnzkjf9";
+  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 2f784b999e2..cf2c5a5b9a6 100644
--- a/pkgs/development/tools/gomodifytags/default.nix
+++ b/pkgs/development/tools/gomodifytags/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "gomodifytags";
-  version = "1.4.0";
+  version = "1.6.0";
 
-  modSha256 = "0nkdk2zgnwsg9lv20vqk2lshk4g9fqwqxd5bpr78nlahb9xk486s";
+  vendorSha256 = null;
 
-  goPackagePath = "github.com/fatih/gomodifytags";
+  doCheck = false;
 
   src = fetchFromGitHub {
     owner = "fatih";
     repo = "gomodifytags";
     rev = "v${version}";
-    sha256 = "1436wjqs6n2jxlyzx38nm4ih6fr11bybivg3wy5nvzfs6cs59q63";
+    sha256 = "1wmzl5sk5mc46njzn86007sqyyv6han058ppiw536qyhk88rzazq";
   };
 
   meta = {
diff --git a/pkgs/development/tools/gopkgs/default.nix b/pkgs/development/tools/gopkgs/default.nix
index 51c4255a013..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 {
@@ -15,7 +13,9 @@ buildGoModule rec {
     sha256 = "1jak1bg6k5iasscw68ra875k59k3iqhka2ykabsd427k1j3mypln";
   };
 
-  modSha256 = "0v9lg5kq3776b2s4kgyi19jy8shjqrr0f5ljrchsj1k7867sxiw7";
+  vendorSha256 = "1pwsc488ldw039by8nqpni801zry7dnf0rx4hhd73xpv2w7s8n2r";
+
+  doCheck = false;
 
   meta = {
     description = "Tool to get list available Go packages.";
diff --git a/pkgs/development/tools/gopls/default.nix b/pkgs/development/tools/gopls/default.nix
index 77fd195b1ab..4ce65518a85 100644
--- a/pkgs/development/tools/gopls/default.nix
+++ b/pkgs/development/tools/gopls/default.nix
@@ -1,23 +1,24 @@
-{ stdenv, go, buildGoModule, fetchgit }:
+{ stdenv, buildGoModule, fetchgit }:
 
 buildGoModule rec {
   pname = "gopls";
-  version = "0.4.0";
-  rev = "72e4a01eba4315301fd9ce00c8c2f492580ded8a";
+  version = "0.4.4";
 
   src = fetchgit {
     rev = "gopls/v${version}";
     url = "https://go.googlesource.com/tools";
-    sha256 = "1sn6f638hgqpyd8rfyal3y6i6p21x4340jnhsvmgcd8lph49pplb";
+    sha256 = "1h4ica6rwrdp5wg4ybpzvyvszj4m5l6w9hpvd9r2qcd9qdnqlykf";
   };
 
   modRoot = "gopls";
-  modSha256 = "1p0g28i707xyxz1g6hb56qlc4km9ik7vjky0v80hw7n73vzs5mr9";
+  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 ];
   };
 }
diff --git a/pkgs/development/tools/gore/default.nix b/pkgs/development/tools/gore/default.nix
new file mode 100644
index 00000000000..fbc3152cef1
--- /dev/null
+++ b/pkgs/development/tools/gore/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "gore";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "motemen";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "61Hn3Vs4BZtAX8WNJlUeodvEWvwLo+lXKsc8JxRwOE4=";
+  };
+
+  vendorSha256 = "3bq6sRKS5dq7WCPpKGm2q5gFajthR3zhrTFGve9zXhY=";
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Yet another Go REPL that works nicely.";
+    homepage = "https://github.com/motemen/gore";
+    license = licenses.mit;
+    maintainers = with maintainers; [ offline ];
+  };
+}
diff --git a/pkgs/development/tools/gosec/default.nix b/pkgs/development/tools/gosec/default.nix
index 2600d13cab9..ffbd98a4577 100644
--- a/pkgs/development/tools/gosec/default.nix
+++ b/pkgs/development/tools/gosec/default.nix
@@ -1,29 +1,30 @@
-{ buildGoPackage
-, lib
-, fetchFromGitHub
-}:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "gosec";
-  version = "1.2.0";
+  version = "2.4.0";
 
-  goPackagePath = "github.com/securego/gosec";
-  excludedPackages = ''cmd/tlsconfig'';
+  subPackages = [ "cmd/gosec" ];
 
   src = fetchFromGitHub {
     owner = "securego";
-    repo = "gosec";
-    rev = version;
-    sha256 = "1420yl4cjp4v4xv0l0wbahgl6bjhz77lx5va9hqa6abddmqvx1hg";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0mqijzr3vj4wycykqpjz9xw9fhpbnzz988z2q3nldb5ax0pyrxca";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "063dpq1k5lykp18gshlgg098yvppicv3cz8gjn1mvfhac2rl9yqr";
 
-  meta = with lib; {
-    description = "Golang security checker";
+  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";
-    license = licenses.asl20 ;
-    maintainers = with maintainers; [ kalbasit ];
+    description = "Golang security checker";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ kalbasit nilp0inter ];
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
+
diff --git a/pkgs/development/tools/gosec/deps.nix b/pkgs/development/tools/gosec/deps.nix
deleted file mode 100644
index 80a77e7fb80..00000000000
--- a/pkgs/development/tools/gosec/deps.nix
+++ /dev/null
@@ -1,193 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-
-  {
-    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/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "v1.2.0";
-      sha256 = "0kf4b59rcbb1cchfny2dm9jyznp8ri2hsb14n8iak1q8986xa0ab";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/kisielk/gotool";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kisielk/gotool";
-      rev = "0de1eaf82fa3";
-      sha256 = "177af7bjq6clmkqshnmnwlpwvx80kpi2277q275iwq59lp48viq1";
-    };
-  }
-
-  {
-    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/nbutton23/zxcvbn-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nbutton23/zxcvbn-go";
-      rev = "a22cb81b2ecd";
-      sha256 = "0hm16vc7xrw0cqla6xcn59bb7n2sa0j8rkniywn5dqnbrpza12cd";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/onsi/ginkgo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/onsi/ginkgo";
-      rev = "11459a886d9c";
-      sha256 = "1nswc1fnrrs792qbix05h91bilj8rr3wxmxgwi97p2gjk0r292zh";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/onsi/gomega";
-    fetch = {
-      type = "git";
-      url = "https://github.com/onsi/gomega";
-      rev = "dcabb60a477c";
-      sha256 = "1775lv5jbsgv3ghq5v2827slqlhqdadrzc1nkpq4y0hdv2qzrgkm";
-    };
-  }
-
-  {
-    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/ryanuber/go-glob";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ryanuber/go-glob";
-      rev = "256dc444b735";
-      sha256 = "07rsd7hranghwc68ib0r2zxd9d5djanzjvd84j9dgj3wqsyg5mi2";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "v1.2.2";
-      sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
-    };
-  }
-
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "8351a756f30f";
-      sha256 = "0b6m579i3wrx1m69mqkdng5gjfssprxx0pg45kzrdi68sh0zr5d1";
-    };
-  }
-
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "1d60e4601c6f";
-      sha256 = "046jlanz2lkxq1r57x9bl6s4cvfqaic6p2xybsj8mq1120jv4rs6";
-    };
-  }
-
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "164713f0dfce";
-      sha256 = "1qn9vvyqsaaj0az0rbilzc4pfv9sl4vh78c2g37yya5gcdnarh3w";
-    };
-  }
-
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "1cbadb444a80";
-      sha256 = "0ih9ysagh4ylj08393497sscf3yziybc6acg4mrh0wa7mld75j56";
-    };
-  }
-
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "e531a2a1c15f";
-      sha256 = "0740w56nmjqdj7ld1h3gpcpi3x8n81bdx0pp267rz9hmwkrb2s1c";
-    };
-  }
-
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "788fd7840127";
-      sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
-    };
-  }
-
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "eb3733d160e7";
-      sha256 = "1srhvcaa9db3a6xj29mkjr5kg33y71pclrlx4vcwz5m1lgb5c7q6";
-    };
-  }
-]
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 3dd7fb9e352..9046a2ef82f 100644
--- a/pkgs/development/tools/gotestsum/default.nix
+++ b/pkgs/development/tools/gotestsum/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "gotestsum";
-  version = "0.4.2";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "gotestyourself";
     repo = "gotestsum";
     rev = "v${version}";
-    sha256 = "0zifha3mj7386q2accrdmd8qniingadxz1v8vg4mciwi723msr44";
+    sha256 = "08bb865gl1ykqr7wm7a1jikjdlc2dqv1f3hllnwwr630c8y4k806";
   };
 
-  modSha256 = "10zkk4zqla5yqs5sq2qc7x1vhadfyd1l7s29xyjmg4grs8iimk2j";
+  vendorSha256 = "1injixhllv41glb3yz276gjrkiwwkfimrhb367d2pvjpzqmhplan";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/pkgs/development/tools/gotools/default.nix b/pkgs/development/tools/gotools/default.nix
index 6efb1d5da8f..0ab13411130 100644
--- a/pkgs/development/tools/gotools/default.nix
+++ b/pkgs/development/tools/gotools/default.nix
@@ -21,7 +21,9 @@ buildGoModule rec {
     rm -rf gopls
   '';
 
-  modSha256 = "1pijbkp7a9n2naicg21ydii6xc0g4jm5bw42lljwaks7211ag8k9";
+  vendorSha256 = "0pplmqxrnc8qnr5708igx4dm7rb0hicvhg6lh5hj8zkx38nb19s0";
+
+  doCheck = false;
 
   postConfigure = ''
     # Make the builtin tools available here
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..9373b902dbd
--- /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.3.0.0";
+  src = fetchgit {
+    url = "https://github.com/haskell/haskell-language-server.git";
+    sha256 = "0gh3sgy6a08d8d3q6r2qn5r817ilzka2qkp0g0y6wsx7rjwag0yx";
+    rev = "23dda97f583e8ff39993b89c01bbd1ac24187605";
+    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..98f1b0c494c
--- /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/wz1000/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..498859843c4
--- /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 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/wz1000/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 bdaf04054e9..0044426b4d4 100644
--- a/pkgs/development/tools/hcloud/default.nix
+++ b/pkgs/development/tools/hcloud/default.nix
@@ -1,40 +1,35 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "hcloud";
-  version = "1.16.2";
-
-  goPackagePath = "github.com/hetznercloud/cli";
+  version = "1.17.0";
 
   src = fetchFromGitHub {
     owner = "hetznercloud";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "0cxh92df8gdl4bmr22pdvdxdkdjyfy0jv48y0k6awy1xz61r94ap";
+    sha256 = "1brqqcyyljkdd24ljx2qbr648ihhhmr8mq6gs90n63r59ci6ksch";
   };
 
-  modSha256 = "1sdp62q4rnx7dp4i0dhnc8kzi8h6zzjdy7ym0mk9r7xkxxx0s3ds";
+  nativeBuildInputs = [ installShellFiles ];
 
-  buildFlagsArray = [ "-ldflags=" "-w -X github.com/hetznercloud/cli/cli.Version=${version}" ];
+  vendorSha256 = "1m96j9cwqz2b67byf53qhgl3s0vfwaklj2pm8364qih0ilvifppj";
 
-  postInstall = ''
-    mkdir -p \
-      $out/etc/bash_completion.d \
-      $out/share/zsh/vendor-completions
+  doCheck = false;
 
-    # Add bash completions
-    $out/bin/hcloud completion bash > "$out/etc/bash_completion.d/hcloud"
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/hetznercloud/cli/cli.Version=${version}" ];
 
-    # Add zsh completions
-    echo "#compdef hcloud" > "$out/share/zsh/vendor-completions/_hcloud"
-    $out/bin/hcloud completion zsh >> "$out/share/zsh/vendor-completions/_hcloud"
+  postInstall = ''
+    for shell in bash zsh; do
+      $out/bin/hcloud completion $shell > hcloud.$shell
+      installShellCompletion hcloud.$shell
+    done
   '';
 
   meta = {
     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/heroku/default.nix b/pkgs/development/tools/heroku/default.nix
index a78a74a3d0c..5ef18409060 100644
--- a/pkgs/development/tools/heroku/default.nix
+++ b/pkgs/development/tools/heroku/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "heroku";
-  version = "7.39.2";
+  version = "7.42.2";
 
   src = fetchurl {
     url = "https://cli-assets.heroku.com/heroku-v${version}/heroku-v${version}.tar.xz";
-    sha256 = "13bbqxklpwmh84a1dc6inphqg1nm2l0b7vqs3x9lrjm4bg7c8kjr";
+    sha256 = "1fddqqn2nwvniignkq8d5jvh0217zb960s402h57l4wg3djq7phr";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    homepage = "https://cli.heroku.com";
+    homepage = "https://devcenter.heroku.com/articles/heroku-cli";
     description = "Everything you need to get started using Heroku";
     maintainers = with lib.maintainers; [ aflatter mirdhyn peterhoeg marsam ];
     license = lib.licenses.mit;
diff --git a/pkgs/development/tools/hobbes/default.nix b/pkgs/development/tools/hobbes/default.nix
index b56afc0a435..5fd9d314c5e 100644
--- a/pkgs/development/tools/hobbes/default.nix
+++ b/pkgs/development/tools/hobbes/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   name = "hobbes";
-  version = "unstable-2020-03-10";
+  version = "unstable-2020-05-19";
 
   src = fetchFromGitHub {
     owner = "morgan-stanley";
     repo = "hobbes";
-    rev = "ae956df9da3f3b24630bc1757dfaa2a8952db07a";
-    sha256 = "1a0lb87vb0qcp5wy6swk4jcc88l7vhy6iflsk7zplw547mbjhjsy";
+    rev = "3d80a46b44a362a97a6b963a2bf788fd1f67ade1";
+    sha256 = "03m915g3283z2nfdr03dj5k76wn917knfqxb0xj3qinbl4cka2p1";
   };
 
   nativeBuildInputs = [
@@ -33,8 +33,7 @@ stdenv.mkDerivation {
     '';
     homepage = "https://github.com/Morgan-Stanley/hobbes";
     license = licenses.asl20;
-    maintainers = [ maintainers.thmzlt ];
+    maintainers = with maintainers; [ kthielen thmzlt ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/tools/icestorm/default.nix b/pkgs/development/tools/icestorm/default.nix
index 607e2ffe4a9..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 = "2019.09.13";
+  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    = "0ec00d892a91cc68e45479b46161f649caea2933";
-    sha256 = "1qlh99fafb7xga702k64fmc9m700nsddrfgcq4x8qn8fplsb64f1";
+    rev    = "da52117ccd5b4147f64dc7345357ec5439cd7543";
+    sha256 = "072bl3vmvb06ry0ci3b1sfjpm3iigb874khzja4azcai969ybp4k";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/tools/java/cfr/default.nix b/pkgs/development/tools/java/cfr/default.nix
index 09684ea9986..ce1501fa4dd 100644
--- a/pkgs/development/tools/java/cfr/default.nix
+++ b/pkgs/development/tools/java/cfr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cfr";
-  version = "0.149";
+  version = "0.150";
 
   src = fetchurl {
     url = "http://www.benf.org/other/cfr/cfr_${version}.jar";
-    sha256 = "1jksjr1345wj42nfad7k6skvpg5qsm4xgjdwzb90zhn27ddkns6v";
+    sha256 = "09lq21phnhr374wb8gj355jsqj8c4m5m818r3pbr8f8zpaamjxfj";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/java/dex2jar/default.nix b/pkgs/development/tools/java/dex2jar/default.nix
new file mode 100644
index 00000000000..c1f7f132985
--- /dev/null
+++ b/pkgs/development/tools/java/dex2jar/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, lib
+, fetchurl
+, jre
+, makeWrapper
+, unzip
+}:
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "dex2jar";
+  version  = "2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/${name}.zip";
+    sha256 = "1g3mrbyl8sdw1nhp17z23qbfzqpa0w2yxrywgphvd04jdr6yn1vr";
+  };
+
+  nativeBuildInputs = [ makeWrapper unzip ];
+
+  postPatch = ''
+    rm *.bat
+    chmod +x *.sh
+  '';
+
+  installPhase = ''
+    f=$out/lib/dex2jar/
+
+    mkdir -p $f $out/bin
+
+    mv * $f
+    for i in $f/*.sh; do
+      n=$(basename ''${i%.sh})
+      makeWrapper $i $out/bin/$n --prefix PATH : ${lib.makeBinPath [ jre ] }
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://sourceforge.net/projects/dex2jar/;
+    description = "Tools to work with android .dex and java .class files";
+    maintainers = with maintainers; [ makefu ];
+    license = licenses.asl20;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/tools/java/visualvm/default.nix b/pkgs/development/tools/java/visualvm/default.nix
index b85ae307ee5..ab90cbea83d 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";
+  version = "2.0.3";
   pname = "visualvm";
 
   src = fetchzip {
     url = "https://github.com/visualvm/visualvm.src/releases/download/${version}/visualvm_${builtins.replaceStrings ["."] [""]  version}.zip";
-    hash = "sha256-+T8U/GwMA46FHd0p6qpklHXb6+HPCbbIbo6s2Y/77RQ=";
+    sha256 = "1pwgsasja30xbm1ma0kp4nami2nwyy6aizam8nfl6jd7jkz4d7mk";
   };
 
   desktopItem = makeDesktopItem {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
       comment = "Java Troubleshooting Tool";
       desktopName = "VisualVM";
       genericName = "Java Troubleshooting Tool";
-      categories = "Application;Development;";
+      categories = "Development;";
   };
 
   nativeBuildInputs = [ makeWrapper ];
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/jp/default.nix b/pkgs/development/tools/jp/default.nix
index 1e7d1023edf..f05c788dabe 100644
--- a/pkgs/development/tools/jp/default.nix
+++ b/pkgs/development/tools/jp/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "jp";
-  version = "0.1.2";
+  version = "0.1.3";
   rev = version;
 
   goPackagePath = "github.com/jmespath/jp";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     inherit rev;
     owner = "jmespath";
     repo = "jp";
-    sha256 = "1i0jl0c062crigkxqx8zpyqliz8j4d37y95cna33jl777kx42r6h";
+    sha256 = "0fdbnihbd0kq56am3bmh2zrfk4fqjslcbm48malbgmpqw3a5nvpi";
   };
   meta = with stdenv.lib; {
     description = "A command line interface to the JMESPath expression language for JSON";
diff --git a/pkgs/development/tools/just/default.nix b/pkgs/development/tools/just/default.nix
index 8ba536e3b5f..ebf44d9d699 100644
--- a/pkgs/development/tools/just/default.nix
+++ b/pkgs/development/tools/just/default.nix
@@ -1,18 +1,17 @@
-{ stdenv, fetchFromGitHub, rustPlatform, coreutils, bash, dash
-, installShellFiles }:
+{ stdenv, fetchFromGitHub, rustPlatform, coreutils, bash, installShellFiles }:
 
 rustPlatform.buildRustPackage rec {
   pname = "just";
-  version = "0.5.10";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "casey";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0s8np28glzn3kmh59dwk86yc9fb2lm9fq2325kzmy7rkb5jsdcl1";
+    sha256 = "07fjixz8y5rxfwpyr1kiimnn27jhc20gacd17i0yvfcpy5qf8z5p";
   };
 
-  cargoSha256 = "05mrzav3aydvwac9jjckdmlxvxnlcncmkfsdb9z7zvxia4k89w1l";
+  cargoSha256 = "1zn0kiqi8p25lscjd661gczay631nwzadl36cfzqnbww6blayy1j";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -24,7 +23,7 @@ rustPlatform.buildRustPackage rec {
     installShellCompletion --zsh  --name _just     completions/just.zsh
   '';
 
-  checkInputs = [ coreutils bash dash ];
+  checkInputs = [ coreutils bash ];
 
   preCheck = ''
     # USER must not be empty
@@ -41,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 9b1b4926270..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.24.0";
+  version = "0.27.1";
 
   goPackagePath = "github.com/loadimpact/k6";
 
@@ -10,14 +10,15 @@ buildGoPackage rec {
     owner = "loadimpact";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1riyyi4lxdaqilzzkxzzw3hzcrjjcylq2jh3p3656f99wiisvj28";
+    sha256 = "0ni7x64al49adzy6kwzxyi56w556qy34888hxsldjrnndlchc0vz";
   };
 
   subPackages = [ "./" ];
 
   meta = with stdenv.lib; {
-    homepage = "https://k6.io/";
     description = "A modern load testing tool, using Go and JavaScript";
+    homepage = "https://k6.io/";
+    changelog = "https://github.com/loadimpact/k6/releases/tag/v${version}";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ offline ];
   };
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 bbcb10a354c..3a0fff71dc7 100644
--- a/pkgs/development/tools/kcli/default.nix
+++ b/pkgs/development/tools/kcli/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "0whijr2r2j5bvfy8jgmpxsa0zvwk5kfjlpnkw4za5k35q7bjffls";
   };
 
-  modSha256 = "1wcqh3306q9wxb6pnl8cpk73vmy36bjv2gil03j7j4pajs1f2lwn";
+  vendorSha256 = "0whqrms5mc7v14p2h1jfvkawm30xaylivijlsghrsaq468qcgg15";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/kind/default.nix b/pkgs/development/tools/kind/default.nix
index 77df7bee063..6ea2c87f888 100644
--- a/pkgs/development/tools/kind/default.nix
+++ b/pkgs/development/tools/kind/default.nix
@@ -13,8 +13,10 @@ buildGoModule rec {
     sha256 = "0r301nqvycik8fwlghq0cymmq4rm7xp8haj39i2nynxyw8zk6zym";
   };
 
-  modSha256 = "1vfdyd4yj79f2n0w98k9h4sklxwg49ajlp1blvpslbzmpfkmcjsz";
-  goPackagePath = "sigs.k8s.io/kind";
+  vendorSha256 = "1qvbm8v8yah6r6cw1cvdw79yiwxb2amzdkkzvzbwigy0j4bvn9mi";
+
+  doCheck = false;
+
   subPackages = [ "." ];
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/development/tools/ktlint/default.nix b/pkgs/development/tools/ktlint/default.nix
index e2897135cd0..fce25903aca 100644
--- a/pkgs/development/tools/ktlint/default.nix
+++ b/pkgs/development/tools/ktlint/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ktlint";
-  version = "0.36.0";
+  version = "0.37.2";
 
   src = fetchurl {
     url = "https://github.com/shyiko/ktlint/releases/download/${version}/ktlint";
-    sha256 = "0pjxd4z0byqrr5qbk3k38vr1ln052m5vhlrky4agmhg5zhn38mm6";
+    sha256 = "1hhycvvp21gy6g71hwf3pk2jnccpnhcf2z7c85shzffhddy1wc0v";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/kubectx/default.nix b/pkgs/development/tools/kubectx/default.nix
index 8b980dc7e31..59a7c8300e2 100644
--- a/pkgs/development/tools/kubectx/default.nix
+++ b/pkgs/development/tools/kubectx/default.nix
@@ -1,53 +1,31 @@
-{ stdenv, lib, fetchFromGitHub, kubectl, makeWrapper }:
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
 
-with lib;
-
-stdenv.mkDerivation rec {
+buildGoModule rec {
   pname = "kubectx";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "ahmetb";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1b22jk8zl944w5zn3s7ybkkbmzp9519x32pfqwd1malfly7dzf55";
+    sha256 = "1c7y5hj4w72bm6y3riw0acayn4w9x7bbf1vykqcprbyw3a3dvcsw";
   };
 
-  buildInputs = [ makeWrapper ];
+  vendorSha256 = "168hfdc2rfwpz2ls607bz5vsm1aw4brhwm8hmbiq1n1l2dn2dj0y";
 
-  dontBuild = true;
   doCheck = false;
 
-  installPhase = ''
-    mkdir -p $out/bin
-    mkdir -p $out/share/zsh/site-functions
-    mkdir -p $out/share/bash-completion/completions
-    mkdir -p $out/share/fish/vendor_completions.d
-
-    cp kubectx $out/bin
-    cp kubens $out/bin
-
-    # Provide ZSH completions
-    cp completion/kubectx.zsh $out/share/zsh/site-functions/_kubectx
-    cp completion/kubens.zsh $out/share/zsh/site-functions/_kubens
-
-    # Provide BASH completions
-    cp completion/kubectx.bash $out/share/bash-completion/completions/kubectx
-    cp completion/kubens.bash $out/share/bash-completion/completions/kubens
-
-    # Provide FISH completions
-    cp completion/*.fish $out/share/fish/vendor_completions.d/
+  nativeBuildInputs = [ installShellFiles ];
 
-    for f in $out/bin/*; do
-      wrapProgram $f --prefix PATH : ${makeBinPath [ kubectl ]}
-    done
+  postInstall = ''
+    installShellCompletion completion/*
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Fast way to switch between clusters and namespaces in kubectl!";
     license = licenses.asl20;
     homepage = "https://github.com/ahmetb/kubectx";
-    maintainers = with maintainers; [ periklis ];
+    maintainers = with maintainers; [ jlesquembre ];
     platforms = with platforms; unix;
   };
 }
diff --git a/pkgs/development/tools/kubeprompt/default.nix b/pkgs/development/tools/kubeprompt/default.nix
index 7c6f3f3396c..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";
-  modSha256 = "0rbpdk2dixywn3wcdgz48f3xw3b7fk8xh7mrlx27wz7fq5wj9v8f";
+  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;
   };
 }
diff --git a/pkgs/development/tools/kubie/default.nix b/pkgs/development/tools/kubie/default.nix
index de45ff50c03..1895cd0786d 100644
--- a/pkgs/development/tools/kubie/default.nix
+++ b/pkgs/development/tools/kubie/default.nix
@@ -1,31 +1,30 @@
-{ stdenv, rustPlatform, fetchFromGitHub }:
+{ stdenv, rustPlatform, fetchFromGitHub, installShellFiles, Security }:
 
-with rustPlatform;
-
-buildRustPackage rec {
+rustPlatform.buildRustPackage rec {
   pname = "kubie";
-  version = "0.8.4";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "sbstp";
     repo = "kubie";
-    sha256 = "1f82xlhhxbjadjw609kr1kdm4n69c9mqjia4b3k505wjh7cc55n0";
+    sha256 = "0q1dxry10iaf7zx6vyr0da4ihqx7l8dlyhlqm8qqfz913h2wam8c";
   };
 
-  cargoSha256 = "0mish7wqwq5ynl98n6swdn5i6mg62aih5rfykbl3wx39b468n481";
+  cargoSha256 = "13zs2xz3s4732zxsimg7b22d9707ln4gpscznxi13cjkf5as9gbz";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
 
-  installPhase = ''
-    mkdir -p $out/share/bash-completion/completions
-    cp -v ${src}/completion/kubie.bash $out/share/bash-completion/completions/kubie
+  postInstall = ''
+    installShellCompletion completion/kubie.bash
   '';
 
   meta = with stdenv.lib; {
-    description =
-      "Shell independent context and namespace switcher for kubectl";
+    description = "Shell independent context and namespace switcher for kubectl";
     homepage = "https://github.com/sbstp/kubie";
     license = with licenses; [ zlib ];
     maintainers = with maintainers; [ illiusdope ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/kustomize/default.nix b/pkgs/development/tools/kustomize/default.nix
index bf4aae23be7..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";
 
-  modSha256 = "1bas6al14ck0d2ccb4235426a5hldqsm0nf8vi76chz4nahzb71g";
+  vendorSha256 = "01ff3w4hwp4ynqhg8cplv0i2ixs811d2x2j6xbh1lslyyh3z3wc5";
 
   meta = with lib; {
     description = "Customization of kubernetes YAML configurations";
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 4b99cfb10e0..7425357536c 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.18";
+  version = "0.20.9";
 
   goPackagePath = "github.com/jesseduffield/lazygit";
 
@@ -12,7 +12,7 @@ buildGoPackage rec {
     owner = "jesseduffield";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zc6y386w111ygyng5s74zg49iajzs77dbrcdy33igj0hbnkwq2x";
+    sha256 = "1jmg2z8yza8cy6xcyam4pvk0sp6zvw6b8vbn3b3h0pklfa7wz9pg";
   };
 
   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/literate-programming/eweb/default.nix b/pkgs/development/tools/literate-programming/eweb/default.nix
index 53964c0e98b..39e309c4ce4 100644
--- a/pkgs/development/tools/literate-programming/eweb/default.nix
+++ b/pkgs/development/tools/literate-programming/eweb/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, python3, asciidoc }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
 
   name = "eweb-${meta.version}";
 
diff --git a/pkgs/development/tools/literate-programming/nuweb/default.nix b/pkgs/development/tools/literate-programming/nuweb/default.nix
index 4885081bc5b..1f4fba681c3 100644
--- a/pkgs/development/tools/literate-programming/nuweb/default.nix
+++ b/pkgs/development/tools/literate-programming/nuweb/default.nix
@@ -1,6 +1,6 @@
 {stdenv, fetchurl, tex}:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
 
   pname = "nuweb";
   version = "1.60";
diff --git a/pkgs/development/tools/metals/default.nix b/pkgs/development/tools/metals/default.nix
index cf9ce2bd265..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 ];
@@ -31,6 +29,13 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/bin
 
+    # This variant is not targeted at any particular client, clients are
+    # expected to declare their supported features in initialization options.
+    makeWrapper ${jre}/bin/java $out/bin/metals \
+      --prefix PATH : ${lib.makeBinPath [ jdk ]} \
+      --add-flags "${extraJavaOpts} -cp $CLASSPATH scala.meta.metals.Main"
+
+    # Further variants targeted at clients with featuresets pre-set.
     makeWrapper ${jre}/bin/java $out/bin/metals-emacs \
       --prefix PATH : ${lib.makeBinPath [ jdk ]} \
       --add-flags "${extraJavaOpts} -Dmetals.client=emacs -cp $CLASSPATH scala.meta.metals.Main"
diff --git a/pkgs/development/tools/micronaut/default.nix b/pkgs/development/tools/micronaut/default.nix
index 36df02ff712..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.4";
+  version = "1.3.7";
 
   src = fetchzip {
     url = "https://github.com/micronaut-projects/micronaut-core/releases/download/v${version}/${pname}-${version}.zip";
-    sha256 = "0mddr6jw7bl8k4iqfq3sfpxq8fffm2spi9xwdr4cskkw4qdgrrpz";
+    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 8df465c4958..c1c915cb8e4 100644
--- a/pkgs/development/tools/misc/act/default.nix
+++ b/pkgs/development/tools/misc/act/default.nix
@@ -2,22 +2,25 @@
 
 buildGoModule rec {
   pname = "act";
-  version = "0.2.8";
+  version = "0.2.10";
 
   src = fetchFromGitHub {
     owner = "nektos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14ird8z8f467spa0kdzjf6lq7pipq7rwxrdk6ppv7y1fxw96qm9x";
+    sha256 = "0xmrb8wbxkb52l2c7fxxy5wa9lsl591fl65zicv0nrbil36q4wfd";
   };
 
-  modSha256 = "09q8dh4g4k0y7mrhwyi9py7zdiipmq91j3f32cn635v2xw6zyg2k";
+  vendorSha256 = "0qf26g0a2j1mbzlc7xjackww22w9bl1x0iw3q1x6kq7fp8xiwhdn";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
   meta = with lib; {
     description = "Run your GitHub Actions locally";
     homepage = "https://github.com/nektos/act";
+    changelog = "https://github.com/nektos/act/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ filalex77 ];
   };
diff --git a/pkgs/development/tools/misc/arcanist/default.nix b/pkgs/development/tools/misc/arcanist/default.nix
index 5eeae0ece5c..fcddf1d0cac 100644
--- a/pkgs/development/tools/misc/arcanist/default.nix
+++ b/pkgs/development/tools/misc/arcanist/default.nix
@@ -1,51 +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
+    make install -C support/xhpast
+    cp -R $src $out/libexec/arcanist
+
+    ${makeArcWrapper "arc"}
+    ${makeArcWrapper "phage"}
+  '';
 
-    ln -s $out/libexec/arcanist/bin/arc $out/bin
-    wrapProgram $out/bin/arc \
-      --prefix PATH : "${php}/bin"
+  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..6999eb3e47a
--- /dev/null
+++ b/pkgs/development/tools/misc/asls/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, fetchurl
+, erlangR22
+}:
+
+stdenv.mkDerivation rec {
+  pname = "asls";
+  version = "0.4.2";
+
+  src = fetchurl {
+    url = "https://github.com/saulecabrera/asls/releases/download/v${version}/bin.tar.gz";
+    sha256 = "14dcms0xl6dncwf16vixvf7rq7g15iwq8h4vja0dsiisyfm08aks";
+  };
+
+  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/autogen/default.nix b/pkgs/development/tools/misc/autogen/default.nix
index 6b9e8db2f2a..3e634bedfd1 100644
--- a/pkgs/development/tools/misc/autogen/default.nix
+++ b/pkgs/development/tools/misc/autogen/default.nix
@@ -1,20 +1,43 @@
-{ stdenv, buildPackages, fetchurl, which, pkgconfig, perl, guile, libxml2 }:
+{ stdenv, buildPackages, fetchurl, autoreconfHook, which, pkgconfig, perl, guile, libxml2 }:
 
 stdenv.mkDerivation rec {
   pname = "autogen";
-  version = "5.18.12";
+  version = "5.18.16";
 
   src = fetchurl {
     url = "mirror://gnu/autogen/rel${version}/autogen-${version}.tar.xz";
-    sha256 = "1n5zq4872sakvz9c7ncsdcfp0z8rsybsxvbmhkpbd19ii0pacfxy";
+    sha256 = "16mlbdys8q4ckxlvxyhwkdnh1ay9f6g0cyp1kylkpalgnik398gq";
   };
 
+  patches = let
+    dp = { ver ? "1%255.18.16-4", pname, name ? (pname + ".diff"), sha256 }: fetchurl {
+      url = "https://salsa.debian.org/debian/autogen/-/raw/debian/${ver}"
+          + "/debian/patches/${pname}.diff?inline=false";
+      inherit name sha256;
+    };
+  in [
+    (dp {
+      pname = "20_no_Werror";
+      sha256 = "08z4s2ifiqyaacjpd9pzr59w8m4j3548kkaq1bwvp2gjn29m680x";
+    })
+    (dp {
+      pname = "30_ag_macros.m4_syntax_error";
+      sha256 = "1z8vmbwbkz3505wd33i2xx91mlf8rwsa7klndq37nw821skxwyh3";
+    })
+    (dp {
+      pname = "31_allow_overriding_AGexe_for_crossbuild";
+      sha256 = "0h9wkc9bqb509knh8mymi43hg6n6sxg2lixvjlchcx7z0j7p8xkf";
+    })
+  ];
+
   outputs = [ "bin" "dev" "lib" "out" "man" "info" ];
 
-  nativeBuildInputs = [ which pkgconfig perl ]
+  nativeBuildInputs = [
+    which pkgconfig perl autoreconfHook/*patches applied*/
+  ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     # autogen needs a build autogen when cross-compiling
-    ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-      buildPackages.buildPackages.autogen buildPackages.texinfo ];
+    buildPackages.buildPackages.autogen buildPackages.texinfo
+  ];
   buildInputs = [
     guile libxml2
   ];
@@ -27,13 +50,7 @@ stdenv.mkDerivation rec {
     #"MAKEINFO=${buildPackages.texinfo}/bin/makeinfo"
   ];
 
-  postPatch = ''
-    # Fix a broken sed expression used for detecting the minor
-    # version of guile we are using
-    sed -i "s,sed '.*-I.*',sed 's/\\\(^\\\| \\\)-I/\\\1/g',g" configure
-
-    substituteInPlace pkg/libopts/mklibsrc.sh --replace /tmp $TMPDIR
-  '';
+  #doCheck = true; # not reliable
 
   postInstall = ''
     mkdir -p $dev/bin
@@ -44,9 +61,14 @@ stdenv.mkDerivation rec {
       sed -e "s|$bin/bin|/no-such-autogen-bin-path|" -i $f
       sed -e "s|$lib/lib|/no-such-autogen-lib-path|" -i $f
     done
-  '';
 
-  #doCheck = true; # 2 tests fail because of missing /dev/tty
+  '' + stdenv.lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
+    # remove /build/** from RPATHs
+    for f in "$bin"/bin/*; do
+      local nrp="$(patchelf --print-rpath "$f" | sed -E 's@(:|^)/build/[^:]*:@\1@g')"
+      patchelf --set-rpath "$nrp" "$f"
+    done
+  '';
 
   meta = with stdenv.lib; {
     description = "Automated text and program generation tool";
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 61ed3825bd9..e0a6a8065b5 100644
--- a/pkgs/development/tools/misc/ccache/default.nix
+++ b/pkgs/development/tools/misc/ccache/default.nix
@@ -1,30 +1,22 @@
-{ stdenv, fetchurl, perl, zlib, makeWrapper }:
+{ stdenv, fetchFromGitHub, asciidoc-full, gperf, perl, autoreconfHook, zlib, makeWrapper }:
 
 let ccache = stdenv.mkDerivation rec {
   pname = "ccache";
-  version = "3.4.1";
+  version = "3.7.11";
 
-  src = fetchurl {
-    sha256 = "1pppi4jbkkj641cdynmc35jaj40jjicw7gj75ran5qs5886jcblc";
-    url = "mirror://samba/ccache/${pname}-${version}.tar.xz";
+  src = fetchFromGitHub {
+    owner = "ccache";
+    repo = "ccache";
+    rev = "v${version}";
+    sha256 = "03c6riz4vb0jipplk69c1j8arjjrjn676kglsrzqf8cidrh8j91c";
   };
 
-  nativeBuildInputs = [ perl ];
+  nativeBuildInputs = [ asciidoc-full autoreconfHook gperf perl ];
 
   buildInputs = [ zlib ];
 
   outputs = [ "out" "man" ];
 
-  # non to be fail on filesystems with unconventional blocksizes (zfs on Hydra?)
-  patches = [
-    ./fix-debug-prefix-map-suite.patch
-    ./skip-fs-dependent-test.patch
-  ];
-
-  postPatch = ''
-    substituteInPlace Makefile.in --replace 'objs) $(extra_libs)' 'objs)'
-  '';
-
   doCheck = !stdenv.isDarwin;
 
   passthru = {
@@ -71,8 +63,8 @@ let ccache = stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Compiler cache for fast recompilation of C/C++ code";
-    homepage = "http://ccache.samba.org/";
-    downloadPage = "https://ccache.samba.org/download.html";
+    homepage = "https://ccache.dev/";
+    downloadPage = "https://ccache.dev/download.html";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/tools/misc/ccache/fix-debug-prefix-map-suite.patch b/pkgs/development/tools/misc/ccache/fix-debug-prefix-map-suite.patch
deleted file mode 100644
index 98a6fbf10bf..00000000000
--- a/pkgs/development/tools/misc/ccache/fix-debug-prefix-map-suite.patch
+++ /dev/null
@@ -1,42 +0,0 @@
---- a/test/suites/debug_prefix_map.bash
-+++ b/test/suites/debug_prefix_map.bash
-@@ -29,7 +29,7 @@
-     expect_stat 'cache hit (preprocessed)' 0
-     expect_stat 'cache miss' 1
-     expect_stat 'files in cache' 2
--    if grep -E "[^=]`pwd`[^=]" test.o >/dev/null 2>&1; then
-+    if objdump -g test.o | grep ": `pwd`$" >/dev/null 2>&1; then
-         test_failed "Source dir (`pwd`) found in test.o"
-     fi
-
-@@ -39,7 +39,7 @@
-     expect_stat 'cache hit (preprocessed)' 0
-     expect_stat 'cache miss' 1
-     expect_stat 'files in cache' 2
--    if grep -E "[^=]`pwd`[^=]" test.o >/dev/null 2>&1; then
-+    if objdump -g test.o | grep ": `pwd`$" >/dev/null 2>&1; then
-         test_failed "Source dir (`pwd`) found in test.o"
-     fi
-
-@@ -52,10 +52,10 @@
-     expect_stat 'cache hit (preprocessed)' 0
-     expect_stat 'cache miss' 1
-     expect_stat 'files in cache' 2
--    if grep -E "[^=]`pwd`[^=]" test.o >/dev/null 2>&1; then
-+    if objdump -g test.o | grep ": `pwd`$" >/dev/null 2>&1; then
-         test_failed "Source dir (`pwd`) found in test.o"
-     fi
--    if ! grep "name" test.o >/dev/null 2>&1; then
-+    if ! objdump -g test.o | grep ": name$" >/dev/null 2>&1; then
-         test_failed "Relocation (name) not found in test.o"
-     fi
-
-@@ -65,7 +65,7 @@
-     expect_stat 'cache hit (preprocessed)' 0
-     expect_stat 'cache miss' 1
-     expect_stat 'files in cache' 2
--    if grep -E "[^=]`pwd`[^=]" test.o >/dev/null 2>&1; then
-+    if objdump -g test.o | grep ": `pwd`$" >/dev/null 2>&1; then
-         test_failed "Source dir (`pwd`) found in test.o"
-     fi
- }
diff --git a/pkgs/development/tools/misc/ccache/skip-fs-dependent-test.patch b/pkgs/development/tools/misc/ccache/skip-fs-dependent-test.patch
deleted file mode 100644
index 7b233df6531..00000000000
--- a/pkgs/development/tools/misc/ccache/skip-fs-dependent-test.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/test/suites/cleanup.bash
-+++ b/test/suites/cleanup.bash
-@@ -94,23 +94,6 @@
-
-     $CCACHE -F 0 -M 256K >/dev/null
-     CCACHE_LOGFILE=/tmp/foo $CCACHE -c >/dev/null
--    expect_file_count 3 '*.o' $CCACHE_DIR
--    expect_file_count 3 '*.d' $CCACHE_DIR
--    expect_file_count 3 '*.stderr' $CCACHE_DIR
--    expect_stat 'files in cache' 9
--    expect_stat 'cleanups performed' 1
--    for i in 3 4 5; do
--        file=$CCACHE_DIR/a/result$i-4017.o
--        if [ ! -f $file ]; then
--            test_failed "File $file removed when it shouldn't"
--        fi
--    done
--    for i in 0 1 2 6 7 8 9; do
--        file=$CCACHE_DIR/a/result$i-4017.o
--        if [ -f $file ]; then
--            test_failed "File $file not removed when it should"
--        fi
--    done
-
-     # -------------------------------------------------------------------------
-     TEST "Automatic cache cleanup, limit_multiple 0.9"
diff --git a/pkgs/development/tools/misc/circleci-cli/default.nix b/pkgs/development/tools/misc/circleci-cli/default.nix
index 5b3b728ea98..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.7179";
+  version = "0.1.9321";
 
   src = fetchFromGitHub {
     owner = "CircleCI-Public";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0md6y2rnzhkpxc2pm3c46jrhwicrswy9qlr6a4mmvpjq1imj1hjq";
+    sha256 = "0n0is4aradlx0jbzs819swidi2x1gnpca9f2b0lkxrxgqcm7viix";
   };
 
-  modSha256 = "169d0mm52l6w6jln5ak6zkh97q65m9jpg3bm8qll6sfrmrnfncfi";
+  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/cli11/default.nix b/pkgs/development/tools/misc/cli11/default.nix
index f6a4a4d9f6a..0d058ef1f88 100644
--- a/pkgs/development/tools/misc/cli11/default.nix
+++ b/pkgs/development/tools/misc/cli11/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cli11";
-  version = "1.9.0";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = "CLIUtils";
     repo = "CLI11";
     rev = "v${version}";
-    sha256 = "1nqri8ahisi00nwh6cynhq5n9iq9iydkysnxj36r2y20yvbi4bxj";
+    sha256 = "0hbch0vk8irgmiaxnfqlqys65v1770rxxdfn3d23m2vqyjh0j9l6";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix
index a29af8b60eb..09313cd780f 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 = "20200413T141742";
+  version = "20200819T134828";
 
   src = fetchurl {
     url = "https://github.com/snoe/clojure-lsp/releases/download/release-${version}/${pname}";
-    sha256 = "0bgyl791l8qaja9p22p77llis39kgdm8x1djz1dm8iy6qn22hm1y";
+    sha256 = "0nfi6wf78z0xm0mgsz83pn1v4mr76h2d5rva3xan4hn8gpd1s57s";
   };
 
   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/cquery/default.nix b/pkgs/development/tools/misc/cquery/default.nix
deleted file mode 100644
index 33a8bf1df61..00000000000
--- a/pkgs/development/tools/misc/cquery/default.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ fetchFromGitHub, makeWrapper
-, cmake, llvmPackages, ncurses
-, runtimeShell }:
-
-let
-  src = fetchFromGitHub {
-    owner = "cquery-project";
-    repo = "cquery";
-    rev = "a95a6503d68a85baa25465ce147b7fc20f4a552e";
-    sha256 = "0rxbdln7dqkdw4q8rhclssgwypq16g9flkwmaabsr8knckbszxrx";
-    fetchSubmodules = true;
-  };
-
-  stdenv = llvmPackages.stdenv;
-
-in
-stdenv.mkDerivation {
-  pname = "cquery";
-  version = "2018-10-14";
-
-  inherit src;
-
-  nativeBuildInputs = [ cmake makeWrapper ];
-  buildInputs = with llvmPackages; [ clang clang-unwrapped llvm ncurses ];
-
-  cmakeFlags = [
-    "-DSYSTEM_CLANG=ON"
-    "-DCLANG_CXX=ON"
-  ];
-
-  shell = runtimeShell;
-  postFixup = ''
-    # We need to tell cquery where to find the standard library headers.
-
-    standard_library_includes="\\\"-isystem\\\", \\\"${stdenv.lib.getDev stdenv.cc.libc}/include\\\""
-    standard_library_includes+=", \\\"-isystem\\\", \\\"${llvmPackages.libcxx}/include/c++/v1\\\""
-    export standard_library_includes
-
-    wrapped=".cquery-wrapped"
-    export wrapped
-
-    mv $out/bin/cquery $out/bin/$wrapped
-    substituteAll ${./wrapper} $out/bin/cquery
-    chmod --reference=$out/bin/$wrapped $out/bin/cquery
-  '';
-
-  doInstallCheck = true;
-  installCheckPhase = ''
-    pushd ${src}
-    $out/bin/cquery --ci --test-unit
-
-    # The integration tests have to be disabled because cquery ignores `--init`
-    # if they are invoked, which means it won't find the system includes.
-    #$out/bin/cquery --ci --test-index
-  '';
-
-  meta = with stdenv.lib; {
-    description = "A c/c++ language server powered by libclang";
-    homepage    = "https://github.com/cquery-project/cquery";
-    license     = licenses.mit;
-    platforms   = platforms.linux ++ platforms.darwin;
-    maintainers = [ maintainers.tobim ];
-  };
-}
diff --git a/pkgs/development/tools/misc/cquery/wrapper b/pkgs/development/tools/misc/cquery/wrapper
deleted file mode 100644
index 8b3e5729042..00000000000
--- a/pkgs/development/tools/misc/cquery/wrapper
+++ /dev/null
@@ -1,12 +0,0 @@
-#! @shell@ -e
-
-initString="--init={\"cacheDirectory\": \"/tmp/cquery\", \"extraClangArguments\": [@standard_library_includes@"
-
-if [ "${NIX_CFLAGS_COMPILE}" != "" ]; then
-  read -a cflags_array <<< ${NIX_CFLAGS_COMPILE}
-  initString+=$(printf ', \"%s\"' "${cflags_array[@]}")
-fi
-
-initString+="]}"
-
-exec -a "$0" "@out@/bin/@wrapped@" "${initString}" "$@"
diff --git a/pkgs/development/tools/misc/easypdkprog/default.nix b/pkgs/development/tools/misc/easypdkprog/default.nix
new file mode 100644
index 00000000000..92d1a550ea8
--- /dev/null
+++ b/pkgs/development/tools/misc/easypdkprog/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "easypdkprog";
+  version = "1.3";
+
+  src = fetchFromGitHub {
+    owner = "free-pdk";
+    repo = "easy-pdk-programmer-software";
+    rev = version;
+    sha256 = "0hc3gdmn6l01z63hzzwdhbdyy288gh5v219bsfm8fb1498vpnd6f";
+  };
+
+  installPhase = ''
+    install -Dm755 -t $out/bin easypdkprog
+  '' + lib.optionalString stdenv.isLinux ''
+    install -Dm644 -t $out/etc/udev/rules.d Linux_udevrules/70-stm32vcp.rules
+  '';
+
+  meta = with lib; {
+    description = "Read, write and execute programs on PADAUK microcontroller";
+    homepage = "https://github.com/free-pdk/easy-pdk-programmer-software";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ david-sawatzke ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/misc/editorconfig-checker/default.nix b/pkgs/development/tools/misc/editorconfig-checker/default.nix
index 88c43a8c42a..3975ad3511f 100644
--- a/pkgs/development/tools/misc/editorconfig-checker/default.nix
+++ b/pkgs/development/tools/misc/editorconfig-checker/default.nix
@@ -1,22 +1,32 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "editorconfig-checker";
-  version = "2.0.3";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "editorconfig-checker";
     repo = "editorconfig-checker";
     rev = "${version}";
-    sha256 = "1gn7q6wg7byhr1l5ly60rbb700xrww9slbq7gbxbw5c1fl0pp3yk";
+    sha256 = "09v8gqwcaay3bqbidparmg20dy0mvlrzh34591hanbrx3cwhrz3f";
   };
 
-  modSha256 = "1iiv12ginb3ky739z7v8wf4z5lv24gmghbybs3lzay0kqn449n4x";
+  vendorSha256 = "132blcdw3lywxhqslkcpwwvkzl4cpbbkhb7ba8mrvfgl5kvfm1q0";
+
+  doCheck = false;
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildFlagsArray = [ "-ldflags=-X main.version=${version}" ];
+
+  postInstall = ''
+    installManPage docs/editorconfig-checker.1
+  '';
 
   meta = with lib; {
     description = "A tool to verify that your files are in harmony with your .editorconfig";
     homepage = "https://editorconfig-checker.github.io/";
     license = licenses.mit;
-    maintainers = with maintainers; [ uri-canva ];
+    maintainers = with maintainers; [ uri-canva zowoq ];
   };
 }
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 f6a001e488c..7702df423bb 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -18,7 +18,7 @@
 
 let
   basename = "gdb-${version}";
-  version = "9.1";
+  version = "9.2";
 in
 
 assert pythonSupport -> python3 != null;
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnu/gdb/${basename}.tar.xz";
-    sha256 = "0dqp1p7w836iwijg1zb4a784n0j4pyjiw5v6h8fg5lpx6b40x7k9";
+    sha256 = "0mf5fn8v937qwnal4ykn3ji1y2sxk0fa1yfqi679hxmpg6pdf31n";
   };
 
   postPatch = if stdenv.isDarwin then ''
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 6675f7ed3e2..91c6518bc26 100644
--- a/pkgs/development/tools/misc/go-license-detector/default.nix
+++ b/pkgs/development/tools/misc/go-license-detector/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "0ln1z3y9q5igf9djkxw05ql2hb1ijcvvz0mrbwz11cdv9xrsa4z4";
   };
 
-  modSha256 = "163f1kiy7kqrnaazb8ydaaiz57lv30jyjkvv6i7pczvcg9yfhmdb";
+  vendorSha256 = "0gan5l7vsq0hixxcymhhs8p07v92w60r0lhgvrr9a99nic12vmia";
+
+  doCheck = false;
 
   meta = with lib; {
     description = "Reliable project licenses detector";
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/common.nix b/pkgs/development/tools/misc/hydra/common.nix
index 75a9689267a..4e9daab9bf1 100644
--- a/pkgs/development/tools/misc/hydra/common.nix
+++ b/pkgs/development/tools/misc/hydra/common.nix
@@ -1,6 +1,6 @@
 { stdenv, nix, perlPackages, buildEnv, fetchFromGitHub
 , makeWrapper, autoconf, automake, libtool, unzip, pkgconfig, sqlite, libpqxx
-, gitAndTools, mercurial, darcs, subversion, bazaar, openssl, bzip2, libxslt
+, gitAndTools, mercurial, darcs, subversion, breezy, openssl, bzip2, libxslt
 , guile, perl, postgresql, nukeReferences, git, boehmgc, nlohmann_json
 , docbook_xsl, openssh, gnused, coreutils, findutils, gzip, lzma, gnutar
 , rpm, dpkg, cdrkit, pixz, lib, boost, autoreconfHook, src ? null, version ? null
@@ -79,7 +79,7 @@ in stdenv.mkDerivation rec {
 
   buildInputs =
     [ makeWrapper autoconf automake libtool unzip nukeReferences sqlite libpqxx
-      gitAndTools.top-git mercurial /*darcs*/ subversion bazaar openssl bzip2 libxslt
+      gitAndTools.top-git mercurial /*darcs*/ subversion breezy openssl bzip2 libxslt
       perlDeps perl nix
       postgresql # for running the tests
       nlohmann_json
@@ -88,7 +88,7 @@ in stdenv.mkDerivation rec {
 
   hydraPath = lib.makeBinPath (
     [ sqlite subversion openssh nix coreutils findutils pixz
-      gzip bzip2 lzma gnutar unzip git gitAndTools.top-git mercurial /*darcs*/ gnused bazaar
+      gzip bzip2 lzma gnutar unzip git gitAndTools.top-git mercurial /*darcs*/ gnused breezy
     ] ++ lib.optionals stdenv.isLinux [ rpm dpkg cdrkit ] );
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/development/tools/misc/hydra/default.nix b/pkgs/development/tools/misc/hydra/default.nix
index f9a50dd0ea0..716a3058785 100644
--- a/pkgs/development/tools/misc/hydra/default.nix
+++ b/pkgs/development/tools/misc/hydra/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, nixStable, callPackage, nixFlakes, fetchpatch, nixosTests }:
+{ fetchFromGitHub, nixStable, callPackage, nixFlakes, nixosTests }:
 
 {
   # Package for phase-1 of the db migration for Hydra.
@@ -24,14 +24,15 @@
   # so when having an older version, `pkgs.hydra-migration` should be deployed first.
 
   hydra-unstable = callPackage ./common.nix {
-    version = "2020-04-16";
+    version = "2020-08-04";
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "hydra";
-      rev = "87837f1d82904bf48e11b5641258b6be2f663c3b";
-      sha256 = "1vs3lyfyafsl7wbpmycv7c3n9n2rkrswp65msb6q1iskgpvr96d5";
+      rev = "77c33c1d71a8c303f53ccad577eb0a3799e87bda";
+      sha256 = "10pwiww96dbbszzvnj7abn851h89n30ziahjj2zm3liyzyvbylyf";
     };
     nix = nixFlakes;
+
     tests = {
       db-migration = nixosTests.hydra-db-migration.mig;
       basic = nixosTests.hydra.hydra-unstable;
diff --git a/pkgs/development/tools/misc/intltool/default.nix b/pkgs/development/tools/misc/intltool/default.nix
index 91acaac75aa..0a04e5786f5 100644
--- a/pkgs/development/tools/misc/intltool/default.nix
+++ b/pkgs/development/tools/misc/intltool/default.nix
@@ -12,8 +12,10 @@ stdenv.mkDerivation rec {
   # fix "unescaped left brace" errors when using intltool in some cases
   patches = [(fetchpatch {
     name = "perl5.26-regex-fixes.patch";
-    url = "https://sources.debian.org/data/main/i/intltool/0.51.0-5"
-      + "/debian/patches/perl5.26-regex-fixes.patch";
+    url = [
+      "https://sources.debian.org/data/main/i/intltool/0.51.0-5/debian/patches/perl5.26-regex-fixes.patch"
+      "https://src.fedoraproject.org/rpms/intltool/raw/d8d2ef29fb122a42a6b6678eb1ec97ae56902af2/f/intltool-perl5.26-regex-fixes.patch"
+    ];
     sha256 = "12q2140867r5d0dysly72khi7b0mm2gd7nlm1k81iyg7fxgnyz45";
   })];
 
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/libtool/libtool2.nix b/pkgs/development/tools/misc/libtool/libtool2.nix
index 4bf637c0eba..fbe49dc68b2 100644
--- a/pkgs/development/tools/misc/libtool/libtool2.nix
+++ b/pkgs/development/tools/misc/libtool/libtool2.nix
@@ -26,10 +26,6 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  # Don't run the native `strip' when cross-compiling.  This breaks at least
-  # with `.a' files for MinGW.
-  dontStrip = stdenv.hostPlatform != stdenv.buildPlatform;
-
   meta = with stdenv.lib; {
     description = "GNU Libtool, a generic library support script";
     longDescription = ''
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 1449a55e3a8..ec4042a2a27 100644
--- a/pkgs/development/tools/misc/mkcert/default.nix
+++ b/pkgs/development/tools/misc/mkcert/default.nix
@@ -11,12 +11,12 @@ buildGoModule rec {
     sha256 = "0w1ji96hbd3anzsz82xjcafsqhgyz7c7n41rsq60yrllwbj5946f";
   };
 
-  modSha256 = "13a3snhcqq3a9lfy9zfr2rx10mf2ymvhmds1bg8n4m7lbwnzm4fg";
+  vendorSha256 = "0b8ggdpbyxx5n2myhchhlwmm5nndwpykp1ylnzdyw12mdskfvn9h";
+
+  doCheck = false;
 
-  goPackagePath = "github.com/FiloSottile/mkcert";
   buildFlagsArray = ''
-    -ldflags=
-      -X ${goPackagePath}/main.Version=${version}
+    -ldflags=-X main.Version=v${version}
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/tools/misc/mkrom/default.nix b/pkgs/development/tools/misc/mkrom/default.nix
new file mode 100644
index 00000000000..eec63f75e71
--- /dev/null
+++ b/pkgs/development/tools/misc/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/misc/nix-build-uncached/default.nix b/pkgs/development/tools/misc/nix-build-uncached/default.nix
new file mode 100644
index 00000000000..9bff7acc81d
--- /dev/null
+++ b/pkgs/development/tools/misc/nix-build-uncached/default.nix
@@ -0,0 +1,32 @@
+{ lib, buildGoModule, fetchFromGitHub, nix, makeWrapper }:
+
+buildGoModule rec {
+  pname = "nix-build-uncached";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "Mic92";
+    repo = "nix-build-uncached";
+    rev = "v${version}";
+    sha256 = "106k4234gpi8mr0n0rfsgwk4z7v0b2gim0r5bhjvg2v566j67g02";
+  };
+
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/nix-build-uncached \
+      --prefix PATH ":" ${lib.makeBinPath [ nix ]}
+  '';
+
+  meta = with lib; {
+    description = "A CI friendly wrapper around nix-build";
+    license = licenses.mit;
+    homepage = "https://github.com/Mic92/nix-build-uncached";
+    maintainers = [ maintainers.mic92 ];
+    platforms = platforms.unix;
+  };
+}
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/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/0.9.nix b/pkgs/development/tools/misc/patchelf/0.9.nix
new file mode 100644
index 00000000000..c64d722ca71
--- /dev/null
+++ b/pkgs/development/tools/misc/patchelf/0.9.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl, patchelf }:
+
+stdenv.mkDerivation rec {
+  name = "patchelf-0.9";
+
+  src = fetchurl {
+    url = "https://nixos.org/releases/patchelf/${name}/${name}.tar.bz2";
+    sha256 = "a0f65c1ba148890e9f2f7823f4bedf7ecad5417772f64f994004f59a39014f83";
+  };
+
+  setupHook = [ ./setup-hook.sh ];
+
+  doCheck = false; # fails 8 out of 24 tests, problems when loading libc.so.6
+
+  inherit (patchelf) meta;
+}
diff --git a/pkgs/development/tools/misc/patchelf/default.nix b/pkgs/development/tools/misc/patchelf/default.nix
index ad09cdc6eb3..5d2309333a6 100644
--- a/pkgs/development/tools/misc/patchelf/default.nix
+++ b/pkgs/development/tools/misc/patchelf/default.nix
@@ -1,16 +1,22 @@
 { 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.9";
+  name = "patchelf-0.11";
 
   src = fetchurl {
     url = "https://nixos.org/releases/patchelf/${name}/${name}.tar.bz2";
-    sha256 = "a0f65c1ba148890e9f2f7823f4bedf7ecad5417772f64f994004f59a39014f83";
+    sha256 = "16ms3ijcihb88j3x6cl8cbvhia72afmfcphczb9cfwr0gbc22chx";
   };
 
   setupHook = [ ./setup-hook.sh ];
 
-  doCheck = false; # fails 8 out of 24 tests, problems when loading libc.so.6
+  # fails 8 out of 24 tests, problems when loading libc.so.6
+  doCheck = stdenv.name == "stdenv-linux";
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/NixOS/patchelf/blob/master/README";
diff --git a/pkgs/development/tools/misc/patchelf/unstable.nix b/pkgs/development/tools/misc/patchelf/unstable.nix
index 05d39ed5653..0d9eeb84bfb 100644
--- a/pkgs/development/tools/misc/patchelf/unstable.nix
+++ b/pkgs/development/tools/misc/patchelf/unstable.nix
@@ -1,12 +1,14 @@
-{ stdenv, fetchurl, autoreconfHook }:
+{ stdenv, fetchurl, autoreconfHook, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   name = "patchelf-${version}";
-  version = "0.10";
+  version = "2020-07-11";
 
-  src = fetchurl {
-    url = "https://nixos.org/releases/patchelf/${name}/${name}.tar.bz2";
-    sha256 = "1wzwvnlyf853hw9zgqq5522bvf8gqadk8icgqa41a5n7593csw7n";
+  src = fetchFromGitHub {
+    owner = "NixOS";
+    repo = "patchelf";
+    rev = "126372b636733b160e693c9913e871f6755c02e";
+    sha256 = "07cn40ypys5pyc3jfgxvqj7qk5v6m2rr5brnpmxdsl1557ryx226";
   };
 
   # Drop test that fails on musl (?)
diff --git a/pkgs/development/tools/misc/pkg-config/default.nix b/pkgs/development/tools/misc/pkg-config/default.nix
index 494b8d893d4..84f6c330f8c 100644
--- a/pkgs/development/tools/misc/pkg-config/default.nix
+++ b/pkgs/development/tools/misc/pkg-config/default.nix
@@ -6,20 +6,21 @@ stdenv.mkDerivation rec {
   pname = "pkg-config";
   version = "0.29.2";
 
-  setupHook = ./setup-hook.sh;
-
   src = fetchurl {
     url = "https://pkgconfig.freedesktop.org/releases/${pname}-${version}.tar.gz";
     sha256 = "14fmwzki1rlz8bs2p810lk6jqdxsk966d8drgsjmi54cd00rrikg";
   };
 
+  outputs = [ "out" "man" "doc" ];
+
   # Process Requires.private properly, see
-  # http://bugs.freedesktop.org/show_bug.cgi?id=4738.
+  # http://bugs.freedesktop.org/show_bug.cgi?id=4738, migrated to
+  # https://gitlab.freedesktop.org/pkg-config/pkg-config/issues/28
   patches = optional (!vanilla) ./requires-private.patch
     ++ optional stdenv.isCygwin ./2.36.3-not-win32.patch;
 
   # These three tests fail due to a (desired) behavior change from our ./requires-private.patch
-  postPatch = ''
+  postPatch = if vanilla then null else ''
     rm -f check/check-requires-private check/check-gtk check/missing
   '';
 
diff --git a/pkgs/development/tools/misc/pkg-config/setup-hook.sh b/pkgs/development/tools/misc/pkg-config/setup-hook.sh
deleted file mode 100644
index 34a9b9f1173..00000000000
--- a/pkgs/development/tools/misc/pkg-config/setup-hook.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-addPkgConfigPath () {
-    addToSearchPath PKG_CONFIG_PATH $1/lib/pkgconfig
-    addToSearchPath PKG_CONFIG_PATH $1/share/pkgconfig
-}
-
-addEnvHooks "$targetOffset" addPkgConfigPath
diff --git a/pkgs/development/tools/misc/pkgconf/default.nix b/pkgs/development/tools/misc/pkgconf/default.nix
index 02b7ff5fcd3..6fca02ad788 100644
--- a/pkgs/development/tools/misc/pkgconf/default.nix
+++ b/pkgs/development/tools/misc/pkgconf/default.nix
@@ -1,14 +1,41 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, removeReferencesTo }:
 
 stdenv.mkDerivation rec {
   pname = "pkgconf";
-  version = "1.6.3";
+  version = "1.7.3";
+
+  nativeBuildInputs = [ removeReferencesTo ];
+
+  outputs = [ "out" "lib" "dev" "man" "doc" ];
+
+  enableParallelBuilding = true;
 
   src = fetchurl {
     url = "https://distfiles.dereferenced.org/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "04525vv0y849vvc2pi60g5wd9fjp1wbhra2lniifi82y1ldv7w31";
+    sha256 = "1h7rf5cch0cbxp8nmjkkf272zrz2jgpqpr8a58ww75pn3jjswimq";
   };
 
+  # Debian has outputs like these too:
+  # https://packages.debian.org/source/buster/pkgconf, so take it this
+  # reference removing is safe.
+  postFixup = ''
+    remove-references-to \
+      -t "${placeholder "dev"}" \
+      "${placeholder "lib"}"/lib/* \
+      "${placeholder "out"}"/bin/*
+    remove-references-to \
+      -t "${placeholder "out"}" \
+      "${placeholder "lib"}"/lib/*
+  ''
+  # Move back share/aclocal. Yes, this normally goes in the dev output for good
+  # reason, but in this case the dev output is for the `libpkgconf` library,
+  # while the aclocal stuff is for the tool. The tool is already for use during
+  # development, so there is no reason to have separate "dev-bin" and "dev-lib"
+  # outputs or someting.
+  + ''
+    mv ${placeholder "dev"}/share ${placeholder "out"}
+  '';
+
   meta = with stdenv.lib; {
     description = "Package compiler and linker metadata toolkit";
     homepage = "https://git.dereferenced.org/pkgconf/pkgconf";
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 1a6fb6746a1..de8a113d101 100644
--- a/pkgs/development/tools/misc/reviewdog/default.nix
+++ b/pkgs/development/tools/misc/reviewdog/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "reviewdog";
-  version = "0.10.0";
+  version = "0.10.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ag55n3gfwcp6v8v3hha8bdqxw9r4bmz97p00vyqla9gjzn5ka9w";
+    sha256 = "1xi5dfdy66qa6xvy60fk2lmp9gxyi0nfkyvybcazn8mrd99hfh6l";
   };
 
-  modSha256 = "0x9bcszk9hd7vwg9lnlg4vqv4r9vx8x91j3ghijbr1jmqxhgjb9a";
+  vendorSha256 = "0cxi01jxg89lsk91dv782746i8g9ksanx8igmgafq9vq25lld7yg";
+
+  doCheck = false;
 
   subPackages = [ "cmd/reviewdog" ];
 
diff --git a/pkgs/development/tools/misc/saleae-logic/default.nix b/pkgs/development/tools/misc/saleae-logic/default.nix
index a7e197f9d7e..b9f84edc964 100644
--- a/pkgs/development/tools/misc/saleae-logic/default.nix
+++ b/pkgs/development/tools/misc/saleae-logic/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     comment = "Software for Saleae logic analyzers";
     desktopName = "Saleae Logic";
     genericName = "Logic analyzer";
-    categories = "Application;Development";
+    categories = "Development";
   };
 
   buildInputs = [ unzip ];
diff --git a/pkgs/development/tools/misc/stm32cubemx/default.nix b/pkgs/development/tools/misc/stm32cubemx/default.nix
index 53336ab417c..80549d8848f 100644
--- a/pkgs/development/tools/misc/stm32cubemx/default.nix
+++ b/pkgs/development/tools/misc/stm32cubemx/default.nix
@@ -1,12 +1,12 @@
-{ 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";
     desktopName = "STM32CubeMX";
-    categories = "Application;Development;";
+    categories = "Development;";
     icon = "stm32cubemx";
   };
 in
@@ -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 75a960c80c5..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.6";
+  version = "5.8";
 
   src = fetchurl {
     url = "https://strace.io/files/${version}/${pname}-${version}.tar.xz";
-    sha256 = "008v3xacgv8hw2gpqibacxs47j23161mmibf2qh9xv86mvp6i68q";
+    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/terracognita/default.nix b/pkgs/development/tools/misc/terracognita/default.nix
index e533b065f41..a4fb72666ca 100644
--- a/pkgs/development/tools/misc/terracognita/default.nix
+++ b/pkgs/development/tools/misc/terracognita/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "terracognita";
-  version = "0.4.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "cycloidio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ib0p361sxh2qzxccg32pcml4by4mk45abhljwmljwybs34wh5rh";
+    sha256 = "1z0vf3x46w3glwvq185hgmfkg7xfq31c7d3yjhh8qkwbhkx4bga4";
   };
 
-  modSha256 = "1cbhm3jwv0z9fh1q8mva56nbsp9rfyjcs03yxrc8ffkvif0gapps";
+  vendorSha256 = "1dmv16v1c9sydbl1g69pgwvrhznd0a133giwrcbqi4cyg1fdb3sr";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/misc/terraform-ls/default.nix b/pkgs/development/tools/misc/terraform-ls/default.nix
new file mode 100644
index 00000000000..714416f9685
--- /dev/null
+++ b/pkgs/development/tools/misc/terraform-ls/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "terraform-ls";
+  version = "0.6.1";
+
+  src = fetchFromGitHub {
+    owner = "hashicorp";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0yhpxb9dkwi6rlabr0sd5rk15q0bin6yhww171jrzlnfl036l0sl";
+  };
+
+  goPackagePath = "github.com/hashicorp/terraform-ls";
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+  meta = with lib; {
+    description = "Terraform Language Server (official)";
+    homepage = "https://github.com/hashicorp/terraform-ls";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ mbaillie ];
+  };
+}
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/common.nix b/pkgs/development/tools/misc/texinfo/common.nix
index 1fb8a6b2f0d..ec51dc2259d 100644
--- a/pkgs/development/tools/misc/texinfo/common.nix
+++ b/pkgs/development/tools/misc/texinfo/common.nix
@@ -6,6 +6,11 @@
 , 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;
 in
diff --git a/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch b/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch
index f0e4230d7ec..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="$BUILD_CC" AR="$BUILD_AR" RANLIB="$BUILD_RANLIB" \
+-  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/texlab/default.nix b/pkgs/development/tools/misc/texlab/default.nix
index 0076884e2ed..8b734bdd1c1 100644
--- a/pkgs/development/tools/misc/texlab/default.nix
+++ b/pkgs/development/tools/misc/texlab/default.nix
@@ -1,29 +1,35 @@
 { stdenv
 , rustPlatform
 , fetchFromGitHub
+, installShellFiles
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "texlab";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "latex-lsp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0cmciadiknw6w573v71spzf5ydaz2xxm2snv3n1hks732nahlr56";
+    sha256 = "0iydkbmx9z7xpwaif0han5jvy9xh1afmfyldl7fcyy4r906dsmhx";
   };
 
-  cargoSha256 = "0dhbbni8ia0dkwjacx5jlr5rj7173nsbivm9gjsx9j8ais0f0hff";
+  cargoSha256 = "0iibjh2ll181j69vld1awvjgyv3xwmq0abh10651la4k4jpppx46";
+
+  nativeBuildInputs = [ installShellFiles ];
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
 
+  postInstall = ''
+    installManPage texlab.1
+  '';
+
   meta = with stdenv.lib; {
     description = "An implementation of the Language Server Protocol for LaTeX";
     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
new file mode 100644
index 00000000000..298e6f7c9d5
--- /dev/null
+++ b/pkgs/development/tools/misc/tockloader/default.nix
@@ -0,0 +1,27 @@
+{ lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "tockloader";
+  version = "1.5.0";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "11k4ppwq845lnj265ydfr0cn1rrym5amx2i19x1h3ccbxc3gsy3x";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    argcomplete
+    colorama
+    crcmod
+    pytoml
+    pyserial
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/tock/tockloader";
+    license = licenses.mit;
+    description = "Tool for programming Tock onto hardware boards.";
+    maintainers = with maintainers; [ hexa ];
+  };
+}
+
diff --git a/pkgs/development/tools/misc/tokei/default.nix b/pkgs/development/tools/misc/tokei/default.nix
index ca625a28c94..baf14b933dc 100644
--- a/pkgs/development/tools/misc/tokei/default.nix
+++ b/pkgs/development/tools/misc/tokei/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tokei";
-  version = "11.1.1";
+  version = "12.0.4";
 
   src = fetchFromGitHub {
     owner = "XAMPPRocky";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1sribqcyalgl66im92pmla0hnp07zvg3pbxxakm7jk5l6p13wiw3";
+    sha256 = "0vj6xpp5ss82n1zxljy5893s8l1pdhar5xqay5vvglkp8bzblin6";
   };
 
-  cargoSha256 = "0jcy3p896ykc6s3m21pnh4jv4lhpvhzlrrl1y67ink2lqkamdhvv";
+  cargoSha256 = "02c2pdjzd49qznm1yj3rnli48267ajjdklrb1cpj0rhpirw4rh1j";
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [
     libiconv darwin.apple_sdk.frameworks.Security
@@ -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/misc/travis/Gemfile.lock b/pkgs/development/tools/misc/travis/Gemfile.lock
index e26b31cbaf0..91df15a9bb6 100644
--- a/pkgs/development/tools/misc/travis/Gemfile.lock
+++ b/pkgs/development/tools/misc/travis/Gemfile.lock
@@ -1,28 +1,38 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    addressable (2.4.0)
-    backports (3.16.1)
-    coderay (1.1.2)
+    activesupport (5.2.4.3)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 0.7, < 2)
+      minitest (~> 5.1)
+      tzinfo (~> 1.1)
+    addressable (2.7.0)
+      public_suffix (>= 2.0.2, < 5.0)
+    coderay (1.1.3)
+    concurrent-ruby (1.1.6)
     ethon (0.12.0)
       ffi (>= 1.3.0)
-    faraday (0.17.3)
+    faraday (1.0.1)
       multipart-post (>= 1.2, < 3)
-    faraday_middleware (0.14.0)
-      faraday (>= 0.7.4, < 1.0)
-    ffi (1.12.2)
-    gh (0.15.1)
-      addressable (~> 2.4.0)
-      backports
-      faraday (~> 0.8)
+    faraday_middleware (1.0.0)
+      faraday (~> 1.0)
+    ffi (1.13.1)
+    gh (0.17.0)
+      activesupport (~> 5.0)
+      addressable (~> 2.4)
+      faraday (~> 1.0)
+      faraday_middleware (~> 1.0)
       multi_json (~> 1.0)
       net-http-persistent (~> 2.9)
       net-http-pipeline
-    highline (1.7.10)
+    highline (2.0.3)
+    i18n (1.8.3)
+      concurrent-ruby (~> 1.0)
     json (2.3.0)
     launchy (2.4.3)
       addressable (~> 2.3)
     method_source (0.9.2)
+    minitest (5.14.1)
     multi_json (1.14.1)
     multipart-post (2.1.1)
     net-http-persistent (2.9.4)
@@ -30,20 +40,24 @@ GEM
     pry (0.11.3)
       coderay (~> 1.1.0)
       method_source (~> 0.9.0)
+    public_suffix (4.0.5)
     pusher-client (0.6.2)
       json
       websocket (~> 1.0)
-    travis (1.8.11)
-      backports
-      faraday (~> 0.9)
-      faraday_middleware (~> 0.9, >= 0.9.1)
+    thread_safe (0.3.6)
+    travis (1.9.1)
+      faraday (~> 1.0)
+      faraday_middleware (~> 1.0)
       gh (~> 0.13)
-      highline (~> 1.6)
-      launchy (~> 2.1)
+      highline (~> 2.0)
+      json (~> 2.3)
+      launchy (~> 2.1, < 2.5.0)
       pusher-client (~> 0.4)
       typhoeus (~> 0.6, >= 0.6.8)
     typhoeus (0.8.0)
       ethon (>= 0.8.0)
+    tzinfo (1.2.7)
+      thread_safe (~> 0.1)
     websocket (1.2.8)
 
 PLATFORMS
diff --git a/pkgs/development/tools/misc/travis/gemset.nix b/pkgs/development/tools/misc/travis/gemset.nix
index da2f5e8e7ac..e10475a916b 100644
--- a/pkgs/development/tools/misc/travis/gemset.nix
+++ b/pkgs/development/tools/misc/travis/gemset.nix
@@ -1,31 +1,45 @@
 {
-  addressable = {
+  activesupport = {
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mpn7sbjl477h56gmxsjqb89r5s3w7vx5af994ssgc3iamvgzgvs";
+      sha256 = "02fdawr3wyvpzpja3r7mvb8lmn2mm5jdw502bx3ncr2sy2nw1kx6";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "5.2.4.3";
   };
-  backports = {
+  addressable = {
+    dependencies = ["public_suffix"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sp3l5wa77klj34sqib95ppxyam53x3p57xk0y6gy2c3z29z6hs5";
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
       type = "gem";
     };
-    version = "3.16.1";
+    version = "2.7.0";
   };
   coderay = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "1.1.3";
+  };
+  concurrent-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      type = "gem";
+    };
+    version = "1.1.6";
   };
   ethon = {
     dependencies = ["ffi"];
@@ -42,10 +56,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13aghksmni2sl15y7wfpx6k5l3lfd8j9gdyqi6cbw6jgc7bqyyn2";
+      sha256 = "0wwks9652xwgjm7yszcq5xr960pjypc07ivwzbjzpvy9zh2fw6iq";
       type = "gem";
     };
-    version = "0.17.3";
+    version = "1.0.1";
   };
   faraday_middleware = {
     dependencies = ["faraday"];
@@ -53,37 +67,52 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x7jgvpzl1nm7hqcnc8carq6yj1lijq74jv8pph4sb3bcpfpvcsc";
+      sha256 = "0jik2kgfinwnfi6fpp512vlvs0mlggign3gkbpkg5fw1jr9his0r";
       type = "gem";
     };
-    version = "0.14.0";
+    version = "1.0.0";
   };
   ffi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.13.1";
   };
   gh = {
-    dependencies = ["addressable" "backports" "faraday" "multi_json" "net-http-persistent" "net-http-pipeline"];
+    dependencies = ["activesupport" "addressable" "faraday" "faraday_middleware" "multi_json" "net-http-persistent" "net-http-pipeline"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g4df0jsscq16g6f27flfmvk7p4sbq81d5mdylbz4ikqq60kywzg";
+      sha256 = "1nj2dm2pahfa4d39y8csvjv5l3hpsm6yjq2y96vj2bqgg0qs26bj";
       type = "gem";
     };
-    version = "0.15.1";
+    version = "0.17.0";
   };
   highline = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01ib7jp85xjc4gh4jg0wyzllm46hwv8p0w1m4c75pbgi41fps50y";
+      sha256 = "0yclf57n2j3cw8144ania99h1zinf8q3f5zrhqa754j6gl95rp9d";
       type = "gem";
     };
-    version = "1.7.10";
+    version = "2.0.3";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10nq1xjqvkhngiygji831qx9bryjwws95r4vrnlq9142bzkg670s";
+      type = "gem";
+    };
+    version = "1.8.3";
   };
   json = {
     groups = ["default"];
@@ -114,6 +143,16 @@
     };
     version = "0.9.2";
   };
+  minitest = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
+      type = "gem";
+    };
+    version = "5.14.1";
+  };
   multi_json = {
     groups = ["default"];
     platforms = [];
@@ -159,6 +198,16 @@
     };
     version = "0.11.3";
   };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g";
+      type = "gem";
+    };
+    version = "4.0.5";
+  };
   pusher-client = {
     dependencies = ["json" "websocket"];
     source = {
@@ -168,16 +217,26 @@
     };
     version = "0.6.2";
   };
+  thread_safe = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
   travis = {
-    dependencies = ["backports" "faraday" "faraday_middleware" "gh" "highline" "launchy" "pusher-client" "typhoeus"];
+    dependencies = ["faraday" "faraday_middleware" "gh" "highline" "json" "launchy" "pusher-client" "typhoeus"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18zbi46as4d2wn83safawciyny0g2sk7yz5fvjvqmfk4ywpfrwrr";
+      sha256 = "1yizj5nqvyrfbyiv1kfwc33dylhsmk5l007z06djj152v04z63i3";
       type = "gem";
     };
-    version = "1.8.11";
+    version = "1.9.1";
   };
   typhoeus = {
     dependencies = ["ethon"];
@@ -188,6 +247,17 @@
     };
     version = "0.8.0";
   };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
   websocket = {
     source = {
       remotes = ["https://rubygems.org"];
diff --git a/pkgs/development/tools/misc/uncrustify/default.nix b/pkgs/development/tools/misc/uncrustify/default.nix
index d13212085ef..587896fce68 100644
--- a/pkgs/development/tools/misc/uncrustify/default.nix
+++ b/pkgs/development/tools/misc/uncrustify/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   name = "${product}-${version}";
   product = "uncrustify";
-  version = "0.70.1";
+  version = "0.71.0";
 
   src = fetchFromGitHub {
     owner = product;
     repo = product;
     rev = name;
-    sha256 = "0zr3vxhd947zdvwccw3cj0vsriaawcpfjq3x94v9887hsi8fk87b";
+    sha256 = "1wyhkhn000yad94fnjj61h7lyvan6hig8wh7jxlnyp5wxdwki0pj";
   };
 
   nativeBuildInputs = [ cmake python ];
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 5237d131af0..32fd2258daa 100644
--- a/pkgs/development/tools/mod/default.nix
+++ b/pkgs/development/tools/mod/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "1n0pipbq4fjban8hsxhyl5w8xrl4ai1pvgd02i1j1awmm2l3ykzl";
   };
 
-  modSha256 = "1nl7d00prw1663xrl1nvj1xbs7wzkbqn75i92al821pz12dybdif";
+  vendorSha256 = "032s62rjjq7bqiz5fg17yfkq4j4dsbl6vhvs1wf2sg8jvbqmvdwn";
+
+  doCheck = false;
 
   subPackages = [ "cmd/mod" ];
 
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/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 463642988a8..ab16d951151 100644
--- a/pkgs/development/tools/nwjs/default.nix
+++ b/pkgs/development/tools/nwjs/default.nix
@@ -3,7 +3,7 @@
 , xorg, alsaLib, dbus, glib, gtk3, atk, pango, freetype, fontconfig
 , gdk-pixbuf, cairo, nss, nspr, gconf, expat, systemd, libcap
 , libnotify
-, ffmpeg, libxcb, cups
+, ffmpeg_3, libxcb, cups
 , sqlite, udev
 , libuuid
 , sdk ? false
@@ -22,7 +22,7 @@ let
       xorg.libXScrnSaver cups
       libcap libnotify
       # libnw-specific (not chromium dependencies)
-      ffmpeg libxcb
+      ffmpeg_3 libxcb
       # chromium runtime deps (dlopen’d)
       sqlite udev
       libuuid
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/camlp5/default.nix b/pkgs/development/tools/ocaml/camlp5/default.nix
index 9a69f88c804..7e7c185fbc7 100644
--- a/pkgs/development/tools/ocaml/camlp5/default.nix
+++ b/pkgs/development/tools/ocaml/camlp5/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation {
 
-  name = "camlp5-7.11";
+  name = "camlp5-7.12";
 
   src = fetchzip {
-    url = "https://github.com/camlp5/camlp5/archive/rel711.tar.gz";
-    sha256 = "1s1f9i0r0czxlbnsaz4kvs2ahknmqxcm5ypl75g7scjcbl0an2x4";
+    url = "https://github.com/camlp5/camlp5/archive/rel712.tar.gz";
+    sha256 = "12ix5g15bys932hyf9gs637iz76m0ji9075d83jfdmx85q30llgf";
   };
 
   buildInputs = [ ocaml ];
diff --git a/pkgs/development/tools/ocaml/dune-release/default.nix b/pkgs/development/tools/ocaml/dune-release/default.nix
new file mode 100644
index 00000000000..c267b2757a4
--- /dev/null
+++ b/pkgs/development/tools/ocaml/dune-release/default.nix
@@ -0,0 +1,54 @@
+{ lib, buildDunePackage, fetchurl, makeWrapper
+, curly, fmt, bos, cmdliner, re, rresult, logs
+, odoc, opam-format, opam-core, opam-state, yojson
+, opam, git, findlib, mercurial, bzip2, gnutar, coreutils
+, alcotest, mdx
+}:
+
+# don't include dune as runtime dep, so user can
+# choose between dune and dune_2
+let runtimeInputs = [ opam findlib git mercurial bzip2 gnutar coreutils ];
+in buildDunePackage rec {
+  pname = "dune-release";
+  version = "1.4.0";
+
+  minimumOCamlVersion = "4.06";
+
+  src = fetchurl {
+    url = "https://github.com/ocamllabs/${pname}/releases/download/${version}/${pname}-${version}.tbz";
+    sha256 = "1frinv1rsrm30q6jclicsswpshkdwwdgxx7sp6q9w4c2p211n1ln";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ curly fmt cmdliner re opam-format opam-state opam-core
+                  rresult logs odoc bos yojson ];
+  checkInputs = [ alcotest mdx ] ++ runtimeInputs;
+  doCheck = true;
+
+  useDune2 = true;
+
+  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
+  preFixup = ''
+    wrapProgram $out/bin/dune-release \
+      --prefix PATH : "${lib.makeBinPath runtimeInputs}"
+  '';
+
+  meta = with lib; {
+    description = "Release dune packages in opam";
+    homepage = "https://github.com/ocamllabs/dune-release";
+    license = licenses.isc;
+    maintainers = with maintainers; [ sternenseemann ];
+  };
+}
diff --git a/pkgs/development/tools/ocaml/dune/2.nix b/pkgs/development/tools/ocaml/dune/2.nix
index 37f27768670..eac705294f3 100644
--- a/pkgs/development/tools/ocaml/dune/2.nix
+++ b/pkgs/development/tools/ocaml/dune/2.nix
@@ -1,16 +1,16 @@
 { stdenv, fetchurl, ocaml, findlib }:
 
-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.5.1";
+  version = "2.7.0";
 
   src = fetchurl {
     url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz";
-    sha256 = "0az5ih18wadsp3ljagvws1i7vf0vpg24h75ariy0v3i0gyld6xwg";
+    sha256 = "058wiyncczbmlfxj3cnwn5n68wkmbaf4mgjm2bkp2hffpn2wl5xl";
   };
 
   buildInputs = [ ocaml findlib ];
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/3.0.nix b/pkgs/development/tools/ocaml/js_of_ocaml/3.0.nix
deleted file mode 100644
index 9ca6ca67421..00000000000
--- a/pkgs/development/tools/ocaml/js_of_ocaml/3.0.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, ocaml, findlib, dune, js_of_ocaml-compiler
-, ocaml-migrate-parsetree, ppx_tools_versioned, uchar
-}:
-
-stdenv.mkDerivation {
-  pname = "js_of_ocaml"; 
-
-  inherit (js_of_ocaml-compiler) version src installPhase meta;
-
-  buildInputs = [ findlib ocaml-migrate-parsetree ppx_tools_versioned ];
-  nativeBuildInputs = [ ocaml findlib dune ];
-
-  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/js_of_ocaml/compiler.nix b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
index 90e0a7935de..c0812c39a3e 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
@@ -1,19 +1,19 @@
-{ lib, fetchFromGitHub, buildDunePackage
-, ocaml, findlib, cmdliner, dune, cppo, yojson, ocaml-migrate-parsetree
+{ lib, fetchurl, buildDunePackage
+, ocaml, findlib, cmdliner, dune_2, cppo, yojson, ocaml-migrate-parsetree
+, menhir
 }:
 
 buildDunePackage rec {
 	pname = "js_of_ocaml-compiler";
-	version = "3.5.2";
+	version = "3.7.0";
+	useDune2 = true;
 
-	src = fetchFromGitHub {
-		owner = "ocsigen";
-		repo = "js_of_ocaml";
-		rev = version;
-		sha256 = "1fm855iavljx7rf9hii2qb7ky920zv082d9zlcl504by1bxp1yg8";
+	src = fetchurl {
+		url = "https://github.com/ocsigen/js_of_ocaml/releases/download/${version}/js_of_ocaml-${version}.tbz";
+		sha256 = "0rw6cfkl3zlyav8q2w7grxxqjmg35mz5rgvmkiqb58nl4gmgzx6w";
 	};
 
-	nativeBuildInputs = [ ocaml findlib dune cppo ];
+	nativeBuildInputs = [ ocaml findlib dune_2 cppo menhir ];
   buildInputs = [ cmdliner ];
 
   configurePlatforms = [];
@@ -23,6 +23,6 @@ buildDunePackage rec {
 		description = "Compiler from OCaml bytecode to Javascript";
 		license = lib.licenses.gpl2;
 		maintainers = [ lib.maintainers.vbgl ];
-		inherit (src.meta) homepage;
+		homepage = "https://ocsigen.org/js_of_ocaml/";
 	};
 }
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/default.nix b/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
index 7f6426c9610..9a57b590d6c 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
@@ -1,40 +1,16 @@
-{ stdenv, fetchurl, ocaml, findlib, lwt, menhir, ocsigen_deriving, ppx_deriving, camlp4, ocamlbuild
-, cmdliner, tyxml, reactivedata, cppo, which, base64, uchar, yojson
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
+, ocaml-migrate-parsetree, ppx_tools_versioned, uchar
 }:
 
-let version = if stdenv.lib.versionAtLeast ocaml.version "4.02"
-  then "2.8.4" else "2.7";
-in
-
 stdenv.mkDerivation {
-  pname = "js_of_ocaml";
-  inherit version;
-  src = fetchurl {
-    url = "https://github.com/ocsigen/js_of_ocaml/archive/${version}.tar.gz";
-    sha256 = {
-      "2.7" = "1dali1akyd4zmkwav0d957ynxq2jj6cc94r4xiaql7ca89ajz4jj";
-      "2.8.4" = "098ph50s9kqw6rc3qjn39zv9b5swdf4qr44afwqfkkjgjs5d7vbl";
-    }.${version};
-  };
+  pname = "js_of_ocaml"; 
 
-  buildInputs = [ ocaml findlib menhir ocsigen_deriving ocamlbuild
-                 cmdliner reactivedata cppo which base64 ]
-  ++ stdenv.lib.optionals (stdenv.lib.versionAtLeast ocaml.version "4.02") [ yojson tyxml ];
-  propagatedBuildInputs = [ lwt camlp4 ppx_deriving ]
-  ++ stdenv.lib.optional (version == "2.8.4") uchar;
+  inherit (js_of_ocaml-compiler) version src installPhase meta;
 
-  patches = [ ./Makefile.conf.diff ];
+  buildInputs = [ findlib ocaml-migrate-parsetree ppx_tools_versioned ];
+  nativeBuildInputs = [ ocaml findlib dune_2 ];
 
-  createFindlibDestdir = true;
+	propagatedBuildInputs = [ js_of_ocaml-compiler uchar ];
 
-  meta = with stdenv.lib; {
-    homepage = "http://ocsigen.org/js_of_ocaml/";
-    description = "Compiler of OCaml bytecode to Javascript. It makes it possible to run Ocaml programs in a Web browser";
-    license = licenses.lgpl2;
-    platforms = ocaml.meta.platforms or [];
-    maintainers = [
-      maintainers.gal_bolle
-    ];
-    broken = versionAtLeast ocaml.version "4.05";
-  };
+	buildPhase = "dune build -p js_of_ocaml";
 }
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix b/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix
index 5c8f4377e8d..2ad8578894f 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix
@@ -1,4 +1,4 @@
-{ stdenv, ocaml, findlib, dune, js_of_ocaml-compiler, js_of_ocaml-ppx
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler, js_of_ocaml-ppx
 , ocaml-migrate-parsetree, ppx_tools_versioned
 , js_of_ocaml, ocaml_lwt, lwt_log
 }:
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
 
 	inherit (js_of_ocaml-compiler) version src installPhase meta;
 
-	buildInputs = [ ocaml findlib dune js_of_ocaml-ppx ocaml-migrate-parsetree ppx_tools_versioned ];
+	buildInputs = [ ocaml findlib dune_2 js_of_ocaml-ppx ocaml-migrate-parsetree ppx_tools_versioned ];
 
 	propagatedBuildInputs = [ js_of_ocaml ocaml_lwt lwt_log ];
 
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix b/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix
index 344352467e9..50bcd69eb66 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix
@@ -1,4 +1,4 @@
-{ stdenv, ocaml, findlib, dune, js_of_ocaml-compiler
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
 , ocamlbuild
 }:
 
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
 
 	inherit (js_of_ocaml-compiler) version src installPhase meta;
 
-	buildInputs = [ ocaml findlib dune ];
+	buildInputs = [ ocaml findlib dune_2 ];
 
 	propagatedBuildInputs = [ ocamlbuild ];
 
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix b/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
index 3adad22bd9c..69783c7eada 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
@@ -1,4 +1,4 @@
-{ stdenv, ocaml, findlib, dune, js_of_ocaml-compiler
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
 , ocaml-migrate-parsetree, ppx_tools_versioned
 , js_of_ocaml
 }:
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
 
 	inherit (js_of_ocaml-compiler) version src installPhase meta;
 
-	buildInputs = [ ocaml findlib dune ocaml-migrate-parsetree ppx_tools_versioned js_of_ocaml ];
+	buildInputs = [ ocaml findlib dune_2 ocaml-migrate-parsetree ppx_tools_versioned js_of_ocaml ];
 
 	buildPhase = "dune build -p js_of_ocaml-ppx";
 }
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix b/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix
index 47396829f8a..d3cc4e08787 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix
@@ -1,4 +1,4 @@
-{ stdenv, ocaml, findlib, dune, js_of_ocaml-compiler
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
 , js_of_ocaml, ppxlib
 }:
 
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
 
 	inherit (js_of_ocaml-compiler) version src installPhase meta;
 
-	buildInputs = [ ocaml findlib dune ];
+	buildInputs = [ ocaml findlib dune_2 ];
 
 	propagatedBuildInputs = [ js_of_ocaml ppxlib ];
 
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix b/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix
index c39c985183a..fcfeeaf8d99 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix
@@ -1,4 +1,4 @@
-{ stdenv, ocaml, findlib, dune, js_of_ocaml-compiler
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
 , js_of_ocaml-ppx, ocaml-migrate-parsetree, ppx_tools_versioned
 , js_of_ocaml, reactivedata, tyxml
 }:
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
 
 	inherit (js_of_ocaml-compiler) version src installPhase meta;
 
-	buildInputs = [ ocaml findlib dune js_of_ocaml-ppx ocaml-migrate-parsetree ppx_tools_versioned ];
+	buildInputs = [ ocaml findlib dune_2 js_of_ocaml-ppx ocaml-migrate-parsetree ppx_tools_versioned ];
 
 	propagatedBuildInputs = [ js_of_ocaml reactivedata tyxml ];
 
diff --git a/pkgs/development/tools/ocaml/merlin/default.nix b/pkgs/development/tools/ocaml/merlin/default.nix
index fa78e47951f..4b11dd13983 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.4";
+  version = "3.3.6";
 
   minimumOCamlVersion = "4.02.1";
 
   src = fetchurl {
     url = "https://github.com/ocaml/merlin/releases/download/v${version}/merlin-v${version}.tbz";
-    sha256 = "12wxric6n3rmsn0w16xm8vjd8p5aw24cj76zw2x87qfwwgmy1kdd";
+    sha256 = "1360cm0jkn2v2y5p3yzdyw9661a1vpddcibkbfblmk95qafx4civ";
   };
 
   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/ofono-phonesim/default.nix b/pkgs/development/tools/ofono-phonesim/default.nix
index e62827c67b4..e651c7cfab5 100644
--- a/pkgs/development/tools/ofono-phonesim/default.nix
+++ b/pkgs/development/tools/ofono-phonesim/default.nix
@@ -13,7 +13,7 @@ mkDerivation {
   src = fetchgit {
     url = "git://git.kernel.org/pub/scm/network/ofono/phonesim.git";
     rev = "adf231a84cd3708b825dc82c56e841dd7e3b4541";
-    sha256 = "sha256:1840914sz46l8h2jwa0lymw6dvgj72wq9bhp3k4v4rk6masbf6hp";
+    sha256 = "1840914sz46l8h2jwa0lymw6dvgj72wq9bhp3k4v4rk6masbf6hp";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/omnisharp-roslyn/default.nix b/pkgs/development/tools/omnisharp-roslyn/default.nix
index a81b7133e92..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.0";
-  
+  version = "1.35.2";
+
   src = fetchurl {
     url = "https://github.com/OmniSharp/omnisharp-roslyn/releases/download/v${version}/omnisharp-mono.tar.gz";
-    sha256 = "191jiyw6kx1rw241bg9nv5splfpz6ny90g9yf28cd0xwpx978p83";
+    sha256 = "0k4crybddqpcg1vi1ax1s85w4hlknz6kaqn4cvv279dkm9aqxbp8";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "OmniSharp based on roslyn workspaces";
+    homepage = "https://github.com/OmniSharp/omnisharp-roslyn";
     platforms = platforms.linux;
     license = licenses.mit;
     maintainers = with maintainers; [ tesq0 ];
diff --git a/pkgs/development/tools/open-policy-agent/default.nix b/pkgs/development/tools/open-policy-agent/default.nix
index d1ecdd1efd9..c91727d6f11 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.22.0";
 
   goPackagePath = "github.com/open-policy-agent/opa";
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "opa";
     rev = "v${version}";
-    sha256 = "0i9735v73a7wfq02p4hsy61g7d7bip6zmb8bnsiz2ma84g2g533w";
+    sha256 = "1kndiiqf6b4j8zhv0ypjr9dfjgck25qiqa2bb0pmpm3j9460zzjs";
   };
   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 434f0186d89..b902dd2cc40 100644
--- a/pkgs/development/tools/out-of-tree/default.nix
+++ b/pkgs/development/tools/out-of-tree/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, buildGoPackage, fetchgit, qemu, docker, which, makeWrapper }:
+{ stdenv, buildGoModule, fetchgit, qemu, docker, which, makeWrapper }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "out-of-tree";
-  version = "1.2.1";
+  version = "1.4.0";
 
   buildInputs = [ makeWrapper ];
 
-  goPackagePath = "code.dumpstack.io/tools/${pname}";
-
   src = fetchgit {
     rev = "refs/tags/v${version}";
     url = "https://code.dumpstack.io/tools/${pname}.git";
-    sha256 = "0wh4yh865wgl3hs203ncdjh1gaxznmhxdg56mciibng0dghgyw7n";
+    sha256 = "1rn824l3dzh3xjxsbzzj053qg1abhzjimc8l73r0n5qrl44k2qk2";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "0kg5c4h7xnwfcfshrh5n76xv98wzr73kxzr8q65iphsjimbxcpy3";
+
+  doCheck = false;
 
   postFixup = ''
     wrapProgram $out/bin/out-of-tree \
diff --git a/pkgs/development/tools/out-of-tree/deps.nix b/pkgs/development/tools/out-of-tree/deps.nix
deleted file mode 100644
index 28c6af4586c..00000000000
--- a/pkgs/development/tools/out-of-tree/deps.nix
+++ /dev/null
@@ -1,120 +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 = "a0175ee3bccc567396460bf5acd36800cb10c49c";
-      sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a";
-      sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-runewidth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-runewidth";
-      rev = "703b5e6b11ae25aeb2af9ebb5d5fdf8fa2575211";
-      sha256 = "0znpyz71gajx3g0j2zp63nhjj2c07g16885vxv4ykwnrfmzbgk4w";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-sqlite3";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-sqlite3";
-      rev = "5dd71670cca4bc0ee90371eabd0f1bdba1ac6f35";
-      sha256 = "1zq7gq5bhf5w9g43680v2z6j0px366a3gmmk5dyxqv0gyrgcpm17";
-    };
-  }
-  {
-    goPackagePath = "github.com/naoina/go-stringutil";
-    fetch = {
-      type = "git";
-      url = "https://github.com/naoina/go-stringutil";
-      rev = "6b638e95a32d0c1131db0e7fe83775cbea4a0d0b";
-      sha256 = "00831p1wn3rimybk1z8l30787kn1akv5jax5wx743nn76qcmkmc6";
-    };
-  }
-  {
-    goPackagePath = "github.com/naoina/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/naoina/toml";
-      rev = "9fafd69674167c06933b1787ae235618431ce87f";
-      sha256 = "0mpvdnidgab48k7dfq1vaiz1wny8n29y7zxpipnp1zm8ibxpism0";
-    };
-  }
-  {
-    goPackagePath = "github.com/olekukonko/tablewriter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/olekukonko/tablewriter";
-      rev = "e6d60cf7ba1f42d86d54cdf5508611c4aafb3970";
-      sha256 = "0hh95glg7d2md185r03wn52j2r33jc4zil0qvcrs66ka7bdxi7vj";
-    };
-  }
-  {
-    goPackagePath = "github.com/otiai10/copy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/otiai10/copy";
-      rev = "7e9a647135a142c2669943d4a4d29be015ce9392";
-      sha256 = "1fpjyk6zrcdwgw3w93v3sb4xf0gq8w5py6vvlljxgf4gi7k96klj";
-    };
-  }
-  {
-    goPackagePath = "github.com/remeh/sizedwaitgroup";
-    fetch = {
-      type = "git";
-      url = "https://github.com/remeh/sizedwaitgroup";
-      rev = "5e7302b12ccef91dce9fde2f5bda6d5c7ea5d2eb";
-      sha256 = "1xwdzby27xzcghsqhli3il165iz3vkx3g4abgvkl99wysyhcvn0a";
-    };
-  }
-  {
-    goPackagePath = "github.com/zcalusic/sysinfo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/zcalusic/sysinfo";
-      rev = "fbadb57345c2ba8d05d75e81206f665d322c0bb2";
-      sha256 = "0556jj50aw2an6a4s4v2n0kk42hbkpgcvd4gbahkdlh4qrqg2r0j";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "4def268fd1a49955bfb3dda92fe3db4f924f2285";
-      sha256 = "1bfsnari529gw34cz0zqk3d9mrkcj1ay35kangri8kbgll0ss5a6";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/logrusorgru/aurora.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/logrusorgru/aurora.v1";
-      rev = "a7b3b318ed4e1ae5b80602b08627267303c68572";
-      sha256 = "1dldc270z42zm2d377ks7sa5059janjcjhv3inza3rjvapknsrcb";
-    };
-  }
-]
diff --git a/pkgs/development/tools/packer/default.nix b/pkgs/development/tools/packer/default.nix
index 32ac95cff6a..2cfe95152a3 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.5.6";
+  version = "1.6.1";
 
   goPackagePath = "github.com/hashicorp/packer";
 
@@ -11,14 +11,14 @@ buildGoPackage rec {
     owner = "hashicorp";
     repo = "packer";
     rev = "v${version}";
-    sha256 = "0pwygrh6pjmx8a1jc12929x0slj7w3b8p3pzswnbk7klyhj4jkp8";
+    sha256 = "0jm8950rk0cdf84z0yxm8ic3pm353cgmxr1akn6kq1bwg2w0vsrq";
   };
 
   meta = with stdenv.lib; {
     description = "A tool for creating identical machine images for multiple platforms from a single source configuration";
     homepage    = "https://www.packer.io";
     license     = licenses.mpl20;
-    maintainers = with maintainers; [ cstrahan zimbatm ];
+    maintainers = with maintainers; [ cstrahan zimbatm ma27 ];
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/packet-cli/default.nix b/pkgs/development/tools/packet-cli/default.nix
index 52bb0f15844..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.6";
+  version = "0.0.8";
 
   src = fetchFromGitHub {
     owner = "packethost";
     repo = pname;
     rev = version;
-    sha256 = "17f3ax7pjm5k93cxj7fd8hwr4id1lbzz9pkl2xflpxydi89bwdfz";
+    sha256 = "0ys6zyhyi65g0sj15pb6rslgbjgkh73y32gc0yvhfd6xmgzaxpxf";
   };
 
-  modSha256 = "1hyv1vxk1rsr3jq3b08q0487sqf3y0km3mlwvqivib1y6hrknnnr";
+  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;
   };
 }
diff --git a/pkgs/development/tools/pandoc/default.nix b/pkgs/development/tools/pandoc/default.nix
index ce7132b0007..0bf9ce71e48 100644
--- a/pkgs/development/tools/pandoc/default.nix
+++ b/pkgs/development/tools/pandoc/default.nix
@@ -10,8 +10,8 @@ in
     buildTools = (drv.buildTools or []) ++ [ removeReferencesTo ];
   })).overrideAttrs (drv: {
 
-    # These libraries are still referenced, because pandoc references
-    # their `Paths_*` module for figuring out their version.
+    # These libraries are still referenced, because they generate
+    # a `Paths_*` module for figuring out their version.
     # The `Paths_*` module is generated by Cabal, and contains the
     # version, but also paths to e.g. the data directories, which
     # lead to a transitive runtime dependency on the whole GHC distribution.
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 c9758fe21e3..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.5.4";
+  version = "3.7.1";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0a2cbrqh7mgx2dwf5qm10v68iakv1i0dqh9di4x5aqxsz96ibpf0";
+    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..51af3acdacd 100644
--- a/pkgs/development/tools/parsing/tree-sitter/default.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/default.nix
@@ -90,7 +90,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 8bbb34fabd4..4ed16d41746 100644
--- a/pkgs/development/tools/pet/default.nix
+++ b/pkgs/development/tools/pet/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "1na3az7vicjq1rxd3ybid47yrblsdazgli0dchkbwh8zchwhqj33";
   };
 
-  modSha256 = "06ham8lsx5c1vk5jkwp1aa9g4q4g7sfq7gxz2gkffa98x2vlawyf";
+  vendorSha256 = "0pnd89iqdj3f719xf4iy5r04n51d0rrrf0qb2zjirpw7vh7g82i9";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/pipenv/default.nix b/pkgs/development/tools/pipenv/default.nix
index 37d5c8a7890..1474ba56a14 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,30 +14,29 @@ let
     virtualenv-clone
   ];
 
-  pythonEnv = python3.withPackages(ps: with ps; [ virtualenv ]);
+  pythonEnv = python3.withPackages runtimeDeps;
 
 in buildPythonApplication rec {
   pname = "pipenv";
-  version = "2018.11.26";
+  version = "2020.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ip8zsrwmhrankrix0shig9g8q2knmr7b63sh7lqa8a5x03fcwx6";
+    sha256 = "12s7c3f3k5v1szdhklsxwisf9v3dk4mb9fh7762afpgs8mrrmm3x";
   };
 
   LC_ALL = "en_US.UTF-8";
 
   postPatch = ''
     # pipenv invokes python in a subprocess to create a virtualenv
-    # it uses sys.executable which will point in our case to a python that
-    # does not have virtualenv.
+    # and to call setup.py.
+    # It would use sys.executable, which in our case points to a python that
+    # does not have the required dependencies.
     substituteInPlace pipenv/core.py \
-      --replace "vistir.compat.Path(sys.executable).absolute().as_posix()" "vistir.compat.Path('${pythonEnv.interpreter}').absolute().as_posix()"
+      --replace "sys.executable" "'${pythonEnv.interpreter}'"
   '';
 
-  nativeBuildInputs = [ invoke parver ];
-
-  propagatedBuildInputs = runtimeDeps;
+  propagatedBuildInputs = runtimeDeps python3.pkgs;
 
   doCheck = true;
   checkPhase = ''
diff --git a/pkgs/development/tools/poetry/default.nix b/pkgs/development/tools/poetry/default.nix
deleted file mode 100644
index ac2ab258df4..00000000000
--- a/pkgs/development/tools/poetry/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, poetry2nix, python, fetchFromGitHub, runtimeShell }:
-
-
-poetry2nix.mkPoetryApplication {
-
-  inherit python;
-
-  pyproject = ./pyproject.toml;
-  poetrylock = ./poetry.lock;
-
-  src = fetchFromGitHub (lib.importJSON ./src.json);
-
-  # "Vendor" dependencies (for build-system support)
-  postPatch = ''
-    for path in ''${PYTHONPATH//:/ }; do
-      echo "sys.path.insert(0, \"$path\")" >> poetry/__init__.py
-    done
-  '';
-
-  # Propagating dependencies leads to issues downstream
-  # We've already patched poetry to prefer "vendored" dependencies
-  postFixup = ''
-    rm $out/nix-support/propagated-build-inputs
-  '';
-
-  # Fails because of impurities (network, git etc etc)
-  doCheck = false;
-
-  meta = with lib; {
-    platforms = platforms.all;
-    maintainers = with maintainers; [ adisbladis jakewaksbaum ];
-  };
-}
diff --git a/pkgs/development/tools/poetry/src.json b/pkgs/development/tools/poetry/src.json
deleted file mode 100644
index 45f41ab9cfc..00000000000
--- a/pkgs/development/tools/poetry/src.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "owner": "python-poetry",
-    "repo": "poetry",
-    "rev": "754dbf80dc022b89974288cff10b40ab2f1c2697",
-    "sha256": "1khjx598n222fhzvsxsc6cq4m2i8rss1k1whxw9k03kxi4dx6x5g"
-}
\ No newline at end of file
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
index a7fb382c755..5fb646fae88 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.8.0";
-
   /* 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.11.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; };
@@ -69,28 +74,29 @@ let
       baseOverlay = self: super:
         let
           getDep = depName: self.${depName};
-          lockPkgs = builtins.listToAttrs
-            (
-              builtins.map
-                (
-                  pkgMeta: rec {
-                    name = moduleName pkgMeta.name;
-                    value = self.mkPoetryDep
-                      (
-                        pkgMeta // {
-                          inherit pwd preferWheels;
-                          source = pkgMeta.source or null;
-                          files = lockFiles.${name};
-                          pythonPackages = self;
-                          sourceSpec = pyProject.tool.poetry.dependencies.${name} or pyProject.tool.poetry.dev-dependencies.${name};
-                        }
-                      );
-                  }
-                ) compatible
-            );
+          lockPkgs = builtins.listToAttrs (
+            builtins.map
+              (
+                pkgMeta: rec {
+                  name = moduleName pkgMeta.name;
+                  value = self.mkPoetryDep (
+                    pkgMeta // {
+                      inherit pwd preferWheels;
+                      inherit __isBootstrap;
+                      source = pkgMeta.source or null;
+                      files = lockFiles.${name};
+                      pythonPackages = self;
+                      sourceSpec = pyProject.tool.poetry.dependencies.${name} or pyProject.tool.poetry.dev-dependencies.${name} or { };
+                    }
+                  );
+                }
+              )
+              compatible
+          );
         in
         lockPkgs;
-      overlays = builtins.map getFunctorFn
+      overlays = builtins.map
+        getFunctorFn
         (
           [
             (
@@ -106,6 +112,8 @@ let
                   # The canonical name is setuptools-scm
                   setuptools-scm = super.setuptools_scm;
 
+                  __toPluginAble = toPluginAble self;
+
                   inherit (hooks) pipBuildHook removePathDependenciesHook poetry2nixFixupHook;
                 }
             )
@@ -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; };
@@ -127,6 +135,8 @@ let
     };
 
   /* Returns a package with a python interpreter and all packages specified in the poetry.lock lock file.
+     In editablePackageSources you can pass a mapping from package name to source directory to have
+     those packages available in the resulting environment, whose source changes are immediately available.
 
      Example:
        poetry2nix.mkPoetryEnv { poetrylock = ./poetry.lock; python = python3; }
@@ -135,37 +145,51 @@ let
     { projectDir ? null
     , pyproject ? projectDir + "/pyproject.toml"
     , poetrylock ? projectDir + "/poetry.lock"
-    , overrides ? [ defaultPoetryOverrides ]
+    , overrides ? self.defaultPoetryOverrides
     , pwd ? projectDir
     , python ? pkgs.python3
     , preferWheels ? false
+      # Example: { my-app = ./src; }
+    , editablePackageSources ? { }
     }:
     let
-      py = mkPoetryPackages
-        (
-          {
-            inherit pyproject poetrylock overrides python pwd preferWheels;
-          }
-        );
+      py = self.mkPoetryPackages (
+        {
+          inherit pyproject poetrylock overrides python pwd preferWheels;
+        }
+      );
+
+      editablePackage = import ./editable.nix {
+        inherit pkgs lib poetryLib editablePackageSources;
+        inherit (py) pyProject python;
+      };
+
     in
-    py.python.withPackages (_: py.poetryPackages);
+    py.python.withPackages (_: py.poetryPackages ++ lib.optional (editablePackageSources != { }) editablePackage);
 
-  /* Creates a Python application from pyproject.toml and poetry.lock */
+  /* Creates a Python application from pyproject.toml and poetry.lock
+
+     The result also contains a .dependencyEnv attribute which is a python
+     environment of all dependencies and this apps modules. This is useful if
+     you rely on dependencies to invoke your modules for deployment: e.g. this
+     allows `gunicorn my-module:app`.
+  */
   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;
 
@@ -191,20 +215,20 @@ let
           (
             dep:
             let
-              pkg = py.pkgs."${dep}";
+              pkg = py.pkgs."${moduleName dep}";
               constraints = deps.${dep}.python or "";
               isCompat = compat constraints;
-            in if isCompat then pkg else null
-          ) depAttrs;
+            in
+            if isCompat then pkg else null
+          )
+          depAttrs;
       getInputs = attr: attrs.${attr} or [ ];
       mkInput = attr: extraInputs: getInputs attr ++ extraInputs;
       buildSystemPkgs = poetryLib.getBuildSystemPkgs {
         inherit pyProject;
         pythonPackages = py.pkgs;
       };
-    in
-    py.pkgs.buildPythonApplication
-      (
+      app = py.pkgs.buildPythonPackage (
         passedAttrs // {
           pname = moduleName pyProject.tool.poetry.name;
           version = pyProject.tool.poetry.version;
@@ -212,6 +236,10 @@ let
           inherit src;
 
           format = "pyproject";
+          # Like buildPythonApplication, but without the toPythonModule part
+          # Meaning this ends up looking like an application but it also
+          # provides python modules
+          namePrefix = "";
 
           buildInputs = mkInput "buildInputs" buildSystemPkgs;
           propagatedBuildInputs = mkInput "propagatedBuildInputs" (getDeps "dependencies") ++ ([ py.pkgs.setuptools ]);
@@ -220,41 +248,74 @@ let
 
           passthru = {
             python = py;
+            dependencyEnv = (
+              lib.makeOverridable ({ app, ... }@attrs:
+                let
+                  args = builtins.removeAttrs attrs [ "app" ] // {
+                    extraLibs = [ app ];
+                  };
+                in
+                py.buildEnv.override args)
+            ) { inherit app; };
           };
 
-          meta = meta // {
-            inherit (pyProject.tool.poetry) description homepage;
+          meta = lib.optionalAttrs (lib.hasAttr "description" pyProject.tool.poetry) {
+            inherit (pyProject.tool.poetry) description;
+          } // lib.optionalAttrs (lib.hasAttr "homepage" pyProject.tool.poetry) {
+            inherit (pyProject.tool.poetry) homepage;
+          } // {
             inherit (py.meta) platforms;
             license = getLicenseBySpdxId (pyProject.tool.poetry.license or "unknown");
-          };
+          } // meta;
 
         }
       );
+    in
+    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
-        defaultSet = defaultPoetryOverrides self super;
-        customSet = fn self super;
+        composed = lib.foldr lib.composeExtensions overlay [ defaults ];
       in
-      defaultSet // customSet;
+      self.mkDefaultPoetryOverrides composed;
+
+    overrideOverlay = fn:
+      let
+        overlay = self: super:
+          let
+            defaultSet = defaults self super;
+            customSet = fn self super;
+          in
+          defaultSet // customSet;
+      in
+      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 = {
@@ -270,8 +331,8 @@ in
     combining it with poetry2nix default overrides
     */
     withDefaults = overlay: [
-      defaultPoetryOverrides
+      self.defaultPoetryOverrides
       overlay
     ];
   };
-}
+})
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/editable.nix b/pkgs/development/tools/poetry2nix/poetry2nix/editable.nix
new file mode 100644
index 00000000000..8b0d933e445
--- /dev/null
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/editable.nix
@@ -0,0 +1,54 @@
+{ pkgs
+, lib
+, poetryLib
+, pyProject
+, python
+, editablePackageSources
+}:
+let
+  name = poetryLib.moduleName pyProject.tool.poetry.name;
+
+  # Just enough standard PKG-INFO fields for an editable installation
+  pkgInfoFields = {
+    Metadata-Version = "2.1";
+    Name = name;
+    # While the pyproject.toml could contain arbitrary version strings, for
+    # simplicity we just use the same one for PKG-INFO, even though that
+    # should follow follow PEP 440: https://www.python.org/dev/peps/pep-0345/#version
+    # This is how poetry transforms it: https://github.com/python-poetry/poetry/blob/6cd3645d889f47c10425961661b8193b23f0ed79/poetry/version/version.py
+    Version = pyProject.tool.poetry.version;
+    Summary = pyProject.tool.poetry.description;
+  };
+
+  pkgInfoFile = builtins.toFile "${name}-PKG-INFO"
+    (lib.concatStringsSep "\n" (lib.mapAttrsToList (key: value: "${key}: ${value}") pkgInfoFields));
+
+  entryPointsFile = builtins.toFile "${name}-entry_points.txt"
+    (lib.generators.toINI { } pyProject.tool.poetry.plugins);
+
+  # A python package that contains simple .egg-info and .pth files for an editable installation
+  editablePackage = python.pkgs.toPythonModule (pkgs.runCommandNoCC "${name}-editable"
+    { } ''
+    mkdir -p "$out/${python.sitePackages}"
+    cd "$out/${python.sitePackages}"
+
+    # See https://docs.python.org/3.8/library/site.html for info on such .pth files
+    # These add another site package path for each line
+    touch poetry2nix-editable.pth
+    ${lib.concatMapStringsSep "\n" (src: ''
+      echo "${toString src}" >> poetry2nix-editable.pth
+    '')
+      (lib.attrValues editablePackageSources)}
+
+    # Create a very simple egg so pkg_resources can find this package
+    # See https://setuptools.readthedocs.io/en/latest/formats.html for more info on the egg format
+    mkdir "${name}.egg-info"
+    cd "${name}.egg-info"
+    ln -s ${pkgInfoFile} PKG-INFO
+    ${lib.optionalString (pyProject.tool.poetry ? plugins) ''
+      ln -s ${entryPointsFile} entry_points.txt
+    ''}
+  ''
+  );
+in
+editablePackage
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
index ae5867b8337..001a3d09c6b 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
@@ -14,36 +14,39 @@ in
   removePathDependenciesHook = callPackage
     (
       {}:
-      makeSetupHook {
-        name = "remove-path-dependencies.sh";
-        deps = [ ];
-        substitutions = {
-          inherit pythonInterpreter;
-          yj = "${yj}/bin/yj";
-          pyprojectPatchScript = "${./pyproject-without-path.py}";
-        };
-      } ./remove-path-dependencies.sh
+      makeSetupHook
+        {
+          name = "remove-path-dependencies.sh";
+          deps = [ ];
+          substitutions = {
+            inherit pythonInterpreter;
+            yj = "${yj}/bin/yj";
+            pyprojectPatchScript = "${./pyproject-without-path.py}";
+          };
+        } ./remove-path-dependencies.sh
     ) { };
 
   pipBuildHook = callPackage
     (
       { pip, wheel }:
-      makeSetupHook {
-        name = "pip-build-hook.sh";
-        deps = [ pip wheel ];
-        substitutions = {
-          inherit pythonInterpreter pythonSitePackages;
-        };
-      } ./pip-build-hook.sh
+      makeSetupHook
+        {
+          name = "pip-build-hook.sh";
+          deps = [ pip wheel ];
+          substitutions = {
+            inherit pythonInterpreter pythonSitePackages;
+          };
+        } ./pip-build-hook.sh
     ) { };
 
   poetry2nixFixupHook = callPackage
     (
       {}:
-      makeSetupHook {
-        name = "fixup-hook.sh";
-        deps = [ ];
-      } ./fixup-hook.sh
+      makeSetupHook
+        {
+          name = "fixup-hook.sh";
+          deps = [ ];
+        } ./fixup-hook.sh
     ) { };
 
 }
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix b/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
index ed47837ee43..bdd30cbffa8 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
@@ -20,7 +20,7 @@ let
       minor = l: lib.elemAt l 1;
       joinVersion = v: lib.concatStringsSep "." v;
     in
-    joinVersion ( if major pyVer == major ver && minor pyVer == minor ver then ver else pyVer);
+    joinVersion (if major pyVer == major ver && minor pyVer == minor ver then ver else pyVer);
 
   # Compare a semver expression with a version
   isCompatible = version:
@@ -45,28 +45,27 @@ let
           state = operators."${operator}" acc.state (satisfiesSemver version v);
         };
       initial = { operator = "&&"; state = true; };
-    in if expr == "" then true else (builtins.foldl' combine initial tokens).state;
+    in
+    if expr == "" then true else (builtins.foldl' combine initial tokens).state;
   fromTOML = builtins.fromTOML or
     (
-      toml: builtins.fromJSON
-        (
-          builtins.readFile
-            (
-              pkgs.runCommand "from-toml"
-                {
-                  inherit toml;
-                  allowSubstitutes = false;
-                  preferLocalBuild = true;
-                }
-                ''
-                  ${pkgs.remarshal}/bin/remarshal \
-                    -if toml \
-                    -i <(echo "$toml") \
-                    -of json \
-                    -o $out
-                ''
-            )
+      toml: builtins.fromJSON (
+        builtins.readFile (
+          pkgs.runCommand "from-toml"
+            {
+              inherit toml;
+              allowSubstitutes = false;
+              preferLocalBuild = true;
+            }
+            ''
+              ${pkgs.remarshal}/bin/remarshal \
+                -if toml \
+                -i <(echo "$toml") \
+                -of json \
+                -o $out
+            ''
         )
+      )
     );
   readTOML = path: fromTOML (builtins.readFile path);
 
@@ -88,11 +87,10 @@ let
   #   file: filename including extension
   #   hash: SRI hash
   #   kind: Language implementation and version tag
-  predictURLFromPypi = lib.makeOverridable
-    (
-      { pname, file, hash, kind }:
-      "https://files.pythonhosted.org/packages/${kind}/${lib.toLower (builtins.substring 0 1 file)}/${pname}/${file}"
-    );
+  predictURLFromPypi = lib.makeOverridable (
+    { pname, file, hash, kind }:
+    "https://files.pythonhosted.org/packages/${kind}/${lib.toLower (builtins.substring 0 1 file)}/${pname}/${file}"
+  );
 
 
   # Fetch the wheels from the PyPI index.
@@ -102,36 +100,35 @@ let
   #   file: filename including extension
   #   hash: SRI hash
   #   kind: Language implementation and version tag
-  fetchWheelFromPypi = lib.makeOverridable
-    (
-      { pname, file, hash, kind, curlOpts ? "" }:
-      let
-        version = builtins.elemAt (builtins.split "-" file) 2;
-      in
-      (pkgs.stdenvNoCC.mkDerivation {
-        name = file;
-        nativeBuildInputs = [
-          pkgs.curl
-          pkgs.jq
-        ];
-        isWheel = true;
-        system = "builtin";
-
-        preferLocalBuild = true;
-        impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
-          "NIX_CURL_FLAGS"
-        ];
-
-        predictedURL = predictURLFromPypi { inherit pname file hash kind; };
-        inherit pname file version curlOpts;
-
-        builder = ./fetch-wheel.sh;
-
-        outputHashMode = "flat";
-        outputHashAlgo = "sha256";
-        outputHash = hash;
-      })
-    );
+  fetchWheelFromPypi = lib.makeOverridable (
+    { pname, file, hash, kind, curlOpts ? "" }:
+    let
+      version = builtins.elemAt (builtins.split "-" file) 2;
+    in
+    (pkgs.stdenvNoCC.mkDerivation {
+      name = file;
+      nativeBuildInputs = [
+        pkgs.curl
+        pkgs.jq
+      ];
+      isWheel = true;
+      system = "builtin";
+
+      preferLocalBuild = true;
+      impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
+        "NIX_CURL_FLAGS"
+      ];
+
+      predictedURL = predictURLFromPypi { inherit pname file hash kind; };
+      inherit pname file version curlOpts;
+
+      builder = ./fetch-wheel.sh;
+
+      outputHashMode = "flat";
+      outputHashAlgo = "sha256";
+      outputHash = hash;
+    })
+  );
 
   # Fetch the artifacts from the PyPI index. Since we get all
   # info we need from the lock file we don't use nixpkgs' fetchPyPi
@@ -143,22 +140,23 @@ let
   #   file: filename including extension
   #   hash: SRI hash
   #   kind: Language implementation and version tag https://www.python.org/dev/peps/pep-0427/#file-name-convention
-  fetchFromPypi = lib.makeOverridable
-    (
-      { pname, file, hash, kind }:
-      if lib.strings.hasSuffix "whl" file then fetchWheelFromPypi { inherit pname file hash kind; }
-      else
-        pkgs.fetchurl {
-          url = predictURLFromPypi { inherit pname file hash kind; };
-          inherit hash;
-        }
-    );
+  fetchFromPypi = lib.makeOverridable (
+    { pname, file, hash, kind }:
+    if lib.strings.hasSuffix "whl" file then fetchWheelFromPypi { inherit pname file hash kind; }
+    else
+      pkgs.fetchurl {
+        url = predictURLFromPypi { inherit pname file hash kind; };
+        inherit hash;
+      }
+  );
   getBuildSystemPkgs =
     { pythonPackages
     , 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 2467dad31e1..6b784fd8fc5 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
 , ...
 }:
 
@@ -58,7 +59,7 @@ pythonPackages.callPackage
           binaryDist = selectWheel fileCandidates;
           sourceDist = builtins.filter isSdist fileCandidates;
           eggs = builtins.filter isEgg fileCandidates;
-          entries = ( if preferWheel then binaryDist ++ sourceDist else sourceDist ++ binaryDist) ++ eggs;
+          entries = (if preferWheel then binaryDist ++ sourceDist else sourceDist ++ binaryDist) ++ eggs;
           lockFileEntry = builtins.head entries;
           _isEgg = isEgg lockFileEntry;
         in
@@ -106,12 +107,14 @@ pythonPackages.callPackage
         baseBuildInputs
         ++ lib.optional (!isSource) (getManyLinuxDeps fileInfo.name).pkg
         ++ lib.optional isLocal buildSystemPkgs
+        ++ lib.optional (!__isBootstrap) [ pythonPackages.poetry ]
       );
 
       propagatedBuildInputs =
         let
           compat = isCompatible (poetryLib.getPythonVersion python);
-          deps = lib.filterAttrs (n: v: v)
+          deps = lib.filterAttrs
+            (n: v: v)
             (
               lib.mapAttrs
                 (
@@ -120,7 +123,8 @@ pythonPackages.callPackage
                       constraints = v.python or "";
                     in
                     compat constraints
-                ) dependencies
+                )
+                dependencies
             );
           depAttrs = lib.attrNames deps;
         in
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix b/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
index d18e6b8293f..202261ecdb9 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
@@ -6,520 +6,625 @@
 self: super:
 
 {
-  astroid = super.astroid.overridePythonAttrs
-    (
-      old: rec {
-        buildInputs = old.buildInputs ++ [ self.pytest-runner ];
-        doCheck = false;
-      }
-    );
+  automat = super.automat.overridePythonAttrs (
+    old: rec {
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.m2r ];
+    }
+  );
 
-  av = super.av.overridePythonAttrs
-    (
-      old: {
-        nativeBuildInputs = old.nativeBuildInputs ++ [
-          pkgs.pkgconfig
-        ];
-        buildInputs = old.buildInputs ++ [ pkgs.ffmpeg_4 ];
-      }
-    );
+  astroid = super.astroid.overridePythonAttrs (
+    old: rec {
+      buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+      doCheck = false;
+    }
+  );
 
-  bcrypt = super.bcrypt.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ pkgs.libffi ];
-      }
-    );
+  av = super.av.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [
+        pkgs.pkgconfig
+      ];
+      buildInputs = old.buildInputs ++ [ pkgs.ffmpeg_4 ];
+    }
+  );
+
+  bcrypt = super.bcrypt.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ pkgs.libffi ];
+    }
+  );
 
   cffi =
     # cffi is bundled with pypy
     if self.python.implementation == "pypy" then null else (
-      super.cffi.overridePythonAttrs
-        (
-          old: {
-            buildInputs = old.buildInputs ++ [ pkgs.libffi ];
-          }
-        )
-    );
-
-  cftime = super.cftime.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [
-          self.cython
-        ];
-      }
+      super.cffi.overridePythonAttrs (
+        old: {
+          buildInputs = old.buildInputs ++ [ pkgs.libffi ];
+        }
+      )
     );
 
-  configparser = super.configparser.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [
-          self.toml
-        ];
+  cftime = super.cftime.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [
+        self.cython
+      ];
+    }
+  );
 
-        postPatch = ''
-          substituteInPlace setup.py --replace 'setuptools.setup()' 'setuptools.setup(version="${old.version}")'
-        '';
-      }
-    );
+  configparser = super.configparser.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [
+        self.toml
+      ];
 
-  cryptography = super.cryptography.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ pkgs.openssl ];
-      }
-    );
+      postPatch = ''
+        substituteInPlace setup.py --replace 'setuptools.setup()' 'setuptools.setup(version="${old.version}")'
+      '';
+    }
+  );
 
-  django = (
-    super.django.overridePythonAttrs
-      (
-        old: {
-          propagatedNativeBuildInputs = (old.propagatedNativeBuildInputs or [ ])
-            ++ [ pkgs.gettext ];
-        }
-      )
+  cryptography = super.cryptography.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ pkgs.openssl ];
+    }
   );
 
-  django-bakery = super.django-bakery.overridePythonAttrs
-    (
+  django = (
+    super.django.overridePythonAttrs (
       old: {
-        configurePhase = ''
-          if ! test -e LICENSE; then
-            touch LICENSE
-          fi
-        '' + (old.configurePhase or "");
+        propagatedNativeBuildInputs = (old.propagatedNativeBuildInputs or [ ])
+          ++ [ pkgs.gettext ];
       }
-    );
+    )
+  );
 
-  dlib = super.dlib.overridePythonAttrs
-    (
-      old: {
-        # Parallel building enabled
-        inherit (pkgs.python.pkgs.dlib) patches;
+  django-bakery = super.django-bakery.overridePythonAttrs (
+    old: {
+      configurePhase = ''
+        if ! test -e LICENSE; then
+          touch LICENSE
+        fi
+      '' + (old.configurePhase or "");
+    }
+  );
 
-        enableParallelBuilding = true;
-        dontUseCmakeConfigure = true;
+  dlib = super.dlib.overridePythonAttrs (
+    old: {
+      # Parallel building enabled
+      inherit (pkgs.python.pkgs.dlib) patches;
 
-        nativeBuildInputs = old.nativeBuildInputs ++ pkgs.dlib.nativeBuildInputs;
-        buildInputs = old.buildInputs ++ pkgs.dlib.buildInputs;
-      }
-    );
+      enableParallelBuilding = true;
+      dontUseCmakeConfigure = true;
+
+      nativeBuildInputs = old.nativeBuildInputs ++ pkgs.dlib.nativeBuildInputs;
+      buildInputs = old.buildInputs ++ pkgs.dlib.buildInputs;
+    }
+  );
 
   # Environment markers are not always included (depending on how a dep was defined)
   enum34 = if self.pythonAtLeast "3.4" then null else super.enum34;
 
-  faker = super.faker.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ self.pytest-runner ];
-        doCheck = false;
-      }
-    );
+  faker = super.faker.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+      doCheck = false;
+    }
+  );
 
-  fancycompleter = super.fancycompleter.overridePythonAttrs
-    (
-      old: {
-        postPatch = ''
-          substituteInPlace setup.py \
-            --replace 'setup_requires="setupmeta"' 'setup_requires=[]' \
-            --replace 'versioning="devcommit"' 'version="${old.version}"'
-        '';
-      }
-    );
+  fancycompleter = super.fancycompleter.overridePythonAttrs (
+    old: {
+      postPatch = ''
+        substituteInPlace setup.py \
+          --replace 'setup_requires="setupmeta"' 'setup_requires=[]' \
+          --replace 'versioning="devcommit"' 'version="${old.version}"'
+      '';
+    }
+  );
 
-  fastparquet = super.fastparquet.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ self.pytest-runner ];
-      }
-    );
+  fastparquet = super.fastparquet.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+    }
+  );
 
-  grandalf = super.grandalf.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ self.pytest-runner ];
-        doCheck = false;
-      }
-    );
+  grandalf = super.grandalf.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+      doCheck = false;
+    }
+  );
 
-  h5py = super.h5py.overridePythonAttrs
-    (
-      old:
-      if old.format != "wheel" then rec {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
-        buildInputs = old.buildInputs ++ [ pkgs.hdf5 self.pkgconfig self.cython ];
-        configure_flags = "--hdf5=${pkgs.hdf5}";
-        postConfigure = ''
-          ${self.python.executable} setup.py configure ${configure_flags}
-        '';
-      } else old
-    );
+  h5py = super.h5py.overridePythonAttrs (
+    old:
+    if old.format != "wheel" then rec {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
+      buildInputs = old.buildInputs ++ [ pkgs.hdf5 self.pkgconfig self.cython ];
+      configure_flags = "--hdf5=${pkgs.hdf5}";
+      postConfigure = ''
+        ${self.python.executable} setup.py configure ${configure_flags}
+      '';
+    } else old
+  );
 
-  horovod = super.horovod.overridePythonAttrs
-    (
-      old: {
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [ pkgs.openmpi ];
-      }
-    );
+  horovod = super.horovod.overridePythonAttrs (
+    old: {
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [ pkgs.openmpi ];
+    }
+  );
+
+  imagecodecs = super.imagecodecs.overridePythonAttrs (
+    old: {
+      patchPhase = ''
+        substituteInPlace setup.py \
+          --replace "/usr/include/openjpeg-2.3" \
+                    "${pkgs.openjpeg.dev}/include/openjpeg-2.3"
+        substituteInPlace setup.py \
+          --replace "/usr/include/jxrlib" \
+                    "$out/include/libjxr"
+        substituteInPlace imagecodecs/_zopfli.c \
+          --replace '"zopfli/zopfli.h"' \
+                    '<zopfli.h>'
+        substituteInPlace imagecodecs/_zopfli.c \
+          --replace '"zopfli/zlib_container.h"' \
+                    '<zlib_container.h>'
+        substituteInPlace imagecodecs/_zopfli.c \
+          --replace '"zopfli/gzip_container.h"' \
+                    '<gzip_container.h>'
+      '';
+
+      preBuild = ''
+        mkdir -p $out/include/libjxr
+        ln -s ${pkgs.jxrlib}/include/libjxr/**/* $out/include/libjxr
+
+      '';
+
+      buildInputs = old.buildInputs ++ [
+        # Commented out packages are declared required, but not actually
+        # needed to build. They are not yet packaged for nixpkgs.
+        # bitshuffle
+        pkgs.brotli
+        # brunsli
+        pkgs.bzip2
+        pkgs.c-blosc
+        # charls
+        pkgs.giflib
+        pkgs.jxrlib
+        pkgs.lcms
+        pkgs.libaec
+        pkgs.libaec
+        pkgs.libjpeg_turbo
+        # liblzf
+        # liblzma
+        pkgs.libpng
+        pkgs.libtiff
+        pkgs.libwebp
+        pkgs.lz4
+        pkgs.openjpeg
+        pkgs.snappy
+        # zfp
+        pkgs.zopfli
+        pkgs.zstd
+        pkgs.zlib
+      ];
+    }
+  );
 
   # importlib-metadata has an incomplete dependency specification
-  importlib-metadata = super.importlib-metadata.overridePythonAttrs
-    (
-      old: {
-        propagatedBuildInputs = old.propagatedBuildInputs ++ lib.optional self.python.isPy2 self.pathlib2;
-      }
-    );
+  importlib-metadata = super.importlib-metadata.overridePythonAttrs (
+    old: {
+      propagatedBuildInputs = old.propagatedBuildInputs ++ lib.optional self.python.isPy2 self.pathlib2;
+    }
+  );
 
-  isort = super.isort.overridePythonAttrs
-    (
-      old: {
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.setuptools ];
-      }
-    );
+  intreehooks = super.intreehooks.overridePythonAttrs (
+    old: {
+      doCheck = false;
+    }
+  );
 
-  jupyter = super.jupyter.overridePythonAttrs
-    (
-      old: rec {
-        # jupyter is a meta-package. Everything relevant comes from the
-        # dependencies. It does however have a jupyter.py file that conflicts
-        # with jupyter-core so this meta solves this conflict.
-        meta.priority = 100;
-      }
-    );
+  isort = super.isort.overridePythonAttrs (
+    old: {
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.setuptools ];
+    }
+  );
 
-  kiwisolver = super.kiwisolver.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [
-          # cppy is at the time of writing not in nixpkgs
-          (self.cppy or null)
-        ];
-      }
-    );
+  jupyter = super.jupyter.overridePythonAttrs (
+    old: rec {
+      # jupyter is a meta-package. Everything relevant comes from the
+      # dependencies. It does however have a jupyter.py file that conflicts
+      # with jupyter-core so this meta solves this conflict.
+      meta.priority = 100;
+    }
+  );
 
-  lap = super.lap.overridePythonAttrs
-    (
-      old: {
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [
-          self.numpy
-        ];
-      }
-    );
+  kiwisolver = super.kiwisolver.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [
+        self.cppy
+      ];
+    }
+  );
 
-  llvmlite = super.llvmlite.overridePythonAttrs
-    (
-      old: {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.llvm ];
+  lap = super.lap.overridePythonAttrs (
+    old: {
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+        self.numpy
+      ];
+    }
+  );
 
-        # Disable static linking
-        # https://github.com/numba/llvmlite/issues/93
-        postPatch = ''
-          substituteInPlace ffi/Makefile.linux --replace "-static-libstdc++" ""
+  libvirt-python = super.libvirt-python.overridePythonAttrs ({ nativeBuildInputs ? [ ], ... }: {
+    nativeBuildInputs = nativeBuildInputs ++ [ pkgs.pkgconfig ];
+    propagatedBuildInputs = [ pkgs.libvirt ];
+  });
 
-          substituteInPlace llvmlite/tests/test_binding.py --replace "test_linux" "nope"
-        '';
+  llvmlite = super.llvmlite.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.llvm ];
 
-        # Set directory containing llvm-config binary
-        preConfigure = ''
-          export LLVM_CONFIG=${pkgs.llvm}/bin/llvm-config
-        '';
+      # Disable static linking
+      # https://github.com/numba/llvmlite/issues/93
+      postPatch = ''
+        substituteInPlace ffi/Makefile.linux --replace "-static-libstdc++" ""
 
-        __impureHostDeps = pkgs.stdenv.lib.optionals pkgs.stdenv.isDarwin [ "/usr/lib/libm.dylib" ];
+        substituteInPlace llvmlite/tests/test_binding.py --replace "test_linux" "nope"
+      '';
 
-        passthru = old.passthru // { llvm = pkgs.llvm; };
-      }
-    );
+      # Set directory containing llvm-config binary
+      preConfigure = ''
+        export LLVM_CONFIG=${pkgs.llvm}/bin/llvm-config
+      '';
 
-  lockfile = super.lockfile.overridePythonAttrs
-    (
-      old: {
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.pbr ];
-      }
-    );
+      __impureHostDeps = pkgs.stdenv.lib.optionals pkgs.stdenv.isDarwin [ "/usr/lib/libm.dylib" ];
 
-  lxml = super.lxml.overridePythonAttrs
-    (
-      old: {
-        nativeBuildInputs = with pkgs; old.nativeBuildInputs ++ [ pkgconfig libxml2.dev libxslt.dev ];
-        buildInputs = with pkgs; old.buildInputs ++ [ libxml2 libxslt ];
-      }
-    );
+      passthru = old.passthru // { llvm = pkgs.llvm; };
+    }
+  );
 
-  markupsafe = super.markupsafe.overridePythonAttrs
-    (
-      old: {
-        src = old.src.override { pname = builtins.replaceStrings [ "markupsafe" ] [ "MarkupSafe" ] old.pname; };
-      }
-    );
+  lockfile = super.lockfile.overridePythonAttrs (
+    old: {
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.pbr ];
+    }
+  );
 
-  matplotlib = super.matplotlib.overridePythonAttrs
-    (
-      old:
-      let
-        enableGhostscript = old.passthru.enableGhostscript or false;
-        enableGtk3 = old.passthru.enableTk or false;
-        enableQt = old.passthru.enableQt or false;
-        enableTk = old.passthru.enableTk or false;
+  lxml = super.lxml.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = with pkgs; old.nativeBuildInputs ++ [ pkgconfig libxml2.dev libxslt.dev ];
+      buildInputs = with pkgs; old.buildInputs ++ [ libxml2 libxslt ];
+    }
+  );
 
-        inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
-      in
-      {
-        NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${pkgs.libcxx}/include/c++/v1";
+  markupsafe = super.markupsafe.overridePythonAttrs (
+    old: {
+      src = old.src.override { pname = builtins.replaceStrings [ "markupsafe" ] [ "MarkupSafe" ] old.pname; };
+    }
+  );
 
-        XDG_RUNTIME_DIR = "/tmp";
+  matplotlib = super.matplotlib.overridePythonAttrs (
+    old:
+    let
+      enableGhostscript = old.passthru.enableGhostscript or false;
+      enableGtk3 = old.passthru.enableTk or false;
+      enableQt = old.passthru.enableQt or false;
+      enableTk = old.passthru.enableTk or false;
 
-        buildInputs = old.buildInputs
-          ++ lib.optional enableGhostscript pkgs.ghostscript
-          ++ lib.optional stdenv.isDarwin [ Cocoa ];
+      inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
+    in
+    {
+      NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${pkgs.libcxx}/include/c++/v1";
 
-        nativeBuildInputs = old.nativeBuildInputs ++ [
-          pkgs.pkgconfig
-        ];
+      XDG_RUNTIME_DIR = "/tmp";
 
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [
-          pkgs.libpng
-          pkgs.freetype
-        ]
-          ++ stdenv.lib.optionals enableGtk3 [ pkgs.cairo self.pycairo pkgs.gtk3 pkgs.gobject-introspection self.pygobject3 ]
-          ++ stdenv.lib.optionals enableTk [ pkgs.tcl pkgs.tk self.tkinter pkgs.libX11 ]
-          ++ stdenv.lib.optionals enableQt [ self.pyqt5 ]
-        ;
+      buildInputs = old.buildInputs
+        ++ lib.optional enableGhostscript pkgs.ghostscript
+        ++ lib.optional stdenv.isDarwin [ Cocoa ];
 
-        inherit (super.matplotlib) patches;
-      }
-    );
+      nativeBuildInputs = old.nativeBuildInputs ++ [
+        pkgs.pkgconfig
+      ];
+
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+        pkgs.libpng
+        pkgs.freetype
+      ]
+        ++ stdenv.lib.optionals enableGtk3 [ pkgs.cairo self.pycairo pkgs.gtk3 pkgs.gobject-introspection self.pygobject3 ]
+        ++ stdenv.lib.optionals enableTk [ pkgs.tcl pkgs.tk self.tkinter pkgs.libX11 ]
+        ++ stdenv.lib.optionals enableQt [ self.pyqt5 ]
+      ;
+
+      inherit (super.matplotlib) patches;
+    }
+  );
 
   # Calls Cargo at build time for source builds and is really tricky to package
   maturin = super.maturin.override {
     preferWheel = true;
   };
 
-  mccabe = super.mccabe.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ self.pytest-runner ];
-        doCheck = false;
-      }
-    );
+  mccabe = super.mccabe.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+      doCheck = false;
+    }
+  );
 
-  netcdf4 = super.netcdf4.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [
-          self.cython
-        ];
+  mip = super.mip.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.autoPatchelfHook ];
 
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [
-          pkgs.zlib
-          pkgs.netcdf
-          pkgs.hdf5
-          pkgs.curl
-          pkgs.libjpeg
-        ];
+      buildInputs = old.buildInputs ++ [ pkgs.zlib self.cppy ];
+    }
+  );
 
-        # Variables used to configure the build process
-        USE_NCCONFIG = "0";
-        HDF5_DIR = lib.getDev pkgs.hdf5;
-        NETCDF4_DIR = pkgs.netcdf;
-        CURL_DIR = pkgs.curl.dev;
-        JPEG_DIR = pkgs.libjpeg.dev;
-      }
-    );
+  netcdf4 = super.netcdf4.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [
+        self.cython
+      ];
+
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+        pkgs.zlib
+        pkgs.netcdf
+        pkgs.hdf5
+        pkgs.curl
+        pkgs.libjpeg
+      ];
+
+      # Variables used to configure the build process
+      USE_NCCONFIG = "0";
+      HDF5_DIR = lib.getDev pkgs.hdf5;
+      NETCDF4_DIR = pkgs.netcdf;
+      CURL_DIR = pkgs.curl.dev;
+      JPEG_DIR = pkgs.libjpeg.dev;
+    }
+  );
 
-  numpy = super.numpy.overridePythonAttrs
-    (
+  numpy = super.numpy.overridePythonAttrs (
+    old:
+    let
+      blas = old.passthru.args.blas or pkgs.openblasCompat;
+      blasImplementation = lib.nameFromURL blas.name "-";
+      cfg = pkgs.writeTextFile {
+        name = "site.cfg";
+        text = (
+          lib.generators.toINI
+            { } {
+            ${blasImplementation} = {
+              include_dirs = "${blas}/include";
+              library_dirs = "${blas}/lib";
+            } // lib.optionalAttrs (blasImplementation == "mkl") {
+              mkl_libs = "mkl_rt";
+              lapack_libs = "";
+            };
+          }
+        );
+      };
+    in
+    {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.gfortran ];
+      buildInputs = old.buildInputs ++ [ blas self.cython ];
+      enableParallelBuilding = true;
+      preBuild = ''
+        ln -s ${cfg} site.cfg
+      '';
+      passthru = old.passthru // {
+        blas = blas;
+        inherit blasImplementation cfg;
+      };
+    }
+  );
+
+  openexr = super.openexr.overridePythonAttrs (
+    old: rec {
+      buildInputs = old.buildInputs ++ [ pkgs.openexr pkgs.ilmbase ];
+      NIX_CFLAGS_COMPILE = [ "-I${pkgs.openexr.dev}/include/OpenEXR" "-I${pkgs.ilmbase.dev}/include/OpenEXR" ];
+    }
+  );
+
+  parsel = super.parsel.overridePythonAttrs (
+    old: rec {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ self.pytest-runner ];
+    }
+  );
+
+  peewee = super.peewee.overridePythonAttrs (
+    old:
+    let
+      withPostgres = old.passthru.withPostgres or false;
+      withMysql = old.passthru.withMysql or false;
+    in
+    {
+      buildInputs = old.buildInputs ++ [ self.cython pkgs.sqlite ];
+      propagatedBuildInputs = old.propagatedBuildInputs
+        ++ lib.optional withPostgres self.psycopg2
+        ++ lib.optional withMysql self.mysql-connector;
+    }
+  );
+
+  pillow = super.pillow.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = [ pkgs.pkgconfig ] ++ old.nativeBuildInputs;
+      buildInputs = with pkgs; [ freetype libjpeg zlib libtiff libwebp tcl lcms2 ] ++ old.buildInputs;
+    }
+  );
+
+  psycopg2 = super.psycopg2.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
+    }
+  );
+
+  psycopg2-binary = super.psycopg2-binary.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
+    }
+  );
+
+  pyarrow =
+    if lib.versionAtLeast super.pyarrow.version "0.16.0" then super.pyarrow.overridePythonAttrs (
       old:
       let
-        blas = old.passthru.args.blas or pkgs.openblasCompat;
-        blasImplementation = lib.nameFromURL blas.name "-";
-        cfg = pkgs.writeTextFile {
-          name = "site.cfg";
-          text = (
-            lib.generators.toINI { } {
-              ${blasImplementation} = {
-                include_dirs = "${blas}/include";
-                library_dirs = "${blas}/lib";
-              } // lib.optionalAttrs (blasImplementation == "mkl") {
-                mkl_libs = "mkl_rt";
-                lapack_libs = "";
-              };
-            }
-          );
-        };
+        parseMinor = drv: lib.concatStringsSep "." (lib.take 2 (lib.splitVersion drv.version));
+
+        # 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;
+        errorMessage = "arrow-cpp version (${arrowCppVersion}) mismatches pyarrow version (${pyArrowVersion})";
       in
-      {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.gfortran ];
-        buildInputs = old.buildInputs ++ [ blas self.cython ];
-        enableParallelBuilding = true;
+      if arrowCppVersion != pyArrowVersion then throw errorMessage else {
+
+        nativeBuildInputs = old.nativeBuildInputs ++ [
+          self.cython
+          pkgs.pkgconfig
+          pkgs.cmake
+        ];
+
         preBuild = ''
-          ln -s ${cfg} site.cfg
+          export PYARROW_PARALLEL=$NIX_BUILD_CORES
         '';
-        passthru = old.passthru // {
-          blas = blas;
-          inherit blasImplementation cfg;
-        };
-      }
-    );
 
-  openexr = super.openexr.overridePythonAttrs
-    (
-      old: rec {
-        buildInputs = old.buildInputs ++ [ pkgs.openexr pkgs.ilmbase ];
-        NIX_CFLAGS_COMPILE = [ "-I${pkgs.openexr.dev}/include/OpenEXR" "-I${pkgs.ilmbase.dev}/include/OpenEXR" ];
-      }
-    );
+        PARQUET_HOME = _arrow-cpp;
+        inherit ARROW_HOME;
 
-  peewee = super.peewee.overridePythonAttrs
-    (
-      old:
-      let
-        withPostgres = old.passthru.withPostgres or false;
-        withMysql = old.passthru.withMysql or false;
-      in
-      {
-        buildInputs = old.buildInputs ++ [ self.cython pkgs.sqlite ];
-        propagatedBuildInputs = old.propagatedBuildInputs
-          ++ lib.optional withPostgres self.psycopg2
-          ++ lib.optional withMysql self.mysql-connector;
-      }
-    );
+        buildInputs = old.buildInputs ++ [
+          pkgs.arrow-cpp
+        ];
 
-  pillow = super.pillow.overridePythonAttrs
-    (
-      old: {
-        nativeBuildInputs = [ pkgs.pkgconfig ] ++ old.nativeBuildInputs;
-        buildInputs = with pkgs; [ freetype libjpeg zlib libtiff libwebp tcl lcms2 ] ++ old.buildInputs;
-      }
-    );
+        PYARROW_BUILD_TYPE = "release";
+        PYARROW_WITH_PARQUET = true;
+        PYARROW_CMAKE_OPTIONS = [
+          "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib"
 
-  psycopg2 = super.psycopg2.overridePythonAttrs
-    (
-      old: {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
-      }
-    );
+          # This doesn't use setup hook to call cmake so we need to workaround #54606
+          # ourselves
+          "-DCMAKE_POLICY_DEFAULT_CMP0025=NEW"
+        ];
 
-  psycopg2-binary = super.psycopg2-binary.overridePythonAttrs
-    (
+        dontUseCmakeConfigure = true;
+      }
+    ) else super.pyarrow.overridePythonAttrs (
       old: {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
+        nativeBuildInputs = old.nativeBuildInputs ++ [
+          self.cython
+        ];
       }
     );
 
-  pyarrow =
-    if lib.versionAtLeast super.pyarrow.version "0.16.0" then super.pyarrow.overridePythonAttrs
-      (
-        old:
-        let
-          parseMinor = drv: lib.concatStringsSep "." (lib.take 2 (lib.splitVersion drv.version));
-          _arrow-cpp = pkgs.arrow-cpp.override { inherit (self) python; };
-          ARROW_HOME = _arrow-cpp;
-          arrowCppVersion = parseMinor pkgs.arrow-cpp;
-          pyArrowVersion = parseMinor super.pyarrow;
-          errorMessage = "arrow-cpp version (${arrowCppVersion}) mismatches pyarrow version (${pyArrowVersion})";
-        in
-        if arrowCppVersion != pyArrowVersion then throw errorMessage else {
-
-          nativeBuildInputs = old.nativeBuildInputs ++ [
-            self.cython
-            pkgs.pkgconfig
-            pkgs.cmake
-          ];
-
-          preBuild = ''
-            export PYARROW_PARALLEL=$NIX_BUILD_CORES
-          '';
+  pycairo = (
+    drv: (
+      drv.overridePythonAttrs (
+        _: {
+          format = "other";
+        }
+      )
+    ).overridePythonAttrs (
+      old: {
 
-          PARQUET_HOME = _arrow-cpp;
-          inherit ARROW_HOME;
+        nativeBuildInputs = old.nativeBuildInputs ++ [
+          pkgs.meson
+          pkgs.ninja
+          pkgs.pkgconfig
+        ];
 
-          buildInputs = old.buildInputs ++ [
-            pkgs.arrow-cpp
-          ];
+        propagatedBuildInputs = old.propagatedBuildInputs ++ [
+          pkgs.cairo
+          pkgs.xlibsWrapper
+        ];
 
-          PYARROW_BUILD_TYPE = "release";
-          PYARROW_WITH_PARQUET = true;
-          PYARROW_CMAKE_OPTIONS = [
-            "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib"
+        mesonFlags = [ "-Dpython=${if self.isPy3k then "python3" else "python"}" ];
+      }
+    )
+  )
+    super.pycairo;
 
-            # This doesn't use setup hook to call cmake so we need to workaround #54606
-            # ourselves
-            "-DCMAKE_POLICY_DEFAULT_CMP0025=NEW"
-          ];
+  pycocotools = super.pycocotools.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [
+        self.cython
+        self.numpy
+      ];
+    }
+  );
 
-          dontUseCmakeConfigure = true;
-        }
-      ) else super.pyarrow.overridePythonAttrs
-      (
-        old: {
-          nativeBuildInputs = old.nativeBuildInputs ++ [
-            self.cython
-          ];
+  pygame = super.pygame.overridePythonAttrs (
+    old: rec {
+      nativeBuildInputs = [
+        pkgs.pkg-config
+        pkgs.SDL
+      ];
+
+      buildInputs = [
+        pkgs.SDL
+        pkgs.SDL_image
+        pkgs.SDL_mixer
+        pkgs.SDL_ttf
+        pkgs.libpng
+        pkgs.libjpeg
+        pkgs.portmidi
+        pkgs.xorg.libX11
+        pkgs.freetype
+      ];
+
+      # Tests fail because of no audio device and display.
+      doCheck = false;
+      preConfigure = ''
+        sed \
+          -e "s/origincdirs = .*/origincdirs = []/" \
+          -e "s/origlibdirs = .*/origlibdirs = []/" \
+          -e "/'\/lib\/i386-linux-gnu', '\/lib\/x86_64-linux-gnu']/d" \
+          -e "/\/include\/smpeg/d" \
+          -i buildconfig/config_unix.py
+        ${lib.concatMapStrings (dep: ''
+          sed \
+            -e "/origincdirs =/a\        origincdirs += ['${lib.getDev dep}/include']" \
+            -e "/origlibdirs =/a\        origlibdirs += ['${lib.getLib dep}/lib']" \
+            -i buildconfig/config_unix.py
+        '') buildInputs
         }
-      );
-
-  pycairo =
-    (
-      drv: (
-        drv.overridePythonAttrs
-          (
-            _: {
-              format = "other";
-            }
-          )
-      ).overridePythonAttrs
-        (
-          old: {
-
-            nativeBuildInputs = old.nativeBuildInputs ++ [
-              pkgs.meson
-              pkgs.ninja
-              pkgs.pkgconfig
-            ];
-
-            propagatedBuildInputs = old.propagatedBuildInputs ++ [
-              pkgs.cairo
-              pkgs.xlibsWrapper
-            ];
+        LOCALBASE=/ ${self.python.interpreter} buildconfig/config.py
+      '';
+    }
+  );
 
-            mesonFlags = [ "-Dpython=${ if self.isPy3k then "python3" else "python"}" ];
-          }
-        )
-    ) super.pycairo;
+  pygobject = super.pygobject.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
+      buildInputs = old.buildInputs ++ [ pkgs.glib pkgs.gobject-introspection ];
+    }
+  );
 
-  pycocotools = super.pycocotools.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [
-          self.cython
-          self.numpy
-        ];
-      }
-    );
+  pylint = super.pylint.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+      doCheck = false;
+    }
+  );
 
-  pygobject = super.pygobject.overridePythonAttrs
-    (
-      old: {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
-        buildInputs = old.buildInputs ++ [ pkgs.glib pkgs.gobject-introspection ];
-      }
-    );
+  pyopenssl = super.pyopenssl.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ pkgs.openssl ];
+    }
+  );
 
-  pylint = super.pylint.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ self.pytest-runner ];
-        doCheck = false;
-      }
-    );
+  python-ldap = super.python-ldap.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ pkgs.openldap pkgs.cyrus_sasl ];
+    }
+  );
 
-  pyopenssl = super.pyopenssl.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ pkgs.openssl ];
-      }
-    );
+  pytoml = super.pytoml.overridePythonAttrs (
+    old: {
+      doCheck = false;
+    }
+  );
 
   pyqt5 =
     let
@@ -529,318 +634,310 @@ self: super:
       withWebKit = drv.passthru.args.withWebKit or false;
       withWebSockets = drv.passthru.args.withWebSockets or false;
     in
-    super.pyqt5.overridePythonAttrs
-      (
-        old: {
-          format = "other";
+    super.pyqt5.overridePythonAttrs (
+      old: {
+        format = "other";
 
-          nativeBuildInputs = old.nativeBuildInputs ++ [
-            pkgs.pkgconfig
-            pkgs.qt5.qmake
-            pkgs.xorg.lndir
-            pkgs.qt5.qtbase
-            pkgs.qt5.qtsvg
-            pkgs.qt5.qtdeclarative
-            pkgs.qt5.qtwebchannel
-            # self.pyqt5-sip
-            self.sip
-          ]
-            ++ lib.optional withConnectivity pkgs.qt5.qtconnectivity
-            ++ lib.optional withMultimedia pkgs.qt5.qtmultimedia
-            ++ lib.optional withWebKit pkgs.qt5.qtwebkit
-            ++ lib.optional withWebSockets pkgs.qt5.qtwebsockets
-          ;
-
-          buildInputs = old.buildInputs ++ [
-            pkgs.dbus
-            pkgs.qt5.qtbase
-            pkgs.qt5.qtsvg
-            pkgs.qt5.qtdeclarative
-            self.sip
-          ]
-            ++ lib.optional withConnectivity pkgs.qt5.qtconnectivity
-            ++ lib.optional withWebKit pkgs.qt5.qtwebkit
-            ++ lib.optional withWebSockets pkgs.qt5.qtwebsockets
-          ;
-
-          # Fix dbus mainloop
-          patches = pkgs.python3.pkgs.pyqt5.patches or [ ];
-
-          configurePhase = ''
-            runHook preConfigure
-
-            export PYTHONPATH=$PYTHONPATH:$out/${self.python.sitePackages}
-
-            mkdir -p $out/${self.python.sitePackages}/dbus/mainloop
-            ${self.python.executable} configure.py  -w \
-              --confirm-license \
-              --no-qml-plugin \
-              --bindir=$out/bin \
-              --destdir=$out/${self.python.sitePackages} \
-              --stubsdir=$out/${self.python.sitePackages}/PyQt5 \
-              --sipdir=$out/share/sip/PyQt5 \
-              --designer-plugindir=$out/plugins/designer
-
-            runHook postConfigure
-          '';
+        nativeBuildInputs = old.nativeBuildInputs ++ [
+          pkgs.pkgconfig
+          pkgs.qt5.qmake
+          pkgs.xorg.lndir
+          pkgs.qt5.qtbase
+          pkgs.qt5.qtsvg
+          pkgs.qt5.qtdeclarative
+          pkgs.qt5.qtwebchannel
+          # self.pyqt5-sip
+          self.sip
+        ]
+          ++ lib.optional withConnectivity pkgs.qt5.qtconnectivity
+          ++ lib.optional withMultimedia pkgs.qt5.qtmultimedia
+          ++ lib.optional withWebKit pkgs.qt5.qtwebkit
+          ++ lib.optional withWebSockets pkgs.qt5.qtwebsockets
+        ;
 
-          postInstall = ''
-            ln -s ${self.pyqt5-sip}/${self.python.sitePackages}/PyQt5/sip.* $out/${self.python.sitePackages}/PyQt5/
-            for i in $out/bin/*; do
-              wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH"
-            done
-
-            # Let's make it a namespace package
-            cat << EOF > $out/${self.python.sitePackages}/PyQt5/__init__.py
-            from pkgutil import extend_path
-            __path__ = extend_path(__path__, __name__)
-            EOF
-          '';
+        buildInputs = old.buildInputs ++ [
+          pkgs.dbus
+          pkgs.qt5.qtbase
+          pkgs.qt5.qtsvg
+          pkgs.qt5.qtdeclarative
+          self.sip
+        ]
+          ++ lib.optional withConnectivity pkgs.qt5.qtconnectivity
+          ++ lib.optional withWebKit pkgs.qt5.qtwebkit
+          ++ lib.optional withWebSockets pkgs.qt5.qtwebsockets
+        ;
 
-          installCheckPhase =
-            let
-              modules = [
-                "PyQt5"
-                "PyQt5.QtCore"
-                "PyQt5.QtQml"
-                "PyQt5.QtWidgets"
-                "PyQt5.QtGui"
-              ]
-              ++ lib.optional withWebSockets "PyQt5.QtWebSockets"
-              ++ lib.optional withWebKit "PyQt5.QtWebKit"
-              ++ lib.optional withMultimedia "PyQt5.QtMultimedia"
-              ++ lib.optional withConnectivity "PyQt5.QtConnectivity"
-              ;
-              imports = lib.concatMapStrings (module: "import ${module};") modules;
-            in
-            ''
-              echo "Checking whether modules can be imported..."
-              ${self.python.interpreter} -c "${imports}"
-            '';
+        # Fix dbus mainloop
+        patches = pkgs.python3.pkgs.pyqt5.patches or [ ];
 
-          doCheck = true;
+        configurePhase = ''
+          runHook preConfigure
 
-          enableParallelBuilding = true;
-        }
-      );
+          export PYTHONPATH=$PYTHONPATH:$out/${self.python.sitePackages}
+
+          mkdir -p $out/${self.python.sitePackages}/dbus/mainloop
+          ${self.python.executable} configure.py  -w \
+            --confirm-license \
+            --no-qml-plugin \
+            --bindir=$out/bin \
+            --destdir=$out/${self.python.sitePackages} \
+            --stubsdir=$out/${self.python.sitePackages}/PyQt5 \
+            --sipdir=$out/share/sip/PyQt5 \
+            --designer-plugindir=$out/plugins/designer
+
+          runHook postConfigure
+        '';
 
-  pytest-datadir = super.pytest-datadir.overridePythonAttrs
-    (
-      old: {
         postInstall = ''
-          rm -f $out/LICENSE
+          ln -s ${self.pyqt5-sip}/${self.python.sitePackages}/PyQt5/sip.* $out/${self.python.sitePackages}/PyQt5/
+          for i in $out/bin/*; do
+            wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH"
+          done
+
+          # Let's make it a namespace package
+          cat << EOF > $out/${self.python.sitePackages}/PyQt5/__init__.py
+          from pkgutil import extend_path
+          __path__ = extend_path(__path__, __name__)
+          EOF
         '';
-      }
-    );
 
-  pytest = super.pytest.overridePythonAttrs
-    (
-      old: {
-        doCheck = false;
+        installCheckPhase =
+          let
+            modules = [
+              "PyQt5"
+              "PyQt5.QtCore"
+              "PyQt5.QtQml"
+              "PyQt5.QtWidgets"
+              "PyQt5.QtGui"
+            ]
+            ++ lib.optional withWebSockets "PyQt5.QtWebSockets"
+            ++ lib.optional withWebKit "PyQt5.QtWebKit"
+            ++ lib.optional withMultimedia "PyQt5.QtMultimedia"
+            ++ lib.optional withConnectivity "PyQt5.QtConnectivity"
+            ;
+            imports = lib.concatMapStrings (module: "import ${module};") modules;
+          in
+          ''
+            echo "Checking whether modules can be imported..."
+            ${self.python.interpreter} -c "${imports}"
+          '';
+
+        doCheck = true;
+
+        enableParallelBuilding = true;
       }
     );
 
+  pytest-datadir = super.pytest-datadir.overridePythonAttrs (
+    old: {
+      postInstall = ''
+        rm -f $out/LICENSE
+      '';
+    }
+  );
+
+  pytest = super.pytest.overridePythonAttrs (
+    old: {
+      doCheck = false;
+    }
+  );
+
   pytest-runner = super.pytest-runner or super.pytestrunner;
 
-  python-jose = super.python-jose.overridePythonAttrs
-    (
-      old: {
-        postPath = ''
-          substituteInPlace setup.py --replace "'pytest-runner'," ""
-          substituteInPlace setup.py --replace "'pytest-runner'" ""
-        '';
-      }
-    );
+  python-jose = super.python-jose.overridePythonAttrs (
+    old: {
+      postPath = ''
+        substituteInPlace setup.py --replace "'pytest-runner'," ""
+        substituteInPlace setup.py --replace "'pytest-runner'" ""
+      '';
+    }
+  );
 
-  python-prctl = super.python-prctl.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [
-          pkgs.libcap
-        ];
-      }
-    );
+  python-prctl = super.python-prctl.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [
+        pkgs.libcap
+      ];
+    }
+  );
 
-  pyzmq = super.pyzmq.overridePythonAttrs
-    (
-      old: {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [ pkgs.zeromq ];
-      }
-    );
+  pyzmq = super.pyzmq.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [ pkgs.zeromq ];
+    }
+  );
 
-  rockset = super.rockset.overridePythonAttrs
-    (
-      old: rec {
-        postPatch = ''
-          cp ./setup_rockset.py ./setup.py
-        '';
-      }
-    );
+  rockset = super.rockset.overridePythonAttrs (
+    old: rec {
+      postPatch = ''
+        cp ./setup_rockset.py ./setup.py
+      '';
+    }
+  );
 
-  scaleapi = super.scaleapi.overridePythonAttrs
-    (
-      old: {
-        postPatch = ''
-          substituteInPlace setup.py --replace "install_requires = ['requests>=2.4.2', 'enum34']" "install_requires = ['requests>=2.4.2']" || true
-        '';
-      }
-    );
+  scaleapi = super.scaleapi.overridePythonAttrs (
+    old: {
+      postPatch = ''
+        substituteInPlace setup.py --replace "install_requires = ['requests>=2.4.2', 'enum34']" "install_requires = ['requests>=2.4.2']" || true
+      '';
+    }
+  );
 
-  pandas = super.pandas.overridePythonAttrs
-    (
-      old: {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ self.cython ];
-      }
-    );
+  pandas = super.pandas.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ self.cython ];
+    }
+  );
+
+  panel = super.panel.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.nodejs ];
+    }
+  );
 
   # Pybind11 is an undeclared dependency of scipy that we need to pick from nixpkgs
   # Make it not fail with infinite recursion
-  pybind11 = super.pybind11.overridePythonAttrs
-    (
-      old: {
-        cmakeFlags = (old.cmakeFlags or [ ]) ++ [
-          "-DPYBIND11_TEST=off"
-        ];
-        doCheck = false; # Circular test dependency
-      }
-    );
+  pybind11 = super.pybind11.overridePythonAttrs (
+    old: {
+      cmakeFlags = (old.cmakeFlags or [ ]) ++ [
+        "-DPYBIND11_TEST=off"
+      ];
+      doCheck = false; # Circular test dependency
+    }
+  );
 
-  scipy = super.scipy.overridePythonAttrs
-    (
-      old:
-      if old.format != "wheel" then {
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.gfortran ];
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.pybind11 ];
-        setupPyBuildFlags = [ "--fcompiler='gnu95'" ];
-        enableParallelBuilding = true;
-        buildInputs = old.buildInputs ++ [ self.numpy.blas ];
-        preConfigure = ''
-          sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py
-          export NPY_NUM_BUILD_JOBS=$NIX_BUILD_CORES
-        '';
-        preBuild = ''
-          ln -s ${self.numpy.cfg} site.cfg
-        '';
-      } else old
-    );
+  scipy = super.scipy.overridePythonAttrs (
+    old:
+    if old.format != "wheel" then {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.gfortran ];
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.pybind11 ];
+      setupPyBuildFlags = [ "--fcompiler='gnu95'" ];
+      enableParallelBuilding = true;
+      buildInputs = old.buildInputs ++ [ self.numpy.blas ];
+      preConfigure = ''
+        sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py
+        export NPY_NUM_BUILD_JOBS=$NIX_BUILD_CORES
+      '';
+      preBuild = ''
+        ln -s ${self.numpy.cfg} site.cfg
+      '';
+    } else old
+  );
 
-  scikit-learn = super.scikit-learn.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [
-          pkgs.gfortran
-          pkgs.glibcLocales
-        ] ++ lib.optionals stdenv.cc.isClang [
-          pkgs.llvmPackages.openmp
-        ];
+  scikit-learn = super.scikit-learn.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [
+        pkgs.gfortran
+        pkgs.glibcLocales
+      ] ++ lib.optionals stdenv.cc.isClang [
+        pkgs.llvmPackages.openmp
+      ];
 
-        nativeBuildInputs = old.nativeBuildInputs ++ [
-          self.cython
-        ];
+      nativeBuildInputs = old.nativeBuildInputs ++ [
+        self.cython
+      ];
 
-        enableParallelBuilding = true;
-      }
-    );
+      enableParallelBuilding = true;
+    }
+  );
 
-  shapely = super.shapely.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ [ pkgs.geos self.cython ];
-        inherit (pkgs.python3.pkgs.shapely) patches GEOS_LIBRARY_PATH;
-      }
-    );
+  shapely = super.shapely.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ pkgs.geos self.cython ];
+      inherit (pkgs.python3.pkgs.shapely) patches GEOS_LIBRARY_PATH;
+    }
+  );
 
   shellingham =
     if lib.versionAtLeast super.shellingham.version "1.3.2" then (
-      super.shellingham.overridePythonAttrs
-        (
-          old: {
-            format = "pyproject";
-          }
-        )
+      super.shellingham.overridePythonAttrs (
+        old: {
+          format = "pyproject";
+        }
+      )
     ) else super.shellingham;
 
-  tables = super.tables.overridePythonAttrs
-    (
-      old: {
-        HDF5_DIR = "${pkgs.hdf5}";
-        nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
-        propagatedBuildInputs = old.nativeBuildInputs ++ [ pkgs.hdf5 self.numpy self.numexpr ];
-      }
-    );
+  tables = super.tables.overridePythonAttrs (
+    old: {
+      HDF5_DIR = "${pkgs.hdf5}";
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
+      propagatedBuildInputs = old.nativeBuildInputs ++ [ pkgs.hdf5 self.numpy self.numexpr ];
+    }
+  );
 
-  tensorpack = super.tensorpack.overridePythonAttrs
-    (
-      old: {
-        postPatch = ''
-          substituteInPlace setup.cfg --replace "# will call find_packages()" ""
-        '';
-      }
-    );
+  tensorflow = super.tensorflow.overridePythonAttrs (
+    old: {
+      postInstall = ''
+        rm $out/bin/tensorboard
+      '';
+    }
+  );
 
-  urwidtrees = super.urwidtrees.overridePythonAttrs
-    (
-      old: {
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [
-          self.urwid
-        ];
-      }
-    );
+  tensorpack = super.tensorpack.overridePythonAttrs (
+    old: {
+      postPatch = ''
+        substituteInPlace setup.cfg --replace "# will call find_packages()" ""
+      '';
+    }
+  );
 
-  vose-alias-method = super.vose-alias-method.overridePythonAttrs
-    (
-      old: {
-        postInstall = ''
-          rm -f $out/LICENSE
-        '';
-      }
-    );
+  urwidtrees = super.urwidtrees.overridePythonAttrs (
+    old: {
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+        self.urwid
+      ];
+    }
+  );
 
-  uvloop = super.uvloop.overridePythonAttrs
-    (
-      old: {
-        buildInputs = old.buildInputs ++ lib.optionals stdenv.isDarwin [
-          pkgs.darwin.apple_sdk.frameworks.ApplicationServices
-          pkgs.darwin.apple_sdk.frameworks.CoreServices
-        ];
-      }
-    );
+  vose-alias-method = super.vose-alias-method.overridePythonAttrs (
+    old: {
+      postInstall = ''
+        rm -f $out/LICENSE
+      '';
+    }
+  );
+
+  uvloop = super.uvloop.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ lib.optionals stdenv.isDarwin [
+        pkgs.darwin.apple_sdk.frameworks.ApplicationServices
+        pkgs.darwin.apple_sdk.frameworks.CoreServices
+      ];
+    }
+  );
 
   # Stop infinite recursion by using bootstrapped pkg from nixpkgs
   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.overridePythonAttrs (
+    old:
+    if old.format == "other" then old else {
+      inherit (super.wheel) pname name version src;
+    }
+  );
 
   zipp =
     (
       if lib.versionAtLeast super.zipp.version "2.0.0" then (
-        super.zipp.overridePythonAttrs
-          (
-            old: {
-              prePatch = ''
-                substituteInPlace setup.py --replace \
-                'setuptools.setup()' \
-                'setuptools.setup(version="${super.zipp.version}")'
-              '';
-            }
-          )
+        super.zipp.overridePythonAttrs (
+          old: {
+            prePatch = ''
+              substituteInPlace setup.py --replace \
+              'setuptools.setup()' \
+              'setuptools.setup(version="${super.zipp.version}")'
+            '';
+          }
+        )
       ) else super.zipp
-    ).overridePythonAttrs
-      (
-        old: {
-          propagatedBuildInputs = old.propagatedBuildInputs ++ [
-            self.toml
-          ];
-        }
-      );
+    ).overridePythonAttrs (
+      old: {
+        propagatedBuildInputs = old.propagatedBuildInputs ++ [
+          self.toml
+        ];
+      }
+    );
 
 }
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix b/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix
index 496c4ff1581..7135cace287 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix
@@ -20,7 +20,9 @@ let
   #
   toWheelAttrs = str:
     let
-      entries = splitString "-" str;
+      entries' = splitString "-" str;
+      # Hack: Remove version "suffixes" like 2.11.4-1
+      entries = builtins.filter (x: builtins.match "[0-9]" x == null) entries';
       p = removeSuffix ".whl" (builtins.elemAt entries 4);
     in
     {
@@ -60,7 +62,12 @@ let
   selectWheel = files:
     let
       filesWithoutSources = (builtins.filter (x: hasSuffix ".whl" x.file) files);
-      isPyAbiCompatible = pyabi: x: x == "none" || pyabi == x;
+      isPyAbiCompatible = pyabi: x: x == "none" || lib.hasPrefix pyabi x || (
+        # The CPython stable ABI is abi3 as in the shared library suffix.
+        python.passthru.implementation == "cpython" &&
+          builtins.elemAt (lib.splitString "." python.version) 0 == "3" &&
+          x == "abi3"
+      );
       withPython = ver: abi: x: (isPyVersionCompatible ver x.pyVer) && (isPyAbiCompatible abi x.abi);
       withPlatform =
         if isLinux
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix b/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix
index 773e0a60e09..fad0b782c4b 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix
@@ -37,14 +37,17 @@ let
   # Make a tree out of expression groups (parens)
   findSubExpressions = expr:
     let
-      acc = builtins.foldl' findSubExpressionsFun {
-        exprs = [ ];
-        expr = expr;
-        pos = 0;
-        openP = 0;
-        exprPos = 0;
-        startPos = 0;
-      } (lib.stringToCharacters expr);
+      acc = builtins.foldl'
+        findSubExpressionsFun
+        {
+          exprs = [ ];
+          expr = expr;
+          pos = 0;
+          openP = 0;
+          exprPos = 0;
+          startPos = 0;
+        }
+        (lib.stringToCharacters expr);
       tailExpr = (substr acc.exprPos acc.pos expr);
       tailExprs = if tailExpr != "" then [ tailExpr ] else [ ];
     in
@@ -53,7 +56,7 @@ let
     let
       splitCond = (
         s: builtins.map
-          (x: stripStr ( if builtins.typeOf x == "list" then (builtins.elemAt x 0) else x))
+          (x: stripStr (if builtins.typeOf x == "list" then (builtins.elemAt x 0) else x))
           (builtins.split " (and|or) " (s + " "))
       );
       mapfn = expr: (
@@ -71,8 +74,9 @@ let
     in
     builtins.foldl'
       (
-        acc: v: acc ++ ( if builtins.typeOf v == "string" then parse v else [ (parseExpressions v) ])
-      ) [ ] exprs;
+        acc: v: acc ++ (if builtins.typeOf v == "string" then parse v else [ (parseExpressions v) ])
+      ) [ ]
+      exprs;
 
   # Transform individual expressions to structured expressions
   # This function also performs variable substitution, replacing environment markers with their explicit values
@@ -159,10 +163,9 @@ let
           let
             parts = builtins.splitVersion c;
             pruned = lib.take ((builtins.length parts) - 1) parts;
-            upper = builtins.toString
-              (
-                (lib.toInt (builtins.elemAt pruned (builtins.length pruned - 1))) + 1
-              );
+            upper = builtins.toString (
+              (lib.toInt (builtins.elemAt pruned (builtins.length pruned - 1))) + 1
+            );
             upperConstraint = builtins.concatStringsSep "." (ireplace (builtins.length pruned - 1) upper pruned);
           in
           op.">=" v c && op."<" v upperConstraint;
@@ -207,10 +210,13 @@ let
           ) else throw "Unsupported type"
         ) else if builtins.typeOf v == "list" then (
           let
-            ret = builtins.foldl' reduceExpressionsFun {
-              value = true;
-              cond = "and";
-            } v;
+            ret = builtins.foldl'
+              reduceExpressionsFun
+              {
+                value = true;
+                cond = "and";
+              }
+              v;
           in
           acc // {
             value = cond."${acc.cond}" acc.value ret.value;
@@ -219,10 +225,13 @@ let
       );
     in
     (
-      builtins.foldl' reduceExpressionsFun {
-        value = true;
-        cond = "and";
-      } exprs
+      builtins.foldl'
+        reduceExpressionsFun
+        {
+          value = true;
+          cond = "and";
+        }
+        exprs
     ).value;
 in
 e: builtins.foldl' (acc: v: v acc) e [
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix
new file mode 100644
index 00000000000..d06a1c1d6ae
--- /dev/null
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix
@@ -0,0 +1,44 @@
+{ lib, poetry2nix, python, fetchFromGitHub }:
+
+
+poetry2nix.mkPoetryApplication {
+
+  inherit python;
+
+  projectDir = ./.;
+
+  # Don't include poetry in inputs
+  __isBootstrap = true;
+
+  src = fetchFromGitHub (lib.importJSON ./src.json);
+
+  # "Vendor" dependencies (for build-system support)
+  postPatch = ''
+    for path in ''${PYTHONPATH//:/ }; do echo $path; done | uniq | while read path; do
+      echo "sys.path.insert(0, \"$path\")" >> poetry/__init__.py
+    done
+  '';
+
+  postInstall = ''
+    mkdir -p "$out/share/bash-completion/completions"
+    "$out/bin/poetry" completions bash > "$out/share/bash-completion/completions/poetry"
+    mkdir -p "$out/share/zsh/vendor-completions"
+    "$out/bin/poetry" completions zsh > "$out/share/zsh/vendor-completions/_poetry"
+    mkdir -p "$out/share/fish/vendor_completions.d"
+    "$out/bin/poetry" completions fish > "$out/share/fish/vendor_completions.d/poetry.fish"
+  '';
+
+  # Propagating dependencies leads to issues downstream
+  # We've already patched poetry to prefer "vendored" dependencies
+  postFixup = ''
+    rm $out/nix-support/propagated-build-inputs
+  '';
+
+  # Fails because of impurities (network, git etc etc)
+  doCheck = false;
+
+  meta = with lib; {
+    inherit (python.meta) platforms;
+    maintainers = with maintainers; [ adisbladis jakewaksbaum ];
+  };
+}
diff --git a/pkgs/development/tools/poetry/poetry.lock b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock
index 68b195a47b1..1ec0c9260d2 100644
--- a/pkgs/development/tools/poetry/poetry.lock
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock
@@ -4,7 +4,7 @@ description = "A small Python module for determining appropriate platform-specif
 name = "appdirs"
 optional = false
 python-versions = "*"
-version = "1.4.3"
+version = "1.4.4"
 
 [[package]]
 category = "dev"
@@ -20,10 +20,11 @@ pyyaml = "*"
 [[package]]
 category = "dev"
 description = "Atomic file writes."
+marker = "python_version >= \"3.5\" and sys_platform == \"win32\" or python_version < \"3.5\""
 name = "atomicwrites"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-version = "1.3.0"
+version = "1.4.0"
 
 [[package]]
 category = "main"
@@ -41,6 +42,19 @@ tests = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.i
 
 [[package]]
 category = "dev"
+description = "Backport of functools.lru_cache"
+marker = "python_version < \"3.2\""
+name = "backports.functools-lru-cache"
+optional = false
+python-versions = ">=2.6"
+version = "1.6.1"
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black-multipy", "pytest-cov"]
+
+[[package]]
+category = "dev"
 description = "The uncompromising code formatter."
 marker = "python_version >= \"3.6\" and python_version < \"4.0\""
 name = "black"
@@ -99,7 +113,7 @@ description = "Python package for providing Mozilla's CA Bundle."
 name = "certifi"
 optional = false
 python-versions = "*"
-version = "2019.11.28"
+version = "2020.6.20"
 
 [[package]]
 category = "main"
@@ -146,7 +160,16 @@ 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.*"
+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\" 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.*"
@@ -158,7 +181,7 @@ description = "CliKit is a group of utilities to build beautiful and testable co
 name = "clikit"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-version = "0.4.2"
+version = "0.4.3"
 
 [package.dependencies]
 pastel = ">=0.2.0,<0.3.0"
@@ -188,7 +211,7 @@ version = "0.4.1"
 [[package]]
 category = "dev"
 description = "Cross-platform colored terminal text."
-marker = "sys_platform == \"win32\" and python_version != \"3.4\" or platform_system == \"Windows\""
+marker = "sys_platform == \"win32\" and python_version != \"3.4\" and python_version < \"3.5\" or platform_system == \"Windows\" or python_version >= \"3.5\" and sys_platform == \"win32\""
 name = "colorama"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
@@ -230,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.0.3"
+version = "5.2"
 
 [package.extras]
 toml = ["toml"]
@@ -238,12 +261,40 @@ toml = ["toml"]
 [[package]]
 category = "main"
 description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
-marker = "python_version >= \"2.7\" and python_version < \"2.8\" and (sys_platform == \"linux2\" or sys_platform == \"linux\") or python_version >= \"3.4\" and python_version < \"3.5\" and (sys_platform == \"linux2\" or sys_platform == \"linux\") or python_version >= \"3.5\" and python_version < \"4.0\" and sys_platform == \"linux\""
+marker = "python_version >= \"2.7\" and python_version < \"2.8\" and (sys_platform == \"linux2\" or sys_platform == \"linux\") or python_version >= \"3.4\" and python_version < \"3.5\" and (sys_platform == \"linux2\" or sys_platform == \"linux\")"
 name = "cryptography"
 optional = false
 python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
 version = "2.8"
 
+[package.dependencies.enum34]
+python = "<3"
+version = "*"
+
+[package.dependencies.ipaddress]
+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)"]
+idna = ["idna (>=2.1)"]
+pep8test = ["flake8", "flake8-import-order", "pep8-naming"]
+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]]
+category = "main"
+description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
+marker = "python_version >= \"2.7\" and python_version < \"2.8\" and (sys_platform == \"linux2\" or sys_platform == \"linux\") or python_version >= \"3.4\" and python_version < \"3.5\" and (sys_platform == \"linux2\" or sys_platform == \"linux\") or python_version >= \"3.5\" and python_version < \"4.0\" and sys_platform == \"linux\""
+name = "cryptography"
+optional = false
+python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
+version = "3.0"
+
 [package.dependencies]
 cffi = ">=1.8,<1.11.3 || >1.11.3"
 six = ">=1.4.1"
@@ -257,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]]
@@ -269,7 +321,7 @@ description = "Distribution utilities"
 name = "distlib"
 optional = false
 python-versions = "*"
-version = "0.3.0"
+version = "0.3.1"
 
 [[package]]
 category = "main"
@@ -292,7 +344,7 @@ marker = "python_version >= \"2.7\" and python_version < \"2.8\" or python_versi
 name = "enum34"
 optional = false
 python-versions = "*"
-version = "1.1.9"
+version = "1.1.10"
 
 [[package]]
 category = "dev"
@@ -367,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"
@@ -383,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.11"
+version = "1.4.24"
 
 [package.extras]
 license = ["editdistance"]
@@ -402,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"
@@ -437,14 +507,43 @@ python-versions = ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3"
 version = "1.0.2"
 
 [package.dependencies]
+[package.dependencies.typing]
+python = "<3.5"
+version = "*"
+
+[[package]]
+category = "dev"
+description = "Read resources from Python packages"
+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 = "3.0.0"
+
+[package.dependencies]
+[package.dependencies.contextlib2]
+python = "<3"
+version = "*"
+
 [package.dependencies.pathlib2]
 python = "<3"
 version = "*"
 
+[package.dependencies.singledispatch]
+python = "<3.4"
+version = "*"
+
 [package.dependencies.typing]
 python = "<3.5"
 version = "*"
 
+[package.dependencies.zipp]
+python = "<3.8"
+version = ">=0.4"
+
+[package.extras]
+docs = ["sphinx", "rst.linker", "jaraco.packaging"]
+
 [[package]]
 category = "main"
 description = "IPv4/IPv6 manipulation library"
@@ -461,7 +560,7 @@ marker = "python_version >= \"3.5\" and python_version < \"4.0\" and sys_platfor
 name = "jeepney"
 optional = false
 python-versions = ">=3.5"
-version = "0.4.2"
+version = "0.4.3"
 
 [package.extras]
 dev = ["testpath"]
@@ -469,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 = "*"
@@ -484,11 +583,11 @@ 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.*"
-version = "2.11.1"
+version = "2.11.2"
 
 [package.dependencies]
 MarkupSafe = ">=0.23"
@@ -497,6 +596,15 @@ MarkupSafe = ">=0.23"
 i18n = ["Babel (>=0.8)"]
 
 [[package]]
+category = "dev"
+description = "Lightweight pipelining: using Python functions as pipeline jobs."
+marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
+name = "joblib"
+optional = false
+python-versions = "*"
+version = "0.14.1"
+
+[[package]]
 category = "main"
 description = "An implementation of JSON Schema validation for Python"
 name = "jsonschema"
@@ -567,15 +675,22 @@ 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 = "*"
-version = "2.6.1"
+version = "2.6.2"
 
 [package.dependencies]
 six = "*"
-tornado = "*"
+
+[[package.dependencies.tornado]]
+python = ">=2.7,<2.8"
+version = "<6"
+
+[[package.dependencies.tornado]]
+python = ">=2.8"
+version = "*"
 
 [[package]]
 category = "main"
@@ -592,7 +707,7 @@ marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_v
 name = "lunr"
 optional = false
 python-versions = "*"
-version = "0.5.6"
+version = "0.5.8"
 
 [package.dependencies]
 future = ">=0.16.0"
@@ -600,10 +715,11 @@ six = ">=1.11.0"
 
 [package.dependencies.nltk]
 optional = true
+python = ">=2.8"
 version = ">=3.2.5"
 
 [package.extras]
-languages = ["nltk (>=3.2.5)"]
+languages = ["nltk (>=3.2.5,<3.5)", "nltk (>=3.2.5)"]
 
 [[package]]
 category = "dev"
@@ -633,10 +749,12 @@ description = "Python implementation of Markdown."
 name = "markdown"
 optional = false
 python-versions = ">=3.5"
-version = "3.2.1"
+version = "3.2.2"
 
 [package.dependencies]
-setuptools = ">=36"
+[package.dependencies.importlib-metadata]
+python = "<3.8"
+version = "*"
 
 [package.extras]
 testing = ["coverage", "pyyaml"]
@@ -655,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.*"
@@ -685,7 +803,7 @@ marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_v
 name = "mkdocs"
 optional = false
 python-versions = ">=3.5"
-version = "1.1"
+version = "1.1.2"
 
 [package.dependencies]
 Jinja2 = ">=2.10.1"
@@ -697,7 +815,7 @@ tornado = ">=5.0"
 
 [package.dependencies.lunr]
 extras = ["languages"]
-version = "0.5.6"
+version = "0.5.8"
 
 [[package]]
 category = "dev"
@@ -735,7 +853,7 @@ six = ">=1.0.0,<2.0.0"
 [[package]]
 category = "dev"
 description = "More routines for operating on iterables, beyond itertools"
-marker = "python_version > \"2.7\""
+marker = "python_version < \"3.5\" and python_version > \"2.7\""
 name = "more-itertools"
 optional = false
 python-versions = ">=3.4"
@@ -744,11 +862,11 @@ version = "7.2.0"
 [[package]]
 category = "dev"
 description = "More routines for operating on iterables, beyond itertools"
-marker = "python_version > \"2.7\""
+marker = "python_version >= \"3.5\""
 name = "more-itertools"
 optional = false
 python-versions = ">=3.5"
-version = "8.2.0"
+version = "8.4.0"
 
 [[package]]
 category = "main"
@@ -765,13 +883,16 @@ marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_v
 name = "nltk"
 optional = false
 python-versions = "*"
-version = "3.4.5"
+version = "3.5"
 
 [package.dependencies]
-six = "*"
+click = "*"
+joblib = "*"
+regex = "*"
+tqdm = "*"
 
 [package.extras]
-all = ["pyparsing", "scikit-learn", "python-crfsuite", "matplotlib", "scipy", "gensim", "requests", "twython", "numpy"]
+all = ["requests", "numpy", "python-crfsuite", "scikit-learn", "twython", "pyparsing", "scipy", "matplotlib", "gensim"]
 corenlp = ["requests"]
 machine_learning = ["gensim", "numpy", "python-crfsuite", "scikit-learn", "scipy"]
 plot = ["matplotlib"]
@@ -784,7 +905,7 @@ description = "Node.js virtual environment builder"
 name = "nodeenv"
 optional = false
 python-versions = "*"
-version = "1.3.5"
+version = "1.4.0"
 
 [[package]]
 category = "dev"
@@ -792,7 +913,7 @@ description = "Core utilities for Python packages"
 name = "packaging"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-version = "20.1"
+version = "20.4"
 
 [package.dependencies]
 pyparsing = ">=2.0.2"
@@ -809,7 +930,7 @@ version = "0.2.0"
 [[package]]
 category = "main"
 description = "Object-oriented filesystem paths"
-marker = "python_version >= \"2.7\" and python_version < \"2.8\" or python_version >= \"3.4\" and python_version < \"3.5\" or python_version < \"3.6\""
+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\" or python_version >= \"3.5\" and python_version < \"3.6\""
 name = "pathlib2"
 optional = false
 python-versions = "*"
@@ -829,7 +950,7 @@ marker = "python_version >= \"3.6\" and python_version < \"4.0\""
 name = "pathspec"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
-version = "0.7.0"
+version = "0.8.0"
 
 [[package]]
 category = "dev"
@@ -944,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"
@@ -953,7 +1074,7 @@ marker = "python_version >= \"2.7\" and python_version < \"2.8\" and (sys_platfo
 name = "pycparser"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-version = "2.19"
+version = "2.20"
 
 [[package]]
 category = "dev"
@@ -973,6 +1094,14 @@ version = "2.5.2"
 
 [[package]]
 category = "dev"
+description = "Pygments is a syntax highlighting package written in Python."
+name = "pygments"
+optional = false
+python-versions = ">=3.5"
+version = "2.6.1"
+
+[[package]]
+category = "dev"
 description = "Pygments Github custom lexers."
 name = "pygments-github-lexers"
 optional = false
@@ -1030,7 +1159,7 @@ description = "Python parsing module"
 name = "pyparsing"
 optional = false
 python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
-version = "2.4.6"
+version = "2.4.7"
 
 [[package]]
 category = "main"
@@ -1049,7 +1178,7 @@ description = "pytest: simple powerful testing with Python"
 name = "pytest"
 optional = false
 python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
-version = "4.6.9"
+version = "4.6.11"
 
 [package.dependencies]
 atomicwrites = ">=1.0"
@@ -1093,6 +1222,36 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "nose", "requests", "mock"]
 
 [[package]]
 category = "dev"
+description = "pytest: simple powerful testing with Python"
+name = "pytest"
+optional = false
+python-versions = ">=3.5"
+version = "5.4.3"
+
+[package.dependencies]
+atomicwrites = ">=1.0"
+attrs = ">=17.4.0"
+colorama = "*"
+more-itertools = ">=4.0.0"
+packaging = "*"
+pluggy = ">=0.12,<1.0"
+py = ">=1.5.0"
+wcwidth = "*"
+
+[package.dependencies.importlib-metadata]
+python = "<3.8"
+version = ">=0.12"
+
+[package.dependencies.pathlib2]
+python = "<3.6"
+version = ">=2.2.0"
+
+[package.extras]
+checkqa-mypy = ["mypy (v0.761)"]
+testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
+
+[[package]]
+category = "dev"
 description = "Pytest plugin for measuring coverage."
 name = "pytest-cov"
 optional = false
@@ -1108,6 +1267,21 @@ testing = ["fields", "hunter", "process-tests (2.0.2)", "six", "virtualenv"]
 
 [[package]]
 category = "dev"
+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.10.0"
+
+[package.dependencies]
+coverage = ">=4.4"
+pytest = ">=4.6"
+
+[package.extras]
+testing = ["fields", "hunter", "process-tests (2.0.2)", "six", "pytest-xdist", "virtualenv"]
+
+[[package]]
+category = "dev"
 description = "Thin-wrapper around the mock package for easier use with py.test"
 name = "pytest-mock"
 optional = false
@@ -1130,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.2"
+version = "0.9.4"
 
 [package.dependencies]
 packaging = ">=14.1"
@@ -1160,16 +1334,16 @@ description = "YAML parser and emitter for Python"
 name = "pyyaml"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
-version = "5.3"
+version = "5.3.1"
 
 [[package]]
 category = "dev"
 description = "Alternative regular expression module, to replace re."
-marker = "python_version >= \"3.6\" and python_version < \"4.0\""
+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\""
 name = "regex"
 optional = false
 python-versions = "*"
-version = "2020.2.20"
+version = "2020.7.14"
 
 [[package]]
 category = "main"
@@ -1195,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"
@@ -1221,7 +1395,7 @@ requests = ">=2.0.1,<3.0.0"
 [[package]]
 category = "main"
 description = "scandir, a better directory iterator and faster os.walk()"
-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\""
+marker = "python_version >= \"2.7\" and python_version < \"2.8\" or python_version >= \"3.4\" and python_version < \"3.5\""
 name = "scandir"
 optional = false
 python-versions = "*"
@@ -1264,12 +1438,24 @@ python-versions = "!=3.0,!=3.1,!=3.2,!=3.3,>=2.6"
 version = "1.3.2"
 
 [[package]]
+category = "dev"
+description = "This library brings functools.singledispatch from Python 3.4 to Python 2.6-3.3."
+marker = "python_version < \"3.4\""
+name = "singledispatch"
+optional = false
+python-versions = "*"
+version = "3.4.0.3"
+
+[package.dependencies]
+six = "*"
+
+[[package]]
 category = "main"
 description = "Python 2 and 3 compatibility utilities"
 name = "six"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
-version = "1.14.0"
+version = "1.15.0"
 
 [[package]]
 category = "main"
@@ -1294,7 +1480,7 @@ description = "Python Library for Tom's Obvious, Minimal Language"
 name = "toml"
 optional = false
 python-versions = "*"
-version = "0.10.0"
+version = "0.10.1"
 
 [[package]]
 category = "main"
@@ -1320,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.*"
@@ -1333,7 +1519,7 @@ marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_v
 name = "tornado"
 optional = false
 python-versions = ">= 3.5"
-version = "6.0.3"
+version = "6.0.4"
 
 [[package]]
 category = "dev"
@@ -1362,25 +1548,37 @@ 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.14.5"
+version = "3.17.1"
 
 [package.dependencies]
 colorama = ">=0.4.1"
-filelock = ">=3.0.0,<4"
+filelock = ">=3.0.0"
 packaging = ">=14"
-pluggy = ">=0.12.0,<1"
-py = ">=1.4.17,<2"
-six = ">=1.14.0,<2"
+pluggy = ">=0.12.0"
+py = ">=1.4.17"
+six = ">=1.14.0"
 toml = ">=0.9.4"
-virtualenv = ">=16.0.0"
+virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2,<20.0.3 || >20.0.3,<20.0.4 || >20.0.4,<20.0.5 || >20.0.5,<20.0.6 || >20.0.6,<20.0.7 || >20.0.7"
 
 [package.dependencies.importlib-metadata]
 python = "<3.8"
 version = ">=0.12,<2"
 
 [package.extras]
-docs = ["sphinx (>=2.0.0,<3)", "towncrier (>=18.5.0)", "pygments-github-lexers (>=0.0.5)", "sphinxcontrib-autoprogram (>=0.1.5)"]
-testing = ["freezegun (>=0.3.11,<1)", "pathlib2 (>=2.3.3,<3)", "pytest (>=4.0.0,<6)", "pytest-cov (>=2.5.1,<3)", "pytest-mock (>=1.10.0,<2)", "pytest-xdist (>=1.22.2,<2)", "pytest-randomly (>=1.0.0,<4)", "flaky (>=3.4.0,<4)", "psutil (>=5.6.1,<6)"]
+docs = ["sphinx (>=2.0.0)", "towncrier (>=18.5.0)", "pygments-github-lexers (>=0.0.5)", "sphinxcontrib-autoprogram (>=0.1.5)"]
+testing = ["freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-xdist (>=1.22.2)", "pytest-randomly (>=1.0.0)", "flaky (>=3.4.0)", "psutil (>=5.6.1)"]
+
+[[package]]
+category = "dev"
+description = "Fast, Extensible Progress Meter"
+marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
+name = "tqdm"
+optional = false
+python-versions = ">=2.6, !=3.0.*, !=3.1.*"
+version = "4.48.0"
+
+[package.extras]
+dev = ["py-make (>=0.1.0)", "twine", "argopt", "pydoc-markdown"]
 
 [[package]]
 category = "dev"
@@ -1397,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"
@@ -1407,7 +1605,7 @@ marker = "python_version >= \"3.5.0\" and python_version < \"3.5.4\""
 name = "typing-extensions"
 optional = false
 python-versions = "*"
-version = "3.7.4.1"
+version = "3.7.4.2"
 
 [[package]]
 category = "main"
@@ -1427,11 +1625,11 @@ description = "HTTP library with thread-safe connection pooling, file post, and
 name = "urllib3"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
-version = "1.25.8"
+version = "1.25.9"
 
 [package.extras]
 brotli = ["brotlipy (>=0.6.0)"]
-secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
+secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)", "ipaddress"]
 socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"]
 
 [[package]]
@@ -1452,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.7"
+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"
 
@@ -1466,19 +1664,25 @@ version = ">=0.12,<2"
 
 [package.dependencies.importlib-resources]
 python = "<3.7"
-version = ">=1.0,<2"
+version = ">=1.0"
 
 [package.extras]
-docs = ["sphinx (>=2.0.0,<3)", "sphinx-argparse (>=0.2.5,<1)", "sphinx-rtd-theme (>=0.4.3,<1)", "towncrier (>=19.9.0rc1)", "proselint (>=0.10.2,<1)"]
-testing = ["pytest (>=4.0.0,<6)", "coverage (>=4.5.1,<6)", "pytest-mock (>=2.0.0,<3)", "pytest-env (>=0.6.2,<1)", "packaging (>=20.0)", "xonsh (>=0.9.13,<1)"]
+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 (>=1)", "pytest-freezegun (>=0.4.1)", "flaky (>=3)", "packaging (>=20.0)", "xonsh (>=0.9.16)"]
 
 [[package]]
 category = "dev"
-description = "Measures number of Terminal column cells of wide-character codes"
+description = "Measures the displayed width of unicode strings in a terminal"
+marker = "python_version < \"3.5\" or python_version >= \"3.5\""
 name = "wcwidth"
 optional = false
 python-versions = "*"
-version = "0.1.8"
+version = "0.2.5"
+
+[package.dependencies]
+[package.dependencies."backports.functools-lru-cache"]
+python = "<3.2"
+version = ">=1.2.1"
 
 [[package]]
 category = "main"
@@ -1491,6 +1695,7 @@ version = "0.5.1"
 [[package]]
 category = "main"
 description = "Backport of pathlib-compatible object wrapper for zip files"
+marker = "python_version < \"3.8\" or python_version >= \"3.5\" and python_version < \"3.8\" or python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"3.8\""
 name = "zipp"
 optional = false
 python-versions = ">=2.7"
@@ -1506,26 +1711,30 @@ docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
 testing = ["pathlib2", "unittest2", "jaraco.itertools", "func-timeout"]
 
 [metadata]
-content-hash = "70609fddc0d3768b1003fc24207951ab7ad8bfad4c6cb326d6217c52f5a92e3d"
+content-hash = "f585f9479c9551e48768249cc80ec8f217539b42fcc3822543fdd0789f9f9d87"
 python-versions = "~2.7 || ^3.4"
 
 [metadata.files]
 appdirs = [
-    {file = "appdirs-1.4.3-py2.py3-none-any.whl", hash = "sha256:d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e"},
-    {file = "appdirs-1.4.3.tar.gz", hash = "sha256:9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92"},
+    {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"},
+    {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"},
 ]
 "aspy.yaml" = [
     {file = "aspy.yaml-1.3.0-py2.py3-none-any.whl", hash = "sha256:463372c043f70160a9ec950c3f1e4c3a82db5fca01d334b6bc89c7164d744bdc"},
     {file = "aspy.yaml-1.3.0.tar.gz", hash = "sha256:e7c742382eff2caed61f87a39d13f99109088e5e93f04d76eb8d4b28aa143f45"},
 ]
 atomicwrites = [
-    {file = "atomicwrites-1.3.0-py2.py3-none-any.whl", hash = "sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4"},
-    {file = "atomicwrites-1.3.0.tar.gz", hash = "sha256:75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6"},
+    {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"},
+    {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"},
 ]
 attrs = [
     {file = "attrs-19.3.0-py2.py3-none-any.whl", hash = "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c"},
     {file = "attrs-19.3.0.tar.gz", hash = "sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72"},
 ]
+"backports.functools-lru-cache" = [
+    {file = "backports.functools_lru_cache-1.6.1-py2.py3-none-any.whl", hash = "sha256:0bada4c2f8a43d533e4ecb7a12214d9420e66eb206d54bf2d682581ca4b80848"},
+    {file = "backports.functools_lru_cache-1.6.1.tar.gz", hash = "sha256:8fde5f188da2d593bd5bc0be98d9abc46c95bb8a9dde93429570192ee6cc2d4a"},
+]
 black = [
     {file = "black-19.10b0-py36-none-any.whl", hash = "sha256:1b30e59be925fafc1ee4565e5e08abef6b03fe455102883820fe5ee2e4734e0b"},
     {file = "black-19.10b0.tar.gz", hash = "sha256:c2edb73a08e9e0e6f65a0e6af18b059b8b1cdd5bef997d7a0b181df93dc81539"},
@@ -1539,8 +1748,8 @@ cachy = [
     {file = "cachy-0.3.0.tar.gz", hash = "sha256:186581f4ceb42a0bbe040c407da73c14092379b1e4c0e327fdb72ae4a9b269b1"},
 ]
 certifi = [
-    {file = "certifi-2019.11.28-py2.py3-none-any.whl", hash = "sha256:017c25db2a153ce562900032d5bc68e9f191e44e9a0f762f373977de9df1fbb3"},
-    {file = "certifi-2019.11.28.tar.gz", hash = "sha256:25b64c7da4cd7479594d035c08c2d809eb4aab3a26e5a990ea98cc450c320f1f"},
+    {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"},
@@ -1585,12 +1794,14 @@ cleo = [
     {file = "cleo-0.7.6.tar.gz", hash = "sha256:99cf342406f3499cec43270fcfaf93c126c5164092eca201dfef0f623360b409"},
 ]
 click = [
+    {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"},
+    {file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"},
     {file = "Click-7.0-py2.py3-none-any.whl", hash = "sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13"},
     {file = "Click-7.0.tar.gz", hash = "sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7"},
 ]
 clikit = [
-    {file = "clikit-0.4.2-py2.py3-none-any.whl", hash = "sha256:95394982cfa460a77ded2f173380a958e5f90c16972307c19d79b96f6e335326"},
-    {file = "clikit-0.4.2.tar.gz", hash = "sha256:f67336462800078e0896cf6ecfa3b460dfea4dfa01de659388a4ff0d83c8d6ca"},
+    {file = "clikit-0.4.3-py2.py3-none-any.whl", hash = "sha256:71e321b7795a2a6c4888629f43365d52db071737e668ab16861121d7dd3ada09"},
+    {file = "clikit-0.4.3.tar.gz", hash = "sha256:6e2d7e115e7c7b35bceb0209109935ab2f9ab50910e9ff2293f7fa0b7abf973e"},
 ]
 colorama = [
     {file = "colorama-0.4.1-py2.py3-none-any.whl", hash = "sha256:f8ac84de7840f5b9c4e3347b3c1eaa50f7e49c2b07596221daec5edaabbd7c48"},
@@ -1639,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.0.3-cp27-cp27m-macosx_10_12_x86_64.whl", hash = "sha256:cc1109f54a14d940b8512ee9f1c3975c181bbb200306c6d8b87d93376538782f"},
-    {file = "coverage-5.0.3-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:be18f4ae5a9e46edae3f329de2191747966a34a3d93046dbdf897319923923bc"},
-    {file = "coverage-5.0.3-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:3230d1003eec018ad4a472d254991e34241e0bbd513e97a29727c7c2f637bd2a"},
-    {file = "coverage-5.0.3-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:e69215621707119c6baf99bda014a45b999d37602cb7043d943c76a59b05bf52"},
-    {file = "coverage-5.0.3-cp27-cp27m-win32.whl", hash = "sha256:1daa3eceed220f9fdb80d5ff950dd95112cd27f70d004c7918ca6dfc6c47054c"},
-    {file = "coverage-5.0.3-cp27-cp27m-win_amd64.whl", hash = "sha256:51bc7710b13a2ae0c726f69756cf7ffd4362f4ac36546e243136187cfcc8aa73"},
-    {file = "coverage-5.0.3-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:9bea19ac2f08672636350f203db89382121c9c2ade85d945953ef3c8cf9d2a68"},
-    {file = "coverage-5.0.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:5012d3b8d5a500834783689a5d2292fe06ec75dc86ee1ccdad04b6f5bf231691"},
-    {file = "coverage-5.0.3-cp35-cp35m-macosx_10_12_x86_64.whl", hash = "sha256:d513cc3db248e566e07a0da99c230aca3556d9b09ed02f420664e2da97eac301"},
-    {file = "coverage-5.0.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:3dbb72eaeea5763676a1a1efd9b427a048c97c39ed92e13336e726117d0b72bf"},
-    {file = "coverage-5.0.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:15cf13a6896048d6d947bf7d222f36e4809ab926894beb748fc9caa14605d9c3"},
-    {file = "coverage-5.0.3-cp35-cp35m-win32.whl", hash = "sha256:fca1669d464f0c9831fd10be2eef6b86f5ebd76c724d1e0706ebdff86bb4adf0"},
-    {file = "coverage-5.0.3-cp35-cp35m-win_amd64.whl", hash = "sha256:1e44a022500d944d42f94df76727ba3fc0a5c0b672c358b61067abb88caee7a0"},
-    {file = "coverage-5.0.3-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:b26aaf69713e5674efbde4d728fb7124e429c9466aeaf5f4a7e9e699b12c9fe2"},
-    {file = "coverage-5.0.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:722e4557c8039aad9592c6a4213db75da08c2cd9945320220634f637251c3894"},
-    {file = "coverage-5.0.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:7afad9835e7a651d3551eab18cbc0fdb888f0a6136169fbef0662d9cdc9987cf"},
-    {file = "coverage-5.0.3-cp36-cp36m-win32.whl", hash = "sha256:25dbf1110d70bab68a74b4b9d74f30e99b177cde3388e07cc7272f2168bd1477"},
-    {file = "coverage-5.0.3-cp36-cp36m-win_amd64.whl", hash = "sha256:c312e57847db2526bc92b9bfa78266bfbaabac3fdcd751df4d062cd4c23e46dc"},
-    {file = "coverage-5.0.3-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:a8b8ac7876bc3598e43e2603f772d2353d9931709345ad6c1149009fd1bc81b8"},
-    {file = "coverage-5.0.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:527b4f316e6bf7755082a783726da20671a0cc388b786a64417780b90565b987"},
-    {file = "coverage-5.0.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d649dc0bcace6fcdb446ae02b98798a856593b19b637c1b9af8edadf2b150bea"},
-    {file = "coverage-5.0.3-cp37-cp37m-win32.whl", hash = "sha256:cd60f507c125ac0ad83f05803063bed27e50fa903b9c2cfee3f8a6867ca600fc"},
-    {file = "coverage-5.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:c60097190fe9dc2b329a0eb03393e2e0829156a589bd732e70794c0dd804258e"},
-    {file = "coverage-5.0.3-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:d7008a6796095a79544f4da1ee49418901961c97ca9e9d44904205ff7d6aa8cb"},
-    {file = "coverage-5.0.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:ea9525e0fef2de9208250d6c5aeeee0138921057cd67fcef90fbed49c4d62d37"},
-    {file = "coverage-5.0.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:c62a2143e1313944bf4a5ab34fd3b4be15367a02e9478b0ce800cb510e3bbb9d"},
-    {file = "coverage-5.0.3-cp38-cp38m-win32.whl", hash = "sha256:b0840b45187699affd4c6588286d429cd79a99d509fe3de0f209594669bb0954"},
-    {file = "coverage-5.0.3-cp38-cp38m-win_amd64.whl", hash = "sha256:76e2057e8ffba5472fd28a3a010431fd9e928885ff480cb278877c6e9943cc2e"},
-    {file = "coverage-5.0.3-cp39-cp39m-win32.whl", hash = "sha256:b63dd43f455ba878e5e9f80ba4f748c0a2156dde6e0e6e690310e24d6e8caf40"},
-    {file = "coverage-5.0.3-cp39-cp39m-win_amd64.whl", hash = "sha256:da93027835164b8223e8e5af2cf902a4c80ed93cb0909417234f4a9df3bcd9af"},
-    {file = "coverage-5.0.3.tar.gz", hash = "sha256:77afca04240c40450c331fa796b3eab6f1e15c5ecf8bf2b8bee9706cd5452fef"},
+    {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"},
@@ -1693,18 +1907,38 @@ 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-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"},
     {file = "entrypoints-0.3.tar.gz", hash = "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451"},
 ]
 enum34 = [
-    {file = "enum34-1.1.9-py2-none-any.whl", hash = "sha256:98df1f1937840b7d8012fea7f0b36392a3e6fd8a2f429c48a3ff4b1aad907f3f"},
-    {file = "enum34-1.1.9-py3-none-any.whl", hash = "sha256:708aabfb3d5898f99674c390d360d59efdd08547019763622365f19e84a7fef4"},
-    {file = "enum34-1.1.9.tar.gz", hash = "sha256:13ef9a1c478203252107f66c25b99b45b1865693ca1284aab40dafa7e1e7ac17"},
+    {file = "enum34-1.1.10-py2-none-any.whl", hash = "sha256:a98a201d6de3f2ab3db284e70a33b0f896fbf35f8086594e8c9e74b909058d53"},
+    {file = "enum34-1.1.10-py3-none-any.whl", hash = "sha256:c3858660960c984d6ab0ebad691265180da2b43f07e061c0f8dca9ef3cffd328"},
+    {file = "enum34-1.1.10.tar.gz", hash = "sha256:cce6a7477ed816bd2542d03d53db9f0db935dd013b70f336a95c73979289f248"},
 ]
 filelock = [
     {file = "filelock-3.0.12-py3-none-any.whl", hash = "sha256:929b7d63ec5b7d6b71b0fa5ac14e030b3f70b75747cef1b10da9b879fef15836"},
@@ -1731,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.11-py2.py3-none-any.whl", hash = "sha256:1222b648251bdcb8deb240b294f450fbf704c7984e08baa92507e4ea10b436d5"},
-    {file = "identify-1.4.11.tar.gz", hash = "sha256:d824ebe21f38325c771c41b08a95a761db1982f1fc0eee37c6c97df3f1636b96"},
+    {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"},
@@ -1752,20 +1988,26 @@ 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-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"},
     {file = "ipaddress-1.0.23.tar.gz", hash = "sha256:b7f8e0369580bb4a24d5ba1d7cc29660a4a6987763faf1d8a8046830e020e7e2"},
 ]
 jeepney = [
-    {file = "jeepney-0.4.2-py3-none-any.whl", hash = "sha256:6f45dce1125cf6c58a1c88123d3831f36a789f9204fbad3172eac15f8ccd08d0"},
-    {file = "jeepney-0.4.2.tar.gz", hash = "sha256:0ba6d8c597e9bef1ebd18aaec595f942a264e25c1a48f164d46120eacaa2e9bb"},
+    {file = "jeepney-0.4.3-py3-none-any.whl", hash = "sha256:d6c6b49683446d2407d2fe3acb7a368a77ff063f9182fe427da15d622adc24cf"},
+    {file = "jeepney-0.4.3.tar.gz", hash = "sha256:3479b861cc2b6407de5188695fa1a8d57e5072d7059322469b62628869b8e36e"},
 ]
 jinja2 = [
     {file = "Jinja2-2.10.3-py2.py3-none-any.whl", hash = "sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f"},
     {file = "Jinja2-2.10.3.tar.gz", hash = "sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de"},
-    {file = "Jinja2-2.11.1-py2.py3-none-any.whl", hash = "sha256:b0eaf100007721b5c16c1fc1eecb87409464edc10469ddc9a22a27a99123be49"},
-    {file = "Jinja2-2.11.1.tar.gz", hash = "sha256:93187ffbc7808079673ef52771baa950426fd664d3aad1d0fa3e95644360e250"},
+    {file = "Jinja2-2.11.2-py2.py3-none-any.whl", hash = "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"},
+    {file = "Jinja2-2.11.2.tar.gz", hash = "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0"},
+]
+joblib = [
+    {file = "joblib-0.14.1-py2.py3-none-any.whl", hash = "sha256:bdb4fd9b72915ffb49fde2229ce482dd7ae79d842ed8c2b4c932441495af1403"},
+    {file = "joblib-0.14.1.tar.gz", hash = "sha256:0630eea4f5664c463f23fbf5dcfc54a2bc6168902719fa8e19daf033022786c8"},
 ]
 jsonschema = [
     {file = "jsonschema-3.2.0-py2.py3-none-any.whl", hash = "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163"},
@@ -1778,24 +2020,23 @@ keyring = [
     {file = "keyring-20.0.1.tar.gz", hash = "sha256:963bfa7f090269d30bdc5e25589e5fd9dad2cf2a7c6f176a7f2386910e5d0d8d"},
 ]
 livereload = [
-    {file = "livereload-2.6.1-py2.py3-none-any.whl", hash = "sha256:78d55f2c268a8823ba499305dcac64e28ddeb9a92571e12d543cd304faf5817b"},
-    {file = "livereload-2.6.1.tar.gz", hash = "sha256:89254f78d7529d7ea0a3417d224c34287ebfe266b05e67e51facaf82c27f0f66"},
+    {file = "livereload-2.6.2.tar.gz", hash = "sha256:d1eddcb5c5eb8d2ca1fa1f750e580da624c0f7fcb734aa5780dc81b7dcbd89be"},
 ]
 lockfile = [
     {file = "lockfile-0.12.2-py2.py3-none-any.whl", hash = "sha256:6c3cb24f344923d30b2785d5ad75182c8ea7ac1b6171b08657258ec7429d50fa"},
     {file = "lockfile-0.12.2.tar.gz", hash = "sha256:6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799"},
 ]
 lunr = [
-    {file = "lunr-0.5.6-py2.py3-none-any.whl", hash = "sha256:1208622930c915a07e6f8e8640474357826bad48534c0f57969b6fca9bffc88e"},
-    {file = "lunr-0.5.6.tar.gz", hash = "sha256:7be69d7186f65784a4f2adf81e5c58efd6a9921aa95966babcb1f2f2ada75c20"},
+    {file = "lunr-0.5.8-py2.py3-none-any.whl", hash = "sha256:aab3f489c4d4fab4c1294a257a30fec397db56f0a50273218ccc3efdbf01d6ca"},
+    {file = "lunr-0.5.8.tar.gz", hash = "sha256:c4fb063b98eff775dd638b3df380008ae85e6cb1d1a24d1cd81a10ef6391c26e"},
 ]
 markdown = [
     {file = "Markdown-3.0.1-py2.py3-none-any.whl", hash = "sha256:c00429bd503a47ec88d5e30a751e147dcb4c6889663cd3e2ba0afe858e009baa"},
     {file = "Markdown-3.0.1.tar.gz", hash = "sha256:d02e0f9b04c500cde6637c11ad7c72671f359b87b9fe924b2383649d8841db7c"},
     {file = "Markdown-3.1.1-py2.py3-none-any.whl", hash = "sha256:56a46ac655704b91e5b7e6326ce43d5ef72411376588afa1dd90e881b83c7e8c"},
     {file = "Markdown-3.1.1.tar.gz", hash = "sha256:2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a"},
-    {file = "Markdown-3.2.1-py2.py3-none-any.whl", hash = "sha256:e4795399163109457d4c5af2183fbe6b60326c17cfdf25ce6e7474c6624f725d"},
-    {file = "Markdown-3.2.1.tar.gz", hash = "sha256:90fee683eeabe1a92e149f7ba74e5ccdc81cd397bd6c516d93a8da0ef90b6902"},
+    {file = "Markdown-3.2.2-py3-none-any.whl", hash = "sha256:c467cd6233885534bf0fe96e62e3cf46cfc1605112356c4f9981512b8174de59"},
+    {file = "Markdown-3.2.2.tar.gz", hash = "sha256:1fafe3f1ecabfb514a5285fca634a53c1b32a81cb0feb154264d55bf2ff22c17"},
 ]
 markdown-include = [
     {file = "markdown-include-0.5.1.tar.gz", hash = "sha256:72a45461b589489a088753893bc95c5fa5909936186485f4ed55caa57d10250f"},
@@ -1838,8 +2079,8 @@ markupsafe = [
 mkdocs = [
     {file = "mkdocs-1.0.4-py2.py3-none-any.whl", hash = "sha256:8cc8b38325456b9e942c981a209eaeb1e9f3f77b493ad755bfef889b9c8d356a"},
     {file = "mkdocs-1.0.4.tar.gz", hash = "sha256:17d34329aad75d5de604b9ed4e31df3a4d235afefdc46ce7b1964fddb2e1e939"},
-    {file = "mkdocs-1.1-py2.py3-none-any.whl", hash = "sha256:1e385a70aea8a9dedb731aea4fd5f3704b2074801c4f96f06b2920999babda8a"},
-    {file = "mkdocs-1.1.tar.gz", hash = "sha256:9243291392f59e20b655e4e46210233453faf97787c2cf72176510e868143174"},
+    {file = "mkdocs-1.1.2-py3-none-any.whl", hash = "sha256:096f52ff52c02c7e90332d2e53da862fde5c062086e1b5356a6e392d5d60f5e9"},
+    {file = "mkdocs-1.1.2.tar.gz", hash = "sha256:f0b61e5402b99d7789efa032c7a74c90a20220a9c81749da06dbfbcbd52ffb39"},
 ]
 mock = [
     {file = "mock-3.0.5-py2.py3-none-any.whl", hash = "sha256:d157e52d4e5b938c550f39eb2fd15610db062441a9c2747d3dbfa9298211d0f8"},
@@ -1851,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.2.0.tar.gz", hash = "sha256:b1ddb932186d8a6ac451e1d95844b382f55e12686d51ca0c68b6f61f2ab7a507"},
-    {file = "more_itertools-8.2.0-py3-none-any.whl", hash = "sha256:5dd8bcf33e5f9513ffa06d5ad33d78f31e1931ac9a18f33d37e77a180d393a7c"},
+    {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"},
@@ -1875,15 +2116,14 @@ msgpack = [
     {file = "msgpack-1.0.0.tar.gz", hash = "sha256:9534d5cc480d4aff720233411a1f765be90885750b07df772380b34c10ecb5c0"},
 ]
 nltk = [
-    {file = "nltk-3.4.5.win32.exe", hash = "sha256:a08bdb4b8a1c13de16743068d9eb61c8c71c2e5d642e8e08205c528035843f82"},
-    {file = "nltk-3.4.5.zip", hash = "sha256:bed45551259aa2101381bbdd5df37d44ca2669c5c3dad72439fa459b29137d94"},
+    {file = "nltk-3.5.zip", hash = "sha256:845365449cd8c5f9731f7cb9f8bd6fd0767553b9d53af9eb1b3abf7700936b35"},
 ]
 nodeenv = [
-    {file = "nodeenv-1.3.5-py2.py3-none-any.whl", hash = "sha256:5b2438f2e42af54ca968dd1b374d14a1194848955187b0e5e4be1f73813a5212"},
+    {file = "nodeenv-1.4.0-py2.py3-none-any.whl", hash = "sha256:4b0b77afa3ba9b54f4b6396e60b0c83f59eaeb2d63dc3cc7a70f7f4af96c82bc"},
 ]
 packaging = [
-    {file = "packaging-20.1-py2.py3-none-any.whl", hash = "sha256:170748228214b70b672c581a3dd610ee51f733018650740e98c7df862a583f73"},
-    {file = "packaging-20.1.tar.gz", hash = "sha256:e665345f9eef0c621aa0bf2f8d78cf6d21904eef16a93f020240b704a57f1334"},
+    {file = "packaging-20.4-py2.py3-none-any.whl", hash = "sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181"},
+    {file = "packaging-20.4.tar.gz", hash = "sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8"},
 ]
 pastel = [
     {file = "pastel-0.2.0-py2.py3-none-any.whl", hash = "sha256:18b559dc3ad4ba9b8bd5baebe6503f25f36d21460f021cf27a8d889cb5d17840"},
@@ -1894,8 +2134,8 @@ pathlib2 = [
     {file = "pathlib2-2.3.5.tar.gz", hash = "sha256:6cd9a47b597b37cc57de1c05e56fb1a1c9cc9fab04fe78c29acd090418529868"},
 ]
 pathspec = [
-    {file = "pathspec-0.7.0-py2.py3-none-any.whl", hash = "sha256:163b0632d4e31cef212976cf57b43d9fd6b0bac6e67c26015d611a647d5e7424"},
-    {file = "pathspec-0.7.0.tar.gz", hash = "sha256:562aa70af2e0d434367d9790ad37aed893de47f1693e4201fd1d3dca15d19b96"},
+    {file = "pathspec-0.8.0-py2.py3-none-any.whl", hash = "sha256:7d91249d21749788d07a2d0f94147accd8f845507400749ea19c1ec9054a12b0"},
+    {file = "pathspec-0.8.0.tar.gz", hash = "sha256:da45173eb3a6f2a5a487efba21f050af2b41948be6ab52b6a1e3ff22bb8b7061"},
 ]
 pep562 = [
     {file = "pep562-1.0-py2.py3-none-any.whl", hash = "sha256:d2a48b178ebf5f8dd31709cc26a19808ef794561fa2fe50ea01ea2bad4d667ef"},
@@ -1924,17 +2164,20 @@ 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.19.tar.gz", hash = "sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3"},
+    {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
+    {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"},
 ]
 pygments = [
     {file = "Pygments-2.3.1-py2.py3-none-any.whl", hash = "sha256:e8218dd399a61674745138520d0d4cf2621d7e032439341bc3f647bff125818d"},
     {file = "Pygments-2.3.1.tar.gz", hash = "sha256:5ffada19f6203563680669ee7f53b64dabbeb100eb51b61996085e99c03b284a"},
     {file = "Pygments-2.5.2-py2.py3-none-any.whl", hash = "sha256:2a3fe295e54a20164a9df49c75fa58526d3be48e14aceba6d6b1e8ac0bfd6f1b"},
     {file = "Pygments-2.5.2.tar.gz", hash = "sha256:98c8aa5a9f778fcd1026a17361ddaf7330d1b7c62ae97c3bb0ae73e0b9b6b0fe"},
+    {file = "Pygments-2.6.1-py3-none-any.whl", hash = "sha256:ff7a40b4860b727ab48fad6360eb351cc1b33cbf9b15a0f689ca5353e9463324"},
+    {file = "Pygments-2.6.1.tar.gz", hash = "sha256:647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44"},
 ]
 pygments-github-lexers = [
     {file = "pygments-github-lexers-0.0.5.tar.gz", hash = "sha256:aaca57e77cd6fcfce8d6ee97a998962eebf7fbb810519a8ebde427c62823e133"},
@@ -1953,27 +2196,30 @@ pymdown-extensions = [
     {file = "pymdown_extensions-6.3-py2.py3-none-any.whl", hash = "sha256:66fae2683c7a1dac53184f7de57f51f8dad73f9ead2f453e94e85096cb811335"},
 ]
 pyparsing = [
-    {file = "pyparsing-2.4.6-py2.py3-none-any.whl", hash = "sha256:c342dccb5250c08d45fd6f8b4a559613ca603b57498511740e65cd11a2e7dcec"},
-    {file = "pyparsing-2.4.6.tar.gz", hash = "sha256:4c830582a84fb022400b85429791bc551f1f4871c33f23e44f353119e92f969f"},
+    {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
+    {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
 ]
 pyrsistent = [
     {file = "pyrsistent-0.14.11.tar.gz", hash = "sha256:3ca82748918eb65e2d89f222b702277099aca77e34843c5eb9d52451173970e2"},
 ]
 pytest = [
-    {file = "pytest-4.6.9-py2.py3-none-any.whl", hash = "sha256:c77a5f30a90e0ce24db9eaa14ddfd38d4afb5ea159309bdd2dae55b931bc9324"},
-    {file = "pytest-4.6.9.tar.gz", hash = "sha256:19e8f75eac01dd3f211edd465b39efbcbdc8fc5f7866d7dd49fedb30d8adf339"},
+    {file = "pytest-4.6.11-py2.py3-none-any.whl", hash = "sha256:a00a7d79cbbdfa9d21e7d0298392a8dd4123316bfac545075e6f8f24c94d8c97"},
+    {file = "pytest-4.6.11.tar.gz", hash = "sha256:50fa82392f2120cc3ec2ca0a75ee615be4c479e66669789771f1758332be4353"},
+    {file = "pytest-5.4.3-py3-none-any.whl", hash = "sha256:5c0db86b698e8f170ba4582a492248919255fcd4c79b1ee64ace34301fb589a1"},
+    {file = "pytest-5.4.3.tar.gz", hash = "sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"},
 ]
 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.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.2.tar.gz", hash = "sha256:fcd87a74b2bce5386d244b49ad60549bfbc4602527797fac167da147983f58ab"},
-    {file = "pytest_sugar-0.9.2-py2.py3-none-any.whl", hash = "sha256:26cf8289fe10880cbbc130bd77398c4e6a8b936d8393b116a5c16121d95ab283"},
+    {file = "pytest-sugar-0.9.4.tar.gz", hash = "sha256:b1b2186b0a72aada6859bea2a5764145e3aaa2c1cfbb23c3a19b5f7b697563d3"},
 ]
 pywin32-ctypes = [
     {file = "pywin32-ctypes-0.2.0.tar.gz", hash = "sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942"},
@@ -1991,46 +2237,46 @@ pyyaml = [
     {file = "PyYAML-5.2-cp38-cp38-win32.whl", hash = "sha256:8100c896ecb361794d8bfdb9c11fce618c7cf83d624d73d5ab38aef3bc82d43f"},
     {file = "PyYAML-5.2-cp38-cp38-win_amd64.whl", hash = "sha256:2e9f0b7c5914367b0916c3c104a024bb68f269a486b9d04a2e8ac6f6597b7803"},
     {file = "PyYAML-5.2.tar.gz", hash = "sha256:c0ee8eca2c582d29c3c2ec6e2c4f703d1b7f1fb10bc72317355a746057e7346c"},
-    {file = "PyYAML-5.3-cp27-cp27m-win32.whl", hash = "sha256:940532b111b1952befd7db542c370887a8611660d2b9becff75d39355303d82d"},
-    {file = "PyYAML-5.3-cp27-cp27m-win_amd64.whl", hash = "sha256:059b2ee3194d718896c0ad077dd8c043e5e909d9180f387ce42012662a4946d6"},
-    {file = "PyYAML-5.3-cp35-cp35m-win32.whl", hash = "sha256:4fee71aa5bc6ed9d5f116327c04273e25ae31a3020386916905767ec4fc5317e"},
-    {file = "PyYAML-5.3-cp35-cp35m-win_amd64.whl", hash = "sha256:dbbb2379c19ed6042e8f11f2a2c66d39cceb8aeace421bfc29d085d93eda3689"},
-    {file = "PyYAML-5.3-cp36-cp36m-win32.whl", hash = "sha256:e3a057b7a64f1222b56e47bcff5e4b94c4f61faac04c7c4ecb1985e18caa3994"},
-    {file = "PyYAML-5.3-cp36-cp36m-win_amd64.whl", hash = "sha256:74782fbd4d4f87ff04159e986886931456a1894c61229be9eaf4de6f6e44b99e"},
-    {file = "PyYAML-5.3-cp37-cp37m-win32.whl", hash = "sha256:24521fa2890642614558b492b473bee0ac1f8057a7263156b02e8b14c88ce6f5"},
-    {file = "PyYAML-5.3-cp37-cp37m-win_amd64.whl", hash = "sha256:1cf708e2ac57f3aabc87405f04b86354f66799c8e62c28c5fc5f88b5521b2dbf"},
-    {file = "PyYAML-5.3-cp38-cp38-win32.whl", hash = "sha256:70024e02197337533eef7b85b068212420f950319cc8c580261963aefc75f811"},
-    {file = "PyYAML-5.3-cp38-cp38-win_amd64.whl", hash = "sha256:cb1f2f5e426dc9f07a7681419fe39cee823bb74f723f36f70399123f439e9b20"},
-    {file = "PyYAML-5.3.tar.gz", hash = "sha256:e9f45bd5b92c7974e59bcd2dcc8631a6b6cc380a904725fce7bc08872e691615"},
+    {file = "PyYAML-5.3.1-cp27-cp27m-win32.whl", hash = "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f"},
+    {file = "PyYAML-5.3.1-cp27-cp27m-win_amd64.whl", hash = "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76"},
+    {file = "PyYAML-5.3.1-cp35-cp35m-win32.whl", hash = "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2"},
+    {file = "PyYAML-5.3.1-cp35-cp35m-win_amd64.whl", hash = "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c"},
+    {file = "PyYAML-5.3.1-cp36-cp36m-win32.whl", hash = "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2"},
+    {file = "PyYAML-5.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648"},
+    {file = "PyYAML-5.3.1-cp37-cp37m-win32.whl", hash = "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a"},
+    {file = "PyYAML-5.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf"},
+    {file = "PyYAML-5.3.1-cp38-cp38-win32.whl", hash = "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97"},
+    {file = "PyYAML-5.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee"},
+    {file = "PyYAML-5.3.1.tar.gz", hash = "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d"},
 ]
 regex = [
-    {file = "regex-2020.2.20-cp27-cp27m-win32.whl", hash = "sha256:99272d6b6a68c7ae4391908fc15f6b8c9a6c345a46b632d7fdb7ef6c883a2bbb"},
-    {file = "regex-2020.2.20-cp27-cp27m-win_amd64.whl", hash = "sha256:974535648f31c2b712a6b2595969f8ab370834080e00ab24e5dbb9d19b8bfb74"},
-    {file = "regex-2020.2.20-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:5de40649d4f88a15c9489ed37f88f053c15400257eeb18425ac7ed0a4e119400"},
-    {file = "regex-2020.2.20-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:82469a0c1330a4beb3d42568f82dffa32226ced006e0b063719468dcd40ffdf0"},
-    {file = "regex-2020.2.20-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:d58a4fa7910102500722defbde6e2816b0372a4fcc85c7e239323767c74f5cbc"},
-    {file = "regex-2020.2.20-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:f1ac2dc65105a53c1c2d72b1d3e98c2464a133b4067a51a3d2477b28449709a0"},
-    {file = "regex-2020.2.20-cp36-cp36m-win32.whl", hash = "sha256:8c2b7fa4d72781577ac45ab658da44c7518e6d96e2a50d04ecb0fd8f28b21d69"},
-    {file = "regex-2020.2.20-cp36-cp36m-win_amd64.whl", hash = "sha256:269f0c5ff23639316b29f31df199f401e4cb87529eafff0c76828071635d417b"},
-    {file = "regex-2020.2.20-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:bed7986547ce54d230fd8721aba6fd19459cdc6d315497b98686d0416efaff4e"},
-    {file = "regex-2020.2.20-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:046e83a8b160aff37e7034139a336b660b01dbfe58706f9d73f5cdc6b3460242"},
-    {file = "regex-2020.2.20-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:b33ebcd0222c1d77e61dbcd04a9fd139359bded86803063d3d2d197b796c63ce"},
-    {file = "regex-2020.2.20-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:bba52d72e16a554d1894a0cc74041da50eea99a8483e591a9edf1025a66843ab"},
-    {file = "regex-2020.2.20-cp37-cp37m-win32.whl", hash = "sha256:01b2d70cbaed11f72e57c1cfbaca71b02e3b98f739ce33f5f26f71859ad90431"},
-    {file = "regex-2020.2.20-cp37-cp37m-win_amd64.whl", hash = "sha256:113309e819634f499d0006f6200700c8209a2a8bf6bd1bdc863a4d9d6776a5d1"},
-    {file = "regex-2020.2.20-cp38-cp38-manylinux1_i686.whl", hash = "sha256:25f4ce26b68425b80a233ce7b6218743c71cf7297dbe02feab1d711a2bf90045"},
-    {file = "regex-2020.2.20-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:9b64a4cc825ec4df262050c17e18f60252cdd94742b4ba1286bcfe481f1c0f26"},
-    {file = "regex-2020.2.20-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:9ff16d994309b26a1cdf666a6309c1ef51ad4f72f99d3392bcd7b7139577a1f2"},
-    {file = "regex-2020.2.20-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:c7f58a0e0e13fb44623b65b01052dae8e820ed9b8b654bb6296bc9c41f571b70"},
-    {file = "regex-2020.2.20-cp38-cp38-win32.whl", hash = "sha256:200539b5124bc4721247a823a47d116a7a23e62cc6695744e3eb5454a8888e6d"},
-    {file = "regex-2020.2.20-cp38-cp38-win_amd64.whl", hash = "sha256:7f78f963e62a61e294adb6ff5db901b629ef78cb2a1cfce3cf4eeba80c1c67aa"},
-    {file = "regex-2020.2.20.tar.gz", hash = "sha256:9e9624440d754733eddbcd4614378c18713d2d9d0dc647cf9c72f64e39671be5"},
+    {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"},
@@ -2058,21 +2304,25 @@ shellingham = [
     {file = "shellingham-1.3.2-py2.py3-none-any.whl", hash = "sha256:7f6206ae169dc1a03af8a138681b3f962ae61cc93ade84d0585cca3aaf770044"},
     {file = "shellingham-1.3.2.tar.gz", hash = "sha256:576c1982bea0ba82fb46c36feb951319d7f42214a82634233f58b40d858a751e"},
 ]
+singledispatch = [
+    {file = "singledispatch-3.4.0.3-py2.py3-none-any.whl", hash = "sha256:833b46966687b3de7f438c761ac475213e53b306740f1abfaa86e1d1aae56aa8"},
+    {file = "singledispatch-3.4.0.3.tar.gz", hash = "sha256:5b06af87df13818d14f08a028e42f566640aef80805c3b50c5056b086e3c2b9c"},
+]
 six = [
-    {file = "six-1.14.0-py2.py3-none-any.whl", hash = "sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c"},
-    {file = "six-1.14.0.tar.gz", hash = "sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a"},
+    {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
+    {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
 ]
 subprocess32 = [
     {file = "subprocess32-3.5.4-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:88e37c1aac5388df41cc8a8456bb49ebffd321a3ad4d70358e3518176de3a56b"},
+    {file = "subprocess32-3.5.4-cp27-cp27mu-manylinux2014_x86_64.whl", hash = "sha256:e45d985aef903c5b7444d34350b05da91a9e0ea015415ab45a21212786c649d0"},
     {file = "subprocess32-3.5.4.tar.gz", hash = "sha256:eb2937c80497978d181efa1b839ec2d9622cf9600a039a79d0e108d1f9aec79d"},
 ]
 termcolor = [
     {file = "termcolor-1.1.0.tar.gz", hash = "sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"},
 ]
 toml = [
-    {file = "toml-0.10.0-py2.7.egg", hash = "sha256:f1db651f9657708513243e61e6cc67d101a39bad662eaa9b5546f789338e07a3"},
-    {file = "toml-0.10.0-py2.py3-none-any.whl", hash = "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e"},
-    {file = "toml-0.10.0.tar.gz", hash = "sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c"},
+    {file = "toml-0.10.1-py2.py3-none-any.whl", hash = "sha256:bda89d5935c2eac546d648028b9901107a595863cb36bae0c73ac804a9b4ce88"},
+    {file = "toml-0.10.1.tar.gz", hash = "sha256:926b612be1e5ce0634a2ca03470f95169cf16f939018233a670519cb4ac58b0f"},
 ]
 tomlkit = [
     {file = "tomlkit-0.5.11-py2.py3-none-any.whl", hash = "sha256:4e1bd6c9197d984528f9ff0cc9db667c317d8881288db50db20eeeb0f6b0380b"},
@@ -2086,19 +2336,25 @@ tornado = [
     {file = "tornado-5.1.1-cp37-cp37m-win32.whl", hash = "sha256:e5f2585afccbff22390cddac29849df463b252b711aa2ce7c5f3f342a5b3b444"},
     {file = "tornado-5.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:8e9d728c4579682e837c92fdd98036bd5cdefa1da2aaf6acf26947e6dd0c01c5"},
     {file = "tornado-5.1.1.tar.gz", hash = "sha256:4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409"},
-    {file = "tornado-6.0.3-cp35-cp35m-win32.whl", hash = "sha256:c9399267c926a4e7c418baa5cbe91c7d1cf362d505a1ef898fde44a07c9dd8a5"},
-    {file = "tornado-6.0.3-cp35-cp35m-win_amd64.whl", hash = "sha256:398e0d35e086ba38a0427c3b37f4337327231942e731edaa6e9fd1865bbd6f60"},
-    {file = "tornado-6.0.3-cp36-cp36m-win32.whl", hash = "sha256:4e73ef678b1a859f0cb29e1d895526a20ea64b5ffd510a2307b5998c7df24281"},
-    {file = "tornado-6.0.3-cp36-cp36m-win_amd64.whl", hash = "sha256:349884248c36801afa19e342a77cc4458caca694b0eda633f5878e458a44cb2c"},
-    {file = "tornado-6.0.3-cp37-cp37m-win32.whl", hash = "sha256:559bce3d31484b665259f50cd94c5c28b961b09315ccd838f284687245f416e5"},
-    {file = "tornado-6.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:abbe53a39734ef4aba061fca54e30c6b4639d3e1f59653f0da37a0003de148c7"},
-    {file = "tornado-6.0.3.tar.gz", hash = "sha256:c845db36ba616912074c5b1ee897f8e0124df269468f25e4fe21fe72f6edd7a9"},
+    {file = "tornado-6.0.4-cp35-cp35m-win32.whl", hash = "sha256:5217e601700f24e966ddab689f90b7ea4bd91ff3357c3600fa1045e26d68e55d"},
+    {file = "tornado-6.0.4-cp35-cp35m-win_amd64.whl", hash = "sha256:c98232a3ac391f5faea6821b53db8db461157baa788f5d6222a193e9456e1740"},
+    {file = "tornado-6.0.4-cp36-cp36m-win32.whl", hash = "sha256:5f6a07e62e799be5d2330e68d808c8ac41d4a259b9cea61da4101b83cb5dc673"},
+    {file = "tornado-6.0.4-cp36-cp36m-win_amd64.whl", hash = "sha256:c952975c8ba74f546ae6de2e226ab3cc3cc11ae47baf607459a6728585bb542a"},
+    {file = "tornado-6.0.4-cp37-cp37m-win32.whl", hash = "sha256:2c027eb2a393d964b22b5c154d1a23a5f8727db6fda837118a776b29e2b8ebc6"},
+    {file = "tornado-6.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:5618f72e947533832cbc3dec54e1dffc1747a5cb17d1fd91577ed14fa0dc081b"},
+    {file = "tornado-6.0.4-cp38-cp38-win32.whl", hash = "sha256:22aed82c2ea340c3771e3babc5ef220272f6fd06b5108a53b4976d0d722bcd52"},
+    {file = "tornado-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:c58d56003daf1b616336781b26d184023ea4af13ae143d9dda65e31e534940b9"},
+    {file = "tornado-6.0.4.tar.gz", hash = "sha256:0fe2d45ba43b00a41cd73f8be321a44936dc1aba233dee979f17a042b83eb6dc"},
 ]
 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.14.5-py2.py3-none-any.whl", hash = "sha256:0cbe98369081fa16bd6f1163d3d0b2a62afa29d402ccfad2bd09fb2668be0956"},
-    {file = "tox-3.14.5.tar.gz", hash = "sha256:676f1e3e7de245ad870f956436b84ea226210587d1f72c8dfb8cd5ac7b6f0e70"},
+    {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.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"},
@@ -2124,30 +2380,29 @@ 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.1-py2-none-any.whl", hash = "sha256:910f4656f54de5993ad9304959ce9bb903f90aadc7c67a0bef07e678014e892d"},
-    {file = "typing_extensions-3.7.4.1-py3-none-any.whl", hash = "sha256:cf8b63fedea4d89bab840ecbb93e75578af28f76f66c35889bd7065f5af88575"},
-    {file = "typing_extensions-3.7.4.1.tar.gz", hash = "sha256:091ecc894d5e908ac75209f10d5b4f118fbdb2eb1ede6a63544054bb1edb41f2"},
+    {file = "typing_extensions-3.7.4.2-py2-none-any.whl", hash = "sha256:f8d2bd89d25bc39dabe7d23df520442fa1d8969b82544370e03d88b5a591c392"},
+    {file = "typing_extensions-3.7.4.2-py3-none-any.whl", hash = "sha256:6e95524d8a547a91e08f404ae485bbb71962de46967e1b71a0cb89af24e761c5"},
+    {file = "typing_extensions-3.7.4.2.tar.gz", hash = "sha256:79ee589a3caca649a9bfd2a8de4709837400dfa00b6cc81962a1e6a1815969ae"},
 ]
 urllib3 = [
     {file = "urllib3-1.24.3-py2.py3-none-any.whl", hash = "sha256:a637e5fae88995b256e3409dc4d52c2e2e0ba32c42a6365fee8bbd2238de3cfb"},
     {file = "urllib3-1.24.3.tar.gz", hash = "sha256:2393a695cd12afedd0dcb26fe5d50d0cf248e5a66f75dbd89a3d4eb333a61af4"},
-    {file = "urllib3-1.25.8-py2.py3-none-any.whl", hash = "sha256:2f3db8b19923a873b3e5256dc9c2dedfa883e33d87c690d9c7913e1f40673cdc"},
-    {file = "urllib3-1.25.8.tar.gz", hash = "sha256:87716c2d2a7121198ebcb7ce7cccf6ce5e9ba539041cfbaeecfb641dc0bf6acc"},
+    {file = "urllib3-1.25.9-py2.py3-none-any.whl", hash = "sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115"},
+    {file = "urllib3-1.25.9.tar.gz", hash = "sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527"},
 ]
 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.7-py2.py3-none-any.whl", hash = "sha256:30ea90b21dabd11da5f509710ad3be2ae47d40ccbc717dfdd2efe4367c10f598"},
-    {file = "virtualenv-20.0.7.tar.gz", hash = "sha256:4a36a96d785428278edd389d9c36d763c5755844beb7509279194647b1ef47f1"},
+    {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.1.8-py2.py3-none-any.whl", hash = "sha256:8fd29383f539be45b20bd4df0dc29c20ba48654a41e661925e612311e9f3c603"},
-    {file = "wcwidth-0.1.8.tar.gz", hash = "sha256:f28b3e8a6483e5d49e7f8949ac1a78314e740333ae305b4ba5defd3e74fb37a8"},
+    {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/poetry/pyproject.toml b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml
index 938b89fe422..76dca20043e 100644
--- a/pkgs/development/tools/poetry/pyproject.toml
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "poetry"
-version = "1.0.5"
+version = "1.0.10"
 description = "Python dependency management and packaging made easy."
 authors = [
     "Sébastien Eustace <sebastien@eustace.io>"
@@ -58,7 +58,10 @@ subprocess32 = { version = "^3.5", python = "~2.7 || ~3.4" }
 importlib-metadata = {version = "~1.1.3", python = "<3.8"}
 
 [tool.poetry.dev-dependencies]
-pytest = "^4.1"
+pytest = [
+    {version = "^4.1", python = "<3.5"},
+    {version = "^5.4.3", python = ">=3.5"}
+]
 pytest-cov = "^2.5"
 mkdocs = { version = "^1.0", python = "~2.7.9 || ^3.4" }
 pymdown-extensions = "^6.0"
@@ -116,3 +119,23 @@ known_third_party = [
     "shellingham",
     "tomlkit",
 ]
+
+
+[tool.black]
+line-length = 88
+include = '\.pyi?$'
+exclude = '''
+/(
+    \.eggs
+  | \.git
+  | \.hg
+  | \.mypy_cache
+  | \.tox
+  | \.venv
+  | _build
+  | buck-out
+  | build
+  | dist
+  | tests/.*/setup.py
+)/
+'''
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json
new file mode 100644
index 00000000000..ab987011a62
--- /dev/null
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json
@@ -0,0 +1,6 @@
+{
+    "owner": "python-poetry",
+    "repo": "poetry",
+    "rev": "d3c9049a18ae33baacfcb5c698777282f2f58128",
+    "sha256": "00qfzjjs6clh93gfl1px3ma9km8qxl3f4z819nmyl58zc8ni3zyv"
+}
\ No newline at end of file
diff --git a/pkgs/development/tools/poetry/update b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update
index 68a60b8c874..d69878ad084 100755
--- a/pkgs/development/tools/poetry/update
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update
@@ -4,6 +4,6 @@
 rev=$(curl -s https://api.github.com/repos/python-poetry/poetry/releases/latest | jq -r '.name')
 nix-prefetch-github --rev "$rev" python-poetry poetry > src.json
 
-src=$(nix-build --expr 'with import ../../../../. {}; fetchFromGitHub (lib.importJSON ./src.json)')
+src=$(nix-build --no-out-link --expr 'with import <nixpkgs> {}; fetchFromGitHub (lib.importJSON ./src.json)')
 cp $src/pyproject.toml $src/poetry.lock .
-nix-build --show-trace --no-out-link ../../../../. -A poetry
+nix-build --expr '(import <nixpkgs> { overlays = [ (import ../../overlay.nix) ]; }).poetry'
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/semver.nix b/pkgs/development/tools/poetry2nix/poetry2nix/semver.nix
index e86b1d3ac66..bf001392e6a 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/semver.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/semver.nix
@@ -39,10 +39,9 @@ let
           # Prune constraint
           parts = builtins.splitVersion c;
           pruned = lib.take ((builtins.length parts) - 1) parts;
-          upper = builtins.toString
-            (
-              (lib.toInt (builtins.elemAt pruned (builtins.length pruned - 1))) + 1
-            );
+          upper = builtins.toString (
+            (lib.toInt (builtins.elemAt pruned (builtins.length pruned - 1))) + 1
+          );
           upperConstraint = builtins.concatStringsSep "." (ireplace (builtins.length pruned - 1) upper pruned);
         in
         operators.">=" v c && operators."<" v upperConstraint;
@@ -69,7 +68,7 @@ let
         op = elemAt mPre 0;
         v = elemAt mPre 1;
       }
-        # Infix operators are range matches
+      # Infix operators are range matches
       else if mIn != null then {
         op = elemAt mIn 1;
         v = {
@@ -82,6 +81,7 @@ let
   satisfiesSemver = version: constraint:
     let
       inherit (parseConstraint constraint) op v;
-    in if constraint == "*" then true else operators."${op}" version v;
+    in
+    if constraint == "*" then true else operators."${op}" version v;
 in
 { inherit satisfiesSemver; }
diff --git a/pkgs/development/tools/poetry2nix/update b/pkgs/development/tools/poetry2nix/update
index 5bea272f8a9..f96763dbee3 100755
--- a/pkgs/development/tools/poetry2nix/update
+++ b/pkgs/development/tools/poetry2nix/update
@@ -15,7 +15,7 @@ mv poetry2nix-master/* .
 
 mkdir build
 cp *.* build/
-cp -r hooks bin build/
+cp -r pkgs hooks bin build/
 rm build/shell.nix build/generate.py build/overlay.nix build/flake.nix
 
 cat > build/README.md << EOF
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 fc4e51801df..620bce7a0ff 100644
--- a/pkgs/development/tools/profiling/sysprof/default.nix
+++ b/pkgs/development/tools/profiling/sysprof/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , desktop-file-utils
 , fetchurl
+, fetchpatch
 , gettext
 , glib
 , gtk3
@@ -25,9 +26,18 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "hnDbTaz3shnTDFdcRlsXyO1nJNut40fyzelUi/8DkQg=";
+    sha256 = "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46";
   };
 
+  patches = [
+    # Fix 32-bit builds
+    # https://gitlab.gnome.org/GNOME/sysprof/merge_requests/24
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/sysprof/commit/5dea152c7728f5a37370ad8a229115833e36b4f6.patch";
+      sha256 = "0c76s7r329pbdlmgvm3grn89iylrxv5wg87craqp937nwk3wb80g";
+    })
+  ];
+
   nativeBuildInputs = [
     desktop-file-utils
     gettext
diff --git a/pkgs/development/tools/proto-contrib/default.nix b/pkgs/development/tools/proto-contrib/default.nix
index 4de843be951..74f47f3f996 100644
--- a/pkgs/development/tools/proto-contrib/default.nix
+++ b/pkgs/development/tools/proto-contrib/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "0ksxic7cypv9gg8q5lkl5bla1n9i65z7b03cx9lwq6252glmf2jk";
   };
 
-  modSha256 = "19cqz13jd95d5vibd10420gg69ldgf6afc51mkglhafgmmif56b0";
+  vendorSha256 = "1ivvq5ch9grdrwqq29flv9821kyb16k0cj6wgj5v0dyn63w420aw";
+
+  doCheck = false;
 
   meta = with lib; {
     description = "Contributed tools and other packages on top of the Go proto package";
diff --git a/pkgs/development/tools/protoc-gen-doc/default.nix b/pkgs/development/tools/protoc-gen-doc/default.nix
index 77c1df6f43e..1a1991be949 100644
--- a/pkgs/development/tools/protoc-gen-doc/default.nix
+++ b/pkgs/development/tools/protoc-gen-doc/default.nix
@@ -11,7 +11,9 @@ buildGoModule {
     sha256 = "004axh2gqc4f115mdxxg59d19hph3rr0bq9d08n3nyl315f590kj";
   };
 
-  modSha256 = "1952ycdkgl00q2s3qmhislhhim15nn6nmlkwbfdvrsfzznqj47rd";
+  vendorSha256 = "17qdpsff8jk7ks5v6ix1rb966x3yvq03vk5bs2zbnxfdra7bv3n6";
+
+  doCheck = false;
 
   meta = with lib; {
     description = "Documentation generator plugin for Google Protocol Buffers";
diff --git a/pkgs/development/tools/prototool/default.nix b/pkgs/development/tools/prototool/default.nix
index 37b0f1fdf8d..e58b89a2736 100644
--- a/pkgs/development/tools/prototool/default.nix
+++ b/pkgs/development/tools/prototool/default.nix
@@ -2,18 +2,20 @@
 
 buildGoModule rec {
   pname = "prototool";
-  version = "1.9.0";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "uber";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ssgvhcnqffhhdx8hnk4lmklip2f6g9i7ifblywfjylb08y7iqgd";
+    sha256 = "02ih9pqnziwl2k4z6c59w1p4bxmb3xki5y33pdfkxqn2467s792g";
   };
 
   nativeBuildInputs = [ makeWrapper ];
 
-  modSha256 = "1gc8kc9mbi3mlh48zx4lcgpsrf8z879f1qj9wfyr66s7wd1ljazg";
+  vendorSha256 = "0gyj0yrri2j4yxmyn4d4vdhaxf2p08srpjcxg9zpaxwv5rrvipav";
+
+  doCheck = false;
 
   postInstall = ''
     wrapProgram "$out/bin/prototool" \
diff --git a/pkgs/development/tools/purescript/spago/spago.nix b/pkgs/development/tools/purescript/spago/spago.nix
index 254a7bc97e4..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.1";
+  version = "0.16.0";
   src = fetchgit {
     url = "https://github.com/purescript/spago.git";
-    sha256 = "09ypbm03ap8xfhq803ra3cc01dxcavckn7nis6hi80dk2xxlhc3d";
-    rev = "d5d206ff0f5c686f8b609fb4bc2e866959cc0144";
+    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/redis-dump/default.nix b/pkgs/development/tools/redis-dump/default.nix
index 2c93ef47d69..2d4acd724d3 100644
--- a/pkgs/development/tools/redis-dump/default.nix
+++ b/pkgs/development/tools/redis-dump/default.nix
@@ -3,7 +3,7 @@
 bundlerApp {
   pname = "redis-dump";
   gemdir = ./.;
-  exes = [ "redis-dump" ];
+  exes = [ "redis-dump" "redis-load" ];
 
   passthru.updateScript = bundlerUpdateScript "redis-dump";
 
diff --git a/pkgs/development/tools/reftools/default.nix b/pkgs/development/tools/reftools/default.nix
index 7e71926b895..440d2f96133 100644
--- a/pkgs/development/tools/reftools/default.nix
+++ b/pkgs/development/tools/reftools/default.nix
@@ -8,9 +8,10 @@ buildGoModule rec {
   version = "2019-12-21";
   rev = "65925cf013156409e591f7a1be4df96f640d02f4";
 
-  modSha256 = "1sihahgkcj018ixbnz58npfh4drhqip2xmc9p7lq3an8japb9nyx";
+  vendorSha256 = null;
+
+  doCheck = false;
 
-  goPackagePath = "github.com/davidrjenni/reftools";
   excludedPackages = "\\(cmd/fillswitch/test-fixtures\\)";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/tools/renderizer/default.nix b/pkgs/development/tools/renderizer/default.nix
index 93634f935d1..2b2c57135cb 100644
--- a/pkgs/development/tools/renderizer/default.nix
+++ b/pkgs/development/tools/renderizer/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "1bip12pcn8bqgph7vd7bzzadwbyqh80fx7gqciv9fchycwsj04rf";
   };
 
-  modSha256 = "0ss5l2n1sl1i2hvxsdzy6p61mnnxmm6h256jvv0p0ajynx8g538q";
+  vendorSha256 = "13z357ww4j5bmmy8ag6d6gd5b2dib8kby73q8317pqnqzaxrrbcj";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "CLI to render Go template text files";
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 9178f53bfde..e6478086f79 100644
--- a/pkgs/development/tools/richgo/default.nix
+++ b/pkgs/development/tools/richgo/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "07ipa54c4mzm6yizgvkm6x5yim1xgv3f0xdxg35qziacdfcwd6m4";
   };
 
-  modSha256 = "12wbjfqy6qnapm3f2pz1ci1gvc0y8kzr8c99kihyh1jv9r3zy1wz";
+  vendorSha256 = "1nvk3akjwfcbvif1w4cglsqplcajlwq3mnvk9b75nmn9qaqfbfjf";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/rq/default.nix b/pkgs/development/tools/rq/default.nix
index 5fe73ed33f0..68d3bfce06b 100644
--- a/pkgs/development/tools/rq/default.nix
+++ b/pkgs/development/tools/rq/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, rustPlatform, libiconv, llvmPackages, v8 }:
+{ stdenv, lib, fetchFromGitHub, rustPlatform, libiconv, llvmPackages, v8 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rq";
@@ -13,7 +13,8 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "0c5vwy3c5ji602dj64z6jqvcpi2xff03zvjbnwihb3ydqwnb3v67";
 
-  buildInputs = [ llvmPackages.clang-unwrapped v8 ];
+  buildInputs = [ llvmPackages.clang-unwrapped v8 ]
+  ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
   configurePhase = ''
     export LIBCLANG_PATH="${llvmPackages.clang-unwrapped}/lib"
@@ -25,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/rshell/default.nix b/pkgs/development/tools/rshell/default.nix
index 5087b811ac0..4e3e12a8eeb 100644
--- a/pkgs/development/tools/rshell/default.nix
+++ b/pkgs/development/tools/rshell/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "rshell";
-  version = "0.0.27";
+  version = "0.0.28";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15pm60jfmr5nms43nrh5jlpz4lxxfhaahznfcys6nc4g80r2fwr2";
+    sha256 = "1crnlv0khplpibl9mj3flrgp877pnr1xz6hnnsi6hk3kfbc6p3nj";
   };
 
   propagatedBuildInputs = [ pyserial pyudev ];
diff --git a/pkgs/development/tools/rtags/default.nix b/pkgs/development/tools/rtags/default.nix
index 18efcb91353..0ebeab72df3 100644
--- a/pkgs/development/tools/rtags/default.nix
+++ b/pkgs/development/tools/rtags/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "rtags";
-  version = "2.34";
+  version = "2.38";
   nativeBuildInputs = [ cmake pkgconfig ];
   buildInputs = [ llvmPackages.llvm openssl emacs ]
     ++ lib.optionals stdenv.cc.isGNU [ llvmPackages.clang-unwrapped ]
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     rev = "refs/tags/v${version}";
     fetchSubmodules = true;
     url = "https://github.com/andersbakken/rtags.git";
-    sha256 = "1smp2r9lkvf9rpjjy7dink9ncdakgsa31f2kdxvcpyggfz275m1n";
+    sha256 = "1iwvp7a69sj3wqjgcnyh581qrpicxzi2lfjkxqpabpyjkl5nk7hh";
     # unicode file names lead to different checksums on HFS+ vs. other
     # filesystems because of unicode normalisation
     postFetch = ''
diff --git a/pkgs/development/tools/run/default.nix b/pkgs/development/tools/run/default.nix
index 61e04a774aa..41d1a8a29fd 100644
--- a/pkgs/development/tools/run/default.nix
+++ b/pkgs/development/tools/run/default.nix
@@ -1,16 +1,18 @@
 { stdenv, buildGoModule, fetchFromGitHub }:
 buildGoModule rec {
   pname = "run";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "TekWizely";
     repo = "run";
     rev = "v${version}";
-    sha256 = "0q9f8lzrzybdablqph5wihqhfbfzb3bbnnxvhy7g5ccg1kzy7mgp";
+    sha256 = "17n11lqhywq4z62w2rakdq80v7mxf83rgln19vj4v4nxpwd2hjjw";
   };
 
-  modSha256 = "0s2lw9q5jskj41jqr8bv5w45pkrp2s0yfd2hgjgsd0q4ifm07k7s";
+  vendorSha256 = "1g5rmiiwqpm8gky9yr5f2a7zsjjmm9i12r7yxj9cz7y3rmw9sw8c";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Easily manage and invoke small scripts and wrappers";
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-deny/default.nix b/pkgs/development/tools/rust/cargo-deny/default.nix
index deba6cc674c..34126a7713f 100644
--- a/pkgs/development/tools/rust/cargo-deny/default.nix
+++ b/pkgs/development/tools/rust/cargo-deny/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deny";
-  version = "0.6.7";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = pname;
     rev = version;
-    sha256 = "1d7zd2wpvfz1vq5ik67m6s1mscivh8b3kz4bfckw3cazk68vn9q1";
+    sha256 = "0mfccjcll7dxrhdi2bhfbggmkqdp8cmq5vf8vbb05qzpvlswvkf7";
   };
 
-  cargoSha256 = "0jy10yfd9d5r0ildyxszs1ppzyd4ninl7lihdnwjqm6qifr1m5rp";
+  cargoSha256 = "1gp5m432273mr0zwq1kdswdjgp0kajr0imymqyc4yj9i931by1xv";
 
   nativeBuildInputs = [ perl pkgconfig ];
 
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-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-insta/cargo-lock.patch b/pkgs/development/tools/rust/cargo-insta/cargo-lock.patch
new file mode 100644
index 00000000000..96f7d9ffb66
--- /dev/null
+++ b/pkgs/development/tools/rust/cargo-insta/cargo-lock.patch
@@ -0,0 +1,780 @@
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -0,0 +1,777 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "addr2line"
++version = "0.12.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a49806b9dadc843c61e7c97e72490ad7f7220ae249012fbda9ad0609457c0543"
++dependencies = [
++ "gimli",
++]
++
++[[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.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
++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 = "atty"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
++dependencies = [
++ "hermit-abi",
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "autocfg"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
++
++[[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 = "base64"
++version = "0.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
++dependencies = [
++ "byteorder",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++
++[[package]]
++name = "block-buffer"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
++dependencies = [
++ "block-padding",
++ "byte-tools",
++ "byteorder",
++ "generic-array",
++]
++
++[[package]]
++name = "block-padding"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
++dependencies = [
++ "byte-tools",
++]
++
++[[package]]
++name = "bstr"
++version = "0.2.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "31accafdb70df7871592c058eca3985b71104e15ac32f64706022c58867da931"
++dependencies = [
++ "memchr",
++]
++
++[[package]]
++name = "byte-tools"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
++
++[[package]]
++name = "byteorder"
++version = "1.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
++
++[[package]]
++name = "cargo-insta"
++version = "0.16.0"
++dependencies = [
++ "clap",
++ "console",
++ "difference",
++ "glob",
++ "insta",
++ "proc-macro2",
++ "serde",
++ "serde_json",
++ "structopt",
++ "syn",
++ "walkdir",
++]
++
++[[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 = "clicolors-control"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90082ee5dcdd64dc4e9e0d37fbf3ee325419e39c0092191e0393df65518f741e"
++dependencies = [
++ "atty",
++ "lazy_static",
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "console"
++version = "0.10.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2586208b33573b7f76ccfbe5adb076394c88deaf81b84d7213969805b0a952a7"
++dependencies = [
++ "clicolors-control",
++ "encode_unicode",
++ "lazy_static",
++ "libc",
++ "regex",
++ "terminal_size",
++ "termios",
++ "unicode-width",
++ "winapi",
++]
++
++[[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",
++]
++
++[[package]]
++name = "difference"
++version = "2.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
++
++[[package]]
++name = "digest"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
++dependencies = [
++ "generic-array",
++]
++
++[[package]]
++name = "dtoa"
++version = "0.4.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b"
++
++[[package]]
++name = "encode_unicode"
++version = "0.3.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
++
++[[package]]
++name = "fake-simd"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
++
++[[package]]
++name = "fnv"
++version = "1.0.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
++
++[[package]]
++name = "generic-array"
++version = "0.12.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
++dependencies = [
++ "typenum",
++]
++
++[[package]]
++name = "gimli"
++version = "0.21.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c"
++
++[[package]]
++name = "glob"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
++
++[[package]]
++name = "globset"
++version = "0.4.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7ad1da430bd7281dde2576f44c84cc3f0f7b475e7202cd503042dff01a8c8120"
++dependencies = [
++ "aho-corasick",
++ "bstr",
++ "fnv",
++ "log",
++ "regex",
++]
++
++[[package]]
++name = "globwalk"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "178270263374052c40502e9f607134947de75302c1348d1a0e31db67c1691446"
++dependencies = [
++ "bitflags",
++ "ignore",
++ "walkdir",
++]
++
++[[package]]
++name = "heck"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
++dependencies = [
++ "unicode-segmentation",
++]
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b9586eedd4ce6b3c498bc3b4dd92fc9f11166aa908a914071953768066c67909"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "ignore"
++version = "0.4.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "22dcbf2a4a289528dbef21686354904e1c694ac642610a9bff9e7df730d9ec72"
++dependencies = [
++ "crossbeam-utils",
++ "globset",
++ "lazy_static",
++ "log",
++ "memchr",
++ "regex",
++ "same-file",
++ "thread_local",
++ "walkdir",
++ "winapi-util",
++]
++
++[[package]]
++name = "insta"
++version = "0.16.0"
++dependencies = [
++ "backtrace",
++ "console",
++ "difference",
++ "globwalk",
++ "lazy_static",
++ "pest",
++ "pest_derive",
++ "ron",
++ "serde",
++ "serde_json",
++ "serde_yaml",
++]
++
++[[package]]
++name = "itoa"
++version = "0.4.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
++
++[[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 = "linked-hash-map"
++version = "0.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
++
++[[package]]
++name = "log"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
++dependencies = [
++ "cfg-if",
++]
++
++[[package]]
++name = "maplit"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
++
++[[package]]
++name = "memchr"
++version = "2.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
++
++[[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 = "opaque-debug"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
++
++[[package]]
++name = "pest"
++version = "2.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53"
++dependencies = [
++ "ucd-trie",
++]
++
++[[package]]
++name = "pest_derive"
++version = "2.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0"
++dependencies = [
++ "pest",
++ "pest_generator",
++]
++
++[[package]]
++name = "pest_generator"
++version = "2.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55"
++dependencies = [
++ "pest",
++ "pest_meta",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "pest_meta"
++version = "2.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d"
++dependencies = [
++ "maplit",
++ "pest",
++ "sha-1",
++]
++
++[[package]]
++name = "proc-macro-error"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "98e9e4b82e0ef281812565ea4751049f1bdcdfccda7d3f459f2e138a40c08678"
++dependencies = [
++ "proc-macro-error-attr",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "version_check",
++]
++
++[[package]]
++name = "proc-macro-error-attr"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4f5444ead4e9935abd7f27dc51f7e852a0569ac888096d5ec2499470794e2e53"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++ "syn-mid",
++ "version_check",
++]
++
++[[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 = "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 = "ron"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2ece421e0c4129b90e4a35b6f625e472e96c552136f5093a2f4fa2bbb75a62d5"
++dependencies = [
++ "base64",
++ "bitflags",
++ "serde",
++]
++
++[[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 = "same-file"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
++dependencies = [
++ "winapi-util",
++]
++
++[[package]]
++name = "serde"
++version = "1.0.112"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "736aac72d1eafe8e5962d1d1c3d99b0df526015ba40915cb3c49d042e92ec243"
++dependencies = [
++ "serde_derive",
++]
++
++[[package]]
++name = "serde_derive"
++version = "1.0.112"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bf0343ce212ac0d3d6afd9391ac8e9c9efe06b533c8d33f660f6390cc4093f57"
++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 = "serde_yaml"
++version = "0.8.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ae3e2dd40a7cdc18ca80db804b7f461a39bb721160a85c9a1fa30134bf3c02a5"
++dependencies = [
++ "dtoa",
++ "linked-hash-map",
++ "serde",
++ "yaml-rust",
++]
++
++[[package]]
++name = "sha-1"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
++dependencies = [
++ "block-buffer",
++ "digest",
++ "fake-simd",
++ "opaque-debug",
++]
++
++[[package]]
++name = "strsim"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
++
++[[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.31"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b5304cfdf27365b7585c25d4af91b35016ed21ef88f17ced89c7093b43dba8b6"
++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 = "terminal_size"
++version = "0.1.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8038f95fc7a6f351163f4b964af631bd26c9e828f7db085f2a84aca56f70d13b"
++dependencies = [
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "termios"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6f0fcee7b24a25675de40d5bb4de6e41b0df07bc9856295e7e2b3a3600c400c2"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "textwrap"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
++dependencies = [
++ "unicode-width",
++]
++
++[[package]]
++name = "thread_local"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
++dependencies = [
++ "lazy_static",
++]
++
++[[package]]
++name = "typenum"
++version = "1.12.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
++
++[[package]]
++name = "ucd-trie"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
++
++[[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.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
++
++[[package]]
++name = "vec_map"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
++
++[[package]]
++name = "version_check"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
++
++[[package]]
++name = "walkdir"
++version = "2.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
++dependencies = [
++ "same-file",
++ "winapi",
++ "winapi-util",
++]
++
++[[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",
++ "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 = "yaml-rust"
++version = "0.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "39f0c922f1a334134dc2f7a8b67dc5d25f0735263feec974345ff706bcf20b0d"
++dependencies = [
++ "linked-hash-map",
++]
diff --git a/pkgs/development/tools/rust/cargo-insta/default.nix b/pkgs/development/tools/rust/cargo-insta/default.nix
new file mode 100644
index 00000000000..e621fa9b972
--- /dev/null
+++ b/pkgs/development/tools/rust/cargo-insta/default.nix
@@ -0,0 +1,27 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-insta";
+  version = "0.16.0";
+
+  src = fetchFromGitHub {
+    owner = "mitsuhiko";
+    repo = "insta";
+    rev = version;
+    sha256 = "1lcbdzh139lhmpz3pyik8nbgrbfc42z9ydz2hkg2lzjdpfdsz3ag";
+  };
+
+  cargoPatches = [ ./cargo-lock.patch ];
+  cargoSha256 = "0qjzbcaznnmb0p0r23s82jjbfs5mhhkacg26lf8fq4vvlkr1hsqf";
+
+  patches = [ ./ignore-rustfmt-test.patch ];
+
+  cargoBuildFlags = [ "-p cargo-insta" ];
+
+  meta = with lib; {
+    description = "A Cargo subcommand for snapshot testing";
+    homepage = "https://github.com/mitsuhiko/insta";
+    license = licenses.asl20;
+    maintainers = with lib.maintainers; [ oxalica ];
+  };
+}
diff --git a/pkgs/development/tools/rust/cargo-insta/ignore-rustfmt-test.patch b/pkgs/development/tools/rust/cargo-insta/ignore-rustfmt-test.patch
new file mode 100644
index 00000000000..6c38158d596
--- /dev/null
+++ b/pkgs/development/tools/rust/cargo-insta/ignore-rustfmt-test.patch
@@ -0,0 +1,10 @@
+--- a/src/runtime.rs
++++ b/src/runtime.rs
+@@ -85,6 +85,7 @@ fn format_rust_expression(value: &str) -> Cow<'_, str> {
+ }
+ 
+ #[test]
++#[ignore]
+ fn test_format_rust_expression() {
+     use crate::assert_snapshot;
+     assert_snapshot!(format_rust_expression("vec![1,2,3]"), @"vec![1, 2, 3]");
diff --git a/pkgs/development/tools/rust/cargo-make/Cargo.lock b/pkgs/development/tools/rust/cargo-make/Cargo.lock
index 05868a4e1c2..3be32ff068e 100644
--- a/pkgs/development/tools/rust/cargo-make/Cargo.lock
+++ b/pkgs/development/tools/rust/cargo-make/Cargo.lock
@@ -1,18 +1,27 @@
 # This file is automatically @generated by Cargo.
 # It is not intended for manual editing.
 [[package]]
-name = "adler32"
-version = "1.0.4"
+name = "adler"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2"
+checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
 
 [[package]]
 name = "aho-corasick"
-version = "0.7.10"
+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 = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
+checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
 dependencies = [
- "memchr",
+ "memchr 2.3.3",
 ]
 
 [[package]]
@@ -21,7 +30,7 @@ version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
 dependencies = [
- "winapi",
+ "winapi 0.3.9",
 ]
 
 [[package]]
@@ -38,9 +47,9 @@ checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
 
 [[package]]
 name = "attohttpc"
-version = "0.13.0"
+version = "0.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5db1932a9d70d5091139d6b0e04ec6a4d9f9184041c15d71a5ef954cb3c5312"
+checksum = "fe174d1b67f7b2bafed829c09db039301eb5841f66e43be2cf60b326e7f8e2cc"
 dependencies = [
  "flate2",
  "http",
@@ -58,14 +67,14 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
 dependencies = [
  "hermit-abi",
  "libc",
- "winapi",
+ "winapi 0.3.9",
 ]
 
 [[package]]
 name = "autocfg"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
+checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
 
 [[package]]
 name = "base64"
@@ -75,9 +84,9 @@ checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
 
 [[package]]
 name = "base64"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53d1ccbaf7d9ec9537465a97bf19edc1a4e158ecb49fc16178202238c569cc42"
+checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
 
 [[package]]
 name = "bitflags"
@@ -98,13 +107,13 @@ dependencies = [
 
 [[package]]
 name = "bytes"
-version = "0.5.4"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1"
+checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
 
 [[package]]
 name = "cargo-make"
-version = "0.30.7"
+version = "0.32.2"
 dependencies = [
  "ci_info",
  "clap",
@@ -133,9 +142,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.52"
+version = "1.0.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d87b23d6a92cd03af510a5ade527033f6aa6fa92161e2d5863a907d4c5e31d"
+checksum = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381"
 
 [[package]]
 name = "cfg-if"
@@ -144,19 +153,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
 
 [[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.1"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19c5f9baeac8a1176ca7fc58a0cc1abadd84d360365a93d1dd31e926f3f502b"
+checksum = "24f638c70e8c5753795cc9a8c07c44da91554a09e4cf11a7326e8161b0a3c45e"
 dependencies = [
  "envmnt",
 ]
 
 [[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",
@@ -169,13 +188,13 @@ dependencies = [
 
 [[package]]
 name = "colored"
-version = "1.9.3"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59"
+checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd"
 dependencies = [
  "atty",
- "lazy_static",
- "winapi",
+ "lazy_static 1.4.0",
+ "winapi 0.3.9",
 ]
 
 [[package]]
@@ -217,58 +236,58 @@ checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
 dependencies = [
  "autocfg",
  "cfg-if",
- "lazy_static",
+ "lazy_static 1.4.0",
 ]
 
 [[package]]
 name = "dirs"
-version = "2.0.2"
+version = "3.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3"
+checksum = "142995ed02755914747cc6ca76fc7e4583cd18578746716d0508ea6ed558b9ff"
 dependencies = [
- "cfg-if",
  "dirs-sys",
 ]
 
 [[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",
+ "winapi 0.3.9",
 ]
 
 [[package]]
 name = "duckscript"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b666b2baf849932922921c2ff4bdb30e49835468626561d18fda4949751b55"
+checksum = "5f4c3da85470786f086bd14c0b299092715a99f8d8bb0ac2b787cbaab71e6ba6"
 dependencies = [
  "fsio",
 ]
 
 [[package]]
 name = "duckscriptsdk"
-version = "0.4.0"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc9026058fdb6382c5fc62bc7a789d18b796236ddf48bee5a01332f576c1c109"
+checksum = "15dee0b26565d497303de383d0e20dbb5f6e95cdcba902aee109dc55fe62b8af"
 dependencies = [
  "attohttpc",
- "base64 0.12.1",
+ "base64 0.12.3",
  "cfg-if",
  "duckscript",
  "fs_extra",
  "fsio",
+ "ftp",
  "glob",
  "home",
  "java-properties",
  "meval",
  "num_cpus",
  "rand",
+ "serde_json",
  "uname",
  "walkdir",
  "which",
@@ -341,9 +360,9 @@ checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
 
 [[package]]
 name = "envmnt"
-version = "0.8.2"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fba7e7d8c007e12db7b3bd6f04b8e47e206c9173d9c75413a042ccc941723c8"
+checksum = "a2d328fc287c61314c4a61af7cfdcbd7e678e39778488c7cb13ec133ce0f4059"
 dependencies = [
  "fsio",
  "indexmap",
@@ -360,9 +379,9 @@ dependencies = [
 
 [[package]]
 name = "flate2"
-version = "1.0.14"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cfff41391129e0a856d6d822600b8d71179d46879e310417eb9c762eb178b42"
+checksum = "766d0e77a2c1502169d4a93ff3b8c15a71fd946cd0126309752104e5f3c46d94"
 dependencies = [
  "cfg-if",
  "crc32fast",
@@ -372,9 +391,9 @@ dependencies = [
 
 [[package]]
 name = "fnv"
-version = "1.0.6"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "foreign-types"
@@ -399,15 +418,26 @@ checksum = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674"
 
 [[package]]
 name = "fsio"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2131cb03096f67334dfba2f0bc46afc5564b08a919d042c6e217e2665741fc54"
+checksum = "c1fd087255f739f4f1aeea69f11b72f8080e9c2e7645cd06955dad4a178a49e3"
 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 = "getopts"
 version = "0.2.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -440,10 +470,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
 
 [[package]]
+name = "hashbrown"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
 name = "hermit-abi"
-version = "0.1.12"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61565ff7aaace3525556587bd2dc31d4a07071957be715e63ce7b1eccf51a8f4"
+checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
 dependencies = [
  "libc",
 ]
@@ -454,7 +493,7 @@ version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654"
 dependencies = [
- "winapi",
+ "winapi 0.3.9",
 ]
 
 [[package]]
@@ -481,19 +520,20 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "1.3.2"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "076f042c5b7b98f31d205f1249267e12a6518c1481e9dae9764af19b707d2292"
+checksum = "86b45e59b16c76b11bf9738fd5d38879d3bd28ad292d7b313608becb17ae2df9"
 dependencies = [
  "autocfg",
+ "hashbrown",
  "serde",
 ]
 
 [[package]]
 name = "itoa"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"
+checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
 
 [[package]]
 name = "java-properties"
@@ -502,10 +542,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "caf4418ade5bde22a283a7f2fb537ea397ec102718f259f2630714e7a5b389fa"
 dependencies = [
  "encoding",
- "regex",
+ "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"
@@ -513,15 +569,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.69"
+version = "0.2.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005"
+checksum = "755456fae044e6fa1ebbbd1b3e902ae19e73097ed4ed87bb79934a867c007bc3"
 
 [[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",
 ]
@@ -534,6 +590,15 @@ 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"
@@ -550,11 +615,11 @@ dependencies = [
 
 [[package]]
 name = "miniz_oxide"
-version = "0.3.6"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa679ff6578b1cddee93d7e82e263b94a575e0bfced07284eb0c037c1d2416a5"
+checksum = "be0f75932c1f6cfae3c04000e40114adf955636e19040f9c0a2c380702aa1c7f"
 dependencies = [
- "adler32",
+ "adler",
 ]
 
 [[package]]
@@ -563,7 +628,7 @@ version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b0d88c06fe90d5ee94048ba40409ef1d9315d86f6f38c2efdaad4fb50c58b2d"
 dependencies = [
- "lazy_static",
+ "lazy_static 1.4.0",
  "libc",
  "log",
  "openssl",
@@ -588,6 +653,47 @@ 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"
@@ -599,14 +705,14 @@ dependencies = [
 
 [[package]]
 name = "openssl"
-version = "0.10.29"
+version = "0.10.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cee6d85f4cb4c4f59a6a85d5b68a233d280c82e29e822913b9c8b129fbf20bdd"
+checksum = "8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4"
 dependencies = [
  "bitflags",
  "cfg-if",
  "foreign-types",
- "lazy_static",
+ "lazy_static 1.4.0",
  "libc",
  "openssl-sys",
 ]
@@ -619,9 +725,9 @@ checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.55"
+version = "0.9.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7717097d810a0f2e2323f9e5d11e71608355e24828410b55b9d4f18aa5f9a5d8"
+checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"
 dependencies = [
  "autocfg",
  "cc",
@@ -638,30 +744,30 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
 
 [[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 = "ppv-lite86"
-version = "0.2.6"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
+checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.12"
+version = "1.0.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8872cf6f48eee44265156c111456a700ab3483686b3f96df4cf5481c89157319"
+checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
 dependencies = [
  "unicode-xid",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.4"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c1f4b0efa5fc5e8ceb705136bfee52cfdb6a4e3509f770b478cd6ed434232a7"
+checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
 dependencies = [
  "proc-macro2",
 ]
@@ -709,9 +815,9 @@ dependencies = [
 
 [[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"
@@ -726,36 +832,55 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.3.7"
+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 = "a6020f034922e3194c711b82a627453881bc4682166cabb07134a10c26ba7692"
+checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
 dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
- "thread_local",
+ "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.6.17"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae"
+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.2"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
 dependencies = [
- "winapi",
+ "winapi 0.3.9",
 ]
 
 [[package]]
 name = "run_script"
-version = "0.6.2"
+version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9527b8b68ef929243a3e8ad7471a2d80f6ac23b810aafd3df4a2e5212d8dacc1"
+checksum = "a8e8fc35067815a04a35fe2144361e1257b0f1041f0d413664f38e44d1a73cb4"
 dependencies = [
  "fsio",
 ]
@@ -780,9 +905,9 @@ checksum = "02b506bd796703b88d74a3edb529acde6c71d81bb078c392eecd60a745cb1d2f"
 
 [[package]]
 name = "rusty-hook"
-version = "0.11.1"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27138b73a8ce63ae918707a5e3b57f9b0c0842a57b82f0e43474cf4e3aaf0ff4"
+checksum = "96cee9be61be7e1cbadd851e58ed7449c29c620f00b23df937cb9cbc04ac21a3"
 dependencies = [
  "ci_info",
  "getopts",
@@ -792,9 +917,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.4"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed3d612bc64430efeb3f7ee6ef26d590dce0c43249217bddc62112540c7941e1"
+checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
 
 [[package]]
 name = "same-file"
@@ -807,19 +932,19 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.18"
+version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "039c25b130bd8c1321ee2d7de7fde2659fa9c2744e4bb29711cfc852ea53cd19"
+checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
 dependencies = [
- "lazy_static",
- "winapi",
+ "lazy_static 1.4.0",
+ "winapi 0.3.9",
 ]
 
 [[package]]
 name = "security-framework"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f331b9025654145cd425b9ded0caf8f5ae0df80d418b326e2dc1c3dc5eb0620"
+checksum = "64808902d7d99f78eaddd2b4e2509713babc3dc3c85ad6f4c447680f3c01e535"
 dependencies = [
  "bitflags",
  "core-foundation",
@@ -840,9 +965,9 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "0.9.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+checksum = "394cec28fa623e00903caf7ba4fa6fb9a0e260280bb8cdbbba029611108a0190"
 dependencies = [
  "semver-parser",
 ]
@@ -855,15 +980,15 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
 name = "serde"
-version = "1.0.106"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399"
+checksum = "e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5"
 
 [[package]]
 name = "serde_derive"
-version = "1.0.106"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c"
+checksum = "609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -872,9 +997,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.52"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7894c8ed05b7a3a279aeb79025fdec1d3158080b75b98a08faf2806bb799edd"
+checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c"
 dependencies = [
  "itoa",
  "ryu",
@@ -887,16 +1012,10 @@ version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "185a52ee351c1001753c9e3b2eb48c525ff7f51803a4f2cef4365b5c3b743f65"
 dependencies = [
- "regex",
+ "regex 1.3.9",
 ]
 
 [[package]]
-name = "smallvec"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4"
-
-[[package]]
 name = "strsim"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -904,9 +1023,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
 
 [[package]]
 name = "syn"
-version = "1.0.19"
+version = "1.0.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8e5aa70697bb26ee62214ae3288465ecec0000f05182f039b477001f08f5ae7"
+checksum = "e69abc24912995b3038597a7a593be5053eb0fb44f3cc5beec0deb421790c1f4"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -924,7 +1043,7 @@ dependencies = [
  "rand",
  "redox_syscall",
  "remove_dir_all",
- "winapi",
+ "winapi 0.3.9",
 ]
 
 [[package]]
@@ -937,15 +1056,70 @@ dependencies = [
 ]
 
 [[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",
+ "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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117"
+
+[[package]]
 name = "toml"
 version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -974,24 +1148,24 @@ dependencies = [
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.12"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
+checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
 dependencies = [
- "smallvec",
+ "tinyvec",
 ]
 
 [[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"
@@ -1006,18 +1180,25 @@ dependencies = [
 
 [[package]]
 name = "users"
-version = "0.9.1"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c72f4267aea0c3ec6d07eaabea6ead7c5ddacfafc5e22bcf8d186706851fb4cf"
+checksum = "aa4227e95324a443c9fcb06e03d4d85e91aabe9a5a02aa818688b6918b6af486"
 dependencies = [
  "libc",
+ "log",
 ]
 
 [[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.8"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168"
+checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
 
 [[package]]
 name = "vec_map"
@@ -1032,7 +1213,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
 dependencies = [
  "same-file",
- "winapi",
+ "winapi 0.3.9",
  "winapi-util",
 ]
 
@@ -1044,30 +1225,43 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
 
 [[package]]
 name = "which"
-version = "3.1.1"
+version = "4.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"
+checksum = "87c14ef7e1b8b8ecfc75d5eca37949410046e66f15d185c01d70824f1f8111ef"
 dependencies = [
  "libc",
+ "thiserror",
 ]
 
 [[package]]
 name = "whoami"
-version = "0.8.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08eb844b158ea881e81b94556eede7f7e306e4c7b976aad88f49e6e36dec391"
+checksum = "7884773ab69074615cb8f8425d0e53f11710786158704fca70f53e71b0e05504"
 
 [[package]]
 name = "winapi"
-version = "0.3.8"
+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 = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
+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"
@@ -1079,7 +1273,7 @@ version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
 dependencies = [
- "winapi",
+ "winapi 0.3.9",
 ]
 
 [[package]]
diff --git a/pkgs/development/tools/rust/cargo-make/default.nix b/pkgs/development/tools/rust/cargo-make/default.nix
index 98f21b23d48..f02ee5e5107 100644
--- a/pkgs/development/tools/rust/cargo-make/default.nix
+++ b/pkgs/development/tools/rust/cargo-make/default.nix
@@ -1,8 +1,10 @@
-{ stdenv, fetchurl, runCommand, fetchFromGitHub, rustPlatform, Security, openssl, pkg-config }:
+{ stdenv, fetchurl, runCommand, fetchFromGitHub, rustPlatform, Security, openssl, pkg-config
+, SystemConfiguration
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-make";
-  version = "0.30.7";
+  version = "0.32.2";
 
   src =
     let
@@ -10,7 +12,7 @@ rustPlatform.buildRustPackage rec {
         owner = "sagiegurari";
         repo = pname;
         rev = version;
-        sha256 = "0i8jf3161qqazp8cy3kzn2cw7zrcv1ijf2w3s8d8l0y2i2b25cv1";
+        sha256 = "0l0pislc7pgx1m68kirvadraq88c86mm1k46wbz3a47ph2d4g912";
       };
     in
     runCommand "source" {} ''
@@ -22,9 +24,9 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ openssl ]
-    ++ stdenv.lib.optionals stdenv.isDarwin [ Security ];
+    ++ stdenv.lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
-  cargoSha256 = "08mn1ckvyffys9wqnvva7w1qzvarqvmnkpliv118vnnr072jnc6y";
+  cargoSha256 = "16ygkh8sbb37nfc41shxg9nh2mbszyschbqrrr1gr7xzf1z36ipp";
 
   # Some tests fail because they need network access.
   # However, Travis ensures a proper build.
@@ -37,6 +39,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 a6089ffeac2..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.11";
+  version = "0.1.13";
 
   src = fetchFromGitHub {
     owner = "est31";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1drz0slv33p4spm52sb5lnmpb83q8l7k3cvp0zcsinbjv8glvvnv";
+    sha256 = "0wxpzrcrdxlihzxzqmrhii5bfxknliqb4d5mka4k42x5vim8pq2f";
   };
 
-  cargoSha256 = "13ynab3s563n2xwkls7nmksis0ngx5klw9wc9bpnxgc5na9k84ll";
+  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 35c0b9530eb..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.3.0";
+  version = "7.5.0";
 
   src = fetchFromGitHub {
     owner = "passcod";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0l1aalb8ans7scljrza7akhi821jbpqgn6sa8kgd8sys83r93fkj";
+    sha256 = "181v922nx8152ymszig1kw6y0mnix6si1zfnv6vqgr5r53pwkbc1";
   };
 
-  cargoSha256 = "07zkfpw0zyakpsm1mg525ibpsfs9swwmijb0xfsk3nbv66caqd04";
+  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 bc0ae5d33fe..655d726e66e 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.2";
+  version = "0.14.3";
 
   src = fetchFromGitHub {
     owner = "eqrion";
     repo = "cbindgen";
     rev = "v${version}";
-    sha256 = "15mk7q89rs723c7i9wwq4rrvakwh834wvrsmsnayji5k1kwaj351";
+    sha256 = "0pw55334i10k75qkig8bgcnlsy613zw2p5j4xyz8v71s4vh1a58j";
   };
 
-  cargoSha256 = "03irndd48ck62chm4vmlcnfm98gwd86xm1ssq9glw3b3y0n6x845";
+  cargoSha256 = "0088ijnjhqfvdb1wxy9jc7hq8c0yxgj5brlg68n9vws1mz9rilpy";
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/development/tools/rust/maturin/Cargo.lock.patch b/pkgs/development/tools/rust/maturin/Cargo.lock.patch
deleted file mode 100644
index 9f7d46d4901..00000000000
--- a/pkgs/development/tools/rust/maturin/Cargo.lock.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-index 09ecb81..c37c646 100644
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -733,7 +733,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
- 
- [[package]]
- name = "maturin"
--version = "0.8.0-beta.1"
-+version = "0.8.0"
- dependencies = [
-  "base64 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
-  "bytesize 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/pkgs/development/tools/rust/maturin/default.nix b/pkgs/development/tools/rust/maturin/default.nix
index e4ee97d0242..723ea94152c 100644
--- a/pkgs/development/tools/rust/maturin/default.nix
+++ b/pkgs/development/tools/rust/maturin/default.nix
@@ -5,21 +5,16 @@ let
   inherit (darwin.apple_sdk.frameworks) Security;
 in rustPlatform.buildRustPackage rec {
   name = "maturin-${version}";
-  version = "0.8.0";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "PyO3";
     repo = "maturin";
     rev = "v${version}";
-    sha256 = "1fjai0c0j8zzaj4c186dkbvx6cpj0vi3sc1qbjbgn2cm8azsd6m6";
+    sha256 = "08l5r7d75id6qzf8xhkjv4hkdr64cq4dbcmdjywmvf9szjbnr65z";
   };
 
-  # The maturin 0.8.0 lockfile has an incorrect version for maturin
-  # itself. The upstream lockfiles are normally correct, so this
-  # should be removed post-0.8.0.
-  cargoPatches = [ ./Cargo.lock.patch ];
-
-  cargoSha256 = "01sh523fi46k5xwdslhnmjz128jkdw47gp9bd8gim3ay13zkcn1i";
+  cargoSha256 = "1n0sxkhcdg2rbzqd7826pa7sxlnn0c2sc8l6lc98xw21vvqisc8n";
 
   nativeBuildInputs = [ pkgconfig ];
 
@@ -35,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 7eccf4d0c37..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-04-20";
+    rev = "2020-08-24";
     version = "unstable-${rev}";
-    sha256 = "00v8b6pbm5fry6bfkrfd7phn0ps8annqrw9k71m3pd26sxnn1q5f";
-    cargoSha256 = "0nd86gwlfjwdkcphpk8zvs95xxdm8p74wl7vcrx8fnvvfxnkpwmc";
+    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 de755ec17ff..7092f5291dd 100644
--- a/pkgs/development/tools/rust/rust-analyzer/generic.nix
+++ b/pkgs/development/tools/rust/rust-analyzer/generic.nix
@@ -15,9 +15,7 @@ rustPlatform.buildRustPackage {
     inherit rev sha256;
   };
 
-  preBuild = "pushd crates/rust-analyzer";
-  # Do not checking other crates in checkPhase.
-  preInstall = "popd";
+  buildAndTestSubdir = "crates/rust-analyzer";
 
   cargoBuildFlags = lib.optional useJemalloc "--features=jemalloc";
 
@@ -26,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 = ''
@@ -35,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/0001-dynamically-patchelf-binaries.patch b/pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch
index d46ad59109e..13649b387a3 100644
--- a/pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch
+++ b/pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch
@@ -1,30 +1,24 @@
 diff --git a/src/dist/component/package.rs b/src/dist/component/package.rs
-index 4b432785..fa45e87e 100644
+index 3beddf54..0f859b8d 100644
 --- a/src/dist/component/package.rs
 +++ b/src/dist/component/package.rs
-@@ -109,10 +109,11 @@ impl Package for DirectoryPackage {
-             match &*part.0 {
-                 "file" => {
-                     if self.copy {
--                        builder.copy_file(path.clone(), &src_path)?
-+                        builder.copy_file(path.clone(), &src_path)?;
+@@ -113,6 +113,7 @@ impl Package for DirectoryPackage {
                      } else {
--                        builder.move_file(path.clone(), &src_path)?
-+                        builder.move_file(path.clone(), &src_path)?;
+                         builder.move_file(path.clone(), &src_path)?
                      }
 +                    nix_patchelf_if_needed(&target.prefix().path().join(path.clone()), &src_path)
                  }
                  "dir" => {
                      if self.copy {
-@@ -135,6 +136,22 @@ impl Package for DirectoryPackage {
+@@ -135,6 +136,29 @@ impl Package for DirectoryPackage {
      }
  }
  
 +fn nix_patchelf_if_needed(dest_path: &Path, src_path: &Path) {
-+    let is_bin = if let Some(p) = src_path.parent() {
-+        p.ends_with("bin")
++    let (is_bin, is_lib) = if let Some(p) = src_path.parent() {
++        (p.ends_with("bin"), p.ends_with("lib"))
 +    } else {
-+        false
++        (false, false)
 +    };
 +
 +    if is_bin {
@@ -34,6 +28,13 @@ index 4b432785..fa45e87e 100644
 +            .arg(dest_path)
 +            .output();
 +    }
++    else if is_lib {
++        let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
++            .arg("--set-rpath")
++            .arg("@libPath@")
++            .arg(dest_path)
++            .output();
++    }
 +}
 +
  #[derive(Debug)]
diff --git a/pkgs/development/tools/rust/rustup/default.nix b/pkgs/development/tools/rust/rustup/default.nix
index 959eb6875ce..a51975b85ca 100644
--- a/pkgs/development/tools/rust/rustup/default.nix
+++ b/pkgs/development/tools/rust/rustup/default.nix
@@ -1,35 +1,42 @@
 { stdenv, lib, runCommand, patchelf
 , fetchFromGitHub, rustPlatform
-, pkgconfig, curl, Security, CoreServices }:
+, pkgconfig, curl, zlib, Security, CoreServices }:
 
 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 ];
 
   buildInputs = [
-    curl
+    curl zlib
   ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices Security ];
 
   cargoBuildFlags = [ "--features no-self-update" ];
 
   patches = lib.optionals stdenv.isLinux [
-    (runCommand "0001-dynamically-patchelf-binaries.patch" { CC=stdenv.cc; patchelf = patchelf; } ''
+    (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 dynamicLinker \
+         --subst-var libPath
     '')
+    )
   ];
 
   doCheck = !stdenv.isAarch64 && !stdenv.isDarwin;
@@ -66,6 +73,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 89970c7dc98..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.1";
+  version = "2.6.4";
   deps = stdenv.mkDerivation {
     name = "${baseName}-deps-${version}";
     buildCommand = ''
@@ -13,7 +13,7 @@ let
     '';
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = "113dn10y0q8d2agr0g4cnx5fzdxjcz67i9089j86nn5i76wilm5s";
+    outputHash     = "1h19rsxsn2piifillv29nwks2k9l391jwygjbfy8pc0ha8yi63mw";
   };
 in
 stdenv.mkDerivation {
diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix
index 29ed96b778a..8aad3230003 100644
--- a/pkgs/development/tools/selenium/chromedriver/default.nix
+++ b/pkgs/development/tools/selenium/chromedriver/default.nix
@@ -6,12 +6,12 @@ let
   allSpecs = {
     x86_64-linux = {
       system = "linux64";
-      sha256 = "1mqsangjindfqgvjxgmpgfrcd8a2lqmwl587l0ip0p5wwz8yq5wi";
+      sha256 = "149p43zaz45malmff1274r2bwjcyjwsdickivk3pd0mvnjbfid2r";
     };
 
     x86_64-darwin = {
       system = "mac64";
-      sha256 = "18ydf2bk5aiin3yffb9z8215idz65nkhgxq0mmlvwb8gwsdvnwi1";
+      sha256 = "1xpyqxpsz3r653ls67s6alv4g2vr4lxf29gyxc162ikywyrx80nr";
     };
   };
 
@@ -28,7 +28,7 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "chromedriver";
-  version = "81.0.4044.69";
+  version = "83.0.4103.39";
 
   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 dce42380c50..a100988aead 100644
--- a/pkgs/development/tools/skaffold/default.nix
+++ b/pkgs/development/tools/skaffold/default.nix
@@ -2,17 +2,16 @@
 
 buildGoPackage rec {
   pname = "skaffold";
-  version = "1.8.0";
-  # rev is the ${version} commit, mainly for skaffold version command output
-  rev = "bd280192092e28067f0f52584c8bcb4f4dc480e4";
+  version = "1.13.2";
 
   goPackagePath = "github.com/GoogleContainerTools/skaffold";
   subPackages = ["cmd/skaffold"];
 
   buildFlagsArray = let t = "${goPackagePath}/pkg/skaffold"; in  ''
     -ldflags=
+      -s -w
       -X ${t}/version.version=v${version}
-      -X ${t}/version.gitCommit=${rev}
+      -X ${t}/version.gitCommit=${src.rev}
       -X ${t}/version.buildDate=unknown
   '';
 
@@ -20,7 +19,7 @@ buildGoPackage rec {
     owner = "GoogleContainerTools";
     repo = "skaffold";
     rev = "v${version}";
-    sha256 = "0s1j1lij56idl981nq7dnvkil1ki283nfhcfqyl5g00payihlm73";
+    sha256 = "0xicf4bf52fnnwaimxrxv16x15lcmw12a5rrl0xjm4p059jnvy54";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/development/tools/skopeo/default.nix b/pkgs/development/tools/skopeo/default.nix
index f7e1478bbec..32b9c61f5d4 100644
--- a/pkgs/development/tools/skopeo/default.nix
+++ b/pkgs/development/tools/skopeo/default.nix
@@ -1,61 +1,58 @@
 { stdenv
-, buildGoPackage
+, buildGoModule
 , fetchFromGitHub
 , runCommand
 , gpgme
-, libgpgerror
 , lvm2
 , btrfs-progs
 , pkg-config
-, libselinux
 , go-md2man
 , installShellFiles
+, makeWrapper
+, fuse-overlayfs
+, nixosTests
 }:
 
-let
-  version = "0.2.0";
+buildGoModule rec {
+  pname = "skopeo";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "containers";
     repo = "skopeo";
-    sha256 = "09zqzrw6f1s6kaknnj3hra3xz4nq6y86vmw5vk8p4f6g7cwakg1x";
+    sha256 = "0wkpw8fizxjpfypflp7rs1q128dg4hadwzdvn8k41h7f8cbcb39x";
   };
 
-  defaultPolicyFile = runCommand "skopeo-default-policy.json" {} "cp ${src}/default-policy.json $out";
+  outputs = [ "out" "man" ];
 
-  goPackagePath = "github.com/containers/skopeo";
+  vendorSha256 = null;
 
-  vendorPath = "${goPackagePath}/vendor/github.com/containers/image/v5";
+  doCheck = false;
 
-in
-buildGoPackage {
-  pname = "skopeo";
-  inherit version;
-  inherit src goPackagePath;
-
-  outputs = [ "out" "man" ];
+  nativeBuildInputs = [ pkg-config go-md2man installShellFiles makeWrapper ];
 
-  excludedPackages = [ "integration" ];
-
-  nativeBuildInputs = [ pkg-config go-md2man installShellFiles ];
   buildInputs = [ gpgme ]
-  ++ stdenv.lib.optionals stdenv.isLinux [ libgpgerror lvm2 btrfs-progs libselinux ];
+  ++ stdenv.lib.optionals stdenv.isLinux [ lvm2 btrfs-progs ];
 
-  buildFlagsArray = ''
-    -ldflags=
-    -X ${vendorPath}/signature.systemDefaultPolicyPath=${defaultPolicyFile}
-    -X ${vendorPath}/internal/tmpdir.unixTempDirForBigFiles=/tmp
+  buildPhase = ''
+    patchShebangs .
+    make binary-local
   '';
 
-  postBuild = ''
-    # depends on buildGoPackage not changing …
-    pushd ./go/src/${goPackagePath}
+  installPhase = ''
+    make install-binary PREFIX=$out
     make install-docs MANINSTALLDIR="$man/share/man"
     installShellCompletion --bash completions/bash/skopeo
-    popd
   '';
 
+  postInstall = stdenv.lib.optionals stdenv.isLinux ''
+    wrapProgram $out/bin/skopeo \
+      --prefix PATH : ${stdenv.lib.makeBinPath [ fuse-overlayfs ]}
+  '';
+
+  passthru.tests.docker-tools = nixosTests.docker-tools;
+
   meta = with stdenv.lib; {
     description = "A command line utility for various operations on container images and image repositories";
     homepage = "https://github.com/containers/skopeo";
diff --git a/pkgs/development/tools/solarus-quest-editor/default.nix b/pkgs/development/tools/solarus-quest-editor/default.nix
index 7dcde72fc4b..d44622e7e59 100644
--- a/pkgs/development/tools/solarus-quest-editor/default.nix
+++ b/pkgs/development/tools/solarus-quest-editor/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "solarus-quest-editor";
-  version = "1.6.2";
+  version = "1.6.4";
 
   src = fetchFromGitLab {
     owner = "solarus-games";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0dq94iw9ldl4p83dqcwjs5ilpkvz5jgdk8rbls8pf8b7afpg36rz";
+    sha256 = "1qbc2j9kalk7xqk9j27s7wnm5zawiyjs47xqkqphw683idmzmjzn";
   };
   
   buildInputs = [ cmake luajit SDL2
diff --git a/pkgs/development/tools/spring-boot-cli/default.nix b/pkgs/development/tools/spring-boot-cli/default.nix
index 865c655e67f..15d6553bbb1 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.2.6";
+  version = "2.3.1";
 
   src = fetchzip {
     url = "https://repo.spring.io/release/org/springframework/boot/${pname}/${version}.RELEASE/${pname}-${version}.RELEASE-bin.zip";
-    sha256 = "1rb21a8nr4mcdsfv3c3xh45kcpdwllhjfb26w9xsdgfh1j4mhb81";
+    sha256 = "0ddmwcifrmw197vc49b0x8vfampj3n947r4vv4nni5vjclqqfds5";
   };
 
   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
new file mode 100644
index 00000000000..3ee200a1a1f
--- /dev/null
+++ b/pkgs/development/tools/the-way/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "the-way";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "out-of-cheese-error";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0q7yg90yxnpaafg6sg7mqkh86qkn43kxy73p9nqkkgrikdnrjh5a";
+  };
+
+  cargoSha256 = "1a747bmc6s007ram0w4xf1y2nb3pphvqnlx59098lr3v7gllp7x3";
+  checkFlags = "--test-threads=1";
+
+  meta = with stdenv.lib; {
+    description = "Terminal code snippets manager";
+    homepage = "https://github.com/out-of-cheese-error/the-way";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ numkem ];
+  };
+}
diff --git a/pkgs/development/tools/toxiproxy/default.nix b/pkgs/development/tools/toxiproxy/default.nix
index cdf3ed5b71a..3587454b84b 100644
--- a/pkgs/development/tools/toxiproxy/default.nix
+++ b/pkgs/development/tools/toxiproxy/default.nix
@@ -2,12 +2,12 @@
 
 buildGoPackage rec {
   pname = "toxiproxy";
-  version = "2.1.3";
+  version = "2.1.4";
   src = fetchFromGitHub {
     owner = "Shopify";
     repo = "toxiproxy";
     rev = "v${version}";
-    sha256 = "1a7yry846iwi9cs9xam2vjbw73fjy45agjrwk214k0n1ziaawz2f";
+    sha256 = "07yhsvscdv1qjfc2fyyh9qsrrdwrrw04wadk5gaq4qddcway7vig";
   };
 
   goPackagePath = "github.com/Shopify/toxiproxy";
diff --git a/pkgs/development/tools/tracy/default.nix b/pkgs/development/tools/tracy/default.nix
new file mode 100644
index 00000000000..a5087b3b52c
--- /dev/null
+++ b/pkgs/development/tools/tracy/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, lib, darwin, fetchFromGitHub, tbb, gtk2, glfw, pkgconfig, freetype, Carbon, AppKit, capstone }:
+
+stdenv.mkDerivation rec {
+  pname = "tracy";
+  version = "0.7";
+
+  src = fetchFromGitHub {
+    owner = "wolfpld";
+    repo = "tracy";
+    rev = "v${version}";
+    sha256 = "07cmz2w7iv10f9i9q3fhg80s6riy9bxnk9xvc3q4lw47mc150skp";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ glfw capstone ]
+    ++ lib.optionals stdenv.isDarwin [ Carbon AppKit freetype ]
+    ++ lib.optionals stdenv.isLinux [ gtk2 tbb ];
+
+  NIX_CFLAGS_COMPILE = [ ]
+    ++ lib.optional stdenv.isLinux "-ltbb"
+    ++ lib.optional stdenv.cc.isClang "-faligned-allocation";
+
+  buildPhase = ''
+    make -j $NIX_BUILD_CORES -C profiler/build/unix release
+    make -j $NIX_BUILD_CORES -C import-chrome/build/unix/ release
+    make -j $NIX_BUILD_CORES -C capture/build/unix/ release
+    make -j $NIX_BUILD_CORES -C update/build/unix/ release
+  '';
+
+  installPhase = ''
+    install -D ./profiler/build/unix/Tracy-release $out/bin/Tracy
+    install -D ./import-chrome/build/unix/import-chrome-release $out/bin/import-chrome
+    install -D ./capture/build/unix/capture-release $out/bin/capture
+    install -D ./update/build/unix/update-release $out/bin/update
+  '';
+
+  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 ];
+  };
+}
diff --git a/pkgs/development/tools/trellis/default.nix b/pkgs/development/tools/trellis/default.nix
index 13249273564..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.03.25";
+  version = "2020.07.27";
 
   # git describe --tags
   realVersion = with stdenv.lib; with builtins;
-    "1.0-152-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    = "c27bfc220a9f85f04173840d1ea081ba478adc9c";
-       sha256 = "1fyl51246ns2njvij8g7k9a9axvhz8n8g09fny5dym9q7hcx08qh";
+       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/unity3d/default.nix b/pkgs/development/tools/unity3d/default.nix
index 13ab61b5567..dfb5f6abf48 100644
--- a/pkgs/development/tools/unity3d/default.nix
+++ b/pkgs/development/tools/unity3d/default.nix
@@ -4,7 +4,7 @@
 , cairo, dbus, expat, zlib, libpng12, nodejs, gnutar, gcc, gcc_32bit
 , libX11, libXcursor, libXdamage, libXfixes, libXrender, libXi
 , libXcomposite, libXext, libXrandr, libXtst, libSM, libICE, libxcb, chromium
-, libpqxx
+, libpqxx, libselinux, pciutils, libpulseaudio
 }:
 
 let
@@ -15,6 +15,8 @@ let
     libX11 libXcursor libXdamage libXfixes libXrender libXi
     libXcomposite libXext libXrandr libXtst libSM libICE libxcb
     libpqxx gtk3
+
+    libselinux pciutils libpulseaudio
   ];
   libPath32 = lib.makeLibraryPath [ gcc_32bit.cc ];
   binPath = lib.makeBinPath [ nodejs gnutar ];
@@ -56,6 +58,7 @@ in stdenv.mkDerivation {
 
     mkdir -p $out/bin
     makeWrapper $unitydir/Unity $out/bin/unity-editor \
+      --prefix LD_LIBRARY_PATH : "${libPath64}" \
       --prefix LD_PRELOAD : "$unitydir/libunity-nosuid.so" \
       --prefix PATH : "${binPath}"
   '';
diff --git a/pkgs/development/tools/unityhub/default.nix b/pkgs/development/tools/unityhub/default.nix
index bb84584e836..7e62aaf4088 100644
--- a/pkgs/development/tools/unityhub/default.nix
+++ b/pkgs/development/tools/unityhub/default.nix
@@ -11,7 +11,10 @@ in appimageTools.wrapType2 rec {
     libpqxx gtk3 libsecret lsb-release openssl nodejs ncurses5
 
     libX11 libXcursor libXdamage libXfixes libXrender libXi
-    libXcomposite libXext libXrandr libXtst libSM libICE libxcb ]);
+    libXcomposite libXext libXrandr libXtst libSM libICE libxcb
+
+    libselinux pciutils libpulseaudio
+  ]);
 
   profile = ''
     export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
diff --git a/pkgs/development/tools/vagrant/default.nix b/pkgs/development/tools/vagrant/default.nix
index 32e205a6f8d..338e8f68d35 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.8";
+  version = "2.2.9";
   url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz";
-  sha256 = "0nvxda0dyhncgcl9qs34l4rj0jbdbg65a3ii5765p4899z6gzx95";
+  sha256 = "0fbickjjliaw3cpkh3pl9bp56b2gcqn87c5ag67amc450ah43rdq";
 
   deps = bundlerEnv rec {
     name = "${pname}-${version}";
diff --git a/pkgs/development/tools/vagrant/gemset.nix b/pkgs/development/tools/vagrant/gemset.nix
index f5d70b912df..00838c6e0c5 100644
--- a/pkgs/development/tools/vagrant/gemset.nix
+++ b/pkgs/development/tools/vagrant/gemset.nix
@@ -85,10 +85,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.13.1";
   };
   gssapi = {
     dependencies = ["ffi"];
@@ -149,10 +149,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jwrd1l4mxz06iyx6053lr6hz2zy7ah2k3ranfzisvych5q19kwm";
+      sha256 = "10nq1xjqvkhngiygji831qx9bryjwws95r4vrnlq9142bzkg670s";
       type = "gem";
     };
-    version = "1.8.2";
+    version = "1.8.3";
   };
   listen = {
     dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"];
@@ -212,10 +212,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zin0q26wc5p7zb7glpwary7ms60s676vcq987yv22jgm6hnlwlh";
+      sha256 = "1z75svngyhsglx0y2f9rnil2j08f9ab54b3l95bpgz67zq2if753";
       type = "gem";
     };
-    version = "3.2020.0425";
+    version = "3.2020.0512";
   };
   multi_json = {
     groups = ["default"];
diff --git a/pkgs/development/tools/vcstool/default.nix b/pkgs/development/tools/vcstool/default.nix
index bab3ebd5757..c4a1cf73987 100644
--- a/pkgs/development/tools/vcstool/default.nix
+++ b/pkgs/development/tools/vcstool/default.nix
@@ -1,5 +1,5 @@
 { stdenv, python3Packages
-, git, bazaar, subversion }:
+, git, breezy, subversion }:
 
 with python3Packages;
 
@@ -14,7 +14,7 @@ buildPythonApplication rec {
 
   propagatedBuildInputs = [ pyyaml setuptools ];
 
-  makeWrapperArgs = ["--prefix" "PATH" ":" (stdenv.lib.makeBinPath [ git bazaar subversion ])];
+  makeWrapperArgs = ["--prefix" "PATH" ":" (stdenv.lib.makeBinPath [ git breezy subversion ])];
 
   doCheck = false; # requires network
 
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
new file mode 100644
index 00000000000..a6da5f6cdc9
--- /dev/null
+++ b/pkgs/development/tools/vultr-cli/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "vultr-cli";
+  version = "0.3.2";
+
+  src = fetchFromGitHub {
+    owner = "vultr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1gqc4w5j9x7vxvxah6hmqd5i1lxyybpml7yfzzcbngwgwm3y5ym0";
+  };
+
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Official command line tool for Vultr services";
+    homepage = "https://github.com/vultr/vultr-cli";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ filalex77 ];
+  };
+}
diff --git a/pkgs/development/tools/vultr/default.nix b/pkgs/development/tools/vultr/default.nix
index d59ff0c1ec5..9b53c28c60e 100644
--- a/pkgs/development/tools/vultr/default.nix
+++ b/pkgs/development/tools/vultr/default.nix
@@ -2,21 +2,20 @@
 
 buildGoPackage rec {
   pname = "vultr";
-  version = "1.15.0";
+  version = "2.0.1";
   goPackagePath = "github.com/JamesClonk/vultr";
 
   src = fetchFromGitHub {
     owner = "JamesClonk";
     repo = "vultr";
-    rev = version;
-    sha256 = "1bx2x17aa6wfn4qy9lxk8sh7shs3x5ppz2z49s0xm8qq0rs1qi92";
+    rev = "v${version}";
+    sha256 = "16wlncf0wax5jhpbfif5k16knigxy89vcby0b821klv6hlm6cc58";
   };
 
   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 a755cecc60b..a8ade2b815c 100644
--- a/pkgs/development/tools/wabt/default.nix
+++ b/pkgs/development/tools/wabt/default.nix
@@ -2,20 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "wabt";
-  version = "1.0.14";
+  version = "1.0.19";
 
   src = fetchFromGitHub {
     owner = "WebAssembly";
     repo = "wabt";
     rev = version;
-    sha256 = "0zis0190zs37x1wq044qd2vyvzcrkm8kp0734byz1lpdlgl5257b";
+    sha256 = "0g1iy1icnjfkc0dadkrif4nlixpvq626023rgj02m9al64gf9hvx";
     fetchSubmodules = true;
   };
 
   # https://github.com/WebAssembly/wabt/pull/1408
   patches = [ (fetchpatch {
-    url = "https://github.com/WebAssembly/wabt/pull/1408/commits/9115d0c55067435ec9c55924e8a2bb151bac095d.patch";
-    sha256 = "1iklbz630vih08brsgq2d5q91kialg255sgd1mxl7023pvrhi44g";
+    url = "https://github.com/WebAssembly/wabt/pull/1408/commits/28505f4db6e4561cf6840af5c304a9aa900c4987.patch";
+    sha256 = "1nh1ddsak6w51np17xf2r7i0czxrjslz1i4impmmp88h5bp2yjba";
   }) ];
 
   nativeBuildInputs = [ cmake ];
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 86fbb81de05..00000000000
--- a/pkgs/development/tools/wasm-bindgen-cli/0001-Add-cargo.lock.patch
+++ /dev/null
@@ -1,2546 +0,0 @@
-From a13aff157f899a6388b3c9e621680049f329a028 Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Fri, 1 May 2020 23:44:08 +0200
-Subject: [PATCH] Add cargo.lock
-
----
- Cargo.lock | 2527 ++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 2527 insertions(+)
- create mode 100644 Cargo.lock
-
-diff --git a/Cargo.lock b/Cargo.lock
-new file mode 100644
-index 00000000..4822cea1
---- /dev/null
-+++ b/Cargo.lock
-@@ -0,0 +1,2527 @@
-+# 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.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2"
-+
-+[[package]]
-+name = "aho-corasick"
-+version = "0.7.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
-+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.28"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d9a60d744a80c30fcb657dfe2c1b22bcb3e814c1a1e3674f32bf5820b570fbff"
-+
-+[[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.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "eed81479263c8753e06f4981f5a313b3fe6cbff30c3ff8d9ae15ef0c72d93fb5"
-+dependencies = [
-+ "askama_derive",
-+ "askama_shared",
-+]
-+
-+[[package]]
-+name = "askama_derive"
-+version = "0.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "46580c08e5520afadc6e9064759e15fc743489a4db78f9c751113e3d32a1e083"
-+dependencies = [
-+ "askama_shared",
-+ "nom 4.2.3",
-+ "proc-macro2 0.4.30",
-+ "quote 0.6.13",
-+ "syn 0.15.44",
-+]
-+
-+[[package]]
-+name = "askama_shared"
-+version = "0.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "64509fd5c2fa767fa7ea973b732c61f0b8d30d1adf084e5164523e51a5e35d71"
-+dependencies = [
-+ "num-traits 0.2.11",
-+ "serde",
-+ "serde_derive",
-+ "toml 0.4.10",
-+]
-+
-+[[package]]
-+name = "assert_cmd"
-+version = "0.11.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2dc477793bd82ec39799b6f6b3df64938532fdf2ab0d49ef817eac65856a5a1e"
-+dependencies = [
-+ "escargot",
-+ "predicates",
-+ "predicates-core",
-+ "predicates-tree",
-+]
-+
-+[[package]]
-+name = "atty"
-+version = "0.2.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-+dependencies = [
-+ "hermit-abi",
-+ "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.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "12ae9db68ad7fac5fe51304d20f016c911539251075a214f8e663babefa35187"
-+
-+[[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.52"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c3d87b23d6a92cd03af510a5ade527033f6aa6fa92161e2d5863a907d4c5e31d"
-+
-+[[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.11",
-+ "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.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
-+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.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db"
-+dependencies = [
-+ "cfg-if",
-+ "crossbeam-utils",
-+]
-+
-+[[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.29"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "762e34611d2d5233a506a79072be944fddd057db2f18e04c0d6fa79e3fd466fd"
-+dependencies = [
-+ "curl-sys",
-+ "libc",
-+ "openssl-probe",
-+ "openssl-sys",
-+ "schannel",
-+ "socket2",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "curl-sys"
-+version = "0.4.31+curl-7.70.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dcd62757cc4f5ab9404bc6ca9f0ae447e729a1403948ce5106bd588ceac6a3b0"
-+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 = "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 = "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",
-+ "log 0.4.8",
-+ "regex",
-+ "termcolor",
-+]
-+
-+[[package]]
-+name = "escargot"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ceb9adbf9874d5d028b5e4c5739d22b71988252b25c9c98fe7cf9738bee84597"
-+dependencies = [
-+ "lazy_static",
-+ "log 0.4.8",
-+ "serde",
-+ "serde_json",
-+]
-+
-+[[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.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f59efc38004c988e4201d11d263b8171f49a2e7ec0bdbb71773433f271504a5e"
-+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.11",
-+]
-+
-+[[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.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5c329ae8753502fb44ae4fc2b622fa2a94652c41e795143765ba0927f92ab780"
-+dependencies = [
-+ "futures-channel",
-+ "futures-core",
-+ "futures-executor",
-+ "futures-io",
-+ "futures-sink",
-+ "futures-task",
-+ "futures-util",
-+]
-+
-+[[package]]
-+name = "futures-channel"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f0c77d04ce8edd9cb903932b608268b3fffec4163dc053b3b402bf47eac1f1a8"
-+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.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f25592f769825e89b92358db00d26f965761e094951ac44d3663ef25b7ac464a"
-+
-+[[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.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f674f3e1bcb15b37284a90cedf55afdba482ab061c407a9c0ebbd0f3109741ba"
-+dependencies = [
-+ "futures-core",
-+ "futures-task",
-+ "futures-util",
-+]
-+
-+[[package]]
-+name = "futures-io"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a638959aa96152c7a4cddf50fcb1e3fede0583b27157c26e67d6f99904090dc6"
-+
-+[[package]]
-+name = "futures-macro"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9a5081aa3de1f7542a794a397cde100ed903b0630152d0973479018fd85423a7"
-+dependencies = [
-+ "proc-macro-hack",
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+]
-+
-+[[package]]
-+name = "futures-sink"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3466821b4bc114d95b087b850a724c6f83115e929bc88f1fa98a3304a944c8a6"
-+
-+[[package]]
-+name = "futures-task"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7b0a34e53cf6cdcd0178aa573aed466b646eb3db769570841fda0c7ede375a27"
-+
-+[[package]]
-+name = "futures-util"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "22766cf25d64306bedf0384da004d05c9974ab104fcc4528f1236181c18004c5"
-+dependencies = [
-+ "futures-channel",
-+ "futures-core",
-+ "futures-io",
-+ "futures-macro",
-+ "futures-sink",
-+ "futures-task",
-+ "memchr",
-+ "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.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "61565ff7aaace3525556587bd2dc31d4a07071957be715e63ce7b1eccf51a8f4"
-+dependencies = [
-+ "libc",
-+]
-+
-+[[package]]
-+name = "httparse"
-+version = "1.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
-+
-+[[package]]
-+name = "humantime"
-+version = "1.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
-+dependencies = [
-+ "quick-error",
-+]
-+
-+[[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.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"
-+
-+[[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.39"
-+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.69"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005"
-+
-+[[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 = "4.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6"
-+dependencies = [
-+ "memchr",
-+ "version_check 0.1.5",
-+]
-+
-+[[package]]
-+name = "nom"
-+version = "5.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6"
-+dependencies = [
-+ "memchr",
-+ "version_check 0.9.1",
-+]
-+
-+[[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.42"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "num-traits 0.2.11",
-+]
-+
-+[[package]]
-+name = "num-iter"
-+version = "0.1.40"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dfb0800a0291891dd9f4fe7bd9c19384f98f7fbe0cd0f39a2c6b88b9868bbc00"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "num-integer",
-+ "num-traits 0.2.11",
-+]
-+
-+[[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.11",
-+]
-+
-+[[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.11",
-+]
-+
-+[[package]]
-+name = "num-traits"
-+version = "0.2.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
-+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 = "openssl"
-+version = "0.10.29"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cee6d85f4cb4c4f59a6a85d5b68a233d280c82e29e822913b9c8b129fbf20bdd"
-+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.9.0+1.1.1g"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a2dbe10ddd1eb335aba3780eb2eaa13e1b7b441d2562fd962398740927f39ec4"
-+dependencies = [
-+ "cc",
-+]
-+
-+[[package]]
-+name = "openssl-sys"
-+version = "0.9.55"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7717097d810a0f2e2323f9e5d11e71608355e24828410b55b9d4f18aa5f9a5d8"
-+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",
-+ "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-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.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
-+
-+[[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.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "98e9e4b82e0ef281812565ea4751049f1bdcdfccda7d3f459f2e138a40c08678"
-+dependencies = [
-+ "proc-macro-error-attr",
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+ "version_check 0.9.1",
-+]
-+
-+[[package]]
-+name = "proc-macro-error-attr"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4f5444ead4e9935abd7f27dc51f7e852a0569ac888096d5ec2499470794e2e53"
-+dependencies = [
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+ "syn-mid",
-+ "version_check 0.9.1",
-+]
-+
-+[[package]]
-+name = "proc-macro-hack"
-+version = "0.5.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0d659fe7c6d27f25e9d80a1a094c223f5246f6a6596453e09d7229bf42750b63"
-+
-+[[package]]
-+name = "proc-macro-nested"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8e946095f9d3ed29ec38de908c22f95d9ac008e424c7bcae54c75a79c527c694"
-+
-+[[package]]
-+name = "proc-macro2"
-+version = "0.4.30"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
-+dependencies = [
-+ "unicode-xid 0.1.0",
-+]
-+
-+[[package]]
-+name = "proc-macro2"
-+version = "1.0.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3"
-+dependencies = [
-+ "unicode-xid 0.2.0",
-+]
-+
-+[[package]]
-+name = "quick-error"
-+version = "1.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-+
-+[[package]]
-+name = "quote"
-+version = "0.6.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
-+dependencies = [
-+ "proc-macro2 0.4.30",
-+]
-+
-+[[package]]
-+name = "quote"
-+version = "1.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4c1f4b0efa5fc5e8ceb705136bfee52cfdb6a4e3509f770b478cd6ed434232a7"
-+dependencies = [
-+ "proc-macro2 1.0.10",
-+]
-+
-+[[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.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "db6ce3297f9c85e16621bb8cca38a06779ffc31bb8184e1be4bed2be4678a098"
-+dependencies = [
-+ "crossbeam-deque",
-+ "either",
-+ "rayon-core",
-+]
-+
-+[[package]]
-+name = "rayon-core"
-+version = "1.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "08a89b46efaf957e52b18062fb2f4660f8b8a4dde1807ca002690868ef2c85a9"
-+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.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a6020f034922e3194c711b82a627453881bc4682166cabb07134a10c26ba7692"
-+dependencies = [
-+ "aho-corasick",
-+ "memchr",
-+ "regex-syntax",
-+ "thread_local",
-+]
-+
-+[[package]]
-+name = "regex-syntax"
-+version = "0.6.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae"
-+
-+[[package]]
-+name = "remove_dir_all"
-+version = "0.5.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
-+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.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ed3d612bc64430efeb3f7ee6ef26d590dce0c43249217bddc62112540c7941e1"
-+
-+[[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.18"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "039c25b130bd8c1321ee2d7de7fde2659fa9c2744e4bb29711cfc852ea53cd19"
-+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.106"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399"
-+dependencies = [
-+ "serde_derive",
-+]
-+
-+[[package]]
-+name = "serde_derive"
-+version = "1.0.106"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c"
-+dependencies = [
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+]
-+
-+[[package]]
-+name = "serde_json"
-+version = "1.0.52"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a7894c8ed05b7a3a279aeb79025fdec1d3158080b75b98a08faf2806bb799edd"
-+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 = "smallvec"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4"
-+
-+[[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.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "863246aaf5ddd0d6928dfeb1a9ca65f505599e4e1b399935ef7e75107516b4ef"
-+dependencies = [
-+ "clap",
-+ "lazy_static",
-+ "structopt-derive",
-+]
-+
-+[[package]]
-+name = "structopt-derive"
-+version = "0.4.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d239ca4b13aee7a2142e6795cbd69e457665ff8037aed33b3effdc430d2f927a"
-+dependencies = [
-+ "heck",
-+ "proc-macro-error",
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+]
-+
-+[[package]]
-+name = "syn"
-+version = "0.15.44"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
-+dependencies = [
-+ "proc-macro2 0.4.30",
-+ "quote 0.6.13",
-+ "unicode-xid 0.1.0",
-+]
-+
-+[[package]]
-+name = "syn"
-+version = "1.0.18"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "410a7488c0a728c7ceb4ad59b9567eb4053d02e8cc7f5c0e0eeeb39518369213"
-+dependencies = [
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "unicode-xid 0.2.0",
-+]
-+
-+[[package]]
-+name = "syn-mid"
-+version = "0.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
-+dependencies = [
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+]
-+
-+[[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.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e8dae184447c15d5a6916d973c642aec485105a13cd238192a6927ae3e077d66"
-+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 = "todomvc"
-+version = "0.1.0"
-+dependencies = [
-+ "askama",
-+ "console_error_panic_hook",
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "toml"
-+version = "0.4.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
-+dependencies = [
-+ "serde",
-+]
-+
-+[[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.26"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4e5696e4fd793743fbcc29943fe965ea3993b6c3d2a6a3a35c6680d926fd3a49"
-+dependencies = [
-+ "glob",
-+ "lazy_static",
-+ "serde",
-+ "serde_json",
-+ "termcolor",
-+ "toml 0.5.6",
-+]
-+
-+[[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.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
-+dependencies = [
-+ "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.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
-+
-+[[package]]
-+name = "unicode-xid"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
-+
-+[[package]]
-+name = "unicode-xid"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
-+
-+[[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.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168"
-+
-+[[package]]
-+name = "vec_map"
-+version = "0.8.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
-+
-+[[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.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
-+
-+[[package]]
-+name = "walrus"
-+version = "0.14.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4d96e9ec3f81fdb3210b12b2b1e9e39369c8050a3a28e692e5247e3ab5196410"
-+dependencies = [
-+ "anyhow",
-+ "id-arena",
-+ "leb128",
-+ "log 0.4.8",
-+ "rayon",
-+ "walrus-macro",
-+ "wasmparser 0.42.1",
-+]
-+
-+[[package]]
-+name = "walrus-macro"
-+version = "0.14.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2bc16925d405153a91e01cdac2a5549aa25ca9148b5176e25e601f6536344d94"
-+dependencies = [
-+ "heck",
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+]
-+
-+[[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.62"
-+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-anyref-xform"
-+version = "0.2.62"
-+dependencies = [
-+ "anyhow",
-+ "rayon",
-+ "walrus",
-+ "wasmprinter",
-+ "wast 3.0.4",
-+ "wat",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-backend"
-+version = "0.2.62"
-+dependencies = [
-+ "bumpalo",
-+ "lazy_static",
-+ "log 0.4.8",
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+ "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.62"
-+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.62"
-+dependencies = [
-+ "anyhow",
-+ "base64 0.9.3",
-+ "log 0.4.8",
-+ "rustc-demangle",
-+ "serde_json",
-+ "tempfile",
-+ "walrus",
-+ "wasm-bindgen-anyref-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-futures"
-+version = "0.4.12"
-+dependencies = [
-+ "cfg-if",
-+ "futures-channel-preview",
-+ "js-sys",
-+ "wasm-bindgen",
-+ "wasm-bindgen-test",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-macro"
-+version = "0.2.62"
-+dependencies = [
-+ "quote 1.0.4",
-+ "trybuild",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "wasm-bindgen-macro-support",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-macro-support"
-+version = "0.2.62"
-+dependencies = [
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+ "wasm-bindgen-backend",
-+ "wasm-bindgen-shared",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-multi-value-xform"
-+version = "0.2.62"
-+dependencies = [
-+ "anyhow",
-+ "rayon",
-+ "walrus",
-+ "wasmprinter",
-+ "wast 3.0.4",
-+ "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.62"
-+
-+[[package]]
-+name = "wasm-bindgen-test"
-+version = "0.3.12"
-+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.12"
-+dependencies = [
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-threads-xform"
-+version = "0.2.62"
-+dependencies = [
-+ "anyhow",
-+ "walrus",
-+ "wasm-bindgen-wasm-conventions",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-wasm-conventions"
-+version = "0.2.62"
-+dependencies = [
-+ "anyhow",
-+ "walrus",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-wasm-interpreter"
-+version = "0.2.62"
-+dependencies = [
-+ "anyhow",
-+ "log 0.4.8",
-+ "tempfile",
-+ "walrus",
-+ "wat",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-webidl"
-+version = "0.2.62"
-+dependencies = [
-+ "anyhow",
-+ "env_logger",
-+ "heck",
-+ "lazy_static",
-+ "log 0.4.8",
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "sourcefile",
-+ "structopt",
-+ "syn 1.0.18",
-+ "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.42.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1527c84a5bd585215f29c06b0e2a5274e478ad4dfc970d26ffad66fdc6cb311d"
-+
-+[[package]]
-+name = "wasmparser"
-+version = "0.51.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aeb1956b19469d1c5e63e459d29e7b5aa0f558d9f16fcef09736f8a265e6c10a"
-+
-+[[package]]
-+name = "wasmprinter"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8bd423d45b95fcee11775472bfdce66c63c45ada23c1b338e0a63d623a6c475b"
-+dependencies = [
-+ "anyhow",
-+ "wasmparser 0.51.4",
-+]
-+
-+[[package]]
-+name = "wast"
-+version = "3.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "233648f540f07fce9b972436f2fbcae8a750c1121b6d32d949e1a44b4d9fc7b1"
-+dependencies = [
-+ "leb128",
-+]
-+
-+[[package]]
-+name = "wast"
-+version = "14.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "47b11c94c63d5365a76ea287f8e6e5b6050233fae4b2423aea2a1e126a385e17"
-+dependencies = [
-+ "leb128",
-+]
-+
-+[[package]]
-+name = "wat"
-+version = "1.0.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "03db18bc33cff3859c296efbefdcc00763a644539feeadca3415a1cee8a2835d"
-+dependencies = [
-+ "wast 14.0.0",
-+]
-+
-+[[package]]
-+name = "web-sys"
-+version = "0.3.39"
-+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 = "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 5.1.1",
-+]
-+
-+[[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",
-+ "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.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "29a378ab795034efe2c4a6c8a388a2d9b31d360ad441c0bc9859b3d4d37e62a3"
-+dependencies = [
-+ "anyhow",
-+ "leb128",
-+ "wit-schema-version",
-+]
-+
-+[[package]]
-+name = "wit-printer"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8c76e17384f4feb766d109a42c309b78de75ea2b3745f663ac3f5f331633f77f"
-+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.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2aa19a002c984e25356af8938a8f4b7f0c9fe3963498e7ae1f90d64da9e563f5"
-+dependencies = [
-+ "anyhow",
-+ "wast 3.0.4",
-+ "wit-writer",
-+]
-+
-+[[package]]
-+name = "wit-validator"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2454229f760a433842db154c9bb54da896fdf2352b1d63261f617bcdf20be0bd"
-+dependencies = [
-+ "anyhow",
-+ "wasmparser 0.51.4",
-+ "wit-parser",
-+ "wit-schema-version",
-+]
-+
-+[[package]]
-+name = "wit-walrus"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8e14fbb9453201558c582d227c2b75df5c050409f467e8c220fcd57dc369280a"
-+dependencies = [
-+ "anyhow",
-+ "id-arena",
-+ "walrus",
-+ "wit-parser",
-+ "wit-schema-version",
-+ "wit-writer",
-+]
-+
-+[[package]]
-+name = "wit-writer"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ebeb128df9e103e61f8ddd8a190259f3c48b73fe86a5932f40f4de526ef357e8"
-+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 9adabeb573f..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.62";
+  version = "0.2.67";
 
-  src = fetchFromGitHub {
-    owner = "rustwasm";
-    repo = "wasm-bindgen";
-    rev = version;
-    sha256 = "0d3ph3g220nvzwxa71rch03j5c0w06v8z4lmlyp5kky6p86r37hz";
-  };
+  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 = "13lj2yx2bcwac1b4gpwcgiwqvy178zis6r1pidn4pgwqv7zxa7p2";
-  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/winpdb/default.nix b/pkgs/development/tools/winpdb/default.nix
index 500fde0ef47..8db0b719c67 100644
--- a/pkgs/development/tools/winpdb/default.nix
+++ b/pkgs/development/tools/winpdb/default.nix
@@ -18,7 +18,7 @@ pythonPackages.buildPythonApplication rec {
     comment = "Platform independend Python debugger";
     desktopName = "Winpdb";
     genericName = "Python Debugger";
-    categories = "Application;Development;Debugger;";
+    categories = "Development;Debugger;";
   };
 
   # Don't call gnome-terminal with "--disable-factory" flag, which is
diff --git a/pkgs/development/tools/wrangler/default.nix b/pkgs/development/tools/wrangler/default.nix
new file mode 100644
index 00000000000..fd84afb1617
--- /dev/null
+++ b/pkgs/development/tools/wrangler/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, curl, darwin }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "wrangler";
+  version = "1.10.3";
+
+  src = fetchFromGitHub {
+    owner = "cloudflare";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0703zlrmv0if575rj1mrgfg1a5qbf98sqjhhj09hab69i96wbrk9";
+  };
+
+  cargoSha256 = "0znzyqzvbqcl4mmxpsvaf592xrs968x57czj45jibmafq033dbfa";
+
+  nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
+
+  buildInputs = stdenv.lib.optionals stdenv.isLinux [ openssl ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [
+      curl
+      darwin.apple_sdk.frameworks.Security
+      darwin.apple_sdk.frameworks.CoreServices
+      darwin.apple_sdk.frameworks.CoreFoundation
+    ];
+
+  # tries to use "/homeless-shelter" and fails
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A CLI tool designed for folks who are interested in using Cloudflare Workers";
+    homepage = "https://github.com/cloudflare/wrangler";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ filalex77 ];
+  };
+}
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/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 8bcfaa2e46a..ea553259961 100644
--- a/pkgs/development/tools/yq-go/default.nix
+++ b/pkgs/development/tools/yq-go/default.nix
@@ -1,17 +1,28 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "yq-go";
-  version = "3.3.0";
+  version = "3.3.2";
 
   src = fetchFromGitHub {
     owner = "mikefarah";
     rev = version;
     repo = "yq";
-    sha256 = "1jll5nmskvs61031h3sizhv3scv8znrr9apyc4qlxcp4jiv7xpmp";
+    sha256 = "1rdpjxnq6cs6gwpp4bijp38b657yzjqcdzf98lhhpbpskjz8k8pp";
   };
 
-  modSha256 = "1m7sha6kwis1a00il1iigb9lxxh5m2myj9ps20s816m0b9bhd43v";
+  vendorSha256 = "1bjy3qr26zndr3dhh9gd33rhm5gy779525qgzjw4a4mla0p2q6kl";
+
+  doCheck = false;
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    for shell in bash fish zsh; do
+      $out/bin/yq shell-completion --variation $shell > yq.$shell
+      installShellCompletion yq.$shell
+    done
+  '';
 
   meta = with lib; {
     description = "Portable command-line YAML processor";
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 3cb5b96d588..036e824393a 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.mkDerivation rec{
+stdenv.mkDerivation rec {
   pname = "cypress";
-  version = "4.4.1";
+  version = "4.12.1";
 
   src = fetchzip {
     url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip";
-    sha256 = "0da1y90a6i3fjhyrzwwn3pavzbqin9v5v7hx8halz6i7cf1halfi";
+    sha256 = "00sma1q7hbhzjkjnkv8y37ar0wnxk9mkqlpsplgyyyx3gx81nn3s";
   };
 
   # don't remove runtime deps
diff --git a/pkgs/development/web/deno/default.nix b/pkgs/development/web/deno/default.nix
new file mode 100644
index 00000000000..3a0583628f0
--- /dev/null
+++ b/pkgs/development/web/deno/default.nix
@@ -0,0 +1,82 @@
+{ stdenv
+, fetchurl
+, fetchFromGitHub
+, rust
+, rustPlatform
+, installShellFiles
+, Security
+, CoreServices
+}:
+let
+  deps = import ./deps.nix { };
+  arch = rust.toRustTarget stdenv.hostPlatform;
+  rustyV8Lib = with deps.rustyV8Lib; fetchurl {
+    url = "https://github.com/denoland/rusty_v8/releases/download/v${version}/librusty_v8_release_${arch}.a";
+    sha256 = sha256s."${stdenv.hostPlatform.system}";
+    meta = { inherit version; };
+  };
+in
+rustPlatform.buildRustPackage rec {
+  pname = "deno";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "denoland";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1j5ajasng380p5a7nkk9ag5zp9ybwfz7b2z42lyk1wfg0pcd6j0r";
+    fetchSubmodules = true;
+  };
+  cargoSha256 = "0ba7afk4n7k170cqwy0gjc53vz6bjc176s9w1wln6yfhh55fyw6x";
+
+  # Install completions post-install
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security CoreServices ];
+
+  # The rusty_v8 package will try to download a `librusty_v8.a` release at build time to our read-only filesystem
+  # To avoid this we pre-download the file and place it in the locations it will require it in advance
+  preBuild = ''
+    _rusty_v8_setup() {
+      for v in "$@"; do
+        dir="target/$v/gn_out/obj"
+        mkdir -p "$dir" && cp "${rustyV8Lib}" "$dir/librusty_v8.a"
+      done
+    }
+
+    # Copy over the `librusty_v8.a` file inside target/XYZ/gn_out/obj, symlink not allowed
+    _rusty_v8_setup "debug" "release" "${arch}/release"
+  '';
+
+  # Tests have some inconsistencies between runs with output integration tests
+  # Skipping until resolved
+  doCheck = false;
+
+  # TODO: Move to enhanced installShellCompletion when merged: PR #83630
+  postInstall = ''
+    $out/bin/deno completions bash > deno.bash
+    $out/bin/deno completions fish > deno.fish
+    $out/bin/deno completions zsh  > _deno
+    installShellCompletion deno.{bash,fish} --zsh _deno
+  '';
+
+  passthru.updateScript = ./update/update.ts;
+
+  meta = with stdenv.lib; {
+    homepage = "https://deno.land/";
+    changelog = "${src.meta.homepage}/releases/tag/v${version}";
+    description = "A secure runtime for JavaScript and TypeScript";
+    longDescription = ''
+      Deno aims to be a productive and secure scripting environment for the modern programmer.
+      Deno will always be distributed as a single executable.
+      Given a URL to a Deno program, it is runnable with nothing more than the ~15 megabyte zipped executable.
+      Deno explicitly takes on the role of both runtime and package manager.
+      It uses a standard browser-compatible protocol for loading modules: URLs.
+      Among other things, Deno is a great replacement for utility scripts that may have been historically written with
+      bash or python.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ jk ];
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+  };
+}
diff --git a/pkgs/development/web/deno/deps.nix b/pkgs/development/web/deno/deps.nix
new file mode 100644
index 00000000000..2fd88235a8e
--- /dev/null
+++ b/pkgs/development/web/deno/deps.nix
@@ -0,0 +1,12 @@
+# auto-generated file -- DO NOT EDIT!
+{}:
+rec {
+  rustyV8Lib = {
+    version = "0.8.1";
+    sha256s = {
+      x86_64-linux = "0nwssdbwscwkh2w9zhlvaj562z19g5icg2yi00fyw8glws69cd6p";
+      aarch64-linux = "0mwd4ix511dzxpah1p2c47a1qhvff0d3kyilc3yra99fa1s0gyxy";
+      x86_64-darwin = "04s4x0n85rxnncy4jsl1ak3rdgb4a3lhqg8h53mvvjmsazsj1q70";
+    };
+  };
+}
diff --git a/pkgs/development/web/deno/update/common.ts b/pkgs/development/web/deno/update/common.ts
new file mode 100644
index 00000000000..d8956b21d16
--- /dev/null
+++ b/pkgs/development/web/deno/update/common.ts
@@ -0,0 +1,65 @@
+interface GHRelease {
+  tag_name: string;
+}
+
+const decode = (buffer: Uint8Array) => new TextDecoder("utf-8").decode(buffer);
+const run = async (command: string, args: string[]) => {
+  const cmd = Deno.run(
+    { cmd: [command, ...args], stdout: "piped", stderr: "piped" },
+  );
+  if (!(await cmd.status()).success) {
+    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());
+};
+
+// Exports
+export const versionRegExp = /\d+\.\d+\.\d+/;
+export const sha256RegExp = /[a-z0-9]{52}/;
+
+export async function commit(
+  name: string,
+  oldVer: string,
+  newVer: string,
+  files: string[],
+) {
+  await run("git", ["add", ...files]);
+  await run("git", ["commit", "-m", `${name}: ${oldVer} -> ${newVer}`]);
+}
+
+export const getExistingVersion = async (filePath: string) =>
+  read(filePath).then((s) =>
+    s.match(genValueRegExp("version", versionRegExp))?.shift() || ""
+  );
+
+export const getLatestVersion = (owner: string, repo: string) =>
+  fetch(`https://api.github.com/repos/${owner}/${repo}/releases`)
+    .then((res) => res.json())
+    .then((res: GHRelease[]) => res[0].tag_name);
+
+// The (?<=) and (?=) allow replace to only change inside
+// Match the regex passed in or empty
+export const genValueRegExp = (key: string, regex: RegExp) =>
+  new RegExp(`(?<=${key} = ")(${regex.source}|)(?=")`);
+
+export const logger = (name: string) =>
+  (...a: any) => console.log(`[${name}]`, ...a);
+
+export const nixPrefetch = (args: string[]) => run("nix-prefetch", args);
+export const nixPrefetchURL = (args: string[]) => run("nix-prefetch-url", args);
+
+export const read = Deno.readTextFile;
+export const write = Deno.writeTextFile;
diff --git a/pkgs/development/web/deno/update/deps.ts b/pkgs/development/web/deno/update/deps.ts
new file mode 100644
index 00000000000..beedeade3a8
--- /dev/null
+++ b/pkgs/development/web/deno/update/deps.ts
@@ -0,0 +1,79 @@
+import {
+  getExistingVersion,
+  genValueRegExp,
+  logger,
+  nixPrefetchURL,
+  versionRegExp,
+  write,
+} from "./common.ts";
+
+const log = logger("deps");
+
+export interface Architecture {
+  nix: string;
+  rust: string;
+}
+interface PrefetchResult {
+  arch: Architecture;
+  sha256: string;
+}
+
+const getRustyV8Version = async (
+  owner: string,
+  repo: string,
+  version: string,
+) =>
+  fetch(
+    `https://github.com/${owner}/${repo}/raw/${version}/core/Cargo.toml`,
+  )
+    .then((res) => res.text())
+    .then((txt) =>
+      txt.match(genValueRegExp("rusty_v8", versionRegExp))?.shift()
+    );
+
+const archShaTasks = (version: string, arches: Architecture[]) =>
+  arches.map(async (arch: Architecture): Promise<PrefetchResult> => {
+    log("Fetching:", arch.nix);
+    const sha256 = await nixPrefetchURL(
+      [`https://github.com/denoland/rusty_v8/releases/download/v${version}/librusty_v8_release_${arch.rust}.a`],
+    );
+    log("Done:    ", arch.nix);
+    return { arch, sha256 };
+  });
+
+const templateDeps = (version: string, deps: PrefetchResult[]) =>
+  `# auto-generated file -- DO NOT EDIT!
+{}:
+rec {
+  rustyV8Lib = {
+    version = "${version}";
+    sha256s = {
+${deps.map((d) => `      ${d.arch.nix} = "${d.sha256}";`).join("\n")}
+    };
+  };
+}
+`;
+
+export async function updateDeps(
+  filePath: string,
+  owner: string,
+  repo: string,
+  denoVersion: string,
+  arches: Architecture[],
+) {
+  log("Starting deps update");
+  // 0.0.0
+  const version = await getRustyV8Version(owner, repo, denoVersion);
+  if (typeof version !== "string") {
+    throw "no rusty_v8 version";
+  }
+  log("rusty_v8 version:", version);
+  const existingVersion = await getExistingVersion(filePath);
+  if (version === existingVersion) {
+    log("Version already matches latest, skipping...");
+    return;
+  }
+  const archShaResults = await Promise.all(archShaTasks(version, arches));
+  await write(filePath, templateDeps(version, archShaResults));
+  log("Finished deps update");
+}
diff --git a/pkgs/development/web/deno/update/src.ts b/pkgs/development/web/deno/update/src.ts
new file mode 100644
index 00000000000..fae15acd0d2
--- /dev/null
+++ b/pkgs/development/web/deno/update/src.ts
@@ -0,0 +1,67 @@
+import {
+  genValueRegExp,
+  logger,
+  nixPrefetch,
+  read,
+  sha256RegExp,
+  versionRegExp,
+  write,
+} from "./common.ts";
+
+interface Replacer {
+  regex: RegExp;
+  value: string;
+}
+
+const log = logger("src");
+
+const prefetchSha256 = (nixpkgs: string, version: string) =>
+  nixPrefetch(["-f", nixpkgs, "deno.src", "--rev", version]);
+const prefetchCargoSha256 = (nixpkgs: string) =>
+  nixPrefetch(
+    [`{ sha256 }: (import ${nixpkgs} {}).deno.cargoDeps.overrideAttrs (_: { outputHash = sha256; })`],
+  );
+
+const replace = (str: string, replacers: Replacer[]) =>
+  replacers.reduce(
+    (str, r) => str.replace(r.regex, r.value),
+    str,
+  );
+
+const updateNix = (filePath: string, replacers: Replacer[]) =>
+  read(filePath).then((str) => write(filePath, replace(str, replacers)));
+
+const genVerReplacer = (k: string, value: string): Replacer => (
+  { regex: genValueRegExp(k, versionRegExp), value }
+);
+const genShaReplacer = (k: string, value: string): Replacer => (
+  { regex: genValueRegExp(k, sha256RegExp), value }
+);
+
+export async function updateSrc(
+  filePath: string,
+  nixpkgs: string,
+  denoVersion: string,
+) {
+  log("Starting src update");
+  const trimVersion = denoVersion.substr(1);
+  log("Fetching sha256 for:", trimVersion);
+  const sha256 = await prefetchSha256(nixpkgs, denoVersion);
+  log("sha256 to update:", sha256);
+  await updateNix(
+    filePath,
+    [
+      genVerReplacer("version", trimVersion),
+      genShaReplacer("sha256", sha256),
+      genShaReplacer("cargoSha256", ""), // Empty ready for prefetchCargoSha256
+    ],
+  );
+  log("Fetching cargoSha256 for:", sha256);
+  const cargoSha256 = await prefetchCargoSha256(nixpkgs);
+  log("cargoSha256 to update:", cargoSha256);
+  await updateNix(
+    filePath,
+    [genShaReplacer("cargoSha256", cargoSha256)],
+  );
+  log("Finished src update");
+}
diff --git a/pkgs/development/web/deno/update/update.ts b/pkgs/development/web/deno/update/update.ts
new file mode 100755
index 00000000000..18d45148013
--- /dev/null
+++ b/pkgs/development/web/deno/update/update.ts
@@ -0,0 +1,50 @@
+#!/usr/bin/env nix-shell
+/*
+#!nix-shell -i "deno run --allow-net --allow-run --allow-read --allow-write" -p deno git nix-prefetch
+*/
+import {
+  commit,
+  getExistingVersion,
+  getLatestVersion,
+  logger,
+} from "./common.ts";
+import { Architecture, updateDeps } from "./deps.ts";
+import { updateSrc } from "./src.ts";
+
+const log = logger("update");
+// TODO: Getting current file position to more-safely point to nixpkgs root
+const nixpkgs = Deno.cwd();
+// TODO: Read values from default.nix
+const owner = "denoland";
+const repo = "deno";
+const denoDir = `${nixpkgs}/pkgs/development/web/${repo}`;
+const src = `${denoDir}/default.nix`;
+const deps = `${denoDir}/deps.nix`;
+const architectures: Architecture[] = [
+  { nix: "x86_64-linux", rust: "x86_64-unknown-linux-gnu" },
+  { nix: "aarch64-linux", rust: "aarch64-unknown-linux-gnu" },
+  { nix: "x86_64-darwin", rust: "x86_64-apple-darwin" },
+];
+
+log("Updating deno");
+
+log("Getting latest deno version");
+const version = await getLatestVersion(owner, repo);
+const existingVersion = await getExistingVersion(src);
+const trimVersion = version.substr(1); // Strip v from v0.0.0
+log("Latest version:   ", trimVersion);
+log("Extracted version:", existingVersion);
+if (trimVersion === existingVersion) {
+  log("Version already matches latest, skipping...");
+  Deno.exit(0);
+}
+
+const tasks = [
+  updateSrc(src, nixpkgs, version),
+  updateDeps(deps, owner, repo, version, architectures),
+];
+await Promise.all(tasks);
+log("Updating deno complete");
+log("Commiting");
+await commit(repo, existingVersion, trimVersion, [src, deps]);
+log("Done");
diff --git a/pkgs/development/web/flyctl/default.nix b/pkgs/development/web/flyctl/default.nix
index 22da8cd7518..53e9400e49c 100644
--- a/pkgs/development/web/flyctl/default.nix
+++ b/pkgs/development/web/flyctl/default.nix
@@ -2,25 +2,26 @@
 
 buildGoModule rec {
   pname = "flyctl";
-  version = "0.0.117";
+  version = "0.0.137";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    sha256 = "0i9azvhlwp5g699yagfbd5rnsr5kdnbw6lsz28nz1dzvmrj9xp7w";
+    sha256 = "0zlcfmraf5v1crfkgxjgdjshkasyngmq1jqh7kzy3csm0p1a4sxx";
   };
 
   preBuild = ''
     go generate ./...
   '';
 
-  preFixup = ''
-    rm $out/bin/doc
-    rm $out/bin/helpgen
-  '';
+  subPackages = [ "." ];
+
+  vendorSha256 = "1gxz9pp4zl8q7pmwg9z261fjrjfr658k1sn5nq1xzz51wrlzg9ag";
 
-  modSha256 = "0d0hfmdk81apha3r7zspam8wqadpy6qmqkgbq0sbiwrji4155hrh";
+  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; {
     description = "Command line tools for fly.io services";
@@ -29,4 +30,3 @@ buildGoModule rec {
     maintainers = with maintainers; [ aaronjanse ];
   };
 }
-
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 76f40de4ed1..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.20.0";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "luckyframework";
     repo = "lucky_cli";
     rev = "v${version}";
-    sha256 = "0n7fgnsivf39bkxpf7xgg9dqkam08axdn1j45wl1n0r4qmfkjs94";
+    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 3752519d060..4ef1913fd66 100644
--- a/pkgs/development/web/minify/default.nix
+++ b/pkgs/development/web/minify/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "minify";
-  version = "2.7.3";
+  version = "2.7.4";
 
   src = fetchFromGitHub {
     owner = "tdewolff";
     repo = pname;
     rev = "v${version}";
-    sha256 = "12jns7m9liyjg9wy8ynvji2d2g4k2z1ymp6k3610mivmvg159sy4";
+    sha256 = "06xzb681g4lfrpqa1rhpq5mm83vpik8qp6gjxqm2n21bfph88jm2";
   };
 
-  modSha256 = "09jk3mxf7n9wf1cgyiw9mhsr55fb12k399dmzhnib3vhd9xav15i";
+  vendorSha256 = "120d3nzk8cr5496cxp5p6ydlzw9mmpg7dllqhv1kpgwlbxmd8vr3";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version}" ];
 
diff --git a/pkgs/development/web/nodejs/nodejs.nix b/pkgs/development/web/nodejs/nodejs.nix
index 5eeed80007b..12754b6d441 100644
--- a/pkgs/development/web/nodejs/nodejs.nix
+++ b/pkgs/development/web/nodejs/nodejs.nix
@@ -141,7 +141,7 @@ in
       description = "Event-driven I/O framework for the V8 JavaScript engine";
       homepage = "https://nodejs.org";
       license = licenses.mit;
-      maintainers = with maintainers; [ goibhniu gilligan cko ];
+      maintainers = with maintainers; [ goibhniu gilligan cko marsam ];
       platforms = platforms.linux ++ platforms.darwin;
     };
 
diff --git a/pkgs/development/web/nodejs/v10.nix b/pkgs/development/web/nodejs/v10.nix
index 612cccbe877..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.20.1";
-    sha256 = "14pljmfr0dkj6y63j0qzj173kdpbbs4v1g4v56hyv2k09jh8h7zf";
+    version = "10.22.0";
+    sha256 = "1nz18fa550li10r0kzsm28c2rvvq61nq8bqdygip0rmvbi2paxg0";
   }
diff --git a/pkgs/development/web/nodejs/v12.nix b/pkgs/development/web/nodejs/v12.nix
index af8595b5641..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.16.3";
-    sha256 = "18srfcv9zi39960szdnd4rgfj9w295z1agjvpw8arwn75449nmgh";
+    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 1c9c353fd51..b3daab5000c 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.2.0";
-    sha256 = "1kqnkqkv2chw9s0hazbaba5y1555h526825xqk4rr441wcxcrzcf";
+    version = "14.8.0";
+    sha256 = "0vghz7g7mih7idgknwzdc2zfw82qqq497m727ydhkas1wvj6i7lv";
   }
diff --git a/pkgs/development/web/postman/default.nix b/pkgs/development/web/postman/default.nix
index 2b3bf34807a..5200cb933ca 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.23.0";
+  version = "7.30.1";
 
   src = fetchurl {
     url = "https://dl.pstmn.io/download/version/${version}/linux64";
-    sha256 = "0m3pjimpahc3kiwdq21rwyg6ckdh3avhzx3apmygisaz4gnab94d";
+    sha256 = "18bphn5m42z9x0igafd259q7i88qn7wcxvvhdjv9ldnvmhf1k935";
     name = "${pname}.tar.gz";
   };
 
@@ -25,13 +25,14 @@ stdenv.mkDerivation rec {
     comment = "API Development Environment";
     desktopName = "Postman";
     genericName = "Postman";
-    categories = "Application;Development;";
+    categories = "Development;";
   };
 
   buildInputs = [
     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/remarkjs/node-packages.nix b/pkgs/development/web/remarkjs/node-packages.nix
index 3910aedb338..4964056055e 100644
--- a/pkgs/development/web/remarkjs/node-packages.nix
+++ b/pkgs/development/web/remarkjs/node-packages.nix
@@ -55,7 +55,7 @@ let
       version = "1.3.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz";
-        sha512 = "E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==";
+        sha512 = "2lyrcp8yh09p0f000ng5q5r5xwm464cx60mnyjlaw9f0as75ifl27a22cyk61zpa7zilg9k5crblj9lbbnnsi42ndymbwcqsfwaps0k";
       };
     };
     "abbrev-1.1.1" = {
@@ -64,7 +64,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
-        sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
+        sha512 = "38s4f3id97wsb0rg9nm9zvxyq0nvwrmrpa5dzvrkp36mf5ibs98b4z6lvsbrwzzs0sbcank6c7gpp06vcwp9acfhp41rzlhi3ybsxwy";
       };
     };
     "acorn-7.1.1" = {
@@ -73,7 +73,7 @@ let
       version = "7.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz";
-        sha512 = "add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==";
+        sha512 = "29c8jlhwnfbnqa2s1v593lcpksv4hl56lywss4gy6w0mwmhx4ydf2n7var8bhcf39nm9asph0ybnf1hkw0s0j91qi7r99ir01v7pmv9";
       };
     };
     "acorn-node-1.8.2" = {
@@ -82,7 +82,7 @@ let
       version = "1.8.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz";
-        sha512 = "8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==";
+        sha512 = "3ja2k5v6p53920jdprvx0p83ycv68fdphfdmr72xmvg2450i37chn1f7mlvfxv4q8i14ypbnsbbyirii033qa6jkvcg5fa3r5z7wszj";
       };
     };
     "acorn-walk-7.1.1" = {
@@ -91,7 +91,7 @@ let
       version = "7.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz";
-        sha512 = "wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==";
+        sha512 = "10s7pz9c2jqw7sjmkkwfb6kyyfgb7qqpmz2gc0fq9phhmfknyw029x1jbw0cwi47wbacpwkw65601arnid2l95lmz0xbzv6ddilznf1";
       };
     };
     "adm-zip-0.2.1" = {
@@ -109,7 +109,7 @@ let
       version = "6.12.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz";
-        sha512 = "D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==";
+        sha512 = "0gkcic96nmpcq311i2jfwbaa961x0mj7mkl7iwk213hyn4jgxbl0a472lcpg9dr7ybacn3i45fj6q0dz3g8rqmva7r14i9la240ba0g";
       };
     };
     "ansi-colors-3.2.3" = {
@@ -118,7 +118,7 @@ let
       version = "3.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz";
-        sha512 = "LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==";
+        sha512 = "2gpv8bq9jq550ygnnm5srza0w0lfg8mr8z39702l0rgxhf35sxmdzxpppvwcp50rpk0dgjz516nbkygm0fk4675kb9qsgb5x35cfh9c";
       };
     };
     "ansi-regex-3.0.0" = {
@@ -136,7 +136,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
-        sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
+        sha512 = "1v2gfp292kslpvam0l0h1iba35yi0n7dc6qv6fmxsdyfcp6zakkl13vrh3hzsw4zgh50jrrsg7xb2q2hn4g8a0dmf947mfcylymxanm";
       };
     };
     "ansi-styles-3.2.1" = {
@@ -145,7 +145,7 @@ let
       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==";
+        sha512 = "2lgkskkj4c1fsnrksy0yffda0wss84p8lfiazdc7jli7iqnvrxkzbxjzpvx13lm28qw0zkawfxvz2bdiisc72ccy7hx8i8rm4iijgam";
       };
     };
     "anymatch-3.1.1" = {
@@ -154,7 +154,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz";
-        sha512 = "mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==";
+        sha512 = "2776jrfn8kh9r6qhz6s43znnwvqmbqrjsch99hdv21j53sj4njyjhrya67drxk8y7hvi28mjvdjj277jy4qd2zfayrjli3cdbdkkkwq";
       };
     };
     "argparse-1.0.10" = {
@@ -163,7 +163,7 @@ let
       version = "1.0.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
-        sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
+        sha512 = "17fhywmdjcp8g0ys089i5xg26yajkkg9zg8hyry3fghz75b2pq5vdx997dk5p2sc15r9nsj8rmf4f27g81hi92kzj5q86sdmg5ni553";
       };
     };
     "asap-2.0.6" = {
@@ -190,7 +190,7 @@ let
       version = "0.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
-        sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
+        sha512 = "1v2z1ll0l8rif8hh0d03jc49kz3p8hym63q8ixbas48w4a8akl413hwn08nx83m89sj3mxl06aa0grp7n8hj6hcbsb2k3fhj913674g";
       };
     };
     "asn1.js-4.10.1" = {
@@ -199,7 +199,7 @@ let
       version = "4.10.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz";
-        sha512 = "p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==";
+        sha512 = "15j9ms7k6dx08m1wqrvc4958vcrshjjpicpxmz9bflsyk0x2r7w20lxlm27jpyj7cwj6158a0582vifk393hqp0ysn9mlbabqw9qzd7";
       };
     };
     "assert-1.5.0" = {
@@ -208,7 +208,7 @@ let
       version = "1.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz";
-        sha512 = "EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==";
+        sha512 = "1n2xh5m359gm4my50j2206n32q2h044lqrl8h122gjn41fizlrh32j1lj7wqfix1iblyvi7zvdgvzbf97f840lr17vfk8ph1imj0fqh";
       };
     };
     "assert-plus-0.1.5" = {
@@ -271,7 +271,7 @@ let
       version = "1.9.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz";
-        sha512 = "wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==";
+        sha512 = "2x4b6c0ny64yv6ljfs6sv82akh200klmnh1m1i18hdj28ksxkr9c0szphnwcasy3g5y3l1wn858wcxnc2gi9q5wql8s678fc61xbhf0";
       };
     };
     "balanced-match-1.0.0" = {
@@ -289,7 +289,7 @@ let
       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==";
+        sha512 = "3mbfy80f2q6z8fwzch81hn7z0wjjsz6lwzz4jwrgr62pyql94mwi21k0l28xba2q1pydf8hf0jzzvr8w34rjmk135pjpmqfcj5kid4q";
       };
     };
     "bcrypt-pbkdf-1.0.2" = {
@@ -307,7 +307,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz";
-        sha512 = "Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==";
+        sha512 = "2izzpdg2m0av5pzbv1zyjfi15ddz5yk1d4h9cilzc8z6pzq5abcicnm2xx4b2jdrjk2l4h3zfawsxhnbzlgvlv4700q5930k796s69y";
       };
     };
     "bn.js-4.11.8" = {
@@ -316,7 +316,7 @@ let
       version = "4.11.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz";
-        sha512 = "ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==";
+        sha512 = "20bg51v29zygy89w84qb64pkjikxfjdsgjs0ry6pvv8fkwn5kd1izrqn022d838q3rcaq8dmy033g7q8b6960j4f8ipan74y9ydimr2";
       };
     };
     "boom-0.4.2" = {
@@ -334,7 +334,7 @@ let
       version = "1.1.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
-        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+        sha512 = "248cnpbbf0p32h53rd3g8wzpgrkaj4p078ra1g6l16f82i6bzkvmhwqan5rk88apbll9ly1476kngd7f7z27i3b3zxpbb3064f8yaw8";
       };
     };
     "braces-3.0.2" = {
@@ -343,7 +343,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
-        sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
+        sha512 = "38dmhgggv4r7xf3chli957yj4gzfv9xhif8zzaqjnxavkrs1qbmj9m84vxh42n1jl9sddy16ryp4g93l1p8dvrc1pbcvk2ippwadjvg";
       };
     };
     "brorand-1.1.0" = {
@@ -361,7 +361,7 @@ let
       version = "6.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz";
-        sha512 = "erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==";
+        sha512 = "1cav0iv5irfvilx6x14zbxil5m012hxan16cgyp9yjs6fqfg6fny2cdjimfwgil9ma8n4w8g8wv4yn843sz257p44vkbaz8qn1jxdks";
       };
     };
     "browser-resolve-1.11.3" = {
@@ -370,7 +370,7 @@ let
       version = "1.11.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz";
-        sha512 = "exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==";
+        sha512 = "1slq1pnm0b2903am1rl17iczlsl08sq4rckkr5fgkchgzfac13kiibwdk08yy2m62lgir8dmj9d61vil8q0vrm1d2mzw1qn2vaf443v";
       };
     };
     "browser-stdout-1.3.1" = {
@@ -379,7 +379,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz";
-        sha512 = "qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==";
+        sha512 = "21jjhrf3wdmzsfqgva5s7shs1wdmcdxsjvi75p8z7i0q2i6n3654gpxjqlhbnpmzm25cpkshyi8swy13017qkp9m7xnbgw0bwiia45a";
       };
     };
     "browserify-aes-1.2.0" = {
@@ -388,7 +388,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz";
-        sha512 = "+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==";
+        sha512 = "22gkxh9wf4hjxkyvj427k9r76xkz9vs63s1drwcggbpv0r7qdclzdvw167s7iq8936zak241cc5ck3bqkp6hy99zlkrbcmfl5g8gc7v";
       };
     };
     "browserify-cipher-1.0.1" = {
@@ -397,7 +397,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz";
-        sha512 = "sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==";
+        sha512 = "3bz6v63l37ndb18236yjdkbxjcvy4x16a8j7vsqxqprvnkcnkq1hg1ffd1c9zk9a3j555ppnpisfyh0x4adlb8lmpwbfa8i837n9y5h";
       };
     };
     "browserify-des-1.0.2" = {
@@ -406,7 +406,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz";
-        sha512 = "BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==";
+        sha512 = "3j1gv3firnsbjppm47ldxbav9rmh3plq026zn728wvhgf19i4r7kxzyyj7hpibhjv61lcm9i4b869yy90c8hfj7w8rmr17p2zbhwah6";
       };
     };
     "browserify-rsa-4.0.1" = {
@@ -433,7 +433,7 @@ let
       version = "0.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz";
-        sha512 = "Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==";
+        sha512 = "24488d4s6d901hj9d9jdddapmcvmibbdpjq6nv3bpyjx72546fcqa0vripy0ydsrw1jk6bakfzvynh5i9cz0g59hrmn4ph75d3kdpk7";
       };
     };
     "buffer-5.5.0" = {
@@ -451,7 +451,7 @@ let
       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==";
+        sha512 = "3c0m16i3fdv3vlq2zz8dakrnhqvs16gvggj485f91fiaa5v0p7pyhamcdw5fggr7djzd8nshmvz4hgbp7714smqxlld2an28q8if1ri";
       };
     };
     "buffer-xor-1.0.3" = {
@@ -478,7 +478,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz";
-        sha512 = "5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==";
+        sha512 = "0icxxn530vx1cwkygvk52k2l9brpv2mdbyk0j4hyr224b23vxvh131l2m1gljpfvsikzib3x2zyiy2xngjjfz9k9n68lvq4ram8dgg6";
       };
     };
     "camelcase-5.3.1" = {
@@ -487,7 +487,7 @@ let
       version = "5.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
-        sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
+        sha512 = "0kg17fpj4c7akmpa9x0a3fi5glrc3y5k3ppjcpb3pd02ylg3fnzfdvz0pixd223crbs5980sjaxsk9q8kcqxm5d9cb7rlkv3m614vrg";
       };
     };
     "caseless-0.12.0" = {
@@ -505,7 +505,7 @@ let
       version = "2.4.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
-        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
+        sha512 = "2wr55z22i274wadq2cvpxga28a8igq9whc4m1q06sz5sn2hc4amradd5vd02wm92vyfg2qrb0bysd5drv7mfmlb2wqdf939v5zvxn1j";
       };
     };
     "chokidar-3.3.0" = {
@@ -514,7 +514,7 @@ let
       version = "3.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz";
-        sha512 = "dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==";
+        sha512 = "3hbyi14x38mvx936wbajln4g1l8fcyi8fwvcrhf2jqn0yzcyda1d20q67k445j9bvs5kr7jdhd2s07srb2pnm7hxmjngp2k6wn8lsbl";
       };
     };
     "cipher-base-1.0.4" = {
@@ -523,7 +523,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz";
-        sha512 = "Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==";
+        sha512 = "3cm9kdc1sv7pakzlhrc1pazdvg9lk4hv31lximwbcrgmwfzg6imxrndszgx9yzlizknfh2b73cr7b5mfcv50bldpyq6jr5s4zknsj1a";
       };
     };
     "cli-1.0.1" = {
@@ -541,7 +541,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz";
-        sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==";
+        sha512 = "1fg1afsij2xwc4gpqbyhrp3s7q19w7bmii0ghmdv6cdx6giz3v0yqn25i3g7fw2lpi388jpvaf6nf9z2c7xp7w7psrww7569548d1rx";
       };
     };
     "clone-2.1.2" = {
@@ -559,7 +559,7 @@ let
       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==";
+        sha512 = "0d5pmdh1dh0qbpjrzdczwqkh0jwf8gxhq71mknwlxqz80h1q6kdrpghq4qfp0y4v650ia2jdihmzpb2n8hg00h72lnx05dgvysi9w21";
       };
     };
     "color-name-1.1.3" = {
@@ -595,7 +595,7 @@ let
       version = "1.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
-        sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
+        sha512 = "1v09nkip7zpn3k3prkkg53w331rhczpfgcqb0q42i97nafra43l2khl5zvhd4ar0qmh145nmw7944jy8p108ny0xpgy29gf2wqph0qm";
       };
     };
     "commander-2.20.3" = {
@@ -604,7 +604,7 @@ let
       version = "2.20.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz";
-        sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==";
+        sha512 = "1qqrwy7z476gqa94kjjyyzyi3x49k28ji7znbc65plrp67yzmpa2yyslh6bl965yl4jqb2fwb2ljzhgcvv2xxj8ab86n5rgryc6958s";
       };
     };
     "concat-map-0.0.1" = {
@@ -622,7 +622,7 @@ let
       version = "1.6.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz";
-        sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==";
+        sha512 = "05nnf80j9ls12y3cw2dfnc6rmand3ya5sx9cqn9dgg19ljzdnyfjjv8ig79xi73gr2y4rkfzn9wjip2zzwp5n2d49njd3ki2a1c3cfv";
       };
     };
     "config-chain-1.1.12" = {
@@ -631,7 +631,7 @@ let
       version = "1.1.12";
       src = fetchurl {
         url = "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz";
-        sha512 = "a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==";
+        sha512 = "2hg7rni4gx8l765i8qzkp9dv69c8r06i8rxxkkkrsklbd8iz6ingxnp10r4fqqrm9jxy3gp8yp0lzpybwdf27kq49abkyxwrchqwmvb";
       };
     };
     "console-browserify-1.1.0" = {
@@ -649,7 +649,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz";
-        sha512 = "ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==";
+        sha512 = "168x7bp4xr522yw92himv9xv14q336ps1kkg79qcmarg3q4yzpd52pa8x8zgq11b6996f8053799k6365437si3pk85w5z4y8xiijb4";
       };
     };
     "constants-browserify-1.0.0" = {
@@ -685,7 +685,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz";
-        sha512 = "GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==";
+        sha512 = "1mhn55gf43qsdrp2klyyyxqjsd5mw9l6s51vsfj7wl44pq7ymfw68r8wkd4yd8dd6adg3k6q18sddxfjljr0gbk56lh3cqfyd00gc8r";
       };
     };
     "create-hash-1.2.0" = {
@@ -694,7 +694,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz";
-        sha512 = "z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==";
+        sha512 = "055xaldi3hy1bjxhvznh3470j1kq2xk827mxal79bgqik3lblax6s4inxqby27ymgcghl2hn7wnx9fnacmyq3q93hk6y327cc41nkfg";
       };
     };
     "create-hmac-1.1.7" = {
@@ -703,7 +703,7 @@ let
       version = "1.1.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz";
-        sha512 = "MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==";
+        sha512 = "0p2jhk94k3as67lhrr1jyljkr0y65snxjzqnix0nifnfcanhilccrzkc47gwlg5wy0m8l1gv12lj78ivgmw5m1ww4f8iylr52bbv49h";
       };
     };
     "cryptiles-0.2.2" = {
@@ -721,7 +721,7 @@ let
       version = "3.12.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz";
-        sha512 = "fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==";
+        sha512 = "1d3mrhqlay037azmjp2ml5a8yyls9ijdhilv6f0znz0ajgfm972yr9bhm78wqi09p4crc3shgflk50jc63zijsqv777ikkyi2j2qgkz";
       };
     };
     "ctype-0.5.3" = {
@@ -739,7 +739,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz";
-        sha512 = "Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==";
+        sha512 = "182hz56w7yx6vplmlvvlqz57ckfvxch0nh5sj54074r7k3ydd8wwwajcgkvg7732hwgksm5b30jfr9c30wq8zq4f663gf9ap33isbjp";
       };
     };
     "dashdash-1.14.1" = {
@@ -766,7 +766,7 @@ let
       version = "3.2.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
-        sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
+        sha512 = "1cyv14044rfh792n1hhsa44kk8dk95zk14w96i49gwq6g9wi6h9vn90xaragfy7rvggqvj178l5f16c78g47xgrwhjx3bp7zs6pxscr";
       };
     };
     "decamelize-1.2.0" = {
@@ -784,7 +784,7 @@ let
       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==";
+        sha512 = "1fsa8nx7qgi958fykj36cndsf8ygj3132if6k4a36mkf11bl2j2gn7dn2nz07mfsygkx0415yxrjpzx8j369z1767fvr57nm1h9zjnw";
       };
     };
     "defined-1.0.0" = {
@@ -820,7 +820,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz";
-        sha512 = "1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==";
+        sha512 = "1zsk235mlp9j7mkhw08fqx4rgn4r45mk4j54zf137nlyw4gs4irwwxjn6nllyv7jw30ihn1ad7xffg282zl394f52vqz9pr19fym2nn";
       };
     };
     "des.js-1.0.1" = {
@@ -829,7 +829,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz";
-        sha512 = "Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==";
+        sha512 = "085ljc5q2yk3jabd61p91n821q4prv13qalbfni9ybcb900b4mmcdnndi5b5prfs9wybp13asd13shlxgrbsgvyfx7nbgvby6jkhhj3";
       };
     };
     "detective-5.2.0" = {
@@ -838,7 +838,7 @@ let
       version = "5.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz";
-        sha512 = "6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==";
+        sha512 = "0z7r2wfccs5i4n1v5ln5p5dkqvy3w97pmnl8kybcw1r7z1c067xr72nqn48j65nk435cpc261m6gdyfyhxjlqabs25bnlflx73hhaz9";
       };
     };
     "diff-3.5.0" = {
@@ -847,7 +847,7 @@ let
       version = "3.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz";
-        sha512 = "A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==";
+        sha512 = "32bkv3cfhax4x5zhiyfn63wjhqwkzsjiql3my8p3d9hvv020p8f9hdi7mpqixrkpgs0g9k15mn736s449yad9wq1plhxyhxb2sam3h3";
       };
     };
     "diff-4.0.2" = {
@@ -856,7 +856,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz";
-        sha512 = "58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==";
+        sha512 = "3ndiq7a8qsn2j6vlq5c6d38ynlydlhvk6q01rj321lcarrh0z7721w6cbrdw7lkx6pyfms59y1jkqcl6g2ir1rz5xr17q40lk26djg7";
       };
     };
     "diffie-hellman-5.0.3" = {
@@ -865,7 +865,7 @@ let
       version = "5.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz";
-        sha512 = "kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==";
+        sha512 = "37186rz3862gn294acnwnm59jwm62x1rz9ca0y5anvmj0a7abs4rhw974qp1j684qpd4rxb8c2kagv21hapxfddr2q72zvyv7ya19lj";
       };
     };
     "dom-serializer-0.2.2" = {
@@ -874,7 +874,7 @@ let
       version = "0.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz";
-        sha512 = "2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==";
+        sha512 = "3v6s9yk4g6cw8chgrba79rbahiqw782013df898df7k7d81n69x2135qashgf23q59zr3w42qncyf4hszlll8knkhv0xccifdplzz6v";
       };
     };
     "domain-browser-1.2.0" = {
@@ -883,7 +883,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz";
-        sha512 = "jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==";
+        sha512 = "1fcxv8rzfhs99afvhji7bs5ppxwn9mw040ixdgvkm6iabz72q61arly2lr57086rjn4g2vkb3rkih1cyc7z35kzv1jjciwyrs4g4y4f";
       };
     };
     "domelementtype-1.3.1" = {
@@ -892,7 +892,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz";
-        sha512 = "BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==";
+        sha512 = "3gmb8frh13hzm986ggv14h63h5033jp045mvy1wrcj9j56j822a86arwq7x743i6glkv1bw6qwqriivypd0icbkzi492cm96kwq28h5";
       };
     };
     "domelementtype-2.0.1" = {
@@ -901,7 +901,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz";
-        sha512 = "5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==";
+        sha512 = "00vkhxlz4gkgfqzkp7faclfand3fr36zi4lpr50rjwbx54nfpr2fy612p2ixzpysqi28nfyzznngx5gvgcd13b52iy6ar8q7d88fwz4";
       };
     };
     "domhandler-2.3.0" = {
@@ -946,7 +946,7 @@ let
       version = "6.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz";
-        sha512 = "f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==";
+        sha512 = "33kzl02iwbq3pl33ihcdq9nm48yzhfj96183zzra06hp3z6bacz3d99pl74jziwygys4npxbxwnvszz12wl8lpkjw8b4r9ki797p33z";
       };
     };
     "emoji-regex-7.0.3" = {
@@ -955,7 +955,7 @@ let
       version = "7.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
-        sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
+        sha512 = "2s4i22ccvwa2l4xwl9yz6mkyn2kpf58hp1nqiwmmgqlpyr57345i3ll0l4656ryik6a6wz1lgk4vbl6y0dwj5hx2kcbpv0h8924n00b";
       };
     };
     "entities-1.0.0" = {
@@ -973,7 +973,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz";
-        sha512 = "D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==";
+        sha512 = "0pqz0h0aafqad2dm3qs73sqk6nhgr7icrfqwnxbzysbdkh11grcbssa7m1nkyzc22g9zwpi752fpw5r58rrldhjjlqh4isj89bzpmqg";
       };
     };
     "errno-0.1.7" = {
@@ -982,7 +982,7 @@ let
       version = "0.1.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz";
-        sha512 = "MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==";
+        sha512 = "2bdzcjwgdkg5yrvlw6my57pn77k4j7a2pzppwqrq4va9f5bd4b5mzbhwpklhsy1jl7w9sjvnfs30h42nhz2dbdfhagnh8dk6l2d3yii";
       };
     };
     "es-abstract-1.17.4" = {
@@ -991,7 +991,7 @@ let
       version = "1.17.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz";
-        sha512 = "Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==";
+        sha512 = "24sx605c7x5di53nzw0x2brrfvy4nw76ws0gsd1hskdifrcxafn8fwk0n11si002zxhfs9c8nba1acaj2zkrqrgp8k5vw0vz2dyxv81";
       };
     };
     "es-to-primitive-1.2.1" = {
@@ -1000,7 +1000,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
-        sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
+        sha512 = "2y6j97j2f10gc52kw7qin10gm24m5hz1qq7ph6jf89y8a9i8vb268f2q0z78qjmngc765y9v0f1ldc5qb10b638yqlabda90sbaa8s0";
       };
     };
     "escape-string-regexp-1.0.5" = {
@@ -1018,7 +1018,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
-        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+        sha512 = "3h999di4dnwxb22lxlb7cbz42nalrv8g8sqdvrkkl5c27gnwhp1rva4039hmq6g1i0y4mfjgx6p4i2vwxxl0zlahfzdd9fl1qbqasvq";
       };
     };
     "events-2.1.0" = {
@@ -1027,7 +1027,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/events/-/events-2.1.0.tgz";
-        sha512 = "3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==";
+        sha512 = "059cw923gab3r2d2nk9nafd3h9skxvimn2k4qhnhss6j5vwwgvqaac3668299zdc634q9r8by6vidhjnkf052ir1vyw6xx7nyhs56fx";
       };
     };
     "evp_bytestokey-1.0.3" = {
@@ -1036,7 +1036,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz";
-        sha512 = "/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==";
+        sha512 = "1wd18zxd7n42asa63aa4k1bdf58warg29c7c8cdzzkd4r1wva7qwzqnn52h8g8hqwj7bxjkk3ryghajrvz4i27h5bzp30p8hjiqdzgx";
       };
     };
     "exit-0.1.2" = {
@@ -1054,7 +1054,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
-        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
+        sha512 = "3zad2109w3q3gh46s5msrnzfy2nl581sqpy20b52fs7v5pdjh3irpg7szl3xvh4sfy63218jy8ry6qlnir3baxbbfrb03swkw5swfky";
       };
     };
     "extsprintf-1.3.0" = {
@@ -1072,7 +1072,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
-        sha512 = "8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==";
+        sha512 = "1j7wq3vqvfgnpd2sjblnlgryxlic2fsy343fx8w4ywb2mngj1w5afq8fmly8cp9fi66dhz1fhcfpn23g5zasnzs6n1snb83qkkilhgi";
       };
     };
     "fast-json-stable-stringify-2.1.0" = {
@@ -1081,7 +1081,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 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
+        sha512 = "0gz06zkjlqc4r59ka14n3vwqjdgn40zd8r115ql3rkwqb7j42frmnsj3axr7p2md8ik52nqjn3myyv8ddavdhl4cq3xz4wbbz07y5wn";
       };
     };
     "fast-safe-stringify-2.0.7" = {
@@ -1090,7 +1090,7 @@ let
       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==";
+        sha512 = "1ab0spv3wadhidsh9x8qar1ryn7ahv308yzc5cl32wssk99rr7vrkcs00vn2kggz6drps08vk24gi9gmqpg39jd1rnaryykvh4vmnaj";
       };
     };
     "fill-range-7.0.1" = {
@@ -1099,7 +1099,7 @@ let
       version = "7.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
-        sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
+        sha512 = "2jrai6ri6sni8xyi8yji49ai8vkczbbiw6pb3pd9bcdizb58ncgnhnfmghhw87flm8y96y2z16738lwdyshby665nv60ljcwwbkvsm8";
       };
     };
     "find-up-3.0.0" = {
@@ -1108,7 +1108,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";
-        sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==";
+        sha512 = "2bg49lifm64h5jqjc20612wrx7cazw9np9ms02ys94kif4li8cp5in4rvmb1c1ssa8yhbsqkgprykkj4lf3jbz8qrgp1mf8c93gl86p";
       };
     };
     "flat-4.1.0" = {
@@ -1117,7 +1117,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz";
-        sha512 = "Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==";
+        sha512 = "0bj2zrb5x98lffdcjsvaf2hns9ih2jzj4dz9yg9k8zqrak4x0i93dvf01qp458mr6d1x4dsqsxc3ag00g2mskrr23h7x71kna4d67rz";
       };
     };
     "forever-agent-0.5.2" = {
@@ -1153,7 +1153,7 @@ let
       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==";
+        sha512 = "0jj3hgqp9pmxmfavx6rvdfl3r4yf98clpsarqadz3hq0dxhjlh2ppd9x8bvmaq3nwjdqpdvqx25pwyin4ipixhgsn7s3p9fcc3wllnn";
       };
     };
     "fs.realpath-1.0.0" = {
@@ -1171,7 +1171,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz";
-        sha512 = "R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==";
+        sha512 = "1j5ssfzy4xklkj74z7q64dpcld4zicsva1ihfys8dwa9l5apv7q350g4vg65nfp58c7aqkai1qmjlc3xshb97p5h3lsrl0r3j407327";
       };
     };
     "function-bind-1.1.1" = {
@@ -1180,7 +1180,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
-        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
+        sha512 = "38chm1mh077ksx6hy2sssfz4q29hf0ncb9k6ila7si54zqcpl5fxd1rh6wi82blqp7jcspf4aynr7jqhbsg2yc9y42xpqqp6c1jz2n8";
       };
     };
     "get-assigned-identifiers-1.2.0" = {
@@ -1189,7 +1189,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz";
-        sha512 = "mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==";
+        sha512 = "1snk8irwshrwijh05cwxsdvjc5p2aqr8mk6qdcwxaka3llypkyibdz2mdkzw67g9l2vzhidfqg0ahdrzyknjk4a7c613bwkw6cp044q";
       };
     };
     "get-caller-file-2.0.5" = {
@@ -1198,7 +1198,7 @@ let
       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==";
+        sha512 = "0b7da6kb3xqk26cw4i6kb1lk911z06z53if2g8l23hmfpbhl6vfbn8iip55j1yplbqnly2abb9d349r6ky2z570839q3p9z2gf4y88g";
       };
     };
     "getpass-0.1.7" = {
@@ -1216,7 +1216,7 @@ let
       version = "7.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz";
-        sha512 = "vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==";
+        sha512 = "30h0j9f3xj7mwciwmi9q9ilhlc0l391jrvv0xws0yxgh389ynin3qqrw8xiyfy5w3f667bwn9p0i3f01s2ir0ai1rwbb038ij4fxixx";
       };
     };
     "glob-7.1.6" = {
@@ -1225,7 +1225,7 @@ let
       version = "7.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
-        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+        sha512 = "020qv13jbi1v4y5xavf6fw08h9svy4q9p67m4avkrrhgdjmk0c5k3h19bv7k6yn1vfxljpjw9kg81fbdg9v83cjplxvkn3v4v1v21ig";
       };
     };
     "glob-parent-5.1.0" = {
@@ -1234,7 +1234,7 @@ let
       version = "5.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz";
-        sha512 = "qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==";
+        sha512 = "23qivv79xv6rvb8fsi8hj0ic91ijfkw6dynzp8716bzafazq27dqc9ibxxlkfs7wqnhyzzimaa3xn8i22838ds157kyg60mfa152fxa";
       };
     };
     "graceful-fs-4.2.3" = {
@@ -1243,7 +1243,7 @@ let
       version = "4.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
-        sha512 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==";
+        sha512 = "12xdl6ai5jdxcpcavw2hk4zpiknz7g7f2cvgawzwlzv7cy7qf7riq8ymkgqdqxjkpl1mg627dxa65zc9b0yqhflsmqlfg5q3481azbb";
       };
     };
     "growl-1.10.5" = {
@@ -1252,7 +1252,7 @@ let
       version = "1.10.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz";
-        sha512 = "qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==";
+        sha512 = "146i7if4fjml1p6xw1ybb7vm22k6i8yc7r8wcw8yia7qy385w1s6j18ip91g5mv47zvv5fw5m8kpzlaayjs183fkpg174hbw4xgh6m8";
       };
     };
     "har-schema-2.0.0" = {
@@ -1270,7 +1270,7 @@ let
       version = "5.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
-        sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
+        sha512 = "3kaldgfsh3lfvgvw31s8b7q345zf7ixjahllncdckcw6qfs3gnbsamdxgs9kfigq7rwmja7v51ghh7y0rsp6q7jmvmbydhh645wxnxh";
       };
     };
     "has-1.0.3" = {
@@ -1279,7 +1279,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
-        sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
+        sha512 = "37vh53c11hws66navka0w9xxm6rcr034bxpyvaldiqz1msafqf0jpi1aqxbaygs53arz9y510qg6dl6vrm285hrxniygs2l8lxnyrvz";
       };
     };
     "has-flag-3.0.0" = {
@@ -1297,7 +1297,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
-        sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
+        sha512 = "0ylry8j6wanggw1786jw36k056caw516fasjfz5jl945p7g0zl2aqxsjd5fxxfah3hlhrbflnsb88vx42080sfsfbb38aimyi7hja8k";
       };
     };
     "has-symbols-1.0.1" = {
@@ -1306,7 +1306,7 @@ let
       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==";
+        sha512 = "0mb9d5yqvznqmq073hdc4wl7175niiqpkpb7iqqv8p0q6xgmrhfap9ni6iwrx44w8p9vyg8n3zsllil5pdflzlh462dkydymfi2rdrw";
       };
     };
     "hash-base-3.0.4" = {
@@ -1324,7 +1324,7 @@ let
       version = "1.1.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz";
-        sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==";
+        sha512 = "1f5xc15zpy3b7hssv57xnd92ja5r073zvd2pczvncxmy1jnbjcx716riyr2syvah88qk7328a6fz049mziv2k837093xqxd86r9m8xm";
       };
     };
     "hawk-1.0.0" = {
@@ -1342,7 +1342,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz";
-        sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
+        sha512 = "0dwml2q9r97ga11qbbn5sb46v4g47lx174dz9g1jgxpycknhg1d5dlsij2vja905p8h243jj51hfa5cmzh8n9rdcs8r78lg86fl7z8p";
       };
     };
     "hmac-drbg-1.0.1" = {
@@ -1414,7 +1414,7 @@ let
       version = "1.1.13";
       src = fetchurl {
         url = "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz";
-        sha512 = "4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==";
+        sha512 = "179jm8fhl2advz4j63klrp57sm99wvyb5jcxwfr9rhi730ybcxkyfqrr0pmwvir12zjzpkwwvjjkjclwrss7lpab7dg2myqc8izpxz2";
       };
     };
     "image-size-0.5.5" = {
@@ -1468,7 +1468,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
-        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+        sha512 = "30rw2i1k63pbf0n5dbwly05h95cdp1kj8c9r15gv1cwha141g61k56fx4qwsvhpm1ksnf7agch1wxirs3s0m31wbfvmcqizgrlwdywk";
       };
     };
     "ini-1.1.0" = {
@@ -1486,7 +1486,7 @@ let
       version = "1.3.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
-        sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==";
+        sha512 = "1rjbvf1rg5ywhnba08sgagn2qf23lab330qrqmh7d891zap3xpxcyfyj1cblpf0f0rypglcfacybzyrpd4996aa1mbc820awa33k5j5";
       };
     };
     "inline-source-map-0.6.2" = {
@@ -1504,7 +1504,7 @@ let
       version = "7.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz";
-        sha512 = "VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==";
+        sha512 = "15ks7a4jsdgwd9cpql86xignkdz7wf7jxz7r8pyyqgfr3n51nc6y3m271cxzwm4ccaajb6y9sc5hw80ga7pg37306zps6lndyaqskjl";
       };
     };
     "interpret-1.2.0" = {
@@ -1513,7 +1513,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz";
-        sha512 = "mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==";
+        sha512 = "1pibn9f6dn61lmilqiv8hb4aix4b78xf9sdws3rnl060vvv6l4qrw6gfmncq5n0f0rah2yj1ssfg80chaw9y5aa860wfdcccb4ghgcr";
       };
     };
     "ip-regex-2.1.0" = {
@@ -1531,7 +1531,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz";
-        sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
+        sha512 = "1gldm4swvg3612pg55yjza8dvpv4daf374dijjg8kcmndlq55933pdd7gw4gq4c2aa5fn9vnasz3h9spg3pd8p1rafkr91sxdhi3hb4";
       };
     };
     "is-buffer-1.1.6" = {
@@ -1540,7 +1540,7 @@ let
       version = "1.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz";
-        sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==";
+        sha512 = "3kr8dm9qyklmm2xyiz75s8db90bfilfals4x0g276kncihrrrz0ar4y6dqpvc7pwy7h43jay1bayi1r62x97nzvcswkk4ap18pl1irm";
       };
     };
     "is-buffer-2.0.4" = {
@@ -1549,7 +1549,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz";
-        sha512 = "Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==";
+        sha512 = "3c1f1cy2867lfdcfxpy91qxbjxizlwa2dhz3mgckg17xd4xcx284ylzvfk3v7l6mdynrk7xc2rg31avi6caj053p7bgaf4p8ni6pb9a";
       };
     };
     "is-callable-1.1.5" = {
@@ -1558,7 +1558,7 @@ let
       version = "1.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz";
-        sha512 = "ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==";
+        sha512 = "3wmff73yzck45x5shydqswbww8zkl03i43yhy7mm6av9770yvd2gj7xfrc8f45fw2ncn7mwblxvxlcap5rngmklkjiis902qgkay8hi";
       };
     };
     "is-date-object-1.0.2" = {
@@ -1567,7 +1567,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz";
-        sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==";
+        sha512 = "39f971gzwirnxjw4b72c175nbn1hnmrn1wljvbzvxv69hw9vpialhjafh9nkh0g3p26a49zss3rr7pxfww1f6day4s89hmqkm7l6aai";
       };
     };
     "is-extglob-2.1.1" = {
@@ -1594,7 +1594,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
-        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
+        sha512 = "19c23n8r8rfbz5rgs5csbjbpwgxvwi7y6kpsvlylgs2v1r1z2zm18qzzz2g8vnnwaldn5c4qalpc6p88rl0gjrrm278j52ks0m2svg4";
       };
     };
     "is-number-7.0.0" = {
@@ -1603,7 +1603,7 @@ let
       version = "7.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz";
-        sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
+        sha512 = "2g7332xqrb0cm36cn6rwdmgq7sllf9w19sf6jy4w0s4vgqdq1kngsnpz0z49i3vnknk8ms442yjllrdbqxbap9ajprc8yrs91za4l73";
       };
     };
     "is-regex-1.0.5" = {
@@ -1612,7 +1612,7 @@ let
       version = "1.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz";
-        sha512 = "vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==";
+        sha512 = "1hqaalcf1yqll2yzm71a1axvid0x87jp41hyicw16rl12rrh6sp6srr9lk7wxm6a1vl3ypw8qyd0imbq8fl2h7yq8l8xawdnkbrclmy";
       };
     };
     "is-symbol-1.0.3" = {
@@ -1621,7 +1621,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz";
-        sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==";
+        sha512 = "1lmzzy2360gfg5639x8mzi5fpc1bgpdx0ffjlqaz9affd0lvvpi7yjwk15jsm1y1l8rf5jahyapv6rm2w3p86gxkghsp0jjlj2s621v";
       };
     };
     "is-typedarray-1.0.0" = {
@@ -1675,7 +1675,7 @@ let
       version = "3.13.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
-        sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==";
+        sha512 = "0kkjjrr0znm2ka89ywc5518c8dw0210z91fm94c7v11l8c96mkjh0ddld5mb7jmmnpzap7vn0fhvr29lma63c9is2ixq3fpp0xxrxk1";
       };
     };
     "jsbn-0.1.1" = {
@@ -1702,7 +1702,7 @@ let
       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==";
+        sha512 = "1bbgxs4777gn3q3yxi0n792cgz9pimf85pypr0w4wzpb22nr8fl9xi98pkcqd3n4fn7lnzffpq7qwpcl4dqc15py19lwqa2jwgw5dn5";
       };
     };
     "json-stable-stringify-0.0.1" = {
@@ -1774,7 +1774,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz";
-        sha512 = "Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==";
+        sha512 = "01ili1w037l9b1l99ljcygi8xwcirjndh89qb1ja448vpfv6b0ixcp05cj8z9c0646bwrjabb8q0xy60pkshnn4977lhra5f54hpbh9";
       };
     };
     "locate-path-3.0.0" = {
@@ -1783,7 +1783,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";
-        sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==";
+        sha512 = "3jbllbkvv54d6k6zss6spzsknz5icscyfclf377jjpndb8mmacq0v9vjr1w07zjn14gaz4d2hfi0yaqk4nvg6hbm16qi70nrkivn0zc";
       };
     };
     "lodash-4.17.15" = {
@@ -1792,7 +1792,7 @@ let
       version = "4.17.15";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz";
-        sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==";
+        sha512 = "3a41cs1932x00vd7h32v6rfkaak3vhkwv4x0bg27ilhlmbpl95r3abc4vja21k42cdfprsy3sdfcp2xs02sfp1fflf7m3n2gd29q4zk";
       };
     };
     "lodash.get-4.4.2" = {
@@ -1819,7 +1819,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz";
-        sha512 = "dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==";
+        sha512 = "2fmk82kxm1wkgm5kgxx84nsf7pvyspj47axslj3sfcyx69hx1vymrgbqj00jfnmrjc80wb87xs3kyfa37k55wzhgvk6v21vw8d0sabm";
       };
     };
     "md5.js-1.3.5" = {
@@ -1828,7 +1828,7 @@ let
       version = "1.3.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz";
-        sha512 = "xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==";
+        sha512 = "29ds70y468n42xivsz4vrgy8rp2x4nxz52z1vkd1k49556gvn74pq998s510g3jgz9972m9yxs6yk1kw752blq97b9w8gaddkwlyay6";
       };
     };
     "miller-rabin-4.0.1" = {
@@ -1837,7 +1837,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz";
-        sha512 = "115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==";
+        sha512 = "12277knznlw4myxmgg6vgkrwmrhj9dyniscrlph3s08ndi2q25v3wrv6rwanvz29v5k5x756xa5yif4xllrghpn3jqaamnr3cp5ypnp";
       };
     };
     "mime-1.2.11" = {
@@ -1855,7 +1855,7 @@ let
       version = "1.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz";
-        sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
+        sha512 = "1x901mk5cdib4xp27v4ivwwr7mhy64r4rk953bzivi5p9lf2bhw88ra2rhkd254xkdx2d3q30zkq239vc4yx4pfsj4hpys8rbr6fif7";
       };
     };
     "mime-db-1.43.0" = {
@@ -1864,7 +1864,7 @@ let
       version = "1.43.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz";
-        sha512 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==";
+        sha512 = "36x3p6lll5v1g7na92kbba0bpcl36i1argsqn8iy4mgz3zh3llnqhzhfw0l26jqcb0mh9rhhmrx718kvqzchga6y79qdg9884c6r5zv";
       };
     };
     "mime-types-2.1.26" = {
@@ -1873,7 +1873,7 @@ let
       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==";
+        sha512 = "1cxsgrndjg6jyfqzm74hv6cmy9lil52f1kzkq2niknaiqz20p3yiw0fpgsyld2zrbxr9abpdabz1q6nqa50xr9a0cmbjbi0cqymlnnk";
       };
     };
     "minimalistic-assert-1.0.1" = {
@@ -1882,7 +1882,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
-        sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==";
+        sha512 = "3y39pa1xxg7j49vya7xca4p1mg89d0df56hj4yjhpyhmza3g5qvpgp11xs11wkd48zzy7ym970jfbn0ppimmczpijns249j7q05rljj";
       };
     };
     "minimalistic-crypto-utils-1.0.1" = {
@@ -1900,7 +1900,7 @@ let
       version = "3.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
-        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+        sha512 = "1879a3j85h92ypvb7lpv1dqpcxl49rqnbgs5la18zmj1yqhwl60c2m74254wbr5pp3znckqpkg9dvjyrz6hfz8b9vag5a3j910db4f8";
       };
     };
     "minimist-0.0.8" = {
@@ -1918,7 +1918,7 @@ let
       version = "1.2.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
-        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+        sha512 = "0pif0kjsr0cdm73cyicn9xdx9zkly45w4akmyfa39lkaf6lzysfr8kr145p54wjk26pbsk0w0qfdds3k4bxy4wl5l210i1b8qsngkql";
       };
     };
     "mkdirp-0.3.5" = {
@@ -1954,7 +1954,7 @@ let
       version = "6.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/module-deps/-/module-deps-6.2.2.tgz";
-        sha512 = "a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==";
+        sha512 = "3gkwqnfbsjlh9sswxyiqwv4hzvph69yfaj8c2kibsc9xs6nvys3s2yvjyb41p1qqprlzrr9pqm1l5qpx8wis3z20cw95fzr7g4bmp3b";
       };
     };
     "ms-2.1.1" = {
@@ -1963,7 +1963,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
-        sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
+        sha512 = "352z145jr1zx0w6kmlz2jxcaw6j2pwwg9va3x4gk731zw1agka2b213avw12zx6hgn071ibm0f3p80n5cdv896npay4s6jwbrv7w2mn";
       };
     };
     "ncp-0.4.2" = {
@@ -1990,7 +1990,7 @@ let
       version = "1.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz";
-        sha512 = "5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==";
+        sha512 = "0gis4xp1wacn31j3p8vdd32ykzs2pskf8pgfjkm092zcx72v03dphpsayrls8bmmi91s6ic4718lgi28mm40hj96f9ywbvfxbcz4jz4";
       };
     };
     "node-uuid-1.4.8" = {
@@ -2017,7 +2017,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
-        sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
+        sha512 = "0n301s7qa4645iyk3zpcgin8r19p0p8h8g50c3mnnrl9n3m9rpyxv79hjl6miix9daq12s69am1sbskhqnzbabmn2id0nippgj6rrp9";
       };
     };
     "npmconf-0.0.24" = {
@@ -2044,7 +2044,7 @@ let
       version = "0.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
-        sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
+        sha512 = "1jz644r7ybsq688ifahm64ih3ljqjjskm533bgir20pvc350f9cl0z162scih0r1idx8lpw5f8hxa2pkf0lhbdhr5y6ak2ga5863v3x";
       };
     };
     "object-assign-4.1.1" = {
@@ -2062,7 +2062,7 @@ let
       version = "1.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz";
-        sha512 = "a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==";
+        sha512 = "19lmsxagwl8zzqckw6p0bdjwjbq2bshicnw78az9ka40d0gjghmdm0ify1n3857fxadv43c6v0g27rk1dl514iwh40a5i3mv0fl9fkb";
       };
     };
     "object-keys-1.1.1" = {
@@ -2071,7 +2071,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
-        sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
+        sha512 = "0nf2rr25ncya39v7cq274x3w4drfbdrc3iqdwd017s1wndwh9plsjagbvhl6j6l6piipprdsvgfx4vfz8q2piz7bi4bjcll8d4h9q1n";
       };
     };
     "object.assign-4.1.0" = {
@@ -2080,7 +2080,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz";
-        sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==";
+        sha512 = "3krdp08gvbxvipalq64qy7bm86znxxdb7ap6bjki235qs17i9fsn6hqd22ga31sqyqa6iyy5xjfnnqc7lsck1kaybwsh154mrxcj4bv";
       };
     };
     "object.getownpropertydescriptors-2.1.0" = {
@@ -2089,7 +2089,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz";
-        sha512 = "Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==";
+        sha512 = "1b08dy2xs3gqhwviks5245b0m3fa6kkdcqi8wldr5cfvkpgwbvdx474k9y5cjnsf2z075gysifxsc39i59fslxrl55kgpa03xmcx7b7";
       };
     };
     "once-1.1.1" = {
@@ -2134,7 +2134,7 @@ let
       version = "2.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz";
-        sha512 = "WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==";
+        sha512 = "36v4kvifp6msn6gaal1pgwy5qi56fbv8295221a6araml7nzxsnw2jfy7i6k7ybxy3dida9xxnyx447s8i8f15m27xklacwfz27wr2q";
       };
     };
     "p-locate-3.0.0" = {
@@ -2143,7 +2143,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";
-        sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==";
+        sha512 = "14sa2r3zdhvy3sq757d4l21nxrlb7picyigb8zm956bbjadcv22chrfa95wzzrf28z0cyj62b6yihhdc9508q82gs2q3yz8yk1pdvf7";
       };
     };
     "p-try-2.2.0" = {
@@ -2152,7 +2152,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
-        sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
+        sha512 = "1skmb50xzdk3qzd1f9l5mw8xp29frkizl63bhb9l1amivqybqb23n2824906vx790hjlwyhhrfzpzr5xr6ilzvy1xyl0ly0ah0wz2a7";
       };
     };
     "pako-1.0.11" = {
@@ -2161,7 +2161,7 @@ let
       version = "1.0.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz";
-        sha512 = "4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==";
+        sha512 = "1imm2ygnj1himskq6lblzdh3ngc6p9gkvhrbzivalqf3nwafzfglpmbh8wkaz0rsiaxh67jzxbb16m2ygapfcnfwqg9gkdqzkqc24p2";
       };
     };
     "parents-1.0.1" = {
@@ -2179,7 +2179,7 @@ let
       version = "5.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz";
-        sha512 = "jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==";
+        sha512 = "16n59f599pq8832a6c5wyxnqdf4vrqrdnclzs6vp9m2z2h9qmxamjk6xcrl1aal758jyba0pvyz1bkf7npm7achfxxa29jwaygihhwf";
       };
     };
     "path-browserify-0.0.1" = {
@@ -2188,7 +2188,7 @@ let
       version = "0.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz";
-        sha512 = "BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==";
+        sha512 = "2avzhwqw37c6l7a0f276z7qzchzhwppinxhgg6q7by5bskwb7q7sfhwijb6fx4ingbdzb4i1pw6la5pg0izb5s4z69268278gil1ah5";
       };
     };
     "path-exists-3.0.0" = {
@@ -2215,7 +2215,7 @@ let
       version = "1.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
-        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+        sha512 = "37qw5986wccpwwqckqky509s4nd6zwv200s9r2v6mcf5nsyxgf2x00m4yp918mkkz84sdh4q0kjbg0hhfq4flpz0l6v47hvc57qwa8r";
       };
     };
     "path-platform-0.11.15" = {
@@ -2233,7 +2233,7 @@ let
       version = "1.8.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz";
-        sha512 = "n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==";
+        sha512 = "1a1s16c1sx28yq8nh8sqkj9izaypszmxfk27x5hl1wid9611b5viffw9vbwqw6sik20ksgmh18dqndglbvq82dii4jl0aal353ck3cz";
       };
     };
     "pbkdf2-3.0.17" = {
@@ -2242,7 +2242,7 @@ let
       version = "3.0.17";
       src = fetchurl {
         url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz";
-        sha512 = "U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==";
+        sha512 = "2s4nd3yv3kkyywvh5rkrvbr6w2h6a4q786v548w895ralcq9cllqzyxr0jgxf911k3zpmzycimsg3ggww3lkrhd3bk9wribrgjaby2k";
       };
     };
     "performance-now-2.1.0" = {
@@ -2269,7 +2269,7 @@ let
       version = "2.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz";
-        sha512 = "ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==";
+        sha512 = "12a2jzmkj24c6k3x71z0knzflw9qqhqx0lk27nrryjs6m7gjmszvgz5pp29xx1h7h7xxaj8cl3i5h98hlx3mpif5h26qdjhrh1ml811";
       };
     };
     "process-0.11.10" = {
@@ -2287,7 +2287,7 @@ let
       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==";
+        sha512 = "1mgan8li4i2l4y7lsr7snks85n6xg5x693cqmzpid3fkk9br7v5xzgvh1zlfs08zkxn6s0n6qhykr64mszjfyxd77dhmdi1jhx992yy";
       };
     };
     "progress-1.1.8" = {
@@ -2305,7 +2305,7 @@ let
       version = "7.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz";
-        sha512 = "nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==";
+        sha512 = "17cn4nns2nxh9r0pdiqsqx3fpvaa82c1mhcr8r84k2a9hkpb0mj4bxzfbg3l9iy74yn9hj6mh2gsddsi3v939a1zp7ycbzqkxfm12cy";
       };
     };
     "proto-list-1.2.4" = {
@@ -2332,7 +2332,7 @@ let
       version = "1.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz";
-        sha512 = "5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==";
+        sha512 = "0whj0m29370fn3imrlj2dw0xmr33j2gn30kn96xpxckz7i1b21pj6vlgsn4ggxl79mz2ckng5mdxbkczcwkjry497s8xkgw7c815nz4";
       };
     };
     "public-encrypt-4.0.3" = {
@@ -2341,7 +2341,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz";
-        sha512 = "zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==";
+        sha512 = "3qnsvs746b98ifyv12qj1g6hl6fq25vip5mswhvn3gnl7r32fids6mw3jb0gdcqrrl5x9ik475sf0vx6mbhmif49idkwjwrhbr5lnnd";
       };
     };
     "punycode-1.3.2" = {
@@ -2368,7 +2368,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
-        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
+        sha512 = "381vqgh5xkqzrr6cxbzfykgnnk83m7qgpx3wjwj1hddn3sg2aibjxyr30rajpgv4js0cqknrbzwbfk5ryhiiyigzfjrk3zysy6i26sx";
       };
     };
     "qs-0.6.6" = {
@@ -2386,7 +2386,7 @@ let
       version = "6.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
-        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
+        sha512 = "0c46ws0x9g3mmkgfmvd78bzvnmv2b8ryg4ah6jvyyqgjv9v994z7xdyvsc4vg9sf98gg7phvy3q1ahgaj5fy3dwzf2rki6bixgl15ip";
       };
     };
     "querystring-0.2.0" = {
@@ -2413,7 +2413,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz";
-        sha512 = "vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==";
+        sha512 = "2cimbs750ysa2wxsiw9mmc1xqjb8w0c4s22p2mv2n676s8hchvzcl1l5p78jnk62d2jzacpr9zbl9w64kaqnipcbaa25q7ywn47g2dx";
       };
     };
     "randomfill-1.0.4" = {
@@ -2422,7 +2422,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz";
-        sha512 = "87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==";
+        sha512 = "0pm7c7mw7a3qwjr21f8cvxaa2sq5l4svqs51lppn833x0yvz3yx8x4vbd4rswjynykvlgvn4hrpq327pvbzp428f4b1fciy3xnmrfgk";
       };
     };
     "read-only-stream-2.0.0" = {
@@ -2449,7 +2449,7 @@ let
       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==";
+        sha512 = "0zrh6gjjzwwycwydra51xcrgjgzyqv6dq38bfpwzmlqn702mwb4nj4sjjn499rycqndfk6rby0dksnq72x8pcbvqv0b2893mvq6if0i";
       };
     };
     "readable-stream-3.6.0" = {
@@ -2458,7 +2458,7 @@ let
       version = "3.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
-        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
+        sha512 = "1s8hs6ax9jwmmw558j3hyfx5lfn7qf66xg0giplz9jci7d8zp2d8vh96dzlis6xzpxfa5b2zbm8nm4mgsr71r6rl3w3qyfanb5qfn05";
       };
     };
     "readdirp-3.2.0" = {
@@ -2467,7 +2467,7 @@ let
       version = "3.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz";
-        sha512 = "crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==";
+        sha512 = "0chzz12q3inpmwm6b4gi7g9n39jp24ah3mmjgss87hfsbx86vnxf49bx9wk2ng66037x2fh0cjf5rgx00c1m86lqlh7r6g9xm13ifbj";
       };
     };
     "rechoir-0.6.2" = {
@@ -2494,7 +2494,7 @@ let
       version = "2.88.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz";
-        sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==";
+        sha512 = "23hm71jcxrwvp33azx8mx3w6dg21fr4w6lwvkvxyf6ckvhk3hz9dk8lzgkbiyzfl9ylhp4n807xp88ppq4gj5h07cmrgxf6nwxfvjrj";
       };
     };
     "request-progress-0.3.1" = {
@@ -2521,7 +2521,7 @@ let
       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==";
+        sha512 = "2d0gd2x49nz3hgfwms6326sjw5fx7gqf997dnggc7l084cibgang6wr6ryksky32fvdz1bq72xm73kfxd3lj2qnfyjsp57jq287k8rl";
       };
     };
     "resolve-1.1.7" = {
@@ -2539,7 +2539,7 @@ let
       version = "1.15.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz";
-        sha512 = "84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==";
+        sha512 = "3pr5zjp8nh6qfllxnpqx531srx1igzdm28j4zg1y53yzc8qxp16yx01pw8cp7y4frla90gnpv622d6bi6aayi03iqlkb8gdjklji2pk";
       };
     };
     "rimraf-2.2.8" = {
@@ -2557,7 +2557,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz";
-        sha512 = "ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==";
+        sha512 = "0hbd4cqbkycj691cj7gm40x3x5w46xk56xkg6n11wskc3k4xbdz1xxxyy6r27rcwipkzp19y1fmpfmb4lgf10l8asn6prdn11m24bla";
       };
     };
     "safe-buffer-5.1.2" = {
@@ -2566,7 +2566,7 @@ let
       version = "5.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
-        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+        sha512 = "3xbm0dkya4bc3zwfwpdzbl8ngq0aai5ihlp2v3s39y7162c7wyvv9izj3g8hv6dy6vm2lq48lmfzygk0kxwbjb6xic7k4a329j99p8r";
       };
     };
     "safe-buffer-5.2.0" = {
@@ -2575,7 +2575,7 @@ let
       version = "5.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==";
+        sha512 = "1pb164cfv1ip3s1rp008433rak88mdcch24q84cbfndg0dzky2ij8vjvsiyx2qf3rg4dgs82zk7vnrd9hkqqdcvp4lbk5ymcr8314bx";
       };
     };
     "safer-buffer-2.1.2" = {
@@ -2584,7 +2584,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+        sha512 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1";
       };
     };
     "semver-1.1.4" = {
@@ -2602,7 +2602,7 @@ let
       version = "5.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
-        sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
+        sha512 = "0cl68vp0ymkjpvim4s24v3awyk37d1bfbqrqv4ybwfi8yxga3d8fma2d6bh8dd4i2dsfwca324vaxm5dms61kdlmihdarfgzw6rmaxi";
       };
     };
     "set-blocking-2.0.0" = {
@@ -2620,7 +2620,7 @@ let
       version = "2.4.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz";
-        sha512 = "QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==";
+        sha512 = "2lihh3p2mrwymrly93ni37b1dvzwbm1jc47iqp66ax4bj41js4mr94wghv3c2agq98bb44nxxddn2n67ab978zk00xx2znw3vj2kha0";
       };
     };
     "shasum-1.0.2" = {
@@ -2638,7 +2638,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz";
-        sha512 = "Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==";
+        sha512 = "1bdc4kbk4jy4crxvf36kwbf91ya8xy2xap7mlrdxz44j51y77mhfgzp846w2bxwiw3rrj9lbcylc636ffm7j8c66fx5iigpkyp3kai2";
       };
     };
     "shell-quote-1.7.2" = {
@@ -2647,7 +2647,7 @@ let
       version = "1.7.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz";
-        sha512 = "mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==";
+        sha512 = "11a56bai83fzl9zdqp594aypy7f31mkm2whi4ar94wf0w6lzmzfmbw4qd6bn1bibkmb9407wkff5k3d7xvsi3ycj2mw1camyadzy74r";
       };
     };
     "shelljs-0.3.0" = {
@@ -2737,7 +2737,7 @@ let
       version = "0.6.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
-        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
+        sha512 = "3p7hw8p69ikj5mwapmqkacsjnbvdfk5ylyamjg9x5izkl717xvzj0vk3fnmx1n4pf54h5rs7r8ig5kk4jv4ycqqj0hv75cnx6k1lf2j";
       };
     };
     "sprintf-js-1.0.3" = {
@@ -2755,7 +2755,7 @@ let
       version = "1.16.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
-        sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
+        sha512 = "0i4jnrxh6i17qij2vfki7qxmk435cnacvg363qg0hya5incfj57akgbas8zcx2cl5pds9jfgfyhqm8wlqz6damsg059gymv99aylx8x";
       };
     };
     "stream-browserify-2.0.2" = {
@@ -2764,7 +2764,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz";
-        sha512 = "nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==";
+        sha512 = "2mfvadpwj9mzxps4arl1frxlkz96hfp0sc5pvq76s0ijf8fgw26mm3a721zq3iz1f8155w3a41wkixbdlwn1cavv0mzics796da2zlx";
       };
     };
     "stream-combiner2-1.1.1" = {
@@ -2791,7 +2791,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz";
-        sha512 = "Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==";
+        sha512 = "275m2xn6ygpp4iw0mjl0a2x39m333xxmr3qlk47mymsqxn8wg8czyv608nbg89w7vyn483ik8f7vlmx107yx4vw06r89fagygiy2b2y";
       };
     };
     "string-width-2.1.1" = {
@@ -2800,7 +2800,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
-        sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
+        sha512 = "29s1fqgr4mnhfxwczgdghfmmc1f792m9hysvcjxw2h5lfj8ndf2b6gm02m96qk5m75g4aisijvng4pk618anwbr8i9ay2jyszkqgslw";
       };
     };
     "string-width-3.1.0" = {
@@ -2809,7 +2809,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
-        sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
+        sha512 = "3bix3jva53vcp1im3aa1y2v1lywkm7ix81gkwkj4915s2675pmw1c9n5x98q1m985hzgwkk1fnc2q78qz7s0fixhf994md3lazxr9xx";
       };
     };
     "string.prototype.trimleft-2.1.1" = {
@@ -2818,7 +2818,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz";
-        sha512 = "iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==";
+        sha512 = "013lf0f398s2xb9jhq9acspdnnk52k7whcga9am4b8a2wrgpc2w7xgkydg4sg4ah9z3i1syimzqs7dc89390xmwlx8zxf6gvlcq1vca";
       };
     };
     "string.prototype.trimright-2.1.1" = {
@@ -2827,7 +2827,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz";
-        sha512 = "qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==";
+        sha512 = "3x2qc2fc2fh9sj3vw9w45h246vspjfn88b0k356ldazylhap91vg825bppg73s9n63kwpql3gpw24lv8zx0b2arblcqhh7ygwpxcnx8";
       };
     };
     "string_decoder-0.10.31" = {
@@ -2845,7 +2845,7 @@ let
       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==";
+        sha512 = "315yd4vzwrwk3vwj1klf46y1cj2jbvf88066y2rnwhksb98phj46jkxixbwsp3h607w7czy7cby522s7sx8mvspdpdm3s72y2ga3x4z";
       };
     };
     "string_decoder-1.3.0" = {
@@ -2854,7 +2854,7 @@ let
       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==";
+        sha512 = "1w0mz57mvmqykm0jwma6lr4i9pip8p8c1ldaax7sxnrl6j0jbrkwggs037r1psmac0w04i9mb2rc1gzj1n2f0xvy1fr332n9pqmfi46";
       };
     };
     "strip-ansi-4.0.0" = {
@@ -2872,7 +2872,7 @@ let
       version = "5.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
-        sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
+        sha512 = "1cf4mpsr46nik5xxyb9wc4cz6c4yymi2ijpfx1nghnkl39l8pgq1sc7q19jzrjkwpn9i7hwg4q3rs4ny3vssrc6506an1lv0bb6rr0f";
       };
     };
     "strip-json-comments-1.0.4" = {
@@ -2908,7 +2908,7 @@ let
       version = "5.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
-        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+        sha512 = "2ihqi2z38fr1sq2jvwqgjqymncmkhxqz0x3bi97w4b4fn24wsdy71j139p95sb3nfrh3a449n0sqhm1z0jsi04860y8vdy8sp0n6da2";
       };
     };
     "supports-color-6.0.0" = {
@@ -2917,7 +2917,7 @@ let
       version = "6.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz";
-        sha512 = "on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==";
+        sha512 = "0p5l02lyminbqmcpm7257093sd8w5ca7q5xnnym2z71bwbhmisnyzn2jh5xma418sx29m8yinka6f7rphc7dl76lc88bm2w4z14lzx2";
       };
     };
     "supports-color-7.1.0" = {
@@ -2926,7 +2926,7 @@ let
       version = "7.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz";
-        sha512 = "oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==";
+        sha512 = "3k12babask2rk5v9n9wdgng00rqac2w5wwvkawlx3brjpqvfpy4j70650ggw5pa7bm5hnn1ppsppsqrcwrvjsk1mxb3vi993yjqh551";
       };
     };
     "syntax-error-1.4.0" = {
@@ -2935,7 +2935,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz";
-        sha512 = "YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==";
+        sha512 = "3psid3r9b0gmnkf2ggydlw1nrcnyqa78smdihifdvff5vmlq92v8qyd6zfi94wczhllcyxl78zbc47cvz3h6xpa9v372xp6msxybwv0";
       };
     };
     "throttleit-0.0.2" = {
@@ -2962,7 +2962,7 @@ let
       version = "2.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz";
-        sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==";
+        sha512 = "14xi6lbly1f37015ny2pzcnf5kaksjmpnhm61gfhwn686w5ac519qb1icxdda974n84f342g0y15kysj1hci2vl40z91aiivyhx2spy";
       };
     };
     "timers-browserify-1.4.2" = {
@@ -2980,7 +2980,7 @@ let
       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==";
+        sha512 = "2qkrna8q80arai14s6f17djc3cgwiilnhibfykwzkif4gs9ny3fmqmxqf56fvc7fjwyr01p97nk1ckd67s8476cslmj3rwp7s5zp4zb";
       };
     };
     "tough-cookie-2.5.0" = {
@@ -2989,7 +2989,7 @@ let
       version = "2.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
-        sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
+        sha512 = "3xgcny117pqhfncr4gbmagzlnjiqqgq0lrvmljdfcdy64nc0xjfcbf1r08dmp1v1m3s51kq0yxc18nl3j9lbpr5bp5lgmi6719yqlly";
       };
     };
     "tough-cookie-3.0.1" = {
@@ -2998,7 +2998,7 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz";
-        sha512 = "yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==";
+        sha512 = "2raf12jixrfcagphh9s0fagbfk5va7m0jpj9dbc5dk5b5rr8xbxz4j1af4ppvillqnbi39yiicwnj1qpppc89c71zywnri9xv98j369";
       };
     };
     "tslib-1.11.1" = {
@@ -3007,7 +3007,7 @@ let
       version = "1.11.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz";
-        sha512 = "aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==";
+        sha512 = "0c0k843zya7w9k5snfr3g76wz2vyl99q149safl5g364jjwq839h3qf8c17i8mahdcqc3zj3xgfv0nv9pcxfm8axva0d49w4vqvr5b9";
       };
     };
     "tty-browserify-0.0.1" = {
@@ -3016,7 +3016,7 @@ let
       version = "0.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz";
-        sha512 = "C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==";
+        sha512 = "33h4i99m8bj5vqm3hmvfhi19whavny64ic0mr4yl8s14riw077ballp49zbv3kzy8615pad3gfcy7fxa86za1q41biqpmdwn8xxlx0b";
       };
     };
     "tunnel-agent-0.4.3" = {
@@ -3052,7 +3052,7 @@ let
       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==";
+        sha512 = "3z3kf4kgd3czn50a158v1k2l61lpbznrbk8xvh2pdsfsrcsda3271427fzmp1r7awnvvzrhzclfm03cpv671rdlqyz56xpmh6cgzyni";
       };
     };
     "typedarray-0.0.6" = {
@@ -3070,7 +3070,7 @@ let
       version = "3.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz";
-        sha512 = "4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==";
+        sha512 = "2iz3bypw716y5lgdg89d7jwnkqnla4sid3l5hr2259ypf8h6sbkw3n0xa51ckzkkayf0c39ksaiax2j6ighj36p5ipwh5p1wx50d1z0";
       };
     };
     "undeclared-identifiers-1.1.3" = {
@@ -3079,7 +3079,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz";
-        sha512 = "pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==";
+        sha512 = "0xp0ipldz5gsxzh6lm1gj69ab3y6pwn9yq68b8lqg4f3jsl8kr0wkn0kd3fqvs0i71kzhp6g3z0q9rdy4xy6i0a53q6g5k3gki9d4x4";
       };
     };
     "uri-js-4.2.2" = {
@@ -3088,7 +3088,7 @@ let
       version = "4.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
-        sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==";
+        sha512 = "2fz60s71ghl56ddfiiaws81xpiidlbjk69jyjmahz190d2advy9zdbcwh5if4rgg5hxdbfxhkwiipjrnjy8w834bxsmzambd2p4b3r9";
       };
     };
     "url-0.11.0" = {
@@ -3115,7 +3115,7 @@ let
       version = "0.10.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/util/-/util-0.10.4.tgz";
-        sha512 = "0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==";
+        sha512 = "3sbbgsya51i86ih8bn3nfwi3f9556xlnwh32z4k54dwcpi0jibhfa5dpbfmpzyla63yh2zlxs9chl6wkhc8bqjmjxjyxc9p6j2vvyfh";
       };
     };
     "util-deprecate-1.0.2" = {
@@ -3133,7 +3133,7 @@ let
       version = "3.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
-        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+        sha512 = "3y9pcli1v8nqryqd2c4pxj9kcv92mjc22z4smg08pdjzrbwda19xmjbzms1dwr04995h4carz9s8mldbiqb8708694lwr501r3q6d0y";
       };
     };
     "verror-1.10.0" = {
@@ -3151,7 +3151,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz";
-        sha512 = "2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==";
+        sha512 = "00japcjqx1df1bgck837ds0xvg5dr7g4j30a38zhbmanqss2kyxs4p7pgmldlnxpa31js50gydy8x9qi89s4x74iidf6k6nfgqsc5ns";
       };
     };
     "which-1.0.9" = {
@@ -3169,7 +3169,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz";
-        sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==";
+        sha512 = "0hr4hxkk8yb9fz993bs69pf8z2z2qb6sdpxfxb84sd16lja9fsx444pk1ang1ivmjjv5srnsm6fihdj593w7rwxdh834cdmd9hms4hz";
       };
     };
     "which-module-2.0.0" = {
@@ -3187,7 +3187,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
-        sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+        sha512 = "2224a32flpf40nhq6rj4idzkcdz0vx65bfxp90hd06db18l6fiqgxz1xnaygm3pbfb1a6v73hl8ryq4996b09zwwins0bqprx0hwsa0";
       };
     };
     "wrap-ansi-5.1.0" = {
@@ -3196,7 +3196,7 @@ let
       version = "5.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
-        sha512 = "QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==";
+        sha512 = "3nmsfqfd98a7bgjyhd334y5gzc98nnkipfkmk2z1v4m0acagmpq951d8brmrsxvpnk256fbrp7zkn5n8v02pn4q4zai7zgnvy47yba0";
       };
     };
     "wrappy-1.0.2" = {
@@ -3214,7 +3214,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
-        sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
+        sha512 = "08w1d6fg23v422cfwd55306pfs9n9cqpz6hycahq3adm3n29wmhl9bmpn4vk75rlzgwn7hp4n3idqxvw8c53zbr04h7a98p43b199ic";
       };
     };
     "y18n-4.0.0" = {
@@ -3223,7 +3223,7 @@ let
       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==";
+        sha512 = "3zj75gvpcgiphxpci4ji1znykk9n4cs0aw3dd6inwdvkmxyqn2483vya70lssjwq8alspnpw88vgii21fdrcn2vmfyppzgf4mkvzm5g";
       };
     };
     "yargs-13.3.0" = {
@@ -3250,7 +3250,7 @@ let
       version = "1.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz";
-        sha512 = "W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==";
+        sha512 = "17qgbcv8wypl4qr620558qd8ff03nqqiq84mp200mizrbsfj4nyil345iny8zx4ia5hfpjmk2mnhqp7y54qpsypd993ml57cj14mnsv";
       };
     };
   };
@@ -3484,7 +3484,7 @@ in
     version = "3.11.1";
     src = fetchurl {
       url = "https://registry.npmjs.org/less/-/less-3.11.1.tgz";
-      sha512 = "tlWX341RECuTOvoDIvtFqXsKj072hm3+9ymRBe76/mD6O5ZZecnlAOVDlWAleF2+aohFrxNidXhv2773f6kY7g==";
+      sha512 = "3p1iabzyyzdnvvqfmi17bs5i1mbwpbq4mh9ahz503jwjyarjqxzlq7yzbp0b499yzz6v1pn9s7hlyx98pxj40zs7a9jn42iipgrfmdn";
     };
     dependencies = [
       sources."ajv-6.12.0"
@@ -3884,7 +3884,7 @@ in
     version = "0.8.3";
     src = fetchurl {
       url = "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz";
-      sha512 = "fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==";
+      sha512 = "3ndzzikwq0c0084xy1s0v9q2msc8wc7qrmi0bi1llshsmlhfz4dn1k9i2r666ls7xmq62idmify0ksc1vq3mrjqcrqbm20na0m03kbx";
     };
     dependencies = [
       sources."balanced-match-1.0.0"
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 a9496f26dec..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.4.1";
+  version = "4.5.2";
 
   src = fetchurl {
     url = "https://github.com/twbs/bootstrap/releases/download/v${version}/${pname}-${version}-dist.zip";
-    sha256 = "1gdzp54f2xyvbw9hnyjlj4s69jvxkxr3hqclq1c8ajmx39s7rymz";
+    sha256 = "03brvh7fir9ylfr0c5b6kvf79bkjny0wxw4r5q8x8h2niycrkazg";
   };
 
   buildInputs = [ unzip ];
diff --git a/pkgs/games/angband/default.nix b/pkgs/games/angband/default.nix
index e7681a4b7f8..937fd30d405 100644
--- a/pkgs/games/angband/default.nix
+++ b/pkgs/games/angband/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "angband";
-  version = "4.2.0";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "angband";
     repo = "angband";
     rev = version;
-    sha256 = "0fr59986swx9a2xkxkbfgadzpwy2lq55fgcib05k393kibyz49kg";
+    sha256 = "174fphiywwb4yb3kqavwaysx7c97an2n8wjbm4p4d41i1svjsryz";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/games/anki/default.nix b/pkgs/games/anki/default.nix
index 1548a9de63a..0d713b1f71e 100644
--- a/pkgs/games/anki/default.nix
+++ b/pkgs/games/anki/default.nix
@@ -22,179 +22,180 @@
 , setuptools
 , send2trash
 , CoreAudio
-# This little flag adds a huge number of dependencies, but we assume that
-# everyone wants Anki to draw plots with statistics by default.
+  # This little flag adds a huge number of dependencies, but we assume that
+  # everyone wants Anki to draw plots with statistics by default.
 , plotsSupport ? true
-# manual
+  # manual
 , asciidoc
 }:
 
 let
-    # when updating, also update rev-manual to a recent version of
-    # https://github.com/dae/ankidocs
-    # The manual is distributed independently of the software.
-    version = "2.1.15";
-    sha256-pkg = "12dvyf3j9df4nrhhnqbzd9b21rpzkh4i6yhhangn2zf7ch0pclss";
-    rev-manual = "8f6387867ac37ef3fe9d0b986e70f898d1a49139";
-    sha256-manual = "0pm5slxn78r44ggvbksz7rv9hmlnsvn9z811r6f63dsc8vm6mfml";
-
-    manual = stdenv.mkDerivation {
-      pname = "anki-manual";
-      inherit version;
-      src = fetchFromGitHub {
-        owner = "dae";
-        repo = "ankidocs";
-        rev = rev-manual;
-        sha256 = sha256-manual;
-      };
-      phases = [ "unpackPhase" "patchPhase" "buildPhase" ];
-      nativeBuildInputs = [ asciidoc ];
-      patchPhase = ''
-        # rsync isnt needed
-        # WEB is the PREFIX
-        # We remove any special ankiweb output generation
-        # and rename every .mako to .html
-        sed -e 's/rsync -a/cp -a/g' \
-            -e "s|\$(WEB)/docs|$out/share/doc/anki/html|" \
-            -e '/echo asciidoc/,/mv $@.tmp $@/c \\tasciidoc -b html5 -o $@ $<' \
-            -e 's/\.mako/.html/g' \
-            -i Makefile
-        # patch absolute links to the other language manuals
-        sed -e 's|https://apps.ankiweb.net/docs/|link:./|g' \
-            -i {manual.txt,manual.*.txt}
-        # there’s an artifact in most input files
-        sed -e '/<%def.*title.*/d' \
-            -i *.txt
-        mkdir -p $out/share/doc/anki/html
-      '';
+  # when updating, also update rev-manual to a recent version of
+  # https://github.com/ankitects/anki-docs
+  # The manual is distributed independently of the software.
+  version = "2.1.15";
+  sha256-pkg = "12dvyf3j9df4nrhhnqbzd9b21rpzkh4i6yhhangn2zf7ch0pclss";
+  rev-manual = "8f6387867ac37ef3fe9d0b986e70f898d1a49139";
+  sha256-manual = "0pm5slxn78r44ggvbksz7rv9hmlnsvn9z811r6f63dsc8vm6mfml";
+
+  manual = stdenv.mkDerivation {
+    pname = "anki-manual";
+    inherit version;
+    src = fetchFromGitHub {
+      owner = "ankitects";
+      repo = "anki-docs";
+      rev = rev-manual;
+      sha256 = sha256-manual;
     };
+    phases = [ "unpackPhase" "patchPhase" "buildPhase" ];
+    nativeBuildInputs = [ asciidoc ];
+    patchPhase = ''
+      # rsync isnt needed
+      # WEB is the PREFIX
+      # We remove any special ankiweb output generation
+      # and rename every .mako to .html
+      sed -e 's/rsync -a/cp -a/g' \
+          -e "s|\$(WEB)/docs|$out/share/doc/anki/html|" \
+          -e '/echo asciidoc/,/mv $@.tmp $@/c \\tasciidoc -b html5 -o $@ $<' \
+          -e 's/\.mako/.html/g' \
+          -i Makefile
+      # patch absolute links to the other language manuals
+      sed -e 's|https://apps.ankiweb.net/docs/|link:./|g' \
+          -i {manual.txt,manual.*.txt}
+      # there’s an artifact in most input files
+      sed -e '/<%def.*title.*/d' \
+          -i *.txt
+      mkdir -p $out/share/doc/anki/html
+    '';
+  };
 
 in
 buildPythonApplication rec {
-    pname = "anki";
-    inherit version;
-
-    src = fetchurl {
-      urls = [
-        "https://apps.ankiweb.net/downloads/current/${pname}-${version}-source.tgz"
-        # "https://apps.ankiweb.net/downloads/current/${name}-source.tgz"
-        # "http://ankisrs.net/download/mirror/${name}.tgz"
-        # "http://ankisrs.net/download/mirror/archive/${name}.tgz"
-      ];
-      sha256 = sha256-pkg;
-    };
-
-    outputs = [ "out" "doc" "man" ];
-
-    propagatedBuildInputs = [
-      pyqtwebengine sqlalchemy beautifulsoup4 send2trash pyaudio requests decorator
-      markdown jsonschema setuptools
-    ]
-      ++ lib.optional plotsSupport matplotlib
-      ++ lib.optional stdenv.isDarwin [ CoreAudio ]
-      ;
-
-    checkInputs = [ pytest glibcLocales nose ];
-
-    nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
-    buildInputs = [ lame mplayer libpulseaudio  ];
-
-    patches = [
-      # Disable updated version check.
-      ./no-version-check.patch
+  pname = "anki";
+  inherit version;
+
+  src = fetchurl {
+    urls = [
+      "https://apps.ankiweb.net/downloads/current/${pname}-${version}-source.tgz"
+      # "https://apps.ankiweb.net/downloads/current/${name}-source.tgz"
+      # "http://ankisrs.net/download/mirror/${name}.tgz"
+      # "http://ankisrs.net/download/mirror/archive/${name}.tgz"
     ];
-
-    buildPhase = ''
-      # Dummy build phase
-      # Anki does not use setup.py
-    '';
-
-    postPatch = ''
-      # Remove unused starter. We'll create our own, minimalistic,
-      # starter.
-      # rm anki/anki
-
-      # Remove QT translation files. We'll use the standard QT ones.
-      rm "locale/"*.qm
-
-      # hitting F1 should open the local manual
-      substituteInPlace anki/consts.py \
-        --replace 'HELP_SITE="http://ankisrs.net/docs/manual.html"' \
-                  'HELP_SITE="${manual}/share/doc/anki/html/manual.html"'
-    '';
-
-    # UTF-8 locale needed for testing
-    LC_ALL = "en_US.UTF-8";
-
-    checkPhase = ''
-      # - Anki writes some files to $HOME during tests
-      # - Skip tests using network
-      env HOME=$TMP pytest --ignore tests/test_sync.py
-    '';
-
-    installPhase = ''
-      pp=$out/lib/${python.libPrefix}/site-packages
-
-      mkdir -p $out/bin
-      mkdir -p $out/share/applications
-      mkdir -p $doc/share/doc/anki
-      mkdir -p $man/share/man/man1
-      mkdir -p $out/share/mime/packages
-      mkdir -p $out/share/pixmaps
-      mkdir -p $pp
-
-      cat > $out/bin/anki <<EOF
-      #!${python}/bin/python
-      import aqt
-      aqt.run()
-      EOF
-      chmod 755 $out/bin/anki
-
-      cp -v anki.desktop $out/share/applications/
-      cp -v README* LICENSE* $doc/share/doc/anki/
-      cp -v anki.1 $man/share/man/man1/
-      cp -v anki.xml $out/share/mime/packages/
-      cp -v anki.{png,xpm} $out/share/pixmaps/
-      cp -rv locale $out/share/
-      cp -rv anki aqt web $pp/
-
-      # copy the manual into $doc
-      cp -r ${manual}/share/doc/anki/html $doc/share/doc/anki
-    '';
-
-    dontWrapQtApps = true;
-
-    preFixup = ''
-      makeWrapperArgs+=(
-        "''${qtWrapperArgs[@]}"
-        --prefix PATH ':' "${lame}/bin:${mplayer}/bin"
-      )
+    sha256 = sha256-pkg;
+  };
+
+  outputs = [ "out" "doc" "man" ];
+
+  propagatedBuildInputs = [
+    pyqtwebengine
+    sqlalchemy
+    beautifulsoup4
+    send2trash
+    pyaudio
+    requests
+    decorator
+    markdown
+    jsonschema
+    setuptools
+  ]
+  ++ lib.optional plotsSupport matplotlib
+  ++ lib.optional stdenv.isDarwin [ CoreAudio ]
+  ;
+
+  checkInputs = [ pytest glibcLocales nose ];
+
+  nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
+  buildInputs = [ lame mplayer libpulseaudio ];
+
+  patches = [
+    # Disable updated version check.
+    ./no-version-check.patch
+  ];
+
+  # Anki does not use setup.py
+  dontBuild = true;
+
+  postPatch = ''
+    # Remove QT translation files. We'll use the standard QT ones.
+    rm "locale/"*.qm
+
+    # hitting F1 should open the local manual
+    substituteInPlace anki/consts.py \
+      --replace 'HELP_SITE="http://ankisrs.net/docs/manual.html"' \
+                'HELP_SITE="${manual}/share/doc/anki/html/manual.html"'
+  '';
+
+  # UTF-8 locale needed for testing
+  LC_ALL = "en_US.UTF-8";
+
+  # - Anki writes some files to $HOME during tests
+  # - Skip tests using network
+  checkPhase = ''
+    HOME=$TMP pytest --ignore tests/test_sync.py
+  '';
+
+  installPhase = ''
+    pp=$out/lib/${python.libPrefix}/site-packages
+
+    mkdir -p $out/bin
+    mkdir -p $out/share/applications
+    mkdir -p $doc/share/doc/anki
+    mkdir -p $man/share/man/man1
+    mkdir -p $out/share/mime/packages
+    mkdir -p $out/share/pixmaps
+    mkdir -p $pp
+
+    cat > $out/bin/anki <<EOF
+    #!${python}/bin/python
+    import aqt
+    aqt.run()
+    EOF
+    chmod 755 $out/bin/anki
+
+    cp -v anki.desktop $out/share/applications/
+    cp -v README* LICENSE* $doc/share/doc/anki/
+    cp -v anki.1 $man/share/man/man1/
+    cp -v anki.xml $out/share/mime/packages/
+    cp -v anki.{png,xpm} $out/share/pixmaps/
+    cp -rv locale $out/share/
+    cp -rv anki aqt web $pp/
+
+    # copy the manual into $doc
+    cp -r ${manual}/share/doc/anki/html $doc/share/doc/anki
+  '';
+
+  # now wrapPythonPrograms from postFixup will add both python and qt env variables
+  dontWrapQtApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=(
+      "''${qtWrapperArgs[@]}"
+      --prefix PATH ':' "${lame}/bin:${mplayer}/bin"
+    )
+  '';
+
+  passthru = {
+    inherit manual;
+  };
+
+  meta = with lib; {
+    homepage = "https://apps.ankiweb.net/";
+    description = "Spaced repetition flashcard program";
+    longDescription = ''
+      Anki is a program which makes remembering things easy. Because it is a lot
+      more efficient than traditional study methods, you can either greatly
+      decrease your time spent studying, or greatly increase the amount you learn.
+
+      Anyone who needs to remember things in their daily life can benefit from
+      Anki. Since it is content-agnostic and supports images, audio, videos and
+      scientific markup (via LaTeX), the possibilities are endless. For example:
+      learning a language, studying for medical and law exams, memorizing
+      people's names and faces, brushing up on geography, mastering long poems,
+      or even practicing guitar chords!
     '';
-
-    # now wrapPythonPrograms from postFixup will add both python and qt env variables
-
-    passthru = {
-      inherit manual;
-    };
-
-    meta = with lib; {
-      homepage = "https://apps.ankiweb.net/";
-      description = "Spaced repetition flashcard program";
-      longDescription = ''
-        Anki is a program which makes remembering things easy. Because it is a lot
-        more efficient than traditional study methods, you can either greatly
-        decrease your time spent studying, or greatly increase the amount you learn.
-
-        Anyone who needs to remember things in their daily life can benefit from
-        Anki. Since it is content-agnostic and supports images, audio, videos and
-        scientific markup (via LaTeX), the possibilities are endless. For example:
-        learning a language, studying for medical and law exams, memorizing
-        people's names and faces, brushing up on geography, mastering long poems,
-        or even practicing guitar chords!
-      '';
-      license = licenses.agpl3Plus;
-      broken = stdenv.hostPlatform.isAarch64;
-      platforms = platforms.mesaPlatforms;
-      maintainers = with maintainers; [ oxij Profpatsch enzime ];
-    };
+    license = licenses.agpl3Plus;
+    broken = stdenv.hostPlatform.isAarch64;
+    platforms = platforms.mesaPlatforms;
+    maintainers = with maintainers; [ oxij Profpatsch enzime ];
+  };
 }
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/assaultcube/default.nix b/pkgs/games/assaultcube/default.nix
index f40e2ecf220..6c3a7f1168e 100644
--- a/pkgs/games/assaultcube/default.nix
+++ b/pkgs/games/assaultcube/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     desktopName = "AssaultCube";
     comment = "A multiplayer, first-person shooter game, based on the CUBE engine. Fast, arcade gameplay.";
     genericName = "First-person shooter";
-    categories = "Application;Game;ActionGame;Shooter";
+    categories = "Game;ActionGame;Shooter";
     icon = "assaultcube.png";
     exec = pname;
   };
diff --git a/pkgs/games/augustus/default.nix b/pkgs/games/augustus/default.nix
new file mode 100644
index 00000000000..cabe419ef5b
--- /dev/null
+++ b/pkgs/games/augustus/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, cmake, SDL2, SDL2_mixer, libpng }:
+
+stdenv.mkDerivation rec {
+  pname = "augustus";
+  version = "1.4.1a";
+
+  src = fetchFromGitHub {
+    owner = "Keriew";
+    repo = "augustus";
+    rev = "v${version}";
+    sha256 = "1xqv8j8jh3f13fjhyf7hk1anrn799cwwsvsd75kpl9n5yh5s1j5y";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ SDL2 SDL2_mixer libpng ];
+
+  meta = with stdenv.lib; {
+    description = "An open source re-implementation of Caesar III. Fork of Julius incorporating gameplay changes";
+    homepage = "https://github.com/Keriew/augustus";
+    license = licenses.agpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ Thra11 ];
+  };
+}
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 0d0bab2c4eb..be4ec7b73b4 100644
--- a/pkgs/games/chiaki/default.nix
+++ b/pkgs/games/chiaki/default.nix
@@ -4,14 +4,14 @@
 
 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 = [
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/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/lazy-pack.nix b/pkgs/games/dwarf-fortress/lazy-pack.nix
index e5cfe6da171..03aa5d54304 100644
--- a/pkgs/games/dwarf-fortress/lazy-pack.nix
+++ b/pkgs/games/dwarf-fortress/lazy-pack.nix
@@ -16,6 +16,7 @@
 , enableTruetype ? true
 , enableFPS ? false
 , enableTextMode ? false
+, enableSound ? true
 }:
 
 with lib;
@@ -32,7 +33,7 @@ buildEnv {
   paths = [
     (dwarf-fortress.override {
       inherit enableDFHack enableTWBT enableSoundSense enableStoneSense theme
-              enableIntro enableTruetype enableFPS enableTextMode;
+              enableIntro enableTruetype enableFPS enableTextMode enableSound;
     })]
     ++ lib.optional enableDwarfTherapist dwarf-therapist
     ++ lib.optional enableLegendsBrowser legends-browser;
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/default.nix b/pkgs/games/dwarf-fortress/wrapper/default.nix
index 31b21c5a435..79b63e3ce9e 100644
--- a/pkgs/games/dwarf-fortress/wrapper/default.nix
+++ b/pkgs/games/dwarf-fortress/wrapper/default.nix
@@ -12,6 +12,7 @@
 , enableTruetype ? true
 , enableFPS ? false
 , enableTextMode ? false
+, enableSound ? true
 }:
 
 let
@@ -67,7 +68,8 @@ let
     substituteInPlace $out/data/init/init.txt \
       --replace '[INTRO:YES]' '[INTRO:${unBool enableIntro}]' \
       --replace '[TRUETYPE:YES]' '[TRUETYPE:${unBool enableTruetype}]' \
-      --replace '[FPS:NO]' '[FPS:${unBool enableFPS}]'
+      --replace '[FPS:NO]' '[FPS:${unBool enableFPS}]' \
+      --replace '[SOUND:YES]' '[SOUND:${unBool enableSound}]'
   ''));
 
   env = buildEnv {
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/easyrpg-player/default.nix b/pkgs/games/easyrpg-player/default.nix
index dfa57a72864..79628d0d2ae 100644
--- a/pkgs/games/easyrpg-player/default.nix
+++ b/pkgs/games/easyrpg-player/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "easyrpg-player";
-  version = "0.6.1";
+  version = "0.6.2.1";
 
   src = fetchFromGitHub {
     owner = "EasyRPG";
     repo = "Player";
     rev = version;
-    sha256 = "0w4a4jg3py0phsp99nl7abyd31salnc57w4l05a228imvyy0maia";
+    sha256 = "19wpjvlkjmjhdv1dbph6i2da1xx479zhr532x0ili1aphw1j9hi6";
   };
 
   nativeBuildInputs = [ cmake doxygen pkgconfig ];
diff --git a/pkgs/games/eduke32/default.nix b/pkgs/games/eduke32/default.nix
index 60abe296467..53baac79eed 100644
--- a/pkgs/games/eduke32/default.nix
+++ b/pkgs/games/eduke32/default.nix
@@ -12,7 +12,7 @@ let
     comment = "Duke Nukem 3D port";
     desktopName = "Enhanced Duke Nukem 3D";
     genericName = "Duke Nukem 3D port";
-    categories = "Application;Game;";
+    categories = "Game;";
   };
 
   wrapper = "eduke32-wrapper";
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/factorio/default.nix b/pkgs/games/factorio/default.nix
index 691140b5bb8..0226acf1604 100644
--- a/pkgs/games/factorio/default.nix
+++ b/pkgs/games/factorio/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, makeWrapper
+{ stdenv, fetchurl, makeWrapper, makeDesktopItem
 , alsaLib, libpulseaudio, libX11, libXcursor, libXinerama, libXrandr, libXi, libGL
-, factorio-utils
+, libSM, libICE, libXext, factorio-utils
 , releaseType
 , mods ? []
 , username ? "", token ? "" # get/reset token at https://factorio.com/profile
@@ -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 = "1fg2wnia6anzya4m53jf2xqwwspvwskz3awdb3j0v3fzijps94wc"; version = "0.17.79"; 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 = "1pr39nm23fj83jy272798gbl9003rgi4vgsi33f2iw3dk3x15kls"; version = "0.17.79"; };
+        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 {
@@ -166,7 +176,7 @@ let
       '';
       homepage = "https://www.factorio.com/";
       license = stdenv.lib.licenses.unfree;
-      maintainers = with stdenv.lib.maintainers; [ Baughn elitak ];
+      maintainers = with stdenv.lib.maintainers; [ Baughn elitak erictapen priegger ];
       platforms = [ "i686-linux" "x86_64-linux" ];
     };
   };
@@ -186,6 +196,9 @@ let
         libXrandr
         libXi
         libGL
+        libSM
+        libICE
+        libXext
       ];
 
       installPhase = base.installPhase + ''
@@ -221,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/factorio/utils.nix b/pkgs/games/factorio/utils.nix
index 563ece6cb9c..2764592a324 100644
--- a/pkgs/games/factorio/utils.nix
+++ b/pkgs/games/factorio/utils.nix
@@ -5,7 +5,7 @@ with stdenv.lib;
 {
   mkModDirDrv = mods: # a list of mod derivations
     let
-      recursiveDeps = modDrv: [modDrv] ++ optionals (modDrv.deps == []) (map recursiveDeps modDrv.deps);
+      recursiveDeps = modDrv: [modDrv] ++ map recursiveDeps modDrv.deps;
       modDrvs = unique (flatten (map recursiveDeps mods));
     in
     stdenv.mkDerivation {
diff --git a/pkgs/games/flightgear/default.nix b/pkgs/games/flightgear/default.nix
index c16c33666f3..e32f2e96d4f 100644
--- a/pkgs/games/flightgear/default.nix
+++ b/pkgs/games/flightgear/default.nix
@@ -6,15 +6,15 @@
 }:
 
 let
-  version = "2019.1.1";
+  version = "2020.1.2";
   shortVersion = builtins.substring 0 6 version;
   data = stdenv.mkDerivation rec {
-    pname = "flightgear-base";
+    pname = "flightgear-data";
     inherit version;
 
     src = fetchurl {
       url = "mirror://sourceforge/flightgear/release-${shortVersion}/FlightGear-${version}-data.tar.bz2";
-      sha256 = "14zm0hzshbca4ych72631hpc4pw2w24zib62ri3lwm8nz6j63qhf";
+      sha256 = "0ldsjb54k8nb99h6n4f4x20nawd2pa0a8skkwkrgckdpmdv0zwyk";
     };
 
     phases = [ "installPhase" ];
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2";
-    sha256 = "189wal08p9lrz757pmazxnf85sfymsqrm3nfvdad95pfp6bg7pyi";
+    sha256 = "1770kgwa7z70sx6da9x1q9cszpd3ywz6nn8jrb6xv8ldjqcpqpvb";
   };
 
   # Of all the files in the source and data archives, there doesn't seem to be
diff --git a/pkgs/games/freecell-solver/default.nix b/pkgs/games/freecell-solver/default.nix
index f574f253955..1845ba825eb 100644
--- a/pkgs/games/freecell-solver/default.nix
+++ b/pkgs/games/freecell-solver/default.nix
@@ -3,7 +3,7 @@
 , perlPackages, python3 }:
 
 with stdenv.lib;
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
 
   pname = "freecell-solver";
   version = "4.18.0";
diff --git a/pkgs/games/frogatto/default.nix b/pkgs/games/frogatto/default.nix
index 35ff9706112..efcff024a54 100644
--- a/pkgs/games/frogatto/default.nix
+++ b/pkgs/games/frogatto/default.nix
@@ -12,7 +12,7 @@ let
     comment = description;
     desktopName = "Frogatto";
     genericName = "frogatto";
-    categories = "Application;Game;ArcadeGame;";
+    categories = "Game;ArcadeGame;";
   };
   version = "unstable-2018-12-18";
 in buildEnv {
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/galaxis/default.nix b/pkgs/games/galaxis/default.nix
index 1bbbc5ead94..19df8db78a0 100644
--- a/pkgs/games/galaxis/default.nix
+++ b/pkgs/games/galaxis/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, ncurses, xmlto }:
 
 with stdenv.lib;
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
 
   pname = "galaxis";
   version = "1.10";
diff --git a/pkgs/games/gargoyle/default.nix b/pkgs/games/gargoyle/default.nix
index 8c5675407d0..c4c512be2b8 100644
--- a/pkgs/games/gargoyle/default.nix
+++ b/pkgs/games/gargoyle/default.nix
@@ -19,14 +19,15 @@ let
 
 in
 
-stdenv.mkDerivation {
-  name = "gargoyle-2018-10-06";
+stdenv.mkDerivation rec {
+  pname = "gargoyle";
+  version = "2019.1.1";
 
   src = fetchFromGitHub {
     owner = "garglk";
     repo = "garglk";
-    rev = "d03391563fa75942fbf8f8deeeacf3a8be9fc3b0";
-    sha256 = "0icwgc25gp7krq6zf66hljydc6vps6bb4knywnrfgnfcmcalqqx9";
+    rev = version;
+    sha256 = "0w54avmbp4i4zps2rb4acmpa641s6wvwbrln4vbdhcz97fx48nzz";
   };
 
   nativeBuildInputs = [ jam pkgconfig ] ++ stdenv.lib.optional stdenv.isDarwin cctools;
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/gnuchess/default.nix b/pkgs/games/gnuchess/default.nix
index 478da6dc32a..a7b27933496 100644
--- a/pkgs/games/gnuchess/default.nix
+++ b/pkgs/games/gnuchess/default.nix
@@ -3,10 +3,10 @@ let
   s = # Generated upstream information
   rec {
     baseName="gnuchess";
-    version="6.2.6";
+    version="6.2.7";
     name="${baseName}-${version}";
     url="mirror://gnu/chess/${name}.tar.gz";
-    sha256="0kxhdv01ia91v2y0cmzbll391ns2vbmn65jjrv37h4s1srszh5yn";
+    sha256="0ilq4bfl0lwyzf11q7n2skydjhalfn3bgxhrp5hjxs5bc5d6fdp5";
   };
   buildInputs = [
     flex
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 771554192d8..00df6f33821 100644
--- a/pkgs/games/hedgewars/default.nix
+++ b/pkgs/games/hedgewars/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, SDL2_image, SDL2_ttf, SDL2_net, fpc, ghcWithPackages, ffmpeg, freeglut
+{ mkDerivation, SDL2_image, SDL2_ttf, SDL2_net, fpc, ghcWithPackages, ffmpeg_3, freeglut
 , lib, fetchurl, cmake, pkgconfig, lua5_1, SDL2, SDL2_mixer
 , zlib, libpng, libGL, libGLU, physfs
 , qtbase, qttools
@@ -27,7 +27,7 @@ mkDerivation rec {
   buildInputs = [
     SDL2_ttf SDL2_net SDL2 SDL2_mixer SDL2_image
     fpc lua5_1
-    ffmpeg freeglut physfs
+    ffmpeg_3 freeglut physfs
     qtbase
   ] ++ lib.optional withServer ghc;
 
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/julius/default.nix b/pkgs/games/julius/default.nix
new file mode 100644
index 00000000000..d1dad86e1c5
--- /dev/null
+++ b/pkgs/games/julius/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, cmake, SDL2, SDL2_mixer, libpng }:
+
+stdenv.mkDerivation rec {
+  pname = "julius";
+  version = "1.4.1";
+
+  src = fetchFromGitHub {
+    owner = "bvschaik";
+    repo = "julius";
+    rev = "v${version}";
+    sha256 = "12hhnhdwgz7hd3hlndbnk15pxggm1375qs0764ija4nl1gbpb110";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ SDL2 SDL2_mixer libpng ];
+
+  meta = with stdenv.lib; {
+    description = "An open source re-implementation of Caesar III";
+    homepage = "https://github.com/bvschaik/julius";
+    license = licenses.agpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ Thra11 ];
+  };
+}
diff --git a/pkgs/games/katago/default.nix b/pkgs/games/katago/default.nix
index cbbdb538513..492ccbb63ab 100644
--- a/pkgs/games/katago/default.nix
+++ b/pkgs/games/katago/default.nix
@@ -6,6 +6,7 @@
 , cmake
 , makeWrapper
 , fetchFromGitHub
+, fetchpatch
 , cudnn ? null
 , cudatoolkit ? null
 , libGL_driver ? null
@@ -16,7 +17,7 @@
 , useTcmalloc ? true}:
 
 assert cudaSupport -> (
-  libGL_driver != null && 
+  libGL_driver != null &&
   cudatoolkit != null &&
   cudnn != null);
 
@@ -28,19 +29,19 @@ assert useTcmalloc -> (
   gperftools != null);
 
 let
-  env = if cudaSupport 
+  env = if cudaSupport
     then gcc8Stdenv
     else stdenv;
 
 in env.mkDerivation rec {
   pname = "katago";
-  version = "1.3.5";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "lightvector";
     repo = "katago";
-    rev = "v${version}";
-    sha256 = "1625s3fh0xc2ldgyl6sjdjmpliyys7rzzkcys6h9x6k828g8n0lq";
+    rev = "${version}";
+    sha256 = "0ajdjdmlzwh7zwk5v0k9zzjawgkf7w30pzqp5bhcsdqz4svvyll2";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/games/klavaro/default.nix b/pkgs/games/klavaro/default.nix
index e62c5a18233..557f75580ca 100644
--- a/pkgs/games/klavaro/default.nix
+++ b/pkgs/games/klavaro/default.nix
@@ -1,12 +1,20 @@
-{ stdenv, fetchurl, makeWrapper, pkgconfig, intltool, curl, gtk3 }:
+{ stdenv
+, fetchurl
+, makeWrapper
+, curl
+, file
+, gtk3
+, intltool
+, pkgconfig
+}:
 
 stdenv.mkDerivation rec {
   pname = "klavaro";
-  version = "3.08";
+  version = "3.10";
 
   src = fetchurl {
     url = "mirror://sourceforge/klavaro/${pname}-${version}.tar.bz2";
-    sha256 = "0qmvr6d8wshwp0xvk5wbig4vlzxzcxrakhyhd32v8v3s18nhqsrc";
+    sha256 = "0jnzdrndiq6m0bwgid977z5ghp4q61clwdlzfpx4fd2ml5x3iq95";
   };
 
   nativeBuildInputs = [ intltool makeWrapper pkgconfig ];
@@ -17,14 +25,20 @@ stdenv.mkDerivation rec {
       --prefix LD_LIBRARY_PATH : $out/lib
   '';
 
+  # Fixes /usr/bin/file: No such file or directory
+  preConfigure = ''
+    substituteInPlace configure \
+      --replace "/usr/bin/file" "${file}/bin/file"
+  '';
+
   # Hack to avoid TMPDIR in RPATHs.
   preFixup = ''rm -rf "$(pwd)" '';
 
-  meta = {
-    description = "Just another free touch typing tutor program";
+  meta = with stdenv.lib; {
+    description = "Free touch typing tutor program";
     homepage = "http://klavaro.sourceforge.net/";
-    license = stdenv.lib.licenses.gpl3Plus;
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [stdenv.lib.maintainers.mimame];
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ mimame davidak ];
   };
 }
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/linux-steam-integration/default.nix b/pkgs/games/linux-steam-integration/default.nix
deleted file mode 100644
index 2a814f30a5f..00000000000
--- a/pkgs/games/linux-steam-integration/default.nix
+++ /dev/null
@@ -1,81 +0,0 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, git, gtk, gettext,
-  gcc_multi, libressl, gnome3, steam }:
-
-let
-  version = "0.7.3";
-
-in stdenv.mkDerivation {
-  pname = "linux-steam-integration";
-  inherit version;
-
-  src = fetchFromGitHub {
-    owner = "clearlinux";
-    repo = "linux-steam-integration";
-    rev = "v${version}";
-    sha256 = "0brv3swx8h170ycxksb31sf5jvj85csfpx7gjlf6yrfz7jw2j6vp";
-    fetchSubmodules = true;
-  };
-
-  nativeBuildInputs = [ meson ninja pkgconfig git gettext gcc_multi ];
-  buildInputs = [ gtk libressl ];
-
-  # Patch lib paths (AUDIT_PATH and REDIRECT_PATH) in shim.c
-  # Patch path to lsi-steam in lsi-steam.desktop
-  # Patch path to zenity in lsi.c
-  postPatch = ''
-    substituteInPlace src/shim/shim.c --replace "/usr/" $out
-    substituteInPlace data/lsi-steam.desktop --replace "/usr/" $out
-    substituteInPlace src/lsi/lsi.c --replace zenity ${gnome3.zenity}/bin/zenity
-    substituteInPlace data/lsi-settings.desktop.in \
-      --replace "Name=Linux Steam Integration" "Name=Linux Steam Integration Settings"
-  '';
-
-  configurePhase = ''
-    # Configure 64bit things
-    meson build                           \
-      -Dwith-shim=co-exist                \
-      -Dwith-frontend=true                \
-      -Dwith-steam-binary=${steam}/bin/steam \
-      -Dwith-new-libcxx-abi=true          \
-      -Dwith-libressl-mode=native         \
-      --prefix /                          \
-      --libexecdir lib                    \
-      --libdir lib                        \
-      --bindir bin
-
-    # Configure 32bit things
-    CC="gcc -m32" CXX="g++ -m32" meson build32 \
-      -Dwith-shim=none                         \
-      -Dwith-libressl-mode=native              \
-      --prefix /                               \
-      --libexecdir lib32                       \
-      --libdir lib32
-  '';
-
-  buildPhase = ''
-    # Build 64bit things
-    ninja -C build
-
-    # Build 32bit things
-    ninja -C build32
-  '';
-
-  installPhase = ''
-    DESTDIR="$out" ninja -C build install
-    DESTDIR="$out" ninja -C build32 install
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Steam wrapper to improve compability and performance";
-    longDescription = ''
-      Linux Steam Integration is a helper system to make the Steam Client and
-      Steam games run better on Linux. In a nutshell, LSI automatically applies
-      various workarounds to get games working, and fixes long standing bugs in
-      both games and the client
-    '';
-    homepage = "https://github.com/clearlinux/linux-steam-integration";
-    license = licenses.lgpl21;
-    maintainers = [ maintainers.etu ];
-    platforms = [ "x86_64-linux" ];
-  };
-}
diff --git a/pkgs/games/minecraft-server/default.nix b/pkgs/games/minecraft-server/default.nix
index 956fbdf3aae..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.15.2";
+  version = "1.16.2";
 
   src = fetchurl {
-    url =
-      "https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar";
-    sha256 = "12kynrpxgcdg8x12wcvwkxka0fxgm5siqg8qq0nnmv0443f8dkw0";
+    url = "https://launcher.mojang.com/v1/objects/c5f6fb23c3876461d46ec380421e42b289789530/server.jar";
+    # sha1 because that comes from mojang via api
+    sha1 = "c5f6fb23c3876461d46ec380421e42b289789530";
   };
 
   preferLocalBuild = true;
@@ -25,6 +25,8 @@ stdenv.mkDerivation {
 
   phases = "installPhase";
 
+  passthru.updateScript = ./update.sh;
+
   meta = with stdenv.lib; {
     description = "Minecraft Server";
     homepage = "https://minecraft.net";
diff --git a/pkgs/games/minecraft-server/update.sh b/pkgs/games/minecraft-server/update.sh
new file mode 100755
index 00000000000..433a12a9caf
--- /dev/null
+++ b/pkgs/games/minecraft-server/update.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq common-updater-scripts
+
+BASEDIR="$(dirname "$0")"
+
+# get current release version
+versions=$(curl -s 'https://launchermeta.mojang.com/mc/game/version_manifest.json')
+version=$(echo $versions | jq .latest.release)
+url=$(echo $versions | jq -r ".versions[] | select(.id == $version) | .url")
+
+# get current server.jar
+versions=$(curl -s $url | jq .downloads.server)
+sha1=$(echo $versions | jq .sha1)
+url=$(echo $versions | jq .url)
+
+echo $version: $url:$sha1
+
+# change default.nix
+sed -i "s/version = \"[0-9.]*\";/version = ${version};/g" "$BASEDIR/default.nix"
+sed -i "s+url = \"[a-zA-Z0-9/:.]*/server.jar\";+url = $url;+g" "$BASEDIR/default.nix"
+sed -i "s/sha1 = \"[a-zA-Z0-9]*\";/sha1 = ${sha1};/g" "$BASEDIR/default.nix"
diff --git a/pkgs/games/minecraft/default.nix b/pkgs/games/minecraft/default.nix
index b29d672d0e7..9d23515c039 100644
--- a/pkgs/games/minecraft/default.nix
+++ b/pkgs/games/minecraft/default.nix
@@ -24,11 +24,11 @@
 , curl
 , freetype
 , libpulseaudio
+, libuuid
 , systemd
 , flite ? null
 , libXxf86vm ? null
 }:
-
 let
   desktopItem = makeDesktopItem {
     name = "minecraft-launcher";
@@ -36,17 +36,17 @@ let
     icon = "minecraft-launcher";
     comment = "Official launcher for Minecraft, a sandbox-building game";
     desktopName = "Minecraft Launcher";
-    categories = "Game;Application;";
+    categories = "Game;";
   };
 
   envLibPath = stdenv.lib.makeLibraryPath [
-      curl
-      libpulseaudio
-      systemd
-      alsaLib # needed for narrator
-      flite # needed for narrator
-      libXxf86vm # needed only for versions <1.13
-    ];
+    curl
+    libpulseaudio
+    systemd
+    alsaLib # needed for narrator
+    flite # needed for narrator
+    libXxf86vm # needed only for versions <1.13
+  ];
 
   libPath = stdenv.lib.makeLibraryPath ([
     alsaLib
@@ -67,6 +67,7 @@ let
     nss
     stdenv.cc.cc
     zlib
+    libuuid
   ] ++
   (with xorg; [
     libX11
@@ -83,14 +84,14 @@ let
     libXScrnSaver
   ]));
 in
- stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "minecraft-launcher";
 
-  version = "2.1.13509";
+  version = "2.1.16102";
 
   src = fetchurl {
     url = "https://launcher.mojang.com/download/linux/x86_64/minecraft-launcher_${version}.tar.gz";
-    sha256 = "1f7b4gr2cnnf6wgxdz38215v31664q2pw00yibb3cjp8a9irvs47";
+    sha256 = "17zgxmijk9mq651h7ymkr7h2099cw23kc0r7jyfkdccp60dfd60i";
   };
 
   icon = fetchurl {
@@ -133,6 +134,7 @@ in
     makeWrapper $out/opt/minecraft-launcher/minecraft-launcher $out/bin/minecraft-launcher \
       --prefix LD_LIBRARY_PATH : ${envLibPath} \
       --prefix PATH : ${stdenv.lib.makeBinPath [ jre ]} \
+      --set JAVA_HOME ${stdenv.lib.makeBinPath [ jre ]} \
       --run "cd /tmp" \
       "''${gappsWrapperArgs[@]}"
   '';
@@ -142,6 +144,7 @@ in
     homepage = "https://minecraft.net";
     maintainers = with maintainers; [ cpages ryantm infinisil ];
     license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
   };
 
   passthru.updateScript = ./update.sh;
diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix
index b2d958c5e09..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.1.1";
-    sha256 = "0cjj63333b7j4ydfq0h9yc6d2jvmyjd7n7zbd08yrf0rcibrj2k0";
-    dataSha256 = "1r9fxz2j24q74a9injvbxbf2xk67fzabv616i676zw2cvgv9hn39";
+    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/mudlet/default.nix b/pkgs/games/mudlet/default.nix
index 75d16586a39..b73af4515d3 100644
--- a/pkgs/games/mudlet/default.nix
+++ b/pkgs/games/mudlet/default.nix
@@ -6,14 +6,14 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mudlet";
-  version = "4.3";
+  version = "4.9.1";
 
   src = fetchFromGitHub {
     owner = "Mudlet";
     repo = "Mudlet";
     rev = "Mudlet-${version}";
     fetchSubmodules = true;
-    sha256 = "0qqdmivfwf9jmv5yx90z1fj99nlhnq762lfw6bcxgv74y4l4b4c0";
+    sha256 = "0i022qcmlq4xwl2yh4xd5qdc0ag52605qmqqz6bim0h8f3dp8cx1";
   };
 
   nativeBuildInputs = [ cmake wrapQtAppsHook git qttools which ];
diff --git a/pkgs/games/ninvaders/default.nix b/pkgs/games/ninvaders/default.nix
new file mode 100644
index 00000000000..26462c1eef5
--- /dev/null
+++ b/pkgs/games/ninvaders/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, cmake, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "ninvaders";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "sf-refugees";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1wmwws1zsap4bfc2439p25vnja0hnsf57k293rdxw626gly06whi";
+  };
+
+  buildInputs = [ cmake ncurses ];
+
+  meta = with stdenv.lib; {
+    description = "Space Invaders clone based on ncurses";
+    homepage = "http://ninvaders.sourceforge.net/";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ _1000101 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/games/nottetris2/default.nix b/pkgs/games/nottetris2/default.nix
new file mode 100644
index 00000000000..dde35e4fe32
--- /dev/null
+++ b/pkgs/games/nottetris2/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, zip, love_0_7, makeWrapper, makeDesktopItem }:
+
+let
+  pname = "nottetris2";
+  version = "2.0";
+
+  desktopItem = makeDesktopItem {
+    name = "nottetris2";
+    exec = pname;
+    comment = "It's like tetris, but it's not";
+    desktopName = "nottetris2";
+    genericName = "nottetris2";
+    categories = "Game";
+  };
+
+in
+
+stdenv.mkDerivation {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "Stabyourself";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "17iabh6rr8jim70n96rbhif4xq02g2kppscm8l339yqx6mhb64hs";
+  };
+
+  nativeBuildInputs = [ zip ];
+  buildInputs = [ love_0_7 makeWrapper ];
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  installPhase =
+  ''
+    mkdir -p $out/bin $out/share/games/lovegames $out/share/applications
+    zip -9 -r ${pname}.love ./*
+    mv ${pname}.love $out/share/games/lovegames/${pname}.love
+    makeWrapper ${love_0_7}/bin/love $out/bin/${pname} --add-flags $out/share/games/lovegames/${pname}.love
+    ln -s ${desktopItem}/share/applications/* $out/share/applications/
+    chmod +x $out/bin/${pname}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "It's like Tetris, but it's not";
+    platforms = platforms.linux;
+    license = licenses.wtfpl;
+    maintainers = with maintainers; [ yorickvp ];
+    downloadPage = "https://stabyourself.net/nottetris2/";
+  };
+
+}
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/openmw/default.nix b/pkgs/games/openmw/default.nix
index a9047de7041..22f3ea8d6ad 100644
--- a/pkgs/games/openmw/default.nix
+++ b/pkgs/games/openmw/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, mkDerivationWith, fetchFromGitHub, qtbase, openscenegraph, mygui, bullet, ffmpeg
+{ stdenv, mkDerivationWith, fetchFromGitHub, qtbase, openscenegraph, mygui, bullet, ffmpeg_3
 , boost, cmake, SDL2, unshield, openal, libXt, pkgconfig }:
 
 let
@@ -6,25 +6,25 @@ let
     src = fetchFromGitHub {
       owner = "OpenMW";
       repo = "osg";
-      rev = "2b4c8e37268e595b82da4b9aadd5507852569b87";
-      sha256 = "0admnllxic6dcpic0h100927yw766ab55dix002vvdx36i6994jb";
+      rev = "1556cd7966ebc1c80b6626988d2b25fb43a744cf";
+      sha256 = "0d74hijzmj82nx3jkv5qmr3pkgvplra0b8fbjx1y3vmzxamb0axd";
     };
   });
 in mkDerivationWith stdenv.mkDerivation rec {
-  version = "0.45.0";
+  version = "0.46.0";
   pname = "openmw";
 
   src = fetchFromGitHub {
     owner = "OpenMW";
     repo = "openmw";
     rev = "${pname}-${version}";
-    sha256 = "1r87zrsnza2v9brksh809zzqj6zhk5xj15qs8iq11v1bscm2a2j4";
+    sha256 = "0rm32zsmxvr6b0jjihfj543skhicbw5kg6shjx312clhlm035w2x";
   };
 
   enableParallelBuilding = true;
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ cmake boost ffmpeg bullet mygui openscenegraph_ SDL2 unshield openal libXt qtbase ];
+  buildInputs = [ cmake boost ffmpeg_3 bullet mygui openscenegraph_ SDL2 unshield openal libXt qtbase ];
 
   cmakeFlags = [
     "-DDESIRED_QT_VERSION:INT=5"
diff --git a/pkgs/games/openmw/tes3mp.nix b/pkgs/games/openmw/tes3mp.nix
index 222aa68dba2..df332c0e5bf 100644
--- a/pkgs/games/openmw/tes3mp.nix
+++ b/pkgs/games/openmw/tes3mp.nix
@@ -1,4 +1,4 @@
-{ stdenv, cmake, openmw, fetchFromGitHub, luajit, makeWrapper }:
+{ stdenv, cmake, openmw, fetchFromGitHub, luajit, makeWrapper, mygui }:
 
 # revisions are taken from https://github.com/GrimKriegor/TES3MP-deploy
 
@@ -28,6 +28,17 @@ let
     rev = "24aae91d9ddad38cdb3b0e0a13af59f142803e94";
     sha256 = "1rfmxxr9ircfagdpbdrzl26msdhx1i3g974cblbv69078cradfh3";
   };
+  # https://github.com/TES3MP/openmw-tes3mp/issues/555
+  mygui_ = mygui.overrideAttrs (oldAttrs: rec {
+    version = "3.2.2";
+
+    src = fetchFromGitHub {
+      owner = "MyGUI";
+      repo = "mygui";
+      rev = "MyGUI${version}";
+      sha256 = "1wk7jmwm55rhlqqcyvqsxdmwvl70bysl9azh4kd9n57qlmgk3zmw";
+    };
+  });
 in openmw.overrideAttrs (oldAttrs: rec {
   version = "2019-11-19";
   name = "openmw-tes3mp-${version}";
@@ -41,7 +52,7 @@ in openmw.overrideAttrs (oldAttrs: rec {
   };
 
   nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ makeWrapper ];
-  buildInputs = oldAttrs.buildInputs ++ [ luajit ];
+  buildInputs = [ luajit mygui_ ] ++ oldAttrs.buildInputs;
 
   cmakeFlags = oldAttrs.cmakeFlags ++ [
     "-DBUILD_OPENCS=OFF"
@@ -50,6 +61,12 @@ in openmw.overrideAttrs (oldAttrs: rec {
     "-DRakNet_LIBRARY_DEBUG=${rakNetLibrary}/lib/libRakNetLibStatic.a"
   ];
 
+  # https://github.com/TES3MP/openmw-tes3mp/issues/552
+  patches = [
+    ./tes3mp.patch
+  ];
+  NIX_CFLAGS_COMPILE = "-fpermissive";
+
   preConfigure = ''
     substituteInPlace files/version.in \
       --subst-var-by OPENMW_VERSION_COMMITHASH ${compatHash}
diff --git a/pkgs/games/openmw/tes3mp.patch b/pkgs/games/openmw/tes3mp.patch
new file mode 100644
index 00000000000..c2a78f9db9b
--- /dev/null
+++ b/pkgs/games/openmw/tes3mp.patch
@@ -0,0 +1,13 @@
+diff --git a/apps/openmw-mp/Script/Types.hpp b/apps/openmw-mp/Script/Types.hpp
+index be365cfb8..204dcdc7b 100644
+--- a/apps/openmw-mp/Script/Types.hpp
++++ b/apps/openmw-mp/Script/Types.hpp
+@@ -105,7 +105,7 @@ struct ScriptFunctionPointer : public ScriptIdentity
+     void *addr;
+ #if (!defined(__clang__) && defined(__GNUC__))
+     template<typename R, typename... Types>
+-    constexpr ScriptFunctionPointer(Function<R, Types...> addr) : ScriptIdentity(addr), addr((void*)(addr)) {}
++    constexpr ScriptFunctionPointer(Function<R, Types...> addr) : ScriptIdentity(addr), addr(addr) {}
+ #else
+     template<typename R, typename... Types>
+     constexpr ScriptFunctionPointer(Function<R, Types...> addr) : ScriptIdentity(addr), addr(addr) {}
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/openrw/default.nix b/pkgs/games/openrw/default.nix
index c2bb5cfa20c..b53850a8743 100644
--- a/pkgs/games/openrw/default.nix
+++ b/pkgs/games/openrw/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit, cmake, sfml, libGLU, libGL, bullet, glm, libmad, xlibsWrapper, openal
-, SDL2, boost, ffmpeg, Cocoa, OpenAL }:
+, SDL2, boost, ffmpeg_3, Cocoa, OpenAL }:
 
 stdenv.mkDerivation {
   version = "2019-10-26";
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [
-    sfml libGLU libGL bullet glm libmad xlibsWrapper openal SDL2 boost ffmpeg
+    sfml libGLU libGL bullet glm libmad xlibsWrapper openal SDL2 boost ffmpeg_3
   ] ++ stdenv.lib.optionals stdenv.isDarwin [ OpenAL Cocoa ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/games/openttd/default.nix b/pkgs/games/openttd/default.nix
index 43376322cc7..bab4e510e7d 100644
--- a/pkgs/games/openttd/default.nix
+++ b/pkgs/games/openttd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchzip, pkgconfig, SDL2, libpng, zlib, xz, freetype, fontconfig
+{ stdenv, fetchurl, fetchzip, pkgconfig, which, SDL2, libpng, zlib, xz, freetype, fontconfig, libxdg_basedir
 , withOpenGFX ? true, withOpenSFX ? true, withOpenMSX ? true
 , withFluidSynth ? true, audioDriver ? "alsa", fluidsynth, soundfont-fluid, procps
 , writeScriptBin, makeWrapper, runtimeShell
@@ -29,15 +29,15 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openttd";
-  version = "1.10.1";
+  version = "1.10.3";
 
   src = fetchurl {
     url = "https://cdn.openttd.org/openttd-releases/${version}/${pname}-${version}-source.tar.xz";
-    sha256 = "0d22a3c50f7a321f4f211594f4987ac16c381e8e3e40f116848e63e91e7fbb9b";
+    sha256 = "0fxmfz1mm95a2x0rnzfff9wb8q57w0cvsdd0z7agdcbyakph25n1";
   };
 
-  nativeBuildInputs = [ pkgconfig makeWrapper ];
-  buildInputs = [ SDL2 libpng xz zlib freetype fontconfig ]
+  nativeBuildInputs = [ pkgconfig which makeWrapper ];
+  buildInputs = [ SDL2 libpng xz zlib freetype fontconfig libxdg_basedir ]
     ++ stdenv.lib.optionals withFluidSynth [ fluidsynth soundfont-fluid ];
 
   prefixKey = "--prefix-dir=";
diff --git a/pkgs/games/openttd/jgrpp.nix b/pkgs/games/openttd/jgrpp.nix
new file mode 100644
index 00000000000..83a8f927694
--- /dev/null
+++ b/pkgs/games/openttd/jgrpp.nix
@@ -0,0 +1,13 @@
+{ fetchFromGitHub, openttd, ... }:
+
+openttd.overrideAttrs (oldAttrs: rec {
+  pname = "openttd-jgrpp";
+  version = "0.34.4";
+
+  src = fetchFromGitHub rec {
+    owner = "JGRennison";
+    repo = "OpenTTD-patches";
+    rev = "jgrpp-${version}";
+    sha256 = "125mgia5hgcsn8314xyiip3z8y23rc3kdv7jczbncqlzsc75624v";
+  };
+})
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..074c24389a1
--- /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.820.0";
+
+  src = fetchFromGitHub {
+    owner = "ppy";
+    repo = "osu";
+    rev = version;
+    sha256 = "0vszw0f5x0syshn8bnsbskxvknwpgbnm31kxwh1mfdr7pnxvw922";
+  };
+
+  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..53f933d143b
--- /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.137201";
+    sha256 = "0cfsd8nn6y30bqzx1pf9xi29jnxap1fgk720zdpz93kqzqv8r0vc";
+  })
+  (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.819.0";
+    sha256 = "1ghbbwpjjl0dp6gs1638v880hr7wwrn2jklqwbbckpx8g57bnq2m";
+  })
+  (fetchNuGet {
+    name = "ppy.osu.Framework.NativeLibs";
+    version = "2020.213.0";
+    sha256 = "1yzrx7bji2163dzvyqri42byc7lgxlm59xbwgi312dw5714snmxy";
+  })
+  (fetchNuGet {
+    name = "ppy.osu.Game.Resources";
+    version = "2020.812.0";
+    sha256 = "0fsg47bsffvk16clwwwav4yly1ykn09pyap46dvdmsxhjrzkvzb7";
+  })
+  (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.5";
+    sha256 = "094rhsn5rfk7f2ygk6jgv3cq01gv3a8lnqa85l593ys3957j0qhs";
+  })
+  (fetchNuGet {
+    name = "Sentry.PlatformAbstractions";
+    version = "1.1.1";
+    sha256 = "10mxyxmyjpr0y1ik2j55pp7ifn101sw319cbpf28i2xbfp0cvcaj";
+  })
+  (fetchNuGet {
+    name = "Sentry.Protocol";
+    version = "2.1.5";
+    sha256 = "1yjgn6na14rr6crmm886x597h9gdjyasgxx3n9m3zn7ig8726mpg";
+  })
+  (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..c0446c4fa5b 100644
--- a/pkgs/games/papermc/default.nix
+++ b/pkgs/games/papermc/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, 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";
diff --git a/pkgs/games/pentobi/default.nix b/pkgs/games/pentobi/default.nix
index 61be5e834a7..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 = "17.3";
+  version = "18.1";
   pname = "pentobi";
 
   src = fetchurl {
     url = "mirror://sourceforge/pentobi/${pname}-${version}.tar.xz";
-    sha256 = "00c495i4vrji9hs7v8xr9gm8yqs97bfk2wzsayhps11hmbqzllx9";
+    sha256 = "1vfw61lk9z7dngncmx3fggy5ld7ksdk48dpwnsq2vl5fh3f71qbq";
   };
 
   nativeBuildInputs = [ cmake docbook_xsl wrapQtAppsHook ];
diff --git a/pkgs/games/pingus/default.nix b/pkgs/games/pingus/default.nix
index 6ffc38f6700..81e22b90e97 100644
--- a/pkgs/games/pingus/default.nix
+++ b/pkgs/games/pingus/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   src = fetchgit {
     url = "https://gitlab.com/pingus/pingus/";
     rev = "709546d9b9c4d6d5f45fc9112b45ac10c7f9417d";
-    sha256 = "sha256:11mmzk0766riaw5qyd1r5i7s7vczbbzfccm92bvgrm99iy1sj022";
+    sha256 = "11mmzk0766riaw5qyd1r5i7s7vczbbzfccm92bvgrm99iy1sj022";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/games/privateer/default.nix b/pkgs/games/privateer/default.nix
index 9fd90945eba..16d0036b658 100644
--- a/pkgs/games/privateer/default.nix
+++ b/pkgs/games/privateer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchsvn, boost, cmake, ffmpeg, freeglut, glib,
+{ stdenv, fetchsvn, boost, cmake, ffmpeg_3, freeglut, glib,
   gtk2, libjpeg, libpng, libpthreadstubs, libvorbis, libXau, libXdmcp,
   libXmu, libGLU, libGL, openal, pixman, pkgconfig, python27, SDL }:
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs =
-    [ boost cmake ffmpeg freeglut glib gtk2 libjpeg libpng
+    [ boost cmake ffmpeg_3 freeglut glib gtk2 libjpeg libpng
       libpthreadstubs libvorbis libXau libXdmcp libXmu libGLU libGL openal
       pixman pkgconfig python27 SDL ];
 
diff --git a/pkgs/games/quake2/yquake2/default.nix b/pkgs/games/quake2/yquake2/default.nix
index c831163be97..3af692d5bf9 100644
--- a/pkgs/games/quake2/yquake2/default.nix
+++ b/pkgs/games/quake2/yquake2/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, buildEnv, cmake, makeWrapper
-, SDL2, libGL
+, SDL2, libGL, curl
 , oggSupport ? true, libogg, libvorbis
 , openalSupport ? true, openal
 , zipSupport ? true, zlib
@@ -15,20 +15,20 @@ let
 
   yquake2 = stdenv.mkDerivation rec {
     pname = "yquake2";
-    version = "7.30";
+    version = "7.43";
 
     src = fetchFromGitHub {
       owner = "yquake2";
       repo = "yquake2";
       rev = "QUAKE2_${builtins.replaceStrings ["."] ["_"] version}";
-      sha256 = "0xfr620k1hns70dckv6k0kc72jbiwyghcys904jpriv5x94lnrlc";
+      sha256 = "1dszbvxlh1npq4nv9s4wv4lcyfgb01k92ncxrrczsxy1dddg86pp";
     };
 
     enableParallelBuilding = true;
 
     nativeBuildInputs = [ cmake ];
 
-    buildInputs = [ SDL2 libGL ]
+    buildInputs = [ SDL2 libGL curl ]
       ++ lib.optionals stdenv.isDarwin [ Cocoa OpenAL ]
       ++ lib.optionals oggSupport [ libogg libvorbis ]
       ++ lib.optional openalSupport openal
diff --git a/pkgs/games/quake2/yquake2/games.nix b/pkgs/games/quake2/yquake2/games.nix
index 059fb26eb9b..98354a46d4a 100644
--- a/pkgs/games/quake2/yquake2/games.nix
+++ b/pkgs/games/quake2/yquake2/games.nix
@@ -4,23 +4,23 @@ let
   games = {
     ctf = {
       id = "ctf";
-      version = "1.05";
+      version = "1.07";
       description = "'Capture The Flag' for Yamagi Quake II";
-      sha256 = "15ihspyshls645ig0gq6bwdzvghyyysqk60g6ad3n4idb2ms52md";
+      sha256 = "0i9bwhjvq6yhalrsbzjambh27fdzrzgswqz3jgfn9qw6k1kjvlin";
     };
 
     ground-zero = {
       id = "rogue";
-      version = "2.04";
+      version = "2.07";
       description = "'Ground Zero' for Yamagi Quake II";
-      sha256 = "0x1maaycrxv7d3xvvk1ih2zymhvcd3jnab7g3by8qh6g5y33is5l";
+      sha256 = "1m2r4vgfdxpsi0lkf32liwf1433mdhhmjxiicjwzqjlkncjyfcb1";
     };
 
     the-reckoning = {
       id = "xatrix";
-      version = "2.05";
+      version = "2.08";
       description = "'The Reckoning' for Yamagi Quake II";
-      sha256 = "0gf2ryhgz8nw1mb1arlbriihjsx09fa0wmkgcayc8ijignfi1qkh";
+      sha256 = "1wp9fg1q8nly2r9hh4394r1h4dxyni3lvdy7g419cz5s8hhn5msr";
     };
   };
 
diff --git a/pkgs/games/runelite/default.nix b/pkgs/games/runelite/default.nix
index 9b6ca4f7c05..df8a5c3e8dc 100644
--- a/pkgs/games/runelite/default.nix
+++ b/pkgs/games/runelite/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     terminal = "false";
     desktopName = "RuneLite";
     genericName = "Oldschool Runescape";
-    categories = "Application;Game";
+    categories = "Game";
     startupNotify = null;
   };
 
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 f96f61764b5..6626e4df8a2 100644
--- a/pkgs/games/shattered-pixel-dungeon/default.nix
+++ b/pkgs/games/shattered-pixel-dungeon/default.nix
@@ -1,29 +1,30 @@
 { stdenv
-, fetchurl
 , makeWrapper
 , fetchFromGitHub
+, nixosTests
 , gradle_5
 , perl
 , jre
-, xorg
-, openal
+, libpulseaudio
 }:
 
 let
   pname = "shattered-pixel-dungeon";
-  version = "0.7.5f";
+  version = "0.8.2b";
 
   src = fetchFromGitHub {
     owner = "00-Evan";
-    repo = "shattered-pixel-dungeon-gdx";
+    repo = "shattered-pixel-dungeon";
     rev = "v${version}";
-    sha256 = "05awbbc7np9li50shdbpv9dgdgry6lra8d5gibwn578m2g9srbxx";
+    sha256 = "02ksxm7iknxfc7l8dl2pr1kyhfmi7vkchz0lh46w3p5mqf82psfb";
   };
 
   postPatch = ''
     # disable gradle plugins with native code and their targets
     perl -i.bak1 -pe "s#(^\s*id '.+' version '.+'$)#// \1#" build.gradle
     perl -i.bak2 -pe "s#(.*)#// \1# if /^(buildscript|task portable|task nsis|task proguard|task tgz|task\(afterEclipseImport\)|launch4j|macAppBundle|buildRpm|buildDeb|shadowJar)/ ... /^}/" build.gradle
+    # Remove unbuildable android stuff
+    rm android/build.gradle
   '';
 
   # fake build to pre-download deps into fixed-output derivation
@@ -33,7 +34,7 @@ let
     nativeBuildInputs = [ gradle_5 perl ];
     buildPhase = ''
       export GRADLE_USER_HOME=$(mktemp -d)
-      gradle --no-daemon desktop:dist
+      gradle --no-daemon desktop:release
     '';
     # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
     installPhase = ''
@@ -43,7 +44,7 @@ let
     '';
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "1k0v5scadw9ziq4dw2rckmh8x2xlmxslfsxmpw79zg78n3hvwhf1";
+    outputHash = "0ih10c6c85vhrqgilqmkzqjx3dc8cscvs9wkh90zgdj10qv0iba3";
   };
 
 in stdenv.mkDerivation rec {
@@ -54,21 +55,25 @@ in stdenv.mkDerivation rec {
   buildPhase = ''
     export GRADLE_USER_HOME=$(mktemp -d)
     # point to offline repo
-    sed -ie "s#mavenLocal()#mavenLocal(); maven { url '${deps}' }#g" build.gradle
-    gradle --offline --no-daemon desktop:dist
+    sed -ie "s#repositories {#repositories { maven { url '${deps}' };#g" build.gradle
+    gradle --offline --no-daemon desktop:release
   '';
 
   installPhase = ''
     install -Dm644 desktop/build/libs/desktop-${version}.jar $out/share/shattered-pixel-dungeon.jar
     mkdir $out/bin
     makeWrapper ${jre}/bin/java $out/bin/shattered-pixel-dungeon \
-      --prefix LD_LIBRARY_PATH : ${xorg.libXxf86vm}/lib:${openal}/lib \
+      --prefix LD_LIBRARY_PATH : ${libpulseaudio}/lib \
       --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-gdx/releases";
+    downloadPage = "https://github.com/00-Evan/shattered-pixel-dungeon/releases";
     description = "Traditional roguelike game with pixel-art graphics and simple interface";
     license = licenses.gpl3;
     maintainers = with maintainers; [ fgaz ];
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/build-runtime.py b/pkgs/games/steam/build-runtime.py
deleted file mode 100644
index e0ff5cebd93..00000000000
--- a/pkgs/games/steam/build-runtime.py
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/env python2
-#
-# Script to build and install packages into the Steam runtime
-# Patched version of https://github.com/ValveSoftware/steam-runtime/blob/master/build-runtime.py
-
-import os
-import re
-import sys
-import subprocess
-import argparse
-import json
-
-# The top level directory
-top = sys.path[0]
-
-def parse_args():
-	parser = argparse.ArgumentParser()
-	parser.add_argument("-r", "--runtime", help="specify runtime path", default=os.path.join(top,"runtime"))
-	parser.add_argument("-i", "--input", help="packages JSON", required=True)
-	return parser.parse_args()
-
-
-def install_deb (basename, deb, dest_dir):
-	installtag_dir=os.path.join(dest_dir, "installed")
-	if not os.access(installtag_dir, os.W_OK):
-		os.makedirs(installtag_dir)
-
-	#
-	# Unpack the package into the dest_dir
-	#
-	os.chdir(top)
-	subprocess.check_call(['dpkg-deb', '-x', deb, dest_dir])
-
-
-#
-# Walks through the files in the runtime directory and converts any absolute symlinks
-# to their relative equivalent
-#
-def fix_symlinks ():
-	for dir, subdirs, files in os.walk(args.runtime):
-		for name in files:
-			filepath=os.path.join(dir,name)
-			if os.path.islink(filepath):
-				target = os.readlink(filepath)
-				if os.path.isabs(target):
-					#
-					# compute the target of the symlink based on the 'root' of the architecture's runtime
-					#
-					target2 = os.path.join(args.runtime,target[1:])
-
-					#
-					# Set the new relative target path
-					#
-					os.unlink(filepath)
-					os.symlink(os.path.relpath(target2,dir), filepath)
-
-#
-# Creates the usr/lib/debug/.build-id/xx/xxxxxxxxx.debug symlink tree for all the debug
-# symbols
-#
-def fix_debuglinks ():
-	for dir, subdirs, files in os.walk(os.path.join(args.runtime,"usr/lib/debug")):
-		if ".build-id" in subdirs:
-			subdirs.remove(".build-id")		# don't recurse into .build-id directory we are creating
-
-		for file in files:
-
-			#
-			# scrape the output of readelf to find the buildid for this binary
-			#
-			p = subprocess.Popen(["readelf", '-n', os.path.join(dir,file)], stdout=subprocess.PIPE)
-			for line in iter(p.stdout.readline, ""):
-				m = re.search('Build ID: (\w{2})(\w+)',line)
-				if m:
-					linkdir = os.path.join(args.runtime,"usr/lib/debug/.build-id",m.group(1))
-					if not os.access(linkdir, os.W_OK):
-						os.makedirs(linkdir)
-					link = os.path.join(linkdir,m.group(2))
-					print "SYMLINKING symbol file %s to %s" % (link, os.path.relpath(os.path.join(dir,file),linkdir))
-					if os.path.lexists(link):
-						os.unlink(link)
-					os.symlink(os.path.relpath(os.path.join(dir,file), linkdir),link)
-
-
-args = parse_args()
-
-
-print ("Creating Steam Runtime in %s" % args.runtime)
-
-with open(args.input) as pkgfile:
-	pkgs = json.load(pkgfile)
-	for pkg in pkgs:
-		install_deb(pkg["name"], pkg["source"], args.runtime)
-
-fix_debuglinks()
-fix_symlinks()
-
-# vi: set noexpandtab:
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..2c7cde78c43 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 "$@"
   '';
 
@@ -251,6 +258,7 @@ in buildFHSUserEnv rec {
     EOF
       fi
     fi
+    ${lib.optionalString (!nativeOnly) exportLDPath}
     exec steam "$@"
   '';
 
@@ -272,7 +280,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-generated.nix b/pkgs/games/steam/runtime-generated.nix
deleted file mode 100644
index 2f9fc517790..00000000000
--- a/pkgs/games/steam/runtime-generated.nix
+++ /dev/null
@@ -1,4149 +0,0 @@
-# This file is autogenerated! Do not edit it yourself, use update-runtime.py for regeneration.
-{ fetchurl }:
-
-{
-  amd64 = [
-    rec {
-      name = "dconf-gsettings-backend_0.12.0-0ubuntu1.1+steamrt1.1+srt2_amd64";
-      sha256 = "ffb6ecd54fcfa71c1b0e424993d0bda460c988b1794c71bd18a1b38fe20f518f";
-      url = "mirror://steamrt/pool/main/d/d-conf/dconf-gsettings-backend_0.12.0-0ubuntu1.1+steamrt1.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "dconf-gsettings-backend.deb";
-      };
-    }
-    rec {
-      name = "freeglut3_2.6.0-1ubuntu3+srt6_amd64";
-      sha256 = "fd8f63c5b1b6ca45525c3fc8b47cdd4b2a9598825cbf0239dbbf6534c6c88ac3";
-      url = "mirror://steamrt/pool/main/f/freeglut/freeglut3_2.6.0-1ubuntu3+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "freeglut3.deb";
-      };
-    }
-    rec {
-      name = "gcc-4.6-base_4.6.3-1ubuntu5+steamrt1.2+srt2_amd64";
-      sha256 = "5536b70afbf1d8337be4c3923feb6943210452a0ec0b813e761148f7c6754f66";
-      url = "mirror://steamrt/pool/main/g/gcc-4.6/gcc-4.6-base_4.6.3-1ubuntu5+steamrt1.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "gcc-4.6-base.deb";
-      };
-    }
-    rec {
-      name = "gcc-5-base_5.4.0-7.really.6+steamrt1.2+srt2_amd64";
-      sha256 = "7a83c2837bedbf1713fcada1b662fe00fd35128a5b473a9476a6ef5117a8851f";
-      url = "mirror://steamrt/pool/main/g/gcc-5/gcc-5-base_5.4.0-7.really.6+steamrt1.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "gcc-5-base.deb";
-      };
-    }
-    rec {
-      name = "gtk2-engines_2.20.2-1ubuntu1+srt6_amd64";
-      sha256 = "b3662d8327d2125c131960fda3025ebaf4c8eee2d1050b29d00c07788185d7b5";
-      url = "mirror://steamrt/pool/main/g/gtk2-engines/gtk2-engines_2.20.2-1ubuntu1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "gtk2-engines.deb";
-      };
-    }
-    rec {
-      name = "gtk2-engines-murrine_0.98.2-0ubuntu1+srt6_amd64";
-      sha256 = "5a080ffc6aaeaf534ec417690b38e0774b8ee2abef27e039d2bb99f003757746";
-      url = "mirror://steamrt/pool/main/g/gtk2-engines-murrine/gtk2-engines-murrine_0.98.2-0ubuntu1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "gtk2-engines-murrine.deb";
-      };
-    }
-    rec {
-      name = "gtk2-engines-pixbuf_2.24.10-0ubuntu6+steamrt1+srt6_amd64";
-      sha256 = "ff475fb9fb6f99f2bafba816365d3c73b1d7c43a7757ba1cdaab83f0c1dd0e55";
-      url = "mirror://steamrt/pool/main/g/gtk+2.0/gtk2-engines-pixbuf_2.24.10-0ubuntu6+steamrt1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "gtk2-engines-pixbuf.deb";
-      };
-    }
-    rec {
-      name = "libacl1_2.2.51-5ubuntu1+steamrt1.1+srt4_amd64";
-      sha256 = "569b7e36f1cfe20320d2701573d16040e94f988e78cc5294ad308fe462d62af7";
-      url = "mirror://steamrt/pool/main/a/acl/libacl1_2.2.51-5ubuntu1+steamrt1.1+srt4_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libacl1.deb";
-      };
-    }
-    rec {
-      name = "libappindicator1_0.4.92-0ubuntu1.1+steamrt1+srt2_amd64";
-      sha256 = "6186fe0e57e9d19e6e3bd85786ebf0bbe0c85333d187d8fa4fb9ef7b1d24a0e8";
-      url = "mirror://steamrt/pool/main/liba/libappindicator/libappindicator1_0.4.92-0ubuntu1.1+steamrt1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libappindicator1.deb";
-      };
-    }
-    rec {
-      name = "libasn1-8-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64";
-      sha256 = "482beec798f517ab4f58a898bc5ecec64572ad22e6f694a5f716c17289556484";
-      url = "mirror://steamrt/pool/main/h/heimdal/libasn1-8-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libasn1-8-heimdal.deb";
-      };
-    }
-    rec {
-      name = "libasound2_1.1.0-0ubuntu1+steamos1+srt3_amd64";
-      sha256 = "66ef2c49e4d7a25ad0e3e04ef3105150f7a70a99f14d1ae7a1c1a8a6c324bb15";
-      url = "mirror://steamrt/pool/main/a/alsa-lib/libasound2_1.1.0-0ubuntu1+steamos1+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libasound2.deb";
-      };
-    }
-    rec {
-      name = "libasound2-plugins_1.1.0-0ubuntu1+srt3_amd64";
-      sha256 = "019bd4bf086b573eacf9ddc9c75527f3e8b91a338e6db50b6c9c97435bf55faf";
-      url = "mirror://steamrt/pool/main/a/alsa-plugins/libasound2-plugins_1.1.0-0ubuntu1+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libasound2-plugins.deb";
-      };
-    }
-    rec {
-      name = "libasyncns0_0.8-4+srt6_amd64";
-      sha256 = "308bdf466ad5ce87f2a27712d4e4a6e41747d001fc0ded53760238357e14dec8";
-      url = "mirror://steamrt/pool/main/liba/libasyncns/libasyncns0_0.8-4+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libasyncns0.deb";
-      };
-    }
-    rec {
-      name = "libatk1.0-0_2.18.0-1+steamrt1+srt2_amd64";
-      sha256 = "925f2a756aaf0a5df10cd67f1cee965e813a1556076a1d72904d32531e37a675";
-      url = "mirror://steamrt/pool/main/a/atk1.0/libatk1.0-0_2.18.0-1+steamrt1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libatk1.0-0.deb";
-      };
-    }
-    rec {
-      name = "libatomic1_5.4.0-7.really.6+steamrt1.2+srt2_amd64";
-      sha256 = "8dd843d4497f66c1af07551d8cc636e63ffff692187b51d0a01191c96bc0049a";
-      url = "mirror://steamrt/pool/main/g/gcc-5/libatomic1_5.4.0-7.really.6+steamrt1.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libatomic1.deb";
-      };
-    }
-    rec {
-      name = "libattr1_2.4.46-5ubuntu1+steamrt1.1+srt2_amd64";
-      sha256 = "d33b00c3e19337f3abbb070f646adda7420f171f5487dca5e253b68b63a4d8fc";
-      url = "mirror://steamrt/pool/main/a/attr/libattr1_2.4.46-5ubuntu1+steamrt1.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libattr1.deb";
-      };
-    }
-    rec {
-      name = "libavahi-client3_0.6.30-5ubuntu2.2+srt2_amd64";
-      sha256 = "029084e3bf5b2a3756b80a1f01c544c59e20f940df025fab366315ee57362955";
-      url = "mirror://steamrt/pool/main/a/avahi/libavahi-client3_0.6.30-5ubuntu2.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libavahi-client3.deb";
-      };
-    }
-    rec {
-      name = "libavahi-common3_0.6.30-5ubuntu2.2+srt2_amd64";
-      sha256 = "74e66fe1aa34c4c01b3f97ae66c8d70729041010239b9a29aa44e6a9267224d6";
-      url = "mirror://steamrt/pool/main/a/avahi/libavahi-common3_0.6.30-5ubuntu2.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libavahi-common3.deb";
-      };
-    }
-    rec {
-      name = "libavcodec53_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_amd64";
-      sha256 = "640d2e1da02b06f0eb07e8523c3e0b80e2cf8e2267e6a108e764608e8ea84567";
-      url = "mirror://steamrt/pool/main/liba/libav/libavcodec53_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libavcodec53.deb";
-      };
-    }
-    rec {
-      name = "libavfilter2_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_amd64";
-      sha256 = "ded33a41e70937a85e182146f9250de70afa82382ef9ca6cf5821fcbcf1a7bcc";
-      url = "mirror://steamrt/pool/main/liba/libav/libavfilter2_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libavfilter2.deb";
-      };
-    }
-    rec {
-      name = "libavformat53_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_amd64";
-      sha256 = "917fddb6d84cc2d8653d231790fd0f6d156d9952dc7d5943594264b27e6123f8";
-      url = "mirror://steamrt/pool/main/liba/libav/libavformat53_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libavformat53.deb";
-      };
-    }
-    rec {
-      name = "libavutil51_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_amd64";
-      sha256 = "8926a2b4ad3455bd52acd79a1856bc56f30dbe0ae707799145bc202d790d98a4";
-      url = "mirror://steamrt/pool/main/liba/libav/libavutil51_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libavutil51.deb";
-      };
-    }
-    rec {
-      name = "libbz2-1.0_1.0.6-1+srt6_amd64";
-      sha256 = "de6070b158a146130fbcb658c29e15b48b54fa9b30e36f63a624c38e8a37eb53";
-      url = "mirror://steamrt/pool/main/b/bzip2/libbz2-1.0_1.0.6-1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libbz2-1.0.deb";
-      };
-    }
-    rec {
-      name = "libcairo2_1.10.2-6.1ubuntu3+srt6_amd64";
-      sha256 = "ae0bccbd5b92c8973e217b4ef3d203f4a70bffaf9849218c70f869ff875abe41";
-      url = "mirror://steamrt/pool/main/c/cairo/libcairo2_1.10.2-6.1ubuntu3+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcairo2.deb";
-      };
-    }
-    rec {
-      name = "libcanberra-gtk-module_0.28-3ubuntu3+steamrt1.1+srt2_amd64";
-      sha256 = "9daaabe65bf3a1f6c025f12dfe435a987ad1818c924581167d225c7ee1176e20";
-      url = "mirror://steamrt/pool/main/libc/libcanberra/libcanberra-gtk-module_0.28-3ubuntu3+steamrt1.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcanberra-gtk-module.deb";
-      };
-    }
-    rec {
-      name = "libcanberra-gtk0_0.28-3ubuntu3+steamrt1.1+srt2_amd64";
-      sha256 = "42c3f2eae158e44c20969ae5faec17fe33732ff66ca4d21b824abd98b7adcebb";
-      url = "mirror://steamrt/pool/main/libc/libcanberra/libcanberra-gtk0_0.28-3ubuntu3+steamrt1.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcanberra-gtk0.deb";
-      };
-    }
-    rec {
-      name = "libcanberra0_0.28-3ubuntu3+steamrt1.1+srt2_amd64";
-      sha256 = "5897f63afef8ca38ccff2b9a3a125962515b0c662cbff6779520a1170381dcc4";
-      url = "mirror://steamrt/pool/main/libc/libcanberra/libcanberra0_0.28-3ubuntu3+steamrt1.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcanberra0.deb";
-      };
-    }
-    rec {
-      name = "libcap2_2.22-1ubuntu3+srt6_amd64";
-      sha256 = "f662a8f54a17393aa3933d160c2622b1f5ce2524d791aa5555986c056842af47";
-      url = "mirror://steamrt/pool/main/libc/libcap2/libcap2_2.22-1ubuntu3+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcap2.deb";
-      };
-    }
-    rec {
-      name = "libcapsule-tools-relocatable_0.20190926.0-0co1+srt1_amd64";
-      sha256 = "9ddaac17a0f812eec785e34eefccb8ea24a4abf0fa6ad008d03b26d5493ea010";
-      url = "mirror://steamrt/pool/main/libc/libcapsule/libcapsule-tools-relocatable_0.20190926.0-0co1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcapsule-tools-relocatable.deb";
-      };
-    }
-    rec {
-      name = "libcg_3.0.0016-0ubuntu1+srt6_amd64";
-      sha256 = "6e627aa3ff1724ec8759431f3ead530f4c1511eb2b881d168a1929c8eac2e196";
-      url = "mirror://steamrt/pool/main/n/nvidia-cg-toolkit/libcg_3.0.0016-0ubuntu1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcg.deb";
-      };
-    }
-    rec {
-      name = "libcomerr2_1.42-1ubuntu2.3+steamrt1.1+srt2_amd64";
-      sha256 = "c1169c34025975c72ea3f10034aab4d105d14ce345677c1736c951311433a787";
-      url = "mirror://steamrt/pool/main/e/e2fsprogs/libcomerr2_1.42-1ubuntu2.3+steamrt1.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcomerr2.deb";
-      };
-    }
-    rec {
-      name = "libcups2_1.5.3-0ubuntu8.7+steamrt1.2+srt3_amd64";
-      sha256 = "2e3156827d1d62c9aae38096114ad285c3b3e931b74248a9d88e3aca7f1661e2";
-      url = "mirror://steamrt/pool/main/c/cups/libcups2_1.5.3-0ubuntu8.7+steamrt1.2+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcups2.deb";
-      };
-    }
-    rec {
-      name = "libcurl3_7.22.0-3ubuntu4.17+steamrt1.2+srt1_amd64";
-      sha256 = "b8ce9330efb568bff45d00b678f461c1b45184db97afb34c85a96320dbedcb45";
-      url = "mirror://steamrt/pool/main/c/curl/libcurl3_7.22.0-3ubuntu4.17+steamrt1.2+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcurl3.deb";
-      };
-    }
-    rec {
-      name = "libcurl3-gnutls_7.22.0-3ubuntu4.17+steamrt1.2+srt1_amd64";
-      sha256 = "d130968581123872aa448f1bd92b969c3df5c3c47ffb034c7635f723c7f9a9ff";
-      url = "mirror://steamrt/pool/main/c/curl/libcurl3-gnutls_7.22.0-3ubuntu4.17+steamrt1.2+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcurl3-gnutls.deb";
-      };
-    }
-    rec {
-      name = "libdbus-1-3_1.4.18-1ubuntu1.8+srt2_amd64";
-      sha256 = "dfe95df67d3777935d834a8008c10135e264c5d6f351e05bf8a716277b6dc27e";
-      url = "mirror://steamrt/pool/main/d/dbus/libdbus-1-3_1.4.18-1ubuntu1.8+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libdbus-1-3.deb";
-      };
-    }
-    rec {
-      name = "libdbus-glib-1-2_0.98-1ubuntu1.1+srt6_amd64";
-      sha256 = "99654df8544d529f99d7dd1c1f33130ee0559e9eea7d11be482ffc708df18be0";
-      url = "mirror://steamrt/pool/main/d/dbus-glib/libdbus-glib-1-2_0.98-1ubuntu1.1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libdbus-glib-1-2.deb";
-      };
-    }
-    rec {
-      name = "libdbusmenu-glib4_0.6.2-0ubuntu0.1+srt6_amd64";
-      sha256 = "306683272e142aca19af212f7cb880a8f61df049a03f3dfa98e7a0a6fd4e7af6";
-      url = "mirror://steamrt/pool/main/libd/libdbusmenu/libdbusmenu-glib4_0.6.2-0ubuntu0.1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libdbusmenu-glib4.deb";
-      };
-    }
-    rec {
-      name = "libdbusmenu-gtk4_0.6.2-0ubuntu0.1+srt6_amd64";
-      sha256 = "abe8a9e28aae2486618c88807099f61a207993bf69fdfdf53241705a14697de9";
-      url = "mirror://steamrt/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_0.6.2-0ubuntu0.1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libdbusmenu-gtk4.deb";
-      };
-    }
-    rec {
-      name = "libelf1_0.152-1ubuntu3.1+srt3_amd64";
-      sha256 = "16f5a035ab04bf0a90d2172820265e56e000fa3b4a5461bda293534f3e39a061";
-      url = "mirror://steamrt/pool/main/e/elfutils/libelf1_0.152-1ubuntu3.1+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libelf1.deb";
-      };
-    }
-    rec {
-      name = "libexif12_0.6.20-2ubuntu0.1+srt6_amd64";
-      sha256 = "adb05c68a77601a6c133d8bd2fcd0e6dccc7fd9e75b70b191e0fee26dd03c1ae";
-      url = "mirror://steamrt/pool/main/libe/libexif/libexif12_0.6.20-2ubuntu0.1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libexif12.deb";
-      };
-    }
-    rec {
-      name = "libexpat1_2.0.1-7.2ubuntu1.4+srt3_amd64";
-      sha256 = "a34f7459aec8881fac938cf0effae996731ad7de5ffa452747b890238e81a9bf";
-      url = "mirror://steamrt/pool/main/e/expat/libexpat1_2.0.1-7.2ubuntu1.4+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libexpat1.deb";
-      };
-    }
-    rec {
-      name = "libffi6_3.0.11~rc1-5+srt6_amd64";
-      sha256 = "20fd1ae66aec76d8e70bf144b910c5b5e2acb426bfaef0f91ab48002c31ef0dc";
-      url = "mirror://steamrt/pool/main/libf/libffi/libffi6_3.0.11~rc1-5+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libffi6.deb";
-      };
-    }
-    rec {
-      name = "libflac8_1.2.1-6+steamrt1.1ubuntu0.1+srt2_amd64";
-      sha256 = "11299782d3bf532468cdd2c1599a170b8f2704a9efb44f703b68d7434a44dc57";
-      url = "mirror://steamrt/pool/main/f/flac/libflac8_1.2.1-6+steamrt1.1ubuntu0.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libflac8.deb";
-      };
-    }
-    rec {
-      name = "libfltk1.1_1.1.10-10+srt6_amd64";
-      sha256 = "d730436f36dfaa7084ae920b74c66e647d35824e5c15af5614a96ccb5681b4d1";
-      url = "mirror://steamrt/pool/main/f/fltk1.1/libfltk1.1_1.1.10-10+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libfltk1.1.deb";
-      };
-    }
-    rec {
-      name = "libfontconfig1_2.8.0-3ubuntu9.2+steamrt1.1+srt2_amd64";
-      sha256 = "304987ffdaf6834666a1fadb7af2eeb9d73d9f07aecfccd3426d9b51c9a05d95";
-      url = "mirror://steamrt/pool/main/f/fontconfig/libfontconfig1_2.8.0-3ubuntu9.2+steamrt1.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libfontconfig1.deb";
-      };
-    }
-    rec {
-      name = "libfreetype6_2.4.8-1ubuntu2.6+srt2_amd64";
-      sha256 = "d1450fd3f275513d5721d92f142439e88a5e544ccaa05b33abe5a68f802ee44c";
-      url = "mirror://steamrt/pool/main/f/freetype/libfreetype6_2.4.8-1ubuntu2.6+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libfreetype6.deb";
-      };
-    }
-    rec {
-      name = "libgcc1_5.4.0-7.really.6+steamrt1.2+srt2_amd64";
-      sha256 = "5b62d49aa9ec9cd8ca7af2e677cba9714be641cbf6eed9835a48a65fc8cd79fa";
-      url = "mirror://steamrt/pool/main/g/gcc-5/libgcc1_5.4.0-7.really.6+steamrt1.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgcc1.deb";
-      };
-    }
-    rec {
-      name = "libgconf-2-4_3.2.5-0ubuntu2+steamrt1.1+srt2_amd64";
-      sha256 = "086f7ba27b92e13149970230a8ce6e30b41c9cd3585ad9dc075114e37d38ef6b";
-      url = "mirror://steamrt/pool/main/g/gconf/libgconf-2-4_3.2.5-0ubuntu2+steamrt1.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgconf-2-4.deb";
-      };
-    }
-    rec {
-      name = "libgcrypt11_1.5.0-3ubuntu0.6+srt3_amd64";
-      sha256 = "cfbaa394f5b70ef67bfe69dbe4b3e1232493f3f9558e9f325a82606c5ca10d95";
-      url = "mirror://steamrt/pool/main/libg/libgcrypt11/libgcrypt11_1.5.0-3ubuntu0.6+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgcrypt11.deb";
-      };
-    }
-    rec {
-      name = "libgdk-pixbuf2.0-0_2.26.1-1+steamrt3+srt6_amd64";
-      sha256 = "87c93570fafa2c53e86fb2b0e047823cfa59f4e704155b22865237e9bdb26e38";
-      url = "mirror://steamrt/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.26.1-1+steamrt3+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgdk-pixbuf2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libgl1-mesa-dri_8.0.4-0ubuntu0.7+srt6_amd64";
-      sha256 = "0b6d862d319bd494656d859847fd1e79cd67334ad26bed7a5d32580e28e42752";
-      url = "mirror://steamrt/pool/main/m/mesa/libgl1-mesa-dri_8.0.4-0ubuntu0.7+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgl1-mesa-dri.deb";
-      };
-    }
-    rec {
-      name = "libgl1-mesa-glx_8.0.4-0ubuntu0.7+srt6_amd64";
-      sha256 = "477764d0cccb49972bbabf3b23bed76fee194e95067d5e32e136e542388fb244";
-      url = "mirror://steamrt/pool/main/m/mesa/libgl1-mesa-glx_8.0.4-0ubuntu0.7+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgl1-mesa-glx.deb";
-      };
-    }
-    rec {
-      name = "libglew1.10_1.10.0-3+srt7_amd64";
-      sha256 = "87b1eaba67db9b0bc95af86474cfb3ff58bcfde79dbe6b2109f4d2d8b3ce55f4";
-      url = "mirror://steamrt/pool/main/g/glew/libglew1.10_1.10.0-3+srt7_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libglew1.10.deb";
-      };
-    }
-    rec {
-      name = "libglew1.6_1.6.0-4+steamrt1.1+srt2_amd64";
-      sha256 = "fe4a558b78d54fdd47cee908d49eccfae21cffa612e1f0c0ec5f6a56d8ac4ab3";
-      url = "mirror://steamrt/pool/main/g/glew1.6/libglew1.6_1.6.0-4+steamrt1.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libglew1.6.deb";
-      };
-    }
-    rec {
-      name = "libglib2.0-0_2.32.3-0ubuntu1+steamrt3+srt3_amd64";
-      sha256 = "5668f2b4fc30179312c2b83117f692dfef97cfae8303c6336dd3f03289471c02";
-      url = "mirror://steamrt/pool/main/g/glib2.0/libglib2.0-0_2.32.3-0ubuntu1+steamrt3+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libglib2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libglu1-mesa_8.0.4-0ubuntu0.7+srt6_amd64";
-      sha256 = "2e137819d70e788476d96532d59da39de8de084386d59e05c37ab0cc60723076";
-      url = "mirror://steamrt/pool/main/m/mesa/libglu1-mesa_8.0.4-0ubuntu0.7+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libglu1-mesa.deb";
-      };
-    }
-    rec {
-      name = "libgmp10_6.1.0+dfsg-2+srt2_amd64";
-      sha256 = "c768e53e58f4baf44707c79cd3c00320f974674a544fd384a8575a4243773689";
-      url = "mirror://steamrt/pool/main/g/gmp/libgmp10_6.1.0+dfsg-2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgmp10.deb";
-      };
-    }
-    rec {
-      name = "libgnutls26_2.12.14-5ubuntu3.14+srt2_amd64";
-      sha256 = "6dfc2c19deeaa0272a291d7b3d4fee5ee57b36806b578f1b43f82ab9708c5fad";
-      url = "mirror://steamrt/pool/main/g/gnutls26/libgnutls26_2.12.14-5ubuntu3.14+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgnutls26.deb";
-      };
-    }
-    rec {
-      name = "libgnutls30_3.4.10-4ubuntu1.4+steamrt1.2+srt1_amd64";
-      sha256 = "c6e07fb2f90549d741378a211babd4d1c802e93dde401839c2e89504410ed228";
-      url = "mirror://steamrt/pool/main/g/gnutls28/libgnutls30_3.4.10-4ubuntu1.4+steamrt1.2+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgnutls30.deb";
-      };
-    }
-    rec {
-      name = "libgomp1_5.4.0-7.really.6+steamrt1.2+srt2_amd64";
-      sha256 = "5cc4b7fbddaf915f8024038e13f4d3d13c939295857d5d771706063ef7c5ffd0";
-      url = "mirror://steamrt/pool/main/g/gcc-5/libgomp1_5.4.0-7.really.6+steamrt1.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgomp1.deb";
-      };
-    }
-    rec {
-      name = "libgpg-error0_1.10-2ubuntu1+srt6_amd64";
-      sha256 = "9119af854fbc1228975cebafbd1bf232c421b4929a8928d2a47d3adbbffc047e";
-      url = "mirror://steamrt/pool/main/libg/libgpg-error/libgpg-error0_1.10-2ubuntu1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgpg-error0.deb";
-      };
-    }
-    rec {
-      name = "libgssapi-krb5-2_1.10+dfsg~beta1-2ubuntu0.7+srt3_amd64";
-      sha256 = "cf5f6fcc04896db6d215edcd5503a71460ac4f5109fa74036147aa9bb93a1a35";
-      url = "mirror://steamrt/pool/main/k/krb5/libgssapi-krb5-2_1.10+dfsg~beta1-2ubuntu0.7+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgssapi-krb5-2.deb";
-      };
-    }
-    rec {
-      name = "libgssapi3-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64";
-      sha256 = "6492aa21a54ef1c9123df4e30cd35f5ecc096bf519f359bc1a19a93513d42646";
-      url = "mirror://steamrt/pool/main/h/heimdal/libgssapi3-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgssapi3-heimdal.deb";
-      };
-    }
-    rec {
-      name = "libgstreamer-plugins-base0.10-0_0.10.36-1ubuntu0.2+srt2_amd64";
-      sha256 = "4ef292b7e2e1e449f795a7204bc114c4f4cfcc3a8d34aaa85f7effbb967033b6";
-      url = "mirror://steamrt/pool/main/g/gst-plugins-base0.10/libgstreamer-plugins-base0.10-0_0.10.36-1ubuntu0.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgstreamer-plugins-base0.10-0.deb";
-      };
-    }
-    rec {
-      name = "libgstreamer0.10-0_0.10.36-1ubuntu1+srt6_amd64";
-      sha256 = "0d3c7975c6ad6306a8010d807ceb31e3b90804c9cca39d639362e8d5c72e7f8c";
-      url = "mirror://steamrt/pool/main/g/gstreamer0.10/libgstreamer0.10-0_0.10.36-1ubuntu1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgstreamer0.10-0.deb";
-      };
-    }
-    rec {
-      name = "libgtk2.0-0_2.24.10-0ubuntu6+steamrt1+srt6_amd64";
-      sha256 = "bebf7d4a6e0629873dab280de0189bf2d6add5b1816715153aba5ecaba33bf10";
-      url = "mirror://steamrt/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.10-0ubuntu6+steamrt1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgtk2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libgtk2.0-common_2.24.10-0ubuntu6+steamrt1+srt6_all";
-      sha256 = "ee703928f39124739c01a456c727376378b9e75ed1a3f3c1d7022a2299350262";
-      url = "mirror://steamrt/pool/main/g/gtk+2.0/libgtk2.0-common_2.24.10-0ubuntu6+steamrt1+srt6_all.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgtk2.0-common.deb";
-      };
-    }
-    rec {
-      name = "libgudev-1.0-0_175-0ubuntu9.10+srt2_amd64";
-      sha256 = "a2cf13c7c60f1deb922471ccac26f5674df0f54cf19e7f1ca50f79b573a345de";
-      url = "mirror://steamrt/pool/main/u/udev/libgudev-1.0-0_175-0ubuntu9.10+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgudev-1.0-0.deb";
-      };
-    }
-    rec {
-      name = "libhcrypto4-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64";
-      sha256 = "d1e22d92539b1af50bb7d32f8e15418092b51e6578012eb1a52080cf89433a83";
-      url = "mirror://steamrt/pool/main/h/heimdal/libhcrypto4-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libhcrypto4-heimdal.deb";
-      };
-    }
-    rec {
-      name = "libheimbase1-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64";
-      sha256 = "5774c538993d0a7e23cc5e8863bb9243f17899b2a861b8029c44110d80228f4c";
-      url = "mirror://steamrt/pool/main/h/heimdal/libheimbase1-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libheimbase1-heimdal.deb";
-      };
-    }
-    rec {
-      name = "libheimntlm0-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64";
-      sha256 = "f4dc8cc860389827d82aa1d2983ae8b6afd2553132253d6da79d618e1ea1d00c";
-      url = "mirror://steamrt/pool/main/h/heimdal/libheimntlm0-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libheimntlm0-heimdal.deb";
-      };
-    }
-    rec {
-      name = "libhogweed4_3.2-1ubuntu0.16.04.1+srt2_amd64";
-      sha256 = "a8411a24f3314b11a25f249bb5390a31e7485d81e5941b8823ad0e67af033c32";
-      url = "mirror://steamrt/pool/main/n/nettle/libhogweed4_3.2-1ubuntu0.16.04.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libhogweed4.deb";
-      };
-    }
-    rec {
-      name = "libhx509-5-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64";
-      sha256 = "90943a0b1fa563555b3b92805b4ef24cf82557ca3b6cda3aac8d703a008b4372";
-      url = "mirror://steamrt/pool/main/h/heimdal/libhx509-5-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libhx509-5-heimdal.deb";
-      };
-    }
-    rec {
-      name = "libice6_1.0.7-2build1+srt6_amd64";
-      sha256 = "b4971686dc20fabbaf3cda5685e627ce9605318eb5ab4b3e5a9895680dba7290";
-      url = "mirror://steamrt/pool/main/libi/libice/libice6_1.0.7-2build1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libice6.deb";
-      };
-    }
-    rec {
-      name = "libidn11_1.32-3ubuntu1.2+steamrt1.1+srt2_amd64";
-      sha256 = "18011ae05a4dbe00d4deafb63dabdf0416c1fa2c202d3c0e6ce840d96001f4f6";
-      url = "mirror://steamrt/pool/main/libi/libidn/libidn11_1.32-3ubuntu1.2+steamrt1.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libidn11.deb";
-      };
-    }
-    rec {
-      name = "libindicator7_0.5.0-0ubuntu1+steamrt1+srt2_amd64";
-      sha256 = "ee7da6dda4a701bb1e98b22233c27e923050f4cfe6055c96e31b7a13fa96743a";
-      url = "mirror://steamrt/pool/main/libi/libindicator/libindicator7_0.5.0-0ubuntu1+steamrt1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libindicator7.deb";
-      };
-    }
-    rec {
-      name = "libitm1_5.4.0-7.really.6+steamrt1.2+srt2_amd64";
-      sha256 = "3c01841997e77fe1616b16936394c86383dc76e875f70e6d96ed016e4b945050";
-      url = "mirror://steamrt/pool/main/g/gcc-5/libitm1_5.4.0-7.really.6+steamrt1.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libitm1.deb";
-      };
-    }
-    rec {
-      name = "libjack-jackd2-0_1.9.8~dfsg.1-1ubuntu2+srt5_amd64";
-      sha256 = "9a419baf1b88386cf643ca64965de607321e5d27f13c5bd68be0eb1a803fd7a9";
-      url = "mirror://steamrt/pool/main/j/jackd2/libjack-jackd2-0_1.9.8~dfsg.1-1ubuntu2+srt5_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libjack-jackd2-0.deb";
-      };
-    }
-    rec {
-      name = "libjpeg-turbo8_1.1.90+svn733-0ubuntu4.3+srt6_amd64";
-      sha256 = "682e8d47031aa046787624eb5af560093f6cade3fdc5edcb5875e89ff7cb9d31";
-      url = "mirror://steamrt/pool/main/libj/libjpeg-turbo/libjpeg-turbo8_1.1.90+svn733-0ubuntu4.3+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libjpeg-turbo8.deb";
-      };
-    }
-    rec {
-      name = "libjpeg62_6b1-2ubuntu1.1+srt6_amd64";
-      sha256 = "5c931fb6c272af3cefa723a6ba30f55d477c50bd07f6695be4216f2a13ea49f0";
-      url = "mirror://steamrt/pool/main/libj/libjpeg6b/libjpeg62_6b1-2ubuntu1.1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libjpeg62.deb";
-      };
-    }
-    rec {
-      name = "libjson-glib-1.0-0_1.0.2-1~steamrt1.1+srt1_amd64";
-      sha256 = "636c77a5f10b1861d4ebe7722a0c832e1fdbcc995d248e36280966e387ffaa89";
-      url = "mirror://steamrt/pool/main/j/json-glib/libjson-glib-1.0-0_1.0.2-1~steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libjson-glib-1.0-0.deb";
-      };
-    }
-    rec {
-      name = "libjson0_0.9-1ubuntu1.1+srt4_amd64";
-      sha256 = "a72824685bfa0dc7fab313606d1fcba41565363c8f90d22c7e90d3f35a74859c";
-      url = "mirror://steamrt/pool/main/j/json-c/libjson0_0.9-1ubuntu1.1+srt4_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libjson0.deb";
-      };
-    }
-    rec {
-      name = "libk5crypto3_1.10+dfsg~beta1-2ubuntu0.7+srt3_amd64";
-      sha256 = "9d638fd0f44307dfab7b295a53715b199854b71f52b269369f6bb492d7da295c";
-      url = "mirror://steamrt/pool/main/k/krb5/libk5crypto3_1.10+dfsg~beta1-2ubuntu0.7+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libk5crypto3.deb";
-      };
-    }
-    rec {
-      name = "libkeyutils1_1.5.2-2+srt6_amd64";
-      sha256 = "2fcb1c31e273de0780db4a07b4ec6272adba221ec3ea40821e4744b86adf5313";
-      url = "mirror://steamrt/pool/main/k/keyutils/libkeyutils1_1.5.2-2+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libkeyutils1.deb";
-      };
-    }
-    rec {
-      name = "libkrb5-26-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64";
-      sha256 = "374b317da50e4ab1688a3514649fbe572d8d73d0e0430c4bd739ce0443c04f5f";
-      url = "mirror://steamrt/pool/main/h/heimdal/libkrb5-26-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libkrb5-26-heimdal.deb";
-      };
-    }
-    rec {
-      name = "libkrb5-3_1.10+dfsg~beta1-2ubuntu0.7+srt3_amd64";
-      sha256 = "3071c486de82102fa73ac263c5d78cb8df1ff6ced3450fd9baf564c4b345b89a";
-      url = "mirror://steamrt/pool/main/k/krb5/libkrb5-3_1.10+dfsg~beta1-2ubuntu0.7+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libkrb5-3.deb";
-      };
-    }
-    rec {
-      name = "libkrb5support0_1.10+dfsg~beta1-2ubuntu0.7+srt3_amd64";
-      sha256 = "ba1732a8fb0f64c0cc8eb2ddf5512ad246ec0c31962d84fa91db55fae5756c45";
-      url = "mirror://steamrt/pool/main/k/krb5/libkrb5support0_1.10+dfsg~beta1-2ubuntu0.7+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libkrb5support0.deb";
-      };
-    }
-    rec {
-      name = "liblcms2-2_2.2+git20110628-2ubuntu3.1+srt6_amd64";
-      sha256 = "e55aacce445cf1ac31d1ef35a3b9aa983e9ca18626b0aa28cdfdc3a81ccd5cc3";
-      url = "mirror://steamrt/pool/main/l/lcms2/liblcms2-2_2.2+git20110628-2ubuntu3.1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "liblcms2-2.deb";
-      };
-    }
-    rec {
-      name = "libldap-2.4-2_2.4.28-1.1ubuntu4.6+steamrt1.2+srt4_amd64";
-      sha256 = "487df425cab50adae8d9129eaabf4b52f2332f574a200a582fc808cd72bc3ba7";
-      url = "mirror://steamrt/pool/main/o/openldap/libldap-2.4-2_2.4.28-1.1ubuntu4.6+steamrt1.2+srt4_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libldap-2.4-2.deb";
-      };
-    }
-    rec {
-      name = "libltdl7_2.4.2-1ubuntu1+srt6_amd64";
-      sha256 = "f9c6d0ae41527a42576fa16bb170f90e8deb86ffb16c3b78ac8e237400901a33";
-      url = "mirror://steamrt/pool/main/libt/libtool/libltdl7_2.4.2-1ubuntu1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libltdl7.deb";
-      };
-    }
-    rec {
-      name = "libmikmod2_3.1.12-5+srt2_amd64";
-      sha256 = "d9fc387579b30b3c555ba2a1706db3956957c0f2e25ef896c4d5bb8c13ff7a6b";
-      url = "mirror://steamrt/pool/main/libm/libmikmod/libmikmod2_3.1.12-5+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libmikmod2.deb";
-      };
-    }
-    rec {
-      name = "libmpg123-0_1.25.10-1+steamrt1+srt2_amd64";
-      sha256 = "4dff7550d1eb7666fe53d4705736c7c4760dbbfe8b24483956ca1da62a0876c8";
-      url = "mirror://steamrt/pool/main/m/mpg123/libmpg123-0_1.25.10-1+steamrt1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libmpg123-0.deb";
-      };
-    }
-    rec {
-      name = "libncurses5_5.9-4+srt6_amd64";
-      sha256 = "6c342c8e35ab535c2dd20e1f26001e46363ddd4e55b1abbb94d3eee9688b6dbd";
-      url = "mirror://steamrt/pool/main/n/ncurses/libncurses5_5.9-4+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libncurses5.deb";
-      };
-    }
-    rec {
-      name = "libncursesw5_5.9-4+srt6_amd64";
-      sha256 = "8efe94b4cb6fb8b137ce87996b263a02d0ca97572025874df0f67ce3072a12ed";
-      url = "mirror://steamrt/pool/main/n/ncurses/libncursesw5_5.9-4+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libncursesw5.deb";
-      };
-    }
-    rec {
-      name = "libnettle6_3.2-1ubuntu0.16.04.1+srt2_amd64";
-      sha256 = "18f8ac5721849072980c7f8cdffdf2eac3c8621f3aff02bc32fe1945e2abf0ec";
-      url = "mirror://steamrt/pool/main/n/nettle/libnettle6_3.2-1ubuntu0.16.04.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libnettle6.deb";
-      };
-    }
-    rec {
-      name = "libnm-glib4_0.9.4.0-0ubuntu4.2+steamrt2+srt2_amd64";
-      sha256 = "3bff5db8467fe7289dc6569e6bd78c733dadb4569ebb2e6e6484019d347a53cc";
-      url = "mirror://steamrt/pool/main/n/network-manager/libnm-glib4_0.9.4.0-0ubuntu4.2+steamrt2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libnm-glib4.deb";
-      };
-    }
-    rec {
-      name = "libnm-util2_0.9.4.0-0ubuntu4.2+steamrt2+srt2_amd64";
-      sha256 = "2b301b4616aa92f1c1ce9d729255f5314e0307155275213fbed7fe5b6d1df2a6";
-      url = "mirror://steamrt/pool/main/n/network-manager/libnm-util2_0.9.4.0-0ubuntu4.2+steamrt2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libnm-util2.deb";
-      };
-    }
-    rec {
-      name = "libnotify4_0.7.5-1+srt6_amd64";
-      sha256 = "a367220da9ac0918a37799231225a1156bb4431a319242d73d5562bac73a4da9";
-      url = "mirror://steamrt/pool/main/libn/libnotify/libnotify4_0.7.5-1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libnotify4.deb";
-      };
-    }
-    rec {
-      name = "libnspr4_4.12-0ubuntu0.12.04.1+srt3_amd64";
-      sha256 = "2824614abe02323087b5d73313aa9ef3e0f3308095bd1f508f78503d2ba10c63";
-      url = "mirror://steamrt/pool/main/n/nspr/libnspr4_4.12-0ubuntu0.12.04.1+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libnspr4.deb";
-      };
-    }
-    rec {
-      name = "libnss3_3.26.2-0ubuntu0.12.04.1+srt2_amd64";
-      sha256 = "c9edceea356f57bfc6aa8df7263da54f465313e1e3949a8b7b5771f591dd5788";
-      url = "mirror://steamrt/pool/main/n/nss/libnss3_3.26.2-0ubuntu0.12.04.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libnss3.deb";
-      };
-    }
-    rec {
-      name = "libogg0_1.3.2-1+srt2_amd64";
-      sha256 = "d5999d3f774c2c3fbb8998d7ed686b38505a67a1fb45ec07aa288fad9c0210b8";
-      url = "mirror://steamrt/pool/main/libo/libogg/libogg0_1.3.2-1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libogg0.deb";
-      };
-    }
-    rec {
-      name = "libopenal1_1.16.0-3+srt2_amd64";
-      sha256 = "649d2fc817024719e6d53078053e956c4c0848b7a26606e8e85188bd0c8e379a";
-      url = "mirror://steamrt/pool/main/o/openal-soft/libopenal1_1.16.0-3+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libopenal1.deb";
-      };
-    }
-    rec {
-      name = "libopus0_1.3-0+steamrt1.1+srt3_amd64";
-      sha256 = "2c41ceb74b0da8d6a8e2adbd537ca15b42544a951ccf42454a14abef369a210c";
-      url = "mirror://steamrt/pool/main/o/opus/libopus0_1.3-0+steamrt1.1+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libopus0.deb";
-      };
-    }
-    rec {
-      name = "libopusfile0_0.11-0+steamrt1.2+srt2_amd64";
-      sha256 = "f45cdaa7b22e8042434f1a5fe72c13b69f031cee9fa1d97970acb072e644212c";
-      url = "mirror://steamrt/pool/main/o/opusfile/libopusfile0_0.11-0+steamrt1.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libopusfile0.deb";
-      };
-    }
-    rec {
-      name = "liborc-0.4-0_0.4.16-1ubuntu2+srt6_amd64";
-      sha256 = "aa26e347d687d40d0e8efff51e45dc1aeb071efd93ab2147baef993aa024bb27";
-      url = "mirror://steamrt/pool/main/o/orc/liborc-0.4-0_0.4.16-1ubuntu2+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "liborc-0.4-0.deb";
-      };
-    }
-    rec {
-      name = "libp11-kit0_0.23.2-5~ubuntu16.04.1~steamrt1.1+srt2_amd64";
-      sha256 = "e994e62fcffb23ec006563ec4a6e184d4f508d70f2b08a567c2e52afa25b497c";
-      url = "mirror://steamrt/pool/main/p/p11-kit/libp11-kit0_0.23.2-5~ubuntu16.04.1~steamrt1.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libp11-kit0.deb";
-      };
-    }
-    rec {
-      name = "libpango1.0-0_1.30.0-0ubuntu3.1+steamrt1+srt6_amd64";
-      sha256 = "19343aeada8b22381b29d8ff0752ed9475b1ed92cae1fd18e691b9b505e42c8e";
-      url = "mirror://steamrt/pool/main/p/pango1.0/libpango1.0-0_1.30.0-0ubuntu3.1+steamrt1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libpango1.0-0.deb";
-      };
-    }
-    rec {
-      name = "libpci3_3.1.8-2ubuntu6+srt2_amd64";
-      sha256 = "a7fecb6f3e9657b8a03b70ddfea1c384de5cb65feebe5102339e41d0bd1b8f69";
-      url = "mirror://steamrt/pool/main/p/pciutils/libpci3_3.1.8-2ubuntu6+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libpci3.deb";
-      };
-    }
-    rec {
-      name = "libpcre3_8.12-4+steamrt1.1ubuntu0.2+srt2_amd64";
-      sha256 = "b7554d1381c7580a7897657b3ecf11c7554f319c1034da70121d4fa724589be1";
-      url = "mirror://steamrt/pool/main/p/pcre3/libpcre3_8.12-4+steamrt1.1ubuntu0.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libpcre3.deb";
-      };
-    }
-    rec {
-      name = "libpcrecpp0_8.12-4+steamrt1.1ubuntu0.2+srt2_amd64";
-      sha256 = "053a4754d48e96ff4849fc99232ac74b5d5b58440eb367b3422a5e56d698065b";
-      url = "mirror://steamrt/pool/main/p/pcre3/libpcrecpp0_8.12-4+steamrt1.1ubuntu0.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libpcrecpp0.deb";
-      };
-    }
-    rec {
-      name = "libpixman-1-0_0.30.2-1ubuntu0.0.0.0.3+srt3_amd64";
-      sha256 = "0d05b046b8870873f8aa4e9f51ac3f9c902b4364a6bd14fa35279b7546b7de29";
-      url = "mirror://steamrt/pool/main/p/pixman/libpixman-1-0_0.30.2-1ubuntu0.0.0.0.3+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libpixman-1-0.deb";
-      };
-    }
-    rec {
-      name = "libpng12-0_1.2.46-3ubuntu4.2+srt3_amd64";
-      sha256 = "6d0689067d8476c45918c8c848ffea495e26d118890f040ccd3596b121d4d824";
-      url = "mirror://steamrt/pool/main/libp/libpng/libpng12-0_1.2.46-3ubuntu4.2+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libpng12-0.deb";
-      };
-    }
-    rec {
-      name = "libpulse0_1.1-0ubuntu15.2+steamrt1+srt6_amd64";
-      sha256 = "e302a51cfeacd982683bd530a36d8142edf416d6812c02bd9a13939addf9a235";
-      url = "mirror://steamrt/pool/main/p/pulseaudio/libpulse0_1.1-0ubuntu15.2+steamrt1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libpulse0.deb";
-      };
-    }
-    rec {
-      name = "libquadmath0_5.4.0-7.really.6+steamrt1.2+srt2_amd64";
-      sha256 = "12523138b2f21cd6d824b5c778ee49789ef0129ba6207cf03d3cf6b4138b1a1b";
-      url = "mirror://steamrt/pool/main/g/gcc-5/libquadmath0_5.4.0-7.really.6+steamrt1.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libquadmath0.deb";
-      };
-    }
-    rec {
-      name = "libroken18-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64";
-      sha256 = "e55b129066b92ab99f518d2f857b54e8754c3c873b5fb603270e3c4c36564a7b";
-      url = "mirror://steamrt/pool/main/h/heimdal/libroken18-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libroken18-heimdal.deb";
-      };
-    }
-    rec {
-      name = "librtmp0_2.4~20110711.gitc28f1bab-1+steamrt1.1+srt4_amd64";
-      sha256 = "27526dac26e2b323ec6dc764671839c3a2c5476fb16c7980959b17af4177486b";
-      url = "mirror://steamrt/pool/main/r/rtmpdump/librtmp0_2.4~20110711.gitc28f1bab-1+steamrt1.1+srt4_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "librtmp0.deb";
-      };
-    }
-    rec {
-      name = "libsamplerate0_0.1.8-4+srt6_amd64";
-      sha256 = "cfb983b7a89dd8ec43cca84883fc44367d74d341ba4bad2b106793abad7ae145";
-      url = "mirror://steamrt/pool/main/libs/libsamplerate/libsamplerate0_0.1.8-4+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsamplerate0.deb";
-      };
-    }
-    rec {
-      name = "libsasl2-2_2.1.25.dfsg1-3ubuntu0.1+srt6_amd64";
-      sha256 = "8a12f971d3905b5b84fd9c3fca3c7afe1867f8f5db8359157b0cd1c45dda8fc7";
-      url = "mirror://steamrt/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.25.dfsg1-3ubuntu0.1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsasl2-2.deb";
-      };
-    }
-    rec {
-      name = "libsdl-image1.2_1.2.10-3+srt6_amd64";
-      sha256 = "a90b7182e92af49e4a2c3c76b5dd85b2f0df334933070c035d48724aafd8d199";
-      url = "mirror://steamrt/pool/main/s/sdl-image1.2/libsdl-image1.2_1.2.10-3+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl-image1.2.deb";
-      };
-    }
-    rec {
-      name = "libsdl-mixer1.2_1.2.11-7+steamrt1+srt6_amd64";
-      sha256 = "bc30e755796872bf7a4a3e7dc84f41a265ff1893ea777f809663f76dfeb047fb";
-      url = "mirror://steamrt/pool/main/s/sdl-mixer1.2/libsdl-mixer1.2_1.2.11-7+steamrt1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl-mixer1.2.deb";
-      };
-    }
-    rec {
-      name = "libsdl-ttf2.0-0_2.0.9-1.1ubuntu1+srt6_amd64";
-      sha256 = "b3e18a7fe335cd623410f3eb3c86a2abda8d83d287e8304c0c7df9e8219938fe";
-      url = "mirror://steamrt/pool/main/s/sdl-ttf2.0/libsdl-ttf2.0-0_2.0.9-1.1ubuntu1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl-ttf2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libsdl1.2debian_1.2.15-5+steamrt1.2+srt1_amd64";
-      sha256 = "5641a948c70a41a7ade79de001376686acee7b5a678aaf24be29dbbdefbde7d7";
-      url = "mirror://steamrt/pool/main/libs/libsdl1.2/libsdl1.2debian_1.2.15-5+steamrt1.2+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl1.2debian.deb";
-      };
-    }
-    rec {
-      name = "libsdl2-2.0-0_2.0.10-0+steamrt1.3+srt1_amd64";
-      sha256 = "a69cf30f4c0f7ee02d9c37bd2ec25bab76a8c1175674959738e945bae05c7ed6";
-      url = "mirror://steamrt/pool/main/libs/libsdl2/libsdl2-2.0-0_2.0.10-0+steamrt1.3+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl2-2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libsdl2-image-2.0-0_2.0.5-0+steamrt1.1+srt1_amd64";
-      sha256 = "13a3c69b92a72490eb1dd7e6c09244047b22765882944dc4bb335cb356f423a1";
-      url = "mirror://steamrt/pool/main/libs/libsdl2-image/libsdl2-image-2.0-0_2.0.5-0+steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl2-image-2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libsdl2-mixer-2.0-0_2.0.4.~reimport-0+steamrt1.2+srt1_amd64";
-      sha256 = "78860d794928a0f7a31cd4ee83f395151dedb74f0e2613c6833438aa0d3f1d54";
-      url = "mirror://steamrt/pool/main/libs/libsdl2-mixer/libsdl2-mixer-2.0-0_2.0.4.~reimport-0+steamrt1.2+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl2-mixer-2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libsdl2-net-2.0-0_2.0.1.~reimport-0+steamrt1.1+srt1_amd64";
-      sha256 = "cea2cc24af441eca4e23227bcc9eef80047befcf4f79c9c5dc796f157068da45";
-      url = "mirror://steamrt/pool/main/libs/libsdl2-net/libsdl2-net-2.0-0_2.0.1.~reimport-0+steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl2-net-2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libsdl2-ttf-2.0-0_2.0.15-0+steamrt1.1+srt2_amd64";
-      sha256 = "4444fb73f3bc2b7229dea2564baba233958158d82c73489724d4107bd31e3e6c";
-      url = "mirror://steamrt/pool/main/libs/libsdl2-ttf/libsdl2-ttf-2.0-0_2.0.15-0+steamrt1.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl2-ttf-2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libselinux1_2.1.0-4.1ubuntu1+srt6_amd64";
-      sha256 = "7172d53c8baf857ed8909eb9bbbda93d0ff177b2f3ca723c716d3af34690135d";
-      url = "mirror://steamrt/pool/main/libs/libselinux/libselinux1_2.1.0-4.1ubuntu1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libselinux1.deb";
-      };
-    }
-    rec {
-      name = "libsm6_1.2.0-2build1+srt6_amd64";
-      sha256 = "e22295663740d88bcc92f8fa67eb55750b0855be98474de76a3e2bf796eb3c12";
-      url = "mirror://steamrt/pool/main/libs/libsm/libsm6_1.2.0-2build1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsm6.deb";
-      };
-    }
-    rec {
-      name = "libsndfile1_1.0.25-4+steamrt1.1ubuntu0.1+srt2_amd64";
-      sha256 = "042a5c518bdd3152ef8052bd7a88babb31077840ce85383034c0e54d29f6ed07";
-      url = "mirror://steamrt/pool/main/libs/libsndfile/libsndfile1_1.0.25-4+steamrt1.1ubuntu0.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsndfile1.deb";
-      };
-    }
-    rec {
-      name = "libspeex1_1.2~rc1-3ubuntu2+srt6_amd64";
-      sha256 = "a22fc321ca4a9c35109d48a74a2cc5b60131d1ebf7b09683d66e14aff728eda1";
-      url = "mirror://steamrt/pool/main/s/speex/libspeex1_1.2~rc1-3ubuntu2+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libspeex1.deb";
-      };
-    }
-    rec {
-      name = "libspeexdsp1_1.2~rc1-3ubuntu2+srt6_amd64";
-      sha256 = "7cd488929976b818160d4c6a043468d08ebaf7cec9dfcd44bf36907adc428052";
-      url = "mirror://steamrt/pool/main/s/speex/libspeexdsp1_1.2~rc1-3ubuntu2+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libspeexdsp1.deb";
-      };
-    }
-    rec {
-      name = "libsqlite3-0_3.7.9-2ubuntu1.2+srt3_amd64";
-      sha256 = "72cd1300cb4725894778d453d9a9a25aa96f033864306c8cc1726078480437ca";
-      url = "mirror://steamrt/pool/main/s/sqlite3/libsqlite3-0_3.7.9-2ubuntu1.2+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsqlite3-0.deb";
-      };
-    }
-    rec {
-      name = "libssl1.0.0_1.0.1-4ubuntu5.39+steamrt1.1+srt2_amd64";
-      sha256 = "e6ccfb7c0505baa106abbab67af5f685e32d24d5cd6afe8468f69526b7a3db92";
-      url = "mirror://steamrt/pool/main/o/openssl/libssl1.0.0_1.0.1-4ubuntu5.39+steamrt1.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libssl1.0.0.deb";
-      };
-    }
-    rec {
-      name = "libstdc++6_5.4.0-7.really.6+steamrt1.2+srt2_amd64";
-      sha256 = "ed886139ace433f0922c87defd922ec57e54c495e9a5b54a6aaf7c02762d27e2";
-      url = "mirror://steamrt/pool/main/g/gcc-5/libstdc++6_5.4.0-7.really.6+steamrt1.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libstdc++6.deb";
-      };
-    }
-    rec {
-      name = "libstdc++6-4.6-pic_4.6.3-1ubuntu5+steamrt1.2+srt2_amd64";
-      sha256 = "59e784845048714b6ddd02013cb1ccc8a819489a7081c3f479b7fa7121893a4a";
-      url = "mirror://steamrt/pool/main/g/gcc-4.6/libstdc++6-4.6-pic_4.6.3-1ubuntu5+steamrt1.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libstdc++6-4.6-pic.deb";
-      };
-    }
-    rec {
-      name = "libsteam-runtime-tools-0-0_0.20200415.0+srt1_amd64";
-      sha256 = "0db05ccf5ca6705a6001d2c43ae5163cc289ef60126381bf886014e2344b4190";
-      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-0_0.20200415.0+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsteam-runtime-tools-0-0.deb";
-      };
-    }
-    rec {
-      name = "libsteam-runtime-tools-0-helpers_0.20200415.0+srt1_amd64";
-      sha256 = "c568548d3c73df1c61efe06574e4ab17c2250059e9659690dec6c43db8695ce8";
-      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-helpers_0.20200415.0+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsteam-runtime-tools-0-helpers.deb";
-      };
-    }
-    rec {
-      name = "libsteam-runtime-tools-0-relocatable-libs_0.20200415.0+srt1_amd64";
-      sha256 = "450c03778f4901e8b54f5dc879b071a84d18f4fc65e6308b91eebf40c77ef093";
-      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-relocatable-libs_0.20200415.0+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsteam-runtime-tools-0-relocatable-libs.deb";
-      };
-    }
-    rec {
-      name = "libswscale2_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_amd64";
-      sha256 = "dda1950d7e1f50547ce57246bc7e19c3c1ab1166ee81ca637ff86d373e20253c";
-      url = "mirror://steamrt/pool/main/liba/libav/libswscale2_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libswscale2.deb";
-      };
-    }
-    rec {
-      name = "libtasn1-3_2.10-1ubuntu1.5+srt3_amd64";
-      sha256 = "f9c6c9b2cd83aaff5e07e0e7a99be8110f8b1b4be0f7ec9cf96aaa097b4da386";
-      url = "mirror://steamrt/pool/main/libt/libtasn1-3/libtasn1-3_2.10-1ubuntu1.5+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libtasn1-3.deb";
-      };
-    }
-    rec {
-      name = "libtasn1-6_4.7-3ubuntu0.16.04.3~steamrt1.1+srt2_amd64";
-      sha256 = "93f7e1764a6db1e22b33476eb5f9367eca21a61d0d04a2a0cd0de170f21356d6";
-      url = "mirror://steamrt/pool/main/libt/libtasn1-6/libtasn1-6_4.7-3ubuntu0.16.04.3~steamrt1.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libtasn1-6.deb";
-      };
-    }
-    rec {
-      name = "libtbb2_4.0+r233-1+steamrt2+srt2_amd64";
-      sha256 = "6e91c619b891ef51a53cb86b83b67cc3ba1c223af58e166375c26622efd9575a";
-      url = "mirror://steamrt/pool/main/t/tbb/libtbb2_4.0+r233-1+steamrt2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libtbb2.deb";
-      };
-    }
-    rec {
-      name = "libtdb1_1.2.9-4+srt6_amd64";
-      sha256 = "d35843de8c8847850477318d00f0159e76492d71d2817f81fc512a56376e3efb";
-      url = "mirror://steamrt/pool/main/t/tdb/libtdb1_1.2.9-4+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libtdb1.deb";
-      };
-    }
-    rec {
-      name = "libtheora0_1.1.1+dfsg.1-3ubuntu2+srt6_amd64";
-      sha256 = "f8e9e796fd307689143b54e5b4c451c19c0970575241587e8c3a24ce6947c7a3";
-      url = "mirror://steamrt/pool/main/libt/libtheora/libtheora0_1.1.1+dfsg.1-3ubuntu2+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libtheora0.deb";
-      };
-    }
-    rec {
-      name = "libtiff4_3.9.5-2ubuntu1.9+srt3_amd64";
-      sha256 = "e9f8da291dc5dd48ea5f0f94e628f1e17ace6d1e655b7ffcbca175d85db98d8a";
-      url = "mirror://steamrt/pool/main/t/tiff/libtiff4_3.9.5-2ubuntu1.9+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libtiff4.deb";
-      };
-    }
-    rec {
-      name = "libtinfo5_5.9-4+srt6_amd64";
-      sha256 = "c12b7f27206ba4541468ff5f134973b2f5bb69a4e86d3c2e43f111eaa7db76a0";
-      url = "mirror://steamrt/pool/main/n/ncurses/libtinfo5_5.9-4+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libtinfo5.deb";
-      };
-    }
-    rec {
-      name = "libtxc-dxtn-s2tc0_0~git20131104-1.1+srt2_amd64";
-      sha256 = "f3dbcab81697c5206f5b8dbb3176093204a9a8ba1611ddde7e156f844947c763";
-      url = "mirror://steamrt/pool/main/s/s2tc/libtxc-dxtn-s2tc0_0~git20131104-1.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libtxc-dxtn-s2tc0.deb";
-      };
-    }
-    rec {
-      name = "libudev0_175-0ubuntu9.10+srt2_amd64";
-      sha256 = "6690f89862ebf2104f0d3c477cdfaf46fa99a7060913eb46776536daa64ef0f0";
-      url = "mirror://steamrt/pool/main/u/udev/libudev0_175-0ubuntu9.10+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libudev0.deb";
-      };
-    }
-    rec {
-      name = "libusb-1.0-0_1.0.19-1+srt3_amd64";
-      sha256 = "db8f1014d3642c8d01fcdc319e1cbbf16db4a922bb7abe66b83bc4ce41ee3a39";
-      url = "mirror://steamrt/pool/main/libu/libusb-1.0/libusb-1.0-0_1.0.19-1+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libusb-1.0-0.deb";
-      };
-    }
-    rec {
-      name = "libuuid1_2.20.1-1ubuntu3.1+steamrt1.2+srt2_amd64";
-      sha256 = "5c2bb10e8a541dd20eac84b7fb02c3ff513642bd1941f548fd2f906e00733fcc";
-      url = "mirror://steamrt/pool/main/u/util-linux/libuuid1_2.20.1-1ubuntu3.1+steamrt1.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libuuid1.deb";
-      };
-    }
-    rec {
-      name = "libva-drm1_1.7.0-1+steamrt1.1+srt1_amd64";
-      sha256 = "ee98522c6c69c1f6134a37d63a74f6c4f4ef5be2944bd504e8886333115f1f06";
-      url = "mirror://steamrt/pool/main/libv/libva1/libva-drm1_1.7.0-1+steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libva-drm1.deb";
-      };
-    }
-    rec {
-      name = "libva-drm2_2.1.0-3~steamrt1.2+srt1_amd64";
-      sha256 = "5add6487f678a13cc71d039b1ebd6991b1395dd8ce78124ac3675ea80f10e1b8";
-      url = "mirror://steamrt/pool/main/libv/libva/libva-drm2_2.1.0-3~steamrt1.2+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libva-drm2.deb";
-      };
-    }
-    rec {
-      name = "libva-glx1_1.7.0-1+steamrt1.1+srt1_amd64";
-      sha256 = "938db19eecb0a2fbc5058e90962cdbc05f3ef2b1601341b7b6d7be429da97259";
-      url = "mirror://steamrt/pool/main/libv/libva1/libva-glx1_1.7.0-1+steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libva-glx1.deb";
-      };
-    }
-    rec {
-      name = "libva-glx2_2.1.0-3~steamrt1.2+srt1_amd64";
-      sha256 = "7a14fde5181a5c313e97bcb25d6233c7343ebc009c3c5065bb65e8d3ec74f643";
-      url = "mirror://steamrt/pool/main/libv/libva/libva-glx2_2.1.0-3~steamrt1.2+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libva-glx2.deb";
-      };
-    }
-    rec {
-      name = "libva-x11-1_1.7.0-1+steamrt1.1+srt1_amd64";
-      sha256 = "6f0894f499b44346af1d35a3d1300b9cc2d9b1674fca879345daf392620322ae";
-      url = "mirror://steamrt/pool/main/libv/libva1/libva-x11-1_1.7.0-1+steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libva-x11-1.deb";
-      };
-    }
-    rec {
-      name = "libva-x11-2_2.1.0-3~steamrt1.2+srt1_amd64";
-      sha256 = "47f70088a25e92b036374d8ff132e11b38546f26ee2e6cba141d42f766d8c748";
-      url = "mirror://steamrt/pool/main/libv/libva/libva-x11-2_2.1.0-3~steamrt1.2+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libva-x11-2.deb";
-      };
-    }
-    rec {
-      name = "libva1_1.7.0-1+steamrt1.1+srt1_amd64";
-      sha256 = "f0c27f86e0ec4e210e05b2217d2d51fe52994add7df2fe5ff41e7f8aeee6f426";
-      url = "mirror://steamrt/pool/main/libv/libva1/libva1_1.7.0-1+steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libva1.deb";
-      };
-    }
-    rec {
-      name = "libva2_2.1.0-3~steamrt1.2+srt1_amd64";
-      sha256 = "08c60888e39e4656fa4c41dbbb2baa0d99f91a8fabbf5336261b255c0ea4f185";
-      url = "mirror://steamrt/pool/main/libv/libva/libva2_2.1.0-3~steamrt1.2+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libva2.deb";
-      };
-    }
-    rec {
-      name = "libvdpau1_0.4.1-3ubuntu1.2+srt3_amd64";
-      sha256 = "c40c31da412fec43c201e88458782dad6884e1eab9593815bdf0d9132eb76baf";
-      url = "mirror://steamrt/pool/main/libv/libvdpau/libvdpau1_0.4.1-3ubuntu1.2+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libvdpau1.deb";
-      };
-    }
-    rec {
-      name = "libvorbis0a_1.3.5-4.2+srt2_amd64";
-      sha256 = "808411459a4e660ef5b459b19f145d34f6fd7750609e91985e34e95eaab62888";
-      url = "mirror://steamrt/pool/main/libv/libvorbis/libvorbis0a_1.3.5-4.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libvorbis0a.deb";
-      };
-    }
-    rec {
-      name = "libvorbisenc2_1.3.5-4.2+srt2_amd64";
-      sha256 = "3273f701ce01742e8eb746b4b4102f05c6ea6771561b73292e94d8d42dad142f";
-      url = "mirror://steamrt/pool/main/libv/libvorbis/libvorbisenc2_1.3.5-4.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libvorbisenc2.deb";
-      };
-    }
-    rec {
-      name = "libvorbisfile3_1.3.5-4.2+srt2_amd64";
-      sha256 = "fdae8ab04379c397ea46df535f64a04b29dcdc46031cd077519c554740f0b156";
-      url = "mirror://steamrt/pool/main/libv/libvorbis/libvorbisfile3_1.3.5-4.2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libvorbisfile3.deb";
-      };
-    }
-    rec {
-      name = "libvpx1_1.0.0-2+srt2_amd64";
-      sha256 = "57dc793a94d5be476f84c66751f9b5923d9ee7a507b865fbc4607b6b66760432";
-      url = "mirror://steamrt/pool/main/libv/libvpx/libvpx1_1.0.0-2+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libvpx1.deb";
-      };
-    }
-    rec {
-      name = "libvulkan1_1.2.135.0-1~steamrt1.1+srt1_amd64";
-      sha256 = "fa3dfb44b47c35e8a16de3c8240accdca131b70dd59a84f6e38cc6824219fa28";
-      url = "mirror://steamrt/pool/main/v/vulkan-loader/libvulkan1_1.2.135.0-1~steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libvulkan1.deb";
-      };
-    }
-    rec {
-      name = "libwaffle-1-0_1.6.1-0+steamrt1.1+srt1_amd64";
-      sha256 = "a2a73515ddef193da5de918190df27fce75cf27c3081662c2f6fc5d227c96cc4";
-      url = "mirror://steamrt/pool/main/w/waffle/libwaffle-1-0_1.6.1-0+steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libwaffle-1-0.deb";
-      };
-    }
-    rec {
-      name = "libwind0-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64";
-      sha256 = "e72aabe5b6c20bb667e1746918a354cb6151e07a9892ea0735406966dff019af";
-      url = "mirror://steamrt/pool/main/h/heimdal/libwind0-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libwind0-heimdal.deb";
-      };
-    }
-    rec {
-      name = "libwrap0_7.6.q-21+srt6_amd64";
-      sha256 = "a05d3c3bbdb0059b2693602dfc614ec458e53987d625a7712f3171fa53642f15";
-      url = "mirror://steamrt/pool/main/t/tcp-wrappers/libwrap0_7.6.q-21+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libwrap0.deb";
-      };
-    }
-    rec {
-      name = "libx11-6_1.6.3-1ubuntu2.1+srt2_amd64";
-      sha256 = "6217810de68a0fe252f15bb544346383bdd4ee946e34d0352f78c678186b6da6";
-      url = "mirror://steamrt/pool/main/libx/libx11/libx11-6_1.6.3-1ubuntu2.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libx11-6.deb";
-      };
-    }
-    rec {
-      name = "libx11-xcb1_1.6.3-1ubuntu2.1+srt2_amd64";
-      sha256 = "cd4fd2fb5ac913a752e20476e612629c802e448539fba9ed74d77b91fc0f47cc";
-      url = "mirror://steamrt/pool/main/libx/libx11/libx11-xcb1_1.6.3-1ubuntu2.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libx11-xcb1.deb";
-      };
-    }
-    rec {
-      name = "libxau6_1.0.6-4+srt6_amd64";
-      sha256 = "8934767e2168cc4e2508c091ec2264048ca6bef145383db191f203c09337c833";
-      url = "mirror://steamrt/pool/main/libx/libxau/libxau6_1.0.6-4+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxau6.deb";
-      };
-    }
-    rec {
-      name = "libxaw7_1.0.9-3ubuntu1+srt6_amd64";
-      sha256 = "781bdd4ff568750b5147b0242a91ffdb85167af482063883d29bb13d0309bfd2";
-      url = "mirror://steamrt/pool/main/libx/libxaw/libxaw7_1.0.9-3ubuntu1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxaw7.deb";
-      };
-    }
-    rec {
-      name = "libxcb-composite0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "2639fa857b7c4e75605d6a3c2c3a3f3b9bab478883cfa40ad780252f6ad9710b";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-composite0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-composite0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-damage0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "abdd286dfe7d74e3c98d2721528add00cf8967f0aea9e61534e19c38d09b654c";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-damage0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-damage0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-dpms0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "80b0a477b5e53fab89781181d937579e54cd1c8f5d3ea77fdd8ad1fa77df32ed";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-dpms0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-dpms0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-dri2-0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "bf6aefcf11b46e7c6c45408cd3c9d21028f3c0ddcc7a157c76ca1d81e02aca6c";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-dri2-0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-dri2-0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-dri3-0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "cbb423fab5493fdf1021e58ce1bfcbee1bfe8fe9ab0464d73b184993128da2f8";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-dri3-0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-dri3-0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-glx0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "aaf25e7a0a3e501023a5826043581e9a1172e3f6cd68fb0b87a82f639d02f595";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-glx0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-glx0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-present0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "fd2c110278edc2ba6c6bfab04947c16c54b7744af663429d9b32677289ae6ddc";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-present0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-present0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-randr0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "1170a49cbf57d515981e32e26f0a2e9762af3ded254e98d4317992b903c271ac";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-randr0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-randr0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-record0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "58e7ff4e5a9bcaa50748e7df4719c71708982b2ea8e1811c26fffa6d745bd11c";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-record0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-record0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-render0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "a7eed9a0c59b2a17d1431157f40e16bd3891769f13709e56df9c5025992aae42";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-render0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-render0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-res0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "d1beca464a4acaff0c8ac43c03a9ed260193678e0ee98a4b70f602c3fa7a2843";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-res0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-res0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-screensaver0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "3d04ccf79785c5bb7ab5c6cfae56371a0b8cbbe4e5c7b5897f91a20ee4b516be";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-screensaver0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-screensaver0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-shape0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "a0f2dd0be89db8833493edb179974db702a6ec86ee4c15896605ceb6ddaa8e54";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-shape0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-shape0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-shm0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "0ee8a32a8a8bc96e374e5fe6980acb652d2ca846d1a0998f757e857320abbdbe";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-shm0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-shm0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-sync1_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "07e7b5267f9cfd1ea6ef1c0c4edec41fd19d1e02b9c6cac7898a3c496a427d10";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-sync1_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-sync1.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xevie0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "fa8a61680c23caee52ca7aa32ce8d46143e5d68e47cc5bd3092a3e32da2673bd";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xevie0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xevie0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xf86dri0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "6e0e4270580b1b46b32fbb02b1e2ccbea49c94c5463197c238d5410a61a74b7b";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xf86dri0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xf86dri0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xfixes0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "77e6ea5019c757a38fee80b4e4bcb54f1304299f8a557ed9b8116cc106d66930";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xfixes0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xfixes0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xinerama0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "3ba7479a9d165f2a49b6ef8327a3bbcc1f6dad7e9bc26bc8819467aeb09337fa";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xinerama0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xinerama0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xkb1_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "c9d48121969c8607ad47b597be1d261a084fd907885ce0ef02a2dc6924e4421d";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xkb1_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xkb1.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xprint0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "a27fbb11170f2fb9730ec935e598ea6d4e9b513d0e3c793a29e5f893501dfa09";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xprint0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xprint0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xtest0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "3393b6248671421de17518320504f9593a25c202cc1a5c3d0fc127d259a7f472";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xtest0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xtest0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xv0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "20d97a75903b62553b9b61a2a6c2c2a5d1c5476c470a606fde01627e3fd2d155";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xv0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xv0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xvmc0_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "3a35f1fb1a9550ffa5694f973cca72115254880514b519b547f1a8ac8d4c9150";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xvmc0_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xvmc0.deb";
-      };
-    }
-    rec {
-      name = "libxcb1_1.11.1-1ubuntu1+steamos1+srt2_amd64";
-      sha256 = "5c93e80460b2c672a785368995a0e2388400508a4d768c72193e19539f05dc72";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb1_1.11.1-1ubuntu1+steamos1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb1.deb";
-      };
-    }
-    rec {
-      name = "libxcomposite1_0.4.3-2build1+srt6_amd64";
-      sha256 = "d84cff429e2f4cf5b201c13aa85586d74fc49114309fe9fbb57914b3ab8e187b";
-      url = "mirror://steamrt/pool/main/libx/libxcomposite/libxcomposite1_0.4.3-2build1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcomposite1.deb";
-      };
-    }
-    rec {
-      name = "libxcursor1_1.1.12-1ubuntu0.1+srt6_amd64";
-      sha256 = "72f53a50de7ce5428291d3336aea501fd18c1a3d62832737590fba25cd8b98b6";
-      url = "mirror://steamrt/pool/main/libx/libxcursor/libxcursor1_1.1.12-1ubuntu0.1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcursor1.deb";
-      };
-    }
-    rec {
-      name = "libxdamage1_1.1.3-2build1+srt6_amd64";
-      sha256 = "ce251ec5482f25d3cb055dbaf34912ef26ccb8e752ea8fb426a269c70002c4dc";
-      url = "mirror://steamrt/pool/main/libx/libxdamage/libxdamage1_1.1.3-2build1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxdamage1.deb";
-      };
-    }
-    rec {
-      name = "libxdmcp6_1.1.0-4+srt6_amd64";
-      sha256 = "baeb880ee5485b9ab28631254ad1c59dc0170294201bb01e0de7c42baf4a191b";
-      url = "mirror://steamrt/pool/main/libx/libxdmcp/libxdmcp6_1.1.0-4+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxdmcp6.deb";
-      };
-    }
-    rec {
-      name = "libxext6_1.3.0-3ubuntu0.2+steamrt1+srt3_amd64";
-      sha256 = "716b73561d9df1b9370eecf3ee523f648cd743e730d6e14d63b9539c4f74949f";
-      url = "mirror://steamrt/pool/main/libx/libxext/libxext6_1.3.0-3ubuntu0.2+steamrt1+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxext6.deb";
-      };
-    }
-    rec {
-      name = "libxfixes3_5.0-4ubuntu4.4+srt3_amd64";
-      sha256 = "fdd22ee527c9f157bd53c4a2ac374531f0185e751ded24e255dde3cb41c54e6d";
-      url = "mirror://steamrt/pool/main/libx/libxfixes/libxfixes3_5.0-4ubuntu4.4+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxfixes3.deb";
-      };
-    }
-    rec {
-      name = "libxft2_2.2.0-3ubuntu2+srt6_amd64";
-      sha256 = "4160f4dc1f4bde50e3ca6609029cc422078017e855e61b0eb986e75bc37fb02c";
-      url = "mirror://steamrt/pool/main/x/xft/libxft2_2.2.0-3ubuntu2+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxft2.deb";
-      };
-    }
-    rec {
-      name = "libxi6_1.7.1.901-1ubuntu1~precise3+srt3_amd64";
-      sha256 = "60603bcbd89af27f963bf15a662562c496bf989d7e18689a746c53be62e4cb62";
-      url = "mirror://steamrt/pool/main/libx/libxi/libxi6_1.7.1.901-1ubuntu1~precise3+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxi6.deb";
-      };
-    }
-    rec {
-      name = "libxinerama1_1.1.1-3ubuntu0.1+srt6_amd64";
-      sha256 = "26ae823a08f8c79ca40cfdc5f7e561d10e7677f9012949948e1cbcd94f819e2b";
-      url = "mirror://steamrt/pool/main/libx/libxinerama/libxinerama1_1.1.1-3ubuntu0.1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxinerama1.deb";
-      };
-    }
-    rec {
-      name = "libxml2_2.7.8.dfsg-5.1ubuntu4.17+srt2_amd64";
-      sha256 = "d24a1daf4b399f9f99bb9c9a0047b95039fcf2d9010e4387001ca3f5b87f001e";
-      url = "mirror://steamrt/pool/main/libx/libxml2/libxml2_2.7.8.dfsg-5.1ubuntu4.17+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxml2.deb";
-      };
-    }
-    rec {
-      name = "libxmu6_1.1.0-3+srt6_amd64";
-      sha256 = "42a5a58f0c809d5c761155ca311207970e98d38eb40cf50343a37bf8b84285a5";
-      url = "mirror://steamrt/pool/main/libx/libxmu/libxmu6_1.1.0-3+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxmu6.deb";
-      };
-    }
-    rec {
-      name = "libxpm4_3.5.9-4+steamrt1.1ubuntu0.1+srt2_amd64";
-      sha256 = "99b0b9a684573156f7d062d6cbfac498b6c5902453d4f12cb7fed7f841c61774";
-      url = "mirror://steamrt/pool/main/libx/libxpm/libxpm4_3.5.9-4+steamrt1.1ubuntu0.1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxpm4.deb";
-      };
-    }
-    rec {
-      name = "libxrandr2_1.5.0-1+srt2_amd64";
-      sha256 = "ef4b4a33192873f33d490f7fa8407b4044009c85f40fc10df22fa0e0e97cb2a3";
-      url = "mirror://steamrt/pool/main/libx/libxrandr/libxrandr2_1.5.0-1+srt2_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxrandr2.deb";
-      };
-    }
-    rec {
-      name = "libxrender1_0.9.6-2ubuntu0.2+srt3_amd64";
-      sha256 = "3d0bba7e7cfa552d3770c43eae8a52a131ea1e59b6180b345e44113d310b3826";
-      url = "mirror://steamrt/pool/main/libx/libxrender/libxrender1_0.9.6-2ubuntu0.2+srt3_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxrender1.deb";
-      };
-    }
-    rec {
-      name = "libxss1_1.2.1-2+srt6_amd64";
-      sha256 = "bdca1d17584edbae953d21c44b99a6d1e42f2f4733ff3969d39ea75e4964de1a";
-      url = "mirror://steamrt/pool/main/libx/libxss/libxss1_1.2.1-2+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxss1.deb";
-      };
-    }
-    rec {
-      name = "libxt6_1.1.1-2ubuntu0.1+srt6_amd64";
-      sha256 = "7330731f3623bd177710a28c3a2becf8ec74c69e755686ca14d9b205ee1a5785";
-      url = "mirror://steamrt/pool/main/libx/libxt/libxt6_1.1.1-2ubuntu0.1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxt6.deb";
-      };
-    }
-    rec {
-      name = "libxtst6_1.2.0-4ubuntu0.1+srt6_amd64";
-      sha256 = "063b8c7e6187aac43b92731b5e06a5c78382ebd20e448a14b9c294198eda4d3d";
-      url = "mirror://steamrt/pool/main/libx/libxtst/libxtst6_1.2.0-4ubuntu0.1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxtst6.deb";
-      };
-    }
-    rec {
-      name = "libxxf86vm1_1.1.1-2ubuntu0.1+srt6_amd64";
-      sha256 = "7f83864c72c692bb354974e0ebe30b67965810c292dc254d5a0a96c8967b4819";
-      url = "mirror://steamrt/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.1-2ubuntu0.1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxxf86vm1.deb";
-      };
-    }
-    rec {
-      name = "nvidia-cg-toolkit_3.0.0016-0ubuntu1+srt6_amd64";
-      sha256 = "86c4f7c16ac0f6104dfa6c809469f20a750b7391a1e70e916afcbe472f11dc2a";
-      url = "mirror://steamrt/pool/main/n/nvidia-cg-toolkit/nvidia-cg-toolkit_3.0.0016-0ubuntu1+srt6_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "nvidia-cg-toolkit.deb";
-      };
-    }
-    rec {
-      name = "steam-runtime-tools-bin_0.20200415.0+srt1_amd64";
-      sha256 = "e21848eb4cf02402600a952f5ca8bafbd95db9f5b3bb8d5af746721c5ac4ebc3";
-      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/steam-runtime-tools-bin_0.20200415.0+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "steam-runtime-tools-bin.deb";
-      };
-    }
-    rec {
-      name = "steamrt-legacy_1.20200421.0+srt1_amd64";
-      sha256 = "9ee2744dbefc6c8055d3f496ad8e7ab8df01049a5571b9558c23b15001218fa6";
-      url = "mirror://steamrt/pool/main/s/steamrt/steamrt-legacy_1.20200421.0+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "steamrt-legacy.deb";
-      };
-    }
-    rec {
-      name = "steamrt-libs_1.20200421.0+srt1_amd64";
-      sha256 = "52ffad4cdca3f7f1c8091474a1a978941512c993e52d15fadab49165e248603b";
-      url = "mirror://steamrt/pool/main/s/steamrt/steamrt-libs_1.20200421.0+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "steamrt-libs.deb";
-      };
-    }
-    rec {
-      name = "vainfo_2.1.0+ds1-1~steamrt1.1+srt1_amd64";
-      sha256 = "20758135cdf3ada791e1c6b57cdf8db1505b3dd3f429f3f12a6e92d589f568d9";
-      url = "mirror://steamrt/pool/main/libv/libva-utils/vainfo_2.1.0+ds1-1~steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "vainfo.deb";
-      };
-    }
-    rec {
-      name = "vainfo-1_1.7.0-1+steamrt1.1+srt1_amd64";
-      sha256 = "f6f80b18d853edcac5ee09a522d01e83f9d02d3ccc7e7fda09b567c37d9f516e";
-      url = "mirror://steamrt/pool/main/libv/libva1/vainfo-1_1.7.0-1+steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "vainfo-1.deb";
-      };
-    }
-    rec {
-      name = "vainfo-1-multiarch_1.7.0-1+steamrt1.1+srt1_amd64";
-      sha256 = "6b4369f80a1d24c3c9fdd73f5c8f00ab67c136ad9ef60dfe70f4b662e5040306";
-      url = "mirror://steamrt/pool/main/libv/libva1/vainfo-1-multiarch_1.7.0-1+steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "vainfo-1-multiarch.deb";
-      };
-    }
-    rec {
-      name = "vainfo-multiarch_2.1.0+ds1-1~steamrt1.1+srt1_amd64";
-      sha256 = "3ac30bc566b2c949da526d5d26a957cb9bcce1ea7d109ee4b79e2109ae1ee995";
-      url = "mirror://steamrt/pool/main/libv/libva-utils/vainfo-multiarch_2.1.0+ds1-1~steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "vainfo-multiarch.deb";
-      };
-    }
-    rec {
-      name = "vulkan-tools_1.2.135.0+dfsg1-1~steamrt1.1+srt1_amd64";
-      sha256 = "bb70e1a31fe204319ea24292fe0ee7a9073f1b8f79e66ffb1ab192e500f8452b";
-      url = "mirror://steamrt/pool/main/v/vulkan-tools/vulkan-tools_1.2.135.0+dfsg1-1~steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "vulkan-tools.deb";
-      };
-    }
-    rec {
-      name = "vulkan-tools-multiarch_1.2.135.0+dfsg1-1~steamrt1.1+srt1_amd64";
-      sha256 = "8e8aa0bf8fe147dd52e442a88e57a16f86b3a807201175585d47c64531865822";
-      url = "mirror://steamrt/pool/main/v/vulkan-tools/vulkan-tools-multiarch_1.2.135.0+dfsg1-1~steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "vulkan-tools-multiarch.deb";
-      };
-    }
-    rec {
-      name = "waffle-utils_1.6.1-0+steamrt1.1+srt1_amd64";
-      sha256 = "ad14f1e2dcc6b9ed7b036989cf5f18efb683879927a4b474692bbe1d7ddbe94c";
-      url = "mirror://steamrt/pool/main/w/waffle/waffle-utils_1.6.1-0+steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "waffle-utils.deb";
-      };
-    }
-    rec {
-      name = "waffle-utils-multiarch_1.6.1-0+steamrt1.1+srt1_amd64";
-      sha256 = "cf66bcb711bee45fb722d4125d37d8001fe7f3691f81ac224b62f849af0b4fba";
-      url = "mirror://steamrt/pool/main/w/waffle/waffle-utils-multiarch_1.6.1-0+steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "waffle-utils-multiarch.deb";
-      };
-    }
-    rec {
-      name = "zenity_3.4.0-0ubuntu4+steamrt3+srt1_amd64";
-      sha256 = "c31a99f8d47cba157db251ea97cd14074d99c622969dd4d4173f76494feb7723";
-      url = "mirror://steamrt/pool/main/z/zenity/zenity_3.4.0-0ubuntu4+steamrt3+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "zenity.deb";
-      };
-    }
-    rec {
-      name = "zenity-common_3.4.0-0ubuntu4+steamrt3+srt1_all";
-      sha256 = "7ec603c8b00c5573e88e1df9785af4baef93b54e377e697515eb939b7c119cdc";
-      url = "mirror://steamrt/pool/main/z/zenity/zenity-common_3.4.0-0ubuntu4+steamrt3+srt1_all.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "zenity-common.deb";
-      };
-    }
-    rec {
-      name = "zlib1g_1.2.3.4.dfsg-3ubuntu4+srt7_amd64";
-      sha256 = "0cd05ea08abc9f30822a8eee0530d082938341fcd6c1a631b2237be7e1dcaae6";
-      url = "mirror://steamrt/pool/main/z/zlib/zlib1g_1.2.3.4.dfsg-3ubuntu4+srt7_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "zlib1g.deb";
-      };
-    }
-  ];
-  i386 = [
-    rec {
-      name = "dconf-gsettings-backend_0.12.0-0ubuntu1.1+steamrt1.1+srt2_i386";
-      sha256 = "44366cb9097377fdd517f93bca87181254cfc8acf93e655f80a373c9166885f8";
-      url = "mirror://steamrt/pool/main/d/d-conf/dconf-gsettings-backend_0.12.0-0ubuntu1.1+steamrt1.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "dconf-gsettings-backend.deb";
-      };
-    }
-    rec {
-      name = "freeglut3_2.6.0-1ubuntu3+srt6_i386";
-      sha256 = "9aecbd438ad4ed3a9ff5953b76d16c54599db5de983e1e7b701ae2f36b706307";
-      url = "mirror://steamrt/pool/main/f/freeglut/freeglut3_2.6.0-1ubuntu3+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "freeglut3.deb";
-      };
-    }
-    rec {
-      name = "gcc-4.6-base_4.6.3-1ubuntu5+steamrt1.2+srt2_i386";
-      sha256 = "47ed7a8b051c6fc76025583cdc63d0b68c3052cd476e8c1343209a123e19f089";
-      url = "mirror://steamrt/pool/main/g/gcc-4.6/gcc-4.6-base_4.6.3-1ubuntu5+steamrt1.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "gcc-4.6-base.deb";
-      };
-    }
-    rec {
-      name = "gcc-5-base_5.4.0-7.really.6+steamrt1.2+srt2_i386";
-      sha256 = "be247eb920a666907820863ef411003c50850ade57cc42fdbf53b503d4db9644";
-      url = "mirror://steamrt/pool/main/g/gcc-5/gcc-5-base_5.4.0-7.really.6+steamrt1.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "gcc-5-base.deb";
-      };
-    }
-    rec {
-      name = "gtk2-engines_2.20.2-1ubuntu1+srt6_i386";
-      sha256 = "d3c614c5bba71a50e67068b83f66d03516ec1baf9e8d43fb7433562322cae0ed";
-      url = "mirror://steamrt/pool/main/g/gtk2-engines/gtk2-engines_2.20.2-1ubuntu1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "gtk2-engines.deb";
-      };
-    }
-    rec {
-      name = "gtk2-engines-murrine_0.98.2-0ubuntu1+srt6_i386";
-      sha256 = "c377c8be32a2f4f8163582a88f99f9226f44499b915c981c4d9bd2da8578db40";
-      url = "mirror://steamrt/pool/main/g/gtk2-engines-murrine/gtk2-engines-murrine_0.98.2-0ubuntu1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "gtk2-engines-murrine.deb";
-      };
-    }
-    rec {
-      name = "gtk2-engines-pixbuf_2.24.10-0ubuntu6+steamrt1+srt6_i386";
-      sha256 = "73e5414fd8737e64745d886f2180c685e1cfbd78409322222dea4d470a0e8447";
-      url = "mirror://steamrt/pool/main/g/gtk+2.0/gtk2-engines-pixbuf_2.24.10-0ubuntu6+steamrt1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "gtk2-engines-pixbuf.deb";
-      };
-    }
-    rec {
-      name = "libacl1_2.2.51-5ubuntu1+steamrt1.1+srt4_i386";
-      sha256 = "89baeb400931b59ca75def2c7e747ac23d8e5adec22792b1e8b66490bb23fe77";
-      url = "mirror://steamrt/pool/main/a/acl/libacl1_2.2.51-5ubuntu1+steamrt1.1+srt4_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libacl1.deb";
-      };
-    }
-    rec {
-      name = "libappindicator1_0.4.92-0ubuntu1.1+steamrt1+srt2_i386";
-      sha256 = "1dfff440099992bff06f5e01db3e298ac7272b6fc75786b75c1a5645d4d6df16";
-      url = "mirror://steamrt/pool/main/liba/libappindicator/libappindicator1_0.4.92-0ubuntu1.1+steamrt1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libappindicator1.deb";
-      };
-    }
-    rec {
-      name = "libasn1-8-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386";
-      sha256 = "40f34e384d61dd305412a46bfe6fbd5df859ef0033b0326dc3b88d57265d5c5a";
-      url = "mirror://steamrt/pool/main/h/heimdal/libasn1-8-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libasn1-8-heimdal.deb";
-      };
-    }
-    rec {
-      name = "libasound2_1.1.0-0ubuntu1+steamos1+srt3_i386";
-      sha256 = "9b7eedcafb01118a672a5b42790beec5cd8775cd585a4acaca2832c955511bff";
-      url = "mirror://steamrt/pool/main/a/alsa-lib/libasound2_1.1.0-0ubuntu1+steamos1+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libasound2.deb";
-      };
-    }
-    rec {
-      name = "libasound2-plugins_1.1.0-0ubuntu1+srt3_i386";
-      sha256 = "d61bb958a41a1bdc2a664ba2a9a83865b874b3e96f8776fedba6ed5810be96dd";
-      url = "mirror://steamrt/pool/main/a/alsa-plugins/libasound2-plugins_1.1.0-0ubuntu1+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libasound2-plugins.deb";
-      };
-    }
-    rec {
-      name = "libasyncns0_0.8-4+srt6_i386";
-      sha256 = "879d0f1173da5b064958150e071ccb5331b894962630546743e293e94bf100d1";
-      url = "mirror://steamrt/pool/main/liba/libasyncns/libasyncns0_0.8-4+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libasyncns0.deb";
-      };
-    }
-    rec {
-      name = "libatk1.0-0_2.18.0-1+steamrt1+srt2_i386";
-      sha256 = "67d9d72795c5b94a8980899739a59d2be2aa280cd6a2619f9fe342171d04e748";
-      url = "mirror://steamrt/pool/main/a/atk1.0/libatk1.0-0_2.18.0-1+steamrt1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libatk1.0-0.deb";
-      };
-    }
-    rec {
-      name = "libatomic1_5.4.0-7.really.6+steamrt1.2+srt2_i386";
-      sha256 = "aafd5b3b573f22562e3f93bfa449ca374e2788fb14d555193c5c57e996def8fb";
-      url = "mirror://steamrt/pool/main/g/gcc-5/libatomic1_5.4.0-7.really.6+steamrt1.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libatomic1.deb";
-      };
-    }
-    rec {
-      name = "libattr1_2.4.46-5ubuntu1+steamrt1.1+srt2_i386";
-      sha256 = "bcea5d6f2743c617dac44c4d836b6937a64816f3c288a56b656ee4adbf63714a";
-      url = "mirror://steamrt/pool/main/a/attr/libattr1_2.4.46-5ubuntu1+steamrt1.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libattr1.deb";
-      };
-    }
-    rec {
-      name = "libavahi-client3_0.6.30-5ubuntu2.2+srt2_i386";
-      sha256 = "7fb0b94117ae07e44e89267c518d57c9c654f2cc24cef436dc1da41089d957f6";
-      url = "mirror://steamrt/pool/main/a/avahi/libavahi-client3_0.6.30-5ubuntu2.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libavahi-client3.deb";
-      };
-    }
-    rec {
-      name = "libavahi-common3_0.6.30-5ubuntu2.2+srt2_i386";
-      sha256 = "0b0463837ad36503c280bc64bd9bcb60648d826f1afeea5fb39c0a8f4332755f";
-      url = "mirror://steamrt/pool/main/a/avahi/libavahi-common3_0.6.30-5ubuntu2.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libavahi-common3.deb";
-      };
-    }
-    rec {
-      name = "libavcodec53_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_i386";
-      sha256 = "56ff2ee6a4044ba8c6d180414828ad0c041a3c42c5667112003b0e0c1e421b0b";
-      url = "mirror://steamrt/pool/main/liba/libav/libavcodec53_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libavcodec53.deb";
-      };
-    }
-    rec {
-      name = "libavfilter2_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_i386";
-      sha256 = "70d1b49e40f0cfee65eb20c9388d51c6e98c468830fcacd95276908279a3f29d";
-      url = "mirror://steamrt/pool/main/liba/libav/libavfilter2_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libavfilter2.deb";
-      };
-    }
-    rec {
-      name = "libavformat53_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_i386";
-      sha256 = "034e3566a6e8f2b01726bb9d59b1130eb0a09af79ce9d934d040ae11e7923bb1";
-      url = "mirror://steamrt/pool/main/liba/libav/libavformat53_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libavformat53.deb";
-      };
-    }
-    rec {
-      name = "libavutil51_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_i386";
-      sha256 = "67001f81a336cb5480fd06043d9522d62e280022945d22a8be7f3e50ab4dfed5";
-      url = "mirror://steamrt/pool/main/liba/libav/libavutil51_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libavutil51.deb";
-      };
-    }
-    rec {
-      name = "libbz2-1.0_1.0.6-1+srt6_i386";
-      sha256 = "bbdc900e1531bf5e78256ead401624edb25c65c02dc904e73f61c683d86a94c7";
-      url = "mirror://steamrt/pool/main/b/bzip2/libbz2-1.0_1.0.6-1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libbz2-1.0.deb";
-      };
-    }
-    rec {
-      name = "libcairo2_1.10.2-6.1ubuntu3+srt6_i386";
-      sha256 = "5e2efefd18a8750a22c1b688b0fd19558291fd82319feb58469aa743ae277fe3";
-      url = "mirror://steamrt/pool/main/c/cairo/libcairo2_1.10.2-6.1ubuntu3+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcairo2.deb";
-      };
-    }
-    rec {
-      name = "libcanberra-gtk-module_0.28-3ubuntu3+steamrt1.1+srt2_i386";
-      sha256 = "3516a9992c803f770ad3f191dd50c926479300e57eb5ad944f3cc189cc17b2ff";
-      url = "mirror://steamrt/pool/main/libc/libcanberra/libcanberra-gtk-module_0.28-3ubuntu3+steamrt1.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcanberra-gtk-module.deb";
-      };
-    }
-    rec {
-      name = "libcanberra-gtk0_0.28-3ubuntu3+steamrt1.1+srt2_i386";
-      sha256 = "7dfe123753357fcf62367b07ab4dc0c8d98b640efd1f85833583c386850c6393";
-      url = "mirror://steamrt/pool/main/libc/libcanberra/libcanberra-gtk0_0.28-3ubuntu3+steamrt1.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcanberra-gtk0.deb";
-      };
-    }
-    rec {
-      name = "libcanberra0_0.28-3ubuntu3+steamrt1.1+srt2_i386";
-      sha256 = "d5a6d693a17a615d89eacfb6ef3893c65e72ed34b61e368e9e311e90720be01d";
-      url = "mirror://steamrt/pool/main/libc/libcanberra/libcanberra0_0.28-3ubuntu3+steamrt1.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcanberra0.deb";
-      };
-    }
-    rec {
-      name = "libcap2_2.22-1ubuntu3+srt6_i386";
-      sha256 = "7224c9dacf70616e5531453b5b6dc0410c2b035366c98d02f8c51890780dd1eb";
-      url = "mirror://steamrt/pool/main/libc/libcap2/libcap2_2.22-1ubuntu3+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcap2.deb";
-      };
-    }
-    rec {
-      name = "libcapsule-tools-relocatable_0.20190926.0-0co1+srt1_i386";
-      sha256 = "5ce9e11e0204db54cecb59b59b1c6fc6bd5e4aefe73a327dbb85283b08591428";
-      url = "mirror://steamrt/pool/main/libc/libcapsule/libcapsule-tools-relocatable_0.20190926.0-0co1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcapsule-tools-relocatable.deb";
-      };
-    }
-    rec {
-      name = "libcg_3.0.0016-0ubuntu1+srt6_i386";
-      sha256 = "a21ba20d03f43163c1222fbc6a570c20783a1d504dcf92306ab029c437fd0df9";
-      url = "mirror://steamrt/pool/main/n/nvidia-cg-toolkit/libcg_3.0.0016-0ubuntu1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcg.deb";
-      };
-    }
-    rec {
-      name = "libcomerr2_1.42-1ubuntu2.3+steamrt1.1+srt2_i386";
-      sha256 = "bf81884166576106fb8f73ac789674218b2a349af94edf3f4c3329e6ebd34240";
-      url = "mirror://steamrt/pool/main/e/e2fsprogs/libcomerr2_1.42-1ubuntu2.3+steamrt1.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcomerr2.deb";
-      };
-    }
-    rec {
-      name = "libcups2_1.5.3-0ubuntu8.7+steamrt1.2+srt3_i386";
-      sha256 = "069c28585b6acbab32e621c82969608eb326691f5168ff7d19c58c1dd58a65e0";
-      url = "mirror://steamrt/pool/main/c/cups/libcups2_1.5.3-0ubuntu8.7+steamrt1.2+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcups2.deb";
-      };
-    }
-    rec {
-      name = "libcurl3_7.22.0-3ubuntu4.17+steamrt1.2+srt1_i386";
-      sha256 = "6199cf8f81ddc6484bf59ac4941e17808cfa09b3c9141895b18a301bd0729547";
-      url = "mirror://steamrt/pool/main/c/curl/libcurl3_7.22.0-3ubuntu4.17+steamrt1.2+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcurl3.deb";
-      };
-    }
-    rec {
-      name = "libcurl3-gnutls_7.22.0-3ubuntu4.17+steamrt1.2+srt1_i386";
-      sha256 = "2ff0f70b5d522f429c4d9607cf3f1f35fb742693276e874c5f6f50d04553c628";
-      url = "mirror://steamrt/pool/main/c/curl/libcurl3-gnutls_7.22.0-3ubuntu4.17+steamrt1.2+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libcurl3-gnutls.deb";
-      };
-    }
-    rec {
-      name = "libdbus-1-3_1.4.18-1ubuntu1.8+srt2_i386";
-      sha256 = "a34a745ddad9cf76fc1878380dc68dd6a30f9dc5c17629ec4adf21c481e20336";
-      url = "mirror://steamrt/pool/main/d/dbus/libdbus-1-3_1.4.18-1ubuntu1.8+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libdbus-1-3.deb";
-      };
-    }
-    rec {
-      name = "libdbus-glib-1-2_0.98-1ubuntu1.1+srt6_i386";
-      sha256 = "c881add03cc07271b713b7d4607dfaa1def7b851338d35d807aeae8de7cbe908";
-      url = "mirror://steamrt/pool/main/d/dbus-glib/libdbus-glib-1-2_0.98-1ubuntu1.1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libdbus-glib-1-2.deb";
-      };
-    }
-    rec {
-      name = "libdbusmenu-glib4_0.6.2-0ubuntu0.1+srt6_i386";
-      sha256 = "f846eda12e233309c903865aee472567cb5b4c43214091b7a41f8c3801cdbbd7";
-      url = "mirror://steamrt/pool/main/libd/libdbusmenu/libdbusmenu-glib4_0.6.2-0ubuntu0.1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libdbusmenu-glib4.deb";
-      };
-    }
-    rec {
-      name = "libdbusmenu-gtk4_0.6.2-0ubuntu0.1+srt6_i386";
-      sha256 = "f8fcd3d120593aff181181902191094c646a0747a2dd9c19f979aaaa69078220";
-      url = "mirror://steamrt/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_0.6.2-0ubuntu0.1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libdbusmenu-gtk4.deb";
-      };
-    }
-    rec {
-      name = "libelf1_0.152-1ubuntu3.1+srt3_i386";
-      sha256 = "85aab224f4808b664cb827cd46dc4d559a1568e467db56e7047d26493f90cbf1";
-      url = "mirror://steamrt/pool/main/e/elfutils/libelf1_0.152-1ubuntu3.1+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libelf1.deb";
-      };
-    }
-    rec {
-      name = "libexif12_0.6.20-2ubuntu0.1+srt6_i386";
-      sha256 = "b9a25a54b70c2294e96c447bf05775c89eb056ff8eb0b4840506a955fcf78d35";
-      url = "mirror://steamrt/pool/main/libe/libexif/libexif12_0.6.20-2ubuntu0.1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libexif12.deb";
-      };
-    }
-    rec {
-      name = "libexpat1_2.0.1-7.2ubuntu1.4+srt3_i386";
-      sha256 = "2ffae071d141e08e9dd5c486ba00f91830ca4a73c346c2e3096069c42d80e058";
-      url = "mirror://steamrt/pool/main/e/expat/libexpat1_2.0.1-7.2ubuntu1.4+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libexpat1.deb";
-      };
-    }
-    rec {
-      name = "libffi6_3.0.11~rc1-5+srt6_i386";
-      sha256 = "2c6f1291894f467648b922421fa8555b96c02075d3d78f1472efbfa44576c203";
-      url = "mirror://steamrt/pool/main/libf/libffi/libffi6_3.0.11~rc1-5+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libffi6.deb";
-      };
-    }
-    rec {
-      name = "libflac8_1.2.1-6+steamrt1.1ubuntu0.1+srt2_i386";
-      sha256 = "64f1bfb240d700b9af09a9318ca335c9fd63e48f753fcc306b6071534708a770";
-      url = "mirror://steamrt/pool/main/f/flac/libflac8_1.2.1-6+steamrt1.1ubuntu0.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libflac8.deb";
-      };
-    }
-    rec {
-      name = "libfltk1.1_1.1.10-10+srt6_i386";
-      sha256 = "5f7149f85e892031d232de4d206b589d5fc204a05d313565016f8688295ee045";
-      url = "mirror://steamrt/pool/main/f/fltk1.1/libfltk1.1_1.1.10-10+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libfltk1.1.deb";
-      };
-    }
-    rec {
-      name = "libfontconfig1_2.8.0-3ubuntu9.2+steamrt1.1+srt2_i386";
-      sha256 = "e1d4588b6426cd6fc685463da3c09e6b5483b7492debe4dea054dabb5e510ef2";
-      url = "mirror://steamrt/pool/main/f/fontconfig/libfontconfig1_2.8.0-3ubuntu9.2+steamrt1.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libfontconfig1.deb";
-      };
-    }
-    rec {
-      name = "libfreetype6_2.4.8-1ubuntu2.6+srt2_i386";
-      sha256 = "0143413faf66a0db49c7c478c6aff34bc08a13033b2093b2039fe3630ee01f30";
-      url = "mirror://steamrt/pool/main/f/freetype/libfreetype6_2.4.8-1ubuntu2.6+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libfreetype6.deb";
-      };
-    }
-    rec {
-      name = "libgcc1_5.4.0-7.really.6+steamrt1.2+srt2_i386";
-      sha256 = "50d44e8b3821704e15af26322dccc365f1602ee9bda53dee47329974196d98c3";
-      url = "mirror://steamrt/pool/main/g/gcc-5/libgcc1_5.4.0-7.really.6+steamrt1.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgcc1.deb";
-      };
-    }
-    rec {
-      name = "libgconf-2-4_3.2.5-0ubuntu2+steamrt1.1+srt2_i386";
-      sha256 = "65f0222b28d6c9315c3ba067085e7b3512b447cedb5d362af9918016368f1766";
-      url = "mirror://steamrt/pool/main/g/gconf/libgconf-2-4_3.2.5-0ubuntu2+steamrt1.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgconf-2-4.deb";
-      };
-    }
-    rec {
-      name = "libgcrypt11_1.5.0-3ubuntu0.6+srt3_i386";
-      sha256 = "bc74344b1dc733817522853e7ac03f165440924be176b9dc0e6e5dbb11ff47c4";
-      url = "mirror://steamrt/pool/main/libg/libgcrypt11/libgcrypt11_1.5.0-3ubuntu0.6+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgcrypt11.deb";
-      };
-    }
-    rec {
-      name = "libgdk-pixbuf2.0-0_2.26.1-1+steamrt3+srt6_i386";
-      sha256 = "811794c91c9cd6d8bdcb23d8ab924a98c7a153dada9ec570a5e7abcc0e3714ce";
-      url = "mirror://steamrt/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.26.1-1+steamrt3+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgdk-pixbuf2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libgl1-mesa-dri_8.0.4-0ubuntu0.7+srt6_i386";
-      sha256 = "de4d68a4288d8a2e48f49c0e56f3d8bad4e0a5b4a795a0a84938158404ce037a";
-      url = "mirror://steamrt/pool/main/m/mesa/libgl1-mesa-dri_8.0.4-0ubuntu0.7+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgl1-mesa-dri.deb";
-      };
-    }
-    rec {
-      name = "libgl1-mesa-glx_8.0.4-0ubuntu0.7+srt6_i386";
-      sha256 = "a952436b43f8d1f0a80f9c8a03dea2363cdae927585ad981bcc017b598aebab7";
-      url = "mirror://steamrt/pool/main/m/mesa/libgl1-mesa-glx_8.0.4-0ubuntu0.7+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgl1-mesa-glx.deb";
-      };
-    }
-    rec {
-      name = "libglew1.10_1.10.0-3+srt7_i386";
-      sha256 = "23a33aeff290e757ab78658a4c649842cf00d32dba32e8ce1fac66e4f89c69ef";
-      url = "mirror://steamrt/pool/main/g/glew/libglew1.10_1.10.0-3+srt7_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libglew1.10.deb";
-      };
-    }
-    rec {
-      name = "libglew1.6_1.6.0-4+steamrt1.1+srt2_i386";
-      sha256 = "aa6c99ae0af170e22e6073339b99552489ad1a0bcbe5e5c71b6dd5119548e1fd";
-      url = "mirror://steamrt/pool/main/g/glew1.6/libglew1.6_1.6.0-4+steamrt1.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libglew1.6.deb";
-      };
-    }
-    rec {
-      name = "libglib2.0-0_2.32.3-0ubuntu1+steamrt3+srt3_i386";
-      sha256 = "c99c82abea66baededa6ce28bb6d330f39a6d0c8a9d9cea6a2e789417ecbafe0";
-      url = "mirror://steamrt/pool/main/g/glib2.0/libglib2.0-0_2.32.3-0ubuntu1+steamrt3+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libglib2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libglu1-mesa_8.0.4-0ubuntu0.7+srt6_i386";
-      sha256 = "393b1b93f7d10b35ecbe259860891c70b48b32a3f179f91863cc115d026a7ea1";
-      url = "mirror://steamrt/pool/main/m/mesa/libglu1-mesa_8.0.4-0ubuntu0.7+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libglu1-mesa.deb";
-      };
-    }
-    rec {
-      name = "libgmp10_6.1.0+dfsg-2+srt2_i386";
-      sha256 = "a3838b71138cbb3e275b68fb3df63f880e122da10c9284354a80530254a45d55";
-      url = "mirror://steamrt/pool/main/g/gmp/libgmp10_6.1.0+dfsg-2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgmp10.deb";
-      };
-    }
-    rec {
-      name = "libgnutls26_2.12.14-5ubuntu3.14+srt2_i386";
-      sha256 = "be4e85717069a5c9e3ef6644cd555f1122777910c6a855d912f71539c057a8b4";
-      url = "mirror://steamrt/pool/main/g/gnutls26/libgnutls26_2.12.14-5ubuntu3.14+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgnutls26.deb";
-      };
-    }
-    rec {
-      name = "libgnutls30_3.4.10-4ubuntu1.4+steamrt1.2+srt1_i386";
-      sha256 = "b841c274bf8478136cdf8d2dfaa156d680dd0b2bdd20fb96f5645b4e9c09ef9a";
-      url = "mirror://steamrt/pool/main/g/gnutls28/libgnutls30_3.4.10-4ubuntu1.4+steamrt1.2+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgnutls30.deb";
-      };
-    }
-    rec {
-      name = "libgomp1_5.4.0-7.really.6+steamrt1.2+srt2_i386";
-      sha256 = "913bfbacb76700447d2edc359dbbf9c6720f5a62729fe040e215b013feed6f6b";
-      url = "mirror://steamrt/pool/main/g/gcc-5/libgomp1_5.4.0-7.really.6+steamrt1.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgomp1.deb";
-      };
-    }
-    rec {
-      name = "libgpg-error0_1.10-2ubuntu1+srt6_i386";
-      sha256 = "91a8acb77d3beffca842257e1c6470618e2c0df24df723eda5d61170db12f6cb";
-      url = "mirror://steamrt/pool/main/libg/libgpg-error/libgpg-error0_1.10-2ubuntu1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgpg-error0.deb";
-      };
-    }
-    rec {
-      name = "libgssapi-krb5-2_1.10+dfsg~beta1-2ubuntu0.7+srt3_i386";
-      sha256 = "43de1faddc57d494f29ceb148aa98817b3e81326e6625076adf222020ffa3ff3";
-      url = "mirror://steamrt/pool/main/k/krb5/libgssapi-krb5-2_1.10+dfsg~beta1-2ubuntu0.7+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgssapi-krb5-2.deb";
-      };
-    }
-    rec {
-      name = "libgssapi3-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386";
-      sha256 = "55dde8ab3fab6899feb9ff4f2e04048a237e0a39afe24fed27cc4f3e625bc816";
-      url = "mirror://steamrt/pool/main/h/heimdal/libgssapi3-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgssapi3-heimdal.deb";
-      };
-    }
-    rec {
-      name = "libgstreamer-plugins-base0.10-0_0.10.36-1ubuntu0.2+srt2_i386";
-      sha256 = "c8c58b2b6e6566a878b8f66ed75f13d5d41cec3d0969360bbab1b07821b58d96";
-      url = "mirror://steamrt/pool/main/g/gst-plugins-base0.10/libgstreamer-plugins-base0.10-0_0.10.36-1ubuntu0.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgstreamer-plugins-base0.10-0.deb";
-      };
-    }
-    rec {
-      name = "libgstreamer0.10-0_0.10.36-1ubuntu1+srt6_i386";
-      sha256 = "0f8cb2b1a0f37745691f2390c1356f973e9904a2ab7732cfd0f6f3301fb00368";
-      url = "mirror://steamrt/pool/main/g/gstreamer0.10/libgstreamer0.10-0_0.10.36-1ubuntu1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgstreamer0.10-0.deb";
-      };
-    }
-    rec {
-      name = "libgtk2.0-0_2.24.10-0ubuntu6+steamrt1+srt6_i386";
-      sha256 = "b3306b805c611cfca4e8aaa90f391ae5b4b9334aece7afeecca7a012e099e02b";
-      url = "mirror://steamrt/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.10-0ubuntu6+steamrt1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgtk2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libgtk2.0-common_2.24.10-0ubuntu6+steamrt1+srt6_all";
-      sha256 = "ee703928f39124739c01a456c727376378b9e75ed1a3f3c1d7022a2299350262";
-      url = "mirror://steamrt/pool/main/g/gtk+2.0/libgtk2.0-common_2.24.10-0ubuntu6+steamrt1+srt6_all.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgtk2.0-common.deb";
-      };
-    }
-    rec {
-      name = "libgudev-1.0-0_175-0ubuntu9.10+srt2_i386";
-      sha256 = "a7e9be89ac14ec60774429f46530284463b0ecc21c452da8d51cc2e15d47c791";
-      url = "mirror://steamrt/pool/main/u/udev/libgudev-1.0-0_175-0ubuntu9.10+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libgudev-1.0-0.deb";
-      };
-    }
-    rec {
-      name = "libhcrypto4-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386";
-      sha256 = "4f96dca07bce11f17c79ebe0451bf0d1a3937a59c8cd9f29ad389c5b64465dba";
-      url = "mirror://steamrt/pool/main/h/heimdal/libhcrypto4-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libhcrypto4-heimdal.deb";
-      };
-    }
-    rec {
-      name = "libheimbase1-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386";
-      sha256 = "4ec845e9a562257953d0f15bd95adf534aaf37889cc133efe644b9a583980660";
-      url = "mirror://steamrt/pool/main/h/heimdal/libheimbase1-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libheimbase1-heimdal.deb";
-      };
-    }
-    rec {
-      name = "libheimntlm0-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386";
-      sha256 = "d4b2942db295130d8b9fc441256e08bbbe56c416ea7c2cf33b2bce5cfcb608da";
-      url = "mirror://steamrt/pool/main/h/heimdal/libheimntlm0-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libheimntlm0-heimdal.deb";
-      };
-    }
-    rec {
-      name = "libhogweed4_3.2-1ubuntu0.16.04.1+srt2_i386";
-      sha256 = "5d8bb7a98376f0e0c45e7387bad7ef165cb8057cd98f886de2334c94a3df751b";
-      url = "mirror://steamrt/pool/main/n/nettle/libhogweed4_3.2-1ubuntu0.16.04.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libhogweed4.deb";
-      };
-    }
-    rec {
-      name = "libhx509-5-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386";
-      sha256 = "d54ce7053229a9131a2b8b522d3ea7b02f633a70c05aa125e491480177bfacc7";
-      url = "mirror://steamrt/pool/main/h/heimdal/libhx509-5-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libhx509-5-heimdal.deb";
-      };
-    }
-    rec {
-      name = "libice6_1.0.7-2build1+srt6_i386";
-      sha256 = "4e6f06f6d57e62c4a779190a9287d18e47abf4f33bfcc3893d07bbfc51e8ea6b";
-      url = "mirror://steamrt/pool/main/libi/libice/libice6_1.0.7-2build1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libice6.deb";
-      };
-    }
-    rec {
-      name = "libidn11_1.32-3ubuntu1.2+steamrt1.1+srt2_i386";
-      sha256 = "4d92754e7610cd6013489ff03e4f78e31d64c402027cde05efc0c62f2dec4fa6";
-      url = "mirror://steamrt/pool/main/libi/libidn/libidn11_1.32-3ubuntu1.2+steamrt1.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libidn11.deb";
-      };
-    }
-    rec {
-      name = "libindicator7_0.5.0-0ubuntu1+steamrt1+srt2_i386";
-      sha256 = "e623aa0f247ad95ddfcf480d2ae81a070080b703367f96ae378609210eabcf9e";
-      url = "mirror://steamrt/pool/main/libi/libindicator/libindicator7_0.5.0-0ubuntu1+steamrt1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libindicator7.deb";
-      };
-    }
-    rec {
-      name = "libitm1_5.4.0-7.really.6+steamrt1.2+srt2_i386";
-      sha256 = "188591aec152ece7b33b765079593a110a005046977d15794d5cc3be5b3381c7";
-      url = "mirror://steamrt/pool/main/g/gcc-5/libitm1_5.4.0-7.really.6+steamrt1.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libitm1.deb";
-      };
-    }
-    rec {
-      name = "libjack-jackd2-0_1.9.8~dfsg.1-1ubuntu2+srt5_i386";
-      sha256 = "a59a4de570335899d10f36b4b9552ee894fc0bb21c4ee4e06ed689f3fa55c2e6";
-      url = "mirror://steamrt/pool/main/j/jackd2/libjack-jackd2-0_1.9.8~dfsg.1-1ubuntu2+srt5_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libjack-jackd2-0.deb";
-      };
-    }
-    rec {
-      name = "libjpeg-turbo8_1.1.90+svn733-0ubuntu4.3+srt6_i386";
-      sha256 = "5c04f4da2038e4a9ae96e59b64386b598fda9952400b5dc40a0a5819dd328ab9";
-      url = "mirror://steamrt/pool/main/libj/libjpeg-turbo/libjpeg-turbo8_1.1.90+svn733-0ubuntu4.3+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libjpeg-turbo8.deb";
-      };
-    }
-    rec {
-      name = "libjpeg62_6b1-2ubuntu1.1+srt6_i386";
-      sha256 = "eed36437197122519201d4bf233ae3de7fd1b3cd81de286028bd4417dd0b6bc2";
-      url = "mirror://steamrt/pool/main/libj/libjpeg6b/libjpeg62_6b1-2ubuntu1.1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libjpeg62.deb";
-      };
-    }
-    rec {
-      name = "libjson-glib-1.0-0_1.0.2-1~steamrt1.1+srt1_i386";
-      sha256 = "e92b6a5be06128f88d885d2da927ce3a2bf274bf9f812ba102a0966fd17fd2ee";
-      url = "mirror://steamrt/pool/main/j/json-glib/libjson-glib-1.0-0_1.0.2-1~steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libjson-glib-1.0-0.deb";
-      };
-    }
-    rec {
-      name = "libjson0_0.9-1ubuntu1.1+srt4_i386";
-      sha256 = "ae3503b9871e27e98bfb37477c4b6e151dcf31fa7af757309d99e70ffe66e570";
-      url = "mirror://steamrt/pool/main/j/json-c/libjson0_0.9-1ubuntu1.1+srt4_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libjson0.deb";
-      };
-    }
-    rec {
-      name = "libk5crypto3_1.10+dfsg~beta1-2ubuntu0.7+srt3_i386";
-      sha256 = "4109aa8cab7e7915c226b5be6e4e334b65d896183be880b32777a18fe1b7cd8c";
-      url = "mirror://steamrt/pool/main/k/krb5/libk5crypto3_1.10+dfsg~beta1-2ubuntu0.7+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libk5crypto3.deb";
-      };
-    }
-    rec {
-      name = "libkeyutils1_1.5.2-2+srt6_i386";
-      sha256 = "5efe0be588ee8a4c41a4f34e30c5adf5b59cd3c71b1970f33099a5a2a1e45e37";
-      url = "mirror://steamrt/pool/main/k/keyutils/libkeyutils1_1.5.2-2+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libkeyutils1.deb";
-      };
-    }
-    rec {
-      name = "libkrb5-26-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386";
-      sha256 = "5661ba523b59f1426f5f4596ac892bd5ad626ab96f9080618a787e1bfef77fa2";
-      url = "mirror://steamrt/pool/main/h/heimdal/libkrb5-26-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libkrb5-26-heimdal.deb";
-      };
-    }
-    rec {
-      name = "libkrb5-3_1.10+dfsg~beta1-2ubuntu0.7+srt3_i386";
-      sha256 = "ffc2a0cd89ea2344ccb37a0d329380559fe5c4c6fab30f2eb004448212cd46c0";
-      url = "mirror://steamrt/pool/main/k/krb5/libkrb5-3_1.10+dfsg~beta1-2ubuntu0.7+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libkrb5-3.deb";
-      };
-    }
-    rec {
-      name = "libkrb5support0_1.10+dfsg~beta1-2ubuntu0.7+srt3_i386";
-      sha256 = "40ff710cad27182ac2a419368bf11c03f884c362fb457b4dcb5d14ce91760046";
-      url = "mirror://steamrt/pool/main/k/krb5/libkrb5support0_1.10+dfsg~beta1-2ubuntu0.7+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libkrb5support0.deb";
-      };
-    }
-    rec {
-      name = "liblcms2-2_2.2+git20110628-2ubuntu3.1+srt6_i386";
-      sha256 = "5381665b17380271b4c605e22b8bc21cb7779b67fc116dae9677d667c7383769";
-      url = "mirror://steamrt/pool/main/l/lcms2/liblcms2-2_2.2+git20110628-2ubuntu3.1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "liblcms2-2.deb";
-      };
-    }
-    rec {
-      name = "libldap-2.4-2_2.4.28-1.1ubuntu4.6+steamrt1.2+srt4_i386";
-      sha256 = "e966ec5b3ddc132911a0bf1b789540e814b065ad3f8d77d0870e87a744ba6f7a";
-      url = "mirror://steamrt/pool/main/o/openldap/libldap-2.4-2_2.4.28-1.1ubuntu4.6+steamrt1.2+srt4_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libldap-2.4-2.deb";
-      };
-    }
-    rec {
-      name = "libltdl7_2.4.2-1ubuntu1+srt6_i386";
-      sha256 = "f7442bc77144e4c0930b82ed3c779c9ed0048fb025e02abe7ec2d8a03433a3f2";
-      url = "mirror://steamrt/pool/main/libt/libtool/libltdl7_2.4.2-1ubuntu1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libltdl7.deb";
-      };
-    }
-    rec {
-      name = "libmikmod2_3.1.12-5+srt2_i386";
-      sha256 = "0db96db4334c39e4b6eb6d2c4b0350e8663047fa8a1a08258201d90d15da65bf";
-      url = "mirror://steamrt/pool/main/libm/libmikmod/libmikmod2_3.1.12-5+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libmikmod2.deb";
-      };
-    }
-    rec {
-      name = "libmpg123-0_1.25.10-1+steamrt1+srt2_i386";
-      sha256 = "c686cb91855a4feb793bbae88c62ca18f5393c0f3b7e610f8372e7512e1d91a5";
-      url = "mirror://steamrt/pool/main/m/mpg123/libmpg123-0_1.25.10-1+steamrt1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libmpg123-0.deb";
-      };
-    }
-    rec {
-      name = "libncurses5_5.9-4+srt6_i386";
-      sha256 = "2f5b6f1c9b181e191142b55c4e910fd32b1f5ba457dfc436639551dd4d892e4d";
-      url = "mirror://steamrt/pool/main/n/ncurses/libncurses5_5.9-4+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libncurses5.deb";
-      };
-    }
-    rec {
-      name = "libncursesw5_5.9-4+srt6_i386";
-      sha256 = "0090723ceef27cd9ad30b5335cc2bde075f2958358ef84dfa59fdb779eb2b54c";
-      url = "mirror://steamrt/pool/main/n/ncurses/libncursesw5_5.9-4+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libncursesw5.deb";
-      };
-    }
-    rec {
-      name = "libnettle6_3.2-1ubuntu0.16.04.1+srt2_i386";
-      sha256 = "41c26ae8c1022b141a1cd88c1ccb47dfa728e8a5bab9b6e4739c2299a070cdd4";
-      url = "mirror://steamrt/pool/main/n/nettle/libnettle6_3.2-1ubuntu0.16.04.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libnettle6.deb";
-      };
-    }
-    rec {
-      name = "libnm-glib4_0.9.4.0-0ubuntu4.2+steamrt2+srt2_i386";
-      sha256 = "6610f000cfcf032bf2fc325618f33ca8f8783cbb77faabbf105f484f8f650eae";
-      url = "mirror://steamrt/pool/main/n/network-manager/libnm-glib4_0.9.4.0-0ubuntu4.2+steamrt2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libnm-glib4.deb";
-      };
-    }
-    rec {
-      name = "libnm-util2_0.9.4.0-0ubuntu4.2+steamrt2+srt2_i386";
-      sha256 = "666fc57f3747be75b0b8b0a1279f934b9dbd880b2c724cbb45f1fc7116b0c3bb";
-      url = "mirror://steamrt/pool/main/n/network-manager/libnm-util2_0.9.4.0-0ubuntu4.2+steamrt2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libnm-util2.deb";
-      };
-    }
-    rec {
-      name = "libnotify4_0.7.5-1+srt6_i386";
-      sha256 = "5bace16f956c9160d5334631e4a67741675f9d4b5ff07fb7bbd6c28e7c06b54f";
-      url = "mirror://steamrt/pool/main/libn/libnotify/libnotify4_0.7.5-1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libnotify4.deb";
-      };
-    }
-    rec {
-      name = "libnspr4_4.12-0ubuntu0.12.04.1+srt3_i386";
-      sha256 = "30c5eec8a06104bb4be77a2c21e553ad67a2daeb9005d762e50d97cd87175cba";
-      url = "mirror://steamrt/pool/main/n/nspr/libnspr4_4.12-0ubuntu0.12.04.1+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libnspr4.deb";
-      };
-    }
-    rec {
-      name = "libnss3_3.26.2-0ubuntu0.12.04.1+srt2_i386";
-      sha256 = "ed32e7feae1b0116d49412393f773ab2e85a8e94e974b915a6f459d7ee433a83";
-      url = "mirror://steamrt/pool/main/n/nss/libnss3_3.26.2-0ubuntu0.12.04.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libnss3.deb";
-      };
-    }
-    rec {
-      name = "libogg0_1.3.2-1+srt2_i386";
-      sha256 = "03c55a830197401e910417322e64a68fb732bb0b314857dbfe35beded40767e5";
-      url = "mirror://steamrt/pool/main/libo/libogg/libogg0_1.3.2-1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libogg0.deb";
-      };
-    }
-    rec {
-      name = "libopenal1_1.16.0-3+srt2_i386";
-      sha256 = "6c51952f61eac87b2077bbff461898c2dca61cb0b12675d4a4c7d5cebd5e8915";
-      url = "mirror://steamrt/pool/main/o/openal-soft/libopenal1_1.16.0-3+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libopenal1.deb";
-      };
-    }
-    rec {
-      name = "libopus0_1.3-0+steamrt1.1+srt3_i386";
-      sha256 = "9e75dedd1f3b7a26f2ee8ccab28652d292e2e5a3cf646fd8dbaf0b9d7b09a683";
-      url = "mirror://steamrt/pool/main/o/opus/libopus0_1.3-0+steamrt1.1+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libopus0.deb";
-      };
-    }
-    rec {
-      name = "libopusfile0_0.11-0+steamrt1.2+srt2_i386";
-      sha256 = "e21bc67e69dd8da3e444558b7969b2d0b2bbdc9e58571bb1bd3349ea1561bc47";
-      url = "mirror://steamrt/pool/main/o/opusfile/libopusfile0_0.11-0+steamrt1.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libopusfile0.deb";
-      };
-    }
-    rec {
-      name = "liborc-0.4-0_0.4.16-1ubuntu2+srt6_i386";
-      sha256 = "7b666cf8cb3c085c7814bf43c1282ecc2f429f73c2ce45c9328b578a51512f3f";
-      url = "mirror://steamrt/pool/main/o/orc/liborc-0.4-0_0.4.16-1ubuntu2+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "liborc-0.4-0.deb";
-      };
-    }
-    rec {
-      name = "libp11-kit0_0.23.2-5~ubuntu16.04.1~steamrt1.1+srt2_i386";
-      sha256 = "7964bb2eed3474552410febb241b389ead233483f48f763530892d775562c253";
-      url = "mirror://steamrt/pool/main/p/p11-kit/libp11-kit0_0.23.2-5~ubuntu16.04.1~steamrt1.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libp11-kit0.deb";
-      };
-    }
-    rec {
-      name = "libpango1.0-0_1.30.0-0ubuntu3.1+steamrt1+srt6_i386";
-      sha256 = "5ca733d41934a821211a9f19df88fc6ac6ce0de9dcda489b857850aecc134599";
-      url = "mirror://steamrt/pool/main/p/pango1.0/libpango1.0-0_1.30.0-0ubuntu3.1+steamrt1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libpango1.0-0.deb";
-      };
-    }
-    rec {
-      name = "libpci3_3.1.8-2ubuntu6+srt2_i386";
-      sha256 = "dc2a159788b32126fc54de57c6bdfa2cd9562d10f1fd00f82463dd322810113a";
-      url = "mirror://steamrt/pool/main/p/pciutils/libpci3_3.1.8-2ubuntu6+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libpci3.deb";
-      };
-    }
-    rec {
-      name = "libpcre3_8.12-4+steamrt1.1ubuntu0.2+srt2_i386";
-      sha256 = "ae551ed76da8280b86afd5d802b2ae9a69091b297cee80f94d1f41d8d8b13f5d";
-      url = "mirror://steamrt/pool/main/p/pcre3/libpcre3_8.12-4+steamrt1.1ubuntu0.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libpcre3.deb";
-      };
-    }
-    rec {
-      name = "libpcrecpp0_8.12-4+steamrt1.1ubuntu0.2+srt2_i386";
-      sha256 = "2b851e8a0d6bad221bebd9ff4ca05cd8e675ffb85b61dae5eb75da8304ea6499";
-      url = "mirror://steamrt/pool/main/p/pcre3/libpcrecpp0_8.12-4+steamrt1.1ubuntu0.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libpcrecpp0.deb";
-      };
-    }
-    rec {
-      name = "libpixman-1-0_0.30.2-1ubuntu0.0.0.0.3+srt3_i386";
-      sha256 = "90a0b2a9949791775f042d24547fe170c5ccedcd4b6fc72f15c3b549b7d6fa16";
-      url = "mirror://steamrt/pool/main/p/pixman/libpixman-1-0_0.30.2-1ubuntu0.0.0.0.3+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libpixman-1-0.deb";
-      };
-    }
-    rec {
-      name = "libpng12-0_1.2.46-3ubuntu4.2+srt3_i386";
-      sha256 = "0d4e60f28c9c034db42ba3c1332ce1898280aef31bc7d997c9bd473ef174557a";
-      url = "mirror://steamrt/pool/main/libp/libpng/libpng12-0_1.2.46-3ubuntu4.2+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libpng12-0.deb";
-      };
-    }
-    rec {
-      name = "libpulse0_1.1-0ubuntu15.2+steamrt1+srt6_i386";
-      sha256 = "0299290b5f4170cbdc60ff2336f06ac3fec72888419ec93c570c171d2abe7abb";
-      url = "mirror://steamrt/pool/main/p/pulseaudio/libpulse0_1.1-0ubuntu15.2+steamrt1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libpulse0.deb";
-      };
-    }
-    rec {
-      name = "libquadmath0_5.4.0-7.really.6+steamrt1.2+srt2_i386";
-      sha256 = "58f646279972a537cf838fc935f9f37285e5255604d7b5c1e034644e77d3e25b";
-      url = "mirror://steamrt/pool/main/g/gcc-5/libquadmath0_5.4.0-7.really.6+steamrt1.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libquadmath0.deb";
-      };
-    }
-    rec {
-      name = "libroken18-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386";
-      sha256 = "8827d782d8fedf7fe0285bbab14914e61d2ac5fe5e7ea297fbff916c7fd73939";
-      url = "mirror://steamrt/pool/main/h/heimdal/libroken18-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libroken18-heimdal.deb";
-      };
-    }
-    rec {
-      name = "librtmp0_2.4~20110711.gitc28f1bab-1+steamrt1.1+srt4_i386";
-      sha256 = "dd5c06e9754fa7fb48a9d16eb5ee2e4a5e8562140bd95c8367f1b967aa162b94";
-      url = "mirror://steamrt/pool/main/r/rtmpdump/librtmp0_2.4~20110711.gitc28f1bab-1+steamrt1.1+srt4_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "librtmp0.deb";
-      };
-    }
-    rec {
-      name = "libsamplerate0_0.1.8-4+srt6_i386";
-      sha256 = "3d412bca2cf9d8748332cf75ec3abb98bc6afc6997f11eecf7918a013dc42a52";
-      url = "mirror://steamrt/pool/main/libs/libsamplerate/libsamplerate0_0.1.8-4+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsamplerate0.deb";
-      };
-    }
-    rec {
-      name = "libsasl2-2_2.1.25.dfsg1-3ubuntu0.1+srt6_i386";
-      sha256 = "a69496b285f0a647b7ea65cc6cb78515380a34b0b2d59b60ce66ee20862837fa";
-      url = "mirror://steamrt/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.25.dfsg1-3ubuntu0.1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsasl2-2.deb";
-      };
-    }
-    rec {
-      name = "libsdl-image1.2_1.2.10-3+srt6_i386";
-      sha256 = "32e12a48d336867d123dfe51931291bc29226a6f5d79183f2857f2aea1877409";
-      url = "mirror://steamrt/pool/main/s/sdl-image1.2/libsdl-image1.2_1.2.10-3+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl-image1.2.deb";
-      };
-    }
-    rec {
-      name = "libsdl-mixer1.2_1.2.11-7+steamrt1+srt6_i386";
-      sha256 = "f9200b6e6167f98379cce33579778ad48e6b64326de3aab4760f55eb380031ce";
-      url = "mirror://steamrt/pool/main/s/sdl-mixer1.2/libsdl-mixer1.2_1.2.11-7+steamrt1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl-mixer1.2.deb";
-      };
-    }
-    rec {
-      name = "libsdl-ttf2.0-0_2.0.9-1.1ubuntu1+srt6_i386";
-      sha256 = "9e60d12dbeb8ff45a506beff802e7d9848e8c2c9d034e8a40dafdbd8d79b16fe";
-      url = "mirror://steamrt/pool/main/s/sdl-ttf2.0/libsdl-ttf2.0-0_2.0.9-1.1ubuntu1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl-ttf2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libsdl1.2debian_1.2.15-5+steamrt1.2+srt1_i386";
-      sha256 = "7308d759f752130d80153e0407ade1c20c8cfa4b60844eac11242a5cff90148c";
-      url = "mirror://steamrt/pool/main/libs/libsdl1.2/libsdl1.2debian_1.2.15-5+steamrt1.2+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl1.2debian.deb";
-      };
-    }
-    rec {
-      name = "libsdl2-2.0-0_2.0.10-0+steamrt1.3+srt1_i386";
-      sha256 = "88f38095f8574cf3792b42da2a13b89c4011904e7d5043a911af4cd3f749f62b";
-      url = "mirror://steamrt/pool/main/libs/libsdl2/libsdl2-2.0-0_2.0.10-0+steamrt1.3+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl2-2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libsdl2-image-2.0-0_2.0.5-0+steamrt1.1+srt1_i386";
-      sha256 = "27b47158e7af64376f0fc4382e54b9c3130a0990d4d8b4e421b0729bf6e543a9";
-      url = "mirror://steamrt/pool/main/libs/libsdl2-image/libsdl2-image-2.0-0_2.0.5-0+steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl2-image-2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libsdl2-mixer-2.0-0_2.0.4.~reimport-0+steamrt1.2+srt1_i386";
-      sha256 = "36f917c204f56c0836fb1829ecfb36ca5458b121857387afbf9e5afab6c4a36a";
-      url = "mirror://steamrt/pool/main/libs/libsdl2-mixer/libsdl2-mixer-2.0-0_2.0.4.~reimport-0+steamrt1.2+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl2-mixer-2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libsdl2-net-2.0-0_2.0.1.~reimport-0+steamrt1.1+srt1_i386";
-      sha256 = "73316e94bfd4fc2382fd255c93469fdb8fa8a142c64b02522cbd84f972b17acf";
-      url = "mirror://steamrt/pool/main/libs/libsdl2-net/libsdl2-net-2.0-0_2.0.1.~reimport-0+steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl2-net-2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libsdl2-ttf-2.0-0_2.0.15-0+steamrt1.1+srt2_i386";
-      sha256 = "1a0a7c17206ed42dbb0a4c36a6be819b2e405c7f2a5c402b44773422bb717fe0";
-      url = "mirror://steamrt/pool/main/libs/libsdl2-ttf/libsdl2-ttf-2.0-0_2.0.15-0+steamrt1.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsdl2-ttf-2.0-0.deb";
-      };
-    }
-    rec {
-      name = "libselinux1_2.1.0-4.1ubuntu1+srt6_i386";
-      sha256 = "ea30a8bf5aa90d59c134b9c5167af679043412ef24f82135fd56471d305dcca8";
-      url = "mirror://steamrt/pool/main/libs/libselinux/libselinux1_2.1.0-4.1ubuntu1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libselinux1.deb";
-      };
-    }
-    rec {
-      name = "libsm6_1.2.0-2build1+srt6_i386";
-      sha256 = "2eb05653d4ab704b9cf3c6c30f904adefd049f226bdaf09e2666b5e12856ac70";
-      url = "mirror://steamrt/pool/main/libs/libsm/libsm6_1.2.0-2build1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsm6.deb";
-      };
-    }
-    rec {
-      name = "libsndfile1_1.0.25-4+steamrt1.1ubuntu0.1+srt2_i386";
-      sha256 = "5eb7acd671c15410fbf4cf92259683d5393e9c2c557ee83a10b618462f5cc4e9";
-      url = "mirror://steamrt/pool/main/libs/libsndfile/libsndfile1_1.0.25-4+steamrt1.1ubuntu0.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsndfile1.deb";
-      };
-    }
-    rec {
-      name = "libspeex1_1.2~rc1-3ubuntu2+srt6_i386";
-      sha256 = "3829a1931ffe4eed8631662fec5929e343d38b6f04d33ec05b3192d16aab6c02";
-      url = "mirror://steamrt/pool/main/s/speex/libspeex1_1.2~rc1-3ubuntu2+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libspeex1.deb";
-      };
-    }
-    rec {
-      name = "libspeexdsp1_1.2~rc1-3ubuntu2+srt6_i386";
-      sha256 = "e78b470eaeee57a603778caab2f674113442a3cc5aa8362d010e4a3d52a7f078";
-      url = "mirror://steamrt/pool/main/s/speex/libspeexdsp1_1.2~rc1-3ubuntu2+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libspeexdsp1.deb";
-      };
-    }
-    rec {
-      name = "libsqlite3-0_3.7.9-2ubuntu1.2+srt3_i386";
-      sha256 = "354c0f27b4b09df3f189e376c061919e8a58a7cb7b45aaf115b4efc6ba522133";
-      url = "mirror://steamrt/pool/main/s/sqlite3/libsqlite3-0_3.7.9-2ubuntu1.2+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsqlite3-0.deb";
-      };
-    }
-    rec {
-      name = "libssl1.0.0_1.0.1-4ubuntu5.39+steamrt1.1+srt2_i386";
-      sha256 = "01bb99e42c7bed8c60f1ef10411b9183e506f207b54a86ff8d8de339b2545d58";
-      url = "mirror://steamrt/pool/main/o/openssl/libssl1.0.0_1.0.1-4ubuntu5.39+steamrt1.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libssl1.0.0.deb";
-      };
-    }
-    rec {
-      name = "libstdc++6_5.4.0-7.really.6+steamrt1.2+srt2_i386";
-      sha256 = "9f2fa400eff42b165314f024359d843c5509eda6433ec6ca82bd21d638a228ea";
-      url = "mirror://steamrt/pool/main/g/gcc-5/libstdc++6_5.4.0-7.really.6+steamrt1.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libstdc++6.deb";
-      };
-    }
-    rec {
-      name = "libstdc++6-4.6-pic_4.6.3-1ubuntu5+steamrt1.2+srt2_i386";
-      sha256 = "1785346063763eac850d46dd7db1736e0ec1b6d8ebc84090f54f5b2b1380829c";
-      url = "mirror://steamrt/pool/main/g/gcc-4.6/libstdc++6-4.6-pic_4.6.3-1ubuntu5+steamrt1.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libstdc++6-4.6-pic.deb";
-      };
-    }
-    rec {
-      name = "libsteam-runtime-tools-0-0_0.20200415.0+srt1_i386";
-      sha256 = "7da98a9a206829dbf5cc95570049502d1cf8dd2a2234a981787f14cc098c1739";
-      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-0_0.20200415.0+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsteam-runtime-tools-0-0.deb";
-      };
-    }
-    rec {
-      name = "libsteam-runtime-tools-0-helpers_0.20200415.0+srt1_i386";
-      sha256 = "bf06ad0ef0d5c80ddff53c58e4397c87fd655e1913ecf48a29560d27719b4d71";
-      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-helpers_0.20200415.0+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsteam-runtime-tools-0-helpers.deb";
-      };
-    }
-    rec {
-      name = "libsteam-runtime-tools-0-relocatable-libs_0.20200415.0+srt1_i386";
-      sha256 = "79e3b5b5a2904daccb17f5f54e3a87842dd9408fe04a8fee8d4ee83c3a3c0bcf";
-      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-relocatable-libs_0.20200415.0+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libsteam-runtime-tools-0-relocatable-libs.deb";
-      };
-    }
-    rec {
-      name = "libswscale2_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_i386";
-      sha256 = "938ac8ecc9f75f070b65b5d8bddea58d89ba8e1673d004d1b20ca0e1f677ba14";
-      url = "mirror://steamrt/pool/main/liba/libav/libswscale2_0.8.13-0ubuntu0.12.04.1+steamrt1+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libswscale2.deb";
-      };
-    }
-    rec {
-      name = "libtasn1-3_2.10-1ubuntu1.5+srt3_i386";
-      sha256 = "53b976faaa1439908e3c6863a4bed431f6eb245aed96219ddbd9d7f996651484";
-      url = "mirror://steamrt/pool/main/libt/libtasn1-3/libtasn1-3_2.10-1ubuntu1.5+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libtasn1-3.deb";
-      };
-    }
-    rec {
-      name = "libtasn1-6_4.7-3ubuntu0.16.04.3~steamrt1.1+srt2_i386";
-      sha256 = "d61296eafece7f6117d0693e0e321ea78d7131475941e82ace9af4d6727bee6b";
-      url = "mirror://steamrt/pool/main/libt/libtasn1-6/libtasn1-6_4.7-3ubuntu0.16.04.3~steamrt1.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libtasn1-6.deb";
-      };
-    }
-    rec {
-      name = "libtbb2_4.0+r233-1+steamrt2+srt2_i386";
-      sha256 = "f17214134f0deda6e8340163bc4224c7768f7f6f81dce1f9b6c1444b310ee1a9";
-      url = "mirror://steamrt/pool/main/t/tbb/libtbb2_4.0+r233-1+steamrt2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libtbb2.deb";
-      };
-    }
-    rec {
-      name = "libtdb1_1.2.9-4+srt6_i386";
-      sha256 = "83649ae1b0da1d92a5efa5eca63e8b1656cf902e2f84b6b4c90d8a2a579c2fe9";
-      url = "mirror://steamrt/pool/main/t/tdb/libtdb1_1.2.9-4+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libtdb1.deb";
-      };
-    }
-    rec {
-      name = "libtheora0_1.1.1+dfsg.1-3ubuntu2+srt6_i386";
-      sha256 = "f1f8063d04ce6d4d98f0f7bb44afa87e299f391140167a45486a6aff5d1b740e";
-      url = "mirror://steamrt/pool/main/libt/libtheora/libtheora0_1.1.1+dfsg.1-3ubuntu2+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libtheora0.deb";
-      };
-    }
-    rec {
-      name = "libtiff4_3.9.5-2ubuntu1.9+srt3_i386";
-      sha256 = "8bf74e45a2a6c7a254d5da76e1671d95e4a3ab2a9d769c352409a6b0b0a9e162";
-      url = "mirror://steamrt/pool/main/t/tiff/libtiff4_3.9.5-2ubuntu1.9+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libtiff4.deb";
-      };
-    }
-    rec {
-      name = "libtinfo5_5.9-4+srt6_i386";
-      sha256 = "9c186721047492fe4b95305921a9cba162b645379625251ea8a6f55ea5ac1212";
-      url = "mirror://steamrt/pool/main/n/ncurses/libtinfo5_5.9-4+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libtinfo5.deb";
-      };
-    }
-    rec {
-      name = "libtxc-dxtn-s2tc0_0~git20131104-1.1+srt2_i386";
-      sha256 = "973a3a2dcedad45fb714a4ba39b10b9bc847c2e29f7ecd955e38256669e2139f";
-      url = "mirror://steamrt/pool/main/s/s2tc/libtxc-dxtn-s2tc0_0~git20131104-1.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libtxc-dxtn-s2tc0.deb";
-      };
-    }
-    rec {
-      name = "libudev0_175-0ubuntu9.10+srt2_i386";
-      sha256 = "113ae87943a82a200dddbd954400054a285a17a5eb41204d3c26bcab88759384";
-      url = "mirror://steamrt/pool/main/u/udev/libudev0_175-0ubuntu9.10+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libudev0.deb";
-      };
-    }
-    rec {
-      name = "libusb-1.0-0_1.0.19-1+srt3_i386";
-      sha256 = "92a1d5c358c4be0afe7467cf81d9662a2ba74a8d36d0bb6254fae756adfd2e1d";
-      url = "mirror://steamrt/pool/main/libu/libusb-1.0/libusb-1.0-0_1.0.19-1+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libusb-1.0-0.deb";
-      };
-    }
-    rec {
-      name = "libuuid1_2.20.1-1ubuntu3.1+steamrt1.2+srt2_i386";
-      sha256 = "1ff9ef3e7f5bb52c9ec5ff8c403610d42dd82c68a58c062ff7c089062195edd6";
-      url = "mirror://steamrt/pool/main/u/util-linux/libuuid1_2.20.1-1ubuntu3.1+steamrt1.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libuuid1.deb";
-      };
-    }
-    rec {
-      name = "libva-drm1_1.7.0-1+steamrt1.1+srt1_i386";
-      sha256 = "4f5fdcaf46a2e337fe1cad9c936809b5a38aff7af0b926bb9284930d23a9e09c";
-      url = "mirror://steamrt/pool/main/libv/libva1/libva-drm1_1.7.0-1+steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libva-drm1.deb";
-      };
-    }
-    rec {
-      name = "libva-drm2_2.1.0-3~steamrt1.2+srt1_i386";
-      sha256 = "8f2ca36ca81167017bc3921753ef6d9e3097172d52007ad16484f1f5eaa26a18";
-      url = "mirror://steamrt/pool/main/libv/libva/libva-drm2_2.1.0-3~steamrt1.2+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libva-drm2.deb";
-      };
-    }
-    rec {
-      name = "libva-glx1_1.7.0-1+steamrt1.1+srt1_i386";
-      sha256 = "8360c4e6d65b444e4a985410101ddddcd7c1c955f25debdf20ccda9664695d44";
-      url = "mirror://steamrt/pool/main/libv/libva1/libva-glx1_1.7.0-1+steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libva-glx1.deb";
-      };
-    }
-    rec {
-      name = "libva-glx2_2.1.0-3~steamrt1.2+srt1_i386";
-      sha256 = "41e935fbb2fd67af1d3477959703ff1211bd34c0902d96e53e073e8b18d9def7";
-      url = "mirror://steamrt/pool/main/libv/libva/libva-glx2_2.1.0-3~steamrt1.2+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libva-glx2.deb";
-      };
-    }
-    rec {
-      name = "libva-x11-1_1.7.0-1+steamrt1.1+srt1_i386";
-      sha256 = "bf8a787f375533dbb847aea5ab9bb316476d0c8a3e772d449356920fa9b045ce";
-      url = "mirror://steamrt/pool/main/libv/libva1/libva-x11-1_1.7.0-1+steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libva-x11-1.deb";
-      };
-    }
-    rec {
-      name = "libva-x11-2_2.1.0-3~steamrt1.2+srt1_i386";
-      sha256 = "766bfc01ee038b21bd48eaacd1aaac1556817a999bdd83c605b4efdaf6c54a1d";
-      url = "mirror://steamrt/pool/main/libv/libva/libva-x11-2_2.1.0-3~steamrt1.2+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libva-x11-2.deb";
-      };
-    }
-    rec {
-      name = "libva1_1.7.0-1+steamrt1.1+srt1_i386";
-      sha256 = "561d0e3f3a670ee8f6d2e1d4cfa41983d688e0d6233f07e541392016e517aa4d";
-      url = "mirror://steamrt/pool/main/libv/libva1/libva1_1.7.0-1+steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libva1.deb";
-      };
-    }
-    rec {
-      name = "libva2_2.1.0-3~steamrt1.2+srt1_i386";
-      sha256 = "9ea2f165352428378bb6dc987256d37f2d2aace0be23a1ba70db69fab65e82dd";
-      url = "mirror://steamrt/pool/main/libv/libva/libva2_2.1.0-3~steamrt1.2+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libva2.deb";
-      };
-    }
-    rec {
-      name = "libvdpau1_0.4.1-3ubuntu1.2+srt3_i386";
-      sha256 = "8ec0513551e19a25934d113cf2f9d68cf2c4b3b65a6ba786f7aa780f81fe2cde";
-      url = "mirror://steamrt/pool/main/libv/libvdpau/libvdpau1_0.4.1-3ubuntu1.2+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libvdpau1.deb";
-      };
-    }
-    rec {
-      name = "libvorbis0a_1.3.5-4.2+srt2_i386";
-      sha256 = "31d23a2774150163005db54371ba02eccaebfa5e1904360242eeeab922f02b5f";
-      url = "mirror://steamrt/pool/main/libv/libvorbis/libvorbis0a_1.3.5-4.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libvorbis0a.deb";
-      };
-    }
-    rec {
-      name = "libvorbisenc2_1.3.5-4.2+srt2_i386";
-      sha256 = "7ac2c4e1fe34f2208b0fcc57ddbbf997368a003bea15f22efd34afcc6abde75f";
-      url = "mirror://steamrt/pool/main/libv/libvorbis/libvorbisenc2_1.3.5-4.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libvorbisenc2.deb";
-      };
-    }
-    rec {
-      name = "libvorbisfile3_1.3.5-4.2+srt2_i386";
-      sha256 = "84dde5077123a8904c4977830382b608c85a4a50b63b5b5de0469682d93030db";
-      url = "mirror://steamrt/pool/main/libv/libvorbis/libvorbisfile3_1.3.5-4.2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libvorbisfile3.deb";
-      };
-    }
-    rec {
-      name = "libvpx1_1.0.0-2+srt2_i386";
-      sha256 = "9d31c1bf683110d48f7e720751430f2bdd4b58d22d10f7b29962d727bfbcc596";
-      url = "mirror://steamrt/pool/main/libv/libvpx/libvpx1_1.0.0-2+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libvpx1.deb";
-      };
-    }
-    rec {
-      name = "libvulkan1_1.2.135.0-1~steamrt1.1+srt1_i386";
-      sha256 = "dd6167b259a8ec4c927f3fa710d01456321b3ff40f6daa3383ec353866615aaa";
-      url = "mirror://steamrt/pool/main/v/vulkan-loader/libvulkan1_1.2.135.0-1~steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libvulkan1.deb";
-      };
-    }
-    rec {
-      name = "libwaffle-1-0_1.6.1-0+steamrt1.1+srt1_i386";
-      sha256 = "06f22a35ca49969e44f1bdaca82a1d085e69211bf3b39915d77d80f414ea8668";
-      url = "mirror://steamrt/pool/main/w/waffle/libwaffle-1-0_1.6.1-0+steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libwaffle-1-0.deb";
-      };
-    }
-    rec {
-      name = "libwind0-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386";
-      sha256 = "6eb4a6d45a5a37f96c0b96dd08f9d7dbbf5d67c4dc9627472e5c7f6e8dcdecd2";
-      url = "mirror://steamrt/pool/main/h/heimdal/libwind0-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libwind0-heimdal.deb";
-      };
-    }
-    rec {
-      name = "libwrap0_7.6.q-21+srt6_i386";
-      sha256 = "f16e36075faa59bb1322cfbbfbebf99f858f84e31583c8037377f998d1bacaef";
-      url = "mirror://steamrt/pool/main/t/tcp-wrappers/libwrap0_7.6.q-21+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libwrap0.deb";
-      };
-    }
-    rec {
-      name = "libx11-6_1.6.3-1ubuntu2.1+srt2_i386";
-      sha256 = "8b227320572f1bae0f64fca805558c6dde6b9aab9a8c1276ea8f787ff4d621d0";
-      url = "mirror://steamrt/pool/main/libx/libx11/libx11-6_1.6.3-1ubuntu2.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libx11-6.deb";
-      };
-    }
-    rec {
-      name = "libx11-xcb1_1.6.3-1ubuntu2.1+srt2_i386";
-      sha256 = "7da5d7a8704f93ee4b001797bf92377d82effcc9323382e619d253df4378a94d";
-      url = "mirror://steamrt/pool/main/libx/libx11/libx11-xcb1_1.6.3-1ubuntu2.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libx11-xcb1.deb";
-      };
-    }
-    rec {
-      name = "libxau6_1.0.6-4+srt6_i386";
-      sha256 = "7a8f2c897f4dbca167589e631ed5a2330da95739901a83de227fb73179a1cd7c";
-      url = "mirror://steamrt/pool/main/libx/libxau/libxau6_1.0.6-4+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxau6.deb";
-      };
-    }
-    rec {
-      name = "libxaw7_1.0.9-3ubuntu1+srt6_i386";
-      sha256 = "bebb30c03a8d2ec3e9c7761467d240884ea9c8af974ccc420f2b68f4dfb25f46";
-      url = "mirror://steamrt/pool/main/libx/libxaw/libxaw7_1.0.9-3ubuntu1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxaw7.deb";
-      };
-    }
-    rec {
-      name = "libxcb-composite0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "14dcce8eae67f17d6d118f516716c3c37b377e792c70ba8d5eee024330c6cd55";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-composite0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-composite0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-damage0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "eba4177cc53cc9a962021248ed9e10f9644ec9dc0c82ded1d88c741e0db4b281";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-damage0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-damage0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-dpms0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "6aa16d10d782109331c253e0ad2c34e4b253b035851d9b9d3d1ebc53cb761fdd";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-dpms0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-dpms0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-dri2-0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "4d93975e2ca271f08a5c3767b4cc0732d1bde19d3d316ae86887ec2b219a2330";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-dri2-0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-dri2-0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-dri3-0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "716024b99a5a9ae8ac2f25bf138872467b2d878457d064d80ed9c123554890f4";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-dri3-0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-dri3-0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-glx0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "dfc32f406c1b8e7d388da08eb44219f2ac0dea671cc904fce2848e5207c01517";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-glx0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-glx0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-present0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "178eb8ef45f7905e7dda7d072c45ed22ff258a1271b4aa23fa288a6e8f3df259";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-present0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-present0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-randr0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "80c961ca3c4f65731395f28382563b35716fec8ba1821b67b3d82b676dada3db";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-randr0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-randr0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-record0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "647639154c1395f23e9f211b72463855db0514b7773c2f9cf1d3fb2cbc05c867";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-record0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-record0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-render0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "a6d472270333f97a16fd53b91131c24f2ba041638c64e7102e5cf1d7eabc904d";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-render0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-render0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-res0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "e775fa90992262b7c95bf7f87a7798b66860a220695658a7126493ce3a6539fd";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-res0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-res0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-screensaver0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "b1db9ac5b0769b942b77a848d81192fa7a6ac256a929cf4c2041e9effb514593";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-screensaver0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-screensaver0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-shape0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "408ad0ffea7751ac9284fc98ed4aa515493f2b1bea81ea6cb25f18db66dbbadb";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-shape0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-shape0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-shm0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "4974ac189d90500e577b17beec8ea8c6a2cab4dcad1cfe8e81864b23df42602b";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-shm0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-shm0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-sync1_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "9cd68cc830a6ccf81bb2e1e24227bbd6a94b2b0e3f80cd287a1761fe2d58eceb";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-sync1_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-sync1.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xevie0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "8b538e6e9f305fa25f93f706dbee2fbc5d4ae68ae7e2219a3c8ecd4bccccf767";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xevie0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xevie0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xf86dri0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "642e4b1fb439e5da1d19cd79e4e3baf5ff2a45095c7943338b5f0c2dc2f9053f";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xf86dri0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xf86dri0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xfixes0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "bfd93b091ee389375bbd5f4a8b8dcd310fc0dfe865ee70036311af2b87a1c1fc";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xfixes0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xfixes0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xinerama0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "9f98414285c57d89aa589967e7fb1c15baeb41d1a4029ad1e658cfc16d41f666";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xinerama0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xinerama0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xkb1_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "f2bbade8fa986997e27e4b4f6d58f8d13cf89046f30832d25a2ad2a5bf5b2deb";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xkb1_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xkb1.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xprint0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "ef3b153da4e557139326e3fe5725a6e81c405a870cfeac0c2b449cb3a57dcb08";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xprint0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xprint0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xtest0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "1e2e21f204725e8db972eb252d35a44d446f82e7b1fd63e49832f243c90f5270";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xtest0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xtest0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xv0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "f76bde000e9035f4a3ae98c97f7a8cd0fbdd4061476c33d92d7c82ea7b4e8951";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xv0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xv0.deb";
-      };
-    }
-    rec {
-      name = "libxcb-xvmc0_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "8f86701038d861ab35144640fe811493050e7c66d0b126acaa1d1cf0841026d6";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xvmc0_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb-xvmc0.deb";
-      };
-    }
-    rec {
-      name = "libxcb1_1.11.1-1ubuntu1+steamos1+srt2_i386";
-      sha256 = "ac86d7cc48e543a8314df90e22ab5f2f6441c5a9592885075f3ded255f566215";
-      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb1_1.11.1-1ubuntu1+steamos1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcb1.deb";
-      };
-    }
-    rec {
-      name = "libxcomposite1_0.4.3-2build1+srt6_i386";
-      sha256 = "b340871ae381d5c88f548ea401e8716fb2c0ab5f545f20bdaa53c1b86fcb5657";
-      url = "mirror://steamrt/pool/main/libx/libxcomposite/libxcomposite1_0.4.3-2build1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcomposite1.deb";
-      };
-    }
-    rec {
-      name = "libxcursor1_1.1.12-1ubuntu0.1+srt6_i386";
-      sha256 = "033134cc5bddecff760d23f900fbf82160ae9913d8a775d8449d76521a225523";
-      url = "mirror://steamrt/pool/main/libx/libxcursor/libxcursor1_1.1.12-1ubuntu0.1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxcursor1.deb";
-      };
-    }
-    rec {
-      name = "libxdamage1_1.1.3-2build1+srt6_i386";
-      sha256 = "2312ed64ac73865703a2d52426468e04ab9051e7dca7ee2b5f6adba7465ee5dd";
-      url = "mirror://steamrt/pool/main/libx/libxdamage/libxdamage1_1.1.3-2build1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxdamage1.deb";
-      };
-    }
-    rec {
-      name = "libxdmcp6_1.1.0-4+srt6_i386";
-      sha256 = "770dd69e60b9480853807ce666efd456ed33a1cc1ef6211120f7ffca5ce0aeb8";
-      url = "mirror://steamrt/pool/main/libx/libxdmcp/libxdmcp6_1.1.0-4+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxdmcp6.deb";
-      };
-    }
-    rec {
-      name = "libxext6_1.3.0-3ubuntu0.2+steamrt1+srt3_i386";
-      sha256 = "07b6198a9e98a0f2995043ca6801eeb10ab1b448182ac96aa6edec9d5d0a999f";
-      url = "mirror://steamrt/pool/main/libx/libxext/libxext6_1.3.0-3ubuntu0.2+steamrt1+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxext6.deb";
-      };
-    }
-    rec {
-      name = "libxfixes3_5.0-4ubuntu4.4+srt3_i386";
-      sha256 = "8821073c0b8742d9376e97040ae57b99350f501ddeb11559c0ab22b575f79c85";
-      url = "mirror://steamrt/pool/main/libx/libxfixes/libxfixes3_5.0-4ubuntu4.4+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxfixes3.deb";
-      };
-    }
-    rec {
-      name = "libxft2_2.2.0-3ubuntu2+srt6_i386";
-      sha256 = "d5321b1d50842e1fdea5d6ddffc68deb04561c3113b1999f175ff3b890460ad4";
-      url = "mirror://steamrt/pool/main/x/xft/libxft2_2.2.0-3ubuntu2+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxft2.deb";
-      };
-    }
-    rec {
-      name = "libxi6_1.7.1.901-1ubuntu1~precise3+srt3_i386";
-      sha256 = "403a6d281489c734eb221b4345445c85e1d08726de5424c0977eb075ad65c39d";
-      url = "mirror://steamrt/pool/main/libx/libxi/libxi6_1.7.1.901-1ubuntu1~precise3+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxi6.deb";
-      };
-    }
-    rec {
-      name = "libxinerama1_1.1.1-3ubuntu0.1+srt6_i386";
-      sha256 = "a1433017837dfef1e89a59da96fc762d777f424ec0576c844df299e1f8c1de23";
-      url = "mirror://steamrt/pool/main/libx/libxinerama/libxinerama1_1.1.1-3ubuntu0.1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxinerama1.deb";
-      };
-    }
-    rec {
-      name = "libxml2_2.7.8.dfsg-5.1ubuntu4.17+srt2_i386";
-      sha256 = "01c070b6cf8b9bbc89691680ecd283124a221f4f9a774b92da320a994ff9934c";
-      url = "mirror://steamrt/pool/main/libx/libxml2/libxml2_2.7.8.dfsg-5.1ubuntu4.17+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxml2.deb";
-      };
-    }
-    rec {
-      name = "libxmu6_1.1.0-3+srt6_i386";
-      sha256 = "8af5a4dbbd4543273660a993b5844fe3e4fe08039029cdb831cdfad913189784";
-      url = "mirror://steamrt/pool/main/libx/libxmu/libxmu6_1.1.0-3+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxmu6.deb";
-      };
-    }
-    rec {
-      name = "libxpm4_3.5.9-4+steamrt1.1ubuntu0.1+srt2_i386";
-      sha256 = "fc122b2d9b319e2b2d6820f99991340be84c897934c215dd45992f1cdd93cc3e";
-      url = "mirror://steamrt/pool/main/libx/libxpm/libxpm4_3.5.9-4+steamrt1.1ubuntu0.1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxpm4.deb";
-      };
-    }
-    rec {
-      name = "libxrandr2_1.5.0-1+srt2_i386";
-      sha256 = "7cac5a272f54cbbe4d4a6ebec57f916ce27558ad4658e2a7bf7a0da821ea4814";
-      url = "mirror://steamrt/pool/main/libx/libxrandr/libxrandr2_1.5.0-1+srt2_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxrandr2.deb";
-      };
-    }
-    rec {
-      name = "libxrender1_0.9.6-2ubuntu0.2+srt3_i386";
-      sha256 = "ca115703917963c881e4a5e2fdd46bf407750b2b21d5cb68f3d9de1848a37607";
-      url = "mirror://steamrt/pool/main/libx/libxrender/libxrender1_0.9.6-2ubuntu0.2+srt3_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxrender1.deb";
-      };
-    }
-    rec {
-      name = "libxss1_1.2.1-2+srt6_i386";
-      sha256 = "b7eefbf2398837f0edc399a0814270549622309c70cea499ff8f360a0ed553e2";
-      url = "mirror://steamrt/pool/main/libx/libxss/libxss1_1.2.1-2+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxss1.deb";
-      };
-    }
-    rec {
-      name = "libxt6_1.1.1-2ubuntu0.1+srt6_i386";
-      sha256 = "2a0047b8b965e88e4102251adeaa8ee06f1f8a5c473b05b66780737c078e3a14";
-      url = "mirror://steamrt/pool/main/libx/libxt/libxt6_1.1.1-2ubuntu0.1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxt6.deb";
-      };
-    }
-    rec {
-      name = "libxtst6_1.2.0-4ubuntu0.1+srt6_i386";
-      sha256 = "3f71448e6e4c2268a6b7d2434857fad087dcf5ab7bffffabd4dac85cc9b6101f";
-      url = "mirror://steamrt/pool/main/libx/libxtst/libxtst6_1.2.0-4ubuntu0.1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxtst6.deb";
-      };
-    }
-    rec {
-      name = "libxxf86vm1_1.1.1-2ubuntu0.1+srt6_i386";
-      sha256 = "e35a581221121685d195a30fa8d9f380b97d4ceda381c6283dea2cc055b8a9b1";
-      url = "mirror://steamrt/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.1-2ubuntu0.1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "libxxf86vm1.deb";
-      };
-    }
-    rec {
-      name = "nvidia-cg-toolkit_3.0.0016-0ubuntu1+srt6_i386";
-      sha256 = "b1910781d9fc65f75cdf0c73aed63274185c6fcd9e9ee02ea5500fefa10e3dcb";
-      url = "mirror://steamrt/pool/main/n/nvidia-cg-toolkit/nvidia-cg-toolkit_3.0.0016-0ubuntu1+srt6_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "nvidia-cg-toolkit.deb";
-      };
-    }
-    rec {
-      name = "steam-runtime-tools-bin_0.20200415.0+srt1_i386";
-      sha256 = "3ea27a32f19f6e5133385fe4072f3d9a027c4f83604355baa34cf3ae5e346db5";
-      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/steam-runtime-tools-bin_0.20200415.0+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "steam-runtime-tools-bin.deb";
-      };
-    }
-    rec {
-      name = "steamrt-legacy_1.20200421.0+srt1_i386";
-      sha256 = "08371f2a03aacd50f578b7aca4e6934fc60b9db1927e9eb3c8f1a5f6421e79e5";
-      url = "mirror://steamrt/pool/main/s/steamrt/steamrt-legacy_1.20200421.0+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "steamrt-legacy.deb";
-      };
-    }
-    rec {
-      name = "steamrt-libs_1.20200421.0+srt1_i386";
-      sha256 = "0f84ef7ebea603df58d4549a8368a51ceb3989d136174870bfd4c2ed50a13195";
-      url = "mirror://steamrt/pool/main/s/steamrt/steamrt-libs_1.20200421.0+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "steamrt-libs.deb";
-      };
-    }
-    rec {
-      name = "vainfo_2.1.0+ds1-1~steamrt1.1+srt1_i386";
-      sha256 = "785128cd89e53ce63317eb958c59546b5526e66183b3819a3d351eb04c599e38";
-      url = "mirror://steamrt/pool/main/libv/libva-utils/vainfo_2.1.0+ds1-1~steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "vainfo.deb";
-      };
-    }
-    rec {
-      name = "vainfo-1_1.7.0-1+steamrt1.1+srt1_i386";
-      sha256 = "8d1c25ccfa3f62ccd680673a0b2460ab4090c66bc539c7f1991e60cd50e1ce1b";
-      url = "mirror://steamrt/pool/main/libv/libva1/vainfo-1_1.7.0-1+steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "vainfo-1.deb";
-      };
-    }
-    rec {
-      name = "vainfo-1-multiarch_1.7.0-1+steamrt1.1+srt1_i386";
-      sha256 = "f50869e6dc73354ab1aa3472ca9092c07d7868f3949b0ca1e2cd2fc817967f42";
-      url = "mirror://steamrt/pool/main/libv/libva1/vainfo-1-multiarch_1.7.0-1+steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "vainfo-1-multiarch.deb";
-      };
-    }
-    rec {
-      name = "vainfo-multiarch_2.1.0+ds1-1~steamrt1.1+srt1_i386";
-      sha256 = "066f979526321c2d74223426fbc40fd7b210ce6c0396ffc58220313358ae155c";
-      url = "mirror://steamrt/pool/main/libv/libva-utils/vainfo-multiarch_2.1.0+ds1-1~steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "vainfo-multiarch.deb";
-      };
-    }
-    rec {
-      name = "vulkan-tools_1.2.135.0+dfsg1-1~steamrt1.1+srt1_i386";
-      sha256 = "1a252f79e90034726d80e49ab892ddfd504fa32dfef93887ed2c6e6e83e77248";
-      url = "mirror://steamrt/pool/main/v/vulkan-tools/vulkan-tools_1.2.135.0+dfsg1-1~steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "vulkan-tools.deb";
-      };
-    }
-    rec {
-      name = "vulkan-tools-multiarch_1.2.135.0+dfsg1-1~steamrt1.1+srt1_i386";
-      sha256 = "f7f68aefcb4f45f855949ad84463c68071595568db27480d3df3ed9be5683b5f";
-      url = "mirror://steamrt/pool/main/v/vulkan-tools/vulkan-tools-multiarch_1.2.135.0+dfsg1-1~steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "vulkan-tools-multiarch.deb";
-      };
-    }
-    rec {
-      name = "waffle-utils_1.6.1-0+steamrt1.1+srt1_i386";
-      sha256 = "c88c88a12f5a9486a20275624c45ab7ac2170e846ea1368d1180e7b39c9d586f";
-      url = "mirror://steamrt/pool/main/w/waffle/waffle-utils_1.6.1-0+steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "waffle-utils.deb";
-      };
-    }
-    rec {
-      name = "waffle-utils-multiarch_1.6.1-0+steamrt1.1+srt1_i386";
-      sha256 = "9aa2ee8c466c343dda5c8db9465238eb5f4cb55b5cfcfca8a3c109ba1d6c6d65";
-      url = "mirror://steamrt/pool/main/w/waffle/waffle-utils-multiarch_1.6.1-0+steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "waffle-utils-multiarch.deb";
-      };
-    }
-    rec {
-      name = "zenity_3.4.0-0ubuntu4+steamrt3+srt1_i386";
-      sha256 = "b8b0d0781ed2e59ac22af8006e61323a5f1f5be44d47e0fea0ca32e8c575528d";
-      url = "mirror://steamrt/pool/main/z/zenity/zenity_3.4.0-0ubuntu4+steamrt3+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "zenity.deb";
-      };
-    }
-    rec {
-      name = "zenity-common_3.4.0-0ubuntu4+steamrt3+srt1_all";
-      sha256 = "7ec603c8b00c5573e88e1df9785af4baef93b54e377e697515eb939b7c119cdc";
-      url = "mirror://steamrt/pool/main/z/zenity/zenity-common_3.4.0-0ubuntu4+steamrt3+srt1_all.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "zenity-common.deb";
-      };
-    }
-    rec {
-      name = "zlib1g_1.2.3.4.dfsg-3ubuntu4+srt7_i386";
-      sha256 = "998b190f03be3de22d1e4822bb0b6e77db15a90321b4ae51abf1f0bd5b9f9190";
-      url = "mirror://steamrt/pool/main/z/zlib/zlib1g_1.2.3.4.dfsg-3ubuntu4+srt7_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "zlib1g.deb";
-      };
-    }
-  ];
-}
diff --git a/pkgs/games/steam/runtime-mirror.nix b/pkgs/games/steam/runtime-mirror.nix
deleted file mode 100644
index 49986a346e8..00000000000
--- a/pkgs/games/steam/runtime-mirror.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ pkgs ? import <nixpkgs> {} }:
-
-let
-  inherit (pkgs) lib;
-  rt = import ./runtime-generated.nix { inherit (pkgs) fetchurl; };
-  convRt = x: {
-    path = lib.removePrefix "mirror://steamrt/" x.url;
-    file = x.source;
-  };
-  files = builtins.map convRt (lib.concatLists (lib.attrValues rt));
-  
-in pkgs.stdenv.mkDerivation {
-  name = "steam-runtime-mirror";
-  buildCommand = ''
-    mkdir $out
-  '' + lib.concatMapStringsSep "\n" (x: ''
-    mkdir -p $(dirname $out/${x.path})
-    ln -sf ${x.file} $out/${x.path}
-  '') files;
-}
diff --git a/pkgs/games/steam/runtime.nix b/pkgs/games/steam/runtime.nix
index ff7a0077f1e..4f373b9be30 100644
--- a/pkgs/games/steam/runtime.nix
+++ b/pkgs/games/steam/runtime.nix
@@ -1,17 +1,20 @@
-{ stdenv, steamArch, fetchurl, writeText, python2, dpkg }:
+{ stdenv, fetchurl }:
 
-let input = builtins.getAttr steamArch (import ./runtime-generated.nix { inherit fetchurl; });
+stdenv.mkDerivation rec {
 
-    inputFile = writeText "steam-runtime.json" (builtins.toJSON input);
+  name = "steam-runtime";
+  # from https://repo.steampowered.com/steamrt-images-scout/snapshots/
+  version = "0.20200720.0";
 
-in stdenv.mkDerivation {
-  name = "steam-runtime-2016-08-13";
-
-  nativeBuildInputs = [ python2 dpkg stdenv.cc.bintools ];
+  src = fetchurl {
+    url = "https://repo.steampowered.com/steamrt-images-scout/snapshots/${version}/steam-runtime.tar.xz";
+    sha256 = "03qdlr1xk84jb4c60ilis00vjhj70bxc0bbgk5g5b1883l2frljd";
+    name = "scout-runtime-${version}.tar.gz";
+  };
 
   buildCommand = ''
     mkdir -p $out
-    python2 ${./build-runtime.py} -i ${inputFile} -r $out
+    tar -C $out --strip=1 -x -f $src
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/games/steam/update-runtime-shell.nix b/pkgs/games/steam/update-runtime-shell.nix
deleted file mode 100644
index bb9362b9bf0..00000000000
--- a/pkgs/games/steam/update-runtime-shell.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-with import <nixpkgs> {};
-
-(python2.buildEnv.override {
-  extraLibs = with python2Packages;
-    [ debian
-    ];
-  postBuild = ''
-    mkdir -p $out/bin
-    for i in ${nixUnstable}/bin/*; do
-      ln -s $i $out/bin/$(basename $i)
-    done
-  '';
-}).env
diff --git a/pkgs/games/steam/update-runtime.py b/pkgs/games/steam/update-runtime.py
deleted file mode 100755
index d33165b309d..00000000000
--- a/pkgs/games/steam/update-runtime.py
+++ /dev/null
@@ -1,141 +0,0 @@
-#! /usr/bin/env nix-shell
-#! nix-shell -i python2 -p "with python2Packages; [python debian]"
-
-# Script to build a Nix script to actually build a Steam runtime.
-# Patched version of https://github.com/ValveSoftware/steam-runtime/blob/master/build-runtime.py
-
-import os
-import re
-import sys
-import urllib
-import gzip
-import cStringIO
-import subprocess
-from debian import deb822
-import argparse
-
-destdir="newpkg"
-arches=["amd64", "i386"]
-
-REPO="http://repo.steampowered.com/steamrt"
-DIST="scout"
-COMPONENT="main"
-
-out = open("runtime-generated.nix", "w")
-out.write("# This file is autogenerated! Do not edit it yourself, use update-runtime.py for regeneration.\n")
-out.write("{ fetchurl }:\n")
-out.write("\n")
-out.write("{\n")
-
-def parse_args():
-	parser = argparse.ArgumentParser()
-	parser.add_argument("-b", "--beta", help="build beta runtime", action="store_true")
-	parser.add_argument("-d", "--debug", help="build debug runtime", action="store_true")
-	parser.add_argument("--symbols", help="include debugging symbols", action="store_true")
-	parser.add_argument("--repo", help="source repository", default=REPO)
-	return parser.parse_args()
-
-def download_file(file_base, file_name, file_url, sha256):
-	file_shortname = file_base + ".deb"
-	out.write("    rec {\n")
-	out.write("      name = \"%s\";\n" % file_name)
-	out.write("      sha256 = \"%s\";\n" % sha256)
-	out.write("      url = \"%s\";\n" % file_url.replace(REPO, "mirror://steamrt", 1))
-	out.write("      source = fetchurl {\n")
-	out.write("        inherit url sha256;\n")
-	out.write("        name = \"%s\";\n" % file_shortname)
-	out.write("      };\n")
-	out.write("    }\n")
-
-
-def parse_dependencies (arch, binarylist):
-	packages_url = "%s/dists/%s/%s/binary-%s/Packages" % (REPO, DIST, COMPONENT, arch)
-	for stanza in deb822.Packages.iter_paragraphs(urllib.urlopen(packages_url)):
-		p = stanza['Package']
-		if p in binarylist:
-			for deps in stanza.relations['depends']:
-				for dep in deps:
-					binarylist.add(dep['name'])
-	return binarylist
-
-def install_binaries (arch, binarylist):
-	installset = parse_dependencies(arch, binarylist.copy())
-	# Steam doesn't start if we include their libc
-	installset.remove("libc6")
-
-	#
-	# Load the Packages file so we can find the location of each binary package
-	#
-	packages_url = "%s/dists/%s/%s/binary-%s/Packages" % (REPO, DIST, COMPONENT, arch)
-	print("Downloading %s binaries from %s" % (arch, packages_url))
-	for stanza in deb822.Packages.iter_paragraphs(urllib.urlopen(packages_url)):
-		p = stanza['Package']
-		if p in installset:
-			print("DOWNLOADING BINARY: %s" % p)
-
-			#
-			# Download the package and install it
-			#
-			file_url="%s/%s" % (REPO,stanza['Filename'])
-			download_file(p, os.path.splitext(os.path.basename(stanza['Filename']))[0], file_url, stanza["SHA256"])
-			installset.remove(p)
-
-	for p in installset:
-		#
-		# There was a binary package in the list to be installed that is not in the repo
-		#
-		e = "ERROR: Package %s not found in Packages file %s\n" % (p, packages_url)
-		sys.stderr.write(e)
-
-
-
-def install_symbols (arch, binarylist):
-	#
-	# Load the Packages file to find the location of each symbol package
-	#
-	packages_url = "%s/dists/%s/%s/debug/binary-%s/Packages" % (REPO, DIST, COMPONENT, arch)
-	print("Downloading %s symbols from %s" % (arch, packages_url))
-	for stanza in deb822.Packages.iter_paragraphs(urllib.urlopen(packages_url)):
-		p = stanza['Package']
-		m = re.match('([\w\-\.]+)\-dbgsym', p)
-		if m and m.group(1) in binarylist:
-			print("DOWNLOADING SYMBOLS: %s" % p)
-			#
-			# Download the package and install it
-			#
-			file_url="%s/%s" % (REPO,stanza['Filename'])
-			download_file(p, os.path.splitext(os.path.basename(stanza['Filename']))[0], file_url)
-
-
-
-args = parse_args()
-
-REPO=args.repo
-
-if args.beta:
-	DIST="steam_beta"
-
-if args.debug:
-	COMPONENT = "debug"
-
-# Process packages.txt to get the list of source and binary packages
-binary_pkgs = set()
-
-print ("Creating runtime-generated.nix")
-
-# https://github.com/ValveSoftware/steam-runtime/blob/173ef028fb6b84e804f4e1b0ef11c12ffd4f3a8e/build-runtime.py#L264
-binary_pkgs.add("steamrt-libs")
-binary_pkgs.add("steamrt-legacy")
-
-for arch in arches:
-	out.write("  %s = [\n" % arch)
-	install_binaries(arch, binary_pkgs)
-
-	if args.symbols:
-		install_symbols(arch, binary_pkgs)
-
-	out.write("  ];\n");
-
-out.write("}\n")
-
-# vi: set noexpandtab:
diff --git a/pkgs/games/super-tux-kart/default.nix b/pkgs/games/super-tux-kart/default.nix
index 70c5657508b..b3a7966071a 100644
--- a/pkgs/games/super-tux-kart/default.nix
+++ b/pkgs/games/super-tux-kart/default.nix
@@ -1,7 +1,8 @@
-{ stdenv, fetchFromGitHub, fetchsvn, cmake, pkgconfig, makeWrapper
-, openal, freealut, libGLU, libGL, libvorbis, libogg, gettext, curl, freetype
-, fribidi, libtool, bluez, libjpeg, libpng, zlib, libX11, libXrandr, enet, harfbuzz }:
-
+{ lib, stdenv, fetchFromGitHub, fetchsvn, cmake, pkgconfig, makeWrapper
+, openal, freealut, libGLU, libGL, libvorbis, libogg, gettext, curl, freetype, glew
+, fribidi, libtool, bluez, libjpeg, libpng, zlib, libX11, libXrandr, harfbuzz
+, mcpp, wiiuse, angelscript
+}:
 let
   dir = "stk-code";
   assets = fetchsvn {
@@ -11,34 +12,62 @@ let
     name   = "stk-assets";
   };
 
+  # List of bundled libraries in stk-code/lib to keep
+  # Those are the libraries that cannot be replaced
+  # with system packages.
+  bundledLibraries = [
+    # Bullet 2.87 is incompatible (bullet 2.79 needed whereas 2.87 is packaged)
+    # The api changed in a lot of classes, too much work to adapt
+    "bullet"
+    # Upstream Libenet doesn't yet support IPv6,
+    # So we will use the bundled libenet which
+    # has been fixed to support it.
+    "enet"
+    # Internal library of STK, nothing to do about it
+    "graphics_utils"
+    # This irrlicht is bundled with cmake
+    # whereas upstream irrlicht still uses
+    # archaic Makefiles, too complicated to switch to.
+    "irrlicht"
+    # Not packaged to this date
+    "libraqm"
+    # Not packaged to this date
+    "libsquish"
+  ];
 in stdenv.mkDerivation rec {
+
   pname = "supertuxkart";
   version = "1.1";
 
-  srcs = [
-    (fetchFromGitHub {
-      owner  = "supertuxkart";
-      repo   = "stk-code";
-      rev    = version;
-      sha256 = "01vxxl94583ixswzmi4caz8dk64r56pn3zxh7v63zml60yfvxbvp";
-      name   = dir;
-    })
-  ];
+  src = fetchFromGitHub {
+    owner  = "supertuxkart";
+    repo   = "stk-code";
+    rev    = version;
+    sha256 = "01vxxl94583ixswzmi4caz8dk64r56pn3zxh7v63zml60yfvxbvp";
+    name   = dir;
+  };
+
+  # Deletes all bundled libs in stk-code/lib except those
+  # That couldn't be replaced with system packages
+  postPatch = ''
+    find lib -maxdepth 1 -type d | egrep -v "^lib$|${(lib.concatStringsSep "|" bundledLibraries)}" | xargs -n1 -L1 -r -I{} rm -rf {}
+  '';
 
   nativeBuildInputs = [ cmake gettext libtool pkgconfig makeWrapper ];
 
   buildInputs = [
     libX11 libXrandr
-    openal freealut libGLU libGL libvorbis libogg zlib freetype
-    curl fribidi bluez libjpeg libpng enet harfbuzz
+    openal freealut libGLU libGL libvorbis libogg zlib freetype glew
+    curl fribidi bluez libjpeg libpng harfbuzz
+    mcpp wiiuse angelscript
   ];
 
-  enableParallelBuilding = true;
-
   cmakeFlags = [
     "-DBUILD_RECORDER=OFF"         # libopenglrecorder is not in nixpkgs
     "-DUSE_SYSTEM_ANGELSCRIPT=OFF" # doesn't work with 2.31.2 or 2.32.0
     "-DCHECK_ASSETS=OFF"
+    "-DUSE_SYSTEM_WIIUSE=ON"
+    "-DUSE_SYSTEM_ANGELSCRIPT=ON"
   ];
 
   # Obtain the assets directly from the fetched store path, to avoid duplicating assets across multiple engine builds
@@ -46,9 +75,9 @@ in stdenv.mkDerivation rec {
     wrapProgram $out/bin/supertuxkart --set-default SUPERTUXKART_ASSETS_DIR "${assets}"
   '';
 
-  sourceRoot = dir;
+  enableParallelBuilding = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Free 3D kart racing game";
     longDescription = ''
       SuperTuxKart is a Free 3D kart racing game, with many tracks,
diff --git a/pkgs/games/supertux/default.nix b/pkgs/games/supertux/default.nix
index 25f36e9ff3e..68b49fd5517 100644
--- a/pkgs/games/supertux/default.nix
+++ b/pkgs/games/supertux/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "supertux";
-  version = "0.6.1.1";
+  version = "0.6.2";
 
   src = fetchurl {
     url = "https://github.com/SuperTux/supertux/releases/download/v${version}/SuperTux-v${version}-Source.tar.gz";
-    sha256 = "0n36qxwjlkdlksximz4s729az6pry2sdjavwgm7m65vfgdiz139f";
+    sha256 = "167m3z4m8n76dvbv42m1fnvabpbpsxvr28zk9641916jl9pfba96";
   };
 
   nativeBuildInputs = [ pkgconfig cmake ];
diff --git a/pkgs/games/taisei/0001-lto-fix.patch b/pkgs/games/taisei/0001-lto-fix.patch
new file mode 100644
index 00000000000..eed7b845f53
--- /dev/null
+++ b/pkgs/games/taisei/0001-lto-fix.patch
@@ -0,0 +1,13 @@
+diff --git a/meson.build b/meson.build
+index 80aa58d..c7e9d0a 100644
+--- a/meson.build
++++ b/meson.build
+@@ -17,7 +17,7 @@ project('taisei', 'c',
+         # You may want to change these for a debug build dir
+         'buildtype=release',
+         'strip=true',
+-        'b_lto=true',
++        'b_lto=false',
+         'b_ndebug=if-release',
+     ]
+ )
diff --git a/pkgs/games/taisei/default.nix b/pkgs/games/taisei/default.nix
new file mode 100644
index 00000000000..3c4d0df2b03
--- /dev/null
+++ b/pkgs/games/taisei/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl
+# Build depends
+, docutils, meson, ninja, pkgconfig, python3
+# Runtime depends
+, glfw, SDL2, SDL2_mixer
+, freetype, libpng, libwebp, libzip, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "taisei";
+  version = "1.3.1";
+
+  src = fetchurl {
+    url = "https://github.com/taisei-project/${pname}/releases/download/v${version}/${pname}-v${version}.tar.xz";
+    sha256 = "11f9mlqmzy1lszwcc1nsbar9q1hs4ml6pbm52hqfd4q0f4x3ln46";
+  };
+
+  nativeBuildInputs = [
+    docutils meson ninja pkgconfig python3
+  ];
+
+  buildInputs = [
+    glfw SDL2 SDL2_mixer
+    freetype libpng libwebp libzip zlib
+  ];
+
+  patches = [ ./0001-lto-fix.patch ];
+
+  preConfigure = ''
+    patchShebangs .
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A free and open-source Touhou Project clone and fangame";
+    longDescription = ''
+      Taisei is an open clone of the TÅhÅ Project series. TÅhÅ is a one-man
+      project of shoot-em-up games set in an isolated world full of Japanese
+      folklore.
+    '';
+    homepage = "https://taisei-project.org/";
+    license = [ licenses.mit licenses.cc-by-40 ];
+    maintainers = [ maintainers.lambda-11235 ];
+    platforms = platforms.all;
+  };
+}
+
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/teeworlds/default.nix b/pkgs/games/teeworlds/default.nix
index 3035c02e262..9ff50d533be 100644
--- a/pkgs/games/teeworlds/default.nix
+++ b/pkgs/games/teeworlds/default.nix
@@ -1,5 +1,6 @@
 { fetchFromGitHub, stdenv, cmake, pkgconfig, python3, alsaLib
 , libX11, libGLU, SDL2, lua5_3, zlib, freetype, wavpack, icoutils
+, nixosTests
 }:
 
 stdenv.mkDerivation rec {
@@ -36,6 +37,8 @@ stdenv.mkDerivation rec {
     install -D $src/other/teeworlds.desktop $out/share/applications/teeworlds.desktop
   '';
 
+  passthru.tests.teeworlds = nixosTests.teeworlds;
+
   meta = {
     description = "Retro multiplayer shooter game";
 
diff --git a/pkgs/games/terraria-server/default.nix b/pkgs/games/terraria-server/default.nix
index dab0b653ee9..e16a771d272 100644
--- a/pkgs/games/terraria-server/default.nix
+++ b/pkgs/games/terraria-server/default.nix
@@ -1,36 +1,30 @@
-{ stdenv, lib, file, fetchurl, unzip }:
+{ stdenv, lib, file, fetchurl, autoPatchelfHook, unzip }:
 
 stdenv.mkDerivation rec {
   pname = "terraria-server";
-  version = "1.3.5.3";
-  urlVersion = lib.replaceChars ["."] [""] version;
+  version = "1.4.0.5";
+  urlVersion = lib.replaceChars [ "." ] [ "" ] version;
 
   src = fetchurl {
-    url = "https://terraria.org/server/terraria-server-${urlVersion}.zip";
-    sha256 = "0l7j2n6ip4hxph7dfal7kzdm3dqnm1wba6zc94gafkh97wr35ck3";
+    url = "https://terraria.org/system/dedicated_servers/archives/000/000/039/original/terraria-server-${urlVersion}.zip";
+    sha256 = "1bvcafpjxp7ddrbhm3z0xamgi71ymbi41dlx990daz0b5kbdir8y";
   };
 
   buildInputs = [ file unzip ];
+  nativeBuildInputs = [ autoPatchelfHook ];
 
   installPhase = ''
     mkdir -p $out/bin
     cp -r Linux $out/
     chmod +x "$out/Linux/TerrariaServer.bin.x86_64"
     ln -s "$out/Linux/TerrariaServer.bin.x86_64" $out/bin/TerrariaServer
-    # Fix "/lib64/ld-linux-x86-64.so.2" like references in ELF executables.
-    find "$out" | while read filepath; do
-      if file "$filepath" | grep -q "ELF.*executable"; then
-        echo "setting interpreter $(cat "$NIX_CC"/nix-support/dynamic-linker) in $filepath"
-        patchelf --set-interpreter "$(cat "$NIX_CC"/nix-support/dynamic-linker)" "$filepath"
-        test $? -eq 0 || { echo "patchelf failed to process $filepath"; exit 1; }
-      fi
-    done
   '';
 
   meta = with lib; {
-    homepage = "http://terraria.org";
-    description = "Dedicated server for Terraria, a 2D action-adventure sandbox";
-    platforms = ["x86_64-linux"];
+    homepage = "https://terraria.org";
+    description =
+      "Dedicated server for Terraria, a 2D action-adventure sandbox";
+    platforms = [ "x86_64-linux" ];
     license = licenses.unfree;
   };
 }
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/tintin/default.nix b/pkgs/games/tintin/default.nix
index 7291f5b4bd2..cd58fcf24fd 100644
--- a/pkgs/games/tintin/default.nix
+++ b/pkgs/games/tintin/default.nix
@@ -6,11 +6,11 @@
 assert tlsSupport -> gnutls != null;
 
 stdenv.mkDerivation rec {
-  name = "tintin-2.02.02";
+  name = "tintin-2.02.03";
 
   src = fetchurl {
     url    = "mirror://sourceforge/tintin/${name}.tar.gz";
-    sha256 = "11ylbp8ip7dwmh4gzb53z147pcfxkl3lwhyy8ngyn2zc634vdn65";
+    sha256 = "0ybgy8j8i36d7f892x539vl6fl5zvvfyy5ffc98550vjr6qqhk74";
   };
 
   nativeBuildInputs = lib.optional tlsSupport gnutls.dev;
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/tome4/default.nix b/pkgs/games/tome4/default.nix
index 99391f2e301..59dced9ac67 100644
--- a/pkgs/games/tome4/default.nix
+++ b/pkgs/games/tome4/default.nix
@@ -9,7 +9,7 @@ let
     name = pname;
     exec = "@out@/bin/${pname}";
     icon = pname;
-    terminal = "False";
+    terminal = "false";
     comment = "An open-source, single-player, role-playing roguelike game set in the world of Eyal.";
     type = "Application";
     categories = "Game;RolePlaying;";
diff --git a/pkgs/games/tuxpaint/default.nix b/pkgs/games/tuxpaint/default.nix
index b9d7f1b8c28..ea37ded6b6c 100644
--- a/pkgs/games/tuxpaint/default.nix
+++ b/pkgs/games/tuxpaint/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchurl, SDL, SDL_image, SDL_ttf, SDL_mixer, libpng,
-  cairo, librsvg, gettext, libpaper, fribidi, pkgconfig, gperf }:
+  cairo, librsvg, gettext, libpaper, fribidi, pkgconfig, gperf, imagemagick }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.22";
+  version = "0.9.24";
   pname = "tuxpaint";
 
   src = fetchurl {
     url = "mirror://sourceforge/tuxpaint/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1qrbrdck9yxpcg3si6jb9i11w8lw9h4hqad0pfaxgyiniqpr7gca";
+    sha256 = "06m1lg2pikfkmassfvvrbwqffwgixcmjh1li6akaldgkalpmfql7";
   };
 
   nativeBuildInputs = [ SDL SDL_image SDL_ttf SDL_mixer libpng cairo
-    librsvg gettext libpaper fribidi pkgconfig gperf ];
+    librsvg gettext libpaper fribidi pkgconfig gperf imagemagick ];
   hardeningDisable = [ "format" ];
   makeFlags = [ "GPERF=${gperf}/bin/gperf"
                 "PREFIX=$$out"
diff --git a/pkgs/games/ultrastardx/default.nix b/pkgs/games/ultrastardx/default.nix
index 3e17dfdf644..b2d601df349 100644
--- a/pkgs/games/ultrastardx/default.nix
+++ b/pkgs/games/ultrastardx/default.nix
@@ -17,7 +17,7 @@ in stdenv.mkDerivation rec {
     owner = "UltraStar-Deluxe";
     repo = "USDX";
     rev = "3df142590f29db1505cc58746af9f8cf7cb4a6a5";
-    sha256 = "EpwGKK9B8seF7gRwo3kCeSzFQQW1p8rP4HXeu8/LoyA=";
+    sha256 = "0853rg7vppkmw37wm9xm0m0wab3r09ws6w04xs2wgwj1mwl0d70j";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
diff --git a/pkgs/games/ut2004/wrapper.nix b/pkgs/games/ut2004/wrapper.nix
index 31d0763be4d..0f70a07ca8f 100644
--- a/pkgs/games/ut2004/wrapper.nix
+++ b/pkgs/games/ut2004/wrapper.nix
@@ -27,7 +27,7 @@ let
     desktopName = "Unreal Tournament 2004";
     comment = "A first-person shooter video game developed by Epic Games and Digital Extreme";
     genericName = "First-person shooter";
-    categories = "Application;Game;";
+    categories = "Game;";
     exec = "ut2004";
   };
 
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/vms-empire/default.nix b/pkgs/games/vms-empire/default.nix
index d0920b0c68d..eb9108c32c9 100644
--- a/pkgs/games/vms-empire/default.nix
+++ b/pkgs/games/vms-empire/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, ncurses, xmlto }:
 
 with stdenv.lib;
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
 
   pname = "vms-empire";
   version = "1.15";
diff --git a/pkgs/games/wesnoth/default.nix b/pkgs/games/wesnoth/default.nix
index 20ec0a978f5..ce375392041 100644
--- a/pkgs/games/wesnoth/default.nix
+++ b/pkgs/games/wesnoth/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, pkgconfig, SDL2, SDL2_image, SDL2_mixer, SDL2_net, SDL2_ttf
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, SDL2, SDL2_image, SDL2_mixer, SDL2_net, SDL2_ttf
 , pango, gettext, boost, libvorbis, fribidi, dbus, libpng, pcre, openssl, icu
 , Cocoa, Foundation
 , enableTools ? false
@@ -6,11 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wesnoth";
-  version = "1.14.11";
+  version = "1.14.13";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "1i8mz6gw3qar09bscczhki0g4scj8pl58v85rp0g55r4bcq41l5v";
+  src = fetchFromGitHub {
+    rev = version;
+    owner = "wesnoth";
+    repo = "wesnoth";
+    sha256 = "1ka07h4sgmbc24qbaz0pbryx0yk339l4jzg32hy01qdvl2n40w3h";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
@@ -33,7 +35,7 @@ stdenv.mkDerivation rec {
       adventures.
     '';
 
-    homepage = "http://www.wesnoth.org/";
+    homepage = "https://www.wesnoth.org/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.unix;
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/base16-builder/node-packages-generated.nix b/pkgs/misc/base16-builder/node-packages-generated.nix
index bbbe6e3b20a..426b6229e1c 100644
--- a/pkgs/misc/base16-builder/node-packages-generated.nix
+++ b/pkgs/misc/base16-builder/node-packages-generated.nix
@@ -10,7 +10,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
-        sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
+        sha512 = "38s4f3id97wsb0rg9nm9zvxyq0nvwrmrpa5dzvrkp36mf5ibs98b4z6lvsbrwzzs0sbcank6c7gpp06vcwp9acfhp41rzlhi3ybsxwy";
       };
     };
     "ansi-regex-2.1.1" = {
@@ -46,7 +46,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
-        sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
+        sha512 = "13mgnbmdhdq0qncijvpip1l39q1a8labcvj3hc3n1yl2zch106mdkn7p7bd5knvmfkkn1js9nd47nzyjk1himbm8ry8i8gd6mk7mlk3";
       };
     };
     "are-we-there-yet-1.1.5" = {
@@ -55,7 +55,7 @@ let
       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==";
+        sha512 = "3mizm1yfxynlhaavbimv7n9qljrbhni22v4fch6zr89x6ps0gpjcxm5yfvv05n8vc3r17hmglyswgq9w0s598xv70nnyw358q11s5p6";
       };
     };
     "argparse-1.0.10" = {
@@ -64,7 +64,7 @@ let
       version = "1.0.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
-        sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
+        sha512 = "17fhywmdjcp8g0ys089i5xg26yajkkg9zg8hyry3fghz75b2pq5vdx997dk5p2sc15r9nsj8rmf4f27g81hi92kzj5q86sdmg5ni553";
       };
     };
     "array-find-index-1.0.2" = {
@@ -100,7 +100,7 @@ let
       version = "1.1.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
-        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+        sha512 = "248cnpbbf0p32h53rd3g8wzpgrkaj4p078ra1g6l16f82i6bzkvmhwqan5rk88apbll9ly1476kngd7f7z27i3b3zxpbb3064f8yaw8";
       };
     };
     "bulk-replace-0.0.1" = {
@@ -136,7 +136,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz";
-        sha512 = "mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==";
+        sha512 = "2mv8dgq8fr86zs5mam6bkp0j241lpb5rbwpq8zc5gkj7f8zir1cd71m0yyy8zy46hvf86b9k7pbhvkz08ii4mhxh14xshkrgik0p14r";
       };
     };
     "chalk-1.1.3" = {
@@ -154,7 +154,7 @@ let
       version = "1.1.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz";
-        sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
+        sha512 = "1b03acmav1awkygrda5h64pn8msd6wda119q553hik728i1j72bfqyq7yzn1x7nmw28hvg9mcyh7krsj8vwsq3karnn55mj6smip7cc";
       };
     };
     "code-point-at-1.1.0" = {
@@ -235,7 +235,7 @@ let
       version = "3.2.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
-        sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
+        sha512 = "1cyv14044rfh792n1hhsa44kk8dk95zk14w96i49gwq6g9wi6h9vn90xaragfy7rvggqvj178l5f16c78g47xgrwhjx3bp7zs6pxscr";
       };
     };
     "decamelize-1.2.0" = {
@@ -253,7 +253,7 @@ let
       version = "0.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
-        sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
+        sha512 = "0wc0sqg1aqx864bxf8xa4j8ncrc8rcvmiaj1sp3x1np2i8hdjybzjfd0w9gbf1yasmwycwzzg1mz6smr3q42hhv4pjx2qcgwqhg3q9c";
       };
     };
     "delegates-1.0.0" = {
@@ -298,7 +298,7 @@ let
       version = "2.7.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz";
-        sha512 = "7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==";
+        sha512 = "2ad39acbba96hqbgf714pacri515xjn8jd43bkfb1wwp04vflpjj0qhnnmsq074g7d1kycyj1bmf620s43qb3x74hrfb4ky3v5axygf";
       };
     };
     "error-ex-1.3.2" = {
@@ -307,7 +307,7 @@ let
       version = "1.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz";
-        sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
+        sha512 = "3igrl2amb9mpa9d2z6qghz3ljqd7amjla8ahfs5fdgl0w52pw6gz3y32q5fk229yvfyg3x9kpfygadcm2w0lv4hv4nj25cyd8v4glgd";
       };
     };
     "escape-string-regexp-1.0.5" = {
@@ -325,7 +325,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
-        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+        sha512 = "3h999di4dnwxb22lxlb7cbz42nalrv8g8sqdvrkkl5c27gnwhp1rva4039hmq6g1i0y4mfjgx6p4i2vwxxl0zlahfzdd9fl1qbqasvq";
       };
     };
     "filled-array-1.1.0" = {
@@ -352,7 +352,7 @@ let
       version = "1.2.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz";
-        sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==";
+        sha512 = "1644yfnzfqikaff5s68dm4qfrblxrz68ynigkyzyixjqazxlli0svj1nxkawz35sv2vb3vjh41f1rhg0j4nr770a53fzqbjc4j94r0r";
       };
     };
     "fs-promise-0.3.1" = {
@@ -397,7 +397,7 @@ let
       version = "7.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
-        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+        sha512 = "020qv13jbi1v4y5xavf6fw08h9svy4q9p67m4avkrrhgdjmk0c5k3h19bv7k6yn1vfxljpjw9kg81fbdg9v83cjplxvkn3v4v1v21ig";
       };
     };
     "got-5.7.1" = {
@@ -415,7 +415,7 @@ let
       version = "4.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
-        sha512 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==";
+        sha512 = "12xdl6ai5jdxcpcavw2hk4zpiknz7g7f2cvgawzwlzv7cy7qf7riq8ymkgqdqxjkpl1mg627dxa65zc9b0yqhflsmqlfg5q3481azbb";
       };
     };
     "has-ansi-2.0.0" = {
@@ -442,7 +442,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/hepburn/-/hepburn-1.1.1.tgz";
-        sha512 = "Ok3ZmMJN3ek4WFAL4f5t8k+BmrDRlS5qGjI4um+3cHH0SrYVzJgUTYwIfGvU8s/eWqOEY+gsINwjJSoaBG3A9g==";
+        sha512 = "3vc0v8438m2a8yw40nfhqw4ldddxkzjsimpq24c9la9ik0mnr5g8wbhnxpvlf1j39m2x5fin2d82kzjdpzf22shb0wfkpadqacdjk9s";
       };
     };
     "hosted-git-info-2.8.8" = {
@@ -451,7 +451,7 @@ let
       version = "2.8.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
-        sha512 = "f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==";
+        sha512 = "19a25b4xb3hg00d1nsirc3xfcc07rplbh6msa49rgc8xg5rg38y1z8rfrf0dmll8k4jaml8z337bi6y2cgah66jnwxinn0sch5k7z3z";
       };
     };
     "iconv-lite-0.4.24" = {
@@ -460,7 +460,7 @@ let
       version = "0.4.24";
       src = fetchurl {
         url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
-        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+        sha512 = "2n3ygx6km56rdcd5kq52bs2113xqm3vlw2kb9r7pnmxd2qhxrfahp2ngc4w7x8x76fyfpapnixnbjq1i24nc11mj6q7rghwj2fifwxz";
       };
     };
     "ignore-walk-3.0.3" = {
@@ -469,7 +469,7 @@ let
       version = "3.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz";
-        sha512 = "m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==";
+        sha512 = "0mlk9s23jc3avly1bv6s5j7hs0aafxabmgn7iqi0bjag4b03nqckvcdrgnarpmysdq8yr1rgxh6k7p82vzjj1z6hnm5ckwswg33mflv";
       };
     };
     "imurmurhash-0.1.4" = {
@@ -505,7 +505,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
-        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+        sha512 = "30rw2i1k63pbf0n5dbwly05h95cdp1kj8c9r15gv1cwha141g61k56fx4qwsvhpm1ksnf7agch1wxirs3s0m31wbfvmcqizgrlwdywk";
       };
     };
     "ini-1.3.5" = {
@@ -514,7 +514,7 @@ let
       version = "1.3.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
-        sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==";
+        sha512 = "1rjbvf1rg5ywhnba08sgagn2qf23lab330qrqmh7d891zap3xpxcyfyj1cblpf0f0rypglcfacybzyrpd4996aa1mbc820awa33k5j5";
       };
     };
     "is-arrayish-0.2.1" = {
@@ -532,7 +532,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz";
-        sha512 = "cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==";
+        sha512 = "3gj0k3vlpbc7zg5xkl8yjnilqs2dmk3ks67shchrfmnzkj6r4aad994xwfczx99ccjx6cixdqg4sawk2m92lqhh6jmfl17zlnv8rp3i";
       };
     };
     "is-fullwidth-code-point-1.0.0" = {
@@ -577,7 +577,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz";
-        sha512 = "RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==";
+        sha512 = "134jdgzg4p15g5jvwsmb0bmglmymn1pyk6r2w8q1fm728f15l7k12sqmfngn0mg3vs34gzg12v684fp9c99l6jnv737b6rgmiwd8ij5";
       };
     };
     "is-stream-1.1.0" = {
@@ -613,7 +613,7 @@ let
       version = "3.13.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
-        sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==";
+        sha512 = "0kkjjrr0znm2ka89ywc5518c8dw0210z91fm94c7v11l8c96mkjh0ddld5mb7jmmnpzap7vn0fhvr29lma63c9is2ixq3fpp0xxrxk1";
       };
     };
     "keypress-0.1.0" = {
@@ -640,7 +640,7 @@ let
       version = "1.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/limax/-/limax-1.7.0.tgz";
-        sha512 = "ibcGylOXT5vry2JKfKwLWx2tZudRYWm4SzG9AE/cc5zqwW+3nQy/uPLUvfAUChRdmqxVrK6SNepmO7ZY8RoKfA==";
+        sha512 = "1y0l6pib2v3nrpa6n9axb2mmjd5s50a2kqbvm7jp2zhr7dpdz0ym73kvi7h1g9i9fw6jqaiwxkas7av1fn7qjk2rgmrnkwpag50ddw9";
       };
     };
     "load-json-file-1.1.0" = {
@@ -667,7 +667,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz";
-        sha512 = "G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==";
+        sha512 = "1a7qa1zn5zl1nf7i6w3299lc3biabfb0w2c30cl770l2dbldvi72nwvjdlinhx7j0ldip82sj710aprdjbmbg782i2pa3jpbgmy6qhv";
       };
     };
     "map-obj-1.0.1" = {
@@ -694,7 +694,7 @@ let
       version = "3.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
-        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+        sha512 = "1879a3j85h92ypvb7lpv1dqpcxl49rqnbgs5la18zmj1yqhwl60c2m74254wbr5pp3znckqpkg9dvjyrz6hfz8b9vag5a3j910db4f8";
       };
     };
     "minimist-0.0.8" = {
@@ -712,7 +712,7 @@ let
       version = "1.2.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
-        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+        sha512 = "0pif0kjsr0cdm73cyicn9xdx9zkly45w4akmyfa39lkaf6lzysfr8kr145p54wjk26pbsk0w0qfdds3k4bxy4wl5l210i1b8qsngkql";
       };
     };
     "minipass-2.9.0" = {
@@ -721,7 +721,7 @@ let
       version = "2.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz";
-        sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==";
+        sha512 = "1x0k2ycn1r5fig2zy7jj5vjsc7sxdl2a8lidvzsfyhcbrmvyvlbkmb3ga6l8njclvhjz2yrcx57jn26bckzrms017zb2yan1y7d85y3";
       };
     };
     "minizlib-1.3.3" = {
@@ -730,7 +730,7 @@ let
       version = "1.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz";
-        sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==";
+        sha512 = "3slcgy5kqasjl8k1n2indaaw0k6j2ipapzxrcqyy2zrwpv8z9w2im5i8c2c73pqdgkd31rwf5bajgv4pm2i6m9jg51cfmp694w0r5p9";
       };
     };
     "mkdirp-0.5.1" = {
@@ -748,7 +748,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
-        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+        sha512 = "3dqfiiw6nxvvi24fndbzlccnjcas99bsd1kz5m2r78lzgpp6vx57jzbmxq3k1m7bsw88rwra0n4848l720fxxn5x20djck3wp3hysdh";
       };
     };
     "nan-2.14.0" = {
@@ -757,7 +757,7 @@ let
       version = "2.14.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz";
-        sha512 = "INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==";
+        sha512 = "115f4m91pjscflwskc29clsspd2z02gdbz0dbj63ja8bf67nraw14gvppl4872y9z2f5vbjlkpg1i4625zvalx3gp04vvn2gs7qblr0";
       };
     };
     "needle-2.4.0" = {
@@ -766,7 +766,7 @@ let
       version = "2.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz";
-        sha512 = "4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==";
+        sha512 = "1k9220dhvc3m78hzd1xh2135p19z15y964hmhsajayvj11j2p3rv5w0gii7lmgr8w57bqkjg0xby5f1gkcph60kxvyr52z6pp7g0yg0";
       };
     };
     "node-pre-gyp-0.14.0" = {
@@ -775,7 +775,7 @@ let
       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==";
+        sha512 = "32drv6q9sh4i2ff2djd1dhxxxiaiymmgycbm12wpkz9vxspnldxgmppf9sazp3c72771a1p5s4kkzgwn4w1csyz9bn4zdbdnq5w6azq";
       };
     };
     "node-status-codes-1.0.0" = {
@@ -793,7 +793,7 @@ let
       version = "2.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/nodejieba/-/nodejieba-2.4.1.tgz";
-        sha512 = "fxlVloaO5baDBmpnQ2egDCe6FT9SJdfbFak7tK7dKH16d7SxA5bLdv47EdTwtKS9DRbnXnMlyX5Wc33XAnaQuA==";
+        sha512 = "2w90xh2sxyp6mkyr4jp6pp72q6vv95ly3a12fzyfv5rc0xinivplz98vnpb8fx92pdxf9aj7wavl9qcl1kl6rva0s1vdrcfhsb5a6bz";
       };
     };
     "nopt-4.0.3" = {
@@ -802,7 +802,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz";
-        sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==";
+        sha512 = "0mb9va0ag1n8v5c2lhza37prcw4iyrmbw5n6yglk1kcg95xwqi9ng5dqwr17h63sl5dba2rnwwrzz7dnfvkx5z75h4j7d9kag0qdxha";
       };
     };
     "normalize-package-data-2.5.0" = {
@@ -811,7 +811,7 @@ let
       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==";
+        sha512 = "1wbwhlsm965n61y23wrm50ric9l7rig90wvx7hjdl34np6n1bbqcc67wgm494z303s6y5aj4xjyism3n6kikp40iz9qaizlfhvqr47z";
       };
     };
     "npm-bundled-1.1.1" = {
@@ -820,7 +820,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz";
-        sha512 = "gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==";
+        sha512 = "1yb9l8jnxwicz0fsdv434y395b0x11mlc1mgbbhnx21pvs58a4p43f0swvi6q0rakdgzdiyf0yylnmb3i41hb052903m1cgcy01zac2";
       };
     };
     "npm-normalize-package-bin-1.0.1" = {
@@ -829,7 +829,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz";
-        sha512 = "EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==";
+        sha512 = "149ypqf1mxqw0gcjr4xf4h65q6vx41z1abm27cwbsj7fn07wsx588f9gsykjzfybwrn4mmr6lyaj825w3yyhbgaagmrybw9brzdmxqh";
       };
     };
     "npm-packlist-1.4.8" = {
@@ -838,7 +838,7 @@ let
       version = "1.4.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz";
-        sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==";
+        sha512 = "3s585jx92awjb52bs1jwq8r4swv8mgfl685if5wwpbsigwb362adizzpi58a5kgqfpf605mf6a0v7074mc9qpcn2ypqgr7f1a1ikq77";
       };
     };
     "npmlog-4.1.2" = {
@@ -847,7 +847,7 @@ let
       version = "4.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz";
-        sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==";
+        sha512 = "2967mavp7zw0aawf5fadqf4pmn7vy5gya1yx2s9wwppvivhd9q4mpdnszfqvd7p6yks649bwbpj8iviw86g0hpp4f93d5ca7dmjmrfs";
       };
     };
     "number-is-nan-1.0.1" = {
@@ -910,7 +910,7 @@ let
       version = "0.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz";
-        sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
+        sha512 = "3ddw0y41pxv08ls5xhmq1bi81hppjbr45k78cjfx99vznh5znrj5g1b1wab9caj1mqlsvmfms0zm9cfb47ygm0d8wv5fccx8049q9fh";
       };
     };
     "package-json-2.4.0" = {
@@ -955,7 +955,7 @@ let
       version = "1.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
-        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+        sha512 = "37qw5986wccpwwqckqky509s4nd6zwv200s9r2v6mcf5nsyxgf2x00m4yp918mkkz84sdh4q0kjbg0hhfq4flpz0l6v47hvc57qwa8r";
       };
     };
     "path-type-1.1.0" = {
@@ -1000,7 +1000,7 @@ let
       version = "2.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/pinyin/-/pinyin-2.9.0.tgz";
-        sha512 = "TZYQ+2uE12arC1EfCeDmN5KgwIOuNMIweOotKvBZdhVOUuQc5RJsGEGf+BaSvxfVtu9ViYEFJmH0xTaj9t4n3Q==";
+        sha512 = "3fjgppnlcvcbx314q2q32amxyvda5xzj8bgi7s131n15r8wwi94w5bnb7q2lbgag0qc4d5fhg0a14ipwvh0j7si1fmndmw4dgxi15jd";
       };
     };
     "prepend-http-1.0.4" = {
@@ -1018,7 +1018,7 @@ let
       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==";
+        sha512 = "1mgan8li4i2l4y7lsr7snks85n6xg5x693cqmzpid3fkk9br7v5xzgvh1zlfs08zkxn6s0n6qhykr64mszjfyxd77dhmdi1jhx992yy";
       };
     };
     "rc-1.2.8" = {
@@ -1027,7 +1027,7 @@ let
       version = "1.2.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
-        sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
+        sha512 = "0xhy1n9n3y6cp28f8f0f2mi0xzc7ay1g5nhbp64fyvcwv9q30zq2zvyc5q2d0al8aa0hx101yq2y6d2ln4r5jxnqifh1pd3la1ccxnb";
       };
     };
     "read-all-stream-3.1.0" = {
@@ -1063,7 +1063,7 @@ let
       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==";
+        sha512 = "0zrh6gjjzwwycwydra51xcrgjgzyqv6dq38bfpwzmlqn702mwb4nj4sjjn499rycqndfk6rby0dksnq72x8pcbvqv0b2893mvq6if0i";
       };
     };
     "redent-1.0.0" = {
@@ -1081,7 +1081,7 @@ let
       version = "3.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz";
-        sha512 = "4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==";
+        sha512 = "3w8zjx5s044i7wr9bqqgjfkjawg0cajc9j9gmzkqs0i420algjvkd5k27j9pvhx1yq7nvdchsl96zcyjf64n14765q0f18y1wbkmcz0";
       };
     };
     "registry-url-3.1.0" = {
@@ -1108,7 +1108,7 @@ let
       version = "1.15.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz";
-        sha512 = "84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==";
+        sha512 = "3pr5zjp8nh6qfllxnpqx531srx1igzdm28j4zg1y53yzc8qxp16yx01pw8cp7y4frla90gnpv622d6bi6aayi03iqlkb8gdjklji2pk";
       };
     };
     "rimraf-2.7.1" = {
@@ -1117,7 +1117,7 @@ let
       version = "2.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
-        sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==";
+        sha512 = "3ixwnv4h7x38jd12vyzhx6m6adnfhz1zv881allalyqs8sy3q3zgwldngk4cqslnn2d46l0g91yz8wprmzcsvas9573vp8al9ldns5r";
       };
     };
     "safe-buffer-5.1.2" = {
@@ -1126,7 +1126,7 @@ let
       version = "5.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
-        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+        sha512 = "3xbm0dkya4bc3zwfwpdzbl8ngq0aai5ihlp2v3s39y7162c7wyvv9izj3g8hv6dy6vm2lq48lmfzygk0kxwbjb6xic7k4a329j99p8r";
       };
     };
     "safer-buffer-2.1.2" = {
@@ -1135,7 +1135,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+        sha512 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1";
       };
     };
     "sax-1.2.4" = {
@@ -1144,7 +1144,7 @@ let
       version = "1.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
-        sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==";
+        sha512 = "1dn291mjsda42w8kldlbmngk6dhjxfbvvd5lckyqmwbjaj6069iq3wx0nvcfglwnpddz2qa93lzf4hv77iz43bd2qixa079sjzl799n";
       };
     };
     "semver-5.7.1" = {
@@ -1153,7 +1153,7 @@ let
       version = "5.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
-        sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
+        sha512 = "0cl68vp0ymkjpvim4s24v3awyk37d1bfbqrqv4ybwfi8yxga3d8fma2d6bh8dd4i2dsfwca324vaxm5dms61kdlmihdarfgzw6rmaxi";
       };
     };
     "semver-diff-2.1.0" = {
@@ -1198,7 +1198,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz";
-        sha512 = "lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==";
+        sha512 = "3qslnh3c2x2g8lar94rladm2rz692d5ds1bp1cpl223jf67jnazl9ipy4n17n7vqvgwimij36gz740nfqr5pyxq8x6n02rd4xj89gcn";
       };
     };
     "spdx-exceptions-2.2.0" = {
@@ -1207,7 +1207,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
-        sha512 = "2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==";
+        sha512 = "12c442riig2hk7014ahh40chwirmmsl9dr4cnm2dr2bdbv1lnal8xxwsfx403pqkx7ib06gm2hyyd98kn30kxanjm92yai5y44h0x6r";
       };
     };
     "spdx-expression-parse-3.0.0" = {
@@ -1216,7 +1216,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
-        sha512 = "Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==";
+        sha512 = "351djgqvsgqmfg6h764c2k09dmixczw5073jirm8km6i1yym4xjrzc7g5ckwkidi3gls7s910m4ahl8sh37dsb478j8j3sigbfq63k2";
       };
     };
     "spdx-license-ids-3.0.5" = {
@@ -1225,7 +1225,7 @@ let
       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==";
+        sha512 = "3sk6sk6r05ikn5qslbh04h54mv4a34wn4d76s800h94padnjydfvvq73ij6jh81yrigspyr50ay878jjwpj2mcq38br371jkb6mdq97";
       };
     };
     "speakingurl-14.0.1" = {
@@ -1234,7 +1234,7 @@ let
       version = "14.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz";
-        sha512 = "1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==";
+        sha512 = "2nmh1645i59b0ij75rjrps837iipz5m67bwbv5hfn34wjcvzwsrysvdwd1ykdbd1njwazh8prbqsm0dm4lh8sb1r3l0bnmgpfzriwyl";
       };
     };
     "sprintf-js-1.0.3" = {
@@ -1261,7 +1261,7 @@ let
       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==";
+        sha512 = "315yd4vzwrwk3vwj1klf46y1cj2jbvf88066y2rnwhksb98phj46jkxixbwsp3h607w7czy7cby522s7sx8mvspdpdm3s72y2ga3x4z";
       };
     };
     "strip-ansi-3.0.1" = {
@@ -1315,7 +1315,7 @@ let
       version = "4.4.13";
       src = fetchurl {
         url = "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz";
-        sha512 = "w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==";
+        sha512 = "10gwhmgx7fh619zv48r2lnm42qr7rw4qa9ph7142rizcn8in9dpi49jbmmv8ism60rcg1a7b4103r598jngi1rcn50sw7b8n1570rf3";
       };
     };
     "timed-out-3.1.3" = {
@@ -1387,7 +1387,7 @@ let
       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==";
+        sha512 = "09vn7gn5jp2c07pxplc11lvk7ybfaz0rp3qzflyiyhnahkfgh76bij31ll5rg01ranlmljrky2q25d1f6bbd0h23pzxxi5z93csd4hf";
       };
     };
     "wide-align-1.1.3" = {
@@ -1396,7 +1396,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
-        sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+        sha512 = "2224a32flpf40nhq6rj4idzkcdz0vx65bfxp90hd06db18l6fiqgxz1xnaygm3pbfb1a6v73hl8ryq4996b09zwwins0bqprx0hwsa0";
       };
     };
     "widest-line-1.0.0" = {
@@ -1441,7 +1441,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
-        sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
+        sha512 = "3ig31a6zfbdlrs3l77a8avpp17hajryhyq2xk4h3ayc4dmxch146rdk7q1s1jgx9qvmxq125r0xq2bvnq0rq63m75k9y7wglm0hd1bb";
       };
     };
   };
diff --git a/pkgs/misc/base16-builder/supplement.nix b/pkgs/misc/base16-builder/supplement.nix
index 05fd5e70207..8183eb1a1e8 100644
--- a/pkgs/misc/base16-builder/supplement.nix
+++ b/pkgs/misc/base16-builder/supplement.nix
@@ -10,7 +10,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
-        sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
+        sha512 = "38s4f3id97wsb0rg9nm9zvxyq0nvwrmrpa5dzvrkp36mf5ibs98b4z6lvsbrwzzs0sbcank6c7gpp06vcwp9acfhp41rzlhi3ybsxwy";
       };
     };
     "ansi-regex-2.1.1" = {
@@ -28,7 +28,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
-        sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
+        sha512 = "13mgnbmdhdq0qncijvpip1l39q1a8labcvj3hc3n1yl2zch106mdkn7p7bd5knvmfkkn1js9nd47nzyjk1himbm8ry8i8gd6mk7mlk3";
       };
     };
     "are-we-there-yet-1.1.5" = {
@@ -37,7 +37,7 @@ let
       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==";
+        sha512 = "3mizm1yfxynlhaavbimv7n9qljrbhni22v4fch6zr89x6ps0gpjcxm5yfvv05n8vc3r17hmglyswgq9w0s598xv70nnyw358q11s5p6";
       };
     };
     "balanced-match-1.0.0" = {
@@ -55,7 +55,7 @@ let
       version = "1.1.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
-        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+        sha512 = "248cnpbbf0p32h53rd3g8wzpgrkaj4p078ra1g6l16f82i6bzkvmhwqan5rk88apbll9ly1476kngd7f7z27i3b3zxpbb3064f8yaw8";
       };
     };
     "chownr-1.1.4" = {
@@ -64,7 +64,7 @@ let
       version = "1.1.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz";
-        sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
+        sha512 = "1b03acmav1awkygrda5h64pn8msd6wda119q553hik728i1j72bfqyq7yzn1x7nmw28hvg9mcyh7krsj8vwsq3karnn55mj6smip7cc";
       };
     };
     "code-point-at-1.1.0" = {
@@ -109,7 +109,7 @@ let
       version = "3.2.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
-        sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
+        sha512 = "1cyv14044rfh792n1hhsa44kk8dk95zk14w96i49gwq6g9wi6h9vn90xaragfy7rvggqvj178l5f16c78g47xgrwhjx3bp7zs6pxscr";
       };
     };
     "deep-extend-0.6.0" = {
@@ -118,7 +118,7 @@ let
       version = "0.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
-        sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
+        sha512 = "0wc0sqg1aqx864bxf8xa4j8ncrc8rcvmiaj1sp3x1np2i8hdjybzjfd0w9gbf1yasmwycwzzg1mz6smr3q42hhv4pjx2qcgwqhg3q9c";
       };
     };
     "delegates-1.0.0" = {
@@ -145,7 +145,7 @@ let
       version = "1.2.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz";
-        sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==";
+        sha512 = "1644yfnzfqikaff5s68dm4qfrblxrz68ynigkyzyixjqazxlli0svj1nxkawz35sv2vb3vjh41f1rhg0j4nr770a53fzqbjc4j94r0r";
       };
     };
     "fs.realpath-1.0.0" = {
@@ -172,7 +172,7 @@ let
       version = "7.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
-        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+        sha512 = "020qv13jbi1v4y5xavf6fw08h9svy4q9p67m4avkrrhgdjmk0c5k3h19bv7k6yn1vfxljpjw9kg81fbdg9v83cjplxvkn3v4v1v21ig";
       };
     };
     "has-unicode-2.0.1" = {
@@ -190,7 +190,7 @@ let
       version = "0.4.24";
       src = fetchurl {
         url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
-        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+        sha512 = "2n3ygx6km56rdcd5kq52bs2113xqm3vlw2kb9r7pnmxd2qhxrfahp2ngc4w7x8x76fyfpapnixnbjq1i24nc11mj6q7rghwj2fifwxz";
       };
     };
     "ignore-walk-3.0.3" = {
@@ -199,7 +199,7 @@ let
       version = "3.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz";
-        sha512 = "m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==";
+        sha512 = "0mlk9s23jc3avly1bv6s5j7hs0aafxabmgn7iqi0bjag4b03nqckvcdrgnarpmysdq8yr1rgxh6k7p82vzjj1z6hnm5ckwswg33mflv";
       };
     };
     "inflight-1.0.6" = {
@@ -217,7 +217,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
-        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+        sha512 = "30rw2i1k63pbf0n5dbwly05h95cdp1kj8c9r15gv1cwha141g61k56fx4qwsvhpm1ksnf7agch1wxirs3s0m31wbfvmcqizgrlwdywk";
       };
     };
     "ini-1.3.5" = {
@@ -226,7 +226,7 @@ let
       version = "1.3.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
-        sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==";
+        sha512 = "1rjbvf1rg5ywhnba08sgagn2qf23lab330qrqmh7d891zap3xpxcyfyj1cblpf0f0rypglcfacybzyrpd4996aa1mbc820awa33k5j5";
       };
     };
     "is-fullwidth-code-point-1.0.0" = {
@@ -253,7 +253,7 @@ let
       version = "3.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
-        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+        sha512 = "1879a3j85h92ypvb7lpv1dqpcxl49rqnbgs5la18zmj1yqhwl60c2m74254wbr5pp3znckqpkg9dvjyrz6hfz8b9vag5a3j910db4f8";
       };
     };
     "minimist-0.0.8" = {
@@ -271,7 +271,7 @@ let
       version = "1.2.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
-        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+        sha512 = "0pif0kjsr0cdm73cyicn9xdx9zkly45w4akmyfa39lkaf6lzysfr8kr145p54wjk26pbsk0w0qfdds3k4bxy4wl5l210i1b8qsngkql";
       };
     };
     "minipass-2.9.0" = {
@@ -280,7 +280,7 @@ let
       version = "2.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz";
-        sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==";
+        sha512 = "1x0k2ycn1r5fig2zy7jj5vjsc7sxdl2a8lidvzsfyhcbrmvyvlbkmb3ga6l8njclvhjz2yrcx57jn26bckzrms017zb2yan1y7d85y3";
       };
     };
     "minizlib-1.3.3" = {
@@ -289,7 +289,7 @@ let
       version = "1.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz";
-        sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==";
+        sha512 = "3slcgy5kqasjl8k1n2indaaw0k6j2ipapzxrcqyy2zrwpv8z9w2im5i8c2c73pqdgkd31rwf5bajgv4pm2i6m9jg51cfmp694w0r5p9";
       };
     };
     "mkdirp-0.5.1" = {
@@ -307,7 +307,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
-        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+        sha512 = "3dqfiiw6nxvvi24fndbzlccnjcas99bsd1kz5m2r78lzgpp6vx57jzbmxq3k1m7bsw88rwra0n4848l720fxxn5x20djck3wp3hysdh";
       };
     };
     "needle-2.4.0" = {
@@ -316,7 +316,7 @@ let
       version = "2.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz";
-        sha512 = "4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==";
+        sha512 = "1k9220dhvc3m78hzd1xh2135p19z15y964hmhsajayvj11j2p3rv5w0gii7lmgr8w57bqkjg0xby5f1gkcph60kxvyr52z6pp7g0yg0";
       };
     };
     "nopt-4.0.3" = {
@@ -325,7 +325,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz";
-        sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==";
+        sha512 = "0mb9va0ag1n8v5c2lhza37prcw4iyrmbw5n6yglk1kcg95xwqi9ng5dqwr17h63sl5dba2rnwwrzz7dnfvkx5z75h4j7d9kag0qdxha";
       };
     };
     "npm-bundled-1.1.1" = {
@@ -334,7 +334,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz";
-        sha512 = "gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==";
+        sha512 = "1yb9l8jnxwicz0fsdv434y395b0x11mlc1mgbbhnx21pvs58a4p43f0swvi6q0rakdgzdiyf0yylnmb3i41hb052903m1cgcy01zac2";
       };
     };
     "npm-normalize-package-bin-1.0.1" = {
@@ -343,7 +343,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz";
-        sha512 = "EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==";
+        sha512 = "149ypqf1mxqw0gcjr4xf4h65q6vx41z1abm27cwbsj7fn07wsx588f9gsykjzfybwrn4mmr6lyaj825w3yyhbgaagmrybw9brzdmxqh";
       };
     };
     "npm-packlist-1.4.8" = {
@@ -352,7 +352,7 @@ let
       version = "1.4.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz";
-        sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==";
+        sha512 = "3s585jx92awjb52bs1jwq8r4swv8mgfl685if5wwpbsigwb362adizzpi58a5kgqfpf605mf6a0v7074mc9qpcn2ypqgr7f1a1ikq77";
       };
     };
     "npmlog-4.1.2" = {
@@ -361,7 +361,7 @@ let
       version = "4.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz";
-        sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==";
+        sha512 = "2967mavp7zw0aawf5fadqf4pmn7vy5gya1yx2s9wwppvivhd9q4mpdnszfqvd7p6yks649bwbpj8iviw86g0hpp4f93d5ca7dmjmrfs";
       };
     };
     "number-is-nan-1.0.1" = {
@@ -415,7 +415,7 @@ let
       version = "0.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz";
-        sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
+        sha512 = "3ddw0y41pxv08ls5xhmq1bi81hppjbr45k78cjfx99vznh5znrj5g1b1wab9caj1mqlsvmfms0zm9cfb47ygm0d8wv5fccx8049q9fh";
       };
     };
     "path-is-absolute-1.0.1" = {
@@ -433,7 +433,7 @@ let
       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==";
+        sha512 = "1mgan8li4i2l4y7lsr7snks85n6xg5x693cqmzpid3fkk9br7v5xzgvh1zlfs08zkxn6s0n6qhykr64mszjfyxd77dhmdi1jhx992yy";
       };
     };
     "rc-1.2.8" = {
@@ -442,7 +442,7 @@ let
       version = "1.2.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
-        sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
+        sha512 = "0xhy1n9n3y6cp28f8f0f2mi0xzc7ay1g5nhbp64fyvcwv9q30zq2zvyc5q2d0al8aa0hx101yq2y6d2ln4r5jxnqifh1pd3la1ccxnb";
       };
     };
     "readable-stream-2.3.7" = {
@@ -451,7 +451,7 @@ let
       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==";
+        sha512 = "0zrh6gjjzwwycwydra51xcrgjgzyqv6dq38bfpwzmlqn702mwb4nj4sjjn499rycqndfk6rby0dksnq72x8pcbvqv0b2893mvq6if0i";
       };
     };
     "rimraf-2.7.1" = {
@@ -460,7 +460,7 @@ let
       version = "2.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
-        sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==";
+        sha512 = "3ixwnv4h7x38jd12vyzhx6m6adnfhz1zv881allalyqs8sy3q3zgwldngk4cqslnn2d46l0g91yz8wprmzcsvas9573vp8al9ldns5r";
       };
     };
     "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 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+        sha512 = "3xbm0dkya4bc3zwfwpdzbl8ngq0aai5ihlp2v3s39y7162c7wyvv9izj3g8hv6dy6vm2lq48lmfzygk0kxwbjb6xic7k4a329j99p8r";
       };
     };
     "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 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+        sha512 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1";
       };
     };
     "sax-1.2.4" = {
@@ -487,7 +487,7 @@ let
       version = "1.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
-        sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==";
+        sha512 = "1dn291mjsda42w8kldlbmngk6dhjxfbvvd5lckyqmwbjaj6069iq3wx0nvcfglwnpddz2qa93lzf4hv77iz43bd2qixa079sjzl799n";
       };
     };
     "semver-5.7.1" = {
@@ -496,7 +496,7 @@ let
       version = "5.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
-        sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
+        sha512 = "0cl68vp0ymkjpvim4s24v3awyk37d1bfbqrqv4ybwfi8yxga3d8fma2d6bh8dd4i2dsfwca324vaxm5dms61kdlmihdarfgzw6rmaxi";
       };
     };
     "set-blocking-2.0.0" = {
@@ -532,7 +532,7 @@ let
       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==";
+        sha512 = "315yd4vzwrwk3vwj1klf46y1cj2jbvf88066y2rnwhksb98phj46jkxixbwsp3h607w7czy7cby522s7sx8mvspdpdm3s72y2ga3x4z";
       };
     };
     "strip-ansi-3.0.1" = {
@@ -559,7 +559,7 @@ let
       version = "4.4.13";
       src = fetchurl {
         url = "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz";
-        sha512 = "w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==";
+        sha512 = "10gwhmgx7fh619zv48r2lnm42qr7rw4qa9ph7142rizcn8in9dpi49jbmmv8ism60rcg1a7b4103r598jngi1rcn50sw7b8n1570rf3";
       };
     };
     "util-deprecate-1.0.2" = {
@@ -577,7 +577,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
-        sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+        sha512 = "2224a32flpf40nhq6rj4idzkcdz0vx65bfxp90hd06db18l6fiqgxz1xnaygm3pbfb1a6v73hl8ryq4996b09zwwins0bqprx0hwsa0";
       };
     };
     "wrappy-1.0.2" = {
@@ -595,7 +595,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
-        sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
+        sha512 = "3ig31a6zfbdlrs3l77a8avpp17hajryhyq2xk4h3ayc4dmxch146rdk7q1s1jgx9qvmxq125r0xq2bvnq0rq63m75k9y7wglm0hd1bb";
       };
     };
   };
@@ -607,7 +607,7 @@ in
     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==";
+      sha512 = "32drv6q9sh4i2ff2djd1dhxxxiaiymmgycbm12wpkz9vxspnldxgmppf9sazp3c72771a1p5s4kkzgwn4w1csyz9bn4zdbdnq5w6azq";
     };
     dependencies = [
       sources."abbrev-1.1.1"
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 a1420a0428b..2e587cbd044 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.11";
+  version = "1.1.15";
 
   src = fetchurl {
     # To find new versions, visit
@@ -10,11 +10,11 @@ stdenv.mkDerivation rec {
     # some printer like for instance "WF-7210" to get to the most recent
     # version.  
     # NOTE: Don't forget to update the webarchive link too!
-    urls = [ 
-      "https://download3.ebz.epson.net/dsc/f/03/00/11/01/98/8ff121831d0a6be76e86b87c78178f3c93df6d0f/epson-inkjet-printer-escpr2-1.1.11-1lsb3.2.src.rpm"
-      "https://web.archive.org/web/20200425154102/https://download3.ebz.epson.net/dsc/f/03/00/11/01/98/8ff121831d0a6be76e86b87c78178f3c93df6d0f/epson-inkjet-printer-escpr2-1.1.11-1lsb3.2.src.rpm"
+    urls = [
+      "https://download3.ebz.epson.net/dsc/f/03/00/11/56/43/b1a6f1193e073c4c049da9404806c61052b62419/epson-inkjet-printer-escpr2-1.1.15-1lsb3.2.src.rpm"
+      "https://web.archive.org/web/20200726093746if_/https://download3.ebz.epson.net/dsc/f/03/00/11/56/43/b1a6f1193e073c4c049da9404806c61052b62419/epson-inkjet-printer-escpr2-1.1.15-1lsb3.2.src.rpm"
     ];
-    sha256 = "1gcdzmqli7jycljm66mdssivb3lk223ih6zg0l3lyn7hj2gbkinm";
+    sha256 = "0a6pzpx281dv9g148jp60l5z0brf260zb54dq6g1ixz4bmjz3f1f";
   };
 
   patches = [ ./cups-filter-ppd-dirs.patch ];
diff --git a/pkgs/misc/drivers/hplip/3.18.5.nix b/pkgs/misc/drivers/hplip/3.18.5.nix
index 80cd39b9233..f9064720fb6 100644
--- a/pkgs/misc/drivers/hplip/3.18.5.nix
+++ b/pkgs/misc/drivers/hplip/3.18.5.nix
@@ -199,6 +199,11 @@ python2Packages.buildPythonApplication {
     done
   '';
 
+  # There are some binaries there, which reference gcc-unwrapped otherwise.
+  stripDebugList = [
+    "share/hplip"
+  ];
+
   postFixup = ''
     substituteInPlace $out/etc/hp/hplip.conf --replace /usr $out
     # Patch udev rules:
diff --git a/pkgs/misc/drivers/hplip/default.nix b/pkgs/misc/drivers/hplip/default.nix
index b1853e28589..afd1f8f6fe4 100644
--- a/pkgs/misc/drivers/hplip/default.nix
+++ b/pkgs/misc/drivers/hplip/default.nix
@@ -4,6 +4,8 @@
 , dbus, file, ghostscript, usbutils
 , net-snmp, openssl, perl, nettools
 , bash, coreutils, utillinux
+# To remove references to gcc-unwrapped
+, removeReferencesTo, qt5
 , withQt5 ? true
 , withPlugin ? false
 , withStaticPPDInstall ? false
@@ -12,16 +14,16 @@
 let
 
   name = "hplip-${version}";
-  version = "3.20.3";
+  version = "3.20.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/hplip/${name}.tar.gz";
-    sha256 = "0sh6cg7yjc11x1cm4477iaslj9n8ksghs85hqwgfbk7m5b2pw2a1";
+    sha256 = "004bbd78487b7803cdcf2a96b00de938797227068c4de43ee7ad7d174c4e475a";
   };
 
   plugin = fetchurl {
     url = "https://developers.hp.com/sites/default/files/${name}-plugin.run";
-    sha256 = "13xyv30jqjysfk7gh0gyn7qj0pb0qvk2rlbhm85a3lw7bjycal8g";
+    sha256 = "ff3dedda3158be64b985efbf636890ddda5b271ae1f1fbd788219e1344a9c2e7";
   };
 
   hplipState = substituteAll {
@@ -65,12 +67,15 @@ python3Packages.buildPythonApplication {
     zlib
   ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [
+    pkgconfig
+    removeReferencesTo
+  ] ++ stdenv.lib.optional withQt5 qt5.wrapQtAppsHook;
 
   pythonPath = with python3Packages; [
     dbus
     pillow
-    pygobject2
+    pygobject3
     reportlab
     usbutils
     sip
@@ -216,8 +221,18 @@ python3Packages.buildPythonApplication {
       --replace /usr/bin/nohup "" \
       --replace {,${utillinux}/bin/}logger \
       --replace {/usr,$out}/bin
+    remove-references-to -t ${stdenv.cc.cc} $(readlink -f $out/lib/*.so)
+  '' + stdenv.lib.optionalString withQt5 ''
+    for f in $out/bin/hp-*;do
+      wrapQtApp $f
+    done
   '';
 
+  # There are some binaries there, which reference gcc-unwrapped otherwise.
+  stripDebugList = [
+    "share/hplip" "lib/cups/backend" "lib/cups/filter" python3Packages.python.sitePackages "lib/sane"
+  ];
+
   meta = with stdenv.lib; {
     description = "Print, scan and fax HP drivers for Linux";
     homepage = "https://developers.hp.com/hp-linux-imaging-and-printing";
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/drivers/xow/default.nix b/pkgs/misc/drivers/xow/default.nix
index 8702c480457..785f7f396e9 100644
--- a/pkgs/misc/drivers/xow/default.nix
+++ b/pkgs/misc/drivers/xow/default.nix
@@ -1,14 +1,19 @@
-{ stdenv, fetchFromGitHub, libusb1 }:
+{ stdenv, cabextract, fetchurl, fetchFromGitHub, libusb1 }:
 
 stdenv.mkDerivation rec {
   pname = "xow";
-  version = "0.4";
+  version = "0.5";
 
   src = fetchFromGitHub {
     owner = "medusalix";
     repo = "xow";
     rev = "v${version}";
-    sha256 = "1xkwcx2gqip9v2h3zjmrn7sgcck3midl5alhsmr3zivgdipamynv";
+    sha256 = "071r2kx44k1sc49cad3i607xg618mf34ki1ykr5lnfx9y6qyz075";
+  };
+
+  firmware = fetchurl {
+    url = "http://download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/07/1cd6a87c-623f-4407-a52d-c31be49e925c_e19f60808bdcbfbd3c3df6be3e71ffc52e43261e.cab";
+    sha256 = "013g1zngxffavqrk5jy934q3bdhsv6z05ilfixdn8dj0zy26lwv5";
   };
 
   makeFlags = [
@@ -20,7 +25,14 @@ stdenv.mkDerivation rec {
     "MODPDIR=${placeholder ''out''}/lib/modprobe.d"
     "SYSDDIR=${placeholder ''out''}/lib/systemd/system"
   ];
+
+  postUnpack = ''
+    cabextract -F FW_ACC_00U.bin ${firmware}
+    mv FW_ACC_00U.bin source/firmware.bin
+  '';
+
   enableParallelBuilding = true;
+  nativeBuildInputs = [ cabextract ];
   buildInputs = [ libusb1 ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/misc/emulators/atari++/default.nix b/pkgs/misc/emulators/atari++/default.nix
index 80765f458f8..9d7a477be61 100644
--- a/pkgs/misc/emulators/atari++/default.nix
+++ b/pkgs/misc/emulators/atari++/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, libSM, libX11, libICE, SDL, alsaLib, gcc-unwrapped, libXext }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   pname = "atari++";
   version = "1.83";
 
diff --git a/pkgs/misc/emulators/atari800/default.nix b/pkgs/misc/emulators/atari800/default.nix
index bb6323d18e0..6c846e2f0ab 100644
--- a/pkgs/misc/emulators/atari800/default.nix
+++ b/pkgs/misc/emulators/atari800/default.nix
@@ -2,7 +2,7 @@
 , unzip, zlib, SDL, readline, libGLU, libGL, libX11 }:
 
 with stdenv.lib;
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   pname = "atari800";
   version = "4.2.0";
 
diff --git a/pkgs/misc/emulators/attract-mode/default.nix b/pkgs/misc/emulators/attract-mode/default.nix
index 18c78c84d6c..ac87190b050 100644
--- a/pkgs/misc/emulators/attract-mode/default.nix
+++ b/pkgs/misc/emulators/attract-mode/default.nix
@@ -1,4 +1,4 @@
-{ expat, fetchFromGitHub, ffmpeg, fontconfig, freetype, libarchive, libjpeg
+{ expat, fetchFromGitHub, ffmpeg_3, fontconfig, freetype, libarchive, libjpeg
 , libGLU, libGL, openal, pkgconfig, sfml, stdenv, zlib
 }:
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [
-    expat ffmpeg fontconfig freetype libarchive libjpeg libGLU libGL openal sfml zlib
+    expat ffmpeg_3 fontconfig freetype libarchive libjpeg libGLU libGL openal sfml zlib
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/misc/emulators/ccemux/default.nix b/pkgs/misc/emulators/ccemux/default.nix
index fc5d4c81388..2313a63dc69 100644
--- a/pkgs/misc/emulators/ccemux/default.nix
+++ b/pkgs/misc/emulators/ccemux/default.nix
@@ -29,7 +29,7 @@ let
     comment = "A modular ComputerCraft emulator";
     desktopName = "CCEmuX";
     genericName = "ComputerCraft Emulator";
-    categories = "Application;Emulator;";
+    categories = "Emulator;";
   };
 in
 
diff --git a/pkgs/misc/emulators/dolphin-emu/default.nix b/pkgs/misc/emulators/dolphin-emu/default.nix
index b460aa7a485..0053079d992 100644
--- a/pkgs/misc/emulators/dolphin-emu/default.nix
+++ b/pkgs/misc/emulators/dolphin-emu/default.nix
@@ -4,7 +4,7 @@
 , pkgconfig
 , cmake
 , bluez
-, ffmpeg
+, ffmpeg_3
 , libao
 , gtk2
 , glib
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     bluez
-    ffmpeg
+    ffmpeg_3
     libao
     libGLU
     libGL
diff --git a/pkgs/misc/emulators/dolphin-emu/master.nix b/pkgs/misc/emulators/dolphin-emu/master.nix
index aa77356600b..3865a4a7060 100644
--- a/pkgs/misc/emulators/dolphin-emu/master.nix
+++ b/pkgs/misc/emulators/dolphin-emu/master.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, makeDesktopItem, pkgconfig, cmake
-, wrapQtAppsHook, qtbase, bluez, ffmpeg, libao, libGLU, libGL, pcre, gettext
+, wrapQtAppsHook, qtbase, bluez, ffmpeg_3, libao, libGLU, libGL, pcre, gettext
 , libXrandr, libusb1, lzo, libpthreadstubs, libXext, libXxf86vm, libXinerama
 , libSM, libXdmcp, readline, openal, udev, libevdev, portaudio, curl, alsaLib
 , miniupnpc, enet, mbedtls, soundtouch, sfml
@@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
   ++ lib.optional stdenv.isLinux wrapQtAppsHook;
 
   buildInputs = [
-    curl ffmpeg libao libGLU libGL pcre gettext libpthreadstubs libpulseaudio
+    curl ffmpeg_3 libao libGLU libGL pcre gettext libpthreadstubs libpulseaudio
     libXrandr libXext libXxf86vm libXinerama libSM readline openal libXdmcp lzo
     portaudio libusb1 libpng hidapi miniupnpc enet mbedtls soundtouch sfml
     qtbase
diff --git a/pkgs/misc/emulators/dosbox/default.nix b/pkgs/misc/emulators/dosbox/default.nix
index b70f0e058c0..160c8733ff5 100644
--- a/pkgs/misc/emulators/dosbox/default.nix
+++ b/pkgs/misc/emulators/dosbox/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     comment = "x86 emulator with internal DOS";
     desktopName = "DOSBox";
     genericName = "DOS emulator";
-    categories = "Application;Emulator;";
+    categories = "Emulator;";
   };
 
   postInstall = ''
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 69593760612..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 = "220";
+  minorVersion = "223";
 
   desktopItem = makeDesktopItem {
     name = "MAME";
@@ -26,7 +26,7 @@ in mkDerivation {
     owner = "mamedev";
     repo = "mame";
     rev = "mame${majorVersion}${minorVersion}";
-    sha256 = "0ddmq3lagk7f1wkgybckcci4sigcqn1gzafggnnqjzq2q8viww0c";
+    sha256 = "1lh5cmz4f6km2d8fn3m9ns7fc4wzbdp71v0s6vjcynycpyhy3yl1";
   };
 
   hardeningDisable = [ "fortify" ];
diff --git a/pkgs/misc/emulators/mednafen/default.nix b/pkgs/misc/emulators/mednafen/default.nix
index a8ab7e908f2..e356e636c5a 100644
--- a/pkgs/misc/emulators/mednafen/default.nix
+++ b/pkgs/misc/emulators/mednafen/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mednafen";
-  version = "1.24.2";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "https://mednafen.github.io/releases/files/${pname}-${version}.tar.xz";
-    sha256 = "0v3w0miyz86ihcir7ab82zjfklp550pk6g9xjxcx6mmvhp9dws8i";
+    sha256 = "03zplcfvmnnv7grhacmr1zy789pb2wda36wylmzmar23g0zqbsix";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/misc/emulators/melonDS/default.nix b/pkgs/misc/emulators/melonDS/default.nix
new file mode 100644
index 00000000000..94fbeba0e07
--- /dev/null
+++ b/pkgs/misc/emulators/melonDS/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, SDL2, gtk3, libpcap, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "melonDS";
+  version = "0.8.3";
+  ## When updating to the release after 0.8.3,
+  ##  - Uncomment:
+  ##      cmakeFlags = [ "-UUNIX_PORTABLE" ];
+  ##  - Remove the postInstall, since cmake should then take care of installing icons, .desktop file, and romlist.bin
+  ##    (see https://github.com/Arisotura/melonDS/pull/546)
+
+  src = fetchFromGitHub {
+    owner = "Arisotura";
+    repo = pname;
+    rev = version;
+    sha256 = "1lqmfwjpkdqfkns1aaxlp4yrg6i0r66mxfr4rrj7b5286k44hqwn";
+  };
+
+  enableParallelBuilding = true;
+  nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook ];
+  buildInputs = [ SDL2 gtk3 libpcap ];
+
+  postInstall = ''
+    install -Dm644 -t $out/share/melonDS/ ../romlist.bin
+    install -Dm644 -t $out/share/applications/ ../flatpak/*.desktop
+
+    for i in ../icon/melon_*.png; do
+      d="''${i##*_}"
+      d="$out/share/icons/hicolor/''${d%.png}/apps"
+      install -D $i "$d/net.kuribo64.melonds.png"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://melonds.kuribo64.net/";
+    description = "Work in progress Nintendo DS emulator";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ artemist benley ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/misc/emulators/mgba/default.nix b/pkgs/misc/emulators/mgba/default.nix
index 5611b344cb1..73845581b1b 100644
--- a/pkgs/misc/emulators/mgba/default.nix
+++ b/pkgs/misc/emulators/mgba/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, makeDesktopItem, wrapQtAppsHook, pkgconfig
-, cmake, epoxy, libzip, libelf, libedit, ffmpeg, SDL2, imagemagick
+, cmake, epoxy, libzip, libelf, libedit, ffmpeg_3, SDL2, imagemagick
 , qtbase, qtmultimedia, qttools, minizip }:
 
 let
@@ -15,20 +15,20 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "mgba";
-  version = "0.8.1";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "mgba-emu";
     repo = "mgba";
     rev = version;
-    sha256 = "1if82mfaak3696w5d5yshynpzywrxgvg3ifdfi2rwlpvq1gpd429";
+    sha256 = "0rwlfjdr0rzbq4kaplvwsgyb8xq6nrzxss2c8xrgw9hqw3ymx4s3";
   };
 
   enableParallelBuilding = true;
   nativeBuildInputs = [ wrapQtAppsHook pkgconfig cmake ];
 
   buildInputs = [
-    epoxy libzip libelf libedit ffmpeg SDL2 imagemagick
+    epoxy libzip libelf libedit ffmpeg_3 SDL2 imagemagick
     qtbase qtmultimedia qttools minizip
   ];
 
diff --git a/pkgs/misc/emulators/np2kai/default.nix b/pkgs/misc/emulators/np2kai/default.nix
new file mode 100644
index 00000000000..245bad1d535
--- /dev/null
+++ b/pkgs/misc/emulators/np2kai/default.nix
@@ -0,0 +1,196 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, enable16Bit ? true
+, enable32Bit ? true
+
+, enableSDL ? true
+, withSDLVersion ? "2"
+, SDL
+, SDL_ttf
+, SDL_mixer
+, SDL2
+, SDL2_ttf
+, SDL2_mixer
+
+, enableX11 ? stdenv.hostPlatform.isLinux
+, automake
+, autoconf
+, autoconf-archive
+, libtool
+, pkg-config
+, unzip
+, gtk2
+, libusb1
+, libXxf86vm
+, nasm
+, libICE
+, libSM
+
+  # HAXM build succeeds but the binary segfaults, seemingly due to the missing HAXM kernel module
+  # Enable once there is a HAXM kernel module option in NixOS? Or somehow bind it to the system kernel having HAXM?
+  # Or leave it disabled by default?
+  # https://github.com/intel/haxm/blob/master/docs/manual-linux.md
+, enableHAXM ? false
+}:
+
+assert lib.assertMsg (enable16Bit || enable32Bit)
+  "Must enable 16-Bit and/or 32-Bit system variant.";
+assert lib.assertMsg (enableSDL || enableX11)
+  "Must enable SDL and/or X11 graphics interfaces.";
+assert lib.assertOneOf "withSDLVersion" withSDLVersion [ "1" "2" ];
+assert enableHAXM -> (lib.assertMsg enableX11
+  "Must enable X11 graphics interface for HAXM build.");
+let
+  inherit (lib) optional optionals optionalString;
+  inherit (lib.strings) concatStringsSep concatMapStringsSep;
+  isSDL2 = (withSDLVersion == "2");
+  sdlInfix = optionalString isSDL2 "2";
+  sdlDeps1 = [
+    SDL
+    SDL_ttf
+    SDL_mixer
+  ];
+  sdlDeps2 = [
+    SDL2
+    SDL2_ttf
+    SDL2_mixer
+  ];
+  sdlDepsBuildonly = if isSDL2 then sdlDeps1 else sdlDeps2;
+  sdlDepsTarget = if isSDL2 then sdlDeps2 else sdlDeps1;
+  sdlMakefileSuffix =
+    if stdenv.hostPlatform.isWindows then "win"
+    else if stdenv.hostPlatform.isDarwin then "mac"
+    else "unix";
+  sdlMakefiles = concatMapStringsSep " " (x: x + "." + sdlMakefileSuffix)
+    (optionals enable16Bit [
+      "Makefile"
+    ] ++ optionals enable32Bit [
+      "Makefile21"
+    ]);
+  sdlBuildFlags = concatStringsSep " "
+    (optionals enableSDL [
+      "SDL_VERSION=${withSDLVersion}"
+    ]);
+  sdlBins = concatStringsSep " "
+    (optionals enable16Bit [
+      "np2kai"
+    ] ++ optionals enable32Bit [
+      "np21kai"
+    ]);
+  x11ConfigureFlags = concatStringsSep " "
+    ((
+      if ((enableHAXM && (enable16Bit || enable32Bit)) || (enable16Bit && enable32Bit)) then [
+        "--enable-build-all"
+      ] else if enableHAXM then [
+        "--enable-haxm"
+      ] else if enable32Bit then [
+        "--enable-ia32"
+      ] else [ ]
+    ) ++ optionals (!isSDL2) [
+      "--enable-sdl"
+      "--enable-sdlmixer"
+      "--enable-sdlttf"
+
+      "--enable-sdl2=no"
+      "--enable-sdl2mixer=no"
+      "--enable-sdl2ttf=no"
+    ]);
+  x11BuildFlags = concatStringsSep " " [
+    "SDL2_CONFIG=sdl2-config"
+    "SDL_CONFIG=sdl-config"
+    "SDL_CFLAGS=\"$(sdl${sdlInfix}-config --cflags)\""
+    "SDL_LIBS=\"$(sdl${sdlInfix}-config --libs) -lSDL${sdlInfix}_mixer -lSDL${sdlInfix}_ttf\""
+  ];
+  x11Bins = concatStringsSep " "
+    (optionals enable16Bit [
+      "xnp2kai"
+    ] ++ optionals enable32Bit [
+      "xnp21kai"
+    ] ++ optionals enableHAXM [
+      "xnp21kai_haxm"
+    ]);
+in
+stdenv.mkDerivation rec {
+  pname = "np2kai";
+  version = "0.86rev22"; #update src.rev to commit rev accordingly
+
+  src = fetchFromGitHub rec {
+    owner = "AZO234";
+    repo = "NP2kai";
+    rev = "4a317747724669343e4c33ebdd34783fb7043221";
+    sha256 = "0kxysxhx6jyk82mx30ni0ydzmwdcbnlxlnarrlq018rsnwb4md72";
+  };
+
+  configurePhase = ''
+    export GIT_VERSION=${builtins.substring 0 7 src.rev}
+    buildFlags="$buildFlags ''${enableParallelBuilding:+-j$NIX_BUILD_CORES -l$NIX_BUILD_CORES}"
+  '' + optionalString enableX11 ''
+    cd x11
+    substituteInPlace Makefile.am \
+      --replace 'GIT_VERSION :=' 'GIT_VERSION ?='
+    ./autogen.sh ${x11ConfigureFlags}
+    ./configure ${x11ConfigureFlags}
+    cd ..
+  '';
+
+  nativeBuildInputs = sdlDepsBuildonly
+    ++ optionals enableX11 [
+    automake
+    autoconf
+    autoconf-archive
+    libtool
+    pkg-config
+    unzip
+    nasm
+  ];
+
+  buildInputs = sdlDepsTarget
+    ++ optionals enableX11 [
+    gtk2
+    libICE
+    libSM
+    libusb1
+    libXxf86vm
+  ];
+
+  enableParallelBuilding = true;
+
+  buildPhase = optionalString enableSDL ''
+    cd sdl2
+    for mkfile in ${sdlMakefiles}; do
+      substituteInPlace $mkfile \
+        --replace 'GIT_VERSION :=' 'GIT_VERSION ?='
+      echo make -f $mkfile $buildFlags ${sdlBuildFlags} clean
+      make -f $mkfile $buildFlags ${sdlBuildFlags} clean
+      make -f $mkfile $buildFlags ${sdlBuildFlags}
+    done
+    cd ..
+  '' + optionalString enableX11 ''
+    cd x11
+    make $buildFlags ${x11BuildFlags}
+    cd ..
+  '';
+
+  installPhase = optionalString enableSDL ''
+    cd sdl2
+    for emu in ${sdlBins}; do
+      install -D -m 755 $emu $out/bin/$emu
+    done
+    cd ..
+  '' + optionalString enableX11 ''
+    cd x11
+    for emu in ${x11Bins}; do
+      install -D -m 755 $emu $out/bin/$emu
+    done
+    cd ..
+  '';
+
+  meta = with lib; {
+    description = "A PC-9801 series emulator.";
+    homepage = "https://github.com/AZO234/NP2kai";
+    license = licenses.mit;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.x86;
+  };
+}
diff --git a/pkgs/misc/emulators/openmsx/default.nix b/pkgs/misc/emulators/openmsx/default.nix
index 68b464f4d35..f0ab48aa625 100644
--- a/pkgs/misc/emulators/openmsx/default.nix
+++ b/pkgs/misc/emulators/openmsx/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     homepage = "https://openmsx.org";
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
+    license = with licenses; [ bsd2 boost gpl2 ];
   };
 }
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/ppsspp/default.nix b/pkgs/misc/emulators/ppsspp/default.nix
index b2aa81124da..a1534771550 100644
--- a/pkgs/misc/emulators/ppsspp/default.nix
+++ b/pkgs/misc/emulators/ppsspp/default.nix
@@ -1,7 +1,7 @@
 { SDL2
 , cmake
 , fetchFromGitHub
-, ffmpeg
+, ffmpeg_3
 , glew
 , lib
 , libzip
@@ -37,7 +37,7 @@ mkDerivation rec {
 
   buildInputs = [
     SDL2
-    ffmpeg
+    ffmpeg_3
     glew
     libzip
     qtbase
diff --git a/pkgs/misc/emulators/resim/default.nix b/pkgs/misc/emulators/resim/default.nix
index 81acdf81f2e..ba7ac621257 100644
--- a/pkgs/misc/emulators/resim/default.nix
+++ b/pkgs/misc/emulators/resim/default.nix
@@ -15,4 +15,6 @@ stdenv.mkDerivation {
     cp -v libresim/libarmsim.so $out/lib/libarmsim.so
     cp -v vc4emul/vc4emul $out/bin/vc4emul
   '';
+
+  meta.license = stdenv.lib.licenses.mit;
 }
diff --git a/pkgs/misc/emulators/retroarch/cores.nix b/pkgs/misc/emulators/retroarch/cores.nix
index 0ebd2b82a9a..17b1679ed5b 100644
--- a/pkgs/misc/emulators/retroarch/cores.nix
+++ b/pkgs/misc/emulators/retroarch/cores.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchgit, fetchFromGitHub, fetchFromGitLab, cmake, pkgconfig, makeWrapper, python27, python37, retroarch
 , alsaLib, fluidsynth, curl, hidapi, libGLU, gettext, glib, gtk2, portaudio, SDL, SDL_net, SDL2, SDL2_image, libGL
-, ffmpeg, pcre, libevdev, libpng, libjpeg, libzip, udev, libvorbis, snappy, which, hexdump
+, ffmpeg_3, pcre, libevdev, libpng, libjpeg, libzip, udev, libvorbis, snappy, which, hexdump
 , miniupnpc, sfml, xorg, zlib, nasm, libpcap, boost, icu, openssl
 , buildPackages }:
 
@@ -718,6 +718,25 @@ in with stdenv.lib.licenses;
     preBuild = "cd libretro";
   };
 
+  np2kai = mkLibRetroCore rec {
+    core = "np2kai";
+    src = fetchFromGitHub rec {
+      owner = "AZO234";
+      repo = "NP2kai";
+      rev = "4a317747724669343e4c33ebdd34783fb7043221";
+      sha256 = "0kxysxhx6jyk82mx30ni0ydzmwdcbnlxlnarrlq018rsnwb4md72";
+    };
+    description = "Neko Project II kai libretro port";
+    license = mit;
+    makefile = "Makefile.libretro";
+    preBuild = ''
+      cd sdl2
+      substituteInPlace ${makefile} \
+        --replace 'GIT_VERSION :=' 'GIT_VERSION ?='
+      export GIT_VERSION=${builtins.substring 0 7 src.rev}
+    '';
+  };
+
   o2em = mkLibRetroCore rec {
     core = "o2em";
     src = fetchRetro {
@@ -815,7 +834,7 @@ in with stdenv.lib.licenses;
     description = "ppsspp libretro port";
     license = gpl2;
     extraNativeBuildInputs = [ cmake pkgconfig ];
-    extraBuildInputs = [ libGLU libGL libzip ffmpeg python37 snappy xorg.libX11 ];
+    extraBuildInputs = [ libGLU libGL libzip ffmpeg_3 python37 snappy xorg.libX11 ];
     makefile = "Makefile";
     cmakeFlags = [ "-DLIBRETRO=ON -DUSE_SYSTEM_FFMPEG=ON -DUSE_SYSTEM_SNAPPY=ON -DUSE_SYSTEM_LIBZIP=ON -DOpenGL_GL_PREFERENCE=GLVND" ];
     postBuild = "mv lib/ppsspp_libretro${stdenv.hostPlatform.extensions.sharedLibrary} ppsspp_libretro${stdenv.hostPlatform.extensions.sharedLibrary}";
diff --git a/pkgs/misc/emulators/retroarch/default.nix b/pkgs/misc/emulators/retroarch/default.nix
index 28a641ec970..bfc2c338769 100644
--- a/pkgs/misc/emulators/retroarch/default.nix
+++ b/pkgs/misc/emulators/retroarch/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, which, pkgconfig, makeWrapper
-, ffmpeg, libGLU, libGL, freetype, libxml2, python3
+, ffmpeg_3, libGLU, libGL, freetype, libxml2, python3
 , libobjc, AppKit, Foundation
 , alsaLib ? null
 , libdrm ? null
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig wayland ]
                       ++ optional withVulkan makeWrapper;
 
-  buildInputs = [ ffmpeg freetype libxml2 libGLU libGL python3 SDL2 which ]
+  buildInputs = [ ffmpeg_3 freetype libxml2 libGLU libGL python3 SDL2 which ]
                 ++ optional enableNvidiaCgToolkit nvidia_cg_toolkit
                 ++ optional withVulkan vulkan-loader
                 ++ optionals stdenv.isDarwin [ libobjc AppKit Foundation ]
@@ -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/rpcs3/default.nix b/pkgs/misc/emulators/rpcs3/default.nix
index 4e022b2868f..f71420674e5 100644
--- a/pkgs/misc/emulators/rpcs3/default.nix
+++ b/pkgs/misc/emulators/rpcs3/default.nix
@@ -1,5 +1,6 @@
 { mkDerivation, lib, fetchgit, cmake, pkgconfig, git
-, qtbase, qtquickcontrols, openal, glew, vulkan-loader, libpng, ffmpeg, libevdev, python3
+, qtbase, qtquickcontrols, openal, glew, vulkan-headers, vulkan-loader, libpng
+, ffmpeg, libevdev, python3
 , pulseaudioSupport ? true, libpulseaudio
 , waylandSupport ? true, wayland
 , alsaSupport ? true, alsaLib
@@ -15,7 +16,7 @@ mkDerivation {
 
   src = fetchgit {
     url = "https://github.com/RPCS3/rpcs3";
-    rev = "341fdf7eb14763fd06e2eab9a4b2b8f1adf9fdbd";
+    rev = "v${majorVersion}";
     sha256 = "1qx97zkkjl6bmv5rhfyjqynbz0v8h40b2wxqnl59g287wj0yk3y1";
   };
 
@@ -36,7 +37,8 @@ mkDerivation {
   nativeBuildInputs = [ cmake pkgconfig git ];
 
   buildInputs = [
-    qtbase qtquickcontrols openal glew vulkan-loader libpng ffmpeg libevdev python3
+    qtbase qtquickcontrols openal glew vulkan-headers vulkan-loader libpng ffmpeg
+    libevdev python3
   ] ++ lib.optional pulseaudioSupport libpulseaudio
     ++ lib.optional alsaSupport alsaLib
     ++ lib.optional waylandSupport wayland;
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/stella/default.nix b/pkgs/misc/emulators/stella/default.nix
index 14189e5b387..4c657fc30bb 100644
--- a/pkgs/misc/emulators/stella/default.nix
+++ b/pkgs/misc/emulators/stella/default.nix
@@ -4,13 +4,13 @@ with stdenv.lib;
 stdenv.mkDerivation rec {
 
   pname = "stella";
-  version = "6.1.2";
+  version = "6.2.1";
 
   src = fetchFromGitHub {
     owner = "stella-emu";
     repo = "stella";
     rev = version;
-    sha256 = "0m4vdgn7gqhga7hamy4djnlkfgz78gfkmg8by3mai5lw0cps7hr1";
+    sha256 = "1yhszswwg217x8d2qlcasi9l97y1z6w1pgliys4p27zv5b1ygy7p";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/misc/emulators/vice/default.nix b/pkgs/misc/emulators/vice/default.nix
index ca3149785a4..c80d820059f 100644
--- a/pkgs/misc/emulators/vice/default.nix
+++ b/pkgs/misc/emulators/vice/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     comment = "Commodore 64 emulator";
     desktopName = "VICE";
     genericName = "Commodore 64 emulator";
-    categories = "Application;Emulator;";
+    categories = "Emulator;";
   };
 
   preBuild = ''
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index 964e08674ca..f669c71c677 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.5";
+    version = "5.14";
     url = "https://dl.winehq.org/wine/source/5.x/wine-${version}.tar.xz";
-    sha256 = "1z7mvl6fgk7cg8vmy157r8azcz89srnckbzvsc6cva7a1fdi7qx0";
+    sha256 = "1vy9gyvf05vkysgvp4kq4qd116nvif69di55x3dnf3p96wsn2hpl";
     inherit (stable) mono gecko32 gecko64;
   };
 
   staging = fetchFromGitHub rec {
     # https://github.com/wine-staging/wine-staging/releases
     inherit (unstable) version;
-    sha256 = "0wcj73xcxsk5897m5fg14cjir2md167m09jjjv9z9n6157bfr9fw";
+    sha256 = "0cvsasnidbg77dc2vjrw708rpy2jqdir9imqjcjppa4h1k8a2wcs";
     owner = "wine-staging";
     repo = "wine-staging";
     rev = "v${version}";
+
+    # Just keep list empty, if current release haven't broken patchsets
+    disabledPatchsets = [ "xactengine-initial" ];
   };
 
   winetricks = fetchFromGitHub rec {
diff --git a/pkgs/misc/emulators/wine/staging.nix b/pkgs/misc/emulators/wine/staging.nix
index 5c2469f8f44..f3b9fa30420 100644
--- a/pkgs/misc/emulators/wine/staging.nix
+++ b/pkgs/misc/emulators/wine/staging.nix
@@ -7,8 +7,8 @@ let patch = (callPackage ./sources.nix {}).staging;
       (mkBuildInputs wineUnstable.pkgArches pkgNames) ++ extra;
 in assert stdenv.lib.getVersion wineUnstable == patch.version;
 
-stdenv.lib.overrideDerivation wineUnstable (self: {
-  buildInputs = build-inputs [ "perl" "utillinux" "autoconf" ] self.buildInputs;
+(stdenv.lib.overrideDerivation wineUnstable (self: {
+  buildInputs = build-inputs [ "perl" "utillinux" "autoconf" "gitMinimal" ] self.buildInputs;
 
   name = "${self.name}-staging";
 
@@ -18,7 +18,11 @@ stdenv.lib.overrideDerivation wineUnstable (self: {
     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 ..
   '';
-})
+})) // {
+  meta = wineUnstable.meta // {
+    description = wineUnstable.meta.description + " (with staging patches)";
+  };
+}
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/0001-Bug-702364-Fix-missing-echogs-dependencies.patch b/pkgs/misc/ghostscript/0001-Bug-702364-Fix-missing-echogs-dependencies.patch
index c914634f579..dd31260302c 100644
--- a/pkgs/misc/ghostscript/0001-Bug-702364-Fix-missing-echogs-dependencies.patch
+++ b/pkgs/misc/ghostscript/0001-Bug-702364-Fix-missing-echogs-dependencies.patch
@@ -1,18 +1,5 @@
-From 9f56e78d111d726ca95a59b2d64e5c3298451505 Mon Sep 17 00:00:00 2001
-From: Chris Liddell <chris.liddell@artifex.com>
-Date: Mon, 27 Apr 2020 11:04:57 +0100
-Subject: [PATCH] Bug 702364: Fix missing echogs dependencies
-
-Rebased version of http://git.ghostscript.com/?p=ghostpdl.git;a=patch;h=1b4c3669a20c
-to fix parallel build
----
- contrib/contrib.mak | 281 ++++++++++++++++++++++----------------------
- 1 file changed, 143 insertions(+), 138 deletions(-)
-
-diff --git a/contrib/contrib.mak b/contrib/contrib.mak
-index 5411ae902..7dd9822a9 100644
---- a/contrib/contrib.mak
-+++ b/contrib/contrib.mak
+--- a/contrib/contrib.mak	2020-03-19 09:21:42.000000000 +0100
++++ b/contrib/contrib.mak	2020-05-14 13:41:03.202258445 +0200
 @@ -22,6 +22,10 @@
  CONTRIB_MAK=$(CONTRIBDIR)$(D)contrib.mak $(TOP_MAKEFILES)
  CONTRIBSRC=$(CONTRIBDIR)$(D)
@@ -24,7 +11,7 @@ index 5411ae902..7dd9822a9 100644
  ###### --------------------------- Catalog -------------------------- ######
  
  # The following drivers are user-contributed, and maintained (if at all) by
-@@ -161,19 +165,19 @@ $(DEVOBJ)gdevbjca.$(OBJ) : $(CONTRIBSRC)gdevbjca.c $(PDEVH) $(bjc_h) \
+@@ -185,19 +189,19 @@
  	$(DEVCC) $(DEVO_)gdevbjca.$(OBJ) $(C_) $(CONTRIBSRC)gdevbjca.c
  
  $(DD)bjcmono.dev : $(bjc_) $(DD)page.dev \
@@ -48,7 +35,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)bjccolor $(bjc_)
  
  
-@@ -184,25 +188,25 @@ cdeskjet8_=$(DEVOBJ)gdevcd8.$(OBJ) $(HPPCL)
+@@ -208,25 +212,25 @@
  # Author: Uli Wortmann (uliw@erdw.ethz.ch), Martin Gerbershagen (ger@ulm.temic.de)
  # Printer: HP 670
  $(DD)cdj670.dev : $(cdeskjet8_) $(DD)page.dev \
@@ -78,7 +65,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV2) $(DD)cdj1600 $(cdeskjet8_)
  
  $(DEVOBJ)gdevcd8.$(OBJ) : $(CONTRIBSRC)gdevcd8.c $(PDEVH) $(math__h)\
-@@ -220,7 +224,8 @@ $(DEVOBJ)gdevcd8.$(OBJ) : $(CONTRIBSRC)gdevcd8.c $(PDEVH) $(math__h)\
+@@ -244,7 +248,8 @@
  
  # Author: Matthew Gelhaus (mgelhaus@proaxis.com)
  # Printer: HP 880c
@@ -88,7 +75,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV2) $(DD)cdj880 $(cdeskjet8_)
  
  
-@@ -231,7 +236,7 @@ cdeskjet9_=$(DEVOBJ)gdevdj9.$(OBJ) $(HPPCL)
+@@ -255,7 +260,7 @@
  # Author: Rene Harsch (rene@harsch.net)
  # Printer: HP 970Cxi
  $(DD)cdj970.dev : $(cdeskjet9_) $(DD)page.dev \
@@ -97,7 +84,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV2) $(DD)cdj970 $(cdeskjet9_)
  
  $(DEVOBJ)gdevdj9.$(OBJ) : $(CONTRIBSRC)gdevdj9.c $(PDEVH) $(math__h) $(string__h)\
-@@ -244,7 +249,7 @@ $(DEVOBJ)gdevdj9.$(OBJ) : $(CONTRIBSRC)gdevdj9.c $(PDEVH) $(math__h) $(string__h
+@@ -268,7 +273,7 @@
  ### NOTE:  Same as chp2200 (some PJL and CRD changes).
  
  $(DD)cdnj500.dev : $(cdeskjet8_) $(DD)page.dev \
@@ -106,7 +93,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV2) $(DD)cdnj500 $(cdeskjet8_)
  
  
-@@ -253,7 +258,7 @@ $(DD)cdnj500.dev : $(cdeskjet8_) $(DD)page.dev \
+@@ -277,7 +282,7 @@
  ### NOTE:  Depends on the presence of the cdj850 section.
  
  $(DD)chp2200.dev : $(cdeskjet8_) $(DD)page.dev \
@@ -115,7 +102,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV2) $(DD)chp2200 $(cdeskjet8_)
  
  
-@@ -264,11 +269,11 @@ $(DD)chp2200.dev : $(cdeskjet8_) $(DD)page.dev \
+@@ -288,11 +293,11 @@
  GDIMONO=$(DEVOBJ)gdevgdi.$(OBJ) $(HPPCL)
  
  $(DD)gdi.dev : $(GDIMONO) $(DD)page.dev \
@@ -129,7 +116,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)samsunggdi $(GDIMONO)
  
  $(DEVOBJ)gdevgdi.$(OBJ) : $(CONTRIBSRC)gdevgdi.c $(PDEVH) $(gdevpcl_h) \
-@@ -282,17 +287,17 @@ $(DEVOBJ)gdevgdi.$(OBJ) : $(CONTRIBSRC)gdevgdi.c $(PDEVH) $(gdevpcl_h) \
+@@ -306,17 +311,17 @@
  
  hl1250_=$(DEVOBJ)gdevhl12.$(OBJ) $(HPDLJM)
  $(DD)hl1250.dev : $(hl1250_) $(DD)page.dev \
@@ -150,7 +137,7 @@ index 5411ae902..7dd9822a9 100644
  	$(DEVCC) $(DEVO_)gdevhl12.$(OBJ) $(C_) $(CONTRIBSRC)gdevhl12.c
  
  
-@@ -303,37 +308,37 @@ ln03_=$(DEVOBJ)gdevln03.$(OBJ)
+@@ -327,37 +332,37 @@
  # Author: Ulrich Mueller (ulm@vsnhd1.cern.ch)
  # Printer: DEC LN03
  $(DD)ln03.dev : $(ln03_) $(DD)page.dev \
@@ -194,7 +181,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)la75plus $(ln03_)
  
  $(DEVOBJ)gdevln03.$(OBJ) : $(CONTRIBSRC)gdevln03.c $(PDEVH) \
-@@ -356,27 +361,27 @@ $(DEVOBJ)gdevescv.$(OBJ) : $(ESCV_SRC)gdevescv.c $(ESCV_SRC)gdevescv.h $(PDEVH)
+@@ -380,233 +385,233 @@
  	$(DEVCC) -DA4 $(DEVO_)gdevescv.$(OBJ) $(C_) $(escv_opts) $(ESCV_SRC)gdevescv.c
  
  $(DD)alc1900.dev : $(escv_) $(DD)page.dev \
@@ -228,7 +215,8 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)alc8600 $(escv_)
  
  $(DD)alc9100.dev : $(escv_) $(DD)page.dev \
-@@ -384,11 +389,11 @@ $(DD)alc9100.dev : $(escv_) $(DD)page.dev \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
++                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
  	$(SETPDEV) $(DD)alc9100 $(escv_)
  
  $(DD)lp3000c.dev : $(escv_) $(DD)page.dev \
@@ -242,7 +230,8 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)lp8000c $(escv_)
  
  $(DD)lp8200c.dev : $(escv_) $(DD)page.dev \
-@@ -396,15 +401,15 @@ $(DD)lp8200c.dev : $(escv_) $(DD)page.dev \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
++                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
  	$(SETPDEV) $(DD)lp8200c $(escv_)
  
  $(DD)lp8300c.dev : $(escv_) $(DD)page.dev \
@@ -261,7 +250,8 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)lp8800c $(escv_)
  
  $(DD)lp9000c.dev : $(escv_) $(DD)page.dev \
-@@ -412,177 +417,177 @@ $(DD)lp9000c.dev : $(escv_) $(DD)page.dev \
+-                           $(CONTRIB_MAK) $(MAKEDIRS)
++                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
  	$(SETPDEV) $(DD)lp9000c $(escv_)
  
  $(DD)lp9200c.dev : $(escv_) $(DD)page.dev \
@@ -481,7 +471,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)lex2050 $(lex2050_)
  
  $(DEVOBJ)gdevlx7.$(OBJ) : $(CONTRIBSRC)gdevlx7.c $(PDEVH) \
-@@ -599,7 +604,7 @@ $(DEVOBJ)gdevlx32.$(OBJ) : $(CONTRIBSRC)gdevlx32.c $(PDEVH) $(gsparam_h) \
+@@ -623,7 +628,7 @@
  	$(DEVCC) $(DEVO_)gdevlx32.$(OBJ) $(C_) $(CONTRIBSRC)gdevlx32.c
  
  $(DD)lxm3200.dev : $(lxm3200_) $(DD)page.dev \
@@ -490,7 +480,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)lxm3200 $(lxm3200_)
  
  
-@@ -625,13 +630,13 @@ $(DEVOBJ)gdevlips.$(OBJ) : $(GX) $(LIPS_SRC)gdevlips.c $(std_h) \
+@@ -649,13 +654,13 @@
  	$(DEVCC) $(DEVO_)gdevlips.$(OBJ) $(LIPS_OPT) $(C_) $(LIPS_SRC)gdevlips.c
  
  $(DD)lips4.dev : $(lipsr_) $(DD)page.dev \
@@ -506,7 +496,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETDEV) $(DD)lips4v $(lipsv_)
  	$(ADDMOD) $(DD)lips4v -include $(GLD)vector
  
-@@ -644,11 +649,11 @@ $(DEVOBJ)gdevl4v.$(OBJ) : $(LIPS_SRC)gdevl4v.c $(LIPS_SRC)gdevlips.h $(GDEV)\
+@@ -668,11 +673,11 @@
  ### --------------- Some extra devices: lips2p, bjc880j ---------------- ###
  
  $(DD)lips2p.dev : $(lipsr_) $(DD)page.dev \
@@ -520,7 +510,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)bjc880j $(lipsr_)
  
  
-@@ -657,15 +662,15 @@ $(DD)bjc880j.dev : $(lipsr_) $(DD)page.dev \
+@@ -681,15 +686,15 @@
  md2k_=$(DEVOBJ)gdevmd2k.$(OBJ)
  
  $(DD)md2k.dev : $(md2k_) $(DD)page.dev \
@@ -539,7 +529,7 @@ index 5411ae902..7dd9822a9 100644
  	$(DEVCC) $(DEVO_)gdevmd2k.$(OBJ) $(C_) $(CONTRIBSRC)gdevmd2k.c
   
  
-@@ -673,7 +678,7 @@ $(DEVOBJ)gdevmd2k.$(OBJ) : $(CONTRIBSRC)gdevmd2k.c $(PDEVH) $(gsparam_h) \
+@@ -697,7 +702,7 @@
  
  oki4w_=$(DEVOBJ)gdevop4w.$(OBJ)
  $(DD)oki4w.dev : $(oki4w_) $(DD)page.dev \
@@ -548,7 +538,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)oki4w $(oki4w_)
  
  # Author: Ivan Schreter (ivan@shadow.sk)
-@@ -696,11 +701,11 @@ $(DEVOBJ)gdevopvp.$(OBJ) : $(OPVP_SRC)gdevopvp.c $(OPVP_SRC)opvp_common.h\
+@@ -720,11 +725,11 @@
  	$(DEVCC) $(DEVO_)gdevopvp.$(OBJ) $(OPVP_OPT) $(C_) $(OPVP_SRC)gdevopvp.c
  
  $(DD)opvp.dev : $(opvp_) $(DD)page.dev \
@@ -562,7 +552,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)oprp $(opvp_)
  
  
-@@ -877,78 +882,78 @@ $(DEVOBJ)pclcomp.$(OBJ) : $(pcl3_src)pclcomp.c $(pcl3_src)pclgen.h \
+@@ -901,78 +906,78 @@
  
  # The generic pcl3 device with selectable subdevices
  $(DD)pcl3.dev : $(pcl3_) $(DD)page.dev \
@@ -665,7 +655,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)hpdj1120c $(pcl3_)
  
  #------------------------------------------------------------------------------
-@@ -985,7 +990,7 @@ pcl3-install:
+@@ -1009,7 +1014,7 @@
  
  xes_=$(DEVOBJ)gdevxes.$(OBJ)
  $(DD)xes.dev : $(xes_) $(DD)page.dev \
@@ -674,7 +664,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)xes $(xes_)
  
  # Author: Peter Flass (flass@lbdrscs.bitnet)
-@@ -1005,16 +1010,16 @@ JAPSRC=$(JAPDIR)$(D)
+@@ -1029,16 +1034,16 @@
  
  pr201_=$(DEVOBJ)gdevp201.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
  
@@ -695,7 +685,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)pr1000_4 $(pr201_)
  
  $(DEVOBJ)gdevp201.$(OBJ) : $(JAPSRC)gdevp201.c $(PDEVH) \
-@@ -1025,7 +1030,7 @@ $(DEVOBJ)gdevp201.$(OBJ) : $(JAPSRC)gdevp201.c $(PDEVH) \
+@@ -1049,7 +1054,7 @@
  
  jj100_=$(DEVOBJ)gdevj100.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
  
@@ -704,7 +694,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)jj100 $(jj100_)
  
  $(DEVOBJ)gdevj100.$(OBJ) : $(JAPSRC)gdevj100.c $(PDEVH) \
-@@ -1037,11 +1042,11 @@ $(DEVOBJ)gdevj100.$(OBJ) : $(JAPSRC)gdevj100.c $(PDEVH) \
+@@ -1061,11 +1066,11 @@
  bj10v_=$(DEVOBJ)gdev10v.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
  
  $(DD)bj10v.dev : $(bj10v_) \
@@ -718,7 +708,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)bj10vh $(bj10v_)
  
  # Uncomment the following line if you are using MS-DOS on PC9801 series.
-@@ -1056,7 +1061,7 @@ $(DEVOBJ)gdev10v.$(OBJ) : $(JAPSRC)gdev10v.c $(PDEVH) \
+@@ -1080,7 +1085,7 @@
  dmprt_=$(DEVOBJ)gdevdmpr.$(OBJ) $(DEVOBJ)dviprlib.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
  
  $(DD)dmprt.dev : $(dmprt_) $(DD)page.dev \
@@ -727,7 +717,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETDEV) $(DD)dmprt $(dmprt_)
  	$(ADDMOD) $(DD)dmprt -ps dmp_init
  
-@@ -1086,19 +1091,19 @@ $(DEVOBJ)gdevmjc.$(OBJ) : $(JAPSRC)gdevmjc.c $(JAPSRC)gdevmjc.h $(PDEVH) $(gdevp
+@@ -1110,19 +1115,19 @@
  	$(DEVCC) -DA4 $(DEVO_)gdevmjc.$(OBJ) $(C_) $(JAPSRC)gdevmjc.c
  
  $(DD)mj700v2c.dev : $(mj700v2c_) $(DD)page.dev \
@@ -751,7 +741,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)mj8000c $(mj700v2c_)
  
  ### ----------------- The Fujitsu FMPR printer device ----------------- ###
-@@ -1106,7 +1111,7 @@ $(DD)mj8000c.dev : $(mj700v2c_) $(DD)page.dev \
+@@ -1130,7 +1135,7 @@
  fmpr_=$(DEVOBJ)gdevfmpr.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
  
  $(DD)fmpr.dev : $(fmpr_) $(DD)page.dev \
@@ -760,7 +750,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)fmpr $(fmpr_)
  
  $(DEVOBJ)gdevfmpr.$(OBJ) : $(JAPSRC)gdevfmpr.c $(PDEVH) \
-@@ -1118,7 +1123,7 @@ $(DEVOBJ)gdevfmpr.$(OBJ) : $(JAPSRC)gdevfmpr.c $(PDEVH) \
+@@ -1142,7 +1147,7 @@
  fmlbp_=$(DEVOBJ)gdevfmlbp.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
  
  $(DD)fmlbp.dev : $(fmlbp_) $(DD)page.dev \
@@ -769,7 +759,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)fmlbp $(fmlbp_)
  
  $(DEVOBJ)gdevfmlbp.$(OBJ) : $(JAPSRC)gdevfmlbp.c $(PDEVH) \
-@@ -1135,7 +1140,7 @@ $(DEVOBJ)gdevfmlbp.$(OBJ) : $(JAPSRC)gdevfmlbp.c $(PDEVH) \
+@@ -1159,7 +1164,7 @@
  ml6_=$(DEVOBJ)gdevml6.$(OBJ) $(DEVOBJ)gdevprn.$(OBJ)
  
  $(DD)ml600.dev : $(ml6_) $(DD)page.dev \
@@ -778,7 +768,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)ml600 $(ml6_)
  
  $(DEVOBJ)gdevml6.$(OBJ) : $(JAPSRC)gdevml6.c $(PDEVH) \
-@@ -1148,11 +1153,11 @@ $(DEVOBJ)gdevml6.$(OBJ) : $(JAPSRC)gdevml6.c $(PDEVH) \
+@@ -1172,11 +1177,11 @@
  lbp3x0_=$(DEVOBJ)gdevlbp3.$(OBJ)
  
  $(DD)lbp310.dev :$(lbp3x0_) $(DD)page.dev \
@@ -792,7 +782,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)lbp320 $(lbp3x0_)
  
  $(DEVOBJ)gdevlbp3.$(OBJ) : $(JAPSRC)gdevlbp3.c $(PDEVH)
-@@ -1167,7 +1172,7 @@ $(DEVOBJ)gdevnpdl.$(OBJ) : $(JAPSRC)gdevnpdl.c $(LIPS_SRC)gdevlprn.h $(PDEVH) \
+@@ -1191,7 +1196,7 @@
  	$(DEVCC) -DA4 $(DEVO_)gdevnpdl.$(OBJ) $(LIPS_OPT) $(C_) $(JAPSRC)gdevnpdl.c
  
  $(DD)npdl.dev : $(npdl_) $(DD)page.dev \
@@ -801,7 +791,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)npdl $(npdl_)
  
  ### ------- EPSON ESC/Page printer device ----------------- ###
-@@ -1179,11 +1184,11 @@ $(DEVOBJ)gdevespg.$(OBJ) : $(JAPSRC)gdevespg.c $(LIPS_SRC)gdevlprn.h $(PDEVH) \
+@@ -1203,11 +1208,11 @@
  	$(DEVCC) -DA4 $(DEVO_)gdevespg.$(OBJ) $(LIPS_OPT) $(C_) $(JAPSRC)gdevespg.c
  
  $(DD)escpage.dev : $(escpage_) $(DD)page.dev \
@@ -815,7 +805,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)lp2000 $(escpage_)
  
  ### --- The RICOH RPDL language printer device ------ ###
-@@ -1194,7 +1199,7 @@ $(DEVOBJ)gdevrpdl.$(OBJ) : $(JAPSRC)gdevrpdl.c $(LIPS_SRC)gdevlprn.h $(PDEVH) \
+@@ -1218,7 +1223,7 @@
  	$(DEVCC) $(DEVO_)gdevrpdl.$(OBJ) $(LIPS_OPT) $(C_) $(JAPSRC)gdevrpdl.c
  
  $(DD)rpdl.dev : $(rpdl_) $(DD)page.dev \
@@ -824,21 +814,7 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)rpdl $(rpdl_)
  
  ### ---------- RICOH RPDL IV(600dpi) printer devices ---------- ###
-@@ -1204,11 +1209,11 @@ $(DD)rpdl.dev : $(rpdl_) $(DD)page.dev \
- #	$(DEVCC) $(DEVO_)gdevrpdl.$(OBJ) $(C_) $(JAPSRC)gdevrpdl.c
- #
- #$(DD)nx100f.dev : $(rpdl_) $(DD)page.dev \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
-+                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
- #	$(SETPDEV2) $(DD)nx100f $(rpdl_)
- #
- #$(DD)nx100v.dev : $(rpdl_) $(DD)page.dev \
--                           $(CONTRIB_MAK) $(MAKEDIRS)
-+                           $(CONTDEV) $(CONTRIB_MAK) $(MAKEDIRS)
- #	$(SETPDEV2) $(DD)nx100v $(rpdl_)
- 
- ### ------------ The ALPS Micro Dry printer devices ------------ ###
-@@ -1216,15 +1221,15 @@ $(DD)rpdl.dev : $(rpdl_) $(DD)page.dev \
+@@ -1240,15 +1245,15 @@
  alps_=$(DEVOBJ)gdevalps.$(OBJ)
  
  $(DD)md50Mono.dev : $(alps_) $(DD)page.dev \
@@ -857,6 +833,3 @@ index 5411ae902..7dd9822a9 100644
  	$(SETPDEV) $(DD)md1xMono $(alps_)
  
  $(DEVOBJ)gdevalps.$(OBJ) : $(JAPSRC)gdevalps.c $(PDEVH) \
--- 
-2.26.2
-
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index 7f6766cf462..d3d06d98cb1 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -10,8 +10,8 @@ assert cupsSupport -> cups != null;
 
 let
   version = "9.${ver_min}";
-  ver_min = "50";
-  sha512 = "3p46kzn6kh7z4qqnqydmmvdlgzy5730z3yyvyxv6i4yb22mgihzrwqmhmvfn3b7lypwf6fdkkndarzv7ly3zndqpyvg89x436sms7iw";
+  ver_min = "52";
+  sha512 = "1ksm3v4nw8acc4j817n44l1c65ijk0mr3mp4kryy17jz41bmzzql5d8vr40h59n9dmf8b2wmnbq45bj3an1zrpfagavlf0i9s436jjc";
 
   fonts = stdenv.mkDerivation {
     name = "ghostscript-fonts";
@@ -45,13 +45,13 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    ./urw-font-files.patch
-    ./doc-no-ref.diff
     (fetchpatch {
-      name = "CVE-2019-14869.patch";
-      url = "https://git.ghostscript.com/?p=ghostpdl.git;a=patch;h=485904772c5f0aa1140032746e5a0abfc40f4cef";
-      sha256 = "0z5gnvgpp0dlzgvpw9a1yan7qyycv3mf88l93fvb1kyay893rshp";
+      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,
     # Remove on update to version > 9.52
     ./0001-Bug-702364-Fix-missing-echogs-dependencies.patch
@@ -104,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/lightspark/default.nix b/pkgs/misc/lightspark/default.nix
index a821d430f6c..833d8a82990 100644
--- a/pkgs/misc/lightspark/default.nix
+++ b/pkgs/misc/lightspark/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pkgconfig, cmake, curl, zlib, ffmpeg, glew, pcre
+{ stdenv, fetchFromGitHub, pkgconfig, cmake, curl, zlib, ffmpeg_3, glew, pcre
 , rtmpdump, cairo, boost, SDL2, SDL2_mixer, libjpeg, gnome2, lzma, nasm
 , llvm, glibmm
 }:
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig cmake ];
 
   buildInputs = [
-    curl zlib ffmpeg glew pcre rtmpdump cairo boost SDL2 SDL2_mixer libjpeg
+    curl zlib ffmpeg_3 glew pcre rtmpdump cairo boost SDL2 SDL2_mixer libjpeg
     gnome2.pango lzma nasm llvm glibmm
   ];
 
diff --git a/pkgs/misc/mxt-app/default.nix b/pkgs/misc/mxt-app/default.nix
index a5a621435ee..6ceb4d6c1a3 100644
--- a/pkgs/misc/mxt-app/default.nix
+++ b/pkgs/misc/mxt-app/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, autoreconfHook, libtool }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   version="1.28";
   pname = "mxt-app";
 
diff --git a/pkgs/misc/scrcpy/default.nix b/pkgs/misc/scrcpy/default.nix
index a93f7e6aeaf..adebcbd633d 100644
--- a/pkgs/misc/scrcpy/default.nix
+++ b/pkgs/misc/scrcpy/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, fetchFromGitHub, makeWrapper
 , meson
 , ninja
-, pkgconfig
+, pkg-config
 , fetchpatch
 
 , platform-tools
@@ -10,10 +10,10 @@
 }:
 
 let
-  version = "1.13";
+  version = "1.15.1";
   prebuilt_server = fetchurl {
     url = "https://github.com/Genymobile/scrcpy/releases/download/v${version}/scrcpy-server-v${version}";
-    sha256 = "11gqsl2x18hgwdjajag9q8qdxqvdqr9m67zka22z7hnd3k569vjz";
+    sha256 = "1hrp2rfwl06ff2b2i12ccka58l1brvn6xqgm1f38k36s61mbs1py";
   };
 in
 stdenv.mkDerivation rec {
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     owner = "Genymobile";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zc73l5vm4hca8niaa3y76kpk7i9vj89wv4gbxmf1yjmixb71hby";
+    sha256 = "0ijar1cycj42p39cgpnwdwr6nz5pyr6vacr1gvc0f6k92pl8vr13";
   };
 
   # postPatch:
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
       --replace "SDL_RENDERER_ACCELERATED" "SDL_RENDERER_ACCELERATED || SDL_RENDERER_SOFTWARE"
   '';
 
-  nativeBuildInputs = [ makeWrapper meson ninja pkgconfig ];
+  nativeBuildInputs = [ makeWrapper meson ninja pkg-config ];
 
   buildInputs = [ ffmpeg SDL2 ];
 
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 2c39ed599e2..01ee818f256 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.62";
+  name = "xlockmore-5.64";
 
   src = fetchurl {
     url = "http://sillycycle.com/xlock/${name}.tar.xz";
-    sha256 = "0b05wgj4mpssy4hd7km5c48i454dfg45p11mfmsr7xjd2gnz5gqi";
+    sha256 = "0fbh6avdzsm1prafglr2xdd8c4ibkddi6xxywvqgvzp0zb2kqimr";
     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/solfege/css.patch b/pkgs/misc/solfege/css.patch
new file mode 100644
index 00000000000..40273df0132
--- /dev/null
+++ b/pkgs/misc/solfege/css.patch
@@ -0,0 +1,33 @@
+Fix theme parsing errors: https://savannah.gnu.org/bugs/index.php?53107
+
+--- a/solfege.css
++++ b/solfege.css
+@@ -7,19 +7,19 @@
+-#ProgressionNameLabel, #Feedback { font: "Sans 18" }
+-#ProgressionLabelNumber { font: "Sans 12" }
+-#BoldText { font: Bold }
++#ProgressionNameLabel, #Feedback { font: 18px Sans }
++#ProgressionLabelNumber { font: 12px Sans }
++#BoldText { font: 12px Sans Bold }
+ 
+-#StatisticsH1, #Heading1 { font: Sans 18 }
+-#StatisticsH2, #Heading2 { font: Sans 14 }
++#StatisticsH1, #Heading1 { font: 18px Sans }
++#StatisticsH2, #Heading2 { font: 14px Sans }
+ 
+-#BpmInactiveLabel { font: Sans 12 }
+-#BpmActiveLabel { font: Sans Bold 12 }
++#BpmInactiveLabel { font: 12px Sans }
++#BpmActiveLabel { font: 12px Sans Bold }
+ 
+ #DIALOGWARNING2 { background: red; }
+ #DIALOGWARNING  { background: yellow; }
+ 
+ #DEBUGWARNING {
+   background: red;
+-  font: Sans Bold 24;
++  font: 24px Sans Bold;
+ }
+ 
+-#FlashBarLabel { font: Sans 16 }
++#FlashBarLabel { font: 16px Sans }
diff --git a/pkgs/misc/solfege/default.nix b/pkgs/misc/solfege/default.nix
index aea4da3eaeb..05e13f3c9aa 100644
--- a/pkgs/misc/solfege/default.nix
+++ b/pkgs/misc/solfege/default.nix
@@ -1,20 +1,26 @@
-{ stdenv, fetchurl, pkgconfig, pythonPackages, gettext, texinfo
-, ghostscript, librsvg, gdk-pixbuf, txt2man, timidity, mpg123
-, alsaUtils, vorbis-tools, csound, lilypond
-, wrapGAppsHook
+{ lib, fetchurl, gettext, pkgconfig, texinfo, wrapGAppsHook
+, buildPythonApplication, pycairo, pygobject3
+, gobject-introspection, gtk3, librsvg
+, alsaUtils, timidity, mpg123, vorbis-tools, csound, lilypond
 }:
 
-pythonPackages.buildPythonApplication rec {
-  name = "solfege-3.22.2";
+buildPythonApplication rec {
+  name = "solfege-3.23.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/solfege/${name}.tar.gz";
-    sha256 = "1r4g93ka7i8jh5glii5nza0zq0wy4sw0gfzpvkcrhj9yr1h0jsp4";
+    sha256 = "0sc17vf4xz6gy0s0z9ghi68yskikdmyb4gdaxx6imrm40734k8mp";
   };
 
-  nativeBuildInputs = [ gettext texinfo pkgconfig wrapGAppsHook ];
-  buildInputs = [ librsvg ];
-  propagatedBuildInputs = [ pythonPackages.pygtk ];
+  patches = [
+    ./css.patch
+    ./menubar.patch
+    ./webbrowser.patch
+  ];
+
+  nativeBuildInputs = [ gettext pkgconfig texinfo wrapGAppsHook ];
+  buildInputs = [ gobject-introspection gtk3 librsvg ];
+  propagatedBuildInputs = [ pycairo pygobject3 ];
 
   preBuild = ''
     sed -i -e 's|wav_player=.*|wav_player=${alsaUtils}/bin/aplay|' \
@@ -30,11 +36,11 @@ pythonPackages.buildPythonApplication rec {
 
   enableParallelBuilding = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Ear training program";
     homepage = "http://www.solfege.org/";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = [ maintainers.bjornfor ];
+    maintainers = with maintainers; [ bjornfor orivej ];
   };
 }
diff --git a/pkgs/misc/solfege/menubar.patch b/pkgs/misc/solfege/menubar.patch
new file mode 100644
index 00000000000..36d3944af61
--- /dev/null
+++ b/pkgs/misc/solfege/menubar.patch
@@ -0,0 +1,7 @@
+Fix https://savannah.gnu.org/bugs/index.php?53109
+
+--- a/solfege/mainwin.py
++++ b/solfege/mainwin.py
+@@ -270,1 +270,1 @@
+-        hdlbox = Gtk.HandleBox()
++        hdlbox = Gtk.HBox()
diff --git a/pkgs/misc/solfege/webbrowser.patch b/pkgs/misc/solfege/webbrowser.patch
new file mode 100644
index 00000000000..2c9b77d0b8e
--- /dev/null
+++ b/pkgs/misc/solfege/webbrowser.patch
@@ -0,0 +1,8 @@
+Fix startup.
+
+--- a/solfege/mainwin.py
++++ b/solfege/mainwin.py
+@@ -27,2 +27,3 @@ import textwrap
+ try:
++    webbrowser.register_standard_browsers()
+     i = webbrowser._tryorder.index("x-www-browser")
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 23c513ea175..dd05bb4aa3b 100644
--- a/pkgs/misc/tmux-plugins/default.nix
+++ b/pkgs/misc/tmux-plugins/default.nix
@@ -109,6 +109,20 @@ in rec {
     };
   };
 
+  fingers = mkDerivation rec {
+    pluginName = "fingers";
+    rtpFilePath = "tmux-fingers.tmux";
+    version = "1.0.1";
+    src = fetchFromGitHub {
+      owner = "Morantron";
+      repo = "tmux-fingers";
+      rev = version;
+      sha256 = "0gp37m3d0irrsih96qv2yalvr1wmf1n64589d4qzyzq16lzyjcr0";
+      fetchSubmodules = true;
+    };
+    dependencies = [ pkgs.gawk ];
+  };
+
   fpp = mkDerivation {
     pluginName = "fpp";
     version = "unstable-2016-03-08";
diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix
index 321891892b7..85df90a9fe1 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
@@ -350,6 +350,13 @@ in {
     filesToInstall = [ "u-boot.itb" "idbloader.img"];
   };
 
+  ubootROCPCRK3399 = buildUBoot {
+    defconfig = "roc-pc-rk3399_defconfig";
+    extraMeta.platforms = ["aarch64-linux"];
+    filesToInstall = [ "spl/u-boot-spl.bin" "u-boot.itb" "idbloader.img"];
+    BL31 = "${armTrustedFirmwareRK3399}/bl31.elf";
+  };
+
   ubootSheevaplug = buildUBoot {
     defconfig = "sheevaplug_defconfig";
     extraMeta.platforms = ["armv5tel-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/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index f0d93572de5..0db9069b748 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -41,36 +41,36 @@ 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/";
   };
 
   alchemist-vim = buildVimPluginFrom2Nix {
     pname = "alchemist-vim";
-    version = "2020-04-08";
+    version = "2020-04-27";
     src = fetchFromGitHub {
       owner = "slashmili";
       repo = "alchemist.vim";
-      rev = "9fc2594deea196897997c31e68056b7977f13495";
-      sha256 = "1mnghdw3yhqh1lzjqfrmwrvnx391dkayfzkgcpx7sx01hnvqc9ib";
+      rev = "3d370d163a48bdeccea4be541686cce67a52b996";
+      sha256 = "0svciz70yccaaifq1ivb7f0cwfjssmrkm7fbpjlylslx6wjjfc1i";
     };
     meta.homepage = "https://github.com/slashmili/alchemist.vim/";
   };
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2020-04-21";
+    version = "2020-08-20";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "36e5337e30095afb10d02ef2ae362c8d6055e70d";
-      sha256 = "0mcc2d0a4fiv2a1q8z778jzjj7i71v64m2zswsvpdym062b65fk3";
+      rev = "2b785688ead505dcbc1007374d3dca9914aa247a";
+      sha256 = "1n91vm354fd45vvg4skvx7s9mpjpsk1l61n2x5ylqr8dlm7vgjkw";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -89,12 +89,12 @@ let
 
   ansible-vim = buildVimPluginFrom2Nix {
     pname = "ansible-vim";
-    version = "2020-04-08";
+    version = "2020-07-13";
     src = fetchFromGitHub {
       owner = "pearofducks";
       repo = "ansible-vim";
-      rev = "ad76abd6bccfa1a5195d20f7964c6393fe1a9524";
-      sha256 = "098jnybc11cxv2q8396hx9r814i5793y7a9kdl4ambpbvhm86vad";
+      rev = "cfdde31672bce2f60bedc36842ab9bca8d28ba5b";
+      sha256 = "01lpnvdym9izaq29kbgwa7kl303nnzsn0cpqq75bv7glymglbn0m";
     };
     meta.homepage = "https://github.com/pearofducks/ansible-vim/";
   };
@@ -185,24 +185,24 @@ let
 
   awesome-vim-colorschemes = buildVimPluginFrom2Nix {
     pname = "awesome-vim-colorschemes";
-    version = "2020-03-26";
+    version = "2020-08-15";
     src = fetchFromGitHub {
       owner = "rafi";
       repo = "awesome-vim-colorschemes";
-      rev = "4ad0ce02b8efa3c6e014e224a34b67b927d31c88";
-      sha256 = "0crg0gph8wmb412yvknh6ic42i3p5hd8c736rv61v52b2g0dgwxm";
+      rev = "0e04854da7695854e7df7c3c771e72ac55a60040";
+      sha256 = "1i6y0p7fcvzgxkm82xrypwh7xgp1ywyvqlpglf93bgq8ygsll0v9";
     };
     meta.homepage = "https://github.com/rafi/awesome-vim-colorschemes/";
   };
 
   ayu-vim = buildVimPluginFrom2Nix {
     pname = "ayu-vim";
-    version = "2020-04-13";
+    version = "2020-05-29";
     src = fetchFromGitHub {
       owner = "ayu-theme";
       repo = "ayu-vim";
-      rev = "a3a2d2a4ce36e0f681236b3ab15043c0b09460b1";
-      sha256 = "06lhfwh8z178bgbbcz4mxjpk6zajz19x1jhaahbsqg3641y5pj0p";
+      rev = "0745635421688ce777f663d13531996cb4da6514";
+      sha256 = "0w7ixhz72g3lr1hkn450k6x8sdgv95pp6pxbykka3s01i506rzmj";
     };
     meta.homepage = "https://github.com/ayu-theme/ayu-vim/";
   };
@@ -269,12 +269,12 @@ let
 
   calendar-vim = buildVimPluginFrom2Nix {
     pname = "calendar-vim";
-    version = "2020-02-14";
+    version = "2020-08-15";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "calendar.vim";
-      rev = "55d0495ff03260d82a5c80365cb754871ce35460";
-      sha256 = "0xi2g6x5lf8r36c5ld8pvz5c7n7jx3d6whwbk4gibmz6hlfrslwr";
+      rev = "9b2dcc18ba104820eac1701aaca44dcc24d90eb4";
+      sha256 = "1vy0np1i8whyw9wfkcx564kvlxspwvrp4sznk6iixjln6ha7ngil";
     };
     meta.homepage = "https://github.com/itchyny/calendar.vim/";
   };
@@ -293,12 +293,12 @@ let
 
   caw-vim = buildVimPluginFrom2Nix {
     pname = "caw-vim";
-    version = "2020-04-20";
+    version = "2020-06-01";
     src = fetchFromGitHub {
       owner = "tyru";
       repo = "caw.vim";
-      rev = "3c6b7d2448bd32bf998ae403c9c15d06ea641b36";
-      sha256 = "06ym0qhcvd9ajlj6cd4y391bgfiwclzhb3cvrbv723j8amdv1y1q";
+      rev = "0725e7c273e2c39d8730adc78e0fd20e0d57d173";
+      sha256 = "14rsjy5lllmb84vs5q111cb17c6nwc37zf460kh8ii1ijziyqhy2";
     };
     meta.homepage = "https://github.com/tyru/caw.vim/";
   };
@@ -329,12 +329,12 @@ let
 
   clang_complete = buildVimPluginFrom2Nix {
     pname = "clang_complete";
-    version = "2018-09-19";
+    version = "2020-05-06";
     src = fetchFromGitHub {
       owner = "xavierd";
       repo = "clang_complete";
-      rev = "0b98d7533ad967aac3fc4c1a5b0508dafa8a676f";
-      sha256 = "04mdhc1kbv66blkn6qn98iyj659dac4z49nmpf3anglz8dgcxjgc";
+      rev = "10e5102af5d1b16ba7aa3fb51d67153041f82ed7";
+      sha256 = "0crynvmdp9a5rws5hfnsn19kxqviyp29n8fz40wq7k1g5vrhvdl7";
     };
     meta.homepage = "https://github.com/xavierd/clang_complete/";
   };
@@ -351,86 +351,110 @@ let
     meta.homepage = "https://github.com/bbchung/clighter8/";
   };
 
+  coc-clap = buildVimPluginFrom2Nix {
+    pname = "coc-clap";
+    version = "2020-07-17";
+    src = fetchFromGitHub {
+      owner = "vn-ki";
+      repo = "coc-clap";
+      rev = "09d9059c243a25c5859fd73fff6b664d8bf5eed0";
+      sha256 = "057kad7nwc75c92d2al6q25gs7vrf0l14529iclrgd61vg369sva";
+    };
+    meta.homepage = "https://github.com/vn-ki/coc-clap/";
+  };
+
   coc-css = buildVimPluginFrom2Nix {
     pname = "coc-css";
-    version = "2020-04-15";
+    version = "2020-06-28";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-css";
-      rev = "41fe3122753b62c4416eb5e4ca4bef1cb3d3ebd2";
-      sha256 = "13xg0v2iwf8nrd1bba5nmwgav37fb8q4fqr5bsg3qxlbghpw0bbl";
+      rev = "a8cde12697de70dddf235ada61dc3601a6c04b57";
+      sha256 = "03n7czxiraa9pjcdfigmxgwyprpijbs0vhmzccxx0nwm038291y6";
     };
     meta.homepage = "https://github.com/neoclide/coc-css/";
   };
 
   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 = "2019-12-03";
+    version = "2020-07-16";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-emmet";
-      rev = "1e65237f65b94bd5f9376023f557a26c14c9d35a";
-      sha256 = "16f3gdnprxw939zwdy7lzksj1qwlwfs174vk0nzf1d8yb04a7y2g";
+      rev = "8f25e0b7deb1cd54ce096cf713147662c43781f6";
+      sha256 = "0z9y8nxzjqf78l7hmq59by559f178jxhadn82h1hwqmdjpq72jcm";
     };
     meta.homepage = "https://github.com/neoclide/coc-emmet/";
   };
 
   coc-eslint = buildVimPluginFrom2Nix {
     pname = "coc-eslint";
-    version = "2020-02-10";
+    version = "2020-05-21";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-eslint";
-      rev = "2f9de5cf232223f886b5e9711b0e9a5260f65db9";
-      sha256 = "0q1sizzj6ac6gzfp4s7ka600pa9f2dhr17v14j98cdlmyp6pyfhz";
+      rev = "eed42192dab175bbf249e21c18c85cbd5afdd92a";
+      sha256 = "1a9csiyj7abksar917acfjgypmc28rcfsqga0p1550mjxvkjr2ia";
     };
     meta.homepage = "https://github.com/neoclide/coc-eslint/";
   };
 
+  coc-explorer = buildVimPluginFrom2Nix {
+    pname = "coc-explorer";
+    version = "2020-08-12";
+    src = fetchFromGitHub {
+      owner = "weirongxu";
+      repo = "coc-explorer";
+      rev = "b05b60c9e53a657f4a7c4dcf064032ce806cd0f4";
+      sha256 = "10z3xrkkj0140a8cbix7yrky7nsczjcdflnl7a8b0ywwq16jd3hp";
+    };
+    meta.homepage = "https://github.com/weirongxu/coc-explorer/";
+  };
+
   coc-fzf = buildVimPluginFrom2Nix {
     pname = "coc-fzf";
-    version = "2020-04-19";
+    version = "2020-08-20";
     src = fetchFromGitHub {
       owner = "antoinemadec";
       repo = "coc-fzf";
-      rev = "82e846d193856660be716c8b89e668aead06d665";
-      sha256 = "0rpxjxw51mks6jq6akw5sgl77px038gdgqa4yhpmlpidb679apg2";
+      rev = "341ea7db0ab85a2ecb3a067ca721c1327fcd7013";
+      sha256 = "0gqs6xdnmg33xraxqv10jl7dhaca19dlidmc86zdki2hg1bckr9b";
     };
     meta.homepage = "https://github.com/antoinemadec/coc-fzf/";
   };
 
   coc-git = buildVimPluginFrom2Nix {
     pname = "coc-git";
-    version = "2020-04-18";
+    version = "2020-08-21";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-git";
-      rev = "623a5351c8eca639e3cffee38f941426f2df2422";
-      sha256 = "1v5q9775602drj7dr1dhshd22jbz6kxmkacqhbnddjpw2drdfzv1";
+      rev = "5a768cd395fc94e0448c596fafaf5f78d15fb968";
+      sha256 = "019mb2v7ldyzjjh86kxyxrbrgyf9chgp0f0nkwk0fiwf2qi2141y";
     };
     meta.homepage = "https://github.com/neoclide/coc-git/";
   };
 
   coc-go = buildVimPluginFrom2Nix {
     pname = "coc-go";
-    version = "2020-03-10";
+    version = "2020-08-12";
     src = fetchFromGitHub {
       owner = "josa42";
       repo = "coc-go";
-      rev = "587501a4445c1edb5d5e10927c5f8274f0e0ea52";
-      sha256 = "16cgdxn93zf0q5d80xb9c6khzgx02qvsjdaw3kf07qqsmdjvy4gj";
+      rev = "b068394634189ede2fb96b742cadcaa852bf46b0";
+      sha256 = "099dgk3kc814hgnpd0jhc6sz3d7512i86i99n6hq6yswsg7n1d51";
     };
     meta.homepage = "https://github.com/josa42/coc-go/";
   };
@@ -449,12 +473,12 @@ let
 
   coc-html = buildVimPluginFrom2Nix {
     pname = "coc-html";
-    version = "2020-03-30";
+    version = "2020-07-28";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-html";
-      rev = "8ae5d2832761b5868f69c67f33ce26f9edb26c65";
-      sha256 = "1rf9qfimnbxjr5s55pzm8npixan5cz2v17g4j34f18i9ky6yyk0b";
+      rev = "36aaa65d5ee7d998727776739d03affcc26bbe5b";
+      sha256 = "07vb9jgy9bpq5k1gymr2ys8smafcrybf0nmpkfsq8scqxsydnnq9";
     };
     meta.homepage = "https://github.com/neoclide/coc-html/";
   };
@@ -473,60 +497,72 @@ let
 
   coc-java = buildVimPluginFrom2Nix {
     pname = "coc-java";
-    version = "2020-04-23";
+    version = "2020-08-11";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-java";
-      rev = "3c914c2b9e154889361d2631cd2188cf7e5fa020";
-      sha256 = "0q7q2z7k2sxqgi6nyj669iq2p4h3962i8hv3gzg2mpi0p73xs98k";
+      rev = "aed8ccb10acf1863fb0fe622f21c3a0be18e362f";
+      sha256 = "1hrwj4x09gnqnwv43bxx9w2y3nrhqbjc3yl2q8ck22212s66wkpi";
     };
     meta.homepage = "https://github.com/neoclide/coc-java/";
   };
 
   coc-jest = buildVimPluginFrom2Nix {
     pname = "coc-jest";
-    version = "2020-04-09";
+    version = "2020-05-27";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-jest";
-      rev = "3fac1864ef1af87ee096f0ab6514a4b890363231";
-      sha256 = "1z2sbzr84gh935553g6bfkpx7s4i37s200a1s9dqay9cq92jh7hy";
+      rev = "431471caa9011868327fff0f9f7e0a944b7ca33b";
+      sha256 = "0vcri3kp8njsp4zgl74vc6ydhxq5spzx6pm798jh2lvrid2byvg9";
     };
     meta.homepage = "https://github.com/neoclide/coc-jest/";
   };
 
   coc-json = buildVimPluginFrom2Nix {
     pname = "coc-json";
-    version = "2020-03-13";
+    version = "2020-05-12";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-json";
-      rev = "33ca64c00ee5c0d759a6f537b23971476b85f8e3";
-      sha256 = "07mblxxvl95kfy0wwm5r75j6y3v8fvyh6cwiza5rg1z9dlw1xddw";
+      rev = "66b482dbc8008b9a111e6141aa2e63baa16fb2d4";
+      sha256 = "0ixqk417ba1yz7lnjkir5h9h8qm5jc9sh2190vmddxr8wgxhjhbb";
     };
     meta.homepage = "https://github.com/neoclide/coc-json/";
   };
 
   coc-lists = buildVimPluginFrom2Nix {
     pname = "coc-lists";
-    version = "2020-04-18";
+    version = "2020-07-23";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-lists";
-      rev = "f68a09974d8bd9a4474bfc7845c2e628919bb619";
-      sha256 = "1fcz7m1pbf69gnys9j777w77pxwsiwi1jdlcnb61c57xdrdcqr5d";
+      rev = "bf352d6befd23804897a08b50fa6edcea676a7b3";
+      sha256 = "0r8sbw4pgaay2zjh2rv1x926hs8jixznanc2dxjvicjnmgbg1nmn";
     };
     meta.homepage = "https://github.com/neoclide/coc-lists/";
   };
 
+  coc-markdownlint = buildVimPluginFrom2Nix {
+    pname = "coc-markdownlint";
+    version = "2020-08-02";
+    src = fetchFromGitHub {
+      owner = "fannheyward";
+      repo = "coc-markdownlint";
+      rev = "a1d6162a898b1538eb061675a63251cbd4eb8470";
+      sha256 = "0gmci9x7kppv14lr8x8fnmkq1rp5lm8x66904fy419jipnl96g6g";
+    };
+    meta.homepage = "https://github.com/fannheyward/coc-markdownlint/";
+  };
+
   coc-metals = buildVimPluginFrom2Nix {
     pname = "coc-metals";
-    version = "2020-04-22";
+    version = "2020-08-19";
     src = fetchFromGitHub {
       owner = "ckipp01";
       repo = "coc-metals";
-      rev = "b35bb16122d8771c9936f1203d0c712d45017f13";
-      sha256 = "1w9vgxai421j3qbzbm42hq3fyzwf2a9n89y10vj9vhir0q0j8az0";
+      rev = "14c820dad44b057e2b8343f7d8896529cd973ee6";
+      sha256 = "0569by8x73dpb3hapbx73x9fg2wzzb965mkkifqgdq4wdg6wizkx";
     };
     meta.homepage = "https://github.com/ckipp01/coc-metals/";
   };
@@ -557,24 +593,24 @@ let
 
   coc-prettier = buildVimPluginFrom2Nix {
     pname = "coc-prettier";
-    version = "2020-04-13";
+    version = "2020-07-23";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-prettier";
-      rev = "771bb16700e8123d7a114ff9c02a8c3ba1641108";
-      sha256 = "09srgkg1sqdh01ix767ssi4mp4p76g9am4pg8fzqdj3pdjyr2yk2";
+      rev = "4857302b60bb0c9db20fa8db71b0eac4696c9254";
+      sha256 = "114yn1sc457jc9jp5hvw3k0dvm0i9bcn6v2dqvb9dgwskq78ca7f";
     };
     meta.homepage = "https://github.com/neoclide/coc-prettier/";
   };
 
   coc-python = buildVimPluginFrom2Nix {
     pname = "coc-python";
-    version = "2020-04-24";
+    version = "2020-06-15";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-python";
-      rev = "968aec39f74c6f80e6c9c3c0fed51b6113a1a35a";
-      sha256 = "135z48idr8r7604ymiqdsml9z6d3swaja89697znszigpy05nz11";
+      rev = "241c6b39e6618279b619926269431ef45de87840";
+      sha256 = "1x3lrk4x7qhp9pg8x11k36pcgd5f45la4r77fq82jy307s5dny20";
     };
     meta.homepage = "https://github.com/neoclide/coc-python/";
   };
@@ -593,25 +629,26 @@ let
 
   coc-rls = buildVimPluginFrom2Nix {
     pname = "coc-rls";
-    version = "2020-04-23";
+    version = "2020-08-11";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-rls";
-      rev = "142353e2f71cb6c1b235db0cf430ca53e211613b";
-      sha256 = "07gkspvh5l25vyny5waiw0y3fm5a8qbrml13r7llgp4lqzzh96bd";
+      rev = "49ed83bb6d6bc01142ba18774575987b12857aee";
+      sha256 = "05lbfl60ka9zx8s6ack92v3vk3zj47w1fscdfkdqafcaqizlgia1";
     };
     meta.homepage = "https://github.com/neoclide/coc-rls/";
   };
 
   coc-rust-analyzer = buildVimPluginFrom2Nix {
     pname = "coc-rust-analyzer";
-    version = "2020-04-24";
+    version = "2020-08-20";
     src = fetchFromGitHub {
       owner = "fannheyward";
       repo = "coc-rust-analyzer";
-      rev = "1dcdf6768520bff29921c50ef904478cbdfe0fb8";
-      sha256 = "1p6hyixx9bjpyy42g2w4bnxwv9hafs5ppsx1fq8gndnq3nsjcyl3";
+      rev = "ac57b7b3cdaee3cfb56b76a8fc13444337f09276";
+      sha256 = "0n26d63qifhnsrpwq8x587mh9y83rmayc2car222hjqbrg705r28";
     };
+    meta.homepage = "https://github.com/fannheyward/coc-rust-analyzer/";
   };
 
   coc-smartf = buildVimPluginFrom2Nix {
@@ -628,36 +665,36 @@ let
 
   coc-snippets = buildVimPluginFrom2Nix {
     pname = "coc-snippets";
-    version = "2020-04-23";
+    version = "2020-06-10";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-snippets";
-      rev = "cad80795d4abcbbd2aa6da462af1087e9134b4eb";
-      sha256 = "04wk7x148dcw3rx4fh3c7c80qillq0bf9vfdkc9l8xaglk0xh73h";
+      rev = "a36f36afe7094562756202d1bb88c1f80597393e";
+      sha256 = "117idj29gk8psj27zmwazanwxf4br08mlkcpnkxyw6blm5aibzpp";
     };
     meta.homepage = "https://github.com/neoclide/coc-snippets/";
   };
 
   coc-solargraph = buildVimPluginFrom2Nix {
     pname = "coc-solargraph";
-    version = "2020-02-14";
+    version = "2020-08-16";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-solargraph";
-      rev = "231447aae26a0e88aa6d9e207a7354c4ca37d564";
-      sha256 = "0amcx519r9j8jr6ckglywsjlyph3m5jq4qvbfwyir8ihxhxa4b0d";
+      rev = "e61385cc483768afc8d8c064b5c98baa474d0d9c";
+      sha256 = "1hiy12h85z8m6i4nc92jpi6z0zph8rpdmgb75czhy5y0cjwkn59q";
     };
     meta.homepage = "https://github.com/neoclide/coc-solargraph/";
   };
 
   coc-spell-checker = buildVimPluginFrom2Nix {
     pname = "coc-spell-checker";
-    version = "2020-03-16";
+    version = "2020-08-01";
     src = fetchFromGitHub {
       owner = "iamcco";
       repo = "coc-spell-checker";
-      rev = "4a8195f5f22d9d7b42998b7e3b846aa2aef7de52";
-      sha256 = "1w8b9icwdam8ljprc8avs5pwdiwmx3j1jxsg03d1lvis9w5xm0cd";
+      rev = "c1fe3de47f6ba93d4c44b514e530517c19a75880";
+      sha256 = "1yvcbfrd5lxgmxbvphpbzcw8ni6zjqmg2flkrvnz59b9rmafn8dg";
     };
     meta.homepage = "https://github.com/iamcco/coc-spell-checker/";
   };
@@ -712,36 +749,48 @@ let
 
   coc-tsserver = buildVimPluginFrom2Nix {
     pname = "coc-tsserver";
-    version = "2020-04-18";
+    version = "2020-08-20";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-tsserver";
-      rev = "1f46ed360e0cae124add5ff9c4a0718fccb66acb";
-      sha256 = "1fccyar9qmydj1ii7ixiwcnfrpsvk0q0xz3q4vr3mz34lmcj74rw";
+      rev = "e4f3ab555b35a0057d22dcc8bb7b7af7e43546d6";
+      sha256 = "0i1fpvbl228jhh50fbz8cppv2v20zy0zywb1qgh9hsmw6pfgjg1w";
     };
     meta.homepage = "https://github.com/neoclide/coc-tsserver/";
   };
 
   coc-vetur = buildVimPluginFrom2Nix {
     pname = "coc-vetur";
-    version = "2020-03-27";
+    version = "2020-06-28";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-vetur";
-      rev = "314df846b6bc2be9b7c808ed949a1fd693bba402";
-      sha256 = "14fmyrfmyk66wbfnbb2iwy7azjk10d8gyrv5p950aagmv8shif52";
+      rev = "37c70071a93aeacf23ac651cd6e9f7ed11582033";
+      sha256 = "037p3zkavfyh75wclibd2iwd1ds8kzi72q8zy7rwdchwxw57xwhj";
     };
     meta.homepage = "https://github.com/neoclide/coc-vetur/";
   };
 
+  coc-vimlsp = buildVimPluginFrom2Nix {
+    pname = "coc-vimlsp";
+    version = "2020-08-01";
+    src = fetchFromGitHub {
+      owner = "iamcco";
+      repo = "coc-vimlsp";
+      rev = "efb672fe82d8619d83d3978714393e13aee8e296";
+      sha256 = "16whzvyzbx8zh7z33w7pir264dmbapkanb15mkazfhkh0wm3sfvf";
+    };
+    meta.homepage = "https://github.com/iamcco/coc-vimlsp/";
+  };
+
   coc-vimtex = buildVimPluginFrom2Nix {
     pname = "coc-vimtex";
-    version = "2020-03-27";
+    version = "2020-07-22";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-vimtex";
-      rev = "0a4f8ee29afc4e1dcfdc8846f116a1db32fa9867";
-      sha256 = "0z9kxm40kr8a5sa06vkg7xaai2n54y21xfkrsx774zzdkcrrkizk";
+      rev = "4c88459c1ccf0c0e1935b73f216d974a3c89f4e5";
+      sha256 = "0gk38r8060linhbcsqfhv7bxggz4fqi4chsfpxf6b0rnmca851pa";
     };
     meta.homepage = "https://github.com/neoclide/coc-vimtex/";
   };
@@ -760,48 +809,48 @@ let
 
   coc-yaml = buildVimPluginFrom2Nix {
     pname = "coc-yaml";
-    version = "2020-03-06";
+    version = "2020-08-21";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-yaml";
-      rev = "338192a2434b96b139fb8c07d260da00b3100997";
-      sha256 = "020jpsm9ss2v3x1g43m920w2yamv8khl7mg7wm4sx6qsl3rlfq4g";
+      rev = "a453c70b2507d66e48a2d4e89f78cb5f340f140f";
+      sha256 = "0av0jv0g01cpkf5rsicniq7maa6c509bc3gs5piczf5za990nrsx";
     };
     meta.homepage = "https://github.com/neoclide/coc-yaml/";
   };
 
   coc-yank = buildVimPluginFrom2Nix {
     pname = "coc-yank";
-    version = "2020-03-17";
+    version = "2020-06-02";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-yank";
-      rev = "6cb8bc7f2d41b9fb75c797c5805444badeff3dd9";
-      sha256 = "0s28684531ihczg5nf2m3f8z1vx9fw4yllfq7jz8g7ifw922ddxb";
+      rev = "7983c28509a61a7eb014e178525845797f5779ed";
+      sha256 = "1mjdd1kqvc5hzygjs2gv8vrpr3wc2a9590cr6vq0pfllxbkyqjng";
     };
     meta.homepage = "https://github.com/neoclide/coc-yank/";
   };
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc-nvim";
-    version = "2020-04-23";
+    version = "2020-08-08";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "0d4f02555e5aaecbd8efef47a70ba2f2c6412d1f";
-      sha256 = "0129gr3hsagr1lzngvbgs4bnvj92izxavval0zyxgh68w3vlak42";
+      rev = "806ce47583d66d0b574a3c993526033971e700cf";
+      sha256 = "1v29l7jrp1n141q8lywas5jflbjid6rryym732ga41yjqkrmlvip";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
 
   colorizer = buildVimPluginFrom2Nix {
     pname = "colorizer";
-    version = "2018-06-16";
+    version = "2020-07-23";
     src = fetchFromGitHub {
       owner = "lilydjwg";
       repo = "colorizer";
-      rev = "afc1491e5b9c36305ce710bdad2b48f069141183";
-      sha256 = "1dpiv9z8h6196acncyjhzd1qa56y17468fpxbfzrx5q2266sajc7";
+      rev = "1ddc68adbf45331158c61507a55fcc918bb61654";
+      sha256 = "16zrpgnlb3v4yvpycq9spivs97vzv18m3jc47rl0hgpjdf6vhkxx";
     };
     meta.homepage = "https://github.com/lilydjwg/colorizer/";
   };
@@ -820,12 +869,12 @@ let
 
   command-t = buildVimPluginFrom2Nix {
     pname = "command-t";
-    version = "2019-12-01";
+    version = "2020-06-02";
     src = fetchFromGitHub {
       owner = "wincent";
       repo = "command-t";
-      rev = "9bdc2e1585419640129a48c646bbf8459f96951b";
-      sha256 = "0iim0lhib6fiainyb48ibl2qzgv8cmn9yinmd1k6i2y5y26wlhfy";
+      rev = "ea7a889bda2849ba87fc12053bf6dd14467d7b72";
+      sha256 = "02rswhlkgbapnjzqi2nv95ag08p9cjlqscwv6i17f9kvba929hkl";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/wincent/command-t/";
@@ -833,16 +882,40 @@ let
 
   committia-vim = buildVimPluginFrom2Nix {
     pname = "committia-vim";
-    version = "2018-10-23";
+    version = "2020-05-14";
     src = fetchFromGitHub {
       owner = "rhysd";
       repo = "committia.vim";
-      rev = "d367190c7ffe95f4ac5d30b2e9da4cd9898579b9";
-      sha256 = "1yqsdy1mxc775qcrcl1yi930m2q6364mgjdj06vwnph1rg98w0ql";
+      rev = "2cded48477a5e308c77a0d289cc9b540669b701f";
+      sha256 = "1g6ykdh7d16q6nvpvmxx4ss8w7cisx5r8qmbrrvhpwmbb3894pxp";
     };
     meta.homepage = "https://github.com/rhysd/committia.vim/";
   };
 
+  completion-nvim = buildVimPluginFrom2Nix {
+    pname = "completion-nvim";
+    version = "2020-08-13";
+    src = fetchFromGitHub {
+      owner = "nvim-lua";
+      repo = "completion-nvim";
+      rev = "43cb0b123544b602bd31747a3d8cf52ef0660723";
+      sha256 = "0qllj4zqbw2fhp17lqk0xmbraq86gl9gjp9vszpd9jbw7h4lh168";
+    };
+    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";
@@ -855,14 +928,26 @@ let
     meta.homepage = "https://github.com/chikatoike/concealedyank.vim/";
   };
 
+  conjure = buildVimPluginFrom2Nix {
+    pname = "conjure";
+    version = "2020-08-12";
+    src = fetchFromGitHub {
+      owner = "Olical";
+      repo = "conjure";
+      rev = "db0de94cc2c4fe1bf1a8fe5c78fcc774097d1e90";
+      sha256 = "1vcp2hzp5kg1rpdbl8sil16zqc1qawxfchwbq4c4kwyr2kxkavhh";
+    };
+    meta.homepage = "https://github.com/Olical/conjure/";
+  };
+
   context_filetype-vim = buildVimPluginFrom2Nix {
     pname = "context_filetype-vim";
-    version = "2020-03-13";
+    version = "2020-04-27";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "context_filetype.vim";
-      rev = "f200fe69939089da9e61bd9a3ff75b4ef7adc708";
-      sha256 = "06pclan83yww5qf26fmqhby8iks0rzlxgpk254vxmkihbypvpa51";
+      rev = "a96f74ac35b77ebe2c5788ca31e66d87ab239adb";
+      sha256 = "1pgb86cpv4649qnxfw4280sqghldm66s572pg610giqjxda4a52s";
     };
     meta.homepage = "https://github.com/Shougo/context_filetype.vim/";
   };
@@ -881,12 +966,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/";
   };
@@ -905,12 +990,12 @@ let
 
   csv-vim = buildVimPluginFrom2Nix {
     pname = "csv-vim";
-    version = "2020-04-20";
+    version = "2020-07-11";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "csv.vim";
-      rev = "22e07247161c72adc029497b77d1b5d91b6b184b";
-      sha256 = "1p6zsqgbs9qr7dznq8nls8n405jjd0bsyzjrns9h8jxk6sf7n56j";
+      rev = "528766a549dc5022f3d89e84cbb80c7b911994f1";
+      sha256 = "160h9b59znbb0i6c7lh132mn5bl4njazfqsadz3p995vb9yc0sa6";
     };
     meta.homepage = "https://github.com/chrisbra/csv.vim/";
   };
@@ -953,72 +1038,72 @@ let
 
   ctrlp-vim = buildVimPluginFrom2Nix {
     pname = "ctrlp-vim";
-    version = "2020-02-08";
+    version = "2020-05-26";
     src = fetchFromGitHub {
       owner = "ctrlpvim";
       repo = "ctrlp.vim";
-      rev = "585143acbe15f362852d78bd050baff3c12902d7";
-      sha256 = "0ijkzlb08sc47cax4f328hlk68nscx5wdzhihpj106vrnfyrpyx3";
+      rev = "d93d97813dc839ef0782302a0debd7c4877f09f3";
+      sha256 = "0lgw839xnmdsbaiflqp3i2liqhg4lp01iaz0jv380kbw9g6k666k";
     };
     meta.homepage = "https://github.com/ctrlpvim/ctrlp.vim/";
   };
 
   dart-vim-plugin = buildVimPluginFrom2Nix {
     pname = "dart-vim-plugin";
-    version = "2020-03-31";
+    version = "2020-08-14";
     src = fetchFromGitHub {
       owner = "dart-lang";
       repo = "dart-vim-plugin";
-      rev = "4375ab9cc1fe0077c36a9aba5dd7145ce4a2fa6f";
-      sha256 = "03cl55s4f2qa8hwag2w38gfc7mpp6jhy0vx7qsmkn24cqk1jvv2k";
+      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-04-20";
+    version = "2020-08-19";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "defx.nvim";
-      rev = "1fb1d5f9b09ff6da815dfcdf3dfcb277605b9650";
-      sha256 = "0vih85hb4igy200lml7gvaiifkgydjqqjlh7ymcvg3sx5l6psapy";
+      rev = "1cfffcff2aba8a7b819f8b27414021d451abb4ce";
+      sha256 = "0ysnkwv9hk84i4rdglrmjms24nh9i5x5qvr8lyzrjzzp8zj7qs2l";
     };
     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/";
   };
@@ -1037,36 +1122,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-04-21";
+    version = "2020-08-03";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "609c85797a5f6acc2e2357cf56e7f6c78c561145";
-      sha256 = "0rx0nvsyzj1wl7p30g769cidspkq3xpvzpdhz94qfsczdm68yhi0";
+      rev = "7df7851826a1e8417a9b242d4ce3bd09ae1c6298";
+      sha256 = "1rf5qir9ybk1l7bb63xkprssa8jpsiap26yn6k3xy2drfvbrlika";
     };
     meta.homepage = "https://github.com/Shougo/denite.nvim/";
   };
 
   deol-nvim = buildVimPluginFrom2Nix {
     pname = "deol-nvim";
-    version = "2020-04-14";
+    version = "2020-07-11";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deol.nvim";
-      rev = "d438a6f550910a5688481ff0251771ac7dd09245";
-      sha256 = "0p6kvl1pgf5d5rnag297dhjzzplmawvmi2j1r2m6p0732ls4qxrw";
+      rev = "d620b34fe5035807ad680004812080edc0f2a794";
+      sha256 = "09s86h14nrscpn16xppyz8nnjchyfv91z2cx4p0a2m46hqx962jj";
     };
     meta.homepage = "https://github.com/Shougo/deol.nvim/";
   };
@@ -1159,13 +1244,12 @@ let
 
   deoplete-jedi = buildVimPluginFrom2Nix {
     pname = "deoplete-jedi";
-    version = "2020-04-13";
+    version = "2020-08-06";
     src = fetchFromGitHub {
       owner = "deoplete-plugins";
       repo = "deoplete-jedi";
-      rev = "42f4c24a951b0fb5e76a70e5234f16193a8a746d";
-      sha256 = "1incjz7xsh4cfxw06ff07830ywn0p99b1zmml8pkapbnh3x2bjgc";
-      fetchSubmodules = true;
+      rev = "2786058b9022ce6e50db7f75088e69e07185e52c";
+      sha256 = "0myn6rgwq7yd3hpxdxa7kj3dlk2x9ljqlznqg95qcm8i0w53z1wg";
     };
     meta.homepage = "https://github.com/deoplete-plugins/deoplete-jedi/";
   };
@@ -1184,24 +1268,24 @@ let
 
   deoplete-khard = buildVimPluginFrom2Nix {
     pname = "deoplete-khard";
-    version = "2019-09-02";
+    version = "2020-04-30";
     src = fetchFromGitHub {
       owner = "nicoe";
       repo = "deoplete-khard";
-      rev = "27221723a3bb8e480ff8cbe7f4be9ff38c076bf7";
-      sha256 = "0g7sysm5lb8fpgagfg4565fz4rn16djdc4m2213ryq1s3crx40gw";
+      rev = "7f81116b1c68d49f189a2aca62a31729fb7bb0e7";
+      sha256 = "0jnpv0lpli9qjqwkzfl66fyhywa6q586q44d26q3h7sllxpz0066";
     };
     meta.homepage = "https://github.com/nicoe/deoplete-khard/";
   };
 
   deoplete-lsp = buildVimPluginFrom2Nix {
     pname = "deoplete-lsp";
-    version = "2020-03-07";
+    version = "2020-07-13";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete-lsp";
-      rev = "6aa2bfd73a181fa6b55021264c4a8a83237ce558";
-      sha256 = "1bcvfbv046fk34vnc1ly8civ3sibqlzli8vm2548dfxc55wcwsys";
+      rev = "ae0b7d023a33f0692652a21f532051e8718e1800";
+      sha256 = "00008andpp08l6fm8qadp8ycm59s8gx2m1vskmzg3lw905fk0gra";
     };
     meta.homepage = "https://github.com/Shougo/deoplete-lsp/";
   };
@@ -1280,28 +1364,40 @@ let
 
   deoplete-nvim = buildVimPluginFrom2Nix {
     pname = "deoplete-nvim";
-    version = "2020-04-15";
+    version = "2020-08-10";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete.nvim";
-      rev = "bbec852adee45a1500fa817a3c17889dc328cad0";
-      sha256 = "159ki94lb3n1kkmnd4cbmyc96xbpni45p7fgsml8x314j6iiihgk";
+      rev = "ba3913cc52b457877836f7423b0929b770dda42b";
+      sha256 = "16hn83ns278x9p280b0gpk4b4vhg50004bpnff7d3inf3x6pli4j";
     };
     meta.homepage = "https://github.com/Shougo/deoplete.nvim/";
   };
 
   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";
@@ -1326,26 +1422,38 @@ 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-04-08";
+    version = "2020-06-08";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "echodoc.vim";
-      rev = "31533d9c6c2723dfb4cf5691c83f330a3a0ccddd";
-      sha256 = "1ygm4g90zv009iqv8k8n4930a7gpij5jxbz7dqq2dfyj4jn37rkf";
+      rev = "4719626bfd477f1189dd9992614ff452d3ea3caf";
+      sha256 = "0bpaav7yf06wlzfiyx6iylxan8a9hici041pnmlw7kgf176h6w7b";
     };
     meta.homepage = "https://github.com/Shougo/echodoc.vim/";
   };
 
   editorconfig-vim = buildVimPluginFrom2Nix {
     pname = "editorconfig-vim";
-    version = "2020-04-07";
+    version = "2020-06-02";
     src = fetchFromGitHub {
       owner = "editorconfig";
       repo = "editorconfig-vim";
-      rev = "8aff78a03357bf573abcec407a543762f281b7d3";
-      sha256 = "015sfz2j0mfnfpm6zf8jnh0lm8943cpccjlbj7ks1dsvs36m056i";
+      rev = "0a3c1d8082e38a5ebadcba7bb3a608d88a9ff044";
+      sha256 = "1w60rsij0ag74vjal2l75k4g4xv8438a0izvzpy5xir4bby2g7dz";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/editorconfig/editorconfig-vim/";
@@ -1363,14 +1471,26 @@ 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-03-07";
+    version = "2020-06-20";
     src = fetchFromGitHub {
       owner = "mattn";
       repo = "emmet-vim";
-      rev = "c7643e5b616430f766528b225528a5228adb43df";
-      sha256 = "0wjxx648lp11nqzgrdcbqikjs85knpvk594b9l25hadhd5awgahv";
+      rev = "dc6cb4fd074f4c371158eeab0c8e4ce4af33534b";
+      sha256 = "1cy201c5imbw2pw65f1s0nn8p6vwm00nqlvxwygh18dhy2qv4gfa";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/mattn/emmet-vim/";
@@ -1414,12 +1534,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/";
   };
@@ -1438,12 +1558,12 @@ let
 
   ferret = buildVimPluginFrom2Nix {
     pname = "ferret";
-    version = "2020-02-09";
+    version = "2020-05-15";
     src = fetchFromGitHub {
       owner = "wincent";
       repo = "ferret";
-      rev = "24633d3047eb93013743b28b0ea735783c7850d9";
-      sha256 = "06c3x3fqks30rzkj7z28qsgx9fcghz86ajc0cx3aai69xhgdipb5";
+      rev = "6218891a01418377c67b12ad57046ec78958ced2";
+      sha256 = "1sjia8bk9gmwymhdrc3bksax4msincychd96ar5bdmifr6p1klg4";
     };
     meta.homepage = "https://github.com/wincent/ferret/";
   };
@@ -1509,6 +1629,18 @@ let
     meta.homepage = "https://github.com/megaannum/forms/";
   };
 
+  fruzzy = buildVimPluginFrom2Nix {
+    pname = "fruzzy";
+    version = "2019-10-28";
+    src = fetchFromGitHub {
+      owner = "raghur";
+      repo = "fruzzy";
+      rev = "b312ae79db98cf6939c8319f2511efa06889e8e3";
+      sha256 = "01iisbawq2w7yw866qvv109amnvyaymzyz9nqal3cjrrcwk6mmdk";
+    };
+    meta.homepage = "https://github.com/raghur/fruzzy/";
+  };
+
   fugitive-gitlab-vim = buildVimPluginFrom2Nix {
     pname = "fugitive-gitlab-vim";
     version = "2019-10-24";
@@ -1523,12 +1655,12 @@ let
 
   fzf-vim = buildVimPluginFrom2Nix {
     pname = "fzf-vim";
-    version = "2020-04-09";
+    version = "2020-08-12";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "f86ef1bce602713fe0b5b68f4bdca8c6943ecb59";
-      sha256 = "0h3mlc4lvnlzg7pfrr09vrfn93lglzfp5ca6bl4jhsi63xw7x3ad";
+      rev = "4145f53f3d343c389ff974b1f1a68eeb39fba18b";
+      sha256 = "07fb52c8bmmpfin24pqqh04q157qx52xjri2wjm004yq69b44hx7";
     };
     meta.homepage = "https://github.com/junegunn/fzf.vim/";
   };
@@ -1547,24 +1679,24 @@ let
 
   gentoo-syntax = buildVimPluginFrom2Nix {
     pname = "gentoo-syntax";
-    version = "2020-03-08";
+    version = "2020-06-05";
     src = fetchFromGitHub {
       owner = "gentoo";
       repo = "gentoo-syntax";
-      rev = "42163237b57c56de9a24fe6549e46c805fab2bb3";
-      sha256 = "1bg3ismjlp99drsfyrkjb137ypxmp0qpy8pp9ry9i8ljmnffbgal";
+      rev = "47b6900c425614d4ba22223c13a23920f0618d9f";
+      sha256 = "0agswv1r5nxbnw0nddhw9vqvrfsvsgh18nwrg83c01sj97075qmv";
     };
     meta.homepage = "https://github.com/gentoo/gentoo-syntax/";
   };
 
   ghcid = buildVimPluginFrom2Nix {
     pname = "ghcid";
-    version = "2020-04-13";
+    version = "2020-08-12";
     src = fetchFromGitHub {
       owner = "ndmitchell";
       repo = "ghcid";
-      rev = "bcbb1c9182fc1940d5e55bb716dc7621ab7c36bc";
-      sha256 = "1my9khiq1ssqkp0nixrzly0xlyla6bzdl3x9ky6687848cpriaz0";
+      rev = "d6191a111a1160ddecb05292eefe28ae362ccbaa";
+      sha256 = "17dp28a3ipbx8fwsj0h9imkrgd0nfjzpcsn1zjdbih1kfh494smf";
     };
     meta.homepage = "https://github.com/ndmitchell/ghcid/";
   };
@@ -1581,6 +1713,18 @@ let
     meta.homepage = "https://github.com/eagletmt/ghcmod-vim/";
   };
 
+  git-messenger-vim = buildVimPluginFrom2Nix {
+    pname = "git-messenger-vim";
+    version = "2020-08-20";
+    src = fetchFromGitHub {
+      owner = "rhysd";
+      repo = "git-messenger.vim";
+      rev = "c16b0d43ca57e77081f1f23f67552efe37110b39";
+      sha256 = "171w3dv3jl4mw1ikh5p688v0a8nf85h862d9zvsmdzs2v6ajigpw";
+    };
+    meta.homepage = "https://github.com/rhysd/git-messenger.vim/";
+  };
+
   gitignore-vim = buildVimPluginFrom2Nix {
     pname = "gitignore-vim";
     version = "2014-03-16";
@@ -1605,38 +1749,62 @@ 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";
+    src = fetchFromGitHub {
+      owner = "buoto";
+      repo = "gotests-vim";
+      rev = "e0ad687be26875153ecd43d16db3b93a637394e4";
+      sha256 = "01w981v7rya9fnxwdhlka4vfzlnw87pxmfcqmvxh3p96lmi71xjm";
+    };
+    meta.homepage = "https://github.com/buoto/gotests-vim/";
+  };
+
   goyo-vim = buildVimPluginFrom2Nix {
     pname = "goyo-vim";
-    version = "2019-06-13";
+    version = "2020-06-08";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "goyo.vim";
-      rev = "6b6ed2734084fdbb6315357ddcaecf9c8e6f143d";
-      sha256 = "1ywlz1hn54kxyp5q0angriaarimq7ys7m6sk6l4x8jr1g2yh0afz";
+      rev = "3e129198bba7d6b50406902002ad7d213a6cccaa";
+      sha256 = "1b2wsxbg27nmwxrncwddkl2ck8hbiqdqi821vl9d1fl5nx042y2b";
     };
     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/";
   };
 
   gruvbox-community = buildVimPluginFrom2Nix {
     pname = "gruvbox-community";
-    version = "2020-02-24";
+    version = "2020-05-23";
     src = fetchFromGitHub {
       owner = "gruvbox-community";
       repo = "gruvbox";
-      rev = "f5711c15480b83378bde13306fa997057c0c81cd";
-      sha256 = "0vx289a7av31dxm58c6kmfdnsrwnq1rzj5rwci2pqjdac8ds2qm0";
+      rev = "933b6cc35a0f180ff488ef20c7b534c9c3b6701a";
+      sha256 = "0w10hcz66dgilx6fv07bb3zsf5c0x9gv4vhp15c5fp2rzwxi10bn";
     };
     meta.homepage = "https://github.com/gruvbox-community/gruvbox/";
   };
@@ -1655,12 +1823,12 @@ let
 
   gv-vim = buildVimPluginFrom2Nix {
     pname = "gv-vim";
-    version = "2020-01-27";
+    version = "2020-05-22";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "gv.vim";
-      rev = "72dc64df998355b41a75ebfa32adfd08ed5c5819";
-      sha256 = "01g4rnsh2n691n9a6gqhyzivr4mzlgz3i2mwb7vxpkp61yf755bb";
+      rev = "61d877d23caaad9009d672f90fe2ab576ab93d2d";
+      sha256 = "00h4d6jah0fdr5m8x9c1gmmm9wskplixnvbbalfbbpc599xhgj83";
     };
     meta.homepage = "https://github.com/junegunn/gv.vim/";
   };
@@ -1701,14 +1869,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-04-23";
+    version = "2020-07-20";
     src = fetchFromGitHub {
       owner = "cocopon";
       repo = "iceberg.vim";
-      rev = "acf6696e14fd8cfa2ed338076a7c3a68fad42486";
-      sha256 = "1hy9n37nkkax6qdcg23a522bz26r8b23w9kj570qml9v3ck4ihqm";
+      rev = "203d56849325fb0420587c9951859a755798aea3";
+      sha256 = "16calikypw9gyb4vzybwqgl329v6wpqj05z6m2ajbr027fksxfjr";
     };
     meta.homepage = "https://github.com/cocopon/iceberg.vim/";
   };
@@ -1775,12 +1955,12 @@ let
 
   indentLine = buildVimPluginFrom2Nix {
     pname = "indentLine";
-    version = "2020-03-06";
+    version = "2020-05-29";
     src = fetchFromGitHub {
       owner = "Yggdroot";
       repo = "indentLine";
-      rev = "15aceda8c4eea621b66faa8673fca0b9fbe2f457";
-      sha256 = "1icb1h811lp86hg4w8y8mmmsfm4c80n7m8r1wi58lnm60mjasas4";
+      rev = "43dbd7092801637972b1d9fcecaaeee11f8e00cf";
+      sha256 = "0qnzi19vb5qk773pc9v75wqm2ipdkcscljblla6gq05srm1h8x9d";
     };
     meta.homepage = "https://github.com/Yggdroot/indentLine/";
   };
@@ -1799,12 +1979,12 @@ let
 
   iosvkem = buildVimPluginFrom2Nix {
     pname = "iosvkem";
-    version = "2020-01-18";
+    version = "2020-06-18";
     src = fetchFromGitHub {
       owner = "neutaaaaan";
       repo = "iosvkem";
-      rev = "08e36b649c83eece7edbd2e04e42e077aebc78eb";
-      sha256 = "0jawl7fs6wl3ny9vsmzqv5pnkv5nn6wj1nx7hzgdl41183958pni";
+      rev = "df359d91510be0c078905568d9033c891a3a2f4b";
+      sha256 = "0xqh5hr4m6hm2vfms1iqarzhgkmrgx6f5ywyh6qhwkbrdj8q3lyq";
     };
     meta.homepage = "https://github.com/neutaaaaan/iosvkem/";
   };
@@ -1821,6 +2001,18 @@ let
     meta.homepage = "https://github.com/twerth/ir_black/";
   };
 
+  is-vim = buildVimPluginFrom2Nix {
+    pname = "is-vim";
+    version = "2017-10-30";
+    src = fetchFromGitHub {
+      owner = "haya14busa";
+      repo = "is.vim";
+      rev = "61d5029310c69bde700b2d46a454f80859b5af17";
+      sha256 = "1nnf6y62mc0rj7hbrapfkmr91ypsqkzhwgpfx7pahz8m3a2324q6";
+    };
+    meta.homepage = "https://github.com/haya14busa/is.vim/";
+  };
+
   jdaddy-vim = buildVimPluginFrom2Nix {
     pname = "jdaddy-vim";
     version = "2014-02-22";
@@ -1835,12 +2027,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/";
@@ -1860,12 +2052,12 @@ let
 
   Jenkinsfile-vim-syntax = buildVimPluginFrom2Nix {
     pname = "Jenkinsfile-vim-syntax";
-    version = "2019-12-31";
+    version = "2020-06-05";
     src = fetchFromGitHub {
       owner = "martinda";
       repo = "Jenkinsfile-vim-syntax";
-      rev = "164b457d87b65c6ca9e5998b69c6cd24248f62ac";
-      sha256 = "14s26hlsdqys7br84l9wiyvhcy17s6966mhgr9n6sdqmhz6lc4nm";
+      rev = "a701341879c6db93f5dffa37f4589eef3c4ded85";
+      sha256 = "0nm3lf37l1g8lpa4yz1va0s6vw0vw99zghy3dzq933j0kqmspgvp";
     };
     meta.homepage = "https://github.com/martinda/Jenkinsfile-vim-syntax/";
   };
@@ -1884,24 +2076,24 @@ let
 
   julia-vim = buildVimPluginFrom2Nix {
     pname = "julia-vim";
-    version = "2020-04-24";
+    version = "2020-07-31";
     src = fetchFromGitHub {
       owner = "JuliaEditorSupport";
       repo = "julia-vim";
-      rev = "c97e5cfb6ef20b725f859af694bec9c6a3a44145";
-      sha256 = "1349v5lhc4dg7ir42jj157jyf29bm7pj73h64n2501ddqdkb1zqd";
+      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/";
   };
@@ -1980,84 +2172,84 @@ 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/";
   };
 
   lf-vim = buildVimPluginFrom2Nix {
     pname = "lf-vim";
-    version = "2020-04-13";
+    version = "2020-06-11";
     src = fetchFromGitHub {
       owner = "ptzz";
       repo = "lf.vim";
-      rev = "505b5b6350671e978f8e7392e9b0dadbd98752a7";
-      sha256 = "18g4hpdkhj747r7ga153nk8qc5rbnxx1avx1n2h1xsj5m75fdhjx";
+      rev = "8eef4095f0ca4ec37b6877b7b01047146e987c6b";
+      sha256 = "17clfc8shmv485r6anpkkcq88x6n2pm54ir1pjy852spzykycika";
     };
     meta.homepage = "https://github.com/ptzz/lf.vim/";
   };
 
   lh-brackets = buildVimPluginFrom2Nix {
     pname = "lh-brackets";
-    version = "2020-03-02";
+    version = "2020-06-16";
     src = fetchFromGitHub {
       owner = "LucHermitte";
       repo = "lh-brackets";
-      rev = "dc91bb1e8ef45a0810d9c1ad412863977c8c4baf";
-      sha256 = "1yjmykn92i54cajr5wrj7m0wvaigy106c3hm8ks30xn4zm970x03";
+      rev = "0553fecb3425dafe65a724ad01d85427285ac184";
+      sha256 = "0ih6ccsqhqc9cynkzqfb55x5mfz743hvdrxzlhm0axrkxxn3nczb";
     };
     meta.homepage = "https://github.com/LucHermitte/lh-brackets/";
   };
 
   lh-vim-lib = buildVimPluginFrom2Nix {
     pname = "lh-vim-lib";
-    version = "2020-03-06";
+    version = "2020-08-20";
     src = fetchFromGitHub {
       owner = "LucHermitte";
       repo = "lh-vim-lib";
-      rev = "3a8383f2efbd7496c17a70bf4593773f6149435f";
-      sha256 = "0c6gnksyjyvsxqbp13q8bp9j4cg9x9m0kzrkx01p9k6wq297kpd9";
+      rev = "15722c04a41d49027c7b499703fc1dac376653a8";
+      sha256 = "1h94zzanzlixlmlyy3r54hk2lw9hwd49v9ij9lq3ghyc79gvhvgi";
     };
     meta.homepage = "https://github.com/LucHermitte/lh-vim-lib/";
   };
 
   lightline-ale = buildVimPluginFrom2Nix {
     pname = "lightline-ale";
-    version = "2020-01-18";
+    version = "2020-04-30";
     src = fetchFromGitHub {
       owner = "maximbaz";
       repo = "lightline-ale";
-      rev = "a1931d473d6600ccf7e426158b79c9df29463dda";
-      sha256 = "1zmwi4b8sbl3zpzp8hlz7j3gg4p9628s0174pcd2n6mdkfh235g5";
+      rev = "23352556fdaa067209fa22df424f1b88ab370f6a";
+      sha256 = "1cz1pcz6qxddpalymj2p19clnwsj568zlvbyg7mai0vxx6cv7a9w";
     };
     meta.homepage = "https://github.com/maximbaz/lightline-ale/";
   };
 
   lightline-bufferline = buildVimPluginFrom2Nix {
     pname = "lightline-bufferline";
-    version = "2020-02-14";
+    version = "2020-08-17";
     src = fetchFromGitHub {
       owner = "mengelbrecht";
       repo = "lightline-bufferline";
-      rev = "17683bc5802de7f295f2583a15461e2bc662f98b";
-      sha256 = "1rlamxwk2gm9pyxl9vym9w6rhgimzqa2hjghy3qdqwvif6w8ir6l";
+      rev = "4e0c69a53b64ac90ca5235f176a070e003108113";
+      sha256 = "1rhin9pcry3sgggvkzsmxd2s4x262m4x9xdvsrshkc2zj8wy8b0i";
     };
     meta.homepage = "https://github.com/mengelbrecht/lightline-bufferline/";
   };
 
   lightline-vim = buildVimPluginFrom2Nix {
     pname = "lightline-vim";
-    version = "2020-04-06";
+    version = "2020-08-16";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "lightline.vim";
-      rev = "b8976d2e549b417e5d1c1594fb9034b749976cc0";
-      sha256 = "1w86bg63qvigdva1g8w4lba63ghlsxfbjb0rqsxyxg6w7m9k6lhd";
+      rev = "1b412cf3af3dad79ee5807e6b151b8ac6aa4e2fc";
+      sha256 = "074jp56m55mbvyhl5sw4pmg8ivjxqmah1kl3nyxk61hnnv1ackb3";
     };
     meta.homepage = "https://github.com/itchyny/lightline.vim/";
   };
@@ -2136,12 +2328,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/";
   };
@@ -2158,18 +2350,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";
@@ -2182,6 +2458,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";
@@ -2206,14 +2506,26 @@ 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 = "2018-05-13";
+    version = "2020-06-06";
     src = fetchFromGitHub {
       owner = "eagletmt";
       repo = "neco-ghc";
-      rev = "682869aca5dd0bde71a09ba952acb59c543adf7d";
-      sha256 = "1v7ibi4fp99s4lswz3v0gf4i0h5i5gpj05xpsf4cixwj2zgh206h";
+      rev = "b4ea02c537975a5a2bf00cb5f24cd784b2b6f5ad";
+      sha256 = "13la3slqkljn7y8y9p8ic3majnvjf7pnrwr16cdpacklmz733x1f";
     };
     meta.homepage = "https://github.com/eagletmt/neco-ghc/";
   };
@@ -2256,12 +2568,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/";
   };
@@ -2280,12 +2592,12 @@ let
 
   neoformat = buildVimPluginFrom2Nix {
     pname = "neoformat";
-    version = "2020-04-24";
+    version = "2020-08-16";
     src = fetchFromGitHub {
       owner = "sbdchd";
       repo = "neoformat";
-      rev = "7af08e5a80c095a836d3f6762b991c6f9c4f2f2f";
-      sha256 = "17llh2jh2igkbjmnbii54g4x9g57y6xflh8d40wim980pb3jr57s";
+      rev = "56a9d6259981d0d9c2b33a4d65ccbb674af70baa";
+      sha256 = "0kn35l7kfqa0zvh1l8mdl3755hv1rx6xp5wjib9acsbk2czhg5nx";
     };
     meta.homepage = "https://github.com/sbdchd/neoformat/";
   };
@@ -2304,12 +2616,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/";
   };
@@ -2328,60 +2640,60 @@ let
 
   neosnippet-snippets = buildVimPluginFrom2Nix {
     pname = "neosnippet-snippets";
-    version = "2020-03-25";
+    version = "2020-08-16";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neosnippet-snippets";
-      rev = "2e72985f712f0d5cb707beba151555a1f0003630";
-      sha256 = "1lvm37q9zq4a077f2zm9dfp8zfg5d3853bmlih6sc8d6i477kcmb";
+      rev = "b7ba77a4eb39a95ffbb6b3ff0c3c43746441b2aa";
+      sha256 = "0yf55pi6d35brdva4n0x7yygjnymwbgwn1fx83nbzxhixmgbk45b";
     };
     meta.homepage = "https://github.com/Shougo/neosnippet-snippets/";
   };
 
   neosnippet-vim = buildVimPluginFrom2Nix {
     pname = "neosnippet-vim";
-    version = "2020-04-02";
+    version = "2020-08-03";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neosnippet.vim";
-      rev = "3aaf5e763410f57916227da407fd90726e19a612";
-      sha256 = "0zkw2q2s7756p4xgf49v4lj8lrzw35x81h1wzia7d9k92d7ivwca";
+      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 = "icymind";
+      owner = "overcache";
       repo = "NeoSolarized";
-      rev = "70609c44215c8d2c43ad8c631296caae08a9c8d4";
-      sha256 = "0bxrm2vm3z1y37sm6m2hdn72g2sw31dx1xhmjvd0ng72cnp84d9k";
+      rev = "b94b1a9ad51e2de015266f10fdc6e142f97bd617";
+      sha256 = "019nz56yirpg1ahg8adfafrxznalw056qwm3xjm9kzg6da8j6v48";
     };
-    meta.homepage = "https://github.com/icymind/NeoSolarized/";
+    meta.homepage = "https://github.com/overcache/NeoSolarized/";
   };
 
   neoterm = buildVimPluginFrom2Nix {
     pname = "neoterm";
-    version = "2020-04-23";
+    version = "2020-08-06";
     src = fetchFromGitHub {
       owner = "kassio";
       repo = "neoterm";
-      rev = "48900bd6a008120aeb33e3807f1d2c18985ad210";
-      sha256 = "1x788nrrxaa12cqsdi2gdx2haxji3v4rahpxjq309kd5s40m9z2j";
+      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/";
   };
@@ -2400,36 +2712,36 @@ 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/";
   };
 
   nerdcommenter = buildVimPluginFrom2Nix {
     pname = "nerdcommenter";
-    version = "2020-02-19";
+    version = "2020-06-08";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdcommenter";
-      rev = "c62e618a1ab5a50a4028e3296500ba29d9b033d8";
-      sha256 = "0w4bxj423dxxkcxnfmipf8x5jfm058rq4g3m98wzcz5zbambv3qs";
+      rev = "fade3d4b26f5a0d58f256a06ba7b0a04d9fb4f3b";
+      sha256 = "1vb5n4g5x3hpnc013gjf8frxxdrcq1zdcm3mpx90b0cjxi252cn3";
     };
     meta.homepage = "https://github.com/preservim/nerdcommenter/";
   };
 
   nerdtree = buildVimPluginFrom2Nix {
     pname = "nerdtree";
-    version = "2020-04-15";
+    version = "2020-08-18";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdtree";
-      rev = "29a321d061032df5b2ec347b6b4b778f665305a6";
-      sha256 = "08gfmpikxz6j9hymf64fbxd1630x3gvkq72d2dmdfr9an2xxh6zm";
+      rev = "577ddc73f0a1d2fd6166ed3268ab8536111037e0";
+      sha256 = "0bccr18nr42vwbb4i765yxjw18piyiyd12sm4snbkkxahp9yswf7";
     };
     meta.homepage = "https://github.com/preservim/nerdtree/";
   };
@@ -2446,6 +2758,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";
@@ -2460,24 +2784,24 @@ let
 
   nord-vim = buildVimPluginFrom2Nix {
     pname = "nord-vim";
-    version = "2019-12-17";
+    version = "2020-07-06";
     src = fetchFromGitHub {
       owner = "arcticicestudio";
       repo = "nord-vim";
-      rev = "f06189a4c054fe8c22e46aca4d451e03456f2283";
-      sha256 = "0gk4zq0gz3nnwfkldswg9bjpk0gf6d6mgfzcgvj0pnlbja6ass81";
+      rev = "57dffa746907e8ce5c4b520146ed0d89d3c29a51";
+      sha256 = "0xpz71rj74514789v6x9wrg95n8bsag8f5ygd7js40qrwpxq6b4j";
     };
     meta.homepage = "https://github.com/arcticicestudio/nord-vim/";
   };
 
   NrrwRgn = buildVimPluginFrom2Nix {
     pname = "NrrwRgn";
-    version = "2020-04-21";
+    version = "2020-05-29";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "NrrwRgn";
-      rev = "a558325a2d0cca810520ed2b62e0c0e543e97bf6";
-      sha256 = "1ngwyga0pslkw1d5qwz98zz8axfwc0mvxig5yp59gra9awgk6nw8";
+      rev = "82a0fc6a3415db9a891f9d9f19b512041c865109";
+      sha256 = "00fd466i5860bazd4pj69k8piicgckxj68lkn2l7haawj9chslzs";
     };
     meta.homepage = "https://github.com/chrisbra/NrrwRgn/";
   };
@@ -2508,12 +2832,12 @@ let
 
   nvim-gdb = buildVimPluginFrom2Nix {
     pname = "nvim-gdb";
-    version = "2020-03-17";
+    version = "2020-08-16";
     src = fetchFromGitHub {
       owner = "sakhnik";
       repo = "nvim-gdb";
-      rev = "9ea1cd2cd110a8efa40dc893036596b39f979a7a";
-      sha256 = "10qcs59r27fkzk0pg90gywbrz7y7b4hvavbws5kx6fjx3h2mbfsh";
+      rev = "47b0828287b410b56ff1a31906c4d5709d143d4a";
+      sha256 = "0kl2d58plpnlz2w9haadmbpmkb04bjwgfrs1scwi04mcc8dfpbmn";
     };
     meta.homepage = "https://github.com/sakhnik/nvim-gdb/";
   };
@@ -2532,12 +2856,12 @@ let
 
   nvim-lsp = buildVimPluginFrom2Nix {
     pname = "nvim-lsp";
-    version = "2020-04-24";
+    version = "2020-08-10";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lsp";
-      rev = "d1507239df1d9f2758f1ad75634046c4d024cfd8";
-      sha256 = "00smhjk73xwzmxqjwqi1srmfbirl065gii65gj1lhfi6vha7h9k1";
+      rev = "fc9d94ef006e082596c2e8724eb3f1c92ff203c7";
+      sha256 = "1byji4p0xigyp8y71s00fs2vrhgz3xkf51mmyz489pp52c7nfx4v";
     };
     meta.homepage = "https://github.com/neovim/nvim-lsp/";
   };
@@ -2554,6 +2878,18 @@ let
     meta.homepage = "https://github.com/norcalli/nvim-terminal.lua/";
   };
 
+  nvim-treesitter = buildVimPluginFrom2Nix {
+    pname = "nvim-treesitter";
+    version = "2020-08-20";
+    src = fetchFromGitHub {
+      owner = "nvim-treesitter";
+      repo = "nvim-treesitter";
+      rev = "5c0ca925af3332769f04c122ecb5bb9a5ca36dd0";
+      sha256 = "0fmciqdmg5fy1jx2wind0vyykfdvdbls0lyrn85xi4c7d8yg74h2";
+    };
+    meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
+  };
+
   nvim-yarp = buildVimPluginFrom2Nix {
     pname = "nvim-yarp";
     version = "2020-04-08";
@@ -2578,62 +2914,86 @@ let
     meta.homepage = "https://github.com/neovim/nvimdev.nvim/";
   };
 
+  oceanic-next = buildVimPluginFrom2Nix {
+    pname = "oceanic-next";
+    version = "2019-04-10";
+    src = fetchFromGitHub {
+      owner = "mhartington";
+      repo = "oceanic-next";
+      rev = "08158eec24cd154afd1623686aeb336fad580be7";
+      sha256 = "1s2h9mnhl54ww7zpdllwlxz93d5i7l7rx3s9mr8w6sv8azcak3v8";
+    };
+    meta.homepage = "https://github.com/mhartington/oceanic-next/";
+  };
+
+  onedark-vim = buildVimPluginFrom2Nix {
+    pname = "onedark-vim";
+    version = "2020-08-12";
+    src = fetchFromGitHub {
+      owner = "joshdick";
+      repo = "onedark.vim";
+      rev = "7f9b1802b0d76f4f8fe7ad5bbef472c96e1c104f";
+      sha256 = "11fk496xk0564fcfmc77b2m98l6dmvb4ph50vyq73a1mlcs1438c";
+    };
+    meta.homepage = "https://github.com/joshdick/onedark.vim/";
+  };
+
   onehalf = buildVimPluginFrom2Nix {
     pname = "onehalf";
-    version = "2019-08-17";
+    version = "2020-06-11";
     src = fetchFromGitHub {
       owner = "sonph";
       repo = "onehalf";
-      rev = "fdcbffe3175c29bb78d19dcaf9b2a456482fcf1e";
-      sha256 = "0zbmh3cf2lnn3mcqbz4s992v6kaddq9nj4xb1wxvgyqp7kjkpwql";
+      rev = "3aa42a39ed3cddde0c53976a700b81b8a7067890";
+      sha256 = "0x01c7930hlzvjac3r2wbkdha8j6mmhyk7nwgdazh1z4sxqjyj1l";
     };
     meta.homepage = "https://github.com/sonph/onehalf/";
   };
 
   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/";
   };
 
   open-browser-vim = buildVimPluginFrom2Nix {
     pname = "open-browser-vim";
-    version = "2020-03-06";
+    version = "2020-05-20";
     src = fetchFromGitHub {
       owner = "tyru";
       repo = "open-browser.vim";
-      rev = "57b894d0aa5f800220d25fdeeccf28d8a7f6ac89";
-      sha256 = "0q87hna0irl431kmd4knblzkahrmw3mrnvw1cq19indfky85516v";
+      rev = "d6f1784685abdd86500fdb5fa2fbaf2aab833f18";
+      sha256 = "1akgsq1v9v5klm995y09zmka0hbfsa0gr44gyp2nvqi9ggfadp0k";
     };
     meta.homepage = "https://github.com/tyru/open-browser.vim/";
   };
 
   palenight-vim = buildVimPluginFrom2Nix {
     pname = "palenight-vim";
-    version = "2020-01-17";
+    version = "2020-08-10";
     src = fetchFromGitHub {
       owner = "drewtempelmeyer";
       repo = "palenight.vim";
-      rev = "f332f9efe73227a47c18bade892ac55682641733";
-      sha256 = "0nd2hqvxnjnbsp17x666nwyy0s9j9b6igyfhl44p7lkci6560gwp";
+      rev = "9637fc4b6dc8ba852d5ec21c2c54851d81576490";
+      sha256 = "1im9iggwiz86h0rydaz73482q8ildhd81hscq8czwigb03pslyxg";
     };
     meta.homepage = "https://github.com/drewtempelmeyer/palenight.vim/";
   };
 
   papercolor-theme = buildVimPluginFrom2Nix {
     pname = "papercolor-theme";
-    version = "2019-11-06";
+    version = "2020-06-16";
     src = fetchFromGitHub {
       owner = "NLKNguyen";
       repo = "papercolor-theme";
-      rev = "ddd09867ed4e020b3ba2eb47dc3ef365da5b0fed";
-      sha256 = "1dhbnd99xs6l5alqhn9m1nynmr9sbvrqj2137l23ysisprl3rgmr";
+      rev = "c657f5c2d5964bbae633f8a42c16f8316f6d6733";
+      sha256 = "1vv1gd64isrgyxc4fyp5mzlhffwkzdc8agnv0aka4v7qdaca45ni";
     };
     meta.homepage = "https://github.com/NLKNguyen/papercolor-theme/";
   };
@@ -2676,12 +3036,12 @@ let
 
   plantuml-syntax = buildVimPluginFrom2Nix {
     pname = "plantuml-syntax";
-    version = "2020-03-30";
+    version = "2020-07-03";
     src = fetchFromGitHub {
       owner = "aklt";
       repo = "plantuml-syntax";
-      rev = "25070c47cae8c7a9d62c8c09a1339e761448fbc4";
-      sha256 = "1x2a1wnxs2qmv2zqgq2bmwskdp1i4ga0yjxjyziyr96p48m7dcjp";
+      rev = "eb3df3092a767c844db3f3ff355da840abd0aa97";
+      sha256 = "02psvyxli5gs2cx2sha33mk98ivllb8zr1jwgv4hgi5bh6qd7wg3";
     };
     meta.homepage = "https://github.com/aklt/plantuml-syntax/";
   };
@@ -2760,12 +3120,12 @@ let
 
   quick-scope = buildVimPluginFrom2Nix {
     pname = "quick-scope";
-    version = "2020-04-04";
+    version = "2020-07-31";
     src = fetchFromGitHub {
       owner = "unblevable";
       repo = "quick-scope";
-      rev = "ac80025b868bb6e52b9dda893246ee5f992612de";
-      sha256 = "1pvw8d53dgm580r9n2qcx0w56g4kanvd00ny6c6l71hxw9lixnlb";
+      rev = "64a5e6f9791e75f4d87b176d5c11f31041aa4169";
+      sha256 = "1b1s8jmfip40s9m466c78jczp22dq2brbsnmdaz7gc1fgxyb5858";
     };
     meta.homepage = "https://github.com/unblevable/quick-scope/";
   };
@@ -2796,12 +3156,12 @@ let
 
   rainbow = buildVimPluginFrom2Nix {
     pname = "rainbow";
-    version = "2019-10-09";
+    version = "2020-05-28";
     src = fetchFromGitHub {
       owner = "luochen1990";
       repo = "rainbow";
-      rev = "c876f4bc6e737241d53669415f88cb5f2afd8ad9";
-      sha256 = "1kmgm91q507qv9bvg37dn0lddzb8gwkmslajampnfjyfhbs0shgz";
+      rev = "4d15633cdaf61602e1d9fd216a77fc02e0881b2d";
+      sha256 = "168mbdf2h3zhkqrdyyhh0pbkjdvxwida80rdwk8ml97mxxii8ziw";
     };
     meta.homepage = "https://github.com/luochen1990/rainbow/";
   };
@@ -2928,12 +3288,12 @@ let
 
   rust-vim = buildVimPluginFrom2Nix {
     pname = "rust-vim";
-    version = "2020-04-20";
+    version = "2020-08-15";
     src = fetchFromGitHub {
       owner = "rust-lang";
       repo = "rust.vim";
-      rev = "2b916c8c8b3975988c13460918b46115f6a06802";
-      sha256 = "06a9liz3a7fyjcd7phpfzrpqnjjzm5ai3bb41wh4hdc5ic8lgrij";
+      rev = "f5eb7b04ee2746cbed4067e0cf9dd19185529a34";
+      sha256 = "0549r64350cr17gg1lm1fwz0wb1w9jsbs8qi8ddcsgrk1bc3gqf5";
     };
     meta.homepage = "https://github.com/rust-lang/rust.vim/";
   };
@@ -2962,6 +3322,18 @@ let
     meta.homepage = "https://github.com/megaannum/self/";
   };
 
+  semantic-highlight-vim = buildVimPluginFrom2Nix {
+    pname = "semantic-highlight-vim";
+    version = "2019-09-01";
+    src = fetchFromGitHub {
+      owner = "jaxbot";
+      repo = "semantic-highlight.vim";
+      rev = "7cf0aabbd0f9cb531b0045ac2148dff1131616de";
+      sha256 = "16dnqrdpxf6322az1rn67ay2a4clqz410xn6zqzr1w2y6x4yly1a";
+    };
+    meta.homepage = "https://github.com/jaxbot/semantic-highlight.vim/";
+  };
+
   semshi = buildVimPluginFrom2Nix {
     pname = "semshi";
     version = "2019-12-01";
@@ -2976,12 +3348,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/";
   };
@@ -3022,6 +3394,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";
@@ -3060,12 +3444,12 @@ let
 
   SpaceCamp = buildVimPluginFrom2Nix {
     pname = "SpaceCamp";
-    version = "2020-03-31";
+    version = "2020-05-14";
     src = fetchFromGitHub {
       owner = "jaredgorski";
       repo = "SpaceCamp";
-      rev = "58fc865f83b600ee8906fe35d02749dec6659607";
-      sha256 = "0rv9a6gzn5q2ajsyfvsrybn7hyskckfa7wad4jr8xaylccn5r7x7";
+      rev = "23c7a3948cd1861150346762a002dc7fa196c616";
+      sha256 = "1sbc9ivczkyfylhk1n4sm2sqzp8vddw03k0xb6z8k475n5vm8mvq";
     };
     meta.homepage = "https://github.com/jaredgorski/SpaceCamp/";
   };
@@ -3132,12 +3516,13 @@ let
 
   splitjoin-vim = buildVimPluginFrom2Nix {
     pname = "splitjoin-vim";
-    version = "2020-04-20";
+    version = "2020-07-21";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "splitjoin.vim";
-      rev = "62d42e1ac5dcf8f3c70bd344d31300ee39d0e580";
-      sha256 = "1d0ik668lhkrd972brh99lizrfl249srj6y8i1ag4ykr99nmydqg";
+      rev = "46efa9796716fe645d43f6018de3e06296978c7b";
+      sha256 = "126a9v4j217g1kflfabqx0bz02k0xkwqfagzhk51n7drh2r2m7k6";
+      fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/AndrewRadev/splitjoin.vim/";
   };
@@ -3192,12 +3577,12 @@ let
 
   syntastic = buildVimPluginFrom2Nix {
     pname = "syntastic";
-    version = "2020-04-19";
+    version = "2020-08-14";
     src = fetchFromGitHub {
       owner = "vim-syntastic";
       repo = "syntastic";
-      rev = "b3e2d8470fddc7f2b598f09023ebc5045a3fb1fd";
-      sha256 = "1ljsh0npbcv9g6l23z4jpba0bk1k5n13ix0p0rr22cipgzlxsbvh";
+      rev = "25b816d9b0016eff68e7025fe52fb67ef253920e";
+      sha256 = "1hb9f1p7sqpb7kc0rih9kaixwg4s9a6z86ycnc6kxp1iz97d6ai1";
     };
     meta.homepage = "https://github.com/vim-syntastic/syntastic/";
   };
@@ -3240,12 +3625,12 @@ let
 
   tagbar = buildVimPluginFrom2Nix {
     pname = "tagbar";
-    version = "2020-04-24";
+    version = "2020-08-17";
     src = fetchFromGitHub {
       owner = "majutsushi";
       repo = "tagbar";
-      rev = "1e50ea85361b7144acad459eb091973089b780f6";
-      sha256 = "09w7vwzacny6kbf9s2ihan8k682qljp8zad1dh5ds0738a3nwxpl";
+      rev = "a81c01c29406df6aa59be221a17953c18ed57ccc";
+      sha256 = "1amqxazfjnljylkj5jz3in927mkkhbvchs9pb5cnijfbvrf3dh5s";
     };
     meta.homepage = "https://github.com/majutsushi/tagbar/";
   };
@@ -3276,24 +3661,24 @@ let
 
   tcomment_vim = buildVimPluginFrom2Nix {
     pname = "tcomment_vim";
-    version = "2020-04-13";
+    version = "2020-06-18";
     src = fetchFromGitHub {
       owner = "tomtom";
       repo = "tcomment_vim";
-      rev = "a20a34b0e3129314a820419234d8707a7cc9b872";
-      sha256 = "1ms3yy1b1mpjckqfam4bdz2yllxvzac3dfbs213c0hz6l6y20y4n";
+      rev = "920d465b56bcf96c976fa22e9558d51aa55dcd9c";
+      sha256 = "0n7gwdyzim4f92mxnjz4zwfiyapyjhbf21b1l3dq9b07x9m40365";
     };
     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/";
   };
@@ -3324,12 +3709,12 @@ let
 
   thumbnail-vim = buildVimPluginFrom2Nix {
     pname = "thumbnail-vim";
-    version = "2020-01-31";
+    version = "2020-08-15";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "thumbnail.vim";
-      rev = "7d65524dddaeed5629e6b9c8926c56ef8dd0c553";
-      sha256 = "02707pl5dqfgkxx2i4wcfxx2zdpm86g5l4n4wn1dms35bcn2c8l8";
+      rev = "161ff743cb031eff376780108b018735d92160b0";
+      sha256 = "105a1a9kahfdicw1gkdhc88w41pyhmhv6yw2kh1flkaikzqlxbc8";
     };
     meta.homepage = "https://github.com/itchyny/thumbnail.vim/";
   };
@@ -3373,12 +3758,12 @@ let
 
   traces-vim = buildVimPluginFrom2Nix {
     pname = "traces-vim";
-    version = "2020-01-22";
+    version = "2020-08-19";
     src = fetchFromGitHub {
       owner = "markonm";
       repo = "traces.vim";
-      rev = "4d3858eb060a1fd2213b075a707d39cbb118ae3e";
-      sha256 = "0qny9z459x7hp5y43iivws2m312clacysdy1nnb3cr1fyhw9pflx";
+      rev = "b38bdda4378b17888f5132787c49d79722c25752";
+      sha256 = "0q29h348pgqxqw1pqq1nsj0nxccnb2x6jd92bpsqnjf452wsh2f2";
     };
     meta.homepage = "https://github.com/markonm/traces.vim/";
   };
@@ -3421,12 +3806,12 @@ let
 
   ultisnips = buildVimPluginFrom2Nix {
     pname = "ultisnips";
-    version = "2020-03-19";
+    version = "2020-05-19";
     src = fetchFromGitHub {
       owner = "SirVer";
       repo = "ultisnips";
-      rev = "ee31ea1c7d08ced8577120b4c1d55c5a05351a75";
-      sha256 = "01nm3d95qjd2v3j9ln7w52i8bn2fgi5zms9078832w1x4iyb1mwn";
+      rev = "e83c82099d9bd43dc7895e3cb5b114ee5a2a07c6";
+      sha256 = "0a9fqgg8sg8s19q9inxyzl6lqdsnxs22csqs2rss1qz9dsic4yrh";
     };
     meta.homepage = "https://github.com/SirVer/ultisnips/";
   };
@@ -3445,24 +3830,24 @@ let
 
   unicode-vim = buildVimPluginFrom2Nix {
     pname = "unicode-vim";
-    version = "2020-04-20";
+    version = "2020-08-10";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "unicode.vim";
-      rev = "ce061819e4304a9ff2f82779e12e5a30363ab47c";
-      sha256 = "0k9gmf2rdvnlfqqhjlk206wimlh5di3smmrr9cgz0djq5pd3r5jz";
+      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/";
   };
@@ -3505,28 +3890,16 @@ let
 
   verilog_systemverilog-vim = buildVimPluginFrom2Nix {
     pname = "verilog_systemverilog-vim";
-    version = "2020-04-01";
+    version = "2020-06-12";
     src = fetchFromGitHub {
       owner = "vhda";
       repo = "verilog_systemverilog.vim";
-      rev = "c6f7ca14554196ae15a5fef9e568d69f04b9ff56";
-      sha256 = "1hx9rgx44dhc449r0j6azkp1bm20n9c3fyb112w277a2jvf0a2c5";
+      rev = "c37bcf010fcb73599d690d8da6ac966dac02a07e";
+      sha256 = "1f4kicgr7wv0dprvr91wi4lmk0d9bb9f4wcng4rfkq1cdwfkqdw4";
     };
     meta.homepage = "https://github.com/vhda/verilog_systemverilog.vim/";
   };
 
-  vim = buildVimPluginFrom2Nix {
-    pname = "vim";
-    version = "2020-04-22";
-    src = fetchFromGitHub {
-      owner = "dracula";
-      repo = "vim";
-      rev = "043518d3a9c48049bc0ae0af72dcbb239bf1d36d";
-      sha256 = "0v25yk0d4488yn1yvzkpcqh8ldx51q4hbfn678vkr9ga5i0nkkwp";
-    };
-    meta.homepage = "https://github.com/dracula/vim/";
-  };
-
   vim-abolish = buildVimPluginFrom2Nix {
     pname = "vim-abolish";
     version = "2019-11-13";
@@ -3541,12 +3914,12 @@ let
 
   vim-addon-actions = buildVimPluginFrom2Nix {
     pname = "vim-addon-actions";
-    version = "2018-01-18";
+    version = "2020-05-03";
     src = fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-actions";
-      rev = "540cae09832ba6abf9fc63c55781bf86584c33ac";
-      sha256 = "011w5k09i01r9x64j20qj0f7d057m9wki2m8l2wds47l57hr3vz6";
+      rev = "6d350ca6075779af32016f0a0bd3e3521ec4a9eb";
+      sha256 = "1098jc4amwfvcrfjfa5hgmyrjrbl680c3s56h7grvyl3i6n4hj34";
     };
     meta.homepage = "https://github.com/MarcWeber/vim-addon-actions/";
   };
@@ -3769,48 +4142,48 @@ let
 
   vim-airline = buildVimPluginFrom2Nix {
     pname = "vim-airline";
-    version = "2020-04-24";
+    version = "2020-08-20";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "ff3f66ed30fbab70af1f37c8532327bd9617f7c7";
-      sha256 = "1gppy9lk9vyxrqyb9lxvvl8nl31ha5mjwvhlang8g69j2vqpxikr";
+      rev = "ef4666bd86ea1d6ac06a709cde0cde3df537c9e3";
+      sha256 = "0rql6vbfr78pnjpbavpkdh47bh4jlzcg5pjf7xcl0273v03b6rbf";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline/";
   };
 
   vim-airline-themes = buildVimPluginFrom2Nix {
     pname = "vim-airline-themes";
-    version = "2020-04-01";
+    version = "2020-06-26";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline-themes";
-      rev = "3fb676b8729a98817f561ef1554c0ad1a514c96a";
-      sha256 = "18bfw09ywmw10jiv37iw2ijf46jhj2yw5wndqdgn7k42gy1wk7p6";
+      rev = "04fa4fc40f21d9490954213c1ee06c7fdea66a6d";
+      sha256 = "0dzckj0449rw37v5kwmfm5wa9spfhsbfr56i30mb063zmv8wk551";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline-themes/";
   };
 
   vim-android = buildVimPluginFrom2Nix {
     pname = "vim-android";
-    version = "2020-04-17";
+    version = "2020-04-25";
     src = fetchFromGitHub {
       owner = "hsanson";
       repo = "vim-android";
-      rev = "237827115523a1c39e3aed9f83bffb009b82a3c2";
-      sha256 = "06padj0r3h2lhrf17vlq8ky4q2z7a1jppfb9gjms0sddvjcis5fc";
+      rev = "1e5ee4f2a3281201aeb71766d45800e192c103f2";
+      sha256 = "1d187w74y0viv502gqxfqi0kyak0lyi0dbpcfkjd9c0fjbqrydd6";
     };
     meta.homepage = "https://github.com/hsanson/vim-android/";
   };
 
   vim-anzu = buildVimPluginFrom2Nix {
     pname = "vim-anzu";
-    version = "2018-02-28";
+    version = "2020-06-10";
     src = fetchFromGitHub {
       owner = "osyo-manga";
       repo = "vim-anzu";
-      rev = "45b60d37cb9de90f6c89f7ddeacb7ae430ebcae2";
-      sha256 = "1p5lh4xsv9xsl8kx0h1bg6iy0if4a69hvairq69p50ffka83pv00";
+      rev = "1b95ec384487e559f0ee70e0f46c33683ff533ac";
+      sha256 = "0q6s9bb1yv7ir2al4gv69vv4c8m09j1ax47qbhchgz23iwka3vmz";
     };
     meta.homepage = "https://github.com/osyo-manga/vim-anzu/";
   };
@@ -3841,12 +4214,12 @@ let
 
   vim-autoformat = buildVimPluginFrom2Nix {
     pname = "vim-autoformat";
-    version = "2020-04-03";
+    version = "2020-07-29";
     src = fetchFromGitHub {
       owner = "Chiel92";
       repo = "vim-autoformat";
-      rev = "555c956db3bdd8ae6f1aa5af1c5fd37eac749e6a";
-      sha256 = "0dhxa9jrhahqs1wh41115w8r3xcczbjpvnj65ldzs7q9vc4n12xq";
+      rev = "273ccae26d6b5ab10bb48479c0ff5971018e3c5a";
+      sha256 = "07fldl6fsi3ns2zx4va69g01gb5mdsva8qpyjmryhn08l2qz0c40";
     };
     meta.homepage = "https://github.com/Chiel92/vim-autoformat/";
   };
@@ -3877,12 +4250,12 @@ let
 
   vim-beancount = buildVimPluginFrom2Nix {
     pname = "vim-beancount";
-    version = "2017-10-28";
+    version = "2020-08-06";
     src = fetchFromGitHub {
       owner = "nathangrigg";
       repo = "vim-beancount";
-      rev = "8054352c43168ece62094dfc8ec510e347e19e3c";
-      sha256 = "0fd4fbdmhapdhjr3f9bhd4lqxzpdwwvpf64vyqwahkqn8hrrbc4m";
+      rev = "6d762beaa526d4e56280619aa62b1013b50457b7";
+      sha256 = "0r4ziynmil432k1xjglqjx0bh5069aav3k9r58ksqg716w4zvzys";
     };
     meta.homepage = "https://github.com/nathangrigg/vim-beancount/";
   };
@@ -3899,6 +4272,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";
@@ -3925,16 +4310,28 @@ let
 
   vim-bufkill = buildVimPluginFrom2Nix {
     pname = "vim-bufkill";
-    version = "2018-03-20";
+    version = "2020-08-04";
     src = fetchFromGitHub {
       owner = "qpkorr";
       repo = "vim-bufkill";
-      rev = "795dd38f3cff69d0d8fe9e71847907e200860959";
-      sha256 = "1nji86vjjbfjw4xy52yazq53hrlsr7v30xkx2awgiakz7ih0bdxa";
+      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";
@@ -3947,6 +4344,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-08-20";
+    src = fetchFromGitHub {
+      owner = "liuchengxu";
+      repo = "vim-clap";
+      rev = "e690bde9e7838894b68f9d3d4d1a131e86c13ffb";
+      sha256 = "1pl32zgwn7ffyfn8xqqlck48sqv78jv8v4pfjay0rgr3jvaxis1v";
+    };
+    meta.homepage = "https://github.com/liuchengxu/vim-clap/";
+  };
+
   vim-clojure-highlight = buildVimPluginFrom2Nix {
     pname = "vim-clojure-highlight";
     version = "2015-07-05";
@@ -3985,12 +4406,12 @@ let
 
   vim-codefmt = buildVimPluginFrom2Nix {
     pname = "vim-codefmt";
-    version = "2020-04-01";
+    version = "2020-07-29";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-codefmt";
-      rev = "d3d8b8b6d73da3e1b19089f98a85901f0b652e2f";
-      sha256 = "0r20cl6i4k7r2y5d8i3dbrxmn01mlnww2qgvjgmafa8nqd16gl57";
+      rev = "a43392a7c4d73b91835e7bd993889646c8a907fd";
+      sha256 = "1b850c36xgydn2ibdxzqprzsi65hz9sfhvcj69zm3rqbh47hqi98";
     };
     meta.homepage = "https://github.com/google/vim-codefmt/";
   };
@@ -4033,12 +4454,12 @@ let
 
   vim-colorschemes = buildVimPluginFrom2Nix {
     pname = "vim-colorschemes";
-    version = "2019-02-24";
+    version = "2020-05-15";
     src = fetchFromGitHub {
       owner = "flazz";
       repo = "vim-colorschemes";
-      rev = "9e7ab1cfec5d3db85aa1c4e87329fd869ecf94e9";
-      sha256 = "0w9q41rl9g319xw2xs2yf34h3pdkq8a2pmh4gf9gb72v2k5z0dbm";
+      rev = "fd8f122cef604330c96a6a6e434682dbdfb878c9";
+      sha256 = "1cg8q7w0vgl73aw1b9zz0zh5vw5d2pm8pm54fhfzva4azg56f416";
     };
     meta.homepage = "https://github.com/flazz/vim-colorschemes/";
   };
@@ -4091,6 +4512,18 @@ let
     meta.homepage = "https://github.com/octol/vim-cpp-enhanced-highlight/";
   };
 
+  vim-crates = buildVimPluginFrom2Nix {
+    pname = "vim-crates";
+    version = "2019-11-11";
+    src = fetchFromGitHub {
+      owner = "mhinz";
+      repo = "vim-crates";
+      rev = "addbb157d0652ce5288c5b5b6f32f8716eb47898";
+      sha256 = "1pczfm9vjjna3xdqym9h69gi47kiwi97lzjf9jjlkmyg1s4pwlsp";
+    };
+    meta.homepage = "https://github.com/mhinz/vim-crates/";
+  };
+
   vim-csharp = buildVimPluginFrom2Nix {
     pname = "vim-csharp";
     version = "2017-03-29";
@@ -4105,36 +4538,36 @@ 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-02-06";
+    version = "2020-07-20";
     src = fetchFromGitHub {
       owner = "jjo";
       repo = "vim-cue";
-      rev = "482f0b1df03f59bbd1bf4bca99314770289a7f35";
-      sha256 = "05c9amxpn4zyb8hvcnzrzq43r70hzs32rhn5rjaf5jflgmwaph0q";
+      rev = "339edaf79ff1287ce6a23baaa421e68463cf1a2e";
+      sha256 = "0jr30plym17fdg90smb7g35yi9iz9b7s4md6cxj83zg4vj2hyjh1";
     };
     meta.homepage = "https://github.com/jjo/vim-cue/";
   };
 
   vim-cursorword = buildVimPluginFrom2Nix {
     pname = "vim-cursorword";
-    version = "2020-03-19";
+    version = "2020-06-20";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "vim-cursorword";
-      rev = "b5f8a4b148b566626210d0c1f6b63036b62322bb";
-      sha256 = "0a4gznfxmg7a62xwk4mmjcxykcgmm7mh5vv7n5hskxjczdrvl400";
+      rev = "cc8114226ceefb5cafe1890e0900d3efb7dab1fd";
+      sha256 = "1x5ljk82bxc3qhrq5pz0dsab8rg1234syd1xmpkgvif52s9g4mfk";
     };
     meta.homepage = "https://github.com/itchyny/vim-cursorword/";
   };
@@ -4153,36 +4586,36 @@ let
 
   vim-dadbod = buildVimPluginFrom2Nix {
     pname = "vim-dadbod";
-    version = "2020-04-09";
+    version = "2020-04-30";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dadbod";
-      rev = "62646c502fac1455318933b9ea13ec5899ba7c84";
-      sha256 = "0qpgx81xpwr3ab3ardp820aqifvxh2jsk1qw94p26q6iiab7kdcv";
+      rev = "779e8d6efc89b68be951ac1419baae75541cf51c";
+      sha256 = "019k26g88y713wy3q06sbab82dgcgsj7f08g9xr2z2xsjmijp8g4";
     };
     meta.homepage = "https://github.com/tpope/vim-dadbod/";
   };
 
   vim-dasht = buildVimPluginFrom2Nix {
     pname = "vim-dasht";
-    version = "2019-09-29";
+    version = "2020-07-11";
     src = fetchFromGitHub {
       owner = "sunaku";
       repo = "vim-dasht";
-      rev = "9c7484eaea26b8dd1edd8af21a38cee6c4ef4f49";
-      sha256 = "1rjckipy7b4ygwvc1hbc24da1x3pwklbkfljrz16znlcm2y5q72k";
+      rev = "c1c91ecfd30f0e4e946854a6f7c67eb2d1e21c98";
+      sha256 = "0ldkyzsn4b555pb9qdr0k6w6m3w7ziy7v6bcnx0n8ppq4fl68pz2";
     };
     meta.homepage = "https://github.com/sunaku/vim-dasht/";
   };
 
   vim-devicons = buildVimPluginFrom2Nix {
     pname = "vim-devicons";
-    version = "2020-04-11";
+    version = "2020-08-14";
     src = fetchFromGitHub {
       owner = "ryanoasis";
       repo = "vim-devicons";
-      rev = "58e57b6eeb407dba7ff6e607342c08c32b6fd398";
-      sha256 = "0czkkhj2s9vjis5h4gajvnqc1nraxyqhyvzk2ndffhnzxvylhd5w";
+      rev = "308526367703698554d19f15f692ee3c45a598cb";
+      sha256 = "0b6ng6qgwx4fb9fs7b7m5k3dj7ycq0zw5y0jaqqqn6asp8wmf51b";
     };
     meta.homepage = "https://github.com/ryanoasis/vim-devicons/";
   };
@@ -4213,16 +4646,28 @@ let
 
   vim-dirvish = buildVimPluginFrom2Nix {
     pname = "vim-dirvish";
-    version = "2020-02-24";
+    version = "2020-06-30";
     src = fetchFromGitHub {
       owner = "justinmk";
       repo = "vim-dirvish";
-      rev = "0a53fadc22ab6df6aed9cc580c9e498715870522";
-      sha256 = "09q5xpc4xbskzxppp66ypzd5mnic5bcwxahmhb259ch9xs8qmrc6";
+      rev = "7c4dc5945b15a6b97ebef860070d30e36da01788";
+      sha256 = "0mg8fdfsr59015m309kr9v5akwc3zfwfygn36x47c8q2bwjjr052";
     };
     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";
@@ -4321,24 +4766,24 @@ let
 
   vim-elixir = buildVimPluginFrom2Nix {
     pname = "vim-elixir";
-    version = "2020-04-18";
+    version = "2020-04-25";
     src = fetchFromGitHub {
       owner = "elixir-editors";
       repo = "vim-elixir";
-      rev = "80f0dae8da035d60a094fd1b04bd5b803790ac2b";
-      sha256 = "0gdsrbdj6nciivm4vaiq6kppky622r0wxjk4wb0q92j2dzadwsk9";
+      rev = "53c530f79cfcd12498e31fcf8ecc466eba34c75c";
+      sha256 = "13yr7iwi4w0m4zgkq1ia74qcca9wh9k0bz2y1yvm81db0bllsf6s";
     };
     meta.homepage = "https://github.com/elixir-editors/vim-elixir/";
   };
 
   vim-elm-syntax = buildVimPluginFrom2Nix {
     pname = "vim-elm-syntax";
-    version = "2020-01-25";
+    version = "2020-06-10";
     src = fetchFromGitHub {
       owner = "andys8";
       repo = "vim-elm-syntax";
-      rev = "846a5929bff5795256fbca96707e451dbc755e36";
-      sha256 = "05jkx4dbkb646wy0igqpwc55iamm0a030dswhirg6nyl3x6qzgym";
+      rev = "68cd8988fe9eaa190052fadaee0fea2c21338d4c";
+      sha256 = "0yhvx8k83xfzmgy10r9mz0rjagbyzx5rrmn8123vw49ncksvw49q";
     };
     meta.homepage = "https://github.com/andys8/vim-elm-syntax/";
   };
@@ -4357,24 +4802,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/";
   };
@@ -4417,12 +4862,12 @@ let
 
   vim-fireplace = buildVimPluginFrom2Nix {
     pname = "vim-fireplace";
-    version = "2020-04-18";
+    version = "2020-08-04";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fireplace";
-      rev = "6c968f26f0bd3dd04b18fad8761e0e9e1220a3da";
-      sha256 = "1x74j3gghfmqh1mxswzhb6d0zdll735r5lrgn4g3z580y15h37w5";
+      rev = "8963dd3b385410e27752fb859bd5cecdd22b5f71";
+      sha256 = "0ax42ilx24cagy0m6ryda6h0fn7l8g1ckry24vfz2zp7d8y14hah";
     };
     meta.homepage = "https://github.com/tpope/vim-fireplace/";
   };
@@ -4475,14 +4920,26 @@ let
     meta.homepage = "https://github.com/dcharbon/vim-flatbuffers/";
   };
 
+  vim-floaterm = buildVimPluginFrom2Nix {
+    pname = "vim-floaterm";
+    version = "2020-08-21";
+    src = fetchFromGitHub {
+      owner = "voldikss";
+      repo = "vim-floaterm";
+      rev = "2de1b9bdea54baeb40bc6f3fe761309b4435d156";
+      sha256 = "09m31j8cgd8pnyd4p2rh7bj74gh27df98cjy13diljaa56jd6grr";
+    };
+    meta.homepage = "https://github.com/voldikss/vim-floaterm/";
+  };
+
   vim-flutter = buildVimPluginFrom2Nix {
     pname = "vim-flutter";
-    version = "2019-09-29";
+    version = "2020-07-08";
     src = fetchFromGitHub {
       owner = "thosakwe";
       repo = "vim-flutter";
-      rev = "030a4e609f8f38922fa4ec9a27836d9dabaae957";
-      sha256 = "0jibmr0v0pqml1cprs3qmkhhmacpb2bwpk8lhaz4dzp8jlga9g00";
+      rev = "359052369690541a9ede6e897fde4dca867a5109";
+      sha256 = "1303dskqbg1c5n3hczzw7x3gn5kl7hlfha824klwlkx91ga2jhck";
     };
     meta.homepage = "https://github.com/thosakwe/vim-flutter/";
   };
@@ -4513,24 +4970,24 @@ let
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2020-04-21";
+    version = "2020-07-31";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "05bbfcd0dc24088f302e7221c7ec000d0ee62982";
-      sha256 = "1yrfci26yr02s2728jlk4bd29g1abh8dwps8q9l1pk93rzlchisc";
+      rev = "260182c65cae653ac20e6a69ba8cc6124e7ba6c2";
+      sha256 = "14dmar7d9qajjk2vy223mw7gwdcz548lcj5jg8pg7j4cyc6ffbyp";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
 
   vim-ghost = buildVimPluginFrom2Nix {
     pname = "vim-ghost";
-    version = "2019-01-05";
+    version = "2020-06-19";
     src = fetchFromGitHub {
       owner = "raghur";
       repo = "vim-ghost";
-      rev = "156f393d9c45a5c9dd16f9316a9ad125da67c449";
-      sha256 = "0b21yamsfrljk3mfjql0gzsv5mv24qwbs551hxqsapgmrv7j2acg";
+      rev = "77330855a36350e75393cdeefb743da1040627ce";
+      sha256 = "0g3wvp02cv69v7xcsbib35bw9yf36iq6ffny7lmaf0s1pj2kwpzz";
     };
     meta.homepage = "https://github.com/raghur/vim-ghost/";
   };
@@ -4573,12 +5030,12 @@ let
 
   vim-gitgutter = buildVimPluginFrom2Nix {
     pname = "vim-gitgutter";
-    version = "2020-04-24";
+    version = "2020-08-07";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-gitgutter";
-      rev = "6b46098b2a83becda06586d7c430ffdc4a27db88";
-      sha256 = "0q8yvjgxvfjd40f3pspv2kzdcz45q242jfpl948mw74arl0121g8";
+      rev = "8005f71aabef13f5872b3ef4802f36503a16c451";
+      sha256 = "0ns33dbkw8lc6rj6mvkgymdsl3i4g8slbh06g8h4rfn8qq5wjxbw";
     };
     meta.homepage = "https://github.com/airblade/vim-gitgutter/";
   };
@@ -4609,12 +5066,12 @@ let
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2020-04-24";
+    version = "2020-08-19";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "b7edb21cc518a5404b16997df056d560b6ae067f";
-      sha256 = "1acwh0kqk7vy0p5vinmm42c4map4qara0590yd6mzc3ym0zyjvi0";
+      rev = "7c14e8ae5de7f4562c365249c83abc4d0e0d906c";
+      sha256 = "1l96mlkfvpsa2bw9rc4m8s7abjvcfyy05gsm445rzbijqxigkknk";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
@@ -4631,14 +5088,26 @@ let
     meta.homepage = "https://github.com/rhysd/vim-grammarous/";
   };
 
+  vim-graphql = buildVimPluginFrom2Nix {
+    pname = "vim-graphql";
+    version = "2020-08-17";
+    src = fetchFromGitHub {
+      owner = "jparise";
+      repo = "vim-graphql";
+      rev = "1b9db5b2089751dc80a5dab9fa976a9750c3066c";
+      sha256 = "14bp6knckqa8rc9xwd5cnd6cnfhi0j6vgv0yl5nin47yzv0navha";
+    };
+    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/";
   };
@@ -4657,24 +5126,24 @@ let
 
   vim-gutentags = buildVimPluginFrom2Nix {
     pname = "vim-gutentags";
-    version = "2020-02-15";
+    version = "2020-04-15";
     src = fetchFromGitHub {
       owner = "ludovicchabant";
       repo = "vim-gutentags";
-      rev = "96cd7dbfe324e8983da68468085967e0b85dc898";
-      sha256 = "15xvknzy2r178jh0w76cagmxprxsznzk0zgv41h33rns4hy5q1vf";
+      rev = "8e69652c7a7e7aabd96cff21b6ee6b6a295c901c";
+      sha256 = "1j9548h2cqvnmqa89hha0s1wfvijdgk6ilakq60awlijdw427f04";
     };
     meta.homepage = "https://github.com/ludovicchabant/vim-gutentags/";
   };
 
   vim-hardtime = buildVimPluginFrom2Nix {
     pname = "vim-hardtime";
-    version = "2017-03-31";
+    version = "2020-05-01";
     src = fetchFromGitHub {
       owner = "takac";
       repo = "vim-hardtime";
-      rev = "d9128568afa62947b7ac8f12c22d88e3de526a6b";
-      sha256 = "097wzfh4n4fnsq2gx4hbmyr731ciky8qcai5aiyh2baybvwshmr5";
+      rev = "ef06cf30fd3843e7857fdb79c6868660220b9391";
+      sha256 = "0yhai27zqkdmgck1iy64fw9yy2vghmqvj4g2lbh21h50df1sa8cf";
     };
     meta.homepage = "https://github.com/takac/vim-hardtime/";
   };
@@ -4751,6 +5220,18 @@ let
     meta.homepage = "https://github.com/alx741/vim-hindent/";
   };
 
+  vim-hocon = buildVimPluginFrom2Nix {
+    pname = "vim-hocon";
+    version = "2017-09-08";
+    src = fetchFromGitHub {
+      owner = "GEverding";
+      repo = "vim-hocon";
+      rev = "bb8fb14e00f8fc1eec27dd39dcc605aac43328a3";
+      sha256 = "0w6ckm931zpm1k3w02gl58hgfxzfy53sgcc9m8jz3vgi3zz0vki2";
+    };
+    meta.homepage = "https://github.com/GEverding/vim-hocon/";
+  };
+
   vim-hoogle = buildVimPluginFrom2Nix {
     pname = "vim-hoogle";
     version = "2018-03-04";
@@ -4765,12 +5246,12 @@ let
 
   vim-html-template-literals = buildVimPluginFrom2Nix {
     pname = "vim-html-template-literals";
-    version = "2020-02-07";
+    version = "2020-05-17";
     src = fetchFromGitHub {
       owner = "jonsmithers";
       repo = "vim-html-template-literals";
-      rev = "3b370b69bce94bdeb0ca7137f548356f775cadcc";
-      sha256 = "1wmyxscyqs6344jsn839dyrx7k3iiwv07ic9gxh5d93g5s3c3pml";
+      rev = "0959db06cd74408935a589fb59ec63af91a1557b";
+      sha256 = "0vq0y9adx2023p0nqv020921r474216msrkm0lkb5v776xm4mks2";
     };
     meta.homepage = "https://github.com/jonsmithers/vim-html-template-literals/";
   };
@@ -4787,14 +5268,26 @@ let
     meta.homepage = "https://github.com/vim-utils/vim-husk/";
   };
 
+  vim-hybrid = buildVimPluginFrom2Nix {
+    pname = "vim-hybrid";
+    version = "2016-01-05";
+    src = fetchFromGitHub {
+      owner = "w0ng";
+      repo = "vim-hybrid";
+      rev = "cc58baabeabc7b83768e25b852bf89c34756bf90";
+      sha256 = "1c3q39121hiw85r9ymiyhz5zsf6bl9pwk4pgj6nh6ckwns4cgcmw";
+    };
+    meta.homepage = "https://github.com/w0ng/vim-hybrid/";
+  };
+
   vim-hybrid-material = buildVimPluginFrom2Nix {
     pname = "vim-hybrid-material";
-    version = "2018-11-12";
+    version = "2020-06-16";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-hybrid-material";
-      rev = "f2e92ac7e5c4bb75d72f0abaea939e4364e00e2e";
-      sha256 = "01b9n598106qh68ky3fykczq13pldi221r7lrxvg0vnv2zp1z5qd";
+      rev = "ad031275c63a05b6acb6014a2401d8719a290bd4";
+      sha256 = "0qjg25cfdx9706svw4b527arfdq4ypshay11ak62yswirkvgsc2c";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-hybrid-material/";
   };
@@ -4813,12 +5306,12 @@ let
 
   vim-illuminate = buildVimPluginFrom2Nix {
     pname = "vim-illuminate";
-    version = "2020-02-21";
+    version = "2020-06-09";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-illuminate";
-      rev = "80dafb9b0e7b9f4ce7c843d4104f455c8c5b1f42";
-      sha256 = "1yijaj1dqfmw4dsdmgj01sxizyraisxwjqh2hhbq93pdln4lm51f";
+      rev = "0778289e391c419f7a3af9de8229f798ee292013";
+      sha256 = "1l5s5f4fw96w437rdf85lym7g75hnz8sb2fdj9hygyg0sp42r0cf";
     };
     meta.homepage = "https://github.com/RRethy/vim-illuminate/";
   };
@@ -4885,12 +5378,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/";
   };
@@ -4909,24 +5402,24 @@ 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/";
   };
 
   vim-javascript = buildVimPluginFrom2Nix {
     pname = "vim-javascript";
-    version = "2020-04-13";
+    version = "2020-05-11";
     src = fetchFromGitHub {
       owner = "pangloss";
       repo = "vim-javascript";
-      rev = "c3966153e81bc3766b1627e6ab0cd53333b61c1e";
-      sha256 = "1sbd5a06linzkx59lndfw27r66ng2bfm4pgn2cgjlcsjmkbcgakn";
+      rev = "3c90d0cc37bb8b78422f647e62587f498a5dd7bd";
+      sha256 = "16s3s883azfmwkr6hhnh8m7ibk6jm3vnvpmsagangxn0mz6ky533";
     };
     meta.homepage = "https://github.com/pangloss/vim-javascript/";
   };
@@ -4970,12 +5463,12 @@ let
 
   vim-jsdoc = buildVimPluginFrom2Nix {
     pname = "vim-jsdoc";
-    version = "2019-02-08";
+    version = "2020-07-23";
     src = fetchFromGitHub {
       owner = "heavenshell";
       repo = "vim-jsdoc";
-      rev = "b23073449d1df98ecfe73828079115e0d1d7573b";
-      sha256 = "0r91lr3gpjbaalqln7k8kv4q88w9rclfyji87yzmnr3apjaazyjj";
+      rev = "ed31c776d1da96ed8d950aef5ffba3f767f2acb4";
+      sha256 = "1qp5n04igirkqzqh7vfw0jnb31p36h356nc4n1kzna4zyqndzk9s";
     };
     meta.homepage = "https://github.com/heavenshell/vim-jsdoc/";
   };
@@ -5006,16 +5499,28 @@ 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-07-08";
+    src = fetchFromGitHub {
+      owner = "peitalin";
+      repo = "vim-jsx-typescript";
+      rev = "07370d48c605ec027543b52762930165b1b27779";
+      sha256 = "190nyy7kr6i3xr6nrjlfv643s1c48kxlbh8ynk8p53yf32gcxwz7";
+    };
+    meta.homepage = "https://github.com/peitalin/vim-jsx-typescript/";
+  };
+
   vim-kitty-navigator = buildVimPluginFrom2Nix {
     pname = "vim-kitty-navigator";
     version = "2019-11-04";
@@ -5042,12 +5547,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/";
   };
@@ -5090,48 +5595,48 @@ let
 
   vim-ledger = buildVimPluginFrom2Nix {
     pname = "vim-ledger";
-    version = "2020-03-30";
+    version = "2020-06-08";
     src = fetchFromGitHub {
       owner = "ledger";
       repo = "vim-ledger";
-      rev = "47186eb47f543becc34a048a37298954d89bf7c8";
-      sha256 = "0265614sa2d2s3xpzfliq159v7bmdvlc9yyw5c89pqv4b86gjxzf";
+      rev = "d5f2af4883351aa437ca1c3157d21917dc2bb1b0";
+      sha256 = "0bdyhbablays384gssfdfavkxcrwcj89y8vn5kdk11xs0r78b5wr";
     };
     meta.homepage = "https://github.com/ledger/vim-ledger/";
   };
 
   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-02-25";
+    version = "2020-06-30";
     src = fetchFromGitHub {
       owner = "embear";
       repo = "vim-localvimrc";
-      rev = "fc2f789ce7afa4bbdefbbb4599a802b39b7e7596";
-      sha256 = "19drgnsn4rb9kv30ykndwjgflsfs328dhm44a9hcp8f8faqpim3d";
+      rev = "ac6444afb5fd11e3f7750f696a0c6b8b0b6ec116";
+      sha256 = "182fvmfnpcqda0cm878lk79iprxsd7nb9r97jmr7lx5agdcvzaqb";
     };
     meta.homepage = "https://github.com/embear/vim-localvimrc/";
   };
@@ -5150,24 +5655,24 @@ let
 
   vim-lsc = buildVimPluginFrom2Nix {
     pname = "vim-lsc";
-    version = "2020-04-13";
+    version = "2020-07-12";
     src = fetchFromGitHub {
       owner = "natebosch";
       repo = "vim-lsc";
-      rev = "fb8056a305a4e3221304ca1483231b6960de5321";
-      sha256 = "0glg6225h84ahabahb9q5inipbbi7shcx5y44s8r2gyaqw1l773p";
+      rev = "632d49bf7a227e13bea6ef341de35f89e45c55b0";
+      sha256 = "1an37vkr9di0abxfnidlbij37xxy5z1cwnvpcnink4gman1msyzy";
     };
     meta.homepage = "https://github.com/natebosch/vim-lsc/";
   };
 
   vim-maktaba = buildVimPluginFrom2Nix {
     pname = "vim-maktaba";
-    version = "2020-04-18";
+    version = "2020-08-06";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-maktaba";
-      rev = "f630b985facf383ae1657d569ff69582224cca04";
-      sha256 = "1v0f9l12afr4kh6d9sdyl5fxvcgz0c018vll5932pfcrlwhkvdd3";
+      rev = "f60443777137a0f91e489b1757c6602c63fb3731";
+      sha256 = "1r6raxhwg78azcqv7brvas3w4xr7aja1gmcapm7j6mv69izf1fzw";
     };
     meta.homepage = "https://github.com/google/vim-maktaba/";
   };
@@ -5186,16 +5691,28 @@ let
 
   vim-markdown = buildVimPluginFrom2Nix {
     pname = "vim-markdown";
-    version = "2019-07-09";
+    version = "2020-07-14";
     src = fetchFromGitHub {
       owner = "plasticboy";
       repo = "vim-markdown";
-      rev = "da5a7ac96f517e0fd6f886bc3fbe27156ca1f946";
-      sha256 = "198bsv88njz6l2pf9yjxb8292aj7x8n2sxi50q3cdsg29a3y2i5c";
+      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";
@@ -5232,54 +5749,78 @@ let
     meta.homepage = "https://github.com/xolox/vim-misc/";
   };
 
+  vim-monokai = buildVimPluginFrom2Nix {
+    pname = "vim-monokai";
+    version = "2020-08-08";
+    src = fetchFromGitHub {
+      owner = "crusoexia";
+      repo = "vim-monokai";
+      rev = "85b18e98a22b17f9e01867988c18cf396316c20f";
+      sha256 = "1vzllvq1ncq4qyqbkp8z26sr4n9kpqv35zkfjas3r2jqbn958a93";
+    };
+    meta.homepage = "https://github.com/crusoexia/vim-monokai/";
+  };
+
   vim-monokai-pro = buildVimPluginFrom2Nix {
     pname = "vim-monokai-pro";
-    version = "2020-03-03";
+    version = "2020-05-07";
     src = fetchFromGitHub {
       owner = "phanviet";
       repo = "vim-monokai-pro";
-      rev = "c18f35725a5b0d569bfe6921fc4f56c029324828";
-      sha256 = "1nz8jnlhd6z9zqa9dfbxa9fabihpzz8ajlf4plkaxdy9137z1zqc";
+      rev = "baf3046bb44cdffe3bf9a571b3ec24039e2c9f88";
+      sha256 = "0rszkf070d8w94dhgjpsl1kyn19j7bqyz434qshz4j88jk7hap6h";
     };
     meta.homepage = "https://github.com/phanviet/vim-monokai-pro/";
   };
 
   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/";
   };
 
   vim-mucomplete = buildVimPluginFrom2Nix {
     pname = "vim-mucomplete";
-    version = "2020-01-22";
+    version = "2020-05-21";
     src = fetchFromGitHub {
       owner = "lifepillar";
       repo = "vim-mucomplete";
-      rev = "f13357964cc074d4fe747787065bfb19046f7fce";
-      sha256 = "0kqik4xgnk3cw7ls53djij086rbp49klzckc4zs4ph4cjwcpjhgq";
+      rev = "56ded939230b13ba5b93a38e79e2b61675a8f6ef";
+      sha256 = "1z6h8qwr12isr0xhpdqjf9imprz84gijaqgr761vgh7l2q1piqqv";
     };
     meta.homepage = "https://github.com/lifepillar/vim-mucomplete/";
   };
 
   vim-multiple-cursors = buildVimPluginFrom2Nix {
     pname = "vim-multiple-cursors";
-    version = "2020-02-06";
+    version = "2020-07-30";
     src = fetchFromGitHub {
       owner = "terryma";
       repo = "vim-multiple-cursors";
-      rev = "701e92dd4cfd1b0f511e83a96d52bc590c0218dd";
-      sha256 = "0a7fghk025f8gj5rsixi1hn8vkg2982fja7maf427v3wq74s6j1c";
+      rev = "6456718e1d30b42c04b920c5413ca44f68f08759";
+      sha256 = "0dmap8hjk6a0127fkab1pp5cllmijhqx80ijasngg11kxl0wzl32";
     };
     meta.homepage = "https://github.com/terryma/vim-multiple-cursors/";
   };
 
+  vim-mundo = buildVimPluginFrom2Nix {
+    pname = "vim-mundo";
+    version = "2020-07-20";
+    src = fetchFromGitHub {
+      owner = "simnalamburt";
+      repo = "vim-mundo";
+      rev = "f6b24082b1d22932cb834673c37aa936b6f4f6da";
+      sha256 = "1xr7g5wxfdd2rzdr94p2sasfm6zyha2rhjr3rx5mnpbcik7l3j61";
+    };
+    meta.homepage = "https://github.com/simnalamburt/vim-mundo/";
+  };
+
   vim-nerdtree-tabs = buildVimPluginFrom2Nix {
     pname = "vim-nerdtree-tabs";
     version = "2018-12-21";
@@ -5294,12 +5835,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/";
   };
@@ -5330,16 +5871,28 @@ 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/";
   };
 
+  vim-numbertoggle = buildVimPluginFrom2Nix {
+    pname = "vim-numbertoggle";
+    version = "2017-10-26";
+    src = fetchFromGitHub {
+      owner = "jeffkreeftmeijer";
+      repo = "vim-numbertoggle";
+      rev = "cfaecb9e22b45373bb4940010ce63a89073f6d8b";
+      sha256 = "1rrmvv7ali50rpbih1s0fj00a3hjspwinx2y6nhwac7bjsnqqdwi";
+    };
+    meta.homepage = "https://github.com/jeffkreeftmeijer/vim-numbertoggle/";
+  };
+
   vim-obsession = buildVimPluginFrom2Nix {
     pname = "vim-obsession";
     version = "2020-01-19";
@@ -5354,12 +5907,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/";
   };
@@ -5402,16 +5955,52 @@ let
 
   vim-orgmode = buildVimPluginFrom2Nix {
     pname = "vim-orgmode";
-    version = "2020-03-03";
+    version = "2020-07-14";
     src = fetchFromGitHub {
       owner = "jceb";
       repo = "vim-orgmode";
-      rev = "44faafa1d846691645b66e83f198f46afa755a6e";
-      sha256 = "1s649hksrwq70xyi8cvcd9bqcfyczga5c1g4fsas50rs107fcccn";
+      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";
@@ -5426,12 +6015,12 @@ let
 
   vim-pandoc = buildVimPluginFrom2Nix {
     pname = "vim-pandoc";
-    version = "2020-04-17";
+    version = "2020-07-30";
     src = fetchFromGitHub {
       owner = "vim-pandoc";
       repo = "vim-pandoc";
-      rev = "c6e2ddb1318cc141b2d84d630e493a14df942ea1";
-      sha256 = "15ci141jiv84ibrg1v98as1k376cnx06p1zp50w1qmccv696n8nv";
+      rev = "049ece9fa8f21afaa62215865afac22daa6fd30f";
+      sha256 = "0wjrbp06ffh9ficd22lcijrc99n72b7gbg5lqpms9r0442fb88kq";
     };
     meta.homepage = "https://github.com/vim-pandoc/vim-pandoc/";
   };
@@ -5450,12 +6039,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/";
   };
@@ -5510,12 +6099,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/";
   };
@@ -5546,12 +6135,12 @@ let
 
   vim-plug = buildVimPluginFrom2Nix {
     pname = "vim-plug";
-    version = "2020-04-11";
+    version = "2020-08-08";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "vim-plug";
-      rev = "e718868e85e2a32410144dfcdc3ba1303719450d";
-      sha256 = "1znaapjdz9nwgvr5il6rck82mz4dhj1nan87w2216xwpp53w61fb";
+      rev = "13ea184015c30be5160ae285aedc0eaec0c72e6c";
+      sha256 = "19vd5cmshlwrrf5ncgkny9p478d7bhjjwwjv71xb2adyfc9r1rv6";
     };
     meta.homepage = "https://github.com/junegunn/vim-plug/";
   };
@@ -5570,16 +6159,28 @@ let
 
   vim-polyglot = buildVimPluginFrom2Nix {
     pname = "vim-polyglot";
-    version = "2020-04-14";
+    version = "2020-08-18";
     src = fetchFromGitHub {
       owner = "sheerun";
       repo = "vim-polyglot";
-      rev = "14dc82fc4e6c0c08078f97a24a6c1639c1cc5113";
-      sha256 = "0cx9wvv8ca589wna7yy0qx0hc0c9g42y50fxa0y7vyw3wwkq8q7n";
+      rev = "0df1bfa0c5f3efb6688566d5656a330034772037";
+      sha256 = "1ba96gk3qs1d2zaxs24dk624z9b9ip7yx4vg0klasf4xq8s6kwjs";
     };
     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";
@@ -5594,12 +6195,12 @@ let
 
   vim-projectionist = buildVimPluginFrom2Nix {
     pname = "vim-projectionist";
-    version = "2019-11-13";
+    version = "2020-05-05";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-projectionist";
-      rev = "17a8b2078a9ca1410d2080419e1cb9c9bb2e4492";
-      sha256 = "1vf3jdcfiq27k9mdwlvsm2hn1xgxr79ckq3jqq00avj50bpdzs1z";
+      rev = "1d95458273a8ecdb678e65db918c045f9bb7e220";
+      sha256 = "1h5gb29rs64cfr55g12s1f0w0cqzqs2nhfw8qfbfch5jbh21p10p";
     };
     meta.homepage = "https://github.com/tpope/vim-projectionist/";
   };
@@ -5630,12 +6231,12 @@ let
 
   vim-ps1 = buildVimPluginFrom2Nix {
     pname = "vim-ps1";
-    version = "2020-03-30";
+    version = "2020-07-31";
     src = fetchFromGitHub {
       owner = "PProvost";
       repo = "vim-ps1";
-      rev = "9fdf92846fbeb8445e535cf0c5bdb4b1dce4a506";
-      sha256 = "0w98zcjvb64fhd6ahy3cqrs4y7zacak9nzpkkhr03l6zzbqb5kz4";
+      rev = "21d8d9a9db864f230a2d12d5076351daf20d7a44";
+      sha256 = "0s6mi1mzlk40sfdqghdsv709fs89hf9d6iqaw3arzs9lmin2i4ka";
     };
     meta.homepage = "https://github.com/PProvost/vim-ps1/";
   };
@@ -5690,28 +6291,52 @@ let
 
   vim-quickrun = buildVimPluginFrom2Nix {
     pname = "vim-quickrun";
-    version = "2020-02-03";
+    version = "2020-07-25";
     src = fetchFromGitHub {
       owner = "thinca";
       repo = "vim-quickrun";
-      rev = "f637c35b16d6e83cc71dababbda2a64eb29b3f5e";
-      sha256 = "0yf9acqcj3x62qchz0z9mwgf1af5vz39kyzhv5jh1mc0vwksrdwl";
+      rev = "3f49e05fb6072d6b7bc7fe20d0356cf15ef3b9de";
+      sha256 = "02kyp6l6m1nybfqx3d88yi34isrid355wiln6cskvxz2hpx532g8";
     };
     meta.homepage = "https://github.com/thinca/vim-quickrun/";
   };
 
   vim-racer = buildVimPluginFrom2Nix {
     pname = "vim-racer";
-    version = "2020-03-06";
+    version = "2020-06-18";
     src = fetchFromGitHub {
       owner = "racer-rust";
       repo = "vim-racer";
-      rev = "950b78f36e568134f5dcabc9a146c61e0084d220";
-      sha256 = "0k62yybilh2052w6zfscw7daz7y1qnqv1311zngjim5z8xmp7j1l";
+      rev = "250e9fd496edde1516a5e68e9837ccf5e46cc895";
+      sha256 = "1ar5wv776xslxrs2mmxr5kzz5pp4a4v8jydh9s6cqbfzglgr9kw5";
     };
     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-06-19";
+    src = fetchFromGitHub {
+      owner = "tpope";
+      repo = "vim-rails";
+      rev = "187742a3c18d93e6968f024d7db0f4fc5548408e";
+      sha256 = "132rvyn5pwg5xkm6q64k33vm6q9hfpng0wq25387l8l8a7hvj3az";
+    };
+    meta.homepage = "https://github.com/tpope/vim-rails/";
+  };
+
   vim-repeat = buildVimPluginFrom2Nix {
     pname = "vim-repeat";
     version = "2019-11-13";
@@ -5738,12 +6363,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/";
   };
@@ -5762,12 +6387,12 @@ let
 
   vim-ruby = buildVimPluginFrom2Nix {
     pname = "vim-ruby";
-    version = "2020-04-19";
+    version = "2020-08-03";
     src = fetchFromGitHub {
       owner = "vim-ruby";
       repo = "vim-ruby";
-      rev = "fd49b25e08618b58db678c3f8ce6e443b1ad04e7";
-      sha256 = "086pzicqal2cmvbrzy09d93c7cz5scgjcqc9xn4cw19dn55irllp";
+      rev = "fe2e520c62dfe10b9bc192b6c2651ef0519b1070";
+      sha256 = "1xh6h5wg242mzqshka5m3693r25www46p29cr92yi995a2izm2fw";
     };
     meta.homepage = "https://github.com/vim-ruby/vim-ruby/";
   };
@@ -5786,12 +6411,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/";
   };
@@ -5894,12 +6519,12 @@ let
 
   vim-signify = buildVimPluginFrom2Nix {
     pname = "vim-signify";
-    version = "2019-12-07";
+    version = "2020-08-13";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-signify";
-      rev = "56db16f8d3825c4d066c2faf05315c2b208cd5f5";
-      sha256 = "0alargsa6sxdxha6jshax7ff6jy8svzc9yxvsh83f8301zx9vmra";
+      rev = "98c693f7a1a91b73d9232d868765b4d20af892fe";
+      sha256 = "05ppj7sqp8i7qhaf6vz427nnwsnkgf9nlq3lhyhbl14cjkrhqny9";
     };
     meta.homepage = "https://github.com/mhinz/vim-signify/";
   };
@@ -5930,12 +6555,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/";
   };
@@ -5952,6 +6577,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";
@@ -5966,12 +6603,12 @@ let
 
   vim-sneak = buildVimPluginFrom2Nix {
     pname = "vim-sneak";
-    version = "2020-02-29";
+    version = "2020-06-29";
     src = fetchFromGitHub {
       owner = "justinmk";
       repo = "vim-sneak";
-      rev = "98a5c946d6dc76528b9d9b044059b5ef1fab5a48";
-      sha256 = "0xcxr658i5vzdkxfssd7zx6n3ar9b6dg4b2ddaswgnwq75xphrh9";
+      rev = "afe94543bb3bb95ef9ae2a58eebcbc17d69eb304";
+      sha256 = "0iaksyh77xahg5cp0q9x5c14jdklsrgy9400jp4xjb83qgg6d7qq";
     };
     meta.homepage = "https://github.com/justinmk/vim-sneak/";
   };
@@ -5990,12 +6627,12 @@ let
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2020-04-21";
+    version = "2020-08-19";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "ad4407f31bf170b0813fb9b03f851cf79b5f65ca";
-      sha256 = "0nr7xq5kz94fm578ds84pd3ydbhfbxs6r4fc5250anmazip2h2cw";
+      rev = "c093074fec6ba83aced4958ea44af11c5e5dff30";
+      sha256 = "0919fhzpg7scm7idq4vh7kqjvlmc4037cn5d24ggsvziybi07k9p";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
@@ -6048,6 +6685,18 @@ let
     meta.homepage = "https://github.com/tpope/vim-speeddating/";
   };
 
+  vim-spirv = buildVimPluginFrom2Nix {
+    pname = "vim-spirv";
+    version = "2020-06-12";
+    src = fetchFromGitHub {
+      owner = "kbenzie";
+      repo = "vim-spirv";
+      rev = "9b005a0569fa5e18f71fcccbacda227c1cef7eaa";
+      sha256 = "0qby4bfjav2xijh732l7d2jli0adnv6cc8kcalbh5315vi4mpnfk";
+    };
+    meta.homepage = "https://github.com/kbenzie/vim-spirv/";
+  };
+
   vim-startify = buildVimPluginFrom2Nix {
     pname = "vim-startify";
     version = "2020-04-18";
@@ -6086,12 +6735,12 @@ let
 
   vim-subversive = buildVimPluginFrom2Nix {
     pname = "vim-subversive";
-    version = "2020-04-22";
+    version = "2020-05-23";
     src = fetchFromGitHub {
       owner = "svermeulen";
       repo = "vim-subversive";
-      rev = "9db5f782be230368a3a81a21d3eb93678f7523ae";
-      sha256 = "0igv2yf1h1ajnv9c0z02pvgqciighwc1y53c9ahfqwxd58kpi5fj";
+      rev = "5695f97fc803767bf657a5e512daec19dd1fd786";
+      sha256 = "0lksvgk3g2yqbm8pw8ba5f8594djh5cj795hwjhnxc8rrhl29qpq";
     };
     meta.homepage = "https://github.com/svermeulen/vim-subversive/";
   };
@@ -6122,24 +6771,24 @@ let
 
   vim-SyntaxRange = buildVimPluginFrom2Nix {
     pname = "vim-SyntaxRange";
-    version = "2018-03-09";
+    version = "2020-08-18";
     src = fetchFromGitHub {
       owner = "inkarkat";
       repo = "vim-SyntaxRange";
-      rev = "dc33d8f84ebbf4c9fa03ce00b8adeb83e05249d3";
-      sha256 = "0nf0hkgl5fm0laxb5253br894259kz33zyiwxzrry6w3108alasr";
+      rev = "602316468bc044e047db88f50157b61fa00b65cb";
+      sha256 = "0zrrvd9xrivx61fiz799mdbwdzl7damdgm6i9h0sl1v95hclhi3i";
     };
     meta.homepage = "https://github.com/inkarkat/vim-SyntaxRange/";
   };
 
   vim-table-mode = buildVimPluginFrom2Nix {
     pname = "vim-table-mode";
-    version = "2020-04-19";
+    version = "2020-08-19";
     src = fetchFromGitHub {
       owner = "dhruvasagar";
       repo = "vim-table-mode";
-      rev = "6a6f3565c3bd6ea903c9824b8e9367fcdeb7a7b5";
-      sha256 = "0vxkakix6r4x1a4ipzhpr7ix7fxz2bqaskwkpmgap12wy5qg3rzs";
+      rev = "3476c4e517aa86bc131c707d32f2e508bd5be468";
+      sha256 = "0vglazxlsg7ai4c5znxaddpjnfhz6a9slzs0kzzqvmhd3xr7vfg1";
     };
     meta.homepage = "https://github.com/dhruvasagar/vim-table-mode/";
   };
@@ -6170,26 +6819,39 @@ 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-04-19";
+    version = "2020-08-12";
     src = fetchFromGitHub {
-      owner = "janko";
+      owner = "vim-test";
       repo = "vim-test";
-      rev = "42c216487a2a13dce04e84534461cc1cf96fa774";
-      sha256 = "0912d62frdjm488sybhafl113xh4npylzk0gzblbgdi0fl2f9i52";
+      rev = "edacfbe57fdbba4788e8c280d37606470b9b70ca";
+      sha256 = "1bi2rsszdpv7vj1xk536lzm54dzk1z41hfp0qr1pzz9lv8fa4sgv";
     };
-    meta.homepage = "https://github.com/janko/vim-test/";
+    meta.homepage = "https://github.com/vim-test/vim-test/";
   };
 
   vim-textobj-comment = buildVimPluginFrom2Nix {
@@ -6266,28 +6928,40 @@ let
 
   vim-themis = buildVimPluginFrom2Nix {
     pname = "vim-themis";
-    version = "2020-03-08";
+    version = "2020-07-29";
     src = fetchFromGitHub {
       owner = "thinca";
       repo = "vim-themis";
-      rev = "2d10aee9c9982f4f5974e88351934759c69640e7";
-      sha256 = "06ab0kjamzpyql71qmc8qhvb72rx07x2g598aidk8nqkk36x87ai";
+      rev = "47bc9855d7c2b1452d8a0abda91bda35837f8552";
+      sha256 = "083k1v9gmmmhmll61kywgd1cn1l2qkfk6sqjjkcv6az01rkrm521";
     };
     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/";
   };
 
+  vim-tmux-clipboard = buildVimPluginFrom2Nix {
+    pname = "vim-tmux-clipboard";
+    version = "2019-04-07";
+    src = fetchFromGitHub {
+      owner = "roxma";
+      repo = "vim-tmux-clipboard";
+      rev = "47187740b88f9dab213f44678800cc797223808e";
+      sha256 = "1a7rpbvb7dgjfnrh95zg2ia6iiz2mz2xps31msb8h14hcj6dsv6y";
+    };
+    meta.homepage = "https://github.com/roxma/vim-tmux-clipboard/";
+  };
+
   vim-tmux-focus-events = buildVimPluginFrom2Nix {
     pname = "vim-tmux-focus-events";
     version = "2019-12-09";
@@ -6326,24 +7000,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/";
   };
@@ -6374,48 +7048,60 @@ let
 
   vim-unimpaired = buildVimPluginFrom2Nix {
     pname = "vim-unimpaired";
-    version = "2019-11-12";
+    version = "2020-04-26";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-unimpaired";
-      rev = "08e66532bffed445c949ae0a0501940c000553ed";
-      sha256 = "0sm5rv6z0s80l9c39hijhnfggvgmi24ac6d9a1k58pzjz6i9w2vr";
+      rev = "4afbe5ebf32ad85341b4c02b0e1d8ca96a64c561";
+      sha256 = "052amdb4bd2qbip3z9xz7h1cv61k4p038j65yijm68vy0hf2724y";
     };
     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/";
   };
 
   vim-visual-increment = buildVimPluginFrom2Nix {
     pname = "vim-visual-increment";
-    version = "2015-07-02";
+    version = "2020-05-03";
     src = fetchFromGitHub {
       owner = "triglav";
       repo = "vim-visual-increment";
-      rev = "e50e8f7c062cec759f665278eb58535df1611a23";
-      sha256 = "1gd6mxp9y80wf7nxcm02104l54gqz5k3dgv1h98jl9a7q9swb8y6";
+      rev = "0e55bb4054cdd5eefc0bb870f3e3c249673817cb";
+      sha256 = "0if3r3ih8f4yxy5s4xsl7384xzf14rmalvg60n9mbhshyljggvc4";
     };
     meta.homepage = "https://github.com/triglav/vim-visual-increment/";
   };
 
   vim-visual-multi = buildVimPluginFrom2Nix {
     pname = "vim-visual-multi";
-    version = "2020-04-21";
+    version = "2020-08-15";
     src = fetchFromGitHub {
       owner = "mg979";
       repo = "vim-visual-multi";
-      rev = "5983497180ce1406997e5329f526f40f76b21121";
-      sha256 = "0hrc3kwrk65hdnapp056kxwzizifzdy9zsqn242d81nzymfa6353";
+      rev = "038065ed8d1b43972f8993df41f07aa00848a47f";
+      sha256 = "137pcqp96xgak9ghr5829dq39525n0x2p56lcbh2njf3crgvmnl0";
     };
     meta.homepage = "https://github.com/mg979/vim-visual-multi/";
   };
@@ -6432,6 +7118,30 @@ let
     meta.homepage = "https://github.com/thinca/vim-visualstar/";
   };
 
+  vim-vsnip = buildVimPluginFrom2Nix {
+    pname = "vim-vsnip";
+    version = "2020-08-21";
+    src = fetchFromGitHub {
+      owner = "hrsh7th";
+      repo = "vim-vsnip";
+      rev = "bf0d6c142721d3c1e3ce1f35b205655657db13c9";
+      sha256 = "1z90g90h0yc9xiwl4bwbq3nawks0rzsbxr1ryy07w3qjcg7kwrdp";
+    };
+    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";
@@ -6470,12 +7180,12 @@ let
 
   vim-which-key = buildVimPluginFrom2Nix {
     pname = "vim-which-key";
-    version = "2020-03-16";
+    version = "2020-08-10";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-which-key";
-      rev = "4b70b443ba5838b165f90e26f9ed628d7d05e11d";
-      sha256 = "197rp20hngrq7qdlii0ai4vb81dlilah0q1wlil8hv3qcf4az7qr";
+      rev = "c940b147c3098278f9c14b85eef9cfdbf82a7f09";
+      sha256 = "19qh7lmpb093hnxga2jk6s47bjsdjqj4zrb3lrkrjn2qyyasi194";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-which-key/";
   };
@@ -6506,12 +7216,12 @@ let
 
   vim-xkbswitch = buildVimPluginFrom2Nix {
     pname = "vim-xkbswitch";
-    version = "2019-12-14";
+    version = "2020-05-22";
     src = fetchFromGitHub {
       owner = "lyokha";
       repo = "vim-xkbswitch";
-      rev = "b9839555f70d319b4e21fc7bc9b559d91cf1260a";
-      sha256 = "1ql8yv8rxpr9j9phf4jddqs1j81vcb9gpp0p3fmy6f8nf4b26nvw";
+      rev = "f54fd6a7357d43a8773313504da72d1bd96d6f1a";
+      sha256 = "0542prcclaw6s4f6dlp0ywz5zp10brb7br7hx4lhhizslcakg09v";
     };
     meta.homepage = "https://github.com/lyokha/vim-xkbswitch/";
   };
@@ -6590,12 +7300,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/";
   };
@@ -6638,12 +7348,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/";
   };
@@ -6662,12 +7372,12 @@ let
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2020-04-23";
+    version = "2020-08-21";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "3e2bf3f27ad7253767eefe0b4c4e551c602d5d77";
-      sha256 = "1pxkim0mh691lb8clv1828nhs4cqzf8s3vkmynq7164mzvrf77sh";
+      rev = "e14617591fcf59b638d25320215a80f437009119";
+      sha256 = "10nlqbqfna5lvlk6rd4zsr5056vx2d22n6hm8sdpxp094nrqbdic";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -6686,12 +7396,12 @@ let
 
   vimwiki = buildVimPluginFrom2Nix {
     pname = "vimwiki";
-    version = "2020-01-13";
+    version = "2020-05-26";
     src = fetchFromGitHub {
       owner = "vimwiki";
       repo = "vimwiki";
-      rev = "64c9f3d36d632b1657616c06ea8f08f14cf6438d";
-      sha256 = "0wwfl0bafwh9p8lzic75d0nl6v5dnpfid7fbiffr0i72agp0gcq7";
+      rev = "619f04f89861c58e5a6415a4f83847752928252d";
+      sha256 = "03dic4vjl3bwd7s6jj3vrz6xicf3a3bccaqgx635hn01ha6vw1jw";
     };
     meta.homepage = "https://github.com/vimwiki/vimwiki/";
   };
@@ -6710,12 +7420,12 @@ let
 
   vista-vim = buildVimPluginFrom2Nix {
     pname = "vista-vim";
-    version = "2020-04-24";
+    version = "2020-08-14";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vista.vim";
-      rev = "48631457714b6a611b96ad4785ec16a98b639515";
-      sha256 = "05zabbnrxbgnymp6iyc6gmfj3sk752679kvyzk5jiraksi32djiw";
+      rev = "7f97d30914daea5b542a90eed747d5bd00afbb19";
+      sha256 = "1ghpkyh9ga759v065yvn4xr8ccwamyr87jkq3av9fslxzfzhwdpm";
     };
     meta.homepage = "https://github.com/liuchengxu/vista.vim/";
   };
@@ -6794,12 +7504,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/";
   };
@@ -6830,12 +7540,12 @@ let
 
   yats-vim = buildVimPluginFrom2Nix {
     pname = "yats-vim";
-    version = "2020-04-18";
+    version = "2020-07-30";
     src = fetchFromGitHub {
       owner = "HerringtonDarkholme";
       repo = "yats.vim";
-      rev = "7978f7d52e1cfbdba1d17951c7bd4be527807e4e";
-      sha256 = "0fiqbnqsyr743vxm8km4q7yyd26anya1yi89gkzjipq2vgpqx7hn";
+      rev = "4d76c5391b7975bd6dd09c0562c0fd4d78e14fa0";
+      sha256 = "1ql5gwdnsf9y56ijphspfi3sbjgfj1594728xyw6l432mddgqx99";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/HerringtonDarkholme/yats.vim/";
@@ -6843,12 +7553,12 @@ let
 
   YouCompleteMe = buildVimPluginFrom2Nix {
     pname = "YouCompleteMe";
-    version = "2020-04-18";
+    version = "2020-08-05";
     src = fetchFromGitHub {
       owner = "ycm-core";
       repo = "YouCompleteMe";
-      rev = "367c1518cd6f2c8695000924b8ec2815a30a9af3";
-      sha256 = "0c8982qj93b8rcb4m7dfczscqyfhv2y672irrrpg0kb2yxiwk51m";
+      rev = "bcfd153813ac1f99947b706991eba2861f54a8a2";
+      sha256 = "1mqgqzfx6v7ps8gk7qgs8mihb35i3q100m39sd8wl1ihgcsq3w1r";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@@ -6892,12 +7602,12 @@ let
 
   zig-vim = buildVimPluginFrom2Nix {
     pname = "zig-vim";
-    version = "2020-04-12";
+    version = "2020-07-20";
     src = fetchFromGitHub {
       owner = "ziglang";
       repo = "zig.vim";
-      rev = "0e914f2ab5ab9a9554c31b90be189dca5c4ee3a8";
-      sha256 = "1njf3flx5dcahvk92kaf879sd4a75yq4nnii4ljip7bvkyci8ipa";
+      rev = "079985534a5f2795bfaf549f276d4a1c213bfcb1";
+      sha256 = "173yx5nv9pnjm1qxcfkgbf4yfbjyifqjn5qvk8ibdvdxrhyvbrdn";
     };
     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 4d5b532216d..db1fd71d2f4 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
@@ -24,12 +25,16 @@
 , gomodifytags, gotags, gotools, go-motion
 , gnused, reftools, gogetdoc, golangci-lint
 , impl, iferr, gocode, gocode-gomod, go-tools
+, gopls
 
 # direnv-vim dependencies
 , direnv
 
 # vCoolor dependency
 , gnome3
+
+# fruzzy dependency
+, nim
 }:
 
 self: super: {
@@ -57,16 +62,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.
@@ -94,8 +101,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'"
@@ -383,6 +388,38 @@ self: super: {
     dependencies = with super; [ super.self ];
   });
 
+  fruzzy = let # until https://github.com/NixOS/nixpkgs/pull/67878 is merged, there's no better way to install nim libraries with nix
+    nimpy = fetchFromGitHub {
+      owner = "yglukhov";
+      repo = "nimpy";
+      rev = "4840d1e438985af759ddf0923e7a9250fd8ea0da";
+      sha256 = "0qqklvaajjqnlqm3rkk36pwwnn7x942mbca7nf2cvryh36yg4q5k";
+    };
+    binaryheap = fetchFromGitHub {
+      owner = "bluenote10";
+      repo = "nim-heap";
+      rev = "c38039309cb11391112571aa332df9c55f625b54";
+      sha256 = "05xdy13vm5n8dw2i366ppbznc4cfhq23rdcklisbaklz2jhdx352";
+    };
+  in super.fruzzy.overrideAttrs(old: {
+    buildInputs = [ nim ];
+    patches = [
+      (substituteAll {
+        src = ./patches/fruzzy/get_version.patch;
+        version = old.version;
+      })
+    ];
+    configurePhase = ''
+      substituteInPlace Makefile \
+        --replace \
+          "nim c" \
+          "nim c --nimcache:$TMP --path:${nimpy} --path:${binaryheap}"
+    '';
+    buildPhase = ''
+      make build
+    '';
+  });
+
   ghcid = super.ghcid.overrideAttrs(old: {
     configurePhase = "cd plugins/nvim";
   });
@@ -406,6 +443,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 ];
   });
@@ -414,6 +463,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 {
@@ -520,6 +573,10 @@ self: super: {
     dependencies = with super; [ vim-maktaba ];
   });
 
+  vim-beancount = super.vim-beancount.overrideAttrs(old: {
+    passthru.python3Dependencies = ps: with ps; [ beancount ];
+  });
+
   vim-codefmt = super.vim-codefmt.overrideAttrs(old: {
     dependencies = with super; [ vim-maktaba ];
   });
@@ -558,6 +615,7 @@ self: super: {
       golint
       golangci-lint
       gomodifytags
+      gopls
       gotags
       gotools
       iferr
@@ -707,4 +765,30 @@ 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
+    '';
+  });
 }
diff --git a/pkgs/misc/vim-plugins/patches/fruzzy/get_version.patch b/pkgs/misc/vim-plugins/patches/fruzzy/get_version.patch
new file mode 100644
index 00000000000..62aaba118f2
--- /dev/null
+++ b/pkgs/misc/vim-plugins/patches/fruzzy/get_version.patch
@@ -0,0 +1,25 @@
+diff --git a/rplugin/python3/fruzzy_mod.nim b/rplugin/python3/fruzzy_mod.nim
+index dba0689..0109285 100644
+--- a/rplugin/python3/fruzzy_mod.nim
++++ b/rplugin/python3/fruzzy_mod.nim
+@@ -12,9 +12,7 @@ when defined(profile):
+     import nimprof
+
+ proc getVersion(): string {.compileTime.}=
+-    let ver = staticExec("git describe --tags --always --dirty").strip()
+-    # let cTime = format(times.now(), "yyyy-MM-dd hh:mm:ss")
+-    let branch = staticExec("git rev-parse --abbrev-ref HEAD").strip()
++    let ver = "@version@"
+     var options:seq[string] = newSeq[string]()
+     if not defined(removelogger):
+         options.add("info")
+@@ -26,7 +24,7 @@ proc getVersion(): string {.compileTime.}=
+         options.add("release")
+     let optionsStr = options.join(",")
+
+-    return &"rev: {ver} on branch: {branch} with options: {optionsStr}"
++    return &"version: {ver} with options: {optionsStr}"
+
+ let L = newConsoleLogger(levelThreshold = logging.Level.lvlDebug)
+ addHandler(L)
+
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 4af22bd833e..6b521cadfc3 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -14,6 +14,7 @@ andreshazard/vim-logreview
 AndrewRadev/splitjoin.vim
 andsild/peskcolor.vim
 andviro/flake8-vim
+andymass/vim-matchup
 andys8/vim-elm-syntax
 antoinemadec/coc-fzf
 ap/vim-css-color
@@ -35,6 +36,7 @@ bohlender/vim-smt2
 brennanfee/vim-gui-position
 bronson/vim-trailing-whitespace
 brooth/far.vim
+buoto/gotests-vim
 carlitux/deoplete-ternjs
 ccarpita/rtorrent-syntax-file
 cespare/vim-toml
@@ -56,6 +58,7 @@ cloudhead/neovim-fuzzy
 CoatiSoftware/vim-sourcetrail
 cocopon/iceberg.vim
 cohama/lexima.vim
+crusoexia/vim-monokai
 ctjhoa/spacevim
 ctrlpvim/ctrlp.vim
 dag/vim-fish
@@ -79,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
@@ -97,9 +101,11 @@ enomsg/vim-haskellConcealPlus
 ensime/ensime-vim
 ervandew/supertab
 esneider/YUNOcommit.vim
+fannheyward/coc-markdownlint
 fannheyward/coc-rust-analyzer
 farmergreg/vim-lastplace
 fatih/vim-go
+fcpg/vim-osc52
 FelikZ/ctrlp-py-matcher
 fenetikm/falcon
 fisadev/vim-isort
@@ -111,6 +117,7 @@ fsharp/vim-fsharp
 fszymanski/deoplete-emoji
 garbas/vim-snipmate
 gentoo/gentoo-syntax
+GEverding/vim-hocon
 gibiansky/vim-textobj-haskell
 glts/vim-textobj-comment
 godlygeek/csapprox
@@ -127,22 +134,29 @@ 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
-icymind/NeoSolarized
 idris-hackers/idris-vim
+ihsanturk/neuron.vim
 Inazuma110/deoplete-greek
 inkarkat/vim-SyntaxRange
 int3/vim-extradite
@@ -153,16 +167,17 @@ itchyny/vim-cursorword
 itchyny/vim-gitbranch
 ivanov/vim-ipython
 jacoborus/tender.vim
-janko/vim-test
 jaredgorski/SpaceCamp
+jaxbot/semantic-highlight.vim
 JazzCore/ctrlp-cmatcher
 jceb/vim-hier
 jceb/vim-orgmode
 jeetsukumaran/vim-buffergator
 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
@@ -174,13 +189,16 @@ jonbri/vim-colorstepper
 jonsmithers/vim-html-template-literals
 joonty/vim-xdebug
 josa42/coc-go
+joshdick/onedark.vim
 jpalardy/vim-slime
+jparise/vim-graphql
 jparise/vim-phabricator
 jreybert/vimagit
 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
@@ -206,6 +224,7 @@ kana/vim-tabpagecd
 kana/vim-textobj-function
 kana/vim-textobj-user
 kassio/neoterm
+kbenzie/vim-spirv
 kchmck/vim-coffee-script
 KeitaNakamura/neodark.vim
 keith/swift.vim
@@ -215,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
@@ -229,9 +250,11 @@ lervag/vimtex
 lfilho/cosco.vim
 lifepillar/vim-mucomplete
 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
@@ -274,11 +297,14 @@ matze/vim-move
 maximbaz/lightline-ale
 MaxMEllon/vim-jsx-pretty
 mbbill/undotree
+mboughaba/i3config.vim
 megaannum/forms
 megaannum/self
 mengelbrecht/lightline-bufferline
 mfukar/robotframework-vim
 mg979/vim-visual-multi
+mhartington/oceanic-next
+mhinz/vim-crates
 mhinz/vim-grepper
 mhinz/vim-janah
 mhinz/vim-sayonara
@@ -294,6 +320,7 @@ mopp/sky-color-clock.vim
 morhetz/gruvbox
 motus/pig.vim
 mpickering/hlint-refactor-vim
+mtikekar/vim-bsv
 nanotech/jellybeans.vim
 natebosch/vim-lsc
 nathanaelkane/vim-indent-guides
@@ -303,10 +330,19 @@ 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
@@ -359,15 +395,23 @@ 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
 pangloss/vim-javascript
 parsonsmatt/intero-neovim
 pearofducks/ansible-vim
+peitalin/vim-jsx-typescript
 peterbjorgensen/sved
 peterhoeg/vim-qml
 phanviet/vim-monokai-pro
@@ -378,6 +422,7 @@ powerman/vim-plugin-AnsiEsc
 PProvost/vim-ps1
 preservim/nerdcommenter
 preservim/nerdtree
+psliwka/vim-smoothie
 ptzz/lf.vim
 purescript-contrib/purescript-vim
 python-mode/python-mode
@@ -387,6 +432,7 @@ Quramy/tsuquyomi
 racer-rust/vim-racer
 rafaqz/ranger.vim
 rafi/awesome-vim-colorschemes
+raghur/fruzzy
 raghur/vim-ghost
 Raimondi/delimitMate
 rakr/vim-one
@@ -394,14 +440,18 @@ rbgrouleff/bclose.vim
 reedes/vim-pencil
 reedes/vim-wordy
 rhysd/committia.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
 roxma/nvim-yarp
+roxma/vim-tmux-clipboard
 RRethy/vim-illuminate
 rust-lang/rust.vim
 ryanoasis/vim-devicons
@@ -435,6 +485,7 @@ Shougo/vimproc.vim
 Shougo/vimshell.vim
 shumphrey/fugitive-gitlab.vim
 sickill/vim-pasta
+simnalamburt/vim-mundo
 SirVer/ultisnips
 sjl/gundo.vim
 sjl/splice.vim
@@ -487,6 +538,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
@@ -548,6 +601,7 @@ vim-scripts/utl.vim
 vim-scripts/wombat256.vim
 vim-scripts/YankRing.vim
 vim-syntastic/syntastic
+vim-test/vim-test
 vim-utils/vim-husk
 Vimjas/vim-python-pep8-indent
 vimlab/split-term.vim
@@ -556,9 +610,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
@@ -571,5 +629,6 @@ xolox/vim-misc
 xuhdev/vim-latex-live-preview
 ycm-core/YouCompleteMe
 Yggdroot/indentLine
+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/mktplcExtRefToFetchArgs.nix b/pkgs/misc/vscode-extensions/mktplcExtRefToFetchArgs.nix
new file mode 100644
index 00000000000..a781250fc18
--- /dev/null
+++ b/pkgs/misc/vscode-extensions/mktplcExtRefToFetchArgs.nix
@@ -0,0 +1,8 @@
+{ publisher, name, version, sha256 ? "" }:
+{
+  url = "https://${publisher}.gallery.vsassets.io/_apis/public/gallery/publisher/${publisher}/extension/${name}/${version}/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage";
+  sha256 = sha256;
+  # The `*.vsix` file is in the end a simple zip file. Change the extension
+  # so that existing `unzip` hooks takes care of the unpacking.
+  name = "${publisher}-${name}.zip";
+}
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 d42da3bbc5b..ac2da521c22 100644
--- a/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json
+++ b/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json
@@ -2,21 +2,25 @@
   "name": "rust-analyzer",
   "version": "0.4.0-dev",
   "dependencies": {
-    "jsonc-parser": "^2.2.1",
     "node-fetch": "^2.6.0",
     "vscode-languageclient": "7.0.0-next.1",
-    "@rollup/plugin-commonjs": "^11.0.2",
-    "@rollup/plugin-node-resolve": "^7.1.1",
-    "@types/node": "^12.12.34",
-    "@types/node-fetch": "^2.5.5",
-    "@types/vscode": "1.44.0",
-    "@typescript-eslint/eslint-plugin": "^2.27.0",
-    "@typescript-eslint/parser": "^2.27.0",
-    "eslint": "^6.8.0",
-    "rollup": "^2.3.3",
-    "tslib": "^1.11.1",
-    "typescript": "^3.8.3",
+    "@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": "~12.7.0",
+    "@types/node-fetch": "^2.5.7",
+    "@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": "^8.0.1",
+    "rollup": "^2.18.1",
+    "tslib": "^2.0.0",
+    "typescript": "^3.9.5",
     "typescript-formatter": "^7.2.2",
-    "vsce": "^1.75.0"
+    "vsce": "^1.75.0",
+    "vscode-test": "^1.4.0"
   }
 }
diff --git a/pkgs/misc/vscode-extensions/rust-analyzer/default.nix b/pkgs/misc/vscode-extensions/rust-analyzer/default.nix
index 230ee383af3..d19027fa576 100644
--- a/pkgs/misc/vscode-extensions/rust-analyzer/default.nix
+++ b/pkgs/misc/vscode-extensions/rust-analyzer/default.nix
@@ -1,5 +1,5 @@
 # Update script: pkgs/development/tools/rust/rust-analyzer/update.sh
-{ lib, stdenv, vscode-utils, jq, rust-analyzer, nodePackages_10_x
+{ lib, stdenv, vscode-utils, jq, rust-analyzer, nodePackages
 , setDefaultServerPath ? true
 }:
 
@@ -10,7 +10,7 @@ let
   # Follow the unstable version of rust-analyzer, since the extension is not stable yet.
   inherit (rust-analyzer) version;
 
-  build-deps = nodePackages_10_x."rust-analyzer-build-deps-../../misc/vscode-extensions/rust-analyzer/build-deps";
+  build-deps = nodePackages."rust-analyzer-build-deps-../../misc/vscode-extensions/rust-analyzer/build-deps";
   # FIXME: Making a new derivation to link `node_modules` and run `npm run package`
   # will cause a build failure.
   vsix = build-deps.override {
@@ -32,12 +32,11 @@ in vscode-utils.buildVscodeExtension {
 
   nativeBuildInputs = lib.optional setDefaultServerPath jq;
 
-  postFixup = lib.optionalString setDefaultServerPath ''
-    package_json="$out/${publisher}.${pname}/package.json"
+  preInstall = lib.optionalString setDefaultServerPath ''
     jq '.contributes.configuration.properties."rust-analyzer.serverPath".default = $s' \
       --arg s "${rust-analyzer}/bin/rust-analyzer" \
-      $package_json >$package_json.new
-    mv $package_json.new $package_json
+      package.json >package.json.new
+    mv package.json.new package.json
   '';
 
   meta = with lib; {
diff --git a/pkgs/misc/vscode-extensions/updateSettings.nix b/pkgs/misc/vscode-extensions/updateSettings.nix
new file mode 100644
index 00000000000..a033229c589
--- /dev/null
+++ b/pkgs/misc/vscode-extensions/updateSettings.nix
@@ -0,0 +1,39 @@
+# Updates the vscode setting file base on a nix expression
+# should run from the workspace root.
+{ writeShellScriptBin
+, lib
+, jq
+}:
+##User Input
+{ settings      ? {}
+# if marked as true will create an empty json file if does not exists
+, createIfDoesNotExists ? true
+, vscodeSettingsFile ? ".vscode/settings.json"
+, userSettingsFolder ? ""
+, symlinkFromUserSetting ? false
+}:
+let
+
+  updateVSCodeSettingsCmd = ''
+  (
+    echo 'updateSettings.nix: Updating ${vscodeSettingsFile}...' 
+    oldSettings=$(cat ${vscodeSettingsFile})
+    echo $oldSettings' ${builtins.toJSON settings}' | ${jq}/bin/jq -s add > ${vscodeSettingsFile}
+  )'';
+
+  createEmptySettingsCmd = ''mkdir -p .vscode && echo "{}" > ${vscodeSettingsFile}'';
+  fileName = builtins.baseNameOf vscodeSettingsFile;
+  symlinkFromUserSettingCmd = lib.optionalString symlinkFromUserSetting
+    '' && mkdir -p "${userSettingsFolder}" && ln -sfv "$(pwd)/${vscodeSettingsFile}" "${userSettingsFolder}/" '';
+in 
+
+  writeShellScriptBin ''vscodeNixUpdate-${lib.removeSuffix ".json" (fileName)}''
+  (lib.optionalString (settings != {}) 
+    (if createIfDoesNotExists then ''
+      [ ! -f "${vscodeSettingsFile}" ] && ${createEmptySettingsCmd}
+      ${updateVSCodeSettingsCmd} ${symlinkFromUserSettingCmd}
+    ''
+    else ''[ -f "${vscodeSettingsFile}" ] && ${updateVSCodeSettingsCmd} ${symlinkFromUserSettingCmd}
+    ''
+    )
+  )
diff --git a/pkgs/misc/vscode-extensions/updateSettingsTest.nix b/pkgs/misc/vscode-extensions/updateSettingsTest.nix
new file mode 100644
index 00000000000..097b9cad166
--- /dev/null
+++ b/pkgs/misc/vscode-extensions/updateSettingsTest.nix
@@ -0,0 +1,6 @@
+with import <nixpkgs>{};
+callPackage (import ./updateSettings.nix) {} {
+  settings = {
+    a = "fdsdf";
+  };
+}
diff --git a/pkgs/misc/vscode-extensions/vscode-utils.nix b/pkgs/misc/vscode-extensions/vscode-utils.nix
index 5d446b025d7..1de3bce3d0d 100644
--- a/pkgs/misc/vscode-extensions/vscode-utils.nix
+++ b/pkgs/misc/vscode-extensions/vscode-utils.nix
@@ -1,14 +1,5 @@
-{ stdenv, lib, fetchurl, unzip }:
-
+{ stdenv, lib, buildEnv, writeShellScriptBin, fetchurl, vscode, unzip, jq }:
 let
-  mktplcExtRefToFetchArgs = ext: {
-    url = "https://${ext.publisher}.gallery.vsassets.io/_apis/public/gallery/publisher/${ext.publisher}/extension/${ext.name}/${ext.version}/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage";
-    sha256 = ext.sha256;
-    # The `*.vsix` file is in the end a simple zip file. Change the extension
-    # so that existing `unzip` hooks takes care of the unpacking.
-    name = "${ext.publisher}-${ext.name}.zip";
-  };
-
   buildVscodeExtension = a@{
     name,
     src,
@@ -22,18 +13,19 @@ let
     buildInputs ? [],
     ...
   }:
-  stdenv.mkDerivation ((removeAttrs a [ "vscodeExtUniqueId" ]) //  {
+  stdenv.mkDerivation ((removeAttrs a [ "vscodeExtUniqueId" ]) // {
 
     name = "vscode-extension-${name}";
 
     inherit vscodeExtUniqueId;
     inherit configurePhase buildPhase dontPatchELF dontStrip;
 
-    installPrefix = "${vscodeExtUniqueId}";
+    installPrefix = "share/vscode/extensions/${vscodeExtUniqueId}";
 
     buildInputs = [ unzip ] ++ buildInputs;
 
     installPhase = ''
+
       runHook preInstall
 
       mkdir -p "$out/$installPrefix"
@@ -44,9 +36,8 @@ let
 
   });
 
-
   fetchVsixFromVscodeMarketplace = mktplcExtRef:
-    fetchurl((mktplcExtRefToFetchArgs mktplcExtRef));
+    fetchurl((import ./mktplcExtRefToFetchArgs.nix mktplcExtRef));
 
   buildVscodeMarketplaceExtension = a@{
     name ? "",
@@ -79,10 +70,25 @@ let
   extensionsFromVscodeMarketplace = mktplcExtRefList:
     builtins.map extensionFromVscodeMarketplace mktplcExtRefList;
 
-in
+  vscodeWithConfiguration = import ./vscodeWithConfiguration.nix {
+   inherit lib extensionsFromVscodeMarketplace writeShellScriptBin;
+   vscodeDefault = vscode;
+  };
+
+
+  vscodeExts2nix = import ./vscodeExts2nix.nix {
+    inherit lib writeShellScriptBin;
+    vscodeDefault = vscode;
+  };
 
+  vscodeEnv = import ./vscodeEnv.nix {
+    inherit lib buildEnv writeShellScriptBin extensionsFromVscodeMarketplace jq;
+    vscodeDefault = vscode;
+  };
+in
 {
   inherit fetchVsixFromVscodeMarketplace buildVscodeExtension
           buildVscodeMarketplaceExtension extensionFromVscodeMarketplace
-          extensionsFromVscodeMarketplace;
+          extensionsFromVscodeMarketplace
+          vscodeWithConfiguration vscodeExts2nix vscodeEnv;
 }
diff --git a/pkgs/misc/vscode-extensions/vscodeEnv.nix b/pkgs/misc/vscode-extensions/vscodeEnv.nix
new file mode 100644
index 00000000000..6e4bb7b3ea8
--- /dev/null
+++ b/pkgs/misc/vscode-extensions/vscodeEnv.nix
@@ -0,0 +1,86 @@
+#Use vscodeWithConfiguration and vscodeExts2nix to create a vscode executable. When the executable exits, it updates the mutable extension file, which is imported when evaluated by Nix later.
+{ lib
+, buildEnv
+, writeShellScriptBin
+, extensionsFromVscodeMarketplace
+, vscodeDefault
+, jq
+}:
+##User input
+{ vscode                           ? vscodeDefault
+, nixExtensions                    ? []
+, vscodeExtsFolderName             ? ".vscode-exts"
+# will add to the command updateSettings (which will run on executing vscode) settings to override in settings.json file
+, settings                         ? {}
+, createSettingsIfDoesNotExists    ? true
+, launch                           ? {}
+, createLaunchIfDoesNotExists      ? true
+# will add to the command updateKeybindings(which will run on executing vscode) keybindings to override in keybinding.json file
+, keybindings                      ? {}
+, createKeybindingsIfDoesNotExists ? true
+, 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 
+}:
+let  
+  mutableExtensionsFilePath = toString mutableExtensionsFile;
+  mutableExtensions = if builtins.pathExists mutableExtensionsFile 
+                      then import mutableExtensionsFilePath else [];
+  vscodeWithConfiguration = import ./vscodeWithConfiguration.nix { 
+    inherit lib writeShellScriptBin extensionsFromVscodeMarketplace;
+    vscodeDefault = vscode;
+  }
+  {
+    inherit nixExtensions mutableExtensions vscodeExtsFolderName user-data-dir;
+  };
+
+  updateSettings = import ./updateSettings.nix { inherit lib writeShellScriptBin jq; };
+  userSettingsFolder = "${ user-data-dir }/User";
+
+  updateSettingsCmd = updateSettings {
+    settings = {
+        "extensions.autoCheckUpdates" = false;
+        "extensions.autoUpdate" = false;
+        "update.mode" = "none";
+    } // settings;
+    inherit userSettingsFolder;
+    createIfDoesNotExists = createSettingsIfDoesNotExists;
+    symlinkFromUserSetting = (user-data-dir != "");
+  };
+
+  updateLaunchCmd = updateSettings {
+    settings = launch;
+    createIfDoesNotExists = createLaunchIfDoesNotExists;
+    vscodeSettingsFile = ".vscode/launch.json";
+  };
+
+  updateKeybindingsCmd = updateSettings {
+    settings = keybindings;
+    createIfDoesNotExists = createKeybindingsIfDoesNotExists;
+    vscodeSettingsFile = ".vscode/keybindings.json";
+    inherit userSettingsFolder;
+    symlinkFromUserSetting = (user-data-dir != "");
+  };
+
+  vscodeExts2nix = import ./vscodeExts2nix.nix { 
+    inherit lib writeShellScriptBin;
+    vscodeDefault = vscodeWithConfiguration;
+  }
+  {
+    extensionsToIgnore = nixExtensions;
+    extensions = mutableExtensions; 
+  };
+  code = writeShellScriptBin "code" ''
+    ${updateSettingsCmd}/bin/vscodeNixUpdate-settings
+    ${updateLaunchCmd}/bin/vscodeNixUpdate-launch
+    ${updateKeybindingsCmd}/bin/vscodeNixUpdate-keybindings
+    ${vscodeWithConfiguration}/bin/code --wait "$@" 
+    echo 'running vscodeExts2nix to update ${mutableExtensionsFilePath}...'
+    ${vscodeExts2nix}/bin/vscodeExts2nix > ${mutableExtensionsFilePath}
+  '';
+in
+buildEnv {
+  name = "vscodeEnv";
+  paths = [ code vscodeExts2nix updateSettingsCmd updateLaunchCmd updateKeybindingsCmd ];
+}
diff --git a/pkgs/misc/vscode-extensions/vscodeEnvTest.nix b/pkgs/misc/vscode-extensions/vscodeEnvTest.nix
new file mode 100644
index 00000000000..d7e586cab6e
--- /dev/null
+++ b/pkgs/misc/vscode-extensions/vscodeEnvTest.nix
@@ -0,0 +1,12 @@
+with import <nixpkgs>{};
+callPackage (import ./vscodeEnv.nix) { 
+  extensionsFromVscodeMarketplace = vscode-utils.extensionsFromVscodeMarketplace;
+  vscodeDefault = vscode;
+} {
+  mutableExtensionsFile = ./extensions.nix;
+  settings = {
+    a = "fdsdf";
+    t = "test";
+  };
+}
+
diff --git a/pkgs/misc/vscode-extensions/vscodeExts2nix.nix b/pkgs/misc/vscode-extensions/vscodeExts2nix.nix
new file mode 100644
index 00000000000..afd176b4c5e
--- /dev/null
+++ b/pkgs/misc/vscode-extensions/vscodeExts2nix.nix
@@ -0,0 +1,44 @@
+# based on the passed vscode will stdout a nix expression with the installed vscode extensions 
+{ lib
+, vscodeDefault
+, writeShellScriptBin
+}:
+
+##User input
+{ vscode             ? vscodeDefault 
+, extensionsToIgnore ? []
+# will use those extensions to get sha256 if still exists when executed.
+, extensions         ? [] 
+}:
+let 
+  mktplcExtRefToFetchArgs = import ./mktplcExtRefToFetchArgs.nix;
+in
+writeShellScriptBin "vscodeExts2nix" ''
+  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}\)' 
+    ''}
+  ) ; do
+    [[ $line =~ ([^.]*)\.([^@]*)@(.*) ]]
+    name=''${BASH_REMATCH[2]}
+    publisher=''${BASH_REMATCH[1]}
+    version=''${BASH_REMATCH[3]}
+
+    extensions="${lib.concatMapStringsSep "." (e : ''${e.publisher}${e.name}@${e.sha256}'') extensions}"
+    reCurrentExt=$publisher$name"@([^.]*)"
+    if [[ $extensions =~ $reCurrentExt ]]; then
+      sha256=''${BASH_REMATCH[1]}
+    else
+      sha256=$(
+        nix-prefetch-url "${(mktplcExtRefToFetchArgs {publisher = ''"$publisher"''; name = ''"$name"''; version = ''"$version"'';}).url}" 2> /dev/null
+      )
+    fi
+
+    echo "{ name = \"''${name}\"; publisher = \"''${publisher}\"; version = \"''${version}\"; sha256 = \"''${sha256}\";  }"
+  done
+
+
+  echo ']'
+''
diff --git a/pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix b/pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix
new file mode 100644
index 00000000000..f15d14c7441
--- /dev/null
+++ b/pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix
@@ -0,0 +1,54 @@
+# wrapper over vscode to control extensions per project (extensions folder will be created in execution path)
+{ lib                             
+, writeShellScriptBin             
+, extensionsFromVscodeMarketplace 
+, vscodeDefault
+}:
+## User input
+{ vscode ? vscodeDefault                          
+# extensions to be symlinked into the project's extensions folder
+, nixExtensions        ? []                   
+# extensions to be copied into the project's extensions folder
+, mutableExtensions    ? []        
+, vscodeExtsFolderName ? ".vscode-exts"        
+, user-data-dir ? ''"''${TMP}vscodeWithConfiguration/vscode-data-dir"''
+}:
+let 
+  nixExtsDrvs = extensionsFromVscodeMarketplace nixExtensions;
+  mutExtsDrvs = extensionsFromVscodeMarketplace mutableExtensions;
+  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}'';
+  }
+  );
+
+  #removed not defined extensions
+  rmExtensions =  lib.optionalString (nixExtensions++mutableExtensions != []) ''
+    find ${vscodeExtsFolderName} -mindepth 1 -maxdepth 1 ${
+        lib.concatMapStringsSep " " (e : ''! -iname ${e.publisher}.${e.name} '') nixExtensions
+        +
+        lib.concatMapStringsSep " " (e : ''! -iname ${e.publisher}.${e.name}-${e.version} '') mutableExtensions
+      } -exec rm -rf {} \;
+  '';
+  #copy mutable extension out of the nix store
+  cpExtensions = ''
+    ${lib.concatMapStringsSep "\n" (e : ''ln -sfn ${e}/share/vscode/extensions/* ${vscodeExtsFolderName}/'') nixExtsDrvs}
+    ${lib.concatMapStringsSep "\n" (ePath : ''
+      if [ ! -d ${ePath.target} ]; then
+        cp -a ${ePath.origin} ${ePath.target}
+        chmod -R u+rwx ${ePath.target}
+      fi
+      '') mutableExtsPaths} 
+  '';
+in
+  writeShellScriptBin "code" ''
+    if ! [[ "$@" =~ "--list-extension" ]]; then 
+      mkdir -p "${vscodeExtsFolderName}" 
+      ${rmExtensions}
+      ${cpExtensions}
+    fi
+    ${vscode}/bin/code --extensions-dir "${vscodeExtsFolderName}" ${ 
+      lib.optionalString (user-data-dir != "") ''--user-data-dir ${user-data-dir }''
+      } "$@"
+  ''
diff --git a/pkgs/os-specific/bsd/netbsd/compat-setup-hook.sh b/pkgs/os-specific/bsd/netbsd/compat-setup-hook.sh
index 81df09eba17..3c49337a937 100644
--- a/pkgs/os-specific/bsd/netbsd/compat-setup-hook.sh
+++ b/pkgs/os-specific/bsd/netbsd/compat-setup-hook.sh
@@ -1,6 +1,6 @@
 # See pkgs/build-support/setup-hooks/role.bash
 getHostRole
 
-export NIX_${role_pre}LDFLAGS+=" -lnbcompat"
-export NIX_${role_pre}CFLAGS_COMPILE+=" -DHAVE_NBTOOL_CONFIG_H"
-export NIX_${role_pre}CFLAGS_COMPILE+=" -include nbtool_config.h"
+export NIX_LDFLAGS${role_post}+=" -lnbcompat"
+export NIX_CFLAGS_COMPILE${role_post}+=" -DHAVE_NBTOOL_CONFIG_H"
+export NIX_CFLAGS_COMPILE${role_post}+=" -include nbtool_config.h"
diff --git a/pkgs/os-specific/bsd/netbsd/fts-setup-hook.sh b/pkgs/os-specific/bsd/netbsd/fts-setup-hook.sh
index 5cf8c753aec..b6cb5aaca05 100644
--- a/pkgs/os-specific/bsd/netbsd/fts-setup-hook.sh
+++ b/pkgs/os-specific/bsd/netbsd/fts-setup-hook.sh
@@ -1,4 +1,4 @@
 # See pkgs/build-support/setup-hooks/role.bash
 getHostRole
 
-export NIX_${role_pre}LDFLAGS+=" -lfts"
+export NIX_LDFLAGS${role_post}+=" -lfts"
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/smimesign/default.nix b/pkgs/os-specific/darwin/smimesign/default.nix
index fff3a3b43fd..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";
   };
 
-  modSha256 = "1k3gnjzblfk14y19zhlvwysx045nbw0xr5nngh7zj1wcqxhhm206";
+  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 7103c7825cc..448e6865e18 100644
--- a/pkgs/os-specific/darwin/yabai/default.nix
+++ b/pkgs/os-specific/darwin/yabai/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchFromGitHub, Carbon, Cocoa, ScriptingBridge }:
+{ stdenv, fetchFromGitHub, Carbon, Cocoa, ScriptingBridge, xxd }:
 
 stdenv.mkDerivation rec {
   pname = "yabai";
-  version = "3.0.0";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner = "koekeishiya";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ajsh85p2vx18h3s4nicasyhdbh82zg97b1ryhi6l5lkbjpdl4ah";
+    sha256 = "11rsi6z2z7ynfqs1xq3bvf187k5xnwm0d45a8ai9hrqdsf3f1j19";
   };
 
-  buildInputs = [ Carbon Cocoa ScriptingBridge ];
+  buildInputs = [ Carbon Cocoa ScriptingBridge xxd ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://github.com/koekeishiya/yabai";
     platforms = platforms.darwin;
-    maintainers = [ maintainers.cmacrae ];
+    maintainers = with maintainers; [ cmacrae shardy ];
     license = licenses.mit;
   };
 }
diff --git a/pkgs/os-specific/linux/alsa-lib/default.nix b/pkgs/os-specific/linux/alsa-lib/default.nix
index 335ae204833..3c5427340ba 100644
--- a/pkgs/os-specific/linux/alsa-lib/default.nix
+++ b/pkgs/os-specific/linux/alsa-lib/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, alsa-ucm-conf, alsa-topology-conf }:
 
 stdenv.mkDerivation rec {
-  name = "alsa-lib-1.2.2";
+  name = "alsa-lib-1.2.3";
 
   src = fetchurl {
     url = "mirror://alsa/lib/${name}.tar.bz2";
-    sha256 = "1v5kb8jyvrpkvvq7dq8hfbmcj68lml97i4s0prxpfx2mh3c57s6q";
+    sha256 = "13k7dx1g749z74rz71hs5j8z0pqdjgx7l69pn0vsy7jizhi0kw02";
   };
 
   patches = [
diff --git a/pkgs/os-specific/linux/alsa-topology-conf/default.nix b/pkgs/os-specific/linux/alsa-topology-conf/default.nix
index f73bbbdba35..54340d017ad 100644
--- a/pkgs/os-specific/linux/alsa-topology-conf/default.nix
+++ b/pkgs/os-specific/linux/alsa-topology-conf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "alsa-topology-conf-${version}";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchurl {
     url = "mirror://alsa/lib/${name}.tar.bz2";
-    sha256 = "09cls485ckdjsp4azhv3nw7chyg3r7zrqgald6yp70f7cysxcwml";
+    sha256 = "1zwxc9zhfcmyffjjbibzpdvf4kx7wv9g2zl6xz7y0d6srfr9jgw3";
   };
 
   dontBuild = true;
diff --git a/pkgs/os-specific/linux/alsa-ucm-conf/default.nix b/pkgs/os-specific/linux/alsa-ucm-conf/default.nix
index 685ba3e2c3e..2a9f28c855a 100644
--- a/pkgs/os-specific/linux/alsa-ucm-conf/default.nix
+++ b/pkgs/os-specific/linux/alsa-ucm-conf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "alsa-ucm-conf-${version}";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchurl {
     url = "mirror://alsa/lib/${name}.tar.bz2";
-    sha256 = "0364fgzdm2qrsqvgqri25gzscbma7yqlv31wz8b1z9c5phlxkgvy";
+    sha256 = "000db5yla7dljidjbbwbiaxvc1a7wh1zpw694gipaymj9fh4vhhv";
   };
 
   dontBuild = true;
diff --git a/pkgs/os-specific/linux/alsa-utils/default.nix b/pkgs/os-specific/linux/alsa-utils/default.nix
index f05bb6a0d59..470536db4b7 100644
--- a/pkgs/os-specific/linux/alsa-utils/default.nix
+++ b/pkgs/os-specific/linux/alsa-utils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "alsa-utils";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchurl {
     url = "mirror://alsa/utils/${pname}-${version}.tar.bz2";
-    sha256 = "1wz460by17rmxrcydn583rd4lhj6wlvqs6x1j5pdzxn5g3app024";
+    sha256 = "1ai1z4kf91b1m3qrpwqkc1af5vm2fkdkknqv95xdwf19q94aw6gz";
   };
 
   patchPhase = ''
diff --git a/pkgs/os-specific/linux/apparmor/default.nix b/pkgs/os-specific/linux/apparmor/default.nix
index d661b2172b3..807ab4fa44b 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"
@@ -39,12 +50,12 @@ let
 
   patches = stdenv.lib.optionals stdenv.hostPlatform.isMusl [
     (fetchpatch {
-      url = "https://git.alpinelinux.org/cgit/aports/plain/testing/apparmor/0003-Added-missing-typedef-definitions-on-parser.patch?id=74b8427cc21f04e32030d047ae92caa618105b53";
+      url = "https://git.alpinelinux.org/aports/plain/testing/apparmor/0003-Added-missing-typedef-definitions-on-parser.patch?id=74b8427cc21f04e32030d047ae92caa618105b53";
       name = "0003-Added-missing-typedef-definitions-on-parser.patch";
       sha256 = "0yyaqz8jlmn1bm37arggprqz0njb4lhjni2d9c8qfqj0kll0bam0";
     })
     (fetchpatch {
-      url = "https://git.alpinelinux.org/cgit/aports/plain/testing/apparmor/0007-Do-not-build-install-vim-file-with-utils-package.patch?id=74b8427cc21f04e32030d047ae92caa618105b53";
+      url = "https://git.alpinelinux.org/aports/plain/testing/apparmor/0007-Do-not-build-install-vim-file-with-utils-package.patch?id=74b8427cc21f04e32030d047ae92caa618105b53";
       name = "0007-Do-not-build-install-vim-file-with-utils-package.patch";
       sha256 = "1m4dx901biqgnr4w4wz8a2z9r9dxyw7wv6m6mqglqwf2lxinqmp4";
     })
diff --git a/pkgs/os-specific/linux/batman-adv/alfred.nix b/pkgs/os-specific/linux/batman-adv/alfred.nix
index c1fb3ef5ee1..04217b8989b 100644
--- a/pkgs/os-specific/linux/batman-adv/alfred.nix
+++ b/pkgs/os-specific/linux/batman-adv/alfred.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gpsd libcap libnl ];
 
   preBuild = ''
-    makeFlags="PREFIX=$out PKG_CONFIG=${pkgconfig}/bin/pkg-config"
+    makeFlags="PREFIX=$out PKG_CONFIG=${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config"
   '';
 
   meta = {
diff --git a/pkgs/os-specific/linux/batman-adv/batctl.nix b/pkgs/os-specific/linux/batman-adv/batctl.nix
index 5767c4aa72c..3b1cf183e08 100644
--- a/pkgs/os-specific/linux/batman-adv/batctl.nix
+++ b/pkgs/os-specific/linux/batman-adv/batctl.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libnl ];
 
   preBuild = ''
-    makeFlags="PREFIX=$out PKG_CONFIG=${pkgconfig}/bin/pkg-config"
+    makeFlags="PREFIX=$out PKG_CONFIG=${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config"
   '';
 
   meta = {
diff --git a/pkgs/os-specific/linux/bcc/default.nix b/pkgs/os-specific/linux/bcc/default.nix
index 7f95ef47ee9..98de3ed1b11 100644
--- a/pkgs/os-specific/linux/bcc/default.nix
+++ b/pkgs/os-specific/linux/bcc/default.nix
@@ -5,11 +5,11 @@
 
 python.pkgs.buildPythonApplication rec {
   pname = "bcc";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchurl {
     url = "https://github.com/iovisor/bcc/releases/download/v${version}/bcc-src-with-submodule.tar.gz";
-    sha256 = "1hw02bib06fjyw61as5pmhf0qxy0wv0nw8fff2i8a9d1zcd8xf3p";
+    sha256 = "1k00xbhdzdvqp4hfxpgg34bbhnx597jjhpg1x6dz2w80r7xzsj28";
   };
   format = "other";
 
diff --git a/pkgs/os-specific/linux/btfs/default.nix b/pkgs/os-specific/linux/btfs/default.nix
index 4e94151a812..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.20";
+  version = "2.22";
 
   src = fetchFromGitHub {
     owner  = "johang";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "1xil18nmivakdv6rz4sd3203gzfisdvj79spni59kv7dby64rxdz";
+    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/cgmanager/default.nix b/pkgs/os-specific/linux/cgmanager/default.nix
deleted file mode 100644
index d890ef44f74..00000000000
--- a/pkgs/os-specific/linux/cgmanager/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, libnih, dbus, pam, popt }:
-
-stdenv.mkDerivation rec {
-  pname = "cgmanager";
-  version = "0.42";
-
-  src = fetchurl {
-    url = "https://linuxcontainers.org/downloads/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "15np08h9jrvc1y1iafr8v654mzgsv5hshzc0n4p3pbf0rkra3h7c";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libnih dbus pam popt ];
-
-  configureFlags = [
-    "--with-init-script=systemd"
-    "--sysconfdir=/etc"
-    "--localstatedir=/var"
-  ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://linuxcontainers.org/cgmanager/introduction/";
-    description = "A central privileged daemon that manages all your cgroups";
-    license = licenses.lgpl21;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/os-specific/linux/checksec/default.nix b/pkgs/os-specific/linux/checksec/default.nix
index 01e70fbb040..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.1.0";
+  version = "2.2.2";
 
   src = fetchFromGitHub {
     owner = "slimm609";
     repo = "checksec.sh";
     rev = version;
-    sha256 = "00s4qg4h9s9vi46jyw7lz36lb5i8h3s9cmicnngp17764xgkr916";
+    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/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/device-tree/raspberrypi.nix b/pkgs/os-specific/linux/device-tree/raspberrypi.nix
index b5886f6bd11..5a0d5710392 100644
--- a/pkgs/os-specific/linux/device-tree/raspberrypi.nix
+++ b/pkgs/os-specific/linux/device-tree/raspberrypi.nix
@@ -31,6 +31,7 @@ stdenvNoCC.mkDerivation {
     overlays = "${raspberrypifw}/share/raspberrypi/boot/overlays";
   };
   meta = with stdenvNoCC.lib; {
-    platforms = [ "armv6l-linux" "armv7l-linux" "aarch64-linux" ];
+    inherit (raspberrypifw.meta) platforms homepage license;
+    description = "DTBs for the Raspberry Pi";
   };
 }
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/displaylink/udev-installer.patch b/pkgs/os-specific/linux/displaylink/udev-installer.patch
index bd7d9d145c9..880c073fbcf 100644
--- a/pkgs/os-specific/linux/displaylink/udev-installer.patch
+++ b/pkgs/os-specific/linux/displaylink/udev-installer.patch
@@ -5,13 +5,13 @@
  start_service()
  {
 -  systemctl start displaylink-driver
-+  @systemd@/bin/systemctl start --no-block dlm
++  /run/current-system/systemd/bin/systemctl start --no-block dlm
  }
  
  stop_service()
  {
 -  systemctl stop displaylink-driver
-+  @systemd@/bin/systemctl stop dlm
++  /run/current-system/systemd/bin/systemctl stop dlm
  }
  
  EOF
diff --git a/pkgs/os-specific/linux/dpdk/default.nix b/pkgs/os-specific/linux/dpdk/default.nix
index 8ad703bdd4b..aacbc3cdfbe 100644
--- a/pkgs/os-specific/linux/dpdk/default.nix
+++ b/pkgs/os-specific/linux/dpdk/default.nix
@@ -11,11 +11,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "dpdk-${version}" + lib.optionalString mod "-${kernel.version}";
-  version = "19.11";
+  version = "20.05";
 
   src = fetchurl {
     url = "https://fast.dpdk.org/rel/dpdk-${version}.tar.xz";
-    sha256 = "1aqjn6bm9miv3v2rbqi1rh1c19wa8nip9fvnqaqpnrs3i2b36wa6";
+    sha256 = "0h0xv2zwb91b9n29afg5ihn06a8q28in64hag2f112kc19f79jj8";
   };
 
   nativeBuildInputs = [
@@ -38,7 +38,7 @@ in stdenv.mkDerivation rec {
   ] ++ lib.optionals mod kernel.moduleBuildDependencies;
 
   postPatch = ''
-    patchShebangs config/arm
+    patchShebangs config/arm buildtools
   '';
 
   mesonFlags = [
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 2e0f5ef7833..575da8aca73 100644
--- a/pkgs/os-specific/linux/earlyoom/default.nix
+++ b/pkgs/os-specific/linux/earlyoom/default.nix
@@ -2,17 +2,19 @@
 
 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 ];
 
+  patches = [ ./fix-dbus-path.patch ];
+
   makeFlags = [ "VERSION=${version}" ];
 
   installPhase = ''
diff --git a/pkgs/os-specific/linux/earlyoom/fix-dbus-path.patch b/pkgs/os-specific/linux/earlyoom/fix-dbus-path.patch
new file mode 100644
index 00000000000..e1c10cf82f9
--- /dev/null
+++ b/pkgs/os-specific/linux/earlyoom/fix-dbus-path.patch
@@ -0,0 +1,11 @@
+--- a/kill.c
++++ b/kill.c
+@@ -55,7 +55,7 @@ static void notify(const char* summary, const char* body)
+     }
+     // Complete command line looks like this:
+     // dbus-send --system / net.nuetzlich.SystemNotifications.Notify 'string:summary text' 'string:and body text'
+-    execl("/usr/bin/dbus-send", "dbus-send", "--system", "/", "net.nuetzlich.SystemNotifications.Notify",
++    execlp("dbus-send", "dbus-send", "--system", "/", "net.nuetzlich.SystemNotifications.Notify",
+         summary2, body2, NULL);
+     warn("notify: exec failed: %s\n", strerror(errno));
+     exit(1);
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/ena/default.nix b/pkgs/os-specific/linux/ena/default.nix
index de3bc092faa..a3935d0069e 100644
--- a/pkgs/os-specific/linux/ena/default.nix
+++ b/pkgs/os-specific/linux/ena/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, kernel }:
 
 stdenv.mkDerivation rec {
-  version = "2.1.2";
+  version = "2.2.7";
   name = "ena-${version}-${kernel.version}";
 
   src = fetchFromGitHub {
     owner = "amzn";
     repo = "amzn-drivers";
     rev = "ena_linux_${version}";
-    sha256 = "1dp1q99m2x8hq99his6n62yw0v1lbzrlyv67w1ndc774m2k77r5w";
+    sha256 = "1ap100xh5wrdvy5h2ydcy6rqcklb4fz6xxs33ad3j9yx3h1ixj2d";
   };
 
   hardeningDisable = [ "pic" ];
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/exfat/default.nix b/pkgs/os-specific/linux/exfat/default.nix
index e66ac4d65ab..59f9c709e5f 100644
--- a/pkgs/os-specific/linux/exfat/default.nix
+++ b/pkgs/os-specific/linux/exfat/default.nix
@@ -21,6 +21,9 @@ stdenv.mkDerivation rec {
 
   makeFlags = [
     "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+    "ARCH=${stdenv.hostPlatform.platform.kernelArch}"
+  ] ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "CROSS_COMPILE=${stdenv.cc.targetPrefix}"
   ];
 
   installPhase = ''
diff --git a/pkgs/os-specific/linux/facetimehd/default.nix b/pkgs/os-specific/linux/facetimehd/default.nix
index 223f766aa22..941e71c3bfc 100644
--- a/pkgs/os-specific/linux/facetimehd/default.nix
+++ b/pkgs/os-specific/linux/facetimehd/default.nix
@@ -16,9 +16,9 @@ let
   #       still works.
   srcParams = if (stdenv.lib.versionAtLeast kernel.version "4.8") then
     { # Use mainline branch
-      version = "unstable-2019-12-10";
-      rev = "ea832ac486afb6dac9ef59aa37e90f332ab7f05a";
-      sha256 = "1dg2i558hjnjnyk53xyg0ayykqaial9bm420v22s9a3khzzjnwq3";
+      version = "unstable-2020-04-16";
+      rev = "82626d4892eeb9eb704538bf0dc49a00725ff451";
+      sha256 = "118z6vjvhhcwvs4n3sgwwdagys9w718b8nkh6l9ic93732vv7cqx";
     }
   else
     { # Use master branch (broken on 4.8)
@@ -47,11 +47,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
 
-  preBuild = lib.optionalString (stdenv.lib.versionAtLeast kernel.version "5.6")
-  ''
-    sed -i 's/ioremap_nocache/ioremap_cache/g' fthd_drv.c
-  '';
-
   makeFlags = [
     "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
   ];
diff --git a/pkgs/os-specific/linux/ffado/default.nix b/pkgs/os-specific/linux/ffado/default.nix
index 5dc5086a8c6..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
 }:
@@ -24,11 +24,11 @@ let
 in
 mkDerivation rec {
   pname = "ffado";
-  version = "2.4.2";
+  version = "2.4.3";
 
   src = fetchurl {
     url = "http://www.ffado.org/files/libffado-${version}.tgz";
-    sha256 = "09dxy6fkfnvzk45lpr74hkqymii8a45jzlq6054f3jz65m8qvj3d";
+    sha256 = "08bygzv1k6ai0572gv66h7gfir5zxd9klfy74z2pxqp6s5hms58r";
   };
 
   prePatch = ''
@@ -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/firmware-linux-nonfree/default.nix b/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
index 77be6317b6c..e480b449007 100644
--- a/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
+++ b/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "firmware-linux-nonfree";
-  version = "2020-01-22";
+  version = "2020-05-19";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
     rev = lib.replaceStrings ["-"] [""] version;
-    sha256 = "0256p99bqwf1d1s6gqnzpjcdmg6skcp1jzz64sd1p29xxrf0pzfa";
+    sha256 = "13yrpgfqxp5l457p3s1c61is410nv0kv6picx9r0m8h1b0v6aym3";
   };
 
   installFlags = [ "DESTDIR=$(out)" ];
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
-  outputHash = "1d2jvy395jpfq0gli7q5p571lcb9p5y0y8qr8p8rlcmczh4gry64";
+  outputHash = "0pjl70nwarnknxah8vikb051c75mkg25a5m4h3344cw86x8hcx10";
 
   meta = with stdenv.lib; {
     description = "Binary firmware collection packaged by kernel.org";
diff --git a/pkgs/os-specific/linux/firmware/fwupd/default.nix b/pkgs/os-specific/linux/firmware/fwupd/default.nix
index 2a0e52c658a..0783fb79296 100644
--- a/pkgs/os-specific/linux/firmware/fwupd/default.nix
+++ b/pkgs/os-specific/linux/firmware/fwupd/default.nix
@@ -51,6 +51,7 @@
 , flashrom
 , tpm2-tools
 , nixosTests
+, runCommand
 }:
 
 let
@@ -83,202 +84,232 @@ let
   # Experimental
   haveFlashrom = false;
 
-in
+  runPythonCommand = name: buildCommandPython: runCommand name {
+    nativeBuildInputs = [ python3 ];
+      inherit buildCommandPython;
+  } ''
+    exec python3 -c "$buildCommandPython"
+  '';
 
-stdenv.mkDerivation rec {
-  pname = "fwupd";
-  version = "1.4.1";
+  self = stdenv.mkDerivation rec {
+    pname = "fwupd";
+    version = "1.4.5";
 
-  src = fetchurl {
-    url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz";
-    sha256 = "ga8MpbY9tTwr0jsmjEAMyFxDC+yD4LBTx5gXRXig31M=";
-  };
+    src = fetchurl {
+      url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz";
+      sha256 = "0hpqxwqbbqn440c2swpnc06z8dskisrli4ynsxrzzqyp0dan46xw";
+    };
 
-  # libfwupd goes to lib
-  # daemon, plug-ins and libfwupdplugin go to out
-  # CLI programs go to out
-  outputs = [ "out" "lib" "dev" "devdoc" "man" "installedTests" ];
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    gtk-doc
-    pkgconfig
-    gobject-introspection
-    intltool
-    shared-mime-info
-    valgrind
-    gcab
-    docbook_xml_dtd_43
-    docbook_xsl
-    help2man
-    libxslt
-    python
-    wrapGAppsHook
-    vala
-  ];
-
-  buildInputs = [
-    polkit
-    libxmlb
-    gusb
-    sqlite
-    libarchive
-    libsoup
-    elfutils
-    gnu-efi
-    libyaml
-    libgudev
-    colord
-    libjcat
-    libuuid
-    glib-networking
-    json-glib
-    umockdev
-    bash-completion
-    cairo
-    freetype
-    fontconfig
-    pango
-    tpm2-tss
-    efivar
-  ] ++ stdenv.lib.optionals haveDell [
-    libsmbios
-  ];
-
-  patches = [
-    ./fix-paths.patch
-    ./add-option-for-installation-sysconfdir.patch
-
-    # Install plug-ins and libfwupdplugin to out,
-    # they are not really part of the library.
-    ./install-fwupdplugin-to-out.patch
-
-    # Installed tests are installed to different output
-    # we also cannot have fwupd-tests.conf in $out/etc since it would form a cycle.
-    (substituteAll {
-      src = ./installed-tests-path.patch;
-      # Needs a different set of modules than po/make-images.
-      inherit installedTestsPython;
-    })
-  ];
-
-  postPatch = ''
-    patchShebangs \
-      contrib/get-version.py \
-      contrib/generate-version-script.py \
-      meson_post_install.sh \
-      po/make-images \
-      po/make-images.sh \
-      po/test-deps
-  '';
+    # libfwupd goes to lib
+    # daemon, plug-ins and libfwupdplugin go to out
+    # CLI programs go to out
+    outputs = [ "out" "lib" "dev" "devdoc" "man" "installedTests" ];
 
-  # /etc/os-release not available in sandbox
-  # doCheck = true;
-
-  preFixup = let
-    binPath = [
-      efibootmgr
-      bubblewrap
-      tpm2-tools
-    ] ++ stdenv.lib.optional haveFlashrom flashrom;
-  in ''
-    gappsWrapperArgs+=(
-      --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
-      # See programs reached with fu_common_find_program_in_path in source
-      --prefix PATH : "${stdenv.lib.makeBinPath binPath}"
-    )
-  '';
+    nativeBuildInputs = [
+      meson
+      ninja
+      gtk-doc
+      pkgconfig
+      gobject-introspection
+      intltool
+      shared-mime-info
+      valgrind
+      gcab
+      docbook_xml_dtd_43
+      docbook_xsl
+      help2man
+      libxslt
+      python
+      wrapGAppsHook
+      vala
+    ];
 
-  mesonFlags = [
-    "-Dgtkdoc=true"
-    "-Dplugin_dummy=true"
-    "-Dudevdir=lib/udev"
-    "-Dsystemd_root_prefix=${placeholder "out"}"
-    "-Dinstalled_test_prefix=${placeholder "installedTests"}"
-    "-Defi-libdir=${gnu-efi}/lib"
-    "-Defi-ldsdir=${gnu-efi}/lib"
-    "-Defi-includedir=${gnu-efi}/include/efi"
-    "--localstatedir=/var"
-    "--sysconfdir=/etc"
-    "-Dsysconfdir_install=${placeholder "out"}/etc"
-
-    # We do not want to place the daemon into lib (cyclic reference)
-    "--libexecdir=${placeholder "out"}/libexec"
-    # Our builder only adds $lib/lib to rpath but some things link
-    # against libfwupdplugin which is in $out/lib.
-    "-Dc_link_args=-Wl,-rpath,${placeholder "out"}/lib"
-  ] ++ stdenv.lib.optionals (!haveDell) [
-    "-Dplugin_dell=false"
-    "-Dplugin_synaptics=false"
-  ] ++ stdenv.lib.optionals (!haveRedfish) [
-    "-Dplugin_redfish=false"
-  ] ++ stdenv.lib.optionals haveFlashrom [
-    "-Dplugin_flashrom=true"
-  ];
-
-  FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file
-
-  # error: “PolicyKit files are missingâ€
-  # https://github.com/NixOS/nixpkgs/pull/67625#issuecomment-525788428
-  PKG_CONFIG_POLKIT_GOBJECT_1_ACTIONDIR = "/run/current-system/sw/share/polkit-1/actions";
-
-  # TODO: wrapGAppsHook wraps efi capsule even though it is not elf
-  dontWrapGApps = true;
-
-  preCheck = ''
-    addToSearchPath XDG_DATA_DIRS "${shared-mime-info}/share"
-  '';
+    buildInputs = [
+      polkit
+      libxmlb
+      gusb
+      sqlite
+      libarchive
+      libsoup
+      elfutils
+      gnu-efi
+      libyaml
+      libgudev
+      colord
+      libjcat
+      libuuid
+      glib-networking
+      json-glib
+      umockdev
+      bash-completion
+      cairo
+      freetype
+      fontconfig
+      pango
+      tpm2-tss
+      efivar
+    ] ++ stdenv.lib.optionals haveDell [
+      libsmbios
+    ];
 
-  # so we need to wrap the executables manually
-  postFixup = ''
-    find -L "$out/bin" "$out/libexec" -type f -executable -print0 \
-      | while IFS= read -r -d ''' file; do
-      if [[ "$file" != *.efi ]]; then
-        echo "Wrapping program $file"
-        wrapGApp "$file"
-      fi
-    done
-  '';
+    patches = [
+      ./fix-paths.patch
+      ./add-option-for-installation-sysconfdir.patch
 
-  # /etc/fwupd/uefi.conf is created by the services.hardware.fwupd NixOS module
-  passthru = {
-    filesInstalledToEtc = [
-      "fwupd/ata.conf"
-      # "fwupd/daemon.conf" # already created by the module
-      "fwupd/redfish.conf"
-      "fwupd/remotes.d/dell-esrt.conf"
-      "fwupd/remotes.d/lvfs-testing.conf"
-      "fwupd/remotes.d/lvfs.conf"
-      "fwupd/remotes.d/vendor.conf"
-      "fwupd/remotes.d/vendor-directory.conf"
-      "fwupd/thunderbolt.conf"
-      "fwupd/upower.conf"
-      # "fwupd/uefi.conf" # already created by the module
-      "pki/fwupd/GPG-KEY-Hughski-Limited"
-      "pki/fwupd/GPG-KEY-Linux-Foundation-Firmware"
-      "pki/fwupd/GPG-KEY-Linux-Vendor-Firmware-Service"
-      "pki/fwupd/LVFS-CA.pem"
-      "pki/fwupd-metadata/GPG-KEY-Linux-Foundation-Metadata"
-      "pki/fwupd-metadata/GPG-KEY-Linux-Vendor-Firmware-Service"
-      "pki/fwupd-metadata/LVFS-CA.pem"
+      # Install plug-ins and libfwupdplugin to out,
+      # they are not really part of the library.
+      ./install-fwupdplugin-to-out.patch
+
+      # Installed tests are installed to different output
+      # we also cannot have fwupd-tests.conf in $out/etc since it would form a cycle.
+      (substituteAll {
+        src = ./installed-tests-path.patch;
+        # Needs a different set of modules than po/make-images.
+        inherit installedTestsPython;
+      })
     ];
 
-    # BlacklistPlugins key in fwupd/daemon.conf
-    defaultBlacklistedPlugins = [
-      "test"
-      "invalid"
+    postPatch = ''
+      patchShebangs \
+        contrib/get-version.py \
+        contrib/generate-version-script.py \
+        meson_post_install.sh \
+        po/make-images \
+        po/make-images.sh \
+        po/test-deps
+    '';
+
+    # /etc/os-release not available in sandbox
+    # doCheck = true;
+
+    preFixup = let
+      binPath = [
+        efibootmgr
+        bubblewrap
+        tpm2-tools
+      ] ++ stdenv.lib.optional haveFlashrom flashrom;
+    in ''
+      gappsWrapperArgs+=(
+        --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
+        # See programs reached with fu_common_find_program_in_path in source
+        --prefix PATH : "${stdenv.lib.makeBinPath binPath}"
+      )
+    '';
+
+    mesonFlags = [
+      "-Dgtkdoc=true"
+      "-Dplugin_dummy=true"
+      "-Dudevdir=lib/udev"
+      "-Dsystemd_root_prefix=${placeholder "out"}"
+      "-Dinstalled_test_prefix=${placeholder "installedTests"}"
+      "-Defi-libdir=${gnu-efi}/lib"
+      "-Defi-ldsdir=${gnu-efi}/lib"
+      "-Defi-includedir=${gnu-efi}/include/efi"
+      "--localstatedir=/var"
+      "--sysconfdir=/etc"
+      "-Dsysconfdir_install=${placeholder "out"}/etc"
+
+      # We do not want to place the daemon into lib (cyclic reference)
+      "--libexecdir=${placeholder "out"}/libexec"
+      # Our builder only adds $lib/lib to rpath but some things link
+      # against libfwupdplugin which is in $out/lib.
+      "-Dc_link_args=-Wl,-rpath,${placeholder "out"}/lib"
+    ] ++ stdenv.lib.optionals (!haveDell) [
+      "-Dplugin_dell=false"
+      "-Dplugin_synaptics=false"
+    ] ++ stdenv.lib.optionals (!haveRedfish) [
+      "-Dplugin_redfish=false"
+    ] ++ stdenv.lib.optionals haveFlashrom [
+      "-Dplugin_flashrom=true"
     ];
 
-    tests = {
-      installedTests = nixosTests.installed-tests.fwupd;
+    FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file
+
+    # error: “PolicyKit files are missingâ€
+    # https://github.com/NixOS/nixpkgs/pull/67625#issuecomment-525788428
+    PKG_CONFIG_POLKIT_GOBJECT_1_ACTIONDIR = "/run/current-system/sw/share/polkit-1/actions";
+
+    # TODO: wrapGAppsHook wraps efi capsule even though it is not elf
+    dontWrapGApps = true;
+
+    preCheck = ''
+      addToSearchPath XDG_DATA_DIRS "${shared-mime-info}/share"
+    '';
+
+    # so we need to wrap the executables manually
+    postFixup = ''
+      find -L "$out/bin" "$out/libexec" -type f -executable -print0 \
+        | while IFS= read -r -d ''' file; do
+        if [[ "$file" != *.efi ]]; then
+          echo "Wrapping program $file"
+          wrapGApp "$file"
+        fi
+      done
+    '';
+
+    passthru = {
+      filesInstalledToEtc = [
+        "fwupd/ata.conf"
+        "fwupd/daemon.conf"
+        "fwupd/redfish.conf"
+        "fwupd/remotes.d/lvfs-testing.conf"
+        "fwupd/remotes.d/lvfs.conf"
+        "fwupd/remotes.d/vendor.conf"
+        "fwupd/remotes.d/vendor-directory.conf"
+        "fwupd/thunderbolt.conf"
+        "fwupd/upower.conf"
+        "fwupd/uefi.conf"
+        "pki/fwupd/GPG-KEY-Hughski-Limited"
+        "pki/fwupd/GPG-KEY-Linux-Foundation-Firmware"
+        "pki/fwupd/GPG-KEY-Linux-Vendor-Firmware-Service"
+        "pki/fwupd/LVFS-CA.pem"
+        "pki/fwupd-metadata/GPG-KEY-Linux-Foundation-Metadata"
+        "pki/fwupd-metadata/GPG-KEY-Linux-Vendor-Firmware-Service"
+        "pki/fwupd-metadata/LVFS-CA.pem"
+      ] ++ stdenv.lib.optionals haveDell [
+        "fwupd/remotes.d/dell-esrt.conf"
+      ];
+
+      # BlacklistPlugins key in fwupd/daemon.conf
+      defaultBlacklistedPlugins = [
+        "test"
+        "invalid"
+      ];
+
+      tests = let
+        listToPy = list: "[${stdenv.lib.concatMapStringsSep ", " (f: "'${f}'") list}]";
+      in {
+        installedTests = nixosTests.installed-tests.fwupd;
+
+        passthruMatches = runPythonCommand "fwupd-test-passthru-matches" ''
+          import itertools
+          import configparser
+          import os
+          import pathlib
+
+          etc = '${self}/etc'
+          package_etc = set(itertools.chain.from_iterable([[os.path.relpath(os.path.join(prefix, file), etc) for file in files] for (prefix, dirs, files) in os.walk(etc)]))
+          passthru_etc = set(${listToPy passthru.filesInstalledToEtc})
+          assert len(package_etc - passthru_etc) == 0, f'fwupd package contains the following paths in /etc that are not listed in passthru.filesInstalledToEtc: {package_etc - passthru_etc}'
+          assert len(passthru_etc - package_etc) == 0, f'fwupd package lists the following paths in passthru.filesInstalledToEtc that are not contained in /etc: {passthru_etc - package_etc}'
+
+          config = configparser.RawConfigParser()
+          config.read('${self}/etc/fwupd/daemon.conf')
+          package_blacklisted_plugins = config.get('fwupd', 'BlacklistPlugins').rstrip(';').split(';')
+          passthru_blacklisted_plugins = ${listToPy passthru.defaultBlacklistedPlugins}
+          assert package_blacklisted_plugins == passthru_blacklisted_plugins, f'Default blacklisted plug-ins in the package {package_blacklisted_plugins} do not match those listed in passthru.defaultBlacklistedPlugins {passthru_blacklisted_plugins}'
+
+          pathlib.Path(os.getenv('out')).touch()
+        '';
+      };
     };
-  };
 
-  meta = with stdenv.lib; {
-    homepage = "https://fwupd.org/";
-    maintainers = with maintainers; [ jtojnar ];
-    license = [ licenses.gpl2 ];
-    platforms = platforms.linux;
+    meta = with stdenv.lib; {
+      homepage = "https://fwupd.org/";
+      maintainers = with maintainers; [ jtojnar ];
+      license = [ licenses.gpl2 ];
+      platforms = platforms.linux;
+    };
   };
-}
+
+in self
diff --git a/pkgs/os-specific/linux/firmware/fwupdate/default.nix b/pkgs/os-specific/linux/firmware/fwupdate/default.nix
deleted file mode 100644
index bcafa7f3376..00000000000
--- a/pkgs/os-specific/linux/firmware/fwupdate/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ efivar, fetchurl, gettext, gnu-efi, libsmbios, pkgconfig, popt, stdenv }:
-
-let
-  version = "12";
-
-  arch =
-    if stdenv.hostPlatform.isx86_32
-    then "ia32"
-    else stdenv.hostPlatform.parsed.cpu.name;
-
-in stdenv.mkDerivation {
-  pname = "fwupdate";
-  inherit version;
-  src = fetchurl {
-    url = "https://github.com/rhinstaller/fwupdate/releases/download/${version}/fwupdate-${version}.tar.bz2";
-    sha256 = "00w7jsg7wrlq4cpfz26m9rbv2jwyf0sansf343vfq02fy5lxars1";
-  };
-
-  patches = [
-    ./do-not-create-sharedstatedir.patch
-  ];
-
-  NIX_CFLAGS_COMPILE = builtins.toString [
-    "-I${gnu-efi}/include/efi"
-    "-I${gnu-efi}/include/efi/${arch}"
-    "-Wno-error=address-of-packed-member"
-  ];
-
-  # TODO: Just apply the disable to the efi subdir
-  hardeningDisable = [ "stackprotector" ];
-
-  makeFlags = [
-    "EFIDIR=nixos"
-    "prefix=$(out)"
-    "LIBDIR=$(out)/lib"
-    "GNUEFIDIR=${gnu-efi}/lib"
-    "ESPMOUNTPOINT=$(out)/boot"
-  ];
-
-  nativeBuildInputs = [
-    pkgconfig
-    gettext
-  ];
-
-  buildInputs = [
-    gnu-efi
-    libsmbios
-    popt
-  ];
-
-  propagatedBuildInputs = [
-    efivar
-  ];
-
-  postInstall = ''
-    rm -rf $out/src
-    rm -rf $out/lib/debug
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Tools for using the ESRT and UpdateCapsule() to apply firmware updates";
-    maintainers = with maintainers; [ ];
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/os-specific/linux/firmware/fwupdate/do-not-create-sharedstatedir.patch b/pkgs/os-specific/linux/firmware/fwupdate/do-not-create-sharedstatedir.patch
deleted file mode 100644
index b8588ef2b11..00000000000
--- a/pkgs/os-specific/linux/firmware/fwupdate/do-not-create-sharedstatedir.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/linux/Makefile
-+++ b/linux/Makefile
-@@ -131,7 +131,6 @@
- 		ln -fs $(x) $(patsubst %.so.1.$(VERSION),%.so.1,$(DESTDIR)$(libdir)/$(x)) ;\
- 		ln -fs $(x) $(patsubst %.so.1.$(VERSION),%.so,$(DESTDIR)$(libdir)/$(x)) ;\
- 		)
--	$(INSTALL) -d -m 755 $(DESTDIR)$(sharedstatedir)/fwupdate/
- 	$(INSTALL) -d -m 755 $(DESTDIR)$(libexecdir)/fwupdate/
- 	$(INSTALL) -m 755 cleanup $(DESTDIR)$(libexecdir)/fwupdate/cleanup
- 	$(INSTALL) -d -m 755 $(DESTDIR)$(libdatadir)/systemd/system
diff --git a/pkgs/os-specific/linux/firmware/raspberrypi/default.nix b/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
index bd9c58d33c9..77a28444636 100644
--- a/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
+++ b/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "raspberrypi-firmware";
-  version = "1.20190925";
+  version = "1.20200601";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "firmware";
     rev = version;
-    sha256 = "0xyj3f04dcfnl9hp8hakgwcb1msqh7934n0pclcmzy47xjkz7ris";
+    sha256 = "1vm038f9digwg8gdxl2bypzlip3ycjb6bl56274gh5i9abl6wjvf";
   };
 
   installPhase = ''
diff --git a/pkgs/os-specific/linux/firmware/raspberrypi/tools-dont-install-sysv-init-scripts.patch b/pkgs/os-specific/linux/firmware/raspberrypi/tools-dont-install-sysv-init-scripts.patch
deleted file mode 100644
index e12aeeb0cdb..00000000000
--- a/pkgs/os-specific/linux/firmware/raspberrypi/tools-dont-install-sysv-init-scripts.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/interface/vmcs_host/linux/vcfiled/CMakeLists.txt b/interface/vmcs_host/linux/vcfiled/CMakeLists.txt
-index aed0e83..b325676 100644
---- a/interface/vmcs_host/linux/vcfiled/CMakeLists.txt
-+++ b/interface/vmcs_host/linux/vcfiled/CMakeLists.txt
-@@ -17,15 +17,6 @@ target_link_libraries(vcfiled
- install(TARGETS vcfiled 
-         RUNTIME DESTINATION sbin)
- 
--configure_file (etc/init.d/vcfiled ${PROJECT_BINARY_DIR}/etc/init.d/vcfiled)
--
--# script to start up vcfiled at start of day
--install(PROGRAMS ${PROJECT_BINARY_DIR}/etc/init.d/vcfiled
--        DESTINATION /etc/init.d)
--# install locally to the installation directory too
--install(PROGRAMS ${PROJECT_BINARY_DIR}/etc/init.d/vcfiled
--        DESTINATION ${VMCS_INSTALL_PREFIX}/share/install)
--
- # test program for vcfiled_check library
- add_executable(vcfiled_lock_test vcfiled_lock_test.c)
- target_link_libraries(vcfiled_lock_test vcfiled_check)
diff --git a/pkgs/os-specific/linux/firmware/raspberrypi/tools.nix b/pkgs/os-specific/linux/firmware/raspberrypi/tools.nix
index e3fa90ac388..6c4d49e4e24 100644
--- a/pkgs/os-specific/linux/firmware/raspberrypi/tools.nix
+++ b/pkgs/os-specific/linux/firmware/raspberrypi/tools.nix
@@ -2,17 +2,15 @@
 
 stdenv.mkDerivation {
   pname = "raspberrypi-tools";
-  version = "2018-10-03";
+  version = "2020-05-28";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "userland";
-    rev = "de4a7f2e3c391e2d3bc76af31864270e7802d9ac";
-    sha256 = "0w96xa98ngdk9m6wv185w8waa7wm2hkn2bhxz52zd477hchzrxlg";
+    rev = "f97b1af1b3e653f9da2c1a3643479bfd469e3b74";
+    sha256 = "1r7n05rv96hqjq0rn0qzchmfqs0j7vh3p8jalgh66s6l0vms5mwy";
   };
 
-  patches = [ ./tools-dont-install-sysv-init-scripts.patch ];
-
   nativeBuildInputs = [ cmake pkgconfig ];
 
   preConfigure = ''
diff --git a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
index 73ab46b3c8a..a9fc44e48cc 100644
--- a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
+++ b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
@@ -1,28 +1,33 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchFromGitHub }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "sof-firmware";
-  version = "1.4.2";
+  version = "1.5.1";
 
-  src = fetchurl {
-    url = "https://www.alsa-project.org/files/pub/misc/sof/${pname}-${version}.tar.bz2";
-    sha256 = "1nkh020gjm45vxd6fvmz63hj16ilff2nl5avvsklajjs6xci1sf5";
+  src = fetchFromGitHub {
+    owner = "thesofproject";
+    repo = "sof-bin";
+    rev = "ae61d2778b0a0f47461a52da0d1f191f651e0763";
+    sha256 = "0j6bpwz49skvdvian46valjw4anwlrnkq703n0snkbngmq78prba";
   };
 
   phases = [ "unpackPhase" "installPhase" ];
 
   installPhase = ''
-    rm lib/firmware/intel/{sof/LICENCE,sof-tplg/LICENCE}
-    mkdir $out
-    cp -r lib $out/lib
+    mkdir -p $out/lib/firmware/intel
+
+    sed -i 's/ROOT=.*$/ROOT=$out/g' go.sh
+    sed -i 's/VERSION=.*$/VERSION=v${version}/g' go.sh
+
+    ./go.sh
   '';
 
   meta = with stdenv.lib; {
     description = "Sound Open Firmware";
     homepage = "https://www.sofproject.org/";
     license = with licenses; [ bsd3 isc ];
-    maintainers = with maintainers; [ lblasc ];
+    maintainers = with maintainers; [ lblasc evenbrenden ];
     platforms = with platforms; linux;
   };
 }
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 9f734a47c29..1086e5ece04 100644
--- a/pkgs/os-specific/linux/fscrypt/default.nix
+++ b/pkgs/os-specific/linux/fscrypt/default.nix
@@ -4,13 +4,13 @@
 
 buildGoModule rec {
   pname = "fscrypt";
-  version = "0.2.7";
+  version = "0.2.9";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "fscrypt";
     rev = "v${version}";
-    sha256 = "0h1ssw9x37hvks8rcnsjq4nsl6djmhx53iiwrw8fw4lf3nlmdzpx";
+    sha256 = "020hhdarbn3bwlc2j2g89868v8nfx8562z1a778ihpvvsa4ykr31";
   };
 
   postPatch = ''
@@ -19,7 +19,9 @@ buildGoModule rec {
       --replace "/usr/local" "$out"
   '';
 
-  modSha256 = "110b647q6ljsg5gwlciqv4cddxmk332nahcrpidrpsiqs2yjv1md";
+  vendorSha256 = "0yak221mlyfacvlsaq9g3xiyk94n94vqgkbaji8d21pi8hhr38m6";
+
+  doCheck = false;
 
   nativeBuildInputs = [ gnum4 ];
   buildInputs = [ pam ];
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 415226509b7..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.1";
-    sha256Hash = "1i3f4h3vnjxls8hdi6w2n2ksrgbs7brbzj65rvxginyxicykh857";
+    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 76ec3c691d0..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.03.00";
+  version = "20.07.00";
 
   src = fetchzip {
     url = "http://fwts.ubuntu.com/release/${pname}-V${version}.tar.gz";
-    sha256 = "0h56lclvs8l5jf6zh790ki9k4mp9r8sqv2pynnciqlkz8nj71qah";
+    sha256 = "0azhcnlfziwn8wvw3fly2jfjyg53m8zba3jlcxgzrasgb0kvzb1c";
     stripRoot = false;
   };
 
diff --git a/pkgs/os-specific/linux/gobi_loader/default.nix b/pkgs/os-specific/linux/gobi_loader/default.nix
new file mode 100644
index 00000000000..b8735354c2c
--- /dev/null
+++ b/pkgs/os-specific/linux/gobi_loader/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gobi_loader";
+  version = "0.7";
+
+  src = fetchurl {
+    url = "https://www.codon.org.uk/~mjg59/gobi_loader/download/${pname}-${version}.tar.gz";
+    sha256 = "0jkmpqkiddpxrzl2s9s3kh64ha48m00nn53f82m1rphw8maw5gbq";
+  };
+
+  postPatch = ''
+    substituteInPlace 60-gobi.rules --replace "gobi_loader" "${placeholder "out"}/lib/udev/gobi_loader"
+    substituteInPlace 60-gobi.rules --replace "/lib/firmware" "/run/current-system/firmware"
+  '';
+
+  makeFlags = "prefix=${placeholder "out"}";
+
+  meta = with stdenv.lib; {
+    description = "Firmware loader for Qualcomm Gobi USB chipsets";
+    homepage = "https://www.codon.org.uk/~mjg59/gobi_loader/";
+    license = with licenses; [ gpl2 ];
+    maintainers = with maintainers; [ _0x4A6F ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/google-authenticator/default.nix b/pkgs/os-specific/linux/google-authenticator/default.nix
index e04b8314350..ce90a1d432f 100644
--- a/pkgs/os-specific/linux/google-authenticator/default.nix
+++ b/pkgs/os-specific/linux/google-authenticator/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "google-authenticator-libpam";
-  version = "1.08";
+  version = "1.09";
 
   src = fetchurl {
     url = "https://github.com/google/google-authenticator-libpam/archive/${version}.tar.gz";
-    sha256 = "1432sfgjv7xlas1saa0whnvqim2pb12g2522x3nf5a8v4qq7avbg";
+    sha256 = "0dyhgizl2jcrnfn5sxipxawqrbr6qgjh7aggw8fz3hix861pj7db";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/os-specific/linux/hostapd/default.nix b/pkgs/os-specific/linux/hostapd/default.nix
index 8152655d457..991dcbe2615 100644
--- a/pkgs/os-specific/linux/hostapd/default.nix
+++ b/pkgs/os-specific/linux/hostapd/default.nix
@@ -19,11 +19,30 @@ stdenv.mkDerivation rec {
       url = "https://raw.githubusercontent.com/openwrt/openwrt/master/package/network/services/hostapd/patches/300-noscan.patch";
       sha256 = "04wg4yjc19wmwk6gia067z99gzzk9jacnwxh5wyia7k5wg71yj5k";
     })
+    # AP mode PMF disconnection protection bypass (CVE.2019-16275), can be removed >= 2.10
+    # https://w1.fi/security/2019-7/
     (fetchurl {
       name = "CVE-2019-16275.patch";
       url = "https://w1.fi/security/2019-7/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch";
       sha256 = "15xjyy7crb557wxpx898b5lnyblxghlij0xby5lmj9hpwwss34dz";
     })
+    # Fixes for UPnP SUBSCRIBE misbehavior in hostapd WPS AP (CVE-2020-12695), can be removed >= 2.10
+    # https://w1.fi/security/2020-1/
+    (fetchurl {
+      name = "CVE-2020-12695_0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch";
+      url = "https://w1.fi/security/2020-1/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch";
+      sha256 = "1mrbhicqb34jlw1nid5hk2vnjbvfhvp7r5iblaj4l6vgc6fmp6id";
+    })
+    (fetchurl {
+      name = "CVE-2020-12695_0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch";
+      url = "https://w1.fi/security/2020-1/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch";
+      sha256 = "1pk08b06b24is50bis3rr56xjd3b5kxdcdk8bx39n9vna9db7zj9";
+    })
+    (fetchurl {
+      name = "CVE-2020-12695_0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch";
+      url = "https://w1.fi/security/2020-1/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch";
+      sha256 = "12npqp2skgrj934wwkqicgqksma0fxz09di29n1b5fm5i4njl8d8";
+    })
   ];
 
   outputs = [ "out" "man" ];
@@ -80,7 +99,7 @@ stdenv.mkDerivation rec {
     repositories.git = "git://w1.fi/hostap.git";
     description = "A user space daemon for access point and authentication servers";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ phreedom ninjatrappeur ];
+    maintainers = with maintainers; [ phreedom ninjatrappeur hexa ];
     platforms = platforms.linux;
   };
 }
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/input-utils/default.nix b/pkgs/os-specific/linux/input-utils/default.nix
index 97c7b8b23f2..0fc2130d102 100644
--- a/pkgs/os-specific/linux/input-utils/default.nix
+++ b/pkgs/os-specific/linux/input-utils/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   makeFlags = [
     "prefix=$(out)"
-    "STRIP=-s"
+    "STRIP="
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/os-specific/linux/intel-compute-runtime/default.nix b/pkgs/os-specific/linux/intel-compute-runtime/default.nix
index 869041256b6..5a3a5bf7a4d 100644
--- a/pkgs/os-specific/linux/intel-compute-runtime/default.nix
+++ b/pkgs/os-specific/linux/intel-compute-runtime/default.nix
@@ -43,7 +43,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/iproute/default.nix b/pkgs/os-specific/linux/iproute/default.nix
index 46312a637da..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.6.0";
+  version = "5.8.0";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/net/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "14j6n1bc09xhq8lxs40vfsx8bb8lx12a07ga4rsxl8vfrqjhwnqv";
+    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/iptables/default.nix b/pkgs/os-specific/linux/iptables/default.nix
index 7502769c3ae..c9c342ad768 100644
--- a/pkgs/os-specific/linux/iptables/default.nix
+++ b/pkgs/os-specific/linux/iptables/default.nix
@@ -6,12 +6,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "1.8.4";
+  version = "1.8.5";
   pname = "iptables";
 
   src = fetchurl {
     url = "https://www.netfilter.org/projects/${pname}/files/${pname}-${version}.tar.bz2";
-    sha256 = "0z0mgs1ghvn3slc868mgbf2g26njgrzcy5ggyb5w4i55j1a3lflr";
+    sha256 = "02a3575ypdpg6a2x752mhk3f7h1381ymkq1n0gss6fp6292xfmyl";
   };
 
   nativeBuildInputs = [ pkgconfig pruneLibtoolFiles flex bison ];
diff --git a/pkgs/os-specific/linux/iptstate/default.nix b/pkgs/os-specific/linux/iptstate/default.nix
index cd290113e00..529a82e9646 100644
--- a/pkgs/os-specific/linux/iptstate/default.nix
+++ b/pkgs/os-specific/linux/iptstate/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ trevorj ];
     downloadPage = "https://github.com/jaymzh/iptstate/releases";
+    license = licenses.zlib;
   };
 
   installPhase = ''
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/jool/source.nix b/pkgs/os-specific/linux/jool/source.nix
index 9e8de46edba..abf7b0dac45 100644
--- a/pkgs/os-specific/linux/jool/source.nix
+++ b/pkgs/os-specific/linux/jool/source.nix
@@ -1,11 +1,11 @@
 { fetchFromGitHub }:
 
 rec {
-  version = "4.0.5";
+  version = "4.0.9";
   src = fetchFromGitHub {
     owner = "NICMx";
     repo = "Jool";
     rev = "v${version}";
-    sha256 = "0zfda8mbcg4mgg39shxdx5n2bq6zi9w3v8bcx03b3dp09lmq45y3";
+    sha256 = "0zhdpk1sbsv1iyr9rvj94wk853684avz3zzn4cv2k4254d7n25m7";
   };
 }
diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix
index a79e58223ff..c8cf2ac20bc 100644
--- a/pkgs/os-specific/linux/kernel-headers/default.nix
+++ b/pkgs/os-specific/linux/kernel-headers/default.nix
@@ -29,8 +29,8 @@ rec {
       "cc-version:=9999"
       "cc-fullversion:=999999"
       # `$(..)` expanded by make alone
-      "HOSTCC:=$(BUILD_CC)"
-      "HOSTCXX:=$(BUILD_CXX)"
+      "HOSTCC:=$(CC_FOR_BUILD)"
+      "HOSTCXX:=$(CXX_FOR_BUILD)"
     ];
 
     # Skip clean on darwin, case-sensitivity issues.
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 636d174b155..e80e29aad3d 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -42,7 +42,7 @@ let
       TIMER_STATS               = whenOlder "4.11" yes;
       DEBUG_NX_TEST             = whenOlder "4.11" no;
       DEBUG_STACK_USAGE         = no;
-      DEBUG_STACKOVERFLOW       = mkIf (!features.grsecurity) no;
+      DEBUG_STACKOVERFLOW       = mkIf (!features.grsecurity) (option no);
       RCU_TORTURE_TEST          = no;
       SCHEDSTATS                = no;
       DETECT_HUNG_TASK          = yes;
@@ -63,7 +63,7 @@ let
       PM_WAKELOCKS                     = yes;
       # Power-capping framework and support for INTEL RAPL
       POWERCAP                         = yes;
-      INTEL_RAPL                       = module;
+      INTEL_RAPL                       = whenAtLeast "5.3" module;
     };
 
     external-firmware = {
@@ -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;
@@ -116,11 +118,11 @@ let
       CLS_U32_PERF       = yes;
       CLS_U32_MARK       = yes;
       BPF_JIT            = whenPlatformHasEBPFJit yes;
-      BPF_JIT_ALWAYS_ON  = no; # whenPlatformHasEBPFJit yes; # see https://github.com/NixOS/nixpkgs/issues/79304
+      BPF_JIT_ALWAYS_ON  = whenPlatformHasEBPFJit no; # whenPlatformHasEBPFJit yes; # see https://github.com/NixOS/nixpkgs/issues/79304
       HAVE_EBPF_JIT      = whenPlatformHasEBPFJit yes;
       BPF_STREAM_PARSER  = whenAtLeast "4.19" yes;
       XDP_SOCKETS        = whenAtLeast "4.19" yes;
-      XDP_SOCKETS_DIAG   = whenAtLeast "4.19" yes;
+      XDP_SOCKETS_DIAG   = whenAtLeast "5.1" yes;
       WAN                = yes;
       TCP_CONG_CUBIC     = yes; # This is the default congestion control algorithm since 2.6.19
       # Required by systemd per-cgroup firewalling
@@ -167,13 +169,18 @@ let
       NF_CONNTRACK_TIMEOUT        = yes;
       NF_CONNTRACK_TIMESTAMP      = yes;
       NETFILTER_NETLINK_GLUE_CT   = yes;
-      NF_TABLES_INET              = whenAtLeast "4.19" yes;
-      NF_TABLES_NETDEV            = whenAtLeast "4.19" yes;
+      NF_TABLES_INET              = mkMerge [ (whenOlder "4.17" module)
+                                              (whenAtLeast "4.17" yes) ];
+      NF_TABLES_NETDEV            = mkMerge [ (whenOlder "4.17" module)
+                                              (whenAtLeast "4.17" yes) ];
       # IP: Netfilter Configuration
-      NF_TABLES_IPV4              = yes;
-      NF_TABLES_ARP               = whenAtLeast "4.19" yes;
+      NF_TABLES_IPV4              = mkMerge [ (whenOlder "4.17" module)
+                                              (whenAtLeast "4.17" yes) ];
+      NF_TABLES_ARP               = mkMerge [ (whenOlder "4.17" module)
+                                              (whenAtLeast "4.17" yes) ];
       # IPv6: Netfilter Configuration
-      NF_TABLES_IPV6              = yes;
+      NF_TABLES_IPV6              = mkMerge [ (whenOlder "4.17" module)
+                                              (whenAtLeast "4.17" yes) ];
       # Bridge Netfilter Configuration
       NF_TABLES_BRIDGE            = mkMerge [ (whenBetween "4.19" "5.3" yes)
                                               (whenAtLeast "5.3" module) ];
@@ -183,7 +190,7 @@ let
       NET_DROP_MONITOR = yes;
 
       # needed for ss
-      INET_DIAG         = yes;
+      INET_DIAG         = module;
       INET_TCP_DIAG     = module;
       INET_UDP_DIAG     = module;
       INET_RAW_DIAG     = whenAtLeast "4.14" module;
@@ -201,8 +208,8 @@ let
       B43_PHY_HT            = option yes;
       BCMA_HOST_PCI         = option yes;
       RTW88                 = whenAtLeast "5.2" module;
-      RTW88_8822BE          = whenAtLeast "5.2" yes;
-      RTW88_8822CE          = whenAtLeast "5.2" yes;
+      RTW88_8822BE          = mkMerge [ (whenBetween "5.2" "5.8" yes) (whenAtLeast "5.8" module) ];
+      RTW88_8822CE          = mkMerge [ (whenBetween "5.2" "5.8" yes) (whenAtLeast "5.8" module) ];
     };
 
     fb = {
@@ -219,6 +226,7 @@ let
       FB_3DFX_ACCEL       = yes;
       FB_VESA             = yes;
       FRAMEBUFFER_CONSOLE = yes;
+      FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER = whenAtLeast "4.19" yes;
       FRAMEBUFFER_CONSOLE_ROTATION = yes;
       FB_GEODE            = mkIf (stdenv.hostPlatform.system == "i686-linux") yes;
     };
@@ -249,7 +257,7 @@ let
       SND_HDA_RECONFIG    = yes; # Support reconfiguration of jack functions
       # Support configuring jack functions via fw mechanism at boot
       SND_HDA_PATCH_LOADER = yes;
-      SND_HDA_CODEC_CA0132_DSP = whenOlder "5.8" yes; # Enable DSP firmware loading on Creative Soundblaster Z/Zx/ZxR/Recon
+      SND_HDA_CODEC_CA0132_DSP = whenOlder "5.7" yes; # Enable DSP firmware loading on Creative Soundblaster Z/Zx/ZxR/Recon
       SND_OSSEMUL         = yes;
       SND_USB_CAIAQ_INPUT = yes;
       # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
@@ -263,12 +271,12 @@ 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;
       SND_SOC_SOF_HDA_AUDIO_CODEC       = yes;
-      SND_SOC_SOF_HDA_COMMON_HDMI_CODEC = yes;
+      SND_SOC_SOF_HDA_COMMON_HDMI_CODEC = whenOlder "5.7" yes;
       SND_SOC_SOF_HDA_LINK              = yes;
       SND_SOC_SOF_ICELAKE_SUPPORT       = yes;
       SND_SOC_SOF_INTEL_TOPLEVEL        = yes;
@@ -364,7 +372,7 @@ let
       CIFS_STATS        = whenOlder "4.19" yes;
       CIFS_WEAK_PW_HASH = yes;
       CIFS_UPCALL       = yes;
-      CIFS_ACL          = yes;
+      CIFS_ACL          = whenOlder "5.3" yes;
       CIFS_DFS_UPCALL   = yes;
       CIFS_SMB2         = whenOlder "4.13" yes;
 
@@ -395,7 +403,7 @@ let
       DEBUG_SET_MODULE_RONX            = { optional = true; tristate = whenOlder "4.11" "y"; };
       RANDOMIZE_BASE                   = option yes;
       STRICT_DEVMEM                    = option yes; # Filter access to /dev/mem
-      SECURITY_SELINUX_BOOTPARAM_VALUE = freeform "0"; # Disable SELinux by default
+      SECURITY_SELINUX_BOOTPARAM_VALUE = whenOlder "5.1" (freeform "0"); # Disable SELinux by default
       # Prevent processes from ptracing non-children processes
       SECURITY_YAMA                    = option yes;
       DEVKMEM                          = mkIf (!features.grsecurity) no; # Disable /dev/kmem
@@ -633,12 +641,22 @@ let
       # enabled by default in x86_64 but not arm64, so we do that here
       HIDRAW               = yes;
 
+      HID_ACRUX_FF       = yes;
+      DRAGONRISE_FF      = yes;
+      HOLTEK_FF          = yes;
+      SONY_FF            = yes;
+      SMARTJOYPLUS_FF    = yes;
+      THRUSTMASTER_FF    = yes;
+      ZEROPLUS_FF        = yes;
+
       MODULE_COMPRESS    = yes;
       MODULE_COMPRESS_XZ = yes;
       KERNEL_XZ          = yes;
 
       SYSVIPC            = yes;  # System-V IPC
 
+      AIO                = yes;  # POSIX asynchronous I/O
+
       UNIX               = yes;  # Unix domain sockets.
 
       MD                 = yes;     # Device mapper (RAID, LVM, etc.)
@@ -707,6 +725,7 @@ let
       KEXEC_FILE      = option yes;
       KEXEC_JUMP      = option yes;
 
+      PARTITION_ADVANCED    = yes; # Needed for LDM_PARTITION
       # Windows Logical Disk Manager (Dynamic Disk) support
       LDM_PARTITION         = yes;
       LOGIRUMBLEPAD2_FF     = yes; # Logitech Rumblepad 2 force feedback
@@ -720,6 +739,7 @@ let
       PSI = whenAtLeast "4.20" yes;
 
       MODVERSIONS        = whenOlder "4.9" yes;
+      MOUSE_ELAN_I2C_SMBUS = yes;
       MOUSE_PS2_ELANTECH = yes; # Elantech PS/2 protocol extension
       MTRR_SANITIZER     = yes;
       NET_FC             = yes; # Fibre Channel driver support
@@ -764,8 +784,8 @@ let
       HOTPLUG_PCI_PCIE = yes; # PCI-Expresscard hotplug support
 
       # Enable AMD's ROCm GPU compute stack
-      HSA_AMD = whenAtLeast "4.20" yes;
-      ZONE_DEVICE = whenAtLeast "5.3" yes;
+      HSA_AMD =     mkIf stdenv.hostPlatform.is64bit (whenAtLeast "4.20" yes);
+      ZONE_DEVICE = mkIf stdenv.hostPlatform.is64bit (whenAtLeast "5.3" yes);
       HMM_MIRROR = whenAtLeast "5.3" yes;
       DRM_AMDGPU_USERPTR = whenAtLeast "5.3" yes;
 
@@ -793,7 +813,7 @@ let
       SUN8I_DE2_CCU = whenAtLeast "4.13" yes;
 
       # See comments on https://github.com/NixOS/nixpkgs/commit/9b67ea9106102d882f53d62890468071900b9647
-      CRYPTO_AEGIS128_SIMD = no;
+      CRYPTO_AEGIS128_SIMD = whenAtLeast "5.4" no;
     };
   };
 in
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index e6e1bd84236..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
@@ -158,11 +163,8 @@ let
         ;
       }).config;
 
-      #
       structuredConfig = moduleStructuredConfig.settings;
     };
-
-
   }; # end of configfile derivation
 
   kernel = (callPackage ./manual-config.nix {}) {
diff --git a/pkgs/os-specific/linux/kernel/gpio-utils.nix b/pkgs/os-specific/linux/kernel/gpio-utils.nix
index 447704eedc8..e28d838efb3 100644
--- a/pkgs/os-specific/linux/kernel/gpio-utils.nix
+++ b/pkgs/os-specific/linux/kernel/gpio-utils.nix
@@ -18,7 +18,8 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Linux tools to inspect the gpiochip interface";
-    maintainers = with stdenv.lib.maintainers; [ kwohlfahrt ];
-    platforms = stdenv.lib.platforms.linux;
+    maintainers = with maintainers; [ kwohlfahrt ];
+    platforms = platforms.linux;
+    license = licenses.gpl2;
   };
 }
diff --git a/pkgs/os-specific/linux/kernel/hardened/config.nix b/pkgs/os-specific/linux/kernel/hardened/config.nix
index 95510fe218e..c817f104427 100644
--- a/pkgs/os-specific/linux/kernel/hardened/config.nix
+++ b/pkgs/os-specific/linux/kernel/hardened/config.nix
@@ -40,11 +40,12 @@ assert (versionAtLeast version "4.9");
   # Perform additional validation of commonly targeted structures.
   DEBUG_CREDENTIALS     = yes;
   DEBUG_NOTIFIERS       = yes;
-  DEBUG_PI_LIST         = yes; # doesn't BUG()
+  DEBUG_PI_LIST         = whenOlder "5.2" yes; # doesn't BUG()
+  DEBUG_PLIST           = whenAtLeast "5.2" yes;
   DEBUG_SG              = yes;
   SCHED_STACK_END_CHECK = yes;
 
-  REFCOUNT_FULL = whenAtLeast "4.13" yes;
+  REFCOUNT_FULL = whenBetween "4.13" "5.5" yes;
 
   # Randomize page allocator when page_alloc.shuffle=1
   SHUFFLE_PAGE_ALLOCATOR = whenAtLeast "5.2" yes;
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index 76d27e29508..824eb1a6966 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -1,27 +1,22 @@
 {
     "4.14": {
-        "name": "linux-hardened-4.14.180.a.patch",
-        "sha256": "0rpk5lq947i4v48d6jv75rgwpncayr4agc3f2iich3hlkh5p72p3",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.180.a/linux-hardened-4.14.180.a.patch"
+        "name": "linux-hardened-4.14.194.a.patch",
+        "sha256": "07z3lr3mbm6c95d7fra2qp071n1c45f9241cl19zs63g00avi11p",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.194.a/linux-hardened-4.14.194.a.patch"
     },
     "4.19": {
-        "name": "linux-hardened-4.19.122.a.patch",
-        "sha256": "0jh5wyrwrmm9rqqi8fn6d6bd8lzkhj1aylnphsajyyx5v28hn1b2",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.122.a/linux-hardened-4.19.122.a.patch"
+        "name": "linux-hardened-4.19.141.a.patch",
+        "sha256": "0yiqkkp17pf9r6nakpnqhvmf8awpzp5n27cmh15ril7vn1y71sxw",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.141.a/linux-hardened-4.19.141.a.patch"
     },
     "5.4": {
-        "name": "linux-hardened-5.4.40.a.patch",
-        "sha256": "1w9yc0j8vshjyvb2qgxjvrdgwiy5lmjn3s1rmlch649vqp97j9w7",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.40.a/linux-hardened-5.4.40.a.patch"
+        "name": "linux-hardened-5.4.60.a.patch",
+        "sha256": "138kms73rlj5zmsb2ivjzz1jr5aa8y8pmwzx02c7j1qk08v82823",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.60.a/linux-hardened-5.4.60.a.patch"
     },
-    "5.5": {
-        "name": "linux-hardened-5.5.19.a.patch",
-        "sha256": "1ya5nsfhr3nwz6qiz4pdhvm6k9mx1kr0prhdvhx3p40f1vk281sc",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.5.19.a/linux-hardened-5.5.19.a.patch"
-    },
-    "5.6": {
-        "name": "linux-hardened-5.6.12.a.patch",
-        "sha256": "1b6cwffb2b21h9xh2acm9q9j55cay87zbv9jjayv69znry4mzsx3",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.6.12.a/linux-hardened-5.6.12.a.patch"
+    "5.7": {
+        "name": "linux-hardened-5.7.17.a.patch",
+        "sha256": "181b473y0hkw076hsndw6nfynr2yhcaypj48iqnk25hzcj40nnaz",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.7.17.a/linux-hardened-5.7.17.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 8629eb8cf72..4807ff7dba4 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.180";
+  version = "4.14.194";
 
   # 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 = "03pd4wpg526n391jwc0kbmbxi059mvq8d42a9qbym9mnv5rzjkj4";
+    sha256 = "1q7ssi2790bqjn8s8ra5ihma70hmxykahink7iq5h78738id191y";
   };
 } // (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 577138542b3..e0c9c69061a 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.122";
+  version = "4.19.141";
 
   # 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 = "1980vza1vf6cl772dynn4m0rgdjazbn125kd6sb3s06gqn72cl2h";
+    sha256 = "0511vb9rfpy5l6cz69v0v97rw2rk2pscc4hkz2pfmgikagm1shm4";
   };
 } // (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 58131815e0f..033599900ff 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.223";
+  version = "4.4.233";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "09fln0sdfif2zv2jifp24yiqi0vcyj8fqx2jz91g21zvsxk3x5nd";
+    sha256 = "1z77dikgkvkp9ggwxp07hl8vxsf9kq57rhfdpbvhny1x13fqkrlp";
   };
 } // (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 9f2c7659abb..c1da330e4ae 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.223";
+  version = "4.9.233";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1r9ag1fhy0g429q44qlqh0qkf42qkhzxa04gxlmnrinqypk00lyg";
+    sha256 = "19dcwylhy5iqq3dmppqf7s9wy9d16m103djn1n183c9acnqclv9a";
   };
 } // (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 ffe59480915..1c903902b61 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.40";
+  version = "5.4.60";
 
   # 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 = "1ar001rljlr15rcl77la5y1cj3plaqhdblnh87xsmv47fq13yml3";
+    sha256 = "08x2a78n23371k7l5p677mihnl58dpjh7r7bvyiwj3y4hlisplmd";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.5.nix b/pkgs/os-specific/linux/kernel/linux-5.7.nix
index 96a349d985c..8583b3b1628 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.5.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.7.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.5.19";
+  version = "5.7.17";
 
   # 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 = "1sqiw9d25sqqzdh04dd722i7ff6kchj869jp4l8zalpvf51k6j0l";
+    sha256 = "09ajavdyvr0025rwvwfp9yv2z8q779nan1i6dck2kkdxr48kd36c";
   };
 } // (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 844fb18c21a..44ce98ce65e 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.12";
+  version = "5.8.3";
 
   # 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 = "0892ar2irfhd612sb8jpx85w0wwh4n76jgsv8wb92fp6mim37sns";
+    sha256 = "0y8prifvkywqsx5lk80bh31m505vinmicpvdrirgg0c9scg7x8lf";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix
index b13791ccb99..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 = "17445";
-    sha256 = "0d2gd2w4pbb728a7mw9dnq3aicwpjzg8zahg80ismvc9l1sym50a";
+    rev = "17624";
+    sha256 = "0gs3mpiffny408l9kdrxpj48axarfb2fxvcw4w8zsz5wr7yig0n2";
   }
 , ...
 }:
diff --git a/pkgs/os-specific/linux/kernel/linux-rpi.nix b/pkgs/os-specific/linux/kernel/linux-rpi.nix
index 6f5f2524276..a3d2bfd4836 100644
--- a/pkgs/os-specific/linux/kernel/linux-rpi.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rpi.nix
@@ -1,8 +1,8 @@
 { stdenv, lib, buildPackages, fetchFromGitHub, perl, buildLinux, rpiVersion, ... } @ args:
 
 let
-  modDirVersion = "4.19.75";
-  tag = "1.20190925";
+  modDirVersion = "4.19.118";
+  tag = "1.20200601";
 in
 lib.overrideDerivation (buildLinux (args // {
   version = "${modDirVersion}-${tag}";
@@ -12,13 +12,13 @@ lib.overrideDerivation (buildLinux (args // {
     owner = "raspberrypi";
     repo = "linux";
     rev = "raspberrypi-kernel_${tag}-1";
-    sha256 = "0l91kb4jjxg4fcp7d2aqm1fj34ns137rys93k907mdgnarcliafs";
+    sha256 = "11jzsmnd1qry2ir9vmsv0nfdzjpgkn5yab5ylxcz406plc073anp";
   };
 
   defconfig = {
     "1" = "bcmrpi_defconfig";
     "2" = "bcm2709_defconfig";
-    "3" = "bcmrpi3_defconfig";
+    "3" = if stdenv.hostPlatform.isAarch64 then "bcmrpi3_defconfig" else "bcm2709_defconfig";
     "4" = "bcm2711_defconfig";
   }.${toString rpiVersion};
 
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index 8b5f1e58d14..cf2ca99f6f5 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.7-rc4";
-  extraMeta.branch = "5.7";
+  version = "5.9-rc2";
+  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 = "1mnknjiax24iaj9n5k0s55vp6fvmb40s931qxj24v5p1lc5fznvb";
+    sha256 = "0mdh6gsd305kcgfqzyfgl5m886asjm5030ahg63gyias3ywzn5wd";
   };
 
   # 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..c7d14a45068
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-zen.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, buildLinux, ... } @ args:
+
+let
+  version = "5.8.1";
+in
+
+buildLinux (args // {
+  modDirVersion = "${version}-zen1";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "zen-kernel";
+    repo = "zen-kernel";
+    rev = "v${version}-zen1";
+    sha256 = "122q09d0sybi9lqlaxpq6ffc0ha9127bg3wzjync256lbj5394b7";
+  };
+
+  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 d73e0a8ac90..3a2682b2cfe 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -1,5 +1,5 @@
 { buildPackages, runCommand, nettools, bc, bison, flex, perl, rsync, gmp, libmpc, mpfr, openssl
-, libelf, cpio
+, libelf, cpio, elfutils
 , utillinuxMinimal
 , writeTextFile
 }:
@@ -280,8 +280,10 @@ let
     };
 in
 
-assert stdenv.lib.versionAtLeast version "4.14" -> libelf != null;
+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) // {
   pname = "linux";
   inherit version;
@@ -291,10 +293,11 @@ stdenv.mkDerivation ((drvAttrs config stdenv.hostPlatform.platform kernelPatches
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ perl bc nettools openssl rsync gmp libmpc mpfr ]
       ++ optional  (stdenv.hostPlatform.platform.kernelTarget == "uImage") buildPackages.ubootTools
-      ++ optional  (stdenv.lib.versionAtLeast version "4.14") libelf
+      ++ optional  (stdenv.lib.versionAtLeast version "4.14" && stdenv.lib.versionOlder version "5.8") libelf
       ++ optional  (stdenv.lib.versionAtLeast version "4.15") utillinuxMinimal
       ++ 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
       ;
 
   hardeningDisable = [ "bindnow" "format" "fortify" "stackprotector" "pic" "pie" ];
diff --git a/pkgs/os-specific/linux/kexectools/default.nix b/pkgs/os-specific/linux/kexectools/default.nix
index b1abf50f5f1..a70cb2e087f 100644
--- a/pkgs/os-specific/linux/kexectools/default.nix
+++ b/pkgs/os-specific/linux/kexectools/default.nix
@@ -14,6 +14,9 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" "pic" "relro" "pie" ];
 
+  # Prevent kexec-tools from using uname to detect target, which is wrong in
+  # cases like compiling for aarch32 on aarch64
+  configurePlatforms = [ "build" "host" ];
   configureFlags = [ "BUILD_CC=${buildPackages.stdenv.cc.targetPrefix}cc" ];
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   buildInputs = [ zlib ];
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/shrunk.nix b/pkgs/os-specific/linux/klibc/shrunk.nix
index b5b9783c6e7..8b79940ed78 100644
--- a/pkgs/os-specific/linux/klibc/shrunk.nix
+++ b/pkgs/os-specific/linux/klibc/shrunk.nix
@@ -22,7 +22,5 @@ stdenv.mkDerivation {
   ''; # */
   allowedReferences = ["out"];
 
-  meta = {
-    platforms = stdenv.lib.platforms.linux;
-  };
+  inherit (klibc) meta;
 }
diff --git a/pkgs/os-specific/linux/kmod-blacklist-ubuntu/default.nix b/pkgs/os-specific/linux/kmod-blacklist-ubuntu/default.nix
index e14e190cd7c..17f34f9bbd7 100644
--- a/pkgs/os-specific/linux/kmod-blacklist-ubuntu/default.nix
+++ b/pkgs/os-specific/linux/kmod-blacklist-ubuntu/default.nix
@@ -34,5 +34,6 @@ in stdenv.mkDerivation {
     homepage = "https://packages.ubuntu.com/source/zesty/kmod";
     description = "Linux kernel module blacklists from Ubuntu";
     platforms = platforms.linux;
+    license = with licenses; [ gpl2Plus lgpl21Plus ];
   };
 }
diff --git a/pkgs/os-specific/linux/kmod-debian-aliases/default.nix b/pkgs/os-specific/linux/kmod-debian-aliases/default.nix
index f0f41331727..23d323f84b8 100644
--- a/pkgs/os-specific/linux/kmod-debian-aliases/default.nix
+++ b/pkgs/os-specific/linux/kmod-debian-aliases/default.nix
@@ -14,10 +14,11 @@ stdenv.mkDerivation rec {
     cp aliases.conf $out
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://packages.debian.org/source/sid/kmod";
     description = "Linux configuration file for modprobe";
-    maintainers = with lib.maintainers; [ mathnerd314 ];
-    platforms = with lib.platforms; linux;
+    maintainers = with maintainers; [ mathnerd314 ];
+    platforms = with platforms; linux;
+    license = with licenses; [ gpl2Plus lgpl21Plus ];
   };
 }
diff --git a/pkgs/os-specific/linux/kmod/default.nix b/pkgs/os-specific/linux/kmod/default.nix
index de025b436f5..f1cc4558b05 100644
--- a/pkgs/os-specific/linux/kmod/default.nix
+++ b/pkgs/os-specific/linux/kmod/default.nix
@@ -8,11 +8,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "kmod";
-  version = "26";
+  version = "27";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/kernel/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "17dvrls70nr3b3x1wm8pwbqy4r8a5c20m0dhys8mjhsnpg425fsp";
+    sha256 = "035wzfzjx4nwidk747p8n085mgkvy531ppn16krrajx2dkqzply1";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig libxslt ];
@@ -38,8 +38,16 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = "https://www.kernel.org/pub/linux/utils/kernel/kmod/";
     description = "Tools for loading and managing Linux kernel modules";
+    longDescription = ''
+      kmod is a set of tools to handle common tasks with Linux kernel modules
+      like insert, remove, list, check properties, resolve dependencies and
+      aliases. These tools are designed on top of libkmod, a library that is
+      shipped with kmod.
+    '';
+    homepage = "https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/";
+    downloadPage = "https://www.kernel.org/pub/linux/utils/kernel/kmod/";
+    changelog = "https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/plain/NEWS?h=v${version}";
     license = licenses.lgpl21;
     platforms = platforms.unix;
   };
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/libaio/default.nix b/pkgs/os-specific/linux/libaio/default.nix
index 63d446319d6..ac000976a68 100644
--- a/pkgs/os-specific/linux/libaio/default.nix
+++ b/pkgs/os-specific/linux/libaio/default.nix
@@ -1,19 +1,14 @@
 { stdenv, fetchurl, fetchpatch }:
 
 stdenv.mkDerivation rec {
-  version = "0.3.110";
+  version = "0.3.111";
   pname = "libaio";
 
   src = fetchurl {
-    url = "https://fedorahosted.org/releases/l/i/libaio/${pname}-${version}.tar.gz";
-    sha256 = "0zjzfkwd1kdvq6zpawhzisv7qbq1ffs343i5fs9p498pcf7046g0";
+    url = "https://pagure.io/libaio/archive/${pname}-${version}/${pname}-${pname}-${version}.tar.gz";
+    sha256 = "1fih2y2js0dl9qshpyb14m0nnxlms2527shgcxg0hnbflv5igg76";
   };
 
-  patches = [ (fetchpatch {
-    url = "https://pagure.io/libaio/c/da47c32b2ff39e52fbed1622c34b86bc88d7c217.patch";
-    sha256 = "1kqpiswjn549s3w3m89bw5qkl7bw5pvq6gp5cdzd926ymlgivj5c";
-  }) ];
-
   postPatch = ''
     patchShebangs harness
 
diff --git a/pkgs/os-specific/linux/libbpf/default.nix b/pkgs/os-specific/linux/libbpf/default.nix
index aefb5ff6835..0a98475384d 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.8";
+  version = "0.0.9";
 
   src = fetchFromGitHub {
     owner = "libbpf";
     repo = "libbpf";
     rev = "v${version}";
-    sha256 = "02vbpg9v5sjcw7ihximy63cjmz82q5izkp91i44m1qp6qj5qn4sr";
+    sha256 = "18l0gff7nm841mwhr7bc7x863xcyvwh58zl7mc0amnsjqlbrvqg7";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/os-specific/linux/libfabric/default.nix b/pkgs/os-specific/linux/libfabric/default.nix
index 6383832a7e7..40f92f38d16 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.0";
+  version = "1.10.1";
 
   enableParallelBuilding = true;
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "ofiwg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0amgc5w7qg96r9a21jl92m6jzn4z2j3iyk7jf7kwyzfi4jhlkv89";
+    sha256 = "0nf5x4v9rhyd67r6f6q3dw4sraaja8jfdkhhg9g8x41czmx4d456";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ] ;
diff --git a/pkgs/os-specific/linux/libratbag/default.nix b/pkgs/os-specific/linux/libratbag/default.nix
index 22763130aee..48ee5d16c5c 100644
--- a/pkgs/os-specific/linux/libratbag/default.nix
+++ b/pkgs/os-specific/linux/libratbag/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libratbag";
-  version = "0.13";
+  version = "0.14";
 
   src = fetchFromGitHub {
     owner  = "libratbag";
     repo   = "libratbag";
     rev    = "v${version}";
-    sha256 = "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq";
+    sha256 = "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/libvolume_id/default.nix b/pkgs/os-specific/linux/libvolume_id/default.nix
index e54dee10c1d..98ddc50e2e4 100644
--- a/pkgs/os-specific/linux/libvolume_id/default.nix
+++ b/pkgs/os-specific/linux/libvolume_id/default.nix
@@ -1,8 +1,8 @@
 {stdenv, fetchurl}:
-   
+
 stdenv.mkDerivation {
   name = "libvolume_id-0.81.1";
-   
+
   src = fetchurl {
     url = "https://www.marcuscom.com/downloads/libvolume_id-0.81.1.tar.bz2";
     sha256 = "029z04vdxxsl8gycm9whcljhv6dy4b12ybsxdb99jr251gl1ifs5";
@@ -18,7 +18,8 @@ stdenv.mkDerivation {
     cp -f libvolume_id.so.0 $out/lib/
   ";
 
-  meta = {
-    platforms = stdenv.lib.platforms.linux;
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    license = licenses.gpl2;
   };
 }
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 c7925bae558..7bbd1768c04 100644
--- a/pkgs/os-specific/linux/lvm2/default.nix
+++ b/pkgs/os-specific/linux/lvm2/default.nix
@@ -1,93 +1,128 @@
-{ 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 {
       name = "fix-stdio-usage.patch";
-      url = "https://git.alpinelinux.org/cgit/aports/plain/main/lvm2/fix-stdio-usage.patch?h=3.7-stable&id=31bd4a8c2dc00ae79a821f6fe0ad2f23e1534f50";
+      url = "https://git.alpinelinux.org/aports/plain/main/lvm2/fix-stdio-usage.patch?h=3.7-stable&id=31bd4a8c2dc00ae79a821f6fe0ad2f23e1534f50";
       sha256 = "0m6wr6qrvxqi2d2h054cnv974jq1v65lqxy05g1znz946ga73k3p";
     })
     (fetchpatch {
       name = "mallinfo.patch";
-      url = "https://git.alpinelinux.org/cgit/aports/plain/main/lvm2/mallinfo.patch?h=3.7-stable&id=31bd4a8c2dc00ae79a821f6fe0ad2f23e1534f50";
+      url = "https://git.alpinelinux.org/aports/plain/main/lvm2/mallinfo.patch?h=3.7-stable&id=31bd4a8c2dc00ae79a821f6fe0ad2f23e1534f50";
       sha256 = "0g6wlqi215i5s30bnbkn8w7axrs27y3bnygbpbnf64wwx7rxxlj0";
     })
     (fetchpatch {
       name = "mlockall-default-config.patch";
-      url = "https://git.alpinelinux.org/cgit/aports/plain/main/lvm2/mlockall-default-config.patch?h=3.7-stable&id=31bd4a8c2dc00ae79a821f6fe0ad2f23e1534f50";
+      url = "https://git.alpinelinux.org/aports/plain/main/lvm2/mlockall-default-config.patch?h=3.7-stable&id=31bd4a8c2dc00ae79a821f6fe0ad2f23e1534f50";
       sha256 = "1ivbj3sphgf8n1ykfiv5rbw7s8dgnj5jcr9jl2v8cwf28lkacw5l";
     })
   ];
 
   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 68d05f0be65..bcc8614bc6a 100644
--- a/pkgs/os-specific/linux/lxcfs/default.nix
+++ b/pkgs/os-specific/linux/lxcfs/default.nix
@@ -1,19 +1,21 @@
 { config, stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, help2man, fuse
+, utillinux, makeWrapper
 , enableDebugBuild ? config.lxcfs.enableDebugBuild or false }:
 
 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 ];
-  buildInputs = [ fuse ];
+  buildInputs = [ fuse makeWrapper ];
 
   preConfigure = stdenv.lib.optionalString enableDebugBuild ''
     sed -i 's,#AM_CFLAGS += -DDEBUG,AM_CFLAGS += -DDEBUG,' Makefile.am
@@ -27,14 +29,21 @@ stdenv.mkDerivation rec {
 
   installFlags = [ "SYSTEMD_UNIT_DIR=\${out}/lib/systemd" ];
 
+  postInstall = ''
+    # `mount` hook requires access to the `mount` command from `utillinux`:
+    wrapProgram "$out/share/lxcfs/lxc.mount.hook" \
+      --prefix PATH : "${utillinux}/bin"
+  '';
+
   postFixup = ''
     # liblxcfs.so is reloaded with dlopen()
     patchelf --set-rpath "$(patchelf --print-rpath "$out/bin/lxcfs"):$out/lib" "$out/bin/lxcfs"
   '';
 
   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/intel.nix b/pkgs/os-specific/linux/microcode/intel.nix
index b57c97c99e5..475288a0b6f 100644
--- a/pkgs/os-specific/linux/microcode/intel.nix
+++ b/pkgs/os-specific/linux/microcode/intel.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "microcode-intel";
-  version = "20200508";
+  version = "20200616";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "Intel-Linux-Processor-Microcode-Data-Files";
     rev = "microcode-${version}";
-    sha256 = "1cs4b7q9j2lw2y09rfa82aijbfmy4lddahz8qlz9gwajf2ziqns8";
+    sha256 = "13jrs8hwh7dhjjb9kncb8lk199afaxglkh1cfisl6zca1h36g563";
   };
 
   nativeBuildInputs = [ iucode-tool libarchive ];
diff --git a/pkgs/os-specific/linux/multipath-tools/default.nix b/pkgs/os-specific/linux/multipath-tools/default.nix
index 7e5ce115db4..02853f6497f 100644
--- a/pkgs/os-specific/linux/multipath-tools/default.nix
+++ b/pkgs/os-specific/linux/multipath-tools/default.nix
@@ -10,15 +10,20 @@ 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
     sed -i -e 's,\$(DESTDIR)/\(usr/\)\?,$(prefix)/,g' \
       kpartx/Makefile libmpathpersist/Makefile
-    sed -i -e "s,GZIP = .*, GZIP = gzip -9n -c," \
-      Makefile.inc
+    sed -i -e "s,GZIP,GZ," \
+      $(find * -name Makefile\*)
   '';
 
   nativeBuildInputs = [ gzip pkgconfig perl ];
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 d31a75fbba0..67d08454a84 100644
--- a/pkgs/os-specific/linux/musl/default.nix
+++ b/pkgs/os-specific/linux/musl/default.nix
@@ -19,21 +19,27 @@ let
   # iconv tool, implemented by musl author.
   # Original: http://git.etalabs.net/cgit/noxcuse/plain/src/iconv.c?id=02d288d89683e99fd18fe9f54d4e731a6c474a4f
   # We use copy from Alpine which fixes error messages, see:
-  # https://git.alpinelinux.org/cgit/aports/commit/main/musl/iconv.c?id=a3d97e95f766c9c378194ee49361b375f093b26f
+  # https://git.alpinelinux.org/aports/commit/main/musl/iconv.c?id=a3d97e95f766c9c378194ee49361b375f093b26f
   iconv_c = fetchurl {
     name = "iconv.c";
-    url = "https://git.alpinelinux.org/cgit/aports/plain/main/musl/iconv.c?id=a3d97e95f766c9c378194ee49361b375f093b26f";
+    url = "https://git.alpinelinux.org/aports/plain/main/musl/iconv.c?id=a3d97e95f766c9c378194ee49361b375f093b26f";
     sha256 = "1mzxnc2ncq8lw9x6n7p00fvfklc9p3wfv28m68j0dfz5l8q2k6pp";
   };
 
+  arch = if stdenv.hostPlatform.isx86_64
+    then "x86_64"
+    else if stdenv.hostPlatform.isx86_32
+      then "i386"
+      else null;
+
 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;
@@ -102,6 +108,9 @@ stdenv.mkDerivation rec {
       -lc \
       -B $out/lib \
       -Wl,-dynamic-linker=$(ls $out/lib/ld-*)
+  '' + lib.optionalString (arch != null) ''
+    # Create 'libc.musl-$arch' symlink
+    ln -rs $out/lib/libc.so $out/lib/libc.musl-${arch}.so.1
   '' + lib.optionalString useBSDCompatHeaders ''
     install -D ${queue_h} $dev/include/sys/queue.h
     install -D ${cdefs_h} $dev/include/sys/cdefs.h
diff --git a/pkgs/os-specific/linux/mwprocapture/default.nix b/pkgs/os-specific/linux/mwprocapture/default.nix
index acb4676a3f5..c5f293011db 100644
--- a/pkgs/os-specific/linux/mwprocapture/default.nix
+++ b/pkgs/os-specific/linux/mwprocapture/default.nix
@@ -15,11 +15,11 @@ let
 in
 stdenv.mkDerivation rec {
   name = "mwprocapture-1.2.${version}-${kernel.version}";
-  version = "4054";
+  version = "4177";
 
   src = fetchurl {
     url = "http://www.magewell.com/files/drivers/ProCaptureForLinux_${version}.tar.gz";
-    sha256 = "0ylx75jcwlqds8w6lm11nxdlzxvy7xlz4rka2k5d6gmqa5fv19c2";
+    sha256 = "1nf51w9yixpvr767k49sfdb9n9rv5qc72f5yki1mkghbmabw7vys";
   };
 
   nativeBuildInputs = [ kernel.moduleBuildDependencies ];
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/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index e195bf587ee..df71a953fee 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -22,10 +22,10 @@ rec {
   # Policy: use the highest stable version as the default (on our master).
   stable = if stdenv.hostPlatform.system == "x86_64-linux"
     then generic {
-      version = "440.82";
-      sha256_64bit = "13km9800skyraa0s312fc4hwyw5pzb0jfkrv1yg6anppyan1bm7d";
-      settingsSha256 = "15psxvd65wi6hmxmd2vvsp2v0m07axw613hb355nh15r1dpkr3ma";
-      persistencedSha256 = "13izz9p2kg9g38gf57g3s2sw7wshp1i9m5pzljh9v82c4c22x1fw";
+      version = "450.66";
+      sha256_64bit = "1a6va0gvbzpkyza693v2ml1is4xbv8wxasqk0zd5y7rxin94c1ms";
+      settingsSha256 = "0mkgs91gx7xb7f24xkq9fl7i8d4l7s0wr9a44b1gm1vkw82fm7lj";
+      persistencedSha256 = "02id8cg8fba7c1j4m6vj4gp2mv39lz2k557kdjw8lszcpw6f1fhh";
     }
     else legacy_390;
 
@@ -34,19 +34,19 @@ rec {
 
   # Last one supporting x86
   legacy_390 = generic {
-    version = "390.132";
-    sha256_32bit = "0xgjywzkmmm6a5gby67l2kx0gn7bcxksv4wam0sqym6l1s7v5bai";
-    sha256_64bit = "0qgzsajrc3xkf2jjkwip3la0f2ixp45f76nmz5cphvzrb7k2slxn";
-    settingsSha256 = "07nylqzhldq1gr40q7x5424p2aml3qqnvl2zvnpzc65x2way34v6";
-    persistencedSha256 = "0vab5rj9b1n9yl9674q7i88w1i5p8nhvrwsayn7i1vh4wp3m840r";
+    version = "390.138";
+    sha256_32bit = "0y3qjygl0kfz9qs0rp9scn1k3l8ym9dib7wpkyh5gs4klcip7xkv";
+    sha256_64bit = "0rnnb5l4i8s76vlg6yvlrxhm2x9wdqw7k5hgf4fyaa3cr3k1kysz";
+    settingsSha256 = "0ad6hwl56nvbdv9g85lw7ywadqvc2gaq9x6d2vjcia9kg4vrmfqx";
+    persistencedSha256 = "15jciyq6i3pz1g67xzqlwmc62v3xswzhjcqmfcdndvlvhcibsimr";
   };
 
   legacy_340 = generic {
-    version = "340.107";
-    sha256_32bit = "0mh83affz6bim26ws7kkwwcfj2s6vkdy4d45hifsbshr82qd52wd";
-    sha256_64bit = "0pv9yv3x0kg9hfkmc50xb54ahxkbnyy2vyy4hj2h0s6m9sb5kqz3";
-    settingsSha256 = "1zf0fy9jj6ipm5vk153swpixqm75iricmx7x49pmr97kzyczaxa7";
-    persistencedSha256 = "0v225jkiqk9rma6whxs1a4fyr4haa75bvi52ss3vsyn62zzl24na";
+    version = "340.108";
+    sha256_32bit = "1jkwa1phf0x4sgw8pvr9d6krmmr3wkgwyygrxhdazwyr2bbalci0";
+    sha256_64bit = "06xp6c0sa7v1b82gf0pq0i5p0vdhmm3v964v0ypw36y0nzqx8wf6";
+    settingsSha256 = "0zm29jcf0mp1nykcravnzb5isypm8l8mg2gpsvwxipb7nk1ivy34";
+    persistencedSha256 = "1ax4xn3nmxg1y6immq933cqzw6cj04x93saiasdc0kjlv0pvvnkn";
     useGLVND = false;
 
     patches = [ ./vm_operations_struct-fault.patch ];
diff --git a/pkgs/os-specific/linux/nvidia-x11/generic.nix b/pkgs/os-specific/linux/nvidia-x11/generic.nix
index 1d73ab8171a..d62ade04e63 100644
--- a/pkgs/os-specific/linux/nvidia-x11/generic.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/generic.nix
@@ -92,7 +92,7 @@ let
       homepage = "https://www.nvidia.com/object/unix.html";
       description = "X.org driver and kernel module for NVIDIA graphics cards";
       license = licenses.unfreeRedistributable;
-      platforms = [ "i686-linux" "x86_64-linux" ];
+      platforms = [ "x86_64-linux" ] ++ optionals (!i686bundled) [ "i686-linux" ];
       maintainers = with maintainers; [ baracoder ];
       priority = 4; # resolves collision with xorg-server's "lib/xorg/modules/extensions/libglx.so"
       inherit broken;
diff --git a/pkgs/os-specific/linux/nvme-cli/default.nix b/pkgs/os-specific/linux/nvme-cli/default.nix
index 616ad9c6764..80a00082b81 100644
--- a/pkgs/os-specific/linux/nvme-cli/default.nix
+++ b/pkgs/os-specific/linux/nvme-cli/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nvme-cli";
-  version = "1.11.1";
+  version = "1.12";
 
   src = fetchFromGitHub {
     owner = "linux-nvme";
     repo = "nvme-cli";
     rev = "v${version}";
-    sha256 = "06cxs41biqx230grvpk7zid3apcaajjywrccag50krb6h2wqafdl";
+    sha256 = "0ldky34sn0m5c4hgiip0fkzm465nca69bhxicpd5dg8wxhzxqrp3";
   };
 
   nativeBuildInputs = [ pkg-config ];
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/default.nix b/pkgs/os-specific/linux/pam/default.nix
index 2e44a887d69..fb969d7574a 100644
--- a/pkgs/os-specific/linux/pam/default.nix
+++ b/pkgs/os-specific/linux/pam/default.nix
@@ -11,11 +11,11 @@ stdenv.mkDerivation rec {
 
   patches = stdenv.lib.optionals (stdenv.hostPlatform.libc == "musl") [
     (fetchpatch {
-      url = "https://git.alpinelinux.org/cgit/aports/plain/main/linux-pam/fix-compat.patch?id=05a62bda8ec255d7049a2bd4cf0fdc4b32bdb2cc";
+      url = "https://git.alpinelinux.org/aports/plain/main/linux-pam/fix-compat.patch?id=05a62bda8ec255d7049a2bd4cf0fdc4b32bdb2cc";
       sha256 = "1h5yp5h2mqp1fcwiwwklyfpa69a3i03ya32pivs60fd7g5bqa7sf";
     })
     (fetchpatch {
-      url = "https://git.alpinelinux.org/cgit/aports/plain/main/linux-pam/libpam-fix-build-with-eglibc-2.16.patch?id=05a62bda8ec255d7049a2bd4cf0fdc4b32bdb2cc";
+      url = "https://git.alpinelinux.org/aports/plain/main/linux-pam/libpam-fix-build-with-eglibc-2.16.patch?id=05a62bda8ec255d7049a2bd4cf0fdc4b32bdb2cc";
       sha256 = "1ib6shhvgzinjsc603k2x1lxh9dic6qq449fnk110gc359m23j81";
     })
     # From adelie's package repo, using local copy since it seems to be currently offline.
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 cc5c2efd46e..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 = "202003";
+  version = "202007";
   pname = "pcm";
 
   src = fetchFromGitHub {
     owner = "opcm";
     repo = "pcm";
     rev = version;
-    sha256 = "1f83dhzrzgcyv5j5xxibvywvpg8sgf1g72f5x40cdb4149nwbfra";
+    sha256 = "1qqp51mvi52jvf6zf4g1fzv6nh9p37y0i7r2y273gwcdygbidzma";
   };
 
   installPhase = ''
diff --git a/pkgs/os-specific/linux/piper/default.nix b/pkgs/os-specific/linux/piper/default.nix
index f097f3e5465..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.4";
+  version = "0.5.1";
 
   format = "other";
 
@@ -12,7 +12,7 @@ python3.pkgs.buildPythonApplication rec {
     owner  = "libratbag";
     repo   = "piper";
     rev    =  version;
-    sha256 = "17h06j8lxpbfygq8fzycl7lml4vv7r05bsyhh3gga2hp0zms4mvg";
+    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 f5b54769f00..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.22";
+  version = "0.02.24";
   
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0r355b9syqa2nhfy8ksvxyy5d58v0isf983842js091s6liy0x7g";
+    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 d57b511af34..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" ];
@@ -17,13 +17,10 @@ stdenv.mkDerivation rec {
   patches = stdenv.lib.optional stdenv.hostPlatform.isMusl (
     fetchpatch {
       name = "strerror_r.patch";
-      url = "https://git.alpinelinux.org/cgit/aports/plain/main/powertop/strerror_r.patch?id=3b9214d436f1611f297b01f72469d66bfe729d6e";
+      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 a9cf7fe03b4..b1770a4d618 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 = "29.0";
+  version = "30.0";
 
 in stdenv.mkDerivation {
   pname = "rdma-core";
@@ -14,7 +14,7 @@ in stdenv.mkDerivation {
     owner = "linux-rdma";
     repo = "rdma-core";
     rev = "v${version}";
-    sha256 = "03r7jbhw64siyrna9mz0qzppfzp8ilwi7iqdkxgyy33rndncqqnq";
+    sha256 = "1czfh6s0qz2cv2k7ha7nr9qiwcrj5lvwqnvyrvsds463m8ndpg12";
   };
 
   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/rfkill/udev.nix b/pkgs/os-specific/linux/rfkill/udev.nix
index 3ee112126ac..a24c947673d 100644
--- a/pkgs/os-specific/linux/rfkill/udev.nix
+++ b/pkgs/os-specific/linux/rfkill/udev.nix
@@ -47,9 +47,10 @@ in stdenv.mkDerivation {
     cp ${rfkillHook} "$out/bin/rfkill-hook.sh"
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = "http://wireless.kernel.org/en/users/Documentation/rfkill";
     description = "Rules+hook for udev to catch rfkill state changes";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
+    license = licenses.mit;
   };
 }
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 4be46299122..ae6586262a5 100644
--- a/pkgs/os-specific/linux/rtl8821ce/default.nix
+++ b/pkgs/os-specific/linux/rtl8821ce/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub, kernel, bc }:
 stdenv.mkDerivation rec {
   name = "rtl8821ce-${kernel.version}-${version}";
-  version = "5.2.5_1.26055.20180108";
+  version = "5.5.2_34066.20200325";
 
   src = fetchFromGitHub {
     owner = "tomaspinho";
     repo = "rtl8821ce";
-    rev = "ab6154e150bbc7d12b0525d4cc1298ae196e45de";
-    sha256 = "1my0hidqnv4s7hi5897m81pq0sjw05np0g27hlkg9fwb83b5kzsg";
+    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/rtl88x2bu/default.nix b/pkgs/os-specific/linux/rtl88x2bu/default.nix
new file mode 100644
index 00000000000..3d461d52556
--- /dev/null
+++ b/pkgs/os-specific/linux/rtl88x2bu/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, kernel, bc }:
+
+stdenv.mkDerivation rec {
+  name = "rtl88x2bu-${kernel.version}-${version}";
+  version = "unstable-2020-05-19";
+
+  src = fetchFromGitHub {
+    owner = "cilynx";
+    repo = "rtl88x2BU";
+    rev = "0f159d7cd937a12b818121cb1f1c4910bd1adc72";
+    sha256 = "0flqnvzfdb4wsiiqv9vf5gfwd5fgpjvhs9zhqknnv1cmp8msgw6y";
+  };
+
+  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 rtl88x2bu driver";
+    homepage = "https://github.com/cilynx/rtl88x2bu";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.ralith ];
+  };
+}
diff --git a/pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix b/pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix
new file mode 100644
index 00000000000..a86d76a3be5
--- /dev/null
+++ b/pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, kernel }:
+
+stdenv.mkDerivation rec {
+  name = "rtl88xxau-aircrack-${kernel.version}-${version}";
+  rev = "fc0194c1d90453bf4943089ca237159ef19a7374";
+  version = "${builtins.substring 0 6 rev}";
+
+  src = fetchFromGitHub {
+    owner = "aircrack-ng";
+    repo = "rtl8812au";
+    inherit rev;
+    sha256 = "0hf7mrvxaskc6qcjar5w81y9xc7s2rlsxp34achyqly2hjg7fgmy";
+  };
+
+  buildInputs = kernel.moduleBuildDependencies;
+
+  hardeningDisable = [ "pic" ];
+
+  NIX_CFLAGS_COMPILE="-Wno-error=incompatible-pointer-types";
+
+  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 = "Aircrack-ng kernel module for Realtek 88XXau network cards\n(8811au, 8812au, 8814au and 8821au chipsets) with monitor mode and injection support.";
+    homepage = "https://github.com/aircrack-ng/rtl8812au";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.jethro ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
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/sysklogd/default.nix b/pkgs/os-specific/linux/sysklogd/default.nix
index c8378f2a0cb..f93e9012e05 100644
--- a/pkgs/os-specific/linux/sysklogd/default.nix
+++ b/pkgs/os-specific/linux/sysklogd/default.nix
@@ -21,8 +21,9 @@ stdenv.mkDerivation {
 
   preInstall = "mkdir -p $out/share/man/man5/ $out/share/man/man8/ $out/sbin";
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A system logging daemon";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
+    license = licenses.gpl2;
   };
 }
diff --git a/pkgs/os-specific/linux/syslinux/default.nix b/pkgs/os-specific/linux/syslinux/default.nix
index edb951dae3d..28681aed564 100644
--- a/pkgs/os-specific/linux/syslinux/default.nix
+++ b/pkgs/os-specific/linux/syslinux/default.nix
@@ -22,9 +22,15 @@ stdenv.mkDerivation {
       url = mkURL "fa1349f1" "0002-gfxboot-menu-label.patch";
       sha256 = "06ifgzbpjj4picpj17zgprsfi501zf4pp85qjjgn29i5rs291zni";
     })
-    (fetchpatch {
-      url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/0005-gnu-efi-version-compatibility.patch?h=packages/syslinux";
-      sha256 = "0fbqz56hj8az8ws26m39hyp3l5fvcbzvzdddqz3x6n56hzdpz1p6";
+    (fetchurl {
+      url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/0005-gnu-efi-version-compatibility.patch?id=821c3da473d1399d930d5b4a086e46a4179eaa45";
+      name = "0005-gnu-efi-version-compatibility.patch";
+      sha256 = "1mz2idg8cwn0mvd3jixxynhkn7rhmi5fp8cc8zznh5f0ysfra446";
+    })
+    (fetchurl {
+      url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/0025-reproducible-build.patch?id=821c3da473d1399d930d5b4a086e46a4179eaa45";
+      name = "0025-reproducible-build.patch";
+      sha256 = "0qk6wc6z3648828y3961pn4pi7xhd20a6fqn6z1mnj22bbvzcxls";
     })
     (fetchurl {
       # mbr.bin: too big (452 > 440)
@@ -70,6 +76,7 @@ stdenv.mkDerivation {
     "DATADIR=$(out)/share"
     "MANDIR=$(out)/share/man"
     "PERL=perl"
+    "HEXDATE=0x00000000"
   ]
     ++ stdenv.lib.optionals stdenv.hostPlatform.isi686 [ "bios" "efi32" ];
 
diff --git a/pkgs/os-specific/linux/sysstat/default.nix b/pkgs/os-specific/linux/sysstat/default.nix
index a27f6585202..258da07c40b 100644
--- a/pkgs/os-specific/linux/sysstat/default.nix
+++ b/pkgs/os-specific/linux/sysstat/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, gettext, bzip2 }:
 
 stdenv.mkDerivation rec {
-  name = "sysstat-12.3.1";
+  name = "sysstat-12.3.2";
 
   src = fetchurl {
     url = "http://pagesperso-orange.fr/sebastien.godard/${name}.tar.xz";
-    sha256 = "1hf1sy7akribmgavadqccxpy49yv0zfb3m81d2bj6jf8pyzwcrbq";
+    sha256 = "0gaas16q2f7qmrv4sbqk2l2mrc7yr64s33bzw4094p59fkylm7k4";
   };
 
   buildInputs = [ gettext ];
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 c88d0eeeff2..ab04ea91644 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 b873e4c0de3e24f2ec9370e5a217247217e90587 Mon Sep 17 00:00:00 2001
+From 22f46f55c81d84e83a4614856d84e63c8400165c 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
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 4f94cb465d4..c52a13c9a41 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 bdd3ff777dd8253ff5732118dd6de0fa9a9b95fe Mon Sep 17 00:00:00 2001
+From e5b2b1e90d055068936336f6f01639bcde251b96 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
@@ -7,18 +7,18 @@ They'll still be remounted read-only.
 
 https://github.com/NixOS/nixos/issues/126
 ---
- src/core/mount.c      | 2 ++
- src/shutdown/umount.c | 2 ++
+ src/shared/fstab-util.c | 2 ++
+ src/shutdown/umount.c   | 2 ++
  2 files changed, 4 insertions(+)
 
-diff --git a/src/core/mount.c b/src/core/mount.c
-index 1c4aefd734..a5553226f8 100644
---- a/src/core/mount.c
-+++ b/src/core/mount.c
-@@ -412,6 +412,8 @@ static bool mount_is_extrinsic(Mount *m) {
- 
-         if (PATH_IN_SET(m->where,  /* Don't bother with the OS data itself */
-                         "/",       /* (strictly speaking redundant: should already be covered by the perpetual flag check above) */
+diff --git a/src/shared/fstab-util.c b/src/shared/fstab-util.c
+index b19127be09..f9adca1100 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) {
+         /* Don't bother with the OS data itself */
+         if (PATH_IN_SET(mount,
+                         "/",
 +                        "/nix",
 +                        "/nix/store",
                          "/usr",
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 73aab8dd91c..e96593a5938 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 c28b3b2e254433e93549ee6fe8c93b43ce455776 Mon Sep 17 00:00:00 2001
+From ca7f6286c518d7ef3877458bbdf8e01f5518ab0e 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 734dee1130..a97b1a4bc9 100644
+index 51d0c2a75b..4d3451ff3b 100644
 --- a/src/nspawn/nspawn.c
 +++ b/src/nspawn/nspawn.c
-@@ -5018,6 +5018,7 @@ static int run(int argc, char *argv[]) {
+@@ -5017,6 +5017,7 @@ static int run(int argc, char *argv[]) {
                                  goto finish;
                          }
                  } else {
@@ -21,7 +21,7 @@ index 734dee1130..a97b1a4bc9 100644
                          const char *p, *q;
  
                          if (arg_pivot_root_new)
-@@ -5032,6 +5033,7 @@ static int run(int argc, char *argv[]) {
+@@ -5031,6 +5032,7 @@ static int run(int argc, char *argv[]) {
                                  r = -EINVAL;
                                  goto finish;
                          }
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 e10726a2cb1..4b2c059afd5 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 baf52609ad18785aa1d2cd043185ae9438d59411 Mon Sep 17 00:00:00 2001
+From c87cc5b1cf9c37f195e6b362352279e14289554e 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
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 23aa893362b..a8f3f0e21fd 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 45f80155b7c2edb1e73c233283f1ab1582e1cfbe Mon Sep 17 00:00:00 2001
+From 450c133c1815b473136b2a5540f9213fef5506ee 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
@@ -24,8 +24,8 @@ index 8331832c7a..bedb97115d 100644
  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/user:/run/systemd/system:${systemdsystemunitdir}
-+systemduserunitpath=${systemduserconfdir}:/etc/systemd/user:/etc/systemd-mutable/user:/nix/var/nix/profiles/default/lib/systemd/system:/run/systemd/user:${systemduserunitdir}
++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/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 0b57dc1f9c8..ac3d3b0bd6f 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 d52058070c0c12bb05f82460f0b4b55678b724e9 Mon Sep 17 00:00:00 2001
+From f88a9bb1e6080b539ed0116caa9781e7f6755f54 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,7 +13,7 @@ in containers.
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/src/core/unit.c b/src/core/unit.c
-index 97e1b0004c..d3cc2ba9ec 100644
+index c306183555..3db39fa435 100644
 --- a/src/core/unit.c
 +++ b/src/core/unit.c
 @@ -2043,7 +2043,8 @@ static void unit_check_binds_to(Unit *u) {
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 5703c4f43fd..cef3280aba8 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,4 +1,4 @@
-From 409fc808794942ad1736c2cc74853d9792e4ad02 Mon Sep 17 00:00:00 2001
+From e2b25ce3606d05ff8a387185c41ab32fb2a36161 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
@@ -14,16 +14,6 @@ diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c
 index 21f6471495..8c5af7619f 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_
          if (r < 0)
                  return r;
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 a9bf9abee52..36d82e22f8c 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 b56fc7b6ae8014eb2f71924c89498f395a1a81bd Mon Sep 17 00:00:00 2001
+From 5a6aad633a7ceffd62b009ce0c4ab6673129f7ff 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
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 12a9dd5a77f..8b5c807e4a8 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 4d304a321796db4de827aa39a149bea23d039214 Mon Sep 17 00:00:00 2001
+From b509dbd302a7933ae0002f44b99aac6a1fd5775b 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
@@ -79,7 +79,7 @@ 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 a97b1a4bc9..aed60439e3 100644
+index 4d3451ff3b..1adb91335c 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
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 7e6453f2ddd..b18ffb40166 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 cb3f1ec1793cbf74c4b5663e038bd49ff4576192 Mon Sep 17 00:00:00 2001
+From b5665ef8b9266c662c3a137df1ef1721cdff346e 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-*
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 080cd4670e6..bc9efaed23e 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 0ffb786d0e12a61899af448b1e4dd32a53ea5a8e Mon Sep 17 00:00:00 2001
+From be6b5c37779302384079b22b7fd767daad878fa9 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 fc216d22da..078db3bb5d 100644
+index c09115e06a..62eba4186c 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -3176,9 +3176,6 @@ install_data('LICENSE.GPL2',
+@@ -3184,9 +3184,6 @@ install_data('LICENSE.GPL2',
               'src/libsystemd/sd-bus/GVARIANT-SERIALIZATION',
               install_dir : docdir)
  
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 2961a2ebe56..5d67ce0ca31 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 3dbcdab1ba22c4eeca6d61718c09bcb9b5551764 Mon Sep 17 00:00:00 2001
+From 9262f52b0e30cf8c39d9f7684a8c0e8fd4887cd5 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
@@ -44,7 +44,7 @@ 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 078db3bb5d..6e1a6483fc 100644
+index 62eba4186c..b0b2edbb5a 100644
 --- a/meson.build
 +++ b/meson.build
 @@ -154,6 +154,9 @@ udevhwdbdir = join_paths(udevlibexecdir, 'hwdb.d')
@@ -57,7 +57,7 @@ index 078db3bb5d..6e1a6483fc 100644
  bootlibdir = join_paths(prefixdir, 'lib/systemd/boot/efi')
  testsdir = join_paths(prefixdir, 'lib/systemd/tests')
  systemdstatedir = join_paths(localstatedir, 'lib/systemd')
-@@ -2503,7 +2506,7 @@ if conf.get('ENABLE_BINFMT') == 1
+@@ -2511,7 +2514,7 @@ if conf.get('ENABLE_BINFMT') == 1
          meson.add_install_script('sh', '-c',
                                   mkdir_p.format(binfmtdir))
          meson.add_install_script('sh', '-c',
@@ -66,7 +66,7 @@ index 078db3bb5d..6e1a6483fc 100644
  endif
  
  if conf.get('ENABLE_REPART') == 1
-@@ -2604,7 +2607,7 @@ executable('systemd-sleep',
+@@ -2612,7 +2615,7 @@ executable('systemd-sleep',
             install_dir : rootlibexecdir)
  
  install_data('src/sleep/sleep.conf',
@@ -75,7 +75,7 @@ index 078db3bb5d..6e1a6483fc 100644
  
  exe = executable('systemd-sysctl',
                   'src/sysctl/sysctl.c',
-@@ -2916,7 +2919,7 @@ if conf.get('HAVE_KMOD') == 1
+@@ -2924,7 +2927,7 @@ if conf.get('HAVE_KMOD') == 1
          meson.add_install_script('sh', '-c',
                                   mkdir_p.format(modulesloaddir))
          meson.add_install_script('sh', '-c',
@@ -84,7 +84,7 @@ index 078db3bb5d..6e1a6483fc 100644
  endif
  
  exe = executable('systemd-nspawn',
-@@ -3159,7 +3162,7 @@ install_subdir('factory/etc',
+@@ -3167,7 +3170,7 @@ install_subdir('factory/etc',
                 install_dir : factorydir)
  
  install_data('xorg/50-systemd-user.sh',
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 5aa397afe8e..11d2dc26e38 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 0b0510aa72cf8026f34f300efa3f150f45971404 Mon Sep 17 00:00:00 2001
+From 05c2761f6a981c8576fc47a3dd8beb5a2af3ef09 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 25afdbea04..7afd5e5a37 100644
+index 4412e7a849..b799eeca95 100644
 --- a/src/core/manager.c
 +++ b/src/core/manager.c
-@@ -3896,9 +3896,14 @@ static int manager_run_generators(Manager *m) {
+@@ -3901,9 +3901,14 @@ static int manager_run_generators(Manager *m) {
          argv[4] = NULL;
  
          RUN_WITH_UMASK(0022)
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 91c091baa9e..06b00b82cb9 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 4bd20cf0450455e2f9831b09ba91811ba3d58961 Mon Sep 17 00:00:00 2001
+From c70029539d0aec5df0c1e4203359335a3841a1e5 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
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 2bc75e27928..6431b56ea3e 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 f23a1e00de028048a2a21d322493039cce7ee214 Mon Sep 17 00:00:00 2001
+From 98580b4aa34f3d2e7401f54d6561c5af27ea3437 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 15e6c1799e..412bdefe74 100644
+index 523040b57c..561d91c94c 100644
 --- a/src/shutdown/shutdown.c
 +++ b/src/shutdown/shutdown.c
-@@ -298,7 +298,7 @@ int main(int argc, char *argv[]) {
+@@ -299,7 +299,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;
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 97f63c02c38..c27d1a10d58 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 758b8211e6e76524d62a2e0ffcf37dcf55e3be87 Mon Sep 17 00:00:00 2001
+From 3821e20966ee20f74986041f33c4934ad20385b2 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
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 2a0bb0103f5..9fae2d5767c 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 ce9fe2249c91fdfb224eaffce63e3dbdb4a5c25d Mon Sep 17 00:00:00 2001
+From b07defe819e0f66d08563690b3a5abea5da08620 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
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 08b2fa056f8..321817dad6f 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 55b69fc1b5441e3aff8f1ab684ba8eed3718a32d Mon Sep 17 00:00:00 2001
+From 9c1ac48a7d95c09bef5a924bb5db6908596403b4 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
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 00a545ed3f5..c0163dcafe6 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
@@ -30,8 +31,9 @@ let gnupg-minimal = gnupg.override {
   zlib = null;
   bzip2 = null;
 };
+
 in stdenv.mkDerivation {
-  version = "245.5";
+  version = "245.7";
   pname = "systemd";
 
   # When updating, use https://github.com/systemd/systemd-stable tree, not the development one!
@@ -39,8 +41,8 @@ in stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "systemd";
     repo = "systemd-stable";
-    rev = "9a506b7e9291d997a920af9ac299e7b834368119";
-    sha256 = "19qd92hjlsljr6x5mbw1l2vdzz5y9hy7y7g0dwgpfifb0lwkxqbr";
+    rev = "1e6233ed07f7af08550fffa7a885cac1ac67a2c3";
+    sha256 = "1hd5kc3mm7mg4i7hhi82wg4cpg4fpi2k6hzjq9sv07pkn2lw390w";
   };
 
   patches = [
@@ -66,6 +68,13 @@ in stdenv.mkDerivation {
 
   postPatch = ''
     substituteInPlace src/basic/path-util.h --replace "@defaultPathNormal@" "${placeholder "out"}/bin/"
+    substituteInPlace src/boot/efi/meson.build \
+      --replace \
+      "find_program('ld'" \
+      "find_program('${stdenv.cc.bintools.targetPrefix}ld'" \
+      --replace \
+      "find_program('objcopy'" \
+      "find_program('${stdenv.cc.bintools.targetPrefix}objcopy'"
   '';
 
   outputs = [ "out" "lib" "man" "dev" ];
@@ -82,8 +91,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
@@ -113,6 +122,7 @@ in stdenv.mkDerivation {
     "-Dhostnamed=true"
     "-Dnetworkd=true"
     "-Dportabled=false"
+    "-Dremote=false"
     "-Dsysusers=false"
     "-Dtimedated=true"
     "-Dtimesyncd=true"
@@ -168,12 +178,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 \
diff --git a/pkgs/os-specific/linux/targetcli/default.nix b/pkgs/os-specific/linux/targetcli/default.nix
index 65d46ad34c1..94920c4012a 100644
--- a/pkgs/os-specific/linux/targetcli/default.nix
+++ b/pkgs/os-specific/linux/targetcli/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, python, fetchFromGitHub }:
+{ stdenv, python3, fetchFromGitHub }:
 
-python.pkgs.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "targetcli";
-  version = "2.1.51";
+  version = "2.1.53";
 
   src = fetchFromGitHub {
     owner = "open-iscsi";
     repo = "${pname}-fb";
     rev = "v${version}";
-    sha256 = "07i9kyr525hlk32amzgycirwgwykdbjy5fmw6ji0nnhvk2jh4arn";
+    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/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/uclibc/default.nix b/pkgs/os-specific/linux/uclibc/default.nix
index c9da86b7898..125a8608c15 100644
--- a/pkgs/os-specific/linux/uclibc/default.nix
+++ b/pkgs/os-specific/linux/uclibc/default.nix
@@ -48,7 +48,7 @@ let
     UCLIBC_HAS_FPU n
   '';
 
-  version = "1.0.33";
+  version = "1.0.34";
 in
 
 stdenv.mkDerivation {
@@ -58,7 +58,7 @@ stdenv.mkDerivation {
   src = fetchurl {
     url = "https://downloads.uclibc-ng.org/releases/${version}/uClibc-ng-${version}.tar.bz2";
     # from "${url}.sha256";
-    sha256 = "0qy9xsqacrhhrxd16azm26pqb2ks6c43wbrlq3i8xmq2917kw3xi";
+    sha256 = "025z0072inw1ibnrlwckslp9iayl9c35ysf0h7jjrxlzslzp4yjg";
   };
 
   # 'ftw' needed to build acl, a coreutils dependency
diff --git a/pkgs/os-specific/linux/udisks/2-default.nix b/pkgs/os-specific/linux/udisks/2-default.nix
index 526def78bb2..3b502dbe48f 100644
--- a/pkgs/os-specific/linux/udisks/2-default.nix
+++ b/pkgs/os-specific/linux/udisks/2-default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     # Fix tests: https://github.com/storaged-project/udisks/issues/724
     (fetchpatch {
       url = "https://github.com/storaged-project/udisks/commit/60a0c1c967821d317046d9494e45b9a8e4e7a1c1.patch";
-      sha256 = "tWl49mSc1zDyB3kV6SKlhHFPi/Kg7mg6OWDlY7vGj2Y=";
+      sha256 = "0rlgqsxn7rb074x6ivm0ya5lywc4llifj5br0zr31mwwckv7hsdm";
     })
   ];
 
diff --git a/pkgs/os-specific/linux/undervolt/default.nix b/pkgs/os-specific/linux/undervolt/default.nix
index 696625761b1..2f03ee8c820 100644
--- a/pkgs/os-specific/linux/undervolt/default.nix
+++ b/pkgs/os-specific/linux/undervolt/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, python3Packages }:
 
 python3Packages.buildPythonApplication rec {
-  version = "0.2.11";
+  version = "0.3.0";
   pname = "undervolt";
 
   src = fetchFromGitHub {
     owner = "georgewhewell";
     repo = "undervolt";
     rev = version;
-    sha256 = "18mnf3x687qal7k8yk2sdxzgbyn3rqchgflbi1sksryznmksqqw5";
+    sha256 = "1aybk8vbb4745raz7rvpkk6b98xrdiwjhkpbv3kwsgsr9sj42lp0";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/os-specific/linux/usbguard/default.nix b/pkgs/os-specific/linux/usbguard/default.nix
index 3b4c1c4b665..ad751b9cfe0 100644
--- a/pkgs/os-specific/linux/usbguard/default.nix
+++ b/pkgs/os-specific/linux/usbguard/default.nix
@@ -12,14 +12,14 @@ with stdenv.lib;
 assert libgcrypt != null -> libsodium == null;
 
 stdenv.mkDerivation rec {
-  version = "0.7.6";
+  version = "0.7.8";
   pname = "usbguard";
 
   repo = "https://github.com/USBGuard/usbguard";
 
   src = fetchurl {
     url = "${repo}/releases/download/${pname}-${version}/${pname}-${version}.tar.gz";
-    sha256 = "0gzhs8s4aka86mkcjib36z54si939ki4bmk46p6v8kln1fixad3j";
+    sha256 = "1il5immqfxh2cj8wn1bfk7l42inflzgjf07yqprpz7r3lalbxc25";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix
index aa23a162a92..fafa8fe6e83 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.35.2";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1yfpy6bkab4jw61mpx48gfy24yrqp4a7arvpis8csrkk53fkxpnr";
+    sha256 = "12mm5qvkq1vpllfv99gq93lkxlvysp1yxgh1392dkg7nh8g47dr1";
   };
 
   patches = [
diff --git a/pkgs/os-specific/linux/v4l-utils/default.nix b/pkgs/os-specific/linux/v4l-utils/default.nix
index 73944bd6eb7..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.0";
+  version = "1.20.0";
 
   src = fetchurl {
     url = "https://linuxtv.org/downloads/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "03c80acbv2znfxs1l32yx30znmjrqq7kxhiwl2309lpf5s10vdkc";
+    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 c68dfd5fc5e..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.20200506";
+  version = "1.0.20200729";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-linux-compat/snapshot/wireguard-linux-compat-${version}.tar.xz";
-    sha256 = "05dphmcxm3lg860r5bj1b995avh43d1pap8p18p4ig4kv2r2g9nq";
+    sha256 = "0fk2i65q8pk11n46a31017059aan7hbbx0xv6d2c9d80dzrw5a36";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/pkgs/os-specific/linux/wpa_supplicant/gui.nix b/pkgs/os-specific/linux/wpa_supplicant/gui.nix
index d60ff7f364c..132cad4b6d2 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/gui.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/gui.nix
@@ -1,14 +1,23 @@
-{ stdenv, mkDerivation, qtbase, qmake, inkscape, imagemagick, wpa_supplicant }:
+{ stdenv, mkDerivation, fetchpatch, qtbase, qmake, inkscape, imagemagick, wpa_supplicant }:
 
 mkDerivation {
   name = "wpa_gui-${wpa_supplicant.version}";
 
   inherit (wpa_supplicant) src;
 
+  patches = [
+    # Fix build with Inkscape 1.0
+    # https://github.com/NixOS/nixpkgs/issues/86930
+    (fetchpatch {
+      url = "https://w1.fi/cgit/hostap/patch/?id=0388992905a5c2be5cba9497504eaea346474754";
+      sha256 = "05hs74qawa433adripzhycm45g7yvxr6074nd4zcl4gabzp9hd30";
+    })
+  ];
+
   buildInputs = [ qtbase ];
   nativeBuildInputs = [ qmake inkscape imagemagick ];
 
-  prePatch = ''
+  postPatch = ''
     cd wpa_supplicant/wpa_gui-qt4
   '';
 
diff --git a/pkgs/os-specific/linux/xf86-video-nested/default.nix b/pkgs/os-specific/linux/xf86-video-nested/default.nix
index c117293d3ad..f86393cba84 100644
--- a/pkgs/os-specific/linux/xf86-video-nested/default.nix
+++ b/pkgs/os-specific/linux/xf86-video-nested/default.nix
@@ -20,10 +20,11 @@ stdenv.mkDerivation {
 
   CFLAGS = "-I${pixman}/include/pixman-1";
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = "https://cgit.freedesktop.org/xorg/driver/xf86-video-nested";
     description = "A driver to run Xorg on top of Xorg or something else";
-    maintainers = [ stdenv.lib.maintainers.goibhniu ];
-    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+    platforms = platforms.linux;
+    license = licenses.mit;
   };
 }
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..ac6e85b8049 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.1";
 
   src = fetchFromGitHub {
     owner = "ocerman";
     repo = "zenmonitor";
     rev = "v${version}";
-    sha256 = "1mn496iqfmhqsac7a5r0bdfddzrfiz6l34qiga0pip925g7hsm52";
+    sha256 = "1g6sk2mcd7znjq6zmbf2fgn02a0yimyv2dw2143aciq2pxqjawmp";
   };
 
   buildInputs = [ gtk3 ];
diff --git a/pkgs/os-specific/linux/zenpower/default.nix b/pkgs/os-specific/linux/zenpower/default.nix
index bc1d803bb10..43885027d9e 100644
--- a/pkgs/os-specific/linux/zenpower/default.nix
+++ b/pkgs/os-specific/linux/zenpower/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zenpower";
-  version = "0.1.10";
+  version = "0.1.12";
 
   src = fetchFromGitHub {
     owner = "ocerman";
     repo = "zenpower";
     rev = "v${version}";
-    sha256 = "1fqqaj7fq49yi2yip518036w80r9w7mkxpbkrxqzlydpma1x9v5m";
+    sha256 = "116yrw4ygh3fqwhniaqq0nps29pq87mi2q1375f1ylkfiak8n63a";
   };
 
   hardeningDisable = [ "pic" ];
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 563735deeeb..56b36d4f368 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -42,12 +42,7 @@ let
         inherit rev sha256;
       };
 
-      patches = [ (fetchpatch {
-        # https://github.com/openzfs/zfs/pull/9961#issuecomment-585827288
-        # will be included in zfs 0.5.4 as well
-        url = "https://gist.githubusercontent.com/satmandu/67cbae9c4d461be0e64428a1707aef1c/raw/ba0fb65f17ccce5b710e4ce86a095de577f7dfe1/k5.6.3.patch";
-        sha256 = "0zay7cz078v7wcnk7xl96blp7j6y64q1migb91c7h66zkpikqvgb";
-      }) ] ++ extraPatches;
+      patches = [ ./BACKPORT-Linux-5.8-compat-__vmalloc.patch ] ++ extraPatches;
 
       postPatch = optionalString buildKernel ''
         patchShebangs scripts
@@ -192,9 +187,9 @@ in {
     # incompatibleKernelVersion = "4.20";
 
     # this package should point to the latest release.
-    version = "0.8.3";
+    version = "0.8.4";
 
-    sha256 = "0viql8rnqr32diapkpdsrwm6xj8vw5vi4dk2x2m7s7g0q2zdkahw";
+    sha256 = "1hl4n900d24gl4vd65qdzq4m62b7bpvckldazcbd1xqcn8xhi6wp";
   };
 
   zfsUnstable = common {
@@ -202,9 +197,9 @@ in {
     # incompatibleKernelVersion = "4.19";
 
     # this package should point to a version / git revision compatible with the latest kernel release
-    version = "0.8.3";
+    version = "0.8.4";
 
-    sha256 = "0viql8rnqr32diapkpdsrwm6xj8vw5vi4dk2x2m7s7g0q2zdkahw";
+    sha256 = "1hl4n900d24gl4vd65qdzq4m62b7bpvckldazcbd1xqcn8xhi6wp";
     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/adguardhome/default.nix b/pkgs/servers/adguardhome/default.nix
new file mode 100644
index 00000000000..3260ce4f053
--- /dev/null
+++ b/pkgs/servers/adguardhome/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "adguardhome";
+  version = "0.101.0";
+
+  src = fetchurl {
+    url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v${version}/AdGuardHome_linux_amd64.tar.gz";
+    sha256 = "17k37hh04zhy5csl0p9g4hybfc403i38n754in1xrkzxi81r8dh5";
+  };
+
+  installPhase = ''
+    install -m755 -D ./AdGuardHome $out/bin/adguardhome
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/AdguardTeam/AdGuardHome";
+    description = "Network-wide ads & trackers blocking DNS server";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ numkem ];
+    license = licenses.gpl3;
+  };
+}
diff --git a/pkgs/servers/adminer/default.nix b/pkgs/servers/adminer/default.nix
index 6d7b12df56d..c58d2e6c2ba 100644
--- a/pkgs/servers/adminer/default.nix
+++ b/pkgs/servers/adminer/default.nix
@@ -1,13 +1,13 @@
 { stdenv, libbsd, fetchurl, phpPackages, php }:
 
 stdenv.mkDerivation rec {
-  version = "4.7.6";
+  version = "4.7.7";
   pname = "adminer";
 
   # not using fetchFromGitHub as the git repo relies on submodules that are included in the tar file
   src = fetchurl {
     url = "https://github.com/vrana/adminer/releases/download/v${version}/adminer-${version}.tar.gz";
-    sha256 = "1zgvscz7jk32qga8hp2dg89h7y72v05vz4yh4lq2ahhwwkbnsxpi";
+    sha256 = "1rvvc7xml7ycpbpjgqbgkan8djplx67balrmfignk1b6h9cw3l4q";
   };
 
   nativeBuildInputs = with phpPackages; [ php composer ];
diff --git a/pkgs/servers/amqp/rabbitmq-server/default.nix b/pkgs/servers/amqp/rabbitmq-server/default.nix
index e7f0eb73c86..c4b3070e9f2 100644
--- a/pkgs/servers/amqp/rabbitmq-server/default.nix
+++ b/pkgs/servers/amqp/rabbitmq-server/default.nix
@@ -8,12 +8,12 @@
 stdenv.mkDerivation rec {
   pname = "rabbitmq-server";
 
-  version = "3.8.3";
+  version = "3.8.5";
 
   # when updating, consider bumping elixir version in all-packages.nix
   src = fetchurl {
     url = "https://github.com/rabbitmq/rabbitmq-server/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "1fhs3g2pgrq2xi4hnlc437hkv3261l4i134m6mxid00sf1c89p5f";
+    sha256 = "014pfgfj90scas40lf0yjx14vhx5l5zbi3by2nnb704lg8w2n456";
   };
 
   buildInputs =
@@ -29,12 +29,12 @@ stdenv.mkDerivation rec {
     export LANG=C.UTF-8 # fix elixir locale warning
   '';
 
-  runtimePath = stdenv.lib.makeBinPath [
+  runtimePath = stdenv.lib.makeBinPath ([
     erlang
     getconf # for getting memory limits
-    socat systemd procps # for systemd unit activation check
+    socat procps
     gnused coreutils # used by helper scripts
-  ];
+  ] ++ stdenv.lib.optionals stdenv.isLinux [ systemd ]); # for systemd unit activation check
   postInstall = ''
     # rabbitmq-env calls to sed/coreutils, so provide everything early
     sed -i $out/sbin/rabbitmq-env -e '2s|^|PATH=${runtimePath}\''${PATH:+:}\$PATH/\n|'
diff --git a/pkgs/servers/atlassian/confluence.nix b/pkgs/servers/atlassian/confluence.nix
index d8410c87b76..116b8b935b1 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.3.4";
+  version = "7.6.1";
 
   src = fetchurl {
     url = "https://product-downloads.atlassian.com/software/confluence/downloads/${pname}-${version}.tar.gz";
-    sha256 = "13d0vnsvyl8cjdxnp2w284814bnqgbksl8mq7lkjms1x083mhnzi";
+    sha256 = "0ipkr0d4mwsah698fg320h9g5il9xcnwlifbfvfnsijs60y9ps8x";
   };
 
   buildPhase = ''
@@ -44,6 +44,6 @@ stdenvNoCC.mkDerivation rec {
     description = "Team collaboration software written in Java and mainly used in corporate environments";
     homepage = "https://www.atlassian.com/software/confluence";
     license = licenses.unfree;
-    maintainers = with maintainers; [ fpletz globin willibutz ];
+    maintainers = with maintainers; [ fpletz globin willibutz ciil ];
   };
 }
diff --git a/pkgs/servers/atlassian/crowd.nix b/pkgs/servers/atlassian/crowd.nix
index 556380df464..893f20cf59a 100644
--- a/pkgs/servers/atlassian/crowd.nix
+++ b/pkgs/servers/atlassian/crowd.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "atlassian-crowd";
-  version = "3.4.5";
+  version = "4.0.2";
 
   src = fetchurl {
     url = "https://www.atlassian.com/software/crowd/downloads/binary/${pname}-${version}.tar.gz";
-    sha256 = "1k72aar68iqiaf0l75i6pp81dpsllqkp69f70hja754hrzvhz8j3";
+    sha256 = "1ndg9qb406rd239q7xycc2vdh2jd4fh9wryx1fm9493rxlncx28b";
   };
 
   phases = [ "unpackPhase" "buildPhase" "installPhase" "fixupPhase" ];
diff --git a/pkgs/servers/atlassian/jira.nix b/pkgs/servers/atlassian/jira.nix
index d0d95d24068..81bb6a0e5d2 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.8.0";
+  version = "8.10.0";
 
   src = fetchurl {
     url = "https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-${version}.tar.gz";
-    sha256 = "1gn0iknli8pi3c3kxb8hdn19wzn2fx0193ppf0niw3cqf1h2c5cz";
+    sha256 = "1l0kxh4cwqyciylbccd4vfmsvq9cr5sfd0v2gbs3lz41av79mlwa";
   };
 
   buildPhase = ''
diff --git a/pkgs/servers/bazarr/default.nix b/pkgs/servers/bazarr/default.nix
new file mode 100644
index 00000000000..08b05084e9e
--- /dev/null
+++ b/pkgs/servers/bazarr/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchurl, makeWrapper, python3, nixosTests }:
+
+stdenv.mkDerivation rec {
+  pname = "bazarr";
+  version = "0.9";
+
+  src = fetchurl {
+    url = "https://github.com/morpheus65535/bazarr/archive/v${version}.tar.gz";
+    sha256 = "106f0gagq81rwykppyfjc7q8ibq3j89lp08hqgbmcv26hxb89rbj";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/src
+    cp -r * $out/src
+
+    mkdir -p $out/bin
+    makeWrapper "${(python3.withPackages (ps: [ps.lxml ps.numpy])).interpreter}" \
+      $out/bin/bazarr \
+      --add-flags "$out/src/bazarr.py" \
+  '';
+
+  passthru.tests = {
+    smoke-test = nixosTests.bazarr;
+  };
+
+  meta = with lib; {
+    description = "Subtitle manager for Sonarr and Radarr";
+    homepage = "https://www.bazarr.media/";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ xwvvvvwx ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/servers/beanstalkd/default.nix b/pkgs/servers/beanstalkd/default.nix
index 40e6267bd7b..aa5f79ff8f1 100644
--- a/pkgs/servers/beanstalkd/default.nix
+++ b/pkgs/servers/beanstalkd/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl }:
 stdenv.mkDerivation rec {
-  version = "1.11";
+  version = "1.12";
   pname = "beanstalkd";
 
   installPhase=''make install "PREFIX=$out"'';
 
   src = fetchurl {
     url = "https://github.com/kr/beanstalkd/archive/v${version}.tar.gz";
-    sha256 = "0i65d0pln1p6wxghzwziz2k8vafvdgjq6yc962ayzs80kpj18d2y";
+    sha256 = "0gw8aygysnjzzfjgfzivy5vajla9adg2zcr4h8rrdf0xyykpwfpl";
   };
 
   hardeningDisable = [ "fortify" ];
diff --git a/pkgs/servers/blockbook/default.nix b/pkgs/servers/blockbook/default.nix
index 9bc10989efd..5a411126991 100644
--- a/pkgs/servers/blockbook/default.nix
+++ b/pkgs/servers/blockbook/default.nix
@@ -1,34 +1,36 @@
 { stdenv
 , buildGoModule
-, lib
 , fetchFromGitHub
-, rocksdb
-, bzip2
-, zlib
 , packr
-, snappy
 , pkg-config
-, zeromq
+, bzip2
 , lz4
+, rocksdb
+, snappy
+, zeromq
+, zlib
 }:
 
 buildGoModule rec {
   pname = "blockbook";
-  version = "0.3.3";
-  commit = "b6961ca";
+  version = "0.3.4";
+  commit = "eb4e10a";
 
   src = fetchFromGitHub {
     owner = "trezor";
     repo = "blockbook";
     rev = "v${version}";
-    sha256 = "01nb4if2dix2h95xvqvafil325jjw2a4v1izb9mad0cjqcf8rk6n";
+    sha256 = "0da1kav5x2xcmwvdgfk1q70l1k0sqqj3njgx2xx885d40m6qbnrs";
   };
 
-  modSha256 = "1zp06mpkxaxykw8pr679fg9dd7039qj13j5lknxp7hr8dga0jvpy";
+  runVend = true;
+  vendorSha256 = "0p7vyw61nwvmaz7gz2bdh9fi6wp62i2vnzw6iz2r8cims4sbz53b";
 
-  buildInputs = [ bzip2 zlib snappy zeromq lz4 ];
+  doCheck = false;
 
-  nativeBuildInputs = [ pkg-config packr ];
+  nativeBuildInputs = [ packr pkg-config ];
+
+  buildInputs = [ bzip2 lz4 rocksdb snappy zeromq zlib ];
 
   buildFlagsArray = ''
     -ldflags=
@@ -37,21 +39,26 @@ buildGoModule rec {
        -X github.com/trezor/blockbook/common.buildDate=unknown
   '';
 
-  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
   '';
 
   subPackages = [ "." ];
 
-  meta = with lib; {
+  postInstall = ''
+    mkdir -p $out/share/
+    cp -r $src/static/templates/ $out/share/
+    cp -r $src/static/css/ $out/share/
+  '';
+
+  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 bcd4b7065b5..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 {
@@ -14,7 +12,9 @@ buildGoModule rec {
     rev = "v${version}";
     sha256 = "0jrhwmr6gggppskg5h450wybzkv17iq69dgw36hd1dp56q002i7g";
   };
-  modSha256 = "1gc0xvsihr4zp7hkrdfrplvzkaphz1y4q53rgwn2jhd8s98l57an";
+  vendorSha256 = "09vnci9pp8zp7bvn8zj68wslz2nc54nhcd0ll31sqfjbp00215mj";
+
+  doCheck = false;
 
   preBuild = ''
     cat << EOF > caddy/main.go
diff --git a/pkgs/servers/caddy/v2.nix b/pkgs/servers/caddy/v2.nix
index 4175dfa20fc..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,10 +10,12 @@ buildGoModule rec {
     owner = "caddyserver";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1c1frfx0qkprhf4var70cncvrw8s9gjag2hygndbd9055hb52bvv";
+    sha256 = "0c682zrivkawsxlps5hlx8js5zp4ddahg0zi5cr0861gnllbdll0";
   };
 
-  modSha256 = "19sxyvfq1bpg85w8cd1yk2s6rd8759cf2zqs5b6wyny4cak2bl83";
+  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/code-server/default.nix b/pkgs/servers/code-server/default.nix
new file mode 100644
index 00000000000..91da7e179b4
--- /dev/null
+++ b/pkgs/servers/code-server/default.nix
@@ -0,0 +1,187 @@
+{ stdenv, fetchFromGitHub, makeWrapper, runCommand
+, moreutils, jq, git, zip, rsync, pkgconfig, yarn, python2
+, nodejs-12_x, libsecret, xorg, ripgrep, nettools }:
+
+let
+  system = stdenv.hostPlatform.system;
+
+  nodejs = nodejs-12_x;
+  python = python2;
+  yarn' = yarn.override { inherit nodejs; };
+  defaultYarnOpts = [ "frozen-lockfile" "non-interactive" "no-progress"];
+
+in stdenv.mkDerivation rec {
+  pname = "code-server";
+  version = "3.4.1";
+  commit = "d3773c11f147bdd7a4f5acfefdee23c26f069e76";
+
+  src = fetchFromGitHub {
+    owner = "cdr";
+    repo = "code-server";
+    rev = version;
+    sha256 = "PfDD0waloppGZ09zCQ9ggBeVL/Dhfv6QmEs/fs7QLtA=";
+    fetchSubmodules = true;
+  };
+
+  yarnCache = stdenv.mkDerivation {
+    name = "${pname}-${version}-${system}-yarn-cache";
+    inherit src;
+    phases = ["unpackPhase" "buildPhase"];
+    nativeBuildInputs = [ yarn' git ];
+    buildPhase = ''
+      export HOME=$PWD
+
+      patchShebangs ./ci
+
+      # apply code-server patches as code-server has patched vscode yarn.lock
+      yarn vscode:patch
+
+      yarn config set yarn-offline-mirror $out
+      find "$PWD" -name "yarn.lock" -printf "%h\n" | \
+        xargs -I {} yarn --cwd {} \
+          --frozen-lockfile --ignore-scripts --ignore-platform \
+          --ignore-engines --no-progress --non-interactive
+    '';
+    outputHashMode = "recursive";
+    outputHashAlgo = "sha256";
+
+    # to get hash values use nix-build -A code-server.yarnPrefetchCache
+    outputHash = {
+      x86_64-linux = "Zze2hEm2Np+SyQ0KXy5CZr5wilZbHBYXNYcRJBUUkQo=";
+      aarch64-linux = "LiIvGuBismWSL2yV2DuKUWDjIzuIQU/VVxtiD4xJ+6Q=";
+    }.${system} or (throw "Unsupported system ${system}");
+  };
+
+  # Extract the Node.js source code which is used to compile packages with
+  # native bindings
+  nodeSources = runCommand "node-sources" {} ''
+    tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
+    mv node-* $out
+  '';
+
+  nativeBuildInputs = [
+    nodejs yarn' python pkgconfig zip makeWrapper git rsync jq moreutils
+  ];
+  buildInputs = [ libsecret xorg.libX11 xorg.libxkbfile ];
+
+  patchPhase = ''
+    export HOME=$PWD
+
+    patchShebangs ./ci
+
+    # apply code-server vscode patches
+    yarn vscode:patch
+
+    # allow offline install for vscode
+    substituteInPlace lib/vscode/build/npm/postinstall.js \
+      --replace '--ignore-optional' '--offline'
+
+    # fix path to ifconfig, so vscode can get mac address
+    substituteInPlace lib/vscode/src/vs/base/node/macAddress.ts \
+      --replace '/sbin/ifconfig' '${nettools}/bin/ifconfig'
+
+    # disable automatic updates
+    sed -i '/update.mode/,/\}/{s/default:.*/default: "none",/g}' \
+      lib/vscode/src/vs/platform/update/common/update.config.contribution.ts
+
+    # inject git commit
+    substituteInPlace ci/build/build-release.sh \
+      --replace '$(git rev-parse HEAD)' "$commit"
+
+    # remove all built-in extensions, as these are 3rd party extensions that
+    # gets downloaded from vscode marketplace
+    jq --slurp '.[0] * .[1]' "lib/vscode/product.json" <(
+      cat << EOF
+    {
+      "builtInExtensions": []
+    }
+    EOF
+    ) | sponge lib/vscode/product.json
+  '';
+
+  configurePhase = ''
+    # set default yarn opts
+    ${stdenv.lib.concatMapStrings (option: ''
+      yarn --offline config set ${option}
+    '') defaultYarnOpts}
+
+    # set offline mirror to yarn cache we created in previous steps
+    yarn --offline config set yarn-offline-mirror "${yarnCache}"
+
+    # set nodedir, so we can build binaries later
+    npm config set nodedir "${nodeSources}"
+
+    # skip browser downloads for playwright
+    export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true"
+  '';
+
+  buildPhase = ''
+    # install code-server dependencies
+    yarn --offline
+
+    # install vscode dependencies without running script for all vscode packages
+    # that require patching for postinstall scripts to succeed
+    for d in lib/vscode lib/vscode/build; do
+      yarn --offline --cwd $d --offline --ignore-scripts
+    done
+
+    # put ripgrep binary into bin, so postinstall does not try to download it
+    find -name vscode-ripgrep -type d \
+      -execdir mkdir -p {}/bin \; \
+      -execdir ln -s ${ripgrep}/bin/rg {}/bin/rg \;
+
+    # patch shebangs of everything, also cached files, as otherwise postinstall
+    # will not be able to find /usr/bin/env, as it does not exists in sandbox
+    patchShebangs .
+
+    # rebuild binaries, we use npm here, as yarn does not provider alternative
+    # that would not atempt to try to reinstall everything and break out
+    # patching attempts
+    npm rebuild --prefix lib/vscode --update-binary
+
+    # run postinstall scripts, which eventually do yarn install on all
+    # additional requirements
+    yarn --cwd lib/vscode postinstall --frozen-lockfile --offline
+
+    # build code-server
+    yarn build
+
+    # build vscode
+    yarn build:vscode
+
+    # create release
+    yarn release
+  '';
+
+  installPhase = ''
+    mkdir -p $out/libexec/code-server $out/bin
+
+    # copy release to libexec path
+    cp -R -T release "$out/libexec/code-server"
+
+    # install only production dependencies
+    yarn --offline --cwd "$out/libexec/code-server" --production
+
+    # create wrapper
+    makeWrapper "${nodejs-12_x}/bin/node" "$out/bin/code-server" \
+      --add-flags "$out/libexec/code-server/out/node/entry.js"
+  '';
+
+  passthru = {
+    prefetchYarnCache = stdenv.lib.overrideDerivation yarnCache (d: {
+      outputHash = stdenv.lib.fakeSha256;
+    });
+  };
+
+  meta = with stdenv.lib; {
+    description = "Run VS Code on a remote server.";
+    longDescription = ''
+      code-server is VS Code running on a remote server, accessible through the
+      browser.
+    '';
+    homepage = "https://github.com/cdr/code-server";
+    license = licenses.mit;
+    maintainers = with maintainers; [ offline ];
+    platforms = ["x86_64-linux"];
+  };
+}
diff --git a/pkgs/servers/computing/slurm/common-env-echo.patch b/pkgs/servers/computing/slurm/common-env-echo.patch
new file mode 100644
index 00000000000..4236421a63d
--- /dev/null
+++ b/pkgs/servers/computing/slurm/common-env-echo.patch
@@ -0,0 +1,13 @@
+diff --git a/src/common/env.c b/src/common/env.c
+index 987846d..73d3b3b 100644
+--- a/src/common/env.c
++++ b/src/common/env.c
+@@ -1941,7 +1941,7 @@ char **env_array_user_default(const char *username, int timeout, int mode,
+ 	char **env = NULL;
+ 	char *starttoken = "XXXXSLURMSTARTPARSINGHEREXXXX";
+ 	char *stoptoken  = "XXXXSLURMSTOPPARSINGHEREXXXXX";
+-	char cmdstr[256], *env_loc = NULL;
++	char cmdstr[MAXPATHLEN], *env_loc = NULL;
+ 	char *stepd_path = NULL;
+ 	int fd1, fd2, fildes[2], found, fval, len, rc, timeleft;
+ 	int buf_read, buf_rem, config_timeout;
diff --git a/pkgs/servers/computing/slurm/default.nix b/pkgs/servers/computing/slurm/default.nix
index 1554fb69f19..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, openssl, zlib
+, python3, munge, perl, pam, zlib, shadow, coreutils
 , ncurses, libmysqlclient, gtk2, lua, hwloc, numactl
-, readline, freeipmi, libssh2, xorg, lz4, rdma-core
+, readline, freeipmi, xorg, lz4, rdma-core, nixosTests
+, pmix
 # enable internal X11 support via libssh2
 , enableX11 ? true
 }:
 
 stdenv.mkDerivation rec {
   pname = "slurm";
-  version = "19.05.5.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,39 +18,50 @@ stdenv.mkDerivation rec {
     repo = "slurm";
     # The release tags use - instead of .
     rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
-    sha256 = "0f0gv3sirp6sxdrbwydsbcqicjbmrpm58yhgbsar8v6nx3g6y3hx";
+    sha256 = "071lwny7cj4idq0h03mmvkk4f4i6fgl3c5q8cvbh7z8px6k50cfp";
   };
 
   outputs = [ "out" "dev" ];
 
-  prePatch = stdenv.lib.optional enableX11 ''
+  patches = [
+    # 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 = ''
+    substituteInPlace src/common/env.c \
+        --replace "/bin/echo" "${coreutils}/bin/echo"
+  '' + (stdenv.lib.optionalString enableX11 ''
     substituteInPlace src/common/x11_util.c \
         --replace '"/usr/bin/xauth"' '"${xorg.xauth}/bin/xauth"'
-  '';
+  '');
 
   # nixos test fails to start slurmd with 'undefined symbol: slurm_job_preempt_mode'
   # https://groups.google.com/forum/#!topic/slurm-devel/QHOajQ84_Es
   # 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 openssl zlib
+    curl python3 munge perl pam zlib
       libmysqlclient ncurses gtk2 lz4 rdma-core
-      lua hwloc numactl readline freeipmi
-  ] ++ stdenv.lib.optionals enableX11 [ libssh2 xorg.xauth ];
+      lua hwloc numactl readline freeipmi shadow.su
+      pmix
+  ] ++ stdenv.lib.optionals enableX11 [ xorg.xauth ];
 
   configureFlags = with stdenv.lib;
     [ "--with-freeipmi=${freeipmi}"
       "--with-hwloc=${hwloc.dev}"
       "--with-lz4=${lz4.dev}"
       "--with-munge=${munge}"
-      "--with-ssl=${openssl.dev}"
       "--with-zlib=${zlib}"
       "--with-ofed=${rdma-core}"
       "--sysconfdir=/etc/slurm"
+      "--with-pmix=${pmix}"
     ] ++ (optional (gtk2 == null)  "--disable-gtktest")
-      ++ (optional enableX11 "--with-libssh2=${libssh2.dev}")
       ++ (optional (!enableX11) "--disable-x11");
 
 
@@ -64,6 +76,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.tests.slurm = nixosTests.slurm;
+
   meta = with stdenv.lib; {
     homepage = "http://www.schedmd.com/";
     description = "Simple Linux Utility for Resource Management";
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 dd6484344e8..196b680796c 100644
--- a/pkgs/servers/consul/default.nix
+++ b/pkgs/servers/consul/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "consul";
-  version = "1.7.3";
+  version = "1.8.0";
   rev = "v${version}";
 
   # Note: Currently only release tags are supported, because they have the Consul UI
@@ -17,7 +17,7 @@ buildGoModule rec {
     owner = "hashicorp";
     repo = pname;
     inherit rev;
-    sha256 = "05p893mfdrlf5fy9ywwnqb7blw1ffidgviyyh6a3bp82wk49f8ph";
+    sha256 = "1rmybh0piqlbsy5ihqy9cmg0vsgg9pnxiza2kia8ww4qx98nvh6y";
   };
 
   passthru.tests.consul = nixosTests.consul;
@@ -26,7 +26,11 @@ buildGoModule rec {
   # has a split module structure in one repo
   subPackages = ["." "connect/certgen"];
 
-  modSha256 = "01vyamfy9lcljzy99jmr48x0ypb12wab66n9kmj71mrvl50v8rzr";
+  vendorSha256 = "12a2x8j4kc1vi3ip0cz81k6anfwac23iqqyz00wf7wpvgxqzcxn3";
+
+  doCheck = false;
+
+  deleteVendor = true;
 
   preBuild = ''
     buildFlagsArray+=("-ldflags"
diff --git a/pkgs/servers/coturn/default.nix b/pkgs/servers/coturn/default.nix
index f50a5afa81e..c32ddecc7a3 100644
--- a/pkgs/servers/coturn/default.nix
+++ b/pkgs/servers/coturn/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "coturn";
-  version = "4.5.1.2";
+  version = "4.5.1.3";
 
   src = fetchFromGitHub {
     owner = "coturn";
     repo = "coturn";
     rev = version;
-    sha256 = "01y65az8qyv2kjnb4fj7rgl4zq5pc2b286gfn727x3hfhksx9zp2";
+    sha256 = "1801931k4qdvc7jvaqxvjyhbh1xsvjz0pjajf6xc222n4ggar1q5";
   };
 
   buildInputs = [ openssl libevent ];
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 489f2e297bb..9a05f71817c 100644
--- a/pkgs/servers/dgraph/default.nix
+++ b/pkgs/servers/dgraph/default.nix
@@ -1,35 +1,42 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "dgraph";
-  version = "1.0.17";
-
-  goPackagePath = "github.com/dgraph-io/dgraph";
+  version = "20.03.4";
 
   src = fetchFromGitHub {
     owner = "dgraph-io";
     repo = "dgraph";
     rev = "v${version}";
-    sha256 = "05z1xwbd76q49zyqahh9krvq78dgkzr22qc6srr4djds0l7y6x5i";
+    sha256 = "1i098wimzwna62q4wp8ipx8qjrmhrdv48kklm1jdi2sfiz18c9sc";
   };
 
+  vendorSha256 = "0n442nsa2whwb22dl0cjxspl8dc00rqv29zivcw9liwdzara81bw";
+
+  doCheck = false;
+
+  nativeBuildInputs = [ installShellFiles ];
+
   # see licensing
-  buildFlags = [ "-tags oss" ];
+  buildPhase = ''
+    make oss BUILD_VERSION=${version}
+  '';
 
-  goDeps = ./deps.nix;
-  subPackages = [ "dgraph"];
+  installPhase = ''
+    install dgraph/dgraph -Dt $out/bin
 
-  preBuild = ''
-    export buildFlagsArray="-ldflags=\
-      -X github.com/dgraph-io/dgraph/x.dgraphVersion=${version}"
+    for shell in bash zsh; do
+      $out/bin/dgraph completion $shell > dgraph.$shell
+      installShellCompletion dgraph.$shell
+    done
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://dgraph.io/";
     description = "Fast, Distributed Graph DB";
-    maintainers = with stdenv.lib.maintainers; [ sigma ];
-    # Apache 2.0 because we use only build tag "oss"
-    license = stdenv.lib.licenses.asl20;
-    platforms = stdenv.lib.platforms.unix;
+    maintainers = with maintainers; [ sigma ];
+    # Apache 2.0 because we use only build "oss"
+    license = licenses.asl20;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/dgraph/deps.nix b/pkgs/servers/dgraph/deps.nix
deleted file mode 100644
index 602233d635e..00000000000
--- a/pkgs/servers/dgraph/deps.nix
+++ /dev/null
@@ -1,1154 +0,0 @@
-[
-  {
-    goPackagePath = "cloud.google.com/go";
-    fetch = {
-      type = "git";
-      url = "https://code.googlesource.com/gocloud";
-      rev = "v0.34.0";
-      sha256 = "1kclgclwar3r37zbvb9gg3qxbgzkb50zk3s9778zlh2773qikmai";
-    };
-  }
-  {
-    goPackagePath = "contrib.go.opencensus.io/exporter/jaeger";
-    fetch = {
-      type = "git";
-      url = "https://github.com/census-ecosystem/opencensus-go-exporter-jaeger";
-      rev = "v0.1.0";
-      sha256 = "0dhf0fhjfk8m6zx7xys5mj51c8gxvlahi4y5fx8l7b7b56bh1rmy";
-    };
-  }
-  {
-    goPackagePath = "contrib.go.opencensus.io/exporter/prometheus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/census-ecosystem/opencensus-go-exporter-prometheus";
-      rev = "6bf73eaafbe9";
-      sha256 = "1509l1xcgp662j7rglmrs35innpbi2s0r14vj9ps6d55j42kifm0";
-    };
-  }
-  {
-    goPackagePath = "github.com/AndreasBriese/bbloom";
-    fetch = {
-      type = "git";
-      url = "https://github.com/AndreasBriese/bbloom";
-      rev = "e2d15f34fcf9";
-      sha256 = "05kkrsmpragy69bj6s80pxlm3pbwxrkkx7wgk0xigs6y2n6ylpds";
-    };
-  }
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "v0.3.1";
-      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
-    };
-  }
-  {
-    goPackagePath = "github.com/MakeNowJust/heredoc";
-    fetch = {
-      type = "git";
-      url = "https://github.com/MakeNowJust/heredoc";
-      rev = "1d91351acdc1";
-      sha256 = "0ia1r8ibqmx6zv3wmsvgkpqlhwk79z9l38nzp4gd4f1kcb46856x";
-    };
-  }
-  {
-    goPackagePath = "github.com/apache/thrift";
-    fetch = {
-      type = "git";
-      url = "https://github.com/apache/thrift";
-      rev = "v0.12.0";
-      sha256 = "0g2g61rs189nimg3631wxfwdx12dsdz70qvncczlyvn34pcj7yby";
-    };
-  }
-  {
-    goPackagePath = "github.com/armon/consul-api";
-    fetch = {
-      type = "git";
-      url = "https://github.com/armon/consul-api";
-      rev = "eb2c6b5be1b6";
-      sha256 = "1j6fdr1sg36qy4n4xjl7brq739fpm5npq98cmvklzjc9qrx98nk9";
-    };
-  }
-  {
-    goPackagePath = "github.com/beorn7/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/beorn7/perks";
-      rev = "v1.0.0";
-      sha256 = "1i1nz1f6g55xi2y3aiaz5kqfgvknarbfl4f0sx4nyyb4s7xb1z9x";
-    };
-  }
-  {
-    goPackagePath = "github.com/bgentry/speakeasy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bgentry/speakeasy";
-      rev = "v0.1.0";
-      sha256 = "02dfrj0wyphd3db9zn2mixqxwiz1ivnyc5xc7gkz58l5l27nzp8s";
-    };
-  }
-  {
-    goPackagePath = "github.com/blevesearch/bleve";
-    fetch = {
-      type = "git";
-      url = "https://github.com/blevesearch/bleve";
-      rev = "e1f5e6cdcd76";
-      sha256 = "1b2iip9vz71lqvjmj8v21sisk0z2gdsjd5v9750v3q4a3ik3x8m2";
-    };
-  }
-  {
-    goPackagePath = "github.com/blevesearch/go-porterstemmer";
-    fetch = {
-      type = "git";
-      url = "https://github.com/blevesearch/go-porterstemmer";
-      rev = "v1.0.2";
-      sha256 = "0rcfbrad79xd114h3dhy5d3zs3b5bcgqwm3h5ih1lk69zr9wi91d";
-    };
-  }
-  {
-    goPackagePath = "github.com/blevesearch/segment";
-    fetch = {
-      type = "git";
-      url = "https://github.com/blevesearch/segment";
-      rev = "762005e7a34f";
-      sha256 = "1nrm145sm0xlhqy3d12yipnb16ikjz9ykjcskmkgm7vjm47xkmfl";
-    };
-  }
-  {
-    goPackagePath = "github.com/blevesearch/snowballstem";
-    fetch = {
-      type = "git";
-      url = "https://github.com/blevesearch/snowballstem";
-      rev = "26b06a2c243d";
-      sha256 = "096wgbpb7qyx055451gam3zb26acaiazjmd58av7ykslmb7wa5gm";
-    };
-  }
-  {
-    goPackagePath = "github.com/client9/misspell";
-    fetch = {
-      type = "git";
-      url = "https://github.com/client9/misspell";
-      rev = "v0.3.4";
-      sha256 = "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs";
-    };
-  }
-  {
-    goPackagePath = "github.com/codahale/hdrhistogram";
-    fetch = {
-      type = "git";
-      url = "https://github.com/codahale/hdrhistogram";
-      rev = "3a0bb77429bd";
-      sha256 = "1zampgfjbxy192cbwdi7g86l1idxaam96d834wncnpfdwgh5kl57";
-    };
-  }
-  {
-    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/coreos/go-systemd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-systemd";
-      rev = "39ca1b05acc7";
-      sha256 = "1kzqrrzqspa5qm7kwslxl3m16lqzns23c24rv474ajzwmj3ixmx1";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/pkg";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/pkg";
-      rev = "3ac0863d7acf";
-      sha256 = "0l5ans1ls2gknkrnhymgc0zbgg5nqjbjbqc51r611adcr0m6gg8l";
-    };
-  }
-  {
-    goPackagePath = "github.com/cpuguy83/go-md2man";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cpuguy83/go-md2man";
-      rev = "v1.0.10";
-      sha256 = "1bqkf2bvy1dns9zd24k81mh2p1zxsx2nhq5cj8dz2vgkv1xkh60i";
-    };
-  }
-  {
-    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/dgraph-io/badger";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgraph-io/badger";
-      rev = "v1.6.0";
-      sha256 = "1vzibjqhb10q6s2chbzlwndij2d9ybjnq7h28hx4akr119avd0d5";
-    };
-  }
-  {
-    goPackagePath = "github.com/dgraph-io/dgo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgraph-io/dgo";
-      rev = "f8969c1ddf8f";
-      sha256 = "08ycdpxry15r9vgaqrqxcdbw8z216asqarhxq76smi5a82mr56qa";
-    };
-  }
-  {
-    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/dgryski/go-farm";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgryski/go-farm";
-      rev = "6a90982ecee2";
-      sha256 = "1x3l4jgps0v1bjvd446kj4dp0ckswjckxgrng9afm275ixnf83ix";
-    };
-  }
-  {
-    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/fatih/color";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fatih/color";
-      rev = "v1.7.0";
-      sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv";
-    };
-  }
-  {
-    goPackagePath = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "github.com/ghodss/yaml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ghodss/yaml";
-      rev = "25d852aebe32";
-      sha256 = "1w9yq0bxzygc4qwkwwiy7k1k1yviaspcqqv18255k2xkjv5ipccz";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-ini/ini";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-ini/ini";
-      rev = "v1.39.0";
-      sha256 = "0j7pyl5v7xfzkhsyz193iq56ilan69pp11g2n5jw1k4h4g8s4k9b";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-kit/kit";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-kit/kit";
-      rev = "v0.8.0";
-      sha256 = "1rcywbc2pvab06qyf8pc2rdfjv7r6kxdv2v4wnpqnjhz225wqvc0";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-logfmt/logfmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-logfmt/logfmt";
-      rev = "v0.4.0";
-      sha256 = "06smxc112xmixz78nyvk3b2hmc7wasf2sl5vxj1xz62kqcq9lzm9";
-    };
-  }
-  {
-    goPackagePath = "github.com/gogo/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gogo/protobuf";
-      rev = "v1.2.0";
-      sha256 = "1c3y5m08mvrgvlw0kb9pldh3kkqcj99pa8gqmk1g3hp8ih3b2dv0";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/geo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/geo";
-      rev = "31fb0106dc4a";
-      sha256 = "00w4kwm98hrgr3ggfdk1h7qa5gp00z4s0j0iwgwd9rgadb59kb2c";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/glog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/glog";
-      rev = "23def4e6c14b";
-      sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/groupcache";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/groupcache";
-      rev = "02826c3e7903";
-      sha256 = "0w46bsllddfij66nrg8jbfjsr54birvfww8a2fj9fmgyig5syn2x";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/mock";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/mock";
-      rev = "v1.1.1";
-      sha256 = "0ap8wb6pdl6ccmdb43advjll2ly4sz26wsc3axw0hbrjrybybzgy";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "v1.3.2";
-      sha256 = "1k1wb4zr0qbwgpvz9q5ws9zhlal8hq7dmq62pwxxriksayl6hzym";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/btree";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/btree";
-      rev = "e89373fe6b4a";
-      sha256 = "0jlkjjlf8ilifgsb2bv0jfgl4cxl1bypx7a6pjkwz3xf6k8jd7mj";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/codesearch";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/codesearch";
-      rev = "v1.0.0";
-      sha256 = "12bv3yz0l3bmsxbasfgv7scm9j719ch6pmlspv4bd4ix7wjpyhny";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/go-cmp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-cmp";
-      rev = "v0.3.0";
-      sha256 = "1hyxx3434zshl2m9ja78gwlkg1rx9yl6diqa7dnjb31xz5x4gbjj";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/uuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/uuid";
-      rev = "v1.0.0";
-      sha256 = "1922bjrnx66692dm0rrc1ckmznsaqx920ww4jzsds3xzrwf15mqv";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/websocket";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/websocket";
-      rev = "4201258b820c";
-      sha256 = "1kpdg3m46kp15ixl9ahhchhadyiblz0qpcxzylp8jhffc1rnxjb7";
-    };
-  }
-  {
-    goPackagePath = "github.com/grpc-ecosystem/go-grpc-middleware";
-    fetch = {
-      type = "git";
-      url = "https://github.com/grpc-ecosystem/go-grpc-middleware";
-      rev = "f849b5445de4";
-      sha256 = "0hscypgj0nd1407jp6y4qrnrr0mrhc4wgxz9b3mj1cs3pkvi61vc";
-    };
-  }
-  {
-    goPackagePath = "github.com/grpc-ecosystem/go-grpc-prometheus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/grpc-ecosystem/go-grpc-prometheus";
-      rev = "v1.2.0";
-      sha256 = "1lzk54h7np32b3acidg1ggbn8ppbnns0m71gcg9d1qkkdh8zrijl";
-    };
-  }
-  {
-    goPackagePath = "github.com/grpc-ecosystem/grpc-gateway";
-    fetch = {
-      type = "git";
-      url = "https://github.com/grpc-ecosystem/grpc-gateway";
-      rev = "v1.4.1";
-      sha256 = "0lqpwwyhgw12iw2pfynb8wb06dqfj26rr55sh1v02nvrxbpzfp0a";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/golang-lru";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/golang-lru";
-      rev = "v0.5.0";
-      sha256 = "12k2cp2k615fjvfa5hyb9k2alian77wivds8s65diwshwv41939f";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/hcl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/hcl";
-      rev = "v1.0.0";
-      sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66";
-    };
-  }
-  {
-    goPackagePath = "github.com/hpcloud/tail";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hpcloud/tail";
-      rev = "v1.0.0";
-      sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0";
-    };
-  }
-  {
-    goPackagePath = "github.com/inconshreveable/mousetrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/inconshreveable/mousetrap";
-      rev = "v1.0.0";
-      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
-    };
-  }
-  {
-    goPackagePath = "github.com/jonboulle/clockwork";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jonboulle/clockwork";
-      rev = "v0.1.0";
-      sha256 = "1pqxhsdavbp1n5grgyx2j6ylvql2fzn2cvpsgkc8li69dil7sibl";
-    };
-  }
-  {
-    goPackagePath = "github.com/json-iterator/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/json-iterator/go";
-      rev = "v1.1.6";
-      sha256 = "08caswxvdn7nvaqyj5kyny6ghpygandlbw9vxdj7l5vkp7q0s43r";
-    };
-  }
-  {
-    goPackagePath = "github.com/julienschmidt/httprouter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/julienschmidt/httprouter";
-      rev = "v1.2.0";
-      sha256 = "1k8bylc9s4vpvf5xhqh9h246dl1snxrzzz0614zz88cdh8yzs666";
-    };
-  }
-  {
-    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/logfmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/logfmt";
-      rev = "b84e30acd515";
-      sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pty";
-      rev = "v1.0.0";
-      sha256 = "1c8xbp4d4fbmvml70nc7w3jii2fxv4q0141d2zmzi480d5h8xvrv";
-    };
-  }
-  {
-    goPackagePath = "github.com/magiconair/properties";
-    fetch = {
-      type = "git";
-      url = "https://github.com/magiconair/properties";
-      rev = "v1.8.0";
-      sha256 = "1a10362wv8a8qwb818wygn2z48lgzch940hvpv81hv8gc747ajxn";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-colorable";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-colorable";
-      rev = "v0.0.9";
-      sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-isatty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-isatty";
-      rev = "v0.0.4";
-      sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-runewidth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-runewidth";
-      rev = "v0.0.2";
-      sha256 = "0vkrfrz3fzn5n6ix4k8s0cg0b448459sldq8bp4riavsxm932jzb";
-    };
-  }
-  {
-    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matttproud/golang_protobuf_extensions";
-      rev = "v1.0.1";
-      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
-    };
-  }
-  {
-    goPackagePath = "github.com/minio/minio-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/minio/minio-go";
-      rev = "774475480ffe";
-      sha256 = "1rnzvij1cnqb3brwpyv79bdbaa1sgygyw1x84376fli2pj0n3572";
-    };
-  }
-  {
-    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/modern-go/concurrent";
-    fetch = {
-      type = "git";
-      url = "https://github.com/modern-go/concurrent";
-      rev = "bacd9c7ef1dd";
-      sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs";
-    };
-  }
-  {
-    goPackagePath = "github.com/modern-go/reflect2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/modern-go/reflect2";
-      rev = "v1.0.1";
-      sha256 = "06a3sablw53n1dqqbr2f53jyksbxdmmk8axaas4yvnhyfi55k4lf";
-    };
-  }
-  {
-    goPackagePath = "github.com/mwitkow/go-conntrack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mwitkow/go-conntrack";
-      rev = "cc309e4a2223";
-      sha256 = "0nbrnpk7bkmqg9mzwsxlm0y8m7s9qd9phr1q30qlx2qmdmz7c1mf";
-    };
-  }
-  {
-    goPackagePath = "github.com/olekukonko/tablewriter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/olekukonko/tablewriter";
-      rev = "a0225b3f23b5";
-      sha256 = "0bp9r6xzy6d3p7l2hjmvr25y3rp3p8c9xv1agkllkksm45ng6681";
-    };
-  }
-  {
-    goPackagePath = "github.com/onsi/ginkgo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/onsi/ginkgo";
-      rev = "v1.7.0";
-      sha256 = "14wgpdrvpc35rdz3859bz53sc1g4vpr1fysy15wy3ff9gmqs14yg";
-    };
-  }
-  {
-    goPackagePath = "github.com/onsi/gomega";
-    fetch = {
-      type = "git";
-      url = "https://github.com/onsi/gomega";
-      rev = "v1.4.3";
-      sha256 = "1c8rqg5i2hz3snmq7s41yar1zjnzilb0fyiyhkg83v97afcfx79v";
-    };
-  }
-  {
-    goPackagePath = "github.com/paulmach/go.geojson";
-    fetch = {
-      type = "git";
-      url = "https://github.com/paulmach/go.geojson";
-      rev = "40612a87147b";
-      sha256 = "037j7apv0jljhvn6vk85nhy0ql862nxr5zbmi6a30qdfclrf2q4k";
-    };
-  }
-  {
-    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.8.1";
-      sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1";
-    };
-  }
-  {
-    goPackagePath = "github.com/pkg/profile";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/profile";
-      rev = "v1.2.1";
-      sha256 = "0blqmvgqvdbqmh3fp9pfdxc9w1qfshrr0zy9whj0sn372bw64qnr";
-    };
-  }
-  {
-    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/prometheus/client_golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_golang";
-      rev = "v1.0.0";
-      sha256 = "1f03ndyi3jq7zdxinnvzimz3s4z2374r6dikkc8i42xzb6d1bli6";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "fd36f4220a90";
-      sha256 = "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/common";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/common";
-      rev = "v0.6.0";
-      sha256 = "1q16br348117ffycxdwsldb0i39p34miclfa8z93k6vjwnrqbh2l";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "v0.0.2";
-      sha256 = "0s7pvs7fgnfpmym3cd0k219av321h9sf3yvdlnn3qy0ps280lg7k";
-    };
-  }
-  {
-    goPackagePath = "github.com/russross/blackfriday";
-    fetch = {
-      type = "git";
-      url = "https://github.com/russross/blackfriday";
-      rev = "v1.5.2";
-      sha256 = "0jzbfzcywqcrnym4gxlz6nphmm1grg6wsl4f0r9x384rn83wkj7c";
-    };
-  }
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev = "v1.2.0";
-      sha256 = "0r6334x2bls8ddznvzaldx4g88msjjns4mlks95rqrrg7h0ijigg";
-    };
-  }
-  {
-    goPackagePath = "github.com/soheilhy/cmux";
-    fetch = {
-      type = "git";
-      url = "https://github.com/soheilhy/cmux";
-      rev = "v0.1.4";
-      sha256 = "1f736g68d9vwlyfb6g0fxkr0r875369xafk30cz8kaq5niaqwv0h";
-    };
-  }
-  {
-    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.5";
-      sha256 = "0z4x8js65mhwg1gf6sa865pdxfgn45c3av9xlcc1l3xjvcnx32v2";
-    };
-  }
-  {
-    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.2";
-      sha256 = "1829hvf805kda65l59r17wvid7y0vr390s23zfhf4w7vdb4wp3zh";
-    };
-  }
-  {
-    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.3.0";
-      sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy";
-    };
-  }
-  {
-    goPackagePath = "github.com/tmc/grpc-websocket-proxy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tmc/grpc-websocket-proxy";
-      rev = "89b8d40f7ca8";
-      sha256 = "1bg6m0cycy5sww175zkbnhi9lvzb08iicc8xka8klrgaa9mc5nsk";
-    };
-  }
-  {
-    goPackagePath = "github.com/twpayne/go-geom";
-    fetch = {
-      type = "git";
-      url = "https://github.com/twpayne/go-geom";
-      rev = "6753ad11e46b";
-      sha256 = "0qyrdnp7j7lmj0qb0p7k45m757zvbwn78s1apiy46zfnb5415df1";
-    };
-  }
-  {
-    goPackagePath = "github.com/ugorji/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ugorji/go";
-      rev = "e444a5086c43";
-      sha256 = "1ri318sf41fdzhj186dg96pixvlhmk1255ymccc9zfayy3z6li3h";
-    };
-  }
-  {
-    goPackagePath = "github.com/urfave/cli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/urfave/cli";
-      rev = "v1.20.0";
-      sha256 = "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj";
-    };
-  }
-  {
-    goPackagePath = "github.com/willf/bitset";
-    fetch = {
-      type = "git";
-      url = "https://github.com/willf/bitset";
-      rev = "71fa2377963f";
-      sha256 = "092lpf2qm3zyvm35inam4b7y3kjpvpx7ylkgn31x6wbxfbamp37a";
-    };
-  }
-  {
-    goPackagePath = "github.com/xiang90/probing";
-    fetch = {
-      type = "git";
-      url = "https://github.com/xiang90/probing";
-      rev = "43a291ad63a2";
-      sha256 = "1z22ms16j5j42775mf31isanwx2pwr1d8wqw8006dczjv36qnz5i";
-    };
-  }
-  {
-    goPackagePath = "github.com/xordataexchange/crypt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/xordataexchange/crypt";
-      rev = "b2862e3d0a77";
-      sha256 = "04q3856anpzl4gdfgmg7pbp9cx231nkz3ymq2xp27rnmmwhfxr8y";
-    };
-  }
-  {
-    goPackagePath = "go.etcd.io/bbolt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/etcd-io/bbolt";
-      rev = "v1.3.2";
-      sha256 = "13d5l6p6c5wvkr6vn9hkhz9c593qifn7fgx0hg4d6jcvg1y0bnm2";
-    };
-  }
-  {
-    goPackagePath = "go.etcd.io/etcd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/etcd-io/etcd";
-      rev = "a943ad0ee4c9";
-      sha256 = "1p0s383qw7rdcg2zs5ysk70dkjhpyyqn2qgqgbxdvrv5cjgna1hm";
-    };
-  }
-  {
-    goPackagePath = "go.opencensus.io";
-    fetch = {
-      type = "git";
-      url = "https://github.com/census-instrumentation/opencensus-go";
-      rev = "v0.21.0";
-      sha256 = "14s0a12xdzjvad0dgksgv8m3hh7nc585abvjkvyk6r67a29lxj6x";
-    };
-  }
-  {
-    goPackagePath = "go.uber.org/atomic";
-    fetch = {
-      type = "git";
-      url = "https://github.com/uber-go/atomic";
-      rev = "v1.3.2";
-      sha256 = "11pzvjys5ddjjgrv94pgk9pnip9yyb54z7idf33zk7p7xylpnsv6";
-    };
-  }
-  {
-    goPackagePath = "go.uber.org/multierr";
-    fetch = {
-      type = "git";
-      url = "https://github.com/uber-go/multierr";
-      rev = "v1.1.0";
-      sha256 = "1slfc6syvw8cvr6rbrjsy6ja5w8gsx0f8aq8qm16rp2x5c2pj07w";
-    };
-  }
-  {
-    goPackagePath = "go.uber.org/zap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/uber-go/zap";
-      rev = "v1.9.1";
-      sha256 = "19a1i6fipqj8w7h6qjmg1sfbg18yzzqsgfn0vmr55hkgc0y6nmny";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "c2843e01d9a2";
-      sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/exp";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/exp";
-      rev = "509febef88a4";
-      sha256 = "02isrh39z8znrp5znplzy0dip2gnrl3jm1355raliyvhnhg04j6q";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/lint";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/lint";
-      rev = "5614ed5bae6f";
-      sha256 = "0fzn0zjv0x92xvfdq3a0v9w5sgkhr7hxkfy9zaqi8i57807z8bnx";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "da137c7871d7";
-      sha256 = "1qsiyr3irmb6ii06hivm9p2c7wqyxczms1a9v1ss5698yjr3fg47";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/oauth2";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/oauth2";
-      rev = "e64efc72b421";
-      sha256 = "0djvwz2avx7knsjbl434vw1wqbrg53xp1kh599gfixn5icrggz4m";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "e225da77a7e6";
-      sha256 = "0bh3583smcfw6jw3w6lp0za93rz7hpxfdz8vhxng75b7a6vdlw4p";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "04f50cda93cb";
-      sha256 = "0hmfsz9y1ingwsn482hlzzmzs7kr3cklm0ana0mbdk70isw2bxnw";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.0";
-      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/time";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/time";
-      rev = "fbb02b2291d2";
-      sha256 = "0jjqcv6rzihlgg4i797q80g1f6ch5diz2kxqh6488gwkb6nds4h4";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "e65039ee4138";
-      sha256 = "0c094599cf70wdrms49a3879qkq122pqlp2av444gs2pvc8apdcx";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/api";
-    fetch = {
-      type = "git";
-      url = "https://code.googlesource.com/google-api-go-client";
-      rev = "v0.3.2";
-      sha256 = "1x1nbsd3gjgmv833gpgq79m5d15p31k1dfn8gglkvjanjiin747j";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/appengine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/appengine";
-      rev = "v1.4.0";
-      sha256 = "06zl7w4sxgdq2pl94wy9ncii6h0z3szl4xpqds0sv3b3wbdlhbnn";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/genproto";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-genproto";
-      rev = "5fe7a883aa19";
-      sha256 = "0qjkwig0r42q0j2qv57s4ahsgmmp41dz3ih3rnaqg0619n5w7lbs";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/grpc";
-    fetch = {
-      type = "git";
-      url = "https://github.com/grpc/grpc-go";
-      rev = "v1.19.0";
-      sha256 = "1znqwpj7ix3dpzx4zch0q70sdl3z5lvbb7v3q4i8sf8kas3yv71v";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/airbrake/gobrake.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/airbrake/gobrake.v2";
-      rev = "v2.0.9";
-      sha256 = "1x06f7n7qlyzqgyz0sdfcidf3w4ldn6zs6qx2mhibggk2z4whcjw";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "v2.2.6";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "20d25e280405";
-      sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/cheggaaa/pb.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/cheggaaa/pb.v1";
-      rev = "v1.0.25";
-      sha256 = "0vxqiw6f3xyv0zy3g4lksf8za0z8i0hvfpw92hqimsy84f79j3dp";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/fsnotify.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/fsnotify.v1";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/gemnasium/logrus-airbrake-hook.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/gemnasium/logrus-airbrake-hook.v2";
-      rev = "v2.1.2";
-      sha256 = "0sbg0dn6cysmf8f2bi209jwl4jnpiwp4rdghnxlzirw3c32ms5y5";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/tomb.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/tomb.v1";
-      rev = "dd632973f1e7";
-      sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.2";
-      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
-    };
-  }
-  {
-    goPackagePath = "honnef.co/go/tools";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dominikh/go-tools";
-      rev = "c2f93a96b099";
-      sha256 = "07lg29aiap80ca9f201jzng9vjr168cv3qmvjmbd7v5pmww9kmr8";
-    };
-  }
-]
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/bind/default.nix b/pkgs/servers/dns/bind/default.nix
index b641699c733..2aae5634cc5 100644
--- a/pkgs/servers/dns/bind/default.nix
+++ b/pkgs/servers/dns/bind/default.nix
@@ -10,11 +10,11 @@ assert enablePython -> python3 != null;
 
 stdenv.mkDerivation rec {
   pname = "bind";
-  version = "9.14.11";
+  version = "9.14.12";
 
   src = fetchurl {
     url = "https://ftp.isc.org/isc/bind9/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1v4y9308w0gd98gjzni4cgxmh8g1s37lbnnkyhsn70xs3xki5b4c";
+    sha256 = "1j7ldvdschmvzxrbajjhmdsl2iqxc1lm64vk0a5sdykxpy9y8kcw";
   };
 
   outputs = [ "out" "lib" "dev" "man" "dnsutils" "host" ];
@@ -54,7 +54,8 @@ stdenv.mkDerivation rec {
     "--without-eddsa"
     "--with-aes"
   ] ++ lib.optional stdenv.isLinux "--with-libcap=${libcap.dev}"
-    ++ lib.optional enableSeccomp "--enable-seccomp";
+    ++ lib.optional enableSeccomp "--enable-seccomp"
+    ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "BUILD_CC=$(CC_FOR_BUILD)";
 
   postInstall = ''
     moveToOutput bin/bind9-config $dev
diff --git a/pkgs/servers/dns/coredns/default.nix b/pkgs/servers/dns/coredns/default.nix
index cbf29b5d7c7..981056b53c1 100644
--- a/pkgs/servers/dns/coredns/default.nix
+++ b/pkgs/servers/dns/coredns/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "coredns";
-  version = "1.6.9";
-
-  goPackagePath = "github.com/coredns/coredns";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "coredns";
     repo = "coredns";
     rev = "v${version}";
-    sha256 = "18c02ss0sxxg8lkhdmyaac2x5alfxsizf6jqhck8bqkf6hiyv5hc";
+    sha256 = "1wayfr26gwgdl0sfrvskb4hkxfmxfy7idbrpw3z4r05fkr2886xj";
   };
 
-  modSha256 = "07mlprwa37s6qpg5wvpljbvkiqcvrcljr27qsdwz49wldhdp6im6";
+  vendorSha256 = "17znl3vkg73hnrfl697rw201nsd5sijgalnbkljk1b4m0a01zik1";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     homepage = "https://coredns.io";
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 d76b51bcc66..6a602883b35 100644
--- a/pkgs/servers/dns/knot-dns/default.nix
+++ b/pkgs/servers/dns/knot-dns/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, gnutls, liburcu, lmdb, libcap_ng, libidn2, libunistring
-, systemd, nettle, libedit, zlib, libiconv, libintl
+, systemd, nettle, libedit, zlib, libiconv, libintl, libmaxminddb
 , autoreconfHook
 }:
 
@@ -8,11 +8,11 @@ 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.4";
+  version = "2.9.5";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
-    sha256 = "57f3c93a1b40dfa0431508203f559b7ea257afab79078c38bcddf960d5a4a501";
+    sha256 = "1109a8ba212ff8ddfdbaf44a6f8fc13a2b880a98a9e54c19112ba72a1aacbf76";
   };
 
   outputs = [ "bin" "out" "dev" ];
@@ -34,6 +34,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/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix
index 4964755332d..3466fb776f0 100644
--- a/pkgs/servers/dns/knot-resolver/default.nix
+++ b/pkgs/servers/dns/knot-resolver/default.nix
@@ -16,11 +16,11 @@ lua = luajitPackages;
 
 unwrapped = stdenv.mkDerivation rec {
   pname = "knot-resolver";
-  version = "5.1.0";
+  version = "5.1.2";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-resolver/${pname}-${version}.tar.xz";
-    sha256 = "9ab179d1dccc6ba59aacac81a4cd10a039615c7a846d9f77f26b851da25d1a86";
+    sha256 = "caa4f941caf39080184554fb1310f383eba4b30d9c4c2215670d6b0a2de8f836";
   };
 
   outputs = [ "out" "dev" ];
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 43c2900443e..2dfdf108c4f 100644
--- a/pkgs/servers/dns/nsd/default.nix
+++ b/pkgs/servers/dns/nsd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libevent, openssl
+{ stdenv, fetchurl, libevent, openssl, nixosTests
 , bind8Stats       ? false
 , checking         ? false
 , ipv6             ? true
@@ -11,16 +11,16 @@
 , rrtypes          ? false
 , zoneStats        ? false
 
-, configFile ? "etc/nsd/nsd.conf"
+, configFile ? "/etc/nsd/nsd.conf"
 }:
 
 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 = ''
@@ -52,6 +52,10 @@ stdenv.mkDerivation rec {
     sed 's@$(INSTALL_DATA) nsd.conf.sample $(DESTDIR)$(nsdconfigfile).sample@@g' -i Makefile.in
   '';
 
+  passthru.tests = {
+    inherit (nixosTests) nsd;
+  };
+
   meta = with stdenv.lib; {
     homepage = "http://www.nlnetlabs.nl";
     description = "Authoritative only, high performance, simple and open source name server";
diff --git a/pkgs/servers/dns/pdns-recursor/default.nix b/pkgs/servers/dns/pdns-recursor/default.nix
index 7d6fa7d9c91..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.0";
+  version = "4.3.3";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/pdns-recursor-${version}.tar.bz2";
-    sha256 = "13v2iah7z10wc43v9agcjrzi3wds4jna8f0b7ph35nyzhzr31h9b";
+    sha256 = "020mx8mh6zrixkhsc2p1c2ccl9zfypay988jjxbk6ql020flig0b";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/servers/documize-community/default.nix b/pkgs/servers/documize-community/default.nix
index f6a44c9193d..09c511b4d6f 100644
--- a/pkgs/servers/documize-community/default.nix
+++ b/pkgs/servers/documize-community/default.nix
@@ -2,27 +2,32 @@
 
 buildGoModule rec {
   pname = "documize-community";
-  version = "3.7.0";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "documize";
     repo = "community";
     rev = "v${version}";
-    sha256 = "1pcldf9lqvpb2h2a3kr3mahj2v1jasjwrszj6czjmkyml7x2sz7c";
+    sha256 = "0jrqab0c2nnw8632g1f6zll3dycn7xyk01ycmn969i5qxx70am50";
   };
 
-  modSha256 = "1z0v7n8klaxcqv7mvzf3jzgrp78zb4yiibx899ppk6i5qnj4xiv0";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   nativeBuildInputs = [ go-bindata go-bindata-assetfs ];
 
-  subPackages = [ "edition/community.go" ];
+  # This is really weird, but they've managed to screw up
+  # their folder structure enough, you can only build by
+  # literally cding into this folder.
+  preBuild = "cd edition";
+
+  subPackages = [ "." ];
 
   passthru.tests = { inherit (nixosTests) documize; };
 
   postInstall = ''
-    # `buildGoModule` calls `go install` (without `go build` first), so
-    # `-o bin/documize` doesn't work.
-    mv $out/bin/community $out/bin/documize
+    mv $out/bin/edition $out/bin/documize
   '';
 
   meta = with lib; {
diff --git a/pkgs/servers/echoip/default.nix b/pkgs/servers/echoip/default.nix
index a8f9ad8a912..745cf96df46 100644
--- a/pkgs/servers/echoip/default.nix
+++ b/pkgs/servers/echoip/default.nix
@@ -11,7 +11,9 @@ buildGoModule {
     sha256 = "17gkh1qfxasvxy25lmjdwk5fsjkcp7lmw9si3xzf01m7qnj5zi4b";
   };
 
-  modSha256 = "025p891klwpid5fw4z39fimgfkwgkcwqpn5276hflzdp1hfv35ly";
+  vendorSha256 = "0vvs717pl5gzggxpbn2vkyxmpiw5zjdfnpbh8i81xidbqvlnm22h";
+
+  doCheck = false;
 
   outputs = [ "out" "index" ];
 
diff --git a/pkgs/servers/etcd/3.4.nix b/pkgs/servers/etcd/3.4.nix
new file mode 100644
index 00000000000..be52b1bf1a5
--- /dev/null
+++ b/pkgs/servers/etcd/3.4.nix
@@ -0,0 +1,36 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "etcd";
+  version = "3.4.13";
+
+  deleteVendor = true;
+  vendorSha256 = "0jlnh4789xa2dhbyp33k9r278kc588ykggamnnfqivb27s2646bc";
+
+  doCheck = false;
+
+  src = fetchFromGitHub {
+    owner = "etcd-io";
+    repo = "etcd";
+    rev = "v${version}";
+    sha256 = "0bvky593241i60qf6793sxzsxwfl3f56cgscnva9f2jfhk157wmy";
+  };
+
+  buildPhase = ''
+    patchShebangs .
+    ./build
+    ./functional/build
+  '';
+
+  installPhase = ''
+    install -Dm755 bin/* bin/functional/cmd/* -t $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Distributed reliable key-value store for the most critical data of a distributed system";
+    license = licenses.asl20;
+    homepage = "https://etcd.io/";
+    maintainers = with maintainers; [ offline zowoq ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/etcd/default.nix b/pkgs/servers/etcd/default.nix
index bdb4b4883da..4c0df659f3e 100644
--- a/pkgs/servers/etcd/default.nix
+++ b/pkgs/servers/etcd/default.nix
@@ -2,16 +2,15 @@
 
 buildGoPackage rec {
   pname = "etcd";
-  version = "3.3.20";
+  version = "3.3.22";
 
-  # change to "go.etcd.io/etcd" for >= 3.4
   goPackagePath = "github.com/coreos/etcd";
 
   src = fetchFromGitHub {
     owner = "etcd-io";
     repo = "etcd";
     rev = "v${version}";
-    sha256 = "1iqq12kkky3cl28k7fabqqyx1i0a2wmbkq0bs8yhiwywp076k08w";
+    sha256 = "1rd390qfx9k20j9gh1wp1g9ygc571f2kv1dg2wvqij3kwydhymcj";
   };
 
   buildPhase = ''
@@ -34,7 +33,7 @@ buildGoPackage rec {
     description = "Distributed reliable key-value store for the most critical data of a distributed system";
     license = licenses.asl20;
     homepage = "https://etcd.io/";
-    maintainers = with maintainers; [ offline ];
+    maintainers = with maintainers; [ offline zowoq ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/fcgiwrap/default.nix b/pkgs/servers/fcgiwrap/default.nix
index cd4d3116213..a15e1c15b15 100644
--- a/pkgs/servers/fcgiwrap/default.nix
+++ b/pkgs/servers/fcgiwrap/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     description = "Simple server for running CGI applications over FastCGI";
     maintainers = with maintainers; [ lethalman ];
     platforms = with platforms; linux;
+    license = licenses.mit;
   };
 }
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 ff59ad53ed1..9f28a89f51e 100644
--- a/pkgs/servers/gobetween/default.nix
+++ b/pkgs/servers/gobetween/default.nix
@@ -2,22 +2,25 @@
 
 buildGoModule rec {
   pname = "gobetween";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "yyyar";
     repo = "gobetween";
     rev = version;
-    sha256 = "f01593509ccece063acd47002c4fc52261fbbbcdbf14b088d813b7d8e38fcca8";
+    sha256 = "0bxf89l53sqan9qq23rwawjkcanv9p61sw56zjqhyx78f0bh0zbc";
   };
 
-  modSha256 =
-    "dd91838d20c99c73447590e43edd13c87755276f17ef3e53f24c5df3d0908f78";
+  patches = [
+    ./gomod.patch
+  ];
 
   buildPhase = ''
-    make build${lib.optionalString enableStatic "-static"}
+    make -e build${lib.optionalString enableStatic "-static"}
   '';
 
+  vendorSha256 = "1nkni9ikpc0wngh5v0qmlpn5s9v85lb2ih22f3h3lih7nc29yv87";
+
   installPhase = ''
     mkdir -p $out/bin
     cp bin/gobetween $out/bin
diff --git a/pkgs/servers/gobetween/gomod.patch b/pkgs/servers/gobetween/gomod.patch
new file mode 100644
index 00000000000..2f0fb408061
--- /dev/null
+++ b/pkgs/servers/gobetween/gomod.patch
@@ -0,0 +1,13 @@
+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/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/gortr/default.nix b/pkgs/servers/gortr/default.nix
index 35c6e145243..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.1";
+  version = "0.14.6";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = pname;
     rev = "v${version}";
-    sha256 = "03wxlras2akk2ig8sxzs89nvbc6zr2kbcmjlqldjdfhs1rcg82ra";
+    sha256 = "1z1z4xl39qmd7df1zb2wsd2ycxr4aa9g23sfgp3ws4lhy5d6hyxw";
   };
-  modSha256 = "157dpalfz3z1s3mxq63xy6lrkwzyy9xzmvn7wsxkwznjq4djv1a1";
+  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;
   };
 }
diff --git a/pkgs/servers/gotify/default.nix b/pkgs/servers/gotify/default.nix
index 8c358154e8c..88617d0cd8b 100644
--- a/pkgs/servers/gotify/default.nix
+++ b/pkgs/servers/gotify/default.nix
@@ -21,7 +21,9 @@ buildGoModule rec {
     sha256 = import ./source-sha.nix;
   };
 
-  modSha256 = import ./mod-sha.nix;
+  vendorSha256 = import ./vendor-sha.nix;
+
+  doCheck = false;
 
   postPatch = ''
     substituteInPlace app.go \
@@ -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/mod-sha.nix b/pkgs/servers/gotify/mod-sha.nix
deleted file mode 100644
index f115be8e1a7..00000000000
--- a/pkgs/servers/gotify/mod-sha.nix
+++ /dev/null
@@ -1 +0,0 @@
-"0zpdbj8a0akhzi1ian8zs6y7ymhlpcfy13q64xdlwc5w0286554r"
\ No newline at end of file
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/update.sh b/pkgs/servers/gotify/update.sh
index e26ffbde62e..dc39a15be73 100755
--- a/pkgs/servers/gotify/update.sh
+++ b/pkgs/servers/gotify/update.sh
@@ -11,9 +11,9 @@ echo got version $version
 echo \""${version#v}"\" > "$dirname/version.nix"
 printf '%s' $(nix-prefetch-git --quiet --rev ${version} https://github.com/gotify/server | jq .sha256) > $dirname/source-sha.nix
 tput setaf 1
-echo zeroing modSha256 in $dirname/mod-sha.nix
+echo zeroing vendorSha256 in $dirname/vendor-sha.nix
 tput sgr0
-printf '"%s"' "0000000000000000000000000000000000000000000000000000" > $dirname/mod-sha.nix
+printf '"%s"' "0000000000000000000000000000000000000000000000000000" > $dirname/vendor-sha.nix
 
 GOTIFY_WEB_SRC="https://raw.githubusercontent.com/gotify/server/$version"
 
@@ -28,13 +28,13 @@ echo removed yarn.lock
 
 echo running nix-build for ui
 nix-build -A gotify-server.ui
-echo running nix-build for gotify itself in order to get modSha256
+echo running nix-build for gotify itself in order to get vendorSha256
 set +e
-modSha256="$(nix-build -A gotify-server 2>&1 | grep "got:" | cut -d':' -f3)"
+vendorSha256="$(nix-build -A gotify-server 2>&1 | grep "got:" | cut -d':' -f3)"
 set -e
-printf '"%s"' "$modSha256" > $dirname/mod-sha.nix
+printf '"%s"' "$vendorSha256" > $dirname/vendor-sha.nix
 tput setaf 2
-echo got modSha256 of: $modSha256
+echo got vendorSha256 of: $vendorSha256
 tput sgr0
 echo running nix-build -A gotify-server which should build gotify-server normally
 nix-build -A gotify-server
diff --git a/pkgs/servers/gotify/vendor-sha.nix b/pkgs/servers/gotify/vendor-sha.nix
new file mode 100644
index 00000000000..e8f40372339
--- /dev/null
+++ b/pkgs/servers/gotify/vendor-sha.nix
@@ -0,0 +1 @@
+"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 4d66e666ed5..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
   ];
@@ -98,7 +98,7 @@ stdenv.mkDerivation rec {
       location-aware applications GPS/AIS logs for diagnostic purposes.
     '';
     homepage = "http://catb.org/gpsd/";
-    license = "BSD-style";
+    license = licenses.bsd3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ bjornfor rasendubi ];
   };
diff --git a/pkgs/servers/hashi-ui/default.nix b/pkgs/servers/hashi-ui/default.nix
index 019a8dca3b6..70926e37739 100644
--- a/pkgs/servers/hashi-ui/default.nix
+++ b/pkgs/servers/hashi-ui/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     description = "A modern user interface for hashicorp Consul & Nomad";
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ numkem ];
+    license = licenses.mit;
   };
 }
diff --git a/pkgs/servers/hasura/cli.nix b/pkgs/servers/hasura/cli.nix
index f19ffe12f5d..88b6b418dd9 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" ];
 
-  modSha256 = "0bpb9r0n8n8c1p8sas3qanhvqw45rq8kygb4dmkfhj3d9vlgn6d2";
+  vendorSha256 = "0a3mlkl00r680v8x3hy24ykggq5qm7k3101krlyfrb5y4karp75a";
+
+  doCheck = false;
 
   buildFlagsArray = [''-ldflags=
     -X github.com/hasura/graphql-engine/cli/version.BuildVersion=${version}
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 e1cf8ada016..00000000000
--- a/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 55cb3ba4458bd43588e7921906d091d001130ab0 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
-Date: Thu, 9 Apr 2020 07:20:46 +0100
-Subject: [PATCH] setup.py: relax dependencies
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
----
- setup.py | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 0c56e89b67..ba04546130 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",
-+    "attrs>=19.3.0",
-     "bcrypt==3.1.7",
--    "certifi>=2020.4.5.1",
-+    "certifi>=2019.11.28",
-     "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",
-+    "cryptography>=2.9",
-     "pip>=8.0.3",
-     "python-slugify==4.0.0",
-     "pytz>=2019.03",
--    "pyyaml==5.3.1",
--    "requests==2.23.0",
--    "ruamel.yaml==0.15.100",
-+    "pyyaml>=5.2",
-+    "requests>=2.22",
-+    "ruamel.yaml>=0.15.100",
-     "voluptuous==0.11.7",
-     "voluptuous-serialize==2.3.0",
- ]
--- 
-2.26.1
-
diff --git a/pkgs/servers/home-assistant/cli.nix b/pkgs/servers/home-assistant/cli.nix
index 17e5559821e..6b7758dd5e1 100644
--- a/pkgs/servers/home-assistant/cli.nix
+++ b/pkgs/servers/home-assistant/cli.nix
@@ -2,11 +2,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "homeassistant-cli";
-  version = "0.8.0";
+  version = "0.9.1";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "0qq42b2a0rlrzaxwf3zqks5gzgv0hf4pz4yjjl6ldnizw8fcj40n";
+    sha256 = "1a31ky2p5w8byf0bjgma6xi328jj690qqksm3dwbi3v8dpqvghgf";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 96ca0c83898..922755db1fb 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -2,20 +2,23 @@
 # Do not edit!
 
 {
-  version = "0.109.6";
+  version = "0.114.3";
   components = {
     "abode" = ps: with ps; [ ]; # missing inputs: abodepy
+    "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
     "ads" = ps: with ps; [ ]; # missing inputs: pyads
     "aftership" = ps: with ps; [ ]; # missing inputs: pyaftership
+    "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];
     "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];
     "almond" = ps: with ps; [ aiohttp-cors]; # missing inputs: pyalmond
@@ -26,14 +29,14 @@
     "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];
     "apcupsd" = ps: with ps; [ ]; # missing inputs: apcaccess
     "api" = ps: with ps; [ aiohttp-cors];
     "apns" = ps: with ps; [ ]; # missing inputs: apns2
-    "apple_tv" = ps: with ps; [ pyatv];
+    "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
@@ -44,7 +47,7 @@
     "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];
+    "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
@@ -55,14 +58,14 @@
     "aurora" = ps: with ps; [ ];
     "aurora_abb_powerone" = ps: with ps; [ ]; # missing inputs: aurorapy
     "auth" = ps: with ps; [ aiohttp-cors];
-    "automatic" = ps: with ps; [ aiohttp-cors]; # missing inputs: aioautomatic
-    "automation" = ps: with ps; [ ];
+    "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; [ ]; # 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];
     "baidu" = ps: with ps; [ ]; # missing inputs: baidu-aip
@@ -75,6 +78,7 @@
     "bitcoin" = ps: with ps; [ ]; # missing inputs: blockchain
     "bizkaibus" = ps: with ps; [ ]; # missing inputs: bizkaibus
     "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];
     "blinkt" = ps: with ps; [ ]; # missing inputs: blinkt
@@ -88,12 +92,14 @@
     "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
+    "bond" = ps: with ps; [ ]; # missing inputs: bond-api
     "braviatv" = ps: with ps; [ bravia-tv];
     "broadlink" = ps: with ps; [ broadlink];
-    "brother" = ps: with ps; [ ]; # missing inputs: brother
+    "brother" = ps: with ps; [ brother];
     "brottsplatskartan" = ps: with ps; [ ]; # missing inputs: brottsplatskartan
     "browser" = ps: with ps; [ ];
     "brunt" = ps: with ps; [ ]; # missing inputs: brunt
+    "bsblan" = ps: with ps; [ ]; # missing inputs: bsblan
     "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
@@ -101,9 +107,10 @@
     "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; [ PyChromecast];
+    "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_mobility_express" = ps: with ps; [ ]; # missing inputs: ciscomobilityexpress
     "cisco_webex_teams" = ps: with ps; [ ]; # missing inputs: webexteamssdk
@@ -125,6 +132,7 @@
     "concord232" = ps: with ps; [ ]; # missing inputs: concord232
     "config" = ps: with ps; [ aiohttp-cors];
     "configurator" = ps: with ps; [ ];
+    "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
@@ -140,20 +148,23 @@
     "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_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];
     "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];
@@ -161,27 +172,27 @@
     "directv" = ps: with ps; [ ]; # missing inputs: directv
     "discogs" = ps: with ps; [ discogs_client];
     "discord" = ps: with ps; [ discordpy];
-    "discovery" = ps: with ps; [ netdisco];
+    "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
+    "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 sqlalchemy]; # missing inputs: doorbirdpy home-assistant-frontend
+    "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; [ ];
+    "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; [ ]; # 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
@@ -204,7 +215,7 @@
     "emoncms_history" = ps: with ps; [ ];
     "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
@@ -238,11 +249,13 @@
     "filesize" = ps: with ps; [ ];
     "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
     "flic" = ps: with ps; [ ]; # missing inputs: pyflic-homeassistant
+    "flick_electric" = ps: with ps; [ ]; # missing inputs: PyFlick
     "flock" = ps: with ps; [ ];
     "flume" = ps: with ps; [ ]; # missing inputs: pyflume
     "flunearyou" = ps: with ps; [ ]; # missing inputs: pyflunearyou
@@ -251,15 +264,15 @@
     "folder" = ps: with ps; [ ];
     "folder_watcher" = ps: with ps; [ watchdog];
     "foobot" = ps: with ps; [ ]; # missing inputs: foobot_async
-    "fortigate" = ps: with ps; [ ]; # missing inputs: pyfgt
+    "forked_daapd" = ps: with ps; [ ]; # missing inputs: pyforked-daapd pylibrespot-java
     "fortios" = ps: with ps; [ ]; # missing inputs: fortiosapi
     "foscam" = ps: with ps; [ ]; # missing inputs: libpyfoscam
     "foursquare" = ps: with ps; [ aiohttp-cors];
     "free_mobile" = ps: with ps; [ ]; # missing inputs: freesms
-    "freebox" = ps: with ps; [ ]; # 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" = ps: with ps; [ pyfritzhome];
     "fritzbox_callmonitor" = ps: with ps; [ fritzconnection];
     "fritzbox_netmonitor" = ps: with ps; [ fritzconnection];
     "fronius" = ps: with ps; [ ]; # missing inputs: pyfronius
@@ -270,7 +283,6 @@
     "garmin_connect" = ps: with ps; [ ]; # missing inputs: garminconnect
     "gc100" = ps: with ps; [ ]; # missing inputs: python-gc100
     "gdacs" = ps: with ps; [ ]; # missing inputs: aio_georss_gdacs
-    "gearbest" = ps: with ps; [ ]; # missing inputs: gearbest_parser
     "geizhals" = ps: with ps; [ ]; # missing inputs: geizhals
     "generic" = ps: with ps; [ ];
     "generic_thermostat" = ps: with ps; [ ];
@@ -288,7 +300,7 @@
     "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: pygogogate2
+    "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];
@@ -309,11 +321,12 @@
     "growatt_server" = ps: with ps; [ ]; # missing inputs: growattServer
     "gstreamer" = ps: with ps; [ ]; # missing inputs: gstreamer-player
     "gtfs" = ps: with ps; [ ]; # missing inputs: pygtfs
+    "guardian" = ps: with ps; [ ]; # missing inputs: aioguardian
     "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];
+    "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
@@ -328,9 +341,10 @@
     "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
     "homeassistant" = ps: with ps; [ ];
-    "homekit" = ps: with ps; [ HAP-python pyqrcode aiohttp-cors]; # missing inputs: base36 fnvhash
-    "homekit_controller" = ps: with ps; [ ]; # missing inputs: aiohomekit[IP]
+    "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
@@ -343,7 +357,9 @@
     "huawei_lte" = ps: with ps; [ getmac stringcase]; # missing inputs: huawei-lte-api url-normalize
     "huawei_router" = ps: with ps; [ ];
     "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
@@ -359,13 +375,13 @@
     "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; [ ];
     "input_select" = ps: with ps; [ ];
     "input_text" = ps: with ps; [ ];
-    "insteon" = ps: with ps; [ ]; # missing inputs: insteonplm
+    "insteon" = ps: with ps; [ ]; # missing inputs: pyinsteon
     "integration" = ps: with ps; [ ];
     "intent" = ps: with ps; [ aiohttp-cors];
     "intent_script" = ps: with ps; [ ];
@@ -374,12 +390,12 @@
     "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
+    "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
-    "isy994" = ps: with ps; [ ]; # missing inputs: PyISY
+    "isy994" = ps: with ps; [ ]; # missing inputs: pyisy
     "itach" = ps: with ps; [ ]; # missing inputs: pyitachip2ir
     "itunes" = ps: with ps; [ ];
     "izone" = ps: with ps; [ ]; # missing inputs: python-izone
@@ -415,7 +431,6 @@
     "lightwave" = ps: with ps; [ ]; # missing inputs: lightwave
     "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];
     "lirc" = ps: with ps; [ ]; # missing inputs: python-lirc
@@ -425,7 +440,6 @@
     "local_ip" = ps: with ps; [ ];
     "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
     "logentries" = ps: with ps; [ ];
     "logger" = ps: with ps; [ ];
@@ -445,7 +459,7 @@
     "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];
+    "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
@@ -460,7 +474,7 @@
     "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
+    "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
@@ -477,7 +491,7 @@
     "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];
+    "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
@@ -486,17 +500,17 @@
     "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];
+    "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];
     "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; [ ]; # missing inputs: pymysensors
+    "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
@@ -508,7 +522,7 @@
     "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 pyatmo];
+    "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
@@ -527,33 +541,35 @@
     "noaa_tides" = ps: with ps; [ ]; # missing inputs: py_noaa
     "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
     "nuheat" = ps: with ps; [ ]; # missing inputs: nuheat
     "nuimo_controller" = ps: with ps; [ ]; # missing inputs: --only-binary=all nuimo
     "nuki" = ps: with ps; [ ]; # missing inputs: pynuki
+    "numato" = ps: with ps; [ ]; # missing inputs: numato-gpio
     "nut" = ps: with ps; [ ]; # missing inputs: pynut2
     "nws" = ps: with ps; [ ]; # missing inputs: pynws
     "nx584" = ps: with ps; [ ]; # missing inputs: pynx584
     "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; [ ];
+    "octoprint" = ps: with ps; [ aiohttp-cors netdisco zeroconf];
     "oem" = ps: with ps; [ ]; # missing inputs: oemthermostat
     "ohmconnect" = ps: with ps; [ defusedxml];
     "ombi" = ps: with ps; [ ]; # missing inputs: pyombi
     "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: onvif-zeep-async
+    "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
     "openerz" = ps: with ps; [ ]; # missing inputs: openerz-api
     "openevse" = ps: with ps; [ ]; # missing inputs: openevsewifi
     "openexchangerates" = ps: with ps; [ ];
-    "opengarage" = ps: with ps; [ ];
+    "opengarage" = ps: with ps; [ ]; # missing inputs: open-garage
     "openhardwaremonitor" = ps: with ps; [ ];
     "openhome" = ps: with ps; [ ]; # missing inputs: openhomedevice
     "opensensemap" = ps: with ps; [ ]; # missing inputs: opensensemap-api
@@ -568,7 +584,9 @@
     "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];
+    "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];
@@ -588,12 +606,13 @@
     "pioneer" = ps: with ps; [ ];
     "pjlink" = ps: with ps; [ ]; # missing inputs: pypjlink2
     "plaato" = ps: with ps; [ aiohttp-cors];
-    "plant" = ps: with ps; [ ];
-    "plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket];
-    "plugwise" = ps: with ps; [ ]; # missing inputs: haanna
+    "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
+    "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
@@ -604,12 +623,12 @@
     "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; [ ];
+    "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; [ ];
+    "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];
@@ -620,7 +639,7 @@
     "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]; # missing inputs: 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
@@ -645,11 +664,11 @@
     "rfxtrx" = ps: with ps; [ ]; # missing inputs: pyRFXtrx
     "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; [ roku];
+    "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
@@ -660,7 +679,7 @@
     "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; [ ]; # missing inputs: pysabnzbd
+    "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
@@ -668,7 +687,7 @@
     "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];
+    "scrape" = ps: with ps; [ beautifulsoup4 jsonpath xmltodict];
     "script" = ps: with ps; [ ];
     "scsgate" = ps: with ps; [ ]; # missing inputs: scsgate
     "search" = ps: with ps; [ aiohttp-cors];
@@ -697,22 +716,22 @@
     "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]; # missing inputs: 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];
+    "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
@@ -723,11 +742,11 @@
     "soma" = ps: with ps; [ ]; # missing inputs: pysoma
     "somfy" = ps: with ps; [ aiohttp-cors]; # missing inputs: pymfy
     "somfy_mylink" = ps: with ps; [ ]; # missing inputs: somfy-mylink-synergy
-    "sonarr" = ps: with ps; [ ];
+    "sonarr" = ps: with ps; [ ]; # missing inputs: sonarr
     "songpal" = ps: with ps; [ ]; # missing inputs: python-songpal
     "sonos" = ps: with ps; [ pysonos];
     "sony_projector" = ps: with ps; [ ]; # missing inputs: pysdcp
-    "soundtouch" = ps: with ps; [ libsoundtouch];
+    "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];
@@ -736,12 +755,12 @@
     "spotcrime" = ps: with ps; [ ]; # missing inputs: spotcrime
     "spotify" = ps: with ps; [ aiohttp-cors spotipy];
     "sql" = ps: with ps; [ sqlalchemy];
-    "squeezebox" = ps: with ps; [ ];
-    "ssdp" = ps: with ps; [ defusedxml netdisco];
+    "squeezebox" = ps: with ps; [ ]; # missing inputs: 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; [ ];
+    "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
@@ -761,7 +780,7 @@
     "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
@@ -786,7 +805,7 @@
     "telnet" = ps: with ps; [ ];
     "temper" = ps: with ps; [ ]; # missing inputs: temperusb
     "template" = ps: with ps; [ ];
-    "tensorflow" = ps: with ps; [ numpy pillow protobuf 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
@@ -805,11 +824,11 @@
     "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
+    "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
     "trackr" = ps: with ps; [ ]; # missing inputs: pytrackr
@@ -836,16 +855,17 @@
     "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
+    "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
@@ -866,7 +886,7 @@
     "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];
     "w800rf32" = ps: with ps; [ ]; # missing inputs: pyW800rf32
@@ -883,24 +903,25 @@
     "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
     "wirelesstag" = ps: with ps; [ ]; # missing inputs: wirelesstagpy
     "withings" = ps: with ps; [ aiohttp-cors]; # missing inputs: withings-api
     "wled" = ps: with ps; [ ]; # missing inputs: wled
+    "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; [ ];
     "wsdot" = ps: with ps; [ ];
     "wunderground" = ps: with ps; [ ];
-    "wunderlist" = ps: with ps; [ ]; # missing inputs: wunderpy2
-    "wwlln" = ps: with ps; [ ]; # missing inputs: aiowwlln
     "x10" = ps: with ps; [ ];
+    "xbee" = ps: with ps; [ ]; # missing inputs: xbee-helper
     "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; [ ]; # missing inputs: PyXiaomiGateway
+    "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];
@@ -908,9 +929,9 @@
     "yale_smart_alarm" = ps: with ps; [ ]; # missing inputs: yalesmartalarmclient
     "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; [ ]; # missing inputs: yeelight
+    "yeelight" = ps: with ps; [ aiohttp-cors netdisco zeroconf]; # missing inputs: yeelight
     "yeelightsunflower" = ps: with ps; [ ]; # missing inputs: yeelightsunflower
     "yessssms" = ps: with ps; [ ]; # missing inputs: YesssSMS
     "yi" = ps: with ps; [ aioftp ha-ffmpeg];
@@ -919,10 +940,10 @@
     "zamg" = ps: with ps; [ ];
     "zengge" = ps: with ps; [ ]; # missing inputs: zengge
     "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf];
+    "zerproc" = ps: with ps; [ ]; # missing inputs: pyzerproc
     "zestimate" = ps: with ps; [ xmltodict];
-    "zha" = ps: with ps; [ zha-quirks zigpy-deconz zigpy]; # missing inputs: bellows-homeassistant zigpy-cc zigpy-xbee-homeassistant zigpy-zigate
+    "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
-    "zigbee" = ps: with ps; [ ]; # missing inputs: xbee-helper
     "ziggo_mediabox_xl" = ps: with ps; [ ]; # missing inputs: ziggo-mediabox-xl
     "zone" = ps: with ps; [ ];
     "zoneminder" = ps: with ps; [ zm-py];
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index 9471a5faad8..4fe1e79105e 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchFromGitHub, fetchpatch, python3, protobuf3_6
+{ stdenv, nixosTests, lib, fetchurl, fetchFromGitHub, fetchpatch, python3, protobuf3_6
 
 # Look up dependencies of specified components in component-packages.nix
 , extraComponents ? [ ]
@@ -22,10 +22,15 @@ let
   defaultOverrides = [
     # Override the version of some packages pinned in Home Assistant's setup.py
 
-    # used by check_config script
-    # can be unpinned once https://github.com/home-assistant/home-assistant/issues/11917 is resolved
-    (mkOverride "colorlog" "4.0.2"
-      "3cf31b25cbc8f86ec01fef582ef3b840950dea414084ed19ab922c8b493f9b42")
+    # required by the sun/moon plugins
+    # https://github.com/home-assistant/core/issues/36636
+    (mkOverride "astral" "1.10.1"
+      "d2a67243c4503131c856cafb1b1276de52a86e5b8a1d507b7e08bee51cb67bf1")
+
+    # We have 3.x in nixpkgs which is incompatible with home-assistant atm:
+    # https://github.com/home-assistant/core/blob/dev/requirements_all.txt
+    (mkOverride "pyowm" "2.10.0"
+      "1xvcv3sbcn9na8cwz21nnjlixysfk5lymnf65d1nqkbgacc1mm4g")
 
     # required by aioesphomeapi
     (self: super: {
@@ -67,7 +72,7 @@ let
   extraBuildInputs = extraPackages py.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "0.109.6";
+  hassVersion = "0.114.3";
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "homeassistant";
@@ -76,7 +81,7 @@ in with py.pkgs; buildPythonApplication rec {
   disabled = pythonOlder "3.5";
 
   patches = [
-    ./0001-setup.py-relax-dependencies.patch
+    ./relax-dependencies.patch
   ];
 
   inherit availableComponents;
@@ -84,9 +89,9 @@ in with py.pkgs; buildPythonApplication rec {
   # PyPI tarball is missing tests/ directory
   src = fetchFromGitHub {
     owner = "home-assistant";
-    repo = "home-assistant";
+    repo = "core";
     rev = version;
-    sha256 = "133l6n165yivnc9qmrahk423hmns0hn0dbnx4ys7yaw3x5hqwyns";
+    sha256 = "1fn93vac9vi1wcbq8z9pc2cdvfdkkxpam2qhv5ni14wrmnjc4305";
   };
 
   propagatedBuildInputs = [
@@ -123,12 +128,15 @@ in with py.pkgs; buildPythonApplication rec {
 
   passthru = {
     inherit (py.pkgs) hass-frontend;
+    tests = {
+      inherit (nixosTests) home-assistant;
+    };
   };
 
   meta = with lib; {
     homepage = "https://home-assistant.io/";
     description = "Open-source home automation platform running on Python 3";
     license = licenses.asl20;
-    maintainers = with maintainers; [ dotlambda globin mic92 ];
+    maintainers = with maintainers; [ dotlambda globin mic92 hexa ];
   };
 }
diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix
index 9fb543d06ce..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 = "20200505.0";
+  version = "20200811.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0h19ddgnws5l49fwr4b0j99j4xkhpxkwdsmq71q36akd4s5lj0ll";
+    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 f802485d6c6..3c6d0c4bcab 100755
--- a/pkgs/servers/home-assistant/parse-requirements.py
+++ b/pkgs/servers/home-assistant/parse-requirements.py
@@ -24,7 +24,7 @@ import sys
 import tarfile
 import tempfile
 from io import BytesIO
-from typing import Dict, Optional
+from typing import Dict, Optional, Set, Any
 from urllib.request import urlopen
 
 COMPONENT_PREFIX = "homeassistant.components"
@@ -79,11 +79,14 @@ def parse_components(version: str = "master"):
 
 
 # Recursively get the requirements of a component and its dependencies
-def get_reqs(components, component):
+def get_reqs(components: Dict[str, Dict[str, Any]], component: str, processed: Set[str]) -> Set[str]:
     requirements = set(components[component].get("requirements", []))
     deps = components[component].get("dependencies", [])
+    deps.extend(components[component].get("after_dependencies", []))
+    processed.add(component)
     for dependency in deps:
-        requirements.update(get_reqs(components, dependency))
+        if dependency not in processed:
+            requirements.update(get_reqs(components, dependency, processed))
     return requirements
 
 
@@ -143,7 +146,7 @@ def main() -> None:
     for component in sorted(components.keys()):
         attr_paths = []
         missing_reqs = []
-        reqs = sorted(get_reqs(components, component))
+        reqs = sorted(get_reqs(components, component, set()))
         for req in reqs:
             # Some requirements are specified by url, e.g. https://example.org/foobar#xyz==1.0.0
             # Therefore, if there's a "#" in the line, only take the part after it
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/home-assistant/update.sh b/pkgs/servers/home-assistant/update.sh
new file mode 100755
index 00000000000..11189cf3577
--- /dev/null
+++ b/pkgs/servers/home-assistant/update.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -p nix -p jq -p curl -p bash -p git -p nix-update -i bash
+
+set -eux
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+cd "$DIR"
+
+CURRENT_VERSION=$(nix eval --raw '(with import ../../.. {}; home-assistant.version)')
+TARGET_VERSION=$(curl https://api.github.com/repos/home-assistant/core/releases/latest | jq -r '.name')
+MANIFEST=$(curl https://raw.githubusercontent.com/home-assistant/core/${TARGET_VERSION}/homeassistant/components/frontend/manifest.json)
+FRONTEND_VERSION=$(echo $MANIFEST | jq -r '.requirements[] | select(startswith("home-assistant-frontend")) | sub(".*==(?<vers>.*)"; .vers)')
+
+if [[ "$CURRENT_VERSION" == "$TARGET_VERSION" ]]; then
+    echo "home-assistant is up-to-date: ${CURRENT_VERSION}"
+    exit 0
+fi
+
+
+sed -i -e "s/version =.*/version = \"${TARGET_VERSION}\";/" \
+    component-packages.nix
+
+sed -i -e "s/hassVersion =.*/hassVersion = \"${TARGET_VERSION}\";/" \
+    default.nix
+
+./parse-requirements.py
+(
+    cd ../../..
+    nix-update --version "$FRONTEND_VERSION" home-assistant.hass-frontend
+    nix-update --version "$TARGET_VERSION" --build home-assistant
+)
+
+git add ./component-packages.nix ./default.nix ./frontend.nix
+git commit -m "homeassistant: ${CURRENT_VERSION} -> ${TARGET_VERSION}"
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 49c11bf462e..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.26.v20200117";
+  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 = "0wgh7vap0h6gkz6pk8iycvhwmybyxv25ssinwxxrnzk8jg25g89i";
+    sha256 = "1j1dhlrlj7xnijp55c1hd9r47m6bq37vpjkaf8f9fg7q9m2z9x6x";
   };
 
   phases = [ "unpackPhase" "installPhase" ];
diff --git a/pkgs/servers/http/nginx/generic.nix b/pkgs/servers/http/nginx/generic.nix
index 80bc1458ad7..6ec5b0a7851 100644
--- a/pkgs/servers/http/nginx/generic.nix
+++ b/pkgs/servers/http/nginx/generic.nix
@@ -4,6 +4,7 @@
 , withDebug ? false
 , withStream ? true
 , withMail ? false
+, withPerl ? true
 , modules ? []
 , ...
 }:
@@ -87,7 +88,7 @@ stdenv.mkDerivation {
   ] ++ optionals withMail [
     "--with-mail"
     "--with-mail_ssl_module"
-  ] ++ optional (perl != null) [
+  ] ++ optionals withPerl [
     "--with-http_perl_module"
     "--with-perl=${perl}/bin/perl"
     "--with-perl_modules_path=lib/perl5"
diff --git a/pkgs/servers/http/nginx/mainline.nix b/pkgs/servers/http/nginx/mainline.nix
index 74df3c16472..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.18.0";
-  sha256 = "16azscl74ym1far0s0p6xsjin1k1cm4wk80i9x5d74dznmx3wdsc";
+  version = "1.19.2";
+  sha256 = "0wr4ss4gld7x717m4j3a6l6f7ijblrrd55y563lkwhvr7sqpn7vw";
 }
diff --git a/pkgs/servers/http/nginx/modules.nix b/pkgs/servers/http/nginx/modules.nix
index 16782966944..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,42 +80,37 @@ 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.3";
-      sha256 = "12xdx6a76sfrq0yciylvyjlnvyczszpadn31jqya8c2dzdkyyx7f";
-    };
-  };
-
-  fastcgi-cache-purge = {
-    src = fetchFromGitHub {
-      owner  = "nginx-modules";
-      repo   = "ngx_cache_purge";
-      rev    = "2.5";
-      sha256 = "1f4kxagzvz10vqbcjwi57wink6xw3s1h7wlrrlrlpkmhfbf9704y";
+      rev = "v0.4.4";
+      sha256 = "14xmzcl608pr7hb7wng6hpz7by51cfnxlszbka3zhp3kk86ljsi6";
     };
   };
 
   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";
@@ -140,16 +170,19 @@ in
       export LUAJIT_LIB="${pkgs.luajit}/lib"
       export LUAJIT_INC="${pkgs.luajit}/include/luajit-2.0"
     '';
+    allowMemoryWriteExecute = true;
   };
 
   lua-upstream = {
     src = fetchFromGitHub {
+      name = "lua-upstream";
       owner = "openresty";
       repo = "lua-upstream-nginx-module";
       rev = "v0.07";
       sha256 = "1gqccg8airli3i9103zv1zfwbjm27h235qjabfbfqk503rjamkpk";
     };
     inputs = [ pkgs.luajit ];
+    allowMemoryWriteExecute = true;
   };
 
   modsecurity = {
@@ -162,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";
@@ -181,6 +216,7 @@ in
 
   mpeg-ts ={
     src = fetchFromGitHub {
+      name = "mpeg-ts";
       owner = "arut";
       repo = "nginx-ts-module";
       rev = "v0.1.1";
@@ -190,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 ];
@@ -223,6 +252,7 @@ in
       version = pkgs.psol.version;
 
       moduleSrc = fetchFromGitHub {
+        name   = "pagespeed";
         owner  = "pagespeed";
         repo   = "ngx_pagespeed";
         rev    = "v${version}-stable";
@@ -246,20 +276,23 @@ in
     in {
       src = ngx_pagespeed;
       inputs = [ pkgs.zlib pkgs.libuuid ]; # psol deps
+      allowMemoryWriteExecute = true;
     };
 
   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";
@@ -269,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";
@@ -287,6 +322,7 @@ in
 
   set-misc = {
     src = fetchFromGitHub {
+      name = "set-misc";
       owner = "openresty";
       repo = "set-misc-nginx-module";
       rev = "v0.32";
@@ -296,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";
@@ -314,6 +352,7 @@ in
 
   slowfs-cache = {
     src = fetchFromGitHub {
+      name = "slowfs-cache";
       owner  = "FRiCKLE";
       repo   = "ngx_slowfs_cache";
       rev    = "1.10";
@@ -323,6 +362,7 @@ in
 
   sorted-querystring = {
     src = fetchFromGitHub {
+      name = "sorted-querystring";
       owner = "wandenberg";
       repo = "nginx-sorted-querystring-module";
       rev = "0.3";
@@ -332,7 +372,8 @@ in
 
   statsd = {
     src = fetchFromGitHub {
-      owner = "apcera";
+      name = "statsd";
+      owner = "harvesthq";
       repo = "nginx-statsd";
       rev = "b970e40467a624ba710c9a5106879a0554413d15";
       sha256 = "1x8j4i1i2ahrr7qvz03vkldgdjdxi6mx75mzkfizfcc8smr4salr";
@@ -341,6 +382,7 @@ in
 
   stream-sts = {
     src = fetchFromGitHub {
+      name = "stream-sts";
       owner = "vozlt";
       repo = "nginx-module-stream-sts";
       rev = "v0.1.1";
@@ -350,6 +392,7 @@ in
 
   sts = {
     src = fetchFromGitHub {
+      name = "sts";
       owner = "vozlt";
       repo = "nginx-module-sts";
       rev = "v0.1.1";
@@ -359,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";
@@ -377,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";
@@ -396,6 +443,7 @@ in
 
   url = {
     src = fetchFromGitHub {
+      name = "url";
       owner = "vozlt";
       repo = "nginx-module-url";
       rev = "9299816ca6bc395625c3683fbd2aa7b916bfe91e";
@@ -405,16 +453,18 @@ in
 
   video-thumbextractor = {
     src = fetchFromGitHub {
+      name = "video-thumbextractor";
       owner = "wandenberg";
       repo = "nginx-video-thumbextractor-module";
       rev = "0.9.0";
       sha256 = "1b0v471mzbcys73pzr7gpvzzhff0cva0l5ff32cv7z1v9c0ypji7";
     };
-    inputs = [ pkgs.ffmpeg ];
+    inputs = [ pkgs.ffmpeg_3 ];
   };
 
   vts = {
     src = fetchFromGitHub {
+      name = "vts";
       owner = "vozlt";
       repo = "nginx-module-vts";
       rev = "v0.1.18";
diff --git a/pkgs/servers/http/openresty/default.nix b/pkgs/servers/http/openresty/default.nix
index 9c01cfb19e1..d845d92ec8a 100644
--- a/pkgs/servers/http/openresty/default.nix
+++ b/pkgs/servers/http/openresty/default.nix
@@ -34,6 +34,8 @@ callPackage ../nginx/generic.nix args rec {
   postInstall = ''
     ln -s $out/luajit/bin/luajit-2.1.0-beta3 $out/bin/luajit-openresty
     ln -s $out/nginx/sbin/nginx $out/bin/nginx
+    ln -s $out/nginx/conf $out/conf
+    ln -s $out/nginx/html $out/html
   '';
 
   meta = {
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 c161566d329..2f73a5d9243 100644
--- a/pkgs/servers/http/unit/default.nix
+++ b/pkgs/servers/http/unit/default.nix
@@ -1,7 +1,6 @@
 { stdenv, fetchFromGitHub, nixosTests, which
 , withPython2 ? false, python2
 , withPython3 ? true, python3, ncurses
-, withPHP72 ? false, php72
 , withPHP73 ? false, php73
 , withPHP74 ? true, php74
 , withPerl528 ? false, perl528
@@ -9,7 +8,7 @@
 , 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.17.0";
+  version = "1.19.0";
   pname = "unit";
 
   src = fetchFromGitHub {
     owner = "nginx";
     repo = "unit";
     rev = version;
-    sha256 = "1q3659vw8rxv4fk7ljkjav8ga72sb3arljfxcqw8b080f9hvi7hh";
+    sha256 = "0k3q42q198sb0w6hyyymw92dbhz67axn6w6vnzr0d883xw3sva7k";
   };
 
   nativeBuildInputs = [ which ];
@@ -47,9 +45,8 @@ in stdenv.mkDerivation rec {
   buildInputs = [ ]
     ++ optional withPython2 python2
     ++ optionals withPython3 [ python3 ncurses ]
-    ++ optional withPHP72 php72-unit
     ++ optional withPHP73 php73-unit
-    ++ optional withPHP73 php74-unit
+    ++ optional withPHP74 php74-unit
     ++ optional withPerl528 perl528
     ++ optional withPerl530 perl530
     ++ optional withPerldevel perldevel
@@ -67,10 +64,13 @@ in stdenv.mkDerivation rec {
     ++ optional (!withIPv6) "--no-ipv6"
     ++ optional withDebug   "--debug";
 
+  # Optionally add the PHP derivations used so they can be addressed in the configs
+  usedPhp73 = optionals withPHP73 php73-unit;
+  usedPhp74 = optionals withPHP74 php74-unit;
+
   postConfigure = ''
-    ${optionalString withPython2    "./configure python --module=python2  --config=${python2}/bin/python2-config  --lib-path=${python2}/lib"}
-    ${optionalString withPython3    "./configure python --module=python3  --config=${python3}/bin/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 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 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"}
diff --git a/pkgs/servers/http/webhook/default.nix b/pkgs/servers/http/webhook/default.nix
index d40adb171a6..fe428926704 100644
--- a/pkgs/servers/http/webhook/default.nix
+++ b/pkgs/servers/http/webhook/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "webhook";
-  version = "2.6.8";
+  version = "2.7.0";
 
   goPackagePath = "github.com/adnanh/webhook";
   excludedPackages = [ "test" ];
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "adnanh";
     repo = "webhook";
     rev = version;
-    sha256 = "05q6nv04ml1gr4k79czg03i3ifl05xq29iapkgrl3k0a36czxlgs";
+    sha256 = "1spiqjy0z84z96arf57bn6hyvfsd6l8w6nv874mbis6vagifikci";
   };
 
   meta = with lib; {
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 c4aaedf4ab6..a35b5459272 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.7.3";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     owner = "Icinga";
     repo = "icingaweb2";
     rev = "v${version}";
-    sha256 = "1qdsrpk6jbq9b4v4f2lfpdqs1yh3irbsm5fx02wxnnwvad05bcfv";
+    sha256 = "18q3d15w7d46g4vyq4iph5c1bbxcl8ikcdc8djrfi30wx36ziybs";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/imgproxy/default.nix b/pkgs/servers/imgproxy/default.nix
index 21caebec0f3..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.0";
+  version = "2.14.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    sha256 = "0lzk9nv7fbyc0jbsigw54310pvpwfrvji58z7a08j03vypc0v3x4";
+    sha256 = "048bfkazjijf7p0wb5y09qhl7pgg297xxshgmkfyr025d7d50lf4";
     rev = "v${version}";
   };
 
-  modSha256 = "02pj8ryis89dl4wjp2mvx6h5d0xdvskxdxiwarg7q0x23m9r7kpg";
+  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/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..5ae355ab8b2 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.3";
 
   # 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/stable/combined/jellyfin_${version}.tar.gz";
+    sha256 = "bqGIXS+T82jGMObMPMyYSjzQ+qZnACW4Q7WpV948crc=";
   };
 
   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,7 +54,7 @@ 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 ];
   };
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
new file mode 100644
index 00000000000..520af62576e
--- /dev/null
+++ b/pkgs/servers/kapow/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kapow";
+  version = "0.5.4";
+
+  subPackages = [ "." ];
+
+  src = fetchFromGitHub {
+    owner = "BBVA";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "09qr631vzlgibz6q64f35lqzz9h1g3gxqfbapkrci5i0n3h04yr4";
+  };
+
+  vendorSha256 = "159s46rhg67mgglaxgddx3k8kssl0cqiq8yjdqgjhhxppf16r7dy";
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/BBVA/kapow";
+    description = "Expose command-line tools over HTTP";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ nilp0inter ];
+  };
+}
diff --git a/pkgs/servers/keycloak/default.nix b/pkgs/servers/keycloak/default.nix
index ce24cc7071f..10b74f6b791 100644
--- a/pkgs/servers/keycloak/default.nix
+++ b/pkgs/servers/keycloak/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname   = "keycloak";
-  version = "9.0.3";
+  version = "10.0.2";
 
   src = fetchzip {
     url    = "https://downloads.jboss.org/keycloak/${version}/keycloak-${version}.zip";
-    sha256 = "0nlfa6wwgj04xgg4ps5gpjp4iq2lmas97y5qz61lhns1p42xr4ls";
+    sha256 = "1fn8yd02m0bnvwkbrfxrdnxfab30s0wzm3zxpy63wf3vak7nacma";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/livepeer/default.nix b/pkgs/servers/livepeer/default.nix
index d401d3ada5e..156c0f108ae 100644
--- a/pkgs/servers/livepeer/default.nix
+++ b/pkgs/servers/livepeer/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, buildGoPackage
-, pkgconfig, ffmpeg
+, pkgconfig, ffmpeg_3
 }:
 
 buildGoPackage rec {
@@ -18,9 +18,7 @@ buildGoPackage rec {
 
   nativeBuildInputs = [ pkgconfig ];
 
-  buildInputs = [ ffmpeg ];
-
-  enableParallelBuilding = true;
+  buildInputs = [ ffmpeg_3 ];
 
   meta = with stdenv.lib; {
     description = "Official Go implementation of the Livepeer protocol";
diff --git a/pkgs/servers/mail/dovecot/default.nix b/pkgs/servers/mail/dovecot/default.nix
index fd27d18b503..a12c86cd3f0 100644
--- a/pkgs/servers/mail/dovecot/default.nix
+++ b/pkgs/servers/mail/dovecot/default.nix
@@ -9,7 +9,8 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "dovecot-2.3.10";
+  pname = "dovecot";
+  version = "2.3.11.3";
 
   nativeBuildInputs = [ perl pkgconfig ];
   buildInputs =
@@ -20,8 +21,8 @@ stdenv.mkDerivation rec {
     ++ lib.optional withSQLite sqlite;
 
   src = fetchurl {
-    url = "https://dovecot.org/releases/2.3/${name}.tar.gz";
-    sha256 = "1ibiz3k2flablkcqbkvfzsjnq5b5kxximhcrplflsjl57mr88ca7";
+    url = "https://dovecot.org/releases/2.3/${pname}-${version}.tar.gz";
+    sha256 = "1p5gp8jbavcsaara5mfn5cbrnlxssajnchczbgmmfzr7228fmnfk";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix b/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
new file mode 100644
index 00000000000..8a0f2d4efab
--- /dev/null
+++ b/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, pkg-config, dovecot, libtool, xapian, icu64, sqlite }:
+stdenv.mkDerivation {
+  pname = "fts-xapian";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "grosjo";
+    repo = "fts-xapian";
+    rev = "1.3.1";
+    sha256 = "10yl5fyfbx2ijqckx13vbmzj9mpm5pkh8qzichbdgplrzm738q43";
+  };
+
+  buildInputs = [ dovecot xapian icu64 sqlite ];
+
+  nativeBuildInputs = [ autoconf automake libtool pkg-config ];
+
+  preConfigure = ''
+    export PANDOC=false
+    autoreconf -vi
+  '';
+
+  configureFlags = [
+    "--with-dovecot=${dovecot}/lib/dovecot"
+    "--without-dovecot-install-dirs"
+    "--with-moduledir=$(out)/lib/dovecot"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/grosjo/fts-xapian";
+    description = "Dovecot FTS plugin based on Xapian";
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ julm ];
+    platforms = platforms.unix;
+  };
+}
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 5c73042e6cb..210863aa007 100644
--- a/pkgs/servers/mail/exim/default.nix
+++ b/pkgs/servers/mail/exim/default.nix
@@ -4,14 +4,16 @@
 , enableAuthDovecot ? false, dovecot
 , enablePAM ? false, pam
 , enableSPF ? true, libspf2
+, enableDMARC ? true, opendmarc
 }:
 
 stdenv.mkDerivation rec {
-  name = "exim-4.92.3";
+  pname = "exim";
+  version = "4.94";
 
   src = fetchurl {
-    url = "https://ftp.exim.org/pub/exim/exim4/${name}.tar.xz";
-    sha256 = "1zfj4zblv5881qxpzkrg3f6a96pbcq270s9p6p1w85lfxjsknif4";
+    url = "https://ftp.exim.org/pub/exim/exim4/${pname}-${version}.tar.xz";
+    sha256 = "1nsb2i5mqxfz1sl1bmbxmpb2qiaf3wffhfiw4j9vfpagy3xfhzpp";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -20,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 '
@@ -34,7 +37,7 @@ stdenv.mkDerivation rec {
       s:^\(FIXED_NEVER_USERS\)=root$:\1=0:
       s:^# \(WITH_CONTENT_SCAN\)=.*:\1=yes:
       s:^# \(AUTH_PLAINTEXT\)=.*:\1=yes:
-      s:^# \(SUPPORT_TLS\)=.*:\1=yes:
+      s:^# \(USE_OPENSSL\)=.*:\1=yes:
       s:^# \(USE_OPENSSL_PC=openssl\)$:\1:
       s:^# \(LOG_FILE_PATH=syslog\)$:\1:
       s:^# \(HAVE_IPV6=yes\)$:\1:
@@ -70,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
@@ -91,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/mailman/default.nix b/pkgs/servers/mail/mailman/default.nix
index 8443a1968fd..879fd19adb0 100644
--- a/pkgs/servers/mail/mailman/default.nix
+++ b/pkgs/servers/mail/mailman/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, alembic, aiosmtpd, dnspython
+{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, isPy3k, alembic, aiosmtpd, dnspython
 , flufl_bounce, flufl_i18n, flufl_lock, lazr_config, lazr_delegates, passlib
 , requests, zope_configuration, click, falcon, importlib-resources
 , zope_component, lynx, postfix, authheaders, gunicorn
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "mailman";
-  version = "3.3.0";
+  version = "3.3.1";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1qph9i93ndahfxi3bb2sd0kjm2c0pkh844ai6zacfmvihl1k3pvy";
+    sha256 = "0idfiv48jjgc0jq4731094ddhraqq8bxnwmjk6sg5ask0jss9kxq";
   };
 
   propagatedBuildInputs = [
@@ -20,7 +20,19 @@ buildPythonPackage rec {
     zope_component authheaders gunicorn
   ];
 
-  patchPhase = ''
+  patches = [
+    (fetchpatch {
+      url = https://gitlab.com/mailman/mailman/-/commit/4b206e2a5267a0e17f345fd7b2d957122ba57566.patch;
+      sha256 = "06axmrn74p81wvcki36c7gfj5fp5q15zxz2yl3lrvijic7hbs4n2";
+    })
+    (fetchpatch {
+      url = https://gitlab.com/mailman/mailman/-/commit/9613154f3c04fa2383fbf017031ef263c291418d.patch;
+      sha256 = "0vyw87s857vfxbf7kihwb6w094xyxmxbi1bpdqi3ybjamjycp55r";
+    })
+    ./log-stderr.patch
+  ];
+
+  postPatch = ''
     substituteInPlace src/mailman/config/postfix.cfg \
       --replace /usr/sbin/postmap ${postfix}/bin/postmap
     substituteInPlace src/mailman/config/schema.cfg \
diff --git a/pkgs/servers/mail/mailman/hyperkitty.nix b/pkgs/servers/mail/mailman/hyperkitty.nix
index 57c1b355bf2..5ed5b74d309 100644
--- a/pkgs/servers/mail/mailman/hyperkitty.nix
+++ b/pkgs/servers/mail/mailman/hyperkitty.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "HyperKitty";
-  version = "1.3.2";
+  version = "1.3.3";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "092fkv0xyf5vgj33xwq0mh9h5c5d56ifwimaqbfpx5cwc6yivb88";
+    sha256 = "0p85r9q6mn5as5b39xp9hkkipnk0156acx540n2ygk3qb3jd4a5n";
   };
 
   nativeBuildInputs = [ isort ];
diff --git a/pkgs/servers/mail/mailman/log-stderr.patch b/pkgs/servers/mail/mailman/log-stderr.patch
new file mode 100644
index 00000000000..2edbe1f1831
--- /dev/null
+++ b/pkgs/servers/mail/mailman/log-stderr.patch
@@ -0,0 +1,13 @@
+diff --git a/src/mailman/core/logging.py b/src/mailman/core/logging.py
+index f8f87279f..7ff13b003 100644
+--- a/src/mailman/core/logging.py
++++ b/src/mailman/core/logging.py
+@@ -142,6 +142,8 @@ def _init_logger(propagate, sub_name, log, logger_config):
+         address, facility = _get_syslog_params(logger_config)
+         handler = logging.handlers.SysLogHandler(
+             address=address, facility=facility)
++    elif logger_config.handler == 'stderr':
++        handler = logging.StreamHandler(sys.stderr)
+     else:
+         path_str = logger_config.path
+         path_abs = os.path.normpath(os.path.join(config.LOG_DIR, path_str))
diff --git a/pkgs/servers/mail/mailman/postorius.nix b/pkgs/servers/mail/mailman/postorius.nix
index 5f542b9036e..ae797fa6cbc 100644
--- a/pkgs/servers/mail/mailman/postorius.nix
+++ b/pkgs/servers/mail/mailman/postorius.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "postorius";
-  version = "1.3.2";
+  version = "1.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wrm0hda7ym9qaygxirqaaii66ndmgyy7gx8wqdg07pfx14zcyja";
+    sha256 = "08jn23gblbkfl09qlykbpsmp39mmach3sl69h1j5cd5kkx839rwa";
   };
 
   propagatedBuildInputs = [ django-mailman3 readme_renderer ];
diff --git a/pkgs/servers/mail/mailman/web.nix b/pkgs/servers/mail/mailman/web.nix
index f770f2e4489..53fdf851cfe 100644
--- a/pkgs/servers/mail/mailman/web.nix
+++ b/pkgs/servers/mail/mailman/web.nix
@@ -1,6 +1,5 @@
 { buildPythonPackage, lib, fetchgit, isPy3k
 , git, makeWrapper, sassc, hyperkitty, postorius, whoosh
-, django
 }:
 
 buildPythonPackage rec {
@@ -17,8 +16,13 @@ buildPythonPackage rec {
 
   # This is just so people installing from pip also get uwsgi
   # installed, AFAICT.
+
+  # Django is depended on transitively by hyperkitty and postorius,
+  # and mailman_web has overly restrictive version bounds on it, so
+  # let's remove it.
   postPatch = ''
     sed -i '/^  uwsgi$/d' setup.cfg
+    sed -i '/^  Django/d' setup.cfg
   '';
 
   nativeBuildInputs = [ git makeWrapper ];
@@ -36,7 +40,5 @@ buildPythonPackage rec {
     description = "Django project for Mailman 3 web interface";
     license = licenses.gpl3;
     maintainers = with maintainers; [ peti qyliss ];
-    # mailman-web requires django < 2.2
-    broken = versionOlder "2.2" django.version;
   };
 }
diff --git a/pkgs/servers/mail/opensmtpd/default.nix b/pkgs/servers/mail/opensmtpd/default.nix
index 134913e85a8..c489f2b14f7 100644
--- a/pkgs/servers/mail/opensmtpd/default.nix
+++ b/pkgs/servers/mail/opensmtpd/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "opensmtpd";
-  version = "6.6.4p1";
+  version = "6.7.1p1";
 
   nativeBuildInputs = [ autoconf automake libtool bison ];
   buildInputs = [ libasr libevent zlib libressl db pam ];
 
   src = fetchurl {
     url = "https://www.opensmtpd.org/archives/${pname}-${version}.tar.gz";
-    sha256 = "1kyph9ycq0j21dl9n1sq5fns9p4gckdi0fmnf8awrcwrdcm9dyg2";
+    sha256 = "1jh8vxfajm1mvp1v5yh6llrhjzv0n9fgab88mlwllwqynhcfjy3l";
   };
 
   patches = [
diff --git a/pkgs/servers/mail/postfix/0001-Fix-build-with-glibc-2.30.patch b/pkgs/servers/mail/postfix/0001-Fix-build-with-glibc-2.30.patch
deleted file mode 100644
index 9613b8906a0..00000000000
--- a/pkgs/servers/mail/postfix/0001-Fix-build-with-glibc-2.30.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From a6a61d0dc018101a9a8d0a664f31140d7e38db0e Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Fri, 17 Jan 2020 01:42:40 +0100
-Subject: [PATCH] Fix build with glibc 2.30
-
-https://bugs.launchpad.net/ubuntu/+source/postfix/+bug/1842923
----
- src/dns/dns_str_resflags.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/src/dns/dns_str_resflags.c b/src/dns/dns_str_resflags.c
-index 5f2cce5..df32345 100644
---- a/src/dns/dns_str_resflags.c
-+++ b/src/dns/dns_str_resflags.c
-@@ -60,10 +60,16 @@ static const LONG_NAME_MASK resflag_table[] = {
-     "RES_DEFNAMES", RES_DEFNAMES,
-     "RES_STAYOPEN", RES_STAYOPEN,
-     "RES_DNSRCH", RES_DNSRCH,
-+#ifdef RES_INSECURE1
-     "RES_INSECURE1", RES_INSECURE1,
-+#endif
-+#ifdef RES_INSECURE2
-     "RES_INSECURE2", RES_INSECURE2,
-+#endif
-     "RES_NOALIASES", RES_NOALIASES,
-+#ifdef RES_USE_INET6
-     "RES_USE_INET6", RES_USE_INET6,
-+#endif
- #ifdef RES_ROTATE
-     "RES_ROTATE", RES_ROTATE,
- #endif
--- 
-2.23.1
-
diff --git a/pkgs/servers/mail/postfix/default.nix b/pkgs/servers/mail/postfix/default.nix
index 0386bcf2394..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.4.10";
+  version = "3.5.6";
 
   src = fetchurl {
     url = "ftp://ftp.cs.uu.nl/mirror/postfix/postfix-release/official/${pname}-${version}.tar.gz";
-    sha256 = "0m36wn5grm4cf8nnvlgsgwsm6v09xz01n7jnx13h0yjk73y6d2lh";
+    sha256 = "0shyxk83adv4pbfilmskyrgjpb57vyhmvqbmfqawxbc22mksmh4f";
   };
 
   nativeBuildInputs = [ makeWrapper m4 ];
@@ -48,7 +48,6 @@ in stdenv.mkDerivation rec {
     ./postfix-3.0-no-warnings.patch
     ./post-install-script.patch
     ./relative-symlinks.patch
-    ./0001-Fix-build-with-glibc-2.30.patch
   ];
 
   postPatch = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
diff --git a/pkgs/servers/mail/sympa/default.nix b/pkgs/servers/mail/sympa/default.nix
index c5c9b440049..3e69274ff2d 100644
--- a/pkgs/servers/mail/sympa/default.nix
+++ b/pkgs/servers/mail/sympa/default.nix
@@ -63,13 +63,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "sympa";
-  version = "6.2.54";
+  version = "6.2.56";
 
   src = fetchFromGitHub {
     owner = "sympa-community";
     repo = pname;
     rev = version;
-    sha256 = "07wfvr8rrg7pwkl2zglrdri7n42rl9gwrjbaffb8m37wq67s7fca";
+    sha256 = "13cs2azpskmp2hkfy5zqf4qb6sb9r8d4wwzc8mw74mg2kdjnvfpy";
   };
 
   configureFlags = [
diff --git a/pkgs/servers/martin/default.nix b/pkgs/servers/martin/default.nix
new file mode 100644
index 00000000000..2c506dca6af
--- /dev/null
+++ b/pkgs/servers/martin/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, rustPlatform, fetchFromGitHub, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "martin";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "urbica";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1i9zhmjkgid4s90n52wqmrl3lwswcaxd6d47ssycgjl1nv0jla4k";
+  };
+
+  cargoSha256 = "08rr783qvpm1q7s60k7mh3k5npf0lg5s1x74lnxcxdgrlgpn5gcf";
+
+  buildInputs = with stdenv; lib.optional isDarwin Security;
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Blazing fast and lightweight PostGIS vector tiles server";
+    homepage = "https://martin.urbica.co/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sikmir ];
+    platforms = with platforms; linux ++ darwin;
+  };
+}
diff --git a/pkgs/servers/matrix-appservice-discord/default.nix b/pkgs/servers/matrix-appservice-discord/default.nix
new file mode 100644
index 00000000000..beb3ad70c79
--- /dev/null
+++ b/pkgs/servers/matrix-appservice-discord/default.nix
@@ -0,0 +1,29 @@
+{ pkgs, nodejs, stdenv }:
+
+let
+  nodePackages = import ./node-composition.nix {
+    inherit pkgs nodejs;
+    inherit (stdenv.hostPlatform) system;
+  };
+
+in nodePackages."matrix-appservice-discord-git+https://github.com/Half-Shot/matrix-appservice-discord.git#v0.5.2".override {
+  nativeBuildInputs = [ pkgs.makeWrapper ];
+
+  postInstall = ''
+    # compile Typescript sources
+    npm run build
+
+    # server wrapper
+    makeWrapper '${nodejs}/bin/node' "$out/bin/matrix-appservice-discord" \
+      --add-flags "$out/lib/node_modules/matrix-appservice-discord/build/src/discordas.js"
+
+    # admin tools wrappers
+    for toolPath in $out/lib/node_modules/matrix-appservice-discord/build/tools/*; do
+      makeWrapper '${nodejs}/bin/node' "$out/bin/matrix-appservice-discord-$(basename $toolPath .js)" \
+        --add-flags "$toolPath"
+    done
+  '';
+
+  # other metadata generated and inherited from ./node-package.nix
+  meta.maintainers = with stdenv.lib.maintainers; [ pacien ];
+}
diff --git a/pkgs/servers/matrix-appservice-discord/generate.sh b/pkgs/servers/matrix-appservice-discord/generate.sh
new file mode 100755
index 00000000000..46aeb7d02ea
--- /dev/null
+++ b/pkgs/servers/matrix-appservice-discord/generate.sh
@@ -0,0 +1,10 @@
+##!/usr/bin/env nix-shell
+##! nix-shell -i bash -p nodePackages.node2nix
+
+node2nix \
+  --nodejs-12 \
+  --node-env ../../development/node-packages/node-env.nix \
+  --development \
+  --input package.json \
+  --output node-packages.nix \
+  --composition node-composition.nix
diff --git a/pkgs/development/node-packages/composition-v13.nix b/pkgs/servers/matrix-appservice-discord/node-composition.nix
index 6eddeb468db..42b6358224c 100644
--- a/pkgs/development/node-packages/composition-v13.nix
+++ b/pkgs/servers/matrix-appservice-discord/node-composition.nix
@@ -2,16 +2,16 @@
 
 {pkgs ? import <nixpkgs> {
     inherit system;
-  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-13_x"}:
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
 
 let
-  nodeEnv = import ./node-env.nix {
+  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-v13.nix {
+import ./node-packages.nix {
   inherit (pkgs) fetchurl fetchgit;
   inherit nodeEnv;
 }
\ No newline at end of file
diff --git a/pkgs/servers/matrix-appservice-discord/node-packages.nix b/pkgs/servers/matrix-appservice-discord/node-packages.nix
new file mode 100644
index 00000000000..5eb65a56dc8
--- /dev/null
+++ b/pkgs/servers/matrix-appservice-discord/node-packages.nix
@@ -0,0 +1,5251 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+  sources = {
+    "@babel/code-frame-7.8.3" = {
+      name = "_at_babel_slash_code-frame";
+      packageName = "@babel/code-frame";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz";
+        sha512 = "3d85pd9lfbm8yrlpn6wj9g56snbnpr9fx0w1b9x26jbirc2xfrvnifwzprp0f6bhqijshgm0q35axic8d11v4j0kq493dapcyk33n3b";
+      };
+    };
+    "@babel/generator-7.9.6" = {
+      name = "_at_babel_slash_generator";
+      packageName = "@babel/generator";
+      version = "7.9.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz";
+        sha512 = "2lj9ix2jkbjcwwcny57mk3vz11ym83w3hzm76nfbi7mm79hiwg3ycsjm3f2rjax2ra9dlcp7g3q3sffgkhrdlb1xz5nc7svl9c706zs";
+      };
+    };
+    "@babel/helper-function-name-7.9.5" = {
+      name = "_at_babel_slash_helper-function-name";
+      packageName = "@babel/helper-function-name";
+      version = "7.9.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz";
+        sha512 = "1zixbsbwxm9wr0yl929kfnqxj0qkg4i3nyqddlmb4d4iidnm8w45q23wvvi550sm0daay6dvnk0ky7mdx60v9x6ssfx1rycwmji0mr5";
+      };
+    };
+    "@babel/helper-get-function-arity-7.8.3" = {
+      name = "_at_babel_slash_helper-get-function-arity";
+      packageName = "@babel/helper-get-function-arity";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz";
+        sha512 = "12g2gjipd8svg02d12iqbf0rz4m99g36qccn3f81xij3ac4f7kqzx0407xma49h11j88iz8jil2whj7j96wqpwd67abi23xczwd2l0m";
+      };
+    };
+    "@babel/helper-split-export-declaration-7.8.3" = {
+      name = "_at_babel_slash_helper-split-export-declaration";
+      packageName = "@babel/helper-split-export-declaration";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz";
+        sha512 = "1sgm6wd88kmizvig5m0ims97vmlylfii72xcw4k01h2wsw3cpc312s1asnjrq5y472hcqfh2mwn8dwpqkpcvs0ssqwnz1c1xhwz47fz";
+      };
+    };
+    "@babel/helper-validator-identifier-7.9.5" = {
+      name = "_at_babel_slash_helper-validator-identifier";
+      packageName = "@babel/helper-validator-identifier";
+      version = "7.9.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz";
+        sha512 = "3i5wlljsvjm0hxwjq4j1ddq6gcj2k518gh95wkx8qywkf90sb7l3d5aqga7hvfvz44nb2b0aq16jd3394zilmlbqcvczaq5llnapipz";
+      };
+    };
+    "@babel/highlight-7.9.0" = {
+      name = "_at_babel_slash_highlight";
+      packageName = "@babel/highlight";
+      version = "7.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz";
+        sha512 = "2qmdx9wdiv4yy36dc1ljghwd45kq6bhsddcbps8qznsrwvg3zjir6pb7nsfg4ypqrq6z2zif0ysjmwybpqp5xpz6rvymv2pbj54z5ll";
+      };
+    };
+    "@babel/parser-7.9.6" = {
+      name = "_at_babel_slash_parser";
+      packageName = "@babel/parser";
+      version = "7.9.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz";
+        sha512 = "3snmiq1kl2plv8lmznk6n01yccvj4hjyzrvx9yjs4zsjasqy9ds7hs2rkxnc09aisg8hc2vg631hjva9ws5r3xgzyfxzgpwk488i1q2";
+      };
+    };
+    "@babel/template-7.8.6" = {
+      name = "_at_babel_slash_template";
+      packageName = "@babel/template";
+      version = "7.8.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz";
+        sha512 = "0z8kzrpis50nr4vsyqr77cpqad0xfsacw45jdhwsl89mdzpvy8wcvc0kdy938kb0ll069plxhgy3a3fpag408ci2pb47gxzrhy2rcyd";
+      };
+    };
+    "@babel/traverse-7.9.6" = {
+      name = "_at_babel_slash_traverse";
+      packageName = "@babel/traverse";
+      version = "7.9.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz";
+        sha512 = "2r1r1qwdd5bsanldbxriyh607as22kyhdghnvi8dgqf8wy48rvszvd11r9spfk7qvl6rvy6gbhigzap1v7w9r8b22ajxiyv50fw0ykg";
+      };
+    };
+    "@babel/types-7.9.6" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.9.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz";
+        sha512 = "1w94xdz4ygl8zfpdxjqw1kmlxiwx5b3i0hyk1796hdvq18r5mgnz4phdid9qpw57jchvsccdxvwg75qfnhv06kscsyk7zmz2fyg65db";
+      };
+    };
+    "@istanbuljs/nyc-config-typescript-0.1.3" = {
+      name = "_at_istanbuljs_slash_nyc-config-typescript";
+      packageName = "@istanbuljs/nyc-config-typescript";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-0.1.3.tgz";
+        sha512 = "13cw79ii748mkdsafzniqa2gaxqqh4bxyscfj2xj5wi6a6a33nsy5p67xp63razv97ylzqng79622hv3vcvippwbgsj0icvvn1lad0k";
+      };
+    };
+    "@types/chai-3.5.2" = {
+      name = "_at_types_slash_chai";
+      packageName = "@types/chai";
+      version = "3.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/chai/-/chai-3.5.2.tgz";
+        sha1 = "c11cd2817d3a401b7ba0f5a420f35c56139b1c1e";
+      };
+    };
+    "@types/mocha-5.2.7" = {
+      name = "_at_types_slash_mocha";
+      packageName = "@types/mocha";
+      version = "5.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz";
+        sha512 = "14vib3hd2qrjxis7qgcm6db4m8c1vchhadyd28c0xq0cmd2nry092nhcqw93k72pi9hix0qm577w4389wkzwzpgq7hnrh3l3czfv2im";
+      };
+    };
+    "@types/node-10.17.24" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "10.17.24";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-10.17.24.tgz";
+        sha512 = "203233rf4cjd8p3qhb08yq5yl7gjnal68hmw983njk1h96ybchvyp0jch7d8cf3z4x54kyvskmxs6hv48v835kv8wrqkvsm5jy9y875";
+      };
+    };
+    "@types/prop-types-15.7.3" = {
+      name = "_at_types_slash_prop-types";
+      packageName = "@types/prop-types";
+      version = "15.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz";
+        sha512 = "2mpv9nzpnwz01rnkdslfgnd1msv8k12aq7zbdnpmgkd0y6zca0wf10hiaw350rxshs53aw21yv84viva5mb9dkg705s96l7zgf4px19";
+      };
+    };
+    "@types/react-16.9.35" = {
+      name = "_at_types_slash_react";
+      packageName = "@types/react";
+      version = "16.9.35";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/react/-/react-16.9.35.tgz";
+        sha512 = "36zwg69giaj46bhy90wpvxz00qf7p1icq1hzz203z00ss246zfn5nvhmya3gm98w1x7b1c9jjchwra1ssbiixm11qkwy6cwqm5g8jdb";
+      };
+    };
+    "@types/sqlite3-3.1.6" = {
+      name = "_at_types_slash_sqlite3";
+      packageName = "@types/sqlite3";
+      version = "3.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/sqlite3/-/sqlite3-3.1.6.tgz";
+        sha512 = "32fg13qna3zwf7gfkska218lw4daq0fqrks9px80mgy9yzbxrga71nbz7ibrj34r3awldgqmkjb3hp1v1rvxn8gqn280l06lb80l6rq";
+      };
+    };
+    "abbrev-1.0.9" = {
+      name = "abbrev";
+      packageName = "abbrev";
+      version = "1.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz";
+        sha1 = "91b4792588a7738c25f35dd6f63752a2f8776135";
+      };
+    };
+    "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";
+      };
+    };
+    "accepts-1.3.7" = {
+      name = "accepts";
+      packageName = "accepts";
+      version = "1.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
+        sha512 = "2j51dxzbgz22q0k7dhivimfsqx9a0f0h9slfd7n20gz3y1944gx3y7xai54za0x3zhbar6vqiaab2i9p913cwqk414qk3cnrm138pr2";
+      };
+    };
+    "acorn-3.3.0" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz";
+        sha1 = "45e37fb39e8da3f25baee3ff5369e2bb5f22017a";
+      };
+    };
+    "acorn-5.7.4" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "5.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz";
+        sha512 = "0k4pivh1yagdalb26khf36wscaxi3kbv6w48zg5jsll2scl2wq4f4gxcq9ggnzf37l4y446n4a3bmr85wx0fnwk89pvp1n1drabwgyl";
+      };
+    };
+    "acorn-jsx-3.0.1" = {
+      name = "acorn-jsx";
+      packageName = "acorn-jsx";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz";
+        sha1 = "afdf9488fb1ecefc8348f6fb22f464e32a58b36b";
+      };
+    };
+    "ajv-4.11.8" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "4.11.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz";
+        sha1 = "82ffb02b29e662ae53bdc20af15947706739c536";
+      };
+    };
+    "ajv-6.12.2" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "6.12.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz";
+        sha512 = "18zdchlpq20znwglnbc54yvqpr9m7q96qp9zvys27is5c0vxfn5fk8nmwhpnplbxyka88xqqabad0427mbgz7y7mz6azrp6723pxrck";
+      };
+    };
+    "ajv-keywords-1.5.1" = {
+      name = "ajv-keywords";
+      packageName = "ajv-keywords";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz";
+        sha1 = "314dd0a4b3368fad3dfcdc54ede6171b886daf3c";
+      };
+    };
+    "amdefine-1.0.1" = {
+      name = "amdefine";
+      packageName = "amdefine";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz";
+        sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
+      };
+    };
+    "another-json-0.2.0" = {
+      name = "another-json";
+      packageName = "another-json";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/another-json/-/another-json-0.2.0.tgz";
+        sha1 = "b5f4019c973b6dd5c6506a2d93469cb6d32aeedc";
+      };
+    };
+    "ansi-escape-sequences-4.1.0" = {
+      name = "ansi-escape-sequences";
+      packageName = "ansi-escape-sequences";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz";
+        sha512 = "1bsgrlcm8b2imj8i2gjj73a77823sil3nlca1j92v9dc0kw1jgwlpw2xj36g2ip5zvbcq5z4z7y15g0fmvlv7f80rp5vls7gj8bsdbp";
+      };
+    };
+    "ansi-escapes-1.4.0" = {
+      name = "ansi-escapes";
+      packageName = "ansi-escapes";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz";
+        sha1 = "d3a8a83b319aa67793662b13e761c7911422306e";
+      };
+    };
+    "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-3.0.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz";
+        sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+      };
+    };
+    "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 = "1v2gfp292kslpvam0l0h1iba35yi0n7dc6qv6fmxsdyfcp6zakkl13vrh3hzsw4zgh50jrrsg7xb2q2hn4g8a0dmf947mfcylymxanm";
+      };
+    };
+    "ansi-styles-2.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz";
+        sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+      };
+    };
+    "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 = "2lgkskkj4c1fsnrksy0yffda0wss84p8lfiazdc7jli7iqnvrxkzbxjzpvx13lm28qw0zkawfxvz2bdiisc72ccy7hx8i8rm4iijgam";
+      };
+    };
+    "append-transform-1.0.0" = {
+      name = "append-transform";
+      packageName = "append-transform";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz";
+        sha512 = "21v9f6s9z1pwc278lhdv7kixk0aw3x1vb083496wcbggsxkbdkl5fb91fabi2pngpb78xj90khj6b37v6f694k8wcxja7qyi6hksk9z";
+      };
+    };
+    "archy-1.0.0" = {
+      name = "archy";
+      packageName = "archy";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz";
+        sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40";
+      };
+    };
+    "arg-4.1.3" = {
+      name = "arg";
+      packageName = "arg";
+      version = "4.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz";
+        sha512 = "2y8gq3qabgg6wbnvzwm79j1ncabh960rrr2qxq657mv4zsynr92l46mpfgpvk7hq416dpvqi66sy617bzgll3wcxmv7rlc6790bvi77";
+      };
+    };
+    "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 = "17fhywmdjcp8g0ys089i5xg26yajkkg9zg8hyry3fghz75b2pq5vdx997dk5p2sc15r9nsj8rmf4f27g81hi92kzj5q86sdmg5ni553";
+      };
+    };
+    "array-back-1.0.4" = {
+      name = "array-back";
+      packageName = "array-back";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz";
+        sha1 = "644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b";
+      };
+    };
+    "array-back-2.0.0" = {
+      name = "array-back";
+      packageName = "array-back";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz";
+        sha512 = "35jb25pl0pzgmial4xwdqspn62n5h7dyjb58drc3kkk92sv3j4g01zpx2cjb5c90yad3hyqphhyjrg94cnsy6a7wvhgsz7fnajgi6vq";
+      };
+    };
+    "array-back-3.1.0" = {
+      name = "array-back";
+      packageName = "array-back";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz";
+        sha512 = "3aqfm29ppm74q3q0xlxldmf1a3vbkl9a6fbljf211cfgc7asjbkdglbpr6a5a04r0rvnk7y709k6nvaqa2nb3df1ipgqfh2hl1v2jsf";
+      };
+    };
+    "array-flatten-1.1.1" = {
+      name = "array-flatten";
+      packageName = "array-flatten";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz";
+        sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+      };
+    };
+    "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";
+      };
+    };
+    "assert-options-0.1.3" = {
+      name = "assert-options";
+      packageName = "assert-options";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assert-options/-/assert-options-0.1.3.tgz";
+        sha512 = "2kfs1i15ij2snq4ladd424zf44rwhqxcy2qbr1qr0wzznhr1z6l4i142ad4bhqfr3fj8qb1j3968psfjikkmz711yhgigq2d7jxjyhd";
+      };
+    };
+    "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";
+      };
+    };
+    "assertion-error-1.1.0" = {
+      name = "assertion-error";
+      packageName = "assertion-error";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz";
+        sha512 = "07swiwljqy13fyil4y9lp319zcqsgdkchaic1y4dlfi3flh5l4qlwv497g40bnspsl9h857a3ig5assmvjdwv913dppgymkvcsil2wf";
+      };
+    };
+    "async-0.2.10" = {
+      name = "async";
+      packageName = "async";
+      version = "0.2.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-0.2.10.tgz";
+        sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
+      };
+    };
+    "async-1.5.2" = {
+      name = "async";
+      packageName = "async";
+      version = "1.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-1.5.2.tgz";
+        sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a";
+      };
+    };
+    "async-2.6.3" = {
+      name = "async";
+      packageName = "async";
+      version = "2.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-2.6.3.tgz";
+        sha512 = "1g679kw2qqpqx1yd4s778r8rw3cv9qwmib5x3klk64kcl5ndw71bljcpav5jkk6grizlpvrqszsbs6fkmnlvcq5fnz2q33mrnb6zyfd";
+      };
+    };
+    "async-limiter-1.0.1" = {
+      name = "async-limiter";
+      packageName = "async-limiter";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz";
+        sha512 = "0sy81yyf4na58ic2m0ib0prkb9njb1qzl7wf3vlq4hhm4xnwgxaph0lr43gs1sd0rai2xp1h6phlwvni9jiggm94dd54i0wc1cabhvj";
+      };
+    };
+    "asynckit-0.4.0" = {
+      name = "asynckit";
+      packageName = "asynckit";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
+        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+      };
+    };
+    "aws-sign2-0.7.0" = {
+      name = "aws-sign2";
+      packageName = "aws-sign2";
+      version = "0.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
+        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+      };
+    };
+    "aws4-1.9.1" = {
+      name = "aws4";
+      packageName = "aws4";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz";
+        sha512 = "2x4b6c0ny64yv6ljfs6sv82akh200klmnh1m1i18hdj28ksxkr9c0szphnwcasy3g5y3l1wn858wcxnc2gi9q5wql8s678fc61xbhf0";
+      };
+    };
+    "babel-code-frame-6.26.0" = {
+      name = "babel-code-frame";
+      packageName = "babel-code-frame";
+      version = "6.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
+        sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
+      };
+    };
+    "babel-runtime-6.26.0" = {
+      name = "babel-runtime";
+      packageName = "babel-runtime";
+      version = "6.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz";
+        sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe";
+      };
+    };
+    "balanced-match-1.0.0" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
+        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+      };
+    };
+    "base-x-3.0.8" = {
+      name = "base-x";
+      packageName = "base-x";
+      version = "3.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz";
+        sha512 = "0j1z1n32mik68bxyihzyn0fik2lfw6msi9h22hnrdqz1x9dbsql1xyz7590vkpp54d8apf92cvnp1qzf4cqcy2fmv8zq9zqcc0zaps6";
+      };
+    };
+    "basic-auth-2.0.1" = {
+      name = "basic-auth";
+      packageName = "basic-auth";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz";
+        sha512 = "1x9j0wn0a3ia9mwgvicd30w346wzxj86zk9sly5wp07a2mpjm1sk4hk9iwrbcc8z6c72bkhvck6zrxbvcb6p8bbjhald78xw6k9wprl";
+      };
+    };
+    "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";
+      };
+    };
+    "better-sqlite3-5.4.3" = {
+      name = "better-sqlite3";
+      packageName = "better-sqlite3";
+      version = "5.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-5.4.3.tgz";
+        sha512 = "09nnpg0k6lshxwyhfrxn800b90p674w8dv90fmp9xr2sn758475cx4gxjj7vji1i9hcnz65kznbkvkf70rcljz8hq4a9ppszpqpxykw";
+      };
+    };
+    "binary-search-tree-0.2.5" = {
+      name = "binary-search-tree";
+      packageName = "binary-search-tree";
+      version = "0.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz";
+        sha1 = "7dbb3b210fdca082450dad2334c304af39bdc784";
+      };
+    };
+    "bintrees-1.0.1" = {
+      name = "bintrees";
+      packageName = "bintrees";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz";
+        sha1 = "0e655c9b9c2435eaab68bf4027226d2b55a34524";
+      };
+    };
+    "bluebird-2.11.0" = {
+      name = "bluebird";
+      packageName = "bluebird";
+      version = "2.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz";
+        sha1 = "534b9033c022c9579c56ba3b3e5a5caafbb650e1";
+      };
+    };
+    "bluebird-3.7.2" = {
+      name = "bluebird";
+      packageName = "bluebird";
+      version = "3.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz";
+        sha512 = "2v12rs2wvv94hrlyv0nadxn9x11796k9mk7a8vg0bqsry8m2pbyy9dribalwikh34qkk3rp6gnis849y5z9x5mxzbbdgkfhc3l674sy";
+      };
+    };
+    "body-parser-1.19.0" = {
+      name = "body-parser";
+      packageName = "body-parser";
+      version = "1.19.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz";
+        sha512 = "2rl5ww96fwgmxdqhqmnknsaafw44vsr2xz7vf7nax8qz9jy8bmmdyawcy6yfny0wm7pi8m2jssakzjc1nin8z8207kv0gclpnrhy4bn";
+      };
+    };
+    "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 = "248cnpbbf0p32h53rd3g8wzpgrkaj4p078ra1g6l16f82i6bzkvmhwqan5rk88apbll9ly1476kngd7f7z27i3b3zxpbb3064f8yaw8";
+      };
+    };
+    "browser-request-0.3.3" = {
+      name = "browser-request";
+      packageName = "browser-request";
+      version = "0.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz";
+        sha1 = "9ece5b5aca89a29932242e18bf933def9876cc17";
+      };
+    };
+    "browser-stdout-1.3.1" = {
+      name = "browser-stdout";
+      packageName = "browser-stdout";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz";
+        sha512 = "21jjhrf3wdmzsfqgva5s7shs1wdmcdxsjvi75p8z7i0q2i6n3654gpxjqlhbnpmzm25cpkshyi8swy13017qkp9m7xnbgw0bwiia45a";
+      };
+    };
+    "bs58-4.0.1" = {
+      name = "bs58";
+      packageName = "bs58";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz";
+        sha1 = "be161e76c354f6f788ae4071f63f34e8c4f0a42a";
+      };
+    };
+    "buffer-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 = "3c0m16i3fdv3vlq2zz8dakrnhqvs16gvggj485f91fiaa5v0p7pyhamcdw5fggr7djzd8nshmvz4hgbp7714smqxlld2an28q8if1ri";
+      };
+    };
+    "buffer-writer-2.0.0" = {
+      name = "buffer-writer";
+      packageName = "buffer-writer";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz";
+        sha512 = "21laqrygizzy6ccv03l1af9pq07ligp755ybgfzln99lh62xnn5sxhw6qlw717g9dym9pa2cg0k9mz5r1nkb0hckxnk9mal6swnkdkb";
+      };
+    };
+    "builtin-modules-1.1.1" = {
+      name = "builtin-modules";
+      packageName = "builtin-modules";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz";
+        sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
+      };
+    };
+    "bytes-3.1.0" = {
+      name = "bytes";
+      packageName = "bytes";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz";
+        sha512 = "073ccjmvxf726gcgzy0pksvi8x8r51dq6hyv69sc75ynrin7anwk9q3sqhbbbjhqjjrmq42s5f5gdbcgj2jxai6ldpyq6y2ny78payd";
+      };
+    };
+    "caching-transform-3.0.2" = {
+      name = "caching-transform";
+      packageName = "caching-transform";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz";
+        sha512 = "3dq981s5b229k9dxfmzmn1dw9vk1ylcnna6hbfkf4ppvk6cai8fw5gmyxl0jnrvz933ipq61qydvq20c2jymgr88qrlvpb1g6zirn1j";
+      };
+    };
+    "caller-path-0.1.0" = {
+      name = "caller-path";
+      packageName = "caller-path";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz";
+        sha1 = "94085ef63581ecd3daa92444a8fe94e82577751f";
+      };
+    };
+    "callsites-0.2.0" = {
+      name = "callsites";
+      packageName = "callsites";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz";
+        sha1 = "afab96262910a7f33c19a5775825c69f34e350ca";
+      };
+    };
+    "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 = "0kg17fpj4c7akmpa9x0a3fi5glrc3y5k3ppjcpb3pd02ylg3fnzfdvz0pixd223crbs5980sjaxsk9q8kcqxm5d9cb7rlkv3m614vrg";
+      };
+    };
+    "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";
+      };
+    };
+    "chai-3.5.0" = {
+      name = "chai";
+      packageName = "chai";
+      version = "3.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz";
+        sha1 = "4d02637b067fe958bdbfdd3a40ec56fef7373247";
+      };
+    };
+    "chalk-1.1.3" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz";
+        sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+      };
+    };
+    "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 = "2wr55z22i274wadq2cvpxga28a8igq9whc4m1q06sz5sn2hc4amradd5vd02wm92vyfg2qrb0bysd5drv7mfmlb2wqdf939v5zvxn1j";
+      };
+    };
+    "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 = "1b03acmav1awkygrda5h64pn8msd6wda119q553hik728i1j72bfqyq7yzn1x7nmw28hvg9mcyh7krsj8vwsq3karnn55mj6smip7cc";
+      };
+    };
+    "circular-json-0.3.3" = {
+      name = "circular-json";
+      packageName = "circular-json";
+      version = "0.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz";
+        sha512 = "3hadrrn41znfv3gbqjxf0ckzjmns7w7zgsqw73sdz8nclaff9b0cg1mqhz3zxw3ndnmqqvrdcfykkfpv2v1pv4jdyzcccbn3hsbg4ji";
+      };
+    };
+    "cli-cursor-1.0.2" = {
+      name = "cli-cursor";
+      packageName = "cli-cursor";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz";
+        sha1 = "64da3f7d56a54412e59794bd62dc35295e8f2987";
+      };
+    };
+    "cli-width-2.2.1" = {
+      name = "cli-width";
+      packageName = "cli-width";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz";
+        sha512 = "29wd4bd0yz4r5alp6nvn6vd2rsxdpw0cf6nn9ws5cvmcb7dmc6xh34xqpi2lqmillk672m5wfs6yh3qny7m4fb1jgha01sf387ic4qr";
+      };
+    };
+    "cliui-5.0.0" = {
+      name = "cliui";
+      packageName = "cliui";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz";
+        sha512 = "1fg1afsij2xwc4gpqbyhrp3s7q19w7bmii0ghmdv6cdx6giz3v0yqn25i3g7fw2lpi388jpvaf6nf9z2c7xp7w7psrww7569548d1rx";
+      };
+    };
+    "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";
+      };
+    };
+    "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 = "3xh3l9zhh6dav7pp5hy88kbb6c52j0pf331ywpp6w2jaf94w25fjn4am930775mskxy75cxl90fji17cym40ivslxxlpcrlxgkmsalc";
+      };
+    };
+    "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 = "0d5pmdh1dh0qbpjrzdczwqkh0jwf8gxhq71mknwlxqz80h1q6kdrpghq4qfp0y4v650ia2jdihmzpb2n8hg00h72lnx05dgvysi9w21";
+      };
+    };
+    "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-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 = "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";
+      };
+    };
+    "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 = "2saczc8hcdmgns1cp1g1p7g2sq4yksrik0ffvfkhkavmmgx8haqm034a4c9zj8im6kfjh00n2xi360yqfy7vbsi98zri0943r72mrbb";
+      };
+    };
+    "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 = "36j3cgfzngcjms1c0yfn487ibflffmb6hxgrknxbyrxrflc4kybm2r8a0mc1v8ljj7rbb7cjd54v2bimqb6rw0q5sqvwxznhfh8xpxy";
+      };
+    };
+    "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 = "1v09nkip7zpn3k3prkkg53w331rhczpfgcqb0q42i97nafra43l2khl5zvhd4ar0qmh145nmw7944jy8p108ny0xpgy29gf2wqph0qm";
+      };
+    };
+    "command-line-args-4.0.7" = {
+      name = "command-line-args";
+      packageName = "command-line-args";
+      version = "4.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz";
+        sha512 = "369xdm4s4h0m4f4n9ni52n35d2qvrj7gp457494c3d3jn961l91ddc9rqhnqwih6zbl4901r7qzlg1h5ivqvyv9fz81pj200jylyiv9";
+      };
+    };
+    "command-line-usage-4.1.0" = {
+      name = "command-line-usage";
+      packageName = "command-line-usage";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz";
+        sha512 = "3mbhsprm9k85gz36aa9g85lj0j4473iwnk838wwpzjwy7xc84x4g8c3k895z7rjqf3l56vzhnp8iwd27yda429d01fsmr3xvw0vq51k";
+      };
+    };
+    "commander-2.15.1" = {
+      name = "commander";
+      packageName = "commander";
+      version = "2.15.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz";
+        sha512 = "1mb8z6hhy74rfdgj3spmk52sdqa5bb2w5wp28z3md1daqcca4vbbsg66wz8hdhrv0fnnmf8yzdkmnw3c373vcccmyizzlnmbpsd6msn";
+      };
+    };
+    "commander-2.20.3" = {
+      name = "commander";
+      packageName = "commander";
+      version = "2.20.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz";
+        sha512 = "1qqrwy7z476gqa94kjjyyzyi3x49k28ji7znbc65plrp67yzmpa2yyslh6bl965yl4jqb2fwb2ljzhgcvv2xxj8ab86n5rgryc6958s";
+      };
+    };
+    "commondir-1.0.1" = {
+      name = "commondir";
+      packageName = "commondir";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz";
+        sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
+      };
+    };
+    "concat-map-0.0.1" = {
+      name = "concat-map";
+      packageName = "concat-map";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    };
+    "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 = "05nnf80j9ls12y3cw2dfnc6rmand3ya5sx9cqn9dgg19ljzdnyfjjv8ig79xi73gr2y4rkfzn9wjip2zzwp5n2d49njd3ki2a1c3cfv";
+      };
+    };
+    "content-disposition-0.5.3" = {
+      name = "content-disposition";
+      packageName = "content-disposition";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz";
+        sha512 = "3976ggkw1lp21a6m3s19blb9a74kq7a0spw47v0m3vvi1k5wiamrsn20slcr9byx80x2la2sppkwjp7x10gc58142dl7412pvpv84qk";
+      };
+    };
+    "content-type-1.0.4" = {
+      name = "content-type";
+      packageName = "content-type";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
+        sha512 = "1f4y61wc913jrnga7nny83gzf9l2488q6sl1ry9lbwgh5x5d3va0xcc0xrmjk6gdxl6d4r6rsk800xp5bazhjrx05yx1wpc8c8gg0w4";
+      };
+    };
+    "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 = "2hgf7brri4yaflx3y24d2cvznsk0km17mq8mp7sb2hhskf45hcamlgf8vzzbimw36lw128bjbf442p2rx96d1bhn9sk044p69gn8lp0";
+      };
+    };
+    "cookie-0.4.0" = {
+      name = "cookie";
+      packageName = "cookie";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz";
+        sha512 = "1g7bscknfpc6zgznz77hvll6cy5m9jv7zg9nkpdqzmgi0vhv75kh8iyqf6rdslkml47l3jihsz7hy0i8x5n6bfx9ba0kvvrp9y7qypq";
+      };
+    };
+    "cookie-signature-1.0.6" = {
+      name = "cookie-signature";
+      packageName = "cookie-signature";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz";
+        sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+      };
+    };
+    "core-js-2.6.11" = {
+      name = "core-js";
+      packageName = "core-js";
+      version = "2.6.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz";
+        sha512 = "1db6yjq48a8kkrfrxd0miblcf7nk2b4afgpr8dfgjl3jvz3xclvrqmz590hx2h59jh79lgl35r101lw5jqs46qybizdbpgzljjyf277";
+      };
+    };
+    "core-util-is-1.0.2" = {
+      name = "core-util-is";
+      packageName = "core-util-is";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+      };
+    };
+    "cp-file-6.2.0" = {
+      name = "cp-file";
+      packageName = "cp-file";
+      version = "6.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz";
+        sha512 = "36fqmhj9mdqndy7720hnfvy3gcxds8yj3p7aq8xcj6k5drjcpk7pxvmpl1xxaki0bkvhh7xzpcsf107mp43j97g7phqg7l1qvhxasvy";
+      };
+    };
+    "cross-spawn-4.0.2" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz";
+        sha1 = "7b9247621c23adfdd3856004a823cbe397424d41";
+      };
+    };
+    "csstype-2.6.10" = {
+      name = "csstype";
+      packageName = "csstype";
+      version = "2.6.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz";
+        sha512 = "3zi93ipbn2dfs2hq0iacr3sv338nn216jb30q0a1pckq5jn70yhc68zy2l0dpya9cy7a9qh626nkbxfvf8ssxwg1568jw1qjnlh2zhg";
+      };
+    };
+    "cycle-1.0.3" = {
+      name = "cycle";
+      packageName = "cycle";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz";
+        sha1 = "21e80b2be8580f98b468f379430662b046c34ad2";
+      };
+    };
+    "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 = "0abwyrfpd8rm9bwzgcaxcwd92d07c31cxw1fgs7h51ri2igw4vib1a5x69cg14wqisjad1d0fhglca6218qm9dngr17yhwv8f295bcv";
+      };
+    };
+    "dashdash-1.14.1" = {
+      name = "dashdash";
+      packageName = "dashdash";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
+        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+      };
+    };
+    "debug-2.6.9" = {
+      name = "debug";
+      packageName = "debug";
+      version = "2.6.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+        sha512 = "0q0fsr8bk1m83z0am0h2xn09vyfcf18adscxms8hclznwks1aihsisd96h8npx0idq5wwnypnqrkyk25m5d9zh3dk7rjs29nybc8bkc";
+      };
+    };
+    "debug-3.1.0" = {
+      name = "debug";
+      packageName = "debug";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz";
+        sha512 = "3g1hqsahr1ks2kpvdxrwzr57fj90nnr0hvwwrw8yyyzcv3i11sym8zwibxx67bl1mln0acddrzpkkdjjxnc6n2cm9fazmgzzsl1fzrr";
+      };
+    };
+    "debug-4.2.0" = {
+      name = "debug";
+      packageName = "debug";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz";
+        sha512 = "2r3rwk7kd7wavqhm68cmhi6nkmciv9x2ciqm6sws5dmfg7dvzvyxhjk1469sghvq7s705pq4zc5h4915xmpcm61ckik9g7wirqsfz91";
+      };
+    };
+    "decamelize-1.2.0" = {
+      name = "decamelize";
+      packageName = "decamelize";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
+        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+      };
+    };
+    "deep-eql-0.1.3" = {
+      name = "deep-eql";
+      packageName = "deep-eql";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz";
+        sha1 = "ef558acab8de25206cd713906d74e56930eb69f2";
+      };
+    };
+    "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 = "0wc0sqg1aqx864bxf8xa4j8ncrc8rcvmiaj1sp3x1np2i8hdjybzjfd0w9gbf1yasmwycwzzg1mz6smr3q42hhv4pjx2qcgwqhg3q9c";
+      };
+    };
+    "deep-is-0.1.3" = {
+      name = "deep-is";
+      packageName = "deep-is";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
+        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+      };
+    };
+    "default-require-extensions-2.0.0" = {
+      name = "default-require-extensions";
+      packageName = "default-require-extensions";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz";
+        sha1 = "f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7";
+      };
+    };
+    "delayed-stream-1.0.0" = {
+      name = "delayed-stream";
+      packageName = "delayed-stream";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
+        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+      };
+    };
+    "depd-1.1.2" = {
+      name = "depd";
+      packageName = "depd";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz";
+        sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+      };
+    };
+    "depd-2.0.0" = {
+      name = "depd";
+      packageName = "depd";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz";
+        sha512 = "2phijq20j255bs4jjs11j5pa0x7y1084k6ch9xa8wgzp71zzgbpm23wyzbcs0mszvj971l9i5aav40sddm000484sl3ij4xzvlcgfc3";
+      };
+    };
+    "destroy-1.0.4" = {
+      name = "destroy";
+      packageName = "destroy";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz";
+        sha1 = "978857442c44749e4206613e37946205826abd80";
+      };
+    };
+    "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";
+      };
+    };
+    "diff-4.0.2" = {
+      name = "diff";
+      packageName = "diff";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz";
+        sha512 = "3ndiq7a8qsn2j6vlq5c6d38ynlydlhvk6q01rj321lcarrh0z7721w6cbrdw7lkx6pyfms59y1jkqcl6g2ir1rz5xr17q40lk26djg7";
+      };
+    };
+    "discord-markdown-2.3.1" = {
+      name = "discord-markdown";
+      packageName = "discord-markdown";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/discord-markdown/-/discord-markdown-2.3.1.tgz";
+        sha512 = "3s87h4335vaxhf4j9x7az6z67lzf5yb5lw7xsw1ga0zi8qn7vn6jz12p0bwvixmha61prkg08yf11jdiq11plhmzh4ibk68k6q22qw4";
+      };
+    };
+    "discord.js-11.6.4" = {
+      name = "discord.js";
+      packageName = "discord.js";
+      version = "11.6.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/discord.js/-/discord.js-11.6.4.tgz";
+        sha512 = "19kqvgy68w2f4asb26dpm7r535l86xyz6xhzhzygb7g01fzk64yq6a6z351b512nyld9wq1zxiba6jgdrx6w431lsik86pfacgspbkh";
+      };
+    };
+    "doctrine-2.1.0" = {
+      name = "doctrine";
+      packageName = "doctrine";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz";
+        sha512 = "0iz6zh5d0kqs0ndd1ydsj4vaf2x3k3p0k5a7b75gsbhkqaqqq93dgsa2bpifvw7svck2sndd21mv7mp60q111rbghpssp0rxs9956fz";
+      };
+    };
+    "ecc-jsbn-0.1.2" = {
+      name = "ecc-jsbn";
+      packageName = "ecc-jsbn";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+        sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+      };
+    };
+    "ee-first-1.1.1" = {
+      name = "ee-first";
+      packageName = "ee-first";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
+        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+      };
+    };
+    "emoji-regex-7.0.3" = {
+      name = "emoji-regex";
+      packageName = "emoji-regex";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
+        sha512 = "2s4i22ccvwa2l4xwl9yz6mkyn2kpf58hp1nqiwmmgqlpyr57345i3ll0l4656ryik6a6wz1lgk4vbl6y0dwj5hx2kcbpv0h8924n00b";
+      };
+    };
+    "enabled-1.0.2" = {
+      name = "enabled";
+      packageName = "enabled";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz";
+        sha1 = "965f6513d2c2d1c5f4652b64a2e3396467fc2f93";
+      };
+    };
+    "encodeurl-1.0.2" = {
+      name = "encodeurl";
+      packageName = "encodeurl";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
+        sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+      };
+    };
+    "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";
+      };
+    };
+    "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 = "3igrl2amb9mpa9d2z6qghz3ljqd7amjla8ahfs5fdgl0w52pw6gz3y32q5fk229yvfyg3x9kpfygadcm2w0lv4hv4nj25cyd8v4glgd";
+      };
+    };
+    "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 = "3wl9jgj276xsjcf4gvc9w7gg403rg02s1i24r7scvhwg0mmgbqwsszjk94xnzfd3wj4y2khk6wbz8dm9j6lvlcwrbbd324d1svr5kay";
+      };
+    };
+    "es6-error-4.1.1" = {
+      name = "es6-error";
+      packageName = "es6-error";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz";
+        sha512 = "1b98y4j9fy6c2wm7ys3csnyfg8cn40sy2g958i45fdh5bnx1lkl19d4508aldabga5rm1q5hzxq68yjdyb8n6qxb8925x1b2cbzwvsj";
+      };
+    };
+    "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 = "0sgbv9jpq91di424qar8xiw36az4msxqhgpk1ixq5hv4wdbgaxs45q8i671icpg085bh1j7hj93iyszp7x9fmhld30jj3kff6gri7il";
+      };
+    };
+    "es6-weak-map-2.0.3" = {
+      name = "es6-weak-map";
+      packageName = "es6-weak-map";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz";
+        sha512 = "2qdf1gxkch8gczdhnkac49g4063ij902aqabbb4rix1ab73r4cpi47irpq7w7w3p26fp6ksfvim16gvq4cksfzc7xjfsk6fc7gsd6x7";
+      };
+    };
+    "escape-html-1.0.3" = {
+      name = "escape-html";
+      packageName = "escape-html";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
+        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+      };
+    };
+    "escape-string-regexp-1.0.5" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+      };
+    };
+    "escodegen-1.8.1" = {
+      name = "escodegen";
+      packageName = "escodegen";
+      version = "1.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz";
+        sha1 = "5a5b53af4693110bebb0867aa3430dd3b70a1018";
+      };
+    };
+    "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";
+      };
+    };
+    "espree-3.5.4" = {
+      name = "espree";
+      packageName = "espree";
+      version = "3.5.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz";
+        sha512 = "3a07jjjp8g8mdayw3n9l0p0llw7cfipjifan2ccyn2vm1zyafrmv5cj11rc6qmk7ibbq1vc4xxc3sfr54qpgxmxiizj0ck63d1hh1y8";
+      };
+    };
+    "esprima-2.7.3" = {
+      name = "esprima";
+      packageName = "esprima";
+      version = "2.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz";
+        sha1 = "96e3b70d5779f6ad49cd032673d1c312767ba581";
+      };
+    };
+    "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 = "3h999di4dnwxb22lxlb7cbz42nalrv8g8sqdvrkkl5c27gnwhp1rva4039hmq6g1i0y4mfjgx6p4i2vwxxl0zlahfzdd9fl1qbqasvq";
+      };
+    };
+    "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 = "0fw77wap66ym3sgz0k77rjpjc10mdk83a7973khs6rhyvxkd73xixz1abmlgwz89xnk98cr2gp02p7a9maaav0na3igklh6sjvnynm2";
+      };
+    };
+    "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 = "06zyknk70y80n428x20wvjqy5822wgz2yaxzw387njnz3ar6ixzjcxzr2jsl8wrm0m9jpa4ysbcr9znpk6gbkqd7wby084zxw3l317b";
+      };
+    };
+    "estraverse-1.9.3" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "1.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz";
+        sha1 = "af67f2dc922582415950926091a4005d29c9bb44";
+      };
+    };
+    "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 = "2kh3lczc7smb84ryllqrdvrknxl3h47khh7li6n9m76mj9jfh1ahz2jm8ffpcaac7i4k8zkf3sc3nczzp7djgqmsi6wrkynywlygnfz";
+      };
+    };
+    "estraverse-5.1.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz";
+        sha512 = "09i9krjn6a49yr3gbnhpfqm7yyrq5mnsgjing0bdpx83lqv3wcf4ll85xhj35khcifmh0ka3alz557d9j02xisrrczg3llimxf22ahp";
+      };
+    };
+    "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 = "3m321j8gmjllmmi1zyvbz0lsmkkjq26bvfr8niwr5b8saxh6icixmpxixyspjb40l54vpx3r3zvln190i47cx16y5x2lf1qg6liqnwi";
+      };
+    };
+    "etag-1.8.1" = {
+      name = "etag";
+      packageName = "etag";
+      version = "1.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz";
+        sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+      };
+    };
+    "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";
+      };
+    };
+    "eventemitter3-4.0.4" = {
+      name = "eventemitter3";
+      packageName = "eventemitter3";
+      version = "4.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz";
+        sha512 = "2cj4h27lly85zb08gprjrkb92l8q8l1977704j7acj7rif052jiqap3l8d7zpdn9krqqi7if1f2cxp7f584045vr3l1pdviflp9ammf";
+      };
+    };
+    "exit-hook-1.1.1" = {
+      name = "exit-hook";
+      packageName = "exit-hook";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz";
+        sha1 = "f05ca233b48c05d54fff07765df8507e95c02ff8";
+      };
+    };
+    "express-4.17.1" = {
+      name = "express";
+      packageName = "express";
+      version = "4.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz";
+        sha512 = "3i2sxjf2x1r9wbfdyh5ll8ybbnqq6n4xfxdlc4dsqhssljrlih18csqg142lf16lcfcdgsmvf9pff0rzxjw7p0shnlmpajipwxpswlq";
+      };
+    };
+    "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 = "3n50kbfjicn887f19ragi6k288srkjidzvcnphnb2f8bqw4vn10y73p3ryjyqq0xgrdxnwhy2j9favm7pfb3j3vhf5dmi8licsbkv19";
+      };
+    };
+    "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 = "3zad2109w3q3gh46s5msrnzfy2nl581sqpy20b52fs7v5pdjh3irpg7szl3xvh4sfy63218jy8ry6qlnir3baxbbfrb03swkw5swfky";
+      };
+    };
+    "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.1" = {
+      name = "fast-deep-equal";
+      packageName = "fast-deep-equal";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
+        sha512 = "1j7wq3vqvfgnpd2sjblnlgryxlic2fsy343fx8w4ywb2mngj1w5afq8fmly8cp9fi66dhz1fhcfpn23g5zasnzs6n1snb83qkkilhgi";
+      };
+    };
+    "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 = "0gz06zkjlqc4r59ka14n3vwqjdgn40zd8r115ql3rkwqb7j42frmnsj3axr7p2md8ik52nqjn3myyv8ddavdhl4cq3xz4wbbz07y5wn";
+      };
+    };
+    "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 = "1ab0spv3wadhidsh9x8qar1ryn7ahv308yzc5cl32wssk99rr7vrkcs00vn2kggz6drps08vk24gi9gmqpg39jd1rnaryykvh4vmnaj";
+      };
+    };
+    "fecha-2.3.3" = {
+      name = "fecha";
+      packageName = "fecha";
+      version = "2.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz";
+        sha512 = "1v95kkfm8jnmrsplzk6zhsc2ngkvv2478pnvjnkl8z104b0mx3khf7xdps3dyi8d94kb73xcr5b2dmh58by9sirwcj0qk56hsf82hcm";
+      };
+    };
+    "figures-1.7.0" = {
+      name = "figures";
+      packageName = "figures";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz";
+        sha1 = "cbe1e3affcf1cd44b80cadfed28dc793a9701d2e";
+      };
+    };
+    "file-entry-cache-2.0.0" = {
+      name = "file-entry-cache";
+      packageName = "file-entry-cache";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz";
+        sha1 = "c392990c3e684783d838b8c84a45d8a048458361";
+      };
+    };
+    "file-stream-rotator-0.4.1" = {
+      name = "file-stream-rotator";
+      packageName = "file-stream-rotator";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.4.1.tgz";
+        sha512 = "1jr6bdf22x3f4ql12ympal24yy1ggbxv5xl73ri70llghlcxr8wi9s8j40b5rf0h0sxm9m3g27qgck04aa5d7f9v19c0ws40bfrlxjv";
+      };
+    };
+    "fill-keys-1.0.2" = {
+      name = "fill-keys";
+      packageName = "fill-keys";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz";
+        sha1 = "9a8fa36f4e8ad634e3bf6b4f3c8882551452eb20";
+      };
+    };
+    "finalhandler-1.1.2" = {
+      name = "finalhandler";
+      packageName = "finalhandler";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz";
+        sha512 = "1cfqk6g78cb12b1cki4pbcspsy40d0yny513myqji716njyhc5hrj7ll539kz96m6vn27168hhyqvd52cr5x1cs85mm7igfkrdrq1b8";
+      };
+    };
+    "find-cache-dir-2.1.0" = {
+      name = "find-cache-dir";
+      packageName = "find-cache-dir";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz";
+        sha512 = "0wjlwmvadzac6hwmxv6hsc16z3285i2y0nkwpg4366flza0rx30s3ncx93xn8hkkpxr493zi5b0h94jczinr87h2m6gbhrl265qzbjf";
+      };
+    };
+    "find-replace-1.0.3" = {
+      name = "find-replace";
+      packageName = "find-replace";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz";
+        sha1 = "b88e7364d2d9c959559f388c66670d6130441fa0";
+      };
+    };
+    "find-up-3.0.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";
+        sha512 = "2bg49lifm64h5jqjc20612wrx7cazw9np9ms02ys94kif4li8cp5in4rvmb1c1ssa8yhbsqkgprykkj4lf3jbz8qrgp1mf8c93gl86p";
+      };
+    };
+    "flat-cache-1.3.4" = {
+      name = "flat-cache";
+      packageName = "flat-cache";
+      version = "1.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz";
+        sha512 = "2v31jbrdi7rjpnykckk84xwg2d3bblj0ak8la2fwc83xvq8iw90jsnda4nzqk9rw9pg23m6p9wyysmz5qgakqbbjgicfs90p7f8232p";
+      };
+    };
+    "foreground-child-1.5.6" = {
+      name = "foreground-child";
+      packageName = "foreground-child";
+      version = "1.5.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz";
+        sha1 = "4fd71ad2dfde96789b980a5c0a295937cb2f5ce9";
+      };
+    };
+    "forever-agent-0.6.1" = {
+      name = "forever-agent";
+      packageName = "forever-agent";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
+        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+      };
+    };
+    "form-data-2.3.3" = {
+      name = "form-data";
+      packageName = "form-data";
+      version = "2.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz";
+        sha512 = "0jj3hgqp9pmxmfavx6rvdfl3r4yf98clpsarqadz3hq0dxhjlh2ppd9x8bvmaq3nwjdqpdvqx25pwyin4ipixhgsn7s3p9fcc3wllnn";
+      };
+    };
+    "forwarded-0.1.2" = {
+      name = "forwarded";
+      packageName = "forwarded";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz";
+        sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+      };
+    };
+    "fresh-0.5.2" = {
+      name = "fresh";
+      packageName = "fresh";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz";
+        sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+      };
+    };
+    "fs-minipass-1.2.7" = {
+      name = "fs-minipass";
+      packageName = "fs-minipass";
+      version = "1.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz";
+        sha512 = "1644yfnzfqikaff5s68dm4qfrblxrz68ynigkyzyixjqazxlli0svj1nxkawz35sv2vb3vjh41f1rhg0j4nr770a53fzqbjc4j94r0r";
+      };
+    };
+    "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";
+      };
+    };
+    "generate-function-2.3.1" = {
+      name = "generate-function";
+      packageName = "generate-function";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz";
+        sha512 = "0lp1r8njdds2dp6nd5drc8f3xhg0bishvbn8g54s9ka42yss4lvq84sg465vgb2bw45kww8r4cilsw629nsnn34zkkfny8dyccpkq3r";
+      };
+    };
+    "generate-object-property-1.2.0" = {
+      name = "generate-object-property";
+      packageName = "generate-object-property";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz";
+        sha1 = "9c0e1c40308ce804f4783618b937fa88f99d50d0";
+      };
+    };
+    "get-caller-file-2.0.5" = {
+      name = "get-caller-file";
+      packageName = "get-caller-file";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
+        sha512 = "0b7da6kb3xqk26cw4i6kb1lk911z06z53if2g8l23hmfpbhl6vfbn8iip55j1yplbqnly2abb9d349r6ky2z570839q3p9z2gf4y88g";
+      };
+    };
+    "getpass-0.1.7" = {
+      name = "getpass";
+      packageName = "getpass";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz";
+        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+      };
+    };
+    "glob-5.0.15" = {
+      name = "glob";
+      packageName = "glob";
+      version = "5.0.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz";
+        sha1 = "1bc936b9e02f4a603fcc222ecf7633d30b8b93b1";
+      };
+    };
+    "glob-7.1.2" = {
+      name = "glob";
+      packageName = "glob";
+      version = "7.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz";
+        sha512 = "08vjxzixc9dwc1hn5pd60yyij98krk2pr758aiga97r02ncvaqx1hidi95wk470k1v84gg4alls9bm52m77174z128bgf13b61x951h";
+      };
+    };
+    "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 = "020qv13jbi1v4y5xavf6fw08h9svy4q9p67m4avkrrhgdjmk0c5k3h19bv7k6yn1vfxljpjw9kg81fbdg9v83cjplxvkn3v4v1v21ig";
+      };
+    };
+    "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 = "1ab6f0n8yjl3zkl6dwhvxpxh63b4acc7nj7i21z3dx1fz1jv1c3673qpkwiavmcbbf8jlkxapx0x8ybzz5w2yra4ln24lh687y6kq2q";
+      };
+    };
+    "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 = "18psd5ig23apaw07k4mma3z1hi2ndfwsqkm05hxashnf5lf7mpfs6kjiircc0x3x3q15j2x2j4zfzsqacxvfsmw40zjchn44bfccjab";
+      };
+    };
+    "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 = "33j4jb5azar4wfbbpminq8hbgynq609fdgalq27sh4ff5q4xff7ddlibm9rpy6zhjakxifnd37hcxjqhr8m5qjr054xpxbvj4s8ycjs";
+      };
+    };
+    "growl-1.10.5" = {
+      name = "growl";
+      packageName = "growl";
+      version = "1.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz";
+        sha512 = "146i7if4fjml1p6xw1ybb7vm22k6i8yc7r8wcw8yia7qy385w1s6j18ip91g5mv47zvv5fw5m8kpzlaayjs183fkpg174hbw4xgh6m8";
+      };
+    };
+    "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 = "1f5wy9r0rqpp3whv7fm6kzj4ksqmrpvg8q4gkzyr6734zlmfqm39fmqay5r3r6da3xh9c06k4sjla2hdf9jjhibgl02qzh14w083zfm";
+      };
+    };
+    "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.3" = {
+      name = "har-validator";
+      packageName = "har-validator";
+      version = "5.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
+        sha512 = "3kaldgfsh3lfvgvw31s8b7q345zf7ixjahllncdckcw6qfs3gnbsamdxgs9kfigq7rwmja7v51ghh7y0rsp6q7jmvmbydhh645wxnxh";
+      };
+    };
+    "has-ansi-2.0.0" = {
+      name = "has-ansi";
+      packageName = "has-ansi";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz";
+        sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+      };
+    };
+    "has-flag-1.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz";
+        sha1 = "9d9e793165ce017a00f00418c43f942a7b1d11fa";
+      };
+    };
+    "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";
+      };
+    };
+    "hasha-3.0.0" = {
+      name = "hasha";
+      packageName = "hasha";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz";
+        sha1 = "52a32fab8569d41ca69a61ff1a214f8eb7c8bd39";
+      };
+    };
+    "he-1.1.1" = {
+      name = "he";
+      packageName = "he";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/he/-/he-1.1.1.tgz";
+        sha1 = "93410fd21b009735151f8868c2f271f3427e23fd";
+      };
+    };
+    "highlight.js-9.18.1" = {
+      name = "highlight.js";
+      packageName = "highlight.js";
+      version = "9.18.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.1.tgz";
+        sha512 = "0k5561x5q6pikbkjkjafw627bsdg3b59p5qqbak16l5jbcrc5m663hdzf6hlx5qxzskqa28gfzfxdzxdz5mv6q918kpnb7l7rilmd9s";
+      };
+    };
+    "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 = "19a25b4xb3hg00d1nsirc3xfcc07rplbh6msa49rgc8xg5rg38y1z8rfrf0dmll8k4jaml8z337bi6y2cgah66jnwxinn0sch5k7z3z";
+      };
+    };
+    "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 = "1z4nsaa6llc46vq51gz0i545br2rb0g6hlbrm6sr1k9yfi6fdfsymy00nv4n2af2hnhspd56xgpwfhf90bsb6l8g5wwpq08vnsqqs0z";
+      };
+    };
+    "http-errors-1.7.2" = {
+      name = "http-errors";
+      packageName = "http-errors";
+      version = "1.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz";
+        sha512 = "13c4825kzqlxdqfjrlrwh15ira0bjm9m3b8qcrfzaysiky1m3gb6dv6gcjgpnap9mbl0fajqiibzp1w5r8qnyn8glaj4wgzf6vh2i5r";
+      };
+    };
+    "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";
+      };
+    };
+    "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 = "2n3ygx6km56rdcd5kq52bs2113xqm3vlw2kb9r7pnmxd2qhxrfahp2ngc4w7x8x76fyfpapnixnbjq1i24nc11mj6q7rghwj2fifwxz";
+      };
+    };
+    "ignore-3.3.10" = {
+      name = "ignore";
+      packageName = "ignore";
+      version = "3.3.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz";
+        sha512 = "2x7za00gs7ipwcq29bslxcdv7j47m28jx14n9ybs5h2icr4024jn5ppmbs6953g2qb3amhs1gg5x0s48ky3mk7ybi36wchsb7kks2ry";
+      };
+    };
+    "immediate-3.0.6" = {
+      name = "immediate";
+      packageName = "immediate";
+      version = "3.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz";
+        sha1 = "9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b";
+      };
+    };
+    "imurmurhash-0.1.4" = {
+      name = "imurmurhash";
+      packageName = "imurmurhash";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz";
+        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+      };
+    };
+    "inflight-1.0.6" = {
+      name = "inflight";
+      packageName = "inflight";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    };
+    "inherits-2.0.3" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz";
+        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+      };
+    };
+    "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";
+      };
+    };
+    "integer-2.1.0" = {
+      name = "integer";
+      packageName = "integer";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/integer/-/integer-2.1.0.tgz";
+        sha512 = "3blpjnax6dkqsgb4cv3hxv2wfhwj23v4br8xcj7rwa2gs1y4q96zw37204r2rwzv98bc742d5mqmqvxama5zngvb8fdm264195646xw";
+      };
+    };
+    "interpret-1.2.0" = {
+      name = "interpret";
+      packageName = "interpret";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz";
+        sha512 = "1pibn9f6dn61lmilqiv8hb4aix4b78xf9sdws3rnl060vvv6l4qrw6gfmncq5n0f0rah2yj1ssfg80chaw9y5aa860wfdcccb4ghgcr";
+      };
+    };
+    "ipaddr.js-1.9.1" = {
+      name = "ipaddr.js";
+      packageName = "ipaddr.js";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
+        sha512 = "3gcwhv1wa2hb1vljlcmzhvzliks9rj7nzsw165vgy69jakw8g55ky474mj4j41vfbid8viy9nhwn9kx8pfqrikyl29i98zi9vmkz8nh";
+      };
+    };
+    "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 = "1cmy0k81vgz5z55rdyxfnx307053ksyp1lfgyj5jldkqqzmkx1z2k63fvzn7lgj8wdakmsa1mw408rm5xxfpk3avjqbnrb5yl56lm3r";
+      };
+    };
+    "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-my-ip-valid-1.0.0" = {
+      name = "is-my-ip-valid";
+      packageName = "is-my-ip-valid";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz";
+        sha512 = "1lnwwykigbkg3yqmr61cyiplxfdvpchcsi1fz67jwn55gvdrl597jpsd6jds205gjkn8c3zxbqmppmf3danpj0rrla7ffnicmwpys42";
+      };
+    };
+    "is-my-json-valid-2.20.0" = {
+      name = "is-my-json-valid";
+      packageName = "is-my-json-valid";
+      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";
+      };
+    };
+    "is-object-1.0.1" = {
+      name = "is-object";
+      packageName = "is-object";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz";
+        sha1 = "8952688c5ec2ffd6b03ecc85e769e02903083470";
+      };
+    };
+    "is-property-1.0.2" = {
+      name = "is-property";
+      packageName = "is-property";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz";
+        sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84";
+      };
+    };
+    "is-resolvable-1.1.0" = {
+      name = "is-resolvable";
+      packageName = "is-resolvable";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz";
+        sha512 = "0r8v3dkj5qbfh2wlj4w1msyqsw6j5myvxi88wkw36isscb97yyc2yc1pwm64djrmh1css6jp9p08cx1zb479fg4gv26prciaifdh05a";
+      };
+    };
+    "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-typedarray-1.0.0" = {
+      name = "is-typedarray";
+      packageName = "is-typedarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
+        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+      };
+    };
+    "isarray-1.0.0" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    };
+    "isexe-2.0.0" = {
+      name = "isexe";
+      packageName = "isexe";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
+        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+      };
+    };
+    "isstream-0.1.2" = {
+      name = "isstream";
+      packageName = "isstream";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
+        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+      };
+    };
+    "istanbul-0.4.5" = {
+      name = "istanbul";
+      packageName = "istanbul";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz";
+        sha1 = "65c7d73d4c4da84d4f3ac310b918fb0b8033733b";
+      };
+    };
+    "istanbul-lib-coverage-2.0.5" = {
+      name = "istanbul-lib-coverage";
+      packageName = "istanbul-lib-coverage";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz";
+        sha512 = "2cgkn8swx4450c0m0alr4lb4fvqjyh3v9mg6ivx2sa9vq0hkb7r0yz87srf8263j089kpjmpnsl6d3l5vg7x4f4kk39n20gw6gg79gi";
+      };
+    };
+    "istanbul-lib-hook-2.0.7" = {
+      name = "istanbul-lib-hook";
+      packageName = "istanbul-lib-hook";
+      version = "2.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz";
+        sha512 = "2afbbygnkxwbzc61gk31g1k1y161yq81kxbv1x0bxyva7794njrz7kiz1lhr7bv4f2av0fzshsz5rd1rdbr56igr11i2iam9ysp7d5y";
+      };
+    };
+    "istanbul-lib-instrument-3.3.0" = {
+      name = "istanbul-lib-instrument";
+      packageName = "istanbul-lib-instrument";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz";
+        sha512 = "1j5bcfrd9sgjpm1mpgxv847jwwcjfpzfkynjcidpf4mwxbn0p6gz622rcrmbliphcbnw0nxipw0d7aw0gva7rym3lci9rz8icvwhyg6";
+      };
+    };
+    "istanbul-lib-report-2.0.8" = {
+      name = "istanbul-lib-report";
+      packageName = "istanbul-lib-report";
+      version = "2.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz";
+        sha512 = "2qm8v7vck1yv85lkx7n060wdvrr547mfrc83xyr6sl4p4av7r6c5jh6mdbvxiqz2m6d5spj6v8fksa9dc6c5r86hjhqh47pkqdmww3w";
+      };
+    };
+    "istanbul-lib-source-maps-3.0.6" = {
+      name = "istanbul-lib-source-maps";
+      packageName = "istanbul-lib-source-maps";
+      version = "3.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz";
+        sha512 = "1gm71m2lqpb1p2lrwmf9f9g2maz48s133zvk0zzlblgwnjgnn6dx129cbsx8znklhanwwgck6fwnfpsy5sga5pnwfbpw923rg6cm3j7";
+      };
+    };
+    "istanbul-reports-2.2.7" = {
+      name = "istanbul-reports";
+      packageName = "istanbul-reports";
+      version = "2.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz";
+        sha512 = "0m8fjnnvxyyd03g22xna4jnypd01jbvdsz5k9jnqlb1v678zikdzidq7p1x4pdlg1dfzfa9g8lzz01srnamalpmrj5qxrb8ppy4bvds";
+      };
+    };
+    "js-tokens-3.0.2" = {
+      name = "js-tokens";
+      packageName = "js-tokens";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz";
+        sha1 = "9866df395102130e38f7f996bceb65443209c25b";
+      };
+    };
+    "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 = "0lwyvximqkf1q5w94x2747nj2v035is66vzalrbl3f2gdh9k1m3m29p8zw6r65ps5784x2lxwz8akmv085l4ai358rwbp84axz59lj5";
+      };
+    };
+    "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 = "0kkjjrr0znm2ka89ywc5518c8dw0210z91fm94c7v11l8c96mkjh0ddld5mb7jmmnpzap7vn0fhvr29lma63c9is2ixq3fpp0xxrxk1";
+      };
+    };
+    "jsbn-0.1.1" = {
+      name = "jsbn";
+      packageName = "jsbn";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz";
+        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+      };
+    };
+    "jsesc-2.5.2" = {
+      name = "jsesc";
+      packageName = "jsesc";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz";
+        sha512 = "20bfkjw0zjachan7rfv75dn5ky7l12xhyz919mdhh9fjn395ss454ykknjza7fwyx09dj89makcs1xi341dvv4k1cvj94739ifbp2rr";
+      };
+    };
+    "json-parse-better-errors-1.0.2" = {
+      name = "json-parse-better-errors";
+      packageName = "json-parse-better-errors";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+        sha512 = "2pv1kaf7gjr0bhr2djaf1i88li7q3v5daz4zm4hz57i4h21jgryihxb5c2h0p0q1vrq1ffyg279hp0vjrg73shvxr5lir6plxjb5fls";
+      };
+    };
+    "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 = "1bbgxs4777gn3q3yxi0n792cgz9pimf85pypr0w4wzpb22nr8fl9xi98pkcqd3n4fn7lnzffpq7qwpcl4dqc15py19lwqa2jwgw5dn5";
+      };
+    };
+    "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-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";
+      };
+    };
+    "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";
+      };
+    };
+    "jsonpointer-4.0.1" = {
+      name = "jsonpointer";
+      packageName = "jsonpointer";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz";
+        sha1 = "4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9";
+      };
+    };
+    "jsprim-1.4.1" = {
+      name = "jsprim";
+      packageName = "jsprim";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz";
+        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+      };
+    };
+    "kuler-1.0.1" = {
+      name = "kuler";
+      packageName = "kuler";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz";
+        sha512 = "20zvfs0bqxvpjlp6kx2fhafnldxfv36dqcac42qng3x9kh25vqy4w6910fs63p5d56yjghbrn36niix6wsyi9dbj3n9zmh6wx9dbn97";
+      };
+    };
+    "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";
+      };
+    };
+    "lie-3.1.1" = {
+      name = "lie";
+      packageName = "lie";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz";
+        sha1 = "9a436b2cc7746ca59de7a41fa469b3efb76bd87e";
+      };
+    };
+    "load-json-file-4.0.0" = {
+      name = "load-json-file";
+      packageName = "load-json-file";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz";
+        sha1 = "2f5f45ab91e33216234fd53adab668eb4ec0993b";
+      };
+    };
+    "localforage-1.7.3" = {
+      name = "localforage";
+      packageName = "localforage";
+      version = "1.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/localforage/-/localforage-1.7.3.tgz";
+        sha512 = "20hynm98vq3srgz2h48290n0x06drf8avxm73rnqhkh036v5s5x2kk3phm2551p0zy3bh9hp5cjr6f0mwyhb4j0xi9fgqnwhz4safym";
+      };
+    };
+    "locate-path-3.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";
+        sha512 = "3jbllbkvv54d6k6zss6spzsknz5icscyfclf377jjpndb8mmacq0v9vjr1w07zjn14gaz4d2hfi0yaqk4nvg6hbm16qi70nrkivn0zc";
+      };
+    };
+    "lodash-4.17.15" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz";
+        sha512 = "3a41cs1932x00vd7h32v6rfkaak3vhkwv4x0bg27ilhlmbpl95r3abc4vja21k42cdfprsy3sdfcp2xs02sfp1fflf7m3n2gd29q4zk";
+      };
+    };
+    "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.padend-4.6.1" = {
+      name = "lodash.padend";
+      packageName = "lodash.padend";
+      version = "4.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz";
+        sha1 = "53ccba047d06e158d311f45da625f4e49e6f166e";
+      };
+    };
+    "logform-1.10.0" = {
+      name = "logform";
+      packageName = "logform";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz";
+        sha512 = "1d27lbbzad8mj23z63lca3z7y2mjwnzdcrj2zpvcdid78ds12jyc349g1yc0naxbqrl3cz2cw9lprhgwryxygzc634cgmsli266hvks";
+      };
+    };
+    "logform-2.1.2" = {
+      name = "logform";
+      packageName = "logform";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz";
+        sha512 = "36z0bhkyb62pjrzaff6vpig94lzbaah80iq2hpy4pb49lkhxfawjlx9j8mw168wv33mb7i3lgl2xm2q82x0rc1qm95k0i24xbh62mps";
+      };
+    };
+    "loglevel-1.6.1" = {
+      name = "loglevel";
+      packageName = "loglevel";
+      version = "1.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz";
+        sha1 = "e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa";
+      };
+    };
+    "long-4.0.0" = {
+      name = "long";
+      packageName = "long";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/long/-/long-4.0.0.tgz";
+        sha512 = "0q7w59j4asw2i6n4hwbdrcigmaz042y2hsm31brmjfp3fg465mgqjmia2giil8kxbdh5ijdx00lv4a8n8lbj6srbziqczr22hmgxhsy";
+      };
+    };
+    "lru-cache-4.1.5" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "4.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz";
+        sha512 = "3k64s8pgffvqc84ar3r2jjvxnrll916m1q6s4m2k8pq2gqvlrzy11hdhvx2662fa4x7h1hcpn9wmy4kk28rgk3sj76w2fpn8dn6armi";
+      };
+    };
+    "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 = "12asfdw6jlwcqjli9xywj755wznjxadmh7q6abrhldss26wdsik8w39dqww20i3ilr9mjam1r80ickwzlp9w7dz15bvqa1wszwmfbrd";
+      };
+    };
+    "make-error-1.3.6" = {
+      name = "make-error";
+      packageName = "make-error";
+      version = "1.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz";
+        sha512 = "2glh9fqac2bycfy6gmvv1r03pr484iglvv5ry3pjm6iz43h6qnkkw2l4sz9ydyadq6hip4wyjpj9jllbshxchh8k6lg5g5vsya23idk";
+      };
+    };
+    "manakin-0.5.2" = {
+      name = "manakin";
+      packageName = "manakin";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/manakin/-/manakin-0.5.2.tgz";
+        sha512 = "02p05isc2h05cfwm47fw2n89plynndsgyqj3jh9gsnr8vm0pbqmwmiqh8i52whbf9nf1lm97sk1gyl4c5gk22lf48s5i88qnh3x5w55";
+      };
+    };
+    "matrix-appservice-0.3.5" = {
+      name = "matrix-appservice";
+      packageName = "matrix-appservice";
+      version = "0.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/matrix-appservice/-/matrix-appservice-0.3.5.tgz";
+        sha512 = "0swxqi2x16xnxx2kkazh5kkhf1dyi9649q0qjycxp04r0427wsjwp1hakfj4syn0wqcbzny1kybkg74xmg8vih6s7ylhw8ij6b321x1";
+      };
+    };
+    "matrix-appservice-bridge-git://github.com/matrix-org/matrix-appservice-bridge#8a7288edf1d1d1d1395a83d330d836d9c9bf1e76" = {
+      name = "matrix-appservice-bridge";
+      packageName = "matrix-appservice-bridge";
+      version = "1.8.0";
+      src = fetchgit {
+        url = "git://github.com/matrix-org/matrix-appservice-bridge";
+        rev = "8a7288edf1d1d1d1395a83d330d836d9c9bf1e76";
+        sha256 = "80eaf5634cd4482f6b10034193d418b02d6a350c7d721cecd03b53aa3b094b34";
+      };
+    };
+    "matrix-js-sdk-1.2.0" = {
+      name = "matrix-js-sdk";
+      packageName = "matrix-js-sdk";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-1.2.0.tgz";
+        sha512 = "2cxg34raapgs9vrpx59plk8wpfs7wxl2dy3jxrq3na9zvifrnyqz3r056mihw4b4g1lxs5xvmjdajgbp6g4js6aqk8g6y1zgndlib2y";
+      };
+    };
+    "media-typer-0.3.0" = {
+      name = "media-typer";
+      packageName = "media-typer";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
+        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+      };
+    };
+    "merge-descriptors-1.0.1" = {
+      name = "merge-descriptors";
+      packageName = "merge-descriptors";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+        sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+      };
+    };
+    "merge-source-map-1.1.0" = {
+      name = "merge-source-map";
+      packageName = "merge-source-map";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz";
+        sha512 = "1ps5skykmmcmdx8c36fy2dmdz3qyh4v1phyyfxhwx7g000ig3j1yqgvs1mpblliapm9zpc3vs2f7zb934j9hxpq61llp0mjzpn2jis2";
+      };
+    };
+    "methods-1.1.2" = {
+      name = "methods";
+      packageName = "methods";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz";
+        sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+      };
+    };
+    "mime-1.6.0" = {
+      name = "mime";
+      packageName = "mime";
+      version = "1.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz";
+        sha512 = "1x901mk5cdib4xp27v4ivwwr7mhy64r4rk953bzivi5p9lf2bhw88ra2rhkd254xkdx2d3q30zkq239vc4yx4pfsj4hpys8rbr6fif7";
+      };
+    };
+    "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 = "2k6dwvka8mhl2jrx9zhc926nvifn7jpi4fcwjr3gdqik53ifzn67h986p9wcdd4qpc3hjmqpywdwssm5kw18bdn3xg1ag7cp9y97lzw";
+      };
+    };
+    "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 = "3pyj0i5wygq13w5i5i2ksjwrragi0p1dybqd5lvcd0gx21jxx1i1r567dbxklh9p50pwhaxwq9d4507hymr49ibz61xq8xc4sf6m214";
+      };
+    };
+    "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 = "1879a3j85h92ypvb7lpv1dqpcxl49rqnbgs5la18zmj1yqhwl60c2m74254wbr5pp3znckqpkg9dvjyrz6hfz8b9vag5a3j910db4f8";
+      };
+    };
+    "minimist-0.0.8" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "0.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
+        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+      };
+    };
+    "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 = "0pif0kjsr0cdm73cyicn9xdx9zkly45w4akmyfa39lkaf6lzysfr8kr145p54wjk26pbsk0w0qfdds3k4bxy4wl5l210i1b8qsngkql";
+      };
+    };
+    "minipass-2.9.0" = {
+      name = "minipass";
+      packageName = "minipass";
+      version = "2.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz";
+        sha512 = "1x0k2ycn1r5fig2zy7jj5vjsc7sxdl2a8lidvzsfyhcbrmvyvlbkmb3ga6l8njclvhjz2yrcx57jn26bckzrms017zb2yan1y7d85y3";
+      };
+    };
+    "minizlib-1.3.3" = {
+      name = "minizlib";
+      packageName = "minizlib";
+      version = "1.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz";
+        sha512 = "3slcgy5kqasjl8k1n2indaaw0k6j2ipapzxrcqyy2zrwpv8z9w2im5i8c2c73pqdgkd31rwf5bajgv4pm2i6m9jg51cfmp694w0r5p9";
+      };
+    };
+    "mkdirp-0.5.1" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "0.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
+        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+      };
+    };
+    "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 = "32zxwnp110xb9sm0w7xdr51v2zj4k0b07yq702phnac2l8c91mxw6va27y193m42nvnw5dhby2jzg3b24fzjzkdr8337slz8ja81a9l";
+      };
+    };
+    "mocha-5.2.0" = {
+      name = "mocha";
+      packageName = "mocha";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz";
+        sha512 = "1qqnhamd691pyvx27ql2l5228qx1migp0yys010zdi748pp516hf10sr26w7gx71323a9p0gv69i358xv2w918gpba9xp2w70l211fq";
+      };
+    };
+    "module-not-found-error-1.0.1" = {
+      name = "module-not-found-error";
+      packageName = "module-not-found-error";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz";
+        sha1 = "cf8b4ff4f29640674d6cdd02b0e3bc523c2bbdc0";
+      };
+    };
+    "moment-2.26.0" = {
+      name = "moment";
+      packageName = "moment";
+      version = "2.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz";
+        sha512 = "0rhkgzi9dm9zliz4x1b240q0y1cqkzyk79bs1v0cd04ix3hxfncgrs80w6gx7fq9azxgc2d29yhrc7j6m8h3q88jca6jslfxx8b3250";
+      };
+    };
+    "morgan-1.10.0" = {
+      name = "morgan";
+      packageName = "morgan";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz";
+        sha512 = "1fzbmlpmyqjjnff6sjxk5h2ffib2ldzziy9x5k6200az86l7z9gqag28s6brw9yg2q7w0yjp69ir0p5qc5kfq7djy21xciqa82s1dq1";
+      };
+    };
+    "ms-2.0.0" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
+        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+      };
+    };
+    "ms-2.1.1" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
+        sha512 = "352z145jr1zx0w6kmlz2jxcaw6j2pwwg9va3x4gk731zw1agka2b213avw12zx6hgn071ibm0f3p80n5cdv896npay4s6jwbrv7w2mn";
+      };
+    };
+    "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 = "3dqfiiw6nxvvi24fndbzlccnjcas99bsd1kz5m2r78lzgpp6vx57jzbmxq3k1m7bsw88rwra0n4848l720fxxn5x20djck3wp3hysdh";
+      };
+    };
+    "mute-stream-0.0.5" = {
+      name = "mute-stream";
+      packageName = "mute-stream";
+      version = "0.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz";
+        sha1 = "8fbfabb0a98a253d3184331f9e8deb7372fac6c0";
+      };
+    };
+    "natural-compare-1.4.0" = {
+      name = "natural-compare";
+      packageName = "natural-compare";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz";
+        sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
+      };
+    };
+    "nedb-1.8.0" = {
+      name = "nedb";
+      packageName = "nedb";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nedb/-/nedb-1.8.0.tgz";
+        sha1 = "0e3502cd82c004d5355a43c9e55577bd7bd91d88";
+      };
+    };
+    "negotiator-0.6.2" = {
+      name = "negotiator";
+      packageName = "negotiator";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
+        sha512 = "0xi79rad0khwah5v2k6pvh8ajjgi7hp3zlkg6gk11pv70ydcq7li0kzcv1gnaf13gmblzhvx7hxs2nhypphb0sp4cggiy4ympndr5c5";
+      };
+    };
+    "neo-async-2.6.1" = {
+      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 = "1kvffl97cs76iidch6z424p50m0wdryx6h6b1jdgr71bfg035szlxcdl6dz9jy71aj8msvprdq2ilbs9jisbim3g1b4l2bfy3qsc9lb";
+      };
+    };
+    "nested-error-stacks-2.1.0" = {
+      name = "nested-error-stacks";
+      packageName = "nested-error-stacks";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz";
+        sha512 = "2x6007gmmixqxpqdak4z72p47r050b009a1s6klp2f0kbdxvz0p8waz3g782x5din02hdbmjfca1dzfxshpfsw66dn4vmhfqaz3bvq0";
+      };
+    };
+    "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";
+      };
+    };
+    "node-html-parser-1.2.16" = {
+      name = "node-html-parser";
+      packageName = "node-html-parser";
+      version = "1.2.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.2.16.tgz";
+        sha512 = "23xlhws70lmdk8rdpw477ndr05rbjw9r8qns3vrm047j9gwnrjm95d1jypcnjszdwwn9asgcj1dmsmd87ki54b5fm0xh9zvicdfkcjf";
+      };
+    };
+    "nopt-3.0.6" = {
+      name = "nopt";
+      packageName = "nopt";
+      version = "3.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz";
+        sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
+      };
+    };
+    "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 = "1wbwhlsm965n61y23wrm50ric9l7rig90wvx7hjdl34np6n1bbqcc67wgm494z303s6y5aj4xjyism3n6kikp40iz9qaizlfhvqr47z";
+      };
+    };
+    "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";
+      };
+    };
+    "nyc-14.1.1" = {
+      name = "nyc";
+      packageName = "nyc";
+      version = "14.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz";
+        sha512 = "1dxgqq4rs13kgjhqfar1gb1b39bi0y7iglq2w1hxvjc81wc0bx40p1iis22dfng6q9cy2ql7k69bi3sfvb2vvgzcq37llj6lsdjz39q";
+      };
+    };
+    "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 = "1jz644r7ybsq688ifahm64ih3ljqjjskm533bgir20pvc350f9cl0z162scih0r1idx8lpw5f8hxa2pkf0lhbdhr5y6ak2ga5863v3x";
+      };
+    };
+    "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-hash-1.3.1" = {
+      name = "object-hash";
+      packageName = "object-hash";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz";
+        sha512 = "06crm6ynp4rxakk4frrb4kjmi758r38fs5h0f6b7giyxhj0dghb6mdx7sbp0nhnk2w8cyb1bli07d9nbm086i34j8yx641qjpzawarr";
+      };
+    };
+    "on-finished-2.3.0" = {
+      name = "on-finished";
+      packageName = "on-finished";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
+        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+      };
+    };
+    "on-headers-1.0.2" = {
+      name = "on-headers";
+      packageName = "on-headers";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz";
+        sha512 = "2n6994y8y4b146a5wpzzgw779yc227cqkmwsifc3fbn2kc9dzypjigqf72bpgsqrk7gs93l6fk4iqdk752jnsnpr89j58sbabw09455";
+      };
+    };
+    "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-0.0.4" = {
+      name = "one-time";
+      packageName = "one-time";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz";
+        sha1 = "f8cdf77884826fe4dff93e3a9cc37b1e4480742e";
+      };
+    };
+    "onetime-1.1.0" = {
+      name = "onetime";
+      packageName = "onetime";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz";
+        sha1 = "a1f7838f8314c516f05ecefcbc4ccfe04b4ed789";
+      };
+    };
+    "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 = "1n905a6d9xvmaqhy1xvpk4m7amkpx4wmky0w9764biihzkgachffm975qq5yqy4qjri2pbrrck994dsnz4ipmv4kbb7b4wx02jbv1gq";
+      };
+    };
+    "os-homedir-1.0.2" = {
+      name = "os-homedir";
+      packageName = "os-homedir";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz";
+        sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+      };
+    };
+    "p-finally-1.0.0" = {
+      name = "p-finally";
+      packageName = "p-finally";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz";
+        sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
+      };
+    };
+    "p-limit-2.3.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
+        sha512 = "3mmng2h8sji2ah2j3f5gf0c26j2cmfwwqwck4kbpm8srxllwa8q1fd8jayhrk4f46g6zmw14lrzd4jc04079w1cqhjiy9wjanc3rzzz";
+      };
+    };
+    "p-locate-3.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";
+        sha512 = "14sa2r3zdhvy3sq757d4l21nxrlb7picyigb8zm956bbjadcv22chrfa95wzzrf28z0cyj62b6yihhdc9508q82gs2q3yz8yk1pdvf7";
+      };
+    };
+    "p-queue-6.4.0" = {
+      name = "p-queue";
+      packageName = "p-queue";
+      version = "6.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-queue/-/p-queue-6.4.0.tgz";
+        sha512 = "13h8pdq8v2smhrh39bf4ks1z8cdik8qcv2df1wj3bxgs3k090sxccxxg9q1qjj120lvs1ki6cj9rc9aapqdyb95zk8v5ych333mvdsz";
+      };
+    };
+    "p-timeout-3.2.0" = {
+      name = "p-timeout";
+      packageName = "p-timeout";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz";
+        sha512 = "03cbpzps5mxhlp6hywp92mnnrj4b6ag82f8vdqyz59xrxsrpn58qbh8nzrpiix2asj2d333i81aq0pw9bhki4yw7yf05hr04x9k04mf";
+      };
+    };
+    "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 = "1skmb50xzdk3qzd1f9l5mw8xp29frkizl63bhb9l1amivqybqb23n2824906vx790hjlwyhhrfzpzr5xr6ilzvy1xyl0ly0ah0wz2a7";
+      };
+    };
+    "package-hash-3.0.0" = {
+      name = "package-hash";
+      packageName = "package-hash";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz";
+        sha512 = "0a3x4hdk1baqx5pxrblgsqmy4541fihqn0v4lhzknkg6laib1yq4ddq053sjrq9vc6jz5ibxnmxi53n7dr28ayf5xjgnmh38fx6dswl";
+      };
+    };
+    "packet-reader-1.0.0" = {
+      name = "packet-reader";
+      packageName = "packet-reader";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz";
+        sha512 = "1fkk6mw49b8mqs4rghv7bwpyvgj3qkcj4qz8zkrwcw0xcwg7q0cdd1w17i962ppxl3d6rss2a03ws5b7ihz20207g2r27mpy7ysw0hw";
+      };
+    };
+    "parse-json-4.0.0" = {
+      name = "parse-json";
+      packageName = "parse-json";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz";
+        sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
+      };
+    };
+    "parseurl-1.3.3" = {
+      name = "parseurl";
+      packageName = "parseurl";
+      version = "1.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
+        sha512 = "2lzxqjq4zp60k9gbskpqz7pr1yvb0c6nygd42sia7n6km2gc0cc844nlc5d6r9sshrjhjvs284143jzvz9wzd4r6xr9dz2k24xrwb0a";
+      };
+    };
+    "path-exists-3.0.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz";
+        sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+      };
+    };
+    "path-is-absolute-1.0.1" = {
+      name = "path-is-absolute";
+      packageName = "path-is-absolute";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    };
+    "path-is-inside-1.0.2" = {
+      name = "path-is-inside";
+      packageName = "path-is-inside";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz";
+        sha1 = "365417dede44430d1c11af61027facf074bdfc53";
+      };
+    };
+    "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 = "37qw5986wccpwwqckqky509s4nd6zwv200s9r2v6mcf5nsyxgf2x00m4yp918mkkz84sdh4q0kjbg0hhfq4flpz0l6v47hvc57qwa8r";
+      };
+    };
+    "path-to-regexp-0.1.7" = {
+      name = "path-to-regexp";
+      packageName = "path-to-regexp";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+        sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+      };
+    };
+    "path-type-3.0.0" = {
+      name = "path-type";
+      packageName = "path-type";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz";
+        sha512 = "2z1csf4c3fmlwl0ahk533z5zqkjdf36ccfx11kakl9xran9f5asxm4cxjq4lx1kwqdp8gki786cgpldvgrkvfc7pcvh07j5ssqm8rjg";
+      };
+    };
+    "performance-now-2.1.0" = {
+      name = "performance-now";
+      packageName = "performance-now";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz";
+        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+      };
+    };
+    "pg-7.11.0" = {
+      name = "pg";
+      packageName = "pg";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg/-/pg-7.11.0.tgz";
+        sha512 = "17y7xazc9ff7cvirg10zvdp75q3n8dimw20m2inzmgilkhiigwha1bhslhrl6g182larnc0lqs5d23ahnb2qx3z2ylc2456y3p1bvk0";
+      };
+    };
+    "pg-connection-string-0.1.3" = {
+      name = "pg-connection-string";
+      packageName = "pg-connection-string";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz";
+        sha1 = "da1847b20940e42ee1492beaf65d49d91b245df7";
+      };
+    };
+    "pg-int8-1.0.1" = {
+      name = "pg-int8";
+      packageName = "pg-int8";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz";
+        sha512 = "2kr12hlmhrlca9f6gb14rvq93rn1z4ydmgv0ll7vak0nl5xxggq27y17346c3wj5afw3imsbvpaqcwjymb55hchj89czpdd5rnmlasq";
+      };
+    };
+    "pg-minify-1.4.1" = {
+      name = "pg-minify";
+      packageName = "pg-minify";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.4.1.tgz";
+        sha512 = "02n86wbg4xh5xj78sw8jr53j76szc7q0y7f29pc515c5fam4g2zhhddng666zf9js0kcpkdmcrjda74sjmkl5anlklyygbvvk2pv9pi";
+      };
+    };
+    "pg-pool-2.0.10" = {
+      name = "pg-pool";
+      packageName = "pg-pool";
+      version = "2.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-2.0.10.tgz";
+        sha512 = "272rvgd9wdjp5qybszf35bzc3k6ipv0rgqj98k6jwkpnad18sm9fnb57vgj0wd8hmf8rza6bbk2hi17nczp451jqgkzs7cvvmik7p59";
+      };
+    };
+    "pg-promise-8.7.5" = {
+      name = "pg-promise";
+      packageName = "pg-promise";
+      version = "8.7.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-promise/-/pg-promise-8.7.5.tgz";
+        sha512 = "3f730f6nq6rg3yq6m9f0r1rixc1x83g93wypw52sywj4wmwqjjxxg0ywwjppb0ncxf4f6f4ilvfihm002vrbsm1s304k2zmar5sdwxg";
+      };
+    };
+    "pg-types-2.0.1" = {
+      name = "pg-types";
+      packageName = "pg-types";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-types/-/pg-types-2.0.1.tgz";
+        sha512 = "25lv5nmw9z6q17fakq4dpcpjgyrf2d0n89lsxlbvsy1jd3iib8lns72l0mpkjbp3p0km8k6rz7vvil76k290vkzg779j5smrm0bmg3g";
+      };
+    };
+    "pgpass-1.0.2" = {
+      name = "pgpass";
+      packageName = "pgpass";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz";
+        sha1 = "2a7bb41b6065b67907e91da1b07c1847c877b306";
+      };
+    };
+    "pify-3.0.0" = {
+      name = "pify";
+      packageName = "pify";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz";
+        sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+      };
+    };
+    "pify-4.0.1" = {
+      name = "pify";
+      packageName = "pify";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz";
+        sha512 = "3d9a1zsv7ca8ffpp7ffl67vp0ahiq78ix1jl21b4nfklinh2ilwh6c45f93syclab0b49p3cfq8d4agpphrbmf6xgfxgzjv268387xq";
+      };
+    };
+    "pkg-dir-3.0.0" = {
+      name = "pkg-dir";
+      packageName = "pkg-dir";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz";
+        sha512 = "2znan90js3xrk8a8cvzv7vrjma5dgr9hkk4kpcgciyawbjz404a4rpdj6gngx1dc7f1xzmfm3q0an1rq69qyk2cmawhsy98i40pnkpw";
+      };
+    };
+    "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";
+      };
+    };
+    "postgres-array-2.0.0" = {
+      name = "postgres-array";
+      packageName = "postgres-array";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz";
+        sha512 = "2wdj5g97ilfpmjbpn3cmzhfysw77z8x3hqxvlmcknxm6488jpxvjshdqmd8m59ydhznadxcq1wlnfynh2877di58dgay0rrlm96p5jn";
+      };
+    };
+    "postgres-bytea-1.0.0" = {
+      name = "postgres-bytea";
+      packageName = "postgres-bytea";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
+        sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
+      };
+    };
+    "postgres-date-1.0.5" = {
+      name = "postgres-date";
+      packageName = "postgres-date";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.5.tgz";
+        sha512 = "24bvdwh2jsv4xbp64ansgpqi55db9xbdv4clyh3aajxvx1lc4wm5mw8aqkf5f144szp2ram50ziy49bqqcr0c24c501f4agcklaxmm5";
+      };
+    };
+    "postgres-interval-1.2.0" = {
+      name = "postgres-interval";
+      packageName = "postgres-interval";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz";
+        sha512 = "1jy8mn5fadqlhqhznmyr55ghlzi2k9bxvvbyqbzb8rzzw101gbphlz18jyd533qqhkqf9wdyj3wc68vvdhvjbss6xs7xhzbrwl5g67m";
+      };
+    };
+    "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";
+      };
+    };
+    "prism-media-0.0.4" = {
+      name = "prism-media";
+      packageName = "prism-media";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prism-media/-/prism-media-0.0.4.tgz";
+        sha512 = "13jjbcp3kiixdjfcasdn6i46gkyj5h5dx2qbc443m7rdmsh7vbbqykx7lczq3yrisfjsyjxjgh5vh0zzmlpa4r69aw4dgb8dgnv0vbl";
+      };
+    };
+    "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 = "1mgan8li4i2l4y7lsr7snks85n6xg5x693cqmzpid3fkk9br7v5xzgvh1zlfs08zkxn6s0n6qhykr64mszjfyxd77dhmdi1jhx992yy";
+      };
+    };
+    "progress-1.1.8" = {
+      name = "progress";
+      packageName = "progress";
+      version = "1.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz";
+        sha1 = "e260c78f6161cdd9b0e56cc3e0a85de17c7a57be";
+      };
+    };
+    "prom-client-11.5.3" = {
+      name = "prom-client";
+      packageName = "prom-client";
+      version = "11.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prom-client/-/prom-client-11.5.3.tgz";
+        sha512 = "3hnz5ii2bvrrh14qkfcnxkjsxwfrcasfr34masbkwg1n4c41yvv1ir5k9ylmc806izl1xcjzyhidsb3qp832x7vva5lrdnvchbbcgcb";
+      };
+    };
+    "proxy-addr-2.0.6" = {
+      name = "proxy-addr";
+      packageName = "proxy-addr";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
+        sha512 = "0xy6dm0910h3nsa0ik45yccdfm6f84nl3h9dpkb22crqhdr3mmiczcbrq9z53gq7l2ijxhxi3pzsfzafrzymw4c1nn68ml1y2pdy7vn";
+      };
+    };
+    "proxyquire-1.8.0" = {
+      name = "proxyquire";
+      packageName = "proxyquire";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/proxyquire/-/proxyquire-1.8.0.tgz";
+        sha1 = "02d514a5bed986f04cbb2093af16741535f79edc";
+      };
+    };
+    "pseudomap-1.0.2" = {
+      name = "pseudomap";
+      packageName = "pseudomap";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
+        sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+      };
+    };
+    "psl-1.8.0" = {
+      name = "psl";
+      packageName = "psl";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
+        sha512 = "0hn7s5bxnn3k2hiqh8fmm7bvq4vd6j0a5hwj09jk31r1ylv6q28g5hl3z70m3gycwfb40vdp04fqi59hdjih3jz0fhszg0s5b7lx1s4";
+      };
+    };
+    "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 = "381vqgh5xkqzrr6cxbzfykgnnk83m7qgpx3wjwj1hddn3sg2aibjxyr30rajpgv4js0cqknrbzwbfk5ryhiiyigzfjrk3zysy6i26sx";
+      };
+    };
+    "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 = "0c46ws0x9g3mmkgfmvd78bzvnmv2b8ryg4ah6jvyyqgjv9v994z7xdyvsc4vg9sf98gg7phvy3q1ahgaj5fy3dwzf2rki6bixgl15ip";
+      };
+    };
+    "qs-6.7.0" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz";
+        sha512 = "34x6fm4dnq8m0kps5ann831k8fvx7jzlrcw8vvri0ki2g2ywdrjr8j5y14bvj9c0fd01ndsyx43y6ji51bfhnxk2gr5fpsks52429sl";
+      };
+    };
+    "range-parser-1.2.1" = {
+      name = "range-parser";
+      packageName = "range-parser";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
+        sha512 = "15b00vag4wijzsp0lwi9jznpz16n858vq5p1p3dgjrqqil9c6d4x55s1nl1fi4cbq8307bylbvkd9qkhyk6qib8ksh8raibxb3jrf0y";
+      };
+    };
+    "raw-body-2.4.0" = {
+      name = "raw-body";
+      packageName = "raw-body";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz";
+        sha512 = "3flyhj96ayiy8is22lwh9sp1yqq9ksym43x22yri2ikzladqqzxj6z657bc0xb5f2wl7qr2ja4byf57c9f7l2d3wqdglxih886zrv70";
+      };
+    };
+    "read-pkg-3.0.0" = {
+      name = "read-pkg";
+      packageName = "read-pkg";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz";
+        sha1 = "9cbc686978fee65d16c00e2b19c237fcf6e38389";
+      };
+    };
+    "read-pkg-up-4.0.0" = {
+      name = "read-pkg-up";
+      packageName = "read-pkg-up";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz";
+        sha512 = "28400v5dwid6mc9x40s2mwfbkn22vj0dzx0ix8n2bffjx4p2ivb9b60bh743c74kdp0v391rdmladhgvrjgzihns456n977gr451sz9";
+      };
+    };
+    "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 = "0zrh6gjjzwwycwydra51xcrgjgzyqv6dq38bfpwzmlqn702mwb4nj4sjjn499rycqndfk6rby0dksnq72x8pcbvqv0b2893mvq6if0i";
+      };
+    };
+    "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 = "1s8hs6ax9jwmmw558j3hyfx5lfn7qf66xg0giplz9jci7d8zp2d8vh96dzlis6xzpxfa5b2zbm8nm4mgsr71r6rl3w3qyfanb5qfn05";
+      };
+    };
+    "readline2-1.0.1" = {
+      name = "readline2";
+      packageName = "readline2";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz";
+        sha1 = "41059608ffc154757b715d9989d199ffbf372e35";
+      };
+    };
+    "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";
+      };
+    };
+    "reduce-flatten-1.0.1" = {
+      name = "reduce-flatten";
+      packageName = "reduce-flatten";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz";
+        sha1 = "258c78efd153ddf93cb561237f61184f3696e327";
+      };
+    };
+    "regenerator-runtime-0.11.1" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
+        sha512 = "03d4l8l8cyywh93wf5vw84lq56jh1b1d7jll4ny4z060j9hvx7w5q3q0b8q227jm93749k1c9h86r2pz0bm2xq5vp14g3r2kbvqc2rj";
+      };
+    };
+    "release-zalgo-1.0.0" = {
+      name = "release-zalgo";
+      packageName = "release-zalgo";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz";
+        sha1 = "09700b7e5074329739330e535c5a90fb67851730";
+      };
+    };
+    "request-2.88.2" = {
+      name = "request";
+      packageName = "request";
+      version = "2.88.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz";
+        sha512 = "23hm71jcxrwvp33azx8mx3w6dg21fr4w6lwvkvxyf6ckvhk3hz9dk8lzgkbiyzfl9ylhp4n807xp88ppq4gj5h07cmrgxf6nwxfvjrj";
+      };
+    };
+    "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 = "2d0gd2x49nz3hgfwms6326sjw5fx7gqf997dnggc7l084cibgang6wr6ryksky32fvdz1bq72xm73kfxd3lj2qnfyjsp57jq287k8rl";
+      };
+    };
+    "require-uncached-1.0.3" = {
+      name = "require-uncached";
+      packageName = "require-uncached";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz";
+        sha1 = "4e0d56d6c9662fd31e43011c4b95aa49955421d3";
+      };
+    };
+    "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";
+      version = "1.17.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz";
+        sha512 = "3byf4g1wqfhz5vqx4rbssknblmf4hbjxijmlzvnr7z2l54yr1m4lk14bly6kk6mkdhncfzvvikzk449liiia1ilrfv5iwcmi0jvpkw9";
+      };
+    };
+    "resolve-from-1.0.1" = {
+      name = "resolve-from";
+      packageName = "resolve-from";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz";
+        sha1 = "26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226";
+      };
+    };
+    "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 = "3i345pdv74jb3xbprqb38xq1zfhsbxzm6b1h0mbcvhfpzz907m4amq35s0spijdj3phs508sha4cnr3incg4w8in4r0kd7ccmicrgx5";
+      };
+    };
+    "restore-cursor-1.0.1" = {
+      name = "restore-cursor";
+      packageName = "restore-cursor";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz";
+        sha1 = "34661f46886327fed2991479152252df92daa541";
+      };
+    };
+    "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 = "242p51rnhbah4ip4k2bqgnn5kx5v7byi6rd7jphxh7g92y8wh523zmqdr3jzyzr156p98kx7igb3mhh3l3fmf1iga06l0zcjmdrw2lv";
+      };
+    };
+    "run-async-0.1.0" = {
+      name = "run-async";
+      packageName = "run-async";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz";
+        sha1 = "c8ad4a5e110661e402a7d21b530e009f25f8e389";
+      };
+    };
+    "rx-lite-3.1.2" = {
+      name = "rx-lite";
+      packageName = "rx-lite";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz";
+        sha1 = "19ce502ca572665f3b647b10939f97fd1615f102";
+      };
+    };
+    "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 = "3xbm0dkya4bc3zwfwpdzbl8ngq0aai5ihlp2v3s39y7162c7wyvv9izj3g8hv6dy6vm2lq48lmfzygk0kxwbjb6xic7k4a329j99p8r";
+      };
+    };
+    "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 = "1fq5yb2drm5x0pvp2ansqp7p3lq7q9p9z1pfhqfjgqs0ycq9zpnid55m5gx8ani9cwmjjcmn7nnn8j1f6iq3bxi56kdjwfa9six57df";
+      };
+    };
+    "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 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1";
+      };
+    };
+    "semver-4.3.2" = {
+      name = "semver";
+      packageName = "semver";
+      version = "4.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz";
+        sha1 = "c7a07158a80bedd052355b770d82d6640f803be7";
+      };
+    };
+    "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 = "0cl68vp0ymkjpvim4s24v3awyk37d1bfbqrqv4ybwfi8yxga3d8fma2d6bh8dd4i2dsfwca324vaxm5dms61kdlmihdarfgzw6rmaxi";
+      };
+    };
+    "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 = "17wg4dv63jhss5hwqd135zz67r5c30b7a1xz33kfa7knxr0wfypyb8mj2xmc3l71qkxrz569n89xwp5d77m7adn0sr5wzfjlh2m6zvg";
+      };
+    };
+    "send-0.17.1" = {
+      name = "send";
+      packageName = "send";
+      version = "0.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
+        sha512 = "016qgvxg1si6vn34p7piyc8mhvmav1zscm294wkcjf221y1l9zk5kwk5z6yn1ixspj12df25bpazb2h3fdclcf59xqc2h4w46r4mi86";
+      };
+    };
+    "serve-static-1.14.1" = {
+      name = "serve-static";
+      packageName = "serve-static";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
+        sha512 = "0551vv6s1vgk5krzdn9cwnybsv6g4cyqpkk1dlkyv1pd8n7m8r7pi12r16bw12dzwl6ghj4qwizjsxc8vl26lv9c61fkq9r059yzji4";
+      };
+    };
+    "set-blocking-2.0.0" = {
+      name = "set-blocking";
+      packageName = "set-blocking";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
+        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+      };
+    };
+    "setprototypeof-1.1.1" = {
+      name = "setprototypeof";
+      packageName = "setprototypeof";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
+        sha512 = "01qxzb0a6jrcxa6qh776v04ihqrmcy3qfbp9drfsjhfcsmaqd21mppr3ndj970ixfh6bpm8ai45jyqyzjfjw26pcyd82y6pyrcl1xr6";
+      };
+    };
+    "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";
+      };
+    };
+    "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 = "26893dbicabdw7f4klf18aiw4r88b8ndc9rchbpsaxb3ibvkk37gkffghac7g62clqkhk7szyfwnfxcsfs23wcjq6qm6lxwa3s7hhjm";
+      };
+    };
+    "simple-markdown-0.7.2" = {
+      name = "simple-markdown";
+      packageName = "simple-markdown";
+      version = "0.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-markdown/-/simple-markdown-0.7.2.tgz";
+        sha512 = "2n63x6zw8yfljm41n870l2dcgixb4v83i4hnv8fw6h67kp3yz2vgjk3mrfgn0ak9jhl3nvbmhckd90rc0927pmyw1ik9jycmjmazw2x";
+      };
+    };
+    "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";
+      };
+    };
+    "slice-ansi-0.0.4" = {
+      name = "slice-ansi";
+      packageName = "slice-ansi";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz";
+        sha1 = "edbf8903f66f7ce2f8eafd6ceed65e264c831b35";
+      };
+    };
+    "snekfetch-3.6.4" = {
+      name = "snekfetch";
+      packageName = "snekfetch";
+      version = "3.6.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snekfetch/-/snekfetch-3.6.4.tgz";
+        sha512 = "1vjlm1yvmw1b6wdx57xm4nnyjfvbvsb4plgv7jwg8k3ksp6f90cyipgnnydqfydkv1wzmgsnlrk1n2xzfm9cy97m9gq3lr368hn6g1n";
+      };
+    };
+    "source-map-0.2.0" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz";
+        sha1 = "dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d";
+      };
+    };
+    "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 = "3p7hw8p69ikj5mwapmqkacsjnbvdfk5ylyamjg9x5izkl717xvzj0vk3fnmx1n4pf54h5rs7r8ig5kk4jv4ycqqj0hv75cnx6k1lf2j";
+      };
+    };
+    "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 = "0dsfcfq64jhz0vidzqf94hmh4vlzhfid0z2wnr5fdv2lkpv7dvcqbya7fpha9cwqlpkc8w2if8z9aixdkcglh87370rq8426gpyd2as";
+      };
+    };
+    "spawn-wrap-1.4.3" = {
+      name = "spawn-wrap";
+      packageName = "spawn-wrap";
+      version = "1.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz";
+        sha512 = "37iwmk6x87df051s6jh7yjwi1qnpsnxwc0rkr2lg23lyaw3q1aimd9cxn2nmich7i5l89kghjl7z119c3hvw6m7banzynqhvncpq012";
+      };
+    };
+    "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 = "39w4d72caizcw6551d9c955mp1al7f69nr3habk6z40rxgqf30lxdmmfwjmdsfhrxi5d3wgg0ml88hba48lcg9fbv1f22i1di8irrkh";
+      };
+    };
+    "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 = "3j243lk36wp1qpaif9bqd1q19kg0761271dapmdkbhdgzkfij5s0g5cp2qm1j1r4p3k9y264axrg6jj45zcf820klsz4g5vw1hfpm7y";
+      };
+    };
+    "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 = "3hlmxn7avkj2dnl87hs6qzhap33npg9rswizsl7d8b5mwrqaikqpl60idxl74rsdyk9q4pxy8gzkq9i5himb8d22d6p4nhhgfx8gfki";
+      };
+    };
+    "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 = "3sk6sk6r05ikn5qslbh04h54mv4a34wn4d76s800h94padnjydfvvq73ij6jh81yrigspyr50ay878jjwpj2mcq38br371jkb6mdq97";
+      };
+    };
+    "spex-2.2.0" = {
+      name = "spex";
+      packageName = "spex";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spex/-/spex-2.2.0.tgz";
+        sha512 = "1y780akyjspmy362xvl658rmpd25c28h7ng1bdsknxk8ahk1fxwz831y269n46wvddkbgy7xacv36n3svf5kgzq7zza0r5qlyl7204b";
+      };
+    };
+    "split-1.0.1" = {
+      name = "split";
+      packageName = "split";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split/-/split-1.0.1.tgz";
+        sha512 = "2916kdi862ik0dlvr2wf2kvzmw8i8wk5spbr9wpdcksrkhrl3m0082jj1q4mqzvv50mlah5s4vcy6k18nacbj09kxbzp2pbysh8wg4r";
+      };
+    };
+    "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 = "0i4jnrxh6i17qij2vfki7qxmk435cnacvg363qg0hya5incfj57akgbas8zcx2cl5pds9jfgfyhqm8wlqz6damsg059gymv99aylx8x";
+      };
+    };
+    "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";
+      };
+    };
+    "stackback-0.0.2" = {
+      name = "stackback";
+      packageName = "stackback";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz";
+        sha1 = "1ac8a0d9483848d1695e418b6d031a3c3ce68e3b";
+      };
+    };
+    "statuses-1.5.0" = {
+      name = "statuses";
+      packageName = "statuses";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz";
+        sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+      };
+    };
+    "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-2.1.1" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
+        sha512 = "29s1fqgr4mnhfxwczgdghfmmc1f792m9hysvcjxw2h5lfj8ndf2b6gm02m96qk5m75g4aisijvng4pk618anwbr8i9ay2jyszkqgslw";
+      };
+    };
+    "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 = "3bix3jva53vcp1im3aa1y2v1lywkm7ix81gkwkj4915s2675pmw1c9n5x98q1m985hzgwkk1fnc2q78qz7s0fixhf994md3lazxr9xx";
+      };
+    };
+    "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 = "315yd4vzwrwk3vwj1klf46y1cj2jbvf88066y2rnwhksb98phj46jkxixbwsp3h607w7czy7cby522s7sx8mvspdpdm3s72y2ga3x4z";
+      };
+    };
+    "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 = "1w0mz57mvmqykm0jwma6lr4i9pip8p8c1ldaax7sxnrl6j0jbrkwggs037r1psmac0w04i9mb2rc1gzj1n2f0xvy1fr332n9pqmfi46";
+      };
+    };
+    "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-4.0.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz";
+        sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+      };
+    };
+    "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 = "1cf4mpsr46nik5xxyb9wc4cz6c4yymi2ijpfx1nghnkl39l8pgq1sc7q19jzrjkwpn9i7hwg4q3rs4ny3vssrc6506an1lv0bb6rr0f";
+      };
+    };
+    "strip-bom-3.0.0" = {
+      name = "strip-bom";
+      packageName = "strip-bom";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz";
+        sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
+      };
+    };
+    "strip-json-comments-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";
+      };
+    };
+    "supports-color-2.0.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz";
+        sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+      };
+    };
+    "supports-color-3.2.3" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "3.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz";
+        sha1 = "65ac0504b3954171d8a64946b2ae3cbb8a5f54f6";
+      };
+    };
+    "supports-color-5.4.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "5.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz";
+        sha512 = "3ks7qkl6s064qcdc5qnpzcwzcrnlzccz9m3faw54fnmsm2k8fzb9saqr5nhx7w9lnd4nbp0zg047zz8mwsd4fxfnalpb7kra619fdnf";
+      };
+    };
+    "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 = "2ihqi2z38fr1sq2jvwqgjqymncmkhxqz0x3bi97w4b4fn24wsdy71j139p95sb3nfrh3a449n0sqhm1z0jsi04860y8vdy8sp0n6da2";
+      };
+    };
+    "supports-color-6.1.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz";
+        sha512 = "30pwyjmww4d54bf2m6lpw20ly4blhb88sy3gn6qcjih2rfq1s5zsl1nszzwgj2j1gqn3c8mw52df0z26rqyk8flzimb70scdmz67vd9";
+      };
+    };
+    "table-3.8.3" = {
+      name = "table";
+      packageName = "table";
+      version = "3.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/table/-/table-3.8.3.tgz";
+        sha1 = "2bbc542f0fda9861a755d3947fefd8b3f513855f";
+      };
+    };
+    "table-layout-0.4.5" = {
+      name = "table-layout";
+      packageName = "table-layout";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz";
+        sha512 = "1djlwfzjcbfm8zafkk4fci19xgp2838m4n7zxxdiswp48hvci3az2fvr0cah8mbl81lqq680c0lfhhahjg8rxpg9ngb30i0cz9dyfyd";
+      };
+    };
+    "tar-4.4.13" = {
+      name = "tar";
+      packageName = "tar";
+      version = "4.4.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz";
+        sha512 = "10gwhmgx7fh619zv48r2lnm42qr7rw4qa9ph7142rizcn8in9dpi49jbmmv8ism60rcg1a7b4103r598jngi1rcn50sw7b8n1570rf3";
+      };
+    };
+    "tdigest-0.1.1" = {
+      name = "tdigest";
+      packageName = "tdigest";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz";
+        sha1 = "2e3cb2c39ea449e55d1e6cd91117accca4588021";
+      };
+    };
+    "test-exclude-5.2.3" = {
+      name = "test-exclude";
+      packageName = "test-exclude";
+      version = "5.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz";
+        sha512 = "3dgwbvh6yz24lh2kbdigw3j3kpxmmvlrqdhlc4innvrmyj0wvhs5ayckl00161sdx6a2pik344ggs49w9z1h6nh1v2fs542qyv33sik";
+      };
+    };
+    "test-value-2.1.0" = {
+      name = "test-value";
+      packageName = "test-value";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz";
+        sha1 = "11da6ff670f3471a73b625ca4f3fdcf7bb748291";
+      };
+    };
+    "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 = "1pazh99870gi3zslirzkribr37akp4zc5r73q78y89vpzjlcmpdrv7qx6wc3x2bwl20xcrq5hhs7cv3rzk8llm38nhqq9z0dhsldrds";
+      };
+    };
+    "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";
+      };
+    };
+    "through-2.3.8" = {
+      name = "through";
+      packageName = "through";
+      version = "2.3.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
+        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+      };
+    };
+    "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";
+      };
+    };
+    "toidentifier-1.0.0" = {
+      name = "toidentifier";
+      packageName = "toidentifier";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
+        sha512 = "1bip1yxcfy4c0yl2kwmj9jyzfg1ixyj564wd1aaf46rabdiasx62yznb8bwn9cki886f353axgca42zma7q9rb4b50lhm1zz7y8g8y9";
+      };
+    };
+    "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 = "3xgcny117pqhfncr4gbmagzlnjiqqgq0lrvmljdfcdy64nc0xjfcbf1r08dmp1v1m3s51kq0yxc18nl3j9lbpr5bp5lgmi6719yqlly";
+      };
+    };
+    "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 = "0ppdjj0px3nrh57jbdhh12f3hx0xc2zg2zn61h3sdws4glcixr2k793bkv7hakb273pw8jq4qaxn0l28z658biy4bkd59a7bsyx9cay";
+      };
+    };
+    "ts-node-8.10.1" = {
+      name = "ts-node";
+      packageName = "ts-node";
+      version = "8.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ts-node/-/ts-node-8.10.1.tgz";
+        sha512 = "2zyrdhgyii4klwqhy8r5pps3w0g6x6rpbqnifm75sn9ws67zlalw9fbsfwfwkbww3n729hil48a6nxkavb1x4jypa4pi40ypva77lvd";
+      };
+    };
+    "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 = "3axs2rgddv0rkh86z13xlgvmggdblcp9prn4gp0qi49bsr7n6ibjiz56w079ghgrfn5p5xc0vjjgsd5l2ji7gw2ggdzspgw69187zlb";
+      };
+    };
+    "tslint-5.20.1" = {
+      name = "tslint";
+      packageName = "tslint";
+      version = "5.20.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz";
+        sha512 = "115281frr19v46cmcvxwpapklyypqa4vy2s2h2jrw0r4amw9i124rmd7c0hs153qrm5kjcjcz7fbzq93b6azya3zlzckdw5623k3hqi";
+      };
+    };
+    "tsutils-2.29.0" = {
+      name = "tsutils";
+      packageName = "tsutils";
+      version = "2.29.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz";
+        sha512 = "2cc8fsdfbgfcjj6y7dlr0kpmkhbw0j69cak4s21jb44w57dlwksrjx8wn1h4f1j2vx8dhj9mrqsbmmwd96mrsd59743ghq948f5b4l3";
+      };
+    };
+    "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";
+      };
+    };
+    "tweetnacl-1.0.3" = {
+      name = "tweetnacl";
+      packageName = "tweetnacl";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz";
+        sha512 = "35kj8baw7d9y3k6vyp4j51w80s64rxg73560fhwdw7wy06f7r04dq25f64fvvcpf2dn0lbn96x25mhdp5vf30nc31kjsfnsvr27xfza";
+      };
+    };
+    "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 = "1z2f06mzr855vwxwr0wkndnkn3fnjcwisd3iajkh6dmzz0dn1a5amq7m798j1ass4kiymz4gn3q0c573l21377dkq1ap2i703jfv6gv";
+      };
+    };
+    "type-2.0.0" = {
+      name = "type";
+      packageName = "type";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type/-/type-2.0.0.tgz";
+        sha512 = "2iyk1bl159vr7i0r24jawi0lwrgns8xvsw72962lvzw6qshm5blls6p7spkpcqpgwb0p7liwdix0ph0j22dip1rg812xbw723rpj6r8";
+      };
+    };
+    "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-detect-0.1.1" = {
+      name = "type-detect";
+      packageName = "type-detect";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz";
+        sha1 = "0ba5ec2a885640e470ea4e8505971900dac58822";
+      };
+    };
+    "type-detect-1.0.0" = {
+      name = "type-detect";
+      packageName = "type-detect";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz";
+        sha1 = "762217cc06db258ec48908a1298e8b95121e8ea2";
+      };
+    };
+    "type-is-1.6.18" = {
+      name = "type-is";
+      packageName = "type-is";
+      version = "1.6.18";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
+        sha512 = "3r7402x79nilhdgk4z21yjh5y9vix8lwlll1kzcn8jd2m89vzksdb6wddia77cxv3iwhd6i5hkv6n7diwjbhpy7y03i2kqlvfplli2f";
+      };
+    };
+    "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";
+      };
+    };
+    "typescript-3.9.3" = {
+      name = "typescript";
+      packageName = "typescript";
+      version = "3.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.3.tgz";
+        sha512 = "0qxmaaa7cg220z12fz2nl9yi0l95305hik7kbv2w13qr46kyzb4z6f8j2bk20yzq6vb2kcj5a746x3ipi8z8il0f94d3k5i3nf2mz0g";
+      };
+    };
+    "typical-2.6.1" = {
+      name = "typical";
+      packageName = "typical";
+      version = "2.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz";
+        sha1 = "5c080e5d661cbbe38259d2e70a3c7253e873881d";
+      };
+    };
+    "uglify-js-3.9.3" = {
+      name = "uglify-js";
+      packageName = "uglify-js";
+      version = "3.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.3.tgz";
+        sha512 = "0qc2lank7m9yfq0bx0xmnm5vq74xz0szvxw6scj2fi1kzcyy55ah4ksvmm6vpb9bh0yib5hri4rkgb8yy5s5419aq339jwhprq2d4mg";
+      };
+    };
+    "underscore-1.4.4" = {
+      name = "underscore";
+      packageName = "underscore";
+      version = "1.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz";
+        sha1 = "61a6a32010622afa07963bf325203cf12239d604";
+      };
+    };
+    "unhomoglyph-1.0.6" = {
+      name = "unhomoglyph";
+      packageName = "unhomoglyph";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unhomoglyph/-/unhomoglyph-1.0.6.tgz";
+        sha512 = "0dg6bcjn2c5ajmv826342ckp3c7fhy6rdy3xr30vp8hbqr4gsbk24h3z7qa1grm31wi35nqrrax71n9cydf0vih019chnp1imcdrszf";
+      };
+    };
+    "unpipe-1.0.0" = {
+      name = "unpipe";
+      packageName = "unpipe";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
+        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+      };
+    };
+    "uri-js-4.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 = "2fz60s71ghl56ddfiiaws81xpiidlbjk69jyjmahz190d2advy9zdbcwh5if4rgg5hxdbfxhkwiipjrnjy8w834bxsmzambd2p4b3r9";
+      };
+    };
+    "user-home-2.0.0" = {
+      name = "user-home";
+      packageName = "user-home";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz";
+        sha1 = "9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f";
+      };
+    };
+    "util-deprecate-1.0.2" = {
+      name = "util-deprecate";
+      packageName = "util-deprecate";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    };
+    "utils-merge-1.0.1" = {
+      name = "utils-merge";
+      packageName = "utils-merge";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
+        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+      };
+    };
+    "uuid-3.4.0" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
+        sha512 = "3y9pcli1v8nqryqd2c4pxj9kcv92mjc22z4smg08pdjzrbwda19xmjbzms1dwr04995h4carz9s8mldbiqb8708694lwr501r3q6d0y";
+      };
+    };
+    "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 = "09vn7gn5jp2c07pxplc11lvk7ybfaz0rp3qzflyiyhnahkfgh76bij31ll5rg01ranlmljrky2q25d1f6bbd0h23pzxxi5z93csd4hf";
+      };
+    };
+    "vary-1.1.2" = {
+      name = "vary";
+      packageName = "vary";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz";
+        sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+      };
+    };
+    "verror-1.10.0" = {
+      name = "verror";
+      packageName = "verror";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
+        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+      };
+    };
+    "which-1.3.1" = {
+      name = "which";
+      packageName = "which";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz";
+        sha512 = "0hr4hxkk8yb9fz993bs69pf8z2z2qb6sdpxfxb84sd16lja9fsx444pk1ang1ivmjjv5srnsm6fihdj593w7rwxdh834cdmd9hms4hz";
+      };
+    };
+    "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";
+      };
+    };
+    "why-is-node-running-2.1.2" = {
+      name = "why-is-node-running";
+      packageName = "why-is-node-running";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.1.2.tgz";
+        sha512 = "1w8cc76xp7x090k7cj7b85mk32360pv51nq43d9l9x40069ldcpa5qb2lkfqddlnn17q7v4qrwhlrl2xm9a1z00ijy6q0ac2fhiw1ag";
+      };
+    };
+    "winston-3.2.1" = {
+      name = "winston";
+      packageName = "winston";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz";
+        sha512 = "0xywwwrgdf54nfk0pzdpkgn27jwxkkfimf5s9jd04xihx03wwj71r0nafdmsdfg5brj9hsdalqj19vpl2442gx82210ax5xfj1ayknd";
+      };
+    };
+    "winston-compat-0.1.5" = {
+      name = "winston-compat";
+      packageName = "winston-compat";
+      version = "0.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston-compat/-/winston-compat-0.1.5.tgz";
+        sha512 = "3v94p4wq3xmi9d5f1gsk39fj6nc6nq8ivh7ka0whzvg7g71zplmgw9b5vkl7kqr66qm9xd5i4l0vhazmxzpgflqvhaq1lzsfiqczyqh";
+      };
+    };
+    "winston-daily-rotate-file-3.10.0" = {
+      name = "winston-daily-rotate-file";
+      packageName = "winston-daily-rotate-file";
+      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";
+      };
+    };
+    "winston-transport-4.3.0" = {
+      name = "winston-transport";
+      packageName = "winston-transport";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.3.0.tgz";
+        sha512 = "3a2khvz9qld5b1ci486nyphyi96pg5n8xin9f0lrx0hllvvjqkj8y393rs2fiyz7afg7244vchiv3ka3klm4xgykxrzipi20nxhyv07";
+      };
+    };
+    "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 = "2ykkqcs7vmimn8dsvs7xl55j0lbbrfj0nij9i7yqnxg9g759vqyrdis8w5n82k6xvas03x0xhgmbzjgsp7v803mzihx9d12vjnfcgqz";
+      };
+    };
+    "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";
+      };
+    };
+    "wordwrapjs-3.0.0" = {
+      name = "wordwrapjs";
+      packageName = "wordwrapjs";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz";
+        sha512 = "2kx3frfi14d0b5wxdd8ylp5m9537p2j9pph6z8nxqcvk1a09hj7pm39dfwykrjn86zf0kwxf15aym9r4n9qzw6a18ajkgwgmjv1gvwq";
+      };
+    };
+    "wrap-ansi-5.1.0" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
+        sha512 = "3nmsfqfd98a7bgjyhd334y5gzc98nnkipfkmk2z1v4m0acagmpq951d8brmrsxvpnk256fbrp7zkn5n8v02pn4q4zai7zgnvy47yba0";
+      };
+    };
+    "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-0.2.1" = {
+      name = "write";
+      packageName = "write";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/write/-/write-0.2.1.tgz";
+        sha1 = "5fc03828e264cea3fe91455476f7a3c566cb0757";
+      };
+    };
+    "write-file-atomic-2.4.3" = {
+      name = "write-file-atomic";
+      packageName = "write-file-atomic";
+      version = "2.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz";
+        sha512 = "12rq2v0h7wmi2kh4vi2k58rribvz4g11imhn11zxiccyd6mx1dsnah9ypsn7cjmlyczipxac0rplciakh13xqbwfa37zc9hkhgi788r";
+      };
+    };
+    "ws-6.2.1" = {
+      name = "ws";
+      packageName = "ws";
+      version = "6.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz";
+        sha512 = "2l27cfiaw6syjvy6vbpqf5c2swd37bqviizzck6842xlankppm9j1sg79x3m8jpda8v6khcpnm5ssab1b8vf34qpviv41ww5mf8130q";
+      };
+    };
+    "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 = "08w1d6fg23v422cfwd55306pfs9n9cqpz6hycahq3adm3n29wmhl9bmpn4vk75rlzgwn7hp4n3idqxvw8c53zbr04h7a98p43b199ic";
+      };
+    };
+    "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 = "3zj75gvpcgiphxpci4ji1znykk9n4cs0aw3dd6inwdvkmxyqn2483vya70lssjwq8alspnpw88vgii21fdrcn2vmfyppzgf4mkvzm5g";
+      };
+    };
+    "yallist-2.1.2" = {
+      name = "yallist";
+      packageName = "yallist";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz";
+        sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+      };
+    };
+    "yallist-3.1.1" = {
+      name = "yallist";
+      packageName = "yallist";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
+        sha512 = "3ig31a6zfbdlrs3l77a8avpp17hajryhyq2xk4h3ayc4dmxch146rdk7q1s1jgx9qvmxq125r0xq2bvnq0rq63m75k9y7wglm0hd1bb";
+      };
+    };
+    "yargs-13.3.2" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "13.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz";
+        sha512 = "19rg5b2rhj2kg44as5vv9jxmpr39lw250885w6nlfwyhvwd5nxnnx7fc35v7h615i65cik7k3wi7ac20c91kcgfi5wy7blgk31xjz81";
+      };
+    };
+    "yargs-parser-13.1.2" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "13.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz";
+        sha512 = "375nan6m28q81h8q9a8vmcxgiq7s81yn1ql7zdikac0c4j2kmxdjzmbq14fcp9jm4ilcfzkd9ym4x7c80s7r6g488wf13zz2wsyqmny";
+      };
+    };
+    "yn-3.1.1" = {
+      name = "yn";
+      packageName = "yn";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz";
+        sha512 = "3lq5f8c7lb89pyxhpb8nrbif4p5ganpyfzz267dgqxr6dn6yr0vgh017403bmy2v651m1wmd8k6x2fm5v37nmn1i8xngfxccn0347jk";
+      };
+    };
+  };
+in
+{
+  "matrix-appservice-discord-git+https://github.com/Half-Shot/matrix-appservice-discord.git#v0.5.2" = nodeEnv.buildNodePackage {
+    name = "matrix-appservice-discord";
+    packageName = "matrix-appservice-discord";
+    version = "0.5.2";
+    src = fetchgit {
+      url = "https://github.com/Half-Shot/matrix-appservice-discord.git";
+      rev = "a364584411d516f4f73df450bad3e74e40fe016b";
+      sha256 = "69a46978dfb9007716446076348a5067f622d970f1ab9417798532345303e551";
+    };
+    dependencies = [
+      sources."@babel/code-frame-7.8.3"
+      (sources."@babel/generator-7.9.6" // {
+        dependencies = [
+          sources."source-map-0.5.7"
+        ];
+      })
+      sources."@babel/helper-function-name-7.9.5"
+      sources."@babel/helper-get-function-arity-7.8.3"
+      sources."@babel/helper-split-export-declaration-7.8.3"
+      sources."@babel/helper-validator-identifier-7.9.5"
+      sources."@babel/highlight-7.9.0"
+      sources."@babel/parser-7.9.6"
+      sources."@babel/template-7.8.6"
+      (sources."@babel/traverse-7.9.6" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."globals-11.12.0"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."@babel/types-7.9.6"
+      sources."@istanbuljs/nyc-config-typescript-0.1.3"
+      sources."@types/chai-3.5.2"
+      sources."@types/mocha-5.2.7"
+      sources."@types/node-10.17.24"
+      sources."@types/prop-types-15.7.3"
+      sources."@types/react-16.9.35"
+      sources."@types/sqlite3-3.1.6"
+      sources."abbrev-1.1.1"
+      sources."accepts-1.3.7"
+      sources."acorn-5.7.4"
+      (sources."acorn-jsx-3.0.1" // {
+        dependencies = [
+          sources."acorn-3.3.0"
+        ];
+      })
+      sources."ajv-6.12.2"
+      sources."ajv-keywords-1.5.1"
+      sources."amdefine-1.0.1"
+      sources."another-json-0.2.0"
+      (sources."ansi-escape-sequences-4.1.0" // {
+        dependencies = [
+          sources."array-back-3.1.0"
+        ];
+      })
+      sources."ansi-escapes-1.4.0"
+      sources."ansi-regex-2.1.1"
+      sources."ansi-styles-3.2.1"
+      sources."append-transform-1.0.0"
+      sources."archy-1.0.0"
+      sources."arg-4.1.3"
+      sources."argparse-1.0.10"
+      sources."array-back-2.0.0"
+      sources."array-flatten-1.1.1"
+      sources."asn1-0.2.4"
+      sources."assert-options-0.1.3"
+      sources."assert-plus-1.0.0"
+      sources."assertion-error-1.1.0"
+      sources."async-0.2.10"
+      sources."async-limiter-1.0.1"
+      sources."asynckit-0.4.0"
+      sources."aws-sign2-0.7.0"
+      sources."aws4-1.9.1"
+      (sources."babel-code-frame-6.26.0" // {
+        dependencies = [
+          sources."ansi-styles-2.2.1"
+          sources."chalk-1.1.3"
+          sources."js-tokens-3.0.2"
+          sources."supports-color-2.0.0"
+        ];
+      })
+      sources."babel-runtime-6.26.0"
+      sources."balanced-match-1.0.0"
+      sources."base-x-3.0.8"
+      (sources."basic-auth-2.0.1" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      (sources."bcrypt-pbkdf-1.0.2" // {
+        dependencies = [
+          sources."tweetnacl-0.14.5"
+        ];
+      })
+      sources."better-sqlite3-5.4.3"
+      sources."binary-search-tree-0.2.5"
+      sources."bintrees-1.0.1"
+      sources."bluebird-2.11.0"
+      sources."body-parser-1.19.0"
+      sources."brace-expansion-1.1.11"
+      sources."browser-request-0.3.3"
+      sources."browser-stdout-1.3.1"
+      sources."bs58-4.0.1"
+      sources."buffer-from-1.1.1"
+      sources."buffer-writer-2.0.0"
+      sources."builtin-modules-1.1.1"
+      sources."bytes-3.1.0"
+      sources."caching-transform-3.0.2"
+      sources."caller-path-0.1.0"
+      sources."callsites-0.2.0"
+      sources."camelcase-5.3.1"
+      sources."caseless-0.12.0"
+      sources."chai-3.5.0"
+      sources."chalk-2.4.2"
+      sources."chownr-1.1.4"
+      sources."circular-json-0.3.3"
+      sources."cli-cursor-1.0.2"
+      sources."cli-width-2.2.1"
+      (sources."cliui-5.0.0" // {
+        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."co-4.6.0"
+      sources."code-point-at-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."colornames-1.1.1"
+      sources."colors-1.4.0"
+      sources."colorspace-1.1.2"
+      sources."combined-stream-1.0.8"
+      sources."command-line-args-4.0.7"
+      sources."command-line-usage-4.1.0"
+      sources."commander-2.20.3"
+      sources."commondir-1.0.1"
+      sources."concat-map-0.0.1"
+      (sources."concat-stream-1.6.2" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      (sources."content-disposition-0.5.3" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."content-type-1.0.4"
+      (sources."convert-source-map-1.7.0" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."cookie-0.4.0"
+      sources."cookie-signature-1.0.6"
+      sources."core-js-2.6.11"
+      sources."core-util-is-1.0.2"
+      sources."cp-file-6.2.0"
+      sources."cross-spawn-4.0.2"
+      sources."csstype-2.6.10"
+      sources."cycle-1.0.3"
+      sources."d-1.0.1"
+      sources."dashdash-1.14.1"
+      sources."debug-2.6.9"
+      sources."decamelize-1.2.0"
+      (sources."deep-eql-0.1.3" // {
+        dependencies = [
+          sources."type-detect-0.1.1"
+        ];
+      })
+      sources."deep-extend-0.6.0"
+      sources."deep-is-0.1.3"
+      sources."default-require-extensions-2.0.0"
+      sources."delayed-stream-1.0.0"
+      sources."depd-1.1.2"
+      sources."destroy-1.0.4"
+      sources."diagnostics-1.1.1"
+      sources."diff-4.0.2"
+      sources."discord-markdown-2.3.1"
+      sources."discord.js-11.6.4"
+      sources."doctrine-2.1.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."encodeurl-1.0.2"
+      sources."env-variable-0.0.6"
+      (sources."error-ex-1.3.2" // {
+        dependencies = [
+          sources."is-arrayish-0.2.1"
+        ];
+      })
+      sources."es5-ext-0.10.53"
+      sources."es6-error-4.1.1"
+      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-html-1.0.3"
+      sources."escape-string-regexp-1.0.5"
+      (sources."escodegen-1.8.1" // {
+        dependencies = [
+          sources."esprima-2.7.3"
+          sources."estraverse-1.9.3"
+        ];
+      })
+      sources."escope-3.6.0"
+      (sources."eslint-3.19.0" // {
+        dependencies = [
+          sources."ansi-styles-2.2.1"
+          sources."chalk-1.1.3"
+          sources."supports-color-2.0.0"
+        ];
+      })
+      sources."espree-3.5.4"
+      sources."esprima-4.0.1"
+      (sources."esquery-1.3.1" // {
+        dependencies = [
+          sources."estraverse-5.1.0"
+        ];
+      })
+      sources."esrecurse-4.2.1"
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
+      sources."etag-1.8.1"
+      sources."event-emitter-0.3.5"
+      sources."eventemitter3-4.0.4"
+      sources."exit-hook-1.1.1"
+      (sources."express-4.17.1" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      (sources."ext-1.4.0" // {
+        dependencies = [
+          sources."type-2.0.0"
+        ];
+      })
+      sources."extend-3.0.2"
+      sources."extsprintf-1.3.0"
+      sources."fast-deep-equal-3.1.1"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-2.0.6"
+      sources."fast-safe-stringify-2.0.7"
+      sources."fecha-2.3.3"
+      sources."figures-1.7.0"
+      sources."file-entry-cache-2.0.0"
+      sources."file-stream-rotator-0.4.1"
+      sources."fill-keys-1.0.2"
+      sources."finalhandler-1.1.2"
+      sources."find-cache-dir-2.1.0"
+      (sources."find-replace-1.0.3" // {
+        dependencies = [
+          sources."array-back-1.0.4"
+        ];
+      })
+      sources."find-up-3.0.0"
+      sources."flat-cache-1.3.4"
+      sources."foreground-child-1.5.6"
+      sources."forever-agent-0.6.1"
+      sources."form-data-2.3.3"
+      sources."forwarded-0.1.2"
+      sources."fresh-0.5.2"
+      sources."fs-minipass-1.2.7"
+      sources."fs.realpath-1.0.0"
+      sources."generate-function-2.3.1"
+      sources."generate-object-property-1.2.0"
+      sources."get-caller-file-2.0.5"
+      sources."getpass-0.1.7"
+      sources."glob-7.1.6"
+      sources."globals-9.18.0"
+      sources."graceful-fs-4.2.4"
+      sources."growl-1.10.5"
+      (sources."handlebars-4.7.6" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."har-schema-2.0.0"
+      sources."har-validator-5.1.3"
+      sources."has-ansi-2.0.0"
+      sources."has-flag-3.0.0"
+      sources."hasha-3.0.0"
+      sources."he-1.1.1"
+      sources."highlight.js-9.18.1"
+      sources."hosted-git-info-2.8.8"
+      sources."html-escaper-2.0.2"
+      sources."http-errors-1.7.2"
+      sources."http-signature-1.2.0"
+      sources."iconv-lite-0.4.24"
+      sources."ignore-3.3.10"
+      sources."immediate-3.0.6"
+      sources."imurmurhash-0.1.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.3"
+      (sources."inquirer-0.12.0" // {
+        dependencies = [
+          sources."ansi-styles-2.2.1"
+          sources."chalk-1.1.3"
+          sources."supports-color-2.0.0"
+        ];
+      })
+      sources."integer-2.1.0"
+      sources."interpret-1.2.0"
+      sources."ipaddr.js-1.9.1"
+      sources."is-arrayish-0.3.2"
+      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-my-ip-valid-1.0.0"
+      sources."is-my-json-valid-2.20.0"
+      sources."is-object-1.0.1"
+      sources."is-property-1.0.2"
+      sources."is-resolvable-1.1.0"
+      sources."is-stream-1.1.0"
+      sources."is-typedarray-1.0.0"
+      sources."isarray-1.0.0"
+      sources."isexe-2.0.0"
+      sources."isstream-0.1.2"
+      (sources."istanbul-0.4.5" // {
+        dependencies = [
+          sources."abbrev-1.0.9"
+          sources."async-1.5.2"
+          sources."esprima-2.7.3"
+          sources."glob-5.0.15"
+          sources."has-flag-1.0.0"
+          sources."resolve-1.1.7"
+          sources."supports-color-3.2.3"
+        ];
+      })
+      sources."istanbul-lib-coverage-2.0.5"
+      sources."istanbul-lib-hook-2.0.7"
+      (sources."istanbul-lib-instrument-3.3.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      (sources."istanbul-lib-report-2.0.8" // {
+        dependencies = [
+          sources."supports-color-6.1.0"
+        ];
+      })
+      (sources."istanbul-lib-source-maps-3.0.6" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."istanbul-reports-2.2.7"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.13.1"
+      sources."jsbn-0.1.1"
+      sources."jsesc-2.5.2"
+      sources."json-parse-better-errors-1.0.2"
+      sources."json-schema-0.2.3"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stable-stringify-1.0.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."jsonify-0.0.0"
+      sources."jsonpointer-4.0.1"
+      sources."jsprim-1.4.1"
+      sources."kuler-1.0.1"
+      sources."levn-0.3.0"
+      sources."lie-3.1.1"
+      (sources."load-json-file-4.0.0" // {
+        dependencies = [
+          sources."pify-3.0.0"
+        ];
+      })
+      sources."localforage-1.7.3"
+      sources."locate-path-3.0.0"
+      sources."lodash-4.17.15"
+      sources."lodash.flattendeep-4.4.0"
+      sources."lodash.padend-4.6.1"
+      (sources."logform-2.1.2" // {
+        dependencies = [
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."loglevel-1.6.1"
+      sources."long-4.0.0"
+      (sources."lru-cache-4.1.5" // {
+        dependencies = [
+          sources."yallist-2.1.2"
+        ];
+      })
+      (sources."make-dir-2.1.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."make-error-1.3.6"
+      sources."manakin-0.5.2"
+      sources."matrix-appservice-0.3.5"
+      sources."matrix-appservice-bridge-git://github.com/matrix-org/matrix-appservice-bridge#8a7288edf1d1d1d1395a83d330d836d9c9bf1e76"
+      (sources."matrix-js-sdk-1.2.0" // {
+        dependencies = [
+          sources."bluebird-3.7.2"
+        ];
+      })
+      sources."media-typer-0.3.0"
+      sources."merge-descriptors-1.0.1"
+      (sources."merge-source-map-1.1.0" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."methods-1.1.2"
+      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."minipass-2.9.0"
+      sources."minizlib-1.3.3"
+      sources."mkdirp-0.5.5"
+      (sources."mocha-5.2.0" // {
+        dependencies = [
+          sources."commander-2.15.1"
+          sources."debug-3.1.0"
+          sources."diff-3.5.0"
+          sources."glob-7.1.2"
+          sources."minimist-0.0.8"
+          sources."mkdirp-0.5.1"
+          sources."supports-color-5.4.0"
+        ];
+      })
+      sources."module-not-found-error-1.0.1"
+      sources."moment-2.26.0"
+      (sources."morgan-1.10.0" // {
+        dependencies = [
+          sources."depd-2.0.0"
+        ];
+      })
+      sources."ms-2.0.0"
+      sources."mute-stream-0.0.5"
+      sources."natural-compare-1.4.0"
+      sources."nedb-1.8.0"
+      sources."negotiator-0.6.2"
+      sources."neo-async-2.6.1"
+      sources."nested-error-stacks-2.1.0"
+      sources."next-tick-1.0.0"
+      sources."node-html-parser-1.2.16"
+      sources."nopt-3.0.6"
+      sources."normalize-package-data-2.5.0"
+      sources."number-is-nan-1.0.1"
+      (sources."nyc-14.1.1" // {
+        dependencies = [
+          sources."resolve-from-4.0.0"
+        ];
+      })
+      sources."oauth-sign-0.9.0"
+      sources."object-assign-4.1.1"
+      sources."object-hash-1.3.1"
+      sources."on-finished-2.3.0"
+      sources."on-headers-1.0.2"
+      sources."once-1.4.0"
+      sources."one-time-0.0.4"
+      sources."onetime-1.1.0"
+      sources."optionator-0.8.3"
+      sources."os-homedir-1.0.2"
+      sources."p-finally-1.0.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-3.0.0"
+      sources."p-queue-6.4.0"
+      sources."p-timeout-3.2.0"
+      sources."p-try-2.2.0"
+      sources."package-hash-3.0.0"
+      sources."packet-reader-1.0.0"
+      sources."parse-json-4.0.0"
+      sources."parseurl-1.3.3"
+      sources."path-exists-3.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-is-inside-1.0.2"
+      sources."path-parse-1.0.6"
+      sources."path-to-regexp-0.1.7"
+      (sources."path-type-3.0.0" // {
+        dependencies = [
+          sources."pify-3.0.0"
+        ];
+      })
+      sources."performance-now-2.1.0"
+      sources."pg-7.11.0"
+      sources."pg-connection-string-0.1.3"
+      sources."pg-int8-1.0.1"
+      sources."pg-minify-1.4.1"
+      sources."pg-pool-2.0.10"
+      sources."pg-promise-8.7.5"
+      sources."pg-types-2.0.1"
+      sources."pgpass-1.0.2"
+      sources."pify-4.0.1"
+      sources."pkg-dir-3.0.0"
+      sources."pluralize-1.2.1"
+      sources."postgres-array-2.0.0"
+      sources."postgres-bytea-1.0.0"
+      sources."postgres-date-1.0.5"
+      sources."postgres-interval-1.2.0"
+      sources."prelude-ls-1.1.2"
+      sources."prism-media-0.0.4"
+      sources."process-nextick-args-2.0.1"
+      sources."progress-1.1.8"
+      sources."prom-client-11.5.3"
+      sources."proxy-addr-2.0.6"
+      (sources."proxyquire-1.8.0" // {
+        dependencies = [
+          sources."resolve-1.1.7"
+        ];
+      })
+      sources."pseudomap-1.0.2"
+      sources."psl-1.8.0"
+      sources."punycode-2.1.1"
+      sources."qs-6.7.0"
+      sources."range-parser-1.2.1"
+      sources."raw-body-2.4.0"
+      sources."read-pkg-3.0.0"
+      sources."read-pkg-up-4.0.0"
+      sources."readable-stream-3.6.0"
+      sources."readline2-1.0.1"
+      sources."rechoir-0.6.2"
+      sources."reduce-flatten-1.0.1"
+      sources."regenerator-runtime-0.11.1"
+      sources."release-zalgo-1.0.0"
+      (sources."request-2.88.2" // {
+        dependencies = [
+          sources."qs-6.5.2"
+        ];
+      })
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.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."run-async-0.1.0"
+      sources."rx-lite-3.1.2"
+      sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
+      sources."semver-4.3.2"
+      (sources."send-0.17.1" // {
+        dependencies = [
+          sources."ms-2.1.1"
+        ];
+      })
+      sources."serve-static-1.14.1"
+      sources."set-blocking-2.0.0"
+      sources."setprototypeof-1.1.1"
+      sources."shelljs-0.7.8"
+      sources."signal-exit-3.0.3"
+      sources."simple-markdown-0.7.2"
+      sources."simple-swizzle-0.2.2"
+      sources."slice-ansi-0.0.4"
+      sources."snekfetch-3.6.4"
+      sources."source-map-0.2.0"
+      (sources."source-map-support-0.5.19" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."spawn-wrap-1.4.3"
+      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."spex-2.2.0"
+      sources."split-1.0.1"
+      sources."sprintf-js-1.0.3"
+      (sources."sshpk-1.16.1" // {
+        dependencies = [
+          sources."tweetnacl-0.14.5"
+        ];
+      })
+      sources."stack-trace-0.0.10"
+      sources."stackback-0.0.2"
+      sources."statuses-1.5.0"
+      sources."string-width-1.0.2"
+      sources."string_decoder-1.3.0"
+      sources."strip-ansi-3.0.1"
+      sources."strip-bom-3.0.0"
+      sources."strip-json-comments-2.0.1"
+      sources."supports-color-5.5.0"
+      (sources."table-3.8.3" // {
+        dependencies = [
+          sources."ajv-4.11.8"
+          sources."ansi-regex-3.0.0"
+          sources."ansi-styles-2.2.1"
+          sources."chalk-1.1.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
+          sources."supports-color-2.0.0"
+        ];
+      })
+      sources."table-layout-0.4.5"
+      sources."tar-4.4.13"
+      sources."tdigest-0.1.1"
+      sources."test-exclude-5.2.3"
+      (sources."test-value-2.1.0" // {
+        dependencies = [
+          sources."array-back-1.0.4"
+        ];
+      })
+      sources."text-hex-1.0.0"
+      sources."text-table-0.2.0"
+      sources."through-2.3.8"
+      sources."to-fast-properties-2.0.0"
+      sources."toidentifier-1.0.0"
+      sources."tough-cookie-2.5.0"
+      sources."triple-beam-1.3.0"
+      sources."ts-node-8.10.1"
+      sources."tslib-1.13.0"
+      (sources."tslint-5.20.1" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."tsutils-2.29.0"
+      sources."tunnel-agent-0.6.0"
+      sources."tweetnacl-1.0.3"
+      sources."type-1.2.0"
+      sources."type-check-0.3.2"
+      sources."type-detect-1.0.0"
+      sources."type-is-1.6.18"
+      sources."typedarray-0.0.6"
+      sources."typescript-3.9.3"
+      sources."typical-2.6.1"
+      sources."uglify-js-3.9.3"
+      sources."underscore-1.4.4"
+      sources."unhomoglyph-1.0.6"
+      sources."unpipe-1.0.0"
+      sources."uri-js-4.2.2"
+      sources."user-home-2.0.0"
+      sources."util-deprecate-1.0.2"
+      sources."utils-merge-1.0.1"
+      sources."uuid-3.4.0"
+      sources."validate-npm-package-license-3.0.4"
+      sources."vary-1.1.2"
+      sources."verror-1.10.0"
+      sources."which-1.3.1"
+      sources."which-module-2.0.0"
+      sources."why-is-node-running-2.1.2"
+      (sources."winston-3.2.1" // {
+        dependencies = [
+          sources."async-2.6.3"
+        ];
+      })
+      (sources."winston-compat-0.1.5" // {
+        dependencies = [
+          sources."logform-1.10.0"
+          sources."ms-2.1.2"
+        ];
+      })
+      (sources."winston-daily-rotate-file-3.10.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      (sources."winston-transport-4.3.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."wordwrap-1.0.0"
+      sources."wordwrapjs-3.0.0"
+      (sources."wrap-ansi-5.1.0" // {
+        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."wrappy-1.0.2"
+      sources."write-0.2.1"
+      sources."write-file-atomic-2.4.3"
+      sources."ws-6.2.1"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.0"
+      sources."yallist-3.1.1"
+      (sources."yargs-13.3.2" // {
+        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."yargs-parser-13.1.2"
+      sources."yn-3.1.1"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "A bridge between Matrix and Discord";
+      homepage = "https://github.com/Half-Shot/matrix-appservice-discord#readme";
+      license = "Apache-2.0";
+    };
+    production = false;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/servers/matrix-appservice-discord/package.json b/pkgs/servers/matrix-appservice-discord/package.json
new file mode 100644
index 00000000000..1cbeba4a1e9
--- /dev/null
+++ b/pkgs/servers/matrix-appservice-discord/package.json
@@ -0,0 +1,3 @@
+[
+  { "matrix-appservice-discord": "git+https://github.com/Half-Shot/matrix-appservice-discord.git#v0.5.2" }
+]
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index 3962f7b2da8..a321f609df8 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -5,29 +5,15 @@
 with python3.pkgs;
 
 let
-  matrix-synapse-ldap3 = buildPythonPackage rec {
-    pname = "matrix-synapse-ldap3";
-    version = "0.1.4";
-
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "01bms89sl16nyh9f141idsz4mnhxvjrc3gj721wxh1fhikps0djx";
-    };
-
-    propagatedBuildInputs = [ service-identity ldap3 twisted ];
-
-    # ldaptor is not ready for py3 yet
-    doCheck = !isPy3k;
-    checkInputs = [ ldaptor mock ];
-  };
-
-in buildPythonApplication rec {
+  plugins = python3.pkgs.callPackage ./plugins { };
+in
+buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "1.12.4";
+  version = "1.19.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0psr17ai42ma9923g9bj3q9fd8kph9rx7jpxsxwbfzr2y6lwr306";
+    sha256 = "1fl9p0cb442271hx7zjz8vp111xgvdpn4khk8bk3kl8z9hjs2l1p";
   };
 
   patches = [
@@ -45,7 +31,6 @@ in buildPythonApplication rec {
     jinja2
     jsonschema
     lxml
-    matrix-synapse-ldap3
     msgpack
     netaddr
     phonenumbers
@@ -72,22 +57,26 @@ in buildPythonApplication rec {
     twisted
     unpaddedbase64
     typing-extensions
+    authlib
+    pyjwt
   ] ++ lib.optional enableSystemd systemd;
 
   checkInputs = [ mock parameterized openssl ];
 
   doCheck = !stdenv.isDarwin;
 
-  passthru.tests = { inherit (nixosTests) matrix-synapse; };
-
   checkPhase = ''
     PYTHONPATH=".:$PYTHONPATH" ${python3.interpreter} -m twisted.trial tests
   '';
 
+  passthru.tests = { inherit (nixosTests) matrix-synapse; };
+  passthru.plugins = plugins;
+  passthru.python = python3;
+
   meta = with stdenv.lib; {
     homepage = "https://matrix.org";
     description = "Matrix reference homeserver";
     license = licenses.asl20;
-    maintainers = with maintainers; [ ralith roblabla ekleog pacien ma27 ];
+    maintainers = teams.matrix.members;
   };
 }
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 7de8cd858a3..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 = "a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==";
+        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 = "/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==";
+        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 = "lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==";
+        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" = {
@@ -40,31 +49,31 @@ let
         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 = "5xXOjLPb4H8a+URLrCjnFXA62Kf4IrvSfp9KtuOxv6vTtFVvxNW4WqhWgAcxwXolD43xRuB/pikxLu76vLDTfw==";
+        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 = "SrrAD/ZxDN4szQ35V/mY2TvKSyGsUWP8def1C8NMg9AvdYG0VyaL5f+Dd6jw8STosMFXd3zqjekMowT9LB9/IQ==";
+        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 = "MONzkjWOXV39Dejo8B9WSl/F0dxcVh9wyeW6R0jf6T6BhwN4f24iErYtTh19g+MRhb0oiyeKfnFsJTSKQulfDA==";
+        url = "https://registry.npmjs.org/@slack/web-api/-/web-api-5.10.0.tgz";
+        sha512 = "t8c2lcSrdX8LIUOS1RvslbBBKvuNaTtbEcrWai4yDGkiNIxzhk+dHPcJzd7A4A0DkAgiEwXeezR7RCELuG8WgQ==";
       };
     };
     "@types/body-parser-1.19.0" = {
@@ -103,15 +112,6 @@ let
         sha512 = "2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==";
       };
     };
-    "@types/events-3.0.0" = {
-      name = "_at_types_slash_events";
-      packageName = "@types/events";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz";
-        sha512 = "EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==";
-      };
-    };
     "@types/express-4.17.6" = {
       name = "_at_types_slash_express";
       packageName = "@types/express";
@@ -121,13 +121,13 @@ let
         sha512 = "n/mr9tZI83kd4azlPG5y997C/M4DNABK9yErhFM6hKdym4kkmd9j0vtsJyjFIwfRBxtrxZtAfGZCNRIBMFLK5w==";
       };
     };
-    "@types/express-serve-static-core-4.17.6" = {
+    "@types/express-serve-static-core-4.17.7" = {
       name = "_at_types_slash_express-serve-static-core";
       packageName = "@types/express-serve-static-core";
-      version = "4.17.6";
+      version = "4.17.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.6.tgz";
-        sha512 = "U2oynuRIB17GIbEdvjFrrEACOy7GQkzsX7bPEBz1H41vZYEU4j0fLL97sawmHDwHUXpUQDBMHIyM9vejqP9o1A==";
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.7.tgz";
+        sha512 = "EMgTj/DF9qpgLXyc+Btimg+XoH7A2liE8uKul8qSmMTHCeNYzydDKFdsJskDvw42UsesCnhO63dO0Grbj8J4Dw==";
       };
     };
     "@types/is-stream-1.1.0" = {
@@ -139,13 +139,13 @@ let
         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 = "FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==";
+        url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.2.tgz";
+        sha512 = "4kPlzbljFcsttWEq6aBW0OZe6BDajAmyvr2xknBG92tejQnvdGtT9+kXSZ580DqpxY9qG2xeQVF9Dq0ymUTo5Q==";
       };
     };
     "@types/mocha-7.0.2" = {
@@ -184,6 +184,15 @@ let
         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" = {
       name = "_at_types_slash_p-queue";
       packageName = "@types/p-queue";
@@ -193,13 +202,13 @@ let
         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 = "a9bDi4Z3zCZf4Lv1X/vwnvbbDYSNz59h3i3KdyuYYN+YrLjSeJD0dnphdULDfySvUv6Exy/O0K6wX/kQpnPQ+A==";
+        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.3.tgz";
+        sha512 = "7s9EQWupR1fTc2pSMtXRQ9w9gLOcrJn+h7HOXw4evxyvVqMi4f+q7d2tnFe3ng3SNHjtK+0EzGMGFUQX4/AQRA==";
       };
     };
     "@types/randomstring-1.1.6" = {
@@ -220,13 +229,13 @@ let
         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 = "W1t1MTKYR8PxICH+A4HgEIPuAC3sbljoEVfyZbeFJJDbr30guDspJri2XOaM2E+Un7ZjrihaDi7cf6fPa2tbgw==";
+        url = "https://registry.npmjs.org/@types/request/-/request-2.48.5.tgz";
+        sha512 = "/LO7xRVnL3DxJ1WkPGDQrp4VTV1reX9RkC85mJ+Qzykj2Bdw+mG15aAfDahc76HtknjzE16SX/Yddn6MxVbmGQ==";
       };
     };
     "@types/request-promise-native-1.0.17" = {
@@ -247,13 +256,13 @@ let
         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 = "oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g==";
+        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" = {
@@ -265,31 +274,31 @@ let
         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 = "PUdqTZVrNYTNcIhLHkiaYzoOIaUi5LFg/XLerAdgvwQrUCx+oSbtoBze1AMyvYbcwzUSNC+Isl58SM4Sm/6COw==";
+        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 = "NkTXUKTYdXdnPE2aUUbGOXE1XfMK527SCvU/9bj86kyFF6kZ9ZnOQ3mK5jADn98Y2vEUD/7wKDgZa7Qst2wYOg==";
+        url = "https://registry.npmjs.org/@types/ws/-/ws-7.2.5.tgz";
+        sha512 = "4UEih9BI1nBKii385G9id1oFrSkLcClbwtDfcYj8HJLQqZVAtb/42vXVrYvRWCcufNF/a+rZD3MxNwghA7UmCg==";
       };
     };
-    "@types/yargs-13.0.8" = {
+    "@types/yargs-13.0.9" = {
       name = "_at_types_slash_yargs";
       packageName = "@types/yargs";
-      version = "13.0.8";
+      version = "13.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz";
-        sha512 = "XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==";
+        url = "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.9.tgz";
+        sha512 = "xrvhZ4DZewMDhoH1utLtOAwYQy60eYFoXeje30TzM3VOvQlBwQaEpKFq5m34k1wOw2AKIi2pwtiAjdmhvlBUzg==";
       };
     };
     "@types/yargs-parser-13.1.0" = {
@@ -311,6 +320,15 @@ 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";
@@ -428,6 +446,15 @@ 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";
@@ -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 = "zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==";
+        url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz";
+        sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
       };
     };
     "async-limiter-1.0.1" = {
@@ -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 = "wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==";
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz";
+        sha512 = "3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==";
       };
     };
     "axios-0.19.2" = {
@@ -761,6 +788,15 @@ let
         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" = {
       name = "cliui";
       packageName = "cliui";
@@ -806,15 +842,6 @@ let
         sha512 = "dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==";
       };
     };
-    "colornames-1.1.1" = {
-      name = "colornames";
-      packageName = "colornames";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz";
-        sha1 = "f8889030685c7c4ff9e2a559f5077eb76a816f96";
-      };
-    };
     "colors-1.4.0" = {
       name = "colors";
       packageName = "colors";
@@ -851,6 +878,15 @@ let
         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" = {
       name = "concat-map";
       packageName = "concat-map";
@@ -1022,15 +1058,6 @@ let
         sha1 = "978857442c44749e4206613e37946205826abd80";
       };
     };
-    "diagnostics-1.1.1" = {
-      name = "diagnostics";
-      packageName = "diagnostics";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz";
-        sha512 = "8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==";
-      };
-    };
     "diff-3.5.0" = {
       name = "diff";
       packageName = "diff";
@@ -1076,13 +1103,13 @@ let
         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 = "bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==";
-      };
-    };
-    "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 = "BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==";
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz";
+        sha512 = "Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==";
       };
     };
     "es-to-primitive-1.2.1" = {
@@ -1175,13 +1193,13 @@ let
         sha512 = "tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==";
       };
     };
-    "eventemitter3-4.0.0" = {
+    "eventemitter3-4.0.4" = {
       name = "eventemitter3";
       packageName = "eventemitter3";
-      version = "4.0.0";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz";
-        sha512 = "qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==";
+        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz";
+        sha512 = "rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==";
       };
     };
     "express-4.17.1" = {
@@ -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 = "8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==";
+        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" = {
@@ -1247,6 +1265,15 @@ let
         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" = {
       name = "file-stream-rotator";
       packageName = "file-stream-rotator";
@@ -1301,6 +1328,15 @@ let
         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" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
@@ -1598,13 +1634,13 @@ let
         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 = "ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==";
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz";
+        sha512 = "pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==";
       };
     };
     "is-date-object-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 = "vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==";
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz";
+        sha512 = "iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==";
       };
     };
     "is-stream-1.1.0" = {
@@ -1697,6 +1733,15 @@ 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";
@@ -1760,6 +1805,15 @@ let
         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" = {
       name = "jsbn";
       packageName = "jsbn";
@@ -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 = "J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==";
+        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 = "1TulyYfc4udS7ECSBT2vwJksWbkwwTX8BzeUIiq8Y07Riy7bDAAnxDaPU/tWyOVmQAcWJIEIFP9lPfBGqVoPgQ==";
+        url = "https://registry.npmjs.org/localforage/-/localforage-1.7.4.tgz";
+        sha512 = "3EmVZatmNVeCo/t6Te7P06h2alGwbq8wXlSkcSXMvDE2/edPmsVqTPlzGnZaqwZZDBs6v+kxWpqjVsqsNJT8jA==";
       };
     };
     "locate-path-3.0.0" = {
@@ -1886,13 +1940,13 @@ let
         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 = "+lZh4OpERDBLqjiwDLpAWNQu6KMjnlXH2ByZwCuSqVPJletw0kTWJf5CgSNAUKn1KUkv3m2cUz/LK8zyEy7wzQ==";
+        url = "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz";
+        sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==";
       };
     };
     "loglevel-1.6.8" = {
@@ -2021,22 +2075,22 @@ let
         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 = "o96kdRKMKI3E8U0bjnfqW4QMk12MwZ4mhdBTf+B5a1q9+aq2HRnj+3ZdJu0B/ZhJeK78MgYuv6L8d/rA5AeBJA==";
+        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 = "PuYv0PHxZvzc15Sp8ybUCoQ+xpyPWvjOuK72a5ovzp2LI32rJXOiIfyoFoYvG3s6EwwrdkMyWuRiEHSZRLJNdg==";
+        url = "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz";
+        sha512 = "al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==";
       };
     };
     "morgan-1.10.0" = {
@@ -2129,6 +2183,15 @@ let
         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" = {
       name = "oauth-sign";
       packageName = "oauth-sign";
@@ -2147,13 +2210,13 @@ let
         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 = "a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==";
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz";
+        sha512 = "jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==";
       };
     };
     "object-keys-1.1.1" = {
@@ -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" = {
@@ -2372,22 +2435,22 @@ let
         sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
       };
     };
-    "pg-8.0.3" = {
+    "pg-8.2.1" = {
       name = "pg";
       packageName = "pg";
-      version = "8.0.3";
+      version = "8.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg/-/pg-8.0.3.tgz";
-        sha512 = "fvcNXn4o/iq4jKq15Ix/e58q3jPSmzOp6/8C3CaHoSR/bsxdg+1FXfDRePdtE/zBb3++TytvOrS1hNef3WC/Kg==";
+        url = "https://registry.npmjs.org/pg/-/pg-8.2.1.tgz";
+        sha512 = "DKzffhpkWRr9jx7vKxA+ur79KG+SKw+PdjMb1IRhMiKI9zqYUGczwFprqy+5Veh/DCcFs1Y6V8lRLN5I1DlleQ==";
       };
     };
-    "pg-connection-string-0.1.3" = {
+    "pg-connection-string-2.2.3" = {
       name = "pg-connection-string";
       packageName = "pg-connection-string";
-      version = "0.1.3";
+      version = "2.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz";
-        sha1 = "da1847b20940e42ee1492beaf65d49d91b245df7";
+        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.2.3.tgz";
+        sha512 = "I/KCSQGmOrZx6sMHXkOs2MjddrYcqpza3Dtsy0AjIgBr/bZiPJRK9WhABXN1Uy1UDazRbi9gZEzO2sAhL5EqiQ==";
       };
     };
     "pg-int8-1.0.1" = {
@@ -2399,40 +2462,40 @@ let
         sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==";
       };
     };
-    "pg-minify-1.5.2" = {
+    "pg-minify-1.6.1" = {
       name = "pg-minify";
       packageName = "pg-minify";
-      version = "1.5.2";
+      version = "1.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.5.2.tgz";
-        sha512 = "uZn/gXkGmO5JBdopxNLSpFMS1lXr+KJqynI8Di1Qyr8ZVXt67ruh+XNfzLMVdLzYv+MQRdNYQdVwWPSs0qM7xQ==";
+        url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.1.tgz";
+        sha512 = "ujanxJJB9CSDUvlAOshtjdKAywOPR2vY0a7D+vvgk5rbrYcthZA7TjpN+Z+UwZsz/G/bUexYDT6huE33vYVN0g==";
       };
     };
-    "pg-pool-3.1.1" = {
+    "pg-pool-3.2.1" = {
       name = "pg-pool";
       packageName = "pg-pool";
-      version = "3.1.1";
+      version = "3.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.1.1.tgz";
-        sha512 = "kYH6S0mcZF1TPg1F9boFee2JlCSm2oqnlR2Mz2Wgn1psQbEBNVeNTJCw2wCK48QsctwvGUzbxLMg/lYV6hL/3A==";
+        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.1.tgz";
+        sha512 = "BQDPWUeKenVrMMDN9opfns/kZo4lxmSWhIqo+cSAF7+lfi9ZclQbr9vfnlNaPr8wYF3UYjm5X0yPAhbcgqNOdA==";
       };
     };
-    "pg-promise-10.5.3" = {
+    "pg-promise-10.5.7" = {
       name = "pg-promise";
       packageName = "pg-promise";
-      version = "10.5.3";
+      version = "10.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.5.3.tgz";
-        sha512 = "cfHgFpcqOc0IIRDABre//k1eda7s94Wys67P9r3q590nmvO0AzZucqWTVmgRUzNTIrDChUwY4hVOMBTIsU/ZiA==";
+        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 = "r8hGxHOk3ccMjjmhFJ/QOSVW5A+PP84TeRlEwB/cQ9Zu+bvtZg8Z59Cx3AMfVQc9S0Z+EG+HKhicF1W1GN5Eqg==";
+        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" = {
@@ -2561,13 +2624,13 @@ let
         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 = "WjAKQ9ORzvqjLijJXiXWqc3Gcs1ivoxCj6KJmEjoWBE6OtHwuaDLSAUqGHALUiid7A1KqGqsSHZs8prxF5xxAQ==";
+        url = "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz";
+        sha512 = "WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==";
       };
     };
     "randomstring-1.1.5" = {
@@ -2624,6 +2687,15 @@ let
         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" = {
       name = "regenerator-runtime";
       packageName = "regenerator-runtime";
@@ -2705,13 +2777,13 @@ let
         sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
       };
     };
-    "safe-buffer-5.2.0" = {
+    "safe-buffer-5.2.1" = {
       name = "safe-buffer";
       packageName = "safe-buffer";
-      version = "5.2.0";
+      version = "5.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==";
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
       };
     };
     "safer-buffer-2.1.2" = {
@@ -2903,24 +2975,6 @@ let
         sha512 = "LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==";
       };
     };
-    "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 = "gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==";
-      };
-    };
-    "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 = "ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==";
-      };
-    };
     "string.prototype.trimstart-1.0.1" = {
       name = "string.prototype.trimstart";
       packageName = "string.prototype.trimstart";
@@ -3056,22 +3110,22 @@ let
         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 = "bdNz1L4ekHiJul6SHtZWs1ujEKERJnHs4HxN7rjTyyVOFf3HaJ6sLqe6aPG62XTzAB/63pKRh5jTSWL0D7bsvw==";
+        url = "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz";
+        sha512 = "ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==";
       };
     };
-    "tslib-1.11.2" = {
+    "tslib-1.13.0" = {
       name = "tslib";
       packageName = "tslib";
-      version = "1.11.2";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz";
-        sha512 = "tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==";
+        url = "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz";
+        sha512 = "i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==";
       };
     };
     "tslint-6.1.2" = {
@@ -3128,13 +3182,13 @@ let
         sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
       };
     };
-    "typescript-3.8.3" = {
+    "typescript-3.9.5" = {
       name = "typescript";
       packageName = "typescript";
-      version = "3.8.3";
+      version = "3.9.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz";
-        sha512 = "MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-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 = "rNAw2rGogjq4BVhsCX8K6qXrCcHmUaMCHETlUG0ujGZ3OHwnzJHwdMyzy3n/c9Y7lvlbckOd9nkW33grUVE3bg==";
+        url = "https://registry.npmjs.org/unhomoglyph/-/unhomoglyph-1.0.6.tgz";
+        sha512 = "7uvcWI3hWshSADBu4JpnyYbTVc7YlhF5GDW/oPD5AxIxl34k4wXR3WDkPnzLxkN32LiTCTKMQLtKVZiwki3zGg==";
       };
     };
     "unpipe-1.0.0" = {
@@ -3254,13 +3308,13 @@ let
         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 = "zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==";
+        url = "https://registry.npmjs.org/winston/-/winston-3.3.2.tgz";
+        sha512 = "vTOrUZlyQPS8VpCcQ1JT8BumDAUe4awCHZ9nmGgO7LqkV4atj0dKa5suA7Trf7QKtBszE2yUs9d8744Kz9j4jQ==";
       };
     };
     "winston-compat-0.1.5" = {
@@ -3281,13 +3335,13 @@ let
         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 = "B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A==";
+        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz";
+        sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==";
       };
     };
     "wrap-ansi-5.1.0" = {
@@ -3374,27 +3428,28 @@ let
   };
 in
 {
-  "matrix-appservice-slack-git+https://github.com/matrix-org/matrix-appservice-slack.git#1.2.0" = 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.2.0";
+    version = "1.4.0";
     src = fetchgit {
       url = "https://github.com/matrix-org/matrix-appservice-slack.git";
-      rev = "2967f02484a3cdb386336b328438ec65fa8be382";
-      sha256 = "bc7f87744046561d8dcd5b75d2469950f11ceac9d6d69a49eac4e05354f34834";
+      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.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/yargs-13.0.8"
+      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,23 +3713,24 @@ 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"
       sources."p-locate-3.0.0"
       (sources."p-queue-6.4.0" // {
         dependencies = [
-          sources."eventemitter3-4.0.0"
+          sources."eventemitter3-4.0.4"
         ];
       })
       sources."p-retry-4.2.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.0.3"
-      sources."pg-connection-string-0.1.3"
+      sources."pg-8.2.1"
+      sources."pg-connection-string-2.2.3"
       sources."pg-int8-1.0.1"
-      sources."pg-minify-1.5.2"
-      sources."pg-pool-3.1.1"
-      sources."pg-promise-10.5.3"
-      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,12 +3812,10 @@ 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 = [
-          sources."safe-buffer-5.2.0"
+          sources."safe-buffer-5.2.1"
         ];
       })
       sources."strip-ansi-5.2.0"
@@ -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.11.2"
+      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.8.3"
+      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 a197abdda2e..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.2.0" }
+    {"matrix-appservice-slack": "git+https://github.com/matrix-org/matrix-appservice-slack.git#1.4.0" }
 ]
diff --git a/pkgs/servers/matrix-synapse/plugins/default.nix b/pkgs/servers/matrix-synapse/plugins/default.nix
new file mode 100644
index 00000000000..f3dbaa1573f
--- /dev/null
+++ b/pkgs/servers/matrix-synapse/plugins/default.nix
@@ -0,0 +1,6 @@
+{ callPackage }:
+
+{
+  matrix-synapse-ldap3 = callPackage ./ldap3.nix { };
+  matrix-synapse-pam = callPackage ./pam.nix { };
+}
diff --git a/pkgs/servers/matrix-synapse/plugins/ldap3.nix b/pkgs/servers/matrix-synapse/plugins/ldap3.nix
new file mode 100644
index 00000000000..9f1aec20033
--- /dev/null
+++ b/pkgs/servers/matrix-synapse/plugins/ldap3.nix
@@ -0,0 +1,17 @@
+{ isPy3k, buildPythonPackage, fetchPypi, service-identity, ldap3, twisted, ldaptor, mock }:
+
+buildPythonPackage rec {
+  pname = "matrix-synapse-ldap3";
+  version = "0.1.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01bms89sl16nyh9f141idsz4mnhxvjrc3gj721wxh1fhikps0djx";
+  };
+
+  propagatedBuildInputs = [ service-identity ldap3 twisted ];
+
+  # ldaptor is not ready for py3 yet
+  doCheck = !isPy3k;
+  checkInputs = [ ldaptor mock ];
+}
diff --git a/pkgs/servers/matrix-synapse/plugins/pam.nix b/pkgs/servers/matrix-synapse/plugins/pam.nix
new file mode 100644
index 00000000000..47ee28a7794
--- /dev/null
+++ b/pkgs/servers/matrix-synapse/plugins/pam.nix
@@ -0,0 +1,15 @@
+{ buildPythonPackage, fetchFromGitHub, twisted, python-pam }:
+
+buildPythonPackage rec {
+  pname = "matrix-synapse-pam";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "14mRh4X0r";
+    repo = "matrix-synapse-pam";
+    rev = "v${version}";
+    sha256 = "10byma9hxz3g4sirw5sa4pvljn83h9vs7zc15chhpl2n14bdx45l";
+  };
+
+  propagatedBuildInputs = [ twisted python-pam ];
+}
diff --git a/pkgs/servers/matterbridge/default.nix b/pkgs/servers/matterbridge/default.nix
index 1f39278de62..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.1";
+  version = "1.18.0";
 
-  goPackagePath = "github.com/42wim/matterbridge";
-  modSha256 = "1mqp8dlwa4p70iv9ksq3pxx5zbxdh56xyksvd98zk0vkrz4f1rij";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   src = fetchurl {
     url = "https://github.com/42wim/matterbridge/archive/v${version}.tar.gz";
-    sha256 = "0xf0s1bvlzqnxz2kvqx1h9gmgqxdlf34s27s3zradi8fwd8hriv6";
+    sha256 = "0ax2lis37ppxah4k9aqw1aj6pl5yz6npfriaw70g4952abvbkivw";
   };
 
   meta = with stdenv.lib; {
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/mattermost/matterircd.nix b/pkgs/servers/mattermost/matterircd.nix
index bb6d1584a67..d644e985db5 100644
--- a/pkgs/servers/mattermost/matterircd.nix
+++ b/pkgs/servers/mattermost/matterircd.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "matterircd";
-  version = "0.18.2";
+  version = "0.19.4";
 
   src = fetchFromGitHub {
     owner = "42wim";
     repo = "matterircd";
     rev = "v${version}";
-    sha256 = "0g57g91v7208yynf758k9v73jdhz4fbc1v23p97rzrl97aq0rd5r";
+    sha256 = "1kwyk6gy4d4v2rzyr7vwvi8vm69rz1hdn0gkpan2kh1p63z77gbv";
   };
 
   goPackagePath = "github.com/42wim/matterircd";
diff --git a/pkgs/servers/mautrix-telegram/default.nix b/pkgs/servers/mautrix-telegram/default.nix
index 1b64fb73184..c39d4fc0d86 100644
--- a/pkgs/servers/mautrix-telegram/default.nix
+++ b/pkgs/servers/mautrix-telegram/default.nix
@@ -1,21 +1,28 @@
-{ 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.7.2";
+  version = "0.8.2";
   disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1ahchkhrhyd160fwlg6g0d2v8v56j9f3h9rnm71nxibgfjcb6m3n";
+  src = fetchFromGitHub {
+    owner = "tulir";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0mhy9b933haz1bldkglvn81warjxdjdzgkviiv5k6fykghq473jf";
   };
 
   postPatch = ''
-    sed -i -e '/alembic>/d' setup.py
-    substituteInPlace setup.py \
-      --replace "telethon>=1.9,<1.10" "telethon~=1.9"
+    sed -i -e '/alembic>/d' requirements.txt
   '';
 
   propagatedBuildInputs = [
@@ -32,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`
@@ -41,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 c0d01855be0..813d1f18e8b 100644
--- a/pkgs/servers/mautrix-whatsapp/default.nix
+++ b/pkgs/servers/mautrix-whatsapp/default.nix
@@ -1,17 +1,23 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, olm }:
 
-buildGoModule {
-  pname = "mautrix-whatsapp-unstable";
-  version = "2020-04-21-1";
+buildGoModule rec {
+  pname = "mautrix-whatsapp";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "tulir";
     repo = "mautrix-whatsapp";
-    rev = "e0aea74abf090bc9dc499332b28bf03640c162f8";
-    sha256 = "1gayjyh0x0axc1xak38zkdhvx6fy8pwlniqsirqy2mwcgkkll9i5";
+    rev = "v${version}";
+    sha256 = "1qagp6jnc4n368pg4h3jr9bzpwpbnva1xyl1b1k2a7q4b5fm5yww";
   };
 
-  modSha256 = "1pddabyyz6q1snx9j7yv7dchasqa1y8nbpb5zrwmrpnwpns8kxl7";
+  buildInputs = [ olm ];
+
+  vendorSha256 = "1dmlqhhwmc0k9nbab5j8sl20b8d6b5yrmcdf7ibaiqh7i16zrp3s";
+
+  doCheck = false;
+
+  runVend = true;
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/tulir/mautrix-whatsapp";
diff --git a/pkgs/servers/mediatomb/default.nix b/pkgs/servers/mediatomb/default.nix
index 17bfdef2a30..d996a6ad0ef 100644
--- a/pkgs/servers/mediatomb/default.nix
+++ b/pkgs/servers/mediatomb/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit
-, sqlite, expat, mp4v2, flac, spidermonkey, taglib, libexif, curl, ffmpeg, file
+, sqlite, expat, mp4v2, flac, spidermonkey, taglib, libexif, curl, ffmpeg_3, file
 , pkgconfig, autoreconfHook }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "1mimslr4q6mky865y6561rr64cbn4gf0qc2dhgb31hxp4rc1kmzd";
   };
 
-  buildInputs = [ sqlite expat spidermonkey taglib libexif curl ffmpeg file mp4v2 flac
+  buildInputs = [ sqlite expat spidermonkey taglib libexif curl ffmpeg_3 file mp4v2 flac
                   pkgconfig autoreconfHook ];
 
   meta = with stdenv.lib; {
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/memcached/default.nix b/pkgs/servers/memcached/default.nix
index fb284970af0..58276ff8632 100644
--- a/pkgs/servers/memcached/default.nix
+++ b/pkgs/servers/memcached/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, cyrus_sasl, libevent, nixosTests }:
 
 stdenv.mkDerivation rec {
-  version = "1.6.5";
+  version = "1.6.6";
   pname = "memcached";
 
   src = fetchurl {
     url = "https://memcached.org/files/${pname}-${version}.tar.gz";
-    sha256 = "1pr7igk7ic9wc2yax26wy3ar223vilf2qyzrknz36g61dxqa6k8z";
+    sha256 = "1xrj7vy05nc6bky4wnrmrbxfibvk5vq4dp2fwk4jk4amzbn0x3wh";
   };
 
   configureFlags = [
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 5d50f8c9b0c..6b3bcdf72d1 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.3";
+  version = "0.36.2";
 
   src = fetchurl {
     url = "http://downloads.metabase.com/v${version}/metabase.jar";
-    sha256 = "1iax99id47a8mkdyr5wp2dwvl0d1lfh9gsamd1m0qpxw9mbvpkbq";
+    sha256 = "1m3wafv6fh3ivxi474bf0in3wryyimv27pqv3920ryvwkawz7gyi";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/meteor/default.nix b/pkgs/servers/meteor/default.nix
index 0a0d3aa7bd8..ddf7a972c2e 100644
--- a/pkgs/servers/meteor/default.nix
+++ b/pkgs/servers/meteor/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl, zlib, patchelf, runtimeShell }:
 
 let
-  version = "1.10.1";
+  version = "1.10.2";
 in
 
 stdenv.mkDerivation {
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   pname = "meteor";
   src = fetchurl {
     url = "https://static-meteor.netdna-ssl.com/packages-bootstrap/${version}/meteor-bootstrap-os.linux.x86_64.tar.gz";
-    sha256 = "1xck7pi7rhkgssic7adbg1slypjjkqxa18wlf3jffbgj0zzr87nx";
+    sha256 = "17s1n92nznasaaprvxg289a1fcizq2nj51xqw7akgw5f77q19vmw";
   };
 
   #dontStrip = true;
diff --git a/pkgs/servers/miniflux/default.nix b/pkgs/servers/miniflux/default.nix
index 43c41250970..8420f53aba3 100644
--- a/pkgs/servers/miniflux/default.nix
+++ b/pkgs/servers/miniflux/default.nix
@@ -1,26 +1,29 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
 
 buildGoPackage rec {
   pname = "miniflux";
-  version = "2.0.19";
+  version = "2.0.21";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "121qy1af1qbc09c3yfwhpk6r3hwmh3jg6gjx8ygfv3hfrss9yfll";
+    sha256 = "0yhzmfs35jfc7vq26r9c14v4lnv8sxj3pv23r2cx2rfx47b1zmk7";
   };
 
   goPackagePath = "miniflux.app";
 
+  nativeBuildInputs = [ installShellFiles ];
+
   doCheck = true;
 
   buildFlagsArray = ''
-    -ldflags=-X miniflux.app/version.Version=${version}
+    -ldflags=-s -w -X miniflux.app/version.Version=${version}
   '';
 
   postInstall = ''
     mv $out/bin/miniflux.app $out/bin/miniflux
+    installManPage go/src/${goPackagePath}/miniflux.1
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/minio/default.nix b/pkgs/servers/minio/default.nix
index 8b30d7dbbc8..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";
   };
 
-  modSha256 = "1g5vwllxpiy4qlfhn3v5k6sn4g4qpbv0hpg32y1vi2q342lag116";
+  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;
 
diff --git a/pkgs/servers/misc/airsonic/default.nix b/pkgs/servers/misc/airsonic/default.nix
index be748035430..852b5350bba 100644
--- a/pkgs/servers/misc/airsonic/default.nix
+++ b/pkgs/servers/misc/airsonic/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "airsonic";
-  version = "10.6.1";
+  version = "10.6.2";
 
   src = fetchurl {
     url = "https://github.com/airsonic/airsonic/releases/download/v${version}/airsonic.war";
-    sha256 = "0dgk9i7981wydp44zax21y48psybcsd4i68cmlp9izl8aa5gk2vb";
+    sha256 = "0q3qnqymj3gaa6n79pvbyidn1ga99lpngp5wvhlw1aarg1m7vccl";
   };
 
   buildCommand = ''
diff --git a/pkgs/servers/misc/navidrome/default.nix b/pkgs/servers/misc/navidrome/default.nix
new file mode 100644
index 00000000000..a14a5039721
--- /dev/null
+++ b/pkgs/servers/misc/navidrome/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, ffmpeg, ffmpegSupport ? true, makeWrapper }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  pname = "navidrome";
+  version = "0.29.0";
+
+  src = fetchurl {
+    url = "https://github.com/deluan/navidrome/releases/download/v${version}/navidrome_${version}_Linux_x86_64.tar.gz";
+    sha256 = "0dpv68wvrslgfgh18mb8ficji6k1i9jiid9bfw786andf4rwghyc";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  unpackPhase = ''
+     tar xvf $src navidrome
+  '';
+
+  installPhase = ''
+     mkdir -p $out/bin
+     cp navidrome $out/bin
+  '';
+
+  postFixup = ''
+    wrapProgram $out/bin/navidrome \
+      --prefix PATH : ${makeBinPath (optional ffmpegSupport ffmpeg)}
+  '';
+  
+  meta = {
+    description = "Navidrome Music Server and Streamer compatible with Subsonic/Airsonic";
+    homepage = "https://www.navidrome.org/";
+    license = licenses.gpl3;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ aciceri ];
+  };
+}
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 b738e36cf89..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 = ''
@@ -16,7 +16,13 @@ buildGoModule rec {
       -X main.version=${version}
   '';
 
-  modSha256 = "164bwqg996097db399j7lar6gj9xpshjdmyapvzg7zh655xlkf3d";
+  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";
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 7fdd9c70d9a..1f4d91c9c87 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -1,10 +1,8 @@
-{ lib, buildGoPackage, fetchurl, fetchFromGitHub, phantomJsSupport ? false, phantomjs2 ? null }:
+{ lib, buildGoModule, fetchurl, fetchFromGitHub, nixosTests }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "grafana";
-  version = "6.7.3";
-
-  goPackagePath = "github.com/grafana/grafana";
+  version = "7.1.3";
 
   excludedPackages = [ "release_publisher" ];
 
@@ -12,29 +10,29 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "14yrfrn59r3mxbkhs7mg7nlhnvvrmq959r8w4aj6m7wgr32jj8wl";
+    sha256 = "1acvvqsgwfrkqmbgzdxfa8shwmx7c91agaqv3gsfgpqkqwp3pnmh";
   };
 
   srcStatic = fetchurl {
     url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
-    sha256 = "17h70h6cz1bdhczjqa68kxzfm4vi95zdnqzah8hcjr7rwnx874kr";
+    sha256 = "0c72xmazr3rgiccrqcy02w30159vsq9d78dkqf5c2yjqn8zzwf98";
   };
 
+  vendorSha256 = "11zi7a4mqi80m5z4zcrc6wnzhgk6xnmzisrk2v4vpmfp33s732lz";
+
   postPatch = ''
     substituteInPlace pkg/cmd/grafana-server/main.go \
       --replace 'var version = "5.0.0"'  'var version = "${version}"'
   '';
 
-  preBuild = "export GOPATH=$GOPATH:$NIX_BUILD_TOP/go/src/${goPackagePath}/Godeps/_workspace";
-
   postInstall = ''
     tar -xvf $srcStatic
     mkdir -p $out/share/grafana
     mv grafana-*/{public,conf,tools} $out/share/grafana/
-  '' + lib.optionalString phantomJsSupport ''
-    ln -sf ${phantomjs2}/bin/phantomjs $out/share/grafana/tools/phantomjs/phantomjs
   '';
 
+  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 93f0531887c..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.4";
+  version = "1.5.6";
 
   goPackagePath = "github.com/influxdata/kapacitor";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "influxdata";
     repo = "kapacitor";
     rev = "v${version}";
-    sha256 = "1sd0gwqwa2bk81lshs8cy49mk1nh4azjkk0283rh0rkimy90l0zz";
+    sha256 = "1jb04lnxjrms7x5nlrsd1s465rramm9z4zkqpfw1vfdsqa2dd8rc";
   };
 
   meta = with lib; {
diff --git a/pkgs/servers/monitoring/loki/default.nix b/pkgs/servers/monitoring/loki/default.nix
index e8804702f0d..e6ecf5681f5 100644
--- a/pkgs/servers/monitoring/loki/default.nix
+++ b/pkgs/servers/monitoring/loki/default.nix
@@ -1,7 +1,7 @@
 { stdenv, buildGoPackage, fetchFromGitHub, makeWrapper, systemd }:
 
 buildGoPackage rec {
-  version = "1.4.0";
+  version = "1.6.0";
   pname = "grafana-loki";
   goPackagePath = "github.com/grafana/loki";
 
@@ -11,7 +11,7 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "loki";
-    sha256 = "0dz0icbkwpmysl5jyljmj783xdzrbbxbfxfkizw7gcs8jjxbqvfl";
+    sha256 = "0i1m9aaqbq5p99fysrnhl1vxj97cq59gbdkcwkq4hkylqxlaxkyk";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/monitoring/mtail/default.nix b/pkgs/servers/monitoring/mtail/default.nix
index 64966e183fe..8bd222ddbeb 100644
--- a/pkgs/servers/monitoring/mtail/default.nix
+++ b/pkgs/servers/monitoring/mtail/default.nix
@@ -2,16 +2,19 @@
 
 buildGoModule rec {
   pname = "mtail";
-  version = "3.0.0-rc35";
+  version = "3.0.0-rc36";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "mtail";
     rev = "v${version}";
-    sha256 = "04hzr0cw0dq7hmqvp1lhm5wl239yrxmcpsl25sqk74wy06cgrrqd";
+    sha256 = "1xdpjzcr143f7430wl9l6zzq9yhbkirr3fbfw60f10zpglrcx8a4";
   };
 
-  modSha256 = "0h3q1qd9a01wlfkk0yv74a4bk5nilpsppq522cv7kl8ysnrjh5yi";
+  vendorSha256 = "02fnvy897cygmipc5snza556qihjwrp1lf9qi9f5dzarphd6d0pw";
+
+  doCheck = false;
+
   subPackages = [ "cmd/mtail" ];
 
   preBuild = ''
diff --git a/pkgs/servers/monitoring/munin/default.nix b/pkgs/servers/monitoring/munin/default.nix
index ecbed520bbd..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.61";
+  version = "2.0.64";
   pname = "munin";
 
   src = fetchFromGitHub {
     owner = "munin-monitoring";
     repo = "munin";
     rev = version;
-    sha256 = "0gjbz8zdj1rdx2azgpdh64isna0l77wm42gr1jhwb5an3lf6sgxs";
+    sha256 = "00gvvy7s2h1kxdxss7n63ir87fn66kq48lp94ackdyj49526maz4";
   };
 
   buildInputs = [
diff --git a/pkgs/servers/monitoring/net-snmp/default.nix b/pkgs/servers/monitoring/net-snmp/default.nix
index 3c8005a16df..160907d58fa 100644
--- a/pkgs/servers/monitoring/net-snmp/default.nix
+++ b/pkgs/servers/monitoring/net-snmp/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   patches =
     let fetchAlpinePatch = name: sha256: fetchpatch {
-      url = "https://git.alpinelinux.org/cgit/aports/plain/main/net-snmp/${name}?id=f25d3fb08341b60b6ccef424399f060dfcf3f1a5";
+      url = "https://git.alpinelinux.org/aports/plain/main/net-snmp/${name}?id=f25d3fb08341b60b6ccef424399f060dfcf3f1a5";
       inherit name sha256;
     };
   in [
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/alertmanager.nix b/pkgs/servers/monitoring/prometheus/alertmanager.nix
index 9402fa44eed..f5c7c062c87 100644
--- a/pkgs/servers/monitoring/prometheus/alertmanager.nix
+++ b/pkgs/servers/monitoring/prometheus/alertmanager.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "alertmanager";
-  version = "0.20.0";
+  version = "0.21.0";
   rev = "v${version}";
 
   goPackagePath = "github.com/prometheus/alertmanager";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     inherit rev;
     owner = "prometheus";
     repo = "alertmanager";
-    sha256 = "1bq6vbpy25k7apvs2ga3fbp1cbnv9j0y1g1khvz2qgz6a2zvhgg3";
+    sha256 = "0zrzyaqs73pz4rmj4xaj15x4n1542m0nb7jqm2j77k07j75r5w41";
   };
 
   buildFlagsArray = let t = "${goPackagePath}/vendor/github.com/prometheus/common/version"; in ''
@@ -35,7 +35,7 @@ buildGoPackage rec {
     description = "Alert dispatcher for the Prometheus monitoring system";
     homepage = "https://github.com/prometheus/alertmanager";
     license = licenses.asl20;
-    maintainers = with maintainers; [ benley fpletz globin ];
+    maintainers = with maintainers; [ benley fpletz globin Frostman ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix b/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix
index c1d7f792830..33f93cd130d 100644
--- a/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix
@@ -1,27 +1,26 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "apcupsd-exporter";
-  version = "unstable-2019-03-14";
-
-  goPackagePath = "github.com/mdlayher/apcupsd_exporter";
-
-  goDeps = ./apcupsd-exporter_deps.nix;
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "mdlayher";
     repo = "apcupsd_exporter";
-    rev = "cbd49be";
-    sha256 = "1h5z295m9bddch5bc8fppn02b31h370yns6026a1d4ygfy3w46y0";
+    rev = "v${version}";
+    sha256 = "0gjj23qdjs7rqimq95rbfw43m4l6g73j840svxjlmpd1vzzz2v2q";
   };
 
-  doCheck = true;
+  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" ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ _1000101 mdlayher ];
   };
 }
diff --git a/pkgs/servers/monitoring/prometheus/apcupsd-exporter_deps.nix b/pkgs/servers/monitoring/prometheus/apcupsd-exporter_deps.nix
deleted file mode 100644
index 3950ae89bf2..00000000000
--- a/pkgs/servers/monitoring/prometheus/apcupsd-exporter_deps.nix
+++ /dev/null
@@ -1,93 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/beorn7/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/beorn7/perks";
-      rev = "3a771d992973";
-      sha256 = "1l2lns4f5jabp61201sh88zf3b0q793w4zdgp9nll7mmfcxxjif3";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "v1.2.0";
-      sha256 = "0kf4b59rcbb1cchfny2dm9jyznp8ri2hsb14n8iak1q8986xa0ab";
-    };
-  }
-  {
-    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matttproud/golang_protobuf_extensions";
-      rev = "v1.0.1";
-      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
-    };
-  }
-  {
-    goPackagePath = "github.com/mdlayher/apcupsd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mdlayher/apcupsd";
-      rev = "eb3dd99a75fe";
-      sha256 = "0s1m6l4pnazqiymb8y89ajbxfl2cn0ahvhws10nvxvc4jjivlbbq";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_golang";
-      rev = "v0.9.2";
-      sha256 = "02b4yg6rfag0m3j0i39sillcm5xczwv8h133vn12yr8qw04cnigs";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "5c3871d89910";
-      sha256 = "04psf81l9fjcwascsys428v03fx4fi894h7fhrj2vvcz723q57k0";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/common";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/common";
-      rev = "4724e9255275";
-      sha256 = "0pcx8hlnrxx5nnmpk786cn99rsgqk1jrd3c9f6fsx8qd8y5iwjy6";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "1dc9a6cbc91a";
-      sha256 = "1zlv1x30xp7z5c3vn5vp870v4bjim0zcidzc3mr2l3xhazc0svab";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "351d144fa1fc";
-      sha256 = "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "42b317875d0f";
-      sha256 = "0mrjhk7al7yyh76x9flvxy4jm5jyqh2fxbxagpaazxn1xdgkaif3";
-    };
-  }
-]
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/bind-exporter.nix b/pkgs/servers/monitoring/prometheus/bind-exporter.nix
index d27fd094aa6..3913cbd5f85 100644
--- a/pkgs/servers/monitoring/prometheus/bind-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/bind-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "bind_exporter";
@@ -14,6 +14,8 @@ buildGoPackage rec {
     sha256 = "1nd6pc1z627w4x55vd42zfhlqxxjmfsa9lyn0g6qq19k4l85v1qm";
   };
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) bind; };
+
   meta = with stdenv.lib; {
     description = "Prometheus exporter for bind9 server";
     homepage = "https://github.com/digitalocean/bind_exporter";
diff --git a/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix b/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix
index b44ebd35e9a..45d70d47d6e 100644
--- a/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix
@@ -1,8 +1,8 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "blackbox_exporter";
-  version = "0.16.0";
+  version = "0.17.0";
   rev = version;
 
   goPackagePath = "github.com/prometheus/blackbox_exporter";
@@ -11,17 +11,19 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "prometheus";
     repo = "blackbox_exporter";
-    sha256 = "1zbf3ljasv0r91rrmk3mj5nhimaf7xg3aih1ldz27rh5yww7gyzg";
+    sha256 = "00ganz6wfwyb9avkp2fr4bwpzvfiffsmpgndl8zp80bk7m1b3mnz";
   };
 
   # dns-lookup is performed for the tests
   doCheck = false;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) blackbox; };
+
   meta = with stdenv.lib; {
     description = "Blackbox probing of endpoints over HTTP, HTTPS, DNS, TCP and ICMP";
     homepage = "https://github.com/prometheus/blackbox_exporter";
     license = licenses.asl20;
-    maintainers = with maintainers; [ globin fpletz willibutz ];
+    maintainers = with maintainers; [ globin fpletz willibutz Frostman ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/monitoring/prometheus/collectd-exporter.nix b/pkgs/servers/monitoring/prometheus/collectd-exporter.nix
index 95b6c064034..12f9cd3d350 100644
--- a/pkgs/servers/monitoring/prometheus/collectd-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/collectd-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "collectd-exporter";
@@ -14,6 +14,8 @@ buildGoPackage rec {
     sha256 = "1p0kb7c8g0r0sp5a6xrx8vnwbw14hhwlqzk4n2xx2y8pvnbivajz";
   };
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) collectd; };
+
   meta = with stdenv.lib; {
     description = "Relay server for exporting metrics from collectd to Prometheus";
     homepage = "https://github.com/prometheus/collectd_exporter";
diff --git a/pkgs/servers/monitoring/prometheus/consul-exporter.nix b/pkgs/servers/monitoring/prometheus/consul-exporter.nix
index 4267d8d34c1..ad6d366a221 100644
--- a/pkgs/servers/monitoring/prometheus/consul-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/consul-exporter.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "consul_exporter";
-  version = "0.3.0";
+  version = "0.6.0";
 
   goPackagePath = "github.com/prometheus/consul_exporter";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "prometheus";
     repo = "consul_exporter";
     rev = "v${version}";
-    sha256 = "1zffbxyfmqpbdqkx5rb5vjgd9j4p4zcrh6jvn1zhbdzrcs7khnd9";
+    sha256 = "0s30blb4d8zw9f6x7dsnc1rxmxzsaih9w3xxxgr6c9xsm347mj86";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/monitoring/prometheus/cups-exporter.nix b/pkgs/servers/monitoring/prometheus/cups-exporter.nix
index 9ba73b3d210..a02dab88a3a 100644
--- a/pkgs/servers/monitoring/prometheus/cups-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/cups-exporter.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, python3Packages }:
+{ lib, fetchFromGitHub, python3Packages, nixosTests }:
 
 python3Packages.buildPythonApplication rec {
   pname = "prometheus-cups-exporter-unstable";
@@ -26,6 +26,8 @@ python3Packages.buildPythonApplication rec {
           --add-flags "$out/share/cups_exporter.py"
   '';
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) cups; };
+
   meta = with lib; {
     description = "A simple prometheus exporter for cups implemented in python";
     homepage = "https://github.com/ThoreKr/cups_exporter";
diff --git a/pkgs/servers/monitoring/prometheus/default.nix b/pkgs/servers/monitoring/prometheus/default.nix
index c0b161954b2..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.18.1";
+  version = "2.20.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "prometheus";
     repo = "prometheus";
-    sha256 = "0ixgjp3j9dkdb0vv5n83h8w48xgi70m83im660z97y7mflr5s2cf";
+    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 c8013e6bc15..6f2fe462a46 100644
--- a/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
 
 buildGoModule rec {
   pname = "dnsmasq_exporter";
@@ -11,7 +11,11 @@ buildGoModule rec {
     rev = "v${version}";
   };
 
-  modSha256 = "1ag1k0z35zkazaxj8hh2wxfj73xg63xdybfm1565il2vxs5986dh";
+  vendorSha256 = "1dqpa180pbdi2gcmp991d4cry560mx5rm5l9x065s9n9gnd38hvl";
+
+  doCheck = false;
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) dnsmasq; };
 
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;
diff --git a/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix b/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix
index 479ff174d11..2d5f58a920b 100644
--- a/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "dovecot_exporter";
@@ -15,6 +15,8 @@ buildGoPackage rec {
 
   goDeps = ./dovecot-exporter-deps.nix;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) dovecot; };
+
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;
     description = "Prometheus metrics exporter for Dovecot";
diff --git a/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix b/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix
index 997b8784a1c..2f062cbfcfe 100644
--- a/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "fritzbox-exporter";
@@ -16,6 +16,8 @@ buildGoPackage rec {
 
   goDeps = ./fritzbox-exporter-deps.nix;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) fritzbox; };
+
   meta = with stdenv.lib; {
     description = "Prometheus Exporter for FRITZ!Box (TR64 and UPnP)";
     homepage = "https://github.com/ndecker/fritzbox_exporter";
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/jmx-httpserver.nix b/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix
index 05e0d4cb079..8cb9dbb2382 100644
--- a/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix
+++ b/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix
@@ -3,7 +3,7 @@
 let
   version = "0.10";
   jarName = "jmx_prometheus_httpserver-${version}-jar-with-dependencies.jar";
-  mavenUrl = "http://central.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_httpserver/${version}/${jarName}";
+  mavenUrl = "mirror://maven/io/prometheus/jmx/jmx_prometheus_httpserver/${version}/${jarName}";
 in stdenv.mkDerivation {
   inherit version jarName;
 
diff --git a/pkgs/servers/monitoring/prometheus/json-exporter.nix b/pkgs/servers/monitoring/prometheus/json-exporter.nix
index c020817edc0..afa61080931 100644
--- a/pkgs/servers/monitoring/prometheus/json-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/json-exporter.nix
@@ -1,5 +1,5 @@
 # This file was generated by go2nix.
-{ buildGoPackage, fetchFromGitHub, fetchpatch, lib }:
+{ buildGoPackage, fetchFromGitHub, fetchpatch, lib, nixosTests }:
 
 buildGoPackage {
   pname = "prometheus-json-exporter";
@@ -21,6 +21,8 @@ buildGoPackage {
     sha256 = "0mc5axhd2bykci41dgswl4r1552d70jsmb17lbih7czhsy6rgmrm";
   })];
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) json; };
+
   meta = with lib; {
     description = "A prometheus exporter which scrapes remote JSON by JSONPath";
     homepage = "https://github.com/kawamuray/prometheus-json-exporter";
diff --git a/pkgs/servers/monitoring/prometheus/keylight-exporter.nix b/pkgs/servers/monitoring/prometheus/keylight-exporter.nix
new file mode 100644
index 00000000000..47a91d7e3a8
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/keylight-exporter.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
+
+buildGoModule rec {
+  pname = "keylight-exporter";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "mdlayher";
+    repo = "keylight_exporter";
+    rev = "v${version}";
+    sha256 = "141npawcnxj3sz2xqsnyf06r4x1azk3g55941i8gjr7pwcla34r7";
+  };
+
+  vendorSha256 = "0w065ls8dp687jmps4xdffcarss1wyls14dngr43g58xjw6519gb";
+
+  doCheck = false;
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) keylight; };
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/mdlayher/keylight_exporter";
+    description = "Prometheus exporter for Elgato Key Light devices.";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mdlayher ];
+  };
+}
diff --git a/pkgs/servers/monitoring/prometheus/lnd-exporter.nix b/pkgs/servers/monitoring/prometheus/lnd-exporter.nix
new file mode 100644
index 00000000000..9499f70e71b
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/lnd-exporter.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
+
+buildGoModule rec {
+  pname = "lndmon-unstable";
+  version = "2020-01-09";
+
+  src = fetchFromGitHub {
+    owner = "lightninglabs";
+    repo = "lndmon";
+    sha256 = "0d4z8yv2459wsi4c91qs5an13acn73fd8s321xya5vxxiyf51q24";
+    rev = "2c7c5ce0fcb4e7eef4df60efe8a644587a309f6c";
+  };
+
+  vendorSha256 = "083h2ksnqmcr48958r5pag9a28xvljpc3prip6wn70ifp2wpjpin";
+
+  doCheck = false;
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) lnd; };
+
+  meta = with stdenv.lib; {
+    inherit (src.meta) homepage;
+    description = "Prometheus exporter for lnd (Lightning Network Daemon)";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mmilata ];
+  };
+}
diff --git a/pkgs/servers/monitoring/prometheus/mail-exporter.nix b/pkgs/servers/monitoring/prometheus/mail-exporter.nix
index f845a6ef256..bb8f8526a31 100644
--- a/pkgs/servers/monitoring/prometheus/mail-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/mail-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
+{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles, nixosTests }:
 
 buildGoPackage {
   pname = "mailexporter";
@@ -22,6 +22,8 @@ buildGoPackage {
     installManPage $src/man/mailexporter.conf.5
   '';
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) mail; };
+
   meta = with stdenv.lib; {
     description = "Export Prometheus-style metrics about mail server functionality";
     homepage = "https://github.com/cherti/mailexporter";
diff --git a/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix b/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
index 12341eee911..fe1ce5e4a99 100644
--- a/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
 
 buildGoModule rec {
   pname = "mikrotik-exporter-unstable";
@@ -11,7 +11,11 @@ buildGoModule rec {
     rev = "3b33400d24abcfdc07dc31c15ca5ba7b82de444f";
   };
 
-  modSha256 = "1cqjn6j3dfq51ssjx0qrajprlac1h0lb1r4af44lfpigzmrfyi07";
+  vendorSha256 = "0i5x4d3ra0s41knmybbg8gnjxgraxkid6y3gfkjwa65xcbp7hr7q";
+
+  doCheck = false;
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) mikrotik; };
 
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;
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/mysqld-exporter.nix b/pkgs/servers/monitoring/prometheus/mysqld-exporter.nix
index 3ef947b2873..8787a39de32 100644
--- a/pkgs/servers/monitoring/prometheus/mysqld-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/mysqld-exporter.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "mysqld_exporter";
-  version = "0.11.0";
+  version = "0.12.1";
   rev = "v${version}";
 
   goPackagePath = "github.com/prometheus/mysqld_exporter";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     inherit rev;
     owner = "prometheus";
     repo = "mysqld_exporter";
-    sha256 = "1684jf96dy5bs0y0689vlcw82lqw8kw2phlnp6pq1cq56fcwdxjn";
+    sha256 = "0nzbfzx4dzs3cagdid1fqddrqimgr8x6r8gmmxglrss05c8srgs8";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix b/pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix
index f3211280f7d..d628cf32c57 100644
--- a/pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildGoPackage }:
+{ lib, fetchFromGitHub, buildGoPackage, nixosTests }:
 
 buildGoPackage rec {
   pname = "prometheus-nextcloud-exporter";
@@ -17,6 +17,8 @@ buildGoPackage rec {
 
   doCheck = true;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) nextcloud; };
+
   meta = with lib; {
     description = "Prometheus exporter for Nextcloud servers.";
     homepage = "https://github.com/xperimental/nextcloud-exporter";
diff --git a/pkgs/servers/monitoring/prometheus/nginx-exporter.nix b/pkgs/servers/monitoring/prometheus/nginx-exporter.nix
index 70f39418198..e7c144b31d1 100644
--- a/pkgs/servers/monitoring/prometheus/nginx-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/nginx-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "nginx_exporter";
@@ -19,6 +19,8 @@ buildGoPackage rec {
 
   doCheck = true;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) nginx; };
+
   meta = with stdenv.lib; {
     description = "NGINX Prometheus Exporter for NGINX and NGINX Plus";
     homepage = "https://github.com/nginxinc/nginx-prometheus-exporter";
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/node-exporter.nix b/pkgs/servers/monitoring/prometheus/node-exporter.nix
index 584382b47b7..38f054aeb2d 100644
--- a/pkgs/servers/monitoring/prometheus/node-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/node-exporter.nix
@@ -1,8 +1,8 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "node_exporter";
-  version = "0.18.1";
+  version = "1.0.1";
   rev = "v${version}";
 
   goPackagePath = "github.com/prometheus/node_exporter";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     inherit rev;
     owner = "prometheus";
     repo = "node_exporter";
-    sha256 = "0s3sp1gj86p7npxl38hkgs6ymd3wjjmc5hydyg1b5wh0x3yvpx07";
+    sha256 = "1r0xx81r9v019fl0iv078yl21ndhb356y7s7zx171zi02k7a4p2l";
   };
 
   # FIXME: tests fail due to read-only nix store
@@ -23,11 +23,13 @@ buildGoPackage rec {
         -X ${goPackagePath}/vendor/github.com/prometheus/common/version.Revision=${rev}
   '';
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) node; };
+
   meta = with stdenv.lib; {
     description = "Prometheus exporter for machine metrics";
     homepage = "https://github.com/prometheus/node_exporter";
     license = licenses.asl20;
-    maintainers = with maintainers; [ benley fpletz globin ];
+    maintainers = with maintainers; [ benley fpletz globin Frostman ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/monitoring/prometheus/postfix-exporter.nix b/pkgs/servers/monitoring/prometheus/postfix-exporter.nix
index b5a93343252..506d334a921 100644
--- a/pkgs/servers/monitoring/prometheus/postfix-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/postfix-exporter.nix
@@ -1,5 +1,5 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, systemd, makeWrapper
-, withSystemdSupport ? true }:
+{ stdenv, buildGoPackage, fetchFromGitHub, makeWrapper, nixosTests
+, systemd, withSystemdSupport ? true }:
 
 with stdenv.lib;
 
@@ -47,6 +47,8 @@ buildGoPackage rec {
       --prefix LD_LIBRARY_PATH : "${systemd.lib}/lib"
   '';
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) postfix; };
+
   meta = {
     inherit (src.meta) homepage;
     description = "A Prometheus exporter for Postfix";
diff --git a/pkgs/servers/monitoring/prometheus/postgres-exporter.nix b/pkgs/servers/monitoring/prometheus/postgres-exporter.nix
index e8af00b277b..81ccaee6593 100644
--- a/pkgs/servers/monitoring/prometheus/postgres-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/postgres-exporter.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "postgres_exporter";
@@ -15,6 +15,8 @@ buildGoPackage rec {
 
   doCheck = true;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) postgres; };
+
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "A Prometheus exporter for PostgreSQL";
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/redis-exporter-deps.nix b/pkgs/servers/monitoring/prometheus/redis-exporter-deps.nix
new file mode 100644
index 00000000000..33747715fbe
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/redis-exporter-deps.nix
@@ -0,0 +1,390 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+  {
+    goPackagePath = "github.com/alecthomas/template";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/template";
+      rev = "fb15b899a751";
+      sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
+    };
+  }
+  {
+    goPackagePath = "github.com/alecthomas/units";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/units";
+      rev = "c3de453c63f4";
+      sha256 = "0js37zlgv37y61j4a2d46jh72xm5kxmpaiw0ya9v944bjpc386my";
+    };
+  }
+  {
+    goPackagePath = "github.com/beorn7/perks";
+    fetch = {
+      type = "git";
+      url = "https://github.com/beorn7/perks";
+      rev = "v1.0.1";
+      sha256 = "17n4yygjxa6p499dj3yaqzfww2g7528165cl13haj97hlx94dgl7";
+    };
+  }
+  {
+    goPackagePath = "github.com/cespare/xxhash";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cespare/xxhash";
+      rev = "v2.1.1";
+      sha256 = "0rl5rs8546zj1vzggv38w93wx0b5dvav7yy5hzxa8kw7iikv1cgr";
+    };
+  }
+  {
+    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/go-kit/kit";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-kit/kit";
+      rev = "v0.9.0";
+      sha256 = "09038mnw705h7isbjp8dzgp2i04bp5rqkmifxvwc5xkh75s00qpw";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-logfmt/logfmt";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-logfmt/logfmt";
+      rev = "v0.4.0";
+      sha256 = "06smxc112xmixz78nyvk3b2hmc7wasf2sl5vxj1xz62kqcq9lzm9";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-stack/stack";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-stack/stack";
+      rev = "v1.8.0";
+      sha256 = "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v";
+    };
+  }
+  {
+    goPackagePath = "github.com/gogo/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gogo/protobuf";
+      rev = "v1.1.1";
+      sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2";
+    };
+  }
+  {
+    goPackagePath = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev = "v1.4.0";
+      sha256 = "1fjvl5n77abxz5qsd4mgyvjq19x43c5bfvmq62mq3m5plx6zksc8";
+    };
+  }
+  {
+    goPackagePath = "github.com/gomodule/redigo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gomodule/redigo";
+      rev = "v1.8.2";
+      sha256 = "0wp37175n4lgkq234px9vx0c7mdx8sx3d45zky73az8zbabirwga";
+    };
+  }
+  {
+    goPackagePath = "github.com/google/go-cmp";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/go-cmp";
+      rev = "v0.4.0";
+      sha256 = "1x5pvl3fb5sbyng7i34431xycnhmx8xx94gq2n19g6p0vz68z2v2";
+    };
+  }
+  {
+    goPackagePath = "github.com/google/gofuzz";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/gofuzz";
+      rev = "v1.0.0";
+      sha256 = "0qz439qvccm91w0mmjz4fqgx48clxdwagkvvx89cr43q1d4iry36";
+    };
+  }
+  {
+    goPackagePath = "github.com/json-iterator/go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/json-iterator/go";
+      rev = "v1.1.9";
+      sha256 = "0pkn2maymgl9v6vmq9q1si8xr5bbl88n6981y0lx09px6qxb29qx";
+    };
+  }
+  {
+    goPackagePath = "github.com/julienschmidt/httprouter";
+    fetch = {
+      type = "git";
+      url = "https://github.com/julienschmidt/httprouter";
+      rev = "v1.2.0";
+      sha256 = "1k8bylc9s4vpvf5xhqh9h246dl1snxrzzz0614zz88cdh8yzs666";
+    };
+  }
+  {
+    goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
+    fetch = {
+      type = "git";
+      url = "https://github.com/konsorten/go-windows-terminal-sequences";
+      rev = "v1.0.3";
+      sha256 = "1yrsd4s8vhjnxhwbigirymz89dn6qfjnhn28i33vvvdgf96j6ypl";
+    };
+  }
+  {
+    goPackagePath = "github.com/kr/logfmt";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/logfmt";
+      rev = "b84e30acd515";
+      sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9";
+    };
+  }
+  {
+    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/matttproud/golang_protobuf_extensions";
+    fetch = {
+      type = "git";
+      url = "https://github.com/matttproud/golang_protobuf_extensions";
+      rev = "v1.0.1";
+      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
+    };
+  }
+  {
+    goPackagePath = "github.com/modern-go/concurrent";
+    fetch = {
+      type = "git";
+      url = "https://github.com/modern-go/concurrent";
+      rev = "bacd9c7ef1dd";
+      sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs";
+    };
+  }
+  {
+    goPackagePath = "github.com/modern-go/reflect2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/modern-go/reflect2";
+      rev = "v1.0.1";
+      sha256 = "06a3sablw53n1dqqbr2f53jyksbxdmmk8axaas4yvnhyfi55k4lf";
+    };
+  }
+  {
+    goPackagePath = "github.com/mwitkow/go-conntrack";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mwitkow/go-conntrack";
+      rev = "cc309e4a2223";
+      sha256 = "0nbrnpk7bkmqg9mzwsxlm0y8m7s9qd9phr1q30qlx2qmdmz7c1mf";
+    };
+  }
+  {
+    goPackagePath = "github.com/pkg/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/errors";
+      rev = "v0.8.1";
+      sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1";
+    };
+  }
+  {
+    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/prometheus/client_golang";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_golang";
+      rev = "v1.6.0";
+      sha256 = "0wwkx69in9dy5kzd3z6rrqf5by8cwl9r7r17fswcpx9rl3g61x1l";
+    };
+  }
+  {
+    goPackagePath = "github.com/prometheus/client_model";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_model";
+      rev = "v0.2.0";
+      sha256 = "0jffnz94d6ff39fr96b5w8i8yk26pwnrfggzz8jhi8k0yihg2c9d";
+    };
+  }
+  {
+    goPackagePath = "github.com/prometheus/common";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/common";
+      rev = "v0.9.1";
+      sha256 = "12pyywb02p7d30ccm41mwn69qsgqnsgv1w9jlqrrln2f1svnbqch";
+    };
+  }
+  {
+    goPackagePath = "github.com/prometheus/procfs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/procfs";
+      rev = "v0.0.11";
+      sha256 = "1msc8bfywsmrgr2ryqjdqwkxiz1ll08r3qgvaka2507z1wpcpj2c";
+    };
+  }
+  {
+    goPackagePath = "github.com/sirupsen/logrus";
+    fetch = {
+      type = "git";
+      url = "https://github.com/sirupsen/logrus";
+      rev = "v1.6.0";
+      sha256 = "1zf9is1yxxnna0d1pyag2m9ziy3l27zb2j92p9msm1gx5jjrvzzj";
+    };
+  }
+  {
+    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.5.1";
+      sha256 = "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "c2843e01d9a2";
+      sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev = "d28f0bde5980";
+      sha256 = "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sync";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sync";
+      rev = "cd5d95a43a6e";
+      sha256 = "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds";
+    };
+  }
+  {
+    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.0";
+      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/xerrors";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/xerrors";
+      rev = "9bdfabe68543";
+      sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c";
+    };
+  }
+  {
+    goPackagePath = "google.golang.org/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/protobuf";
+      rev = "v1.21.0";
+      sha256 = "12bwln8z1lf9105gdp6ip0rx741i4yfz1520gxnp8861lh9wcl63";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/alecthomas/kingpin.v2";
+      rev = "v2.2.6";
+      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/check.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/check.v1";
+      rev = "41f04d3bba15";
+      sha256 = "0vfk9czmlxmp6wndq8k17rhnjxal764mxfhrccza7nwlia760pjy";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/yaml.v2";
+      rev = "v2.2.5";
+      sha256 = "08smz8dfyxp02ha74my9iszqa5qzgl3ksi28ilyp8lqipssiq6fg";
+    };
+  }
+]
diff --git a/pkgs/servers/monitoring/prometheus/redis-exporter.nix b/pkgs/servers/monitoring/prometheus/redis-exporter.nix
new file mode 100644
index 00000000000..9082fd81c63
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/redis-exporter.nix
@@ -0,0 +1,34 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
+
+buildGoPackage rec {
+  pname = "redis_exporter";
+  version = "1.7.0";
+
+  goPackagePath = "github.com/oliver006/redis_exporter";
+
+  src = fetchFromGitHub {
+    owner = "oliver006";
+    repo = "redis_exporter";
+    rev = "v${version}";
+    sha256 = "0rwaxpylividyxz0snfgck32kvpgjkhg20bmdnlp35cdzxcxi8m1";
+  };
+
+  goDeps = ./redis-exporter-deps.nix;
+
+  buildFlagsArray = ''
+    -ldflags=
+       -X main.BuildVersion=${version}
+       -X main.BuildCommitSha=unknown
+       -X main.BuildDate=unknown
+  '';
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) redis; };
+
+  meta = with stdenv.lib; {
+    description = "Prometheus exporter for Redis metrics";
+    inherit (src.meta) homepage;
+    license = licenses.mit;
+    maintainers = with maintainers; [ eskytthe srhb ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/monitoring/prometheus/snmp-exporter.nix b/pkgs/servers/monitoring/prometheus/snmp-exporter.nix
index ed2ed29ab89..d3b35a8a8f1 100644
--- a/pkgs/servers/monitoring/prometheus/snmp-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/snmp-exporter.nix
@@ -1,8 +1,8 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, net-snmp }:
+{ stdenv, buildGoPackage, fetchFromGitHub, net-snmp, nixosTests }:
 
 buildGoPackage rec {
   pname = "snmp_exporter";
-  version = "0.17.0";
+  version = "0.18.0";
 
   goPackagePath = "github.com/prometheus/snmp_exporter";
 
@@ -10,18 +10,20 @@ buildGoPackage rec {
     owner = "prometheus";
     repo = "snmp_exporter";
     rev = "v${version}";
-    sha256 = "0s2vgcpxannyl1zllc3ixww02832s53zijws64lhd8mxrylqvpcp";
+    sha256 = "1zdkb036zy2sw1drlp2m2z1yb7857d2y3yn2y3l0a1kkd4zcqkk4";
   };
 
   buildInputs = [ net-snmp ];
 
   doCheck = true;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) snmp; };
+
   meta = with stdenv.lib; {
     description = "SNMP Exporter for Prometheus";
     homepage = "https://github.com/prometheus/snmp_exporter";
     license = licenses.asl20;
-    maintainers = with maintainers; [ oida willibutz ];
+    maintainers = with maintainers; [ oida willibutz Frostman ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix b/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix
index 8502b76f708..d6f4bea1531 100644
--- a/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "surfboard_exporter";
@@ -13,6 +13,8 @@ buildGoPackage rec {
     sha256 = "11qms26648nwlwslnaflinxcr5rnp55s908rm1qpnbz0jnxf5ipw";
   };
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) surfboard; };
+
   meta = with stdenv.lib; {
     description = "Arris Surfboard signal metrics exporter";
     homepage = "https://github.com/ipstatic/surfboard_exporter";
diff --git a/pkgs/servers/monitoring/prometheus/tor-exporter.nix b/pkgs/servers/monitoring/prometheus/tor-exporter.nix
index 9fa79884687..bc8022f9feb 100644
--- a/pkgs/servers/monitoring/prometheus/tor-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/tor-exporter.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, python3Packages }:
+{ lib, fetchFromGitHub, python3Packages, nixosTests }:
 
 python3Packages.buildPythonApplication rec {
   name = "tor-exporter-${version}";
@@ -27,6 +27,8 @@ python3Packages.buildPythonApplication rec {
           --add-flags "$out/share/prometheus-tor-exporter.py"
   '';
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) tor; };
+
   meta = with lib; {
     description = "Prometheus exporter that exposes metrics from a Tor daemon";
     homepage = "https://github.com/atx/prometheus-tor_exporter";
diff --git a/pkgs/servers/monitoring/prometheus/varnish-exporter.nix b/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
index 03656470b92..c94be3490fa 100644
--- a/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, makeWrapper, varnish }:
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper, varnish, nixosTests }:
 
 buildGoModule rec {
   pname = "prometheus_varnish_exporter";
@@ -11,7 +11,7 @@ buildGoModule rec {
     sha256 = "1viiiyvhpr7cnf8ykaaq4fzgg9xvn4hnlhv7cagy3jkjlmz60947";
   };
 
-  modSha256 = "1vb720axjziiqcba4bdi528r6mc97ci0pfsk0ny50isrkh0s3jzz";
+  vendorSha256 = "1h9iz3sbz02hb8827hcssqlfg2ag3ymq38siffw9wzajslzhp9sx";
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -20,7 +20,7 @@ buildGoModule rec {
       --prefix PATH : "${varnish}/bin"
   '';
 
-  doCheck = true;
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) varnish; };
 
   meta = {
     homepage = "https://github.com/jonnenauha/prometheus_varnish_exporter";
diff --git a/pkgs/servers/monitoring/prometheus/webui-package.json b/pkgs/servers/monitoring/prometheus/webui-package.json
index 64ac8689bbd..09ebefa0110 100644
--- a/pkgs/servers/monitoring/prometheus/webui-package.json
+++ b/pkgs/servers/monitoring/prometheus/webui-package.json
@@ -24,7 +24,7 @@
     "fuzzy": "^0.1.3",
     "i": "^0.3.6",
     "jest-fetch-mock": "^2.1.2",
-    "jquery": "^3.3.1",
+    "jquery": "^3.5",
     "jquery.flot.tooltip": "^0.9.0",
     "jsdom": "^15.2.0",
     "moment": "^2.24.0",
diff --git a/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix b/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix
index 5eed837c910..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";
       };
     }
     {
@@ -6634,11 +6634,11 @@
       };
     }
     {
-      name = "jquery___jquery_3.4.1.tgz";
+      name = "jquery___jquery_3.5.1.tgz";
       path = fetchurl {
-        name = "jquery___jquery_3.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz";
-        sha1 = "714f1f8d9dde4bdfa55764ba37ef214630d80ef2";
+        name = "jquery___jquery_3.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz";
+        sha1 = "d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5";
       };
     }
     {
@@ -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/prometheus/wireguard-exporter.nix b/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix
index 240dc626331..8f927f32e2d 100644
--- a/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, rustPlatform, fetchFromGitHub, lib, Security }:
+{ stdenv, rustPlatform, fetchFromGitHub, lib, Security, nixosTests }:
 
 rustPlatform.buildRustPackage rec {
   pname = "wireguard-exporter";
@@ -15,6 +15,8 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) wireguard; };
+
   meta = with lib; {
     description = "A Prometheus exporter for WireGuard, written in Rust.";
     homepage = "https://github.com/MindFlavor/prometheus_wireguard_exporter";
diff --git a/pkgs/servers/monitoring/sensu-go/default.nix b/pkgs/servers/monitoring/sensu-go/default.nix
index f109b08d1a6..6d04d8609b8 100644
--- a/pkgs/servers/monitoring/sensu-go/default.nix
+++ b/pkgs/servers/monitoring/sensu-go/default.nix
@@ -4,21 +4,21 @@ let
   generic = { subPackages, pname, postInstall ? "" }:
     buildGoModule rec {
       inherit pname;
-      version = "5.18.1";
-      shortRev = "1f6d16b"; # for internal version info
-
-      goPackagePath = "github.com/sensu/sensu-go";
+      version = "5.21.1";
+      shortRev = "3a1ac58"; # for internal version info
 
       src = fetchFromGitHub {
         owner = "sensu";
         repo = "sensu-go";
         rev = "v${version}";
-        sha256 = "1iwlkm7ac7brap45r6ly0blywgq6f28r1nws3yf0ybydv30brfj4";
+        sha256 = "1vgb25d546dh5sassclym077vmvvl1wj4ndd2084ngvify7dp1a9";
       };
 
       inherit subPackages postInstall;
 
-      modSha256 = "02h4cav6ivzs3z0qakwxzf5lfy6hzax5c0i2icp0qymqc2789npw";
+  vendorSha256 = "06yfaj9k5n3jw8a142sscaqrvdw2lq51v884lp65wjdwy5c3jbba";
+
+  doCheck = false;
 
       buildFlagsArray = let
         versionPkg = "github.com/sensu/sensu-go/version";
diff --git a/pkgs/servers/monitoring/telegraf/default.nix b/pkgs/servers/monitoring/telegraf/default.nix
index ab94971aa3c..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.1";
-
-  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 = "17lzz0f9vzyfwr3kgwg6i6361hqzq54jnaaw9rdc132xppdx03nr";
+    sha256 = "045wjpq29dr0s48ns3a4p8pw1j0ssfcw6m91iim4pkrppj7bm2di";
   };
 
-  modSha256 = "1q7il1x1pfyz15z23cs0kk7zyacn6b3y28b1q52bqi30l1x8bdbp";
+  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}
diff --git a/pkgs/servers/monitoring/thanos/default.nix b/pkgs/servers/monitoring/thanos/default.nix
index a6122b31753..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.12.2";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "thanos-io";
     repo = "thanos";
-    sha256 = "10xscm9h2krha66v96v2q85fynnxfizjcc47h7yz4xhjwvb5dgz2";
+    sha256 = "1y3jaj1sxbn9m1c2rihjw229qx4q35l8l70xiny34qhmpzp6y00p";
   };
 
-  modSha256 = "0c8gc4qzdazxxnabfms63df8vlf2iy6iy0jrm710x76m4vm6mrbj";
+  vendorSha256 = "0ixriy5i1qc8hnslmiyd3qfw1g14zlmcslqwn2a9fpk7h0hwinba";
+
+  doCheck = false;
 
   subPackages = "cmd/thanos";
 
diff --git a/pkgs/servers/monitoring/timescale-prometheus/default.nix b/pkgs/servers/monitoring/timescale-prometheus/default.nix
new file mode 100644
index 00000000000..f5f4a4fd417
--- /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.2";
+
+  src = fetchFromGitHub {
+    owner = "timescale";
+    repo = pname;
+    rev = "${version}";
+    sha256 = "1rrr0qb27hh3kcmmxapr1j39dhfxf02vihpjf4b7zpwdf1mpvrbc";
+  };
+
+  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/agent.nix b/pkgs/servers/monitoring/zabbix/agent.nix
index f112598da6a..184d7e6aea7 100644
--- a/pkgs/servers/monitoring/zabbix/agent.nix
+++ b/pkgs/servers/monitoring/zabbix/agent.nix
@@ -6,7 +6,7 @@ import ./versions.nix ({ version, sha256 }:
     inherit version;
 
     src = fetchurl {
-      url = "https://cdn.zabbix.com/stable/${version}/zabbix-${version}.tar.gz";
+      url = "https://cdn.zabbix.com/zabbix/sources/stable/${stdenv.lib.versions.majorMinor version}/zabbix-${version}.tar.gz";
       inherit sha256;
     };
 
diff --git a/pkgs/servers/monitoring/zabbix/proxy.nix b/pkgs/servers/monitoring/zabbix/proxy.nix
index b8f8ca33b0e..4179cf52c7a 100644
--- a/pkgs/servers/monitoring/zabbix/proxy.nix
+++ b/pkgs/servers/monitoring/zabbix/proxy.nix
@@ -21,7 +21,7 @@ in
       inherit version;
 
       src = fetchurl {
-        url = "https://cdn.zabbix.com/stable/${version}/zabbix-${version}.tar.gz";
+        url = "https://cdn.zabbix.com/zabbix/sources/stable/${stdenv.lib.versions.majorMinor version}/zabbix-${version}.tar.gz";
         inherit sha256;
       };
 
diff --git a/pkgs/servers/monitoring/zabbix/server.nix b/pkgs/servers/monitoring/zabbix/server.nix
index 25b7325bba2..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
@@ -21,11 +21,11 @@ in
       inherit version;
 
       src = fetchurl {
-        url = "https://cdn.zabbix.com/stable/${version}/zabbix-${version}.tar.gz";
+        url = "https://cdn.zabbix.com/zabbix/sources/stable/${stdenv.lib.versions.majorMinor version}/zabbix-${version}.tar.gz";
         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..f867c819d07 100644
--- a/pkgs/servers/monitoring/zabbix/versions.nix
+++ b/pkgs/servers/monitoring/zabbix/versions.nix
@@ -1,7 +1,7 @@
 generic: {
-  v44 = generic {
-    version = "4.4.8";
-    sha256 = "0l9n4l5179lf90krv1kb0lraipj7q4hyba6r48n6rj2zqx2j4mn0";
+  v50 = generic {
+    version = "5.0.2";
+    sha256 = "1cnns7ixqi7ank3cbvcs7d8rb5zh9qiqbmgivazr83jnz81qg46w";
   };
 
   v40 = generic {
diff --git a/pkgs/servers/monitoring/zabbix/web.nix b/pkgs/servers/monitoring/zabbix/web.nix
index ca48a72d9fe..f677fe5c0af 100644
--- a/pkgs/servers/monitoring/zabbix/web.nix
+++ b/pkgs/servers/monitoring/zabbix/web.nix
@@ -6,7 +6,7 @@ import ./versions.nix ({ version, sha256 }:
     inherit version;
 
     src = fetchurl {
-      url = "https://cdn.zabbix.com/stable/${version}/zabbix-${version}.tar.gz";
+      url = "https://cdn.zabbix.com/zabbix/sources/stable/${stdenv.lib.versions.majorMinor version}/zabbix-${version}.tar.gz";
       inherit sha256;
     };
 
@@ -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 8d862373b99..d013f431896 100644
--- a/pkgs/servers/mpd/default.nix
+++ b/pkgs/servers/mpd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, glib, systemd, boost, darwin
+{ stdenv, fetchFromGitHub, meson, ninja, pkg-config, glib, systemd, boost, darwin
 # Inputs
 , curl, libmms, libnfs, samba
 # Archive support
@@ -19,6 +19,13 @@
 # Tag support
 , libid3tag
 , nixosTests
+# For documentation
+, doxygen
+, python3Packages # for sphinx-build
+# For tests
+, gtest
+, fetchpatch # used to fetch an upstream patch fixing a failing test
+, zip
 }:
 
 let
@@ -103,26 +110,55 @@ 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";
       };
 
-      buildInputs = [ glib boost ]
+      buildInputs = [
+        glib
+        boost
+        # According to the configurePhase of meson, gtest is considered a
+        # runtime dependency. Quoting:
+        #
+        #    Run-time dependency GTest found: YES 1.10.0
+        gtest
+      ]
         ++ (lib.concatLists (lib.attrVals features_ featureDependencies))
         ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.AudioToolbox darwin.apple_sdk.frameworks.AudioUnit ];
 
-      nativeBuildInputs = [ meson ninja pkgconfig ];
+      nativeBuildInputs = [
+        meson
+        ninja
+        pkg-config
+        python3Packages.sphinx
+        doxygen
+      ];
+
+      # Otherwise, the meson log says:
+      #
+      #    Program zip found: NO
+      checkInputs = [ zip ];
+
+      doCheck = true;
 
       enableParallelBuilding = true;
 
       mesonAutoFeatures = "disabled";
-      mesonFlags =
-        map (x: "-D${x}=enabled") features_
+
+      outputs = [ "out" "doc" "man" ];
+
+      mesonFlags = [
+        # Documentation is enabled unconditionally but it's not installed
+        # unconditionally thanks to the outputs being split
+        "-Ddocumentation=true"
+        "-Dtest=true"
+      ]
+        ++ map (x: "-D${x}=enabled") features_
         ++ map (x: "-D${x}=disabled") (lib.subtractLists features_ knownFeatures)
         ++ lib.optional (builtins.elem "zeroconf" features_)
           "-Dzeroconf=avahi"
diff --git a/pkgs/servers/mqtt/mosquitto/default.nix b/pkgs/servers/mqtt/mosquitto/default.nix
index b52cfb09d4f..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.8";
+  version = "1.6.11";
 
   src = fetchFromGitHub {
     owner  = "eclipse";
     repo   = "mosquitto";
     rev    = "v${version}";
-    sha256 = "1py13vg3vwwwg6jdnmq46z6rlzb84r4ggqsmsrn4yar5hrw9pa90";
+    sha256 = "05mwghfmp459f7c0yph0xp1a5k6c0wghxzqm0n8jw7yfj7qixv88";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/nats-server/default.nix b/pkgs/servers/nats-server/default.nix
index 3685589fa70..b0ae2ebc2dc 100644
--- a/pkgs/servers/nats-server/default.nix
+++ b/pkgs/servers/nats-server/default.nix
@@ -4,7 +4,7 @@ with lib;
 
 buildGoPackage rec {
   pname   = "nats-server";
-  version = "2.1.0";
+  version = "2.1.7";
 
   goPackagePath = "github.com/nats-io/${pname}";
 
@@ -12,7 +12,7 @@ buildGoPackage rec {
     rev    = "v${version}";
     owner  = "nats-io";
     repo   = pname;
-    sha256 = "1zp43v69cawbp6bpby1vx51z6nyv8gxnnl2qkhwr9zrgnhlcflnl";
+    sha256 = "08wqaqar964p9adc0ma8dqg0rf88rylk1m2mddlbbqmd6l4h6m27";
   };
 
   meta = {
@@ -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 3c82c1996ef..a6fcf632793 100644
--- a/pkgs/servers/nextcloud/default.nix
+++ b/pkgs/servers/nextcloud/default.nix
@@ -28,12 +28,17 @@ let
   };
 in {
   nextcloud17 = generic {
-    version = "17.0.4";
-    sha256 = "0cj5mng0nmj3hz30pyz3g19kj3mkm5ca8si3sw3arv61dmw6c5g6";
+    version = "17.0.6";
+    sha256 = "0qq7lkgzsn1zakfym5bjqzpcisxmgfcdd927ddqlhddy3zvgxrxx";
   };
 
   nextcloud18 = generic {
-    version = "18.0.3";
-    sha256 = "0wpxa35zj81i541j3cjq6klsjwwc5slryzvjjl7zjc32004yfrvv";
+    version = "18.0.7";
+    sha256 = "0pka87ccrds17n6n5w5a80mc1s5yrf8d4mf6wsfaypwjbm3wfb2b";
+  };
+
+  nextcloud19 = generic {
+    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/nginx-sso/default.nix b/pkgs/servers/nginx-sso/default.nix
index 769a8605f03..dffe48db58a 100644
--- a/pkgs/servers/nginx-sso/default.nix
+++ b/pkgs/servers/nginx-sso/default.nix
@@ -1,8 +1,8 @@
-{ buildGoPackage, fetchFromGitHub, stdenv }:
+{ buildGoPackage, fetchFromGitHub, stdenv, nixosTests }:
 
 buildGoPackage rec {
   pname = "nginx-sso";
-  version = "0.24.1";
+  version = "0.25.0";
   rev = "v${version}";
 
   goPackagePath = "github.com/Luzifer/nginx-sso";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     inherit rev;
     owner = "Luzifer";
     repo = "nginx-sso";
-    sha256 = "1wij0a5ban2l6ahfra4n4dji7i5ndkqk1mgrblwm2ski7bl8yszx";
+    sha256 = "0z5h92rpr1rcfk11ggsb9w4ipg93fcb9byll7vl4c0mfcqkpm2dr";
   };
 
   postInstall = ''
@@ -19,6 +19,10 @@ buildGoPackage rec {
     cp -R $src/frontend $out/share
   '';
 
+  passthru.tests = {
+    inherit (nixosTests) nginx-sso;
+  };
+
   meta = with stdenv.lib; {
     description = "SSO authentication provider for the auth_request nginx module";
     homepage = "https://github.com/Luzifer/nginx-sso";
diff --git a/pkgs/servers/nosql/influxdb/default.nix b/pkgs/servers/nosql/influxdb/default.nix
index aa04bcaed9f..8d4cd5b3b2c 100644
--- a/pkgs/servers/nosql/influxdb/default.nix
+++ b/pkgs/servers/nosql/influxdb/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "111n36xifmd644xp80imqxx61nlap6fdwx1di2qphlqb43z99jrq";
   };
 
-  modSha256 = "07v4ijblvl2zq049fdz5vdfhk6d3phrsajhnhwl46x02dbdzgj13";
+  vendorSha256 = "097x3z1fhdl5s3ni2qzbqxqr60l6lqcrbikq20fs052dp287q0sp";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
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 8e75ee4fbde..2ca829b62b1 100644
--- a/pkgs/servers/nosql/redis/default.nix
+++ b/pkgs/servers/nosql/redis/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, lua, jemalloc, nixosTests }:
+{ stdenv, fetchurl, lua, pkgconfig, systemd, jemalloc, nixosTests }:
 
 stdenv.mkDerivation rec {
-  version = "5.0.8";
+  version = "6.0.6";
   pname = "redis";
 
   src = fetchurl {
     url = "http://download.redis.io/releases/${pname}-${version}.tar.gz";
-    sha256 = "1msfxr97aflk5zdgq8xvdbsgmzb906x0vdc1v6l2ccs35z2fmizk";
+    sha256 = "151x6qicmrmlxkmiwi2vdq8p50d52b9gglp8csag6pmgcfqlkb8j";
   };
 
   # Cross-compiling fixes
@@ -18,13 +18,14 @@ stdenv.mkDerivation rec {
     ''}
   '';
 
-  buildInputs = [ lua ];
+  buildInputs = [ lua pkgconfig ] ++ stdenv.lib.optional (stdenv.isLinux) systemd;
   # More cross-compiling fixes.
   # Note: this enables libc malloc as a temporary fix for cross-compiling.
   # Due to hardcoded configure flags in jemalloc, we can't cross-compile vendored jemalloc properly, and so we're forced to use libc allocator.
   # It's weird that the build isn't failing because of failure to compile dependencies, it's from failure to link them!
   makeFlags = [ "PREFIX=$(out)" ]
-    ++ stdenv.lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ "AR=${stdenv.cc.targetPrefix}ar" "RANLIB=${stdenv.cc.targetPrefix}ranlib" "MALLOC=libc" ];
+    ++ stdenv.lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ "AR=${stdenv.cc.targetPrefix}ar" "RANLIB=${stdenv.cc.targetPrefix}ranlib" "MALLOC=libc" ]
+    ++ stdenv.lib.optional (stdenv.isLinux) ["USE_SYSTEMD=yes"];
 
   enableParallelBuilding = true;
 
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 eb956b130ed..c470dcf1fd0 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.34.7";
+  version = "1.37.4";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0k4l3nq1d6f5qjx8svgga0ygv9mmhykvs3n3xr824ih6d0vrkzbg";
+    sha256 = "02jr0qz130jz7ncfch1jry0prd00669j53mlmpb6ky0xiz5y2zq1";
   };
 
   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 225c221b319..4c506c9fd3a 100644
--- a/pkgs/servers/oauth2_proxy/default.nix
+++ b/pkgs/servers/oauth2_proxy/default.nix
@@ -1,28 +1,24 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
-  pname = "oauth2_proxy";
-  version = "5.1.0";
-
-  goPackagePath = "github.com/pusher/${pname}";
+buildGoModule rec {
+  pname = "oauth2-proxy";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     repo = pname;
-    owner = "pusher";
-    sha256 = "190k1v2c1f6vp9waqs01rlzm0jc3vrmsq1w1n0c2q2nfqx76y2wz";
+    owner = "oauth2-proxy";
+    sha256 = "0mbjg0d0w173xpq69frjdvgyx5k74pkrfx3phc3lq8snvhnf1c2n";
     rev = "v${version}";
   };
 
-  goDeps = ./deps.nix;
-
-  doCheck = true;
+  vendorSha256 = "1hrk3h729kcc77fq44kiywmyzk5a78v7bm5d2yl76lfxxdcdric7";
 
   # Taken from https://github.com/oauth2-proxy/oauth2-proxy/blob/master/Makefile
   buildFlagsArray = ("-ldflags=-X main.VERSION=${version}");
 
   meta = with lib; {
     description = "A reverse proxy that provides authentication with Google, Github, or other providers";
-    homepage = "https://github.com/pusher/oauth2_proxy/";
+    homepage = "https://github.com/oauth2-proxy/oauth2-proxy/";
     license = licenses.mit;
     maintainers = with maintainers; [ yorickvp knl ];
   };
diff --git a/pkgs/servers/oauth2_proxy/deps.nix b/pkgs/servers/oauth2_proxy/deps.nix
deleted file mode 100644
index 611a07c2fda..00000000000
--- a/pkgs/servers/oauth2_proxy/deps.nix
+++ /dev/null
@@ -1,615 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "cloud.google.com/go";
-    fetch = {
-      type = "git";
-      url = "https://code.googlesource.com/gocloud";
-      rev = "v0.38.0";
-      sha256 = "0n6n13b7lri2fmc4bn4ifszyawj31dpbzvyv0xafsf81440z8cyh";
-    };
-  }
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "v0.3.1";
-      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
-    };
-  }
-  {
-    goPackagePath = "github.com/alicebob/gopher-json";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alicebob/gopher-json";
-      rev = "5a6b3ba71ee6";
-      sha256 = "0hx6n722zq51p852lv56k39yjy09lw6mnr2c3x0p23rfyyrakj2p";
-    };
-  }
-  {
-    goPackagePath = "github.com/alicebob/miniredis";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alicebob/miniredis";
-      rev = "v2.11.2";
-      sha256 = "1fc6w9n1jznwj8ks2svxmjrv87pk3spjf5z3kcxpgpynp13pd55n";
-    };
-  }
-  {
-    goPackagePath = "github.com/bitly/go-simplejson";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bitly/go-simplejson";
-      rev = "v0.5.0";
-      sha256 = "0n9f9dz1jn1jx86d48569nznpjn9fmq3knn7r65xpy7jhih284jj";
-    };
-  }
-  {
-    goPackagePath = "github.com/bmizerany/assert";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bmizerany/assert";
-      rev = "b7ed37b82869";
-      sha256 = "18hy1wyl9zdi7sgxafrn3m7fadh6in0rhhb8l0cvkxqzdl0jcw2s";
-    };
-  }
-  {
-    goPackagePath = "github.com/census-instrumentation/opencensus-proto";
-    fetch = {
-      type = "git";
-      url = "https://github.com/census-instrumentation/opencensus-proto";
-      rev = "v0.2.1";
-      sha256 = "19fcx3sc99i5dsklny6r073z5j20vlwn2xqm6di1q3b1xwchzqfj";
-    };
-  }
-  {
-    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/go-oidc";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-oidc";
-      rev = "v2.2.1";
-      sha256 = "11m6slbpi33ynffml7812piq4anhjlf1qszjlsf26f5y7x3qh8n5";
-    };
-  }
-  {
-    goPackagePath = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev = "v1.1.0";
-      sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
-    };
-  }
-  {
-    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/envoyproxy/go-control-plane";
-    fetch = {
-      type = "git";
-      url = "https://github.com/envoyproxy/go-control-plane";
-      rev = "5f8ba28d4473";
-      sha256 = "1f1s764rd41vd9vgk3r14h1m6fz6pdvxj6fd83q58gxifbc4q5w4";
-    };
-  }
-  {
-    goPackagePath = "github.com/envoyproxy/protoc-gen-validate";
-    fetch = {
-      type = "git";
-      url = "https://github.com/envoyproxy/protoc-gen-validate";
-      rev = "v0.1.0";
-      sha256 = "0kxd3wwh3xwqk0r684hsy281xq4y71cd11d4q2hspcjbnlbwh7cy";
-    };
-  }
-  {
-    goPackagePath = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-redis/redis";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-redis/redis";
-      rev = "v6.15.7";
-      sha256 = "0fc0sfispyzn652ny05wn6bz18a60n6ryk23ki8j97xx3l24nq2g";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/glog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/glog";
-      rev = "23def4e6c14b";
-      sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/mock";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/mock";
-      rev = "v1.2.0";
-      sha256 = "12ddj2g8ab87id6n2n67vnbhq6p8dvgsq1pzpqfriym4dk8w54fg";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "v1.3.2";
-      sha256 = "1k1wb4zr0qbwgpvz9q5ws9zhlal8hq7dmq62pwxxriksayl6hzym";
-    };
-  }
-  {
-    goPackagePath = "github.com/gomodule/redigo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gomodule/redigo";
-      rev = "v2.0.0";
-      sha256 = "1kg7s8027b4g1sfw0v3nh30c15j407kv684s53gg281r807dnfpk";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/btree";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/btree";
-      rev = "4030bb1f1f0c";
-      sha256 = "0ba430m9fbnagacp57krgidsyrgp3ycw5r7dj71brgp5r52g82p6";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/go-cmp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-cmp";
-      rev = "v0.3.0";
-      sha256 = "1hyxx3434zshl2m9ja78gwlkg1rx9yl6diqa7dnjb31xz5x4gbjj";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/martian";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/martian";
-      rev = "v2.1.0";
-      sha256 = "197hil6vrjk50b9wvwyzf61csid83whsjj6ik8mc9r2lryxlyyrp";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/pprof";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/pprof";
-      rev = "3ea8567a2e57";
-      sha256 = "09rhjn3ms0a72dw0yzbp237p7yhqma772zspddn6mgkh3gi3kn4c";
-    };
-  }
-  {
-    goPackagePath = "github.com/googleapis/gax-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/gax-go";
-      rev = "v2.0.5";
-      sha256 = "1lxawwngv6miaqd25s3ba0didfzylbwisd2nz7r4gmbmin6jsjrx";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/golang-lru";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/golang-lru";
-      rev = "v0.5.1";
-      sha256 = "13f870cvk161bzjj6x41l45r5x9i1z9r2ymwmvm7768kg08zznpy";
-    };
-  }
-  {
-    goPackagePath = "github.com/hpcloud/tail";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hpcloud/tail";
-      rev = "v1.0.0";
-      sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0";
-    };
-  }
-  {
-    goPackagePath = "github.com/jstemmer/go-junit-report";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jstemmer/go-junit-report";
-      rev = "af01ea7f8024";
-      sha256 = "1lp3n94ris12hac02wi31f3whs88lcrzwgdg43a5j6cafg9p1d0s";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pretty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pretty";
-      rev = "v0.2.0";
-      sha256 = "1ywbfzz1h3a3qd8rpkiqwi1dm4w8ls9ijb4x1b7567grns9f0vnp";
-    };
-  }
-  {
-    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/mbland/hmacauth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mbland/hmacauth";
-      rev = "44256dfd4bfa";
-      sha256 = "1d5pbjgc5j8pi3frsjp5gqg7j12bxdbl55nhy01cv4c96hay2ij1";
-    };
-  }
-  {
-    goPackagePath = "github.com/mreiferson/go-options";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mreiferson/go-options";
-      rev = "v1.0.0";
-      sha256 = "1pxs9ybrh196qy14ijn4zn51h2z28lj31y6vxrz2xxhgvpmfmxyl";
-    };
-  }
-  {
-    goPackagePath = "github.com/onsi/ginkgo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/onsi/ginkgo";
-      rev = "v1.12.0";
-      sha256 = "0ly246i0ax53l6dn9f1zlhkd9gs03hvbk7aazxay2dd5fxzh9n65";
-    };
-  }
-  {
-    goPackagePath = "github.com/onsi/gomega";
-    fetch = {
-      type = "git";
-      url = "https://github.com/onsi/gomega";
-      rev = "v1.9.0";
-      sha256 = "0l69r6nbnz6b3j9zrqn8aql88jjv1pqykzkvqdbhfprss9b2dy46";
-    };
-  }
-  {
-    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/pquerna/cachecontrol";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pquerna/cachecontrol";
-      rev = "1555304b9b35";
-      sha256 = "0nr3p9pms6jmr2s44vy2s22q1d3v6xns2kzsvkq2gg1rkx6c1hc9";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "14fe0d1b01d4";
-      sha256 = "0zdmk6rbbx39cvfz0r59v2jg5sg9yd02b4pds5n5llgvivi99550";
-    };
-  }
-  {
-    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.5.1";
-      sha256 = "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl";
-    };
-  }
-  {
-    goPackagePath = "github.com/yhat/wsutil";
-    fetch = {
-      type = "git";
-      url = "https://github.com/yhat/wsutil";
-      rev = "1d66fa95c997";
-      sha256 = "1agh4ss6y1laps8pg4mdl844ivmw2wrb7rnpfyag4gai4693i7bv";
-    };
-  }
-  {
-    goPackagePath = "github.com/yuin/gopher-lua";
-    fetch = {
-      type = "git";
-      url = "https://github.com/yuin/gopher-lua";
-      rev = "ab39c6098bdb";
-      sha256 = "13b0rrpv3988qw8rq6z7npajn1my059ybhafi5mxff9jw09k9sja";
-    };
-  }
-  {
-    goPackagePath = "go.opencensus.io";
-    fetch = {
-      type = "git";
-      url = "https://github.com/census-instrumentation/opencensus-go";
-      rev = "v0.21.0";
-      sha256 = "14s0a12xdzjvad0dgksgv8m3hh7nc585abvjkvyk6r67a29lxj6x";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "2aa609cf4a9d";
-      sha256 = "1yvis6fqbsd7f356aqyi18f76vnwj3bry6mxqnkvshq4cwrf92il";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/exp";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/exp";
-      rev = "509febef88a4";
-      sha256 = "02isrh39z8znrp5znplzy0dip2gnrl3jm1355raliyvhnhg04j6q";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/lint";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/lint";
-      rev = "959b441ac422";
-      sha256 = "1mgcv5f00pkzsbwnq2y7vqvd1b4lr5a3s47cphh2qv4indfk7pck";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "0de0cce0169b";
-      sha256 = "1db7s5kbzyh2zd5lpv05n7hp8wbwdvgk0wpiwrlnig94mkr0y5aq";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/oauth2";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/oauth2";
-      rev = "bf48bf16ab8d";
-      sha256 = "1sirdib60zwmh93kf9qrx51r8544k1p9rs5mk0797wibz3m4mrdg";
-    };
-  }
-  {
-    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 = "bd437916bb0e";
-      sha256 = "1i8x26frmlin55k69k936zd1rp5sqnq14y5ms4rkxbfzhasdm2rx";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.2";
-      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/time";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/time";
-      rev = "85acf8d2951c";
-      sha256 = "0yqnxsrarjk4qkda8kcxzmk7y90kkkxzx9iwryzrk7bzs87ky3xc";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "2c0ae7006135";
-      sha256 = "1lsi2ssxajclj3bciz2a41v1vjv768ja3v6wnbyhxy8xphwkp4fk";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/xerrors";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/xerrors";
-      rev = "a985d3407aa7";
-      sha256 = "00wzr5w8aadipgc3rkk8f11i41znskfj9ix5nhhaxyg7isrslgcj";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/api";
-    fetch = {
-      type = "git";
-      url = "https://code.googlesource.com/google-api-go-client";
-      rev = "v0.19.0";
-      sha256 = "0rbwijzl91xmbr9kqhiwx4fydm7r6ci6rxsi9jsy8zap9zy120f6";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/appengine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/appengine";
-      rev = "v1.5.0";
-      sha256 = "0l7mkdnwhidv8m686x432vmx8z5nqcrr9f46ddgvrxbh4wvyfcll";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/genproto";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-genproto";
-      rev = "24fa4b261c55";
-      sha256 = "109zhaqlfd8zkbr1hk6zqbs6vcxfrk64scjwh2nswph05gr0m84d";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/grpc";
-    fetch = {
-      type = "git";
-      url = "https://github.com/grpc/grpc-go";
-      rev = "v1.27.0";
-      sha256 = "1ijrmgrxyabfn51nm3p9l81iaasq5fg237wnr6mdc4dzsfcg8kd7";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "20d25e280405";
-      sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/fsnotify.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/fsnotify.v1";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/fsnotify/fsnotify.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/fsnotify/fsnotify.v1";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/natefinch/lumberjack.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/natefinch/lumberjack.v2";
-      rev = "v2.0.0";
-      sha256 = "1m2sxypk7p805jvc68padvylyx5v7cwkh5klnnxxr0340kgspf08";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/square/go-jose.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/square/go-jose.v2";
-      rev = "v2.4.1";
-      sha256 = "1y0angxwryishwd1z0q7fp2xwjjhpw70kqh4ml4ly40akfhf1f5a";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/tomb.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/tomb.v1";
-      rev = "dd632973f1e7";
-      sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.4";
-      sha256 = "11bwj757wi8kdrcnlgfqb8vv2d2xdhlghmyagd19i62khrkchsg2";
-    };
-  }
-  {
-    goPackagePath = "honnef.co/go/tools";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dominikh/go-tools";
-      rev = "ea95bdfd59fc";
-      sha256 = "1763nw7pwpzkvzfnm63dgzcgbq9hwmq5l1nffchnhh77vgkaq4ic";
-    };
-  }
-]
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/openafs/1.8/module.nix b/pkgs/servers/openafs/1.8/module.nix
index 4aecc851b86..db44dbe2200 100644
--- a/pkgs/servers/openafs/1.8/module.nix
+++ b/pkgs/servers/openafs/1.8/module.nix
@@ -1,7 +1,9 @@
 { stdenv, fetchurl, which, autoconf, automake, flex, yacc
 , kernel, glibc, perl, libtool_2, kerberos, fetchpatch }:
 
-with (import ./srcs.nix { inherit fetchurl; });
+with (import ./srcs.nix {
+  inherit fetchurl;
+});
 
 let
   modDestDir = "$out/lib/modules/${kernel.modDirVersion}/extra/openafs";
diff --git a/pkgs/servers/openafs/1.8/srcs.nix b/pkgs/servers/openafs/1.8/srcs.nix
index 4a5591ef464..4df5bdfc388 100644
--- a/pkgs/servers/openafs/1.8/srcs.nix
+++ b/pkgs/servers/openafs/1.8/srcs.nix
@@ -1,14 +1,14 @@
 { fetchurl }:
 rec {
-  version = "1.8.5";
+  version = "1.8.6";
   src = fetchurl {
-    url = "http://www.openafs.org/dl/openafs/${version}/openafs-${version}-src.tar.bz2";
-    sha256 = "08w5n803xm75j7daa3mr2ncfmcg0wpm7yasj6zyddqlb4f7xdppf";
+    url = "https://www.openafs.org/dl/openafs/${version}/openafs-${version}-src.tar.bz2";
+    sha256 = "0i99klrw00v4bwd942n90xqfn16z6337m89xfm9dgv7ih0qrsklb";
   };
 
   srcs = [ src
     (fetchurl {
-      url = "http://www.openafs.org/dl/openafs/${version}/openafs-${version}-doc.tar.bz2";
-      sha256 = "08mg3n0q2igfas1khj18r9apyrkpbp1jick0ix5nfaal90jbifis";
+      url = "https://www.openafs.org/dl/openafs/${version}/openafs-${version}-doc.tar.bz2";
+      sha256 = "1s91kmxfimhdqrz7l6jgjz72j9pyalghrvg4h384fsz0ks6s4kz3";
     })];
 }
diff --git a/pkgs/servers/pinnwand/default.nix b/pkgs/servers/pinnwand/default.nix
new file mode 100644
index 00000000000..360e39ab685
--- /dev/null
+++ b/pkgs/servers/pinnwand/default.nix
@@ -0,0 +1,55 @@
+{ lib, python3, fetchFromGitHub, poetry, nixosTests }:
+
+let
+  python = python3.override {
+    packageOverrides = self: super: {
+      tornado = super.tornado.overridePythonAttrs (oldAttrs: rec {
+        version = "6.0.4";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "1p5n7sw4580pkybywg93p8ddqdj9lhhy72rzswfa801vlidx9qhg";
+        };
+      });
+    };
+  };
+in with python.pkgs; buildPythonApplication rec {
+  pname = "pinnwand";
+  version = "1.2.1";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "supakeen";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1rk7rpyb4vmqxqqv8k9jpjmgakr3mn1iaqxyj34r74p1n5vfzimq";
+  };
+
+  nativeBuildInputs = [
+    poetry
+  ];
+
+  propagatedBuildInputs = [
+    click
+    docutils
+    tornado
+    pygments-better-html
+    toml
+    sqlalchemy
+  ];
+
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  passthru.tests = nixosTests.pinnwand;
+
+  meta = with lib; {
+    homepage = "https://supakeen.com/project/pinnwand/";
+    license = licenses.mit;
+    description = "A Python pastebin that tries to keep it simple.";
+    maintainers = with maintainers; [ hexa ];
+  };
+}
+
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 cdeaaa77c05..bc429e39501 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.2.2737-b69929dab";
+  version = "1.19.5.3112-b23ab3896";
   pname = "plexmediaserver";
 
   # Fetch the source
   src = fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/redhat/plexmediaserver-${version}.x86_64.rpm";
-    sha256 = "00s3ab66wnpwkjrp0ng8srcy3l32sh5ibv0i9m6l4d0a19hr01fs";
+    sha256 = "0lh0yqpp1xyhb3bkc8wqg1afdyvaqhv3bmbyjqalpj2ikkk5lxwk";
   };
 
   outputs = [ "out" "basedb" ];
diff --git a/pkgs/servers/pounce/default.nix b/pkgs/servers/pounce/default.nix
index 8609648378a..4ab3a4ee167 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.3p1";
 
   src = fetchzip {
     url = "https://git.causal.agency/pounce/snapshot/pounce-${version}.tar.gz";
-    sha256 = "07iyh6ikrlf7y57k462jcr00db6aijk9b2s7n7l7i49hk7kmm6wq";
+    sha256 = "1ab4pz7gyvlms00hcarcmsljkn0whwqxfck8b343l4riai2rj9xv";
   };
 
   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 b9fb104d5f6..513249cb7ad 100644
--- a/pkgs/servers/pulseaudio/default.nix
+++ b/pkgs/servers/pulseaudio/default.nix
@@ -3,7 +3,7 @@
 , xorg, libcap, alsaLib, glib, dconf
 , avahi, libjack2, libasyncns, lirc, dbus
 , sbc, bluez5, udev, openssl, fftwFloat
-, speexdsp, systemd, webrtc-audio-processing
+, soxr, speexdsp, systemd, webrtc-audio-processing
 
 , x11Support ? false
 
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     lib.optionals stdenv.isLinux [ libcap ];
 
   buildInputs =
-    [ libtool libsndfile speexdsp fftwFloat ]
+    [ libtool libsndfile soxr speexdsp fftwFloat ]
     ++ lib.optionals stdenv.isLinux [ glib dbus ]
     ++ lib.optionals stdenv.isDarwin [ CoreServices AudioUnit Cocoa ]
     ++ lib.optionals (!libOnly) (
@@ -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..a76c45c1959 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 ];
diff --git a/pkgs/servers/radicale/default.nix b/pkgs/servers/radicale/2.x.nix
index fc98795bbc7..8d36717ec69 100644
--- a/pkgs/servers/radicale/default.nix
+++ b/pkgs/servers/radicale/2.x.nix
@@ -2,14 +2,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "Radicale";
-  version = "2.1.11";
+  version = "2.1.12";
 
   # No tests in PyPI tarball
   src = fetchFromGitHub {
     owner = "Kozea";
     repo = "Radicale";
     rev = version;
-    sha256 = "1k32iy55lnyyp1r75clarhwdqvw6w8mxb5v0l5aysga07fg2mix4";
+    sha256 = "14f9ql0fiwapaa4xaslwgk1ah9fzxxan2p1p2rxb4a5iqph1z0cl";
   };
 
   # We only want functional tests
@@ -31,7 +31,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with stdenv.lib; {
-    homepage = "https://www.radicale.org/";
+    homepage = "https://www.radicale.org/2.x.nix";
     description = "CalDAV CardDAV server";
     longDescription = ''
       The Radicale Project is a complete CalDAV (calendar) and CardDAV
diff --git a/pkgs/servers/radicale/3.x.nix b/pkgs/servers/radicale/3.x.nix
new file mode 100644
index 00000000000..7b42bd3be34
--- /dev/null
+++ b/pkgs/servers/radicale/3.x.nix
@@ -0,0 +1,38 @@
+{ lib, python3, fetchFromGitHub }:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "radicale";
+  version = "3.0.3";
+
+  # No tests in PyPI tarball
+  src = fetchFromGitHub {
+    owner = "Kozea";
+    repo = "Radicale";
+    rev = version;
+    sha256 = "170mqxlnfzx15img4wb71axq9cnxwllk5cabsv8i008q7wyjqp0n";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    defusedxml
+    passlib
+    vobject
+    python-dateutil
+    setuptools
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytestrunner
+    pytest
+    pytestcov
+    pytest-flake8
+    pytest-isort
+    waitress
+  ];
+
+  meta = with lib; {
+    homepage = "https://www.radicale.org/3.0.html";
+    description = "CalDAV and CardDAV server";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
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 49eaa26c294..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, 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 libav ]}' check.sh
-    sed -i '/check_ulimit$/d' check.sh
-
-    # Start script
-    sed -i '3i PATH=$PATH:${makeBinPath [ alsaUtils cifs-utils ffmpeg 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 a1dc25e6e28..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.4";
+  version = "1.4.8";
 
   src = fetchurl {
     url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/roundcubemail-${version}-complete.tar.gz";
-    sha256 = "1my726p0wmsn21nbdsjx02h6hnbh8nidzipzdy0gk0qgda1j729b";
+    sha256 = "0jkas28k7px95sm3zix86ggraxc9vyy66271sgpr2wrmbg2r056r";
   };
 
   patches = [ ./0001-Don-t-resolve-symlinks-when-trying-to-find-INSTALL_P.patch ];
diff --git a/pkgs/servers/roundcube/plugins/carddav/default.nix b/pkgs/servers/roundcube/plugins/carddav/default.nix
new file mode 100644
index 00000000000..c3745c9bcc5
--- /dev/null
+++ b/pkgs/servers/roundcube/plugins/carddav/default.nix
@@ -0,0 +1,11 @@
+{ roundcubePlugin, fetchzip }:
+
+roundcubePlugin rec {
+  pname = "carddav";
+  version = "3.0.3";
+
+  src = fetchzip {
+    url = "https://github.com/blind-coder/rcmcarddav/releases/download/v${version}/carddav-${version}.tar.bz2";
+    sha256 = "0scqxqfwv9r4ggaammmjp51mj50qc5p4jmjliwjvcwyjr36wjq3z";
+  };
+}
diff --git a/pkgs/servers/roundcube/plugins/persistent_login/default.nix b/pkgs/servers/roundcube/plugins/persistent_login/default.nix
index b66386222f7..e210c100684 100644
--- a/pkgs/servers/roundcube/plugins/persistent_login/default.nix
+++ b/pkgs/servers/roundcube/plugins/persistent_login/default.nix
@@ -2,12 +2,12 @@
 
 roundcubePlugin rec {
   pname = "persistent_login";
-  version = "5.1.0";
+  version = "5.2.0";
 
   src = fetchFromGitHub {
     owner = "mfreiholz";
     repo = pname;
     rev = "version-${version}";
-    sha256 = "1k2jgbshwig8q5l440y59pgwbfbc0pdrjbpihba834a4pm0y6anl";
+    sha256 = "0aasc2ns318s1g8vf2hhqwsplchhrhv5cd725rnfldim1y8k0n1i";
   };
 }
diff --git a/pkgs/servers/roundcube/plugins/plugins.nix b/pkgs/servers/roundcube/plugins/plugins.nix
index 4eed1227be6..a9c73874b69 100644
--- a/pkgs/servers/roundcube/plugins/plugins.nix
+++ b/pkgs/servers/roundcube/plugins/plugins.nix
@@ -5,5 +5,6 @@
 
   roundcubePlugin = callPackage ./roundcube-plugin.nix { };
 
+  carddav = callPackage ./carddav { };
   persistent_login = callPackage ./persistent_login { };
 }
diff --git a/pkgs/servers/routinator/default.nix b/pkgs/servers/routinator/default.nix
index 46416c98276..6e57ebd42da 100644
--- a/pkgs/servers/routinator/default.nix
+++ b/pkgs/servers/routinator/default.nix
@@ -2,22 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "routinator";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "NLnetLabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qbaibmbiw3pffi0cm6d06k1gra4acgxr97gj7f1ckvql5rni4h0";
+    sha256 = "12fgvalv12v8690pxmsdg179r170d4mc1kynsb25fm0zggy838jn";
   };
 
-  cargoSha256 = "138h99l3vv34higbqj59fa88w7c63c80g3rw07n9j2f834cvr901";
+  cargoSha256 = "01118mnb5gm0xqi2c8jj3fk8y55jnnyg9zgn2g4xn7f3i8dcczka";
 
   meta = with stdenv.lib; {
     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 300d341cf88..7ed1a72de0e 100644
--- a/pkgs/servers/samba/4.x.nix
+++ b/pkgs/servers/samba/4.x.nix
@@ -24,13 +24,13 @@
 , libtasn1
 , tdb
 , cmocka
+, nixosTests
 
 , enableLDAP ? false, openldap
 , enablePrinting ? false, cups
 , enableProfiling ? true
 , enableMDNS ? false, avahi
 , enableDomainController ? false, gpgme, lmdb
-, enableKerberos ? true, krb5Full
 , enableRegedit ? true, ncurses
 , enableCephFS ? false, libceph
 , enableGlusterFS ? false, glusterfs, libuuid
@@ -42,11 +42,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "samba";
-  version = "4.12.2";
+  version = "4.12.5";
 
   src = fetchurl {
     url = "mirror://samba/pub/samba/stable/${pname}-${version}.tar.gz";
-    sha256 = "0l514s2xhsy1lspzgvibbzs80zi84zxr2wx4d40hq85yb2lg5434";
+    sha256 = "05dqj5l3spa8ggw0agxa5rf8fwgiizbmbfjms46y5jla6z31rd2l";
   };
 
   outputs = [ "out" "dev" "man" ];
@@ -91,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 ]
@@ -115,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"
@@ -148,6 +143,10 @@ stdenv.mkDerivation rec {
     find $out -type f -name \*.so -exec $SHELL -c "$SCRIPT" \;
   '';
 
+  passthru = {
+    tests.samba = nixosTests.samba;
+  };
+
   meta = with stdenv.lib; {
     homepage = "https://www.samba.org";
     description = "The standard Windows interoperability suite of programs for Linux and Unix";
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 b53a207a6c5..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.2";
+  version = "10.0.5";
 
   src = fetchurl {
     url    = "https://packages.groonga.org/source/groonga/${pname}-${version}.tar.gz";
-    sha256 = "0851sdzgg5krf05b1pg29gmwzvzxvawfp37ny3lrb5xcdqbr379c";
+    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..88a84dd6191 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.5.2";
 
   src = fetchurl {
     url = "mirror://apache/lucene/${pname}/${version}/${pname}-${version}.tgz";
-    sha256 = "02sa0sldsfajryyfndv587qw69q8y8igfpimg98w1g3vndrq1dj7";
+    sha256 = "1kvd0vfic9h3glhz8dz5c1n8mmb9yv339pz1878wlh9j4k3xcmy4";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/ser2net/default.nix b/pkgs/servers/ser2net/default.nix
index e18d96013e4..9f82a76c323 100644
--- a/pkgs/servers/ser2net/default.nix
+++ b/pkgs/servers/ser2net/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, lib, fetchFromGitHub, gensio, libyaml, autoreconfHook }:
+{ stdenv, lib, fetchFromGitHub, gensio, libyaml, autoreconfHook, pkgconfig }:
 
 stdenv.mkDerivation rec {
   pname = "ser2net";
-  version = "4.1.1";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     owner = "cminyard";
     repo = "${pname}";
     rev = "v${version}";
-    sha256 = "1zl68mmd7pp10cjv1jk8rs2dlbwvzskyb58qvc7ph7vc6957lfhc";
+    sha256 = "154sc7aa74c2vwfwan41qwqxckp36lw9wf3qydamsyvd9ampjf5x";
   };
 
-  buildInputs = [ autoreconfHook gensio libyaml ];
+  buildInputs = [ pkgconfig autoreconfHook gensio libyaml ];
 
   meta = with lib; {
     description = "Serial to network connection server";
diff --git a/pkgs/servers/serviio/default.nix b/pkgs/servers/serviio/default.nix
index 006c2fdff3e..769ed5e7272 100644
--- a/pkgs/servers/serviio/default.nix
+++ b/pkgs/servers/serviio/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "serviio";
-  version = "2.0";
+  version = "2.1";
 
   src = fetchurl {
     url = "http://download.serviio.org/releases/${pname}-${version}-linux.tar.gz";
-    sha256 = "1zq1ax0pdxfn0nw0vm7s23ik47w8nwh1n83a7yka8dnknxjf5nng";
+    sha256 = "0mxpdyhjf4w83q8ssmvpxm95hw4x7lfkh48vvdablccfndh82x2i";
   };
 
   phases = ["unpackPhase" "installPhase"];
diff --git a/pkgs/servers/sickbeard/sickgear.nix b/pkgs/servers/sickbeard/sickgear.nix
index 3bf72043ec5..b04675d64f4 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.30";
+  version = "0.21.36";
 
   src = fetchFromGitHub {
     owner = "SickGear";
     repo = "SickGear";
     rev = "release_${version}";
-    sha256 = "19j0hm2d2q279kzmdjbjgfhjwcp7071a2mmvsnb0167wdyaq4bcf";
+    sha256 = "0kssz44agvb5zxjq2i566f4xk9924372hjpj0czjckrrjvzjqvci";
   };
 
   dontBuild = true;
diff --git a/pkgs/servers/sip/freeswitch/default.nix b/pkgs/servers/sip/freeswitch/default.nix
index 46ef6bcfac5..f665e6d2a90 100644
--- a/pkgs/servers/sip/freeswitch/default.nix
+++ b/pkgs/servers/sip/freeswitch/default.nix
@@ -3,7 +3,7 @@
 , openssl, perl, sqlite, libjpeg, speex, pcre
 , ldns, libedit, yasm, which, libsndfile, libtiff
 
-, curl, lua, libmysqlclient, postgresql, libopus, libctb, gsmlib
+, callPackage
 
 , SystemConfiguration
 
@@ -13,9 +13,7 @@
 
 let
 
-availableModules = import ./modules.nix {
-  inherit curl lua libmysqlclient postgresql libopus libctb gsmlib;
-};
+availableModules = callPackage ./modules.nix { };
 
 # the default list from v1.8.7, except with applications/mod_signalwire also disabled
 defaultModules = mods: with mods; [
@@ -101,6 +99,14 @@ stdenv.mkDerivation rec {
     patchShebangs     libs/libvpx/build/make/rtcd.pl
     substituteInPlace libs/libvpx/build/make/configure.sh \
       --replace AS=\''${AS} AS=yasm
+
+    # Disable advertisement banners
+    for f in src/include/cc.h libs/esl/src/include/cc.h; do
+      {
+        echo 'const char *cc = "";'
+        echo 'const char *cc_s = "";'
+      } > $f
+    done
   '';
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
diff --git a/pkgs/servers/sip/freeswitch/modules.nix b/pkgs/servers/sip/freeswitch/modules.nix
index be80fe56dda..794b45cd227 100644
--- a/pkgs/servers/sip/freeswitch/modules.nix
+++ b/pkgs/servers/sip/freeswitch/modules.nix
@@ -1,8 +1,12 @@
 { libopus
+, opusfile
+, libopusenc
+, libogg
 , libctb
 , gsmlib
 , lua
 , curl
+, ffmpeg
 , libmysqlclient
 , postgresql
 }:
@@ -17,7 +21,7 @@ in
 {
   applications = {
     abstraction = mk "applications/mod_abstraction" [];
-    av = mk "applications/mod_av" [];
+    av = mk "applications/mod_av" [ ffmpeg ];
     avmd = mk "applications/mod_avmd" [];
     bert = mk "applications/mod_bert" [];
     blacklist = mk "applications/mod_blacklist" [];
@@ -161,6 +165,7 @@ in
     imagick = mk "formats/mod_imagick" [];
     local_stream = mk "formats/mod_local_stream" [];
     native_file = mk "formats/mod_native_file" [];
+    opusfile = mk "formats/mod_opusfile" [ libopus opusfile libopusenc libogg ];
     png = mk "formats/mod_png" [];
     portaudio_stream = mk "formats/mod_portaudio_stream" [];
     shell_stream = mk "formats/mod_shell_stream" [];
@@ -169,6 +174,7 @@ in
     ssml = mk "formats/mod_ssml" [];
     tone_stream = mk "formats/mod_tone_stream" [];
     vlc = mk "formats/mod_vlc" [];
+    webm = mk "formats/mod_webm" [];
   };
 
   languages = {
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/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 2ce8e901e86..852f1ea61dd 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 = "19.1.5";
+  version = "20.1.3";
 
   goPackagePath = "github.com/cockroachdb/cockroach";
 
   src = fetchurl {
     url = "https://binaries.cockroachdb.com/cockroach-v${version}.src.tgz";
-    sha256 = "1pnzzmxxb7qxiiy8qpl2sifk4qrijjbhmzy47bnjj5ssdsjjjcqy";
+    sha256 = "0bg60rcfn2d4awg5al8d5xvk8h7bab986qlbpl9bkv6zpw9wipfb";
   };
 
   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 4015e2097ee..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.16.3";
+    version = "0.18.3";
 
     src = fetchFromGitHub {
         owner = "liquidata-inc";
         repo = "dolt";
         rev = "v${version}";
-        sha256 = "141wv5av7hms4wa3s4md7mnb77bbyn3854d7gj7fy6f6jvzghdny";
+        sha256 = "0mgawr3nkyna22sqhskvvk7h9c8ivag959liji2qcdfwgfqp0l6z";
     };
 
     modRoot = "./go";
     subPackages = [ "cmd/dolt" "cmd/git-dolt" "cmd/git-dolt-smudge" ];
-    modSha256 = "1fx830dif9cq2rvigdbqbc3vmmq01ywj9b095adbrwddvay8m8si";
+  vendorSha256 = "0rqkqyvf8mjl7b62ng7vzi6as6qw3sg3lzj2mcg1aiw3h7ikr6hw";
+
+  doCheck = false;
 
     meta = with lib; {
         description = "Relational database with version control and CLI a-la Git.";
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/connector-c/3_1.nix b/pkgs/servers/sql/mariadb/connector-c/3_1.nix
index e3fc6604530..fb6835775fb 100644
--- a/pkgs/servers/sql/mariadb/connector-c/3_1.nix
+++ b/pkgs/servers/sql/mariadb/connector-c/3_1.nix
@@ -1,6 +1,6 @@
 { callPackage, ... } @ args:
 
 callPackage ./. (args // {
-  version = "3.1.7";
-  sha256 = "16pmdms454jbralaw6rpx0rjlf2297p6h3q8wfk0n87kbn7vrxv4";
+  version = "3.1.8";
+  sha256 = "0yrzhsxmjiwkhchagx8dymzhvxl3k5h40wn9wpicqjvgjb9k8523";
 })
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index 9b5118eacc3..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.3.22";
+  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 = "1iyf1hl82nqsci5h327a537rvdrc5qcbrd1v3fc4cxy2pmfha01j";
+    sha256 = "1z469j39chq7d3dp39cljjbzcz0wl1g7rii85x46290jw1cwsbzr";
     name   = "mariadb-${version}.tar.gz";
   };
 
@@ -72,6 +72,8 @@ common = rec { # attributes common to both builds
     "-DINSTALL_SUPPORTFILESDIR=share/doc/mysql"
     "-DINSTALL_MYSQLTESTDIR=OFF"
     "-DINSTALL_SQLBENCHDIR=OFF"
+    "-DINSTALL_PAMDIR=share/pam/lib/security"
+    "-DINSTALL_PAMDATADIR=share/pam/etc/security"
 
     "-DWITH_ZLIB=system"
     "-DWITH_SSL=system"
@@ -94,7 +96,7 @@ common = rec { # attributes common to both builds
     rm "$out"/bin/{mariadb_config,mysql_config}
     rm -r $out/include
     rm -r $out/lib/pkgconfig
-    rm -r $out/share/{aclocal,pkgconfig}
+    rm -r $out/share/aclocal
   '';
 
   enableParallelBuilding = true;
@@ -111,7 +113,6 @@ common = rec { # attributes common to both builds
   };
 
   meta = {
-
     description = "An enhanced, drop-in replacement for MySQL";
     homepage    = "https://mariadb.org/";
     license     = licenses.gpl2;
@@ -127,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"
@@ -138,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}
@@ -161,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"
@@ -189,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"
   ];
 
@@ -198,11 +198,14 @@ server = stdenv.mkDerivation (common // {
 
   postInstall = common.postInstall + ''
     chmod +x "$out"/bin/wsrep_sst_common
-    rm "$out"/bin/{mysql_client_test,mysqltest}
+    rm "$out"/bin/{mariadb-client-test,mariadb-test,mysql_client_test,mysqltest}
     rm -r "$out"/data # Don't need testing data
   '' + optionalString withStorageMroonga ''
     mv "$out"/share/{groonga,groonga-normalizer-mysql} "$out"/share/doc/mysql
   '' + optionalString (!stdenv.hostPlatform.isDarwin) ''
+    mv "$out"/OFF/suite/plugins/pam/pam_mariadb_mtr.so "$out"/share/pam/lib/security
+    mv "$out"/OFF/suite/plugins/pam/mariadb_mtr "$out"/share/pam/etc/security
+    rm -r "$out"/OFF
     sed -i 's/-mariadb/-mysql/' "$out"/bin/galera_new_cluster
   '';
 
diff --git a/pkgs/servers/sql/mariadb/galera/25.nix b/pkgs/servers/sql/mariadb/galera/25.nix
deleted file mode 100644
index 2772d60e398..00000000000
--- a/pkgs/servers/sql/mariadb/galera/25.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{ callPackage, ... } @ args:
-
-callPackage ./. (args // {
-  version = "25.3.27";
-  sha256 = "143kzj0fmak1gdww4qkqmmliw8klxm6mwk5531748swlwm6gqr5q";
-})
diff --git a/pkgs/servers/sql/mariadb/galera/default.nix b/pkgs/servers/sql/mariadb/galera/default.nix
index a6ce8f4b047..14ab75d159b 100644
--- a/pkgs/servers/sql/mariadb/galera/default.nix
+++ b/pkgs/servers/sql/mariadb/galera/default.nix
@@ -1,24 +1,22 @@
 { stdenv, fetchFromGitHub, buildEnv
 , asio, boost, check, openssl, scons
-, version, sha256, ...
 }:
 
 let
-  pname = "mariadb-galera";
   galeraLibs = buildEnv {
     name = "galera-lib-inputs-united";
     paths = [ openssl.out boost check ];
   };
 
-in stdenv.mkDerivation {
-  inherit pname;
-  inherit version;
+in stdenv.mkDerivation rec {
+  pname = "mariadb-galera";
+  version = "26.4.5";
 
   src = fetchFromGitHub {
     owner = "codership";
     repo = "galera";
     rev = "release_${version}";
-    inherit sha256;
+    sha256 = "10sir0hxxglw9jsjrclfgrqm8n5zng6rwj2fgff141x9n9l55w7l";
     fetchSubmodules = true;
   };
 
@@ -40,7 +38,7 @@ in stdenv.mkDerivation {
 
   installPhase = ''
     # copied with modifications from scripts/packages/freebsd.sh
-    GALERA_LICENSE_DIR="$share/licenses/${pname}"
+    GALERA_LICENSE_DIR="$share/licenses/${pname}-${version}"
     install -d $out/{bin,lib/galera,share/doc/galera,$GALERA_LICENSE_DIR}
     install -m 555 "garb/garbd"                       "$out/bin/garbd"
     install -m 444 "libgalera_smm.so"                 "$out/lib/galera/libgalera_smm.so"
@@ -50,7 +48,6 @@ in stdenv.mkDerivation {
     install -m 444 "LICENSE"                          "$out/$GALERA_LICENSE_DIR/GPLv2"
     install -m 444 "asio/LICENSE_1_0.txt"             "$out/$GALERA_LICENSE_DIR/LICENSE.asio"
     install -m 444 "www.evanjones.ca/LICENSE"         "$out/$GALERA_LICENSE_DIR/LICENSE.crc32c"
-    install -m 444 "chromium/LICENSE"                 "$out/$GALERA_LICENSE_DIR/LICENSE.chromium"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/sql/monetdb/default.nix b/pkgs/servers/sql/monetdb/default.nix
index 5a58a52210a..9aec724ba62 100644
--- a/pkgs/servers/sql/monetdb/default.nix
+++ b/pkgs/servers/sql/monetdb/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  version = "11.35.19";
+  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 = "1qfgsv1k23sn6jl7jbxmfh7w7hyzmh8r1cddl4kksqrw41q6h82q";
+    sha256 = "0ch4vka64m5fbyah2730rcv7xpgy4hq26vbi8wd8mkadwna7azr5";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/sql/pgbouncer/default.nix b/pkgs/servers/sql/pgbouncer/default.nix
index 0a6d1a8cf61..e824298c488 100644
--- a/pkgs/servers/sql/pgbouncer/default.nix
+++ b/pkgs/servers/sql/pgbouncer/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pgbouncer";
-  version = "1.13.0";
+  version = "1.14.0";
 
   src = fetchurl {
     url = "https://pgbouncer.github.io/downloads/files/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0ccxr0hbj9h5pwsj2712mxif197j770qkfjv6na5aqh5bz4j3f2c";
+    sha256 = "1rzy06hqzhnijm32vah9icgrx95pmf9iglvyzwv7wmcg2h83vhd0";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix
index 8ba7e9c96cf..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.21";
+    version = "9.5.23";
     psqlSchema = "9.5";
-    sha256 = "0b3kzc0431bvp55jns42q9h1119gy075mp4aywnkq93pm17nxdby";
+    sha256 = "0rl31jc3kg2wq6hazyd297gnmx3cibjvivllbsivii2m6dzgl573";
     this = self.postgresql_9_5;
     inherit self;
   };
 
   postgresql_9_6 = self.callPackage generic {
-    version = "9.6.17";
+    version = "9.6.19";
     psqlSchema = "9.6";
-    sha256 = "1hm0w6n988n9qn2wylhjq02i5ayzb16rzhgkcv09fpsl68ny7qgn";
+    sha256 = "1c2wnl5bbpjs1s1rpzvlnzsqlpb0p823zw7s38nhpgnxrja3myb1";
     this = self.postgresql_9_6;
     inherit self;
   };
 
   postgresql_10 = self.callPackage generic {
-    version = "10.12";
+    version = "10.14";
     psqlSchema = "10.0"; # should be 10, but changing it is invasive
-    sha256 = "1rsab4zf4rx7pvvhlwhb04kb95aiad9cwazc4ksbvg2gij47z3rq";
+    sha256 = "0fxj30jvwq5pqpbj97vhlxgmn2ah59a78s9jyjr7vxyqj7sdh71q";
     this = self.postgresql_10;
     inherit self;
   };
 
   postgresql_11 = self.callPackage generic {
-    version = "11.7";
+    version = "11.9";
     psqlSchema = "11.1"; # should be 11, but changing it is invasive
-    sha256 = "04x343i4v0w4jf1v5ial8rwsizs1qhdjfbanbnibdys6i0xfjjij";
+    sha256 = "0db6pfphc5rp12abnkvv2l9pbl7bdyf3hhiwj8ghjwh35skqlq9m";
     this = self.postgresql_11;
     inherit self;
   };
 
   postgresql_12 = self.callPackage generic {
-    version = "12.2";
+    version = "12.4";
     psqlSchema = "12";
-    sha256 = "1pmmd59pvfs50gsi728bw9f1jl59xghsjdanfimph0659x6cq7dd";
+    sha256 = "1k06wryy8p4s1fim9qafcjlak3f58l0wqaqnrccr9x9j5jz3zsdy";
     this = self.postgresql_12;
     inherit self;
   };
diff --git a/pkgs/servers/sql/postgresql/ext/pg_ed25519.nix b/pkgs/servers/sql/postgresql/ext/pg_ed25519.nix
new file mode 100644
index 00000000000..95d45b2663d
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/pg_ed25519.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, postgresql }:
+
+stdenv.mkDerivation rec {
+  pname = "pg_ed25519";
+  version = "0.2";
+
+  src = fetchurl {
+    url = "https://gitlab.com/dwagin/${pname}/-/archive/${version}/${pname}-${version}.tar.bz2";
+    sha256 = "0q46pvk1vq5w3al6i3inzlw6w7za3n7p1gd4wfbbxzvzh7qnynda";
+  };
+
+  buildInputs = [ postgresql ];
+
+  installPhase = ''
+    mkdir -p $out/bin    # For buildEnv to setup proper symlinks. See #22653
+    mkdir -p $out/{lib,share/postgresql/extension}
+
+    cp *.so      $out/lib
+    cp *.sql     $out/share/postgresql/extension
+    cp *.control $out/share/postgresql/extension
+  '';
+
+  meta = with stdenv.lib; {
+    description = "PostgreSQL extension for signing and verifying ed25519 signatures";
+    homepage = "https://gitlab.com/dwagin/pg_ed25519";
+    maintainers = [ maintainers.renzo ];
+    platforms = postgresql.meta.platforms;
+    license = licenses.mit;
+  };
+}
+
diff --git a/pkgs/servers/sql/postgresql/ext/pg_partman.nix b/pkgs/servers/sql/postgresql/ext/pg_partman.nix
index 314e9275c8c..9a289919558 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_partman.nix
+++ b/pkgs/servers/sql/postgresql/ext/pg_partman.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pg_partman";
-  version = "4.3.1";
+  version = "4.4.0";
 
   buildInputs = [ postgresql ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner  = "pgpartman";
     repo   = pname;
     rev    = "refs/tags/v${version}";
-    sha256 = "12mfydlva05dczjhrw14xq9zr0hqqyszlwivvq2zj9h1p9agm7fn";
+    sha256 = "0wr2nivp0b8vk355rnv4bygiashq98q9zhfgdbxzhm7bgxd01rk2";
   };
 
   installPhase = ''
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 5f1b6b819e8..79e0e052122 100644
--- a/pkgs/servers/sql/postgresql/ext/pgrouting.nix
+++ b/pkgs/servers/sql/postgresql/ext/pgrouting.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchFromGitHub, postgresql, perl, cmake, boost, gmp, cgal, mpfr }:
+{ stdenv, fetchFromGitHub, postgresql, perl, cmake, boost }:
 
 stdenv.mkDerivation rec {
   pname = "pgrouting";
-  version = "2.6.3";
+  version = "3.0.2";
 
   nativeBuildInputs = [ cmake perl ];
-  buildInputs = [ postgresql boost gmp cgal mpfr ];
+  buildInputs = [ postgresql boost ];
 
   src = fetchFromGitHub {
     owner  = "pgRouting";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0jdjb8476vjgc7i26v2drcqjvhdbsk1wx243fddffg169nb664ml";
+    sha256 = "10ij3ww0081wc81jzvmkgl8r3qpqp7lcsi9pgn62bqd1c8dw88yg";
   };
 
   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 b0d3b5bead5..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}";
-    hash = "sha256-1CshcutjgwWCRxBfjlNGDLKMT5BYqb+sh4i+/E/YN38=";
+    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 cda9244e192..4e76fc35689 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.0";
+  version = "1.7.2";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ postgresql openssl ];
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     owner  = "timescale";
     repo   = "timescaledb";
     rev    = "refs/tags/${version}";
-    sha256 = "0n234ard9sldpbdqvbq2i48xyiyj8ljirsbspsax11f8yzy9ziac";
+    sha256 = "0xqyq3a43j2rav5n87lv1d0f66h9kqjnlxq5nq5d54h5g5qbsr3y";
   };
 
   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 15735a82c52..44e560a5f83 100644
--- a/pkgs/servers/sql/postgresql/packages.nix
+++ b/pkgs/servers/sql/postgresql/packages.nix
@@ -13,12 +13,16 @@ self: super: {
 
     pg_bigm = super.callPackage ./ext/pg_bigm.nix { };
 
+    pg_ed25519 = super.callPackage ./ext/pg_ed25519.nix { };
+
     pg_repack = super.callPackage ./ext/pg_repack.nix { };
 
     pg_similarity = super.callPackage ./ext/pg_similarity.nix { };
 
     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;
@@ -39,6 +43,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..d14252da999 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.12";
 
   src = fetchurl {
     url = "http://www.squid-cache.org/Versions/v4/${pname}-${version}.tar.xz";
-    sha256 = "0z986kykx539wjqd7mr8y0abf3z6hz8byf8fmmbky9hh4ihlgnaf";
+    sha256 = "05z34ysy2zn7as11vd365xxhh36bm1ysiwcbr0i0f0nwng406apl";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/servers/sslh/default.nix b/pkgs/servers/sslh/default.nix
index cbeacece3e1..5be4805909d 100644
--- a/pkgs/servers/sslh/default.nix
+++ b/pkgs/servers/sslh/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, libcap, libconfig, perl, tcp_wrappers, pcre }:
+{ stdenv, fetchurl, libcap, libconfig, perl, tcp_wrappers, pcre, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "sslh";
-  version = "1.20";
+  version = "1.21";
 
   src = fetchurl {
     url = "https://www.rutschle.net/tech/sslh/sslh-v${version}.tar.gz";
-    sha256 = "05jihpjxx094h7hqzgd9v5jmy77ipwrakzzmjyfvpdzw3h59px57";
+    sha256 = "1am63nslvv9xkbn9xavpf1zl6f7g1snz8cvnzlya7dq4la4y97d7";
   };
 
   postPatch = "patchShebangs *.sh";
@@ -19,6 +19,10 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
+  passthru.tests = {
+    inherit (nixosTests) sslh;
+  };
+
   meta = with stdenv.lib; {
     description = "Applicative Protocol Multiplexer (e.g. share SSH and HTTPS on the same port)";
     license = licenses.gpl2Plus;
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 24a8aa66151..863dc505032 100644
--- a/pkgs/servers/tailscale/default.nix
+++ b/pkgs/servers/tailscale/default.nix
@@ -2,23 +2,23 @@
 
 buildGoModule rec {
   pname = "tailscale";
-  version = "0.97-219";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "tailscale";
     repo = "tailscale";
-    # Tailscale uses "git describe" as version numbers. v0.97-219
-    # means "tag v0.97 plus 219 commits", which is what this rev is.
-    rev = "afbfe4f217a2a202f0eefe943c7c1ef648311339";
-    sha256 = "1an897ys3gycdmclqd0yqs9f7q88zxqxyc6r0gcgs4678svxhb68";
+    rev = "v${version}";
+    sha256 = "1m3cfq4qyg2l0hpk8s7nr8cw2j7akiga7x8bwyhdjifnkwsyz6x7";
   };
 
   nativeBuildInputs = [ makeWrapper ];
 
   CGO_ENABLED = 0;
 
-  goPackagePath = "tailscale.com";
-  modSha256 = "1xgdhbck3pkix10lfshzdszrv6d3p0hbx8jdjvswz7jjd0vzm4x1";
+  vendorSha256 = "0l9lzwwvshg9a2kmmq1cvvlaxncbas78a9hjhvjjar89rjr2k2sv";
+
+  doCheck = false;
+
   subPackages = [ "cmd/tailscale" "cmd/tailscaled" ];
 
   postInstall = ''
diff --git a/pkgs/servers/tautulli/default.nix b/pkgs/servers/tautulli/default.nix
index 73b0a57b694..ff2f993ecc1 100644
--- a/pkgs/servers/tautulli/default.nix
+++ b/pkgs/servers/tautulli/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchFromGitHub, python }:
 
 stdenv.mkDerivation rec {
-  version = "2.2.1";
+  version = "2.2.4";
   pname = "Tautulli";
 
   pythonPath = [ python.pkgs.setuptools ];
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     owner = "Tautulli";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vcm9xjywy0c8lb37vdrn9payn80isij09lqkam37j08v5y64ln7";
+    sha256 = "0yg7r7yscx6jbs1lnl9nbax3v9r6ppvhr4igdm3gbvd2803j8fs7";
   };
 
   buildPhase = ":";
diff --git a/pkgs/servers/tegola/default.nix b/pkgs/servers/tegola/default.nix
index 7dc32972fe4..24e25f0c137 100644
--- a/pkgs/servers/tegola/default.nix
+++ b/pkgs/servers/tegola/default.nix
@@ -2,16 +2,15 @@
 
 buildGoPackage rec {
   pname = "tegola";
-  version = "0.8.1";
-  rev = "8b2675a63624ad1d69a8d2c84a6a3f3933e25ca1";
+  version = "0.11.2";
 
   goPackagePath = "github.com/go-spatial/tegola";
 
   src = fetchFromGitHub {
     owner = "go-spatial";
-    repo = "tegola";
-    inherit rev;
-    sha256 = "1f70vsrj3i1d0kg76a8s741nps71hrglgyyrz2xm6a8b31w833pi";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0xrjs0py08q9i31rl0cxi6idncrrgqwcspqks3c5vd9i65yqc6fv";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/teleport/default.nix b/pkgs/servers/teleport/default.nix
index 1e1c0f938db..b307f7861fa 100644
--- a/pkgs/servers/teleport/default.nix
+++ b/pkgs/servers/teleport/default.nix
@@ -3,14 +3,14 @@
 
 buildGoPackage rec {
   pname = "teleport";
-  version = "4.1.0";
+  version = "4.2.11";
 
   # This repo has a private submodule "e" which fetchgit cannot handle without failing.
   src = fetchFromGitHub {
     owner = "gravitational";
     repo = "teleport";
     rev = "v${version}";
-    sha256 = "1yj4z9lzvwvv566d8c4351xj23vmw8zh9scx87dlf0qzqxri91wk";
+    sha256 = "00mkh6rmdgwwhbk3jmxgwl0aisnnqw6q6i5zl1hn69hvdny9liii";
   };
 
   goPackagePath = "github.com/gravitational/teleport";
diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix
index 40b85fc949e..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";
   };
 
-  modSha256 = "17imp24abfgh75g8161daknzqzk2m19q9d1mij6487046lk75hqz";
+  vendorSha256 = "0kz7y64k07vlybzfjg6709fdy7krqlv1gkk01nvhs84sk8bnrcvn";
+
+  doCheck = false;
+
   subPackages = [ "cmd/traefik" ];
 
   nativeBuildInputs = [ go-bindata ];
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/ttyd/default.nix b/pkgs/servers/ttyd/default.nix
index b7fac5fc477..ef830710c1c 100644
--- a/pkgs/servers/ttyd/default.nix
+++ b/pkgs/servers/ttyd/default.nix
@@ -7,12 +7,12 @@ with builtins;
 
 stdenv.mkDerivation rec {
   pname = "ttyd";
-  version = "1.6.0";
+  version = "1.6.1";
   src = fetchFromGitHub {
     owner = "tsl0922";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "08skw3h897jb71sbnglj571h35pcb1mikzlh71sx5imjgi4hfczr";
+    sha256 = "1ifgw93g8jaaa6fgfqjnn83n5ccr6l72ynwwwa97hfwjk90r14fg";
   };
 
   nativeBuildInputs = [ pkgconfig cmake xxd ];
diff --git a/pkgs/servers/tvheadend/default.nix b/pkgs/servers/tvheadend/default.nix
index 009dd9bfc43..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, libiconv, openssl, python
-, which, zlib }:
+, avahi, dbus, gettext, git, gnutar, gzip, bzip2, ffmpeg_3, libiconv, openssl, python
+, 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;
@@ -17,7 +29,7 @@ in stdenv.mkDerivation {
   };
 
   buildInputs = [
-    avahi dbus gettext git gnutar gzip bzip2 ffmpeg libiconv openssl python
+    avahi dbus gettext git gnutar gzip bzip2 ffmpeg_3 libiconv openssl python
     which zlib
   ];
 
@@ -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 3d49d4d71b5..61f07f01bf2 100644
--- a/pkgs/servers/unifi/default.nix
+++ b/pkgs/servers/unifi/default.nix
@@ -49,7 +49,7 @@ in {
   };
 
   unifiStable = generic {
-    version = "5.12.66";
-    sha256 = "119jdwk2ys3vzg9wa4h25rwgl6sjly6v52k1g1ycrq0bspzxdhm2";
+    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 0321f745833..be0c3ab72c7 100644
--- a/pkgs/servers/web-apps/cryptpad/bower-packages.nix
+++ b/pkgs/servers/web-apps/cryptpad/bower-packages.nix
@@ -1,40 +1,42 @@
 # Generated by bower2nix v3.2.0 (https://github.com/rvl/bower2nix)
 { fetchbower, buildEnv }:
 buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
-  (fetchbower "jquery" "2.1.0" "~2.1.0" "sha256-mVqtu4tv66a4WT9mztU5UAKqxm9An2sxCPv+PdLffAo=")
+  (fetchbower "jquery" "2.1.0" "~2.1.0" "02kwvz93vzpv10qnp7s0dz3al0jh77awwrizb6wadsvgifxssnlr")
   (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" "sha256-IaC09U2JVjflgcZQ3GbmNnwCUGv+TTnyXb+eixSXcBk=")
-  (fetchbower "bootstrap" "4.4.1" "^v4.0.0" "0a3y5s6236jjw0ppzwdysf5mn87308ndadw1rgwgwswr9cgkz2ak")
+  (fetchbower "bootstrap" "3.1.1" "~3.1.1" "06bhjwa8p7mzbpr3jkgydd804z1nwrkdql66h7jkfml99psv9811")
+  (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 8581f7095cc..349ad59c60a 100644
--- a/pkgs/servers/web-apps/cryptpad/node-packages-generated.nix
+++ b/pkgs/servers/web-apps/cryptpad/node-packages-generated.nix
@@ -58,13 +58,13 @@ let
         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 = "vHOKQIyd7Jz3dspS6p3nmrFLNNByQJyHwlfZiAjnNykpKC6ncNamjBokT6+ZHE9MHHNWOPflv3sg3PMDyZohQw==";
+        url = "https://registry.npmjs.org/chainpad-server/-/chainpad-server-4.0.9.tgz";
+        sha512 = "8h1W41ktE05TM6LuXrklpW2TUxWeNyIDiRaQygKsXaA/7pyJxF7+AmPVS+xW0c31VkHjQDPiaMzPoxhcxXnIyA==";
       };
     };
     "content-disposition-0.5.2" = {
@@ -229,13 +229,13 @@ let
         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 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==";
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
+        sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
       };
     };
     "http-errors-1.6.3" = {
@@ -337,22 +337,22 @@ let
         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 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==";
+        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 = "01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
+        sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
       };
     };
     "ms-2.0.0" = {
@@ -581,6 +581,15 @@ let
         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" = {
       name = "ultron";
       packageName = "ultron";
@@ -638,14 +647,14 @@ let
   };
 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 f12a75c8e18..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 = [ maintainers."1000101" ];
+    maintainers = with maintainers; [ _1000101 ];
   };
 }
diff --git a/pkgs/servers/web-apps/engelsystem/default.nix b/pkgs/servers/web-apps/engelsystem/default.nix
new file mode 100644
index 00000000000..8ef6a9afa0e
--- /dev/null
+++ b/pkgs/servers/web-apps/engelsystem/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchzip, php, writeText, nixosTests }:
+
+let
+  phpExt = php.withExtensions
+    ({ enabled, all }: with all; [ json filter mysqlnd mysqli pdo pdo_mysql ]);
+in stdenv.mkDerivation rec {
+  pname = "engelsystem";
+  version = "3.1.0";
+
+  src = fetchzip {
+    url =
+      "https://github.com/engelsystem/engelsystem/releases/download/v3.1.0/engelsystem-v3.1.0.zip";
+    sha256 = "01wra7li7n5kn1l6xkrmw4vlvvyqh089zs43qzn98hj0mw8gw7ai";
+    # This is needed, because the zip contains a directory with world write access, which is not allowed in nix
+    extraPostFetch = "chmod -R a-w $out";
+  };
+
+  buildInputs = [ phpExt ];
+
+  installPhase = ''
+    runHook preInstall
+
+    # prepare
+    rm -r ./storage/
+    rm -r ./docker/
+
+    ln -sf /etc/engelsystem/config.php ./config/config.php
+    ln -sf /var/lib/engelsystem/storage/ ./storage
+
+    mkdir -p $out/share/engelsystem
+    mkdir -p $out/bin
+    cp -r . $out/share/engelsystem
+
+    echo $(command -v php)
+    # The patchShebangAuto function always used the php without extensions, so path the shebang manually
+    sed -i -e "1 s|.*|#\!${phpExt}/bin/php|" "$out/share/engelsystem/bin/migrate"
+    ln -s "$out/share/engelsystem/bin/migrate" "$out/bin/migrate"
+
+    runHook postInstall
+  '';
+
+  passthru.tests = nixosTests.engelsystem;
+
+  meta = with stdenv.lib; {
+    description =
+      "Coordinate your helpers in teams, assign them to work shifts or let them decide for themselves when and where they want to help with what";
+    license = licenses.gpl2;
+    homepage = "https://engelsystem.de";
+    maintainers = with maintainers; [ kloenk ];
+    platforms = platforms.all;
+  };
+}
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 98bd8e0027f..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.2";
+  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 = "134vxsbslk7sfalmgcp744aygaxz2k080d14j8nkivk9zhplds53";
+    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 d0ff1391796..dc87acddd88 100644
--- a/pkgs/servers/web-apps/searx/default.nix
+++ b/pkgs/servers/web-apps/searx/default.nix
@@ -1,36 +1,21 @@
-{ lib, python3Packages, fetchFromGitHub }:
+{ lib, python3Packages, fetchFromGitHub, fetchpatch }:
 
 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";
   };
 
   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'
-    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 dd4cdc08287..45b93bf1ad5 100644
--- a/pkgs/servers/web-apps/shiori/default.nix
+++ b/pkgs/servers/web-apps/shiori/default.nix
@@ -4,7 +4,9 @@ buildGoModule rec {
   pname = "shiori";
   version = "1.5.0";
 
-  modSha256 = "1z6q5lv0j433p8lc3nxlw1rds5x1kvs1vzl63jf3disxw7ppyai3";
+  vendorSha256 = "1ik5faysc880kz7nymvbmjj006l1fsqfy76036szwzg314v78643";
+
+  doCheck = false;
 
   src = fetchFromGitHub {
     owner = "go-shiori";
diff --git a/pkgs/servers/web-apps/sogo/default.nix b/pkgs/servers/web-apps/sogo/default.nix
new file mode 100644
index 00000000000..3e78b5d9d43
--- /dev/null
+++ b/pkgs/servers/web-apps/sogo/default.nix
@@ -0,0 +1,76 @@
+{ gnustep, lib, fetchFromGitHub, fetchpatch, makeWrapper, python2, lndir
+, openssl_1_1, openldap, sope, libmemcached, curl }: with lib; gnustep.stdenv.mkDerivation rec {
+  pname = "SOGo";
+  version = "4.3.2";
+
+  src = fetchFromGitHub {
+    owner = "inverse-inc";
+    repo = pname;
+    rev = "SOGo-${version}";
+    sha256 = "1xxad23a8zy6w850x5nrrf54db0x73lc9drmc5kpfk870fk2lmr0";
+  };
+
+  nativeBuildInputs = [ gnustep.make makeWrapper python2 ];
+  buildInputs = [ gnustep.base sope openssl_1_1 libmemcached (curl.override { openssl = openssl_1_1; }) ]
+    ++ 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";
+    })
+  ];
+
+  postPatch = ''
+    # Exclude NIX_ variables
+    sed -i 's/grep GNUSTEP_/grep ^GNUSTEP_/g' configure
+
+    # Disable argument verification because $out is not a GNUStep prefix
+    sed -i 's/^validateArgs$//g' configure
+
+    # Patch exception-generating python scripts
+    patchShebangs .
+
+    # Move all GNUStep makefiles to a common directory
+    mkdir -p makefiles
+    cp -r {${gnustep.make},${sope}}/share/GNUstep/Makefiles/* makefiles
+
+    # Modify the search path for GNUStep makefiles
+    find . -type f -name GNUmakefile -exec sed -i "s:\\$.GNUSTEP_MAKEFILES.:$PWD/makefiles:g" {} +
+  '';
+
+  configureFlags = [ "--disable-debug" "--with-ssl=ssl" ];
+
+  preFixup = ''
+    # Create gnustep.conf
+    mkdir -p $out/share/GNUstep
+    cp ${gnustep.make}/etc/GNUstep/GNUstep.conf $out/share/GNUstep/
+    sed -i "s:${gnustep.make}:$out:g" $out/share/GNUstep/GNUstep.conf
+
+    # Link in GNUstep base
+    ${lndir}/bin/lndir ${gnustep.base}/lib/GNUstep/ $out/lib/GNUstep/
+
+    # Link in sope
+    ${lndir}/bin/lndir ${sope}/ $out/
+
+    # sbin fixup
+    mkdir -p $out/bin
+    mv $out/sbin/* $out/bin
+    rmdir $out/sbin
+
+    # Make sogo find its files
+    for bin in $out/bin/*; do
+      wrapProgram $bin --prefix LD_LIBRARY_PATH : $out/lib/sogo --prefix GNUSTEP_CONFIG_FILE : $out/share/GNUstep/GNUstep.conf
+    done
+  '';
+
+  meta = {
+    description = "SOGo is a very fast and scalable modern collaboration suite (groupware)";
+    license = with licenses; [ gpl2 lgpl21 ];
+    homepage = "https://sogo.nu/";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ ajs124 das_j ];
+  };
+}
+
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/web-apps/wordpress/default.nix b/pkgs/servers/web-apps/wordpress/default.nix
index ca4b5d832a6..e1a14ca59d4 100644
--- a/pkgs/servers/web-apps/wordpress/default.nix
+++ b/pkgs/servers/web-apps/wordpress/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "wordpress";
-  version = "5.4.1";
+  version = "5.4.2";
 
   src = fetchurl {
     url = "https://wordpress.org/${pname}-${version}.tar.gz";
-    sha256 = "0i9ndfhm9iwilqwbqs3dngmzzjmazw4vwbyccjabs3zmzliis6vv";
+    sha256 = "1pnl11yws2r2d5dfq0z85zcy5ilvm298bfs7h9z1sjakkwkh5sph";
   };
 
   installPhase = ''
@@ -14,6 +14,10 @@ stdenv.mkDerivation rec {
     cp -r . $out/share/wordpress
   '';
 
+  passthru.tests = {
+    inherit (nixosTests) wordpress;
+  };
+
   meta = with stdenv.lib; {
     homepage = "https://wordpress.org";
     description = "WordPress is open source software you can use to create a beautiful website, blog, or app";
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/prosody/default.nix b/pkgs/servers/xmpp/prosody/default.nix
index 702da004b42..0a0cc9aeaf9 100644
--- a/pkgs/servers/xmpp/prosody/default.nix
+++ b/pkgs/servers/xmpp/prosody/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, lib, libidn, openssl, makeWrapper, fetchhg
 , lua5, luasocket, luasec, luaexpat, luafilesystem, luabitop
+, nixosTests
 , withLibevent ? true, luaevent ? null
 , withDBI ? true, luadbi ? null
 # use withExtraLibs to add additional dependencies of community modules
@@ -36,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 = [
@@ -71,7 +72,13 @@ stdenv.mkDerivation rec {
         --prefix LUA_CPATH ';' "$LUA_CPATH"
     '';
 
-  passthru.communityModules = withCommunityModules;
+  passthru = {
+    communityModules = withCommunityModules;
+    tests = {
+      main = nixosTests.prosody;
+      mysql = nixosTests.prosodyMysql;
+    };
+  };
 
   meta = {
     description = "Open-source XMPP application server written in Lua";
diff --git a/pkgs/servers/zigbee2mqtt/default.nix b/pkgs/servers/zigbee2mqtt/default.nix
new file mode 100644
index 00000000000..ad351c89a66
--- /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.2";
+  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 = "0yv51rds28az5pqzgkprhrzwmky29l1mvqb73l7dbs8qlx8x1x52";
+  };
+
+  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..df818634036
--- /dev/null
+++ b/pkgs/servers/zigbee2mqtt/node-packages.nix
@@ -0,0 +1,9739 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+  sources = {
+    "@babel/cli-7.10.4" = {
+      name = "_at_babel_slash_cli";
+      packageName = "@babel/cli";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.10.4.tgz";
+        sha512 = "xX99K4V1BzGJdQANK5cwK+EpF1vP9gvqhn+iWvG+TubCjecplW7RSQimJ2jcCvu6fnK5pY6mZMdu6EWTj32QVA==";
+      };
+    };
+    "@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.10.4" = {
+      name = "_at_babel_slash_compat-data";
+      packageName = "@babel/compat-data";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.4.tgz";
+        sha512 = "t+rjExOrSVvjQQXNp5zAIYDp00KjdvGl/TpDX5REPr0S9IAIPQMTilcfG6q8c0QFmj9lSTVySV2VTsyggvtNIw==";
+      };
+    };
+    "@babel/core-7.10.4" = {
+      name = "_at_babel_slash_core";
+      packageName = "@babel/core";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.10.4.tgz";
+        sha512 = "3A0tS0HWpy4XujGc7QtOIHTeNwUgWaZc/WuS5YQrfhU67jnVmsD6OGPc1AKHH0LJHQICGncy3+YUjIhVlfDdcA==";
+      };
+    };
+    "@babel/core-7.10.5" = {
+      name = "_at_babel_slash_core";
+      packageName = "@babel/core";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.10.5.tgz";
+        sha512 = "O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==";
+      };
+    };
+    "@babel/generator-7.10.4" = {
+      name = "_at_babel_slash_generator";
+      packageName = "@babel/generator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz";
+        sha512 = "toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==";
+      };
+    };
+    "@babel/generator-7.10.5" = {
+      name = "_at_babel_slash_generator";
+      packageName = "@babel/generator";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz";
+        sha512 = "3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==";
+      };
+    };
+    "@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.4" = {
+      name = "_at_babel_slash_helper-create-class-features-plugin";
+      packageName = "@babel/helper-create-class-features-plugin";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.4.tgz";
+        sha512 = "9raUiOsXPxzzLjCXeosApJItoMnX3uyT4QdM2UldffuGApNrF8e938MwNpDCK9CPoyxrEoCgT+hObJc3mZa6lQ==";
+      };
+    };
+    "@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.4" = {
+      name = "_at_babel_slash_helper-define-map";
+      packageName = "@babel/helper-define-map";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.4.tgz";
+        sha512 = "nIij0oKErfCnLUCWaCaHW0Bmtl2RO9cN7+u2QT8yqTywgALKlyUVOvHDElh+b5DwVC6YB1FOYFOTWcN/+41EDA==";
+      };
+    };
+    "@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.4";
+      src = fetchurl {
+        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.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.10.4" = {
+      name = "_at_babel_slash_helper-member-expression-to-functions";
+      packageName = "@babel/helper-member-expression-to-functions";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.4.tgz";
+        sha512 = "m5j85pK/KZhuSdM/8cHUABQTAslV47OjfIB9Cc7P+PvlAoBzdb79BGNfw8RhT5Mq3p+xGd0ZfAKixbrUZx0C7A==";
+      };
+    };
+    "@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.5";
+      src = fetchurl {
+        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.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.10.4" = {
+      name = "_at_babel_slash_helper-module-transforms";
+      packageName = "@babel/helper-module-transforms";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.4.tgz";
+        sha512 = "Er2FQX0oa3nV7eM1o0tNCTx7izmQtwAQsIiaLRWtavAAEcskb0XJ5OjJbVrYXWOTr8om921Scabn4/tzlx7j1Q==";
+      };
+    };
+    "@babel/helper-module-transforms-7.10.5" = {
+      name = "_at_babel_slash_helper-module-transforms";
+      packageName = "@babel/helper-module-transforms";
+      version = "7.10.5";
+      src = fetchurl {
+        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.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.4" = {
+      name = "_at_babel_slash_helper-regex";
+      packageName = "@babel/helper-regex";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.4.tgz";
+        sha512 = "inWpnHGgtg5NOF0eyHlC0/74/VkdRITY9dtTpB2PrxKKn+AkVMRiZz/Adrx+Ssg+MLDesi2zohBW6MVq6b4pOQ==";
+      };
+    };
+    "@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.4";
+      src = fetchurl {
+        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.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-split-export-declaration-7.10.4" = {
+      name = "_at_babel_slash_helper-split-export-declaration";
+      packageName = "@babel/helper-split-export-declaration";
+      version = "7.10.4";
+      src = fetchurl {
+        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.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.10.4" = {
+      name = "_at_babel_slash_parser";
+      packageName = "@babel/parser";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz";
+        sha512 = "8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==";
+      };
+    };
+    "@babel/parser-7.10.5" = {
+      name = "_at_babel_slash_parser";
+      packageName = "@babel/parser";
+      version = "7.10.5";
+      src = fetchurl {
+        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.4" = {
+      name = "_at_babel_slash_plugin-proposal-async-generator-functions";
+      packageName = "@babel/plugin-proposal-async-generator-functions";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.4.tgz";
+        sha512 = "MJbxGSmejEFVOANAezdO39SObkURO5o/8b6fSH6D1pi9RZQt+ldppKPXfqgUWpSQ9asM6xaSaSJIaeWMDRP0Zg==";
+      };
+    };
+    "@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-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-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.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-object-rest-spread";
+      packageName = "@babel/plugin-proposal-object-rest-spread";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz";
+        sha512 = "6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==";
+      };
+    };
+    "@babel/plugin-proposal-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.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-optional-chaining";
+      packageName = "@babel/plugin-proposal-optional-chaining";
+      version = "7.10.4";
+      src = fetchurl {
+        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-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-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.10.4" = {
+      name = "_at_babel_slash_plugin-transform-block-scoping";
+      packageName = "@babel/plugin-transform-block-scoping";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.4.tgz";
+        sha512 = "J3b5CluMg3hPUii2onJDRiaVbPtKFPLEaV5dOPY5OeAbDi1iU/UbbFFTgwb7WnanaDy7bjU35kc26W3eM5Qa0A==";
+      };
+    };
+    "@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.4" = {
+      name = "_at_babel_slash_plugin-transform-modules-amd";
+      packageName = "@babel/plugin-transform-modules-amd";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.4.tgz";
+        sha512 = "3Fw+H3WLUrTlzi3zMiZWp3AR4xadAEMv6XRCYnd5jAlLM61Rn+CRJaZMaNvIpcJpQ3vs1kyifYvEVPFfoSkKOA==";
+      };
+    };
+    "@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.4" = {
+      name = "_at_babel_slash_plugin-transform-modules-systemjs";
+      packageName = "@babel/plugin-transform-modules-systemjs";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.4.tgz";
+        sha512 = "Tb28LlfxrTiOTGtZFsvkjpyjCl9IoaRI52AEU/VIwOwvDQWtbNJsAqTXzh+5R7i74e/OZHH2c2w2fsOqAfnQYQ==";
+      };
+    };
+    "@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.4" = {
+      name = "_at_babel_slash_plugin-transform-parameters";
+      packageName = "@babel/plugin-transform-parameters";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.4.tgz";
+        sha512 = "RurVtZ/D5nYfEg0iVERXYKEgDFeesHrHfx8RT05Sq57ucj2eOYAP6eu5fynL4Adju4I/mP/I6SO0DqNWAXjfLQ==";
+      };
+    };
+    "@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.10.4" = {
+      name = "_at_babel_slash_plugin-transform-spread";
+      packageName = "@babel/plugin-transform-spread";
+      version = "7.10.4";
+      src = fetchurl {
+        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.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.4" = {
+      name = "_at_babel_slash_plugin-transform-template-literals";
+      packageName = "@babel/plugin-transform-template-literals";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.4.tgz";
+        sha512 = "4NErciJkAYe+xI5cqfS8pV/0ntlY5N5Ske/4ImxAVX7mk9Rxt2bwDTGv1Msc2BRJvWQcmYEC+yoMLdX22aE4VQ==";
+      };
+    };
+    "@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.10.4" = {
+      name = "_at_babel_slash_plugin-transform-typescript";
+      packageName = "@babel/plugin-transform-typescript";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.10.4.tgz";
+        sha512 = "3WpXIKDJl/MHoAN0fNkSr7iHdUMHZoppXjf2HJ9/ed5Xht5wNIsXllJXdityKOxeA3Z8heYRb1D3p2H5rfCdPw==";
+      };
+    };
+    "@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.10.4" = {
+      name = "_at_babel_slash_preset-env";
+      packageName = "@babel/preset-env";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.4.tgz";
+        sha512 = "tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==";
+      };
+    };
+    "@babel/preset-modules-0.1.3" = {
+      name = "_at_babel_slash_preset-modules";
+      packageName = "@babel/preset-modules";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz";
+        sha512 = "Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==";
+      };
+    };
+    "@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.10.4" = {
+      name = "_at_babel_slash_runtime";
+      packageName = "@babel/runtime";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz";
+        sha512 = "UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==";
+      };
+    };
+    "@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.10.4" = {
+      name = "_at_babel_slash_traverse";
+      packageName = "@babel/traverse";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.4.tgz";
+        sha512 = "aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q==";
+      };
+    };
+    "@babel/traverse-7.10.5" = {
+      name = "_at_babel_slash_traverse";
+      packageName = "@babel/traverse";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz";
+        sha512 = "yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==";
+      };
+    };
+    "@babel/types-7.10.4" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz";
+        sha512 = "UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==";
+      };
+    };
+    "@babel/types-7.10.5" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz";
+        sha512 = "ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==";
+      };
+    };
+    "@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.1.0" = {
+      name = "_at_jest_slash_console";
+      packageName = "@jest/console";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/console/-/console-26.1.0.tgz";
+        sha512 = "+0lpTHMd/8pJp+Nd4lyip+/Iyf2dZJvcCqrlkeZQoQid+JlThA4M9vxHtheyrQ99jJTMQam+es4BcvZ5W5cC3A==";
+      };
+    };
+    "@jest/core-26.1.0" = {
+      name = "_at_jest_slash_core";
+      packageName = "@jest/core";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/core/-/core-26.1.0.tgz";
+        sha512 = "zyizYmDJOOVke4OO/De//aiv8b07OwZzL2cfsvWF3q9YssfpcKfcnZAwDY8f+A76xXSMMYe8i/f/LPocLlByfw==";
+      };
+    };
+    "@jest/environment-26.1.0" = {
+      name = "_at_jest_slash_environment";
+      packageName = "@jest/environment";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/environment/-/environment-26.1.0.tgz";
+        sha512 = "86+DNcGongbX7ai/KE/S3/NcUVZfrwvFzOOWX/W+OOTvTds7j07LtC+MgGydH5c8Ri3uIrvdmVgd1xFD5zt/xA==";
+      };
+    };
+    "@jest/fake-timers-26.1.0" = {
+      name = "_at_jest_slash_fake-timers";
+      packageName = "@jest/fake-timers";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.1.0.tgz";
+        sha512 = "Y5F3kBVWxhau3TJ825iuWy++BAuQzK/xEa+wD9vDH3RytW9f2DbMVodfUQC54rZDX3POqdxCgcKdgcOL0rYUpA==";
+      };
+    };
+    "@jest/globals-26.1.0" = {
+      name = "_at_jest_slash_globals";
+      packageName = "@jest/globals";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/globals/-/globals-26.1.0.tgz";
+        sha512 = "MKiHPNaT+ZoG85oMaYUmGHEqu98y3WO2yeIDJrs2sJqHhYOy3Z6F7F/luzFomRQ8SQ1wEkmahFAz2291Iv8EAw==";
+      };
+    };
+    "@jest/reporters-26.1.0" = {
+      name = "_at_jest_slash_reporters";
+      packageName = "@jest/reporters";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/reporters/-/reporters-26.1.0.tgz";
+        sha512 = "SVAysur9FOIojJbF4wLP0TybmqwDkdnFxHSPzHMMIYyBtldCW9gG+Q5xWjpMFyErDiwlRuPyMSJSU64A67Pazg==";
+      };
+    };
+    "@jest/source-map-26.1.0" = {
+      name = "_at_jest_slash_source-map";
+      packageName = "@jest/source-map";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/source-map/-/source-map-26.1.0.tgz";
+        sha512 = "XYRPYx4eEVX15cMT9mstnO7hkHP3krNtKfxUYd8L7gbtia8JvZZ6bMzSwa6IQJENbudTwKMw5R1BePRD+bkEmA==";
+      };
+    };
+    "@jest/test-result-26.1.0" = {
+      name = "_at_jest_slash_test-result";
+      packageName = "@jest/test-result";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/test-result/-/test-result-26.1.0.tgz";
+        sha512 = "Xz44mhXph93EYMA8aYDz+75mFbarTV/d/x0yMdI3tfSRs/vh4CqSxgzVmCps1fPkHDCtn0tU8IH9iCKgGeGpfw==";
+      };
+    };
+    "@jest/test-sequencer-26.1.0" = {
+      name = "_at_jest_slash_test-sequencer";
+      packageName = "@jest/test-sequencer";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.1.0.tgz";
+        sha512 = "Z/hcK+rTq56E6sBwMoQhSRDVjqrGtj1y14e2bIgcowARaIE1SgOanwx6gvY4Q9gTKMoZQXbXvptji+q5GYxa6Q==";
+      };
+    };
+    "@jest/transform-26.1.0" = {
+      name = "_at_jest_slash_transform";
+      packageName = "@jest/transform";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/transform/-/transform-26.1.0.tgz";
+        sha512 = "ICPm6sUXmZJieq45ix28k0s+d/z2E8CHDsq+WwtWI6kW8m7I8kPqarSEcUN86entHQ570ZBRci5OWaKL0wlAWw==";
+      };
+    };
+    "@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.1.0" = {
+      name = "_at_jest_slash_types";
+      packageName = "@jest/types";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/types/-/types-26.1.0.tgz";
+        sha512 = "GXigDDsp6ZlNMhXQDeuy/iYCDsRIHJabWtDzvnn36+aqFfG14JmFV0e/iXxY4SP9vbXSiPNOWdehU5MeqrYHBQ==";
+      };
+    };
+    "@serialport/binding-abstract-9.0.0" = {
+      name = "_at_serialport_slash_binding-abstract";
+      packageName = "@serialport/binding-abstract";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/binding-abstract/-/binding-abstract-9.0.0.tgz";
+        sha512 = "ZU+6ZypP33Rzda1cDnpN0+CNfnODwbRU66GBawNtj2+xE+OMI7a0hbuZAYvQ+BThyDfdX/vn55P1YYeVWI8qpQ==";
+      };
+    };
+    "@serialport/binding-mock-9.0.0" = {
+      name = "_at_serialport_slash_binding-mock";
+      packageName = "@serialport/binding-mock";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-9.0.0.tgz";
+        sha512 = "E65ZbykGwZSoHpQvjuJkTbwEM0uZku+SROtO+VMs/mShMalBnOSoRDU2IedkFKvz6IqowZZOVyaBUbnKYoAUuQ==";
+      };
+    };
+    "@serialport/bindings-9.0.0" = {
+      name = "_at_serialport_slash_bindings";
+      packageName = "@serialport/bindings";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/bindings/-/bindings-9.0.0.tgz";
+        sha512 = "2LoYX80h5U8uIgpPaBXpIhs9uXIPhn6k+9u0FH3mFPHHeJ/tyVliwbj7uxdQ6xAUe5Zf3T2cH9JC/LnxewWyuw==";
+      };
+    };
+    "@serialport/parser-byte-length-9.0.0" = {
+      name = "_at_serialport_slash_parser-byte-length";
+      packageName = "@serialport/parser-byte-length";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-9.0.0.tgz";
+        sha512 = "MaXWTqxz9SeWaN488uFhDMA3cy2sQFoGHDQqDpy6q9wBGlPBe+UpRAznzOoNPkAehqyPo1Vc7gxYsBfgjZtWaw==";
+      };
+    };
+    "@serialport/parser-cctalk-9.0.0" = {
+      name = "_at_serialport_slash_parser-cctalk";
+      packageName = "@serialport/parser-cctalk";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-9.0.0.tgz";
+        sha512 = "tFJRF+uceEMYQeOLi92CYr1SScnI+2QLkawNHaVwwcmLV0ezwmsm1hvwBCWHkWDsY6U1SiElNJ5HpF89kS28zQ==";
+      };
+    };
+    "@serialport/parser-delimiter-9.0.0" = {
+      name = "_at_serialport_slash_parser-delimiter";
+      packageName = "@serialport/parser-delimiter";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-9.0.0.tgz";
+        sha512 = "OesbvlJf1BjFC1zde6cnW1RttxZ8BoXGCOiNvM9mLKdvJ06l9o/4HyVCg2bymj6ziy/gz4407pwyPfvVYApE3A==";
+      };
+    };
+    "@serialport/parser-readline-9.0.0" = {
+      name = "_at_serialport_slash_parser-readline";
+      packageName = "@serialport/parser-readline";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-9.0.0.tgz";
+        sha512 = "JMCqfn6A+BzcCc/4upYeLB48zijBJmOO/YGcyilXgCW0Mfedqsewgtatmk2tqFhQoJfjyOu3dRE3Lz9xHlRGZQ==";
+      };
+    };
+    "@serialport/parser-ready-9.0.0" = {
+      name = "_at_serialport_slash_parser-ready";
+      packageName = "@serialport/parser-ready";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-9.0.0.tgz";
+        sha512 = "oSQR7773Jdc6SjXMA1mWgfFlyBLcIRlZtt1BJMfO07k3ynBmanJ4VysVDTDvxtsREHLgcjoLRKQC/6wl2wvXOQ==";
+      };
+    };
+    "@serialport/parser-regex-9.0.0" = {
+      name = "_at_serialport_slash_parser-regex";
+      packageName = "@serialport/parser-regex";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-9.0.0.tgz";
+        sha512 = "Q4LDXbWnun5r1ML6ZLS5Wb2BurnkJjtP1geHtZbshLUmpfms++Q28li8OPzv/KQ6praC1HDRG37D0AY6xoObSw==";
+      };
+    };
+    "@serialport/stream-9.0.0" = {
+      name = "_at_serialport_slash_stream";
+      packageName = "@serialport/stream";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/stream/-/stream-9.0.0.tgz";
+        sha512 = "JK952xKP+7PX3tXj9DgKafQaAru0sdbkTIY1OpjUNGp0xYWTVUbZRnLK//MLkH6FpoDTJc9ghN2ILK0YRtpLLA==";
+      };
+    };
+    "@sinonjs/commons-1.8.0" = {
+      name = "_at_sinonjs_slash_commons";
+      packageName = "@sinonjs/commons";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.0.tgz";
+        sha512 = "wEj54PfsZ5jGSwMX68G8ZXFawcSglQSXqCftWX3ec8MDUzQdHgcKvw97awHbY0efQEL5iKUOAmmVtoYgmrSG4Q==";
+      };
+    };
+    "@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/jest-26.0.4" = {
+      name = "_at_types_slash_jest";
+      packageName = "@types/jest";
+      version = "26.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/jest/-/jest-26.0.4.tgz";
+        sha512 = "4fQNItvelbNA9+sFgU+fhJo8ZFF+AS4Egk3GWwCW2jFtViukXbnztccafAdLhzE/0EiCogljtQQXP8aQ9J7sFg==";
+      };
+    };
+    "@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.0.22" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "14.0.22";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-14.0.22.tgz";
+        sha512 = "emeGcJvdiZ4Z3ohbmw93E/64jRzUHAItSHt8nF7M4TGgQTiWqFVGB8KNpLGFmUHmHLvjvBgFwVlqNcq+VuGv9g==";
+      };
+    };
+    "@types/node-14.0.23" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "14.0.23";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-14.0.23.tgz";
+        sha512 = "Z4U8yDAl5TFkmYsZdFPdjeMa57NOvnaf1tljHzhouaPEp7LCj2JKkejpI1ODviIAQuW4CcQmxkQ77rnLsOOoKw==";
+      };
+    };
+    "@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.0.2" = {
+      name = "_at_types_slash_prettier";
+      packageName = "@types/prettier";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/prettier/-/prettier-2.0.2.tgz";
+        sha512 = "IkVfat549ggtkZUthUzEX49562eGikhSYeVGX97SkMFn+sTZrgRewXjQ4tPKFPCykZHkX1Zfd9OoELGqKU2jJA==";
+      };
+    };
+    "@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.6.0" = {
+      name = "_at_typescript-eslint_slash_eslint-plugin";
+      packageName = "@typescript-eslint/eslint-plugin";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.6.0.tgz";
+        sha512 = "ubHlHVt1lsPQB/CZdEov9XuOFhNG9YRC//kuiS1cMQI6Bs1SsqKrEmZnpgRwthGR09/kEDtr9MywlqXyyYd8GA==";
+      };
+    };
+    "@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.6.0" = {
+      name = "_at_typescript-eslint_slash_experimental-utils";
+      packageName = "@typescript-eslint/experimental-utils";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.6.0.tgz";
+        sha512 = "4Vdf2hvYMUnTdkCNZu+yYlFtL2v+N2R7JOynIOkFbPjf9o9wQvRwRkzUdWlFd2YiiUwJLbuuLnl5civNg5ykOQ==";
+      };
+    };
+    "@typescript-eslint/parser-3.6.0" = {
+      name = "_at_typescript-eslint_slash_parser";
+      packageName = "@typescript-eslint/parser";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.6.0.tgz";
+        sha512 = "taghDxuLhbDAD1U5Fk8vF+MnR0yiFE9Z3v2/bYScFb0N1I9SK8eKHkdJl1DAD48OGFDMFTeOTX0z7g0W6SYUXw==";
+      };
+    };
+    "@typescript-eslint/types-3.6.0" = {
+      name = "_at_typescript-eslint_slash_types";
+      packageName = "@typescript-eslint/types";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.6.0.tgz";
+        sha512 = "JwVj74ohUSt0ZPG+LZ7hb95fW8DFOqBuR6gE7qzq55KDI3BepqsCtHfBIoa0+Xi1AI7fq5nCu2VQL8z4eYftqg==";
+      };
+    };
+    "@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.6.0" = {
+      name = "_at_typescript-eslint_slash_typescript-estree";
+      packageName = "@typescript-eslint/typescript-estree";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.6.0.tgz";
+        sha512 = "G57NDSABHjvob7zVV09ehWyD1K6/YUKjz5+AufObFyjNO4DVmKejj47MHjVHHlZZKgmpJD2yyH9lfCXHrPITFg==";
+      };
+    };
+    "@typescript-eslint/visitor-keys-3.6.0" = {
+      name = "_at_typescript-eslint_slash_visitor-keys";
+      packageName = "@typescript-eslint/visitor-keys";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.6.0.tgz";
+        sha512 = "p1izllL2Ubwunite0ITjubuMQRBGgjdVYwyG7lXPX8GbrA6qF0uwSRz9MnXZaHMxID4948gX0Ez8v9tUDi/KfQ==";
+      };
+    };
+    "abab-2.0.3" = {
+      name = "abab";
+      packageName = "abab";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz";
+        sha512 = "tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==";
+      };
+    };
+    "acorn-7.3.1" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "7.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz";
+        sha512 = "tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==";
+      };
+    };
+    "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.3" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "6.12.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz";
+        sha512 = "4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "async-limiter-1.0.1" = {
+      name = "async-limiter";
+      packageName = "async-limiter";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz";
+        sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==";
+      };
+    };
+    "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.0" = {
+      name = "aws4";
+      packageName = "aws4";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz";
+        sha512 = "3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==";
+      };
+    };
+    "axios-0.19.2" = {
+      name = "axios";
+      packageName = "axios";
+      version = "0.19.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz";
+        sha512 = "fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==";
+      };
+    };
+    "babel-jest-26.1.0" = {
+      name = "babel-jest";
+      packageName = "babel-jest";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-jest/-/babel-jest-26.1.0.tgz";
+        sha512 = "Nkqgtfe7j6PxLO6TnCQQlkMm8wdTdnIF8xrdpooHCuD5hXRzVEPbPneTJKknH5Dsv3L8ip9unHDAp48YQ54Dkg==";
+      };
+    };
+    "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.1.0" = {
+      name = "babel-plugin-jest-hoist";
+      packageName = "babel-plugin-jest-hoist";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.1.0.tgz";
+        sha512 = "qhqLVkkSlqmC83bdMhM8WW4Z9tB+JkjqAqlbbohS9sJLT5Ha2vfzuKqg5yenXrAjOPG2YC0WiXdH3a9PvB+YYw==";
+      };
+    };
+    "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.1.0" = {
+      name = "babel-preset-jest";
+      packageName = "babel-preset-jest";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.1.0.tgz";
+        sha512 = "na9qCqFksknlEj5iSdw1ehMVR06LCCTkZLGKeEtxDDdhg8xpUF09m29Kvh1pRbZ07h7AQ5ttLYUwpXL4tO6w7w==";
+      };
+    };
+    "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-1.2.2" = {
+      name = "bl";
+      packageName = "bl";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz";
+        sha512 = "e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==";
+      };
+    };
+    "bl-4.0.2" = {
+      name = "bl";
+      packageName = "bl";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz";
+        sha512 = "j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==";
+      };
+    };
+    "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.13.0" = {
+      name = "browserslist";
+      packageName = "browserslist";
+      version = "4.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz";
+        sha512 = "MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==";
+      };
+    };
+    "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.30001099" = {
+      name = "caniuse-lite";
+      packageName = "caniuse-lite";
+      version = "1.0.30001099";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001099.tgz";
+        sha512 = "sdS9A+sQTk7wKoeuZBN/YMAHVztUfVnjDi4/UV3sDE8xoh7YR12hKW+pIdB3oqKGwr9XaFL2ovfzt9w8eUI5CA==";
+      };
+    };
+    "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-3.1.0" = {
+      name = "debug";
+      packageName = "debug";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz";
+        sha512 = "OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==";
+      };
+    };
+    "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.0.0" = {
+      name = "diff-sequences";
+      packageName = "diff-sequences";
+      version = "26.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.0.0.tgz";
+        sha512 = "JC/eHYEC3aSS0vZGjuoc4vHA0yAQTzhQQldXMeMF+JlxLGJlCO38Gma82NV9gk1jGFz8mDzUMeaKXvjRRdJ2dg==";
+      };
+    };
+    "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.496" = {
+      name = "electron-to-chromium";
+      packageName = "electron-to-chromium";
+      version = "1.3.496";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.496.tgz";
+        sha512 = "TXY4mwoyowwi4Lsrq9vcTUYBThyc1b2hXaTZI13p8/FRhY2CTaq5lK+DVjhYkKiTLsKt569Xes+0J5JsVXFurQ==";
+      };
+    };
+    "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.1" = {
+      name = "escalade";
+      packageName = "escalade";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escalade/-/escalade-3.0.1.tgz";
+        sha512 = "DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA==";
+      };
+    };
+    "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.4.0" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "7.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.4.0.tgz";
+        sha512 = "gU+lxhlPHu45H3JkEGgYhWhkR9wLHHEXC9FbWFnTlEkbKyZKWgWRLgf61E8zWmBuI6g5xKBph9ltg3NtZMVF8g==";
+      };
+    };
+    "eslint-7.5.0" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "7.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.5.0.tgz";
+        sha512 = "vlUP10xse9sWt9SGRtcr1LAC67BENcQMFeV+w5EvLEoFe3xJ8cF1Skd0msziRx/VMC+72B4DxreCE+OR12OA6Q==";
+      };
+    };
+    "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.18.0" = {
+      name = "eslint-plugin-jest";
+      packageName = "eslint-plugin-jest";
+      version = "23.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.18.0.tgz";
+        sha512 = "wLPM/Rm1SGhxrFQ2TKM/BYsYPhn7ch6ZEK92S2o/vGkAAnDXM0I4nTIo745RIX+VlCRMFgBuJEax6XfTHMdeKg==";
+      };
+    };
+    "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.1.0" = {
+      name = "espree";
+      packageName = "espree";
+      version = "7.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/espree/-/espree-7.1.0.tgz";
+        sha512 = "dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw==";
+      };
+    };
+    "espree-7.2.0" = {
+      name = "espree";
+      packageName = "espree";
+      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==";
+      };
+    };
+    "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.1.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz";
+        sha512 = "FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==";
+      };
+    };
+    "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.1.0" = {
+      name = "expect";
+      packageName = "expect";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expect/-/expect-26.1.0.tgz";
+        sha512 = "QbH4LZXDsno9AACrN9eM0zfnby9G+OsdNgZUohjg/P0mLy1O+/bzTAJGT6VSIjVCe8yKM6SzEl/ckEOFBT7Vnw==";
+      };
+    };
+    "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.5.10" = {
+      name = "follow-redirects";
+      packageName = "follow-redirects";
+      version = "1.5.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz";
+        sha512 = "0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==";
+      };
+    };
+    "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-8.1.0" = {
+      name = "fs-extra";
+      packageName = "fs-extra";
+      version = "8.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz";
+        sha512 = "yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==";
+      };
+    };
+    "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.1.0" = {
+      name = "get-stream";
+      packageName = "get-stream";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz";
+        sha512 = "EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==";
+      };
+    };
+    "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.3" = {
+      name = "har-validator";
+      packageName = "har-validator";
+      version = "5.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
+        sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
+      };
+    };
+    "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.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==";
+      };
+    };
+    "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.0.0" = {
+      name = "is-docker";
+      packageName = "is-docker";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz";
+        sha512 = "pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==";
+      };
+    };
+    "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.1.0" = {
+      name = "jest";
+      packageName = "jest";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest/-/jest-26.1.0.tgz";
+        sha512 = "LIti8jppw5BcQvmNJe4w2g1N/3V68HUfAv9zDVm7v+VAtQulGhH0LnmmiVkbNE4M4I43Bj2fXPiBGKt26k9tHw==";
+      };
+    };
+    "jest-changed-files-26.1.0" = {
+      name = "jest-changed-files";
+      packageName = "jest-changed-files";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.1.0.tgz";
+        sha512 = "HS5MIJp3B8t0NRKGMCZkcDUZo36mVRvrDETl81aqljT1S9tqiHRSpyoOvWg9ZilzZG9TDisDNaN1IXm54fLRZw==";
+      };
+    };
+    "jest-cli-26.1.0" = {
+      name = "jest-cli";
+      packageName = "jest-cli";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-cli/-/jest-cli-26.1.0.tgz";
+        sha512 = "Imumvjgi3rU7stq6SJ1JUEMaV5aAgJYXIs0jPqdUnF47N/Tk83EXfmtvNKQ+SnFVI6t6mDOvfM3aA9Sg6kQPSw==";
+      };
+    };
+    "jest-config-26.1.0" = {
+      name = "jest-config";
+      packageName = "jest-config";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-config/-/jest-config-26.1.0.tgz";
+        sha512 = "ONTGeoMbAwGCdq4WuKkMcdMoyfs5CLzHEkzFOlVvcDXufZSaIWh/OXMLa2fwKXiOaFcqEw8qFr4VOKJQfn4CVw==";
+      };
+    };
+    "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.1.0" = {
+      name = "jest-diff";
+      packageName = "jest-diff";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-diff/-/jest-diff-26.1.0.tgz";
+        sha512 = "GZpIcom339y0OXznsEKjtkfKxNdg7bVbEofK8Q6MnevTIiR1jNhDWKhRX6X0SDXJlwn3dy59nZ1z55fLkAqPWg==";
+      };
+    };
+    "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.1.0" = {
+      name = "jest-each";
+      packageName = "jest-each";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-each/-/jest-each-26.1.0.tgz";
+        sha512 = "lYiSo4Igr81q6QRsVQq9LIkJW0hZcKxkIkHzNeTMPENYYDw/W/Raq28iJ0sLlNFYz2qxxeLnc5K2gQoFYlu2bA==";
+      };
+    };
+    "jest-environment-jsdom-26.1.0" = {
+      name = "jest-environment-jsdom";
+      packageName = "jest-environment-jsdom";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.1.0.tgz";
+        sha512 = "dWfiJ+spunVAwzXbdVqPH1LbuJW/kDL+FyqgA5YzquisHqTi0g9hquKif9xKm7c1bKBj6wbmJuDkeMCnxZEpUw==";
+      };
+    };
+    "jest-environment-node-26.1.0" = {
+      name = "jest-environment-node";
+      packageName = "jest-environment-node";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.1.0.tgz";
+        sha512 = "DNm5x1aQH0iRAe9UYAkZenuzuJ69VKzDCAYISFHQ5i9e+2Tbeu2ONGY7YStubCLH8a1wdKBgqScYw85+ySxqxg==";
+      };
+    };
+    "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.0.0" = {
+      name = "jest-get-type";
+      packageName = "jest-get-type";
+      version = "26.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz";
+        sha512 = "zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==";
+      };
+    };
+    "jest-haste-map-26.1.0" = {
+      name = "jest-haste-map";
+      packageName = "jest-haste-map";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.1.0.tgz";
+        sha512 = "WeBS54xCIz9twzkEdm6+vJBXgRBQfdbbXD0dk8lJh7gLihopABlJmIQFdWSDDtuDe4PRiObsjZSUjbJ1uhWEpA==";
+      };
+    };
+    "jest-jasmine2-26.1.0" = {
+      name = "jest-jasmine2";
+      packageName = "jest-jasmine2";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.1.0.tgz";
+        sha512 = "1IPtoDKOAG+MeBrKvvuxxGPJb35MTTRSDglNdWWCndCB3TIVzbLThRBkwH9P081vXLgiJHZY8Bz3yzFS803xqQ==";
+      };
+    };
+    "jest-leak-detector-26.1.0" = {
+      name = "jest-leak-detector";
+      packageName = "jest-leak-detector";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.1.0.tgz";
+        sha512 = "dsMnKF+4BVOZwvQDlgn3MG+Ns4JuLv8jNvXH56bgqrrboyCbI1rQg6EI5rs+8IYagVcfVP2yZFKfWNZy0rK0Hw==";
+      };
+    };
+    "jest-matcher-utils-26.1.0" = {
+      name = "jest-matcher-utils";
+      packageName = "jest-matcher-utils";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.1.0.tgz";
+        sha512 = "PW9JtItbYvES/xLn5mYxjMd+Rk+/kIt88EfH3N7w9KeOrHWaHrdYPnVHndGbsFGRJ2d5gKtwggCvkqbFDoouQA==";
+      };
+    };
+    "jest-message-util-26.1.0" = {
+      name = "jest-message-util";
+      packageName = "jest-message-util";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.1.0.tgz";
+        sha512 = "dY0+UlldiAJwNDJ08SF0HdF32g9PkbF2NRK/+2iMPU40O6q+iSn1lgog/u0UH8ksWoPv0+gNq8cjhYO2MFtT0g==";
+      };
+    };
+    "jest-mock-26.1.0" = {
+      name = "jest-mock";
+      packageName = "jest-mock";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-mock/-/jest-mock-26.1.0.tgz";
+        sha512 = "1Rm8EIJ3ZFA8yCIie92UbxZWj9SuVmUGcyhLHyAhY6WI3NIct38nVcfOPWhJteqSn8V8e3xOMha9Ojfazfpovw==";
+      };
+    };
+    "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.1.0" = {
+      name = "jest-resolve";
+      packageName = "jest-resolve";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.1.0.tgz";
+        sha512 = "KsY1JV9FeVgEmwIISbZZN83RNGJ1CC+XUCikf/ZWJBX/tO4a4NvA21YixokhdR9UnmPKKAC4LafVixJBrwlmfg==";
+      };
+    };
+    "jest-resolve-dependencies-26.1.0" = {
+      name = "jest-resolve-dependencies";
+      packageName = "jest-resolve-dependencies";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.1.0.tgz";
+        sha512 = "fQVEPHHQ1JjHRDxzlLU/buuQ9om+hqW6Vo928aa4b4yvq4ZHBtRSDsLdKQLuCqn5CkTVpYZ7ARh2fbA8WkRE6g==";
+      };
+    };
+    "jest-runner-26.1.0" = {
+      name = "jest-runner";
+      packageName = "jest-runner";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-runner/-/jest-runner-26.1.0.tgz";
+        sha512 = "elvP7y0fVDREnfqit0zAxiXkDRSw6dgCkzPCf1XvIMnSDZ8yogmSKJf192dpOgnUVykmQXwYYJnCx641uLTgcw==";
+      };
+    };
+    "jest-runtime-26.1.0" = {
+      name = "jest-runtime";
+      packageName = "jest-runtime";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.1.0.tgz";
+        sha512 = "1qiYN+EZLmG1QV2wdEBRf+Ci8i3VSfIYLF02U18PiUDrMbhfpN/EAMMkJtT02jgJUoaEOpHAIXG6zS3QRMzRmA==";
+      };
+    };
+    "jest-serializer-26.1.0" = {
+      name = "jest-serializer";
+      packageName = "jest-serializer";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.1.0.tgz";
+        sha512 = "eqZOQG/0+MHmr25b2Z86g7+Kzd5dG9dhCiUoyUNJPgiqi38DqbDEOlHcNijyfZoj74soGBohKBZuJFS18YTJ5w==";
+      };
+    };
+    "jest-snapshot-26.1.0" = {
+      name = "jest-snapshot";
+      packageName = "jest-snapshot";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.1.0.tgz";
+        sha512 = "YhSbU7eMTVQO/iRbNs8j0mKRxGp4plo7sJ3GzOQ0IYjvsBiwg0T1o0zGQAYepza7lYHuPTrG5J2yDd0CE2YxSw==";
+      };
+    };
+    "jest-util-26.1.0" = {
+      name = "jest-util";
+      packageName = "jest-util";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-util/-/jest-util-26.1.0.tgz";
+        sha512 = "rNMOwFQevljfNGvbzNQAxdmXQ+NawW/J72dmddsK0E8vgxXCMtwQ/EH0BiWEIxh0hhMcTsxwAxINt7Lh46Uzbg==";
+      };
+    };
+    "jest-validate-26.1.0" = {
+      name = "jest-validate";
+      packageName = "jest-validate";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-validate/-/jest-validate-26.1.0.tgz";
+        sha512 = "WPApOOnXsiwhZtmkDsxnpye+XLb/tUISP+H6cHjfUIXvlG+eKwP+isnivsxlHCPaO9Q5wvbhloIBkdF3qUn+Nw==";
+      };
+    };
+    "jest-watcher-26.1.0" = {
+      name = "jest-watcher";
+      packageName = "jest-watcher";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.1.0.tgz";
+        sha512 = "ffEOhJl2EvAIki613oPsSG11usqnGUzIiK7MMX6hE4422aXOcVEG3ySCTDFLn1+LZNXGPE8tuJxhp8OBJ1pgzQ==";
+      };
+    };
+    "jest-worker-26.1.0" = {
+      name = "jest-worker";
+      packageName = "jest-worker";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-26.1.0.tgz";
+        sha512 = "Z9P5pZ6UC+kakMbNJn+tA2RdVdNX5WH1x+5UCBZ9MxIK24pjYtFt96fK+UwBTrjLYm232g1xz0L3eTh51OW+yQ==";
+      };
+    };
+    "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.3.0" = {
+      name = "jsdom";
+      packageName = "jsdom";
+      version = "16.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsdom/-/jsdom-16.3.0.tgz";
+        sha512 = "zggeX5UuEknpdZzv15+MS1dPYG0J/TftiiNunOeNxSl3qr8Z6cIlQpN0IdJa44z9aFxZRIVqRncvEhQ7X5DtZg==";
+      };
+    };
+    "jsesc-0.5.0" = {
+      name = "jsesc";
+      packageName = "jsesc";
+      version = "0.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz";
+        sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
+      };
+    };
+    "jsesc-2.5.2" = {
+      name = "jsesc";
+      packageName = "jsesc";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz";
+        sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==";
+      };
+    };
+    "json-parse-better-errors-1.0.2" = {
+      name = "json-parse-better-errors";
+      packageName = "json-parse-better-errors";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+        sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==";
+      };
+    };
+    "json-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-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-4.0.0" = {
+      name = "jsonfile";
+      packageName = "jsonfile";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz";
+        sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+      };
+    };
+    "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==";
+      };
+    };
+    "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.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.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.8" = {
+      name = "lunr";
+      packageName = "lunr";
+      version = "2.3.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lunr/-/lunr-2.3.8.tgz";
+        sha512 = "oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg==";
+      };
+    };
+    "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.0.0" = {
+      name = "marked";
+      packageName = "marked";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/marked/-/marked-1.0.0.tgz";
+        sha512 = "Wo+L1pWTVibfrSr+TTtMuiMfNzmZWiOPeO7rZsQUY5bgsxpHesBEcIWJloWVTFnrMXnf/TL30eTFSGJddmQAng==";
+      };
+    };
+    "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.1.0" = {
+      name = "mqtt";
+      packageName = "mqtt";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mqtt/-/mqtt-4.1.0.tgz";
+        sha512 = "dBihVZzaB8p9G/2ktSfamiaHmMnpCpP2du08317ZuEX1kBAbZOG9aMJQ11EChXnOX3GKUeiZYaSITueceQKT2A==";
+      };
+    };
+    "mqtt-packet-6.3.2" = {
+      name = "mqtt-packet";
+      packageName = "mqtt-packet";
+      version = "6.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.3.2.tgz";
+        sha512 = "i56+2kN6F57KInGtjjfUXSl4xG8u/zOvfaXFLKFAbBXzWkXOmwcmjaSCBPayf2IQCkQU0+h+S2DizCo3CF6gQA==";
+      };
+    };
+    "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.18.0" = {
+      name = "node-abi";
+      packageName = "node-abi";
+      version = "2.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.18.0.tgz";
+        sha512 = "yi05ZoiuNNEbyT/xXfSySZE+yVnQW6fxPZuFbLyS1s6b5Kw3HzV2PHOM4XR+nsjzkHxByK+2Wg+yCQbe35l8dw==";
+      };
+    };
+    "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-7.0.1" = {
+      name = "node-notifier";
+      packageName = "node-notifier";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-notifier/-/node-notifier-7.0.1.tgz";
+        sha512 = "VkzhierE7DBmQEElhTGJIoiZa1oqRijOtgOlsXg32KrJRXsPy0NXFBqWGW/wTswnJlDCs5viRYaqWguqzsKcmg==";
+      };
+    };
+    "node-releases-1.1.59" = {
+      name = "node-releases";
+      packageName = "node-releases";
+      version = "1.1.59";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz";
+        sha512 = "H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==";
+      };
+    };
+    "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.0" = {
+      name = "onetime";
+      packageName = "onetime";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz";
+        sha512 = "5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==";
+      };
+    };
+    "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.0.0" = {
+      name = "parse-json";
+      packageName = "parse-json";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz";
+        sha512 = "OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==";
+      };
+    };
+    "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.1.0" = {
+      name = "pretty-format";
+      packageName = "pretty-format";
+      version = "26.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-format/-/pretty-format-26.1.0.tgz";
+        sha512 = "GmeO1PEYdM+non4BKCj+XsPJjFOJIPnsLewqhDVoqY1xo0yNmDas7tC2XwpMrRAHR3MaE2hPo37deX5OisJ2Wg==";
+      };
+    };
+    "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.5" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.13.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
+        sha512 = "ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==";
+      };
+    };
+    "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.3" = {
+      name = "request-promise-core";
+      packageName = "request-promise-core";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz";
+        sha512 = "QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==";
+      };
+    };
+    "request-promise-native-1.0.8" = {
+      name = "request-promise-native";
+      packageName = "request-promise-native";
+      version = "1.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz";
+        sha512 = "dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==";
+      };
+    };
+    "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.0" = {
+      name = "serialport";
+      packageName = "serialport";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialport/-/serialport-9.0.0.tgz";
+        sha512 = "4kQqIM0XhT6QECyzJtPdSsDWRFt8u3/vscQxb+z4TrAMiPDkDGBTLDaXmCxarXDa1s7EeK1IyxMce9wzWPFzAQ==";
+      };
+    };
+    "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.0" = {
+      name = "simple-concat";
+      packageName = "simple-concat";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz";
+        sha1 = "7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6";
+      };
+    };
+    "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.1.1" = {
+      name = "split2";
+      packageName = "split2";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split2/-/split2-3.1.1.tgz";
+        sha512 = "emNzr1s7ruq4N+1993yht631/JH+jaj0NYBosuKmLcq+JkGQ9MmTw1RB1fGaTCzUuseRIClrlSLHRNYGwWQ58Q==";
+      };
+    };
+    "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.0" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz";
+        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==";
+      };
+    };
+    "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.1.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "7.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz";
+        sha512 = "oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==";
+      };
+    };
+    "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.0.0" = {
+      name = "type";
+      packageName = "type";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type/-/type-2.0.0.tgz";
+        sha512 = "KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==";
+      };
+    };
+    "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.17.8" = {
+      name = "typedoc";
+      packageName = "typedoc";
+      version = "0.17.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedoc/-/typedoc-0.17.8.tgz";
+        sha512 = "/OyrHCJ8jtzu+QZ+771YaxQ9s4g5Z3XsQE3Ma7q+BL392xxBn4UMvvCdVnqKC2T/dz03/VXSLVKOP3lHmDdc/w==";
+      };
+    };
+    "typedoc-default-themes-0.10.2" = {
+      name = "typedoc-default-themes";
+      packageName = "typedoc-default-themes";
+      version = "0.10.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.10.2.tgz";
+        sha512 = "zo09yRj+xwLFE3hyhJeVHWRSPuKEIAsFK5r2u47KL/HBKqpwdUSanoaz5L34IKiSATFrjG5ywmIu98hPVMfxZg==";
+      };
+    };
+    "typedoc-plugin-markdown-2.3.1" = {
+      name = "typedoc-plugin-markdown";
+      packageName = "typedoc-plugin-markdown";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-2.3.1.tgz";
+        sha512 = "7rlmg1tLjddYy11uznHCAlyoOpxdWnFXqGEZ7j2mJ4KJg2avwWgEpw6SFZVofgPCGn36zklpFS51lHxYSRTLVQ==";
+      };
+    };
+    "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-3.9.6" = {
+      name = "typescript";
+      packageName = "typescript";
+      version = "3.9.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.6.tgz";
+        sha512 = "Pspx3oKAPJtjNwE92YS05HQoY7z2SFyOpHo9MqJor3BXAGNaPUs83CuVp9VISFkSjyRfiTpmKuAYGJB7S7hOxw==";
+      };
+    };
+    "uglify-js-3.10.0" = {
+      name = "uglify-js";
+      packageName = "uglify-js";
+      version = "3.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.0.tgz";
+        sha512 = "Esj5HG5WAyrLIdYU74Z3JdG2PxdIusvj6IWHMtlyESxc7kcDz7zYlYjpnSokn1UbpV0d/QX9fan7gkCNd/9BQA==";
+      };
+    };
+    "ultron-1.1.1" = {
+      name = "ultron";
+      packageName = "ultron";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz";
+        sha512 = "UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==";
+      };
+    };
+    "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-0.1.2" = {
+      name = "universalify";
+      packageName = "universalify";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz";
+        sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "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-4.1.4" = {
+      name = "v8-to-istanbul";
+      packageName = "v8-to-istanbul";
+      version = "4.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz";
+        sha512 = "Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "websocket-stream-5.5.2" = {
+      name = "websocket-stream";
+      packageName = "websocket-stream";
+      version = "5.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/websocket-stream/-/websocket-stream-5.5.2.tgz";
+        sha512 = "8z49MKIHbGk3C4HtuHWDtYX8mYej1wWabjthC/RupM9ngeukU4IWoM46dgth1UOS/T4/IqgEdCDJuMe2039OQQ==";
+      };
+    };
+    "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.1.0" = {
+      name = "whatwg-url";
+      packageName = "whatwg-url";
+      version = "8.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.1.0.tgz";
+        sha512 = "vEIkwNi9Hqt4TV9RdnaBPNt+E2Sgmo3gePebCRgZ1R7g6d23+53zCTnuB0amKI4AXq6VM8jj2DUAa0S1vjJxkw==";
+      };
+    };
+    "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-3.3.3" = {
+      name = "ws";
+      packageName = "ws";
+      version = "3.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz";
+        sha512 = "nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==";
+      };
+    };
+    "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.108" = {
+      name = "zigbee-herdsman";
+      packageName = "zigbee-herdsman";
+      version = "0.12.108";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/zigbee-herdsman/-/zigbee-herdsman-0.12.108.tgz";
+        sha512 = "5xPgCYFAu/Q8mibEzB2be/nkkyCjMNKox+sYnaNNbUm0w25YRcI3FWuxE+wl9v7UVopZ8P9Wfou+XGsFbdaWRA==";
+      };
+    };
+    "zigbee-herdsman-converters-12.0.147" = {
+      name = "zigbee-herdsman-converters";
+      packageName = "zigbee-herdsman-converters";
+      version = "12.0.147";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/zigbee-herdsman-converters/-/zigbee-herdsman-converters-12.0.147.tgz";
+        sha512 = "WlNkN5xG+HdS1hZ5jTjR2vFii1OfOqTFUEQ+uZg06L7V1TucHRPlQ4AMY0WUQksnX2uuRqwehA3iuyszZjBAOg==";
+      };
+    };
+  };
+  args = {
+    name = "zigbee2mqtt";
+    packageName = "zigbee2mqtt";
+    version = "1.14.2";
+    src = ./.;
+    dependencies = [
+      sources."@dabh/diagnostics-2.0.2"
+      sources."ajv-6.12.3"
+      sources."argparse-1.0.10"
+      sources."async-3.2.0"
+      sources."async-limiter-1.0.1"
+      sources."balanced-match-1.0.0"
+      sources."base64-js-1.3.1"
+      sources."bindings-1.5.0"
+      sources."bl-1.2.2"
+      sources."brace-expansion-1.1.11"
+      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.0.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."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-without-jsonify-1.0.1"
+      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.1.0"
+      sources."mqtt-packet-6.3.2"
+      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.1.1" // {
+        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."ultron-1.1.1"
+      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."websocket-stream-5.5.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-3.3.3"
+      sources."xtend-4.0.2"
+      (sources."zigbee-herdsman-0.12.108" // {
+        dependencies = [
+          sources."@babel/cli-7.10.4"
+          sources."@babel/code-frame-7.10.4"
+          sources."@babel/compat-data-7.10.4"
+          sources."@babel/core-7.10.4"
+          sources."@babel/generator-7.10.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.4"
+          sources."@babel/helper-create-regexp-features-plugin-7.10.4"
+          sources."@babel/helper-define-map-7.10.4"
+          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.4"
+          sources."@babel/helper-module-imports-7.10.4"
+          sources."@babel/helper-module-transforms-7.10.4"
+          sources."@babel/helper-optimise-call-expression-7.10.4"
+          sources."@babel/helper-plugin-utils-7.10.4"
+          sources."@babel/helper-regex-7.10.4"
+          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.4"
+          sources."@babel/plugin-proposal-async-generator-functions-7.10.4"
+          sources."@babel/plugin-proposal-class-properties-7.10.4"
+          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-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-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.10.4"
+          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.4"
+          sources."@babel/plugin-transform-modules-commonjs-7.10.4"
+          sources."@babel/plugin-transform-modules-systemjs-7.10.4"
+          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.4"
+          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.10.4"
+          sources."@babel/plugin-transform-sticky-regex-7.10.4"
+          sources."@babel/plugin-transform-template-literals-7.10.4"
+          sources."@babel/plugin-transform-typeof-symbol-7.10.4"
+          sources."@babel/plugin-transform-typescript-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.10.4"
+          sources."@babel/preset-modules-0.1.3"
+          sources."@babel/preset-typescript-7.10.4"
+          sources."@babel/runtime-7.10.4"
+          sources."@babel/template-7.10.4"
+          sources."@babel/traverse-7.10.4"
+          sources."@babel/types-7.10.4"
+          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.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+            ];
+          })
+          (sources."@jest/core-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+              sources."to-regex-range-5.0.1"
+            ];
+          })
+          (sources."@jest/environment-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+            ];
+          })
+          (sources."@jest/fake-timers-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+            ];
+          })
+          (sources."@jest/globals-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+            ];
+          })
+          (sources."@jest/reporters-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+            ];
+          })
+          (sources."@jest/source-map-26.1.0" // {
+            dependencies = [
+              sources."source-map-0.6.1"
+            ];
+          })
+          (sources."@jest/test-result-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+            ];
+          })
+          sources."@jest/test-sequencer-26.1.0"
+          (sources."@jest/transform-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.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.1.0"
+            ];
+          })
+          sources."@serialport/binding-abstract-9.0.0"
+          sources."@serialport/binding-mock-9.0.0"
+          sources."@serialport/bindings-9.0.0"
+          sources."@serialport/parser-byte-length-9.0.0"
+          sources."@serialport/parser-cctalk-9.0.0"
+          sources."@serialport/parser-delimiter-9.0.0"
+          sources."@serialport/parser-readline-9.0.0"
+          sources."@serialport/parser-ready-9.0.0"
+          sources."@serialport/parser-regex-9.0.0"
+          sources."@serialport/stream-9.0.0"
+          sources."@sinonjs/commons-1.8.0"
+          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.4"
+          sources."@types/json-schema-7.0.5"
+          sources."@types/nedb-1.8.10"
+          sources."@types/node-14.0.22"
+          sources."@types/normalize-package-data-2.4.0"
+          sources."@types/prettier-2.0.2"
+          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.6.0" // {
+            dependencies = [
+              sources."semver-7.3.2"
+            ];
+          })
+          sources."@typescript-eslint/experimental-utils-3.6.0"
+          sources."@typescript-eslint/parser-3.6.0"
+          sources."@typescript-eslint/types-3.6.0"
+          (sources."@typescript-eslint/typescript-estree-3.6.0" // {
+            dependencies = [
+              sources."semver-7.3.2"
+            ];
+          })
+          sources."@typescript-eslint/visitor-keys-3.6.0"
+          sources."abab-2.0.3"
+          sources."acorn-7.3.1"
+          sources."acorn-globals-6.0.0"
+          sources."acorn-jsx-5.2.0"
+          sources."acorn-walk-7.2.0"
+          sources."ajv-6.12.3"
+          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.0"
+          (sources."babel-jest-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+            ];
+          })
+          sources."babel-plugin-dynamic-import-node-2.3.3"
+          sources."babel-plugin-istanbul-6.0.0"
+          sources."babel-plugin-jest-hoist-26.1.0"
+          sources."babel-preset-current-node-syntax-0.1.3"
+          sources."babel-preset-jest-26.1.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.2" // {
+            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.13.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.30001099"
+          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" // {
+            dependencies = [
+              sources."which-1.3.1"
+            ];
+          })
+          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.496"
+          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.1"
+          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.4.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.0"
+              sources."supports-color-7.1.0"
+            ];
+          })
+          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."esprima-4.0.1"
+          (sources."esquery-1.3.1" // {
+            dependencies = [
+              sources."estraverse-5.1.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.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.0.0"
+              sources."supports-color-7.1.0"
+            ];
+          })
+          sources."extend-3.0.2"
+          (sources."extend-shallow-3.0.2" // {
+            dependencies = [
+              sources."is-extendable-1.0.1"
+            ];
+          })
+          (sources."extglob-2.0.4" // {
+            dependencies = [
+              sources."define-property-1.0.0"
+              sources."extend-shallow-2.0.1"
+              sources."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-8.1.0"
+          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.3"
+          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.1"
+          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.0.0"
+          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.1.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.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+              sources."supports-color-7.1.0"
+            ];
+          })
+          (sources."jest-changed-files-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.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.1.0"
+            ];
+          })
+          (sources."jest-config-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.0.0"
+              sources."micromatch-4.0.2"
+              sources."pretty-format-26.1.0"
+              sources."supports-color-7.1.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.1.0"
+            ];
+          })
+          sources."jest-docblock-26.0.0"
+          (sources."jest-each-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.0.0"
+              sources."pretty-format-26.1.0"
+              sources."supports-color-7.1.0"
+            ];
+          })
+          (sources."jest-environment-jsdom-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+            ];
+          })
+          (sources."jest-environment-node-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+            ];
+          })
+          sources."jest-get-type-25.2.6"
+          (sources."jest-haste-map-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+              sources."to-regex-range-5.0.1"
+            ];
+          })
+          (sources."jest-jasmine2-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+              sources."supports-color-7.1.0"
+            ];
+          })
+          (sources."jest-leak-detector-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.0.0"
+              sources."pretty-format-26.1.0"
+              sources."supports-color-7.1.0"
+            ];
+          })
+          (sources."jest-matcher-utils-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.0.0"
+              sources."has-flag-4.0.0"
+              sources."jest-diff-26.1.0"
+              sources."jest-get-type-26.0.0"
+              sources."pretty-format-26.1.0"
+              sources."supports-color-7.1.0"
+            ];
+          })
+          (sources."jest-message-util-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+              sources."to-regex-range-5.0.1"
+            ];
+          })
+          (sources."jest-mock-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+            ];
+          })
+          sources."jest-pnp-resolver-1.2.2"
+          sources."jest-regex-util-26.0.0"
+          (sources."jest-resolve-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+            ];
+          })
+          (sources."jest-resolve-dependencies-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+            ];
+          })
+          (sources."jest-runner-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+            ];
+          })
+          (sources."jest-runtime-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+            ];
+          })
+          sources."jest-serializer-26.1.0"
+          (sources."jest-snapshot-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.0.0"
+              sources."has-flag-4.0.0"
+              sources."jest-diff-26.1.0"
+              sources."jest-get-type-26.0.0"
+              sources."pretty-format-26.1.0"
+              sources."semver-7.3.2"
+              sources."supports-color-7.1.0"
+            ];
+          })
+          (sources."jest-util-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+              sources."to-regex-range-5.0.1"
+            ];
+          })
+          (sources."jest-validate-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.0.0"
+              sources."pretty-format-26.1.0"
+              sources."supports-color-7.1.0"
+            ];
+          })
+          (sources."jest-watcher-26.1.0" // {
+            dependencies = [
+              sources."@jest/types-26.1.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.1.0"
+            ];
+          })
+          (sources."jest-worker-26.1.0" // {
+            dependencies = [
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.1.0"
+            ];
+          })
+          sources."js-tokens-4.0.0"
+          sources."js-yaml-3.14.0"
+          sources."jsbn-0.1.1"
+          sources."jsdom-16.3.0"
+          sources."jsesc-2.5.2"
+          sources."json-parse-better-errors-1.0.2"
+          sources."json-schema-0.2.3"
+          sources."json-schema-traverse-0.4.1"
+          sources."json-stable-stringify-without-jsonify-1.0.1"
+          sources."json-stringify-safe-5.0.1"
+          sources."json5-2.1.3"
+          sources."jsonfile-4.0.0"
+          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.19"
+          sources."lodash.sortby-4.7.0"
+          sources."loose-envify-1.4.0"
+          sources."lunr-2.3.8"
+          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.0.0"
+          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.18.0"
+          sources."node-int64-0.4.0"
+          sources."node-modules-regexp-1.0.0"
+          (sources."node-notifier-7.0.1" // {
+            dependencies = [
+              sources."semver-7.3.2"
+            ];
+          })
+          sources."node-releases-1.1.59"
+          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.0"
+          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.0.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.5"
+          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.3"
+          (sources."request-promise-native-1.0.8" // {
+            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.0"
+          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.0"
+          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.1.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.17.8"
+          sources."typedoc-default-themes-0.10.2"
+          (sources."typedoc-plugin-markdown-2.3.1" // {
+            dependencies = [
+              sources."fs-extra-9.0.1"
+              sources."jsonfile-6.0.1"
+              sources."universalify-1.0.0"
+            ];
+          })
+          sources."typedoc-plugin-no-inherit-1.1.10"
+          sources."typedoc-plugin-sourcefile-url-1.0.6"
+          sources."typescript-3.9.6"
+          sources."uglify-js-3.10.0"
+          sources."unicode-canonical-property-names-ecmascript-1.0.4"
+          sources."unicode-match-property-ecmascript-1.0.4"
+          sources."unicode-match-property-value-ecmascript-1.2.0"
+          sources."unicode-property-aliases-ecmascript-1.1.0"
+          sources."union-value-1.0.1"
+          sources."universalify-0.1.2"
+          (sources."unset-value-1.0.0" // {
+            dependencies = [
+              (sources."has-value-0.3.1" // {
+                dependencies = [
+                  sources."isobject-2.1.0"
+                ];
+              })
+              sources."has-values-0.1.4"
+            ];
+          })
+          sources."upath-1.2.0"
+          sources."uri-js-4.2.2"
+          sources."urix-0.1.0"
+          sources."use-3.1.1"
+          sources."util-deprecate-1.0.2"
+          sources."uuid-7.0.3"
+          sources."v8-compile-cache-2.1.1"
+          (sources."v8-to-istanbul-4.1.4" // {
+            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.1.0" // {
+            dependencies = [
+              sources."webidl-conversions-5.0.0"
+            ];
+          })
+          sources."which-2.0.2"
+          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.147" // {
+        dependencies = [
+          sources."@babel/code-frame-7.10.4"
+          (sources."@babel/core-7.10.5" // {
+            dependencies = [
+              sources."debug-4.1.1"
+              sources."ms-2.1.2"
+              sources."semver-5.7.1"
+              sources."source-map-0.5.7"
+            ];
+          })
+          (sources."@babel/generator-7.10.5" // {
+            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.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-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/helpers-7.10.4"
+          (sources."@babel/highlight-7.10.4" // {
+            dependencies = [
+              sources."chalk-2.4.2"
+            ];
+          })
+          sources."@babel/parser-7.10.5"
+          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.10.5" // {
+            dependencies = [
+              sources."debug-4.1.1"
+              sources."globals-11.12.0"
+              sources."ms-2.1.2"
+            ];
+          })
+          sources."@babel/types-7.10.5"
+          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.1.0"
+          (sources."@jest/core-26.1.0" // {
+            dependencies = [
+              sources."rimraf-3.0.2"
+            ];
+          })
+          sources."@jest/environment-26.1.0"
+          sources."@jest/fake-timers-26.1.0"
+          sources."@jest/globals-26.1.0"
+          sources."@jest/reporters-26.1.0"
+          sources."@jest/source-map-26.1.0"
+          sources."@jest/test-result-26.1.0"
+          sources."@jest/test-sequencer-26.1.0"
+          sources."@jest/transform-26.1.0"
+          sources."@jest/types-26.1.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-1.1.2"
+          sources."@types/json-schema-7.0.5"
+          sources."@types/node-14.0.23"
+          sources."@types/normalize-package-data-2.4.0"
+          sources."@types/prettier-2.0.2"
+          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" // {
+            dependencies = [
+              sources."debug-4.1.1"
+              sources."ms-2.1.2"
+            ];
+          })
+          sources."abab-2.0.3"
+          sources."acorn-7.3.1"
+          sources."acorn-globals-6.0.0"
+          sources."acorn-jsx-5.2.0"
+          sources."acorn-walk-7.2.0"
+          (sources."agent-base-6.0.1" // {
+            dependencies = [
+              sources."debug-4.1.1"
+              sources."ms-2.1.2"
+            ];
+          })
+          sources."ajv-6.12.3"
+          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.0"
+          sources."axios-0.19.2"
+          sources."babel-jest-26.1.0"
+          sources."babel-plugin-istanbul-6.0.0"
+          sources."babel-plugin-jest-hoist-26.1.0"
+          sources."babel-preset-current-node-syntax-0.1.3"
+          sources."babel-preset-jest-26.1.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.2"
+          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.1.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-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."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.0.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."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.5.0" // {
+            dependencies = [
+              sources."debug-4.1.1"
+              sources."ms-2.1.2"
+            ];
+          })
+          sources."eslint-config-google-0.14.0"
+          sources."eslint-plugin-jest-23.18.0"
+          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."estraverse-5.1.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."expect-26.1.0" // {
+            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.5.10"
+          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.3"
+          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" // {
+            dependencies = [
+              sources."debug-4.1.1"
+              sources."ms-2.1.2"
+            ];
+          })
+          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.0.0"
+          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.1.0"
+            ];
+          })
+          (sources."istanbul-lib-source-maps-4.0.0" // {
+            dependencies = [
+              sources."debug-4.1.1"
+              sources."ms-2.1.2"
+            ];
+          })
+          sources."istanbul-reports-3.0.2"
+          (sources."jest-26.1.0" // {
+            dependencies = [
+              sources."jest-cli-26.1.0"
+            ];
+          })
+          (sources."jest-changed-files-26.1.0" // {
+            dependencies = [
+              sources."execa-4.0.3"
+              sources."get-stream-5.1.0"
+              sources."is-stream-2.0.0"
+              sources."npm-run-path-4.0.1"
+            ];
+          })
+          sources."jest-config-26.1.0"
+          sources."jest-diff-26.1.0"
+          sources."jest-docblock-26.0.0"
+          sources."jest-each-26.1.0"
+          sources."jest-environment-jsdom-26.1.0"
+          sources."jest-environment-node-26.1.0"
+          sources."jest-get-type-26.0.0"
+          sources."jest-haste-map-26.1.0"
+          sources."jest-jasmine2-26.1.0"
+          sources."jest-leak-detector-26.1.0"
+          sources."jest-matcher-utils-26.1.0"
+          sources."jest-message-util-26.1.0"
+          sources."jest-mock-26.1.0"
+          sources."jest-pnp-resolver-1.2.2"
+          sources."jest-regex-util-26.0.0"
+          sources."jest-resolve-26.1.0"
+          sources."jest-resolve-dependencies-26.1.0"
+          sources."jest-runner-26.1.0"
+          sources."jest-runtime-26.1.0"
+          sources."jest-serializer-26.1.0"
+          sources."jest-snapshot-26.1.0"
+          sources."jest-util-26.1.0"
+          (sources."jest-validate-26.1.0" // {
+            dependencies = [
+              sources."camelcase-6.0.0"
+            ];
+          })
+          sources."jest-watcher-26.1.0"
+          (sources."jest-worker-26.1.0" // {
+            dependencies = [
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.1.0"
+            ];
+          })
+          sources."js-tokens-4.0.0"
+          sources."js-yaml-3.14.0"
+          sources."jsbn-0.1.1"
+          sources."jsdom-16.3.0"
+          sources."jsesc-2.5.2"
+          sources."json-parse-better-errors-1.0.2"
+          sources."json-schema-0.2.3"
+          sources."json-schema-traverse-0.4.1"
+          sources."json-stable-stringify-without-jsonify-1.0.1"
+          sources."json-stringify-safe-5.0.1"
+          sources."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.19"
+          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.0.0"
+          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-7.0.1"
+          (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.0"
+          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.0.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.1.0" // {
+            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.3"
+          (sources."request-promise-native-1.0.8" // {
+            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."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.1.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-7.0.3"
+          sources."v8-compile-cache-2.1.1"
+          (sources."v8-to-istanbul-4.1.4" // {
+            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.1.0" // {
+            dependencies = [
+              sources."webidl-conversions-5.0.0"
+            ];
+          })
+          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/development/node-packages/composition-v10.nix b/pkgs/servers/zigbee2mqtt/node.nix
index ecb9e541323..42b6358224c 100644
--- a/pkgs/development/node-packages/composition-v10.nix
+++ b/pkgs/servers/zigbee2mqtt/node.nix
@@ -2,16 +2,16 @@
 
 {pkgs ? import <nixpkgs> {
     inherit system;
-  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-10_x"}:
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
 
 let
-  nodeEnv = import ./node-env.nix {
+  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-v10.nix {
+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 978893d28ff..935993b781f 100644
--- a/pkgs/servers/zoneminder/default.nix
+++ b/pkgs/servers/zoneminder/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchFromGitHub, fetchurl, substituteAll, cmake, makeWrapper, pkgconfig
-, curl, ffmpeg, glib, libjpeg, libselinux, libsepol, mp4v2, libmysqlclient, mysql, pcre, perl, perlPackages
+, curl, ffmpeg_3, glib, libjpeg, libselinux, libsepol, mp4v2, libmysqlclient, mysql, pcre, perl, perlPackages
 , polkit, utillinuxMinimal, x264, zlib
-, coreutils, procps, psmisc }:
+, coreutils, procps, psmisc, nixosTests }:
 
 # NOTES:
 #
@@ -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 = [
@@ -138,7 +138,7 @@ in stdenv.mkDerivation rec {
 
     for f in includes/Event.php views/image.php ; do
       substituteInPlace web/$f \
-        --replace "'ffmpeg " "'${ffmpeg}/bin/ffmpeg "
+        --replace "'ffmpeg " "'${ffmpeg_3}/bin/ffmpeg "
     done
 
     substituteInPlace web/includes/functions.php \
@@ -147,7 +147,7 @@ in stdenv.mkDerivation rec {
   '';
 
   buildInputs = [
-    curl ffmpeg glib libjpeg libselinux libsepol mp4v2 libmysqlclient mysql.client pcre perl polkit x264 zlib
+    curl ffmpeg_3 glib libjpeg libselinux libsepol mp4v2 libmysqlclient mysql.client pcre perl polkit x264 zlib
     utillinuxMinimal # for libmount
   ] ++ (with perlPackages; [
     # build-time dependencies
@@ -172,7 +172,10 @@ in stdenv.mkDerivation rec {
     "-DZM_WEB_GROUP=${user}"
   ];
 
-  passthru = { inherit dirName; };
+  passthru = {
+    inherit dirName;
+    tests = nixosTests.zoneminder;
+  };
 
   postInstall = ''
     PERL5LIB="$PERL5LIB''${PERL5LIB:+:}$out/${perl.libPrefix}"
@@ -197,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 7aedd0189e4..f9dd578ad98 100644
--- a/pkgs/shells/dash/default.nix
+++ b/pkgs/shells/dash/default.nix
@@ -1,15 +1,19 @@
-{ stdenv, fetchurl }:
+{ autoreconfHook, lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "dash-0.5.10.2";
+  name = "dash-0.5.11.1";
 
   src = fetchurl {
     url = "http://gondor.apana.org.au/~herbert/dash/files/${name}.tar.gz";
-    sha256 = "0wb0bwmqc661hylqcfdp7l7x12myw3vpqk513ncyqrjwvhckjriw";
+    sha256 = "048n1rbw3v1ffzsw5mkc6zzvvf1csq7pcri7jraaqag38vqq3j3k";
   };
 
   hardeningDisable = [ "format" ];
 
+  # Temporary fix until a proper one is accepted upstream
+  patches = lib.lists.optional stdenv.isDarwin ./0001-fix-dirent64-et-al-on-darwin.patch;
+  nativeBuildInputs = lib.lists.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 4b9e4817ee8..64dd3cd70c7 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.0";
 
-  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 = "1jsxhnm82pjzwvcjq7vrlldyjnv5j6c83a13dj6zphlqq99z68l4";
   };
 
-  modSha256 = "13x4wbfj8049ygm3zbgzyr2bm4sq4x6xddrxx6shr8fydlcf1g8v";
+  vendorSha256 = "1f971n17h9bc0qcgs9ipiaw0x9807mz761fqm605br4ch1kp0897";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "A friendly and expressive command shell";
diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix
index 11d9e48008f..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
@@ -79,20 +80,17 @@ let
 
       # additional profiles are expected in order of precedence, which means the reverse of the
       # NIX_PROFILES variable (same as config.environment.profiles)
-      set -l __nix_profile_paths (echo $NIX_PROFILES | ${coreutils}/bin/tr ' ' '\n')[-1..1]
+      set -l __nix_profile_paths (string split ' ' $NIX_PROFILES)[-1..1]
 
-      set __extra_completionsdir \
+      set -p __extra_completionsdir \
         $__nix_profile_paths"/etc/fish/completions" \
-        $__nix_profile_paths"/share/fish/vendor_completions.d" \
-        $__extra_completionsdir
-      set __extra_functionsdir \
+        $__nix_profile_paths"/share/fish/vendor_completions.d"
+      set -p __extra_functionsdir \
         $__nix_profile_paths"/etc/fish/functions" \
-        $__nix_profile_paths"/share/fish/vendor_functions.d" \
-        $__extra_functionsdir
-      set __extra_confdir \
+        $__nix_profile_paths"/share/fish/vendor_functions.d"
+      set -p __extra_confdir \
         $__nix_profile_paths"/etc/fish/conf.d" \
-        $__nix_profile_paths"/share/fish/vendor_conf.d" \
-        $__extra_confdir
+        $__nix_profile_paths"/share/fish/vendor_conf.d"
     end
   '';
 
@@ -125,6 +123,10 @@ let
       pcre2
     ];
 
+    cmakeFlags = [
+      "-DCMAKE_INSTALL_DOCDIR=${placeholder "out"}/share/doc/fish"
+    ];
+
     preConfigure = ''
       patchShebangs ./build_tools/git_version_gen.sh
     '';
@@ -164,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/mksh/default.nix b/pkgs/shells/mksh/default.nix
index 682d88dbfbd..7abf75c70f4 100644
--- a/pkgs/shells/mksh/default.nix
+++ b/pkgs/shells/mksh/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "mksh";
-  version = "59";
+  version = "59b";
 
   src = fetchurl {
     urls = [
       "https://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R${version}.tgz"
       "http://pub.allbsd.org/MirOS/dist/mir/mksh/mksh-R${version}.tgz"
     ];
-    sha256 = "1flhsdfksvv9gmfkgjwgdia1irv53g9abmq3y22s5a5ycyx2hajr";
+    sha256 = "1rp0farbylypyiaald2hw5avg5w3m8x7cjnxxyyihzvfb2lx2zlh";
   };
 
   dontConfigure = true;
diff --git a/pkgs/shells/nushell/default.nix b/pkgs/shells/nushell/default.nix
index 9dbce58d093..351799099b1 100644
--- a/pkgs/shells/nushell/default.nix
+++ b/pkgs/shells/nushell/default.nix
@@ -10,21 +10,20 @@
 , AppKit
 , Security
 , withStableFeatures ? true
-, withTestBinaries ? true
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "nushell";
-  version = "0.13.0";
+  version = "0.18.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "1n92wcd3f6p38iwp9sc4bfhmaxb61ff6vvn0zvy3h4q8wmvxpiky";
+    sha256 = "100r26dx57wdzdpf6lgsgw0py33k3nsx73pa1qjcipwv00a106sr";
   };
 
-  cargoSha256 = "0dyszvy0nmbjill3wfyqprqkh911r070rvkxc1ls9s3yhxhwlhzq";
+  cargoSha256 = "0ch79zsnqb5n9r7jq6figpmqp2cs2p9a3m7fg3sd04m797ki9chr";
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optionals (withStableFeatures && stdenv.isLinux) [ python3 ];
@@ -36,16 +35,14 @@ rustPlatform.buildRustPackage rec {
 
   cargoBuildFlags = lib.optional withStableFeatures "--features stable";
 
-  cargoTestFlags = lib.optional withTestBinaries "--features test-bins";
-
   preCheck = ''
     export HOME=$TMPDIR
   '';
 
   checkPhase = ''
     runHook preCheck
-    echo "Running cargo cargo test ${lib.strings.concatStringsSep " " cargoTestFlags} -- ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}"
-    cargo test ${lib.strings.concatStringsSep " " cargoTestFlags} -- ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"}
+    echo "Running cargo test"
+    cargo test
     runHook postCheck
   '';
 
@@ -53,7 +50,7 @@ rustPlatform.buildRustPackage rec {
     description = "A modern shell written in Rust";
     homepage = "https://www.nushell.sh/";
     license = licenses.mit;
-    maintainers = with maintainers; [ filalex77 marsam ];
+    maintainers = with maintainers; [ filalex77 johntitor marsam ];
     platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
   };
 
diff --git a/pkgs/shells/oil/default.nix b/pkgs/shells/oil/default.nix
index 019a66c77eb..bce76b4cc82 100644
--- a/pkgs/shells/oil/default.nix
+++ b/pkgs/shells/oil/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "oil";
-  version = "0.8.pre4";
+  version = "0.8.pre6";
 
   src = fetchurl {
     url = "https://www.oilshell.org/download/oil-${version}.tar.xz";
-    sha256 = "07kj86hrvlz9f1gh3qv4hdaz3qnb4a2qf0dnxhd2r0qilrkjanxh";
+    sha256 = "1gbc74in78lbkciz7wzjplrm185wn6fz57n66xmazayivqmpvgfm";
   };
 
   postPatch = ''
diff --git a/pkgs/shells/powershell/default.nix b/pkgs/shells/powershell/default.nix
index a5c22d125af..d9374498774 100644
--- a/pkgs/shells/powershell/default.nix
+++ b/pkgs/shells/powershell/default.nix
@@ -5,7 +5,7 @@ let platformString = if stdenv.isDarwin then "osx"
                      else if stdenv.isLinux then "linux"
                      else throw "unsupported platform";
     platformSha = if stdenv.isDarwin then "0c71w6z6sc86si07i6vy4w3069jal7476wyiizyr7qjm9m22963f"
-                     else if stdenv.isLinux then "0m13y66a6w64s31qbi3j5x8jll6dfrin890jah8kyncsvlyisqg3"
+                     else if stdenv.isLinux then "14d6nhv525pa8pi4p1r2mn180isfzgshqrbmql3qd55aksjpq1v0"
                      else throw "unsupported platform";
     platformLdLibraryPath = if stdenv.isDarwin then "DYLD_FALLBACK_LIBRARY_PATH"
                      else if stdenv.isLinux then "LD_LIBRARY_PATH"
@@ -15,7 +15,7 @@ let platformString = if stdenv.isDarwin then "osx"
 in
 stdenv.mkDerivation rec {
   pname = "powershell";
-  version = "7.0.0";
+  version = "7.0.1";
 
   src = fetchzip {
     url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-${platformString}-x64.tar.gz";
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   dontStrip = true;
 
   doInstallCheck = true;
-  installCheck = ''
+  installCheckPhase = ''
     $out/bin/pwsh --help > /dev/null
   '';
 
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/tcsh/default.nix b/pkgs/shells/tcsh/default.nix
index e22811828fc..87cbf8c59f3 100644
--- a/pkgs/shells/tcsh/default.nix
+++ b/pkgs/shells/tcsh/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   patches = stdenv.lib.optional stdenv.hostPlatform.isMusl
     (fetchpatch {
       name = "sysmalloc.patch";
-      url = "https://git.alpinelinux.org/cgit/aports/plain/community/tcsh/001-sysmalloc.patch?id=184585c046cdd56512f1a76e426dd799b368f8cf";
+      url = "https://git.alpinelinux.org/aports/plain/community/tcsh/001-sysmalloc.patch?id=184585c046cdd56512f1a76e426dd799b368f8cf";
       sha256 = "1qc6ydxhdfizsbkaxhpn3wib8sfphrw10xnnsxx2prvzg9g2zp67";
     });
 
diff --git a/pkgs/shells/xonsh/default.nix b/pkgs/shells/xonsh/default.nix
index 192e38b963d..5d6a8a6065b 100644
--- a/pkgs/shells/xonsh/default.nix
+++ b/pkgs/shells/xonsh/default.nix
@@ -8,14 +8,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "xonsh";
-  version = "0.9.18";
+  version = "0.9.19";
 
   # fetch from github because the pypi package ships incomplete tests
   src = fetchFromGitHub {
     owner  = "xonsh";
     repo   = "xonsh";
     rev    = version;
-    sha256 = "1zg5dl9qdysbaw2djy9f7f1ydp7vzjv840cjwqxlmg9615lgg7xa";
+    sha256 = "1s7nb23zh4may4k3c9yfiizfdflm97hf5q2aww4j6ibykgcydv64";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/shells/zsh/antibody/default.nix b/pkgs/shells/zsh/antibody/default.nix
index cc4726a3cb4..c1d02f3cd40 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.0";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "getantibody";
     repo = "antibody";
     rev = "v${version}";
-    sha256 = "0m7c879b3f402av20jsybq2dhhckbknlvn2n1csp7xmcz4zcyn1n";
+    sha256 = "0ldvihpm14h0gcn7iz5yxg1wbfv24flx6y8khdanw21lf9nmp59z";
   };
 
-  modSha256 = "0yny1p8vll1wdqdlwyxf9m4kd5njdm7nq527blqqa680zf2k4h8b";
+  vendorSha256 = "0z8fma3v2dph8nv3q4lmv43s6p5sc338xb7kcmnpwcc0iw7b4vyj";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/pkgs/shells/zsh/grml-zsh-config/default.nix b/pkgs/shells/zsh/grml-zsh-config/default.nix
index e76ca684210..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.16.1";
+  version = "0.17.4";
 
   src = fetchFromGitHub {
     owner = "grml";
     repo = "grml-etc-core";
     rev = "v${version}";
-    sha256 = "1dmhwgs5v4f1yanbi6dg1lbpzmvq1l3dq7sra811ycsf4f6g0d7f";
+    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 87ef5ecbde5..2fce32e018e 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -4,13 +4,13 @@
 { stdenv, fetchgit }:
 
 stdenv.mkDerivation rec {
-  version = "2020-05-07";
+  version = "2020-08-24";
   pname = "oh-my-zsh";
-  rev = "b876198575cbf23d589ddc8da6b22254d3d5358b";
+  rev = "cfb86cd08d3b24fd4b59d0d35b3af1f589c891fa";
 
   src = fetchgit { inherit rev;
     url = "https://github.com/ohmyzsh/ohmyzsh";
-    sha256 = "0vx3pi9wk9crmwgkpd3nwp88ci6ly0savj6v2md7qazmimgffsfi";
+    sha256 = "0af37smv0bqw37bng2halzgszf8y3m2sxahdff54m16asm0py2cr";
   };
 
   pathsToLink = [ "/share/oh-my-zsh" ];
@@ -35,6 +35,17 @@ stdenv.mkDerivation rec {
          -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
diff --git a/pkgs/shells/zsh/pure-prompt/default.nix b/pkgs/shells/zsh/pure-prompt/default.nix
new file mode 100644
index 00000000000..bfcd3be5e9c
--- /dev/null
+++ b/pkgs/shells/zsh/pure-prompt/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  pname = "pure-prompt";
+  version = "1.13.0";
+
+  src = fetchFromGitHub {
+    owner = "sindresorhus";
+    repo = "pure";
+    rev = "v${version}";
+    sha256 = "16q9v4c8lagp4vxm7qhagilqnwf1g4pbds56x5wfj4cwc0x2gclw";
+  };
+
+  installPhase = ''
+    OUTDIR="$out/share/zsh/site-functions"
+    mkdir -p "$OUTDIR"
+    cp pure.zsh "$OUTDIR/prompt_pure_setup"
+    cp async.zsh "$OUTDIR/async"
+  '';
+
+  meta = {
+    description = "Pretty, minimal and fast ZSH prompt";
+    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 f839cf7cf2e..3d48467a246 100644
--- a/pkgs/shells/zsh/zsh-history/default.nix
+++ b/pkgs/shells/zsh/zsh-history/default.nix
@@ -13,8 +13,9 @@ buildGoModule rec {
 
   nativeBuildInputs = [ installShellFiles ];
 
-  modSha256 = "0f10b86gyn7m7lw43c8y1m30mdg0i092a319v3cb2qj05jb9vn42";
-  goPackagePath = "github.com/b4b4r07/history";
+  vendorSha256 = "13rc1afds5xg30faqz35haha4kxg73b5nvjirbrkc6kna0vhb54z";
+
+  doCheck = false;
 
   postInstall = ''
     install -d $out/share
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 169173a42e8..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.7.0";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "powerlevel10k";
     rev = "v${version}";
-    sha256 = "04j37qmgzj62gixysj3di9dccfib4hx1c4ld9kcms3ag7k403bgj";
+    sha256 = "08zg4in70h3kray6lazszzy26gvil9w2cr6xmkbgjsv3k6w3k0jg";
   };
 
   patches = [
@@ -25,8 +25,7 @@ stdenv.mkDerivation rec {
     install -D powerlevel10k.zsh-theme --target-directory=$out/share/zsh-powerlevel10k
     install -D config/* --target-directory=$out/share/zsh-powerlevel10k/config
     install -D internal/* --target-directory=$out/share/zsh-powerlevel10k/internal
-    rm -r gitstatus/bin
-    install -D gitstatus/* --target-directory=$out/share/zsh-powerlevel10k/gitstatus
+    cp -R gitstatus $out/share/zsh-powerlevel10k/gitstatus
   '';
 
   meta = {
diff --git a/pkgs/shells/zsh/zsh-powerlevel10k/gitstatusd.patch b/pkgs/shells/zsh/zsh-powerlevel10k/gitstatusd.patch
index a4440079e4b..3d1c1eaa36d 100644
--- a/pkgs/shells/zsh/zsh-powerlevel10k/gitstatusd.patch
+++ b/pkgs/shells/zsh/zsh-powerlevel10k/gitstatusd.patch
@@ -1,8 +1,8 @@
 diff --git a/gitstatus/gitstatus.plugin.zsh b/gitstatus/gitstatus.plugin.zsh
-index 46d0b3c..b082e24 100644
+index b469072..eb1e3be 100644
 --- a/gitstatus/gitstatus.plugin.zsh
 +++ b/gitstatus/gitstatus.plugin.zsh
-@@ -53,6 +53,8 @@
+@@ -44,6 +44,8 @@
  
  [[ -o 'interactive' ]] || 'return'
  
@@ -11,4 +11,3 @@ index 46d0b3c..b082e24 100644
  # Temporarily change options.
  'builtin' 'local' '-a' '_gitstatus_opts'
  [[ ! -o 'aliases'         ]] || _gitstatus_opts+=('aliases')
-
diff --git a/pkgs/shells/zsh/zsh-prezto/default.nix b/pkgs/shells/zsh/zsh-prezto/default.nix
index ec6288a6e63..9f7a7f18704 100644
--- a/pkgs/shells/zsh/zsh-prezto/default.nix
+++ b/pkgs/shells/zsh/zsh-prezto/default.nix
@@ -1,11 +1,13 @@
-{ stdenv, fetchgit }:
+{ stdenv, fetchFromGitHub }:
 
-stdenv.mkDerivation {
-  name = "zsh-prezto-2019-03-18";
-  src = fetchgit {
-    url = "https://github.com/sorin-ionescu/prezto";
-    rev = "1f4601e44c989b90dc7314b151891fa60a101251";
-    sha256 = "1dcd5r7pc4biiplm0lh7yca0h6hs0xpaq9dwaarmfsh9wrd68350";
+stdenv.mkDerivation rec {
+  pname = "zsh-prezto";
+  version = "2020-05-20";
+  src = fetchFromGitHub {
+    owner = "sorin-ionescu";
+    repo = "prezto";
+    rev = "793f239a5e38ef2c4b76a4955bb734520303e8c4";
+    sha256 = "0xhdl1g0rvlikq6qxh6cwp6wsrgmw4l1rmmq5xpc7wl6dyh35yri";
     fetchSubmodules = true;
   };
   buildPhase = ''
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 ef1ebfc32c1..9de6ef63bfe 100644
--- a/pkgs/stdenv/darwin/default.nix
+++ b/pkgs/stdenv/darwin/default.nix
@@ -36,9 +36,7 @@ in rec {
     export NIX_IGNORE_LD_THROUGH_GCC=1
     export SDKROOT=
 
-    # Ensure consistent LC_VERSION_MIN_MACOSX and remove LC_UUID.
     export MACOSX_DEPLOYMENT_TARGET=${macosVersionMin}
-    export NIX_LDFLAGS+=" -macosx_version_min ${macosVersionMin} -sdk_version ${appleSdkVersion} -no_uuid"
 
     # Workaround for https://openradar.appspot.com/22671534 on 10.11.
     export gl_cv_func_getcwd_abort_bug=no
@@ -92,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; };
@@ -170,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 {
@@ -307,7 +306,7 @@ in rec {
       inherit
         gnumake gzip gnused bzip2 gawk ed xz patch bash python3
         ncurses libffi zlib gmp pcre gnugrep
-        coreutils findutils diffutils patchutils ninja;
+        coreutils findutils diffutils patchutils ninja libxml2;
 
       # Hack to make sure we don't link ncurses in bootstrap tools. The proper
       # solution is to avoid passing -L/nix-store/...-bootstrap-tools/lib,
@@ -321,7 +320,7 @@ in rec {
       llvmPackages_7 = super.llvmPackages_7 // (let
         tools = super.llvmPackages_7.tools.extend (llvmSelf: _: {
           clang-unwrapped = llvmPackages_7.clang-unwrapped.override { llvm = llvmSelf.llvm; };
-          llvm = llvmPackages_7.llvm.override { libxml2 = self.darwin.libxml2-nopython; };
+          llvm = llvmPackages_7.llvm.override { inherit libxml2; };
         });
         libraries = super.llvmPackages_7.libraries.extend (llvmSelf: _: {
           inherit (llvmPackages_7) libcxx libcxxabi compiler-rt;
@@ -332,9 +331,8 @@ in rec {
         inherit (darwin) dyld Libsystem libiconv locale;
 
         cctools = super.darwin.cctools.override { enableTapiSupport = false; };
-        libxml2-nopython = super.libxml2.override { pythonSupport = false; };
         CF = super.darwin.CF.override {
-          libxml2 = libxml2-nopython;
+          inherit libxml2;
           python3 = prevStage.python3;
         };
       };
@@ -419,9 +417,9 @@ in rec {
       gnugrep llvmPackages.clang-unwrapped llvmPackages.clang-unwrapped.lib patch pcre.out gettext
       binutils.bintools darwin.binutils darwin.binutils.bintools
       curl.out openssl.out libssh2.out nghttp2.lib libkrb5
-      cc.expand-response-params
+      cc.expand-response-params libxml2.out
     ]) ++ (with pkgs.darwin; [
-      dyld Libsystem CF cctools ICU libiconv locale libxml2-nopython.out
+      dyld Libsystem CF cctools ICU libiconv locale
     ]);
 
     overrides = lib.composeExtensions persistent (self: super: {
diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix
index 21ae809a222..c06f17b6fc1 100644
--- a/pkgs/stdenv/generic/check-meta.nix
+++ b/pkgs/stdenv/generic/check-meta.nix
@@ -108,7 +108,12 @@ let
         You can install it anyway by whitelisting this package, using the
         following methods:
 
-        a) for `nixos-rebuild` you can add ‘${getName attrs}’ to
+        a) To temporarily allow all insecure packages, you can use an environment
+           variable for a single invocation of the nix tools:
+
+             $ export NIXPKGS_ALLOW_INSECURE=1
+
+        b) for `nixos-rebuild` you can add ‘${getName attrs}’ to
            `nixpkgs.config.permittedInsecurePackages` in the configuration.nix,
            like so:
 
@@ -118,9 +123,9 @@ let
                ];
              }
 
-        b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
-        ‘${getName attrs}’ to `permittedInsecurePackages` in
-        ~/.config/nixpkgs/config.nix, like so:
+        c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
+           ‘${getName attrs}’ to `permittedInsecurePackages` in
+           ~/.config/nixpkgs/config.nix, like so:
 
              {
                permittedInsecurePackages = [
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index 77d70e84258..b5798978690 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -98,7 +98,7 @@ let
       # TODO: This really wants to be in stdenv/darwin but we don't have hostPlatform
       # there (yet?) so it goes here until then.
       preHook = preHook+ lib.optionalString buildPlatform.isDarwin ''
-        export NIX_BUILD_DONT_SET_RPATH=1
+        export NIX_DONT_SET_RPATH_FOR_BUILD=1
       '' + lib.optionalString (hostPlatform.isDarwin || (hostPlatform.parsed.kernel.execFormat != lib.systems.parse.execFormats.elf && hostPlatform.parsed.kernel.execFormat != lib.systems.parse.execFormats.macho)) ''
         export NIX_DONT_SET_RPATH=1
         export NIX_NO_SELF_RPATH=1
@@ -107,7 +107,7 @@ let
       # think the best solution would just be to fixup linux RPATHs so we don't
       # need to set `-rpath` anywhere.
       # + lib.optionalString targetPlatform.isDarwin ''
-      #   export NIX_TARGET_DONT_SET_RPATH=1
+      #   export NIX_DONT_SET_RPATH_FOR_TARGET=1
       # ''
       ;
 
@@ -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 09879451d8e..5b1c380548f 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}"
@@ -262,7 +263,7 @@ in rec {
               else if isx86_32  then "x86"
               else if isx86_64  then "x86_64"
               else platform.parsed.cpu.family + builtins.toString platform.parsed.cpu.bits;
-            crossFile = builtins.toFile "cross-file.conf" (''
+            crossFile = builtins.toFile "cross-file.conf" ''
               [properties]
               needs_exe_wrapper = true
 
@@ -271,13 +272,7 @@ in rec {
               cpu_family = '${cpuFamily stdenv.targetPlatform}'
               cpu = '${stdenv.targetPlatform.parsed.cpu.name}'
               endian = ${if stdenv.targetPlatform.isLittleEndian then "'little'" else "'big'"}
-            ''
-            # TODO should have target prefix too, issue #86077
-            + ''
-
-              [binaries]
-              pkgconfig = 'pkg-config'
-            '');
+            '';
           in [ "--cross-file=${crossFile}" ] ++ mesonFlags;
         } // lib.optionalAttrs (attrs.enableParallelBuilding or false) {
           enableParallelChecking = attrs.enableParallelChecking or true;
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/test/cross/default.nix b/pkgs/test/cross/default.nix
index 6c31a16f2fd..c5a24143773 100644
--- a/pkgs/test/cross/default.nix
+++ b/pkgs/test/cross/default.nix
@@ -13,7 +13,7 @@ let
   compareTest = { emulator, pkgFun, hostPkgs, crossPkgs, exec, args ? [] }: let
     pkgName = (pkgFun hostPkgs).name;
     args' = lib.concatStringsSep " " args;
-  in pkgs.runCommand "test-${pkgName}-${crossPkgs.hostPlatform.config}" {
+  in crossPkgs.runCommand "test-${pkgName}-${crossPkgs.hostPlatform.config}" {
     nativeBuildInputs = [ pkgs.dos2unix ];
   } ''
     # Just in case we are using wine, get rid of that annoying extra
@@ -91,6 +91,20 @@ let
       pkgFun = pkgs: pkgs.hello;
     };
 
+    pkg-config = {platformFun, crossPkgs, emulator}: crossPkgs.runCommand
+      "test-pkg-config-${crossPkgs.hostPlatform.config}"
+    {
+      depsBuildBuild = [ crossPkgs.pkgsBuildBuild.pkg-config ];
+      nativeBuildInputs = [ crossPkgs.pkgsBuildHost.pkg-config crossPkgs.buildPackages.zlib ];
+      depsBuildTarget = [ crossPkgs.pkgsBuildTarget.pkg-config ];
+      buildInputs = [ crossPkgs.zlib ];
+      NIX_DEBUG = 7;
+    } ''
+       mkdir $out
+       ${crossPkgs.pkgsBuildBuild.pkg-config.targetPrefix}pkg-config --cflags zlib > "$out/for-build"
+       ${crossPkgs.pkgsBuildHost.pkg-config.targetPrefix}pkg-config --cflags zlib > "$out/for-host"
+       ! diff "$out/for-build" "$out/for-host"
+    '';
   };
 
 in {
diff --git a/pkgs/test/kernel.nix b/pkgs/test/kernel.nix
index 86f1b8d8e9a..a4da1003033 100644
--- a/pkgs/test/kernel.nix
+++ b/pkgs/test/kernel.nix
@@ -1,53 +1,79 @@
+# to run these tests:
+# nix-instantiate --eval --strict . -A tests.kernel-config
+#
+# make sure to use NON EXISTING kernel settings else they may conflict with
+# common-config.nix
 { lib, pkgs }:
 
-with lib.kernel;
-with lib.asserts;
-with lib.modules;
+with lib;
+with kernel;
 
-# To test nixos/modules/system/boot/kernel_config.nix;
 let
-  # copied from release-lib.nix
-  assertTrue = bool:
-    if bool
-    then pkgs.runCommand "evaluated-to-true" {} "touch $out"
-    else pkgs.runCommand "evaluated-to-false" {} "false";
-
   lts_kernel = pkgs.linuxPackages.kernel;
 
-  kernelTestConfig = structuredConfig: (lts_kernel.override {
-    structuredExtraConfig = structuredConfig;
-  }).configfile.structuredConfig;
+  # to see the result once the module transformed the lose structured config
+  getConfig = structuredConfig:
+    (lts_kernel.override {
+      structuredExtraConfig = structuredConfig;
+    }).configfile.structuredConfig;
 
   mandatoryVsOptionalConfig = mkMerge [
-    { USB_DEBUG = option yes;}
-    { USB_DEBUG = yes;}
+    { NIXOS_FAKE_USB_DEBUG = yes;}
+    { NIXOS_FAKE_USB_DEBUG = option yes; }
   ];
 
   freeformConfig = mkMerge [
-    { MMC_BLOCK_MINORS = freeform "32"; } # same as default, won't trigger any error
-    { MMC_BLOCK_MINORS = freeform "64"; } # will trigger an error but the message is not great:
+    { NIXOS_FAKE_MMC_BLOCK_MINORS = freeform "32"; } # same as default, won't trigger any error
+    { NIXOS_FAKE_MMC_BLOCK_MINORS = freeform "64"; } # will trigger an error but the message is not great:
   ];
 
   yesWinsOverNoConfig = mkMerge [
-    # default for "8139TOO_PIO" is no
-    { "8139TOO_PIO"  = yes; } # yes wins over no by default
-    { "8139TOO_PIO"  = no; }
+    # default for "NIXOS_TEST_BOOLEAN" is no
+    { "NIXOS_TEST_BOOLEAN"  = yes; } # yes wins over no by default
+    { "NIXOS_TEST_BOOLEAN"  = no; }
+  ];
+
+  optionalNoWins = mkMerge [
+    { NIXOS_FAKE_USB_DEBUG = option yes;}
+    { NIXOS_FAKE_USB_DEBUG = yes;}
+  ];
+
+  allOptionalRemainOptional = mkMerge [
+    { NIXOS_FAKE_USB_DEBUG = option yes;}
+    { NIXOS_FAKE_USB_DEBUG = option yes;}
   ];
+
 in
-{
+runTests {
+  testEasy = {
+    expr = (getConfig { NIXOS_FAKE_USB_DEBUG = yes;}).NIXOS_FAKE_USB_DEBUG;
+    expected = { tristate = "y"; optional = false; freeform = null; };
+  };
+
   # mandatory flag should win over optional
-  mandatoryCheck = (kernelTestConfig mandatoryVsOptionalConfig);
+  testMandatoryCheck = {
+    expr = (getConfig mandatoryVsOptionalConfig).NIXOS_FAKE_USB_DEBUG.optional;
+    expected = false;
+  };
+
+  testYesWinsOverNo = {
+    expr = (getConfig yesWinsOverNoConfig)."NIXOS_TEST_BOOLEAN".tristate;
+    expected = "y";
+  };
+
+  testAllOptionalRemainOptional = {
+    expr = (getConfig allOptionalRemainOptional)."NIXOS_FAKE_USB_DEBUG".optional;
+    expected = true;
+  };
 
   # check that freeform options are unique
   # Should trigger
-  # > The option `settings.MMC_BLOCK_MINORS.freeform' has conflicting definitions, in `<unknown-file>' and `<unknown-file>'
-  freeformCheck = let
-    res = builtins.tryEval ( (kernelTestConfig freeformConfig).MMC_BLOCK_MINORS.freeform);
-  in
-    assertTrue (res.success == false);
-
-  yesVsNoCheck = let
-    res = kernelTestConfig yesWinsOverNoConfig;
-  in
-    assertTrue (res."8139TOO_PIO".tristate == "y");
+  # > The option `settings.NIXOS_FAKE_MMC_BLOCK_MINORS.freeform' has conflicting definitions, in `<unknown-file>' and `<unknown-file>'
+  testTreeform = let
+    res = builtins.tryEval ( (getConfig freeformConfig).NIXOS_FAKE_MMC_BLOCK_MINORS.freeform);
+  in {
+    expr = res.success;
+    expected = false;
+  };
+
 }
diff --git a/pkgs/tools/X11/alttab/default.nix b/pkgs/tools/X11/alttab/default.nix
index 28c8efffa2a..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 = [ 
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     xorg.libXrender
   ];
 
-  enableParallelBuild = true;
+  enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/sagb/alttab";
diff --git a/pkgs/tools/X11/ckbcomp/default.nix b/pkgs/tools/X11/ckbcomp/default.nix
index dc665bf9c41..74a6777d949 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.194";
+  version = "1.195";
 
   src = fetchFromGitLab {
     domain = "salsa.debian.org";
     owner = "installer-team";
     repo = "console-setup";
     rev = version;
-    sha256 = "0fkabv05j5dj10mfrpjyvv7lnxl9qaqkbjhwj72r18i9i4019vgh";
+    sha256 = "0d0xagigs5k3appzz5lzxdjncvnkgz4amz6ks7imiq8kkjixvmfy";
   };
 
   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/ksuperkey/default.nix b/pkgs/tools/X11/ksuperkey/default.nix
index 1472e39c83c..d5c2232dce1 100644
--- a/pkgs/tools/X11/ksuperkey/default.nix
+++ b/pkgs/tools/X11/ksuperkey/default.nix
@@ -1,27 +1,26 @@
-{ stdenv, fetchgit, libX11, libXtst, pkgconfig, xorgproto, libXi }:
+{ stdenv, fetchFromGitHub, libX11, libXtst, pkgconfig, xorgproto, libXi }:
 
-stdenv.mkDerivation {
-  name = "ksuperkey-git-2015-07-21";
+stdenv.mkDerivation rec {
+  pname = "ksuperkey";
+  version = "0.4";
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [
-    libX11 libXtst xorgproto libXi
-  ];
-
-  src = fetchgit {
-    url = "https://github.com/hanschen/ksuperkey";
-    rev = "e75a31a0e3e80b14341e92799a7ce3232ac37639";
-    sha256 = "0y4wkak9dvcm14g54ll1ln9aks2az63hx8fv7b8d3nscxjbkxl6g";
+  src = fetchFromGitHub {
+    owner = "hanschen";
+    repo = "ksuperkey";
+    rev = "v${version}";
+    sha256 = "1dvgf356fihfav8pjzww1q6vgd96c5h18dh8vpv022g9iipiwq8a";
   };
 
-  preConfigure = ''
-    makeFlags="$makeFlags PREFIX=$out"
-  '';
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libX11 libXtst xorgproto libXi ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A tool to be able to bind the super key as a key rather than a modifier";
-    license = stdenv.lib.licenses.gpl3;
-    maintainers = [ stdenv.lib.maintainers.vozz ];
-    platforms = stdenv.lib.platforms.linux;
+    homepage = "https://github.com/hanschen/ksuperkey";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.vozz ];
+    platforms = platforms.linux;
   };
 }
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/wpgtk/default.nix b/pkgs/tools/X11/wpgtk/default.nix
index 4125229237a..2aa05935991 100644
--- a/pkgs/tools/X11/wpgtk/default.nix
+++ b/pkgs/tools/X11/wpgtk/default.nix
@@ -3,13 +3,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "wpgtk";
-  version = "6.0.13";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "deviantfero";
     repo = "wpgtk";
     rev = version;
-    sha256 = "1fphv6k2hqfi3fzazjqmvip7sz9fhy5ccsgpqv68vfylrf8g1f92";
+    sha256 = "06z6qbfd9l3acp3wm28rq4vx3m5cxi4lpxgzc2nxvxmiz8rnnmh1";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/X11/xbanish/default.nix b/pkgs/tools/X11/xbanish/default.nix
index af522cca9e1..6267cd1a34c 100644
--- a/pkgs/tools/X11/xbanish/default.nix
+++ b/pkgs/tools/X11/xbanish/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchFromGitHub, libX11, libXi, libXt, libXfixes, libXext}:
 
 stdenv.mkDerivation rec {
-  version = "1.6";
+  version = "1.7";
   pname = "xbanish";
 
   buildInputs = [
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     owner = "jcs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vp8ja68hpmqkl61zyjar3czhmny1hbm74m8f393incfz1ymr3i8";
+    sha256 = "0ic5f7zgc32p5g1wxas9y5h8dhik0pvsa8wmn6skdry56gw9vg9q";
   };
 
   makeFlags=[ "PREFIX=$(out)" ];
diff --git a/pkgs/tools/X11/xbindkeys/default.nix b/pkgs/tools/X11/xbindkeys/default.nix
index e844f444309..71316bdb36c 100644
--- a/pkgs/tools/X11/xbindkeys/default.nix
+++ b/pkgs/tools/X11/xbindkeys/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, pkgconfig, libX11, guile }:
 
-let version = "1.8.6"; in
+let version = "1.8.7"; in
 stdenv.mkDerivation {
   pname = "xbindkeys";
   inherit version;
   src = fetchurl {
     url = "https://www.nongnu.org/xbindkeys/xbindkeys-${version}.tar.gz";
-    sha256 = "060df6d8y727jp1inp7blp44cs8a7jig7vcm8ndsn6gw36z1h3bc";
+    sha256 = "1wl2vc5alisiwyk8m07y1ryq8w3ll9ym83j27g4apm4ixjl8d6x2";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/X11/xdg-utils/default.nix b/pkgs/tools/X11/xdg-utils/default.nix
index 64b205bada5..ccea6a2233c 100644
--- a/pkgs/tools/X11/xdg-utils/default.nix
+++ b/pkgs/tools/X11/xdg-utils/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
     xset()  { ${xset}/bin/xset      "$@"; }\
     perl()  { PERL5LIB=${perlPath} ${perlPackages.perl}/bin/perl "$@"; }\
     mimetype() { ${perlPackages.FileMimeInfo}/bin/mimetype "$@"; }\
+    PATH=$PATH:'"$out"'/bin\
     &#' -i "$out"/bin/*
 
     substituteInPlace $out/bin/xdg-open \
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/xlayoutdisplay/default.nix b/pkgs/tools/X11/xlayoutdisplay/default.nix
index 47a2c8f3f3e..9ca3f24b618 100644
--- a/pkgs/tools/X11/xlayoutdisplay/default.nix
+++ b/pkgs/tools/X11/xlayoutdisplay/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xlayoutdisplay";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "alex-courtis";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ldqbwsryy7mqhxywdn2c2yi1mzlnl39sw8p3vx10w6q9drya9iv";
+    sha256 = "0n3vg25gzwn1pcg6caxyyd1xf2w6n98m6jpxc70kqpxfqldxwl0m";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix
index 1f9efc31061..7f46e017c36 100644
--- a/pkgs/tools/X11/xpra/default.nix
+++ b/pkgs/tools/X11/xpra/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl, callPackage, substituteAll, python3, pkgconfig, writeText
 , xorg, gtk3, glib, pango, cairo, gdk-pixbuf, atk
 , wrapGAppsHook, xorgserver, getopt, xauth, utillinux, which
-, ffmpeg_4, x264, libvpx, libwebp, x265
+, ffmpeg, x264, libvpx, libwebp, x265
 , libfakeXinerama
 , gst_all_1, pulseaudio, gobject-introspection
 , pam }:
@@ -30,18 +30,20 @@ let
 
 in buildPythonApplication rec {
   pname = "xpra";
-  version = "3.0.8";
+  version = "4.0.2";
 
   src = fetchurl {
     url = "https://xpra.org/src/${pname}-${version}.tar.xz";
-    sha256 = "0d78bn7s03nwnyc4ryznxaivbg55kvsb26q75p8747j3562s9p2b";
+    sha256 = "1cs39jzi59hkl421xmhi549ndmdfzkg0ap45f4nlsn9zr9zwmp3x";
   };
 
   patches = [
     (substituteAll {
       src = ./fix-paths.patch;
       inherit (xorg) xkeyboardconfig;
+      inherit libfakeXinerama;
     })
+    ./fix-41106.patch
   ];
 
   postPatch = ''
@@ -58,7 +60,7 @@ in buildPythonApplication rec {
 
     pango cairo gdk-pixbuf atk.out gtk3 glib
 
-    ffmpeg_4 libvpx x264 libwebp x265
+    ffmpeg libvpx x264 libwebp x265
 
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-base
@@ -83,15 +85,17 @@ in buildPythonApplication rec {
     "--with-Xdummy"
     "--without-strict"
     "--with-gtk3"
-    "--without-gtk2"
     # Override these, setup.py checks for headers in /usr/* paths
     "--with-pam"
     "--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/fix-41106.patch b/pkgs/tools/X11/xpra/fix-41106.patch
new file mode 100644
index 00000000000..d0834543aa9
--- /dev/null
+++ b/pkgs/tools/X11/xpra/fix-41106.patch
@@ -0,0 +1,15 @@
+diff --git a/xpra/server/server_util.py b/xpra/server/server_util.py
+index dd7c7c1..066b9ff 100644
+--- a/xpra/server/server_util.py
++++ b/xpra/server/server_util.py
+@@ -37,6 +37,10 @@ def sh_quotemeta(s):
+     return b"'" + s.replace(b"'", b"'\\''") + b"'"
+ 
+ def xpra_runner_shell_script(xpra_file, starting_dir, socket_dir):
++    # Nixpkgs contortion:
++    # xpra_file points to a shell wrapper, not to the python script.
++    dirname, basename = os.path.split(xpra_file)
++    xpra_file = os.path.join(dirname, "."+basename+"-wrapped")
+     script = []
+     script.append(b"#!/bin/sh\n")
+     for var, value in os.environb.items():
diff --git a/pkgs/tools/X11/xpra/fix-paths.patch b/pkgs/tools/X11/xpra/fix-paths.patch
index a934e5e4cc3..70bd9027a1a 100644
--- a/pkgs/tools/X11/xpra/fix-paths.patch
+++ b/pkgs/tools/X11/xpra/fix-paths.patch
@@ -1,13 +1,13 @@
-gdiff --git a/setup.py b/setup.py
-index 8d3df15..6156206 100755
+diff --git a/setup.py b/setup.py
+index f962330..b02b6dd 100755
 --- a/setup.py
 +++ b/setup.py
- -2322,11 +2322,7 @@ if v4l2_ENABLED:                                                                                                                                                       
-     videodev2_h = "/usr/include/linux/videodev2.h"                                                                                                                                           
-     constants_pxi = "xpra/codecs/v4l2/constants.pxi"                                                                                                                                         
-     if not os.path.exists(videodev2_h) or should_rebuild(videodev2_h, constants_pxi):                                                                                                        
--        ENABLE_DEVICE_CAPS = 0                                                                                                                                                               
--        if os.path.exists(videodev2_h):                                                                                                                                                      
+@@ -2224,11 +2224,7 @@ if v4l2_ENABLED:
+     videodev2_h = "/usr/include/linux/videodev2.h"
+     constants_pxi = "xpra/codecs/v4l2/constants.pxi"
+     if not os.path.exists(videodev2_h) or should_rebuild(videodev2_h, constants_pxi):
+-        ENABLE_DEVICE_CAPS = 0
+-        if os.path.exists(videodev2_h):
 -            with open(videodev2_h) as f:
 -                hdata = f.read()
 -            ENABLE_DEVICE_CAPS = int(hdata.find("device_caps")>=0)
@@ -29,3 +29,40 @@ index bd7023d..064c6b5 100644
 
  ###################################
  # Headers, python magic
+diff --git a/xpra/x11/fakeXinerama.py b/xpra/x11/fakeXinerama.py
+index c867258..617af7c 100755
+--- a/xpra/x11/fakeXinerama.py
++++ b/xpra/x11/fakeXinerama.py
+@@ -22,31 +22,7 @@ fakeXinerama_config_files = [
+            ]
+ 
+ def find_libfakeXinerama():
+-    libname = "fakeXinerama"
+-    try:
+-        from ctypes.util import find_library
+-        flibname = find_library("fakeXinerama")
+-        if flibname:
+-            libname = flibname
+-    except Exception:
+-        pass
+-    if POSIX:
+-        for lib_dir in os.environ.get("LD_LIBRARY_PATH", "/usr/lib").split(os.pathsep):
+-            lib_path = os.path.join(lib_dir, libname)
+-            if not os.path.exists(lib_dir):
+-                continue
+-            if os.path.exists(lib_path) and os.path.isfile(lib_path):
+-                return lib_path
+-    if LINUX:
+-        try:
+-            libpath = find_lib_ldconfig("fakeXinerama")
+-            if libpath:
+-                return libpath
+-        except Exception as e:
+-            log("find_libfakeXinerama()", exc_info=True)
+-            log.error("Error: cannot launch ldconfig -p to locate libfakeXinerama:")
+-            log.error(" %s", e)
+-    return find_lib(libname)
++    return "@libfakeXinerama@/lib/libfakeXinerama.so.1.0"
+ 
+ current_xinerama_config = None
+ 
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/X11/xsecurelock/default.nix b/pkgs/tools/X11/xsecurelock/default.nix
index effdd76ce9d..99d695df267 100644
--- a/pkgs/tools/X11/xsecurelock/default.nix
+++ b/pkgs/tools/X11/xsecurelock/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
 , libX11, libXcomposite, libXft, libXmu, libXrandr, libXext, libXScrnSaver
-, pam, apacheHttpd, imagemagick, pamtester, xscreensaver, xset }:
+, pam, apacheHttpd, pamtester, xscreensaver }:
 
 stdenv.mkDerivation rec {
   pname = "xsecurelock";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   ];
   buildInputs = [
     libX11 libXcomposite libXft libXmu libXrandr libXext libXScrnSaver
-    pam apacheHttpd imagemagick pamtester
+    pam apacheHttpd pamtester
   ];
 
   configureFlags = [
diff --git a/pkgs/tools/X11/xwallpaper/default.nix b/pkgs/tools/X11/xwallpaper/default.nix
new file mode 100644
index 00000000000..ad2995b4ca6
--- /dev/null
+++ b/pkgs/tools/X11/xwallpaper/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, pkg-config, autoreconfHook, pixman, xcbutil, xcbutilimage
+, libseccomp, libjpeg, libpng, libXpm }:
+
+stdenv.mkDerivation rec {
+  pname = "xwallpaper";
+  version = "0.6.5";
+
+  src = fetchFromGitHub {
+    owner = "stoeckmann";
+    repo = "xwallpaper";
+    rev = "v${version}";
+    sha256 = "121ai4dc0v65qk12gn9w62ixly8hc8a5qrygkbb82vy8ck4jqxj7";
+  };
+
+  preConfigure = "./autogen.sh";
+
+  nativeBuildInputs = [ pkg-config autoreconfHook ];
+  buildInputs = [ pixman xcbutilimage xcbutil libseccomp libjpeg libpng libXpm ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/stoeckmann/xwallpaper";
+    description = "Utility for setting wallpapers in X";
+    license = licenses.isc;
+    maintainers = with maintainers; [ ivar ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix b/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
index b36daefa16b..30d74c14ce5 100644
--- a/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
+++ b/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "amazon-ecr-credential-helper";
-  version = "0.3.0";
+  version = "0.4.0";
 
   goPackagePath = "github.com/awslabs/amazon-ecr-credential-helper";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "awslabs";
     repo = "amazon-ecr-credential-helper";
     rev = "v${version}";
-    sha256 = "06pcwgahcbi13ca5rs6giwdw3w364lbvmzcs4ka82igvcffxjvnd";
+    sha256 = "1whwxjzlyzyvrf2mzbd7my2kdz5fdbr79g18g9h4xrg8xyzk1k5q";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/admin/ansible/default.nix b/pkgs/tools/admin/ansible/default.nix
index d0cb07197cd..58b2852baca 100644
--- a/pkgs/tools/admin/ansible/default.nix
+++ b/pkgs/tools/admin/ansible/default.nix
@@ -1,37 +1,32 @@
-{ python3Packages, fetchurl }:
+{ python3Packages, fetchurl, fetchFromGitHub }:
 
 rec {
-  ansible = ansible_2_8;
+  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.11";
-
-    src = fetchurl {
-      url = "https://releases.ansible.com/ansible/${pname}-${version}.tar.gz";
-      sha256 = "14f1m4jjkicadaz4d1dm8xhj53kdwksf0znmqzaz1fb0dj5slv0m";
+    version = "2.10.0";
+
+    # 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 {
-    pname = "ansible";
-    version = "2.7.17";
-
-    src = fetchurl {
-      url = "https://releases.ansible.com/ansible/${pname}-${version}.tar.gz";
-      sha256 = "1k2cz4w3r3an37305f40vi93wqixapls9y6ggkf75nbs7z27knwz";
-    };
-  }));
+  ansible_2_9 = python3Packages.toPythonApplication python3Packages.ansible;
 
-  ansible_2_6 = python3Packages.toPythonApplication (python3Packages.ansible.overridePythonAttrs (old: rec {
+  ansible_2_8 = python3Packages.toPythonApplication (python3Packages.ansible.overridePythonAttrs (old: rec {
     pname = "ansible";
-    version = "2.6.20";
+    version = "2.8.14";
 
     src = fetchurl {
       url = "https://releases.ansible.com/ansible/${pname}-${version}.tar.gz";
-      sha256 = "02ra9q2mifyawn0719y78wrbqzik73aymlzwi90fq71jgyfvkkqn";
+      sha256 = "19ga0c9qs2b216qjg5k2yknz8ksjn8qskicqspg2d4b8x2nr1294";
     };
   }));
 }
diff --git a/pkgs/tools/admin/aws-rotate-key/default.nix b/pkgs/tools/admin/aws-rotate-key/default.nix
index 228aa5a26a2..9c2f747e155 100644
--- a/pkgs/tools/admin/aws-rotate-key/default.nix
+++ b/pkgs/tools/admin/aws-rotate-key/default.nix
@@ -10,7 +10,7 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "Fullscreen";
     repo = "aws-rotate-key";
-    sha256 = "sha256:1w9704g1l2b0y6g6mk79g28kk0yaswpgljkk85d0i10wyxq4icby";
+    sha256 = "1w9704g1l2b0y6g6mk79g28kk0yaswpgljkk85d0i10wyxq4icby";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/tools/admin/aws-vault/default.nix b/pkgs/tools/admin/aws-vault/default.nix
index 48a1de61cd8..ef6f760de51 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.3.2";
+  version = "5.4.4";
 
   src = fetchFromGitHub {
     owner = "99designs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04dyibcaijv5011laycf39m4gvprvvsn5zkxslyih1kqd170w3wg";
+    sha256 = "0qmxq2jd7dg5fp9giw6xd96q2l2df3sxksc0rwmrgx2rjx6iyivn";
   };
 
-  modSha256 = "1d3hjfmfmlpw2scfyn597zkzz864w97p0wrsxjp49m9mi0pgmhq9";
+  vendorSha256 = "0jlraq480llamns6yw8yjkzxsndyqiyzy120djni8sw5h0bz65j7";
+
+  doCheck = false;
+
   subPackages = [ "." ];
 
   # set the version. see: aws-vault's Makefile
diff --git a/pkgs/tools/admin/aws_shell/default.nix b/pkgs/tools/admin/aws_shell/default.nix
deleted file mode 100644
index 104c2f1e44a..00000000000
--- a/pkgs/tools/admin/aws_shell/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv
-, awscli
-}:
-
-with awscli.python.pkgs;
-
-buildPythonPackage rec {
-  pname = "aws-shell";
-  version = "0.2.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "2044b0ef78c7542c392f2cee4b74a4439545c63dda0a3e28b712fff53e8e5823";
-  };
-
-  # Why does it propagate packages that are used for testing?
-  propagatedBuildInputs = [
-    awscli
-    prompt_toolkit
-    boto3
-    configobj
-    pygments
-    pyyaml
-  ];
-
-  postPatch = ''
-    substituteInPlace setup.py \
-     --replace "prompt-toolkit>=1.0.0,<1.1.0" "prompt-toolkit"
-  '';
-
-  #Checks are failing due to missing TTY, which won't exist.
-  doCheck = false;
-  preCheck = ''
-    mkdir -p check-phase
-    export HOME=$(pwd)/check-phase
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/awslabs/aws-shell";
-    description = "An integrated shell for working with the AWS CLI";
-    license = licenses.asl20;
-    maintainers = [ ];
-  };
-}
diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix
index d64736bc2c5..84b5d7ebeb2 100644
--- a/pkgs/tools/admin/awscli/default.nix
+++ b/pkgs/tools/admin/awscli/default.nix
@@ -19,15 +19,15 @@ let
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "awscli";
-  version = "1.17.13"; # N.B: if you change this, change botocore to a matching version too
+  version = "1.18.109"; # N.B: if you change this, change botocore to a matching version too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c42fc35d4e9f82ce72b2a8b8d54df3a57fe363b0763a473e72d0006b0d1e06ff";
+    sha256 = "eca463ca5447d7db2eeebd268217b7e73f7e9a22b750505a3efd655dc189ac84";
   };
 
   postPatch = ''
-    substituteInPlace setup.py --replace ",<0.16" ""
+    substituteInPlace setup.py --replace "docutils>=0.10,<0.16" "docutils>=0.10"
   '';
 
   # No tests included
diff --git a/pkgs/tools/admin/awscli2/default.nix b/pkgs/tools/admin/awscli2/default.nix
new file mode 100644
index 00000000000..c264c86260e
--- /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.0dev40";
+        src = fetchFromGitHub {
+          owner = "boto";
+          repo = "botocore";
+          rev = "6b3f96c5e985597053850f0c2761d503d4c18bfe";
+          sha256 = "1ffx86m3b592kj331800qbcz5f532z8kzf1wmd04i4bfiqvqn4h8";
+        };
+      });
+      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.36"; # N.B: if you change this, change botocore to a matching version too
+
+  src = fetchFromGitHub {
+    owner = "aws";
+    repo = "aws-cli";
+    rev = version;
+    hash = "sha256:05c9lss7jg7bwaij1nxwg50grah68zamcixy8jiw3hpc1vdighql";
+  };
+
+  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 fda773b48cd..2417854fcad 100644
--- a/pkgs/tools/admin/awsweeper/default.nix
+++ b/pkgs/tools/admin/awsweeper/default.nix
@@ -1,9 +1,15 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchurl, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "awsweeper";
   version = "0.7.0";
 
+  # Requires go generate to be run with mockgen, but doesn't check in the results.
+  patches = fetchurl {
+    url = "https://raw.githubusercontent.com/c00w/patches/master/awskeeper.patch";
+    sha256 = "0dz553ffxc37m2iwygrbhxf7pm91hxdriic8a1gjf8q3nyn13npl";
+  };
+
   src = fetchFromGitHub {
     owner = "cloudetc";
     repo = pname;
@@ -11,7 +17,9 @@ buildGoModule rec {
     sha256 = "1ybrrpnp6rh7rcwihww43cvhfhzzyy51rdk1hwy9ljpkg37k4y28";
   };
 
-  modSha256 = "07zz6wf9cq3wylihi9fx0rd85iybnq5z5c9gqw1lhpvqcrad4491";
+  vendorSha256 = "0hnpb1xp135z2qpn1b6xad59739hffhs8dfpr3n5drmrvajpn4xp";
+
+  doCheck = false;
 
   meta = with lib; {
     description = "A tool to clean out your AWS account";
diff --git a/pkgs/tools/admin/azure-cli/default.nix b/pkgs/tools/admin/azure-cli/default.nix
index f226a042420..192a788b935 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.4.0";
+  version = "2.10.1";
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    sha256 = "1j0h75cxrxa5yrijr7jfip7q5qrddaaqapd90f0qp2r4k9qb0y41";
+    sha256 = "03mard9cyffn109c1p0hrdi4cjxbwyk98677qrira9yvy6rw04bg";
   };
 
   # put packages that needs to be overriden in the py package scope
diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix
index b43b9bd2cb0..1ff74369432 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 {
@@ -61,6 +64,8 @@ let
           humanfriendly
           jmespath
           knack
+          msal
+          msal-extensions
           msrest
           msrestazure
           paramiko
@@ -119,8 +124,11 @@ let
       azure-mgmt-apimanagement = overrideAzureMgmtPackage super.azure-mgmt-apimanagement "0.1.0" "zip"
         "06bqqkn5mx127x1z7ycm6rl8ajxlrmrm2kcdpgkbl4baii1x6iax";
 
-      azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "0.4.0" "zip"
-        "1b69rz9wm0jvc54vx3b7h633x8gags51xwxrkp6myar40jggxw6g";
+      azure-mgmt-batch = overrideAzureMgmtPackage super.azure-mgmt-batch "9.0.0" "zip"
+        "1zn3yqwvm2f3sy8v0xvj4yb7m8kxxm1wpcaccxp91b0zzbn7wh83";
+
+      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";
@@ -131,35 +139,44 @@ 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.1.0" "zip"
+        "1pgxl2gzc1dm7akcqm6fl0y35sb3jdgcz6d7k6vsq93gb3gzrrwv";
 
-      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-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "0.12.0" "zip"
-        "07c0hr7nha9789x1wz0ndca0sr0zscq63m9vd8pm1c6y0ss4iyn5";
+      azure-mgmt-core = overrideAzureMgmtPackage super.azure-mgmt-core "1.0.0" "zip"
+        "0pm565v05480f672l0n8z2sg6zk6iqyi91n0dhscibhdl54sy3si";
+
+      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-iothub = overrideAzureMgmtPackage super.azure-mgmt-iothub "0.11.0" "zip"
-        "11887zf61ji1dh62czrsgxwz8idybw93m6iwahjy777jkdyviyzn";
+      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";
 
       azure-mgmt-iotcentral = overrideAzureMgmtPackage super.azure-mgmt-iotcentral "3.0.0" "zip"
         "0iq04hvivq3fvg2lhax95gx0x35avk5hps42227z3qna5i2cznpn";
@@ -167,29 +184,29 @@ let
       azure-mgmt-kusto = overrideAzureMgmtPackage super.azure-mgmt-kusto "0.3.0" "zip"
         "1pmcdgimd66h964a3d5m2j2fbydshcwhrk87wblhwhfl3xwbgf4y";
 
-      azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "2.2.0" "zip"
-        "15lpyv9z8ss47rjmg1wx5akh22p9br2vckaj7jk3639vi38ac5nl";
+      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.11.0" "zip"
+        "0193y0w5lcrayf8g0sxaj57w52kixdk3x5b8kga5is4pdjq7c6k2";
 
       azure-mgmt-dns = overrideAzureMgmtPackage super.azure-mgmt-dns "2.1.0" "zip"
         "1l55py4fzzwhxlmnwa41gpmqk9v2ncc79w7zq11sm9a5ynrv2c1p";
 
-      azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "0.2.0" "zip"
-        "11kx4ck58nhhn9zf5vq0rqh7lfh2yj758s6ainrqyqadxvq5ycf7";
+      azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "0.7.0" "zip"
+        "18n2lqvrhq40gdqhlzzg8mc03571i02c7qq7jv771lc58rqpzysh";
 
-      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "10.1.0" "zip"
-        "0fmsdwzyn167lwh87yyadq1bdc4q6rfz3gj5bh1mgavi9ghhxb75";
+      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "11.0.0" "zip"
+        "1g39rl4p88bzhqbn1gi2nn8jyx77idxvpaw8xqz1gjv0qqqwdpvz";
 
-      azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "1.1.1" "zip"
-        "16wk0ksycrscsn3n14qk4vvf7i567vq6f96lwf5dwbc81wx6n32x";
+      azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "2.1.0" "zip"
+        "1py0hch0wghzfxazdrrs7p0kln2zn9jh3fmkzwd2z8qggj38q6gm";
 
       azure-mgmt-msi = overrideAzureMgmtPackage super.azure-mgmt-msi "0.2.0" "zip"
         "0rvik03njz940x2hvqg6iiq8k0d88gyygsr86w8s0sa12sdbq8l6";
 
-      azure-mgmt-web = overrideAzureMgmtPackage super.azure-mgmt-web "0.44.0" "zip"
-        "05dqakhfi301k2jnvccxdkigqvwnf9xz858pqg9vsri3dq69f1rw";
+      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";
@@ -200,11 +217,14 @@ 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.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";
@@ -215,20 +235,20 @@ let
       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-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.0rc11" "zip"
-        "1ixh2wmrbm1v2xlrnmy1l513jpqch6b5vyh9x77flm649x1cff2q";
+      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";
@@ -239,14 +259,14 @@ 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.6.0" "zip"
+        "004q3d2kj1i1cx3sad1544n3pkindfm255sw19gdlhbw61wn5l5i";
 
       azure-graphrbac = super.azure-graphrbac.overrideAttrs(oldAttrs: rec {
         version = "0.60.0";
@@ -311,13 +331,56 @@ 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.0rc3";
+        version = "0.7.2";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "1jh81xyri7wb7vqa049imf6dfy3nc501bq3p0miaka8ffvvaxinz";
+        };
+      });
+
+      msal = super.msal.overridePythonAttrs(oldAttrs: rec {
+        version = "1.0.0";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "0h33wayvakggr684spdyhiqvrwraavcbk3phmcbavb3zqxd3zgpc";
+        };
+      });
+
+      msal-extensions = super.msal-extensions.overridePythonAttrs(oldAttrs: rec {
+        version = "0.1.3";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "1p05cbfksnhijx1il7s24js2ydzgxbpiasf607qdpb5sljlp3qar";
+        };
+      });
+
+      websocket_client = super.websocket_client.overridePythonAttrs(oldAttrs: rec {
+        version = "0.56.0";
 
         src = super.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
-          sha256 = "1mazy5a3505wqa68fxq7h55m0vbmjygv2wbgmxmrrrgw3w84q5r7";
+          sha256 = "0fpxjyr74klnyis3yf6m54askl0h5dchxcwbfjsq92xng0455m8z";
         };
       });
 
diff --git a/pkgs/tools/admin/berglas/default.nix b/pkgs/tools/admin/berglas/default.nix
index c1c46da41b7..050ad9db75d 100644
--- a/pkgs/tools/admin/berglas/default.nix
+++ b/pkgs/tools/admin/berglas/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "0y393g36h35zzqyf5b10j6qq2jhvz83j17cmasnv6wbyrb3vnn0n";
   };
 
-  modSha256 = "0m2bqx102lf6nihdjbl8a08xcwi80rawvh91j1cav0njm9w5vmmm";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "A tool for managing secrets on Google Cloud";
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 5474cb25429..e363df04556 100644
--- a/pkgs/tools/admin/certigo/default.nix
+++ b/pkgs/tools/admin/certigo/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "0siwbxxzknmbsjy23d0lvh591ngabqhr2g8mip0siwa7c1y7ivv4";
   };
 
-  modSha256 = "1i5n5yh6nvv2i2nm60vqy1gngj8p5w6ma5fcwmp7bl4jxjrzbi83";
+  vendorSha256 = "1l6ajfl04rfbssvijgd5jrppmqc5svfrswdx01x007lr8rvdfd94";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "A utility to examine and validate certificates in a variety of formats";
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 3f4d00736ad..565196280ce 100644
--- a/pkgs/tools/admin/clair/default.nix
+++ b/pkgs/tools/admin/clair/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "clair";
-  version = "2.1.2";
+  version = "2.1.4";
 
   src = fetchFromGitHub {
     owner = "quay";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14dh9iv2g138rivvfk135m3l90kk6c1ln1iqxhbi7s99h1jixbqw";
+    sha256 = "1bvwh3ghxb3ynq8a07ka9i0rzaqg1aikxvqxmpjkwjvhwk63lwqd";
   };
 
-  modSha256 = "0rgkrid58kji39nlmiii95r8shbzr6dwalj5m7qwxy5w1rcaljr5";
+  vendorSha256 = "0x31n50vd8660z816as6kms5dkv87b0mhblccpkvd9cbvcv2n37a";
+
+  doCheck = false;
 
   nativeBuildInputs = [ makeWrapper ];
 
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 9fec8ec9047..7c240aa4131 100644
--- a/pkgs/tools/admin/eksctl/default.nix
+++ b/pkgs/tools/admin/eksctl/default.nix
@@ -1,34 +1,41 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.18.0";
+  version = "0.26.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    sha256 = "15dzivnndzsiw7g6qzccpk1hqb5amfn0zba1rzkvcslhl1y9gsfi";
+    sha256 = "1av5w32ia68j2xrw4m16mzm9jn6xlap93kwi8iqw0s6wgihzadds";
   };
 
-  modSha256 = "13gqvr1y1b2yi2iar0p8y9hpajgy5w9xp4az5n6b5xhzcbn19f2k";
+  vendorSha256 = "13sc4yrzgx2sm98whibfy2kjia3yy9cdvibvhbvg2lz2spprjb9v";
+
+  doCheck = false;
 
   subPackages = [ "cmd/eksctl" ];
 
   buildFlags = [ "-tags netgo" "-tags release" ];
 
-  postInstall = ''
-    mkdir -p "$out/share/"{bash-completion/completions,zsh/site-functions}
+  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"
+  ];
 
-    $out/bin/eksctl completion bash > "$out/share/bash-completion/completions/eksctl"
-    $out/bin/eksctl completion zsh > "$out/share/zsh/site-functions/_eksctl"
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    for shell in bash fish zsh; do
+      $out/bin/eksctl completion $shell > eksctl.$shell
+      installShellCompletion eksctl.$shell
+    done
   '';
 
   meta = with lib; {
     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/elasticsearch-curator/default.nix b/pkgs/tools/admin/elasticsearch-curator/default.nix
index 88ae57251b7..60a7e0586f5 100644
--- a/pkgs/tools/admin/elasticsearch-curator/default.nix
+++ b/pkgs/tools/admin/elasticsearch-curator/default.nix
@@ -9,6 +9,8 @@ py = python.override {
         inherit version;
         sha256 = "f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b";
       };
+      doCheck = false;
+      postPatch = "";
     });
   };
 };
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/fastlane/Gemfile.lock b/pkgs/tools/admin/fastlane/Gemfile.lock
index c8c7a0117e5..1bfce860653 100644
--- a/pkgs/tools/admin/fastlane/Gemfile.lock
+++ b/pkgs/tools/admin/fastlane/Gemfile.lock
@@ -1,48 +1,65 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    CFPropertyList (3.0.0)
-    addressable (2.6.0)
-      public_suffix (>= 2.0.2, < 4.0)
+    CFPropertyList (3.0.2)
+    addressable (2.7.0)
+      public_suffix (>= 2.0.2, < 5.0)
     atomos (0.1.3)
-    babosa (1.0.2)
-    claide (1.0.2)
+    aws-eventstream (1.1.0)
+    aws-partitions (1.320.0)
+    aws-sdk-core (3.96.1)
+      aws-eventstream (~> 1, >= 1.0.2)
+      aws-partitions (~> 1, >= 1.239.0)
+      aws-sigv4 (~> 1.1)
+      jmespath (~> 1.0)
+    aws-sdk-kms (1.31.0)
+      aws-sdk-core (~> 3, >= 3.71.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-s3 (1.66.0)
+      aws-sdk-core (~> 3, >= 3.96.1)
+      aws-sdk-kms (~> 1)
+      aws-sigv4 (~> 1.1)
+    aws-sigv4 (1.1.3)
+      aws-eventstream (~> 1.0, >= 1.0.2)
+    babosa (1.0.3)
+    claide (1.0.3)
     colored (1.2)
     colored2 (3.1.2)
     commander-fastlane (4.4.6)
       highline (~> 1.7.2)
     declarative (0.0.10)
     declarative-option (0.1.0)
-    digest-crc (0.4.1)
+    digest-crc (0.5.1)
     domain_name (0.5.20190701)
       unf (>= 0.0.5, < 1.0.0)
-    dotenv (2.7.4)
+    dotenv (2.7.5)
     emoji_regex (1.0.1)
-    excon (0.65.0)
-    faraday (0.15.4)
+    excon (0.73.0)
+    faraday (1.0.1)
       multipart-post (>= 1.2, < 3)
     faraday-cookie_jar (0.0.6)
       faraday (>= 0.7.4)
       http-cookie (~> 1.0.0)
-    faraday_middleware (0.13.1)
-      faraday (>= 0.7.4, < 1.0)
-    fastimage (2.1.5)
-    fastlane (2.128.1)
+    faraday_middleware (1.0.0)
+      faraday (~> 1.0)
+    fastimage (2.1.7)
+    fastlane (2.148.1)
       CFPropertyList (>= 2.3, < 4.0.0)
       addressable (>= 2.3, < 3.0.0)
+      aws-sdk-s3 (~> 1.0)
       babosa (>= 1.0.2, < 2.0.0)
       bundler (>= 1.12.0, < 3.0.0)
       colored
       commander-fastlane (>= 4.4.6, < 5.0.0)
       dotenv (>= 2.1.1, < 3.0.0)
       emoji_regex (>= 0.1, < 2.0)
-      excon (>= 0.45.0, < 1.0.0)
-      faraday (~> 0.9)
+      excon (>= 0.71.0, < 1.0.0)
+      faraday (>= 0.17, < 2.0)
       faraday-cookie_jar (~> 0.0.6)
-      faraday_middleware (~> 0.9)
+      faraday_middleware (>= 0.13.1, < 2.0)
       fastimage (>= 2.1.0, < 3.0.0)
       gh_inspector (>= 1.1.2, < 2.0.0)
-      google-api-client (>= 0.21.2, < 0.24.0)
+      google-api-client (>= 0.37.0, < 0.39.0)
       google-cloud-storage (>= 1.15.0, < 2.0.0)
       highline (>= 1.7.2, < 2.0.0)
       json (< 3.0.0)
@@ -52,7 +69,7 @@ GEM
       multipart-post (~> 2.0.0)
       plist (>= 3.1.0, < 4.0.0)
       public_suffix (~> 2.0.0)
-      rubyzip (>= 1.2.2, < 2.0.0)
+      rubyzip (>= 1.3.0, < 2.0.0)
       security (= 0.1.3)
       simctl (~> 1.6.3)
       slack-notifier (>= 2.0.0, < 3.0.0)
@@ -61,51 +78,54 @@ GEM
       tty-screen (>= 0.6.3, < 1.0.0)
       tty-spinner (>= 0.8.0, < 1.0.0)
       word_wrap (~> 1.0.0)
-      xcodeproj (>= 1.8.1, < 2.0.0)
+      xcodeproj (>= 1.13.0, < 2.0.0)
       xcpretty (~> 0.3.0)
       xcpretty-travis-formatter (>= 0.0.3)
     gh_inspector (1.1.3)
-    google-api-client (0.23.9)
+    google-api-client (0.38.0)
       addressable (~> 2.5, >= 2.5.1)
-      googleauth (>= 0.5, < 0.7.0)
+      googleauth (~> 0.9)
       httpclient (>= 2.8.1, < 3.0)
-      mime-types (~> 3.0)
+      mini_mime (~> 1.0)
       representable (~> 3.0)
       retriable (>= 2.0, < 4.0)
-      signet (~> 0.9)
-    google-cloud-core (1.3.0)
+      signet (~> 0.12)
+    google-cloud-core (1.5.0)
       google-cloud-env (~> 1.0)
-    google-cloud-env (1.2.0)
-      faraday (~> 0.11)
-    google-cloud-storage (1.16.0)
+      google-cloud-errors (~> 1.0)
+    google-cloud-env (1.3.1)
+      faraday (>= 0.17.3, < 2.0)
+    google-cloud-errors (1.0.0)
+    google-cloud-storage (1.26.1)
+      addressable (~> 2.5)
       digest-crc (~> 0.4)
-      google-api-client (~> 0.23)
+      google-api-client (~> 0.33)
       google-cloud-core (~> 1.2)
-      googleauth (>= 0.6.2, < 0.10.0)
-    googleauth (0.6.7)
-      faraday (~> 0.12)
+      googleauth (~> 0.9)
+      mini_mime (~> 1.0)
+    googleauth (0.12.0)
+      faraday (>= 0.17.3, < 2.0)
       jwt (>= 1.4, < 3.0)
       memoist (~> 0.16)
       multi_json (~> 1.11)
       os (>= 0.9, < 2.0)
-      signet (~> 0.7)
+      signet (~> 0.14)
     highline (1.7.10)
     http-cookie (1.0.3)
       domain_name (~> 0.5)
     httpclient (2.8.3)
-    json (2.2.0)
+    jmespath (1.4.0)
+    json (2.3.0)
     jwt (2.1.0)
-    memoist (0.16.0)
-    mime-types (3.2.2)
-      mime-types-data (~> 3.2015)
-    mime-types-data (3.2019.0331)
-    mini_magick (4.9.5)
-    multi_json (1.13.1)
+    memoist (0.16.2)
+    mini_magick (4.10.1)
+    mini_mime (1.0.2)
+    multi_json (1.14.1)
     multi_xml (0.6.0)
     multipart-post (2.0.0)
     nanaimo (0.2.6)
     naturally (2.2.0)
-    os (1.0.1)
+    os (1.1.0)
     plist (3.5.0)
     public_suffix (2.0.5)
     representable (3.0.4)
@@ -114,31 +134,31 @@ GEM
       uber (< 0.2.0)
     retriable (3.1.2)
     rouge (2.0.7)
-    rubyzip (1.2.3)
+    rubyzip (1.3.0)
     security (0.1.3)
-    signet (0.11.0)
+    signet (0.14.0)
       addressable (~> 2.3)
-      faraday (~> 0.9)
+      faraday (>= 0.17.3, < 2.0)
       jwt (>= 1.5, < 3.0)
       multi_json (~> 1.10)
-    simctl (1.6.5)
+    simctl (1.6.8)
       CFPropertyList
       naturally
     slack-notifier (2.3.2)
     terminal-notifier (2.0.0)
     terminal-table (1.8.0)
       unicode-display_width (~> 1.1, >= 1.1.1)
-    tty-cursor (0.7.0)
-    tty-screen (0.7.0)
-    tty-spinner (0.9.1)
+    tty-cursor (0.7.1)
+    tty-screen (0.7.1)
+    tty-spinner (0.9.3)
       tty-cursor (~> 0.7)
     uber (0.1.0)
     unf (0.1.4)
       unf_ext
-    unf_ext (0.0.7.6)
-    unicode-display_width (1.6.0)
+    unf_ext (0.0.7.7)
+    unicode-display_width (1.7.0)
     word_wrap (1.0.0)
-    xcodeproj (1.11.0)
+    xcodeproj (1.16.0)
       CFPropertyList (>= 2.3.3, < 4.0)
       atomos (~> 0.1.3)
       claide (>= 1.0.2, < 2.0)
@@ -156,4 +176,4 @@ DEPENDENCIES
   fastlane
 
 BUNDLED WITH
-   2.1.4
+   2.1.4
\ No newline at end of file
diff --git a/pkgs/tools/admin/fastlane/default.nix b/pkgs/tools/admin/fastlane/default.nix
index 01f2d237407..1093ab9df02 100644
--- a/pkgs/tools/admin/fastlane/default.nix
+++ b/pkgs/tools/admin/fastlane/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
     maintainers     = with maintainers; [
       peterromfeldhk
       nicknovitski
+      shahrukh330
     ];
   };
 }
diff --git a/pkgs/tools/admin/fastlane/gemset.nix b/pkgs/tools/admin/fastlane/gemset.nix
index 2511822a9fc..e289bc6f17d 100644
--- a/pkgs/tools/admin/fastlane/gemset.nix
+++ b/pkgs/tools/admin/fastlane/gemset.nix
@@ -5,12 +5,14 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l";
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
       type = "gem";
     };
-    version = "2.6.0";
+    version = "2.7.0";
   };
   atomos = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "17vq6sjyswr5jfzwdccw748kgph6bdw30bakwnn6p8sl4hpv4hvx";
@@ -18,31 +20,103 @@
     };
     version = "0.1.3";
   };
+  aws-eventstream = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r0pn66yqrdkrfdin7qdim0yj2x75miyg4wp6mijckhzhrjb7cv5";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  aws-partitions = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "011ch85shkb3i3w16jymjx19dmxcgb6jrl6dzwqr4bx16ikdyclc";
+      type = "gem";
+    };
+    version = "1.320.0";
+  };
+  aws-sdk-core = {
+    dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jdnzynjrpp2jyg8vrbfbaad16k8ni1520xah1z2ckl5779x9fi6";
+      type = "gem";
+    };
+    version = "3.96.1";
+  };
+  aws-sdk-kms = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1czxr6yi8p9gma4dwgygp1jn0i289hwa2vw69kzfscgbn118c3mm";
+      type = "gem";
+    };
+    version = "1.31.0";
+  };
+  aws-sdk-s3 = {
+    dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x1d1azxwanvm0d7qppw41x5nx2zv0bcz41yk9vqi5lvr7apaq13";
+      type = "gem";
+    };
+    version = "1.66.0";
+  };
+  aws-sigv4 = {
+    dependencies = ["aws-eventstream"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kysxyw1zkvggbmcj4xnscdh15kxli8mx07hv447h74g9x02drsd";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
   babosa = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05rgxg4pz4bc4xk34w5grv0yp1j94wf571w84lf3xgqcbs42ip2f";
+      sha256 = "10nn9bw63i4awpzn5vrx6kmpx1sg7z8r3fhw9r8bvg9pz2wh489g";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.0.3";
   };
   CFPropertyList = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ykjag3k5msz3sf1j91rb55da2xh596y06m3a4yl79fiy2id0w9z";
+      sha256 = "1825ll26p28swjiw8n3x2pnh5ygsmg83spf82fnzcjn2p87vc5lf";
       type = "gem";
     };
-    version = "3.0.0";
+    version = "3.0.2";
   };
   claide = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0az54rp691hc42yl1xyix2cxv58byhaaf4gxbpghvvq29l476rzc";
+      sha256 = "0kasxsms24fgcdsq680nz99d5lazl9rmz1qkil2y5gbbssx89g0z";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.0.3";
   };
   colored = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0b0x5jmsyi0z69bm6sij1k89z7h0laag3cb4mdn7zkl9qmxb90lx";
@@ -51,6 +125,8 @@
     version = "1.2";
   };
   colored2 = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
@@ -60,6 +136,8 @@
   };
   commander-fastlane = {
     dependencies = ["highline"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0y8d3ac9qwm1cg6rnpf8rcdsy1yxacrd2g2kl809xsp2vi973g65";
@@ -68,6 +146,8 @@
     version = "4.4.6";
   };
   declarative = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j";
@@ -76,6 +156,8 @@
     version = "0.0.10";
   };
   declarative-option = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1g4ibxq566f1frnhdymzi9hxxcm4g2gw4n21mpjk2mhwym4q6l0p";
@@ -88,10 +170,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08q8p0fk51aa6dwhy2xmjaj76arcq9nn22gyia162jmqpccfx50l";
+      sha256 = "10f10yhz7rn31pq859jx47dypsfsxcmx8h482xn7aijfr6vn8yv9";
       type = "gem";
     };
-    version = "0.4.1";
+    version = "0.5.1";
   };
   domain_name = {
     dependencies = ["unf"];
@@ -109,10 +191,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1375dyawvcp81d94jkjwjjkj3j23gsp06cfwh15g695l4g3ssswc";
+      sha256 = "17hkd62ig9b0czv192kqdfq7gw0a8hgq07yclri6myc8y5lmfin5";
       type = "gem";
     };
-    version = "2.7.4";
+    version = "2.7.5";
   };
   emoji_regex = {
     groups = ["default"];
@@ -129,10 +211,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mc6y6n7i0hhk7i8wwi4qjnpkm013p7z3xr994s696hk74f91a7j";
+      sha256 = "1zvphy60fwycl6z2h7dpsy9lgyfrh27fj16987p7bl1n4xlqkvmw";
       type = "gem";
     };
-    version = "0.65.0";
+    version = "0.73.0";
   };
   faraday = {
     dependencies = ["multipart-post"];
@@ -140,13 +222,15 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s72m05jvzc1pd6cw1i289chas399q0a14xrwg4rvkdwy7bgzrh0";
+      sha256 = "0wwks9652xwgjm7yszcq5xr960pjypc07ivwzbjzpvy9zh2fw6iq";
       type = "gem";
     };
-    version = "0.15.4";
+    version = "1.0.1";
   };
   faraday-cookie_jar = {
     dependencies = ["faraday" "http-cookie"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1di4gx6446a6zdkrpj679m5k515i53wvb4yxcsqvy8d8zacxiiv6";
@@ -160,33 +244,35 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1a93rs58bakqck7bcihasz66a1riy22h2zpwrpmb13gp8mw3wkmr";
+      sha256 = "0jik2kgfinwnfi6fpp512vlvs0mlggign3gkbpkg5fw1jr9his0r";
       type = "gem";
     };
-    version = "0.13.1";
+    version = "1.0.0";
   };
   fastimage = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1iy9jm13r2r4yz41xaivhxs8mvqn57fjwihxvazbip002mq6rxfz";
+      sha256 = "06lgsy1zdkhhgd9w1c0nb7v9d38mljwz13n6gi3acbzkhz1sf642";
       type = "gem";
     };
-    version = "2.1.5";
+    version = "2.1.7";
   };
   fastlane = {
-    dependencies = ["CFPropertyList" "addressable" "babosa" "colored" "commander-fastlane" "dotenv" "emoji_regex" "excon" "faraday" "faraday-cookie_jar" "faraday_middleware" "fastimage" "gh_inspector" "google-api-client" "google-cloud-storage" "highline" "json" "jwt" "mini_magick" "multi_xml" "multipart-post" "plist" "public_suffix" "rubyzip" "security" "simctl" "slack-notifier" "terminal-notifier" "terminal-table" "tty-screen" "tty-spinner" "word_wrap" "xcodeproj" "xcpretty" "xcpretty-travis-formatter"];
+    dependencies = ["CFPropertyList" "addressable" "aws-sdk-s3" "babosa" "colored" "commander-fastlane" "dotenv" "emoji_regex" "excon" "faraday" "faraday-cookie_jar" "faraday_middleware" "fastimage" "gh_inspector" "google-api-client" "google-cloud-storage" "highline" "json" "jwt" "mini_magick" "multi_xml" "multipart-post" "plist" "public_suffix" "rubyzip" "security" "simctl" "slack-notifier" "terminal-notifier" "terminal-table" "tty-screen" "tty-spinner" "word_wrap" "xcodeproj" "xcpretty" "xcpretty-travis-formatter"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0h3k6rzy9p9s7ajk96jarg7sqs9npdnj7acr4v2gs8bpf31hqgpc";
+      sha256 = "1jss8cpcngwrmpck6ncijksrfcj5csgljwn2rmqv9gx1azj4mlgv";
       type = "gem";
     };
-    version = "2.128.1";
+    version = "2.148.1";
   };
   gh_inspector = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0f8r9byajj3bi2c7c5sqrc7m0zrv3nblfcd4782lw5l73cbsgk04";
@@ -195,24 +281,26 @@
     version = "1.1.3";
   };
   google-api-client = {
-    dependencies = ["addressable" "googleauth" "httpclient" "mime-types" "representable" "retriable" "signet"];
+    dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "signet"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1z925kbqyaxdi6ld3gvaqc9527xfi8k3rr6snq5mvx5kibdi072a";
+      sha256 = "1jybks8i00rxrxx9mkx90dbdk6pczh2w757wchlavmrkrk0dp9s1";
       type = "gem";
     };
-    version = "0.23.9";
+    version = "0.38.0";
   };
   google-cloud-core = {
-    dependencies = ["google-cloud-env"];
+    dependencies = ["google-cloud-env" "google-cloud-errors"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gqn523gqj6dwbj9ddcb8rjw0sai4x138pk3l3qzmq8jxz67qqj5";
+      sha256 = "1qjn7vs8f85vxi1nkikbjfja6bv9snrj26vzscjii0cm8n4dy0i1";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.5.0";
   };
   google-cloud-env = {
     dependencies = ["faraday"];
@@ -220,32 +308,46 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j25sy2qhybqfwsyh8j4m10z2x7dn2jmf1gwr1w2b90cmya4yrbd";
+      sha256 = "0rbascsddvwsq827fj4m2daqh0l3ghmdlbbhy48clgaysapaz685";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  google-cloud-errors = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nl08lhgjvz3g7nsarn9nnsck0k3dg8mwg4awcnklnzpvs62b4ih";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.0.0";
   };
   google-cloud-storage = {
-    dependencies = ["digest-crc" "google-api-client" "google-cloud-core" "googleauth"];
+    dependencies = ["addressable" "digest-crc" "google-api-client" "google-cloud-core" "googleauth" "mini_mime"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lslrlrrhjj8imbpzvbbwflrvq06r0x5h74mlq726yvkr7akyqlq";
+      sha256 = "1wdnd5wisbrlivapdr7bcg8v59hayqz3q5qiqs0628g371lwx30k";
       type = "gem";
     };
-    version = "1.16.0";
+    version = "1.26.1";
   };
   googleauth = {
     dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yj7j1rnyamxpn5ybgdgbiw89v9bq2r0h85s2y2jzvqanvm7iflq";
+      sha256 = "0rsk471ld98pxhvzig3lnw9i13454c9nschvzxvq6vjqnn9ip0yh";
       type = "gem";
     };
-    version = "0.6.7";
+    version = "0.12.0";
   };
   highline = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "01ib7jp85xjc4gh4jg0wyzllm46hwv8p0w1m4c75pbgi41fps50y";
@@ -255,6 +357,8 @@
   };
   http-cookie = {
     dependencies = ["domain_name"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
@@ -263,6 +367,8 @@
     version = "1.0.3";
   };
   httpclient = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
@@ -270,70 +376,79 @@
     };
     version = "2.8.3";
   };
-  json = {
+  jmespath = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sx97bm9by389rbzv8r1f43h06xcz8vwi3h5jv074gvparql7lcx";
+      sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "1.4.0";
   };
-  jwt = {
+  json = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky";
+      sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "2.3.0";
   };
-  memoist = {
+  jwt = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pq8fhqh8w25qcw9v3vzfb0i6jp0k3949ahxc3wrwz2791dpbgbh";
+      sha256 = "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky";
       type = "gem";
     };
-    version = "0.16.0";
+    version = "2.1.0";
   };
-  mime-types = {
-    dependencies = ["mime-types-data"];
+  memoist = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
+      sha256 = "0i9wpzix3sjhf6d9zw60dm4371iq8kyz7ckh2qapan2vyaim6b55";
       type = "gem";
     };
-    version = "3.2.2";
+    version = "0.16.2";
   };
-  mime-types-data = {
+  mini_magick = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m00pg19cm47n1qlcxgl91ajh2yq0fszvn1vy8fy0s1jkrp9fw4a";
+      sha256 = "0lpq12z70n10c1qshcddd5nib2pkcbkwzvmiqqzj60l01k3x4fg9";
       type = "gem";
     };
-    version = "3.2019.0331";
+    version = "4.10.1";
   };
-  mini_magick = {
+  mini_mime = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qy09qrd5bwh8mkbj514n5vcw9ni73218h9s3zmvbpmdwrnzi8j4";
+      sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
       type = "gem";
     };
-    version = "4.9.5";
+    version = "1.0.2";
   };
   multi_json = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+      sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.14.1";
   };
   multi_xml = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj";
@@ -342,6 +457,8 @@
     version = "0.6.0";
   };
   multipart-post = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
@@ -350,6 +467,8 @@
     version = "2.0.0";
   };
   nanaimo = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0ajfyaqjw3dzykk612yw8sm21savfqy292hgps8h8l4lvxww1lz6";
@@ -358,6 +477,8 @@
     version = "0.2.6";
   };
   naturally = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0dzqdawqr4agx7zr1fr5zxdwl8vb5rhpz57l1lk7d2y46ha6l4l7";
@@ -370,10 +491,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06r55k01g32lvz4wf2s6hpjlxbbag113jsvff3w64jllfr315a73";
+      sha256 = "0xnynckvrn9ailkmkrmkldnpv8hmmbdwxr7c7iz27cl1cpcdd49n";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.0";
   };
   plist = {
     groups = ["default"];
@@ -386,6 +507,8 @@
     version = "3.5.0";
   };
   public_suffix = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "040jf98jpp6w140ghkhw2hvc1qx41zvywx5gj7r2ylr1148qnj7q";
@@ -395,6 +518,8 @@
   };
   representable = {
     dependencies = ["declarative" "declarative-option" "uber"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07";
@@ -403,6 +528,8 @@
     version = "3.0.4";
   };
   retriable = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1q48hqws2dy1vws9schc0kmina40gy7sn5qsndpsfqdslh65snha";
@@ -411,6 +538,8 @@
     version = "3.1.2";
   };
   rouge = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0sfikq1q8xyqqx690iiz7ybhzx87am4w50w8f2nq36l3asw4x89d";
@@ -423,12 +552,14 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w9gw28ly3zyqydnm8phxchf4ymyjl2r7zf7c12z8kla10cpmhlc";
+      sha256 = "1qxc2zxwwipm6kviiar4gfhcakpx1jdcs89v6lvzivn5hq1xk78l";
       type = "gem";
     };
-    version = "1.2.3";
+    version = "1.3.0";
   };
   security = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1ryjxs0j66wrbky2c08yf0mllwalvpg12rpxzbdx2rdhj3cbrlxa";
@@ -438,23 +569,29 @@
   };
   signet = {
     dependencies = ["addressable" "faraday" "jwt" "multi_json"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f5d3bz5bjc4b0r2jmqd15qf07lgsqkgd25f0h46jihrf9l5fsi4";
+      sha256 = "10g2667fvxnc50hcd1aywgsbf8j7nrckg3n7zjvywmyz82pwmpqp";
       type = "gem";
     };
-    version = "0.11.0";
+    version = "0.14.0";
   };
   simctl = {
     dependencies = ["CFPropertyList" "naturally"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bbvbpdk955q1g797md960fdznw6p6hmj2pc62yrbpvb1ymag1sf";
+      sha256 = "1v9rsdmg5c5kkf8ps47xnrfbvjnq11sbaifr186jwkh4npawz00x";
       type = "gem";
     };
-    version = "1.6.5";
+    version = "1.6.8";
   };
   slack-notifier = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1pkfn99dhy5s526r6k8d87fwwb6j287ga9s7lxqmh60z28xqh3bv";
@@ -474,6 +611,8 @@
   };
   terminal-table = {
     dependencies = ["unicode-display_width"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
@@ -486,20 +625,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0prcxdy6qhqba4cv7hsy503b3bjciqk3j3hhzvcbij1kj2gh31c9";
+      sha256 = "0j5zw041jgkmn605ya1zc151bxgxl6v192v2i26qhxx7ws2l2lvr";
       type = "gem";
     };
-    version = "0.7.0";
+    version = "0.7.1";
   };
   tty-screen = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1143g05fs28ssgimaph6sdnsndd1wrpax9kjypvd2ripa1adm4kx";
+      sha256 = "1jwgr2i3wilng3mx851xczmkzllbirmsmr42ik4amqyyvry1yzyf";
       type = "gem";
     };
-    version = "0.7.0";
+    version = "0.7.1";
   };
   tty-spinner = {
     dependencies = ["tty-cursor"];
@@ -507,12 +646,14 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "089qiqzjs1m727kalz8vn2wzgwzdn8mg5gyag901pmimxl64lnvc";
+      sha256 = "0hh5awmijnzw9flmh5ak610x1d00xiqagxa5mbr63ysggc26y0qf";
       type = "gem";
     };
-    version = "0.9.1";
+    version = "0.9.3";
   };
   uber = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv";
@@ -522,6 +663,8 @@
   };
   unf = {
     dependencies = ["unf_ext"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
@@ -534,22 +677,24 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ll6w64ibh81qwvjx19h8nj7mngxgffg7aigjx11klvf5k2g4nxf";
+      sha256 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4";
       type = "gem";
     };
-    version = "0.0.7.6";
+    version = "0.0.7.7";
   };
   unicode-display_width = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08kfiniak1pvg3gn5k6snpigzvhvhyg7slmm0s2qx5zkj62c1z2w";
+      sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
       type = "gem";
     };
-    version = "1.6.0";
+    version = "1.7.0";
   };
   word_wrap = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1iyc5bc7dbgsd8j3yk1i99ral39f23l6wapi0083fbl19hid8mpm";
@@ -563,13 +708,15 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1h73ilwyjwyyhj761an3pmicllw50514gxb6b1r4z4klc9rzxw4j";
+      sha256 = "1bkk8y6lzd86w9yx72hd1nil3fkk5f0v3il9vm554gzpl6dhc2bi";
       type = "gem";
     };
-    version = "1.11.0";
+    version = "1.16.0";
   };
   xcpretty = {
     dependencies = ["rouge"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1xq47q2h5llj7b54rws4796904vnnjz7qqnacdv7wlp3gdbwrivm";
@@ -579,6 +726,8 @@
   };
   xcpretty-travis-formatter = {
     dependencies = ["xcpretty"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "15b5c0lxz2blmichfdlabzlbyw5nlh1ci898pxwb661m9bahz3ml";
diff --git a/pkgs/tools/admin/google-cloud-sdk/default.nix b/pkgs/tools/admin/google-cloud-sdk/default.nix
index fb7870eac95..5a51ace3b98 100644
--- a/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -21,20 +21,18 @@ let
   sources = name: system: {
     x86_64-darwin = {
       url = "${baseUrl}/${name}-darwin-x86_64.tar.gz";
-      sha256 = "0v83faz0jwnx603acmkc3bsl7vg2xxsm1jfw88fmnj6zcsa5b9ql";
+      sha256 = "1l2r9pgyzih7xgrr2ygm0mcl97kyp1wfvybwhbn1i0kbb72nagk1";
     };
 
     x86_64-linux = {
       url = "${baseUrl}/${name}-linux-x86_64.tar.gz";
-      sha256 = "1z9liqzgwfavh3m3q1s871gxnwnsxdbny2vqzh9sjlwdk26f76gi";
+      sha256 = "1qbkdfa7dzysp7crv9ph476hbabl3qiszs067f20dadqssqs1v4r";
     };
   }.${system};
 
-  strip = if stdenv.isDarwin then "strip -x" else "strip";
-
 in stdenv.mkDerivation rec {
   pname = "google-cloud-sdk";
-  version = "286.0.0";
+  version = "306.0.0";
 
   src = fetchurl (sources "${pname}-${version}" stdenv.hostPlatform.system);
 
@@ -93,9 +91,6 @@ in stdenv.mkDerivation rec {
       jq -c . $path > $path.min
       mv $path.min $path
     done
-
-    # strip the Cython gRPC library
-    ${strip} $out/google-cloud-sdk/lib/third_party/grpc/_cython/cygrpc.so
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/admin/iamy/default.nix b/pkgs/tools/admin/iamy/default.nix
index 96c49b58d0b..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";
@@ -13,7 +11,9 @@ buildGoModule rec {
     sha256 = "1fypc6yjnhlpk7zhb2lvah2ikh2zji9sll55rqjbr3i4j02h484z";
   };
 
-  modSha256 = "0akak573zvz3xg5d7vf0ch2mrmj1jkzcdc29v3kn43f7944c2wcl";
+  vendorSha256 = "0c4g1zr0wl118g41hqri0vwvfin39yvgs214w3spw8ggjcj6bzph";
+
+  doCheck = false;
 
   buildFlagsArray = [''-ldflags=
     -X main.Version=v${version} -s -w
diff --git a/pkgs/tools/admin/lego/default.nix b/pkgs/tools/admin/lego/default.nix
index 05cab814ecf..4517077ac46 100644
--- a/pkgs/tools/admin/lego/default.nix
+++ b/pkgs/tools/admin/lego/default.nix
@@ -2,16 +2,19 @@
 
 buildGoModule rec {
   pname = "lego";
-  version = "3.7.0";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "go-acme";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-hjH1TBw6GHYNI9JSBOzdyEtJmp8NhlwNYydGZwsjAg0=";
+    sha256 = "02p7zlrz8fp5bsvhk4jrx5x3gxnl00friay1jihlzyk3s400n9jb";
   };
 
-  modSha256 = "sha256-+PJRaDdZqVO6D9SXojlr8JXn++pL18HOHFdaiUEalw8=";
+  vendorSha256 = "0jh7qi422i2114198fain9nwwf8yd8vna0p3g0hvginh59svyagc";
+
+  doCheck = false;
+
   subPackages = [ "cmd/lego" ];
 
   buildFlagsArray = [
diff --git a/pkgs/tools/admin/lexicon/default.nix b/pkgs/tools/admin/lexicon/default.nix
index de967578d5c..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.22";
+  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 = "1adwqglh3lrx04y0f6slp1l97xzbsqgw0v5i4jll3a54aqyzfz0a";
+    sha256 = "0i6grrpdwh7axhnsabb0pfjhpd3prc9ji1afivi7q3c0krgvncmc";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/admin/lxd/default.nix b/pkgs/tools/admin/lxd/default.nix
index f270576e684..2e8ff96d41a 100644
--- a/pkgs/tools/admin/lxd/default.nix
+++ b/pkgs/tools/admin/lxd/default.nix
@@ -1,22 +1,30 @@
 { stdenv, hwdata, pkgconfig, lxc, buildGoPackage, fetchurl
 , makeWrapper, acl, rsync, gnutar, xz, btrfs-progs, gzip, dnsmasq
-, squashfsTools, iproute, iptables, ebtables, libcap, libco-canonical, dqlite
-, raft-canonical, sqlite-replication, udev
+, squashfsTools, iproute, iptables, ebtables, iptables-nftables-compat, libcap
+, libco-canonical, dqlite, raft-canonical, sqlite-replication, udev
 , writeShellScriptBin, apparmor-profiles, apparmor-parser
 , criu
 , bash
 , installShellFiles
+, nftablesSupport ? false
 }:
 
+let
+  networkPkgs = if nftablesSupport then
+    [ iptables-nftables-compat ]
+  else
+    [ iptables ebtables ];
+
+in
 buildGoPackage rec {
   pname = "lxd";
-  version = "4.1";
+  version = "4.4";
 
   goPackagePath = "github.com/lxc/lxd";
 
   src = fetchurl {
     url = "https://github.com/lxc/lxd/releases/download/${pname}-${version}/${pname}-${version}.tar.gz";
-    sha256 = "0svzj57wwm43d2gnx0myr2p9pzjmkivwhgg0dww6zl169bx32liz";
+    sha256 = "0fk42spz57nfmwy6xn02nnlkq01111x03psjq003k2785ah4xk1h";
   };
 
   postPatch = ''
@@ -38,12 +46,14 @@ buildGoPackage rec {
     # test binaries, code generation
     rm $out/bin/{deps,macaroon-identity,generate}
 
-    wrapProgram $out/bin/lxd --prefix PATH : ${stdenv.lib.makeBinPath [
-      acl rsync gnutar xz btrfs-progs gzip dnsmasq squashfsTools iproute iptables ebtables bash criu
-      (writeShellScriptBin "apparmor_parser" ''
-        exec '${apparmor-parser}/bin/apparmor_parser' -I '${apparmor-profiles}/etc/apparmor.d' "$@"
-      '')
-    ]}
+    wrapProgram $out/bin/lxd --prefix PATH : ${stdenv.lib.makeBinPath (
+      networkPkgs
+      ++ [ acl rsync gnutar xz btrfs-progs gzip dnsmasq squashfsTools iproute bash criu ]
+      ++ [ (writeShellScriptBin "apparmor_parser" ''
+             exec '${apparmor-parser}/bin/apparmor_parser' -I '${apparmor-profiles}/etc/apparmor.d' "$@"
+           '') ]
+      )
+    }
 
     installShellCompletion --bash go/src/github.com/lxc/lxd/scripts/bash/lxd-client
   '';
diff --git a/pkgs/tools/admin/mycli/default.nix b/pkgs/tools/admin/mycli/default.nix
index 42c790d1ada..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.20.1";
+  version = "1.22.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0vhwaqkx4njarm0wy8zg2hvzr2yl92y8gnwipcn7p59sazw4whfl";
+    sha256 = "1lq2x95553vdmhw13cxcgsd2g2i32izhsb7hxd4m1iwf9b3msbpv";
   };
 
   propagatedBuildInputs = [
@@ -24,7 +24,8 @@ buildPythonApplication rec {
     export HOME=.
     export LC_ALL="en_US.UTF-8"
 
-    py.test
+    py.test \
+      --ignore=mycli/packages/paramiko_stub/__init__.py
   '';
 
   meta = {
diff --git a/pkgs/tools/admin/nomachine-client/default.nix b/pkgs/tools/admin/nomachine-client/default.nix
index b999c65f6f6..4657c64d330 100644
--- a/pkgs/tools/admin/nomachine-client/default.nix
+++ b/pkgs/tools/admin/nomachine-client/default.nix
@@ -1,7 +1,7 @@
 { stdenv, file, fetchurl, makeWrapper,
   autoPatchelfHook, jsoncpp, libpulseaudio }:
 let
-  versionMajor = "6.9";
+  versionMajor = "6.11";
   versionMinor = "2";
   versionBuild_x86_64 = "1";
   versionBuild_i686 = "1";
@@ -9,21 +9,27 @@ in
   stdenv.mkDerivation rec {
     pname = "nomachine-client";
     version = "${versionMajor}.${versionMinor}";
-  
+
     src =
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
-          url = "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_x86_64}_x86_64.tar.gz";
-          sha256 = "1z2pcfkzicjma4lxrj4qx43xyml993v7qyjd7k8xy8hw85fwnzii";
+          urls = [
+            "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_x86_64}_x86_64.tar.gz"
+            "https://web.archive.org/web/https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_x86_64}_x86_64.tar.gz"
+          ];
+          sha256 = "1b6r9bwkr8mhaljma19ikxpkmlx8iy5r1vf5hlv27bja2zz1r8xr";
         }
       else if stdenv.hostPlatform.system == "i686-linux" then
         fetchurl {
-          url = "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_i686}_i686.tar.gz";
-          sha256 = "03421s0k91c02ga9k6bdvixw71brlgi13q82cinnfayg3fhb0rb6";
+          urls = [
+            "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_i686}_i686.tar.gz"
+            "https://web.archive.org/web/https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_i686}_i686.tar.gz"
+          ];
+          sha256 = "0dl138ry9n1qh651zh0zvp88qhgxrs2kvvnq329jw0py5v70b9pm";
         }
       else
         throw "NoMachine client is not supported on ${stdenv.hostPlatform.system}";
-    
+
     postUnpack = ''
       mv $(find . -type f -name nxclient.tar.gz) .
       mv $(find . -type f -name nxplayer.tar.gz) .
@@ -32,7 +38,7 @@ in
       tar xf nxplayer.tar.gz
       rm $(find . -maxdepth 1 -type f)
     '';
-  
+
     nativeBuildInputs = [ file makeWrapper autoPatchelfHook ];
     buildInputs = [ jsoncpp libpulseaudio ];
 
@@ -50,7 +56,7 @@ in
           cp "$i"/* "$out/share/icons/hicolor/$(basename $i)/apps/"
         fi
       done
-  
+
       mkdir $out/share/applications
       cp share/applnk/player/xdg/*.desktop $out/share/applications/
       cp share/applnk/client/xdg-mime/*.desktop $out/share/applications/
@@ -62,7 +68,7 @@ in
         substituteInPlace "$i" --replace /usr/NX/bin $out/bin
       done
     '';
-  
+
     postFixup = ''
       makeWrapper $out/bin/nxplayer.bin $out/bin/nxplayer --set NX_SYSTEM $out/NX
       makeWrapper $out/bin/nxclient.bin $out/bin/nxclient --set NX_SYSTEM $out/NX
@@ -71,7 +77,7 @@ in
       # have a DT_NEEDED entry for it.
       patchelf --add-needed libpulse.so.0 $out/NX/lib/libnxcau.so
     '';
-  
+
     dontBuild = true;
     dontStrip = true;
 
@@ -87,4 +93,4 @@ in
       platforms = [ "x86_64-linux" "i686-linux" ];
     };
   }
-  
+
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 8a8888b2aa0..77779c39f50 100644
--- a/pkgs/tools/admin/pulumi/data.nix
+++ b/pkgs/tools/admin/pulumi/data.nix
@@ -1,50 +1,58 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "1.12.0";
+  version = "2.6.1";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v1.12.0-linux-x64.tar.gz";
-        sha256 = "14j8f43h920k62h8bhywapphhfbj7whb9l6pjmyigld6x2jpr4mc";
+        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-random-v1.5.0-linux-amd64.tar.gz";
-        sha256 = "1vdd5ghlsxqrfd1nrdj7hsl745k8myhxmd3gh1fq6ksa3apnh1ca";
+        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-gcp-v2.8.0-linux-amd64.tar.gz";
-        sha256 = "1q34kv41dbmz45s1sg0rqdxp1qlfq0ii0hy9p95lkzd7qj19qrvv";
+        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-kubernetes-v1.5.6-linux-amd64.tar.gz";
-        sha256 = "1g5zgkqnzjqfri61p8876czn0ab2n3mjqf1acdyn8kg5q52sd8ix";
+        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-aws-v1.24.0-linux-amd64.tar.gz";
-        sha256 = "1fwnad5p1v4bigcr2icgzmxdn1b3x0j8c361546pqzk67vskn9fg";
+        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-postgresql-v2.2.2-linux-amd64.tar.gz";
+        sha256 = "07asdmmacxazg65d5hphjxzb5j5d2dcc95wjbxx3wwc1swqma4aq";
       }
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v1.12.0-darwin-x64.tar.gz";
-        sha256 = "1bg6vnxic8fzycgv8q7m1bf8pk2bxvcn0b6lwy7aa2f3kzw70q46";
+        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-aws-v2.13.0-darwin-amd64.tar.gz";
+        sha256 = "18mjf9gm8siskg9jh65x4qp4w8p4wnp19bxxk4jfbq27icdk7ws9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v1.5.0-darwin-amd64.tar.gz";
-        sha256 = "1skvfg8s8f81l4yfgm49jca38cx96khk3f9rpq4ywa3r3f450kni";
+        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-v2.8.0-darwin-amd64.tar.gz";
-        sha256 = "0f0gnbiv2gbam5n3ng9j5rbrml0jfv9k402vd4j9ryfkly4grpa9";
+        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-v1.5.6-darwin-amd64.tar.gz";
-        sha256 = "1l610a0bvwrsbqv4s00ghbplwnk11q3c0n3py0l7w0a2mpl8izzd";
+        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-v1.24.0-darwin-amd64.tar.gz";
-        sha256 = "17qq7w2wk0803y0if7dn3gnxxnfqnb4n2gcil3zgbc4yhqz4py0y";
+        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 35494235d36..cc31bce849b 100644..100755
--- a/pkgs/tools/admin/pulumi/update.sh
+++ b/pkgs/tools/admin/pulumi/update.sh
@@ -1,14 +1,19 @@
 #!/usr/bin/env bash
 
-VERSION="1.12.0"
+VERSION="2.6.1"
 
-declare -A plugins
+# Bash 3 compatible for Darwin
 plugins=(
-    ["aws"]="1.24.0"
-    ["gcp"]="2.8.0"
-    ["random"]="1.5.0"
-    ["kubernetes"]="1.5.6"
-)
+    # 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"
@@ -21,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"
@@ -35,7 +41,7 @@ function genSrcs() {
     done
 }
 
-cat <<EOF
+cat <<EOF                     > data.nix
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
@@ -43,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 b378f082865..35d65b5e657 100644
--- a/pkgs/tools/admin/salt/default.nix
+++ b/pkgs/tools/admin/salt/default.nix
@@ -5,38 +5,21 @@
   # 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.2";
+  version = "3001.1";
 
-  src = py.pkgs.fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "1n90qqhsvbf4pc4pcbya3rjfkblbccf4np4mxpghjqaa16fl4cqf";
+    sha256 = "1g2sdcibir0zhldmngv1iyzlhh2adq9dqjc73grap3df5zcv9sz9";
   };
 
-  propagatedBuildInputs = with py.pkgs; [
+  propagatedBuildInputs = with python3.pkgs; [
+    distro
     jinja2
     markupsafe
     msgpack
-    pycrypto
+    pycryptodomex
     pyyaml
     pyzmq
     requests
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/scaleway-cli/default.nix b/pkgs/tools/admin/scaleway-cli/default.nix
index f9b608ebc4c..a174937e5a1 100644
--- a/pkgs/tools/admin/scaleway-cli/default.nix
+++ b/pkgs/tools/admin/scaleway-cli/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, buildGoPackage }:
 
-buildGoPackage rec{
+buildGoPackage rec {
   pname = "scaleway-cli";
   version = "1.20";
 
@@ -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/12-CVE-2016-9296.patch b/pkgs/tools/archivers/p7zip/12-CVE-2016-9296.patch
deleted file mode 100644
index 42245c92c0a..00000000000
--- a/pkgs/tools/archivers/p7zip/12-CVE-2016-9296.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From: Robert Luberda <robert@debian.org>
-Date: Sat, 19 Nov 2016 08:48:08 +0100
-Subject: Fix nullptr dereference (CVE-2016-9296)
-
-Patch taken from https://sourceforge.net/p/p7zip/bugs/185/
----
- CPP/7zip/Archive/7z/7zIn.cpp | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/CPP/7zip/Archive/7z/7zIn.cpp b/CPP/7zip/Archive/7z/7zIn.cpp
-index b0c6b98..7c6dde2 100644
---- a/CPP/7zip/Archive/7z/7zIn.cpp
-+++ b/CPP/7zip/Archive/7z/7zIn.cpp
-@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedStreams(
-       if (CrcCalc(data, unpackSize) != folders.FolderCRCs.Vals[i])
-         ThrowIncorrect();
-   }
--  HeadersSize += folders.PackPositions[folders.NumPackStreams];
-+  if (folders.PackPositions)
-+      HeadersSize += folders.PackPositions[folders.NumPackStreams];
-   return S_OK;
- }
- 
diff --git a/pkgs/tools/archivers/p7zip/13-CVE-2017-17969.patch b/pkgs/tools/archivers/p7zip/13-CVE-2017-17969.patch
deleted file mode 100644
index a9787c4a908..00000000000
--- a/pkgs/tools/archivers/p7zip/13-CVE-2017-17969.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From: =?utf-8?q?Antoine_Beaupr=C3=A9?= <anarcat@debian.org>
-Date: Fri, 2 Feb 2018 11:11:41 +0100
-Subject: Heap-based buffer overflow in 7zip/Compress/ShrinkDecoder.cpp
-
-Origin: vendor, https://sourceforge.net/p/p7zip/bugs/_discuss/thread/0920f369/27d7/attachment/CVE-2017-17969.patch
-Forwarded: https://sourceforge.net/p/p7zip/bugs/_discuss/thread/0920f369/#27d7
-Bug: https://sourceforge.net/p/p7zip/bugs/204/
-Bug-Debian: https://bugs.debian.org/888297
-Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2017-17969
-Reviewed-by: Salvatore Bonaccorso <carnil@debian.org>
-Last-Update: 2018-02-01
-Applied-Upstream: 18.00-beta
----
- CPP/7zip/Compress/ShrinkDecoder.cpp | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/CPP/7zip/Compress/ShrinkDecoder.cpp b/CPP/7zip/Compress/ShrinkDecoder.cpp
-index 80b7e67..ca37764 100644
---- a/CPP/7zip/Compress/ShrinkDecoder.cpp
-+++ b/CPP/7zip/Compress/ShrinkDecoder.cpp
-@@ -121,8 +121,13 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
-     {
-       _stack[i++] = _suffixes[cur];
-       cur = _parents[cur];
-+      if (cur >= kNumItems || i >= kNumItems)
-+        break;
-     }
--    
-+
-+    if (cur >= kNumItems || i >= kNumItems)
-+      break;
-+
-     _stack[i++] = (Byte)cur;
-     lastChar2 = (Byte)cur;
- 
diff --git a/pkgs/tools/archivers/p7zip/default.nix b/pkgs/tools/archivers/p7zip/default.nix
index d6ad699eaa8..a155c1717eb 100644
--- a/pkgs/tools/archivers/p7zip/default.nix
+++ b/pkgs/tools/archivers/p7zip/default.nix
@@ -1,32 +1,22 @@
-{ stdenv, fetchurl, fetchpatch, lib, enableUnfree ? false }:
+{ stdenv, fetchFromGitHub, lib, enableUnfree ? false }:
 
 stdenv.mkDerivation rec {
   pname = "p7zip";
-  version = "16.02";
+  version = "17.01";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/p7zip/p7zip_${version}_src_all.tar.bz2";
-    sha256 = "5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6e2341f";
-  };
 
-  patches = [
-    ./12-CVE-2016-9296.patch
-    ./13-CVE-2017-17969.patch
-    (fetchpatch {
-      name = "3-CVE-2018-5996.patch";
-      url = "https://raw.githubusercontent.com/termux/termux-packages/master/packages/p7zip/3-CVE-2018-5996.patch";
-      sha256 = "1zivvkazmza0653i498ccp3zbpbpc7dvxl3zxwllbx41b6n589yp";
-    })
-    (fetchpatch {
-      name = "4-CVE-2018-10115.patch";
-      url = "https://raw.githubusercontent.com/termux/termux-packages/master/packages/p7zip/4-CVE-2018-10115.patch";
-      sha256 = "1cr7q8gnrk9yp6dcvxaqi1yhdbgp964nkv65ls41mw1kdfm44zn6";
-    })
-  ];
+  src = fetchFromGitHub {
+    owner  = "szcnick";
+    repo   = pname;
+    rev    = "v${version}";
+    sha256 = "0gczdmypwbfnxzb11rjrrndjkkb3jzxfby2cchn5j8ysny13mfps";
+  }
+  ;
 
   # 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
@@ -43,10 +33,10 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
     makeFlagsArray=(DEST_HOME=$out)
-    buildFlags=all3
-  '' + stdenv.lib.optionalString stdenv.isDarwin ''
-    cp makefile.macosx_llvm_64bits makefile.machine
-  '';
+      buildFlags=all3
+        '' + stdenv.lib.optionalString stdenv.isDarwin ''
+        cp makefile.macosx_llvm_64bits makefile.machine
+'';
 
   enableParallelBuilding = true;
 
@@ -55,15 +45,10 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang "-Wno-error=c++11-narrowing";
 
   meta = {
-    homepage = "http://p7zip.sourceforge.net/";
-    description = "A port of the 7-zip archiver";
+    homepage = "https://github.com/szcnick/p7zip";
+    description = "A new p7zip fork with additional codecs and improvements (forked from https://sourceforge.net/projects/p7zip/)";
     platforms = stdenv.lib.platforms.unix;
     maintainers = [ stdenv.lib.maintainers.raskin ];
-    knownVulnerabilities = [
-      # p7zip is abandoned, according to this thread on its forums:
-      # https://sourceforge.net/p/p7zip/discussion/383043/thread/fa143cf2/#1817
-      "p7zip is abandoned and may not receive important security fixes"
-    ];
     # RAR code is under non-free UnRAR license, but we remove it
     license = if enableUnfree then lib.licenses.unfree else lib.licenses.lgpl2Plus;
   };
diff --git a/pkgs/tools/archivers/unar/default.nix b/pkgs/tools/archivers/unar/default.nix
index 9fdbada9ab8..6e75ee720e8 100644
--- a/pkgs/tools/archivers/unar/default.nix
+++ b/pkgs/tools/archivers/unar/default.nix
@@ -16,7 +16,9 @@ stdenv.mkDerivation rec {
     for f in Makefile.linux ../UniversalDetector/Makefile.linux ; do
       substituteInPlace $f \
         --replace "= gcc" "=cc" \
-        --replace "= g++" "=c++"
+        --replace "= g++" "=c++" \
+        --replace "-DGNU_RUNTIME=1" "" \
+        --replace "-fgnu-runtime" "-fobjc-nonfragile-abi"
     done
 
     # we need to build inside this directory as well, so we have to make it writeable
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/audio/abcm2ps/default.nix b/pkgs/tools/audio/abcm2ps/default.nix
index 302654f7715..099ccc6f4cb 100644
--- a/pkgs/tools/audio/abcm2ps/default.nix
+++ b/pkgs/tools/audio/abcm2ps/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "abcm2ps";
-  version = "8.14.7";
+  version = "8.14.9";
 
   src = fetchFromGitHub {
     owner = "leesavide";
     repo = "abcm2ps";
     rev = "v${version}";
-    sha256 = "0k12wf37vl31w2qpj3dsmv8c4ifrsg3qa30gqsx553jw7n0f3ma2";
+    sha256 = "0h4qzj9k5ng09nbkfipvr82piq68c576akjwmhsqn05rvgirmhx7";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/audio/abcmidi/default.nix b/pkgs/tools/audio/abcmidi/default.nix
index 0ccfaa081c9..f075f503ae5 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.03.25";
+  version = "2020.07.28";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    sha256 = "0rzif8idsja8ryhx0y4zdk8lhn36h10ahfjqa8bmif0rdbyab0kv";
+    sha256 = "05nsakvnx1jz2k9bvabpw5v3js28ng9z7n6ch58brd3qxc2p76zv";
   };
 
   # 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 71ebe7ceb81..776eca99998 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -10,7 +10,7 @@
 , enableAcousticbrainz ? true
 , enableAcoustid       ? true
 , enableBadfiles       ? true, flac ? null, mp3val ? null
-, enableConvert        ? true, ffmpeg ? null
+, enableConvert        ? true, ffmpeg_3 ? null
 , enableDiscogs        ? true
 , enableEmbyupdate     ? true
 , enableFetchart       ? true
@@ -39,7 +39,7 @@ assert enableAbsubmit    -> essentia-extractor            != null;
 assert enableAcoustid    -> pythonPackages.pyacoustid     != null;
 assert enableBadfiles    -> flac != null && mp3val != null;
 assert enableCheck       -> flac != null && mp3val != null && liboggz != null;
-assert enableConvert     -> ffmpeg != null;
+assert enableConvert     -> ffmpeg_3 != null;
 assert enableDiscogs     -> pythonPackages.discogs_client != null;
 assert enableFetchart    -> pythonPackages.responses      != null;
 assert enableGmusic      -> pythonPackages.gmusicapi      != null;
@@ -146,7 +146,7 @@ in pythonPackages.buildPythonApplication rec {
               || enableAcousticbrainz)
                                     pythonPackages.requests
     ++ optional enableCheck         plugins.check
-    ++ optional enableConvert       ffmpeg
+    ++ optional enableConvert       ffmpeg_3
     ++ optional enableDiscogs       pythonPackages.discogs_client
     ++ optional enableGmusic        pythonPackages.gmusicapi
     ++ optional enableKeyfinder     keyfinder-cli
@@ -185,6 +185,16 @@ in pythonPackages.buildPythonApplication rec {
     ./replaygain-default-bs1770gain.patch
     ./keyfinder-default-bin.patch
     ./mutagen-1.43.patch
+    (fetchpatch {
+      # Fixes failing testcases around the werkzeug component; can dropped after 1.4.9
+      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 = ''
@@ -200,7 +210,7 @@ in pythonPackages.buildPythonApplication rec {
       s,"mp3val","${mp3val}/bin/mp3val",
     }' beetsplug/badfiles.py
   '' + optionalString enableConvert ''
-    sed -i -e 's,\(util\.command_output(\)\([^)]\+\)),\1[b"${ffmpeg.bin}/bin/ffmpeg" if args[0] == b"ffmpeg" else args[0]] + \2[1:]),' beetsplug/convert.py
+    sed -i -e 's,\(util\.command_output(\)\([^)]\+\)),\1[b"${ffmpeg_3.bin}/bin/ffmpeg" if args[0] == b"ffmpeg" else args[0]] + \2[1:]),' beetsplug/convert.py
   '' + optionalString enableReplaygain ''
     sed -i -re '
       s!^( *cmd *= *b?['\'''"])(bs1770gain['\'''"])!\1${bs1770gain}/bin/\2!
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/mpd-mpris/default.nix b/pkgs/tools/audio/mpd-mpris/default.nix
index 37766a90721..79387d9ad1f 100644
--- a/pkgs/tools/audio/mpd-mpris/default.nix
+++ b/pkgs/tools/audio/mpd-mpris/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "1cr5j2z2ynj1hwkjzi5amcg59vmgazsci41v6vpsj119g7psjmzm";
   };
 
-  modSha256 = "1a95kfy8w952269x4llbl0afyxr5fjkg30mxsn81zdh5wr8gabwh";
+  vendorSha256 = "108yjymp64iqx1b2wqjbkmbm2w199wq46g7hrmqhcziv6f4aqljp";
+
+  doCheck = false;
 
   subPackages = [ "cmd/${pname}" ];
 
@@ -30,4 +32,3 @@ buildGoModule rec {
     platforms = platforms.linux;
   };
 }
-
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 3541453bafe..c1cddf12b65 100644
--- a/pkgs/tools/audio/playerctl/default.nix
+++ b/pkgs/tools/audio/playerctl/default.nix
@@ -2,18 +2,20 @@
 
 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 ];
   buildInputs = [ glib ];
 
+  mesonFlags = [ "-Dbash-completions=true" ];
+
   meta = with stdenv.lib; {
     description = "Command-line utility and library for controlling media players that implement MPRIS";
     homepage = "https://github.com/acrisci/playerctl";
diff --git a/pkgs/tools/audio/video2midi/default.nix b/pkgs/tools/audio/video2midi/default.nix
index dca8a0610da..cf9297119e9 100644
--- a/pkgs/tools/audio/video2midi/default.nix
+++ b/pkgs/tools/audio/video2midi/default.nix
@@ -8,7 +8,7 @@ let
   });
 in pythonPackages.buildPythonApplication rec {
   pname = "video2midi";
-  version = "0.4.0.1";
+  version = "0.4.0.2";
 
   format = "other";
 
@@ -16,7 +16,7 @@ in pythonPackages.buildPythonApplication rec {
     owner = "svsdval";
     repo = pname;
     rev = version;
-    sha256 = "1869w60kprjdikqk4iwx058zri2jg4aznzlg668w9myka4mp01r9";
+    sha256 = "174ijn8bc306529scd23szvgx1apanm2qmwk4lwmi64rhkm6dapx";
   };
 
   propagatedBuildInputs = with pythonPackages; [ opencv3_ midiutil pygame pyopengl ];
diff --git a/pkgs/tools/backup/bacula/default.nix b/pkgs/tools/backup/bacula/default.nix
index a9fd2f19b89..8bf253a7b12 100644
--- a/pkgs/tools/backup/bacula/default.nix
+++ b/pkgs/tools/backup/bacula/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, sqlite, postgresql, zlib, acl, ncurses, openssl, readline }:
 
 stdenv.mkDerivation rec {
-  name = "bacula-9.6.3";
+  name = "bacula-9.6.5";
 
   src = fetchurl {
     url    = "mirror://sourceforge/bacula/${name}.tar.gz";
-    sha256 = "02jvijwfw8nqrq61pyr5b9d5zjpmrsimkg6dq42rbd71g2k6a4zc";
+    sha256 = "0yn7qwkzix78bs811vmrn5gbywy7ggnsv72mdjz2lirqc6w3a3si";
   };
 
   buildInputs = [ postgresql sqlite zlib ncurses openssl readline ]
diff --git a/pkgs/tools/backup/borg/default.nix b/pkgs/tools/backup/borg/default.nix
index de69a8db3de..90090367586 100644
--- a/pkgs/tools/backup/borg/default.nix
+++ b/pkgs/tools/backup/borg/default.nix
@@ -2,11 +2,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "borgbackup";
-  version = "1.1.11";
+  version = "1.1.13";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "190gjzx83b6p64nqj840x382dgz9gfv0gm7wj585lnkrpa90j29n";
+    sha256 = "089q3flmwbz7dc28zlscwylf64kgck3jf1n6lqpwww8hlrk8cjhn";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/backup/bup/default.nix b/pkgs/tools/backup/bup/default.nix
index 182e37283df..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"; in
+let version = "0.31"; in
 
 with stdenv.lib;
 
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
     repo = "bup";
     owner = "bup";
     rev = version;
-    sha256 = "0kzi9mzgmx1kjv3aldawapz7bk73f02bysiwh8rngqnirmm0vxdp";
+    sha256 = "03kmmdlgg0p5z39bhckkf91mmq55wghb93ghqvv9f9gaby1diw4z";
   };
 
   buildInputs = [
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/duplicati/default.nix b/pkgs/tools/backup/duplicati/default.nix
index e2a5cc1c4cf..63f35538796 100644
--- a/pkgs/tools/backup/duplicati/default.nix
+++ b/pkgs/tools/backup/duplicati/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "duplicati";
-  version = "2.0.4.23";
+  version = "2.0.5.1";
   channel = "beta";
-  build_date = "2019-07-14";
+  build_date = "2020-01-18";
 
   src = fetchzip {
     url = "https://github.com/duplicati/duplicati/releases/download/v${version}-${version}_${channel}_${build_date}/duplicati-${version}_${channel}_${build_date}.zip";
-    sha256 = "1m2448vgl1fc2hkxkyasvdfgl728rqv16b41niznv5rsxv5643w2";
+    sha256 = "1k3gfwcw7snxkqn4lf9rx1vzradpyq5vc48pwvaa8wwqnlykiimw";
     stripRoot = false;
   };
 
diff --git a/pkgs/tools/backup/duplicity/default.nix b/pkgs/tools/backup/duplicity/default.nix
index 8e4014eea9d..6d6da3c9874 100644
--- a/pkgs/tools/backup/duplicity/default.nix
+++ b/pkgs/tools/backup/duplicity/default.nix
@@ -19,11 +19,11 @@ let
 in
 pythonPackages.buildPythonApplication rec {
   pname = "duplicity";
-  version = "0.8.12.1612";
+  version = "0.8.13";
 
   src = fetchurl {
     url = "https://code.launchpad.net/duplicity/${majorMinor version}-series/${majorMinorPatch version}/+download/duplicity-${version}.tar.gz";
-    sha256 = "06n58pwqg6kfigckjlslz2kx1lsykz1kn9a0r1cl8r3kn93zhk07";
+    sha256 = "0lflg1ay4q4w9qzpmh6y2hza4fc3ig12q44qkd80ks17hj21bxa6";
   };
 
   patches = [
diff --git a/pkgs/tools/backup/easysnap/default.nix b/pkgs/tools/backup/easysnap/default.nix
index 9b5450ba7a3..5c2ad1a50a7 100644
--- a/pkgs/tools/backup/easysnap/default.nix
+++ b/pkgs/tools/backup/easysnap/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     owner = "sjau";
     repo = "easysnap";
     rev = "26f89c0c3cda01e2595ee19ae5fb8518da25b4ef";
-    sha256 = "sha256:1k49k1m7y8s099wyiiz8411i77j1156ncirynmjfyvdhmhcyp5rw";
+    sha256 = "1k49k1m7y8s099wyiiz8411i77j1156ncirynmjfyvdhmhcyp5rw";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/backup/grab-site/default.nix b/pkgs/tools/backup/grab-site/default.nix
index 64a711606f8..81e16ad005b 100644
--- a/pkgs/tools/backup/grab-site/default.nix
+++ b/pkgs/tools/backup/grab-site/default.nix
@@ -1,14 +1,14 @@
 { stdenv, python3Packages, fetchFromGitHub }:
 
 python3Packages.buildPythonApplication rec {
-  version = "2.1.16";
+  version = "2.1.19";
   name = "grab-site-${version}";
 
   src = fetchFromGitHub {
     rev = version;
     owner = "ArchiveTeam";
     repo = "grab-site";
-    sha256 = "01n3mi9q593sd2bbmbbp5pn2c3pkwj7iqmy02zbh8ciqskraja4z";
+    sha256 = "1v1hnhv5knzdl0kj3574ccwlh171vcb7faddp095ycdmiiybalk4";
   };
 
   propagatedBuildInputs = with python3Packages; [
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 046fe130ffb..9d33ce1f3f8 100644
--- a/pkgs/tools/backup/monolith/default.nix
+++ b/pkgs/tools/backup/monolith/default.nix
@@ -3,25 +3,27 @@
 , fetchFromGitHub
 , pkg-config
 , openssl
+, Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "monolith";
-  version = "2.2.4";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "Y2Z";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0am992dhqv0vpk4zsc9wwnbzhpdx98wm9dxi89bq2yr3l77lml3d";
+    sha256 = "16k5mp64a5l063rdj65hbpx414xv0bqdvhvz49k8018f2a2jj5xl";
   };
 
-  cargoSha256 = "03nd8pzrd66rv12l7qr9i4kdrdr8hk1mz8ihvd982cjd2dlisipd";
+  cargoSha256 = "0s5mv8mymycz4ga4zh9kbrhwmhgl4j01pw1sdzxy49l9waryk9p3";
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ openssl ];
+  nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
+  buildInputs = stdenv.lib.optionals stdenv.isLinux [ openssl ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ Security ];
 
-  checkPhase = "cargo test -- --skip tests::cli";
+  checkFlagsArray = [ "--skip=tests::cli" ];
 
   meta = with stdenv.lib; {
     description = "Bundle any web page into a single HTML file";
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 ad67f7ce880..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";
   };
 
-  modSha256 = "0kwl5gwc5gc0cq2gldg13nvswp9wd90xiv1qb3g8yxcczywkpmrm";
+  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 ];
   };
 }
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/bluetooth/blueman/default.nix b/pkgs/tools/bluetooth/blueman/default.nix
index 69db0053cfa..aa8693b365a 100644
--- a/pkgs/tools/bluetooth/blueman/default.nix
+++ b/pkgs/tools/bluetooth/blueman/default.nix
@@ -9,11 +9,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "blueman";
-  version = "2.1.2";
+  version = "2.1.3";
 
   src = fetchurl {
     url = "https://github.com/blueman-project/blueman/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0k49hgyglsrlszckjzrvlsdm9ysns3qgvczgcmwaz02vvwnb4zai";
+    sha256 = "1pngqbwapbvywhkmflapqvs0wa0af7d1a87wy56l5hg2r462xl1v";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/bluetooth/bluez-alsa/default.nix b/pkgs/tools/bluetooth/bluez-alsa/default.nix
index 326366f4f0d..09f5471de48 100644
--- a/pkgs/tools/bluetooth/bluez-alsa/default.nix
+++ b/pkgs/tools/bluetooth/bluez-alsa/default.nix
@@ -31,8 +31,8 @@ stdenv.mkDerivation rec {
   ++ optional aacSupport fdk_aac;
 
   configureFlags = [
-    "--with-alsaplugindir=\$out/lib/alsa-lib"
-    "--with-dbusconfdir=\$out/etc/dbus-1"
+    "--with-alsaplugindir=${placeholder "out"}/lib/alsa-lib"
+    "--with-dbusconfdir=${placeholder "out"}/share/dbus-1/system.d"
     "--enable-rfcomm"
     "--enable-hcitop"
   ]
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/cd-dvd/unetbootin/default.nix b/pkgs/tools/cd-dvd/unetbootin/default.nix
index d81790d66a8..ae9e6724fac 100644
--- a/pkgs/tools/cd-dvd/unetbootin/default.nix
+++ b/pkgs/tools/cd-dvd/unetbootin/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "unetbootin";
-  version = "677";
+  version = "681";
 
   src = fetchFromGitHub {
     owner  = "unetbootin";
     repo   = "unetbootin";
     rev    = version;
-    sha256 = "1mk6179r2lz2d0pvln1anvf5p4l7vfrnnnlhgyx2dlx6pfacsspy";
+    sha256 = "0ppqb7ywh4cpcjr5nw6f65dx4s8kx09gnhihnby3zjhxdf4l99fm";
   };
 
   setSourceRoot = ''
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 65760a0b6cc..9628e100c1c 100644
--- a/pkgs/tools/compression/gzip/default.nix
+++ b/pkgs/tools/compression/gzip/default.nix
@@ -1,4 +1,13 @@
-{ stdenv, fetchurl, xz }:
+{ stdenv
+, fetchurl
+, xz
+, 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";
@@ -26,6 +35,12 @@ stdenv.mkDerivation rec {
     }' $out/bin/*
   '';
 
+  # set GZIP env variable to "-n" to stop gzip from adding timestamps
+  # to archive headers: https://github.com/NixOS/nixpkgs/issues/86348
+  setupHook = writeText "setup-hook" ''
+    export GZIP="-n"
+  '';
+
   meta = {
     homepage = "https://www.gnu.org/software/gzip/";
     description = "GNU zip compression program";
diff --git a/pkgs/tools/compression/hactool/default.nix b/pkgs/tools/compression/hactool/default.nix
index 77382d980e5..d34ca73556b 100644
--- a/pkgs/tools/compression/hactool/default.nix
+++ b/pkgs/tools/compression/hactool/default.nix
@@ -1,20 +1,22 @@
 { stdenv, fetchFromGitHub }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "hactool";
-  version = "1.3.3";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "SciresM";
     repo = "hactool";
-    rev = "1.3.3";
-    sha256 = "1qb51fck7liqc1ridms8wdlzgbdbvp6iv4an8jvmzhcj5p5xq631";
+    rev = version;
+    sha256 = "0305ngsnwm8npzgyhyifasi4l802xnfz19r0kbzzniirmcn4082d";
   };
 
   preBuild = ''
     mv config.mk.template config.mk
   '';
 
+  makeFlags = stdenv.lib.optionals stdenv.isDarwin [ "CC=cc" ];
+
   installPhase = ''
     install -D hactool $out/bin/hactool
   '';
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 50cbc731365..8ce434741a5 100644
--- a/pkgs/tools/compression/zstd/default.nix
+++ b/pkgs/tools/compression/zstd/default.nix
@@ -1,35 +1,49 @@
-{ stdenv, fetchFromGitHub, fetchpatch, cmake, gnugrep
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, bash, gnugrep
 , fixDarwinDylibNames
 , file
 , legacySupport ? false
-, enableShared ? true }:
+, static ? false
+}:
 
 stdenv.mkDerivation rec {
   pname = "zstd";
-  version = "1.4.4";
+  version = "1.4.5";
 
   src = fetchFromGitHub {
-    sha256 = "0zn7r8d4m8w2lblnjalqpz18na0spzkdiw3fwq2fzb7drhb32v54";
-    rev = "v${version}";
-    repo = "zstd";
     owner = "facebook";
+    repo = "zstd";
+    rev = "v${version}";
+    sha256 = "0ay3qlk4sffnmcl3b34q4zd7mkcmjds023icmib1mdli97qcp38l";
   };
 
   nativeBuildInputs = [ cmake ]
    ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+  buildInputs = [ bash ];
 
   patches = [
-    # From https://github.com/facebook/zstd/pull/1883
+    ./playtests-darwin.patch
     (fetchpatch {
-      url = "https://github.com/facebook/zstd/commit/106278e7e5fafaea3b7deb4147bdc8071562d2f0.diff";
-      sha256 = "13z7id1qbc05cv1rmak7c8xrchp7jh1i623bq5pwcihg57wzcyr8";
+      url = "https://github.com/facebook/zstd/pull/2163.patch";
+      sha256 = "07mfjc5f9wy0w2xlj36hyf7g5ax9r2rf6ixhkffhnwc6rwy0q54p";
     })
   ] # This I didn't upstream because if you use posix threads with MinGW it will
-    # work find, and I'm not sure how to write the condition.
+    # 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"}"
+    "-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"
   ];
@@ -41,20 +55,25 @@ stdenv.mkDerivation rec {
 
   checkInputs = [ file ];
   doCheck = true;
-  preCheck = ''
-    substituteInPlace ../tests/playTests.sh \
-      --replace 'MD5SUM="md5 -r"' 'MD5SUM="md5sum"'
+  checkPhase = ''
+    runHook preCheck
+    # Patch shebangs for playTests
+    patchShebangs ../programs/zstdgrep
+    ctest -R playTests # The only relatively fast test.
+    runHook postCheck
   '';
 
-  preInstall = stdenv.lib.optionalString enableShared ''
+  preInstall = ''
     substituteInPlace ../programs/zstdgrep \
       --replace ":-grep" ":-${gnugrep}/bin/grep" \
-      --replace ":-zstdcat" ":-$out/bin/zstdcat"
+      --replace ":-zstdcat" ":-$bin/bin/zstdcat"
 
     substituteInPlace ../programs/zstdless \
-      --replace "zstdcat" "$out/bin/zstdcat"
+      --replace "zstdcat" "$bin/bin/zstdcat"
   '';
 
+  outputs = [ "bin" "dev" "man" "out" ];
+
   meta = with stdenv.lib; {
     description = "Zstandard real-time compression algorithm";
     longDescription = ''
diff --git a/pkgs/tools/compression/zstd/playtests-darwin.patch b/pkgs/tools/compression/zstd/playtests-darwin.patch
new file mode 100644
index 00000000000..a98365eec33
--- /dev/null
+++ b/pkgs/tools/compression/zstd/playtests-darwin.patch
@@ -0,0 +1,18 @@
+--- a/tests/playTests.sh
++++ b/tests/playTests.sh
+@@ -109,5 +109,2 @@ esac
+ case "$UNAME" in
+-  Darwin) MD5SUM="md5 -r" ;;
+-  FreeBSD) MD5SUM="gmd5sum" ;;
+-  OpenBSD) MD5SUM="md5" ;;
+   *) MD5SUM="md5sum" ;;
+@@ -116,5 +113,2 @@ esac
+ MTIME="stat -c %Y"
+-case "$UNAME" in
+-    Darwin | FreeBSD | OpenBSD) MTIME="stat -f %m" ;;
+-esac
+ 
+@@ -752,3 +746,2 @@ zstd -d --rm dirTestDict/*.zst -D tmpDictC  # note : use internal checksum by de
+ case "$UNAME" in
+-  Darwin) println "md5sum -c not supported on OS-X : test skipped" ;;  # not compatible with OS-X's md5
+   *) $MD5SUM -c tmph1 ;;
diff --git a/pkgs/tools/filesystems/archivemount/default.nix b/pkgs/tools/filesystems/archivemount/default.nix
index 18bde25267d..d1d4ba6adf1 100644
--- a/pkgs/tools/filesystems/archivemount/default.nix
+++ b/pkgs/tools/filesystems/archivemount/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, pkgconfig, fuse, libarchive }:
 
 let
-  name = "archivemount-0.8.12";
+  name = "archivemount-0.9.1";
 in
 stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
     url = "https://www.cybernoia.de/software/archivemount/${name}.tar.gz";
-    sha256 = "12fb8fcmd1zwvfgzx4pay47md5cr2kgxcgq82cm6skmq75alfzi4";
+    sha256 = "1cy5b6qril9c3ry6fv7ir87s8iyy5vxxmbyx90dm86fbra0vjaf5";
   };
 
   nativeBuildInputs = [ pkgconfig ];
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 5aeff6baaa9..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 = "3.2.0";
+  version = "4.3.1";
 
   src = fetchFromGitHub {
     owner = "jamielinux";
     repo = "bashmount";
     rev = version;
-    sha256 = "0rki4s0jgz6vkywc6hcx9qa551r5bnjs7sw0rdh93k64l32kh644";
+    sha256 = "0pqjaib0qiwjq0ral5yjz4iq8hpaj9mqkhlihgfz0xigcn9lxwpf";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/filesystems/bcache-tools/default.nix b/pkgs/tools/filesystems/bcache-tools/default.nix
index 749aa04ebc7..c3b1759bcdd 100644
--- a/pkgs/tools/filesystems/bcache-tools/default.nix
+++ b/pkgs/tools/filesystems/bcache-tools/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     sed -e "/INSTALL.*initramfs\/hook/d" \
         -e "/INSTALL.*initcpio\/install/d" \
         -e "/INSTALL.*dracut\/module-setup.sh/d" \
+        -e "s/pkg-config/$PKG_CONFIG/" \
         -i Makefile
   '';
 
@@ -28,8 +29,12 @@ stdenv.mkDerivation rec {
     ./fix-static.patch
   ];
 
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "UDEVLIBDIR=${placeholder "out"}/lib/udev/"
+  ];
+
   preBuild = ''
-    export makeFlags="$makeFlags PREFIX=\"$out\" UDEVLIBDIR=\"$out/lib/udev/\"";
     sed -e "s|/bin/sh|${bash}/bin/sh|" -i *.rules
   '';
 
diff --git a/pkgs/tools/filesystems/bees/default.nix b/pkgs/tools/filesystems/bees/default.nix
index c6bb07e7b87..e87cecbf8fd 100644
--- a/pkgs/tools/filesystems/bees/default.nix
+++ b/pkgs/tools/filesystems/bees/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, runCommand, fetchFromGitHub, bash, btrfs-progs, coreutils, pythonPackages, utillinux }:
+{ stdenv, runCommand, fetchFromGitHub, bash, btrfs-progs, coreutils, python3Packages, utillinux }:
 
 let
 
@@ -22,7 +22,7 @@ let
     ];
 
     nativeBuildInputs = [
-      pythonPackages.markdown   # documentation build
+      python3Packages.markdown   # documentation build
     ];
 
     preBuild = ''
diff --git a/pkgs/tools/filesystems/bindfs/default.nix b/pkgs/tools/filesystems/bindfs/default.nix
index bf6c68072aa..f8968260ce7 100644
--- a/pkgs/tools/filesystems/bindfs/default.nix
+++ b/pkgs/tools/filesystems/bindfs/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, fuse, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  version = "1.14.5";
+  version = "1.14.7";
   pname = "bindfs";
 
   src = fetchurl {
     url    = "https://bindfs.org/downloads/${pname}-${version}.tar.gz";
-    sha256 = "173c5fcnfbnlw5a437r2x899ax77j3wp8gg8gffhryahcgyn1abq";
+    sha256 = "1lbqyc9vpgck05n0q3qsvsr34142iv721z6iwxhc5j98370ff9i8";
   };
 
   dontStrip = true;
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 5c73ee945c7..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";
+  version = "5.7";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    sha256 = "0srg276yccfmqz0skmmga3vbqx4wiqsk1l6h86n6ryhxa9viqcm1";
+    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 c2234404d34..767730c4030 100644
--- a/pkgs/tools/filesystems/ceph/default.nix
+++ b/pkgs/tools/filesystems/ceph/default.nix
@@ -11,6 +11,7 @@
 , rocksdb, makeWrapper
 , leveldb, oathToolkit
 , libnl, libcap_ng
+, rdkafka
 
 # Optional Dependencies
 , yasm ? null, fcgi ? null, expat ? null
@@ -74,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
@@ -82,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.9";
+  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 = "0zkh1a23v8g1fa5flqa2d53lv08ancab3li57gybpqpnja90k7il";
-    };
+    inherit src version;
 
     patches = [
       ./0000-fix-SPDK-build-env.patch
@@ -118,7 +145,7 @@ in rec {
     buildInputs = cryptoLibsMap.${cryptoStr} ++ [
       boost ceph-python-env libxml2 optYasm optLibatomic_ops optLibs3
       malloc zlib openldap lttng-ust babeltrace gperf gtest cunit
-      snappy rocksdb lz4 oathToolkit leveldb libnl libcap_ng
+      snappy rocksdb lz4 oathToolkit leveldb libnl libcap_ng rdkafka
     ] ++ optionals stdenv.isLinux [
       linuxHeaders utillinux libuuid udev keyutils optLibaio optLibxfs optZfs
       # ceph 14
@@ -172,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 ];
-      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/convoy/default.nix b/pkgs/tools/filesystems/convoy/default.nix
index 77d6dca066a..f12187be810 100644
--- a/pkgs/tools/filesystems/convoy/default.nix
+++ b/pkgs/tools/filesystems/convoy/default.nix
@@ -3,7 +3,7 @@
 
 buildGoPackage rec {
   pname = "convoy";
-  version = "0.5.0";
+  version = "0.5.2";
 
   goPackagePath = "github.com/rancher/convoy";
 
@@ -11,7 +11,7 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "rancher";
     repo = "convoy";
-    sha256 = "0ihy0cfq7sa2wml904ajwr165hx2mas3jb1bqk3i0m4fg1lx1xw1";
+    sha256 = "09nygrxd5hril4xcfsvgjg74xxhhimznqq4sdk0f360c5ra0dbhj";
   };
 
   buildInputs = [lvm2];
diff --git a/pkgs/tools/filesystems/davfs2/default.nix b/pkgs/tools/filesystems/davfs2/default.nix
index e3e4444c6c1..4f818ed213b 100644
--- a/pkgs/tools/filesystems/davfs2/default.nix
+++ b/pkgs/tools/filesystems/davfs2/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     (fetchpatch {
       name = "neon-0.31.patch";
       url = "http://savannah.nongnu.org/bugs/download.php?file_id=48737";
-      sha256 = "EtQfcstWkn8AcbZo93midGt076gq20AvGGJyQ3FO/YQ=";
+      sha256 = "117x9rql6wk230pl1nram3pp8svll9wzfs5nf407z4jnrdr1zm0j";
       extraPrefix = ""; # empty means add 'a/' and 'b/'
     })
   ];
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/file-rename/default.nix b/pkgs/tools/filesystems/file-rename/default.nix
index f9b6a941f68..588295f7791 100644
--- a/pkgs/tools/filesystems/file-rename/default.nix
+++ b/pkgs/tools/filesystems/file-rename/default.nix
@@ -11,6 +11,12 @@ perlPackages.buildPerlPackage {
 
   nativeBuildInputs = [ makeWrapper ];
 
+  # Fix an incorrect platform test that misidentifies Darwin as Windows
+  postPatch = ''
+    substituteInPlace Makefile.PL \
+      --replace '/win/i' '/MSWin32/'
+  '';
+
   postInstall = ''
     wrapProgram $out/bin/rename \
       --prefix PERL5LIB : $out/${perlPackages.perl.libPrefix}
diff --git a/pkgs/tools/filesystems/fuse-overlayfs/default.nix b/pkgs/tools/filesystems/fuse-overlayfs/default.nix
index 4c8012de4f1..11a3615a84c 100644
--- a/pkgs/tools/filesystems/fuse-overlayfs/default.nix
+++ b/pkgs/tools/filesystems/fuse-overlayfs/default.nix
@@ -1,26 +1,28 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkg-config, fuse3 }:
+{ stdenv, fetchFromGitHub, autoreconfHook, pkg-config, fuse3, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "fuse-overlayfs";
-  version = "1.0.0";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0h1ay2l7zyiqplh8whanw68mcfri79lc03wjjrhqji5ddwznv6fa";
+    sha256 = "1ivz65nnyisha3lkk6ywx175f2sdacjz3q5vy9xddr7dixwd2b18";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   buildInputs = [ fuse3 ];
 
+  passthru.tests = { inherit (nixosTests) podman; };
+
   meta = with stdenv.lib; {
     description = "FUSE implementation for overlayfs";
     longDescription = "An implementation of overlay+shiftfs in FUSE for rootless containers.";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ma9e ] ++ teams.podman.members;
-    platforms = platforms.unix;
+    platforms = platforms.linux;
     inherit (src.meta) homepage;
   };
 }
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/genromfs/default.nix b/pkgs/tools/filesystems/genromfs/default.nix
index d9d97a424bd..4adf124d529 100644
--- a/pkgs/tools/filesystems/genromfs/default.nix
+++ b/pkgs/tools/filesystems/genromfs/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     homepage = "http://romfs.sourceforge.net/";
     description = "Tool for creating romfs file system images";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ pxc ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/filesystems/glusterfs/default.nix b/pkgs/tools/filesystems/glusterfs/default.nix
index f02fec85a5b..44880638e65 100644
--- a/pkgs/tools/filesystems/glusterfs/default.nix
+++ b/pkgs/tools/filesystems/glusterfs/default.nix
@@ -15,10 +15,10 @@ let
     #       The command
     #         find /nix/store/...-glusterfs-.../ -name '*.py' -executable
     #       can help with finding new Python scripts.
-    version = "7.5";
+    version = "7.6";
     name="${baseName}-${version}";
     url="https://github.com/gluster/glusterfs/archive/v${version}.tar.gz";
-    sha256 = "1zahld2v1y920i0p25zcn15a593g3bl5sgnmhkdmn7kvk7mx4p93";
+    sha256 = "0zdcv2jk8dp67id8ic30mkn97ccp07jf20g7v09a5k31pw9aqyih";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/filesystems/moosefs/default.nix b/pkgs/tools/filesystems/moosefs/default.nix
index 4a912d3b42c..df3dd661d75 100644
--- a/pkgs/tools/filesystems/moosefs/default.nix
+++ b/pkgs/tools/filesystems/moosefs/default.nix
@@ -5,18 +5,18 @@
 , fuse
 , pkgconfig
 , libpcap
-, zlib 
+, zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "moosefs";
-  version = "3.0.112";
+  version = "3.0.114";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "04ymwg9r9x9gqjwy9jbjv7zzfgwal0xlfy6z5bwl27m2ys6l5k4a";
+    sha256 = "0bilrzzlg599xy21cm7r0xb2sanngr74j3z03xgybcm10kl97i7j";
   };
 
   nativeBuildInputs = [ pkgconfig makeWrapper ];
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
     [ fuse libpcap zlib ];
 
   postInstall = ''
+    substituteInPlace $out/sbin/mfscgiserv --replace "datapath=\"$out" "datapath=\""
     wrapProgram $out/sbin/mfscgiserv \
         --prefix PATH ":" "${python}/bin"
   '';
diff --git a/pkgs/tools/filesystems/netatalk/default.nix b/pkgs/tools/filesystems/netatalk/default.nix
index faa0a1ebfe8..f7732cd76fd 100644
--- a/pkgs/tools/filesystems/netatalk/default.nix
+++ b/pkgs/tools/filesystems/netatalk/default.nix
@@ -3,7 +3,7 @@
 , ed, glibc, libevent
 }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   name = "netatalk-3.1.12";
 
   src = fetchurl {
diff --git a/pkgs/tools/filesystems/nixpart/0.4/cryptsetup.nix b/pkgs/tools/filesystems/nixpart/0.4/cryptsetup.nix
index 3feed238880..88a1716a0e1 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/cryptsetup.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/cryptsetup.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, lvm2, libgcrypt, libuuid, pkgconfig, popt
+{ stdenv, fetchurl, fetchpatch, lvm2, libgcrypt, libuuid, pkgconfig, popt
 , enablePython ? true, python ? null
 }:
 
@@ -12,6 +12,15 @@ stdenv.mkDerivation rec {
     sha256 = "1n1qk5chyjspbiianrdb55fhb4wl0vfyqz2br05vfb24v4qlgbx2";
   };
 
+  patches = [
+    # Fix build with glibc >= 2.28
+    # https://github.com/NixOS/nixpkgs/issues/86403
+    (fetchpatch {
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/cryptsetup/files/cryptsetup-1.7.1-sysmacros.patch?id=d72316f97ebcc7fe622b21574442a9ac59b9115f";
+      sha256 = "0xbhazgl44bimqhcrhajk016w9wi7bkrgwyfq13xmrvyrllqvgdx";
+    })
+  ];
+
   configureFlags = [ "--enable-cryptsetup-reencrypt" ]
                 ++ stdenv.lib.optional enablePython "--enable-python";
 
diff --git a/pkgs/tools/filesystems/nixpart/0.4/default.nix b/pkgs/tools/filesystems/nixpart/0.4/default.nix
index 5d7a9dd14ec..1f672701d38 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/default.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/default.nix
@@ -18,7 +18,7 @@ let
 
   cryptsetup = import ./cryptsetup.nix {
     inherit stdenv fetchurl python;
-    inherit (pkgs) pkgconfig libgcrypt libuuid popt lvm2;
+    inherit (pkgs) fetchpatch pkgconfig libgcrypt libuuid popt lvm2;
   };
 
   dmraid = import ./dmraid.nix {
@@ -27,17 +27,17 @@ let
 
   lvm2 = import ./lvm2.nix {
     inherit stdenv fetchurl;
-    inherit (pkgs) pkgconfig utillinux systemd coreutils;
+    inherit (pkgs) fetchpatch pkgconfig utillinux systemd coreutils;
   };
 
   multipath_tools = import ./multipath-tools.nix {
     inherit stdenv fetchurl lvm2;
-    inherit (pkgs) readline systemd libaio gzip;
+    inherit (pkgs) fetchpatch readline systemd libaio gzip;
   };
 
   parted = import ./parted.nix {
     inherit stdenv fetchurl;
-    inherit (pkgs) utillinux readline libuuid gettext check lvm2;
+    inherit (pkgs) fetchpatch utillinux readline libuuid gettext check lvm2;
   };
 
   pyblock = import ./pyblock.nix {
diff --git a/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix b/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix
index c8c748b4c45..fc0005a14d4 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, systemd, utillinux, coreutils }:
+{ stdenv, fetchurl, fetchpatch, pkgconfig, systemd, utillinux, coreutils }:
 
 let
   v = "2.02.106";
@@ -12,6 +12,18 @@ stdenv.mkDerivation {
     sha256 = "0nr833bl0q4zq52drjxmmpf7bs6kqxwa5kahwwxm9411khkxz0vc";
   };
 
+  patches = [
+    # Fix build with glibc >= 2.28
+    # https://github.com/NixOS/nixpkgs/issues/86403
+    (fetchpatch {
+      url = "https://github.com/lvmteam/lvm2/commit/92d5a8441007f578e000b492cecf67d6b8a87405.patch";
+      sha256 = "1yqd6jng0b370k53vks1shg57yhfyribhpmv19km5zsjqf0qqx2d";
+      excludes = [
+        "libdm/libdm-stats.c"
+      ];
+    })
+  ];
+
   configureFlags = [
     "--disable-readline"
     "--enable-udev_rules"
diff --git a/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix b/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
index b3b18579334..ffed57e6345 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
@@ -1,6 +1,6 @@
 # FIXME: unify with pkgs/os-specific/linux/multipath-tools/default.nix.
 
-{ stdenv, fetchurl, lvm2, libaio, gzip, readline, systemd }:
+{ stdenv, fetchurl, fetchpatch, lvm2, libaio, gzip, readline, systemd }:
 
 stdenv.mkDerivation rec {
   name = "multipath-tools-0.4.9";
@@ -10,6 +10,18 @@ stdenv.mkDerivation rec {
     sha256 = "04n7kazp1zrlqfza32phmqla0xkcq4zwn176qff5ida4a60whi4d";
   };
 
+  patches = [
+    # Fix build with glibc >= 2.28
+    # https://github.com/NixOS/nixpkgs/issues/86403
+    (fetchpatch {
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/multipath-tools/files/multipath-tools-0.6.4-sysmacros.patch?id=eb22b954c177b5c1e2b6ed5c7cdd02f40f40d757";
+      sha256 = "1an0cgmz7g03c4qjimhpm9fcf2iswws18lwqxi688k87qm3xb5qd";
+      excludes = [
+        "libmultipath/util.c"
+      ];
+    })
+  ];
+
   sourceRoot = ".";
 
   buildInputs = [ lvm2 libaio readline gzip ];
@@ -26,6 +38,11 @@ stdenv.mkDerivation rec {
 
       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
+
+      sed -i -re '
+         s,^( *#define +DEFAULT_MULTIPATHDIR\>).*,\1 "'"$out/lib/multipath"'",
+      ' libmultipath/defaults.h
+
     '';
 
   meta = {
diff --git a/pkgs/tools/filesystems/nixpart/0.4/parted.nix b/pkgs/tools/filesystems/nixpart/0.4/parted.nix
index 2a0ffe326dc..16f3a57ea14 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/parted.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/parted.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, lvm2, libuuid, gettext, readline
+{ stdenv, fetchurl, fetchpatch, lvm2, libuuid, gettext, readline
 , utillinux, check, enableStatic ? false }:
 
 stdenv.mkDerivation rec {
@@ -9,6 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "05fa4m1bky9d13hqv91jlnngzlyn7y4rnnyq6d86w0dg3vww372y";
   };
 
+  patches = [
+    # Fix build with glibc >= 2.28
+    # https://github.com/NixOS/nixpkgs/issues/86403
+    (fetchpatch {
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-block/parted/files/parted-3.2-sysmacros.patch?id=8e2414f551c14166f259f9a25a594aec7a5b9ea0";
+      sha256 = "0fdgifjbri7n28hv74zksac05gw72p2czzvyar0jp62b9dnql3mp";
+    })
+  ];
+
   buildInputs = [ libuuid ]
     ++ stdenv.lib.optional (readline != null) readline
     ++ stdenv.lib.optional (gettext != null) gettext
diff --git a/pkgs/tools/filesystems/nixpart/0.4/pyblock-sysmacros.h.patch b/pkgs/tools/filesystems/nixpart/0.4/pyblock-sysmacros.h.patch
new file mode 100644
index 00000000000..b8ab7bd53b2
--- /dev/null
+++ b/pkgs/tools/filesystems/nixpart/0.4/pyblock-sysmacros.h.patch
@@ -0,0 +1,12 @@
+diff --git a/dm.c b/dm.c
+index 5daa0e5..d5b84c8 100644
+--- a/dm.c
++++ b/dm.c
+@@ -19,6 +19,7 @@
+ #define _GNU_SOURCE
+ #include <sys/stat.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include <stdarg.h>
diff --git a/pkgs/tools/filesystems/nixpart/0.4/pyblock.nix b/pkgs/tools/filesystems/nixpart/0.4/pyblock.nix
index 2abab905737..f087edd853d 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/pyblock.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/pyblock.nix
@@ -11,6 +11,12 @@ stdenv.mkDerivation rec {
     sha256 = "f6cef88969300a6564498557eeea1d8da58acceae238077852ff261a2cb1d815";
   };
 
+  patches = [
+    # Fix build with glibc >= 2.28
+    # https://github.com/NixOS/nixpkgs/issues/86403
+    ./pyblock-sysmacros.h.patch
+  ];
+
   postPatch = ''
     sed -i -e 's|/usr/include/python|${python}/include/python|' \
            -e 's/-Werror *//' -e 's|/usr/|'"$out"'/|' Makefile
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/snapraid/default.nix b/pkgs/tools/filesystems/snapraid/default.nix
index db9afedad96..de6d25e128a 100644
--- a/pkgs/tools/filesystems/snapraid/default.nix
+++ b/pkgs/tools/filesystems/snapraid/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "snapraid";
-  version = "11.3";
+  version = "11.5";
 
   src = fetchFromGitHub {
     owner = "amadvance";
     repo = "snapraid";
     rev = "v${version}";
-    sha256 = "08rwz55njkr1w794y3hs8nxc11vzbv4drds9wgxpf6ps8qf9q49f";
+    sha256 = "0dlhdsmq5l208zldfr9z9g0p67wry81dr0r23lpybb5c9fm2f2rm";
   };
 
   VERSION = version;
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/cfdg/default.nix b/pkgs/tools/graphics/cfdg/default.nix
index 8122e5a5ec2..2cbf43407ff 100644
--- a/pkgs/tools/graphics/cfdg/default.nix
+++ b/pkgs/tools/graphics/cfdg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, libpng, bison, flex, ffmpeg, icu }:
+{ stdenv, fetchFromGitHub, libpng, bison, flex, ffmpeg_3, icu }:
 
 stdenv.mkDerivation rec {
   pname = "cfdg";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "13m8npccacmgxbs4il45zw53dskjh53ngv2nxahwqw8shjrws4mh";
   };
 
-  buildInputs = [ libpng bison flex ffmpeg icu ];
+  buildInputs = [ libpng bison flex ffmpeg_3 icu ];
 
   postPatch = ''
     sed -e "/YY_NO_UNISTD/a#include <stdio.h>" -i src-common/cfdg.l
diff --git a/pkgs/tools/graphics/dpic/default.nix b/pkgs/tools/graphics/dpic/default.nix
index 0621d885694..7b7eea3d509 100644
--- a/pkgs/tools/graphics/dpic/default.nix
+++ b/pkgs/tools/graphics/dpic/default.nix
@@ -2,28 +2,22 @@
 
 stdenv.mkDerivation rec {
   pname = "dpic";
-  version = "2020.03.01";
+  version = "2020.06.01";
 
   src = fetchurl {
     url = "https://ece.uwaterloo.ca/~aplevich/dpic/${pname}-${version}.tar.gz";
-    sha256 = "1wa1b8m98wdyryf0czn5g3g50znrjcdhsrzpqp6zgwr5w4a086mj";
+    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/glxinfo/default.nix b/pkgs/tools/graphics/glxinfo/default.nix
index a1160fd7383..6518a74512b 100644
--- a/pkgs/tools/graphics/glxinfo/default.nix
+++ b/pkgs/tools/graphics/glxinfo/default.nix
@@ -18,10 +18,11 @@ stdenv.mkDerivation rec {
     $CC src/xdemos/glxgears.c -o glxgears -lGL -lX11 -lm
     $CC src/egl/opengles2/es2_info.c -o es2_info -lEGL -lGLESv2 -lX11
     $CC src/egl/opengles2/es2gears.c src/egl/eglut/{eglut.c,eglut_x11.c} -o es2gears -Isrc/egl/eglut -lEGL -lGLESv2 -lX11 -lm
+    $CC src/egl/opengl/eglinfo.c -o eglinfo -lEGL -lGLESv2 -lX11
   ";
 
   installPhase = "
-    install -Dm 555 -t $out/bin glx{info,gears} es2{_info,gears}
+    install -Dm 555 -t $out/bin glx{info,gears} es2{_info,gears} eglinfo
   ";
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/graphics/gmic/default.nix b/pkgs/tools/graphics/gmic/default.nix
index f4be95556c8..b167a73466d 100644
--- a/pkgs/tools/graphics/gmic/default.nix
+++ b/pkgs/tools/graphics/gmic/default.nix
@@ -2,7 +2,7 @@
 , fetchurl
 , cmake
 , ninja
-, pkgconfig
+, pkg-config
 , opencv3
 , openexr
 , graphicsmagick
@@ -15,19 +15,19 @@
 
 stdenv.mkDerivation rec {
   pname = "gmic";
-  version = "2.7.5";
+  version = "2.9.1";
 
   outputs = [ "out" "lib" "dev" "man" ];
 
   src = fetchurl {
     url = "https://gmic.eu/files/source/gmic_${version}.tar.gz";
-    sha256 = "008lpjm3w5hzfccam6qf0rizdg3a9cqrizhr7vrpskmbr1j451d6";
+    sha256 = "13axx7nwchn6ysgpvlw3fib474q4nrwv3qn20g3q03ldid0xvjah";
   };
 
   nativeBuildInputs = [
     cmake
     ninja
-    pkgconfig
+    pkg-config
   ];
 
   buildInputs = [
@@ -43,12 +43,13 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DBUILD_LIB_STATIC=OFF"
+    "-DENABLE_CURL=OFF"
     "-DENABLE_DYNAMIC_LINKING=ON"
   ];
 
   meta = with stdenv.lib; {
     description = "Open and full-featured framework for image processing";
-    homepage = "http://gmic.eu/";
+    homepage = "https://gmic.eu/";
     license = licenses.cecill20;
     platforms = platforms.unix;
   };
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/imgurbash2/default.nix b/pkgs/tools/graphics/imgurbash2/default.nix
index 14761e7763c..ea3b1ed9b02 100644
--- a/pkgs/tools/graphics/imgurbash2/default.nix
+++ b/pkgs/tools/graphics/imgurbash2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "imgurbash2";
-  version = "3.1";
+  version = "3.2";
 
   src = fetchFromGitHub {
     owner = "ram-on";
     repo = "imgurbash2";
     rev = version;
-    sha256 = "1hqghlk8c6svfszhmp02bhkc791lqhqffgiypf05giqmr5d8b9a9";
+    sha256 = "10zs6p17psl1vq5vpkfkf9nrlmibk6v1ds3yxbf1rip1zaqlwxg6";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/graphics/jhead/default.nix b/pkgs/tools/graphics/jhead/default.nix
index 9f5ffcad8fd..19a0e26d9cc 100644
--- a/pkgs/tools/graphics/jhead/default.nix
+++ b/pkgs/tools/graphics/jhead/default.nix
@@ -2,34 +2,27 @@
 
 stdenv.mkDerivation rec {
   pname = "jhead";
-  version = "3.03";
+  version = "3.04";
 
   src = fetchurl {
     url = "http://www.sentex.net/~mwandel/jhead/${pname}-${version}.tar.gz";
-    sha256 = "1hn0yqcicq3qa20h1g313l1a671r8mccpb9gz0w1056r500lw6c2";
+    sha256 = "1j831bqw1qpkbchdriwcy3sgzvbagaj45wlc124fs9bc9z7vp2gg";
   };
 
   patches = [
     (fetchpatch {
-      name = "CVE-2019-1010301.patch";
-      url = "https://sources.debian.org/data/main/j/jhead/1:3.03-3/debian/patches/36_CVE-2019-1010301";
-      sha256 = "1vvrg50z5y7sjhfi973wh1q1v79sqp7hk5d4z0dlnx3fqgkjrx7q";
-    })
-    (fetchpatch {
-      name = "CVE-2019-1010302.patch";
-      url = "https://sources.debian.org/data/main/j/jhead/1:3.03-3/debian/patches/37_CVE-2019-1010302";
-      sha256 = "1h11mpsi7hpwbi8kpnkjwn6zpqf88f132h0rsg8sggcs3vva2x8y";
+      url = "https://sources.debian.org/data/main/j/jhead/1:3.04-2/debian/patches/01_gpsinfo.c";
+      sha256 = "0r8hdbfrdxip4dwz5wqsv47a29j33cx7w5zx4jdhp5l1ihg003lz";
     })
   ];
 
   buildInputs = [ libjpeg ];
 
-  patchPhase = ''
-    substituteInPlace makefile \
-      --replace /usr/local/bin $out/bin
+  makeFlags = [ "CPPFLAGS=" "CFLAGS=-O3" "LDFLAGS=" ];
 
+  patchPhase = ''
+    sed -i '/dpkg-buildflags/d' makefile
     substituteInPlace jhead.c \
-      --replace "\"   Compiled: \"__DATE__" "" \
       --replace "jpegtran -trim" "${libjpeg.bin}/bin/jpegtran -trim"
   '';
 
diff --git a/pkgs/tools/graphics/lepton/default.nix b/pkgs/tools/graphics/lepton/default.nix
index 0088422c6a4..cbb48fe3728 100644
--- a/pkgs/tools/graphics/lepton/default.nix
+++ b/pkgs/tools/graphics/lepton/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, cmake, git, glibc }:
 
 stdenv.mkDerivation rec {
-  version = "1.2.1";
-  pname = "lepton";
+  version = "2019-08-20";
+  pname = "lepton-unstable";
 
   src = fetchFromGitHub {
     repo = "lepton";
     owner = "dropbox";
-    rev = version;
-    sha256 = "1f2vyp0crj4yw27bs53vykf2fqk4w57gv3lh9dp89dh3y7wwh1ba";
+    rev = "3d1bc19da9f13a6e817938afd0f61a81110be4da";
+    sha256 = "0aqs6nvcbq8cbfv8699fa634bsz7csmk0169n069yvv17d1c07fd";
   };
 
   nativeBuildInputs = [ cmake git ];
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/luxcorerender/default.nix b/pkgs/tools/graphics/luxcorerender/default.nix
index fc8a98c1993..3afb6ebd987 100644
--- a/pkgs/tools/graphics/luxcorerender/default.nix
+++ b/pkgs/tools/graphics/luxcorerender/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, boost165, pkgconfig, python35
+{ stdenv, fetchFromGitHub, cmake, boost165, pkgconfig, python36
 , tbb, openimageio, libjpeg, libpng, zlib, libtiff, ilmbase
 , freetype, openexr, libXdmcp, libxkbcommon, epoxy, at-spi2-core
 , dbus, doxygen, qt5, c-blosc, libGLU, gnome3, dconf, gtk3, pcre
@@ -7,28 +7,34 @@
 , withOpenCL ? true , opencl-headers, ocl-icd, opencl-clhpp
 }:
 
-let boost_static = boost165.override {
-      python = python35;
+let
+      python = python36;
+
+      boost_static = boost165.override {
+      inherit python;
       enableStatic = true;
       enablePython = true;
     };
 
+    version = "2.0";
+    sha256 = "15nn39ybsfjf3cw3xgkbarvxn4a9ymfd579ankm7yjxkw5gcif38";
+
 in stdenv.mkDerivation {
   pname = "luxcorerender";
-  version = "2.0";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "LuxCoreRender";
     repo = "LuxCore";
-    rev = "luxcorerender_v2.0";
-    sha256 = "15nn39ybsfjf3cw3xgkbarvxn4a9ymfd579ankm7yjxkw5gcif38";
+    rev = "luxcorerender_v${version}";
+    inherit sha256;
   };
 
   buildInputs =
    [ embree2 pkgconfig cmake zlib boost_static libjpeg
      libtiff libpng ilmbase freetype openexr openimageio
      tbb qt5.full c-blosc libGLU pcre bison
-     flex libX11 libpthreadstubs python35 libXdmcp libxkbcommon
+     flex libX11 libpthreadstubs python libXdmcp libxkbcommon
      epoxy at-spi2-core dbus doxygen
      # needed for GSETTINGS_SCHEMAS_PATH
      gsettings-desktop-schemas glib gtk3
@@ -43,15 +49,15 @@ in stdenv.mkDerivation {
     "-DOpenEXR_IlmThread_INCLUDE_DIR=${ilmbase.dev}/include/OpenEXR"
     "-DOpenEXR_Imath_INCLUDE_DIR=${openexr.dev}/include/OpenEXR"
     "-DOpenEXR_half_INCLUDE_DIR=${ilmbase.dev}/include"
-    "-DPYTHON_LIBRARY=${python35}/lib/libpython3.so"
-    "-DPYTHON_INCLUDE_DIR=${python35}/include/python3.5"
+    "-DPYTHON_LIBRARY=${python}/lib/libpython3.so"
+    "-DPYTHON_INCLUDE_DIR=${python}/include/python${python.pythonVersion}"
     "-DEMBREE_INCLUDE_PATH=${embree2}/include"
     "-DEMBREE_LIBRARY=${embree2}/lib/libembree.so"
     "-DBoost_PYTHON_LIBRARY_RELEASE=${boost_static}/lib/libboost_python3-mt.so"
   ] ++ stdenv.lib.optional withOpenCL
        "-DOPENCL_INCLUDE_DIR=${opencl-headers}/include";
   preConfigure = ''
-    NIX_CFLAGS_COMPILE+=" -isystem ${python35}/include/python3.5"
+    NIX_CFLAGS_COMPILE+=" -isystem ${python}/include/python${python.pythonVersion}"
     NIX_LDFLAGS+=" -lpython3"
   '';
 
diff --git a/pkgs/tools/graphics/netpbm/default.nix b/pkgs/tools/graphics/netpbm/default.nix
index b2452be7339..bfb50c45f40 100644
--- a/pkgs/tools/graphics/netpbm/default.nix
+++ b/pkgs/tools/graphics/netpbm/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   src = fetchsvn {
     url = "https://svn.code.sf.net/p/netpbm/code/advanced";
     rev = "3735";
-    sha256 = "hRepEUBlf83p77Amjze+Qz7XTHhCuPdV01K/UabR89Q=";
+    sha256 = "1m7ks6k53gsjsdazgf22g16dfgj3pqvqy9mhxzlwszv5808sj5w5";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/graphics/oxipng/default.nix b/pkgs/tools/graphics/oxipng/default.nix
index be29136c703..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 = "2.3.0";
+  version = "3.0.1";
   pname = "oxipng";
 
   src = fetchFromGitHub {
     owner = "shssoichiro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1cx026g1gdvk4qmnrbsmg46y2lizx0wqny25hhdjnh9pwzjc77mh";
+    sha256 = "11lncwxksm7aqczy9ay1qnba2wmgfsirhgrl6vv1jlgj41b7mzi5";
   };
 
-  cargoSha256 = "17wgsj2fcxhpsib3ps20sninbf236f9ihf4lnnfrawknmqfvq4s9";
+  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/shotgun/default.nix b/pkgs/tools/graphics/shotgun/default.nix
index aa9fbf55d86..3c96584029e 100644
--- a/pkgs/tools/graphics/shotgun/default.nix
+++ b/pkgs/tools/graphics/shotgun/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
     owner = "neXromancers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "tJnF1X+NI1hP0J/n3rGy8TD/yIveqRPVlJvJvn0C7Do=";
+    sha256 = "0fpc09yvxjcvjkai7afyig4gyc7inaqxxrwzs17mh8wdgzawb6dl";
   };
 
   cargoSha256 = "0sbhij8qh9n05nzhp47dm46hbc59awar515f9nhd3wvahwz53zam";
diff --git a/pkgs/tools/graphics/spirv-cross/default.nix b/pkgs/tools/graphics/spirv-cross/default.nix
index 57b447b1ad7..76d554457d9 100644
--- a/pkgs/tools/graphics/spirv-cross/default.nix
+++ b/pkgs/tools/graphics/spirv-cross/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "spirv-cross";
-  version = "2020-04-03";
+  version = "2020-06-29";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "SPIRV-Cross";
     rev = version;
-    sha256 = "0489s29kqgq20clxqg22y299yxz23p0yjh87yhka705hm9skx4sa";
+    sha256 = "0mnccmhlqmpdx92v495z39i07hbvjwdr5n4zbarlrr1d7rm99lx4";
   };
 
   nativeBuildInputs = [ cmake python3 ];
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/transfig/default.nix b/pkgs/tools/graphics/transfig/default.nix
index 960e7fd3ba3..9226809c5c5 100644
--- a/pkgs/tools/graphics/transfig/default.nix
+++ b/pkgs/tools/graphics/transfig/default.nix
@@ -11,11 +11,11 @@ stdenv.mkDerivation {
   buildInputs = [ zlib libjpeg libpng ];
 
   patches = [
-    ./patch-fig2dev-dev-Imakefile
-    ./patch-fig2dev-Imakefile
-    ./patch-transfig-Imakefile
-    ./patch-fig2dev-fig2dev.h
-    ./patch-fig2dev-dev-gensvg.c
+    ./patch-fig2dev-dev-Imakefile.patch
+    ./patch-fig2dev-Imakefile.patch
+    ./patch-transfig-Imakefile.patch
+    ./patch-fig2dev-fig2dev.h.patch
+    ./patch-fig2dev-dev-gensvg.c.patch
   ];
 
   patchPhase = ''
diff --git a/pkgs/tools/graphics/transfig/patch-fig2dev-Imakefile b/pkgs/tools/graphics/transfig/patch-fig2dev-Imakefile.patch
index 9c1895b1519..9c1895b1519 100644
--- a/pkgs/tools/graphics/transfig/patch-fig2dev-Imakefile
+++ b/pkgs/tools/graphics/transfig/patch-fig2dev-Imakefile.patch
diff --git a/pkgs/tools/graphics/transfig/patch-fig2dev-dev-Imakefile b/pkgs/tools/graphics/transfig/patch-fig2dev-dev-Imakefile.patch
index 87f01f70d30..87f01f70d30 100644
--- a/pkgs/tools/graphics/transfig/patch-fig2dev-dev-Imakefile
+++ b/pkgs/tools/graphics/transfig/patch-fig2dev-dev-Imakefile.patch
diff --git a/pkgs/tools/graphics/transfig/patch-fig2dev-dev-gensvg.c b/pkgs/tools/graphics/transfig/patch-fig2dev-dev-gensvg.c.patch
index 5bd05c97be8..5bd05c97be8 100644
--- a/pkgs/tools/graphics/transfig/patch-fig2dev-dev-gensvg.c
+++ b/pkgs/tools/graphics/transfig/patch-fig2dev-dev-gensvg.c.patch
diff --git a/pkgs/tools/graphics/transfig/patch-fig2dev-fig2dev.h b/pkgs/tools/graphics/transfig/patch-fig2dev-fig2dev.h.patch
index 3f330c164e7..3f330c164e7 100644
--- a/pkgs/tools/graphics/transfig/patch-fig2dev-fig2dev.h
+++ b/pkgs/tools/graphics/transfig/patch-fig2dev-fig2dev.h.patch
diff --git a/pkgs/tools/graphics/transfig/patch-transfig-Imakefile b/pkgs/tools/graphics/transfig/patch-transfig-Imakefile.patch
index 4639658dccd..4639658dccd 100644
--- a/pkgs/tools/graphics/transfig/patch-transfig-Imakefile
+++ b/pkgs/tools/graphics/transfig/patch-transfig-Imakefile.patch
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/wkhtmltopdf/default.nix b/pkgs/tools/graphics/wkhtmltopdf/default.nix
index ee083c3e301..093ab9ad5c4 100644
--- a/pkgs/tools/graphics/wkhtmltopdf/default.nix
+++ b/pkgs/tools/graphics/wkhtmltopdf/default.nix
@@ -3,14 +3,14 @@
 , openssl, libX11, libXext, libXrender }:
 
 mkDerivation rec {
-  version = "0.12.5";
+  version = "0.12.6";
   pname = "wkhtmltopdf";
 
   src = fetchFromGitHub {
     owner  = "wkhtmltopdf";
     repo   = "wkhtmltopdf";
     rev    = version;
-    sha256 = "0i6b6z3f4szspbbi23qr3hv22j9bhmcj7c1jizr7y0ra43mrgws1";
+    sha256 = "0m2zy986kzcpg0g3bvvm815ap9n5ann5f6bdy7pfj6jv482bm5mg";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/graphics/yafaray-core/default.nix b/pkgs/tools/graphics/yafaray-core/default.nix
index be8b20fd052..a02a97739ba 100644
--- a/pkgs/tools/graphics/yafaray-core/default.nix
+++ b/pkgs/tools/graphics/yafaray-core/default.nix
@@ -1,19 +1,19 @@
 { stdenv, fetchFromGitHub, cmake, pkgconfig, opencv, zlib
 , libxml2, freetype, libjpeg, libtiff, swig, openexr
 , ilmbase, boost165
-, withPython ? true, python35
+, withPython ? true, python3
 }:
 
 stdenv.mkDerivation rec {
 
     pname = "yafaray-core";
-    version = "3.4.1";
+    version = "3.4.4";
 
     src = fetchFromGitHub {
       owner  = "YafaRay";
       repo   = "Core";
       rev    = "v${version}";
-      sha256 = "0ipkrgn5siad6y8naw1pgxkxas70l09g97vabyfbx1k67xrr4ldp";
+      sha256 = "140vnaihz09rdvp0mqgrs26b3a2fv5wm49ar6817p4qklfx71l0g";
     };
 
     preConfigure = ''
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     buildInputs = [
       cmake pkgconfig boost165 opencv zlib libxml2 freetype libjpeg libtiff
       swig openexr ilmbase
-    ] ++ stdenv.lib.optional withPython python35;
+    ] ++ stdenv.lib.optional withPython python3;
 
     meta = with stdenv.lib; {
       description = "A free, open source raytracer";
diff --git a/pkgs/tools/graphics/yaxg/default.nix b/pkgs/tools/graphics/yaxg/default.nix
index 094ec2d5bc4..467210b27b3 100644
--- a/pkgs/tools/graphics/yaxg/default.nix
+++ b/pkgs/tools/graphics/yaxg/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, makeWrapper,
-  maim, slop, ffmpeg, byzanz, libnotify, xdpyinfo }:
+  maim, slop, ffmpeg_3, byzanz, libnotify, xdpyinfo }:
 
 stdenv.mkDerivation rec {
   pname = "yaxg";
@@ -13,13 +13,13 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ maim slop ffmpeg byzanz libnotify xdpyinfo ];
+  buildInputs = [ maim slop ffmpeg_3 byzanz libnotify xdpyinfo ];
 
   installPhase = ''
     mkdir -p $out/bin/
     mv yaxg $out/bin/
     chmod +x $out/bin/yaxg
-    wrapProgram $out/bin/yaxg --prefix PATH : ${ stdenv.lib.makeBinPath [ maim slop ffmpeg byzanz libnotify xdpyinfo ]}
+    wrapProgram $out/bin/yaxg --prefix PATH : ${ stdenv.lib.makeBinPath [ maim slop ffmpeg_3 byzanz libnotify xdpyinfo ]}
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/graphics/zbar/default.nix b/pkgs/tools/graphics/zbar/default.nix
index dc109440274..8e5d687d2ad 100644
--- a/pkgs/tools/graphics/zbar/default.nix
+++ b/pkgs/tools/graphics/zbar/default.nix
@@ -16,11 +16,12 @@
 , dbus
 , enableVideo ? stdenv.isLinux
 , enableDbus ? stdenv.isLinux
+, libintl
 }:
 
 stdenv.mkDerivation rec {
   pname = "zbar";
-  version = "0.23";
+  version = "0.23.1";
 
   outputs = [ "out" "lib" "dev" "doc" "man" ];
 
@@ -28,7 +29,7 @@ stdenv.mkDerivation rec {
     owner = "mchehab";
     repo = "zbar";
     rev = version;
-    sha256 = "0hlxakpyjg4q9hp7yp3har1n78341b4knwyll28hn48vykg28pza";
+    sha256 = "0l4nxha8k18iqzrbqpgca49lrf1gigy3kpbzl3ldw2lw8alwy8x2";
   };
 
   nativeBuildInputs = [
@@ -43,6 +44,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     imagemagickBig
     libX11
+    libintl
   ] ++ lib.optionals enableDbus [
     dbus
   ] ++ lib.optionals enableVideo [
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/inputmethods/interception-tools/default.nix b/pkgs/tools/inputmethods/interception-tools/default.nix
index a6aed47d964..39a28214fe2 100644
--- a/pkgs/tools/inputmethods/interception-tools/default.nix
+++ b/pkgs/tools/inputmethods/interception-tools/default.nix
@@ -2,14 +2,14 @@
   libevdev, udev }:
 
 let
-  version = "0.1.1";
+  version = "0.2.1";
   baseName = "interception-tools";
 in stdenv.mkDerivation {
   name = "${baseName}-${version}";
 
   src = fetchurl {
     url = "https://gitlab.com/interception/linux/tools/repository/v${version}/archive.tar.gz";
-    sha256 = "14g4pphvylqdb922va322z1pbp12ap753hcf7zf9sii1ikvif83j";
+    sha256 = "0lqz89wsf9r5xdgflincysxg4l8fpgg5z8zczhhrg9s5787srfzi";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/tools/misc/3mux/default.nix b/pkgs/tools/misc/3mux/default.nix
index 3371b795623..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";
   };
 
-  modSha256 = "1ag9lx8xcp2z9lrg404914zin45n8f4s08365yk71q5vyiwxjj3i";
+  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;
   };
 }
diff --git a/pkgs/tools/misc/agedu/default.nix b/pkgs/tools/misc/agedu/default.nix
index 6463ed1df28..c9bad789ad2 100644
--- a/pkgs/tools/misc/agedu/default.nix
+++ b/pkgs/tools/misc/agedu/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchgit, autoreconfHook, halibut}:
 let
-  date = "20180918";
-  rev = "80c7beb";
+  date = "20200206";
+  rev = "963bc9d";
 in
 stdenv.mkDerivation {
   name = "agedu-${date}.${rev}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   src = fetchgit {
     url = "https://git.tartarus.org/simon/agedu.git";
     inherit rev;
-    sha256 = "0i930izna3s73p2q52qa377ixd14zij5q1n7w3irl7csyy78g0cd";
+    sha256 = "1jmvgg2v6aqgbgpxbndrdhgfhlglrq4yv4sdbjaj6bsz9fb8lqhc";
   };
 
   nativeBuildInputs = [autoreconfHook halibut];
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..23418ced829
--- /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";
+
+  src = fetchFromGitHub {
+    owner = "juliagoda";
+    repo = "antimicroX";
+    rev = version;
+    sha256 = "0li22sjl95233azxhyda36idnfzbb4b02wf57hnpnba6qvrlpwwl";
+  };
+
+  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/autorandr/default.nix b/pkgs/tools/misc/autorandr/default.nix
index 9588d0ae948..b2bbb161f28 100644
--- a/pkgs/tools/misc/autorandr/default.nix
+++ b/pkgs/tools/misc/autorandr/default.nix
@@ -6,7 +6,7 @@
 
 let
   python = python3Packages.python;
-  version = "1.10";
+  version = "1.10.1";
 in
   stdenv.mkDerivation {
     pname = "autorandr";
@@ -34,7 +34,7 @@ in
           SYSTEMD_UNIT_DIR=/lib/systemd/system \
           UDEV_RULES_DIR=/etc/udev/rules.d
         substituteInPlace $out/etc/udev/rules.d/40-monitor-hotplug.rules \
-          --replace /bin/systemctl "${systemd}/bin/systemctl"
+          --replace /bin/systemctl "/run/current-system/systemd/bin/systemctl"
       '' else ''
         make install TARGETS='pmutils' DESTDIR=$out \
           PM_SLEEPHOOKS_DIR=/lib/pm-utils/sleep.d
@@ -49,7 +49,7 @@ in
       owner = "phillipberndt";
       repo = "autorandr";
       rev = version;
-      sha256 = "0rcgs1n09p0p16lr5y239s0yrw7bch0x2cqwgc2dyh7rz7d9qmwn";
+      sha256 = "0msw9b1hdy3gbq9w5d04mfizhyirz1c648x84mlcbzl8salm7vpg";
     };
 
     meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/bashcards/default.nix b/pkgs/tools/misc/bashcards/default.nix
new file mode 100644
index 00000000000..ecaabb43c14
--- /dev/null
+++ b/pkgs/tools/misc/bashcards/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bashcards";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "rpearce";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1zbijbcm9lrqwiax37li0jjqcaxf469wh5d423frain56z1qknxl";
+  };
+
+  dontBuild = true;
+  installPhase = ''
+    mkdir -p $out/bin $out/share/man/man8
+    cp bashcards.8 $out/share/man/man8/
+    cp bashcards $out/bin/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Practice flashcards in bash";
+    homepage = "https://github.com/rpearce/bashcards/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ rpearce ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/misc/bat-extras/default.nix b/pkgs/tools/misc/bat-extras/default.nix
index 0f98b819b0f..36adc09cdba 100644
--- a/pkgs/tools/misc/bat-extras/default.nix
+++ b/pkgs/tools/misc/bat-extras/default.nix
@@ -1,5 +1,6 @@
-{ stdenv, callPackage, fetchFromGitHub, bash, makeWrapper, ncurses, bat
-# batgrep and batwatch
+{ stdenv, callPackage, fetchFromGitHub, bash, makeWrapper, bat
+# batdiff, batgrep, and batwatch
+, coreutils
 , less
 # batgrep
 , ripgrep
@@ -10,34 +11,35 @@
 , withRustFmt ? rustfmt != null, rustfmt ? null
 # batwatch
 , withEntr ? entr != null, entr ? null
- }:
+# batdiff
+, gitMinimal
+, withDelta ? gitAndTools?delta, gitAndTools ? null
+}:
 
 let
   # Core derivation that all the others are based on.
   # This includes the complete source so the per-script derivations can run the tests.
   core = stdenv.mkDerivation rec {
     pname   = "bat-extras";
-    version = "20200408";
+    # there hasn't been a release since 2020-05-01 but there are important bugfixes
+    # to the test suite so we'll pull the latest commit as of 2020-06-17.
+    version = "20200515-dev"; # latest commit was dated 2020-05-15
 
     src = fetchFromGitHub {
       owner  = "eth-p";
       repo   = pname;
-      rev    = "v${version}";
-      sha256 = "184d5rwasfpgbj2k98alg3wy8jmzna2dgfik98w2a297ky67s51v";
+      rev    = "3029b6749f61f7514e9eef30e035cfab0e31eb1d";
+      sha256 = "08mb94k2n182ql97c5s5j1v7np25ivynn5g0418whrx11ra41wr7";
       fetchSubmodules = true;
     };
 
-    nativeBuildInputs = [ bash makeWrapper ];
+    # bat needs to be in the PATH during building so EXECUTABLE_BAT picks it up
+    nativeBuildInputs = [ bash bat ];
 
     dontConfigure = true;
 
     postPatch = ''
-      substituteInPlace lib/constants.sh \
-        --replace 'EXECUTABLE_BAT="bat"' 'EXECUTABLE_BAT="${bat}/bin/bat"'
-
       patchShebangs --build test.sh test/shimexec .test-framework/bin/best.sh
-      wrapProgram .test-framework/bin/best.sh \
-        --prefix PATH : "${ncurses}/bin"
     '';
 
     buildPhase = ''
@@ -131,17 +133,13 @@ let
     stdenv.lib.optional cond dep;
 in
 {
-  batgrep = script "batgrep" [ less ripgrep ];
-  batman = (script "batman" []).overrideAttrs (drv: {
-    doCheck = stdenv.isDarwin; # test fails on Linux due to SIGPIPE (eth-p/bat-extras#19)
-  });
-  batwatch = script "batwatch" ([ less ] ++ optionalDep withEntr entr);
-  prettybat = (script "prettybat" ([]
+  batdiff = script "batdiff" ([ less coreutils gitMinimal ] ++ optionalDep withDelta gitAndTools.delta);
+  batgrep = script "batgrep" [ less coreutils ripgrep ];
+  batman = script "batman" [];
+  batwatch = script "batwatch" ([ less coreutils ] ++ optionalDep withEntr entr);
+  prettybat = script "prettybat" ([]
     ++ optionalDep withShFmt shfmt
     ++ optionalDep withPrettier nodePackages.prettier
     ++ optionalDep withClangTools clang-tools
-    ++ optionalDep withRustFmt rustfmt)
-  ).overrideAttrs (drv: {
-    doCheck = stdenv.isDarwin; # test fails on Linux due to SIGPIPE (eth-p/bat-extras#19)
-  });
+    ++ optionalDep withRustFmt rustfmt);
 }
diff --git a/pkgs/tools/misc/bat/default.nix b/pkgs/tools/misc/bat/default.nix
index 95bc44dcce0..b4e5501fb73 100644
--- a/pkgs/tools/misc/bat/default.nix
+++ b/pkgs/tools/misc/bat/default.nix
@@ -1,32 +1,24 @@
-{ stdenv, rustPlatform, fetchFromGitHub, llvmPackages, pkgconfig, less
+{ stdenv, rustPlatform, fetchFromGitHub, pkgconfig, less
 , Security, libiconv, installShellFiles, makeWrapper
 }:
 
 rustPlatform.buildRustPackage rec {
   pname   = "bat";
-  version = "0.15.1";
+  version = "0.15.4";
 
   src = fetchFromGitHub {
     owner  = "sharkdp";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "10cs94ja1dmn0f24gqkcy8rf68b3b43k6qpbb5njbg0hcx3x6cyj";
-    fetchSubmodules = true;
+    sha256 = "0pjdba2c6p7ldgx2yfffxqlpasrcfrlkw63m1ma34zdq0f287w3p";
   };
 
-  cargoSha256 = "13cphi08bp6lg054acgliir8dx2jajll4m3c4xxy04skmx555zr8";
+  cargoSha256 = "0myz06hjv4hwzmyqa9l36i9j9d213a0mnq8rvx6wyff7mr9zk99i";
 
-  # Disable test that's broken on macOS.
-  # This should probably be removed on the next release.
-  # https://github.com/sharkdp/bat/issues/983
-  patches = [ ./macos.patch ];
-
-  nativeBuildInputs = [ pkgconfig llvmPackages.libclang installShellFiles makeWrapper ];
+  nativeBuildInputs = [ pkgconfig installShellFiles makeWrapper ];
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security libiconv ];
 
-  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
-
   postInstall = ''
     installManPage $releaseDir/build/bat-*/out/assets/manual/bat.1
     installShellCompletion $releaseDir/build/bat-*/out/assets/completions/bat.fish
@@ -43,7 +35,6 @@ rustPlatform.buildRustPackage rec {
     description = "A cat(1) clone with syntax highlighting and Git integration";
     homepage    = "https://github.com/sharkdp/bat";
     license     = with licenses; [ asl20 /* or */ mit ];
-    maintainers = with maintainers; [ dywedir lilyball ];
-    platforms   = platforms.all;
+    maintainers = with maintainers; [ dywedir lilyball zowoq ];
   };
 }
diff --git a/pkgs/tools/misc/bat/macos.patch b/pkgs/tools/misc/bat/macos.patch
deleted file mode 100644
index 549782f0c91..00000000000
--- a/pkgs/tools/misc/bat/macos.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/assets.rs b/src/assets.rs
-index 4f8556f..222abc2 100644
---- a/src/assets.rs
-+++ b/src/assets.rs
-@@ -336,7 +336,7 @@ mod tests {
-         assert_eq!(test.syntax_for_file("Makefile"), "Makefile");
-     }
- 
--    #[cfg(unix)]
-+    #[cfg(all(unix,not(target_os = "macos")))]
-     #[test]
-     fn syntax_detection_invalid_utf8() {
-         use std::os::unix::ffi::OsStrExt;
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 15154f73a69..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.1";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = "fcambus";
     repo = pname;
     rev = version;
-    sha256 = "02dzvrgwpgbd0wgfnlpiv2qlwvspwl7a0qh8cg363lpnxv8akw9q";
+    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/bibtool/default.nix b/pkgs/tools/misc/bibtool/default.nix
index 2f90745785a..041dabeee77 100644
--- a/pkgs/tools/misc/bibtool/default.nix
+++ b/pkgs/tools/misc/bibtool/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bibtool";
-  version = "2.67";
+  version = "2.68";
 
   src = fetchurl {
     url = "http://www.gerd-neugebauer.de/software/TeX/BibTool/BibTool-${version}.tar.gz";
-    sha256 = "116pv532mz0q954y5b7c6zipnamc05f0x7g5x1b674jsjxh42v2v";
+    sha256 = "1ymq901ckaysq2n1bplk1064rb2njq9n30pii15w157y0lxcwd3i";
   };
 
   # Perl for running test suite.
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
   installTargets = [ "install" "install.man" ];
 
   doCheck = true;
+  checkTarget = "test";
 
   meta = with stdenv.lib; {
     description = "Tool for manipulating BibTeX bibliographies";
diff --git a/pkgs/tools/misc/birdfont/default.nix b/pkgs/tools/misc/birdfont/default.nix
index a0e133ec504..bdf68d708a5 100644
--- a/pkgs/tools/misc/birdfont/default.nix
+++ b/pkgs/tools/misc/birdfont/default.nix
@@ -4,11 +4,11 @@ gobject-introspection, gsettings-desktop-schemas, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "birdfont";
-  version = "2.28.0";
+  version = "2.29.0";
 
   src = fetchurl {
     url = "https://birdfont.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "19i7wzngi695dp4w0235wmfcnagdw3i40mzf89sddr1mqzvipfrz";
+    sha256 = "18z3qbrsbfpn00c4xq3ck1mnmvrnqgl9g1s7m4dgc1871fi6sv8w";
   };
 
   nativeBuildInputs = [ python3 pkgconfig vala_0_44 gobject-introspection wrapGAppsHook ];
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index bf5d569bab4..ccdb8bcd708 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -1,40 +1,71 @@
-{ stdenv, rustPlatform, fetchFromGitHub, coreutils, libiconv, Security, installShellFiles }:
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, installShellFiles
+, makeWrapper
+, coreutils
+, libiconv
+, Security
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "0.13.6";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = pname;
     rev = "v${version}";
-    sha256 = "08d0zddqqymxj1qcp8c78r7mpii1piy6awaf135jxhzwi775sqqv";
+    sha256 = "0by4cln9ljaphqk5hz56mcavz9kc5s42zlxx33nf3idqrszfcarf";
   };
 
-  cargoSha256 = "1cxvx51zkmhszmgwsi0aj469xz98v5nk79zvqfyma27gsnh8jczr";
+  cargoSha256 = "1i5zq310k8gv9877rcrvash3aw1cyf3g0741qnky71d565s3n910";
 
-  nativeBuildInputs = [ installShellFiles ];
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   postPatch = ''
-    substituteInPlace src/verb_store.rs --replace '"/bin/' '"${coreutils}/bin/'
+    substituteInPlace src/verb/builtin.rs --replace '"/bin/' '"${coreutils}/bin/'
+
+    # Fill the version stub in the man page. We can't fill the date
+    # stub reproducibly.
+    substitute man/page man/broot.1 \
+      --replace "#version" "${version}"
   '';
 
   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
 
     installShellCompletion --bash $OUT_DIR/{br,broot}.bash
     installShellCompletion --fish $OUT_DIR/{br,broot}.fish
     installShellCompletion --zsh $OUT_DIR/{_br,_broot}
+
+    installManPage man/broot.1
   '';
 
   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/brotab/default.nix b/pkgs/tools/misc/brotab/default.nix
index 854958dc8a3..c7a5642050a 100644
--- a/pkgs/tools/misc/brotab/default.nix
+++ b/pkgs/tools/misc/brotab/default.nix
@@ -1,14 +1,14 @@
 { lib, fetchFromGitHub, glibcLocales, python }:
 
 python.pkgs.buildPythonApplication rec {
-  version = "1.2.2";
+  version = "1.3.0";
   pname = "brotab";
 
   src = fetchFromGitHub {
     owner = "balta2ar";
     repo = pname;
     rev = version;
-    sha256 = "1c6npyws705qf9rv70mmh7d0almmpxz87a0n65lhw08lms1h3dl2";
+    sha256 = "1ja9qaf3rxm0chgzs5mpw973h7ibb454k9mbfbb2gl12gr9zllyw";
   };
 
   propagatedBuildInputs = with python.pkgs; [
diff --git a/pkgs/tools/misc/capture/default.nix b/pkgs/tools/misc/capture/default.nix
index e7134961c25..e92898ccc4d 100644
--- a/pkgs/tools/misc/capture/default.nix
+++ b/pkgs/tools/misc/capture/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, slop, ffmpeg, fetchFromGitHub, makeWrapper}:
+{ stdenv, slop, ffmpeg_3, fetchFromGitHub, makeWrapper}:
 
 stdenv.mkDerivation {
   pname = "capture-unstable";
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
 
     patchShebangs $out/bin/capture
     wrapProgram $out/bin/capture \
-      --prefix PATH : '${stdenv.lib.makeBinPath [ slop ffmpeg ]}'
+      --prefix PATH : '${stdenv.lib.makeBinPath [ slop ffmpeg_3 ]}'
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/chafa/default.nix b/pkgs/tools/misc/chafa/default.nix
index 9e1671aec9d..9afdd93ad0a 100644
--- a/pkgs/tools/misc/chafa/default.nix
+++ b/pkgs/tools/misc/chafa/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, autoconf, automake, libtool, pkgconfig, which, libxslt, libxml2, docbook_xml_dtd_412, docbook_xsl, glib, imagemagick, darwin }:
 
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   version = "1.4.1";
   pname = "chafa";
 
diff --git a/pkgs/tools/misc/chezmoi/default.nix b/pkgs/tools/misc/chezmoi/default.nix
index 96e33e0de24..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.1";
+  version = "1.8.5";
 
   src = fetchFromGitHub {
     owner = "twpayne";
     repo = "chezmoi";
     rev = "v${version}";
-    sha256 = "1b8y0wq3myhvjdnwl0i4x85iil7i7kmsjajvbw1a47afm83jkbaw";
+    sha256 = "16sv1kbd66rllnnl851y3x54wkl0p7g0qsblprvfr9715svk1835";
   };
 
-  modSha256 = "147bbhbcf81i6vyiv9q8abx5qw44fx3qw5v5f6zjnkfajdqlvbsx";
+  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;
   };
 }
diff --git a/pkgs/tools/misc/clex/default.nix b/pkgs/tools/misc/clex/default.nix
index 5e5bf4166ff..7a6a78af59a 100644
--- a/pkgs/tools/misc/clex/default.nix
+++ b/pkgs/tools/misc/clex/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://www.clex.sk";
     license = licenses.gpl2Plus;
-    platforms = platforms.linux;
+    platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/tools/misc/clipman/default.nix b/pkgs/tools/misc/clipman/default.nix
index 8d84adbddad..80a0afe68d3 100644
--- a/pkgs/tools/misc/clipman/default.nix
+++ b/pkgs/tools/misc/clipman/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "1lf5fbzplyc1mpdqgfwbrn8m5568vhjf48580fvvfgbhz6zcil8n";
   };
 
-  modSha256 = "1sim3x794kj3wdw0g432zbgh1cimdmmg1hjgynh9jgm3y8w9q7ij";
+  vendorSha256 = "18jw4z0lcrh00yjr3qdkgvlrpfwqbsm0ncz7fp1h72pzkh41byv7";
+
+  doCheck = false;
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/tools/misc/cloc/default.nix b/pkgs/tools/misc/cloc/default.nix
index 0e598d78a53..e35d5283256 100644
--- a/pkgs/tools/misc/cloc/default.nix
+++ b/pkgs/tools/misc/cloc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cloc";
-  version = "1.84";
+  version = "1.86";
 
   src = fetchFromGitHub {
     owner = "AlDanial";
     repo = "cloc";
     rev = version;
-    sha256 = "14xikdwcr6pcnkk2i43zrsj88z8b3mrv0svbnbvxvarw1id83pnn";
+    sha256 = "082gj2b3x11bilz8c572dd60vn6n0fhld5zhi7wk7g1wy9wlgm9w";
   };
 
   setSourceRoot = ''
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/cloud-utils/default.nix b/pkgs/tools/misc/cloud-utils/default.nix
index cdd1891fb40..d5c5b0ee783 100644
--- a/pkgs/tools/misc/cloud-utils/default.nix
+++ b/pkgs/tools/misc/cloud-utils/default.nix
@@ -8,10 +8,10 @@ stdenv.mkDerivation rec {
   # $ nix-build nixos/release-combined.nix -A nixos.tests.ec2-nixops
   # growpart is needed in initrd in nixos/system/boot/grow-partition.nix
   pname = "cloud-utils";
-  version = "0.30";
+  version = "0.31";
   src = fetchurl {
-    url = "https://launchpad.net/cloud-utils/trunk/0.3/+download/cloud-utils-${version}.tar.gz";
-    sha256 = "19ca9ckwwsvlqrjz19bc93rq4gv3y4ak7551li2qk95caqyxsq3k";
+    url = "https://launchpad.net/cloud-utils/trunk/${version}/+download/cloud-utils-${version}.tar.gz";
+    sha256 = "07fl3dlqwdzw4xx7mcxhpkks6dnmaxha80zgs9f6wmibgzni8z0r";
   };
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ python3 ];
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/cowsay/default.nix b/pkgs/tools/misc/cowsay/default.nix
index d2a27fa9cb0..972b2997d81 100644
--- a/pkgs/tools/misc/cowsay/default.nix
+++ b/pkgs/tools/misc/cowsay/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, perl }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   version = "3.03+dfsg2";
   pname = "cowsay";
 
diff --git a/pkgs/tools/misc/cpuminer/default.nix b/pkgs/tools/misc/cpuminer/default.nix
index 99eb6a52ca0..d48dc5ec1c9 100644
--- a/pkgs/tools/misc/cpuminer/default.nix
+++ b/pkgs/tools/misc/cpuminer/default.nix
@@ -1,17 +1,25 @@
-{ stdenv, fetchurl, curl, jansson, perl }:
+{ stdenv
+, fetchFromGitHub
+, curl
+, jansson
+, perl
+, autoreconfHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "cpuminer";
-  version = "2.5.0";
+  version = "2.5.1";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/cpuminer/pooler-${pname}-${version}.tar.gz";
-    sha256 = "1xalrfrk5hvh1jh9kbqhib2an82ypd46vl9glaxhz3rbjld7c5pa";
+  src = fetchFromGitHub {
+    owner = "pooler";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0f44i0z8rid20c2hiyp92xq0q0mjj537r05sa6vdbc0nl0a5q40i";
   };
 
   patchPhase = if stdenv.cc.isClang then "${perl}/bin/perl ./nomacro.pl" else null;
 
-  buildInputs = [ curl jansson ];
+  buildInputs = [ curl jansson autoreconfHook ];
 
   configureFlags = [ "CFLAGS=-O3" ];
 
diff --git a/pkgs/tools/misc/dashing/default.nix b/pkgs/tools/misc/dashing/default.nix
index 8d7f16b5bec..11523ae3758 100644
--- a/pkgs/tools/misc/dashing/default.nix
+++ b/pkgs/tools/misc/dashing/default.nix
@@ -1,26 +1,26 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-{ stdenv, buildGoPackage, fetchgit }:
+{ stdenv, buildGoPackage, fetchFromGitHub }:
 
 buildGoPackage rec {
-  pname = "dashing-unstable";
-  version = "2018-02-15";
-  rev = "0e0519d76ed6bbbe02b00ee1d1ac24697d349f49";
+  pname = "dashing";
+  version = "0.4.0";
 
   goPackagePath = "github.com/technosophos/dashing";
 
-  src = fetchgit {
-    inherit rev;
-    url = "https://github.com/technosophos/dashing";
-    sha256 = "066njyk3c1fqqr0v6aa6knp3dnksmh6hnl9d84fgd4wzyw3ma2an";
+  src = fetchFromGitHub {
+    owner = "technosophos";
+    repo = pname;
+    rev = version;
+    sha256 = "0mhv0w5q5vpynbfi21n5i3yw2165bppdlg0amvbv86n9z4c21h89";
   };
 
   goDeps = ./deps.nix;
 
+  buildFlagsArray = [ "-ldflags=-X main.version=${version}" ];
+
   meta = with stdenv.lib; {
     description = "A Dash Generator Script for Any HTML";
     homepage    = "https://github.com/technosophos/dashing";
     license     = licenses.mit;
     maintainers = [ ];
-    platforms   = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/dashing/deps.nix b/pkgs/tools/misc/dashing/deps.nix
index 4ad5a10149e..a87de8674ff 100644
--- a/pkgs/tools/misc/dashing/deps.nix
+++ b/pkgs/tools/misc/dashing/deps.nix
@@ -1,21 +1,30 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+# 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/andybalholm/cascadia";
     fetch = {
       type = "git";
       url = "https://github.com/andybalholm/cascadia";
-      rev = "901648c87902174f774fac311d7f176f8647bdaa";
-      sha256 = "09j8cavbhqqdxjqrkwbc40g8p0i49zf3184rpjm5p2rjbprcghcc";
+      rev = "903109d295d5";
+      sha256 = "1zprh6wfyf4f5c6nw1bgyyfx3niydsnbdyvpi18fc378wmh4hlq4";
     };
   }
   {
-    goPackagePath = "github.com/codegangsta/cli";
+    goPackagePath = "github.com/cpuguy83/go-md2man";
     fetch = {
       type = "git";
-      url = "https://github.com/codegangsta/cli";
-      rev = "8e01ec4cd3e2d84ab2fe90d8210528ffbb06d8ff";
-      sha256 = "0cpr10n4ps3gcdbcink71ry9hzhdb5rrcysmylybs8h2lzxqgc1i";
+      url = "https://github.com/cpuguy83/go-md2man";
+      rev = "f79a8a8ca69d";
+      sha256 = "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv";
     };
   }
   {
@@ -23,8 +32,53 @@
     fetch = {
       type = "git";
       url = "https://github.com/mattn/go-sqlite3";
-      rev = "d896508f87298565da02ed92730e7065c3de10b8";
-      sha256 = "19q0rv171wx73rwdp81rkj9ys3r5jaav94b3j06gprg59phb98bs";
+      rev = "v2.0.1";
+      sha256 = "1i3v0j5144iir1n31nahbq9rs2picraphyh5qx9n9rz1d5w1v8zy";
+    };
+  }
+  {
+    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 = "v2.0.1";
+      sha256 = "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j";
+    };
+  }
+  {
+    goPackagePath = "github.com/shurcooL/sanitized_anchor_name";
+    fetch = {
+      type = "git";
+      url = "https://github.com/shurcooL/sanitized_anchor_name";
+      rev = "v1.0.0";
+      sha256 = "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f";
+    };
+  }
+  {
+    goPackagePath = "github.com/urfave/cli";
+    fetch = {
+      type = "git";
+      url = "https://github.com/urfave/cli";
+      rev = "v2.0.0";
+      sha256 = "0ybpg48s08sm46xsbb42yk14zrsm7pr9808khh6f9fca7s3c7fns";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "c2843e01d9a2";
+      sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
     };
   }
   {
@@ -32,8 +86,44 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/net";
-      rev = "61147c48b25b599e5b561d2e9c4f3e1ef489ca41";
-      sha256 = "1520pdlw9a9s41ad1cf1z6y2ff4j96zbn82qffrxqk02bqlr9f5w";
+      rev = "e7e4b65ae663";
+      sha256 = "0phil62b9cqvllhfjqqm1jpyk2dxg1dvd88pq2044nc3sxni7w8b";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "d0b11bdaac8a";
+      sha256 = "18yfsmw622l7gc5sqriv5qmck6903vvhivpzp8i3xfy3z33dybdl";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "v0.3.0";
+      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/check.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/check.v1";
+      rev = "20d25e280405";
+      sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/yaml.v2";
+      rev = "v2.2.2";
+      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
     };
   }
 ]
diff --git a/pkgs/tools/misc/dasht/default.nix b/pkgs/tools/misc/dasht/default.nix
index e1286820797..7c2ff354836 100644
--- a/pkgs/tools/misc/dasht/default.nix
+++ b/pkgs/tools/misc/dasht/default.nix
@@ -2,6 +2,7 @@
 , lib
 , fetchFromGitHub
 , makeWrapper
+, installShellFiles
 , coreutils
 , gnused
 , gnugrep
@@ -14,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "dasht";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner  = "sunaku";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0d0pcjalba58nvxdgn39m4b6n9ifajf3ygyjaqgvzwxzgpzw0a60";
+    sha256 = "08wssmifxi7pnvn9gqrvpzpkc2qpkfbzbhxh0dk1gff2y2211qqk";
   };
 
   deps = lib.makeBinPath [
@@ -35,7 +36,7 @@ stdenv.mkDerivation rec {
     (placeholder "out")
   ];
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
 
   installPhase = ''
     runHook preInstall
@@ -43,8 +44,8 @@ stdenv.mkDerivation rec {
     mkdir -p $out/bin
     cp bin/* $out/bin/
 
-    mkdir -p $out/share/man/man1
-    cp man/man1/* $out/share/man/man1/
+    installManPage man/man1/*
+    installShellCompletion --zsh etc/zsh/completions/*
 
     for i in $out/bin/*; do
       echo "Wrapping $i"
diff --git a/pkgs/tools/misc/ddcutil/default.nix b/pkgs/tools/misc/ddcutil/default.nix
index c2eed30a70d..0a2664d6a77 100644
--- a/pkgs/tools/misc/ddcutil/default.nix
+++ b/pkgs/tools/misc/ddcutil/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ddcutil";
-  version = "0.9.8";
+  version = "0.9.9";
 
   src = fetchFromGitHub {
     owner  = "rockowitz";
     repo   = "ddcutil";
     rev    = "v${version}";
-    sha256 = "1r89cfw3ycqwvpfwwiqg8ykc1vyr1gf3ah30mvrmmalgmi6bnx5w";
+    sha256 = "1ppiddnrvkbb9iir28kl9hzpww0hpgb05jfxzf07xsqkdfb4qv71";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/tools/misc/debianutils/default.nix b/pkgs/tools/misc/debianutils/default.nix
index f9643fbde79..930f1f59a8a 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.9.1";
+  version = "4.11";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/d/${pname}/${pname}_${version}.tar.xz";
-    sha256 = "14a0fqdpwdw72790jjm01g5n7lwwaf9d6k78fflbysn5v62nd0mg";
+    sha256 = "0lbizfnf3qwsiz2ggia6ff7sjjj8gwhys8bm6wixdc4n0qlycp5v";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index 39a137d3c0e..324b31a186b 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -1,25 +1,33 @@
-{ lib, stdenv, fetchurl, python3Packages, docutils, help2man
-, acl, apktool, binutils-unwrapped, bzip2, cbfstool, cdrkit, colord, colordiff, coreutils, cpio, db, diffutils, dtc
-, e2fsprogs, file, findutils, fontforge-fonttools, fpc, gettext, ghc, ghostscriptX, giflib, gnumeric, gnupg, gnutar
-, gzip, imagemagick, jdk, libarchive, libcaca, llvm, lz4, mono, openssh, pdftk, pgpdump, poppler_utils, sng, sqlite
-, squashfsTools, tcpdump, unoconv, unzip, xxd, xz
+{ lib, stdenv, fetchurl, runCommand, makeWrapper, python3Packages, docutils, help2man
+, abootimg, acl, apktool, binutils-unwrapped, build-tools, bzip2, cbfstool, cdrkit, colord, colordiff, coreutils, cpio, db, diffutils, dtc
+, e2fsprogs, file, findutils, fontforge-fonttools, ffmpeg, fpc, gettext, ghc, ghostscriptX, giflib, gnumeric, gnupg, gnutar
+, gzip, hdf5, imagemagick, jdk, libarchive, libcaca, llvm, lz4, mono, openssh, openssl, pdftk, pgpdump, poppler_utils, qemu, R
+, sng, sqlite, squashfsTools, tcpdump, odt2txt, unzip, wabt, xxd, xz, zip, zstd
 , enableBloat ? false
 }:
 
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
+let
+  apksigner = runCommand "apksigner" { nativeBuildInputs = [ makeWrapper ]; } ''
+    mkdir -p $out/bin
+    makeWrapper "${jdk}/bin/java" "$out/bin/apksigner" \
+      --add-flags "-jar ${builtins.head build-tools}/libexec/android-sdk/build-tools/28.0.3/lib/apksigner.jar"
+  '';
+in
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "143";
+  version = "156";
 
   src = fetchurl {
     url    = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "09vvhzsxxgjvdnd48hdfz50i2svacdnwc2idirj4b27czi7c3czb";
+    sha256 = "1irmsa0g0hggxijqyy7mghc8zy82cr6zn8qil253pm426j7gf7vm";
   };
 
   outputs = [ "out" "man" ];
 
   patches = [
     ./ignore_links.patch
+    ./skip-failing-test.patch
   ];
 
   postPatch = ''
@@ -35,23 +43,24 @@ python3Packages.buildPythonApplication rec {
   # Most of the non-Python dependencies here are optional command-line tools for various file-format parsers.
   # To help figuring out what's missing from the list, run: ./pkgs/tools/misc/diffoscope/list-missing-tools.sh
   #
-  # Still missing these tools: abootimg docx2txt dumpxsb enjarify js-beautify lipo oggDump otool procyon-decompiler Rscript wasm2wat zipnode
-  # Also these libraries: python3-guestfs
+  # Still missing these tools: docx2txt dumppdf dumpxsb enjarify lipo ocamlobjinfo oggDump otool procyon
   pythonPath = [
       binutils-unwrapped bzip2 colordiff coreutils cpio db diffutils
       dtc e2fsprogs file findutils fontforge-fonttools gettext gnutar gzip
-      libarchive libcaca lz4 pgpdump sng sqlite squashfsTools unzip xxd xz
+      libarchive libcaca lz4 openssl pgpdump sng sqlite squashfsTools unzip xxd
+      xz zip zstd
     ]
-    ++ (with python3Packages; [ debian libarchive-c python_magic tlsh rpm progressbar33 ])
+    ++ (with python3Packages; [
+      argcomplete debian defusedxml jsondiff jsbeautifier libarchive-c
+      python_magic progressbar33 pypdf2 rpm tlsh
+    ])
     ++ lib.optionals stdenv.isLinux [ python3Packages.pyxattr acl cdrkit ]
-    ++ lib.optionals enableBloat [
-      apktool cbfstool colord fpc ghc ghostscriptX giflib gnupg gnumeric imagemagick
-      llvm jdk mono openssh pdftk poppler_utils tcpdump unoconv
-      python3Packages.guestfs
-    ];
+    ++ lib.optionals enableBloat ([
+      abootimg apksigner apktool cbfstool colord ffmpeg fpc ghc ghostscriptX giflib gnupg gnumeric
+      hdf5 imagemagick llvm jdk mono odt2txt openssh pdftk poppler_utils qemu R tcpdump wabt
+    ] ++ (with python3Packages; [ binwalk guestfs h5py ]));
 
-  doCheck = false; # Calls 'mknod' in squashfs tests, which needs root
-  checkInputs = with python3Packages; [ pytest ];
+  checkInputs = with python3Packages; [ pytest ] ++ pythonPath;
 
   postInstall = ''
     make -C doc
@@ -73,7 +82,7 @@ python3Packages.buildPythonApplication rec {
     '';
     homepage    = "https://diffoscope.org/";
     license     = licenses.gpl3Plus;
-    maintainers = with maintainers; [ dezgeg ma27 ];
+    maintainers = with maintainers; [ dezgeg ma27 danielfullmer ];
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/diffoscope/ignore_links.patch b/pkgs/tools/misc/diffoscope/ignore_links.patch
index b0841ce0bb5..b88d6e0231e 100644
--- a/pkgs/tools/misc/diffoscope/ignore_links.patch
+++ b/pkgs/tools/misc/diffoscope/ignore_links.patch
@@ -1,32 +1,20 @@
-From a33e8018092e4a91dbc45e15bbeff760b3418512 Mon Sep 17 00:00:00 2001
-From: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
-Date: Wed, 13 Sep 2017 16:53:38 +0300
-Subject: [PATCH] Ignore hard link counts
-
----
- diffoscope/comparators/directory.py | 2 ++
- 1 file changed, 2 insertions(+)
-
 diff --git a/diffoscope/comparators/directory.py b/diffoscope/comparators/directory.py
-index 3b195bc..9071bb3 100644
+index 5f34d62..36999a3 100644
 --- a/diffoscope/comparators/directory.py
 +++ b/diffoscope/comparators/directory.py
-@@ -66,6 +66,7 @@ else:
-         FILE_RE = re.compile(r'^\s*File:.*$')
-         DEVICE_RE = re.compile(r'Device: [0-9a-f]+h/[0-9]+d\s+')
-         INODE_RE = re.compile(r'Inode: [0-9]+\s+')
+@@ -77,6 +77,7 @@ else:
+         FILE_RE = re.compile(r"^\s*File:.*$")
+         DEVICE_RE = re.compile(r"Device: [0-9a-f]+h/[0-9]+d\s+")
+         INODE_RE = re.compile(r"Inode: [0-9]+\s+")
 +        LINKS_RE = re.compile(r'Links: [0-9]+\s+')
-         ACCESS_TIME_RE = re.compile(r'^Access: [0-9]{4}-[0-9]{2}-[0-9]{2}.*$')
-         CHANGE_TIME_RE = re.compile(r'^Change: [0-9]{4}-[0-9]{2}-[0-9]{2}.*$')
- 
-@@ -74,6 +75,7 @@ else:
-             line = Stat.FILE_RE.sub('', line)
-             line = Stat.DEVICE_RE.sub('', line)
-             line = Stat.INODE_RE.sub('', line)
-+            line = Stat.LINKS_RE.sub('', line)
-             line = Stat.ACCESS_TIME_RE.sub('', line)
-             line = Stat.CHANGE_TIME_RE.sub('', line)
-             return line.encode('utf-8')
--- 
-2.13.0
-
+         ACCESS_TIME_RE = re.compile(r"^Access: [0-9]{4}-[0-9]{2}-[0-9]{2}.*$")
+         CHANGE_TIME_RE = re.compile(r"^Change: [0-9]{4}-[0-9]{2}-[0-9]{2}.*$")
+         BIRTH_TIME_RE = re.compile(r"^\s*Birth:.*$")
+@@ -86,6 +87,7 @@ else:
+             line = Stat.FILE_RE.sub("", line)
+             line = Stat.DEVICE_RE.sub("", line)
+             line = Stat.INODE_RE.sub("", line)
++            line = Stat.LINKS_RE.sub("", line)
+             line = Stat.ACCESS_TIME_RE.sub("", line)
+             line = Stat.CHANGE_TIME_RE.sub("", line)
+             line = Stat.BIRTH_TIME_RE.sub("", line)
diff --git a/pkgs/tools/misc/diffoscope/skip-failing-test.patch b/pkgs/tools/misc/diffoscope/skip-failing-test.patch
new file mode 100644
index 00000000000..bf871d295bd
--- /dev/null
+++ b/pkgs/tools/misc/diffoscope/skip-failing-test.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/test_tools.py b/tests/test_tools.py
+index f0010678..1c3c7ce1 100644
+--- a/tests/test_tools.py
++++ b/tests/test_tools.py
+@@ -21,6 +21,7 @@ import os
+ import pytest
+ 
+ 
++@pytest.mark.skip()
+ def test_sbin_added_to_path():
+     from diffoscope.tools import tool_required
+ 
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 e261b95fde5..1096cce496e 100644
--- a/pkgs/tools/misc/direnv/default.nix
+++ b/pkgs/tools/misc/direnv/default.nix
@@ -1,9 +1,10 @@
-{ stdenv, fetchFromGitHub, buildGoPackage, bash }:
+{ stdenv, fetchFromGitHub, buildGoModule, bash, fish, zsh }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "direnv";
   version = "2.21.3";
-  goPackagePath = "github.com/direnv/direnv";
+
+  vendorSha256 = null;
 
   src = fetchFromGitHub {
     owner = "direnv";
@@ -12,22 +13,29 @@ buildGoPackage rec {
     sha256 = "1adi6ld9g4zgz0f6q0kkzrywclqrmikyp7yh22zm9lfdvd5hs8wp";
   };
 
-  postConfigure = ''
-    cd $NIX_BUILD_TOP/go/src/$goPackagePath
-  '';
-
   # we have no bash at the moment for windows
-  makeFlags = stdenv.lib.optional (!stdenv.hostPlatform.isWindows) [
-    "BASH_PATH=${bash}/bin/bash"
-  ];
+  BASH_PATH =
+    stdenv.lib.optionalString (!stdenv.hostPlatform.isWindows)
+    "${bash}/bin/bash";
+
+  # replace the build phase to use the GNUMakefile instead
+  buildPhase = ''
+    make BASH_PATH=$BASH_PATH
+  '';
 
   installPhase = ''
-    mkdir -p $out
     make install DESTDIR=$out
     mkdir -p $out/share/fish/vendor_conf.d
     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
new file mode 100644
index 00000000000..1eb3dd7a0f7
--- /dev/null
+++ b/pkgs/tools/misc/diskonaut/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "diskonaut";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "imsnif";
+    repo = "diskonaut";
+    rev = version;
+    sha256 = "125ba9qwh7j8bz74w2zbw729s1wfnjg6dg8yicqrp6559x9k7gq5";
+  };
+
+  cargoSha256 = "0vvbrlmviyn9w8i416767vhvd1gqm3qjvia730m0rs0w5h8khiqf";
+
+  meta = with stdenv.lib; {
+    description = "Terminal disk space navigator";
+    homepage = "https://github.com/imsnif/diskonaut";
+    license = licenses.mit;
+    maintainers = with maintainers; [ evanjs ];
+  };
+}
diff --git a/pkgs/tools/misc/docui/default.nix b/pkgs/tools/misc/docui/default.nix
index 0329c1bc4a6..73aa8984a49 100644
--- a/pkgs/tools/misc/docui/default.nix
+++ b/pkgs/tools/misc/docui/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "0jya0wdp8scjmsr44krdbbb8q4gplf44gsng1nyn12a6ldqzayxl";
   };
 
-  modSha256 = "1wyx05kk4f41mgvwnvfc9xk7vd3x96cbn5xb5ph7p443f70ydnak";
+  vendorSha256 = "1ggdczvv03lj0g6cq26vrk1rba6pk0805n85w9hkbjx9c4r3j577";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "TUI Client for Docker";
diff --git a/pkgs/tools/misc/dua/default.nix b/pkgs/tools/misc/dua/default.nix
index cb000b29472..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.6.0";
+  version = "2.10.2";
 
   src = fetchFromGitHub {
     owner = "Byron";
     repo = "dua-cli";
     rev = "v${version}";
-    sha256 = "1697z9j0xd4il01bcvz1xwzkcg5mbkpp207mshb9csdhwi9a50wg";
+    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 = "1rczq41jpds7kfyf31nxj4v8rk9rccijjixpznhlriam6xhgm90b";
+  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..75e8d5d4887 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.2";
 
   src = fetchFromGitHub {
     owner = "bootandy";
     repo = "dust";
     rev = "v${version}";
-    sha256 = "1l5fh7yl8mbgahvzfa251cyp8j5awqdl66jblz565b1wb536kig7";
+    sha256 = "181xlm0zj9pb73ijwf202kwwm2jji0m11ynsbaxl44alva3xpvmk";
     # 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 = "1ypphm9n6wri5f03fj65i5p6lb11qj5zp8ddvybanaypv5llkfcb";
 
   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/entr/default.nix b/pkgs/tools/misc/entr/default.nix
index be8134a92a3..9bd9c2104f3 100644
--- a/pkgs/tools/misc/entr/default.nix
+++ b/pkgs/tools/misc/entr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "entr";
-  version = "4.5";
+  version = "4.6";
 
   src = fetchurl {
     url = "http://entrproject.org/code/${pname}-${version}.tar.gz";
-    sha256 = "08gsd99w20fdi0apppmzsh06z29ga8y89nfcizidil2hkl8b7jyn";
+    sha256 = "0vcflgagna2gdlpjsd6748c73j2829xlhm276mi838zl1n121phn";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/envsubst/default.nix b/pkgs/tools/misc/envsubst/default.nix
index af0fa6a76ba..be563345b2c 100644
--- a/pkgs/tools/misc/envsubst/default.nix
+++ b/pkgs/tools/misc/envsubst/default.nix
@@ -2,21 +2,20 @@
 
 buildGoPackage rec {
   pname = "envsubst";
-  version = "1.1.0";
+  version = "1.2.0";
 
   goPackagePath = "github.com/a8m/envsubst";
   src = fetchFromGitHub {
     owner = "a8m";
     repo = "envsubst";
     rev = "v${version}";
-    sha256 = "1d6nipagjn40n6iw1p3r489l2km5xjd5db9gbh1vc5sxc617l7yk";
+    sha256 = "0zkgjdlw3d5xh7g45bzxqspxr61ljdli8ng4a1k1gk0dls4sva8n";
   };
 
   meta = with lib; {
     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/servers/home-assistant/esphome.nix b/pkgs/tools/misc/esphome/default.nix
index 2dc023df5a2..1160f4158b6 100644
--- a/pkgs/servers/home-assistant/esphome.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.3";
+  version = "1.14.5";
 
   src = python.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "0xnsl000c5a2li9qw9anrzzq437qn1n4hcfc24i4rfq37awzmig7";
+    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/exa/default.nix b/pkgs/tools/misc/exa/default.nix
index fd6baadb685..13c8b3f1d4f 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 ];
+    maintainers = with maintainers; [ ehegnes lilyball globin zowoq ];
   };
 }
diff --git a/pkgs/tools/misc/execline/default.nix b/pkgs/tools/misc/execline/default.nix
index d3a6990a1f8..ecedd2b0b41 100644
--- a/pkgs/tools/misc/execline/default.nix
+++ b/pkgs/tools/misc/execline/default.nix
@@ -7,8 +7,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "execline";
-  version = "2.6.0.0";
-  sha256 = "1m6pvawxqaqjr49456vyjyl8dnqwvr19v77sjj7dnglfijwza5al";
+  version = "2.6.1.0";
+  sha256 = "0mj565xml3hvw27finydms0s9abbbpgbr29vnr8gwi7zjzq7ck52";
 
   description = "A small scripting language, to be used in place of a shell in non-interactive scripts";
 
diff --git a/pkgs/tools/misc/fd/default.nix b/pkgs/tools/misc/fd/default.nix
index ab94a8aa6b5..89a05815f51 100644
--- a/pkgs/tools/misc/fd/default.nix
+++ b/pkgs/tools/misc/fd/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fd";
-  version = "8.0.0";
+  version = "8.1.1";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = "fd";
     rev = "v${version}";
-    sha256 = "0l18xavkj99cydp1dqrph00yq2px339zs6jcim59iq3zln1yn0n7";
+    sha256 = "0qzqnsjkq8i4gzn9273algx33kr1hzgxid8lnqp4awy2zxm4ksiq";
   };
 
-  cargoSha256 = "1sdwbnncs1d45x1iqk3jv3r69fpkzrsxm4kjn89jmvd5nk8blvs2";
+  cargoSha256 = "1d7hfgl9l4b9bnq2qcpvdq5rh7lpz33r19hw3wwgnqh142q67m7r";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -32,7 +32,6 @@ rustPlatform.buildRustPackage rec {
     '';
     homepage = "https://github.com/sharkdp/fd";
     license = with licenses; [ asl20 /* or */ mit ];
-    maintainers = with maintainers; [ dywedir globin ma27 ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ dywedir globin ma27 zowoq ];
   };
 }
diff --git a/pkgs/tools/misc/fdtools/default.nix b/pkgs/tools/misc/fdtools/default.nix
new file mode 100644
index 00000000000..6e0cb66749f
--- /dev/null
+++ b/pkgs/tools/misc/fdtools/default.nix
@@ -0,0 +1,78 @@
+{ stdenv, lib, fetchurl, skawarePackages }:
+
+let
+  pname = "fdtools";
+  version = "2020.05.04";
+  sha256 = "0lnafcp4yipi0dl8gh33zjs8wlpz0mim8mwmiz9s49id0b0fmlla";
+
+in stdenv.mkDerivation {
+  inherit pname version;
+
+  src = fetchurl {
+    url = "https://code.dogmap.org/${pname}/releases/${pname}-${version}.tar.bz2";
+    inherit sha256;
+  };
+
+  outputs = [ "bin" "lib" "dev" "doc" "out" ];
+
+  buildInputs = [ skawarePackages.skalibs ];
+
+  configurePhase = ''
+    cd ${pname}-${version}
+    sed -e 's|gcc|$CC|' \
+      conf-compile/defaults/host_link.sh \
+      > conf-compile/host_link.sh
+
+    echo "${skawarePackages.skalibs.lib}/lib/skalibs/sysdeps" \
+      > conf-compile/depend_skalibs_sysdeps
+  '';
+
+  buildPhase = ''
+    bash package/build
+  '';
+
+  installPhase = ''
+    mkdir -p $bin/bin
+    tools=( grabconsole multitee pipecycle recvfd seek0 sendfd setblock setstate statfile vc-get vc-lock vc-switch )
+
+    for t in "''${tools[@]}"; do
+      mv "command/$t" "$bin/bin/$t"
+    done
+
+    mkdir -p $lib/lib
+    mkdir -p $dev/include
+    docdir=$doc/share/doc/${pname}
+    mkdir -p $docdir
+
+    mv library/fdtools.a $lib/lib/fdtools.a
+    mv include/fdtools.h $dev/include/fdtools.h
+
+    ${skawarePackages.cleanPackaging.commonFileActions {
+       noiseFiles = [
+         "conf-compile/**/*"
+         "src/**/*"
+         "src/.**/*"
+         "compile/**/*"
+         "package/{build,check,compile,elsewhere,install,install_commands,own,run,sharing,upgrade,upgrade_version,url_src,url_src_latest,versions}"
+       ];
+       docFiles = [
+         "package/INSTALL"
+         "package/LICENSE"
+         "package/README"
+       ];
+    }} $docdir
+
+    ${skawarePackages.cleanPackaging.checkForRemainingFiles}
+
+    # we don’t use this, but nixpkgs requires it
+    touch $out
+  '';
+
+  meta = {
+    homepage = "https://code.dogmap.org./fdtools/";
+    description = "A set of utilities for working with file descriptors";
+    license = lib.licenses.gpl2;
+    platforms = lib.platforms.all;
+    maintainers = [ lib.maintainers.Profpatsch ];
+  };
+}
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 fc4c44e01cd..8b9f79aaa7f 100644
--- a/pkgs/tools/misc/ffsend/default.nix
+++ b/pkgs/tools/misc/ffsend/default.nix
@@ -16,21 +16,21 @@ with rustPlatform;
 
 buildRustPackage rec {
   pname = "ffsend";
-  version = "0.2.61";
+  version = "0.2.65";
 
   src = fetchFromGitLab {
     owner = "timvisee";
     repo = "ffsend";
     rev = "v${version}";
-    sha256 = "1d0rx5gcp9z06kxjknqa1r2b4m5c4vrhp4a9spkawvgiky5a9x07";
+    sha256 = "02yw129rw072jlf36k60jbhfdv9ayx2wb5il61fc0v07h1nd7i0d";
   };
 
-  cargoSha256 = "1bmyhg1y4gz719nsfdfjf4y73f9l6aag17dx9iazfzwnwwaq46m9";
+  cargoSha256 = "04waki61b5pjlgznbhbrjpi9rxgdwg9mjbx2apfh9swvfip602r6";
 
   nativeBuildInputs = [ cmake pkgconfig installShellFiles ];
-  buildInputs = [ openssl ]
-  ++ stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ CoreFoundation CoreServices Security AppKit ])
-  ;
+  buildInputs =
+    if stdenv.isDarwin then (with darwin.apple_sdk.frameworks; [ CoreFoundation CoreServices Security AppKit ])
+    else [ openssl ];
 
   preBuild = stdenv.lib.optionalString (x11Support && usesX11) (
     if preferXsel && xsel != null then ''
diff --git a/pkgs/tools/misc/figlet/default.nix b/pkgs/tools/misc/figlet/default.nix
index 7f7fc6f4e08..90fb0981fbd 100644
--- a/pkgs/tools/misc/figlet/default.nix
+++ b/pkgs/tools/misc/figlet/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
 
   patches = [
     (fetchpatch {
-      url = "https://git.alpinelinux.org/cgit/aports/plain/main/figlet/musl-fix-cplusplus-decls.patch?h=3.4-stable&id=71776c73a6f04b6f671430f702bcd40b29d48399";
+      url = "https://git.alpinelinux.org/aports/plain/main/figlet/musl-fix-cplusplus-decls.patch?h=3.4-stable&id=71776c73a6f04b6f671430f702bcd40b29d48399";
       name = "musl-fix-cplusplus-decls.patch";
       sha256 = "1720zgrfk9makznqkbjrnlxm7nnhk6zx7g458fv53337n3g3zn7j";
     })
diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix
index 71e547d8433..8e284b25c08 100644
--- a/pkgs/tools/misc/file/default.nix
+++ b/pkgs/tools/misc/file/default.nix
@@ -2,16 +2,22 @@
 
 stdenv.mkDerivation rec {
   pname = "file";
-  version = "5.38";
+  version = "5.39";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.astron.com/pub/file/${pname}-${version}.tar.gz"
       "https://distfiles.macports.org/file/${pname}-${version}.tar.gz"
     ];
-    sha256 = "0d7s376b4xqymnrsjxi3nsv3f5v89pzfspzml2pcajdk5by2yg2r";
+    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 1b69b80be70..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";
@@ -11,6 +16,10 @@ stdenv.mkDerivation rec {
     sha256 = "16kqz9yz98dasmj70jwf5py7jk558w96w0vgp3zf9xsqk3gzpzn5";
   };
 
+  postPatch = ''
+    substituteInPlace xargs/xargs.c --replace 'char default_cmd[] = "echo";' 'char default_cmd[] = "${coreutils}/bin/echo";'
+  '';
+
   patches = [
     ./no-install-statedir.patch
   ];
diff --git a/pkgs/tools/misc/fluent-bit/default.nix b/pkgs/tools/misc/fluent-bit/default.nix
index 38f2145df44..28c005b7abb 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.3";
+  version = "1.5.3";
 
   src = fetchFromGitHub {
     owner = "fluent";
     repo = "fluent-bit";
     rev = "v${version}";
-    sha256 = "1x5izsm0b3514i2vl1b3x40chjlzidr5zssn5cpgrw9a8w4jpv6h";
+    sha256 = "153c7hafmzwxa24h923irfhzaqqd8wbr2aaab6l3hjhgx5q8s5bf";
   };
 
   nativeBuildInputs = [ cmake flex bison ];
diff --git a/pkgs/tools/misc/fluentd/Gemfile b/pkgs/tools/misc/fluentd/Gemfile
index 952c419ad31..8cbed0ebac4 100644
--- a/pkgs/tools/misc/fluentd/Gemfile
+++ b/pkgs/tools/misc/fluentd/Gemfile
@@ -10,3 +10,4 @@ gem 'fluent-plugin-scribe'
 gem 'fluent-plugin-mongo'
 gem 'fluent-plugin-webhdfs'
 gem 'fluent-plugin-rewrite-tag-filter'
+gem 'fluent-plugin-cloudwatch-logs'
diff --git a/pkgs/tools/misc/fluentd/Gemfile.lock b/pkgs/tools/misc/fluentd/Gemfile.lock
index c3e3cb24e83..1b1f6cec622 100644
--- a/pkgs/tools/misc/fluentd/Gemfile.lock
+++ b/pkgs/tools/misc/fluentd/Gemfile.lock
@@ -1,11 +1,14 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    addressable (2.6.0)
-      public_suffix (>= 2.0.2, < 4.0)
+    addressable (2.7.0)
+      public_suffix (>= 2.0.2, < 5.0)
     aws-eventstream (1.0.3)
-    aws-partitions (1.193.0)
-    aws-sdk-core (3.61.1)
+    aws-partitions (1.207.0)
+    aws-sdk-cloudwatchlogs (1.25.0)
+      aws-sdk-core (~> 3, >= 3.61.1)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-core (3.65.1)
       aws-eventstream (~> 1.0, >= 1.0.2)
       aws-partitions (~> 1.0)
       aws-sigv4 (~> 1.1)
@@ -19,37 +22,41 @@ GEM
     aws-sdk-kms (1.24.0)
       aws-sdk-core (~> 3, >= 3.61.1)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.46.0)
+    aws-sdk-s3 (1.48.0)
       aws-sdk-core (~> 3, >= 3.61.1)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.1)
-    aws-sdk-sqs (1.20.0)
+    aws-sdk-sqs (1.22.0)
       aws-sdk-core (~> 3, >= 3.61.1)
       aws-sigv4 (~> 1.1)
     aws-sigv4 (1.1.0)
       aws-eventstream (~> 1.0, >= 1.0.2)
     bson (4.5.0)
+    concurrent-ruby (1.1.5)
     cool.io (1.5.4)
     dig_rb (1.0.1)
     digest-crc (0.4.1)
-    elasticsearch (7.2.1)
-      elasticsearch-api (= 7.2.1)
-      elasticsearch-transport (= 7.2.1)
-    elasticsearch-api (7.2.1)
+    elasticsearch (7.3.0)
+      elasticsearch-api (= 7.3.0)
+      elasticsearch-transport (= 7.3.0)
+    elasticsearch-api (7.3.0)
       multi_json
-    elasticsearch-transport (7.2.1)
+    elasticsearch-transport (7.3.0)
       faraday
       multi_json
-    excon (0.65.0)
+    excon (0.66.0)
     faraday (0.15.4)
       multipart-post (>= 1.2, < 3)
     fluent-config-regexp-type (1.0.0)
       fluentd (> 1.0.0, < 2)
-    fluent-plugin-elasticsearch (3.5.3)
+    fluent-plugin-cloudwatch-logs (0.7.4)
+      aws-sdk-cloudwatchlogs (~> 1.0)
+      fluentd (>= 0.14.15)
+    fluent-plugin-elasticsearch (3.5.5)
       elasticsearch
       excon
       fluentd (>= 0.14.22)
-    fluent-plugin-kafka (0.11.0)
+    fluent-plugin-kafka (0.11.1)
       fluentd (>= 0.10.58, < 2)
       ltsv
       ruby-kafka (>= 0.7.8, < 0.8.0)
@@ -76,7 +83,7 @@ GEM
     fluent-plugin-webhdfs (1.2.4)
       fluentd (>= 0.14.22)
       webhdfs (>= 0.6.0)
-    fluentd (1.6.2)
+    fluentd (1.7.0)
       cool.io (>= 1.4.5, < 2.0.0)
       dig_rb (~> 1.0.0)
       http_parser.rb (>= 0.5.1, < 0.7.0)
@@ -84,29 +91,28 @@ GEM
       serverengine (>= 2.0.4, < 3.0.0)
       sigdump (~> 0.2.2)
       strptime (>= 0.2.2, < 1.0.0)
-      tzinfo (~> 1.0)
+      tzinfo (~> 2.0)
       tzinfo-data (~> 1.0)
       yajl-ruby (~> 1.0)
-    google-protobuf (3.9.0)
+    google-protobuf (3.9.1)
     http_parser.rb (0.6.0)
     jmespath (1.4.0)
     ltsv (0.1.2)
     mongo (2.6.4)
       bson (>= 4.3.0, < 5.0.0)
-    msgpack (1.3.0)
+    msgpack (1.3.1)
     multi_json (1.13.1)
     multipart-post (2.1.1)
-    public_suffix (3.1.1)
-    ruby-kafka (0.7.9)
+    public_suffix (4.0.1)
+    ruby-kafka (0.7.10)
       digest-crc
     serverengine (2.1.1)
       sigdump (~> 0.2.2)
     sigdump (0.2.4)
     strptime (0.2.3)
-    thread_safe (0.3.6)
     thrift (0.8.0)
-    tzinfo (1.2.5)
-      thread_safe (~> 0.1)
+    tzinfo (2.0.0)
+      concurrent-ruby (~> 1.0)
     tzinfo-data (1.2019.2)
       tzinfo (>= 1.0.0)
     webhdfs (0.8.0)
@@ -117,6 +123,7 @@ PLATFORMS
   ruby
 
 DEPENDENCIES
+  fluent-plugin-cloudwatch-logs
   fluent-plugin-elasticsearch
   fluent-plugin-kafka
   fluent-plugin-kinesis
diff --git a/pkgs/tools/misc/fluentd/gemset.nix b/pkgs/tools/misc/fluentd/gemset.nix
index 9c8343eb44a..a4b488597c7 100644
--- a/pkgs/tools/misc/fluentd/gemset.nix
+++ b/pkgs/tools/misc/fluentd/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l";
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
       type = "gem";
     };
-    version = "2.6.0";
+    version = "2.7.0";
   };
   aws-eventstream = {
     groups = ["default"];
@@ -25,10 +25,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12fbibkq9gp8b9az3s87zi6dcalx92aam98jmbzacw9cvafzm7af";
+      sha256 = "1dr16ryn9514qfdf9zrv06f7gb7gih960b82arkv868nfj4470jx";
       type = "gem";
     };
-    version = "1.193.0";
+    version = "1.207.0";
+  };
+  aws-sdk-cloudwatchlogs = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10vracvnmihazs34nlmar813qdigk34afij66182hjcciby0as6x";
+      type = "gem";
+    };
+    version = "1.25.0";
   };
   aws-sdk-core = {
     dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
@@ -36,10 +47,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wir5q6qpj3lxxmzynmybsfabzgbfkk1cjyy7dkfsy5fmxcgm6qq";
+      sha256 = "0vb49n1ydz1m2l0qhc7gp0rvc7fa7qxczf582kyv7nsfn2k2z9s4";
       type = "gem";
     };
-    version = "3.61.1";
+    version = "3.65.1";
   };
   aws-sdk-firehose = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -80,10 +91,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1871mqf6b92rcmcgc6061xx9h35dlfvj7r27q2khidb5dzp7yd33";
+      sha256 = "14iv2wqvvbiz0gdms21i9n6rh8390r1yg4zcf8pzzfplbqfwqw4w";
       type = "gem";
     };
-    version = "1.46.0";
+    version = "1.48.0";
   };
   aws-sdk-sqs = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -91,10 +102,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0946yrabarr5hvzxkfh6f8mvm19ivpybhd64xnsk3hlk71xc9bip";
+      sha256 = "0pszp0bcgiqn4iskb6xv5j2n540h1k9glz2w85vq5iml1casq769";
       type = "gem";
     };
-    version = "1.20.0";
+    version = "1.22.0";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -117,6 +128,16 @@
     };
     version = "4.5.0";
   };
+  concurrent-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
+      type = "gem";
+    };
+    version = "1.1.5";
+  };
   "cool.io" = {
     groups = ["default"];
     platforms = [];
@@ -153,10 +174,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1800algjigydip0855xcfdlyl1cfbl630sl68a0y39xvpvd2fq68";
+      sha256 = "0r4gpskjgg8blk7ws9g1p3d5n8bjrggyzxg2v3q40036rjp3fp1h";
       type = "gem";
     };
-    version = "7.2.1";
+    version = "7.3.0";
   };
   elasticsearch-api = {
     dependencies = ["multi_json"];
@@ -164,10 +185,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18rd6xxvdjr8h7n6ziwjkrdzxwsx0rf9vd1krz7kgi61q5897jmz";
+      sha256 = "1jyd03ylyvv975iail13cwlkg4h9yknhpm1kcq1dpvmbjqy7q6bz";
       type = "gem";
     };
-    version = "7.2.1";
+    version = "7.3.0";
   };
   elasticsearch-transport = {
     dependencies = ["faraday" "multi_json"];
@@ -175,20 +196,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k0324sbwz292l0nj50k318k2qlznzpimj5mpg7557rkk0b7plrz";
+      sha256 = "0dqm819iqkhbny5lwkf8mh83fmffpwbscal9vmfdw4g9mf08yfnf";
       type = "gem";
     };
-    version = "7.2.1";
+    version = "7.3.0";
   };
   excon = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mc6y6n7i0hhk7i8wwi4qjnpkm013p7z3xr994s696hk74f91a7j";
+      sha256 = "05qmrx7l8abpbvp0z01fdpc731c4k6akk67l424vdp5dywhachpr";
       type = "gem";
     };
-    version = "0.65.0";
+    version = "0.66.0";
   };
   faraday = {
     dependencies = ["multipart-post"];
@@ -212,16 +233,27 @@
     };
     version = "1.0.0";
   };
+  fluent-plugin-cloudwatch-logs = {
+    dependencies = ["aws-sdk-cloudwatchlogs" "fluentd"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "046nx56zgb3l29r5v1s79zhhxsb18fwz2d8v6n6cgbv8i13xhl0l";
+      type = "gem";
+    };
+    version = "0.7.4";
+  };
   fluent-plugin-elasticsearch = {
     dependencies = ["elasticsearch" "excon" "fluentd"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18j0q9x006gps03sh93v8nc83b9w45a6ynic8kd9x6zr2g58ynh7";
+      sha256 = "19nrhgx8mh59lpcv2jf3gb031x4zan93j9fswzjzvyjh4rlfpbmn";
       type = "gem";
     };
-    version = "3.5.3";
+    version = "3.5.5";
   };
   fluent-plugin-kafka = {
     dependencies = ["fluentd" "ltsv" "ruby-kafka"];
@@ -229,10 +261,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p7xsm6v84z61hkhvg9fmrxahaid7fqdarnpvpp5qj8qnzximkyd";
+      sha256 = "1km7gjcx2icwj2s2svbmrhwb1gmpk85zfa8pivm04wzc8f6vjhy2";
       type = "gem";
     };
-    version = "0.11.0";
+    version = "0.11.1";
   };
   fluent-plugin-kinesis = {
     dependencies = ["aws-sdk-firehose" "aws-sdk-kinesis" "fluentd" "google-protobuf"];
@@ -317,20 +349,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1h6zvb4qhhyl8hm19015ha5rbdvg9wpv3ipbyr1ab491igqln1j6";
+      sha256 = "1pyjd31z95l819n9sbl6bl5bvjmyi39is0p2i0im3v0r9ydgyf27";
       type = "gem";
     };
-    version = "1.6.2";
+    version = "1.7.0";
   };
   google-protobuf = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0b7r1y30cgm03cj0l8pr6npz4w9i1lh70ycd2w15zf2qcbi9gpng";
+      sha256 = "0pb7v00zya00jddl7cpraz27xi3jsdjn31mm672byqwzdyghpfka";
       type = "gem";
     };
-    version = "3.9.0";
+    version = "3.9.1";
   };
   "http_parser.rb" = {
     groups = ["default"];
@@ -378,10 +410,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1186lhwnxiw5ryv6dbxrsfy0fajfll2l95kf9pmca50iyiqi86zn";
+      sha256 = "1qr2mkm2i3m76zarvy7qgjl9596hmvjrg7x6w42vx8cfsbf5p0y1";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.3.1";
   };
   multi_json = {
     groups = ["default"];
@@ -408,10 +440,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g9ds2ffzljl6jjmkjffwxc1z6lh5nkqqmhhkxjk71q5ggv0rkpm";
+      sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0";
       type = "gem";
     };
-    version = "3.1.1";
+    version = "4.0.1";
   };
   ruby-kafka = {
     dependencies = ["digest-crc"];
@@ -419,10 +451,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10q92n67s4x80q87ibirvsaryvq4lqyna6xabl5vgnr59xrap6ym";
+      sha256 = "0m50s1xabvgq36k9jx2qj8bd8ivvkxa6fs2czi22jxhzqsl3xlvc";
       type = "gem";
     };
-    version = "0.7.9";
+    version = "0.7.10";
   };
   serverengine = {
     dependencies = ["sigdump"];
@@ -455,16 +487,6 @@
     };
     version = "0.2.3";
   };
-  thread_safe = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
-      type = "gem";
-    };
-    version = "0.3.6";
-  };
   thrift = {
     groups = ["default"];
     platforms = [];
@@ -476,15 +498,15 @@
     version = "0.8.0";
   };
   tzinfo = {
-    dependencies = ["thread_safe"];
+    dependencies = ["concurrent-ruby"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
+      sha256 = "0jp9f5120az6q84w5w19nnn6g6yl2whc1cbcnnv4xryw9q8vqbkb";
       type = "gem";
     };
-    version = "1.2.5";
+    version = "2.0.0";
   };
   tzinfo-data = {
     dependencies = ["tzinfo"];
diff --git a/pkgs/tools/misc/fontforge/default.nix b/pkgs/tools/misc/fontforge/default.nix
index 67ab7b2d691..8da5c871652 100644
--- a/pkgs/tools/misc/fontforge/default.nix
+++ b/pkgs/tools/misc/fontforge/default.nix
@@ -1,23 +1,39 @@
 { stdenv, fetchurl, lib
-, autoconf, automake, gnum4, libtool, perl, uthash, pkgconfig, gettext
+, fetchpatch
+, cmake, perl, uthash, pkgconfig, gettext
 , python, freetype, zlib, glib, libungif, libpng, libjpeg, libtiff, libxml2, cairo, pango
 , readline, woff2, zeromq, libuninameslist
 , withSpiro ? false, libspiro
-, withGTK ? false, gtk2
+, withGTK ? false, gtk3
+, withGUI ? withGTK
 , withPython ? true
 , withExtras ? true
 , Carbon ? null, Cocoa ? null
 }:
 
+assert withGTK -> withGUI;
+
 stdenv.mkDerivation rec {
   pname = "fontforge";
-  version = "20190801";
+  version = "20200314";
 
   src = fetchurl {
-    url = "https://github.com/${pname}/${pname}/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0lh8yx01asbzxm6car5cfi64njh5p4lxc7iv8dldr5rwg357a86r";
+    url = "https://github.com/${pname}/${pname}/releases/download/${version}/${pname}-${version}.tar.xz";
+    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' {} \;
@@ -30,41 +46,33 @@ stdenv.mkDerivation rec {
   # do not use x87's 80-bit arithmetic, rouding errors result in very different font binaries
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isi686 "-msse2 -mfpmath=sse";
 
-  nativeBuildInputs = [ pkgconfig autoconf automake gnum4 libtool perl gettext ];
+  nativeBuildInputs = [ pkgconfig cmake ];
   buildInputs = [
     readline uthash woff2 zeromq libuninameslist
     python freetype zlib glib libungif libpng libjpeg libtiff libxml2
   ]
     ++ lib.optionals withSpiro [libspiro]
-    ++ lib.optionals withGTK [ gtk2 cairo pango ]
+    ++ lib.optionals withGUI [ gtk3 cairo pango ]
     ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa ];
 
-    configureFlags = [ "--enable-woff2" ]
-    ++ lib.optionals (!withPython) [ "--disable-python-scripting" "--disable-python-extension" ]
-    ++ lib.optional withGTK "--enable-gtk2-use"
-    ++ lib.optional (!withGTK) "--without-x"
-    ++ lib.optional withExtras "--enable-fontforge-extras";
+  cmakeFlags = [ "-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON" ]
+    ++ lib.optional (!withSpiro) "-DENABLE_LIBSPIRO=OFF"
+    ++ lib.optional (!withGUI) "-DENABLE_GUI=OFF"
+    ++ lib.optional (!withGTK) "-DENABLE_X11=ON"
+    ++ lib.optional withExtras "-DENABLE_FONTFORGE_EXTRAS=ON";
 
   # work-around: git isn't really used, but configuration fails without it
   preConfigure = ''
     # The way $version propagates to $version of .pe-scripts (https://github.com/dejavu-fonts/dejavu-fonts/blob/358190f/scripts/generate.pe#L19)
     export SOURCE_DATE_EPOCH=$(date -d ${version} +%s)
-
-    export GIT="$(type -P true)"
-    ./bootstrap --skip-git --force
   '';
 
-  doCheck = false; # tries to wget some fonts
-  doInstallCheck = doCheck;
-
   postInstall =
     # get rid of the runtime dependency on python
     lib.optionalString (!withPython) ''
       rm -r "$out/share/fontforge/python"
     '';
 
-  enableParallelBuilding = true;
-
   meta = {
     description = "A font editor";
     homepage = "http://fontforge.github.io";
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/fzf/default.nix b/pkgs/tools/misc/fzf/default.nix
index d5c75a1e8a7..d9fe6ac819b 100644
--- a/pkgs/tools/misc/fzf/default.nix
+++ b/pkgs/tools/misc/fzf/default.nix
@@ -1,17 +1,17 @@
-{ 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";
   };
 
-  modSha256 = "16bb0a9z49jqhh9lmq8rvl7x9vh79mi4ygkb9sm04g41g5z6ag1s";
+  vendorSha256 = "1c2iz28hjrw9rig9a6r27wd8clycdhi8fgs3da91c63w4qi140zm";
 
   outputs = [ "out" "man" ];
 
@@ -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}
@@ -60,7 +65,7 @@ buildGoModule rec {
     homepage = "https://github.com/junegunn/fzf";
     description = "A command-line fuzzy finder written in Go";
     license = licenses.mit;
-    maintainers = with maintainers; [ filalex77 ma27 ];
+    maintainers = with maintainers; [ filalex77 ma27 zowoq ];
     platforms = platforms.unix;
   };
 }
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 153a74f9456..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.1.1";
+  version = "5.2.3";
 
   src = fetchurl {
     url = "https://cdn.geekbench.com/Geekbench-${version}-Linux.tar.gz";
-    sha256 = "1wjyn3fkc2zgj0xrd73kidrg1d1wqmil278ak36wf87685w4n0b1";
+    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/gh-ost/default.nix b/pkgs/tools/misc/gh-ost/default.nix
index d78e7f9439f..17893ef18ae 100644
--- a/pkgs/tools/misc/gh-ost/default.nix
+++ b/pkgs/tools/misc/gh-ost/default.nix
@@ -2,8 +2,8 @@
 
 let
   goPackagePath = "github.com/github/gh-ost";
-  version = "1.0.47";
-  sha256 = "0yyhkqis4j2cl6w2drrjxdy5j8x9zp4j89gsny6w4ql8gm5qgvvk";
+  version = "1.0.49";
+  sha256 = "0mncjhmv25wnhgjkn9gwkz2gzh0v6954w47ql7fs2iqr9al111dq";
 
 in
 buildGoPackage ({
diff --git a/pkgs/tools/misc/gif-for-cli/default.nix b/pkgs/tools/misc/gif-for-cli/default.nix
index 993c20222d8..fed22e51893 100644
--- a/pkgs/tools/misc/gif-for-cli/default.nix
+++ b/pkgs/tools/misc/gif-for-cli/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, python3Packages, ffmpeg, zlib, libjpeg }:
+{ stdenv, fetchFromGitHub, python3Packages, ffmpeg_3, zlib, libjpeg }:
 
 python3Packages.buildPythonApplication {
   pname = "gif-for-cli";
@@ -12,7 +12,7 @@ python3Packages.buildPythonApplication {
   };
 
   checkInputs = [ python3Packages.coverage ];
-  buildInputs = [ ffmpeg zlib libjpeg ];
+  buildInputs = [ ffmpeg_3 zlib libjpeg ];
   propagatedBuildInputs = with python3Packages; [ pillow requests x256 ];
 
   meta = with stdenv.lib; {
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/goaccess/default.nix b/pkgs/tools/misc/goaccess/default.nix
index b9fdac6cba3..1906c9d5665 100644
--- a/pkgs/tools/misc/goaccess/default.nix
+++ b/pkgs/tools/misc/goaccess/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, pkgconfig, ncurses, glib, libmaxminddb }:
 
 stdenv.mkDerivation rec {
-  version = "1.3";
+  version = "1.4";
   pname = "goaccess";
 
   src = fetchurl {
     url = "https://tar.goaccess.io/goaccess-${version}.tar.gz";
-    sha256 = "16vv3pj7pbraq173wlxa89jjsd279004j4kgzlrsk1dz4if5qxwc";
+    sha256 = "1gkpjg39f3afdwm9128jqjsfap07p8s027czzlnxfmi5hpzvkyz8";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/misc/gotify-cli/default.nix b/pkgs/tools/misc/gotify-cli/default.nix
index d4daa64facb..9e9f3c84782 100644
--- a/pkgs/tools/misc/gotify-cli/default.nix
+++ b/pkgs/tools/misc/gotify-cli/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "131gs6xzfggnrzq5jgyky23zvcmhx3q3hd17xvqxd02s2i9x1mg4";
   };
 
-  modSha256 = "1lrsg33zd7m24za2gv407hz02n3lmz9qljfk82whlj44hx7kim1z";
+  vendorSha256 = "1lhhsf944gm1p6qxn05g2s3hdnra5dggj7pdrdq6qr6r2xg7f5qh";
+
+  doCheck = false;
 
   postInstall = ''
     mv $out/bin/cli $out/bin/gotify
diff --git a/pkgs/tools/misc/graylog/default.nix b/pkgs/tools/misc/graylog/default.nix
index 49ca39c7d06..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.2.4";
+  version = "3.3.4";
 
   src = fetchurl {
     url = "https://packages.graylog2.org/releases/graylog/graylog-${version}.tgz";
-    sha256 = "0m3g68ycb0yvdpiyd6qysgz0ygz9s0kb98g79cdx9rqpb7x0rmd0";
+    sha256 = "0wynnb56plch61pzjl46jx5q94c5hclzyrr8567fc1jhnqycfngs";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/misc/graylog/plugins.nix b/pkgs/tools/misc/graylog/plugins.nix
index 1f351b66203..b1abc8a5065 100644
--- a/pkgs/tools/misc/graylog/plugins.nix
+++ b/pkgs/tools/misc/graylog/plugins.nix
@@ -38,10 +38,10 @@ in {
   auth_sso = glPlugin rec {
     name = "graylog-auth-sso-${version}";
     pluginName = "graylog-plugin-auth-sso";
-    version = "3.1.0";
+    version = "3.3.0";
     src = fetchurl {
       url = "https://github.com/Graylog2/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
-      sha256 = "0hwgpq1j3qk0j1zgap5f1avh2nvkcscgds81x8xr0gamphgps8y2";
+      sha256 = "1g47hlld8vzicd47b5i9n2816rbrhv18vjq8gp765c7mdg4a2jn8";
     };
     meta = {
       homepage = "https://github.com/Graylog2/graylog-plugin-auth-sso";
@@ -61,6 +61,25 @@ in {
       description = "Message filter plugin can be used to do DNS lookups for the source field in Graylog messages";
     };
   };
+  enterprise-integrations = glPlugin rec {
+    name = "graylog-enterprise-integrations-${version}";
+    pluginName = "graylog-plugin-enterprise-integrations";
+    version = "3.3.4";
+    src = fetchurl {
+      url = "https://downloads.graylog.org/releases/graylog-enterprise-integrations/graylog-enterprise-integrations-plugins-${version}.tgz";
+      sha256 = "0ln0vmnfgxg6hdq7sh58xdqn14bl86qrgy3923f3q3hx209v6vn9";
+    };
+    installPhase = ''
+      mkdir -p $out/bin
+      tar --strip-components=2 -xf $src
+      cp ${pluginName}-${version}.jar $out/bin/${pluginName}-${version}.jar
+    '';
+    meta = {
+      homepage = "https://docs.graylog.org/en/3.3/pages/integrations.html#enterprise";
+      description = "Integrations are tools that help Graylog work with external systems (unfree enterprise integrations)";
+      license = stdenv.lib.licenses.unfree;
+    };
+  };
   filter-messagesize = glPlugin rec {
     name = "graylog-filter-messagesize-${version}";
     pluginName = "graylog-plugin-filter-messagesize";
@@ -74,6 +93,24 @@ in {
       description = "Prints out all messages that have an estimated size crossing a configured threshold during processing";
     };
   };
+  integrations = glPlugin rec {
+    name = "graylog-integrations-${version}";
+    pluginName = "graylog-plugin-integrations";
+    version = "3.3.4";
+    src = fetchurl {
+      url = "https://downloads.graylog.org/releases/graylog-integrations/graylog-integrations-plugins-${version}.tgz";
+      sha256 = "14g6vdyibp3rva8bwss7vjbi9fpxvgp2gbk1r8divbhhpiwsjyxc";
+    };
+    installPhase = ''
+      mkdir -p $out/bin
+      tar --strip-components=2 -xf $src
+      cp ${pluginName}-${version}.jar $out/bin/${pluginName}-${version}.jar
+    '';
+    meta = {
+      homepage = https://github.com/Graylog2/graylog-plugin-integrations;
+      description = "A collection of open source Graylog integrations that will be released together";
+    };
+  };
   internal-logs = glPlugin rec {
     name = "graylog-internal-logs-${version}";
     pluginName = "graylog-plugin-internal-logs";
@@ -142,10 +179,10 @@ in {
   pagerduty = glPlugin rec {
     name = "graylog-pagerduty-${version}";
     pluginName = "graylog-plugin-pagerduty";
-    version = "1.3.0";
+    version = "2.0.0";
     src = fetchurl {
       url = "https://github.com/graylog-labs/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
-      sha256 = "1g63c6rm5pkz7f0d73wb2lmk4zm430jqnhihbyq112cm4i7ymglh";
+      sha256 = "0xhcwfwn7c77giwjilv7k7aijnj9azrjbjgd0r3p6wdrw970f27r";
     };
     meta = {
       homepage = "https://github.com/graylog-labs/graylog-plugin-pagerduty";
@@ -178,6 +215,19 @@ in {
       description = "Can notify Slack or Mattermost channels about triggered alerts in Graylog (Alarm Callback)";
     };
   };
+  snmp = glPlugin rec {
+    name = "graylog-snmp-${version}";
+    pluginName = "graylog-plugin-snmp";
+    version = "0.3.0";
+    src = fetchurl {
+      url = "https://github.com/graylog-labs/${pluginName}/releases/download/${version}/${pluginName}-${version}.jar";
+      sha256 = "1hkaklwzcsvqq45b98chwqxqdgnnbj4dg68agsll13yq4zx37qpp";
+    };
+    meta = {
+      homepage = https://github.com/graylog-labs/graylog-plugin-snmp;
+      description = "Graylog plugin to receive SNMP traps";
+    };
+  };
   spaceweather = glPlugin rec {
     name = "graylog-spaceweather-${version}";
     pluginName = "graylog-plugin-spaceweather";
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/h/default.nix b/pkgs/tools/misc/h/default.nix
index f4897a54cb1..9a80945097b 100644
--- a/pkgs/tools/misc/h/default.nix
+++ b/pkgs/tools/misc/h/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     owner = "zimbatm";
     repo = "h";
     rev = "v${version}";
-    hash = "sha256-chGrMtvLyyNtlM7PO1olVdkzkvMOk6OibHw+mqwVxIM=";
+    sha256 = "10y42nn9lgkwdjia74qfyf937nam4md3pkyfjinj7jybvcran4bj";
   };
 
   buildInputs = [ ruby ];
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/hdf4/default.nix b/pkgs/tools/misc/hdf4/default.nix
index 8d694aa88b7..d5b8291d78e 100644
--- a/pkgs/tools/misc/hdf4/default.nix
+++ b/pkgs/tools/misc/hdf4/default.nix
@@ -84,10 +84,11 @@ stdenv.mkDerivation rec {
     moveToOutput bin "$bin"
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Data model, library, and file format for storing and managing data";
     homepage = "https://support.hdfgroup.org/products/hdf4/";
-    maintainers = with stdenv.lib.maintainers; [ knedlsepp ];
-    platforms = stdenv.lib.platforms.unix;
+    maintainers = with maintainers; [ knedlsepp ];
+    platforms = platforms.unix;
+    license = licenses.bsdOriginal;
   };
 }
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 b953dd290fe..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.19";
+  version = "4.21";
   pname = "hebcal";
 
   src = fetchFromGitHub {
     owner = "hebcal";
     repo = "hebcal";
     rev = "v${version}";
-    sha256 = "028y2bw0bs0bx58gnxzbrg2c14a2pgkni2carf5i7kb6dg4wnkaq";
+    sha256 = "0gqjhl5i0hvnpvsg6cfc2z5ckrs66h3jlrdgim62azn3hh5bday2";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/misc/hexyl/default.nix b/pkgs/tools/misc/hexyl/default.nix
index e67b0116df1..d9bed8c607d 100644
--- a/pkgs/tools/misc/hexyl/default.nix
+++ b/pkgs/tools/misc/hexyl/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname   = "hexyl";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner  = "sharkdp";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0blq81zpmzldngk9ymcg56syspjp1g1ziap4z69idv05mfkf6sp3";
+    sha256 = "0aj2sysl0spf5zlcd5kfzlw97w7dzf9x93pv0d1v9blnbd1rz7lm";
   };
 
-  cargoSha256 = "09kccd1brcbvzimm05dyybwrkganqxdkjrvzgcf1l93xs1z2h94b";
+  cargoSha256 = "1am9vs7l2wzgwqakrsl27x1y7jpn9xaqa4kr48wwqzka401h6j4m";
 
   meta = with stdenv.lib; {
     changelog = "https://github.com/sharkdp/hexyl/releases/tag/v${version}";
diff --git a/pkgs/tools/misc/hyperfine/default.nix b/pkgs/tools/misc/hyperfine/default.nix
index a5b7b81d77c..ff9250a2bf6 100644
--- a/pkgs/tools/misc/hyperfine/default.nix
+++ b/pkgs/tools/misc/hyperfine/default.nix
@@ -1,27 +1,35 @@
-{ stdenv, fetchFromGitHub, rustPlatform
+{ stdenv, fetchFromGitHub, rustPlatform, installShellFiles
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "hyperfine";
-  version = "1.9.0";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner  = "sharkdp";
     repo   = pname;
     rev    = "refs/tags/v${version}";
-    sha256 = "0jx2lqhayp14c51dfvgmqrmmadyvxf0p4dsn770ndqpzv66rh6zb";
+    sha256 = "0389lmyipmm4irrl39zw2748f2sdddfzwms4i4763xdykdvi8b57";
   };
 
-  cargoSha256 = "0n0hizldhr026mrzzz1wlw4g0b1z6ybxarybq3fzchs722iqpsis";
+  cargoSha256 = "06scvp7x1yixdadarsm461hbc256spx4aqhmjjn72x7hxn22h9cg";
 
+  nativeBuildInputs = [ installShellFiles ];
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
+  postInstall = ''
+    installManPage doc/hyperfine.1
+
+    installShellCompletion \
+      $releaseDir/build/hyperfine-*/out/hyperfine.{bash,fish} \
+      --zsh $releaseDir/build/hyperfine-*/out/_hyperfine
+  '';
+
   meta = with stdenv.lib; {
     description = "Command-line benchmarking tool";
     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/intermodal/default.nix b/pkgs/tools/misc/intermodal/default.nix
index 8a2412f86ef..de52909a810 100644
--- a/pkgs/tools/misc/intermodal/default.nix
+++ b/pkgs/tools/misc/intermodal/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "intermodal";
-  version = "0.1.7";
+  version = "0.1.10";
 
   src = fetchFromGitHub {
     owner = "casey";
     repo = pname;
     rev = "v${version}";
-    sha256 = "05wjzx1ibd7cyl5lgmmn5y8dhsk71wz2bnimbmq7z51ds6cbyw5i";
+    sha256 = "0vdla0vhvgj1yrg631jdm3kwdm1q0acw8sh2nz57dp3x7chq6ipx";
   };
 
-  cargoSha256 = "04xqk1mmbrz8bjn36nxabwla3y62wfdly5bckkya6y2dhf1vkdjq";
+  cargoSha256 = "1yl1chh243ixa9lhkmgi94w6mvnrnr7xmsh4kvj7ax693249pzjv";
 
   # include_hidden test tries to use `chflags` on darwin
   checkFlagsArray = stdenv.lib.optionals stdenv.isDarwin [ "--skip=subcommand::torrent::create::tests::include_hidden" ];
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 109a84de631..7d559a1468e 100644
--- a/pkgs/tools/misc/jdupes/default.nix
+++ b/pkgs/tools/misc/jdupes/default.nix
@@ -2,24 +2,28 @@
 
 stdenv.mkDerivation rec {
   pname = "jdupes";
-  version = "1.14.0";
+  version = "1.18.2";
 
   src = fetchFromGitHub {
     owner = "jbruchon";
     repo  = "jdupes";
     rev   = "v${version}";
-    sha256 = "18hn25f7cdz1li0vvx74al7a8z2220xhzjp9j6idhldsmjnscgq8";
+    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.
     extraPostFetch = "rm -r $out/testdir";
   };
 
+  dontConfigure = true;
+
   makeFlags = [
     "PREFIX=${placeholder "out"}"
   ] ++ stdenv.lib.optionals stdenv.isLinux [
     "ENABLE_DEDUPE=1"
     "STATIC_DEDUPE_H=1"
+  ] ++ stdenv.lib.optionals stdenv.cc.isGNU [
+    "HARDEN=1"
   ];
 
   enableParallelBuilding = true;
@@ -27,7 +31,7 @@ stdenv.mkDerivation rec {
   doCheck = false; # broken Makefile, the above also removes tests
 
   postInstall = ''
-    install -Dm644 -t $out/share/doc/jdupes CHANGES LICENSE README.md
+    install -Dm444 -t $out/share/doc/jdupes CHANGES LICENSE README.md
   '';
 
   meta = with stdenv.lib; {
@@ -40,6 +44,5 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/jbruchon/jdupes";
     license = licenses.mit;
     maintainers = with maintainers; [ romildo ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/jugglinglab/default.nix b/pkgs/tools/misc/jugglinglab/default.nix
new file mode 100644
index 00000000000..32c45b31a17
--- /dev/null
+++ b/pkgs/tools/misc/jugglinglab/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, jre, makeWrapper, ant, jdk }:
+stdenv.mkDerivation rec {
+  version = "1.2.1";
+  name = "jugglinglab";
+  src = fetchFromGitHub {
+    owner = "jkboyce";
+    repo = "jugglinglab";
+    rev = "1908012682d8c39a9b92248a20f285455104c510"; # v1.2.1 does not have a tag on Github
+    sha256 = "0dvcyjwynvapqbjchrln59vdskrm3w6kh0knxcn4bx61vcz3171z";
+  };
+  buildInputs = [ jre ];
+  nativeBuildInputs = [ ant jdk makeWrapper ];
+  buildPhase = "ant";
+
+  installPhase = ''
+    mkdir -p "$out/bin"
+    mkdir -p "$out/lib"
+    cp bin/JugglingLab.jar $out/lib/
+
+    makeWrapper ${jre}/bin/java $out/bin/jugglinglab \
+      --add-flags "-jar $out/lib/JugglingLab.jar"
+  '';
+
+  meta = with stdenv.lib; {
+      description = "A program to visualize different juggling pattens";
+      license = licenses.gpl2;
+      maintainers = with maintainers; [ wnklmnn ];
+      platforms = platforms.all;
+  };
+}
\ No newline at end of file
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/kargo/default.nix b/pkgs/tools/misc/kargo/default.nix
index bcc19770155..eb9805b22d8 100644
--- a/pkgs/tools/misc/kargo/default.nix
+++ b/pkgs/tools/misc/kargo/default.nix
@@ -1,6 +1,8 @@
-{ stdenv, fetchurl, python2Packages }:
+{ stdenv, fetchurl, python3Packages }:
 
-python2Packages.buildPythonApplication rec {
+with python3Packages;
+
+buildPythonApplication rec {
   version = "0.4.8";
   pname = "kargo";
 
@@ -9,9 +11,7 @@ python2Packages.buildPythonApplication rec {
     sha256 = "1iq3vrmglag9gpsir03yz7556m0bz99nwb2mf594378cqzbr6db3";
   };
 
-  doCheck = false;
-
-  propagatedBuildInputs = with python2Packages; [
+  propagatedBuildInputs = [
     ansible
     boto
     cffi
@@ -24,12 +24,15 @@ python2Packages.buildPythonApplication rec {
     setuptools
   ];
 
+  checkPhase = ''
+    HOME=$TMPDIR $out/bin/kargo -v
+  '';
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/kubespray/kargo-cli";
     description = "A tool helps to deploy a kubernetes cluster with Ansible.";
     platforms = platforms.linux;
     license = licenses.gpl3;
-    maintainers = with maintainers; [
-    ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/tools/misc/kepubify/default.nix b/pkgs/tools/misc/kepubify/default.nix
index 0a8f10fa85d..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";
   };
 
-  modSha256 = "0jz8v4rnwm5zbxxp49kv96wm4lack6prwyhcrqwsrm79dr9yjcxf";
+  vendorSha256 = "0jzx5midawvzims9ghh8fbslvwcdczvlpf0k6a9q0bdf4wlp2z5n";
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
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/lazydocker/default.nix b/pkgs/tools/misc/lazydocker/default.nix
index b63892178d9..d0c4d71c58a 100644
--- a/pkgs/tools/misc/lazydocker/default.nix
+++ b/pkgs/tools/misc/lazydocker/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "lazydocker";
-  version = "0.8";
+  version = "0.9";
 
   src = fetchFromGitHub {
     owner = "jesseduffield";
     repo = "lazydocker";
     rev = "v${version}";
-    sha256 = "02x03nmkbj0133bziaqmqlh3x515w3n01iqvg7q6b55r7nan7hv7";
+    sha256 = "08j2qp632fdmswnb92wxa9lhnal4mrmq6gmxaxngnxiqgkfx37zy";
   };
 
   goPackagePath = "github.com/jesseduffield/lazydocker";
diff --git a/pkgs/tools/misc/lf/default.nix b/pkgs/tools/misc/lf/default.nix
index b1edabad684..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";
   };
 
-  modSha256 = "1c6c6qg8yrhdhqsnqj3jw3x2hi8vrhfm47cp9xlkfnjfrz3nk6jp";
+  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
diff --git a/pkgs/tools/misc/libcpuid/default.nix b/pkgs/tools/misc/libcpuid/default.nix
index b0fe00d44d9..873399c185b 100644
--- a/pkgs/tools/misc/libcpuid/default.nix
+++ b/pkgs/tools/misc/libcpuid/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libcpuid";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "anrieff";
     repo = "libcpuid";
     rev = "v${version}";
-    sha256 = "03sya0fs76g86syl299lrn0vqjjcf8i0xd7fzaf42qhizbx03b88";
+    sha256 = "13v5x8gyka2v4kx52khwalb6ai328z7kk9jlipbbbys63p6nyddr";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/libgen-cli/default.nix b/pkgs/tools/misc/libgen-cli/default.nix
index c34e934fba4..26627500e8b 100644
--- a/pkgs/tools/misc/libgen-cli/default.nix
+++ b/pkgs/tools/misc/libgen-cli/default.nix
@@ -1,19 +1,30 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 buildGoModule rec {
   pname = "libgen-cli";
-  version = "1.0.5";
+  version = "1.0.7";
 
   src = fetchFromGitHub {
     owner = "ciehanski";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1lfsnyzin2dqhwhz6phms6yipli88sqiw55ls18dfv7bvx30sqlp";
+    sha256 = "15nzdwhmgpm36dqx7an5rjl5sw2r4p66qn2y3jzl6fc0y7224ns1";
   };
 
-  modSha256 = "1k16zjb7p65g72hr9vsk38jhpsy1yclm7fjgq47qy6jwjd44w1bi";
+  vendorSha256 = "0smb83mq711b2pby57ijcllccn7y2l10zb4fbf779xibb2g09608";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    for shell in bash zsh; do
+      $out/bin/libgen-cli completion $shell > libgen-cli.$shell || :
+      installShellCompletion libgen-cli.$shell
+    done
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/ciehanski/libgen-cli";
     description =
@@ -24,7 +35,6 @@ buildGoModule rec {
       contents.
     '';
     license = licenses.asl20;
-    platforms = platforms.all;
     maintainers = with maintainers; [ zaninime ];
   };
 }
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
new file mode 100644
index 00000000000..51b9b94ef70
--- /dev/null
+++ b/pkgs/tools/misc/lnch/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+  pname = "lnch";
+  version = "2017-02-16";
+
+  goPackagePath = "github.com/oem/${pname}";
+
+  src = fetchFromGitHub {
+    owner = "oem";
+    repo = pname;
+    rev = "f24eed5392f01d2c8a9cfe9cdf70dcfbbf4b6b36";
+    sha256 = "0skzrjnbxq1yj7y64cq7angp4wqnrgw1xp9v8vw9zp8f8zwmpy0y";
+  };
+
+  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";
+    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 7829a677b43..8c544d3f0db 100644
--- a/pkgs/tools/misc/lorri/default.nix
+++ b/pkgs/tools/misc/lorri/default.nix
@@ -4,7 +4,7 @@
 , rustPlatform
   # Updater script
 , runtimeShell
-, writeScript
+, writers
   # Tests
 , nixosTests
   # Apple dependencies
@@ -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.0";
+  inherit version;
 
   meta = with stdenv.lib; {
     description = "Your project's nix-env";
@@ -26,12 +33,11 @@ rustPlatform.buildRustPackage rec {
   src = fetchFromGitHub {
     owner = "target";
     repo = pname;
-    # Run `eval $(nix-build -A lorri.updater)` after updating the revision!
-    rev = "88c680c9abf0f04f2e294436d20073ccf26f0781";
-    sha256 = "1415mhdr0pwvshs04clfz1ys76r5qf9jz8jchm63l6llaj6m7mrv";
+    rev = gitRev;
+    inherit sha256;
   };
 
-  cargoSha256 = "1iwd0cad8dp8q5xz2mm7zn1wphr5brkw937dfygc88afj6bv3d68";
+  inherit cargoSha256;
   doCheck = false;
 
   BUILD_REV_COUNT = src.revCount or 1;
@@ -41,9 +47,19 @@ 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 = with builtins; writeScript "copy-runtime-nix.sh" ''
-      #!${runtimeShell}
+    updater = writers.writeBash "copy-runtime-nix.sh" ''
       set -euo pipefail
       cp ${src}/nix/runtime.nix ${toString ./runtime.nix}
       cp ${src}/nix/runtime-closure.nix.template ${toString ./runtime-closure.nix.template}
@@ -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/man-db/default.nix b/pkgs/tools/misc/man-db/default.nix
index f19e5fd5b9d..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.0";
+  name = "man-db-2.9.3";
 
   src = fetchurl {
     url = "mirror://savannah/man-db/${name}.tar.xz";
-    sha256 = "0qg2sdn8mayya0ril484iz1r7hi46l68d2d80cr6lvc7x3csqjjx";
+    sha256 = "1f4palf5bdyf3f8sa0981cqxn9cjcr2pz53ngrrsybb9n0da2nps";
   };
 
   outputs = [ "out" "doc" ];
@@ -15,18 +15,17 @@ stdenv.mkDerivation rec {
   buildInputs = [ libpipeline db groff ]; # (Yes, 'groff' is both native and build input)
   checkInputs = [ libiconv /* for 'iconv' binary */ ];
 
+  patches = [ ./systemwide-man-db-conf.patch ];
+
   postPatch = ''
     # Remove all mandatory manpaths. Nixpkgs makes no requirements on
     # these directories existing.
     sed -i 's/^MANDATORY_MANPATH/# &/' src/man_db.conf.in
 
-    # Add Nixpkgs and NixOS-related manpaths
-    echo "MANPATH_MAP	/run/current-system/sw/bin		/run/current-system/sw/share/man" >> src/man_db.conf.in
-    echo "MANPATH_MAP	/run/wrappers/bin			/run/current-system/sw/share/man" >> src/man_db.conf.in
+    # Add Nix-related manpaths
     echo "MANPATH_MAP	/nix/var/nix/profiles/default/bin	/nix/var/nix/profiles/default/share/man" >> src/man_db.conf.in
 
     # Add mandb locations for the above
-    echo "MANDB_MAP	/run/current-system/sw/share/man	/var/cache/man/nixos" >> src/man_db.conf.in
     echo "MANDB_MAP	/nix/var/nix/profiles/default/share/man	/var/cache/man/nixpkgs" >> src/man_db.conf.in
   '';
 
@@ -34,7 +33,6 @@ stdenv.mkDerivation rec {
     "--disable-setuid"
     "--disable-cache-owner"
     "--localstatedir=/var"
-    # Don't try /etc/man_db.conf by default, so we avoid error messages.
     "--with-config-file=${placeholder "out"}/etc/man_db.conf"
     "--with-systemdtmpfilesdir=${placeholder "out"}/lib/tmpfiles.d"
     "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
diff --git a/pkgs/tools/misc/man-db/systemwide-man-db-conf.patch b/pkgs/tools/misc/man-db/systemwide-man-db-conf.patch
new file mode 100644
index 00000000000..2d4477776bb
--- /dev/null
+++ b/pkgs/tools/misc/man-db/systemwide-man-db-conf.patch
@@ -0,0 +1,39 @@
+commit 9089291006a4258c39c75a920ad536b61504251a
+Author: rnhmjoj <rnhmjoj@inventati.org>
+Date:   Fri May 1 19:32:15 2020 +0200
+
+    check for systemwide man_db.conf before the bundled one
+
+diff --git a/src/manp.c b/src/manp.c
+index 5441339..0bbf566 100644
+--- a/src/manp.c
++++ b/src/manp.c
+@@ -841,18 +841,24 @@ void read_config_file (bool optional)
+ 	}
+ 
+ 	if (getenv ("MAN_TEST_DISABLE_SYSTEM_CONFIG") == NULL) {
+-		config_file = fopen (CONFIG_FILE, "r");
++		const char *config_filepath;
++		if (access ("/etc/man_db.conf", F_OK) != -1) {
++			config_filepath = "/etc/man_db.conf";
++		} else {
++			config_filepath = CONFIG_FILE;
++		}
++		config_file = fopen (config_filepath, "r");
+ 		if (config_file == NULL) {
+ 			if (optional)
+ 				debug ("can't open %s; continuing anyway\n",
+-				       CONFIG_FILE);
++				       config_filepath);
+ 			else
+ 				error (FAIL, 0,
+ 				       _("can't open the manpath "
+ 					 "configuration file %s"),
+-				       CONFIG_FILE);
++				       config_filepath);
+ 		} else {
+-			debug ("From the config file %s:\n", CONFIG_FILE);
++			debug ("From the config file %s:\n", config_filepath);
+ 
+ 			add_to_dirlist (config_file, 0);
+ 			fclose (config_file);
diff --git a/pkgs/tools/misc/mbuffer/default.nix b/pkgs/tools/misc/mbuffer/default.nix
index 7edfb280e43..8b1cb938fb7 100644
--- a/pkgs/tools/misc/mbuffer/default.nix
+++ b/pkgs/tools/misc/mbuffer/default.nix
@@ -3,12 +3,12 @@
  } :
 
 stdenv.mkDerivation rec {
-  version = "20191016";
+  version = "20200505";
   pname = "mbuffer";
 
   src = fetchurl {
     url = "http://www.maier-komor.de/software/mbuffer/mbuffer-${version}.tgz";
-    sha256 = "05xyvmbs2x5gbj2njgg7hsj3alb5dh96xhab0w0qkhb58x2i1hld";
+    sha256 = "02qzy3appah0llg6aa71isl2a5nc93bkzy5r4d682lcy2j1n216c";
   };
 
   buildInputs = [ openssl ];
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 f206c54a003..39f9b47f465 100644
--- a/pkgs/tools/misc/mcfly/default.nix
+++ b/pkgs/tools/misc/mcfly/default.nix
@@ -1,27 +1,30 @@
-{ stdenv, rustPlatform, fetchFromGitHub, Security }:
+{ stdenv, rustPlatform, fetchFromGitHub }:
 
 rustPlatform.buildRustPackage rec {
   pname = "mcfly";
-  version = "0.3.6";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "cantino";
     repo = "mcfly";
     rev = "v${version}";
-    sha256 = "1g3n7ll0yg7w7hb3jgp25mlnqwsdzv0608f41z7q5gmsskdm3v1j";
+    sha256 = "155x745jakfcpr6kmp24cy8xwdhv81jdfjjhd149bnw5ilg0z037";
   };
 
-  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
-
-  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 = "0r2zb59rpja9z7q0gsylqaq4vqm5rp57fy56ajjrm6k6z06nq7bv";
+  cargoSha256 = "0y6sjbzg5qqqip9sc9ajyd5ra3n2wwvarj6nhpzjhh05kqz3qja4";
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/cantino/mcfly";
-    description = "An upgraded ctrl-r for Bash whose history results make sense for what you're working on right now.";
+    description = "An upgraded ctrl-r for Bash whose history results make sense for what you're working on right now";
     license = licenses.mit;
     maintainers = [ maintainers.melkor333 ];
   };
diff --git a/pkgs/tools/misc/mdbtools/default.nix b/pkgs/tools/misc/mdbtools/default.nix
index 0a887531fb8..aedaa364888 100644
--- a/pkgs/tools/misc/mdbtools/default.nix
+++ b/pkgs/tools/misc/mdbtools/default.nix
@@ -1,30 +1,40 @@
-{ stdenv, fetchFromGitHub, glib, readline
-, bison, flex, pkgconfig, autoreconfHook
-, txt2man, which }:
+{ stdenv, lib, fetchFromGitHub, glib, readline
+, bison, flex, pkgconfig, autoreconfHook, libxslt, makeWrapper
+, txt2man, which
+# withUi currently doesn't work. It compiles but fails to run.
+, withUi ? false, gtk2, gnome2
+}:
 
-let version = "0.7.1";
-in stdenv.mkDerivation {
+let
+  uiDeps = [ gtk2 ] ++ (with gnome2; [ GConf libglade libgnomeui gnome-doc-utils ]);
+
+in
+stdenv.mkDerivation rec {
   pname = "mdbtools";
-  inherit version;
+  version = "0.8.2";
 
   src = fetchFromGitHub {
-    owner = "brianb";
+    owner = "cyberemissary";
     repo = "mdbtools";
     rev = version;
-    sha256 = "0gwcpp9y09xhs21g7my2fs8ncb8i6ahlyixcx8jd3q97jbzj441l";
+    sha256 = "12rhf6rgnws6br5dn1l2j7i77q9p4l6ryga10jpax01vvzhr26qc";
   };
 
-  nativeBuildInputs = [ pkgconfig bison flex autoreconfHook txt2man which ];
-  buildInputs = [ glib readline ];
+  configureFlags = [ "--disable-scrollkeeper" ];
+
+  nativeBuildInputs = [
+    pkgconfig bison flex autoreconfHook txt2man which
+  ] ++ lib.optional withUi libxslt;
+
+  buildInputs = [ glib readline ] ++ lib.optionals withUi uiDeps;
 
-  preConfigure = ''
-    sed -e 's@static \(GHashTable [*]mdb_backends;\)@\1@' -i src/libmdb/backend.c
-  '';
+  enableParallelBuilding = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = ".mdb (MS Access) format tools";
-    homepage = "http://mdbtools.sourceforge.net";
-    platforms = platforms.unix;
     license = with licenses; [ gpl2 lgpl2 ];
+    maintainers = with maintainers; [ ];
+    platforms = platforms.unix;
+    inherit (src.meta) homepage;
   };
 }
diff --git a/pkgs/tools/misc/miniserve/default.nix b/pkgs/tools/misc/miniserve/default.nix
index ea3afdab098..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.6.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "svenstaro";
     repo = "miniserve";
     rev = "v${version}";
-    sha256 = "0ybxnxjg0vqm4q60z4zjl3hfls0s2rvy44m6jgyhlj1p6cr3dbyw";
+    sha256 = "1h4872jb0xz8yzs02q8wfvqrp20y7kdva5ka6bh6nq4jrnnky8zb";
   };
 
-  cargoSha256 = "0ypxv9wqcnjxjdrvdparddpssrarnifr43dq7kcr4l3fd1anl40a";
+  cargoSha256 = "1vq1rrav9r9z4y0v7hpn0fcq64slq4zrm2pybmnmb7h9nfxxyr6k";
 
   RUSTC_BOOTSTRAP = 1;
 
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
     description = "For when you really just want to serve some files over HTTP right now!";
     homepage = "https://github.com/svenstaro/miniserve";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ nequissimus ];
+    maintainers = with maintainers; [ nequissimus zowoq ];
     platforms = platforms.unix;
   };
 }
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 c44934ef45c..20d7110944d 100644
--- a/pkgs/tools/misc/mstflint/default.nix
+++ b/pkgs/tools/misc/mstflint/default.nix
@@ -1,19 +1,26 @@
-{ stdenv, fetchurl, zlib, libibmad }:
+{ stdenv, autoreconfHook, fetchFromGitHub, zlib, libibmad, openssl }:
 
 stdenv.mkDerivation rec {
-  name = "mstflint-4.4.0-1.12.gd1edd58";
+  pname = "mstflint";
+  version = "4.14.0-3";
 
-  src = fetchurl {
-    url = "https://www.openfabrics.org/downloads/mstflint/${name}.tar.gz";
-    sha256 = "0kg33i5s5zdc7kigww62r0b824zfw06r757fl6jwrq7lj91j0380";
+  src = fetchFromGitHub {
+    owner = "Mellanox";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0zy9npyzf7dkxlfl9mx6997aa61mk23ixpjb01ckb1wvav5k6z82";
   };
 
-  buildInputs = [ zlib libibmad ];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ zlib libibmad openssl ];
+
+  hardeningDisable = [ "format" ];
+
+  dontDisableStatic = true;  # the build fails without this. should probably be reported upstream
 
   meta = with stdenv.lib; {
-    homepage = "https://www.openfabrics.org/";
-    license = licenses.gpl2;
+    homepage = "https://github.com/Mellanox/mstflint";
+    license = with licenses; [ gpl2 bsd2 ];
     platforms = platforms.linux;
-    broken = true; # 2018-04-11
   };
 }
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 8940fef2a0d..ca75bf34dd1 100644
--- a/pkgs/tools/misc/mutagen/default.nix
+++ b/pkgs/tools/misc/mutagen/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "mutagen";
-  version = "0.11.2";
+  version = "0.11.7";
 
   src = fetchFromGitHub {
     owner = "mutagen-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ykzrxlllip4wvhd9rja5bcr2m72695fjj2q1scwn8ri6jcgfa19";
+    sha256 = "11wp94khj9bzmadij0nq6i6q0x9z6h0zy4a6fhf322y5nxsmvcgy";
   };
 
-  modSha256 = "1r6b4y6civk75if6nljl66pgv5qm7x05qqby1anf7s7cz7d1rc3g";
+  vendorSha256 = "0szs9yc49fyh55ra1wf8zj76kdah0x49d45cgivk3gqh2hl17j6l";
+
+  doCheck = false;
 
   subPackages = [ "cmd/mutagen" "cmd/mutagen-agent" ];
 
diff --git a/pkgs/tools/misc/ncdu/default.nix b/pkgs/tools/misc/ncdu/default.nix
index 7eddca8ca6d..2d56ab9c09b 100644
--- a/pkgs/tools/misc/ncdu/default.nix
+++ b/pkgs/tools/misc/ncdu/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ncdu";
-  version = "1.14.2";
+  version = "1.15.1";
 
   src = fetchurl {
     url = "https://dev.yorhel.nl/download/${pname}-${version}.tar.gz";
-    sha256 = "1cf6a9qw7ljaw09b0g7c5i252dl7wb2mnkrbwwwf7m0c3mf7yyll";
+    sha256 = "1c1zxalm5asyhn4p1hd51h7khw17515gbqmvdz63kc8xpx6xqbdh";
   };
 
   buildInputs = [ ncurses ];
@@ -16,6 +16,6 @@ stdenv.mkDerivation rec {
     homepage = "https://dev.yorhel.nl/ncdu";
     license = licenses.mit;
     platforms = platforms.all;
-    maintainers = with maintainers; [ pSub ];
+    maintainers = with maintainers; [ pSub zowoq ];
   };
 }
diff --git a/pkgs/tools/misc/neo-cowsay/default.nix b/pkgs/tools/misc/neo-cowsay/default.nix
index a4fe58fb107..4473f869a38 100644
--- a/pkgs/tools/misc/neo-cowsay/default.nix
+++ b/pkgs/tools/misc/neo-cowsay/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "0c6lygdqi26mczij41sn8ckc3g6qaakkkh3iasf10a4d07amxci1";
   };
 
-  modSha256 = "063ds35dzv8m4bjk7v1q3f6jwyp7j5jrkrhrl41z1c1mbzzkagkq";
+  vendorSha256 = "1clar59x2dvn7yj4fbylby9nrzy8kdixi48hkbmrv8g5l8n0wdl2";
+
+  doCheck = false;
 
   subPackages = [ "cmd/cowsay" "cmd/cowthink" ];
 
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/osinfo-db-tools/default.nix b/pkgs/tools/misc/osinfo-db-tools/default.nix
index 3e678b1d378..c0921a496cc 100644
--- a/pkgs/tools/misc/osinfo-db-tools/default.nix
+++ b/pkgs/tools/misc/osinfo-db-tools/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, pkgconfig, gettext, glib, libxml2, perl
+{ stdenv, fetchurl, pkgconfig, meson, ninja, gettext, glib, libxml2, perl, python3
 , libxslt, libarchive, bzip2, lzma, json-glib, libsoup
 }:
 
 stdenv.mkDerivation rec {
   pname = "osinfo-db-tools";
-  version = "1.6.0";
+  version = "1.8.0";
 
   src = fetchurl {
-    url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.gz";
-    sha256 = "0x155d4hqz7mabgqvgydqjm9d8aabc78vr0v0pnsp9vkdlcv3mfh";
+    url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz";
+    sha256 = "038q3gzdbkfkhpicj0755mw1q4gbvn57pslpw8n2dp3lds9im0g9";
   };
 
-  nativeBuildInputs = [ pkgconfig gettext perl ];
+  nativeBuildInputs = [ meson ninja pkgconfig gettext perl python3 ];
   buildInputs = [ glib json-glib libxml2 libxslt libarchive bzip2 lzma libsoup ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/osm2pgsql/default.nix b/pkgs/tools/misc/osm2pgsql/default.nix
index 6137abd9293..ebe99eca8cf 100644
--- a/pkgs/tools/misc/osm2pgsql/default.nix
+++ b/pkgs/tools/misc/osm2pgsql/default.nix
@@ -1,24 +1,38 @@
-{ stdenv, fetchFromGitHub, cmake, expat, proj, bzip2, zlib, boost, postgresql
-, withLuaJIT ? false, lua, luajit }:
+{ stdenv
+, fetchFromGitHub
+, cmake
+, expat
+, proj
+, bzip2
+, zlib
+, boost
+, postgresql
+, withLuaJIT ? false
+, lua
+, luajit
+, libosmium
+, protozero
+}:
 
 stdenv.mkDerivation rec {
   pname = "osm2pgsql";
-  version = "1.2.1";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "openstreetmap";
     repo = pname;
     rev = version;
-    sha256 = "1ysan01lpqzjxlq3y2kdminfjs5d9zksicpf9vvzpdk3fzq51fc9";
+    sha256 = "1dsyhcifixmcw05qxjald02pml0zfdij81pgy9yh8p00v0rqq57x";
   };
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ expat proj bzip2 zlib boost postgresql ]
+  buildInputs = [ expat proj bzip2 zlib boost postgresql libosmium protozero ]
     ++ stdenv.lib.optional withLuaJIT luajit
     ++ stdenv.lib.optional (!withLuaJIT) lua;
 
-  cmakeFlags = stdenv.lib.optional withLuaJIT "-DWITH_LUAJIT:BOOL=ON";
+  cmakeFlags = [ "-DEXTERNAL_LIBOSMIUM=ON" "-DEXTERNAL_PROTOZERO=ON" ]
+    ++ stdenv.lib.optional withLuaJIT "-DWITH_LUAJIT:BOOL=ON";
 
   NIX_CFLAGS_COMPILE = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H";
 
@@ -27,6 +41,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/openstreetmap/osm2pgsql";
     license = licenses.gpl2;
     platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ jglukasik ];
+    maintainers = with maintainers; [ jglukasik das-g ];
   };
 }
diff --git a/pkgs/tools/misc/ostree/default.nix b/pkgs/tools/misc/ostree/default.nix
index 24a104dc974..568afb50403 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.4";
 
   outputs = [ "out" "dev" "man" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/ostreedev/ostree/releases/download/v${version}/libostree-${version}.tar.xz";
-    sha256 = "01cch4as23xspq6pck59al7x5jj60wl21g8p3iqbdxcjl1p3jxsq";
+    sha256 = "0s13cjrpx5r1dc9j9c9924zak45wl9nlbg9hiwgpsal80l92c39n";
   };
 
   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 0720ca76f25..d11c41195ce 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-20200422";
+  name = "parallel-20200722";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${name}.tar.bz2";
-    sha256 = "0c2mr2rzsz0y24q4mbm2zmc2fz6bcda4gbc4qgg59sirrj8vzpjb";
+    sha256 = "0vqd8nhf4lkvbfy7nnibxjkpzpfandpklqm0hrix5vki5x7x80a8";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/tools/misc/pg_flame/default.nix b/pkgs/tools/misc/pg_flame/default.nix
index fbeba0ff1bd..b8345210e59 100644
--- a/pkgs/tools/misc/pg_flame/default.nix
+++ b/pkgs/tools/misc/pg_flame/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "1a03vxqnga83mhjp7pkl0klhkyfaby7ncbwm45xbl8c7s6zwhnw2";
   };
 
-  modSha256 = "0j7qpvji546z0cfjijdd66l0vsl0jmny6i1n9fsjqjgjpwg26naq";
+  vendorSha256 = "1rkx20winh66y2m7i7q13jpr83044i2d1pfd5p5l5kkpsix5mra5";
+
+  doCheck = false;
 
   meta = with lib; {
     description = "Flamegraph generator for Postgres EXPLAIN ANALYZE output";
diff --git a/pkgs/tools/misc/pgcenter/default.nix b/pkgs/tools/misc/pgcenter/default.nix
index fbd32cf876d..a84ad1fadb0 100644
--- a/pkgs/tools/misc/pgcenter/default.nix
+++ b/pkgs/tools/misc/pgcenter/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "pgcenter";
-  version = "0.6.4";
+  version = "0.6.5";
 
   src = fetchFromGitHub {
     owner  = "lesovsky";
     repo   = "pgcenter";
     rev    = "v${version}";
-    sha256 = "0p8ck4s5jj53nc638darhwbylcsslfmfz72bwy6wxby9iqi9kq6b";
+    sha256 = "03n1gn944z6rz5g643y68hvfxpxp65mip32w1zx43xr60x1vpf2v";
   };
 
-  modSha256 = "0kassq52v07zmffs6l066g0d3kfv6wmrh9g5cgk79bmyq13clqjj";
+  vendorSha256 = "1mzvpr12qh9668iz97p62zl4zhlrcyfgwr4a9zg9irj585pkb5x2";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     homepage = "https://pgcenter.org/";
diff --git a/pkgs/tools/misc/pgmetrics/default.nix b/pkgs/tools/misc/pgmetrics/default.nix
index 632ba452ff9..726c9526224 100644
--- a/pkgs/tools/misc/pgmetrics/default.nix
+++ b/pkgs/tools/misc/pgmetrics/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "pgmetrics";
-  version = "1.9.0";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner  = "rapidloop";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0f7pjagr3zcqmbhmk446j6n7nanyhvyq4rn68f5wljl9g68ni7sj";
+    sha256 = "1g0kdvc93ij155r3g7cd9f5p1x33vdi9p40403waanq5wiavjnzq";
   };
 
-  modSha256 = "13a969yki47gw4b3mwhsgl0x53xylmflsykcs63f8pmigckw7jac";
+  vendorSha256 = "16x33fmh4q993rw0jr65337yimska4fwgyyw3kmq84q0x28a3zg5";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/pkgs/tools/misc/phoronix-test-suite/default.nix b/pkgs/tools/misc/phoronix-test-suite/default.nix
index 0abbcd5c3a2..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.0";
+  version = "9.8.0";
 
   src = fetchurl {
     url = "https://phoronix-test-suite.com/releases/${pname}-${version}.tar.gz";
-    sha256 = "1wgw5lwpm3ylby2llnjiq356cdb3v1jghj7xq659c722wj617i88";
+    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 1a244cd4103..dfbe5536bcc 100644
--- a/pkgs/tools/misc/pistol/default.nix
+++ b/pkgs/tools/misc/pistol/default.nix
@@ -6,17 +6,18 @@
 
 buildGoModule rec {
   pname = "pistol";
-  version = "0.1.1";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "doronbehar";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1d9c1bhidh781dis4427wramfrla4avqw9y2bmpjp81cqq3nc27d";
+    sha256 = "1x9wb0gj5l71xz15ia0i2hrnhcpf457i21w41jzw2ink2fbdxp3b";
   };
 
-  modSha256 = "0r062nka72ah2nb2gf8dfrrj4sxadkykcqjzkp4c9vwk93mhw41k";
-  buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version}" ];
+  vendorSha256 = "0dg4f9g6895nv3c6d74ijl6hzsyn620ndspbcq7ynvb1z0hsg6iz";
+
+  doCheck = false;
 
   subPackages = [ "cmd/pistol" ];
 
@@ -24,6 +25,8 @@ 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";
diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/tools/misc/plantuml/default.nix
index df76ddf2662..5b139bf4929 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.8";
+  version = "1.2020.15";
   pname = "plantuml";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/plantuml/${version}/plantuml.${version}.jar";
-    sha256 = "0xkv8d31dc0dchr40zzgmjw2wyh4i5vxwdk3fhqpw0pk2frxwc1w";
+    sha256 = "0dvm24ihdr71giz0mihg7wjqf2nrkk7a52vbbzimrvbilaih6s8v";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/powerline-go/default.nix b/pkgs/tools/misc/powerline-go/default.nix
index 077116767c3..9ec7c0a32bf 100644
--- a/pkgs/tools/misc/powerline-go/default.nix
+++ b/pkgs/tools/misc/powerline-go/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "135j18d53nhg6adjd2hax067c5f1py9fyprzfcr3plsxnaki2hrx";
   };
 
-  modSha256 = "0mz1qrwar9cgrhrgw4z3gwhjj62bnfnn59ji31zkyvwlc1mqh9an";
+  vendorSha256 = "0dkgp9vlb76la0j439w0rb548qg5v8648zryk3rqgfhd4qywlk11";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "A Powerline like prompt for Bash, ZSH and Fish";
diff --git a/pkgs/tools/misc/profile-cleaner/default.nix b/pkgs/tools/misc/profile-cleaner/default.nix
index b00f3099154..b8a747d4222 100644
--- a/pkgs/tools/misc/profile-cleaner/default.nix
+++ b/pkgs/tools/misc/profile-cleaner/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, makeWrapper, parallel, sqlite, bc, file }:
 
 stdenv.mkDerivation rec {
-  version = "2.37";
+  version = "2.41";
   pname = "profile-cleaner";
 
   src = fetchFromGitHub {
     owner = "graysky2";
     repo = "profile-cleaner";
     rev = "v${version}";
-    sha256 = "1fbsn2xvcjkqhhkhidn04iwc0zha68cpkyc9vs5yly38qr1q238a";
+    sha256 = "11sjf4j9dr6ih9jkg6vqq6gkfg6wly4182bi1008bsm1zdmm5iz7";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/profile-sync-daemon/default.nix b/pkgs/tools/misc/profile-sync-daemon/default.nix
index 790bf73a44d..7d68ada2c1b 100644
--- a/pkgs/tools/misc/profile-sync-daemon/default.nix
+++ b/pkgs/tools/misc/profile-sync-daemon/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, utillinux, coreutils}:
 
 stdenv.mkDerivation rec {
-  version = "6.38";
+  version = "6.40";
   pname = "profile-sync-daemon";
 
   src = fetchurl {
     url = "https://github.com/graysky2/profile-sync-daemon/archive/v${version}.tar.gz";
-    sha256 = "0mhjgd2b3grdaad64b72m8i5rm9k58yx7kpiqmhmd3kl5qlgxagy";
+    sha256 = "1z1n7dqbkk0x9w2pq71nf93wp4hrzin4a0hcvfynj1khf12z369h";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/misc/progress/default.nix b/pkgs/tools/misc/progress/default.nix
index bbde732aadf..a43101f607d 100644
--- a/pkgs/tools/misc/progress/default.nix
+++ b/pkgs/tools/misc/progress/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "progress";
-  version = "0.14";
+  version = "0.15";
 
   src = fetchFromGitHub {
     owner = "Xfennec";
     repo = "progress";
     rev = "v${version}";
-    sha256 = "1lk2v4b767klib93an4g3f7z5qrv9kdk9jf7545vw1immc4kamrl";
+    sha256 = "1cnb4ixlhshn139mj5sr42k5m6gjjbyqvkn1324c47niwrgp7dqm";
   };
 
   nativeBuildInputs = [ pkgconfig which ];
diff --git a/pkgs/tools/misc/pspg/default.nix b/pkgs/tools/misc/pspg/default.nix
index 1bb7f9582c4..63acdbfc13b 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.0.7";
+  version = "3.1.2";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = version;
-    sha256 = "10w47hbi6y92imzh1rlwkh5bfj1pnlkfxhbi8lhmy6ggxa62xmf7";
+    sha256 = "1x4x93c8qqalrhaah1rmrspr4gjcgf1sg6kplf9rg1c42mk672f8";
   };
 
   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/rmlint/default.nix b/pkgs/tools/misc/rmlint/default.nix
index cbe1f7d407c..936c78b695d 100644
--- a/pkgs/tools/misc/rmlint/default.nix
+++ b/pkgs/tools/misc/rmlint/default.nix
@@ -1,30 +1,71 @@
-{ stdenv, fetchFromGitHub
-, gettext, pkgconfig, scons
-, glib, json-glib, libelf, sphinx, utillinux }:
+{ stdenv
+, cairo
+, fetchFromGitHub
+, gettext
+, glib
+, gobject-introspection
+, gtksourceview3
+, json-glib
+, libelf
+, makeWrapper
+, pango
+, pkgconfig
+, polkit
+, python3
+, scons
+, sphinx
+, utillinux
+, wrapGAppsHook
+, withGui ? false }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "rmlint";
-  version = "2.9.0";
+  version = "2.10.1";
 
   src = fetchFromGitHub {
     owner = "sahib";
     repo = "rmlint";
     rev = "v${version}";
-    sha256 = "1b5cziam14h80xrfb285fmfrzz2rligxcpsq1xsig14xf4l2875i";
+    sha256 = "15xfkcw1bkfyf3z8kl23k3rlv702m0h7ghqxvhniynvlwbgh6j2x";
   };
 
   CFLAGS="-I${stdenv.lib.getDev utillinux}/include";
 
   nativeBuildInputs = [
-    pkgconfig sphinx gettext scons
+    pkgconfig
+    sphinx
+    gettext
+    scons
+  ] ++ stdenv.lib.optionals withGui [
+    makeWrapper
+    wrapGAppsHook
   ];
 
   buildInputs = [
-    glib json-glib libelf utillinux
+    glib
+    json-glib
+    libelf
+    utillinux
+  ] ++ stdenv.lib.optionals withGui [
+    cairo
+    gobject-introspection
+    gtksourceview3
+    pango
+    polkit
+    python3
+    python3.pkgs.pygobject3
   ];
 
-  prefixKey = "--prefix=";
+  # this doesn't seem to support configureFlags, and appends $out afterwards,
+  # so add the --without-gui in front of it
+  prefixKey = stdenv.lib.optionalString (!withGui) " --without-gui " + "--prefix=";
+
+  # in GUI mode, this shells out to itself, and tries to import python modules
+  postInstall = stdenv.lib.optionalString withGui ''
+    gappsWrapperArgs+=(--prefix PATH : "$out/bin")
+    gappsWrapperArgs+=(--prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${python3.pkgs.pygobject3}):$(toPythonPath ${python3.pkgs.pycairo})")
+  '';
 
   meta = {
     description = "Extremely fast tool to remove duplicates and other lint from your filesystem";
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 41e59162905..e04d37ba3c6 100644
--- a/pkgs/tools/misc/rpm-ostree/default.nix
+++ b/pkgs/tools/misc/rpm-ostree/default.nix
@@ -32,7 +32,7 @@
 , python
 , json_c
 , zchunk
-, libmodulemd_1
+, libmodulemd
 , utillinux
 , sqlite
 , cppunit
@@ -40,13 +40,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rpm-ostree";
-  version = "2020.1";
+  version = "2020.2";
 
   outputs = [ "out" "dev" "man" "devdoc" ];
 
   src = fetchurl {
     url = "https://github.com/coreos/${pname}/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "1xgfppq4fqqvg3cs327bckjpiz6rrn3bbbhg3q5p4j2bzsq89xiz";
+    sha256 = "nuEBEVFqr9J+Nf98GZkvNNYOtpMUjKzYrzCc1T2cR3A=";
   };
 
   nativeBuildInputs = [
@@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
     # required by vendored libdnf
     json_c
     zchunk
-    libmodulemd_1
+    libmodulemd
     utillinux # for smartcols.pc
     sqlite
     cppunit
diff --git a/pkgs/tools/misc/sdate/default.nix b/pkgs/tools/misc/sdate/default.nix
index d9439863dc3..06b5360086c 100644
--- a/pkgs/tools/misc/sdate/default.nix
+++ b/pkgs/tools/misc/sdate/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, autoreconfHook }:
 stdenv.mkDerivation rec {
   pname = "sdate";
-  version = "0.5";
+  version = "0.7";
   src = fetchurl {
     url = "https://github.com/ChristophBerg/sdate/archive/${version}.tar.gz";
-    sha256 = "0gbjl1jfxjwiiwf9rz38yp6rb1mgzhawcyg0g9byl6m4kgivf0cx";
+    sha256 = "1lfnsb8prac8rspnxcawd138jyhyivwf35rrmfvwq6dhsx23c6vy";
   };
 
   buildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/misc/shadowenv/default.nix b/pkgs/tools/misc/shadowenv/default.nix
index 7c9352d3310..9becd52273e 100644
--- a/pkgs/tools/misc/shadowenv/default.nix
+++ b/pkgs/tools/misc/shadowenv/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowenv";
-  version = "2.0.2";
+  version = "2.0.3";
 
   src = fetchFromGitHub {
     owner = "Shopify";
     repo = pname;
     rev = version;
-    sha256 = "1x5i5km6wblqbc0fibdjdlqkamqswxwhy8p6cbfz2nvcia7fgsf1";
+    sha256 = "1h8hfyxxl4bpx8azzxj0snmzccn6xjd9vc2iyp8i2ar7aiyhf5yd";
   };
 
-  cargoSha256 = "1hrsbd6025sfgnwr7smp43yzi7w2lfyfbdxhapgizrpwbq8y7xzd";
+  cargoSha256 = "1bjkwn57vm3in8lajhm7p9fjwyqhmkrb3fyq1k7lqjvrrh9jysb2";
 
   nativeBuildInputs = [ installShellFiles ];
 
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 a59a14d4b90..99de1c3d175 100644
--- a/pkgs/tools/misc/silicon/default.nix
+++ b/pkgs/tools/misc/silicon/default.nix
@@ -16,16 +16,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "silicon";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "Aloxaf";
     repo = "silicon";
     rev = "v${version}";
-    sha256 = "1avdzs3v6k4jhkadm8i8dlwg0iffqd99xqpi53smd0zgwks744l5";
+    sha256 = "1ga632c86l30n6wjj8rc3gz43v93mb7kcl9f8vhig16ycgiw8v09";
   };
 
-  cargoSha256 = "0bdb4nadrms5jq3s8pby2qfky7112ynd7vd6mw720mshqklk5zyb";
+  cargoSha256 = "0bgm29v9vmd1xcdazg1psrx6hb1z3zfzr1c4iy8j1r28csbmm6kq";
 
   buildInputs = [ llvmPackages.libclang expat freetype ]
     ++ lib.optionals stdenv.isLinux [ libxcb ]
@@ -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 eed9516d096..ab4aad48556 100644
--- a/pkgs/tools/misc/snapper/default.nix
+++ b/pkgs/tools/misc/snapper/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchFromGitHub
 , autoreconfHook, pkgconfig, docbook_xsl, libxslt, docbook_xml_dtd_45
 , acl, attr, boost, btrfs-progs, dbus, diffutils, e2fsprogs, libxml2
-, lvm2, pam, python, utillinux, fetchpatch, json_c }:
+, lvm2, pam, python, utillinux, fetchpatch, json_c, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "snapper";
-  version = "0.8.9";
+  version = "0.8.12";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "snapper";
     rev = "v${version}";
-    sha256 = "1flqhfpx9dipim22wq7wh1590ra4gydwii1jjp99pi03mdhavlbn";
+    sha256 = "0vkzncgyf1l2wcr5qd615qbd0hmclfrblg38mx52m707z3wyv88v";
   };
 
   nativeBuildInputs = [
@@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
     lvm2 pam python utillinux json_c
   ];
 
+  passthru.tests.snapper = nixosTests.snapper;
+
   patches = [
     # Don't use etc/dbus-1/system.d
     (fetchpatch {
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 6e720bf1034..a170eef35fb 100644
--- a/pkgs/tools/misc/starship/default.nix
+++ b/pkgs/tools/misc/starship/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl
+{ stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, installShellFiles
 , libiconv, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "0.41.0";
+  version = "0.44.0";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1m5pi49g3pj2qr5slyasda5xp9lz3xhz3qb9k0pa6fvcn9581r9q";
+    sha256 = "1pxrg5sfqqkvqww3fabq64j1fg03v5fj5yvm2xg2qa5n2f2qwnhi";
   };
 
-  nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
+  nativeBuildInputs = [ installShellFiles ] ++ stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
 
   buildInputs = stdenv.lib.optionals stdenv.isLinux [ openssl ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
@@ -22,14 +22,28 @@ rustPlatform.buildRustPackage rec {
       --replace "/bin/echo" "echo"
   '';
 
-  cargoSha256 = "18z1p8xj1v9w6amc52gc2vcn5f4z8k71ig20zmj005v24si9pfwf";
-  checkPhase = "cargo test -- --skip directory::home_directory --skip directory::directory_in_root";
+  postInstall = ''
+    for shell in bash fish zsh; do
+      $out/bin/starship completions $shell > starship.$shell
+      installShellCompletion starship.$shell
+    done
+  '';
+
+  cargoSha256 = "1b5gsw7jpiqjc7kbwf2kp6h6ks7jcgygrwzvn2akz86z40sskyg3";
+
+  preCheck = ''
+    substituteInPlace tests/testsuite/common.rs \
+      --replace "./target/debug/starship" "./$releaseDir/starship"
+    substituteInPlace tests/testsuite/python.rs \
+      --replace "#[test]" "#[test] #[ignore]"
+  '';
+
+  checkFlagsArray = [ "--skip=directory::home_directory" "--skip=directory::directory_in_root" ];
 
   meta = with stdenv.lib; {
     description = "A minimal, blazing fast, and extremely customizable prompt for any shell";
     homepage = "https://starship.rs";
     license = licenses.isc;
-    maintainers = with maintainers; [ bbigras davidtwco filalex77 ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ bbigras davidtwco filalex77 Frostman marsam ];
   };
 }
diff --git a/pkgs/tools/misc/system-config-printer/default.nix b/pkgs/tools/misc/system-config-printer/default.nix
index e9ee91de677..8a0c881a277 100644
--- a/pkgs/tools/misc/system-config-printer/default.nix
+++ b/pkgs/tools/misc/system-config-printer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, udev, intltool, pkgconfig, glib, xmlto, wrapGAppsHook
+{ stdenv, fetchFromGitHub, fetchpatch, udev, intltool, pkgconfig, glib, xmlto, wrapGAppsHook
 , docbook_xml_dtd_412, docbook_xsl
 , libxml2, desktop-file-utils, libusb1, cups, gdk-pixbuf, pango, atk, libnotify
 , gobject-introspection, libsecret, packagekit
@@ -24,7 +24,20 @@ stdenv.mkDerivation rec {
     substituteInPlace Makefile.am --replace /bin/bash ${bash}/bin/bash
   '';
 
-  patches = [ ./detect_serverbindir.patch ];
+  patches = [
+    ./detect_serverbindir.patch
+
+    # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=958104
+    # (Fixes will be included in next upstream release.)
+    (fetchpatch {
+      url = "https://github.com/OpenPrinting/system-config-printer/commit/cf9903466c1a2d18a701f3b5e8c7e03483e1244d.patch";
+      sha256 = "03gpav618w50q90m2kdkgwclc7fv17m493fgjd633zfavb5kqr3n";
+    })
+    (fetchpatch {
+      url = "https://github.com/OpenPrinting/system-config-printer/commit/b9289dfe105bdb502f183f0afe7a115ecae5f2af.patch";
+      sha256 = "12w47hy3ly4phh8jcqxvdnd5sgbnbp8dnscjd7d5y2i43kxj7b23";
+    })
+  ];
 
   buildInputs = [
     glib udev libusb1 cups
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..311f43fdb2a 100644
--- a/pkgs/tools/misc/tealdeer/default.nix
+++ b/pkgs/tools/misc/tealdeer/default.nix
@@ -4,7 +4,6 @@
 , pkg-config
 , installShellFiles
 , openssl
-, cacert
 , Security
 }:
 
@@ -21,8 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "0jvgcf493rmkrh85j0fkf8ffanva80syyxclzkvkrzvvwwj78b5l";
 
-  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/tmux-xpanes/default.nix b/pkgs/tools/misc/tmux-xpanes/default.nix
index 06e7980167a..6e41eba7359 100644
--- a/pkgs/tools/misc/tmux-xpanes/default.nix
+++ b/pkgs/tools/misc/tmux-xpanes/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tmux-xpanes";
-  version = "4.1.1";
+  version = "4.1.2";
 
   src = fetchFromGitHub {
     owner = "greymd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "13q02vdk229chgbn547wwv29cj4njvz02lmw840g8qmwh73qb2pi";
+    sha256 = "0vm5mi6dqdbg0b5qh4r8sr1plpc00jryd8a2qxpp3a72cigjvvf0";
   };
 
   buildInputs = [ openssl perl ];
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 20979a467c0..578d2ba42e5 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.4.0";
+  version = "5.4.0";
 
   src = fetchFromGitHub {
     owner = "r-darwish";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1n9zcz6arbp3gmn360gv0gs703ii59pfgw5gvvwvbm492g2csj3h";
+    sha256 = "1v57dqkrh67cmj1ish650z8yk737hm1qynqr5yv0vlna86gwhrhs";
   };
 
-  cargoSha256 = "08xswkwy6npmx9z8d27l83flq0haj0rnmwkcsz68mlrndz8yymlh";
+  cargoSha256 = "00vxrv8lbdwwbdbaqb4rq0w3bc8n9qwk9zgb1j656lyswib7g1d3";
 
   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/toybox/default.nix b/pkgs/tools/misc/toybox/default.nix
index ea2c07ec97b..23fdc2f7135 100644
--- a/pkgs/tools/misc/toybox/default.nix
+++ b/pkgs/tools/misc/toybox/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "toybox";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "landley";
     repo = pname;
     rev = version;
-    sha256 = "02mliqz2lry779ba6vmyaa13nxcmj91f8pyhzim9wvcnjq8vc5cj";
+    sha256 = "0cb1n0skanwwkwgzlswwhvfb4iji1bw9iqskmczlhakpw3j1yaqa";
   };
 
   buildInputs = lib.optionals enableStatic [ stdenv.cc.libc stdenv.cc.libc.static ];
diff --git a/pkgs/tools/misc/ttwatch/default.nix b/pkgs/tools/misc/ttwatch/default.nix
index afd5139565c..8788608876e 100644
--- a/pkgs/tools/misc/ttwatch/default.nix
+++ b/pkgs/tools/misc/ttwatch/default.nix
@@ -1,19 +1,21 @@
-{ stdenv, fetchFromGitHub, cmake, perl, openssl, curl, libusb1
+{ stdenv, fetchFromGitHub
+, cmake, perl, pkgconfig
+, openssl, curl, libusb1, protobufc
 , enableUnsafe ? false }:
 
 stdenv.mkDerivation {
   pname = "ttwatch";
-  version = "2018-12-04";
+  version = "2020-02-05";
 
   src = fetchFromGitHub {
     owner = "ryanbinns";
     repo = "ttwatch";
-    rev = "eeb4e19bf7ca7ca2cee7f5fbeb483b27198d86a1";
-    sha256 = "18384apdkq35120cgmda686d293354aibwcq2hwhvvjmnq49fnzr";
+    rev = "bfdf1372515574e1fb3871dc1039f8d8a5dbdada";
+    sha256 = "07nd4dbkchxy8js1h1f6pzn63pls2afww97wyiiw6zid43mpqyg4";
   };
 
-  nativeBuildInputs = [ cmake perl ];
-  buildInputs = [ openssl curl libusb1 ];
+  nativeBuildInputs = [ cmake perl pkgconfig ];
+  buildInputs = [ openssl curl libusb1 protobufc ];
 
   cmakeFlags = stdenv.lib.optional enableUnsafe [ "-Dunsafe=on" ];
 
diff --git a/pkgs/tools/misc/txt2man/default.nix b/pkgs/tools/misc/txt2man/default.nix
index c7d8837f823..ded409754bc 100644
--- a/pkgs/tools/misc/txt2man/default.nix
+++ b/pkgs/tools/misc/txt2man/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "txt2man";
-  version = "1.6.0";
+  version = "1.7.1";
 
   src = fetchurl {
     url = "https://github.com/mvertes/txt2man/archive/${pname}-${version}.tar.gz";
-    sha256 = "168cj96974n2z0igin6j1ic1m45zyic7nm5ark7frq8j78rrx4zn";
+    sha256 = "0ka3krmblsprv0v6h6wnm8lv08w30z0ynfnbwns6alks5gx1p6sd";
   };
 
   preConfigure = ''
diff --git a/pkgs/tools/misc/uhubctl/default.nix b/pkgs/tools/misc/uhubctl/default.nix
index 0ed5d97ad7b..49da81d6094 100644
--- a/pkgs/tools/misc/uhubctl/default.nix
+++ b/pkgs/tools/misc/uhubctl/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "uhubctl";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "mvp";
     repo = "uhubctl";
     rev = "refs/tags/v${version}";
-    sha256 = "1cgmwsf68g49k6q4jvz073bpjhg5p73kk1a4kbgkxmvx01gmbcmq";
+    sha256 = "0pimhw2a2wfg7nh1ahsxmzkb0j6bbncwdqsvyp8l23zhs5kx7wm9";
   };
 
   buildInputs = [ libusb1 ];
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/unicode/default.nix b/pkgs/tools/misc/unicode/default.nix
index c4ae9cc5e36..b83dd17d0bc 100644
--- a/pkgs/tools/misc/unicode/default.nix
+++ b/pkgs/tools/misc/unicode/default.nix
@@ -1,26 +1,32 @@
-{ stdenv, fetchFromGitHub, fetchurl, python3Packages }:
+{ stdenv, fetchFromGitHub, fetchurl, python3Packages, installShellFiles }:
 
 python3Packages.buildPythonApplication rec {
   pname = "unicode";
-  version = "2.6";
+  version = "2.7";
 
   src = fetchFromGitHub {
     owner = "garabik";
     repo = "unicode";
     rev = "v${version}";
-    sha256 = "17hh4nwl5njsh7lnff583j2axn6rfvfbiqwp72n7vcsgkiszw4kg";
+    sha256 = "15d9yvarxsiy0whx1mxzsjnnkrjdm3ga4qv2yy398mk0jh763q9v";
   };
 
   ucdtxt = fetchurl {
-    url = "http://www.unicode.org/Public/11.0.0/ucd/UnicodeData.txt";
-    sha256 = "16b0jzvvzarnlxdvs2izd5ia0ipbd87md143dc6lv6xpdqcs75s9";
+    url = "https://www.unicode.org/Public/13.0.0/ucd/UnicodeData.txt";
+    sha256 = "1fz8fcd23lxyl97ay8h42zvkcgcg8l81b2dm05nklkddr2zzpgxx";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+
   postFixup = ''
     substituteInPlace "$out/bin/.unicode-wrapped" \
       --replace "/usr/share/unicode/UnicodeData.txt" "$ucdtxt"
   '';
 
+  postInstall = ''
+    installManPage paracode.1 unicode.1
+  '';
+
   meta = with stdenv.lib; {
     description = "Display unicode character properties";
     homepage = "https://github.com/garabik/unicode";
diff --git a/pkgs/tools/misc/up/default.nix b/pkgs/tools/misc/up/default.nix
index 1e3378305d9..b3d275d3081 100644
--- a/pkgs/tools/misc/up/default.nix
+++ b/pkgs/tools/misc/up/default.nix
@@ -4,6 +4,8 @@ buildGoModule rec {
   pname = "up";
   version = "0.3.2";
 
+  patches = [ ./gomod.patch ];
+
   src = fetchFromGitHub {
     owner = "akavel";
     repo = "up";
@@ -11,7 +13,9 @@ buildGoModule rec {
     sha256 = "1psixyymk98z52yy92lwb75yfins45dw6rif9cxwd7yiascwg2if";
   };
 
-  modSha256 = "0nfs190rzabphhhyacypz3ic5c4ajlqpx9jiiincs0vxfkmfwnjd";
+  vendorSha256 = "1h3w4i7dyh6yagqmdclvflfq6fx0z880jdnpf28assv7fxd9rjsx";
+
+  doCheck = false;
 
   meta = with lib; {
     description = "Ultimate Plumber is a tool for writing Linux pipes with instant live preview";
diff --git a/pkgs/tools/misc/up/gomod.patch b/pkgs/tools/misc/up/gomod.patch
new file mode 100644
index 00000000000..f894f14d21f
--- /dev/null
+++ b/pkgs/tools/misc/up/gomod.patch
@@ -0,0 +1,23 @@
+diff --git a/go.mod b/go.mod
+index ecbfe90..56a1409 100644
+--- a/go.mod
++++ b/go.mod
+@@ -1,11 +1,14 @@
+ module github.com/akavel/up
+ 
++go 1.14
++
+ require (
+-	github.com/gdamore/encoding v0.0.0-20151215212835-b23993cbb635
++	github.com/gdamore/encoding v0.0.0-20151215212835-b23993cbb635 // indirect
+ 	github.com/gdamore/tcell v0.0.0-20180924055237-493f3b46b3c2
+-	github.com/lucasb-eyer/go-colorful v0.0.0-20170903184257-231272389856
++	github.com/lucasb-eyer/go-colorful v0.0.0-20170903184257-231272389856 // indirect
+ 	github.com/mattn/go-isatty v0.0.3
+-	github.com/mattn/go-runewidth v0.0.2
++	github.com/mattn/go-runewidth v0.0.2 // indirect
+ 	github.com/spf13/pflag v1.0.3
+-	golang.org/x/text v0.0.0-20171214130843-f21a4dfb5e38
++	golang.org/x/sys v0.0.0-20200501145240-bc7a7d42d5c3 // indirect
++	golang.org/x/text v0.0.0-20171214130843-f21a4dfb5e38 // indirect
+ )
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/vdirsyncer/stable.nix b/pkgs/tools/misc/vdirsyncer/stable.nix
deleted file mode 100644
index ada70678e34..00000000000
--- a/pkgs/tools/misc/vdirsyncer/stable.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ lib, python3Packages, fetchpatch }:
-
-# Packaging documentation at:
-# https://github.com/pimutils/vdirsyncer/blob/0.16.7/docs/packaging.rst
-python3Packages.buildPythonApplication rec {
-  version = "0.16.7";
-  pname = "vdirsyncer";
-
-  src = python3Packages.fetchPypi {
-    inherit pname version;
-    sha256 = "6c9bcfb9bcb01246c83ba6f8551cf54c58af3323210755485fc23bb7848512ef";
-  };
-
-  propagatedBuildInputs = with python3Packages; [
-    click click-log click-threading
-    requests_toolbelt
-    requests
-    requests_oauthlib # required for google oauth sync
-    atomicwrites
-  ];
-
-  nativeBuildInputs = with python3Packages; [ setuptools_scm ];
-
-  checkInputs = with python3Packages; [ hypothesis pytest 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' ""
-  '';
-
-  checkPhase = ''
-    make DETERMINISTIC_TESTS=true PYTEST_ARGS="--deselect=tests/system/cli/test_sync.py::test_verbosity" test
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/pimutils/vdirsyncer";
-    description = "Synchronize calendars and contacts";
-    license = licenses.mit;
-    maintainers = with maintainers; [ loewenheim ];
-  };
-}
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 38fedbbf099..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 = "20200303";
+  version = "20200610";
 
   src = fetchurl {
     urls = [
       "https://invisible-mirror.net/archives/${pname}/${pname}-${version}.tgz"
       "ftp://ftp.invisible-island.net/${pname}/${pname}-${version}.tgz"
     ];
-    sha256 = "1g27yp37kh57hmwicw3ndnsapsbqzk2cnjccmvyj4zw2z0l5iaj9";
+    sha256 = "0181lk999gfqk8pkd4yx0qrz9r3k9a0z0i50wcayp7z1n1ivqllb";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/watchexec/default.nix b/pkgs/tools/misc/watchexec/default.nix
index 1c626785483..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.12.0";
+  version = "1.14.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "03s9nsss4895x4lp90y65jajavk8c2nj1jjnmx0vbbwl210ghlv1";
+    sha256 = "0nvd8x60nkk8izqy8m8m1fi0x48s9sjh4zfl8d2ig46lqc8n5cpm";
   };
 
-  cargoSha256 = "0p20d7paiafvl4k9iiazbgq75wk7k42sz2h1y5lalq16f5rp6dbp";
+  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/woeusb/default.nix b/pkgs/tools/misc/woeusb/default.nix
index 991ab622490..4c235b4866f 100644
--- a/pkgs/tools/misc/woeusb/default.nix
+++ b/pkgs/tools/misc/woeusb/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, autoreconfHook, makeWrapper
-, coreutils, dosfstools, findutils, gawk, gnugrep, grub2_light, ncurses, ntfs3g, parted, utillinux, wget
+, coreutils, dosfstools, findutils, gawk, gnugrep, grub2_light, ncurses, ntfs3g, parted, p7zip, utillinux, wget
 , wxGTK30 }:
 
 stdenv.mkDerivation rec {
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     # should be patched with a less useless default PATH, but for now
     # we add everything we need manually.
     wrapProgram "$out/bin/woeusb" \
-      --set PATH '${stdenv.lib.makeBinPath [ coreutils dosfstools findutils gawk gnugrep grub2_light ncurses ntfs3g parted utillinux wget ]}'
+      --set PATH '${stdenv.lib.makeBinPath [ coreutils dosfstools findutils gawk gnugrep grub2_light ncurses ntfs3g parted utillinux wget p7zip ]}'
   '';
 
   doInstallCheck = true;
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/yle-dl/default.nix b/pkgs/tools/misc/yle-dl/default.nix
index d3374302546..00624a482c8 100644
--- a/pkgs/tools/misc/yle-dl/default.nix
+++ b/pkgs/tools/misc/yle-dl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, rtmpdump, php, pythonPackages, ffmpeg }:
+{ stdenv, fetchFromGitHub, rtmpdump, php, pythonPackages, ffmpeg_3 }:
 
 pythonPackages.buildPythonApplication rec {
   pname = "yle-dl";
@@ -12,7 +12,7 @@ pythonPackages.buildPythonApplication rec {
   };
 
   propagatedBuildInputs = with pythonPackages; [
-    lxml pyamf pycrypto requests future ffmpeg setuptools
+    lxml pyamf pycrypto requests future ffmpeg_3 setuptools
   ];
   pythonPath = [ rtmpdump php ];
 
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 4b399abb61e..07dae0b9600 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchurl, buildPythonPackage
-, zip, ffmpeg_4, rtmpdump, phantomjs2, atomicparsley, pycryptodome, pandoc
+, zip, ffmpeg, rtmpdump, phantomjs2, atomicparsley, pycryptodome, pandoc
 # Pandoc is required to build the package's man page. Release tarballs contain a
 # formatted man page already, though, it will still be installed. We keep the
 # manpage argument in place in case someone wants to use this derivation to
@@ -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.05.08";
+  version = "2020.07.28";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "16zxa8ss2rka7cvkqyi67s8i1h9f4nxx88w9vjbxchbga6w0scc6";
+    sha256 = "1if7xyi7g9rpni1jbs7gv5m12s34qdb15dpfbbjn8120h16y7cqz";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   makeWrapperArgs = let
       packagesToBinPath =
         [ atomicparsley ]
-        ++ lib.optional ffmpegSupport ffmpeg_4
+        ++ lib.optional ffmpegSupport ffmpeg
         ++ lib.optional rtmpSupport rtmpdump
         ++ lib.optional phantomjsSupport phantomjs2;
     in [ ''--prefix PATH : "${lib.makeBinPath packagesToBinPath}"'' ];
diff --git a/pkgs/tools/misc/ytree/default.nix b/pkgs/tools/misc/ytree/default.nix
new file mode 100644
index 00000000000..0400e59d22f
--- /dev/null
+++ b/pkgs/tools/misc/ytree/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetchurl
+, ncurses
+, readline
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ytree";
+  version = "2.02";
+
+  src = fetchurl {
+    url = "https://han.de/~werner/${pname}-${version}.tar.gz";
+    sha256 = "1v70l244rc22f20gac1zha1smrhqkag45jn0iwgcyngfdfml3gz5";
+  };
+
+  buildInputs = [
+    ncurses readline
+  ];
+
+  # don't save timestamp, in order to improve reproducibility
+  postPatch = ''
+    substituteInPlace Makefile --replace 'gzip' 'gzip -n'
+  '';
+
+  preBuild = ''
+    makeFlagsArray+=(CC="cc"
+                     ADD_CFLAGS=""
+                     COLOR="-DCOLOR_SUPPORT"
+                     CLOCK="-DCLOCK_SUPPORT"
+                     READLINE="-DREADLINE_SUPPORT"
+                     CFLAGS="-D_GNU_SOURCE -DWITH_UTF8 $(ADD_CFLAGS) $(COLOR) $(CLOCK) $(READLINE)"
+                     LDFLAGS="-lncursesw -lreadline")
+  '';
+
+  installFlags = [ "DESTDIR=${placeholder "out"}" ];
+
+  preInstall = ''
+    mkdir -p $out/bin $out/share/man/man1
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A curses-based file manager similar to DOS Xtree(TM)";
+    homepage = "https://www.han.de/~werner/ytree.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; unix;
+  };
+}
+# TODO: X11 support
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/z-lua/default.nix b/pkgs/tools/misc/z-lua/default.nix
index 7d8e760a8d9..59149506e6c 100644
--- a/pkgs/tools/misc/z-lua/default.nix
+++ b/pkgs/tools/misc/z-lua/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "z-lua";
-  version = "1.8.4";
+  version = "1.8.7";
 
   src = fetchFromGitHub {
     owner = "skywind3000";
     repo = "z.lua";
     rev = version;
-    sha256 = "1whh2gzxhx4c24mwh5yifnpah56bzb6v7barp727pjw4whpflg1s";
+    sha256 = "14n1abv7gh4zajq471bgzpcv8l1159g00h9x83h719i9kxxsa2ba";
   };
 
   dontBuild = true;
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 d2abd143ce4..3e4cbfd8433 100644
--- a/pkgs/tools/misc/zoxide/default.nix
+++ b/pkgs/tools/misc/zoxide/default.nix
@@ -1,31 +1,34 @@
 { lib
 , fetchFromGitHub
 , rustPlatform
+, withFzf ? true
 , fzf
 }:
-
-rustPlatform.buildRustPackage rec {
+let
+  version = "0.4.3";
+in
+rustPlatform.buildRustPackage {
   pname = "zoxide";
-  version = "0.4.0";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "ajeetdsouza";
     repo = "zoxide";
     rev = "v${version}";
-    sha256 = "1qkvmjrkcivfzbm6swl5lgvpqz9av9jxcn9i8ms3wz4vfsibmlxv";
+    sha256 = "1ghdal6pqkp56rqawhj26ch1x4cvnjj032xz3626aiddqgn134zj";
   };
 
-  buildInputs = [
-    fzf
-  ];
+  postPatch = lib.optionalString withFzf ''
+    substituteInPlace src/fzf.rs \
+      --replace '"fzf"' '"${fzf}/bin/fzf"'
+  '';
 
-  cargoSha256 = "1w921f7b6kzc1mjzff1bcs3mg4cp9h48698w2zlv5jzjs7nwgb8n";
+  cargoSha256 = "0klnjmda77bq9i9f0rz48jzaw4rcf7hafcjjpb0i570d7hlxnwsr";
 
   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/acme-client/default.nix b/pkgs/tools/networking/acme-client/default.nix
index 06c2898248d..00f8778cafd 100644
--- a/pkgs/tools/networking/acme-client/default.nix
+++ b/pkgs/tools/networking/acme-client/default.nix
@@ -1,7 +1,5 @@
 { stdenv
-, fetchFromGitHub
-, autoreconfHook
-, bison
+, fetchurl
 , apple_sdk ? null
 , libbsd
 , libressl
@@ -12,22 +10,20 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "acme-client";
-  version = "0.2.5";
+  version = "1.0.1";
 
-  src = fetchFromGitHub {
-    owner = "graywolf";
-    repo = "acme-client-portable";
-    rev = "v${version}";
-    sha256 = "1d9yk87nj5gizkq26m4wqfh4xhlrn5xlfj7mfgvrpsdiwibqxrrw";
+  src = fetchurl {
+    url = "https://data.wolfsden.cz/sources/acme-client-${version}.tar.xz";
+    sha256 = "0gmdvmyw8a61w08hrxllypf7rpnqg0fxipbk3zmvsxj7m5i6iysj";
   };
 
-  nativeBuildInputs = [ autoreconfHook bison pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libbsd libressl ] ++ optional stdenv.isDarwin apple_sdk.sdk;
 
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = {
-    homepage = "https://github.com/graywolf/acme-client-portable";
+    homepage = "https://sr.ht/~graywolf/acme-client-portable/";
     description = "Secure ACME/Let's Encrypt client";
     platforms = platforms.unix;
     license = licenses.isc;
diff --git a/pkgs/tools/networking/airfield/node-packages.nix b/pkgs/tools/networking/airfield/node-packages.nix
index 9a246fa319b..66e70162675 100644
--- a/pkgs/tools/networking/airfield/node-packages.nix
+++ b/pkgs/tools/networking/airfield/node-packages.nix
@@ -10,7 +10,7 @@ let
       version = "6.12.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz";
-        sha512 = "D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==";
+        sha512 = "0gkcic96nmpcq311i2jfwbaa961x0mj7mkl7iwk213hyn4jgxbl0a472lcpg9dr7ybacn3i45fj6q0dz3g8rqmva7r14i9la240ba0g";
       };
     };
     "asn1-0.2.4" = {
@@ -19,7 +19,7 @@ let
       version = "0.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
-        sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
+        sha512 = "1v2z1ll0l8rif8hh0d03jc49kz3p8hym63q8ixbas48w4a8akl413hwn08nx83m89sj3mxl06aa0grp7n8hj6hcbsb2k3fhj913674g";
       };
     };
     "assert-plus-1.0.0" = {
@@ -55,7 +55,7 @@ let
       version = "1.9.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz";
-        sha512 = "wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==";
+        sha512 = "2x4b6c0ny64yv6ljfs6sv82akh200klmnh1m1i18hdj28ksxkr9c0szphnwcasy3g5y3l1wn858wcxnc2gi9q5wql8s678fc61xbhf0";
       };
     };
     "bcrypt-pbkdf-1.0.2" = {
@@ -100,7 +100,7 @@ let
       version = "1.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
-        sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
+        sha512 = "1v09nkip7zpn3k3prkkg53w331rhczpfgcqb0q42i97nafra43l2khl5zvhd4ar0qmh145nmw7944jy8p108ny0xpgy29gf2wqph0qm";
       };
     };
     "commander-0.6.1" = {
@@ -172,7 +172,7 @@ let
       version = "4.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz";
-        sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==";
+        sha512 = "1kmf9j5pka2rsljg5x6shniwmgs9444ksgdn0d3fjmis7yghxxn2zj526s36ip8rmpfni9zpj8z74w7irax32a67j59xw38wk6hi055";
       };
     };
     "delayed-stream-1.0.0" = {
@@ -190,7 +190,7 @@ let
       version = "1.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz";
-        sha512 = "OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==";
+        sha512 = "2spb0s12jkarfiydj4sj4iw1yfjzaplakzw7bma0pwnbra23l1b85rsyzc25szlfdl3bm5bb42fmy4xhf1xdpxaywmwh6aa4swwzz1r";
       };
     };
     "ecc-jsbn-0.1.2" = {
@@ -208,7 +208,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
-        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
+        sha512 = "3zad2109w3q3gh46s5msrnzfy2nl581sqpy20b52fs7v5pdjh3irpg7szl3xvh4sfy63218jy8ry6qlnir3baxbbfrb03swkw5swfky";
       };
     };
     "extsprintf-1.3.0" = {
@@ -226,7 +226,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
-        sha512 = "8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==";
+        sha512 = "1j7wq3vqvfgnpd2sjblnlgryxlic2fsy343fx8w4ywb2mngj1w5afq8fmly8cp9fi66dhz1fhcfpn23g5zasnzs6n1snb83qkkilhgi";
       };
     };
     "fast-json-stable-stringify-2.1.0" = {
@@ -235,7 +235,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 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
+        sha512 = "0gz06zkjlqc4r59ka14n3vwqjdgn40zd8r115ql3rkwqb7j42frmnsj3axr7p2md8ik52nqjn3myyv8ddavdhl4cq3xz4wbbz07y5wn";
       };
     };
     "forever-agent-0.6.1" = {
@@ -253,7 +253,7 @@ let
       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==";
+        sha512 = "0jj3hgqp9pmxmfavx6rvdfl3r4yf98clpsarqadz3hq0dxhjlh2ppd9x8bvmaq3nwjdqpdvqx25pwyin4ipixhgsn7s3p9fcc3wllnn";
       };
     };
     "formidable-1.0.11" = {
@@ -298,7 +298,7 @@ let
       version = "5.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
-        sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
+        sha512 = "3kaldgfsh3lfvgvw31s8b7q345zf7ixjahllncdckcw6qfs3gnbsamdxgs9kfigq7rwmja7v51ghh7y0rsp6q7jmvmbydhh645wxnxh";
       };
     };
     "http-signature-1.2.0" = {
@@ -352,7 +352,7 @@ let
       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==";
+        sha512 = "1bbgxs4777gn3q3yxi0n792cgz9pimf85pypr0w4wzpb22nr8fl9xi98pkcqd3n4fn7lnzffpq7qwpcl4dqc15py19lwqa2jwgw5dn5";
       };
     };
     "json-stringify-safe-5.0.1" = {
@@ -397,7 +397,7 @@ let
       version = "1.43.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz";
-        sha512 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==";
+        sha512 = "36x3p6lll5v1g7na92kbba0bpcl36i1argsqn8iy4mgz3zh3llnqhzhfw0l26jqcb0mh9rhhmrx718kvqzchga6y79qdg9884c6r5zv";
       };
     };
     "mime-types-2.1.26" = {
@@ -406,7 +406,7 @@ let
       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==";
+        sha512 = "1cxsgrndjg6jyfqzm74hv6cmy9lil52f1kzkq2niknaiqz20p3yiw0fpgsyld2zrbxr9abpdabz1q6nqa50xr9a0cmbjbi0cqymlnnk";
       };
     };
     "mkdirp-0.3.3" = {
@@ -424,7 +424,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
-        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+        sha512 = "3dqfiiw6nxvvi24fndbzlccnjcas99bsd1kz5m2r78lzgpp6vx57jzbmxq3k1m7bsw88rwra0n4848l720fxxn5x20djck3wp3hysdh";
       };
     };
     "oauth-sign-0.9.0" = {
@@ -433,7 +433,7 @@ let
       version = "0.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
-        sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
+        sha512 = "1jz644r7ybsq688ifahm64ih3ljqjjskm533bgir20pvc350f9cl0z162scih0r1idx8lpw5f8hxa2pkf0lhbdhr5y6ak2ga5863v3x";
       };
     };
     "pause-0.0.1" = {
@@ -460,7 +460,7 @@ let
       version = "1.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz";
-        sha512 = "5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==";
+        sha512 = "0whj0m29370fn3imrlj2dw0xmr33j2gn30kn96xpxckz7i1b21pj6vlgsn4ggxl79mz2ckng5mdxbkczcwkjry497s8xkgw7c815nz4";
       };
     };
     "punycode-2.1.1" = {
@@ -469,7 +469,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
-        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
+        sha512 = "381vqgh5xkqzrr6cxbzfykgnnk83m7qgpx3wjwj1hddn3sg2aibjxyr30rajpgv4js0cqknrbzwbfk5ryhiiyigzfjrk3zysy6i26sx";
       };
     };
     "qs-0.5.1" = {
@@ -487,7 +487,7 @@ let
       version = "6.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
-        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
+        sha512 = "0c46ws0x9g3mmkgfmvd78bzvnmv2b8ryg4ah6jvyyqgjv9v994z7xdyvsc4vg9sf98gg7phvy3q1ahgaj5fy3dwzf2rki6bixgl15ip";
       };
     };
     "range-parser-0.0.4" = {
@@ -505,7 +505,7 @@ let
       version = "1.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/redis-commands/-/redis-commands-1.5.0.tgz";
-        sha512 = "6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg==";
+        sha512 = "0kdmbh04hif6g8qr3zcwjkjg1v3rjgss0dq3sy144l5ja5vp4ndb5hdn2acrx57w01swbwpkskmy788lr2nxdq0g46azqsrmad5mb78";
       };
     };
     "redis-errors-1.2.0" = {
@@ -532,7 +532,7 @@ let
       version = "5.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==";
+        sha512 = "1pb164cfv1ip3s1rp008433rak88mdcch24q84cbfndg0dzky2ij8vjvsiyx2qf3rg4dgs82zk7vnrd9hkqqdcvp4lbk5ymcr8314bx";
       };
     };
     "safer-buffer-2.1.2" = {
@@ -541,7 +541,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+        sha512 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1";
       };
     };
     "send-0.1.0" = {
@@ -559,7 +559,7 @@ let
       version = "1.16.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
-        sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
+        sha512 = "0i4jnrxh6i17qij2vfki7qxmk435cnacvg363qg0hya5incfj57akgbas8zcx2cl5pds9jfgfyhqm8wlqz6damsg059gymv99aylx8x";
       };
     };
     "tough-cookie-2.5.0" = {
@@ -568,7 +568,7 @@ let
       version = "2.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
-        sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
+        sha512 = "3xgcny117pqhfncr4gbmagzlnjiqqgq0lrvmljdfcdy64nc0xjfcbf1r08dmp1v1m3s51kq0yxc18nl3j9lbpr5bp5lgmi6719yqlly";
       };
     };
     "tunnel-agent-0.6.0" = {
@@ -595,7 +595,7 @@ let
       version = "1.9.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/underscore/-/underscore-1.9.2.tgz";
-        sha512 = "D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ==";
+        sha512 = "0fpcm4n2qlycl50j6k3fv7baybnzf1wbsm2ng0vwfsdi40fyvsvvl0k1i427hgpknhj5hbcwff3swckw6wx96kw4dgwvldi56v6lzqg";
       };
     };
     "uri-js-4.2.2" = {
@@ -604,7 +604,7 @@ let
       version = "4.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
-        sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==";
+        sha512 = "2fz60s71ghl56ddfiiaws81xpiidlbjk69jyjmahz190d2advy9zdbcwh5if4rgg5hxdbfxhkwiipjrnjy8w834bxsmzambd2p4b3r9";
       };
     };
     "uuid-3.4.0" = {
@@ -613,7 +613,7 @@ let
       version = "3.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
-        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+        sha512 = "3y9pcli1v8nqryqd2c4pxj9kcv92mjc22z4smg08pdjzrbwda19xmjbzms1dwr04995h4carz9s8mldbiqb8708694lwr501r3q6d0y";
       };
     };
     "verror-1.10.0" = {
@@ -706,7 +706,7 @@ in
     version = "3.0.2";
     src = fetchurl {
       url = "https://registry.npmjs.org/redis/-/redis-3.0.2.tgz";
-      sha512 = "PNhLCrjU6vKVuMOyFu7oSP296mwBkcE6lrAjruBYG5LgdSqtRBoVQIylrMyVZD/lkF24RSNNatzvYag6HRBHjQ==";
+      sha512 = "26lf40x7al63vywd96j6idqbn8fagv4jp6ar9cc80aili5d59sy14hvb3haw8xhjqxc3481dkmbvza8x3p1dcn3p2az5snlp054pn1w";
     };
     dependencies = [
       sources."denque-1.4.1"
@@ -730,7 +730,7 @@ in
     version = "4.0.4";
     src = fetchurl {
       url = "https://registry.npmjs.org/connect-redis/-/connect-redis-4.0.4.tgz";
-      sha512 = "aXk7btMlG0J5LqtPNRpFKa5fglzlTzukYNx+Fq8cghbUIQHN/gyK9c3+b0XEROMwiSxMoZDADqjp9tdpUoZLAg==";
+      sha512 = "014p1jjd7bzdsd81v0918ac5j4k1qs4qi2nzzndyn50rznd04hx85l23jpicznwc2j3nkz5bj15zbi98ld3akxb5rwl46r5sdp3nyb9";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -748,7 +748,7 @@ in
     version = "3.2.0";
     src = fetchurl {
       url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz";
-      sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
+      sha512 = "1kwiqca4ql149ywfzbp1lpmqixnh1y9i5aizcd0fvndrq9sn31j0cr38wdgbr5xqvlxgjfs3jwryg7ddnwc8n1b5nlksfjmj48sc7ad";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -766,7 +766,7 @@ in
     version = "2.88.2";
     src = fetchurl {
       url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz";
-      sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==";
+      sha512 = "23hm71jcxrwvp33azx8mx3w6dg21fr4w6lwvkvxyf6ckvhk3hz9dk8lzgkbiyzfl9ylhp4n807xp88ppq4gj5h07cmrgxf6nwxfvjrj";
     };
     dependencies = [
       sources."ajv-6.12.0"
diff --git a/pkgs/tools/networking/amass/default.nix b/pkgs/tools/networking/amass/default.nix
index 116b0b25306..b690b63ef4b 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.6.0";
+  version = "3.8.2";
 
   src = fetchFromGitHub {
     owner = "OWASP";
     repo = "Amass";
     rev = "v${version}";
-    sha256 = "05rh61dx4f9kv5p8sahhwwiyivwq438fl30j9d97i4sagvb5jvvm";
+    sha256 = "0hm5h8glva0d9mj870j56bc721w4br7dzwhns096rgzyv93m7rx0";
   };
 
-  modSha256 = "1k7yd2lh6hwz3qm6ywrlr1qw0asqwdgrpj594v1gvav426yqyr6s";
+  vendorSha256 = "1g3jbdx7m5m56ifcc1p6hgz2wzmb287cyyaiz03ffdvwd3k73k4j";
+
+  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/axel/default.nix b/pkgs/tools/networking/axel/default.nix
index 3f5a7612d16..5cd8e41f70c 100644
--- a/pkgs/tools/networking/axel/default.nix
+++ b/pkgs/tools/networking/axel/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "axel";
-  version = "2.17.8";
+  version = "2.17.9";
 
   src = fetchFromGitHub {
     owner = "axel-download-accelerator";
     repo = pname;
     rev = "v${version}";
-    sha256 = "05hispf152ywlf7i29cc7alxal8lc7lfzx82r42zncdb9v78pdc8";
+    sha256 = "1bhzgvvqcwa5bd487400hg1nycvw8qqxzbzvq5ywyz5d9j12hdrd";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig autoconf-archive txt2man ];
diff --git a/pkgs/tools/networking/bandwhich/default.nix b/pkgs/tools/networking/bandwhich/default.nix
index 1a52a7f8987..31efdaddb74 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.14.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "imsnif";
     repo = pname;
     rev = version;
-    sha256 = "09lyl9cpb5li7kyh0y78lhgvvb24ssfjmkz65xzbgm5jyrz8rmr4";
+    sha256 = "074bgdgv6flg5xjzk7sxgqsy89ygnx7swhaqz75vvrcpx9ldysvz";
   };
 
-  cargoSha256 = "0m57cdbghzzjyxr6c0diyrfsjqip1dnqsh0zlapv8myizxy4rrzy";
+  cargoSha256 = "0aq3k64g04l03h42cnnpljqffkkl1gdg6r5rqi237h0jrhci8c7w";
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
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/bully/default.nix b/pkgs/tools/networking/bully/default.nix
index c9512392347..4117932550f 100644
--- a/pkgs/tools/networking/bully/default.nix
+++ b/pkgs/tools/networking/bully/default.nix
@@ -1,33 +1,32 @@
-{ stdenv, fetchFromGitHub, openssl, libpcap }:
+{ stdenv, fetchFromGitHub, libpcap }:
 
 stdenv.mkDerivation rec {
-
   pname = "bully";
-  version = "1.1";
+  version = "1.4-00";
 
   src = fetchFromGitHub {
-    sha256 = "1qvbbf72ryd85bp4v62fk93ag2sn25rj7kipgagbv22hnq8yl3zd";
-    rev = version;
+    owner = "kimocoder";
     repo = "bully";
-    owner = "aanarchyy";
+    rev = version;
+    sha256 = "1n2754a5z44g414a0hj3cmi9q5lwnzyvmvzskrj2nci8c8m2kgnf";
   };
-  buildInputs = [ openssl libpcap ];
 
-  buildPhase = ''
-    cd src
-    make
-  '';
+  buildInputs = [ libpcap ];
+
+  enableParallelBuilding = true;
+
+  sourceRoot = "./source/src";
 
   installPhase = ''
-    mkdir -p $out/bin
-    mv bully $out/bin
+    install -Dm555 -t $out/bin bully
+    install -Dm444 -t $out/share/doc/${pname} ../*.md
   '';
 
   meta = with stdenv.lib; {
     description = "Retrieve WPA/WPA2 passphrase from a WPS enabled access point";
-    homepage = "https://github.com/aanarchyy/bully";
-    maintainers = with maintainers; [ edwtjo ];
+    homepage = "https://github.com/kimocoder/bully";
     license = licenses.gpl3;
+    maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/cassowary/default.nix b/pkgs/tools/networking/cassowary/default.nix
index 6156f43b04b..962a46cb27f 100644
--- a/pkgs/tools/networking/cassowary/default.nix
+++ b/pkgs/tools/networking/cassowary/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "cassowary";
-  version = "0.7.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "rogerwelin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0p5vcs25h5nj36dm9yjmdjymcq0zldm3zlqfppxcjx862h48k8zj";
+    sha256 = "161wzcdq7kpny6fzxsqk2ivnah0xwmh2knv37jn0x18lclga1k9s";
   };
 
-  modSha256 = "1iylnnmj5slji89pkb3shp4xqar1zbpl7bzwddbzpp8y52fmsv1c";
+  vendorSha256 = "1qgilmkai9isbbg4pzqic6i8v5z8cay0ilw1gb69z4a6f2q4zhkp";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
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/cjdns/default.nix b/pkgs/tools/networking/cjdns/default.nix
index 9a74344d293..13388d33779 100644
--- a/pkgs/tools/networking/cjdns/default.nix
+++ b/pkgs/tools/networking/cjdns/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, nodejs, which, python27, utillinux, nixosTests }:
 
-let version = "20.6"; in
-stdenv.mkDerivation {
-  name = "cjdns-"+version;
+stdenv.mkDerivation rec {
+  pname = "cjdns";
+  version = "20.7";
 
   src = fetchFromGitHub {
     owner = "cjdelisle";
     repo = "cjdns";
     rev = "cjdns-v${version}";
-    sha256 = "1d5rrnqb5dcmm5cg2ky1cgxz6ncb23n1j797j9zzw6xxdvkf3kgi";
+    sha256 = "09gpqpzc00pp3cj7lyq9876p7is4bcndpdi5knqbv824vk4bj3k0";
   };
 
   buildInputs = [ which python27 nodejs ] ++
diff --git a/pkgs/tools/networking/clash/default.nix b/pkgs/tools/networking/clash/default.nix
index f9c1ee4bc31..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 = "0.20.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "Dreamacro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1nb4hl9x2lj0hy8byz14c2xn6yhrb6pqmhzl002k83qd3zrc6s3p";
+    sha256 = "0cbbih035h40hhl7ykmyh9q9nzdqq1p8hmvzd4358cigz1gjc3j2";
   };
 
-  goPackagePath = "github.com/Dreamacro/clash";
-  modSha256 = "113ynl1f01ihmbc376rb421rrjlxxbc8p9fhxrvpxcsm10rjky8w";
+  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/connman/connmanui/default.nix b/pkgs/tools/networking/connman/connmanui/default.nix
deleted file mode 100644
index 51c97e6cb7e..00000000000
--- a/pkgs/tools/networking/connman/connmanui/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, fetchgit, autoconf, automake, libtool, glib, gtk3, dbus, pkgconfig, file, intltool, connman }:
-
-stdenv.mkDerivation rec {
-  pname = "connmanui";
-  rev = "fce0af94e121bde77c7fa2ebd6a319f0180c5516";
-  version = "22062015-${rev}";
-
-  src = fetchgit {
-    inherit rev;
-    url = "git://github.com/tbursztyka/connman-ui.git";
-    sha256 = "0ixx8c9cfdp480z21xfjb7n1x27sf1g8gmgbmcfhr0k888dmziyy";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ autoconf automake libtool glib gtk3 dbus file intltool connman ];
-
-  preConfigure = ''
-    rm m4/intltool.m4
-    ln -s ${intltool}/share/aclocal/intltool.m4 m4/
-    set -e
-    ./autogen.sh
-    sed -i "s/\/usr\/bin\/file/file/g" ./configure
-  '';
-
-  configureScript = "./configure";
-
-  meta = {
-    description = "A full-featured GTK based trayicon UI for ConnMan";
-    homepage = "https://github.com/tbursztyka/connman-ui";
-    maintainers = [ stdenv.lib.maintainers.matejc ];
-    platforms = stdenv.lib.platforms.linux;
-    license = stdenv.lib.licenses.gpl2;
-  };
-}
diff --git a/pkgs/tools/networking/corerad/default.nix b/pkgs/tools/networking/corerad/default.nix
index 2fb2cb79ff4..4ab266e5495 100644
--- a/pkgs/tools/networking/corerad/default.nix
+++ b/pkgs/tools/networking/corerad/default.nix
@@ -1,24 +1,36 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
 
 buildGoModule rec {
   pname = "corerad";
-  version = "0.2.4";
+  version = "0.2.8";
 
   src = fetchFromGitHub {
     owner = "mdlayher";
     repo = "corerad";
     rev = "v${version}";
-    sha256 = "1r9kvz1ylrnfc7y5c4knqhx6xngh1p8j1axb8bd7h7p51c4i7jz2";
+    sha256 = "053rihi8lqai3z837ddi441yl41lsg1zj9gl62s9vbjmq5l11fjh";
   };
 
-  modSha256 = "00xisa4l90f0digb1jfd2w616r080m7yp01y1rb83r8k147z5d2v";
+  vendorSha256 = "1ra4yfplmgzxzs1nlbm0izg339fjnkfrw071y8w4m6q6wnzdhljb";
 
-  buildFlagsArray = ''
-    -ldflags=
-    -X github.com/mdlayher/corerad/internal/build.linkTimestamp=1589133047
-    -X github.com/mdlayher/corerad/internal/build.linkVersion=v${version}
+  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
+  # repository.
+  preBuild = ''
+    buildFlagsArray=(
+      -ldflags="
+        -X github.com/mdlayher/corerad/internal/build.linkTimestamp=$(<.gittagtime)
+        -X github.com/mdlayher/corerad/internal/build.linkVersion=v${version}
+      "
+    )
   '';
 
+  passthru.tests = {
+    inherit (nixosTests) corerad;
+  };
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/mdlayher/corerad";
     description = "CoreRAD extensible and observable IPv6 NDP RA daemon";
diff --git a/pkgs/tools/networking/croc/default.nix b/pkgs/tools/networking/croc/default.nix
index a0ee3803139..ed4f7a5f704 100644
--- a/pkgs/tools/networking/croc/default.nix
+++ b/pkgs/tools/networking/croc/default.nix
@@ -2,21 +2,24 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "8.0.9";
+  version = "8.0.13";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0kwpn1nv93f8swzc70j8srddqz7qb33pxc9nhqrd92jhcl4cc7iv";
+    sha256 = "0vinccakinp996kqzry8irk7sf4djajxdfmpy982dl5y45491l4a";
   };
 
-  modSha256 = "1wcnf3sd4hkfm38q2z03ixys1hbscay5rsac49ng4kabqjh7rxhg";
+  vendorSha256 = "1d6gg7c0rb45zy9rilacn2xyr3kcb7acsh389hk6lppipmhpzr5a";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
   meta = with stdenv.lib; {
-    description = "Easily and securely send things from one computer to another";
+    description =
+      "Easily and securely send things from one computer to another";
     homepage = "https://github.com/schollz/croc";
     license = licenses.mit;
     maintainers = with maintainers; [ hugoreeves equirosa ];
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index ba54b2c5671..9a8a245a790 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;
@@ -28,14 +33,15 @@ assert brotliSupport -> brotli != null;
 assert gssSupport -> libkrb5 != null;
 
 stdenv.mkDerivation rec {
-  name = "curl-7.69.1";
+  pname = "curl";
+  version = "7.71.1";
 
   src = fetchurl {
     urls = [
-      "https://curl.haxx.se/download/${name}.tar.bz2"
-      "https://github.com/curl/curl/releases/download/${lib.replaceStrings ["."] ["_"] name}/${name}.tar.bz2"
+      "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 = "1s2ddjjif1wkp69vx25nzxklhimgqzaazfzliyl6mpvsa2yybx9g";
+    sha256 = "097jnkbayscifgzgl7v8kwd7m2crpvbyaazac3ab1yal0pca8llx";
   };
 
   outputs = [ "bin" "dev" "out" "man" "devdoc" ];
@@ -119,8 +125,8 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "A command line tool for transferring files with URL syntax";
     homepage    = "https://curl.haxx.se/";
-    maintainers = with maintainers; [ lovek323 ];
     license = licenses.curl;
+    maintainers = with maintainers; [ lovek323 ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/networking/curlie/default.nix b/pkgs/tools/networking/curlie/default.nix
index 179181fc49c..b2c4d46a8ce 100644
--- a/pkgs/tools/networking/curlie/default.nix
+++ b/pkgs/tools/networking/curlie/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "09v8alrbw6qva3q3bcqxnyjm7svagfxqvhdff7cqf5pbmkxnhln9";
   };
 
-  modSha256 = "18nwq99vv3nbdwfilfn8v64mn58jviwybi93li0lcg7779nxab3d";
+  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";
diff --git a/pkgs/tools/networking/dd-agent/datadog-agent.nix b/pkgs/tools/networking/dd-agent/datadog-agent.nix
index dc29a95d92b..c3d07ddca95 100644
--- a/pkgs/tools/networking/dd-agent/datadog-agent.nix
+++ b/pkgs/tools/networking/dd-agent/datadog-agent.nix
@@ -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 7f16d9478f3..64a58bc15a9 100644
--- a/pkgs/tools/networking/dnscrypt-proxy2/default.nix
+++ b/pkgs/tools/networking/dnscrypt-proxy2/default.nix
@@ -1,16 +1,18 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "dnscrypt-proxy2";
-  version = "2.0.42";
+  version = "2.0.44";
 
-  goPackagePath = "github.com/jedisct1/dnscrypt-proxy";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   src = fetchFromGitHub {
-    owner = "jedisct1";
+    owner = "DNSCrypt";
     repo = "dnscrypt-proxy";
     rev = version;
-    sha256 = "1v4n0pkwcilxm4mnj4fsd4gf8pficjj40jnmfkiwl7ngznjxwkyw";
+    sha256 = "08bg60j5z349blj5sip1f8f793q12ix3zmqkayym5nf69s1pfm7l";
   };
 
   meta = with stdenv.lib; {
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 3877e6f0e1a..8f231935ee3 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.27.1";
+  version = "0.31.0";
 
   src = fetchFromGitHub {
     owner = "AdguardTeam";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0nsj75aw5dym1pzn18p6fzh17vcryz1xs4xly6ga79dkpyijr9j8";
+    sha256 = "1jyik1022iv8nqjfrv3lkvcpr8zsaxfx8hi7yagklbs6vzlg80jg";
   };
 
-  modSha256 = "1m8565hkn981b6xld8jyrbxay48ww8lzr94kgakx0rg5548kd7v5";
+  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;
   };
 }
diff --git a/pkgs/tools/networking/dropbear/default.nix b/pkgs/tools/networking/dropbear/default.nix
index 20d2545e508..dcb05eb8484 100644
--- a/pkgs/tools/networking/dropbear/default.nix
+++ b/pkgs/tools/networking/dropbear/default.nix
@@ -4,11 +4,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "dropbear-2019.78";
+  name = "dropbear-2020.80";
 
   src = fetchurl {
     url = "https://matt.ucc.asn.au/dropbear/releases/${name}.tar.bz2";
-    sha256 = "19242qlr40pbqfqd0gg6h8qpj38q6lgv03ja6sahj9vj2abnanaj";
+    sha256 = "0jbrbpdzyv11x5rkljdimzq9p6a7da5siw9k405ibnpjj4dr89yr";
   };
 
   dontDisableStatic = enableStatic;
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/fastd/default.nix b/pkgs/tools/networking/fastd/default.nix
index 2bf1d8e5d2c..8c9a877b8f1 100644
--- a/pkgs/tools/networking/fastd/default.nix
+++ b/pkgs/tools/networking/fastd/default.nix
@@ -1,14 +1,15 @@
-{ stdenv, fetchgit, cmake, bison, pkgconfig
-, libuecc, libsodium, libcap, json_c }:
+{ stdenv, fetchFromGitHub, cmake, bison, pkgconfig
+, libuecc, libsodium, libcap, json_c, openssl }:
 
 stdenv.mkDerivation rec {
-  version = "18";
   pname = "fastd";
+  version = "19";
 
-  src = fetchgit {
-    url = "git://git.universe-factory.net/fastd";
-    rev = "refs/tags/v${version}";
-    sha256 = "0c9v3igv3812b3jr7jk75a2np658yy00b3i4kpbpdjgvqzc1jrq8";
+  src = fetchFromGitHub {
+    owner  = "Neoraider";
+    repo = "fastd";
+    rev = "v${version}";
+    sha256 = "1h3whjvy2n2cyvbkbg4y1z9vlrn790spzbdhj4glwp93xcykhz5i";
   };
 
   postPatch = ''
@@ -17,7 +18,11 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ pkgconfig bison cmake ];
-  buildInputs = [ libuecc libsodium libcap json_c ];
+  buildInputs = [ libuecc libsodium libcap json_c openssl ];
+
+  cmakeFlags = [
+    "-DENABLE_OPENSSL=true"
+  ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/tools/networking/findomain/default.nix b/pkgs/tools/networking/findomain/default.nix
index e1944257698..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.5.0";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "Edu4rdSHL";
     repo = pname;
     rev = version;
-    sha256 = "1w3parmk3836v5ghn3cgcxyk0alk05r5ljl3j1fpnly5xvl131rd";
+    sha256 = "0v6m0c329wmba2fihnqvrmfnrb5b1l4nm6xr0dsjiwsjpclrmy86";
   };
 
-  cargoSha256 = "1cs076cgkzjan6y78a3bhriv2q2s83hp5vzhkjwz4dqn83r6b8hx";
+  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/flannel/default.nix b/pkgs/tools/networking/flannel/default.nix
index a52088ed231..7ecfb559dcc 100644
--- a/pkgs/tools/networking/flannel/default.nix
+++ b/pkgs/tools/networking/flannel/default.nix
@@ -4,7 +4,7 @@ with lib;
 
 buildGoPackage rec {
   pname = "flannel";
-  version = "0.11.0";
+  version = "0.12.0";
   rev = "v${version}";
 
   goPackagePath = "github.com/coreos/flannel";
@@ -13,7 +13,7 @@ buildGoPackage rec {
     inherit rev;
     owner = "coreos";
     repo = "flannel";
-    sha256 = "0akxlrrsm2w51g0qd7dnsdy0hdajx98sdhxw4iknjr2kn7j3gph9";
+    sha256 = "04g7rzgyi3xs3sf5p1a9dmd08crdrz6y1b02ziv3444qk40jyswd";
   };
 
   meta = {
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 438740600c7..a998b25e3e7 100644
--- a/pkgs/tools/networking/frp/default.nix
+++ b/pkgs/tools/networking/frp/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "1z914p20n3i1bf4hx5iq2fylx1s49knb70cbg53ji2n7nrm1q33r";
   };
 
-  modSha256 = "1v90w5grc0vjpcp0m56d73zi0qnbswgz1rcvcwrjfa3rwqhigbal";
+  vendorSha256 = "0pi661mb5vwj16wwxnyx9b0ic7gzby6qfs3y4w00agn6sn5nahx2";
+
+  doCheck = false;
 
   subPackages = [ "cmd/frpc" "cmd/frps" ];
 
@@ -26,6 +28,5 @@ buildGoModule rec {
     homepage = "https://github.com/fatedier/frp";
     license = licenses.asl20;
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 }
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/goimapnotify/default.nix b/pkgs/tools/networking/goimapnotify/default.nix
new file mode 100644
index 00000000000..fb64ff65cc1
--- /dev/null
+++ b/pkgs/tools/networking/goimapnotify/default.nix
@@ -0,0 +1,26 @@
+{ buildGoPackage, fetchFromGitLab, lib }:
+
+buildGoPackage rec {
+  pname = "goimapnotify";
+  version = "2.0";
+
+  goPackagePath = "gitlab.com/shackra/goimapnotify";
+
+  src = fetchFromGitLab {
+    owner = "shackra";
+    repo = "goimapnotify";
+    rev = "${version}";
+    sha256 = "1d42gd3m2rkvy985d181dbcm5i3f7xsg2z8z6s4bpvw24pfnzs42";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description =
+      "Execute scripts on IMAP mailbox changes (new/deleted/updated messages) using IDLE";
+    homepage = "https://gitlab.com/shackra/goimapnotify";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ wohanley ];
+  };
+}
diff --git a/pkgs/tools/networking/goimapnotify/deps.nix b/pkgs/tools/networking/goimapnotify/deps.nix
new file mode 100644
index 00000000000..fc377c50be4
--- /dev/null
+++ b/pkgs/tools/networking/goimapnotify/deps.nix
@@ -0,0 +1,66 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath = "github.com/emersion/go-imap";
+    fetch = {
+      type = "git";
+      url = "https://github.com/emersion/go-imap";
+      rev = "b7db4a2bc5cc04fb568fb036a438da43ee9a9f78";
+      sha256 = "1v5hp02k9rfdq7gqiydz575dw6a991pspynhxypv0fvgh1vgqs0s";
+    };
+  }
+  {
+    goPackagePath = "github.com/emersion/go-imap-idle";
+    fetch = {
+      type = "git";
+      url = "https://github.com/emersion/go-imap-idle";
+      rev = "2af93776db6b042cc1116b0d0af00d7f58eea696";
+      sha256 = "19dh8sryjr3a8f0bgwywiz2fqccxhf4j66sm0w1jkjzh131f3pr7";
+    };
+  }
+  {
+    goPackagePath = "github.com/emersion/go-sasl";
+    fetch = {
+      type = "git";
+      url = "https://github.com/emersion/go-sasl";
+      rev = "7e096a0a6197b89989e8cc31016daa67c8c62051";
+      sha256 = "0mr9nzi4wc3ck730zqfqwmy8wk7d90h80yvvivqnxyfyadqy48kd";
+    };
+  }
+  {
+    goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
+    fetch = {
+      type = "git";
+      url = "https://github.com/konsorten/go-windows-terminal-sequences";
+      rev = "f55edac94c9bbba5d6182a4be46d86a2c9b5b50e";
+      sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7";
+    };
+  }
+  {
+    goPackagePath = "github.com/sirupsen/logrus";
+    fetch = {
+      type = "git";
+      url = "https://github.com/sirupsen/logrus";
+      rev = "8bdbc7bcc01dcbb8ec23dc8a28e332258d25251f";
+      sha256 = "1m7ny9jkb98cxqhsp13xa5hnqh1s9f25x04q6arsala4zswsw33c";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "a129542de9ae0895210abff9c95d67a1f33cb93d";
+      sha256 = "13p5q7s25rsvfkk8fcwf432j8djf7bjg7chs296rzlig4vqcdxi4";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "342b2e1fbaa52c93f31447ad2c6abc048c63e475";
+      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
+    };
+  }
+]
diff --git a/pkgs/tools/networking/grpcui/default.nix b/pkgs/tools/networking/grpcui/default.nix
index 58e698ed708..be3ed2ea2c6 100644
--- a/pkgs/tools/networking/grpcui/default.nix
+++ b/pkgs/tools/networking/grpcui/default.nix
@@ -2,16 +2,22 @@
 
 buildGoModule rec {
   pname = "grpcui";
-  version = "0.2.1";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "fullstorydev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0dcah6bamjqyp9354qrd1cykdr5k5l93hh7qcy5b4nkag9531gl0";
+    sha256 = "0b6rc294v8jagk79hcjbaldfi7y7idx8bknsbdi3djym5rspdg6s";
   };
 
-  modSha256 = "1yq8484cjxad72nqsrim3zppr8hmn7dc6f8rgkw8fg952lqy5jjb";
+  vendorSha256 = "0wih9xvpgqqd82v1pxy5rslrsd6wsl0ys1bi1mf373dnfq5vh5a9";
+
+  doCheck = false;
+
+  subPackages = [ "cmd/grpcui" ];
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
   meta = with lib; {
     description = "An interactive web UI for gRPC, along the lines of postman";
diff --git a/pkgs/tools/networking/haproxy/default.nix b/pkgs/tools/networking/haproxy/default.nix
index c5aeaaa7bb4..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.4";
+  version = "2.2.2";
 
   src = fetchurl {
     url = "https://www.haproxy.org/download/${stdenv.lib.versions.majorMinor version}/src/${pname}-${version}.tar.gz";
-    sha256 = "1kcizs5r538chhpwqykdngxyqfi98i03akfjnii721npjvv0y0si";
+    sha256 = "1mjld865p4f7i465fcc5c4jclih1c3345a3ylriql8668rd7071r";
   };
 
   buildInputs = [ openssl zlib ]
diff --git a/pkgs/tools/networking/hey/default.nix b/pkgs/tools/networking/hey/default.nix
index d65d5c9e323..22f933a4b65 100644
--- a/pkgs/tools/networking/hey/default.nix
+++ b/pkgs/tools/networking/hey/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "06w5hf0np0ayvjnfy8zgy605yrs5j326nk2gm0fy7amhwx1fzkwv";
   };
 
-  modSha256 = "0a00kcyagqczw0vhl8qs2xs1y8myw080y9kjs4qrcmj6kibdy55q";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   meta = with lib; {
     description = "HTTP load generator, ApacheBench (ab) replacement";
diff --git a/pkgs/tools/networking/httpie/default.nix b/pkgs/tools/networking/httpie/default.nix
index 01986bf9321..bf80cd48ffa 100644
--- a/pkgs/tools/networking/httpie/default.nix
+++ b/pkgs/tools/networking/httpie/default.nix
@@ -1,21 +1,30 @@
-{ stdenv, fetchFromGitHub, python3Packages, docutils, }:
+{ stdenv, fetchFromGitHub, python3Packages, docutils, fetchpatch }:
 
 python3Packages.buildPythonApplication rec {
   pname = "httpie";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "jakubroztocil";
     repo = "httpie";
     rev = version;
-    sha256 = "1vwjlzx830q4dcm3r7j9cl8yzka37dw42rl1r05m5ysb1081cbj2";
+    sha256 = "0caazv24jr0844c4mdx77vzwwi5m869n10wa42cydb08ppx1xxj6";
   };
 
   outputs = [ "out" "doc" "man" ];
 
   propagatedBuildInputs = with python3Packages; [ pygments requests setuptools ];
   dontUseSetuptoolsCheck = true;
-  patches = [ ./strip-venv.patch ];
+  patches = [
+    ./strip-venv.patch
+
+    # Fix `test_ciphers_none_can_be_selected`
+    # TODO: remove on next release
+    (fetchpatch {
+      url = "https://github.com/jakubroztocil/httpie/commit/49e71d252f54871a6bc49cb1cba103d385a543b8.patch";
+      sha256 = "13b2faf50gimj7f17dlx4gmd8ph8ipgihpzfqbvmfjlbf1v95fsj";
+    })
+  ];
 
   checkInputs = with python3Packages; [
     mock
diff --git a/pkgs/tools/networking/httplab/default.nix b/pkgs/tools/networking/httplab/default.nix
index f39b061c34d..f4fb4fe9607 100644
--- a/pkgs/tools/networking/httplab/default.nix
+++ b/pkgs/tools/networking/httplab/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "httplab";
-  version = "0.3.0";
+  version = "0.4.0";
   rev = "v${version}";
 
   goPackagePath = "github.com/gchaincl/httplab";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "gchaincl";
     repo = "httplab";
     inherit rev;
-    sha256 = "1q9rp43z59nryfm79gci5a1gmqw552rqd4cki81rymbj3f6xvrf9";
+    sha256 = "0442nnpxyfl2gi9pilv7q6cxs2cd98wblg8d4nw6dx98yh4h99zs";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/networking/i2pd/default.nix b/pkgs/tools/networking/i2pd/default.nix
index 191035f59f2..b686ea4d04f 100644
--- a/pkgs/tools/networking/i2pd/default.nix
+++ b/pkgs/tools/networking/i2pd/default.nix
@@ -9,13 +9,13 @@ assert upnpSupport -> miniupnpc != null;
 
 stdenv.mkDerivation rec {
   pname = "i2pd";
-  version = "2.30.0";
+  version = "2.32.1";
 
   src = fetchFromGitHub {
     owner = "PurpleI2P";
     repo = pname;
     rev = version;
-    sha256 = "nGl7c5UY9kJPRaMveMF+aIf8T11WFrB//37oKzREdvM=";
+    sha256 = "15ng2c7i3jxmhpc2q0dl8arc72qbsq9y9paz5hgln907yy7dqx7c";
   };
 
   buildInputs = with stdenv.lib; [ boost zlib openssl ]
diff --git a/pkgs/tools/networking/ip2unix/default.nix b/pkgs/tools/networking/ip2unix/default.nix
index 83a6ea4b243..269dd0f1f34 100644
--- a/pkgs/tools/networking/ip2unix/default.nix
+++ b/pkgs/tools/networking/ip2unix/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ip2unix";
-  version = "2.1.1";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = "nixcloud";
     repo = "ip2unix";
     rev = "v${version}";
-    sha256 = "121ygj50i7ja9bv76y51qsjbjmmydhpi0sd3xb6pysmlzv0bxn17";
+    sha256 = "19c449h60b2m1d8kawnhpi4y9y4ddm24jmlh8kilqmx8m5l2khr6";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/iperf/3.nix b/pkgs/tools/networking/iperf/3.nix
index 4506fbb11e3..4910ff21da6 100644
--- a/pkgs/tools/networking/iperf/3.nix
+++ b/pkgs/tools/networking/iperf/3.nix
@@ -1,11 +1,12 @@
 { stdenv, fetchurl, openssl, fetchpatch }:
 
 stdenv.mkDerivation rec {
-  name = "iperf-3.7";
+  pname = "iperf";
+  version = "3.8.1";
 
   src = fetchurl {
-    url = "https://downloads.es.net/pub/iperf/${name}.tar.gz";
-    sha256 = "033is7b5grfbiil98jxlz4ixp9shm44x6hy8flpsyz1i4h108inq";
+    url = "https://downloads.es.net/pub/iperf/iperf-${version}.tar.gz";
+    sha256 = "15pdgnan9krf3dijan9in73ir8rcmhk3iw8085d732is4zrq1c75";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/networking/isync/default.nix b/pkgs/tools/networking/isync/default.nix
index 49efeac02a9..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 ];
@@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ primeos lheckemann ];
   };
 }
diff --git a/pkgs/tools/networking/libreswan/default.nix b/pkgs/tools/networking/libreswan/default.nix
index 71fdcc947d3..3e7719c40d4 100644
--- a/pkgs/tools/networking/libreswan/default.nix
+++ b/pkgs/tools/networking/libreswan/default.nix
@@ -5,9 +5,6 @@
   }:
 
 let
-  optional = stdenv.lib.optional;
-  version = "3.31";
-  name = "libreswan-${version}";
   binPath = stdenv.lib.makeBinPath [
     bash iproute iptables procps coreutils gnused gawk nss.tools which python
   ];
@@ -16,13 +13,13 @@ in
 assert docs -> xmlto != null;
 assert stdenv.isLinux -> libselinux != null;
 
-stdenv.mkDerivation {
-  inherit name;
-  inherit version;
+stdenv.mkDerivation rec {
+  pname = "libreswan";
+  version = "3.32";
 
   src = fetchurl {
-    url = "https://download.libreswan.org/${name}.tar.gz";
-    sha256 = "1wxqsv11nqgfj5and5xzfgh6ayqvl47midcghd5ryynh60mp7naa";
+    url = "https://download.libreswan.org/${pname}-${version}.tar.gz";
+    sha256 = "0bj3g6qwd3ir3gk6hdl9npy3k44shf56vcgjahn30qpmx3z5fsr3";
   };
 
   # These flags were added to compile v3.18. Try to lift them when updating.
@@ -37,8 +34,8 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ makeWrapper pkgconfig ];
   buildInputs = [ bash iproute iptables systemd coreutils gnused gawk gmp unbound bison flex pam libevent
                   libcap_ng curl nspr nss python ldns ]
-                ++ optional docs xmlto
-                ++ optional stdenv.isLinux libselinux;
+                ++ stdenv.lib.optional docs xmlto
+                ++ stdenv.lib.optional stdenv.isLinux libselinux;
 
   prePatch = ''
     # Correct bash path
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/megatools/default.nix b/pkgs/tools/networking/megatools/default.nix
index b729e996185..43bbc62be95 100644
--- a/pkgs/tools/networking/megatools/default.nix
+++ b/pkgs/tools/networking/megatools/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "Command line client for Mega.co.nz";
     homepage = "https://megatools.megous.com/";
     license = licenses.gpl2Plus;
-    maintainers = [ maintainers.viric maintainers.AndersonTorres ];
+    maintainers = with maintainers; [ viric AndersonTorres zowoq ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/networking/memtier-benchmark/default.nix b/pkgs/tools/networking/memtier-benchmark/default.nix
index 3579002e416..a45c3a2e33a 100644
--- a/pkgs/tools/networking/memtier-benchmark/default.nix
+++ b/pkgs/tools/networking/memtier-benchmark/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "memtier-benchmark";
-  version = "1.2.17";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner  = "redislabs";
     repo   = "memtier_benchmark";
     rev    = "refs/tags/${version}";
-    sha256 = "18cka6sv3w8ffa81126nzi04if9g1wd3i3apxsgmv7xm2p8fsa39";
+    sha256 = "0m2qnnc71qpdj8w421bxn0zxz6ddvzy7b0n19jvyncnzvk1ff0sq";
   };
 
   patchPhase = ''
diff --git a/pkgs/tools/networking/minidlna/default.nix b/pkgs/tools/networking/minidlna/default.nix
index 0fbd76855a7..6a14b5f1c82 100644
--- a/pkgs/tools/networking/minidlna/default.nix
+++ b/pkgs/tools/networking/minidlna/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ffmpeg, flac, libvorbis, libogg, libid3tag, libexif, libjpeg, sqlite, gettext }:
+{ stdenv, fetchurl, ffmpeg_3, flac, libvorbis, libogg, libid3tag, libexif, libjpeg, sqlite, gettext }:
 
 let version = "1.2.1"; in
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
     export makeFlags="INSTALLPREFIX=$out"
   '';
 
-  buildInputs = [ ffmpeg flac libvorbis libogg libid3tag libexif libjpeg sqlite gettext ];
+  buildInputs = [ ffmpeg_3 flac libvorbis libogg libid3tag libexif libjpeg sqlite gettext ];
 
   postInstall = ''
     mkdir -p $out/share/man/man{5,8}
diff --git a/pkgs/tools/networking/minio-client/default.nix b/pkgs/tools/networking/minio-client/default.nix
index 0649eb02172..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";
   };
 
-  modSha256 = "1bcz7jchfnglypr2md9hhqbvcbghic2yp6njdrx3m5nqhylypzfx";
+  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";
diff --git a/pkgs/tools/networking/modem-manager/default.nix b/pkgs/tools/networking/modem-manager/default.nix
index 7329d78c2c8..c3981b902f2 100644
--- a/pkgs/tools/networking/modem-manager/default.nix
+++ b/pkgs/tools/networking/modem-manager/default.nix
@@ -3,12 +3,12 @@
 
 stdenv.mkDerivation rec {
   pname = "modem-manager";
-  version = "1.12.8";
+  version = "1.12.10";
 
   package = "ModemManager";
   src = fetchurl {
     url = "https://www.freedesktop.org/software/${package}/${package}-${version}.tar.xz";
-    sha256 = "1zrsf57bn9rmaa2qvavr1aisci76vwlx0viqpwmkw3ds2l33vdb8";
+    sha256 = "1apq9camys2gaw6y6ic1ld20cncfwpmxnzvh4j5zkbbjpf5hbcxj";
   };
 
   nativeBuildInputs = [ vala gobject-introspection gettext pkgconfig ];
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 611e848b9af..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.3";
+  version = "1.4.13";
 
   src = fetchFromGitHub {
     owner  = "djcb";
     repo   = "mu";
     rev    = version;
-    sha256 = "1i9chd8ks1q4g5pyscsir6pw4kahkx3k8ckzbi8j3gr6jz1qzzsg";
+    sha256 = "03cp2ppj07xpb0c43d3cr8m9jps07mfm8clmlk03sjbxg1widsh0";
   };
 
   postPatch = stdenv.lib.optionalString (batchSize != null) ''
@@ -21,8 +21,11 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [
-    sqlite xapian glib gmime3 texinfo emacs guile libsoup icu
-  ] ++ stdenv.lib.optionals withMug [ gtk3 webkitgtk ];
+    sqlite xapian glib gmime3 texinfo emacs libsoup icu
+  ]
+    # Workaround for https://github.com/djcb/mu/issues/1641
+    ++ stdenv.lib.optional (!stdenv.isDarwin) guile
+    ++ stdenv.lib.optionals withMug [ gtk3 webkitgtk ];
 
   nativeBuildInputs = [ pkgconfig autoreconfHook pmccabe ];
 
@@ -47,6 +50,7 @@ stdenv.mkDerivation rec {
     description = "A collection of utilties for indexing and searching Maildirs";
     license = licenses.gpl3Plus;
     homepage = "https://www.djcbsoftware.nl/code/mu/";
+    changelog = "https://github.com/djcb/mu/releases/tag/${version}";
     maintainers = with maintainers; [ antono peterhoeg ];
     platforms = platforms.mesaPlatforms;
   };
diff --git a/pkgs/tools/networking/nebula/default.nix b/pkgs/tools/networking/nebula/default.nix
index ec94fc97997..178979b2caf 100644
--- a/pkgs/tools/networking/nebula/default.nix
+++ b/pkgs/tools/networking/nebula/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "0xrki9w83b4b3l5adq1rxz374f124wf388sdyvy7ngc3b04k7qlb";
   };
 
-  modSha256 = "0v45ikw0bl00412krg4v6sr9bggvsrvl0h6clihkh4mdfz6kwa47";
+  vendorSha256 = "094mn1r69c40w7k3lsggjh0dpws9l0j7mgiyjy1lpblkvkyk2azm";
+
+  doCheck = false;
 
   subPackages = [ "cmd/nebula" "cmd/nebula-cert" ];
 
@@ -37,7 +39,6 @@ buildGoModule rec {
     homepage = "https://github.com/slackhq/nebula";
     license = licenses.mit;
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 
 }
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/applet/default.nix b/pkgs/tools/networking/network-manager/applet/default.nix
index 109c4c8cce1..9f92fcfa1ab 100644
--- a/pkgs/tools/networking/network-manager/applet/default.nix
+++ b/pkgs/tools/networking/network-manager/applet/default.nix
@@ -26,11 +26,11 @@
 
 stdenv.mkDerivation rec {
   pname = "network-manager-applet";
-  version = "1.16.0";
+  version = "1.18.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn";
+    sha256 = "12xiy8g8qk18jvxvn78mvq03zvzp06bww49na765jjw0rq541fyx";
   };
 
   mesonFlags = [
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/dmenu/default.nix b/pkgs/tools/networking/network-manager/dmenu/default.nix
index f84ef027f76..4204ba1fcdb 100644
--- a/pkgs/tools/networking/network-manager/dmenu/default.nix
+++ b/pkgs/tools/networking/network-manager/dmenu/default.nix
@@ -4,13 +4,13 @@
 let inherit (python3Packages) python pygobject3;
 in stdenv.mkDerivation rec {
   pname = "networkmanager_dmenu";
-  version = "1.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "firecat53";
     repo = "networkmanager-dmenu";
-    rev = "v${version}";
-    sha256 = "1z6151z7c4jv5k2i50zr7ld4k3m07dgpmss9f3hsav95cv55dcnb";
+    rev = "${version}";
+    sha256 = "1msk4zkm4042av61rgbwc62i62vnv9py93fm1bczmw0b1f54qpmk";
   };
 
   buildInputs = [ glib python pygobject3 gobject-introspection networkmanager python3Packages.wrapPython ];
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/fortisslvpn/default.nix b/pkgs/tools/networking/network-manager/fortisslvpn/default.nix
index 0ce50a3b2d4..3cc4133b41c 100644
--- a/pkgs/tools/networking/network-manager/fortisslvpn/default.nix
+++ b/pkgs/tools/networking/network-manager/fortisslvpn/default.nix
@@ -1,10 +1,24 @@
-{ stdenv, fetchurl, substituteAll, openfortivpn, intltool, pkgconfig, file, gtk3,
-networkmanager, ppp, libsecret, withGnome ? true, gnome3, fetchpatch, libnma }:
+{ stdenv
+, fetchurl
+, substituteAll
+, openfortivpn
+, gettext
+, pkg-config
+, file
+, glib
+, gtk3
+, networkmanager
+, ppp
+, libsecret
+, withGnome ? true
+, gnome3
+, fetchpatch
+, libnma
+}:
 
-let
+stdenv.mkDerivation rec {
   pname = "NetworkManager-fortisslvpn";
   version = "1.2.10";
-in stdenv.mkDerivation {
   name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
 
   src = fetchurl {
@@ -17,6 +31,7 @@ in stdenv.mkDerivation {
       src = ./fix-paths.patch;
       inherit openfortivpn;
     })
+
     # Don't use etc/dbus-1/system.d
     (fetchpatch {
       url = "https://gitlab.gnome.org/GNOME/NetworkManager-fortisslvpn/merge_requests/11.patch";
@@ -24,21 +39,34 @@ in stdenv.mkDerivation {
     })
   ];
 
-  buildInputs = [ openfortivpn networkmanager ppp ]
-    ++ stdenv.lib.optionals withGnome [ gtk3 libsecret libnma ];
+  nativeBuildInputs = [
+    gettext
+    pkg-config
+    file
+  ];
 
-  nativeBuildInputs = [ intltool pkgconfig file ];
+  buildInputs = [
+    openfortivpn
+    networkmanager
+    ppp
+    glib
+  ] ++ stdenv.lib.optionals withGnome [
+    gtk3
+    libsecret
+    libnma
+  ];
 
   configureFlags = [
-    "--without-libnm-glib"
     "--with-gnome=${if withGnome then "yes" else "no"}"
     "--localstatedir=/var"
     "--enable-absolute-paths"
   ];
 
-  # the installer only create an empty directory in localstatedir, so
-  # we can drop it
-  installFlags = [ "localstatedir=." ];
+  installFlags = [
+    # the installer only creates an empty directory in localstatedir, so
+    # we can drop it
+    "localstatedir=."
+  ];
 
   passthru = {
     updateScript = gnome3.updateScript {
@@ -48,9 +76,8 @@ in stdenv.mkDerivation {
   };
 
   meta = with stdenv.lib; {
-    description = "NetworkManager's FortiSSL plugin";
+    description = "NetworkManager’s FortiSSL plugin";
     inherit (networkmanager.meta) maintainers platforms;
     license = licenses.gpl2;
   };
 }
-
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/strongswan/default.nix b/pkgs/tools/networking/network-manager/strongswan/default.nix
index a1c6962d3f9..028d852f139 100644
--- a/pkgs/tools/networking/network-manager/strongswan/default.nix
+++ b/pkgs/tools/networking/network-manager/strongswan/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "NetworkManager-strongswan";
-  version = "1.5.0";
+  version = "1.5.2";
 
   src = fetchurl {
     url = "https://download.strongswan.org/NetworkManager/${pname}-${version}.tar.bz2";
-    sha256 = "1x6hivr1v76fxy1dn82xrj9rj8k3r097kf4yiblqq16y631hxzy4";
+    sha256 = "0sc1yzlxjfvl58hjjw99bchqc4061i3apw254z61v22k4sajnif8";
   };
 
   buildInputs = [ networkmanager strongswanNM libsecret gtk3 libnma ];
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 02820c0a74f..0a74deea17d 100644
--- a/pkgs/tools/networking/obfs4/default.nix
+++ b/pkgs/tools/networking/obfs4/default.nix
@@ -10,7 +10,9 @@ buildGoModule rec {
     sha256 = "05aqmw8x8s0yqyqmdj5zcsq06gsbcmrlcd52gaqm20m1pg9503ad";
   };
 
-  modSha256 = "150kg22kznrdj5icjxk3qd70g7wpq8zd2zklw1y2fgvrggw8zvyv";
+  vendorSha256 = "0h3gjxv26pc6cysvy1hny2f4abw6i847dk8fx0m113ixx9qghk87";
+
+  doCheck = false;
 
   meta = with lib; {
     description = "A pluggable transport proxy";
diff --git a/pkgs/tools/networking/ofono/0001-Search-connectors-in-OFONO_PLUGIN_PATH.patch b/pkgs/tools/networking/ofono/0001-Search-connectors-in-OFONO_PLUGIN_PATH.patch
index eb97209a693..c1174e1093a 100644
--- a/pkgs/tools/networking/ofono/0001-Search-connectors-in-OFONO_PLUGIN_PATH.patch
+++ b/pkgs/tools/networking/ofono/0001-Search-connectors-in-OFONO_PLUGIN_PATH.patch
@@ -98,7 +98,7 @@ index 924a45ec..f05055c3 100644
 +
 +	plugin_path = g_getenv ("OFONO_PLUGIN_PATH");
 +
-+	if (!plugin_path) {
++	if (plugin_path) {
 +		gchar **plugin_path_list;
 +		gsize i;
 +
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/openapi-generator-cli/default.nix b/pkgs/tools/networking/openapi-generator-cli/default.nix
index 2e5695ff452..2b09fe901d0 100644
--- a/pkgs/tools/networking/openapi-generator-cli/default.nix
+++ b/pkgs/tools/networking/openapi-generator-cli/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   ];
 
   src = fetchurl {
-    url = "http://central.maven.org/maven2/org/openapitools/${pname}/${version}/${jarfilename}";
+    url = "mirror://maven/org/openapitools/${pname}/${version}/${jarfilename}";
     sha256 = "1pafv432ll3pp52580pbnk0gnrm6byl5fkrf1rarhxfkpkr82yif";
   };
 
diff --git a/pkgs/tools/networking/openconnect/default.nix b/pkgs/tools/networking/openconnect/default.nix
index 101346d31b1..11f9fdc0fd8 100644
--- a/pkgs/tools/networking/openconnect/default.nix
+++ b/pkgs/tools/networking/openconnect/default.nix
@@ -4,19 +4,19 @@ assert (openssl != null) == (gnutls == null);
 
 let vpnc = fetchgit {
   url = "git://git.infradead.org/users/dwmw2/vpnc-scripts.git";
-  rev = "c84fb8e5a523a647a01a1229a9104db934e19f00";
-  sha256 = "01xdclx0y3x66mpbdr77n4ilapwzjz475h32q88ml9gnq6phjxrs";
+  rev = "c0122e891f7e033f35f047dad963702199d5cb9e";
+  sha256 = "11b1ls012mb704jphqxjmqrfbbhkdjb64j2q4k8wb5jmja8jnd14";
 };
 
 in stdenv.mkDerivation rec {
   pname = "openconnect";
-  version = "8.05";
+  version = "8.10";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.infradead.org/pub/openconnect/${pname}-${version}.tar.gz"
     ];
-    sha256 = "14i9q727c2zc9xhzp1a9hz3gzb5lwgsslbhircm84dnbs192jp1k";
+    sha256 = "1cdsx4nsrwawbsisfkldfc9i4qn60g03vxb13nzppr2br9p4rrih";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/tools/networking/openconnect_pa/default.nix b/pkgs/tools/networking/openconnect_pa/default.nix
index 2c452847aa3..4b108dc303e 100644
--- a/pkgs/tools/networking/openconnect_pa/default.nix
+++ b/pkgs/tools/networking/openconnect_pa/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   };
 
   preConfigure = ''
-      export PKG_CONFIG=${pkgconfig}/bin/pkg-config
+      export PKG_CONFIG=${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config
       export LIBXML2_CFLAGS="-I ${libxml2.dev}/include/libxml2"
       export LIBXML2_LIBS="-L${libxml2.out}/lib -lxml2"
   '';
diff --git a/pkgs/tools/networking/openfortivpn/default.nix b/pkgs/tools/networking/openfortivpn/default.nix
index b0be2ab5e6d..a5e46c6bc57 100644
--- a/pkgs/tools/networking/openfortivpn/default.nix
+++ b/pkgs/tools/networking/openfortivpn/default.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 let repo = "openfortivpn";
-    version = "1.13.3";
+    version = "1.14.1";
 
 in stdenv.mkDerivation {
   name = "${repo}-${version}";
@@ -12,7 +12,7 @@ in stdenv.mkDerivation {
     owner = "adrienverge";
     inherit repo;
     rev = "v${version}";
-    sha256 = "1y3b3zwzig520nyky7xnr0l0zf68i4w698bysyngpkada14d8dv3";
+    sha256 = "1r9lp19fmqx9dw33j5967ydijbnacmr80mqnhbbxyqiw4k5c10ds";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
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 ad5072342f1..1748a2d21d0 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -1,38 +1,48 @@
-{ stdenv, fetchurl, fetchpatch, zlib, openssl, libedit, pkgconfig, pam, autoreconfHook
+{ stdenv
+, fetchurl
+, fetchpatch
+, zlib
+, openssl
+, libedit
+, pkgconfig
+, pam
+, autoreconfHook
 , etcDir ? null
 , hpnSupport ? false
 , withKerberos ? true
 , withGssapiPatches ? false
 , kerberos
 , libfido2
-, withFIDO ? stdenv.hostPlatform.isUnix
-, linkOpenssl? true
+, withFIDO ? stdenv.hostPlatform.isUnix && !stdenv.hostPlatform.isMusl
+, 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/openvpn/default.nix b/pkgs/tools/networking/openvpn/default.nix
index 09ad8db46ea..c5a15c2f87a 100644
--- a/pkgs/tools/networking/openvpn/default.nix
+++ b/pkgs/tools/networking/openvpn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, pkgconfig
+{ stdenv, fetchurl, fetchpatch, pkgconfig, makeWrapper
 , iproute, lzo, openssl, pam
 , useSystemd ? stdenv.isLinux, systemd ? null, utillinux ? null
 , pkcs11Support ? false, pkcs11helper ? null,
@@ -10,11 +10,10 @@ assert pkcs11Support -> (pkcs11helper != null);
 with stdenv.lib;
 
 let
-  # There is some fairly brittle string substitutions going on to replace paths,
-  # so please verify this script in case you are upgrading it
+  # Check if the script needs to have other binaries wrapped when changing this.
   update-resolved = fetchurl {
-    url = "https://raw.githubusercontent.com/jonathanio/update-systemd-resolved/v1.2.7/update-systemd-resolved";
-    sha256 = "12zfzh42apwbj7ks5kfxf3far7kaghlby4yapbhn00q8pbdlw7pq";
+    url = "https://raw.githubusercontent.com/jonathanio/update-systemd-resolved/v1.3.0/update-systemd-resolved";
+    sha256 = "021qzv1k0zxgv1rmyfpqj3zlzqr28xa7zff1n7vrbjk36ijylpsc";
   };
 
 in stdenv.mkDerivation rec {
@@ -26,7 +25,7 @@ in stdenv.mkDerivation rec {
     sha256 = "1qpbllwlha7cffsd5dlddb8rl22g9rar5zflkz1wrcllhvfkl7v4";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
 
   buildInputs = [ lzo openssl ]
                   ++ optionals stdenv.isLinux [ pam iproute ]
@@ -45,16 +44,10 @@ in stdenv.mkDerivation rec {
     cp -r sample/sample-config-files/ $out/share/doc/openvpn/examples
     cp -r sample/sample-keys/ $out/share/doc/openvpn/examples
     cp -r sample/sample-scripts/ $out/share/doc/openvpn/examples
-
-    ${optionalString useSystemd ''
-      install -Dm755 ${update-resolved} $out/libexec/update-systemd-resolved
-
-      substituteInPlace $out/libexec/update-systemd-resolved \
-        --replace '/usr/bin/env bash' '${stdenv.shell} -e' \
-        --replace 'busctl call'       '${getBin systemd}/bin/busctl call' \
-        --replace '(ip '              '(${getBin iproute}/bin/ip ' \
-        --replace 'logger '           '${getBin utillinux}/bin/logger '
-    ''}
+  '' + optionalString useSystemd ''
+    install -Dm555 ${update-resolved} $out/libexec/update-systemd-resolved
+    wrapProgram $out/libexec/update-systemd-resolved \
+      --prefix PATH : ${makeBinPath [ stdenv.shell iproute systemd utillinux ]}
   '';
 
   enableParallelBuilding = true;
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/persepolis/default.nix b/pkgs/tools/networking/persepolis/default.nix
index 63e2af48c1e..ecceed21660 100644
--- a/pkgs/tools/networking/persepolis/default.nix
+++ b/pkgs/tools/networking/persepolis/default.nix
@@ -6,22 +6,24 @@
 , pyqt5
 , requests
 , setproctitle
+, setuptools
 , sound-theme-freedesktop
+, wrapQtAppsHook
 , youtube-dl
 }:
 
 buildPythonApplication rec {
   pname = "persepolis";
-  version = "3.1.0";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
     owner = "persepolisdm";
     repo = "persepolis";
     rev = version;
-    sha256 = "0xngk8wgj5k27mh3bcrf2wwzqr8a3g0d4pc5i5vcavnnaj03j44m";
+    sha256 = "1rh7q432ynbysapsd075nif975ync71icpb71x2mb4j8jx1vzs45";
   };
 
-  # see: https://github.com/persepolisdm/persepolis/blob/3.1.0/setup.py#L130
+  # see: https://github.com/persepolisdm/persepolis/blob/3.2.0/setup.py#L130
   doCheck = false;
 
   preBuild=''
@@ -36,10 +38,17 @@ buildPythonApplication rec {
   postInstall = ''
      mkdir -p $out/share/applications
      cp $src/xdg/com.github.persepolisdm.persepolis.desktop $out/share/applications
-     wrapProgram $out/bin/persepolis --prefix PATH : "${lib.makeBinPath [aria libnotify ]}"
   '';
 
-  buildInputs = [ makeWrapper ];
+  # prevent double wrapping
+  dontWrapQtApps = true;
+  nativeBuildInputs = [ wrapQtAppsHook ];
+
+  # feed args to wrapPythonApp
+  makeWrapperArgs = [
+    "--prefix PATH : ${lib.makeBinPath [aria libnotify ]}"
+    ''''${qtWrapperArgs[@]}''
+  ];
 
   propagatedBuildInputs = [
     pulseaudio
@@ -47,6 +56,7 @@ buildPythonApplication rec {
     pyqt5
     requests
     setproctitle
+    setuptools
     sound-theme-freedesktop
     youtube-dl
   ];
diff --git a/pkgs/tools/networking/pirate-get/default.nix b/pkgs/tools/networking/pirate-get/default.nix
index bacea663493..b89ab8164cc 100644
--- a/pkgs/tools/networking/pirate-get/default.nix
+++ b/pkgs/tools/networking/pirate-get/default.nix
@@ -4,16 +4,14 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "pirate-get";
-  version = "0.3.5";
-
-  doCheck = false;
+  version = "0.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01jr9c04ic4bfalfdijavzvqzmpkw3hq1glqyc86z3v6zwl8dlp2";
+    sha256 = "07s5ss9dxccx1mip7pyga1fagywkqchxmzz55ng47ac9053ffxkq";
   };
 
-  propagatedBuildInputs = [ colorama veryprettytable beautifulsoup4 pyperclip ];
+  propagatedBuildInputs = [ colorama veryprettytable pyperclip ];
 
   meta = with stdenv.lib; {
     description = "A command line interface for The Pirate Bay";
diff --git a/pkgs/tools/networking/pixiecore/default.nix b/pkgs/tools/networking/pixiecore/default.nix
index bc8ec7da169..d0e76832ea9 100644
--- a/pkgs/tools/networking/pixiecore/default.nix
+++ b/pkgs/tools/networking/pixiecore/default.nix
@@ -12,7 +12,10 @@ buildGoModule rec {
     sha256 = "14dslmx3gk08h9gqfjw5y27x7d2c6r8ir7mjd7l9ybysagpzr02a";
   };
 
-  modSha256 = "1waqaglm6f9zy5296z309ppkck2vmydhk9gjnxrgzmhqld5lcq4f";
+  vendorSha256 = "08n3m6fkwh8jmmzky3ygij4gxlcqidqk5ywi8ki8bkyzzs2lqaw7";
+
+  doCheck = false;
+
   subPackages = [ "cmd/pixiecore" ];
 
   meta = {
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/privoxy/default.nix b/pkgs/tools/networking/privoxy/default.nix
index 331295ffd1f..10a25d5bf8b 100644
--- a/pkgs/tools/networking/privoxy/default.nix
+++ b/pkgs/tools/networking/privoxy/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, autoreconfHook, zlib, pcre, w3m, man }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
 
   pname = "privoxy";
   version = "3.0.28";
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 f2ae143e1b9..5f7247248e7 100644
--- a/pkgs/tools/networking/shadowfox/default.nix
+++ b/pkgs/tools/networking/shadowfox/default.nix
@@ -11,9 +11,9 @@ buildGoModule rec {
     sha256 = "125mw70jidbp436arhv77201jdp6mpgqa2dzmrpmk55f9bf29sg6";
   };
 
-  goPackagePath = "github.com/SrKomodo/shadowfox-updater";
+  vendorSha256 = "06ar9ivry9b01609izjbl6hqgg0cy7aqd8n2cqpyq0g7my0l0lbj";
 
-  modSha256 = "0hcc87mzacqwbw10l49kx0sxl4mivdr88c40wh6hdfvrbam2w86r";
+  doCheck = false;
 
   buildFlags = [ "--tags" "release" ];
 
@@ -24,7 +24,6 @@ buildGoModule rec {
     '';
     homepage = "https://overdodactyl.github.io/ShadowFox/";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ infinisil ];
   };
 }
diff --git a/pkgs/tools/networking/shadowsocks-rust/default.nix b/pkgs/tools/networking/shadowsocks-rust/default.nix
index 36f6b584959..3fb34697da1 100644
--- a/pkgs/tools/networking/shadowsocks-rust/default.nix
+++ b/pkgs/tools/networking/shadowsocks-rust/default.nix
@@ -2,24 +2,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowsocks-rust";
-  version = "1.7.2";
+  version = "1.8.16";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shadowsocks";
     repo = pname;
-    sha256 = "0w7ysha46ml3j1i1knvll4pmqg291z8a2ypcy650m61dhrvkh2ng";
+    sha256 = "09wncvy1cn8038xf8srz8y955xw9h59zh7avrh060wm50azrhlg5";
   };
 
-  cargoSha256 = "0srmn8ndy7vdvcysyb7a5pjly0m3jchq0zrqzhrwicynm291w56h";
+  cargoSha256 = "0n03dg1rrhlryap0dqqmmzhp49lxvhh3478z123x23fm04ygln44";
+
+  SODIUM_USE_PKG_CONFIG = 1;
 
   buildInputs = [ openssl libsodium ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ Security ];
   nativeBuildInputs = [ pkgconfig ];
 
-  # tries to read /etc/resolv.conf, hence fails in sandbox
-  doCheck = false;
-
   meta = with stdenv.lib; {
     homepage = "https://github.com/shadowsocks/shadowsocks-rust";
     description = "A Rust port of shadowsocks";
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..21b6bd346fd 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.6";
 
   src = fetchurl {
     url = "http://download.joedog.org/siege/${name}.tar.gz";
-    sha256 = "0c82h0idkvfbzspy7h6w97wyk671694nl1ir94zhzn54mw0p0jrv";
+    sha256 = "03w0iska74nb6r8wnljn7inasbq7qflf55vjmxnb9jrc4pi7mpnw";
   };
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
diff --git a/pkgs/tools/networking/slack-cli/default.nix b/pkgs/tools/networking/slack-cli/default.nix
index bdd650494b1..25e426dc43e 100644
--- a/pkgs/tools/networking/slack-cli/default.nix
+++ b/pkgs/tools/networking/slack-cli/default.nix
@@ -5,7 +5,8 @@
 # for token storage, except that it would make the Nix package inconsistent with
 # upstream and other distributions.
 
-{ stdenv, lib, fetchFromGitHub, curl, jq, runtimeShell }:
+{ stdenv, lib, fetchFromGitHub, curl, jq, coreutils, gnugrep, gnused
+, runtimeShell }:
 
 stdenv.mkDerivation rec {
   pname = "slack-cli";
@@ -33,7 +34,7 @@ stdenv.mkDerivation rec {
 
     MESSAGE
 
-    export PATH=${lib.makeBinPath [ curl jq ]}:"\$PATH"
+    export PATH=${lib.makeBinPath [ curl jq coreutils gnugrep gnused ]}:"\$PATH"
     exec "$out/bin/.slack-wrapped" "\$@"
     WRAPPER
 
diff --git a/pkgs/tools/networking/slirp4netns/default.nix b/pkgs/tools/networking/slirp4netns/default.nix
index 6b9279a8190..60cb3413253 100644
--- a/pkgs/tools/networking/slirp4netns/default.nix
+++ b/pkgs/tools/networking/slirp4netns/default.nix
@@ -6,17 +6,18 @@
 , libcap
 , libseccomp
 , libslirp
+, nixosTests
 }:
 
 stdenv.mkDerivation rec {
   pname = "slirp4netns";
-  version = "1.0.1";
+  version = "1.1.4";
 
   src = fetchFromGitHub {
     owner = "rootless-containers";
     repo = "slirp4netns";
     rev = "v${version}";
-    sha256 = "1p5cvq0jsjkl136b8cz3j552x01g96j38ygh6m8ss62bmyzb8ayc";
+    sha256 = "13hlljkqss9abjpwaa5gcn6qnax0ws03zzh45c4rv1if7rwk6nbl";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
@@ -25,6 +26,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.tests = { inherit (nixosTests) podman; };
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/rootless-containers/slirp4netns";
     description = "User-mode networking for unprivileged network namespaces";
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/ssldump/default.nix b/pkgs/tools/networking/ssldump/default.nix
index 2c008cbb36a..b492b5a226b 100644
--- a/pkgs/tools/networking/ssldump/default.nix
+++ b/pkgs/tools/networking/ssldump/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "ssldump";
-  version = "0.9b3";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "adulau";
     repo = "ssldump";
-    rev = "4529d03a50d39d3697c3e39a3d6f6c9b29448aa0";
-    sha256 = "0wwsamzxabfxcil5y2g4v2261vdspxlp12wz4xhji8607jbyjwr1";
+    rev = "7491b9851505acff95b2c68097e9b9f630d418dc";
+    sha256 = "1j3rln86khdnc98v50hclvqaq83a24c1rfzbcbajkbfpr4yxpnpd";
   };
 
   buildInputs = [ libpcap openssl ];
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/tcpreplay/default.nix b/pkgs/tools/networking/tcpreplay/default.nix
index d6d7b45364a..b40df721c83 100644
--- a/pkgs/tools/networking/tcpreplay/default.nix
+++ b/pkgs/tools/networking/tcpreplay/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tcpreplay";
-  version = "4.3.2";
+  version = "4.3.3";
 
   src = fetchurl {
     url = "https://github.com/appneta/tcpreplay/releases/download/v${version}/tcpreplay-${version}.tar.gz";
-    sha256 = "0ld9v88g5xs2rykimksmhlkwbv2r97575c4aqmqdxbvc37crnisg";
+    sha256 = "1plgjm3dr9rr5q71s7paqk2wgrvkihbk2yrf9g3zaks3m750497d";
   };
 
   buildInputs = [ libpcap ];
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 90b16e37ed7..081819458f0 100644
--- a/pkgs/tools/networking/tendermint/default.nix
+++ b/pkgs/tools/networking/tendermint/default.nix
@@ -2,16 +2,22 @@
 
 buildGoModule rec {
   pname = "tendermint";
-  version = "0.32.11";
+  version = "0.33.8";
 
   src = fetchFromGitHub {
     owner = "tendermint";
     repo = pname;
     rev = "v${version}";
-    sha256 = "17p7khfiv5aflpl4imbqp8v7gignd6v6a7g80xlnzgix5ismh84l";
+    sha256 = "1dcr60gmbkb6833n49mjmlr082ahlv7alaqycl8g3d4f93kdm5c3";
   };
 
-  modSha256 = "1sdjzj52gkqk51ml29hijzv64clmi38km5z7j7paf28dla2brfxq";
+  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.";
diff --git a/pkgs/tools/networking/termshark/default.nix b/pkgs/tools/networking/termshark/default.nix
index ea1ef86f979..51168f01f44 100644
--- a/pkgs/tools/networking/termshark/default.nix
+++ b/pkgs/tools/networking/termshark/default.nix
@@ -14,7 +14,9 @@ buildGoModule rec {
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ wireshark-cli ];
 
-  modSha256 = "0lp4gky76di7as78421p3lsirfr7mic3z204ildvj6gf6d15svpr";
+  vendorSha256 = "14apff3vcbndr30765lzi4qswakavb4396bjixxvpxv6i5c04dq7";
+
+  doCheck = false;
 
   postFixup = ''
     wrapProgram $out/bin/termshark --prefix PATH : ${stdenv.lib.makeBinPath [ wireshark-cli ]}
diff --git a/pkgs/tools/networking/tinyproxy/default.nix b/pkgs/tools/networking/tinyproxy/default.nix
index 1a476676a25..7d3c49db7b7 100644
--- a/pkgs/tools/networking/tinyproxy/default.nix
+++ b/pkgs/tools/networking/tinyproxy/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, autoreconfHook, asciidoc, libxml2,
   libxslt, docbook_xsl }:
 
-stdenv.mkDerivation rec{
+stdenv.mkDerivation rec {
   pname = "tinyproxy";
   version = "1.10.0";
 
diff --git a/pkgs/tools/networking/tridactyl-native/default.nix b/pkgs/tools/networking/tridactyl-native/default.nix
index bca0fcb81c7..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.18.1";
+  version = "1.20.0";
 
   src = fetchFromGitHub {
     owner = "tridactyl";
     repo = "tridactyl";
     rev = version;
-    sha256 = "0f4agsh0gqpyhl3nysv4x9f74hlnch27gp3l8bpl645kbbfkg0di";
+    sha256 = "14p6jadw4yij45rrwjbyf1lq3zpsni4sph88c6mlwlf8w830s3q8";
   };
   sourceRoot = "source/native";
 
diff --git a/pkgs/tools/networking/wormhole/default.nix b/pkgs/tools/networking/tunnelto/default.nix
index 2b826224f42..c0dce98c444 100644
--- a/pkgs/tools/networking/wormhole/default.nix
+++ b/pkgs/tools/networking/tunnelto/default.nix
@@ -7,17 +7,17 @@
 }:
 
 rustPlatform.buildRustPackage rec {
-  pname = "wormhole";
-  version = "0.1.5";
+  pname = "tunnelto";
+  version = "0.1.12";
 
   src = fetchFromGitHub {
     owner = "agrinman";
     repo = pname;
     rev = version;
-    sha256 = "0aq2myzqd9xqz4zdl03jhdd7f22y9k39xdhiark6ymhwcxijsq8y";
+    sha256 = "1vvb619cq3n88y2s8lncwcyrhb5s4gpjfiyia91pilcpnfdb04y2";
   };
 
-  cargoSha256 = "1gjqiv8sgdab0i461v72zcvh91cpqmmpcc3qyx3svq0391rwzp46";
+  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 c03f68c36e2..39a7b11f09f 100644
--- a/pkgs/tools/networking/unbound/default.nix
+++ b/pkgs/tools/networking/unbound/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "unbound";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchurl {
     url = "https://unbound.net/downloads/${pname}-${version}.tar.gz";
-    sha256 = "0mg9divpysr42sp0m693a70693dp8025v6c9dv1yabr4g1jlhbqm";
+    sha256 = "1xqywn2qdmjjq0csrqxh9p2rnizdrr1f99zdx87z7f3fyyc0fbwz";
   };
 
   # https://github.com/NLnetLabs/unbound/pull/90
diff --git a/pkgs/tools/networking/urlwatch/default.nix b/pkgs/tools/networking/urlwatch/default.nix
index e7cbaa73cce..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.17";
+  version = "2.19";
 
   src = fetchFromGitHub {
     owner  = "thp";
     repo   = "urlwatch";
     rev    = version;
-    sha256 = "1865p3yczgpq8gvgh4cpgbx2ibc1fwycd7pagga9sj8r3q0giqyk";
+    sha256 = "05vxs0x8gnsv2r9cy0brqny1y5jnj2mw11lqc8lqahx84xcs2m00";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/networking/v2ray/default.nix b/pkgs/tools/networking/v2ray/default.nix
index 762d68acdb1..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.0";
+  version = "4.26.0";
 
   src = fetchFromGitHub {
     owner = "v2ray";
     repo = "v2ray-core";
     rev = "v${version}";
-    sha256 = "0if53d1blj1wf572z21dsywx6czbmhs5dpccx5z1knjhh2xgg9lm";
+    sha256 = "069wm0n44i4l9pnrhwf60ssld65p6gfj4wfc68hrhj4zi4jvlyds";
   };
 
+  vendorSha256 = "1520h69z0inbsrw5505cxbinqakvwcrdx3pisrwnp9lv4jsrzzsr";
+
   assets = {
     # MIT licensed
     "geoip.dat" = let
-      geoipRev = "202003180002";
-      geoipSha256 = "08d383phc5qk7glq25nkf1g8za38415x2952phy525ail88afpwl";
+      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 = "202003221514";
-      geositeSha256 = "1d4gv6714m97i57srrzybnmc4322qv5lypkqbmhcxb8bi4ljpf1m";
+      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 bf6e6cd55ae..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;
 
-    modSha256 = "11gsncy3449a7y6w6pr7acqabyj2q2a1q52f8fcl5cdz1vjbmmxi";
+    inherit vendorSha256;
+
+    doCheck = false;
 
     buildPhase = ''
       runHook preBuild
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/vde2/default.nix b/pkgs/tools/networking/vde2/default.nix
index be3d1267861..b10ec5c1695 100644
--- a/pkgs/tools/networking/vde2/default.nix
+++ b/pkgs/tools/networking/vde2/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     })
   ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl [
     (fetchpatch {
-      url = "https://git.alpinelinux.org/cgit/aports/plain/main/vde2/musl-build-fix.patch?id=ddee2f86a48e087867d4a2c12849b2e3baccc238";
+      url = "https://git.alpinelinux.org/aports/plain/main/vde2/musl-build-fix.patch?id=ddee2f86a48e087867d4a2c12849b2e3baccc238";
       sha256 = "0b5382v541bkxhqylilcy34bh83ag96g71f39m070jzvi84kx8af";
     })
   ];
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/wifite2/default.nix b/pkgs/tools/networking/wifite2/default.nix
index 505e461e480..101c4643a77 100644
--- a/pkgs/tools/networking/wifite2/default.nix
+++ b/pkgs/tools/networking/wifite2/default.nix
@@ -3,14 +3,14 @@
 , hcxdumptool, pyrit, which }:
 
 python3.pkgs.buildPythonApplication rec {
-  version = "2.5.3";
+  version = "2.5.5";
   pname = "wifite2";
 
   src = fetchFromGitHub {
     owner = "kimocoder";
     repo = "wifite2";
     rev = version;
-    sha256 = "080hbjpbgdnzr6jkmg5cb8dvzxm57zpi4c9x0y92yy472vqll3ax";
+    sha256 = "0rh54gj471dn8442imxwasjrrwzsx4m40nylkw3y6p8rbjmb92h4";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/wireguard-go/default.nix b/pkgs/tools/networking/wireguard-go/default.nix
index 41946b88471..2913a31e16a 100644
--- a/pkgs/tools/networking/wireguard-go/default.nix
+++ b/pkgs/tools/networking/wireguard-go/default.nix
@@ -17,6 +17,10 @@ buildGoPackage rec {
 
   passthru.updateScript = ./update.sh;
 
+  postInstall = ''
+    mv $out/bin/wireguard $out/bin/wireguard-go
+  '';
+
   meta = with stdenv.lib; {
     description = "Userspace Go implementation of WireGuard";
     homepage = "https://git.zx2c4.com/wireguard-go/about/";
diff --git a/pkgs/tools/networking/wireguard-tools/default.nix b/pkgs/tools/networking/wireguard-tools/default.nix
index 4b6e2aa9f18..c3e4c637109 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.20200510";
+  version = "1.0.20200820";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-tools/snapshot/wireguard-tools-${version}.tar.xz";
-    sha256 = "0xqchidfn1j3jq5w7ck570aib12q9z0mfvwhmnyzqxx7d3qh76j6";
+    sha256 = "138pf23x39xm68pa4ks3g76axphl8pz5jw4fyi54wi7rvxclybc7";
   };
 
   outputs = [ "out" "man" ];
@@ -49,9 +49,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = ./update.sh;
-    tests = {
-      inherit (nixosTests) wireguard wg-quick wireguard-generated wireguard-namespaces;
-    };
+    tests = nixosTests.wireguard;
   };
 
   meta = {
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 d8c8c429ef9..90cd64b83ad 100644
--- a/pkgs/tools/networking/yggdrasil/default.nix
+++ b/pkgs/tools/networking/yggdrasil/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "147kl2kvv1rn3yk0mlvd998a2yayjl07csxxkjvs6264j6csb860";
   };
 
-  modSha256 = "1ffp7q7kbkm1312sz6xnpc7342iczy9vj3m76lflirr1ljmw0dnb";
+  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
@@ -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 ];
   };
 }
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/nix/cached-nix-shell/default.nix b/pkgs/tools/nix/cached-nix-shell/default.nix
index 03f6bc2b117..2db9ee6d9b3 100644
--- a/pkgs/tools/nix/cached-nix-shell/default.nix
+++ b/pkgs/tools/nix/cached-nix-shell/default.nix
@@ -1,25 +1,25 @@
 { stdenv, fetchFromGitHub, openssl, pkgconfig, ronn, rustPlatform }:
 
-let 
+let
   blake3-src = fetchFromGitHub {
     owner = "BLAKE3-team";
     repo = "BLAKE3";
-    rev = "0.3.1";
-    sha256 = "0wkxx2w56hsng28p8zpndsy288ix4s5qg6xqjzgjz53fbyk46hda";
+    rev = "0.3.3";
+    sha256 = "0av41ld0gqf3g60gcllpz59nqlr7r62v99mgfq9gs0p8diw5gi7x";
   };
 
 in rustPlatform.buildRustPackage rec {
   pname = "cached-nix-shell";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "xzfc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0pzwknpc4qrh9pv5z0xvldql2dkj9ddksvaci86a4f8cnd86p2l6";
+    sha256 = "1ni671wr2lrvyz6myaz3v4llrjvq4jc1ygw1m7rvnadzyf3va3lw";
   };
 
-  cargoSha256 = "1n88gcnrfdrk025hb54igc83cn5vlv8n6ndyx1ydmzhd95vhbznf";
+  cargoSha256 = "19i39b1yqdf81ql4psr3nfah6ci2mw3ljkv740clqmz088j2av8g";
 
   # The BLAKE3 C library is intended to be built by the project depending on it
   # rather than as a standalone library.
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 82da6b7b93c..c4d9aae267e 100644
--- a/pkgs/tools/package-management/cargo-about/default.nix
+++ b/pkgs/tools/package-management/cargo-about/default.nix
@@ -1,22 +1,21 @@
 { lib, rustPlatform, fetchFromGitHub }:
 rustPlatform.buildRustPackage rec {
   pname = "cargo-about";
-  version = "0.2.0";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = "cargo-about";
     rev = "${version}";
-    sha256 = "0bsay1vqi5b3z7qjwbkwx3ikmpjzc0kswbajm50xmcwlg8jrn420";
+    sha256 = "00ing1v6vjqfvirp3mbayn8rwvxf72wnhz9249k2iifw8bl2r2hd";
   };
 
-  cargoSha256 = "1ynalwaqa70ihgras3frp5l3xniz58hwp108wkxn6zj8lwxbxfgx";
+  cargoSha256 = "1wmw7knkx79fbwizaj9qkcnw0ld1lsfhca8mfpn5f0daxa5v5y97";
 
   meta = with lib; {
     description = "Cargo plugin to generate list of all licenses for a crate";
     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 c6e8b4803cc..43a2fccd878 100644
--- a/pkgs/tools/package-management/cargo-deb/default.nix
+++ b/pkgs/tools/package-management/cargo-deb/default.nix
@@ -2,7 +2,9 @@
 , lib
 , fetchFromGitHub
 , rustPlatform
-, Security }:
+, rust
+, Security
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deb";
@@ -19,11 +21,17 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "1vqnnqn6rzkdi239bh3lk7gaxr7w6v3c4ws4ya1ah04g6v9hkzlw";
 
+  checkType = "debug";
+
+  preCheck = ''
+    substituteInPlace tests/command.rs \
+      --replace 'target/debug' "target/${rust.toRustTarget stdenv.buildPlatform}/debug"
+  '';
+
   meta = with lib; {
     description = "Generate Debian packages from information in Cargo.toml";
     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 4c591777691..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.1";
+  version = "0.3.6";
 
   src = fetchFromGitHub {
     owner = "tversteeg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wg8wavbs063dnpjia7wd60nf97v7pl4lm6s9xndpai1r1c99c2d";
+    sha256 = "15d21qv8cbzwpz2gsq1cgvxdbqm45zq2wfphhjqq77z1kay43m3f";
   };
 
-  cargoSha256 = "0igq8aml22c26w43zgk2gii8yl8mhs8ikfh0bn32ajwigqfk4vaq";
+  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..39b34bf153d 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.0";
   pname = "librepo";
 
   outputs = [ "out" "dev" "py" ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "rpm-software-management";
     repo = "librepo";
     rev = version;
-    sha256 = "1kdv0xyrbd942if82yvm9ykcskziq2xhw5cpb3xv4wx32a9kc8yz";
+    sha256 = "070zgay0cbw6jrkcfp4qql9f9ydd41ilwk39xdrp939b23gp112d";
   };
 
   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/morph/default.nix b/pkgs/tools/package-management/morph/default.nix
index 130bf2bb2e5..5ae4f5731ba 100644
--- a/pkgs/tools/package-management/morph/default.nix
+++ b/pkgs/tools/package-management/morph/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "morph";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "dbcdk";
     repo = "morph";
     rev = "v${version}";
-    sha256 = "1y6clzi8sfnrv4an26b44r24nnxds1kj9aw3lmjbgxl9yrxxsj1k";
+    sha256 = "064ccvvq4yk17jy5jvi1nxfp5ajvnvn2k4zvh9v0n3ragcl3rd20";
   };
 
   goPackagePath = "github.com/dbcdk/morph";
@@ -22,13 +22,13 @@ buildGoPackage rec {
     main.version=${version}
   '';
 
-  prePatch = ''
+  postPatch = ''
     go-bindata -pkg assets -o assets/assets.go data/
   '';
 
   postInstall = ''
     mkdir -p $lib
-    cp -v $src/data/*.nix $lib
+    cp -v go/src/$goPackagePath/data/*.nix $lib
     wrapProgram $out/bin/morph --prefix PATH : ${lib.makeBinPath [ openssh ]};
   '';
 
diff --git a/pkgs/tools/package-management/morph/deps.nix b/pkgs/tools/package-management/morph/deps.nix
index fdae5ef39ee..4da6f0278b7 100644
--- a/pkgs/tools/package-management/morph/deps.nix
+++ b/pkgs/tools/package-management/morph/deps.nix
@@ -63,4 +63,4 @@
       sha256 = "06xrp05njwam4sn031fkmd4gym5wfsw5q0v24nqhs4883lsx9dwq";
     };
   }
-]
+]
\ 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 54435b76947..d559ca8921c 100644
--- a/pkgs/tools/package-management/mynewt-newt/default.nix
+++ b/pkgs/tools/package-management/mynewt-newt/default.nix
@@ -22,7 +22,9 @@ buildGoModule rec {
     })
   ];
 
-  modSha256 = "068r8wa2pgd68jv50x0l1w8n96f97b3mgv7z6f85280ahgywaasq";
+  vendorSha256 = "1sh9mx3lc28fzvc1yrhz58rlbaac7aq1dqyvxwj98vld3kigpv1z";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     homepage = "https://mynewt.apache.org/";
diff --git a/pkgs/tools/package-management/nfpm/default.nix b/pkgs/tools/package-management/nfpm/default.nix
index 0b5f5edf399..41ec0234088 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.2.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0zl8xf74k5is8rxbirrqb5cnfgrlppr1gchfqm31305mnpicr92s";
+    sha256 = "1q4fzjlaiwsm028cwcw7xgcbdkccw18f2mf1vh7lz42l1bxy8bk4";
   };
 
-  modSha256 = "14izjwadl4ify0wrz0yinqvayar79h0pxxqj5n69a5dgbx09fp0l";
+  vendorSha256 = "1bsb05qhr9zm8yar8mdi3mw0i5ak1s5x0i8qkz5fd6wcqnsw2jjw";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/pkgs/tools/package-management/nix-bundle/default.nix b/pkgs/tools/package-management/nix-bundle/default.nix
index 352d1e68b50..41ce0967b2e 100644
--- a/pkgs/tools/package-management/nix-bundle/default.nix
+++ b/pkgs/tools/package-management/nix-bundle/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nix-bundle";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "matthewbauer";
     repo = pname;
     rev = "v${version}";
-    sha256 = "084m9hqm1nhwln2sbg8ck2v2dprvpldxxqmd1r8fcj3dmn4bysz0";
+    sha256 = "0hdvdjm467w37clkhbifn54hbdmnxlbk66cj88lwaz26j4s2ik5g";
   };
 
   # coreutils, gnutar is actually needed by nix for bootstrap
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-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-scripts/default.nix b/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
index 2c5781a95b8..bab12ca8e8d 100644
--- a/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
+++ b/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
@@ -1,5 +1,5 @@
 { stdenv, makeWrapper, buildEnv,
-  bazaar, coreutils, cvs, findutils, gawk, git, gnused, mercurial, nix, subversion
+  breezy, coreutils, cvs, findutils, gawk, git, gnused, mercurial, nix, subversion
 }:
 
 let mkPrefetchScript = tool: src: deps:
@@ -26,7 +26,7 @@ let mkPrefetchScript = tool: src: deps:
     };
   };
 in rec {
-  nix-prefetch-bzr = mkPrefetchScript "bzr" ../../../build-support/fetchbzr/nix-prefetch-bzr [ bazaar ];
+  nix-prefetch-bzr = mkPrefetchScript "bzr" ../../../build-support/fetchbzr/nix-prefetch-bzr [ breezy ];
   nix-prefetch-cvs = mkPrefetchScript "cvs" ../../../build-support/fetchcvs/nix-prefetch-cvs [ cvs ];
   nix-prefetch-git = mkPrefetchScript "git" ../../../build-support/fetchgit/nix-prefetch-git [ coreutils findutils gawk git ];
   nix-prefetch-hg  = mkPrefetchScript "hg"  ../../../build-support/fetchhg/nix-prefetch-hg   [ mercurial ];
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-universal-prefetch/default.nix b/pkgs/tools/package-management/nix-universal-prefetch/default.nix
index 7079904735d..224ccd1cd9e 100644
--- a/pkgs/tools/package-management/nix-universal-prefetch/default.nix
+++ b/pkgs/tools/package-management/nix-universal-prefetch/default.nix
@@ -6,13 +6,13 @@
 # No gems used, so mkDerivation is fine.
 stdenv.mkDerivation rec {
   pname = "nix-universal-prefetch";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "samueldr";
     repo = "nix-universal-prefetch";
     rev = "v${version}";
-    sha256 = "1id9iaibrm2d3fa9dkcxnb3sd0j1vh502181gdd199a1cfsmzh1i";
+    sha256 = "1nmxp6846ip2x3mibys3ymgi0813g18p9szqnsciiib3dbis4kwf";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/package-management/nix-update/default.nix b/pkgs/tools/package-management/nix-update/default.nix
new file mode 100644
index 00000000000..bd4ff86c994
--- /dev/null
+++ b/pkgs/tools/package-management/nix-update/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, nix
+, nix-prefetch
+}:
+
+buildPythonApplication rec {
+  pname = "nix-update";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "Mic92";
+    repo = pname;
+    rev = version;
+    sha256 = "0mw31n7kqfr7fskkxp58b0wprxj1pj6n1zs6ymvvl548gs5rgn2s";
+  };
+
+  makeWrapperArgs = [
+    "--prefix" "PATH" ":" (lib.makeBinPath [ nix nix-prefetch ])
+  ];
+
+  checkPhase = ''
+    $out/bin/nix-update --help
+  '';
+
+  meta = with lib; {
+    description = "Swiss-knife for updating nix packages";
+    inherit (src.meta) homepage;
+    license = licenses.mit;
+    maintainers = with maintainers; [ mic92 zowoq ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index c44c7d4c96d..05036770316 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -13,7 +13,7 @@ common =
   , bash, coreutils, gzip, gnutar
   , pkgconfig, boehmgc, perlPackages, libsodium, brotli, boost, editline, nlohmann_json
   , autoreconfHook, autoconf-archive, bison, flex, libxml2, libxslt, docbook5, docbook_xsl_ns
-  , jq, libarchive, rustc, cargo
+  , jq, libarchive
   # Used by tests
   , gmock
   , busybox-sandbox-shell
@@ -21,9 +21,9 @@ common =
   , stateDir
   , confDir
   , withLibseccomp ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) libseccomp.meta.platforms, libseccomp
-  , withAWS ? stdenv.isLinux || stdenv.isDarwin, aws-sdk-cpp
-
-  , name, suffix ? "", src, crates ? null
+  , withAWS ? !enableStatic && (stdenv.isLinux || stdenv.isDarwin), aws-sdk-cpp
+  , enableStatic ? false
+  , name, suffix ? "", src
 
   }:
   let
@@ -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 rustc cargo ]
+        ++ lib.optionals is24 [ libarchive gmock ]
         ++ lib.optional withLibseccomp libseccomp
         ++ lib.optional withAWS
             ((aws-sdk-cpp.override {
@@ -65,12 +65,21 @@ common =
       propagatedBuildInputs = [ boehmgc ];
 
       # Seems to be required when using std::atomic with 64-bit types
-      NIX_LDFLAGS = lib.optionalString (stdenv.hostPlatform.system == "armv5tel-linux" || stdenv.hostPlatform.system == "armv6l-linux") "-latomic";
+      NIX_LDFLAGS =
+        # need to list libraries individually until
+        # https://github.com/NixOS/nix/commit/3e85c57a6cbf46d5f0fe8a89b368a43abd26daba
+        # is in a release
+          lib.optionalString enableStatic "-lssl -lbrotlicommon -lssh2 -lz -lnghttp2 -lcrypto"
+
+        # need to detect it here until
+        # https://github.com/NixOS/nix/commits/74b4737d8f0e1922ef5314a158271acf81cd79f8
+        # is in a release
+        + lib.optionalString (stdenv.hostPlatform.system == "armv5tel-linux" || stdenv.hostPlatform.system == "armv6l-linux") "-latomic";
 
       preConfigure =
         # Copy libboost_context so we don't get all of Boost in our closure.
         # https://github.com/NixOS/nixpkgs/issues/45462
-        ''
+        lib.optionalString (!enableStatic) ''
           mkdir -p $out/lib
           cp -pd ${boost}/lib/{libboost_context*,libboost_thread*,libboost_system*} $out/lib
           rm -f $out/lib/*.a
@@ -79,11 +88,6 @@ common =
             patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib $out/lib/libboost_thread.so.*
           ''}
         '' +
-        # Unpack the Rust crates.
-        lib.optionalString is24 ''
-          tar xvf ${crates} -C nix-rust/
-          mv nix-rust/nix-vendored-crates* nix-rust/vendor
-        '' +
         # For Nix-2.3, patch around an issue where the Nix configure step pulls in the
         # build system's bash and other utilities when cross-compiling
         lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform && isExactly23) ''
@@ -115,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" ];
 
@@ -178,10 +183,10 @@ in rec {
   nix = nixStable;
 
   nixStable = callPackage common (rec {
-    name = "nix-2.3.4";
+    name = "nix-2.3.7";
     src = fetchurl {
       url = "https://nixos.org/releases/nix/${name}/${name}.tar.xz";
-      sha256 = "1c626a0de0acc69830b1891ec4d3c96aabe673b2a9fd04cef84f2304d05ad00d";
+      sha256 = "dd8f52849414e5a878afe7e797aa4e22bab77c875d9da5a38d5f1bada704e596";
     };
 
     inherit storeDir stateDir confDir boehmgc;
@@ -191,40 +196,18 @@ in rec {
 
   nixUnstable = lib.lowPrio (callPackage common rec {
     name = "nix-2.4${suffix}";
-    suffix = "pre7534_b92f58f6";
+    suffix = "pre20200721_ff314f1";
 
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "b92f58f6d9e44f97002d1722bd77bad939824c1c";
-      sha256 = "1p791961y5v04kpz37g6hm98f1ig7i34inxl9dcj3pbqhf5kicxg";
-    };
-
-    crates = fetchurl {
-      url = "https://hydra.nixos.org/build/118797694/download/1/nix-vendored-crates-2.4pre7534_b92f58f6.tar.xz";
-      sha256 = "a4c2612bbd81732bbb899bc0c230e07b16f6b6150ffbb19c4907dedbbc2bf9fc";
+      rev = "ff314f186e3f91d87af6ad96c0ae3b472494b940";
+      hash = "sha256-QibpLo4/gf2xYGoeQcgjZzH/qy5TBRVH+QCHgqOwur0=";
     };
 
     inherit storeDir stateDir confDir boehmgc;
   });
 
-  nixFlakes = lib.lowPrio (callPackage common rec {
-    name = "nix-2.4${suffix}";
-    suffix = "pre20200501_941f952";
-
-    src = fetchFromGitHub {
-      owner = "NixOS";
-      repo = "nix";
-      rev = "941f95284ab57e9baa317791327cf1715d8564b5";
-      sha256 = "0d99jl5baxji5dmqb4fwmbffx0z04k0naanms5zzbwvxdmzn3yhs";
-    };
-
-    crates = fetchurl {
-      url = "https://hydra.nixos.org/build/118093786/download/1/nix-vendored-crates-2.4pre20200501_941f952.tar.xz";
-      sha256 = "060f4n5srdbb8vsj0m14aqch7im79a4h5g3nrs41p1xc602vhcdl";
-    };
-
-    inherit storeDir stateDir confDir boehmgc;
-  });
+  nixFlakes = nixUnstable;
 
 }
diff --git a/pkgs/tools/package-management/nixui/node-packages.nix b/pkgs/tools/package-management/nixui/node-packages.nix
index f822bdb5333..b5b42e9164a 100644
--- a/pkgs/tools/package-management/nixui/node-packages.nix
+++ b/pkgs/tools/package-management/nixui/node-packages.nix
@@ -64,7 +64,7 @@ let
       version = "1.9.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/underscore/-/underscore-1.9.2.tgz";
-        sha512 = "D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ==";
+        sha512 = "0fpcm4n2qlycl50j6k3fv7baybnzf1wbsm2ng0vwfsdi40fyvsvvl0k1i427hgpknhj5hbcwff3swckw6wx96kw4dgwvldi56v6lzqg";
       };
     };
   };
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/package-management/reuse/default.nix b/pkgs/tools/package-management/reuse/default.nix
index 13a3a85f082..01a1bf4a933 100644
--- a/pkgs/tools/package-management/reuse/default.nix
+++ b/pkgs/tools/package-management/reuse/default.nix
@@ -4,13 +4,13 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "reuse";
-  version = "0.7.0";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     owner = "fsfe";
     repo = "reuse-tool";
     rev = "v${version}";
-    sha256 = "04i8zd66cs152h28k9085nqg937wp31pz2yqywaldx1gywijyd8h";
+    sha256 = "0wkk107s0bpvbknapns0qdzf8csrzc2j6gliy6pa8z208fcfzyy3";
   };
 
   propagatedBuildInputs = [
@@ -21,6 +21,7 @@ buildPythonApplication rec {
     license-expression
     requests
     setuptools
+    setuptools_scm
   ];
 
   checkInputs = [ pytest ];
diff --git a/pkgs/tools/package-management/rpm/default.nix b/pkgs/tools/package-management/rpm/default.nix
index fdcf9832e66..fee282de52f 100644
--- a/pkgs/tools/package-management/rpm/default.nix
+++ b/pkgs/tools/package-management/rpm/default.nix
@@ -1,15 +1,15 @@
-{ stdenv
+{ stdenv, lib
 , pkgconfig, autoreconfHook
 , fetchurl, cpio, zlib, bzip2, file, elfutils, libbfd, libarchive, nspr, nss, popt, db, xz, python, lua
 }:
 
 stdenv.mkDerivation rec {
   pname = "rpm";
-  version = "4.14.2.1";
+  version = "4.15.1";
 
   src = fetchurl {
-    url = "http://ftp.rpm.org/releases/rpm-4.14.x/rpm-${version}.tar.bz2";
-    sha256 = "1nmck2fq9h85fgs3zhh6w1avlw5y16cbz5khd459ry3jfd5w4f8i";
+    url = "http://ftp.rpm.org/releases/rpm-${lib.versions.majorMinor version}.x/rpm-${version}.tar.bz2";
+    sha256 = "0c6jwail90fhha3bpx70w4a2i8ycxwvnx6zwxm121l8wc3wlbvyx";
   };
 
   outputs = [ "out" "dev" "man" ];
diff --git a/pkgs/tools/security/1password-gui/default.nix b/pkgs/tools/security/1password-gui/default.nix
new file mode 100644
index 00000000000..3373ab70b14
--- /dev/null
+++ b/pkgs/tools/security/1password-gui/default.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, fetchurl
+, appimageTools
+, makeWrapper
+, electron
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "1password";
+  version = "0.8.2-1";
+
+  src = fetchurl {
+    url = "https://onepassword.s3.amazonaws.com/linux/appimage/${pname}-${version}.AppImage";
+    sha256 = "0gxq8xrr20jgp7k0sq5a9k63mz94zb00yvc9jw1zhl2q70ji24sa";
+  };
+
+  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}"
+  '';
+
+  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/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/aflplusplus/default.nix b/pkgs/tools/security/aflplusplus/default.nix
index f99be6d7575..a0ef58ae8b6 100644
--- a/pkgs/tools/security/aflplusplus/default.nix
+++ b/pkgs/tools/security/aflplusplus/default.nix
@@ -1,6 +1,6 @@
 { stdenv, stdenvNoCC, fetchFromGitHub, callPackage, makeWrapper
-, clang_9, llvm_9, gcc, which, libcgroup, python, perl, gmp
-, file, cmocka, wine ? null, fetchpatch
+, clang, llvm, gcc, which, libcgroup, python, perl, gmp
+, file, wine ? null, fetchpatch
 }:
 
 # wine fuzzing is only known to work for win32 binaries, and using a mixture of
@@ -17,38 +17,28 @@ let
   libtokencap = callPackage ./libtokencap.nix { inherit aflplusplus; };
   aflplusplus = stdenvNoCC.mkDerivation rec {
     pname = "aflplusplus";
-    version = "2.64c";
+    version = "2.65c";
 
     src = fetchFromGitHub {
       owner = "AFLplusplus";
       repo = "AFLplusplus";
       rev = version;
-      sha256 = "0n618pk6nlmkcbv1qm05fny4mnhcprrw0ppmra1phvk1y22iildj";
+      sha256 = "1np2a3kypb2m8nyv6qnij18yzn41pl8619jzydci40br4vxial9l";
     };
     enableParallelBuilding = true;
 
-    # build of unsigaction32 broken in 2.64c:
-    # https://github.com/AFLplusplus/AFLplusplus/commit/079fdbf9bc5be1adba19e4bd08be965bd4dd79dc#commitcomment-38428357
-    # The applied patch fixes it.
-    patches = [
-      (fetchpatch {
-        url = "https://github.com/AFLplusplus/AFLplusplus/commit/5b9928f1a9d4b017ea04365ca8b522fde71236eb.patch";
-        sha256 = "1m4w9w4jaxb2mjkwvr6r4qa2j5cdzzpchjphpwd95861h0zvb6hh";
-      })
-    ];
-
     # Note: libcgroup isn't needed for building, just for the afl-cgroup
     # script.
-    nativeBuildInputs = [ makeWrapper which clang_9 gcc ];
-    buildInputs = [ llvm_9 python gmp ]
+    nativeBuildInputs = [ makeWrapper which clang gcc ];
+    buildInputs = [ llvm python gmp ]
       ++ stdenv.lib.optional (wine != null) python.pkgs.wrapPython;
 
 
     postPatch = ''
       # Replace the CLANG_BIN variables with the correct path
       substituteInPlace llvm_mode/afl-clang-fast.c \
-        --replace "CLANGPP_BIN" '"${clang_9}/bin/clang++"' \
-        --replace "CLANG_BIN" '"${clang_9}/bin/clang"' \
+        --replace "CLANGPP_BIN" '"${clang}/bin/clang++"' \
+        --replace "CLANG_BIN" '"${clang}/bin/clang"' \
         --replace 'getenv("AFL_PATH")' "(getenv(\"AFL_PATH\") ? getenv(\"AFL_PATH\") : \"$out/lib/afl\")"
 
       # Replace "gcc" and friends with full paths in afl-gcc
@@ -115,7 +105,7 @@ let
         wrapPythonProgramsIn $out/bin ${python.pkgs.pefile}
     '';
 
-    installCheckInputs = [ perl file cmocka ];
+    installCheckInputs = [ perl file ];
     doInstallCheck = true;
     installCheckPhase = ''
       # replace references to tools in build directory with references to installed locations
@@ -123,7 +113,7 @@ let
         --replace '../libcompcov.so' '`$out/bin/get-afl-qemu-libcompcov-so`' \
         --replace '../libdislocator.so' '`$out/bin/get-libdislocator-so`' \
         --replace '../libtokencap.so' '`$out/bin/get-libtokencap-so`'
-      perl -pi -e 's|(?<!\.)(\.\./)([^\s\/]+?)(?<!\.c)(?<!\.s?o)(?=\s)|\$out/bin/\2|g' test/test.sh
+      perl -pi -e 's|(?<!\.)(?<!-I)(\.\./)([^\s\/]+?)(?<!\.c)(?<!\.s?o)(?=\s)|\$out/bin/\2|g' test/test.sh
       cd test && ./test.sh
     '';
 
diff --git a/pkgs/tools/security/age/default.nix b/pkgs/tools/security/age/default.nix
index c8b4f069f79..8a6d008551e 100644
--- a/pkgs/tools/security/age/default.nix
+++ b/pkgs/tools/security/age/default.nix
@@ -2,9 +2,10 @@
 
 buildGoModule rec {
   pname = "age";
-  version = "unstable-2020-03-25";
-  goPackagePath = "github.com/FiloSottile/age";
-  modSha256 = "00yhn1894ni8bvkqm1vr0rqkky52pkhvdzbi2sqx3czlgb5ibw3h";
+  version = "1.0.0-beta4";
+  vendorSha256 = "0km7a2826j3fk2nrkmgc990chrkcfz006wfw14yilsa4p2hmfl7m";
+
+  doCheck = false;
 
   subPackages = [
     "cmd/age"
@@ -14,8 +15,8 @@ buildGoModule rec {
   src = fetchFromGitHub {
     owner = "FiloSottile";
     repo = "age";
-    rev = "f0f8092d60bb96737fa096c29ec6d8adb5810390";
-    sha256 = "079kfc8d1pr39hr4qnx48kviyzwg4p8m4pz0bdkypns4aq8ppbfk";
+    rev = "v${version}";
+    sha256 = "0pp6zn4rdypyxn1md9ppisiwiapkfkbh08rzfl3qwn0998wx6gnb";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/security/aws-okta/default.nix b/pkgs/tools/security/aws-okta/default.nix
index fe7d5e69f4d..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 = "0.26.3";
+  version = "1.0.4";
 
   goPackagePath = "github.com/segmentio/aws-okta";
 
@@ -10,13 +10,13 @@ buildGoPackage rec {
     owner = "segmentio";
     repo = "aws-okta";
     rev = "v${version}";
-    sha256 = "0n6xm3yv0lxfapchzfrqi05hk918n4lh1hcp7gq7hybam93rld96";
+    sha256 = "0a7xccnv0x0a6sydif0rvkdbw4jy9gjijajip1ac6m70l20dhl1v";
   };
 
-  goDeps = ./deps.nix;
-
   buildFlags = [ "--tags" "release" ];
 
+  buildFlagsArray = [ "-ldflags=-X main.Version=${version}" ];
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libusb1  libiconv ];
 
@@ -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/aws-okta/deps.nix b/pkgs/tools/security/aws-okta/deps.nix
deleted file mode 100644
index 180aa69d56c..00000000000
--- a/pkgs/tools/security/aws-okta/deps.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus.git";
-      rev = "a437dfd2463eaedbec3dfe443e477d3b0a810b3f";
-      sha256 = "1904s2bbc7p88anzjp6fyj3jrbm5p6wbb8j4490674dq10kkcfbj";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys/unix";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/sys.git";
-      rev = "b699b7032584f0953262cb2788a0ca19bb494703";
-      sha256 = "172sw1bm581qwal9pbf9qj1sgivr74nabbj8qq4q4fhgpzams9ix";
-    };
-  }
-  {
-    goPackagePath = "github.com/marshallbrekka/go-u2fhost";
-    fetch = {
-      type = "git";
-      url = "https://github.com/marshallbrekka/go-u2fhost";
-      rev = "72b0e7a3f583583996b3b382d2dfaa81fdc4b82c";
-      sha256 = "0apzmf0bjpr58ynw55agyjsl74zyg5qjk19nyyy4zhip3s9b1d0h";
-    };
-  }
-]
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 0560f91b22b..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";
+  version = "2.28";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "18hwz9m16pxlb7wp78iqmdi0kimrx3h05fs0zhzm8qhzancq8alf";
+    sha256 = "0aihinn3i3jj350l2rqph7nv3wy4nh4f8syidf77zybjcp9nmcys";
   };
 
-  modSha256 = "1qhmrjb3fvw6maxrl7hb3bizrw6szhwx6s2g59p5pj3dz4x8jajn";
+  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;
   };
 }
diff --git a/pkgs/tools/security/bitwarden/default.nix b/pkgs/tools/security/bitwarden/default.nix
index f2abc376cd2..4e087ee631e 100644
--- a/pkgs/tools/security/bitwarden/default.nix
+++ b/pkgs/tools/security/bitwarden/default.nix
@@ -16,11 +16,11 @@ let
   pname = "bitwarden";
 
   version = {
-    x86_64-linux = "1.17.2";
+    x86_64-linux = "1.20.1";
   }.${system} or "";
 
   sha256 = {
-    x86_64-linux = "0v7lrwj3sdypnqayknwg0cg9c2gfsxbjic5wswkfxljy652x8izx";
+    x86_64-linux = "1lywslkpgg9rxwz7kwfknkgdi0r47j14i420r5yxgkaizb7ww27z";
   }.${system} or "";
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/security/bitwarden_rs/default.nix b/pkgs/tools/security/bitwarden_rs/default.nix
index 6d3c4bccef9..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.14.2";
+  version = "1.16.3";
 
   src = fetchFromGitHub {
     owner = "dani-garcia";
     repo = pname;
     rev = version;
-    sha256 = "0413yjbnj4k917x48h1gnj64kygbr6c1n55f23qkvj0hgbxpgssz";
+    sha256 = "1scy8abzy6j1jsms84cg2nqkn1zsxr5mjikp2xh0yl0ckkk13ffn";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -25,7 +25,7 @@ in rustPlatform.buildRustPackage rec {
 
   RUSTC_BOOTSTRAP = 1;
 
-  cargoSha256 = "09747f9g7yyq9c8wbfdb3hwxii5xq23ynhba0vc01nhjpjyn0ksd";
+  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 0c60ab62106..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.13.2b";
+  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 = "1pba3d04gfnviv8r98anpv7m8r9r417s352r5fz8qzg8lr070540";
+    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 a02d04e1333..9aec14e0a41 100644
--- a/pkgs/tools/security/browserpass/default.nix
+++ b/pkgs/tools/security/browserpass/default.nix
@@ -12,7 +12,9 @@ buildGoModule rec {
 
   nativeBuildInputs = [ makeWrapper ];
 
-  modSha256 = "13yw7idgw8l48yvm4jjha0kbx6q22m2zp13y006mikavynqsr5kj";
+  vendorSha256 = "1wcbn0ip596f2dp68y6jmxgv20l0dgrcxg5cwclkawigj05416zj";
+
+  doCheck = false;
 
   postPatch = ''
     # Because this Makefile will be installed to be used by the user, patch
@@ -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 ];
   };
 }
diff --git a/pkgs/tools/security/bundler-audit/Gemfile.lock b/pkgs/tools/security/bundler-audit/Gemfile.lock
index 107e425bc57..f130b57912b 100644
--- a/pkgs/tools/security/bundler-audit/Gemfile.lock
+++ b/pkgs/tools/security/bundler-audit/Gemfile.lock
@@ -1,10 +1,10 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    bundler-audit (0.6.1)
+    bundler-audit (0.7.0.1)
       bundler (>= 1.2.0, < 3)
-      thor (~> 0.18)
-    thor (0.20.3)
+      thor (>= 0.18, < 2)
+    thor (1.0.1)
 
 PLATFORMS
   ruby
diff --git a/pkgs/tools/security/bundler-audit/default.nix b/pkgs/tools/security/bundler-audit/default.nix
index 6bcb341a834..c24831f26b0 100644
--- a/pkgs/tools/security/bundler-audit/default.nix
+++ b/pkgs/tools/security/bundler-audit/default.nix
@@ -21,6 +21,7 @@ bundlerEnv rec {
       - Does not require a network connection.
     '';
     homepage    = "https://github.com/rubysec/bundler-audit";
+    changelog   = "https://github.com/rubysec/bundler-audit/blob/v${version}/ChangeLog.md";
     license     = licenses.gpl3Plus;
     maintainers = with maintainers; [ primeos nicknovitski ];
     platforms   = platforms.unix;
diff --git a/pkgs/tools/security/bundler-audit/gemset.nix b/pkgs/tools/security/bundler-audit/gemset.nix
index 56d78b3e8f1..2121a3c08e5 100644
--- a/pkgs/tools/security/bundler-audit/gemset.nix
+++ b/pkgs/tools/security/bundler-audit/gemset.nix
@@ -1,19 +1,23 @@
 {
   bundler-audit = {
     dependencies = ["thor"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pm22xpn3xyymsainixnrk8v3l3xi9bzwkjkspx00cfzp84xvxbq";
+      sha256 = "04l9rs56rlvihbr2ybkrigjajgd3swa98lxvmdl8iylj1g5m7n0j";
       type = "gem";
     };
-    version = "0.6.1";
+    version = "0.7.0.1";
   };
   thor = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+      sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
       type = "gem";
     };
-    version = "0.20.3";
+    version = "1.0.1";
   };
 }
\ No newline at end of file
diff --git a/pkgs/tools/security/ccid/default.nix b/pkgs/tools/security/ccid/default.nix
index e74e1b61438..b7f408e748f 100644
--- a/pkgs/tools/security/ccid/default.nix
+++ b/pkgs/tools/security/ccid/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ccid";
-  version = "1.4.32";
+  version = "1.4.33";
 
   src = fetchurl {
     url = "https://ccid.apdu.fr/files/${pname}-${version}.tar.bz2";
-    sha256 = "0f8nzk7379ip4x2ii5vn6h67jyx733pq0ywnnsj2llbxi2vllpsl";
+    sha256 = "0974h2v9wq0j0ajw3c7yckaw8wqcppb2npfhfhmv9phijy9xlmjj";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/certstrap/default.nix b/pkgs/tools/security/certstrap/default.nix
index fb3c00e48f9..99ba5c9e29b 100644
--- a/pkgs/tools/security/certstrap/default.nix
+++ b/pkgs/tools/security/certstrap/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "certstrap";
-  version = "1.1.1";
+  version = "1.2.0";
 
   goPackagePath = "github.com/square/certstrap";
 
@@ -10,13 +10,12 @@ buildGoPackage rec {
     owner = "square";
     repo = "certstrap";
     rev = "v${version}";
-    sha256 = "0j7gi2nzykny7i0gjax9vixw72l9jcm4wnwxgm72hh1pji0ysa8n";
+    sha256 = "1ymchnn7c9g3pq7rw4lrwsd6z3wfjx90g7qgrw6r5hssl77mnscj";
   };
 
   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/chipsec/default.nix b/pkgs/tools/security/chipsec/default.nix
index 387fa4d750b..5dccf295065 100644
--- a/pkgs/tools/security/chipsec/default.nix
+++ b/pkgs/tools/security/chipsec/default.nix
@@ -2,13 +2,13 @@
 , kernel ? null, withDriver ? false }:
 pythonPackages.buildPythonApplication rec {
   pname = "chipsec";
-  version = "1.4.9";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "chipsec";
     repo = "chipsec";
     rev = version;
-    sha256 = "1p6w8294w5z2f4jwc22mqaggv5qajvmf9iifv7fl7wdz3wsvskrk";
+    sha256 = "1rxr9i08a22m15slvlkrhnki30jixi2ds096kmmc2nqzfr9yibmb";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/clamav/default.nix b/pkgs/tools/security/clamav/default.nix
index e1ea241c7fd..fb523c5299c 100644
--- a/pkgs/tools/security/clamav/default.nix
+++ b/pkgs/tools/security/clamav/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, pkgconfig
 , zlib, bzip2, libiconv, libxml2, openssl, ncurses, curl, libmilter, pcre2
-, libmspack, systemd
+, libmspack, systemd, Foundation
 }:
 
 stdenv.mkDerivation rec {
   pname = "clamav";
-  version = "0.102.2";
+  version = "0.102.4";
 
   src = fetchurl {
     url = "https://www.clamav.net/downloads/production/${pname}-${version}.tar.gz";
-    sha256 = "1lq7r6r2yl8pp3fkn32b0bsmbbl9pg90kpvhsa2clad3xg0drz49";
+    sha256 = "06rrzyrhnr0rswryijpbbzywr6387rv8qjq8sb8cl3h2d1m45ggf";
   };
 
   # don't install sample config files into the absolute sysconfdir folder
@@ -20,13 +20,12 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
     zlib bzip2 libxml2 openssl ncurses curl libiconv libmilter pcre2 libmspack
-    systemd
-  ];
+  ] ++ stdenv.lib.optional stdenv.isLinux systemd
+    ++ stdenv.lib.optional stdenv.isDarwin Foundation;
 
   configureFlags = [
     "--libdir=$(out)/lib"
     "--sysconfdir=/etc/clamav"
-    "--with-systemdsystemunitdir=$(out)/lib/systemd"
     "--disable-llvm" # enabling breaks the build at the moment
     "--with-zlib=${zlib.dev}"
     "--with-xml=${libxml2.dev}"
@@ -34,7 +33,8 @@ stdenv.mkDerivation rec {
     "--with-libcurl=${curl.dev}"
     "--with-system-libmspack"
     "--enable-milter"
-  ];
+  ] ++ stdenv.lib.optional stdenv.isLinux
+    "--with-systemdsystemunitdir=$(out)/lib/systemd";
 
   postInstall = ''
     mkdir $out/etc
@@ -46,6 +46,6 @@ stdenv.mkDerivation rec {
     description = "Antivirus engine designed for detecting Trojans, viruses, malware and other malicious threats";
     license = licenses.gpl2;
     maintainers = with maintainers; [ phreedom robberer qknight fpletz globin ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/security/clevis/default.nix b/pkgs/tools/security/clevis/default.nix
index 4acec7c8a5b..daeb5e0d39c 100644
--- a/pkgs/tools/security/clevis/default.nix
+++ b/pkgs/tools/security/clevis/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clevis";
-  version = "12";
+  version = "13";
 
   src = fetchFromGitHub {
     owner = "latchset";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1dbyl3c21h841w9lrrq6gd5y6dhamr0z5ixd87jz86cn02lznp5m";
+    sha256 = "1p522jjksxmdwjjxa32z2ij1g81ygpkmcx998d07g8pb6rfnknjy";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig asciidoc ];
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/doas/0001-add-NixOS-specific-dirs-to-safe-PATH.patch b/pkgs/tools/security/doas/0001-add-NixOS-specific-dirs-to-safe-PATH.patch
new file mode 100644
index 00000000000..d1a1997ba1f
--- /dev/null
+++ b/pkgs/tools/security/doas/0001-add-NixOS-specific-dirs-to-safe-PATH.patch
@@ -0,0 +1,24 @@
+From 9218347b8f833ab05d016dfba5617dcdeb59eb7b Mon Sep 17 00:00:00 2001
+From: Cole Helbling <cole.e.helbling@outlook.com>
+Date: Wed, 27 May 2020 08:02:57 -0700
+Subject: [PATCH] add NixOS-specific dirs to safe PATH
+
+---
+ doas.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/doas.c b/doas.c
+index e253905..2fdb20f 100644
+--- a/doas.c
++++ b/doas.c
+@@ -234,6 +234,7 @@ int
+ main(int argc, char **argv)
+ {
+ 	const char *safepath = "/bin:/sbin:/usr/bin:/usr/sbin:"
++	    "/run/current-system/sw/bin:/run/current-system/sw/sbin:/run/wrappers/bin:"
+ 	    "/usr/local/bin:/usr/local/sbin";
+ 	const char *confpath = NULL;
+ 	char *shargv[] = { NULL, NULL };
+-- 
+2.26.2
+
diff --git a/pkgs/tools/security/doas/default.nix b/pkgs/tools/security/doas/default.nix
index 58ada1086bc..baa2fc301a8 100644
--- a/pkgs/tools/security/doas/default.nix
+++ b/pkgs/tools/security/doas/default.nix
@@ -3,6 +3,8 @@
 , fetchFromGitHub
 , bison
 , pam
+
+, withTimestamp ? true
 }:
 
 stdenv.mkDerivation rec {
@@ -19,6 +21,17 @@ stdenv.mkDerivation rec {
   # otherwise confuses ./configure
   dontDisableStatic = true;
 
+  configureFlags = [
+    (lib.optionalString withTimestamp "--with-timestamp") # to allow the "persist" setting
+    "--pamdir=${placeholder "out"}/etc/pam.d"
+  ];
+
+  patches = [
+    # Allow doas to discover binaries in /run/current-system/sw/{s,}bin and
+    # /run/wrappers/bin
+    ./0001-add-NixOS-specific-dirs-to-safe-PATH.patch
+  ];
+
   postPatch = ''
     sed -i '/\(chown\|chmod\)/d' bsd.prog.mk
   '';
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..b637eacd3da
--- /dev/null
+++ b/pkgs/tools/security/doppler/default.nix
@@ -0,0 +1,28 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "doppler";
+  version = "3.10.1";
+
+  src = fetchFromGitHub {
+    owner = "dopplerhq";
+    repo = "cli";
+    rev = version;
+    sha256 = "0wzs480dg6q6j8jzhk5lkf5hs53jf7ljmnyw3i9xwqm9sxq7dsfx";
+  };
+
+  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/duo-unix/default.nix b/pkgs/tools/security/duo-unix/default.nix
index 2cf9b92745f..2c3a7a441af 100644
--- a/pkgs/tools/security/duo-unix/default.nix
+++ b/pkgs/tools/security/duo-unix/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "duo-unix";
-  version = "1.11.3";
+  version = "1.11.4";
 
   src = fetchurl {
     url    = "https://dl.duosecurity.com/duo_unix-${version}.tar.gz";
-    sha256 = "097i2dsnbndpnyc4nx1j76qkx1bxwwlxnzmp1h3j4raghddgiq0g";
+    sha256 = "1hqklf6jzrxn5hgh69bbl6962hwwgf06dlrb0ry7n5iy8w8imnsg";
   };
 
   buildInputs = [ pam openssl zlib ];
diff --git a/pkgs/tools/security/ecryptfs/default.nix b/pkgs/tools/security/ecryptfs/default.nix
index 9fd8c3ac7a2..e4caa9c4e18 100644
--- a/pkgs/tools/security/ecryptfs/default.nix
+++ b/pkgs/tools/security/ecryptfs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, perl, utillinux, keyutils, nss, nspr, python2, pam
+{ stdenv, fetchurl, pkgconfig, perl, utillinux, keyutils, nss, nspr, python2, pam, enablePython ? false
 , intltool, makeWrapper, coreutils, bash, gettext, cryptsetup, lvm2, rsync, which, lsof }:
 
 stdenv.mkDerivation rec {
@@ -33,8 +33,15 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ perl nss nspr python2 pam intltool makeWrapper ];
+  configureFlags = stdenv.lib.optionals (!enablePython) [ "--disable-pywrap" ];
+
+  nativeBuildInputs = [ pkgconfig ]
+  # if python2 support is requested, it is needed at builtime as well as runtime.
+  ++ stdenv.lib.optionals (enablePython) [ python2 ]
+  ;
+  buildInputs = [ perl nss nspr pam intltool makeWrapper ]
+  ++ stdenv.lib.optionals (enablePython) [ python2 ]
+  ;
   propagatedBuildInputs = [ coreutils gettext cryptsetup lvm2 rsync keyutils which ];
 
   postInstall = ''
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/fprintd/default.nix b/pkgs/tools/security/fprintd/default.nix
index b119a6ed29f..b14aff386ab 100644
--- a/pkgs/tools/security/fprintd/default.nix
+++ b/pkgs/tools/security/fprintd/default.nix
@@ -1,42 +1,70 @@
-{ thinkpad ? false
-, stdenv
-, fetchurl
+{ stdenv
+, fetchFromGitLab
 , fetchpatch
 , pkgconfig
-, intltool
-, libfprint-thinkpad ? null
-, libfprint ? null
+, meson
+, ninja
+, perl
+, gettext
+, cairo
+, gtk-doc
+, libxslt
+, docbook-xsl-nons
+, docbook_xml_dtd_412
 , glib
+, dbus
 , dbus-glib
 , polkit
 , nss
 , pam
 , systemd
-, autoreconfHook
-, gtk-doc
+, libfprint
+, python3
 }:
 
 stdenv.mkDerivation rec {
-  pname = "fprintd" + stdenv.lib.optionalString thinkpad "-thinkpad";
-  version = "0.9.0";
+  pname = "fprintd";
+  version = "1.90.1";
+  outputs = [ "out" "devdoc" ];
 
-  src = fetchurl {
-    url = "https://gitlab.freedesktop.org/libfprint/fprintd/uploads/9dec4b63d1f00e637070be1477ce63c0/fprintd-${version}.tar.xz";
-    sha256 = "182gcnwb6zjwmk0dn562rjmpbk7ac7dhipbfdhfic2sn1jzis49p";
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "libfprint";
+    repo = pname;
+    rev = version;
+    sha256 = "0mbzk263x7f58i9cxhs44mrngs7zw5wkm62j5r6xlcidhmfn03cg";
   };
 
   patches = [
+    # Fixes issue with ":" when there is multiple paths (might be the case on NixOS)
+    # https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/50
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/d7fec03f24d10f88d34581c72f0eef201f5eafac.patch";
+      sha256 = "0f88dhizai8jz7hpm5lpki1fx4593zcy89iwi4brsqbqc7jp9ls0";
+    })
+
+    # Fix locating libpam_wrapper for tests
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/40.patch";
+      sha256 = "0qqy090p93lzabavwjxzxaqidkcb3ifacl0d3yh1q7ms2a58yyz3";
+    })
     (fetchpatch {
-      url = "https://gitlab.freedesktop.org/libfprint/fprintd/merge_requests/16.patch";
-      sha256 = "1y39zsmxjll9hip8464qwhq5qg06c13pnafyafgxdph75lvhdll7";
+      url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/f401f399a85dbeb2de165b9b9162eb552ab6eea7.patch";
+      sha256 = "1bc9g6kc95imlcdpvp8qgqjsnsxg6nipr6817c1pz5i407yvw1iy";
     })
   ];
 
   nativeBuildInputs = [
-    intltool
     pkgconfig
-    autoreconfHook # Drop with above patch
-    gtk-doc # Drop with above patch
+    meson
+    ninja
+    perl
+    gettext
+    gtk-doc
+    libxslt
+    dbus
+    docbook-xsl-nons
+    docbook_xml_dtd_412
   ];
 
   buildInputs = [
@@ -46,23 +74,43 @@ stdenv.mkDerivation rec {
     nss
     pam
     systemd
-  ]
-  ++ stdenv.lib.optional thinkpad libfprint-thinkpad
-  ++ stdenv.lib.optional (!thinkpad) libfprint
-  ;
+    libfprint
+  ];
+
+  checkInputs = with python3.pkgs; [
+    python-dbusmock
+    dbus-python
+    pygobject3
+    pycairo
+    pypamtest
+  ];
 
-  configureFlags = [
-    # is hardcoded to /var/lib/fprint, this is for the StateDirectory install target
-    "--localstatedir=${placeholder "out"}/var"
-    "--sysconfdir=${placeholder "out"}/etc"
-    "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
+  mesonFlags = [
+    "-Dgtk_doc=true"
+    "-Dpam_modules_dir=${placeholder "out"}/lib/security"
+    "-Dsysconfdir=${placeholder "out"}/etc"
+    "-Ddbus_service_dir=${placeholder "out"}/share/dbus-1/system-services"
+    "-Dsystemd_system_unit_dir=${placeholder "out"}/lib/systemd/system"
   ];
 
+  PKG_CONFIG_DBUS_1_INTERFACES_DIR = "${placeholder "out"}/share/dbus-1/interfaces";
+  PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "${placeholder "out"}/share/polkit-1/actions";
+  PKG_CONFIG_DBUS_1_DATADIR = "${placeholder "out"}/share";
+
+  # FIXME: Ugly hack for tests to find libpam_wrapper.so
+  LIBRARY_PATH = stdenv.lib.makeLibraryPath [ python3.pkgs.pypamtest ];
+
+  doCheck = true;
+
+  postPatch = ''
+    patchShebangs po/check-translations.sh
+  '';
+
   meta = with stdenv.lib; {
     homepage = "https://fprint.freedesktop.org/";
     description = "D-Bus daemon that offers libfprint functionality over the D-Bus interprocess communication bus";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ abbradar ];
+    maintainers = with maintainers; [ abbradar elyhaka ];
   };
 }
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/gnome-keysign/default.nix b/pkgs/tools/security/gnome-keysign/default.nix
index d430a689524..4b9a6fb0e32 100644
--- a/pkgs/tools/security/gnome-keysign/default.nix
+++ b/pkgs/tools/security/gnome-keysign/default.nix
@@ -6,7 +6,6 @@
 , gobject-introspection
 , gtk3
 , glib
-, gnome3
 , gst_all_1
 }:
 
@@ -68,12 +67,6 @@ python3.pkgs.buildPythonApplication rec {
     twisted
   ];
 
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-    };
-  };
-
   # https://github.com/NixOS/nixpkgs/issues/56943
   strictDeps = false;
 
diff --git a/pkgs/tools/security/gnupg-pkcs11-scd/default.nix b/pkgs/tools/security/gnupg-pkcs11-scd/default.nix
index 4d6b97c7192..e173f66f748 100644
--- a/pkgs/tools/security/gnupg-pkcs11-scd/default.nix
+++ b/pkgs/tools/security/gnupg-pkcs11-scd/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/alonbl/${pname}/releases/download/${pname}-${version}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256:1mfh9zjbahjd788rq1mzx009pd7p1sq62sbz586rd7szif7pkpgx";
+    sha256 = "1mfh9zjbahjd788rq1mzx009pd7p1sq62sbz586rd7szif7pkpgx";
   };
 
   buildInputs = [ pkcs11helper pkgconfig openssl ];
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..3a99c8eb3f2 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.21";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${pname}-${version}.tar.bz2";
-    sha256 = "0c6a4v9p6qzhsw1pfcwc459bxpc8hma0w9z8iqb9khvligack9q4";
+    sha256 = "1v3nirp9m7yxjkkcdixibckl379pdyr3mdx8b1k379szzdw35s31";
   };
 
   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 c3426bee965..6e049917de2 100644
--- a/pkgs/tools/security/gobuster/default.nix
+++ b/pkgs/tools/security/gobuster/default.nix
@@ -14,7 +14,9 @@ buildGoModule rec {
     sha256 = "0q8ighqykh8qyvidnm6az6dc9mp32bbmhkmkqzl1ybbw6paa8pym";
   };
 
-  modSha256 = "0jq0z5s05vqdvq7v1gdjwlqqwbl1j2rv9f16k52idl50vdiqviql";
+  vendorSha256 = "0kr9i2nm5csf3070hwaiss137pfa3088xbw2zigp7aqb2naky036";
+
+  doCheck = false;
 
   meta = with lib; {
     description = "Tool used to brute-force URIs, DNS subdomains, Virtual Host names on target web servers";
diff --git a/pkgs/tools/security/gopass/default.nix b/pkgs/tools/security/gopass/default.nix
index a16701f48ea..4f90bace895 100644
--- a/pkgs/tools/security/gopass/default.nix
+++ b/pkgs/tools/security/gopass/default.nix
@@ -9,7 +9,7 @@
 
 buildGoModule rec {
   pname = "gopass";
-  version = "1.9.1";
+  version = "1.9.2";
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
 
@@ -17,10 +17,12 @@ buildGoModule rec {
     owner = "gopasspw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "19xhyyd76r17rwn6s8xgfjnyi7kywagy0i4anqws40w79j3qb1p0";
+    sha256 = "066dphw8xq0g72kj64sdai2yyllnr6ca27bfy5sxhk8x69j97rvz";
   };
 
-  modSha256 = "0zr4ihpcclw5pfhcdrd4n4qb3i3djcwyvwr4m2kpn99icp55bml8";
+  vendorSha256 = "1wn20bh7ma4pblsf6qnlbz5bx4p9apig3d1yz7cpsqv4z3w07baw";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev}" ];
 
diff --git a/pkgs/tools/security/hash_extender/default.nix b/pkgs/tools/security/hash_extender/default.nix
index 6efa780e1cd..dc8ea8b2c9b 100644
--- a/pkgs/tools/security/hash_extender/default.nix
+++ b/pkgs/tools/security/hash_extender/default.nix
@@ -2,17 +2,20 @@
 
 stdenv.mkDerivation {
   pname = "hash_extender";
-  version = "2017-04-10";
+  version = "unstable-2020-03-24";
 
   src = fetchFromGitHub {
     owner = "iagox86";
     repo = "hash_extender";
-    rev = "d27581e062dd0b534074e11d7d311f65a6d7af21";
-    sha256 = "1npwbgqaynjh5x39halw43i116v89sxkpa1g1bbvc1lpi8hkhhcb";
+    rev = "cb8aaee49f93e9c0d2f03eb3cafb429c9eed723d";
+    sha256 = "1fj118566hr1wv03az2w0iqknazsqqkak0mvlcvwpgr6midjqi9b";
   };
 
   buildInputs = [ openssl ];
 
+  doCheck = true;
+  checkPhase = "./hash_extender --test";
+
   installPhase = ''
     mkdir -p $out/bin
     cp hash_extender $out/bin
@@ -22,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 c1fd84b6452..b156cda99ac 100644
--- a/pkgs/tools/security/hashcat/default.nix
+++ b/pkgs/tools/security/hashcat/default.nix
@@ -1,12 +1,18 @@
-{ stdenv, fetchurl, makeWrapper, opencl-headers, ocl-icd, xxHash }:
+{ stdenv
+, fetchurl
+, makeWrapper
+, opencl-headers
+, ocl-icd
+, xxHash
+}:
 
 stdenv.mkDerivation rec {
   pname   = "hashcat";
-  version = "5.1.0";
+  version = "6.1.1";
 
   src = fetchurl {
     url = "https://hashcat.net/files/hashcat-${version}.tar.gz";
-    sha256 = "0f73y4cg8c7a6q7x34qvpfi4g3lw6j9bnn0a13g43aqyiskflfr8";
+    sha256 = "104z63m7lqbb0sdrxhf9yi15l4a9zwf9m6zs9dbb3gf0nfxl1h9r";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/hcxdumptool/default.nix b/pkgs/tools/security/hcxdumptool/default.nix
index 6a2eee47143..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.5";
+  version = "6.1.1";
 
   src = fetchFromGitHub {
     owner = "ZerBea";
     repo = "hcxdumptool";
     rev = version;
-    sha256 = "0rh19lblz8wp8q2x123nlwvxq1pjq9zw12w18z83v2l2knjbc524";
+    sha256 = "0v6dq6x2mrmavazknmhb08ks53773sll367anfrrramild8350bh";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/security/hcxtools/default.nix b/pkgs/tools/security/hcxtools/default.nix
index 5634ee6cff0..a81c1ef75cf 100644
--- a/pkgs/tools/security/hcxtools/default.nix
+++ b/pkgs/tools/security/hcxtools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hcxtools";
-  version = "6.0.2";
+  version = "6.0.3";
 
   src = fetchFromGitHub {
     owner = "ZerBea";
     repo = pname;
     rev = version;
-    sha256 = "0a36184igdgs2h83zr4zihc5acps91ipmgph37jakvzwrsn64ma6";
+    sha256 = "0s9l5mvzcv6hnj7h28piabnm66b09hk2l57vb85ny35w99hzpkc0";
   };
 
   buildInputs = [ curl openssl zlib ];
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..ce86e117100
--- /dev/null
+++ b/pkgs/tools/security/honggfuzz/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub, callPackage, makeWrapper
+, clang, llvm, libbfd, libopcodes, libunwind, libblocksruntime
+}:
+
+let
+  honggfuzz = stdenv.mkDerivation rec {
+    pname = "honggfuzz";
+    version = "2.2";
+
+    src = fetchFromGitHub {
+      owner = "google";
+      repo = pname;
+      rev = "${version}";
+      sha256 = "0ycpx087mhv5s7w01chg2b6rfb3zgfpp9in0x73kpv7y4dcvg7gw";
+    };
+    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 5e1d460a463..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 = "1563";
+  version = "1637";
 
   src = fetchurl {
     url = "mirror://sourceforge/ibmswtpm2/ibmtpm${version}.tar.gz";
-    sha256 = "1sfi7drmbm08rgd2414s3sxd7h5g8d4kiwk40xklf7sw67w1ffpw";
+    sha256 = "09z3wbv38dc8wnw1q961s6bcd0kvz2xkjp6dxg4kn914fwzlqfnx";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/security/ipscan/default.nix b/pkgs/tools/security/ipscan/default.nix
index 642b7d80305..80634b7d1a1 100644
--- a/pkgs/tools/security/ipscan/default.nix
+++ b/pkgs/tools/security/ipscan/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ipscan";
-  version = "3.7.0";
+  version = "3.7.1";
 
   src = fetchurl {
     url = "https://github.com/angryip/ipscan/releases/download/${version}/ipscan_${version}_all.deb";
-    sha256 = "1dbralnbi5q5v6a5nbs64ihvs20fkm3cddsbakck5fbqdm5by7k7";
+    sha256 = "1l6l3nb1yq0f09ia3k9k1dcpzp9g1hxnf547pqmiyiqvd27n7shs";
   };
 
   sourceRoot = ".";
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
new file mode 100644
index 00000000000..14f2059cf5c
--- /dev/null
+++ b/pkgs/tools/security/kbs2/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, rustPlatform, fetchFromGitHub, installShellFiles, python3, libxcb, AppKit }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "kbs2";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "woodruffw";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1zp4gpbqhivmp7lpm10xb6ahx1z7nsijz7pi5i0bndv0y9mr609p";
+  };
+
+  cargoSha256 = "1inqz4whqw9mb3m22kv44f255m3cjr66pc5ncdw2rgpy3zjh4p3z";
+
+  nativeBuildInputs = [ installShellFiles ]
+    ++ stdenv.lib.optionals stdenv.isLinux [ python3 ];
+
+  buildInputs = [ ]
+    ++ stdenv.lib.optionals stdenv.isLinux [ libxcb ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ AppKit ];
+
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
+
+  checkFlagsArray = [ "--skip=kbs2::config::tests::test_find_config_dir" ];
+
+  postInstall = ''
+    for shell in bash fish zsh; do
+      $out/bin/kbs2 --completions $shell > kbs2.$shell
+      installShellCompletion kbs2.$shell
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A secret manager backed by age";
+    homepage = "https://github.com/woodruffw/kbs2";
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/tools/security/keybase/default.nix b/pkgs/tools/security/keybase/default.nix
index bbc99c2ac41..ee1cfa9d2a4 100644
--- a/pkgs/tools/security/keybase/default.nix
+++ b/pkgs/tools/security/keybase/default.nix
@@ -6,7 +6,7 @@
 
 buildGoPackage rec {
   pname = "keybase";
-  version = "5.4.2";
+  version = "5.5.1";
 
   goPackagePath = "github.com/keybase/client";
   subPackages = [ "go/kbnm" "go/keybase" ];
@@ -17,7 +17,7 @@ buildGoPackage rec {
     owner = "keybase";
     repo = "client";
     rev = "v${version}";
-    sha256 = "08lw5aw962f75xi42bwbgba94hiql2n2jnsxrkx84czi0ijs1wlr";
+    sha256 = "03y69zmzbnfay173xkbzvnhh8zjjd2rfnqmpgr0wvh1psn7mgpsh";
   };
 
   patches = [
diff --git a/pkgs/tools/security/keybase/gui.nix b/pkgs/tools/security/keybase/gui.nix
index 05490784390..aabe1fcebbd 100644
--- a/pkgs/tools/security/keybase/gui.nix
+++ b/pkgs/tools/security/keybase/gui.nix
@@ -4,16 +4,17 @@
 , 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 = [
@@ -107,7 +108,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = "https://www.keybase.io/";
     description = "The Keybase official GUI";
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ avaq rvolosatovs puffnfresh np filalex77 ];
     license = licenses.bsd3;
   };
diff --git a/pkgs/tools/security/keycard-cli/default.nix b/pkgs/tools/security/keycard-cli/default.nix
index a76c102b2bb..73eab6c3dec 100644
--- a/pkgs/tools/security/keycard-cli/default.nix
+++ b/pkgs/tools/security/keycard-cli/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "keycard-cli";
-  version = "0.0.12";
+  version = "0.4.0";
 
   goPackagePath = "github.com/status-im/keycard-cli";
   subPackages = [ "." ];
@@ -14,7 +14,7 @@ buildGoPackage rec {
     owner = "status-im";
     repo = pname;
     rev = version;
-    sha256 = "1jnbaq57i6i9bad1hcvd28mxfqq6v8rv806c6l74vlb79ff4v1wb";
+    sha256 = "0917vl5lw8wgvyn5l8q6xa8bqh342fibaa38syr8hmz8b09qkh38";
   };
 
   buildFlagsArray = [
diff --git a/pkgs/tools/security/keysmith/default.nix b/pkgs/tools/security/keysmith/default.nix
new file mode 100644
index 00000000000..b9ab7bb0b4a
--- /dev/null
+++ b/pkgs/tools/security/keysmith/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, mkDerivation
+, makeWrapper
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, qtbase
+, qtquickcontrols2
+, qtdeclarative
+, qtgraphicaleffects
+, kirigami2
+, oathToolkit
+}:
+mkDerivation rec {
+
+  pname = "keysmith";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "KDE";
+    repo = "keysmith";
+    rev = "v${version}";
+    sha256 = "15fzf0bvarivm32zqa5w71mscpxdac64ykiawc5hx6kplz93bsgx";
+  };
+
+  nativeBuildInputs = [ cmake extra-cmake-modules makeWrapper ];
+
+  buildInputs = [ oathToolkit kirigami2 qtquickcontrols2 qtbase ];
+
+  postInstall = ''
+    mv $out/bin/org.kde.keysmith $out/bin/.org.kde.keysmith-wrapped
+    makeWrapper $out/bin/.org.kde.keysmith-wrapped $out/bin/org.kde.keysmith \
+      --set QML2_IMPORT_PATH "${lib.getLib kirigami2}/lib/qt-5.12.7/qml:${lib.getBin qtquickcontrols2}/lib/qt-5.12.7/qml:${lib.getBin qtdeclarative}/lib/qt-5.12.7/qml:${qtgraphicaleffects}/lib/qt-5.12.7/qml" \
+      --set QT_PLUGIN_PATH "${lib.getBin qtbase}/lib/qt-5.12.7/plugins"
+    ln -s $out/bin/org.kde.keysmith $out/bin/keysmith
+  '';
+
+  meta = with lib; {
+    description = "OTP client for Plasma Mobile and Desktop";
+    license = licenses.gpl3;
+    homepage = "https://github.com/KDE/keysmith";
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/security/lynis/default.nix b/pkgs/tools/security/lynis/default.nix
index bbed166d759..d7f42479d0b 100644
--- a/pkgs/tools/security/lynis/default.nix
+++ b/pkgs/tools/security/lynis/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, makeWrapper, fetchFromGitHub, gawk }:
+{ stdenv, makeWrapper, fetchFromGitHub, gawk, installShellFiles }:
 
 stdenv.mkDerivation rec {
   pname = "lynis";
-  version = "2.7.5";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "CISOfy";
     repo = pname;
     rev = version;
-    sha256 = "1lkkbvxm0rgrrlx0szaxmf8ghc3d26wal96sgqk84m37mvs1f7p0";
+    sha256 = "05p8h2ww4jcc6lgxrm796cbvlfmw26rxq5fmw0xxavbpadiw752j";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
 
   postPatch = ''
     grep -rl '/usr/local/lynis' ./ | xargs sed -i "s@/usr/local/lynis@$out/share/lynis@g"
@@ -22,6 +22,10 @@ stdenv.mkDerivation rec {
     cp -r include db default.prf $out/share/lynis/
     cp -a lynis $out/bin
     wrapProgram "$out/bin/lynis" --prefix PATH : ${stdenv.lib.makeBinPath [ gawk ]}
+
+    installManPage lynis.8
+    installShellCompletion --bash --name lynis.bash \
+      extras/bash_completion.d/lynis
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/security/metasploit/Gemfile b/pkgs/tools/security/metasploit/Gemfile
index 3924e6919d3..457c6249ca0 100644
--- a/pkgs/tools/security/metasploit/Gemfile
+++ b/pkgs/tools/security/metasploit/Gemfile
@@ -1,4 +1,4 @@
 # frozen_string_literal: true
 source "https://rubygems.org"
 
-gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/5.0.74"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/5.0.90"
diff --git a/pkgs/tools/security/metasploit/Gemfile.lock b/pkgs/tools/security/metasploit/Gemfile.lock
index 17d160c8dcb..7142983f98c 100644
--- a/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,9 +1,9 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: 22104a154544b3ee57d3ce98a490c4b42a4a8776
-  ref: refs/tags/5.0.74
+  revision: 592eedc5584953fb94b01a9aae48ec04d2cf153a
+  ref: refs/tags/5.0.90
   specs:
-    metasploit-framework (5.0.74)
+    metasploit-framework (5.0.90)
       actionpack (~> 4.2.6)
       activerecord (~> 4.2.6)
       activesupport (~> 4.2.6)
@@ -13,27 +13,30 @@ GIT
       bcrypt (= 3.1.12)
       bcrypt_pbkdf
       bit-struct
+      bson
       concurrent-ruby (= 1.0.5)
       dnsruby
       ed25519
       em-http-request
       eventmachine
       faker
-      faraday (<= 0.17.0)
+      faraday
       faye-websocket
       filesize
+      hrr_rb_ssh (= 0.3.0.pre2)
       jsobfu
       json
       metasm
       metasploit-concern (~> 2.0.0)
       metasploit-credential (~> 3.0.0)
       metasploit-model (~> 2.0.4)
-      metasploit-payloads (= 1.3.84)
+      metasploit-payloads (= 1.4.2)
       metasploit_data_models (~> 3.0.10)
-      metasploit_payloads-mettle (= 0.5.16)
+      metasploit_payloads-mettle (= 0.5.21)
       mqtt
       msgpack
       nessus_rest
+      net-ldap
       net-ssh
       network_interface
       nexpose
@@ -87,27 +90,27 @@ GEM
   remote: https://rubygems.org/
   specs:
     Ascii85 (1.0.3)
-    actionpack (4.2.11.1)
-      actionview (= 4.2.11.1)
-      activesupport (= 4.2.11.1)
+    actionpack (4.2.11.3)
+      actionview (= 4.2.11.3)
+      activesupport (= 4.2.11.3)
       rack (~> 1.6)
       rack-test (~> 0.6.2)
       rails-dom-testing (~> 1.0, >= 1.0.5)
       rails-html-sanitizer (~> 1.0, >= 1.0.2)
-    actionview (4.2.11.1)
-      activesupport (= 4.2.11.1)
+    actionview (4.2.11.3)
+      activesupport (= 4.2.11.3)
       builder (~> 3.1)
       erubis (~> 2.7.0)
       rails-dom-testing (~> 1.0, >= 1.0.5)
       rails-html-sanitizer (~> 1.0, >= 1.0.3)
-    activemodel (4.2.11.1)
-      activesupport (= 4.2.11.1)
+    activemodel (4.2.11.3)
+      activesupport (= 4.2.11.3)
       builder (~> 3.1)
-    activerecord (4.2.11.1)
-      activemodel (= 4.2.11.1)
-      activesupport (= 4.2.11.1)
+    activerecord (4.2.11.3)
+      activemodel (= 4.2.11.3)
+      activesupport (= 4.2.11.3)
       arel (~> 6.0)
-    activesupport (4.2.11.1)
+    activesupport (4.2.11.3)
       i18n (~> 0.7)
       minitest (~> 5.1)
       thread_safe (~> 0.3, >= 0.3.4)
@@ -118,32 +121,33 @@ GEM
     arel (6.0.4)
     arel-helpers (2.11.0)
       activerecord (>= 3.1.0, < 7)
-    aws-eventstream (1.0.3)
-    aws-partitions (1.274.0)
-    aws-sdk-core (3.90.1)
-      aws-eventstream (~> 1.0, >= 1.0.2)
+    aws-eventstream (1.1.0)
+    aws-partitions (1.319.0)
+    aws-sdk-core (3.96.1)
+      aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.239.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-ec2 (1.144.0)
+    aws-sdk-ec2 (1.162.0)
       aws-sdk-core (~> 3, >= 3.71.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-iam (1.33.0)
+    aws-sdk-iam (1.37.0)
       aws-sdk-core (~> 3, >= 3.71.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kms (1.29.0)
+    aws-sdk-kms (1.31.0)
       aws-sdk-core (~> 3, >= 3.71.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.60.2)
-      aws-sdk-core (~> 3, >= 3.83.0)
+    aws-sdk-s3 (1.66.0)
+      aws-sdk-core (~> 3, >= 3.96.1)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.1)
-    aws-sigv4 (1.1.0)
+    aws-sigv4 (1.1.3)
       aws-eventstream (~> 1.0, >= 1.0.2)
     bcrypt (3.1.12)
     bcrypt_pbkdf (1.0.1)
-    bindata (2.4.4)
+    bindata (2.4.7)
     bit-struct (0.16)
+    bson (4.8.2)
     builder (3.2.4)
     concurrent-ruby (1.0.5)
     cookiejar (0.3.3)
@@ -164,13 +168,15 @@ GEM
     eventmachine (1.2.7)
     faker (2.2.1)
       i18n (>= 0.8)
-    faraday (0.17.0)
+    faraday (1.0.1)
       multipart-post (>= 1.2, < 3)
     faye-websocket (0.10.9)
       eventmachine (>= 0.12.0)
       websocket-driver (>= 0.5.1)
     filesize (0.2.0)
     hashery (2.1.2)
+    hrr_rb_ssh (0.3.0.pre2)
+      ed25519 (~> 1.2)
     http_parser.rb (0.6.0)
     i18n (0.9.5)
       concurrent-ruby (~> 1.0)
@@ -178,7 +184,7 @@ GEM
     jsobfu (0.4.2)
       rkelly-remix
     json (2.3.0)
-    loofah (2.4.0)
+    loofah (2.5.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     metasm (1.0.4)
@@ -200,7 +206,7 @@ GEM
       activemodel (~> 4.2.6)
       activesupport (~> 4.2.6)
       railties (~> 4.2.6)
-    metasploit-payloads (1.3.84)
+    metasploit-payloads (1.4.2)
     metasploit_data_models (3.0.10)
       activerecord (~> 4.2.6)
       activesupport (~> 4.2.6)
@@ -211,19 +217,20 @@ GEM
       postgres_ext
       railties (~> 4.2.6)
       recog (~> 2.0)
-    metasploit_payloads-mettle (0.5.16)
+    metasploit_payloads-mettle (0.5.21)
     mini_portile2 (2.4.0)
-    minitest (5.14.0)
+    minitest (5.14.1)
     mqtt (0.5.0)
     msgpack (1.3.3)
     multipart-post (2.1.1)
     nessus_rest (0.1.6)
-    net-ssh (5.2.0)
+    net-ldap (0.16.2)
+    net-ssh (6.0.2)
     network_interface (0.0.2)
     nexpose (7.2.1)
-    nokogiri (1.10.8)
+    nokogiri (1.10.9)
       mini_portile2 (~> 2.4.0)
-    octokit (4.16.0)
+    octokit (4.18.0)
       faraday (>= 0.9)
       sawyer (~> 0.8.0, >= 0.5.3)
     openssl-ccm (1.2.2)
@@ -244,7 +251,7 @@ GEM
       activerecord (~> 4.0)
       arel (>= 4.0.1)
       pg_array_parser (~> 0.0.9)
-    public_suffix (4.0.3)
+    public_suffix (4.0.5)
     rack (1.6.13)
     rack-protection (1.5.5)
       rack
@@ -258,14 +265,14 @@ GEM
       rails-deprecated_sanitizer (>= 1.0.1)
     rails-html-sanitizer (1.3.0)
       loofah (~> 2.3)
-    railties (4.2.11.1)
-      actionpack (= 4.2.11.1)
-      activesupport (= 4.2.11.1)
+    railties (4.2.11.3)
+      actionpack (= 4.2.11.3)
+      activesupport (= 4.2.11.3)
       rake (>= 0.8.7)
       thor (>= 0.18.1, < 2.0)
     rake (13.0.1)
     rb-readline (0.5.5)
-    recog (2.3.6)
+    recog (2.3.7)
       nokogiri
     redcarpet (3.5.0)
     rex-arch (0.1.13)
@@ -281,7 +288,7 @@ GEM
       metasm
       rex-arch
       rex-text
-    rex-exploitation (0.1.22)
+    rex-exploitation (0.1.24)
       jsobfu
       metasm
       rex-arch
@@ -294,9 +301,10 @@ GEM
       rex-arch
     rex-ole (0.1.6)
       rex-text
-    rex-powershell (0.1.86)
+    rex-powershell (0.1.87)
       rex-random_identifier
       rex-text
+      ruby-rc4
     rex-random_identifier (0.1.4)
       rex-text
     rex-registry (0.1.3)
@@ -304,14 +312,14 @@ GEM
       metasm
       rex-core
       rex-text
-    rex-socket (0.1.21)
+    rex-socket (0.1.23)
       rex-core
     rex-sslscan (0.1.5)
       rex-core
       rex-socket
       rex-text
     rex-struct2 (0.1.2)
-    rex-text (0.2.24)
+    rex-text (0.2.26)
     rex-zip (0.1.3)
       rex-text
     rkelly-remix (0.0.7)
@@ -322,7 +330,7 @@ GEM
       rubyntlm
       windows_error
     rubyntlm (0.6.2)
-    rubyzip (2.2.0)
+    rubyzip (2.3.0)
     sawyer (0.8.2)
       addressable (>= 2.3.5)
       faraday (> 0.8, < 2.0)
@@ -340,9 +348,9 @@ GEM
     thread_safe (0.3.6)
     tilt (2.0.10)
     ttfunk (1.6.2.1)
-    tzinfo (1.2.6)
+    tzinfo (1.2.7)
       thread_safe (~> 0.1)
-    tzinfo-data (1.2019.3)
+    tzinfo-data (1.2020.1)
       tzinfo (>= 1.0.0)
     warden (1.2.7)
       rack (>= 1.0)
diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix
index 54da89a99b5..cc3d26fbee0 100644
--- a/pkgs/tools/security/metasploit/default.nix
+++ b/pkgs/tools/security/metasploit/default.nix
@@ -17,13 +17,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "5.0.74";
+  version = "5.0.90";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = version;
-    sha256 = "1ml4d6xfaxyv1mamc2qldd39db92qkic8660f8clabi9f1k0ghpp";
+    sha256 = "1z3m8pvf1r8rz0snfkr9svhgjl2xn2qjgf8qswszzplsccqx1rss";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/metasploit/gemset.nix b/pkgs/tools/security/metasploit/gemset.nix
index a35aa958a1d..cd3b2a336bd 100644
--- a/pkgs/tools/security/metasploit/gemset.nix
+++ b/pkgs/tools/security/metasploit/gemset.nix
@@ -4,50 +4,50 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rmldsk3a4lwxk0lrp6x1nz1v1r2xmbm3300l4ghgfygv3grdwjh";
+      sha256 = "1955wx9m2g776sinamanzlk1jx2dzd34ci3sk22xicp0rmglps37";
       type = "gem";
     };
-    version = "4.2.11.1";
+    version = "4.2.11.3";
   };
   actionview = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0x7vjn8q6blzyf7j3kwg0ciy7vnfh28bjdkd1mp9k4ghp9jn0g9p";
+      sha256 = "0glnaq3jx4m9q6vn55xqlsg8dbflqzm99fgsl9fl267mc2mz3qrv";
       type = "gem";
     };
-    version = "4.2.11.1";
+    version = "4.2.11.3";
   };
   activemodel = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c1x0rd6wnk1f0gsmxs6x3gx7yf6fs9qqkdv7r4hlbcdd849in33";
+      sha256 = "1z3777xsm82i7ggkg74mg21sqz8m5dfl8ykjm7xcrhd2nj843fcp";
       type = "gem";
     };
-    version = "4.2.11.1";
+    version = "4.2.11.3";
   };
   activerecord = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07ixiwi0zzs9skqarvpfamsnay7npfswymrn28ngxaf8hi279q5p";
+      sha256 = "1fpw9vyf2frkxkc6jbq9g78lhhflwz04j89qxj4krvmlq12q8v6d";
       type = "gem";
     };
-    version = "4.2.11.1";
+    version = "4.2.11.3";
   };
   activesupport = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vbq7a805bfvyik2q3kl9s3r418f5qzvysqbz2cwy4hr7m2q4ir6";
+      sha256 = "0wp36wi3r3dscmcr0q6sbz13hr5h911c24ar7zrmmcy7p32ial2i";
       type = "gem";
     };
-    version = "4.2.11.1";
+    version = "4.2.11.3";
   };
   addressable = {
     groups = ["default"];
@@ -104,80 +104,80 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "100g77a5ixg4p5zwq77f28n2pdkk0y481f7v83qrlmnj22318qq6";
+      sha256 = "0r0pn66yqrdkrfdin7qdim0yj2x75miyg4wp6mijckhzhrjb7cv5";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.1.0";
   };
   aws-partitions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k2dpn0xznksh5y9bq9gbvbych06pzyswsdak7bz8nlkbsgf38x3";
+      sha256 = "11gr3pkd0cq034jdmvmi32sb99hkh91qjrpvc6jchi4lsaiaiqgc";
       type = "gem";
     };
-    version = "1.274.0";
+    version = "1.319.0";
   };
   aws-sdk-core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q7f9jkpmpppj31kh3wnzybkphq4piy8ays3vld0zsibfjs9iw7i";
+      sha256 = "0jdnzynjrpp2jyg8vrbfbaad16k8ni1520xah1z2ckl5779x9fi6";
       type = "gem";
     };
-    version = "3.90.1";
+    version = "3.96.1";
   };
   aws-sdk-ec2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wnql5rzwkn97w4l3pq6k97grqdci1qs7h132pnd6lc3bx62v4h5";
+      sha256 = "0xp9kp90ixk1ywd0d8ssbk8dl5kxqnz942yr2qq00m7fd60pihh7";
       type = "gem";
     };
-    version = "1.144.0";
+    version = "1.162.0";
   };
   aws-sdk-iam = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s78ssjcp974v7r1znrgk78bqz23jhws4gy1nm659z5390zsn1fz";
+      sha256 = "09l3g5a2r7gnc6pwln409b9ahwcs6xpnjx2qaj70cbllanyxbw0c";
       type = "gem";
     };
-    version = "1.33.0";
+    version = "1.37.0";
   };
   aws-sdk-kms = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "191qnrpg9qhwj24pisha28fwqx30sqkj75ibgpqcf4q389l3a2gw";
+      sha256 = "1czxr6yi8p9gma4dwgygp1jn0i289hwa2vw69kzfscgbn118c3mm";
       type = "gem";
     };
-    version = "1.29.0";
+    version = "1.31.0";
   };
   aws-sdk-s3 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pblkq7rw465w08hs2xy6v7w10x9n004hk43yqzswqxirki68ldz";
+      sha256 = "1x1d1azxwanvm0d7qppw41x5nx2zv0bcz41yk9vqi5lvr7apaq13";
       type = "gem";
     };
-    version = "1.60.2";
+    version = "1.66.0";
   };
   aws-sigv4 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dfc8i5cxjwlvi4b665lbpbwvks8a6wfy3vfmwr3pjdmxwdmc2cs";
+      sha256 = "0kysxyw1zkvggbmcj4xnscdh15kxli8mx07hv447h74g9x02drsd";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.3";
   };
   bcrypt = {
     groups = ["default"];
@@ -204,10 +204,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kz42nvxnk1j9cj0i8lcnhprcgdqsqska92g6l19ziadydfk2gqy";
+      sha256 = "033vd169q751qn3zrsv8j5f80k6wg5yhsy8z3clds6py4vqm6xl8";
       type = "gem";
     };
-    version = "2.4.4";
+    version = "2.4.7";
   };
   bit-struct = {
     groups = ["default"];
@@ -219,6 +219,16 @@
     };
     version = "0.16";
   };
+  bson = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06h8sk2wl7pgrwl15xb1bd6l9ws8sz006rf9cy6n6q7g0iwdalkh";
+      type = "gem";
+    };
+    version = "4.8.2";
+  };
   builder = {
     groups = ["default"];
     platforms = [];
@@ -344,10 +354,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jk2bar4x6miq2cr73lv0lsbmw4cymiljvp29xb85jifsb3ba6az";
+      sha256 = "0wwks9652xwgjm7yszcq5xr960pjypc07ivwzbjzpvy9zh2fw6iq";
       type = "gem";
     };
-    version = "0.17.0";
+    version = "1.0.1";
   };
   faye-websocket = {
     groups = ["default"];
@@ -379,6 +389,16 @@
     };
     version = "2.1.2";
   };
+  hrr_rb_ssh = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "066dj9sw5p8aa54vqc1bw7a8nfpf5rggrjyxqw2ccyxp10964qkz";
+      type = "gem";
+    };
+    version = "0.3.0.pre2";
+  };
   "http_parser.rb" = {
     groups = ["default"];
     platforms = [];
@@ -434,10 +454,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g7ps9m3s14cajhxrfgbzahv9i3gy47s4hqrv3mpybpj5cyr0srn";
+      sha256 = "0jk9fgn5ayzbqvzqm11gbkqvas77zdbpkvynlylyiwynclgrn040";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   metasm = {
     groups = ["default"];
@@ -474,12 +494,12 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "22104a154544b3ee57d3ce98a490c4b42a4a8776";
-      sha256 = "1ml4d6xfaxyv1mamc2qldd39db92qkic8660f8clabi9f1k0ghpp";
+      rev = "592eedc5584953fb94b01a9aae48ec04d2cf153a";
+      sha256 = "1z3m8pvf1r8rz0snfkr9svhgjl2xn2qjgf8qswszzplsccqx1rss";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "5.0.74";
+    version = "5.0.90";
   };
   metasploit-model = {
     groups = ["default"];
@@ -496,10 +516,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wz72w5a34r6jcgbl97ha3zhl8d28r974clcp99qj5sg71k280c0";
+      sha256 = "1kddir54jnzl64nsawnvkzdabnmqncq9vav49i1cfschnf4cxc4g";
       type = "gem";
     };
-    version = "1.3.84";
+    version = "1.4.2";
   };
   metasploit_data_models = {
     groups = ["default"];
@@ -516,10 +536,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x2rgs2r16m8z87j5z78vp49xvr2sr4dxjgbi6d0nxrlr52pd8yf";
+      sha256 = "1419z6z0j69zdlkfx3kqgqygsm0ysigwccgn82z5lz82i16krhca";
       type = "gem";
     };
-    version = "0.5.16";
+    version = "0.5.21";
   };
   mini_portile2 = {
     groups = ["default"];
@@ -536,10 +556,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz";
+      sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
       type = "gem";
     };
-    version = "5.14.0";
+    version = "5.14.1";
   };
   mqtt = {
     groups = ["default"];
@@ -581,15 +601,25 @@
     };
     version = "0.1.6";
   };
+  net-ldap = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vzfhivjfr9q65hkln7xig3qcba6fw9y4kb4384fpm7d7ww0b7xg";
+      type = "gem";
+    };
+    version = "0.16.2";
+  };
   net-ssh = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "101wd2px9lady54aqmkibvy4j62zk32w0rjz4vnigyg974fsga40";
+      sha256 = "0kf4am0mz8mwqhif4iqh5yz9pcbbmja5w707j00sfsgrq19nxqld";
       type = "gem";
     };
-    version = "5.2.0";
+    version = "6.0.2";
   };
   network_interface = {
     groups = ["default"];
@@ -616,20 +646,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yi8j8hwrlc3rg5v3w52gxndmwifyk7m732q9yfbal0qajqbh1h8";
+      sha256 = "12j76d0bp608932xkzmfi638c7aqah57l437q8494znzbj610qnm";
       type = "gem";
     };
-    version = "1.10.8";
+    version = "1.10.9";
   };
   octokit = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06kx258qa5k24q5pv8i4daaw3g57gif6p5k5h3gndj3q2jk6vhkn";
+      sha256 = "0zvfr9njmj5svi39fcsi2b0g7pcxb0vamw9dlyas8bg814jlzhi6";
       type = "gem";
     };
-    version = "4.16.0";
+    version = "4.18.0";
   };
   openssl-ccm = {
     groups = ["default"];
@@ -726,10 +756,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c6kq6s13idl2036b5lch8r7390f8w82cal8hcp4ml76fm2vdac7";
+      sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g";
       type = "gem";
     };
-    version = "4.0.3";
+    version = "4.0.5";
   };
   rack = {
     groups = ["default"];
@@ -796,10 +826,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bjf21z9maiiazc1if56nnh9xmgbkcqlpznv34f40a1hsvgk1d1m";
+      sha256 = "12f7g5iw1gqjwl2rvfmbgxipds5c475ggalw6qskzzrx9vyc2fpk";
       type = "gem";
     };
-    version = "4.2.11.1";
+    version = "4.2.11.3";
   };
   rake = {
     groups = ["default"];
@@ -826,10 +856,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kw753vq5m5m8pzn1avafzz757gdzzsv7ck94y6d8n4jzqa50isv";
+      sha256 = "1j65iary8qkgyrjc3vnjd7dbyjs2bsz2hcg7ndibjk623faxb1wk";
       type = "gem";
     };
-    version = "2.3.6";
+    version = "2.3.7";
   };
   redcarpet = {
     groups = ["default"];
@@ -886,10 +916,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16anprj4pc4pi2yb1y6b7c8nrqgpk49g40wy1384snmii24jiwyx";
+      sha256 = "0inrf2vahmpxhjf84i8ak2b7gcirsrjrmb1rnvvqqr9kl0xw5xm3";
       type = "gem";
     };
-    version = "0.1.22";
+    version = "0.1.24";
   };
   rex-java = {
     groups = ["default"];
@@ -936,10 +966,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "150nmpgrvpd6hyx9cghah8dxpcfb1h7inpcwmz7ijpir60zxxfdj";
+      sha256 = "11wi8dpb2s8bvkqhbf80g16nyj2hscs3vz31ffzl1g0g6imcs0dl";
       type = "gem";
     };
-    version = "0.1.86";
+    version = "0.1.87";
   };
   rex-random_identifier = {
     groups = ["default"];
@@ -976,10 +1006,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jkmff92ga9qd9gg13cd6s99qcdmr5n354l9br70j784mpyl9apb";
+      sha256 = "07vm17w791vdpr23aqp45kqsjbqgwpqj92a535h6n4fckxgzhg94";
       type = "gem";
     };
-    version = "0.1.21";
+    version = "0.1.23";
   };
   rex-sslscan = {
     groups = ["default"];
@@ -1006,10 +1036,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wjrp4n7j2ifdgqc6z8z4jbz9gr7g5m5h35b7vx4k9cbaq9b5zxw";
+      sha256 = "17m5zwca15qsd7mqqhi2q530iwsrb7wkqh8qff7pxjxwlxbvsrxx";
       type = "gem";
     };
-    version = "0.2.24";
+    version = "0.2.26";
   };
   rex-zip = {
     groups = ["default"];
@@ -1076,10 +1106,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13b15icwx0c8zzjfzf7bmqq9ynilw0dy8ydgjb199nqzp93p6wqv";
+      sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.3.0";
   };
   sawyer = {
     groups = ["default"];
@@ -1176,20 +1206,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04f18jdv6z3zn3va50rqq35nj3izjpb72fnf21ixm7vanq6nc4fp";
+      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
       type = "gem";
     };
-    version = "1.2.6";
+    version = "1.2.7";
   };
   tzinfo-data = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17fbf05qhcxp8anmp7k5wnafw3ypy607h5ybnqg92dqgh4b1c3yi";
+      sha256 = "1kjywciambyhlkc8ijp3kkx4r24pi9zs7plmxw003mxr6mrhah1w";
       type = "gem";
     };
-    version = "1.2019.3";
+    version = "1.2020.1";
   };
   warden = {
     groups = ["default"];
diff --git a/pkgs/tools/security/metasploit/shell.nix b/pkgs/tools/security/metasploit/shell.nix
index cd7a01214c6..e4bae57b686 100644
--- a/pkgs/tools/security/metasploit/shell.nix
+++ b/pkgs/tools/security/metasploit/shell.nix
@@ -3,14 +3,15 @@ with import <nixpkgs> {};
 stdenv.mkDerivation {
   name = "env";
   buildInputs = [
-    ruby.devEnv
+    bundix
     git
-    sqlite
+    libiconv
     libpcap
-    postgresql
     libxml2
     libxslt
-    pkgconfig
-    bundix
+    pkg-config
+    postgresql
+    ruby.devEnv
+    sqlite
   ];
 }
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/mkp224o/default.nix b/pkgs/tools/security/mkp224o/default.nix
index 5640debf124..dc17cc60276 100644
--- a/pkgs/tools/security/mkp224o/default.nix
+++ b/pkgs/tools/security/mkp224o/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mkp224o";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "cathugger";
     repo = "mkp224o";
     rev = "v${version}";
-    sha256 = "0b7xs4gnyfhdkwl8wkb6mazas88ybnlbxck59p4n2mnlndvd8kb7";
+    sha256 = "0b2cn96wg4l8jkkqqp8l2295xlmm2jc8nrw6rdqb5g0zkpfmrxbb";
   };
 
   buildCommand =
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/rage/default.nix b/pkgs/tools/security/rage/default.nix
index cdba2f2beb0..26ae27dff6b 100644
--- a/pkgs/tools/security/rage/default.nix
+++ b/pkgs/tools/security/rage/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, rustPlatform, fetchFromGitHub, Security }:
+{ stdenv, rustPlatform, fetchFromGitHub, installShellFiles, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rage";
@@ -13,8 +13,20 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "08njl8irkqkfxj54pz4sx3l9aqb40h10wxb82zza52pqd4zapgn6";
 
+  nativeBuildInputs = [ installShellFiles ];
+
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
 
+  postBuild = ''
+    cargo run --example generate-docs
+    cargo run --example generate-completions
+  '';
+
+  postInstall = ''
+    installManPage target/manpages/*
+    installShellCompletion target/completions/*.{bash,fish,zsh}
+  '';
+
   meta = with stdenv.lib; {
     description = "A simple, secure and modern encryption tool with small explicit keys, no config options, and UNIX-style composability";
     homepage = "https://github.com/str4d/rage";
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/ripasso/cursive.nix b/pkgs/tools/security/ripasso/cursive.nix
index c8a55d3f397..29229bff002 100644
--- a/pkgs/tools/security/ripasso/cursive.nix
+++ b/pkgs/tools/security/ripasso/cursive.nix
@@ -12,6 +12,8 @@ buildRustPackage rec {
     sha256 = "164da20j727p8l7hh37j2r8pai9sj402nhswvg0nrlgj53nr6083";
   };
 
+  patches = [ ./fix-tests.patch ];
+
   cargoSha256 = "1wpn67v0xmxhn1dgzhh1pwz1yc3cizmfxhpb7qv9b27ynx4486ji";
 
   cargoBuildFlags = [ "-p ripasso-cursive -p ripasso-man" ];
diff --git a/pkgs/tools/security/ripasso/fix-tests.patch b/pkgs/tools/security/ripasso/fix-tests.patch
new file mode 100644
index 00000000000..433ff933b1f
--- /dev/null
+++ b/pkgs/tools/security/ripasso/fix-tests.patch
@@ -0,0 +1,35 @@
+diff --git a/src/pass/test.rs b/src/pass/test.rs
+index c980a2f..2e6c8cc 100644
+--- a/src/pass/test.rs
++++ b/src/pass/test.rs
+@@ -56,6 +56,7 @@ fn populate_password_list_small_repo() {
+     base_path.pop();
+     base_path.pop();
+     base_path.pop();
++    base_path.pop();
+     base_path.push("testres");
+ 
+     let mut password_dir: PathBuf = base_path.clone();
+@@ -84,6 +85,7 @@ fn populate_password_list_repo_with_deleted_files() {
+     base_path.pop();
+     base_path.pop();
+     base_path.pop();
++    base_path.pop();
+     base_path.push("testres");
+ 
+     let mut password_dir: PathBuf = base_path.clone();
+@@ -112,6 +114,7 @@ fn populate_password_list_directory_without_git() {
+     base_path.pop();
+     base_path.pop();
+     base_path.pop();
++    base_path.pop();
+     base_path.push("testres");
+ 
+     let mut password_dir: PathBuf = base_path.clone();
+@@ -149,4 +152,4 @@ fn parse_signing_keys_empty() {
+     let result = PasswordStore::parse_signing_keys(&None).unwrap();
+ 
+     assert_eq!(result.len(), 0);
+-}
+\ No newline at end of file
++}
diff --git a/pkgs/tools/security/saml2aws/default.nix b/pkgs/tools/security/saml2aws/default.nix
index 4373abdb9a4..940e67013ee 100644
--- a/pkgs/tools/security/saml2aws/default.nix
+++ b/pkgs/tools/security/saml2aws/default.nix
@@ -2,16 +2,19 @@
 
 buildGoModule rec {
   pname = "saml2aws";
-  version = "2.25.0";
+  version = "2.26.2";
 
   src = fetchFromGitHub {
     owner = "Versent";
     repo = "saml2aws";
     rev = "v${version}";
-    sha256 = "12aidylamrq4rvy2cfdz669lr1p20yqrshigcc5x1hrlhh9y64xc";
+    sha256 = "0y5gvdrdr6i9spdwsxvzs1bxs32icxpkqxnglp1bf4gglc580d87";
   };
 
-  modSha256 = "1kcj5065yy52p1jy4fad5lsz3y4spqc40k1qsirm53qqixhrhvag";
+  runVend = true;
+  vendorSha256 = "1kzihyx44sx6php4z58fzy6c3g0y713939yzxpgk3n03snn2x8sf";
+
+  doCheck = false;
 
   subPackages = [ "." "cmd/saml2aws" ];
 
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/sn0int/default.nix b/pkgs/tools/security/sn0int/default.nix
index 9e9cbe2bb3a..8b99649e0c9 100644
--- a/pkgs/tools/security/sn0int/default.nix
+++ b/pkgs/tools/security/sn0int/default.nix
@@ -1,18 +1,18 @@
-{ lib, fetchFromGitHub, rustPlatform,
-  libsodium, libseccomp, sqlite, pkgconfig }:
+{ lib, fetchFromGitHub, rustPlatform, libsodium, libseccomp, sqlite, pkgconfig
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "sn0int";
-  version = "0.18.2";
+  version = "0.19.1";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0b21b0ryq03zrhqailg2iajirn30l358aj3k44lfnravr4h9zwkj";
+    sha256 = "10f1wblczxlww09f4dl8i9zzgpr14jj7s329wkvm7lafmwx3qrn5";
   };
 
-  cargoSha256 = "1pvn0sc325b5fh29m2l6cack4qfssa4lp3zhyb1qzkb3fmw3lgcy";
+  cargoSha256 = "1v0q751ylsfpdjwsbl20pvn7g75w503jwjl5kn5kc8xq3g0lnp65";
 
   nativeBuildInputs = [ pkgconfig ];
 
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 8aa2e219e7d..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";
   };
 
-  modSha256 = "0vhxd3dschj5i9sig6vpxzbl59cas1qa843akzmjnfjrrafb916y";
+  vendorSha256 = "0475y95qma5m346ng898n80xv2rxzndx89c9ygjcvjs513yzcba2";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/mozilla/sops";
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/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 e6cd74eda4b..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.2.7";
+  version = "0.4.3.6";
 
   src = fetchurl {
     url = "https://dist.torproject.org/${pname}-${version}.tar.gz";
-    sha256 = "0v82ngwwmmcb7i9563bgsmrjy6xp83xyhqhaljygd0pkvlsxi886";
+    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/tpm2-abrmd/default.nix b/pkgs/tools/security/tpm2-abrmd/default.nix
index fbebde2e7bf..6fe116d7015 100644
--- a/pkgs/tools/security/tpm2-abrmd/default.nix
+++ b/pkgs/tools/security/tpm2-abrmd/default.nix
@@ -1,24 +1,44 @@
-{ stdenv, fetchurl, lib
-, tpm2-tss, pkgconfig, glib, which, dbus, cmocka }:
+{ stdenv, lib, fetchFromGitHub
+, autoreconfHook, pkg-config, autoconf-archive, makeWrapper, which
+, tpm2-tss, glib, dbus
+, cmocka
+}:
 
 stdenv.mkDerivation rec {
   pname = "tpm2-abrmd";
-  version = "2.2.0";
+  version = "2.3.2";
 
-  src = fetchurl {
-    url = "https://github.com/tpm2-software/${pname}/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1lbfhyyh9k54r8s1h8ca2czxv4hg0yq984kdh3vqh3990aca0x9a";
+  src = fetchFromGitHub {
+    owner = "tpm2-software";
+    repo = pname;
+    rev = version;
+    sha256 = "0jzglnlb700clcq6mjhhgvcq29a6893h888wsn9fbrh4f255sw8q";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [
-    tpm2-tss glib which dbus cmocka
-  ];
+  nativeBuildInputs = [ pkg-config makeWrapper autoreconfHook autoconf-archive which ];
+  buildInputs = [ tpm2-tss glib dbus ];
+  checkInputs = [ cmocka ];
+
+  enableParallelBuilding = true;
+
+  # Emulate the required behavior of ./bootstrap in the original
+  # package
+  preAutoreconf = ''
+    echo "${version}" > VERSION
+  '';
 
   # Unit tests are currently broken as the check phase attempts to start a dbus daemon etc.
   #configureFlags = [ "--enable-unit" ];
   doCheck = false;
 
+  # Even though tpm2-tss is in the RUNPATH, starting from 2.3.0 abrmd
+  # seems to require the path to the device TCTI (used for accessing
+  # /dev/tpm0) in it's LD_LIBRARY_PATH
+  postFixup = ''
+    wrapProgram $out/bin/tpm2-abrmd \
+      --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ tpm2-tss ]}"
+  '';
+
   meta = with lib; {
     description = "TPM2 resource manager, accessible via D-Bus";
     homepage = "https://github.com/tpm2-software/tpm2-tools";
diff --git a/pkgs/tools/security/tpm2-tools/default.nix b/pkgs/tools/security/tpm2-tools/default.nix
index 06826173e34..e6a7621d987 100644
--- a/pkgs/tools/security/tpm2-tools/default.nix
+++ b/pkgs/tools/security/tpm2-tools/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tpm2-tools";
-  version = "4.1.1";
+  version = "4.1.3";
 
   src = fetchurl {
     url = "https://github.com/tpm2-software/${pname}/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1cd74nd57wmms2yrnzs64xki29rf4kx61kd30fyd56wlicyjdfa0";
+    sha256 = "0117r0zzdnblkibv81y71v3limixsw5m7g9xwf7lcx8fc8836pdv";
   };
 
   nativeBuildInputs = [ pandoc pkgconfig makeWrapper ];
diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix
index 515b5884999..50a7844356f 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.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    sha256 = "0fbbvihvlzh95rrk65bwxfcam6y57q0yffq8dzvcbm3i0ap7ndar";
+    sha256 = "1bdhcsx7hwz4kb68jrrrzlbr7k744g0pym996dq1p5rvz05j3pqc";
   };
 
   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/verifpal/default.nix b/pkgs/tools/security/verifpal/default.nix
index e1e5e100bd1..930b44cb4c6 100644
--- a/pkgs/tools/security/verifpal/default.nix
+++ b/pkgs/tools/security/verifpal/default.nix
@@ -1,35 +1,31 @@
 { lib
 , fetchgit
-, buildGoPackage
+, buildGoModule
 , pigeon
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "verifpal";
-  version = "0.7.5";
-
-  goPackagePath = "github.com/SymbolicSoft/verifpal";
-  goDeps = ./deps.nix;
+  version = "0.13.7";
 
   src = fetchgit {
     url = "https://source.symbolic.software/verifpal/verifpal.git";
-    rev = version;
-    sha256 = "0njgn6j5qg5kgid6ddv23axhw5gwjbayhdjkj4ya08mnxndr284m";
+    rev = "v${version}";
+    sha256 = "1ia3mxwcvcxghga2vvhf6mia59cm3jl7vh8laywh421bfj42sh9d";
   };
 
-  nativeBuildInputs = [ pigeon ];
+  vendorSha256 = "0cmj6h103igg5pcs9c9wrcmrsf0mwp9vbgzf5amsnj1206ryb1p2";
 
-  postPatch = ''
-    sed -e 's|/bin/echo |echo |g' -i Makefile
-  '';
+  doCheck = false;
 
-  buildPhase = ''
-    make -C go/src/$goPackagePath parser linux
-  '';
+  nativeBuildInputs = [ pigeon ];
+
+  subPackages = [ "cmd/verifpal" ];
 
-  installPhase = ''
-    mkdir -p $out/bin
-    cp go/src/$goPackagePath/build/bin/linux/verifpal $out/bin/
+  # goversioninfo is for Windows only and can be skipped during go generate
+  preBuild = ''
+    substituteInPlace cmd/verifpal/main.go --replace "go:generate goversioninfo" "(disabled goversioninfo)"
+    go generate verifpal.com/cmd/verifpal
   '';
 
   meta = {
diff --git a/pkgs/tools/security/verifpal/deps.nix b/pkgs/tools/security/verifpal/deps.nix
deleted file mode 100644
index aaa4269416a..00000000000
--- a/pkgs/tools/security/verifpal/deps.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/logrusorgru/aurora";
-    fetch = {
-      type = "git";
-      url = "https://github.com/logrusorgru/aurora";
-      rev = "94edacc10f9b";
-      sha256 = "0bhwy3rrd8mwb8xjwf44nj6vmxaj5hdvayvszr1rskkmz08l5v01";
-    };
-  }
-]
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/yara/default.nix b/pkgs/tools/security/yara/default.nix
index a470ad11caf..8a119535023 100644
--- a/pkgs/tools/security/yara/default.nix
+++ b/pkgs/tools/security/yara/default.nix
@@ -1,30 +1,28 @@
-{ stdenv, fetchFromGitHub, fetchpatch, autoconf, automake, libtool, pcre
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pcre
+, pkg-config
+, protobufc
 , withCrypto ? true, openssl
 , enableMagic ? true, file
 , enableCuckoo ? true, jansson
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.11.0";
+  version = "4.0.1";
   pname = "yara";
 
   src = fetchFromGitHub {
     owner = "VirusTotal";
     repo = "yara";
     rev = "v${version}";
-    sha256 = "0mx3xm2a70fx8vlynkavq8gfd9w5yjcix5rx85444i2s1h6kcd0j";
+    sha256 = "0dy8jf0pdn0wilxy1pj6pqjxg7icxkwax09w54np87gl9p00f5rk";
   };
 
-  # See: https://github.com/VirusTotal/yara/issues/1036
-  # TODO: This patch should not be necessary in the next release
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/VirusTotal/yara/commit/04df811fa61fa54390b274bfcf56d7403c184404.patch";
-      sha256 = "0hsbc2k7nmk2kskll971draz0an4rmcs5v0iql47mz596vqvkzmb";
-    })
-  ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
 
-  buildInputs = [ autoconf automake libtool pcre ]
+  buildInputs = [ pcre protobufc ]
     ++ stdenv.lib.optionals withCrypto [ openssl ]
     ++ stdenv.lib.optionals enableMagic [ file ]
     ++ stdenv.lib.optionals enableCuckoo [ jansson ]
@@ -40,8 +38,8 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "The pattern matching swiss knife for malware researchers";
-    homepage    = "http://Virustotal.github.io/yara/";
-    license     = licenses.asl20;
-    platforms   = stdenv.lib.platforms.all;
+    homepage = "http://Virustotal.github.io/yara/";
+    license = licenses.asl20;
+    platforms = platforms.all;
   };
 }
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/confd/default.nix b/pkgs/tools/system/confd/default.nix
index e7a5dc86578..25f03e1a665 100644
--- a/pkgs/tools/system/confd/default.nix
+++ b/pkgs/tools/system/confd/default.nix
@@ -1,8 +1,8 @@
-{ buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoPackage, fetchFromGitHub }:
 
 buildGoPackage rec {
   pname = "confd";
-  version = "0.9.0";
+  version = "0.16.0";
   rev = "v${version}";
 
   goPackagePath = "github.com/kelseyhightower/confd";
@@ -12,8 +12,13 @@ buildGoPackage rec {
     inherit rev;
     owner = "kelseyhightower";
     repo = "confd";
-    sha256 = "0rz533575hdcln8ciqaz79wbnga3czj243g7fz8869db6sa7jwlr";
+    sha256 = "0q7r6dkgirnmqi3rhqdaai88jqzw52l6jdrrwsf2qq0hva09961p";
   };
 
-  goDeps = ./deps.nix;
+  meta = {
+    description = "Manage local application configuration files using templates and data from etcd or consul";
+    homepage = "https://github.com/kelseyhightower/confd";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.zimbatm ];
+  };
 }
diff --git a/pkgs/tools/system/confd/deps.nix b/pkgs/tools/system/confd/deps.nix
deleted file mode 100644
index 74467ddf9cc..00000000000
--- a/pkgs/tools/system/confd/deps.nix
+++ /dev/null
@@ -1,74 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/Sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Sirupsen/logrus";
-      rev = "be52937128b38f1d99787bb476c789e2af1147f1";
-      sha256 = "1m6vvd4pg4lwglhk54lv5mf6cc8h7bi0d9zb3gar4crz531r66y4";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/go-etcd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-etcd";
-      rev = "9847b93751a5fbaf227b893d172cee0104ac6427";
-      sha256 = "1ihq01ayqzxvn6hca5j00vl189vi5lm78f0fy2wpk5mrm3xi01l4";
-    };
-  }
-  {
-    goPackagePath = "github.com/ugorji/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ugorji/go";
-      rev = "03e33114d4d60a1f37150325e15f51b0fa6fc4f6";
-      sha256 = "01kdzgx23cgb4k867m1pvsw14hhdr9jf2frqy6i4j4221055m57v";
-    };
-  }
-  {
-    goPackagePath = "github.com/samuel/go-zookeeper";
-    fetch = {
-      type = "git";
-      url = "https://github.com/samuel/go-zookeeper";
-      rev = "5bb5cfc093ad18a28148c578f8632cfdb4d802e4";
-      sha256 = "1kpx1ymh7rds0b2km291idnyqi0zck74nd8hnk72crgz7wmpqv6z";
-    };
-  }
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "056c9bc7be7190eaa7715723883caffa5f8fa3e4";
-      sha256 = "0gkgkw04ndr5y7hrdy0r4v2drs5srwfcw2bs1gyas066hwl84xyw";
-    };
-  }
-  {
-    goPackagePath = "github.com/kelseyhightower/memkv";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kelseyhightower/memkv";
-      rev = "7f9c7f36f45ba80c62fe22779ee78d9b4ca36580";
-      sha256 = "090x65kr3gqh8fc8z4rm9hc2r0v0k7rfm5vsbmhdh21f48ixw540";
-    };
-  }
-  {
-    goPackagePath = "github.com/armon/consul-api";
-    fetch = {
-      type = "git";
-      url = "https://github.com/armon/consul-api";
-      rev = "f79efe463cdbb62f6d5a55f879a63ec554eb13e5";
-      sha256 = "1rkmzfhsazj9p2b6ywvs8yramzvxfxyvplzxi0ldvhcv04887gcp";
-    };
-  }
-  {
-    goPackagePath = "github.com/garyburd/redigo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/garyburd/redigo";
-      rev = "535138d7bcd717d6531c701ef5933d98b1866257";
-      sha256 = "1m7nc1gvv5yqnq8ii75f33485il6y6prf8gxl97dimsw94qccc5v";
-    };
-  }
-]
diff --git a/pkgs/tools/system/ctop/default.nix b/pkgs/tools/system/ctop/default.nix
index 4f492def162..6cb8e482160 100644
--- a/pkgs/tools/system/ctop/default.nix
+++ b/pkgs/tools/system/ctop/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "0y72l65xgfqrgghzbm1zcy776l5m31z0gn6vfr689zyi3k3f4kh8";
   };
 
-  modSha256 = "0wxv6yzlgki7047qszx9p9xpph95bg097jkgaa0b3wbpx8vg7qml";
+  vendorSha256 = "1x4li44vg0l1x205v9a971cgphplxhsrn59q97gmj9cfy4m7jdfw";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.build=v${version}" ];
 
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/di/default.nix b/pkgs/tools/system/di/default.nix
index 239544d20a6..0a6ae26547b 100644
--- a/pkgs/tools/system/di/default.nix
+++ b/pkgs/tools/system/di/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "di";
-  version = "4.47.3";
+  version = "4.48";
 
   src = fetchurl {
     url = "https://gentoo.com/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0m4npba50sf5s61g5z3xd2r7937zwja941f2h3f081xi24c2hfck";
+    sha256 = "0crvvfsxh8ryc0j19a2x52i9zacvggm8zi6j3kzygkcwnpz4km8r";
   };
 
   makeFlags = [ "INSTALL_DIR=$(out)" ];
diff --git a/pkgs/tools/system/disk-filltest/default.nix b/pkgs/tools/system/disk-filltest/default.nix
new file mode 100644
index 00000000000..7bcf592012a
--- /dev/null
+++ b/pkgs/tools/system/disk-filltest/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "disk-filltest";
+  version = "0.8.2";
+
+  src = fetchFromGitHub {
+    owner = "bingmann";
+    repo = "disk-filltest";
+    rev = "v${version}";
+    sha256 = "0qmcf5k5j7946wsbxrw4rqfj48mwl3r6kb4l3gppl97k7iyni6kj";
+  };
+
+  preBuild = ''
+    substituteInPlace Makefile --replace 'prefix = /usr/local' 'prefix = $(out)'
+  '';
+
+  postInstall = ''
+    install -D -m0644 -t $out/share/doc COPYING README
+    mkdir -p $out/share/man; mv $out/man1 $out/share/man
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple program to detect bad disks by filling them with random data";
+    longDescription = ''
+      disk-filltest is a tool to check storage disks for coming
+      failures by write files with pseudo-random data to the current
+      directory until the disk is full, read the files again
+      and verify the sequence written. It also can measure
+      read/write speed while filling the disk.
+    '';
+    homepage = "https://panthema.net/2013/disk-filltest";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ caadar ];
+    platforms = platforms.all;
+  };
+
+}
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/efivar/default.nix b/pkgs/tools/system/efivar/default.nix
index 71389af7423..ea0ed8afcfd 100644
--- a/pkgs/tools/system/efivar/default.nix
+++ b/pkgs/tools/system/efivar/default.nix
@@ -28,6 +28,16 @@ stdenv.mkDerivation rec {
       url = "https://github.com/rhboot/efivar/commit/c3c553db85ff10890209d0fe48fb4856ad68e4e0.patch";
       sha256 = "0lc38npydp069nlcga25wzzm204ww9l6mpjfn6wmhdfhn0pgjwky";
     })
+    (fetchurl {
+      name = "remove_unused_variable.patch";
+      url = "https://github.com/rhboot/efivar/commit/fdb803402fb32fa6d020bac57a40c7efe4aabb7d.patch";
+      sha256 = "1xhy8v8ff9lyxb830n9hci2fbh7rfps6rwsqrjh4lw7316gwllsd";
+    })
+    (fetchurl {
+      name = "check_string_termination.patch";
+      url = "https://github.com/rhboot/efivar/commit/4e04afc2df9bbc26e5ab524b53a6f4f1e61d7c9e.patch";
+      sha256 = "1ajj11wwsvamfspq4naanvw08h63gr0g71q0dfbrrywrhc0jlmdw";
+    })
   ];
   # We have no LTO here since commit 22284b07.
   postPatch = if stdenv.isi686 then "sed '/^OPTIMIZE /s/-flto//' -i Make.defaults" else null;
diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix
index 0d2d704ea6c..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.10";
+  version = "3.14.12";
 
   src = fetchFromGitHub {
-    sha256 = "0yblz8k30kv9jpfs6bd0hcx5nfr23l7nxyw0q7p7c4ygkx3mb1ji";
+    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 3cf9e976398..80789681fc4 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.19";
+  version = "3.21";
 
   src = fetchFromGitHub {
     owner  = "axboe";
     repo   = "fio";
     rev    = "fio-${version}";
-    sha256 = "1gr62mzv5rk6mbhll2c0fxgb46anx375cm2ym10mj2rvabcrhnqq";
+    sha256 = "0v8bq79n2nfnrs8pw2f3a93f8k691dnfzd5qxb5srwak4y2za7hn";
   };
 
   buildInputs = [ python zlib ]
diff --git a/pkgs/tools/system/freeipmi/default.nix b/pkgs/tools/system/freeipmi/default.nix
index e51f554ea0f..35fb630d238 100644
--- a/pkgs/tools/system/freeipmi/default.nix
+++ b/pkgs/tools/system/freeipmi/default.nix
@@ -1,12 +1,12 @@
 { fetchurl, stdenv, libgcrypt, readline, libgpgerror }:
 
 stdenv.mkDerivation rec {
-  version = "1.6.4";
+  version = "1.6.5";
   pname = "freeipmi";
 
   src = fetchurl {
     url = "mirror://gnu/freeipmi/${pname}-${version}.tar.gz";
-    sha256 = "0g0s4iwx0ng4rv7hp5cc3kkx4drahsc89981gwjblf04lfavppv5";
+    sha256 = "1ncf1s84752xaq07h36wrxa5ww1167s2bizkww0igxv8djyddwk1";
   };
 
   buildInputs = [ libgcrypt readline libgpgerror ];
diff --git a/pkgs/tools/system/gotop/default.nix b/pkgs/tools/system/gotop/default.nix
index 44ef60c70f3..f5d7ff4759e 100644
--- a/pkgs/tools/system/gotop/default.nix
+++ b/pkgs/tools/system/gotop/default.nix
@@ -2,16 +2,21 @@
 
 buildGoModule rec {
   pname = "gotop";
-  version = "3.5.0";
+  version = "4.0.1";
 
   src = fetchFromGitHub {
     owner = "xxxserxxx";
     repo = pname;
     rev = "v${version}";
-    sha256 = "01a2y2604dh2zfy5f2fxr306id0fbq0df91fpz2m8w7rpaszd6xr";
+    sha256 = "10qfzmq1wdgpvv319khzicalix1x4fqava0wry3bzz84k5c9dabs";
   };
 
-  modSha256 = "1gbpxq2vyshln97gij5y9qsjyf3mkwfqwwhikc0cck3mnwiv87dd";
+  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";
diff --git a/pkgs/tools/system/inxi/default.nix b/pkgs/tools/system/inxi/default.nix
index 36456501618..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.00-1";
+  version = "3.1.06-1";
 
   src = fetchFromGitHub {
     owner = "smxi";
     repo = "inxi";
     rev = version;
-    sha256 = "0md6yfd297l8695g0rsbs4mm74dc3k00rfjl4x2n4i33mkylp6qa";
+    sha256 = "11z90x7rwzm7krkcnmcs9f41i1d284vrj0aqk2xnvl3p79vx25f7";
   };
 
   buildInputs = [ perl makeWrapper ];
diff --git a/pkgs/tools/system/ior/default.nix b/pkgs/tools/system/ior/default.nix
index 6015e60afba..eff85589a1e 100644
--- a/pkgs/tools/system/ior/default.nix
+++ b/pkgs/tools/system/ior/default.nix
@@ -1,27 +1,23 @@
-{ stdenv, fetchurl, openmpi, automake, autoconf, perl }:
+{ stdenv, fetchFromGitHub, openmpi, perl, autoreconfHook }:
 
-let
-  version = "3.0.1";
-  sha256 = "039rh4z3lsj4vqjsqgakk0b7dkrdrkkzj0p1cjikpc9gn36zpghc";
-in
-
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "ior";
-  inherit version;
+  version = "3.2.1";
 
-  src = fetchurl {
-    url = "https://github.com/LLNL/ior/archive/${version}.tar.gz";
-    inherit sha256;
+  src = fetchFromGitHub {
+    owner = "hpc";
+    repo = pname;
+    rev = version;
+    sha256 = "036cg75c5vq6kijfv8f918vpm9sf1h7lyg6xr9fba7n0dwbbmycv";
   };
 
-  buildInputs = [ openmpi automake autoconf perl ];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ openmpi perl ];
 
   enableParallelBuilding = true;
 
-  preConfigure = "./bootstrap";
-
   meta = with stdenv.lib; {
-    homepage = "https://www.nersc.gov/users/computational-systems/cori/nersc-8-procurement/trinity-nersc-8-rfp/nersc-8-trinity-benchmarks/ior/";
+    homepage = "https://ior.readthedocs.io/en/latest/";
     description = "Parallel file system I/O performance test";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/tools/system/jump/default.nix b/pkgs/tools/system/jump/default.nix
index bc2adb22c4f..9966ace14f4 100644
--- a/pkgs/tools/system/jump/default.nix
+++ b/pkgs/tools/system/jump/default.nix
@@ -11,7 +11,9 @@ buildGoModule rec {
     sha256 = "0mph3bqfjnw3yf0a6ml3ccmkr1shviwvvq4d04ky4gppfy6z51jy";
   };
 
-  modSha256 = "1fzsm85c31vkdw80kijxmjhk8jyhjz8b21npgks2qrnizhm6iaf8";
+  vendorSha256 = "1500vim2lmkkls758pwhlx3piqbw6ap0nnhdwz9pcxih4s4as2nk";
+
+  doCheck = false;
 
   outputs = [ "out" "man"];
   postInstall = ''
@@ -34,7 +36,6 @@ buildGoModule rec {
     '';
     homepage = "https://github.com/gsamokovarov/jump";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ sondr3 ];
   };
 }
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 102858beced..e5316e028db 100644
--- a/pkgs/tools/system/netdata/default.nix
+++ b/pkgs/tools/system/netdata/default.nix
@@ -14,14 +14,14 @@ with stdenv.lib;
 let
   go-d-plugin = callPackage ./go.d.plugin.nix {};
 in stdenv.mkDerivation rec {
-  version = "1.21.1";
+  version = "1.23.2";
   pname = "netdata";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "netdata";
     rev = "v${version}";
-    sha256 = "0i0k64r8j1g02s2bi2gm0j47y52l3xli63w686ncpgmlhwmdfz65";
+    sha256 = "1vv92plk9dxk6fl76ik1zralpzc35ymrfyrf1cr6pv8q3agyy5k4";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
@@ -36,6 +36,12 @@ in stdenv.mkDerivation rec {
 
   patches = [
     ./no-files-in-etc-and-var.patch
+  ] ++ stdenv.lib.optionals (!stdenv.cc.isGNU) [
+    # fix memcpy typo for non-gnu. Remove with the next release.
+    (fetchpatch {
+      url = "https://github.com/netdata/netdata/commit/da7f267196b489e9a75724b68897e8f2e6137d72.patch";
+      sha256 = "1j2sa06j6v491nw58bjx5nqqyfi1n2n9z3p3jiy4yh74m3asldlv";
+    })
   ];
 
   NIX_CFLAGS_COMPILE = optionalString withDebug "-O1 -ggdb -DNETDATA_INTERNAL_CHECKS=1";
diff --git a/pkgs/tools/system/netdata/go.d.plugin.nix b/pkgs/tools/system/netdata/go.d.plugin.nix
index cada1eb65c3..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.18.0";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "go.d.plugin";
     rev = "v${version}";
-    sha256 = "15h4075lwqh58ssdgyq34jj8r4dga0sz7h18dzy4nir75p8a0s7b";
+    sha256 = "0wd1wg56q955jm5ksq2zqzlms1nlxx7n7vv43l096k1578fv93jv";
   };
 
-  modSha256 = "1386qhk1yr47h7qv15k0abc8mfif96pqapw0v4wrf3pl1z9mzl2n";
+  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 e76ab496ef9..4bbe2bdcee0 100644
--- a/pkgs/tools/system/pciutils/default.nix
+++ b/pkgs/tools/system/pciutils/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, zlib, kmod, which }:
 
 stdenv.mkDerivation rec {
-  name = "pciutils-3.6.4"; # with release-date database
+  name = "pciutils-3.7.0"; # with release-date database
 
   src = fetchurl {
     url = "mirror://kernel/software/utils/pciutils/${name}.tar.xz";
-    sha256 = "0mb0f2phdcmp4kfiqsszn2k6nlln0w160ffzrjjv4bbfjwrgfzzn";
+    sha256 = "1ss0rnfsx8gvqjxaji4mvbhf9xyih4cadmgadbwwv8mnx1xvjh4x";
   };
 
   nativeBuildInputs = [ pkgconfig ];
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/runit/default.nix b/pkgs/tools/system/runit/default.nix
index a4319fd5749..acca0acf3ef 100644
--- a/pkgs/tools/system/runit/default.nix
+++ b/pkgs/tools/system/runit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl
+{ stdenv, fetchurl, darwin
 
 # Build runit-init as a static binary
 , static ? false
@@ -23,7 +23,8 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  buildInputs = stdenv.lib.optionals static [ stdenv.cc.libc stdenv.cc.libc.static ];
+  buildInputs = stdenv.lib.optionals static [ stdenv.cc.libc stdenv.cc.libc.static ] ++
+    stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.libs.utmp;
 
   postPatch = ''
     sed -i "s,\(#define RUNIT\) .*,\1 \"$out/bin/runit\"," src/runit.h
@@ -39,7 +40,7 @@ stdenv.mkDerivation rec {
 
     # Both of these are originally hard-coded to gcc
     echo ${stdenv.cc.targetPrefix}cc > conf-cc
-    echo ${stdenv.cc.targetPrefix}cc > conf-ld
+    echo ${stdenv.cc.targetPrefix}cc ${stdenv.lib.optionalString stdenv.isDarwin "-Xlinker -x "}> conf-ld
   '';
 
   installPhase = ''
@@ -55,6 +56,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     homepage = "http://smarden.org/runit";
     maintainers = with maintainers; [ joachifm ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
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 034564949c9..5d9196fcc16 100644
--- a/pkgs/tools/system/smartmontools/default.nix
+++ b/pkgs/tools/system/smartmontools/default.nix
@@ -1,14 +1,15 @@
 { stdenv, fetchurl, autoreconfHook
+, mailutils, inetutils
 , IOKit ? null , ApplicationServices ? null }:
 
 let
   version = "7.1";
 
-  dbrev = "5033";
+  dbrev = "5062";
   drivedbBranch = "RELEASE_7_0_DRIVEDB";
   driverdb = fetchurl {
     url    = "https://sourceforge.net/p/smartmontools/code/${dbrev}/tree/branches/${drivedbBranch}/smartmontools/drivedb.h?format=raw";
-    sha256 = "029j118lwiazn56vg6d3i7ayv73wrpv1fypw3ff4nd4hgs2mlcrg";
+    sha256 = "0gggl55h9gq0z846ndhyd7xrpxh8lqfbidblx0598q2wlh9rvlww";
     name   = "smartmontools-drivedb.h";
   };
 
@@ -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 883305b1d54..d9953b7cdb5 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.08";
+  version = "0.11.14";
 
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1xy5m5r4icc10h957ank0amnh46v2v47z4n1z43d9s7lmvahw287";
+    sha256 = "0sqka2ns9xqma9wa67in4vrd15q0rz62gblmzniq5i4xppykc55j";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/system/syslog-ng/default.nix b/pkgs/tools/system/syslog-ng/default.nix
index ed104f3a9ba..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.26.1";
+  version = "3.28.1";
 
   src = fetchurl {
     url = "https://github.com/${pname}/${pname}/releases/download/${pname}-${version}/${pname}-${version}.tar.gz";
-    sha256 = "1kb2rdhfw4vcdxpvr7rcpg5ysr14ib43bfqdm3755wjdhqil48ch";
+    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 bc0fa7ea988..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";
-  version = "0.2.3";
+  pname = "tre-command";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "dduan";
     repo = "tre";
     rev = "v${version}";
-    sha256 = "1fazw2wn738iknbv54gv7qll7d4q2gy9bq1s3f3cv21cdv6bqral";
+    sha256 = "1kb8jwmjhlp9bk08rb6gq3j810cv9bidm28sa417vyykp9a8p2ky";
   };
 
-  cargoSha256 = "16bvnwgjf3kj99d77j1pkldbasxfwy55sj9sv9vf2z6llfmzfabd";
+  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/tuptime/default.nix b/pkgs/tools/system/tuptime/default.nix
index acc96998952..abfc8ae5ac8 100644
--- a/pkgs/tools/system/tuptime/default.nix
+++ b/pkgs/tools/system/tuptime/default.nix
@@ -1,28 +1,37 @@
-{ stdenv, fetchFromGitHub, python3 }:
+{ stdenv, fetchFromGitHub
+, makeWrapper, installShellFiles
+, python3, sqlite }:
 
 stdenv.mkDerivation rec {
   pname = "tuptime";
-  version = "4.1.0";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "rfrail3";
     repo = "tuptime";
     rev = version;
-    sha256 = "0p5v1jp6bl0hjv04q3gh11q6dx9z0x61h6svcbvwp5ni0h1bkz1a";
+    sha256 = "0izps85p8pxidfrzp7l4hp221fx3dcgapapsix1zavq6jrsl2qyh";
   };
 
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
+
   buildInputs = [ python3 ];
 
+  outputs = [ "out" "man" ];
+
   installPhase = ''
     mkdir -p $out/bin
-    install -m 755 src/tuptime $out/bin/
+    install -m 755 $src/src/tuptime $out/bin/
 
-    mkdir -p $out/share/man/man1
-    cp src/man/tuptime.1 $out/share/man/man1/
+    installManPage $src/src/man/tuptime.1
+
+    install -Dm 0755 $src/misc/scripts/db-tuptime-migrate-4.0-to-5.0.sh \
+      $out/share/tuptime/db-tuptime-migrate-4.0-to-5.0.sh
+  '';
 
-    # upstream only ships this, there are more scripts there...
-    mkdir -p $out/usr/share/doc/tuptime/contrib
-    cp misc/scripts/uptimed-to-tuptime.py $out/usr/share/doc/tuptime/contrib/
+  preFixup = ''
+    wrapProgram $out/share/tuptime/db-tuptime-migrate-4.0-to-5.0.sh \
+      --prefix PATH : "${stdenv.lib.makeBinPath [ sqlite ]}"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/system/ytop/default.nix b/pkgs/tools/system/ytop/default.nix
index 08e227d2454..64c3bf93aaa 100644
--- a/pkgs/tools/system/ytop/default.nix
+++ b/pkgs/tools/system/ytop/default.nix
@@ -4,18 +4,18 @@ assert stdenv.isDarwin -> IOKit != null;
 
 rustPlatform.buildRustPackage rec {
   pname = "ytop";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "cjbassi";
     repo = pname;
     rev = version;
-    sha256 = "1p746v9xrfm6avc6v9dvcnpckhvdizzf53pcg9bpcp0lw5sh85da";
+    sha256 = "02cpn5257yrmbakx3mlqs97kfambbn9ljb60jbqr1b9w24kd6zgf";
   };
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ IOKit ];
 
-  cargoSha256 = "15cpi0b5yqjwi1liry2q17sn9hpc4xf9gn33ri3rs6ls5qs7j7pa";
+  cargoSha256 = "0alqzy9gbj9m4l7xj1jsrnl09pv6z7c73gq787cqwn0gj93aaj19";
 
   meta = with stdenv.lib; {
     description = "A TUI system monitor written in Rust";
diff --git a/pkgs/tools/system/zenith/cargo-lock.patch b/pkgs/tools/system/zenith/cargo-lock.patch
deleted file mode 100644
index 023480767b0..00000000000
--- a/pkgs/tools/system/zenith/cargo-lock.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-index 3f4eec6..64b1a6a 100644
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -1297,7 +1297,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
- 
- [[package]]
- name = "zenith"
--version = "0.8.0"
-+version = "0.8.2"
- dependencies = [
-  "battery",
-  "bincode",
diff --git a/pkgs/tools/system/zenith/default.nix b/pkgs/tools/system/zenith/default.nix
index cdaf3a0f8eb..6e3024a3f7d 100644
--- a/pkgs/tools/system/zenith/default.nix
+++ b/pkgs/tools/system/zenith/default.nix
@@ -2,17 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "zenith";
-  version = "0.8.2";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "bvaisvil";
     repo = pname;
     rev = version;
-    sha256 = "1s1l4nq4bsvi54i603faann8cp1409qa2ka7id0m38b3li8z2984";
+    sha256 = "04nd5gq49y1k9xxrc9ll155k9j42ivscjzx405qyyxv7dpgyw131";
   };
 
-  cargoPatches = [ ./cargo-lock.patch ];
-  cargoSha256 = "0h6k7yf4hpfxnad46iv8gp3v3zc4x4p9yab40gr8xv8r1syf9f6g";
+  cargoSha256 = "0ggpr2skl3d47y771npmbbqb9vga4y4iyry3qn0xj2hg9d7msf4l";
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ IOKit ];
 
diff --git a/pkgs/tools/text/agrep/default.nix b/pkgs/tools/text/agrep/default.nix
index c285b892b92..c0816f8ab76 100644
--- a/pkgs/tools/text/agrep/default.nix
+++ b/pkgs/tools/text/agrep/default.nix
@@ -21,10 +21,12 @@ stdenv.mkDerivation {
     install -Dm 444 docs/* -t "$out/doc"
   '';
 
-  meta = {
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+
+  meta = with stdenv.lib; {
     description = "Approximate grep for fast fuzzy string searching";
     homepage = "https://www.tgries.de/agrep/";
-    license = stdenv.lib.licenses.isc;
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.isc;
+    platforms = with platforms; linux ++ darwin;
   };
 }
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/ansifilter/default.nix b/pkgs/tools/text/ansifilter/default.nix
index 8ebb5cfd059..00c8c075ed6 100644
--- a/pkgs/tools/text/ansifilter/default.nix
+++ b/pkgs/tools/text/ansifilter/default.nix
@@ -12,6 +12,10 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ boost lua ];
 
+  postPatch = ''
+    substituteInPlace src/makefile --replace "CC=g++" "CC=c++"
+  '';
+
   makeFlags = [
     "PREFIX=${placeholder "out"}"
     "conf_dir=/etc/ansifilter"
@@ -26,6 +30,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.andre-simon.de/doku/ansifilter/en/ansifilter.php";
     license = licenses.gpl3;
     maintainers = [ maintainers.Adjective-Object ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
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/epubcheck/default.nix b/pkgs/tools/text/epubcheck/default.nix
index 914fe006735..b40769e5522 100644
--- a/pkgs/tools/text/epubcheck/default.nix
+++ b/pkgs/tools/text/epubcheck/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "epubcheck";
-  version = "4.2.2";
+  version = "4.2.4";
 
   src = fetchzip {
     url = "https://github.com/w3c/epubcheck/releases/download/v${version}/epubcheck-${version}.zip";
-    sha256 = "0vz7k6i6y60ml20pbw2p9iqy6kxw4ziqszg6hbgz102x1jk8788d";
+    sha256 = "02iy62b9wa5shxggflx99kv2q9xkilcsq94s0gbfq4m2aqjgzfwx";
   };
 
   nativeBuildInputs = [ makeWrapper ];
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
new file mode 100644
index 00000000000..d15683894a2
--- /dev/null
+++ b/pkgs/tools/text/fastmod/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fastmod";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "facebookincubator";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0089a17h0wgan3fs6x1la35lzjs1pib7p81wqkh3zcwvx8ffa8z8";
+  };
+
+  cargoSha256 = "02nkxjwfiljndmi0pv98chfsw9vmjzgmp5r14mchpayp4943qk9m";
+
+  buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
+
+  meta = with stdenv.lib; {
+    description = "A utility that makes sweeping changes to large, shared code bases";
+    homepage = "https://github.com/facebookincubator/fastmod";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jduan ];
+  };
+}
diff --git a/pkgs/tools/text/gjo/default.nix b/pkgs/tools/text/gjo/default.nix
index fd06129acfa..28af709c30e 100644
--- a/pkgs/tools/text/gjo/default.nix
+++ b/pkgs/tools/text/gjo/default.nix
@@ -14,9 +14,7 @@ buildGoModule rec {
     sha256 = "07halr0jzds4rya6hlvp45bjf7vg4yf49w5q60mch05hk8qkjjdw";
   };
 
-  doCheck = true;
-
-  modSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
+  vendorSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
 
   meta = with stdenv.lib; {
     description = "Small utility to create JSON objects";
@@ -25,4 +23,3 @@ buildGoModule rec {
     maintainers = with maintainers; [ doronbehar ];
   };
 }
-
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/gtranslator/default.nix b/pkgs/tools/text/gtranslator/default.nix
index ff5288f1631..5f217e69ea5 100644
--- a/pkgs/tools/text/gtranslator/default.nix
+++ b/pkgs/tools/text/gtranslator/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "LaodO1m0o171TfCHNFsD4XA+clCB+drFQ1OSKKcVrdM=";
+    sha256 = "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/text/highlight/default.nix b/pkgs/tools/text/highlight/default.nix
index bc32a60c672..a918770aa7b 100644
--- a/pkgs/tools/text/highlight/default.nix
+++ b/pkgs/tools/text/highlight/default.nix
@@ -5,13 +5,13 @@ with stdenv.lib;
 let
   self = stdenv.mkDerivation rec {
     pname = "highlight";
-    version = "3.56";
+    version = "3.57";
 
     src = fetchFromGitLab {
       owner = "saalen";
       repo = "highlight";
       rev = "v${version}";
-      sha256 = "1pilx58dg96zm0yx7i6k92vibwpvpj8ir39f2akrsyjgijnv3sx4";
+      sha256 = "1xrk7c7akjiwh3wh9bll0qh4g0kqvbzjz9ancpadnk0k7bqi0kxf";
     };
 
     enableParallelBuilding = true;
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/languagetool/default.nix b/pkgs/tools/text/languagetool/default.nix
index fccd2174a6d..0dd01d382ed 100644
--- a/pkgs/tools/text/languagetool/default.nix
+++ b/pkgs/tools/text/languagetool/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "LanguageTool";
-  version = "4.9.1";
+  version = "5.0";
 
   src = fetchzip {
     url = "https://www.languagetool.org/download/${pname}-${version}.zip";
-    sha256 = "0hvzckb92yijzmp2vphjp1wgql3xqq0xd83v5x6pbhziq9yxc5yh";
+    sha256 = "1jyd4z62ldwhqx9r7v4b9k4pl300wr4b7ggj4f0yjf0gpwg7l9p7";
   };
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ jre ];
diff --git a/pkgs/tools/text/mdbook/default.nix b/pkgs/tools/text/mdbook/default.nix
index 9ca92a21db1..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.3.7";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "rust-lang-nursery";
     repo = "mdBook";
     rev = "v${version}";
-    sha256 = "0a5i842aqa5xaii5lfrnks0ldavbhbd3bl4f2d442i1ahbin5b32";
+    sha256 = "0rkl5k7a9a0vx06jqvbgki2bwag0ar2pcbg3qi88xnjnnmphzpzj";
   };
 
-  cargoSha256 = "1qx3447y684b7y18lgk9cc37if2ld42jnmy1kak191q6rjh5ssh7";
+  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 afd1a2990ff..0d5f878af08 100644
--- a/pkgs/tools/text/mdcat/default.nix
+++ b/pkgs/tools/text/mdcat/default.nix
@@ -2,28 +2,31 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdcat";
-  version = "0.16.0";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "lunaryorn";
     repo = pname;
     rev = "mdcat-${version}";
-    sha256 = "10svzq7656lynfcgnbyaibfvv48i4289ymxfc0bn0212biyrl1zb";
+    hash = "sha256-1qxz6p7VaJ9eMcLQaTW/M4+Xo0WLihzyEAycbkjjPyA=";
   };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
 
-  cargoSha256 = "05nh3dfr7mdw21sdavyyjhr8sa4jcfqzwizbgg92ib7r834ir3m0";
+  cargoSha256 = "sha256-/mAwlxed1MOFUA1jDSrgPzJuURbKzwucBWORVVHlrt8=";
 
   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 \
+    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; {
@@ -31,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..4137fd4d278 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.0";
 
   src = fetchFromGitHub {
     owner = "johnkerl";
     repo = "miller";
     rev = "v${version}";
-    sha256 = "1lmin69rf9lp3b64ga7li4sz7mm0gqapsbk1nb29l4fqjxk16ddh";
+    sha256 = "14fi6jlqb980qjcpb90fk85cglskq9b9i2k0216bhpvjmagywgp7";
   };
 
   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 19690e270af..b7864b05b6e 100644
--- a/pkgs/tools/text/ocrmypdf/default.nix
+++ b/pkgs/tools/text/ocrmypdf/default.nix
@@ -12,7 +12,6 @@
 , unpaper
 , substituteAll
 }:
-
 let
   inherit (python3Packages) buildPythonApplication;
 
@@ -27,16 +26,17 @@ let
     pillow
   ];
 
-in buildPythonApplication rec {
+in
+buildPythonApplication rec {
   pname = "ocrmypdf";
-  version = "9.8.0";
+  version = "10.3.0";
   disabled = ! python3Packages.isPy3k;
 
   src = fetchFromGitHub {
     owner = "jbarlow83";
     repo = "OCRmyPDF";
     rev = "v${version}";
-    sha256 = "1l4bwnbd3g0wmdx8yv8hi5wm2z2q67y9mwrvrc4xxmkdrb5y8jcd";
+    sha256 = "0c6v7846lmkmbyfla07s35mpba4h09h0fx6pxqf0yvdjxmj46q8c";
   };
 
   nativeBuildInputs = with python3Packages; [
@@ -49,8 +49,10 @@ in buildPythonApplication rec {
   propagatedBuildInputs = with python3Packages; [
     cffi
     chardet
+    coloredlogs
     img2pdf
     pdfminer
+    pluggy
     pikepdf
     pillow
     reportlab
@@ -66,7 +68,7 @@ in buildPythonApplication rec {
     pytestcov
     pytestrunner
     python-xmp-toolkit
-    setuptools
+    pytestCheckHook
   ] ++ runtimeDeps;
 
   patches = [
@@ -74,27 +76,10 @@ in buildPythonApplication rec {
       src = ./liblept.patch;
       liblept = "${stdenv.lib.getLib leptonica}/lib/liblept${stdenv.hostPlatform.extensions.sharedLibrary}";
     })
+    # https://github.com/jbarlow83/OCRmyPDF/pull/596
+    ./0001-Make-compatible-with-pdfminer.six-version-20200720.patch
   ];
 
-  # 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/poedit/default.nix b/pkgs/tools/text/poedit/default.nix
index 767569e42c2..ccd99a272b5 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";
+  version = "2.3.1";
 
   src = fetchurl {
     url = "https://github.com/vslavik/poedit/archive/v${version}-oss.tar.gz";
-    sha256 = "0smvdpvb4hdhqc327pcj29bzjqbzgad6mr7r5pg81461fi2r2myw";
+    sha256 = "04f9za35rwyr7mabk8f8izc0fgvc3sfx45v8dml1xmi634n174ds";
   };
 
   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 dcce9bf3291..8da7a54ebb2 100644
--- a/pkgs/tools/text/ripgrep-all/default.nix
+++ b/pkgs/tools/text/ripgrep-all/default.nix
@@ -1,25 +1,25 @@
-{ stdenv, lib, fetchFromGitHub, rustPlatform, makeWrapper, ffmpeg
+{ stdenv, lib, fetchFromGitHub, rustPlatform, makeWrapper, ffmpeg_3
 , pandoc, poppler_utils, ripgrep, Security, imagemagick, tesseract
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "ripgrep-all";
-  version = "0.9.5";
+  version = "0.9.6";
 
   src = fetchFromGitHub {
     owner = "phiresky";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1nl03i36ilhxn5xbcry6pcr7vbl5667m43flpxaa0lf1wijzn5c2";
+    sha256 = "1wjpgi7m3lxybllkr3r60zaphp02ykq2syq72q9ail2760cjcir6";
   };
 
-  cargoSha256 = "0ndyd8qrvljkk6yvpsp0w17iizxb529sh5q2bj790m32x0gz2w8l";
+  cargoSha256 = "0arwxqrpxdws4q1pnqzqkp1yv5aas08lkzh1vcgmf26j58sycniy";
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = lib.optional stdenv.isDarwin Security;
 
   postInstall = ''
     wrapProgram $out/bin/rga \
-      --prefix PATH ":" "${lib.makeBinPath [ ffmpeg pandoc poppler_utils ripgrep imagemagick tesseract ]}"
+      --prefix PATH ":" "${lib.makeBinPath [ ffmpeg_3 pandoc poppler_utils ripgrep imagemagick tesseract ]}"
   '';
 
   # Use upstream's example data to run a couple of queries to ensure the dependencies
@@ -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 ab589eb87fc..9a72e023d6d 100644
--- a/pkgs/tools/text/ripgrep/default.nix
+++ b/pkgs/tools/text/ripgrep/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ripgrep";
-  version = "12.1.0";
+  version = "12.1.1";
 
   src = fetchFromGitHub {
     owner = "BurntSushi";
     repo = pname;
     rev = version;
-    sha256 = "1vgkk78c25ia9y4q5psrh7xrlbfdn7dz7bc20kci40n8zr0vjwww";
+    sha256 = "1hqps7l5qrjh9f914r5i6kmcz6f1yb951nv4lby0cjnp5l253kps";
   };
 
-  cargoSha256 = "143lnf4yah9ik7v8rphv7gbvr2ckhjpmy8zfgqml1n3fqxiqvxnb";
+  cargoSha256 = "03wf9r2csi6jpa7v5sw5lpxkrk4wfzwmzx7k3991q3bdjzcwnnwp";
 
   cargoBuildFlags = stdenv.lib.optional withPCRE2 "--features pcre2";
 
@@ -38,7 +38,6 @@ rustPlatform.buildRustPackage rec {
     description = "A utility that combines the usability of The Silver Searcher with the raw speed of grep";
     homepage = "https://github.com/BurntSushi/ripgrep";
     license = with licenses; [ unlicense /* or */ mit ];
-    maintainers = with maintainers; [ tailhook globin ma27 ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ tailhook globin ma27 zowoq ];
   };
 }
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 cad59507903..ec58cbdd1a9 100644
--- a/pkgs/tools/text/shfmt/default.nix
+++ b/pkgs/tools/text/shfmt/default.nix
@@ -1,21 +1,30 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, fetchpatch }:
 
 buildGoModule rec {
   pname = "shfmt";
-  version = "3.1.1";
+  version = "3.1.2";
 
   src = fetchFromGitHub {
     owner = "mvdan";
     repo = "sh";
     rev = "v${version}";
-    sha256 = "0zlk1jjk65jwd9cx0xarz4yg2r2h86kd5g00gcnsav6dp6rx3aw8";
+    sha256 = "03zgi0rlra3gz8cbqwmhpjxsg5048anfc6ccd2w50fjhx6farsnv";
   };
 
-  modSha256 = "080k8d5rp8kyg0x7vjxm758b9ya9z336yd4rcqws7yhqawxiv55z";
-  subPackages = ["cmd/shfmt"];
+  vendorSha256 = "1jq2x4yxshsy4ahp7nrry8dc9cyjj46mljs447rq57sgix4ndpq8";
+
+  subPackages = [ "cmd/shfmt" ];
 
   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";
@@ -24,5 +33,6 @@ buildGoModule rec {
       You can feed it standard input, any number of files or any number of directories to recurse into.
     '';
     license = licenses.bsd3;
+    maintainers = with maintainers; [ zowoq ];
   };
 }
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 d2116ced5e2..00261507746 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
@@ -24,13 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "snippetpixie";
-  version = "1.3.1";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "bytepixie";
     repo = pname;
     rev = version;
-    sha256 = "0cnx7snw3h7p77fhihvqxb6bgg4s2ffvjr8nbymb4bnqlg2a7v97";
+    sha256 = "0ml57j6jagqvjlpgn1bcyx08h71kcxalh69y03y2lj84x5ib8qz3";
   };
 
   nativeBuildInputs = [
@@ -69,7 +70,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/tools/text/ugrep/default.nix b/pkgs/tools/text/ugrep/default.nix
new file mode 100644
index 00000000000..3e225ec3567
--- /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.3";
+
+  src = fetchFromGitHub {
+    owner = "Genivia";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "16ly1dz8wxnjk6kc88dl2x0ijmzw5v87fhai9fnardwfmycn7ivc";
+  };
+
+  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..69390b4d3d3 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.3";
 
   subPackages = [ "." ];
+  outputs = [ "out" "data" ];
 
   src = fetchFromGitHub {
     owner  = "errata-ai";
     repo   = "vale";
     rev    = "v${version}";
-    sha256 = "068973ayd883kzkxl60lpammf3icjz090nw07kfccvhcf24x07bh";
+    sha256 = "13b565l87nm3gpxxhw1bpjx7yqcgf5124k3wh7r149z38xyqc3wk";
   };
 
-  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/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/text/xurls/default.nix b/pkgs/tools/text/xurls/default.nix
index 30cc825c662..6c8e5520d74 100644
--- a/pkgs/tools/text/xurls/default.nix
+++ b/pkgs/tools/text/xurls/default.nix
@@ -1,14 +1,14 @@
 { buildGoPackage, stdenv, fetchFromGitHub }:
 
 buildGoPackage rec {
-  version = "2.0.0";
+  version = "2.2.0";
   pname = "xurls";
 
   src = fetchFromGitHub {
     owner = "mvdan";
     repo = "xurls";
     rev = "v${version}";
-    sha256 = "1jdjwlp19r8cb7vycyrjmpwf8dz2fzrqphq4lkvy9x2v7x0kksx8";
+    sha256 = "0w7i1yfl5q24wvmsfb3fz1zcqsdh4c6qikjnmswxbjc7wva8rngg";
   };
 
   goPackagePath = "mvdan.cc/xurls/v2";
diff --git a/pkgs/tools/typesetting/asciidoctorj/default.nix b/pkgs/tools/typesetting/asciidoctorj/default.nix
index ba46d36814a..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.0";
+  version = "2.4.0";
 
   src = fetchzip {
     url = "http://dl.bintray.com/asciidoctor/maven/org/asciidoctor/${pname}/${version}/${pname}-${version}-bin.zip";
-    sha256 = "1hmra1pg79hj9kqbj6702y5b03vyvfzqf6hq65jg1vxjqlq7h3xx";
+    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..aa7a8598d66
--- /dev/null
+++ b/pkgs/tools/typesetting/lowdown/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, which }:
+
+stdenv.mkDerivation rec {
+  pname = "lowdown";
+  version = "0.7.3";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchurl {
+    url = "https://kristaps.bsd.lv/lowdown/snapshots/lowdown-${version}.tar.gz";
+    sha512 = "14mx22aqr9cmin4cyhrclhm0hly1i21j2dmsikfp1c87wl2kpn9xgxnix5r0iqh5dwjxdh591rfh21xjp0l11m0nl5wkpnn7wmq7g6b";
+  };
+
+  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/scdoc/default.nix b/pkgs/tools/typesetting/scdoc/default.nix
index 356433bac41..5b6cf5e22f2 100644
--- a/pkgs/tools/typesetting/scdoc/default.nix
+++ b/pkgs/tools/typesetting/scdoc/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "scdoc";
-  version = "1.10.1";
+  version = "1.11.0";
 
   src = fetchurl {
     url = "https://git.sr.ht/~sircmpwn/scdoc/archive/${version}.tar.gz";
-    sha256 = "13x7g1r56bshvfmlvapvz35ywnbgsh337kywb5kcv8nc6b3j3q40";
+    sha256 = "17cjh3lcfppyl2mzpanylla93gdgdv5spc8jldshvayzizhfghwa";
   };
 
   postPatch = ''
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
       C99.
     '';
     homepage = "https://git.sr.ht/~sircmpwn/scdoc";
+    changelog = "https://git.sr.ht/~sircmpwn/scdoc/refs/${version}";
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ primeos ];
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 a145e1a42ff..5fde58251e0 100644
--- a/pkgs/tools/typesetting/tex/dblatex/default.nix
+++ b/pkgs/tools/typesetting/tex/dblatex/default.nix
@@ -1,10 +1,10 @@
 { 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
       fancybox fancyvrb float footmisc listings jknapltx/*for mathrsfs.sty*/
-      multirow overpic pdfpages graphics stmaryrd subfigure titlesec wasysym
+      multirow overpic pdfpages pdflscape graphics stmaryrd subfigure titlesec wasysym
       # pkgs below don't seem requested by dblatex, but our manual fails without them
       ec zapfding symbol eepic times rsfs cs tex4ht courier helvetic ly1;
   }
@@ -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/bin.nix b/pkgs/tools/typesetting/tex/texlive/bin.nix
index c0ae6b8e187..1a71ae04d49 100644
--- a/pkgs/tools/typesetting/tex/texlive/bin.nix
+++ b/pkgs/tools/typesetting/tex/texlive/bin.nix
@@ -46,7 +46,7 @@ let
         };
       in fetchurl {
         name = "pdftoepdf-poppler${popplerVersion}.cc";
-        url = "https://www.tug.org/svn/texlive/trunk/Build/source/texk/web2c/pdftexdir/pdftoepdf-poppler${popplerVersion}.cc?revision=52959&view=co";
+        url = "https://www.tug.org/svn/texlive/trunk/Build/source/texk/web2c/pdftexdir/pdftoepdf-poppler${popplerVersion}.cc?revision=52959&view=co&pathrev=52959";
         sha256 = "0pngvw1jgnm4cqskrzf5a3z8rj4ssl10007n3wbblj50hvvzjph3";
         postFetch = ''
           # The trunk added some extra arguments to certain functions so we need to revert that
@@ -56,7 +56,7 @@ let
       };
       pdftosrc = fetchurl {
         name = "pdftosrc-poppler${popplerVersion}.cc";
-        url = "https://www.tug.org/svn/texlive/trunk/Build/source/texk/web2c/pdftexdir/pdftosrc-poppler${popplerVersion}.cc?revision=52959&view=co";
+        url = "https://www.tug.org/svn/texlive/trunk/Build/source/texk/web2c/pdftexdir/pdftosrc-poppler${popplerVersion}.cc?revision=52959&view=co&pathrev=52959";
         sha256 = "0iq2cmwvf2lxy32sygrafwqgcwvvbdnvxm5l3mrg9cb2a1g06380";
       };
     in ''
diff --git a/pkgs/tools/typesetting/tex/texlive/combine.nix b/pkgs/tools/typesetting/tex/texlive/combine.nix
index ee4d0dfe588..fb3e6668a47 100644
--- a/pkgs/tools/typesetting/tex/texlive/combine.nix
+++ b/pkgs/tools/typesetting/tex/texlive/combine.nix
@@ -49,6 +49,10 @@ in buildEnv {
 
   ignoreCollisions = false;
   paths = pkgList.nonbin;
+  pathsToLink = [
+    "/"
+    "/tex/generic/config" # make it a real directory for scheme-infraonly
+  ];
 
   buildInputs = [ makeWrapper ] ++ pkgList.extraInputs;
 
diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix
index bb6432fc3e6..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);
 
@@ -175,7 +178,7 @@ in
             description = "TeX Live environment for ${pname}";
             platforms = lib.platforms.all;
             hydraPlatforms = lib.optionals
-              (lib.elem pname ["scheme-small" "scheme-basic"]) platforms;
+              (!lib.elem pname ["scheme-infraonly"]) platforms;
             maintainers = with lib.maintainers;  [ veprbl ];
           }
           (combine {
diff --git a/pkgs/tools/video/gopro/default.nix b/pkgs/tools/video/gopro/default.nix
index f783b086345..9979b224868 100644
--- a/pkgs/tools/video/gopro/default.nix
+++ b/pkgs/tools/video/gopro/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub
-, ffmpeg
+, ffmpeg_3
 , imagemagick
 , makeWrapper
 , mplayer
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
     install -Dm755 gopro -t $out/bin
     wrapProgram $out/bin/gopro \
-      --prefix PATH ":" "${stdenv.lib.makeBinPath [ ffmpeg imagemagick mplayer ]}"
+      --prefix PATH ":" "${stdenv.lib.makeBinPath [ ffmpeg_3 imagemagick mplayer ]}"
 
     runHook postInstall
   '';
diff --git a/pkgs/tools/video/rav1e/default.nix b/pkgs/tools/video/rav1e/default.nix
index 8a5e6c9eb40..f883c423d01 100644
--- a/pkgs/tools/video/rav1e/default.nix
+++ b/pkgs/tools/video/rav1e/default.nix
@@ -1,33 +1,27 @@
-{ rustPlatform, fetchFromGitHub, fetchurl, stdenv, lib, nasm }:
+{ rustPlatform, fetchFromGitHub, lib, nasm, cargo-c }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rav1e";
-  version = "0.3.1";
+  version = "0.3.3";
 
-  src = stdenv.mkDerivation rec {
-    name = "${pname}-${version}-source";
+  src = fetchFromGitHub {
+    owner = "xiph";
+    repo = "rav1e";
+    rev = "v${version}";
+    sha256 = "0a9dryag4x35a2c45qiq1j5xk9ydcpw1g6kici85d2yrc2z3hwrx";
+  };
 
-    src = fetchFromGitHub {
-      owner = "xiph";
-      repo = "rav1e";
-      rev = "v${version}";
-      sha256 = "001v29baa77pkab13d7imi71llixyvffqax8kgjwhm1dhsqlm7bl";
-    };
-    cargoLock = fetchurl {
-      url = "https://github.com/xiph/rav1e/releases/download/v${version}/Cargo.lock";
-      sha256 = "06l8jj75ma5kvz1m14x58an2zvx12i6wcq70gzq5k47nvj5l0zax";
-    };
+  cargoSha256 = "1xaincrmpicp0skf9788w5631x1hxvifvq06hh5ribdz79zclzx3";
 
-    installPhase = ''
-      mkdir -p $out
-      cp -R ./* $out/
-      cp ${cargoLock} $out/Cargo.lock
-    '';
-  };
+  nativeBuildInputs = [ nasm cargo-c ];
 
-  cargoSha256 = "0n6gkn4iyqk4bijrvcpq884hiihl4mpw1p417w1m0dw7j4y4karn";
+  postBuild = ''
+    cargo cbuild --release --frozen --prefix=${placeholder "out"}
+  '';
 
-  nativeBuildInputs = [ nasm ];
+  postInstall = ''
+    cargo cinstall --release --frozen --prefix=${placeholder "out"}
+  '';
 
   meta = with lib; {
     description = "The fastest and safest AV1 encoder";
@@ -37,9 +31,9 @@ rustPlatform.buildRustPackage rec {
       libaom (the reference encoder) is too slow.
       Features: https://github.com/xiph/rav1e#features
     '';
-    inherit (src.src.meta) homepage;
+    inherit (src.meta) homepage;
+    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/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 7254b3d63d9..1f0c28d49b7 100644
--- a/pkgs/tools/virtualization/cri-tools/default.nix
+++ b/pkgs/tools/virtualization/cri-tools/default.nix
@@ -1,10 +1,10 @@
 { lib
-, buildGoPackage
+, buildGoModule
 , fetchFromGitHub
 , installShellFiles
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "cri-tools";
   version = "1.18.0";
 
@@ -15,12 +15,13 @@ buildGoPackage rec {
     sha256 = "06sxjhjpd893fn945c1s4adri2bf7s50ddvcw5pnwb6qndzfljw6";
   };
 
-  goPackagePath = "github.com/kubernetes-sigs/cri-tools";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   nativeBuildInputs = [ installShellFiles ];
 
   buildPhase = ''
-    pushd go/src/${goPackagePath}
     make binaries VERSION=${version}
   '';
 
diff --git a/pkgs/tools/virtualization/google-compute-engine-oslogin/default.nix b/pkgs/tools/virtualization/google-compute-engine-oslogin/default.nix
index 2c2444de4e5..ea58eb4c6b8 100644
--- a/pkgs/tools/virtualization/google-compute-engine-oslogin/default.nix
+++ b/pkgs/tools/virtualization/google-compute-engine-oslogin/default.nix
@@ -1,21 +1,22 @@
 { stdenv
 , lib
-, fetchFromGitHub
+, bashInteractive
 , curl
+, fetchFromGitHub
 , json_c
+, nixosTests
 , pam
-, bashInteractive
 }:
 
 stdenv.mkDerivation rec {
   pname = "google-compute-engine-oslogin";
-  version = "20200325.00";
+  version = "20200507.00";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
     repo = "guest-oslogin";
     rev = version;
-    sha256 = "03hk95pgzcgy6ginp8zdy0fbk88m6n65qq22jq490z1xwbjffm8r";
+    sha256 = "1np8c96sm29pwnxykc0id8kkgalhw576g43fgi1y936sr2hfvx3v";
   };
 
   postPatch = ''
@@ -42,10 +43,14 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.tests = {
+    inherit (nixosTests) google-oslogin;
+  };
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/GoogleCloudPlatform/compute-image-packages";
     description = "OS Login Guest Environment for Google Compute Engine";
     license = licenses.asl20;
-    maintainers = with maintainers; [ adisbladis flokli ];
+    maintainers = with maintainers; [ flokli ];
   };
 }
diff --git a/pkgs/tools/virtualization/google-compute-engine/default.nix b/pkgs/tools/virtualization/google-compute-engine/default.nix
index 48255ca68a7..34f2bc9e190 100644
--- a/pkgs/tools/virtualization/google-compute-engine/default.nix
+++ b/pkgs/tools/virtualization/google-compute-engine/default.nix
@@ -29,7 +29,7 @@ buildPythonApplication rec {
   postPatch = ''
     for file in $(find google_compute_engine -type f); do
       substituteInPlace "$file" \
-        --replace /bin/systemctl "/run/current-system/sw/bin/systemctl" \
+        --replace /bin/systemctl "/run/current-system/systemd/bin/systemctl" \
         --replace /bin/bash "${bashInteractive}/bin/bash" \
         --replace /sbin/hwclock "${utillinux}/bin/hwclock"
       # SELinux tool ???  /sbin/restorecon
diff --git a/pkgs/tools/virtualization/govc/default.nix b/pkgs/tools/virtualization/govc/default.nix
index 1595af84770..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.21.0";
+  version = "0.23.1";
 
   goPackagePath = "github.com/vmware/govmomi";
 
@@ -12,7 +12,7 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "vmware";
     repo = "govmomi";
-    sha256 = "0mig8w0szxqcii3gihrsm8n8hzziq9l6axc5z32nw9kiy9bi4130";
+    sha256 = "05f6i7v8v9g3w3cmz8c952djl652mj6qcwjx9iyl23h6knd1d9b1";
   };
 
   meta = {
diff --git a/pkgs/tools/virtualization/linode-cli/default.nix b/pkgs/tools/virtualization/linode-cli/default.nix
index c16eb003d8d..47953d21dfe 100644
--- a/pkgs/tools/virtualization/linode-cli/default.nix
+++ b/pkgs/tools/virtualization/linode-cli/default.nix
@@ -13,21 +13,21 @@
 let
 
   spec = fetchurl {
-    url = "https://raw.githubusercontent.com/linode/linode-api-docs/v4.63.1/openapi.yaml";
-    sha256 = "03ngzbq24zazfqmfd7xjmxixkcb9vv1jgamplsj633j7sjj708s0";
+    url = "https://raw.githubusercontent.com/linode/linode-api-docs/v4.67.0/openapi.yaml";
+    sha256 = "0vsblprkqlr9508x5rkm0wj6lc3w72xiwiqxia9asgr5k45hhfnr";
   };
 
 in
 
 buildPythonApplication rec {
   pname = "linode-cli";
-  version = "2.14.1";
+  version = "2.15.0";
 
   src = fetchFromGitHub {
     owner = "linode";
     repo = pname;
     rev = version;
-    sha256 = "1hpdmbzs182iag471yvq3kwd1san04a58sczzbmw6vjv2kswn1c2";
+    sha256 = "06iz9xjj6h1ry176558488fl9j18a5vf724zh4cxlcksdy72dnna";
   };
 
   patches = [
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/virtualization/nixos-container/nixos-container.pl b/pkgs/tools/virtualization/nixos-container/nixos-container.pl
index dc05c974bd0..02ad6af90da 100755
--- a/pkgs/tools/virtualization/nixos-container/nixos-container.pl
+++ b/pkgs/tools/virtualization/nixos-container/nixos-container.pl
@@ -5,7 +5,7 @@ use POSIX;
 use File::Path;
 use File::Slurp;
 use Fcntl ':flock';
-use Getopt::Long qw(:config gnu_getopt);
+use Getopt::Long qw(:config gnu_getopt no_bundling);
 use Cwd 'abs_path';
 use Time::HiRes;
 
@@ -68,6 +68,22 @@ my $localAddress;
 my $flake;
 my $flakeAttr = "container";
 
+# Nix passthru flags.
+my @nixFlags;
+my @nixFlags2;
+
+sub copyNixFlags0 { push @nixFlags, "--$_[0]"; }
+sub copyNixFlags1 { push @nixFlags, "--$_[0]", $_[1]; }
+
+# Ugly hack to handle flags that take two arguments, like --option.
+sub copyNixFlags2 {
+    if (scalar(@nixFlags2) % 3 == 0) {
+        push @nixFlags2, "--$_[0]", $_[1];
+    } else {
+        push @nixFlags2, $_[1];
+    }
+}
+
 GetOptions(
     "help" => sub { showHelp() },
     "ensure-unique-name" => \$ensureUniqueName,
@@ -82,8 +98,22 @@ GetOptions(
     "host-address=s" => \$hostAddress,
     "local-address=s" => \$localAddress,
     "flake=s" => \$flake,
+    # Nix passthru options.
+    "log-format=s" => \&copyNixFlags1,
+    "option=s{2}" => \&copyNixFlags2,
+    "impure" => \&copyNixFlags0,
+    "update-input=s" => \&copyNixFlags1,
+    "override-input=s{2}" => \&copyNixFlags2,
+    "commit-lock-file" => \&copyNixFlags0,
+    "no-registries" => \&copyNixFlags0,
+    "no-update-lock-file" => \&copyNixFlags0,
+    "no-write-lock-file" => \&copyNixFlags0,
+    "no-allow-dirty" => \&copyNixFlags0,
+    "recreate-lock-file" => \&copyNixFlags0,
     ) or exit 1;
 
+push @nixFlags, @nixFlags2;
+
 if (defined $hostAddress and !defined $localAddress or defined $localAddress and !defined $hostAddress) {
     die "With --host-address set, --local-address is required as well!";
 }
@@ -144,7 +174,7 @@ EOF
 }
 
 sub buildFlake {
-    system("nix", "build", "-o", "$systemPath.tmp", "--",
+    system("nix", "build", "-o", "$systemPath.tmp", @nixFlags, "--",
            "$flake#nixosConfigurations.\"$flakeAttr\".config.system.build.toplevel") == 0
         or die "$0: failed to build container from flake '$flake'\n";
     $systemPath = readlink("$systemPath.tmp") or die;
@@ -251,7 +281,7 @@ if ($action eq "create") {
 
         system("nix-env", "-p", "$profileDir/system",
                "-I", "nixos-config=$nixosConfigFile", "-f", "$nixenvF",
-               "--set", "-A", "system") == 0
+               "--set", "-A", "system", @nixFlags) == 0
             or do {
                 clearContainerState($profileDir, "$profileDir/$containerName", $root, $confFile);
                 die "$0: failed to build initial container configuration\n"
@@ -400,7 +430,7 @@ elsif ($action eq "update") {
         my $nixenvF = $nixosPath // "<nixpkgs/nixos>";
         system("nix-env", "-p", "$profileDir/system",
                "-I", "nixos-config=$nixosConfigFile", "-f", $nixenvF,
-               "--set", "-A", "system") == 0
+               "--set", "-A", "system", @nixFlags) == 0
             or die "$0: failed to build container configuration\n";
     }
 
diff --git a/pkgs/tools/virtualization/nixos-shell/default.nix b/pkgs/tools/virtualization/nixos-shell/default.nix
new file mode 100644
index 00000000000..0c6d7e7b9bb
--- /dev/null
+++ b/pkgs/tools/virtualization/nixos-shell/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, nix, fetchFromGitHub, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "nixos-shell";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "Mic92";
+    repo = "nixos-shell";
+    rev = version;
+    sha256 = "1qk5a01vh6wbbkib8xr57w1j4l3n6xdjd46nsw9bsa444fzlc0wr";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/nixos-shell \
+      --prefix PATH : ${stdenv.lib.makeBinPath [ nix ]}
+  '';
+
+  installFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  meta = with stdenv.lib; {
+    description = "Spawns lightweight nixos vms in a shell";
+    inherit (src.meta) homepage;
+    license = licenses.mit;
+    maintainers = with maintainers; [ mic92 ];
+    platforms = platforms.unix;
+  };
+}
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
new file mode 100644
index 00000000000..3209aff9496
--- /dev/null
+++ b/pkgs/top-level/agda-packages.nix
@@ -0,0 +1,30 @@
+{ pkgs, lib, callPackage, newScope, Agda }:
+
+let
+  mkAgdaPackages = Agda: lib.makeScope newScope (mkAgdaPackages' Agda);
+  mkAgdaPackages' = Agda: self: let
+    callPackage = self.callPackage;
+    inherit (callPackage ../build-support/agda {
+      inherit Agda self;
+      inherit (pkgs.haskellPackages) ghcWithPackages;
+    }) withPackages mkDerivation;
+  in {
+    inherit mkDerivation;
+
+    agda = withPackages [] // { inherit withPackages; };
+
+    standard-library = callPackage ../development/libraries/agda/standard-library {
+      inherit (pkgs.haskellPackages) ghcWithPackages;
+    };
+
+    iowa-stdlib = callPackage ../development/libraries/agda/iowa-stdlib { };
+
+    agda-prelude = callPackage ../development/libraries/agda/agda-prelude { };
+
+    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 5767878dc65..b020d6fac55 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
@@ -50,6 +51,8 @@ mapAliases ({
   bar-xft = lemonbar-xft;  # added 2015-01-16
   bashCompletion = bash-completion; # Added 2016-09-28
   batti = throw "batti has been removed from nixpkgs, as it was unmaintained"; # added 2019-12-10
+  bazaar = throw "bazaar has been deprecated by breezy."; # added 2020-04-19
+  bazaarTools = throw "bazaar has been deprecated by breezy."; # added 2020-04-19
   beegfs = throw "beegfs has been removed."; # added 2019-11-24
   bluezFull = bluez; # Added 2019-12-03
   bridge_utils = bridge-utils;  # added 2015-02-20
@@ -64,8 +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
@@ -73,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
@@ -81,9 +87,11 @@ 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
+  cquery = throw "cquery has been removed because it is abandoned by upstream. Consider switching to clangd or ccls instead."; # added 2020-06-15
   cv = progress; # added 2015-09-06
   d1x_rebirth = dxx-rebirth; # added 2018-04-25
   d2x_rebirth = dxx-rebirth; # added 2018-04-25
@@ -105,8 +113,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
@@ -123,17 +131,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
@@ -144,11 +141,22 @@ 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
   fuseki = apache-jena-fuseki; # added 2018-04-25
   fusesmb = throw "fusesmb is abandoned by upstream"; # added 2019-10-15
+  fwupdate = throw "fwupdate was merged into fwupd"; # added 2020-05-19
+  g4py = python3Packages.geant4; # added 2020-06-06
   gccApple = throw "gccApple is no longer supported"; # added 2018-04-25
   gdb-multitarget = gdb; # added 2017-11-13
   gdk_pixbuf = gdk-pixbuf; # added 2019-05-22
@@ -169,6 +177,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
@@ -194,7 +203,6 @@ mapAliases ({
   gupnp_igd = gupnp-igd; # added 2018-02-25
   gupnptools = gupnp-tools;  # added 2015-12-19
   gutenberg = zola;  # added 2018-11-17
-  hamster-time-traker = throw "hamster-time-tracker has been removed from nixpkgs, as it was unmaintained."; # added 2019-12-10
   heimdalFull = heimdal; # added 2018-05-01
   hepmc = hepmc2; # added 2019-08-05
   hexen = throw "hexen (SDL port) has been removed: Abandoned by upstream."; # added 2019-12-11
@@ -243,8 +251,10 @@ mapAliases ({
   libgumbo = gumbo; # added 2018-01-21
   libGL_driver = mesa.drivers;
   libintlOrEmpty = stdenv.lib.optional (!stdenv.isLinux || stdenv.hostPlatform.libc != "glibc") gettext; # added 2018-03-14
+  libjpeg_drop = libjpeg_original; # added 2020-06-05
   libjson_rpc_cpp = libjson-rpc-cpp; # added 2017-02-28
   liblapackWithoutAtlas = lapack-reference; # added 2018-11-05
+  liblastfm = libsForQt5.liblastfm; # added 2020-06-14
   liblrdf = lrdf; # added 2018-04-25
   libqrencode = qrencode;  # added 2019-01-01
   librdf = lrdf; # added 2020-03-22
@@ -256,6 +266,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;
@@ -265,20 +276,25 @@ mapAliases ({
   linuxPackages_testing_hardened = throw "linuxPackages_testing_hardened has been removed, please use linuxPackages_latest_hardened";
   linux_testing_hardened = throw "linux_testing_hardened has been removed, please use linux_latest_hardened";
 
+  linux-steam-integration = throw "linux-steam-integration has been removed, as the upstream project has been abandoned"; # added 2020-05-22
   loadcaffe = throw "loadcaffe has been removed, as the upstream project has been abandoned"; # added 2020-03-28
   lttngTools = lttng-tools;  # added 2014-07-31
   lttngUst = lttng-ust;  # added 2014-07-31
   lua5_1_sockets = lua51Packages.luasocket; # added 2017-05-02
   lua5_expat = luaPackages.luaexpat; # added 2017-05-02
   lua5_sec = luaPackages.luasec; # added 2017-05-02
+  lxappearance-gtk3 = throw "lxappearance-gtk3 has been removed. Use lxappearance instead, which now defaults to Gtk3";  # added 2020-06-03
   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
+  mcgrid = throw "mcgrid has been removed from nixpkgs, as it's not compatible with rivet 3"; # added 2020-05-23
   mcomix = throw "mcomix has been removed from nixpkgs, as it's unmaintained"; # added 2019-12-10
   mirage = throw "mirage has been femoved from nixpkgs, as it's unmaintained"; # added 2019-12-10
   mysql-client = hiPrio mariadb.client;
@@ -289,7 +305,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.";
@@ -301,6 +319,7 @@ mapAliases ({
   msf = metasploit; # added 2018-04-25
   libmsgpack = msgpack; # added 2018-08-17
   mssys = ms-sys; # added 2015-12-13
+  mpv-with-scripts = self.wrapMpv self.mpv-unwrapped { }; # added 2020-05-22
   multipath_tools = multipath-tools;  # added 2016-01-21
   mupen64plus1_5 = mupen64plus; # added 2016-02-12
   mysqlWorkbench = mysql-workbench; # added 2017-01-19
@@ -333,6 +352,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
@@ -345,7 +365,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
 
@@ -356,7 +375,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
@@ -370,7 +388,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
 
@@ -388,7 +405,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
@@ -449,10 +465,14 @@ 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";
   ruby_2_2_9 = throw "deprecated 2018-0213: use a newer version of ruby";
@@ -542,7 +562,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
@@ -553,6 +576,7 @@ mapAliases ({
   telepathy_idle = telepathy-idle; # added 2018-02-25
   telepathy_logger = telepathy-logger; # added 2018-02-25
   telepathy_mission_control = telepathy-mission-control; # added 2018-02-25
+  telepathy-qt = throw "telepathy-qt no longer supports Qt 4. Please use libsForQt5.telepathy instead."; # added 2020-07-02
   telepathy_qt = telepathy-qt; # added 2018-02-25
   telepathy_qt5 = libsForQt5.telepathy;  # added 2015-12-19
   telepathy_salut = telepathy-salut; # added 2018-02-25
@@ -613,6 +637,7 @@ mapAliases ({
   xfce4-14 = xfce;
   xfce4-12 = throw "xfce4-12 has been replaced by xfce4-14"; # added 2020-03-14
   x11 = xlibsWrapper; # added 2015-09
+  xara = throw "xara has been removed from nixpkgs. Unmaintained since 2006"; # added 2020-06-24
   xbmc = kodi; # added 2018-04-25
   xbmcPlain = kodiPlain; # added 2018-04-25
   xbmcPlugins = kodiPlugins; # added 2018-04-25
@@ -668,8 +693,15 @@ mapAliases ({
   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;
@@ -688,23 +720,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";
@@ -721,4 +736,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 3a28cb521ef..eb0f87ab3f2 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 {
@@ -132,6 +134,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 +155,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 +180,10 @@ in
 
   colorz = callPackage ../tools/misc/colorz { };
 
+  colorpicker = callPackage ../tools/misc/colorpicker { };
+
+  comedilib = callPackage ../development/libraries/comedilib {  };
+
   cpu-x = callPackage ../applications/misc/cpu-x { };
 
   dhallToNix = callPackage ../build-support/dhall-to-nix.nix {
@@ -181,7 +192,13 @@ in
 
   deadcode = callPackage ../development/tools/deadcode { };
 
-  hobbes = callPackage ../development/tools/hobbes { stdenv = gcc6Stdenv; }; # GCC 6 is latest currently supported. See https://git.io/JvK6M.
+  eclipse-mat = callPackage ../development/tools/eclipse-mat { };
+
+  glade = callPackage ../development/tools/glade { };
+
+  hobbes = callPackage ../development/tools/hobbes { };
+
+  html5validator = python36Packages.callPackage ../applications/misc/html5validator { };
 
   proto-contrib = callPackage ../development/tools/proto-contrib {};
 
@@ -197,6 +214,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;
@@ -209,7 +228,9 @@ in
 
   grsync = callPackage ../applications/misc/grsync { };
 
-  dockerTools = callPackage ../build-support/docker { };
+  dockerTools = callPackage ../build-support/docker {
+    writePython3 = writers.writePython3;
+  };
 
   snapTools = callPackage ../build-support/snap { };
 
@@ -259,6 +280,8 @@ in
 
   etBook = callPackage ../data/fonts/et-book { };
 
+  fet-sh = callPackage ../tools/misc/fet-sh { };
+
   fetchbower = callPackage ../build-support/fetchbower {
     inherit (nodePackages) bower2nix;
   };
@@ -300,6 +323,8 @@ in
 
   pet = callPackage ../development/tools/pet { };
 
+  pkger = callPackage ../development/libraries/pkger { };
+
   run = callPackage ../development/tools/run { };
 
   mod = callPackage ../development/tools/mod { };
@@ -325,11 +350,16 @@ 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;
       zlib = buildPackages.zlib.override { fetchurl = stdenv.fetchurlBoot; };
-      pkgconfig = buildPackages.pkgconfig.override { fetchurl = stdenv.fetchurlBoot; };
+      pkgconfig = buildPackages.pkgconfig.override (old: {
+        pkg-config = old.pkg-config.override {
+          fetchurl = stdenv.fetchurlBoot;
+        };
+      });
       perl = buildPackages.perl.override { fetchurl = stdenv.fetchurlBoot; };
       openssl = buildPackages.openssl.override {
         fetchurl = stdenv.fetchurlBoot;
@@ -487,9 +517,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;
 
@@ -501,9 +529,16 @@ in
 
   iconConvTools = callPackage ../build-support/icon-conv-tools {};
 
+  validatePkgConfig = makeSetupHook
+    { name = "validate-pkg-config"; deps = [ findutils pkgconfig ]; }
+    ../build-support/setup-hooks/validate-pkg-config.sh;
+
   #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 { };
@@ -514,6 +549,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 { };
@@ -550,6 +589,8 @@ in
 
   adlplug = callPackage ../applications/audio/adlplug { };
 
+  tuijam = callPackage ../applications/audio/tuijam { inherit (python3Packages) buildPythonApplication; };
+
   opnplug = callPackage ../applications/audio/adlplug {
     adlplugChip = "-DADLplug_CHIP=OPN2";
     pname = "OPNplug";
@@ -585,8 +626,11 @@ in
     stdenv = clangStdenv;
   };
 
+  honggfuzz = callPackage ../tools/security/honggfuzz { };
+
   aflplusplus = callPackage ../tools/security/aflplusplus {
-    stdenv = clangStdenv;
+    clang = clang_9;
+    llvm = llvm_9;
     python = python37;
     wine = null;
   };
@@ -595,6 +639,8 @@ in
 
   afpfs-ng = callPackage ../tools/filesystems/afpfs-ng { };
 
+  agda-pkg = callPackage ../development/tools/agda-pkg { };
+
   agrep = callPackage ../tools/text/agrep { };
 
   aha = callPackage ../tools/text/aha { };
@@ -607,7 +653,7 @@ in
 
   airfield = callPackage ../tools/networking/airfield { };
 
-  apache-airflow = with python3.pkgs; toPythonApplication apache-airflow;
+  apache-airflow = with python37.pkgs; toPythonApplication apache-airflow;
 
   airsonic = callPackage ../servers/misc/airsonic { };
 
@@ -628,6 +674,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 { };
@@ -655,6 +703,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;
   };
@@ -669,6 +721,8 @@ in
 
   aptly = callPackage ../tools/misc/aptly { };
 
+  ArchiSteamFarm = callPackage ../applications/misc/ArchiSteamFarm { };
+
   archivemount = callPackage ../tools/filesystems/archivemount { };
 
   arandr = callPackage ../tools/X11/arandr { };
@@ -682,6 +736,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 {};
@@ -713,6 +769,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;
@@ -738,6 +798,8 @@ in
 
   awscli = callPackage ../tools/admin/awscli { };
 
+  awscli2 = callPackage ../tools/admin/awscli2 { };
+
   awsebcli = callPackage ../tools/virtualization/awsebcli {};
 
   awslogs = callPackage ../tools/admin/awslogs { };
@@ -750,15 +812,13 @@ in
 
   aws-rotate-key = callPackage ../tools/admin/aws-rotate-key { };
 
-  aws_shell = callPackage ../tools/admin/aws_shell { };
-
   aws-sam-cli = callPackage ../development/tools/aws-sam-cli { python = python3; };
 
   aws-vault = callPackage ../tools/admin/aws-vault { };
 
   iamy = callPackage ../tools/admin/iamy { };
 
-  azure-cli = callPackage ../tools/admin/azure-cli { python = python3; };
+  azure-cli = callPackage ../tools/admin/azure-cli { python = python37; };
 
   azure-storage-azcopy = callPackage ../development/tools/azcopy { };
 
@@ -774,6 +834,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 { };
@@ -808,6 +870,10 @@ in
 
   bash-my-aws = callPackage ../tools/admin/bash-my-aws { };
 
+  bashcards = callPackage ../tools/misc/bashcards { };
+
+  bazarr = callPackage ../servers/bazarr { };
+
   bcachefs-tools = callPackage ../tools/filesystems/bcachefs-tools { };
 
   bitwarden = callPackage ../tools/security/bitwarden { };
@@ -831,6 +897,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;
@@ -840,6 +908,8 @@ in
 
   calls = callPackage ../applications/networking/calls { };
 
+  inherit (nodePackages) castnow;
+
   certigo = callPackage ../tools/admin/certigo { };
 
   catcli = python3Packages.callPackage ../tools/filesystems/catcli { };
@@ -855,12 +925,12 @@ in
 
   cloud-sql-proxy = callPackage ../tools/misc/cloud-sql-proxy { };
 
-  cloudflare-wrangler = callPackage ../development/tools/cloudflare-wrangler { };
-
   codeql = callPackage ../development/tools/analysis/codeql { };
 
   container-linux-config-transpiler = callPackage ../development/tools/container-linux-config-transpiler { };
 
+  fedora-coreos-config-transpiler = callPackage ../development/tools/fedora-coreos-config-transpiler { };
+
   ccextractor = callPackage ../applications/video/ccextractor { };
 
   cconv = callPackage ../tools/text/cconv { };
@@ -875,6 +945,8 @@ in
 
   codespell = with python3Packages; toPythonApplication codespell;
 
+  coolreader = libsForQt5.callPackage ../applications/misc/coolreader {};
+
   cozy = callPackage ../applications/audio/cozy-audiobooks { };
 
   ctrtool = callPackage ../tools/archivers/ctrtool { };
@@ -896,6 +968,8 @@ in
 
   detect-secrets = python3Packages.callPackage ../development/tools/detect-secrets { };
 
+  diskonaut = callPackage ../tools/misc/diskonaut { };
+
   diskus = callPackage ../tools/misc/diskus {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -908,6 +982,8 @@ in
 
   dpt-rp1-py = callPackage ../tools/misc/dpt-rp1-py { };
 
+  doona = callPackage ../tools/security/doona { };
+
   ecdsautils = callPackage ../tools/security/ecdsautils { };
 
   sedutil = callPackage ../tools/security/sedutil { };
@@ -932,20 +1008,32 @@ in
 
   libfx2 = with python3Packages; toPythonApplication fx2;
 
+  fastmod = callPackage ../tools/text/fastmod {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   fitnesstrax = callPackage ../applications/misc/fitnesstrax/default.nix { };
 
   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 { };
@@ -970,8 +1058,12 @@ in
 
   glasgow = with python3Packages; toPythonApplication glasgow;
 
+  goimapnotify = callPackage ../tools/networking/goimapnotify { };
+
   gomatrix = callPackage ../applications/misc/gomatrix { };
 
+  gopacked = callPackage ../applications/misc/gopacked { };
+
   gucci = callPackage ../tools/text/gucci { };
 
   grc = callPackage ../tools/misc/grc { };
@@ -992,6 +1084,8 @@ in
 
   httperf = callPackage ../tools/networking/httperf { };
 
+  hwi = with python3Packages; toPythonApplication hwi;
+
   ili2c = callPackage ../tools/misc/ili2c { };
 
   imageworsener = callPackage ../tools/graphics/imageworsener { };
@@ -1058,6 +1152,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 { };
@@ -1108,9 +1204,7 @@ in
 
   atftp = callPackage ../tools/networking/atftp { };
 
-  autogen = callPackage ../development/tools/misc/autogen {
-    guile = guile_2_0;
-  };
+  autogen = callPackage ../development/tools/misc/autogen { };
 
   autojump = callPackage ../tools/misc/autojump { };
 
@@ -1254,6 +1348,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 {
@@ -1296,7 +1392,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 { };
 
@@ -1306,6 +1402,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 { };
@@ -1357,7 +1455,8 @@ in
 
   btfs = callPackage ../os-specific/linux/btfs { };
 
-  buildah = callPackage ../development/tools/buildah { };
+  buildah = callPackage ../development/tools/buildah/wrapper.nix { };
+  buildah-unwrapped = callPackage ../development/tools/buildah { };
 
   buildkit = callPackage ../development/tools/buildkit { };
 
@@ -1368,7 +1467,6 @@ in
   bs-platform = callPackage ../development/compilers/bs-platform {};
 
   c3d = callPackage ../applications/graphics/c3d {
-    stdenv = gcc8Stdenv;
     inherit (darwin.apple_sdk.frameworks) Cocoa;
   };
 
@@ -1394,8 +1492,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 {
@@ -1562,6 +1664,8 @@ in
 
   compsize = callPackage ../os-specific/linux/compsize { };
 
+  cot = with python3Packages; toPythonApplication cot;
+
   coturn = callPackage ../servers/coturn { };
 
   coursier = callPackage ../development/tools/coursier {};
@@ -1596,6 +1700,8 @@ in
 
   dante = callPackage ../servers/dante { };
 
+  dapr-cli = callPackage ../development/tools/dapr/cli {};
+
   dasher = callPackage ../applications/accessibility/dasher { };
 
   datamash = callPackage ../tools/misc/datamash { };
@@ -1612,6 +1718,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 { };
@@ -1630,6 +1738,8 @@ in
 
   desync = callPackage ../applications/networking/sync/desync { };
 
+  devdocs-desktop = callPackage ../applications/misc/devdocs-desktop { };
+
   devmem2 = callPackage ../os-specific/linux/devmem2 { };
 
   dbus-broker = callPackage ../os-specific/linux/dbus-broker { };
@@ -1648,6 +1758,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;
@@ -1661,6 +1775,8 @@ in
 
   discount = callPackage ../tools/text/discount { };
 
+  disk-filltest = callPackage ../tools/system/disk-filltest { };
+
   diskscan = callPackage ../tools/misc/diskscan { };
 
   disorderfs = callPackage ../tools/filesystems/disorderfs {
@@ -1683,6 +1799,8 @@ in
 
   dokuwiki = callPackage ../servers/web-apps/dokuwiki { };
 
+  doppler = callPackage ../tools/security/doppler {};
+
   dosage = callPackage ../applications/graphics/dosage { };
 
   dozenal = callPackage ../applications/misc/dozenal { };
@@ -1701,7 +1819,7 @@ in
 
   dua = callPackage ../tools/misc/dua { };
 
-  inherit (ocamlPackages) dune dune_2;
+  inherit (ocamlPackages) dune dune_2 dune-release;
 
   duperemove = callPackage ../tools/filesystems/duperemove { };
 
@@ -1732,6 +1850,12 @@ in
 
   eksctl = callPackage ../tools/admin/eksctl { };
 
+  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 { };
@@ -1752,7 +1876,9 @@ in
 
   eschalot = callPackage ../tools/security/eschalot { };
 
-  esphome = callPackage ../servers/home-assistant/esphome.nix { };
+  espanso = callPackage ../applications/office/espanso { };
+
+  esphome = callPackage ../tools/misc/esphome { };
 
   esptool = callPackage ../tools/misc/esptool { };
 
@@ -1814,6 +1940,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 { };
@@ -1832,10 +1968,14 @@ 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 { };
 
+  go-neb = callPackage ../applications/networking/instant-messengers/go-neb { };
+
   geckodriver = callPackage ../development/tools/geckodriver { };
 
   geekbench = callPackage ../tools/misc/geekbench { };
@@ -1856,6 +1996,8 @@ in
 
   gixy = callPackage ../tools/admin/gixy { };
 
+  glpaper = callPackage ../development/tools/glpaper { };
+
   gllvm = callPackage ../development/tools/gllvm { };
 
   glide = callPackage ../development/tools/glide { };
@@ -1876,6 +2018,11 @@ 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 { };
@@ -1896,7 +2043,9 @@ in
 
   gringo = callPackage ../tools/misc/gringo { };
 
-  grobi = callPackage ../tools/X11/grobi { };
+  grobi = callPackage ../tools/X11/grobi {
+    buildGoModule = buildGo114Module;
+  };
 
   gscan2pdf = callPackage ../applications/graphics/gscan2pdf { };
 
@@ -1904,6 +2053,8 @@ in
 
   gthree = callPackage ../development/libraries/gthree { };
 
+  gtg = callPackage ../applications/office/gtg { };
+
   gti = callPackage ../tools/misc/gti { };
 
   hdate = callPackage ../applications/misc/hdate { };
@@ -1928,6 +2079,8 @@ in
 
   hr = callPackage ../applications/misc/hr { };
 
+  humioctl = callPackage ../applications/logging/humioctl {};
+
   hyx = callPackage ../tools/text/hyx { };
 
   icdiff = callPackage ../tools/text/icdiff {};
@@ -1936,7 +2089,9 @@ in
 
   interlock = callPackage ../servers/interlock {};
 
-  jellyfin = callPackage ../servers/jellyfin { ffmpeg = ffmpeg_4; };
+  jellyfin = callPackage ../servers/jellyfin { };
+
+  jellyfin_10_5 = callPackage ../servers/jellyfin/10.5.x.nix { };
 
   jellyfin-mpv-shim = python3Packages.callPackage ../applications/video/jellyfin-mpv-shim { };
 
@@ -1972,12 +2127,16 @@ in
 
   linuxptp = callPackage ../os-specific/linux/linuxptp { };
 
+  lite = callPackage ../applications/editors/lite { };
+
   loadwatch = callPackage ../tools/system/loadwatch { };
 
   loccount = callPackage ../development/tools/misc/loccount { };
 
   long-shebang = callPackage ../misc/long-shebang {};
 
+  lowdown = callPackage ../tools/typesetting/lowdown { };
+
   numatop = callPackage ../os-specific/linux/numatop { };
 
   iio-sensor-proxy = callPackage ../os-specific/linux/iio-sensor-proxy { };
@@ -1986,20 +2145,22 @@ in
 
   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 { };
@@ -2034,6 +2195,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 {};
@@ -2058,6 +2221,8 @@ in
 
   mq-cli = callPackage ../tools/system/mq-cli { };
 
+  nextdns = callPackage ../applications/networking/nextdns { };
+
   nfdump = callPackage ../tools/networking/nfdump { };
 
   nfstrace = callPackage ../tools/networking/nfstrace { };
@@ -2084,6 +2249,8 @@ in
 
   onboard = callPackage ../applications/misc/onboard { };
 
+  oneshot = callPackage ../tools/networking/oneshot { };
+
   onnxruntime = callPackage ../development/libraries/onnxruntime { };
 
   xkbd = callPackage ../applications/misc/xkbd { };
@@ -2104,7 +2271,9 @@ in
 
   pbzx = callPackage ../tools/compression/pbzx { };
 
-  persepolis = python3Packages.callPackage ../tools/networking/persepolis { };
+  persepolis = python3Packages.callPackage ../tools/networking/persepolis {
+    wrapQtAppsHook = qt5.wrapQtAppsHook;
+  };
 
   pev = callPackage ../development/tools/analysis/pev { };
 
@@ -2136,6 +2305,12 @@ in
 
   psrecord = python3Packages.callPackage ../tools/misc/psrecord {};
 
+  rmapi = callPackage ../applications/misc/remarkable/rmapi { };
+
+  remarkable-mouse = python3Packages.callPackage ../applications/misc/remarkable/remarkable-mouse { };
+
+  ryujinx = callPackage ../misc/emulators/ryujinx { };
+
   scour = with python3Packages; toPythonApplication scour;
 
   s2png = callPackage ../tools/graphics/s2png { };
@@ -2146,6 +2321,8 @@ in
 
   simg2img = callPackage ../tools/filesystems/simg2img { };
 
+  simplenes = callPackage ../misc/emulators/simplenes { };
+
   snipes = callPackage ../games/snipes { };
 
   snippetpixie = callPackage ../tools/text/snippetpixie { };
@@ -2178,13 +2355,9 @@ in
 
   rav1e = callPackage ../tools/video/rav1e { };
 
-  ring-daemon = callPackage ../applications/networking/instant-messengers/ring-daemon { };
+  razergenie = libsForQt5.callPackage ../applications/misc/razergenie { };
 
-  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 {};
-  };
+  ring-daemon = callPackage ../applications/networking/instant-messengers/ring-daemon { };
 
   ripasso-cursive = callPackage ../tools/security/ripasso/cursive.nix {
     inherit (darwin.apple_sdk.frameworks) AppKit Security;
@@ -2299,8 +2472,6 @@ in
 
   assh = callPackage ../tools/networking/assh { };
 
-  asynk = callPackage ../tools/networking/asynk { };
-
   b2sum = callPackage ../tools/security/b2sum {
     inherit (llvmPackages) openmp;
   };
@@ -2315,6 +2486,8 @@ in
 
   bdsync = callPackage ../tools/backup/bdsync { };
 
+  beamerpresenter = libsForQt5.callPackage ../applications/office/beamerpresenter { };
+
   beanstalkd = callPackage ../servers/beanstalkd { };
 
   beets = callPackage ../tools/audio/beets {
@@ -2346,12 +2519,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 { };
@@ -2426,6 +2603,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 { };
@@ -2434,7 +2613,7 @@ in
 
   libceph = ceph.lib;
   inherit (callPackages ../tools/filesystems/ceph {
-    boost = boost167.override { enablePython = true; python = python37; };
+    boost = boost16x.override { enablePython = true; python = python38; };
   })
     ceph
     ceph-client;
@@ -2474,38 +2653,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 { };
 
@@ -2541,8 +2706,6 @@ in
 
   connman-notify = callPackage ../tools/networking/connman/connman-notify { };
 
-  connmanui = callPackage ../tools/networking/connman/connmanui { };
-
   connman_dmenu = callPackage ../tools/networking/connman/connman_dmenu  { };
 
   convertlit = callPackage ../tools/text/convertlit { };
@@ -2623,7 +2786,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 { };
@@ -2672,7 +2835,9 @@ in
 
   ckb-next = libsForQt5.callPackage ../tools/misc/ckb-next { };
 
-  clamav = callPackage ../tools/security/clamav { };
+  clamav = callPackage ../tools/security/clamav {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
 
   clex = callPackage ../tools/misc/clex { };
 
@@ -2702,6 +2867,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 { };
@@ -2815,6 +2982,8 @@ in
 
   dclxvi = callPackage ../development/libraries/dclxvi { };
 
+  dconf2nix = callPackage ../development/tools/haskell/dconf2nix { };
+
   dcraw = callPackage ../tools/graphics/dcraw { };
 
   dcfldd = callPackage ../tools/system/dcfldd { };
@@ -2827,6 +2996,10 @@ in
 
   deer = callPackage ../shells/zsh/zsh-deer { };
 
+  deno = callPackage ../development/web/deno {
+    inherit (darwin.apple_sdk.frameworks) Security CoreServices;
+  };
+
   detox = callPackage ../tools/misc/detox { };
 
   devilspie2 = callPackage ../applications/misc/devilspie2 {
@@ -2839,6 +3012,8 @@ in
 
   ddccontrol-db = callPackage ../data/misc/ddccontrol-db { };
 
+  ddcui = libsForQt5.callPackage ../applications/misc/ddcui { };
+
   ddcutil = callPackage ../tools/misc/ddcutil { };
 
   ddclient = callPackage ../tools/networking/ddclient { };
@@ -2902,6 +3077,7 @@ in
   diction = callPackage ../tools/text/diction { };
 
   diffoscope = callPackage ../tools/misc/diffoscope {
+    inherit (androidenv.androidPkgs_9_0) build-tools;
     jdk = jdk8;
   };
 
@@ -2970,6 +3146,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;
   };
@@ -3080,6 +3258,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;
   };
@@ -3100,6 +3282,8 @@ in
 
   teamocil = callPackage ../tools/misc/teamocil { };
 
+  the-way = callPackage ../development/tools/the-way { };
+
   tsm-client = callPackage ../tools/backup/tsm-client { jdk8 = null; };
   tsm-client-withGui = callPackage ../tools/backup/tsm-client { };
 
@@ -3109,6 +3293,10 @@ in
 
   tracker-miners = callPackage ../development/libraries/tracker-miners { };
 
+  tracy = callPackage ../development/tools/tracy {
+    inherit (darwin.apple_sdk.frameworks) Carbon AppKit;
+  };
+
   tridactyl-native = callPackage ../tools/networking/tridactyl-native { };
 
   trompeloeil = callPackage ../development/libraries/trompeloeil { };
@@ -3124,14 +3312,20 @@ 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 { };
 
   wob = callPackage ../tools/misc/wob { };
 
+  wrangler = callPackage ../development/tools/wrangler { };
+
   xkcdpass = with pythonPackages; toPythonApplication xkcdpass;
 
   xob = callPackage ../tools/X11/xob { };
@@ -3327,7 +3521,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 { };
@@ -3343,6 +3537,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 { };
@@ -3351,6 +3547,8 @@ in
 
   fdm = callPackage ../tools/networking/fdm {};
 
+  fdtools = callPackage ../tools/misc/fdtools { };
+
   featherpad = callPackage ../applications/editors/featherpad {};
 
   feedreader = callPackage ../applications/networking/feedreaders/feedreader {};
@@ -3381,8 +3579,6 @@ in
     stdenv = gccStdenv;
   };
 
-  fluidasserts = with python37Packages; toPythonApplication fluidasserts;
-
   flux = callPackage ../development/compilers/flux { };
 
   fido2luks = callPackage ../tools/security/fido2luks {};
@@ -3449,6 +3645,8 @@ in
 
   fdk_aac = callPackage ../development/libraries/fdk-aac { };
 
+  fdk-aac-encoder = callPackage ../applications/audio/fdkaac { };
+
   feedgnuplot = callPackage ../tools/graphics/feedgnuplot { };
 
   fbv = callPackage ../tools/graphics/fbv { };
@@ -3474,7 +3672,7 @@ in
   fontforge-gtk = fontforge.override {
     withSpiro = true;
     withGTK = true;
-    gtk2 = gtk2-x11;
+    gtk3 = gtk3-x11;
     inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
   };
 
@@ -3506,11 +3704,14 @@ in
   fprot = callPackage ../tools/security/fprot { };
 
   fprintd = callPackage ../tools/security/fprintd { };
-  fprintd-thinkpad = fprintd.override {
-    thinkpad = true;
+
+  ferdi = callPackage ../applications/networking/instant-messengers/ferdi {
+    mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { };
   };
 
-  franz = callPackage ../applications/networking/instant-messengers/franz { };
+  franz = callPackage ../applications/networking/instant-messengers/franz {
+    mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { };
+  };
 
   freedroidrpg = callPackage ../games/freedroidrpg { };
 
@@ -3524,6 +3725,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 { };
@@ -3566,6 +3771,8 @@ in
 
   fusee-launcher = callPackage ../development/tools/fusee-launcher { };
 
+  fverb = callPackage ../applications/audio/fverb { };
+
   fwknop = callPackage ../tools/security/fwknop { };
 
   exfat = callPackage ../tools/filesystems/exfat { };
@@ -3606,28 +3813,6 @@ in
 
   gawp = callPackage ../tools/misc/gawp { };
 
-  gazeboSimulator = recurseIntoAttrs rec {
-    sdformat = gazeboSimulator.sdformat4;
-
-    sdformat3 = callPackage ../development/libraries/sdformat/3.nix { };
-
-    sdformat4 = callPackage ../development/libraries/sdformat { };
-
-    gazebo6 = callPackage ../applications/science/robotics/gazebo/6.nix { boost = boost160; };
-
-    gazebo6-headless = gazebo6.override { withHeadless = true;  };
-
-    gazebo7 = callPackage ../applications/science/robotics/gazebo { };
-
-    gazebo7-headless = gazebo7.override { withHeadless = true; };
-
-  };
-
-  # at present, Gazebo 7.0.0 does not match Gazebo 6.5.1 for compatibility
-  gazebo = gazeboSimulator.gazebo6;
-
-  gazebo-headless = gazeboSimulator.gazebo6-headless;
-
   gbdfed = callPackage ../tools/misc/gbdfed {
     gtk = gtk2-x11;
   };
@@ -3644,6 +3829,8 @@ in
 
   genimage = callPackage ../tools/filesystems/genimage { };
 
+  geonkick = callPackage ../applications/audio/geonkick {};
+
   gerrit = callPackage ../applications/version-management/gerrit { };
 
   geteltorito = callPackage ../tools/misc/geteltorito { };
@@ -3764,10 +3951,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;
@@ -3802,6 +3985,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 { };
@@ -3811,6 +3998,12 @@ in
   # rename to upower-notify?
   go-upower-notify = callPackage ../tools/misc/upower-notify { };
 
+  goattracker = callPackage ../applications/audio/goattracker { };
+
+  goattracker-stereo = callPackage ../applications/audio/goattracker {
+    isStereo = true;
+  };
+
   google-app-engine-go-sdk = callPackage ../development/tools/google-app-engine-go-sdk { };
 
   google-authenticator = callPackage ../os-specific/linux/google-authenticator { };
@@ -3830,6 +4023,8 @@ in
 
   google-cloud-cpp = callPackage ../development/libraries/google-cloud-cpp { };
 
+  gdown = with python3Packages; toPythonApplication gdown;
+
   gopro = callPackage ../tools/video/gopro { };
 
   gource = callPackage ../applications/version-management/gource { };
@@ -4057,6 +4252,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 { };
@@ -4212,6 +4409,8 @@ in
 
   iannix = libsForQt5.callPackage ../applications/audio/iannix { };
 
+  jamulus = libsForQt5.callPackage ../applications/audio/jamulus { };
+
   ibm-sw-tpm2 = callPackage ../tools/security/ibm-sw-tpm2 { };
 
   ibniz = callPackage ../tools/graphics/ibniz { };
@@ -4247,20 +4446,6 @@ in
       irods
       irods-icommands;
 
-  ignition = recurseIntoAttrs {
-
-    math = callPackage ../development/libraries/ignition-math { };
-
-    math2 = ignition.math;
-
-    transport0 = callPackage ../development/libraries/ignition-transport/0.9.0.nix { };
-
-    transport1 = callPackage ../development/libraries/ignition-transport/1.0.1.nix { };
-
-    transport = ignition.transport0;
-  };
-
-
   ihaskell = callPackage ../development/tools/haskell/ihaskell/wrapper.nix {
     inherit (haskellPackages) ghcWithPackages;
 
@@ -4269,6 +4454,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;
   };
@@ -4285,8 +4472,12 @@ in
 
   incron = callPackage ../tools/system/incron { };
 
+  industrializer = callPackage ../applications/audio/industrializer { };
+
   inetutils = callPackage ../tools/networking/inetutils { };
 
+  inform6 = callPackage ../development/compilers/inform6 { };
+
   inform7 = callPackage ../development/compilers/inform7 { };
 
   infamousPlugins = callPackage ../applications/audio/infamousPlugins { };
@@ -4331,7 +4522,9 @@ 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 { };
 
@@ -4371,6 +4564,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 { };
@@ -4464,6 +4659,8 @@ in
 
   jucipp = callPackage ../applications/editors/jucipp { };
 
+  jugglinglab = callPackage ../tools/misc/jugglinglab { };
+
   jupp = callPackage ../applications/editors/jupp { };
 
   jupyter = callPackage ../applications/editors/jupyter { };
@@ -4491,6 +4688,10 @@ in
 
   kbdd = callPackage ../applications/window-managers/kbdd { };
 
+  kbs2 = callPackage ../tools/security/kbs2 {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
   kdbplus = pkgsi686Linux.callPackage ../applications/misc/kdbplus { };
 
   keepalived = callPackage ../tools/networking/keepalived { };
@@ -4563,6 +4764,8 @@ in
 
   peruse = libsForQt5.callPackage ../tools/misc/peruse { };
 
+  ksmoothdock = libsForQt5.callPackage ../applications/misc/ksmoothdock { };
+
   kst = libsForQt5.callPackage ../tools/graphics/kst { gsl = gsl_1; };
 
   kstars = libsForQt5.callPackage ../applications/science/astronomy/kstars { };
@@ -4620,6 +4823,8 @@ in
 
   lnav = callPackage ../tools/misc/lnav { };
 
+  lnch = callPackage ../tools/misc/lnch { };
+
   loadlibrary = callPackage ../tools/misc/loadlibrary { };
 
   loc = callPackage ../development/misc/loc { };
@@ -4640,6 +4845,8 @@ in
 
   lolcat = callPackage ../tools/misc/lolcat { };
 
+  lottieconverter = callPackage ../tools/misc/lottieconverter { };
+
   lsd = callPackage ../tools/misc/lsd { };
 
   lsdvd = callPackage ../tools/cd-dvd/lsdvd {};
@@ -4656,6 +4863,8 @@ in
 
   kippo = callPackage ../servers/kippo { };
 
+  kristall = libsForQt5.callPackage ../applications/networking/browsers/kristall { };
+
   kzipmix = pkgsi686Linux.callPackage ../tools/compression/kzipmix { };
 
   ma1sd = callPackage ../servers/ma1sd { };
@@ -4664,19 +4873,25 @@ in
 
   makebootfat = callPackage ../tools/misc/makebootfat { };
 
+  martin = callPackage ../servers/martin {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   /* Python 3.8 is currently broken with matrix-synapse since `python38Packages.bleach` fails
     (https://github.com/NixOS/nixpkgs/issues/76093) */
   matrix-synapse = callPackage ../servers/matrix-synapse { /*python3 = python38;*/ };
 
+  matrix-synapse-plugins = recurseIntoAttrs matrix-synapse.plugins;
+
   matrix-appservice-slack = callPackage ../servers/matrix-synapse/matrix-appservice-slack {};
 
+  matrix-appservice-discord = callPackage ../servers/matrix-appservice-discord { };
+
   mautrix-telegram = recurseIntoAttrs (callPackage ../servers/mautrix-telegram { });
 
   mautrix-whatsapp = callPackage ../servers/mautrix-whatsapp { };
 
-  mcfly = callPackage ../tools/misc/mcfly {
-    inherit (darwin.apple_sdk.frameworks) Security;
-  };
+  mcfly = callPackage ../tools/misc/mcfly { };
 
   mdbook = callPackage ../tools/text/mdbook {
     inherit (darwin.apple_sdk.frameworks) CoreServices;
@@ -4791,9 +5006,9 @@ in
 
   nixnote2 = libsForQt5.callPackage ../applications/misc/nixnote2 { };
 
-  nodejs = hiPrio nodejs-10_x;
+  nodejs = hiPrio nodejs-12_x;
 
-  nodejs-slim = nodejs-slim-10_x;
+  nodejs-slim = nodejs-slim-12_x;
 
 
   nodejs-10_x = callPackage ../development/web/nodejs/v10.nix { };
@@ -4804,10 +5019,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;
@@ -4817,26 +5028,24 @@ in
   nodejs_latest = nodejs-14_x;
   nodejs-slim_latest = nodejs-slim-14_x;
 
-  nodePackages_13_x = dontRecurseIntoAttrs (callPackage ../development/node-packages/default-v13.nix {
-    nodejs = pkgs.nodejs-13_x;
+  nodePackages_latest = dontRecurseIntoAttrs (callPackage ../development/node-packages/default.nix {
+    nodejs = pkgs.nodejs_latest;
   });
 
-  nodePackages_12_x = dontRecurseIntoAttrs (callPackage ../development/node-packages/default-v12.nix {
-    nodejs = pkgs.nodejs-12_x;
+  nodePackages = dontRecurseIntoAttrs (callPackage ../development/node-packages/default.nix {
+    nodejs = pkgs.nodejs;
   });
 
-  nodePackages_10_x = dontRecurseIntoAttrs (callPackage ../development/node-packages/default-v10.nix {
-    nodejs = pkgs.nodejs-10_x;
-  });
-
-  nodePackages = nodePackages_10_x;
-
   now-cli = callPackage ../development/web/now-cli {};
 
+  np2kai = callPackage ../misc/emulators/np2kai { };
+
   file-rename = callPackage ../tools/filesystems/file-rename { };
 
   kea = callPackage ../tools/networking/kea { };
 
+  keysmith = libsForQt5.callPackage ../tools/security/keysmith { };
+
   ispell = callPackage ../tools/text/ispell {};
 
   jumanpp = callPackage ../tools/text/jumanpp {};
@@ -4875,6 +5084,8 @@ in
 
   libepc = callPackage ../development/libraries/libepc { };
 
+  liberfa = callPackage ../development/libraries/liberfa { };
+
   libestr = callPackage ../development/libraries/libestr { };
 
   libevdev = callPackage ../development/libraries/libevdev { };
@@ -4959,6 +5170,8 @@ in
 
   libiberty = callPackage ../development/libraries/libiberty { };
 
+  libucl = callPackage ../development/libraries/libucl { };
+
   libxc = callPackage ../development/libraries/libxc { };
 
   libxcomp = callPackage ../development/libraries/libxcomp { };
@@ -4979,6 +5192,8 @@ in
     libwebsockets_4_0;
   libwebsockets = libwebsockets_3_2;
 
+  licensee = callPackage ../tools/package-management/licensee { };
+
   lidarr = callPackage ../servers/lidarr { };
 
   limesuite = callPackage ../applications/radio/limesuite { };
@@ -4999,6 +5214,8 @@ in
 
   logstalgia = callPackage ../tools/graphics/logstalgia {};
 
+  lokalise2-cli = callPackage ../tools/misc/lokalise2-cli { };
+
   loki = callPackage ../development/libraries/loki { };
 
   longview = callPackage ../servers/monitoring/longview { };
@@ -5053,8 +5270,15 @@ in
   mailhog = callPackage ../servers/mail/mailhog {};
 
   mailnag = callPackage ../applications/networking/mailreaders/mailnag {
-    pythonPackages = python2Packages;
+    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 { };
 
@@ -5194,11 +5418,15 @@ in
     pythonPackages = python3Packages;
   };
 
+  mirakurun = nodePackages.mirakurun;
+
   miredo = callPackage ../tools/networking/miredo { };
 
   mirrorbits = callPackage ../servers/mirrorbits { };
 
-  mitmproxy = callPackage ../tools/networking/mitmproxy { };
+  mitmproxy = callPackage ../tools/networking/mitmproxy {
+    python3Packages = python37Packages;
+  };
 
   mjpegtools = callPackage ../tools/video/mjpegtools { };
 
@@ -5232,11 +5460,15 @@ in
 
   molly-guard = callPackage ../os-specific/linux/molly-guard { };
 
+  molotov = callPackage ../applications/video/molotov {};
+
   moneyplex = callPackage ../applications/office/moneyplex { };
 
   monit = callPackage ../tools/system/monit { };
 
-  monolith = callPackage ../tools/backup/monolith { };
+  monolith = callPackage ../tools/backup/monolith {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   moreutils = callPackage ../tools/misc/moreutils {
     docbook-xsl = docbook_xsl;
@@ -5300,6 +5532,8 @@ in
 
   mycli = callPackage ../tools/admin/mycli { };
 
+  mycrypto = callPackage ../applications/blockchains/mycrypto { };
+
   mydumper = callPackage ../tools/backup/mydumper { };
 
   mysql2pgsql = callPackage ../tools/misc/mysql2pgsql { };
@@ -5318,6 +5552,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 { };
@@ -5422,7 +5658,7 @@ in
   grocy = callPackage ../servers/grocy { };
 
   inherit (callPackage ../servers/nextcloud {})
-    nextcloud17 nextcloud18;
+    nextcloud17 nextcloud18 nextcloud19;
 
   nextcloud-client = libsForQt5.callPackage ../applications/networking/nextcloud-client { };
 
@@ -5430,8 +5666,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 { };
@@ -5442,10 +5682,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 { };
@@ -5460,6 +5704,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 { };
@@ -5478,6 +5724,8 @@ in
 
   nilfs-utils = callPackage ../tools/filesystems/nilfs-utils {};
 
+  nimmm = callPackage ../applications/misc/nimmm { };
+
   nitrogen = callPackage ../tools/X11/nitrogen {};
 
   nms = callPackage ../tools/misc/nms { };
@@ -5507,6 +5755,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 { };
@@ -5530,6 +5780,8 @@ in
 
   ntfy = callPackage ../tools/misc/ntfy {};
 
+  ntirpc = callPackage ../development/libraries/ntirpc { };
+
   ntopng = callPackage ../tools/networking/ntopng { };
 
   ntp = callPackage ../tools/networking/ntp {
@@ -5546,6 +5798,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 { };
@@ -5612,6 +5866,9 @@ in
   openapi-generator-cli = callPackage ../tools/networking/openapi-generator-cli { };
   openapi-generator-cli-unstable = callPackage ../tools/networking/openapi-generator-cli/unstable.nix { };
 
+  openbazaar = callPackage ../applications/networking/openbazaar { };
+  openbazaar-client = callPackage ../applications/networking/openbazaar/client.nix { };
+
   opencc = callPackage ../tools/text/opencc { };
 
   opencl-info = callPackage ../tools/system/opencl-info { };
@@ -5634,6 +5891,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 { };
@@ -5651,6 +5910,8 @@ in
 
   openresolv = callPackage ../tools/networking/openresolv { };
 
+  openrgb = libsForQt5.callPackage ../applications/misc/openrgb { };
+
   opensc = callPackage ../tools/security/opensc {
     inherit (darwin.apple_sdk.frameworks) Carbon PCSC;
   };
@@ -5666,9 +5927,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 {
@@ -5695,6 +5953,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 { };
@@ -5725,6 +5985,8 @@ in
 
   osl = callPackage ../development/compilers/osl { };
 
+  osqp = callPackage ../development/libraries/science/math/osqp { };
+
   ossec = callPackage ../tools/security/ossec {};
 
   osslsigncode = callPackage ../development/tools/osslsigncode {};
@@ -5807,9 +6069,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 { };
 
@@ -5830,8 +6096,6 @@ in
 
   patchage = callPackage ../applications/audio/patchage { };
 
-  patchwork-classic = callPackage ../applications/networking/ssb/patchwork-classic { };
-
   pcapfix = callPackage ../tools/networking/pcapfix { };
 
   pbzip2 = callPackage ../tools/compression/pbzip2 { };
@@ -5869,6 +6133,8 @@ in
 
   fmodex = callPackage ../games/zandronum/fmod.nix { };
 
+  pdfminer = with python3Packages; toPythonApplication pdfminer;
+
   pdfmod = callPackage ../applications/misc/pdfmod { };
 
   pdf-quench = callPackage ../applications/misc/pdf-quench { };
@@ -5885,9 +6151,7 @@ in
 
   brickd = callPackage ../servers/brickd { };
 
-  bully = callPackage ../tools/networking/bully {
-    openssl = openssl_1_0_2;
-  };
+  bully = callPackage ../tools/networking/bully { };
 
   pcapc = callPackage ../tools/networking/pcapc { };
 
@@ -5935,8 +6199,12 @@ in
 
   pingtcp = callPackage ../tools/networking/pingtcp { };
 
+  pinnwand = callPackage ../servers/pinnwand { };
+
   pirate-get = callPackage ../tools/networking/pirate-get { };
 
+  pipr = callPackage ../applications/misc/pipr { };
+
   pipreqs = callPackage ../tools/misc/pipreqs { };
 
   pius = callPackage ../tools/security/pius { };
@@ -5997,7 +6265,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 {};
@@ -6046,7 +6317,7 @@ in
 
   projectlibre = callPackage ../applications/misc/projectlibre { };
 
-  projectm = callPackage ../applications/audio/projectm { };
+  projectm = libsForQt5.callPackage ../applications/audio/projectm { };
 
   proot = callPackage ../tools/system/proot { };
 
@@ -6069,6 +6340,8 @@ in
 
   pmacct = callPackage ../tools/networking/pmacct { };
 
+  pmix = callPackage ../development/libraries/pmix { };
+
   polygraph = callPackage ../tools/networking/polygraph { };
 
   progress = callPackage ../tools/misc/progress { };
@@ -6093,6 +6366,8 @@ in
 
   pubs = callPackage ../tools/misc/pubs {};
 
+  pure-prompt = callPackage ../shells/zsh/pure-prompt { };
+
   pv = callPackage ../tools/misc/pv { };
 
   pwgen = callPackage ../tools/security/pwgen { };
@@ -6141,7 +6416,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 { };
 
@@ -6163,6 +6438,8 @@ in
 
   qjoypad = callPackage ../tools/misc/qjoypad { };
 
+  qosmic = libsForQt5.callPackage ../applications/graphics/qosmic { };
+
   qownnotes = libsForQt5.callPackage ../applications/office/qownnotes { };
 
   qpdf = callPackage ../development/libraries/qpdf { };
@@ -6225,6 +6502,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 { };
@@ -6265,6 +6545,8 @@ in
 
   recoll = callPackage ../applications/search/recoll { };
 
+  redoc-cli = nodePackages.redoc-cli;
+
   reflex = callPackage ../development/tools/reflex { };
 
   reiser4progs = callPackage ../tools/filesystems/reiser4progs { };
@@ -6326,6 +6608,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 { };
@@ -6356,7 +6640,9 @@ in
 
   rpiboot-unstable = callPackage ../development/misc/rpiboot/unstable.nix { };
 
-  rpm = callPackage ../tools/package-management/rpm { };
+  rpm = callPackage ../tools/package-management/rpm {
+    python = python3;
+  };
 
   rpm-ostree = callPackage ../tools/misc/rpm-ostree {
     gperf = gperf_3_0;
@@ -6480,7 +6766,7 @@ in
     quazip = quazip_qt4;
   };
 
-  screenkey = python2Packages.callPackage ../applications/video/screenkey { };
+  screenkey = callPackage ../applications/video/screenkey { };
 
   quazip_qt4 = libsForQt5.quazip.override {
     qtbase = qt4;
@@ -6498,6 +6784,8 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  sd-switch = callPackage ../os-specific/linux/sd-switch { };
+
   sdate = callPackage ../tools/misc/sdate { };
 
   sdcv = callPackage ../applications/misc/sdcv { };
@@ -6520,6 +6808,8 @@ in
 
   setserial = callPackage ../tools/system/setserial { };
 
+  setzer = callPackage ../applications/editors/setzer { };
+
   seqdiag = with python3Packages; toPythonApplication seqdiag;
 
   sequoia = callPackage ../tools/security/sequoia {
@@ -6544,6 +6834,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 { };
@@ -6625,7 +6917,7 @@ in
 
   sleuthkit = callPackage ../tools/system/sleuthkit {};
 
-  sleepyhead = callPackage ../applications/misc/sleepyhead {};
+  sleepyhead = libsForQt5.callPackage ../applications/misc/sleepyhead {};
 
   slirp4netns = callPackage ../tools/networking/slirp4netns/default.nix { };
 
@@ -6635,6 +6927,8 @@ in
     conf = config.slstatus.conf or null;
   };
 
+  sm64ex = callPackage ../games/sm64ex { };
+
   smartdns = callPackage ../tools/networking/smartdns { };
 
   smartmontools = callPackage ../tools/system/smartmontools {
@@ -6674,6 +6968,8 @@ in
 
   sshping = callPackage ../tools/networking/sshping {};
 
+  ssh-chat = callPackage ../applications/networking/instant-messengers/ssh-chat { };
+
   suricata = callPackage ../applications/networking/ids/suricata {
     python = python3;
   };
@@ -6703,18 +6999,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 {};
@@ -6738,6 +7036,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 { };
@@ -6787,13 +7087,11 @@ 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 { };
 
-  ssb-patchwork = callPackage ../applications/networking/ssb/patchwork { };
+  ssb-patchwork = callPackage ../applications/networking/ssb-patchwork { };
 
   ssdeep = callPackage ../tools/security/ssdeep { };
 
@@ -6856,8 +7154,6 @@ in
 
   swec = callPackage ../tools/networking/swec { };
 
-  swfdec = callPackage ../tools/graphics/swfdec {};
-
   svnfs = callPackage ../tools/filesystems/svnfs { };
 
   svtplay-dl = callPackage ../tools/misc/svtplay-dl { };
@@ -6872,6 +7168,8 @@ in
     libxml2 = libxml2Python;
    };
 
+  systembus-notify = callPackage ../applications/misc/systembus-notify { };
+
   stricat = callPackage ../tools/security/stricat { };
 
   staruml = callPackage ../tools/misc/staruml { inherit (gnome2) GConf; libgcrypt = libgcrypt_1_5; };
@@ -6938,6 +7236,8 @@ in
     pythonPackages = python3Packages;
   };
 
+  termius = callPackage ../applications/networking/termius { };
+
   termplay = callPackage ../tools/misc/termplay { };
 
   tewisay = callPackage ../tools/misc/tewisay { };
@@ -6984,6 +7284,8 @@ in
 
   timetable = callPackage ../applications/office/timetable { };
 
+  timezonemap = callPackage ../development/libraries/timezonemap { };
+
   tzupdate = callPackage ../applications/misc/tzupdate { };
 
   tinc = callPackage ../tools/networking/tinc { };
@@ -6996,6 +7298,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 { };
@@ -7044,12 +7348,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 { };
 
@@ -7126,7 +7425,7 @@ in
 
   tryton = callPackage ../applications/office/tryton { };
 
-  trytond = callPackage ../applications/office/trytond { };
+  trytond = with python3Packages; toPythonApplication trytond;
 
   omapd = callPackage ../tools/security/omapd { };
 
@@ -7149,6 +7448,10 @@ in
 
   tuir = callPackage ../applications/misc/tuir { };
 
+  tunnelto = callPackage ../tools/networking/tunnelto {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   tuptime = callPackage ../tools/system/tuptime { };
 
   turses = callPackage ../applications/networking/instant-messengers/turses { };
@@ -7197,6 +7500,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 { };
@@ -7209,10 +7514,14 @@ in
 
   unrtf = callPackage ../tools/text/unrtf { };
 
+  unrpa = with python3Packages; toPythonApplication unrpa;
+
   untex = callPackage ../tools/text/untex { };
 
   untrunc = callPackage ../tools/video/untrunc { };
 
+  untrunc-anthwlock = callPackage ../tools/video/untrunc-anthwlock { };
+
   up = callPackage ../tools/misc/up { };
 
   upx = callPackage ../tools/compression/upx { };
@@ -7221,6 +7530,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 { };
@@ -7263,10 +7576,14 @@ in
 
   vcstool = callPackage ../development/tools/vcstool { };
 
+  vend = callPackage ../development/tools/vend { };
+
   verilator = callPackage ../applications/science/electronics/verilator {};
 
   verilog = callPackage ../applications/science/electronics/verilog {};
 
+  vhd2vl = callPackage ../applications/science/electronics/vhd2vl { };
+
   video2midi = callPackage ../tools/audio/video2midi {
     pythonPackages = python3Packages;
   };
@@ -7316,6 +7633,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
@@ -7398,12 +7717,12 @@ in
 
   woof = callPackage ../tools/misc/woof { };
 
-  wootility = callPackage ../tools/misc/wootility { };
-
-  wormhole = callPackage ../tools/networking/wormhole {
-    inherit (darwin.apple_sdk.frameworks) Security;
+  wootility = callPackage ../tools/misc/wootility {
+    inherit (xorg) libxkbfile;
   };
 
+  wormhole-william = callPackage ../tools/networking/wormhole-william { };
+
   wpscan = callPackage ../tools/security/wpscan { };
 
   wsmancli = callPackage ../tools/system/wsmancli {};
@@ -7533,6 +7852,8 @@ in
 
   xcruiser = callPackage ../applications/misc/xcruiser { };
 
+  xwallpaper = callPackage ../tools/X11/xwallpaper { };
+
   xxkb = callPackage ../applications/misc/xxkb { };
 
   ugarit = callPackage ../tools/backup/ugarit {
@@ -7618,10 +7939,14 @@ in
     libpsl = null;
   };
 
+  wg-bond = callPackage ../applications/networking/wg-bond { };
+
   which = callPackage ../tools/system/which { };
 
   whsniff = callPackage ../applications/networking/sniffers/whsniff { };
 
+  wiiuse = callPackage ../development/libraries/wiiuse { };
+
   woeusb = callPackage ../tools/misc/woeusb { };
 
   chase = callPackage ../tools/system/chase { };
@@ -7674,6 +7999,8 @@ in
 
   clipnotify = callPackage ../tools/misc/clipnotify { };
 
+  x3270 = callPackage ../applications/misc/x3270 { };
+
   xclip = callPackage ../tools/misc/xclip { };
 
   xcur2png = callPackage ../tools/graphics/xcur2png { };
@@ -7731,9 +8058,7 @@ in
     libxml2 = libxml2Python;
   };
 
-  xsecurelock = callPackage ../tools/X11/xsecurelock {
-    xset = xorg.xset;
-  };
+  xsecurelock = callPackage ../tools/X11/xsecurelock { };
 
   xsel = callPackage ../tools/misc/xsel { };
 
@@ -7774,6 +8099,8 @@ in
 
   yank = callPackage ../tools/misc/yank { };
 
+  yamllint = with python3Packages; toPythonApplication yamllint;
+
   yaml-merge = callPackage ../tools/text/yaml-merge { };
 
   yeshup = callPackage ../tools/system/yeshup { };
@@ -7782,6 +8109,8 @@ in
     inherit (darwin.apple_sdk.frameworks) IOKit;
   };
 
+  ytree = callPackage ../tools/misc/ytree { };
+
   yggdrasil = callPackage ../tools/networking/yggdrasil { };
 
   # To expose more packages for Yi, override the extraPackages arg.
@@ -7865,7 +8194,11 @@ in
 
   zssh = callPackage ../tools/networking/zssh { };
 
-  zstd = callPackage ../tools/compression/zstd { };
+  zstd = callPackage ../tools/compression/zstd {
+    cmake = buildPackages.cmake.override {
+      libarchive = buildPackages.libarchive.override { zstd = null; };
+    };
+  };
 
   zsync = callPackage ../tools/compression/zsync { };
 
@@ -7930,8 +8263,6 @@ in
 
   tcsh = callPackage ../shells/tcsh { };
 
-  rssh = callPackage ../shells/rssh { };
-
   rush = callPackage ../shells/rush { };
 
   xonsh = callPackage ../shells/xonsh { };
@@ -7946,6 +8277,7 @@ in
 
   grml-zsh-config = callPackage ../shells/zsh/grml-zsh-config { };
 
+  powerline = with python3Packages; toPythonApplication powerline;
 
   ### DEVELOPMENT / COMPILERS
 
@@ -8037,6 +8369,8 @@ in
 
   bluespec = callPackage ../development/compilers/bluespec { };
 
+  ciao = callPackage ../development/compilers/ciao { };
+
   colm = callPackage ../development/compilers/colm { };
 
   colmap = libsForQt5.callPackage ../applications/science/misc/colmap { };
@@ -8113,13 +8447,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 = ''
@@ -8132,12 +8467,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;
@@ -8153,6 +8488,8 @@ in
 
   scry = callPackage ../development/tools/scry {};
 
+  dasm = callPackage ../development/compilers/dasm/default.nix { };
+
   dbmate = callPackage ../development/tools/database/dbmate { };
 
   devpi-client = python3Packages.callPackage ../development/tools/devpi-client {};
@@ -8189,13 +8526,20 @@ in
 
   fpc = callPackage ../development/compilers/fpc { };
 
-  gambit = callPackage ../development/compilers/gambit { stdenv = gccStdenv; };
-  gambit-unstable = callPackage ../development/compilers/gambit/unstable.nix { stdenv = gccStdenv; };
-  gerbil = callPackage ../development/compilers/gerbil { stdenv = gccStdenv; };
-  gerbil-unstable = callPackage ../development/compilers/gerbil/unstable.nix { stdenv = gccStdenv; };
+  gambit = callPackage ../development/compilers/gambit { };
+  gambit-unstable = callPackage ../development/compilers/gambit/unstable.nix { };
+  gambit-support = callPackage ../development/compilers/gambit/gambit-support.nix { };
+  gerbil = callPackage ../development/compilers/gerbil { };
+  gerbil-unstable = callPackage ../development/compilers/gerbil/unstable.nix { };
+  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 (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;
 
-  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;
   gcc-unwrapped = gcc.cc;
 
   gccStdenv = if stdenv.cc.isGNU then stdenv else stdenv.override {
@@ -8256,14 +8600,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
@@ -8338,7 +8674,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 {
@@ -8393,6 +8733,8 @@ in
     isl = if !stdenv.isDarwin then isl_0_17 else null;
   }));
 
+  gcc_latest = gcc10;
+
   gfortran = gfortran9;
 
   gfortran48 = wrapCC (gcc48.cc.override {
@@ -8451,6 +8793,16 @@ in
     profiledCompiler = false;
   });
 
+  libgccjit = gcc9.cc.override {
+    name = "libgccjit";
+    langFortran = false;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+    langJit = true;
+    enableLTO = false;
+  };
+
   gcj = gcj6;
   gcj6 = wrapCC (gcc6.cc.override {
     name = "gcj";
@@ -8527,6 +8879,15 @@ in
   gcc-arm-embedded-9 = callPackage ../development/compilers/gcc-arm-embedded/9 {};
   gcc-arm-embedded = gcc-arm-embedded-9;
 
+  gdc = gdc9;
+  gdc9 = wrapCC (gcc9.cc.override {
+    name = "gdc";
+    langCC = false;
+    langC = false;
+    langD = true;
+    profiledCompiler = false;
+  });
+
   gforth = callPackage ../development/compilers/gforth {};
 
   gleam = callPackage ../development/compilers/gleam {
@@ -8541,7 +8902,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;
 
@@ -8640,7 +9001,14 @@ in
     buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
   });
 
-  go = go_1_14;
+  go_1_15 = callPackage ../development/compilers/go/1.15.nix ({
+    inherit (darwin.apple_sdk.frameworks) Security Foundation;
+  } // lib.optionalAttrs stdenv.isAarch64 {
+    stdenv = gcc8Stdenv;
+    buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
+  });
+
+  go = go_1_15;
 
   go-repo-root = callPackage ../development/tools/go-repo-root { };
 
@@ -8660,6 +9028,8 @@ in
 
   idris = idrisPackages.with-packages [ idrisPackages.base ] ;
 
+  idris2 = callPackage ../development/compilers/idris2 { };
+
   intel-graphics-compiler = callPackage ../development/compilers/intel-graphics-compiler { };
 
   intercal = callPackage ../development/compilers/intercal { };
@@ -8808,6 +9178,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 { };
@@ -8879,58 +9253,46 @@ 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;
-  } // 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;
   };
@@ -8957,6 +9319,8 @@ in
 
   mkcl = callPackage ../development/compilers/mkcl {};
 
+  mlkit = callPackage ../development/compilers/mlkit {};
+
   inherit (callPackage ../development/compilers/mlton {})
     mlton20130715
     mlton20180207Binary
@@ -8988,7 +9352,9 @@ 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 { };
 
@@ -9061,17 +9427,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 = rust_1_42;
+  rust_1_45 = callPackage ../development/compilers/rust/1_45.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+  rust = rust_1_45;
 
-  rustPackages_1_42 = rust_1_42.packages.stable;
-  rustPackages = rustPackages_1_42;
+  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;
@@ -9098,6 +9498,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;
   };
@@ -9110,13 +9513,18 @@ in
   cargo-release = callPackage ../tools/package-management/cargo-release {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
-  cargo-tree = callPackage ../tools/package-management/cargo-tree { };
-  cargo-update = callPackage ../tools/package-management/cargo-update { };
+  cargo-tarpaulin = callPackage ../development/tools/analysis/cargo-tarpaulin { };
+  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;
   };
@@ -9124,6 +9532,9 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
   cargo-expand = callPackage ../development/tools/rust/cargo-expand { };
+  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;
@@ -9132,8 +9543,9 @@ in
   cargo-inspect = callPackage ../development/tools/rust/cargo-inspect {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
+  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;
@@ -9181,6 +9593,8 @@ in
   scala_2_13 = callPackage ../development/compilers/scala/2.13.nix { jre = jre8; };
   scala = scala_2_13;
 
+  scas = callPackage ../development/compilers/scas { };
+
   metal = callPackage ../development/libraries/metal { };
   metals = callPackage ../development/tools/metals { };
   scalafix = callPackage ../development/tools/scalafix { };
@@ -9286,6 +9700,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:
@@ -9298,7 +9716,7 @@ in
     isGNU = cc.isGNU or false;
     isClang = cc.isClang or false;
 
-    inherit cc bintools libc extraPackages;
+    inherit cc bintools libc libcxx extraPackages zlib;
   } // extraArgs; in self);
 
   wrapCC = cc: wrapCCWith {
@@ -9339,6 +9757,7 @@ in
   ### DEVELOPMENT / INTERPRETERS
 
   acl2 = callPackage ../development/interpreters/acl2 { };
+  acl2-minimal = callPackage ../development/interpreters/acl2 { certifyBooks = false; };
 
   angelscript = callPackage ../development/interpreters/angelscript {};
 
@@ -9369,6 +9788,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 { };
@@ -9382,7 +9803,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;
 
@@ -9433,15 +9854,14 @@ 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 {
-    gtk2 = gtk2-x11;
-  };
+  lxappearance = callPackage ../desktops/lxde/core/lxappearance { };
 
-  lxappearance-gtk3 = lxappearance.override {
-    withGtk3 = true;
+  lxappearance-gtk2 = callPackage ../desktops/lxde/core/lxappearance {
+    gtk2 = gtk2-x11;
+    withGtk3 = false;
   };
 
   lxmenu-data = callPackage ../desktops/lxde/core/lxmenu-data.nix { };
@@ -9500,13 +9920,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 { };
@@ -9539,18 +9952,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 {};
 
@@ -9570,22 +9981,50 @@ in
   # When switching these sets, please update docs at ../../doc/languages-frameworks/python.md
   python = python2;
   python2 = python27;
-  python3 = python37;
+  python3 = python38;
   pypy = pypy2;
   pypy2 = pypy27;
   pypy3 = pypy36;
 
   # 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;
@@ -9593,11 +10032,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;
@@ -9631,7 +10069,7 @@ in
 
   pew = callPackage ../development/tools/pew {};
 
-  poetry = callPackage ../development/tools/poetry {
+  poetry = callPackage ../development/tools/poetry2nix/poetry2nix/pkgs/poetry {
     python = python3;
   };
   poetry2nix = callPackage ../development/tools/poetry2nix/poetry2nix {
@@ -9641,7 +10079,7 @@ in
   pipenv = callPackage ../development/tools/pipenv {};
 
   pipewire = callPackage ../development/libraries/pipewire {};
-  pipewire_0_2 = callPackage ../development/libraries/pipewire/2.nix {};
+  pipewire_0_2 = callPackage ../development/libraries/pipewire/0.2.nix {};
 
   pyradio = callPackage ../applications/radio/pyradio {};
 
@@ -9697,6 +10135,7 @@ in
   inherit (callPackage ../development/interpreters/ruby {
     inherit (darwin) libiconv libobjc libunwind;
     inherit (darwin.apple_sdk.frameworks) Foundation;
+    bison = buildPackages.bison_3_5;
   })
     ruby_2_5
     ruby_2_6
@@ -9869,10 +10308,9 @@ in
 
   inherit (callPackage ../tools/admin/ansible { })
     ansible
-    ansible_2_6
-    ansible_2_7
     ansible_2_8
-    ansible_2_9;
+    ansible_2_9
+    ansible_2_10;
 
   ansible-lint = with python3.pkgs; toPythonApplication ansible-lint;
 
@@ -9916,10 +10354,8 @@ in
   aws-adfs = with python3Packages; toPythonApplication aws-adfs;
 
   inherit (callPackages ../development/tools/electron { })
-    electron_4 electron_5 electron_6 electron_7 electron_8;
-
-  electron_3 = callPackage ../development/tools/electron/3.x.nix { };
-  electron = electron_4;
+    electron_3 electron_4 electron_5 electron_6 electron_7 electron_8 electron_9;
+  electron = electron_9;
 
   autobuild = callPackage ../development/tools/misc/autobuild { };
 
@@ -9948,7 +10384,7 @@ in
 
   bam = callPackage ../development/tools/build-managers/bam {};
 
-  bazel = bazel_2;
+  bazel = bazel_3;
 
   bazel_0 = bazel_0_26;
 
@@ -9981,14 +10417,14 @@ in
     bazel_self = bazel_1;
   };
 
-  bazel_2 = callPackage ../development/tools/build-managers/bazel/bazel_2 {
+  bazel_3 = callPackage ../development/tools/build-managers/bazel/bazel_3 {
     inherit (darwin) cctools;
     inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
     buildJdk = jdk8;
     buildJdkName = "jdk8";
     runJdk = jdk11_headless;
     stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
-    bazel_self = bazel_2;
+    bazel_self = bazel_3;
   };
 
   bazel-buildtools = callPackage ../development/tools/build-managers/bazel/buildtools { };
@@ -10002,8 +10438,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 { };
@@ -10028,6 +10468,15 @@ in
   bison = callPackage ../development/tools/parsing/bison { };
   yacc = bison; # TODO: move to aliases.nix
 
+  # Ruby fails to build with current bison
+  bison_3_5 = pkgs.bison.overrideAttrs (oldAttrs: rec {
+    version = "3.5.4";
+    src = fetchurl {
+      url = "mirror://gnu/${oldAttrs.pname}/${oldAttrs.pname}-${version}.tar.gz";
+      sha256 = "0a2cbrqh7mgx2dwf5qm10v68iakv1i0dqh9di4x5aqxsz96ibpf0";
+    };
+  });
+
   black = with python3Packages; toPythonApplication black;
 
   blackmagic = callPackage ../development/tools/misc/blackmagic { };
@@ -10046,6 +10495,8 @@ in
   buildkite-agent2 = throw "pkgs.buildkite-agent2 has been discontinued. Please use pkgs.buildkite-agent (v3.x)";
   buildkite-agent3 = callPackage ../development/tools/continuous-integration/buildkite-agent { };
 
+  buildkite-cli = callPackage ../development/tools/continuous-integration/buildkite-cli { };
+
   libbpf = callPackage ../os-specific/linux/libbpf { };
 
   bpftool = callPackage ../os-specific/linux/bpftool { };
@@ -10058,12 +10509,10 @@ in
 
   cask = callPackage ../development/tools/cask { };
 
-  casperjs = callPackage ../development/tools/casperjs {
-    inherit (texFunctions) fontsConf;
-  };
-
   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++
@@ -10119,6 +10568,8 @@ in
 
   cloud-nuke = callPackage ../development/tools/cloud-nuke { };
 
+  cloudcompare = libsForQt5.callPackage ../applications/graphics/cloudcompare {};
+
   cloudfoundry-cli = callPackage ../development/tools/cloudfoundry-cli { };
 
   coan = callPackage ../development/tools/analysis/coan { };
@@ -10154,6 +10605,10 @@ in
 
   cmake-format = python3Packages.callPackage ../development/tools/cmake-format { };
 
+  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;
 
@@ -10175,12 +10630,6 @@ in
 
   cpplint = callPackage ../development/tools/analysis/cpplint { };
 
-  cquery = callPackage ../development/tools/misc/cquery {
-    # 7 is the default, but only on Linux, so keep this for now
-    llvmPackages = llvmPackages_7;
-  };
-
-
   ccls = callPackage ../development/tools/misc/ccls {
     llvmPackages = llvmPackages_8;
     stdenv = llvmPackages_8.stdenv;
@@ -10207,6 +10656,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 { };
@@ -10284,7 +10744,7 @@ in
 
   dolt = callPackage ../servers/sql/dolt { };
 
-  dot2tex = pythonPackages.dot2tex;
+  dot2tex = with python3.pkgs; toPythonApplication dot2tex;
 
   doxygen = callPackage ../development/tools/documentation/doxygen {
     qt4 = null;
@@ -10301,12 +10761,16 @@ in
 
   drush = callPackage ../development/tools/misc/drush { };
 
+  easypdkprog = callPackage ../development/tools/misc/easypdkprog { };
+
   editorconfig-checker = callPackage ../development/tools/misc/editorconfig-checker { };
 
   editorconfig-core-c = callPackage ../development/tools/misc/editorconfig-core-c { };
 
   eggdbus = callPackage ../development/tools/misc/eggdbus { };
 
+  effitask = callPackage ../applications/misc/effitask { };
+
   egypt = callPackage ../development/tools/analysis/egypt { };
 
   elfinfo = callPackage ../development/tools/misc/elfinfo { };
@@ -10315,6 +10779,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 { };
@@ -10359,6 +10825,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 { };
@@ -10409,8 +10877,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 {});
 
@@ -10433,6 +10901,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.
@@ -10491,7 +10960,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 { };
@@ -10520,6 +10989,10 @@ in
 
   jenkins-job-builder = with python3Packages; toPythonApplication jenkins-job-builder;
 
+  julius = callPackage ../games/julius { };
+
+  augustus = callPackage ../games/augustus { };
+
   kafkacat = callPackage ../development/tools/kafkacat { };
 
   kati = callPackage ../development/tools/build-managers/kati { };
@@ -10546,9 +11019,13 @@ in
 
   kubeprompt = callPackage ../development/tools/kubeprompt { };
 
+  kubespy = callPackage ../applications/networking/cluster/kubespy { };
+
   kubicorn = callPackage ../development/tools/kubicorn {  };
 
-  kubie = callPackage ../development/tools/kubie { };
+  kubie = callPackage ../development/tools/kubie {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   kustomize = callPackage ../development/tools/kustomize { };
 
@@ -10620,8 +11097,14 @@ in
 
   mkcert = callPackage ../development/tools/misc/mkcert { };
 
+  mkrom = callPackage ../development/tools/misc/mkrom {
+    asciidoc = asciidoc-full;
+  };
+
   mkdocs = callPackage ../development/tools/documentation/mkdocs { };
 
+  mockgen = callPackage ../development/tools/mockgen { };
+
   modd = callPackage ../development/tools/modd { };
 
   msgpack-tools = callPackage ../development/tools/msgpack-tools { };
@@ -10651,6 +11134,8 @@ in
     pythonPackages = python3Packages;
   };
 
+  nix-build-uncached = callPackage ../development/tools/misc/nix-build-uncached { };
+
   nexus = callPackage ../development/tools/repository-managers/nexus { };
 
   nwjs = callPackage ../development/tools/nwjs {
@@ -10701,6 +11186,7 @@ in
   parse-cli-bin = callPackage ../development/tools/parse-cli-bin { };
 
   patchelf = callPackage ../development/tools/misc/patchelf { };
+  patchelf_0_9 = callPackage ../development/tools/misc/patchelf/0.9.nix { };
 
   patchelfUnstable = lowPrio (callPackage ../development/tools/misc/patchelf/unstable.nix { });
 
@@ -10716,12 +11202,23 @@ in
 
   pmccabe = callPackage ../development/tools/misc/pmccabe { };
 
-  pkgconf = callPackage ../development/tools/misc/pkgconf {};
+  pkgconf-unwrapped = callPackage ../development/tools/misc/pkgconf {};
+  pkgconf = callPackage ../build-support/pkg-config-wrapper {
+    pkg-config = pkgconf-unwrapped;
+    baseBinName = "pkgconf";
+  };
 
-  pkg-config = callPackage ../development/tools/misc/pkg-config { };
+  pkg-config-unwrapped = callPackage ../development/tools/misc/pkg-config { };
+  pkg-config = callPackage ../build-support/pkg-config-wrapper {
+    pkg-config = pkg-config-unwrapped;
+  };
   pkgconfig = pkg-config; # added 2018-02-02
 
-  pkg-configUpstream = lowPrio (pkg-config.override { vanilla = true; });
+  pkg-configUpstream = lowPrio (pkg-config.override (old: {
+    pkg-config = old.pkg-config.override {
+      vanilla = true;
+    };
+  }));
   pkgconfigUpstream = pkg-configUpstream; # added 2018-02-02
 
   inherit (nodePackages) postcss-cli;
@@ -10787,6 +11284,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 { };
@@ -10795,6 +11294,8 @@ in
 
   remake = callPackage ../development/tools/build-managers/remake { };
 
+  replacement = callPackage ../development/tools/misc/replacement { };
+
   retdec = callPackage ../development/tools/analysis/retdec {
     stdenv = gcc8Stdenv;
   };
@@ -10921,10 +11422,14 @@ in
 
   strace = callPackage ../development/tools/misc/strace { };
 
+  summon = callPackage ../development/tools/summon { };
+
   swarm = callPackage ../development/tools/analysis/swarm { };
 
   swiftformat = callPackage ../development/tools/swiftformat { };
 
+  swiftshader = callPackage ../development/libraries/swiftshader { };
+
   systemfd = callPackage ../development/tools/systemfd { };
 
   swig1 = callPackage ../development/tools/misc/swig { };
@@ -10949,6 +11454,9 @@ in
   terracognita = callPackage ../development/tools/misc/terracognita { };
 
   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;
@@ -11027,7 +11535,11 @@ in
 
   vultr = callPackage ../development/tools/vultr { };
 
-  vulnix = callPackage ../tools/security/vulnix { };
+  vultr-cli = callPackage ../development/tools/vultr-cli { };
+
+  vulnix = callPackage ../tools/security/vulnix {
+    python3Packages = python37Packages;
+  };
 
   vtable-dumper = callPackage ../development/tools/misc/vtable-dumper { };
 
@@ -11063,6 +11575,8 @@ in
 
   xxdiff = libsForQt5.callPackage ../development/tools/misc/xxdiff { };
 
+  xxe-pe = callPackage ../applications/editors/xxe-pe { };
+
   xxdiff-tip = xxdiff;
 
   yaml2json = callPackage ../development/tools/yaml2json { };
@@ -11070,12 +11584,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 { };
@@ -11120,6 +11637,10 @@ in
   allegro4 = callPackage ../development/libraries/allegro {};
   allegro5 = callPackage ../development/libraries/allegro/5.nix {};
 
+  amdvlk = callPackage ../development/libraries/amdvlk {};
+
+  aml = callPackage ../development/libraries/aml { };
+
   amrnb = callPackage ../development/libraries/amrnb { };
 
   amrwb = callPackage ../development/libraries/amrwb { };
@@ -11159,9 +11680,8 @@ in
 
   assimp = callPackage ../development/libraries/assimp { };
 
-  asio = asio_1_12;
   asio_1_10 = callPackage ../development/libraries/asio/1.10.nix { };
-  asio_1_12 = callPackage ../development/libraries/asio/1.12.nix { };
+  asio = callPackage ../development/libraries/asio/default.nix { };
 
   aspell = callPackage ../development/libraries/aspell { };
 
@@ -11197,6 +11717,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 { };
@@ -11280,6 +11802,8 @@ in
   # justStaticExecutables is needed due to https://github.com/NixOS/nix/issues/2990
   cachix = haskell.lib.justStaticExecutables haskellPackages.cachix;
 
+  hercules-ci-agent = callPackage ../development/tools/continuous-integration/hercules-ci-agent { };
+
   niv = haskellPackages.niv.bin;
 
   ormolu = haskellPackages.ormolu.bin;
@@ -11312,7 +11836,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 {};
 
@@ -11504,6 +12034,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)
@@ -11518,6 +12050,8 @@ in
 
   dssi = callPackage ../development/libraries/dssi {};
 
+  duckdb = callPackage ../development/libraries/duckdb {};
+
   dxflib = callPackage ../development/libraries/dxflib {};
 
   easyloggingpp = callPackage ../development/libraries/easyloggingpp {};
@@ -11602,7 +12136,9 @@ in
   # Aliases
   ffmpeg_2 = ffmpeg_2_8;
   ffmpeg_3 = ffmpeg_3_4;
-  ffmpeg = ffmpeg_3;
+  # Please make sure this is updated to the latest version on the next major
+  # update to ffmpeg
+  ffmpeg = ffmpeg_4;
 
   ffmpeg-full = callPackage ../development/libraries/ffmpeg-full {
     # The following need to be fixed on Darwin
@@ -11672,12 +12208,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 { };
@@ -11765,6 +12297,7 @@ in
   gf2x = callPackage ../development/libraries/gf2x {};
 
   gd = callPackage ../development/libraries/gd {
+    automake = automake115x;
     libtiff = null;
     libXpm = null;
   };
@@ -11799,6 +12332,16 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  libgit2_0_27 = libgit2.overrideAttrs (oldAttrs: rec {
+    version = "0.27.10";
+    src = fetchFromGitHub {
+      owner = "libgit2";
+      repo = "libgit2";
+      rev = "v${version}";
+      sha256 = "09jz2fzv0zl5058s0g1cpnw87a2rgg8wnjwlygi18i2n9nn6m0ad";
+    };
+  });
+
   libgit2-glib = callPackage ../development/libraries/libgit2-glib { };
 
   glbinding = callPackage ../development/libraries/glbinding { };
@@ -11856,6 +12399,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}";
 
@@ -11870,6 +12414,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;
 
@@ -11938,7 +12484,9 @@ in
 
   gperftools = callPackage ../development/libraries/gperftools { };
 
-  grab-site = callPackage ../tools/backup/grab-site { };
+  grab-site = callPackage ../tools/backup/grab-site {
+    python3Packages = python37Packages;
+  };
 
   grib-api = callPackage ../development/libraries/grib-api { };
 
@@ -11951,7 +12499,7 @@ in
   gsettings-qt = libsForQt5.callPackage ../development/libraries/gsettings-qt { };
 
   gst_all_1 = recurseIntoAttrs(callPackage ../development/libraries/gstreamer {
-    callPackage = newScope { libav = pkgs.ffmpeg_4; };
+    callPackage = newScope { libav = pkgs.ffmpeg; };
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   });
 
@@ -12077,6 +12625,8 @@ in
 
   gdk-pixbuf = callPackage ../development/libraries/gdk-pixbuf { };
 
+  gdk-pixbuf-xlib = callPackage ../development/libraries/gdk-pixbuf/xlib.nix { };
+
   gnome-sharp = callPackage ../development/libraries/gnome-sharp { };
 
   gnome-menus = callPackage ../development/libraries/gnome-menus { };
@@ -12186,6 +12736,8 @@ in
 
   haxor-news = callPackage ../applications/misc/haxor-news { };
 
+  hdt = callPackage ../misc/hdt {};
+
   herqq = libsForQt5.callPackage ../development/libraries/herqq { };
 
   heyefi = haskellPackages.heyefi;
@@ -12288,7 +12840,7 @@ in
       stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
     }));
 
-  icu = icu64;
+  icu = icu67;
 
   id3lib = callPackage ../development/libraries/id3lib { };
 
@@ -12313,6 +12865,8 @@ in
 
   imlibsetroot = callPackage ../applications/graphics/imlibsetroot { libXinerama = xorg.libXinerama; } ;
 
+  impy = callPackage ../development/libraries/impy { };
+
   ineffassign = callPackage ../development/tools/ineffassign { };
 
   ijs = callPackage ../development/libraries/ijs { };
@@ -12352,7 +12906,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;
@@ -12441,6 +12997,7 @@ in
   lasso = callPackage ../development/libraries/lasso { };
 
   LASzip = callPackage ../development/libraries/LASzip { };
+  LASzip2 = callPackage ../development/libraries/LASzip/LASzip2.nix { };
 
   lcms = lcms1;
 
@@ -12504,6 +13061,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 { };
@@ -12689,7 +13250,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 { };
 
@@ -12726,6 +13289,8 @@ in
   inherit (callPackage ../development/libraries/libdwarf { })
     libdwarf dwarfdump;
 
+  libe57format = callPackage ../development/libraries/libe57format { };
+
   libeatmydata = callPackage ../development/libraries/libeatmydata { };
 
   libeb = callPackage ../development/libraries/libeb { };
@@ -12752,7 +13317,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 { };
 
@@ -12762,9 +13329,6 @@ in
   };
 
   libfprint = callPackage ../development/libraries/libfprint { };
-  libfprint-thinkpad = libfprint.override {
-    thinkpad = true;
-  };
 
   libfpx = callPackage ../development/libraries/libfpx { };
 
@@ -12863,7 +13427,7 @@ in
 
   libfabric = callPackage ../os-specific/linux/libfabric {};
 
-  libfive = callPackage ../development/libraries/libfive { };
+  libfive = libsForQt5.callPackage ../development/libraries/libfive { };
 
   libfixposix = callPackage ../development/libraries/libfixposix {};
 
@@ -12879,6 +13443,8 @@ in
 
   libftdi1 = callPackage ../development/libraries/libftdi/1.x.nix { };
 
+  libfyaml = callPackage ../development/libraries/libfyaml { };
+
   libgcrypt = callPackage ../development/libraries/libgcrypt { };
 
   libgcrypt_1_5 = callPackage ../development/libraries/libgcrypt/1.5.nix { };
@@ -12921,6 +13487,8 @@ in
 
   libhttpseverywhere = callPackage ../development/libraries/libhttpseverywhere { };
 
+  libhugetlbfs = callPackage ../development/libraries/libhugetlbfs { };
+
   libHX = callPackage ../development/libraries/libHX { };
 
   libibmad = callPackage ../development/libraries/libibmad { };
@@ -12939,6 +13507,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 {
@@ -12951,8 +13523,6 @@ in
 
   liblastfmSF = callPackage ../development/libraries/liblastfmSF { };
 
-  liblastfm = callPackage ../development/libraries/liblastfm { };
-
   liblcf = callPackage ../development/libraries/liblcf { };
 
   liblqr1 = callPackage ../development/libraries/liblqr-1 { };
@@ -13004,6 +13574,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 { };
@@ -13099,7 +13672,6 @@ in
   libjpeg_original = callPackage ../development/libraries/libjpeg { };
   # also known as libturbojpeg
   libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { };
-  libjpeg_drop = callPackage ../development/libraries/libjpeg-drop { };
   libjpeg = libjpeg_turbo;
 
   libjreen = callPackage ../development/libraries/libjreen { };
@@ -13250,6 +13822,8 @@ in
 
   libp11 = callPackage ../development/libraries/libp11 { };
 
+  libpam-wrapper = callPackage ../development/libraries/libpam-wrapper { };
+
   libpar2 = callPackage ../development/libraries/libpar2 { };
 
   libpcap = callPackage ../development/libraries/libpcap { };
@@ -13274,6 +13848,10 @@ in
 
   libpqxx = callPackage ../development/libraries/libpqxx { };
 
+  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;
   };
@@ -13442,7 +14020,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; };
@@ -13450,7 +14028,6 @@ in
   libvdpau = callPackage ../development/libraries/libvdpau { };
 
   libmodulemd = callPackage ../development/libraries/libmodulemd { };
-  libmodulemd_1 = callPackage ../development/libraries/libmodulemd/1.nix { };
 
   libvdpau-va-gl = callPackage ../development/libraries/libvdpau-va-gl { };
 
@@ -13539,12 +14116,16 @@ in
     python = if stdenv.isDarwin then python2 else python3;
   };
 
+  libxsmm = callPackage ../development/libraries/libxsmm { };
+
   libixp_hg = callPackage ../development/libraries/libixp-hg { };
 
   libyaml = callPackage ../development/libraries/libyaml { };
 
   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";
@@ -13683,7 +14264,9 @@ in
     withGUI = false;
   };
 
-  mlt = callPackage ../development/libraries/mlt { ffmpeg = ffmpeg_4; };
+  mlt = callPackage ../development/libraries/mlt { };
+
+  mlv-app = libsForQt5.callPackage ../applications/video/mlv-app { };
 
   mono-addins = callPackage ../development/libraries/mono-addins { };
 
@@ -13800,6 +14383,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 { };
@@ -13904,6 +14488,8 @@ in
 
   opencolorio = callPackage ../development/libraries/opencolorio { };
 
+  opendmarc = callPackage ../development/libraries/opendmarc { };
+
   ois = callPackage ../development/libraries/ois {};
 
   openh264 = callPackage ../development/libraries/openh264 { };
@@ -13923,10 +14509,12 @@ in
   openvdb = callPackage ../development/libraries/openvdb {};
 
   inherit (callPackages ../development/libraries/libressl { })
-    libressl_2_9
-    libressl_3_0;
+    libressl_3_0
+    libressl_3_1;
 
-  libressl = libressl_3_0;
+  # Please keep this pointed to the latest version. See also
+  # https://discourse.nixos.org/t/nixpkgs-policy-regarding-libraries-available-in-multiple-versions/7026/2
+  libressl = libressl_3_1;
 
   boringssl = callPackage ../development/libraries/boringssl { };
 
@@ -13985,6 +14573,8 @@ in
 
   pcre2 = callPackage ../development/libraries/pcre2 { };
 
+  pdal = callPackage ../development/libraries/pdal { } ;
+
   pdf2xml = callPackage ../development/libraries/pdf2xml {} ;
 
   inherit (callPackage ../development/libraries/physfs { })
@@ -14061,8 +14651,9 @@ in
     python = python37;
   };
 
-  protobuf = protobuf3_8;
+  protobuf = protobuf3_12;
 
+  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 { };
   protobuf3_9 = callPackage ../development/libraries/protobuf/3.9.nix { };
@@ -14080,6 +14671,8 @@ in
 
   flatbuffers = callPackage ../development/libraries/flatbuffers { };
 
+  nanopb = callPackage ../development/libraries/nanopb { };
+
   gnupth = callPackage ../development/libraries/pth { };
   pth = if stdenv.hostPlatform.isMusl then npth else gnupth;
 
@@ -14159,9 +14752,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 { };
 
@@ -14179,7 +14789,7 @@ in
       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 solid sonnet syntax-highlighting
+      networkmanager-qt plasma-framework prison qqc2-desktop-style solid sonnet syntax-highlighting
       syndication threadweaver kirigami2 kholidays kpurpose kcontacts;
 
     ### KDE PLASMA 5
@@ -14208,6 +14818,8 @@ in
 
     kdiagram = callPackage ../development/libraries/kdiagram { };
 
+    kdsoap = callPackage ../development/libraries/kdsoap { };
+
     kproperty = callPackage ../development/libraries/kproperty { };
 
     kreport = callPackage ../development/libraries/kreport { };
@@ -14220,6 +14832,8 @@ in
 
     libktorrent = callPackage ../development/libraries/libktorrent { };
 
+    liblastfm = callPackage ../development/libraries/liblastfm { };
+
     libopenshot = callPackage ../applications/video/openshot-qt/libopenshot.nix { };
 
     libopenshot-audio = callPackage ../applications/video/openshot-qt/libopenshot-audio.nix { };
@@ -14232,9 +14846,7 @@ in
 
     kpmcore = callPackage ../development/libraries/kpmcore { };
 
-    mlt = callPackage ../development/libraries/mlt/qt-5.nix {
-      ffmpeg = ffmpeg_4;
-    };
+    mlt = callPackage ../development/libraries/mlt/qt-5.nix { };
 
     openbr = callPackage ../development/libraries/openbr { };
 
@@ -14381,6 +14993,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 {
@@ -14390,6 +15004,8 @@ in
 
   rlog = callPackage ../development/libraries/rlog { };
 
+  rlottie = callPackage ../development/libraries/rlottie { };
+
   rocksdb = callPackage ../development/libraries/rocksdb { };
 
   rocksdb_lite = rocksdb.override { enableLite = true; };
@@ -14406,7 +15022,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 {};
 
@@ -14491,7 +15113,6 @@ in
 
   simpleitk = callPackage ../development/libraries/simpleitk {
     lua = lua51Packages.lua;
-    stdenv = gcc8Stdenv;
   };
 
   sfml = callPackage ../development/libraries/sfml {
@@ -14580,6 +15201,8 @@ in
 
   sonic = callPackage ../development/libraries/sonic { };
 
+  sope = callPackage ../development/libraries/sope { };
+
   soprano = callPackage ../development/libraries/soprano { };
 
   soqt = callPackage ../development/libraries/soqt { };
@@ -14687,6 +15310,7 @@ in
   stlport = callPackage ../development/libraries/stlport { };
 
   streamlink = callPackage ../applications/video/streamlink { pythonPackages = python3Packages; };
+  streamlink-twitch-gui-bin = callPackage ../applications/video/streamlink-twitch-gui/bin.nix {};
 
   strigi = callPackage ../development/libraries/strigi { clucene_core = clucene_core_2; };
 
@@ -14771,8 +15395,6 @@ in
 
   telepathy-farstream = callPackage ../development/libraries/telepathy/farstream {};
 
-  telepathy-qt = callPackage ../development/libraries/telepathy/qt { qtbase = qt4; };
-
   termbox = callPackage ../development/libraries/termbox { };
 
   tevent = callPackage ../development/libraries/tevent { };
@@ -14926,6 +15548,14 @@ in
   vte_290 = callPackage ../development/libraries/vte/2.90.nix { };
 
   vtk = callPackage ../development/libraries/vtk {
+    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;
+  };
+
+  vtk_7 = callPackage ../development/libraries/vtk/7.x.nix {
     stdenv = if stdenv.isDarwin then stdenv else gcc8Stdenv;
     inherit (darwin) libobjc;
     inherit (darwin.apple_sdk.libs) xpc;
@@ -14934,6 +15564,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 { };
@@ -14965,7 +15603,7 @@ in
     });
   };
 
-  vtkWithQt4 = vtk.override { qtLib = qt4; };
+  vtkWithQt5 = vtk.override { qtLib = qt5; };
 
   vxl = callPackage ../development/libraries/vxl {
     libpng = libpng12;
@@ -15005,6 +15643,9 @@ in
 
   wxGTK = wxGTK28;
 
+  wxGTK30 = wxGTK30-gtk2;
+  wxGTK31 = wxGTK31-gtk2;
+
   wxGTK28 = callPackage ../development/libraries/wxwidgets/2.8 {
     inherit (gnome2) GConf;
   };
@@ -15015,18 +15656,32 @@ in
     inherit (darwin.apple_sdk.frameworks) AGL Carbon Cocoa Kernel QuickTime;
   };
 
-  wxGTK30 = callPackage ../development/libraries/wxwidgets/3.0 {
+  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;
   };
 
-  wxGTK31 = callPackage ../development/libraries/wxwidgets/3.1 {
+  wxGTK30-gtk3 = callPackage ../development/libraries/wxwidgets/3.0 {
+    withGtk2 = false;
+    inherit (darwin.stubs) setfile;
+    inherit (darwin.apple_sdk.frameworks) AGL Carbon Cocoa Kernel QTKit;
+  };
+
+  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;
   };
 
+  wxGTK31-gtk3 = callPackage ../development/libraries/wxwidgets/3.1 {
+    withGtk2 = false;
+    inherit (darwin.stubs) setfile;
+    inherit (darwin.apple_sdk.frameworks) AGL Carbon Cocoa Kernel QTKit;
+  };
+
   wxmac = callPackage ../development/libraries/wxwidgets/3.0/mac.nix {
     inherit (darwin.apple_sdk.frameworks) AGL Cocoa Kernel;
     inherit (darwin.stubs) setfile rez derez;
@@ -15129,6 +15784,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 { };
@@ -15139,7 +15796,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;
 
@@ -15178,31 +15834,10 @@ in
 
   ### DEVELOPMENT / LIBRARIES / AGDA
 
-  agda = callPackage ../build-support/agda {
-    glibcLocales = if pkgs.stdenv.isLinux then pkgs.glibcLocales else null;
-    extension = self : super : { };
+  agdaPackages = callPackage ./agda-packages.nix {
     inherit (haskellPackages) Agda;
   };
-
-  agdaBase = callPackage ../development/libraries/agda/agda-base { };
-
-  agdaIowaStdlib = callPackage ../development/libraries/agda/agda-iowa-stdlib { };
-
-  agdaPrelude = callPackage ../development/libraries/agda/agda-prelude { };
-
-  AgdaStdlib = callPackage ../development/libraries/agda/agda-stdlib {
-    inherit (haskellPackages) ghcWithPackages;
-  };
-
-  AgdaSheaves = callPackage ../development/libraries/agda/Agda-Sheaves { };
-
-  bitvector = callPackage ../development/libraries/agda/bitvector { };
-
-  categories = callPackage ../development/libraries/agda/categories { };
-
-  pretty = callPackage ../development/libraries/agda/pretty { };
-
-  TotalParserCombinators = callPackage ../development/libraries/agda/TotalParserCombinators { };
+  agda = agdaPackages.agda;
 
   ### DEVELOPMENT / LIBRARIES / JAVA
 
@@ -15240,8 +15875,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 { };
@@ -15278,14 +15911,20 @@ in
   buildGo114Package = callPackage ../development/go-packages/generic {
     go = buildPackages.go_1_14;
   };
+  buildGo115Package = callPackage ../development/go-packages/generic {
+    go = buildPackages.go_1_15;
+  };
 
-  buildGoPackage = buildGo114Package;
+  buildGoPackage = buildGo115Package;
 
   buildGo114Module = callPackage ../development/go-modules/generic {
     go = buildPackages.go_1_14;
   };
+  buildGo115Module = callPackage ../development/go-modules/generic {
+    go = buildPackages.go_1_15;
+  };
 
-  buildGoModule = buildGo114Module;
+  buildGoModule = buildGo115Module;
 
   go2nix = callPackage ../development/tools/go2nix { };
 
@@ -15396,6 +16035,8 @@ in
     kerberos = libkrb5;
   };
 
+  adguardhome = callPackage ../servers/adguardhome {};
+
   apacheHttpd_2_4 = callPackage ../servers/http/apache-httpd/2.4.nix { };
   apacheHttpd = pkgs.apacheHttpd_2_4;
 
@@ -15488,7 +16129,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 {
@@ -15506,6 +16147,8 @@ in
 
   dex-oidc = callPackage ../servers/dex { };
 
+  dex2jar = callPackage ../development/tools/java/dex2jar { };
+
   doh-proxy = callPackage ../servers/dns/doh-proxy {
     python3Packages = python36Packages;
   };
@@ -15532,10 +16175,14 @@ in
 
   dovecot = callPackage ../servers/mail/dovecot { };
   dovecot_pigeonhole = callPackage ../servers/mail/dovecot/plugins/pigeonhole { };
+  dovecot_fts_xapian = callPackage ../servers/mail/dovecot/plugins/fts_xapian { };
 
   dspam = callPackage ../servers/mail/dspam { };
 
+  engelsystem = callPackage ../servers/web-apps/engelsystem { };
+
   etcd = callPackage ../servers/etcd { };
+  etcd_3_4 = callPackage ../servers/etcd/3.4.nix { };
 
   ejabberd = callPackage ../servers/xmpp/ejabberd { };
 
@@ -15593,9 +16240,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 { };
 
@@ -15607,9 +16258,17 @@ 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.
+
   inherit (callPackage ../servers/hasura { })
     hasura-cli
     hasura-graphql-engine;
+   */
 
   heapster = callPackage ../servers/monitoring/heapster { };
 
@@ -15646,6 +16305,14 @@ 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 { };
 
   knot-dns = callPackage ../servers/dns/knot-dns { };
@@ -15667,11 +16334,7 @@ in
 
   mailman-rss = callPackage ../development/python-modules/mailman-rss { };
 
-  mailman-web = with (python3.override {
-    packageOverrides = self: super: {
-      django = self.django_1_11;
-    };
-  }).pkgs; toPythonApplication mailman-web;
+  mailman-web = with python3.pkgs; toPythonApplication mailman-web;
 
   mattermost = callPackage ../servers/mattermost { };
   matterircd = callPackage ../servers/mattermost/matterircd.nix { };
@@ -15681,8 +16344,6 @@ in
 
   mediatomb = callPackage ../servers/mediatomb { };
 
-  meguca = callPackage ../servers/meguca { };
-
   memcached = callPackage ../servers/memcached {};
 
   meteor = callPackage ../servers/meteor { };
@@ -15724,6 +16385,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 { };
@@ -15740,17 +16403,21 @@ in
 
   unit = callPackage ../servers/http/unit { };
 
+  ncdns = callPackage ../servers/dns/ncdns {
+    buildGoPackage = buildGo114Package;
+  };
+
   nginx = nginxStable;
 
   nginxStable = callPackage ../servers/http/nginx/stable.nix {
-    perl = null;
+    withPerl = false;
     # We don't use `with` statement here on purpose!
     # See https://github.com/NixOS/nixpkgs/pull/10474/files#r42369334
     modules = [ nginxModules.rtmp nginxModules.dav nginxModules.moreheaders ];
   };
 
   nginxMainline = callPackage ../servers/http/nginx/mainline.nix {
-    perl = null;
+    withPerl = false;
     # We don't use `with` statement here on purpose!
     # See https://github.com/NixOS/nixpkgs/pull/10474/files#r42369334
     modules = [ nginxModules.dav nginxModules.moreheaders ];
@@ -15780,7 +16447,9 @@ in
   openafs = callPackage ../servers/openafs/1.6 { tsmbac = null; ncurses = null; };
   openafs_1_8 = callPackage ../servers/openafs/1.8 { tsmbac = null; ncurses = null; };
 
-  openresty = callPackage ../servers/http/openresty { };
+  openresty = callPackage ../servers/http/openresty {
+    withPerl = false;
+  };
 
   opensmtpd = callPackage ../servers/mail/opensmtpd { };
   opensmtpd-extras = callPackage ../servers/mail/opensmtpd/extras.nix { };
@@ -15791,6 +16460,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 { };
@@ -15867,8 +16538,7 @@ in
   mariadb-connector-c = mariadb-connector-c_3_1;
   mariadb-connector-c_3_1 = callPackage ../servers/sql/mariadb/connector-c/3_1.nix { };
 
-  mariadb-galera = mariadb-galera_25;
-  mariadb-galera_25 = callPackage ../servers/sql/mariadb/galera/25.nix {
+  mariadb-galera = callPackage ../servers/sql/mariadb/galera {
     asio = asio_1_10;
   };
 
@@ -15904,6 +16574,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 { };
@@ -15929,18 +16606,22 @@ in
     inherit (darwin) cctools developer_cmds;
     inherit (darwin.apple_sdk.frameworks) CoreServices;
     boost = boost159;
+    protobuf = protobuf3_7;
   };
 
   mysql80 = callPackage ../servers/sql/mysql/8.0.x.nix {
     inherit (darwin) cctools developer_cmds;
     inherit (darwin.apple_sdk.frameworks) CoreServices;
     boost = boost169; # Configure checks for specific version.
+    protobuf = protobuf3_7;
   };
 
   mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
 
   mssql_jdbc = callPackage ../servers/sql/mssql/jdbc { };
 
+  azuredatastudio = callPackage ../applications/misc/azuredatastudio { };
+
   miniflux = callPackage ../servers/miniflux { };
 
   nagios = callPackage ../servers/monitoring/nagios { };
@@ -16008,6 +16689,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 { };
@@ -16026,7 +16709,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 { };
@@ -16041,10 +16727,13 @@ in
   prometheus-gitlab-ci-pipelines-exporter = callPackage ../servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix { };
   prometheus-haproxy-exporter = callPackage ../servers/monitoring/prometheus/haproxy-exporter.nix { };
   prometheus-json-exporter = callPackage ../servers/monitoring/prometheus/json-exporter.nix { };
+  prometheus-keylight-exporter = callPackage ../servers/monitoring/prometheus/keylight-exporter.nix { };
+  prometheus-lnd-exporter = callPackage ../servers/monitoring/prometheus/lnd-exporter.nix { };
   prometheus-mail-exporter = callPackage ../servers/monitoring/prometheus/mail-exporter.nix { };
   prometheus-mesos-exporter = callPackage ../servers/monitoring/prometheus/mesos-exporter.nix { };
   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 { };
@@ -16055,6 +16744,7 @@ in
   prometheus-postgres-exporter = callPackage ../servers/monitoring/prometheus/postgres-exporter.nix { };
   prometheus-process-exporter = callPackage ../servers/monitoring/prometheus/process-exporter.nix { };
   prometheus-pushgateway = callPackage ../servers/monitoring/prometheus/pushgateway.nix { };
+  prometheus-redis-exporter = callPackage ../servers/monitoring/prometheus/redis-exporter.nix { };
   prometheus-rabbitmq-exporter = callPackage ../servers/monitoring/prometheus/rabbitmq-exporter.nix { };
   prometheus-snmp-exporter = callPackage ../servers/monitoring/prometheus/snmp-exporter.nix { };
   prometheus-tor-exporter = callPackage ../servers/monitoring/prometheus/tor-exporter.nix { };
@@ -16100,9 +16790,10 @@ in
   };
 
   radicale1 = callPackage ../servers/radicale/1.x.nix { };
-  radicale2 = callPackage ../servers/radicale { };
+  radicale2 = callPackage ../servers/radicale/2.x.nix { };
+  radicale3 = callPackage ../servers/radicale/3.x.nix { };
 
-  radicale = radicale2;
+  radicale = radicale3;
 
   rake = callPackage ../development/tools/build-managers/rake { };
 
@@ -16117,11 +16808,13 @@ in
   restya-board = callPackage ../servers/web-apps/restya-board { };
 
   rethinkdb = callPackage ../servers/nosql/rethinkdb {
+    stdenv = clangStdenv;
     libtool = darwin.cctools;
   };
 
+  # Fails to compile with boost >= 1.72
   rippled = callPackage ../servers/rippled {
-    boost = boost17x;
+    boost = boost171;
   };
 
   rippled-validator-keys-tool = callPackage ../servers/rippled/validator-keys-tool.nix {
@@ -16155,7 +16848,7 @@ in
     enableMDNS = true;
     enableDomainController = true;
     enableRegedit = true;
-    enableCephFS = true;
+    enableCephFS = !pkgs.stdenv.hostPlatform.isAarch64;
     enableGlusterFS = true;
   });
 
@@ -16203,6 +16896,8 @@ in
 
   smcroute = callPackage ../servers/smcroute { };
 
+  sogo = callPackage ../servers/web-apps/sogo { };
+
   spawn_fcgi = callPackage ../servers/http/spawn-fcgi { };
 
   spring-boot-cli = callPackage ../development/tools/spring-boot-cli { };
@@ -16242,6 +16937,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 { };
@@ -16263,6 +16960,8 @@ in
     unifiStable;
   unifi = unifiStable;
 
+  urserver = callPackage ../servers/urserver { };
+
   victoriametrics = callPackage ../servers/nosql/victoriametrics { };
 
   virtlyst = libsForQt5.callPackage ../servers/web-apps/virtlyst { };
@@ -16338,11 +17037,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 { };
 
@@ -16447,14 +17146,14 @@ in
 
   cachefilesd = callPackage ../os-specific/linux/cachefilesd { };
 
-  cgmanager = callPackage ../os-specific/linux/cgmanager { };
-
   checkpolicy = callPackage ../os-specific/linux/checkpolicy { };
 
   checksec = callPackage ../os-specific/linux/checksec { };
 
   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 { };
@@ -16476,7 +17175,13 @@ in
 
   criu = callPackage ../os-specific/linux/criu { };
 
-  cryptsetup = callPackage ../os-specific/linux/cryptsetup { };
+  cryptsetup = callPackage ../os-specific/linux/cryptsetup {
+    # cryptsetup only really needs the devmapper component of cryptsetup
+    # but itself is used as a library in systemd (=udev)
+    lvm2 = lvm2.override { udev = null; };
+  };
+
+  cramfsprogs = callPackage ../os-specific/linux/cramfsprogs { };
 
   cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
 
@@ -16501,14 +17206,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
@@ -16517,10 +17222,10 @@ in
 
   fwupd = callPackage ../os-specific/linux/firmware/fwupd { };
 
-  fwupdate = callPackage ../os-specific/linux/firmware/fwupdate { };
-
   fwts = callPackage ../os-specific/linux/fwts { };
 
+  gobi_loader = callPackage ../os-specific/linux/gobi_loader { };
+
   libossp_uuid = callPackage ../development/libraries/libossp-uuid { };
 
   libuuid = if stdenv.isLinux
@@ -16603,6 +17308,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;
   };
@@ -16634,6 +17341,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 { };
@@ -16811,7 +17520,7 @@ in
     ];
   };
 
-  linux_5_5 = callPackage ../os-specific/linux/kernel/linux-5.5.nix {
+  linux_5_7 = callPackage ../os-specific/linux/kernel/linux-5.7.nix {
     kernelPatches = [
       kernelPatches.bridge_stp_helper
       kernelPatches.request_key_helper
@@ -16819,7 +17528,7 @@ in
     ];
   };
 
-  linux_5_6 = callPackage ../os-specific/linux/kernel/linux-5.6.nix {
+  linux_5_8 = callPackage ../os-specific/linux/kernel/linux-5.8.nix {
     kernelPatches = [
       kernelPatches.bridge_stp_helper
       kernelPatches.request_key_helper
@@ -16849,6 +17558,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
@@ -16953,10 +17670,16 @@ in
 
     rtl8814au = callPackage ../os-specific/linux/rtl8814au { };
 
+    rtl88xxau-aircrack = callPackage ../os-specific/linux/rtl88xxau-aircrack { };
+
     rtl8821au = callPackage ../os-specific/linux/rtl8821au { };
 
     rtl8821ce = callPackage ../os-specific/linux/rtl8821ce { };
 
+    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 { };
@@ -17018,6 +17741,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 {
@@ -17035,7 +17760,8 @@ in
   linux = linuxPackages.kernel;
 
   # Update this when adding the newest kernel major version!
-  linuxPackages_latest = linuxPackages_5_6;
+  # And update linux_latest_for_hardened below if the patches are already available
+  linuxPackages_latest = linuxPackages_5_8;
   linux_latest = linuxPackages_latest.kernel;
 
   # Build the kernel modules for the some of the kernels.
@@ -17050,8 +17776,8 @@ in
   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_5 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_5);
-  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:
   # - Update linuxPackages_latest to the latest version
@@ -17086,28 +17812,32 @@ in
 
   linuxPackages_latest_xen_dom0 = recurseIntoAttrs (linuxPackagesFor (pkgs.linux_latest.override { features.xen_dom0=true; }));
 
-  # Hardened linux
-  hardenedLinuxPackagesFor = kernel: linuxPackagesFor (kernel.override {
-    structuredExtraConfig = import ../os-specific/linux/kernel/hardened/config.nix {
-      inherit stdenv;
-      inherit (kernel) version;
-    };
-    kernelPatches = kernel.kernelPatches ++ [
-      kernelPatches.tag_hardened
-      kernelPatches.hardened.${kernel.meta.branch}
-    ];
-    modDirVersionArg = kernel.modDirVersion + "-hardened";
+  # 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_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 {
+        inherit stdenv;
+        inherit (kernel) version;
+      };
+      kernelPatches = kernel.kernelPatches ++ [
+        kernelPatches.tag_hardened
+        kernelPatches.hardened.${kernel.meta.branch}
+      ];
+      modDirVersionArg = kernel.modDirVersion + "-hardened";
   });
 
-  linuxPackages_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor pkgs.linux);
+  linuxPackages_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor pkgs.linux { });
   linux_hardened = linuxPackages_hardened.kernel;
 
-  linuxPackages_latest_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor pkgs.linux_latest);
+  linuxPackages_latest_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor pkgs.linux_latest { });
   linux_latest_hardened = linuxPackages_latest_hardened.kernel;
 
-  linuxPackages_xen_dom0_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor (pkgs.linux.override { features.xen_dom0=true; }));
+  linuxPackages_xen_dom0_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor pkgs.linux { features.xen_dom0=true; });
 
-  linuxPackages_latest_xen_dom0_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor (pkgs.linux_latest.override { features.xen_dom0=true; }));
+  linuxPackages_latest_xen_dom0_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor pkgs.linux_latest { features.xen_dom0=true; });
 
   # Hardkernel (Odroid) kernels.
   linuxPackages_hardkernel_4_14 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_hardkernel_4_14);
@@ -17120,6 +17850,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 {});
 
@@ -17169,6 +17902,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 { };
@@ -17202,6 +17943,12 @@ in
   lsscsi = callPackage ../os-specific/linux/lsscsi { };
 
   lvm2 = callPackage ../os-specific/linux/lvm2 { };
+  lvm2_dmeventd = callPackage ../os-specific/linux/lvm2 {
+    enableDmeventd = true;
+    enableCmdlib = true;
+  };
+
+  mbelib = callPackage ../development/libraries/audio/mbelib { };
 
   mbpfan = callPackage ../os-specific/linux/mbpfan { };
 
@@ -17264,6 +18011,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 { };
@@ -17272,6 +18021,8 @@ in
 
   go-symbols = callPackage ../development/tools/go-symbols { };
 
+  go-toml = callPackage ../development/tools/go-toml { };
+
   go-outline = callPackage ../development/tools/go-outline { };
 
   gocode = callPackage ../development/tools/gocode { };
@@ -17286,6 +18037,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 { };
@@ -17308,12 +18061,16 @@ 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 { };
 
   gopls = callPackage ../development/tools/gopls { };
 
+  gore = callPackage ../development/tools/gore { };
+
   gotests = callPackage ../development/tools/gotests { };
 
   gotestsum = callPackage ../development/tools/gotestsum { };
@@ -17356,6 +18113,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 { };
@@ -17437,8 +18196,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 { };
@@ -17467,7 +18224,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 { };
 
@@ -17513,17 +18270,6 @@ in
   };
   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
-      '';
-  }));
-
   systemd-wait = callPackage ../os-specific/linux/systemd-wait { };
 
   sysvinit = callPackage ../os-specific/linux/sysvinit { };
@@ -17577,6 +18323,7 @@ in
     ubootRaspberryPiZero
     ubootRock64
     ubootRockPro64
+    ubootROCPCRK3399
     ubootSheevaplug
     ubootSopine
     ubootUtilite
@@ -17664,6 +18411,8 @@ in
 
   ### DATA
 
+  _3270font = callPackage ../data/fonts/3270font { };
+
   adapta-backgrounds = callPackage ../data/misc/adapta-backgrounds { };
 
   adapta-gtk-theme = callPackage ../data/themes/adapta { };
@@ -17680,10 +18429,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 { };
@@ -17721,6 +18476,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 { };
@@ -17747,6 +18504,8 @@ in
 
   cascadia-code = callPackage ../data/fonts/cascadia-code { };
 
+  cde-gtk-theme = callPackage ../data/themes/cdetheme { };
+
   charis-sil = callPackage ../data/fonts/charis-sil { };
 
   cherry = callPackage ../data/fonts/cherry { inherit (xorg) fonttosfnt mkfontdir; };
@@ -17848,6 +18607,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 { };
@@ -17961,10 +18728,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 {};
@@ -17990,6 +18754,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 {};
@@ -18044,6 +18810,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 { };
@@ -18054,6 +18822,8 @@ in
 
   manrope = callPackage ../data/fonts/manrope { };
 
+  marwaita = callPackage ../data/themes/marwaita { };
+
   matcha-gtk-theme = callPackage ../data/themes/matcha { };
 
   materia-theme = callPackage ../data/themes/materia-theme { };
@@ -18074,6 +18844,8 @@ in
 
   medio = callPackage ../data/fonts/medio { };
 
+  mint-x-icons = callPackage ../data/icons/mint-x-icons { };
+
   mno16 = callPackage ../data/fonts/mno16 { };
 
   mnist = callPackage ../data/machine-learning/mnist { };
@@ -18113,7 +18885,7 @@ in
   nordic-polar = callPackage ../data/themes/nordic-polar { };
 
   inherit (callPackages ../data/fonts/noto-fonts {})
-    noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra;
+    noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-emoji-blob-bin noto-fonts-extra;
 
   nullmailer = callPackage ../servers/mail/nullmailer {
     stdenv = gccStdenv;
@@ -18226,6 +18998,8 @@ in
 
   sarasa-gothic = callPackage ../data/fonts/sarasa-gothic { };
 
+  scheme-manpages = callPackage ../data/documentation/scheme-manpages { };
+
   scowl = callPackage ../data/misc/scowl { };
 
   seshat = callPackage ../data/fonts/seshat { };
@@ -18248,6 +19022,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 { };
@@ -18340,6 +19116,8 @@ in
 
   tamsyn = callPackage ../data/fonts/tamsyn { inherit (buildPackages.xorg) mkfontscale; };
 
+  tamzen = callPackage ../data/fonts/tamzen { inherit (buildPackages.xorg) mkfontscale; };
+
   tango-icon-theme = callPackage ../data/icons/tango-icon-theme {
     gtk = res.gtk2;
   };
@@ -18389,6 +19167,8 @@ in
 
   tzdata = callPackage ../data/misc/tzdata { };
 
+  ubuntu-themes = callPackage ../data/themes/ubuntu-themes { };
+
   ubuntu_font_family = callPackage ../data/fonts/ubuntu-font-family { };
 
   ucs-fonts = callPackage ../data/fonts/ucs-fonts
@@ -18532,6 +19312,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 { };
@@ -18539,7 +19321,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 { };
@@ -18567,6 +19351,8 @@ in
 
   ardour = callPackage ../applications/audio/ardour { };
 
+  ardour_5 = lowPrio (callPackage ../applications/audio/ardour/5.nix { });
+
   arelle = with python3Packages; toPythonApplication arelle;
 
   argo = callPackage ../applications/networking/cluster/argo { };
@@ -18579,6 +19365,10 @@ in
 
   arora = callPackage ../applications/networking/browsers/arora { };
 
+  asuka = callPackage ../applications/networking/browsers/asuka {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   artha = callPackage ../applications/misc/artha { };
 
   atlassian-cli = callPackage ../applications/office/atlassian-cli { };
@@ -18598,8 +19388,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 { };
 
@@ -18607,12 +19397,18 @@ in
 
   autokey = callPackage ../applications/office/autokey { };
 
+  autotalent = callPackage ../applications/audio/autotalent { };
+
   autotrace = callPackage ../applications/graphics/autotrace {};
 
+  av-98 = callPackage ../applications/networking/browsers/av-98 { };
+
   avocode = callPackage ../applications/graphics/avocode {};
 
   azpainter = callPackage ../applications/graphics/azpainter { };
 
+  bambootracker = libsForQt5.callPackage ../applications/audio/bambootracker { };
+
   cadence =  qt5.callPackage ../applications/audio/cadence { };
 
   cheesecutter = callPackage ../applications/audio/cheesecutter { };
@@ -18679,21 +19475,21 @@ in
 
   batik = callPackage ../applications/graphics/batik { };
 
+  batsignal = callPackage ../applications/misc/batsignal { };
+
   baudline = callPackage ../applications/audio/baudline { };
 
+  bb =  callPackage ../applications/misc/bb { };
 
-  bazaar = callPackage ../applications/version-management/bazaar { };
+  bchoppr = callPackage ../applications/audio/bchoppr { };
 
-  bazaarTools = callPackage ../applications/version-management/bazaar/tools.nix { };
-
-  bb =  callPackage ../applications/misc/bb { };
+  berry = callPackage ../applications/window-managers/berry { };
 
   bevelbar = callPackage ../applications/window-managers/bevelbar { };
 
   bibletime = libsForQt5.callPackage ../applications/misc/bibletime { };
 
   bino3d = libsForQt5.callPackage ../applications/video/bino3d {
-    ffmpeg = ffmpeg_4;
     glew = glew110;
   };
 
@@ -18761,6 +19557,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 { };
@@ -18771,6 +19569,10 @@ in
 
   bs1770gain = callPackage ../applications/audio/bs1770gain { };
 
+  bjumblr = callPackage ../applications/audio/bjumblr { };
+
+  bschaffl = callPackage ../applications/audio/bschaffl { };
+
   bsequencer = callPackage ../applications/audio/bsequencer { };
 
   bslizr = callPackage ../applications/audio/bslizr { };
@@ -18813,6 +19615,8 @@ in
 
   carla = qt5.callPackage ../applications/audio/carla { };
 
+  castor = callPackage ../applications/networking/browsers/castor { };
+
   catimg = callPackage ../tools/misc/catimg { };
 
   catt = python3Packages.callPackage ../applications/video/catt { };
@@ -18842,8 +19646,6 @@ in
     inherit (python3Packages) python wrapPython pygments markdown;
   };
 
-  cgminer = callPackage ../applications/misc/cgminer { };
-
   chirp = callPackage ../applications/radio/chirp { };
 
   browsh = callPackage ../applications/networking/browsers/browsh { };
@@ -18856,8 +19658,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"; });
@@ -18895,6 +19695,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 { };
@@ -18940,6 +19742,8 @@ in
   codeblocks = callPackage ../applications/editors/codeblocks { };
   codeblocksFull = codeblocks.override { contribPlugins = true; };
 
+  convos = callPackage ../applications/networking/irc/convos { };
+
   comical = callPackage ../applications/graphics/comical { };
 
   containerd = callPackage ../applications/virtualization/containerd { };
@@ -18950,7 +19754,9 @@ in
 
   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 { };
 
@@ -18960,7 +19766,7 @@ in
 
   ctop = callPackage ../tools/system/ctop { };
 
-  cubicsdr = callPackage ../applications/radio/cubicsdr { wxGTK = wxGTK31; };
+  cubicsdr = callPackage ../applications/radio/cubicsdr { };
 
   cum = callPackage ../applications/misc/cum { };
 
@@ -19030,7 +19836,7 @@ in
     inherit (pkgs.gnome2) libart_lgpl libgnomeui;
   };
 
-  direwolf = callPackage ../applications/misc/direwolf { };
+  direwolf = callPackage ../applications/radio/direwolf { };
 
   dirt = callPackage ../applications/audio/dirt {};
 
@@ -19089,8 +19895,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 { };
@@ -19170,7 +19974,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 { };
 
@@ -19178,11 +19982,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;
@@ -19194,14 +19999,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;
@@ -19213,8 +20018,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;
   }));
@@ -19250,12 +20056,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;
 
@@ -19302,12 +20106,16 @@ in
 
   evilvte = callPackage ../applications/misc/evilvte (config.evilvte or {});
 
+  evilpixie = libsForQt5.callPackage ../applications/graphics/evilpixie { };
+
   exercism = callPackage ../applications/misc/exercism { };
 
   go-motion = callPackage ../development/tools/go-motion { };
 
   gpg-mdp = callPackage ../applications/misc/gpg-mdp { };
 
+  gspeech = callPackage ../applications/audio/gspeech { };
+
   icesl = callPackage ../applications/misc/icesl { };
 
   keepassx = callPackage ../applications/misc/keepassx { };
@@ -19316,6 +20124,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 { };
 
@@ -19333,6 +20142,8 @@ in
 
   fasttext = callPackage ../applications/science/machine-learning/fasttext { };
 
+  fbmenugen = callPackage ../applications/misc/fbmenugen { };
+
   fbpanel = callPackage ../applications/window-managers/fbpanel { };
 
   fbreader = callPackage ../applications/misc/fbreader {
@@ -19351,6 +20162,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 { };
@@ -19385,8 +20204,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 { };
@@ -19407,6 +20230,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 { };
 
@@ -19553,7 +20378,7 @@ in
 
   firefoxPackages = recurseIntoAttrs (callPackage ../applications/networking/browsers/firefox/packages.nix {
     callPackage = pkgs.newScope {
-      inherit (gnome2) libIDL;
+      inherit (rustPackages_1_44) cargo rustc;
       libpng = libpng_apng;
       python = python2;
       gnused = gnused_422;
@@ -19566,16 +20391,16 @@ 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";
     generated = import ../applications/networking/browsers/firefox-bin/release_sources.nix;
-    gconf = pkgs.gnome2.GConf;
-    inherit (pkgs.gnome2) libgnome libgnomeui;
   };
 
   firefox-bin = wrapFirefox firefox-bin-unwrapped {
@@ -19587,8 +20412,6 @@ in
   firefox-beta-bin-unwrapped = firefox-bin-unwrapped.override {
     channel = "beta";
     generated = import ../applications/networking/browsers/firefox-bin/beta_sources.nix;
-    gconf = pkgs.gnome2.GConf;
-    inherit (pkgs.gnome2) libgnome libgnomeui;
   };
 
   firefox-beta-bin = res.wrapFirefox firefox-beta-bin-unwrapped {
@@ -19600,8 +20423,6 @@ in
   firefox-devedition-bin-unwrapped = callPackage ../applications/networking/browsers/firefox-bin {
     channel = "devedition";
     generated = import ../applications/networking/browsers/firefox-bin/devedition_sources.nix;
-    gconf = pkgs.gnome2.GConf;
-    inherit (pkgs.gnome2) libgnome libgnomeui;
   };
 
   firefox-devedition-bin = res.wrapFirefox firefox-devedition-bin-unwrapped {
@@ -19639,7 +20460,11 @@ in
 
   fractal = callPackage ../applications/networking/instant-messengers/fractal { };
 
-  freecad = qt5.callPackage ../applications/graphics/freecad { mpi = openmpi; };
+  freecad = qt5.callPackage ../applications/graphics/freecad {
+    mpi = openmpi;
+    # pyside2 5.12 is broken under python 3.8
+    python3Packages = python37Packages;
+  };
 
   freemind = callPackage ../applications/misc/freemind { };
 
@@ -19665,6 +20490,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 { };
@@ -19701,7 +20528,7 @@ in
 
   gitAndTools = recurseIntoAttrs (callPackage ../applications/version-management/git-and-tools {});
 
-  inherit (gitAndTools) git gitFull gitSVN git-cola svn2git git-radar git-secret git-secrets transcrypt git-crypt ghq;
+  inherit (gitAndTools) git gitFull gitSVN git-cola git-doc svn2git git-radar git-secret git-secrets transcrypt git-crypt ghq;
 
   gitMinimal = git.override {
     withManual = false;
@@ -19715,8 +20542,12 @@ in
 
   git-review = callPackage ../applications/version-management/git-review { };
 
+  github-cli = gitAndTools.gh;
+
   gitolite = callPackage ../applications/version-management/gitolite { };
 
+  gitoxide = callPackage ../applications/version-management/gitoxide { };
+
   inherit (gnome3) gitg;
 
   gmrun = callPackage ../applications/misc/gmrun {};
@@ -19733,6 +20564,12 @@ in
 
   libquvi = callPackage ../applications/video/quvi/library.nix { };
 
+  librespot = callPackage ../applications/audio/librespot {
+    withALSA = stdenv.isLinux;
+    withPulseAudio = config.pulseaudio or stdenv.isLinux;
+    withPortAudio = stdenv.isDarwin;
+  };
+
   linssid = libsForQt5.callPackage ../applications/networking/linssid { };
 
   lollypop = callPackage ../applications/audio/lollypop { };
@@ -19770,6 +20607,8 @@ in
 
   giada = callPackage ../applications/audio/giada {};
 
+  gitit = callPackage ../applications/misc/gitit {};
+
   gkrellm = callPackage ../applications/misc/gkrellm {
     inherit (darwin) IOKit;
   };
@@ -19790,6 +20629,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 { };
@@ -19881,12 +20722,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 { };
@@ -19897,10 +20742,14 @@ in
 
   hakuneko = callPackage ../tools/misc/hakuneko { };
 
+  hamster = callPackage ../applications/misc/hamster { };
+
   hashit = callPackage ../tools/misc/hashit { };
 
   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 { };
@@ -19992,6 +20841,8 @@ in
 
   leftwm = callPackage ../applications/window-managers/leftwm { };
 
+  lwm = callPackage ../applications/window-managers/lwm { };
+
   musikcube = callPackage ../applications/audio/musikcube {};
 
   pinboard-notes-backup = haskell.lib.overrideCabal
@@ -20013,6 +20864,8 @@ in
 
   spectmorph = callPackage ../applications/audio/spectmorph { };
 
+  smallwm = callPackage ../applications/window-managers/smallwm { };
+
   spectrwm = callPackage ../applications/window-managers/spectrwm { };
 
   spectral = qt5.callPackage ../applications/networking/instant-messengers/spectral { };
@@ -20036,6 +20889,7 @@ in
   swaybg = callPackage ../applications/window-managers/sway/bg.nix { };
   swayidle = callPackage ../applications/window-managers/sway/idle.nix { };
   swaylock = callPackage ../applications/window-managers/sway/lock.nix { };
+  sway-contrib = recurseIntoAttrs (callPackages ../applications/window-managers/sway/contrib.nix { });
 
   swaylock-fancy = callPackage ../applications/window-managers/sway/lock-fancy.nix { };
 
@@ -20045,6 +20899,8 @@ in
     pulseSupport = config.pulseaudio or false;
   };
 
+  hikari = callPackage ../applications/window-managers/hikari { };
+
   i3 = callPackage ../applications/window-managers/i3 {
     xcb-util-cursor = if stdenv.isDarwin then xcb-util-cursor-HEAD else xcb-util-cursor;
   };
@@ -20071,6 +20927,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 {
@@ -20111,6 +20969,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 {
@@ -20175,7 +21037,7 @@ in
 
   inherit (nodePackages) imapnotify;
 
-  img2pdf = callPackage ../applications/misc/img2pdf { };
+  img2pdf = with python3Packages; toPythonApplication img2pdf;
 
   imgcat = callPackage ../applications/graphics/imgcat { };
 
@@ -20184,10 +21046,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 {
@@ -20212,10 +21080,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 { };
@@ -20281,6 +21161,8 @@ in
 
   kanshi = callPackage ../tools/misc/kanshi { };
 
+  kapitonov-plugins-pack = callPackage ../applications/audio/kapitonov-plugins-pack { };
+
   kdeApplications =
     let
       mkApplications = import ../applications/kde;
@@ -20292,13 +21174,15 @@ in
       recurseIntoAttrs (makeOverridable mkApplications attrs);
 
   inherit (kdeApplications)
-    akonadi akregator ark dolphin dragon elisa ffmpegthumbs filelight gwenview k3b
-    kaddressbook 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 kapptemplate kate kcachegrind kcalc kcharselect kcolorchooser kdenlive kdf kdialog
+    keditbookmarks kfind kfloppy kget kgpg khelpcenter kig kleopatra kmail kmix kmplot kolourpaint kompare konsole yakuake
+    kpkpass kitinerary kontact korganizer krdc krfb ksquares ksystemlog ktouch kwalletmanager marble minuet okular picmi spectacle;
 
   okteta = libsForQt5.callPackage ../applications/editors/okteta { };
 
+  k4dirstat = libsForQt5.callPackage ../applications/misc/k4dirstat { };
+
   kdeconnect = libsForQt5.callPackage ../applications/misc/kdeconnect { };
 
   kdecoration-viewer = libsForQt5.callPackage ../tools/misc/kdecoration-viewer { };
@@ -20308,7 +21192,7 @@ in
   kdevelop-pg-qt = libsForQt5.callPackage ../applications/editors/kdevelop5/kdevelop-pg-qt.nix { };
 
   kdevelop-unwrapped = libsForQt5.callPackage ../applications/editors/kdevelop5/kdevelop.nix {
-    llvmPackages = llvmPackages_7;
+    llvmPackages = llvmPackages_10;
   };
 
   kdev-php = libsForQt5.callPackage ../applications/editors/kdevelop5/kdev-php.nix { };
@@ -20358,6 +21242,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 {
@@ -20373,6 +21259,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;
   };
@@ -20433,6 +21321,8 @@ in
 
   ladspa-sdk = callPackage ../applications/audio/ladspa-sdk { };
 
+  lazpaint = callPackage ../applications/graphics/lazpaint { };
+
   caps = callPackage ../applications/audio/caps { };
 
   lastfmsubmitd = callPackage ../applications/audio/lastfmsubmitd { };
@@ -20476,6 +21366,14 @@ in
     };
   };
 
+  libreoffice-qt = lowPrio (callPackage ../applications/office/libreoffice/wrapper.nix {
+    libreoffice = libsForQt5.callPackage ../applications/office/libreoffice
+      (libreoffice-args // {
+        kdeIntegration = true;
+        variant = "fresh";
+      });
+  });
+
   libreoffice-fresh = lowPrio (callPackage ../applications/office/libreoffice/wrapper.nix {
     libreoffice = callPackage ../applications/office/libreoffice
       (libreoffice-args // {
@@ -20487,6 +21385,7 @@ in
   libreoffice-still = lowPrio (callPackage ../applications/office/libreoffice/wrapper.nix {
     libreoffice = callPackage ../applications/office/libreoffice
       (libreoffice-args // {
+        icu = icu64;
         variant = "still";
       });
   });
@@ -20506,17 +21405,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 {};
@@ -20531,7 +21427,9 @@ in
 
   linuxsampler = callPackage ../applications/audio/linuxsampler { };
 
-  llpp = ocamlPackages.callPackage ../applications/misc/llpp { };
+  llpp = callPackage ../applications/misc/llpp {
+    inherit (ocaml-ng.ocamlPackages_4_09) ocaml;
+  };
 
   lmms = libsForQt5.callPackage ../applications/audio/lmms {
     lame = null;
@@ -20585,16 +21483,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 { };
@@ -20628,7 +21530,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 { };
@@ -20637,6 +21538,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 {
@@ -20665,6 +21568,10 @@ in
 
   meld = callPackage ../applications/version-management/meld { };
 
+  meli = callPackage ../applications/networking/mailreaders/meli { };
+
+  melonDS = callPackage ../misc/emulators/melonDS { };
+
   meme = callPackage ../applications/graphics/meme { };
 
   mendeley = libsForQt5.callPackage ../applications/office/mendeley {
@@ -20750,6 +21657,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 { };
@@ -20777,7 +21686,23 @@ in
     python = python3;
   };
 
-  inherit (mopidyPackages) mopidy mopidy-gmusic mopidy-local-images mopidy-local-sqlite mopidy-spotify mopidy-moped mopidy-mopify mopidy-spotify-tunigo mopidy-youtube mopidy-soundcloud mopidy-musicbox-webclient mopidy-iris mopidy-mpd;
+  inherit (mopidyPackages)
+    mopidy
+    mopidy-gmusic
+    mopidy-iris
+    mopidy-local-images
+    mopidy-local-sqlite
+    mopidy-moped
+    mopidy-mopify
+    mopidy-mpd
+    mopidy-mpris
+    mopidy-musicbox-webclient
+    mopidy-somafm
+    mopidy-soundcloud
+    mopidy-spotify
+    mopidy-spotify-tunigo
+    mopidy-tunein
+    mopidy-youtube;
 
   motif = callPackage ../development/libraries/motif { };
 
@@ -20825,6 +21750,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 { };
@@ -20837,16 +21764,20 @@ in
     libdvdnav = libdvdnav_4_2_1;
   } // (config.mplayer or {}));
 
-  mpv = callPackage ../applications/video/mpv {
+  mpv-unwrapped = callPackage ../applications/video/mpv {
     inherit lua;
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa CoreAudio MediaPlayer;
   };
 
-  mpv-with-scripts = callPackage ../applications/video/mpv/wrapper.nix { };
+  # Wraps without trigerring a rebuild
+  wrapMpv = callPackage ../applications/video/mpv/wrapper.nix { };
+  mpv = wrapMpv mpv-unwrapped {};
 
   mpvScripts = recurseIntoAttrs {
     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 { };
@@ -20911,10 +21842,14 @@ in
 
   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;
   };
 
+  nixos-shell = callPackage ../tools/virtualization/nixos-shell {};
+
   node-problem-detector = callPackage ../applications/networking/cluster/node-problem-detector { };
 
   ninjas2 = callPackage ../applications/audio/ninjas2 {};
@@ -20924,6 +21859,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 { };
@@ -20934,10 +21871,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 { };
@@ -20979,6 +21921,10 @@ in
 
   polyphone = libsForQt5.callPackage ../applications/audio/polyphone { };
 
+  portfolio = callPackage ../applications/office/portfolio {
+    jre = openjdk11;
+  };
+
   ptex = callPackage ../development/libraries/ptex {};
 
   qbec = callPackage ../applications/networking/cluster/qbec { };
@@ -21086,9 +22032,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 { };
 
@@ -21104,7 +22048,9 @@ in
 
   navit = libsForQt5.callPackage ../applications/misc/navit { };
 
-  netbeans = callPackage ../applications/editors/netbeans { };
+  netbeans = callPackage ../applications/editors/netbeans {
+    jdk = jdk11;
+  };
 
   ncdu = callPackage ../tools/misc/ncdu { };
 
@@ -21158,7 +22104,7 @@ in
 
   obs-linuxbrowser = callPackage ../applications/video/obs-studio/linuxbrowser.nix { };
 
-  obs-studio = libsForQt5.callPackage ../applications/video/obs-studio { ffmpeg = ffmpeg_4; };
+  obs-studio = libsForQt5.callPackage ../applications/video/obs-studio { };
 
   obs-wlrobs = callPackage ../applications/video/obs-studio/wlrobs.nix { };
 
@@ -21166,6 +22112,8 @@ in
 
   obs-ndi = callPackage ../applications/video/obs-studio/obs-ndi.nix { };
 
+  obsidian = callPackage ../applications/misc/obsidian { };
+
   octoprint = callPackage ../applications/misc/octoprint { };
 
   octoprint-plugins = throw ''octoprint-plugins are now part of the octoprint.python.pkgs package set.'';
@@ -21224,6 +22172,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 {};
@@ -21252,6 +22205,8 @@ in
     stdenv = gcc7Stdenv;
   };
 
+  webbrowser = callPackage ../applications/networking/browsers/webbrowser {};
+
   pamix = callPackage ../applications/audio/pamix { };
 
   pamixer = callPackage ../applications/audio/pamixer { };
@@ -21406,6 +22361,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 { };
@@ -21452,7 +22409,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 { };
 
@@ -21481,8 +22438,6 @@ in
 
   pybitmessage = callPackage ../applications/networking/instant-messengers/pybitmessage { };
 
-  pythonmagick = callPackage ../applications/graphics/PythonMagick { };
-
   qbittorrent = libsForQt5.callPackage ../applications/networking/p2p/qbittorrent { };
   qbittorrent-nox = qbittorrent.override {
     guiSupport = false;
@@ -21561,6 +22516,8 @@ in
     };
   };
 
+  qsudo = libsForQt5.callPackage ../applications/misc/qsudo { };
+
   qsynth = libsForQt5.callPackage ../applications/audio/qsynth { };
 
   qtbitcointrader = libsForQt5.callPackage ../applications/misc/qtbitcointrader { };
@@ -21700,8 +22657,6 @@ in
 
   ripser = callPackage ../applications/science/math/ripser { };
 
-  rkt = callPackage ../applications/virtualization/rkt { };
-
   rkdeveloptool = callPackage ../misc/rkdeveloptool { };
 
   rofi-unwrapped = callPackage ../applications/misc/rofi { };
@@ -21729,6 +22684,8 @@ in
 
   rtl_433 = callPackage ../applications/radio/rtl_433 { };
 
+  rtl-ais = callPackage ../applications/radio/rtl-ais { };
+
   rtl-sdr = callPackage ../applications/radio/rtl-sdr { };
 
   rtv = callPackage ../applications/misc/rtv { };
@@ -21751,6 +22708,8 @@ in
 
   udiskie = callPackage ../applications/misc/udiskie { };
 
+  sacc = callPackage ../applications/networking/gopher/sacc { };
+
   sakura = callPackage ../applications/misc/sakura { };
 
   sayonara = libsForQt5.callPackage ../applications/audio/sayonara { };
@@ -21895,9 +22854,9 @@ in
 
   dropbox-cli = callPackage ../applications/networking/dropbox/cli.nix { };
 
-  maestral = callPackage ../applications/networking/maestral { };
+  maestral = with python3Packages; toPythonApplication maestral;
 
-  maestral-gui = libsForQt5.callPackage ../applications/networking/maestral { withGui = true; };
+  maestral-gui = libsForQt5.callPackage ../applications/networking/maestral-qt { };
 
   insync = callPackage ../applications/networking/insync { };
 
@@ -21986,9 +22945,7 @@ in
 
   soxr = callPackage ../applications/misc/audio/soxr { };
 
-  spek = callPackage ../applications/audio/spek {
-    ffmpeg = ffmpeg_2;
-  };
+  spek = callPackage ../applications/audio/spek { };
 
   spotify = callPackage ../applications/audio/spotify {
     libgcrypt = libgcrypt_1_5;
@@ -22012,6 +22969,8 @@ in
     git = gitMinimal;
   };
 
+  sslyze = with python3Packages; toPythonApplication sslyze;
+
   ssr = callPackage ../applications/audio/soundscape-renderer {};
 
   ssrc = callPackage ../applications/audio/ssrc { };
@@ -22022,10 +22981,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 {};
 
@@ -22059,6 +23015,8 @@ in
     pythonBindings = true;
   });
 
+  sublime-music = callPackage ../applications/audio/sublime-music { };
+
   subunit = callPackage ../development/libraries/subunit { };
 
   surf = callPackage ../applications/networking/browsers/surf { gtk = gtk2; };
@@ -22078,9 +23036,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
@@ -22126,14 +23087,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 { };
 
@@ -22143,6 +23110,8 @@ in
 
   taskwarrior = callPackage ../applications/misc/taskwarrior { };
 
+  dstask = callPackage ../applications/misc/dstask { };
+
   tasksh = callPackage ../applications/misc/tasksh { };
 
   taskserver = callPackage ../servers/misc/taskserver { };
@@ -22200,18 +23169,26 @@ in
 
   thonny = callPackage ../applications/editors/thonny { };
 
-  thunderbird = callPackage ../applications/networking/mailreaders/thunderbird {
-    inherit (gnome2) libIDL;
+  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 {
-    gconf = pkgs.gnome2.GConf;
-    inherit (pkgs.gnome2) libgnome libgnomeui;
-  };
+  thunderbird-bin-78 = callPackage ../applications/networking/mailreaders/thunderbird-bin { };
+
+  thunderbird-bin = callPackage ../applications/networking/mailreaders/thunderbird-bin/68.nix { };
 
   ticpp = callPackage ../development/libraries/ticpp { };
 
@@ -22231,7 +23208,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 { };
 
@@ -22290,6 +23269,7 @@ in
 
   transmission = callPackage ../applications/networking/p2p/transmission { };
   transmission-gtk = transmission.override { enableGTK3 = true; };
+  transmission-qt = transmission.override { enableQt = true; };
 
   transmission-remote-cli = callPackage ../applications/networking/p2p/transmission-remote-cli {};
   transmission-remote-gtk = callPackage ../applications/networking/p2p/transmission-remote-gtk {};
@@ -22336,6 +23316,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 { };
@@ -22348,6 +23330,7 @@ in
   unigine-valley = callPackage ../applications/graphics/unigine-valley { };
 
   unison = callPackage ../applications/networking/sync/unison {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_09;
     enableX11 = config.unison.enableX11 or true;
   };
 
@@ -22375,11 +23358,9 @@ in
 
   vcv-rack = callPackage ../applications/audio/vcv-rack { };
 
-  vdirsyncer = callPackage ../tools/misc/vdirsyncer {
-    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
-  };
+  vdirsyncer = with python3Packages; toPythonApplication vdirsyncer;
 
-  vdirsyncerStable = callPackage ../tools/misc/vdirsyncer/stable.nix { };
+  vdirsyncerStable = with python3Packages; toPythonApplication vdirsyncerStable;
 
   vdpauinfo = callPackage ../tools/X11/vdpauinfo { };
 
@@ -22433,6 +23414,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;
   };
@@ -22463,6 +23446,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;
@@ -22526,6 +23511,8 @@ in
 
   vmpk = callPackage ../applications/audio/vmpk { };
 
+  vocproc = callPackage ../applications/audio/vocproc { };
+
   vnstat = callPackage ../applications/networking/vnstat { };
 
   vocal = callPackage ../applications/audio/vocal { };
@@ -22546,12 +23533,16 @@ in
 
   vscodium = callPackage ../applications/editors/vscode/vscodium.nix { };
 
+  code-server = callPackage ../servers/code-server { };
+
   vue = callPackage ../applications/misc/vue { };
 
   vuze = callPackage ../applications/networking/p2p/vuze { };
 
   vwm = callPackage ../applications/window-managers/vwm { };
 
+  yeahwm = callPackage ../applications/window-managers/yeahwm { };
+
   vym = qt5.callPackage ../applications/misc/vym { };
 
   waon = callPackage ../applications/audio/waon { };
@@ -22604,6 +23595,8 @@ in
 
   wayvnc = callPackage ../applications/networking/remote/wayvnc { };
 
+  webcamoid = libsForQt5.callPackage ../applications/video/webcamoid { };
+
   webmacs = libsForQt5.callPackage ../applications/networking/browsers/webmacs {};
 
   webtorrent_desktop = callPackage ../applications/video/webtorrent_desktop {};
@@ -22741,6 +23734,7 @@ in
       ++ optional (cfg.enableMupen64Plus or false) mupen64plus
       ++ optional (cfg.enableNeoCD or false) neocd
       ++ optional (cfg.enableNestopia or false) nestopia
+      ++ optional (cfg.enableNP2kai or false) np2kai
       ++ optional (cfg.enableO2EM or false) o2em
       ++ optional (cfg.enableOpera or false) opera
       ++ optional (cfg.enableParallelN64 or false) parallel-n64
@@ -22839,8 +23833,6 @@ in
     libpng = libpng12;
   };
 
-  xara = callPackage ../applications/graphics/xara { };
-
   xastir = callPackage ../applications/misc/xastir {
     rastermagick = imagemagick;
     inherit (xorg) libXt;
@@ -22906,6 +23898,8 @@ in
 
   xdg-desktop-portal-gtk = callPackage ../development/libraries/xdg-desktop-portal-gtk { };
 
+  xdg-desktop-portal-wlr = callPackage ../development/libraries/xdg-desktop-portal-wlr { };
+
   xdg-user-dirs = callPackage ../tools/X11/xdg-user-dirs { };
 
   xdg_utils = callPackage ../tools/X11/xdg-utils {
@@ -23054,6 +24048,8 @@ in
 
   xmacro = callPackage ../tools/X11/xmacro { };
 
+  xmenu = callPackage ../applications/misc/xmenu { };
+
   xmlcopyeditor = callPackage ../applications/editors/xmlcopyeditor { };
 
   xmp = callPackage ../applications/audio/xmp { };
@@ -23098,6 +24094,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 { };
@@ -23159,6 +24157,11 @@ in
 
   bitcoin  = libsForQt5.callPackage ../applications/blockchains/bitcoin.nix { miniupnpc = miniupnpc_2; withGui = true; };
   bitcoind = callPackage ../applications/blockchains/bitcoin.nix { miniupnpc = miniupnpc_2; withGui = false; };
+
+  bitcoind-knots = callPackage ../applications/blockchains/bitcoin-knots.nix { miniupnpc = miniupnpc_2; };
+
+  cgminer = callPackage ../applications/blockchains/cgminer { };
+
   clightning = callPackage ../applications/blockchains/clightning.nix { };
 
   bitcoin-abc  = libsForQt5.callPackage ../applications/blockchains/bitcoin-abc.nix { boost = boost165; withGui = true; };
@@ -23204,6 +24207,8 @@ in
   dogecoin  = callPackage ../applications/blockchains/dogecoin.nix { boost = boost165; withGui = true; };
   dogecoind = callPackage ../applications/blockchains/dogecoin.nix { boost = boost165; withGui = false; };
 
+  ergo = callPackage ../applications/blockchains/ergo { };
+
   exodus = callPackage ../applications/blockchains/exodus { };
 
   freicoin = callPackage ../applications/blockchains/freicoin.nix { boost = boost155; };
@@ -23225,18 +24230,15 @@ in
 
   monero = callPackage ../applications/blockchains/monero {
     inherit (darwin.apple_sdk.frameworks) CoreData IOKit PCSC;
-    pythonProtobuf = python3Packages.protobuf.override { protobuf = protobuf3_10; };
+    boost = boost17x;
   };
 
   monero-gui = libsForQt5.callPackage ../applications/blockchains/monero-gui {
-    boost = boost16x;
-    protobuf = protobuf3_10;
+    boost = boost17x;
   };
 
   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; };
@@ -23258,11 +24260,13 @@ in
 
   wasabiwallet = callPackage ../applications/blockchains/wasabiwallet { };
 
+  wasabibackend = callPackage ../applications/blockchains/wasabibackend { Nuget = dotnetPackages.Nuget;  };
+
   wownero = callPackage ../applications/blockchains/wownero.nix {};
 
   zcash = callPackage ../applications/blockchains/zcash { };
 
-  parity = callPackage ../applications/blockchains/parity { };
+  openethereum = callPackage ../applications/blockchains/openethereum { };
 
   parity-ui = callPackage ../applications/blockchains/parity-ui { };
 
@@ -23272,6 +24276,8 @@ in
 
   quorum = callPackage ../applications/blockchains/quorum.nix { };
 
+  whirlpool-gui = callPackage ../applications/blockchains/whirlpool-gui { };
+
   ### GAMES
 
   _2048-in-terminal = callPackage ../games/2048-in-terminal { };
@@ -23371,13 +24377,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 { };
 
@@ -23389,7 +24393,8 @@ in
 
   crispyDoom = callPackage ../games/crispy-doom { };
 
-  cri-o = callPackage ../applications/virtualization/cri-o { };
+  cri-o = callPackage ../applications/virtualization/cri-o/wrapper.nix { };
+  cri-o-unwrapped = callPackage ../applications/virtualization/cri-o { };
 
   ckan = callPackage ../games/ckan { };
 
@@ -23438,7 +24443,6 @@ in
     inherit (plasma5) oxygen;
     inherit (kdeApplications) akonadi-contacts;
     inherit (kdeFrameworks) kcalendarcore;
-    ffmpeg = ffmpeg_4;
     opencv3 = opencv3WithoutCuda;
   };
 
@@ -23547,9 +24551,14 @@ in
   frozen-bubble = callPackage ../games/frozen-bubble { };
 
   fsg = callPackage ../games/fsg {
-    wxGTK = wxGTK28.override { unicode = false; };
+    wxGTK = wxGTK28.override {
+      unicode = false;
+      gst-plugins-base = null;
+    };
   };
 
+  fslint = callPackage ../applications/misc/fslint {};
+
   galaxis = callPackage ../games/galaxis { };
 
   gambatte = callPackage ../games/gambatte { };
@@ -23594,6 +24603,8 @@ in
 
   gshogi = python3Packages.callPackage ../games/gshogi {};
 
+  gshhg-gmt = callPackage ../applications/gis/gmt/gshhg.nix { };
+
   qtads = qt5.callPackage ../games/qtads { };
 
   gtetrinet = callPackage ../games/gtetrinet {
@@ -23638,8 +24649,8 @@ in
 
   katagoWithCuda = katago.override {
     cudaSupport = true;
-    cudnn = cudnn_cudatoolkit_10_1;
-    cudatoolkit = cudatoolkit_10_1;
+    cudnn = cudnn_cudatoolkit_10_2;
+    cudatoolkit = cudatoolkit_10_2;
   };
 
   klavaro = callPackage ../games/klavaro {};
@@ -23648,6 +24659,8 @@ in
 
   leela-zero = libsForQt5.callPackage ../games/leela-zero { };
 
+  legendary-gl = python38Packages.callPackage ../games/legendary-gl { };
+
   lgogdownloader = callPackage ../games/lgogdownloader { };
 
   liberal-crime-squad = callPackage ../games/liberal-crime-squad { };
@@ -23731,14 +24744,20 @@ in
 
   nexuiz = callPackage ../games/nexuiz { };
 
+  ninvaders = callPackage ../games/ninvaders { };
+
   njam = callPackage ../games/njam { };
 
   newtonwars = callPackage ../games/newtonwars { };
 
+  nottetris2 = callPackage ../games/nottetris2 { };
+
   nudoku = callPackage ../games/nudoku { };
 
   nxengine-evo = callPackage ../games/nxengine-evo { };
 
+  oci-seccomp-bpf-hook = callPackage ../applications/virtualization/oci-seccomp-bpf-hook { };
+
   odamex = callPackage ../games/odamex { };
 
   oilrush = callPackage ../games/oilrush { };
@@ -23759,13 +24778,7 @@ in
 
   openmw = libsForQt5.callPackage ../games/openmw { };
 
-  openmw-tes3mp = libsForQt5.callPackage ../games/openmw/tes3mp.nix {
-    openmw = openmw.override {
-      stdenv = gcc8Stdenv;
-      openscenegraph = openscenegraph.override { stdenv = gcc8Stdenv; };
-      mygui = mygui.override { stdenv = gcc8Stdenv; };
-    };
-  };
+  openmw-tes3mp = libsForQt5.callPackage ../games/openmw/tes3mp.nix { };
 
   openraPackages = import ../games/openra pkgs;
 
@@ -23784,6 +24797,11 @@ in
       static = true;
     };
   };
+  openttd-jgrpp = callPackage ../games/openttd/jgrpp.nix {
+    zlib = zlib.override {
+      static = true;
+    };
+  };
 
   opentyrian = callPackage ../games/opentyrian { };
 
@@ -23890,6 +24908,8 @@ in
 
   sauerbraten = callPackage ../games/sauerbraten {};
 
+  scaleft = callPackage ../applications/networking/scaleft { };
+
   scaleway-cli = callPackage ../tools/admin/scaleway-cli { };
 
   scid = callPackage ../games/scid {
@@ -23918,6 +24938,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 { };
@@ -23955,9 +24977,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 {
@@ -23966,10 +24990,6 @@ in
 
   steamcmd = steamPackages.steamcmd;
 
-  linux-steam-integration = callPackage ../games/linux-steam-integration {
-    gtk = pkgs.gtk3;
-  };
-
   protontricks = callPackage ../tools/package-management/protontricks {
     inherit (python3Packages) buildPythonApplication pytest setuptools_scm vdf;
     inherit (gnome3) zenity;
@@ -24002,6 +25022,8 @@ in
 
   t4kcommon = callPackage ../games/t4kcommon { };
 
+  taisei = callPackage ../games/taisei { };
+
   tcl2048 = callPackage ../games/tcl2048 { };
 
   the-powder-toy = callPackage ../games/the-powder-toy {
@@ -24028,6 +25050,8 @@ in
 
   tinyfugue = callPackage ../games/tinyfugue { };
 
+  tockloader = callPackage ../development/tools/misc/tockloader { };
+
   tome2 = callPackage ../games/tome2 { };
 
   tome4 = callPackage ../games/tome4 { };
@@ -24243,6 +25267,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 { };
@@ -24285,15 +25310,13 @@ in
 
   pantheon = recurseIntoAttrs (callPackage ../desktops/pantheon { });
 
-  maxx = callPackage ../desktops/maxx { };
-
   plasma-applet-volumewin7mixer = libsForQt5.callPackage ../applications/misc/plasma-applet-volumewin7mixer { };
 
   inherit (callPackages ../applications/misc/redshift {
     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 { };
 
@@ -24345,6 +25368,8 @@ in
     eigen = eigen2;
   };
 
+  d-seams = callPackage ../applications/science/chemistry/d-seams {};
+
   gwyddion = callPackage ../applications/science/chemistry/gwyddion {};
 
   jmol = callPackage ../applications/science/chemistry/jmol { };
@@ -24389,9 +25414,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 { };
 
@@ -24411,6 +25434,16 @@ in
     inherit (darwin.apple_sdk.frameworks) ApplicationServices;
   };
 
+  bpp-core = callPackage ../development/libraries/science/biology/bpp-core { };
+
+  bpp-phyl = callPackage ../development/libraries/science/biology/bpp-phyl { };
+
+  bpp-popgen = callPackage ../development/libraries/science/biology/bpp-popgen { };
+
+  bpp-seq = callPackage ../development/libraries/science/biology/bpp-seq { };
+
+  bppsuite = callPackage ../applications/science/biology/bppsuite { };
+
   cd-hit = callPackage ../applications/science/biology/cd-hit { };
 
   cmtk = callPackage ../applications/science/biology/cmtk { };
@@ -24435,7 +25468,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 { };
 
@@ -24569,6 +25602,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 { };
@@ -24581,6 +25616,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 { };
@@ -24760,6 +25799,8 @@ in
 
   xfitter = callPackage ../applications/science/physics/xfitter {};
 
+  xflr5 = libsForQt5.callPackage ../applications/science/physics/xflr5 { };
+
   ### SCIENCE/PROGRAMMING
 
   dafny = dotnetPackages.Dafny;
@@ -24793,7 +25834,7 @@ in
   cadical = callPackage ../applications/science/logic/cadical {};
 
   inherit (callPackage ./coq-packages.nix {
-    inherit (ocaml-ng) ocamlPackages_4_05;
+    inherit (ocaml-ng) ocamlPackages_4_05 ocamlPackages_4_09;
   }) mkCoqPackages
     coqPackages_8_5  coq_8_5
     coqPackages_8_6  coq_8_6
@@ -24802,6 +25843,7 @@ in
     coqPackages_8_9  coq_8_9
     coqPackages_8_10 coq_8_10
     coqPackages_8_11 coq_8_11
+    coqPackages_8_12 coq_8_12
     coqPackages      coq
   ;
 
@@ -24853,11 +25895,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 { };
@@ -24975,6 +26017,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.
@@ -24986,6 +26030,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 {
@@ -24996,6 +26042,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
@@ -25015,6 +26063,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 { };
@@ -25026,6 +26076,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 {}));
 
@@ -25063,6 +26114,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;
@@ -25127,7 +26179,9 @@ in
     inherit (pkgs.gnome2) gtkglext;
   };
 
-  cytoscape = callPackage ../applications/science/misc/cytoscape { };
+  cytoscape = callPackage ../applications/science/misc/cytoscape {
+    jre = openjdk11;
+  };
 
   fityk = callPackage ../applications/science/misc/fityk { };
 
@@ -25204,8 +26258,6 @@ in
 
   cernlib = callPackage ../development/libraries/physics/cernlib { };
 
-  g4py = callPackage ../development/libraries/physics/geant4/g4py { };
-
   hepmc2 = callPackage ../development/libraries/physics/hepmc2 { };
 
   hepmc3 = callPackage ../development/libraries/physics/hepmc3 {
@@ -25216,8 +26268,6 @@ in
 
   lhapdf = callPackage ../development/libraries/physics/lhapdf { };
 
-  mcgrid = callPackage ../development/libraries/physics/mcgrid { };
-
   mela = callPackage ../development/libraries/physics/mela { };
 
   nlojet = callPackage ../development/libraries/physics/nlojet { };
@@ -25225,13 +26275,14 @@ in
   pythia = callPackage ../development/libraries/physics/pythia { };
 
   rivet = callPackage ../development/libraries/physics/rivet {
+    hepmc = hepmc2;
     imagemagick = graphicsmagick-imagemagick-compat;
   };
 
   thepeg = callPackage ../development/libraries/physics/thepeg { };
 
   yoda = callPackage ../development/libraries/physics/yoda {
-    python = python2;
+    python = python3;
   };
   yoda-with-root = lowPrio (yoda.override {
     withRootSupport = true;
@@ -25251,7 +26302,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 { };
 
@@ -25265,6 +26316,8 @@ in
 
   attract-mode = callPackage ../misc/emulators/attract-mode { };
 
+  autotiling = python3Packages.callPackage ../misc/autotiling { };
+
   beep = callPackage ../misc/beep { };
 
   bees = callPackage ../tools/filesystems/bees { };
@@ -25287,6 +26340,8 @@ in
 
   clinfo = callPackage ../tools/system/clinfo { };
 
+  clpeak = callPackage ../tools/misc/clpeak { };
+
   cups = callPackage ../misc/cups { };
 
   cups-filters = callPackage ../misc/cups/filters.nix { };
@@ -25326,6 +26381,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 { };
@@ -25361,6 +26418,8 @@ in
 
   dosbox = callPackage ../misc/emulators/dosbox { };
 
+  emu2 = callPackage ../misc/emulators/emu2 { };
+
   dpkg = callPackage ../tools/package-management/dpkg { };
 
   dumb = callPackage ../misc/dumb { };
@@ -25382,7 +26441,7 @@ in
   faust1 = callPackage ../applications/audio/faust/faust1.nix { };
 
   faust2 = callPackage ../applications/audio/faust/faust2.nix {
-    llvm = llvm_9;
+    llvm = llvm_10;
   };
 
   faust2alqt = callPackage ../applications/audio/faust/faust2alqt.nix { };
@@ -25420,7 +26479,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 { };
@@ -25457,6 +26517,8 @@ in
 
   helmfile = callPackage ../applications/networking/cluster/helmfile { };
 
+  helmsman = callPackage ../applications/networking/cluster/helmsman { };
+
   heptio-ark = callPackage ../applications/networking/cluster/heptio-ark { };
 
   hplip = callPackage ../misc/drivers/hplip { };
@@ -25524,8 +26586,9 @@ in
     mkKops
     kops_1_15
     kops_1_16
+    kops_1_17
     ;
-  kops = kops_1_16;
+  kops = kops_1_17;
 
   lguf-brightness = callPackage ../misc/lguf-brightness { };
 
@@ -25543,6 +26606,8 @@ in
     icu = icu58;
   };
 
+  mamba = callPackage ../applications/audio/mamba{ };
+
   mame = libsForQt5.callPackage ../misc/emulators/mame {
     inherit (darwin.apple_sdk.frameworks) CoreAudioKit ForceFeedback;
   };
@@ -25719,6 +26784,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;
@@ -25734,7 +26801,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 { };
 
@@ -25753,6 +26820,8 @@ in
 
   nix-query-tree-viewer = callPackage ../tools/nix/nix-query-tree-viewer { };
 
+  nix-update = python3Packages.callPackage ../tools/package-management/nix-update { };
+
   nix-update-source = callPackage ../tools/package-management/nix-update-source {};
 
   nix-script = callPackage ../tools/nix/nix-script {};
@@ -25761,6 +26830,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 (
@@ -25781,6 +26852,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 { };
@@ -25793,7 +26866,7 @@ in
 
   nut = callPackage ../applications/misc/nut { };
 
-  solfege = callPackage ../misc/solfege { };
+  solfege = python3Packages.callPackage ../misc/solfege { };
 
   disnix = callPackage ../tools/package-management/disnix { };
 
@@ -25887,6 +26960,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 {};
@@ -26039,16 +27114,21 @@ in
 
   sqsh = callPackage ../development/tools/sqsh { };
 
+  go-swagger = callPackage ../development/tools/go-swagger { };
+
   jx = callPackage ../applications/networking/cluster/jx {};
 
   prow = callPackage ../applications/networking/cluster/prow { };
 
+  tellico = libsForQt5.callPackage ../applications/misc/tellico { };
+
   termpdfpy = python3Packages.callPackage ../applications/misc/termpdf.py {};
 
   inherit (callPackage ../applications/networking/cluster/terraform { })
     terraform_0_11
     terraform_0_11-full
     terraform_0_12
+    terraform_0_13
     terraform_plugins_test
     ;
 
@@ -26060,6 +27140,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 {};
@@ -26070,6 +27152,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
@@ -26117,6 +27201,8 @@ in
 
   urbit = callPackage ../misc/urbit { };
 
+  utf8cpp = callPackage ../development/libraries/utf8cpp { };
+
   utf8proc = callPackage ../development/libraries/utf8proc { };
 
   unicode-paracode = callPackage ../tools/misc/unicode { };
@@ -26131,9 +27217,7 @@ in
 
   vazir-fonts = callPackage ../data/fonts/vazir-fonts { };
 
-  vbam = callPackage ../misc/emulators/vbam {
-    ffmpeg = ffmpeg_4;
-  };
+  vbam = callPackage ../misc/emulators/vbam { };
 
   vice = callPackage ../misc/emulators/vice {
     giflib = giflib_4_1;
@@ -26168,6 +27252,9 @@ in
   wasmer = callPackage ../development/interpreters/wasmer { };
 
   wasm-pack = callPackage ../development/tools/wasm-pack {
+    # Wasm-pack depends on a version of rust-openssl which is incompatible with
+    # LibreSSL 3.1, so we explicitly opt for the older version.
+    libressl = libressl_3_0;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
@@ -26211,6 +27298,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 { };
@@ -26305,6 +27394,8 @@ in
 
   zap = callPackage ../tools/networking/zap { };
 
+  zigbee2mqtt = callPackage ../servers/zigbee2mqtt { };
+
   zopfli = callPackage ../tools/compression/zopfli { };
 
   myEnvFun = callPackage ../misc/my-env {
@@ -26381,7 +27472,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 { };
 
@@ -26398,6 +27489,8 @@ in
   sequeler = callPackage ../applications/misc/sequeler { };
 
   sequelpro = callPackage ../applications/misc/sequelpro {};
+  
+  snowsql = callPackage ../applications/misc/snowsql {};
 
   sidequest = callPackage ../applications/misc/sidequest {};
 
@@ -26458,6 +27551,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 {
@@ -26474,7 +27571,7 @@ in
 
   simplehttp2server = callPackage ../servers/simplehttp2server { };
 
-  diceware = callPackage ../tools/security/diceware { };
+  diceware = with python3Packages; toPythonApplication diceware;
 
   xml2rfc = with python3Packages; toPythonApplication xml2rfc;
 
@@ -26545,6 +27642,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 {};
@@ -26602,4 +27701,6 @@ in
   vpsfree-client = callPackage ../tools/virtualization/vpsfree-client {};
 
   gpio-utils = callPackage ../os-specific/linux/kernel/gpio-utils.nix { };
+
+  navidrome = callPackage ../servers/misc/navidrome {};
 }
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 0621f2ed17e..c6c75cd7ffd 100644
--- a/pkgs/top-level/coq-packages.nix
+++ b/pkgs/top-level/coq-packages.nix
@@ -1,4 +1,4 @@
-{ lib, callPackage, newScope, recurseIntoAttrs, ocamlPackages_4_05 }:
+{ lib, callPackage, newScope, recurseIntoAttrs, ocamlPackages_4_05, ocamlPackages_4_09 }:
 
 let
   mkCoqPackages' = self: coq:
@@ -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 {};
@@ -100,19 +99,26 @@ in rec {
     version = "8.6.1";
   };
   coq_8_7 = callPackage ../applications/science/logic/coq {
+    ocamlPackages = ocamlPackages_4_09;
     version = "8.7.2";
   };
   coq_8_8 = callPackage ../applications/science/logic/coq {
+    ocamlPackages = ocamlPackages_4_09;
     version = "8.8.2";
   };
   coq_8_9 = callPackage ../applications/science/logic/coq {
+    ocamlPackages = ocamlPackages_4_09;
     version = "8.9.1";
   };
   coq_8_10 = callPackage ../applications/science/logic/coq {
+    ocamlPackages = ocamlPackages_4_09;
     version = "8.10.2";
   };
   coq_8_11 = callPackage ../applications/science/logic/coq {
-    version = "8.11.1";
+    version = "8.11.2";
+  };
+  coq_8_12 = callPackage ../applications/science/logic/coq {
+    version = "8.12.0";
   };
 
   coqPackages_8_5 = mkCoqPackages coq_8_5;
@@ -122,8 +128,9 @@ in rec {
   coqPackages_8_9 = mkCoqPackages coq_8_9;
   coqPackages_8_10 = mkCoqPackages coq_8_10;
   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..02184a5685e 100644
--- a/pkgs/top-level/darwin-packages.nix
+++ b/pkgs/top-level/darwin-packages.nix
@@ -86,4 +86,6 @@ in
 
   libtapi = callPackage ../os-specific/darwin/libtapi {};
 
+  ios-deploy = callPackage ../os-specific/darwin/ios-deploy {};
+
 })
diff --git a/pkgs/top-level/dhall-packages.nix b/pkgs/top-level/dhall-packages.nix
index 6cdd84c2279..9d4801e9dc5 100644
--- a/pkgs/top-level/dhall-packages.nix
+++ b/pkgs/top-level/dhall-packages.nix
@@ -8,20 +8,40 @@ let
     let
       callPackage = newScope self;
 
+      prefer = version: path:
+        let
+          packages = callPackage path { };
+
+        in
+          packages."${version}".overrideAttrs (_: {
+              passthru = packages;
+            }
+          );
+
       buildDhallPackage =
         callPackage ../development/interpreters/dhall/build-dhall-package.nix { };
 
+      buildDhallGitHubPackage =
+        callPackage ../development/interpreters/dhall/build-dhall-github-package.nix { };
+
+      buildDhallDirectoryPackage =
+        callPackage ../development/interpreters/dhall/build-dhall-directory-package.nix { };
+
     in
-      { inherit buildDhallPackage;
+      { inherit
+          buildDhallPackage
+          buildDhallGitHubPackage
+          buildDhallDirectoryPackage
+        ;
 
         dhall-kubernetes =
-          callPackage ../development/dhall-modules/dhall-kubernetes.nix { };
+          prefer "3.0.0" ../development/dhall-modules/dhall-kubernetes.nix;
 
         dhall-packages =
-          callPackage ../development/dhall-modules/dhall-packages.nix { };
+          prefer "0.11.1" ../development/dhall-modules/dhall-packages.nix;
 
         Prelude =
-          callPackage ../development/dhall-modules/Prelude.nix { };
+          prefer "13.0.0" ../development/dhall-modules/Prelude.nix;
       };
 
 in
diff --git a/pkgs/top-level/dotnet-packages.nix b/pkgs/top-level/dotnet-packages.nix
index 3b58e1937b6..f14ae3133b8 100644
--- a/pkgs/top-level/dotnet-packages.nix
+++ b/pkgs/top-level/dotnet-packages.nix
@@ -4,6 +4,7 @@
 , fetchurl
 , fetchFromGitHub
 , fetchNuGet
+, glib
 , pkgconfig
 , mono
 , fsharp
@@ -544,6 +545,7 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
 
     buildInputs = [
       fsharp
+      glib
       dotnetPackages.FSharpCompilerService
       dotnetPackages.NewtonsoftJson
       dotnetPackages.NDeskOptions
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/lua-packages.nix b/pkgs/top-level/lua-packages.nix
index 7cf47c26c6f..d120e9f7a7f 100644
--- a/pkgs/top-level/lua-packages.nix
+++ b/pkgs/top-level/lua-packages.nix
@@ -132,39 +132,6 @@ with self; {
     };
   };
 
-  pulseaudio = buildLuaPackage rec {
-    pname = "pulseaudio";
-    version = "0.2";
-    name = "pulseaudio-${version}";
-
-    src = fetchFromGitHub {
-      owner = "doronbehar";
-      repo = "lua-pulseaudio";
-      rev = "v${version}";
-      sha256 = "140y1m6k798c4w7xfl0zb0a4ffjz6i1722bgkdcdg8g76hr5r8ys";
-    };
-    disabled = (luaOlder "5.1") || (luaAtLeast "5.5");
-    buildInputs = [ pkgs.libpulseaudio ];
-    propagatedBuildInputs = [ lua ];
-    nativeBuildInputs = [ pkgs.pulseaudio pkgconfig ];
-
-    makeFlags = [
-      "INST_LIBDIR=${placeholder "out"}/lib/lua/${lua.luaversion}"
-      "INST_LUADIR=${placeholder "out"}/share/lua/${lua.luaversion}"
-      "LUA_BINDIR=${placeholder "out"}/bin"
-    ];
-    preBuild = ''
-      mkdir -p ${placeholder "out"}/lib/lua/${lua.luaversion}
-    '';
-
-    meta = with stdenv.lib; {
-      homepage = "https://github.com/doronbehar/lua-pulseaudio";
-      description = "Libpulse Lua bindings";
-      maintainers = with maintainers; [ doronbehar ];
-      license = licenses.lgpl21;
-    };
-  };
-
   vicious = toLuaModule(stdenv.mkDerivation rec {
     pname = "vicious";
     version = "2.3.1";
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 071d1612b6c..dfc2fd2fb98 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -16,6 +16,8 @@ let
 
     buildDunePackage = callPackage ../build-support/ocaml/dune.nix {};
 
+    afl-persistent = callPackage ../development/ocaml-modules/afl-persistent { };
+
     alcotest = callPackage ../development/ocaml-modules/alcotest {};
 
     alcotest-lwt = callPackage ../development/ocaml-modules/alcotest/lwt.nix {};
@@ -36,18 +38,10 @@ let
 
     astring = callPackage ../development/ocaml-modules/astring { };
 
-    async_extra_p4 = callPackage ../development/ocaml-modules/async_extra { };
-
-    async_kernel_p4 = callPackage ../development/ocaml-modules/async_kernel { };
-
-    async_unix_p4 = callPackage ../development/ocaml-modules/async_unix { };
-
     atd = callPackage ../development/ocaml-modules/atd { };
 
     atdgen = callPackage ../development/ocaml-modules/atdgen { };
 
-    base64_2 = callPackage ../development/ocaml-modules/base64/2.0.nix { };
-
     base64 = callPackage ../development/ocaml-modules/base64 { };
 
     bap = callPackage ../development/ocaml-modules/bap {
@@ -58,6 +52,8 @@ let
 
     bigarray-compat = callPackage ../development/ocaml-modules/bigarray-compat { };
 
+    bigarray-overlap = callPackage ../development/ocaml-modules/bigarray-overlap { };
+
     bigstringaf = callPackage ../development/ocaml-modules/bigstringaf { };
 
     bigstring = callPackage ../development/ocaml-modules/bigstring { };
@@ -155,6 +151,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 { };
@@ -165,6 +163,8 @@ let
 
     cpuid = callPackage ../development/ocaml-modules/cpuid { };
 
+    crowbar = callPackage ../development/ocaml-modules/crowbar { };
+
     crunch = callPackage ../development/tools/ocaml/crunch { };
 
     cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
@@ -172,11 +172,9 @@ let
     cstruct =
       if lib.versionAtLeast ocaml.version "4.2"
       then callPackage ../development/ocaml-modules/cstruct {}
-      else callPackage ../development/ocaml-modules/cstruct/1.9.0.nix { lwt = ocaml_lwt; };
+      else callPackage ../development/ocaml-modules/cstruct/1.9.0.nix { };
 
-    cstruct-lwt = callPackage ../development/ocaml-modules/cstruct/lwt.nix {
-      lwt = ocaml_lwt;
-    };
+    cstruct-lwt = callPackage ../development/ocaml-modules/cstruct/lwt.nix { };
 
     cstruct-sexp = callPackage ../development/ocaml-modules/cstruct/sexp.nix {};
 
@@ -189,9 +187,11 @@ let
 
     csv-lwt = callPackage ../development/ocaml-modules/csv/lwt.nix { };
 
-    curses = callPackage ../development/ocaml-modules/curses { };
+    curly = callPackage ../development/ocaml-modules/curly {
+      inherit (pkgs) curl;
+    };
 
-    custom_printf = callPackage ../development/ocaml-modules/custom_printf { };
+    curses = callPackage ../development/ocaml-modules/curses { };
 
     ctypes = callPackage ../development/ocaml-modules/ctypes { };
 
@@ -219,14 +219,27 @@ let
 
     dune = callPackage ../development/tools/ocaml/dune { };
 
-    dune_2 = callPackage ../development/tools/ocaml/dune/2.nix { };
+    dune_2 =
+      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 {
+      inherit (pkgs) opam git mercurial coreutils gnutar bzip2;
+    };
+
     duration =  callPackage ../development/ocaml-modules/duration { };
 
     earley = callPackage ../development/ocaml-modules/earley { };
@@ -287,10 +300,14 @@ let
 
     functoria = callPackage ../development/ocaml-modules/functoria { };
 
+    functoria-runtime = callPackage ../development/ocaml-modules/functoria/runtime.nix { };
+
     functory = callPackage ../development/ocaml-modules/functory { };
 
     gen = callPackage ../development/ocaml-modules/gen { };
 
+    genspio = callPackage ../development/ocaml-modules/genspio { };
+
     gmap = callPackage ../development/ocaml-modules/gmap { };
 
     gnuplot = callPackage ../development/ocaml-modules/gnuplot {
@@ -301,6 +318,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 { };
@@ -317,12 +336,13 @@ let
 
     io-page = callPackage ../development/ocaml-modules/io-page { };
 
-    ipaddr_p4 = callPackage ../development/ocaml-modules/ipaddr/2.6.1.nix { };
+    io-page-unix = callPackage ../development/ocaml-modules/io-page/unix.nix { };
 
-    ipaddr =
-      if lib.versionOlder "4.02" ocaml.version
-      then callPackage ../development/ocaml-modules/ipaddr { }
-      else ipaddr_p4;
+    ipaddr = callPackage ../development/ocaml-modules/ipaddr { };
+
+    ipaddr-cstruct = callPackage ../development/ocaml-modules/ipaddr/cstruct.nix { };
+
+    ipaddr-sexp = callPackage ../development/ocaml-modules/ipaddr/sexp.nix { };
 
     irmin_1 = callPackage ../development/ocaml-modules/irmin/1.4.nix { };
 
@@ -340,11 +360,15 @@ let
 
     gg = callPackage ../development/ocaml-modules/gg { };
 
-    git = callPackage ../development/ocaml-modules/git { inherit (pkgs) git; };
+    git = callPackage ../development/ocaml-modules/git {
+      git-binary = pkgs.git;
+    };
 
     git-http = callPackage ../development/ocaml-modules/git-http { };
 
-    git-unix = callPackage ../development/ocaml-modules/git-unix { };
+    git-unix = callPackage ../development/ocaml-modules/git-unix {
+      git-binary = pkgs.git;
+    };
 
     gmetadom = callPackage ../development/ocaml-modules/gmetadom { };
 
@@ -361,6 +385,8 @@ let
 
     graphql_parser = callPackage ../development/ocaml-modules/graphql/parser.nix { };
 
+    graphql_ppx = callPackage ../development/ocaml-modules/graphql_ppx { };
+
     gtktop = callPackage ../development/ocaml-modules/gtktop { };
 
     hex = callPackage ../development/ocaml-modules/hex { };
@@ -393,19 +419,9 @@ let
 
     irmin-watcher = callPackage ../development/ocaml-modules/irmin-watcher { };
 
-    jingoo = callPackage ../development/ocaml-modules/jingoo {
-      pcre = ocaml_pcre;
-    };
-
-    js_of_ocaml =
-    if lib.versionOlder "4.02" ocaml.version
-    then callPackage ../development/tools/ocaml/js_of_ocaml/3.0.nix { }
-    else js_of_ocaml_2;
+    jingoo = callPackage ../development/ocaml-modules/jingoo { };
 
-    js_of_ocaml_2 = callPackage ../development/tools/ocaml/js_of_ocaml {
-      base64 = base64_2;
-      lwt = lwt2;
-    };
+    js_of_ocaml = callPackage ../development/tools/ocaml/js_of_ocaml { };
 
     js_of_ocaml-camlp4 = callPackage ../development/tools/ocaml/js_of_ocaml/camlp4.nix {};
 
@@ -417,14 +433,14 @@ let
 
     js_of_ocaml-ppx = callPackage ../development/tools/ocaml/js_of_ocaml/ppx.nix {};
 
-    js_of_ocaml-ppx_deriving_json = callPackage ../development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix {
-      ppxlib = ppxlib.override { version = "0.12.0"; };
-    };
+    js_of_ocaml-ppx_deriving_json = callPackage ../development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix { };
 
     js_of_ocaml-tyxml = callPackage ../development/tools/ocaml/js_of_ocaml/tyxml.nix {};
 
     jsonm = callPackage ../development/ocaml-modules/jsonm { };
 
+    jwto = callPackage ../development/ocaml-modules/jwto { };
+
     kafka = callPackage ../development/ocaml-modules/kafka { };
 
     ke = callPackage ../development/ocaml-modules/ke { };
@@ -449,10 +465,6 @@ let
       then callPackage ../development/ocaml-modules/lablgtk-extras { }
       else callPackage ../development/ocaml-modules/lablgtk-extras/1.4.nix { };
 
-    lablgtkmathview = callPackage ../development/ocaml-modules/lablgtkmathview {
-      gtkmathview = callPackage ../development/libraries/gtkmathview { };
-    };
-
     labltk = callPackage ../development/ocaml-modules/labltk { };
 
     lacaml = callPackage ../development/ocaml-modules/lacaml { };
@@ -469,47 +481,39 @@ let
       llvm = pkgs.llvm_8;
     };
 
-    logs = callPackage ../development/ocaml-modules/logs {
-      lwt = ocaml_lwt;
-    };
+    logs = callPackage ../development/ocaml-modules/logs { };
 
     lru = callPackage ../development/ocaml-modules/lru { };
 
     lua-ml = callPackage ../development/ocaml-modules/lua-ml { };
 
-    lwt2 = callPackage ../development/ocaml-modules/lwt/legacy.nix { };
+    lwt = callPackage ../development/ocaml-modules/lwt { };
 
-    lwt4 = callPackage ../development/ocaml-modules/lwt/4.x.nix { };
-
-    ocaml_lwt = if lib.versionOlder "4.02" ocaml.version then lwt4 else lwt2;
+    ocaml_lwt = lwt;
 
     lwt_camlp4 = callPackage ../development/ocaml-modules/lwt/camlp4.nix { };
 
-    lwt_log = callPackage ../development/ocaml-modules/lwt_log {
-      lwt = lwt4;
-    };
+    lwt_log = callPackage ../development/ocaml-modules/lwt_log { };
 
-    lwt_ppx = callPackage ../development/ocaml-modules/lwt/ppx.nix {
-      lwt = ocaml_lwt;
-    };
+    lwt_ppx = callPackage ../development/ocaml-modules/lwt/ppx.nix { };
 
-    lwt_react = callPackage ../development/ocaml-modules/lwt_react {
-      lwt = ocaml_lwt;
-    };
+    lwt_react = callPackage ../development/ocaml-modules/lwt_react { };
 
-    lwt_ssl = callPackage ../development/ocaml-modules/lwt_ssl {
-      lwt = ocaml_lwt;
-    };
+    lwt_ssl = callPackage ../development/ocaml-modules/lwt_ssl { };
 
     macaddr = callPackage ../development/ocaml-modules/macaddr { };
 
+    macaddr-cstruct = callPackage ../development/ocaml-modules/macaddr/cstruct.nix { };
+
+    macaddr-sexp = callPackage ../development/ocaml-modules/macaddr/sexp.nix { };
+
     macaque = callPackage ../development/ocaml-modules/macaque { };
 
     magic-mime = callPackage ../development/ocaml-modules/magic-mime { };
 
     magick = callPackage ../development/ocaml-modules/magick { };
 
-    markup = callPackage ../development/ocaml-modules/markup { lwt = ocaml_lwt; };
+    markup = callPackage ../development/ocaml-modules/markup { };
 
     mdx = callPackage ../development/ocaml-modules/mdx { };
 
@@ -541,6 +545,8 @@ let
 
     mirage-crypto-rng = callPackage ../development/ocaml-modules/mirage-crypto/rng.nix { };
 
+    mirage-crypto-rng-mirage = callPackage ../development/ocaml-modules/mirage-crypto/rng-mirage.nix { };
+
     mirage-device = callPackage ../development/ocaml-modules/mirage-device { };
 
     mirage-flow = callPackage ../development/ocaml-modules/mirage-flow { };
@@ -553,12 +559,16 @@ let
 
     mirage-random = callPackage ../development/ocaml-modules/mirage-random { };
 
+    mirage-runtime = callPackage ../development/ocaml-modules/mirage/runtime.nix { };
+
     mirage-stack = callPackage ../development/ocaml-modules/mirage-stack { };
 
     mirage-time = callPackage ../development/ocaml-modules/mirage-time { };
 
     mirage-time-unix = callPackage ../development/ocaml-modules/mirage-time/unix.nix { };
 
+    mirage-unix = callPackage ../development/ocaml-modules/mirage-unix { };
+
     mlgmp =  callPackage ../development/ocaml-modules/mlgmp { };
 
     mlgmpidl =  callPackage ../development/ocaml-modules/mlgmpidl { };
@@ -571,11 +581,13 @@ let
 
     mtime =  callPackage ../development/ocaml-modules/mtime { };
 
+    mustache =  callPackage ../development/ocaml-modules/mustache { };
+
     nocrypto =  callPackage ../development/ocaml-modules/nocrypto { };
 
-    notty = callPackage ../development/ocaml-modules/notty {
-      lwt = ocaml_lwt;
-    };
+    nonstd =  callPackage ../development/ocaml-modules/nonstd { };
+
+    notty = callPackage ../development/ocaml-modules/notty { };
 
     npy = callPackage ../development/ocaml-modules/npy {
       inherit (pkgs.python3Packages) numpy;
@@ -589,10 +601,6 @@ let
 
     comparelib = callPackage ../development/ocaml-modules/comparelib { };
 
-    core_kernel_p4 = callPackage ../development/ocaml-modules/core_kernel { };
-
-    core_p4 = callPackage ../development/ocaml-modules/core { };
-
     ocamlbuild =
     if lib.versionOlder "4.03" ocaml.version then
     callPackage ../development/tools/ocaml/ocamlbuild { }
@@ -694,8 +702,24 @@ let
 
     omd = callPackage ../development/ocaml-modules/omd { };
 
+    opam-core = callPackage ../development/ocaml-modules/opam-core {
+      inherit (pkgs) opam unzip;
+    };
+
     opam-file-format = callPackage ../development/ocaml-modules/opam-file-format { };
 
+    opam-format = callPackage ../development/ocaml-modules/opam-format {
+      inherit (pkgs) unzip;
+    };
+
+    opam-repository = callPackage ../development/ocaml-modules/opam-repository {
+      inherit (pkgs) unzip;
+    };
+
+    opam-state = callPackage ../development/ocaml-modules/opam-state {
+      inherit (pkgs) unzip;
+    };
+
     opium = callPackage ../development/ocaml-modules/opium { };
 
     opium_kernel = callPackage ../development/ocaml-modules/opium_kernel { };
@@ -722,9 +746,7 @@ let
 
     phylogenetics = callPackage ../development/ocaml-modules/phylogenetics { };
 
-    piqi = callPackage ../development/ocaml-modules/piqi {
-      base64 = base64_2;
-    };
+    piqi = callPackage ../development/ocaml-modules/piqi { };
 
     piqi-ocaml = callPackage ../development/ocaml-modules/piqi-ocaml { };
 
@@ -748,20 +770,26 @@ 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 { };
 
     ulex = callPackage ../development/ocaml-modules/ulex { };
 
-    textutils_p4 = callPackage ../development/ocaml-modules/textutils { };
-
     tls = callPackage ../development/ocaml-modules/tls { };
 
+    torch = callPackage ../development/ocaml-modules/torch {
+      inherit (pkgs.python3Packages) pytorch;
+    };
+
     type_conv_108_08_00 = callPackage ../development/ocaml-modules/type_conv/108.08.00.nix { };
     type_conv_109_60_01 = callPackage ../development/ocaml-modules/type_conv/109.60.01.nix { };
     type_conv_112_01_01 = callPackage ../development/ocaml-modules/type_conv/112.01.01.nix { };
@@ -774,19 +802,6 @@ let
       then type_conv_108_08_00
       else null;
 
-    sexplib_108_08_00 = callPackage ../development/ocaml-modules/sexplib/108.08.00.nix { };
-    sexplib_111_25_00 = callPackage ../development/ocaml-modules/sexplib/111.25.00.nix { };
-    sexplib_112_24_01 = callPackage ../development/ocaml-modules/sexplib/112.24.01.nix { };
-
-    sexplib_p4 =
-      if lib.versionOlder "4.02" ocaml.version
-      then sexplib_112_24_01
-      else if lib.versionOlder "4.00" ocaml.version
-      then sexplib_111_25_00
-      else if lib.versionOlder "3.12" ocaml.version
-      then sexplib_108_08_00
-      else null;
-
     ocaml-protoc = callPackage ../development/ocaml-modules/ocaml-protoc { };
 
     ocaml_extlib = callPackage ../development/ocaml-modules/extlib { };
@@ -799,8 +814,6 @@ let
 
     pa_bench = callPackage ../development/ocaml-modules/pa_bench { };
 
-    pa_test = callPackage ../development/ocaml-modules/pa_test { };
-
     parany = callPackage ../development/ocaml-modules/parany { };
 
     pipebang = callPackage ../development/ocaml-modules/pipebang { };
@@ -823,7 +836,9 @@ let
 
     ppx_deriving_protobuf = callPackage ../development/ocaml-modules/ppx_deriving_protobuf {};
 
-    ppx_deriving_rpc = callPackage ../development/ocaml-modules/ppx_deriving_rpc {};
+    ppx_deriving_rpc = callPackage ../development/ocaml-modules/ppx_deriving_rpc {
+      ppxlib = ppxlib.override { legacy = true; };
+    };
 
     ppx_deriving_yojson = callPackage ../development/ocaml-modules/ppx_deriving_yojson {};
 
@@ -832,7 +847,6 @@ let
     ppx_import = callPackage ../development/ocaml-modules/ppx_import {};
 
     ppx_irmin = callPackage ../development/ocaml-modules/irmin/ppx.nix {
-      ppxlib = ppxlib.override { version = "0.12.0"; };
     };
 
     ppx_sqlexpr = callPackage ../development/ocaml-modules/sqlexpr/ppx.nix {};
@@ -844,10 +858,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 { };
@@ -973,20 +991,21 @@ let
     janeStreet =
     if lib.versionOlder "4.08" ocaml.version
     then import ../development/ocaml-modules/janestreet/0.13.nix {
-      inherit ctypes janePackage num octavius re;
+      inherit ctypes janePackage num octavius ppxlib re;
       inherit (pkgs) openssl;
-      ppxlib = ppxlib.override { version = "0.12.0"; };
     }
     else if lib.versionOlder "4.07" ocaml.version
     then import ../development/ocaml-modules/janestreet/0.12.nix {
-      inherit ctypes janePackage num octavius ppxlib re;
+      inherit ctypes janePackage num octavius re;
       inherit (pkgs) openssl;
+      ppxlib = ppxlib.override { legacy = true; };
     }
     else import ../development/ocaml-modules/janestreet {
       inherit janePackage ocamlbuild angstrom ctypes cryptokit;
       inherit magic-mime num ocaml-migrate-parsetree octavius ounit;
-      inherit ppx_deriving re ppxlib;
+      inherit ppx_deriving re;
       inherit (pkgs) openssl;
+      ppxlib = ppxlib.override { legacy = true; };
     };
 
     janeStreet_0_9_0 = import ../development/ocaml-modules/janestreet/old.nix {
@@ -1137,7 +1156,7 @@ let
       then janeStreet.sexplib
       else if lib.versionOlder "4.02" ocaml.version
       then callPackage ../development/ocaml-modules/janestreet/sexplib.nix {}
-      else sexplib_p4;
+      else null;
 
     variantslib =
       if lib.versionOlder "4.03" ocaml.version
@@ -1158,53 +1177,11 @@ let
       then janeStreet.core_bench else
       callPackage ../development/ocaml-modules/janestreet/core_bench.nix {};
 
-    core_kernel =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.core_kernel
-      else if lib.versionOlder "4.02" ocaml.version
-      then callPackage ../development/ocaml-modules/janestreet/core_kernel.nix {}
-      else core_kernel_p4;
-
-    core =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.core
-      else if lib.versionOlder "4.02" ocaml.version
-      then callPackage ../development/ocaml-modules/janestreet/core.nix {}
-      else core_p4;
-
-    textutils =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.textutils
-      else if lib.versionOlder "4.02" ocaml.version
-      then callPackage ../development/ocaml-modules/janestreet/textutils.nix {}
-      else textutils_p4;
-
-    async_kernel =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.async_kernel
-      else if lib.versionOlder "4.02" ocaml.version
-      then callPackage ../development/ocaml-modules/janestreet/async-kernel.nix {}
-      else async_kernel_p4;
-
     async_rpc_kernel =
       if lib.versionOlder "4.03" ocaml.version
       then janeStreet.async_rpc_kernel
       else callPackage ../development/ocaml-modules/janestreet/async-rpc-kernel.nix {};
 
-    async_unix =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.async_unix
-      else if lib.versionOlder "4.02" ocaml.version
-      then callPackage ../development/ocaml-modules/janestreet/async-unix.nix {}
-      else async_unix_p4;
-
-    async_extra =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.async_extra
-      else if lib.versionOlder "4.02" ocaml.version
-      then callPackage ../development/ocaml-modules/janestreet/async-extra.nix {}
-      else async_extra_p4;
-
     # Apps / from all-packages
 
     ocamlnat = callPackage  ../development/ocaml-modules/ocamlnat { };
@@ -1242,7 +1219,9 @@ in let inherit (pkgs) callPackage; in rec
 
   ocamlPackages_4_10 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.10.nix { });
 
+  ocamlPackages_4_11 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.11.nix { });
+
   ocamlPackages_latest = ocamlPackages_4_10;
 
-  ocamlPackages = ocamlPackages_4_09;
+  ocamlPackages = ocamlPackages_4_10;
 }
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index f405d879c34..2f5fffe5f9c 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -5,10 +5,14 @@
    for each package in a separate file: the call to the function would
    be almost as much code as the function itself. */
 
-{config, pkgs, fetchurl, fetchpatch, fetchFromGitHub, stdenv, 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";
+{ config
+, stdenv, buildPackages, pkgs
+, fetchurl, fetchpatch, fetchFromGitHub
+, perl, overrides, buildPerl, shortenPerlShebang
+}:
+
+# cpan2nix assumes that perl-packages.nix will be used only with perl 5.28.3 or above
+assert stdenv.lib.versionAtLeast perl.version "5.28.3";
 let
   inherit (stdenv.lib) maintainers;
   self = _self // (overrides pkgs);
@@ -158,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 ];
@@ -173,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 ];
@@ -188,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 ];
@@ -269,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";
@@ -312,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 ];
   };
@@ -336,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";
@@ -374,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 ];
@@ -452,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 ];
@@ -581,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 = {
@@ -716,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";
@@ -742,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 = {
@@ -799,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";
@@ -902,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)";
@@ -1015,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";
@@ -1038,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";
@@ -1232,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";
@@ -1271,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";
     };
   };
 
@@ -1306,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";
@@ -1614,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 ];
@@ -2059,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 ];
@@ -2083,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 ];
@@ -2111,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 ];
@@ -2207,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";
@@ -2244,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 = {
@@ -2304,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";
@@ -2558,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";
@@ -2771,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";
@@ -2791,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";
@@ -2831,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 ];
@@ -2860,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";
@@ -2873,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";
@@ -2980,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 ];
@@ -3040,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 = {
@@ -3212,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";
@@ -3376,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";
@@ -3395,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";
@@ -3479,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";
@@ -3493,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 = {
@@ -3508,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 = {
@@ -3530,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";
@@ -3567,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";
@@ -3589,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";
@@ -3610,7 +3829,7 @@ let
       sha256 = "3cc7126d5841107237a9be2dc5c7fbc167cf3c4b4ce34678a8448b850757014c";
     };
     propagatedBuildInputs = [ ClassMix ];
-    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";
   };
 
   CryptIDEA = buildPerlPackage {
@@ -3624,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 ];
@@ -3675,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";
@@ -3722,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";
@@ -3730,7 +3978,7 @@ let
       sha256 = "93ebdfaaefcfe9ab683f0121c85f24475d8197f0bcec46018219e4111434dde3";
     };
     propagatedBuildInputs = [ DigestSHA1 ];
-    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";
   };
 
   CryptRijndael = buildPerlPackage {
@@ -3791,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";
@@ -3938,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 ];
@@ -3990,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";
@@ -4201,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";
@@ -4314,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";
@@ -4391,6 +4697,22 @@ let
     buildInputs = [ DebugShowStuff ];
   };
 
+  DataULID = buildPerlPackage {
+    pname = "Data-ULID";
+    version = "1.0.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BA/BALDUR/Data-ULID-1.0.0.tar.gz";
+      sha256 = "4d757475893dbad5165f0a65c446d38b47f39019d36f77da9d29c98cbf27206f";
+    };
+    propagatedBuildInputs = [ DateTime EncodeBase32GMP MathRandomSecure ];
+    meta = {
+      homepage = "https://metacpan.org/release/Data-ULID";
+      description = "Universally Unique Lexicographically Sortable Identifier";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   DataUniqid = buildPerlPackage {
     pname = "Data-Uniqid";
     version = "0.12";
@@ -4430,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";
     };
   };
 
@@ -4531,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 = ''
@@ -4561,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 ];
@@ -4713,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 ];
@@ -4757,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 ];
@@ -4829,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 ];
@@ -4927,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 {
@@ -4951,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 = {
@@ -4980,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";
@@ -5044,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 {
@@ -5091,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";
@@ -5129,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 ];
@@ -5189,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
@@ -5332,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 ];
@@ -5458,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";
@@ -5484,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 ];
@@ -5538,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";
     };
   };
 
@@ -5666,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";
@@ -5774,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!";
@@ -6113,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";
@@ -6227,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 = {
@@ -6258,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 {
@@ -6309,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";
@@ -6381,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";
@@ -6392,6 +6776,23 @@ let
     };
   };
 
+  EncodeBase32GMP = buildPerlPackage {
+    pname = "Encode-Base32-GMP";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JW/JWANG/Encode-Base32-GMP-0.02.tar.gz";
+      sha256 = "454206fa7d82e55e03274698732341b607150f00e8e2aec58f35326a030832dc";
+    };
+    buildInputs = [ TestBase ];
+    propagatedBuildInputs = [ MathGMPz ];
+    meta = {
+      homepage = "https://metacpan.org/release/Encode-Base32-GMP";
+      description = "High speed Base32 encoding using GMP with BigInt and MD5 support";
+      license = stdenv.lib.licenses.mit;
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   EncodeDetect = buildPerlModule {
     pname = "Encode-Detect";
     version = "1.01";
@@ -6537,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 ];
@@ -6639,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";
@@ -6849,6 +7250,7 @@ let
       url = "mirror://cpan/authors/id/X/XA/XAOC/ExtUtils-PkgConfig-1.16.tar.gz";
       sha256 = "bbeaced995d7d8d10cfc51a3a5a66da41ceb2bc04fedcab50e10e6300e801c6e";
     };
+    nativeBuildInputs = [ buildPackages.pkgconfig ];
     propagatedBuildInputs = [ pkgs.pkgconfig ];
     meta = {
       homepage = "http://gtk2-perl.sourceforge.net";
@@ -6958,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 = {
@@ -7025,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 ];
@@ -7182,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";
@@ -7241,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 \
@@ -7292,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";
@@ -7344,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
@@ -7473,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";
@@ -7731,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 = {
@@ -7745,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;
@@ -7866,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 ];
@@ -7905,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";
@@ -7965,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
@@ -8066,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 ];
@@ -8309,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 = {
@@ -8323,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";
@@ -8514,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 = {
@@ -8618,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 ];
@@ -8998,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)";
@@ -9147,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 = {
@@ -9175,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";
@@ -9315,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 ];
@@ -9438,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
   };
@@ -9487,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.
@@ -9602,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 = {
@@ -9636,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";
@@ -9660,14 +10096,28 @@ let
     };
   };
 
-  # TODO: use CPAN version
+  IRCUtils = buildPerlPackage {
+    pname = "IRC-Utils";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HI/HINRIK/IRC-Utils-0.12.tar.gz";
+      sha256 = "c7d6311eb6c79e983833c9e6b4e8d426d07a9874d20f4bc641b313b99c9bc8a0";
+    };
+    meta = {
+      homepage = "http://metacpan.org/release/IRC-Utils";
+      description = "Common utilities for IRC-related tasks";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   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;
@@ -9786,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 ];
@@ -9841,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 {
@@ -9880,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";
@@ -9893,10 +10344,10 @@ let
 
   JSONValidator = buildPerlPackage {
     pname = "JSON-Validator";
-    version = "3.23";
+    version = "4.00";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/JSON-Validator-3.23.tar.gz";
-      sha256 = "1fzy2z7mkg5vgcjvykh5ay8yg6q496wi14x9wp5hc9agplsq7f0s";
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/JSON-Validator-4.00.tar.gz";
+      sha256 = "09p6n5ahsa13fmxb01siz9hcmyswgb05ac2njbhzim6cnx9d6cwj";
     };
     buildInputs = [ TestDeep ];
     propagatedBuildInputs = [ DataValidateDomain DataValidateIP Mojolicious NetIDNEncode YAMLLibYAML ];
@@ -10264,6 +10715,23 @@ let
     doCheck = false;
   };
 
+  LinkEmbedder = buildPerlPackage {
+    pname = "LinkEmbedder";
+    version = "1.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/LinkEmbedder-1.12.tar.gz";
+      sha256 = "1fd25bd6047b45cdcb1ab71a3d3bb0b36c71ec844a8742dee0bb34f8587fbd08";
+    };
+    buildInputs = [ TestDeep ];
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      homepage = "https://github.com/jhthorsen/linkembedder";
+      description = "Embed / expand oEmbed resources and other URL / links";
+      license = stdenv.lib.licenses.artistic2;
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   LinuxACL = buildPerlPackage {
     pname = "Linux-ACL";
     version = "0.05";
@@ -10338,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 = {
@@ -10431,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";
@@ -10698,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 = {
@@ -10748,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";
@@ -10840,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)
@@ -11006,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 = {
@@ -11060,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 = {
@@ -11074,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 {
@@ -11232,6 +11700,22 @@ let
     };
   };
 
+  MathCalcParser = buildPerlPackage {
+    pname = "Math-Calc-Parser";
+    version = "1.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/Math-Calc-Parser-1.005.tar.gz";
+      sha256 = "afc3eb496ab3a3a301b3437af07e197eb743c06090f0101dacf820302f2b7f75";
+    };
+    buildInputs = [ TestNeeds ];
+    meta = {
+      homepage = "https://github.com/Grinnz/Math-Calc-Parser";
+      description = "Parse and evaluate mathematical expressions";
+      license = stdenv.lib.licenses.artistic2;
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   MathCalcUnits = buildPerlPackage {
     pname = "Math-Calc-Units";
     version = "1.07";
@@ -11334,6 +11818,23 @@ let
     };
   };
 
+  MathGMPz = buildPerlPackage {
+    pname = "Math-GMPz";
+    version = "0.48";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SI/SISYPHUS/Math-GMPz-0.48.tar.gz";
+      sha256 = "f4459ed32fb9bb793e2504fd442c515fd468a4a34d2a1f98e46ca41e275c73cb";
+    };
+    buildInputs = [ pkgs.gmp ];
+    NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
+    meta = {
+      homepage = "https://github.com/sisyphus/math-gmpz";
+      description = "Perl interface to the GMP integer functions";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   MathGeometryVoronoi = buildPerlPackage {
     pname = "Math-Geometry-Voronoi";
     version = "1.3";
@@ -11372,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";
@@ -11383,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";
@@ -11582,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";
@@ -11596,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";
@@ -11682,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 ];
@@ -11717,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";
@@ -11776,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";
@@ -12230,16 +12875,32 @@ let
 
   Mojolicious = buildPerlPackage {
     pname = "Mojolicious";
-    version = "8.32";
+    version = "8.55";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-8.32.tar.gz";
-      sha256 = "11fyz534syihisl8498655bqq4y8c73a6xhvl1wlq4axdgkm0d2h";
+      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-8.55.tar.gz";
+      sha256 = "116f79a8jvdk0zfj34gp3idhxgk4l8qq4ka6pwhdp8pmks969w0x";
     };
     meta = {
       homepage = "https://mojolicious.org";
       description = "Real-time web framework";
       license = stdenv.lib.licenses.artistic2;
-      maintainers = [ maintainers.thoughtpolice ];
+      maintainers = with maintainers; [ thoughtpolice sgo ];
+    };
+  };
+
+  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 ];
     };
   };
 
@@ -12261,10 +12922,10 @@ let
 
   MojoliciousPluginOpenAPI = buildPerlPackage {
     pname = "Mojolicious-Plugin-OpenAPI";
-    version = "2.21";
+    version = "3.33";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-OpenAPI-2.21.tar.gz";
-      sha256 = "34b1f42d846c26d8be3a3556dc5a02dd7ab47c5612b41d3caf1ce6bc16101dc2";
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-OpenAPI-3.33.tar.gz";
+      sha256 = "0lccvanc3cici83j6fx7gg3wdcsvgv8d7hzd06r0q1mp8329sbv4";
     };
     propagatedBuildInputs = [ JSONValidator ];
     meta = {
@@ -12277,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";
@@ -12307,6 +12968,22 @@ let
     };
   };
 
+  MojoliciousPluginWebpack = buildPerlPackage {
+    pname = "Mojolicious-Plugin-Webpack";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-Webpack-0.12.tar.gz";
+      sha256 = "2a0856e68446fc22b46692d9a6737f78467654f31e58ad1935e708bddf806d2c";
+    };
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      homepage = "https://github.com/jhthorsen/mojolicious-plugin-webpack";
+      description = "Mojolicious <3 Webpack";
+      license = stdenv.lib.licenses.artistic2;
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   MojoRedis = buildPerlPackage {
     pname = "Mojo-Redis";
     version = "3.24";
@@ -12342,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";
@@ -12389,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";
@@ -12436,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 ];
@@ -12545,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 ];
@@ -12688,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 ];
@@ -13327,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";
@@ -13357,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 = ''
@@ -13544,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 ];
@@ -13652,9 +14365,20 @@ let
       url = "mirror://cpan/authors/id/D/DA/DANBERR/Net-DBus-1.2.0.tar.gz";
       sha256 = "e7a1ac9ef4a1235b3fdbd5888f86c347182306467bd79abc9b0756a64b441cbc";
     };
-    nativeBuildInputs = [ pkgs.buildPackages.pkgconfig ];
+    nativeBuildInputs = [ buildPackages.pkgconfig ];
     buildInputs = [ pkgs.dbus TestPod TestPodCoverage ];
     propagatedBuildInputs = [ XMLTwig ];
+
+    # https://gitlab.com/berrange/perl-net-dbus/-/merge_requests/19
+    patches = (fetchpatch {
+      url = "https://gitlab.com/berrange/perl-net-dbus/-/commit/6bac8f188fb06e5e5edd27aee672d66b7c28caa4.patch";
+      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";
@@ -13664,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";
@@ -13679,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 {
@@ -13747,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";
@@ -13803,6 +14543,22 @@ let
     };
   };
 
+  NetIPLite = buildPerlPackage {
+    pname = "Net-IP-Lite";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AL/ALEXKOM/Net-IP-Lite-0.03.tar.gz";
+      sha256 = "c9916e6cfaa53be275379ce4b2a550ae176ddfab50dad43b43ed43e8267802a9";
+    };
+    buildInputs = [ TestException ];
+    meta = {
+      homepage = "https://metacpan.org/pod/Net::IP::Lite";
+      description = "Perl extension for manipulating IPv4/IPv6 addresses";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   NetIPv4Addr = buildPerlPackage {
     pname = "Net-IPv4Addr";
     version = "0.10";
@@ -13868,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";
@@ -13894,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 ];
@@ -14279,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";
@@ -14312,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";
@@ -14369,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";
@@ -14620,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";
     };
   };
 
@@ -14640,6 +15412,21 @@ let
     };
   };
 
+  ParseIRC = buildPerlPackage {
+    pname = "Parse-IRC";
+    version = "1.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Parse-IRC-1.22.tar.gz";
+      sha256 = "457b09897f37d38a7054f9563247365427fe24101622ed4c7f054723a45b58d5";
+    };
+    meta = {
+      homepage = "https://github.com/bingos/parse-irc";
+      description = "A parser for the IRC protocol";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   ParseLocalDistribution = buildPerlPackage {
      pname = "Parse-LocalDistribution";
      version = "0.19";
@@ -14721,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";
@@ -14764,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";
@@ -14832,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 ];
@@ -14847,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 = {
@@ -14874,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";
@@ -14893,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";
@@ -14912,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";
@@ -15126,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 ];
@@ -15263,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
@@ -15336,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 ];
@@ -15350,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 ];
@@ -15571,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 ];
@@ -15614,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 {
@@ -15728,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";
@@ -15796,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 ];
@@ -15849,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 ];
   };
 
@@ -15904,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 ];
      };
@@ -15934,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";
@@ -15977,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 ];
@@ -16041,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";
@@ -16216,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 = {
@@ -16244,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";
@@ -16342,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";
@@ -16359,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 = {
@@ -16375,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";
@@ -16634,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 ];
@@ -16702,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 ];
@@ -16744,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 {
@@ -16759,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 ];
@@ -16859,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";
@@ -17034,6 +17864,7 @@ let
       description = "String::Interpolate - Wrapper for builtin the Perl interpolation engine.";
       license = licenses.gpl1Plus;
     };
+    propagatedBuildInputs = [ PadWalker SafeHole ];
   };
 
   StringMkPasswd = buildPerlPackage {
@@ -17163,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 = {
@@ -17234,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";
@@ -17337,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";
@@ -17417,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";
@@ -17505,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 ];
@@ -17567,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;
@@ -17702,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 {
@@ -17985,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 = {
@@ -18166,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 = {
@@ -18222,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 = {
     };
@@ -18506,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 ];
@@ -18582,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";
@@ -18614,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 ];
@@ -18706,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 = {
@@ -18719,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";
@@ -18804,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 = {
@@ -18847,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 ];
@@ -18897,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";
@@ -19124,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";
@@ -19243,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 = {
@@ -19284,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 = {
@@ -19390,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";
@@ -19513,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";
@@ -19820,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 = {
@@ -19933,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";
@@ -20097,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";
@@ -20210,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";
     };
   };
 
@@ -20296,6 +21218,21 @@ let
     };
   };
 
+  TimePiece = buildPerlPackage {
+    pname = "Time-Piece";
+    version = "1.3401";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ES/ESAYM/Time-Piece-1.3401.tar.gz";
+      sha256 = "4b55b7bb0eab45cf239a54dfead277dfa06121a43e63b3fce0853aecfdb04c27";
+    };
+    meta = {
+      description = "Object Oriented time objects";
+      homepage = "https://metacpan.org/release/Time-Piece";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   Tirex = buildPerlPackage rec {
     pname = "Tirex";
     version = "0.6.1";
@@ -20333,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 ];
@@ -20430,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 = {
@@ -20557,6 +21494,22 @@ let
     };
   };
 
+  UnicodeUTF8 = buildPerlPackage {
+    pname = "Unicode-UTF8";
+    version = "0.62";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHANSEN/Unicode-UTF8-0.62.tar.gz";
+      sha256 = "fa8722d0b74696e332fddd442994436ea93d3bfc7982d4babdcedfddd657d0f6";
+    };
+    buildInputs = [ TestFatal ];
+    meta = {
+      homepage = "https://github.com/chansen/p5-unicode-utf8";
+      description = "Encoding and decoding of UTF-8 encoding form";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   UnixGetrusage = buildPerlPackage {
     pname = "Unix-Getrusage";
     version = "0.03";
@@ -20820,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 {
@@ -20848,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;
@@ -20860,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 {
@@ -21120,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 ];
   };
 
@@ -21178,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) ''
@@ -21243,6 +22196,22 @@ let
     };
   };
 
+  XMLRPCLite = buildPerlPackage {
+    pname = "XMLRPC-Lite";
+    version = "0.717";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PH/PHRED/XMLRPC-Lite-0.717.tar.gz";
+      sha256 = "0925md6jhzgpsibwgny4my461b2wngm8dhxlcry8pbqzrgrab7rs";
+    };
+    propagatedBuildInputs = [ SOAPLite ];
+    # disable tests that require network
+    preCheck = "rm t/{26-xmlrpc.t,37-mod_xmlrpc.t}";
+    meta = {
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      description = "Client and server implementation of XML-RPC protocol";
+    };
+  };
+
   XMLRSS = buildPerlModule {
     pname = "XML-RSS";
     version = "1.61";
@@ -21403,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 ];
@@ -21454,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;
@@ -21471,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 0fecf30e736..578dcaf761b 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -1,9 +1,9 @@
 { 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
-, readline, rsync
+, readline, rsync, fetchpatch
 }:
 
 let
@@ -57,12 +57,12 @@ in
     };
 
     composer = mkDerivation rec {
-      version = "1.10.5";
+      version = "1.10.8";
       pname = "composer";
 
       src = pkgs.fetchurl {
         url = "https://getcomposer.org/download/${version}/composer.phar";
-        sha256 = "0a9iwhd7ijm8gkp3zadxza0xb6xwa5ps0d16pz4mz2p21gfzvwym";
+        sha256 = "1rbqa56bsc3wrhk8djxdzh755zx1qrqp3wrdid7x0djzbmzp6h2c";
       };
 
       dontUnpack = true;
@@ -202,7 +202,7 @@ in
         maintainers = with maintainers; [ javaguirre ] ++ teams.php.members;
       };
     };
- 
+
     phpmd = mkDerivation rec {
       version = "2.8.2";
       pname = "phpmd";
@@ -230,14 +230,14 @@ in
         broken = !isPhp74;
       };
     };
- 
+
     phpstan = mkDerivation rec {
-      version = "0.12.19";
+      version = "0.12.32";
       pname = "phpstan";
 
       src = pkgs.fetchurl {
         url = "https://github.com/phpstan/phpstan/releases/download/${version}/phpstan.phar";
-        sha256 = "15fz7rixi9s46qqxpj26349aky7wxqnzmfsnwlh1f2p4jsfd85ki";
+        sha256 = "0sb7yhjjh4wj8wbv4cdf0n1lvhx1ciz7ch8lr73maajj2xbvy1zk";
       };
 
       phases = [ "installPhase" ];
@@ -547,7 +547,7 @@ in
       nativeBuildInputs = [ pkgs.pkgconfig ];
       buildInputs = with pkgs; [
         cyrus_sasl
-        icu
+        icu64
         openssl
         snappy
         zlib
@@ -709,6 +709,26 @@ in
       meta.broken = isPhp74;
     };
 
+    rdkafka = buildPecl {
+      version = "4.0.3";
+      pname = "rdkafka";
+
+      sha256 = "1g00p911raxcc7n2w9pzadxaggw5c564md6hjvqfs9ip550y5x16";
+
+      buildInputs = with pkgs; [ rdkafka pcre' ];
+
+      postPhpize = ''
+        substituteInPlace configure \
+          --replace 'SEARCH_PATH="/usr/local /usr"' 'SEARCH_PATH=${pkgs.rdkafka}'
+      '';
+
+      meta = {
+        description = "Kafka client based on librdkafka";
+        homepage = "https://github.com/arnaud-lb/php-rdkafka";
+        maintainers = lib.teams.php.members;
+      };
+    };
+
     redis = buildPecl {
       version = "5.1.1";
       pname = "redis";
@@ -834,6 +854,9 @@ in
       inherit configureFlags internalDeps buildInputs
         zendExtension doCheck;
 
+      prePatch = "pushd ../..";
+      postPatch = "popd";
+
       preConfigure = ''
         nullglobRestore=$(shopt -p nullglob)
         shopt -u nullglob   # To make ?-globbing work
@@ -924,6 +947,12 @@ in
         enable = lib.versionOlder php.version "7.4"; }
       { name = "gettext";
         buildInputs = [ gettext ];
+        patches = lib.optionals (lib.versionOlder php.version "7.4") [
+          (fetchpatch {
+            url = "https://github.com/php/php-src/commit/632b6e7aac207194adc3d0b41615bfb610757f41.patch";
+            sha256 = "0xn3ivhc4p070vbk5yx0mzj2n7p04drz3f98i77amr51w0vzv046";
+          })
+        ];
         postPhpize = ''substituteInPlace configure --replace 'as_fn_error $? "Cannot locate header file libintl.h" "$LINENO" 5' ':' '';
         configureFlags = "--with-gettext=${gettext}"; }
       { name = "gmp";
@@ -942,7 +971,13 @@ in
         # uwimap doesn't build on darwin.
         enable = (!stdenv.isDarwin); }
       # interbase (7.3, 7.2)
-      { name = "intl"; buildInputs = [ icu ]; }
+      { name = "intl";
+        buildInputs = [ icu64 ];
+        patches = lib.optional (lib.versionOlder php.version "7.4") (fetchpatch {
+          url = "https://github.com/php/php-src/commit/93a9b56c90c334896e977721bfb3f38b1721cec6.patch";
+          sha256 = "055l40lpyhb0rbjn6y23qkzdhvpp7inbnn6x13cpn4inmhjqfpg4";
+        });
+      }
       { name = "json"; }
       { name = "ldap";
         buildInputs = [ openldap cyrus_sasl ];
@@ -963,14 +998,14 @@ in
         # The configure script doesn't correctly add library link
         # flags, so we add them to the variable used by the Makefile
         # when linking.
-        MYSQLND_SHARED_LIBADD = "-lssl -lcrypto -lz";
+        MYSQLND_SHARED_LIBADD = "-lssl -lcrypto";
         # The configure script builds a config.h which is never
         # included. Let's include it in the main header file
         # included by all .c-files.
         patches = [
           (pkgs.writeText "mysqlnd_config.patch" ''
-            --- a/mysqlnd.h
-            +++ b/mysqlnd.h
+            --- a/ext/mysqlnd/mysqlnd.h
+            +++ b/ext/mysqlnd/mysqlnd.h
             @@ -1,3 +1,6 @@
             +#ifdef HAVE_CONFIG_H
             +#include "config.h"
@@ -979,6 +1014,19 @@ 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
+            @@ -48,7 +48,7 @@
+             #define MYSQLND_DBG_ENABLED 0
+             #endif
+
+            -#if defined(MYSQLND_COMPRESSION_WANTED) && defined(HAVE_ZLIB)
+            +#if defined(MYSQLND_COMPRESSION_WANTED)
+             #define MYSQLND_COMPRESSION_ENABLED 1
+             #endif
+          '')
         ];
         postPhpize = lib.optionalString (lib.versionOlder php.version "7.4") ''
           substituteInPlace configure --replace '$OPENSSL_LIBDIR' '${openssl}/lib' \
@@ -993,8 +1041,8 @@ in
         # included after the ifdef...
         patches = lib.optional (lib.versionOlder php.version "7.4") [
           (pkgs.writeText "zend_file_cache_config.patch" ''
-            --- a/zend_file_cache.c
-            +++ b/zend_file_cache.c
+            --- a/ext/opcache/zend_file_cache.c
+            +++ b/ext/opcache/zend_file_cache.c
             @@ -27,9 +27,9 @@
              #include "ext/standard/md5.h"
              #endif
@@ -1122,6 +1170,10 @@ in
         doCheck = false; }
       { name = "zlib";
         buildInputs = [ zlib ];
+        patches = lib.optionals (lib.versionOlder php.version "7.4") [
+          # Derived from https://github.com/php/php-src/commit/f16b012116d6c015632741a3caada5b30ef8a699
+          ../development/interpreters/php/zlib-darwin-tests.patch
+        ];
         configureFlags = [ "--with-zlib" ]
           ++ lib.optional (lib.versionOlder php.version "7.4") [ "--with-zlib-dir=${zlib.dev}" ]; }
     ];
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index c356700167e..8ca643bf6ef 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -118,6 +118,7 @@ in {
     pythonCatchConflictsHook
     pythonImportsCheckHook
     pythonNamespacesHook
+    pythonRecompileBytecodeHook
     pythonRemoveBinBytecodeHook
     pythonRemoveTestsDirHook
     setuptoolsBuildHook
@@ -149,6 +150,8 @@ in {
 
   pynamodb = callPackage ../development/python-modules/pynamodb { };
 
+  aadict = callPackage ../development/python-modules/aadict { };
+
   absl-py = callPackage ../development/python-modules/absl-py { };
 
   adb-homeassistant = callPackage ../development/python-modules/adb-homeassistant { };
@@ -181,6 +184,8 @@ in {
 
   aioamqp = callPackage ../development/python-modules/aioamqp { };
 
+  aiojobs = callPackage ../development/python-modules/aiojobs { };
+
   aioredis = callPackage ../development/python-modules/aioredis { };
 
   aiorun = callPackage ../development/python-modules/aiorun { };
@@ -506,7 +511,9 @@ in {
 
   baselines = callPackage ../development/python-modules/baselines { };
 
-  bash_kernel = callPackage ../development/python-modules/bash_kernel { };
+  bash_kernel = callPackage ../development/python-modules/bash_kernel {
+    inherit (pkgs) bash;
+  };
 
   bashlex = callPackage ../development/python-modules/bashlex { };
 
@@ -516,6 +523,12 @@ in {
 
   beanstalkc = callPackage ../development/python-modules/beanstalkc { };
 
+  beancount_docverif = callPackage ../development/python-modules/beancount_docverif { };
+
+  biplist = callPackage ../development/python-modules/biplist { };
+
+  bip_utils = callPackage ../development/python-modules/bip_utils { };
+
   bitarray = callPackage ../development/python-modules/bitarray { };
 
   bitcoinlib = callPackage ../development/python-modules/bitcoinlib { };
@@ -534,10 +547,18 @@ in {
 
   breezy = callPackage ../development/python-modules/breezy { };
 
+  brother = callPackage ../development/python-modules/brother { };
+
+  build = callPackage ../development/python-modules/build { };
+
+  bytecode = callPackage ../development/python-modules/bytecode { };
+
   ciso8601 = callPackage ../development/python-modules/ciso8601 { };
 
   deepdiff = callPackage ../development/python-modules/deepdiff { };
 
+  deepmerge = callPackage ../development/python-modules/deepmerge { };
+
   django-sesame = callPackage ../development/python-modules/django-sesame { };
 
   bravado-core = callPackage ../development/python-modules/bravado-core { };
@@ -552,6 +573,8 @@ in {
 
   browsermob-proxy = disabledIf isPy3k (callPackage ../development/python-modules/browsermob-proxy {});
 
+  btrfs = callPackage ../development/python-modules/btrfs { };
+
   bt_proximity = callPackage ../development/python-modules/bt-proximity { };
 
   bugseverywhere = throw "bugseverywhere has been removed: Abandoned by upstream."; # Added 2019-11-27
@@ -572,6 +595,14 @@ in {
 
   cdecimal = callPackage ../development/python-modules/cdecimal { };
 
+  certbot = callPackage ../development/python-modules/certbot { };
+
+  certbot-dns-cloudflare = callPackage ../development/python-modules/certbot-dns-cloudflare { };
+
+  certbot-dns-rfc2136 = callPackage ../development/python-modules/certbot-dns-rfc2136 { };
+
+  certbot-dns-route53 = callPackage ../development/python-modules/certbot-dns-route53 { };
+
   cfn-flip = callPackage ../development/python-modules/cfn-flip { };
 
   chalice = callPackage ../development/python-modules/chalice { };
@@ -606,6 +637,8 @@ in {
 
   convertdate = callPackage ../development/python-modules/convertdate { };
 
+  cot = callPackage ../development/python-modules/cot { };
+
   crc32c = callPackage ../development/python-modules/crc32c { };
 
   curio = callPackage ../development/python-modules/curio { };
@@ -642,6 +675,8 @@ in {
 
   dkimpy = callPackage ../development/python-modules/dkimpy { };
 
+  diceware = callPackage ../development/python-modules/diceware { };
+
   dictionaries = callPackage ../development/python-modules/dictionaries { };
 
   diff_cover = callPackage ../development/python-modules/diff_cover { };
@@ -674,6 +709,8 @@ in {
     inherit (pkgs) dbus pkgconfig;
   };
 
+  debts = callPackage ../development/python-modules/debts { };
+
   dftfit = callPackage ../development/python-modules/dftfit { };
 
   dicom2nifti = callPackage ../development/python-modules/dicom2nifti { };
@@ -684,6 +721,9 @@ in {
 
   parver = callPackage ../development/python-modules/parver { };
   arpeggio = callPackage ../development/python-modules/arpeggio { };
+
+  influxdb-client = callPackage ../development/python-modules/influxdb-client { };
+
   invoke = callPackage ../development/python-modules/invoke { };
 
   distorm3 = callPackage ../development/python-modules/distorm3 { };
@@ -698,6 +738,8 @@ in {
 
   diff-match-patch = callPackage ../development/python-modules/diff-match-patch { };
 
+  eliot = callPackage ../development/python-modules/eliot {};
+
   entrance = callPackage ../development/python-modules/entrance { routerFeatures = false; };
 
   entrance-with-router-features = callPackage ../development/python-modules/entrance { routerFeatures = true; };
@@ -724,6 +766,8 @@ in {
 
   filemagic = callPackage ../development/python-modules/filemagic { };
 
+  finalfusion = callPackage ../development/python-modules/finalfusion { };
+
   fints = callPackage ../development/python-modules/fints { };
 
   fire = callPackage ../development/python-modules/fire { };
@@ -738,10 +782,10 @@ in {
 
   flufl_lock = callPackage ../development/python-modules/flufl/lock.nix { };
 
-  fluidasserts = callPackage ../development/python-modules/fluidasserts { };
-
   foxdot = callPackage ../development/python-modules/foxdot { };
 
+  freetype-py = callPackage ../development/python-modules/freetype-py { };
+
   fsspec = callPackage ../development/python-modules/fsspec { };
 
   furl = callPackage ../development/python-modules/furl { };
@@ -768,8 +812,15 @@ in {
 
   glob2 = callPackage ../development/python-modules/glob2 { };
 
+  globre = callPackage ../development/python-modules/globre { };
+
   glom = callPackage ../development/python-modules/glom { };
 
+  gdcm = disabledIf isPy27 (toPythonModule (pkgs.gdcm.override {
+    inherit (self) python;
+    enablePython = true;
+  }));
+
   goocalendar = callPackage ../development/python-modules/goocalendar { };
 
   grandalf = callPackage ../development/python-modules/grandalf { };
@@ -801,6 +852,8 @@ in {
     hdf5 = pkgs.hdf5-mpi;
   };
 
+  h5netcdf = callPackage ../development/python-modules/h5netcdf { };
+
   ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { };
 
   habanero = callPackage ../development/python-modules/habanero { };
@@ -813,6 +866,10 @@ in {
 
   hdmedians = callPackage ../development/python-modules/hdmedians { };
 
+  hdlparse = callPackage ../development/python-modules/hdlparse { };
+
+  hiyapyco = callPackage ../development/python-modules/hiyapyco { };
+
   hocr-tools = callPackage ../development/python-modules/hocr-tools { };
 
   holidays = callPackage ../development/python-modules/holidays { };
@@ -831,6 +888,8 @@ in {
 
   httptools = callPackage ../development/python-modules/httptools { };
 
+  hwi = callPackage ../development/python-modules/hwi { };
+
   i3ipc = callPackage ../development/python-modules/i3ipc { };
 
   ignite = callPackage ../development/python-modules/ignite { };
@@ -851,6 +910,12 @@ in {
 
   itanium_demangler = callPackage ../development/python-modules/itanium_demangler { };
 
+  itemadapter = callPackage ../development/python-modules/itemadapter { };
+
+  itemloaders = callPackage ../development/python-modules/itemloaders { };
+
+  iterm2 = callPackage ../development/python-modules/iterm2 { };
+
   janus = callPackage ../development/python-modules/janus { };
 
   jc = callPackage ../development/python-modules/jc { };
@@ -869,6 +934,8 @@ in {
 
   kconfiglib = callPackage ../development/python-modules/kconfiglib { };
 
+  kinparse = callPackage ../development/python-modules/kinparse { };
+
   labelbox = callPackage ../development/python-modules/labelbox { };
 
   lammps-cython = callPackage ../development/python-modules/lammps-cython {
@@ -891,6 +958,8 @@ in {
 
   limitlessled = callPackage ../development/python-modules/limitlessled { };
 
+  livelossplot = callPackage ../development/python-modules/livelossplot { };
+
   lmtpd = callPackage ../development/python-modules/lmtpd { };
 
   logster = callPackage ../development/python-modules/logster { };
@@ -899,6 +968,8 @@ in {
 
   logzero = callPackage ../development/python-modules/logzero { };
 
+  mac_alias = callPackage ../development/python-modules/mac_alias { };
+
   macropy = callPackage ../development/python-modules/macropy { };
 
   mail-parser = callPackage ../development/python-modules/mail-parser { };
@@ -937,6 +1008,8 @@ in {
     mpi = pkgs.openmpi;
   };
 
+  pytest-freezegun = callPackage ../development/python-modules/pytest-freezegun { };
+
   python-baseconv = callPackage ../development/python-modules/python-baseconv { };
 
   pycognito = callPackage ../development/python-modules/pycognito { };
@@ -963,6 +1036,8 @@ in {
 
   nanomsg-python = callPackage ../development/python-modules/nanomsg-python { inherit (pkgs) nanomsg; };
 
+  nassl = callPackage ../development/python-modules/nassl { };
+
   nbsmoke = callPackage ../development/python-modules/nbsmoke { };
 
   nbsphinx = callPackage ../development/python-modules/nbsphinx { };
@@ -999,6 +1074,8 @@ in {
 
   numericalunits = callPackage ../development/python-modules/numericalunits { };
 
+  nunavut = callPackage ../development/python-modules/nunavut { };
+
   oath = callPackage ../development/python-modules/oath { };
 
   oauthenticator = callPackage ../development/python-modules/oauthenticator { };
@@ -1053,6 +1130,8 @@ in {
 
   pyperf = callPackage ../development/python-modules/pyperf { };
 
+  pyphotonfile = callPackage ../development/python-modules/pyphotonfile { };
+
   pefile = callPackage ../development/python-modules/pefile { };
 
   perfplot = callPackage ../development/python-modules/perfplot { };
@@ -1067,6 +1146,8 @@ in {
 
   poetry = callPackage ../development/python-modules/poetry { };
 
+  poetry-core = callPackage ../development/python-modules/poetry-core { };
+
   polyline = callPackage ../development/python-modules/polyline { };
 
   postorius = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/postorius.nix { });
@@ -1250,10 +1331,14 @@ in {
 
   pynisher = callPackage ../development/python-modules/pynisher { };
 
+  pynput = callPackage ../development/python-modules/pynput { };
+
   pyparser = callPackage ../development/python-modules/pyparser { };
 
   pyres = callPackage ../development/python-modules/pyres { };
 
+  PyRMVtransport = callPackage ../development/python-modules/PyRMVtransport { };
+
   pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix {
     inherit (pkgs) pkgconfig;
   };
@@ -1283,6 +1368,8 @@ in {
 
   pyscreenshot = callPackage ../development/python-modules/pyscreenshot { };
 
+  pydsdl = callPackage ../development/python-modules/pydsdl { };
+
   pyside = callPackage ../development/python-modules/pyside {
     inherit (pkgs) mesa;
   };
@@ -1339,6 +1426,8 @@ in {
 
   pytest-env = callPackage ../development/python-modules/pytest-env { };
 
+  pytest-factoryboy = callPackage ../development/python-modules/pytest-factoryboy { };
+
   pytest-flask = callPackage ../development/python-modules/pytest-flask { };
 
   pytest-mypy = callPackage ../development/python-modules/pytest-mypy { };
@@ -1353,6 +1442,10 @@ in {
 
   pytest-tornado = callPackage ../development/python-modules/pytest-tornado { };
 
+  pytest-tornasync = callPackage ../development/python-modules/pytest-tornasync { };
+
+  pytest-trio = callPackage ../development/python-modules/pytest-trio { };
+
   pytest-twisted = callPackage ../development/python-modules/pytest-twisted { };
 
   pytest-xprocess = callPackage ../development/python-modules/pytest-xprocess { };
@@ -1361,6 +1454,8 @@ in {
 
   pytmx = callPackage ../development/python-modules/pytmx { };
 
+  pythonmagick = callPackage ../development/python-modules/pythonmagick { };
+
   python-binance = callPackage ../development/python-modules/python-binance { };
 
   python-dbusmock = callPackage ../development/python-modules/python-dbusmock { };
@@ -1401,6 +1496,8 @@ in {
 
   python-redis-lock = callPackage ../development/python-modules/python-redis-lock { };
 
+  python-rtmidi = callPackage ../development/python-modules/python-rtmidi { };
+
   python-sql = callPackage ../development/python-modules/python-sql { };
 
   python-snappy = callPackage ../development/python-modules/python-snappy {
@@ -1439,6 +1536,8 @@ in {
 
   pyvoro = callPackage ../development/python-modules/pyvoro { };
 
+  radish-bdd = callPackage ../development/python-modules/radish-bdd { };
+
   relatorio = callPackage ../development/python-modules/relatorio { };
 
   reproject = callPackage ../development/python-modules/reproject { };
@@ -1455,10 +1554,14 @@ in {
 
   rq = callPackage ../development/python-modules/rq { };
 
+  rtmidi-python = callPackage ../development/python-modules/rtmidi-python { };
+
   rx = callPackage ../development/python-modules/rx { };
 
   sabyenc = callPackage ../development/python-modules/sabyenc { };
 
+  sabyenc3 = callPackage ../development/python-modules/sabyenc3 { };
+
   salmon-mail = callPackage ../development/python-modules/salmon-mail { };
 
   sanic-auth = callPackage ../development/python-modules/sanic-auth { };
@@ -1475,6 +1578,13 @@ in {
     inherit (pkgs) sentencepiece pkgconfig;
   };
 
+  tokenizers = disabledIf (!isPy3k)
+    (toPythonModule (callPackage ../development/python-modules/tokenizers { }));
+
+  towncrier = callPackage ../development/python-modules/towncrier {
+    inherit (pkgs) git;
+  };
+
   transformers = callPackage ../development/python-modules/transformers { };
 
   transforms3d = callPackage ../development/python-modules/transforms3d { };
@@ -1505,6 +1615,8 @@ in {
 
   sklearn-deap = callPackage ../development/python-modules/sklearn-deap { };
 
+  skorch = callPackage ../development/python-modules/skorch { };
+
   slackclient = callPackage ../development/python-modules/slackclient { };
 
   slicedimage = callPackage ../development/python-modules/slicedimage { };
@@ -1533,12 +1645,18 @@ in {
 
   spglib = callPackage ../development/python-modules/spglib { };
 
+  spidev = callPackage ../development/python-modules/spidev { };
+
+  srvlookup = callPackage ../development/python-modules/srvlookup { };
+
   sshpubkeys = callPackage ../development/python-modules/sshpubkeys { };
 
   sshtunnel = callPackage ../development/python-modules/sshtunnel { };
 
   sslib = callPackage ../development/python-modules/sslib { };
 
+  sslyze = callPackage ../development/python-modules/sslyze { };
+
   statistics = callPackage ../development/python-modules/statistics { };
 
   stm32loader = callPackage ../development/python-modules/stm32loader { };
@@ -1565,10 +1683,14 @@ in {
     hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; };
   };
 
+  tag-expressions = callPackage ../development/python-modules/tag-expressions { };
+
   tableaudocumentapi = callPackage ../development/python-modules/tableaudocumentapi { };
 
   tesserocr = callPackage ../development/python-modules/tesserocr { };
 
+  tls-parser = callPackage ../development/python-modules/tls-parser { };
+
   trueskill = callPackage ../development/python-modules/trueskill { };
 
   trustme = callPackage ../development/python-modules/trustme {};
@@ -1599,18 +1721,40 @@ in {
 
   unifi = callPackage ../development/python-modules/unifi { };
 
+  uvcclient = callPackage ../development/python-modules/uvcclient { };
+
   uvloop = callPackage ../development/python-modules/uvloop {
     inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
   };
 
+  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";
+      };
+    });
+  };
+
   pyunifi = callPackage ../development/python-modules/pyunifi { };
 
   vdf = callPackage ../development/python-modules/vdf { };
 
+  vdirsyncer = callPackage ../development/python-modules/vdirsyncer {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices Security;
+    inherit (pkgs) pkg-config openssl rustPlatform;
+  };
+
+  vdirsyncerStable = callPackage ../development/python-modules/vdirsyncer/stable.nix { };
+
   vidstab = callPackage ../development/python-modules/vidstab { };
 
   webapp2 = callPackage ../development/python-modules/webapp2 { };
 
+  webdavclient3 = callPackage ../development/python-modules/webdavclient3 { };
+
   wordcloud = callPackage ../development/python-modules/wordcloud { };
 
   wrf-python = callPackage ../development/python-modules/wrf-python { };
@@ -1808,6 +1952,8 @@ in {
 
   async_generator = callPackage ../development/python-modules/async_generator { };
 
+  async-upnp-client = callPackage ../development/python-modules/async-upnp-client { };
+
   asn1ate = callPackage ../development/python-modules/asn1ate { };
 
   atlassian-python-api = callPackage ../development/python-modules/atlassian-python-api { };
@@ -1853,6 +1999,8 @@ in {
 
   backcall = callPackage ../development/python-modules/backcall { };
 
+  backoff = callPackage ../development/python-modules/backoff { };
+
   backports_abc = callPackage ../development/python-modules/backports_abc { };
 
   backports_functools_lru_cache = callPackage ../development/python-modules/backports_functools_lru_cache { };
@@ -1906,10 +2054,14 @@ in {
 
   bids-validator = callPackage ../development/python-modules/bids-validator { };
 
-  binwalk = callPackage ../development/python-modules/binwalk { };
+  binwalk = callPackage ../development/python-modules/binwalk {
+    pyqtgraph = null;
+    matplotlib = null;
+  };
 
   binwalk-full = appendToName "full" (self.binwalk.override {
     pyqtgraph = self.pyqtgraph;
+    matplotlib = self.matplotlib;
   });
 
   bitmath = callPackage ../development/python-modules/bitmath { };
@@ -1918,8 +2070,6 @@ in {
 
   caldav = callPackage ../development/python-modules/caldav { };
 
-  caldavclientlibrary-asynk = callPackage ../development/python-modules/caldavclientlibrary-asynk { };
-
   biopython = callPackage ../development/python-modules/biopython { };
 
   bedup = callPackage ../development/python-modules/bedup { };
@@ -1972,13 +2122,17 @@ in {
 
   chevron = callPackage ../development/python-modules/chevron {};
 
+  ci-info = callPackage ../development/python-modules/ci-info { };
+
+  ci-py = callPackage ../development/python-modules/ci-py { };
+
   cli-helpers = callPackage ../development/python-modules/cli-helpers {};
 
   cmarkgfm = callPackage ../development/python-modules/cmarkgfm { };
 
-  cirq = callPackage ../development/python-modules/cirq {
-    pythonProtobuf = self.protobuf;
-  };
+  cirq = callPackage ../development/python-modules/cirq { };
+
+  citeproc-py = callPackage ../development/python-modules/citeproc-py { };
 
   colorcet = callPackage ../development/python-modules/colorcet { };
 
@@ -1986,6 +2140,8 @@ in {
 
   colorclass = callPackage ../development/python-modules/colorclass {};
 
+  colorful = callPackage ../development/python-modules/colorful {};
+
   colorlog = callPackage ../development/python-modules/colorlog { };
 
   colorspacious = callPackage ../development/python-modules/colorspacious { };
@@ -2002,6 +2158,8 @@ in {
 
   cornice = callPackage ../development/python-modules/cornice { };
 
+  crashtest = callPackage ../development/python-modules/crashtest { };
+
   cram = callPackage ../development/python-modules/cram { };
 
   crc16 = callPackage ../development/python-modules/crc16 { };
@@ -2044,12 +2202,16 @@ in {
 
   dataclasses = callPackage ../development/python-modules/dataclasses { };
 
+  dataclasses-json = callPackage ../development/python-modules/dataclasses-json { };
+
   debian = callPackage ../development/python-modules/debian {};
 
   defusedxml = callPackage ../development/python-modules/defusedxml {};
 
   dodgy = callPackage ../development/python-modules/dodgy { };
 
+  duecredit = callPackage ../development/python-modules/duecredit { };
+
   dugong = callPackage ../development/python-modules/dugong {};
 
   easysnmp = callPackage ../development/python-modules/easysnmp {
@@ -2083,8 +2245,6 @@ in {
 
   bitstring = callPackage ../development/python-modules/bitstring { };
 
-  blaze = callPackage ../development/python-modules/blaze { };
-
   html5-parser = callPackage ../development/python-modules/html5-parser {
     inherit (pkgs) pkgconfig;
   };
@@ -2095,6 +2255,8 @@ in {
 
   bleach = callPackage ../development/python-modules/bleach { };
 
+  bleak = callPackage ../development/python-modules/bleak { };
+
   blinker = callPackage ../development/python-modules/blinker { };
 
   blockdiag = callPackage ../development/python-modules/blockdiag { };
@@ -2105,6 +2267,8 @@ in {
 
   bsddb3 = callPackage ../development/python-modules/bsddb3 { };
 
+  bsdiff4 = callPackage ../development/python-modules/bsdiff4 { };
+
   bkcharts = callPackage ../development/python-modules/bkcharts { };
 
   bokeh = callPackage ../development/python-modules/bokeh { };
@@ -2201,6 +2365,8 @@ in {
 
   cheetah = callPackage ../development/python-modules/cheetah { };
 
+  cheetah3 = callPackage ../development/python-modules/cheetah3 { };
+
   cherrypy = if isPy3k then
     callPackage ../development/python-modules/cherrypy { }
   else
@@ -2222,6 +2388,8 @@ in {
 
   click-completion = callPackage ../development/python-modules/click-completion {};
 
+  click-datetime = callPackage ../development/python-modules/click-datetime { };
+
   click-default-group = callPackage ../development/python-modules/click-default-group { };
 
   click-didyoumean = callPackage ../development/python-modules/click-didyoumean {};
@@ -2259,7 +2427,10 @@ in {
   colander = callPackage ../development/python-modules/colander { };
 
   # Backported version of the ConfigParser library of Python 3.3
-  configparser = callPackage ../development/python-modules/configparser { };
+  configparser = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/configparser/4.nix { }
+  else
+    callPackage ../development/python-modules/configparser { };
 
   ColanderAlchemy = callPackage ../development/python-modules/colanderalchemy { };
 
@@ -2303,16 +2474,28 @@ in {
 
   cytoolz = callPackage ../development/python-modules/cytoolz { };
 
+  cppy = callPackage ../development/python-modules/cppy { };
+
   cryptacular = callPackage ../development/python-modules/cryptacular { };
 
-  cryptography = callPackage ../development/python-modules/cryptography { };
+  cryptography = if isPy27 then
+      callPackage ../development/python-modules/cryptography/2.9.nix { }
+    else
+      callPackage ../development/python-modules/cryptography { };
 
-  cryptography_vectors = callPackage ../development/python-modules/cryptography/vectors.nix { };
+  cryptography_vectors = if isPy27 then
+      callPackage ../development/python-modules/cryptography/vectors-2.9.nix { }
+    else
+      callPackage ../development/python-modules/cryptography/vectors.nix { };
 
   curtsies = callPackage ../development/python-modules/curtsies { };
 
   envs = callPackage ../development/python-modules/envs { };
 
+  enaml = callPackage ../development/python-modules/enaml { };
+
+  enamlx = callPackage ../development/python-modules/enamlx { };
+
   etelemetry = callPackage ../development/python-modules/etelemetry { };
 
   eth-hash = callPackage ../development/python-modules/eth-hash { };
@@ -2328,6 +2511,8 @@ in {
 
   impacket = callPackage ../development/python-modules/impacket { };
 
+  img2pdf = callPackage ../development/python-modules/img2pdf { };
+
   jsonlines = callPackage ../development/python-modules/jsonlines { };
 
   json-merge-patch = callPackage ../development/python-modules/json-merge-patch { };
@@ -2369,6 +2554,8 @@ in {
 
   openidc-client = callPackage ../development/python-modules/openidc-client {};
 
+  openwebifpy = callPackage ../development/python-modules/openwebifpy {};
+
   optuna = callPackage ../development/python-modules/optuna { };
 
   idna = callPackage ../development/python-modules/idna { };
@@ -2387,6 +2574,8 @@ in {
 
   mxnet = callPackage ../development/python-modules/mxnet { };
 
+  nplusone = callPackage ../development/python-modules/nplusone { };
+
   parsy = callPackage ../development/python-modules/parsy { };
 
   portalocker = callPackage ../development/python-modules/portalocker { };
@@ -2399,7 +2588,7 @@ in {
 
   pretend = callPackage ../development/python-modules/pretend { };
 
-  detox = callPackage ../development/python-modules/detox { };
+  detox = throw "detox is no longer maintained, and was broken since may 2019"; # added 2020-07-04
 
   pbkdf2 = callPackage ../development/python-modules/pbkdf2 { };
 
@@ -2425,6 +2614,10 @@ in {
 
   PyLD = callPackage ../development/python-modules/PyLD { };
 
+  pysingleton = callPackage ../development/python-modules/pysingleton { };
+
+  python-didl-lite = callPackage ../development/python-modules/python-didl-lite { };
+
   python-jose = callPackage ../development/python-modules/python-jose {};
 
   python-json-logger = callPackage ../development/python-modules/python-json-logger { };
@@ -2433,6 +2626,23 @@ in {
 
   pyhcl = callPackage ../development/python-modules/pyhcl { };
 
+  pyhs100 = callPackage ../development/python-modules/pyhs100 { };
+
+  pyrealsense2 = toPythonModule (pkgs.librealsense.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
+
+  pyrealsense2WithCuda = toPythonModule (pkgs.librealsenseWithCuda.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
+
+  pyrealsense2WithoutCuda = toPythonModule (pkgs.librealsenseWithoutCuda.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
+
   pytest = if isPy3k then self.pytest_5 else self.pytest_4;
 
   pytest_5 = callPackage ../development/python-modules/pytest {
@@ -2461,6 +2671,10 @@ in {
 
   pytest-astropy = callPackage ../development/python-modules/pytest-astropy { };
 
+  pytest-astropy-header = callPackage ../development/python-modules/pytest-astropy-header { };
+
+  pytest-filter-subpackage = callPackage ../development/python-modules/pytest-filter-subpackage { };
+
   pytest-benchmark = callPackage ../development/python-modules/pytest-benchmark { };
 
   pytestcache = callPackage ../development/python-modules/pytestcache { };
@@ -2469,6 +2683,8 @@ in {
 
   pytest-cram = callPackage ../development/python-modules/pytest-cram { };
 
+  pytest-datadir = callPackage ../development/python-modules/pytest-datadir { };
+
   pytest-datafiles = callPackage ../development/python-modules/pytest-datafiles { };
 
   pytest-dependency = callPackage ../development/python-modules/pytest-dependency { };
@@ -2503,7 +2719,10 @@ in {
 
   pytest-mpl = callPackage ../development/python-modules/pytest-mpl { };
 
-  pytest-mock = callPackage ../development/python-modules/pytest-mock { };
+  pytest-mock = if isPy3k then
+    callPackage ../development/python-modules/pytest-mock { }
+  else
+    callPackage ../development/python-modules/pytest-mock/2.nix { };
 
   pytest-openfiles = callPackage ../development/python-modules/pytest-openfiles { };
 
@@ -2517,6 +2736,8 @@ in {
 
   pytest-pep257 = callPackage ../development/python-modules/pytest-pep257 { };
 
+  pytest-pythonpath = callPackage ../development/python-modules/pytest-pythonpath { };
+
   pytest-raisesregexp = callPackage ../development/python-modules/pytest-raisesregexp { };
 
   pytest-random-order = callPackage ../development/python-modules/pytest-random-order { };
@@ -2565,6 +2786,12 @@ in {
 
   dask = callPackage ../development/python-modules/dask { };
 
+  dask-gateway = callPackage ../development/python-modules/dask-gateway { };
+
+  dask-gateway-server = callPackage ../development/python-modules/dask-gateway-server {
+    inherit (pkgs) go;
+  };
+
   dask-glm = callPackage ../development/python-modules/dask-glm { };
 
   dask-image = callPackage ../development/python-modules/dask-image { };
@@ -2585,8 +2812,14 @@ in {
 
   zigpy = callPackage ../development/python-modules/zigpy { };
 
+  zigpy-cc = callPackage ../development/python-modules/zigpy-cc { };
+
   zigpy-deconz = callPackage ../development/python-modules/zigpy-deconz { };
 
+  zigpy-xbee = callPackage ../development/python-modules/zigpy-xbee { };
+
+  zigpy-zigate = callPackage ../development/python-modules/zigpy-zigate { };
+
   digital-ocean = callPackage ../development/python-modules/digitalocean { };
 
   digi-xbee = callPackage ../development/python-modules/digi-xbee { };
@@ -2595,6 +2828,8 @@ in {
 
   libais = callPackage ../development/python-modules/libais { };
 
+  libevdev = callPackage ../development/python-modules/libevdev { };
+
   libfdt = toPythonModule (pkgs.dtc.override {
     inherit python;
     pythonSupport = true;
@@ -2649,6 +2884,10 @@ in {
   # Alias that we should deprecate
   dateutil = self.python-dateutil;
 
+  debugpy = callPackage ../development/python-modules/debugpy {
+    django = if isPy27 then self.django_1_11 else self.django;
+  };
+
   decorator = callPackage ../development/python-modules/decorator { };
 
   deform = callPackage ../development/python-modules/deform { };
@@ -2684,6 +2923,8 @@ in {
 
   dockerpty = callPackage ../development/python-modules/dockerpty {};
 
+  dockerspawner = callPackage ../development/python-modules/dockerspawner {};
+
   docker_pycreds = callPackage ../development/python-modules/docker-pycreds {};
 
   docloud = callPackage ../development/python-modules/docloud { };
@@ -2781,6 +3022,8 @@ in {
 
   fake_factory = callPackage ../development/python-modules/fake_factory { };
 
+  fake-useragent = callPackage ../development/python-modules/fake-useragent { };
+
   factory_boy = callPackage ../development/python-modules/factory_boy { };
 
   Fabric = callPackage ../development/python-modules/Fabric { };
@@ -2811,6 +3054,8 @@ in {
 
   flit = callPackage ../development/python-modules/flit { };
 
+  flit-core = callPackage ../development/python-modules/flit-core { };
+
   flowlogs_reader = callPackage ../development/python-modules/flowlogs_reader { };
 
   fluent-logger = callPackage ../development/python-modules/fluent-logger {};
@@ -2893,6 +3138,8 @@ in {
 
   googletrans = callPackage ../development/python-modules/googletrans { };
 
+  gdown = callPackage ../development/python-modules/gdown { };
+
   gpapi = callPackage ../development/python-modules/gpapi { };
   gplaycli = callPackage ../development/python-modules/gplaycli { };
 
@@ -2933,6 +3180,8 @@ in {
 
   hglib = callPackage ../development/python-modules/hglib {};
 
+  huey = callPackage ../development/python-modules/huey { };
+
   humanize = callPackage ../development/python-modules/humanize { };
 
   humanfriendly = callPackage ../development/python-modules/humanfriendly { };
@@ -3027,8 +3276,14 @@ in {
 
   jsonwatch = callPackage ../development/python-modules/jsonwatch { };
 
+  kicad = disabledIf isPy27 (toPythonModule (pkgs.kicad.override {
+    python3 = python;
+  }).src);
+
   latexcodec = callPackage ../development/python-modules/latexcodec {};
 
+  lazy = callPackage ../development/python-modules/lazy { };
+
   libmodulemd = pipe pkgs.libmodulemd [
     toPythonModule
 
@@ -3081,6 +3336,8 @@ in {
 
   jupyter = callPackage ../development/python-modules/jupyter { };
 
+  jupyter-c-kernel = callPackage ../development/python-modules/jupyter-c-kernel { };
+
   jupyter_console = if pythonOlder "3.5" then
        callPackage ../development/python-modules/jupyter_console/5.nix { }
      else
@@ -3092,6 +3349,8 @@ in {
 
   jupyterlab = callPackage ../development/python-modules/jupyterlab {};
 
+  jupyter-sphinx = callPackage ../development/python-modules/jupyter-sphinx { };
+
   jupytext = callPackage ../development/python-modules/jupytext { };
 
   PyLTI = callPackage ../development/python-modules/pylti { };
@@ -3114,8 +3373,14 @@ in {
 
   measurement = callPackage ../development/python-modules/measurement {};
 
+  mercurial = disabledIf (!isPy3k) (toPythonModule (pkgs.mercurial.override {
+    python3Packages = self;
+  }));
+
   midiutil = callPackage ../development/python-modules/midiutil {};
 
+  mido = callPackage ../development/python-modules/mido { };
+
   misaka = callPackage ../development/python-modules/misaka {};
 
   mlrose = callPackage ../development/python-modules/mlrose { };
@@ -3207,6 +3472,8 @@ in {
 
   plaster-pastedeploy = callPackage ../development/python-modules/plaster-pastedeploy {};
 
+  playsound = callPackage ../development/python-modules/playsound { };
+
   plexapi = callPackage ../development/python-modules/plexapi { };
 
   plexauth = callPackage ../development/python-modules/plexauth { };
@@ -3233,6 +3500,9 @@ in {
 
   priority = callPackage ../development/python-modules/priority { };
 
+  privacyidea = callPackage ../development/python-modules/privacyidea { };
+  privacyidea-ldap-proxy = callPackage ../development/python-modules/privacyidea/ldap-proxy.nix { };
+
   prov = callPackage ../development/python-modules/prov { };
 
   pudb = callPackage ../development/python-modules/pudb { };
@@ -3256,7 +3526,7 @@ in {
   pycares = callPackage ../development/python-modules/pycares { };
 
   pycuda = callPackage ../development/python-modules/pycuda {
-    cudatoolkit = pkgs.cudatoolkit_7_5;
+    cudatoolkit = pkgs.cudatoolkit;
     inherit (pkgs.stdenv) mkDerivation;
   };
 
@@ -3264,6 +3534,8 @@ in {
 
   pyfxa = callPackage ../development/python-modules/pyfxa { };
 
+  pygls = callPackage ../development/python-modules/pygls {};
+
   pyhomematic = callPackage ../development/python-modules/pyhomematic { };
 
   pylama = callPackage ../development/python-modules/pylama { };
@@ -3286,6 +3558,8 @@ in {
 
   python-axolotl-curve25519 = callPackage ../development/python-modules/python-axolotl-curve25519 { };
 
+  python-pam = callPackage ../development/python-modules/python-pam { };
+
   pythonix = callPackage ../development/python-modules/pythonix {
     inherit (pkgs) meson pkgconfig;
   };
@@ -3326,6 +3600,8 @@ in {
     inherit (pkgs) lzo;
   };
 
+  pxml = callPackage ../development/python-modules/pxml { };
+
   junos-eznc = callPackage ../development/python-modules/junos-eznc {};
 
   raven = callPackage ../development/python-modules/raven { };
@@ -3374,6 +3650,8 @@ in {
 
   regex = callPackage ../development/python-modules/regex { };
 
+  pygrok = callPackage ../development/python-modules/pygrok { };
+
   regional = callPackage ../development/python-modules/regional { };
 
   ratelimiter = callPackage ../development/python-modules/ratelimiter { };
@@ -3404,10 +3682,14 @@ in {
 
   rotate-backups = callPackage ../tools/backup/rotate-backups { };
 
+  liblarch = callPackage ../development/python-modules/liblarch { };
+
   librosa = callPackage ../development/python-modules/librosa { };
 
   samplerate = callPackage ../development/python-modules/samplerate { };
 
+  screeninfo = callPackage ../development/python-modules/screeninfo { };
+
   ssdeep = callPackage ../development/python-modules/ssdeep { };
 
   ssdp = callPackage ../development/python-modules/ssdp { };
@@ -3430,6 +3712,8 @@ in {
 
   setuptools-git = callPackage ../development/python-modules/setuptools-git { };
 
+  setuptools-lint = callPackage ../development/python-modules/setuptools-lint { };
+
   sievelib = callPackage ../development/python-modules/sievelib { };
 
   watchdog = callPackage ../development/python-modules/watchdog { };
@@ -3542,6 +3826,8 @@ in {
 
   django-webpack-loader = callPackage ../development/python-modules/django-webpack-loader { };
 
+  django-widget-tweaks = callPackage ../development/python-modules/django-widget-tweaks { };
+
   django_tagging = callPackage ../development/python-modules/django_tagging { };
 
   django_classytags = callPackage ../development/python-modules/django_classytags { };
@@ -3597,10 +3883,15 @@ in {
 
   SPARQLWrapper = callPackage ../development/python-modules/sparqlwrapper { };
 
-  dulwich = callPackage ../development/python-modules/dulwich {
-    inherit (pkgs) git glibcLocales;
+  duckdb = callPackage ../development/python-modules/duckdb {
+    duckdb = pkgs.duckdb;
   };
 
+  dulwich = if isPy3k then
+    callPackage ../development/python-modules/dulwich { }
+  else
+    callPackage ../development/python-modules/dulwich/0_19.nix { };
+
   hg-git = callPackage ../development/python-modules/hg-git { };
 
   hg-evolve = callPackage ../development/python-modules/hg-evolve { };
@@ -3629,6 +3920,8 @@ in {
 
   eventlet = callPackage ../development/python-modules/eventlet { };
 
+  executing = callPackage ../development/python-modules/executing { };
+
   exifread = callPackage ../development/python-modules/exifread { };
 
   fastimport = callPackage ../development/python-modules/fastimport { };
@@ -3647,6 +3940,8 @@ in {
 
   pyfribidi = callPackage ../development/python-modules/pyfribidi { };
 
+  pyfritzhome = callPackage ../development/python-modules/pyfritzhome { };
+
   pyftpdlib = callPackage ../development/python-modules/pyftpdlib { };
 
   filebrowser_safe = callPackage ../development/python-modules/filebrowser_safe { };
@@ -3735,6 +4030,8 @@ in {
 
   flask-restplus = callPackage ../development/python-modules/flask-restplus { };
 
+  flask-restx = callPackage ../development/python-modules/flask-restx { };
+
   flask-reverse-proxy-fix = callPackage ../development/python-modules/flask-reverse-proxy-fix { };
 
   flask_script = callPackage ../development/python-modules/flask-script { };
@@ -3753,6 +4050,8 @@ in {
 
   flask_testing = callPackage ../development/python-modules/flask-testing { };
 
+  flask-versioned = callPackage ../development/python-modules/flask-versioned { };
+
   flask_wtf = callPackage ../development/python-modules/flask-wtf { };
 
   wtforms = callPackage ../development/python-modules/wtforms { };
@@ -3788,6 +4087,10 @@ in {
     cudaSupport = false;
   };
 
+  pytorch-lightning = callPackage ../development/python-modules/pytorch-lightning { };
+
+  pytorch-metric-learning = callPackage ../development/python-modules/pytorch-metric-learning { };
+
   pythondialog = callPackage ../development/python-modules/pythondialog { };
 
   python2-pythondialog = callPackage ../development/python-modules/python2-pythondialog { };
@@ -3800,6 +4103,8 @@ in {
 
   jsonschema = callPackage ../development/python-modules/jsonschema { };
 
+  vcver = callPackage ../development/python-modules/vcver { };
+
   vcversioner = callPackage ../development/python-modules/vcversioner { };
 
   falcon = callPackage ../development/python-modules/falcon { };
@@ -3812,10 +4117,10 @@ in {
 
   folium = callPackage ../development/python-modules/folium { };
 
-  fontforge = toPythonModule (pkgs.fontforge.override {
+  fontforge = disabledIf (!isPy3k) (toPythonModule (pkgs.fontforge.override {
     withPython = true;
     inherit python;
-  });
+  }));
 
   fonttools = callPackage ../development/python-modules/fonttools { };
 
@@ -3842,6 +4147,11 @@ in {
 
   gdrivefs = callPackage ../development/python-modules/gdrivefs { };
 
+  geant4 = disabledIf (!isPy3k) (toPythonModule (pkgs.geant4.override {
+    enablePython = true;
+    python3 = python;
+  }));
+
   genshi = callPackage ../development/python-modules/genshi { };
 
   gentools = callPackage ../development/python-modules/gentools { };
@@ -3946,6 +4256,8 @@ in {
 
   google_cloud_runtimeconfig = callPackage ../development/python-modules/google_cloud_runtimeconfig { };
 
+  google_cloud_secret_manager = callPackage ../development/python-modules/google_cloud_secret_manager { };
+
   google_cloud_securitycenter = callPackage ../development/python-modules/google_cloud_securitycenter { };
 
   google_cloud_spanner = callPackage ../development/python-modules/google_cloud_spanner { };
@@ -4040,6 +4352,8 @@ in {
 
   htmllaundry = callPackage ../development/python-modules/htmllaundry { };
 
+  html-sanitizer = callPackage ../development/python-modules/html-sanitizer { };
+
   html5lib = callPackage ../development/python-modules/html5lib { };
 
   httmock = callPackage ../development/python-modules/httmock { };
@@ -4054,7 +4368,13 @@ in {
 
   hydra = callPackage ../development/python-modules/hydra { };
 
-  hypothesis = callPackage ../development/python-modules/hypothesis { };
+  # File name is called 2.nix because this one will need to remain for Python 2.
+  hypothesis_4 = callPackage ../development/python-modules/hypothesis/2.nix { };
+
+  hypothesis = if isPy3k then
+    callPackage ../development/python-modules/hypothesis { }
+  else
+    self.hypothesis_4;
 
   hydra-check = callPackage ../development/python-modules/hydra-check { };
 
@@ -4068,16 +4388,23 @@ in {
 
   uncompyle6 = callPackage ../development/python-modules/uncompyle6 { };
 
+  unrpa = callPackage ../development/python-modules/unrpa { };
+
   lsi = callPackage ../development/python-modules/lsi { };
 
   hkdf = callPackage ../development/python-modules/hkdf { };
 
-  httpretty = callPackage ../development/python-modules/httpretty { };
+  httpretty = if isPy3k then
+    callPackage ../development/python-modules/httpretty { }
+  else
+    callPackage ../development/python-modules/httpretty/0.nix { };
 
   iapws = callPackage ../development/python-modules/iapws { };
 
   icalendar = callPackage ../development/python-modules/icalendar { };
 
+  icecream = callPackage ../development/python-modules/icecream { };
+
   ics = callPackage ../development/python-modules/ics { };
 
   ifaddr = callPackage ../development/python-modules/ifaddr { };
@@ -4119,8 +4446,6 @@ in {
 
   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 { };
 
@@ -4197,10 +4522,18 @@ in {
     pkgs-docker = pkgs.docker;
   };
 
+  jupyter-telemetry = callPackage ../development/python-modules/jupyter-telemetry { };
+
   jupyterhub = callPackage ../development/python-modules/jupyterhub { };
 
   jupyterhub-ldapauthenticator = callPackage ../development/python-modules/jupyterhub-ldapauthenticator { };
 
+  jupyterhub-systemdspawner = callPackage ../development/python-modules/jupyterhub-systemdspawner {
+    inherit (pkgs) bash;
+  };
+
+  kaggle = callPackage ../development/python-modules/kaggle { };
+
   keyring = if isPy3k then
     callPackage ../development/python-modules/keyring { }
   else
@@ -4208,7 +4541,10 @@ in {
 
   keyutils = callPackage ../development/python-modules/keyutils { inherit (pkgs) keyutils; };
 
-  kiwisolver = callPackage ../development/python-modules/kiwisolver { };
+  kiwisolver = if isPy3k then
+    callPackage ../development/python-modules/kiwisolver { }
+  else
+    callPackage ../development/python-modules/kiwisolver/1_1.nix { };
 
   klaus = callPackage ../development/python-modules/klaus {};
 
@@ -4245,6 +4581,8 @@ in {
     inherit (pkgs) kerberos;
   };
 
+  lazy_import = callPackage ../development/python-modules/lazy_import { };
+
   lazy-object-proxy = callPackage ../development/python-modules/lazy-object-proxy { };
 
   ldaptor = callPackage ../development/python-modules/ldaptor { };
@@ -4271,7 +4609,10 @@ in {
 
   libarcus = callPackage ../development/python-modules/libarcus { inherit (pkgs) protobuf; };
 
-  libcloud = callPackage ../development/python-modules/libcloud { };
+  libcloud = if isPy27 then
+      callPackage ../development/python-modules/libcloud/2.nix { }
+    else
+      callPackage ../development/python-modules/libcloud { };
 
   libgpuarray = callPackage ../development/python-modules/libgpuarray {
     clblas = pkgs.clblas.override { boost = self.boost; };
@@ -4286,6 +4627,11 @@ in {
 
   libkeepass = callPackage ../development/python-modules/libkeepass { };
 
+  libredwg = toPythonModule (pkgs.libredwg.override {
+    enablePython = true;
+    inherit (self) python libxml2;
+  });
+
   librepo = pipe pkgs.librepo [
     toPythonModule
 
@@ -4333,7 +4679,9 @@ in {
 
   locustio = callPackage ../development/python-modules/locustio { };
 
-  llvmlite = callPackage ../development/python-modules/llvmlite { llvm = pkgs.llvm_8; };
+  llvmlite = callPackage ../development/python-modules/llvmlite {
+    llvm = pkgs.llvm_9; # llvmlite always requires a specific version of llvm.
+  };
 
   lockfile = callPackage ../development/python-modules/lockfile { };
 
@@ -4361,6 +4709,8 @@ in {
     inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation CoreServices;
   };
 
+  maestral = callPackage ../development/python-modules/maestral { };
+
   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 {};
@@ -4399,14 +4749,15 @@ in {
 
   mapsplotlib = callPackage ../development/python-modules/mapsplotlib { };
 
-  markdown = callPackage ../development/python-modules/markdown { };
+  markdown = if isPy3k then
+    callPackage ../development/python-modules/markdown { }
+  else
+    callPackage ../development/python-modules/markdown/3_1.nix { };
 
   markdownsuperscript = callPackage ../development/python-modules/markdownsuperscript {};
 
   markdown-macros = callPackage ../development/python-modules/markdown-macros { };
 
-  mathics = callPackage ../development/python-modules/mathics { };
-
   matplotlib = let
     path = if isPy3k then ../development/python-modules/matplotlib/default.nix else
       ../development/python-modules/matplotlib/2.nix;
@@ -4449,7 +4800,7 @@ in {
   mesa = callPackage ../development/python-modules/mesa { };
 
   meson = disabledIf (pythonOlder "3.5") (toPythonModule ((pkgs.meson.override {
-    python3Packages = self;
+    python3 = python;
   }).overrideAttrs(oldAttrs: {
      # We do not want the setup hook in Python packages
      # because the build is performed differently.
@@ -4458,6 +4809,8 @@ in {
 
   mesonpep517 = callPackage ../development/python-modules/mesonpep517 { };
 
+  meshlabxml = callPackage ../development/python-modules/meshlabxml { };
+
   metaphone = callPackage ../development/python-modules/metaphone { };
 
   mezzanine = callPackage ../development/python-modules/mezzanine { };
@@ -4500,7 +4853,12 @@ in {
 
   editorconfig = callPackage ../development/python-modules/editorconfig { };
 
-  mock = callPackage ../development/python-modules/mock { };
+  mock = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/mock/2.nix { }
+  else
+    callPackage ../development/python-modules/mock { };
+
+  mocket = callPackage ../development/python-modules/mocket { };
 
   mock-open = callPackage ../development/python-modules/mock-open { };
 
@@ -4551,7 +4909,10 @@ in {
 
   mutag = callPackage ../development/python-modules/mutag { };
 
-  mutagen = callPackage ../development/python-modules/mutagen { };
+  mutagen = if isPy27 then
+      callPackage ../development/python-modules/mutagen/1.43.nix { }
+    else
+      callPackage ../development/python-modules/mutagen { };
 
   muttils = callPackage ../development/python-modules/muttils { };
 
@@ -4571,8 +4932,12 @@ in {
 
   pint = callPackage ../development/python-modules/pint { };
 
+  pkutils = callPackage ../development/python-modules/pkutils { };
+
   pygal = callPackage ../development/python-modules/pygal { };
 
+  pygogo = callPackage ../development/python-modules/pygogo { };
+
   pytaglib = callPackage ../development/python-modules/pytaglib { };
 
   pyte = callPackage ../development/python-modules/pyte { };
@@ -4607,6 +4972,8 @@ in {
 
   names = callPackage ../development/python-modules/names { };
 
+  nbclient = callPackage ../development/python-modules/nbclient { };
+
   nbconflux = callPackage ../development/python-modules/nbconflux { };
 
   nbconvert = callPackage ../development/python-modules/nbconvert { };
@@ -4657,6 +5024,10 @@ in {
 
   nitime = callPackage ../development/python-modules/nitime { };
 
+  nix-kernel = callPackage ../development/python-modules/nix-kernel {
+    inherit (pkgs) nix;
+  };
+
   nixpkgs = callPackage ../development/python-modules/nixpkgs { };
 
   nixpkgs-pytools = callPackage ../development/python-modules/nixpkgs-pytools { };
@@ -4718,16 +5089,11 @@ in {
 
   Nuitka = callPackage ../development/python-modules/nuitka { };
 
-  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_;
+  numpy =
+    if pythonOlder "3.5" then
+      callPackage ../development/python-modules/numpy/1.16.nix { }
+    else
+      callPackage ../development/python-modules/numpy { };
 
   numpydoc = callPackage ../development/python-modules/numpydoc { };
 
@@ -4751,7 +5117,10 @@ in {
 
   oauth2client = callPackage ../development/python-modules/oauth2client { };
 
-  oauthlib = callPackage ../development/python-modules/oauthlib { };
+  oauthlib = if isPy27 then
+      callPackage ../development/python-modules/oauthlib/3.1.nix { }
+    else
+      callPackage ../development/python-modules/oauthlib { };
 
   obfsproxy = callPackage ../development/python-modules/obfsproxy { };
 
@@ -4759,8 +5128,6 @@ in {
     graphvizPkg = pkgs.graphviz;
   };
 
-  odo = callPackage ../development/python-modules/odo { };
-
   offtrac = callPackage ../development/python-modules/offtrac { };
 
   openpyxl = if pythonAtLeast "3.6" then
@@ -4940,6 +5307,8 @@ in {
 
   pep257 = callPackage ../development/python-modules/pep257 { };
 
+  pep517 = callPackage ../development/python-modules/pep517 { };
+
   percol = callPackage ../development/python-modules/percol { };
 
   pexif = callPackage ../development/python-modules/pexif { };
@@ -5014,6 +5383,8 @@ in {
 
   pymetar = callPackage ../development/python-modules/pymetar { };
 
+  pypubsub = callPackage ../development/python-modules/pypubsub { };
+
   pysftp = callPackage ../development/python-modules/pysftp { };
 
   soundfile = callPackage ../development/python-modules/soundfile { };
@@ -5026,9 +5397,14 @@ in {
 
   pyviz-comms = callPackage ../development/python-modules/pyviz-comms { };
 
-  pillow = callPackage ../development/python-modules/pillow {
-    inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
-    inherit (pkgs.xorg) libX11;
+  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;
   };
 
   pkgconfig = callPackage ../development/python-modules/pkgconfig {
@@ -5039,6 +5415,8 @@ in {
 
   polib = callPackage ../development/python-modules/polib {};
 
+  ponywhoosh = callPackage ../development/python-modules/ponywhoosh { };
+
   posix_ipc = callPackage ../development/python-modules/posix_ipc { };
 
   portend = callPackage ../development/python-modules/portend { };
@@ -5051,6 +5429,8 @@ in {
 
   pproxy = callPackage ../development/python-modules/pproxy { };
 
+  pq = callPackage ../development/python-modules/pq { };
+
   praw = if isPy3k then callPackage ../development/python-modules/praw { }
     else callPackage ../development/python-modules/praw/6.3.nix { };
 
@@ -5071,7 +5451,9 @@ in {
   protobuf = callPackage ../development/python-modules/protobuf {
     disabled = isPyPy;
     doCheck = !isPy3k;
-    protobuf = pkgs.protobuf3_8;
+    # If a protobuf upgrade causes many Python packages to fail, please pin it
+    # here to the previous version.
+    protobuf = pkgs.protobuf;
   };
 
   psd-tools = callPackage ../development/python-modules/psd-tools { };
@@ -5104,6 +5486,8 @@ in {
 
   pyaudio = callPackage ../development/python-modules/pyaudio { };
 
+  pycoin = callPackage ../development/python-modules/pycoin { };
+
   pysam = callPackage ../development/python-modules/pysam { };
 
   pysaml2 = callPackage ../development/python-modules/pysaml2 {
@@ -5130,7 +5514,7 @@ in {
 
   babelgladeextractor = callPackage ../development/python-modules/babelgladeextractor { };
 
-  pybfd = callPackage ../development/python-modules/pybfd { };
+  batchspawner = callPackage ../development/python-modules/batchspawner { };
 
   pybigwig = callPackage ../development/python-modules/pybigwig { };
 
@@ -5194,7 +5578,10 @@ in {
 
   pyglet = callPackage ../development/python-modules/pyglet {};
 
-  pygments = callPackage ../development/python-modules/Pygments { };
+  pygments = if isPy3k then
+    callPackage ../development/python-modules/Pygments { }
+  else
+    callPackage ../development/python-modules/Pygments/2_5.nix { };
 
   pygpgme = callPackage ../development/python-modules/pygpgme { };
 
@@ -5227,6 +5614,8 @@ in {
 
   pyrabbit2 = callPackage ../development/python-modules/pyrabbit2 { };
 
+  pyrad = callPackage ../development/python-modules/pyrad { };
+
   pyrr = callPackage ../development/python-modules/pyrr { };
 
   pysha3 = callPackage ../development/python-modules/pysha3 { };
@@ -5261,6 +5650,8 @@ in {
 
   pyinotify = callPackage ../development/python-modules/pyinotify { };
 
+  pyipp = callPackage ../development/python-modules/pyipp { };
+
   pyjwt = callPackage ../development/python-modules/pyjwt { };
 
   pykickstart = callPackage ../development/python-modules/pykickstart { };
@@ -5355,7 +5746,7 @@ in {
 
   pylibacl = callPackage ../development/python-modules/pylibacl { };
 
-  pylibgen = callPackage ../development/python-modules/pylibgen { };
+  pylibgen = throw "pylibgen is unmaintained upstreamed, and removed from nixpkgs"; # added 2020-06-20
 
   pyliblo = callPackage ../development/python-modules/pyliblo { };
 
@@ -5450,21 +5841,6 @@ in {
 
   pyyaml = callPackage ../development/python-modules/pyyaml { };
 
-  pyyaml_3 = (callPackage ../development/python-modules/pyyaml { }).overridePythonAttrs (oldAttrs: rec {
-    version = "3.13";
-    src = oldAttrs.src.override {
-      inherit version;
-      sha256 = "3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf";
-    };
-    # https://github.com/yaml/pyyaml/issues/298#issuecomment-511990948
-    patches = singleton (pkgs.fetchpatch {
-      url = "https://github.com/yaml/pyyaml/commit/c5b135fe39d41cffbdc006f28ccb2032df6005e0.patch";
-      sha256 = "0x1v45rkmj194c41d1nqi3ihj9z4rsy8zvpfcd8p960g1fia7fhn";
-    });
-    # https://github.com/yaml/pyyaml/issues/298#issuecomment-511990948
-    doCheck = false;
-  });
-
   rabbitpy = callPackage ../development/python-modules/rabbitpy { };
 
   rasterio = callPackage ../development/python-modules/rasterio {
@@ -5520,7 +5896,6 @@ in {
 
   qscintilla-qt5 = pkgs.libsForQt5.callPackage ../development/python-modules/qscintilla-qt5 {
     pythonPackages = self;
-    lndir = pkgs.xorg.lndir;
   };
 
   qscintilla = self.qscintilla-qt4;
@@ -5533,6 +5908,8 @@ in {
 
   qtpy = callPackage ../development/python-modules/qtpy { };
 
+  qreactor = callPackage ../development/python-modules/qreactor { };
+
   quantities = callPackage ../development/python-modules/quantities { };
 
   qutip = callPackage ../development/python-modules/qutip { };
@@ -5561,8 +5938,8 @@ in {
 
   retworkx = callPackage ../development/python-modules/retworkx { };
 
-  rivet = disabledIf isPy3k (toPythonModule (pkgs.rivet.override {
-    python2 = python;
+  rivet = disabledIf (!isPy3k) (toPythonModule (pkgs.rivet.override {
+    python3 = python;
   }));
 
   ripser = callPackage ../development/python-modules/ripser { };
@@ -5585,6 +5962,8 @@ in {
 
   rdflib = callPackage ../development/python-modules/rdflib { };
 
+  rdflib-jsonld = callPackage ../development/python-modules/rdflib-jsonld { };
+
   isodate = callPackage ../development/python-modules/isodate { };
 
   owslib = callPackage ../development/python-modules/owslib { };
@@ -5631,6 +6010,8 @@ in {
 
   Pyro5 = callPackage ../development/python-modules/pyro5 { };
 
+  rnc2rng = callPackage ../development/python-modules/rnc2rng { };
+
   rope = callPackage ../development/python-modules/rope { };
 
   ropper = callPackage ../development/python-modules/ropper { };
@@ -5639,7 +6020,7 @@ in {
 
   rply = callPackage ../development/python-modules/rply {};
 
-  rpm = toPythonModule (pkgs.rpm.override{inherit python;});
+  rpm = disabledIf (!isPy3k) (toPythonModule (pkgs.rpm.override{ inherit python; }));
 
   rpmfluff = callPackage ../development/python-modules/rpmfluff {};
 
@@ -5655,6 +6036,8 @@ in {
 
   typing-extensions = callPackage ../development/python-modules/typing-extensions { };
 
+  typing-inspect = callPackage ../development/python-modules/typing-inspect { };
+
   typeguard = callPackage ../development/python-modules/typeguard { };
 
   typesentry = callPackage ../development/python-modules/typesentry { };
@@ -5691,6 +6074,15 @@ in {
     });
   in if pythonOlder "3.5" then scipy_1_2 else scipy_;
 
+  scipy_1_3 = self.scipy.overridePythonAttrs(oldAttrs: rec {
+    version = "1.3.3";
+    src = oldAttrs.src.override {
+      inherit version;
+      sha256 = "02iqb7ws7fw5fd1a83hx705pzrw1imj7z0bphjsl4bfvw254xgv4";
+    };
+    doCheck = false;
+  });
+
   scikitimage = callPackage ../development/python-modules/scikit-image { };
 
   scikitlearn = let
@@ -5793,7 +6185,10 @@ in {
 
   sphinx-argparse = callPackage ../development/python-modules/sphinx-argparse { };
 
-  sphinxcontrib-websupport = callPackage ../development/python-modules/sphinxcontrib-websupport { };
+  sphinxcontrib-websupport = if isPy3k then
+    callPackage ../development/python-modules/sphinxcontrib-websupport { }
+  else
+    callPackage ../development/python-modules/sphinxcontrib-websupport/1_1.nix { };
 
   hieroglyph = callPackage ../development/python-modules/hieroglyph { };
 
@@ -5833,10 +6228,16 @@ in {
 
   sqlalchemy-citext = callPackage ../development/python-modules/sqlalchemy-citext { };
 
+  sqlalchemy-continuum = callPackage ../development/python-modules/sqlalchemy-continuum { };
+
+  sqlalchemy-i18n = callPackage ../development/python-modules/sqlalchemy-i18n { };
+
   sqlalchemy_migrate = callPackage ../development/python-modules/sqlalchemy-migrate { };
 
   sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { };
 
+  sqlsoup = callPackage ../development/python-modules/sqlsoup { };
+
   staticjinja = callPackage ../development/python-modules/staticjinja { };
 
   statsmodels = callPackage ../development/python-modules/statsmodels { };
@@ -5890,6 +6291,8 @@ in {
 
   extras = callPackage ../development/python-modules/extras { };
 
+  extension-helpers = callPackage ../development/python-modules/extension-helpers { };
+
   texttable = callPackage ../development/python-modules/texttable { };
 
   textwrap3 =  callPackage ../development/python-modules/textwrap3 { };
@@ -5914,6 +6317,8 @@ in {
 
   tqdm = callPackage ../development/python-modules/tqdm { };
 
+  trytond = callPackage ../development/python-modules/trytond { };
+
   smmap = callPackage ../development/python-modules/smmap { };
 
   smmap2 = throw "smmap2 has been deprecated, use smmap instead."; # added 2020-03-14
@@ -5932,6 +6337,8 @@ in {
 
   txtorcon = callPackage ../development/python-modules/txtorcon { };
 
+  txdbus = callPackage ../development/python-modules/txdbus { };
+
   tzlocal = callPackage ../development/python-modules/tzlocal { };
 
   u-msgpack-python = callPackage ../development/python-modules/u-msgpack-python { };
@@ -5986,6 +6393,8 @@ in {
 
   virtualenv = callPackage ../development/python-modules/virtualenv { };
 
+  vispy = callPackage ../development/python-modules/vispy { };
+
   vsts = callPackage ../development/python-modules/vsts { };
 
   vsts-cd-manager = callPackage ../development/python-modules/vsts-cd-manager { };
@@ -6092,7 +6501,10 @@ in {
 
   rpyc = callPackage ../development/python-modules/rpyc { };
 
-  rsa = callPackage ../development/python-modules/rsa { };
+  rsa = if isPy3k then
+    callPackage ../development/python-modules/rsa { }
+  else
+    callPackage ../development/python-modules/rsa/4_0.nix { };
 
   squaremap = callPackage ../development/python-modules/squaremap { };
 
@@ -6158,6 +6570,8 @@ in {
 
   stevedore = callPackage ../development/python-modules/stevedore {};
 
+  svglib = callPackage ../development/python-modules/svglib { };
+
   text-unidecode = callPackage ../development/python-modules/text-unidecode { };
 
   Theano = callPackage ../development/python-modules/Theano rec {
@@ -6207,7 +6621,10 @@ in {
     symengine = pkgs.symengine;
   };
 
-  sympy = callPackage ../development/python-modules/sympy { };
+  sympy = if isPy3k then
+    callPackage ../development/python-modules/sympy { }
+  else
+    callPackage ../development/python-modules/sympy/1_5.nix { };
 
   pilkit = callPackage ../development/python-modules/pilkit { };
 
@@ -6249,13 +6666,18 @@ in {
 
   smartdc = callPackage ../development/python-modules/smartdc { };
 
+  smpplib = callPackage ../development/python-modules/smpplib { };
+
   socksipy-branch = callPackage ../development/python-modules/socksipy-branch { };
 
   sockjs-tornado = callPackage ../development/python-modules/sockjs-tornado { };
 
   sorl_thumbnail = callPackage ../development/python-modules/sorl_thumbnail { };
 
-  soupsieve = callPackage ../development/python-modules/soupsieve { };
+  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 { };
 
@@ -6287,6 +6709,8 @@ in {
 
   python_statsd = callPackage ../development/python-modules/python_statsd { };
 
+  skein = callPackage ../development/python-modules/skein { };
+
   stompclient = callPackage ../development/python-modules/stompclient { };
 
   subdownloader = callPackage ../development/python-modules/subdownloader { };
@@ -6313,6 +6737,8 @@ in {
 
   terminaltables = callPackage ../development/python-modules/terminaltables { };
 
+  test-tube = callPackage ../development/python-modules/test-tube { };
+
   testpath = callPackage ../development/python-modules/testpath { };
 
   testrepository = callPackage ../development/python-modules/testrepository { };
@@ -6397,6 +6823,8 @@ in {
 
   vultr = callPackage ../development/python-modules/vultr { };
 
+  vulture = callPackage ../development/python-modules/vulture { };
+
   wadllib = callPackage ../development/python-modules/wadllib { };
 
   waitress = callPackage ../development/python-modules/waitress { };
@@ -6431,7 +6859,10 @@ in {
 
   zha-quirks = callPackage ../development/python-modules/zha-quirks { };
 
-  zipp = callPackage ../development/python-modules/zipp { };
+  zipp = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/zipp/1.nix { }
+  else
+    callPackage ../development/python-modules/zipp { };
 
   zope_broken = callPackage ../development/python-modules/zope_broken { };
 
@@ -6479,8 +6910,12 @@ in {
 
   cmdtest = callPackage ../development/python-modules/cmdtest { };
 
-  tornado = callPackage ../development/python-modules/tornado { };
-  tornado_4 = callPackage ../development/python-modules/tornado { version = "4.5.3"; };
+  tornado = if isPy3k then
+    callPackage ../development/python-modules/tornado { }
+  else
+    callPackage ../development/python-modules/tornado/5.nix { };
+
+  tornado_4 = callPackage ../development/python-modules/tornado/4.nix { };
 
   tokenlib = callPackage ../development/python-modules/tokenlib { };
 
@@ -6714,11 +7149,15 @@ in {
 
   torchvision = callPackage ../development/python-modules/torchvision { };
 
+  torchgpipe = callPackage ../development/python-modules/torchgpipe { };
+
   jenkinsapi = callPackage ../development/python-modules/jenkinsapi { };
 
   jenkins-job-builder = callPackage ../development/python-modules/jenkins-job-builder { };
 
-  dot2tex = callPackage ../development/python-modules/dot2tex { };
+  dot2tex = callPackage ../development/python-modules/dot2tex {
+    inherit (pkgs) graphviz;
+  };
 
   poezio = callPackage ../applications/networking/instant-messengers/poezio {
     inherit (pkgs) pkgconfig;
@@ -6738,6 +7177,8 @@ in {
 
   xcffib = callPackage ../development/python-modules/xcffib {};
 
+  xpybutil = callPackage ../development/python-modules/xpybutil {};
+
   pafy = callPackage ../development/python-modules/pafy { };
 
   suds = callPackage ../development/python-modules/suds { };
@@ -6830,6 +7271,12 @@ in {
 
   scrapy = callPackage ../development/python-modules/scrapy { };
 
+  scrapy-fake-useragent = callPackage ../development/python-modules/scrapy-fake-useragent { };
+
+  scrapy-deltafetch = callPackage ../development/python-modules/scrapy-deltafetch { };
+
+  scrapy-splash = callPackage ../development/python-modules/scrapy-splash { };
+
   pandocfilters = callPackage ../development/python-modules/pandocfilters { };
 
   pandoc-attributes = callPackage ../development/python-modules/pandoc-attributes { };
@@ -6946,6 +7393,8 @@ in {
 
   ansi = callPackage ../development/python-modules/ansi { };
 
+  pygments-better-html = callPackage ../development/python-modules/pygments-better-html { };
+
   pygments-markdown-lexer = callPackage ../development/python-modules/pygments-markdown-lexer { };
 
   telegram = callPackage ../development/python-modules/telegram { };
@@ -6970,11 +7419,17 @@ in {
 
   morphys = callPackage ../development/python-modules/morphys { };
 
-  jaraco_functools = callPackage ../development/python-modules/jaraco_functools { };
+  jaraco_functools = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/jaraco_functools/2.nix { }
+  else
+    callPackage ../development/python-modules/jaraco_functools { };
 
   jaraco_classes = callPackage ../development/python-modules/jaraco_classes { };
 
-  jaraco_stream = callPackage ../development/python-modules/jaraco_stream { };
+  jaraco_stream = if pythonOlder "3.6"
+    then callPackage ../development/python-modules/jaraco_stream/2.nix { }
+  else
+    callPackage ../development/python-modules/jaraco_stream { };
 
   javaobj-py3 = callPackage ../development/python-modules/javaobj-py3 { };
 
@@ -7027,6 +7482,11 @@ in {
 
   pytoml = callPackage ../development/python-modules/pytoml { };
 
+  pypamtest = pkgs.libpam-wrapper.override {
+    enablePython = true;
+    inherit python;
+  };
+
   pypandoc = callPackage ../development/python-modules/pypandoc { };
 
   yamllint = callPackage ../development/python-modules/yamllint { };
@@ -7039,6 +7499,8 @@ in {
 
   suseapi = callPackage ../development/python-modules/suseapi { };
 
+  tensorboardx = callPackage ../development/python-modules/tensorboardx { };
+
   typed-ast = callPackage ../development/python-modules/typed-ast { };
 
   stripe = callPackage ../development/python-modules/stripe { };
@@ -7063,7 +7525,7 @@ in {
 
   visitor = callPackage ../development/python-modules/visitor { };
 
-  vtk = toPythonModule (pkgs.vtk.override {
+  vtk = toPythonModule (pkgs.vtk_7.override {
     inherit (self) python;
     enablePython = true;
   });
@@ -7131,6 +7593,8 @@ in {
 
   murmurhash = callPackage ../development/python-modules/murmurhash { };
 
+  pkuseg = callPackage ../development/python-modules/pkuseg { };
+
   plac = callPackage ../development/python-modules/plac { };
 
   preshed = callPackage ../development/python-modules/preshed { };
@@ -7179,9 +7643,18 @@ in {
 
   pulp  = callPackage ../development/python-modules/pulp { };
 
+  pure-pcapy3 = callPackage ../development/python-modules/pure-pcapy3 { };
+
+  cucumber-tag-expressions = callPackage ../development/python-modules/cucumber-tag-expressions { };
+
   behave = callPackage ../development/python-modules/behave { };
 
-  pyhamcrest = callPackage ../development/python-modules/pyhamcrest { };
+  bellows = callPackage ../development/python-modules/bellows { };
+
+  pyhamcrest = if isPy3k then
+    callPackage ../development/python-modules/pyhamcrest { }
+  else
+    callPackage ../development/python-modules/pyhamcrest/1.nix { };
 
   pyhaversion = callPackage ../development/python-modules/pyhaversion { };
 
@@ -7333,6 +7806,10 @@ in {
 
   webrtcvad = callPackage ../development/python-modules/webrtcvad { };
 
+  pykwalify = callPackage ../development/python-modules/pykwalify { };
+
+  west = callPackage ../development/python-modules/west { };
+
   wfuzz = callPackage ../development/python-modules/wfuzz { };
 
   wget = callPackage ../development/python-modules/wget { };
@@ -7349,6 +7826,8 @@ in {
 
   rxv     = callPackage ../development/python-modules/rxv     { };
 
+  userpath = callPackage ../development/python-modules/userpath { };
+
 });
 
 in fix' (extends overrides packages)
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-lib.nix b/pkgs/top-level/release-lib.nix
index 7e7cac95b9c..1e33c7b0585 100644
--- a/pkgs/top-level/release-lib.nix
+++ b/pkgs/top-level/release-lib.nix
@@ -145,7 +145,7 @@ rec {
     let res = builtins.tryEval (
       if isDerivation value then
         value.meta.hydraPlatforms
-          or (supportedMatches (value.meta.platforms or [ "x86_64-linux" ]))
+          or (value.meta.platforms or [ "x86_64-linux" ])
       else if value.recurseForDerivations or false || value.recurseForRelease or false then
         packagePlatforms value
       else
@@ -157,9 +157,4 @@ rec {
   /* Common platform groups on which to test packages. */
   inherit (platforms) unix linux darwin cygwin all mesaPlatforms;
 
-  /* Platform groups for specific kinds of applications. */
-  x11Supported = linux;
-  gtkSupported = linux;
-  ghcSupported = linux;
-
 }
diff --git a/pkgs/top-level/release-small.nix b/pkgs/top-level/release-small.nix
index 1c7f758ccff..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 = gtkSupported;
+  emacs = linux;
   enscript = all;
   file = all;
   findutils = all;
@@ -119,7 +119,7 @@ with import ./release-lib.nix { inherit supportedSystems; };
   ntp = linux;
   openssh = linux;
   openssl = all;
-  pan = gtkSupported;
+  pan = linux;
   par2cmdline = all;
   pciutils = linux;
   pdf2xml = all;
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index e0723523f4e..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}";
@@ -89,9 +90,9 @@ let
           meta.description = "Release-critical builds for the Nixpkgs unstable channel";
           constituents =
             [ jobs.tarball
-              jobs.metrics
               jobs.manual
               jobs.lib-tests
+              jobs.pkgs-lib-tests
               jobs.stdenv.x86_64-linux
               jobs.linux.x86_64-linux
               jobs.pandoc.x86_64-linux
@@ -181,6 +182,10 @@ let
       haskell.compiler = packagePlatforms pkgs.haskell.compiler;
       haskellPackages = packagePlatforms pkgs.haskellPackages;
       idrisPackages = packagePlatforms pkgs.idrisPackages;
+      agdaPackages = packagePlatforms pkgs.agdaPackages;
+
+      pkgsMusl.stdenv = [ "x86_64-linux" "aarch64-linux" ];
+      pkgsStatic.stdenv = [ "x86_64-linux" "aarch64-linux" ];
 
       tests = packagePlatforms pkgs.tests;
 
diff --git a/pkgs/top-level/static.nix b/pkgs/top-level/static.nix
index c7db64b99f6..ca64c4d975c 100644
--- a/pkgs/top-level/static.nix
+++ b/pkgs/top-level/static.nix
@@ -159,14 +159,13 @@ in {
     enableShared = false;
   };
   mkl = super.mkl.override { enableStatic = true; };
-  nix = super.nix.override { withAWS = false; };
+  nix = super.nix.override { enableStatic = true; };
   openssl = (super.openssl_1_1.override { static = true; }).overrideAttrs (o: {
     # OpenSSL doesn't like the `--enable-static` / `--disable-shared` flags.
     configureFlags = (removeUnknownConfigureFlags o.configureFlags);
   });
   arrow-cpp = super.arrow-cpp.override {
     enableShared = false;
-    python = { pkgs = { python = null; numpy = null; }; };
   };
   boost = super.boost.override {
     enableStatic = true;
@@ -217,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 {
@@ -243,7 +246,7 @@ in {
   };
 
   zstd = super.zstd.override {
-    enableShared = false;
+    static = true;
   };
 
   llvmPackages_8 = super.llvmPackages_8 // {
@@ -266,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; };
@@ -275,4 +277,30 @@ 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" ];
+    });
+  });
 }